Point cloud encoding method and device based on prediction tree, equipment and storage medium

By constructing a master prediction tree and inserting neighboring points in point cloud encoding, the problem of inaccurate prediction trees is solved, thus improving the efficiency and accuracy of point cloud encoding.

CN116248893BActive Publication Date: 2026-06-23TENCENT TECHNOLOGY (SHENZHEN) CO LTD

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
TENCENT TECHNOLOGY (SHENZHEN) CO LTD
Filing Date
2021-12-07
Publication Date
2026-06-23

AI Technical Summary

Technical Problem

Existing technologies may connect points that are far apart when constructing prediction trees, leading to inaccurate prediction trees and thus affecting the point cloud encoding effect.

Method used

By acquiring the target point cloud, a master prediction tree is constructed based on some master nodes, and the neighboring points of the remaining points are inserted into the master nodes to form the target prediction tree. This optimizes the connection relationship between local points and improves the accuracy of the prediction tree.

Benefits of technology

It improves the encoding efficiency and accuracy of target point clouds and optimizes the prediction effect of local point clouds.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116248893B_ABST
    Figure CN116248893B_ABST
Patent Text Reader

Abstract

The application provides a point cloud encoding method and device based on a prediction tree, equipment and a storage medium. The method comprises the following steps: obtaining a target point cloud, the target point cloud comprising N points; constructing a main prediction tree based on part of the main nodes in the N points; inserting the adjacent points of the main nodes in the remaining points into the main nodes to obtain a target prediction tree of the target point cloud for each main node in the main prediction tree; and encoding the target point cloud based on the target prediction tree. That is, the application takes the main nodes as the center, optimizes the connection relationship between the local points, and prevents the connection of points far away from each other. The target prediction tree obtained in this way realizes the optimal ordering of the local points, improves the construction accuracy of the target prediction tree. When prediction is performed based on the accurately constructed target prediction tree, the prediction accuracy of the target point cloud can be improved, and the encoding efficiency of the target point cloud is further improved.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] Embodiments of the present application relate to the technical field of video coding, and particularly relate to a point cloud coding method and device based on a prediction tree, an apparatus, and a storage medium. BACKGROUND

[0002] An object surface is collected by a collection device to form point cloud data, which includes hundreds of thousands or even more points. In a video production process, the point cloud data is transmitted in the form of a point cloud media file between a video production device and a point cloud coding device. However, such a large number of points poses a challenge to transmission, and therefore the video production device needs to compress the point cloud data before transmission.

[0003] As a way of point cloud coding, the prediction tree coding has a simple coding process and is widely used. However, when a prediction tree is constructed by the current technology, two points that are far apart may be connected together, resulting in an inaccurate prediction tree. When point cloud coding is performed based on the inaccurate prediction tree, the coding effect is poor. SUMMARY

[0004] The present application provides a point cloud coding method and device based on a prediction tree, which improves the accuracy of the construction of the prediction tree and thus improves the coding effect of the point cloud.

[0005] In a first aspect, the present application provides a point cloud coding method based on a prediction tree, comprising:

[0006] obtaining a target point cloud, the target point cloud including N points, the N being a positive integer greater than 1;

[0007] constructing a main prediction tree based on part of the main nodes in the N points;

[0008] inserting, for each main node in the main prediction tree, the neighboring points of the main node in the remaining points into the main node to obtain a target prediction tree of the target point cloud, the remaining points being the points other than the part of the main nodes in the N points;

[0009] coding the target point cloud based on the target prediction tree.

[0010] In a second aspect, the present application provides a point cloud decoding method based on a prediction tree, comprising:

[0011] decoding a code stream to obtain a target prediction tree of a target point cloud, the target point cloud including N points, the N being a positive integer greater than 1;

[0012] determining the main nodes and the slave nodes in the target prediction tree;

[0013] decoding the main nodes by using a first decoding mode;

[0014] decode the slave node by using a second decoding manner, the second decoding manner being different from the first decoding manner.

[0015] In a third aspect, a point cloud encoding apparatus based on a prediction tree is provided, comprising:

[0016] An obtaining unit is configured to obtain a target point cloud, the target point cloud comprising N points, N being a positive integer greater than 1;

[0017] A first constructing unit is configured to construct a master prediction tree based on part of master nodes in the N points;

[0018] A second constructing unit is configured to insert, for each master node in the master prediction tree, neighboring points of the master node in remaining points into the master node to obtain a target prediction tree of the target point cloud, the remaining points being points other than the part of master nodes in the N points;

[0019] An encoding unit is configured to encode the target point cloud based on the target prediction tree.

[0020] In a fourth aspect, a point cloud decoding apparatus based on a prediction tree is provided, comprising:

[0021] A decoding unit is configured to decode a bitstream to obtain a target prediction tree of a target point cloud, the target point cloud comprising N points, N being a positive integer greater than 1;

[0022] A determining unit is configured to determine master nodes and slave nodes in the target prediction tree;

[0023] The decoding unit is further configured to decode the master nodes by using a first decoding manner, and decode the slave nodes by using a second decoding manner, the second decoding manner being different from the first decoding manner.

[0024] In a fifth aspect, an encoding device is provided, comprising a processor and a memory. The memory is configured to store a computer program, and the processor is configured to invoke and run the computer program stored in the memory to execute the method in the first aspect or any implementation manner thereof.

[0025] In a sixth aspect, a decoding device is provided, comprising a processor and a memory. The memory is configured to store a computer program, and the processor is configured to invoke and run the computer program stored in the memory to execute the method in the second aspect or any implementation manner thereof.

[0026] In a seventh aspect, a codec system is provided, comprising the encoding device in the fifth aspect and the decoding device in the sixth aspect.

[0027] In an eighth aspect, a chip is provided for implementing the method in any one of the first aspect to the second aspect or each implementation manner thereof. Specifically, the chip comprises a processor configured to invoke and run a computer program from a memory, so that a device installed with the chip performs the method in any one of the first aspect to the second aspect or each implementation manner thereof.

[0028] In a ninth aspect, a computer readable storage medium is provided for storing a computer program, the computer program causing a computer to perform the method in any one of the first aspect to the second aspect or each implementation manner thereof.

[0029] In a tenth aspect, a computer program product is provided, comprising computer program instructions, the computer program instructions causing a computer to perform the method in any one of the first aspect to the second aspect or each implementation manner thereof.

[0030] In an eleventh aspect, a computer program is provided, which, when running on a computer, causes the computer to perform the method in any one of the first aspect to the second aspect or each implementation manner thereof.

[0031] In a twelfth aspect, an electronic device is provided, comprising a processor and a memory, the memory being configured to store a computer program, and the processor being configured to invoke and run the computer program stored in the memory to perform the method in the first aspect and / or the second aspect.

[0032] To sum up, the present application obtains a target point cloud, the target point cloud comprising N points, the N being a positive integer greater than 1; constructs a main prediction tree based on part of main nodes in the N points; inserts neighboring points of the main nodes in the remaining points into the main nodes to obtain a target prediction tree of the target point cloud, the remaining points being points other than the part of main nodes in the N points; and encodes the target point cloud based on the target prediction tree. That is, the present application first constructs a main prediction tree using part of points of a target point cloud, and then inserts neighboring points of each main node in the main prediction tree into the main node to obtain a target prediction tree. That is, the present application optimizes the connection relationship between local points with the main node as the center, and prevents points far away from each other from being connected. The target prediction tree obtained in this way realizes local optimal ordering, and improves the construction accuracy of the target prediction tree. When prediction is performed based on the accurately constructed target prediction tree, the prediction accuracy of the target point cloud can be improved, and the encoding efficiency of the target point cloud is further improved. BRIEF DESCRIPTION OF DRAWINGS

[0033] To more clearly illustrate the technical solutions in the embodiments of the present invention, the accompanying drawings used in the description of the embodiments will be briefly introduced below. Obviously, the accompanying drawings described below are only some embodiments of the present invention. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.

[0034] Figure 1 This is a schematic block diagram of a point cloud encoding and decoding system according to an embodiment of this application;

[0035] Figure 2 This is a schematic block diagram of the coding framework provided in the embodiments of this application;

[0036] Figure 3 This is a schematic block diagram of the decoding framework provided in the embodiments of this application;

[0037] Figure 4 This is a schematic diagram of a point cloud bounding box;

[0038] Figure 5 This is a schematic diagram of an octree encoding method;

[0039] Figure 6 This is a schematic diagram of a prediction tree;

[0040] Figure 7 A flowchart illustrating a point cloud encoding method based on a prediction tree, as provided in an embodiment of this application;

[0041] Figure 8 This is a schematic diagram of a master prediction tree involved in this application;

[0042] Figure 9 This is a schematic diagram of a target prediction tree involved in this application;

[0043] Figure 10 A flowchart illustrating a point cloud decoding method based on a prediction tree, as provided in an embodiment of this application;

[0044] Figure 11 This is a schematic block diagram of a point cloud encoding device based on a prediction tree according to an embodiment of this application;

[0045] Figure 12 This is a schematic block diagram of a point cloud decoding device based on a prediction tree according to an embodiment of this application;

[0046] Figure 13 This is a schematic block diagram of the electronic device provided in the embodiments of this application. Detailed Implementation

[0047] The technical solutions in the embodiments of this application will now be described with reference to the accompanying drawings.

[0048] It should be understood that, in the embodiments of the present invention, "B corresponding to A" means that B is associated with A. In one implementation, B can be determined based on A. However, it should also be understood that determining B based on A does not mean determining B solely based on A; B can also be determined based on A and / or other information.

[0049] In the description of this application, unless otherwise stated, "a plurality of" means two or more.

[0050] Furthermore, to facilitate a clear description of the technical solutions in the embodiments of this application, the terms "first" and "second" are used in the embodiments of this application to distinguish identical or similar items with essentially the same function and effect. Those skilled in the art will understand that the terms "first" and "second" do not limit the quantity or execution order, and that "first" and "second" are not necessarily different. To facilitate understanding of the embodiments of this application, the relevant concepts involved in the embodiments of this application are briefly introduced as follows:

[0051] A point cloud is a set of discrete points in space that are randomly distributed and represent the spatial structure and surface properties of a three-dimensional object or scene.

[0052] Point cloud data is a specific record form of a point cloud. Points in a point cloud can include their location information and attribute information. For example, the location information of a point can be its three-dimensional coordinates. This location information can also be referred to as the point's geometric information. Attribute information can include color information and / or reflectivity, etc. For example, the color information can be information in any color space. For example, the color information can be (RGB). Alternatively, the color information can be luminance / chromaticity (YcbCr, YUV) information. For example, Y represents luminance (Luma), Cb (U) represents blue color difference, Cr (V) represents red, and U and V represent chromaticity (Chroma) used to describe color difference information. For example, a point cloud obtained based on laser measurement principles can include the point's three-dimensional coordinate information and the point's laser reflection intensity. Similarly, a point cloud obtained based on photogrammetry principles can include the point's three-dimensional coordinate information and the point's color information. For example, point clouds can be obtained by combining laser measurement and photogrammetry principles. The points in the point cloud may include the three-dimensional coordinate information of the points, the laser reflection intensity of the points, and the color information of the points.

[0053] Point cloud data can be acquired through at least one of the following methods: (1) Computer equipment generation. Computer equipment can generate point cloud data based on virtual three-dimensional objects and virtual three-dimensional scenes. (2) 3D (3-Dimension) laser scanning. Point cloud data of static real-world three-dimensional objects or three-dimensional scenes can be acquired through 3D laser scanning, with millions of point cloud data acquired per second. (3) 3D photogrammetry. Point cloud data of real-world visual scenes can be acquired by collecting data from real-world visual scenes using 3D photography equipment (i.e., a set of cameras or a camera device with multiple lenses and sensors). Point cloud data of dynamic real-world three-dimensional objects or three-dimensional scenes can be obtained through 3D photography. (4) Obtaining point cloud data of biological tissues and organs through medical equipment. In the medical field, point cloud data of biological tissues and organs can be obtained through medical equipment such as magnetic resonance imaging (MRI), computed tomography (CT), and electromagnetic positioning information.

[0054] Point clouds can be classified into dense point clouds and sparse point clouds according to the acquisition method.

[0055] Point clouds are classified according to the temporal type of the data as follows:

[0056] The first static point cloud: that is, the object is stationary and the device acquiring the point cloud is also stationary;

[0057] The second type of dynamic point cloud: The object is in motion, but the device acquiring the point cloud is stationary;

[0058] The third type of dynamic point cloud acquisition: The device acquiring the point cloud is in motion.

[0059] Point clouds can be divided into two main categories based on their uses:

[0060] Category 1: Machine-perceived point cloud, which can be used in scenarios such as autonomous navigation systems, real-time inspection systems, geographic information systems, visual sorting robots, and disaster relief robots;

[0061] Category 2: Human eye-perceived point clouds, which can be used in point cloud application scenarios such as digital cultural heritage, free-viewpoint broadcasting, 3D immersive communication, and 3D immersive interaction.

[0062] Figure 1 This is a schematic block diagram of a point cloud encoding / decoding system according to an embodiment of this application. It should be noted that... Figure 1 This is merely an example; the point cloud encoding / decoding system in this application includes, but is not limited to, [other examples]. Figure 1 As shown. Figure 1As shown, the point cloud encoding / decoding system 100 includes an encoding device 110 and a decoding device 120. The encoding device encodes (can be understood as compressing) the point cloud data to generate a bitstream, and transmits the bitstream to the decoding device. The decoding device decodes the bitstream generated by the encoding device to obtain the decoded point cloud data.

[0063] The encoding device 110 in this application embodiment can be understood as a device with point cloud encoding function, and the decoding device 120 can be understood as a device with point cloud decoding function. That is, the encoding device 110 and the decoding device 120 in this application embodiment include a wider range of devices, such as smartphones, desktop computers, mobile computing devices, laptops (e.g., laptop computers), tablet computers, set-top boxes, televisions, cameras, display devices, digital media players, video game consoles, vehicle computers, etc.

[0064] In some embodiments, encoding device 110 may transmit encoded point cloud data (such as a bitstream) to decoding device 120 via channel 130. Channel 130 may include one or more media and / or means capable of transmitting encoded point cloud data from encoding device 110 to decoding device 120.

[0065] In one example, channel 130 includes one or more communication media that enable encoding device 110 to directly transmit encoded point cloud data to decoding device 120 in real time. In this example, encoding device 110 can modulate the encoded point cloud data according to a communication standard and transmit the modulated point cloud data to decoding device 120. The communication media includes wireless communication media, such as radio frequency spectrum; optionally, the communication media may also include wired communication media, such as one or more physical transmission lines.

[0066] In another example, channel 130 includes a storage medium that can store point cloud data encoded by encoding device 110. The storage medium includes various local access data storage media, such as optical discs, DVDs, flash memory, etc. In this example, decoding device 120 can retrieve the encoded point cloud data from this storage medium.

[0067] In another example, channel 130 may include a storage server that stores the point cloud data encoded by encoding device 110. In this example, decoding device 120 can download the stored encoded point cloud data from the storage server. Optionally, the storage server can store the encoded point cloud data and transmit the encoded point cloud data to decoding device 120, such as a web server (e.g., for a website), a file transfer protocol (FTP) server, etc.

[0068] In some embodiments, the encoding device 110 includes a point cloud encoder 112 and an output interface 113. The output interface 113 may include a modulator / demodulator (modem) and / or a transmitter.

[0069] In some embodiments, in addition to the point cloud encoder 112 and the output interface 113, the encoding device 110 may also include a video source 111.

[0070] The video source 111 may include at least one of a video acquisition device (e.g., a video camera), a video archive, a video input interface, and a computer graphics system, wherein the video input interface is used to receive point cloud data from a video content provider, and the computer graphics system is used to generate the point cloud data.

[0071] The point cloud encoder 112 encodes the point cloud data from the video source 111 to generate a bitstream. The point cloud encoder 112 transmits the encoded point cloud data directly or indirectly to the decoding device 120 via the output interface 113. The encoded point cloud data can also be stored on a storage medium or a storage server for subsequent reading by the decoding device 120.

[0072] In some embodiments, the decoding device 120 includes an input interface 121 and a point cloud decoder 122.

[0073] In some embodiments, in addition to the input interface 121 and the point cloud decoder 122, the decoding device 120 may also include a display device 123.

[0074] The input interface 121 includes a receiver and / or a modem. The input interface 121 can receive encoded point cloud data through channel 130.

[0075] The point cloud decoder 122 is used to decode the encoded point cloud data to obtain the decoded point cloud data, and transmit the decoded point cloud data to the display device 123.

[0076] Display device 123 displays the decoded point cloud data. Display device 123 may be integrated with decoding device 120 or external to decoding device 120. Display device 123 may include various display devices, such as liquid crystal display (LCD), plasma display, organic light-emitting diode (OLED) display, or other types of display devices.

[0077] also, Figure 1 This is merely an example; the technical solutions in the embodiments of this application are not limited to... Figure 1 For example, the technology of this application can also be applied to one-sided point cloud encoding or one-sided point cloud decoding.

[0078] Since point clouds are collections of massive points, storing them not only consumes a lot of memory but also hinders transmission. Furthermore, there is not enough bandwidth to support the direct transmission of point clouds at the network layer without compression. Therefore, compressing point clouds is essential.

[0079] Currently, point clouds can be compressed using a point cloud encoding framework.

[0080] Point cloud coding frameworks can be either the Geometry Point Cloud Compression (G-PCC) or Video Point Cloud Compression (V-PCC) framework provided by the Moving Picture Experts Group (MPEG), or the AVS-PCC framework provided by the Audio Video Standard (AVS) organization. Both G-PCC and AVS-PCC are designed for static, sparse point clouds, and their coding frameworks are largely the same. The G-PCC framework can be used to compress first-type static point clouds and third-type dynamically acquired point clouds, while the V-PCC framework can be used to compress second-type dynamic point clouds. The G-PCC framework is also known as the point cloud codec TMC13, and the V-PCC framework is also known as the point cloud codec TMC2.

[0081] The following describes the applicable encoding and decoding frameworks for the embodiments of this application using the G-PCC encoding and decoding framework.

[0082] Figure 2 This is a schematic block diagram of the coding framework provided in the embodiments of this application.

[0083] like Figure 2 As shown, the encoding framework 200 can acquire the location information (also known as geometric information or geometric location) and attribute information of the point cloud from the acquisition device. The encoding of the point cloud includes location encoding and attribute encoding.

[0084] The location encoding process includes: preprocessing the original point cloud by performing coordinate transformation and quantization to remove duplicate points; and then encoding the octree to form a geometric bitstream.

[0085] The attribute encoding process includes: using the reconstructed information of the location information and the true values ​​of the attribute information of the given input point cloud, selecting one of three prediction modes to perform point cloud prediction, quantizing the prediction results, and performing arithmetic encoding to form an attribute code stream.

[0086] like Figure 2 As shown, position encoding can be implemented using the following units:

[0087] Coordinate translation and quantization unit 201, octree construction unit 202, octree reconstruction unit 203, entropy coding unit 204.

[0088] The coordinate translation and quantization unit 201 can be used to transform the world coordinates of points in a point cloud into relative coordinates and quantize the coordinates, which can reduce the number of coordinates; after quantization, previously different points may be assigned the same coordinates.

[0089] The octree building unit 202 can encode the position information of quantized points using octree encoding. For example, the point cloud can be divided into octrees, so that the position of a point can correspond one-to-one with the position of the octree. By counting the positions of points in the octree and marking their flags as 1, geometric encoding can be performed.

[0090] The octree reconstruction unit 203 is used to reconstruct the geometric position of each point in the point cloud, thus obtaining the reconstructed geometric position of the point.

[0091] Entropy coding unit 204 can use entropy coding to perform arithmetic coding on the position information output by octree construction unit 202, that is, use arithmetic coding to generate a geometric bitstream from the position information output by octree construction unit 202; the geometric bitstream can also be called a geometric bitstream.

[0092] Attribute encoding can be implemented through the following units:

[0093] The system includes a spatial transformation unit 210, an attribute interpolation unit 211, an attribute prediction unit 212, a residual quantization unit 213, and an entropy coding unit 214.

[0094] The spatial transformation unit 210 can be used to transform the RGB color space of points in a point cloud into YCbCr format or other formats.

[0095] The attribute interpolation unit 211 can be used to transform the attribute information of points in a point cloud to minimize attribute distortion. For example, the attribute interpolation unit 211 can be used to obtain the true values ​​of the attribute information of the points. For example, the attribute information may be the color information of the points.

[0096] The attribute prediction unit 212 can be used to predict the attribute information of points in the point cloud to obtain the predicted value of the point's attribute information, and then obtain the residual value of the point's attribute information based on the predicted value of the point's attribute information. For example, the residual value of the point's attribute information can be the actual value of the point's attribute information minus the predicted value of the point's attribute information.

[0097] The residual quantization unit 213 can be used to quantize the residual value of the attribute information of the point.

[0098] Entropy coding unit 214 can use zero-run-length coding to entropy code the residual values ​​of the attribute information of the points to obtain the attribute code stream. The attribute code stream can be bitstream information.

[0099] Combination Figure 2 The main operations and processing for geometric structure encoding in this application are as follows:

[0100] (1) Pre-processing: This includes coordinate transformation and voxelization. By scaling and translation, the point cloud data in 3D space is converted into integer form, and its smallest geometric position is moved to the origin.

[0101] (2) Geometry encoding: Geometry encoding includes two modes that can be used under different conditions.

[0102] (a) Octree-based geometric coding: An octree is a tree-like data structure that uniformly divides a predefined bounding box in 3D space partitioning, with each node having eight child nodes. By using '1' and '0' to indicate whether each child node of the octree is occupied, occupancy code information is obtained as the bitstream of point cloud geometric information.

[0103] (b) Trisoup-based geometric coding: The point cloud is divided into blocks of a certain size, and the intersection points of the point cloud surface with the edges of the blocks are located and triangles are constructed. Geometric information is compressed by encoding the intersection points.

[0104] (3) Geometry quantization: The fineness of quantization is usually determined by the quantization parameter (QP). A larger QP value means that coefficients with a wider range of values ​​will be quantized into the same output, which usually leads to greater distortion and a lower bit rate. Conversely, a smaller QP value means that coefficients with a smaller range of values ​​will be quantized into the same output, which usually leads to less distortion and a higher bit rate. In point cloud coding, quantization is performed directly on the coordinate information of the points.

[0105] (4) Geometric entropy encoding: Statistical compression encoding is performed on the occupancy code information of the octet, and finally a binary (0 or 1) compressed bitstream is output. Statistical encoding is a lossless encoding method that can effectively reduce the bit rate required to express the same signal. A commonly used statistical encoding method is context-adaptive binary arithmetic coding (CABAC).

[0106] The main operations and processing for attribute information encoding are as follows:

[0107] (1) Attribute Recoloring: In lossy encoding, after the geometric information is encoded, the encoding end needs to decode and reconstruct the geometric information, that is, restore the coordinate information of each point in the 3D point cloud. The attribute information of one or more neighboring points in the original point cloud is used as the attribute information of the reconstructed point.

[0108] (2) Attribute prediction and attribute transformation:

[0109] (a) Prediction: Based on information such as distance or spatial relationships, determine the neighboring points of the point to be coded as prediction points among the coded points, and calculate the predicted value of the point according to the set criteria. Calculate the difference between the current point attribute value and the predicted value as the residual, and quantize, transform (optionally) and entropy encode the residual information.

[0110] (b) Transformation: The attribute information is grouped and transformed using transformation methods such as Discrete Cosine Transform (DCT) and Haar Transform, and the transformation coefficients are quantized. The attribute reconstruction value is obtained after inverse quantization and inverse transformation. The attribute residual is obtained by calculating the difference between the original attribute and the attribute reconstruction value and then quantizing it. The quantized transformation coefficients and attribute residuals are then encoded.

[0111] (3) Attribute quantization: The fineness of quantization is usually determined by the quantization parameter (QP). In predictive coding, the residual value is quantized and then entropy coding is performed; in transform coding, the transform coefficients are quantized and then entropy coding is performed.

[0112] (4) Attribute entropy coding: The quantized attribute residual signal or transform coefficients are generally compressed using run-length coding and arithmetic coding. The corresponding coding mode, quantization parameters and other information are also encoded using an entropy encoder.

[0113] From the above Figure 2 As can be seen, the encoding framework 200 mainly includes two parts in terms of function: a position encoding module and an attribute encoding module. The position encoding module is used to encode the position information of the point cloud to form a geometric code stream, and the attribute encoding module is used to encode the attribute information of the point cloud to form an attribute code stream. This application mainly involves the encoding of attribute information.

[0114] Figure 3 This is a schematic block diagram of the decoding framework provided in the embodiments of this application.

[0115] like Figure 3 As shown, the decoding framework 300 can acquire the bitstream of the point cloud from the encoding device and obtain the position and attribute information of the points in the point cloud through the parsing code. Point cloud decoding includes position decoding and attribute decoding.

[0116] The location decoding process includes: performing arithmetic decoding on the geometric bitstream; constructing and merging octrees to reconstruct the point location information; and performing coordinate transformation on the reconstructed point location information to obtain the point's actual location information. The point's location information can also be referred to as its geometric information.

[0117] The attribute decoding process includes: obtaining the residual values ​​of the attribute information of points in the point cloud by parsing the attribute code stream; obtaining the residual values ​​of the attribute information of points by inverse quantization; selecting one of three prediction modes to predict the point cloud based on the reconstructed information of the position information of points obtained in the position decoding process, and obtaining the reconstructed values ​​of the attribute information of points; and performing color space inverse conversion on the reconstructed values ​​of the attribute information of points to obtain the decoded point cloud.

[0118] like Figure 3 As shown, position decoding can be implemented using the following unit:

[0119] Entropy decoding unit 301, octree reconstruction unit 302, inverse coordinate quantization unit 303, and inverse coordinate translation unit 304.

[0120] Attribute encoding can be implemented through the following units:

[0121] Entropy decoding unit 310, inverse quantization unit 311, attribute reconstruction unit 312, and inverse space transformation unit 313.

[0122] Decompression is the reverse process of compression. Similarly, the functions of each unit in the decoding frame 300 can be found in the functions of the corresponding units in the encoding frame 200.

[0123] At the decoding end, after obtaining the compressed bitstream, the decoder first performs entropy decoding to obtain various mode information, quantized geometric information, and attribute information. First, the geometric information undergoes inverse quantization to obtain the reconstructed 3D point position information. On the other hand, the attribute information undergoes inverse quantization to obtain residual information, and the reference signal is confirmed according to the adopted transform mode to obtain the reconstructed attribute information. This reconstructed attribute information is then sequentially matched with the geometric information to generate the output reconstructed point cloud data.

[0124] It should be noted that the prediction, quantization, encoding, filtering, and other mode information or parameter information determined during the encoding of attribute information at the encoding end are carried in the attribute bitstream when necessary. The decoding end determines the same prediction, quantization, encoding, filtering, and other mode information or parameter information as the encoding end by parsing the attribute bitstream and analyzing existing information, thereby ensuring that the reconstructed values ​​of the attribute information obtained at the encoding end and the reconstructed values ​​of the attribute information obtained at the decoding end are the same.

[0125] The above describes the basic process of a point cloud codec based on the G-PCC encoding and decoding framework. With the development of technology, some modules or steps of this framework or process may be optimized. This application applies to the basic process of the point cloud codec based on the G-PCC encoding and decoding framework, but is not limited to this framework and process.

[0126] Preprocessing

[0127] First, determine the origin and dimensions of the bounding box. Specifically, the floating-point coordinates of the k-th points of the input point cloud are represented as (x... k , y k , z k ), k=0, …, K-1, where K is the number of points in the point cloud, and the coordinates of the points. )and The following is represented:

[0128]

[0129]

[0130]

[0131]

[0132]

[0133]

[0134] function min( ) and max( This indicates taking the minimum and maximum values ​​of the current input.

[0135] A bounding box represents the smallest cuboid that contains all points in the input point cloud, such as... Figure 4 As shown.

[0136] Origin of the bounding box The following can be calculated:

[0137]

[0138]

[0139]

[0140] The dimensions of the bounding box in the x, y, z directions can be calculated as follows:

[0141]

[0142]

[0143]

[0144] The int(s) function mentioned above is the floor function, and the floor(s) function returns the largest integer value less than or equal to s.

[0145] Octree coding

[0146] An octree is a tree-like data structure, currently primarily used in G-PCC or AVS-PCC for point cloud partitioning. For point cloud data in 3D space, the octree partitioning method uniformly divides a predefined bounding box hierarchically, with each node having eight child nodes. The occupancy of each child node is indicated by '1' and '0', such as... Figure 5 As shown, the occupancy code information is obtained as the bitstream of point cloud geometric information.

[0147] The octree construction is based on Morton's order, which involves converting the 3D coordinates of point cloud data into corresponding Morton codes by querying the Morton order table. The corresponding points at each level of the octree are obtained based on the order of each Morton code. Currently, mainstream point cloud encoding techniques utilize octree partitioning to represent point cloud data, employing different processing flows for geometric and attribute information.

[0148] The Traveling Salesman Problem (TSP) is a classic combinatorial optimization problem. The classic TSP can be described as follows: A salesman needs to travel to several cities to sell goods. Starting from one city, the salesman needs to visit all cities and return to the starting point. The goal is to choose the route that minimizes the total distance traveled. From a graph theory perspective, this problem is essentially finding the cycle with the minimum weight in a weighted complete undirected graph. Since the feasible solution is a permutation of all vertices, a combinatorial explosion occurs as the number of vertices increases, making it an NP-complete problem. Due to its wide applications in transportation, circuit board design, and logistics, it has been extensively studied by scholars both domestically and internationally. Early researchers used exact algorithms to solve this problem, commonly including branch and bound, linear programming, and dynamic programming. However, as the problem size increases, exact algorithms become inadequate. Therefore, later research focused on approximate or heuristic algorithms, such as genetic algorithms, simulated annealing, ant colony optimization, tabu search, greedy algorithms, and neural networks.

[0149] For example, when modeling the TSP using an undirected weighted graph, cities are the vertices of the graph, roads are the edges, and the distance along a road is the length of the edge. It is a minimization problem where the starting and ending points are both at a specific vertex, and each vertex is visited exactly once. Typically, this model is a complete graph (i.e., every pair of vertices is connected by an edge). If there is no path between two cities, adding a very long edge can complete the graph without affecting the computation of the optimal circuit.

[0150] In symmetric TSP problems, the round-trip distance between two cities is equal, forming an undirected graph. This symmetry reduces the number of solutions by half. In asymmetric TSP problems, not all bidirectional paths exist, or the round-trip distances are different, forming a directed graph. Traffic accidents, one-way streets, and different airfares for departure and arrival in certain cities are examples that break this symmetry.

[0151] Predictive coding techniques

[0152] In some embodiments, TSP can be used to generate predictive relationships between corresponding signals. For example... Figure 6 As shown, all points in the point cloud are linked together to form a single prediction tree, with each point being predicted based on the signal value of its preceding point. This method, as an option for point cloud signal prediction, can be configured to apply to the entire original point cloud data, or to octree child nodes or subsets of point cloud data obtained in other ways.

[0153] In some embodiments, a prediction tree is built using distance search between points. Each point is connected to all other points, and the connection indicates the number of points linked to each point and one of four prediction patterns, as follows:

[0154] 1) No prediction;

[0155] 2) Prediction is based on the parent point, i.e., the previous point;

[0156] 3) Prediction using parent and grandparent points;

[0157] 4) Use parent, grandparent and grand-grandparent points for prediction.

[0158] Currently, the main methods for constructing prediction trees include the following two:

[0159] The first method involves searching for the nearest neighbor in the set of already encoded nodes, following the encoding order. If the number of child nodes of the nearest neighbor is less than a certain threshold, the node to be encoded is added to the child nodes of the already encoded node; otherwise, the search continues. This method relies on the encoding order of the point cloud when constructing the prediction tree. When the encoding order is not based on distance, the adjacent points in the constructed prediction tree are not necessarily the points with the smallest distance, leading to inaccurate predictions and poor encoding performance.

[0160] The second method is to use a global search approach, where the currently encoded node searches for the nearest child node in the entire set of nodes to be encoded. However, in this second method, the encoded node is removed from the searched node set, and the last linked node may be linked to an extremely distant encoded node, resulting in outliers.

[0161] To address the aforementioned technical issues, this application constructs a master prediction tree based on a subset of master nodes in the target point cloud. For each master node in the master prediction tree, neighboring points from the remaining points in the target point cloud are inserted into the master node's position, resulting in the target prediction tree for the target point cloud. In constructing the target prediction tree, this application first builds the master prediction tree and then inserts points from the remaining points near the master nodes into the master nodes. This leverages the local density characteristics of point cloud data to improve the utilization efficiency of points in dense areas, enhance the prediction accuracy of local point clouds, and improve the encoding efficiency of the target point cloud.

[0162] The technical solutions of the embodiments of this application will be described in detail below through some examples. The following embodiments can be combined with each other, and the same or similar concepts or processes may not be described again in some embodiments.

[0163] First, taking the encoding end as an example, the point cloud encoding method based on prediction tree provided in the embodiments of this application will be described.

[0164] Figure 7 This is a flowchart illustrating a point cloud encoding method based on a prediction tree, provided in one embodiment of this application. The executing entity of this method is a device with point cloud encoding capabilities, such as a point cloud encoding device, which can be the point cloud encoding equipment described above or a part thereof. For ease of description, the following embodiment uses a point cloud encoding device as an example. Figure 4 As shown, the method in this embodiment includes:

[0165] S701, Obtain the target point cloud.

[0166] The target point cloud consists of N points, where N is a positive integer greater than 1.

[0167] The target point cloud in this application embodiment can refer to the overall point cloud or a partial point cloud, such as a partial point cloud obtained through an octree or other means, or a subset of the overall point cloud.

[0168] Point cloud encoding devices can acquire target point clouds in the following ways:

[0169] Method 1: If the point cloud encoding device has a point cloud acquisition function, then the target point cloud can be acquired by the point cloud encoding device.

[0170] Method 2: The target point cloud is obtained by the point cloud encoding device from other storage devices. For example, the point cloud acquisition device stores the acquired target point cloud in the storage device, and the point cloud encoding device reads the target point cloud from the storage device.

[0171] Method 3: The target point cloud mentioned above is obtained by the point cloud encoding device from the point cloud acquisition device. For example, the point cloud acquisition device sends the acquired target point cloud to the point cloud encoding device.

[0172] In some embodiments, if the target point cloud is a whole point cloud, the point cloud encoding device will obtain the whole point cloud in the above manner as the research object of this application for subsequent encoding steps.

[0173] In some embodiments, if the point cloud is a partial point cloud, the point cloud encoding device will divide the obtained overall point cloud to obtain a partial point cloud.

[0174] In one example, a point cloud encoding device may use an octree or quadtree to divide the overall point cloud, and take the part of the point cloud corresponding to a node as the research object of this application.

[0175] In another example, the point cloud encoding device divides the point cloud according to a fixed number of points, for example, dividing the overall point cloud into a point cloud set every 10,000 points, and determining a point cloud set as the target point cloud.

[0176] In another example, the points are divided according to the sorting characteristics of the overall point cloud. For example, the overall point cloud is sorted according to the Morton order to obtain the Morton order of the overall point cloud. In the Morton order of the overall point cloud, the positions where the Morton code changes and the number of points is greater than the threshold are divided to obtain the target point cloud.

[0177] After obtaining the target point cloud using the above method, geometric encoding and attribute encoding are performed on the points in the target point cloud. For example, geometric encoding is performed first, and then attribute encoding is performed after the geometric encoding is completed.

[0178] The attribute information of the aforementioned target point cloud includes color attributes, reflectivity attributes, normal vector attributes, material attributes, etc. This application does not impose any limitations on these attributes.

[0179] In this embodiment of the application, the target point cloud is encoded based on a prediction tree. Therefore, before encoding the target point cloud, a target prediction tree for the target point cloud is first constructed.

[0180] S702. Construct the master prediction tree based on some of the master nodes among the N points.

[0181] This application designates the point among N points used to construct the main prediction tree as the master node; that is, each point in the main prediction tree is designated as the master node.

[0182] Optionally, the aforementioned master nodes can be any of the N points in the target point cloud.

[0183] Optionally, the aforementioned master nodes are the points that are relatively far apart from each other among the N points in the target point cloud.

[0184] This application first constructs a master prediction tree using some master nodes of the target point cloud. Using this master prediction tree as the backbone, points near each master node in the remaining points are inserted into the corresponding master node of the prediction tree. In this way, the master node and its neighboring points form a small set, and the optimal sorting of points is achieved in this small set, thereby improving the prediction accuracy of the local point cloud.

[0185] The methods for constructing the master prediction tree based on a subset of the N master nodes in S702 above include, but are not limited to, the following:

[0186] Method 1 involves constructing the master prediction tree using a distance search method, specifically including the following steps:

[0187] S702-A1: Take the preset starting point as the first master node, search for the K points closest to the first master node among the N points, select a first point from the K points and connect it to the first master node, and remove the K points from the N points to obtain the search point set.

[0188] S702-A2: Take the first point as the new master node, continue to search for the K points closest to the master node in the search point set, and select one of the K points as the first point to connect with the master node;

[0189] S702-A3: Remove K points from the search point set to obtain a new search point set. Determine if the new search point set is empty. If it is not empty, return to execute S702-A2 above. If it is empty, end the search and obtain the master prediction tree.

[0190] This application does not impose specific restrictions on the aforementioned preset starting point.

[0191] Optionally, the starting point mentioned above is the origin of the bounding box of the overall point cloud.

[0192] Optionally, the starting point mentioned above is a vertex of the bounding box of the overall point cloud.

[0193] Optionally, if the target point cloud is part of the overall point cloud, the starting point can be a vertex of the bounding box of the target point cloud, or the origin.

[0194] Optionally, the starting point mentioned above is the first point in the target point cloud.

[0195] In this first method, starting from the initial point (the initial point is taken as the first master node), a search is performed among the N points in the target point cloud based on distance. Specifically, the distance from each of the N points to the first master node is calculated, resulting in the K points with the smallest distances. A first point 1 is selected from these K points and connected to the first master node. These K points are then removed from the N points, resulting in a search point set 1 containing NK points for the next search. Next, the first point 1 is taken as the new master node, and the search continues to find the K nearest points in search point set 1. A first point 2 is selected from these K points and connected to the master node (i.e., first point 1). These K points are then removed from search point set 1, resulting in a search point set 2 containing N-2K points for the next search. Next, using the first point 2 as the new master node, continue searching for the K nearest points in the search point set 2. Select a first point 3 from these K points and connect it to the master node (i.e., the first point 2). Then, remove these K points from the search point set 2 to obtain the search point set 3, which includes N-3K points for the next search. Using the first point 3 as the new master node, continue searching in the search point set 3, repeating the above steps until the search point set is empty, thus obtaining a master prediction tree.

[0196] In this method, densely populated points are more likely to be used to construct the main prediction tree, thereby improving the utilization efficiency of densely populated points and improving the prediction efficiency of local point clouds.

[0197] In some embodiments, the points other than the master node among the aforementioned K points can be used as slave nodes of the master node. For example, search for the K points closest to the first point 2 from the search point cloud, and connect the first point 3 among these K points to the first point 2. That is, the first point 3 among the K points is used as a master node in the master prediction tree. At this time, the other points among the K points, except for the first point 3, can be used as slave nodes of the first point 3.

[0198] In some embodiments, the first point selected from the K points can be any one of the K points.

[0199] In some embodiments, the first point selected from the K points can be the point farthest from the master node among the K points. This makes the distance between the master nodes in the master prediction tree larger, so that when other nodes near the master node are inserted into the master node, the master node is located in the center as much as possible, avoiding connecting points far away from the master node to the master node, and further improving the accuracy of constructing the prediction tree.

[0200] In this method, each master node includes the same number of slave nodes, that is, each includes K-1 slave nodes.

[0201] Method two, another approach using distance search, constructs the master prediction tree, specifically including the following steps:

[0202] S702-B1. Take the preset starting point as the first master node, search for P1 points among the N points whose distance to the first master node is less than the first distance, select one of the P1 points as the first point and connect it to the first master node, and remove the P1 points from the N points to obtain the search point set.

[0203] S702-B2, take the first point as the new master node, continue to search for P2 points in the search point set whose distance from the master node is less than the first distance, and select one of the P2 points as the first point to connect with the master node.

[0204] S702-B3: Remove P2 points from the search point set to obtain a new search point set. Determine if the new search point set is empty. If it is not empty, return to execute S702-B2 above. If it is empty, end the search and obtain the master prediction tree.

[0205] In this second method, starting from the initial point (i.e., the initial point is the first master node), a search is performed among the N points in the target point cloud according to distance. Specifically, the distance from each of the N points to the first master node is calculated, resulting in P1 points with the smallest first distance. A first point 1 is selected from these P1 points and connected to the first master node. These P1 points are then removed from the N points, resulting in a search point set 1 consisting of N-P1 points. Next, the first point 1 is used as the new master node. The search continues in search point set 1, finding P2 points whose distance from the first point 1 is less than the first distance. A first point 2 is selected from these P2 points and connected to the master node (i.e., the first point 1). These P2 points are then removed from search point set 1, resulting in a search point set 2 consisting of N-P1-P2 points. Next, using the first point 2 as the new master node, continue searching in search point set 2 for P3 points that are less than the first distance from the first point 2. From these P3 points, select a first point 3 and connect it to the master node (i.e., the first point 2). Then, remove the P3 points from search point set 2 to obtain search point set 3, which includes N-P1-P2-P3 points for the next search. Using the first point 3 as the new master node, continue searching in search point set 3, repeating the above steps until the search point set is empty, thus obtaining a master prediction tree.

[0206] In this second approach, densely populated points are more likely to be used to construct the main prediction tree, thereby improving the utilization efficiency of densely populated points and the prediction efficiency of local point clouds.

[0207] In some embodiments, for each master node, multiple points whose distance to the master node is less than a first distance can be used as slave nodes of that master node. For example, P3 points whose distance to the first point 2 is less than the first distance are searched from the search point cloud, and one of these P3 points, the first point 3, is connected to the first point 2. That is, the first point 3 among the P3 points is used as a master node in the master prediction tree. At this time, the other points among the P3 points, except for the first point 3, can be used as slave nodes of the first point 3.

[0208] In some embodiments, the first point selected from P points (e.g., P1, P2, etc.) can be any one of the P points.

[0209] In some embodiments, the first point selected from the P points can be the point farthest from the master node among the P points. This makes the distance between the master nodes in the master prediction tree larger, so that when other nodes near the master node are inserted into the master node, the master node is located in the center as much as possible, avoiding connecting points far away from the master node to the master node, and further improving the accuracy of constructing the prediction tree.

[0210] In this second method, the number of slave nodes included in each master node may vary. The master node in a dense location includes more slave nodes, thereby improving the utilization efficiency of points in dense areas and improving the prediction efficiency of local point clouds.

[0211] This application does not impose any restrictions on the specific determination of the first distance used for neighbor search.

[0212] In one example, the aforementioned first distance is a preset value.

[0213] In another example, the aforementioned first distance is Q times the minimum distance between the N points and the starting point, where Q is a positive number greater than 1. In this example, the point cloud encoding device first calculates the distance between each of the N points and the starting point, obtains the minimum distance, and determines Q times (e.g., 1.5 times or 2 times) of the minimum distance as the first distance. Thus, the master node records points within the first distance range from the master node as slave nodes.

[0214] In another example, the first distance is the statistical value of the distances between the G points closest to the starting point out of the N points, where G is a positive integer. For example, the point cloud encoding device first calculates the distance between each of the N points and the starting point, obtains the G points with the smallest distances, and determines the statistical value of the distances between these G points and the starting point as the first distance. Optionally, the statistical value of the distances between the G points and the starting point can be the average of the distances between the G points and the starting point, or the median of the distances between the G points and the starting point.

[0215] In this second method, points within a first distance range from the master node can be designated as slave nodes of that master node. The master node and its slave nodes form a set, where the points are relatively close to each other. When constructing the target prediction tree, these points can be sorted to achieve optimal local sorting. Furthermore, the master node in a dense region has a larger number of slave nodes, allowing for sufficient and accurate sorting of the point cloud in the dense region, thereby improving the prediction efficiency of the local point cloud.

[0216] Method 3 involves constructing the master prediction tree through downsampling. Specifically, this includes the following steps:

[0217] S702-C1: Downsample N points to obtain R points, where R is a positive integer less than N;

[0218] S702-C2: Starting from the preset starting point, connect the R points one by one according to the distance between each of the R points and the starting point to obtain the main prediction tree.

[0219] The third method for downsampling N points can include the following examples:

[0220] Example 1 uses a fixed sampling step size to sample N points, resulting in R points. For example, with a sampling step size of 'a', samples are taken every 'a' points out of the N points, resulting in R points. These R points are then used to construct the master prediction tree.

[0221] In some embodiments, in Example 1, within a sampling interval, the sampling point is designated as the master node, and the unsampled point in interval a is designated as the slave node of the master node.

[0222] Example 2: Divide N points into R point cloud blocks, and sample one point from each point cloud block to obtain the R points. For example, sample the center point of the point cloud block as the master node.

[0223] In some embodiments, in Example 2, unsampled points in a point cloud block can be recorded as slave nodes of the sampled points. For example, the center point of the point cloud block can be recorded as the master node, and the points in the point cloud block other than the center point can be recorded as slave nodes of the master node.

[0224] It should be noted that if there is no point at the center of the point cloud block in Example 2, the point closest to the center of the point cloud block can be determined as the sampling point.

[0225] In this method three, N points are downsampled to obtain R points using the above method. Then, starting from the starting point, the R points are connected one by one in ascending order according to the distance of the N points from the starting point to obtain the main prediction tree.

[0226] In step 702 above, the master prediction tree of the target point cloud is obtained according to the methods of methods one to three above, for example... Figure 8 As shown, the main prediction tree, starting from the initial point, is sequentially connected to master node 1, master node 2, master node 3, and so on. Therefore, the main prediction tree is a single-linked structure. Next, execute step 703 as follows.

[0227] S703. For each master node in the master prediction tree, insert the neighboring points of the master node from the remaining points into the master node to obtain the target prediction tree of the target point cloud.

[0228] The remaining points are the points among the N points, excluding some of the main nodes.

[0229] In this embodiment, using the method described in S70, a master prediction tree is constructed using a subset of points in the target point cloud. Then, from the remaining point cloud, neighboring points of each master node in the master prediction tree are searched, and these neighboring points are inserted into the corresponding master node, resulting in a complete prediction tree. This complete prediction tree is denoted as the target prediction tree of the target point cloud. This target prediction tree at least satisfies local optima; for example, the points in the set consisting of the master node and its slave nodes are the closest points. Sorting the points in this set can achieve local optima. When using this locally optimal target prediction tree for target point cloud encoding, at least the prediction accuracy of the local point cloud can be achieved, thereby improving the encoding efficiency of the point cloud.

[0230] The implementation methods of S703 in this application include, but are not limited to, the following:

[0231] Method 1 involves constructing slave prediction trees for each master node in the master prediction tree, and inserting the slave prediction trees into the master prediction tree to obtain the target prediction tree. This includes the following steps:

[0232] S703-A1. For each master node in the master prediction tree, construct the corresponding slave prediction tree based on the neighboring points of the master node in the remaining points.

[0233] S703-A2. Insert the corresponding slave prediction tree of the master node between the master node and the next master node to obtain the target prediction tree.

[0234] In this first method, for each master node in the master prediction tree, among the remaining points (excluding the master node) out of N points, the neighboring points of each master node are searched, and the neighboring points of each master node are sorted to obtain the slave prediction tree corresponding to each master node. Then, the slave prediction tree corresponding to each master node is inserted into each master node in the master prediction tree, for example, inserted into the position between each master node and its next adjacent master node, to obtain the complete prediction tree. This complete prediction tree is denoted as the target prediction tree of the target point cloud.

[0235] In this application, depending on the construction method of the master prediction tree, the method of determining the slave nodes of each master node in the master prediction tree is also different. The following describes the construction of the slave prediction tree in this step in conjunction with the three methods of constructing the master prediction tree in S702 above.

[0236] In Example 1, as in steps S702-A1 to S702-A3 of Method 1 above, if each master node in the main prediction tree includes K-1 slave nodes, then the method of constructing the prediction tree in S703-A1 above includes the following steps:

[0237] S703-A1-a1: For the i-th master node in the master prediction tree, take the remaining K-1 points (excluding the i-th master node) from the K points closest to the i-th master node in the search point set corresponding to the i-1 master node, and use them as the slave nodes of the i-th master node, where i is a positive integer greater than 1.

[0238] S703-A1-a2 connects the slave nodes of the i-th master node one by one to obtain the slave prediction tree of the i-th master node.

[0239] For example, taking the i-th master node in the master prediction tree as an example, the i-th master node is one of the K points in the search point set corresponding to the (i-1)-th master node that are closest to the (i-1)-th master node. The other points among these K points are denoted as the slave nodes of the i-th master node. Next, the K-1 slave nodes of the i-th master node are connected one by one to obtain the slave prediction tree of the i-th master node. For example, the K-1 slave nodes of the i-th master node are connected one by one in ascending order according to their distance from the i-th master node to obtain the slave prediction tree of the i-th master node.

[0240] In Example 2, as in steps S702-B1 to S702-B3 of Method 2 above, if each master node in the master prediction tree includes different slave nodes, then the method of constructing the prediction tree in S703-A1 above includes the following steps:

[0241] S703-A1-b1: For the i-th master node in the master prediction tree, take the other points in the search point set corresponding to the (i-1)-th master node whose distance from the (i-1)-th master node is less than the first distance, except for the i-th master node, and take them as the slave nodes of the i-th master node, where i is a positive integer greater than 1.

[0242] S703-A1-b2 connects the slave nodes of the i-th master node one by one to obtain the slave prediction tree of the i-th master node.

[0243] For example, taking the i-th master node in the master prediction tree as an example, the i-th master node is one of multiple points in the search point set corresponding to the (i-1)-th master node whose distance from the (i-1)-th master node is less than a first distance. These other points, excluding the i-th master node, are designated as slave nodes of the i-th master node. Next, the slave nodes of the i-th master node are connected one by one to obtain the slave prediction tree of the i-th master node. For example, the slave nodes of the i-th master node are connected one by one in ascending order according to their distance from the i-th master node to obtain the slave prediction tree of the i-th master node.

[0244] In Example 2, the number of slave nodes included in each master node may vary, and therefore the size of the resulting prediction tree may also differ.

[0245] In Examples 1 and 2 above, when constructing the prediction tree, if a slave node includes at least two slave nodes that are equidistant from the master node, they are sorted according to the input order of these at least two slave nodes. For example, the slave node with the earlier input order is placed before the slave node with the later input order.

[0246] Example 3, as in steps S702-C1 to S702-C2 of method three above S702, if the master prediction tree is constructed using a downsampling method, then the method of constructing the prediction tree in S703-A1 above includes the following steps:

[0247] S703-A1-c1, for each master node in the master prediction tree, other points in the point cloud block where the master node is located, excluding the master node, are taken as slave nodes of the master node.

[0248] S703-A1-c2 connects the slave nodes of the master node one by one to obtain the slave prediction tree of the master node.

[0249] In Example 3, when constructing the master prediction tree, a spatial partitioning-based downsampling method divides the target point cloud into R point cloud blocks. A point within each block, such as the center point, is designated as the master node, and all other points in the block besides the master node are designated as slave nodes of that master node. In dense regions, the number of slave nodes corresponding to the master node is relatively large. This allows for the connection of points within the dense region together, achieving a locally optimal ranking and preventing the connection of points within a dense region to distant points, which could lead to inaccurate predictions.

[0250] Example 4, as in steps S702-C1 to S702-C2 of method three above S702, if the master prediction tree is constructed using a downsampling method, then the method of constructing the prediction tree in S703-A1 above includes the following steps:

[0251] S703-A1-d1: For each second point among the remaining points, the second point is taken as a slave node of the master node closest to the second point in the master prediction tree, thus obtaining the slave node of each master node in the master prediction tree;

[0252] S703-A1-d2 connects the slave nodes of the master node one by one to obtain the slave prediction tree of the master node.

[0253] In Example 4, for ease of description, each of the remaining points in the target point cloud, excluding the master node, is designated as a second point. For each second point, the nearest master node is searched in the master prediction tree, and this second point is then treated as a slave node of that nearest master node. This process yields the slave nodes of each master node in the master prediction tree. Next, the slave nodes of each master node are connected one by one to obtain the slave prediction tree of that master node. For example, the slave nodes of the master node are connected one by one according to their distance from the master node, forming the slave prediction tree corresponding to the master node.

[0254] Based on the examples above, we can create a secondary prediction tree for each master node in the master prediction tree. Then, we insert the secondary prediction tree of each master node into the master node, as shown below. Figure 9 As shown, the slave prediction tree 1 corresponding to master node 1 is inserted into master node 1 and master node 2. This slave prediction tree 1 includes slave nodes 11, 12, and 13. The slave prediction tree 2 corresponding to master node 2 is inserted into master node 2 and master node 3. This slave prediction tree 2 includes slave nodes 21 and 22. The slave prediction tree 3 corresponding to master node 3 is inserted into master node 3 and master node 4. This slave prediction tree 3 includes slave nodes 31, 32, and 33. And so on, inserting the slave prediction tree corresponding to each master node into the corresponding master node in the master prediction tree to obtain the target prediction tree.

[0255] Method 2: For the j-th point among the remaining points, search for the k-th master node closest to the j-th point in the master prediction tree, insert the j-th point between the k-th master node and the (k+1)-th master node to form a new master prediction tree, where j is a positive integer from 1 to M, and M is the total number of remaining points; use the new master prediction tree constructed when j equals M as the target prediction tree.

[0256] In this second method, each of the remaining points is inserted one by one into the nearest master node in the master prediction tree. For example, for the j-th remaining point, the k-th master node closest to the j-th point is searched in the master prediction tree, and the j-th point is inserted between the k-th and (k+1)-th master nodes to form a new master prediction tree. Next, the other remaining point is denoted as the j-th point, i.e., j = j+1. Following the above steps, the k-th nearest master node is searched in the new master prediction tree, and the j-th point is inserted between the k-th and (k+1)-th master nodes to form a new master prediction tree. This process is repeated until all remaining points are inserted into the master prediction tree, thus obtaining the target prediction tree.

[0257] In constructing the target prediction tree, this application first uses a subset of points from the target point cloud to build a master prediction tree. Then, it uses the neighboring points of each master node in the master prediction tree as slave nodes to construct slave prediction trees. Finally, it inserts the slave prediction trees into the master nodes to obtain the target prediction tree. In other words, this application optimizes the connection relationships between local points, using the master node as the center. It connects points that are relatively close together in the target point cloud and prevents points that are far apart from being connected, thereby achieving optimal local sorting and improving the prediction accuracy of the local point cloud.

[0258] After generating the target prediction tree of the target point cloud according to the above method, perform the following step S704 to encode the target point cloud.

[0259] S704. Encode the target point cloud based on the target prediction tree.

[0260] The aforementioned target prediction tree arranges points that are close together, so when encoding the current point in the target point cloud, the previous point or several points in the target prediction tree are used as reference points for prediction encoding.

[0261] For example, in geometric coding, the difference between the geometric information of the previous point and the geometric information of the current point in the target prediction tree is used as the geometric residual of the current point. The geometric residual is quantized and then encoded to form a geometric code stream.

[0262] For example, during attribute encoding, the difference between the attribute information of the previous point and the attribute information of the current point in the target prediction tree is used as the attribute residual of the current point. The attribute residual is quantized, and the quantized attribute residual is encoded to form an attribute code stream.

[0263] In this embodiment, when constructing the target prediction tree, a master prediction tree is first built using a subset of points from the target point cloud. Then, neighboring points of each master node in the master prediction tree are inserted into the master node to obtain the target prediction tree. That is, this application optimizes the connection relationships between local points centered on the master node, connecting nearby points in the target point cloud together and preventing distant points from being connected. This results in a locally optimal ranking of the target prediction tree, preventing connections between distant points and improving the accuracy of the target prediction tree construction. When making predictions based on this accurately constructed target prediction tree, the prediction accuracy of the target point cloud can be improved, thereby increasing the encoding efficiency of the target point cloud.

[0264] In some embodiments, the target prediction tree of this application constitutes a single-chain structure. Each node in the target prediction tree is encoded sequentially according to the arrangement order of the points in this single-chain structure, wherein the master node and slave nodes are encoded using the same encoding method. For example, the same geometric encoding method is used to encode the geometric information of each node in the target prediction tree one by one, thereby obtaining the geometric bitstream of the target point cloud. Similarly, the same attribute encoding method is used to encode the attribute information of each node in the target prediction tree one by one, thereby obtaining the attribute bitstream of the target point cloud. Correspondingly, the decoding end uses the same decoding method to decode each node in the target prediction tree one by one. For example, the same geometric decoding method is used to decode the geometric information of each node in the target prediction tree one by one, thereby obtaining the geometric information of each point in the target point cloud. Similarly, the same attribute decoding method is used to decode the attribute information of each node in the target prediction tree one by one, thereby obtaining the attribute information of each point in the target point cloud.

[0265] In some embodiments, in order to further improve encoding efficiency, the master nodes and slave nodes in the target prediction tree may be encoded using different encoding methods.

[0266] For example, the master nodes in the target prediction tree are encoded using a first encoding method; the slave nodes in the target prediction tree are encoded using a second encoding method, which is different from the first encoding method.

[0267] This application does not impose any restrictions on the first encoding method or the second encoding method.

[0268] It should be noted that the first and second decoding methods mentioned above can be geometric decoding methods, and / or the first and second decoding methods mentioned above can be attribute decoding methods.

[0269] Optionally, the first and second encoding methods described above can have different quantization step sizes. Since the master node is a relatively far point and the connected slave nodes are relatively close points, a larger quantization step size can be used to quantize the master node and a smaller step size can be used to quantize the slave nodes. This improves the encoding effect of locally dense points while reducing the encoding complexity.

[0270] Optionally, the first and second encoding methods described above can use different encoding bit positions. Since the master node is a relatively far-away point, while the connected slave nodes are relatively close-away points, a larger number of bits are used for the master node and a smaller number of bits are used for the slave nodes, thereby reducing encoding complexity and improving encoding efficiency.

[0271] Optionally, the first and second encoding methods described above can also be prediction methods. Since the master node is a relatively distant point, the points preceding the master node in the target prediction tree may also be far from the master node. In this case, multiple previously encoded points preceding the master node are used as reference points for prediction to improve the prediction accuracy of the master node. Connected slave nodes are relatively close points. To reduce encoding complexity, one or a few previously encoded points preceding the slave node are used as reference points for prediction, thus improving encoding efficiency.

[0272] As described above, when the encoding end uses different encoding methods to encode the master node and slave node, the decoding end also needs to use different decoding methods to decode the master node and slave node. Therefore, the decoding end needs to determine the master node and slave node in the target prediction tree. Based on this, in this embodiment, the encoding end informs the decoding end which points are master nodes and which are slave nodes in the following way.

[0273] Method 1: The point cloud encoding device adds a first flag to the master node in the target prediction tree and / or adds a second flag to the slave node in the target prediction tree, wherein the first flag and the second flag are different.

[0274] For example, the point cloud encoding device adds a first flag to the master node in the target prediction tree. After the point cloud decoding device decodes the bit stream to obtain the target prediction tree, it determines the points with the first flag in the target prediction tree as master nodes and the points without the first flag as slave nodes.

[0275] For example, the point cloud encoding device adds a second flag to the slave nodes in the target prediction tree. After the point cloud decoding device decodes the bitstream to obtain the target prediction tree, it determines the points with the second flag in the target prediction tree as slave nodes and the points without the second flag as master nodes.

[0276] For example, the point cloud encoding device adds a first flag to the master node and a second flag to the slave node in the target prediction tree. After the point cloud decoding device decodes the bitstream to obtain the target prediction tree, it determines the points with the first flag as master nodes and the points with the second flag as slave nodes.

[0277] In Method 2, the number of slave nodes corresponding to each master node in the target prediction tree is written into the bitstream.

[0278] For example, when the slave nodes corresponding to the master nodes in the target prediction tree are different, the number of slave nodes corresponding to each master node can be written into the bitstream. For example, the number of slave nodes corresponding to the master node can be encoded into the sum of the master nodes. In this way, when the decoder decodes, it decodes the first master node, and then, based on the number of slave nodes of the master node, it can determine that the bits after the master node are the slave nodes of the master node, and thus determine the master nodes and slave nodes in the target prediction tree.

[0279] In this embodiment, the encoding end can also encode the distinction information between the master node and the slave node into the bitstream in other ways, and this application does not limit this.

[0280] The point cloud encoding method based on prediction trees provided in this application involves: acquiring a target point cloud, which includes N points (N being a positive integer greater than 1); constructing a master prediction tree based on a subset of the master nodes from the N points; for each master node in the master prediction tree, inserting the neighboring points of the master node from the remaining points into the position of the master node to obtain a target prediction tree for the target point cloud, where the remaining points are the points other than the subset of master nodes from the N points; and encoding the target point cloud based on the target prediction tree. In essence, this application first constructs a master prediction tree using a subset of the target point cloud, and then inserts the neighboring points of each master node in the master prediction tree into the position of the master node to obtain the target prediction tree. That is, this application optimizes the connection relationships between local points with the master node as the center, preventing distant points from being connected. This results in a target prediction tree with locally optimal sorting, improving the accuracy of the target prediction tree construction. When making predictions based on this accurately constructed target prediction tree, the prediction accuracy of the target point cloud can be improved, thereby increasing the encoding efficiency of the target point cloud.

[0281] The above describes the point cloud encoding method provided in this application embodiment using the encoding end as an example. The following section will combine... Figure 10 Taking the decoding end as an example, the technical solution of this application will be introduced.

[0282] Figure 10 This is a flowchart illustrating a point cloud decoding method based on a prediction tree, provided in one embodiment of this application. The executing entity of this method is a device with point cloud decoding capabilities, such as a point cloud decoding device, which can be the point cloud decoding equipment described above or a part thereof. For ease of description, the following embodiment uses a point cloud decoding device as an example. Figure 10 As shown, it includes:

[0283] S801, decode the bitstream to obtain the target prediction tree of the target point cloud.

[0284] The target point cloud consists of N points, where N is a positive integer greater than 1.

[0285] In some embodiments, the decoding end uses the same decoding method to decode each node in the target prediction tree one by one to obtain the target point cloud. For example, the same geometric decoding method is used to decode the geometric information of each node in the target prediction tree one by one, thereby obtaining the geometric information of each point in the target point cloud. For example, the same attribute decoding method is used to decode the attribute information of each node in the target prediction tree one by one, thereby obtaining the attribute information of each point in the target point cloud.

[0286] In some embodiments, the decoding end uses different decoding methods to decode the master node and slave node in the target prediction tree, as detailed in steps S802 and S803 below.

[0287] S802. Determine the master node and slave node in the target prediction tree.

[0288] The above-mentioned S802 includes, but is not limited to, the following methods:

[0289] Method 1: Determine the master and slave nodes in the target prediction tree according to the preset number of slave nodes. For example, decode the first master node, then determine the K-1 points after the master node as slave nodes, then determine the next point as the next master node, and so on, to determine the master and slave nodes in the target prediction tree.

[0290] Method 2: If the master node has a first flag and / or the slave node has a second flag, then the master node and slave node in the target prediction tree are determined based on the first flag and / or the second flag.

[0291] For example, points with the first label in the target prediction tree are designated as master nodes, and points without the first label are designated as slave nodes.

[0292] For example, points with a second label in the target prediction tree are identified as slave nodes, and points without a second label are identified as master nodes.

[0293] For example, points with the first label in the target prediction tree are designated as master nodes, and points with the second label are designated as slave nodes.

[0294] Method 3: Decode the bitstream to obtain the number of slave nodes corresponding to each master node in the target prediction tree, and determine the master node and slave nodes in the target prediction tree based on the number of slave nodes corresponding to each master node.

[0295] In this way, when the decoding end decodes, it decodes the first master node, and then, based on the number of slave nodes of the master node, it can determine that the following few points are slave nodes of the master node, and thus determine the master node and slave nodes in the target prediction tree.

[0296] S803. The master node is decoded using the first decoding method, and the slave node is decoded using the second decoding method. The second decoding method is different from the first decoding method.

[0297] It should be noted that the first and second decoding methods mentioned above can be geometric decoding methods, and / or the first and second decoding methods mentioned above can be attribute decoding methods.

[0298] Optionally, the first and second encoding methods described above can have different quantization step sizes. Since the master node is a relatively far-away point, while the connected slave nodes are relatively close-away points, a larger quantization step size can be used to quantize the master node, and a smaller step size can be used to quantize the slave nodes. This improves the encoding effect of locally dense points while reducing the encoding complexity. Correspondingly, the decoding end uses a larger quantization step size to dequantize the master node and a smaller quantization step size to dequantize the slave nodes.

[0299] Optionally, the first and second encoding methods described above can also be prediction methods. Since the master node is a relatively distant point, the points preceding the master node in the target prediction tree may also be far from the master node. In this case, multiple previously encoded points preceding the master node are used as reference points for prediction to improve the prediction accuracy of the master node. Connected slave nodes are relatively close points. To reduce encoding complexity, one or fewer previously encoded points preceding the slave node are used as reference points for prediction, improving encoding efficiency. Correspondingly, for the master node, the decoding end uses multiple previously decoded points preceding the master node as reference points for prediction; for the slave node, the decoding end uses one or a few previously decoded points preceding the slave node as reference points for prediction.

[0300] It should be understood that the point cloud decoding method is the reverse process of the point cloud encoding method described above. The steps in the point cloud decoding method can be referred to the corresponding steps in the point cloud encoding method, and will not be repeated here to avoid repetition.

[0301] The preferred embodiments of this application have been described in detail above with reference to the accompanying drawings. However, this application is not limited to the specific details of the above embodiments. Within the scope of the technical concept of this application, various simple modifications can be made to the technical solutions of this application, and these simple modifications all fall within the protection scope of this application. For example, the various specific technical features described in the above specific embodiments can be combined in any suitable manner without contradiction. To avoid unnecessary repetition, this application will not describe the various possible combinations separately. Furthermore, various different embodiments of this application can also be arbitrarily combined, as long as they do not violate the spirit of this application, they should also be considered as the content disclosed in this application.

[0302] It should also be understood that, in the various method embodiments of this application, the order of the above-mentioned processes does not imply the order of execution. The execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of this application.

[0303] The above text combined Figures 1 to 10 The method embodiments of this application are described in detail below, in conjunction with... Figures 11 to 13The following describes in detail the device embodiments of this application.

[0304] Figure 11 This is a schematic block diagram of a point cloud encoding device based on a prediction tree according to an embodiment of this application.

[0305] like Figure 11 As shown, the point cloud encoding device 10 based on prediction trees may include:

[0306] Acquisition unit 11 is used to acquire a target point cloud, the target point cloud including N points, where N is a positive integer greater than 1;

[0307] The first construction unit 12 is used to construct a main prediction tree based on a portion of the main nodes among the N points;

[0308] The second construction unit 13 is used to insert the neighboring points of the main node in the remaining points into the main node for each main node in the main prediction tree, so as to obtain the target prediction tree of the target point cloud. The remaining points are the points other than the main nodes among the N points.

[0309] The encoding unit 14 is used to encode the target point cloud based on the target prediction tree.

[0310] In some embodiments, the second construction unit 13 is specifically configured to, for each master node in the master prediction tree, construct a secondary prediction tree corresponding to the master node based on the neighboring points of the master node among the remaining points, and insert the secondary prediction tree corresponding to the master node between the master node and the next master node to obtain the target prediction tree; or, for the j-th point among the remaining points, search for the k-th master node closest to the j-th point in the master prediction tree, insert the j-th point between the k-th master node and the (k+1)-th master node to form a new master prediction tree, where j is a positive integer from 1 to M, and M is the total number of remaining points; and use the new master prediction tree constructed when j equals M as the target prediction tree.

[0311] In some embodiments, the first construction unit 12 is specifically configured to: take a preset starting point as the first master node; search for the K points closest to the first master node among the N points; select a first point from the K points and connect it to the first master node; remove the K points from the N points to obtain a search point set; take the first point as the new master node; continue searching for the K points closest to the master node in the search point set; select a first point from the K points and connect it to the master node; remove the K points from the search point set to obtain a new search point set; take the first point as the new master node; and continue searching until the search point set is empty to obtain the master prediction tree.

[0312] In some embodiments, the second construction unit 13 is specifically used to, for the i-th master node in the master prediction tree, take the remaining K-1 points (excluding the i-th master node) from the K points in the search point set corresponding to the (i-1)-th master node that are closest to the i-th master node, as slave nodes of the i-th master node, where i is a positive integer greater than 1; and connect the slave nodes of the i-th master node one by one to obtain the slave prediction tree of the i-th master node.

[0313] In some embodiments, the first construction unit 12 is specifically configured to: take a preset starting point as the first master node; search for P1 points among the N points whose distance to the first master node is less than a first distance; select a first point from the P1 points and connect it to the first master node; remove the P1 points from the N points to obtain a search point set; take the first point as the new master node; continue searching for P2 points in the search point set whose distance to the master node is less than the first distance; select a first point from the P2 points and connect it to the master node; remove the P2 points from the search point set to obtain a new search point set; take the first point as the new master node; continue searching until the search point set is empty to obtain the master prediction tree.

[0314] In some embodiments, the first distance is Q times the minimum distance between the N points and the starting point, where Q is a positive number greater than 1; or, the first distance is the statistical value of the distances between the G points closest to the starting point among the N points, where G is a positive integer.

[0315] In some embodiments, the second construction unit 13 is specifically used to, for the i-th master node in the master prediction tree, take the other points in the search point set corresponding to the (i-1)-th master node whose distance from the (i-1)-th master node is less than the first distance, except for the i-th master node, as slave nodes of the i-th master node, where i is a positive integer greater than 1; and connect the slave nodes of the i-th master node one by one to obtain the slave prediction tree of the i-th master node.

[0316] In some embodiments, the first construction unit 12 is specifically used to downsample the N points to obtain R points, where R is a positive integer less than N; starting from a preset starting point, the R points are connected one by one according to the distance between the R points and the starting point to obtain the main prediction tree.

[0317] In some embodiments, the first construction unit 12 is specifically used to divide the N points into R point cloud blocks, sample one point from each point cloud block, and obtain the R points.

[0318] In some embodiments, the second construction unit 13 is specifically used to, for each master node in the master prediction tree, take other points in the point cloud block where the master node is located, excluding the master node, as slave nodes of the master node; or, for each second point among the remaining points, take the second point as a slave node of the master node closest to the second point in the master prediction tree, thereby obtaining slave nodes of each master node in the master prediction tree; and connect the slave nodes of the master node one by one to obtain the slave prediction tree of the master node.

[0319] In some embodiments, the second construction unit 13 is specifically used to connect each of the slave nodes of the master node one by one according to the distance between them, so as to form a slave prediction tree corresponding to the master node.

[0320] In some embodiments, the encoding unit 14 is further configured to encode the master node in the target prediction tree using a first encoding method; and to encode the slave node in the target prediction tree using a second encoding method, wherein the second encoding method is different from the first encoding method.

[0321] In some embodiments, the encoding unit 14 is further configured to add a first flag to the master node in the target prediction tree and / or add a second flag to the slave node in the target prediction tree, wherein the first flag is different from the second flag.

[0322] In some embodiments, the encoding unit 14 is further configured to write the number of slave nodes corresponding to each master node in the target prediction tree into the bitstream.

[0323] It should be understood that the device embodiments and method embodiments can correspond to each other, and similar descriptions can be referred to the method embodiments. To avoid repetition, further details will not be provided here. Specifically, Figure 11 The apparatus 10 shown can execute the above-described point cloud encoding method embodiments, and the aforementioned and other operations and / or functions of each module in the apparatus 10 are respectively for implementing the method embodiments corresponding to the encoding device. For the sake of brevity, they will not be described in detail here.

[0324] Figure 12 This is a schematic block diagram of a point cloud decoding device based on a prediction tree according to an embodiment of this application.

[0325] like Figure 12 As shown, the prediction tree-based point cloud decoding device 20 may include:

[0326] Decoding unit 21 is used to decode the bit stream to obtain the target prediction tree of the target point cloud, wherein the target point cloud includes N points, and N is a positive integer greater than 1;

[0327] Determining unit 22 is used to determine the master node and slave node in the target prediction tree;

[0328] The decoding unit 21 is also used to decode the master node using a first decoding method and to decode the slave node using a second decoding method, wherein the second decoding method is different from the first decoding method.

[0329] In some embodiments, the determining unit 22 is specifically configured to determine the master node and slave nodes in the target prediction tree according to a preset number of slave nodes; or, if the master node has a first flag and / or the slave node has a second flag, then determine the master node and slave nodes in the target prediction tree according to the first flag and / or the second flag; or, decode the bitstream to obtain the number of slave nodes corresponding to each master node in the target prediction tree, and determine the master node and slave nodes in the target prediction tree according to the number of slave nodes corresponding to each master node.

[0330] It should be understood that the device embodiments and method embodiments can correspond to each other, and similar descriptions can be referred to the method embodiments. To avoid repetition, further details will not be provided here. Specifically, Figure 12 The apparatus 20 shown can execute the point cloud decoding method embodiment, and the foregoing and other operations and / or functions of each module in the apparatus 20 are respectively for implementing the method embodiment corresponding to the decoding device. For the sake of brevity, they will not be described in detail here.

[0331] The apparatus of this application embodiment has been described above from the perspective of functional modules in conjunction with the accompanying drawings. It should be understood that this functional module can be implemented in hardware, in software instructions, or in a combination of hardware and software modules. Specifically, the steps of the method embodiments in this application can be completed by integrated logic circuits in the processor's hardware and / or by software instructions. The steps of the method disclosed in this application embodiment can be directly embodied as being executed by a hardware decoding processor, or by a combination of hardware and software modules in the decoding processor. Optionally, the software module can reside in a mature storage medium in the art, such as random access memory, flash memory, read-only memory, programmable read-only memory, electrically erasable programmable memory, registers, etc. This storage medium is located in memory, and the processor reads information from the memory and, in conjunction with its hardware, completes the steps in the above method embodiments.

[0332] Figure 13 This is a schematic block diagram of the electronic device provided in the embodiments of this application. Figure 13The electronic device can be the point cloud encoding device or the point cloud decoding device mentioned above, or it can have the functions of both encoding and decoding devices.

[0333] like Figure 13 As shown, the electronic device 900 may include:

[0334] The system includes a memory 910 and a processor 920. The memory 910 stores a computer program 911 and transfers the program code 911 to the processor 920. In other words, the processor 920 can retrieve and run the computer program 911 from the memory 910 to implement the methods described in the embodiments of this application.

[0335] For example, the processor 920 can be used to execute the steps in the method 200 described above according to the instructions in the computer program 911.

[0336] In some embodiments of this application, the processor 920 may include, but is not limited to:

[0337] General-purpose processors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc.

[0338] In some embodiments of this application, the memory 910 includes, but is not limited to:

[0339] Volatile memory and / or non-volatile memory. Non-volatile memory can be read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), or flash memory. Volatile memory can be random access memory (RAM), used as an external cache. By way of example, but not limitation, many forms of RAM are available, such as Static RAM (SRAM), Dynamic RAM (DRAM), Synchronous DRAM (SDRAM), Double Data Rate SDRAM (DDR SDRAM), Enhanced SDRAM (ESDRAM), Synchronous Link DRAM (SLDRAM), and Direct Rambus RAM (DR RAM).

[0340] In some embodiments of this application, the computer program 911 may be divided into one or more modules, which are stored in the memory 910 and executed by the processor 920 to complete the page recording method provided in this application. The one or more modules may be a series of computer program instruction segments capable of performing specific functions, which describe the execution process of the computer program 911 in the electronic device 900.

[0341] like Figure 13 As shown, the electronic device 900 may further include:

[0342] Transceiver 930, which can be connected to processor 920 or memory 910.

[0343] The processor 920 can control the transceiver 930 to communicate with other devices; specifically, it can send information or data to other devices or receive information or data sent by other devices. The transceiver 930 may include a transmitter and a receiver. The transceiver 930 may further include antennas, and the number of antennas may be one or more.

[0344] It should be understood that the various components in the electronic device 900 are connected through a bus system, which includes a data bus, a power bus, a control bus, and a status signal bus.

[0345] According to one aspect of this application, a computer storage medium is provided that stores a computer program thereon, which, when executed by a computer, enables the computer to perform the methods of the above-described method embodiments. Alternatively, embodiments of this application also provide a computer program product containing instructions that, when executed by a computer, cause the computer to perform the methods of the above-described method embodiments.

[0346] According to another aspect of this application, a computer program product or computer program is provided, comprising computer instructions stored in a computer-readable storage medium. A processor of a computer device reads the computer instructions from the computer-readable storage medium and executes the computer instructions, causing the computer device to perform the method described in the above-described method embodiments.

[0347] In other words, when implemented using software, it can be implemented wholly or partially in the form of a computer program product. This computer program product includes one or more computer instructions. When these computer program instructions are loaded and executed on a computer, all or part of the processes or functions described in the embodiments of this application are generated. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions can be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another. For example, the computer instructions can be transmitted from one website, computer, server, or data center to another via wired (e.g., coaxial cable, fiber optic, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) means. The computer-readable storage medium can be any available medium that a computer can access or a data storage device such as a server or data center that integrates one or more available media. The available medium can be a magnetic medium (e.g., floppy disk, hard disk, magnetic tape), an optical medium (e.g., digital video disc (DVD)), or a semiconductor medium (e.g., solid-state disk (SSD)).

[0348] Those skilled in the art will recognize that the modules and algorithm steps of the various examples described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are implemented in hardware or software depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.

[0349] In the several embodiments provided in this application, it should be understood that the disclosed systems, apparatuses, and methods can be implemented in other ways. For example, the apparatus embodiments described above are merely illustrative; for instance, the division of modules is only a logical functional division, and in actual implementation, there may be other division methods. For example, multiple modules or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the coupling or direct coupling or communication connection shown or discussed may be through some interfaces; the indirect coupling or communication connection between apparatuses or modules may be electrical, mechanical, or other forms.

[0350] The modules described as separate components may or may not be physically separate. The components shown as modules may or may not be physical modules; that is, they may be located in one place or distributed across multiple network units. Some or all of the modules can be selected to achieve the purpose of this embodiment according to actual needs. For example, the functional modules in the various embodiments of this application may be integrated into one processing module, or each module may exist physically separately, or two or more modules may be integrated into one module.

[0351] The above description is merely a specific embodiment of this application, but the scope of protection of this application is not limited thereto. Any variations or substitutions that can be easily conceived by those skilled in the art within the scope of the technology disclosed in this application should be included within the scope of protection of this application. Therefore, the scope of protection of this application should be determined by the scope of the claims.

Claims

1. A point cloud coding method based on prediction trees, characterized in that, include: Obtain a target point cloud, wherein the target point cloud comprises N points, and N is a positive integer greater than 1; Based on some of the master nodes among the N points, a master prediction tree is constructed, wherein the master nodes are the points that are far apart from each other among the N points of the target point cloud; For each master node in the master prediction tree, the neighboring points of the master node among the remaining points are inserted at the master node to obtain the target prediction tree of the target point cloud. The remaining points are the points among the N points excluding the part of the master nodes. Based on the target prediction tree, the target point cloud is encoded, and the encoding method of the master node is different from that of the slave node; The step of constructing a master prediction tree based on a subset of master nodes from the N points includes: taking a preset starting point as the first master node, searching for multiple points closest to the first master node among the N points, selecting one first point from the multiple points and connecting it to the first master node, and removing the multiple points from the N points to obtain a search point set; taking the first point as the new master node, continuing to search for multiple new points closest to the new master node in the search point set, selecting a new first point from the multiple new points and connecting it to the new master node, and removing the new multiple points from the search point set to obtain a new search point set; taking the new first point as the new master node, continuing the search until the search point set is empty, to obtain the master prediction tree, where the first point is the point farthest from the master node among the multiple points; Specifically, for each master node in the master prediction tree, the neighboring points of the master node among the remaining points are inserted at the master node to obtain the target prediction tree of the target point cloud. This includes: for the i-th master node in the master prediction tree, taking the remaining points (excluding the i-th master node) among the multiple points in the search point set corresponding to the (i-1)-th master node that are closest to the i-th master node, as slave nodes of the i-th master node, where i is a positive integer greater than 1; connecting the slave nodes of the i-th master node one by one to obtain the slave prediction tree of the i-th master node; and inserting the slave prediction tree between the i-th master node and the (i+1)-th master node to obtain the target prediction tree.

2. The method according to claim 1, characterized in that, The step of inserting the neighboring points of the remaining points of the master node into the master node for each master node in the master prediction tree to obtain the target prediction tree of the target point cloud includes: For the j-th point among the remaining points, search for the k-th master node closest to the j-th point in the master prediction tree, and insert the j-th point between the k-th master node and the (k+1)-th master node to form a new master prediction tree, where j is a positive integer from 1 to M, and M is the total number of remaining points; the new master prediction tree constructed when j equals M is used as the target prediction tree.

3. The method according to claim 1, characterized in that, The process involves using a preset starting point as the first master node, searching among the N points for multiple points closest to the first master node, selecting one of these multiple points as a first point to connect to the first master node, and removing the multiple points from the N points to obtain a search point set, including: Using a preset starting point as the first master node, search for the K points closest to the first master node among the N points, select a first point from the K points and connect it to the first master node, and remove the K points from the N points to obtain the search point set; The process involves taking the first point as the new master node, continuing to search for multiple new points closest to the new master node in the search point set, selecting a new first point from these multiple new points to connect to the new master node, and removing these multiple new points from the search point set to obtain a new search point set. The new first point is then taken as the new master node, and the search continues until the search point set is empty, resulting in the master prediction tree. This process includes: Using the first point as the new master node, continue searching for the K points closest to the master node in the search point set. Select a first point from the K points and connect it to the master node, then remove the K points from the search point set to obtain a new search point set. Using the first point as the new master node, continue searching until the search point set is empty, thus obtaining the master prediction tree.

4. The method according to claim 3, characterized in that, The step of taking the i-th master node in the master prediction tree and selecting the remaining points (excluding the i-th master node) from the set of search points corresponding to the (i-1)-th master node as slave nodes of the i-th master node includes: For the i-th master node in the master prediction tree, the remaining K-1 points (excluding the i-th master node) among the K points in the search point set corresponding to the (i-1)-th master node are taken as slave nodes of the i-th master node, where i is a positive integer greater than 1.

5. The method according to claim 1, characterized in that, The process involves using a preset starting point as the first master node, searching among the N points for multiple points closest to the first master node, selecting one of these multiple points as a first point to connect to the first master node, and removing the multiple points from the N points to obtain a search point set, including: Using a preset starting point as the first master node, search for P1 points among the N points whose distance to the first master node is less than a first distance. Select a first point from the P1 points and connect it to the first master node. Remove the P1 points from the N points to obtain the search point set. The process involves taking the first point as the new master node, continuing to search for multiple new points closest to the new master node in the search point set, selecting a new first point from these multiple new points to connect to the new master node, and removing these multiple new points from the search point set to obtain a new search point set. The new first point is then taken as the new master node, and the search continues until the search point set is empty, resulting in the master prediction tree. This process includes: Using the first point as the new master node, continue searching for P2 points in the search point set whose distance to the master node is less than the first distance. Select a first point from the P2 points and connect it to the master node. Remove the P2 points from the search point set to obtain a new search point set. Using the first point as the new master node, continue searching until the search point set is empty to obtain the master prediction tree.

6. The method according to claim 5, characterized in that, The first distance is Q times the minimum distance between the N points and the starting point, where Q is a positive number greater than 1; or, The first distance is the statistical value of the distances between the G points closest to the starting point among the N points, where G is a positive integer.

7. The method according to claim 5, characterized in that, The step of taking the i-th master node in the master prediction tree and selecting the remaining points (excluding the i-th master node) from the set of search points corresponding to the (i-1)-th master node as slave nodes of the i-th master node includes: For the i-th master node in the master prediction tree, the other points in the search point set corresponding to the (i-1)-th master node whose distance from the (i-1)-th master node is less than the first distance, excluding the i-th master node, are taken as slave nodes of the i-th master node.

8. The method according to claim 2, characterized in that, The construction of the master prediction tree based on a subset of the N points includes: The N points are downsampled to obtain R points, where R is a positive integer less than N; Starting from a preset starting point, the R points are connected one by one according to the distance between each of the R points and the starting point to obtain the master prediction tree.

9. The method according to claim 8, characterized in that, The downsampling of the N points to obtain R points includes: The N points are divided into R point cloud blocks, and one point is sampled from each point cloud block to obtain the R points.

10. The method according to claim 9, characterized in that, The step of constructing a secondary prediction tree corresponding to each master node in the master prediction tree based on the remaining points includes: For each master node in the master prediction tree, all other points in the point cloud block where the master node is located, excluding the master node itself, are taken as slave nodes of the master node; or, for each second point among the remaining points, the second point is taken as a slave node of the master node in the master prediction tree that is closest to the second point, thus obtaining slave nodes of each master node in the master prediction tree. The slave nodes of the master node are connected one by one to obtain the slave prediction tree of the master node.

11. The method according to claim 4, 7 or 10, characterized in that, The step of connecting the slave nodes of the master node one by one to obtain the slave prediction tree of the master node includes: Based on the distance between the master node and each slave node, the slave nodes of the master node are connected one by one to form the slave prediction tree corresponding to the master node.

12. The method according to claim 11, characterized in that, The encoding of the target point cloud based on the target prediction tree includes: The main nodes in the target prediction tree are encoded using the first encoding method; The slave nodes in the target prediction tree are encoded using a second encoding method, which is different from the first encoding method.

13. The method according to claim 12, characterized in that, The method further includes: Add a first flag to the master node in the target prediction tree, and / or add a second flag to the slave node in the target prediction tree, wherein the first flag is different from the second flag.

14. The method according to claim 12, characterized in that, The method further includes: Write the number of slave nodes corresponding to each master node in the target prediction tree into the bitstream.

15. A point cloud decoding method based on prediction trees, characterized in that, include: Decode the bitstream to obtain the target prediction tree of the target point cloud, wherein the target point cloud includes N points, and N is a positive integer greater than 1; Determine the master node and slave node in the target prediction tree; The master node is decoded using the first decoding method; The slave node is decoded using a second decoding method, which is different from the first decoding method. The target prediction tree is obtained by inserting the neighboring points of the remaining points of the main node into the main node for each main node in the main prediction tree. The remaining points are the points other than some main nodes among the N points. The main prediction tree is constructed based on some main nodes among the N points. The some main nodes are the points that are far apart from each other among the N points of the target point cloud. The process of constructing a master prediction tree based on a subset of master nodes from the N points includes: using a preset starting point as the first master node; searching for multiple points closest to the first master node among the N points; selecting one first point from these multiple points and connecting it to the first master node; removing these multiple points from the N points to obtain a search point set; using the first point as the new master node; continuing to search for multiple new points closest to the new master node in the search point set; selecting a new first point from these multiple points and connecting it to the new master node; removing these new multiple points from the search point set to obtain a new search point set; using the new first point as the new master node; and continuing the search until the search point set is empty to obtain the master prediction tree, where the first point is the point farthest from the master node among the multiple points. Specifically, for each master node in the master prediction tree, the neighboring points of the master node among the remaining points are inserted at the master node to obtain the target prediction tree of the target point cloud. This includes: for the i-th master node in the master prediction tree, taking the remaining points (excluding the i-th master node) among the multiple points in the search point set corresponding to the (i-1)-th master node that are closest to the i-th master node, as slave nodes of the i-th master node, where i is a positive integer greater than 1; connecting the slave nodes of the i-th master node one by one to obtain the slave prediction tree of the i-th master node; and inserting the slave prediction tree between the i-th master node and the (i+1)-th master node to obtain the target prediction tree.

16. The method according to claim 15, characterized in that, Determining the master node and slave node in the target prediction tree includes: The master node and slave nodes in the target prediction tree are determined according to a preset number of slave nodes; or, If the master node has a first flag, and / or the slave node has a second flag, then the master node and slave node in the target prediction tree are determined based on the first flag and / or the second flag; or, Decode the bitstream to obtain the number of slave nodes corresponding to each master node in the target prediction tree, and determine the master node and slave nodes in the target prediction tree based on the number of slave nodes corresponding to each master node.

17. A point cloud encoding device based on a prediction tree, characterized in that, include: An acquisition unit is used to acquire a target point cloud, wherein the target point cloud includes N points, where N is a positive integer greater than 1; The first construction unit is used to construct a master prediction tree based on a portion of the master nodes among the N points, wherein the portion of master nodes are the points that are far apart from each other among the N points of the target point cloud; The second construction unit is used to insert the neighboring points of the main node from the remaining points into the main node for each main node in the main prediction tree, so as to obtain the target prediction tree of the target point cloud. The remaining points are the points other than the main nodes among the N points. The encoding unit is used to encode the target point cloud based on the target prediction tree, wherein the encoding method of the master node is different from that of the slave node; Specifically, the first construction unit is used to take a preset starting point as the first master node, search for multiple points closest to the first master node among the N points, select a first point from the multiple points to connect with the first master node, and remove the multiple points from the N points to obtain a search point set; take the first point as the new master node, continue to search for multiple new points closest to the new master node in the search point set, select a new first point from the multiple new points to connect with the new master node, and remove the multiple new points from the search point set to obtain a new search point set, take the new first point as the new master node, and continue searching until the search point set is empty to obtain the master prediction tree, where the first point is the point farthest from the master node among the multiple points; Specifically, the second construction unit is used to, for the i-th master node in the master prediction tree, take the remaining points (excluding the i-th master node) from the multiple points in the search point set corresponding to the (i-1)-th master node that are closest to the i-th master node, as slave nodes of the i-th master node, where i is a positive integer greater than 1; connect the slave nodes of the i-th master node one by one to obtain the slave prediction tree of the i-th master node; and insert the slave prediction tree between the i-th master node and the (i+1)-th master node to obtain the target prediction tree.

18. A point cloud decoding device based on a prediction tree, characterized in that, include: A decoding unit is used to decode the bitstream to obtain a target prediction tree of the target point cloud, wherein the target point cloud includes N points, and N is a positive integer greater than 1; A determining unit is used to determine the master node and slave node in the target prediction tree; The decoding unit is also used to decode the master node using a first decoding method and to decode the slave node using a second decoding method, wherein the second decoding method is different from the first decoding method. The target prediction tree is obtained by inserting the neighboring points of the remaining points of the main node into the main node for each main node in the main prediction tree. The remaining points are the points other than some main nodes among the N points. The main prediction tree is constructed based on some main nodes among the N points. The some main nodes are the points that are far apart from each other among the N points of the target point cloud. The process of constructing a master prediction tree based on a subset of master nodes from the N points includes: using a preset starting point as the first master node; searching for multiple points closest to the first master node among the N points; selecting one first point from these multiple points and connecting it to the first master node; removing these multiple points from the N points to obtain a search point set; using the first point as the new master node; continuing to search for multiple new points closest to the new master node in the search point set; selecting a new first point from these multiple points and connecting it to the new master node; removing these new multiple points from the search point set to obtain a new search point set; using the new first point as the new master node; and continuing the search until the search point set is empty to obtain the master prediction tree, where the first point is the point farthest from the master node among the multiple points. Specifically, for each master node in the master prediction tree, the neighboring points of the master node among the remaining points are inserted at the master node to obtain the target prediction tree of the target point cloud. This includes: for the i-th master node in the master prediction tree, taking the remaining points (excluding the i-th master node) among the multiple points in the search point set corresponding to the (i-1)-th master node that are closest to the i-th master node, as slave nodes of the i-th master node, where i is a positive integer greater than 1; connecting the slave nodes of the i-th master node one by one to obtain the slave prediction tree of the i-th master node; and inserting the slave prediction tree between the i-th master node and the (i+1)-th master node to obtain the target prediction tree.

19. An electronic device, characterized in that, include: A processor and a memory, the memory for storing a computer program, the processor for calling and running the computer program stored in the memory to perform the method of any one of claims 1 to 14 or 15 to 16.

20. A computer-readable storage medium, characterized in that, Used to store a computer program that causes a computer to perform the method as described in any one of claims 1 to 14 or 15 to 16.