Point cloud encoding and decoding method, device and computer readable storage medium

By performing tree partitioning and Hilbert order arrangement on the point cloud, the problem of point cloud reordering after encoding and decoding is solved, and efficient attribute encoding and decoding after encoding and decoding of point cloud geometric data is achieved.

CN114885617BActive Publication Date: 2025-10-21ZHEJIANG UNIV +1
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202080081330.1
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2020-12-07
Publication Date
2025-10-21
Estimated Expiration
2040-12-07

AI Technical Summary

Technical Problem

In existing point cloud encoding and decoding methods, the reconstructed point cloud points need to be reordered after geometric data encoding and decoding, resulting in poor feasibility of the overall solution.

Method used

By dividing the point cloud into a tree, using the geometric coordinates of the child nodes to determine the Hilbert order, generating a space occupancy code, and arranging the occupancy information of the child nodes in the Hilbert order, the encoded point cloud points are arranged in the Hilbert order to avoid reordering.

Benefits of technology

After completing the encoding and decoding of the point cloud geometry data, the point cloud points are arranged in Hilbert order, which simplifies the subsequent attribute encoding and decoding process and improves the overall feasibility of the point cloud encoding and decoding solution.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114885617B_ABST
    Figure CN114885617B_ABST
Patent Text Reader

Abstract

A point cloud encoding method comprises: dividing a first node into a plurality of sub-nodes (202), the first node being any non-leaf node containing point cloud points obtained by tree division of a point cloud; determining a Hilbert sequence corresponding to the plurality of sub-nodes by using geometric coordinates of the plurality of sub-nodes (204); arranging occupancy information of the plurality of sub-nodes according to the Hilbert sequence to obtain a space occupancy code corresponding to the first node (206), wherein the occupancy information is used to indicate whether the sub-node contains point cloud points; and encoding the space occupancy code (208). The method solves the technical problem that the reconstructed point cloud points after geometry coding need to be reordered before attribute coding and decoding of the point cloud.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of point cloud data processing technology, and in particular to a point cloud encoding method, device and computer-readable storage medium, and a point cloud decoding method, device and computer-readable storage medium. Background Art

[0002] A point cloud is a collection of multiple points in three-dimensional space. Each point cloud data includes both geometric and attribute data. Since a single point cloud frame often contains hundreds of thousands or even hundreds of millions of points, the scale of point cloud data is enormous, making encoding and compression essential.

[0003] The geometry and attribute data of a point cloud are encoded and decoded separately. Because the encoding and decoding of attribute data requires the use of geometry data, geometry encoding and decoding are typically completed before attribute encoding and decoding. However, current methods for encoding and decoding geometry and attribute data are mismatched, requiring point clouds to be reordered after geometry encoding and decoding, which is time-consuming and impractical for the overall solution. Summary of the Invention

[0004] In view of this, an embodiment of the present application provides a point cloud encoding method and a point cloud decoding method, one of the purposes of which is to solve the technical problem of needing to reorder the point cloud points reconstructed after geometric encoding and decoding before performing attribute encoding and decoding on the point cloud.

[0005] A first aspect of an embodiment of the present application provides a point cloud encoding method, including:

[0006] Divide the first node into a plurality of child nodes, wherein the first node is any non-leaf node obtained by performing tree division on the point cloud and containing a point cloud point;

[0007] Determining the Hilbert order corresponding to the plurality of subnodes using the geometric coordinates of the plurality of subnodes;

[0008] Arranging the occupancy information of the plurality of child nodes according to the Hilbert order to obtain a space occupancy code corresponding to the first node, wherein the occupancy information is used to indicate whether the child node contains a point cloud point;

[0009] The space occupancy code is encoded.

[0010] A second aspect of an embodiment of the present application provides a point cloud decoding method, including:

[0011] Divide the first node into a plurality of child nodes, wherein the first node is any non-leaf node obtained by performing tree division on the point cloud and containing a point cloud point;

[0012] Determining the Hilbert order corresponding to the plurality of subnodes using the geometric coordinates of the plurality of subnodes;

[0013] Decoding the code stream to obtain a space occupancy code corresponding to the first node;

[0014] Determining a target subnode containing a point cloud point on the Hilbert order according to the space occupancy code;

[0015] If the target child node is a non-leaf node, the target child node is divided into trees.

[0016] According to a third aspect of an embodiment of the present application, a point cloud encoding device is provided, comprising: a processor and a memory storing a computer program, wherein the processor implements the following steps when executing the computer program:

[0017] Divide the first node into a plurality of child nodes, wherein the first node is any non-leaf node obtained by performing tree division on the point cloud and containing a point cloud point;

[0018] Determining the Hilbert order corresponding to the plurality of subnodes using the geometric coordinates of the plurality of subnodes;

[0019] Arranging the occupancy information of the plurality of child nodes according to the Hilbert order to obtain a space occupancy code corresponding to the first node, wherein the occupancy information is used to indicate whether the child node contains a point cloud point;

[0020] The space occupancy code is encoded.

[0021] A fourth aspect of an embodiment of the present application provides a point cloud decoding device, comprising: a processor and a memory storing a computer program, wherein the processor implements the following steps when executing the computer program:

[0022] Divide the first node into a plurality of child nodes, wherein the first node is any non-leaf node obtained by performing tree division on the point cloud and containing a point cloud point;

[0023] Determining the Hilbert order corresponding to the plurality of subnodes using the geometric coordinates of the plurality of subnodes;

[0024] Decoding the code stream to obtain a space occupancy code corresponding to the first node;

[0025] Determining a target subnode containing a point cloud point on the Hilbert order according to the space occupancy code;

[0026] If the target child node is a non-leaf node, the target child node is divided into trees.

[0027] A fifth aspect of an embodiment of the present application provides a computer-readable storage medium, wherein the computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, any one of the point cloud encoding methods provided in the embodiments of the present application is implemented.

[0028] In a sixth aspect, an embodiment of the present application provides a computer-readable storage medium, wherein the computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, any one of the point cloud decoding methods provided in the embodiments of the present application is implemented.

[0029] In the point cloud encoding and decoding method provided in the embodiment of the present application, the spatial occupancy code corresponding to the first node generated by the encoding end is obtained by arranging the occupancy information of each subnode corresponding to the first node in the order of Hilbert order. Therefore, the decoding end also needs to arrange each subnode in the order of Hilbert order so as to determine the target subnode containing the point cloud point in each subnode by comparing the spatial occupancy code. In this way, after completing the encoding and decoding of the point cloud geometric data, the point cloud points have been arranged in the order of Hilbert order, and there is no need to reorder the point cloud points. This greatly facilitates the subsequent encoding and decoding of point cloud attributes based on the Hilbert order and improves the overall feasibility of the point cloud encoding and decoding solution. BRIEF DESCRIPTION OF THE DRAWINGS

[0030] In order to more clearly illustrate the technical solutions in the embodiments of the present application, the following briefly introduces the drawings required for use in the description of the embodiments. Obviously, the drawings described below are only some embodiments of the present application. For ordinary technicians in this field, other drawings can be obtained based on these drawings without any creative work.

[0031] Figure 1 The embodiments of the present application provide two-dimensional and three-dimensional model diagrams of the Hilbert curve.

[0032] Figure 2 This is a flowchart of the point cloud encoding method provided in an embodiment of the present application.

[0033] Figure 3 This is a schematic diagram of an octree partitioning method provided in an embodiment of the present application.

[0034] Figure 4 This is a schematic diagram of tree-like division of a point cloud provided in an embodiment of the present application.

[0035] Figures 5A to 5C They are respectively the Hilbert order provided in the embodiment of the present application, the distance from the first child node is 1, The distribution diagram of the surrounding child nodes.

[0036] Figure 6This is a schematic diagram of the encoding and decoding sequence of node occupancy information based on the Morton sequence provided in an embodiment of the present application.

[0037] Figure 7 This is a distribution diagram of the surrounding sub-nodes of the first sub-node based on the Morton order provided in an embodiment of the present application.

[0038] Figure 8 This is a flowchart of the point cloud decoding method provided in an embodiment of the present application.

[0039] Figure 9 It is a structural diagram of the point cloud encoding device provided in an embodiment of the present application.

[0040] Figure 10 It is a structural diagram of the point cloud decoding device provided in an embodiment of the present application. DETAILED DESCRIPTION

[0041] The following will be combined with the drawings in the embodiments of this application to clearly and completely describe the technical solutions in the embodiments of this application. Obviously, the embodiments described are only part of the embodiments of this application, not all of the embodiments. Based on the embodiments in this application, all other embodiments obtained by ordinary technicians in this field without making creative efforts are within the scope of protection of this application.

[0042] A point cloud is a collection of multiple points in three-dimensional space. The point cloud data for each point can include both a geometric component and an attribute component. The geometric component is referred to as geometric data, while the attribute component is referred to as attribute data. Geometric data characterizes the point's position in three-dimensional space, such as its geometric coordinates. Attribute data can include various attributes of the point, such as color and reflectivity.

[0043] A single point cloud frame often contains hundreds of thousands or even hundreds of millions of points, making point cloud data extremely large. Encoding and compressing point cloud data is essential for facilitating its storage and transmission. The geometric and attribute data of a point cloud are encoded and decoded separately. Because the encoding and decoding of attribute data requires the use of geometric data, geometric data encoding and decoding is typically completed before attribute data encoding and decoding.

[0044] In one embodiment, the encoding and decoding of point cloud attributes can be performed based on the Hilbert order. Specifically, after determining the Hilbert order corresponding to multiple point cloud points, the attribute encoding and decoding of the point cloud points can be performed in sequence according to the order of the point cloud points on the Hilbert order. Since the Hilbert order has a good spatial neighbor characteristic, the point cloud points that are adjacent or close to the currently encoded point cloud point (hereinafter referred to as the current point) in order will also be close to the current point in spatial distance. Therefore, the prediction of the attribute value of the current point based on the attribute value of the point cloud point that has been encoded and decoded before the order can be more accurate, so that the compression performance is improved. See Figure 1 , Figure 1 The embodiments of the present application provide two-dimensional and three-dimensional model diagrams of the Hilbert curve.

[0045] The encoding and decoding of point cloud attributes is performed after the encoding and decoding of point cloud geometry is complete. However, since the reconstructed point cloud points are arranged in Morton order after the geometric data is encoded and decoded, if the attribute encoding and decoding of the point cloud is to be performed in Hilbert order, the reconstructed point cloud points need to be reordered after the geometric encoding and decoding. These reconstructed point cloud points are huge in number, and reordering them is very time-consuming, making the overall solution less feasible.

[0046] In order to solve the technical problem of needing to reorder the point cloud points reconstructed after geometric encoding and decoding before performing attribute encoding and decoding on the point cloud, the embodiment of the present application provides a point cloud encoding method, which can be seen in Figure 2 , Figure 2 : is a flowchart of the point cloud encoding method provided in an embodiment of the present application. The method includes the following steps:

[0047] S202: Divide the first node into multiple sub-nodes.

[0048] S204: Determine the Hilbert order corresponding to the multiple child nodes using the geometric coordinates of the multiple child nodes.

[0049] S206 : Arrange the occupancy information of the multiple child nodes according to the Hilbert order to obtain a space occupancy code corresponding to the first node.

[0050] The occupancy information is used to indicate whether the subnode contains the point cloud point;

[0051] S208: Encode the space occupancy code.

[0052] In the above steps, the first node is any non-leaf node obtained by performing tree division on the point cloud and containing a point cloud point, and the occupancy information of the child node is used to indicate whether the child node contains a point cloud point.

[0053] When encoding and decoding the geometric data of the point cloud, in one embodiment, it can be achieved by dividing the point cloud into a tree. To divide the point cloud into a tree, specifically, all the point cloud points in the point cloud can be wrapped by a bounding box, and the bounding box can be recursively divided in a specified manner. The so-called recursive division can be that after each node is divided, the sub-nodes containing point cloud points in the multiple sub-nodes obtained by the division are divided again. Here, a node can correspond to a space, and the above-mentioned bounding box can also correspond to a node, which can be called a root node. Dividing the node is to divide the space, and after the division, multiple sub-nodes can be obtained, and each sub-node corresponds to a small space. By continuously dividing the nodes containing point cloud points (nodes that do not contain point cloud points are not divided), the sub-nodes finally obtained by the division will correspond to a minimum unit space, and the node corresponding to the unit space can be called a leaf node. Since a leaf node only contains one point cloud point, the geometric coordinates of the point cloud points contained in the leaf node can be determined based on the geometric coordinates of the leaf node (for example, the coordinates of the geometric center).

[0054] It is understandable that the bounding box containing the entire point cloud can be of various shapes, such as a cuboid or a cube. When dividing the nodes, in one embodiment, the same division method can be used for each division, such as an octree division method can be used for all divisions, such as Figure 3 As shown, Figure 3 This is a schematic diagram of an octree partitioning method provided in an embodiment of the present application. In one embodiment, different partitioning methods can be used for different partitions, or several partitioning methods can be mixed according to certain rules. Here, there are many optional partitioning methods, such as octree, quadtree, binary tree, K+D tree, etc.

[0055] For the encoding end, since the true geometric coordinates of each point cloud point in the point cloud are known, when it divides the point cloud into trees, it can determine the sub-nodes containing the point cloud points from the multiple sub-nodes obtained by division based on the true geometric coordinates of the point cloud points, so that these sub-nodes can be further divided until they are divided into the leaf node level. For the decoding end, if it can perform the same tree division of the point cloud as the encoding end, then when it is divided into the leaf node level, it can reconstruct the geometric coordinates of the point cloud points based on the geometric coordinates of the leaf nodes, without the need to transmit the geometric coordinates themselves with a huge amount of data, thereby achieving a compression effect. However, the decoding end does not know the geometric coordinates of each point cloud point like the encoding end, so it needs some information to ensure synchronization with the tree division of the encoding end. Here, this information can be called division information.

[0056] The division information may include the geometric information of the bounding box. The geometric information of the bounding box can make the bounding box uniquely determined. It can be encoded by the encoding end and written into the code stream so that the decoding end can decode and obtain the geometric information, and use the geometric information to generate the same bounding box as the encoding end. In one embodiment, the geometric information of the bounding box can be the length, width, and height dimension data of the bounding box and the geometric coordinates of the center or other vertices. In one embodiment, the shape of the bounding box can be determined based on the maximum geometric coordinates and minimum geometric coordinates of the point cloud points, and the tree division depth of the bounding box in each coordinate direction can be determined based on the maximum geometric coordinates and minimum geometric coordinates of the point cloud points. Here, the tree division depth of a certain coordinate direction is equivalent to the maximum number of divisions in the coordinate direction, and the maximum geometric coordinate can be expressed as (x max ,y max , z max ), the minimum geometric coordinate is expressed as (x min ,y min , z min ), the tree partitioning depth in each coordinate direction can be expressed as: d x =[log2(x max -x min )],d y =[log2(y max -y min )],d z =[log2(z max -z min )].

[0057] The division information may also include a space occupancy code, which may be used to indicate which child nodes are to be divided as the child nodes containing point cloud points. Specifically, the encoding end may generate a space occupancy code corresponding to the first node after dividing the first node into multiple child nodes, and may encode the space occupancy code and write it into the code stream. Correspondingly, the decoding end may decode the space occupancy code from the code stream, and determine which of the multiple child nodes corresponding to the first node are the child nodes containing point cloud points to be divided based on the space occupancy code, so that these child nodes containing point cloud points may be further divided. Here, as mentioned above, the first node may be any non-leaf node containing point cloud points, and the space occupancy code corresponding to the first node, in one embodiment, may be obtained by arranging the occupancy information of the various child nodes corresponding to the first node in a certain order.

[0058] The occupancy information of a node can be used to indicate whether the node contains point cloud points. Since containing point cloud points and not containing point cloud points are two different situations, the occupancy information can be represented differently for different situations. In one embodiment, the occupancy information can be represented using binary symbols 0 and 1. For example, in one example, a first binary symbol 1 can be used to indicate that the node contains point cloud points, and a second binary symbol 0 can be used to indicate that the node does not contain point cloud points.

[0059] When performing tree division on the point cloud, the point cloud can be gradually divided from the root node level to the leaf node level to obtain a tree structure. Among them, for the nodes at the same level in the tree structure, if there are multiple nodes in the nodes of the level that contain point cloud points and need to be divided, the division order of these nodes to be divided can be determined according to their sorting on the Hilbert order of the level. For example, after a certain node is divided, a, b, c, d, e, f, g, and h can be obtained. Among them, the child nodes c, d, and e are the child nodes to be divided that contain point cloud points. Then, the 8 child nodes can be arranged in the Hilbert order. For example, the order of the child nodes obtained after the arrangement is: d, e, f, c, a, b, h. Then, the division order of the child nodes c, d, and e can be determined according to their sorting on the child node order, that is, the child nodes c, d, and e can be divided in the order of d, e, and c.

[0060] Each divided node has a corresponding space occupancy code, and these space occupancy codes can follow certain rules when writing into the code stream. For example, the writing order of the space occupancy codes can correspond to the division order of the nodes. Since the encoding end divides the nodes layer by layer, that is, only when the nodes of the current layer are divided, will the division of the nodes of the next layer be carried out. Therefore, in the code stream, the space occupancy codes of the nodes at the same layer can be continuous. The writing order of the space occupancy codes of the nodes at the same layer also corresponds to the division order of the nodes in the layer. For example, in the previous example, the sub-nodes c, d, and e are nodes at the same layer, so the space occupancy codes corresponding to the sub-nodes c, d, and e will be continuous in the code stream, and since the division order of the sub-nodes c, d, and e is d, e, c, the space occupancy codes corresponding to the sub-nodes c, d, and e are also written into the code stream in the order of d, e, c. You can refer to Figure 4 In the example shown, according to the overall division order from layer to layer and from left to right for a single layer, the order of the space occupation codes written into the code stream can be determined as: 00000010, 00010010, 00110000, 00011010.

[0061] When geometrically encoding and decoding a point cloud based on the Morton order, the encoder divides the first node into multiple sub-nodes and determines the occupancy information of each sub-node. Then, the occupancy information of each sub-node will be arranged in the order of the Morton order to generate a space occupancy code. Correspondingly, the decoder can decode the space occupancy code from the bitstream, but when determining the sub-node containing the point cloud point based on the space occupancy code, it is necessary to first arrange the sub-nodes in the order of the Morton order, so that the target sub-node to be divided in each sub-node can be determined by comparing the space occupancy code. Then, after completing the geometric encoding and decoding of the point cloud, each point cloud point will be arranged in the order of the Morton order, which is not conducive to the subsequent encoding and decoding of the point cloud attributes based on the Hilbert order, and each point cloud point needs to be reordered.

[0062] In the point cloud encoding and decoding method provided in the embodiment of the present application, the spatial occupancy code corresponding to the first node generated by the encoding end is obtained by arranging the occupancy information of each subnode corresponding to the first node in the order of Hilbert order. Therefore, the decoding end also needs to arrange each subnode in the order of Hilbert order so as to determine the target subnode containing the point cloud point in each subnode by comparing the spatial occupancy code. In this way, after completing the encoding and decoding of the point cloud geometry data, the point cloud points have been arranged in the order of Hilbert order, and there is no need to reorder the point cloud points, which greatly facilitates the subsequent encoding and decoding of point cloud attributes based on Hilbert order and improves the overall feasibility of the point cloud encoding and decoding solution.

[0063] The encoding of the spatial occupancy code by the encoder can be implemented in various ways. In one implementation, the encoder can use context-based adaptive binary arithmetic coding to encode the spatial occupancy code. Correspondingly, the decoder can also use context-based adaptive binary arithmetic decoding to decode the spatial occupancy code from the bitstream. Here, context-based adaptive binary arithmetic coding and decoding encodes and decodes the occupancy information in the spatial occupancy code piece by piece. Therefore, for ease of understanding, the first occupancy information can be used as the encoding and decoding object for the following description.

[0064] The first occupancy information is the occupancy information of the first child node, and the first child node is any child node among the multiple child nodes obtained by dividing the first node. When encoding and decoding the first occupancy information based on context-based adaptive binary arithmetic coding and decoding, specifically, the context model corresponding to the first occupancy information can be determined first, and then the first occupancy information can be arithmetically coded and decoded according to the context model. Here, the context model can also be called a probability model, and the context model can include two probability values, a first probability value and a second probability value, wherein the first probability value can be the probability that the first occupancy information is occupancy information containing point cloud points, such as the first probability value can be the probability that the first occupancy information is a binary symbol 0, and the second probability value can be the probability that the first occupancy information is occupancy information that does not contain point cloud points, such as the second probability value can be the probability that the first occupancy information is a binary symbol 1. After determining the context model corresponding to the first occupancy information, that is, determining the probability that the first occupancy information contains point cloud points and does not contain point cloud points, the first occupancy information can be arithmetically coded and decoded according to the probability.

[0065] When determining the context model corresponding to the first occupancy information, there can be multiple implementations. In one implementation, the context model corresponding to the first occupancy information can be determined based on the spatial position of the first child node in the first node. Among them, the spatial position of the first child node in the first node can have N situations, and here, the specific value of N can be determined according to the division method of the first node. For example, if the first node is divided in an octree manner, the first node will be divided into 8 child nodes, then the first child node can be any one of the 8 child nodes, and the spatial position of the first child node in the first node can have 8 situations. Furthermore, 8 context models can be pre-constructed corresponding to these 8 situations, then when determining the context model of the first occupancy information, a context model corresponding to the spatial position of the first child node can be determined from the 8 context models as the context model corresponding to the first occupancy information.

[0066] When determining the context model corresponding to the first occupancy information, in one embodiment, the context model corresponding to the first occupancy information can be determined based on the occupancy information of the surrounding sub-nodes of the first sub-node. Here, the surrounding sub-nodes are sub-nodes that are close to the first sub-node in terms of spatial distance, and specifically, they can be sub-nodes whose distance from the first sub-node is a first preset value. The first preset value can include one or more of the following values: 1.

[0067] It should be noted that the distance between sub-nodes mentioned here is based on the side length of the sub-node as the unit distance, which can be referred to Figure 5A, the cube at the center (indicated by the dotted line) corresponds to the first child node, and the surrounding child nodes with a distance of 1 from the first child node can include adjacent child nodes in the six directions of the first child node: front, back, left, right, top, and bottom. Figure 5B , the distance from the first child node is The surrounding sub-nodes of may include 4 sub-nodes in the same XY plane as the first sub-node, 4 sub-nodes in the same XZ plane as the first sub-node, and 4 sub-nodes in the same YZ plane as the first sub-node, for a total of 12 sub-nodes with a distance of The surrounding child nodes of . Figure 5C , the distance from the first child node is There can be 8 peripheral child nodes, located at the 8 vertices of the 3*3*3 cube combination centered on the first child node.

[0068] In one embodiment, multiple surrounding sub-nodes corresponding to the first sub-node can be grouped to obtain multiple sub-node groups, and the context model corresponding to the first occupancy information can be determined based on the occupancy information corresponding to each sub-node group. It can be understood that a sub-node group can include at least one sub-node. If a sub-node group only contains one surrounding sub-node, the occupancy information corresponding to the sub-node group can be the occupancy information of the surrounding sub-node; if a sub-node group contains two or more surrounding sub-nodes, then in one example, when none of the surrounding sub-nodes in the group contains point cloud points, the occupancy information of the sub-node group can be determined as occupancy information that does not contain point cloud points. If any of the surrounding sub-nodes in the sub-node group contains point cloud points, the occupancy information corresponding to the sub-node group can be determined as occupancy information that contains point cloud points. Here, if the occupancy information containing point cloud points is represented by a first binary symbol 1, and the occupancy information not containing point cloud points is represented by a second binary symbol 0, then when determining the occupancy information corresponding to the sub-node group, the occupancy information of each surrounding sub-node in the group can be ORed, and the result of the ORed operation can be used as the occupancy information corresponding to the sub-node group.

[0069] If the surrounding sub-nodes are divided into K sub-node groups, since the occupancy information of each sub-node group corresponds to two possibilities (i.e., it may contain point cloud points or it may not contain point cloud points), there are a total of 2 possible situations after integrating all sub-node groups. K Species. K Context models are established for each case, and the 2 K Context models, where each context model can correspond to a situation. In this way, after determining the occupancy information corresponding to each sub-node group, the occupancy information corresponding to each sub-node group can be used to select the sub-nodes from the 2 KA context model is determined from the context models as the context model corresponding to the first occupancy information.

[0070] When determining the context model corresponding to the first occupancy information based on the occupancy information corresponding to each sub-node group, in one embodiment, a first index can be determined based on the occupancy information corresponding to each sub-node group, and the context model corresponding to the first index can be determined as the context model corresponding to the first occupancy information. Here, regarding the method for determining the first index, in one embodiment, the numerical value corresponding to the binary symbol string obtained by arranging the occupancy information corresponding to each sub-node group can be used as the first index. As mentioned above, the occupancy information can be represented by binary symbols, so a binary symbol string can be formed after the occupancy information is arranged. For example, if the surrounding sub-nodes are divided into 7 sub-node groups, the binary symbol string obtained by arranging the occupancy information corresponding to the 7 sub-node groups can be 1111000, and the numerical value corresponding to 1111000 is 120, that is, 2 7 The context model with an index of 120 among the context models is determined as the context model corresponding to the first occupancy information.

[0071] There are also multiple implementations for dividing the surrounding sub-nodes into sub-node groups. As mentioned above, the surrounding sub-nodes may include 6 surrounding sub-nodes with a distance of 1 from the first sub-node, and 6 surrounding sub-nodes with a distance of The 12 surrounding child nodes of are at a distance from the first child node. In one embodiment, the 6 surrounding sub-nodes with a distance of 1 can be divided into 3 groups. Specifically, the two surrounding sub-nodes in the same X-axis direction as the first sub-node can be a group (i.e., the front and back sub-nodes are a group), the two surrounding sub-nodes in the same Y-axis direction as the first sub-node can be a group (i.e., the left and right sub-nodes are a group), and the two surrounding sub-nodes in the same Z-axis direction as the first sub-node can be a group (i.e., the upper and lower sub-nodes are a group); The 12 surrounding sub-nodes of the first sub-node are divided into 3 groups. Specifically, the four surrounding sub-nodes with the first sub-node in the same XY plane can be one group, the four surrounding sub-nodes with the first sub-node in the same XZ plane can be one group, and the four surrounding sub-nodes with the first sub-node in the same YZ plane can be one group; The 8 surrounding child nodes of are divided into 1 group, thereby obtaining 7 child node groups.

[0072] The above method of dividing the surrounding sub-nodes into 7 sub-node groups can be combined with Figures 5A to 5CBy dividing the sub-node groups in this way, the distribution characteristics of point clouds in different directions and planes can be taken into account when performing context modeling. This makes the probabilities in the context models corresponding to various situations statistically closer to the true probabilities, which can improve compression performance. In addition, the probability distribution of each context model is more stable, eliminating information entropy redundancy and improving the performance of entropy coding.

[0073] It should be noted that, when performing context modeling, the first preset value may be adjusted according to actual conditions, for example, the first preset value may only include 1 and Not included Thus, there can be only 18 surrounding child nodes (6 with a distance of 1 and 6 with a distance of 12), the first preset value may also include only 1, not including and Thus, there may be only 6 peripheral sub-nodes. Similarly, the grouping method of the peripheral sub-nodes may be selected according to actual needs, and the embodiment of the present application does not impose any limitation thereto.

[0074] Taking into account that in a scene with a relatively sparse point cloud density, there is a high probability that none of the surrounding sub-nodes of the first sub-node contain point cloud points. Therefore, in one embodiment, in order to further improve the accuracy of the probability in the context model, further classification can be performed for the case where none of the surrounding sub-nodes contain point cloud points. Specifically, if the occupancy information of each surrounding sub-node is occupancy information indicating that no point cloud points are contained, for example, all are the second binary symbol 0, then the context model corresponding to the first occupancy information can be determined based on the occupancy information of the surrounding nodes of the first node (the parent node of the first sub-node).

[0075] The surrounding nodes of the first node may be the surrounding nodes whose distance from the first node is a second preset value. For example, the second preset value may be 1, and the surrounding nodes may include the adjacent nodes in the front, back, left, right, top, and bottom directions of the first node. Of course, the second preset value may also include It should be noted that the distance between nodes described here is based on the side length of the node as the unit distance, which is different from the first preset value described above that uses the side length of the child node as the unit distance.

[0076] When performing context modeling, in one embodiment, the number of context models to be constructed can be determined based on the number of surrounding nodes. For example, the second preset value can be 1, and the first node can include 6 surrounding nodes with a distance of 1. Since the occupancy information of each surrounding node has two possible situations, there are a total of 2 possible situations. 6 Species, you can target the 2 6For each of the cases, a context model is pre-established, and 2 6 A context model.

[0077] When determining the context model corresponding to the first occupancy information based on the occupancy information of the surrounding nodes of the first node, in one embodiment, a second index can be determined based on the occupancy information of each surrounding node, so that the context model corresponding to the second index can be determined as the context model corresponding to the first occupancy information. Here, the occupancy information of the surrounding nodes can be binary symbols, so the occupancy information of the surrounding nodes can be arranged to form a binary symbol string, and the numerical value corresponding to the binary symbol string can be the second index. For example, if the surrounding nodes are 6 nodes with a distance of 1 from the first node, the binary symbol string obtained by arranging the occupancy information of the 6 surrounding nodes can be 111100, and the numerical value corresponding to 111100 is 60, that is, it can be obtained from 2 6 The context model with an index of 60 among the context models is determined as the context model corresponding to the first occupancy information.

[0078] After determining the context model corresponding to the first occupancy information, the encoding end can use the context model to perform arithmetic encoding on the first occupancy information and write it into the bitstream. The decoding end can use the context model to perform arithmetic decoding to obtain the first occupancy information by decoding from the bitstream.

[0079] It should be noted that when performing geometric encoding and decoding of point clouds based on the Morton order, the encoding and decoding order of node occupancy information is fixed. Figure 6 , Figure 6 This is a schematic diagram of the node occupancy information encoding and decoding sequence based on the Morton sequence provided by the embodiment of the present application. Figure 6 In the example shown, the encoding and decoding order based on the Morton sequence is fixed in the order of 000, 001, 010, 011, 100, 101, 110, 111. Based on this characteristic of the Morton sequence, the nodes located in the positive direction of the current node coordinate axis must be nodes that have not completed encoding and decoding, and the nodes located in the negative direction of the current node coordinate axis must be nodes that have completed encoding and decoding. Therefore, for the surrounding sub-nodes of the first sub-node, only the nodes in the negative direction that have completed encoding and decoding need to be considered, and there is no need to consider the nodes in the positive direction whose occupancy information is unknown. Specifically, since the Morton sequence only needs to consider the nodes in the negative direction, there are only 3 surrounding sub-nodes with a distance of 1 from the first sub-node, and there are only 3 surrounding sub-nodes with a distance of 1 from the first sub-node. The surrounding sub-nodes of include only 3, and the distance from the first sub-node is The surrounding child nodes include only one, you can refer to Figure 7 , Figure 7The dark-colored node is the first child node, and the remaining seven nodes are the peripheral child nodes of the first child node based on the Morton order.

[0080] However, the encoding and decoding of point cloud geometry based on Hilbert order is different. The encoding and decoding order based on Hilbert order is not fixed. Even the nodes located in the positive direction of the current node coordinate axis may be nodes that have completed encoding and decoding. Therefore, for the surrounding subnodes of the first subnode, the nodes located in the positive direction of the current node coordinate axis can also be considered. Thus, there can be 6 surrounding subnodes with a distance of 1 from the first subnode, and 6 surrounding subnodes with a distance of There can be 12 surrounding child nodes, and the distance from the first child node is There can be 8 surrounding child nodes.

[0081] It should be noted that, since the surrounding sub-nodes of the first sub-node may not have completed encoding and decoding when performing point cloud geometry encoding and decoding based on the Hilbert order, the occupancy information of these surrounding sub-nodes that have not completed encoding and decoding is unknown (in order to maintain consistency with the decoding end, the encoding end will also regard the occupancy information of the surrounding sub-nodes that have not completed encoding and decoding as unknown). At this time, in one embodiment, the occupancy information of these surrounding sub-nodes that have not completed encoding and decoding can be regarded as not containing the occupancy information of point cloud points. In one embodiment, the occupancy information of these surrounding sub-nodes that have not completed encoding and decoding can also be regarded as containing the occupancy information of point cloud points.

[0082] When determining the Hilbert order corresponding to the plurality of subnodes using their geometric coordinates, the geometric coordinates of each subnode can be converted into a corresponding Hilbert code, and the subnodes can be sorted from largest to smallest or from smallest to largest based on the size of the Hilbert code, thereby obtaining the Hilbert order corresponding to each subnode. There are various ways to convert geometric coordinates into Hilbert codes, such as by table lookup or mathematical calculation.

[0083] In the point cloud encoding and decoding method provided in the embodiment of the present application, the spatial occupancy code corresponding to the first node generated by the encoding end is obtained by arranging the occupancy information of each subnode corresponding to the first node in the order of Hilbert order. Therefore, the decoding end also needs to arrange each subnode in the order of Hilbert order so as to determine the target subnode containing the point cloud point in each subnode by comparing the spatial occupancy code. In this way, after completing the encoding and decoding of the point cloud geometric data, the point cloud points have been arranged in the order of Hilbert order, and there is no need to reorder the point cloud points. This greatly facilitates the subsequent encoding and decoding of point cloud attributes based on the Hilbert order and improves the overall feasibility of the point cloud encoding and decoding solution.

[0084] You can refer to the following Figure 8 , Figure 8This is a flow chart of the point cloud decoding method provided in an embodiment of the present application. The method may include the following steps:

[0085] S802: Divide the first node into multiple sub-nodes.

[0086] S804: Determine the Hilbert order corresponding to the multiple child nodes using the geometric coordinates of the multiple child nodes.

[0087] S806: Decode the code stream to obtain a space occupancy code corresponding to the first node.

[0088] S808 : Determine a target child node including a point cloud point on the Hilbert sequence according to the space occupancy code.

[0089] S810: If the target child node is a non-leaf node, perform the tree division on the target child node.

[0090] Here, the first node may be any non-leaf node obtained by performing tree division on the point cloud and containing a point cloud point.

[0091] As mentioned above, since the decoding end does not know the geometric coordinates of each point cloud point like the encoding end, the division of other nodes except the root node needs to be carried out according to the indication of the space occupancy code. Specifically, the space occupancy code can be used to determine which child nodes are the target child nodes containing point cloud points, so that the target child nodes can be further divided. Of course, if the target child node is already a leaf node (the smallest spatial unit), the geometric coordinates of the point cloud point can be directly determined based on the geometric coordinates of the target child node.

[0092] When the space occupancy code corresponding to the first node is decoded (at this time the first node has been divided according to the space occupancy code obtained previously by decoding), since the space occupancy code is obtained by arranging the occupancy information of each child node of the first node in the order of the Hilbert order, it is necessary to first determine the Hilbert order corresponding to each child node, arrange each child node in the order of the Hilbert order, and then compare the space occupancy code of the first node obtained by decoding to determine the target child node containing the point cloud point in each child node.

[0093] In this way, when the decoding end completes the decoding of the point cloud geometric data, each point cloud point has been arranged in the order of the Hilbert order, and can be used for point cloud attribute encoding and decoding based on the Hilbert order without reordering, which greatly improves the efficiency of point cloud data encoding and decoding and improves the feasibility of the overall solution for point cloud data encoding and decoding based on the Hilbert order.

[0094] Optionally, the decoding from the code stream to obtain the space occupancy code corresponding to the first node includes:

[0095] Context-based adaptive binary arithmetic decoding is used to decode the code stream to obtain a space occupancy code corresponding to the first node.

[0096] Optionally, the using context-based adaptive binary arithmetic decoding to decode from the bitstream to obtain the space occupancy code corresponding to the first node includes:

[0097] Determining a context model corresponding to first occupancy information, where the first occupancy information is occupancy information of a first child node, and the first child node is any child node among the multiple child nodes;

[0098] Performing arithmetical decoding on the code stream according to the context model to obtain the first occupancy information.

[0099] Optionally, determining a context model corresponding to the first occupancy information includes:

[0100] A context model corresponding to the first occupancy information is determined according to the spatial position of the first subnode in the first node.

[0101] Optionally, determining a context model corresponding to the first occupancy information includes:

[0102] A context model corresponding to the first occupancy information is determined based on occupancy information of a plurality of surrounding sub-nodes whose distances from the first sub-node are a first preset value.

[0103] Optionally, the first preset value includes one or more of the following values: 1.

[0104] Optionally, among the multiple surrounding sub-nodes, the occupancy information of the undecoded surrounding sub-nodes is determined to not include occupancy information of the point cloud points.

[0105] Optionally, the multiple surrounding sub-nodes are divided into multiple sub-node groups, and determining the context model corresponding to the first occupancy information based on the occupancy information of the surrounding sub-nodes whose distance from the first sub-node is a first preset value includes:

[0106] Determining occupancy information corresponding to each of the subnode groups;

[0107] A context model corresponding to the first occupancy information is determined according to the occupancy information corresponding to each of the sub-node groups.

[0108] Optionally, the determining the occupancy information corresponding to each of the subnode groups includes:

[0109] For any child node group among the multiple child node groups, if any surrounding child node in the child node group includes a point cloud point, determining the occupancy information of the child node group as occupancy information including a point cloud point;

[0110] If all surrounding sub-nodes in the sub-node group do not include point cloud points, it is determined that the occupancy information of the sub-node group is occupancy information that does not include point cloud points.

[0111] Optionally, determining, according to the occupancy information corresponding to each of the sub-node groups, a context model corresponding to the first occupancy information includes:

[0112] Determine a first index according to occupancy information corresponding to each of the sub-node groups;

[0113] Determine that the context model corresponding to the first occupancy information is the context model corresponding to the first index.

[0114] Optionally, the first binary symbol is used to indicate occupancy information including point cloud points, and the second binary symbol is used to indicate occupancy information not including point cloud points.

[0115] Optionally, the first index is a numerical value corresponding to a binary symbol string obtained by arranging the occupancy information corresponding to each of the sub-node groups.

[0116] Optionally, among the multiple peripheral sub-nodes, the six peripheral sub-nodes whose distance from the first sub-node is 1 are divided into three sub-node groups corresponding to the X-axis direction, the Y-axis direction, and the Z-axis direction.

[0117] Optionally, among the multiple surrounding sub-nodes, the distance from the first sub-node is The 12 surrounding sub-nodes are divided into three sub-node groups corresponding to the XY plane, XZ plane and YZ plane.

[0118] Optionally, among the multiple surrounding sub-nodes, the distance from the first sub-node is The 8 surrounding child nodes are divided into a child node group.

[0119] Optionally, the method further includes:

[0120] If the occupancy information of the plurality of surrounding sub-nodes all indicates that no point cloud points are included, a context model corresponding to the first occupancy information is determined based on the occupancy information of surrounding nodes whose distance from the first node is a second preset value.

[0121] Optionally, determining the context model corresponding to the first occupancy information according to occupancy information of surrounding nodes whose distance from the first node is a second preset value includes:

[0122] Determine a second index according to the occupancy information of each of the surrounding nodes;

[0123] Determine that the context model corresponding to the first occupancy information is the context model corresponding to the second index.

[0124] Optionally, the second index is a numerical value corresponding to a binary symbol string obtained by arranging the occupancy information of each of the surrounding nodes.

[0125] Optionally, determining the Hilbert order corresponding to the multiple sub-nodes by using the geometric coordinates of the multiple sub-nodes includes:

[0126] Convert the geometric coordinates of each of the subnodes into a corresponding Hilbert code;

[0127] The sub-nodes are sorted according to the Hilbert code to obtain a Hilbert order.

[0128] In the point cloud encoding and decoding method provided in the embodiment of the present application, the spatial occupancy code corresponding to the first node generated by the encoding end is obtained by arranging the occupancy information of each subnode corresponding to the first node in the order of Hilbert order. Therefore, the decoding end also needs to arrange each subnode in the order of Hilbert order so as to determine the target subnode containing the point cloud point in each subnode by comparing the spatial occupancy code. In this way, after completing the encoding and decoding of the point cloud geometric data, the point cloud points have been arranged in the order of Hilbert order, and there is no need to reorder the point cloud points. This greatly facilitates the subsequent encoding and decoding of point cloud attributes based on the Hilbert order and improves the overall feasibility of the point cloud encoding and decoding solution.

[0129] You can refer to the following Figure 9 , Figure 9 Schematic diagram of the structure of the point cloud encoding device provided in an embodiment of the present application. The device may include: a processor 910 and a memory 920 storing a computer program, wherein the processor implements the following steps when executing the computer program:

[0130] Divide the first node into a plurality of child nodes, wherein the first node is any non-leaf node obtained by performing tree division on the point cloud and containing a point cloud point;

[0131] Determining the Hilbert order corresponding to the plurality of subnodes using the geometric coordinates of the plurality of subnodes;

[0132] Arranging the occupancy information of the plurality of child nodes according to the Hilbert order to obtain a space occupancy code corresponding to the first node, wherein the occupancy information is used to indicate whether the child node contains a point cloud point;

[0133] The space occupancy code is encoded.

[0134] Optionally, when encoding the space occupancy code, the processor is configured to encode the space occupancy code using context-based adaptive binary arithmetic coding.

[0135] Optionally, when the processor uses context-based adaptive binary arithmetic coding to encode the spatial occupancy code, it is used to determine a context model corresponding to first occupancy information, where the first occupancy information is occupancy information of a first child node, and the first child node is any child node among the multiple child nodes; and arithmetically encode the first occupancy information according to the context model.

[0136] Optionally, when determining the context model corresponding to the first occupancy information, the processor is used to determine the context model corresponding to the first occupancy information based on the spatial position of the first sub-node in the first node.

[0137] Optionally, when determining the context model corresponding to the first occupancy information, the processor is used to determine the context model corresponding to the first occupancy information based on occupancy information of multiple surrounding sub-nodes whose distance from the first sub-node is a first preset value.

[0138] Optionally, the first preset value includes one or more of the following values: 1.

[0139] Optionally, among the multiple surrounding sub-nodes, the occupancy information of the uncoded surrounding sub-nodes is determined to not include occupancy information of the point cloud points.

[0140] Optionally, the multiple surrounding sub-nodes are divided into multiple sub-node groups, and the processor is used to determine the occupancy information corresponding to each of the sub-node groups when determining the context model corresponding to the first occupancy information based on the occupancy information of the surrounding sub-nodes whose distance from the first sub-node is a first preset value; and determine the context model corresponding to the first occupancy information based on the occupancy information corresponding to each of the sub-node groups.

[0141] Optionally, when determining the occupancy information corresponding to each of the sub-node groups, the processor is used to, for any sub-node group among the multiple sub-node groups, determine that the occupancy information of the sub-node group is occupancy information containing point cloud points if any surrounding sub-node in the sub-node group contains point cloud points; if all surrounding sub-nodes in the sub-node group do not contain point cloud points, determine that the occupancy information of the sub-node group is occupancy information not containing point cloud points.

[0142] Optionally, when the processor determines the context model corresponding to the first occupancy information based on the occupancy information corresponding to each of the sub-node groups, it is used to determine a first index based on the occupancy information corresponding to each of the sub-node groups; and determine that the context model corresponding to the first occupancy information is the context model corresponding to the first index.

[0143] Optionally, the first binary symbol is used to indicate occupancy information including point cloud points, and the second binary symbol is used to indicate occupancy information not including point cloud points.

[0144] Optionally, the first index is a numerical value corresponding to a binary symbol string obtained by arranging the occupancy information corresponding to each of the sub-node groups.

[0145] Optionally, among the multiple peripheral sub-nodes, the six peripheral sub-nodes whose distance from the first sub-node is 1 are divided into three sub-node groups corresponding to the X-axis direction, the Y-axis direction, and the Z-axis direction.

[0146] Optionally, among the multiple surrounding sub-nodes, the distance from the first sub-node is The 12 surrounding sub-nodes are divided into three sub-node groups corresponding to the XY plane, XZ plane and YZ plane.

[0147] Optionally, among the multiple surrounding sub-nodes, the distance from the first sub-node is The 8 surrounding child nodes are divided into a child node group.

[0148] Optionally, the processor is also used to determine the context model corresponding to the first occupancy information based on the occupancy information of the surrounding nodes whose distance from the first node is a second preset value if the occupancy information of the multiple surrounding sub-nodes all indicates that no point cloud points are included.

[0149] Optionally, when determining the context model corresponding to the first occupancy information based on the occupancy information of surrounding nodes whose distance from the first node is a second preset value, the processor is used to determine a second index based on the occupancy information of each of the surrounding nodes; and determine that the context model corresponding to the first occupancy information is the context model corresponding to the second index.

[0150] Optionally, the second index is a numerical value corresponding to a binary symbol string obtained by arranging the occupancy information of each of the surrounding nodes.

[0151] Optionally, when determining the Hilbert order corresponding to the multiple sub-nodes using the geometric coordinates of the multiple sub-nodes, the processor is used to convert the geometric coordinates of each of the sub-nodes into a corresponding Hilbert code; and sort each of the sub-nodes according to the Hilbert code to obtain the Hilbert order.

[0152] Optionally, the order of dividing the first node and other to-be-divided nodes belonging to the same layer in the tree structure is determined according to the Hilbert order corresponding to each node in the same layer.

[0153] The specific implementation of the point cloud encoding device in the various embodiments provided above can be referred to the relevant description in the previous text and will not be repeated here.

[0154] In the point cloud encoding device provided in the embodiment of the present application, the spatial occupancy code corresponding to the first node generated by the encoding end is obtained by arranging the occupancy information of each subnode corresponding to the first node in the order of Hilbert order. Therefore, the decoding end also needs to arrange each subnode in the order of Hilbert order so as to determine the target subnode containing the point cloud point in each subnode by comparing the spatial occupancy code. In this way, after completing the encoding and decoding of the point cloud geometric data, the point cloud points have been arranged in the order of Hilbert order, and there is no need to reorder the point cloud points. This greatly facilitates the subsequent encoding and decoding of point cloud attributes based on the Hilbert order and improves the overall feasibility of the point cloud encoding and decoding solution.

[0155] You can refer to the following Figure 10 , Figure 10 1 is a schematic diagram of the structure of a point cloud decoding device provided in an embodiment of the present application. The device may include: a processor 1010 and a memory 1020 storing a computer program, wherein the processor implements the following steps when executing the computer program:

[0156] Divide the first node into a plurality of child nodes, wherein the first node is any non-leaf node obtained by performing tree division on the point cloud and containing a point cloud point;

[0157] Determining the Hilbert order corresponding to the plurality of subnodes using the geometric coordinates of the plurality of subnodes;

[0158] Decoding the code stream to obtain a space occupancy code corresponding to the first node;

[0159] Determining a target subnode containing a point cloud point on the Hilbert order according to the space occupancy code;

[0160] If the target child node is a non-leaf node, the target child node is divided into trees.

[0161] Optionally, the processor is further configured to, if the target subnode is a leaf node, determine the geometric coordinates of the target subnode as the geometric coordinates of the point cloud point.

[0162] Optionally, when the processor obtains the space occupancy code corresponding to the first node by decoding from the code stream, the processor is configured to obtain the space occupancy code corresponding to the first node by decoding from the code stream using context-based adaptive binary arithmetic decoding.

[0163] Optionally, the processor is configured to, when decoding the spatial occupancy code corresponding to the first node from the bitstream using context-based adaptive binary arithmetic decoding, determine a context model corresponding to first occupancy information, where the first occupancy information is occupancy information of a first child node, and the first child node is any child node among the multiple child nodes;

[0164] Performing arithmetical decoding on the code stream according to the context model to obtain the first occupancy information.

[0165] Optionally, when determining the context model corresponding to the first occupancy information, the processor is used to determine the context model corresponding to the first occupancy information based on the spatial position of the first sub-node in the first node.

[0166] Optionally, when determining the context model corresponding to the first occupancy information, the processor is used to determine the context model corresponding to the first occupancy information based on occupancy information of multiple surrounding sub-nodes whose distance from the first sub-node is a first preset value.

[0167] Optionally, the first preset value includes one or more of the following values: 1.

[0168] Optionally, among the multiple surrounding sub-nodes, the occupancy information of the undecoded surrounding sub-nodes is determined to not include occupancy information of the point cloud points.

[0169] Optionally, the multiple surrounding sub-nodes are divided into multiple sub-node groups, and the processor is used to determine the occupancy information corresponding to each of the sub-node groups when determining the context model corresponding to the first occupancy information based on the occupancy information of the surrounding sub-nodes whose distance from the first sub-node is a first preset value; and determine the context model corresponding to the first occupancy information based on the occupancy information corresponding to each of the sub-node groups.

[0170] Optionally, when determining the occupancy information corresponding to each of the sub-node groups, the processor is used to, for any sub-node group among the multiple sub-node groups, determine that the occupancy information of the sub-node group is occupancy information containing point cloud points if any surrounding sub-node in the sub-node group contains point cloud points; if all surrounding sub-nodes in the sub-node group do not contain point cloud points, determine that the occupancy information of the sub-node group is occupancy information not containing point cloud points.

[0171] Optionally, when the processor determines the context model corresponding to the first occupancy information based on the occupancy information corresponding to each of the sub-node groups, it is used to determine a first index based on the occupancy information corresponding to each of the sub-node groups; and determine that the context model corresponding to the first occupancy information is the context model corresponding to the first index.

[0172] Optionally, the first binary symbol is used to indicate occupancy information including point cloud points, and the second binary symbol is used to indicate occupancy information not including point cloud points.

[0173] Optionally, the first index is a numerical value corresponding to a binary symbol string obtained by arranging the occupancy information corresponding to each of the sub-node groups.

[0174] Optionally, among the multiple peripheral sub-nodes, the six peripheral sub-nodes whose distance from the first sub-node is 1 are divided into three sub-node groups corresponding to the X-axis direction, the Y-axis direction, and the Z-axis direction.

[0175] Optionally, among the multiple surrounding sub-nodes, the distance from the first sub-node is The 12 surrounding sub-nodes are divided into three sub-node groups corresponding to the XY plane, XZ plane and YZ plane.

[0176] Optionally, among the multiple surrounding sub-nodes, the distance from the first sub-node is The 8 surrounding child nodes are divided into a child node group.

[0177] Optionally, the processor is also used to determine the context model corresponding to the first occupancy information based on the occupancy information of the surrounding nodes whose distance from the first node is a second preset value if the occupancy information of the multiple surrounding sub-nodes all indicates that no point cloud points are included.

[0178] Optionally, when determining the context model corresponding to the first occupancy information based on the occupancy information of surrounding nodes whose distance from the first node is a second preset value, the processor is used to determine a second index based on the occupancy information of each of the surrounding nodes; and determine that the context model corresponding to the first occupancy information is the context model corresponding to the second index.

[0179] Optionally, the second index is a numerical value corresponding to a binary symbol string obtained by arranging the occupancy information of each of the surrounding nodes.

[0180] Optionally, when determining the Hilbert order corresponding to the multiple sub-nodes using the geometric coordinates of the multiple sub-nodes, the processor is used to convert the geometric coordinates of each of the sub-nodes into a corresponding Hilbert code; and sort each of the sub-nodes according to the Hilbert code to obtain the Hilbert order.

[0181] The specific implementation of the point cloud decoding device in the various embodiments provided above can be referred to the relevant description in the previous text and will not be repeated here.

[0182] In the point cloud decoding device provided in the embodiment of the present application, the spatial occupancy code corresponding to the first node generated by the encoding end is obtained by arranging the occupancy information of each subnode corresponding to the first node in the Hilbert order. Therefore, the decoding end also needs to arrange each subnode in the Hilbert order so that the target subnode containing the point cloud point can be determined by comparing the spatial occupancy code. In this way, after completing the encoding and decoding of the point cloud geometry data, the point cloud points have been arranged in the Hilbert order, and there is no need to reorder the point cloud points. This greatly facilitates the subsequent encoding and decoding of point cloud attributes based on the Hilbert order and improves the overall feasibility of the point cloud encoding and decoding solution.

[0183] An embodiment of the present application further provides a computer-readable storage medium, wherein the computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, any point cloud encoding method provided in the embodiment of the present application is implemented.

[0184] An embodiment of the present application further provides a computer-readable storage medium, wherein the computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, any point cloud decoding method provided in the embodiment of the present application is implemented.

[0185] Multiple implementation methods are provided for each protected subject matter above. Those skilled in the art can freely combine these implementation methods based on actual circumstances, provided there are no conflicts or contradictions, thereby forming various different technical solutions. Due to the limited length of this application document, not all technical solutions resulting from these combinations can be described in detail. However, it is understood that these technical solutions that are not described in detail also fall within the scope of the embodiments disclosed in this application.

[0186] The embodiments of the present application may take the form of a computer program product implemented on one or more storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) containing program code. Computer-usable storage media include permanent and non-permanent, removable and non-removable media, and information storage can be implemented by any method or technology. Information can be computer-readable instructions, data structures, modules of programs or other data. Examples of computer storage media include but are not limited to: phase change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technology, read-only compact disc read-only memory (CD-ROM), digital versatile disc (DVD) or other optical storage, magnetic cassettes, magnetic tape magnetic disk storage or other magnetic storage devices or any other non-transmission media that can be used to store information that can be accessed by a computing device.

[0187] It should be noted that, in this article, relational terms such as first and second, etc. are only used to distinguish one entity or operation from another entity or operation, and do not necessarily require or imply any such actual relationship or order between these entities or operations. The terms "comprise", "include" or any other variants thereof are intended to cover non-exclusive inclusion, so that a process, method, article or device that includes a series of elements includes not only those elements, but also other elements that are not explicitly listed, or also includes elements that are inherent to such process, method, article or device. In the absence of further restrictions, an element defined by the sentence "comprises a..." does not exclude the presence of other identical elements in the process, method, article or device that includes the element.

[0188] The above is a detailed introduction to the methods and devices provided in the embodiments of the present invention. Specific examples are used herein to illustrate the principles and implementation methods of the present invention. The description of the above embodiments is only used to help understand the methods and core ideas of the present invention. At the same time, for those skilled in the art, according to the ideas of the present invention, there may be changes in the specific implementation methods and application scopes. In summary, the contents of this specification should not be understood as limiting the present invention.

Claims

1. A point cloud coding method, characterized in that: include: Divide the first node into a plurality of child nodes, wherein the first node is any non-leaf node obtained by performing tree division on the point cloud and containing a point cloud point; Determining the Hilbert order corresponding to the plurality of subnodes using the geometric coordinates of the plurality of subnodes; Arranging the occupancy information of the plurality of child nodes according to the Hilbert order to obtain a space occupancy code corresponding to the first node, wherein the occupancy information is used to indicate whether the child node contains a point cloud point; The space occupancy code is encoded.

2. The method according to claim 1, characterized in that The encoding of the space occupancy code comprises: The spatial occupancy code is encoded using context-based adaptive binary arithmetic coding.

3. The method according to claim 2, characterized in that The encoding of the space occupancy code by using context-based adaptive binary arithmetic coding includes: Determining a context model corresponding to first occupancy information, where the first occupancy information is occupancy information of a first child node, and the first child node is any child node among the multiple child nodes; The first occupancy information is arithmetically encoded according to the context model.

4. The method according to claim 3, characterized in that The determining the context model corresponding to the first occupancy information includes: A context model corresponding to the first occupancy information is determined according to the spatial position of the first subnode in the first node.

5. The method according to claim 3, characterized in that The determining the context model corresponding to the first occupancy information includes: A context model corresponding to the first occupancy information is determined based on occupancy information of a plurality of surrounding sub-nodes whose distances from the first sub-node are a first preset value.

6. The method according to claim 5, characterized in that The first preset value includes one or more of the following values:

1.

7. The method according to claim 5, characterized in that Among the plurality of surrounding sub-nodes, the occupancy information of the uncoded surrounding sub-nodes is determined to not include the occupancy information of the point cloud points.

8. The method according to claim 5, characterized in that The plurality of surrounding sub-nodes are divided into a plurality of sub-node groups, and determining, based on occupancy information of surrounding sub-nodes whose distance from the first sub-node is a first preset value, a context model corresponding to the first occupancy information includes: Determining occupancy information corresponding to each of the subnode groups; A context model corresponding to the first occupancy information is determined according to the occupancy information corresponding to each of the sub-node groups.

9. The method according to claim 8, characterized in that The determining of the occupancy information corresponding to each of the sub-node groups includes: For any child node group among the multiple child node groups, if any surrounding child node in the child node group includes a point cloud point, determining the occupancy information of the child node group as occupancy information including a point cloud point; If all surrounding sub-nodes in the sub-node group do not include point cloud points, it is determined that the occupancy information of the sub-node group is occupancy information that does not include point cloud points.

10. The method according to claim 8, characterized in that The determining, according to the occupancy information corresponding to each of the sub-node groups, a context model corresponding to the first occupancy information includes: Determine a first index according to occupancy information corresponding to each of the sub-node groups; Determine that the context model corresponding to the first occupancy information is the context model corresponding to the first index.

11. The method according to claim 10, characterized in that The first binary symbol is used to indicate occupancy information including point cloud points, and the second binary symbol is used to indicate occupancy information not including point cloud points.

12. The method according to claim 11, characterized in that The first index is a value corresponding to a binary symbol string obtained by arranging the occupancy information corresponding to each of the sub-node groups.

13. The method according to claim 8, characterized in that Among the plurality of peripheral sub-nodes, the six peripheral sub-nodes with a distance of 1 from the first sub-node are divided into three sub-node groups corresponding to the X-axis direction, the Y-axis direction, and the Z-axis direction.

14. The method according to claim 8, characterized in that Among the multiple surrounding sub-nodes, the distance to the first sub-node is The 12 surrounding sub-nodes are divided into three sub-node groups corresponding to the XY plane, XZ plane and YZ plane.

15. The method according to claim 8, characterized in that Among the multiple surrounding sub-nodes, the distance to the first sub-node is The 8 surrounding child nodes are divided into a child node group.

16. The method according to claim 5, characterized in that The method further comprises: If the occupancy information of the plurality of surrounding sub-nodes all indicates that no point cloud points are included, a context model corresponding to the first occupancy information is determined based on the occupancy information of surrounding nodes whose distance from the first node is a second preset value.

17. The method according to claim 16, characterized in that The determining, based on occupancy information of surrounding nodes whose distance from the first node is a second preset value, a context model corresponding to the first occupancy information includes: Determine a second index according to the occupancy information of each of the surrounding nodes; Determine that the context model corresponding to the first occupancy information is the context model corresponding to the second index.

18. The method according to claim 17, characterized in that The second index is a value corresponding to a binary symbol string obtained by arranging the occupancy information of each of the peripheral nodes.

19. The method according to claim 1, wherein The determining the Hilbert order corresponding to the plurality of sub-nodes by using the geometric coordinates of the plurality of sub-nodes includes: Convert the geometric coordinates of each of the subnodes into a corresponding Hilbert code; The sub-nodes are sorted according to the Hilbert code to obtain a Hilbert order.

20. The method according to claim 1, wherein The order of dividing the first node and other to-be-divided nodes belonging to the same layer in the tree structure is determined according to the Hilbert order corresponding to each node in the same layer.

21. A point cloud decoding method, characterized in that: include: Divide the first node into a plurality of child nodes, wherein the first node is any non-leaf node obtained by performing tree division on the point cloud and containing a point cloud point; Determining the Hilbert order corresponding to the plurality of subnodes using the geometric coordinates of the plurality of subnodes; Decoding the code stream to obtain a space occupancy code corresponding to the first node; Determining a target subnode containing a point cloud point on the Hilbert order according to the space occupancy code; If the target child node is a non-leaf node, the tree partitioning is performed on the target child node.

22. The method according to claim 21, characterized in that The method further comprises: If the target child node is a leaf node, the geometric coordinates of the target child node are determined as the geometric coordinates of the point cloud point.

23. The method according to claim 21, characterized in that The decoding from the code stream to obtain the space occupancy code corresponding to the first node includes: Context-based adaptive binary arithmetic decoding is used to decode the code stream to obtain a space occupancy code corresponding to the first node.

24. The method according to claim 23, wherein The utilizing context-based adaptive binary arithmetic decoding to decode from the bitstream to obtain the space occupancy code corresponding to the first node includes: Determining a context model corresponding to first occupancy information, where the first occupancy information is occupancy information of a first child node, and the first child node is any child node among the multiple child nodes; Performing arithmetical decoding on the code stream according to the context model to obtain the first occupancy information.

25. The method according to claim 24, characterized in that The determining the context model corresponding to the first occupancy information includes: A context model corresponding to the first occupancy information is determined according to the spatial position of the first subnode in the first node.

26. The method according to claim 24, characterized in that The determining the context model corresponding to the first occupancy information includes: A context model corresponding to the first occupancy information is determined based on occupancy information of a plurality of surrounding sub-nodes whose distances from the first sub-node are a first preset value.

27. The method according to claim 26, characterized in that The first preset value includes one or more of the following values:

1.

28. The method according to claim 26, characterized in that Among the plurality of surrounding sub-nodes, the occupancy information of the undecoded surrounding sub-nodes is determined to not include occupancy information of the point cloud points.

29. The method according to claim 26, wherein The plurality of surrounding sub-nodes are divided into a plurality of sub-node groups, and determining, based on occupancy information of surrounding sub-nodes whose distance from the first sub-node is a first preset value, a context model corresponding to the first occupancy information includes: Determining occupancy information corresponding to each of the subnode groups; A context model corresponding to the first occupancy information is determined according to the occupancy information corresponding to each of the sub-node groups.

30. The method according to claim 29, wherein The determining of the occupancy information corresponding to each of the sub-node groups includes: For any child node group among the multiple child node groups, if any surrounding child node in the child node group includes a point cloud point, determining the occupancy information of the child node group as occupancy information including a point cloud point; If all surrounding sub-nodes in the sub-node group do not include point cloud points, it is determined that the occupancy information of the sub-node group is occupancy information that does not include point cloud points.

31. The method according to claim 29, wherein The determining, according to the occupancy information corresponding to each of the sub-node groups, a context model corresponding to the first occupancy information includes: Determine a first index according to occupancy information corresponding to each of the sub-node groups; Determine that the context model corresponding to the first occupancy information is the context model corresponding to the first index.

32. The method according to claim 31, characterized in that The first binary symbol is used to indicate occupancy information including point cloud points, and the second binary symbol is used to indicate occupancy information not including point cloud points.

33. The method according to claim 32, characterized in that The first index is a value corresponding to a binary symbol string obtained by arranging the occupancy information corresponding to each of the sub-node groups.

34. The method according to claim 29, wherein Among the plurality of peripheral sub-nodes, the six peripheral sub-nodes with a distance of 1 from the first sub-node are divided into three sub-node groups corresponding to the X-axis direction, the Y-axis direction, and the Z-axis direction.

35. The method according to claim 29, wherein Among the multiple surrounding sub-nodes, the distance to the first sub-node is The 12 surrounding sub-nodes are divided into three sub-node groups corresponding to the XY plane, XZ plane and YZ plane.

36. The method according to claim 29, wherein Among the multiple surrounding sub-nodes, the distance to the first sub-node is The 8 surrounding child nodes are divided into a child node group.

37. The method according to claim 26, wherein The method further comprises: If the occupancy information of the plurality of surrounding sub-nodes all indicates that no point cloud points are included, a context model corresponding to the first occupancy information is determined based on the occupancy information of surrounding nodes whose distance from the first node is a second preset value.

38. The method according to claim 37, wherein The determining, based on occupancy information of surrounding nodes whose distance from the first node is a second preset value, a context model corresponding to the first occupancy information includes: Determine a second index according to the occupancy information of each of the surrounding nodes; Determine that the context model corresponding to the first occupancy information is the context model corresponding to the second index.

39. The method according to claim 38, characterized in that The second index is a value corresponding to a binary symbol string obtained by arranging the occupancy information of each of the peripheral nodes.

40. The method according to claim 21, wherein The determining the Hilbert order corresponding to the plurality of sub-nodes by using the geometric coordinates of the plurality of sub-nodes includes: Convert the geometric coordinates of each of the subnodes into a corresponding Hilbert code; The sub-nodes are sorted according to the Hilbert code to obtain a Hilbert order.

41. A point cloud encoding device, characterized in that include: A processor and a memory storing a computer program, wherein the processor implements the following steps when executing the computer program: Divide the first node into a plurality of child nodes, wherein the first node is any non-leaf node obtained by performing tree division on the point cloud and containing a point cloud point; Determining the Hilbert order corresponding to the plurality of subnodes using the geometric coordinates of the plurality of subnodes; Arranging the occupancy information of the plurality of child nodes according to the Hilbert order to obtain a space occupancy code corresponding to the first node, wherein the occupancy information is used to indicate whether the child node contains a point cloud point; The space occupancy code is encoded.

42. The device according to claim 41, characterized in that When encoding the space occupancy code, the processor is configured to encode the space occupancy code by using context-based adaptive binary arithmetic coding.

43. The device according to claim 42, characterized in that The processor is configured to, when encoding the spatial occupancy code using context-based adaptive binary arithmetic coding, determine a context model corresponding to first occupancy information, where the first occupancy information is occupancy information of a first child node, and the first child node is any child node among the multiple child nodes; The first occupancy information is arithmetically encoded according to the context model.

44. The device according to claim 43, characterized in that When determining the context model corresponding to the first occupancy information, the processor is configured to determine the context model corresponding to the first occupancy information according to the spatial position of the first subnode in the first node.

45. The device according to claim 43, characterized in that When determining the context model corresponding to the first occupancy information, the processor is configured to determine the context model corresponding to the first occupancy information based on occupancy information of a plurality of surrounding sub-nodes whose distances from the first sub-node are a first preset value.

46. ​​The device according to claim 45, characterized in that The first preset value includes one or more of the following values:

1.

47. The device according to claim 45, characterized in that Among the plurality of surrounding sub-nodes, the occupancy information of the uncoded surrounding sub-nodes is determined to not include the occupancy information of the point cloud points.

48. The device according to claim 45, characterized in that The multiple surrounding sub-nodes are divided into multiple sub-node groups. When the processor determines the context model corresponding to the first occupancy information based on the occupancy information of the surrounding sub-nodes whose distance from the first sub-node is a first preset value, it is used to determine the occupancy information corresponding to each of the sub-node groups; and determine the context model corresponding to the first occupancy information based on the occupancy information corresponding to each of the sub-node groups.

49. The device according to claim 48, characterized in that When determining the occupancy information corresponding to each of the sub-node groups, the processor is used to, for any sub-node group among the multiple sub-node groups, determine that the occupancy information of the sub-node group is occupancy information containing point cloud points if any surrounding sub-node in the sub-node group contains point cloud points; if all surrounding sub-nodes in the sub-node group do not contain point cloud points, determine that the occupancy information of the sub-node group is occupancy information not containing point cloud points.

50. The device according to claim 48, characterized in that When the processor determines the context model corresponding to the first occupancy information based on the occupancy information corresponding to each of the sub-node groups, it is used to determine the first index based on the occupancy information corresponding to each of the sub-node groups; and determine that the context model corresponding to the first occupancy information is the context model corresponding to the first index.

51. The device according to claim 50, characterized in that The first binary symbol is used to indicate occupancy information including point cloud points, and the second binary symbol is used to indicate occupancy information not including point cloud points.

52. The device according to claim 51, characterized in that The first index is a value corresponding to a binary symbol string obtained by arranging the occupancy information corresponding to each of the sub-node groups.

53. The device according to claim 48, characterized in that Among the plurality of peripheral sub-nodes, the six peripheral sub-nodes with a distance of 1 from the first sub-node are divided into three sub-node groups corresponding to the X-axis direction, the Y-axis direction, and the Z-axis direction.

54. The device according to claim 48, characterized in that Among the multiple surrounding sub-nodes, the distance to the first sub-node is The 12 surrounding sub-nodes are divided into three sub-node groups corresponding to the XY plane, XZ plane and YZ plane.

55. The device according to claim 48, wherein Among the multiple surrounding sub-nodes, the distance to the first sub-node is The 8 surrounding child nodes are divided into a child node group.

56. The device according to claim 45, characterized in that The processor is also used to, if the occupancy information of the multiple surrounding sub-nodes all indicates that no point cloud points are included, determine the context model corresponding to the first occupancy information based on the occupancy information of the surrounding nodes whose distance from the first node is a second preset value.

57. The device according to claim 56, characterized in that When determining the context model corresponding to the first occupancy information based on the occupancy information of surrounding nodes whose distance from the first node is a second preset value, the processor is used to determine a second index based on the occupancy information of each of the surrounding nodes; and determine that the context model corresponding to the first occupancy information is the context model corresponding to the second index.

58. The device according to claim 57, characterized in that The second index is a value corresponding to a binary symbol string obtained by arranging the occupancy information of each of the peripheral nodes.

59. The device according to claim 41, characterized in that The processor is configured to convert the geometric coordinates of each of the sub-nodes into a corresponding Hilbert code when determining the Hilbert order corresponding to the sub-nodes using the geometric coordinates of the sub-nodes; The sub-nodes are sorted according to the Hilbert code to obtain a Hilbert order.

60. The device according to claim 41, characterized in that The order of dividing the first node and other to-be-divided nodes belonging to the same layer in the tree structure is determined according to the Hilbert order corresponding to each node in the same layer.

61. A point cloud decoding device, characterized in that include: A processor and a memory storing a computer program, wherein the processor implements the following steps when executing the computer program: Divide the first node into a plurality of child nodes, wherein the first node is any non-leaf node obtained by performing tree division on the point cloud and containing a point cloud point; Determining the Hilbert order corresponding to the plurality of subnodes using the geometric coordinates of the plurality of subnodes; Decoding the code stream to obtain a space occupancy code corresponding to the first node; Determining a target subnode containing a point cloud point on the Hilbert order according to the space occupancy code; If the target child node is a non-leaf node, the tree partitioning is performed on the target child node.

62. The device according to claim 61, characterized in that The processor is further configured to, if the target child node is a leaf node, determine the geometric coordinates of the target child node as the geometric coordinates of the point cloud point.

63. The device according to claim 61, characterized in that When the processor obtains the space occupancy code corresponding to the first node by decoding from the code stream, the processor is configured to obtain the space occupancy code corresponding to the first node by decoding from the code stream using context-based adaptive binary arithmetic decoding.

64. The device according to claim 63, characterized in that The processor is configured to, when decoding a spatial occupancy code corresponding to the first node from a bitstream using context-based adaptive binary arithmetic decoding, determine a context model corresponding to first occupancy information, where the first occupancy information is occupancy information of a first child node, and the first child node is any child node among the multiple child nodes; Performing arithmetical decoding on the code stream according to the context model to obtain the first occupancy information.

65. The device according to claim 64, characterized in that When determining the context model corresponding to the first occupancy information, the processor is configured to determine the context model corresponding to the first occupancy information according to the spatial position of the first subnode in the first node.

66. The device according to claim 64, characterized in that When determining the context model corresponding to the first occupancy information, the processor is configured to determine the context model corresponding to the first occupancy information based on occupancy information of a plurality of surrounding sub-nodes whose distances from the first sub-node are a first preset value.

67. The device according to claim 66, characterized in that The first preset value includes one or more of the following values:

1.

68. The device according to claim 66, characterized in that Among the plurality of surrounding sub-nodes, the occupancy information of the undecoded surrounding sub-nodes is determined to not include occupancy information of the point cloud points.

69. The device according to claim 66, characterized in that The multiple surrounding sub-nodes are divided into multiple sub-node groups. When the processor determines the context model corresponding to the first occupancy information based on the occupancy information of the surrounding sub-nodes whose distance from the first sub-node is a first preset value, it is used to determine the occupancy information corresponding to each of the sub-node groups; and determine the context model corresponding to the first occupancy information based on the occupancy information corresponding to each of the sub-node groups.

70. The device according to claim 69, characterized in that When determining the occupancy information corresponding to each of the sub-node groups, the processor is used to, for any sub-node group among the multiple sub-node groups, determine that the occupancy information of the sub-node group is occupancy information containing point cloud points if any surrounding sub-node in the sub-node group contains point cloud points; if all surrounding sub-nodes in the sub-node group do not contain point cloud points, determine that the occupancy information of the sub-node group is occupancy information not containing point cloud points.

71. The device according to claim 69, characterized in that When the processor determines the context model corresponding to the first occupancy information based on the occupancy information corresponding to each of the sub-node groups, it is used to determine the first index based on the occupancy information corresponding to each of the sub-node groups; and determine that the context model corresponding to the first occupancy information is the context model corresponding to the first index.

72. The device according to claim 71, characterized in that The first binary symbol is used to indicate occupancy information including point cloud points, and the second binary symbol is used to indicate occupancy information not including point cloud points.

73. The device according to claim 72, characterized in that The first index is a value corresponding to a binary symbol string obtained by arranging the occupancy information corresponding to each of the sub-node groups.

74. The device according to claim 69, characterized in that Among the plurality of peripheral sub-nodes, the six peripheral sub-nodes with a distance of 1 from the first sub-node are divided into three sub-node groups corresponding to the X-axis direction, the Y-axis direction, and the Z-axis direction.

75. The device according to claim 69, characterized in that Among the multiple surrounding sub-nodes, the distance to the first sub-node is The 12 surrounding sub-nodes are divided into three sub-node groups corresponding to the XY plane, XZ plane and YZ plane.

76. The device according to claim 69, characterized in that Among the multiple surrounding sub-nodes, the distance to the first sub-node is The 8 surrounding child nodes are divided into a child node group.

77. The device according to claim 66, characterized in that The processor is also used to, if the occupancy information of the multiple surrounding sub-nodes all indicates that no point cloud points are included, determine the context model corresponding to the first occupancy information based on the occupancy information of the surrounding nodes whose distance from the first node is a second preset value.

78. The device according to claim 77, characterized in that When determining the context model corresponding to the first occupancy information based on the occupancy information of surrounding nodes whose distance from the first node is a second preset value, the processor is used to determine a second index based on the occupancy information of each of the surrounding nodes; and determine that the context model corresponding to the first occupancy information is the context model corresponding to the second index.

79. The device according to claim 78, characterized in that The second index is a value corresponding to a binary symbol string obtained by arranging the occupancy information of each of the peripheral nodes.

80. The device according to claim 61, characterized in that The processor is configured to convert the geometric coordinates of each of the sub-nodes into a corresponding Hilbert code when determining the Hilbert order corresponding to the sub-nodes using the geometric coordinates of the sub-nodes; The sub-nodes are sorted according to the Hilbert code to obtain a Hilbert order.

81. A computer-readable storage medium, characterized in that The computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, the point cloud encoding method according to any one of claims 1 to 20 is implemented.

82. A computer-readable storage medium, characterized in that The computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, the point cloud decoding method according to any one of claims 21 to 40 is implemented.

Citation Information

Patent Citations

  • Method and apparatus for encoding / decoding point cloud representing 3D object

    CN110892725A

  • Methods and devices using direct coding in point cloud compression

    CN111615791A