RU2786652C2 - Connection between separation limitation elements - Google Patents

Connection between separation limitation elements Download PDF

Info

Publication number
RU2786652C2
RU2786652C2 RU2021106768A RU2021106768A RU2786652C2 RU 2786652 C2 RU2786652 C2 RU 2786652C2 RU 2021106768 A RU2021106768 A RU 2021106768A RU 2021106768 A RU2021106768 A RU 2021106768A RU 2786652 C2 RU2786652 C2 RU 2786652C2
Authority
RU
Russia
Prior art keywords
block
size
minqtsizey
video
syntax element
Prior art date
Application number
RU2021106768A
Other languages
Russian (ru)
Other versions
RU2021106768A (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 RU2021106768A publication Critical patent/RU2021106768A/en
Application granted granted Critical
Publication of RU2786652C2 publication Critical patent/RU2786652C2/en

Links

Images

Abstract

FIELD: video encoding.
SUBSTANCE: invention relates to means for video encoding. A syntaxis element is obtained from a bit stream. Information on the minimum size, MinQtSizeY, is obtained in brightness samples of a leaf brightness block obtained as a result of separation of a quadrant tree. The maximum size, MaxBtSizeY, is determined in brightness samples of a root brightness block, so that it can be separated using separation of a binary tree, based on MinQtsizeY information and the obtained syntaxis element. Moreover, the syntaxis element is an element of syntaxis of the difference between a logarithm of the base 2 of MinQtSizeY and a logarithm of the base 2 of MaxBtSizeY; or the syntaxis element is an element of syntaxis of the difference between MinQtSizeY and MaxBtSizeY, wherein the difference syntaxis element indicates the mentioned difference in a logarithmic form with the base 2. At the same time, the method additionally contains stages, at which: it is determined whether it is allowed for application of binary separation to an image block based on MaxBtSizeY; and an encoding block of the image block is obtained based on the result of determination.
EFFECT: increase in the efficiency of video encoding due to an increase in the efficiency of image separation.
13 cl, 31 dwg

Description

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

Настоящее изобретение в целом относится к способам кодирования, декодирования и разделения изображения.The present invention relates generally to methods for encoding, decoding and dividing an image.

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

Объем видеоданных, необходимых для изображения даже относительно короткого видео, может быть значительным, что может привести к потерям данных при передаче в потоковом режиме или иным образом передаваемых по сети связи с ограниченной пропускной способностью. Таким образом, видеоданные обычно сжимаются перед передачей по современным телекоммуникационным сетям. Размер видео также может оказывать значительное влияние на объем хранения данных в запоминающем устройстве, поскольку ресурсы памяти могут быть ограничены. Устройства сжатия видео перед передачей или хранением часто используют программное обеспечение и/или оборудование в источнике для кодирования видеоданных, тем самым уменьшая количество данных, необходимых для представления цифровых видеоизображений. Затем сжатые данные принимаются в месте назначения устройством распаковки видео, которое декодирует видеоданные. С ограниченными сетевыми ресурсами и постоянно растущими требованиями к более высокому качеству видео желательно использовать улучшенные способы сжатия и распаковки, которые повысят степень сжатия с минимальными потерями в качестве изображения.The amount of video data required to display even a relatively short video can be significant, which can result in data loss when streamed or otherwise transmitted over a bandwidth-limited communications network. Thus, video data is typically compressed prior to transmission over modern telecommunications networks. The size of the video can also have a significant impact on the amount of data stored in the storage device, as memory resources can be limited. Video compression devices often use source software and/or hardware to encode video data before transmission or storage, thereby reducing the amount of data needed to represent digital video images. The compressed data is then received at the destination by a video decompressor, which decodes the video data. With limited network resources and ever-increasing demands for higher quality video, it is desirable to use improved compression and decompression methods that will increase the compression rate with minimal loss in image quality.

Обычно существует множество элементов ограничения разделения, каждый элемент ограничивает разделение изображений (например, видео) по отношению к различным типам способов разделения. Эти различные типы способов разделения включают в себя, в частности, разделение двоичного дерева, разделение дерева квадрантов и разделение троичного дерева. Элементы ограничения разделения обычно сигнализируются в битовом потоке, включающем в себя кодированные изображения. Далее описаны некоторые важные элементы ограничения разделения.Generally, there are a plurality of separation limiting elements, each element restricting the separation of images (eg, video) with respect to different types of separation methods. These various types of splitting methods include, in particular, binary tree splitting, quadtree splitting, and ternary tree splitting. Partition constraint elements are typically signaled in a bitstream including encoded pictures. The following describes some of the important elements of the split constraint.

Может быть определен минимальный размер (MinCbSizeY) блока кодирования. Например, MinCbSizeY может быть равен 8, что означает, что родительский блок размером 8×8 не может быть разделен с помощью любого из способов разделения (splitting), поскольку результирующий дочерний блок гарантированно будет меньше, чем MinCbSizeY (либо по ширине, либо по высоте). Согласно второму примеру, если MinCbSizeY равно 8, родительский блок размером 8×16 не может быть разделен с использованием, например, разделения дерева квадрантов (partitioning), поскольку результирующие четыре дочерних блока будут иметь размер 4×8 (ширина равна 4, а высота равна 8) и ширина результирующих дочерних блоков будет меньше, чем MinCbSizeY. Во втором примере предполагалось, что MinCbSizeY применяется как к ширине, так и к высоте блока, хотя могут использоваться два разных элемента синтаксиса независимо для ограничения ширины и высоты.A minimum size (MinCbSizeY) of an encoding block may be specified. For example, MinCbSizeY could be 8, which means that an 8x8 parent block cannot be split using any of the splitting methods, since the resulting child block is guaranteed to be smaller than MinCbSizeY (either in width or height ). According to the second example, if MinCbSizeY is 8, the 8x16 parent box cannot be partitioned using, for example, quadtree partitioning, because the resulting four child boxes will be 4x8 (width is 4 and height is 8) and the width of the resulting child blocks will be less than MinCbSizeY. The second example assumed that MinCbSizeY applied to both the width and height of the block, although two different syntax elements could be used independently to constrain the width and height.

Максимальный размер (CtbSizeY) блока дерева кодирования может указывать размер максимального блока кодирования в терминах количества выборок яркости.The maximum coding tree block size (CtbSizeY) may indicate the size of the maximum coding block in terms of the number of luma samples.

Максимальный размер (MaxBtSizeY) двоичного дерева может быть определен как максимальный размер яркости (ширина или высота) с точки зрения количества выборок блока кодирования, который может быть разделен с использованием способа двоичного разделения. Например, если MaxBtSizeY равен 64, блок кодирования, который больше по размеру, либо по ширине, либо по высоте, не может быть разделен с использованием двоичного разделения. Это означает, что блок размером 128×128 нельзя разделить с помощью двоичного разделения, тогда как блок размером 64×64 можно разделить с помощью двоичного разделения.The maximum size (MaxBtSizeY) of a binary tree may be defined as a maximum luminance size (width or height) in terms of the number of coding block samples that can be divided using a binary splitting method. For example, if MaxBtSizeY is 64, a coding block that is larger in size, either in width or in height, cannot be divided using binary separation. This means that a 128x128 block cannot be split using binary splitting, while a 64x64 block can be split using binary splitting.

Минимальный размер (MinBtSizeY) двоичного дерева может быть определен как минимальный размер яркости (ширина или высота) с точки зрения количества выборок блока кодирования, который может быть разделен с использованием способа двоичного разделения. Например, если MinBtSizeY равен 16, блок кодирования, который меньше или равен по размеру, либо по ширине, либо по высоте, не может быть разделен с использованием двоичного разделения. Это означает, что блок размером 8×8 нельзя разделить с помощью двоичного разделения, тогда как блок размером 32×32 можно разделить с помощью двоичного разделения.The minimum size (MinBtSizeY) of a binary tree may be defined as a minimum luminance size (width or height) in terms of the number of coding block samples that can be divided using a binary splitting method. For example, if MinBtSizeY is 16, a coding block that is less than or equal in size, either in width or in height, cannot be divided using binary separation. This means that an 8×8 block cannot be divided using binary partitioning, while a 32×32 block can be divided using binary partitioning.

Минимальный размер (MinQtSizeY) дерева квадрантов может быть определен как минимальный размер яркости листового блока, полученный в результате разделения дерева квадрантов блока дерева кодирования (CTU). Размер может указывать ширину или высоту блока в количестве выборок. Он также может указывать вместе ширину и высоту в случае квадратных блоков. Например, если MinQtSizeY равен 16, блок кодирования, имеющий размер меньше или равный 16, не может быть разделен на дочерние блоки с использованием способа разделения дерева квадрантов. Обычно MinQtSizeY (и его сигнализируемые элементы «log2_min_qt_size_intra_slices_minus2» и «log2_min_qt_size_inter_slices_minus2» синтаксиса используются для обозначения минимального размера блока дерева квадрантов. В частности, элемент синтаксиса размера может быть косвенным элементом синтаксиса, что означает «log2_min_qt_size_intra_slices_minus2» может быть двоичным логарифмом (с основанием 2) количества выборок яркости минимального блока дерева квадрантов.The minimum size (MinQtSizeY) of the quadtree may be defined as the minimum luminance size of the leaf block resulting from splitting the coding tree unit (CTU) quadtree. Size can specify the width or height of the box in number of samples. It can also specify the width and height together in the case of square boxes. For example, if MinQtSizeY is 16, a coding block having a size less than or equal to 16 cannot be divided into child blocks using a quadtree splitting method. Typically, MinQtSizeY (and its signaled "log2_min_qt_size_intra_slices_minus2" and "log2_min_qt_size_inter_slices_minus2" syntax elements are used to denote the minimum block size of a quadtree. In particular, the size syntax element can be an indirect syntax element, meaning "log2_min_qt_size_intra_slices_minus2" can be a binary logarithm of base 2) (with base 2) the number of luminance samples of the minimum block of the quadtree.

Минимальный размер (MinTbSizeY) блока преобразования может быть определен как минимальный размер блока преобразования в терминах количества выборок блока кодирования, который может быть разделен с использованием способа троичного разделения. Например, если MinTbSizeY равен 16, блок кодирования, который меньше или равен по размеру либо по ширине, либо по высоте, не может быть разделен с использованием троичного разделения. Это означает, что блок размером 8×8 нельзя разделить с помощью троичного разделения, тогда как блок размером 32×32 можно разделить с помощью троичного разделения.The minimum transform block size (MinTbSizeY) may be defined as the minimum transform block size in terms of the number of coding block samples that can be divided using a ternary splitting method. For example, if MinTbSizeY is 16, a coding block that is less than or equal in size in either width or height cannot be divided using ternary separation. This means that an 8×8 block cannot be divided using ternary partitioning, while a 32×32 block can be divided using ternary partitioning.

Максимальная глубина (MaxMttDepth) многотипного дерева может быть определена как максимальная глубина иерархии для блоков кодирования, полученных в результате разделения многотипного дерева листового дерева квадрантов или CTU. CTU или блок дерева кодирования (CTB) описывает максимальный размер блока, который используется для разделения кадра изображения. MaxMttDepth описывает верхний предел количества последовательных двоичных или троичных разделений, которые могут применяться для получения дочернего блока. В качестве примера, предполагая, что размер CTU равен 128×128 (ширина равна 128 и высота равна 128), и что MaxMttDepth равен 1, каждый родительский блок (размером 128×128) может сначала быть разделен на два дочерних блока 128×64 с использованием двоичного разделения. Однако дочерние блоки не могут применять какое-либо последовательное двоичное разделение (чтобы получить дочерние блоки 128×32 или 64×64), поскольку достигнуто максимальное количество доступных двоичных разделений. Следует отметить, что MaxMttDepth может контролировать максимальную глубину двоичного разделения или максимальную троичную глубину разделения, или и то, и другое одновременно. Если управляется глубины двоичного и троичного разделения одновременно, то одно двоичное разделение, за которым следует одно троичное разделение, может считаться двумя иерархическими разделениями. Обычно MaxMttDepth (и его элементы синтаксиса «max_mtt_hierarchy_depth_inter_slices» и «max_mtt_hierarchy_depth_intra_slices») используются для обозначения максимальной глубины иерархии для блоков кодирования, получаемых из многотипного дерева.The maximum depth (MaxMttDepth) of a multitype tree may be defined as the maximum hierarchy depth for coding units resulting from splitting the multitype tree of a leafy quadtree or CTU. CTU or Coding Tree Block (CTB) describes the maximum block size that is used to divide a picture frame. MaxMttDepth describes an upper limit on the number of consecutive binary or ternary splits that can be applied to produce a child block. As an example, assuming that the CTU size is 128x128 (width is 128 and height is 128) and that MaxMttDepth is 1, each parent block (128x128 in size) can first be split into two 128x64 s child blocks using binary separation. However, the child blocks cannot apply any sequential binary split (to get 128x32 or 64x64 child blocks) because the maximum number of available binary splits has been reached. Note that MaxMttDepth can control the maximum binary split depth or the maximum ternary split depth, or both. If binary and ternary split depths are controlled simultaneously, then one binary split followed by one ternary split can be considered two hierarchical splits. Typically, MaxMttDepth (and its "max_mtt_hierarchy_depth_inter_slices" and "max_mtt_hierarchy_depth_intra_slices" syntax elements) are used to denote the maximum hierarchy depth for coding blocks derived from a multi-type tree.

Кроме того, «pic_width_in_luma_samples» является элементом синтаксиса, определяющим элемент размера изображения, а именно, ширину каждого декодированного изображения в блоках выборок яркости. Pic_width_in_luma_samples обычно не должно быть равно 0 и должно быть целым кратным MinCbSizeY.In addition, "pic_width_in_luma_samples" is a syntax element specifying a picture size element, namely the width of each decoded picture in blocks of luma samples. Pic_width_in_luma_samples should not normally be equal to 0 and should be an integer multiple of MinCbSizeY.

Аналогично, «pic_height_in_luma_samples» является элементом синтаксиса, определяющий элемент размера изображения, а именно, высоту каждого декодированного изображения в блоках выборок яркости. Pic_height_in_luma_samples обычно не должно быть равно 0 и должно быть целым числом, кратным MinCbSizeY.Likewise, "pic_height_in_luma_samples" is a syntax element specifying a picture size element, namely the height of each decoded picture in blocks of luma samples. Pic_height_in_luma_samples should not normally be equal to 0 and should be an integer multiple of MinCbSizeY.

Одной из задач кодирования видео является обеспечение возможного высокого качества с возможно низкой скоростью. Одним из факторов, способствующих решению данной технической задачи, является повышение эффективности структуры битового потока.One of the objectives of video encoding is to provide the highest possible quality at the lowest possible speed. One of the factors contributing to the solution of this technical problem is to increase the efficiency of the bit stream structure.

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

Ввиду вышеупомянутой технической задачи варианты осуществления изобретения направлены на улучшение текущей реализации разделения изображения. В частности, техническая задача состоит в том, чтобы повысить доступность и гибкость различных способов разделения изображения, то есть способов разделения двоичного дерева, дерева квадрантов и троичного дерева. Техническая задача заключается в обеспечении возможности кодирования и декодирования изображений больших размеров.In view of the aforementioned technical problem, embodiments of the invention aim to improve the current implementation of image division. In particular, the technical challenge is to increase the availability and flexibility of various image partitioning methods, that is, binary tree, quadtree, and ternary tree partitioning methods. The technical problem is to provide the ability to encode and decode images of large sizes.

Варианты осуществления изобретения представлены в прилагаемых независимых пунктах формулы изобретения. Преимущественные реализации изобретения дополнительно определены в зависимых пунктах формулы изобретения.Embodiments of the invention are presented in the attached independent claims. Advantageous embodiments of the invention are further defined in the dependent claims.

Вышеупомянутые и другие технические задачи решаются предметом независимых пунктов формулы изобретения. Дополнительные формы реализации очевидны из зависимых пунктов формулы изобретения, описания и чертежей.The above and other technical problems are solved by the subject of independent claims. Additional forms of implementation are obvious from the dependent claims, description and drawings.

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

В вариантах осуществления изобретения устанавливаются новые правила разделения, в частности, путем установки отношений между элементами ограничения разделения и передачи их в битовом потоке вместе с кодированными изображениями. Они могут использоваться для кодирования видеоданных в битовый поток и декодирования битового потока в декодированные видеоданные.In embodiments of the invention, new partitioning rules are established, in particular by establishing relationships between partition constraint elements and transmitting them in the bitstream along with encoded pictures. They can be used to encode video data into a bitstream and decode the bitstream into decoded video data.

Согласно первому аспекту изобретение относится к устройству для декодирования или обработки битового потока, включающий в себя кодированные изображения. Устройство включает в себя схему, выполненную с возможностью получать из битового потока (101) элемент синтаксиса; получать информацию минимального размера в выборках яркости листового блока яркости, полученного в результате разделения дерева квадрантов, MinQtSizeY (105); определять, может ли максимальный размер в выборках яркости корневого блока яркости быть разделен с использованием разделения двоичного дерева, MaxBtSizeY (102), на основании информации для MinQtSizeY (105) и полученного элемента синтаксиса.According to a first aspect, the invention relates to an apparatus for decoding or processing a bit stream including encoded pictures. The device includes a circuit configured to receive from the bitstream (101) a syntax element; obtain the minimum size information in the luminance samples of the leaf luminance block obtained by splitting the quadtree, MinQtSizeY (105); determine whether the maximum size in luminance samples of the root luminance block can be partitioned using binary tree partitioning, MaxBtSizeY (102), based on the information for MinQtSizeY (105) and the resulting syntax element.

Путем определения новых правил разделения посредством установки отношений между этими элементами ограничения разделения устройство для декодирования выполнено с возможностью увеличивать доступность и гибкость различных способов разделения изображения, в частности, разделения дерева квадрантов и двоичного дерева.By defining new partitioning rules by establishing relationships between these partition constraint elements, the decoding device is able to increase the availability and flexibility of various image partitioning methods, in particular quadtree and binary tree partitioning.

В возможной форме реализации способа согласно первому аспекту схема выполнена с возможностью определять MaxBtSizeY с учетом того, что ее нижним пределом является MinQtSizeY.In an exemplary form of implementing the method according to the first aspect, the circuit is configured to determine MaxBtSizeY given that its lower limit is MinQtSizeY.

В возможной форме реализации способа согласно первому аспекту или вышеупомянутой реализации элемент синтаксиса является элементом (301) синтаксиса разницы между логарифмом по основанию 2 MinQtSizeY (105) и логарифмом по основанию 2 MaxBtSizeY (102).In a possible implementation form of the method according to the first aspect or the above implementation, the syntax element is the syntax element (301) of the difference between the base 2 logarithm MinQtSizeY (105) and the base 2 logarithm MaxBtSizeY (102).

Таким образом, можно легко вывести соответствующие элементы ограничения разделения, например, на стороне декодера, с одновременным уменьшением информационных накладных расходов в битовом потоке. Разница является примером отношения. Однако отношение также может быть коэффициентом пропорциональности, схемой вычисления и т.п., что позволяет получить MaxBtSizeY из MinQtSizeY.Thus, it is possible to easily output the corresponding split constraint elements, for example, at the decoder side, while reducing the information overhead in the bitstream. Difference is an example of a relationship. However, the ratio can also be a proportionality factor, calculation scheme, etc., which makes it possible to obtain MaxBtSizeY from MinQtSizeY.

В возможной форме реализации способа согласно первому аспекту или вышеупомянутой реализации элемент синтаксиса является элементом (301) синтаксиса разницы между MinQtSizeY (105) и MaxBtSizeY (102), элементом синтаксиса разницы может быть, то есть, log2_diff_max_bt_size_min_qt_size, сигнализирующим упомянутую разницу в логарифмическом масштабе с основанием 2. Такой элемент синтаксиса разницы обеспечивает компактный способ сигнализации разницы.In a possible implementation form of the method according to the first aspect or the above implementation, the syntax element is a difference syntax element (301) between MinQtSizeY (105) and MaxBtSizeY (102), the difference syntax element may be, i. 2. This difference syntax element provides a compact way to signal a difference.

В возможной форме реализации способа согласно первому аспекту или вышеупомянутой реализации схема выполнена с возможностью получать элемент синтаксиса из битового потока в зависимости от максимальной глубины иерархии для блоков кодирования, полученных в результате разделения многотипного дерева листового блока дерева квадрантов (MaxMttDepth) Таким образом, могут быть получены соответствующие элементы ограничения разделения, например на стороне декодера, с одновременным уменьшением информационных накладных расходов в битовом потоке.In an exemplary form of implementation of the method according to the first aspect or the above implementation, the circuit is configured to obtain a syntax element from the bitstream depending on the maximum hierarchy depth for coding blocks obtained by splitting the quadtree leaf block polytype tree (MaxMttDepth) Thus, can be obtained corresponding split constraint elements, for example on the decoder side, while reducing the information overhead in the bitstream.

В дополнение или альтернативно, схема может быть выполнена с возможностью не получать какой-либо элемент синтаксиса MaxBtSizeY из битового потока, если MaxMttDepth равно нулю.In addition or alternatively, the schema may be configured to not receive any MaxBtSizeY syntax element from the bitstream if MaxMttDepth is zero.

В дополнение или альтернативно, схема может быть выполнена с возможностью не получать элемент синтаксиса из битового потока (101), если MaxMttDepth (103) не равно нулю.In addition or alternatively, the schema may be configured to not receive the syntax element from the bitstream (101) if MaxMttDepth (103) is non-zero.

Согласно второму аспекту изобретение относится к устройству для генерирования или обработки битового потока, включающего в себя закодированные изображения, устройству (которое выполнено с возможностью: определять минимальный размер яркости листового блока, полученного в результате разделения дерева квадрантов, MinQtSizeY, определять максимальный размер яркости блока кодирования, который должен быть разделен с использованием разделения двоичного дерева, MaxBtSizeY на основании MinQtSizeY, и включать в битовый поток информацию определенного MinQtSizeY.According to a second aspect, the invention relates to an apparatus for generating or processing a bitstream including encoded images, an apparatus (which is configured to: determine a minimum luminance size of a leaf block resulting from splitting a quadtree, MinQtSizeY, determine a maximum luminance size of a coding block, which should be split using binary tree splitting, MaxBtSizeY based on MinQtSizeY, and include information of the specified MinQtSizeY in the bitstream.

Этот способ обеспечивает эффективную реализацию кодера, в котором сгенерированный поток имеет компактный синтаксис и позволяет декодеру эффективно вывести параметры ограничения. Вышеупомянутые преимущества для стороны декодера также применимы к стороне кодера, на котором генерируется битовый поток.This method provides an efficient encoder implementation in which the generated stream has a compact syntax and allows the decoder to efficiently derive the constraint parameters. The above benefits for the decoder side also apply to the encoder side on which the bitstream is generated.

В возможной форме реализации способа согласно второму аспекту или вышеупомянутой реализации, устройство (его схема обработки) выполнено с возможностью определять MaxBtSizeY с учетом того, что его нижним пределом является MinQtSizeY.In a possible form of implementation of the method according to the second aspect or the above implementation, the device (its processing circuitry) is configured to determine MaxBtSizeY given that its lower limit is MinQtSizeY.

В возможной форме реализации способа согласно второму аспекту или вышеупомянутой реализации, устройство для генерирования или обработки битового потока может быть дополнительно выполнено с возможностью включать в битовый поток (101) элемент синтаксиса разницы между логарифмом по основанию 2 MinQtSizeY ( 105) и логарифмом с основанием 2 MaxBtSizeY (102)в битовом потоке.In an exemplary form of implementing the method according to the second aspect or the above implementation, the device for generating or processing the bitstream may be further configured to include in the bitstream (101) a difference syntax element between the base 2 logarithm MinQtSizeY ( 105) and the base 2 logarithm MaxBtSizeY (102) in the bitstream.

В возможной форме реализации способа согласно второму аспекту или вышеупомянутой реализации элемент синтаксиса является элементом (301) синтаксиса разницы между MinQtSizeY (105) и MaxBtSizeY (102), элемент синтаксиса разницы сигнализирует упомянутую разницу в логарифмическом масштабе с основанием 2.In a possible implementation form of the method according to the second aspect or the above implementation, the syntax element is the syntax element (301) of the difference between MinQtSizeY (105) and MaxBtSizeY (102), the difference syntax element signals said difference in logarithmic scale with base 2.

В возможной форме реализации способа согласно второму аспекту или вышеупомянутой реализации устройство выполнено с возможностью включать в битовый поток элемент MaxBtSizeY синтаксиса, зависящий от максимальной глубины иерархии для блоков кодирования, полученные в результате разделения многотипного дерева, MaxMttDepth.In a possible form of implementation of the method according to the second aspect or the above implementation, the device is configured to include in the bitstream a syntax element MaxBtSizeY depending on the maximum hierarchy depth for coding blocks resulting from splitting the multitype tree, MaxMttDepth.

В дополнение или в качестве альтернативы устройство выполнено с возможностью не включать в битовый поток какой-либо элемент MaxBtSizeY синтаксиса, если MaxMttDepth равно нулю.In addition or alternatively, the device is configured to not include any MaxBtSizeY syntax element in the bitstream if MaxMttDepth is zero.

В дополнение или альтернативно, устройство выполнено с возможностью включать в битовый поток любой элемент MaxBtSizeY синтаксиса, если MaxMttDepth не равно нулю.In addition or alternatively, the device is configured to include any MaxBtSizeY syntax element in the bitstream if MaxMttDepth is non-zero.

Согласно третьему аспекту изобретение относится к способу, предоставленному для генерирования или обработки битового потока (включающий в себя кодированные изображения), включающий в себя этапы: определение минимального размера яркости листового блока, полученного в результате разделения дерева квадрантов, MinQtSizeY, определение максимального размера яркости блока кодирования, который должен быть разделен с использованием разделения двоичного дерева, MaxBtSizeY, на основании MinQtSizeY, и включение в битовый поток информации определенного MinQtSizeY (105).According to a third aspect, the invention relates to a method provided for generating or processing a bitstream (including encoded pictures), including the steps of: determining a minimum luminance size of a leaf block resulting from splitting a quadtree, MinQtSizeY, determining a maximum luminance size of a coding block , which is to be split using binary tree splitting, MaxBtSizeY, based on MinQtSizeY, and including the specified MinQtSizeY information (105) in the bitstream.

Согласно четвертому аспекту изобретение относится к способу, предусмотренному для декодирования или обработки битового потока, включающего в себя закодированные изображения, содержащий этапы: получение из битового потока (101) элемента синтаксиса; получение информации минимального размера в выборках яркости листового блока яркости, полученного в результате разделения дерева квадрантов, MinQtSizeY (105); определение, может ли максимальный размер в выборках яркости корневого блока яркости быть разделен с использованием разделения двоичного дерева, MaxBtSizeY (102) на основании информации MinQtSizeY (105) и полученного элемента синтаксиса.According to a fourth aspect, the invention relates to a method provided for decoding or processing a bitstream including encoded pictures, comprising the steps of: deriving a syntax element from the bitstream (101); obtaining the minimum size information in the luminance samples of the leaf luminance block obtained by splitting the quadtree, MinQtSizeY (105); determining whether the maximum size in luminance samples of the root luminance block can be partitioned using binary tree partitioning, MaxBtSizeY (102) based on the information MinQtSizeY (105) and the obtained syntax element.

В котором способ может дополнительно содержать определение, разрешено ли применение двоичного разделения к блоку изображения, на основании MaxBtSizeY; получение блока кодирования блока изображения на основании результата определения; и получение восстановленных значений выборок блока кодирования.Wherein the method may further comprise determining whether binary splitting is allowed to be applied to the image block based on MaxBtSizeY; obtaining a coding block of the image block based on the determination result; and obtaining recovered coding block sample values.

В котором блок изображения может быть блоком яркости кодированных изображений.Wherein the image block may be a luminance block of encoded images.

В котором элемент синтаксиса может указывать разницу между логарифмом с основанием 2 для MaxBtSizeY (102) и логарифмом с основанием 2 для MinQtSizeY (105); или элемент синтаксиса может указывать разницу между MaxBtSizeY и MinQtSizeY.Wherein the syntax element may indicate the difference between the base 2 logarithm of MaxBtSizeY (102) and the base 2 logarithm of MinQtSizeY (105); or the syntax element may indicate the difference between MaxBtSizeY and MinQtSizeY.

В котором элемент синтаксиса может быть из заголовка сегмента битового потока.Where the syntax element may be from a bitstream segment header.

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

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

Способ согласно второму аспекту может быть расширен до форм реализации, соответствующих форм реализации первого устройства согласно первому аспекту. Следовательно, форма реализации способа содержит признак (признаки) соответствующей формы реализации первого устройства.The method according to the second aspect can be extended to implementation forms corresponding to the implementation forms of the first device according to the first aspect. Therefore, the implementation form of the method contains the feature(s) of the corresponding implementation form of the first device.

Преимущества способов согласно четвертому аспекту являются такими же, как и преимущества соответствующих форм реализации способа согласно третьему аспекту.The advantages of the methods according to the fourth aspect are the same as the advantages of the corresponding forms of implementation of the method according to the third aspect.

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

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

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

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

На прилагаемых чертежах и в описании ниже изложены подробности одного или более вариантов осуществления. Другие признаки, объекты и преимущества будут очевидны из описания, чертежей и формулы изобретения.The accompanying drawings and the description below set forth the details of one or more embodiments. Other features, objects and advantages will be apparent from the description, drawings and claims.

Согласно варианту осуществления предоставляется компьютерный программный продукт, содержащий программный код для управления устройством для выполнения любого из вышеупомянутых способов, когда программный код выполняется одним или более процессорами устройства.According to an embodiment, a computer program product is provided that contains program code for controlling a device to perform any of the above methods when the program code is executed by one or more processors of the device.

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

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

Следует отметить, что все устройства, элементы, блоки и средства, описанные в настоящем изобретении, могут быть реализованы в программных или аппаратных элементах или любой их комбинации. Все этапы, которые выполняются различными объектами, описанными в настоящем изобретении, а также функциональные возможности, описанные для выполнения различными объектами, предназначены для обозначения, что соответствующий объект адаптирован или выполнен с возможностью выполнять соответствующие этапы и функции. Даже, если в нижеследующем описании конкретных вариантов осуществления конкретная функциональность или этап, который должен выполняться внешними объектами, не отражается в описании конкретного подробного элемента этого объекта, который выполняет этот конкретный этап или функциональность, квалифицированному специалисту должно быть понятно, что эти способы и функциональные возможности могут быть реализованы в соответствующих программных или аппаратных элементах или в любой их комбинации.It should be noted that all devices, elements, blocks and means described in the present invention may be implemented in software or hardware elements, or any combination thereof. All of the steps that are performed by the various entities described herein, as well as the functionality described to be performed by the various entities, are intended to indicate that the respective entity is adapted or capable of performing the respective steps and functions. Even if, in the following description of specific embodiments, a specific functionality or step to be performed by external entities is not reflected in the description of the specific detailed element of that object that performs that particular step or functionality, it should be clear to the skilled artisan that these methods and functionality may be implemented in appropriate software or hardware elements, or in any combination thereof.

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

Вышеописанные аспекты и формы реализации будут объяснены в следующем описании конкретных вариантов реализации со ссылкой на прилагаемые чертежи, на которыхThe above aspects and forms of implementation will be explained in the following description of specific implementation options with reference to the accompanying drawings, in which

Фиг.1 показывает устройство согласно варианту осуществления изобретения.1 shows a device according to an embodiment of the invention.

Фиг.2 показывает синтаксис SPS RBSP для устройства согласно второму конкретному варианту осуществления изобретения.2 shows the SPS RBSP syntax for a device according to a second embodiment of the invention.

Фиг.3 показывает синтаксис заголовка сегмента для устройства согласно второму конкретному варианту осуществления изобретения.3 shows the segment header syntax for a device according to a second embodiment of the invention.

Фиг.4 показывает синтаксис SPS RBSP для устройства согласно третьему конкретному варианту осуществления изобретения.4 shows the SPS RBSP syntax for a device according to a third embodiment of the invention.

Фиг.5 показывает синтаксис заголовка сегмента для устройства согласно четвертому конкретному варианту осуществления изобретения.5 shows the segment header syntax for a device according to a fourth embodiment of the invention.

Фиг.6 показывает синтаксис заголовка сегмента для устройства согласно четвертому конкретному варианту осуществления изобретения.6 shows the segment header syntax for a device according to a fourth embodiment of the invention.

Фиг.7 показывает способ согласно варианту осуществления изобретения.7 shows a method according to an embodiment of the invention.

Фиг.8 показывает обычный синтаксис SPS RBSP.Fig.8 shows the usual syntax of SPS RBSP.

Фиг.9 показывает обычный синтаксис заголовка сегмента.9 shows the usual segment header syntax.

Фиг.10 показывает устройство согласно варианту осуществления изобретения.10 shows a device according to an embodiment of the invention.

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

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

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

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

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

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

Фиг.16 A-F показывают различные режимы разделения CU в VVC.16A-F show different CU split modes in VVC.

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

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

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

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

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

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

Фиг.21 является иллюстративной схемой примера разделения на блоки с использованием структуры двоичного дерева квадрантов (QTBT).21 is an exemplary diagram of an example of blocking using a binary quadtree (QTBT) structure.

Фиг.22 является иллюстративной схемой примера древовидной структуры, соответствующей разделению блоков с использованием структуры QTBT по фиг.6.FIG. 22 is an exemplary diagram of an example of a tree structure corresponding to block division using the QTBT structure of FIG. 6. FIG.

Фиг.23 является иллюстративной схемой примера типов горизонтального разделения троичного дерева.23 is an illustrative diagram of an example of types of horizontal division of a ternary tree.

Фиг.24 является иллюстративной схемой примера типов вертикального разделения троичного дерева.Fig. 24 is an exemplary diagram of an example of ternary tree vertical split types.

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

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

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

Фиг.28 является блок-схемой, показывающей структуру примера оконечного устройства.Fig. 28 is a block diagram showing the structure of an example terminal.

Подробное описание вариантов осуществленияDetailed description of embodiments

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

В нижеследующем описании приведена ссылка на сопроводительные чертежи, которые составляют часть настоящего изобретения и показывают в качестве иллюстрации конкретные аспекты вариантов осуществления изобретения или конкретные аспекты, в которых могут использоваться варианты осуществления настоящего изобретения. Очевидно, что варианты осуществления изобретения могут использоваться в других аспектах и содержать структурные или логические изменения, не изображенные на чертежах. Поэтому нижеследующее подробное описание не следует воспринимать в ограничивающем смысле, и объем настоящего изобретения определяется прилагаемой формулой изобретения.In the following description, reference is made to the accompanying drawings, which form part of the present invention and show, by way of illustration, specific aspects of embodiments of the invention or specific aspects in which embodiments of the present invention may be used. Obviously, embodiments of the invention can be used in other aspects and contain structural or logical changes not shown in the drawings. Therefore, the following detailed description should not be taken in a limiting sense, and the scope of the present invention is defined by the appended claims.

Например, очевидно, что настоящее изобретение в связи с описанным способом также может быть верным для соответствующего устройства или системы, выполненной с возможностью выполнять способ, и наоборот. Например, если описан один или более конкретных этапов способа, соответствующее устройство может включать в себя один или более блоков, например, функциональные блоки, чтобы выполнять описанный один или множество этапов способа (например, один блок, выполняющий один или множество этапов, или множество блоков, каждый из которых выполняет один или более из множества этапов) даже, если такой один или более блоков не описаны и не проиллюстрированы явно на чертежах. С другой стороны, например, если конкретное устройство описано на основании одного или множества блоков, например, функциональных блоков, соответствующий способ может включать в себя один этап для выполнения функциональных возможностей одного или множества блоков (например, один этап, выполняющий функциональные возможности одного или множества блоков, или множество этапов, каждый из которых выполняет функциональные возможности одного или более из множество блоков) даже, если такой один или множество этапов явно не описаны или не проиллюстрированы на чертежах. Кроме того, понятно, что признаки различных примерных вариантов осуществления и/или аспектов, описанных в данном документе, могут быть объединены друг с другом, если специально не указано иное.For example, it is obvious that the present invention in connection with the described method can also be true for the corresponding device or system configured to perform the method, and vice versa. For example, if one or more specific method steps are described, the corresponding device may include one or more blocks, such as functional blocks, to perform the one or more method steps described (for example, one block performing one or more steps, or a plurality of blocks , each of which performs one or more of a plurality of steps) even if such one or more units are not explicitly described and illustrated in the drawings. On the other hand, for example, if a particular device is described in terms of one or more blocks, such as functional blocks, the corresponding method may include one step to perform the functionality of one or more blocks (for example, one step to perform the functionality of one or more blocks). blocks, or a plurality of steps, each of which performs the functionality of one or more of the plurality of blocks) even if such one or more steps is not explicitly described or illustrated in the drawings. In addition, it is understood that features of the various exemplary embodiments and/or aspects described herein may be combined with one another unless specifically noted otherwise.

Кодирование видео обычно относится к обработке последовательности изображений, которые образуют видео или видеопоследовательность. Вместо термина «изображение» можно использовать термин «кадр» или «изображение» как синонимы в области кодирования видео. Кодирование видео, используемое в настоящем изобретении (или настоящем раскрытии), указывает либо кодирование видео, либо декодирование видео. Кодирование видео выполняется на стороне источника, обычно, содержащее обработку (например, путем сжатия) исходных видеоизображений для уменьшения объема данных, необходимых для представления видеоизображений (для более эффективного хранения и/или передачи). Декодирование видео выполняется на стороне назначения и обычно содержит обратную обработку по сравнению с кодером для восстановления видеоизображений. Варианты осуществления, относящиеся к «кодированию» видеоизображений (или изображений в целом, как будет объяснено позже), следует понимать как относящиеся либо к «кодированию», либо к «декодированию» видеопоследовательности. Комбинация части кодирования и части декодирования также называется CODEC (Coding and Decoding).Video coding generally refers to the processing of a sequence of images that form a video or video sequence. Instead of the term "image", the term "frame" or "image" can be used as synonyms in the field of video coding. The video coding used in the present invention (or the present disclosure) indicates either video coding or video decoding. Video encoding is performed at the source side, typically involving processing (eg, by compressing) the source video images to reduce the amount of data needed to represent the video images (for more efficient storage and/or transmission). Video decoding is performed on the destination side and usually contains inverse processing compared to the encoder for recovering video images. Embodiments relating to "encoding" video images (or images in general, as will be explained later) should be understood to refer to either "encoding" or "decoding" a video sequence. The combination of an encoding part and a decoding part is also called CODEC (Coding and Decoding).

В случае кодирования видео без потерь исходные видеоизображения могут быть восстановлены, то есть, восстановленные видеоизображения имеют то же качество, что и исходные видеоизображения (при условии отсутствия потерь передачи или других потерь данных во время хранения или передачи). В случае кодирования видео с потерями выполняется дополнительное сжатие, например, посредством квантования, для уменьшения объема данных, представляющих видеоизображения, которые не могут быть полностью восстановлены в декодере, то есть качество восстановленных видеоизображений ниже или хуже по сравнению с качеством исходных видеоизображений.In the case of lossless video coding, the original video images can be reconstructed, that is, the reconstructed video images have the same quality as the original video images (assuming no transmission loss or other data loss during storage or transmission). In the case of lossy video coding, additional compression is performed, for example by quantization, to reduce the amount of data representing video images that cannot be fully reconstructed in the decoder, i.e. the quality of the reconstructed video images is lower or worse compared to the quality of the original video images.

Несколько стандартов кодирования видео, начиная с H.261, принадлежат к группе «гибридных видеокодеков с потерями» (т.е. объединяют пространственное и временное предсказания в области выборки и кодирование с двумерным преобразованием для применения квантования в области преобразования). Каждое изображение видеопоследовательности обычно разделяется на набор неперекрывающихся блоков, и кодирование обычно выполняется на уровне блоков. Другими словами, в кодере видео обычно обрабатывается, то есть кодируется, на уровне блока (видеоблока), например, с использованием пространственного (внутреннее изображение) предсказания и временного (внешнее изображение) предсказания для генерирования блока предсказания, вычитание блока предсказания из текущего блока (блока, который в настоящее время обрабатывается/должен быть обработан) для получения остаточного блока, преобразование остаточного блока и квантование остаточного блока в области преобразования для уменьшения объема данных, которые должны быть переданы (сжаты), тогда как в декодере частично выполняется обратная обработка по сравнению с кодером к кодированному или сжатому блоку для восстановления текущего блока для представления. Кроме того, кодер дублирует цикл обработки декодера, так что оба будут генерировать идентичные предсказания (например, внутреннее и внешнее предсказание) и/или повторно восстанавливать для обработки, то есть, кодировать, последующие блоки.Several video coding standards, starting with H.261, belong to the group of "hybrid lossy video codecs" (ie, combine spatial and temporal sample-domain prediction and 2D transform coding to apply transform-domain quantization). Each picture of a video sequence is usually divided into a set of non-overlapping blocks, and encoding is usually done at the block level. In other words, in the encoder, the video is usually processed, that is, encoded, at the block (video block) level, for example, using spatial (inner picture) prediction and temporal (outer picture) prediction to generate a prediction block, subtracting the prediction block from the current block (block currently being processed/to be processed) to obtain a residual block, transforming the residual block and quantizing the residual block in the transform domain to reduce the amount of data to be transmitted (compressed), while the decoder partially performs inverse processing compared to encoder to the encoded or compressed block to restore the current block for presentation. In addition, the encoder duplicates the processing cycle of the decoder so that both will generate identical predictions (eg, intra and inter prediction) and/or re-restore for processing, ie, encoding, subsequent blocks.

Используемый в настоящем описании термин «блок» может быть частью изображения или кадра. Для удобства описания варианты осуществления изобретения описаны в данном документе со ссылкой на высокоэффективное кодирование видео (HEVC) или эталонное программное обеспечение универсальное кодирование видео (VVC), разработанное объединенной группой сотрудничества по кодированию видео (JCT-VC) Группа экспертов ITU-T по кодированию видео (VCEG) и Группа экспертов ISO/IEC по движущимся изображениям (MPEG). Обычный специалист в данной области техники поймет, что варианты осуществления изобретения не ограничиваются HEVC или VVC. Может относиться к CU (блокам кодирования), PU (блокам предсказания) и TU (блокам преобразования). В HEVC CTU (блок дерева кодирования) разделяется на CUs с использованием структуры квадратичного дерева, обозначаемой как дерево кодирования. Решение о том, кодировать ли область изображения с использованием внешнего (временного) или внутреннего (пространственного) предсказания, принимается на уровне CU. Каждый CU может быть дополнительно разделен на один, два или четыре PUs в соответствии с типом разделения PU. Внутри одного PU применяется тот же процесс предсказания, и соответствующая информация передается в декодер на основании PU. После получения остаточного блока путем применения процесса предсказания на основании типа разделения PU, CU может быть разделен на блоки преобразования (TUs) в соответствии с другой структурой дерева квадрантов, аналогичной дереву кодирования для CU. В новейшей разработке технологии сжатия видео для разделения блока кодирования используется кадр разделения дерева квадрантов и двоичного дерева (QTBT). В QTBT блочной структуре CU может иметь квадратную или прямоугольную форму. Например, блок дерева кодирования (CTU) сначала разделяется структурой дерева квадрантов. Листовые узлы дерева квадрантов дополнительно разделяются структурой двоичного дерева. Листовые узлы двоичного дерева называются блоками кодирования (CUs), и используется эта сегментация для предсказания и обработки преобразования без какого-либо дополнительного разделения. Это означает, что CU, PU и TU имеют одинаковый размер блока в QTBT структуре блока кодирования. Параллельно с QTBT блочной структурой было предложено использовать множественность разделов, например, раздел троичного дерева (TT), термин «устройство» может также означать «устройство», «декодер» или «кодер».As used herein, the term "block" may be part of an image or frame. For ease of description, embodiments of the invention are described herein with reference to High Efficiency Video Coding (HEVC) or Universal Video Coding (VVC) reference software developed by the Joint Collaborative Group on Video Coding (JCT-VC) ITU-T Video Coding Expert Group (VCEG) and the ISO/IEC Moving Picture Expert Group (MPEG). One of ordinary skill in the art will appreciate that embodiments of the invention are not limited to HEVC or VVC. May refer to CUs (coding units), PUs (prediction units), and TUs (transformation units). In HEVC, the CTU (coding tree unit) is divided into CUs using a quadratic tree structure referred to as a coding tree. The decision as to whether to encode an image area using extrinsic (temporal) or intrinsic (spatial) prediction is made at the CU level. Each CU may be further partitioned into one, two or four PUs according to the partition type of the PU. Within one PU, the same prediction process is applied, and the corresponding information is transmitted to the decoder based on the PU. After obtaining the residual block by applying a prediction process based on the division type of the PU, the CU may be divided into transform units (TUs) according to a different quadtree structure similar to the coding tree for the CU. The latest development of video compression technology uses a quadtree-binary-tree (QTBT) split frame to split a coding block. In the QTBT block structure, the CU may be square or rectangular. For example, a coding tree unit (CTU) is first divided by a quadtree structure. The leaf nodes of the quadtree are further separated by a binary tree structure. The leaf nodes of the binary tree are called coding units (CUs), and this segmentation is used to predict and process the transform without any additional partitioning. This means that CU, PU and TU have the same block size in the QTBT coding block structure. In parallel with the QTBT box structure, it has been proposed to use a plurality of sections, such as a ternary tree (TT) section, the term "device" can also mean "device", "decoder" or "encoder".

В следующих вариантах осуществления со ссылкой на фиг.11-13 приведено описание кодера 20, декодера 30 и системы 10 кодирования.In the following embodiments, the encoder 20, the decoder 30, and the encoding system 10 will be described with reference to FIGS. 11-13.

В нижеследующем описании сделана ссылка на сопроводительные чертежи, которые составляют часть изобретения и показывают в качестве иллюстрации конкретные аспекты вариантов осуществления изобретения или конкретные аспекты, в которых могут использоваться варианты осуществления настоящего изобретения. Очевидно, что варианты осуществления изобретения могут использоваться в других аспектах и содержать структурные или логические изменения, не изображенные на чертежах. Поэтому нижеследующее подробное описание не следует воспринимать в ограничивающем смысле, и объем настоящего изобретения определяется прилагаемой формулой изобретения.In the following description, reference is made to the accompanying drawings, which form part of the invention and show, by way of illustration, specific aspects of embodiments of the invention or specific aspects in which embodiments of the present invention may be used. Obviously, embodiments of the invention can be used in other aspects and contain structural or logical changes not shown in the drawings. Therefore, the following detailed description should not be taken in a limiting sense, and the scope of the present invention is defined by the appended claims.

Например, понятно, что изобретение в связи с описанным способом также может быть верным для соответствующего устройства или системы, выполненной с возможностью выполнять способ, и наоборот. Например, если описан один или более конкретных этапов способа, соответствующее устройство может включать в себя один или более блоков, например, функциональные блоки для выполнения описанного одного или множества этапов способа (например, один блок, выполняющий один или множество этапов, или множество блоков, каждый из которых выполняет один или более из множества этапов) даже, если такой один или более блоков не описаны и не проиллюстрированы явно на чертежах. С другой стороны, например, если конкретное устройство описано на основании одного или множества блоков, например, функциональных блоков, соответствующий способ может включать в себя один этап для выполнения функциональных возможностей одного или множества блоков (например, один этап, выполняющий функциональные возможности одного или множества блоков, или множество этапов, каждый из которых выполняет функциональные возможности одного или более из множество блоков) даже, если такой один или множество этапов явно не описаны или не проиллюстрированы на чертежах. Кроме того, понятно, что признаки различных примерных вариантов осуществления и/или аспектов, описанных в данном документе, могут быть объединены друг с другом, если специально не указано иное.For example, it is clear that the invention in connection with the described method may also be true for a corresponding device or system configured to perform the method, and vice versa. For example, if one or more specific method steps are described, the corresponding apparatus may include one or more blocks, such as functional blocks for performing one or more method steps described (for example, one block performing one or more steps, or a plurality of blocks each of which performs one or more of the plurality of steps) even if such one or more units are not explicitly described and illustrated in the drawings. On the other hand, for example, if a particular device is described in terms of one or more blocks, such as functional blocks, the corresponding method may include one step to perform the functionality of one or more blocks (for example, one step to perform the functionality of one or more blocks). blocks, or a plurality of steps, each of which performs the functionality of one or more of the plurality of blocks) even if such one or more steps is not explicitly described or illustrated in the drawings. In addition, it is understood that features of the various exemplary embodiments and/or aspects described herein may be combined with one another unless specifically noted otherwise.

Кодирование видео обычно относится к обработке последовательности изображений, которые образуют видео или видеопоследовательность. Вместо термина «изображение» можно использовать термин «кадр» или «изображение» как синонимы в области кодирования видео. Кодирование видео, используемое в настоящем изобретении (или настоящем раскрытии), указывает либо кодирование видео, либо декодирование видео. Кодирование видео выполняется на стороне источника, обычно, содержащее обработку (например, путем сжатия) исходных видеоизображений для уменьшения объема данных, необходимых для представления видеоизображений (для более эффективного хранения и/или передачи). Декодирование видео выполняется на стороне назначения и обычно содержит обратную обработку по сравнению с кодером для восстановления видеоизображений. Варианты осуществления, относящиеся к «кодированию» видеоизображений (или изображений в целом, как будет объяснено позже), следует понимать как относящиеся либо к «кодированию», либо к «декодированию» видеопоследовательности. Комбинация части кодирования и части декодирования также называется CODEC (Coding and Decoding).Video coding generally refers to the processing of a sequence of images that form a video or video sequence. Instead of the term "image", the term "frame" or "image" can be used as synonyms in the field of video coding. The video coding used in the present invention (or the present disclosure) indicates either video coding or video decoding. Video encoding is performed at the source side, typically involving processing (eg, by compressing) the source video images to reduce the amount of data needed to represent the video images (for more efficient storage and/or transmission). Video decoding is performed on the destination side and usually contains inverse processing compared to the encoder for recovering video images. Embodiments relating to "encoding" video images (or images in general, as will be explained later) should be understood to refer to either "encoding" or "decoding" a video sequence. The combination of an encoding part and a decoding part is also called CODEC (Coding and Decoding).

В случае кодирования видео без потерь исходные видеоизображения могут быть восстановлены, то есть, восстановленные видеоизображения имеют то же качество, что и исходные видеоизображения (при условии отсутствия потерь передачи или других потерь данных во время хранения или передачи). В случае кодирования видео с потерями выполняется дополнительное сжатие, например, посредством квантования, для уменьшения объема данных, представляющих видеоизображения, которые не могут быть полностью восстановлены в декодере, то есть качество восстановленных видеоизображений ниже или хуже по сравнению с качеством исходных видеоизображений.In the case of lossless video coding, the original video images can be reconstructed, that is, the reconstructed video images have the same quality as the original video images (assuming no transmission loss or other data loss during storage or transmission). In the case of lossy video coding, additional compression is performed, for example by quantization, to reduce the amount of data representing video images that cannot be fully reconstructed in the decoder, i.e. the quality of the reconstructed video images is lower or worse compared to the quality of the original video images.

Несколько стандартов кодирования видео, начиная с H.261, принадлежат к группе «гибридных видеокодеков с потерями» (т.е. объединяют пространственное и временное предсказания в области выборки и кодирование с двумерным преобразованием для применения квантования в области преобразования). Каждое изображение видеопоследовательности обычно разделяется на набор неперекрывающихся блоков, и кодирование обычно выполняется на уровне блоков. Другими словами, в кодере видео обычно обрабатывается, то есть, кодируется, на уровне блока (видеоблока), например, с использованием пространственного (внутреннее изображение) предсказания и временного (внешнее изображение) предсказания для генерирования блока предсказания, вычитание блока предсказания из текущего блока (блока, который в настоящее время обрабатывается/должен быть обработан) для получения остаточного блока, преобразование остаточного блока и квантование остаточного блока в области преобразования для уменьшения объема данных, которые должны быть переданы (сжаты), тогда как в декодере частично выполняется обратная обработка по сравнению с кодером к кодированному или сжатому блоку для восстановления текущего блока для представления. Кроме того, кодер дублирует цикл обработки декодера, так что оба будут генерировать идентичные предсказания (например, внутреннее и внешнее предсказание) и/или повторно восстанавливать для обработки, то есть, кодировать, последующие блоки.Several video coding standards, starting with H.261, belong to the group of "hybrid lossy video codecs" (ie, combine spatial and temporal sample-domain prediction and 2D transform coding to apply transform-domain quantization). Each picture of a video sequence is usually divided into a set of non-overlapping blocks, and encoding is usually done at the block level. In other words, in the encoder, video is usually processed, that is, encoded, at the block (video block) level, for example, using spatial (inner picture) prediction and temporal (outer picture) prediction to generate a prediction block, subtracting the prediction block from the current block ( block currently being processed/to be processed) to obtain a residual block, transforming the residual block, and quantizing the residual block in the transform domain to reduce the amount of data to be transmitted (compressed), while the decoder partially performs inverse processing compared to with the encoder to the encoded or compressed block to reconstruct the current block for presentation. In addition, the encoder duplicates the processing cycle of the decoder so that both will generate identical predictions (eg, intra and inter prediction) and/or re-restore for processing, ie, encoding, subsequent blocks.

Используемый в настоящем описании термин «блок» может быть частью изображения или кадра. Для удобства описания варианты осуществления изобретения описаны в данном документе со ссылкой на высокоэффективное кодирование видео (HEVC) или эталонное программное обеспечение универсальное кодирование видео (VVC), разработанное объединенной группой сотрудничества по кодированию видео (JCT-VC) Группа экспертов ITU-T по кодированию видео (VCEG) и Группа экспертов ISO/IEC по движущимся изображениям (MPEG). Обычный специалист в данной области техники поймет, что варианты осуществления изобретения не ограничиваются HEVC или VVC. Может относиться к CU (блокам кодирования), PU (блокам предсказания) и TU (блокам преобразования). В HEVC CTU (блок дерева кодирования) разделяется на CUs с использованием структуры квадратичного дерева, обозначаемой как дерево кодирования. Решение о том, кодировать ли область изображения с использованием внешнего (временного) или внутреннего (пространственного) предсказания, принимается на уровне CU. Каждый CU может быть дополнительно разделен на один, два или четыре PUs в соответствии с типом разделения PU. Внутри одного PU применяется тот же процесс предсказания, и соответствующая информация передается в декодер на основании PU. После получения остаточного блока путем применения процесса предсказания на основании типа разделения PU, CU может быть разделен на блоки преобразования (TUs) в соответствии с другой структурой дерева квадрантов, аналогичной дереву кодирования для CU. В новейшей разработке технологии сжатия видео для разделения блока кодирования используется кадр разделения дерева квадрантов и двоичного дерева (QTBT). В QTBT блочной структуре CU может иметь квадратную или прямоугольную форму. Например, блок дерева кодирования (CTU) сначала разделяется структурой дерева квадрантов. Листовые узлы дерева квадрантов дополнительно разделяются структурой двоичного дерева. Листовые узлы двоичного дерева называются блоками кодирования (CUs), и используется эта сегментация для предсказания и обработки преобразования без какого-либо дополнительного разделения. Это означает, что CU, PU и TU имеют одинаковый размер блока в QTBT структуре блока кодирования. Параллельно с QTBT блочной структурой было предложено использовать множественность разделов, например, раздел троичного дерева (TT), термин «устройство» может также означать «устройство», «декодер» или «кодер».As used herein, the term "block" may be part of an image or frame. For ease of description, embodiments of the invention are described herein with reference to High Efficiency Video Coding (HEVC) or Universal Video Coding (VVC) reference software developed by the Joint Collaborative Group on Video Coding (JCT-VC) ITU-T Video Coding Expert Group (VCEG) and the ISO/IEC Moving Picture Expert Group (MPEG). One of ordinary skill in the art will appreciate that embodiments of the invention are not limited to HEVC or VVC. May refer to CUs (coding units), PUs (prediction units), and TUs (transformation units). In HEVC, the CTU (coding tree unit) is divided into CUs using a quadratic tree structure referred to as a coding tree. The decision as to whether to encode an image area using extrinsic (temporal) or intrinsic (spatial) prediction is made at the CU level. Each CU may be further partitioned into one, two or four PUs according to the partition type of the PU. Within one PU, the same prediction process is applied, and the corresponding information is transmitted to the decoder based on the PU. After obtaining the residual block by applying a prediction process based on the division type of the PU, the CU may be divided into transform units (TUs) according to a different quadtree structure similar to the coding tree for the CU. The latest development of video compression technology uses a quadtree-binary-tree (QTBT) split frame to split a coding block. In the QTBT block structure, the CU may be square or rectangular. For example, a coding tree unit (CTU) is first divided by a quadtree structure. The leaf nodes of the quadtree are further separated by a binary tree structure. The leaf nodes of the binary tree are called coding units (CUs), and this segmentation is used to predict and process the transform without any additional partitioning. This means that CU, PU and TU have the same block size in the QTBT coding block structure. In parallel with the QTBT box structure, it has been proposed to use a plurality of sections, such as a ternary tree (TT) section, the term "device" can also mean "device", "decoder" or "encoder".

В следующих вариантах осуществления со ссылкой на фиг.11-13 приведено описание кодера 20, декодера 30 и системы 10 кодирования.In the following embodiments, the encoder 20, the decoder 30, and the encoding system 10 will be described with reference to FIGS. 11-13.

Фиг.11A представляет собой концептуальную или схематическую блок-схему, иллюстрирующую пример системы 10 кодирования, например, система 10 кодирования видео, которая может использовать способы настоящего изобретения (настоящее раскрытие). Кодер 20 (например, видеокодер 20) и декодер 30 (например, видеодекодер 30) системы 10 кодирования видео представляют примеры устройств, которые могут быть выполнены с возможностью выполнять способы в соответствии с различными примерами, описанными в настоящем изобретении. Как показано на фиг.11A, система 10 кодирования содержит устройство 12 источника, выполненное с возможностью предоставлять закодированные данные 13, например, закодированное изображение 13, например, в устройство 14 назначения для декодирования закодированных данных 13.11A is a conceptual or schematic block diagram illustrating an example of an encoding system 10, such as a video encoding system 10, that may use the methods of the present invention (the present disclosure). Encoder 20 (eg, video encoder 20) and decoder 30 (eg, video decoder 30) of video coding system 10 represent examples of devices that can be configured to perform methods in accordance with the various examples described in the present invention. As shown in FIG. 11A, the encoding system 10 includes a source device 12 configured to provide encoded data 13, such as an encoded image 13, for example, to a destination device 14 to decode the encoded data 13.

Устройство 12 источника содержит кодер 20 и может дополнительно, т.е. в качестве варианта, содержать источник 16 изображения, блок 18 предварительной обработки, например, блок 18 предварительной обработки изображения и интерфейс связи или блок 22 связи.The source device 12 includes an encoder 20 and may additionally, i. e. alternatively, comprise an image source 16, a pre-processing unit 18, such as an image pre-processing unit 18, and a communication interface or communication unit 22.

Источник 16 изображения может содержать или быть устройством захвата изображения любого типа, например, для захвата реального изображения и/или любого вида изображения или комментария (для кодирования содержимого экрана некоторые тексты на экране также считаются часть изображения или изображения, которое должно быть закодировано), устройство генерирования, например процессор компьютерной графики для генерирования компьютерного анимированного изображения, или любое устройство для получения и/или предоставления реального изображения, компьютерного анимированного изображения (например, содержимое экрана, изображение виртуальной реальности (VR)) и/или любую их комбинацию (например, изображение дополненной реальности (AR)). Источником изображения может быть любой тип памяти или хранилища, в котором хранятся любые из вышеупомянутых изображений.Image source 16 may comprise or be any type of image capture device, such as for capturing a real image and/or any kind of image or commentary (for screen encoding, some texts on the screen are also considered part of the image or image to be encoded), device generating, such as a computer graphics processor for generating a computer animated image, or any device for producing and/or providing a real image, a computer animated image (e.g., screen content, a virtual reality (VR) image), and/or any combination thereof (e.g., an image augmented reality (AR)). The image source can be any type of memory or storage that stores any of the above images.

(Цифровое) изображение представляет собой или может рассматриваться как двумерный массив или матрица выборок со значениями интенсивности. Выборка в массиве также может называться пикселем (сокращенная форма элемента изображения) или пикселем. Количество выборок в горизонтальном и вертикальном направлении (или по оси) массива или изображения определяет размер и/или разрешение изображения. Для представления цвета обычно используются три цветовых компонента, то есть изображение может быть представлено или содержать в себя три массива выборок. В формате RBG или цветовом пространстве изображение содержит соответствующий массив выборок красного, зеленого и синего цветов. Однако при кодировании видео каждый пиксель обычно представлен в формате яркости/цветности или цветовом пространстве, например YCbCr, который содержит компонент яркости, обозначенный Y (иногда вместо него также используется L), и два компонента цветности, обозначенные Cb и Cr. Компонент Y яркости (или короткости, яркость) представляет яркость или интенсивность уровня серого (например, как в полутоновом изображении), в то время как два компонента цветности (или коротко, цветность) Cb и Cr представляют компоненты цветности или информация о цвете. Соответственно, изображение в формате YCbCr содержит массив выборок яркости значений выборок яркости (Y) и два массива выборок цветности значений цветности (Cb и Cr). Изображения в формате RGB могут быть преобразованы или преобразованы в формат YCbCr, и наоборот, этот процесс также известен как преобразование цвета или конвертация. Если изображение является монохромным, оно может содержать только массив выборок яркости.A (digital) image is, or can be viewed as, a two-dimensional array or matrix of samples with intensity values. A sample in an array can also be called a pixel (short for picture element) or a pixel. The number of samples in the horizontal and vertical direction (or axis) of the array or image determines the size and/or resolution of the image. Three color components are typically used to represent a color, i.e. an image can be represented or contain three arrays of samples. In RBG format or color space, an image contains a corresponding array of red, green, and blue color samples. However, in video encoding, each pixel is typically represented in a luma/chrominance format or color space, such as YCbCr, which contains a luminance component labeled Y (sometimes L is also used instead) and two chrominance components labeled Cb and Cr. The Y component of luma (or shortness, luminance) represents the brightness or intensity of the gray level (eg, as in a grayscale image), while the two chrominance (or short, chrominance) components Cb and Cr represent chrominance components or color information. Accordingly, an image in YCbCr format contains an array of luma samples of luminance sample values (Y) and two chrominance sample arrays of chrominance values (Cb and Cr). RGB images can be converted or converted to YCbCr format and vice versa, this process is also known as color conversion or conversion. If the image is monochrome, it can only contain an array of brightness samples.

Источник 16 изображения (например, источник 16 видео) может быть, например, камерой для захвата изображения, памятью, например, память изображений, содержащая или хранящая ранее захваченное или сгенерированное изображение, и/или интерфейс любого типа (внутренний или внешний) для получения или приема изображения. Камера может быть, например, локальной или интегрированной камерой, интегрированной в устройство источника, память может быть локальной или интегрированной памятью, например, интегрировано в устройство источника. Интерфейс может быть, например, внешним интерфейсом для приема изображения от внешнего источника видео, например, внешнего устройства захвата изображения, такого как камера, внешней памяти или внешнего устройства формирования изображения, например, внешнего компьютерного графического процессора, компьютер или сервер. Интерфейс может быть любым, например, проводной или беспроводной интерфейс, оптический интерфейс в соответствии с любым проприетарным или стандартизованным протоколом интерфейса. Интерфейс для получения данных 17 изображения может быть тем же интерфейсом, что и интерфейс 22 связи, или его частью.Image source 16 (e.g., video source 16) may be, for example, a camera for capturing an image, a memory, such as an image memory containing or storing a previously captured or generated image, and/or any type of interface (internal or external) for receiving or receiving an image. The camera may be, for example, a local or integrated camera integrated into the source device, the memory may be local or integrated memory, for example, integrated into the source device. The interface may be, for example, an external interface for receiving an image from an external video source, such as an external image capture device such as a camera, external memory, or an external imaging device, such as an external computer GPU, computer, or server. The interface can be anything, such as a wired or wireless interface, an optical interface according to any proprietary or standardized interface protocol. The interface for obtaining image data 17 may be the same interface as the communication interface 22 or part of it.

В отличие от блока 18 предварительной обработки и обработки, выполняемой блоком 18 предварительной обработки, изображение или данные 17 изображения (например, видеоданные 16) также могут называться необработанным изображением или данными 17 исходного изображения.Unlike the pre-processing unit 18 and the processing performed by the pre-processing unit 18, the image or image data 17 (eg, video data 16) may also be referred to as raw image or original image data 17.

Блок 18 предварительной обработки выполнен с возможностью принимать (необработанные) данные 17 изображения и выполнять предварительную обработку данных 17 изображения для получения предварительно обработанного изображения 19 или предварительно обработанных данных 19 изображения. Предварительная обработка выполняется блоком 18 предварительной обработки, например, содержит обрезку, преобразование цветового формата (например, из RGB в YCbCr), цветокоррекцию или устранение шумов. Можно понять, что блок 18 предварительной обработки может быть возможным компонентом.The pre-processing unit 18 is configured to receive (raw) image data 17 and perform pre-processing of the image data 17 to obtain a pre-processed image 19 or pre-processed image data 19. Pre-processing is performed by the pre-processing unit 18, such as cropping, color format conversion (eg from RGB to YCbCr), color correction or denoising. It can be understood that the preprocessing unit 18 may be a possible component.

Кодер 20 (например, видеокодер 20) выполнен с возможностью принимать предварительно обработанные данные 19 изображения и предоставлять данные 21 закодированного изображения (дополнительные подробности будут описаны ниже, например, со ссылкой на фиг.12 или фиг.14).The encoder 20 (eg, video encoder 20) is configured to receive pre-processed image data 19 and provide encoded image data 21 (more details will be described below, for example, with reference to FIG. 12 or FIG. 14).

Интерфейс 22 связи устройства 12 источника может быть выполнен с возможностью принимать данные 21 закодированного изображения и передавать данные 21 закодированного изображения (или любой их дальнейшей обработанной версии) по каналу 13 связи в другое устройство, например, устройство 14 назначения или любое другое устройство для хранения или прямого восстановления.Communication interface 22 of source device 12 may be configured to receive encoded image data 21 and transmit encoded image data 21 (or any further processed version thereof) over communication channel 13 to another device, such as destination device 14 or any other device for storage or direct recovery.

Интерфейс 22 связи устройства 12 источника может быть выполнен с возможностью принимать данные 21 закодированного изображения и передавать другому устройству, например, в устройство 14 назначения или любое другое устройство для хранения или прямого восстановления или для обработки данных 21 закодированного изображения, соответственно, перед сохранением кодированных данных 13 и/или передачей закодированных данных 13 в другое устройство, например, устройство 14 назначения или любое другое устройство для декодирования или хранения.The communication interface 22 of the source device 12 may be configured to receive the encoded image data 21 and transmit to another device, for example, to the destination device 14 or any other device for storage or direct retrieval or for processing the encoded image data 21, respectively, before storing the encoded data. 13 and/or transmitting the encoded data 13 to another device, such as a destination device 14 or any other device for decoding or storage.

Устройство 14 назначения содержит декодер 30 (например, видеодекодер 30) и может дополнительно, т.е. в качестве варианта, содержит интерфейс связи или блок 28 связи, блок 32 постобработки и устройство 34 отображения.Destination device 14 includes a decoder 30 (eg video decoder 30) and may additionally, i. e. alternatively, it contains a communication interface or a communication unit 28, a post-processing unit 32 and a display device 34.

Интерфейс 28 связи устройства 14 назначения выполнен с возможностью принимать данные 21 закодированного изображения (или любой их дополнительно обработанной версии), например, непосредственно из устройства 12 источника или из любого другого источника, например, запоминающее устройство, например, устройство хранения данных закодированного изображения, и предоставить данные 21 закодированного изображения в декодер 30.The communication interface 28 of the destination device 14 is configured to receive the encoded image data 21 (or any further processed version thereof), for example, directly from the source device 12 or from any other source, for example, a storage device, for example, an encoded image data storage device, and provide encoded picture data 21 to decoder 30.

Интерфейс 28 связи устройства 14 назначения выполнен с возможностью принимать данные 21 кодированного изображения или кодированных данных 13, например, непосредственно из устройства 12 источника или из любого другого источника, например, запоминающее устройство, например, устройство хранения данных закодированного изображения.The communication interface 28 of the destination device 14 is configured to receive encoded image data 21 or encoded data 13, for example, directly from the source device 12 or from any other source, such as a storage device, such as an encoded image data storage device.

Интерфейс 22 связи и интерфейс 28 связи могут быть выполнены с возможностью передавать или принимать данные 21 кодированного изображения или закодированных данных 13 через прямую линию связи между устройством 12 источника и устройством 14 назначения, например, прямое проводное или беспроводное соединение или через любую сеть, например, проводная или беспроводная сеть или любая их комбинация, или любая частная и общественная сеть, или любая их комбинация.Communication interface 22 and communication interface 28 may be configured to transmit or receive encoded image data 21 or encoded data 13 via a direct link between source device 12 and destination device 14, such as a direct wired or wireless connection, or over any network, such as wired or wireless network or any combination thereof, or any private and public network or any combination thereof.

Интерфейс 22 связи может быть, например, выполнен с возможностью упаковывать данные 21 закодированного изображения в соответствующий формат, например, пакеты и/или обрабатывать данные закодированного изображения с использованием любого вида кодирования передачи или обработки для передачи по каналу связи или сети связи.The communication interface 22 may, for example, be configured to pack the encoded image data 21 into an appropriate format, such as packets, and/or process the encoded image data using any kind of transmission coding or processing for transmission over a communication channel or communication network.

Интерфейс 28 связи, образующий аналог интерфейса 22 связи, может быть, например, выполнен с возможностью распаковки закодированных данных 13 для получения данных 21 закодированного изображения.The communication interface 28, analogous to the communication interface 22, may, for example, be configured to decompress the encoded data 13 to obtain encoded image data 21.

Интерфейс 28 связи, образующий аналог интерфейса 22 связи, может быть, например, выполнен с возможностью принимать переданные данные и обрабатывать передаваемые данные с использованием любого вида соответствующего декодирования передачи или обработки и/или распаковки для получения данных 21 закодированного изображения. Communication interface 28 analogous to communication interface 22 may, for example, be configured to receive transmitted data and process transmitted data using any kind of appropriate transmission decoding or processing and/or decompression to obtain encoded image data 21.

Как интерфейс 22 связи, так и интерфейс 28 связи могут быть сконфигурированы как однонаправленные интерфейсы связи, как показано стрелкой для данных 13 закодированного изображения на фиг.11A, указывающей от устройства 12 источника к устройству 14 назначения или, как интерфейсы двунаправленной связи, и может быть выполнен с возможностью, например, отправлять и получать сообщения, например, для установки соединения, подтверждения и обмена любой другой информацией, относящейся к каналу связи и/или передаче данных, например, передача данных закодированного изображения.Both the communication interface 22 and the communication interface 28 can be configured as unidirectional communication interfaces as shown by the arrow for the encoded image data 13 in FIG. 11A pointing from source device 12 to destination device 14 or as bidirectional communication interfaces, and can be configured, for example, to send and receive messages, for example, to establish a connection, acknowledge and exchange any other information related to the communication channel and/or data transmission, for example, the transmission of encoded image data.

Декодер 30 выполнен с возможностью принимать данные 21 кодированного изображения и предоставления данных 31 декодированного изображения или декодированного изображения 31 (дополнительные подробности будут описаны ниже, например, на основании фиг.13 или фиг.15).The decoder 30 is configured to receive encoded image data 21 and provide decoded image data 31 or decoded image 31 (more details will be described below, for example, based on FIG. 13 or FIG. 15).

Постпроцессор 32 устройства 14 назначения выполнен с возможностью пост-обработки данных 31 декодированного изображения (также называемых данными восстановленного изображения), например, декодированное изображение 31, чтобы получить данные 33 изображения после обработки, например, пост-обработанное изображение 33. Постобработка, выполняемая блоком 32 постобработки, может содержать, например, преобразование цветового формата (например, из YCbCr в RGB), цветокоррекция, обрезка или повторная выборка, или любая другая обработка, например, для подготовки данных 31 декодированного изображения для отображения, например, с помощью устройства 34 отображения.The post processor 32 of the destination device 14 is configured to post-process the decoded image data 31 (also referred to as reconstructed image data), such as the decoded image 31, to obtain post-processed image data 33, such as the post-processed image 33. Post-processing performed by block 32 post-processing may include, for example, color format conversion (for example, from YCbCr to RGB), color correction, cropping or resampling, or any other processing, for example, to prepare the decoded image data 31 for display, for example, using the display device 34.

Устройство 34 отображения устройства 14 назначения выполнено с возможностью принимать данные 33 изображения с постобработкой для отображения изображения, например, пользователю или зрителю. Устройство 34 отображения может быть или содержать любой вид дисплея для представления восстановленного изображения, например, встроенный или внешний дисплей или монитор. Дисплеи могут, например, состоят из жидкокристаллических дисплеев (LCD), дисплеев на органических светодиодах (OLED), плазменных дисплеев, проекторов, микросветодиодных дисплеев, жидких кристаллов на кремнии (LCoS), цифрового светового процессора (DLP) или любого другого дисплея.The display device 34 of the destination device 14 is configured to receive post-processed image data 33 for displaying the image to, for example, a user or viewer. The display device 34 may be or comprise any kind of display for presenting the reconstructed image, such as a built-in or external display or monitor. The displays may, for example, consist of liquid crystal displays (LCD), organic light emitting diode (OLED) displays, plasma displays, projectors, micro LED displays, liquid crystals on silicon (LCoS), digital light processor (DLP) or any other display.

Хотя фиг.11A изображает устройство 12 источника и устройство 14 назначения как отдельные устройства, варианты осуществления устройств также могут содержать обе или обе функциональные возможности, устройство 12 источника или соответствующие функциональные возможности и устройство 14 назначения или соответствующие функциональные возможности. В таких вариантах осуществления устройство 12 источника или соответствующие функциональные возможности и устройство 14 назначения или соответствующие функциональные возможности могут быть реализованы с использованием одного и того же аппаратного и/или программного обеспечения или с помощью отдельного аппаратного и/или программного обеспечения или любой их комбинации.Although FIG. 11A depicts source device 12 and destination device 14 as separate devices, device embodiments may also comprise both or both functionality, source device 12 or related functionality, and destination device 14 or related functionality. In such embodiments, source device 12 or related functionality and destination device 14 or related functionality may be implemented using the same hardware and/or software, or using separate hardware and/or software, or any combination thereof.

Как будет очевидно для специалиста на основании описания, наличие и (точное) разделение функциональных возможностей различных блоков или функций в устройстве 12 источника и/или устройстве 14 назначения, как показано на фиг.11A, может варьироваться в зависимости от фактического устройства и реализации.As will be apparent to those skilled in the art based on the description, the presence and (exact) separation of functionality of various blocks or functions in source device 12 and/or destination device 14 as shown in FIG. 11A may vary depending on the actual device and implementation.

Кодер 20 (например, видеокодер 20) и декодер 30 (например, видеодекодер 30), каждый может быть реализован как любая из множества подходящих схем, таких как один или более микропроцессоров, процессоров цифровых сигналов (DSP), прикладных программ, специальные интегральные схемы (ASIC), программируемые пользователем вентильные матрицы (FPGA), дискретная логика, оборудование или любые их комбинации. Если способы частично реализованы в программном обеспечении, устройство может хранить инструкции для программного обеспечения на подходящем постоянном машиночитаемом носителе данных и может выполнять инструкции в аппаратных средствах, используя один или более процессоров, чтобы выполнять способы настоящего изобретения. Любое из вышеперечисленного (включающее в себя оборудование, программное обеспечение, комбинацию аппаратного и программного обеспечения и т.д.) может рассматриваться как один или более процессоров. Каждый из видеокодера 20 и видеодекодера 30 может быть включен в один или более кодеров или декодеров, каждый из которых может быть интегрирован как часть комбинированного кодера/декодера (CODEC) в соответствующем устройстве.Encoder 20 (eg, video encoder 20) and decoder 30 (eg, video decoder 30) may each be implemented as any of a variety of suitable circuits, such as one or more microprocessors, digital signal processors (DSPs), application programs, application specific integrated circuits ( ASICs), Field Programmable Gate Arrays (FPGAs), Discrete Logic, Hardware, or any combination thereof. If the methods are partially implemented in software, the device may store instructions for the software on a suitable non-volatile computer-readable storage medium and may execute instructions in hardware using one or more processors to perform the methods of the present invention. Any of the above (including hardware, software, a combination of hardware and software, etc.) may be considered one or more processors. Each of video encoder 20 and video decoder 30 may be included 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.

Кодер 20 может быть реализован через схему 46 обработки для воплощения различных модулей, как обсуждалось в отношении кодера 20 на фиг.12 и/или любой другой кодирующей системе или подсистеме, описанной в данном документе. Декодер 30 может быть реализован через схему 46 обработки для воплощения различных модулей, как обсуждалось в отношении декодера 30 на фиг.13 и/или любую другую систему или подсистему декодера, описанную в данном документе. Схема обработки может быть выполнена с возможностью выполнять различные операции, как описано ниже. Как показано на фиг.15, если способы частично реализованы в программном обеспечении, устройство может хранить инструкции для программного обеспечения на подходящем постоянном машиночитаемом носителе данных и может выполнять инструкции в аппаратных средствах, используя один или более процессоров для выполнения способов этого настоящего изобретения. Любой из видеокодера 20 и видеодекодера 30 может быть интегрирован как часть комбинированного кодера/декодера (CODEC) в одном устройстве, например, как показано на фиг.11B.Encoder 20 may be implemented via processing circuitry 46 to implement various modules as discussed with respect to encoder 20 in FIG. 12 and/or any other coding system or subsystem described herein. Decoder 30 may be implemented via processing circuitry 46 to implement various modules as discussed with respect to decoder 30 in FIG. 13 and/or any other decoder system or subsystem described herein. The processing circuit may be configured to perform various operations as described below. As shown in FIG. 15, if the methods are partially implemented in software, the device may store instructions for the software on a suitable non-volatile computer-readable storage medium and may execute the instructions in hardware using one or more processors to execute the methods of this invention. Either of video encoder 20 and video decoder 30 may be integrated as part of a combined encoder/decoder (CODEC) in one device, for example, as shown in FIG. 11B.

Устройство 12 источника может называться устройством для кодирования видео или приспособлением для кодирования видео. Устройство 14 назначения может называться устройством для декодирования видео или приспособлением для декодирования видео. Устройство 12 источника и устройство 14 назначения могут быть примерами устройств для кодирования видео или приспособления кодирования видео.The source device 12 may be referred to as a video encoding device or a video encoding tool. The destination device 14 may be referred to as a video decoding device or a video decoding tool. Source device 12 and destination device 14 may be examples of video encoding devices or video encoding appliances.

Устройство 12 источника и устройство 14 назначения могут содержать любое из широкого диапазона устройств, включающие в себя любые виды портативных или стационарных устройств, например, ноутбуки или портативные компьютеры, мобильные телефоны, смартфоны, планшеты или планшетные компьютеры, камеры, настольные компьютеры, телевизионные приставки, телевизоры, устройства отображения, цифровые медиаплееры, игровые приставки, устройства потокового видео (например, серверы служб контента или контент серверы доставки), широковещательное приемное устройство, широковещательное передающее устройство и т.п. и могут использовать или не использовать любой тип операционной системы.Source device 12 and destination device 14 may comprise any of a wide range of devices, including any kind of portable or stationary devices, such as laptops or laptops, mobile phones, smartphones, tablets or tablet computers, cameras, desktop computers, set-top boxes, televisions, display devices, digital media players, game consoles, video streaming devices (eg, content service servers or content delivery servers), broadcast receiver, broadcast transmitter, and the like. and may or may not use any type of operating system.

В некоторых случаях устройство 12 источника и устройство 14 назначения могут быть оборудованы для беспроводной связи. Таким образом, устройство 12 источника и устройство 14 назначения могут быть устройствами беспроводной связи.In some cases, source device 12 and destination device 14 may be equipped for wireless communication. Thus, source device 12 and destination device 14 may be wireless communication devices.

В некоторых случаях система 10 кодирования видео, проиллюстрированная на фиг. 11A, является просто примером, и способы настоящего изобретения могут применяться к настройкам кодирования видео (например, кодирование видео или декодирование видео), которые не обязательно включают в себя какой-либо обмен данными между устройствами кодирования и декодирования. В других примерах данные извлекаются из локальной памяти, передаются по сети и т.п. Устройство для кодирования видео может кодировать и сохранять данные в памяти, и/или устройство для декодирования видео может извлекать и декодировать данные из памяти. В некоторых примерах кодирование и декодирование выполняются устройствами, которые не обмениваются данными друг с другом, а просто кодируют данные в памяти и/или извлекают и декодируют данные из памяти.In some cases, the video coding system 10 illustrated in FIG. 11A is just an example, and the methods of the present invention can be applied to video encoding settings (eg, video encoding or video decoding) that do not necessarily include any communication between encoding and decoding devices. In other examples, data is retrieved from local memory, transferred over a network, and the like. The video encoding device may encode and store data in memory, and/or the video decoding device may retrieve and decode data from memory. In some examples, encoding and decoding are performed by devices that do not communicate with each other, but simply encode data in memory and/or retrieve and decode data from memory.

Для удобства описания в настоящем документе описаны варианты осуществления изобретения, например, со ссылкой на высокоэффективное кодирование видео (HEVC) или на эталонное программное обеспечение универсального кодирования видео (VVC), стандарта кодирования видео следующего поколения, разработанного группой сотрудничества по кодированию видео (JCT-VC) группы экспертов ITU-T по кодированию видео (VCEG) и ISO/IEC группой экспертов по движущимся изображениям (MPEG). Для специалиста в данной области техники очевидно, что варианты осуществления изобретения не ограничиваются HEVC или VVC. Следует понимать, что для каждого из вышеупомянутых примеров, описанных со ссылкой на видеокодер 20, видеодекодер 30 может быть выполнен с возможностью выполнять взаимный процесс. Что касается элементов синтаксиса сигнализации, видеодекодер 30 может быть выполнен с возможностью принимать и анализировать такой элемент синтаксиса и выполнять соответствующее декодирование видеоданных. В некоторых примерах видеокодер 20 может энтропийно кодировать один или более элементов синтаксиса в кодированный битовый поток видео. В таких примерах видеодекодер 30 может анализировать такой элемент синтаксиса и соответственно декодировать ассоциированные видеоданные.For convenience of description, embodiments of the invention are described herein, for example, with reference to High Efficiency Video Coding (HEVC) or Universal Video Coding (VVC) reference software, the next generation video coding standard developed by the Collaborative Video Coding Group (JCT-VC). ) the ITU-T Video Coding Expert Group (VCEG) and the ISO/IEC Moving Picture Expert Group (MPEG). For a person skilled in the art it is obvious that the embodiments of the invention are not limited to HEVC or VVC. It should be understood that for each of the above examples described with reference to video encoder 20, video decoder 30 may be configured to perform a reciprocal process. With respect to signaling syntax elements, video decoder 30 may be configured to receive and parse such syntax element and perform appropriate decoding of the video data. In some examples, video encoder 20 may entropy encode one or more syntax elements into an encoded video bitstream. In such examples, video decoder 30 may parse such a syntax element and decode the associated video data accordingly.

Фиг.11B представляет собой иллюстративную схему другого примера системы 40 кодирования видео, включающую в себя кодер 20 по фиг.12 и/или декодер 30 по фиг.13 согласно примерному варианту осуществления. Система 40 может реализовывать способы в соответствии с различными примерами, описанными в настоящем изобретении. В проиллюстрированной реализации система 40 кодирования видео может содержать в себя устройство (устройства) 41 формирования изображения, видеокодер 100, видеодекодер 30 (и/или видеокодер, реализованный посредством логической схемы 47 блока (блоков) 46 обработки), антенну 42, один или более процессоров 43, одно или более хранилищ 44 памяти и/или устройство 45 отображения.11B is an illustrative diagram of another example of a video coding system 40 including encoder 20 of FIG. 12 and/or decoder 30 of FIG. 13 according to an exemplary embodiment. System 40 may implement methods in accordance with the various examples described in the present invention. In the illustrated implementation, the video coding system 40 may include an imaging device(s) 41, a video encoder 100, 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 stores 44 and/or a display device 45.

Как показано, устройство (устройства) 41 формирования изображения, антенна 42, блок (блоки) 46 обработки, логическая схема 47, видеокодер 20, видеодекодер 30, процессор (процессоры) 43, хранилище (хранилища) 44 памяти и/или устройство 45 отображения могут взаимодействовать друг с другом. Как обсуждалось, хотя и проиллюстрировано как с видеокодером 20, так и с видеодекодером 30, в различных примерах система 40 кодирования видео может содержать в себя только видеокодер 20 или только видеодекодер 30.As shown, imaging device(s) 41, antenna 42, processing unit(s) 46, logic circuit 47, video encoder 20, video decoder 30, processor(s) 43, memory storage(s) 44, and/or display device 45 may interact with each other. As discussed, although illustrated with both video encoder 20 and video decoder 30, in various examples, video coding system 40 may include only video encoder 20 or only video decoder 30.

Как показано, в некоторых примерах система 40 кодирования видео может включать в себя антенну 42. Антенна 42 может быть, например, выполнена с возможностью передавать или принимать закодированный битовый поток видеоданных. Кроме того, в некоторых примерах система 40 кодирования видео может содержать устройство 45 отображения. Устройство 45 отображения может быть выполнено с возможностью представлять видеоданные. Как показано, в некоторых примерах, логическая схема 47 может быть реализована посредством блока (блоков) 46 обработки. Блок (блоки) 46 обработки может включать в себя логику интегральной схемы (ASIC) для конкретного приложения, графический процессор (процессоры), процессор (процессоры) общего назначения или т.п. Система 40 кодирования видео также может содержать в себя дополнительный процессор (процессоры) 43, который аналогичным образом может содержать в себя логику специализированной интегральной схемы (ASIC), графический процессор (процессоры), процессор (процессоры) общего назначения и т.п. В некоторых примерах логическая схема 47 может быть реализована с помощью аппаратного обеспечения, специализированного оборудования для кодирования видео и т.п., и процессор (процессоры) 43 может реализовывать программное обеспечение общего назначения, операционные системы и т.п. Кроме того, хранилище (хранилища) 44 памяти может быть любым типом памяти, например энергозависимой памятью (например, статической памятью с произвольным доступом (SRAM), динамической памятью с произвольным доступом (DRAM) и т.д.) или энергонезависимой памятью (например, флэш-памятью), память и т.д.) и т.д. В неограничивающем примере хранилище (хранилища) 44 памяти может быть реализовано с помощью кэш-памяти. В некоторых примерах логическая схема 47 может обращаться к хранилищу (хранилищам) 44 памяти (например, для реализации буфера изображения). В других примерах логическая схема 47 и/или блок (блоки) 46 обработки могут содержать в себя хранилища памяти (например, кэш и т.п.) для реализации буфера изображений и т.п.As shown, in some examples, video coding system 40 may include an antenna 42. Antenna 42 may, for example, be configured to transmit or receive an encoded video bitstream. In addition, in some examples, the video encoding system 40 may include a display device 45 . 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, graphics processor(s), general purpose 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 implement general purpose software, operating systems, and the like. In addition, memory storage(s) 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), memory, etc.), etc. In a non-limiting example, the memory store(s) 44 may be implemented with a cache. In some examples, logic circuitry 47 may access memory store(s) 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, and the like.

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

Видеодекодер 30 может быть реализован аналогично тому, как реализован с помощью логической схемы 47, для воплощения различных модулей, как обсуждалось в отношении декодера 30 на фиг.3 и/или любую другую систему или подсистему декодера, описанную в данном документе. В некоторых примерах видеодекодер 30 может быть реализован с помощью логической схемы, может содержать буфер изображения (например, посредством блока (блоков) 420 обработки или хранилища (хранилищ) 44 памяти)) и графического процессора (например, блоком (блоками) 46 обработки). Графический процессор может быть коммуникативно связан с буфером изображения. Графический процессор может содержать видеодекодер 30, реализованный посредством логической схемы 47, для воплощения различных модулей, как обсуждалось со ссылкой на фиг. 13 и/или любую другую систему или подсистему декодера, описанную в данном документе.Video decoder 30 may be implemented in a manner similar to that implemented by logic circuitry 47 to implement various modules as discussed with respect to decoder 30 in FIG. 3 and/or any other decoder system or subsystem described herein. In some examples, video decoder 30 may be implemented with logic, may comprise an image buffer (eg, via processing unit(s) 420 or memory storage(s) 44)) and a graphics processor (eg, processing unit(s) 46). The graphics processor may be communicatively coupled to the image buffer. The GPU may include a video decoder 30 implemented by logic 47 to implement various modules, as discussed with reference to FIG. 13 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 contain data, indicators, index values, mode selection data, and the like associated with encoding a video frame as discussed herein, such as data associated with division coding (e.g., transform coefficients or quantized transform coefficients, possible indicators (as discussed) and/or data defining the coding section). The video coding system 40 may also include a video decoder 30 connected to the antenna 42 and configured to decode the encoded bitstream. The display device 45 is configured to present video frames.

Фиг.12 показывает схематическую/концептуальную блок-схему примерного видеокодера 20, который выполнен с возможностью реализации способов настоящего изобретения. В примере на фиг.12, видеокодер 20 содержит блок 204 вычисления остатка, блок 206 обработки преобразования, блок 208 квантования, блок 210 обратного квантования и блок 212 обработки обратного преобразования, блок 214 восстановления, буфер 216, блок 220 контурного фильтра, буфер 230 декодированных изображений (DPB), блок 260 обработки предсказания и блок 270 энтропийного кодирования. Блок 260 обработки предсказания может включать в себя блок 244 внешнего предсказания, блок 254 внутреннего предсказания и блок 262 выбора режима. Блок 244 может содержать блок оценки движения и блок компенсации движения (не показаны). Видеокодер 20, показанный на фиг.12, также может называться гибридным видеокодером или видеокодером согласно гибридному видеокодеку.12 shows a schematic/conceptual block diagram of an exemplary video encoder 20 that is configured to implement the methods of the present invention. In the example of FIG. 12, video encoder 20 comprises a residual calculation block 204, a transform processing block 206, a quantization block 208, an inverse quantization block 210 and an inverse transform processing block 212, a reconstruction block 214, a buffer 216, a loop filter block 220, a decoded buffer 230 images (DPB), block 260 processing prediction and block 270 entropy coding. The prediction processing unit 260 may include an inter prediction unit 244, an intra prediction unit 254, and a mode select unit 262. Block 244 may include a motion estimation block and a motion compensation block (not shown). The video encoder 20 shown in FIG. 12 may also be referred to as a hybrid video encoder or a video encoder according to a hybrid video codec.

Например, блок 204 вычисления остатка, блок 206 обработки преобразования, блок 208 квантования, блок 260 обработки предсказания и блок 270 энтропийного кодирования образуют прямой путь сигнала кодера 20, тогда как, например, блок 210 обратного квантования, блок 212 обработки обратного преобразования, блок 214 восстановления, буфер 216, контурный фильтр 220, буфер 230 декодированных изображений (DPB), блок 260 обработки предсказания образуют обратный путь сигнала кодера, в котором обратный путь сигнала кодера соответствует тракту сигнала декодера (см. декодер 30 на фиг. 13).For example, the residual calculation block 204, the transform processing block 206, the quantization block 208, the prediction processing block 260, and the entropy encoding block 270 form a direct signal path of the encoder 20, while, for example, the inverse quantization block 210, the inverse transform processing block 212, block 214 recovery buffer 216, loop filter 220, decoded picture buffer (DPB) 230, prediction processor 260 form an encoder signal return path in which the encoder return signal path corresponds to the decoder signal path (see decoder 30 in FIG. 13).

Блок 210 обратного квантования, блок 212 обработки обратного преобразования, блок 214 восстановления, контурный фильтр 220, буфер 230 декодированных изображений (DPB), блок 244 внешнего предсказания и блок 254 внутреннего предсказания также относятся к формированию «встроенного декодера» видеокодера 20. Кодер 20 выполнен с возможностью принимать, например, при вводе 202 изображение 201 или блок 203 изображения 201, например, изображение последовательности изображений, образующих видео или видеопоследовательность. Блок 203 изображения также может упоминаться как текущий блок изображения или блок изображения, подлежащий кодированию, и изображение 201 как текущее изображение или изображение, которое должно быть кодировано (в частности, при кодировании видео, чтобы отличать текущее изображение от других изображений, например, ранее закодированных и/или декодированные изображения одной и той же видеопоследовательности, то есть, видеопоследовательности, которая также содержит текущее изображение).An inverse quantization block 210, an inverse transform processing block 212, a reconstruction block 214, a loop filter 220, a decoded picture buffer (DPB) 230, an inter prediction block 244, and an intra prediction block 254 are also related to the formation of an “embedded decoder” of the video encoder 20. The encoder 20 is configured with the ability to receive, for example, at input 202, an image 201 or a block 203 of an image 201, for example, an image of a sequence of images forming a video or video sequence. Image block 203 may also be referred to as the current image block or image block to be encoded, and image 201 as the current image or image to be encoded (particularly in video encoding, to distinguish the current image from other images, such as previously encoded and/or decoded pictures of the same video sequence, that is, a video sequence that also contains the current picture).

(Цифровое) изображение представляет собой или может рассматриваться как двумерный массив или матрица выборок со значениями интенсивности. Выборка в массиве также может называться пикселем (сокращенная форма элемента изображения) или пикселем. Количество выборок в горизонтальном и вертикальном направлении (или по оси) массива или изображения определяет размер и/или разрешение изображения. Для представления цвета обычно используются три цветовых компонента, то есть изображение может быть представлено или содержать три массива выборок. В формате RBG или цветовом пространстве изображение содержит соответствующий массив выборок красного, зеленого и синего цветов. Однако при кодировании видео каждый пиксель обычно представлен в формате яркости и цветности или цветовом пространстве, например YCbCr, который содержит компонент яркости, обозначенный Y (иногда вместо него также используется L), и два компонента цветности, обозначенные Cb и Cr. Компонент Y яркости (или кратко, яркость) представляет яркость или интенсивность уровня серого (например, как в полутоновом изображении), в то время как два компонента цветности (или кратко, цветность) Cb и Cr представляют компоненты цветности или информации о цвете. Соответственно, изображение в формате YCbCr содержит массив выборок яркости значений выборок яркости (Y) и два массива выборок цветности значений цветности (Cb и Cr). Изображения в формате RGB могут быть преобразованы в формат YCbCr и наоборот, этот процесс также известен как преобразование цвета. Если изображение является монохромным, оно может содержать только массив выборок яркости. Соответственно, изображение может быть, например, массивом выборок яркости в монохромном формате или массивом выборок яркости и двумя соответствующими массивами выборок цветности в 4:2:0, 4:2:2 и 4:4:4 цветовой формат.A (digital) image is, or can be viewed as, a two-dimensional array or matrix of samples with intensity values. A sample in an array can also be called a pixel (short for picture element) or a pixel. The number of samples in the horizontal and vertical direction (or axis) of the array or image determines the size and/or resolution of the image. Three color components are typically used to represent a color, i.e. an image can be represented or contain three arrays of samples. In RBG format or color space, an image contains a corresponding array of red, green, and blue color samples. However, in video encoding, each pixel is usually represented in a luma and chrominance format or color space, such as YCbCr, which contains a luma component labeled Y (sometimes L is also used instead) and two chrominance components labeled Cb and Cr. The Y component of luminance (or briefly, luminance) represents the brightness or intensity of the gray level (eg, as in a grayscale image), while the two chrominance components (or briefly, chrominance) Cb and Cr represent components of chrominance or color information. Accordingly, an image in YCbCr format contains an array of luma samples of luminance sample values (Y) and two chrominance sample arrays of chrominance values (Cb and Cr). RGB images can be converted to YCbCr format and vice versa, a process also known as color conversion. If the image is monochrome, it can only contain an array of brightness samples. Accordingly, the image may be, for example, an array of luminance samples in monochrome format, or an array of luminance samples and two corresponding arrays of chrominance samples in 4:2:0, 4:2:2 and 4:4:4 color format.

РАЗДЕЛЕНИЕSEPARATION

Варианты осуществления кодера 20 могут содержать блок разделения (не показан на фиг.12), выполненный с возможностью разделять изображение 201 на множество (обычно не перекрывающихся) блоков 203 изображения. Эти блоки также могут называться корневыми блоками, макроблоками (H.264/AVC) или блоками дерева кодирования (CTB) или блоками дерева кодирования (CTU) (H.265/HEVC и VVC). Блок разделения может быть выполнен с возможностью использовать один и тот же размер блока для всех изображений видеопоследовательности и соответствующей сетки, определяющей размер блока, или изменять размер блока между изображениями, подмножествами или группами изображений и разделять каждое изображение на соответствующие блоки.Embodiments of encoder 20 may include a splitter (not shown in FIG. 12) configured to split image 201 into multiple (generally non-overlapping) image blocks 203. These blocks may also be referred to as root blocks, macroblocks (H.264/AVC), or coding tree blocks (CTBs) or coding tree blocks (CTUs) (H.265/HEVC and VVC). The partition block may be configured to use the same block size for all images of the video sequence and the corresponding grid defining the block size, or to change the block size between images, subsets or groups of images and divide each image into appropriate blocks.

В дополнительных вариантах осуществления видеокодер может быть выполнен с возможностью принимать непосредственно блок 203 изображения 201, например один, несколько или все блоки, образующие изображение 201. Блок 203 изображения также может упоминаться как текущий блок изображения или блок изображения, который должен быть кодирован. В одном примере блок 260 обработки предсказания видеокодера 20 может быть выполнен с возможностью выполнять любую комбинацию способов разделения, описанных выше.In further embodiments, the video encoder may be configured to directly receive block 203 of image 201, such as one, several, or all of the blocks that make up image 201. Image block 203 may also be referred to as the current image block or the image block to be encoded. In one example, prediction processor 260 of video encoder 20 may be configured to perform any combination of the partitioning methods described above.

Подобно изображению 201, блок 203 снова является или может рассматриваться как двумерный массив или матрица выборок со значениями интенсивности (значениями выборок), хотя и меньшего размера, чем изображение 201. Другими словами, блок 203 может содержать, например, один массив выборок (например, массив яркости в случае монохромного изображения 201) или три массива выборок (например, массив яркости и два массива цветности в случае цветного изображения 201) или любое другое количество и/или видов массивов в зависимости от применяемого цветового формата. Количество выборок в горизонтальном и вертикальном направлении (или оси) блока 203 определяет размер блока 203. Соответственно, блок может, например, представлять собой массив выборок M×N (M-столбец на N-строку) или M×N массив коэффициентов преобразования.Like image 201, block 203 is again, or can be viewed as, a two-dimensional array or matrix of samples with intensity values (sample values), albeit smaller than image 201. In other words, block 203 may contain, for example, one array of samples (for example, a luma array in the case of a monochrome image 201) or three arrays of samples (eg, a luminance array and two chrominance arrays in the case of a color image 201) or any other number and/or types of arrays depending on the applied color format. The number of samples in the horizontal and vertical direction (or axis) of block 203 determines the size of block 203. Accordingly, the block may, for example, be an array of MxN samples (M-column per N-row) or an MxN array of transform coefficients.

Кодер 20, показанный на фиг.12, выполнен с возможностью кодировать изображения 201 блок за блоком, например, кодирование и предсказания выполняется для каждого блока 203.The encoder 20 shown in FIG. 12 is configured to encode images 201 block by block, for example, encoding and prediction is performed for each block 203.

Варианты осуществления видеокодера 20, как показано на фиг.12, могут быть дополнительно выполнены с возможностью разделять и/или кодировать изображения с использованием сегментов (также называемых сегментами видео), в котором изображение может быть разделено на или закодировано с использованием одного или более сегментов (обычно без перекрытия), и каждый сегмент может содержать один или более блоков (например, CTU) или одну или более групп блоков (например, плитки (H.265/HEVC и VVC) или блоки (VVC)).Embodiments of video encoder 20 as shown in FIG. 12 may be further configured to split and/or encode images using segments (also referred to as video segments), in which an image may be divided into or encoded using one or more segments ( usually without overlap), and each segment may contain one or more blocks (eg CTU) or one or more groups of blocks (eg tiles (H.265/HEVC and VVC) or blocks (VVC)).

Варианты осуществления видеокодера 20, показанные на фиг.12, могут быть дополнительно выполнены с возможностью разделять и/или кодировать изображения с использованием групп сегментов/плиток (также называемых группами плиток видео) и/или плиток (также называемых плитками видео), в котором изображение может быть разделено или закодировано с использованием одной или более групп сегментов/ плиток (обычно не перекрывающихся), и каждая группа сегментов/плиток может содержать, например, один или более блоков (например, CTU) или одну или более плиток, в котором каждая плитка, например, может иметь прямоугольную форму и может содержать один или более блоков (например, CTU), например целые или дробные блоки.Embodiments of video encoder 20 shown in FIG. 12 may be further configured to partition and/or encode pictures using segment/tile groups (also referred to as video tile groups) and/or tiles (also referred to as video tiles) in which the picture may be partitioned or encoded using one or more segment/tile groups (generally non-overlapping), and each segment/tile group may contain, for example, one or more blocks (e.g., CTUs) or one or more tiles, in which each tile , for example, may have a rectangular shape and may contain one or more blocks (eg, CTU), such as integer or fractional blocks.

ВЫЧИСЛЕНИЕ ОСТАТКАRESIDUAL CALCULATION

Блок 204 вычисления остатка выполнен с возможностью вычислять остаточный блок 205 на основании блока 203 изображения и блока 265 предсказания (дополнительные подробности о блоке 265 предсказания предоставлены позже), например, путем вычитания значений выборок блока 265 предсказания из значений выборок блока 203 изображения, выборка за выборкой (пиксель за пикселем) для получения остаточного блока 205 в области выборки.Residual block 204 is configured to calculate residual block 205 based on image block 203 and predictor 265 (more details about predictor 265 are provided later), for example, by subtracting sample values of predictor 265 from sample values of image block 203, sample by sample. (pixel by pixel) to obtain a residual block 205 in the sample area.

ПРЕОБРАЗОВАНИЕTRANSFORMATION

Блок 206 обработки преобразования выполнен с возможностью применять преобразования, например, дискретное косинусное преобразование (DCT) или дискретное синусоидальное преобразование (DST) на выборочных значениях остаточного блока 205 для получения коэффициентов 207 преобразования в области преобразования. Коэффициенты 207 преобразования также могут называться остаточными коэффициентами преобразования и представлять остаточный блок 205 в области преобразования.Transform processing unit 206 is configured to apply transforms, such as a discrete cosine transform (DCT) or a discrete sine transform (DST), on the sampled values of the residual block 205 to obtain transform coefficients 207 in the transform domain. The transform coefficients 207 may also be referred to as residual transform coefficients and represent the residual block 205 in the transform region.

Блок 206 обработки преобразования может быть выполнен с возможностью применять целочисленные аппроксимации DCT/DST, такие как преобразования, указанные для HEVC/H.265. По сравнению с ортогональным преобразованием DCT, такие целочисленные приближения обычно масштабируются с определенным коэффициентом. Для сохранения нормы остаточного блока, который обрабатывается прямым и обратным преобразованиями, в процессе преобразования применяются дополнительные коэффициенты масштабирования. Коэффициенты масштабирования обычно выбираются на основании определенных ограничений, таких как коэффициенты масштабирования, являющиеся степенью два для операции сдвига, разрядности коэффициентов преобразования, компромисса между точностью и затратами на реализацию и т.д. Конкретные коэффициенты масштабирования, например, указываются для обратного преобразования, например, блоком 212 обработки обратного преобразования в декодере 30 (и соответствующим обратным преобразованием, например, блоком 212 обработки обратного преобразования в кодере 20) и может быть определены соответствующие масштабные коэффициенты для прямого преобразования, например, блоком 206 обработки преобразования в кодере 20, соответственно.Transform processing unit 206 may be configured to apply DCT/DST integer approximations such as the transforms specified for HEVC/H.265. Compared to the orthogonal DCT, such integer approximations are usually scaled by a certain factor. To preserve the norm of the residual block, which is processed by direct and inverse transformations, additional scaling factors are applied during the transformation. Scaling factors are usually chosen based on certain constraints, such as scaling factors that are a power of two for the shift operation, the bit width of the transform coefficients, the trade-off between accuracy and implementation cost, and so on. Specific scaling factors are, for example, indicated for the inverse transform, for example, by the inverse transform processor 212 in the decoder 30 (and the corresponding inverse transform, for example, by the inverse transform processor 212 in the encoder 20), and appropriate scaling factors for the forward transform can be determined, for example , by the transform processing unit 206 in the encoder 20, respectively.

Варианты осуществления видеокодера 20 (соответственно блока 206 обработки преобразования) могут быть выполнены с возможностью выводить параметры преобразования, например, тип преобразования, например, непосредственно или закодированные или сжатые блоком 270 энтропийного кодирования, так что, например, видеодекодер 30 может принимать и использовать параметры преобразования для декодирования.Embodiments of video encoder 20 (respectively, transform processing unit 206) may be configured to output transform parameters, such as the type of transform, such as directly or encoded or compressed by entropy encoding unit 270, such that, for example, video decoder 30 may receive and use transform parameters for decoding.

КВАНТОВАНИЕQUANTIZATION

Блок 208 квантования выполнен с возможностью квантовать коэффициенты 207 преобразования для получения квантованных коэффициентов 209 преобразования, например, путем применения скалярного квантования или векторного квантования. Квантованные коэффициенты 209 преобразования также могут упоминаться как квантованные остаточные коэффициенты 209. Процесс квантования может уменьшить глубину в битах, связанную с некоторыми или всеми коэффициентами 207 преобразования. Например, n-битовый коэффициент преобразования может быть округлен до m-битного коэффициента преобразования во время квантования, где n больше m. Степень квантования может быть изменена путем регулировки параметра квантования (QP). Например, для скалярного квантования может применяться другое масштабирование для достижения более тонкого или более грубого квантования. Меньшие размеры этапов квантования соответствуют более тонкому квантованию, тогда как большие размеры шагов квантования соответствуют более грубому квантованию. Применимый размер шага квантования может быть указан параметром квантования (QP). Параметр квантования может, например, быть индексом для заранее определенного набора применимых размеров шага квантования. Например, малые параметры квантования могут соответствовать точному квантованию (малые размеры этапов квантования), и большие параметры квантования могут соответствовать грубому квантованию (большие размеры шага квантования) или наоборот. Квантование может содержать в себя деление по размеру шага квантования и соответствующее или обратное деквантование, например, посредством блока 210 обратного квантования, может содержать в себя умножение на размер шага квантования. Варианты осуществления согласно некоторым стандартам, например HEVC может быть выполнен с возможностью использовать параметр квантования для определения размера шага квантования. Обычно размер шага квантования может быть вычислен на основании параметра квантования с использованием аппроксимации с фиксированной точкой уравнения, включающего в себя деление. Дополнительные коэффициенты масштабирования могут быть введены для квантования и деквантования для восстановления нормы остаточного блока, который может быть изменен из-за масштабирования, используемого при аппроксимации с фиксированной точкой уравнения для размера шага квантования и параметра квантования. В одной примерной реализации масштабирование обратного преобразования и деквантования могут быть объединены. В качестве альтернативы могут использоваться настроенные таблицы квантования и сигнализироваться от кодера к декодеру, например, в битовом потоке. Квантование является операцией с потерями, при которой потери возрастают с увеличением размеров шага квантования.Quantizer 208 is configured to quantize transform coefficients 207 to obtain quantized transform coefficients 209, for example by applying scalar quantization or vector quantization. The quantized transform coefficients 209 may also be referred to as quantized residual coefficients 209. The quantization process may reduce the bit depth associated with some or all of the transform coefficients 207. For example, an n-bit transform factor may be rounded to an m-bit transform factor during quantization, where n is greater than m. The degree of quantization can be changed by adjusting the quantization parameter (QP). For example, for scalar quantization, different scaling may be applied to achieve finer or coarser quantization. Smaller quantization step sizes correspond to finer quantization, while larger quantization step sizes correspond to coarser quantization. The applicable quantization step size may be indicated by a quantization parameter (QP). The quantization parameter may, for example, be an index to a predetermined set of applicable quantization step sizes. For example, small quantization parameters may correspond to fine quantization (small quantization step sizes), and large quantization parameters may correspond to coarse quantization (large quantization step sizes), or vice versa. Quantization may include dividing by the quantization step size, and corresponding or inverse dequantization, for example by inverse quantizer 210, may include multiplying by the quantization step size. Embodiments according to some standards, for example HEVC may be configured to use a quantization parameter to determine the quantization step size. Typically, the quantization step size can be calculated based on the quantization parameter using a fixed-point approximation of an equation involving division. Additional scaling factors may be introduced for quantization and dequantization to recover the residual block norm, which may be modified due to the scaling used in the fixed-point approximation of the equation for the quantization step size and quantization parameter. In one exemplary implementation, inverse transform scaling and dequantization may be combined. Alternatively, customized quantization tables can be used and signaled from the encoder to the decoder, for example, in a bitstream. Quantization is a lossy operation in which the loss increases with increasing quantization step sizes.

Варианты осуществления видеокодера 20 (соответственно, блок 208 квантования) могут быть выполнены с возможностью выводить параметры квантования (QP), например, непосредственно или закодированы блоком 270 энтропийного кодирования, так что, например, видеодекодер 30 может принимать и применять параметры квантования для декодирования.Embodiments of video encoder 20 (respectively, quantizer 208) may be configured to output quantization parameters (QPs), for example, directly or encoded by entropy coding unit 270, such that, for example, video decoder 30 may receive and apply quantization parameters for decoding.

Блок 210 обратного квантования выполнен с возможностью применять обратное квантование блока 208 квантования к квантованным коэффициентам для получения деквантованных коэффициентов 211, например, путем применения обратной схемы квантования, применяемой блоком 208 квантования, на основании или с использованием того же размера шага квантования, что и блок 208 квантования. Деквантованные коэффициенты 211 также могут называться деквантованными остаточными коэффициентами 211 и соответствовать, хотя обычно не идентичны коэффициентам преобразования из-за потерь при квантовании, коэффициентам 207 преобразования.Inverse quantizer 210 is configured to apply the inverse quantization of quantizer 208 to the quantized coefficients to obtain dequantized coefficients 211, for example, by applying the inverse quantization scheme applied by quantizer 208 based on or using the same quantization step size as block 208 quantization. The dequantized coefficients 211 may also be referred to as the dequantized residual coefficients 211 and correspond, although not usually identical to the transform coefficients due to quantization loss, to the transform coefficients 207.

Блок 212 обработки обратного преобразования выполнен с возможностью применять обратное преобразование, применяемое блоком 206 обработки преобразования, например, обратное дискретное косинусное преобразование (DCT) или обратное дискретное синусоидальное преобразование (DST) для получения блока 213 обратного преобразования в области выборки. Блок 213 обратного преобразования также может называться деквантованным блоком 213 обратного преобразования или остаточным блоком 213 обратного преобразования.The inverse transform processing unit 212 is configured to apply an inverse transform applied by the transform processing unit 206, such as an inverse discrete cosine transform (DCT) or an inverse discrete sine transform (DST), to obtain an inverse transform block 213 in the sample area. The inverse transform block 213 may also be referred to as the dequantized inverse transform block 213 or the residual inverse transform block 213 .

Блок 214 восстановления (например, сумматор 214) выполнен с возможностью добавлять блок 213 обратного преобразования (то есть, восстановленный остаточный блок 213) к блоку 265 предсказания для получения восстановленного блока 215 в области выборки, например, путем сложения значений выборок восстановленного остаточного блока 213 и значений выборок блока 265 предсказания.Reconstructor 214 (eg, adder 214) is configured to add inverse transform block 213 (i.e., reconstructed residual block 213) to prediction block 265 to obtain reconstructed block 215 in the sample area, for example, by adding sample values of reconstructed residual block 213 and values of the samples block 265 prediction.

В качестве варианта, буферный блок 216 (или коротко, «буфер» 216), например, линейный буфер 216 выполнен с возможностью буферизации или хранения восстановленного блока 215 и соответствующих значений выборок, например, для внутреннего предсказания. В дополнительных вариантах осуществления кодер может быть выполнен с возможностью использовать нефильтрованные восстановленные блоки и/или соответствующие значения выборок, хранящиеся в блоке 216 буфера, для любого вида оценки и/или предсказания, например, внутреннего предсказания.Alternatively, a buffer block 216 (or "buffer" 216 for short), such as a linear buffer 216, is configured to buffer or store the reconstructed block 215 and corresponding sample values, such as for intra prediction. In further embodiments, the encoder may be configured to use the unfiltered reconstructed blocks and/or corresponding sample values stored in buffer block 216 for any kind of estimation and/or prediction, such as intra prediction.

Варианты осуществления кодера 20 могут быть выполнены с возможностью, в которых, например, блок 216 буфера используется не только для хранения восстановленных блоков 215 для внутреннего предсказания 254, но также для блока 220 контурного фильтра (не показан на фиг.12) и/или, что, например, блок 216 буфера и блок 230 буфера декодированного изображения образуют один буфер. Дополнительные варианты осуществления могут быть выполнены с возможностью использовать фильтрованные блоки 221 и/или блоки или выборки из буфера 230 декодированных изображений (оба не показаны на фиг.12) в качестве входных данных или основы для внутреннего предсказания 254.Embodiments of encoder 20 may be configured where, for example, buffer block 216 is used not only to store reconstructed blocks 215 for intra prediction 254, but also for loop filter block 220 (not shown in FIG. 12) and/or, that, for example, buffer block 216 and decoded picture buffer block 230 form one buffer. Additional embodiments may be configured to use filtered blocks 221 and/or blocks or samples from decoded picture buffer 230 (both not shown in FIG. 12) as input or basis for intra prediction 254.

Блок 220 контурного фильтра (или коротко, «контурный фильтр» 220) выполнен с возможностью фильтрации восстановленного блока 215 для получения отфильтрованного блока 221, например, для сглаживания переходов пикселей или иного улучшения качества видео. Блок 220 контурного фильтра предназначен для представления одного или более контурных фильтров, таких как фильтр деблокинга, фильтр с адаптивным смещением (SAO) или другие фильтры, например двусторонний фильтр или адаптивный контурный фильтр (ALF), или фильтры повышения резкости или сглаживания, или коллаборативные фильтры. Хотя блок 220 контурного фильтра показан на фиг.12 как контурный фильтр, в других конфигурациях блок 220 контурного фильтра может быть реализован как постконтурный фильтр. Отфильтрованный блок 221 также может упоминаться как фильтрованный восстановленный блок 221. Буфер 230 декодированного изображения может хранить восстановленные блоки кодирования после того, как блок 220 контурного фильтра выполняет операции фильтрации на восстановленных блоках кодирования.The loop filter block 220 (or "loop filter" 220 for short) is configured to filter the reconstructed block 215 to obtain a filtered block 221, for example, to smooth out pixel transitions or otherwise improve video quality. The loop filter block 220 is designed to represent one or more loop filters, such as a deblocking filter, an adaptive offset (SAO) filter, or other filters, such as a two-sided filter or an adaptive loop filter (ALF), or sharpening or smoothing filters, or collaborative filters. . Although the loop filter block 220 is shown as a loop filter in FIG. 12, in other configurations, the loop filter block 220 may be implemented as a post loop filter. The filtered block 221 may also be referred to as the filtered reconstructed block 221. The decoded picture buffer 230 may store the reconstructed coding blocks after the loop filter block 220 performs filtering operations on the reconstructed coding blocks.

Блок 220 контурного фильтра (или коротко «контурный фильтр» 220) выполнен с возможностью фильтрации восстановленного блока 215 для получения фильтрованного блока 221 или, в общем, для фильтрации восстановленных выборок для получения отфильтрованных значений выборок. Блок контурного фильтра, например, выполнен с возможностью сглаживания переходов пикселей или иного улучшения качества видео. Блок 220 контурного фильтра может содержать один или более контурных фильтров, таких как фильтр деблокинга, фильтр с адаптивным смещением (SAO) или один или более других фильтров, например адаптивный контурный фильтр (ALF), фильтр подавления шума (NSF) или любую их комбинацию. В одном примере блок 220 контурного фильтра может содержать фильтр деблокинга, SAO фильтр и ALF фильтр. Порядок процесса фильтрации может быть фильтром деблокинга, SAO и ALF. В другом примере добавляется процесс, называемый отображением яркости с масштабированием цветности (LMCS) (а именно, адаптивным внутриконтурным формирователем). Этот процесс выполняется перед деблокингом. В другом примере процесс фильтрации деблокинга может также применяться к внутренним краям субблока, например, края аффинных субблоков, края субблоков ATMVP, края субблочного преобразования (SBT) и края внутреннего суб-раздела (ISP). Хотя блок 220 контурного фильтра показан на фиг.12 как контурный фильтр, в других конфигурациях блок 220 контурного фильтра может быть реализован как постконтурный фильтр. Отфильтрованный блок 221 также может упоминаться как фильтрованный восстановленный блок 221.The loop filter block 220 (or "loop filter" 220 for short) is configured to filter the reconstructed block 215 to obtain a filtered block 221 or, more generally, to filter the reconstructed samples to obtain filtered sample values. The loop filter unit, for example, is configured to smooth out pixel transitions or otherwise improve video quality. The loop filter block 220 may comprise one or more loop filters such as a deblocking filter, an adaptive offset filter (SAO), or one or more other filters such as an adaptive loop filter (ALF), a noise suppression filter (NSF), or any combination thereof. In one example, loop filter block 220 may comprise a deblocking filter, an SAO filter, and an ALF filter. The order of the filtering process can be deblocking filter, SAO and ALF. In another example, a process called luminance chrominance scaling (LMCS) mapping (namely, adaptive in-loop shaper) is added. This process is performed before deblocking. In another example, the deblocking filtering process may also be applied to inner sub-box edges, such as affine sub-box edges, ATMVP sub-box edges, sub-block transform (SBT) edges, and inner sub-partition (ISP) edges. Although the loop filter block 220 is shown as a loop filter in FIG. 12, in other configurations, the loop filter block 220 may be implemented as a post loop filter. The filtered block 221 may also be referred to as the filtered reconstructed block 221.

Варианты осуществления видеокодера 20 (соответственно блока 220 контурного фильтра) могут быть выполнены с возможностью выводить параметры контурного фильтра (такие как параметры фильтра SAO или параметры фильтра ALF или параметры LMCS), например, непосредственно или закодированы посредством блока 270 энтропийного кодирования, так что, например, декодер 30 может принимать и применять те же параметры контурного фильтра или соответствующие контурные фильтры для декодирования.Embodiments of video encoder 20 (respectively, loop filter block 220) may be configured to output loop filter parameters (such as SAO filter parameters or ALF filter parameters or LMCS parameters), for example, directly or encoded by entropy encoding block 270, such that, for example , decoder 30 may receive and apply the same loop filter parameters or corresponding loop filters for decoding.

Варианты осуществления кодера 20 (соответственно блока 220 контурного фильтра) могут быть выполнены с возможностью выводить параметры контурного фильтра (такие как информация адаптивного смещения выборки), например, кодируется непосредственно или блоком 270 энтропийного кодирования или любым другим блоком энтропийного кодирования, так что, например, декодер 30 может принимать и применять одни и те же параметры контурного фильтра для декодирования.Embodiments of encoder 20 (respectively, loop filter block 220) may be configured to output loop filter parameters (such as adaptive sample bias information), for example, encoded directly or by entropy encoding block 270 or any other entropy encoding block, such that, for example, decoder 30 may receive and apply the same loop filter parameters for decoding.

Буфер 230 декодированных изображений (DPB) может быть памятью опорных изображений, в которой хранятся данные опорных изображений для использования при кодировании видеоданных видеокодером 20. DPB 230 может быть сформирован любым из множества запоминающих устройств, таких как динамическая память произвольного доступа (DRAM), включающая в себя синхронную DRAM (SDRAM), магниторезистивную RAM (MRAM), резистивную RAM (RRAM) или другие типы запоминающих устройств. DPB 230 и буфер 216 могут быть предоставлены одним и тем же запоминающим устройством или отдельными запоминающими устройствами. В некотором примере буфер 230 декодированных изображений (DPB) выполнен с возможностью хранить фильтрованный блок 221. Буфер 230 декодированных изображений может быть дополнительно выполнен с возможностью хранить другие ранее отфильтрованные блоки, например, ранее восстановленные и отфильтрованные блоки 221 одного и того же текущего изображения или разных изображений, например, ранее восстановленные изображения и могут предоставлять полные ранее реконструированные, то есть декодированные, изображения (и соответствующие опорные блоки и выборки) и/или частично восстановленное текущее изображение (и соответствующие опорные блоки и выборки), например, для внешнего предсказания. В некотором примере, если восстановленный блок 215 восстанавливается, но без внутриконтурной фильтрации, буфер 230 декодированного изображения (DPB) выполнен с возможностью хранить один или более нефильтрованных восстановленных блоков 215 или, в общем, нефильтрованные восстановленные выборки, например если восстановленный блок 215 не фильтруется блоком 220 контурного фильтра или любой другой дополнительно обработанной версией восстановленных блоков или выборок.Decoded picture buffer (DPB) 230 may be a reference picture memory that stores reference picture data for use in encoding video data by video encoder 20. DPB 230 may be formed by any of a variety of memories, such as dynamic random access memory (DRAM), including synchronous DRAM (SDRAM), magnetoresistive RAM (MRAM), resistive RAM (RRAM), or other types of storage devices. DPB 230 and buffer 216 may be provided by the same storage device or separate storage devices. In some example, the decoded picture buffer (DPB) 230 is configured to store a filtered block 221. The decoded picture buffer 230 can be further configured to store other previously filtered blocks, such as previously restored and filtered blocks 221 of the same current image or different images, such as previously reconstructed images, and may provide complete previously reconstructed, i.e., decoded, images (and corresponding reference blocks and samples) and/or partially reconstructed current image (and corresponding reference blocks and samples), for example, for inter prediction. In some example, if the reconstructed block 215 is reconstructed, but without in-loop filtering, the decoded picture buffer (DPB) 230 is configured to store one or more unfiltered reconstructed blocks 215, or, in general, unfiltered reconstructed samples, for example, if the reconstructed block 215 is not filtered by the block 220 loop filter or any other further processed version of the reconstructed blocks or samples.

Блок 260 обработки предсказания, также называемый блоком 260 обработки предсказания блока, выполнен с возможностью принимать или получать блок 203 (текущий блок 203 текущего изображения 201) и данные восстановленного изображения, например, опорные выборки того же (текущего) изображения из буфера 216 и/или данные 231 опорного изображения из одного или множества ранее декодированных изображений из буфера 230 декодированных изображений, и для обработки таких данных для предсказания, то есть для обеспечения блока 265 предсказания, который может быть блоком 245 внешнего предсказания или блоком 255 внутреннего предсказания.The prediction processing unit 260, also referred to as the block prediction processing unit 260, is configured to receive or obtain a block 203 (the current block 203 of the current image 201) and reconstructed image data, such as reference samples of the same (current) image from the buffer 216 and/or reference picture data 231 from one or a plurality of previously decoded pictures from the decoded picture buffer 230, and to process such data for prediction, that is, to provide a prediction block 265, which may be an inter prediction block 245 or an intra prediction block 255.

Блок 262 выбора режима может быть выполнен с возможностью выбирать режим предсказания (например, режим внутреннего или внешнего предсказания) и/или соответствующего блока 245 или 255 предсказания, который будет использоваться в качестве блока 265 предсказания для вычисления остаточного блока 205 и для восстановления восстановленного блока 215.Mode selector 262 may be configured to select a prediction mode (eg, intra or inter prediction mode) and/or a corresponding predictor 245 or 255 to be used as predictor 265 to calculate the residual block 205 and to reconstruct the reconstructed block 215 .

Варианты осуществления блока 262 выбора режима могут быть выполнены с возможностью выбирать режима предсказания (например, из тех, которые поддерживаются блоком 260 обработки предсказания), который обеспечивает наилучшее совпадение или, другими словами, минимальный остаток (минимальный остаток означает лучшее сжатие для передачи или хранения) или минимальные накладные расходы на сигнализацию (минимальные накладные расходы на сигнализацию означают лучшее сжатие для передачи или хранения), или который учитывает или уравновешивает оба. Блок 262 выбора режима может быть выполнен с возможностью определять режим предсказания на основании оптимизации искажения скорости (RDO), то есть выбирать режим предсказания, который обеспечивает оптимизацию искажения с минимальной скоростью или которое связанное искажение скорости, по меньшей мере, удовлетворяет критерию выбора режима предсказания.Embodiments of mode selector 262 may be configured to select a prediction mode (e.g., from those supported by prediction processor 260) that provides the best match, or in other words, minimum residual (minimum residual means better compression for transmission or storage) or minimal signaling overhead (minimum signaling overhead means better compression for transmission or storage), or which takes into account or balances both. The mode selector 262 may be configured to determine a prediction mode based on rate distortion optimization (RDO), i.e., select a prediction mode that provides minimum rate distortion optimization or that the associated rate distortion at least satisfies a prediction mode selection criterion.

Далее будет приведено подробное описание процесса обработки предсказания (например, блока 260 обработки предсказания и выбор режима (например, блоком 262 выбора режима)), выполняемая примерным кодером 20.Next, a detailed description will be given of the prediction processing process (for example, the prediction processing block 260 and mode selection (for example, the mode selection block 262)) performed by the exemplary encoder 20.

В дополнение или альтернативно вышеупомянутым вариантам осуществления в других вариантах осуществления согласно фиг.25, блок 260 выбора режима содержит блок 262 разделения, блок 244 внешнего предсказания и блок 254 внутреннего предсказания и выполнен с возможностью принимать или получать исходные данные изображения, например, исходный блок 203 (текущий блок 203 текущего изображения 17) и восстановленные данные изображения, например, фильтрованные и/или нефильтрованные восстановленные выборки или блоки одного и того же (текущего) изображения и/или из одного или множества ранее декодированных изображений, например, из буфера 230 декодированного изображения или другие буферы (например, линейный буфер, не показан). Данные восстановленное изображение используется в качестве данных опорного изображения для предсказания, например, внешнее предсказание или внутреннее предсказание, чтобы получить блок 265 предсказания или предиктор 265.In addition to or alternatively to the above embodiments, in the other embodiments of FIG. 25, the mode selector 260 includes a splitter 262, an inter-predictor 244, and an intra-predictor 254, and is configured to receive or obtain original image data, such as the original block 203 (current block 203 of the current picture 17) and reconstructed picture data, such as filtered and/or unfiltered reconstructed samples or blocks of the same (current) picture and/or from one or more previously decoded pictures, such as from decoded picture buffer 230 or other buffers (eg, linear buffer, not shown). The reconstructed image data is used as reference image data for prediction, such as inter prediction or intra prediction, to obtain prediction block 265 or predictor 265.

Блок 260 выбора режима может быть выполнен с возможностью определять или выбирать разделение для режима предсказания текущего блока (включающее в себя отсутствие разделения) и режима предсказания (например, режим внутреннего или внешнего предсказания) и генерировать соответствующий блок 265 предсказания, который используется для вычисления остаточного блока 205 и для восстановления восстановленного блока 215.The mode selector 260 may be configured to determine or select a split for the current block prediction mode (including no split) and the prediction mode (e.g., intra or inter prediction mode) and generate a corresponding prediction block 265 that is used to calculate the residual block. 205 and to restore the restored block 215.

Варианты осуществления блока 260 выбора режима могут быть выполнены с возможностью выбирать разделение и режим предсказания (например, из тех, которые поддерживаются или доступны для блока 260 выбора режима), которые обеспечивают наилучшее совпадение или, другими словами, минимальный остаток (минимальный остаток означает лучшее сжатие для передачи или хранения), или минимальные накладные расходы на сигнализацию (минимальные накладные расходы на сигнализацию означают лучшее сжатие для передачи или хранения), или который учитывает или уравновешивает оба. Блок 260 выбора режима может быть выполнен с возможностью определять режим разделения и предсказания на основании оптимизации искажения скорости (RDO), то есть выбирать режим предсказания, который обеспечивает минимальное искажение скорости. Такие термины, как «лучший», «минимум», «оптимальный» и т.д. в этом контексте не обязательно относятся к общему «лучшему», «минимуму», «оптимальному» и т.д., но также могут относиться к выполнению прекращения или критерий выбора, такой как значение, превышающее или падающее ниже порогового значения, или другие ограничения, потенциально ведущие к «неоптимальному выбору», но уменьшающие сложность и время обработки.Embodiments of mode selector 260 may be configured to select a division and prediction mode (e.g., from those supported by or available to mode selector 260) that provide the best match or, in other words, minimum residual (minimum residual means better compression). for transmission or storage), or minimal signaling overhead (minimum signaling overhead means better compression for transmission or storage), or which takes into account or balances both. The mode selector 260 may be configured to determine the division and prediction mode based on rate distortion optimization (RDO), that is, to select a prediction mode that provides minimal rate distortion. Terms such as "best", "minimum", "optimum", etc. in this context does not necessarily refer to an overall "best", "minimum", "optimal", etc., but may also refer to termination performance or selection criteria such as a value above or below a threshold or other constraints , potentially leading to a "non-optimal choice" but reducing complexity and processing time.

Другими словами, блок 262 разделения может быть выполнен с возможностью разделять изображение из видеопоследовательности на последовательность блоков дерева кодирования (CTUs), CTU 203 может быть дополнительно разделен на более мелкие блочные разделы или субблоки (которые снова образуют блоки), например, итеративно с использованием разделения дерева квадрантов (QT), двоичного разделения (BT) или троичного дерева (TT) или любой их комбинации и для выполнения, например, предсказания для каждого из разделов блоков или субблоков, в котором выбор режима содержит выбор древовидной структуры разделенного блока 203, и режимы предсказания применяются к каждому из разделов или субблоков блока.In other words, splitter 262 may be configured to split an image from a video sequence into a sequence of coding tree blocks (CTUs), CTU 203 may be further split into smaller block sections or sub-blocks (which again form blocks), e.g., iteratively using splitting. quadtree (QT), binary split (BT) or ternary tree (TT), or any combination thereof, and to perform, for example, prediction for each of the partitions of blocks or subblocks, in which the mode selection contains a choice of the tree structure of the divided block 203, and modes predictions are applied to each of the sections or subblocks of the block.

Далее более подробно поясняется процесс разделения (например, блоком 260 разделения) и обработка предсказания (блоком 244 внешнего предсказания и блоком 254 внутреннего предсказания), выполняемые примерным видеокодером 20.The following explains in more detail the splitting process (for example, splitter 260) and prediction processing (inter predictor 244 and intra predictor 254) performed by exemplary video encoder 20.

РазделениеSeparation

Блок 262 разделения может быть выполнен с возможностью разделять изображение из видеопоследовательности на последовательность блоков дерева кодирования (CTUs) и блок 262 разделения может разделять (или разбивать) блок 203 дерева кодирования (CTU) на меньшие разделы, например, блоки меньшего размера квадратного или прямоугольного размера. Для изображения, которое имеет три массива выборок, CTU состоит из блока N×N выборок яркости вместе с двумя соответствующими блоками выборок цветности. Максимально допустимый размер блока яркости в CTU определен равным 128×128 в развивающемся универсальном кодировании видео (VVC), но в будущем может быть указано значение, отличное от 128×128, например 256×256. CTUs изображения могут быть сгруппированы как группы сегментов/плиток, плитки или элементы. Плитка покрывает прямоугольную область изображения, и плитку можно разделить на один или более прямоугольных элементов. Прямоугольный элемент состоит из ряда CTU строк в пределах плитки. Плитку, не разделенную на несколько прямоугольных элементов, можно назвать кирпичом. Однако кирпич является истинным подмножеством плитки и не упоминается как плитка. В VVC поддерживаются два режима групп плиток, а именно, режим группы сегментов/плиток с растровым сканированием и режим прямоугольного сегмента. В режиме группы плитки с растровым сканированием группа сегментов/плиток содержит последовательность плиток с растровым сканированием изображения. В режиме прямоугольного сегмента сегмент содержит несколько кирпичей изображения, которые вместе образуют прямоугольную область изображения. Кирпичи в пределах прямоугольного сегмента находятся в порядке растрового сканирования сегмента. Эти меньшие блоки (которые также могут называться субблоками) могут быть дополнительно разделены на еще меньшие разделы. Это также называется разделением дерева или иерархическим разделением дерева, в котором корневой блок, например, на корневом уровне 0 дерева (уровень 0 иерархии, глубина 0) может быть рекурсивно разделен, например, разделен на два или более блока следующего более низкого уровня дерева, например, узлы на уровне 1 дерева (уровень 1 иерархии, глубина 1), в котором эти блоки могут быть снова разделены на два или более блоков следующего более низкого уровня, например, уровень 2 дерева (уровень 2 иерархии, глубина 2) и т.д., пока не будет завершено разделение, например, при выполнении критерия прекращения, например, достигается максимальная глубина дерева или минимальный размер блока. Блоки, которые не разделяются далее, также называются листовыми блоками или листовыми узлами дерева. Дерево, использующее разделение на два раздела, называется двоичным деревом (BT), дерево, использующее разделение на три раздела, называется троичным деревом (TT) и дерево, использующее разделение на четыре раздела, называется деревом квадрантов (QT).Splitter 262 may be configured to split an image from a video sequence into a sequence of coding tree blocks (CTUs), and splitter 262 may split (or split) coding tree block (CTU) 203 into smaller sections, such as smaller square or rectangular sized blocks. . For an image that has three sample arrays, the CTU consists of an N×N luma sample block along with two corresponding chrominance sample blocks. The maximum allowable luma block size in CTU is defined as 128x128 in evolving Universal Video Coding (VVC), but a value other than 128x128, such as 256x256, may be specified in the future. Image CTUs can be grouped as segment/tile groups, tiles, or elements. A tile covers a rectangular area of an image, and a tile can be divided into one or more rectangular elements. A rectangular element consists of a number of CTU rows within a tile. A tile that is not divided into several rectangular elements can be called a brick. However, brick is a true subset of tile and is not referred to as tile. VVC supports two tile group modes, namely raster-scanned segment/tile group mode and rectangular segment mode. In raster scan tile group mode, a segment/tile group contains a sequence of tiles with a raster image scan. In Rectangular Segment mode, a segment contains multiple image bricks that together form a rectangular image area. The bricks within a rectangular segment are in the segment's raster scan order. These smaller blocks (which may also be referred to as sub-blocks) can be further subdivided into even smaller sections. This is also called tree splitting or hierarchical tree splitting, in which a root block, e.g. at root level 0 of the tree (hierarchy level 0, depth 0), can be recursively split, e.g. split into two or more blocks of the next lower level of the tree, e.g. , nodes at level 1 of the tree (hierarchy level 1, depth 1) in which these blocks can be split again into two or more next lower level blocks, e.g. tree level 2 (hierarchy level 2, depth 2), etc. . until the split is complete, for example, when a termination criterion is met, such as the maximum tree depth or the minimum block size is reached. Blocks that are not split further are also called leaf blocks or leaf nodes of the tree. A tree using two partitions is called a binary tree (BT), a tree using three partitions is called a ternary tree (TT), and a tree using four partitions is called a quadtree (QT).

Например, блок дерева кодирования (CTU) может быть или содержать CTB выборок яркости, два соответствующих CTBs выборок цветности изображения, которое имеет три массива выборок, или CTB выборок монохромного изображения или изображения, которое кодируется с использованием трех отдельных цветовых плоскостей и синтаксических структур, используемых для кодирования выборок. Соответственно, блок дерева кодирования (CTB) может быть блоком N×N выборок для некоторого значения N, так что разделение компонента на CTBs является разделением. Блок кодирования (CU) может быть или содержать блок кодирования выборок яркости, два соответствующих блока кодирования выборок цветности изображения, которое имеет три массива выборок, или блок кодирования выборок монохромного изображения или изображения, которое кодируется с использованием трех отдельных цветовых плоскостей и синтаксических структур, используемые для кодирования выборок. Соответственно, блок кодирования (CB) может быть блоком M×N выборок для некоторых значений M и N, так что разделение CTB на блоки кодирования является разделением.For example, a coding tree unit (CTU) may be either a luminance sample CTB, two corresponding chrominance sample CTBs of an image that has three sample arrays, or a monochrome image sample CTB or an image that is encoded using three separate color planes and the syntax structures used for coding samples. Accordingly, a coding tree block (CTB) may be a block of N×N samples for some value of N, such that splitting a component into CTBs is a split. A coding unit (CU) may be or comprise a luminance sample coding unit, two corresponding chrominance sample coding units of an image that has three sample arrays, or a monochrome image sample coding unit or an image that is encoded using three separate color planes and the syntax structures used for coding samples. Accordingly, a coding block (CB) may be a block of M×N samples for some values of M and N, so that the division of the CTB into coding blocks is a division.

В вариантах осуществления, например, в соответствии с HEVC, блок дерева кодирования (CTU) может быть разделен на CUs с использованием структуры дерева квадратов, обозначенной как дерево кодирования. Решение о том, кодировать ли область изображения с использованием внешнего (временного) или внутреннего (пространственного) предсказания, принимается на уровне листового CU. Каждый листовой CU может быть дополнительно разделен на один, два или четыре PUs в соответствии с типом разделения PU. Внутри одного PU применяется тот же процесс предсказания, и соответствующая информация передается в декодер на основании PU. После получения остаточного блока путем применения процесса предсказания на основании типа разделения PU, листовой CU может быть разделен на блоки преобразования (TUs) в соответствии с другой структурой дерева квадрантов, аналогичной дереву кодирования для CU.In embodiments, for example in accordance with HEVC, a coding tree unit (CTU) may be partitioned into CUs using a square tree structure referred to as a coding tree. The decision as to whether to encode an image area using extrinsic (temporal) or intrinsic (spatial) prediction is made at the leaf-CU level. Each leaf-CU may be further divided into one, two or four PUs according to the partition type of the PU. Within one PU, the same prediction process is applied, and the corresponding information is transmitted to the decoder based on the PU. After obtaining the residual block by applying a prediction process based on the split type of the PU, the leaf CU may be divided into transform units (TUs) according to a different quadtree structure similar to the coding tree for the CU.

В вариантах осуществления, например, в соответствии с последним разрабатываемым в настоящее время стандартом кодирования видео, который называется универсальным кодированием видео (VVC), объединенное дерево с множеством типов вложенного дерева квадратов с использованием двоичной и троичной структуры разделения, например, используемой для разделения блока дерева кодирования. В структуре дерева кодирования в пределах блока дерева кодирования CU может иметь квадратную или прямоугольную форму. Например, блок дерева кодирования (CTU) сначала разделяется деревом квадрантов. Затем листовые узлы дерева квадрантов могут быть дополнительно разделены с помощью многотипной древовидной структуры. Существует четыре типа разделения в многотипной древовидной структуре: вертикальное двоичное разделение (SPLIT_BT_VER), горизонтальное двоичное разделение (SPLIT_BT_HOR), вертикальное троичное разделение (SPLIT_TT_VER) и горизонтальное троичное разделение (SPLIT_TT_HOR). Листовые узлы многотипного дерева называются блоками кодирования (CUs) и, если CU не слишком велик для максимальной длины преобразования, эта сегментация, используемая для предсказания и обработки преобразования без какого-либо дополнительного разделения. Это означает, что в большинстве случаев CU, PU и TU имеют одинаковый размер блока в дереве квадрантов с вложенной структурой блока кодирования многотипного дерева. Исключение возникает, когда максимальная поддерживаемая длина преобразования меньше, чем ширина или высота цветового компонента CU. VVC разрабатывает уникальный механизм сигнализации информации о разделении разделов в дереве квадрантов с вложенной древовидной структурой кодирования многотипного дерева. В механизме сигнализации блок дерева кодирования (CTU) рассматривается как корень дерева квадрантов и сначала разделяется структурой дерева квадрантов. Каждый листовой узел дерева квадрантов (если он достаточно большой, чтобы его можно было использовать) затем дополнительно разделяется многотипной древовидной структурой. В многотипной древовидной структуре сигнализируется первый флаг (mtt_split_cu_flag) для указания, следует ли дополнительно разделять узел; когда узел дополнительно разбивается на разделы, сигнализируется второй флаг (mtt_split_cu_vertical_flag) для указания направления разделения, и затем сигнализируется третий флаг (mtt_split_cu_binary_flag) для указания, является ли разделение двоичным разделением или троичным разделением. На основании значений mtt_split_cu_vertical_flag и mtt_split_cu_binary_flag, режим разделения многотипного дерева (MttSplitMode) CU может быть получен декодером на основании заданного правила или таблицы. Следует отметить, что для определенной структуры, например, для блока 64×64 яркости и конвейерной обработки 32×32 цветности в аппаратных декодерах VVC, разделение TT запрещено, если ширина или высота блока кодирования яркости больше 64, так как показано на фиг.6. Разделение TT также запрещено, если ширина или высота блока кодирования цветности больше 32. Структура конвейерной обработки разделит изображение на блоки данных виртуального конвейера (VPDUs), которые определены как неперекрывающиеся блоки в изображении. В аппаратных декодерах последовательные блоки (VPDUs) обрабатываются несколькими этапами конвейера одновременно. Размер VPDU примерно пропорционален размеру буфера на большинстве этапов конвейера, поэтому важно, чтобы размер VPDU был небольшим. В большинстве аппаратных декодеров размер VPDU может быть установлен равным максимальному размеру блока преобразования (ТВ). Однако в VVC разделение троичного дерева (TT) и двоичного дерева (BT) может привести к увеличению размера VPDUs.In embodiments, for example, in accordance with the latest video coding standard currently being developed, which is called universal video coding (VVC), a merged tree with multiple types of nested square tree using a binary and ternary splitting structure, such as used to split a tree block coding. In a coding tree structure within a coding tree block, a CU may have a square or rectangular shape. For example, a coding tree unit (CTU) is first divided by a quadtree. The leaf nodes of the quadtree can then be further subdivided using a multi-type tree structure. There are four types of splits in the multi-type tree structure: vertical binary split (SPLIT_BT_VER), horizontal binary split (SPLIT_BT_HOR), vertical ternary split (SPLIT_TT_VER), and horizontal ternary split (SPLIT_TT_HOR). The leaf nodes of a multitype tree are called coding units (CUs) and, unless the CU is too large for the maximum transform length, this segmentation is used to predict and process the transform without any additional partitioning. This means that, in most cases, CUs, PUs, and TUs have the same block size in a quadtree with a nested multitype tree coding block structure. An exception occurs when the maximum supported transform length is less than the width or height of the CU's color component. VVC is developing a unique mechanism for signaling section split information in a quadtree with a nested multi-type tree encoding tree structure. In the signaling mechanism, the coding tree unit (CTU) is considered as the root of the quadtree and is first divided by the quadtree structure. Each leaf node of the quadtree (if large enough to be usable) is then further subdivided into a multi-type tree structure. In the multitype tree structure, the first flag (mtt_split_cu_flag) is signaled to indicate whether the node should be further split; when the node is further partitioned, a second flag (mtt_split_cu_vertical_flag) is signaled to indicate the split direction, and then a third flag (mtt_split_cu_binary_flag) is signaled to indicate whether the split is a binary split or a ternary split. Based on the values of mtt_split_cu_vertical_flag and mtt_split_cu_binary_flag, the multitype tree split mode (MttSplitMode) of the CU can be obtained by the decoder based on a given rule or table. It should be noted that for a certain structure, such as 64x64 luma block and 32x32 chrominance pipelining in VVC hardware decoders, TT splitting is prohibited if the width or height of the luma coding block is greater than 64, as shown in FIG. TT splitting is also disabled if the width or height of the chrominance coding unit is greater than 32. The pipeline structure will split the image into virtual pipeline data units (VPDUs), which are defined as non-overlapping blocks in the image. In hardware decoders, sequential blocks (VPDUs) are processed by several stages of the pipeline at the same time. The VPDU size is roughly proportional to the buffer size at most stages of the pipeline, so it is important to keep the VPDU size small. In most hardware decoders, the VPDU size can be set to the maximum transform unit (TB) size. However, in VVC, the separation of the ternary tree (TT) and binary tree (BT) can lead to an increase in the size of VPDUs.

Дополнительно, следует отметить, что, когда часть блока узла дерева превышает нижнюю или правую границу изображения, блок узла дерева принудительно разделяется до тех пор, пока все выборки каждого кодированного CU не окажутся внутри границ изображения.Additionally, it should be noted that when a portion of the tree node box exceeds the bottom or right boundary of the picture, the tree node box is forced to split until all samples of each encoded CU are inside the picture boundaries.

В качестве примера, инструмент внутренних суб-разделов (ISP) может разделять блоки яркости с внутренним предсказанием по вертикали или горизонтали на 2 или 4 суб-раздела в зависимости от размера блока.As an example, the intra sub-partition tool (ISP) can divide vertically or horizontally intra-predictive luminance blocks into 2 or 4 sub-partitions depending on the block size.

В одном примере блок 260 выбора режима видеокодера 20 может быть выполнен с возможностью выполнять любую комбинацию способов разделения, описанных в данном документе. Как описано выше, кодер 20 выполнен с возможностью определять или выбирать наилучший или оптимальный режима предсказания из набора (предопределенных) режимов предсказания. Набор режимов предсказания может содержать, например, режимы внутреннего предсказания и/или режимы внешнего предсказания.In one example, mode selector 260 of video encoder 20 may be configured to perform any combination of the partitioning methods described herein. As described above, encoder 20 is configured to determine or select the best or optimal prediction mode from a set of (predefined) prediction modes. The set of prediction modes may include, for example, intra prediction modes and/or inter prediction modes.

Набор режимов внутреннего предсказания может содержать 35 различных режимов внутреннего предсказания, например, ненаправленные режимы, такие как DC режим (или усреднение) и планарный режим, или направленные режимы, например, как определено в H.265, или может содержать 67 различных режимов внутреннего предсказания, например, ненаправленные режимы, такие как DC режим (или усредненный) и планарный режим, или направленные режимы, например, как определено для VVC. Например, несколько обычных режимов углового внутреннего предсказания адаптивно заменяются режимами широкоугольного внутреннего предсказания для неквадратных блоков, например как определено в VVC. В качестве другого примера, чтобы избежать операций деления для предсказания DC, только длинная сторона используется для вычисления среднего для неквадратных блоков. И результаты внутреннего предсказания планарного режима могут быть дополнительно модифицированы с помощью способа комбинации позиционно-зависимого внутреннего предсказания (PDPC).The intra prediction mode set may contain 35 different intra prediction modes, such as non-directional modes such as DC (or averaging) mode and planar mode, or directional modes such as defined in H.265, or may contain 67 different intra prediction modes , for example, non-directional modes such as DC mode (or average) and planar mode, or directional modes, such as defined for VVC. For example, several conventional angular intra prediction modes are adaptively replaced by wide-angle intra prediction modes for non-square blocks, such as defined in VVC. As another example, to avoid division operations for DC prediction, only the long side is used to calculate the average for non-square blocks. And the planar mode intra prediction results can be further modified by a position dependent intra prediction combination (PDPC) method.

Блок 254 внутреннего предсказания выполнен с возможностью использовать восстановленные выборки соседних блоков одного и того же текущего изображения для генерирования блока 265 внутреннего предсказания согласно режиму внутреннего предсказания набора режимов внутреннего предсказания.The intra prediction block 254 is configured to use the reconstructed samples of adjacent blocks of the same current picture to generate the intra prediction block 265 according to the intra prediction mode of the intra prediction mode set.

Блок 254 внутреннего предсказания (или, в общем, блок 260 выбора режима) дополнительно выполнен с возможностью выводить параметры внутреннего предсказания (или, в общем, информацию, указывающую выбранный режим внутреннего предсказания для блока) в блок 270 энтропийного кодирования в форме элементов 266 синтаксиса для включения в данные 21 кодированного изображения, чтобы, например, видеодекодер 30 мог принимать и использовать параметры предсказания для декодирования.Block 254 intra prediction (or, in General, block 260 mode selection) is further configured to output parameters of intra prediction (or, in General, information indicating the selected mode of intra prediction for the block) in block 270 entropy encoding in the form of elements 266 syntax for including an encoded image in data 21 so that, for example, video decoder 30 can receive and use prediction parameters for decoding.

Набор (или возможные) режимов внешнего предсказания зависит от доступных опорных изображений (то есть, предшествующих, по меньшей мере, частично декодированных изображений, например, сохраненных в DBP 230) и других параметров внешнего предсказания, например будь то опорное изображение целиком или только его часть, например, окно поиска области вокруг области текущего блока, опорного кадра используется для поиска наилучшего соответствия опорного блока и/или, например, применяется ли интерполяция пикселей, например, интерполяция пол/полупикселя, четверти пикселя и/или 1/16 пикселя или нет.The set (or possible) inter prediction modes depends on the available reference pictures (i.e., previous at least partially decoded pictures, e.g. stored in DBP 230) and other inter prediction parameters, e.g. , for example, an area search box around the area of the current block, a reference frame is used to find the best match of the reference block and/or, for example, whether pixel interpolation is applied, such as half/half pixel, quarter pixel and/or 1/16 pixel interpolation or not.

В дополнение к вышеупомянутым режимам предсказания может применяться режим пропуска, прямой режим и/или другой режим внешнего предсказания.In addition to the aforementioned prediction modes, a skip mode, direct mode, and/or other inter prediction mode may be applied.

Например, при расширенном предсказании слияния составляется список кандидатов на слияние для такого режима путем использования следующих пяти типов кандидатов по порядку: пространственный MVP из пространственных соседних CUs, временный MVP из совместно размещенных CUs, MVP на основании истории из таблицы FIFO, попарный средний MVP и нулевые MVs. И может применяться уточнение вектора движения на стороне декодера (DMVR) на основании двустороннего сопоставления для повышения точности MVs режима слияния. Режим слияния с MVD (MMVD), который получают из режима слияния с различиями векторов движения. Непосредственно после отправки флага пропуска и флага слияния сигнализируется флаг MMVD для указания, используется ли режим MMVD для CU. И может применяться схема адаптивного разрешения вектора движения (AMVR) на уровне CU. AMVR позволяет кодировать MVD CU с разной точностью. В зависимости от режима предсказания для текущего CU, могут адаптивно выбираться MVDs текущего CU. Когда CU кодируется в режиме слияния, к текущему CU может применяться комбинированный режим внутреннего/внутреннего предсказания (CIIP). Для получения предсказания CIIP выполняется взвешенное усреднение сигналов внутреннего и внутреннего предсказания. Предсказания с компенсацией аффинного движения, поле аффинного движения блока описывается информацией о движении двух контрольных точек (4 параметра) или трех векторов движения контрольных точек (6 параметров). Временное предсказание вектора движения на основании субблоков (SbTMVP), которое аналогично временному предсказанию вектора движения (TMVP) в HEVC, но предсказывает векторы движения суб-CUs в текущем CU. Двунаправленный оптический поток (BDOF), ранее называвшийся BIO, является более простой версией, требующей гораздо меньших вычислений, особенно с точки зрения количества умножений и размера умножителя. Режим треугольного разделения, в таком режиме CU делится равномерно на два треугольных раздела с использованием либо диагонального разделения, либо анти диагонального разделения. Кроме того, режим двунаправленного предсказания выходит за рамки простого усреднения для обеспечения взвешенного усреднения двух сигналов предсказания.For example, extended merge prediction lists merge candidates for such a mode by using the following five types of candidates in order: spatial MVP from spatial neighboring CUs, temporal MVP from co-located CUs, history based MVP from FIFO table, pairwise average MVP, and zero MVs. And, decoder-side motion vector refinement (DMVR) based on two-way matching can be applied to improve the accuracy of the merge mode MVs. Merge mode with MVD (MMVD), which is obtained from the merge mode with motion vector differences. Immediately after sending the skip flag and the merge flag, the MMVD flag is signaled to indicate whether the MMVD mode is used for the CU. And, an adaptive motion vector resolution (AMVR) scheme at the CU level may be applied. AMVR allows you to encode MVD CUs with different precision. Depending on the prediction mode for the current CU, the MVDs of the current CU may be adaptively selected. When a CU is encoded in merge mode, a combined intra/intra prediction (CIIP) mode may be applied to the current CU. To obtain the CIIP prediction, a weighted average of the intra and intra prediction signals is performed. Affine motion compensated predictions, the affine motion field of a block is described by information about the motion of two control points (4 parameters) or three control point motion vectors (6 parameters). Sub-block based temporal motion vector prediction (SbTMVP), which is similar to temporal motion vector prediction (TMVP) in HEVC, but predicts the motion vectors of sub-CUs in the current CU. Bi-Directional Optical Flow (BDOF), formerly called BIO, is a simpler version requiring much less computation, especially in terms of the number of multipliers and the size of the multiplier. Triangular split mode, in this mode, the CU is divided evenly into two triangular partitions using either a diagonal split or an anti-diagonal split. In addition, the bidirectional prediction mode goes beyond simple averaging to provide a weighted average of two prediction signals.

В дополнение к вышеупомянутым режимам предсказания могут применяться режим пропуска и/или прямой режим.In addition to the aforementioned prediction modes, a skip mode and/or a direct mode may be applied.

Блок 260 обработки предсказания может быть дополнительно выполнен с возможностью разделять блок 203 на более мелкие части или подблоки, например итеративно с использованием разделения дерева квадрантов (QT), двоичного разделения (BT) или разделения троичного дерева (TT) или любой их комбинации, и для выполнения, например, предсказания для каждого из разделов или подблоков блока, в котором выбор режима содержит выбор древовидной структуры разделенного блока 203 и режимов предсказания, применяемых к каждому из разделов или субблоков блока.Prediction processor 260 may be further configured to partition block 203 into smaller chunks or subblocks, such as iteratively using quadtree partitioning (QT), binary partitioning (BT), or ternary tree partitioning (TT), or any combination thereof, and for performing, for example, prediction for each of the partitions or subblocks of the block, wherein the mode selection comprises selecting the tree structure of the partitioned block 203 and the prediction modes applied to each of the partitions or subblocks of the block.

Блок 244 внешнего предсказания может содержать в себя блок оценки движения (ME) (не показан на фиг.2) и блок компенсации движения (MC) (не показан на фиг.2). Блок оценки движения выполнен с возможностью принимать или получать блок 203 изображения (блока 203 текущего изображения текущего изображения 201) и декодированного изображения 231 или, по меньшей мере, одного или множества ранее восстановленных блоков, например, восстановленные блоки одного или множества других/различных ранее декодированных изображений 231 для оценки движения. Например, видеопоследовательность может содержать текущее изображение и ранее декодированные изображения 231 или, другими словами, текущее изображение и ранее декодированные изображения 231 могут быть частью или формировать последовательность изображений, образующих видеопоследовательность.Inter prediction block 244 may include a motion estimator (ME) (not shown in FIG. 2) and a motion compensation (MC) block (not shown in FIG. 2). The motion estimator is configured to receive or obtain an image block 203 (current image block 203 of the current image 201) and a decoded image 231 or at least one or a plurality of previously reconstructed blocks, e.g., reconstructed blocks of one or a plurality of other/different previously decoded 231 images for motion estimation. For example, the video sequence may comprise the current picture and previously decoded pictures 231 or, in other words, the current picture and previously decoded pictures 231 may be part of or form a sequence of pictures that make up the video sequence.

Кодер 20 может, например, быть выполнен с возможностью выбирать опорный блок из множества опорных блоков одинаковых или различных изображений из множества других изображений и предоставляет опорное изображение (или индекс опорного кадра, ...) и/или смещение (пространственное смещение) между положением (X, Y) координатами опорного блока и положением текущего блока в качестве взаимосвязанных параметров предсказания в блок оценки движения (не показан на фиг.2). Это смещение также называется вектором движения (MV).The encoder 20 may, for example, be configured to select a reference block from a plurality of reference blocks of the same or different pictures from a plurality of other pictures, and provides a reference picture (or reference frame index, ...) and/or an offset (spatial offset) between position ( X, Y) coordinates of the reference block and the position of the current block as related prediction parameters to the motion estimation block (not shown in FIG. 2). This offset is also called motion vector (MV).

Блок компенсации движения выполнен с возможностью получать, например, принимать параметр внешнего предсказания и выполнять внешнее предсказание на основании или с использованием параметра внешнего предсказания для получения блока 265 внешнего предсказания. Компенсация движения, выполняемая блоком компенсации движения, может содержать выборку или генерирование блока предсказания на основании вектора движения/блока, определяемого оценкой движения, возможно выполнение интерполяции до субпиксельной точности. Интерполяционная фильтрация может генерировать дополнительные выборки пикселей из известных выборок пикселей, таким образом потенциально увеличивая количество кандидатов блоков предсказания, которые могут использоваться для кодирования блока изображения. После приема вектора движения для PU текущего блока изображения блок компенсации движения может найти блок предсказания, на который указывает вектор движения, в одном из списков опорных изображений.The motion compensation block is configured to receive, for example, receive an inter prediction parameter and perform inter prediction based on or using the inter prediction parameter to obtain inter prediction block 265 . The motion compensation performed by the motion compensator may comprise sampling or generating a prediction block based on the motion vector/block determined by the motion estimate, possibly performing interpolation to sub-pixel precision. Interpolation filtering can generate additional pixel samples from known pixel samples, thus potentially increasing the number of prediction block candidates that can be used to encode an image block. After receiving the motion vector for the PU of the current picture block, the motion compensator may find the prediction block pointed to by the motion vector in one of the reference picture lists.

Блок 254 внутреннего предсказания выполнен с возможностью получать, например, принимать, блок 203 изображения (текущий блок изображения) и один или множество ранее восстановленных блоков, например восстановленные соседние блоки одного и того же изображения для внутренней оценки. Кодер 20 может, например, быть выполнен с возможностью выбирать режим внутреннего предсказания из множества (заранее определенных) режимов внутреннего предсказания.The intra prediction block 254 is configured to receive, for example, an image block 203 (the current image block) and one or a plurality of previously reconstructed blocks, such as reconstructed neighboring blocks of the same image, for intra estimation. Encoder 20 may, for example, be configured to select an intra prediction mode from a plurality of (predetermined) intra prediction modes.

Варианты осуществления кодера 20 могут быть выполнены с возможностью выбирать режим внутреннего предсказания на основании критерия оптимизации, например, минимальный остаток (например, режим внутреннего предсказания, обеспечивающий блок 255 предсказания, наиболее похожий на текущий блок 203 изображения) или искажение с минимальной скоростью.Embodiments of encoder 20 may be configured to select an intra prediction mode based on an optimization criterion, such as minimum residual (eg, intra prediction mode providing prediction block 255 most similar to current picture block 203) or minimum rate distortion.

Блок 254 внутреннего предсказания дополнительно выполнен с возможностью определять на основании параметра внутреннего предсказания, например, выбранный режим внутреннего предсказания, блок 255 внутреннего предсказания. В любом случае, после выбора режима внутреннего предсказания для блока, блок 254 внутреннего предсказания также выполнен с возможностью предоставлять параметр внутреннего предсказания, то есть, информацию, указывающую выбранный режим внутреннего предсказания для блока в блок 270 энтропийного кодирования. В одном примере блок 254 внутреннего предсказания может быть выполнен с возможностью выполнять любую комбинацию описанных ниже способов внутреннего предсказания.The intra prediction block 254 is further configured to determine, based on the intra prediction parameter, for example, the selected intra prediction mode, the intra prediction block 255 . In any case, after selecting the intra prediction mode for the block, the intra prediction block 254 is also configured to provide an intra prediction parameter, that is, information indicating the selected intra prediction mode for the block, to the entropy encoding block 270 . In one example, intra predictor 254 may be configured to perform any combination of the intra prediction methods described below.

Блок 270 энтропийного кодирования выполнен с возможностью применять алгоритм или схемы энтропийного кодирования (например, схемы кодирования с переменной длиной (VLC), контекстно-адаптивной схемы VLC (CALVC), схемы арифметического кодирования, контекстно-адаптивного двоичного арифметического кодирования (CABAC), основанное на синтаксисе контекстно-адаптивное двоичное арифметическое кодирование (SBAC), энтропийное кодирование с интервалом вероятности (PIPE) или другие технологии или способы энтропийного кодирования) на квантованных остаточных коэффициентах 209, параметрах внешнего предсказания, параметре внутреннего предсказания и/или параметрах контурного фильтра, индивидуально или совместно (или не полностью) для получения данных 21 закодированного изображения, которые могут выводиться выходом 272, например, в форме кодированного битового потока 21. Закодированный битовый поток 21 может быть передан в видеодекодер 30 или заархивирован для последующей передачи или извлечения видеодекодером 30. Блок 270 энтропийного кодирования может быть дополнительно выполнен с возможностью энтропийного кодирования других элементов синтаксиса для кодируемого текущего сегмента видео.The entropy encoding unit 270 is configured to apply an entropy encoding algorithm or schemes (e.g., variable length coding (VLC) schemes, context adaptive VLC scheme (CALVC), arithmetic coding scheme, context adaptive binary arithmetic coding (CABAC) based on context adaptive binary arithmetic coding (SBAC), probability interval entropy coding (PIPE), or other entropy coding technologies or methods) on quantized residual coefficients 209, inter prediction parameters, intra prediction parameter, and/or loop filter parameters, individually or jointly (or incompletely) to obtain encoded image data 21 that may be output by output 272, for example in the form of an encoded bitstream 21. The encoded bitstream 21 may be transmitted to video decoder 30 or archived for later transmission or retrieval of the video decode 30. Entropy encoding unit 270 may be further configured to entropy encode other syntax elements for the current video segment being coded.

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

На фиг.13 показан пример видеодекодера 30, который выполнен с возможностью реализации способов настоящего изобретения. Видеодекодер 30 выполнен с возможностью принимать данные 21 кодированного изображения (например, кодированного битового потока), например, кодируемые кодером 100, для получения декодированного изображения 131. Во время процесса декодирования видеодекодер 30 принимает из видеокодера 100 видеоданные, например, кодированный битовый поток видео, который представляет блоки изображения кодированного сегмента видео и ассоциированные элементы синтаксиса.FIG. 13 shows an example of a video decoder 30 that is configured to implement the methods of the present invention. Video decoder 30 is configured to receive encoded picture (e.g., encoded bitstream) data 21, such as encoded by encoder 100, to obtain a decoded picture 131. During the decoding process, video decoder 30 receives video data from video encoder 100, such as an encoded video bitstream that represents image blocks of an encoded video segment and associated syntax elements.

В примере на фиг.13, декодер 30 содержит блок 304 энтропийного декодирования, блок 310 обратного квантования, блок 312 обработки обратного преобразования, блок 314 восстановления (например, сумматор 314), буфер 316, контурный фильтр 320, буфер 330 декодированных изображений и блок 360 обработки предсказания. Блок 360 обработки предсказания может содержать в себя блок 344 внешнего предсказания, блок 354 внутреннего предсказания и блок 362 выбора режима. Видеодекодер 30 может, в некоторых примерах, выполнять процесс декодирования, в целом, обратный этапу кодирования, описанный применительно к видеокодеру 100 на фиг. 12.In the example of FIG. 13, the decoder 30 includes an entropy decoding block 304, an inverse quantization block 310, an inverse transform processing block 312, a reconstruction block 314 (e.g., adder 314), a buffer 316, a loop filter 320, a decoded picture buffer 330, and a block 360 prediction processing. The prediction processing block 360 may include an inter prediction block 344 , an intra prediction block 354 , and a mode selection block 362 . Video decoder 30 may, in some examples, perform a decoding process that is generally the reverse of the encoding step described with respect to video encoder 100 in FIG. 12.

Как объяснялось в отношении кодера 20, блок 210 обратного квантования, блок 212 обработки обратного преобразования, блок 214 восстановления, контурный фильтр 220, буфер 230 декодированных изображений (DPB), блок 344 внешнего предсказания и блок 354 внутреннего предсказания также называется формированием «встроенного декодера» видеокодера 20. Соответственно, блок 310 обратного квантования может быть идентичен по функциям блоку 110 обратного квантования, блок 312 обработки обратного преобразования может быть идентичным по функциям блоку 212 обработки обратного преобразования, блок 314 восстановления может быть идентичен по функциям блоку 214 восстановления, контурный фильтр 320 может быть идентичен по функциям контурному фильтру 220 и буфер 330 декодированных изображений может быть идентичен по функциям буферу 230 декодированных изображений. Следовательно, пояснения, предоставленные для соответствующих блоков и функций видеокодера 20, применяются соответственно к соответствующим блокам и функциям видеодекодера 30.As explained with respect to the encoder 20, the inverse quantization block 210, the inverse transform processing block 212, the reconstruction block 214, the loop filter 220, the decoded picture buffer (DPB) 230, the inter prediction block 344, and the intra prediction block 354 are also called "inline decoder" generation. of the video encoder 20. Accordingly, the inverse quantizer 310 may be identical in function to the inverse quantizer 110, the inverse transform processor 312 may be identical in function to the inverse transform processor 212, the restorer 314 may be identical in function to the restorer 214, the loop filter 320 may be identical in function to the loop filter 220 and the decoded picture buffer 330 may be identical in function to the decoded picture buffer 230. Therefore, the explanations provided for the respective blocks and functions of the video encoder 20 apply to the respective blocks and functions of the video decoder 30, respectively.

Блок 304 энтропийного декодирования выполнен с возможностью выполнять энтропийное декодирование данных 21 закодированного изображения для получения, например, квантованных коэффициентов 309 и/или декодированных параметров кодирования (не показаны на фиг.13), например, (декодированный) любой или все параметры внешнего предсказания, параметр внутреннего предсказания, параметры контурного фильтра и/или другие элементы синтаксиса. Блок 304 энтропийного декодирования дополнительно выполнен с возможностью пересылать параметры внешнего предсказания, параметр внутреннего предсказания и/или другие элементы синтаксиса в блок 360 обработки предсказания. Видеодекодер 30 может принимать элементы синтаксиса на уровне сегмента видео и/или уровне видеоблока.The entropy decoding unit 304 is configured to perform entropy decoding of the encoded image data 21 to obtain, for example, quantized coefficients 309 and/or decoded coding parameters (not shown in FIG. 13), for example, (decoded) any or all of the inter prediction parameters, parameter intra prediction, loop filter parameters, and/or other syntax elements. The entropy decoding block 304 is further configured to forward the inter prediction parameters, the intra prediction parameter, and/or other syntax elements to the prediction processing block 360 . Video decoder 30 may receive syntax elements at the video segment level and/or video block level.

Блок 304 энтропийного декодирования выполнен с возможностью синтаксического анализа битового потока 21 (или, в общем, данных 21 закодированного изображения) и выполнять, например, энтропийное декодирование для данных 21 кодированного изображения для получения, например, квантованных коэффициентов 309 и/или параметров декодированного кодирования (не показано на фиг.13), например, любой или все из параметров внешнего предсказания (например, опорный индекс изображения и вектор движения), параметров внутреннего предсказания (например, режим внутреннего предсказания или индекс), параметров преобразования, параметров квантования, параметров контурного фильтра и/или других элементов синтаксиса. Блок 304 энтропийного декодирования может быть выполнен с возможностью применять алгоритмы или схемы декодирования, соответствующие схемам кодирования, как описано в отношении блока 270 энтропийного кодирования кодера 20. Блок 304 энтропийного декодирования может быть дополнительно выполнен с возможностью предоставлять параметры внешнего предсказания, параметр внутреннего предсказания и/или другие элементы синтаксиса в блока 360 режима и другие параметры для других блоков декодера 30. Видеодекодер 30 может принимать элементы синтаксиса на уровне сегмента видео и/или уровне видеоблока. В дополнение или в качестве альтернативы могут приниматься и/или использоваться в качестве сегментов и соответствующих синтаксических элементов, групп плиток и/или плитки и соответствующие элементы синтаксиса.The entropy decoding unit 304 is configured to parse the bitstream 21 (or, in general, the encoded image data 21) and perform, for example, entropy decoding on the encoded image data 21 to obtain, for example, quantized coefficients 309 and/or decoded coding parameters ( not shown in FIG. 13), e.g., any or all of inter prediction parameters (e.g., image reference index and motion vector), intra prediction parameters (e.g., intra prediction mode or index), transform parameters, quantization parameters, loop filter parameters and/or other syntax elements. Entropy decoding unit 304 may be configured to apply decoding algorithms or schemes corresponding to coding schemes as described with respect to entropy encoding unit 270 of encoder 20. Entropy decoding unit 304 may be further configured to provide inter prediction parameters, an intra prediction parameter, and/ or other syntax elements in mode block 360 and other parameters for other blocks of decoder 30. Video decoder 30 may receive syntax elements at the video segment level and/or video block level. In addition or alternatively, segments and corresponding syntax elements, tile groups and/or tiles and corresponding syntax elements can be accepted and/or used.

Блок 310 обратного квантования может быть идентичен по функциям блоку 110 обратного квантования, блок 312 обработки обратного преобразования может быть идентичным по функциям блоку 112 обработки обратного преобразования, блок 314 восстановления может быть идентичным по функциям блоку 114 восстановления, буфер 316 может быть идентичен по функциям буферу 116, контурный фильтр 320 может быть идентичен по функции контурному фильтру 120 и буфер 330 декодированного изображения может быть идентичен по функциям буферу 130 декодированного изображения.Inverse quantizer 310 may be identical in function to inverse quantizer 110, inverse transform processor 312 may be identical in function to inverse transform processor 112, restorer 314 may be identical in function to restorer 114, buffer 316 may be identical in function to buffer 116, loop filter 320 may be identical in function to loop filter 120, and decoded image buffer 330 may be identical in function to decoded image buffer 130.

Варианты осуществления декодера 30 могут содержать блок разделения (не показан на фиг.13). В одном примере блок 360 обработки предсказания видеодекодера 30 может быть выполнен с возможностью выполнять любую описанную выше комбинацию способов разделения.Embodiments of decoder 30 may include a splitter (not shown in FIG. 13). In one example, prediction processing unit 360 of video decoder 30 may be configured to perform any combination of separation methods described above.

Блок 360 обработки предсказания может содержать блок 344 внешнего предсказания и блок 354 внутреннего предсказания, в котором блок 344 внешнего предсказания может напоминать блок 144 внешнего предсказания по функциям и блок 354 внутреннего предсказания может напоминать блок 154 внутреннего предсказания по функциям. Блок 360 обработки предсказания обычно выполнен с возможностью выполнять предсказания блока и/или получать блок 365 предсказания из закодированных данных 21, а также принимать или получать (явно или неявно) относящиеся к предсказанию параметры и/или информацию о выбранном режиме предсказания, например, из блока 304 энтропийного декодирования.Prediction processing block 360 may comprise inter prediction block 344 and intra prediction block 354, in which inter prediction block 344 may resemble inter function prediction block 144 and intra prediction block 354 may resemble intra function prediction block 154. Prediction processing unit 360 is typically configured to perform block predictions and/or obtain prediction block 365 from encoded data 21, and to receive or obtain (explicitly or implicitly) prediction-related parameters and/or selected prediction mode information, for example, from the block 304 entropy decoding.

Когда сегмент видео кодируется, как сегмент с внутренним кодированием (I), блок 354 внутреннего предсказания блока 360 обработки предсказания выполнен с возможностью генерировать блок 365 предсказания для блока изображения текущего сегмента видео на основании сигнализируемого режима внутреннего предсказания и данных из ранее декодированных блоков текущего кадра или изображения. Когда видеокадр кодируется как внешне кодируемый (то есть B или P) сегмент, блок 344 внешнего предсказания (например, блок компенсации движения) блока 360 обработки предсказания выполнен с возможностью формировать блоки 365 предсказания для видеоблока текущего сегмента видео на основании векторов движения и других элементов синтаксиса, принятых из блока 304 энтропийного декодирования. Для внешнего предсказания блоки предсказания могут быть получены из одного из опорных изображений в одном из списков опорных изображений. Видеодекодер 30 может составлять списки опорных кадров, список 0 и список 1, используя способы построения по умолчанию на основании опорных изображений, хранящихся в DPB 330.When a video segment is encoded as an intra (I) segment, the intra prediction block 354 of the prediction processing block 360 is configured to generate a prediction block 365 for a picture block of the current video segment based on the signaled intra prediction mode and data from previously decoded blocks of the current frame, or Images. When a video frame is encoded as an inter-coded (i.e., B or P) segment, the inter prediction block 344 (e.g., motion compensation block) of the prediction processing block 360 is configured to generate prediction blocks 365 for the video block of the current video segment based on the motion vectors and other syntax elements. received from block 304 entropy decoding. For inter prediction, prediction blocks may be obtained from one of the reference pictures in one of the reference picture lists. Video decoder 30 may construct reference frame lists, list 0 and list 1 using default construction methods based on reference pictures stored in DPB 330.

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

Блок 310 обратного квантования выполнен с возможностью обратного квантования, т.е. деквантования квантованных коэффициентов преобразования, предоставленных в битовом потоке и декодированных блоком 304 энтропийного декодирования. Процесс обратного квантования может включать в себя использование параметра квантования, вычисленного видеокодером 100 для каждого видеоблока в сегменте видео для определения степени квантования и, аналогичным образом, степени обратного квантования, которое должно быть применено.The inverse quantizer 310 is configured to inverse quantize, i. e. dequantizing the quantized transform coefficients provided in the bitstream and decoded by the entropy decoder 304 . The inverse quantization process may include using a quantization parameter calculated by video encoder 100 for each video block in a video segment to determine the amount of quantization, and likewise, the amount of inverse quantization to be applied.

Блок 310 обратного квантования может быть выполнен с возможностью принимать параметры квантования (QP) (или, в общем, информацию, относящуюся к обратному квантованию) и квантованные коэффициенты из данных 21 кодированного изображения (например, путем синтаксического анализа и/или декодирования, например, посредством блока 304 энтропийного декодирования) и применять на основании параметров квантования обратное квантование к декодированным квантованным коэффициентам 309 для получения деквантованных коэффициентов 311, которые также могут называться коэффициентами 311 преобразования.The inverse quantizer 310 may be configured to receive quantization parameters (QPs) (or inverse quantization related information in general) and quantized coefficients from the encoded picture data 21 (e.g., by parsing and/or decoding, e.g., by entropy decoding block 304) and apply, based on the quantization parameters, inverse quantization to the decoded quantized coefficients 309 to obtain dequantized coefficients 311, which may also be referred to as transform coefficients 311.

Блок 312 обработки обратного преобразования выполнен с возможностью применять обратное преобразование, например, обратное DCT, обратное целочисленное преобразование или концептуально аналогичный процесс обратного преобразования, к коэффициентам преобразования для получения остаточных блоков в области пикселей.The inverse transform processing unit 312 is configured to apply an inverse transform, such as an inverse DCT, an inverse integer transform, or a conceptually similar inverse transform process, to the transform coefficients to obtain residual blocks in the pixel region.

Блок 312 обработки обратного преобразования может быть выполнен с возможностью принимать деквантованные коэффициенты 311, также называемые коэффициентами 311 преобразования и применять преобразования к деквантованным коэффициентам 311 для получения восстановленных остаточных блоков 213 в области выборки. Восстановленные остаточные блоки 213 также могут называться блоками 313 преобразования. Преобразование может быть обратным преобразованием, например, обратным DCT, обратным DST, обратным целочисленным преобразованием или концептуально аналогичным процессом обратного преобразования. Блок 312 обработки обратного преобразования может быть дополнительно выполнен с возможностью принимать параметры преобразования или соответствующую информацию из данных 21 закодированного изображения (например, путем синтаксического анализа и/или декодирования, например, посредством блока 304 энтропийного декодирования) для определения преобразования, которое должно применяться к деквантованным коэффициентам 311.The inverse transform processor 312 may be configured to receive the dequantized coefficients 311, also referred to as transform coefficients 311, and apply transforms to the dequantized coefficients 311 to obtain reconstructed residual blocks 213 in the sample area. The restored residual blocks 213 may also be referred to as transform blocks 313 . The transformation may be an inverse transformation, eg, inverse DCT, inverse DST, inverse integer transformation, or a conceptually similar inverse transformation process. The inverse transform processing unit 312 may be further configured to receive transform parameters or corresponding information from the encoded image data 21 (e.g., by parsing and/or decoding, e.g., by entropy decoding block 304) to determine the transform to be applied to the dequantized coefficients 311.

Блок 314 восстановления (например, сумматор 314) выполнен с возможностью добавлять блок 313 обратного преобразования (т.е. восстановленный остаточный блок 313) к блоку 365 предсказания для получения восстановленного блока 315 в области выборки, например, путем сложения значений выборок восстановленного остаточного блока 313 и значений выборок блока 365 предсказания.Reconstructor 314 (eg, adder 314) is configured to add inverse transform block 313 (i.e., reconstructed residual block 313) to prediction block 365 to obtain reconstructed block 315 in the sample area, for example, by adding sample values of reconstructed residual block 313 and values of the samples block 365 prediction.

Блок 320 контурного фильтра (либо в контуре кодирования, либо после контура кодирования) выполнен с возможностью фильтрации восстановленного блока 315 для получения отфильтрованного блока 321, например, для сглаживания переходов пикселей или иного улучшения качества видео. Блок 320 контурного фильтра может содержать один или более контурных фильтров, таких как фильтр деблокинга, фильтр с адаптивным смещением (SAO) или один или более других фильтров, например, адаптивный контурный фильтр (ALF), фильтр подавления шума (NSF) или любую их комбинацию. В одном примере блок 220 контурного фильтра может содержать фильтр деблокинга, фильтр SAO и фильтр ALF. Порядок процесса фильтрации может быть фильтром деблокинга, SAO и ALF. В другом примере добавляется процесс, называемый отображением яркости с масштабированием цветности (LMCS) (а именно, адаптивным внутриконтурным формирователем). Этот процесс выполняется до деблокинга. В другом примере процесс фильтра деблокинга может также применяться к внутренним краям субблока, например, края аффинных субблоков, края субблоков ATMVP, края субблочного преобразования (SBT) и края внутреннего суб-раздела (ISP). Хотя на фиг. 13 показан блок 320 контурного фильтра как контурный фильтр, в других конфигурациях блок 320 контурного фильтра может быть реализован как постконтурный фильтр.The loop filter block 320 (either in the encoding loop or after the encoding loop) is configured to filter the reconstructed block 315 to obtain a filtered block 321, for example, to smooth pixel transitions or otherwise improve video quality. The loop filter block 320 may comprise one or more loop filters, such as a deblocking filter, an adaptive offset filter (SAO), or one or more other filters, such as an adaptive loop filter (ALF), a noise suppression filter (NSF), or any combination thereof. . In one example, loop filter block 220 may comprise a deblocking filter, an SAO filter, and an ALF filter. The order of the filtering process can be deblocking filter, SAO and ALF. In another example, a process called luminance chrominance scaling (LMCS) mapping (namely, adaptive in-loop shaper) is added. This process is performed prior to deblocking. In another example, the deblocking filter process may also be applied to inner sub-box edges, such as affine sub-box edges, ATMVP sub-box edges, sub-block transform (SBT) edges, and inner sub-partition (ISP) edges. Although in FIG. 13 shows the loop filter block 320 as a loop filter, in other configurations the loop filter block 320 may be implemented as a post loop filter.

Затем декодированные видеоблоки 321 в данном кадре или изображении сохраняются в буфере 330 декодированных изображений, в котором хранятся опорные изображения, используемые для последующей компенсации движения.Then, the decoded video blocks 321 in that frame or picture are stored in the decoded picture buffer 330, which stores reference pictures used for subsequent motion compensation.

Затем декодированные видеоблоки 321 изображения сохраняются в буфере 330 декодированных изображений, который сохраняет декодированные изображения 331 в качестве опорных изображений для последующей компенсации движения для других изображений и/или для вывода, соответственно, для отображения.The decoded video blocks 321 of the picture are then stored in the decoded picture buffer 330, which stores the decoded pictures 331 as reference pictures for subsequent motion compensation for other pictures and/or for output, respectively, for display.

Декодер 30 выполнен с возможностью выводить декодированное изображение 331, например, через выход 332 для представления или просмотра пользователю.The decoder 30 is configured to output the decoded image 331, for example, through an output 332 for presentation or viewing to a user.

Для декодирования сжатого битового потока могут использоваться другие варианты видеодекодера 30. Например, декодер 30 может формировать выходной видеопоток без блока 320 контурной фильтрации. Например, декодер 30 без преобразования может выполнять обратное квантование остаточного сигнала напрямую без блока 312 обработки обратного преобразования для определенных блоков или кадров. В другой реализации видеодекодер 30 может иметь блок 310 обратного квантования и блок 312 обработки обратного преобразования, объединенные в один блок.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 loop filter block 320 . For example, the non-transform decoder 30 may perform inverse quantization of the residual signal directly without the inverse transform processing unit 312 for certain blocks or frames. In another implementation, video decoder 30 may have an inverse quantizer 310 and an inverse transform processor 312 combined into one block.

В дополнение или альтернативно вышеупомянутым вариантам осуществления в других вариантах осуществления согласно фиг.26, блок 344 внешнего предсказания может быть идентичен блоку 244 внешнего предсказания (в частности, блоку компенсации движения) и блок 354 внутреннего предсказания может быть идентичен блоку 254 внешнего предсказания по функциям и выполняет решения о разделении или разбиении и предсказания на основании параметров разделения и/или предсказания или соответствующей информации, полученной из данных 21 закодированного изображения (например, путем синтаксического анализа и/или декодирования, например, посредством блока 304 энтропийного декодирования). Блок 360 приложения режима может быть выполнен с возможностью выполнения предсказания (внутреннее или внешнее предсказание) для каждого блока на основании восстановленных изображений, блоков или соответствующих выборок (фильтрованных или нефильтрованных) для получения блока 365 предсказания.In addition or alternatively to the above embodiments, in other embodiments of FIG. 26, inter prediction block 344 may be identical to inter prediction block 244 (in particular, motion compensation block) and intra prediction block 354 may be identical to inter prediction block 254 in terms of functions and performs split or split decisions and predictions based on splitting and/or prediction parameters or corresponding information obtained from encoded image data 21 (eg, by parsing and/or decoding, eg, by entropy decoding unit 304). Mode application block 360 may be configured to perform prediction (intra or inter prediction) for each block based on the reconstructed images, blocks, or corresponding samples (filtered or unfiltered) to obtain prediction block 365 .

Когда сегмент видео кодируется как внутри кодированный (I) сегмент, блок 354 внутреннего предсказания блока 360 приложения режима выполнен с возможностью генерировать блок 365 предсказания для блока изображения текущего сегмента видео на основании сигнализируемого режима внутреннего предсказания и данных из ранее декодированных блоков текущего изображения. Когда видеоизображение кодируется как внешне кодируемый (то есть, B или P) сегмент, блок 344 внешнего предсказания (например, блок компенсации движения) блока 360 приложения режима выполнен с возможностью формирования блоков 365 предсказания для видеоблока текущего сегмента видео на основании векторов движения и других элементов синтаксиса, принятых из блока 304 энтропийного декодирования. Для внешнего предсказания блоки предсказания могут быть сформированы из одного из опорных изображений в одном из списков опорных изображений. Видеодекодер 30 может составлять списки опорных кадров, список 0 и список 1, используя способы построения по умолчанию на основании опорных изображений, хранящихся в DPB 330. То же самое или подобное может применяться для вариантов осуществления с использованием групп плиток (например, групп плиток видео) и/или плиток (например, плитки видео) в дополнение или в качестве альтернативы сегментам (например сегменты видео), например, видео может быть закодировано с использованием групп плиток I, P или B и/или плиток.When a video segment is encoded as an intra-coded (I) segment, the intra prediction block 354 of the mode application block 360 is configured to generate a prediction block 365 for a picture block of the current video segment based on the signaled intra prediction mode and data from previously decoded blocks of the current picture. When a video image is encoded as an inter-coded (i.e., B or P) segment, the inter prediction block 344 (e.g., motion compensation block) of the mode application block 360 is configured to generate prediction blocks 365 for the video block of the current video segment based on motion vectors and other elements. syntax received from block 304 entropy decoding. For inter prediction, prediction blocks may be generated from one of the reference pictures in one of the reference picture lists. Video decoder 30 may construct key frame lists, list 0 and list 1 using default construction methods based on reference pictures stored in DPB 330. The same or similar may apply for embodiments using tile groups (e.g. video tile groups) and/or tiles (eg, video tiles) in addition to or as an alternative to segments (eg, video segments), for example, video may be encoded using I, P, or B tile groups and/or tiles.

Блок 360 приложения режима выполнен с возможностью определять информацию предсказания для видеоблока текущего сегмента видео путем анализа векторов движения или связанной информации и других элементов синтаксиса, и использует информацию предсказания для формирования блоков предсказания для текущего декодируемого видеоблока. Например, блок 360 приложения режима использует некоторые из принятых элементов синтаксиса для определения режима предсказания (например, внутреннее или внешнее предсказание), используемого для кодирования видеоблоков сегмента видео, типа сегмента внешнего предсказания (например, B-сегмент, P-сегмент или GPB-сегмент), информации о построении для одного или более списков опорных изображений для сегмента, векторов движения для каждого внешне кодированного видеоблока сегмента, статус внешнего предсказания для каждого внешне кодированного видеоблока сегмента и другую информацию для декодирования видеоблоков в текущем сегменте видео. То же самое или подобное может применяться для вариантов осуществления или посредством вариантов с использованием групп плиток (например, групп плиток видео) и/или плиток (например, плитки видео) в дополнение или альтернативно к сегментам (например, сегментам видео), например, видео может быть закодировано с использованием групп плиток I, P или B и/или плиток.The mode application block 360 is configured to determine prediction information for a video block of the current video segment by parsing motion vectors or related information and other syntax elements, and uses the prediction information to generate prediction blocks for the current video block being decoded. For example, mode application block 360 uses some of the received syntax elements to determine the prediction mode (eg, intra or inter prediction) used to encode video blocks of a video segment, the type of inter prediction segment (eg, B-segment, P-segment, or GPB-segment ), construction information for one or more reference picture lists for a segment, motion vectors for each inter-coded video block of the segment, inter-prediction status for each inter-coded video block of the segment, and other information for decoding video blocks in the current video segment. The same or similar may apply for or through embodiments using tile groups (e.g., video tile groups) and/or tiles (e.g., video tiles) in addition to or alternatively to segments (e.g., video segments), e.g. video may be encoded using I, P, or B tile groups and/or tiles.

Варианты осуществления видеодекодера 30, как показано на фиг.13, могут быть выполнены с возможностью разделять и/или декодировать изображения с использованием сегментов (также называемых сегментами видео), в котором изображение может быть разделено на или декодировано с использованием одного или более сегментов (обычно без перекрытия), и каждый сегмент может содержать один или более блоков (например, CTUs) или одну или более групп блоков (например, плитки (H.265/HEVC и VVC) или блоки (VVC)).Embodiments of video decoder 30, as shown in FIG. 13, may be configured to split and/or decode images using segments (also referred to as video segments), in which an image may be divided into or decoded using one or more segments (typically without overlap), and each segment may contain one or more blocks (eg CTUs) or one or more groups of blocks (eg tiles (H.265/HEVC and VVC) or blocks (VVC)).

Варианты осуществления видеодекодера 30, как показано на фиг.13, могут быть выполнены с возможностью разделять и/или декодировать изображения с использованием групп сегментов/плиток (также называемых группами плиток видео) и/или плиток (также называемых плитками видео), в котором изображение может быть разделено на или декодировано с использованием одного или более групп сегментов/плиток (обычно не перекрывающихся) и каждая группа сегментов/плиток может содержать, например, один или более блоков (например, CTUs) или одну или более плиток, в котором каждая плитка, например, может иметь прямоугольную форму и может содержать один или более блоков (например, CTUs), например, полные или дробные блоки.Embodiments of video decoder 30 as shown in FIG. 13 may be configured to partition and/or decode pictures using segment/tile groups (also referred to as video tile groups) and/or tiles (also referred to as video tiles) in which the picture may be partitioned into or decoded using one or more segment/tile groups (generally non-overlapping) and each segment/tile group may contain, for example, one or more blocks (e.g., CTUs) or one or more tiles, in which each tile , for example, may have a rectangular shape and may contain one or more blocks (eg, CTUs), such as full or fractional blocks.

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

Следует понимать, что в кодере 20 и декодере 30 результат обработки текущего этапа может быть дополнительно обработан и затем выведен на следующий этап. Например, после интерполяционной фильтрации, вывода вектора движения или контурной фильтрации может выполняться дополнительная операция, такая как ограничение или сдвиг, над результатом обработки интерполяционной фильтрации, вывода вектора движения или контурной фильтрации.It should be understood that in encoder 20 and decoder 30, the processing result of the current step may be further processed and then output to the next step. For example, after the interpolation filtering, motion vector output, or loop filtering, an additional operation such as clipping or shifting may be performed on the result of the interpolation filtering, motion vector output, or loop filtering processing.

Фиг.14 является схемой устройства 400 кодирования видео согласно варианту осуществления настоящего изобретения. Устройство 400 кодирования видео подходит для реализации раскрытых вариантов осуществления, как описано в данном документе. В варианте осуществления устройство 400 кодирования видео может быть декодером, таким как видеодекодер 30 по фиг.11A или кодер, такой как видеокодер 20 по фиг. 11А. В варианте осуществления устройство 400 кодирования видео может быть одним или более компонентами видеодекодера 30 по фиг.11A или видеокодер 20 по фиг.11A, как описано выше.14 is a diagram of a video encoding apparatus 400 according to an embodiment of the present invention. The video encoding device 400 is suitable for implementing the disclosed embodiments as described herein. In an embodiment, video encoding device 400 may be a decoder, such as video decoder 30 of FIG. 11A, or an encoder, such as video encoder 20 of FIG. 11A. In an embodiment, video encoding device 400 may be one or more components of video decoder 30 of FIG. 11A or video encoder 20 of FIG. 11A, as described above.

Устройство 400 кодирования видео содержит входные порты 410 и блоки 420 приемника (Rx) для приема данных; процессор, логический блок или центральный процессор (CPU) 430 для обработки данных; блоки 440 передатчика (Tx) и выходные порты 450 для передачи данных; и память 460 для хранения данных. Устройство 400 кодирования видео может также содержать оптико-электрические (OE) компоненты и электрические-оптические (EO) компоненты, подключенные к входным портам 410, блокам 420 приемника, блокам 440 передатчика и выходным портам 450 для вывода или ввода оптических или электрических сигналов.The video encoding device 400 includes input ports 410 and receiver (Rx) units 420 for receiving data; a processor, logical unit, or central processing unit (CPU) 430 for processing data; transmitter (Tx) blocks 440 and data output ports 450; and a memory 460 for storing data. The video encoder 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, ядер (например, как многоядерный процессор), FPGAs, ASICs и DSPs. Процессор 430 связан с входными портами 410, блоками 420 приемника, блоками 440 передатчика, выходными портами 450 и памятью 460. Процессор 430 содержит блок 470 кодирования. Блок 470 кодирования реализует раскрытые варианты осуществления, описанные выше. Например, блок 470 кодирования реализует, обрабатывает, подготавливает или предоставляет различные операции кодирования. Таким образом, использование блока 470 кодирования обеспечивает существенное улучшение функциональных возможностей устройства 400 кодирования видео и обеспечивает преобразование устройства 400 кодирования видео в другое состояние. В качестве альтернативы блок 470 кодирования реализован как инструкции, хранящиеся в памяти 460 и выполняемые процессором 430.Processor 430 is implemented in hardware and software. Processor 430 may be implemented as one or more CPU chips, cores (eg, as a multi-core processor), FPGAs, ASICs, and DSPs. The 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. Encoder 470 implements the disclosed embodiments described above. For example, encoding unit 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 video encoding device 400 and allows the video encoding device 400 to be converted to another state. Alternatively, encoder 470 is implemented as instructions stored in memory 460 and executed by processor 430.

Память 460 содержит один или более дисков, ленточных накопителей и твердотельных накопителей и может использоваться в качестве устройства хранения данных с переполнением, для хранения программ, когда такие программы выбраны для выполнения, и для хранения инструкций и данных, которые считываются во время выполнения программы. Память 460 может быть энергозависимой и/или энергонезависимой и может представлять собой постоянную память (ROM), оперативную память (RAM), троичную память с адресацией по содержимому (TCAM) и/или статическую память с произвольным доступом (SRAM).The memory 460 contains one or more disks, tape drives, and solid state drives and can be used as an overflow storage device, for storing programs when such programs are selected for execution, and for storing instructions and data that are read during program execution. Memory 460 may be 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).

Фиг.15 является упрощенной блок-схемой устройства 500, которое может использоваться как одно или оба из устройства 310 источника и устройства 320 назначения по фиг.11 согласно примерному варианту осуществления. Устройство 500 может реализовывать способы настоящего изобретения, описанные выше. Устройство 500 может быть выполнено в форме вычислительной системы, включающей в себя несколько вычислительных устройств, или в форме одного вычислительного устройства, например, мобильного телефона, планшетного компьютера, портативного компьютера, портативного компьютера, настольного компьютера, и тому подобное.FIG. 15 is a simplified block diagram of a device 500 that can be used as one or both of source device 310 and destination device 320 of FIG. 11, according to an exemplary embodiment. Device 500 may implement the methods of the present invention described above. 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.

Процессор 502 в устройстве 500 может быть центральным процессором. В качестве альтернативы процессор 502 может быть устройством любого другого типа или множеством устройств, способных манипулировать или обрабатывать информацию, существующую в настоящее время или разработанную в будущем. Хотя раскрытые реализации могут быть реализованы с одним процессором, как показано, например, с процессором 502, преимущества в скорости и эффективности могут быть достигнуты с использованием более чем одного процессора.Processor 502 in device 500 may be a central processing unit. Alternatively, processor 502 may be any other type of device or a plurality of devices capable of manipulating or processing information that currently exists or will be developed in the future. Although the disclosed implementations may be 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 по мере необходимости для обработки. Устройство 500 также может включать в себя одно или более устройств вывода, таких как дисплей 518. Дисплей 518 может быть, в одном примере, сенсорным дисплеем, который объединяет дисплей с сенсорным элементом, способным распознавать сенсорные вводы. Дисплей 518 может быть подключен к процессору 502 через шину 512.In an implementation, memory 504 in device 500 may be read only memory (ROM) or random access memory (RAM). 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, application programs 510 include at least one program, which allows the processor 502 to perform the methods described herein. For example, application programs 510 may include applications 1 through N, which further include a video encoding application that performs the methods described herein. Device 500 may also include additional memory in the form of secondary storage 514, which may, for example, be 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. 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 capable of recognizing touch inputs. Display 518 may be connected to processor 502 via bus 512.

Устройство 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 capable of recognizing touch inputs. Display 518 may be coupled 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 or includes a display, the display may be implemented in various ways, including liquid crystal display (LCD), cathode ray tube display (CRT), plasma display, or light emitting diode (LED) display, such as an organic light emitting diode (OLED) display.

Устройство 500 также может включать в себя устройство 520 формирования изображений, например камеру, или любое другое устройство 520 формирования изображений, существующее в настоящее время или разработанное в дальнейшем, которое может воспринимать изображение, такое как изображение пользователя, управляющего устройством, или взаимодействовать с устройством 500. Устройство 520 формирования изображений может быть расположено так, чтобы оно было направлено к пользователю, работающему с устройством 500. В примере положение и оптическая ось устройства 520 формирования изображений могут быть выполнены таким образом, чтобы поле зрения включало бы в себя область, которая непосредственно примыкает к дисплею 518 и из которой дисплей 518 виден.The device 500 may also include an imaging device 520, such as a camera, or any other imaging device 520, currently in existence or later developed, that can perceive an image, such as an image of a user operating the device, or interact with the device 500. The imaging device 520 may be positioned to point toward the 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 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 a sound detection device 522, such as a microphone, or any other audio device currently or in the future that can sense sounds in the vicinity of the device 500, or interact with it. The sound detection device 522 may be positioned to face a user operating the device 500 and may be configured to receive sounds, such as speech or other sounds, made by the user when the user operates the device 500.

Хотя фиг.15 изображает процессор 502 и память 504 устройства 500 как интегрированные в единый блок, могут использоваться другие конфигурации. Операции процессора 502 могут быть распределены между несколькими машинами (каждая машина имеет один или более процессоров), которые могут быть связаны напрямую или через локальную область или другую сеть. Память 504 может быть распределена между несколькими машинами, такими как сетевая память или память на нескольких машинах, выполняющих операции устройства 500. Хотя изображена как одна шина, шина 512 устройства 500 может состоять из нескольких шин. Кроме того, вторичное хранилище 514 может быть напрямую связано с другими компонентами устройства 500 или может быть доступно через сеть и может содержать один интегрированный блок, такой как карта памяти, или более блоков, например, несколько карт памяти. Таким образом, устройство 500 может быть реализовано в широком разнообразии конфигураций.Although FIG. 15 depicts 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 having 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 depicted as a single bus, bus 512 of device 500 may be comprised of multiple buses. In addition, secondary storage 514 may be directly connected to other components of the device 500 or may be accessed via a network and may contain one integrated unit, such as a memory card, or more units, such as multiple memory cards. Thus, device 500 can be implemented in a wide variety of configurations.

ВАРИАНТЫ ОСУЩЕСТВЛЕНИЯ, ОНОСЯЩИЕСЯ К СВЯЗИ МЕЖДУ ЭЛЕМЕНТАМИ ОГРАНИЧЕНИЯ РАЗДЕЛЕНИЯEMBODIMENTS RELATED TO THE RELATIONSHIP BETWEEN PARTITION RESTRICTION ELEMENTS

Настоящее изобретение относится к отношениям между элементами ограничения разделения (установка правил разделения для различных способов разделения изображения), к элементам ограничения, которые могут сигнализироваться через битовый поток, который включает в себя множество кодированных изображений. Соответственно, изобретение предлагает устройства и способы для генерирования, декодирования или обработки такого битового потока, в частности, включающий в себя элементы ограничения разделения в битовом потоке, и извлечение элементов ограничения разделения согласно новым правилам разделения.The present invention relates to relationships between partition constraint elements (setting partition rules for different image partition methods), constraint elements that can be signaled via a bitstream that includes a plurality of encoded pictures. Accordingly, the invention provides apparatuses and methods for generating, decoding or processing such a bitstream, in particular including splitting constraint elements in the bitstream, and extracting split constraint elements according to new splitting rules.

Следует отметить, что названия вышеописанных элементов синтаксиса используются (в этом документе) в том виде, в котором они используются обычно. Однако должно быть понятно, что эти названия можно изменить без изменения технического контекста. Следовательно, что следует считать важным логическое значение элементов синтаксиса.It should be noted that the names of the syntax elements described above are used (in this document) as they are commonly used. However, it should be understood that these names can be changed without changing the technical context. Therefore, what should be considered important is the logical meaning of the syntax elements.

В настоящее время элементы ограничения разделения (например, MaxBtSizeY, MaxMttDepth и MinQtSizeY) сигнализируются индивидуально в их диапазоне определения. В частности, в данный момент, элемент CtbSizeY (т.е. log2_ctu_size_minus2) синтаксиса и элементы MinQtSizeY (т.е. log2_min_qt_size_intra_slices_minus2 и log2_min_qt_size_inter_slices_minus2) синтаксиса и элементы MaxMttDepth (т.е. max_mtt_hierarchy_depth_inter_slices и max_mtt_hierarchy_depth_intra_slices) синтаксиса сигнализируется в наборе параметров последовательности (SPS). Кроме того, элемент синтаксиса разницы между размером CTB яркости и MaxBtSizeY (то есть log2_diff_ctu_max_bt_size) сигнализируется в заголовке сегмента. SPS и заголовок сегмента могут содержаться в битовом потоке изображения.Currently, split constraint members (eg, MaxBtSizeY, MaxMttDepth, and MinQtSizeY) are signaled individually in their definition range. В частности, в данный момент, элемент CtbSizeY (т.е. log2_ctu_size_minus2) синтаксиса и элементы MinQtSizeY (т.е. log2_min_qt_size_intra_slices_minus2 и log2_min_qt_size_inter_slices_minus2) синтаксиса и элементы MaxMttDepth (т.е. max_mtt_hierarchy_depth_inter_slices и max_mtt_hierarchy_depth_intra_slices) синтаксиса сигнализируется в наборе параметров последовательности (SPS ). In addition, the difference syntax element between the luma CTB size and MaxBtSizeY (ie log2_diff_ctu_max_bt_size) is signaled in the segment header. The SPS and the segment header may be contained in the bitstream of the picture.

Примерный синтаксис SPS, в частности синтаксис полезной нагрузки необработанной байтовой последовательности (RBSP) SPS, показан на фиг. 8. Семантика SPS RBSP этого синтаксиса следующая.An exemplary SPS syntax, in particular the SPS raw byte sequence (RBSP) payload syntax, is shown in FIG. 8. The semantics of the SPS RBSP of this syntax is as follows.

«Pic_width_in_luma_samples» определяет ширину каждого декодированного изображения в блоках выборок яркости, не должен быть равен 0 и должен быть целым числом, кратным MinCbSizeY."Pic_width_in_luma_samples" defines the width of each decoded picture in blocks of luma samples, must not be equal to 0, and must be an integer multiple of MinCbSizeY.

«Pic_height_in_luma_samples» определяет высоту каждого декодированного изображения в блоках выборок яркости, не должен быть равен 0 и должен быть целым числом, кратным MinCbSizeY."Pic_height_in_luma_samples" defines the height of each decoded picture in blocks of luma samples, must not be equal to 0, and must be an integer multiple of MinCbSizeY.

«Log2_ctu_size_minus2» плюс 2 определяет размер CTB яркости каждого CTU."Log2_ctu_size_minus2" plus 2 defines the size of the brightness CTB of each CTU.

Элементы CtbLog2SizeY, CtbSizeY, MinCbLog2SizeY, MinCbSizeY, MinTbLog2SizeY, MaxTbLog2SizeY, PicWidthInCtbsY, PicHeightInCtbsY, PicSizeInCtbsY, PicWidthInMinCbsY, PicHeightInMinCbsY, PicSizeInMinCbsY, PicSixeInSamplesY, PicWidthInSamplesC и PicHeightInSamplesC обычно получены, как ниже указано.The elements CtbLog2SizeY, CtbSizeY, MinCbLog2SizeY, MinCbSizeY, MinTbLog2SizeY, MaxTbLog2SizeY, PicWidthInCtbsY, PicHeightInCtbsY, PicSizeInCtbsY, PicWidthInMinCbsY, PicHeightInMinCbsY, PicSizeInMinCbsY, PicSixeInSamplesY, PicsInSampleCbsY, PicSizeInMinCbsY, PicSixeInSamplesY, PicsInSampleCbsY, and Pic.InSampleCbsY are usually obtained as below

• CtbLog2SizeY = log2_ctu_size_minus2 + 2• CtbLog2SizeY = log2_ctu_size_minus2 + 2

• CtbSizeY = 1 << CtbLog2SizeY• CtbSizeY = 1 << CtbLog2SizeY

• MinCbLog2SizeY = 2• MinCbLog2SizeY = 2

• MinCbSizeY = 1 << MinCbLog2SizeY• MinCbSizeY = 1 << MinCbLog2SizeY

• MinTbSizeY = 4• MinTbSizeY = 4

• MaxTbSizeY = 64• MaxTbSizeY = 64

• PicWidthInCtbsY = Ceil (pic_width_in_luma_samples ÷ CtbSizeY)• PicWidthInCtbsY = Ceil(pic_width_in_luma_samples ÷ CtbSizeY)

• PicHeightInCtbsY = Ceil (pic_height_in_luma_samples ÷ CtbSizeY)• PicHeightInCtbsY = Ceil(pic_height_in_luma_samples ÷ CtbSizeY)

• PicSizeInCtbsY = PicWidthInCtbsY * PicHeightInCtbsY• PicSizeInCtbsY = PicWidthInCtbsY * PicHeightInCtbsY

• PicWidthInMinCbsY = pic_width_in_luma_samples / MinCbSizeY• PicWidthInMinCbsY = pic_width_in_luma_samples / MinCbSizeY

• PicHeightInMinCbsY = pic_height_in_luma_samples / MinCbSizeY• PicHeightInMinCbsY = pic_height_in_luma_samples / MinCbSizeY

• PicSizeInMinCbsY = PicWidthInMinCbsY * PicHeightInMinCbsY• PicSizeInMinCbsY = PicWidthInMinCbsY * PicHeightInMinCbsY

• PicSizeInSamplesY = pic_width_in_luma_samples * pic_height_in_luma_samples• PicSizeInSamplesY = pic_width_in_luma_samples * pic_height_in_luma_samples

• PicWidthInSamplesC = pic_width_in_luma_samples / SubWidthC• PicWidthInSamplesC = pic_width_in_luma_samples / SubWidthC

• PicHeightInSamplesC = pic_height_in_luma_samples / SubHeightC• PicHeightInSamplesC = pic_height_in_luma_samples / SubHeightC

«Log2_min_qt_size_intra_slices_minus2» плюс 2 определяет минимальный размер яркости листового блока, полученного в результате разделения дерева квадрантов CTU на сегменты с slice_type, равным 2 (I). Значение log2_min_qt_size_intra_slices_minus2 должно быть в диапазоне от 0 до CtbLog2SizeY - 2 включительно."Log2_min_qt_size_intra_slices_minus2" plus 2 specifies the minimum size of the leaf block brightness resulting from splitting the CTU quadtree into slices with slice_type equal to 2 (I). The log2_min_qt_size_intra_slices_minus2 value must be between 0 and CtbLog2SizeY - 2 inclusive.

• MinQtLog2SizeIntraY = log2_min_qt_size_intra_slices_minus2 + 2• MinQtLog2SizeIntraY = log2_min_qt_size_intra_slices_minus2 + 2

«Log2_min_qt_size_inter_slices_minus2» плюс 2 определяет минимальный размер яркости листового блока, полученного в результате разделения дерева квадрантов CTU на сегменты с slice_type, равным 0 (B) или 1 (P). Значение log2_min_qt_size_inter_slices_minus2 должно быть в диапазоне от 0 до CtbLog2SizeY - 2 включительно."Log2_min_qt_size_inter_slices_minus2" plus 2 specifies the minimum size of the leaf block brightness resulting from splitting the CTU quadtree into slices with slice_type equal to 0 (B) or 1 (P). The log2_min_qt_size_inter_slices_minus2 value must be between 0 and CtbLog2SizeY - 2 inclusive.

• MinQtLog2SizeInterY = log2_min_qt_size_inter_slices_minus2 + 2• MinQtLog2SizeInterY = log2_min_qt_size_inter_slices_minus2 + 2

«Max_mtt_hierarchy_depth_inter_slices» определяет максимальную глубину иерархии для блоков кодирования, полученные в результате разделения многотипного дерева листового дерева квадрантов на сегменты с slice_type, равным 0 (B) или 1 (P). Значение max_mtt_hierarchy_depth_inter_slices должно быть в диапазоне от 0 до CtbLog2SizeY - MinTbLog2SizeY включительно."Max_mtt_hierarchy_depth_inter_slices" defines the maximum hierarchy depth for coding blocks resulting from splitting a multitype leaf tree quadtree into segments with slice_type equal to 0 (B) or 1 (P). The value of max_mtt_hierarchy_depth_inter_slices must be between 0 and CtbLog2SizeY - MinTbLog2SizeY inclusive.

«Max_mtt_hierarchy_depth_intra_slices» определяет максимальную глубину иерархии для блоков кодирования, полученные в результате разделения многотипного дерева листового дерева квадрантов на сегменты с slice_type, равным 2 (I). Значение max_mtt_hierarchy_depth_intra_slices должно быть в диапазоне от 0 до CtbLog2SizeY - MinTbLog2SizeY включительно."Max_mtt_hierarchy_depth_intra_slices" defines the maximum hierarchy depth for coding blocks resulting from splitting a multi-type leaf tree quadtree into segments with slice_type equal to 2 (I). The value of max_mtt_hierarchy_depth_intra_slices must be between 0 and CtbLog2SizeY - MinTbLog2SizeY inclusive.

Кроме того, фиг.9 показывает примерный синтаксис заголовка сегмента. Семантика заголовка фрагмента этого синтаксиса следующая.In addition, FIG. 9 shows an exemplary segment header syntax. The semantics of the fragment header of this syntax are as follows.

«Log2_diff_ctu_max_bt_size» определяет разницу между размером CTB яркости и максимальным размером яркости (шириной или высотой) блока кодирования, который может быть разделен с использованием двоичного разделения. Значение log2_diff_ctu_max_bt_size должно быть в диапазоне от 0 до CtbLog2SizeY - MinCbLog2SizeY включительно."Log2_diff_ctu_max_bt_size" defines the difference between the luminance CTB size and the maximum luminance size (width or height) of a coding block that can be divided using binary division. The log2_diff_ctu_max_bt_size value must be between 0 and CtbLog2SizeY - MinCbLog2SizeY inclusive.

Когда log2_diff_ctu_max_bt_size отсутствует, значение log2_diff_ctu_max_bt_size предполагается равным 2.When log2_diff_ctu_max_bt_size is missing, log2_diff_ctu_max_bt_size is assumed to be 2.

Элементы MinQtLog2SizeY, MaxBtLog2SizeY, MinBtLog2SizeY, MaxTtLog2SizeY, MinTtLog2SizeY, MaxBtSizeY, MinBtSizeY, MaxTtSizeY, MinTtSizeY и MaxMttDepth обычно выводятся следующим образом:The elements MinQtLog2SizeY, MaxBtLog2SizeY, MinBtLog2SizeY, MaxTtLog2SizeY, MinTtLog2SizeY, MaxBtSizeY, MinBtSizeY, MaxTtSizeY, MinTtSizeY, and MaxMttDepth are typically rendered as follows:

• MinQtLog2SizeY = (slice_type = = I)? MinQtLog2SizeIntraY: MinQtLog2SizeInterY• MinQtLog2SizeY = (slice_type == I)? MinQtLog2SizeIntraY: MinQtLog2SizeInterY

• MaxBtLog2SizeY = CtbLog2SizeY - log2_diff_ctu_max_bt_size• MaxBtLog2SizeY = CtbLog2SizeY - log2_diff_ctu_max_bt_size

• MinBtLog2SizeY = MinCbLog2SizeY• MinBtLog2SizeY = MinCbLog2SizeY

• MaxTtLog2SizeY = (slice_type = = I)? 5: 6• MaxTtLog2SizeY = (slice_type = = I)? 5:6

• MinTtLog2SizeY = MinCbLog2SizeY• MinTtLog2SizeY = MinCbLog2SizeY

• MinQtSizeY = 1 << MinQtLog2SizeY• MinQtSizeY = 1 << MinQtLog2SizeY

• MaxBtSizeY = 1 << MaxBtLog2SizeY• MaxBtSizeY = 1 << MaxBtLog2SizeY

• MinBtSizeY = 1 << MinBtLog2SizeY• MinBtSizeY = 1 << MinBtLog2SizeY

• MaxTtSizeY = 1 << MaxTtLog2SizeY• MaxTtSizeY = 1 << MaxTtLog2SizeY

• MinTtSizeY = 1 << MinTtLog2SizeY• MinTtSizeY = 1 << MinTtLog2SizeY

• MaxMttDepth = (slice_type = = I)? max_mtt_hierarchy_depth_intra_slices: max_mtt_hierarchy_depth_inter_slices• MaxMttDepth = (slice_type = = I)? max_mtt_hierarchy_depth_intra_slices: max_mtt_hierarchy_depth_inter_slices

Как показано на фиг.8, в настоящее время ширина и высота последовательности изображений (например, изображений видеопоследовательности) указываются с использованием элементов «pic_width_in_luma_samples» и «pic_height_in_luma_samples» синтаксиса. Обычно эти элементы синтаксиса должны быть кратными MinCbSizeY, чтобы гарантировать, что изображение может быть разделено на блоки кодирования с минимальным размером. Однако, хотя pic_height_in_luma_samples и pic_width_in_luma_samples должны быть кратными MinCbSizeY, по-прежнему не гарантируется, что изображение может быть полностью разделено на блоки с использованием доступных способов разделения дерева квадрантов, двоичного дерева и троичного дерева, соответственно. Ниже приведено пояснение примера данного аспекта:As shown in FIG. 8, at present, the width and height of a sequence of pictures (eg, pictures of a video sequence) are specified using the "pic_width_in_luma_samples" and "pic_height_in_luma_samples" syntax elements. Typically, these syntax elements must be a multiple of MinCbSizeY to ensure that the image can be divided into minimum size coding blocks. However, although pic_height_in_luma_samples and pic_width_in_luma_samples must be multiples of MinCbSizeY, it is still not guaranteed that the image can be fully subdivided using the available quadtree, binary tree, and ternary tree partitioning methods, respectively. An example of this aspect is explained below:

В качестве примера предполагается, что:As an example, it is assumed that:

• MinCbSizeY равен 4• MinCbSizeY is 4

• MinQtSizeY равен 32• MinQtSizeY is 32

• MaxBtSizeY равен 16• MaxBtSizeY is 16

В этом примере, если pic_width_in_luma_samples = 132 и pic_width_in_luma_samples = 132, хотя ширина и высота изображения кратны 4, все же невозможно полностью разделить изображение. Причина в том, что родительский блок, например, размер 32×32 не может быть разделен с использованием двоичного разделения или разделения дерева квадрантов, потому что, если будет применено разделение дерева квадрантов, ограничение MinQtSizeY будет нарушено и, если будет применено двоичное разделение, будет нарушено ограничение MaxBtSizeY. Другими словами, невозможно сгенерировать блок с шириной или высотой, равной 4, что, однако, необходимо для полного разделения изображения.In this example, if pic_width_in_luma_samples = 132 and pic_width_in_luma_samples = 132, although the width and height of the image are multiples of 4, it is still not possible to completely separate the image. The reason is that a parent box, for example, size 32x32, cannot be split using binary splitting or quadtree splitting, because if quadtree splitting is applied, the MinQtSizeY constraint will be violated and, if binary splitting is applied, there will be MaxBtSizeY constraint violated. In other words, it is not possible to generate a block with a width or height equal to 4, which, however, is necessary for a complete division of the image.

Таким образом, как проиллюстрировано выше, в настоящее время необходимо решить техническую задачу разделения изображения с полным соблюдением обычных правил разделения. Фактически, данная техническая задача является весьма сложной, поскольку это означает, что некоторые размеры изображения не могут быть закодированы и не могут быть декодированы.Thus, as illustrated above, it is currently necessary to solve the technical problem of image separation in full respect of the usual separation rules. In fact, this technical challenge is quite difficult, since it means that some image sizes cannot be encoded and cannot be decoded.

Фиг.1 показывает устройство 100 согласно общему варианту осуществления изобретения. Устройство 100 выполнено с возможностью генерировать или обрабатывать, то есть, манипулировать битовым потоком 101, включающий в себя закодированные изображения, например, битовый поток видео. Устройство 100 может находиться в или может содержать кодер, выполненный с возможностью кодировать изображения и генерировать битовый поток 101. Устройство 100 может определять отношения между элементами ограничения разделения и может включать в битовый поток 101 эти элементы ограничения разделения и/или их отношения. Таким образом, устройство 100 может добавлять элементы ограничения разделения и/или отношения к синтаксису SPS и/или синтаксису заголовка сегмента в битовом потоке 101.1 shows a device 100 according to a general embodiment of the invention. The device 100 is configured to generate or process, that is, manipulate, a bitstream 101 including encoded images, such as a video bitstream. Device 100 may reside in or may include an encoder configured to encode images and generate bitstream 101. Device 100 may determine relationships between split constraint elements and may include these split constraint elements and/or their relationships in bitstream 101. Thus, device 100 may add separation and/or relation constraint elements to the SPS syntax and/or segment header syntax in bitstream 101.

Подобным образом устройство декодера анализирует битовый поток и/или получает из битового потока и применяя заданные правила, параметры ограничения, относящиеся к разделению. Затем параметр ограничения помогает правильно декодировать и восстанавливать разделы. Кодер и декодер используют (обрабатывают) один и тот же синтаксис.Similarly, the decoder device analyzes the bitstream and/or obtains from the bitstream and applying the given rules, the restriction parameters related to the separation. The limit parameter then helps to properly decode and recover partitions. The encoder and decoder use (process) the same syntax.

В частности, устройство 100 выполнено с возможностью определять MaxBtSizeY 102 и/или определять MaxMttDepth 103 и MinCbSizeY 104. Затем устройство 100 выполнено с возможностью определять MinQtSizeY 105 на основании MaxBtSizeY 102 и/или на основании MaxMttDepth 103 и MinCbSizeY 104. Наконец, устройство 100 выполнено с возможностью включать в битовый поток 101 определенный MinQtSizeY 105 либо косвенно (то есть, путем использования информации, из которой может быть получен MinQtSizeY 105), либо напрямую.Specifically, device 100 is configured to determine MaxBtSizeY 102 and/or determine MaxMttDepth 103 and MinCbSizeY 104. Device 100 is then configured to determine MinQtSizeY 105 based on MaxBtSizeY 102 and/or based on MaxMttDepth 103 and MinCbSizeY 104. Finally, device 100 is configured to with the ability to include in the bitstream 101 a specific MinQtSizeY 105 either indirectly (that is, by using information from which MinQtSizeY 105 can be obtained) or directly.

В устройстве 100 согласно первому конкретному варианту осуществления изобретения, которое основано на устройстве 100, показанном на фиг.1, диапазон значений MinQtSizeY 105 может быть ограничен на основании значения MaxBtSizeY 102. Например, верхняя граница MinQtSizeY 105 может быть ограничена MaxBtSizeY 102. Другими словами, в устройстве 100 согласно первому конкретному варианту осуществления минимальное значение MinQtSizeY 105 не может быть больше MaxBtSizeY 102.In the device 100 according to the first embodiment of the invention, which is based on the device 100 shown in FIG. 1, the range of values of MinQtSizeY 105 may be limited based on the value of MaxBtSizeY 102. For example, the upper bound of MinQtSizeY 105 may be limited to MaxBtSizeY 102. In other words, in the device 100 according to the first embodiment, the minimum value of MinQtSizeY 105 cannot be greater than MaxBtSizeY 102.

В качестве альтернативы или в дополнение к вышесказанному в устройстве 100 согласно первому конкретному варианту осуществления диапазон значений MinQtSizeY 105 может быть ограничен на основании MaxMttDepth 103. В этом случае, например:Alternatively or in addition to the above, in the device 100 according to the first embodiment, the range of MinQtSizeY 105 values may be limited based on MaxMttDepth 103. In this case, for example:

• Если MaxMttDepth 103 равно 0, MinQtSizeY 105 может быть равен (или может быть получен как) MinCbSizeY 104.• If MaxMttDepth 103 is 0, MinQtSizeY 105 may be equal to (or may be derived from) MinCbSizeY 104.

• Если MaxMttDepth 103 больше 0, верхняя граница MinQtSizeY 105 может быть равна (MinCbSizeY 104 << MaxMttDepth 103). Другими словами, MinQtSizeY 105 не должен быть больше (MinCbSizeY 104 << MaxMttDepth 103).• If MaxMttDepth 103 is greater than 0, the upper bound of MinQtSizeY 105 may be (MinCbSizeY 104 << MaxMttDepth 103). In other words, MinQtSizeY 105 must not be greater than (MinCbSizeY 104 << MaxMttDepth 103).

Примечательно, что в этом документе операция x << y может быть математически описана как xy, где x равно 2 в степени n, где n является неотрицательным целым числом. Другими словами, x << y представляет собой сдвиг x на y бит влево.Notably, in this document, the operation x << y can be mathematically described as x y where x is 2 to the power of n, where n is a non-negative integer. In other words, x << y represents shifting x y bits to the left.

Таким образом, устройство 100 согласно первому конкретному варианту осуществления выполнено с возможностью устанавливать отношения между MinQtSizeY 105 и MinCbSizeY 104, MaxBtSizeY 102 и/или MaxMttDepth 103, в частности, таким образом, чтобы наименьший блок раздела мог быть получен путем рекурсивного разделения родительского блока, используя комбинацию способов разделения дерева квадрантов или двоичного разделения. Поскольку наименьший блок (размер которого указан MinCbSizeY 104) может быть сгенерирован с помощью доступных способов разделения, можно полностью разделить изображение, размер которого кратен MinCbSizeY 104.Thus, the device 100 according to the first embodiment is configured to establish relationships between MinQtSizeY 105 and MinCbSizeY 104, MaxBtSizeY 102 and/or MaxMttDepth 103, in particular such that the smallest partition block can be obtained by recursively splitting the parent block using a combination of quadtree splitting or binary splitting methods. Since the smallest block (whose size is specified by MinCbSizeY 104) can be generated using the available splitting methods, it is possible to fully split an image that is a multiple of MinCbSizeY 104.

Фиг.2 и фиг.3 показывают синтаксис 200 SPS RPBS и синтаксис 300 заголовка сегмента для устройства согласно второму конкретному варианту осуществления изобретения. В частности, традиционный синтаксис SPS RBSP, показанный на фиг.8 изменен на синтаксис 200, показанный на фиг.2 (новые элементы выделены жирным шрифтом, удаленные - перечеркнутыми). Кроме того, традиционный синтаксис заголовка сегмента, показанный на фиг.9, изменен на синтаксис 300, показанный на фиг.3 (новые элементы выделены жирным шрифтом, удаленные элементы зачеркнуты). Устройство согласно второму конкретному варианту осуществления может быть выполнено на основании устройства 100, показанном на фиг.1, или может быть отдельным вариантом осуществления изобретения. В устройстве по второму конкретному варианту реализовано:2 and 3 show an RPBS SPS syntax 200 and a segment header syntax 300 for a device according to a second embodiment of the invention. In particular, the traditional RBSP SPS syntax shown in FIG. 8 is changed to the syntax 200 shown in FIG. 2 (new elements in bold, deleted ones in strikethrough). In addition, the traditional segment header syntax shown in FIG. 9 has been changed to the syntax 300 shown in FIG. 3 (new elements in bold, deleted elements in strikethrough). The apparatus according to the second embodiment may be based on the apparatus 100 shown in FIG. 1, or may be a separate embodiment of the invention. In the device according to the second specific variant, the following is implemented:

• MaxBtSizeY 102 сигнализируется в битовом потоке 101 относительно MinQtSizeY 105. Другими словами, как показано на фиг.3, элемент 301 синтаксиса разницы между MaxBtSizeY 102 и MinQtSizeY 105 может быть сигнализирован в битовом потоке 101 (с использованием, например, элемента синтаксиса, такого как log2_diff_max_bt_size_min_qt_size), и может быть получен MaxBtSizeY 102 (например, в декодере битового потока 101) на основании MinQtSizeY 105 и log2_diff_max_bt_size_min_qt_size. В этом случае, в примере:MaxBtSizeY 102 is signaled in bitstream 101 relative to MinQtSizeY 105. In other words, as shown in FIG. 3, syntax element 301 of the difference between MaxBtSizeY 102 and MinQtSizeY 105 can be signaled in bitstream 101 (using, for example, a syntax element such as log2_diff_max_bt_size_min_qt_size), and MaxBtSizeY 102 can be obtained (eg, in bitstream decoder 101) based on MinQtSizeY 105 and log2_diff_max_bt_size_min_qt_size. In this case, in the example:

- MaxBtSizeY 102 = MinQtSizeY 105 << log2_diff_max_bt_size_min_qt_size- MaxBtSizeY 102 = MinQtSizeY 105 << log2_diff_max_bt_size_min_qt_size

- Необходимо отметить, что в этом примере элемент 301 синтаксиса разницы между MaxBtSizeY 102 и MinQtSizeY 105 сигнализируется в логарифмическом масштабе (в частности, по основанию 2). В этом примере log2_diff_max_bt_size_min_qt_size может иметь только положительные целочисленные значения или нулевое значение.- It should be noted that in this example, the syntax element 301 of the difference between MaxBtSizeY 102 and MinQtSizeY 105 is signaled on a logarithmic scale (specifically base 2). In this example, log2_diff_max_bt_size_min_qt_size can only have positive integer values or zero.

• MaxMttDepth 103 сигнализируется в битовом потоке 101 относительно MinQtSizeY 105 и MinCbSizeY 104. Как показано на фиг. 2, элемент 201 синтаксиса разницы между MaxMttDepth 103 и значением log-2 MinQtSizeY 105 может сигнализироваться в битовом потоке 101 (например, с использованием элемента синтаксиса:MaxMttDepth 103 is signaled in bitstream 101 with respect to MinQtSizeY 105 and MinCbSizeY 104. As shown in FIG. 2, syntax element 201 of the difference between MaxMttDepth 103 and log-2 value MinQtSizeY 105 may be signaled in bitstream 101 (for example, using the syntax element:

diff_max_mtt_hierarchy_depth_log2_min_qt_size). Два таких элемента 201 синтаксиса показаны на фиг. 2, один для inter_slices, один для intra_slices. В этом случае в примере:diff_max_mtt_hierarchy_depth_log2_min_qt_size). Two such syntax elements 201 are shown in FIG. 2, one for inter_slices, one for intra_slices. In this case, in the example:

- MaxMttDepth 103 = diff_max_mtt_hierarchy_depth_log2_min_qt_size + log2 (MinQtSizeY) - log2 (MinCbSizeY).- MaxMttDepth 103 = diff_max_mtt_hierarchy_depth_log2_min_qt_size + log2(MinQtSizeY) - log2(MinCbSizeY).

- Необходимо отметить, что в этом примере снова предполагается, что diff_max_mtt_hierarchy_depth_log2_min_qt_size отображается в логарифмическом масштабе. Функция log2 (x) соответствует логарифму x по основанию 2.- It should be noted that this example again assumes that diff_max_mtt_hierarchy_depth_log2_min_qt_size is displayed on a logarithmic scale. The log2(x) function corresponds to the base 2 logarithm of x.

На фиг.3, «log2_diff_max_bt_size_min_qt_size» определяет разницу между максимальным размером яркости (шириной или высотой) блока кодирования, который может быть разделен с использованием двоичного разделения, и минимальным размером яркости (шириной или высотой) блока кодирования, который может быть разделен с использованием дерева квадрантов. Значение log2_diff_ctu_max_bt_size должно находиться в диапазоне от 0 до CtbLog2SizeY - MinQtLog2SizeY включительно.3, "log2_diff_max_bt_size_min_qt_size" defines the difference between the maximum luminance size (width or height) of a coding block that can be divided using binary division and the minimum luminance size (width or height) of a coding block that can be divided using tree. quadrants. The log2_diff_ctu_max_bt_size value must be between 0 and CtbLog2SizeY - MinQtLog2SizeY inclusive.

Фиг.4 показывает синтаксис 400 SPS RPBS для устройства согласно третьему конкретному варианту осуществления изобретения. Устройство согласно третьему конкретному варианту осуществления может быть выполнено на устройстве 100, показанном на фиг. 1, или может быть отдельным вариантом осуществления изобретения. Как упоминалось ранее, обычно каждый из сигнализированных элементов 405 и 406 размера изображения (pic_width_in_luma_samples и pic_height_in_luma_samples) определяется как значение, кратное целому числу MinCbSizeY 104.4 shows an RPBS SPS syntax 400 for a device according to a third embodiment of the invention. The device according to the third embodiment may be implemented on the device 100 shown in FIG. 1, or may be a separate embodiment of the invention. As previously mentioned, typically each of the signaled image size elements 405 and 406 (pic_width_in_luma_samples and pic_height_in_luma_samples) is defined as a multiple of the integer MinCbSizeY 104.

Напротив, в первой реализации устройства согласно третьему конкретному варианту осуществления элементы 405 и 406 размера изображения могут быть ограничены, чтобы иметь только значения, которые являются целыми кратными MinQtSizeY 105. Преимущество этого заключается в том, что граничный блок всегда может иметь в качестве доступного способа разделения разделение дерева квадрантов.In contrast, in the first implementation of the device according to the third embodiment, the image size elements 405 and 406 can be constrained to only have values that are integer multiples of MinQtSizeY 105. splitting the quadtree.

Во второй реализации устройства согласно третьему конкретному варианту осуществления ширина и высота изображения могут сигнализироваться в битовом потоке 101 на основании MinQtSizeY 105. В частности, традиционный синтаксис SPS RBSP, показанный на фиг.8, изменяется согласно синтаксису 400, показанному на фиг.4 (новые элементы выделены жирным шрифтом, удаленные - перечеркнутыми).In the second implementation of the device according to the third embodiment, the image width and height may be signaled in bitstream 101 based on MinQtSizeY 105. In particular, the traditional RBSP SPS syntax shown in FIG. elements are in bold, deleted ones are in strikethrough).

В этом случае в синтаксисе 400 SPS, показанном на фиг.4, четыре элемента 401-404 синтаксиса могут сигнализироваться (например, log2_diff_pic_height_min_Qt и log2_diff_pic_width_min_Qt), в частности, два элемента синтаксиса (высота/ширина) на intra_slice и два элемента синтаксиса (высота/ширина) на inter_slice. Предпочтительно, эти элементы 401-404 синтаксиса сигнализируются вместо элементов 405 и 406 фактического размера изображения, и ширина и высота изображения могут быть определены с использованием следующих соотношений:In this case, in the SPS syntax 400 shown in FIG. 4, four syntax elements 401-404 may be signaled (e.g., log2_diff_pic_height_min_Qt and log2_diff_pic_width_min_Qt), specifically two syntax elements (height/width) per intra_slice and two syntax elements (height/ width) on inter_slice. Preferably, these syntax elements 401-404 are signaled instead of the actual image size elements 405 and 406, and the image width and height can be determined using the following relationships:

• Ширина изображения в выборках яркости = MinQtSizeY 105 << log2_diff_pic_width_min_Qt• Image width in luma samples = MinQtSizeY 105 << log2_diff_pic_width_min_Qt

• Высота изображения в выборках яркости = MinQtSizeY 105 << log2_diff_pic_height_min_Qt• Image height in luma samples = MinQtSizeY 105 << log2_diff_pic_height_min_Qt

Элементы 401-404 синтаксиса, в частности разницы, могут быть указаны в синтаксисе 400 SPS на основании логарифмической шкалы.Syntax elements 401-404, in particular differences, may be indicated in SPS syntax 400 based on a logarithmic scale.

Фиг.5 и фиг.6 показывают синтаксисы 5000 и 600 двух заголовков сегмента, соответственно, для устройства согласно четвертому конкретному варианту осуществления изобретения. Устройство согласно четвертому конкретному варианту осуществления может быть получено на устройстве 100, показанном на фиг. 1, или может быть отдельным вариантом осуществления изобретения.5 and 6 show syntaxes 5000 and 600 of two segment headers, respectively, for a device according to a fourth embodiment of the invention. The device according to the fourth embodiment can be obtained on the device 100 shown in FIG. 1, or may be a separate embodiment of the invention.

Устройство согласно четвертому конкретному варианту осуществления изобретения имеет отношение к решению технической задачи, заключающейся в том, что если MaxMttDepth 103 выводится, сигнализируется или указывается как равное 0, MaxBtSizeY 102 (или MaxTtSizeY) все еще может находиться в битовом потоке 101, и может иметь значение больше MinCbSizeY 104, и MinBtSizeY (или MinTtSizeY) все еще может иметь значение, равное MinCbSizeY 104. Это условие может сформировать неоднозначность в работе кодера и/или декодера, так что полное разделение кадра изображения все еще может быть невозможно.The device according to the fourth specific embodiment of the invention is concerned with solving the technical problem that if MaxMttDepth 103 is output, signaled or indicated as equal to 0, MaxBtSizeY 102 (or MaxTtSizeY) may still be in bitstream 101, and may have a value greater than MinCbSizeY 104, and MinBtSizeY (or MinTtSizeY) may still have a value equal to MinCbSizeY 104. This condition may create ambiguity in the operation of the encoder and/or decoder, so that complete image frame separation may still not be possible.

В первой реализации устройства согласно четвертому конкретному варианту осуществления MaxBtSizeY 102 (или MaxTtSizeY) передается или указывается в битовом потоке 101 на основании значения MaxMttDepth 103. В частности, традиционный синтаксис заголовка сегмента, показанный на фиг.9, изменен на синтаксис 5000, показанный на фиг.5 (новые элементы выделены жирным шрифтом). То есть устройство выполнено с возможностью добавлять элемент 5001 синтаксиса MaxBtSizeY 102 (или MaxTtSizeY), зависящего от MaxMttDepth 103, в битовый поток 101.In the first implementation of the apparatus according to the fourth embodiment, MaxBtSizeY 102 (or MaxTtSizeY) is transmitted or indicated in bitstream 101 based on the value of MaxMttDepth 103. In particular, the traditional segment header syntax shown in FIG. 9 is changed to syntax 5000 shown in FIG. .5 (new elements in bold). That is, the device is configured to add a MaxBtSizeY 102 (or MaxTtSizeY) syntax element 5001 dependent on MaxMttDepth 103 to the bitstream 101.

В частности, когда MaxMttDepth 103 равно 0, MaxBtSizeY 102 (или MaxTtSizeY) может не передаваться в битовом потоке 101, но может быть выведено (например, в декодере) как равное MinCbSizeY 104. В качестве альтернативы MaxBtSizeY 102 (или MaxTtSizeY) выводится (например, в декодере) как равное предварительно определенному значению по умолчанию, например, 4 или 8, если MaxMttDepth 103 равно 0.In particular, when MaxMttDepth 103 is 0, MaxBtSizeY 102 (or MaxTtSizeY) may not be transmitted in bitstream 101, but may be output (e.g., in a decoder) to be equal to MinCbSizeY 104. Alternatively, MaxBtSizeY 102 (or MaxTtSizeY) is output (e.g., , in the decoder) as equal to a predefined default value, such as 4 or 8 if MaxMttDepth 103 is 0.

«Log2_diff_ctu_max_bt_size» снова определяет разницу между размером CTB яркости и максимальным размером яркости (шириной или высотой) блока кодирования, который может быть разделен с использованием двоичного разделения. Значение log2_diff_ctu_max_bt_size должно быть в диапазоне от 0 до CtbLog2SizeY - MinCbLog2SizeY включительно."Log2_diff_ctu_max_bt_size" defines again the difference between the luminance CTB size and the maximum luminance size (width or height) of a coding block that can be divided using binary division. The log2_diff_ctu_max_bt_size value must be between 0 and CtbLog2SizeY - MinCbLog2SizeY inclusive.

Когда log2_diff_ctu_max_bt_size отсутствует, может применяться следующее: если slice_type равно 2 (I) и max_mtt_hierarchy_depth_intra_slices равно 1, значение log2_diff_ctu_max_bt_size может быть выведено равным_f_b_diff_size, равным 2. В противном случае может быть выведено значение log2_diff_diff, равное 2. В противном случае, log2_diff_ctu_max_bt_size может быть получено равное CtbLog2SizeY - MinCbLog2SizeY.When log2_diff_ctu_max_bt_size is absent, the following may apply: if slice_type is equal to 2 (I) and max_mtt_hierarchy_depth_intra_slices is equal to 1, log2_diff_ctu_max_bt_size may be output as _f_b_diff_size equal to 2. Otherwise, log2_diff_diff value equal to 2 may be output. equal to CtbLog2SizeY - MinCbLog2SizeY.

Во второй реализации устройства согласно четвертому конкретному варианту осуществления MaxMttDepth 103 сигнализируется или указывается в битовом потоке 101 на основании значения MaxBtSizeY 102 (или MaxTtSizeY). В частности, традиционный синтаксис заголовка сегмента, показанный на фиг.9, изменен на синтаксис 600, показанный на фиг. 6 (новые элементы выделены жирным шрифтом). То есть устройство выполнено с возможностью добавления в битовый поток 101 элемента 601 синтаксиса MaxMttDepth 103, зависящего от MaxBtSizeY 102 или MaxTtSizeY.In the second implementation of the apparatus according to the fourth embodiment, MaxMttDepth 103 is signaled or indicated in bitstream 101 based on the value of MaxBtSizeY 102 (or MaxTtSizeY). In particular, the traditional segment header syntax shown in FIG. 9 has been changed to the syntax 600 shown in FIG. 6 (new elements in bold). That is, the device is configured to add to the bitstream 101 element 601 of the syntax MaxMttDepth 103 depending on MaxBtSizeY 102 or MaxTtSizeY.

В частности, когда MaxBtSizeY 102 (или MaxTtSizeY) равно 0, MaxMttDepth 103 может не передаваться, но может быть выведено, например, в декодере должно быть равно 0. Если значение MaxMttDepth 103 равно 0, это означает, что двоичное разделение не допускается. В этом решении элемент MaxBtSizeY 102 синтаксиса и MaxTtSizeY должен сигнализироваться перед MaxMttDepth 103, но не ограничен каким-либо заголовком набора параметров.In particular, when MaxBtSizeY 102 (or MaxTtSizeY) is 0, MaxMttDepth 103 may not be transmitted, but may be output, for example, it should be 0 in the decoder. If the value of MaxMttDepth 103 is 0, this means that binary separation is not allowed. In this solution, the syntax element MaxBtSizeY 102 and MaxTtSizeY must be signaled before MaxMttDepth 103 but is not constrained by any parameter set header.

«MaxTtSizeY» определяется как максимальный размер яркости (ширина или высота) с точки зрения количества выборок блока кодирования, который может быть разделен с использованием троичного разделения. «MinTtSizeY» определяется как минимальный размер яркости (ширина или высота) с точки зрения количества выборок блока кодирования, который может быть разделен с использованием троичного разделения."MaxTtSizeY" is defined as the maximum luminance size (width or height) in terms of the number of coding block samples that can be divided using ternary division. "MinTtSizeY" is defined as the minimum luminance size (width or height) in terms of the number of coding block samples that can be divided using ternary division.

На фиг.6 «max_mtt_hierarchy_depth» определяет максимальную глубину иерархии для блоков кодирования, полученные в результате разделения многотипного дерева листового дерева квадрантов в сегменте. Значение max_mtt_hierarchy_depth_inter_slices должно быть в диапазоне от 0 до CtbLog2SizeY - MinTbLog2SizeY включительно. Когда max_mtt_hierarchy_depth отсутствует, значение max_mtt_hierachiy_depth устанавливается равным 0.In FIG. 6, "max_mtt_hierarchy_depth" defines the maximum hierarchy depth for coding blocks resulting from splitting a multi-type leaf tree tree of quads in a segment. The value of max_mtt_hierarchy_depth_inter_slices must be between 0 and CtbLog2SizeY - MinTbLog2SizeY inclusive. When max_mtt_hierarchy_depth is absent, the value of max_mtt_hierachiy_depth is set to 0.

Фиг.7 показывает способ 7000 согласно варианту осуществления изобретения. Способ 7000 предназначен специально для управления битовым потоком 101 и может выполняться устройством 100, показанным на фиг.1. Способ 7000 также может выполняться кодером, кодирующим изображения битового потока 101 в битовый поток 101, т.е. генерирующим битовый поток 101.7 shows a method 7000 according to an embodiment of the invention. Method 7000 is specifically for managing bit stream 101 and may be performed by device 100 shown in FIG. Method 7000 may also be performed by an encoder encoding images of bitstream 101 into bitstream 101, i. e. generating bitstream 101.

Способ 7000 содержит этап 7001 определения MaxBtSizeY 102 и/или определения MaxMttDepth 103 и MinCbSizeY 104. Кроме того, способ 7000 содержит этап 7002 определения MinQtSizeY 105 на основании MaxBtSizeY 102 и/или на основании MaxMttDepth 103 и MinCbSizeY 104. Наконец, способ 7000 содержит этап 7003, включение в битовый поток 101 определенное значение MinQtSizeY 105.Method 7000 includes step 7001 of determining MaxBtSizeY 102 and/or determining MaxMttDepth 103 and MinCbSizeY 104. In addition, method 7000 includes step 7002 of determining MinQtSizeY 105 based on MaxBtSizeY 102 and/or based on MaxMttDepth 103 and MinCbSizeY 104. Finally, method 7000 includes step 7003, inclusion in bitstream 101 of a certain value MinQtSizeY 105.

Фиг.10 показывает устройство 1000 согласно общему варианту осуществления изобретения. Устройство 1000 выполнено с возможностью генерировать или обрабатывать, то есть манипулировать битовым потоком 101, включающий в себя закодированные изображения, например, битовый поток видео. Устройство 1000 может быть включено в или может содержать кодер, выполненный с возможностью кодировать изображения и генерировать битовый поток 101. Устройство 1000 может определять отношения между элементами ограничения разделения и может включать в битовый поток 101 эти элементы ограничения разделения и/или их отношения. Таким образом, устройство 1000 может добавлять элементы ограничения разделения и/или отношения к синтаксису SPS и/или синтаксису заголовка сегмента в битовый поток 101. Устройство 1000 является альтернативой устройству 100, показанному на фиг. 1. Однако признаки устройства 1000, поясняемые ниже со ссылкой на фиг.10 могут быть объединены с описанными выше признаками устройств согласно первому, второму, третьему или четвертому конкретным вариантам осуществления (если они не основаны на устройстве 100 на фиг. 1).10 shows a device 1000 according to a general embodiment of the invention. The device 1000 is configured to generate or process, ie manipulate, a bitstream 101 including encoded images, such as a video bitstream. Apparatus 1000 may be included in or may include an encoder configured to encode pictures and generate bitstream 101. Apparatus 1000 may determine relationships between split constraint elements and may include those split constraint elements and/or their relationships in bitstream 101. Thus, device 1000 may add SPS syntax and/or SPS syntax and/or segment header syntax constraint elements to bitstream 101. Device 1000 is an alternative to device 100 shown in FIG. 1. However, the features of the device 1000 explained below with reference to FIG. 10 may be combined with the features of the devices according to the first, second, third, or fourth specific embodiments described above (if they are not based on the device 100 of FIG. 1).

В частности, устройство 1000 выполнено с возможностью определять MinQtSizeY (105). Кроме того, выполнено с возможностью определять MaxBtSizeY 102 и/или определять MaxMttDepth 103 на основании MinQtSizeY 105. Наконец, выполнено с возможностью включать в битовый поток (101) определенный MaxBtSizeY 102 и/или определенный MaxMttDepth 103 либо косвенно (т.е. путем включения информации, из которой могут быть получены значения MaxBtSizeY 102 и/или MaxMttDepth 103) или напрямую.In particular, device 1000 is configured to determine MinQtSizeY (105). In addition, configured to determine MaxBtSizeY 102 and/or determine MaxMttDepth 103 based on MinQtSizeY 105. information from which the MaxBtSizeY 102 and/or MaxMttDepth 103 values can be derived) or directly.

Например, устройство 1000 может определять MaxBtSizeY 102 с учетом того, что его нижний предел является MinQtSizeY 105. То есть диапазон значений MaxBtSizeY 102 может быть ограничен значением MinQtSizeY 105. Например, нижняя граница MaxBtSizeY 102 может быть ограничивается MinQtSizeY 105. Другими словами, в устройстве 1000 минимальное значение MaxBtSizeY 102 не может быть меньше MinQtSizeY 105.For example, device 1000 may determine MaxBtSizeY 102 given that its lower limit is MinQtSizeY 105. That is, the range of MaxBtSizeY 102 may be limited to MinQtSizeY 105. For example, the lower bound of MaxBtSizeY 102 may be limited to MinQtSizeY 105. In other words, in the device 1000 the minimum value of MaxBtSizeY 102 cannot be less than MinQtSizeY 105.

В качестве альтернативы или в дополнение к вышесказанному, в устройстве 1000 MaxMttDepth 103 может быть определен с учетом того, что его верхний предел представляет собой разницу значения log2 MinQtSizeY 105 и значения log2 MinCbSizeY 104. То есть максимальное значение MaxMttDepth 103 не может быть больше, чем разница между значением log2 MinQtSizeY 105 и значением log2 MinCbSizeY 104.Alternatively, or in addition to the above, in the device 1000 MaxMttDepth 103 may be determined assuming that its upper limit is the difference between the value of log2 MinQtSizeY 105 and the value of log2 MinCbSizeY 104. That is, the maximum value of MaxMttDepth 103 cannot be greater than the difference between the log2 MinQtSizeY value of 105 and the log2 MinCbSizeY value of 104.

Таким образом, первый аспект изобретения предоставляет устройство для генерирования или обработки битового потока, включающий в себя закодированные изображения, причем устройство выполнено с возможностью определять MaxBtSizeY и/или определять MaxMttDepth и MinCbSizeY, определять MinQtSizeY на основании MaxBtSizeY и/или на основании MaxMttDepth и MinCbSizeY и включать в битовый поток определенный MinQtSizeY.Thus, the first aspect of the invention provides an apparatus for generating or processing a bitstream including encoded pictures, the apparatus being configured to determine MaxBtSizeY and/or determine MaxMttDepth and MinCbSizeY, determine MinQtSizeY based on MaxBtSizeY and/or based on MaxMttDepth and MinCbSizeY, and include the specified MinQtSizeY in the bitstream.

Путем определения MinQtSizeY на основании MaxBtSizeY и/или на основании MaxMttDepth и MinCbSizeY, то есть путем определения новых правил разделения посредством установки отношений между этими элементами ограничения разделения, устройство первого аспекта достигает увеличения доступности и гибкости различных способов разделения изображения, в частности разделение дерева квадрантов и двоичного дерева.By determining MinQtSizeY based on MaxBtSizeY and/or based on MaxMttDepth and MinCbSizeY, that is, by defining new splitting rules by establishing relationships between these split constraint elements, the device of the first aspect achieves an increase in the availability and flexibility of various image splitting methods, in particular quadtree splitting and binary tree.

В форме реализации первого аспекта устройство выполнено с возможностью определять MinQtSizeY с учетом того, что его верхним пределом является MaxBtSizeY, и/или определять MinQtSizeY с учетом того, что его верхним пределом является MinCbSizeY в зависимости от MaxMttDepth.In an implementation form of the first aspect, the device is configured to determine MinQtSizeY given that its upper limit is MaxBtSizeY and/or determine MinQtSizeY given that its upper limit is MinCbSizeY depending on MaxMttDepth.

Устанавливая такие связи между элементами MinQtSizeY, MinCbSizeY, MaxBtSizeY и MaxMttDepth ограничения разделения, соответственно, гарантируется, что может быть получен наименьший блок разделения путем рекурсивного разделения родительского блока с использованием комбинации способов разделения дерева квадрантов или двоичного разделения. Поскольку наименьший блок (размер которого указывается MinCbSizeY) может быть сгенерирован с помощью доступных способов разделения, можно полностью разделить изображение, размер которого кратен MinCbSizeY.By establishing such links between the MinQtSizeY, MinCbSizeY, MaxBtSizeY, and MaxMttDepth elements of the split constraint, respectively, it is guaranteed that the smallest split box can be obtained by recursively splitting the parent box using a combination of quadtree splitting methods or binary splitting. Since the smallest block (whose size is specified by MinCbSizeY) can be generated using the available partitioning methods, it is possible to fully partition an image that is a multiple of MinCbSizeY.

В дополнительной форме реализации первого аспекта устройство выполнено с возможностью определять MinQtSizeY как MinCbSizeY, если MaxMttDepth равно нулю, и определять MinQtSizeY как MinCbSizeY в зависимости от MaxMttDepth, если MaxMttDepth больше нуля.In a further implementation form of the first aspect, the device is configured to determine MinQtSizeY as MinCbSizeY if MaxMttDepth is zero, and determine MinQtSizeY as MinCbSizeY depending on MaxMttDepth if MaxMttDepth is greater than zero.

Это обеспечивает эффективную форму реализации предшествующей формы реализации для обеспечения полного разделения изображения с использованием дерева квадрантов и разделения двоичного дерева, соответственно.This provides an efficient form of implementation of the prior form of implementation for providing full image partitioning using quadtree and binary tree partitioning, respectively.

Второй аспект изобретения предоставляет устройство для генерирования или обработки битового потока, включающий в себя закодированные изображения, в котором устройство выполнено с возможностью: определять MinQtSizeY, определять MaxBtSizeY и/или определять MaxMttDepth на основании MinQtSizeY, иA second aspect of the invention provides a device for generating or processing a bitstream including encoded pictures, wherein the device is configured to: determine MinQtSizeY, determine MaxBtSizeY, and/or determine MaxMttDepth based on MinQtSizeY, and

включать в битовый поток определенное значение MaxBtSizeY и/или определенное значение MaxMttDepth.include in the bitstream a specific MaxBtSizeY value and/or a specific MaxMttDepth value.

В форме реализации второго аспекта устройство выполнено с возможностью определять MaxBtSizeY с учетом того, что его нижний предел равен MinQtSizeY, и/или определять MaxMttDepth с учетом того, что его верхний предел является разницую значения log2 MinQtSizeY и log2 значения MinCbSizeY.In an implementation form of the second aspect, the device is configured to determine MaxBtSizeY given that its lower limit is MinQtSizeY and/or determine MaxMttDepth given that its upper limit is the difference between log2 MinQtSizeY and log2 MinCbSizeY.

Как и в первом аспекте, второй аспект определяет новые правила разделения посредством установки отношений между элементами ограничения разделения. Таким образом, устройство второго аспекта обеспечивает повышение доступности и гибкости различных способов разделения изображения, в частности разделение дерева квадрантов и двоичного дерева.As in the first aspect, the second aspect defines new partitioning rules by establishing relationships between partition constraint elements. Thus, the device of the second aspect provides increased availability and flexibility of various image partitioning methods, in particular quadtree and binary tree partitioning.

В дополнительной форме реализации первого или второго аспекта устройство выполнено с возможностью включать в битовый поток указание отношения, в частности разницы между MinQtSizeY и MaxBtSizeY.In a further form of implementation of the first or second aspect, the device is configured to include in the bitstream an indication of the relationship, in particular the difference between MinQtSizeY and MaxBtSizeY.

Таким образом, можно легко получить соответствующие элементы ограничения разделения, например, на стороне декодера, с одновременным сокращением информационных накладных расходов в битовом потоке. Разница является примером отношения. Однако отношение также может быть коэффициентом пропорциональности, схемой вычисления и т.п., что позволяет получить MaxBtSizeY из MinQtSizeY.Thus, corresponding split constraint elements can be easily obtained, for example, at the decoder side, while reducing the information overhead in the bitstream. Difference is an example of a relationship. However, the ratio can also be a proportionality factor, calculation scheme, etc., which makes it possible to obtain MaxBtSizeY from MinQtSizeY.

В дополнительной форме реализации первого или второго аспекта устройство выполнено с возможностью включения в битовый поток указание отношения, в частности разницы, между значением log 2 MinQtSizeY и MaxMttDepth.In a further form of implementation of the first or second aspect, the device is configured to include in the bitstream an indication of the relationship, in particular the difference, between the value of log 2 MinQtSizeY and MaxMttDepth.

Таким образом, можно получить соответствующие элементы ограничения разделения, например, на стороне декодера, с одновременным уменьшением информационных накладных расходов в битовом потоке.Thus, it is possible to obtain corresponding split constraint elements, for example, on the decoder side, while reducing the information overhead in the bitstream.

В дополнительной форме реализации первого или второго аспекта устройство выполнено с возможностью определять один или более элементов размера изображения, которые указывают размер, в частности высоту и ширину, изображений битового потока, как целое кратное MinQtSizeY, и включить в битовый поток один или более элементов размера изображения.In a further form of implementation of the first or second aspect, the device is configured to determine one or more image size elements that indicate the size, in particular height and width, of bitstream images as an integer multiple of MinQtSizeY, and include one or more image size elements in the bitstream .

Как следствие, граничный блок всегда может иметь разделение дерева квадрантов в качестве доступного способа разделения.As a consequence, a boundary block can always have a quadtree split as an available splitting method.

В дополнительной форме реализации первого или второго аспекта устройство выполнено с возможностью определять один или более элементов размера изображения, которые указывают размер, в частности высоту и ширину, изображений битового потока, и включать в битовый поток указание отношение между элементами размера изображения и MinQtSizeY.In a further form of implementation of the first or second aspect, the device is configured to determine one or more image size elements that indicate the size, in particular height and width, of the bitstream images, and include in the bitstream an indication of the relationship between the image size elements and MinQtSizeY.

Таким образом, можно получить соответствующие элементы ограничения разделения, например, на стороне декодера, с одновременным уменьшением информационных накладных расходов в битовом потоке.Thus, it is possible to obtain corresponding split constraint elements, for example, on the decoder side, while reducing the information overhead in the bitstream.

В дополнительной форме реализации первого или второго аспекта указание соотношения между элементами размера изображения и MinQtSizeY основано на логарифмической форме.In an additional form of implementation of the first or second aspect, the indication of the relationship between the elements of the image size and MinQtSizeY is based on a logarithmic form.

В дополнительной форме реализации первого или второго аспекта устройство выполнено с возможностью включения в битовый поток указания MaxBtSizeY или MaxTtSizeY в зависимости от MaxMttDepth.In a further form of implementation of the first or second aspect, the device is configured to include in the bitstream an indication of MaxBtSizeY or MaxTtSizeY depending on MaxMttDepth.

Таким образом устраняется неоднозначность, обычно возникающая в работе кодера и/или декодера, и становится возможным полное разделение кадра изображения.In this way, the ambiguity normally associated with the operation of an encoder and/or decoder is eliminated, and complete division of an image frame becomes possible.

В дополнительной форме реализации первого или второго аспекта устройство выполнено с возможностью не включать в битовый поток какое-либо указание MaxBtSizeY или MaxTtSizeY, если MaxMttDepth равно нулю.In a further form of implementation of the first or second aspect, the device is configured to not include any indication of MaxBtSizeY or MaxTtSizeY in the bitstream if MaxMttDepth is zero.

Это позволяет уменьшить информационные издержки в битовом потоке.This makes it possible to reduce the information overhead in the bit stream.

В дополнительной форме реализации первого или второго аспекта устройство выполнено с возможностью включать в битовый поток указание MaxMttDepth, зависящий от MaxBtSizeY или MaxTtSizeY.In a further form of implementation of the first or second aspect, the device is configured to include in the bitstream a MaxMttDepth indication depending on MaxBtSizeY or MaxTtSizeY.

Таким образом устраняется неоднозначность, обычно возникающая в работе кодера и/или декодера, и становится возможным полное разделение кадра изображения.In this way, the ambiguity normally associated with the operation of an encoder and/or decoder is eliminated, and complete division of an image frame becomes possible.

В дополнительной форме реализации первого или второго аспекта устройство выполнено с возможностью не включать в битовый поток какое-либо указание MaxMttDepth, если MaxBtSizeY или MaxTtSizeY равно нулю.In a further embodiment of the first or second aspect, the device is configured to not include any indication of MaxMttDepth in the bitstream if MaxBtSizeY or MaxTtSizeY is zero.

Это позволяет уменьшить информационные издержки в битовом потоке.This makes it possible to reduce the information overhead in the bit stream.

В дополнительной форме реализации первого или второго аспекта устройство содержит или включено в кодер, выполненный с возможностью кодировать изображения битового потока.In a further form of implementation of the first or second aspect, the device comprises or is included in an encoder configured to encode images of the bitstream.

Третий аспект изобретения предоставляет способ для генерирования или обработки битового потока, включающего в себя закодированные изображения, в котором способ содержит: определение MaxBtSizeY и/или определение MaxMttDepth и MinCbSizeY, определение MinQtSizeY на основании MaxBtSizeY и/или на основании MaxMttDepth и MinCbSizeY, и включение в битовый поток определенного MinQtSizeY.A third aspect of the invention provides a method for generating or processing a bitstream including encoded pictures, wherein the method comprises: determining MaxBtSizeY and/or determining MaxMttDepth and MinCbSizeY, determining MinQtSizeY based on MaxBtSizeY and/or based on MaxMttDepth and MinCbSizeY, and including in bitstream of the specified MinQtSizeY.

В форме реализации третьего аспекта способ содержит определение MinQtSizeY с учетом того, что его верхним пределом является MaxBtSizeY, и/или определение MinQtSizeY с учетом того, что его верхним пределом является MinCbSizeY в зависимости от MaxMttDepth.In an implementation form of the third aspect, the method comprises determining MinQtSizeY given that its upper limit is MaxBtSizeY and/or determining MinQtSizeY given that its upper limit is MinCbSizeY depending on MaxMttDepth.

В дополнительной форме реализации третьего аспекта способ содержит определение MinQtSizeY как MinCbSizeY, если MaxMttDepth равно нулю, и определение MinQtSizeY как MinCbSizeY в зависимости MaxMttDepth, если MaxMttDepth больше нуля.In a further implementation form of the third aspect, the method comprises determining MinQtSizeY as MinCbSizeY if MaxMttDepth is zero, and determining MinQtSizeY as MinCbSizeY depending on MaxMttDepth if MaxMttDepth is greater than zero.

В дополнительной форме реализации третьего аспекта способ содержит включение в битовый поток указания отношения, в частности разницы, между MinQtSizeY и MaxBtSizeY.In a further implementation form of the third aspect, the method comprises including in the bitstream an indication of a relationship, in particular a difference, between MinQtSizeY and MaxBtSizeY.

В дополнительной форме реализации третьего аспекта способ содержит включение в битовый поток указания отношения, в частности разницы между MinQtSizeY и MaxMttDepth.In a further form of implementation of the third aspect, the method comprises including in the bitstream an indication of the relationship, in particular the difference between MinQtSizeY and MaxMttDepth.

В дополнительной форме реализации третьего аспекта способ содержит определение одного или более элементов размера изображения, которые указывают размер, в частности высоту и ширину, изображений битового потока, как целое кратное MinQtSizeY, и включение в битовый поток одного или более элементов размера изображения.In a further implementation form of the third aspect, the method comprises determining one or more image size elements that indicate the size, in particular height and width, of bitstream images as an integer multiple of MinQtSizeY, and including one or more image size elements in the bitstream.

В дополнительной форме реализации третьего аспекта способ содержит определение одного или более элементов размера изображения, которые указывают размер, в частности высоту и ширину, изображений битового потока, и включение в битовый поток указания отношения между элементами размера изображения и MinQtSizeY.In a further implementation form of the third aspect, the method comprises defining one or more image size elements that indicate the size, in particular height and width, of the bitstream images, and including in the bitstream indicating the relationship between the image size elements and MinQtSizeY.

В дополнительной форме реализации третьего аспекта указание соотношения между элементами размера изображения и MinQtSizeY основано на логарифмической шкале.In a further implementation form of the third aspect, the indication of the relationship between image size elements and MinQtSizeY is based on a logarithmic scale.

В дополнительной форме реализации третьего аспекта способ содержит включение в битовый поток указания MaxBtSizeY или MaxTtSizeY в зависимости от MaxMttDepth.In a further implementation form of the third aspect, the method comprises including in the bitstream an indication of MaxBtSizeY or MaxTtSizeY depending on MaxMttDepth.

В дополнительной форме реализации третьего аспекта способ содержит не включение в битовый поток какого-либо указания MaxBtSizeY или MaxTtSizeY, если MaxMttDepth равно нулю.In a further implementation form of the third aspect, the method comprises not including any indication of MaxBtSizeY or MaxTtSizeY in the bitstream if MaxMttDepth is zero.

В дополнительной форме реализации третьего аспекта способ содержит включение в битовый поток указания MaxMttDepth, зависящий от MaxBtSizeY или MaxTtSizeY.In a further implementation form of the third aspect, the method comprises including in the bitstream an indication of MaxMttDepth depending on MaxBtSizeY or MaxTtSizeY.

В дополнительной форме реализации третьего аспекта способ содержит не включение в битовый поток какого-либо указания MaxMttDepth, если MaxBtSizeY или MaxTtSizeY равно нулю.In a further implementation of the third aspect, the method comprises not including any indication of MaxMttDepth in the bitstream if MaxBtSizeY or MaxTtSizeY is zero.

В дополнительной форме реализации третьего аспекта способ выполняется в кодере, кодирующем изображения битового потока.In a further implementation form of the third aspect, the method is performed in an encoder encoding bitstream images.

С помощью способа третьего аспекта и форм его реализации могут быть достигнуты все преимущества и эффекты, описанные выше для соответствующего устройства первого аспекта и его соответствующих форм реализации. Дополнительным аспектом изобретения является способ генерирования или обработки битового потока, соответствующего устройству второго аспекта.With the method of the third aspect and its implementation forms, all the advantages and effects described above for the corresponding device of the first aspect and its respective implementation forms can be achieved. A further aspect of the invention is a method for generating or processing a bit stream corresponding to the apparatus of the second aspect.

Четвертый аспект изобретения предоставляет устройство для генерирования или обработки битового потока, включающего в себя закодированные изображения, в котором устройство выполнено с возможностью включать в битовый поток указание отношения, в частности разницы, между MinQtSizeY и MaxBtSizeY и/или включать в битовый поток указание отношения, в частности разницы, между MinQtSizeY и MaxMttDepth.A fourth aspect of the invention provides a device for generating or processing a bitstream including encoded pictures, in which the device is configured to include in the bitstream an indication of a relationship, in particular a difference, between MinQtSizeY and MaxBtSizeY and/or to include in the bitstream an indication of a relationship, in particular difference between MinQtSizeY and MaxMttDepth.

Со ссылкой на устройство четвертого аспекта соответствующие элементы ограничения разделения могут сигнализироваться с одновременным уменьшением служебной информации в битовом потоке. Элементы ограничения разделения могут быть получены, например, на стороне декодера. Устройство четвертого аспекта обеспечивает повышение доступности и гибкости различных способов разделения изображения, в частности разделения дерева квадрантов и двоичного дерева.With reference to the device of the fourth aspect, the respective split constraint elements can be signaled while reducing the overhead in the bitstream. The split constraint elements can be obtained, for example, at the decoder side. The device of the fourth aspect provides an increase in the availability and flexibility of various image partitioning methods, in particular quadtree and binary tree partitioning.

Пятый аспект изобретения предоставляет устройство для генерирования или обработки битового потока, включающий в себя закодированные изображения, в котором устройство выполнено с возможностью: определять один или более элементов размера изображения, которые указывают размер, в частности высоту и ширину, изображений битового потока, который должен быть целым числом, кратным MinQtSizeY, и включать в битовый поток один или более элементов размера изображения; или определять один или более элементов размера изображения, которые указывают размер, в частности высоту и ширину, изображений битового потока, и включать в битовый поток указание отношения между элементами размера изображения и MinQtSizeY.A fifth aspect of the invention provides a device for generating or processing a bitstream including encoded pictures, wherein the device is configured to: determine one or more picture size elements that indicate the size, in particular the height and width, of the bitstream pictures to be an integer multiple of MinQtSizeY and include one or more image size elements in the bitstream; or define one or more image size elements that indicate the size, in particular height and width, of the bitstream images, and include in the bitstream an indication of the relationship between the image size elements and MinQtSizeY.

Согласно пятому аспекту, в качестве доступного способа разделения граничный блок всегда может иметь разделение дерева квадрантов. Кроме того, могут быть получены соответствующие элементы ограничения разделения, например, на стороне декодера, с одновременным уменьшением информационных накладных расходов в битовом потоке. Устройство по пятому аспекту обеспечивает повышение доступности и гибкости различных способов разделения изображения, в частности разделения дерева квадрантов и двоичного дерева.According to a fifth aspect, as an available partitioning method, a boundary block may always have a quadtree partitioning. In addition, appropriate split constraint elements can be obtained, for example, on the decoder side, while reducing the information overhead in the bitstream. The device according to the fifth aspect provides an increase in the availability and flexibility of various ways of dividing an image, in particular, dividing a quadtree and a binary tree.

Шестой аспект изобретения предоставляет устройство для генерирования или обработки битового потока, включающего в себя закодированные изображения, устройство выполнено с возможностью: включать в битовый поток указание MaxBtSizeY или MaxTtSizeY в зависимости от MaxMttDepth; или включать в битовый поток указание MaxMttDepth, зависящего от MaxBtSizeY или MaxTtSizeY.The sixth aspect of the invention provides an apparatus for generating or processing a bitstream including encoded images, the apparatus is configured to: include in the bitstream an indication of MaxBtSizeY or MaxTtSizeY depending on MaxMttDepth; or include in the bitstream a MaxMttDepth indication depending on MaxBtSizeY or MaxTtSizeY.

Устройство по шестому аспекту уменьшает или устраняет неоднозначность, обычно возникающую при работе кодера и/или декодера и, таким образом, поддерживает полное разделение кадра изображения. Устройство по шестому аспекту обеспечивает повышение доступности и гибкости различных способов разделения изображения, в частности разделение дерева квадрантов и двоичного дерева.The apparatus of the sixth aspect reduces or eliminates the ambiguity normally associated with the operation of an encoder and/or decoder, and thus maintains complete separation of an image frame. The device according to the sixth aspect provides an increase in the availability and flexibility of various image partitioning methods, in particular quadtree and binary tree partitioning.

Седьмой аспект изобретения обеспечивает компьютерный программный продукт, содержащий программный код для управления устройством для выполнения способа третьего аспекта и его соответствующие формы реализации, когда программный код выполняется одним или более процессорами устройства. Устройство может быть устройством первого, второго, четвертого, пятого или шестого аспекта или любой его формы реализации.A seventh aspect of the invention provides a computer program product containing program code for controlling a device for executing the method of the third aspect, and corresponding implementation forms thereof, when the program code is executed by one or more processors of the device. The device may be a device of the first, second, fourth, fifth or sixth aspect, or any form of implementation thereof.

Восьмой аспект изобретения предоставляет устройство для декодирования битового потока, генерируемого или обрабатываемого устройством, в соответствии с первым, вторым, четвертым, пятым или шестым аспектом или любой его формой реализации.An eighth aspect of the invention provides an apparatus for decoding a bitstream generated or processed by a device according to the first, second, fourth, fifth, or sixth aspect, or any implementation form thereof.

ВАРИАНТЫ ОСУЩЕСТВЛЕНИЯ, ОТНОСЯЩИЕСЯ К ГРАНИЧНОМУ РАЗДЕЛЕНИЮEMBODIMENTS RELATED TO BOUNDARY SEPARATION

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

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

В вариантах осуществления могут быть определены следующие параметры и указаны элементами синтаксиса набора параметров последовательности (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 quadtree.

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

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 allowed quadtree leaf node size parameter MinQTSize 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, a coding tree block (CTU) or a coding unit (CU) that is located on segment/picture boundaries will be forced to split using a quadtree (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 since both the encoder and decoder, eg video encoder 20 and video decoder 30, are aware of the forced QT being applied. The purpose of forced separation is to provide a CTU/CU boundary by video encoder 20/video decoder 30.

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

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

В SubCE2 (обработка границ изображения) CE1 (разделение) на совещании в Сан-Диего (04.2018) [JVET-J1021] было предложено 15 тестов относительно обработки границ изображения с использованием BT, TT или ABT (асимметричное BT). Например, в JVET-K0280 и JVET-K0376 граница определяется, как показано на фиг.18. Фиг.18 показаны границы изображения пунктирными линиями, и области граничных случаев показаны прямыми линиями, а именно, нижний граничный случай, угловой граничный случай и правый граничный случай. Нижняя граница может быть разделена горизонтальным принудительным BT или принудительным QT, правая граница может быть разделена вертикальным принудительным BT или принудительным QT и угловой случай может быть разделен только принудительным QT, в котором решение об использовании любого из принудительных BT или принудительное разделение QT основано на критерии оптимизации искажения скорости и сигнализируется в битовом потоке. Принудительное разделение означает, что блок должен быть разделен, например, принудительное разделение применяется к граничным блокам, которые нельзя кодировать с использованием «без разделения», как показано на фиг.16A.In SubCE2 (image edge processing) CE1 (separation) at the San Diego meeting (04.2018) [JVET-J1021], 15 tests were proposed regarding image edge processing using BT, TT or ABT (asymmetric BT). For example, in JVET-K0280 and JVET-K0376, the border is defined as shown in FIG. 18 shows the borders of the image in dashed lines, and the regions of the edge cases are shown in straight lines, namely, the bottom edge case, the corner edge case, and the right edge case. The lower bound can be split by horizontal forced BT or forced QT, the right bound can be split by vertical forced BT or forced QT, and the corner case can only be split by forced QT, in which the decision to use any of the forced BTs or forced QT split is based on an optimization criterion rate distortion and is signaled 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. 16A.

Если в принудительном граничном разделении используется принудительное разделение QT, то ограничение разделения MinQTSize игнорируется. Например, на фиг.13A, если MinQTSize сигнализируется в SPS как 32, чтобы соответствовать границе с принудительным способом QT, будет необходимо разделение QT до размера блока 8×8, что игнорирует ограничение MinQTSize, равное 32.If forced border splitting uses QT forced splitting, the MinQTSize split constraint is ignored. For example, in FIG. 13A, if MinQTSize is signaled in the SPS as 32 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. В вариантах осуществления изобретения, например, для принудительного разделения QT на границах изображения учитывается ограничение разделения MinQTSize, и никакой дополнительной сигнализации для принудительного разделения BT не требуется. Варианты осуществления также позволяют согласовывать разделение для нормальных (не граничных) блоков и граничных блоков. Например. в традиционных решениях требуются два параметра «MinQTSize»: один для разделения нормальных блоков, а другой для разделения граничных блоков. Варианты осуществления требуют только одного общего параметра «MinQTSize» для разделения как нормального блока, так и граничного блока, который может гибко устанавливаться между кодером и декодером, например, сигнализируя один параметр «MinQTSize». Кроме того, варианты осуществления требуют меньше разделов, чем, например, принудительное QT.According to embodiments of the invention, if forced QT is used to separate image boundaries, then forced QT separation is performed, eg, not ignoring 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, to force a QT split at image boundaries, the MinQTSize split constraint is respected, and no additional signaling is required to force a 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 to separate normal blocks and the other to separate boundary blocks. Embodiments require only one common parameter "MinQTSize" to separate both the normal block and the boundary block, which can be flexibly set between the encoder and decoder, for example, signaling one parameter "MinQTSize". In addition, embodiments require fewer partitions than, for example, forced QT.

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

В случае нижней и правой границы, если размер блока больше, чем MinQTSize, то режим разделения для разделения граничного изображения может быть выбран между принудительным разделением BT и принудительным разделением QT, например, на основании RDO (оптимизация скорости-искажения). В противном случае (т.е. если размер блока равен или меньше MinQTSize), для разделения границ изображения используется только принудительное разделение BT, более конкретно, принудительное горизонтальное разделение BT используется для нижней границы соответственно для граничного блока, расположенного на нижней границе изображения и вертикальное принудительное BT используется для правой границы, соответственно, для граничного блока, расположенного на правой границе изображения.In the case of the bottom and right border, if the block size is larger than MinQTSize, then the division mode for dividing the border image may be selected between forced BT division and forced QT division, for example, based on RDO (rate-distortion optimization). 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 at the bottom border of the image and the 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 может применяться также для управления разделением неграничного блока.BT forced splitting may comprise recursively splitting the current block with a horizontal forced border splitting until the current box's sub-partition is at the bottom border of the image, and recursively splitting the sub-partition with a vertically forced border splitting until the leaf the node will not be completely located on the right border of the image. Alternatively, forced partitioning of a BT may comprise recursively splitting the current block with a vertical forced boundary splitting until a sub-partition of the current block is at the bottom boundary, and recursively splitting the sub-partition with a horizontal forced boundary splitting until until the leaf node is completely located on the right border. MinQTSize can also be used to control the division of a non-boundary block.

Например, в случае, показанном на фиг.17A, если MinQTSize равен или ограничен 32, в то время как для соответствия границе изображения требуется размер прямоугольного (неквадратного) блока высотой или шириной 8 выборок, для разделения 32×32 граничного блока будет использоваться принудительное разделение BT. Разделы BT могут быть дополнительно разделены с помощью принудительного разделения BT того же типа, например, в случае применения принудительного вертикального разделения BT применяется только дополнительное принудительное вертикальное разделение BT, а в случае применения принудительного горизонтального разделения BT применяется только дополнительное принудительное горизонтальное разделение BT. Принудительное разделение BT продолжается до тех пор, пока листовой узел полностью не окажется в пределах изображения.For example, in the case shown in FIG. 17A, if MinQTSize is equal to or limited to 32, while a rectangular (non-square) block size of 8 samples high or wide is required to fit the image border, forced partitioning will be used to split the 32x32 border block. BT. 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.

Фиг.17B показывает примерное разделение CTU нижней границы с размером 128×128 выборок согласно варианту осуществления изобретения. Нижний граничный CTU, который образует корневой блок или корневой узел дерева разделения, разбит на более мелкие разделы, например, блоки меньшего размера квадратного или прямоугольного размера. Эти меньшие разделы или блоки могут быть дополнительно разделены на еще меньшие разделы или блоки. На фиг.17B, CTU представляет собой первое дерево квадратов, разделенное на четыре квадратных блока 710, 720, 730 и 740, каждый из которых имеет размер 64×64 выборок. Из этих блоков блоки 710 и 720 снова являются нижними граничными блоками, тогда как блоки 730 и 740 находятся вне изображения (соответственно, находятся вне изображения) и не обрабатываются.17B shows an exemplary 128×128 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. 17B, the CTU is a 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, каждый из которых имеет размер 32×32 выборки. Блоки 750 и 760 расположены в пределах изображения, тогда как блоки 770 и 780 снова образуют нижние граничные блоки. Поскольку размер блока 770 не превышает MinQTSize, который, например, равен 32, к блоку 770 применяется рекурсивное горизонтальное принудительное двоичное разделение до тех пор, пока листовой узел не окажется полностью в пределах или полностью внутри изображения, например, пока блок 772 листового узла, прямоугольный неквадратный блок, имеющий 32×16 выборок, находится в пределах изображения (после одного горизонтального двоичного разделения), или блок 774 листового узла, прямоугольный неквадратный блок, расположенный на нижней границе изображения и имеющий 32×8 выборок, находятся в пределах изображения (после двух горизонтальных двоичных разбиений). То же самое относится к блоку 780.Block 710 is further divided using a quadtree into four square blocks 750, 760, 770, and 780, each of which has a size of 32x32 samples. Blocks 750 and 760 are located within 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 the leaf node block 772 is rectangular a non-square block having 32×16 samples is within the image (after one horizontal binary split), or a leaf node block 774, a rectangular non-square block located at the lower edge of the image and having 32×8 samples, is within the image (after two horizontal binary partitions). The same applies to 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, boundary boxes are boxes that contain a part that is located within the image and a part that is located outside the image. In addition, embodiments of the present invention can reduce signaling since no signaling is required to force a BT split at or below the MinQTSize level.

Решения для углового случая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. A corner case occurs when the block currently being processed is in the corner of the image. This occurs if the current block intersects or is adjacent to two image boundaries (vertical and horizontal).

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

Угловой случай рассматривается как нижний граничный случай или как правый граничный случай. Фиг.20 показывает вариант определения границы. Фиг.20 показывает границы изображения пунктирными линиями и области граничных случаев показаны прямыми линиями. Как проиллюстрировано, угловой случай определяется как нижний граничный случай. Таким образом, решение такое же, как описано выше для случая нижней границы и случая правой границы. Другими словами, сначала применяется горизонтальное разделение (как описано для случая нижней границы) до тех пор, пока блоки или разделы не будут полностью в пределах изображения (в вертикальном направлении) и затем применяется вертикальное разделение (как описано для случая правой границы), пока листовые узлы не окажутся полностью в пределах изображения (в горизонтальном направлении).The corner case is treated as a lower boundary case or as a right boundary case. Fig.20 shows a variant of the definition of the border. 20 shows the borders of the image in dashed lines and the edge case regions are shown in straight lines. As illustrated, the corner case is defined as the lower boundary case. So the solution is the same as described above for the lower bound case and the right bound 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 the nodes will not be completely within 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.

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

Фиг.19B показывает дополнительные подробности примерного разделения граничного CTU в или в углу изображения согласно варианту осуществления изобретения, в котором CTU имеет размер 128×128 выборок. CTU является первым деревом квадрантов, разделенное на четыре квадратных блока, каждый размером 64×64 выборок. Из этих блоков только верхний левый блок 910 является граничным блоком, тогда как остальные три расположены вне (полностью вне) изображения и не обрабатываются дополнительно. Блок 910 дополнительно разделяется с использованием дерева квадрантов на четыре квадратных блока 920, 930, 940 и 950, каждый из которых имеет размер 32×32 выборок. Блок 920 расположен внутри изображения, тогда как блоки 930, 940 и 950 снова образуют граничные блоки. Поскольку размер этих блоков 930, 940 и 950 не превышает MinQTSize, который равен 32, принудительное двоичное разделение применяется к блокам 930, 940 и 950.19B shows additional 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 128×128 samples. The CTU is the first quadtree divided into four square blocks, each 64×64 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 divided using a quadtree into four square blocks 920, 930, 940, and 950, each of which has 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 does not exceed 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 within the image, eg block 932 located on the right border of the image (here after two vertical binary splits).

Блок 940 расположен на нижней границе и разделяется с использованием рекурсивного горизонтального принудительного двоичного разделения до тех пор, пока листовой узел не окажется в пределах изображения, например, блок 942, расположенный на правой границе изображения (здесь после двух горизонтальных двоичных разделений).Block 940 is located at the bottom border and is split using a recursive horizontal forced binary split until the leaf node is within the image, such as block 942 located on the right side 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 a sub-partition or block, here block 952, is at the bottom border of the image (here after two horizontal binary splits), and then a recursive splitting a sub-partition with a vertically 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. Варианты осуществления могут использовать определения границ, как показано на фиг.18 или фиг.20, или другие способы определения границ.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. 18 or FIG. 20, or other boundary definition methods.

Далее представлены дополнительные варианты осуществления настоящего изобретения. Следует отметить, что нумерация, используемая в следующем разделе, не обязательно должна соответствовать нумерации, используемой в предшествующих разделах.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 осуществления. Способ разделения, содержащий:Option 1 implementation. 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 size of the current block does not exceed the minimum allowable size of the leaf node of the quadtree, forced splitting of the binary tree is applied to the current block.

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

Вариант 3 осуществления. Способ разделения по варианту 1 или 2 осуществления, в котором принудительное двоичное разделение содержит рекурсивное разделение текущего блока посредством горизонтального принудительного граничного разделения до тех пор, пока суб-раздел текущего блока не будет расположен непосредственно на нижней границе изображения, и рекурсивное разделение суб-раздела с помощью вертикального принудительного граничного разделения до тех пор, пока листовой узел полностью не окажется непосредственно на правой границе изображения, или наоборот.Option 3 implementation. The splitting method of embodiment 1 or 2, wherein the forced binary splitting comprises recursively splitting the current block by horizontal forced boundary splitting until a sub-partition of the current block is located directly on the lower border of the image, and recursively splitting the sub-partition with using a vertical forced border split until the entire leaf node is directly on the right border of the image, or vice versa.

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

Вариант 5 осуществления. Способ декодирования для декодирования блока путем разделения блока согласно способу разделения любого из вариантов 1-4 осуществления.Option 5 implementation. 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.Option 6 implementation. The decoding method according to Embodiment 5, wherein the minimum allowable leaf node size of the quadtree is received via the SPS.

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

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

Вариант 9 осуществления. Устройство для декодирования, содержащее логическую схему, выполненную с возможностью выполнять любой из способов вариантов 5 или 6 осуществления.Option 9 implementation. A device for decoding, containing a logic circuit configured to perform any of the methods of options 5 or 6 implementation.

Вариант 10 осуществления. Устройство для кодирования, содержащее логическую схему, выполненную с возможностью выполнять любой из способов варианта 7 или 8 осуществления.Option 10 implementation. A device for encoding, containing a logic circuit configured to perform any of the methods of option 7 or 8 implementation.

Вариант 11 осуществления. Постоянный носитель данных для хранения инструкций, когда они выполняются процессором, побуждают процессор выполнять любой из способов согласно вариантам 1-8 осуществления.Option 11 implementation. A persistent storage medium for storing instructions as they are executed by the processor cause the processor to perform any of the methods according to 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 processor. 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, for example, in accordance with 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, and/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 or other magnetic storage devices, flash -memory or any other medium that can be used to store the required program code in the form of instructions or data structures and can be accessed by a computer. Additionally, any connection is properly referred to as 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 considered 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 instead refer to non-volatile, tangible storage media. A disc as used herein includes a compact disc (CD), a laser disc, an optical disc, a digital versatile disc (DVD), a floppy disk, and a Blu-ray disc, where the discs usually reproduce data magnetically and the discs reproduce data optically with lasers. Combinations of the above should also be included within the scope of computer readable media.

Инструкции могут выполняться одним или более процессорами, такими как один или более процессоров цифровых сигналов (DSPs), микропроцессоры общего назначения, специализированные интегральные схемы (ASICs), программируемые логические матрицы (FPGAs) или другие эквивалентные интегральные или дискретные логические схемы. Соответственно, термин «процессор», используемый в настоящем описании, может относиться к любой из вышеупомянутой структуре или любой другой структуре, подходящей для реализации описанных способов. Дополнительно, в некоторых аспектах, описанные в настоящем документе, функциональные возможности могут быть предоставлены в рамках выделенных аппаратных и/или программных модулей, выполненных с возможностью кодировать и декодировать или содержащиеся в комбинированном кодеке. Дополнительно, способы могут быть полностью реализованы в одной или более схемах или логических элементах.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 circuits. Accordingly, the term "processor" as used herein may refer to any of the aforementioned structure, or any other structure suitable for implementing the described methods. Additionally, in some aspects described herein, functionality may be provided within dedicated hardware and/or software modules capable of encoding and decoding or contained in a combined codec. Additionally, the methods may be fully implemented in one or more circuits or logic elements.

Способы настоящего изобретения могут быть реализованы в большом количестве устройств или приспособлений, включающие в себя беспроводной телефон, интегральную схему (IC) или набор ICs (например, набор микросхем). В настоящем изобретении описаны различные компоненты, модули или блоки для представления функциональных аспектов устройств, выполненных с возможностью выполнять раскрытые технологии, но не обязательно требующих реализации различными аппаратными блоками. Скорее, как описано выше, различные блоки могут быть объединены в аппаратный блок кодека или предоставлены набором взаимодействующих аппаратных блоков, включающий в себя один или более процессоров, как описано выше, в сочетании с подходящим программным обеспечением и/или встроенным программным обеспечением.The methods of the present invention may be implemented in a wide variety of devices or appliances, 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 represent the functional aspects of devices capable of performing the disclosed technologies, 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 by 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 coupled to the memory element and configured to determine whether the current image block is a boundary block, determine when the current block is a boundary block, determine whether the size of the current block exceeds a minimum allowable size (MinQTSize) of a quadtree (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 as illustrative and not restrictive, and the present invention is not limited to the details provided herein. 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 technologies described and illustrated in various embodiments as separate or discrete 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 modifications can be ascertained and performed by a person skilled in the art without deviating from the spirit and scope disclosed herein.

Варианты осуществления настоящего изобретения (или настоящего раскрытия) предоставляют устройства и способы для кодирования и декодирования.Embodiments of the present invention (or the present disclosure) 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 a sub-partition of the current block is at the bottom border of the image; and recursively splitting the sub-partition by vertically forced border splitting until the leaf node is completely on the right border of the image.

В четвертой форме реализации способа согласно первому аспекту как таковому или любой предшествующей форме реализации первого аспекта, принудительное разделение BT содержит рекурсивное разделение текущего блока с помощью вертикального принудительного граничного разделения до тех пор, пока суб-раздел текущего блока не будет находится на нижней границе; и рекурсивное разделение суб-раздела посредством горизонтального принудительного граничного разделения до тех пор, пока листовой узел полностью не окажется на правой границе.In a fourth form of implementation of the method according to the first aspect as such or any previous form of implementation of the first aspect, the forced partition BT comprises recursively partitioning the current block with a vertical forced boundary partition until a sub-partition of the current block is at the bottom boundary; and recursively splitting the sub-partition by means of 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 quadtree leaf node size 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 device for decoding, comprising logic circuits configured to decode the block by dividing the block according to the method of dividing 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 logic circuits configured to encode a block by dividing the block according to the method of dividing 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 circuitry is further configured to transmit the minimum allowable size of the leaf node of the quadtree via a sequence parameter set (SPS).

Шестой аспект относится к постоянному носителю данных для хранения инструкций, которые при выполнении процессором побуждают процессор выполнять любой из первого, второго или третьего аспекта как такового или любую предшествующую форму реализации первого, второго или третьего аспекта.A sixth aspect relates to a persistent 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 preceding 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 forced BT separation is a recursive horizontal forced BT 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, forced partitioning BT comprises recursively partitioning the current block with a horizontal forced boundary partitioning until a sub-partition of the current block is at a lower boundary; and recursively splitting the sub-partition 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, forced partitioning BT comprises recursively partitioning the current block with a vertical forced boundary partitioning until a sub-partition of the current block is at the bottom boundary; and recursively splitting the subdivision by means of a horizontal forced boundary split until the leaf node is completely on the right boundary.

В пятой форме реализации способа согласно седьмому аспекту как таковому или любой предшествующей форме реализации седьмого аспекта способ дополнительно содержит применение MinQTSize для управления разделением неграничного блока.In a fifth form of implementation of the method according to the seventh aspect as such or any previous form of implementation 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 box, determine when the current block is a boundary box, determine whether the size of the current block is greater than a minimum allowable size (MinQTSize) of a quadtree (QT) leaf node, and apply, when the size of the current block does not exceed MinQTSize, force binary tree splitting (BT) to the current block.

В первой форме реализации устройства согласно восьмому аспекту как таковому принудительное разделение BT является рекурсивным горизонтальным принудительным разделением BT, когда текущий блок расположен на нижней границе изображения, или рекурсивным вертикальным принудительным разделением BT, когда текущий блок расположен на правой границе изображения.In the first implementation form of the device 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 bottom border of the image, or a recursive vertical forced BT split when the current block is located at 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, forced partitioning BT comprises recursively partitioning the current block with a horizontal forced boundary partitioning until a sub-partition of the current block is at a lower boundary; and recursively splitting the sub-partition 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 partitioning BT comprises recursively partitioning the current block with a vertical forced boundary partitioning until a sub-partition of the current block is at a lower boundary; and recursively splitting the subdivision by means of a horizontal forced boundary split until the leaf node is completely on the right boundary.

В четвертой форме реализации устройства согласно восьмому аспекту как таковому или любой предшествующей форме реализации восьмого аспекта процессор дополнительно выполнен с возможностью применять MinQTSize для управления разделением неграничного блока.In the fourth embodiment of the device 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 persistent medium that, when executed by a processor, cause a device to determine whether the current image block is a boundary block; determine when the current box is a boundary box, determine whether the size of the current box exceeds the minimum allowable size (MinQTSize) leaf node of the quadtree (QT); and apply, when current block size 0 is not greater than MinQTSize, force binary tree splitting (BT) to the current block.

В первой форме реализации устройства согласно восьмому аспекту как таковому принудительное разделение BT является рекурсивным горизонтальным принудительным разделением BT, когда текущий блок расположен на нижней границе изображения, или рекурсивным вертикальным принудительным разделением BT, когда текущий блок расположен на правой границе изображения.In the first implementation form of the device 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 bottom border of the image, or a recursive vertical forced BT split when the current block is located at the right border of the image.

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

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

В четвертой форме реализации устройства согласно девятому аспекту как таковому или любой предшествующей форме реализации девятого аспекта инструкции дополнительно побуждают устройство применять MinQTSize для управления разделением неграничного блока.In the fourth form of implementation of the device according to the ninth aspect as such or 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 instructions further cause the device to receive MinQTSize via sequence parameter set (SPS).

В шестой форме реализации устройства согласно девятому аспекту как таковому или любой предшествующей форме реализации девятого аспекта инструкции дополнительно побуждают устройство передавать MinQTSize через набор параметров последовательности (SPS).In the 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 instructions further cause the device to transmit MinQTSize via sequence parameter set (SPS).

ВАРИАНТЫ ОСУЩЕСТВЛЕНИЯ, ОТНОСЯЩИЕСЯ К ОТНОШЕНИЮ МЕЖДУ ОГРАНИЧЕНИЯМИ РАЗДЕЛЕНИЯ ДЛЯ НЕГРАНИЧНЫХ И ГРАНИЧНЫХ БЛОКОВEMBODIMENTS RELATED TO THE RELATIONSHIP BETWEEN SEPARATION CONSTRAINTS FOR NON-BOUNDARY AND BOUNDARY BLOCKS

Кодирование видео следующего поколения (NGVC) не применяет концепцию разделения CU, PU и TU и поддерживает большую гибкость для форм раздела CU. Размер CU соответствует размеру узла кодирования и может иметь квадратную или неквадратную (например, прямоугольную) форму.Next Generation Video Coding (NGVC) does not apply the concept of CU, PU, and TU separation and maintains more flexibility for CU partition forms. The size of the CU corresponds to the size of the coding node and may be square or non-square (eg, rectangular) in shape.

В J. An et al., «Структура блочного разделения для кодирования видео следующего поколения», Международный союз электросвязи, COM16-C966, сентябрь 2015 г. (далее «Предложение VCEG COM16-C966») были предложены технологии разделения дерева квадрантов-двоичное дерево (QTBT) для будущего стандарта кодирования видео помимо HEVC. Моделирование показало, что предлагаемая структура QTBT более эффективна, чем структура дерева квадрантов в используемом HEVC. В HEVC внешнее предсказание для небольших блоков ограничено для уменьшения доступа к памяти для компенсации движения, и внешнее предсказание не поддерживается для блоков 4×4. В QTBT JEM эти ограничения сняты.In J. An et al., "Block Partitioning Framework for Next Generation Video Coding", International Telecommunication Union, COM16-C966, September 2015 (hereinafter "VCEG Proposal COM16-C966"), quadtree-binary tree partitioning techniques have been proposed (QTBT) for a future video coding standard beyond HEVC. Modeling has shown that the proposed QTBT structure is more efficient than the quadtree structure in the HEVC used. In HEVC, inter-prediction for small blocks is limited to reduce memory access for motion compensation, and inter-prediction is not supported for 4×4 blocks. In QTBT JEM, these restrictions are removed.

В QTBT CU может иметь квадратную или прямоугольную форму. Как показано на фиг.6, блок дерева кодирования (CTU) сначала разделяется структурой дерева квадрантов. Листовые узлы дерева квадрантов могут быть дополнительно разделены структурой двоичного дерева. В двоичном дереве используется два типа разделения: симметричное горизонтальное и симметричное вертикальное разделение. В каждом случае узел разделяется путем деления узла посередине по горизонтали или вертикали. Листовые узлы двоичного дерева называются блоками кодирования (CUs), и эта сегментация используется для предсказания и обработки преобразования без какого-либо дополнительного разделения. Это означает, что CU, PU и TU имеют одинаковый размер блока в структуре блока кодирования QTBT. CU иногда состоит из блоков кодирования (CBs) различных цветовых компонентов, например, один CU содержит один CB яркости и два CBs цветности в случае P и B сегментов формата цветности 4:2:0 и иногда состоит из CB одного компонента, например, один CU содержит только один CB яркости или только два CBs цветности в случае I-сегментов.In QTBT, the CU can be square or rectangular. As shown in FIG. 6, a coding tree unit (CTU) is first divided by a quadtree structure. The leaf nodes of the quadtree can be further separated by a binary tree structure. There are two types of partitioning used in a binary tree: symmetrical horizontal and symmetrical vertical partitioning. In each case, the knot is split by dividing the knot in the middle either horizontally or vertically. The leaf nodes of the binary tree are called coding units (CUs) and this segmentation is used to predict and process the transform without any additional partitioning. This means that CU, PU and TU have the same block size in the QTBT coding block structure. A CU sometimes consists of coding blocks (CBs) of different color components, e.g. one CU contains one luma CB and two chrominance CBs in case of P and B segments of 4:2:0 chroma format and sometimes consists of one component CBs, e.g. one CU contains only one luminance CB, or only two chrominance CBs in the case of I-segments.

Для схемы разделения QTBT определены следующие параметрыThe following parameters are defined for the QTBT partitioning scheme

- CTU размер: размер корневого узла дерева квадрантов, та же концепция, что и в HEVC.- CTU size: the size of the root node of the quadtree, the same concept as in HEVC.

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

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

- MaxBTDepth: максимально допустимая глубина двоичного дерева- MaxBTDepth: maximum allowed binary tree depth

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

В одном примере структуры разделения QTBT, когда узел дерева квадрантов имеет размер, равный или меньший, чем MinQTSize, дерево квадрантов дополнительно не рассматривается. Дополнительное разделение двоичным деревом не предусматривается, поскольку размер (MinQTSize) превышает MaxBTSize. В противном случае листовой узел дерева квадрантов может быть дополнительно разделен двоичным деревом. Следовательно, листовой узел дерева квадрантов также является корневым узлом для двоичного дерева, и его глубина двоичного дерева равна 0 (нулю). Когда глубина двоичного дерева достигает MaxBTDepth (т.е. 4), дополнительное разделение не рассматривается. Если ширина узла двоичного дерева равна MinBTSize (т.е. 4), дополнительное горизонтальное разделение не рассматривается. Точно так же, когда узел двоичного дерева имеет высоту, равную MinBTSize, дополнительное вертикальное разделение не рассматривается. Листовые узлы двоичного дерева дополнительно обрабатываются с помощью обработки предсказания и преобразования без какого-либо дополнительного разделения. В JEM максимальный размер CTU составляет 256×256 выборок яркости. Могут быть дополнительно обработаны листовые узлы двоичного дерева (CUs) (например, путем выполнения процесса предсказания и процесса преобразования) без какого-либо дополнительного разделения.In one example of a QTBT partitioning structure, when a quadtree node has a size equal to or less than MinQTSize, the quadtree is not further considered. No additional binary tree partitioning is provided because the size (MinQTSize) is larger than MaxBTSize. Otherwise, the leaf node of the quadtree may be further divided by a binary tree. Therefore, the leaf node of the quadtree is also the root node for the binary tree, and its binary tree depth is 0 (zero). When the depth of the binary tree reaches MaxBTDepth (ie 4), no additional split is considered. If the width of a binary tree node is MinBTSize (ie 4), no additional horizontal split is considered. Similarly, when a binary tree node has a height equal to MinBTSize, no additional vertical split is considered. The leaf nodes of the binary tree are further processed by the prediction and transformation processing without any further separation. In JEM, the maximum CTU size is 256×256 luma samples. The leaf nodes of the binary tree (CUs) can be further processed (eg, by performing a prediction process and a transformation process) without any further splitting.

Фиг.21 иллюстрирует пример блока 30 (например, CTB), разделенного с использованием способов разделения QTBT. Как показано на фиг. 21, используя способы разделения QTBT, каждый из блоков разбивается симметрично по центру каждого блока. Фиг.22 иллюстрирует древовидную структуру, соответствующую блочному разделению на фиг.21. Сплошные линии на фиг.22 обозначают разделение дерева квадрантов, а пунктирные линии обозначают разделение двоичного дерева. В одном примере в каждом узле разделения (т.е. не листовом) бинарного дерева сигнализируется элемент синтаксиса (например, флаг) для указания типа выполненного разделения (например, горизонтальное или вертикальное), где 0 указывает горизонтальное разделение и 1 указывает вертикальное разделение. Для разделения дерева квадратов указывать тип разделения не требуется, поскольку при разбиении дерева квадратов блок всегда разбивается по горизонтали и вертикали на 4 подблока одинакового размера.21 illustrates an example of a block 30 (eg, CTB) split using QTBT splitting techniques. As shown in FIG. 21, using QTBT splitting methods, each of the blocks is split symmetrically at the center of each block. Fig.22 illustrates a tree structure corresponding to the block division in Fig.21. The solid lines in FIG. 22 indicate a quadtree split, and the dotted lines indicate a binary tree split. In one example, at each split (ie, non-leaf) node of the binary tree, a syntax element (eg, flag) is signaled to indicate the type of split performed (eg, horizontal or vertical), where 0 indicates a horizontal split and 1 indicates a vertical split. To split a square tree, you do not need to specify the partition type, because when splitting a square tree, the block is always split horizontally and vertically into 4 sub-blocks of the same size.

Как показано на фиг.22, в узле 50 блок 30 (соответствующий корню 50) разделен на четыре блока 31, 32, 33 и 34, показанных на фиг.21, используя разделение QT. Блок 34 далее не разделяется и, следовательно, является листовым узлом. В узле 52 блок 31 дополнительно разделяется на два блока с использованием разделения BT. Как показано на фиг.22 узел 52 отмечен цифрой 1, что указывает на вертикальное разделение. Таким образом, разделение в узле 52 приводит к блоку 37 и блоку, включающему в себя оба блока 35 и 36. Блоки 35 и 36 формируются путем дополнительного вертикального разделения в узле 54. В узле 56 блок 32 дополнительно разделяется на два блока 38 и 39 с использованием разделения BT.As shown in FIG. 22, at node 50, block 30 (corresponding to root 50) is divided into four blocks 31, 32, 33, and 34 shown in FIG. 21 using QT partitioning. Block 34 is not further subdivided and is therefore a leaf node. At node 52, block 31 is further divided into two blocks using BT division. As shown in Fig.22 node 52 is marked with the number 1, which indicates a vertical separation. Thus, a split at node 52 results in a block 37 and a block including both blocks 35 and 36. Blocks 35 and 36 are formed by an additional vertical split at node 54. At node 56, block 32 is further divided into two blocks 38 and 39c. using BT separation.

В узле 58 блок 33 разделяется на 4 блока равного размера с использованием разделения QT. Блоки 43 и 44 формируются посредством разделения QT и дополнительно не разделяются. В узле 60 верхний левый блок сначала разделяется с использованием вертикального разделения двоичного дерева, в результате чего получается блок 40 и правый вертикальный блок. Правый вертикальный блок затем разделяется с использованием горизонтального разделения двоичного дерева на блоки 41 и 42. Нижний правый блок, полученный в результате разделения дерева квадратов в узле 58, разделяется в узле 62 с использованием горизонтального разделения двоичного дерева на блоки 45 и 46. Как показано на фиг.22, узел 62 обозначен 0, что указывает на горизонтальное разделение.At node 58, block 33 is divided into 4 blocks of equal size using QT partitioning. Blocks 43 and 44 are formed by QT separation and are not further divided. At node 60, the upper left block is first split using vertical binary tree splitting, resulting in block 40 and a right vertical block. The right vertical block is then split using the horizontal binary tree split into boxes 41 and 42. The bottom right box resulting from the square tree split at node 58 is split at node 62 using the horizontal split tree into boxes 45 and 46. As shown in Fig.22, the node 62 is marked 0, which indicates a horizontal separation.

В дополнение к QTBT, предложена структура разделения блока, именуемая многотипным деревом (МТТ) для замены BT в структурах CU на основании QTBT, что означает, что сначала CTU может быть разделен с помощью разделения QT для получения блока CTU и затем, во-вторых, блок может быть разделен с помощью MTT разделения.In addition to QTBT, a block partitioning structure called a multi-type tree (MTT) has been proposed to replace BTs in CU structures based on QTBT, which means that first a CTU can be partitioned using QT partitioning to obtain a CTU and then, secondly, a block can be split using MTT splitting.

Структура MTT разделения по-прежнему представляет собой рекурсивную древовидную структуру. В MTT используется несколько различных структур разделов (например, две или более). Например, согласно MTT технологии, могут использоваться две или более различных структур разделов для каждого соответствующего нелистового узла древовидной структуры на каждой глубине древовидной структуры. Глубина узла в древовидной структуре может относиться к длине пути (например, количеству разбиений) от узла до корня древовидной структуры.The split MTT structure is still a recursive tree structure. MTT uses several different partition structures (for example, two or more). For example, according to MTT technology, two or more different partition structures may be used for each corresponding non-leaf tree structure node at each tree structure depth. The depth of a node in a tree structure may refer to the path length (eg, number of splits) from a node to the root of the tree structure.

В MTT используется два типа разделения: разделение BT и разделение на основании троичного дерева (TT). Тип разделения может быть выбран из разделения BT и TT. Структура разделения TT отличается от структур QT или BT тем, что структура разделения TT не разбивает блок по центру. Центральная часть блока остается в одном субблоке. В отличие от QT, который формирует четыре блока, или двоичного дерева, которое формирует два блока, разделение в соответствии со структурой разделения TT дает три блока. Примеры типов разделов в соответствии со структурой разделения TT включают в себя симметричные типы разделов (как горизонтальные, так и вертикальные), а также асимметричные типы разделов (как горизонтальные, так и вертикальные). Кроме того, типы симметричных разделов согласно структуре разделения TT могут быть неравномерными/неоднородными или равномерными/однородными. Типы асимметричных разделов в соответствии со структурой разделения ТТ бывают неравномерными/неоднородными. В одном примере структура разделения TT может содержать в себя, по меньшей мере, один из следующих типов разделений: горизонтальное равномерное/однородное симметричное троичное дерево, вертикальное равномерное/однородное симметричное троичное дерево, горизонтальное неравномерное/неоднородное симметричное троичное дерево, вертикальное неравномерное/неоднородное симметричное троичное дерево, горизонтальное неравномерное/неоднородное асимметричное троичное дерево или вертикальное неравномерное/неоднородное асимметричное троичное дерево.MTT uses two types of partitioning: BT partitioning and ternary tree partitioning (TT). The split type can be selected from BT and TT split. The TT split structure differs from the QT or BT split structures in that the TT split structure does not split the block at the center. The central part of the block remains in one subblock. Unlike QT, which forms four blocks, or binary tree, which forms two blocks, splitting according to the TT splitting structure results in three blocks. Examples of partition types according to the TT partition structure include symmetrical partition types (both horizontal and vertical) as well as asymmetric partition types (both horizontal and vertical). In addition, the types of symmetrical partitions according to the TT partition structure may be non-uniform/non-uniform or uniform/uniform. The types of asymmetric partitions according to the CT partition structure are non-uniform/non-uniform. In one example, a TT split structure may include at least one of the following types of splits: horizontal uniform/uniform symmetrical ternary tree, vertical uniform/uniform symmetrical ternary tree, horizontal non-uniform/non-uniform symmetric ternary tree, vertical non-uniform/non-uniform symmetric ternary tree, horizontal non-uniform/non-uniform asymmetric ternary tree, or vertical non-uniform/non-uniform asymmetric ternary tree.

В общем, неравномерный/неоднородный симметричный тип разделения троичного дерева является типом разделения, который симметричен относительно центральной линии блока, но где, по меньшей мере, один из трех результирующих блоков не имеет тот же размер, что и два других. Один предпочтительный пример показывает, что боковые блоки составляют 1/4 размера блока и центральный блок имеет 1⁄2 размера блока. Равномерный/однородный симметричный тип разделения троичного дерева является типом разделения, который симметричен относительно центральной линии блока, и все результирующие блоки имеют одинаковый размер. Такое разделение в качестве варианта, если высота или ширина блока, в зависимости от вертикального или горизонтального разделения, кратны 3. Неравномерный/неоднородный асимметричный тип разделения троичного дерева является типом разделения, который не является симметричным относительно центральной линии блока, и где, по меньшей мере, один из результирующих блоков не имеет тот же размер, что и два других.In general, a non-uniform/non-uniform symmetric ternary tree split type is a split type that is symmetrical about the block center line, but where at least one of the three resulting blocks is not the same size as the other two. One preferred example shows that the side blocks are 1/4 of the block size and the center block is 1⁄2 of the block size. A uniform/uniform symmetric ternary tree partition type is a partition type that is symmetrical about the block center line, and all resulting blocks are the same size. Such a split is optional if the height or width of the box, depending on the vertical or horizontal split, is a multiple of 3. A non-uniform/non-uniform asymmetric ternary tree split type is a split type that is not symmetrical about the center line of the box, and where at least , one of the resulting blocks is not the same size as the other two.

Фиг.23 является концептуальной схемой, иллюстрирующая возможные примеры типов горизонтального разделения троичного дерева. Фиг.24 является концептуальной схемой, иллюстрирующая возможные примеры типов вертикального разделения троичного дерева. На обоих фиг.23 и фиг.24, h представляет высоту блока в выборках яркости или цветности и w представляет ширину блока в выборках яркости или цветности. Обратите внимание, что соответствующая центральная линия блока не представляет границу блока (т.е. разделы троичного дерева не разделяют блок через центральную линию). Скорее, центральная линия используется для обозначения, является ли конкретный тип раздела симметричным или асимметричным относительно центральной линии исходного блока. Центральная линия также проходит по направлению раздела.23 is a conceptual diagram illustrating possible examples of types of horizontal splitting of a ternary tree. 24 is a conceptual diagram illustrating possible examples of ternary tree vertical split types. In both FIGS. 23 and 24, h represents the block height in luma or chrominance samples and w represents the block width in luma or chrominance samples. Note that the box's corresponding centerline does not represent a box boundary (i.e., ternary tree sections do not split the box across the centerline). Rather, the center line is used to indicate whether a particular section type is symmetrical or asymmetrical about the original block's center line. The center line also runs in the direction of the section.

Как показано на фиг.23, блок 71 разделен с помощью горизонтального равномерного/однородного симметричного типа разделения. Тип горизонтального равномерного/однородного симметричного разделения формирует симметричные верхнюю и нижнюю половины относительно центральной линии блока 71. Тип равномерного/однородного симметричного разделения формирует три субблока равного размера, каждый с высотой h/3 и шириной w. Тип равномерного/однородного симметричного разделения является возможным, когда высота блока 71 делится на 3 без остатка.As shown in FIG. 23, the block 71 is divided by a horizontal uniform/uniform symmetrical partition type. The horizontal uniform/uniform symmetrical partition type forms symmetrical upper and lower halves about the center line of the block 71. The uniform/uniform symmetrical partition type forms three sub-blocks of equal size, each with a height h/3 and a width w. A type of uniform/uniform symmetrical division is possible when the height of the block 71 is divided by 3 without a remainder.

Блок 73 разделен типом горизонтального неравномерного/неоднородного симметричного разделения. Тип горизонтального неравномерного/неоднородного симметричного разделение формирует симметричные верхнюю и нижнюю половины относительно центральной линии блока 73. Тип горизонтального неравномерного/неоднородного симметричного разделение формирует два блока равного размера (например, верхний и нижний блоки с высотой h/4) и центральный блок другого размера (например, центральный блок высотой h/2). В одном примере, согласно типу горизонтального неравномерного/неоднородного симметричного разделения, область центрального блока равна объединенным областям верхнего и нижнего блоков. В некоторых примерах тип горизонтального неравномерного/неоднородного симметричного разделения может быть предпочтительным для блоков, имеющих высоту, равную степени 2 (например, 2, 4, 8, 16, 32 и т.д.).The block 73 is divided by a type of horizontal non-uniform/non-uniform symmetrical partition. The horizontal uneven/non-uniform symmetrical split type produces symmetrical upper and lower halves about the center line of the block 73. The horizontal non-uniform/non-uniform symmetrical split type forms two blocks of equal size (for example, top and bottom blocks with a height of h/4) and a center block of a different size ( for example, the central block height h/2). In one example, according to the type of horizontal non-uniform/non-uniform symmetrical partition, the area of the central block is equal to the combined areas of the upper and lower blocks. In some examples, the type of horizontal non-uniform/non-uniform symmetrical partitioning may be preferred for blocks having a height that is a power of 2 (eg, 2, 4, 8, 16, 32, etc.).

Блок 75 разделен типом горизонтального неравномерного/неоднородного асимметричного разделения. Тип горизонтального неравномерного/неоднородного асимметричного разделения не формирует симметричные верхней и нижней половины относительно центральной линии блока 75 (т.е. верхняя и нижняя половины асимметричны). В примере на фиг.23, тип горизонтального неравномерного/неоднородного асимметричного разделения не формирует верхний блок высотой h/4, центральный блок высотой 3h/8 и нижний блок высотой 3h/8. Конечно, можно использовать другие асимметричные компоновки.Block 75 is divided by a type of horizontal non-uniform/non-uniform asymmetric separation. The type of horizontal non-uniform/non-uniform asymmetric separation does not form symmetrical upper and lower halves about the center line of the block 75 (ie, the upper and lower halves are asymmetrical). In the example of FIG. 23, the type of horizontal non-uniform/non-uniform asymmetric separation does not form an h/4 height top block, a 3h/8 height center block, and a 3h/8 height bottom block. Of course, other asymmetric arrangements can be used.

Как показано на фиг.24, блок 81 разделен типом вертикального равномерного/однородного симметричного разделения. Тип вертикального равномерного/однородного симметричного разделения формирует симметричные левую и правую половины относительно центральной линии блока 81. Тип вертикального равномерного/однородного симметричного разделения формирует три субблока равного размера, каждый с шириной w/3 и высотой h. Тип равномерного/однородного симметричного разделения возможен, когда ширина блока 81 делится на 3 без остатка.As shown in FIG. 24, the block 81 is divided by a type of vertical uniform/uniform symmetrical partition. The vertical even/uniform symmetrical split type forms symmetrical left and right halves about the center line of the block 81. The vertical uniform/uniform symmetrical split type forms three sub-blocks of equal size, each with a width w/3 and a height h. A type of uniform/homogeneous symmetrical division is possible when the width of the block 81 is divided by 3 without a remainder.

Блок 83 разделен типом вертикального неравномерного/неоднородного симметричного разделения. Тип вертикального неравномерного/неоднородного симметричного разделения формирует симметричные левую и правую половины относительно центральной линии блока 83. Тип вертикального неравномерного/неоднородного симметричного разделения формирует симметричные левую и правую половины относительно центральной линии 83. Тип вертикального неравномерного/неоднородного симметричного разделения формирует два блока одинакового размера (например, левый и правый блоки шириной w/4) и центральный блок разного размера (например, центральный блок шириной w/2). В одном примере, согласно типу вертикального неравномерного/неоднородного симметричного разделения, область центрального блока равна объединенным областям левого и правого блоков. В некоторых примерах тип вертикального неравномерного/неоднородного симметричного разделения может быть предпочтительным для блоков, имеющих ширину, равную степени 2 (например, 2, 4, 8, 16, 32 и т.д.).The block 83 is divided by a type of vertical non-uniform/non-uniform symmetrical partition. The vertical uneven/non-uniform symmetrical split type generates symmetrical left and right halves about the block center line 83. The vertical uneven/non-uniform symmetrical split type generates symmetrical left and right halves about the center line 83. The vertical uneven/non-uniform symmetrical split type generates two blocks of the same size ( e.g. left and right blocks w/4 wide) and a center block of different sizes (e.g. center block w/2 wide). In one example, according to the type of vertical non-uniform/non-uniform symmetric separation, the area of the center block is equal to the combined areas of the left and right blocks. In some examples, the type of vertical non-uniform/non-uniform symmetrical partitioning may be preferred for blocks having a power of 2 width (eg, 2, 4, 8, 16, 32, etc.).

Блок 85 разделен типом вертикального неравномерного/неоднородного асимметричного разделения. Тип вертикального неравномерного/неоднородного асимметричного разделения не формирует симметричные левую и правую половины относительно центральной линии блока 85 (т.е. левая и правая половины асимметричны). В примере на фиг.24, тип вертикального неравномерного/неоднородного симметричного разделения формирует левый блок шириной w/4, центральный блок шириной 3w/8 и правый блок шириной 3w/8. Конечно, можно использовать другие асимметричные компоновки.Block 85 is divided by a type of vertical non-uniform/non-uniform asymmetric separation. The vertical non-uniform/non-uniform asymmetric split type does not form symmetrical left and right halves about the center line of block 85 (ie, left and right halves are asymmetrical). In the example of FIG. 24, the type of vertical non-uniform/non-uniform symmetrical division forms a left block w/4 wide, a center block 3w/8 wide, and a right block 3w/8 wide. Of course, other asymmetric arrangements can be used.

В дополнение (или альтернативно) к параметрам для QTBT, определенным выше, для схемы разделения MTT определены следующие параметры.In addition to (or alternatively to) the parameters for QTBT defined above, the following parameters are defined for the MTT split scheme.

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

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

- MaxMttDepth: максимальная глубина многотипного дерева.- MaxMttDepth: The maximum depth of a multitype tree.

- MaxMttDepth offset: максимальное смещение глубины многотипного дерева.- MaxMttDepth offset: maximum depth offset of a multitype tree.

- MaxTtSize: максимально допустимый размер корневого узла троичного дерева- MaxTtSize: the maximum allowable size of the root node of the ternary tree

- MinTtSize: минимально допустимый размер корневого узла троичного дерева- MinTtSize: the minimum allowable size of the root node of the ternary tree

- MinCbSize: минимально допустимый размер блока кодирования.- MinCbSize: the minimum size of a coding block.

Варианты осуществления настоящего изобретения могут быть реализованы видеокодером или видеодекодером, таким как видеокодер 20 по фиг.12 или видеодекодер 30 по фиг.13, в соответствии с вариантом осуществления настоящего изобретения. Один или более структурных элементов видеокодера 20 или видеодекодера 30, включающие в себя блок разделения, могут быть выполнены с возможностью выполнять способы вариантов осуществления настоящего изобретения.Embodiments of the present invention may be implemented by a video encoder or video decoder, such as video encoder 20 of FIG. 12 or video decoder 30 of FIG. 13, in accordance with an embodiment of the present invention. One or more building blocks of video encoder 20 or video decoder 30, including a splitter, may be configured to perform the methods of embodiments of the present invention.

В вариантах настоящего изобретения:In embodiments of the present invention:

В JVET-K1001-v4 log2_ctu_size_minus2, log2_min_qt_size_intra_slices_minus2 и log2_min_qt_size_inter_slices_minus2 сигнализируются в SPS (как элементы синтаксиса).In JVET-K1001-v4, log2_ctu_size_minus2, log2_min_qt_size_intra_slices_minus2 and log2_min_qt_size_inter_slices_minus2 are signaled in the SPS (as syntax elements).

Параметр log2_ctu_size_minus2 plus 2 определяет размер блока дерева кодирования яркости каждого CTU. В частности:The log2_ctu_size_minus2 plus 2 parameter specifies the size of the luminance coding tree block of each CTU. In particular:

CtbLog2SizeY = log2_ctu_size_minus2 + 2 (7–5)CtbLog2SizeY = log2_ctu_size_minus2 + 2 (7-5)

CtbSizeY = 1 << CtbLog2SizeY (7-6)CtbSizeY = 1 << CtbLog2SizeY (7-6)

Другими словами, CtbLog2SizeY определяет значение log2 размера CTU CtbSizeY, соответствующий размеру блока дерева кодирования (CTB) для яркости (Y).In other words, CtbLog2SizeY defines a CtbSizeY CTU size log2 value corresponding to the coding tree block (CTB) size for luma (Y).

Дополнительные установки предоставляются следующим образом:Additional settings are provided as follows:

MinCbLog2SizeY = 2 (7-7)MinCbLog2SizeY = 2 (7-7)

MinCbSizeY = 1 << MinCbLog2SizeY (7-8)MinCbSizeY = 1 << MinCbLog2SizeY (7-8)

MinTbSizeY = 4 (7–9)MinTbSizeY = 4 (7–9)

MaxTbSizeY = 64 (7–10)MaxTbSizeY = 64 (7-10)

Параметр log2_min_qt_size_intra_slices_minus2 плюс 2 определяет минимальный размер яркости листового блока, полученного в результате разделения дерева квадрантов CTU в сегментах с slice_type, равным 2 (I), то есть, внутренних сегментов. Значение log2_min_qt_size_intra_slices_minus2 должно быть в диапазоне от 0 до CtbLog2SizeY - 2 включительно.The parameter log2_min_qt_size_intra_slices_minus2 plus 2 defines the minimum size of the leaf block luminance resulting from splitting the CTU quadtree into slices with slice_type equal to 2 (I), that is, inner slices. The log2_min_qt_size_intra_slices_minus2 value must be between 0 and CtbLog2SizeY - 2 inclusive.

MinQtLog2SizeIntraY = log2_min_qt_size_intra_slices_minus2 + 2 (7-22)MinQtLog2SizeIntraY = log2_min_qt_size_intra_slices_minus2 + 2 (7-22)

Параметр log2_min_qt_size_inter_slices_minus2 плюс 2 указывает минимальный размер яркости листового блока, полученного в результате разделения дерева квадрантов CTU в сегментах с slice_type, равным 0 (B) или 1 (P), то есть, внешними сегментами. Значение log2_min_qt_size_inter_slices_minus2 должно быть в диапазоне от 0 до CtbLog2SizeY - 2 включительно.The parameter log2_min_qt_size_inter_slices_minus2 plus 2 specifies the minimum size of the leaf block brightness resulting from splitting the CTU quadtree into slices with slice_type equal to 0 (B) or 1 (P), that is, outer slices. The log2_min_qt_size_inter_slices_minus2 value must be between 0 and CtbLog2SizeY - 2 inclusive.

MinQtLog2SizeInterY = log2_min_qt_size_inter_slices_minus2 + 2 (7-23)MinQtLog2SizeInterY = log2_min_qt_size_inter_slices_minus2 + 2 (7-23)

MinQtSizeY определен в (7-30), что означает минимально допустимый размер разделения дерева квадрантов в выборке яркости. Если размер блока кодирования меньше или равен MinQtSizeY, разделение дерева квадрантов не допускается. Дополнительные установки предоставляют собой следующее:MinQtSizeY is defined in (7-30), which means the minimum allowable split size of the quadtree in the luma sample. If the coding block size is less than or equal to MinQtSizeY, splitting the quadtree is not allowed. Additional settings provide the following:

MinQtLog2SizeY = (slice_type = = I)? MinQtLog2SizeIntraY: MinQtLog2SizeInterY (7-25)MinQtLog2SizeY=(slice_type==I)? MinQtLog2SizeIntraY: MinQtLog2SizeInterY (7-25)

MaxBtLog2SizeY = CtbLog2SizeY - log2_diff_ctu_max_bt_size (7-26)MaxBtLog2SizeY = CtbLog2SizeY - log2_diff_ctu_max_bt_size (7-26)

MinBtLog2SizeY = MinCbLog2SizeY (7-27)MinBtLog2SizeY = MinCbLog2SizeY(7-27)

MaxTtLog2SizeY = (slice_type = = I)? 5: 6 (7–28)MaxTtLog2SizeY = (slice_type == I)? 5:6 (7–28)

MinTtLog2SizeY = MinCbLog2SizeY (7-29)MinTtLog2SizeY = MinCbLog2SizeY(7-29)

MinQtSizeY = 1 << MinQtLog2SizeY (7-30)MinQtSizeY = 1 << MinQtLog2SizeY (7-30)

MaxBtSizeY = 1 << MaxBtLog2SizeY (7-31)MaxBtSizeY = 1 << MaxBtLog2SizeY (7-31)

MinBtSizeY = 1 << MinBtLog2SizeY (7-32)MinBtSizeY = 1 << MinBtLog2SizeY (7-32)

MaxTtSizeY = 1 << MaxTtLog2SizeY (7-33)MaxTtSizeY = 1 << MaxTtLog2SizeY (7-33)

MinTtSizeY = 1 << MinTtLog2SizeY (7-34)MinTtSizeY = 1 << MinTtLog2SizeY (7-34)

MaxMttDepth = (slice_type = = I)? max_mtt_hierarchy_depth_intra_slices:MaxMttDepth=(slice_type==I)? max_mtt_hierarchy_depth_intra_slices:

max_mtt_hierarchy_depth_inter_slices (7-35)max_mtt_hierarchy_depth_inter_slices (7-35)

Параметры max_mtt_hierarchy_depth_intra_slices и max_mtt_hierarchy_depth_inter_slices обозначают максимальную глубину иерархии для разделения по типу MTT для внутренних и внешних сегментов соответственно.The max_mtt_hierarchy_depth_intra_slices and max_mtt_hierarchy_depth_inter_slices parameters indicate the maximum hierarchy depth for MTT splitting for inner and outer segments, respectively.

Основываясь на семантике log2_min_qt_size_intra_slices_minus2 и log2_min_qt_size_inter_slices_minus2, диапазоны log2_min_qt_size_intra_slices_minus2 и log2_min_qt_size_inter_slices_minus2 составляют от 0 до CtbLog2SizeY-2.Based on the semantics of log2_min_qt_size_intra_slices_minus2 and log2_min_qt_size_inter_slices_minus2, the ranges of log2_min_qt_size_intra_slices_minus2 and log2_min_qt_size_inter_slices_minus2 are 0 to CtbLog2SizeY-2.

Здесь CtbLog2SizeY определяется в семантике log2_ctu_size_minus2, что означает значение log2 размера блока дерева кодирования яркости каждого CTU, CtbLog2SizeY в VTM2.0 равно 7.Here, CtbLog2SizeY is defined in the log2_ctu_size_minus2 semantics, which means the log2 value of the luma coding tree block size of each CTU, CtbLog2SizeY in VTM2.0 is 7.

На основании (7-22) и (7-23) диапазон MinQtLog2SizeIntraY и MinQtLog2SizeInterY составляет от 2 до CtbLog2SizeY.Based on (7-22) and (7-23), MinQtLog2SizeIntraY and MinQtLog2SizeInterY range from 2 to CtbLog2SizeY.

На основании (7-25) диапазон MinQtLog2SizeY составляет от 2 до CtbLog2SizeY.Based on (7-25), the MinQtLog2SizeY range is 2 to CtbLog2SizeY.

На основании (7-30) диапазон MinQtSizeY в JVET-K1001-v4 составляет от (1 << 2) до (1 << CtbLog2SizeY), в VTM2.0 диапазон составляет от (1 << 2) to (1 << 7), что равно от 4 до 128.Based on (7-30) the MinQtSizeY range in JVET-K1001-v4 is (1 << 2) to (1 << CtbLog2SizeY), in VTM2.0 the range is (1 << 2) to (1 << 7 ), which is between 4 and 128.

В JVET-K1001-v4 log2_diff_ctu_max_bt_size условно сигнализируется в заголовке сегмента.In JVET-K1001-v4, log2_diff_ctu_max_bt_size is conditionally signaled in the segment header.

Параметр log2_diff_ctu_max_bt_size определяет разницу между размером CTB яркости и максимальным размером яркости (шириной или высотой) блока кодирования, который может быть разделен с использованием двоичного разделения. Значение log2_diff_ctu_max_bt_size должно быть в диапазоне от 0 до CtbLog2SizeY - MinCbLog2SizeY включительно.The log2_diff_ctu_max_bt_size parameter defines the difference between the luminance CTB size and the maximum luminance size (width or height) of a coding block that can be divided using binary partitioning. The log2_diff_ctu_max_bt_size value must be between 0 and CtbLog2SizeY - MinCbLog2SizeY inclusive.

Когда log2_diff_ctu_max_bt_size отсутствует, значение log2_diff_ctu_max_bt_size предполагается равным 2.When log2_diff_ctu_max_bt_size is missing, log2_diff_ctu_max_bt_size is assumed to be 2.

MinCbLog2SizeY определен в (7-7), что означает минимально допустимый размер блока кодирования.MinCbLog2SizeY is defined in (7-7), which means the minimum allowed coding block size.

Основываясь на семантике log2_diff_ctu_max_bt_size, диапазон log2_diff_ctu_max_bt_size составляет от 0 до CtbLog2SizeY - MinCbLog2SizeY.Based on the semantics of log2_diff_ctu_max_bt_size, the range of log2_diff_ctu_max_bt_size is 0 to CtbLog2SizeY - MinCbLog2SizeY.

На основании (7-26) диапазон MaxBtLog2SizeY составляет от CtbLog2SizeY до MinCbLog2SizeY.Based on (7-26), MaxBtLog2SizeY ranges from CtbLog2SizeY to MinCbLog2SizeY.

На основании (7-31) диапазон MaxBtSizeY составляет от (1 << CtbLog2SizeY) до (1 << MinCbLog2SizeY).Based on (7-31), MaxBtSizeY ranges from (1 << CtbLog2SizeY) to (1 << MinCbLog2SizeY).

На основании (7-7) диапазон MaxBtSizeY в JVET-K1001-v4 составляет от (1 << CtbLog2SizeY) до (1 << 2), поскольку в VTM2.0 CtbLog2SizeY равен 7, диапазон MaxBtSizeY в VTM2.0 равен от 128 до 4.Based on (7-7), the MaxBtSizeY range in JVET-K1001-v4 is (1 << CtbLog2SizeY) to (1 << 2), because in VTM2.0 CtbLog2SizeY is 7, the MaxBtSizeY range in VTM2.0 is 128 to 4.

Следовательно, MinQtSizeY имеет диапазон от 4 до (1 << CtbLog2SizeY), в VTM2.0 от 4 до 128, MaxBtSizeY имеет диапазон от (1 << CtbLog2SizeY) до 4, в VTM2.0 от 128 до 4.Therefore, MinQtSizeY has a range of 4 to (1 << CtbLog2SizeY), in VTM2.0 4 to 128, MaxBtSizeY has a range of (1 << CtbLog2SizeY) to 4, in VTM2.0 128 to 4.

Соответственно, существует вероятность того, что MinQtSizeY больше, чем MaxBtSizeY.Accordingly, there is a possibility that MinQtSizeY is greater than MaxBtSizeY.

Более того, на основании текущей обработки границ в VVC 2.0, для блоков, расположенных на границе, разрешено только QT и BT разделение (не разрешено TT, не разрешено отсутствие разделения).Moreover, based on the current border handling in VVC 2.0, only QT and BT separation is allowed for blocks located on the border (TT not allowed, no separation not allowed).

Если текущий блок кодирования расположен на границе и текущий размер блока кодирования cbSizeY удовлетворяет условию:If the current coding block is located on the boundary and the current size of the coding block cbSizeY satisfies the condition:

MinQtSizeY> cbSizeY> MaxBtSizeY,MinQtSizeY > cbSizeY > MaxBtSizeY,

для текущего блока кодирования невозможно ни QT, ни BT. Следовательно, для текущего блока нет доступного режима разделения.neither QT nor BT is possible for the current coding block. Therefore, there is no split mode available for the current block.

ВАРИАНТ 1 ОСУЩЕСТВЛЕНИЯ.IMPLEMENTATION OPTION 1.

Далее приведено подробное описание решения (варианты осуществления изобретения) вышеупомянутых технических задач, включающие в себя аспект граничного случая.The following is a detailed description of the solution (embodiments of the invention) of the above technical problems, including the aspect of the boundary case.

Согласно варианту осуществления, для решения упомянутой технической задачи нижняя граница MaxBtSizeY должна быть ограничена MinQtSizeY, чтобы убедиться, что MaxBtSizeY не меньше MinQtSizeY. В частности, нижняя граница MaxBtSizeY может быть равна MinQtSizeY, поэтому диапазон MaxBtSizeY должен иметь значение от (1 << CtbLog2SizeY) до (1 << MinQtLog2SizeY), поэтому диапазон MaxBtLog2SizeY должен быть от CtbLog2SizeY до MinQtLog2SizeY, поэтому диапазон log2_diff_ctu_max_max_bt_sizebLogSize2 должен быть от 0 до CtbLog2SizeY- MinQtLog2SizeY. According to an embodiment, in order to solve the above technical problem, the lower bound of MaxBtSizeY should be limited to MinQtSizeY to ensure that MaxBtSizeY is not less than MinQtSizeY. In particular, the lower bound of MaxBtSizeY can be equal to MinQtSizeY, so the range of MaxBtSizeY must be from (1 << CtbLog2SizeY) to (1 << MinQtLog2SizeY), so the range of MaxBtLog2SizeY must be from CtbLog2SizeY to MinQtLog2SizeY, so the range of log2_diff_ctu_max_max_bt_sizebLogSize2 must be from 0 to CtbLog2SizeY- MinQtLog2SizeY.

Соответствующее изменение в проекте (стандарта видео) находится в семантике log2_diff_ctu_max_bt_size следующим образом:The corresponding change in the draft (video standard) is in the semantics of log2_diff_ctu_max_bt_size as follows:

log2_diff_ctu_max_bt_size определяет разницу между размером CTB яркости и максимальным размером яркости (шириной или высотой) блока кодирования, который может быть разделен с использованием двоичного разделения. Значение log2_diff_ctu_max_bt_size должно находиться в диапазоне от 0 до CtbLog2SizeY - MinQtLog2SizeY включительно.log2_diff_ctu_max_bt_size defines the difference between the luminance CTB size and the maximum luma size (width or height) of a coding block that can be divided using binary partitioning. The log2_diff_ctu_max_bt_size value must be between 0 and CtbLog2SizeY - MinQtLog2SizeY inclusive.

Соответствующий способ кодирования, реализованный устройством кодирования (декодером или кодером), может быть следующим:The corresponding encoding method implemented by the encoding device (decoder or encoder) may be as follows:

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

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

если текущий блок является граничным и размер текущего блока не превышает минимально допустимый размер листового узла дерева квадрантов, применение двоичного разделения к текущему блоку; в котором минимально допустимый размер листового узла дерева квадрантов не превышает максимально допустимый размер корневого узла двоичного дерева.if the current block is a boundary block and the size of the current block does not exceed the minimum allowable size of the leaf node of the quadtree, applying a binary split to the current block; in which the minimum allowable size of the leaf node of the quadtree does not exceed the maximum allowable size of the root node of the binary tree.

В котором применение двоичного разделения к текущему блоку может содержать применение принудительного двоичного разделения к текущему блоку.Wherein applying a binary split to the current block may comprise applying a forced binary split to the current block.

В котором текущий блок может быть получен путем разделения изображения или блока дерева кодирования (CTU).In which the current block can be obtained by splitting a picture or a coding tree block (CTU).

В котором способ может содержать два случая: 1) treeType равно SINGLE_TREE или DUAL_TREE_LUMA; 2) treeType равен DUAL_TREE_CHROMA. Для случая 1) текущий блок является блоком яркости и для случая 2) текущий блок является блоком цветности.In which the method may contain two cases: 1) treeType is equal to SINGLE_TREE or DUAL_TREE_LUMA; 2) treeType is equal to DUAL_TREE_CHROMA. For case 1) the current block is a luminance block and for case 2) the current block is a chrominance block.

В котором максимально допустимый размер корневого узла двоичного дерева может быть максимальным размером яркости в выборках яркости корневого блока кодирования яркости, который может быть разделен с использованием разделения двоичного дерева.Wherein the maximum allowable size of the root node of the binary tree may be the maximum size of the luminance in the luminance samples of the root luminance coding block that can be partitioned using binary tree partitioning.

В котором максимально допустимый размер корневого узла троичного дерева может быть максимальным размером яркости в выборках яркости корневого блока кодирования яркости, который может быть разделен с использованием разделения троичного дерева.Wherein the maximum allowable size of the ternary tree root node may be the maximum luminance size in luminance samples of the luminance root coding block that can be partitioned using ternary tree partitioning.

В котором минимально допустимый размер листового узла дерева квадрантов может быть минимальным размером яркости в выборках яркости листового блока яркости, полученные в результате разделения дерева квадрантов.Wherein the minimum allowable quadtree leaf node size may be the minimum luminance size in the luminance leaf block luminance samples resulting from splitting the quadtree.

В настоящем документе кодирование соответствует кодированию изображения, видео или движущегося изображения.In this document, coding refers to the coding of a picture, video, or moving picture.

Граничный блок означает, что граница изображения/кадра разрезает блок, или, другими словами, блок находится на границе изображения/кадра. В вышеприведенном варианте осуществления двоичное разделение применяется к текущему блоку, если текущий блок является граничным блоком (условие 1) и его размер не превышает минимально допустимый размер листового узла дерева квадрантов (условие 2). Следует отметить, что в некоторых вариантах осуществления может использоваться троичное или другое разделение вместо двоичного разделения. Более того, в некоторых вариантах осуществления двоичное разделение может применяться при условии 2 независимо от условия 1. Другими словами, условие 1 не требует оценки. Если размер текущего блока действительно больше, чем минимально допустимый размер листового узла дерева квадрантов (т.е. условие 2 не выполняется), может применяться разделение дерева квадрантов.Boundary block means that the image/frame border cuts the block, or in other words, the block is on the image/frame border. In the above embodiment, binary splitting is applied to the current block if the current block is a boundary block (condition 1) and its size does not exceed the minimum allowable leaf node size of the quadtree (condition 2). It should be noted that in some embodiments, ternary or other partitioning may be used instead of binary partitioning. Moreover, in some embodiments, binary splitting may be applied under condition 2 regardless of condition 1. In other words, condition 1 does not need to be evaluated. If the size of the current block is indeed larger than the minimum allowed quadtree leaf node size (i.e. condition 2 is not met), quadtree splitting may be applied.

Следует отметить, что могут рассматриваться варианты осуществления, в которых двоичное разделение используется только для граничных блоков (условие 1). Для неграничных блоков разделение дерева квадрантов может быть единственным используемым разделением. Применение двоичного (или троичного) разделения на границе изображения/кадра дает преимущество, в качестве варианта, более эффективное разделение, например, горизонтальные двоичные/троичные разделы на горизонтальной границе и вертикальные двоичные/троичные разделы на вертикальной границе.It should be noted that embodiments may be considered in which binary separation is used only for boundary blocks (condition 1). For non-boundary blocks, the quadtree partition may be the only partition used. The use of binary (or ternary) partitioning at an image/frame boundary has the advantage of alternatively more efficient separation, eg horizontal binary/ternary partitions at a horizontal border and vertical binary/ternary partitions at a vertical border.

Другой соответствующий способ кодирования, реализованный устройством для кодирования (декодером или кодером), может быть следующим: определение, превышает ли размер граничного блока минимально допустимый размер листового узла дерева квадрантов. Если размер граничного блока не превышает минимально допустимый размер листового узла дерева квадрантов, минимально допустимый размер листового узла дерева квадрантов не превышает максимально допустимый размер корневого узла двоичного дерева (например, по стандартной спецификации), и к граничному блоку применяется двоичное разделение.Another appropriate encoding method implemented by the encoding device (decoder or encoder) may be as follows: determining if the boundary block size exceeds the minimum allowable size of the leaf node of the quadtree. If the size of the boundary box does not exceed the minimum allowed quadtree leaf node size, the minimum allowed quadtree leaf node size does not exceed the maximum allowed binary tree root node size (e.g., by the standard specification), and binary partitioning is applied to the boundary box.

В качестве варианта, граничный блок может не содержать угловой блок. Другими словами, угловой блок, который обрезается как вертикальной, так и горизонтальной границей изображения/кадра, не рассматривается как граничный блок для целей вышеупомянутого условия 1.Alternatively, the border block may not contain a corner block. In other words, a corner box that is clipped by both the vertical and horizontal image/frame boundaries is not considered a boundary box for the purposes of the above condition 1.

ВАРИАНТ 2 ОСУЩЕСТВЛЕНИЯIMPLEMENTATION OPTION 2

Далее приведено описание других вариантов осуществления настоящего изобретения (в сочетании с вышеупомянутыми вариантами осуществления).The following is a description of other embodiments of the present invention (in combination with the above embodiments).

В JVET-K1001-v4 в SPS сигнализируется max_mtt_hierarchy_depth_inter_slices и max_mtt_hierarchy_depth_intra_slices. Другими словами, max_mtt_hierarchy_depth_inter_slices и max_mtt_hierarchy_depth_intra_slices являются элементами синтаксиса, что означает, что их значение содержится в битовом потоке, включающий в себя также закодированное изображение или видео.In JVET-K1001-v4 max_mtt_hierarchy_depth_inter_slices and max_mtt_hierarchy_depth_intra_slices are signaled in SPS. In other words, max_mtt_hierarchy_depth_inter_slices and max_mtt_hierarchy_depth_intra_slices are syntax elements, which means that their value is contained in a bitstream that also includes the encoded image or video.

В частности, max_mtt_hierarchy_depth_inter_slices определяет максимальную глубину иерархии для блока кодирования, возникающих в результате разделения многотипного дерева на листового дерева квадрантов в сегментах с slice_type, равным 0 (B) или 1 (P). Значение max_mtt_hierarchy_depth_inter_slices должно быть в диапазоне от 0 до CtbLog2SizeY - MinTbLog2SizeY включительно.In particular, max_mtt_hierarchy_depth_inter_slices defines the maximum hierarchy depth for an encoding block resulting from splitting a multitype tree into leafy quadtrees in segments with slice_type equal to 0 (B) or 1 (P). The value of max_mtt_hierarchy_depth_inter_slices must be between 0 and CtbLog2SizeY - MinTbLog2SizeY inclusive.

max_mtt_hierarchy_depth_intra_slices определяет максимальную глубину иерархии для блока кодирования, возникающих в результате разделения многотипного дерева листового дерева квадрантов в сегментах с slice_type, равным 2 (I). Значение max_mtt_hierarchy_depth_intra_slices должно быть в диапазоне от 0 до CtbLog2SizeY - MinTbLog2SizeY включительно.max_mtt_hierarchy_depth_intra_slices specifies the maximum hierarchy depth for an coding block resulting from splitting a multitype leaf tree quadtree into segments with slice_type equal to 2 (I). The value of max_mtt_hierarchy_depth_intra_slices must be between 0 and CtbLog2SizeY - MinTbLog2SizeY inclusive.

MinTbSizeY определяется в (7-9), которое фиксировано как 4, поэтому MinTbLog2SizeY = log2 MinTbSizeY, которое фиксировано как 2.MinTbSizeY is defined in (7-9), which is fixed at 4, so MinTbLog2SizeY = log2 MinTbSizeY, which is fixed at 2.

Определяется MaxMttDepth, что означает максимально допустимую глубину разделения многотипного дерева. Если текущая глубина разделения многотипного дерева больше или равна MaxMttDepth, разделение многотипного дерева не допускается (применяется).MaxMttDepth is defined, which means the maximum allowable splitting depth of a multitype tree. If the current multitype tree split depth is greater than or equal to MaxMttDepth, multitype tree splitting is not allowed (enforced).

Основываясь на семантике max_mtt_hierarchy_depth_inter_slices и max_mtt_hierarchy_depth_intra_slices, диапазон max_mtt_hierarchy_depth_inter_slices и max_mtt_hierarchy_depth_intra_slices составляет от 0 до CtbLog2SizeY - MinTbLog2SizeY.Based on the semantics of max_mtt_hierarchy_depth_inter_slices and max_mtt_hierarchy_depth_intra_slices, the range of max_mtt_hierarchy_depth_inter_slices and max_mtt_hierarchy_depth_intra_slices is from 0 to CtbLog2SizeY - MinTbLog2SizeY.

На основании (7-35) диапазон MaxMttDepth составляет от 0 до CtbLog2SizeY - MinTbLog2SizeY. Поскольку в VTM2.0 CtbLog2SizeY равно 7, диапазон MaxMttDepth составляет от 0 до 5.Based on (7-35), the MaxMttDepth range is 0 to CtbLog2SizeY - MinTbLog2SizeY. Since CtbLog2SizeY is 7 in VTM2.0, the MaxMttDepth range is 0 to 5.

Следовательно, MaxMttDepth имеет диапазон от 0 до CtbLog2SizeY - MinTbLog2SizeY, в VTM2.0 от 0 до 5.Therefore, MaxMttDepth has a range of 0 to CtbLog2SizeY - MinTbLog2SizeY, in VTM2.0 0 to 5.

Основываясь на текущей обработке границ в VVC 2.0, для блока, расположенного на границе, разрешено только QT и BT разделение (не разрешено TT, не разрешено без разделения).Based on the current border handling in VVC 2.0, only QT and BT splitting is allowed for a block located on a border (not allowed by TT, not allowed without splitting).

Если первая техническая задача, упомянутая выше, решена (MaxBtSizeY> = MinQtSizeY), все равно выполняется следующее условие:If the first technical challenge mentioned above is solved (MaxBtSizeY >= MinQtSizeY), the following condition still holds:

cbSizeY <= MinQtSizeYcbSizeY <= MinQtSizeY

MaxMttDepth = 0MaxMttDepth = 0

Для граничной обработки недостаточно уровней разделов BT (вообще любого МТТ, включающего в себя и ТТ).For boundary processing, the levels of BT sections (in general, any MTT, including TT) are not enough.

Например, MinQtSizeY равно 16, MinTbSizeY равно 4, MaxMttDepth равно 0.For example, MinQtSizeY is 16, MinTbSizeY is 4, MaxMttDepth is 0.

Если граничный блок с cbSizeY = 16 и родительским разделом является QT, и этот блок все еще находится на границе, дополнительное разделение не может быть выполнено, потому что Mttdepth текущего блока достигнута MaxMttDepth.If a border box with cbSizeY = 16 and the parent section is QT, and that box is still on the boundary, no further split can be performed because the Mttdepth of the current box has reached MaxMttDepth.

Решение (вариант осуществления изобретения) данной технической задачи граничного случая: для решения упомянутой технической задачи нижняя граница MaxMttDepth должна быть ограничена до 1 (другими словами, не может принимать значение нуля), чтобы убедиться, что после разделения QT достаточно уровней разнотипного разделения дерева для граничного случая. Или, даже более того, нижняя граница MaxMttDepth должна быть ограничена (MinQtLog2SizeY-MinTbLog2SizeY), чтобы убедиться в наличии достаточного количества уровней многотивового раздела дерева после разделения QT как для граничного, так и для не граничного случая.The solution (an embodiment of the invention) of this technical problem of the boundary case: in order to solve the mentioned technical problem, the lower limit of MaxMttDepth should be limited to 1 (in other words, it cannot take the value of zero) in order to make sure that after splitting the QT, there are enough levels of different types of splitting of the tree for the boundary case. Or, even more so, the lower bound of MaxMttDepth should be limited (MinQtLog2SizeY-MinTbLog2SizeY) to make sure there are enough levels of the multi-vector tree partition after QT split for both edge and non-edge cases.

Соответствующее изменение в (стандартном) тексте проекта находится в семантике max_mtt_hierarchy_depth_inter_slices и max_mtt_hierarchy_depth_intra_slices следующим образом:The corresponding change in the (standard) project text is in the semantics of max_mtt_hierarchy_depth_inter_slices and max_mtt_hierarchy_depth_intra_slices as follows:

max_mtt_hierarchy_depth_inter_slices определяет максимальную глубину иерархии для блока кодирования, возникающих в результате разделения многотипного дерева на листовом дереве квадрантов в сегментах с slice_type, равным 0 (B) или 1 (P). Значение max_mtt_hierarchy_depth_inter_slices должно быть в диапазоне от 1 до CtbLog2SizeY - MinTbLog2SizeY включительно.max_mtt_hierarchy_depth_inter_slices specifies the maximum hierarchy depth for an encoding block resulting from splitting a multitype tree on a leaf quadtree into slices with slice_type equal to 0 (B) or 1 (P). The value of max_mtt_hierarchy_depth_inter_slices must be between 1 and CtbLog2SizeY - MinTbLog2SizeY inclusive.

max_mtt_hierarchy_depth_intra_slices задает максимальную глубину иерархии для блока кодирования, возникающих в результате разделения многотипного дерева листового дерева квадрантов в сегментах с slice_type, равным 2 (I). Значение max_mtt_hierarchy_depth_intra_slices должно быть в диапазоне от 1 до CtbLog2SizeY - MinTbLog2SizeY включительно.max_mtt_hierarchy_depth_intra_slices specifies the maximum hierarchy depth for an coding block resulting from splitting a multitype leaf tree quadtree into segments with slice_type equal to 2 (I). The value of max_mtt_hierarchy_depth_intra_slices must be in the range from 1 to CtbLog2SizeY - MinTbLog2SizeY inclusive.

илиor

max_mtt_hierarchy_depth_inter_slices определяет максимальную глубину иерархии для блока кодирования, возникающих в результате разделения многотипного дерева листового дерева квадрантов в сегментах с slice_type, равным 0 (B) или 1 (P). Значение max_mtt_hierarchy_depth_inter_slices должно находиться в диапазоне от MinQtLog2SizeY-MinTbLog2SizeY до CtbLog2SizeY - MinTbLog2SizeY включительно.max_mtt_hierarchy_depth_inter_slices specifies the maximum hierarchy depth for an coding block resulting from splitting a multitype leaf tree quadtree into slices with slice_type equal to 0 (B) or 1 (P). The value of max_mtt_hierarchy_depth_inter_slices must be between MinQtLog2SizeY-MinTbLog2SizeY and CtbLog2SizeY - MinTbLog2SizeY inclusive.

max_mtt_hierarchy_depth_intra_slices определяет максимальную глубину иерархии для блока кодирования, возникающих в результате разделения многотипного дерева листового дерева квадрантов в сегментах с slice_type, равным 2 (I). Значение max_mtt_hierarchy_depth_intra_slices должно находиться в диапазоне от MinQtLog2SizeY-MinTbLog2SizeY до CtbLog2SizeY - MinTbLog2SizeY включительно.max_mtt_hierarchy_depth_intra_slices specifies the maximum hierarchy depth for an coding block resulting from splitting a multitype leaf tree quadtree into segments with slice_type equal to 2 (I). The value of max_mtt_hierarchy_depth_intra_slices must be in the range from MinQtLog2SizeY-MinTbLog2SizeY to CtbLog2SizeY - MinTbLog2SizeY inclusive.

Соответствующий способ кодирования, реализованный устройством для кодирования (декодером или кодером), может быть следующим:The corresponding encoding method implemented by the encoding device (decoder or encoder) may be as follows:

Разделение изображения на блоки, в котором блоки составляют граничный блок; Применение двоичного разделения к граничному блоку с максимальной граничной глубиной многотипного разделения, в котором максимальная граничная глубина многотипного разделения представляет собой сумму, по меньшей мере, максимальной глубины многотипного дерева и максимального смещения глубины многотипного дерева, в котором максимальная глубина многотипного дерева больше 0. Этот вариант осуществления может быть объединен с вариантом 1 осуществления или может применяться без варианта 1 осуществления.Division of the image into blocks, in which the blocks constitute the boundary block; Applying a binary split to a boundary box with a maximum multitype split boundary depth, in which the maximum multitype split boundary depth is the sum of at least the maximum multitype tree depth and a maximum multitype tree depth offset, in which the maximum multitype tree depth is greater than 0. This option implementation may be combined with option 1 implementation or may be used without option 1 implementation.

В качестве варианта, максимальная глубина многотипного дерева больше 0 при применении двоичного разделения к граничному блоку.Alternatively, the maximum depth of a multitype tree is greater than 0 when binary splitting is applied to the boundary box.

В качестве варианта, граничный блок может не содержать угловой блок.Alternatively, the border block may not contain a corner block.

ВАРИАНТ 3 ОСУЩЕСТВЛЕНИЯ.OPTION 3 IMPLEMENTATION.

В других вариантах настоящего изобретения:In other embodiments of the present invention:

В JVET-K1001-v4, если MinQtSizeY> MaxBtSizeY и MinQtSizeY> MaxTtSizeY.In JVET-K1001-v4 if MinQtSizeY > MaxBtSizeY and MinQtSizeY > MaxTtSizeY.

Если cbSize = MinQtsizeY, раздел не может достичь MinCbSizeY (MinTbSizeY и MinCbsizeY фиксированы и равны 4), в связи с отсутствием доступного возможного режима разделения.If cbSize = MinQtsizeY, the partition cannot reach MinCbSizeY (MinTbSizeY and MinCbsizeY are fixed at 4), due to no possible partition mode available.

Решение этой технической задачи неграничного случая или граничного случая: для решения упомянутой технической задачи нижняя граница MaxBtSizeY должна быть ограничена до MinQtSizeY, чтобы убедиться, что MaxBtSizeY не меньше MinQtSizeY. Или нижняя граница MaxTtSizeY должна быть ограничена MinQtSizeY, чтобы убедиться, что MaxTtSizeY не меньше MinQtSizeY.Solving this technical problem of non-boundary case or edge case: To solve the mentioned technical problem, the lower bound of MaxBtSizeY must be limited to MinQtSizeY to ensure that MaxBtSizeY is not less than MinQtSizeY. Or the lower bound of MaxTtSizeY should be limited to MinQtSizeY to make sure that MaxTtSizeY is not less than MinQtSizeY.

Соответствующее изменение текста проекта находится в семантикеThe corresponding change in the text of the project is in the semantics

log2_diff_ctu_max_bt_size определяет разницу между размером CTB яркости и максимальным размером яркости (шириной или высотой) блока кодирования, который может быть разделен с использованием двоичного разделения. Значение log2_diff_ctu_max_bt_size должно находиться в диапазоне от 0 до CtbLog2SizeY - MinQtLog2SizeY включительно.log2_diff_ctu_max_bt_size defines the difference between the luminance CTB size and the maximum luma size (width or height) of a coding block that can be divided using binary partitioning. The log2_diff_ctu_max_bt_size value must be between 0 and CtbLog2SizeY - MinQtLog2SizeY inclusive.

И/илиAnd/or

log2_min_qt_size_intra_slices_minus2 plus 2 определяет минимальный размер яркости листового блока, полученного в результате разделения дерева квадрантов CTU в сегментах с slice_type, равным 2 (I). Значение log2_min_qt_size_intra_slices_minus2 должно быть в диапазоне от 0 до MaxTtLog2SizeY - 2 включительно.log2_min_qt_size_intra_slices_minus2 plus 2 specifies the minimum size of the leaf block luminance resulting from splitting the CTU quadtree into slices with slice_type equal to 2 (I). The log2_min_qt_size_intra_slices_minus2 value must be between 0 and MaxTtLog2SizeY - 2 inclusive.

log2_min_qt_size_inter_slices_minus2 plus 2 определяет минимальный размер яркости листового блока, полученного в результате разделения дерева квадрантов CTU в сегментах с slice_type, равным 0 (B) или 1 (P). Значение log2_min_qt_size_inter_slices_minus2 должно быть в диапазоне от 0 до MaxTtLog2SizeY - 2 включительно.log2_min_qt_size_inter_slices_minus2 plus 2 defines the minimum size of the leaf block brightness resulting from splitting the CTU quadtree into slices with slice_type equal to 0 (B) or 1 (P). The log2_min_qt_size_inter_slices_minus2 value must be between 0 and MaxTtLog2SizeY - 2 inclusive.

Соответствующий способ кодирования, реализованный устройством для кодирования (декодером или кодером), может быть следующим:The corresponding encoding method implemented by the encoding device (decoder or encoder) may be as follows:

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

Если размер текущего блока не больше, чем минимально допустимый размер листового узла дерева квадрантов, к текущему блоку применяется разделение многотипного дерева;If the size of the current block is not larger than the minimum allowable size of a quadtree leaf node, a multitype tree split is applied to the current block;

В котором минимально допустимый размер листового узла дерева квадрантов не превышает максимально допустимый размер корневого узла двоичного дерева или минимально допустимый размер листового узла дерева квадрантов не превышает максимально допустимый размер корневого узла троичного дерева.Wherein the minimum allowable size of a leaf node of the quadtree does not exceed the maximum allowable size of a root node of a binary tree, or the minimum allowable size of a leaf node of a quadtree does not exceed the maximum allowable size of a root node of a ternary tree.

В качестве варианта, минимально допустимый размер листового узла дерева квадрантов не превышает максимально допустимый размер корневого узла двоичного дерева, и минимально допустимый размер листового узла дерева квадрантов не превышает максимально допустимый размер корневого узла троичного дерева.Alternatively, the minimum allowable size of a quadtree leaf node does not exceed the maximum allowable size of a binary tree root node, and the minimum allowable size of a quadtree leaf node does not exceed the maximum allowable size of a ternary tree root node.

В качестве варианта, применение множественного разделения дерева к текущему блоку, включающее в себя применение троичного разделения к текущему блоку или применение двоичного разделения к текущему блоку.Alternatively, applying a multiple tree split to the current block, including applying a ternary split to the current block or applying a binary split to the current block.

В качестве варианта, граничный блок может не содержать угловой блок.Alternatively, the border block may not contain a corner block.

ВАРИАНТ 4 ОСУЩЕСТВЛЕНИЯOPTION 4 IMPLEMENTATION

В других вариантах настоящего изобретения:In other embodiments of the present invention:

Если MaxBtSizeY> = MinQtSizeY, MinQtSizeY> MinTbLog2SizeY и MaxMttDepth <(MinQtLog2SizeY- MinTbLog2SizeY),If MaxBtSizeY >= MinQtSizeY, MinQtSizeY > MinTbLog2SizeY and MaxMttDepth <(MinQtLog2SizeY- MinTbLog2SizeY),

Если cbSize = MinQtsizeY, раздел не может достичь MinCbSizeY, в связи с отсутствием достаточного количества разрешенных уровней разделения многотипного дерева.If cbSize = MinQtsizeY, the partition cannot reach MinCbSizeY, due to not having enough split levels in the multitype tree.

Решение этой технической задачи неграничного случая или граничного случая: для решения упомянутой технической задачи нижняя граница MaxMttDepth должна быть ограничена (MinQtLog2SizeY- MinTbLog2SizeY) для обеспечения достаточного количества уровней разделения многотипного дерева после разделения QT как для граничного, так и для неграничного случая.Solving this technical problem of non-boundary case or edge case: To solve the mentioned technical problem, the lower bound of MaxMttDepth must be limited to (MinQtLog2SizeY- MinTbLog2SizeY) to ensure that there are enough split levels of the multitype tree after QT split for both edge and non-boundary cases.

Соответствующее изменение в тексте проекта находится в семантике max_mtt_hierarchy_depth_inter_slices и max_mtt_hierarchy_depth_intra_slices следующим образом:The corresponding change in the draft text is in the semantics of max_mtt_hierarchy_depth_inter_slices and max_mtt_hierarchy_depth_intra_slices as follows:

max_mtt_hierarchy_depth_inter_slices определяет максимальную глубину иерархии для блока кодирования, возникающих в результате разделения многотипного дерева листового дерева квадрантов в сегментах с slice_type, равным 0 (B) или 1 (P). Значение max_mtt_hierarchy_depth_inter_slices должно находиться в диапазоне от MinQtLog2SizeY-MinTbLog2SizeY до CtbLog2SizeY - MinTbLog2SizeY включительно.max_mtt_hierarchy_depth_inter_slices specifies the maximum hierarchy depth for an coding block resulting from splitting a multitype leaf tree quadtree into slices with slice_type equal to 0 (B) or 1 (P). The value of max_mtt_hierarchy_depth_inter_slices must be between MinQtLog2SizeY-MinTbLog2SizeY and CtbLog2SizeY - MinTbLog2SizeY inclusive.

max_mtt_hierarchy_depth_intra_slices определяет максимальную глубину иерархии для блока кодирования, возникающих в результате разделения многотипного дерева дерева листового дерева квадрантов в сегментах с slice_type, равным 2 (I). Значение max_mtt_hierarchy_depth_intra_slices должно находиться в диапазоне от MinQtLog2SizeY-MinTbLog2SizeY до CtbLog2SizeY - MinTbLog2SizeY включительно.max_mtt_hierarchy_depth_intra_slices specifies the maximum hierarchy depth for an coding block resulting from splitting a multitype leaf tree tree into quadtree segments with slice_type equal to 2 (I). The value of max_mtt_hierarchy_depth_intra_slices must be between MinQtLog2SizeY-MinTbLog2SizeY and CtbLog2SizeY - MinTbLog2SizeY inclusive.

Соответствующий способ кодирования, реализованный устройством для кодирования (декодером или кодером), может быть следующим:The corresponding encoding method implemented by the encoding device (decoder or encoder) may be as follows:

Разделение изображения на блоки;Dividing the image into blocks;

Применение разделения многотипного дерева к блоку блоков с конечной максимальной глубиной многотипного дерева, в котором конечная максимальная глубина многотипного дерева представляет собой сумму, по меньшей мере, максимальной глубины многотипного дерева и максимального смещения глубины многотипного дерева, в котором максимальная глубина многотипного дерева больше или равна вычитанию значения Log2 минимального допустимого размера блока преобразования из значения Log2 минимально допустимого размера листового узла дерева квадрантов, или максимальная глубина многотипного дерева больше, чем или равна вычитанию значения Log2 минимально допустимого размера блока кодирования из значения Log2 минимально допустимого размера листового узла дерева квадрантов.Applying a multitype tree split to a block of blocks with a finite maximum multitype tree depth, in which the final maximum multitype tree depth is the sum of at least the maximum multitype tree depth and a maximum offset depth of the multitype tree, in which the maximum multitype tree depth is greater than or equal to the subtraction the Log2 value of the minimum allowed transform block size from the Log2 value of the minimum allowed quadtree leaf node size, or the maximum depth of the multitype tree is greater than or equal to the subtraction of the Log2 value of the minimum allowed encoding block size from the Log2 value of the minimum allowed quadtree leaf node size.

В качестве варианта, блок не является граничным.Alternatively, the block is not a boundary.

В качестве варианта, максимальное смещение глубины многотипного дерева равно 0.Alternatively, the maximum depth offset of a multitype tree is 0.

В качестве варианта, блок является граничным блоком и разделение многотипного дерева является двоичным разделением.Alternatively, the block is a boundary block and the multitype tree split is a binary split.

В качестве варианта, разделение многотипного дерева является (или включает в себя) троичное разделение.Alternatively, a multitype tree split is (or includes) a ternary split.

В качестве варианта, граничный блок может не содержать угловой блок.Alternatively, the border block may not contain a corner block.

Варианты 1-4 осуществления могут применяться на стороне кодера для разделения изображения/кадра на блоки кодирования и для кодирования блоков кодирования. Варианты 1-4 осуществления могут применяться на стороне декодера для предоставления разделов изображения/кадра, а именно, блоков кодирования, и для декодирования блоков кодирования соответственно (например, правильного синтаксического анализа блоков кодирования из потока и их декодирования).Embodiments 1-4 may be applied at the encoder side to divide the image/frame into coding units and to encode coding units. Embodiments 1-4 may be applied at the decoder side to provide image/frame sections, namely coding blocks, and to decode coding blocks respectively (eg, correctly parse coding blocks from a stream and decode them).

Согласно некоторым вариантам осуществления предоставляется декодер, содержащий один или более процессоров; и постоянный машиночитаемый носитель данных, соединенный с процессорами и хранящий программы для выполнения процессорами, в котором программы, когда выполняется процессорами, конфигурирует декодер выполнить любой из способов, описанных выше со ссылкой на варианты 1-4 осуществления.According to some embodiments, a decoder is provided, comprising one or more processors; and a persistent computer-readable storage medium coupled to the processors and storing programs for execution by the processors, wherein the programs, when executed by the processors, configures the decoder to perform any of the methods described above with reference to Embodiments 1-4.

Более того, предоставляется кодер, содержащий один или более процессоров; и постоянный машиночитаемый носитель данных, соединенный с процессорами и хранящий программы для выполнения процессорами, в котором программы, когда выполняется процессорами, конфигурирует кодер выполнить любой из способов, описанных выше со ссылкой на варианты 1-4 осуществления.Moreover, an encoder comprising one or more processors is provided; and a persistent computer-readable storage medium coupled to the processors and storing programs for execution by the processors, wherein the programs, when executed by the processors, configures the encoder to perform any of the methods described above with reference to Embodiments 1-4.

Таким образом, предоставляется способ кодирования, реализуемый устройством декодирования, содержащий: определение, превышает ли размер текущего блока минимально допустимый размер листового узла дерева квадрантов; если размер текущего блока не больше, чем минимально допустимый размер листового узла дерева квадрантов, применение многотипного разделения дерева к текущему блоку; в котором минимально допустимый размер листового узла дерева квадрантов не превышает максимально допустимый размер корневого узла двоичного дерева или минимально допустимый размер листового узла дерева квадрантов не превышает максимально допустимый размер корневого узла троичного дерева.Thus, there is provided an encoding method implemented by a decoding apparatus, comprising: determining whether the size of the current block exceeds a minimum allowable size of a leaf node of the quadtree; if the size of the current block is not greater than the minimum allowable size of the leaf node of the quadtree, applying a multi-type tree split to the current block; in which the minimum allowable size of a leaf node of the quadtree does not exceed the maximum allowable size of the root node of a binary tree, or the minimum allowable size of a leaf node of the quadtree does not exceed the maximum allowable size of the root node of a ternary tree.

Данный подход способствует эффективному разделению и сигнализации параметров разделения для блоков изображения/видео.This approach facilitates efficient separation and signaling of separation parameters for image/video blocks.

Более того, в некоторых реализациях способ также содержит этапы определения, является ли текущий блок изображения граничным блоком. Если текущий блок является граничным и размер текущего блока не превышает минимально допустимый размер листового узла дерева квадрантов, способ также включает в себя применение к текущему блоку двоичного разделения. Следует отметить, что в этом случае минимально допустимый размер листового узла дерева квадрантов не превышает максимально допустимый размер корневого узла двоичного дерева. Например, если размер текущего блока не превышает минимально допустимый размер листового узла дерева квадрантов, вышеупомянутое применение разделения многотипного дерева к текущему блоку включает в себя применение к текущему блоку двоичного разделения, если текущий блок является граничным блоком и размер текущего блока не больше минимально допустимого размера листового узла дерева квадрантов.Moreover, in some implementations, the method also includes the steps of determining whether the current image block is a boundary block. If the current block is a boundary block and the size of the current block does not exceed the minimum allowable quadtree leaf node size, the method also includes applying a binary split to the current block. It should be noted that in this case the minimum allowable size of the leaf node of the quadtree does not exceed the maximum allowable size of the root node of the binary tree. For example, if the size of the current box does not exceed the minimum allowed size of a leaf node of the quadtree, the above application of a multitype tree split to the current box includes applying a binary split to the current box if the current box is a boundary box and the size of the current box is not greater than the minimum allowed size of a leaf node. quadtree node.

Обеспечение двоичного разделения может быть особенно выгодным для блоков на границе изображения/видеокадра, например, для блоков, разделенных границей. Таким образом, в некоторых реализациях может быть полезно применять подход для граничных блоков, а не применять его для остальных блоков. Однако настоящее изобретение не ограничивается этим, и, как упомянуто выше, также может применяться подход применения двоичного разделения для большей глубины разделения для неграничных блоков и эффективно сигнализироваться.Ensuring binary separation can be especially advantageous for blocks at an image/video frame boundary, such as blocks separated by a boundary. Thus, in some implementations it may be useful to apply the approach to the boundary boxes rather than to the rest of the boxes. However, the present invention is not limited to this, and as mentioned above, the approach of applying binary division for greater division depth for non-boundary blocks can also be applied and signaled efficiently.

В дополнение или в качестве альтернативы вышеупомянутым вариантам осуществления минимально допустимый размер листового узла дерева квадрантов не превышает максимально допустимый размер корневого узла двоичного дерева, и минимально допустимый размер листового узла дерева квадрантов не превышает максимально допустимый размер корневого узла троичного дерева.In addition to or alternatively to the above embodiments, the minimum allowable quadtree leaf node size does not exceed the maximum allowable binary tree root node size, and the minimum allowable quadtree leaf node size does not exceed the maximum allowable ternary tree root node size.

Применение многотипного разделения дерева к текущему блоку может включать в себя применение к текущему блоку троичного разделения или применение двоичного разделения к текущему блоку. Однако настоящее изобретение этим не ограничивается и, в общем, многотипное разделение дерева может также включать в себя дополнительные или другие различные типы разделения.Applying a multi-type tree split to the current block may include applying a ternary split to the current block, or applying a binary split to the current block. However, the present invention is not limited to this and, in general, a multi-type tree partition may also include additional or other different partition types.

Способ может дополнительно включать в себя определение максимально допустимого размера корневого узла двоичного дерева на основании минимально допустимого размера листового узла дерева квадрантов. Это облегчает эффективную сигнализацию/хранение параметров. Например, максимально допустимый размер корневого узла двоичного дерева может считаться равным минимально допустимому размеру листового узла дерева квадрантов. Однако настоящее изобретение этим не ограничивается, и можно предположить другое соотношение для получения максимально допустимого размера корневого узла двоичного дерева.The method may further include determining a maximum allowable size of a root node of the binary tree based on a minimum allowable size of a leaf node of the quadtree. This facilitates efficient signaling/storage of parameters. For example, the maximum allowable size of a root node of a binary tree can be considered equal to the minimum allowable size of a leaf node of a quadtree. However, the present invention is not limited to this, and another relationship can be assumed to obtain the maximum allowable size of the root node of a binary tree.

Согласно примерному варианту осуществления, в дополнение или в качестве альтернативы к вышеописанным вариантам осуществления, способ может содержать этапы разделения изображения на блоки, в котором блоки содержат текущий блок. Применение двоичного разделения к текущему блоку содержит применение двоичного разделения к граничному блоку с максимальной граничной глубиной многотипного разделения, в котором максимальная граничная глубина многотипного разделения представляет собой сумму, по меньшей мере, максимальной глубины многотипного дерева и максимального смещения глубины многотипного дерева, в котором максимальная глубина многотипного дерева больше 0. Более того, в некоторых реализациях максимальная глубина многотипного дерева больше 0 при применении двоичного разделения к граничному блоку.According to an exemplary embodiment, in addition to or as an alternative to the above embodiments, the method may comprise the steps of dividing an image into blocks, in which the blocks contain the current block. Applying a binary split to the current block comprises applying a binary split to a boundary box with a maximum multitype split boundary depth, wherein the maximum multitype split boundary depth is the sum of at least the maximum multitype tree depth and a maximum multitype tree depth offset, wherein the maximum depth multitype tree is greater than 0. Moreover, in some implementations, the maximum depth of a multitype tree is greater than 0 when applying binary splitting to a boundary box.

Согласно варианту осуществления способ включает в себя разделение изображения на блоки (блоки, содержащие текущий блок). Применение разделения многотипного дерева к текущему блоку включает в себя применение разделения многотипного дерева к текущему блоку блоков с конечной максимальной глубиной многотипного дерева, в котором конечная максимальная глубина многотипного дерева является суммой, по меньшей мере, максимальной глубины многотипного дерева и максимального смещения глубины многотипного дерева, в котором максимальная глубина многотипного дерева больше или равна вычитанию значения Log2 минимального допустимого размера блока преобразования из значения Log2 минимально допустимого размера листового узла дерева квадрантов, или максимальная глубина многотипного дерева больше или равна вычитанию значения Log2 минимально допустимого размера блока кодирования из значения Log2 минимально допустимого размера листового узла дерева квадрантов. Это облегчает дополнительное разделение даже при больших глубинах разделения.According to an embodiment, the method includes dividing the image into blocks (blocks containing the current block). Applying a multitype tree split to the current block includes applying a multitype tree split to the current block of blocks with a finite maximum multitype tree depth, wherein the final maximum multitype tree depth is the sum of at least the maximum multitype tree depth and the maximum offset of the multitype tree depth, in which the maximum depth of the multitype tree is greater than or equal to the subtraction of the Log2 value of the minimum allowed transform block size from the Log2 value of the minimum allowed size of the quadtree leaf node, or the maximum depth of the multitype tree is greater than or equal to the subtraction of the Log2 value of the minimum allowed encoding block size from the Log2 value of the minimum allowed size leaf node of the quadtree. This facilitates additional separation even at large separation depths.

Текущий блок может быть неграничным блоком. Максимальное смещение глубины многотипного дерева может быть 0. Текущий блок может быть, альтернативно или дополнительно, граничным блоком, и многотипное разделение дерева является двоичным разделением. Разделение многотипного дерева может быть троичным или включать в себя троичное разделение.The current block may be a non-boundary block. The maximum depth offset of a multitype tree may be 0. The current block may alternatively or additionally be a boundary box, and the multitype tree split is a binary split. A multitype tree split can be ternary or include a ternary split.

Согласно варианту осуществления предоставляется способ кодирования, содержащий этапы: определения, превышает ли размер текущего блока минимально допустимый размер листового узла дерева квадрантов; если размер текущего блока не больше, чем минимально допустимый размер листового узла дерева квадрантов, применение многотипного разделения дерева к текущему блоку; в котором минимально допустимый размер листового узла дерева квадрантов не превышает максимально допустимый размер корневого узла двоичного дерева или минимально допустимый размер листового узла дерева квадрантов не превышает максимально допустимый размер корневого узла троичного дерева.According to an embodiment, an encoding method is provided, comprising the steps of: determining whether the size of the current block exceeds a minimum allowable size of a leaf node of the quadtree; if the size of the current block is not greater than the minimum allowable size of the leaf node of the quadtree, applying a multi-type tree split to the current block; in which the minimum allowable size of a leaf node of the quadtree does not exceed the maximum allowable size of the root node of a binary tree, or the minimum allowable size of a leaf node of the quadtree does not exceed the maximum allowable size of the root node of a ternary tree.

В способе кодирования могут применяться любые из вышеупомянутых правил и ограничений, описанных в отношении способа декодирования. Поскольку сторона кодера и сторона декодера должны совместно использовать битовый поток. В частности, сторона кодирования генерирует битовый поток после кодирования разделов, полученных в результате разделения, описанного выше, в то время как сторона декодирования анализирует битовый поток и соответственно восстанавливает декодированные разделы. То же самое относится к вариантам осуществления, относящимся к устройству для кодирования (кодеру) и устройству для декодирования (декодеру), описанным ниже.The encoding method may apply any of the above rules and restrictions described in relation to the decoding method. Because the encoder side and the decoder side must share the bitstream. Specifically, the encoding side generates a bitstream after encoding sections resulting from the division described above, while the decoding side parses the bitstream and reconstructs the decoded sections accordingly. The same applies to the embodiments relating to the encoding device (encoder) and the decoding device (decoder) described below.

Согласно варианту осуществления предоставляется устройство для декодирования, содержащее схему, выполненную с возможностью: определять, превышает ли размер текущего блока минимально допустимый размер листового узла дерева квадрантов; если размер текущего блока не превышает минимально допустимый размер листового узла дерева квадрантов, применить к текущему блоку разделение многотипного дерева; в котором минимально допустимый размер листового узла дерева квадрантов не превышает максимально допустимый размер корневого узла двоичного дерева или минимально допустимый размер листового узла дерева квадрантов не превышает максимально допустимый размер корневого узла троичного дерева. Следует отметить, что определение того, превышает ли размер текущего блока минимально допустимый размер листового узла дерева квадрантов, может выполняться на основании сигнализации в битовом потоке на стороне декодирования.According to an embodiment, a device for decoding is provided, comprising a circuit configured to: determine whether the size of the current block exceeds a minimum allowable size of a leaf node of the quadtree; if the size of the current block does not exceed the minimum allowable size of the leaf node of the quadtree, apply a multitype tree split to the current block; in which the minimum allowable size of a leaf node of the quadtree does not exceed the maximum allowable size of the root node of a binary tree, or the minimum allowable size of a leaf node of the quadtree does not exceed the maximum allowable size of the root node of a ternary tree. It should be noted that the determination of whether the size of the current block exceeds the minimum allowable size of the leaf node of the quadtree may be performed based on the signaling in the bitstream on the decoding side.

Также предоставляется устройство для кодирования, которое содержит схему, выполненную с возможностью: определять, превышает ли размер текущего блока минимально допустимый размер листового узла дерева квадрантов; если размер текущего блока не превышает минимально допустимый размер листового узла дерева квадрантов, применить к текущему блоку разделение многотипного дерева; в котором минимально допустимый размер листового узла дерева квадрантов не превышает максимально допустимый размер корневого узла двоичного дерева или минимально допустимый размер листового узла дерева квадрантов не превышает максимально допустимый размер корневого узла троичного дерева.An encoder is also provided, which includes a circuit configured to: determine whether the size of the current block exceeds the minimum allowable size of the leaf node of the quadtree; if the size of the current block does not exceed the minimum allowable size of the leaf node of the quadtree, apply a multitype tree split to the current block; in which the minimum allowable size of a leaf node of the quadtree does not exceed the maximum allowable size of the root node of a binary tree, or the minimum allowable size of a leaf node of the quadtree does not exceed the maximum allowable size of the root node of a ternary tree.

Согласно варианту осуществления предоставляется постоянный машиночитаемый носитель данных, хранящий программы для выполнения схемой обработки, в котором программы при выполнении схемой обработки, конфигурирует схему обработки выполнить любой из упомянутых выше способов.According to an embodiment, a persistent computer-readable storage medium is provided for storing programs to be executed by the processing circuit, in which the programs, when executed by the processing circuit, configures the processing circuit to perform any of the methods mentioned above.

Описанные в настоящем изобретении устройства, могут содержать схемы обработки для выполнения различных операций и способов, описанных в данном документе. Схема обработки может содержать аппаратное и программное обеспечение. Например, схема обработки может содержать один или более процессоров и энергонезависимую память, подключенную к одному или нескольким процессорам. Память может содержать программный код, который при выполнении одним или более процессорами побуждают устройство выполнять указанные операции или способы.The devices described herein may include processing circuits for performing the various operations and methods described herein. The processing circuit may comprise hardware and software. For example, the processing circuit may include one or more processors and non-volatile memory coupled to one or more processors. The memory may contain program code that, when executed by one or more processors, causes the device to perform specified operations or methods.

Изобретение было описано с использованием различных вариантов осуществления, как примеры, так и реализации. Однако специалистам в данной области техники очевидно, что возможный другие вариации, которые могут применять настоящее изобретение на практике на основании изучения чертежей, описания изобретения и независимых пунктов формулы изобретения. В формуле изобретения, а также в описании слово «содержащий» не исключает других элементов или этапов, неопределенный артикль «а» или «an» не исключает множественность. Один элемент или другой блок может выполнять функции нескольких объектов или объектов, указанных в формуле изобретения. Сам факт того, что определенные меры изложены во взаимно различных зависимых пунктах формулы изобретения, не означает, что не может быть использована комбинация этих мер в преимущественной реализации.The invention has been described using various embodiments, both examples and implementations. However, it will be apparent to those skilled in the art that other variations are possible that may put the present invention into practice based on examination of the drawings, the description of the invention, and the independent claims. In the claims, as well as in the description, the word "comprising" does not exclude other elements or steps, the indefinite article "a" or "an" does not exclude plurality. One element or other block can perform the functions of several objects or objects specified in the claims. The mere fact that certain measures are set forth in mutually different dependent claims does not mean that a combination of these measures cannot be used in an advantageous implementation.

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

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

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

В системе 3100 поставки контента оконечное устройство 310 принимает и воспроизводит закодированные данные. Оконечное устройство 3106 может быть устройством, выполненным с возможностью принимать и восстанавливать данные, таким как смартфон или планшет 3108, компьютер или ноутбук 3110, сетевой видеорегистратор (NVR)/цифровой видеомагнитофон (DVR) 3112, телевизор 3114, телеприставка (STB) 3116, система 3118 видеоконференцсвязи, система 3120 видеонаблюдения, персональный цифровой помощник (PDA) 3122, устройство 3124, установленное на транспортном средстве, или их комбинация или тому подобное, выполненное с возможностью декодировать вышеупомянутые закодированные данные. Например, оконечное устройство 3106 может включать в себя устройство 14 назначение, как описано выше. Когда кодированные данные включают в себя видео, для выполнения декодирования видео предоставляется приоритет видеодекодеру 30, содержащемуся в оконечном устройстве. Когда кодированные данные включают в себя звук, аудиодекодер, содержащийся в оконечном устройстве, получает приоритет для выполнения обработки декодирования звука.In the content delivery system 3100, the terminal device 310 receives and reproduces the encoded data. Terminal device 3106 may be a device capable of receiving and recovering data, such as a smartphone or tablet 3108, a computer or laptop 3110, a Network Video Recorder (NVR)/Digital Video Recorder (DVR) 3112, a television 3114, a set-top box (STB) 3118 videoconferencing system 3120 video surveillance system 3120 personal digital assistant (PDA) 3122 device 3124 installed on the vehicle, or a combination or the like, configured to decode the above encoded data. For example, terminal 3106 may include destination 14 as described above. When the encoded data includes video, priority is given to the video decoder 30 contained in the terminal to perform video decoding. When the encoded data includes audio, the audio decoder contained in the terminal is given priority to perform audio decoding processing.

Для оконечного устройства с дисплеем, например, смартфона или планшета 3108, компьютера или ноутбука 3110, сетевого видеорегистратора (NVR)/цифрового видеомагнитофона (DVR) 3112, телевизора 3114, персонального цифрового помощника (PDA) 3122 или устройства 3124, установленного на транспортном средстве, оконечное устройство может передавать декодированные данные на свой дисплей. Для оконечного устройства, не оборудованного дисплеем, например, STB 3116, система 3118 видеоконференцсвязи или система 3120 видеонаблюдения, в нем устанавливается контакт с внешним дисплеем 3126 для приема и отображения декодированных данных.For a display terminal such as a 3108 Smartphone or Tablet, 3110 Computer or Laptop, 3112 Network Video Recorder (NVR)/DVR (DVR), 3114 TV, 3122 Personal Digital Assistant (PDA), or 3124 Vehicle Mounted Device, the terminal may transmit the decoded data to its display. For a terminal device not equipped with a display, such as STB 3116, video conferencing system 3118 or video surveillance system 3120, it establishes contact with an external display 3126 to receive and display decoded data.

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

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

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

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

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

При наличии субтитр в потоке, декодер 3210 субтитров декодирует субтитры и синхронизирует их с видеокадром и звуковым кадром и передает видео/аудио/субтитры в дисплей 3216 видео/аудио/субтитров.If there is a subtitle in the stream, the subtitle decoder 3210 decodes the subtitles and synchronizes them with the video frame and audio frame and passes the video/audio/subtitles to the video/audio/subtitle display 3216.

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

Хотя варианты осуществления изобретения были в основном описаны на основании кодирования видео, следует отметить, что варианты осуществления системы 10 кодирования, кодера 20 и декодера 30 (и, соответственно, системы 10) и другие варианты осуществления, описанные в данном документе, также могут быть выполнены с возможностью обработки или кодирования неподвижного изображения, то есть обработка или кодирование отдельного изображения независимо от любого предшествующего или последующего изображения, как при кодировании видео. В общем, если обработка кодирования изображения ограничена одним изображением 17, в случае могут быть недоступны только блоки 244 (кодер) и 344 (декодер) внешнего предсказания. Все другие функции (также называемые инструментами или технологиями) видеокодера 20 и видеодекодер 30 могут в равной степени использоваться для обработки неподвижных изображений, например, вычисление остатка 204/304, преобразование 206, квантование 208, обратное квантование 210/310, (обратное) преобразование 212/312, разделение 262/362, внутреннее предсказание 254/354 и/или контурная фильтрация 220, 320 и энтропийное кодирование 270 и энтропийное декодирование 304.Although embodiments of the invention have been primarily described in terms of video coding, it should be noted that the embodiments of encoding system 10, encoder 20, and decoder 30 (and system 10, respectively) and other embodiments described herein can also be performed. capable of processing or encoding a still image, that is, processing or encoding a single image independently of any previous or subsequent image, as in video encoding. In general, if the image encoding processing is limited to one image 17, only inter prediction blocks 244 (encoder) and 344 (decoder) may be unavailable in the case. All other functions (also referred to as tools or technologies) of video encoder 20 and video decoder 30 can equally be used for still picture processing, e.g. /312, split 262/362, intra prediction 254/354, and/or loop filtering 220, 320 and entropy coding 270 and entropy decoding 304.

Варианты осуществления, например, кодера 20 и декодера 30, а также описанные здесь функции, например, применительно к кодеру 20 и декодеру 30 могут быть реализованы аппаратным обеспечением, программным обеспечением, встроенным программным обеспечением или любой их комбинацией. Если реализованы в программном обеспечении, функции могут храниться на машиночитаемом носителе или передаваться через среду связи в виде одной или более инструкций или кода и выполняться аппаратным процессором. Машиночитаемый носитель может содержать в себя машиночитаемый носитель данных, который соответствует материальному носителю, например, носителю данных, или носителю связи, включающему в себя любой носитель, который облегчает передачу компьютерной программы из одного места в другое, например, в соответствии с протоколом связи. Таким образом, машиночитаемые носители обычно могут соответствовать (1) материальным машиночитаемым носителям данных, которые являются энергонезависимыми, или (2) средам связи, таким как сигнал или несущая волна. Носители данных могут быть любыми доступными носителями, к которым может получить доступ один или более компьютеров или один или более процессоров для извлечения инструкций, кода и/или структур данных для реализации способов, описанных в настоящем изобретении. Компьютерный программный продукт может содержать в себя машиночитаемый носитель.Embodiments of, for example, encoder 20 and decoder 30, as well as the functions described herein, for example, in relation to encoder 20 and decoder 30, may be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, the functions may be stored on a computer-readable medium or transmitted over a communication medium as one or more instructions or code and executed by a hardware processor. 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, for example, in accordance with 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, and/or data structures for implementing the methods described in the present invention. The computer program product may include a computer-readable medium.

Следующие логические операторы или математические операторы определяются следующим образом:The following logical operators or mathematical operators are defined as follows:

Математические операторы, используемые в настоящем изобретении, аналогичны тем, которые используются в языке программирования C. Однако результаты операций целочисленного деления и арифметического сдвига определены более точно, и определены дополнительные операции, такие как возведение в степень и деление с действительным знаком. Правила нумерации и подсчета обычно начинаются с 0, например, «первый» эквивалентен 0-му, «второй» эквивалентен 1-му и т.д.The mathematical operators used in the present invention are similar to those used in the C programming language. However, the results of integer division and arithmetic shift operations are more precisely defined, and additional operations such as exponentiation and real-valued division are defined. Numbering and counting rules usually start from 0, for example, "first" is equivalent to 0, "second" is equivalent to 1, and so on.

Арифметические операторыArithmetic operators

Определены следующие арифметические операторы следующим образом:The following arithmetic operators are defined as follows:

+ Дополнение+ Supplement

- Вычитание (как оператор с двумя аргументами) или отрицание (как унарный оператор префикса)- Subtraction (as a two-argument operator) or negation (as a unary prefix operator)

* Умножение, включающее в себя умножение матриц* Multiplication including matrix multiplication

xy Возведение в степень. Указывает x в степени y. В других контекстах такое обозначение используется для надстрочного индекса, а не для интерпретации как возведения в степень.x y Exponentiation. Specifies x to the power of y. In other contexts, such a notation is used for superscript rather than for interpretation as exponentiation.

/ Целочисленное деление с отсечением результата в сторону нуля. Например, 7/4 и -7 / -4 отсекаются до 1, -7/4 и 7/-4 усекаются до -1./ Integer division with result clipping towards zero. For example, 7/4 and -7/-4 are truncated to 1, -7/4 and 7/-4 are truncated to -1.

÷ Используется для обозначения деления в математических уравнениях, где не предполагается отсечение или округление.÷ Used to indicate division in mathematical equations where no clipping or rounding is expected.

Figure 00000001
Используется для обозначения деления в математических уравнениях, где не предполагается отсечение или округление.
Figure 00000001
Used to indicate division in mathematical equations where no clipping or rounding is expected.

Figure 00000002
Суммирование f (i), где i принимает все целые значения от x до y включительно.
Figure 00000002
Summation f (i), where i takes all integer values from x to y inclusive.

x % y Модуль. Остаток от x, деленный на y, определен только для целых чисел x и y, где x> = 0 и y> 0.x % y Module. The remainder of x divided by y is only defined for integers x and y where x>=0 and y>0.

Логические операторыLogical operators

Определены следующие логические операторы следующим образом:The following logical operators are defined as follows:

x && y Булевская логическая операция «и» x и yx && y Boolean logical operation "and" x and y

х | | y Булевская логическая операция «или» x и yx | | y Boolean logical operation "or" x and y

! Булевская логическая операция «не»! Boolean logical operation "not"

x ? y : z Если x является TRUE или не равен 0, вычисляется значение y; в противном случае, вычисляется значение z.x? y : z If x is TRUE or not equal to 0, the value of y is evaluated; otherwise, the z value is calculated.

Операторы отношенияRelational Operators

Определены следующие операторы отношения следующим образом:The following relational operators are defined as follows:

> Больше чем> more than

> = Больше или равно> = Greater than or equal

< Менее чем< Less than

<= Меньше или равно<= Less than or equal

= = Равно= = Equal

!= Не равно!= Not equal

Когда применяется оператор отношения к элементу синтаксиса или переменной, которой присвоено значение «na» (не применимо), значение «na» обрабатывается как отдельное значение для элемента синтаксиса или переменной. Значение «na» не считается равным любому другому значению.When a relational operator is applied to a syntax element or variable that has been assigned the value "na" (not applicable), the value "na" is treated as a separate value for the syntax element or variable. The value "na" is not considered equal to any other value.

Побитовые операторыBitwise Operators

Определены следующие побитовые операторы следующим образом:The following bitwise operators are defined as follows:

& Побитовое «и». При работе с целочисленными аргументами оперирует дополнительным до двух представлением целочисленного значения. При работе с двоичным аргументом, который содержит меньше битов, чем другой аргумент, более короткий аргумент расширяется путем добавления более значимых битов, равных 0.& Bitwise "and". When used with integer arguments, operates on two's complement representation of the integer value. When working with a binary argument that contains fewer bits than another argument, the shorter argument is expanded by adding more significant bits equal to 0.

| Побитовое «или». При работе с целочисленными аргументами оперирует дополнительным до двух представлением целочисленного значения. При работе с двоичным аргументом, который содержит меньше битов, чем другой аргумент, более короткий аргумент расширяется путем добавления более значимых битов, равных 0.| Bitwise "or". When used with integer arguments, operates on two's complement representation of the integer value. When working with a binary argument that contains fewer bits than another argument, the shorter argument is expanded by adding more significant bits equal to 0.

^ Побитовое «исключающее ИЛИ». При работе с целочисленными аргументами оперирует дополнительным до двух представлением целочисленного значения. При работе с двоичным аргументом, который содержит меньше битов, чем другой аргумент, более короткий аргумент расширяется путем добавления более значимых битов, равных 0.^ Bitwise "XOR". When used with integer arguments, operates on two's complement representation of the integer value. When working with a binary argument that contains fewer bits than another argument, the shorter argument is expanded by adding more significant bits equal to 0.

x >> y Арифметический сдвиг вправо целочисленного представления x с двоичным дополнением на y двоичных цифр. Эта функция определена только для неотрицательных целых значений y. Биты, сдвинутые в старшие значащие биты (MSBs) в результате сдвига вправо, имеют значение, равное MSB x до операции сдвига.x >> y Arithmetic right shift of the integer representation of x with y's complement of binary digits. This function is only defined for non-negative integer y values. The bits shifted into the most significant bits (MSBs) as a result of a right shift have a value equal to MSB x before the shift operation.

x<<y Арифметический сдвиг влево целочисленного представления x с дополнением до двух на y двоичных цифр. Эта функция определена только для неотрицательных целых значений y. Биты, сдвинутые в младшие значащие биты (LSBs) в результате сдвига влево, имеют значение, равное 0.x<<y Arithmetic left shift of the integer representation of x with two's complement of y binary digits. This function is only defined for non-negative integer y values. The bits shifted into the least significant bits (LSBs) as a result of a left shift have a value of 0.

Операторы присваиванияAssignment operators

Определены следующие операторы присвоения следующим образом:The following assignment operators are defined as follows:

= Оператор присваивания= Assignment operator

+ + Приращение, т.е. x + + эквивалентно x = x + 1; при использовании в индексе массива, оценивает значение переменной до операции приращения.++ Increment, i.e. x + + is equivalent to x = x + 1; when used in an array index, evaluates the value of the variable before the increment operation.

- - Декремент, т.е. x-- эквивалентен x = x - 1; при использовании в индексе массива оценивает значение переменной до операции декремента.- - Decrement, i.e. x-- is equivalent to x = x - 1; when used in an array index, evaluates the value of the variable before the decrement operation.

+ = Приращение на указанную величину, т.е. x + = 3 эквивалентно x = x + 3, и x + = (−3) эквивалентно x = x + (−3).+ = Increment by the specified amount, i.e. x + = 3 is equivalent to x = x + 3, and x + = (−3) is equivalent to x = x + (−3).

- = Декремент на указанную величину, т.е. х - = 3 эквивалентно x = x - 3, и x - = (−3) эквивалентно x = x - (−3).- = Decrement by the specified amount, i.e. x - = 3 is equivalent to x = x - 3, and x - = (−3) is equivalent to x = x - (−3).

Указание диапазонаSpecifying a Range

Для указания диапазона значений используются следующие обозначения:The following notation is used to indicate the range of values:

x = y..z x принимает целые значения от y до z включительно, где x, y и z являются целыми числами, и z больше y.x = y..z x takes integer values from y to z inclusive, where x, y and z are integers and z is greater than y.

Математические функцииMath functions

Определены следующие математические функции:The following mathematical functions are defined:

Abs (x) =

Figure 00000003
abs(x)=
Figure 00000003

Asin (x) тригонометрическая обратная синусоидальная функция, работающая с аргументом x, в диапазоне от -1,0 до 1,0 включительно, с выходным значением в диапазоне −π ÷ 2 до π ÷ 2 включительно в радианахAsin (x) trigonometric inverse sine function operating on argument x, in the range -1.0 to 1.0 inclusive, with an output value in the range −π ÷ 2 to π ÷ 2 inclusive in radians

Atan (x) тригонометрическая функция арктангенса, действующая на аргумент x, с выходным значением в диапазоне −π ÷ 2 до π ÷ 2 включительно в радианахAtan (x) trigonometric arc tangent function acting on the argument x, with an output value in the range −π ÷ 2 to π ÷ 2 inclusive in radians

Atan2 (y, x) =

Figure 00000004
atan2(y, x) =
Figure 00000004

Ceil (x) наименьшее целое число, большее или равное x.Ceil(x) is the smallest integer greater than or equal to x.

Clip1Y (x) = Clip3 (0, (1 << BitDepthY) - 1, x)Clip1Y(x) = Clip3(0, (1 << BitDepthY) - 1, x)

Clip1C (x) = Clip3 (0, (1 << BitDepthC) - 1, x)Clip1C(x) = Clip3(0, (1 << BitDepthC) - 1, x)

Clip3 (x, y, z) =

Figure 00000005
Clip3(x, y, z) =
Figure 00000005

Cos (x) тригонометрическая функция косинуса, оперирующая аргументом x в радианах.Cos (x) is a trigonometric cosine function operating on the x argument in radians.

Floor (x) наибольшее целое число, меньшее или равное x.Floor(x) is the largest integer less than or equal to x.

GetCurrMsb (a, b, c, d) =

Figure 00000006
GetCurrMsb (a, b, c, d) =
Figure 00000006

Ln (x) натуральный логарифм x (логарифм с основанием e, где e является постоянная с основанием натурального логарифма 2,718 281 828 ...).Ln(x) is the natural logarithm of x (logarithm with base e, where e is a constant with base natural logarithm 2.718 281 828 ...).

Log2 (x) логарифм x по основанию 2.Log2(x) base 2 logarithm of x.

Log10 (x) десятичный логарифм числа x.Log10(x) is the base 10 logarithm of the number x.

Min (x, y) =

Figure 00000007
Min(x, y) =
Figure 00000007

Max (x, y) =

Figure 00000008
Max(x, y) =
Figure 00000008

Round( x ) = Sign( x ) * Floor( Abs( x ) + 0.5 )Round( x ) = Sign( x ) * Floor( Abs( x ) + 0.5 )

Sign(x) =

Figure 00000009
Sign(x) =
Figure 00000009

Sin (x) тригонометрическая функция синуса, оперирующая аргументом x в радианах.Sin (x) trigonometric sine function, operating on the x argument in radians.

Sqrt( x ) =

Figure 00000010
Sqrt( x ) =
Figure 00000010

Swap( x, y ) = ( y, x ) Swap( x, y ) = ( y, x )

Tan (x) тригонометрическая функция тангенса, действующая на аргумент x в радианах.Tan (x) is a trigonometric tangent function acting on the x argument in radians.

Порядок приоритетности операцийOperation Priority Order

Если порядок приоритета в выражении явно не указан с помощью круглых скобок, применяются следующие правила:If the order of precedence in an expression is not explicitly specified using parentheses, the following rules apply:

- оцениваются операции с более высоким приоритетом перед любой операцией с более низким приоритетом.- operations with a higher priority are evaluated before any operation with a lower priority.

- операции с одинаковым приоритетом оцениваются последовательно слева направо.- Operations with the same priority are evaluated sequentially from left to right.

В таблице ниже указан приоритет операций от наивысшего к низшему; более высокая позиция в таблице указывает на более высокий приоритет.The table below lists the priority of operations from highest to lowest; a higher position in the table indicates a higher priority.

Для тех операторов, которые также используются в языке программирования C, порядок приоритета, используемый в этой спецификации, такой же, как и в языке программирования C.For those operators that are also used in the C programming language, the order of precedence used in this specification is the same as in the C programming language.

Таблица: Приоритет операций от наивысшего (вверху таблицы) до самого низкого (внизу таблицы)Table: Priority of operations from highest (top of table) to lowest (bottom of table)

Операции (с операндами x, y и z)Operations (with operands x, y and z) "x++", "x− −""x++", "x−−" "!x", "−x" (как унарный префиксный оператор)"!x", "−x" (as unary prefix operator) xy x y "x * y", "x / y", "x ÷ y", "

Figure 00000011
", "x % y""x * y", "x / y", "x ÷ y", "
Figure 00000011
", "x % y" "x + y", "x − y" (как оператор с двумя аргументами), "
Figure 00000012
"
"x + y", "x − y" (as a two-argument operator), "
Figure 00000012
"
"x  <<  y", "x  >>  y""x<<y", "x>>y" "x < y", "x  <=  y", "x > y", "x  >=  y""x < y", "x <= y", "x > y", "x >= y" "x  = =  y", "x  !=  y""x == y", "x != y" "x & y""x & y" "x | y""x | y" "x  &&  y""x && y" "x  | |  y""x|||y" "x ? y : z""x? y: z" "x..y""x..y" "x = y", "x  +=  y", "x  −=  y""x = y", "x += y", "x -= y"

Текстовое описание логических операцийText description of logical operations

В тексте приведено описание логических операций, которое математически описывается в следующей форме:The text contains a description of logical operations, which is mathematically described in the following form:

If (условие 0)if (condition 0)

выражение 0expression 0

else if (условие 1)else if (condition 1)

выражение 1expression 1

......

else / * информативное замечание по оставшемуся условию * /else / * informative note on the remaining condition * /

выражение nexpression n

можно описать следующим образом:can be described as follows:

... как указано ниже / ... применяется следующее:... as below / ... the following applies:

- if условие 0, выражение 0- if condition 0, expression 0

- в противном случае, if условие 1, выражение 1- otherwise, if condition 1, expression 1

- ...- ...

- в противном случае (информативное замечание по оставшемуся условию), выражение n- otherwise (informative remark on the remaining condition), the expression n

Каждое из «Если ... В противном случае, если ... В противном случае ...» в тексте начинается с «... как указано ниже» или «... применяется следующее», сразу за которым следует «Если ...». Последним условием «Если ... В противном случае, если ... Иначе, ...» всегда является «В противном случае ...». Перемежающиеся операторы «Если ... В противном случае, если ... В противном случае ...» могут быть идентифицированы путем сопоставления «... следующим образом» или «... применяется следующее» с окончанием «В противном случае ...».Each of the "If... Otherwise, if... Otherwise..." in the text starts with "... as specified below" or "... the following applies", immediately followed by "If . ..". The last condition "If... Otherwise, if... Else,..." is always "Otherwise...". Interleaved "If... Otherwise, if... Otherwise..." statements can be identified by matching "... as follows" or "... the following applies" with the ending "Otherwise.. .".

В тексте изложение логических операций, которое математически описывается в следующей форме:The text contains a statement of logical operations, which is mathematically described in the following form:

If (условие 0a && условие 0b)If(condition 0a && condition 0b)

выражение 0expression 0

else if (условие 1a | | условие 1b)else if (condition 1a | | condition 1b)

выражение 1expression 1

......

elseelse

выражение nexpression n

можно описать следующим образом:can be described as follows:

... как указано ниже / ... применяется следующее:... as below / ... the following applies:

- если все следующие условия верны, выражение 0:- if all of the following conditions are true, the expression is 0:

- условие 0a- condition 0a

- условие 0b- condition 0b

- В противном случае, если выполняется одно или более из следующих условий, выражение 1:- Otherwise, if one or more of the following conditions are met, expression 1:

- условие 1а- condition 1a

- условие 1b- condition 1b

- ...- ...

- в противном случае выражение n- otherwise the expression n

В тексте изложение логических операций, которое математически описывается в следующей форме:The text contains a statement of logical operations, which is mathematically described in the following form:

if (условие 0)if (condition 0)

выражение 0expression 0

if (условие 1)if (condition 1)

выражение 1expression 1

можно описать следующим образом:can be described as follows:

когда условие 0, выражение 0when condition is 0, expression is 0

когда условие 1, выражение 1when condition 1, expression 1

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

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

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

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

JEM - совместная модель исследованияJEM - Collaborative Exploration Model

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

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

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

TT - троичное деревоTT - ternary tree

QT - дерево квадрантов или четвертичное деревоQT - quadtree 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 – SubCore эксперимент (часть основного эксперимента).SubCE - SubCore experiment (part of the main experiment).

Claims (40)

1. Устройство декодирования битового потока (101) видео, содержащее схему, выполненную с возможностью:1. A video bitstream decoding device (101), comprising a circuit configured to: получения из битового потока (101) элементов синтаксиса;obtaining from the bitstream (101) syntax elements; получения информации для минимального размера в выборках яркости листового блока яркости, полученного в результате разделения дерева квадрантов, MinQtSizeY (105);obtaining information for a minimum size in luminance samples of a luminance leaf block resulting from a splitting of the quadtree, MinQtSizeY (105); определения максимального размера в выборках яркости корневого блока яркости, так что он может быть разделен с использованием разделения двоичного дерева, MaxBtSizeY (102) на основании информации MinQtSizeY (105) и полученного элемента синтаксиса;determining a maximum size in luminance samples of the root luminance block such that it can be partitioned using binary tree partitioning, MaxBtSizeY (102) based on the information MinQtSizeY (105) and the resulting syntax element; определения, разрешено ли применение двоичного разделение к блоку изображения на основе MaxBtSizeY (102); иdetermining whether binary division is allowed to be applied to the image block based on MaxBtSizeY (102); and получения блока кодирования блока изображения на основе результата определения; причемobtaining a coding block of the image block based on the determination result; and элемент синтаксиса представляет собой элемент (301) синтаксиса разницы между логарифмом по основанию 2 MinQtSizeY (105) и логарифмом по основанию 2 MaxBtSizeY (102); илиthe syntax element is a syntax element (301) of the difference between the base 2 logarithm MinQtSizeY (105) and the base 2 logarithm MaxBtSizeY (102); or элемент синтаксиса представляет собой элемент (301) синтаксиса разницы между MinQtSizeY (105) и MaxBtSizeY (102), причем элемент синтаксиса разницы сигнализирует упомянутую разницу в логарифмической форме с основанием 2.the syntax element is a difference syntax element (301) between MinQtSizeY (105) and MaxBtSizeY (102), the difference syntax element signaling said difference in base 2 logarithmic form. 2. Устройство по п.1, в котором схема выполнена с возможностью определения MaxBtSizeY (102) с учетом того, что его нижним пределом является MinQtSizeY (105).2. The apparatus of claim 1, wherein the circuit is configured to determine MaxBtSizeY (102) given that its lower limit is MinQtSizeY (105). 3. Устройство по п.1 или 2, в котором схема выполнена с возможностью получения элемента синтаксиса из битового потока в зависимости от максимальной глубины иерархии для блоков кодирования, полученных в результате разделения многотипного дерева, MaxMttDepth.3. The device according to claim 1 or 2, wherein the circuit is configured to obtain a syntax element from the bitstream depending on the maximum hierarchy depth for coding blocks resulting from splitting the multitype tree, MaxMttDepth. 4. Устройство по п.3, в котором схема выполнена с возможностью получения элемента синтаксиса из битового потока (101), если MaxMttDepth (103), характеризующее верхний предел количества последовательных двоичных или троичных разделений, применяемых для получения дочернего блока, не равно нулю.4. The apparatus of claim 3, wherein the circuit is configured to obtain a syntax element from a bitstream (101) if MaxMttDepth (103), characterizing an upper limit on the number of consecutive binary or ternary divisions applied to obtain a child block, is non-zero. 5. Устройство (1000) генерирования битового потока (101) видео, характеризующееся тем, что выполнено с возможностью:5. A device (1000) for generating a video bitstream (101), characterized in that it is configured to: определения минимального размера яркости листового блока, полученного в результате разделения дерева квадрантов, MinQtSizeY (105),determining the minimum brightness size of the leaf block obtained as a result of splitting the quadtree, MinQtSizeY (105), определения максимального размера яркости блока кодирования, подлежащего разделению с использованием разделения двоичного дерева, MaxBtSizeY (102) на основании MinQtSizeY (105) иdetermining a maximum luminance size of a coding block to be partitioned using binary tree partitioning, MaxBtSizeY (102) based on MinQtSizeY (105), and вставки в битовый поток (101) информации определенного MinQtSizeY (105); иinserting into the bitstream (101) information of a certain MinQtSizeY (105); and вставки элемент синтаксиса в битовый поток (101), причем элемент синтаксиса представляет собой элемент (301) синтаксиса разницы между логарифмом по основанию 2 MinQtSizeY (105) и логарифмом по основанию 2 MaxBtSizeY (102); илиinserting a syntax element into the bitstream (101), wherein the syntax element is a syntax element (301) of the difference between the base 2 logarithm MinQtSizeY (105) and the base 2 logarithm MaxBtSizeY (102); or элемент синтаксиса представляет собой элемент (301) синтаксиса разницы между MinQtSizeY (105) и MaxBtSizeY (102), причем элемент синтаксиса разницы сигнализирует упомянутую разницу в логарифмической форме с основанием 2.the syntax element is a difference syntax element (301) between MinQtSizeY (105) and MaxBtSizeY (102), the difference syntax element signaling said difference in base 2 logarithmic form. 6. Устройство (1000) генерирования битового потока (101), включающего в себя закодированные изображения, по п.5, характеризующееся тем, что выполнено с возможностью определения MaxBtSizeY (102), с учетом того, что его нижний предел равен MinQtSizeY (105).6. Device (1000) for generating a bit stream (101) including encoded images, according to claim 5, characterized in that it is configured to determine MaxBtSizeY (102), given that its lower limit is MinQtSizeY (105) . 7. Устройство (1000) генерирования битового потока (101), включающего в себя закодированные изображения, по п. 5 или 6, при этом устройство характеризуется тем, что выполнено с возможностью:7. Device (1000) for generating a bit stream (101) including encoded images, according to claim 5 or 6, wherein the device is characterized in that it is configured to: вставки, в битовый поток (101), элемента (5001) синтаксиса, зависящего от максимальной глубины иерархии для блоков кодирования, полученных в результате разделения многотипного дерева, MaxMttDepth (103).inserting, into the bitstream (101), a syntax element (5001) dependent on the maximum hierarchy depth for coding blocks resulting from splitting a multi-type tree, MaxMttDepth (103). 8. Устройство (1000) генерирования битового потока (101), включающего в себя закодированные изображения, по п.7, характеризующееся тем, что выполнено с возможностью 8. Device (1000) for generating a bit stream (101) including encoded images according to claim 7, characterized in that it is configured to вставки, в битовый поток (101), элемента синтаксиса, если MaxMttDepth (103), характеризующее верхний предел количества последовательных двоичных или троичных разделений, применяемых для получения дочернего блока, не равно нулю.inserts, into the bitstream (101), a syntax element if MaxMttDepth (103), characterizing the upper limit of the number of consecutive binary or ternary divisions applied to obtain a child block, is not equal to zero. 9. Способ генерирования битового потока (101) видео, включающий в себя этапы, на которых:9. A method for generating a video bitstream (101), comprising the steps of: определяют минимальный размер яркости листового блока в результате разделения дерева квадрантов, MinQtSizeY (105),determine the minimum brightness size of the leaf block as a result of splitting the quadtree, MinQtSizeY (105), определяют максимальный размер яркости блока кодирования, подлежащего разделению с использованием разделения двоичного дерева, MaxBtSizeY (102), на основании MinQtSizeY (105), иdetermining a maximum luminance size of a coding block to be partitioned using binary tree partitioning, MaxBtSizeY (102), based on MinQtSizeY (105), and вставляют, в битовый поток (101), информацию определенного MinQtSizeY (105); иinsert, into the bitstream (101), the information of the determined MinQtSizeY (105); and вставляют элемент синтаксиса в битовый поток (101), причем элемент синтаксиса представляет собой элемент (301) синтаксиса разницы между логарифмом по основанию 2 MinQtSizeY (105) и логарифмом по основанию 2 MaxBtSizeY (102); илиinserting a syntax element into the bitstream (101), wherein the syntax element is a syntax element (301) of the difference between the base 2 logarithm MinQtSizeY (105) and the base 2 logarithm MaxBtSizeY (102); or элемент синтаксиса представляет собой элемент (301) синтаксиса разницы между MinQtSizeY (105) и MaxBtSizeY (102), причем элемент синтаксиса разницы сигнализирует упомянутую разницу в логарифмической форме с основанием 2.the syntax element is a difference syntax element (301) between MinQtSizeY (105) and MaxBtSizeY (102), the difference syntax element signaling said difference in base 2 logarithmic form. 10. Способ декодирования битового потока (101) видео, содержащий этапы, на которых:10. A method for decoding a video bitstream (101), comprising the steps of: получают, из битового потока (101), элемент синтаксиса;get, from the bitstream (101), a syntax element; получают информацию минимального размера в выборках яркости листового блока яркости, полученного в результате разделения дерева квадрантов, MinQtSizeY (105);getting the minimum size information in the luminance samples of the leaf luminance block obtained by splitting the quadtree, MinQtSizeY (105); определяют максимальный размер в выборках яркости корневого блока яркости, так, что он может быть разделен с использованием разделения двоичного дерева, MaxBtSizeY (102) на основании информации MinQtSizeY (105) и полученного элемента синтаксиса; причемdetermining a maximum size in luminance samples of the root luminance block such that it can be partitioned using binary tree partitioning, MaxBtSizeY (102) based on the MinQtSizeY (105) information and the resulting syntax element; and элемент синтаксиса представляет собой элемент (301) синтаксиса разницы между логарифмом по основанию 2 MinQtSizeY (105) и логарифмом по основанию 2 MaxBtSizeY (102); илиthe syntax element is a syntax element (301) of the difference between the base 2 logarithm MinQtSizeY (105) and the base 2 logarithm MaxBtSizeY (102); or элемент синтаксиса представляет собой элемент (301) синтаксиса разницы между MinQtSizeY (105) и MaxBtSizeY (102), причем элемент синтаксиса разницы сигнализирует упомянутую разницу в логарифмической форме с основанием 2;the syntax element is a difference syntax element (301) between MinQtSizeY (105) and MaxBtSizeY (102), the difference syntax element signaling said difference in base 2 logarithmic form; при этом способ дополнительно содержит этапы, на которых:wherein the method further comprises the steps of: определяют, разрешено ли применение двоичного разделение к блоку изображения на основе MaxBtSizeY (102); иdetermining whether a binary split is allowed to be applied to the image block based on MaxBtSizeY (102); and получают блок кодирования блока изображения на основе результата определения.obtaining an image block coding block based on the determination result. 11. Способ по п.10, в котором этап определения MaxBtSizeY (102) на основании информации для MinQtSizeY (105) и полученного элемента синтаксиса содержит подэтап, на котором определяют MaxBtSizeY (102) с учетом того, что его нижним пределом является MinQtSizeY (105).11. The method of claim 10, wherein the step of determining MaxBtSizeY (102) based on the information for MinQtSizeY (105) and the resulting syntax element comprises a sub-step of determining MaxBtSizeY (102) given that its lower limit is MinQtSizeY (105 ). 12. Способ по п.10 или 11, в котором этап получения, из битового потока (101), элемента синтаксиса содержит подэтап, на котором получают элемент синтаксиса из битового потока в зависимости от максимальной глубины иерархии для блоков кодирования, полученных из разделения многотипного дерева, MaxMttDepth.12. The method according to claim 10 or 11, wherein the step of obtaining, from the bitstream (101), a syntax element comprises a sub-step of obtaining a syntax element from the bitstream depending on the maximum hierarchy depth for coding blocks obtained from splitting a multi-type tree , MaxMttDepth. 13. Способ по п.12, в котором этап получения элемента синтаксиса, из битового потока (101), содержит подэтап, на котором получают элемент синтаксиса из битового потока (101), если MaxMttDepth (103), характеризующее верхний предел количества последовательных двоичных или троичных разделений, применяемых для получения дочернего блока, не равно нулю.13. The method of claim 12, wherein the step of obtaining the syntax element from the bitstream (101) comprises a sub-step of obtaining the syntax element from the bitstream (101) if MaxMttDepth (103) characterizing the upper limit of the number of consecutive binary or ternary divisions applied to get the child block is non-zero.
RU2021106768A 2018-09-03 2019-09-03 Connection between separation limitation elements RU2786652C2 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US62/726,423 2018-09-03
US62/733,053 2018-09-18
US62/818,996 2019-03-15

Related Child Applications (1)

Application Number Title Priority Date Filing Date
RU2022133003A Division RU2022133003A (en) 2018-09-03 2019-09-03 RELATIONSHIP BETWEEN THE ELEMENTS OF THE PARTICIPATION CONSTRAINTS

Publications (2)

Publication Number Publication Date
RU2021106768A RU2021106768A (en) 2022-09-16
RU2786652C2 true RU2786652C2 (en) 2022-12-23

Family

ID=

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140254661A1 (en) * 2013-03-08 2014-09-11 Samsung Electronics Co., Ltd. Method and apparatus for applying secondary transforms on enhancement-layer residuals
US20140286403A1 (en) * 2011-12-21 2014-09-25 JVC Kenwood Corporation Moving picture coding device, moving picture coding method, and moving picture coding program, and moving picture decoding device, moving picture decoding method, and moving picture decoding program
WO2018001207A1 (en) * 2016-06-30 2018-01-04 华为技术有限公司 Coding and decoding method and apparatus
WO2018064948A1 (en) * 2016-10-04 2018-04-12 Mediatek Inc. Method and apparatus for intra chroma coding in image and video coding

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140286403A1 (en) * 2011-12-21 2014-09-25 JVC Kenwood Corporation Moving picture coding device, moving picture coding method, and moving picture coding program, and moving picture decoding device, moving picture decoding method, and moving picture decoding program
US20140254661A1 (en) * 2013-03-08 2014-09-11 Samsung Electronics Co., Ltd. Method and apparatus for applying secondary transforms on enhancement-layer residuals
WO2018001207A1 (en) * 2016-06-30 2018-01-04 华为技术有限公司 Coding and decoding method and apparatus
WO2018064948A1 (en) * 2016-10-04 2018-04-12 Mediatek Inc. Method and apparatus for intra chroma coding in image and video coding

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
BENJAMIN BROSS и др., "Versatile Video Coding (Draft 2)", Любляна, Словения, опубл. 10.07.2018. *

Similar Documents

Publication Publication Date Title
JP7541096B2 (en) Cross-component adaptive loop filtering for video coding.
AU2023202264B2 (en) Relation between partition constraint elements
US12047599B2 (en) Motion vector range derivation for enhanced interpolation filter
AU2023206208B2 (en) A video encoder, a video decoder and corresponding methods
JP2023512694A (en) Encoders, Decoders, and Corresponding Methods for High-Level Syntax Signaling
US20220264094A1 (en) Usage of DCT Based Interpolation Filter and Enhanced Bilinear Interpolation Filter in Affine Motion Compensation
US20220217346A1 (en) Method and Apparatus for Chrominance QP Offsets Tables Signaling and Derivation
RU2786652C2 (en) Connection between separation limitation elements
RU2786427C2 (en) Video encoder, video decoder, and related methods
WO2021008470A1 (en) An encoder, a decoder and corresponding methods
AU2024219361A1 (en) Relation between partition constraint elements