RU2778864C1 - Implicit geometric division based on a quad-tree or binary tree for encoding a point cloud - Google Patents

Implicit geometric division based on a quad-tree or binary tree for encoding a point cloud Download PDF

Info

Publication number
RU2778864C1
RU2778864C1 RU2021128692A RU2021128692A RU2778864C1 RU 2778864 C1 RU2778864 C1 RU 2778864C1 RU 2021128692 A RU2021128692 A RU 2021128692A RU 2021128692 A RU2021128692 A RU 2021128692A RU 2778864 C1 RU2778864 C1 RU 2778864C1
Authority
RU
Russia
Prior art keywords
octree
node
implicit
splits
size
Prior art date
Application number
RU2021128692A
Other languages
Russian (ru)
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 Тенсент Америка Ллс
Application granted granted Critical
Publication of RU2778864C1 publication Critical patent/RU2778864C1/en

Links

Images

Abstract

FIELD: decoding.
SUBSTANCE: method for decoding the geometry of a point cloud in a point cloud decoder includes receiving a bitstream including a slice of the encoded frame of the point cloud, and reconstructing the octree representing the geometry of points in the bounding box of the slice, wherein the current node of the octree is divided by a quadtree (QT)-based division or a binary tree (BT)-based division. The reconstruction (S1520) of the octree includes determining the value of a variable designated partitionSkip and indicating the type of division and the direction of division of the current node of the octree. When implicit QT or BT division is applied, the geometry of the point cloud can be implicitly divided by a subset of all dimensions if certain criteria are met, instead of always dividing by all dimensions.
EFFECT: ensured division of a quadtree or a binary tree.
20 cl, 39 tbl, 16 dwg

Description

ВКЛЮЧЕНИЕ ПОСРЕДСТВОМ ССЫЛКИINCLUSION BY LINK

[0001] По настоящей заявке испрашивается приоритет согласно заявке на выдачу патента США 16/909,142 «Неявное геометрическое разделение на основе квадродерева или бинарного дерева для кодирования облака точек», поданной 23 июня 2020 г., по которой испрашивался приоритет согласно предварительным заявкам США 62/867,063 «Неявное геометрическое разделение для кодирования облака точек», поданной 26 июня 2019 г., 62/904,384 «О кодировании геометрии для облаков точек», поданной 23 сентября 2019 г., и 62/910,387 «Дополнительная информация об адаптивном геометрическом квантовании и неявном геометрическом разделении для кодирования облака точек», поданной 3 октября 2019 г. Содержание предыдущих заявок полностью включено в настоящее описание посредством ссылки.[0001] The present application claims priority under U.S. Patent Application 16/909,142 "Implicit Quadtree or Binary Tree Based Geometric Partitioning for Point Cloud Encoding", filed June 23, 2020, which claimed priority under U.S. Provisional Applications 62/ 867,063 "Implicit Geometric Division for Point Cloud Encoding", filed June 26, 2019, 62/904,384 "On Geometry Coding for Point Clouds", filed September 23, 2019, and 62/910,387 "Additional Information on Adaptive Geometric Quantization and Implicit Geometric Separation for Point Cloud Encoding, filed October 3, 2019. The contents of previous applications are incorporated herein by reference in their entirety.

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕFIELD OF TECHNOLOGY TO WHICH THE INVENTION RELATES

[0002] Настоящее изобретение относится к кодированию облака точек.[0002] The present invention relates to point cloud coding.

УРОВЕНЬ ТЕХНИКИBACKGROUND OF THE INVENTION

[0003] Описание уровня техники приведено здесь для представления в целом контекста изобретения. Работа авторов изобретения, в той мере, в какой она описана в этом разделе, а также аспекты описания, которые не могут квалифицироваться как уровень техники на момент подачи заявки, ни прямо, ни косвенно не признаются уровнем техники для настоящего изобретения.[0003] The description of the prior art is provided herein to represent the overall context of the invention. The work of the authors of the invention, to the extent that it is described in this section, as well as aspects of the description that cannot be qualified as state of the art at the time of filing, neither expressly nor impliedly recognized as the state of the art for the present invention.

[0004] Облако точек широко используется в последние годы. Например, облако точек можно использовать в автономных транспортных средствах для обнаружения и локализации объектов. Облако точек также используется в географических информационных системах (ГИС) для картографии, а также для визуализации и архивирования объектов и коллекций культурного наследия и т.д.[0004] The point cloud has been widely used in recent years. For example, a point cloud can be used in autonomous vehicles to detect and localize objects. The point cloud is also used in geographic information systems (GIS) for cartography, as well as for visualization and archiving of objects and collections of cultural heritage, etc.

[0005] Кадр облака точек содержит набор точек высокой размерности, обычно трехмерных (3D) точек, каждая из которых включает информацию о трехмерном положении и дополнительные атрибуты, такие как цвет, коэффициент отражения и т.д. Они могут сниматься с помощью нескольких камер и датчиков глубины или лидара в различных установках и могут включать тысячи и миллиарды точек для реалистичного представления исходных сцен.[0005] A point cloud frame contains a set of high-dimensional points, typically three-dimensional (3D) points, each of which includes three-dimensional position information and additional attributes such as color, reflectance, and so on. They can be captured with multiple cameras and depth sensors or lidar in a variety of setups and can include thousands or billions of points to realistically represent original scenes.

[0006] Для более быстрой передачи или уменьшения объема памяти необходимы технологии сжатия, позволяющие уменьшить объем данных для представления облака точек. Группа ISO/IEC MPEG (JTC 1/SC 29/WG 11) создала специальную группу (MPEG-PCC) для стандартизации методов сжатия для статических или динамических облаков точек.[0006] For faster transmission or less memory, compression techniques are needed to reduce the amount of data to represent a point cloud. The ISO/IEC MPEG group (JTC 1/SC 29/WG 11) created a special group (MPEG-PCC) to standardize compression methods for static or dynamic point clouds.

СУЩНОСТЬ ИЗОБРЕТЕНИЯSUMMARY OF THE INVENTION

[0007] Аспекты изобретения предоставляют способ декодирования геометрии облака точек в декодере облака точек. Способ может включать прием битового потока, включающего слайс кодированного кадра облака точек, и реконструкцию октодерева, представляющего геометрию точек в ограничивающем боксе (bounding box) слайса, с использованием неявного геометрического разделения, где текущий узел октодерева разделен посредством разделения на основе квадродерева (QT, quadtree) или разделения на основе бинарного дерева (ВТ, binary-tree).[0007] Aspects of the invention provide a method for decoding point cloud geometry in a point cloud decoder. The method may include receiving a bitstream including a slice of an encoded point cloud frame and reconstructing an octree representing the geometry of the points in the bounding box of the slice using implicit geometric partitioning, where the current node of the octree is partitioned by a partition based on a quadtree (QT, quadtree). ) or separation based on a binary tree (BT, binary-tree).

[0008] В варианте осуществления изобретения способ разделения текущего узла октодерева с использованием одного из разделения QT, разделения ВТ или разделения на основе октодерева (ОТ, octree) определяют на основе заранее заданного условия. В варианте осуществления изобретения способ разделения текущего узла октодерева с использованием одного из разделения QT, разделения ВТ или разделения ОТ определяют на основе одного или более параметров. Один из указанных одного или более параметров может сигнализироваться в битовом потоке или с помощью заранее локально сконфигурированного значения.[0008] In an embodiment of the invention, the splitting method of the current octree node using one of QT splitting, BT splitting, or octree based splitting (OT, octree) is determined based on a predetermined condition. In an embodiment of the invention, a method for splitting the current octree node using one of QT split, BT split, or OT split is determined based on one or more parameters. One of said one or more parameters may be signaled in the bitstream or with a locally configured pre-configured value.

[0009] В варианте осуществления изобретения из битового потока принимают информацию о занятости, принадлежащую 8-биновому коду занятости текущего узла октодерева. Каждый бит занятости соответствует занятому дочернему узлу текущего узла октодерева. Четыре бина, которые принадлежат 8-биновому коду занятости, не сигнализируют в битовом потоке, когда текущий узел октодерева разделен посредством разделения QT, и 6 бинов, которые принадлежат 8-биновому коду занятости, не сигнализируют в битовом потоке, когда текущий узел октодерева разделен посредством разделения ВТ. В настоящей заявке мы можем называть 8-биновый код занятости также 8-битовым кодом занятости или каждый бин 8-бинового кода занятости битом.[0009] In an embodiment of the invention, occupancy information belonging to the 8-bin occupancy code of the current octree node is received from the bitstream. Each busy bit corresponds to a busy child node of the current octree node. The four bins that belong to the 8-bin busy code are not signaled in the bitstream when the current octree node is split by QT splitting, and the 6 bins that belong to the 8-bin busy code are not signaled in the bitstream when the current octree node is split by VT separation. In the present application, we may refer to the 8-bin occupancy code as an 8-bit occupancy code, or each bin of the 8-bin occupancy code a bit.

[0010] В варианте осуществления изобретения из битового потока принимают один или более синтаксических элементов, указывающих трехмерные (3D) размеры ограничивающего бокса слайса кодированного кадра облака точек. В варианте осуществления изобретения определяют значение переменной, обозначенной partitionSkip и указывающей тип разделения и направление разделения текущего узла октодерева. В примере переменная partitionSkip представлена в двоичной форме тремя битами, соответствующими направлениям х, у и z, соответственно, при этом каждый бит указывает, выполнять ли разделение вдоль соответствующего направления х, у или z. В примере глубину в измерении х, у или z для дочернего узла текущего узла октодерева обновляют на основе переменной partitionSkip.[0010] In an embodiment of the invention, one or more syntax elements are received from the bitstream indicating the three-dimensional (3D) dimensions of the encoded point cloud slice bounding box. In an embodiment of the invention, a value is determined for a variable, denoted partitionSkip, that indicates the type of partition and the direction of partition of the current node of the octree. In the example, the partitionSkip variable is represented in binary form by three bits corresponding to the x, y, and z directions, respectively, with each bit indicating whether to partition along the corresponding x, y, or z direction. In the example, the depth in the x, y, or z dimension for a child node of the current octree node is updated based on the partitionSkip variable.

[0011] В варианте осуществления изобретения реконструкция октодерева также включает прием синтаксического элемента, указывающего на то, что текущий узел октодерева имеет один занятый дочерний узел, прием 1 бина, если переменная partitionSkip указывает на разделение ВТ, или 2 бинов, если переменная partitionSkip указывает на разделение QT, и определение карты занятости, идентифицирующей занятые дочерние узлы текущего узла октодерева, на основе принятых 1 или 2 бинов.[0011] In an embodiment of the invention, reconstructing the octree also includes receiving a syntax element indicating that the current node of the octree has one occupied child node, receiving 1 bin if the partitionSkip variable indicates a BT split, or 2 bins if the partitionSkip variable points to splitting the QT, and determining an occupancy map identifying occupied child nodes of the current octree node based on the received 1 or 2 bins.

[0012] В варианте осуществления изобретения в процессе анализа битового потока для определения синтаксического элемента карты занятости, идентифицирующей занятые дочерние узлы текущего узла октодерева, один или более бинов синтаксического элемента карты занятости могут быть пропущены на основе переменной partitionSkip.[0012] In an embodiment of the invention, in the process of parsing a bitstream to determine an occupancy map syntax element that identifies busy child nodes of the current octree node, one or more bins of the occupancy map syntax element may be skipped based on the partitionSkip variable.

[0013] В варианте осуществления изобретения для дочернего узла текущего узла октодерева, кодированного в прямом режиме, для каждого из направлений х, у и z определяют значение log2 размера, обозначенное dx, dy и dz, соответственно, для дочернего узла на основе переменной partitionSkip. Позиции точек в дочернем узле кодируют посредством кодов фиксированной длины с использованием (dx, dy, dz) битов, соответственно.[0013] In an embodiment of the invention, for a child node of the current node of the direct-coded octree, for each of the x, y, and z directions, a log2 size value, denoted dx, dy, and dz, respectively, is determined for the child node based on the partitionSkip variable. The positions of the dots at the child node are encoded with fixed length codes using (dx, dy, dz) bits, respectively.

[0014] В варианте осуществления изобретения из битового потока принимают синтаксический элемент, указывающий один из следующих параметров: максимальное количество неявных разделений QT и ВТ, выполняемых перед разделениями ОТ, минимальный размер неявных разделений QT и ВТ, который предотвращает неявные разделения QT и ВТ узла, когда все размеры узла меньше или равны минимальному размеру, или приоритет, указывающий на то, какой из неявного разделения QT или ВТ выполнять первым, когда оба разделения QT и ВТ разрешены.[0014] In an embodiment of the invention, a syntax element is received from the bitstream indicating one of the following parameters: the maximum number of implicit QT and BT splits performed before OT splits, the minimum size of the implicit QT and BT splits that prevents implicit node QT and BT splits, when all node sizes are less than or equal to the minimum size, or a priority indicating which of the QT or BT implicit splits to perform first when both QT and BT splits are enabled.

[0015] В варианте осуществления изобретения, когда глубина октодерева текущего узла меньше, чем параметр K, или когда наименьшее значение log2 размера среди значений log2 размеров текущего узла в направлениях х, у и z равно параметру М, тип разделения и направление разделения для разделения текущего узла можно определить в соответствии с условиями, указанными в следующей таблице:[0015] In an embodiment, when the octree depth of the current node is less than parameter K, or when the smallest log2 size value among the log2 sizes of the current node in the x, y, and z directions is equal to the parameter M, the split type and split direction for splitting the current node can be defined according to the conditions specified in the following table:

Figure 00000001
Figure 00000001

где параметр K является целым числом в диапазоне 0 ≤ K ≤ max(dx, dy, dz) - min(dx, dy, dz) и задает максимальное количество неявных разделений QT и ВТ, которые разрешены до разделений ОТ, параметр М является целым числом в диапазоне 0 ≤ М ≤ min(dx, dy, dz), задает минимальный размер неявных разделений QT и ВТ и предотвращает неявные разделения QT и ВТ узла, когда все размеры узла меньше или равны М, a dx, dy и dz - значения log2 размеров текущего узла в направлениях х, у и z, соответственно. Величины dx, dy и dz соответствуют dx, dy и dz в приведенной выше таблице. Указанные два обозначения используются в этом описании как взаимозаменяемые.where parameter K is an integer in the range 0 ≤ K ≤ max(d x , dy, d z ) - min(d x , d y , d z ) and specifies the maximum number of implicit QT and BT splits that are allowed before OT splits, parameter M is an integer in the range 0 ≤ M ≤ min(d x , d y , d z ), specifies the minimum size of implicit QT and BT splits, and prevents implicit QT and BT splits of a node when all node sizes are less than or equal to M, a dx, dy, and dz are the log2 values of the dimensions of the current node in the x, y, and z directions, respectively. The values dx, dy and dz correspond to d x , d y and d z in the above table. These two designations are used interchangeably in this specification.

[0016] В варианте осуществления изобретения, когда глубина октодерева текущего узла меньше, чем параметр K, или когда наименьшее значение log2 размера среди значений log2 размеров текущего узла в направлениях х, у и z равно параметру М, переменную partitionSkip можно определить следующим образом:[0016] In an embodiment of the invention, when the octree depth of the current node is less than the parameter K, or when the smallest log2 size value among the log2 sizes of the current node in the x, y, and z directions is equal to the parameter M, the variable partitionSkip can be defined as follows:

Figure 00000002
Figure 00000002

Figure 00000003
Figure 00000003

Переменная partitionSkip представлена в двоичной форме тремя битами и задает тип разделения и направление разделения текущего узла октодерева. Параметр K является целым числом в диапазоне 0 ≤ K ≤ max(dx, dy, dz) - min(dx, dy, dz) и задает максимальное количество неявных разделений QT и ВТ, которые разрешены до разделений ОТ. Параметр М является целым числом в диапазоне 0 ≤ М ≤ min(dx, dy, dz), задает минимальный размер неявных разделений QT и ВТ и предотвращает неявные разделения QT и ВТ узла, когда все размеры узла меньше или равны М. Значения dx, dy и dz являются значениями log2 размеров текущего узла в направлениях х, у и z, соответственно. MaxNodeDimLog2 представляет максимальное значение log2 размера из dx, dy и dz. Оператор |= представляет собой составную операцию побитового ИЛИ.The variable partitionSkip is represented in binary form by three bits and specifies the type of partition and the direction of partition of the current octree node. The parameter K is an integer in the range 0 ≤ K ≤ max(d x , d y , d z ) - min(d x , dy, d z ) and specifies the maximum number of implicit QT and BT splits that are allowed before OT splits. The parameter M is an integer in the range 0 ≤ M ≤ min(d x , d y , d z ), specifies the minimum size of implicit QT and BT splits, and prevents implicit QT and BT node splits when all node sizes are less than or equal to M. Values dx, dy, and dz are the log2 values of the current node's dimensions in the x, y, and z directions, respectively. MaxNodeDimLog2 represents the maximum log2 size value from dx, dy, and dz. The |= operator is a bitwise OR compound operation.

[0017] В варианте осуществления изобретения из битового потока может быть получен флаг, указывающий, разрешено ли неявное геометрическое разделение для последовательности кадров облака точек или слайса кодированного кадра облака точек. В варианте осуществления изобретения планарный режим определяют как неприменимый в направлении х, у или z, и разделение не выполняют для текущего узла. В варианте осуществления изобретения выполняют процесс анализа занятости геометрического октодерева, в котором для бина, имеющего индекс binIdx в коде занятости, переменную binIsInferred устанавливают следующим образом: (а) если выполнено одно из следующих условий, переменную binlslnferred устанавливают равной 1: (1) переменная NeighbourPattem равна 0, а количество ранее декодированных однозначных бинов меньше или равно (binIdx + minOccupied - maxOccupied), или (2) переменная NeighbourPattem не равна 0, значение binldx равно maxOccupied-1, а значения всех предыдущих декодированных бинов равны нулю, где minOccupied = 2, а maxOccupied = 8, если применяется разделение ОТ, maxOccupied = 4, если применяется разделение QT, и maxOccupied = 2, если применяется разделение ВТ, и (b) в противном случае, если ни одно из вышеперечисленных условий не выполнено, переменную binlslnferred устанавливают равной 0.[0017] In an embodiment of the invention, a flag may be obtained from the bitstream indicating whether implicit geometric separation is allowed for a sequence of point cloud frames or a slice of an encoded point cloud frame. In an embodiment of the invention, the planar mode is determined not to be applicable in the x, y, or z direction, and no split is performed for the current node. In an embodiment of the invention, a geometry octree occupancy analysis process is performed in which, for a bean having index binIdx in the occupancy code, the variable binIsInferred is set as follows: (a) if one of the following conditions is met, the variable binlslnferred is set to 1: (1) the variable NeighbourPattem is 0 and the number of previously decoded single-valued bins is less than or equal to (binIdx + minOccupied - maxOccupied), or (2) NeighbourPattem is not 0, binldx is maxOccupied-1, and all previous decoded bins are zero, where minOccupied = 2 , and maxOccupied = 8 if OT split is applied, maxOccupied = 4 if QT split is applied, and maxOccupied = 2 if BT split is applied, and (b) otherwise, if none of the above conditions are met, binlslnferred is set equal to 0.

[0018] В варианте осуществления изобретения используют параметр K и параметр М. Параметр K указывает максимальное количество неявных разделений QT и ВТ перед разделениями ОТ, а параметр М указывает минимальный размер неявных разделений QT и ВТ, который предотвращает неявные разделения QT и ВТ узла, когда все размеры узла меньше или равны минимальному размеру. Параметры K и М могут быть обновлены следующим образом: (а) если K больше, чем разность максимального значения log2 размера корневого узла и минимального значения log2 размера корневого узла слайса, K меняют на разность максимального значения log2 размера корневого узла и минимального значения log2 размера корневого узла слайса; (b) если М больше, чем минимальное значение log2 размера корневого узла слайса, М меняют на минимальное значение log2 размера корневого узла слайса; (с) если максимальное значение log2 размера корневого узла и минимальное значение log2 размера корневого узла слайса равны, М меняют на 0; и (d) если включен режим треугольной сетки (trisoup), K меняют на разность максимального значения log2 размера корневого узла и минимального значения log2 размера корневого узла слайса, а М меняют на минимальное значение log2 размера корневого узла слайса. Следует отметить, что значение log2 размера узла в режиме треугольной сетки не должно быть больше минимального значения log2 размера корневого узла слайса.[0018] In an embodiment, the K parameter and the M parameter are used. The K parameter indicates the maximum number of implicit QT and BT splits before OT splits, and the M parameter specifies the minimum size of implicit QT and BT splits that prevents implicit QT and BT splits of a node when all node sizes are less than or equal to the minimum size. The parameters K and M can be updated as follows: (a) if K is greater than the difference of the maximum log2 root size and the minimum log2 slice root size, K is changed to the difference of the maximum log2 root size and the minimum log2 root size. slice node; (b) if M is greater than the minimum value log2 of the slice root node size, M is changed to the minimum log2 value of the slice root node size; (c) if the maximum value log2 of the root node size and the minimum value log2 of the slice root node size are equal, M is changed to 0; and (d) if trisoup mode is enabled, K is changed to the difference between the maximum log2 root node size and the minimum log2 slice root node size, and M is changed to the minimum log2 slice root size. It should be noted that the log2 value of the node size in triangular grid mode should not be greater than the minimum log2 value of the root node size of the slice.

[0019] Аспекты изобретения предоставляют устройство для декодирования геометрии облака точек. Устройство может содержать схему, сконфигурированную для приема битового потока, включающего слайс кодированного кадра облака точек, и реконструкции октодерева, представляющего геометрию точек в ограничивающем боксе слайса, с использованием неявного геометрического разделения, где текущий узел октодерева разделен посредством разделения на основе квадродерева (QT) или разделения на основе бинарного дерева (ВТ).[0019] Aspects of the invention provide an apparatus for decoding point cloud geometry. The device may comprise a circuit configured to receive a bitstream including a slice of an encoded point cloud frame and reconstruct an octree representing the geometry of the points in the slice's bounding box using implicit geometric partitioning, where the current node of the octree is partitioned by quadtree partitioning (QT) or separation based on a binary tree (BT).

[0020] Аспекты изобретения предоставляют машиночитаемый носитель, хранящий инструкции, которые при их исполнении процессором заставляют процессор выполнять способ декодирования геометрии облака точек.[0020] Aspects of the invention provide a computer-readable medium storing instructions that, when executed by a processor, causes the processor to perform a point cloud geometry decoding method.

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙBRIEF DESCRIPTION OF THE DRAWINGS

[0021] Различные варианты осуществления изобретения, которые предлагаются в качестве примеров, будут подробно описаны со ссылкой на следующие чертежи, на которых одинаковые номера обозначают одинаковые элементы.[0021] Various embodiments of the invention, which are offered as examples, will be described in detail with reference to the following drawings, in which like numbers designate like elements.

[0022] Фиг. 1 показывает процесс рекурсивного разделения в соответствии с вариантом осуществления изобретения.[0022] FIG. 1 shows a recursive partitioning process in accordance with an embodiment of the invention.

[0023] Фиг. 2 показывает процесс формирования уровня детализации (LOD, level of detail) в соответствии с вариантом осуществления изобретения.[0023] FIG. 2 shows a process for generating a level of detail (LOD, level of detail) in accordance with an embodiment of the invention.

[0024] Фиг. 3 показан пример кодера в соответствии с вариантом осуществления изобретения.[0024] FIG. 3 shows an example of an encoder according to an embodiment of the invention.

[0025] Фиг. 4 показывает пример декодера в соответствии с вариантом осуществления изобретения.[0025] FIG. 4 shows an example of a decoder according to an embodiment of the invention.

[0026] Фиг. 5 показывает разделение на основе октодерева в трехмерном (3D) пространстве.[0026] FIG. 5 shows octree-based partitioning in three-dimensional (3D) space.

[0027] Фиг. 6 показывает пример двухуровневого разделения октодерева (ОТ) и соответствующих кодов занятости.[0027] FIG. 6 shows an example of a bilevel octree partition (OT) and corresponding busy codes.

[0028] Фиг. 7 показывает последовательность облака точек, имеющую основные компоненты в направлениях х и у.[0028] FIG. 7 shows a point cloud sequence having principal components in the x and y directions.

[0029] Фиг. 8 показывает примеры разделений на основе квадродерева (QT) в трехмерном пространстве в соответствии с вариантом осуществления изобретения.[0029] FIG. 8 shows examples of quadtree (QT) partitioning in 3D space according to an embodiment of the invention.

[0030] Фиг. 9 показывает примеры разделений на основе бинарного дерева (ВТ) в трехмерном пространстве в соответствии с вариантом осуществления изобретения.[0030] FIG. 9 shows examples of binary tree (BT) partitions in 3D space according to an embodiment of the invention.

[0031] Фиг. 10-13 показывают двумерные (2D) блоки для демонстрации четырех различных процессов разделения на основе неявных разделений QT и ВТ.[0031] FIG. 10-13 show two-dimensional (2D) blocks to demonstrate four different separation processes based on implicit QT and BT separations.

[0032] Фиг. 14 показывает двумерные блоки для демонстрации схемы Testing Model 13 (ТМС13), в которой разделения ОТ выполняются на основе расширенного кубического ограничивающего бокса.[0032] FIG. 14 shows 2D blocks for demonstrating the Testing Model 13 (TMC13) circuit, in which OT partitions are performed based on an extended cubic bounding box.

[0033] Фиг. 15 показывает блок-схему способа декодирования геометрии на основе разделения QT/BT для декодирования облака точек в соответствии с вариантом осуществления настоящего изобретения.[0033] FIG. 15 shows a flowchart of a geometry decoding method based on QT/BT separation for point cloud decoding in accordance with an embodiment of the present invention.

[0034] Фиг. 16 показывает компьютерную систему для осуществления способов декодирования геометрии в различных вариантах осуществления изобретения.[0034] FIG. 16 shows a computer system for implementing geometry decoding methods in various embodiments of the invention.

ПОДРОБНОЕ ОПИСАНИЕ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯ ИЗОБРЕТЕНИЯDETAILED DESCRIPTION OF EMBODIMENTS

[0035] Настоящее изобретение относится к сжатию облака точек на основе геометрии (G-PCC, geometry based point cloud compression). Описываются способы неявного разделения на основе квадродерева (QT) или бинарного дерева (ВТ). Когда применяется неявное разделение QT или ВТ, геометрия облака точек может быть неявно разделена по подмножеству всех измерений при соблюдении определенных критериев, вместо осуществления разделения по всем измерениям все время.[0035] The present invention relates to geometry based point cloud compression (G-PCC). Methods for implicit partitioning based on a quadtree (QT) or a binary tree (BT) are described. When implicit QT or BT partitioning is applied, the point cloud geometry can be implicitly partitioned across a subset of all dimensions when certain criteria are met, instead of splitting across all dimensions all the time.

[0036] I. Кодер для кодирования облака точек L и декодер[0036] I. An encoder for encoding a point cloud L and a decoder

[0037] 1. Данные облака точек[0037] 1. Point cloud data

[0038] Данные облака точек (или облако точек) используются для представления трехмерной (3D) сцены или объекта в некоторых новых приложениях, таких как поглощающая виртуальная реальность (VR) / дополненная реальность (AR) / смешанная реальность (MR), автомобильная / роботизированная навигация, медицинская визуализация и т.д. Облако точек может включать набор отдельных трехмерных точек. Каждая точка связана с набором трехмерных координат, указывающих трехмерное положение соответствующей точки и ряд других атрибутов, таких как цвет, нормаль к поверхности, непрозрачность, отражательная способность и т.д. В различных вариантах осуществления изобретения входные данные облака точек могут быть квантованы и впоследствии организованы в трехмерную сетку кубических вокселей, которые можно описать с помощью структуры данных октодерева. Полученное в результате октодерево вокселей облегчает обход, поиск и доступ к квантованным данным облака точек.[0038] Point cloud (or point cloud) data is used to represent a three-dimensional (3D) scene or object in some emerging applications such as immersive virtual reality (VR) / augmented reality (AR) / mixed reality (MR), automotive / robotic navigation, medical imaging, etc. A point cloud may include a collection of individual 3D points. Each point is associated with a set of 3D coordinates indicating the 3D position of the corresponding point and a number of other attributes such as color, surface normal, opacity, reflectivity, and so on. In various embodiments of the invention, point cloud input data may be quantized and subsequently organized into a three-dimensional grid of cubic voxels that may be described using an octree data structure. The resulting voxel octree facilitates traversal, search, and access to quantized point cloud data.

[0039] Кадр облака точек может включать набор трехмерных точек в конкретный момент времени. Кадры облака точек можно использовать для реконструкции объекта или сцены как композиции таких точек. Они могут быть захвачены с помощью нескольких камер и датчиков глубины в различных установках и могут состоять из тысяч и даже миллиардов точек для реалистичного представления реконструированных сцен. Последовательность кадров облака точек может называться облаком точек. Набор декартовых координат, связанных с трехмерными точками кадра облака точек, может называться геометрией этих трехмерных точек.[0039] A point cloud frame may include a set of 3D points at a particular point in time. Point cloud frames can be used to reconstruct an object or scene as a composition of such points. They can be captured with multiple cameras and depth sensors in a variety of settings and can be made up of thousands or even billions of points to realistically represent rendered scenes. A sequence of point cloud frames may be referred to as a point cloud. The set of Cartesian coordinates associated with the 3D points of a point cloud frame may be referred to as the geometry of those 3D points.

[0040] Для уменьшения объема данных, необходимых для представления облака точек (например, последовательности кадров облака точек), необходимы технологии сжатия. Таким образом, необходимы технологии для сжатия облаков точек с потерями для использования в коммуникациях в реальном времени и в виртуальной реальности с шестью степенями свободы (6 DoF, Degrees of Freedom). Кроме того, требуются технологии для сжатия облаков точек без потерь в контексте динамического отображения для автономного вождения и приложений, связанных с культурным наследием, и т.д. Кроме того, необходимы стандарты для решения проблемы сжатия геометрии и атрибутов (например, цветов и отражательной способности), масштабируемого/прогрессивного кодирования, кодирования последовательностей облаков точек, захваченных во времени, и произвольного доступа к подмножествам облака точек.[0040] Compression techniques are needed to reduce the amount of data needed to represent a point cloud (eg, a sequence of point cloud frames). Thus, technologies are needed to compress lossy point clouds for use in real-time communications and virtual reality with six degrees of freedom (6 DoF, Degrees of Freedom). In addition, technologies are required for lossless compression of point clouds in the context of dynamic display for autonomous driving and cultural heritage applications, etc. In addition, standards are needed to address geometry and attribute compression (eg, colors and reflectivity), scalable/progressive coding, time-captured point cloud sequence coding, and random access to point cloud subsets.

[0041] 2. Квантование координат[0041] 2. Coordinate quantization

[0042] В варианте осуществления изобретения сначала могут квантоваться координаты точек во входных данных облака. Например, действительные числовые значения координат могут квантоваться в целочисленные значения. После квантования несколько точек могут иметь одинаковую позицию в некоторых вокселях. Эти повторяющиеся точки опционально могут быть объединены в одну точку.[0042] In an embodiment of the invention, the coordinates of the points in the cloud input may be quantized first. For example, real numeric coordinate values can be quantized into integer values. After quantization, several points may have the same position in some voxels. These repeating points can optionally be merged into a single point.

[0043] 3. Кодирование геометрии на основе октодерева[0043] 3. Octree Geometry Coding

[0044] Фиг. 1 показывает процесс рекурсивного разделения (100) в соответствии с вариантом осуществления изобретения. Процесс (100) может выполняться для создания структуры октодерева для представления позиций набора точек в облаке точек. Как показано, сначала определяют кубический выровненный по оси ограничивающий бокс (101), содержащий набор точек. Затем ограничивающий бокс (101) рекурсивно разделяют для построения структуры октодерева. Как показано, на каждом этапе текущий куб может быть разделен на 8 подкубов. Может быть сформирован 8-битовый код, называемый кодом занятости, для указания, содержит ли каждый из 8 подкубов точки. Например, каждый подкуб связан с однобитовым значением. Если подкуб занят, он имеет битовое значение 1; в противном случае соответствующий подкуб имеет битовое значение 0. Занятые подкубы можно разделять до тех пор, пока не будет достигнут заранее заданный минимальный размер подкубов. Подкуб минимального размера - это воксель, соответствующий структуре октодерева. Таким образом, может быть сформирована последовательность кодов занятости, которая впоследствии может быть сжата и передана от кодера к декодеру. Посредством декодирования кодов занятости (например, выполнения процесса декодирования октодерева) декодер может получить ту же структуру октодерева, что и кодер, или оценку структуры октодерева.[0044] FIG. 1 shows a recursive splitting process (100) in accordance with an embodiment of the invention. Process (100) may be performed to create an octree structure to represent the positions of a set of points in a point cloud. As shown, a cubic axis-aligned bounding box (101) containing a set of points is first defined. Then, the bounding box (101) is recursively split to construct an octree structure. As shown, at each stage, the current cube can be divided into 8 sub-cubes. An 8-bit code, called an occupancy code, may be generated to indicate whether each of the 8 sub-cubes contains points. For example, each subcube is associated with a one-bit value. If the subcube is busy, it has a bit value of 1; otherwise, the corresponding subcube has a bit value of 0. Occupied subcubes may be split until a predetermined minimum subcube size is reached. The minimum size subcube is a voxel corresponding to the octree structure. Thus, a sequence of busy codes can be generated, which can subsequently be compressed and transmitted from an encoder to a decoder. By decoding the busy codes (eg, performing an octree decoding process), the decoder can obtain the same octree structure as the encoder or an estimate of the octree structure.

[0045] 4. Передача атрибутов[0045] 4. Passing Attributes

[0046] В результате процесса формирования октодерева или кодирования на стороне кодера подкуб с минимальным размером может содержать более одной точки. Таким образом, позиция, соответствующая вокселю (например, центру соответствующего подкуба), может соответствовать множеству наборов атрибутов множества точек. В таком сценарии, в варианте осуществления изобретения, процесс передачи атрибутов может выполняться для определения одного набора атрибутов на основе множества наборов атрибутов для соответствующего вокселя. Например, усредненный атрибут подмножества ближайших соседних точек может использоваться как атрибут соответствующего вокселя. В различных вариантах осуществления изобретения для передачи атрибутов могут использоваться различные методы.[0046] As a result of the encoder-side octree generation or encoding process, the minimum size subcube may contain more than one point. Thus, a position corresponding to a voxel (eg, the center of the corresponding subcube) may correspond to a plurality of attribute sets of a plurality of points. In such a scenario, in an embodiment of the invention, an attribute transfer process may be performed to determine one attribute set based on a plurality of attribute sets for a corresponding voxel. For example, an averaged attribute of a subset of nearest neighbors can be used as an attribute of the corresponding voxel. In various embodiments of the invention, various methods may be used to pass attributes.

[0047] 5. Формирование уровня детализации (LOD)[0047] 5. Level of Detail (LOD) Generation

[0048] Фиг. 2 показывает процесс (200) формирования уровня детализации (LOD) в соответствии с вариантом осуществления изобретения. Процесс (200) может выполняться на квантованных позициях (например, позициях вокселей), упорядоченных согласно процессу декодирования октодерева. В результате процесса (200) точки могут быть реорганизованы или переупорядочены в набор уровней детализации. Процесс (200) может осуществляться идентично в кодере и декодере. Последующий процесс кодирования атрибутов может выполняться в кодере или декодере в соответствии с порядком, заданным процессом (200) (называемым порядком на основе LOD).[0048] FIG. 2 shows a process (200) for generating a level of detail (LOD) in accordance with an embodiment of the invention. Process (200) may be performed on quantized positions (eg, voxel positions) ordered according to the octree decoding process. As a result of process (200), the points may be reorganized or reordered into a set of detail levels. Process (200) may be performed identically in the encoder and decoder. The subsequent attribute encoding process may be performed at the encoder or decoder in accordance with the order given by process (200) (referred to as LOD-based order).

[0049] В частности, на фиг. 2 показаны три уровня LOD: LOD0, LOD1 и LOD2. Может быть указано евклидово расстояние, d0, d1 или d2, для LOD0, LOD1 и LOD2, соответственно. Каждый уровень LOD включает подмножество точек Р0-Р9. Расстояние между каждой парой точек на соответствующем уровне LOD больше или равно соответствующему евклидову расстоянию. Евклидовы расстояния могут быть организованы как d0>d1>d2. При такой организации более высокий уровень детализации включает меньшее количество точек, которые находятся дальше друг от друга, и обеспечивает более грубое представление облака точек, в то время как более низкий уровень детализации включает больше точек, расположенных ближе друг к другу, и обеспечивает более точное представление облака точек.[0049] In particular, in FIG. 2 shows three LOD levels: LOD0, LOD1 and LOD2. The Euclidean distance, d0, d1, or d2, can be specified for LOD0, LOD1, and LOD2, respectively. Each LOD level includes a subset of points P0-P9. The distance between each pair of points at the corresponding LOD level is greater than or equal to the corresponding Euclidean distance. Euclidean distances can be organized as d0>d1>d2. When organized this way, a higher level of detail includes fewer points that are farther apart and provides a coarser representation of the point cloud, while a lower level of detail includes more points that are closer together and provides a more accurate representation. point clouds.

[0050] В результате вышеупомянутого процесса (200) формирования LOD точки в исходном порядке (порядке декодирования октодерева) от Р0 до Р9 могут быть реорганизованы в порядке на основе LOD: Р0, Р5, Р4, Р2, P1, Р6, Р3, Р9, Р8 и Р7.[0050] As a result of the above LOD generation process (200), points in the original order (octree decoding order) from P0 to P9 can be reorganized in the LOD-based order: P0, P5, P4, P2, P1, P6, P3, P9, P8 and P7.

[0051] 6. Предсказание атрибутов[0051] 6. Attribute Prediction

[0052] Атрибуты, связанные с облаком точек, могут кодироваться и декодироваться в порядке, заданном процессом формирования LOD. Например, точка за точкой, в порядке на основе LOD, предсказание атрибута каждой текущей точки (точки, которая в настоящее время обрабатывается) может быть определено путем выполнения способа предсказания атрибута в кодере и/или декодере. Аналогичный процесс предсказания атрибутов может выполняться в кодере и декодере.[0052] The attributes associated with the point cloud may be encoded and decoded in the order specified by the LOD generation process. For example, point by point, in LOD based order, the attribute prediction of each current point (the point currently being processed) can be determined by performing the attribute prediction method in the encoder and/or decoder. A similar attribute prediction process may be performed at the encoder and decoder.

[0053] С полученным предсказанием атрибута в кодере может быть сформирован сигнал остатка путем вычитания значения предсказания атрибута из соответствующего исходного значения атрибута текущей точки. Затем сигнал остатка может быть также сжат отдельно или в комбинации с другими сигналами остатка. Например, могут выполняться операции преобразования и/или квантования, за которыми следует энтропийное кодирование полученных в результате сигналов. Сжатый сигнал остатка может быть передан кодеру в битовом потоке.[0053] With the attribute prediction obtained, the encoder can generate a residual signal by subtracting the attribute prediction value from the corresponding original current point attribute value. The residual signal can then also be compressed alone or in combination with other residual signals. For example, transformation and/or quantization operations may be performed followed by entropy encoding of the resulting signals. The compressed residual signal may be transmitted to the encoder in a bitstream.

[0054] В декодере сигнал остатка может быть восстановлен путем выполнения процесса, обратного процессу кодирования в кодере для кодирования сигнала остатка. С помощью предсказания полученного атрибута и восстановленного сигнала остатка, соответствующего текущей точке, можно получить реконструированный атрибут текущей точки. Подобным образом эта операция реконструкции может происходить в кодере для получения реконструированного атрибута.[0054] At the decoder, the residual signal may be recovered by performing the reverse process of the encoding process at the encoder to encode the residual signal. By predicting the received attribute and reconstructing the residual signal corresponding to the current point, a reconstructed attribute of the current point can be obtained. Similarly, this reconstruction operation may occur in the encoder to obtain a reconstructed attribute.

[0055] Для определения предсказания атрибутов могут использоваться различные методы предсказания атрибутов в различных вариантах осуществления изобретения. Обычно предсказание атрибутов текущей точки выполняется с использованием ранее реконструированных атрибутов точек, соседних с текущей точкой. Когда процесс предсказания атрибутов запускается на основе порядка на основе LOD, реконструированные значения атрибутов точек до текущей точки уже доступны. Кроме того, из процесса кодирования или декодирования октодерева также доступны позиции (трехмерные координаты) точек в облаке точек. Соответственно, процесс предсказания атрибутов может выполняться с учетом реконструированных атрибутов и трехмерных координат соседних точек текущей точки.[0055] Various attribute prediction methods may be used to determine attribute prediction in various embodiments of the invention. Typically, current point attribute prediction is performed using previously reconstructed attributes of points adjacent to the current point. When the attribute prediction process is started based on the LOD-based order, the reconstructed point attribute values up to the current point are already available. In addition, positions (3D coordinates) of points in the point cloud are also available from the octree encoding or decoding process. Accordingly, the attribute prediction process can be performed considering the reconstructed attributes and 3D coordinates of neighboring points of the current point.

[0056] Например, набор соседних точек текущей точки может быть сначала определен с использованием различных алгоритмов. В одном примере может быть выполнен процесс поиска на основе древовидной структуры k-d для определения набора точек, ближайших к текущей точке.[0056] For example, the set of neighboring points of the current point may be first determined using various algorithms. In one example, a k-d tree structure search process may be performed to determine the set of points closest to the current point.

[0057] Например, для определения предсказания атрибута используется подход на основе геометрического расстояния и/или атрибутного расстояния. Атрибут предсказания может быть определен на основе взвешенной суммы (или средневзвешенного) реконструированных атрибутов набора определенных соседних точек в кодере или декодере. Например, с использованием набора определенных соседних точек взвешенная сумма (или средневзвешенное) реконструированных атрибутов определенных соседних точек может быть определена как атрибут предсказания в кодере или декодере. Например, вес, используемый в способе на основе взвешенной суммы (также называемом способом на основе интерполяции), может быть обратным (или обратно пропорциональным) геометрическому расстоянию или атрибутному расстоянию. В качестве альтернативы, вес может быть двусторонним весом, полученным из комбинации веса на основе геометрического расстояния (геометрическая восьмерка) и веса на основе атрибутного расстояния (веса атрибута).[0057] For example, a geometric distance and/or attribute distance approach is used to determine attribute prediction. A prediction attribute may be determined based on a weighted sum (or weighted average) of the reconstructed attributes of a set of determined neighboring points at an encoder or decoder. For example, using a set of certain neighboring points, a weighted sum (or weighted average) of the reconstructed attributes of certain neighboring points may be determined as a prediction attribute at an encoder or decoder. For example, the weight used in the weighted sum method (also referred to as the interpolation based method) may be inverse (or inversely proportional) to geometric distance or attribute distance. Alternatively, the weight may be a two-sided weight derived from a combination of a geometric distance weight (geometric 8) and an attribute distance weight (attribute weight).

[0058] Например, для определения предсказания атрибута используется подход, основанный на соотношении «скорость-искажение» (RD, rate-distortion). Например, индекс кандидата может быть связан с каждым реконструированным значением атрибута набора соседних точек в кодере или декодере. В кодере может выполняться способ на основе оптимизации RD для оценки того, какое из возможных реконструированных значений атрибутов соседних точек представляет собой лучший выбор для использования в качестве предсказания атрибута. Например, искажение можно измерить по разности исходного (или истинного) значения атрибута текущей точки и предсказания кандидата (реконструированного значения атрибута кандидата). Скорость может быть стоимостью кодирования индекса выбранного предсказания кандидата. Для определения лучшего кандидата для сигнала предсказания может быть определена лагранжева функция RD-стоимости. Таким образом, индекс кандидата выбранного предсказания кандидата может сигнализироваться в декодер.[0058] For example, a rate-distortion (RD) approach is used to determine attribute prediction. For example, a candidate index may be associated with each reconstructed neighbor set attribute value at an encoder or decoder. An RD optimization based method may be performed at the encoder to evaluate which of the possible reconstructed neighbor point attribute values is the best choice to use as an attribute prediction. For example, distortion can be measured by the difference between the original (or true) value of the current point attribute and the candidate prediction (reconstructed candidate attribute value). The rate may be the cost of encoding an index of the selected candidate prediction. To determine the best candidate for the prediction signal, a Lagrangian RD cost function can be determined. Thus, the candidate index of the selected candidate prediction may be signaled to the decoder.

[0059] Соответственно, декодер может сначала определить тот же набор соседних точек для соответствующей текущей точки и связать индексы с реконструированными значениями атрибутов одного и того же набора соседних точек таким же образом, как и на стороне кодера. Затем декодер может определить предсказание атрибута на основе реконструированных значений атрибутов соседних точек, используя сигнализированный индекс кандидата.[0059] Accordingly, the decoder may first determine the same set of neighboring points for the corresponding current point and associate indices with reconstructed attribute values of the same set of neighboring points in the same manner as on the encoder side. The decoder may then determine an attribute prediction based on the reconstructed attribute values of neighboring points using the signaled candidate index.

[0060] 7. Примеры систем кодирования для сжатия облака точек[0060] 7. Examples of coding systems for point cloud compression

[0061] Фиг. 3 показывает пример кодера (300) в соответствии с вариантом осуществления изобретения. Кодер может быть сконфигурирован для приема данных облака точек и сжатия данных облака точек для создания битового потока, переносящего сжатые данные облака точек. В варианте осуществления изобретения кодер (300) может включать модуль (310) квантования позиции, модуль (312) удаления повторяющихся точек, модуль (330) кодирования октодерева, модуль (320) передачи атрибутов, модуль (340) формирования LOD, модуль (350) предсказания атрибутов, модуль (360) квантования остатка, модуль (370) арифметического кодирования, модуль (380) деквантования остатка, модуль (381) сложения и память (390) для хранения реконструированных значений атрибутов.[0061] FIG. 3 shows an example of an encoder (300) in accordance with an embodiment of the invention. The encoder may be configured to receive point cloud data and compress the point cloud data to create a bit stream carrying the compressed point cloud data. In an embodiment of the invention, the encoder (300) may include a position quantization module (310), a duplicate point removal module (312), an octree encoding module (330), an attribute transmission module (320), a LOD generation module (340), a module (350) attribute prediction, a residual quantization module (360), an arithmetic coding module (370), a residual dequantization module (380), an addition module (381), and a memory (390) for storing the reconstructed attribute values.

[0062] Как показано, кодер (300) может принимать входное облако (301) точек. Позиции (трехмерные координаты) облака (301) точек предоставляются модулю (310) квантования. Модуль (310) квантования сконфигурирован для квантования координат для формирования квантованных позиций. Дополнительный модуль (312) удаления повторяющихся точек сконфигурирован для приема квантованных позиций и выполнения процесса фильтрации для идентификации и удаления повторяющихся точек. Модуль (330) кодирования октодерева сконфигурирован для приема отфильтрованных позиций от модуля удаления повторяющихся точек и выполнения процесса кодирования на основе октодерева для формирования последовательности кодов занятости, которые описывают трехмерную сетку вокселей. Коды занятости передаются в модуль (370) арифметического кодирования.[0062] As shown, the encoder (300) may receive an input point cloud (301). The positions (three-dimensional coordinates) of the point cloud (301) are provided to the quantization module (310). The quantization module (310) is configured to quantize coordinates to generate quantized positions. The additional module (312) for removing duplicate points is configured to receive the quantized positions and perform a filtering process to identify and remove duplicate points. The octree encoding module (330) is configured to receive filtered positions from the duplicate dot removal module and perform an octree-based encoding process to generate a sequence of busy codes that describe a three-dimensional grid of voxels. Busy codes are transmitted to the module (370) arithmetic coding.

[0063] Модуль (320) передачи атрибутов сконфигурирован для приема атрибутов входного облака точек и выполнения процесса передачи атрибутов для определения значения атрибута для каждого вокселя, когда несколько значений атрибутов связаны с соответствующим вокселем. Процесс передачи атрибутов может выполняться для переупорядоченных точек, выводимых из модуля (330) кодирования октодерева. Атрибуты после операций передачи предоставляются модулю (350) предсказания атрибутов. Модуль (340) формирования LOD сконфигурирован для работы с переупорядоченными точками, выводимыми из модуля (330) кодирования октодерева, и реорганизации точек в разные уровни LOD. Информация LOD подается в модуль (350) предсказания атрибутов.[0063] The attribute transfer module (320) is configured to receive attributes of the input point cloud and perform an attribute transfer process to determine an attribute value for each voxel when multiple attribute values are associated with a corresponding voxel. The attribute transfer process may be performed on the reordered points output from the octree encoding module (330). The attributes after the transfer operations are provided to the attribute prediction module (350). The LOD generation module (340) is configured to work with the reordered points output from the octree encoding module (330) and reorganize the points into different LOD levels. The LOD information is provided to the attribute prediction module (350).

[0064] Модуль (350) предсказания атрибутов обрабатывает точки в соответствии с порядком на основе LOD, указанным информацией LOD из модуля (340) формирования LOD. Модуль (350) предсказания атрибутов формирует предсказание атрибута для текущей точки на основе реконструированных атрибутов набора соседних точек для текущей точки, сохраненных в памяти (390). Остатки предсказания впоследствии могут быть получены на основе исходных значений атрибутов, полученных от модуля (320) передачи атрибутов, и локально сформированных предсказаний атрибутов. Когда индексы кандидатов используются в процессе предсказания соответствующего атрибута, индекс, соответствующий выбранному кандидату предсказания, может быть предоставлен в модуль (370) арифметического кодирования.[0064] The attribute prediction module (350) processes the points in accordance with the LOD-based order indicated by the LOD information from the LOD generation module (340). The attribute prediction module (350) generates an attribute prediction for the current point based on the reconstructed attributes of the set of neighboring points for the current point stored in the memory (390). The prediction residuals can subsequently be obtained based on the original attribute values received from the attribute transmission module (320) and the locally generated attribute predictions. When the candidate indexes are used in the corresponding attribute prediction process, the index corresponding to the selected prediction candidate may be provided to the arithmetic encoding module (370).

[0065] Модуль (360) квантования остатка сконфигурирован для приема остатков предсказания от модуля (350) предсказания атрибутов и выполнения квантования для формирования квантованных остатков. Квантованные остатки подаются в модуль (370) арифметического кодирования.[0065] The residual quantization module (360) is configured to receive prediction residuals from the attribute prediction module (350) and perform quantization to generate quantized residuals. The quantized residuals are fed to the arithmetic coding module (370).

[0066] Модуль (380) деквантования остатка сконфигурирован для приема квантованных остатков от модуля (360) квантования остатка и формирования реконструированных остатков предсказания путем выполнения операций, обратных операциям квантования, выполняемым в модуле (360) квантования остатка. Модуль (381) сложения сконфигурирован для приема реконструированных остатков предсказания из модуля (380) деквантования остатка и соответствующих предсказаний атрибутов из модуля (350) предсказания атрибутов. Путем объединения реконструированных остатков предсказания и предсказаний атрибутов, реконструированные значения атрибутов формируются и сохраняются в памяти (390).[0066] The residual dequantization module (380) is configured to receive quantized residuals from the residual quantization module (360) and generate reconstructed prediction residuals by performing the reverse operations of the quantization operations performed in the residual quantization module (360). The adder (381) is configured to receive the reconstructed prediction residuals from the residual dequantizer (380) and corresponding attribute predictions from the attribute predictor (350). By combining the reconstructed prediction residuals and the attribute predictions, the reconstructed attribute values are generated and stored in memory (390).

[0067] Модуль (370) арифметического кодирования сконфигурирован для приема кодов занятости, индексов кандидатов (если используются), квантованных остатков (если сформированы) и другой информации, а также выполнения энтропийного кодирования для дальнейшего сжатия принятых значений или информации. В результате может быть сформирован сжатый битовый поток (302), переносящий сжатую информацию. Битовый поток (302) может быть передан или иным образом предоставлен декодеру, который декодирует сжатый битовый поток, или может быть сохранен в запоминающем устройстве. Битовый поток может относиться к последовательности битов, которая формирует представление кодированных кадров облака точек. Кодированный кадр облака точек может относиться к кодированному представлению кадра облака точек.[0067] The arithmetic encoding module (370) is configured to receive busy codes, candidate indices (if used), quantized residuals (if generated), and other information, and perform entropy encoding to further compress the received values or information. As a result, a compressed bit stream (302) carrying compressed information can be generated. The bitstream (302) may be transmitted to or otherwise provided to a decoder that decodes the compressed bitstream, or may be stored in a storage device. A bitstream may refer to a sequence of bits that forms a representation of encoded point cloud frames. An encoded point cloud frame may refer to an encoded representation of a point cloud frame.

[0068] Фиг. 4 показывает пример декодера (400) в соответствии с вариантом осуществления изобретения. Декодер (400) может быть сконфигурирован для приема сжатого битового потока и выполнения декомпрессии данных облака точек для декомпрессии битового потока с формированием декодированных данных облака точек. В варианте осуществления изобретения декодер (400) может содержать модуль (410) арифметического декодирования, модуль (420) деквантования остатка, модуль (430) декодирования октодерева, модуль (440) формирования LOD, модуль (450) предсказания атрибутов и память (460) для хранения реконструированных значений атрибутов.[0068] FIG. 4 shows an example of a decoder (400) in accordance with an embodiment of the invention. The decoder (400) may be configured to receive the compressed bitstream and perform decompression of the point cloud data to decompress the bitstream to generate decoded point cloud data. In an embodiment, the decoder (400) may comprise an arithmetic decoding module (410), a residual dequantization module (420), an octree decoding module (430), a LOD generation module (440), an attribute prediction module (450), and a memory (460) for storing reconstructed attribute values.

[0069] Как показано, сжатый битовый поток (401) может быть принят в модуле (410) арифметического декодирования. Модуль (410) арифметического декодирования сконфигурирован для декодирования сжатого битового потока (401) для получения квантованных остатков (если они сформированы) и кодов занятости облака точек. Модуль (430) декодирования октодерева сконфигурирован для определения реконструированных позиций точек в облаке точек в соответствии с кодами занятости. Модуль (440) формирования LOD сконфигурирован для реорганизации точек в разные уровни LOD на основе реконструированных позиций и определения порядка на основе LOD. Модуль (420) деквантования остатка сконфигурирован для формирования реконструированных остатков на основе квантованных остатков, принятых от модуля (410) арифметического декодирования.[0069] As shown, the compressed bit stream (401) can be received in the module (410) arithmetic decoding. The arithmetic decoding module (410) is configured to decode the compressed bitstream (401) to obtain quantized residuals (if any) and point cloud occupancy codes. The octree decoding module (430) is configured to determine the reconstructed point positions in the point cloud according to the occupancy codes. The LOD generation module (440) is configured to reorganize the points into different LOD levels based on the reconstructed positions and determine the order based on the LOD. The residual dequantization module (420) is configured to generate reconstructed residuals based on the quantized residuals received from the arithmetic decoding module (410).

[0070] Модуль (450) предсказания атрибутов сконфигурирован для выполнения процесса предсказания атрибутов, чтобы определять предсказания атрибутов для точек в соответствии с порядком на основе LOD. Например, предсказание атрибута текущей точки может быть определено на основе реконструированных значений атрибутов соседних точек для текущей точки, сохраненных в памяти (460). Модуль (450) предсказания атрибута может объединять предсказание атрибута с соответствующим реконструированным остатком, чтобы сформировать реконструированный атрибут для текущей точки.[0070] The attribute prediction module (450) is configured to perform an attribute prediction process to determine attribute predictions for points according to LOD-based order. For example, a current point attribute prediction may be determined based on reconstructed neighboring point attribute values for the current point stored in memory (460). The attribute prediction module (450) may combine the attribute prediction with the corresponding reconstructed residual to generate a reconstructed attribute for the current point.

[0071] Последовательность реконструированных атрибутов, сформированная модулем (450) предсказания атрибутов, вместе с реконструированными позициями, сформированными модулем (430) декодирования октодерева, соответствует декодированному облаку (402) точек, которое выводится из декодера (400) в одном из примеров. Кроме того, реконструированные атрибуты также сохраняются в памяти (460) и могут впоследствии использоваться для получения предсказаний атрибутов для последующих точек.[0071] The sequence of reconstructed attributes generated by the attribute prediction module (450), together with the reconstructed positions generated by the octree decoding module (430), corresponds to the decoded point cloud (402) that is output from the decoder (400) in one example. In addition, the reconstructed attributes are also stored in memory (460) and can later be used to derive attribute predictions for subsequent points.

[0072] В различных вариантах осуществления изобретения кодер (300) и декодер (400) могут быть реализованы с помощью аппаратного обеспечения, программного обеспечения или их комбинации. Например, кодер (300) и декодер (400) могут быть реализованы с помощью схемы обработки, такой как одна или более интегральных схем (ИС), которые работают с программным обеспечением или без него, например специализированная интегральная схема (ASIC, application specific integrated circuit), вентильная матрица, программируемая пользователем (FPGA, field programmable gate array) и т.п. В другом примере кодер (300) и декодер (400) могут быть реализованы как программное обеспечение или встроенное программное обеспечение, включая инструкции, хранящиеся на постоянном (или энергонезависимом) машиночитаемом носителе данных. Инструкции при их исполнении схемой обработки, такой как один или более процессоров, заставляют схему обработки выполнять функции кодера (300) и декодера (400).[0072] In various embodiments of the invention, the encoder (300) and decoder (400) may be implemented using hardware, software, or a combination thereof. For example, the encoder (300) and decoder (400) may be implemented with a processing circuit, such as one or more integrated circuits (ICs), that operate with or without software, such as an application specific integrated circuit (ASIC). ), field programmable gate array (FPGA), etc. In another example, the encoder (300) and decoder (400) may be implemented as software or firmware, including instructions stored on a persistent (or non-volatile) computer-readable storage medium. The instructions, when executed by a processing circuit, such as one or more processors, cause the processing circuit to perform the functions of an encoder (300) and a decoder (400).

[0073] Следует отметить, что элементы в кодере (300) и декодере (400), сконфигурированные для реализации различных способов, раскрытых в данном описании, могут быть включены в другие декодеры или кодеры, которые могут иметь структуру, аналогичную структурам, показанным на фиг. 3 и фиг. 4, или отличную от них структуру. Кроме того, кодер (300) и декодер (400) могут быть включены в одно и то же устройство или отдельные устройства в различных примерах.[0073] It should be noted that elements in the encoder (300) and decoder (400) configured to implement the various methods disclosed herein may be included in other decoders or encoders, which may have a structure similar to those shown in FIG. . 3 and FIG. 4, or a structure different from them. In addition, the encoder (300) and decoder (400) may be included in the same device or separate devices in different examples.

[0074] II. G-PCC в тестовой модели 13 (ТМС13)[0074] II. G-PCC in test model 13 (TMC13)

[0075] G-PCC рассматривает сжатие облаков точек как Категории 1 (статические облака точек), так и Категории 3 (динамически полученные облака точек). Тестовая модель под названием ТМС13 была разработана Группой экспертов по движущимся изображениям (MPEG) в качестве основы для изучения потенциальных технологий кодирования облака точек. Модель ТМС13 отдельно сжимает геометрию и соответствующие атрибуты, такие как цвет или отражательная способность. Геометрия, которая представляет собой трехмерные координаты облаков точек, кодируется посредством разделения на основе октодерева. Затем атрибуты сжимаются на основе реконструированной геометрии с использованием способов предсказания и подъема (lifting).[0075] The G-PCC considers both Category 1 (static point clouds) and Category 3 (dynamically derived point clouds) point cloud compression. A test model called TMC13 has been developed by the Moving Picture Experts Group (MPEG) as a basis for exploring potential point cloud coding technologies. The TMC13 model separately compresses the geometry and related attributes such as color or reflectivity. The geometry, which is the 3D point cloud coordinates, is encoded by octree-based partitioning. The attributes are then compressed based on the reconstructed geometry using predictive and lifting techniques.

[0076] 1. Разделение на основе октодерева и кодирование информации о занятости в текущей версии ТМС13[0076] 1. Octree-based partitioning and coding of busy information in the current version of TMC13

[0077] Равномерное разделение трехмерного куба приведет к созданию восьми подкубов и известно как разделение на основе октодерева (ОТ) при сжатии облака точек (РСС). Разделение ОТ напоминает разделение на основе бинарного дерева (ВТ) в одномерном пространстве и разделение на основе квадродерева (QT) в двумерном пространстве. Разделение ОТ проиллюстрировано на фиг. 5, где трехмерный куб (501), показанный сплошной линией, разделен на восемь меньших кубов одинакового размера, показанных пунктирной линией. Левые 4 кубика связаны с индексами 0-3, а правые 4 кубика связаны с индексами 4-7.[0077] Dividing a 3D cube uniformly will result in eight sub-cubes and is known as octree (OT) partitioning in Point Cloud Compression (PCC). OT partitioning resembles binary tree (BT) partitioning in 1D space and quadtree partitioning (QT) in 2D space. The OT separation is illustrated in FIG. 5, where the three-dimensional cube (501) shown as a solid line is divided into eight smaller cubes of the same size shown as a dashed line. The left 4 dice are associated with indices 0-3 and the right 4 dice are associated with indices 4-7.

[0078] В ТМС13, если используется кодек геометрии октодерева, кодирование геометрии происходит следующим образом. Во-первых, кубический ограничивающий бокс В, выровненный по оси, определяется двумя точками (0,0,0) и (2d, 2d, 2d), где 2d определяет размер В, и d кодирован в битовом потоке. Предполагается, что все точки, которые необходимо сжать, находятся внутри заданного ограничивающего бокса В.[0078] In TMC13, if an octree geometry codec is used, geometry encoding occurs as follows. First, the axis-aligned cubic bounding box B is defined by two points (0,0,0) and (2d, 2d , 2d ), where 2d specifies the size of B, and d is encoded in the bitstream. It is assumed that all points to be compressed are inside the given bounding box B.

[0079] Затем строится структура октодерева путем рекурсивного разделения В. На каждом этапе куб разделяется на 8 подкубов. Размер подкуба после итеративного разделения k (k≤d) раз будет (2d-k, 2d-k, 2d-k). Затем формируется 8-битовый код, а именно код занятости, путем связывания однобитового значения с каждым подкубом, чтобы указать, содержит ли он точки (то есть полный и имеет значение 1) или нет (то есть пустой и имеет значение 0). Только полные подкубы размером больше 1 (то есть не воксели) далее разделяются. Затем код занятости для каждого куба может быть сжат с помощью арифметического кодера.[0079] The octree structure is then built by recursively partitioning B. At each step, the cube is divided into 8 sub-cubes. The size of the subcube after iterative splitting k (k≤d) times will be (2 dk , 2 dk , 2 dk ). An 8-bit code, namely the busy code, is then generated by associating a one-bit value with each subcube to indicate whether it contains dots (i.e., full and has a value of 1) or not (i.e., empty and has a value of 0). Only complete subcubes larger than 1 (i.e., not voxels) are further split. The busy code for each cube can then be compressed using an arithmetic encoder.

[0080] Процесс декодирования начинается со считывания из битового потока размеров ограничивающего бокса В. Та же самая структура октодерева затем строится путем разделения В в соответствии с декодированными кодами занятости. Пример двухуровневого разделения ОТ и соответствующих кодов занятости показан на фиг. 6, где темные кубики и узлы указывают на то, что они заняты точками.[0080] The decoding process starts by reading the dimensions of the bounding box B from the bitstream. The same octree structure is then built by dividing B according to the decoded busy codes. An example of a two-level separation of OTs and associated busy codes is shown in FIG. 6, where the dark cubes and nodes indicate that they are occupied by dots.

[0081] Как показано, куб (601) разделен на 8 подкубов. С помощью того же способа индексации, что и на фиг. 5, каждый из 0-го и 7-го подкубов дополнительно разделен на 8 подкубов. Октодерево (610), соответствующее разделениям куба (601), включает корневой узел (611) на первом уровне. Корневой узел (611) разделен на 8 дочерних узлов, которые могут быть проиндексированы от 0 до 7. Узлы 0 и 7 (612-613) на втором уровне дополнительно разделены на 16 дочерних узлов. Уровень узла в октодереве (610) может соответствовать количеству скачков от корня до соответствующего узла и может называться глубиной октодерева (610). Глубины 0-2, соответствующие уровням октодерева (610) с первого по третий, указаны на фиг. 6.[0081] As shown, the cube (601) is divided into 8 subcubes. Using the same indexing method as in FIG. 5, each of the 0th and 7th subcubes is further divided into 8 subcubes. The octree (610) corresponding to the partitions of the cube (601) includes a root node (611) at the first level. The root node (611) is divided into 8 child nodes, which can be indexed from 0 to 7. Nodes 0 and 7 (612-613) at the second level are further divided into 16 child nodes. The level of a node in the octree (610) may correspond to the number of hops from the root to the corresponding node, and may be referred to as the depth of the octree (610). Depths 0-2, corresponding to the first through third levels of the octree (610), are indicated in FIG. 6.

[0082] 2. Кодирование кодов занятости[0082] 2. Busy code coding

[0083] Код занятости каждого узла может быть сжат с помощью арифметического кодера. Код занятости может быть обозначен как S, который представляет собой 8-биновое целое число, при этом каждый бин в S указывает состояние занятости каждого дочернего узла. В ТМС13 существует два способа кодирования кода занятости, а именно способы побитового кодирования и побайтного кодирования, причем побитовое кодирование включено по умолчанию. В любом случае для кодирования кода занятости выполняется арифметическое кодирование с контекстным моделированием, при этом состояние контекста инициализируется в начале всего процесса кодирования и обновляется во время процесса кодирования.[0083] The busy code of each node may be compressed using an arithmetic encoder. The busy code may be denoted as S, which is an 8-bin integer, with each bin in S indicating the busy state of each child node. In TMC13, there are two ways to encode the busy code, namely, bit-by-bit encoding and byte-by-byte encoding, with bit encoding enabled by default. In either case, context simulation arithmetic encoding is performed to encode the busy code, with the context state initialized at the beginning of the entire encoding process and updated during the encoding process.

[0084] Для побитового кодирования восемь бинов в S кодируются в определенном порядке, где каждый бин кодируется путем ссылки на состояние занятости соседних узлов и дочерних узлов соседних узлов, при этом соседние узлы находятся на одном уровне текущего узла.[0084] For bitwise encoding, the eight bins in S are encoded in a particular order, where each bin is encoded by referring to the busy state of neighboring nodes and children of neighboring nodes, with neighboring nodes being at the same level of the current node.

[0085] Для побайтного кодирования S кодируется путем обращения к адаптивной поисковой таблице (A-LUT, adaptive look up table), которая отслеживает N (например, 32) наиболее частых кодов занятости, и к кэш-памяти, которая отслеживает последние различные наблюдаемые М (например, 16) кодов занятости.[0085] For byte coding, S is encoded by referring to an adaptive lookup table (A-LUT) that keeps track of the N (e.g., 32) most frequent busy codes, and a cache that keeps track of the last different observed M (for example, 16) busy codes.

[0086] Кодируется двоичный флаг, указывающий, находится ли S в таблице А-LUT или нет. Если S находится в таблице A-LUT, индекс в таблице A-LUT кодируется с помощью двоичного арифметического кодера. Если S отсутствует в таблице A-LUT, то кодируется двоичный флаг, указывающий, находится ли S в кэше или нет. Если S находится в кэше, то двоичное представление его индекса в кэше кодируется с помощью двоичного арифметического кодера. В противном случае, если S отсутствует в кэше, двоичное представление S кодируется с помощью двоичного арифметического кодера.[0086] A binary flag indicating whether S is in the A-LUT or not is encoded. If S is in the A-LUT, the index in the A-LUT is encoded with a binary arithmetic encoder. If S is not in the A-LUT, then a binary flag is encoded indicating whether S is in the cache or not. If S is in the cache, then the binary representation of its cache index is encoded using a binary arithmetic encoder. Otherwise, if S is not in the cache, the binary representation of S is encoded using a binary arithmetic encoder.

[0087] Процесс декодирования начинается с анализа размеров ограничивающего бокса В из битового потока. Такая же структура октодерева затем строится путем разделения В в соответствии с декодированными кодами занятости.[0087] The decoding process begins by parsing the dimensions of bounding box B from the bitstream. The same octree structure is then built by dividing B according to the decoded busy codes.

[0088] III Неявное геометрическое разделение для кодирования облака точек[0088] III Implicit Geometric Separation for Point Cloud Encoding

[0089] 1. Проблема[0089] 1. Problem

[0090] В проекте ТМС13 ограничивающий бокс может быть только кубом В, который имеет одинаковый размер для всех измерений, и выполняется разделение ОТ для полных подкубов в каждом узле, при этом подкубы уменьшаются вдвое во всех измерениях. Разделение ОТ выполняется рекурсивно до тех пор, пока размер подкубов не достигнет единицы или пока в подкубах не останется точек. Однако этот способ не эффективен для всех случаев, особенно когда точки неравномерно распределены в трехмерной сцене. Одним из крайних случаев может быть двумерная плоскость в трехмерном пространстве, в которой все точки расположены в плоскости ху, а отклонение по оси z равно нулю. В этом случае разделение ОТ, выполняемое на кубе В в качестве начальной точки, приведет к трате большого количества битов на представление информации о занятости в направлении z, что является избыточным и бесполезным. В реальных приложениях наихудший случай может встречаться нечасто, однако облако точек обычно имеет асимметричный ограничивающий бокс, который имеет меньшую длину в некоторых измерениях.[0090] In the TMC13 design, the bounding box can only be cube B, which is the same size for all dimensions, and splits OT for full subcubes at each node, with subcubes halved in all dimensions. FROM splitting is performed recursively until the size of the subcubes reaches one or until there are no points left in the subcubes. However, this method is not effective in all cases, especially when the points are unevenly distributed in the 3D scene. One extreme case would be a 2D plane in 3D space where all points are in the xy plane and the z-axis deviation is zero. In this case, the OT split performed on cube B as a starting point would waste a lot of bits to represent occupancy information in the z-direction, which is redundant and useless. In real applications, the worst case may not occur often, however, the point cloud usually has an asymmetric bounding box that is shorter in some dimensions.

[0091] Как показано на фиг. 7, последовательность облака точек с названием ford_01_voxlmm, используемая для тестирования в MPEG-PCC, имеет основные компоненты в направлениях х и у. Фактически, многие данные облака точек, сформированные датчиком лидара, имеют такие же характеристики.[0091] As shown in FIG. 7, the point cloud sequence named ford_01_voxlmm used for testing in MPEG-PCC has principal components in the x and y directions. In fact, many point cloud data generated by a lidar sensor have the same characteristics.

[0092] 2. Неявные разделения QT и ВТ[0092] 2. Implicit separation of QT and BT

[0093] Аспекты изобретения предоставляют варианты осуществления изобретения, касающиеся разделения ограничивающего бокса в виде прямоугольного параллелепипеда, где куб или узел во время разделения могут быть неявно определены как разделяемые посредством разделения QT или ВТ, вместо всегда применяемого разделения ОТ. Биты занятости, указывающие информацию о занятости, могут быть сохранены на основе неявных разделений QT и ВТ.[0093] Aspects of the invention provide embodiments of the invention regarding partitioning of a cuboid bounding box, where a cube or node at the time of partitioning can be implicitly defined as being partitioned by a QT or BT partition, instead of the always applied OT partition. The busy bits indicating busy information may be stored based on the implicit separations of QT and BT.

[0094] Для ограничивающего бокса, который может не быть идеальным кубом, в некоторых случаях узлы на разных уровнях могут не быть (или не могут быть) разделены во всех направлениях. Если разделение выполняется во всех трех направлениях, то такое разделение представляет собой типичное разделение ОТ. Если разделение выполняется в двух направлениях из трех, то это разделение QT в трехмерном пространстве. Если разделение выполняется только в одном направлении, тогда разделение является разделением ВТ в трехмерном пространстве. Примеры разделений QT и ВТ в трехмерном пространстве показаны на фиг. 8 и фиг. 9, соответственно. Для демонстрации на чертежах показаны разделения QT и ВТ идеального куба, но следует отметить, что разделение может осуществляться на основе любого обычного прямоугольного параллелепипеда, образующего ограничивающий бокс.[0094] For a bounding box, which may not be a perfect cube, in some cases nodes at different levels may not (or may not) be separated in all directions. If the separation is performed in all three directions, then such a separation is a typical OT separation. If the split is in two of the three directions, then it is a QT split in 3D space. If the separation is performed in only one direction, then the separation is BT separation in 3D space. Examples of QT and BT separations in 3D space are shown in FIG. 8 and FIG. 9, respectively. For purposes of illustration, the drawings show partitions QT and BT of an ideal cube, but it should be noted that the partition can be based on any conventional cuboid forming a bounding box.

[0095] На фиг. 8 показаны три куба (801-803), разделенные вдоль осей (или направлений) х-у, x-z и y-z, соответственно. Подузлам в каждом кубе (801-803) назначаются индексы, которые являются подмножеством 8 индексов для индексации 8 дочерних узлов при разделении ОТ в примере на фиг. 5. С назначенными индексами, разделения QT с тремя различными направлениями могут быть представлены с использованием кодов занятости в структуре октодерева. Например, код занятости, представляющий разделение QT вдоль осей х-у до куба (801), может принимать форму х0х0х0х0, где бит в позиции х может использоваться для указания состояния занятости (например, может принимать значение 1 или 0). Точно так же код занятости, представляющий разделение QT вдоль осей x-z до куба (802), может принимать форму хх00хх00, в то время как код занятости, представляющий разделение QT вдоль осей y-z до куба (803), может принимать форму хххх0000. Как показано, эти индексы, назначенные подкубам, также указывают позиции битов, соответствующих полученным в результате подузлам, в 8-битовом коде занятости.[0095] FIG. 8 shows three cubes (801-803) divided along the axes (or directions) x-y, x-z and y-z, respectively. The subnodes in each cube (801-803) are assigned indexes that are a subset of the 8 indexes for indexing the 8 child nodes in the OT split in the example of FIG. 5. With indexes assigned, QT partitions with three different directions can be represented using busy codes in an octree structure. For example, an occupancy code representing the division of QT along the x-y axes to a cube (801) may take the form x0x0x0x0, where the bit at position x may be used to indicate the busy state (eg, may be 1 or 0). Similarly, an occupancy code representing a QT split along the x-z axes to a cube (802) may take the form xx00xx00, while an occupancy code representing a QT split along the y-z axes to a cube (803) may take the form xxxx0000. As shown, these indices assigned to the subcubes also indicate the positions of the bits corresponding to the resulting subnodes in the 8-bit busy code.

[0096] На фиг. 9 показаны три куба (901-903), разделенные вдоль осей х, у и z, соответственно. Как и на фиг. 8, подузлам в каждом кубе (901-903) назначаются индексы, соответствующие позициям в коде занятости.[0096] FIG. 9 shows three cubes (901-903) divided along the x, y, and z axes, respectively. As in FIG. 8, subnodes in each cube (901-903) are assigned indices corresponding to positions in the busy code.

[0097] Когда выполняются заранее заданные условия, разделения QT и ВТ могут выполняться неявно. «Неявно» означает, что не требуется никаких дополнительных битов сигнализации для указания на то, что разделение QT или ВТ используется вместо разделения ОТ. Декодер может определять тип (например, разделение QT или ВТ) и направление разделения таким же образом, что и кодер, на основе заранее заданных условий. Более того, могут быть сохранены биты на основе неявного разделения QT или ВТ в сравнении с разделением ОТ при сигнализации информации о занятости каждого подузла. QT требует четыре бита вместо восьми, чтобы представить состояние занятости четырех подузлов, в то время как ВТ требует только два бита. Например, как показано на фиг. 8-9, биты в коде занятости, соответствующие индексам, назначенным подузлам, могут сигнализироваться, в то время как другие биты в коде занятости, не относящиеся к подузлам, могут быть пропущены (не сигнализируются). Таким образом, код занятости может включать пропущенные биты и сигнализированные биты, когда вводятся разделения QT и ВТ.[0097] When predetermined conditions are met, separation of QT and BT may be implicitly performed. "Implicit" means that no additional signaling bits are required to indicate that a QT or BT split is used instead of a OT split. The decoder may determine the type (eg, split QT or BT) and split direction in the same manner as the encoder based on predetermined conditions. Moreover, bits can be saved based on implicit QT or BT split versus OT split in signaling the busy information of each subnode. QT requires four bits instead of eight to represent the busy state of four subnodes, while BT requires only two bits. For example, as shown in FIG. 8-9, bits in the busy code corresponding to indices assigned to subnodes may be signaled, while other bits in the busy code not related to subnodes may be omitted (not signaled). Thus, the busy code may include missing bits and signaled bits when QT and BT separations are introduced.

[0098] Следует отметить, что разделения QT и ВТ могут быть реализованы в одной и той же структуре разделения ОТ. Выбор контекста на основе соседних кодированных кубов и энтропийного кодера может применяться аналогичным образом. Контекстное моделирование кода занятости на основе QT или ВТ может быть изменено в соответствии с асимметричной формой подузлов.[0098] It should be noted that QT and BT separations can be implemented in the same OT separation structure. Context selection based on neighboring coded cubes and an entropy encoder can be applied in a similar manner. The context modeling of the busy code based on QT or BT can be modified to suit the asymmetric shape of the subnodes.

[0099] Кодирование кодов занятости неявных разделений QT и ВТ может быть таким, как в следующих примерах. Во-первых, можно предположить, что код занятости ОТ кодирован в порядке индексов, как показано на фиг. 5. Затем, как показано на крайнем левом графике на фиг. 8 (куб (801)), код занятости разделения QT вдоль осей х-у можно кодировать, опуская биты в позициях 1, 3, 5 и 7, поскольку в декодере может быть сделан вывод, что они равны 0, при этом сигнализируются только биты в позициях 0, 2, 4 и 6. Точно так же для ВТ вдоль оси х, как показано на крайнем левом графике фиг. 9 (куб (901)), информация о занятости в позициях 0 и 4 может сигнализироваться, а об остальных шести битах может быть сделан вывод, что они равны 0.[0099] The encoding of the QT and BT implicit separation busy codes may be as in the following examples. First, it can be assumed that the OT busy code is encoded in index order, as shown in FIG. 5. Then, as shown in the leftmost graph in FIG. 8 (cube (801)), the QT split occupancy code along the x-y axes can be encoded by omitting the bits at positions 1, 3, 5, and 7, since they can be inferred at the decoder to be 0, with only the bits signaled. at positions 0, 2, 4, and 6. Similarly, for BT along the x-axis, as shown in the leftmost graph of FIG. 9 (cube (901)), the occupancy information at positions 0 and 4 may be signaled, and the remaining six bits may be inferred to be 0.

[00100] Кроме того, текущая версия ТМС13 имеет специальный режим для кодирования геометрии, который является прямым режимом (DM, direct mode) и позволяет кодировать позиции (х, у, z) в подузле напрямую без дополнительных разделений. Например, позиции являются относительными позициями относительно исходной точки текущего подузла с кодированием кодами фиксированной длины, где длина в битах определяется размером текущего подузла. Поскольку неявное разделение может привести к подузлам с неравными размерами в измерениях (х, у, z), режим DM может быть изменен соответствующим образом. Например, если подузел размером

Figure 00000004
должен кодироваться в режиме DM, относительные положения каждой точки в подузлах кодируются посредством кодирования кодами фиксированной длины с использованием (dx, dy, dz) битов, соответственно.[00100] In addition, the current version of TMC13 has a special mode for encoding geometry, which is a direct mode (DM, direct mode) and allows you to encode positions (x, y, z) in a sub-assembly directly without additional separations. For example, the positions are relative positions relative to the origin of the current subnode, encoded with fixed length codes, where the length in bits is determined by the size of the current subnode. Since implicit partitioning can result in sub-nodes with unequal sizes in the (x, y, z) dimensions, the DM mode can be changed accordingly. For example, if the subnode is
Figure 00000004
is to be encoded in DM mode, the relative positions of each point in the sub-nodes are encoded by fixed-length coding using (d x , d y , d z ) bits, respectively.

[00101] 3. Сигнализация ограничивающего бокса в виде прямоугольного параллелепипеда[00101] 3. Cuboid Bounding Box Signaling

[00102] Во-первых, ограничивающий бокс В не ограничен тем, чтобы иметь одинаковый размер во всех направлениях, вместо этого ограничивающий бокс может быть прямоугольным параллелепипедом произвольного размера, чтобы лучше соответствовать форме трехмерной сцены или объектов. В различных вариантах осуществления изобретения размер ограничивающего бокса В может быть представлен как степень двойки, то есть

Figure 00000005
. Значения dx, dy и dz упоминаются как значения log2 размеров ограничивающего бокса. Заметим, что dx, dy, dz не считаются равными и могут сигнализироваться отдельно в заголовке последовательности (например, в наборе параметров последовательности (SPS)) или заголовке слайса битового потока.[00102] First, bounding box B is not limited to being the same size in all directions, instead the bounding box may be a rectangular box of arbitrary size to better fit the shape of the 3D scene or objects. In various embodiments of the invention, the size of the bounding box B can be represented as a power of two, i.e.
Figure 00000005
. The values of d x , d y and d z are referred to as the log2 values of the bounding box sizes. Note that d x , d y , d z are not considered equal and may be signaled separately in a sequence header (eg, sequence parameter set (SPS)) or bitstream slice header.

[00103] Кроме того, стоит отметить, что размер ограничивающего бокса В может быть любым положительным числом без ограничения быть степенью двойки. На фиг. 7 показан пример ограничивающего бокса в виде прямоугольного параллелепипеда, заключающего сцену, где направление z имеет наименьший размер.[00103] In addition, it is worth noting that the size of bounding box B can be any positive number without being limited to being a power of two. In FIG. 7 shows an example of a cuboid bounding box enclosing the scene where the z-direction is the smallest.

[00104] В разделе III подробного описания вариантов осуществления изобретения показано, что некоторые варианты осуществления изобретения представляют собой изменения спецификаций стандарта проекта для сжатия облака точек на основе геометрии, ISG / IEC 23090-9: 2019 (Е), этап WD, ISG / IEC JTC 1 / SC 29 / WG 1 1 W18179, март 2019 г.[00104] Section III of the detailed description of embodiments of the invention shows that some embodiments of the invention are modifications of the specifications of the design standard for geometry-based point cloud compression, ISG / IEC 23090-9: 2019 (E), stage WD, ISG / IEC JTC 1 / SC 29 / WG 1 1 W18179 March 2019

[00105] Вариант А осуществления изобретения[00105] Embodiment A of the invention

[00106] В одном варианте осуществления изобретения размеры ограничивающего бокса в трех измерениях могут сигнализироваться в заголовке геометрического слайса в виде log2, как показано в таблице 1. Заголовок геометрического слайса может включать синтаксические элементы, применяемые к слайсу. Как правило, слайс может относиться к последовательности синтаксических элементов, представляющих часть кодированного кадра или весь кодированный кадр облака точек. Точки слайса могут содержаться в ограничивающем боксе, соответствующем слайсу.[00106] In one embodiment, the dimensions of a bounding box in three dimensions may be signaled in the geometric slice header as log2, as shown in Table 1. The geometric slice header may include syntax elements applied to the slice. Typically, a slice may refer to a sequence of syntax elements representing a portion of an encoded frame or an entire encoded frame of a point cloud. Slice points may be contained in a bounding box corresponding to the slice.

Figure 00000006
Figure 00000006

[00107] Синтаксис заголовка геометрического слайса в таблице 1 изменен путем добавления следующих синтаксических элементов в строках 10-12:[00107] The geometry slice header syntax in Table 1 has been changed by adding the following syntax elements in lines 10-12:

[00108] gsh_log2_max_nodesize_x задает размер ограничивающего бокса в измерении х, то есть MaxNodesizeX, который используется в процессе декодирования следующим образом:[00108] gsh_log2_max_nodesize_x specifies the size of the bounding box in the x dimension, i.e. MaxNodesizeX, which is used in the decoding process as follows:

MaxNodeSizeX=2gsh-log2-max-nodesize-x.MaxNodeSizeX=2 gsh - log2 - max - nodesize - x .

MaxNodeSizeLog2X=gsh_log2_max_nodesize_x.MaxNodeSizeLog2X=gsh_log2_max_nodesize_x.

[00109] gsh_log2_max_nodesize_y задает размер ограничивающего бокса в измерении у, то есть MaxNodesizeY, который используется в процессе декодирования следующим образом:[00109] gsh_log2_max_nodesize_y specifies the size of the bounding box in the y dimension, i.e. MaxNodesizeY, which is used in the decoding process as follows:

MaxNodeSizeY=2gsh-log2-max-nodesize_y.MaxNodeSizeY=2 gsh - log2 - max - nodesize_y .

MaxNodeSizeLog2Y=gsh_log2_max_nodesize_y.MaxNodeSizeLog2Y=gsh_log2_max_nodesize_y.

[00110] gsh_log2_max_nodesize_z задает размер ограничивающего бокса в измерении z, то есть MaxNodesizeZ, который используется в процессе декодирования следующим образом:[00110] gsh_log2_max_nodesize_z specifies the size of the bounding box in the z dimension, i.e. MaxNodesizeZ, which is used in the decoding process as follows:

MaxNodeSizeZ=2gsh_log2_max_nodesize_z.MaxNodeSizeZ=2 gsh_log2_max_nodesize_z .

MaxNodeSizeLog2Z=gsh_log2_max_nodesize_z.MaxNodeSizeLog2Z=gsh_log2_max_nodesize_z.

[00111] Вариант В осуществления изобретения[00111] Embodiment B of the invention

[00112] В другом варианте осуществления изобретения размеры в трех измерениях могут сигнализироваться в заголовке геометрического слайса в виде log2. Вместо того чтобы сигнализировать три значения независимо, можно сигнализировать их разность следующим образом.[00112] In another embodiment of the invention, dimensions in three dimensions may be signaled in the geometric slice header as log2. Instead of signaling the three values independently, one can signal their difference as follows.

Figure 00000007
Figure 00000007

[00113] Синтаксис заголовка геометрического слайса в таблице 2 изменен путем добавления следующих синтаксических элементов в строках 10-12:[00113] The geometry slice header syntax in Table 2 has been changed by adding the following syntax elements on lines 10-12:

[00114] gsh_log2_max_nodesize_x задает размер ограничивающего бокса в измерении х, то есть MaxNodesizeX, который используется в процессе декодирования следующим образом:[00114] gsh_log2_max_nodesize_x specifies the size of the bounding box in the x dimension, i.e. MaxNodesizeX, which is used in the decoding process as follows:

MaxNodeSizeX=2gsh-log2-max-nodesize-x.MaxNodeSizeX=2 gsh - log2 - max - nodesize - x .

MaxNodeSizeLog2X=gsh_log2_max_nodesize_x.MaxNodeSizeLog2X=gsh_log2_max_nodesize_x.

[00115] gsh_log2_max_nodesize_y_minus_x задает размер ограничивающего бокса в измерении у, то есть MaxNodesizeY, который используется в процессе декодирования следующим образом:[00115] gsh_log2_max_nodesize_y_minus_x specifies the size of the bounding box in the y dimension, i.e. MaxNodesizeY, which is used in the decoding process as follows:

MaxNodeSizeY=2gsh_log2_max_nodesize_y_minus_x+gsh_log2_max_nodesize_x.MaxNodeSizeY=2 gsh_log2_max_nodesize_y_minus_x+gsh_log2_max_nodesize_x .

MaxNodeSizeLog2Y=gsh_log2_max_nodesize_y_minus_x+gsh_log2_max_nodesize_x.MaxNodeSizeLog2Y=gsh_log2_max_nodesize_y_minus_x+gsh_log2_max_nodesize_x.

[00116] gsh_iog2_max_nodesize_z_minus_у задает размер ограничивающего бокса в измерении z, то есть MaxNodesizeZ, который используется в процессе декодирования следующим образом:[00116] gsh_iog2_max_nodesize_z_minus_y specifies the size of the bounding box in the z dimension, i.e. MaxNodesizeZ, which is used in the decoding process as follows:

MaxNodeSizeZ=2gsh_log2_max_nodesize_z_minus_y+MaxNodeSizeLog2Y.MaxNodeSizeZ=2 gsh_log2_max_nodesize_z_minus_y+MaxNodeSizeLog2Y .

MaxNodeSizeLog2Z=gsh_log2_max_nodesize_z_minus_y+MaxNodeSizeLog2Y.MaxNodeSizeLog2Z=gsh_log2_max_nodesize_z_minus_y+MaxNodeSizeLog2Y.

[00117] Вариант С осуществления изобретения[00117] Embodiment C

[00118] В другом варианте осуществления изобретения размеры в трех измерениях могут сигнализироваться в заголовке геометрического слайса с помощью их декартовых положений следующим образом.[00118] In another embodiment of the invention, dimensions in three dimensions may be signaled in the geometric slice header using their Cartesian positions as follows.

Figure 00000008
Figure 00000008

[00119] Синтаксис заголовка геометрического слайса в таблице 3 изменен путем добавления следующих синтаксических элементов в строках 10-12:[00119] The geometry slice header syntax in Table 3 has been changed by adding the following syntax elements on lines 10-12:

[00120] gsh_max_nodesize_x задает размер ограничивающего бокса в измерении х, то есть MaxNodeSizeX, который используется в процессе декодирования следующим образом:[00120] gsh_max_nodesize_x specifies the size of the bounding box in the x dimension, i.e. MaxNodeSizeX, which is used in the decoding process as follows:

MaxNodeSizeX=gsh_max_nodesize_x,MaxNodeSizeX=gsh_max_nodesize_x,

MaxNodeSizeLog2X=ilog2(MaxNodeSizeX),MaxNodeSizeLog2X=ilog2(MaxNodeSizeX),

где ilog2(v) вычисляет наименьшее целое число, которое больше или равно log2(v).where ilog2(v) evaluates to the smallest integer greater than or equal to log2(v).

[00121] gsh_max_nodesize_y задает размер ограничивающего бокса в измерении у, то есть MaxNodeSizeY, который используется в процессе декодирования следующим образом:[00121] gsh_max_nodesize_y specifies the size of the bounding box in the y dimension, i.e. MaxNodeSizeY, which is used in the decoding process as follows:

MaxNodeSizeY=gsh_max_nodesize_y.MaxNodeSizeY=gsh_max_nodesize_y.

MaxNodeSizeLog2Y=ilog2 (MaxNodeSizeY).MaxNodeSizeLog2Y=ilog2(MaxNodeSizeY).

[00122] gsh_max_nodesize_z задает размер ограничивающего бокса в измерении z, то есть MaxNodeSizeZ, который используется в процессе декодирования следующим образом:[00122] gsh_max_nodesize_z specifies the size of the bounding box in the z dimension, i.e. MaxNodeSizeZ, which is used in the decoding process as follows:

MaxNodeSizeZ=gsh_max_nodesize_z.MaxNodeSizeZ=gsh_max_nodesize_z.

MaxNodeSizeLog2Z=ilog2(MaxNodeSizeZ).MaxNodeSizeLog2Z=ilog2(MaxNodeSizeZ).

[00123] Вариант D осуществления изобретения[00123] Embodiment D

[00124] В другом варианте осуществления изобретения размеры в трех измерениях могут сигнализироваться в заголовке геометрического слайса с помощью их декартовых положений за вычетом единицы следующим образом.[00124] In another embodiment of the invention, dimensions in three dimensions may be signaled in the geometric slice header with their Cartesian positions minus one, as follows.

Figure 00000009
Figure 00000009

[00125] Синтаксис заголовка геометрического слайса в таблице 4 изменен путем добавления следующих синтаксических элементов в строках 10-12:[00125] The geometry slice header syntax in Table 4 has been changed by adding the following syntax elements on lines 10-12:

[00126] gsh_max_nodesize_x_minus_one задает размер ограничивающего бокса в измерении х, то есть MaxNodeSizeX, который используется в процессе декодирования следующим образом:[00126] gsh_max_nodesize_x_minus_one specifies the size of the bounding box in the x dimension, i.e. MaxNodeSizeX, which is used in the decoding process as follows:

MaxNodeSizeX=gsh_max_nodesize_x_minus_one + 1.MaxNodeSizeX=gsh_max_nodesize_x_minus_one + 1.

MaxNodeSizeLog2X=ilog2(MaxNodeSizeX).MaxNodeSizeLog2X=ilog2(MaxNodeSizeX).

[00127] gsh_max_nodesize_y_mimis_one задает размер ограничивающего бокса в измерении у, то есть MaxNodeSizeY, который используется в процессе декодирования следующим образом:[00127] gsh_max_nodesize_y_mimis_one specifies the size of the bounding box in the y dimension, i.e. MaxNodeSizeY, which is used in the decoding process as follows:

MaxNodeSizeY=gsh_max_nodesize_y_minus_one + 1.MaxNodeSizeY=gsh_max_nodesize_y_minus_one + 1.

MaxNodeSizeLog2Y=ilog2 (MaxNodeSizeY).MaxNodeSizeLog2Y=ilog2(MaxNodeSizeY).

[00128] gsh_max_nodesize_z_minus_one задает размер ограничивающего бокса в измерении z, то есть MaxNodeSizeZ, который используется в процессе декодирования следующим образом:[00128] gsh_max_nodesize_z_minus_one specifies the size of the bounding box in the z dimension, i.e. MaxNodeSizeZ, which is used in the decoding process as follows:

MaxNodeSizeZ=gsh_max_nodesize_z_minus_one + 1.MaxNodeSizeZ=gsh_max_nodesize_z_minus_one + 1.

MaxNodeSizeLog2Z=ilog2(MaxNodeSizeZ).MaxNodeSizeLog2Z=ilog2(MaxNodeSizeZ).

[00129] Вариант E осуществления изобретения[00129] Embodiment E

[00130] В другом варианте осуществления изобретения только одно измерение из трех позволяет иметь различные размеры. В этом случае размеры в измерениях х и у одинаковы, а размер в измерении z может быть другим, поэтому в заголовке геометрического слайса в виде log2 указываются два значения, как показано ниже.[00130] In another embodiment of the invention, only one of the three dimensions allows for different dimensions. In this case, the dimensions in the x and y dimensions are the same, but the dimension in the z dimension can be different, so the geometry slice header log2 specifies two values, as shown below.

Figure 00000010
Figure 00000010

[00131] Синтаксис заголовка геометрического слайса в таблице 5 изменен путем добавления следующих синтаксических элементов в строках 10-11:[00131] The geometry slice header syntax in Table 5 has been changed by adding the following syntax elements in lines 10-11:

[00132] gsh_log2_max_nodesize_x_y задает размер ограничивающего бокса в измерениях х и у, то есть MaxNodesizeX и MaxNodesizeY, которые используются в процессе декодирования следующим образом:[00132] gsh_log2_max_nodesize_x_y specifies the size of the bounding box in x and y dimensions, i.e. MaxNodesizeX and MaxNodesizeY, which are used in the decoding process as follows:

MaxNodeSizeX=MaxNodeSizeY=2gsh-log2-max-nodesize-x_y.MaxNodeSizeX=MaxNodeSizeY=2 gsh - log2 - max - nodesize - x_y .

MaxNodeSizeLog2X=MaxNodeSizeLog2Y=gsh_log2_max_nodesize_x_y.MaxNodeSizeLog2X=MaxNodeSizeLog2Y=gsh_log2_max_nodesize_x_y.

[00133] gsh_log2_max_nodesize_z задает размер ограничивающего бокса в измерении z, то есть MaxNodesizeZ, который используется в процессе декодирования следующим образом:[00133] gsh_log2_max_nodesize_z specifies the size of the bounding box in the z dimension, i.e. MaxNodesizeZ, which is used in the decoding process as follows:

MaxNodeSizeZ=2gsh-log2-max-nodesize-z.MaxNodeSizeZ=2 gsh - log2 - max - nodesize - z .

MaxNodeSizeLog2Z=gsh_log2_max_nodesize_z.MaxNodeSizeLog2Z=gsh_log2_max_nodesize_z.

[00134] Вариант F осуществления изобретения[00134] Embodiment F

[00135] В другом варианте осуществления изобретения только одно измерение из трех позволяет иметь различные размеры. В этом случае размеры в измерениях х и у одинаковы, а размер в измерении z может быть другим, поэтому в заголовке геометрического слайса указываются два значения в виде log2. Вместо того чтобы сигнализировать два значения независимо, можно сигнализировать их разность следующим образом.[00135] In another embodiment of the invention, only one dimension out of three allows for different dimensions. In this case, the dimensions in the x and y dimensions are the same, but the size in the z dimension can be different, so the geometry slice header contains two values in the form log2. Instead of signaling two values independently, one can signal their difference as follows.

Figure 00000011
Figure 00000011

[00136] Синтаксис заголовка геометрического слайса в таблице 6 изменен путем добавления следующих синтаксических элементов в строках 10-11:[00136] The geometry slice header syntax in Table 6 has been modified by adding the following syntax elements on lines 10-11:

[00137] gsh_log2_max_nodesize_x_y задает размер ограничивающего бокса в измерениях х и у, то есть MaxNodesizeX и MaxNodesizeY, которые используются в процессе декодирования следующим образом:[00137] gsh_log2_max_nodesize_x_y specifies the size of the bounding box in x and y dimensions, that is, MaxNodesizeX and MaxNodesizeY, which are used in the decoding process as follows:

Figure 00000012
Figure 00000012

[00138] gsh_log2_max_nodesize_z_minus_xy задает размер ограничивающего бокса в измерении z, то есть MaxNodesizeZ, который используется в процессе декодирования следующим образом:[00138] gsh_log2_max_nodesize_z_minus_xy specifies the size of the bounding box in the z dimension, i.e. MaxNodesizeZ, which is used in the decoding process as follows:

Figure 00000013
Figure 00000013

[00139] Вариант G осуществления изобретения[00139] Embodiment G

[00140] В другом варианте осуществления изобретения только одно измерение из трех позволяет иметь различные размеры. В этом случае размеры в измерениях х и у одинаковы, а размер в измерении z может быть другим, поэтому два значения сигнализируются в заголовке геометрического слайса с помощью их декартовых положений следующим образом.[00140] In another embodiment of the invention, only one dimension out of three allows for different dimensions. In this case, the dimensions in the x and y dimensions are the same, but the dimension in the z dimension can be different, so the two values are signaled in the geometry slice header with their Cartesian positions as follows.

Figure 00000014
Figure 00000014

[00141] Синтаксис заголовка геометрического слайса в таблице 7 изменен путем добавления следующих синтаксических элементов в строках 10-11:[00141] The geometry slice header syntax in Table 7 has been changed by adding the following syntax elements on lines 10-11:

[00142] gsh_max_nodesize_x_y задает размер ограничивающего бокса в измерениях х и у, то есть MaxNodesizeX и MaxNodesizeY, которые используются в процессе декодирования следующим образом:[00142] gsh_max_nodesize_x_y specifies the size of the bounding box in the x and y dimensions, i.e. MaxNodesizeX and MaxNodesizeY, which are used in the decoding process as follows:

MaxNodeSizeX=MaxNodeSizeY=gsh_max_nodesize_x_y.MaxNodeSizeX=MaxNodeSizeY=gsh_max_nodesize_x_y.

MaxNodeSizeLog2X=MaxNodeSizeLog2Y=ilog2(gsh_max_nodesize_x_y).MaxNodeSizeLog2X=MaxNodeSizeLog2Y=ilog2(gsh_max_nodesize_x_y).

[00143] gshmaxnodesizez задает размер ограничивающего бокса в измерении z, то есть MaxNodeSizeZ, который используется в процессе декодирования следующим образом:[00143] gshmaxnodesizez specifies the size of the bounding box in the z dimension, i.e. MaxNodeSizeZ, which is used in the decoding process as follows:

MaxNodeSizeZ=gsh_max_nodesize_z.MaxNodeSizeZ=gsh_max_nodesize_z.

MaxNodeSizeLog2Z=ilog2(gsh_max_nodesize_z).MaxNodeSizeLog2Z=ilog2(gsh_max_nodesize_z).

[00144] Вариант H осуществления изобретения[00144] Embodiment H

[00145] В другом варианте осуществления изобретения только одно измерение из трех позволяет иметь различные размеры. В этом случае размеры в измерениях х и у одинаковы, а размер в измерении z может быть другим, поэтому два значения сигнализируются в заголовке геометрического слайса с помощью их декартовых положений за вычетом единицы, как показано ниже.[00145] In another embodiment of the invention, only one dimension out of three allows for different dimensions. In this case, the dimensions in the x and y dimensions are the same, but the dimension in the z dimension can be different, so the two values are signaled in the geometry slice header by their Cartesian positions minus one, as shown below.

Figure 00000015
Figure 00000015

[00146] Синтаксис заголовка геометрического слайса в таблице 8 изменен путем добавления следующих синтаксических элементов в строках 10-11:[00146] The geometry slice header syntax in Table 8 has been modified by adding the following syntax elements on lines 10-11:

[00147] gsh_max_nodesize_x_y_minus_one задает размер ограничивающего бокса в измерениях х и у, то есть MaxNodesizeX и MaxNodesizeY, которые используются в процессе декодирования следующим образом:[00147] gsh_max_nodesize_x_y_minus_one specifies the size of the bounding box in x and y dimensions, that is, MaxNodesizeX and MaxNodesizeY, which are used in the decoding process as follows:

MaxNodeSizeX=MaxNodeSizeY=gsh_max_nodesize_x_y_minus_one + 1.MaxNodeSizeX=MaxNodeSizeY=gsh_max_nodesize_x_y_minus_one + 1.

MaxNodeSizeLog2X=MaxNodeSizeLog2Y=MaxNodeSizeLog2X=MaxNodeSizeLog2Y=

ilog2(gsh_max_nodesize_x_y_minus_one + 1).ilog2(gsh_max_nodesize_x_y_minus_one + 1).

[00148] gsh_max_nodesize_z_minus_one задает размер ограничивающего бокса в размерности z, то есть MaxNodeSizeZ, который используется в процессе декодирования следующим образом:[00148] gsh_max_nodesize_z_minus_one specifies the size of the bounding box in z dimension, i.e. MaxNodeSizeZ, which is used in the decoding process as follows:

MaxNodeSizeZ=gsh_max_nodesize_z_minus_one + 1.MaxNodeSizeZ=gsh_max_nodesize_z_minus_one + 1.

MaxNodeSizeLog2Z=ilog2(gsh_max_nodesize_z_minus_one + 1).MaxNodeSizeLog2Z=ilog2(gsh_max_nodesize_z_minus_one + 1).

[00149] 4. Сигнализация неявного разделения QT и ВТ[00149] 4. QT and BT Implicit Separation Signaling

[00150] Вариант А осуществления изобретения[00150] Embodiment A of the invention

[00151] В одном варианте осуществления изобретения синтаксис кодирования геометрии выглядит следующим образом.[00151] In one embodiment of the invention, the geometry encoding syntax is as follows.

Figure 00000016
Figure 00000016

[00152] Синтаксис данных геометрического слайса в таблице 9 изменен путем добавления или изменения синтаксических элементов в строках 3-14. В строке 14 добавлены новые переменные depthX, depthY, depthZ и partitionSkip в качестве входных данных для функции geometry node.[00152] The syntax of the geometric slice data in Table 9 has been changed by adding or changing syntax elements in lines 3-14. Line 14 adds new variables depthX, depthY, depthZ, and partitionSkip as input to the geometry node function.

[00153] Переменные NodeX[depthX][nodeldx], NodeY[depthY][nodeldx] и NodeZ[depthZ] [nodeldx] представляют координаты x, у и z узла nodeldx в порядке декодирования на заданной глубине. Переменная NumNodesAtDepth[глубина] представляет количество узлов, которые должны быть декодированы на заданной глубине. Переменные depthX, depthY и depthZ задают глубину в измерениях х, у и z, соответственно.[00153] The variables NodeX[depthX][nodeldx], NodeY[depthY][nodeldx], and NodeZ[depthZ] [nodeldx] represent the x, y, and z coordinates of nodeldx in decoding order at a given depth. The variable NumNodesAtDepth[depth] represents the number of nodes to be decoded at the given depth. The variables depthX, depthY, and depthZ define the depth in the x, y, and z dimensions, respectively.

[00154] Переменная partitionSkip указывает тип и направление разделения в таблице ниже (таблица 10).[00154] The partitionSkip variable indicates the type and direction of the partition in the table below (Table 10).

Figure 00000017
Figure 00000017

[00155] Переменная partitionSkip представлена в двоичной форме тремя битами bxbybz, которые определяют, следует ли пропускать разделение в измерениях х, у и z соответственно. Например, bx=1 указывает на отсутствие разделения в измерении х (разделение пропускается). Тип и направление разделения могут определяться конкретными условиями.[00155] The partitionSkip variable is represented in binary form by three bits b x b y b z , which determine whether to skip partitioning in the x, y, and z dimensions, respectively. For example, b x =1 indicates no split in the x dimension (split is skipped). The type and direction of separation may be determined by specific conditions.

Figure 00000018
Figure 00000018

[00156] Синтаксис геометрического узла в таблице 11 изменен путем добавления или изменения строк 0, 4, 8, 11-12 и 24-33. В строке 0 вводятся новые входные переменные depthX, depthY, depthZ и partitionSkip для облегчения разделения QT и ВТ. В строке 12 условие проверки того, был ли достигнут минимальный размер узла, изменено на основе оценки трех измерений, поскольку размеры узлов в разных измерениях могут быть разными, когда применяются разделения QT и ВТ.[00156] The syntax of the geometric node in Table 11 has been changed by adding or changing lines 0, 4, 8, 11-12 and 24-33. Line 0 introduces new input variables depthX, depthY, depthZ, and partitionSkip to facilitate the separation of QT and BT. In line 12, the condition for checking whether the minimum node size has been reached is changed based on the evaluation of three dimensions, since node sizes in different dimensions can be different when QT and BT splits are applied.

[00157] Синтаксическая структура в строках 24-33 описывает синтаксические элементы трехмерных координат точки в дочернем узле, обработанном с помощью DM. Переменные ChildNodeSizeLog2X, ChildNodeSizeLog2Y и ChildNodeSizeLog2Z задают размер дочернего узла для каждого измерения и могут быть определены неявными разделениями QT и ВТ следующим образом:[00157] The syntax structure in lines 24-33 describes the syntax elements of the 3D coordinates of a point in a child node processed by the DM. The variables ChildNodeSizeLog2X, ChildNodeSizeLog2Y, and ChildNodeSizeLog2Z define the size of the child node for each dimension and can be defined by implicit QT and BT separations as follows:

Figure 00000019
Figure 00000019

[00158] В вышеупомянутом процессе, если разделение происходит в одном из измерений, значение log2 размера дочернего узла в этом измерении будет равно значению log2 размера узла в этом измерении минус 1.[00158] In the above process, if a split occurs in one of the dimensions, the log2 value of the child node size in that dimension will be equal to the log2 value of the node size in that dimension minus 1.

[00159] В строке 4 синтаксический элемент occupancy_idx идентифицирует индекс единственного занятого дочернего элемента текущего узла в порядке обхода дочернего узла геометрии октодерева. Если переменная OccupancyMap присутствует, она может быть получена следующим образом:[00159] In line 4, the occupancy_idx syntax element identifies the index of the current node's single occupied child in octree geometry child node traversal order. If the OccupancyMap variable is present, it can be retrieved as follows:

Figure 00000020
Figure 00000020

[00160] Соответствующий процесс анализа occupancy_idx описан ниже.[00160] The corresponding occupancy_idx parsing process is described below.

Входными данными для этого процесса является переменная partitionSkip текущего узла.The input to this process is the current node's partitionSkip variable.

Выходными данными для этого процесса является значение синтаксического элемента occupancy_idx, построенного следующим образом:The output for this process is the value of the occupancy_idx syntax element constructed as follows:

Figure 00000021
Figure 00000021

[00161] В приведенном выше способе, для разделения QT или ВТ сигнализируют только бит(ы), связанный(е) с измерением(ями), где произошло разделение. Таким образом, сигнализируют меньшее количество битов, чем при разделении ОТ, чтобы указать позицию одного дочернего узла в коде занятости. Составной побитовый оператор ИЛИ | = «set» (установить в 1) устанавливает определенные биты в переменной occupancy_idx.[00161] In the above method, only the bit(s) associated with the measurement(s) where the split occurred are signaled for the QT or BT split. Thus, fewer bits are signaled than in the OT split to indicate the position of one child node in the busy code. Compound bitwise OR operator | = "set" (set to 1) sets certain bits in the occupancy_idx variable.

[00162] В строке 8 синтаксический элемент occupancy_map является битовой картой, которая идентифицирует занятые дочерние узлы текущего узла. При ее наличии, переменная OccupancyMap устанавливается равной выходным данным процесса перестановки геометрической карты занятости при вызове с переменными NeighbourPattern и occupancy map в качестве входных данных. NeighbourPattern (соседний шаблон) - это шаблон занятости соседнего окружения для контекстного моделирования. Как описано со ссылкой на фиг. 8-9, бины в коде занятости могут быть пропущены при сигнализации для разделения QT или ВТ. Четыре бина могут быть пропущены для разделения QT, и 6 бинов могут быть пропущены для разделения ВТ. Соответственно, в декодере может быть сделан вывод, что биты в этих позициях пропущенных битов в коде занятости равны 0.[00162] In line 8, the occupancy_map syntax element is a bitmap that identifies the occupied child nodes of the current node. If present, the OccupancyMap variable is set to the output of the occupancy geometric map permutation process when called with the NeighborPattern and occupancy map variables as input. NeighborPattern is a neighbor occupancy pattern for contextual modeling. As described with reference to FIG. 8-9, bins in the busy code may be skipped in signaling for QT or BT separation. Four bins may be omitted for QT separation and 6 bins may be omitted for BT separation. Accordingly, the decoder can infer that the bits at these missing bit positions in the busy code are 0.

[00163] Соответствующий процесс анализа занятости геометрического октодерева может быть описан следующим образом, где о некоторых битах сделан вывод, что они равны нулю, на основе переменной partitionSkip, которая указывает тип разделения и направление разделения с использованием переменной binIsSkiped [binIdx].[00163] The corresponding geometric octree occupancy analysis process can be described as follows, where some bits are inferred to be zero based on the partitionSkip variable, which indicates the partition type and partition direction using the binIsSkiped[binIdx] variable.

Этот процесс реконструирует синтаксический элемент occupancy_map.This process reconstructs the occupancy_map syntax element.

Входными данными для этого процесса являются NeighbourPattern, binIsSkiped и binlslnferred текущего узла. Выходными данными для этого процесса является значение синтаксического элемента, построенное следующим образом:The inputs to this process are the NeighbourPattern, binIsSkiped, and binlslnferred of the current node. The output for this process is the value of the syntax element constructed as follows:

Figure 00000022
Figure 00000022

где переменная binIsSkiped[binIdx] устанавливается следующим образом:where the variable binIsSkiped[binIdx] is set as follows:

Figure 00000023
Figure 00000023

Figure 00000024
Figure 00000024

переменная bitCodingOrder[i] определена в таблице ниже:the variable bitCodingOrder[i] is defined in the table below:

Figure 00000025
Figure 00000025

переменная inverseMap [i] [j] определена в таблицах ниже (см. таблицы 13-14):the inverseMap[i][j] variable is defined in the tables below (see tables 13-14):

Figure 00000026
Figure 00000026

Figure 00000027
Figure 00000027

[00164] Вариант В осуществления изобретения[00164] Embodiment B

[00165] В другом варианте осуществления изобретения только одно измерение из трех позволяет иметь различные размеры. В этом случае, если это измерение имеет больший размер, чем два других, выполняются только неявные разделения ВТ в этом измерении. Если это измерение имеет меньший размер, чем два других, выполняются только неявные разделения QT в двух других измерениях. Сигнализация неявного разделения ВТ или неявного разделения QT в этом варианте осуществления изобретения аналогична сигнализации, описанной в предыдущем варианте осуществления изобретения.[00165] In another embodiment of the invention, only one dimension out of three allows for different dimensions. In this case, if this dimension has a larger size than the other two, only implicit BT splits are performed in that dimension. If this dimension is smaller than the other two, only implicit QT splits are performed in the other two dimensions. The implicit BT split or implicit QT split signaling in this embodiment is similar to the signaling described in the previous embodiment.

[00166] Вариант С осуществления изобретения[00166] Embodiment C

[00167] Для задания конкретных условий неявных разделений QT и ВТ могут быть определены параметры. Эти параметры могут быть либо фиксированными для кодера и декодера (и принимать заранее локально сконфигурированное значение, такое как значение по умолчанию), либо могут сигнализироваться в заголовке битового потока для обеспечения оптимизации на уровне последовательности или на уровне слайса. Варианты C-G осуществления изобретения описаны ниже, чтобы показать, как сигнализируются или конфигурируются параметры, полезные для задания условий неявных разделений QT и ВТ.[00167] Parameters can be defined to specify specific conditions for implicit QT and BT separations. These parameters may either be fixed for the encoder and decoder (and take on a locally configured pre-configured value such as a default) or may be signaled in the header of the bitstream to allow optimization at the sequence or slice level. Embodiments C-G of the invention are described below to show how parameters useful for specifying conditions for implicit QT and BT separations are signaled or configured.

[00168] В варианте С осуществления изобретения сигнализируются параметры, которые могут быть либо в последовательности, либо в заголовке слайса, как показано ниже.[00168] In Embodiment C, the parameters are signaled, which can be either in sequence or in the slice header, as shown below.

Figure 00000028
Figure 00000028

[00169] Синтаксис набора параметров геометрии в таблице 15 изменен путем добавления синтаксических элементов для параметров сигнализации для управления разделениями QT и ВТ в строках 13-15.[00169] The geometry parameter set syntax in Table 15 has been changed by adding syntax elements for signaling parameters to control QT and BT separations in lines 13-15.

[00170] gps_max_num_implicit_qtbt_before_ot задает максимальное количество неявных разделений QT и ВТ перед разделениями ОТ, которое обозначено K.[00170] gps_max_num_implicit_qtbt_before_ot specifies the maximum number of implicit QT and BT splits before OT splits, denoted by K.

[00171] gps_min_size_implicit_qtbt указывает минимальный размер неявных разделений QT и ВТ, который обозначен М. Этот параметр предотвращает неявные разделения QT и ВТ, когда все размеры текущего узла меньше или равны М.[00171] gps_min_size_implicit_qtbt indicates the minimum size of implicit QT and BT splits, which is denoted by M. This parameter prevents implicit QT and BT splits when all sizes of the current node are less than or equal to M.

[00172] gps_implicit_bt_before_implicit_qt_flag задает приоритет неявных разделений QT и ВТ, который обозначен BTFirst. Если BTFirst=1, неявные разделения ВТ выполняются перед неявными разделениями QT. Если BTFirst=0, неявные разделения QT выполняются перед неявными разделениями ВТ.[00172] gps_implicit_bt_before_implicit_qt_flag sets the priority of implicit QT and BT separations, which is denoted by BTFirst. If BTFirst=1, implicit BT splits are performed before implicit QT splits. If BTFirst=0, implicit QT splits are performed before implicit BT splits.

[00173] Вариант D осуществления изобретения[00173] Embodiment D

[00174] В другом варианте осуществления изобретения часть параметров сигнализируется либо в заголовке последовательности, либо в заголовке слайса, в то время как остальные параметры являются фиксированными. В следующем примере М и BTFirst фиксированы, а K сигнализируется с помощью gps_max_num_implicit_qtbt_before_ot.[00174] In another embodiment of the invention, some of the parameters are signaled in either the sequence header or the slice header, while the rest of the parameters are fixed. In the following example, M and BTFirst are fixed and K is signaled with gps_max_num_implicit_qtbt_before_ot.

Figure 00000029
Figure 00000029

[00175] Синтаксис набора параметров геометрии в таблице 16 изменен путем добавления синтаксического элемента для сигнализации параметра для управления разделениями QT и ВТ в строке 13.[00175] The geometry parameter set syntax in Table 16 has been changed by adding a syntax element to signal a parameter to control the QT and BT separations in line 13.

[00176] gps_max_num_implicit_qtbt_before_ot указывает максимальное количество неявных разделений QT и ВТ перед разделениями ОТ. В этом случае другие параметры являются фиксированными и, следовательно, не сигнализируются в битовом потоке, например, М всегда 0, a. BTFirst всегда 1.[00176] gps_max_num_implicit_qtbt_before_ot indicates the maximum number of implicit QT and BT splits before OT splits. In this case, the other parameters are fixed and therefore not signaled in the bitstream, eg M is always 0, a. BTFirst is always 1.

[00177] Вариант Е осуществления изобретения[00177] Embodiment E

[00178] В другом варианте осуществления изобретения K и BTFirst фиксированы, а М сигнализируется посредством gps_min_size_implicit_qtbt, как показано ниже.[00178] In another embodiment of the invention, K and BTFirst are fixed, and M is signaled by gps_min_size_implicit_qtbt, as shown below.

Figure 00000030
Figure 00000030

[00179] Синтаксис набора параметров геометрии в таблице 17 изменен путем добавления синтаксического элемента для сигнализации параметра для управления разделениями QT и ВТ в строке 13.[00179] The syntax of the geometry parameter set in Table 17 has been changed by adding a syntax element to signal a parameter to control the QT and BT separations in line 13.

[00180] gps_min_size_implicit_qtbt задает минимальный размер неявных разделений QT и ВТ, то есть М. Этот параметр предотвращает неявные разделения QT и ВТ, когда все размеры меньше или равны М. В этом случае другие параметры фиксированы и, следовательно, не сигнализируются в битовом потоке, например, K всегда 0, a BTFirst всегда 1.[00180] gps_min_size_implicit_qtbt specifies the minimum size of the implicit QT and BT splits, i.e. M. This parameter prevents implicit QT and BT splits when all sizes are less than or equal to M. In this case, the other parameters are fixed and therefore not signaled in the bitstream, for example, K is always 0 and BTFirst is always 1.

[00181] Вариант F осуществления изобретения[00181] Embodiment F

[00182] В другом варианте осуществления изобретения сигнализация параметров для неявного разделения зависит от других синтаксических структур. В приведенном ниже примере сигнализация параметров для неявного разделения зависит от log2_trisoup_node_size следующим образом.[00182] In another embodiment of the invention, parameter signaling for implicit separation depends on other syntax structures. In the example below, parameter signaling for implicit splitting depends on log2_trisoup_node_size as follows.

Figure 00000031
Figure 00000031

[00183] Синтаксис набора параметров геометрии в таблице 18 изменен путем добавления синтаксической структуры для сигнализации параметра для управления разделениями QT и ВТ в строках 13-15.[00183] The geometry parameter set syntax in Table 18 is changed by adding a syntax structure for signaling a parameter to control the QT and BT separations in lines 13-15.

[00184] gps_max_num_implicit_qtbt_before_ot указывает максимальное количество неявных разделений QT и ВТ перед разделениями ОТ, которое равно K. В этом случае gps_max_num_implicit_qtbt_before_ot сигнализируется, только если значение log2_trisoup_node_size равно нулю. Если значение log2_trisoup_node_size не равно нулю, параметр K будет установлен на максимальное значение по умолчанию. Другие параметры являются фиксированными и поэтому не сигнализируются в битовом потоке, например, М всегда 0, a. BTFirst всегда 1.[00184] gps_max_num_implicit_qtbt_before_ot indicates the maximum number of implicit QT and BT splits before OT splits, which is equal to K. In this case, gps_max_num_implicit_qtbt_before_ot is signaled only if the value of log2_trisoup_node_size is zero. If log2_trisoup_node_size is non-zero, the K parameter will be set to the default maximum value. Other parameters are fixed and therefore not signaled in the bitstream, eg M is always 0, a. BTFirst is always 1.

[00185] Вариант G осуществления изобретения[00185] Embodiment G

[00186] В другом варианте осуществления изобретения ни один из этих параметров для неявного разделения не сигнализируется, и все параметры могут быть фиксированными. Например, фиксированы параметры K=3, М=0 и BTFirst=1.[00186] In another embodiment of the invention, none of these parameters for implicit separation is signaled, and all parameters can be fixed. For example, parameters K=3, M=0 and BTFirst=1 are fixed.

[00187] 5. Условия для неявных разделений QT и ВТ[00187] 5. Conditions for implicit QT and BT separations

[00188] Варианты осуществления различных условий для неявных разделений QT и ВТ описаны в следующих подразделах. Используя различные параметры управления и устанавливая различные условия, можно осуществлять различные способы или схемы разделения.[00188] Embodiments of various conditions for implicit QT and BT separations are described in the following subsections. By using different control parameters and setting different conditions, different separation methods or schemes can be carried out.

[00189] 5.1 Выполнение неявных разделений QT и ВТ после ОТ[00189] 5.1 Performing implicit QT and BT separations after OT

[00190] В первой схеме разделения ОТ выполняются полностью до тех пор, пока для некоторых измерений не могут быть далее выполнены разделения. Следовательно, условием для выполнения неявных разделений QT и ВТ в этой схеме является то, что одно или два измерения достигают наименьшей единицы разделения (то есть одного вокселя).[00190] In the first splitting scheme, OTs are fully performed until some of the measurements can no longer be split. Therefore, the condition for performing implicit QT and BT separations in this scheme is that one or two measurements achieve the smallest separation unit (ie, one voxel).

[00191] В частности, тип и направление разделения могут быть определены согласно таблице 19 или таблице 20. Параметр BTFirst приоритета либо фиксирован, либо задан посредством gps_implicit_bt_before_implicit_qt_flag. Если BTFirst = 1, неявные разделения ВТ имеют более высокий приоритет и будут выполняться перед неявными разделениями QT, и в этом случае применяется таблица 19. Если BTFirst = 0, неявные разделения QT имеют более высокий приоритет и будут выполняться перед неявными разделениями ВТ, и в этом случае применяется таблица 20. Если ни одно из условий, перечисленных в таблицах, не выполнено, осуществляется разделение QT.[00191] Specifically, the split type and direction may be determined according to Table 19 or Table 20. The priority parameter BTFirst is either fixed or set by gps_implicit_bt_before_implicit_qt_flag. If BTFirst = 1, implicit BT splits take precedence and will be performed before implicit QT splits, in which case Table 19 applies. in this case, table 20 applies. If none of the conditions listed in the tables are met, QT splitting is performed.

Figure 00000032
Figure 00000032

Figure 00000033
Figure 00000033

[00192] Пусть ограничивающий бокс В имеет размер

Figure 00000034
. Без потери общности можно предположить, что 0<dx≤dy≤dz. Ниже описаны два варианта осуществления изобретения.[00192] Let bounding box B have size
Figure 00000034
. Without loss of generality, we can assume that 0<d x ≤d y ≤d z . Two embodiments of the invention are described below.

[00193] В одном варианте осуществления изобретения параметр BTFirst=1 либо фиксирован, либо задан с помощью gps_implicit_bt_before_implicit_qt_flag, что указывает на то, что неявные разделения ВТ имеют более высокий приоритет и будут выполняться перед неявными разделениями QT, и применяется таблица 19. В этом варианте осуществления изобретения разделения ОТ могут выполняться на первых глубинах dx разделения. После разделений ОТ подузлы будут иметь форму

Figure 00000035
. Затем неявные разделения ВТ будут выполнены вдоль оси z на следующих глубинах dz - dy. После неявных разделений ВТ форма подузлов будет иметь вид
Figure 00000036
, а затем неявные разделения QT выполняются вдоль осей y-z на последних глубинах dy - dx, пока не будут достигнуты листовые узлы.[00193] In one embodiment of the invention, the BTFirst=1 parameter is either fixed or set with gps_implicit_bt_before_implicit_qt_flag, which indicates that implicit BT splits take precedence and will be performed before implicit QT splits, and table 19 applies. In this embodiment, embodiments of the invention, OT separations can be performed at first separation depths d x . After the FROM splits, the subnodes will be of the form
Figure 00000035
. Then implicit separations of the BT will be performed along the z-axis at the following depths d z - d y . After implicit divisions of BT, the form of subnodes will look like
Figure 00000036
, and then implicit QT splits are performed along the yz axes at the last depths d y - d x until leaf nodes are reached.

[00194] В другом варианте осуществления изобретения параметр BTFirst=0 либо фиксирован, либо задан с помощью gps_implicit_bt_before_implicit_qt_flag, что указывает на то, что неявные разделения QT имеют более высокий приоритет и будут выполняться перед неявными разделениями ВТ, и применяется таблица 20. В этом варианте осуществления изобретения разделения ОТ будут выполняться на первой глубине dx разделения. После разделений ОТ подузлы будут иметь форму

Figure 00000037
. Затем неявные разделения QT могут выполняться вдоль осей y-z на следующих глубинах dy - dx. После неявных разделений QT форма подузлов будет
Figure 00000038
, а затем неявные разделения ВТ выполняются вдоль оси z на последних глубинах dz - dy до достижения листовых узлов.[00194] In another embodiment of the invention, the BTFirst=0 parameter is either fixed or set with gps_implicit_bt_before_implicit_qt_flag, which indicates that implicit QT splits have higher priority and will be performed before implicit BT splits, and table 20 applies. In this embodiment, implementation of the invention separation FROM will be performed at the first depth d x separation. After the FROM splits, the subnodes will be of the form
Figure 00000037
. Then implicit QT separations can be performed along the yz axes at the next depths d y - d x . After QT's implicit splits, the shape of the subnodes will be
Figure 00000038
, and then implicit divisions of the BT are performed along the z axis at the last depths d z - d y until leaf nodes are reached.

[00195] 5.2 Выполнение неявных разделений QT и ВТ перед ОТ[00195] 5.2 Performing implicit QT and BT splits before OT

[00196] Вторая схема состоит в выполнении неявных разделений QT и ВТ перед любым разделением ОТ, чтобы подузлы имели кубическую форму. Следовательно, в этом случае условие состоит в том, чтобы одно или два измерения имели меньшие размеры, чем наибольшее измерение.[00196] The second scheme is to perform implicit QT and BT splits before any OT split so that the subnodes are cubic. Therefore, in this case, the condition is that one or two dimensions have smaller dimensions than the largest dimension.

[00197] В частности, тип и направление разделения могут быть определены согласно таблице 21 или таблице 22. Параметр приоритета BTFirst либо фиксирован, либо задан посредством gps_implicit_bt_before_implicit_qt_flag. Если BTFirst = 1, неявные разделения ВТ имеют более высокий приоритет и будут выполняться перед неявными разделениями QT, и применяется таблица 21. Если BTFirst = 0, неявные разделения QT имеют более высокий приоритет и будут выполняться перед неявными разделениями ВТ, и применяется таблица 22. Если ни одно из условий, перечисленных в таблицах, не выполнено, осуществляется разделение ОТ.[00197] Specifically, the split type and direction may be determined according to Table 21 or Table 22. The BTFirst priority parameter is either fixed or set by gps_implicit_bt_before_implicit_qt_flag. If BTFirst = 1, implicit BT splits take precedence and will be performed before implicit QT splits, and table 21 applies. If BTFirst = 0, implicit QT splits take precedence and will be performed before implicit BT splits, and table 22 applies. If none of the conditions listed in the tables is met, OT is split.

Figure 00000039
Figure 00000039

Figure 00000040
Figure 00000040

[00198] Пусть ограничивающий бокс В имеет размер

Figure 00000041
Без ограничения общности можно считать, что 0<dx≤dy≤dz. Ниже описаны два варианта осуществления изобретения.[00198] Let bounding box B have size
Figure 00000041
Without loss of generality, we can assume that 0<d x ≤d y ≤d z . Two embodiments of the invention are described below.

[00199] В одном варианте осуществления изобретения параметр BTFirst = 1 либо фиксирован, либо задан с помощью gps_implicit_bt_before_implicit_qt_flag, что указывает на то, что неявные разделения ВТ имеют более высокий приоритет и будут выполняться перед неявными разделениями QT, и применяется таблица 21. В этом варианте осуществления изобретения неявные разделения ВТ будут выполняться вдоль оси z на первых глубинах dz - dy, а затем неявные разделения QT будут выполняться вдоль осей y-z на следующих глубинах dy - dx. После неявных разделений QT и ВТ размер всех подузлов будет

Figure 00000042
, и разделения ОТ выполняются dx раз для достижения листовых узлов.[00199] In one embodiment of the invention, the parameter BTFirst = 1 is either fixed or set with gps_implicit_bt_before_implicit_qt_flag, which indicates that implicit BT splits have higher priority and will be performed before implicit QT splits, and table 21 applies. In this embodiment, implementation of the invention, the implicit BT splits will be performed along the z-axis at the first depths d z - d y , and then the implicit QT splits will be performed along the yz axes at the next depths d y - d x . After the implicit QT and BT splits, the size of all subnodes will be
Figure 00000042
, and OT splits are performed d x times to reach leaf nodes.

[00200] В другом варианте осуществления изобретения параметр BTFirst=0 либо фиксирован, либо задан с помощью gps_implicit_bt_before_implicit_qt_flag, что указывает на то, что неявные разделения QT имеют более высокий приоритет и будут выполняться перед неявными разделениями ВТ, и применяется таблица 22. В этом варианте осуществления изобретения неявные разделения QT будут выполняться вдоль осей y-z на первых глубинах dy - dx, а затем неявные разделения ВТ будут выполняться вдоль оси z на следующих глубинах dz - dy. После неявных разделений QT и ВТ размер всех подузлов будет

Figure 00000043
, и разделения ОТ выполняются dx раз до достижения листовых узлов.[00200] In another embodiment of the invention, the BTFirst=0 parameter is either fixed or set with gps_implicit_bt_before_implicit_qt_flag, which indicates that implicit QT splits have higher priority and will be performed before implicit BT splits, and table 22 applies. In this embodiment, implementation of the invention, implicit QT separations will be performed along the yz axes at first depths d y - d x , and then implicit BT separations will be performed along the z axis at subsequent depths d z - d y . After the implicit QT and BT splits, the size of all subnodes will be
Figure 00000043
, and OT splits are performed d x times until leaf nodes are reached.

[00201] 5.3 Гибридная схема неявных разделений QT и ВТ[00201] 5.3 Hybrid implicit QT and BT separation scheme

[00202] Третья схема представляет собой комбинацию схемы из разделов III.5.1 и III.5.3. В этом случае порог K (0≤K≤max(dx, dy, dz) - min(dx, dy, dz)) задает максимальное количество неявных разделений QT и ВТ, которые могут быть выполнены перед разделениями ОТ. Эта схема является обобщением первых двух схем, она вырождается в схему из раздела III 5.1, когда K=0, и вырождается в схему из раздела III.5.2, когда K=max(dx, dy, dz) - min(dx, dy, dz).[00202] The third scheme is a combination of the scheme from sections III.5.1 and III.5.3. In this case, the threshold K (0≤K≤max(d x , d y , d z ) - min(d x , d y , d z )) specifies the maximum number of implicit QT and BT splits that can be performed before OT splits . This scheme is a generalization of the first two schemes, it degenerates into the scheme from section III 5.1 when K=0, and degenerates into the scheme from section III.5.2 when K=max(d x , d y , d z ) - min(d x , d y , d z ).

[00203] В частности, на первых K глубинах разделения решения для типа и направления разделения следуют условиям, заданным в таблице 21 или 22, после этого следует таблица 19 или таблица 20. Параметр K либо фиксирован, либо задан с помощью gps_max_num_implicit_qtbt_before_ot. Параметр BTFirst приоритета либо фиксирован, либо задан с помощью gps_implicit_bt_before_impIicit_qt_flag. Если BTFirst = 1, неявные разделения ВТ имеют более высокий приоритет и будут выполняться перед неявными разделениями QT, и применяются таблицы 19 и 21. Если BTFirst = 0, неявные разделения QT имеют более высокий приоритет и будут выполняться перед неявными разделениями ВТ, и применяются таблицы 20 и 22. Если ни одно из условий, перечисленных в таблицах, не выполнено, осуществляется разделение ОТ.[00203] In particular, at the first K splitting depths, the split type and direction solutions follow the conditions specified in Table 21 or 22, followed by Table 19 or Table 20. The parameter K is either fixed or set with gps_max_num_implicit_qtbt_before_ot. The BTFirst priority parameter is either fixed or set with gps_implicit_bt_before_impIicit_qt_flag. If BTFirst = 1, implicit BT splits take precedence and will be performed before implicit QT splits, and tables 19 and 21 apply. 20 and 22. If none of the conditions listed in the tables is met, the separation of OT is carried out.

[00204] Пусть ограничивающий бокс В имеет размер

Figure 00000044
Без ограничения общности можно считать, что 0<dx≤dy≤dz.[00204] Let bounding box B have size
Figure 00000044
Without loss of generality, we can assume that 0<d x ≤d y ≤d z .

[00205] В одном варианте осуществления изобретения параметр K либо фиксирован, либо задан с помощью gps_max_num_implicit_qtbt_before_ot, что указывает на то, что сначала будут выполнены K раз неявные разделения ВТ и QT. Параметр BTFirst = 1 либо фиксирован, либо задан с помощью gps_implicit_bt_before_implicit_qt_flag, что указывает на то, что неявные разделения ВТ имеют более высокий приоритет и будут выполняться до неявных разделений QT, и применяются таблицы 19 и 21. В этом варианте осуществления изобретения на первых K глубинах (K≤dz-dx) выполняются неявные разделения ВТ вдоль оси z, а затем выполняются неявные разделения QT вдоль осей y-z в соответствии с таблицей 21. После этого размер подузлов составляет

Figure 00000045
где значения δу и δzz ≥ δу ≥ 0) зависят от значения K. Затем разделения ОТ выполняются dx раз, при этом оставшиеся подузлы имеют размер
Figure 00000046
Наконец, согласно таблице 19, неявные разделения ВТ выполняются δz - δу раз вдоль оси z, а неявные разделения QT затем выполняются δу раз вдоль осей y-z.[00205] In one embodiment of the invention, the parameter K is either fixed or set with gps_max_num_implicit_qtbt_before_ot, which indicates that implicit separations of BT and QT will be performed K times first. The BTFirst = 1 parameter is either fixed or set with gps_implicit_bt_before_implicit_qt_flag, indicating that implicit BT splits have higher priority and will be performed before implicit QT splits, and tables 19 and 21 apply. In this embodiment, at the first K depths (K≤d z -d x ) implicit splits of BT along the z-axis are performed, and then implicit splits of QT along the yz-axes are performed according to Table 21. After that, the size of the subnodes is
Figure 00000045
where the values of δ y and δ zz ≥ δ y ≥ 0) depend on the value of K. Then the OT splits are performed d x times, with the remaining subnodes having the size
Figure 00000046
Finally, according to Table 19, implicit BT splits are performed δ z - δ y times along the z-axis, and implicit QT splits are then performed δ y times along the yz axes.

[00206] В другом варианте осуществления изобретения параметр K либо фиксирован, либо задан с помощью gps_max_num_implicit_qtbt_before_ot, что указывает на то, что сначала K раз будут выполнены неявные разделения ВТ и QT. Параметр BTFirst=0 либо фиксирован, либо задан с помощью gps_implicit_bt_before_implicit_qt_flag, что указывает на то, что неявные разделения QT имеют более высокий приоритет и будут выполняться перед неявными разделениями ВТ, и применяются таблицы 20 и 22. В этом варианте осуществления изобретения на первых K глубинах (K≤dz-dx) выполняются неявные разделения QT вдоль осей y-z, а затем неявные разделения ВТ вдоль оси z в соответствии с таблицей 22. После этого размер подузлов равен

Figure 00000047
, где значения δу и δzz≥δу≥0) зависят от значения K. Затем разделения ОТ выполняются dx раз, при этом оставшиеся подузлы имеют размер
Figure 00000048
Наконец, согласно таблице 20, неявные разделения QT выполняются δу раз вдоль осей y-z, а неявные разделения ВТ затем выполняются δz - δу раз вдоль оси z.[00206] In another embodiment of the invention, the parameter K is either fixed or set using gps_max_num_implicit_qtbt_before_ot, which indicates that the implicit separation of BT and QT will be performed first K times. The parameter BTFirst=0 is either fixed or set with gps_implicit_bt_before_implicit_qt_flag, which indicates that implicit QT splits take precedence and will be performed before implicit BT splits, and tables 20 and 22 apply. In this embodiment, at the first K depths (K≤d z -d x ) implicit QT splits along the yz axes are performed, followed by implicit BT splits along the z axis according to Table 22. After that, the size of the subnodes is
Figure 00000047
, where the values of δ y and δ zz ≥ δ y ≥ 0) depend on the value of K. Then the divisions of OT are performed d x times, while the remaining subnodes have the size
Figure 00000048
Finally, according to Table 20, QT implicit splits are performed δ y times along the yz axis, and BT implicit splits are then performed δ z - δ y times along the z axis.

[00207] 5.4 Гибридная схема с минимальным размером неявных разделений QT и BT[00207] 5.4 Hybrid scheme with minimum size of QT and BT implicit separations

[00208] Четвертая схема налагает дополнительные ограничения на предыдущие схемы. В этом случае порог K (0 ≤ K ≤ max(dx, dy, dz) - min(dx, dy, dz)) задает максимальное количество неявных разделений QT и ВТ, которые могут быть выполнены перед разделениями QT. Другой параметр М (0 ≤ М ≤ min(dx, dy, dz)) задает минимальный размер неявных разделений QT и ВТ и предотвращает неявные разделения QT и ВТ, когда все размеры меньше или равны М. Четвертая схема является обобщением первых трех схем. Четвертая схема вырождается в схему из раздела III. 5.1, когда K=М=0, в схему из раздела III.5.2, когда K=max(dx, dy, dz) - min(dx, dyj dz), M=0, и в схему из раздела III.5.3, когда 0<K<max(dx, dy, dz) - min(dx, dy, dz), M=0.[00208] The fourth scheme imposes additional restrictions on the previous schemes. In this case, the threshold K (0 ≤ K ≤ max(d x , d y , d z ) - min(d x , d y , d z )) specifies the maximum number of implicit QT and BT splits that can be performed before QT splits . Another parameter M (0 ≤ M ≤ min(d x , d y , d z )) specifies the minimum size of implicit QT and BT splits and prevents implicit QT and BT splits when all sizes are less than or equal to M. The fourth scheme is a generalization of the first three schemes. The fourth scheme degenerates into the scheme from Section III. 5.1, when K=M=0, into the circuit from section III.5.2, when K=max(d x , d y , d z ) - min(d x , d yj d z ), M=0, and into the circuit from Section III.5.3 when 0<K<max(d x , d y , d z ) - min(d x , d y , d z ), M=0.

[00209] В частности, на первых K уровнях разделения решения для типа и направления разделения следуют условиям, заданным в таблице 21 или 22, после этого следует таблица 23 или таблица 24. Таблицы 23 и 24 напоминают таблицы 19 и 20, если заменить 0 на М. Параметр K либо фиксирован, либо задан с помощью gps_max_num_implicit_qtbt_before_ot. Параметр М либо фиксирован, либо задан с помощью gps_min_size_implicit_qtbt. Параметр BTFirst приоритета либо фиксирован, либо задан с помощью gps_implicit_bt_before_implicit_qt_flag. Если BTFirst=1, неявные разделения ВТ имеют более высокий приоритет и будут выполняться перед неявными разделениями QT, и применяются таблицы 21 и 23. Если BTFirst=0, неявные разделения QT имеют более высокий приоритет и будут выполняться перед неявными разделениями ВТ, и применяются таблицы 22 и 24. Если ни одно из условий, указанных в таблицах, не выполнено, осуществляется разделение ОТ.[00209] Specifically, in the first K levels of splitting, the split type and direction decisions follow the conditions given in Table 21 or 22, followed by Table 23 or Table 24. Tables 23 and 24 resemble Tables 19 and 20 when 0 is replaced by M. The K parameter is either fixed or set with gps_max_num_implicit_qtbt_before_ot. The parameter M is either fixed or set using gps_min_size_implicit_qtbt. The BTFirst priority parameter is either fixed or set using gps_implicit_bt_before_implicit_qt_flag. If BTFirst=1, implicit BT splits take precedence and will be performed before implicit QT splits, and tables 21 and 23 apply. If BTFirst=0, implicit QT splits take precedence and will occur before implicit BT splits, and tables 22 and 24. If none of the conditions specified in the tables is met, the division of OT is carried out.

Figure 00000049
Figure 00000049

Figure 00000050
Figure 00000050

[00210] Пусть ограничивающий бокс В имеет размер

Figure 00000051
. Без ограничения общности можно считать, что 0<dx≤dy≤dz.[00210] Let bounding box B have size
Figure 00000051
. Without loss of generality, we can assume that 0<d x ≤d y ≤d z .

[00211] В одном варианте осуществления изобретения параметр K либо фиксирован, либо задан с помощью gps_max_num_implicit_qtbt_before_ot, что указывает на то, что сначала K раз будут выполнены неявные разделения ВТ и QT. Параметр М либо фиксирован, либо задан с помощью gps_min_size_implicit_qtbt, что указывает на минимальный размер неявных разделений QT и ВТ. Параметр BTFirst=1 либо фиксирован, либо задан с помощью gps_implicit_bt_before_implicit_qt_flag, что указывает на то, что неявные разделения ВТ имеют более высокий приоритет и будут выполняться перед неявными разделениями QT, и применяются таблицы 21 и 22. В этом варианте осуществления изобретения на первых K глубинах (K≤dz-dx) неявные разделения ВТ выполняются вдоль оси z, а затем неявные разделения QT выполняются вдоль осей y-z на основе таблицы 21. Затем размер подузлов становится равным

Figure 00000052
, где значения δу и δzz ≥ δу ≥ 0) зависят от значения K. Затем разделения ОТ выполняются dx - М раз, при этом оставшиеся подузлы имеют размер
Figure 00000053
. Затем, согласно таблице 23, неявные разделения ВТ выполняются δz - δу раз вдоль оси z, а неявные разделения QT выполняются δу раз вдоль осей y-z. Остальные узлы имеют размер 2(М,М,М), поэтому разделения ОТ выполняются М раз для достижения наименьших единиц.[00211] In one embodiment of the invention, the parameter K is either fixed or set using gps_max_num_implicit_qtbt_before_ot, which indicates that the implicit separation of BT and QT will be performed first K times. The parameter M is either fixed or given with gps_min_size_implicit_qtbt, which indicates the minimum size of the implicit QT and BT separations. The BTFirst=1 parameter is either fixed or set with gps_implicit_bt_before_implicit_qt_flag, which indicates that implicit BT splits take precedence and will be performed before implicit QT splits, and tables 21 and 22 apply. In this embodiment, at the first K depths (K≤d z -d x ) BT implicit splits are performed along the z-axis, and then QT implicit splits are performed along the yz-axes based on table 21. Then the subnode size becomes
Figure 00000052
, where the values of δ y and δ zz ≥ δ y ≥ 0) depend on the value of K. Then the OT divisions are performed d x - M times, while the remaining subnodes have the size
Figure 00000053
. Then, according to Table 23, BT implicit splits are performed δ z - δ y times along the z-axis, and QT implicit splits are performed δ y times along the yz axes. The remaining nodes have size 2 (M,M,M) , so OT splits are performed M times to reach the smallest units.

[00212] В другом варианте осуществления изобретения параметр K либо фиксирован, либо задан с помощью gps_max_num_implicit_qtbt_before_ot, что указывает на то, что сначала K раз будут выполнены неявные разделения ВТ и QT. Параметр М либо фиксирован, либо задан с помощью gps_min_size_implicit_qtbt, что указывает на минимальный размер неявных разделений QT и ВТ. Параметр BTFirst=0 либо фиксирован, либо задан с помощью gps_implicit_bt_before_implicit_qt_flag, что указывает на то, что неявные разделения QT имеют более высокий приоритет и будут выполняться перед неявными разделениями ВТ, и применяются таблицы 22 и 24. В этом варианте осуществления изобретения на первых K глубинах (K≤dz-dx) неявные разделения ВТ выполняются вдоль оси z, а затем неявные разделения QT выполняются вдоль осей y-z на основе таблицы 22. Размер подузлов затем становится

Figure 00000054
, где значения δу и δzzу>0) зависят от значения K. Затем разделения ОТ выполняются dx - М раз, в результате чего размер оставшихся подузлов становится
Figure 00000055
. Затем, согласно таблице 24, неявные разделения QT выполняются δу раз вдоль осей y-z, а неявные разделения ВТ затем выполняются δz - δу раз вдоль оси z. Остальные узлы имеют размер 2(M,M,M), поэтому разделения ОТ выполняются М раз, чтобы достичь наименьших единиц.[00212] In another embodiment of the invention, the parameter K is either fixed or set using gps_max_num_implicit_qtbt_before_ot, which indicates that implicit separations of BT and QT will be performed first K times. The parameter M is either fixed or given with gps_min_size_implicit_qtbt, which indicates the minimum size of the implicit QT and BT separations. The BTFirst=0 parameter is either fixed or set with gps_implicit_bt_before_implicit_qt_flag, which indicates that implicit QT splits take precedence and will be performed before implicit BT splits, and tables 22 and 24 apply. In this embodiment, at the first K depths (K≤d z -d x ) BT implicit splits are performed along the z-axis, and then QT implicit splits are performed along the yz-axes based on table 22. The size of the subnodes then becomes
Figure 00000054
, where the values of δ y and δ zz > δ y > 0) depend on the value of K. Then the OT splits are performed d x - M times, as a result of which the size of the remaining subnodes becomes
Figure 00000055
. Then, according to Table 24, QT implicit splits are performed δ y times along the yz axes, and BT implicit splits are then performed δ z - δ y times along the z axis. The remaining nodes are of size 2 (M,M,M) , so OT splits are performed M times to reach the smallest ones.

[00213] 5.5. Демонстрация на основе двумерных блоков для различных схем разделений QT и ВТ[00213] 5.5. 2D block-based demonstration for various QT and BT partitioning schemes

[00214] Вышеупомянутые четыре схемы разделения могут быть продемонстрированы на примере двумерного блока, как показано на фиг. 10-13, соответственно, где прямоугольный ограничивающий бокс В размером 16×4 разделяется с помощью 4-уровневых итерационных разделений до наименьшей единицы. Кроме того, схема ТМС13, в которой разделения ОТ выполняются на основе расширенного кубического ограничивающего бокса, проиллюстрирована на фиг. 10 для двумерных случаев. На 2D-иллюстрациях ВТ напоминает ВТ или QT в 3D, a QT напоминает ОТ в 3D.[00214] The above four partitioning schemes can be demonstrated using a 2D block as shown in FIG. 10-13, respectively, where the 16x4 rectangular bounding box B is split using 4-level iterative splits to the smallest unit. In addition, a TMC13 scheme in which OT divisions are performed based on an expanded cubic bounding box is illustrated in FIG. 10 for two-dimensional cases. In 2D illustrations, BT resembles BT or QT in 3D, and QT resembles OT in 3D.

[00215] Пример схемы из раздела III.5.1[00215] Example circuit from section III.5.1

[00216] На фиг. 10, ВТ выполняется после QT, что эквивалентно выполнению QT и ВТ после ОТ в 3D. Как показано, В сначала разделяется на четыре подблока 4×1 посредством двухуровневого разделения QT, а оставшийся подблок затем разделяется посредством двухуровневого разделения ВТ вдоль оси х. Неявный порядок разделения - QT, QT, ВТ, ВТ.[00216] FIG. 10, BT is performed after QT, which is equivalent to performing QT and BT after OT in 3D. As shown, B is first divided into four 4x1 sub-blocks by QT bi-level separation, and the remaining sub-block is then divided by BT bi-level separation along the x-axis. The implicit split order is QT, QT, BT, BT.

[00217] Пример схемы из раздела Ш.5.2[00217] An example circuit from section III.5.2

[00218] На фиг.11, ВТ выполняется перед QT, что эквивалентно выполнению QT и ВТ перед ОТ в 3D. Как показано, бокс В сначала разделяется с помощью двухуровневых разделений ВТ вдоль оси х с формированием четырех подблоков 4×4, а затем каждый подблок разделяется посредством разделений QT. Неявный порядок разделений ВТ, ВТ, QT, QT.[00218] In Fig. 11, BT is performed before QT, which is equivalent to performing QT and BT before OT in 3D. As shown, box B is first divided by 2-level BT divisions along the x-axis to form four 4×4 sub-blocks, and then each sub-block is divided by QT divisions. Implicit order of divisions BT, BT, QT, QT.

[00219] Пример схемы из раздела III.5.3[00219] Example circuit from section III.5.3

[00220] На фиг. 12 разделение выполняется в порядке ВТ, QT, ВТ, что эквивалентно гибридной схеме в 3D. Гибридная схема с K=1 показана на фиг. 12, где бокс В один раз разделен посредством разделения ВТ с получением двух подблоков 8×4, и каждый подблок затем разделен посредством двухуровневых разделений QT с получением нескольких меньших подблоков 2×1, которые, наконец, разделены на наименьшие единицы посредством другого разделения ВТ вдоль оси х. Неявный порядок разделений - ВТ, QT, QT, ВТ.[00220] FIG. 12, the separation is performed in the order of BT, QT, BT, which is equivalent to a hybrid scheme in 3D. A hybrid circuit with K=1 is shown in FIG. 12, where box B is once divided by BT splitting to produce two 8x4 subblocks, and each subblock is then split by QT 2-level splits to give several smaller 2x1 subblocks, which are finally subdivided into smaller units by another BT split along x axis. The implicit order of divisions is BT, QT, QT, BT.

[00221] Пример схемы из раздела III.5.4[00221] Example circuit from section III.5.4

[00222] На фиг. 13 разделение выполняется в порядке ВТ, QT, ВТ, QT, что эквивалентно гибридной схеме с ограничением минимального размера в 3D. Гибридная схема с ограничением минимального размера ВТ показана на фиг. 13, где K=М=1. Сначала выполняется разделение ВТ перед разделением QT, потому что K=1, затем разделение QT выполняется до тех пор, пока меньший размер не достигнет 2^М=2, то есть 4×2 подблоков. Затем требуется разделение ВТ из-за ограничения минимального размера ВТ, в результате оставшиеся подблоки имеют размер 2×2, и, наконец, выполняется разделение QT. Неявный порядок разделений - ВТ, QT, ВТ, QT.[00222] FIG. 13, the separation is performed in the order of BT, QT, BT, QT, which is equivalent to a 3D minimum size constraint hybrid scheme. A hybrid circuit with minimum BT size limitation is shown in FIG. 13 where K=M=1. First, BT splitting is performed before QT splitting because K=1, then QT splitting is performed until the smaller size reaches 2^M=2, that is, 4×2 sub-blocks. Then, BT splitting is required due to the minimum BT size limitation, resulting in the remaining sub-blocks having a size of 2×2, and finally, QT splitting is performed. The implicit order of divisions is BT, QT, BT, QT.

[00223] Пример проекта ТМС13[00223] TMC13 design example

[00224] Фиг. 14 показывает схему QT на основе расширенного ограничивающего бокса в двумерном случае, которая эквивалентна схеме разделения ОТ проекта ТМС13 в трехмерном случае. Как показано, рекурсивные разделения QT начинаются с расширенного прямоугольного ограничивающего бокса 16×16, который показан пунктирными линиями на чертеже.[00224] FIG. 14 shows the QT scheme based on the extended bounding box in the 2D case, which is equivalent to the OT separation scheme of the TMC13 design in the 3D case. As shown, the QT recursive splits start with an expanded 16x16 rectangular bounding box, which is shown in dotted lines in the drawing.

[00225] Предполагая, что точки расположены в позициях, отмеченных крестиками на фиг. 10-14, можно вычислить биты, необходимые для каждой схемы. Из первого столбца таблицы 25 можно заметить, что четыре схемы стоят меньше битов, чем схема ТМС13. Схемы из разделов III 5.3 и III.5.4 работают лучше всего. Во втором столбце таблицы 25 вычисляются требуемые биты в худшем случае, когда все позиции заняты. Из этого моделирования можно увидеть, что наименьшее количество битов достигается в схеме из раздела III.5.2, а схемы из разделов III.5.2 и III.5.4 работают лучше, чем схема ТМС13. Таким образом, благодаря подходящему выбору управляющих параметров (K и М) и условий могут быть достигнуты благоприятные результаты кодирования геометрии.[00225] Assuming that the dots are located at the positions marked with crosses in FIG. 10-14, the bits needed for each circuit can be calculated. It can be seen from the first column of Table 25 that four schemes cost fewer bits than the TMC13 scheme. The schemes in sections III 5.3 and III.5.4 work best. The second column of table 25 calculates the required bits in the worst case when all positions are occupied. From this simulation, it can be seen that the smallest number of bits is achieved in the scheme from Section III.5.2, and the schemes from Sections III.5.2 and III.5.4 perform better than the TMC13 scheme. Thus, by a suitable selection of the control parameters (K and M) and conditions, favorable geometry encoding results can be achieved.

Figure 00000056
Figure 00000056

[00226] IV. Взаимодействие с пленарным режимом[00226] IV. Interaction with the plenary mode

[00227] 1. Пленарный режим[00227] 1. Plenary mode

[00228] В некоторых вариантах осуществления изобретения для кодирования геометрии облака точек вводятся планарные режимы в трех направлениях х, у и z. Планарные режимы могут быть активированы на уровне применимого узла с помощью флага активации планарного режима, кодированного в битовом потоке. Кроме того, к битовому потоку добавляется дополнительный синтаксис, чтобы указать положение плоскости, связанной с активированными планарными режимами.[00228] In some embodiments of the invention, planar modes are introduced in the three x, y, and z directions to encode point cloud geometry. The planar modes may be enabled at the applicable node level with a planar mode enable flag encoded in the bitstream. In addition, additional syntax is added to the bitstream to indicate the position of the plane associated with the activated planar modes.

[00229] Также вводится предсказание флага и положения плоскости, чтобы гарантировать хорошее сжатие нового синтаксического элемента. Наконец, можно использовать локальные критерии применимости, чтобы избежать использования планарных режимов в неблагоприятных областях облака точек и, таким образом, избежать ухудшения характеристик сжатия, особенно в плотных облаках точек.[00229] Flag and plane position prediction is also introduced to ensure good compression of the new syntax element. Finally, local applicability criteria can be used to avoid the use of planar modes in unfavorable areas of the point cloud and thus avoid degradation of compression performance, especially in dense point clouds.

[00230] 2. Проблемы[00230] 2. Problems

[00231] Неявное разделение QT/BT и планарные режимы основаны на различных наблюдениях и имеют аналогичные преимущества кодирования для разреженных облаков точек. В общем, неявное геометрическое разделение имеет небольшую сложность, а планарный режим более сложен, но более адаптивен. С точки зрения производительности эти два метода кодирования обеспечивают одинаковую производительность для разреженных данных, при этом планарный режим может лучше обрабатывать облака точек с множеством шаблонов плоскостей.[00231] The QT/BT implicit split and planar modes are based on different observations and have similar coding advantages for sparse point clouds. In general, implicit geometric separation has little complexity, while planar mode is more complex but more adaptive. In terms of performance, these two encoding methods provide the same performance for sparse data, while planar mode can better handle point clouds with many plane patterns.

[00232] Прежде всего, два метода кодирования имеют некоторые сходные концепции и схемы кодирования при кодировании занятости, оба метода кодирования используют измененную схему кодирования занятости, где при определенных условиях кодируется только часть кода занятости, а остальная часть кода занятости может быть пропущена, и о ней может быть сделан вывод на стороне декодера. Для неявного геометрического разделения условие неявно определяется некоторыми заранее заданными параметрами. В то время как для планарного режима условие определяется кодером, флаг и индекс явно сигнализируются, чтобы указать, какая часть кода занятости пропускается.[00232] First of all, the two coding methods have some similar concepts and coding schemes in occupancy coding, both coding methods use a modified occupancy coding scheme where, under certain conditions, only part of the occupancy code is encoded, and the rest of the occupancy code can be skipped, and o it can be inferred on the decoder side. For implicit geometric separation, the condition is implicitly defined by some predefined parameters. While for planar mode the condition is determined by the encoder, the flag and index are explicitly signaled to indicate which part of the busy code is skipped.

[00233] Кроме того, неявное геометрическое разделение может начинать разделение октодерева с некубического ограничивающего бокса, и форма узлов октодерева также может быть асимметричной, в то время как планарный режим всегда предполагает симметричные формы узлов октодерева.[00233] In addition, implicit geometric partitioning can start partitioning the octree from a non-cubic bounding box, and the shape of the octree nodes can also be asymmetric, while planar mode always assumes symmetrical octree node shapes.

[00234] Эти два метода не противоречат друг другу по концепции. У них есть сходства/совпадения и различия. В различных вариантах осуществления изобретения эти два метода могут комбинироваться.[00234] These two methods do not contradict each other in concept. They have similarities/coincidences and differences. In various embodiments of the invention, these two methods can be combined.

[00235] В разделах ниже описаны варианты осуществления комбинации неявного геометрического разделения и планарного режима. В последующем описании показаны некоторые варианты осуществления изобретения, представляющие собой изменения стандартных спецификаций проекта для сжатия облака точек на основе геометрии ISG / IEC 23090-9: 2019 (Е), этап CD, ISO / IEC JTC 1 / SC 29 / WG 11 W18478, июнь 2019 г.[00235] The sections below describe embodiments of the combination of implicit geometric separation and planar mode. The following description shows some embodiments of the invention, which are modifications to the standard design specifications for point cloud compression based on geometry ISG/IEC 23090-9:2019(E), stage CD, ISO/IEC JTC 1/SC 29/WG 11 W18478, June 2019

[00236] 3. Только неявное геометрическое разделение или только планарный режим[00236] 3. Only implicit geometric separation or only planar mode

[00237] В некоторых вариантах осуществления изобретения один из двух методов включен при кодировании геометрии облака точек, то есть либо включено неявное геометрическое разделение (при отключении планарного режима), либо включен планарный режим (при отключении неявного геометрического разделения).[00237] In some embodiments, one of the two methods is enabled when encoding the point cloud geometry, i.e. either implicit geometric separation is enabled (when planar mode is disabled) or planar mode is enabled (when implicit geometric partitioning is disabled).

[00238] 3.1 Сигнализация флага управления в синтаксисе высокого уровня для неявного геометрического разделения[00238] 3.1 Control Flag Signaling in High Level Syntax for Implicit Geometric Separation

[00239] Для включения и отключения неявного геометрического разделения в синтаксисе высокого уровня может сигнализироваться один флаг. Флаг может быть указан в наборе параметров последовательности, заголовке слайса или наборе параметров геометрии битового потока.[00239] A single flag can be signaled in the high-level syntax to enable and disable implicit geometric separation. The flag may be specified in a sequence parameter set, a slice header, or a bitstream geometry parameter set.

[00240] Вариант А осуществления изобретения[00240] Embodiment A of the invention

[00241] В одном варианте осуществления изобретения флаг неявного геометрического разделения задается в наборе параметров геометрии следующим образом.[00241] In one embodiment of the invention, the implicit geometric separation flag is set in the geometry parameter set as follows.

Figure 00000057
Figure 00000057

[00242] Синтаксис набора параметров геометрии в таблице 26 изменен путем добавления синтаксического элемента в строке 17.[00242] The syntax of the geometry parameter set in Table 26 has been changed by adding a syntax element in line 17.

[00243] Значение gps_implicit_geom_partition_flag, равное 1, указывает на то, что неявное геометрическое разделение включено для последовательности или слайса. Значение gps_implicit_geom_partition_flag, равное 0, указывает на то, что неявное геометрическое разделение отключено для последовательности или слайса.[00243] A gps_implicit_geom_partition_flag value of 1 indicates that implicit geometric partitioning is enabled for the sequence or slice. A gps_implicit_geom_partition_flag value of 0 indicates that implicit geometric partitioning is disabled for the sequence or slice.

[00244] Вариант В осуществления изобретения[00244] Embodiment B

[00245] В другом варианте осуществления изобретения флаг указывается, когда схема треугольной сетки отключена, и в этом случае изменения набора параметров геометрии показаны в строках 6-8 в таблице 27.[00245] In another embodiment of the invention, the flag is indicated when the triangular mesh scheme is disabled, in which case the geometry parameter set changes are shown in lines 6-8 in Table 27.

Figure 00000058
Figure 00000058

[00246] Когда значение log2_trisoup_node_size больше 0, может быть сделан вывод, что значение gps_implicit_geom_partition_flag равно 0, без явной сигнализации.[00246] When the value of log2_trisoup_node_size is greater than 0, it can be concluded that the value of gps_implicit_geom_partition_flag is 0, without explicit signaling.

[00247] Вариант С осуществления изобретения[00247] Embodiment C

[00248] В другом варианте осуществления изобретения в дополнение к флагу, другие параметры, которые относятся к неявному геометрическому разделению, могут быть указаны в синтаксисе высокого уровня, когда флаг gps_implicit_geom_partition_flag равен 1. Синтаксис набора параметров геометрии в таблице 28 изменен в строках 6-10.[00248] In another embodiment of the invention, in addition to the flag, other parameters that relate to implicit geometric partitioning may be specified in the high-level syntax when the gps_implicit_geom_partition_flag flag is 1. The geometry parameter set syntax in Table 28 is changed in lines 6-10 .

Figure 00000059
Figure 00000059

[00249] gps_max_num_implicit_qtbt_before_ot указывает максимальное количество неявных разделений QT и ВТ перед разделениями ОТ. gps_min_size_implicit_qtbt задает минимальный размер неявных разделений QT и ВТ.[00249] gps_max_num_implicit_qtbt_before_ot indicates the maximum number of implicit QT and BT splits before OT splits. gps_min_size_implicit_qtbt sets the minimum size for implicit QT and BT separations.

[00250] Вариант D осуществления изобретения[00250] Embodiment D

[00251] В другом варианте осуществления изобретения сигнализация ограничивающего бокса геометрии может зависеть от значения gps_implicit_geom_partition_flag следующим образом. Синтаксис заголовка геометрического слайса в таблице 29 изменен путем добавления синтаксической структуры в строках 10-16.[00251] In another embodiment of the invention, the geometry bounding box signaling may depend on the value of gps_implicit_geom_partition_flag as follows. The geometry slice header syntax in Table 29 has been modified by adding a syntax structure in lines 10-16.

Figure 00000060
Figure 00000060

[00252] gsh_log2_max_nodesize_x, gsh_log2_max_nodesize_y и gsh_log2_max_nodesize_z задают размеры ограничивающего бокса в измерениях х, у, z в масштабе log2, соответственно. Они указываются только тогда, когда значение gps_implicit_geom_partition_flag равно 1. Когда значение gps_impIicit_geom_partition_flag равно 0, указывается только один размер с помощью gsh_log2_max_nodesize, и в этом случае предполагается, что три измерения имеют одинаковый размер.[00252] gsh_log2_max_nodesize_x, gsh_log2_max_nodesize_y, and gsh_log2_max_nodesize_z define the dimensions of the bounding box in x, y, z dimensions in log2 scale, respectively. They are only specified when gps_implicit_geom_partition_flag is 1. When gps_impIicit_geom_partition_flag is 0, only one size is specified using gsh_log2_max_nodesize, in which case the three dimensions are assumed to be the same size.

[00253] Вариант Е осуществления изобретения[00253] Embodiment E

[00254] В другом варианте осуществления изобретения размеры ограничивающего бокса задаются их разностями. Синтаксис заголовка геометрического слайса в таблице 30 изменен в строках 10-16.[00254] In another embodiment of the invention, the dimensions of the bounding box are given by their differences. The geometry slice header syntax in Table 30 is changed in lines 10-16.

Figure 00000061
Figure 00000061

[00255] 3.2 Сигнализация управляющих флагов в синтаксисе высокого уровня с учетом схемы комбинации[00255] 3.2 Control Flag Signaling in High-Level Syntax Considering Combination Schema

[00256] В этом подразделе несколько вариантов осуществления изобретения описаны в качестве примеров, чтобы показать, как сигнализировать управляющие флаги в синтаксисе высокого уровня при рассмотрении комбинации неявного геометрического разделения и планарного режима.[00256] In this subsection, several embodiments of the invention are described as examples to show how to signal control flags in high-level syntax when considering a combination of implicit geometric separation and planar mode.

[00257] Вариант А осуществления изобретения[00257] Embodiment A of the invention

[00258] В одном варианте осуществления изобретения два управляющих флага задаются независимо в наборе параметров геометрии следующим образом. Синтаксис набора параметров геометрии в таблице 31 изменен в строках 6-7.[00258] In one embodiment of the invention, the two control flags are set independently in the geometry parameter set as follows. The syntax of the geometry parameter set in Table 31 is changed in lines 6-7.

Figure 00000062
Figure 00000062

[00259] Значение gps_planar_mode_flag, равное 1, указывает на то, что планарный режим включен для последовательности или слайса. Значение gps_planar_mode_flag, равное 0, указывает на то, что планарный режим отключен для последовательности или слайса.[00259] A gps_planar_mode_flag value of 1 indicates that planar mode is enabled for the sequence or slice. A gps_planar_mode_flag value of 0 indicates that planar mode is disabled for the sequence or slice.

[00260] Однако в этой схеме комбинации предполагается, что включен только один из этих двух методов. Например, gps_implicit_geom_partition_flag и gps_planar_mode_flag не могут одновременно равняться 1.[00260] However, in this combination scheme, it is assumed that only one of the two methods is included. For example, gps_implicit_geom_partition_flag and gps_planar_mode_flag cannot both be 1.

[00261] Вариант В осуществления изобретения[00261] Embodiment B

[00262] В другом варианте осуществления изобретения, управляющий флаг gps_planar_mode_flag указывается в зависимости от значения gps_implicit_geom_partition_flag в наборе параметров геометрии следующим образом. Синтаксис набора параметров геометрии в таблице 32 изменен в строках 6-8.[00262] In another embodiment of the invention, the control flag gps_planar_mode_flag is specified depending on the value of gps_implicit_geom_partition_flag in the geometry parameter set as follows. The syntax of the geometry parameter set in Table 32 is changed in lines 6-8.

Figure 00000063
Figure 00000063

[00263] В этом случае gps_planar_mode_flag указывается только тогда, когда значение gps_implicit_geom_partition_flag равно 0. Когда значение gps_implicit_geom_partition_flag равно 1, можно сделать вывод, что значение gps planar mode flag равно 0.[00263] In this case, gps_planar_mode_flag is only indicated when the value of gps_implicit_geom_partition_flag is 0. When the value of gps_implicit_geom_partition_flag is 1, it can be concluded that the value of gps planar mode flag is 0.

[00264] Вариант С осуществления изобретения[00264] Embodiment C

[00265] В другом варианте осуществления изобретения управляющий флаг gps_impIicit_geom_partition_flag указывается в зависимости от значения gps_planar_mode_flag в наборе параметров геометрии следующим образом. Синтаксис набора параметров геометрии в таблице 33 изменен в строках 6-8.[00265] In another embodiment of the invention, the control flag gps_impIicit_geom_partition_flag is specified depending on the value of gps_planar_mode_flag in the geometry parameter set as follows. The syntax of the geometry parameter set in Table 33 is changed in lines 6-8.

Figure 00000064
Figure 00000064

[00266] В этом случае gps_implicit_geom_partition_flag указывается только тогда, когда значение gps_planar_mode_flag равно 0. Когда значение gps_planar_mode_flag равно 1, может быть сделан вывод, что значение gps implicit geom partition flag равно 0.[00266] In this case, gps_implicit_geom_partition_flag is only indicated when the value of gps_planar_mode_flag is 0. When the value of gps_planar_mode_flag is 1, it can be concluded that the value of gps implicit geom partition flag is 0.

[00267] Вариант D осуществления изобретения[00267] Embodiment D

[00268] В другом варианте осуществления изобретения управляющий флаг gps_impIicit_geom_partition_flag указывается в зависимости от значения gps_planar_mode_flag и значения log2_trisoup_node_size в наборе параметров геометрии следующим образом. Синтаксис набора параметров геометрии в таблице 34 изменен в строке 6-8.[00268] In another embodiment of the invention, the control flag gps_impIicit_geom_partition_flag is specified depending on the value of gps_planar_mode_flag and the value of log2_trisoup_node_size in the geometry parameter set as follows. The syntax of the geometry parameter set in Table 34 is changed in line 6-8.

Figure 00000065
Figure 00000065

[00269] В этом случае gps_implicit_geom_partition_flag указывается только тогда, когда gps_planar_mode_flag и log2_trisoup_node_size равны 0. В противном случае, может быть сделан вывод, что значение gps_implicit_geom_partition_flag равно 0. Другими словами, неявное геометрическое разделение может быть включено только тогда, когда отключены как режим треугольной сетки, так и планарный режим.[00269] In this case, gps_implicit_geom_partition_flag is only indicated when gps_planar_mode_flag and log2_trisoup_node_size are 0. Otherwise, it can be inferred that the value of gps_implicit_geom_partition_flag is 0. In other words, implicit geometric partitioning can only be enabled when disabled as triangular mode. grids and planar mode.

[00270] 4. Планарный режим доступен только тогда, когда текущий узел октодерева является кубом[00270] 4. Planar mode is only available when the current octree node is a cube

[00271] Вторая схема комбинации может одновременно включать неявное геометрическое разделение и планарный режим. Но для планарного режима существуют некоторые ограничения. Если неявное геометрическое разделение включено, ограничивающий бокс и узлы октодерева могут не быть кубом. В этой схеме ограничение для применения планарного режима состоит в том, что планарный режим подходит только тогда, когда текущий узел октодерева является кубом, что указывает на dx=dy=dz.[00271] The second combination scheme may simultaneously include an implicit geometric separation and a planar mode. But for the planar mode, there are some limitations. If implicit geometric separation is enabled, the bounding box and octree nodes may not be a cube. In this scheme, the limitation for applying planar mode is that planar mode is only appropriate when the current octree node is a cube, which indicates d x =d y =d z .

[00272] В одном варианте осуществления изобретения синтаксис кодирования геометрии показан в таблице 35 и может быть аналогичен синтаксису в таблице 9.[00272] In one embodiment of the invention, the geometry encoding syntax is shown in Table 35 and may be similar to the syntax in Table 9.

Figure 00000066
Figure 00000066

[00273] Переменные ChildNodeSizeXLog2, ChildNodeSizeYLog2 и ChildNodeSizeZLog2 указывают размер дочернего узла для каждого измерения и могут быть определены с помощью неявных разделений QT и ВТ следующим образом:[00273] The variables ChildNodeSizeXLog2, ChildNodeSizeYLog2, and ChildNodeSizeZLog2 indicate the size of the child node for each dimension, and can be determined using implicit QT and BT separations as follows:

Figure 00000067
Figure 00000067

Figure 00000068
Figure 00000068

[00274] В этом варианте осуществления изобретения планарный режим неприменим, если NodeSizeLog2X, NodeSizeLog2Y и NodeSizeLog2Z не равны, как показано ниже,[00274] In this embodiment, planar mode is not applicable if NodeSizeLog2X, NodeSizeLog2Y and NodeSizeLog2Z are not equal, as shown below,

Figure 00000069
Figure 00000069

где planarModeEligibilityX, planarModeEligibilityY и planarModeEligibilityZ указывают, подходит ли планарный режим для измерений X, Y, Z, соответственно, в текущем кодированном узле.where planarModeEligibilityX, planarModeEligibilityY and planarModeEligibilityZ indicate whether the planar mode is appropriate for the X, Y, Z dimensions, respectively, at the current encoded node.

[00275] 5. Планарный режим неприменим для некоторых измерений, для которых не выполнено разделение[00275] 5. Planar mode is not applicable for some measurements that are not separated

[00276] Третья схема комбинации дополнительно ослабляет ограничение планарного режима, где планарный режим применим, даже если текущий узел октодерева не является кубом. Если для одного или двух измерений не выполнено разделение на одной глубине, планарный режим неприменим для этих измерений, в то время как он применим для остальных измерений. Например, если решено выполнить неявное геометрическое разделение в измерениях х и у, но не в измерении z на определенной глубине разделения, то планарный режим подходит только для измерений х и у.[00276] The third combination scheme further relaxes the planar mode limitation, where planar mode is applicable even if the current octree node is not a cube. If one or two measurements are not separated at the same depth, planar mode is not applicable for these measurements, while it is applicable for the remaining measurements. For example, if you decide to perform an implicit geometric split in the x and y dimensions, but not in the z dimension at a certain split depth, then planar mode is only suitable for the x and y dimensions.

[00277] В этом варианте осуществления изобретения планарный режим неприменим для определенных измерений, где разделение пропускается в пользу способа неявного геометрического разделения следующим образом,[00277] In this embodiment, planar mode is not applicable for certain measurements where separation is omitted in favor of an implicit geometric separation method as follows,

Figure 00000070
Figure 00000070

[00278] Следует отметить, что в других примерах планарный режим может быть изменен в других аспектах и более сложным образом для согласования с тем фактом, что узел октодерева теперь может быть прямоугольным параллелепипедом.[00278] It should be noted that in other examples, the planar mode may be modified in other aspects and in a more complex manner to accommodate the fact that the octree node may now be a cuboid.

[00279] V. Дополнительные варианты осуществления неявного геометрического разделения[00279] V. Additional Embodiments of Implicit Geometric Separation

[00280] Вариант А осуществления изобретения[00280] Embodiment A

[00281] Вариант А осуществления изобретения обеспечивает улучшение неявного геометрического разделения и сохраняет больше битов при кодировании кода занятости с неявным геометрическим разделением. В частности, процесс анализа занятости геометрического октодерева, описанный в разделе III, может быть изменен путем введения процесса определения переменной binlslnferred в конце процесса анализа занятости геометрического октодерева.[00281] Embodiment A provides improved implicit geometric separation and saves more bits when encoding a busy code with implicit geometric separation. In particular, the geometric octree occupancy analysis process described in section III can be modified by introducing a process for defining the variable binlslnferred at the end of the geometry octree occupancy analysis process.

Этот процесс реконструирует синтаксический элемент occupancymap.This process reconstructs the occupancymap syntax element.

Входными данными для этого процесса являются NeighbourPattern, binlsSkiped и binlslnferred текущего узла.The input to this process is the current node's NeighbourPattern, binlsSkiped, and binlslnferred.

Выходными данными для этого процесса является значение синтаксического элемента, построенное следующим образом:The output for this process is the value of the syntax element constructed as follows:

Figure 00000071
Figure 00000071

Figure 00000072
Figure 00000072

где переменная binIsSkiped[binIdx] установлена следующим образом:where the variable binIsSkiped[binIdx] is set as follows:

Figure 00000073
Figure 00000073

причем для каждого бина переменная binIsInferred устанавливается следующим образом:and for each bean, the binIsInferred variable is set as follows:

- Если выполнено одно из следующих условий, переменную binIsInferred устанавливают равной 1:- If one of the following conditions is met, the binIsInferred variable is set to 1:

- переменная NeighbourPattem равна 0, а количество ранее декодированных однозначных бинов меньше или равно (binIdx + minOccupied - maxOccupied).- the variable NeighbourPattem is equal to 0, and the number of previously decoded single-valued bins is less than or equal to (binIdx + minOccupied - maxOccupied).

- переменная NeighbourPattem не равна 0, значение binldx равно maxOccupied-1, а значения всех предыдущих декодированных бинов равны нулю,- the variable NeighbourPattem is not equal to 0, the value of binldx is equal to maxOccupied-1, and the values of all previous decoded bins are equal to zero,

при этом minOccupied = 2, a maxOccupied = 8 (если применяется ОТ), maxOccupied = 4 (если применяется QT) и maxOccupied = 2 (если применяется ВТ).while minOccupied = 2, and maxOccupied = 8 (if OT is applied), maxOccupied = 4 (if QT is applied) and maxOccupied = 2 (if BT is applied).

- В противном случае, если ни одно из вышеперечисленных условий не выполнено, переменную binIsInferred устанавливают равной 0.- Otherwise, if none of the above conditions is met, the binIsInferred variable is set to 0.

[00282] Вариант В осуществления изобретения[00282] Embodiment B of the invention

[00283] В одном варианте осуществления изобретения управляющий флаг gps_implicit_geom_partition_flag и два параметра K и М задаются в наборе параметров геометрии следующим образом.[00283] In one embodiment of the invention, the control flag gps_implicit_geom_partition_flag and the two parameters K and M are set in the geometry parameter set as follows.

Figure 00000074
Figure 00000074

[00284] Значение gps_implicit_geom_partition_flag, равное 1, указывает на то, что неявное геометрическое разделение включено для последовательности или слайса. Значение gps_implicit_geom_partition_flag, равное 0, указывает на то, что неявное геометрическое разделение отключено для последовательности или слайса. Если значение gps_implicit_geom_partition_flag равно 1, сигнализируются следующие два параметра:[00284] A gps_implicit_geom_partition_flag value of 1 indicates that implicit geometric partitioning is enabled for the sequence or slice. A gps_implicit_geom_partition_flag value of 0 indicates that implicit geometric partitioning is disabled for the sequence or slice. If the value of gps_implicit_geom_partition_flag is 1, the following two parameters are signaled:

[00285] (1) Значение gps_max_num_implicit_qtbt_before_ot задает максимальное количество неявных разделений QT и ВТ перед разделениями ОТ, то есть K=gps_max_num_implicit_qtbt_before_ot.[00285] (1) The gps_max_num_implicit_qtbt_before_ot value specifies the maximum number of implicit QT and BT splits before OT splits, that is, K=gps_max_num_implicit_qtbt_before_ot.

[00286] (2) Значение gps_min_size_implicit_qtbt задает минимальный размер неявных разделений QT и ВТ, то есть М=gps_min_size_implicit_qtbt. Этот параметр М предотвращает неявные разделения QT и ВТ, когда все размеры меньше или равны М.[00286] (2) The gps_min_size_implicit_qtbt value specifies the minimum size of the implicit QT and BT separations, i.e., M=gps_min_size_implicit_qtbt. This M option prevents QT and BT from being implicitly separated when all dimensions are less than or equal to M.

[00287] Вариант С осуществления изобретения[00287] Embodiment C

[00288] В одном варианте осуществления изобретения, если неявное разделение QTBT включено, размер ограничивающего бокса задается тремя значениями в заголовке геометрического слайса следующим образом:[00288] In one embodiment of the invention, if implicit QTBT separation is enabled, the size of the bounding box is given by three values in the geometry slice header as follows:

Figure 00000075
Figure 00000075

[00289] gsh_log2_max_nodesize_x указывает размер ограничивающего бокса в измерении х, то есть MaxNodesizeXLog2, который используется в процессе декодирования следующим образом:[00289] gsh_log2_max_nodesize_x indicates the size of the bounding box in the x dimension, i.e. MaxNodesizeXLog2, which is used in the decoding process as follows:

MaxNodeSizeXLog2=gsh_log2_max_nodesize_x.MaxNodeSizeXLog2=gsh_log2_max_nodesize_x.

MaxNodeSizeX=1<<MaxNodeSizeXLog2.MaxNodeSizeX=1<<MaxNodeSizeXLog2.

[00290] gsh_log2_max_nodesize_y_minus_x задает размер ограничивающего бокса в измерении у, то есть MaxNodesizeYLog2, который используется в процессе декодирования следующим образом:[00290] gsh_log2_max_nodesize_y_minus_x specifies the size of the bounding box in the y dimension, i.e. MaxNodesizeYLog2, which is used in the decoding process as follows:

MaxNodeSizeYLog2=gsh_log2_max_nodesize_ у_minus_x+MaxNodeSizeXLog2.MaxNodeSizeYLog2=gsh_log2_max_nodesize_y_minus_x+MaxNodeSizeXLog2.

MaxNodeSizeY=1<<MaxNodeSizeYLog2.MaxNodeSizeY=1<<MaxNodeSizeYLog2.

[00291] gsh_log2_max_nodesize_z_minus_y задает размер ограничивающего бокса в измерении z, то есть MaxNodesizeZLog2, который используется в процессе декодирования следующим образом:[00291] gsh_log2_max_nodesize_z_minus_y specifies the size of the bounding box in the z dimension, i.e. MaxNodesizeZLog2, which is used in the decoding process as follows:

MaxNodeSizeZLog2=gsh_log2_max_nodesize_z_minus_y + MaxNodeSizeYLog2.MaxNodeSizeZLog2=gsh_log2_max_nodesize_z_minus_y + MaxNodeSizeYLog2.

MaxNodeSizeZ=1<<MaxNodeSizeZLog2.MaxNodeSizeZ=1<<MaxNodeSizeZLog2.

[00292] Параметры K и M затем обновляются следующим образом:[00292] The K and M parameters are then updated as follows:

Figure 00000076
Figure 00000076

В варианте осуществления изобретения, когда включен режим треугольной сетки (log2_trisoup_node_size != 0 имеет значение «истина»), М меняют на минимальное значение log2 размера корневого узла слайса. Следует отметить, что значение log2 размера узла в режиме треугольной сетки не должно быть больше минимального значения log2 размера корневого узла слайса.In an embodiment of the invention, when triangular grid mode is enabled (log2_trisoup_node_size != 0 is true), M is changed to the minimum log2 value of the slice root node size. It should be noted that the log2 value of the node size in triangular grid mode should not be greater than the minimum log2 value of the root node size of the slice.

[00293] Вариант D осуществления изобретения[00293] Embodiment D

[00294] В варианте осуществления изобретения, синтаксис данных геометрического слайса в таблице 37 используется вместо синтаксической структуры в таблице 35 или таблице 9. Неявная функция принятия решения QT/BT вновь вводится в строке 3 таблицы 37. Синтаксис неявной функции принятия решения QT/BT показан в таблице 38, где переменная partitionSkip определяется в строках 9-16, а глубины в направлениях х, у и z обновляются в строках 17-23.[00294] In an embodiment, the geometric slice data syntax in Table 37 is used in place of the syntax structure in Table 35 or Table 9. The QT/BT implicit decision function is reintroduced in row 3 of Table 37. The QT/BT implicit decision function syntax is shown in Table 38, where the variable partitionSkip is defined on lines 9-16 and the depths in the x, y, and z directions are updated on lines 17-23.

Figure 00000077
Figure 00000077

Figure 00000078
Figure 00000078

[00295] VI. Примеры процесса декодирования геометрии[00295] VI. Geometry Decoding Process Examples

[00296] Фиг. 15 показывает блок-схему, описывающую способ (1500) согласно варианту осуществления изобретения. Например, способ (1500) может использоваться для декодирования облака точек. Способ (1500) может использоваться для создания структуры октодерева для представления геометрии точек в ограничивающем боксе слайса в декодере облака точек. В различных вариантах осуществления изобретения способ (1500) может выполняться схемой обработки, такой как схема обработки, выполняющая функции модуля (410) арифметического декодирования и модуля (430) декодирования октодерева в декодере (400). В некоторых вариантах осуществления изобретения способ (1500) реализован в виде программных инструкций, так что при исполнении схемой обработки программных инструкций схема обработки выполняет способ (1500). Способ начинается с шага (S1501) и переходит к шагу (S1510).[00296] FIG. 15 shows a flowchart describing a method (1500) according to an embodiment of the invention. For example, method (1500) may be used to decode a point cloud. Method (1500) may be used to create an octree structure for representing the geometry of points in a slice bounding box in a point cloud decoder. In various embodiments, the method (1500) may be performed by a processing circuit, such as a processing circuit performing the functions of an arithmetic decoding module (410) and an octree decoding module (430) in the decoder (400). In some embodiments, method (1500) is implemented as program instructions such that when the program instructions are executed by the processing circuit, the processing circuit executes method (1500). The method starts from step (S1501) and proceeds to step (S1510).

[00297] На шаге (S1510) может быть принят битовый поток, включающий слайс кодированного кадра облака точек. Например, слайс может включать последовательность синтаксических элементов и бинов, представляющих часть кодированного кадра или весь кодированный кадр облака точек.[00297] In step (S1510), a bitstream including a slice of an encoded point cloud frame may be received. For example, a slice may include a sequence of syntax elements and bins representing part of an encoded frame or an entire encoded frame of a point cloud.

[00298] На шаге (S1520) может быть реконструировано октодерево, представляющее геометрию точек в ограничивающем боксе слайса. В процессе построения октодерева текущий узел октодерева может быть разделен посредством разделения на основе квадродерева (QT) или разделения на основе бинарного дерева (ВТ). Например, способ разделения текущего узла октодерева посредством одного из разделения QT, разделения ВТ или разделения на основе октодерева (QT) может быть определен на основе заранее заданных условий. Способ разделения текущего узла октодерева посредством одного из разделения QT, разделения ВТ или разделения ОТ также может быть определен на основе одного или более параметров, каждый из которых может сигнализироваться в битовом потоке или может иметь заранее локально сконфигурированное значение.[00298] In step (S1520), an octree representing the geometry of the points in the bounding box of the slice can be reconstructed. In the octree construction process, the current node of the octree may be partitioned by quadtree partitioning (QT) or binary tree partitioning (BT). For example, a method for splitting the current octree node by one of QT splitting, BT splitting, or octree based splitting (QT) can be determined based on predetermined conditions. The method of splitting the current octree node by one of QT splitting, BT splitting, or OT splitting may also be determined based on one or more parameters, each of which may be signaled in the bitstream or may have a pre-locally configured value.

[00299] Во время построения октодерева может быть определено значение переменной, обозначенной partitionSkip и указывающей тип разделения и направление разделения текущего узла октодерева. Например, переменная partitionSkip может быть представлена в двоичной форме тремя битами, соответствующими направлениям х, у и z, соответственно, при этом каждый бит указывает, выполняется ли разделение вдоль соответствующего направления х, у или z. На основе переменной partitionSkip может быть обновлена глубина в измерении х, у или z для дочернего узла текущего узла октодерева.[00299] During construction of the octree, the value of a variable denoted partitionSkip and indicating the type of partition and direction of partition of the current node of the octree can be determined. For example, the partitionSkip variable can be represented in binary form with three bits corresponding to the x, y, and z directions, respectively, with each bit indicating whether the partition is performed along the corresponding x, y, or z direction. Based on the partitionSkip variable, the depth in the x, y, or z dimension for a child node of the current octree node can be updated.

[00300] Во время построения октодерева биты занятости, принадлежащие 8-биновому коду занятости текущего узла октодерева, могут быть приняты (или проанализированы) из битового потока. Каждый бит занятости соответствует занятому дочернему узлу текущего узла октодерева. Четыре бина, которые принадлежат 8-биновому коду занятости, не сигнализируются в битовом потоке, когда текущий узел октодерева разделен посредством разделения QT, и шесть бинов, которые принадлежат 8-биновому коду занятости, не сигнализируются в битовом потоке, когда текущий узел октодерева разделен посредством разделения ВТ.[00300] During octree construction, busy bits belonging to the 8-bin busy code of the current octree node may be received (or parsed) from the bitstream. Each busy bit corresponds to a busy child node of the current octree node. The four bins that belong to the 8-bin busy code are not signaled in the bitstream when the current octree node is split by QT splitting, and the six bins that belong to the 8-bin busy code are not signaled in the bitstream when the current octree node is split by VT separation.

[00301] Кроме того, из битового потока могут быть приняты один или более синтаксических элементов, указывающих трехмерные (3D) размеры ограничивающего бокса слайса кодированного кадра облака точек. Например, ограничивающий бокс слайса может иметь форму прямоугольного параллелепипеда.[00301] In addition, one or more syntax elements may be received from the bitstream indicating the three-dimensional (3D) dimensions of the encoded point cloud slice bounding box. For example, a slice's bounding box may be in the shape of a cuboid.

[00302] Во время построения октодерева, после приема синтаксического элемента, указывающего на то, что текущий узел октодерева имеет один занятый дочерний узел, может быть получен 1 бин, если переменная partitionSkip указывает на разделение ВТ, или могут быть получены 2 бина, если переменная partitionSkip указывает на разделение QT. Может быть определена карта занятости, идентифицирующая занятые дочерние узлы текущего узла октодерева, на основе принятых 1 или 2 бинов.[00302] During octree construction, after receiving a syntax element indicating that the current octree node has one occupied child node, 1 bin can be obtained if the partitionSkip variable indicates a BT split, or 2 bins can be obtained if the variable partitionSkip points to QT partitioning. An occupancy map may be defined identifying occupied child nodes of the current octree node, based on received 1 or 2 bins.

[00303] Во время построения октодерева процесс анализа битового потока может выполняться для определения синтаксического элемента карты занятости, идентифицирующей занятые дочерние узлы текущего узла октодерева. В процессе анализа можно определить бин синтаксического элемента карты занятости на основе переменной partitionSkip.[00303] During octree construction, a bitstream parsing process may be performed to determine an occupancy map syntax element identifying occupied child nodes of the current octree node. During parsing, you can determine the busy map syntax element bean based on the partitionSkip variable.

[00304] Во время построения октодерева для дочернего узла текущего узла октодерева, кодированного в прямом режиме, для каждого из направлений х, у и z может быть определено значение log2 размера, обозначаемое dx, dy и dz, соответственно, для дочернего узла на основе переменной partitionSkip. Может быть определено, что позиции точек в дочернем узле кодируются с помощью кодирования кодами фиксированной длины с использованием (dx, dy, dz) битов, соответственно. Соответственно, бины, соответствующие координатам точек в дочернем узле, могут быть приняты на основе известных длин кодирования.[00304] During octree construction, a child node of the current node of the direct-coded octree, for each of the x, y, and z directions, can be assigned a log2 size value, denoted by dx, dy, and dz, respectively, for the child node based on the variable partitionSkip. It may be determined that the positions of points at a child node are encoded by fixed length encoding using (dx, dy, dz) bits, respectively. Accordingly, bins corresponding to the coordinates of points at the child node can be received based on known encoding lengths.

[00305] В примере, для реконструкции октодерева может быть принят из битового потока синтаксический элемент, указывающий один из следующих параметров: максимальное количество неявных разделений QT и ВТ, выполняемых перед разделениями ОТ, минимальный размер неявных разделений QT и ВТ, который предотвращает неявные разделения QT и ВТ узла, когда все размеры узла меньше или равны минимальному размеру, или приоритет, указывающий на то, какое из неявных разделений QT или ВТ выполняется первым, когда разрешены оба разделения QT и ВТ.[00305] In an example, for octree reconstruction, a syntax element may be received from the bitstream indicating one of the following parameters: the maximum number of implicit QT and BT splits performed before OT splits, the minimum size of implicit QT and BT splits that prevents implicit QT splits and node BT when all node sizes are less than or equal to the minimum size, or a priority indicating which of the implicit QT or BT splits is performed first when both QT and BT splits are enabled.

[00306] В примере, во время построения октодерева, когда глубина октодерева текущего узла меньше, чем параметр K, или когда наименьшее значение log2 размера среди значений log2 размеров текущего узла в направлениях х, у и z равно параметру М, тип разделения и направление разделения для разделения текущего узла могут быть определены в соответствии с условиями, указанными в следующей таблице.[00306] In the example, at the time of constructing the octree, when the octree depth of the current node is less than the parameter K, or when the smallest log2 size value among the log2 sizes of the current node in the x, y, and z directions is equal to the parameter M, the split type and the split direction to split the current node can be defined according to the conditions specified in the following table.

Figure 00000079
Figure 00000079

[00307] Параметр K является целым числом в диапазоне 0 ≤ K ≤ max(dx, dy, dz) - min(dx, dy, dz) и задает максимальное количество неявных разделений QT и ВТ, которые разрешены до разделений ОТ. Параметр М является целым числом в диапазоне 0<М<min(dx, dy, dz) и задает минимальный размер неявных разделений QT и ВТ, который предотвращает неявные разделения QT и ВТ узла, когда все размеры узла меньше или равны М. Размеры dx, dy и dz могут быть значениями log2 размеров текущего узла в направлениях х, у и z, соответственно. В примере вышеупомянутый тип разделения и направление разделения для разделения текущего узла могут быть представлены переменной partitionSkip.[00307] The parameter K is an integer in the range 0 ≤ K ≤ max(d x , d y , d z ) - min(d x , d y , d z ) and specifies the maximum number of implicit QT and BT splits that are allowed up to divisions OT. The parameter M is an integer in the range 0<M<min(d x , d y , d z ) and specifies the minimum size of implicit QT and BT splits, which prevents implicit QT and BT node splits when all node sizes are less than or equal to M. The dimensions dx, dy, and dz can be log2 values of the dimensions of the current node in the x, y, and z directions, respectively. In the example, the above partition type and partition direction for partitioning the current node can be represented by the partitionSkip variable.

[00308] В примере, каждый из параметров K и М может сигнализироваться в декодер или принимать заранее сконфигурированное(ые) значение(я), а затем обновляться, например, на основе трехмерных размеров корневого узла слайса или на основе того, включен ли режим треугольной сетки.[00308] In an example, each of the parameters K and M may be signaled to the decoder or take on pre-configured value(s) and then updated, for example, based on the 3D dimensions of the slice root node or based on whether triangular mode is enabled. grids.

[00309] Следует отметить, что параметры K или М или другие параметры, используемые для управления или осуществления неявного разделения QT/BT, описаны просто как примеры, чтобы проиллюстрировать некоторые варианты осуществления изобретения. Могут быть различные формы параметров, сигнализируемых в битовом потоке и используемых для выполнения разделений QT/BT в декодере. Эти параметры могут быть, а могут и не быть похожими на K или М, но могут аналогичным образом использоваться для управления разделениями QT/BT, так что может быть повышена производительность сжатия облака точек.[00309] It should be noted that the parameters K or M, or other parameters used to control or implement implicit QT/BT separation, are described simply as examples to illustrate some embodiments of the invention. There may be various forms of parameters signaled in the bitstream and used to perform QT/BT separations at the decoder. These parameters may or may not be similar to K or M, but can be similarly used to control QT/BT splits so that point cloud compression performance can be improved.

[00310] После шага (S1520) процесс (1500) может завершиться на шаге (S1599).[00310] After step (S1520), the process (1500) may end at step (S1599).

[00311] VII. Компьютерная система[00311] VII. computer system

[00312] Вышеописанные способы могут быть реализованы в виде компьютерного программного обеспечения, использующего машиночитаемые инструкции и физически хранящегося на одном или более машиночитаемых носителях. Например, на фиг. 16 показана компьютерная система (1600), пригодная для осуществления некоторых вариантов осуществления изобретения.[00312] The above methods may be implemented as computer software using computer readable instructions and physically stored on one or more computer readable media. For example, in FIG. 16 shows a computer system (1600) suitable for practicing some embodiments of the invention.

[00313] Компьютерное программное обеспечение может кодироваться с использованием любого подходящего машинного кода или компьютерного языка, который может подвергаться ассемблированию, компиляции, редактированию связей или аналогичной обработке для создания кода, содержащего инструкции, которые могут выполняться напрямую или посредством интерпретации, выполнения микрокода и т.п., одним или более компьютерными центральными процессорами (CPU, central processing units), графическими процессорами (GPU, Graphics Processing Units) и т.п.[00313] Computer software may be coded using any suitable machine code or computer language that may be assembled, compiled, linked, or similarly processed to produce code containing instructions that can be executed directly or through interpretation, execution of microcode, etc. etc., one or more computer central processing units (CPU, central processing units), graphic processors (GPU, Graphics Processing Units), etc.

[00314] Инструкции могут выполняться на компьютерах различных типов или их компонентах, включая, например, персональные компьютеры, планшетные компьютеры, серверы, смартфоны, игровые устройства, устройства интернета вещей и т.п.[00314] The instructions may be executed on various types of computers or components thereof, including, for example, personal computers, tablet computers, servers, smartphones, gaming devices, IoT devices, and the like.

[00315] Компоненты компьютерной системы (1600), показанные на фиг. 16, носят иллюстративный характер и не призваны налагать какое-либо ограничение на объем применения или функциональные возможности компьютерного программного обеспечения, реализующего варианты осуществления настоящего изобретения. Конфигурацию компонентов также не следует интерпретировать как имеющую какую-либо зависимость или требование в связи с любым компонентом или комбинацией компонентов, показанных в примере осуществления компьютерной системы (1600).[00315] The computer system components (1600) shown in FIG. 16 are illustrative in nature and are not intended to impose any limitation on the scope of application or functionality of computer software implementing embodiments of the present invention. The component configuration should also not be interpreted as having any dependency or requirement in connection with any component or combination of components shown in the exemplary computer system (1600).

[00316] Компьютерная система (1600) может включать некоторые устройства ввода с человеко-машинным интерфейсом. Такое устройство ввода может отвечать за ввод одним или более пользователями посредством, например, тактильного ввода (например, нажатий на клавиши, махов, движений информационной перчатки), аудио-ввода (например, голосового, хлопков), визуального ввода (например, жестов), обонятельного ввода (не показан). Устройства интерфейса также могут использоваться для захвата некоторых информационных носителей, не обязательно напрямую связанных с осознанным вводом человеком, например звука (например, речи, музыки, внешнего звука), изображений (например, отсканированных изображений, фотографических изображений, полученных от камеры неподвижных изображений), видео (например, двумерного видео, трехмерного видео, включая стереоскопическое видео).[00316] The computer system (1600) may include some human-machine interface input devices. Such an input device may be responsible for input by one or more users through, for example, tactile input (e.g., keystrokes, waving, glove movements), audio input (e.g., voice, claps), visual input (e.g., gestures), olfactory input (not shown). Interface devices may also be used to capture certain media not necessarily directly related to conscious human input, such as sound (e.g. speech, music, external sound), images (e.g. scanned images, photographic images received from a still camera), video (eg 2D video, 3D video including stereoscopic video).

[00317] Входной человеко-машинный интерфейс устройства может включать одно или более из следующего (показано по одному): клавиатура (1601), мышь (1602), сенсорная панель (1603), сенсорный экран (1610), информационная перчатка (не показана), джойстик (1605), микрофон (1606), сканер (1607) и камера (1608).[00317] The input human-machine interface of the device may include one or more of the following (shown one at a time): keyboard (1601), mouse (1602), touch pad (1603), touch screen (1610), information glove (not shown) , joystick (1605), microphone (1606), scanner (1607) and camera (1608).

[00318] Компьютерная система (1600) также может включать в себя некоторые устройства вывода с человеко-машинным интерфейсом. Такие устройства вывода могут стимулировать органы чувств одного или более пользователей посредством, например, тактильного вывода, звука, света и запаха/вкуса. Такие устройства вывода могут включать устройства тактильного вывода (например, тактильной обратной связи посредством сенсорного экрана (1610), информационной перчатки (не показана) или джойстика (1605), а также устройства тактильной обратной связи, которые не служат устройствами ввода), устройства вывода аудио (например: динамики (1609), наушники (не показаны)), устройства визуального вывода (например, экраны (1610), в том числе CRT-экраны, LCD-экраны, плазменные экраны, OLED-экраны, каждый с возможностями сенсорного экранного ввода или без них, каждый с возможностями тактильной обратной связи или без них, некоторые из них способны к двумерному визуальному выводу или более чем трехмерному выводу посредством, например, стереографическому выводу, очки виртуальной реальности (не показаны), голографические дисплеи, дымовые баки (не показаны) и принтеры (не показаны).[00318] The computer system (1600) may also include some human interface output devices. Such output devices may stimulate the senses of one or more users through, for example, tactile output, sound, light, and smell/taste. Such output devices may include tactile output devices (e.g., tactile feedback via touch screen (1610), data glove (not shown) or joystick (1605), as well as tactile feedback devices that do not serve as input devices), audio output devices (for example: speakers (1609), headphones (not shown)), visual output devices (for example, screens (1610), including CRT screens, LCD screens, plasma screens, OLED screens, each with touch screen input capabilities or without, each with or without haptic feedback capabilities, some of which are capable of 2D visual output or more than 3D output via, for example, stereographic output, virtual reality goggles (not shown), holographic displays, smoke tanks (not shown). ) and printers (not shown).

[00319] Компьютерная система (1600) также может включать доступные человеку запоминающие устройства и связанные с ними носители, например, оптические носители, включающие CD / DVD ROM / RW (1620) с носителями (1621) CD/DVD и т.п., карты (1622) флэш-памяти, сменный жесткий диск или твердотельный диск (1623), традиционные магнитные носители, например, ленту и магнитный диск (не показан), специализированные устройства на основе ROM/ASIC/PLD, например, защитные аппаратные ключи (не показаны) и т.п.[00319] The computer system (1600) may also include human accessible storage devices and associated media, such as optical media including CD/DVD ROM/RW (1620) with CD/DVD media (1621) and the like, flash memory cards (1622), removable hard drive or solid state drive (1623), traditional magnetic media such as tape and magnetic disk (not shown), dedicated ROM/ASIC/PLD based devices such as security dongles (not shown). shown), etc.

[00320] Специалисты в данной области техники также должны понимать, что термин «машиночитаемые носители», используемый в связи с настоящим изобретением, не охватывает среды передачи, несущие волны или другие временные сигналы.[00320] Those skilled in the art should also understand that the term "computer-readable media" as used in connection with the present invention does not encompass transmission media, carrier waves, or other time signals.

[00321] Компьютерная система (1600) также может включать интерфейс (1654) к одной или более сетям (1655) связи. Сети могут быть, например, беспроводными, проводными, оптическими. Сети могут быть также локальными, глобальными, городскими, транспортными и промышленными, реального времени, допускающими задержку и т.д. Примеры сетей включают локальные сети, например, Ethernet, беспроводные сети LAN, сотовые сети, в том числе GSM, 3G, 4G, 5G, LTE и т.п., глобальные цифровые сети проводного или беспроводного телевидения, в том числе кабельное телевидение, спутниковое телевидение и наземное телевещание, транспортные и промышленные сети, включающие CANBus и т.д. Некоторые сети обычно требуют внешних адаптеров сетевого интерфейса, которые подключены к некоторым портам данных общего назначения или периферийным шинам (1649) (например, USB-порты компьютерной системы (1600)); другие обычно встраиваются в ядро компьютерной системы (1600) путем подключения к системной шине, как описано ниже (например, интерфейс Ethernet в компьютерную систему PC или интерфейс сотовой сети в компьютерную систему смартфона). Используя любую из этих сетей, компьютерная система (1600) может осуществлять связь с другими объектами. Такая связь может быть однонаправленной с возможностью только приема (например, телевещания), однонаправленной с возможностью только передачи (например, CANbus к некоторым устройствам CANbus) или двунаправленной, например, к другим компьютерным системам с использованием локальной или глобальной цифровой сети. Некоторые протоколы и стеки протоколов могут использоваться в каждой из этих сетей и вышеописанных сетевых интерфейсов.[00321] The computer system (1600) may also include an interface (1654) to one or more communication networks (1655). Networks can be, for example, wireless, wired, optical. Networks can also be local, global, urban, transport and industrial, real-time, latency, etc. Examples of networks include local area networks, such as Ethernet, wireless LANs, cellular networks, including GSM, 3G, 4G, 5G, LTE, etc., digital wide area networks of wired or wireless television, including cable television, satellite television and terrestrial broadcasting, transport and industrial networks, including CANBus, etc. Some networks typically require external network interface adapters that are connected to some general purpose data ports or peripheral buses (1649) (for example, computer system USB ports (1600)); others are typically built into the core of the computer system (1600) by connecting to a system bus as described below (eg, an Ethernet interface to a PC computer system or a cellular network interface to a smartphone computer system). Using any of these networks, the computer system (1600) can communicate with other entities. Such communication may be unidirectional with receive-only capability (eg broadcast), unidirectional with transmit-only capability (eg CANbus to some CANbus devices), or bidirectional, eg to other computer systems using a local area network or a wide area digital network. Several protocols and protocol stacks may be used on each of these networks and the network interfaces described above.

[00322] Вышеупомянутые устройства человеко-машинного интерфейса, доступные человеку запоминающие устройства и сетевые интерфейсы могут подключаться к ядру (1640) компьютерной системы (1600).[00322] The aforementioned human-machine interface devices, human-accessible storage devices, and network interfaces can be connected to the core (1640) of the computer system (1600).

[00323] Ядро (1640) может включать один или более центральных процессоров (CPU) (1641), графические процессоры (GPU) (1642), специализированные программируемые модули обработки в форме вентильных матриц, программируемых пользователем (FPGA, Field Programmable Gate Arrays) (1643), аппаратные ускорители (1644) для некоторых задач, графические адаптеры (1650) и т.д. Эти устройства, совместно с постоянной памятью (ROM) (1645), оперативной памятью (1646), внутренним хранилищем данных большой емкости, например, внутренними жесткими дисками, недоступными пользователю, SSD и т.п.(1647), могут соединяться посредством системной шины (1648). В некоторых компьютерных системах системная шина (1648) может быть доступна в форме одного или более физических разъемов для обеспечения расширений за счет дополнительных процессоров CPU, GPU и т.п. Периферийные устройства могут подключаться либо напрямую к системной шине (1648) ядра, либо через периферийную шину (1649). Например, экран (1610) может быть подключен к графическому адаптеру (1650). Архитектуры периферийной шины включают PCI, USB и т.п.[00323] The core (1640) may include one or more central processing units (CPU) (1641), graphics processing units (GPU) (1642), specialized programmable processing modules in the form of field programmable gate arrays (FPGA, Field Programmable Gate Arrays) ( 1643), hardware accelerators (1644) for some tasks, graphics adapters (1650), etc. These devices, together with read-only memory (ROM) (1645), random access memory (1646), high-capacity internal storage such as user-inaccessible internal hard drives, SSDs, etc. (1647), can be connected via the system bus (1648). In some computer systems, the system bus (1648) may be available in the form of one or more physical connectors to allow for expansions with additional CPUs, GPUs, or the like. Peripherals can be connected either directly to the system bus (1648) of the kernel, or via a peripheral bus (1649). For example, a screen (1610) may be connected to a graphics adapter (1650). Peripheral bus architectures include PCI, USB, and the like.

[00324] Устройства CPU (1641), GPU (1642), FPGA (1643) и ускорители (1644) могут выполнять некоторые инструкции, которые совместно могут составлять вышеупомянутый компьютерный код. Этот компьютерный код может храниться в памяти ROM (1645) или RAM (1646). Временные данные также могут храниться в памяти RAM (1646), тогда как постоянные данные могут храниться, например, во внутреннем хранилище (1647) данных большой емкости. Быстрое сохранение и извлечение из любого запоминающего устройства может обеспечиваться за счет использования кэш-памяти, которая может быть тесно связана с одним или более процессорами CPU (1641), GPU (1642), хранилищем (1647) данных большой емкости, памятью ROM (1645), RAM (1646) и т.п.[00324] CPU (1641), GPU (1642), FPGA (1643), and accelerator (1644) devices may execute some instructions that together may constitute the aforementioned computer code. This computer code may be stored in ROM (1645) or RAM (1646). Temporary data may also be stored in a RAM memory (1646), while permanent data may be stored in, for example, an internal large data storage (1647). Fast storage and retrieval from any storage device can be achieved through the use of cache memory, which can be closely associated with one or more processors CPU (1641), GPU (1642), mass storage (1647), ROM memory (1645) , RAM (1646), etc.

[00325] На машиночитаемых носителях может храниться компьютерный код для осуществления различных выполняемых компьютером операций. Носители и компьютерный код могут быть специально созданы в целях настоящего изобретения или могут относиться к хорошо известным и доступным специалистам в области компьютерного программного обеспечения.[00325] Computer-readable media may store computer code for performing various computer-executable operations. The media and computer code may be specially created for the purposes of the present invention or may be well known and available to those skilled in the art of computer software.

[00326] В порядке примера, но не ограничения изобретения, компьютерная система, имеющая архитектуру (1600), и, в частности, ядро (1640) может обеспечивать функциональные возможности благодаря выполнению процессором(ами) (включающим(и) в себя CPU, GPU, FPGA, ускорители и т.п.) программного обеспечения, воплощенного в одном или более материальных машиночитаемых носителей. Такие машиночитаемые носители могут быть носителями, связанными с доступным пользователю хранилищем данных большой емкости, представленным выше, а также некоторым постоянным хранилищем ядра (1640), например, внутренним хранилищем (1647) данных большой емкости или ROM (1645). Программное обеспечение, реализующее различные варианты осуществления настоящего изобретения, может храниться в таких устройствах и выполняться ядром (1640). Машиночитаемый носитель может включать одно или более запоминающих устройств или микросхем, в соответствии с конкретными нуждами. Программное обеспечение может предписывать ядру (1640) и, в частности, его процессорам (включая CPU, GPU, FPGA и т.п.) выполнять конкретные способы или конкретные части описанных здесь конкретных способов, включая задание структур данных, хранящихся в памяти RAM (1646), и модификацию таких структур данных согласно способам, заданным программным обеспечением. Дополнительно или альтернативно, компьютерная система может обеспечивать функциональные возможности благодаря логике, зашитой или иным образом воплощенной в схеме (например, ускоритель (1644)), которая может действовать вместо программного обеспечения или совместно с программным обеспечением для выполнения конкретных способов или конкретных частей описанных здесь конкретных способов. Ссылка на программное обеспечение может охватывать логику, и наоборот, когда это уместно. Ссылка на машиночитаемые носители может охватывать схему (например, интегральную схему (IC, integrated circuit)), где хранится программное обеспечение для выполнения, схему, воплощающую логику для выполнения, или обе схемы, когда это уместно. Настоящее изобретение охватывает любую подходящую комбинацию аппаратного и программного обеспечения.[00326] By way of example, and not limitation of the invention, a computer system having an architecture (1600), and in particular a core (1640), can provide functionality by being executed by the processor(s) (including(and) CPU, GPU , FPGAs, accelerators, etc.) software embodied in one or more tangible computer-readable media. Such computer-readable media may be media associated with the user-accessible mass storage described above, as well as some persistent kernel storage (1640), such as internal mass storage (1647) or ROM (1645). Software implementing various embodiments of the present invention may be stored on such devices and executed by the kernel (1640). The computer-readable medium may include one or more storage devices or microcircuits, in accordance with specific needs. The software may cause the core (1640) and, in particular, its processors (including CPUs, GPUs, FPGAs, and the like) to perform specific methods or specific parts of the specific methods described here, including setting data structures stored in RAM memory (1646 ), and modifying such data structures according to the methods specified by the software. Additionally or alternatively, the computer system may provide functionality through logic hardwired or otherwise embodied in circuitry (e.g., an accelerator (1644)), which may operate in place of, or in conjunction with software, to perform specific methods or specific portions of the specific methods described herein. ways. A reference to software may cover logic, and vice versa when appropriate. Reference to computer-readable media may cover a circuit (eg, an integrated circuit (IC, integrated circuit)), where software is stored for execution, a circuit embodying logic for execution, or both circuits, when appropriate. The present invention encompasses any suitable combination of hardware and software.

[00327] Хотя аспекты настоящего раскрытия были описаны в связи с его конкретными вариантами осуществления, которые предлагаются в качестве примеров, альтернативы, модификации и вариации примеров могут быть сделаны. Соответственно, варианты осуществления, изложенные в данном документе, предназначены для иллюстрации, а не ограничения. Могут быть внесены изменения, не выходящие за рамки формулы изобретения, изложенной ниже.[00327] Although aspects of the present disclosure have been described in connection with its specific embodiments, which are offered as examples, alternatives, modifications, and variations of the examples can be made. Accordingly, the embodiments set forth herein are intended to be illustrative and not restrictive. Changes may be made without departing from the scope of the claims set forth below.

Claims (60)

1. Способ декодирования геометрии облака точек в декодере облака точек, включающий:1. A method for decoding the geometry of a point cloud in a point cloud decoder, including: прием (S1510) битового потока, включающего слайс кодированного кадра облака точек, иreceiving (S1510) a bitstream including a slice of the encoded point cloud frame, and реконструкцию (S1520) октодерева, представляющего геометрию точек в ограничивающем боксе слайса, где текущий узел октодерева разделен посредством разделения на основе квадродерева (QT) или разделения на основе бинарного дерева (ВТ),reconstructing (S1520) an octree representing the geometry of points in a slice bounding box, where the current node of the octree is split by quadtree based splitting (QT) or binary tree based splitting (BT), при этом реконструкция (S1520) октодерева включает:wherein the reconstruction (S1520) of the octree includes: определение значения переменной, обозначенной partitionSkip и указывающей тип разделения и направление разделения текущего узла октодерева.defining the value of a variable, denoted partitionSkip, that specifies the type of partition and direction of partition of the current octree node. 2. Способ по п. 1, в котором реконструкция (S1520) октодерева включает: определение того, как разделить текущий узел октодерева с использованием одного из разделения QT, разделения ВТ или разделения на основе октодерева (ОТ) на основе заранее заданного условия.2. The method of claim 1, wherein reconstructing (S1520) the octree includes: determining how to split the current octree node using one of QT split, BT split, or octree based split (OT) based on a predetermined condition. 3. Способ по п. 1, в котором реконструкция (S1520) октодерева включает: определение того, как разделить текущий узел октодерева с использованием одного из разделения QT, разделения ВТ или разделения ОТ на основе одного или более параметров, при этом один из указанных одного или более параметров сигнализируют в битовом потоке или с использованием заранее локально сконфигурированного значения.3. The method of claim 1, wherein reconstructing (S1520) the octree includes: determining how to split the current octree node using one of QT split, BT split, or OT split based on one or more parameters, wherein one of said one or more parameters are signaled in the bitstream or using a locally configured pre-configured value. 4. Способ по п. 1, в котором реконструкция (S1520) октодерева включает: прием бинов занятости, принадлежащих 8-биновому коду занятости текущего узла октодерева, из битового потока,4. The method of claim 1, wherein reconstructing (S1520) the octree includes: receiving busy bins belonging to an 8-bin busy code of the current octree node from a bitstream, при этом каждый бин занятости соответствует занятому дочернему узлу текущего узла октодерева,each busy bin corresponds to a busy child node of the current octree node, 4 бина, которые принадлежат 8-биновому коду занятости, не сигнализируют в битовом потоке, когда текущий узел октодерева разделен посредством разделения QT, иThe 4 bins that belong to the 8-bin busy code do not signal in the bitstream when the current octree node is split by QT splitting, and 6 бинов, которые принадлежат 8-биновому коду занятости, не сигнализируют в битовом потоке, когда текущий узел октодерева разделен посредством разделения ВТ.The 6 bins that belong to the 8-bin busy code do not signal in the bitstream when the current octree node is divided by BT splitting. 5. Способ по п. 1, в котором реконструкция (S1520) октодерева включает: прием одного или более синтаксических элементов, указывающих трехмерные (3D) размеры ограничивающего бокса слайса кодированного кадра облака точек, из битового потока.5. The method of claim 1, wherein reconstructing (S1520) the octree includes: receiving one or more syntax elements indicating three-dimensional (3D) dimensions of a point cloud encoded frame slice bounding box from a bitstream. 6. Способ по п. 1, в котором переменная partitionSkip представлена в двоичной форме тремя битами, соответствующими направлениям x, у и z, соответственно, причем каждый бит указывает, выполнять ли разделение по соответствующим направлениям x, у или z.6. The method of claim 1, wherein the partitionSkip variable is represented in binary form by three bits corresponding to the x, y, and z directions, respectively, with each bit indicating whether to partition along the respective x, y, or z directions. 7. Способ по п. 1, в котором реконструкция октодерева также включает: обновление глубины в измерении x, у или z для дочернего узла текущего узла октодерева на основе переменной partitionSkip.7. The method of claim 1, wherein reconstructing the octree also includes: updating the depth in the x, y, or z dimension for a child node of the current octree node based on the partitionSkip variable. 8. Способ по п. 1, в котором реконструкция октодерева также включает:8. The method of claim 1, wherein reconstructing the octree also includes: прием синтаксического элемента, указывающего на то, что текущий узел октодерева имеет единственный занятый дочерний узел;receiving a syntax element indicating that the current octree node has a single occupied child node; получение 1 бина, если переменная partitionSkip указывает на разделение ВТ, или 2 бинов, если переменная partitionSkip указывает на разделение QT; иgetting 1 bin if the partitionSkip variable points to a BT partition, or 2 bins if the partitionSkip variable points to a QT partition; and определение карты занятости, идентифицирующей занятые дочерние узлы текущего узла октодерева на основе принятых 1 или 2 бинов.determining an occupancy map identifying occupied child nodes of the current octree node based on the received 1 or 2 bins. 9. Способ по п. 1, в котором реконструкция октодерева также включает:9. The method of claim 1, wherein reconstructing the octree also includes: в процессе анализа битового потока для определения синтаксического элемента карты занятости, идентифицирующей занятые дочерние узлы текущего узла октодерева, пропуск определения бина синтаксического элемента карты занятости на основе переменной partitionSkip.in the process of parsing the bitstream to determine the busy map syntax element that identifies busy child nodes of the current octree node, omitting the definition of the busy map syntax element bean based on the partitionSkip variable. 10. Способ по п. 1, в котором реконструкция октодерева также включает:10. The method of claim 1, wherein reconstructing the octree also includes: для дочернего узла текущего узла октодерева, кодированного в прямом режиме, определение для каждого из направлений x, у и z значения log2 размера, обозначенного dx, dy и dz, соответственно, для дочернего узла на основе переменной partitionSkip, причем позиции точек в дочернем узле кодированы кодами фиксированной длины с использованием (dx, dy, dz) битов, соответственно.for a child node of the current node of the direct-coded octree, determining for each of the x, y, and z directions a log2 value of size, denoted dx, dy, and dz, respectively, for the child node based on the variable partitionSkip, with the positions of the points in the child node being coded fixed length codes using (dx, dy, dz) bits, respectively. 11. Способ по п. 1, в котором реконструкция (S1520) октодерева также включает: прием из битового потока синтаксического элемента, указывающего один из следующих параметров:11. The method of claim 1, wherein reconstructing (S1520) the octree also includes: receiving from the bitstream a syntax element indicating one of the following: максимальное количество неявных разделений QT и ВТ, выполняемых перед разделениями ОТ,the maximum number of implicit QT and BT splits performed before OT splits, минимальный размер неявных разделений QT и ВТ, который предотвращает неявные разделения QT и ВТ узла, когда все размеры узла меньше или равны минимальному размеру, илиthe minimum size of implicit QT and BT splits, which prevents implicit QT and BT splits of a node when all node sizes are less than or equal to the minimum size, or приоритет, указывающий на то, какое из неявных разделений QT или ВТ выполнять первым, когда разрешены оба разделения QT и ВТ.a priority indicating which of the implicit QT or BT splits to perform first when both QT and BT splits are enabled. 12. Способ по п. 1, в котором реконструкция (S1520) октодерева также включает: в ответ на то, что глубина октодерева текущего узла меньше, чем параметр K,12. The method of claim 1, wherein reconstructing (S1520) the octree also includes: in response to the current node's octree depth being less than the parameter K, или наименьшее значение log2 размера среди значений log2 размеров текущего узла в направлениях x, у и z равно параметру М, определение типа разделения и направления разделения для разделения текущего узла в соответствии с условиями, указанными в следующей таблице:or the smallest log2 size value among the log2 sizes of the current node in the x, y, and z directions is equal to the M parameter, specifying the split type and split direction to split the current node according to the conditions specified in the following table:
Figure 00000080
Figure 00000080
где параметр K является целым числом в диапазоне 0≤K≤max(dx, dy, dz) - min(dx, dy, dz) и задает максимальное количество неявных разделений QT и ВТ, которые разрешены до разделений ОТ,where parameter K is an integer in the range 0≤K≤max(d x , d y , d z ) - min(d x , d y , d z ) and specifies the maximum number of implicit QT and BT splits that are allowed before OT splits , параметр М является целым числом в диапазоне 0≤М≤min(dx, dy, dz), задает минимальный размер неявных разделений QT и ВТ и предотвращает неявные разделения QT и ВТ узла, когда все размеры узла меньше или равны М, аparameter M is an integer in the range 0≤M≤min(d x , d y , d z ), specifies the minimum size of implicit QT and BT splits, and prevents implicit splits QT and BT of a node when all node sizes are less than or equal to M, and dx, dy, и dz значения log2 размеров текущего узла в направлениях x, у и z, соответственно.d x , d y , and d z are the log2 values of the sizes of the current node in the x, y, and z directions, respectively. 13. Способ по п. 1, в котором реконструкция (S1520) октодерева также включает: в ответ на то, что глубина октодерева текущего узла меньше, чем параметр K,13. The method of claim 1, wherein reconstructing (S1520) the octree also includes: in response to the current node's octree depth being less than the K parameter, или наименьшее значение log2 размера среди значений log2 размеров текущего узла в направлениях x, у и z равно параметру М, определение переменной partitionSkip следующим образом:or the smallest log2 size value among the log2 sizes of the current node in the x, y, and z directions is equal to the M parameter, the definition of the partitionSkip variable is as follows:
Figure 00000081
Figure 00000081
Figure 00000082
Figure 00000082
где переменная partitionSkip представлена в двоичной форме тремя битами и указывает тип разделения и направление разделения текущего узла октодерева,where the partitionSkip variable is represented in binary form by three bits and indicates the type of partition and the direction of partition of the current node of the octree, параметр K является целым числом в диапазоне 0≤K≤max(dx, dy, dz) - min(dx, dy, dz) и задает максимальное количество неявных разделений QT и ВТ, которые разрешены перед разделениями ОТ,parameter K is an integer in the range 0≤K≤max(d x , d y , d z ) - min(d x , d y , d z ) and specifies the maximum number of implicit QT and BT splits that are allowed before OT splits, параметр М является целым числом в диапазоне 0≤М≤min(dx, dy, dz), задает минимальный размер неявных разделений QT и ВТ и предотвращает неявные разделения QT и ВТ узла, когда все размеры узла меньше или равны М,parameter M is an integer in the range 0≤M≤min(d x , d y , d z ), specifies the minimum size of the implicit splits QT and BT of the node, and prevents implicit splits QT and BT of the node when all node sizes are less than or equal to M, dx, dy и dz - значения log2 размеров текущего узла в направлениях x, у и z, соответственно,dx, dy and dz are the log2 values of the sizes of the current node in the x, y and z directions, respectively, MaxNodeDimLog2 представляет максимальное значение log2 размера среди dx, dy и dz, аMaxNodeDimLog2 represents the maximum log2 size among dx, dy and dz, and оператор |= представляет собой составную побитовую операцию ИЛИ.the |= operator is a compound bitwise OR operation. 14. Способ по п. 1, в котором реконструкция (S1520) октодерева также включает: прием из битового потока флага, указывающего на то, разрешено ли неявное геометрическое разделение для последовательности кадров облака точек или для слайса кодированного кадра облака точек.14. The method of claim 1, wherein reconstructing (S1520) the octree also includes: receiving from the bitstream a flag indicating whether implicit geometric separation is allowed for a sequence of point cloud frames or for a slice of an encoded point cloud frame. 15. Способ по п. 1, в котором реконструкция (S1520) октодерева включает: определение того, что планарный режим неприменим в направлении x, у или z,15. The method of claim 1, wherein reconstructing (S1520) the octree includes: determining that the planar mode is not applicable in the x, y, or z direction, при этом для текущего узла разделение не выполняют.however, no split is performed for the current node. 16. Способ по п. 1, в котором реконструкция (S1520) октодерева включает: выполнение процесса анализа занятости геометрического октодерева, где для бина, имеющего индекс binIdx в коде занятости, переменную binIsInferred устанавливают следующим образом:16. The method of claim 1, wherein reconstructing (S1520) the octree includes: performing a geometric octree occupancy analysis process, where, for a bin having index binIdx in the occupancy code, the binIsInferred variable is set as follows: если любое из следующих условий выполнено, переменную binIsInferred устанавливают равной 1:if any of the following conditions are met, the binIsInferred variable is set to 1: (1) переменная NeighbourPattem равна 0 и количество ранее декодированных однозначных бинов меньше или равно (binIdx + minOccupied - maxOccupied), или(1) NeighbourPattem is 0 and the number of previously decoded single bins is less than or equal to (binIdx + minOccupied - maxOccupied), or (2) переменная NeighbourPattem не равна 0, значение binIdx равно maxOccupied-1, а значения всех предыдущих декодированных бинов равны нулю,(2) NeighborPattem is not 0, binIdx is maxOccupied-1, and all previous decoded bins are zero, причем minOccupied = 2, a maxOccupied = 8, если применяют разделение ОТ, maxOccupied = 4, если применяют разделение QT, и maxOccupied = 2, если применяют разделение ВТ, аwhere minOccupied = 2 and maxOccupied = 8 if OT split is used, maxOccupied = 4 if QT split is used, and maxOccupied = 2 if BT split is used, and в противном случае, если ни одно из вышеперечисленных условий не выполнено, переменную binlslnferred устанавливают равной 0.otherwise, if none of the above conditions are met, the binlslnferred variable is set to 0. 17. Способ по п. 1, в котором реконструкция (S1520) октодерева также включает:17. The method of claim 1, wherein reconstructing (S1520) the octree also includes: обновление параметра K, указывающего максимальное количество неявных разделений QT и ВТ перед разделениями ОТ, и параметра М, указывающего минимальный размер неявных разделений QT и ВТ, который предотвращает неявные разделения QT и ВТ узла, когда все размеры узла меньше или равны минимальному размеру, следующим образом:updating the parameter K indicating the maximum number of implicit QT and BT splits before OT splits and the parameter M specifying the minimum size of implicit QT and BT splits that prevents implicit QT and BT splits of a node when all node sizes are less than or equal to the minimum size, as follows : если K больше, чем разность максимального значения log2 размера корневого узла и минимального значения log2 размера корневого узла слайса, K меняют на разность максимального значения log2 размера корневого узла и минимального значения log2 размера корневого узла слайса;if K is greater than the difference of the maximum value log2 of the root node size and the minimum value of the log2 size of the root node of the slice, K is changed to the difference of the maximum value of the log2 size of the root node and the minimum value of the log2 size of the root node of the slice; если М больше, чем минимальное значение log2 размера корневого узла слайса, М меняют на минимальное значение log2 размера корневого узла слайса;if M is greater than the minimum log2 value of the slice root node size, M is changed to the minimum log2 value of the slice root node size; если максимальное значение log2 размера корневого узла и минимальное значение log2 размера корневого узла слайса равны, М меняют на 0; иif the maximum value log2 of the root node size and the minimum value log2 of the slice root node size are equal, M is changed to 0; and если включен режим треугольной сетки, K меняют на разность максимального значения log2 размера корневого узла и минимального значения log2 размера корневого узла слайса, а М меняют на минимальное значение log2 размера корневого узла слайса.if the triangular grid mode is enabled, K is changed to the difference between the maximum value log2 of the root node size and the minimum value of the log2 size of the root node of the slice, and M is changed to the minimum value of the log2 size of the root node of the slice. 18. Способ по п. 1, в котором реконструкция (S1520) октодерева также включает: реконструкцию октодерева, представляющего геометрию точек в ограничивающем боксе слайса, при этом определяют тип разделения и направление разделения для текущего узла октодерева, который разделен посредством разделения на основе квадродерева (QT) или разделения на основе бинарного дерева (ВТ).18. The method of claim 1, wherein reconstructing (S1520) the octree also includes: reconstructing an octree representing the geometry of points in a slice bounding box, determining a split type and a split direction for the current node of the octree that is split by a split based on a quadtree ( QT) or binary tree partitioning (BT). 19. Устройство для декодирования геометрии облака точек, содержащее схему, сконфигурированную для осуществления способа по любому из пп. 1-18.19. A device for decoding the geometry of a point cloud, containing a circuit configured to implement the method according to any one of paragraphs. 1-18. 20. Машиночитаемый носитель, хранящий инструкции, которые при их исполнении процессором заставляют процессор осуществлять способ по любому из пп. 1-18.20. A computer-readable medium that stores instructions that, when executed by the processor, cause the processor to carry out the method according to any one of paragraphs. 1-18.
RU2021128692A 2019-06-26 2020-06-23 Implicit geometric division based on a quad-tree or binary tree for encoding a point cloud RU2778864C1 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US62/867,063 2019-06-26
US62/904,384 2019-09-23
US62/910,387 2019-10-03
US16/909,642 2020-06-23

Publications (1)

Publication Number Publication Date
RU2778864C1 true RU2778864C1 (en) 2022-08-26

Family

ID=

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170347100A1 (en) * 2016-05-28 2017-11-30 Microsoft Technology Licensing, Llc Region-adaptive hierarchical transform and entropy coding for point cloud compression, and corresponding decompression
WO2019011637A1 (en) * 2017-07-13 2019-01-17 Interdigital Vc Holdings, Inc. A method and apparatus for encoding/decoding a colored point cloud representing the geometry and colors of a 3d object
WO2019070952A1 (en) * 2017-10-06 2019-04-11 Interdigital Vc Holdings, Inc. A method and apparatus for encoding/decoding the geometry of a point cloud representing a 3d object

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170347100A1 (en) * 2016-05-28 2017-11-30 Microsoft Technology Licensing, Llc Region-adaptive hierarchical transform and entropy coding for point cloud compression, and corresponding decompression
WO2019011637A1 (en) * 2017-07-13 2019-01-17 Interdigital Vc Holdings, Inc. A method and apparatus for encoding/decoding a colored point cloud representing the geometry and colors of a 3d object
WO2019070952A1 (en) * 2017-10-06 2019-04-11 Interdigital Vc Holdings, Inc. A method and apparatus for encoding/decoding the geometry of a point cloud representing a 3d object

Similar Documents

Publication Publication Date Title
US11924468B2 (en) Implicit quadtree or binary-tree geometry partition for point cloud coding
US11736726B2 (en) Parallel encoding for point cloud compression
US10904564B2 (en) Method and apparatus for video coding
WO2020072319A1 (en) Method and apparatus for video coding
JP7233561B2 (en) Method for point cloud compression and its apparatus and computer program
KR20220127837A (en) Method and apparatus for HAAR-based point cloud coding
JP7325534B2 (en) Method and apparatus for point cloud encoding
KR102650334B1 (en) Method and apparatus for point cloud coding
RU2778864C1 (en) Implicit geometric division based on a quad-tree or binary tree for encoding a point cloud
US11611775B2 (en) Method and apparatus for point cloud coding