RU2792020C1 - Method and device for encoding point cloud - Google Patents

Method and device for encoding point cloud Download PDF

Info

Publication number
RU2792020C1
RU2792020C1 RU2021132079A RU2021132079A RU2792020C1 RU 2792020 C1 RU2792020 C1 RU 2792020C1 RU 2021132079 A RU2021132079 A RU 2021132079A RU 2021132079 A RU2021132079 A RU 2021132079A RU 2792020 C1 RU2792020 C1 RU 2792020C1
Authority
RU
Russia
Prior art keywords
point cloud
split
signaling information
value
mode
Prior art date
Application number
RU2021132079A
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 RU2792020C1 publication Critical patent/RU2792020C1/en

Links

Images

Abstract

FIELD: information technology.
SUBSTANCE: invention relates to the field of encoding a point cloud. The first signal information is received from an encoded bit stream for a point cloud, which includes a set of points in a three-dimensional (3D) space. The first signal information indicates information about splitting the point cloud. The second signal information is determined based on the first signal information indicating the first value. The second signal information indicates a mode of splitting the set of points in the three-dimensional space. Next, the mode of splitting the set of points in the three-dimensional space is determined based on the second signal information. After that, the point cloud is restored based on the splitting mode.
EFFECT: provision of a possibility of compression of a point cloud without losses.
14 cl, 16 dwg, 5 tbl

Description

ВКЛЮЧЕНИЕ ПУТЕМ ССЫЛКИINCLUDING BY LINK

[0001] Для настоящей заявки испрашивается приоритет в соответствии с патентной заявкой США №17/203,155 «СПОСОБ И УСТРОЙСТВО ДЛЯ КОДИРОВАНИЯ ОБЛАКА ТОЧЕК», поданной 16 марта 2021 г., для которой испрашивается преимущество приоритета предварительной заявки США №63/004,304, «СПОСОБ И УСТРОЙСТВО ДЛЯ ГИБКОГО РАЗБИЕНИЯ КВАДРОДЕРЕВА И ДВОИЧНОГО ДЕРЕВА ДЛЯ ГЕОМЕТРИЧЕСКОГО КОДИРОВАНИЯ», поданной 2 апреля 2020 г. Полное раскрытие предшествующих заявок включено в настоящий документ посредством ссылки.[0001] The present application claims priority under U.S. Patent Application No. 17/203,155, "METHOD AND APPARATUS FOR POINT CLOUD ENCODING", filed March 16, 2021, which claims priority priority of U.S. Provisional Application No. 63/004,304, "METHOD AND DEVICE FOR FLEXIBLE PARTITION OF QUAD-TREE AND BINARY-TREE FOR GEOMETRIC ENCODING”, filed April 2, 2020. The entire disclosures of prior applications are hereby incorporated by reference.

ОБЛАСТЬ ТЕХНИКИFIELD OF TECHNOLOGY

[0002] Настоящее изобретение описывает варианты осуществления, в целом относящиеся к кодированию облака точек.[0002] The present invention describes embodiments generally related to point cloud coding.

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

[0003] Описание уровня техники, предоставленное в данном документе, предназначено для общего представления контекста изобретения. Работа изобретателей, в той мере, в какой она описана в этом разделе, посвященном уровню техники, а также аспекты описания, которые не могут считаться предшествующим уровнем техники на момент подачи заявки, ни прямо, ни косвенно не признаются в качестве известного уровня техники в отношении настоящего изобретения.[0003] The description of the prior art provided herein is intended to provide a general overview of the context of the invention. The work of the inventors, to the extent that it is described in this section on the prior art, as well as aspects of the description that cannot be considered prior art at the time of filing, are not expressly or impliedly recognized as prior art with respect to of the present invention.

[0004] Различные технологии разработаны для захвата и представления мира, такого как объекты в мире, окружающая среда в мире и т.п., в трехмерном (3D) пространстве. Трехмерные представления мира могут обеспечить более иммерсивные формы взаимодействия и общения. Облака точек можно использовать как трехмерное представление мира. Облако точек - это набор точек в трехмерном пространстве, каждая из которых имеет связанные атрибуты, например цвет, свойства материала, информация о текстуре, атрибуты интенсивности, атрибуты отражательной способности, атрибуты, связанные с движением, атрибуты модальности и/или различные другие атрибуты. Такие облака точек могут включать в себя большие объемы данных, и их хранение и передача могут потребовать больших затрат времени и средств.[0004] Various technologies have been developed for capturing and representing the world, such as objects in the world, environments in the world, and the like, in three-dimensional (3D) space. Three-dimensional representations of the world can provide more immersive forms of interaction and communication. Point clouds can be used as a 3D representation of the world. A point cloud is a collection of points in 3D space, each of which has associated attributes, such as color, material properties, texture information, intensity attributes, reflectivity attributes, motion-related attributes, modality attributes, and/or various other attributes. Such point clouds can contain large amounts of data, and their storage and transmission can be time and cost intensive.

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

[0005] Аспекты изобретения предлагают способы и устройства для сжатия и распаковки облака точек. Согласно аспекту изобретения, предлагается способ геометрического декодирования облака точек в декодере облака точек. В этом способе первая сигнальная информация может быть получена из кодированного битового потока для облака точек, которое включает в себя набор точек в трехмерном (3D) пространстве. Первая сигнальная информация может указывать информацию о разбиении облака точек. Вторая сигнальная информация может быть определена на основе первой сигнальной информации, указывающей первое значение. Вторая сигнальная информация может указывать на режим разбиения набора точек в трехмерном пространстве. Кроме того, режим разбиения набора точек в трехмерном пространстве может быть определен на основе второй сигнальной информации. Облако точек может быть впоследствии восстановлено в зависимости от режима разбиения.[0005] Aspects of the invention provide methods and apparatus for compressing and decompressing a point cloud. According to an aspect of the invention, a method for geometrically decoding a point cloud in a point cloud decoder is provided. In this method, the first signaling information may be obtained from an encoded bitstream for a point cloud that includes a set of points in three-dimensional (3D) space. The first signaling information may indicate partitioning information of the point cloud. The second signaling information may be determined based on the first signaling information indicating the first value. The second signaling information may indicate the mode of splitting the set of points in three-dimensional space. In addition, the splitting mode of the set of points in the three-dimensional space can be determined based on the second signal information. The point cloud can be subsequently reconstructed depending on the partitioning mode.

[0006] В некоторых вариантах осуществления, режим разбиения может быть определен как предварительно определенное разбиение квадродерева и двоичного дерева (Quad-tree and Binary-tree, QtBt) на основе второй сигнальной информации, указывающей второе значение.[0006] In some embodiments, the split mode may be determined as a predefined split of a Quad-tree and Binary-tree (QtBt) based on second signaling information indicating a second value.

[0007] В способе может быть принята третья сигнальная информация, которая указывает, что трехмерное пространство является асимметричным кубоидом. Размеры трехмерного пространства, которые сообщаются по осям х, у и z, могут быть определены на основе третьей сигнальной информации, указывающей первое значение.[0007] The method may receive third signal information that indicates that the three-dimensional space is an asymmetric cuboid. The dimensions of the three-dimensional space that are communicated along the x, y, and z axes may be determined based on the third signal information indicating the first value.

[0008] В некоторых вариантах осуществления 3-битовая сигнальная информация может быть определена для каждого из множества уровней разбиения в режиме разбиения, основанном на второй сигнальной информации, указывающей первое значение. 3-битовая сигнальная информация для каждого из множества уровней разбиения может указывать направления разбиения по осям х, у и z для соответствующего уровня разбиения в режиме разбиения.[0008] In some embodiments, 3-bit signaling information may be determined for each of a plurality of split levels in a split mode based on the second signaling information indicating the first value. The 3-bit signaling information for each of the plurality of split levels may indicate split directions along the x, y, and z axes for the corresponding split level in the split mode.

[0009] В некоторых вариантах осуществления 3-битовая сигнальная информация может быть определена на основе размеров трехмерного пространства.[0009] In some embodiments, the implementation of the 3-bit signaling information may be determined based on the dimensions of the three-dimensional space.

[0010] В способе режим разбиения может быть определен на основе первой сигнальной информации, указывающей второе значение, где режим разбиения может включать в себя соответствующее разбиение октодерева в каждом из множества уровней разбиения в режиме разбиения.[0010] In the method, a split mode may be determined based on a first signaling information indicating a second value, where the split mode may include a corresponding split of an octree in each of the plurality of split levels in the split mode.

[0011] Согласно аспекту изобретения, предлагается способ геометрического декодирования облака точек в декодере облака точек. В этом способе первая сигнальная информация может быть получена из кодированного битового потока для облака точек, которое включает в себя набор точек в трехмерном (3D) пространстве. Первая сигнальная информация может указывать информацию о разбиении облака точек. Режим разбиения набора точек в трехмерном пространстве может быть определен на основе первой сигнальной информации, причем режим разбиения может включать в себя множество уровней разбиения. Облако точек впоследствии может быть реконструировано на основе режима разбиения.[0011] According to an aspect of the invention, a method for geometrically decoding a point cloud in a point cloud decoder is provided. In this method, the first signaling information may be obtained from an encoded bitstream for a point cloud that includes a set of points in three-dimensional (3D) space. The first signaling information may indicate partitioning information of the point cloud. The partitioning mode of the set of points in the 3D space may be determined based on the first signal information, and the partitioning mode may include a plurality of partitioning levels. The point cloud can subsequently be reconstructed based on the mesh mode.

[0012] В некоторых вариантах осуществления 3-битовая сигнальная информация для каждого из множества уровней разбиения в режиме разбиения может быть определена на основе первой сигнальной информации, указывающей первое значение, где 3-битовая сигнальная информация для каждого из множества уровней разбиения может указывать направления разбиения по направлениям х, у и z для соответствующего уровня разбиения в режиме разбиения.[0012] In some embodiments, the 3-bit signaling information for each of the multiple split levels in the split mode may be determined based on the first signaling information indicating the first value, where the 3-bit signaling information for each of the multiple split levels may indicate split directions. in the x, y, and z directions for the corresponding split level in split mode.

[0013] В некоторых вариантах осуществления 3-битовая сигнальная информация может быть определена на основе размеров трехмерного пространства.[0013] In some embodiments, the implementation of 3-bit signaling information may be determined based on the dimensions of the three-dimensional space.

[0014] В некоторых вариантах осуществления режим разбиения может быть определен для включения соответствующего разбиения октодерева в каждый из множества уровней разбиения в режиме разбиения, основанном на первой сигнальной информации, указывающей второе значение.[0014] In some embodiments, a split mode may be defined to include a corresponding split of the octree in each of the multiple split levels in the split mode based on the first signaling information indicating the second value.

[0015] В способе вторая сигнальная информация может дополнительно быть принята из кодированного битового потока для облака точек. Вторая сигнальная информация может указывать, что трехмерное пространство является асимметричным кубоидом, когда вторая сигнальная информация является первым значением, и трехмерное пространство является симметричным кубоидом, когда вторая сигнальная информация является вторым значением.[0015] In the method, the second signaling information may additionally be received from the encoded bitstream for the point cloud. The second signaling information may indicate that the 3D space is an asymmetric cuboid when the second signaling information is the first value, and the 3D space is a symmetrical cuboid when the second signaling information is the second value.

[0016] В некоторых вариантах осуществления, на основе первой сигнальной информации, указывающей второе значение, и второй сигнальной информации, указывающей первое значение, режим разбиения может быть определен для включения соответствующего разбиения октодерева в каждый из первых уровней разбиения в множестве уровней разбиения режима разбиения. Тип разбиения и направление разбиения последнего уровня разбиения из множества уровней разбиения режима разбиения могут быть определены согласно следующим условиям:[0016] In some embodiments, based on the first signaling information indicating the second value and the second signaling information indicating the first value, the split mode may be determined to include a corresponding split of the octree in each of the first split levels in the split mode split level set. The split type and the split direction of the last split level from the multiple split levels of the split mode can be determined according to the following conditions:

Figure 00000001
Figure 00000001

где dx, dy, и dz являются log2 размеров трехмерного пространства вдоль осей х, у и z, соответственно.where d x , d y , and d z are log2 dimensions of three-dimensional space along the x, y, and z axes, respectively.

[0017] В способе вторая сигнальная информация может быть определена на основе первой сигнальной информации, указывающей первое значение. Вторая сигнальная информация может указывать, что трехмерное пространство является асимметричным кубоидом, когда вторая сигнальная информация указывает первое значение, и трехмерное пространство является симметричным кубоидом, когда вторая сигнальная информация указывает второе значение. Кроме того, размеры трехмерного пространства, которые сообщаются по направлениям х, у и z, могут быть определены на основе второй сигнальной информации, указывающей первое значение.[0017] In the method, the second signaling information may be determined based on the first signaling information indicating the first value. The second signaling information may indicate that the 3D space is an asymmetric cuboid when the second signaling information indicates a first value, and the 3D space is a symmetrical cuboid when the second signaling information indicates a second value. In addition, the dimensions of the three-dimensional space that are communicated in the x, y, and z directions can be determined based on the second signal information indicating the first value.

[0018] В некоторых примерах устройство для обработки данных облака точек включает в себя схему приема и схему обработки, которые сконфигурированы для выполнения одного или нескольких способов, описанных выше.[0018] In some examples, a point cloud data processing apparatus includes a receiving circuit and a processing circuit that are configured to perform one or more of the methods described above.

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

[0019] Дополнительные особенности, природа и различные преимущества раскрытого предмета изобретения будут более понятны из следующего подробного описания и прилагаемых чертежей, на которых:[0019] Additional features, nature and various advantages of the disclosed subject matter will be better understood from the following detailed description and the accompanying drawings, in which:

[0020] Фиг. 1 - схематическая иллюстрация упрощенной структурной схемы системы связи в соответствии с вариантом осуществления;[0020] FIG. 1 is a schematic illustration of a simplified block diagram of a communication system in accordance with an embodiment;

[0021] Фиг. 2 - схематическая иллюстрация упрощенной структурной схемы потоковой системы в соответствии с вариантом осуществления;[0021] FIG. 2 is a schematic illustration of a simplified block diagram of a streaming system according to an embodiment;

[0022] Фиг. 3 показывает структурную схему кодера для кодирования кадров облака точек согласно некоторым вариантам осуществления;[0022] FIG. 3 shows a block diagram of an encoder for encoding point cloud frames, according to some embodiments;

[0023] Фиг. 4 показывает структурную схему декодера для декодирования сжатого битового потока, соответствующего кадрам облака точек, согласно некоторым вариантам осуществления;[0023] FIG. 4 shows a block diagram of a decoder for decoding a compressed bitstream corresponding to point cloud frames, according to some embodiments;

[0024] Фиг. 5 - схематическая иллюстрация упрощенной структурной схемы видеодекодера в соответствии с вариантом осуществления;[0024] FIG. 5 is a schematic illustration of a simplified block diagram of a video decoder according to an embodiment;

[0025] Фиг. 6 - схематическая иллюстрация упрощенной структурной схемы видеокодера в соответствии с вариантом осуществления;[0025] FIG. 6 is a schematic illustration of a simplified block diagram of a video encoder according to an embodiment;

[0026] Фиг. 7 показывает структурную схему декодера для декодирования сжатого битового потока, соответствующего кадрам облака точек, согласно некоторым вариантам осуществления;[0026] FIG. 7 shows a block diagram of a decoder for decoding a compressed bitstream corresponding to point cloud frames, according to some embodiments;

[0027] Фиг. 8 показывает структурную схему кодера для кодирования кадров облака точек согласно некоторым вариантам осуществления;[0027] FIG. 8 shows a block diagram of an encoder for encoding point cloud frames, according to some embodiments;

[0028] Фиг. 9 показывает схему, иллюстрирующую разбиение куба на основе техники разбиения октодерева согласно некоторым вариантам осуществления настоящего изобретения.[0028] FIG. 9 shows a diagram illustrating cube partitioning based on an octree partitioning technique according to some embodiments of the present invention.

[0029] Фиг. 10 показывает пример разбиения октодерева и структуры октодерева, соответствующей разбиению октодерева, согласно некоторым вариантам осуществления изобретения.[0029] FIG. 10 shows an example of an octree split and an octree structure corresponding to the octree split, according to some embodiments of the invention.

[0030] Фиг. 11 показывает облако точек с ограничивающим параллелепипедом, более коротким в направлении z, согласно некоторым вариантам осуществления изобретения.[0030] FIG. 11 shows a point cloud with a bounding box shorter in the z-direction, in accordance with some embodiments of the invention.

[0031] Фиг. 12 показывает схему, иллюстрирующую разбиение куба на основе техники разбиения октодерева по осям х-у, x-z и y-z, согласно некоторым вариантам осуществления изобретения.[0031] FIG. 12 shows a diagram illustrating cube partitioning based on the x-y, x-z, and y-z octree partitioning technique, in accordance with some embodiments of the invention.

[0032] Фиг. 13 показывает схему, иллюстрирующую разбиения куба на основе способа двоичного разбиения по осям х, у и z, согласно некоторым вариантам осуществления изобретения.[0032] FIG. 13 shows a diagram illustrating cube partitions based on the x, y, and z binary partitioning method, in accordance with some embodiments of the invention.

[0033] Фиг. 14 показывает первую блок-схему, описывающую первый пример процесса в соответствии с некоторыми вариантами осуществления.[0033] FIG. 14 shows a first flowchart describing a first example of a process in accordance with some embodiments.

[0034] Фиг. 15 показывает вторую блок-схему, описывающую второй пример процесса в соответствии с некоторыми вариантами осуществления.[0034] FIG. 15 shows a second flowchart describing a second process example in accordance with some embodiments.

[0035] Фиг. 16 - схематическая иллюстрация компьютерной системы в соответствии с вариантом осуществления.[0035] FIG. 16 is a schematic illustration of a computer system in accordance with an embodiment.

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

[0036] Усовершенствованные трехмерные представления мира обеспечивают более иммерсивные формы взаимодействия и коммуникации, а также позволяют машинам понимать, интерпретировать и ориентироваться в нашем мире. Трехмерные облака точек появились как возможность представления такой информации. Выявлен ряд случаев применения, связанных с данными облака точек, и разработаны соответствующие требования для представления и сжатия облака точек. Например, трехмерное облако точек можно использовать при автономном вождении для обнаружения и локализации объектов. Облако точек 3D может также использоваться в географических информационных системах (ГИС) для картографии и использоваться в культурном наследии для визуализации и архивирования объектов и коллекций культурного наследия.[0036] Enhanced 3D representations of the world enable more immersive forms of interaction and communication, and allow machines to understand, interpret, and navigate our world. Three-dimensional point clouds emerged as a way to represent such information. A number of use cases related to point cloud data have been identified and corresponding requirements have been developed for point cloud representation and compression. For example, a 3D point cloud can be used in autonomous driving to detect and localize objects. The 3D point cloud can also be used in geographic information systems (GIS) for mapping and used in cultural heritage to visualize and archive cultural heritage objects and collections.

[0037] Облако точек в общем представляет собой набор точек в трехмерном пространстве, каждая со связанными с ней атрибутами. Атрибуты могут включать в себя цвет, свойства материала, информацию о текстуре, атрибуты интенсивности, атрибуты отражательной способности, атрибуты, связанные с движением, атрибуты модальности и/или различные другие атрибуты. Облака точек можно использовать для воссоздания объекта или сцены как композиции таких точек. Точки могут быть захвачены с помощью множества камер, датчиков глубины и/или лидара в различных настройках и могут включать от тысяч до миллиардов точек для реалистичного представления реконструированных сцен.[0037] A point cloud is generally a collection of points in three-dimensional space, each with attributes associated with it. The attributes may include color, material properties, texture information, intensity attributes, reflectivity attributes, motion-related attributes, modality attributes, and/or various other attributes. Point clouds can be used to recreate an object or scene as a composition of such points. The points may be captured using a variety of cameras, depth sensors and/or lidar in various settings and may include thousands to billions of points to realistically represent rendered scenes.

[0038] Технологии сжатия могут уменьшить объем данных, необходимых для представления облака точек, для более быстрой передачи или уменьшения объема памяти. Таким образом, необходимы технологии для сжатия облаков точек с потерями для использования в коммуникациях в реальном времени и в виртуальной реальности с шестью степенями свободы (6 DoF). Кроме того, требуется технология сжатия облаков точек без потерь в контексте динамического картографирования для автономного вождения, приложений культурного наследия и т.п.Так, ISO / IEC MPEG (JTC 1 / SC 29 / WG 11) начал работу над стандартом для решения проблемы сжатия геометрии и атрибутов, таких как цвета и отражательная способность, масштабируемого / прогрессивного кодирования, кодирования последовательностей облаков точек, захваченных в течение времени, и произвольного доступа к подмножествам облака точек.[0038] Compression techniques can reduce the amount of data needed to represent a point cloud for faster transmission or reduced memory footprint. 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). In addition, lossless point cloud compression technology is required in the context of dynamic mapping for autonomous driving, cultural heritage applications, etc. Thus, ISO / IEC MPEG (JTC 1 / SC 29 / WG 11) began work on a standard to solve the compression problem geometry and attributes such as colors and reflectivity, scalable/progressive encoding, encoding of point cloud sequences acquired over time, and random access to point cloud subsets.

[0039] Фиг. 1 иллюстрирует упрощенную структурную схему системы (100) связи согласно варианту осуществления настоящего изобретения. Система (100) связи включает в себя множество оконечных устройств, которые могут связываться друг с другом, например, через сеть (150). Например, система (100) связи включает в себя пару оконечных устройств (110) и (120), соединенных между собой через сеть (150). В примере на фиг. 1, первая пара оконечных устройств (110) и (120) может выполнять однонаправленную передачу данных облака точек. Например, оконечное устройство (110) может сжимать облако точек (например, точки, представляющие структуру), которое захватывается датчиком (105), подключенным к оконечному устройству (110). Сжатое облако точек может быть передано, например, в форме битового потока, на другое оконечное устройство (120) через сеть (150). Оконечное устройство (120) может принимать сжатое облако точек из сети (150), распаковывать битовый поток для восстановления облака точек и соответствующим образом отображать восстановленное облако точек. Однонаправленная передача данных может быть обычным явлением в приложениях обслуживания мультимедиа и т.п.[0039] FIG. 1 illustrates a simplified block diagram of a communication system (100) according to an embodiment of the present invention. The communication system (100) includes a plurality of terminal devices that can communicate with each other, for example, via a network (150). For example, the communication system (100) includes a pair of terminals (110) and (120) interconnected via a network (150). In the example in FIG. 1, the first pair of terminals (110) and (120) may perform unidirectional transmission of point cloud data. For example, tag (110) may compress a point cloud (eg, points representing structure) that is captured by a sensor (105) connected to tag (110). The compressed point cloud may be transmitted, for example, in the form of a bit stream, to another terminal device (120) via the network (150). The terminal device (120) may receive the compressed point cloud from the network (150), decompress the bitstream to recover the point cloud, and display the recovered point cloud appropriately. One-way communication may be common in media serving applications and the like.

[0040] В примере на фиг.1, оконечные устройства (110) и (120) могут быть проиллюстрированы как серверы и персональные компьютеры, но принципы настоящего изобретения не могут быть ограничены этим. Варианты осуществления настоящего изобретения находят применение в портативных компьютерах, планшетных компьютерах, смартфонах, игровых терминалах, медиаплеерах и/или специализированном трехмерном (3D) оборудовании. Сеть (150) представляет любое количество сетей, которые передают сжатое облако точек между оконечными устройствами (110) и (120). Сеть (150) может включать в себя, например, проводные линии (проводные) и/или беспроводные сети связи. Сеть (150) может обмениваться данными в каналах с коммутацией каналов и/или с коммутацией пакетов. Репрезентативные сети включают телекоммуникационные сети, локальные сети, глобальные сети и/или Интернет. Для целей настоящего обсуждения архитектура и топология сети (150) могут быть несущественными для работы настоящего изобретения, если это не объясняется в данном документе ниже.[0040] In the example of Figure 1, terminal devices (110) and (120) can be illustrated as servers and personal computers, but the principles of the present invention cannot be limited to this. Embodiments of the present invention find application in laptop computers, tablet computers, smartphones, game terminals, media players, and/or specialized three-dimensional (3D) equipment. Network (150) represents any number of networks that transmit compressed point cloud between terminals (110) and (120). Network (150) may include, for example, wired lines (wired) and/or wireless communication networks. The network (150) may communicate on circuit-switched and/or packet-switched channels. Representative networks include telecommunications networks, local area networks, wide area networks and/or the Internet. For the purposes of this discussion, the architecture and topology of the network (150) may not be essential to the operation of the present invention unless explained herein below.

[0041] Фиг. 2 иллюстрирует упрощенную структурную схему потоковой системы (200) в соответствии с вариантом осуществления. Пример на фиг. 2 представляет собой применение для раскрытого предмета изобретения для облака точек. Раскрытый предмет изобретения может быть в равной степени применим к другим приложениям с поддержкой облака точек, таким как приложение 3D телеприсутствия, приложение виртуальной реальности и т.п.[0041] FIG. 2 illustrates a simplified block diagram of a streaming system (200) in accordance with an embodiment. The example in FIG. 2 is an application for the disclosed subject matter to a point cloud. The disclosed subject matter may be equally applicable to other point cloud enabled applications such as a 3D telepresence application, a virtual reality application, and the like.

[0042] Потоковая система (200) может включать в себя подсистему (213) захвата. Подсистема (213) захвата может включать в себя источник (201) облака точек, например, системы обнаружения и определения расстояния с помощью света (LIDAR, light detection and ranging), 3D-камеры, 3D-сканеры, компонент генерации графики, который генерирует несжатое облако точек в программном обеспечении, и тому подобное, что генерирует, например, облака (202) точек, которые являются несжатыми. В примере облака (202) точек включают в себя точки, захваченные 3D-камерами. Облака (202) точек изображены жирной линией, чтобы подчеркнуть большой объем данных по сравнению со сжатыми облаками (204) точек (битовый поток сжатых облаков точек). Сжатые облака (204) точек могут быть генерированы электронным устройством (220), которое включает в себя кодер (203), связанный с источником (201) облака точек. Кодер (203) может включать в себя аппаратное обеспечение, программное обеспечение или их комбинацию для обеспечения или реализации аспектов раскрытого предмета изобретения, как более подробно описано ниже. Сжатые облака (204) точек (или битовый поток сжатых облаков (204) точек), изображенные тонкой линией, чтобы подчеркнуть меньший объем данных по сравнению с потоком облаков (202) точек, могут храниться на потоковом сервере (205) для использования в будущем. Одна или более клиентских подсистем потоковой передачи, таких как клиентские подсистемы (206) и (208) на фиг. 2, могут получить доступ к потоковому серверу (205) для извлечения копий (207) и (209) сжатого облака (204) точек. Клиентская подсистема (206) может включать в себя декодер (210), например, в электронном устройстве (230). Декодер (210) декодирует входящую копию (207) сжатых облаков точек и создает исходящий поток восстановленных облаков (211) точек, которые могут быть визуализированы на устройстве (212) рендеринга.[0042] The streaming system (200) may include a capture subsystem (213). The capture subsystem (213) may include a source (201) of a point cloud, for example, light detection and ranging (LIDAR) systems, 3D cameras, 3D scanners, a graphics generation component that generates uncompressed a point cloud in software; and the like that generates, for example, point clouds (202) that are uncompressed. In an example, point clouds (202) include points captured by 3D cameras. The point clouds (202) are shown with a heavy line to emphasize the large amount of data compared to the compressed point clouds (204) (compressed point cloud bitstream). The compressed point clouds (204) may be generated by an electronic device (220) that includes an encoder (203) coupled to a point cloud source (201). The encoder (203) may include hardware, software, or a combination thereof for providing or implementing aspects of the disclosed subject matter, as described in more detail below. Compressed point clouds (204) (or bitstream of compressed point clouds (204)), depicted with a thin line to emphasize the smaller amount of data compared to the stream of point clouds (202), can be stored on the stream server (205) for future use. One or more streaming client subsystems, such as client subsystems (206) and (208) in FIG. 2 can access the streaming server (205) to extract copies (207) and (209) of the compressed point cloud (204). The client subsystem (206) may include a decoder (210), such as in an electronic device (230). The decoder (210) decodes the incoming copy (207) of the compressed point clouds and creates an outgoing stream of reconstructed point clouds (211) that can be rendered on the renderer (212).

[0043] Следует отметить, что электронные устройства (220) и (230) могут включать в себя другие компоненты (не показаны). Например, электронное устройство (220) может включать в себя декодер (не показан), а электронное устройство (230) также может включать в себя кодер (не показан).[0043] It should be noted that electronic devices (220) and (230) may include other components (not shown). For example, electronic device (220) may include a decoder (not shown), and electronic device (230) may also include an encoder (not shown).

[0044] В некоторых потоковых системах сжатые облака (204), (207) и (209) точек (например, битовые потоки сжатых облаков точек) могут быть сжаты в соответствии с определенными стандартами. В некоторых примерах стандарты видеокодирования используются при сжатии облаков точек. Примеры этих стандартов включают в себя высокоэффективное кодирование видео (HEVC), универсальное кодирование видео (VVC) и т.п.[0044] In some streaming systems, compressed point clouds (204), (207) and (209) (eg, compressed point cloud bitstreams) may be compressed in accordance with certain standards. In some examples, video coding standards are used when compressing point clouds. Examples of these standards include High Efficiency Video Coding (HEVC), Versatile Video Coding (VVC), and the like.

[0045] Фиг. 3 показывает структурную схему кодера (300) V-PCC для кодирования кадров облака точек согласно некоторым вариантам осуществления. В некоторых вариантах осуществления кодер (300) V-PCC может использоваться в системе (100) связи и системе (200) потоковой передачи. Например, кодер (203) может быть сконфигурирован и работать аналогично кодеру (300) V-PCC.[0045] FIG. 3 shows a block diagram of a V-PCC encoder (300) for encoding point cloud frames, according to some embodiments. In some embodiments, a V-PCC encoder (300) may be used in a communication system (100) and a streaming system (200). For example, the encoder (203) may be configured and operate similarly to the encoder (300) V-PCC.

[0046] Кодер (300) V-PCC принимает кадры облака точек как несжатые входные данные и генерирует битовый поток, соответствующий сжатым кадрам облака точек. В некоторых вариантах осуществления кодер (300) V-PCC может принимать кадры облака точек от источника облака точек, такого как источник (201) облака точек и т.п.[0046] The V-PCC encoder (300) receives point cloud frames as uncompressed input and generates a bitstream corresponding to the compressed point cloud frames. In some embodiments, the V-PCC encoder (300) may receive point cloud frames from a point cloud source, such as a point cloud source (201) or the like.

[0047] В примере на фиг. 3, кодер (300) V-PCC включает в себя модуль (306) генерации патчей, модуль (308) упаковки патчей, модуль (310) генерации геометрических изображений, модуль (312) генерации текстурных изображений, модуль (304) информации о патчах, модуль (314) карты занятости, модуль (336) сглаживания, модули (316) и (318) заполнения изображения, модуль (320) расширения группы, модули (322), (323) и (332) сжатия видео, модуль (338) сжатия дополнительной информации о патчах, модуль (334) энтропийного сжатия и мультиплексор (324).[0047] In the example of FIG. 3, the V-PCC encoder (300) includes a patch generation module (306), a patch packing module (308), a geometric image generation module (310), a texture image generation module (312), a patch information module (304), occupancy map module (314), smoothing module (336), image filling modules (316) and (318), group extension module (320), video compression modules (322), (323) and (332), module (338) patch side information compression, an entropy compression module (334), and a multiplexer (324).

[0048] Согласно аспекту изобретения, кодер (300) V-PCC преобразует кадры трехмерного облака точек в представление на основе изображения вместе с некоторыми метаданными (например, картой занятости и информацией о патчах), которые используются для преобразования сжатого облака точек обратно в распакованное облако точек. В некоторых примерах кодер (300) V-PCC может преобразовывать кадры трехмерных облаков точек в геометрические изображения, текстурные изображения и карты занятости, а затем использовать способы кодирования видео для кодирования геометрических изображений, текстурных изображений и карт занятости в битовый поток. Как правило, геометрическое изображение - это двумерное изображение с пикселями, заполненными геометрическими значениями, связанными с точками, проецируемыми на пиксели, а пиксель, заполненный геометрическим значением, может называться геометрическим отсчетом. Текстурное изображение - это двумерное изображение с пикселями, заполненными значениями текстуры, связанными с точками, проецируемыми на пиксели, и пиксель, заполненный значением текстуры, может называться текстурным отсчетом. Карта занятости - это двумерное изображение с пикселями, заполненными значениями, которые указывают, что они заняты или не заняты патчами.[0048] According to an aspect of the invention, the V-PCC encoder (300) converts 3D point cloud frames into an image-based representation along with some metadata (e.g., occupancy map and patch information) that is used to convert the compressed point cloud back to a decompressed cloud. points. In some examples, the V-PCC encoder (300) may convert 3D point cloud frames into geometry images, texture images, and occupancy maps, and then use video coding techniques to encode the geometry images, texture images, and occupancy maps into a bitstream. Typically, a geometry image is a two-dimensional image with pixels filled with geometric values associated with points projected onto the pixels, and a pixel filled with a geometry value may be referred to as a geometry reference. A texture image is a two-dimensional image with pixels filled with texture values associated with dots projected onto the pixels, and a pixel filled with a texture value may be referred to as a texture sample. An occupancy map is a 2D image with pixels filled with values that indicate they are occupied or not occupied by patches.

[0049] Патч (patch, "лоскут") в общем может относиться к непрерывному подмножеству поверхности, описываемой облаком точек. В одном примере, патч включает в себя точки с векторами нормали к поверхности, которые отклоняются друг от друга меньше, чем на пороговую величину. Модуль (306) генерации патчей сегментирует облако точек на набор патчей, которые могут перекрываться или нет, так что каждый патч может быть описан полем глубины по отношению к плоскости в двумерном пространстве. В некоторых вариантах осуществления модуль (306) генерации патчей нацелен на разложение облака точек на минимальное количество патчей с гладкими границами, а также на минимизацию ошибки восстановления.[0049] A patch (patch, "flap") can generally refer to a continuous subset of a surface described by a point cloud. In one example, the patch includes points with surface normal vectors that deviate from each other by less than a threshold amount. The patch generation module (306) segments the point cloud into a set of patches, which may or may not overlap, so that each patch can be described by a depth field with respect to a plane in two-dimensional space. In some embodiments, the patch generation module (306) aims to decompose the point cloud into a minimum number of patches with smooth boundaries, as well as to minimize the recovery error.

[0050] Модуль (304) информации о патчах может собирать информацию о патчах, которая указывает размеры и форму патчей. В некоторых примерах информация о патчах может быть упакована в кадр изображения и затем кодирована модулем (338) сжатия дополнительной информации о патчах для генерации сжатой дополнительной информации о патчах.[0050] The patch information module (304) may collect patch information that indicates patch sizes and shapes. In some examples, patch information may be packed into an image frame and then encoded by patch side information compression module 338 to generate compressed patch side information.

[0051] Модуль (308) упаковки патчей выполнен с возможностью наносить извлеченные патчи на двумерную (2D) сетку, минимизируя неиспользуемое пространство и гарантируя, что каждый блок М×М (например, 16×16) сетки связан с уникальным патчем. Эффективная упаковка патчей может напрямую повлиять на эффективность сжатия либо за счет минимизации неиспользуемого пространства, либо за счет обеспечения согласованности во времени.[0051] The patch packing module (308) is configured to apply extracted patches to a two-dimensional (2D) grid, minimizing wasted space and ensuring that each MxM (eg, 16x16) grid block is associated with a unique patch. Efficient patch packing can directly affect compression efficiency, either by minimizing wasted space or by ensuring consistency over time.

[0052] Модуль (310) генерации геометрических изображений может генерировать двумерные геометрические изображения, связанные с геометрией облака точек в заданных местоположениях патчей. Модуль (312) генерации текстурных изображений может генерировать двумерные текстурные изображения, связанные с текстурой облака точек в заданных местоположениях патчей. Модуль (310) генерации геометрических изображений и модуль (312) генерации текстурных изображений используют преобразование 3D в 2D, вычисленное во время процесса упаковки, для сохранения геометрии и текстуры облака точек в виде изображений. Чтобы лучше справиться со случаем, когда множество точек проецируются на один и тот же образец, каждый патч проецируется на два изображения, называемых слоями. В примере геометрическое изображение представлено монохроматическим кадром WxH в формате YUV420-8 бит. Для генерации текстурных изображений процедура генерации текстуры использует реконструированную / сглаженную геометрию для вычисления цветов, которые должны быть связаны с точками повторной отсчеты.[0052] The module (310) generating geometric images can generate two-dimensional geometric images associated with the geometry of the point cloud at the given patch locations. Module (312) generating texture images can generate two-dimensional texture images associated with the texture of the point cloud at the given patch locations. The module (310) generating geometric images and the module (312) generating texture images use the 3D to 2D transformation calculated during the packing process to save the geometry and texture of the point cloud as images. To better handle the case where multiple points are projected onto the same sample, each patch is projected onto two images called layers. In the example, the geometric image is represented by a WxH monochromatic frame in YUV420-8 bit format. To generate texture images, the texture generation procedure uses the reconstructed/smoothed geometry to calculate the colors to be associated with the resample points.

[0053] Модуль (314) карты занятости может генерировать карту занятости, которая описывает информацию заполнения в каждом блоке. Например, изображение занятости включает в себя двоичную карту, которая указывает для каждой ячейки сетки, принадлежит ли ячейка пустому пространству или облаку точек. В примере карта занятости использует двоичную информацию, описывающую для каждого пикселя, заполнен пиксель или нет. В другом примере карта занятости использует двоичную информацию, описывающую для каждого блока пикселей, заполнен ли блок пикселей или нет.[0053] The occupancy map module (314) may generate an occupancy map that describes padding information in each block. For example, the busy image includes a binary map that indicates, for each grid cell, whether the cell belongs to empty space or a point cloud. In the example, the occupancy map uses binary information describing for each pixel whether the pixel is full or not. In another example, the occupancy map uses binary information describing, for each pixel block, whether the pixel block is full or not.

[0054] Карта занятости, генерированная модулем (314) карты занятости, может быть сжата с использованием кодирования без потерь или кодирования с потерями. Когда используется кодирование без потерь, модуль (334) энтропийного сжатия используется для сжатия карты занятости. Когда используется кодирование с потерями, модуль (332) сжатия видео используется для сжатия карты занятости.[0054] The occupancy map generated by the occupancy map module (314) may be compressed using lossless coding or lossy coding. When lossless coding is used, the entropy compression unit (334) is used to compress the occupancy map. When lossy coding is used, the video compression module (332) is used to compress the occupancy map.

[0055] Следует отметить, что модуль (308) упаковки патчей может оставлять некоторые пустые промежутки между двумерными патчами, упакованными в кадре изображения. Модули (316) и (318) заполнения изображения могут заполнять пустые пространства (называемые заполнением (padding)) для создания кадра изображения, который может подходить для кодеков 2D видео и изображения. Заполнение изображения также называется фоновым заполнением, которое может заполнить неиспользуемое пространство избыточной информацией. В некоторых примерах хорошее фоновое заполнение минимально увеличивает скорость передачи битов и не вносит значительных искажений кодирования вокруг границ патчей.[0055] It should be noted that the patch packing module (308) may leave some blank spaces between two-dimensional patches packed in an image frame. The image padding modules (316) and (318) may pad empty spaces (referred to as padding) to create an image frame that may be suitable for 2D video and image codecs. Image padding is also called background padding, which can fill unused space with redundant information. In some examples, good background padding minimally increases the bit rate and does not introduce significant coding distortion around patch boundaries.

[0056] Модули (322), (323) и (332) сжатия видео могут кодировать 2D-изображения, такие как дополненные геометрические изображения, дополненные текстурные изображения и карты занятости, на основе подходящего стандарта кодирования видео, такого как HEVC, VVC и тому подобное. В одном примере модули (322), (323) и (332) сжатия видео представляют собой отдельные компоненты, которые работают отдельно. Следует отметить, что модули (322), (323) и (332) сжатия видео в другом примере могут быть реализованы как один компонент.[0056] The video compression modules (322), (323), and (332) can encode 2D images such as augmented geometry images, augmented texture images, and occupancy maps based on a suitable video coding standard such as HEVC, VVC, etc. similar. In one example, video compression modules (322), (323), and (332) are separate components that operate separately. It should be noted that modules (322), (323) and (332) video compression in another example can be implemented as one component.

[0057] В некоторых примерах модуль (336) сглаживания выполнен с возможностью создавать сглаженное изображение восстановленного геометрического изображения. Сглаженное изображение может быть предоставлено для генерации (312) текстурных изображений. Затем генерация (312) текстурных изображений может регулировать формирование текстурных изображений на основе восстановленных геометрических изображений. Например, когда форма патча (например, геометрия) слегка искажается во время кодирования и декодирования, искажение может быть принято во внимание при генерации текстурных изображений для коррекции искажения формы патча.[0057] In some examples, the smoothing module (336) is configured to create a smoothed image of the reconstructed geometric image. A smoothed image may be provided to generate 312 texture images. The texture image generation (312) can then adjust the generation of texture images based on the reconstructed geometric images. For example, when a patch shape (eg, geometry) is slightly distorted during encoding and decoding, the distortion can be taken into account when generating texture images to correct patch shape distortion.

[0058] В некоторых вариантах осуществления расширение (320) группы выполнено с возможностью заполнять пиксели вокруг границ объекта избыточным низкочастотным содержимым, чтобы улучшить коэффициент кодирования, а также визуальное качество восстановленного облака точек.[0058] In some embodiments, the group extension (320) is configured to fill pixels around object boundaries with redundant low frequency content to improve the encoding factor as well as the visual quality of the reconstructed point cloud.

[0059] Мультиплексор (324) может мультиплексировать сжатое геометрическое изображение, сжатое текстурное изображение, сжатую карту занятости и/или сжатую дополнительную информацию о патчах в сжатый битовый поток.[0059] The multiplexer (324) may multiplex the compressed geometric image, the compressed texture image, the compressed occupancy map, and/or the compressed patch side information into a compressed bitstream.

[0060] Фиг. 4 показывает структурную схему декодера (400) V-PCC для декодирования сжатого битового потока, соответствующего кадрам облака точек, согласно некоторым вариантам осуществления. В некоторых вариантах осуществления декодер (400) V-PCC может использоваться в системе (100) связи и системе (200) потоковой передачи. Например, декодер (210) может быть выполнен с возможностью работать аналогично декодеру (400) V-PCC. Декодер (400) V-PCC принимает сжатый битовый поток и генерирует реконструированное облако точек на основе сжатого битового потока.[0060] FIG. 4 shows a block diagram of a V-PCC decoder (400) for decoding a compressed bitstream corresponding to point cloud frames, according to some embodiments. In some embodiments, the V-PCC decoder (400) may be used in the communication system (100) and the streaming system (200). For example, decoder (210) may be configured to operate similarly to V-PCC decoder (400). The V-PCC decoder (400) receives the compressed bitstream and generates a reconstructed point cloud based on the compressed bitstream.

[0061] В примере на фиг.4 декодер (400) V-PCC включает в себя демультиплексор (432), модули (434) и (436) распаковки видео, модуль (438) распаковки карты занятости, модуль (442) распаковки дополнительной информации о патчах, модуль (444) восстановления геометрии, модуль (446) сглаживания, модуль (448) восстановления текстуры и модуль (452) сглаживания цвета.[0061] In the example of FIG. 4, the V-PCC decoder (400) includes a demultiplexer (432), video decompressors (434) and (436), a busy map decompressor (438), a side information decompressor (442) about patches, a geometry recovery module (444), an anti-aliasing module (446), a texture recovery module (448), and a color smoothing module (452).

[0062] Демультиплексор (432) может принимать и разделять сжатый битовый поток на сжатое текстурное изображение, сжатое геометрическое изображение, сжатую карту занятости и сжатую дополнительную информацию патча.[0062] The demultiplexer (432) may receive and separate the compressed bitstream into a compressed texture image, a compressed geometric image, a compressed occupancy map, and a compressed patch side information.

[0063] Модули (434) и (436) распаковки видео могут декодировать сжатые изображения согласно подходящему стандарту (например, HEVC, VVC и т.д.) и выводить распакованные изображения. Например, модуль (434) распаковки видео декодирует сжатые текстурные изображения и выводит распакованные текстурные изображения; а модуль распаковки видео (436) декодирует сжатые геометрические изображения и выводит распакованные геометрические изображения.[0063] The video decompressing modules (434) and (436) can decode the compressed images according to an appropriate standard (eg, HEVC, VVC, etc.) and output the decompressed images. For example, the video decompressor (434) decodes the compressed texture images and outputs the decompressed texture images; and the video decompressor (436) decodes the compressed geometric images and outputs the decompressed geometric images.

[0064] Модуль (438) распаковки карты занятости может декодировать сжатые карты занятости согласно подходящему стандарту (например, HEVC, VVC и т.д.) и выводить распакованные карты занятости.[0064] The occupancy map decompressor (438) may decode the compressed occupancy maps according to an appropriate standard (eg, HEVC, VVC, etc.) and output the decompressed occupancy maps.

[0065] Модуль (442) распаковки дополнительной информации о патчах может декодировать сжатую вспомогательную информацию о патчах в соответствии с подходящим стандартом (например, HEVC, VVC и т.д.) и выводить распакованную вспомогательную информацию о патчах.[0065] The patch side information decompressor 442 may decode the compressed patch side information according to an appropriate standard (eg, HEVC, VVC, etc.) and output the decompressed patch side information.

[0066] Модуль (444) восстановления геометрии может принимать распакованные геометрические изображения и генерировать восстановленную геометрию облака точек на основе распакованной карты занятости и распакованной вспомогательной информации о патче.[0066] The geometry recovery module (444) may receive the decompressed geometry images and generate the reconstructed point cloud geometry based on the decompressed occupancy map and the decompressed patch assistance information.

[0067] Модуль (446) сглаживания может сглаживать несоответствия на краях патчей. Процедура сглаживания направлена на устранение потенциальных неоднородностей, которые могут возникнуть на границах патчей из-за артефактов сжатия. В некоторых вариантах осуществления сглаживающий фильтр может применяться к пикселям, расположенным на границах патчей, для смягчения искажений, которые могут быть вызваны сжатием/распаковкой.[0067] The smoothing module (446) can smooth out inconsistencies at the edges of the patches. The smoothing procedure is aimed at eliminating potential inhomogeneities that may occur at patch boundaries due to compression artifacts. In some embodiments, an anti-aliasing filter may be applied to pixels located at patch boundaries to mitigate distortion that may be caused by compression/decompression.

[0068] Модуль (448) реконструкции текстуры может определять информацию текстуры для точек в облаке точек на основе распакованных текстурных изображений и геометрии сглаживания.[0068] The texture reconstruction module (448) may determine texture information for points in a point cloud based on decompressed texture images and anti-aliasing geometry.

[0069] Модуль (452) сглаживания цвета может сглаживать несоответствия окраски. Не соседние патчи в 3D-пространстве часто упаковываются рядом друг с другом в 2D-видео. В некоторых примерах значения пикселей из не соседних патчей могут смешиваться блочным видеокодеком. Цель сглаживания цвета - уменьшить видимые артефакты, появляющиеся на границах патчей.[0069] The color smoothing module (452) can smooth out color inconsistencies. Non-adjacent patches in 3D space are often packed next to each other in 2D video. In some examples, pixel values from non-adjacent patches may be mixed by a block video codec. The purpose of color smoothing is to reduce visible artifacts that appear at patch boundaries.

[0070] Фиг. 5 показывает структурную схему видеодекодера (510) согласно варианту осуществления настоящего изобретения. Видеодекодер (510) может использоваться в декодере (400) V-PCC. Например, модули (434) и (436) распаковки видео, модуль (438) распаковки карты занятости могут быть выполнены аналогично видеодекодеру (510).[0070] FIG. 5 shows a block diagram of a video decoder (510) according to an embodiment of the present invention. The video decoder (510) may be used in the V-PCC decoder (400). For example, modules (434) and (436) video decompressing module (438) decompressing the busy map can be performed similarly to the video decoder (510).

[0071] Видеодекодер (510) может включать в себя синтаксический анализатор (520) для восстановления символов (521) из сжатых изображений, таких как кодированная видеопоследовательность. Категории этих символов включают в себя информацию, используемую для управления работой видеодекодера (510). Синтаксический анализатор (520) может анализировать / энтропийно декодировать принятую кодированную видеопоследовательность. Кодирование кодированной видеопоследовательности может осуществляться в соответствии с технологией или стандартом видеокодирования и может следовать различным принципам, включая кодирование переменной длины, кодирование Хаффмана, арифметическое кодирование с контекстной чувствительностью или без нее и так далее. Синтаксический анализатор (520) может извлекать из кодированной видеопоследовательности набор параметров подгруппы по меньшей мере для одной из подгрупп пикселей в видеодекодере на основе по меньшей мере одного параметра, соответствующего группе. Подгруппы могут включать в себя группы изображений (GOP), изображения, фрагменты, срезы, макроблоки, блоки кодирования (CU), блоки (blocks), блоки преобразования (TU), блоки прогнозирования (PU) и так далее. Синтаксический анализатор (520) также может извлекать из кодированной видеопоследовательности информацию, такую как коэффициенты преобразования, значения параметров квантователя, векторы движения и так далее.[0071] The video decoder (510) may include a parser (520) for recovering symbols (521) from compressed images, such as an encoded video sequence. The categories of these symbols include information used to control the operation of the video decoder (510). The parser (520) may parse/entropy decode the received encoded video sequence. Encoding of the encoded video sequence may be in accordance with a video coding technology or standard, and may follow various principles including variable length coding, Huffman coding, arithmetic coding with or without context sensitivity, and so on. The parser (520) can extract from the encoded video sequence a set of subgroup parameters for at least one of the subgroups of pixels in the video decoder based on at least one parameter corresponding to the group. Subgroups may include groups of pictures (GOPs), pictures, tiles, slices, macroblocks, coding units (CUs), blocks (blocks), transform units (TUs), prediction units (PUs), and so on. The parser (520) may also extract information from the encoded video sequence, such as transform coefficients, quantizer parameter values, motion vectors, and so on.

[0072] Синтаксический анализатор (520) может выполнять операцию энтропийного декодирования / синтаксического анализа над видеопоследовательностью, принятой из буферной памяти, чтобы создавать символы (521).[0072] The parser (520) may perform an entropy decoding/parsing operation on the video sequence received from the buffer memory to create symbols (521).

[0073] Восстановление символов (521) может включать использование множества различных блоков в зависимости от типа кодированного видеоизображения или его частей (например, интра- и интер-изображение, интра- и интер-блок) и других факторов. То, какие блоки использованы и как, можно контролировать с помощью управляющей информации подгруппы, которая была проанализирована из кодированной видеопоследовательности с помощью синтаксического анализатора (520). Поток такой управляющей информации подгруппы между синтаксическим анализатором (520) и множеством модулей не показан для упрощения.[0073] Symbol recovery (521) may involve using many different blocks depending on the type of encoded video image or parts thereof (eg, intra- and inter-picture, intra- and inter-block) and other factors. Which blocks are used and how can be controlled by the subgroup control information that has been parsed from the encoded video sequence by the parser (520). The flow of such subgroup control information between the parser (520) and the plurality of modules is not shown for simplicity.

[0074] Помимо уже упомянутых функциональных блоков, видеодекодер (510) может быть концептуально подразделен на ряд функциональных блоков, как описано ниже. В практической реализации, работающей в условиях коммерческих ограничений, многие из этих устройств тесно взаимодействуют друг с другом и могут, по меньшей мере частично, быть интегрированы друг в друга. Однако для целей описания раскрытого предмета изобретения уместно концептуальное подразбиение на функциональные блоки, приведенные ниже.[0074] In addition to the functional blocks already mentioned, the video decoder (510) can be conceptually subdivided into a number of functional blocks, as described below. In a practical implementation operating under commercial constraints, many of these devices interact closely with each other and can be at least partially integrated into one another. However, for purposes of describing the disclosed subject matter, the conceptual subdivision into functional blocks below is appropriate.

[0075] Первым блоком является блок (551) масштабирования / обратного преобразования. Блок (551) масштабирования / обратного преобразования принимает квантованный коэффициент преобразования, а также управляющую информацию, в том числе, какое преобразование использовать, размер блока, коэффициент квантования, матрицы масштабирования квантования и т.д., в виде символа (-ов) (521) от синтаксического анализатора (520). Блок (551) масштабирования / обратного преобразования может выводить блоки, содержащие значения отсчетов, которые могут быть введены в агрегатор (555).[0075] The first block is the scaling/inverse transform block (551). The scaling/inverse transform block (551) receives the quantized transform coefficient as well as control information, including which transform to use, block size, quantization factor, quantization scaling matrices, etc., in the form of symbol(s) (521 ) from the parser (520). Block (551) scaling / inverse transformation may output blocks containing the values of the samples that can be entered into the aggregator (555).

[0076] В некоторых случаях выходные отсчеты блока (551) масштабирования / обратного преобразования могут относиться к блоку с внутренним кодированием; то есть блоку, который не использует предсказывающую информацию из ранее восстановленных изображений, но может использовать предсказывающую информацию из ранее восстановленных частей текущего изображения. Такая предсказывающая информация может быть предоставлена блоком (552) предсказания внутри изображения. В некоторых случаях блок (552) предсказания внутри изображения генерирует блок того же размера и формы, что и восстанавливаемый блок, используя окружающую уже восстановленную информацию, извлеченную из буфера (558) текущих изображений. Буфер (558) текущих изображений буферизует, например, частично восстановленное текущее изображение и/или полностью восстановленное текущее изображение. Агрегатор (555) в некоторых случаях добавляет для каждого отсчета информацию предсказания, генерированную блоком (552) внутреннего предсказания, к информации выходных отсчетов, предоставляемой блоком (551) масштабирования / обратного преобразования.[0076] In some cases, the output samples of the block (551) scaling / inverse transformation may refer to the block with intra coding; that is, a block that does not use predictive information from previously restored images, but can use predictive information from previously restored portions of the current image. Such predictive information may be provided by an intra-picture predictor (552). In some cases, the intra-image prediction block (552) generates a block of the same size and shape as the reconstructed block, using the already reconstructed surrounding information retrieved from the current image buffer (558). The current picture buffer (558) buffers, for example, a partially restored current picture and/or a fully restored current picture. The aggregator (555) in some cases adds, for each sample, the prediction information generated by the intra prediction block (552) to the output sample information provided by the scaling/inverse transform block (551).

[0077] В других случаях выходные отсчеты блока (551) масштабирования / обратного преобразования могут относиться к блоку с внешним кодированием и потенциально компенсированным движением. В таком случае блок (553) предсказания с компенсацией движения может обращаться к памяти (557) опорных изображений, чтобы извлекать отсчеты, используемые для предсказания. После компенсации движения выбранных отсчетов в соответствии с символами (521), относящимися к блоку, эти отсчеты могут быть добавлены агрегатором (555) к выходному сигналу блока (551) масштабирования / обратного преобразования (в данном случае называемые остаточными отсчетами или остаточным сигналом), чтобы генерировать информацию о выходных отсчетах. Адреса в памяти (557) опорных изображений, откуда блок (553) предсказания с компенсацией движения выбирает отсчеты предсказания, могут управляться векторами движения, доступными блоку (553) предсказания с компенсацией движения в форме символов (521), которые могут иметь, например, X, Y и компоненты опорных изображений. Компенсация движения также может включать в себя интерполяцию значений отсчетов, выбранных из памяти (557) опорных изображений, когда используются точные векторы движения подотсчетов, механизмы предсказания вектора движения и так далее.[0077] In other cases, the output samples of the scaling/inverse transform block (551) may refer to an inter-coded and potentially motion-compensated block. In such a case, the motion compensation prediction block (553) may access the reference picture memory (557) to retrieve samples used for prediction. After compensating for the movement of the selected samples according to the symbols (521) associated with the block, these samples can be added by the aggregator (555) to the output signal of the scaling/inverse transform block (551) (in this case called residual samples or residual signal) to generate output information. The addresses in the reference picture memory (557) from where the motion compensation prediction block (553) selects prediction samples may be controlled by the motion vectors available to the motion compensation prediction block (553) in the form of symbols (521), which may have, for example, X , Y and reference image components. Motion compensation may also include interpolation of sample values selected from the reference picture memory (557) when accurate sub-sample motion vectors are used, motion vector prediction mechanisms, and so on.

[0078] Выходные отсчеты агрегатора (555) могут подвергаться различным способам контурной фильтрации в блоке (556) контурного фильтра. Технологии сжатия видео могут включать в себя технологии внутриконтурной фильтрации, которые управляются параметрами, включенными в кодированную видеопоследовательность (также называемую битовым потоком кодированного видео) и предоставляемыми блоку (556) контурной фильтрации как символы (521) из синтаксического анализатора (520), но также могут реагировать на метаинформацию, полученную во время декодирования предыдущих (в порядке декодирования) частей кодированного изображения или кодированной видеопоследовательности, а также реагировать на ранее восстановленные и отфильтрованные контурным фильтром значения отсчетов.[0078] The output samples of the aggregator (555) may be subjected to various loop filtering methods in the loop filter block (556). The video compression technologies may include in-loop filtering technologies that are controlled by parameters included in the encoded video sequence (also referred to as the encoded video bitstream) and provided to the loop filtering block (556) as symbols (521) from the parser (520), but may also respond to meta-information received during decoding of the previous (in the order of decoding) parts of the encoded image or encoded video sequence, and also respond to the sample values previously restored and filtered by the contour filter.

[0079] Выходной сигнал блока (556) контурного фильтра может быть потоком отсчетов, который может быть выведен в устройство рендеринга, а также сохранен в памяти (557) опорных изображений для использования в будущем межкадровом предсказании.[0079] The output of the loop filter block (556) may be a stream of samples that can be output to a renderer and also stored in reference picture memory (557) for use in future inter-picture prediction.

[0080] Некоторые кодированные изображения после полного восстановления могут использоваться в качестве опорных изображений для будущего предсказания. Например, после того, как кодированное изображение, соответствующее текущему изображению, полностью реконструировано и кодированное изображение было идентифицировано как опорное изображение (например, синтаксическим анализатором (520)), буфер (558) текущих изображений может стать частью памяти (557) опорных изображений, и буфер свежих текущих изображений может быть перераспределен перед началом восстановления следующего кодированного изображения.[0080] Some encoded pictures after full recovery can be used as reference pictures for future prediction. For example, after the encoded picture corresponding to the current picture has been completely reconstructed and the encoded picture has been identified as a reference picture (eg, by a parser (520)), the current picture buffer (558) may become part of the reference picture memory (557), and the fresh current picture buffer may be reallocated before starting the next encoded picture recovery.

[0081] Видеодекодер (510) может выполнять операции декодирования согласно заранее заданной технологии сжатия видео в стандарте, таком как ITU-T Rec. Н.265. Кодированная видеопоследовательность может соответствовать синтаксису, заданному используемой технологией или стандартом сжатия видео, в том смысле, что кодированная видеопоследовательность соответствует как синтаксису технологии или стандарту сжатия видео, так и профилям, задокументированным в технологии или стандарте сжатия видео. В частности, профиль может выбирать определенные инструменты как единственные инструменты, доступные для использования в этом профиле, из всех инструментов, доступных в технологии или стандарте сжатия видео. Также для соответствия может быть необходимым, чтобы сложность кодированной видеопоследовательности находилась в пределах, определенных уровнем технологии или стандарта сжатия видео. В некоторых случаях уровни ограничивают максимальный размер изображения, максимальную частоту кадров, максимальную частоту дискретизации восстановления (измеряемую, например, в мегаотсчетах (миллион отсчетов) в секунду), максимальный размер эталонного изображения и так далее. Пределы, установленные уровнями, в некоторых случаях могут быть дополнительно ограничены с помощью спецификаций гипотетического эталонного декодера (HRD) и метаданных для управления буфером HRD, передаваемых в кодированной видеопоследовательности.[0081] The video decoder (510) may perform decoding operations according to a predetermined video compression technology in a standard such as ITU-T Rec. H.265. The encoded video sequence may conform to the syntax specified by the video compression technology or standard being used, in the sense that the encoded video sequence conforms to both the syntax of the video compression technology or standard and to the profiles documented in the video compression technology or standard. In particular, a profile may select certain tools as the only tools available for use in that profile, from among all the tools available in a video compression technology or standard. It may also be necessary for compliance that the complexity of the encoded video sequence be within limits defined by the level of technology or video compression standard. In some cases, levels limit the maximum image size, the maximum frame rate, the maximum recovery sampling rate (measured in megasamples (millions of samples) per second, for example), the maximum reference image size, and so on. The limits set by the layers may, in some cases, be further constrained by hypothetical reference decoder (HRD) specifications and metadata for managing the HRD buffer transmitted in the encoded video sequence.

[0082] Фиг. 6 показывает структурную схему видеокодера (603) согласно варианту осуществления настоящего изобретения. Видеокодер (603) может использоваться в кодере (300) V-PCC, который сжимает облака точек. В примере модуль (322) и (323) сжатия видео и модуль (332) сжатия видео выполнены аналогично кодеру (603).[0082] FIG. 6 shows a block diagram of a video encoder (603) according to an embodiment of the present invention. A video encoder (603) may be used in a V-PCC encoder (300) that compresses point clouds. In the example, the video compression module (322) and (323) and the video compression module (332) are similar to the encoder (603).

[0083] Видеокодер (603) может принимать изображения, такие как изображения с дополненной геометрией, изображения с дополненной текстурой и т.п., и генерировать сжатые изображения.[0083] The video encoder (603) may receive images, such as geometry augmented images, textured images, and the like, and generate compressed images.

[0084] Согласно варианту осуществления, видеокодер (603) может кодировать и сжимать изображения исходной видеопоследовательности (изображений) в кодированную видеопоследовательность (сжатые изображения) в реальном времени или с любыми другими временными ограничениями, как требуется в применении. Обеспечение соответствующей скорости кодирования - одна из функций контроллера (650). В некоторых вариантах осуществления контроллер (650) управляет другими функциональными блоками, как описано ниже, и функционально связан с другими функциональными блоками. Связь не изображена для упрощения. Параметры, устанавливаемые контроллером (650), могут включать в себя параметры, относящиеся к управлению скоростью (пропуск изображения, квантователь, значение лямбда для способов оптимизации скорости-искажения, …), размер изображения, макет группы изображений (GOP), максимальный диапазон поиска вектора движения и так далее. Контроллер (650) может быть выполнен так, чтобы иметь другие подходящие функции, которые относятся к видеокодеру (603), оптимизированному для определенной конструкции системы.[0084] According to an embodiment, the video encoder (603) may encode and compress images of the original video sequence (images) into an encoded video sequence (compressed images) in real time or with any other time constraints as required by the application. Providing an appropriate coding rate is one of the functions of the controller (650). In some embodiments, the controller (650) controls other functional blocks, as described below, and is operatively linked to other functional blocks. Communication is not shown for simplicity. Parameters set by the controller (650) may include parameters related to rate control (picture skip, quantizer, lambda value for rate-distortion optimization methods, ...), image size, group of pictures (GOP) layout, vector search maximum range movements and so on. The controller (650) may be configured to have other suitable functions that are related to the video encoder (603) optimized for a particular system design.

[0085] В некоторых вариантах осуществления видеокодер (603) выполнен с возможностью работать в петле кодирования. В качестве упрощенного описания, в примере, петля кодирования может включать в себя исходный кодер (630) (например, ответственный за создание символов, таких как поток символов, на основе входного изображения, которое должно быть кодировано, и опорного изображения (изображений)), и (локальный) декодер (633), встроенный в видеокодер (603). Декодер (633) восстанавливает символы для создания данных отсчетов, аналогично тому, как это может делать (удаленный) декодер (поскольку любое сжатие между символами и кодированным потоком битов видео происходит без потерь в технологиях сжатия видео, рассматриваемых в раскрытом предмете изобретения). Восстановленный поток отсчетов (данные отсчетов) вводится в память (634) опорных изображений. Поскольку декодирование потока символов приводит к точным до бита результатам, независимо от местоположения декодера (локального или удаленного), содержимое памяти (634) опорных изображений также является одинаковым до бита для локального и удаленного кодеров. Другими словами, блок предсказания кодера «видит» в качестве отсчетов опорного изображения точно такие же значения отсчетов, которые декодер «видит» при использовании предсказания во время декодирования. Этот фундаментальный принцип синхронности опорного изображения (и результирующего дрейфа, если синхронность не может поддерживаться, например, из-за ошибок канала) также используется в некоторых смежных областях техники.[0085] In some embodiments, video encoder (603) is configured to operate in a coding loop. As a simplified description, in an example, an encoding loop may include a source encoder (630) (eg, responsible for creating symbols, such as a stream of symbols, based on an input image to be encoded and reference image(s)), and a (local) decoder (633) embedded in the video encoder (603). The decoder (633) decompresses the symbols to create sample data, similar to how a (remote) decoder can do (because any compression between the symbols and the encoded video bitstream is lossless in the video compression technologies discussed in the disclosed subject matter). The reconstructed sample stream (sample data) is entered into the reference picture memory 634 . Since the decoding of the symbol stream produces bit-accurate results, regardless of the location of the decoder (local or remote), the contents of the reference picture memory (634) are also the same bit-for-bit for the local and remote encoders. In other words, the encoder's predictor "sees" as reference picture samples exactly the same sample values that the decoder "sees" when using prediction during decoding. This fundamental principle of reference picture synchronism (and the resulting drift if synchronism cannot be maintained due to, for example, channel errors) is also used in some related fields of technology.

[0086] Работа «локального» декодера (633) может быть такой же, как у «удаленного» декодера, такого как видеодекодер (510), который уже был подробно описан выше в связи с фиг. 5. Кратко обратимся также к фиг. 5, однако, поскольку символы доступны, и кодирование/декодирование символов в кодированную видеопоследовательность энтропийным кодером (645) и синтаксическим анализатором (520) может осуществляться без потерь, части энтропийного декодирования видеодекодера (510), включая и синтаксический анализатор (520) могут не быть полностью реализованы в локальном декодере (633).[0086] The operation of the "local" decoder (633) may be the same as that of the "remote" decoder, such as the video decoder (510), which has already been described in detail above in connection with FIG. 5. Referring also briefly to FIG. 5, however, since the symbols are available and the entropy encoder (645) and parser (520) can be losslessly encoded/decoded into the encoded video sequence, the entropy decoding parts of the video decoder (510) including the parser (520) may not be fully implemented in the local decoder (633).

[0087] Здесь можно отметить, что любая технология декодирования, кроме синтаксического / энтропийного декодирования, которая присутствует в декодере, также обязательно должна присутствовать в, по существу, идентичной функциональной форме, в соответствующем кодере. По этой причине раскрытый предмет изобретения фокусируется на работе декодера. Описание технологий кодирования может быть сокращено, поскольку они являются инверсией полностью описанных технологий декодирования. Только в некоторых областях требуется более подробное описание, которое приводится ниже.[0087] It may be noted here that any decoding technology other than syntactic/entropy decoding that is present in a decoder must also necessarily be present in a substantially identical functional form in a corresponding encoder. For this reason, the disclosed subject matter focuses on the operation of the decoder. The description of encoding technologies can be abbreviated as they are the inverse of fully described decoding technologies. Only in some areas a more detailed description is required, which is given below.

[0088] Во время работы, в некоторых примерах, кодер (630) источника может выполнять предсказательное кодирование с компенсацией движения, которое кодирует входное изображение с предсказанием со ссылкой на одно или более ранее кодированных изображений из видеопоследовательности, которые были отмечены как «опорные изображения». Таким образом, механизм (632) кодирования кодирует различия между блоками пикселей входного изображения и блоками пикселей опорного изображения (изображений), которые могут быть выбраны в качестве эталона (-ов) предсказания для входного изображения.[0088] During operation, in some examples, source encoder (630) may perform motion-compensated predictive coding that predictively encodes an input picture with reference to one or more previously encoded pictures from a video sequence that have been labeled "reference pictures" . Thus, the encoding engine (632) encodes the differences between the pixel blocks of the input image and the pixel blocks of the reference image(s) that can be selected as the prediction reference(s) for the input image.

[0089] Локальный видеодекодер (633) может декодировать кодированные видеоданные изображений, которые могут быть отмечены как опорные изображения, на основе символов, созданных исходным кодером (630). Операции механизма (632) кодирования обеспечивает преимущество, состоящее в том, что его операции могут быть процессами с потерями. Когда кодированные видеоданные могут быть декодированы в видеодекодере (не показан на фиг.6), восстановленная видеопоследовательность обычно может быть копией исходной видеопоследовательности с некоторыми ошибками. Локальный видеодекодер (633) копирует процессы декодирования, которые могут выполняться видеодекодером на опорных изображениях, и может вызывать сохранение восстановленных опорных изображений в кэше (634) опорных изображений. Таким образом, видеокодер (603) может локально хранить копии восстановленных опорных изображений, которые имеют общий контент, в качестве восстановленных опорных изображений, которые будут получены видеодекодером на дальнем конце (при отсутствии ошибок передачи).[0089] The local video decoder (633) may decode the encoded video data of pictures that can be marked as reference pictures based on the symbols generated by the source encoder (630). The operations of the encoding engine (632) provide the advantage that its operations can be lossy processes. When the encoded video data can be decoded in a video decoder (not shown in FIG. 6), the reconstructed video sequence can typically be a copy of the original video sequence with some errors. The local video decoder (633) replicates the decoding processes that may be performed by the video decoder on the reference pictures and may cause the recovered reference pictures to be stored in the reference picture cache (634). Thus, the video encoder (603) can locally store copies of the reconstructed reference pictures that share the same content as the reconstructed reference pictures to be received by the far-end video decoder (in the absence of transmission errors).

[0090] Предсказатель (635) может выполнять поиски предсказания для механизма (632) кодирования. То есть для нового изображения, которое должно быть кодировано, предсказатель (635) может выполнять поиск в памяти (634) опорных изображений данных отсчетов (в качестве кандидатов блоков опорных пикселей) или определенных метаданных, таких как векторы движения опорных изображений, формы блоков и т.д., что может служить подходящей опорой для предсказания для новых изображений. Предсказатель (635) может работать на основе блока отсчетов-за-блоком пикселей, чтобы найти соответствующие ссылки для предсказания. В некоторых случаях, как определено результатами поиска, полученными предсказателем (635), входное изображение может иметь ссылки предсказания, взятые из множества опорных изображений, сохраненных в памяти (634) опорных изображений.[0090] The predictor (635) may perform prediction searches for the encoding engine (632). That is, for a new picture to be encoded, the predictor (635) may search memory (634) for sample data reference pictures (as reference pixel block candidates) or certain metadata such as reference picture motion vectors, block shapes, etc. .d., which can serve as a suitable basis for predicting new images. The predictor (635) may operate on a sample-by-pixel basis to find appropriate references for prediction. In some cases, as determined by the search results obtained by the predictor (635), the input picture may have prediction references taken from a plurality of reference pictures stored in the reference picture memory (634).

[0091] Контроллер (650) может управлять операциями кодирования исходного кодера (630), включая, например, установку параметров и параметров подгруппы, используемых для кодирования видеоданных.[0091] The controller (650) may control the encoding operations of the source encoder (630), including, for example, setting parameters and subgroup parameters used to encode video data.

[0092] Выходные данные всех вышеупомянутых функциональных блоков могут подвергаться энтропийному кодированию в энтропийном кодере (645). Энтропийный кодер (645) преобразует символы, генерированные различными функциональными блоками, в кодированную видеопоследовательность путем сжатия без потерь символов для генерации сжатых изображений 643 в соответствии с такими технологиями, как кодирование Хаффмана, кодирование переменной длины, арифметическое кодирование и т.д.[0092] The output of all of the above functional blocks may be entropy encoded in an entropy encoder (645). An entropy encoder (645) converts symbols generated by various functional blocks into an encoded video sequence by lossless symbol compression to generate compressed images 643 in accordance with techniques such as Huffman coding, variable length coding, arithmetic coding, and so on.

[0093] Контроллер (650) может управлять работой видеокодера (603). Во время кодирования контроллер (650) может назначить каждому кодированному изображению определенный тип кодированного изображения, что может повлиять на способы кодирования, которые могут быть применены к соответствующему изображению. Например, изображения часто могут быть отнесены к одному из следующих типов изображений:[0093] The controller (650) may control the operation of the video encoder (603). During encoding, the controller (650) may assign to each encoded picture a certain type of encoded picture, which may affect the encoding methods that can be applied to the corresponding picture. For example, images can often be categorized as one of the following image types:

[0094] Интра-изображение (Intra Picture) (I-изображение) может быть таким, которое можно кодировать и декодировать без использования какого-либо другого изображения в последовательности в качестве источника предсказания. Некоторые видеокодеки позволяют использовать различные типы интра-изображений, включая, например, изображения с независимым обновлением декодера («IDR»). Специалисту известны эти варианты I-изображений и их соответствующие применения и особенности.[0094] An Intra Picture (I-picture) may be one that can be encoded and decoded without using any other picture in the sequence as a prediction source. Some video codecs allow various types of intra-pictures, including, for example, independent decoder update ("IDR") pictures. Those skilled in the art are aware of these I-image variants and their respective applications and features.

[0095] Предсказываемое изображение (Р-изображение) может быть таким, которое может быть кодировано и декодировано с использованием внутреннего предсказания или внешнего предсказания с использованием не более одного вектора движения и опорного индекса для предсказания значений отсчетов каждого блока.[0095] A predictive picture (P-picture) may be one that can be encoded and decoded using intra prediction or inter prediction using at most one motion vector and a reference index to predict sample values of each block.

[0096] Изображение с двунаправленным предсказанием (В-изображение) может быть таким, которое может быть кодировано и декодировано с использованием внутрикадрового предсказания или межкадрового предсказания с использованием не более двух векторов движения и опорных индексов для предсказания значений отсчетов каждого блока. Точно так же изображения с множественным предсказанием могут использовать более двух опорных изображений и связанных метаданных для восстановления одного блока.[0096] A bidirectional predictive picture (B-picture) may be one that can be encoded and decoded using intra-prediction or inter-prediction using at most two motion vectors and reference indices to predict sample values of each block. Similarly, multi-prediction images may use more than two reference images and associated metadata to reconstruct a single block.

[0097] Исходные изображения обычно могут быть разделены пространственно на множество блоков отсчетов (например, блоки по 4×4, 8×8, 4×8 или 16×16 отсчетов каждый) и кодированы на поблочной основе. Блоки могут кодироваться с предсказанием со ссылкой на другие (уже кодированные) блоки, как определено назначением кодирования, применяемым к соответствующим изображениям блоков. Например, блоки из I-изображений могут кодироваться без предсказания или они могут кодироваться с предсказанием со ссылкой на уже кодированные блоки одного и того же изображения (пространственное предсказание или внутреннее предсказание). Пиксельные блоки Р-изображений могут кодироваться с предсказанием, посредством пространственного предсказания или посредством временного предсказания со ссылкой на одно ранее кодированное опорное изображение. Блоки В-изображений могут кодироваться с предсказанием, посредством пространственного предсказания или посредством временного предсказания со ссылкой на одно или два ранее кодированных опорных изображения.[0097] Source images can typically be divided spatially into multiple blocks of samples (eg, blocks of 4x4, 8x8, 4x8, or 16x16 samples each) and encoded on a block-by-block basis. The blocks may be predictively encoded with reference to other (already encoded) blocks, as determined by the coding assignment applied to the corresponding block images. For example, blocks of I-pictures may be predictively encoded or they may be predictively encoded with reference to already encoded blocks of the same picture (spatial prediction or intra prediction). The pixel blocks of P-pictures may be predictively encoded, by spatial prediction, or by temporal prediction with reference to one previously encoded reference picture. The B-picture blocks may be predictively encoded, spatially predicted, or temporally predicted with reference to one or two previously encoded reference pictures.

[0098] Видеокодер (603) может выполнять операции кодирования согласно заранее заданной технологии или стандарту видеокодирования, такому как ITU-T Rec. Н.265. В своей работе видеокодер (603) может выполнять различные операции сжатия, включая операции кодирования с предсказанием, которые используют временную и пространственную избыточность во входной видеопоследовательности. Кодированные видеоданные, следовательно, могут соответствовать синтаксису, заданному используемой технологией или стандартом кодирования видео.[0098] The video encoder (603) may perform encoding operations according to a predetermined video coding technology or standard, such as ITU-T Rec. H.265. In operation, the video encoder (603) may perform various compression operations, including predictive coding operations that exploit temporal and spatial redundancy in the input video sequence. The encoded video data may therefore follow the syntax given by the video coding technology or standard being used.

[0099] Видео может быть в форме множества исходных кадров (изображений) во временной последовательности. Внутрикадровое предсказание (часто сокращенно называемое внутренним предсказанием) использует пространственную корреляцию в данном изображении, а межкадровое предсказание использует (временную или другую) корреляцию между изображениями. В примере конкретное изображение при кодировании / декодировании, которое упоминается как текущее изображение, разбивается на блоки. Когда блок в текущем изображении подобен опорному блоку в ранее кодированном и все еще буферизованном опорном изображении в видео, блок в текущем изображении может быть кодирован вектором, который называется вектором движения. Вектор движения указывает на опорный блок в опорном изображении и может иметь третье измерение, идентифицирующее опорное изображение, в случае использования множества опорных изображений.[0099] The video may be in the form of a plurality of source frames (images) in time sequence. Intra-frame prediction (often abbreviated as intra-prediction) uses the spatial correlation in a given image, while inter-frame prediction uses (temporal or other) correlation between images. In the example, a particular image, when encoded/decoded, which is referred to as the current image, is divided into blocks. When a block in the current picture is similar to a reference block in a previously encoded and still buffered reference picture in a video, the block in the current picture may be encoded with a vector called a motion vector. The motion vector points to a reference block in the reference picture and may have a third dimension identifying the reference picture if multiple reference pictures are used.

[0100] В некоторых вариантах осуществления при межкадровом предсказании может использоваться способ двойного предсказания. Согласно способу двойного предсказания, два опорных изображения, такие как первое опорное изображение и второе опорное изображение, оба предшествуют в порядке декодирования текущему изображению в видео (но могут быть в прошлом и будущем, соответственно, в порядке отображения). Блок в текущем изображении может быть кодирован первым вектором движения, который указывает на первый опорный блок в первом опорном изображении, и вторым вектором движения, который указывает на второй опорный блок во втором опорном изображении. Блок может быть предсказан комбинацией первого опорного блока и второго опорного блока.[0100] In some embodiments, a dual prediction method may be used in inter-picture prediction. According to the dual prediction method, two reference pictures, such as the first reference picture and the second reference picture, both precede the current picture in the video in decoding order (but may be in the past and future, respectively, in the display order). A block in the current picture may be encoded with a first motion vector that points to a first reference block in a first reference picture and a second motion vector that points to a second reference block in a second reference picture. The block may be predicted by the combination of the first reference block and the second reference block.

[0101] Кроме того, способ режима слияния может использоваться в межкадровом предсказании для повышения эффективности кодирования.[0101] In addition, the merge mode method can be used in inter-picture prediction to improve coding efficiency.

[0102] Согласно некоторым вариантам осуществления изобретения, предсказания, такие как предсказания между изображениями и предсказания внутри изображений, выполняются в блоках. Например, в соответствии со стандартом HEVC изображение в последовательности видеоизображений разбивается на блоки дерева кодирования (CTU) для сжатия, CTU в изображении имеют одинаковый размер, например 64×64 пикселей, 32×32 пикселей или 16x16 пикселей. В общем, CTU включает в себя три блока дерева кодирования (СТВ), которые представляют собой один СТВ яркости и два СТВ цветности. Каждый CTU может быть рекурсивно разделен в квадродереве на один или множество блоков кодирования (CU). Например, CTU размером 64×64 пикселей можно разделить на один CU размером 64×64 пикселей, или 4 CU из 32×32 пикселей, или 16 CU из 16×16 пикселей. В примере каждый CU анализируется для определения типа предсказания для CU, такого как тип внешнего предсказания или тип внутреннего предсказания. CU разделяется на один или более блоков предсказания (PU) в зависимости от временной и/или пространственной предсказуемости. Обычно каждый PU включает в себя блок предсказания (РВ) яркости и два РВ цветности. В варианте осуществления операция предсказания при кодировании (кодировании / декодировании) выполняется в блоке предсказания. Используя блок предсказания яркости в качестве примера блока предсказания, блок предсказания включает в себя матрицу значений (например, значений яркости) для пикселей, таких как 8×8 пикселей, 16×16 пикселей, 8×16 пикселей, 16×8 пикселей и т.п.[0102] According to some embodiments of the invention, predictions, such as inter-picture predictions and intra-picture predictions, are performed in blocks. For example, according to the HEVC standard, an image in a video sequence is split into coding tree units (CTUs) for compression, CTUs in an image are the same size, such as 64x64 pixels, 32x32 pixels, or 16x16 pixels. In general, the CTU includes three coding tree units (CTBs), which are one luma CTB and two chrominance CTBs. Each CTU may be recursively divided in a quadtree into one or multiple coding units (CUs). For example, a CTU of 64x64 pixels can be divided into one CU of 64x64 pixels, or 4 CUs of 32x32 pixels, or 16 CUs of 16x16 pixels. In the example, each CU is parsed to determine a prediction type for the CU, such as an inter prediction type or an intra prediction type. The CU is divided into one or more prediction units (PUs) depending on temporal and/or spatial predictability. Typically, each PU includes a Luma PB and two Chroma PBs. In an embodiment, the encoding (encoding/decoding) prediction operation is performed in a prediction block. Using the luminance prediction block as an example of the prediction block, the prediction block includes a matrix of values (e.g., luminance values) for pixels such as 8x8 pixels, 16x16 pixels, 8x16 pixels, 16x8 pixels, etc. P.

[0103] Модель G-PCC может отдельно сжимать геометрическую информацию и связанные атрибуты, такие как цвет или отражательная способность. Геометрическая информация, которая представляет собой трехмерные координаты облаков точек, может быть кодирована с помощью разложения октодерева информации о занятости. С другой стороны, атрибуты могут быть сжаты на основе восстановленной геометрии с использованием способов предсказания и лифтинга. Процесс разбиения октодерева показаня, например, на фиг. 7-13.[0103] The G-PCC model can separately compress geometric information and associated attributes such as color or reflectivity. The geometric information, which is the 3D coordinates of the point clouds, can be encoded by decomposing an octree of the occupancy information. On the other hand, attributes can be compressed based on the reconstructed geometry using prediction and lifting techniques. The splitting process of the octree is shown, for example, in FIG. 7-13.

[0104] Фиг. 7 показывает структурную схему декодера (800) G-PCC, который применяется во время процесса разложения G-PCC в соответствии с вариантом осуществления. Декодер (800) может быть выполнен с возможностью принимать сжатый битовый поток и выполнять распаковку данных облака точек для распаковки битового потока, чтобы генерировать декодированные данные облака точек. В варианте осуществления декодер (800) может включать в себя модуль (810) арифметического декодирования, модуль (820) обратного квантования, модуль (830) декодирования октодерева, модуль (840) генерации уровня детализации (level of detail, LOD), модуль (850) обратного квантования и модуль (860) предсказания на основе обратной интерполяции.[0104] FIG. 7 shows a block diagram of a G-PCC decoder (800) that is applied during a G-PCC decomposition process according to an embodiment. The decoder (800) may be configured to receive the compressed bitstream and decompress the point cloud data to decompress the bitstream to generate decoded point cloud data. In an embodiment, the decoder (800) may include an arithmetic decoding module (810), an inverse quantization module (820), an octree decoding module (830), a level of detail (LOD) generation module (840), a ) inverse quantization and a prediction module (860) based on inverse interpolation.

[0105] Как показано, сжатый битовый поток (801) может быть принят в модуле (810) арифметического декодирования. Модуль (810) арифметического декодирования выполнен с возможностью декодировать сжатый битовый поток (801) для получения квантованных остатков предсказания (если они генерированы) и кодов занятости (или символов) облака точек. Модуль (830) декодирования октодерева выполнен с возможностью генерировать квантованные позиции точек в облаке точек в соответствии с кодами занятости. Модуль (850) обратного квантования выполнен с возможностью генерировать восстановленные позиции точек в облаке точек на основе квантованных позиций, предоставленных модулем (830) декодирования октодерева.[0105] As shown, the compressed bit stream (801) may be received in the arithmetic decoding module (810). The arithmetic decoding module (810) is configured to decode the compressed bitstream (801) to obtain quantized prediction residuals (if generated) and point cloud busy codes (or symbols). The octree decoding module (830) is configured to generate quantized point positions in the point cloud in accordance with busy codes. The inverse quantization module (850) is configured to generate recovered point positions in the point cloud based on the quantized positions provided by the octree decoding module (830).

[0106] Модуль (840) генерации LOD выполнен с возможностью реорганизовать точки в разные LOD на основе восстановленных позиций и определения порядка на основе LOD. Модуль (820) обратного квантования выполнен с возможностью генерировать восстановленные остатки предсказания на основе квантованных остатков предсказания, принятых от модуля (810) арифметического декодирования. Модуль (860) предсказания на основе обратной интерполяции выполнен с возможностью выполнять процесс предсказания атрибутов для генерации восстановленных атрибутов точек в облаке точек на основе восстановленных остатков предсказания, полученных от модуля (820) обратного квантования, и порядка на основе LOD, полученного от модуля (840) генерации LOD.[0106] The LOD generation module (840) is configured to reorganize points into different LODs based on the recovered positions and ordering based on the LOD. The inverse quantization module (820) is configured to generate reconstructed prediction residuals based on the quantized prediction residuals received from the arithmetic decoding module (810). The inverse interpolation prediction module (860) is configured to perform an attribute prediction process to generate recovered point attributes in the point cloud based on the recovered prediction residuals received from the inverse quantization module (820) and an order based on the LOD obtained from the module (840). ) LOD generation.

[0107] Кроме того, восстановленные атрибуты, генерированные модулем (860) предсказания на основе обратной интерполяции, вместе с восстановленными позициями, генерированными модулем (850) обратного квантования, соответствуют декодированному облаку (802) точек (или восстановленному облаку точек), которое выводится из декодера (800) в одном примере.[0107] In addition, the restored attributes generated by the inverse interpolation prediction module (860), together with the restored positions generated by the inverse quantization module (850), correspond to the decoded point cloud (802) (or reconstructed point cloud) that is output from decoder (800) in one example.

[0108] Фиг. 8 показывает структурную схему кодера (700) G-PPC в соответствии с вариантом осуществления. Кодер (700) может быть выполнен с возможностью принимать данные облака точек и сжимать данные облака точек для генерации битового потока, несущего сжатые данные облака точек. В варианте осуществления кодер (700) может включать в себя модуль (710) квантования позиции, модуль (712) удаления дублированных точек, модуль (730) кодирования октодерева, модуль (720) передачи атрибутов, модуль (740) генерации уровня детализации (LOD), модуль (750) предсказания на основе интерполяции, модуль (760) квантования остатка и модуль (770) арифметического кодирования.[0108] FIG. 8 shows a block diagram of a G-PPC encoder (700) according to an embodiment. The encoder (700) may be configured to receive point cloud data and compress the point cloud data to generate a bit stream carrying the compressed point cloud data. In an embodiment, the encoder (700) may include a position quantization module (710), a duplicate point removal module (712), an octree encoding module (730), an attribute transmission module (720), a level of detail (LOD) generation module (740) , an interpolation-based prediction module (750), a residual quantization module (760), and an arithmetic coding module (770).

[0109] Как показано, входное облако (701) точек может быть принято в кодере (700). Позиции (например, трехмерные координаты) облака (701) точек предоставляются модулю (710) квантования. Модуль (710) квантования выполнен с возможностью квантовать координаты для генерации квантованных позиций. Модуль (712) удаления дублированных точек выполнен с возможностью принимать квантованные позиции и выполнять процесс фильтрации для идентификации и удаления дублированных точек. Модуль (730) кодирования октодерева выполнен с возможностью принимать отфильтрованные позиции от модуля (712) удаления дублированных точек и выполнять процесс кодирования на основе октодерева для генерации последовательности кодов занятости (или символов), которые описывают трехмерную сетку вокселей. Коды занятости передаются в модуль (770) арифметического кодирования.[0109] As shown, the input point cloud (701) may be received at the encoder (700). The positions (eg, 3D coordinates) of the point cloud (701) are provided to the quantization module (710). The quantization module (710) is configured to quantize the coordinates to generate quantized positions. The duplicated point removal module (712) is configured to receive the quantized positions and perform a filtering process to identify and remove duplicated points. The octree encoding module (730) is configured to receive filtered positions from the duplicate point removal module (712) and perform an octree-based encoding process to generate a sequence of busy codes (or symbols) that describe a three-dimensional grid of voxels. The busy codes are passed to the arithmetic coding module (770).

[0110] Модуль (720) передачи атрибутов выполнен с возможностью принимать атрибуты входного облака точек и выполнять процесс передачи атрибутов для определения значения атрибута для каждого вокселя, когда множество значений атрибута связаны с соответствующим вокселем. Процесс переноса атрибутов может выполняться для переупорядоченных точек, выводимых из модуля (730) кодирования октодерева. Атрибуты после операций передачи предоставляются модулю (750) предсказания на основе интерполяции. Модуль (740) генерации LOD выполнен с возможностью работать с переупорядоченными точками, выводимыми из модуля (730) кодирования октодерева, и реорганизовывать точки в разные LODs. Информация LOD подается в модуль (750) предсказания на основе интерполяции.[0110] The attribute transfer module (720) is configured to receive attributes of an input point cloud and perform an attribute transfer process to determine an attribute value for each voxel when a plurality of 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 (730). Attributes after transmission operations are provided to the module (750) prediction based on interpolation. The LOD generation module (740) is configured to work with the reordered points output from the octree encoding module (730) and reorganize the points into different LODs. The LOD information is provided to the prediction module (750) based on the interpolation.

[0111] Модуль (750) предсказания на основе интерполяции обрабатывает точки в соответствии с порядком на основе LOD, указанным информацией LOD из модуля (740) генерации LOD и переданными атрибутами, полученными от модуля (720) передачи атрибутов, и генерирует остатки предсказания. Модуль (760) квантования остатка выполнен с возможностью принимать остатки предсказания от модуля (750) предсказания на основе интерполяции и выполнять квантование для генерации квантованных остатков предсказания. Квантованные остатки предсказания подаются в модуль (770) арифметического кодирования. Модуль (770) арифметического кодирования выполнен с возможностью принимать коды занятости от модуля (730) кодирования октодерева, индексов-кандидатов (если используются), квантованных остатков предсказания из модуля предсказания 750) на основе интерполяции и другой информации, и выполнять энтропийное кодирование для дальнейшего сжатия полученных значений или информации. В результате может быть сгенерирован сжатый битовый поток (702), несущий сжатую информацию. Битовый поток (702) может быть передан или иным образом предоставлен декодеру, который декодирует сжатый битовый поток, или может быть сохранен в запоминающем устройстве.[0111] The interpolation-based prediction module (750) processes the points according to the LOD-based order indicated by the LOD information from the LOD generation module (740) and the transmitted attributes received from the attribute transmission module (720), and generates prediction residuals. The residual quantization module (760) is configured to receive prediction residuals from the interpolation-based prediction module (750) and perform quantization to generate quantized prediction residuals. The quantized prediction residuals are provided to an arithmetic encoding unit (770). Arithmetic encoding module (770) is configured to receive busy codes from octree encoding module (730), candidate indexes (if used), quantized prediction residuals from prediction module 750) based on interpolation and other information, and perform entropy encoding for further compression received values or information. As a result, a compressed bit stream (702) carrying compressed information can be generated. The bitstream (702) may be transmitted to or otherwise provided to a decoder that decodes the compressed bitstream, or may be stored in a storage device.

[0112] Следует отметить, что модуль (750) предсказания на основе интерполяции и модуль (860) предсказания на основе обратной интерполяции, выполненные с возможностью реализовать способы прогнозирования атрибутов, раскрытых в данном документе, могут быть включены в другие декодеры или кодеры, которые могут иметь аналогичные или разные структуры по сравнению с тем, что показано на фиг. 7 и фиг. 8. Кроме того, кодер (700) и декодер (800) в различных примерах могут быть включены в одно и то же устройство или отдельные устройства.[0112] It should be noted that an interpolation-based prediction module (750) and an inverse-interpolation prediction module (860) configured to implement the attribute prediction methods disclosed herein may be included in other decoders or encoders, which may have similar or different structures compared to those shown in FIG. 7 and FIG. 8. In addition, the encoder (700) and decoder (800) in various examples may be included in the same device or separate devices.

[0113] В различных вариантах осуществления кодер (300), декодер (400), кодер (700) и/или декодер (800) могут быть реализованы с помощью аппаратного обеспечения, программного обеспечения или их комбинации. Например, кодер (300), декодер (400), кодер (700) и/или декодер (800) могут быть реализованы с помощью схемы обработки, такой как одна или более интегральных схем (IС), которые работают с программным обеспечением или без него, таких как специализированная интегральная схема (ASIC), программируемая логическая интегральная схема (ПЛИС, FPGA) и т.п. В другом примере кодер (300), декодер (400), кодер (700) и/или декодер (800) могут быть реализованы как программное обеспечение или микропрограммное обеспечение, включая команды, хранящиеся на энергонезависимом (или долговременном) машиночитаемом носителе данных. Команды, когда выполняются схемой обработки, такой как один или более процессоров, заставляют схему обработки выполнять функции кодера (300), декодера (400), кодера (700) и/или декодера (800).[0113] In various embodiments, the encoder (300), decoder (400), encoder (700), and/or decoder (800) may be implemented in hardware, software, or a combination thereof. For example, the encoder (300), decoder (400), encoder (700), and/or decoder (800) may be implemented with a processing circuit, such as one or more integrated circuits (ICs), that operate with or without software. such as application specific integrated circuit (ASIC), field-programmable logic integrated circuit (FPGA), etc. In another example, the encoder (300), decoder (400), encoder (700), and/or decoder (800) may be implemented as software or firmware, including instructions stored on a non-volatile (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), decoder (400), encoder (700), and/or decoder (800).

[0114] Разбиение облака точек, которое определяется трехмерным кубом симметричным образом по всем осям (например, осям х, у и z), может привести к восьми суб-кубам, что известно как разбиение октодерева (ОТ) при сжатии облака точек (РСС). Разбиение ОТ напоминает разбиение двоичного дерева (ВТ) в одномерном пространстве и разбиение квадродерева (QT) в двумерном пространстве. Идею разбиения ОТ можно проиллюстрировать на примере фиг. 9, где трехмерный куб (900), изображенный сплошными линиями, может быть разбит на восемь меньших кубов одинакового размера, показанных пунктирными линиями. Как показано на фиг. 9, способ разбиения октодерева позволяет разделить трехмерный куб (900) на восемь меньших кубов 0-7 равного размера.[0114] Splitting a point cloud that is defined by a 3D cube in a symmetrical manner along all axes (e.g., the x, y, and z axes) can result in eight sub-cubes, which is known as octree splitting (OT) in point cloud compression (PCC) . OT partitioning resembles binary tree (BT) partitioning in one-dimensional space and quadtree partitioning (QT) in two-dimensional space. The idea of partitioning OT can be illustrated by the example of Fig. 9, where the three-dimensional cube (900), shown in solid lines, can be broken into eight smaller cubes of the same size, shown in dashed lines. As shown in FIG. 9, the octree partitioning method allows the three-dimensional cube (900) to be divided into eight smaller cubes 0-7 of equal size.

[0115] В способе разбиения октодерева (например, в ТМС13), если используется кодек геометрии октодерева, кодирование геометрии происходит следующим образом. Во-первых, кубический ограничивающий бокс В, выровненный по осям, может быть определен двумя крайними точками (0,0,0) и (2d, 2d, 2d), где 2d определяет размер ограничивающего бокса В, и d можно кодировать в битовый поток. Соответственно, все точки внутри заданного ограничивающего бокса В могут быть сжаты.[0115] In an octree partitioning method (eg, in TMC13), if an octree geometry codec is used, geometry encoding occurs as follows. First, the axis-aligned cubic bounding box B can be defined by two extreme points (0,0,0) and (2 d , 2 d , 2 d ), where 2 d defines the size of B's bounding box, and d can be encode to bitstream. Accordingly, all points within a given bounding box B can be compressed.

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

[0117] Процесс декодирования может начинаться со считывания из битового потока размеров ограничивающего бокса В. Такая же структура октодерева может быть затем построена путем разбиения ограничивающего бокса В согласно декодированным кодам занятости. Пример двухуровневого разбиения ОТ и соответствующего кода занятости показан на фиг. 10, где затемненные кубы и узлы указывают, что кубы и узлы заняты точками.[0117] The decoding process may begin by reading the dimensions of bounding box B from the bitstream. The same octree structure may then be built by splitting bounding box B according to the decoded busy codes. An example of a 2-level partition of a OT and the corresponding busy code is shown in FIG. 10, where the shaded cubes and nodes indicate that the cubes and nodes are occupied by dots.

[0118] Фиг. 10 показывает пример разбиения (1010) октодерева и структуры (1020) октодерева, соответствующей разбиению (1010) октодерева согласно некоторым вариантам осуществления изобретения. Фиг. 10 показывает два уровня разбиений в разбиении (1010) октодерева. Структура (1020) октодерева включает в себя узел (N0), соответствующий кубическому блоку разбиения (1010) октодерева. На первом уровне кубический блок разбивается на 8 суб-кубических блоков, которые пронумерованы от 0 до 7 согласно способу нумерации, показанному на фиг. 9. Код занятости для разбиения узла N0 равен «10000001» в двоичном формате, что указывает, что первый субкубический блок, представленный узлом N0-0, и восьмой субкубический блок, представленный узлом N0-7, включает в себя точки в облаке точек, а другие субкубические блоки пусты.[0118] FIG. 10 shows an example of an octree split (1010) and an octree structure (1020) corresponding to an octree split (1010) according to some embodiments of the invention. Fig. 10 shows two levels of splits in split (1010) of the octree. The octree structure (1020) includes a node (N0) corresponding to the octree partition (1010) cubic block. At the first level, the cube block is divided into 8 sub-cubic blocks, which are numbered from 0 to 7 according to the numbering method shown in FIG. 9. The occupancy code for splitting node N0 is "10000001" in binary, indicating that the first subcubic block represented by node N0-0 and the eighth subcubic block represented by node N0-7 include points in the point cloud, and the other subcubic blocks are empty.

[0119] Затем, на втором уровне разбиения, первый субкубический блок (представленный узлом N0-0) и восьмой субкубический блок (представленный узлом N0-7), соответственно, дополнительно разбиваются на восемь октантов. Например, первый субкубический блок (представленный узлом N0-0) разбивается на 8 субкубических блоков меньшего размера, которые пронумерованы 0-7 в соответствии со способом нумерации, показанным на фиг.9. Код занятости для разбиения узла N0-0 - «00011000» в двоичном формате, что указывает, что четвертый меньший субкубический блок (представленный узлом N0-0-3) и пятый меньший субкубический блок (представленный узлом N0-0-4) включает в себя точки в облаке точек, а другие меньшие субкубические блоки пусты. На втором уровне седьмой субкубический блок (представленный узлом N0-7) аналогично разбит на 8 субкубических блоков меньшего размера, как показано на фиг. 10.[0119] Then, at the second partitioning level, the first subcubic block (represented by node N0-0) and the eighth subcubic block (represented by node N0-7), respectively, are further divided into eight octants. For example, the first subcubic block (represented by node N0-0) is split into 8 smaller subcubic blocks, which are numbered 0-7 in accordance with the numbering method shown in FIG. The busy code for splitting node N0-0 is "00011000" in binary, indicating that the fourth smaller subcubic block (represented by node N0-0-3) and the fifth smaller subcubic block (represented by node N0-0-4) include points in the point cloud, and the other smaller subcubic blocks are empty. At the second level, the seventh subcubic block (represented by node N0-7) is similarly divided into 8 smaller subcubic blocks, as shown in FIG. 10.

[0120] В примере на фиг. 10 узлы, соответствующие непустому кубическому пространству (например, кубический блок, субкубические блоки, субкубические блоки меньшего размера и т.п.), показаны серыми и называются затемненными узлами.[0120] In the example of FIG. 10, nodes corresponding to a non-empty cubic space (eg, cubic block, subcubic blocks, smaller subcubic blocks, etc.) are shown in gray and are referred to as shaded nodes.

[0121] В исходной структуре ТМС13, например, как описано выше, ограничивающий бокс В может быть кубом, имеющим одинаковый размер для всех измерений, и, таким образом, разбиение ОТ может выполняться для всех субкубов в каждом узле, в котором субкубы уменьшаются вдвое по всем измерениям. Разбиение ОТ может выполняться рекурсивно, пока размер субкубов не достигнет единицы. Однако такое разбиение может быть не эффективным для всех случаев, особенно когда точки неравномерно распределены в трехмерной сцене (или трехмерном пространстве).[0121] In the original structure of TMC13, for example, as described above, bounding box B may be a cube having the same size for all dimensions, and thus OT splitting may be performed for all subcubes at each node in which the subcubes are halved by all measurements. OT splitting can be performed recursively until the size of the subcubes reaches one. However, such partitioning may not be efficient in all cases, especially when the points are unevenly distributed in the 3D scene (or 3D space).

[0122] Одним из крайних случаев может быть двумерная плоскость в трехмерном пространстве, в которой все точки могут быть расположены на плоскости х-у в трехмерном пространстве, а отклонение по оси z может быть нулевым. В таком случае разбиение ОТ, выполняемое на кубическом В в качестве начальной точки, может тратить много битов на представление информации о занятости в z-направлении, что является избыточным и бесполезным. В реальных приложениях этот худший случай может быть нечастым. Однако обычно облако точек имеет меньшее отклонение в одном направлении по сравнению с другими. Как показано на фиг. 11, последовательность облака точек, называемая «ford_01_vox1mm» в ТМС13, может иметь основные компоненты вдоль осей х и у. Фактически, многие данные облаков точек, созданные с помощью лидарной системы, могут иметь такие же характеристики.[0122] One extreme case may be a 2D plane in 3D space, in which all points may be located on the x-y plane in 3D space, and the z-axis deviation may be zero. In such a case, OT partitioning performed on cube B as the starting point may waste many bits in representing occupancy information in the z-direction, which is redundant and useless. In real applications this worst case may not be frequent. However, usually a point cloud has less deviation in one direction than in others. As shown in FIG. 11, the point cloud sequence referred to as "ford_01_vox1mm" in TMC13 may have principal components along the x and y axes. In fact, many point cloud data generated by a lidar system can have the same characteristics.

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

Figure 00000002
[0123] In quadtree and binary tree (QtBt) partitions, bounding box B may not be a cube, instead bounding box B may be a rectangular cuboid of arbitrary size to better fit the shape of the 3D scene or objects. When implemented, the size of B's bounding box can be represented as a power of two, for example,
Figure 00000002

[0124] Поскольку ограничивающий бокс В может не быть идеальным кубом, в некоторых случаях узел может быть (или не быть) разбит по всем направлениям. Если разбиение выполняется по всем трем направлениям, то это типичное разбиение ОТ. Если разбиение выполняется в двух направлениях из трех, то это разбиение является разбиением QT в 3D. Если разбиение выполняется только в одном направлении, тогда разбиение является разбиением ВТ в 3D. Примеры QT и ВТ в 3D показаны на фиг. 12 и фиг. 13, соответственно.[0124] Because bounding box B may not be a perfect cube, in some cases the node may (or may not) be split across the board. If the partition is performed in all three directions, then this is a typical OT partition. If the partition is performed in two directions out of three, then this partition is a partition of QT in 3D. If the split is only in one direction, then the split is a 3D BT split. Examples of QT and BT in 3D are shown in FIG. 12 and FIG. 13, respectively.

[0125] Как показано на фиг.12, трехмерный куб 1201 может быть разбит по осям х-у на 4 подкуба 0, 2, 4 и 6. Трехмерный куб 1202 может быть разбит по осям x-z на 4 подкуба 0, 1, 4 и 5. Трехмерный куб 1203 может быть разбит по осям y-z на 4 субкуба 0, 1, 2 и 3. На фиг.13, трехмерный куб 1301 может быть разбит по оси х на 2 субкуба 0 и 4. Трехмерный куб 1302 может быть разбит на 2 субкуба 0 и 2. Трехмерный куб 1303 может быть разбит на 2 субкуба 0 и 1.[0125] As shown in FIG. 12, the 3D cube 1201 may be partitioned along the x-y axes into 4 subcubes 0, 2, 4, and 6. The 3D cube 1202 may be partitioned along the x-z axes into 4 subcubes 0, 1, 4, and 5. The 3D cube 1203 can be split along the y-z axes into 4 subcubes 0, 1, 2 and 3. In FIG. 13, the 3D cube 1301 can be split along the x axis into 2 subcubes 0 and 4. 2 subcubes 0 and 2. The 3D cube 1303 can be split into 2 subcubes 0 and 1.

[0126] Чтобы определить условия неявных разбиений QT и ВТ в ТМС13, можно применить два параметра (то есть K и М). Первый параметр K (0 ≤K ≤max(dx, dy, dz) - min(dx, dy, dz)) может определять максимальное количество неявных разбиений QT и ВТ, которые могут быть выполнены перед разбиениями ОТ. Второй параметр М (0 ≤М ≤min(dx, dy, dz)) может определять минимальный размер неявных разбиений QT и ВТ, указывая, что неявные разбиения QT и ВТ разрешены, только если все размеры больше М.[0126] To define the conditions for implicit splits QT and BT in TMC13, two parameters (ie, K and M) can be applied. The first parameter K (0 ≤K ≤max(d x , d y , d z ) - min(d x , d y , d z )) can define the maximum number of implicit QT and BT splits that can be performed before OT splits. The second parameter M (0 ≤M ≤min(d x , d y , d z )) can specify the minimum size of implicit splits QT and BT, indicating that implicit splits QT and BT are allowed only if all sizes are greater than M.

[0127] Более конкретно, первые K разбиений могут следовать правилам из Таблицы I, а разбиения, следующие за первыми K разбиениями, могут следовать правилам из Таблицы II. Если ни одно из условий, перечисленных в таблицах, не выполняется, может быть выполнено разбиение ОТ.[0127] More specifically, the first K splits may follow the rules from Table I, and the splits following the first K splits may follow the rules from Table II. If none of the conditions listed in the tables are met, a OT split can be performed.

Figure 00000003
Figure 00000003

Figure 00000004
Figure 00000004

[0128] В варианте осуществления ограничивающий бокс В может иметь размер

Figure 00000002
. Без потери общности, условия 0<dx ≤dy ≤dz могут быть применены к ограничивающему боксу В. В зависимости от условий, на первых глубинах K (K ≤dz-dx), неявные разбиения ВТ могут выполняться по оси z, а неявные разбиения QT могут быть выполнены по осям y-z в соответствии с таблицей I. Размер подузлов тогда может стать
Figure 00000005
где значение δу и δzz ≥δу ≥0) может зависеть от значения K. Кроме того, разбиения ОТ могут выполняться dx - М раз, так что оставшиеся подузлы могут иметь размер согласно таблице II, неявные разбиения ВТ могут выполняться по оси z δz - δу раз, а неявные разбиения QT могут затем выполняться по осям y-z δу раз. Таким образом, остальные узлы могут иметь размер 2(M,M,M) Следовательно, разбиения ОТ могут быть выполнены М раз, чтобы охватить самые маленькие блоки.[0128] In an embodiment, bounding box B may be sized
Figure 00000002
. Without loss of generality, the conditions 0<d x ≤d y ≤d z can be applied to the bounding box B. Depending on the conditions, at the first depths K (K ≤d z -d x ), implicit partitions of the BT can be performed along the z-axis , and implicit splits QT can be performed along the yz axes according to Table I. The size of the subnodes can then become
Figure 00000005
where the value of δ y and δ zz ≥δ y ≥ 0) may depend on the value of K. In addition, OT splits may be performed d x - M times, so that the remaining subnodes may have a size according to Table II, implicit BT splits may be performed along the z axis δ z - δ y times, and the implicit splits QT can then be performed along the yz δ y times. Thus, the remaining nodes can be of size 2 (M,M,M). Therefore, OT partitions can be performed M times to cover the smallest blocks.

[0129] В разбиениях QtBt используется неявное правило о том, как применять разбиение данного кубоида путем переключения между октодеревом, квадродеревом и двоичным деревом на каждом уровне декомпозиции узлов. После K уровней начального декомпозиции посредством разбиений QtBt в соответствии с правилом (например, таблица I) может быть выполнен еще один круг разбиения QtBt в соответствии с другим правилом (например, таблица II). Если ни одно из условий правил не выполняется в вышеуказанных процессах, может применяться декомпозиция октодерева (или разбиение октодерева).[0129] QtBt partitions use an implicit rule on how to apply partitioning of a given cuboid by switching between octree, quadtree, and binary tree at each node decomposition level. After the K levels of initial decomposition by partitioning QtBt according to a rule (eg Table I), another round of partitioning QtBt according to another rule (eg Table II) can be performed. If none of the rule conditions are met in the above processes, octree decomposition (or octree splitting) may be applied.

[0130] Неявное правило может повлиять на эффективность QtBt следующим образом: (1) для данных облака точек с почти симметричным кубоидным ограничивающим боксом по осям х, у и z разбиение QtBt не показывает преимуществ кодирования по сравнению с соответствующим способом (например, неявным разбиением QtBt), который выполняет декомпозицию Ot (октодерева) на всех уровнях; и (2) для данных облака точек с сильно асимметричным кубоидным ограничивающим боксом по осям х, у и z разбиение QtBt показывает преимущества кодирования за счет пропуска отправки ненужной информации о занятости во время декомпозиции.[0130] An implicit rule can affect the performance of QtBt in the following ways: (1) for point cloud data with a nearly symmetric cuboid bounding box in the x, y, and z axes, splitting QtBt does not show encoding advantages over a corresponding method (e.g., implicit splitting QtBt ), which performs Ot (octree) decomposition at all levels; and (2) for point cloud data with a highly asymmetric cuboid bounding box in the x, y, and z axes, QtBt partitioning shows the benefits of encoding by skipping sending unnecessary occupancy information during decomposition.

[0131] В текущих разбиениях QtBt можно наложить определенные ограничения следующим образом. Во-первых, разбиения QtBt всегда могут принудительно использовать асимметричный ограничивающий бокс, который может оказаться бесполезным или даже контрпродуктивным, когда облако точек имеет почти симметричный ограничивающий бокс.Во-вторых, таблица I вместе с параметром K может уменьшить измерения большего размера в соответствии с правилом путем принудительного использования разбиений Qt / Bt вместо разбиений Ot. Однако таблица I вместе с параметром К может не допускать разбиения Qt или Bt в начале, когда ограничивающий бокс симметричен. В-третьих, таблица II может быть применена после вышеуказанных K раз разбиения и вступает в силу, когда минимальный размер субблоков достигает М. Таким образом, таблица II может уменьшать измерения большего размера в соответствии с правилом до тех пор, пока все измерения не станут равными М. В-четвертых, текущее неявное правило (или неявные разбиения QtBt) всегда может предписывать декомпозицию октодерева после первых (до) уровней K, пока текущие разбиения QtBt не достигнут уровня М. Другими словами, текущие разбиения QtBt могут не допускать, чтобы произвольные разбиения Qt / Bt / Ot выбирались между двумя точками уровня.[0131] In the current partitions of QtBt, certain restrictions can be imposed as follows. First, QtBt partitions can always force the use of an asymmetric bounding box, which can be useless or even counterproductive when the point cloud has a nearly symmetrical bounding box. Second, the I table, together with the K parameter, can reduce larger dimensions according to the rule by forcing the use of Qt/Bt splits instead of Ot splits. However, the table I, together with the K parameter, may prevent splitting Qt or Bt at the beginning when the bounding box is symmetrical. Thirdly, Table II can be applied after the above K split times and takes effect when the minimum sub-block size reaches M. Thus, Table II can reduce larger dimensions according to the rule until all dimensions are equal. M. Fourth, the current implicit rule (or QtBt's implicit splits) may always dictate that the octree be decomposed after the first (up to) K levels, until the current QtBt splits reach the M level. In other words, the current QtBt splits may not allow arbitrary splits Qt / Bt / Ot were chosen between two level points.

[0132] В настоящем изобретении предусмотрено несколько способов. Эти способы обеспечивают упрощение структуры QtBt (например, неявные разбиения QtBt) в ТМС 13 для типичного варианта использования, например, основанных на обсуждении, приведенном выше. Эти способы также позволяют использовать более гибкие способы разбиения, например, путем явной сигнализации типа декомпозиции узла на каждом уровне.[0132] The present invention provides for several methods. These techniques provide a simplification of the QtBt structure (eg, implicit splits of QtBt) in TMC 13 for a typical use case, eg based on the discussion above. These methods also allow for more flexible partitioning techniques, for example, by explicitly signaling the type of node decomposition at each level.

[0133] В варианте осуществления может быть предложен первый способ разбиения (или упрощенное разбиение QtBt). Первый способ разбиения может быть частным случаем неявных разбиений QtBt, который можно применить к наборам данных с сильно асимметричными ограничивающими параллелепипедами, установив K=0 & М=0. Первый способ разбиения может упростить структуру QtBt (например, разбиения QtBt) и при этом обеспечить преимущества кодирования для типичных случаев, как указано выше.[0133] In an embodiment, a first partitioning method (or a simplified QtBt partitioning) may be proposed. The first way of splitting can be a special case of QtBt implicit splits, which can be applied to datasets with highly asymmetric bounding boxes by setting K=0 & M=0. The first way of splitting can simplify the structure of QtBt (e.g. QtBt splits) and still provide coding benefits for typical cases as above.

[0134] По сравнению с разбиениями QtBt в ТМС 13, первый способ разбиения может включать в себя следующие особенности: (1) флаг неявного разрешения (например, implicit_qtbt_enabled_flag) в разбиениях QtBt в ТМС 13 может быть удален. (2) может быть введен флаг асимметричного ограничивающего бокса (например, asymmetric_bbox_enabled_flag), чтобы разрешить использование асимметричного ограничивающего бокса. В примере, когда флаг асимметричного ограничивающего бокса установлен на некоторое значение, такое как 0 (также называемое вторым значением) для симметричных или почти симметричных данных ограничивающего бокса, и на некоторое значение, такое как 1 (также называемое первым значением) для сильно асимметричных данных ограничивающего бокса. (3) Если флаг асимметричного ограничивающего бокса является первым значением, правило implicitQtBt (неявного QtBt) (например, таблицы I и II) с K=0 & М=0 может применяться, когда уровень декомпозиции узла достигает 0 (или последнего уровня). В противном случае, если флаг асимметричного ограничивающего бокса является вторым значением, первый способ разбиения может выполнять декомпозицию октодерева (или разбиение октодерева).[0134] Compared to QtBt splits in TMC 13, the first split method may include the following features: (1) the implicit enable flag (eg, implicit_qtbt_enabled_flag) in QtBt splits in TMC 13 can be removed. (2) an asymmetric bounding box flag (eg, asymmetric_bbox_enabled_flag) may be introduced to enable the use of an asymmetric bounding box. In the example when the asymmetric bounding box flag is set to some value such as 0 (also referred to as the second value) for symmetrical or nearly symmetrical bounding box data, and to some value such as 1 (also referred to as the first value) for highly asymmetric bounding box data boxing. (3) If the asymmetric bounding box flag is the first value, the implicitQtBt (implicit QtBt) rule (eg Tables I and II) with K=0 & M=0 may be applied when the node decomposition level reaches 0 (or the last level). Otherwise, if the asymmetric bounding box flag is the second value, the first splitting method may perform octree decomposition (or octree splitting).

[0135] Согласно первому способу разбиения, правило implicitQtBt, показанное в Таблице II с М=0, может применяться, чтобы пропустить отправку ненужной информации о занятости по некоторым измерениям, например, как показано в Таблице III.[0135] According to the first partitioning method, the implicitQtBt rule shown in Table II with M=0 can be applied to skip sending unnecessary busy information on some dimensions, for example, as shown in Table III.

Figure 00000006
Figure 00000006

Figure 00000007
Figure 00000007

[0136] В варианте осуществления может быть предложен второй способ разбиения (или явное разбиение QtBt) для отправки явной сигнализации решения о разбиении. Явная сигнализация может быть предоставлена как альтернатива использованию фиксированного неявного правила в текущем разбиении QtBt.[0136] In an embodiment, a second split method (or QtBt Explicit Split) can be proposed to send an explicit split decision signaling. Explicit signaling can be provided as an alternative to using a fixed implicit rule in the current QtBt partition.

[0137] Второй способ разбиения может включать в себя следующие особенности: (1) может быть введен флаг явного разрешения QtBt (например, explicit_qtbt_enabled_flag) для разрешения/запрещения явной сигнализации решения о разбиении, в то время как флаг асимметричного ограничивающего бокса из первого способа разбиения может все еще быть введен. (2) Когда флаг явного разрешения QtBt установлен в некоторое значение, такое как 0 (или второе значение), второй способ разбиения возвращается к (или может быть равен) первому способу разбиения, описанному выше. Таким образом, если флаг асимметричного ограничивающего бокса (например, asymmetric_bbox_enabled_flag) представляет собой некоторое значение, такое как 1 (или первое значение), правило implicitQtBt (например, таблицы I и II) с K=0 & М=0 может применяться, когда уровень декомпозиции узла достигает 0 (или последнего уровня). Если флаг асимметричного ограничивающего бокса является вторым значением, второй способ разбиения может выполнять декомпозицию октодерева (или разбиение октодерева). В варианте осуществления, когда флаг асимметричного ограничивающего бокса не используется, а флаг явного разрешения QtBt установлен на второе значение (например, 0), второй способ разбиения может применять декомпозицию октодерева (или разбиение октодерева) для всех уровней. (4) Когда флаг явного разрешения QtBt установлен на первое значение (например, 1), вместо того, чтобы всегда выполнять разбиение октодерева, пока уровень не достигнет 0 (или последнего уровня), как указано в первом способе разбиения, 3-битовый сигнал может быть отправлен на каждом из уровней октодерева, чтобы указать, следует ли выполнять разбиение по каждой из осей х, у и z. Таким образом, 3-битовый сигнал может указывать, может ли разбиение Bt, разбиение Qt или разбиение Ot применяться на каждом из уровней октодерева. В некоторых вариантах осуществления правило implicitQtBt (например, таблицы I и II) в ТМС 13 может применяться для определения 3-битового сигнала на каждом из уровней октодерева.[0137] The second partitioning method may include the following features: (1) a QtBt explicit enable flag (eg, explicit_qtbt_enabled_flag) may be introduced to enable/disable explicit split decision signaling, while the asymmetric bounding box flag from the first partitioning method may still be entered. (2) When the QtBt explicit enable flag is set to some value such as 0 (or a second value), the second partitioning method reverts to (or may be equal to) the first partitioning method described above. Thus, if the asymmetric bounding box flag (e.g., asymmetric_bbox_enabled_flag) is some value, such as 1 (or the first value), the implicitQtBt rule (e.g., tables I and II) with K=0 & M=0 may apply when the level node decomposition reaches 0 (or the last level). If the asymmetric bounding box flag is the second value, the second splitting method may perform octree decomposition (or octree splitting). In an embodiment, when the asymmetric bounding box flag is not used and the QtBt explicit enable flag is set to a second value (eg, 0), the second partitioning method may apply octree decomposition (or octree partitioning) for all levels. (4) When the QtBt explicit enable flag is set to the first value (e.g. 1), instead of always splitting the octree until the level reaches 0 (or the last level) as specified in the first splitting method, a 3-bit signal can be sent at each level of the octree to indicate whether to split along each of the x, y, and z axes. Thus, the 3-bit signal may indicate whether a Bt split, a Qt split, or an Ot split can be applied at each of the levels of the octree. In some embodiments, the implicitQtBt rule (eg, Tables I and II) in TMC 13 may be used to define a 3-bit signal at each of the octree levels.

[0138] Следует отметить, что, поскольку разбиение Ot / Qt / Bt разрешено произвольным образом в процессе, когда флаг явного разрешения QtBt установлен на первое значение во втором способе разбиения, максимально возможное общее количество разбиений может быть трехкратной разностью максимальной и минимальной глубины узлов.[0138] It should be noted that since the Ot / Qt / Bt split is allowed arbitrarily in the process when the QtBt explicit enable flag is set to the first value in the second split method, the maximum possible total number of splits can be three times the difference between the maximum and minimum node depths.

[0139] В варианте осуществления изобретения может быть предложен третий способ разбиения (или явное разбиение QtBt типа 2 для отправки явной сигнализации решения о разбиении. Явная сигнализация может быть предоставлена в отличие от использования фиксированного неявного правила в текущем разбиении QtBt (например, в таблицах I и II). Третий способ разбиения может включать следующие особенности по сравнению с текущим разбиением QtBt: (1) флаг явного разрешения QtBt (например, explicit_qtbt_enabled_flag) может заменить флаг неявного разрешения QtBt (например, implicit_qtbt_enabled_flag) в разбиениях QtBt в ТМС 13, чтобы разрешить / запретить явную сигнализацию решения о разбиении. (2) Флаг асимметричного ограничивающего бокса (например, asymmetric_bbox_enabled_flag) может дополнительно сигнализироваться только тогда, когда флаг явного разрешения QtBt имеет некоторое значение, такое как 1 (или первое значение), для разрешения / запрещения использования асимметричного ограничивающего бокса. Когда флаг асимметричного ограничивающего бокса является первым значением, величины асимметричного ограничивающего бокса (т.е. размеры) вдоль осей х, у и z могут дополнительно передаваться, в противоположность максимуму из трех. Соответственно, флаг асимметричного ограничивающего бокса может быть установлен на некоторое значение, такое как 0 (например, второе значение), для симметричных или почти симметричных данных ограничивающего бокса, и на первое значение (например, 1) для сильно асимметричных данных ограничивающего бокса. (3) Когда флаг явного разрешения QtBt установлен на первое значение, 3-битовый сигнал может быть отправлен на каждом из уровней октодерева (или уровней разбиения октодерева), чтобы указать, следует ли выполнять разбиение по каждой из осей х, у и z. В варианте осуществления правило implicitQtBt (например, таблицы I и II) в ТМС 13 может применяться для определения 3-битового сигнала для каждого из уровней октодерева. В другом варианте осуществления могут применяться другие правила разбиения для определения 3-битового сигнала для каждого из уровней октодерева. Другие правила разбиения могут облегчить кодирование информации о занятости октодерева и дополнительно учитывать характеристики данных (например, информацию о занятости октодерева) или механизм получения даты. (4) Когда флаг явного разрешения QtBt установлен на второе значение (например, 0), третий способ разбиения может применять декомпозицию октодерева (разбиение октодерева) для всех уровней.[0139] In an embodiment, a third splitting method (or QtBt type 2 explicit splitting to send explicit split decision signaling can be provided. Explicit signaling can be provided as opposed to using a fixed implicit rule in the current QtBt splitting (e.g., in Tables I and II) A third splitting method may include the following features compared to the current QtBt splitting: (1) QtBt's explicit enable flag (eg, explicit_qtbt_enabled_flag) may replace the QtBt implicit enable flag (eg, implicit_qtbt_enabled_flag) in QtBt splits in TMC 13 to allow / disable explicit split decision signaling (2) An asymmetric bounding box flag (e.g. asymmetric_bbox_enabled_flag) can optionally be signaled only when QtBt's explicit enable flag has some value, such as 1 (or the first value), to enable/disable the use of an asymmetric bounding box. When the asymmetric bounding box flag is the first value, the asymmetric bounding box values (i.e. dimensions) along the x, y, and z axes may additionally be transmitted, as opposed to the maximum of the three. Accordingly, the asymmetric bounding box flag may be set to some value such as 0 (eg, a second value) for symmetrical or nearly symmetrical bounding box data, and to a first value (eg, 1) for highly asymmetric bounding box data. (3) When the QtBt Explicit Enable Flag is set to the first value, a 3-bit signal may be sent at each of the octree levels (or splitting levels of the octree) to indicate whether splitting should be performed on each of the x, y, and z axes. In an embodiment, the implicitQtBt rule (eg, Tables I and II) in TMC 13 may be used to define a 3-bit signal for each of the octree levels. In another embodiment, different partitioning rules may be applied to determine the 3-bit signal for each of the octree levels. Other partitioning rules may make it easier to encode the octree occupancy information and additionally take into account characteristics of the data (eg octree occupancy information) or a date derivation mechanism. (4) When QtBt's explicit permission flag is set to the second value (eg, 0), the third splitting method can apply octree decomposition (octree splitting) to all levels.

[0140] Следует отметить, что, поскольку разбиение Ot / Qt / Bt разрешено произвольным образом в процессе, когда флаг явного разрешения QtBt установлен на первое значение в третьем способе разбиения, максимально возможное общее количество разбиений может быть трехкратной разностью максимальной и минимальной глубины узлов.[0140] It should be noted that since the Ot / Qt / Bt split is allowed arbitrarily in the process when the QtBt explicit enable flag is set to the first value in the third split method, the maximum possible total number of splits can be three times the difference between the maximum and minimum node depths.

[0141] В варианте осуществления изобретения может быть предложен четвертый способ разбиения (или гибкое разбиение QtBt) для обеспечения большей гибкости в использовании разбиения QtBt посредством дополнительной сигнализации типа разбиения QtBt, явной или неявной. Дополнительная сигнализация может быть предоставлена в отличие от использования фиксированного неявного правила в текущем разбиении QtBt (например, в таблицах I и II).[0141] In an embodiment, a fourth partitioning method (or flexible QtBt partitioning) may be proposed to provide greater flexibility in the use of QtBt partitioning through additional signaling of the type of QtBt partitioning, explicit or implicit. Additional signaling may be provided as opposed to using a fixed implicit rule in the current partition of QtBt (eg, in Tables I and II).

[0142] Четвертый способ разбиения может включать в себя следующее: (1) флаг разрешения QtBt (например, qtbt_enabled_flag) может применяться для замены флага неявного разрешения QtBt в разбиении QtBt в ТМС 13, чтобы указать использование разбиения QtBt с большей гибкостью. (2) Флаг типа QtBt (например, qtbt_type_flag) может дополнительно передаваться, когда флаг разрешения QtBt установлен в некоторое значение, такое как 1. (3) Если флаг типа QtBt установлен в некоторое значение, такое как 0, может быть применена схема текущего неявного QtBt (например, таблицы I и II). Кроме того, флаг асимметричного ограничивающего бокса (например, asymmetric_bbox_enabled_flag) может дополнительно передаваться для выборочного разрешения / запрещения использования асимметричного ограничивающего бокса. В варианте осуществления, когда флаг асимметричного ограничивающего бокса установлен на некоторое значение, такое как 1, величины асимметричного ограничивающего бокса (то есть размеры) по осям х, у и z могут передаваться, в противоположность максимуму из трех. В другом варианте осуществления, когда флаг асимметричного ограничивающего бокса не передается, всегда можно использовать асимметричный ограничивающий бокс.[0142] The fourth split method may include the following: (1) a QtBt enable flag (eg, qtbt_enabled_flag) may be used to replace the QtBt implicit enable flag in the QtBt split in TMC 13 to indicate the use of QtBt split with more flexibility. (2) A QtBt type flag (eg, qtbt_type_flag) may optionally be transmitted when the QtBt enable flag is set to some value, such as 1. (3) If the QtBt type flag is set to some value, such as 0, the current implicit scheme may be applied. QtBt (eg tables I and II). In addition, an asymmetric bounding box flag (eg, asymmetric_bbox_enabled_flag) may optionally be transmitted to selectively enable/disable the use of an asymmetric bounding box. In an embodiment, when the asymmetric bounding box flag is set to some value, such as 1, the asymmetric bounding box values (i.e., dimensions) in the x, y, and z axes may be transmitted, as opposed to a maximum of three. In another embodiment, when the asymmetric bounding box flag is not transmitted, an asymmetric bounding box can always be used.

[0143] Четвертый способ разбиения также может включать в себя следующее: (4) Если флаг типа QtBt представляет собой некоторое значение, такое как 1, 3-битовый сигнал может быть отправлен на каждый из уровней октодерева, чтобы указать, следует ли выполнять разбиение по каждой из осей х, у и z. В варианте осуществления правило implicitQtBt (например, таблицы I и II) в ТМС 13 может применяться для определения 3-битового сигнала для каждого из уровней октодерева. В другом варианте осуществления могут применяться другие правила разбиения для определения 3-битового сигнала для каждого из уровней октодерева. Другие правила разбиения могут облегчить кодирование информации о занятости октодерева и дополнительно учитывать характеристики данных (например, информацию о занятости октодерева) или механизм получения даты. В варианте осуществления, флаг асимметричного ограничивающего бокса может дополнительно передаваться для выборочного разрешения / запрещения использования асимметричного ограничивающего бокса. Когда флаг асимметричного ограничивающего бокса имеет некоторое значение, такое как 1, могут передаваться величины (т.е. размеры) асимметричного ограничивающего бокса по осям х, у и z, а не максимум из трех. В другом варианте осуществления флаг асимметричного ограничивающего бокса может не передаваться, и всегда можно использовать асимметричный ограничивающий бокс.(5) Когда флаг разрешения QtBt установлен в некоторое значение, такое как 0, четвертый способ разбиения может применять декомпозицию октодерева (или разбиение октодерева) для всех уровней.[0143] The fourth partitioning method may also include the following: (4) If the QtBt type flag is some value such as 1, a 3-bit signal may be sent to each of the octree levels to indicate whether splitting should be performed on each of the x, y, and z axes. In an embodiment, the implicitQtBt rule (eg, Tables I and II) in TMC 13 may be used to define a 3-bit signal for each of the octree levels. In another embodiment, different partitioning rules may be applied to determine the 3-bit signal for each of the octree levels. Other partitioning rules may make it easier to encode the octree occupancy information and additionally take into account characteristics of the data (eg octree occupancy information) or a date derivation mechanism. In an embodiment, an asymmetric bounding box flag may optionally be transmitted to selectively enable/disable the use of an asymmetric bounding box. When the asymmetric bounding box flag has some value, such as 1, the x, y, and z dimensions of the asymmetric bounding box may be transmitted, rather than a maximum of three. In another embodiment, the asymmetric bounding box flag may not be transmitted, and an asymmetric bounding box may always be used. levels.

[0144] Следует отметить, что, поскольку разбиение Ot / Qt / Bt разрешено произвольным образом в процессе, когда флаг явного разрешения QtBt установлен на некоторое значение, такое как 1, в четвертом способе разбиения максимально возможное общее количество разбиений может быть в три раза больше разности максимальной и минимальной глубины узлов.[0144] It should be noted that since the Ot / Qt / Bt partition is allowed arbitrarily in the process when the QtBt explicit permission flag is set to some value such as 1, in the fourth partition method, the maximum possible total number of partitions can be three times the difference between the maximum and minimum node depths.

[0145] Вышеупомянутые способы могут быть реализованы в видеокодере или декодере, адаптированном для сжатия / распаковки облака точек. Кодер / декодер может быть реализован в аппаратном обеспечении, программном обеспечении или любой их комбинации, а программное обеспечение, если оно есть, может быть сохранено на одном или нескольких машиночитаемых носителях. Например, каждый из способов (или вариантов осуществления), кодеров и декодеров может быть реализован схемой обработки (например, одним или более процессорами или одной или более интегральными схемами). В одном примере один или более процессоров выполняют программу, которая хранится на машиночитаемом носителе.[0145] The above methods may be implemented in a video encoder or decoder adapted to compress/decompress a point cloud. The encoder/decoder may be implemented in hardware, software, or any combination thereof, and the software, if any, may be stored on one or more computer-readable media. For example, each of the methods (or embodiments), encoders, and decoders may be implemented by a processing circuit (eg, one or more processors or one or more integrated circuits). In one example, one or more processors execute a program that is stored on a computer-readable medium.

[0146] Фиг. 14 и 15 показывают блок-схемы, описывающие процесс (1400) и процесс (1500) согласно вариантам осуществления изобретения. Процессы (1400) и (1500) могут использоваться во время процессов декодирования облаков точек. В различных вариантах осуществления процессы (1400) и (1500) могут выполняться схемой обработки, такой как схема обработки в оконечных устройствах (110), схема обработки, которая выполняет функции кодера (203) и/или декодера (201), схема обработки, которая выполняет функции кодера (300), декодера (400), кодера (700) и/или декодера (800) и т.п. В некоторых вариантах осуществления процессы (1400) и (1500) могут быть реализованы в командах, таким образом, когда схема обработки выполняет команды, схема обработки выполняет процессы (1400) и (1500), соответственно. [0147] Как показано на фиг. 14 процесс (1400) начинается с (S1401) и переходит нa (S1410).[0146] FIG. 14 and 15 show flowcharts describing process (1400) and process (1500) according to embodiments of the invention. Processes (1400) and (1500) may be used during point cloud decoding processes. In various embodiments, processes (1400) and (1500) may be performed by a processing circuit, such as a processing circuit in terminal devices (110), a processing circuit that performs the functions of an encoder (203) and/or a decoder (201), a processing circuit that acts as an encoder (300), decoder (400), encoder (700) and/or decoder (800), and the like. In some embodiments, processes (1400) and (1500) may be implemented in instructions, such that when the processing circuitry executes the instructions, the processing circuitry executes processes (1400) and (1500), respectively. [0147] As shown in FIG. 14, the process (1400) starts from (S1401) and proceeds to (S1410).

[0148] На (S1410) первая сигнальная информация может быть принята из кодированного битового потока для облака точек, которое включает в себя набор точек в трехмерном (3D) пространстве. Первая сигнальная информация может указывать информацию о разбиении облака точек.[0148] In (S1410), the first signaling information may be received from an encoded bitstream for a point cloud that includes a set of points in three-dimensional (3D) space. The first signaling information may indicate partitioning information of the point cloud.

[0149] На (S1420) вторая сигнальная информация может быть определена на основе первой сигнальной информации, указывающей первое значение. Вторая сигнальная информация может указывать на режим разбиения набора точек в трехмерном пространстве.[0149] In (S1420), the second signaling information may be determined based on the first signaling information indicating the first value. The second signaling information may indicate the mode of splitting the set of points in three-dimensional space.

[0150] На (S1430) режим разбиения набора точек в трехмерном пространстве может быть определен на основе второй сигнальной информации. Затем процесс (1400) может перейти к (S1440), где облако точек может быть реконструировано на основе режима разбиения.[0150] In (S1430), the 3D dot set partition mode can be determined based on the second signal information. The process (1400) may then proceed to (S1440) where the point cloud may be reconstructed based on the split mode.

[0151] В некоторых вариантах осуществления, режим разбиения может быть определен как заранее заданное разбиение квадродерева и двоичного дерева (QtBt) на основе второй сигнальной информации, являющейся вторым значением.[0151] In some embodiments, the split mode may be determined as a predetermined quadtree and binary tree (QtBt) split based on the second signaling information being the second value.

[0152] В процессе (1400) может быть принята третья сигнальная информация, которая указывает, что трехмерное пространство является асимметричным кубоидом. Размеры трехмерного пространства, которые передаются по направлениям х, у и z, могут быть определены на основе третьей сигнальной информации, являющейся первым значением.[0152] In process (1400), third signal information may be received that indicates that the three-dimensional space is an asymmetric cuboid. The dimensions of the three-dimensional space that are transmitted in the x, y and z directions can be determined based on the third signal information being the first value.

[0153] В некоторых вариантах осуществления 3-битовая сигнальная информация может быть определена для каждого из множества уровней разбиения в режиме разбиения, основанном на второй сигнальной информации, являющейся первым значением. 3-битовая сигнальная информация для каждого из множества уровней разбиения может указывать направления разбиения по направлениям х, у и z для соответствующего уровня разбиения в режиме разбиения.[0153] In some embodiments, 3-bit signaling information may be determined for each of a plurality of split levels in a split mode based on the second signaling information being the first value. The 3-bit signaling information for each of the plurality of split levels may indicate split directions in the x, y, and z directions for the corresponding split level in the split mode.

[0154] В некоторых вариантах осуществления 3-битовая сигнальная информация может быть определена на основе размеров трехмерного пространства.[0154] In some embodiments, the implementation of the 3-bit signaling information may be determined based on the dimensions of the three-dimensional space.

[0155] В процессе (1400) режим разбиения может быть определен на основе первой сигнальной информации, являющейся вторым значением, где режим разбиения может включать в себя соответствующее разбиение октодерева в каждом из множества уровней разбиения в режиме разбиения.[0155] In process (1400), the split mode may be determined based on the first signaling information being the second value, where the split mode may include a corresponding split of the octree in each of the plurality of split levels in the split mode.

[0156] Как показано на фиг. 15 процесс (1500) начинается с (S1501) и переходит к (S1510).[0156] As shown in FIG. 15, the process (1500) starts from (S1501) and proceeds to (S1510).

[0157] На (S1510) первая сигнальная информация может быть принята из кодированного битового потока для облака точек, которое включает в себя набор точек в трехмерном (3D) пространстве. Первая сигнальная информация может указывать на информацию о разбиении облака точек.[0157] In (S1510), the first signaling information may be received from an encoded bitstream for a point cloud that includes a set of points in three-dimensional (3D) space. The first signaling information may indicate splitting information of the point cloud.

[0158] На (S1520) режим разбиения набора точек в трехмерном пространстве может быть определен на основе первой сигнальной информации, где режим разбиения может включать в себя множество уровней разбиения.[0158] In (S1520), a partition mode of a set of points in 3D space may be determined based on the first signal information, where the partition mode may include a plurality of partition levels.

[0159] На (S1530) облако точек может быть восстановлено на основе режима разбиения.[0159] In (S1530), the point cloud can be reconstructed based on the split mode.

[0160] В некоторых вариантах осуществления 3-битовая сигнальная информация для каждого из множества уровней разбиения в режиме разбиения может быть определена на основе первой сигнальной информации, являющейся первым значением, где 3-битовая сигнальная информация для каждого из множества уровней разбиения может указывать направления разбиения по направлениям х, у и z для соответствующего уровня разбиения в режиме разбиения.[0160] In some embodiments, the 3-bit signaling information for each of the multiple split levels in the split mode may be determined based on the first signaling information being the first value, where the 3-bit signaling information for each of the multiple split levels may indicate split directions. in the x, y, and z directions for the corresponding split level in split mode.

[0161] В некоторых вариантах осуществления 3-битовая сигнальная информация может быть определена на основе размеров трехмерного пространства.[0161] In some embodiments, the implementation of the 3-bit signaling information may be determined based on the dimensions of the three-dimensional space.

[0162] В некоторых вариантах осуществления, режим разбиения может быть определен для включения соответствующего октодерева в каждый из множества уровней разбиения в режиме разбиения, основанном на первой сигнальной информации, являющейся вторым значением.[0162] In some embodiments, a split mode may be defined to include a corresponding octree in each of the plurality of split levels in a split mode based on the first signaling information being the second value.

[0163] В процессе (1500) вторая сигнальная информация может дополнительно приниматься из кодированного битового потока для облака точек. Вторая сигнальная информация может указывать, что трехмерное пространство является асимметричным кубоидом, когда вторая сигнальная информация является первым значением, и трехмерное пространство является симметричным кубоидом, когда вторая сигнальная информация является вторым значением.[0163] In process (1500), the second signaling information may be further received from the encoded bitstream for the point cloud. The second signaling information may indicate that the 3D space is an asymmetric cuboid when the second signaling information is the first value, and the 3D space is a symmetrical cuboid when the second signaling information is the second value.

[0164] В некоторых вариантах осуществления, на основе первой сигнальной информации, указывающей второе значение, и второй сигнальной информации, указывающей первое значение, режим разбиения может быть определен для включения соответствующего разбиения октодерева в каждый из первых уровней разбиения в множестве уровней разбиения режима разбиения. Тип разбиения и направление разбиения последнего уровня разбиения из множества уровней разбиения режима разбиения могут быть определены согласно следующей таблице:[0164] In some embodiments, based on the first signaling information indicating the second value and the second signaling information indicating the first value, the split mode may be determined to include a corresponding split of the octree in each of the first split levels in the set of split levels of the split mode. The split type and the split direction of the last split level of the multiple split levels of the split mode can be determined according to the following table:

Figure 00000008
Figure 00000008

где dx, dy, и dz являются log2 размеров трехмерного пространства вдоль осей х, у и z, соответственно.where d x , d y , and d z are log2 dimensions of three-dimensional space along the x, y, and z axes, respectively.

[0165] В процессе (1500) вторая сигнальная информация может быть определена на основе первой сигнальной информации, указывающей первое значение. Вторая сигнальная информация может указывать, что трехмерное пространство является асимметричным кубоидом, когда вторая сигнальная информация указывает первое значение, и трехмерное пространство является симметричным кубоидом, когда вторая сигнальная информация указывает второе значение. Кроме того, размеры трехмерного пространства, которые передаются вдоль осей х, у и z, могут быть определены на основе второй сигнальной информации, указывающей первое значение.[0165] In process (1500), the second signaling information may be determined based on the first signaling information indicating the first value. The second signaling information may indicate that the 3D space is an asymmetric cuboid when the second signaling information indicates a first value, and the 3D space is a symmetrical cuboid when the second signaling information indicates a second value. In addition, the dimensions of the three-dimensional space that are transmitted along the x, y, and z axes can be determined based on the second signal information indicating the first value.

[0166] Как отмечалось ранее, описанные выше способы могут быть реализованы в виде компьютерного программного обеспечения с использованием машиночитаемых команд и физически сохранены на одном или нескольких машиночитаемых носителях. Например, фиг. 16 показывает компьютерную систему (1800), подходящую для реализации определенных вариантов осуществления раскрытого предмета изобретения.[0166] As previously noted, the methods described above may be implemented in computer software using computer-readable instructions and physically stored on one or more computer-readable media. For example, FIG. 16 shows a computer system (1800) suitable for implementing certain embodiments of the disclosed subject matter.

[0167] Компьютерное программное обеспечение может быть кодировано с использованием любого подходящего машинного кода или компьютерного языка, который может быть предметом сборки, компиляции, связывания или аналогичных механизмов для создания кода, содержащего команды, которые могут выполняться напрямую или посредством интерпретации, выполнения микрокода и т.п., одним или более центральными процессорами (CPU), графическими процессорами (GPU) и т.п.[0167] Computer software may be coded using any suitable machine code or computer language, which may be the subject of assembly, compilation, linking, or similar mechanisms to produce code containing instructions that can be executed directly or through interpretation, execution of microcode, etc. .p., one or more central processing units (CPUs), graphics processing units (GPUs), and the like.

[0168] Команды могут выполняться на компьютерах различных типов или их компонентах, включая, например, персональные компьютеры, планшетные компьютеры, серверы, смартфоны, игровые устройства, устройства Интернета вещей и т.п.[0168] 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.

[0169] Компоненты, показанные на фиг. 16 для компьютерной системы (1800) являются примерными по своей природе и не предназначены для предложения каких-либо ограничений в отношении объема использования или функциональных возможностей компьютерного программного обеспечения, реализующего варианты осуществления настоящего изобретения. Конфигурация компонентов также не должна интерпретироваться как имеющая какую-либо зависимость или требование, относящееся к любому одному или комбинации компонентов, проиллюстрированных в примерном варианте осуществления компьютерной системы (1800).[0169] The components shown in FIG. 16 for the computer system (1800) are exemplary in nature and are not intended to suggest any limitation as to the scope of use or functionality of the computer software implementing embodiments of the present invention. The configuration of the components is also not to be interpreted as having any dependency or requirement relating to any one or combination of the components illustrated in the exemplary embodiment of the computer system (1800).

[0170] Компьютерная система (1800) может включать в себя определенные человека-машинные интерфейсы ввода. Такой человеко-машинный интерфейс ввода может реагировать на ввод одним или несколькими пользователями-людьми посредством, например, тактильного ввода (например, нажатия клавиш, смахивания, движения перчаток данных), звукового ввода (например, голоса, хлопков в ладоши), визуального ввода (например, жесты), обонятельного ввода (не изображен). Человеко-машинные интерфейсы ввода также могут использоваться для захвата определенных медиа, не обязательно напрямую связанных с сознательным вводом человеком, таких как аудио (например, речь, музыка, окружающий звук), изображения (например, сканированные изображения, фотографические изображения, полученные от камеры для съемки неподвижных изображений), видео (например, двумерное видео, трехмерное видео, включая стереоскопическое видео).[0170] The computer system (1800) may include certain human-machine input interfaces. Such a human-machine input interface may respond to input by one or more human users through, for example, tactile input (e.g., keystrokes, swipes, data glove movements), audio input (e.g., voice, handclaps), visual input ( for example, gestures), olfactory input (not shown). Human machine interfaces for input can also be used to capture certain media not necessarily directly related to conscious human input, such as audio (e.g. speech, music, ambient sound), images (e.g. scanned images, photographic images received from a camera for shooting still images), video (e.g. 2D video, 3D video including stereoscopic video).

[0171] Человеко-машинные интерфейсы ввода могут включать в себя одно или более из следующих (только по одному из них показаны): клавиатура (1801), мышь (1802), трекпад (1803), сенсорный экран (1810), перчатка для данных (не показана), джойстик (1805), микрофон (1806), сканер (1807), камера (1808).[0171] Human-machine input interfaces may include one or more of the following (only one of them is shown): keyboard (1801), mouse (1802), trackpad (1803), touch screen (1810), data glove (not shown), joystick (1805), microphone (1806), scanner (1807), camera (1808).

[0172] Компьютерная система (1800) также может включать в себя определенные человеко-машинные интерфейсы вывода. Такие человека-машинные интерфейсы вывода могут воздействовать на одного или более пользователей-людей, например, посредством тактильного вывода, звука, света и запаха / вкуса. Такие человеко-машинные интерфейсы вывода могут включать в себя тактильные устройства вывода (например, тактильную обратную связь от сенсорного экрана (1810), перчатку для данных (не показано) или джойстик (1805), но также могут быть устройства тактильной обратной связи, которые не служат в качестве устройств ввода), устройства вывода звука (например: динамики (1809), наушники (не показаны)), устройства вывода изображения (например, экраны (1810), включая ЭЛТ-экраны, ЖК-экраны, плазменные экраны, OLED-экраны, каждое с возможностью или без возможности ввода с сенсорного экрана, каждое с возможностью тактильной обратной связи или без нее - некоторые из которых могут выводить двумерные визуальные выходные данные или более чем трехмерные выходные данные с помощью таких средств, как стереографический вывод; очки виртуальной реальности (не изображены), голографические дисплеи и дымовые баки (не изображены)) и принтеры (не изображены).[0172] The computer system (1800) may also include certain output human-machine interfaces. Such human-machine output interfaces may affect one or more human users through, for example, tactile output, sound, light, and smell/taste. Such human-machine output interfaces may include tactile output devices (e.g., tactile feedback from a touch screen (1810), a data glove (not shown) or a joystick (1805), but there may also be tactile feedback devices that are not serve as input devices), audio output devices (for example: speakers (1809), headphones (not shown)), image output devices (for example, screens (1810), including CRT screens, LCD screens, plasma screens, OLED- screens, each with or without touch screen input capability, each with or without haptic feedback capability - some of which can produce 2D visual output or more than 3D output by means such as stereographic output; virtual reality goggles (not shown), holographic displays and smoke tanks (not shown) and printers (not shown).

[0173] Компьютерная система (1800) также может включать в себя доступные для человека устройства хранения и связанные с ними носители, такие как оптические носители, включая CD / DVD ROM / RW (1820) с CD / DVD или подобные носители (1821), флэш-накопитель (1822), съемный жесткий диск или твердотельный накопитель (1823), традиционные магнитные носители, такие как лента и дискета (не показаны), специализированные устройства на основе ROM / ASIC / PLD, такие как защитные ключи (не показаны) и т.п.[0173] The computer system (1800) may also include human accessible storage devices and associated media such as optical media including CD/DVD ROM/RW (1820) with CD/DVD or similar media (1821), flash drive (1822), removable hard drive or solid state drive (1823), traditional magnetic media such as tape and floppy disk (not shown), specialized ROM/ASIC/PLD based devices such as security keys (not shown), and etc.

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

[0175] Компьютерная система (1800) также может включать в себя интерфейс для одной или нескольких сетей связи. Сети могут быть, например, беспроводными, проводными, оптическими. Кроме того, сети могут быть локальными, глобальными, городскими, автомобильными и промышленными, работающими в реальном времени, устойчивыми к задержкам и т.д. Примеры сетей включают в себя локальные сети, такие как Ethernet, беспроводные локальные сети, сотовые сети, включая GSM, 3G, 4G, 5G, LTE и т.п., проводные телевизионные или глобальные беспроводные цифровые сети, включая кабельное телевидение, спутниковое телевидение и наземное широковещательное телевидение, автомобильные и промышленные, включая CANBus и т.д. Некоторым сетям обычно требуются адаптеры внешнего сетевого интерфейса, которые подключены к определенным портам данных общего назначения или периферийным шинам (1849) (например, к портам USB компьютерной системы (1800)); другие обычно интегрируются в ядро компьютерной системы (1800) путем присоединения к системной шине, как описано ниже (например, интерфейс Ethernet в компьютерную систему ПК или интерфейс сотовой сети в компьютерную систему смартфона). Используя любую из этих сетей, компьютерная система (1800) может связываться с другими объектами. Такая связь может быть однонаправленной, только для приема (например, широковещательное телевидение), однонаправленной только для отправки (например, CANbus на определенные устройства CANbus), или двунаправленной, например, для других компьютерных систем, использующих локальную или глобальную цифровые сети. Определенные протоколы и стеки протоколов могут использоваться в каждой из этих сетей и сетевых интерфейсов, как описано выше.[0175] The computer system (1800) may also include an interface to one or more communication networks. Networks can be, for example, wireless, wired, optical. In addition, networks can be local, wide area, metropolitan, automotive, industrial, real-time, latency tolerant, and so on. Examples of networks include local area networks such as Ethernet, wireless local area networks, cellular networks including GSM, 3G, 4G, 5G, LTE, etc., wired television or wireless digital wide area networks including cable television, satellite television and terrestrial broadcast television, automotive and industrial, including CANBus, etc. Some networks typically require external network interface adapters that are connected to certain general purpose data ports or peripheral buses (1849) (for example, computer system USB ports (1800)); others are typically integrated into the computer system core (1800) by being attached 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 (1800) can communicate with other entities. Such communication can be unidirectional, receive-only (for example, broadcast TV), unidirectional, send-only (for example, CANbus to certain CANbus devices), or bidirectional, for example, to other computer systems using a local or wide area digital network. Certain protocols and protocol stacks may be used on each of these networks and network interfaces, as described above.

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

[0177] Ядро (1840) может включать в себя один или более центральных процессоров (CPU, ЦП) (1841), графических процессоров (GPU, ГП) (1842), специализированных программируемых блоков обработки в виде программируемых логических интегральных схем (FPGA, ПЛИС) (1843), аппаратные ускорители для определенных задач (1844) и т.д. Эти устройства, наряду с постоянным запоминающим устройством (ПЗУ) (1845), оперативным запоминающим устройством (1846), внутренними запоминающими устройствами, такими как внутренние жесткие диски, не доступные пользователю, твердотельные накопители и т.п.(1847), могут быть подключены через системную шину (1848). В некоторых компьютерных системах системная шина (1848) может быть доступна в виде одного или нескольких физических разъемов для обеспечения возможности расширения с помощью дополнительных процессоров, графических процессоров и т.п. Периферийные устройства могут быть подключены либо непосредственно к системной шине (1848) ядра, либо через периферийную шину (1849). Архитектура периферийной шины включает PCI, USB и т.п.[0177] The core (1840) may include one or more central processing units (CPU, CPU) (1841), graphics processors (GPU, GPU) (1842), specialized programmable processing units in the form of programmable logic integrated circuits (FPGA, FPGA ) (1843), hardware accelerators for certain tasks (1844), etc. These devices, along with Read Only Memory (ROM) (1845), Random Access Memory (1846), internal storage devices such as internal non-user hard drives, solid state drives, etc. (1847), can be connected via system bus (1848). In some computer systems, the system bus (1848) may be available as one or more physical connectors to allow expansion with additional processors, graphics processors, or the like. Peripherals can be connected either directly to the system bus (1848) of the kernel, or via a peripheral bus (1849). Peripheral bus architecture includes PCI, USB, etc.

[0178] ЦП (1841), ГП (1842), ПЛИС (1843) и ускорители (1844) могут выполнять определенные команды, которые в комбинации могут составлять вышеупомянутый компьютерный код. Этот компьютерный код может храниться в ПЗУ (1845) или ОЗУ (1846). Переходные данные также могут храниться в ОЗУ (1846), тогда как постоянные данные могут храниться, например, во внутреннем запоминающем устройстве (1847). Быстрое хранение и извлечение на любое из запоминающих устройств могут быть осуществлены за счет использования кэш-памяти, которая может быть тесно связана с одним или более ЦП (1841), ГП (1842), массовым запоминающим устройством (1847), ПЗУ (1845), ОЗУ (1846) и т.п.[0178] The CPU (1841), GPU (1842), FPGA (1843), and accelerators (1844) may execute certain instructions, which in combination may constitute the aforementioned computer code. This computer code may be stored in ROM (1845) or RAM (1846). Transient data may also be stored in RAM (1846), while persistent data may be stored, for example, in internal storage (1847). Fast storage and retrieval to any of the storage devices can be accomplished through the use of cache memory, which can be tightly coupled to one or more CPU (1841), GPU (1842), mass storage device (1847), ROM (1845), RAM (1846), etc.

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

[0180] В качестве примера, а не в качестве ограничения, компьютерная система, имеющая архитектуру (1800) и, в частности, ядро (1840), может обеспечивать функциональность в результате того, что процессор (-ы) (включая ЦП, графические процессоры, ПЛИС, ускорители, и т.п.) исполняют программное обеспечение, воплощенное на одном или более материальных машиночитаемых носителях. Такие машиночитаемые носители могут быть носителями, связанными с доступным для пользователя массовым хранилищем, как описано выше, а также определенными хранилищами ядра (1840), которые имеют энергонезависимую природу, такими как внутреннее хранилище большой емкости (1847) или ПЗУ (1845). Программное обеспечение, реализующее различные варианты осуществления настоящего изобретения, может храниться в таких устройствах и выполняться ядром (1840). Машиночитаемый носитель может включать в себя одно или более запоминающих устройств или микросхем в соответствии с конкретными потребностями. Программное обеспечение может побудить ядро (1840) и, в частности, процессоры в нем (включая ЦП, ГП, ПЛИС и т.п.) выполнять определенные процессы или определенные части конкретных процессов, описанных в данном документе, включая определение структур данных, хранящихся в ОЗУ (1846), и изменение таких структур данных в соответствии с процессами, определенными программным обеспечением. Вдобавок или в качестве альтернативы компьютерная система может обеспечивать функциональность в результате логики, встроенной в аппаратную схему или иным образом воплощенной в схеме (например, ускоритель (1844)), которая может работать вместо или вместе с программным обеспечением для выполнения определенных процессов или отдельных частей конкретных процессов, описанных в данном документе. Ссылка на программное обеспечение может включать в себя логику и наоборот, где это уместно. Ссылка на машиночитаемый носитель может охватывать схему (например, интегральную схему (ИС)), хранящую программное обеспечение для выполнения, схему, воплощающую логику для выполнения, или и то, и другое, где это необходимо. Настоящее изобретение охватывает любую подходящую комбинацию аппаратного и программного обеспечения.[0180] By way of example, and not limitation, a computer system having an architecture (1800), and in particular a core (1840), may provide functionality as a result of the processor(s) (including CPUs, GPUs) , FPGAs, accelerators, etc.) execute software embodied on one or more tangible machine-readable media. Such computer-readable media can be media associated with user-accessible mass storage as described above, as well as certain core stores (1840) that are non-volatile in nature, such as internal mass storage (1847) or ROM (1845). Software implementing various embodiments of the present invention may be stored on such devices and executed by the kernel (1840). The computer-readable medium may include one or more memory devices or microchips, as appropriate. The software may cause the core (1840), and in particular the processors within it (including CPUs, GPUs, FPGAs, and the like), to execute certain processes or certain portions of the specific processes described herein, including the definition of data structures stored in RAM (1846), and modifying such data structures according to processes defined by the software. In addition or alternatively, a computer system may provide functionality as a result of logic embedded in or otherwise embodied in hardware circuitry (e.g., an accelerator (1844)) that can operate in place of or in conjunction with software to perform certain processes or parts of particular processes described in this document. The link to the software may include logic and vice versa where appropriate. Reference to a computer-readable medium may encompass a circuit (eg, an integrated circuit (IC)) storing software to be executed, a circuit embodying logic to be executed, or both, where appropriate. The present invention encompasses any suitable combination of hardware and software.

[0181] Хотя были описаны несколько примеров осуществления, возможны изменения, перестановки и различные заменяющие эквиваленты в объеме изобретения. Таким образом, специалисты в данной области техники смогут разработать многочисленные системы и способы, которые, хотя явно не показаны или не описаны здесь, воплощают принципы изобретения и, таким образом, находятся в пределах его сущности и объема.[0181] Although several embodiments have been described, variations, permutations, and various substitute equivalents are possible within the scope of the invention. Thus, those skilled in the art will be able to develop numerous systems and methods that, although not explicitly shown or described herein, embody the principles of the invention and thus fall within its spirit and scope.

Claims (42)

1. Способ декодирования геометрии облака точек в декодере облака точек, включающий в себя:1. A method for decoding the geometry of a point cloud in a point cloud decoder, including: прием, с помощью схемы обработки и из кодированного битового потока для облака точек, которое включает в себя набор точек в трехмерном (3D) пространстве, первой сигнальной информации, указывающей информацию о разбиении облака точек;receiving, by a processing circuit and from an encoded bitstream for a point cloud that includes a set of points in three-dimensional (3D) space, first signal information indicative of splitting information of the point cloud; определение, с помощью схемы обработки и из кодированного битового потока для облака точек, второй сигнальной информации на основе первой сигнальной информации, указывающей первое значение, причем вторая сигнальная информация указывает режим разбиения набора точек в трехмерном пространстве;determining, by the processing circuit and from the encoded bitstream for the point cloud, the second signaling information based on the first signaling information indicating the first value, the second signaling information indicating a splitting mode of the set of points in the three-dimensional space; определение, с помощью схемы обработки, режима разбиения набора точек в трехмерном пространстве на основе второй сигнальной информации; иdetermining, by means of the processing circuit, a mode of splitting the set of points in three-dimensional space based on the second signal information; And восстановление, с помощью схемы обработки, облака точек на основе режима разбиения.recovery, using a processing scheme, a point cloud based on the splitting mode. 2. Способ по п. 1, в котором определение режима разбиения дополнительно включает в себя:2. The method of claim 1, wherein determining the split mode further includes: определение режима разбиения как заранее заданного разбиения квадродерева и двоичного дерева (QtBt) на основе второй сигнальной информации, указывающей второе значение.determining a split mode as a predetermined quadtree-binary tree (QtBt) split based on the second signal information indicating the second value. 3. Способ по п. 1, дополнительно включающий в себя:3. The method of claim 1, further comprising: прием третьей сигнальной информации, которая указывает, что трехмерное пространство является асимметричным кубоидом; иreceiving third signal information that indicates that the three-dimensional space is an asymmetric cuboid; And определение размеров трехмерного пространства, о которых сигнализировано, вдоль осей х, у и z, на основе третьей сигнальной информации, указывающей первое значение.determining the signaled dimensions of the three-dimensional space along the x, y, and z axes based on the third signal information indicating the first value. 4. Способ по п. 1, в котором определение режима разбиения дополнительно включает в себя:4. The method of claim 1, wherein determining the split mode further includes: прием 3-битовой сигнальной информации для каждого из множества уровней разбиения в режиме разбиения, основанном на второй сигнальной информации, указывающей первое значение, причем 3-битовая сигнальная информация для каждого из множества уровней разбиения указывает направления разбиения вдоль осей х, у и z для соответствующего уровня разбиения в режиме разбиения.receiving 3-bit signaling information for each of the plurality of subdivision levels in a subdivision mode based on a second signaling information indicating a first value, wherein the 3-bit signaling information for each of the plurality of subdivision levels indicates the subdivision directions along the x, y, and z axes for the respective split level in split mode. 5. Способ по п. 4, в котором 3-битовую сигнальную информацию определяют на основе размеров упомянутого трехмерного пространства.5. The method of claim 4, wherein the 3-bit signaling information is determined based on the dimensions of said three-dimensional space. 6. Способ по п. 1, дополнительно включающий в себя:6. The method of claim 1, further comprising: определение режима разбиения на основе первой сигнальной информации, указывающей второе значение, причем режим разбиения включает в себя соответствующее разбиение октодерева в каждом из множества уровней разбиения в режиме разбиения.determining a split mode based on the first signaling information indicating the second value, the split mode including a corresponding split of the octree in each of the plurality of split levels in the split mode. 7. Способ декодирования геометрии облака точек в декодере облака точек, включающий в себя:7. A method for decoding the geometry of a point cloud in a point cloud decoder, including: прием, с помощью схемы обработки и из кодированного битового потока для облака точек, которое включает в себя набор точек в трехмерном (3D) пространстве, первой сигнальной информации, указывающей информацию о разбиении облака точек;receiving, by a processing circuit and from an encoded bitstream for a point cloud that includes a set of points in three-dimensional (3D) space, first signal information indicative of splitting information of the point cloud; определение, с помощью схемы обработки, режима разбиения набора точек в трехмерном пространстве на основе первой сигнальной информации, причем режим разбиения включает в себя множество уровней разбиения; иdetermining, by means of the processing circuit, a partitioning mode of a set of points in 3D space based on the first signal information, the partitioning mode including a plurality of partitioning levels; And восстановление, с помощью схемы обработки, облака точек на основе режима разбиения.recovery, using a processing scheme, a point cloud based on the splitting mode. 8. Способ по п. 7, в котором определение режима разбиения дополнительно включает в себя:8. The method of claim 7, wherein determining the split mode further includes: прием 3-битовой сигнальной информации для каждого из множества уровней разбиения в режиме разбиения, основанном на первой сигнальной информации, указывающей первое значение, причем 3-битовая сигнальная информация для каждого из множества уровней разбиения указывает направления разбиения вдоль осей х, у и z для соответствующего уровня разбиения в режиме разбиения.receiving 3-bit signaling information for each of the plurality of subdivision levels in a subdivision mode based on the first signaling information indicating the first value, wherein the 3-bit signaling information for each of the plurality of subdivision levels indicates the subdivision directions along the x, y, and z axes for the respective split level in split mode. 9. Способ по п. 8, в котором 3-битовую сигнальную информацию определяют на основе размеров трехмерного пространства.9. The method of claim 8, wherein the 3-bit signaling information is determined based on the dimensions of the three-dimensional space. 10. Способ по п. 7, в котором определение режима разбиения дополнительно включает в себя:10. The method of claim 7, wherein determining the split mode further includes: определение режима разбиения, который включает в себя соответствующее разбиение октодерева в каждом из множества уровней разбиения в режиме разбиения, основанном на первой сигнальной информации, указывающей второе значение.determining a split mode that includes a corresponding split of the octree in each of the plurality of split levels in the split mode based on the first signaling information indicating the second value. 11. Способ по п. 7, дополнительно включающий в себя:11. The method of claim 7, further comprising: прием второй сигнальной информации из кодированного битового потока для облака точек, причем вторая сигнальная информация указывает, что трехмерное пространство является асимметричным кубоидом, когда вторая сигнальная информация является первым значением, и вторая сигнальная информация указывает, что трехмерное пространство является симметричным кубоидом, когда вторая сигнальная информация является вторым значением.receiving second signaling information from the encoded bitstream for the point cloud, wherein the second signaling information indicates that the 3D space is an asymmetric cuboid when the second signaling information is a first value, and the second signaling information indicates that the 3D space is a symmetric cuboid when the second signaling information is is the second value. 12. Способ по п. 11, в котором определение режима разбиения дополнительно включает в себя:12. The method of claim 11, wherein determining the split mode further includes: на основе первой сигнальной информации, указывающей второе значение, и второй сигнальной информации, указывающей первое значение, определение режима разбиения для включения соответствующего разбиения октодерева в каждый из первых уровней разбиения в множестве уровней разбиения режима разбиения; иbased on the first signaling information indicating the second value and the second signaling information indicating the first value, determining a partition mode to include a corresponding partition of the octree in each of the first partition levels in the plurality of partition levels of the partition mode; And определение типа разбиения и направления разбиения на последнем уровне разбиения в множестве уровней разбиения режима разбиения;determining a partition type and a partition direction at the last partition level in the plurality of partition levels of the partition mode; при этом тип разбиения и направление разбиения на последнем уровне разбиения представляют собой:in this case, the type of partition and the direction of partition at the last level of partition are: разбиение Qt по осям x-y в случае dz = 0 < dx = dy,splitting Qt along the xy axes in the case d z = 0 < d x = d y , разбиение Qt по осям x-z в случае dy = 0 < dx = dz,splitting Qt along xz axes in case d y = 0 < d x = d z , разбиение Qt по осям y-z в случае dx = 0 < dy = dz,splitting Qt along the yz axes in the case d x = 0 < d y = d z , разбиение Bt по оси x в случае dy =0 ≤ dz < dx или dz = 0 ≤ dy < dx,splitting Bt along the x axis in case d y =0 ≤ d z < d x or d z = 0 ≤ d y < d x , разбиение Bt по оси y в случае dx =0 ≤ dz < dy или dz = 0 ≤ dx < dy иsplitting Bt along the y axis in case d x =0 ≤ d z < d y or d z = 0 ≤ d x < d y and разбиение Bt по оси z в случае dx =0 ≤ dy < dz или dy = 0 ≤ dx < dz,splitting Bt along the z axis in case d x =0 ≤ d y < d z or d y = 0 ≤ d x < d z , где dx, dy, и dz являются log2 размеров трехмерного пространства вдоль осей х, у и z, соответственно.where d x , d y , and d z are log2 dimensions of three-dimensional space along the x, y, and z axes, respectively. 13. Способ по п. 7, дополнительно включающий в себя:13. The method of claim 7, further comprising: определение второй сигнальной информации на основе первой сигнальной информации, указывающей первое значение, причем вторая сигнальная информация указывает, что трехмерное пространство является асимметричным кубоидом, когда вторая сигнальная информация указывает первое значение, и вторая сигнальная информация указывает, что трехмерное пространство является симметричным кубоидом, когда вторая сигнальная информация указывает второе значение; иdetermining the second signal information based on the first signal information indicating the first value, the second signal information indicating that the 3D space is an asymmetric cuboid when the second signal information indicates the first value, and the second signal information indicating that the 3D space is a symmetric cuboid when the second the signaling information indicates the second value; And определение размеров трехмерного пространства, о которых сигнализировано, вдоль осей х, у и z, на основе второй сигнальной информации, указывающей первое значение.determining the signaled dimensions of the three-dimensional space along the x, y, and z axes based on the second signal information indicating the first value. 14. Устройство для обработки данных облака точек, содержащее:14. A device for processing point cloud data, comprising: схему обработки, выполненную с возможностью осуществления способа по любому из пп. 1-13. processing scheme, configured to implement the method according to any one of paragraphs. 1-13.
RU2021132079A 2020-04-02 2021-03-25 Method and device for encoding point cloud RU2792020C1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US63/004,304 2020-04-02
US17/203,155 2021-03-16

Publications (1)

Publication Number Publication Date
RU2792020C1 true RU2792020C1 (en) 2023-03-15

Family

ID=

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2433562C2 (en) * 2006-03-30 2011-11-10 Кабусики Кайся Тосиба Image coding apparatus and method and image decoding apparatus and method
US20170347122A1 (en) * 2016-05-28 2017-11-30 Microsoft Technology Licensing, Llc Scalable point cloud compression with transform, and corresponding decompression
WO2019011636A1 (en) * 2017-07-13 2019-01-17 Interdigital Vc Holdings, Inc. A method and apparatus for encoding/decoding the geometry of a point cloud representing a 3d object
US20190394496A1 (en) * 2018-06-22 2019-12-26 Apple Inc. Point cloud geometry compression using octrees and binary arithmetic encoding with adaptive look-up tables
WO2020057530A1 (en) * 2018-09-18 2020-03-26 Huawei Technologies Co., Ltd. Coding method, device, system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2433562C2 (en) * 2006-03-30 2011-11-10 Кабусики Кайся Тосиба Image coding apparatus and method and image decoding apparatus and method
US20170347122A1 (en) * 2016-05-28 2017-11-30 Microsoft Technology Licensing, Llc Scalable point cloud compression with transform, and corresponding decompression
WO2019011636A1 (en) * 2017-07-13 2019-01-17 Interdigital Vc Holdings, Inc. A method and apparatus for encoding/decoding the geometry of a point cloud representing a 3d object
US20190394496A1 (en) * 2018-06-22 2019-12-26 Apple Inc. Point cloud geometry compression using octrees and binary arithmetic encoding with adaptive look-up tables
WO2020057530A1 (en) * 2018-09-18 2020-03-26 Huawei Technologies Co., Ltd. Coding method, device, system

Similar Documents

Publication Publication Date Title
US11582469B2 (en) Method and apparatus for point cloud coding
US11783512B2 (en) Attribute value of reconstructed position associated with plural original points
CN113519163B (en) Method, device and storage medium for compressing point cloud
US11451802B2 (en) Method and apparatus for point cloud coding
US11120581B2 (en) Method and apparatus for point cloud compression
JP7325534B2 (en) Method and apparatus for point cloud encoding
US11210813B2 (en) Method and apparatus for point cloud compression
CN111641834B (en) Method and device for point cloud coding, computer equipment and storage medium
CN112019845B (en) Method, device and storage medium for encoding point cloud
CN113615201B (en) Point cloud compression and decompression method and device
RU2792020C1 (en) Method and device for encoding point cloud
RU2799041C1 (en) Method and device for encoding point cloud
US11611775B2 (en) Method and apparatus for point cloud coding
US11948336B2 (en) Method and apparatus for point cloud coding
CN116368523A (en) UV coordinate encoding