Point cloud coding method, point cloud decoding method, point cloud coding device, point cloud decoding device and electronic equipment

By predicting the occupancy information and context of the node to be encoded based on the occupancy information of the already encoded reference node, the problem of low encoding efficiency in the prior art is solved, and efficient geometric compression of point clouds is achieved.

CN121711488APending Publication Date: 2026-03-20VIVO MOBILE COMM CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2021-12-03
Publication Date
2026-03-20

AI Technical Summary

Technical Problem

In existing technologies, the coding methods of sparse point cloud sequences and dense point cloud sequences are used to encode point cloud sequences with a large number of planar features, resulting in low coding efficiency.

Method used

The encoding end predicts the placeholder information of the node to be encoded based on the placeholder information of the already encoded reference node, determines the context of the child node to be encoded, and generates the target bitstream through entropy encoding.

Benefits of technology

It improves the geometric compression performance of point clouds and enhances the encoding efficiency at the encoding end.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121711488A_ABST
    Figure CN121711488A_ABST
Patent Text Reader

Abstract

The invention discloses a point cloud coding method and device, a point cloud decoding method and device and electronic equipment, and belongs to the technical field of coding and decoding, and the point cloud coding method comprises the steps that a coding end obtains a to-be-coded node in a point cloud sequence and m coded reference nodes in the point cloud sequence, and m is a positive integer; the coding end predicts the placeholder information of the node to be coded based on the placeholder information of the m reference nodes, and determines a prediction result of the node to be coded; the coding end determines the context of a to-be-coded sub-node based on the prediction result and the position of the to-be-coded sub-node in the to-be-coded node, and the to-be-coded sub-node is any sub-node obtained by dividing the to-be-coded node based on a structure tree; and the coding end performs entropy coding on the to-be-coded sub-node according to the context to generate a target code stream.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application belongs to the field of encoding and decoding technology, specifically relating to a point cloud encoding method, decoding method, device, and electronic device. Background Technology

[0002] In the Audio Video Coding Standard (AVS) encoder framework, the geometric information of the point cloud and the attribute information corresponding to each point are encoded separately. Currently, the encoding of spatial placeholder codes uses a context-based adaptive binary arithmetic encoder, employing different context models for sparse and dense point cloud sequences. However, for point cloud sequences with a large number of planar features, there are unoccupied spaces. If the encoding method based on sparse and dense point cloud sequences is still used, the encoding efficiency will be low. Summary of the Invention

[0003] This application provides a point cloud encoding method, decoding method, apparatus, and electronic device, which can solve the problem of low encoding efficiency in related technologies.

[0004] Firstly, a point cloud encoding method is provided, including:

[0005] The encoding end obtains the node to be encoded in the point cloud sequence and m reference nodes that have been encoded in the point cloud sequence, where m is a positive integer;

[0006] The encoding end predicts the occupancy information of the node to be encoded based on the occupancy information of the m reference nodes, and determines the prediction result of the node to be encoded.

[0007] The encoding end determines the context of the child node to be encoded based on the prediction result and the position of the child node to be encoded in the node to be encoded. The child node to be encoded is any child node obtained by partitioning the node to be encoded based on the tree structure.

[0008] The encoding end performs entropy encoding on the child node to be encoded according to the context to generate the target bitstream.

[0009] Secondly, a point cloud decoding method is provided, including:

[0010] The decoding end obtains the node to be decoded in the point cloud sequence and the m reference nodes that have been decoded in the point cloud sequence, where m is a positive integer;

[0011] The decoding end predicts the occupancy information of the node to be decoded based on the occupancy information of the m reference nodes, and determines the prediction result of the node to be decoded.

[0012] The decoding end determines the context of the child node to be decoded based on the prediction result and the position of the child node to be decoded in the node to be decoded. The child node to be decoded is any child node obtained by partitioning the node to be decoded based on the structure tree.

[0013] The decoding end performs entropy decoding on the child node to be decoded according to the context to generate the target bitstream.

[0014] Thirdly, a point cloud encoding device is provided, comprising:

[0015] The first acquisition module is used to acquire the node to be encoded in the point cloud sequence and m reference nodes that have been encoded in the point cloud sequence, where m is a positive integer;

[0016] The first prediction module is used to predict the occupancy information of the node to be encoded based on the occupancy information of the m reference nodes, and to determine the prediction result of the node to be encoded.

[0017] The first determining module is used to determine the context of the child node to be encoded based on the prediction result and the position of the child node to be encoded in the node to be encoded, wherein the child node to be encoded is any child node obtained by partitioning the node to be encoded based on the structure tree.

[0018] The encoding module is used to perform entropy encoding on the child node to be encoded according to the context to generate the target bitstream.

[0019] Fourthly, a point cloud decoding device is provided, comprising:

[0020] The second acquisition module is used to acquire the node to be decoded in the point cloud sequence and the m reference nodes that have been decoded in the point cloud sequence, where m is a positive integer;

[0021] The second prediction module is used to predict the occupancy information of the node to be decoded based on the occupancy information of the m reference nodes, and to determine the prediction result of the node to be decoded.

[0022] The second determining module is used to determine the context of the child node to be decoded based on the prediction result and the position of the child node to be decoded in the node to be decoded, wherein the child node to be decoded is any child node obtained by dividing the node to be decoded based on the structure tree;

[0023] The decoding module is used to perform entropy decoding on the child node to be decoded according to the context to generate the target bitstream.

[0024] Fifthly, an electronic device is provided, comprising a processor and a memory, the memory storing a program or instructions executable on the processor, the program or instructions, when executed by the processor, implementing the steps of the point cloud encoding method as described in the first aspect, or implementing the steps of the point cloud decoding method as described in the second aspect.

[0025] In a sixth aspect, a readable storage medium is provided, on which a program or instructions are stored, which, when executed by a processor, implement the steps of the point cloud encoding method as described in the first aspect, or implement the steps of the point cloud decoding method as described in the second aspect.

[0026] In a seventh aspect, a chip is provided, the chip including a processor and a communication interface, the communication interface being coupled to the processor, the processor being configured to run programs or instructions to implement the method as described in the first aspect, or to implement the method as described in the second aspect.

[0027] Eighthly, a computer program / program product is provided, the computer program / program product being stored in a storage medium, the computer program / program product being executed by at least one processor to implement the method as described in the first aspect, or to implement the method as described in the second aspect.

[0028] In this embodiment, the encoding end can predict the occupancy information of the node to be encoded based on the occupancy information of the already encoded reference node, and determine the context of the child node to be encoded based on the prediction result of the node to be encoded and the position of the child node to be encoded in the node to be encoded. This can better utilize the occupancy information of the already encoded nodes in the point cloud sequence, improve the geometric compression performance of the point cloud, and improve the encoding efficiency of the encoding end. Attached Figure Description

[0029] Figure 1 This is a diagram of the AVS codec framework;

[0030] Figure 2 This is a flowchart of a point cloud encoding method provided in an embodiment of this application;

[0031] Figure 3a This is a schematic diagram of the node to be encoded and the reference node in the point cloud sequence;

[0032] Figure 3b This is a schematic diagram of nodes in a point cloud sequence;

[0033] Figure 4a This is a schematic diagram of the child node to be encoded and its neighboring child nodes in a point cloud sequence;

[0034] Figure 4b This is a schematic diagram of the node to be encoded and its neighboring nodes in a point cloud sequence;

[0035] Figure 5a This is one of the schematic diagrams of the node to be encoded, the child node to be encoded, and the neighboring nodes in a point cloud sequence;

[0036] Figure 5b This is the second schematic diagram of the node to be encoded, the child node to be encoded, and the neighboring child nodes in the point cloud sequence;

[0037] Figure 6 This is a flowchart of a point cloud decoding method provided in an embodiment of this application;

[0038] Figure 7 This is a structural diagram of a point cloud encoding device provided in an embodiment of this application;

[0039] Figure 8 This is a structural diagram of a point cloud decoding device provided in an embodiment of this application;

[0040] Figure 9 This is a structural diagram of an electronic device provided in an embodiment of this application;

[0041] Figure 10 This is a structural diagram of a terminal provided in an embodiment of this application. Detailed Implementation

[0042] The technical solutions of the embodiments of this application will be clearly described below with reference to the accompanying drawings. Obviously, the described embodiments are only some, not all, of the embodiments of this application. All other embodiments obtained by those skilled in the art based on the embodiments of this application are within the scope of protection of this application.

[0043] The terms "first," "second," etc., used in the specification and claims of this application are used to distinguish similar objects and not to describe a specific order or sequence. It should be understood that such terms can be used interchangeably where appropriate so that embodiments of this application can be implemented in orders other than those illustrated or described herein, and the objects distinguished by "first" and "second" are generally of the same class, not limited in number; for example, a first object can be one or more. Furthermore, in the specification and claims, "and / or" indicates at least one of the connected objects, and the character " / " generally indicates that the preceding and following objects are in an "or" relationship.

[0044] To better understand the technical solution of this application, the relevant technologies involved in the technical solution of this application will be briefly explained below.

[0045] Please refer to Figure 1 , Figure 1The diagram shows the AVS codec framework. In the point cloud AVS encoder framework, the geometric information of the point cloud and the attribute information corresponding to each point are encoded separately. First, the point cloud is preprocessed: a minimum rectangular prism containing all points in the input point cloud is constructed, called the bounding box. The origin coordinates of the bounding box are composed of the minimum values ​​of the coordinates of each point in the point cloud in the x, y, and z dimensions. Next, coordinate transformation is performed on the points in the point cloud (i.e.,... Figure 1 (Coordinate translation shown): Using the origin as a reference, the original coordinates of the points are transformed into relative coordinates relative to the origin. Then, the geometric coordinates of the points are quantized; this quantization step mainly serves a scaling function. Due to quantization rounding, some points have identical geometric information; parameters determine whether to remove these points with duplicate geometric information. Next, the preprocessed point cloud is partitioned into a structured tree (e.g., octree, quadtree, binary tree) according to breadth-first traversal order: using... Figure 1 Taking the octree partitioning example, the preprocessed bounding box is used as the root node. It is divided into eight equal parts, producing eight sub-cubes as its child nodes. Eight bits are used to represent the occupancy information (or placeholder information) of each child node, called the space occupancy code. If a sub-cube contains a point, it indicates that the child node is occupied, and the corresponding occupancy bit is set to 1; otherwise, it is set to 0. The partitioning continues on the occupied sub-cubes until the resulting leaf nodes are 1x1x1 unit cubes, at which point the partitioning stops, completing the geometric octree encoding. During octree encoding, the generated space occupancy code and the number of points contained in the final leaf nodes are entropy-encoded to obtain the output bitstream. In the octree-based geometric decoding process, the decoder follows a breadth-first traversal, continuously parsing the occupancy code of each node and sequentially partitioning the nodes until a 1x1x1 unit cube is obtained. The number of points contained in each leaf node is then parsed, ultimately restoring the geometrically reconstructed point cloud information.

[0046] After geometric encoding is completed, the geometric information is reconstructed. Currently, attribute encoding mainly targets attributes such as color and reflectivity. First, it is determined whether a color space transformation is needed. If so, the color information is converted from the RGB color space to the YUV color space. Then, the reconstructed point cloud is recolored using the original point cloud, so that the unencoded attribute information corresponds to the reconstructed geometric information. Color information encoding is divided into two modules: attribute prediction and attribute transformation. The attribute prediction process is as follows: First, the point cloud is reordered, and then differential prediction is performed. The reordering method is Hilbert reordering. Attribute prediction is performed on the reordered point cloud using a differential method. Finally, the prediction residual is quantized and entropy-encoded to generate a binary code stream. The attribute transformation process is as follows: First, wavelet transform is performed on the point cloud attributes, and the transform coefficients are quantized. Second, attribute reconstruction values ​​are obtained through inverse quantization and inverse wavelet transform. Then, the difference between the original attribute and the attribute reconstruction value is calculated to obtain the attribute residual, which is then quantized. Finally, the quantized transform coefficients and attribute residual are entropy-encoded to generate a binary code stream.

[0047] The point cloud encoding method provided in this application will be described in detail below with reference to the accompanying drawings, through some embodiments and application scenarios.

[0048] Please refer to Figure 2 , Figure 2 This is a flowchart of a point cloud encoding method provided in an embodiment of this application. Figure 2 As shown, the method includes the following steps:

[0049] Step 201: The encoding end obtains the nodes to be encoded in the point cloud sequence and the m reference nodes that have been encoded in the point cloud sequence.

[0050] Where m is a positive integer. The encoding end can be an electronic device such as a mobile phone, tablet computer, or computer, and this application does not specifically limit it.

[0051] It should be noted that the encoding end can encode the nodes in the point cloud sequence sequentially according to a preset encoding order. The node to be encoded can be the first unencoded node in the point cloud sequence arranged in the preset encoding order. The reference node is an already encoded node in the point cloud sequence. For example, the reference node can be any of the already encoded nodes, or any of the already encoded nodes belonging to the same node partitioning level as the node to be encoded, or the reference node can be an already encoded node adjacent to the node to be encoded.

[0052] The node partitioning level refers to the node level obtained after partitioning the nodes using a tree structure (such as a binary tree, quadtree, octree, etc.). For example, node 1 is partitioned into nodes 11 and 12 based on a binary tree, node 11 is partitioned into nodes 111 and 112 based on a binary tree, and node 12 is partitioned into nodes 121 and 122 based on a binary tree. Nodes 11 and 12 belong to the same node partitioning level, and nodes 111, 112, 121, and 122 belong to the same node partitioning level.

[0053] Step 202: The encoding end predicts the occupancy information of the node to be encoded based on the occupancy information of the m reference nodes, and determines the prediction result of the node to be encoded.

[0054] Among them, the occupancy information of a node refers to the occupancy status of each child node of the node based on the tree structure, including whether the occupancy status is occupied or not. The occupancy information of the reference node can refer to the occupancy status of each child node of the reference node. For example, if the reference node is divided into child node 1 and child node 2 based on a binary tree, the occupancy information of the reference node can be represented as child node 1 being occupied and child node 2 not being occupied. Alternatively, the occupancy information of the reference node can also refer to the number of occupied child nodes and the number of unoccupied child nodes in the reference node. For example, if the reference node is divided into eight child nodes based on an octree, the occupancy information of the reference node can be represented as 3 occupied child nodes and 5 unoccupied child nodes. Furthermore, the occupancy information of the reference node can also refer to the occupancy status of each child node of the reference node in a preset area. For example, if the reference node is divided into eight child nodes based on an octree, the occupancy information of the reference node can be represented as the occupancy status in the low-plane area and the high-plane area. The low-plane area and the high-plane area can be two planar areas of the reference node in the target direction, such as... Figure 3a As shown, in the z-axis direction of the coordinate system, the child nodes of the low-plane region of the reference node (the filled child nodes in Figure 3) are occupied, while the child nodes of the high-plane region ( Figure 3a Unfilled child nodes are not occupied. Optionally, the placeholder information of the reference node can also be represented in other ways, which will not be described in detail in this application.

[0055] Understandably, the reference nodes are encoded nodes in the point cloud sequence, thus enabling the acquisition of the occupancy information of the encoded reference nodes. In this embodiment, after acquiring m reference nodes, the encoding end predicts the occupancy information of the node to be encoded based on the occupancy information of these m reference nodes, thereby determining the prediction result of the node to be encoded.

[0056] For example, please refer to Figure 3a , Figure 3a The dashed box indicates the node to be encoded, and the solid box indicates the reference node. Figure 3a There are three reference nodes, and the filled portion represents the occupied child nodes. Assuming these nodes are partitioned into eight child nodes based on an octree, along the z-axis, the four lower child nodes are the child nodes of the low-plane region, and the four upper child nodes are the child nodes of the high-plane region. If the occupancy information of the reference nodes includes the occupancy status of the low-plane region and the high-plane region of the reference node, then... Figure 3a In the three reference nodes, the occupied child nodes are all located in the low plane region, and the unoccupied child nodes are all located in the high plane region. Based on the occupancy information of these three reference nodes, it can be predicted that the occupied child nodes in the node to be encoded may also be located in the low plane region. Thus, the prediction result of the occupancy information of the node to be encoded is obtained.

[0057] Step 203: The encoding end determines the context of the child node to be encoded based on the prediction result and the position of the child node to be encoded in the node to be encoded. The child node to be encoded is any child node obtained by dividing the node to be encoded based on the structure tree.

[0058] It should be noted that after obtaining the node to be encoded, the encoding end can use a structure tree partitioning method such as an octree, quadtree, or binary tree to partition the node to be encoded. For example, if an already encoded node at the same node partitioning level as the node to be encoded is partitioned into 8 child nodes using an octree, then the node to be encoded will also be partitioned into 8 child nodes using an octree. Furthermore, the encoding end encodes each child node obtained from the partitioning of the node to be encoded in sequence according to a preset encoding order. The child node to be encoded is any unencoded child node obtained from the partitioning of the node to be encoded using the structure tree.

[0059] In this embodiment of the application, after the encoding end predicts the occupancy information of the node to be encoded based on m reference nodes and obtains the prediction result of the node to be encoded, the encoding end determines the context of the child node to be encoded based on the prediction result and the position of the child node to be encoded in the node to be encoded.

[0060] Step 204: The encoding end performs entropy encoding on the child node to be encoded according to the context to generate the target bitstream.

[0061] Optionally, after determining the context of the child node to be encoded, the encoding end allocates an adaptive probability model to the child node to be encoded, and can perform arithmetic encoding, i.e. entropy encoding, on the placeholder bit code of the child node to be encoded based on the adaptive probability model to generate the target bit stream, such as generating a binary bit stream.

[0062] In this embodiment, the encoding end can predict the occupancy information of the node to be encoded based on the occupancy information of the already encoded reference node, and determine the context of the child node to be encoded based on the prediction result of the node to be encoded and the position of the child node to be encoded in the node to be encoded. This can better utilize the occupancy information of the already encoded nodes in the point cloud sequence, improve the geometric compression performance of the point cloud, and improve the encoding efficiency of the encoding end.

[0063] Optionally, step 201 may include:

[0064] The encoding end acquires the nodes to be encoded in the point cloud sequence;

[0065] The encoding end obtains the first k encoded nodes of the node to be encoded based on the node encoding order, where k is a positive integer;

[0066] If at least one of the first k encoded nodes has target plane features, the encoding end acquires the m encoded reference nodes in the point cloud sequence.

[0067] In this embodiment, after obtaining the node to be encoded in the point cloud sequence, the encoding end obtains the first k encoded nodes of the node to be encoded based on the node encoding order. For example, assuming that the eight nodes are arranged in the node encoding order as node 0, node 1, node 2... node 7, if the node to be encoded is node 7, that is, the nodes before node 7 have been encoded, and assuming that k is 3, then the first 3 encoded nodes of the node to be encoded are node 4, node 5 and node 6.

[0068] Further, if at least one of the first k encoded nodes has target plane features, the encoding end acquires m encoded reference nodes in the point cloud sequence. Optionally, the m reference nodes can be nodes among the k encoded nodes, where m ≤ k; or, the m reference nodes may not belong to the k encoded nodes, or may only partially belong to the k encoded nodes. For example, the m reference nodes may be the m encoded nodes adjacent to the node to be encoded. In this case, the encoding order of these reference nodes is irrelevant, and some of the reference nodes are not among the first k encoded nodes.

[0069] Optionally, the target plane feature can refer to the following: the n child nodes obtained by partitioning a node based on an n-ary tree are divided into two planes along the target coordinate axis. The occupied child nodes are all located in one of these planes, while the child nodes in the other plane are not occupied. This node is thus considered to have the target plane feature. For example, Figure 3bThe node in the target plane is divided into eight child nodes by an octree. The child nodes numbered 0, 2, 4, and 6 form the first plane, and the child nodes numbered 1, 3, 5, and 7 form the second plane. If at least one of the four child nodes in the first plane is occupied, and none of the four child nodes in the second plane are occupied, or if none of the four child nodes in the first plane are occupied, and at least one of the four child nodes in the second plane is occupied, then the node is a node with the characteristics of the target plane.

[0070] In this embodiment, if at least one of the k encoded nodes of the node to be encoded has target plane features, it is assumed that the node to be encoded may also have the target plane features. For example, the occupied child nodes of the node to be encoded may all be located on the first plane or the second plane. Then, the encoding end obtains m encoded reference nodes from the point cloud sequence and predicts the occupancy information of the node to be encoded based on the occupancy information of the m reference nodes. By determining whether at least one of the k encoded nodes has target plane features, the accuracy of predicting the occupancy information of the node to be encoded can be improved.

[0071] Optionally, if none of the first k encoded nodes have the target plane features, the encoding end may not acquire the m encoded reference nodes, and thus will not predict the occupancy information of the node to be encoded based on the occupancy information of the reference nodes. The encoding end may use existing related methods to perform entropy encoding of the node to be encoded, which will not be elaborated here.

[0072] Optionally, when at least one of the first k encoded nodes has target plane features, the encoding end acquires the m encoded reference nodes in the point cloud sequence, including:

[0073] If the number of encoded nodes with target plane features in the first k encoded nodes is greater than or equal to a first threshold, the encoding end acquires the m encoded reference nodes in the point cloud sequence.

[0074] Wherein, the first threshold is a positive integer less than k.

[0075] In this embodiment of the application, after obtaining the first k encoded nodes of the node to be encoded, the encoding end further obtains the number of encoded nodes with target plane features among the first k encoded nodes. If the number of encoded nodes with target plane features is greater than or equal to a first threshold, it can be considered that the node to be encoded may also have target plane features. For example, the child nodes occupied in the node to be encoded are all located in the first plane or the second plane. In this case, the encoding end further obtains the m encoded reference nodes in the point cloud sequence.

[0076] Optionally, the first threshold can be a value preset by the user, or it can be an empirical value obtained by the encoding end based on a limited number of trials.

[0077] Optionally, step 201 may further include:

[0078] The encoding end acquires the nodes to be encoded in the point cloud sequence;

[0079] The encoding end determines the target coordinate system based on the coordinate values ​​of the node to be encoded;

[0080] The encoding end divides the point cloud sequence into layers that belong to the same node as the node to be encoded, and determines the nodes that have the same coordinate value on the target coordinate axis as candidate reference nodes. The target coordinate axis is any coordinate axis in the target coordinate system, and the target coordinate axis is perpendicular to the target plane.

[0081] The encoding end obtains m reference nodes from the candidate reference nodes.

[0082] Understandably, the geometric information of nodes in a point cloud sequence can be represented by the coordinate values ​​of the nodes in a Cartesian coordinate system (e.g., x1, y1, z1). Therefore, each node in the point cloud sequence includes corresponding coordinate values. In this embodiment, after obtaining the node to be encoded in the point cloud sequence, the encoding end can also obtain the coordinate values ​​corresponding to that node. Based on these coordinate values, a target coordinate system is determined, which is the target system corresponding to the coordinate values ​​of the node to be encoded. Understandably, based on the target coordinate system, the encoding end can determine the origin and each coordinate axis of the target coordinate system, and can also obtain the coordinate values ​​of other nodes in the point cloud sequence. Based on the coordinate values ​​of a node, the relative position of that node and the node to be encoded can be determined.

[0083] The encoding end divides the point cloud sequence into layers belonging to the same node as the node to be encoded, and identifies nodes with the same coordinate values ​​on the target coordinate axis as candidate reference nodes. For example, assuming the target coordinate axis is the z-axis, and the coordinates of the node to be encoded are (x1, y1, z1), then the candidate reference nodes are the already encoded nodes with the same z-axis coordinate value of z1. The coordinates of the reference nodes can be represented as (x1 - a * xNodeSize, y1 - b * yNodeSize, z1), where a and b are both integers greater than or equal to 0, and a and b cannot both be 0. xNodeSize is the node side length of the node to be encoded in the x-axis direction, and yNodeSize is the node side length of the node to be encoded in the y-axis direction. Further, m reference nodes are selected from these reference nodes.

[0084] It should be noted that the target plane feature can be determined based on the target coordinate axis. For example, assuming the target coordinate axis is the z-axis, the target plane is the plane perpendicular to the z-axis. When a node's child nodes obtained from the structure tree are located on the target plane, that node is also a node with the target plane feature.

[0085] In this embodiment, the encoding end predicts the occupancy information of the node to be encoded based on the occupancy information of m reference nodes. The m reference nodes are selected from the point cloud sequence that belong to the same node hierarchy as the node to be encoded and have the same coordinate values ​​on the target coordinate axis as the node to be encoded. The m reference nodes are the nodes around the node to be encoded. This can effectively utilize the spatial geometric relationship between nodes in the point cloud sequence, thereby improving the accuracy of predicting the occupancy of the node to be encoded.

[0086] Optionally, step 202 may specifically include:

[0087] The encoding end determines a first plane and a second plane of the node, wherein the first plane and the second plane are both parallel to the target plane, and the first plane and the second plane are stacked in the extension direction of the target coordinate axis. The first plane is closer to the origin of the coordinate system than the second plane.

[0088] The encoding end obtains the number of first child nodes and the number of second child nodes occupied among the m reference nodes, where the first child node is a child node located in the first plane and the second child node is a child node located in the second plane.

[0089] The encoding end predicts the occupancy information of the node to be encoded based on the number of the first child nodes and the number of the second child nodes among the m reference nodes, and determines the prediction result of the node to be encoded.

[0090] It should be noted that the encoding end can divide any node in the point cloud sequence into a first plane and a second plane based on the above method, including but not limited to the reference node and the node to be encoded. For example, please refer to... Figure 3a , Figure 3a The dashed box represents the node to be encoded, and the solid box represents the reference node. Figure 3a There are 3 reference nodes, which are divided into 8 child nodes based on the octree. Assuming the target coordinate axis is the z-axis, taking the leftmost reference node as an example, the first plane of this reference node is the plane where the four nodes below it are located, and the second plane is the plane where the four nodes above it are located. Similarly, the first plane of other reference nodes is the plane where the four nodes below them are located, and the second plane is the plane where the four nodes above them are located.

[0091] Optionally, the target coordinate axis can also be the x-axis or the y-axis, and the first plane and the second plane are respectively the planes perpendicular to the x-axis or the y-axis, which will not be elaborated here.

[0092] In this embodiment of the application, based on the division of the nodes into a first plane and a second plane, it is possible to obtain the number of first child nodes occupied in the first plane and the number of second child nodes occupied in the second plane of m reference nodes, and predict the occupancy information of the node to be encoded based on the number of first child nodes occupied and the number of second child nodes occupied, so as to determine the prediction result of the node to be encoded.

[0093] Please continue to refer to Figure 3a , Figure 3a The dashed box indicates the node to be encoded, and the solid box indicates the reference node. Figure 3a There are 3 reference nodes, and the ones being filled are the occupied child nodes. Figure 3a The number of first child nodes occupied is 10, and the number of second child nodes occupied is 0. It can be seen that the number of first child nodes occupied by the reference node is greater than the number of second child nodes occupied, and the occupied child nodes of the reference node are all located in the first plane. Therefore, the occupancy information of the node to be encoded may also be that the occupied child nodes are located in the first plane, while the child nodes in the second plane are not occupied.

[0094] Optionally, the encoding end predicts the occupancy information of the node to be encoded based on the number of occupied first child nodes and the number of occupied second child nodes among the m reference nodes, and determines the prediction result of the node to be encoded, including at least one of the following:

[0095] If the number of occupied first child nodes and the number of occupied second child nodes in the m reference nodes meet the first condition, the encoding end predicts that at least one first child node in the node to be encoded is occupied and the second child node in the node to be encoded is not occupied, and determines the prediction result of the node to be encoded as the first prediction result. The first condition is that the number of occupied first child nodes in the m reference nodes is greater than the second threshold and the number of occupied second child nodes is less than the third threshold.

[0096] If the number of occupied first child nodes and the number of occupied second child nodes in the m reference nodes meet the second condition, the encoding end predicts that at least one second child node in the node to be encoded is occupied and the first child node in the node to be encoded is not occupied. The prediction result of the node to be encoded is determined as the second prediction result. The second condition is that the number of occupied second child nodes in the m reference nodes is greater than the second threshold and the number of occupied first child nodes is less than the third threshold.

[0097] If the number of the first child nodes occupied and the number of the second child nodes occupied in the m reference nodes do not meet the first condition and the second condition, the encoding end predicts that at least one of the first child nodes and at least one of the second child nodes in the node to be encoded are occupied, and determines the prediction result of the node to be encoded as the third prediction result.

[0098] In this embodiment of the application, if the number of occupied child nodes in the first plane of m reference nodes, that is, the number of occupied first child nodes, is greater than the second threshold, and the number of occupied child nodes in the second plane, that is, the number of occupied second child nodes, is less than the third threshold, then the prediction result of the node to be encoded is the first prediction result: at least one first child node in the first plane of the node to be encoded is occupied, and none of the second child nodes in the second plane of the node to be encoded are occupied.

[0099] If the number of occupied first child nodes in the first plane of m reference nodes is less than the third threshold, and the number of occupied second child nodes in the second plane is greater than the second threshold, then the prediction result of the node to be encoded is the second prediction result: none of the first child nodes in the first plane of the node to be encoded are occupied, and at least one second child node in the second plane of the node to be encoded is occupied.

[0100] If the number of occupied first child nodes in the first plane of m reference nodes and the number of occupied second child nodes in the second plane do not meet either the first or the second condition, for example, the number of occupied first child nodes in the m reference nodes is less than the second threshold and the number of occupied second child nodes is greater than the third threshold, or the number of occupied first child nodes in the m reference nodes is less than the second threshold and the number of occupied second child nodes is less than the third threshold, then the prediction result of the node to be encoded is the third prediction result: at least one first child node in the first plane of the node to be encoded is occupied, and at least one second child node in the second plane is occupied.

[0101] In this embodiment, the occupancy information of the node to be encoded is predicted by comparing the size of the occupied first child node and the occupied second child node with the size of the second threshold and the third threshold, which effectively improves the prediction accuracy of the occupancy status of the node to be encoded.

[0102] Optionally, if the first child node and the second child node in the reference node are based on an n-ary tree partition, the second threshold is less than or equal to The third threshold is a positive integer, less than or equal to A positive integer, where n is a positive integer.

[0103] For example, the first and second child nodes in the reference node are based on the octree partition, that is, n is 8. Assuming the number of reference nodes is 3, that is, m is 3, then the second threshold is a positive integer less than or equal to 11, and the third threshold is a positive integer less than or equal to 12.

[0104] In this embodiment, after determining the prediction result of the node to be encoded, the encoding end determines the context of the child node to be encoded based on the prediction result and the position of the child node to be encoded within the node to be encoded. Optionally, step 203 may specifically include at least one of the following:

[0105] When the prediction result of the node to be encoded is the first prediction result, and the child node to be encoded is located on the second plane of the node to be encoded, the encoding end determines the first preset model as the context of the child node to be encoded;

[0106] When the prediction result of the node to be encoded is the second prediction result, and the child node to be encoded is located on the first plane of the node to be encoded, the encoding end determines the second preset model as the context of the child node to be encoded;

[0107] When the prediction result of the node to be encoded is the first prediction result, and the child node to be encoded is located on the first plane of the node to be encoded, the encoding end obtains the neighboring nodes of the child node to be encoded, and determines the context of the child node to be encoded based on the occupancy of the neighboring nodes.

[0108] When the prediction result of the node to be encoded is the second prediction result, and the child node to be encoded is located in the second plane of the node to be encoded, the encoding end obtains the neighboring nodes of the child node to be encoded, and determines the context of the child node to be encoded based on the occupancy of the neighboring nodes;

[0109] If the prediction result of the node to be encoded is the third prediction result, the encoding end obtains the neighboring nodes of the child node to be encoded, and determines the context of the child node to be encoded based on the occupancy of the neighboring nodes.

[0110] Specifically, if the encoding end determines that the prediction result of the node to be encoded is the first prediction result, that is, at least one first child node in the first plane of the node to be encoded is occupied, and the second child nodes in the second plane of the node to be encoded are not occupied, for the child nodes to be encoded located in the second plane of the node to be encoded, the encoding end determines the context of the child nodes to be encoded by the first preset model, that is, assigns the first preset model to the child nodes to be encoded. The first preset model is an adaptive probability model. The encoding end performs arithmetic encoding on the placeholder bit code of the child nodes to be encoded based on the adaptive probability model to generate the target code stream.

[0111] If the encoding end determines that the prediction result of the node to be encoded is the second prediction result, that is, none of the first child nodes in the first plane of the node to be encoded are occupied, and at least one second child node in the second plane of the node to be encoded is occupied, then for the child nodes to be encoded located in the first plane, the encoding end determines the second preset model as the context of this type of child node to be encoded, that is, it assigns the second preset model to the child node to be encoded. This second preset model is also an adaptive probability model. The encoding end performs arithmetic encoding on the placeholder bit code of the child node to be encoded based on this adaptive probability model to generate the target bitstream. Optionally, the first preset model and the second preset model can be the same probability model, for example, both can be adaptive probability models.

[0112] If the encoder determines that the prediction result of the node to be encoded is the first prediction result, for the child node to be encoded located in the first plane, the encoder obtains the neighboring nodes of the child node to be encoded, and determines the context of the child node to be encoded based on the occupancy of the neighboring nodes.

[0113] If the encoding end determines that the prediction result of the node to be encoded is the second prediction result, for the child node to be encoded located in the second plane, the encoding end can also obtain the neighboring nodes of the child node to be encoded and determine the context of the child node to be encoded based on the occupancy of the neighboring nodes.

[0114] If the encoding end determines that the prediction result of the node to be encoded is the third prediction result, that is, at least one first child node in the first plane of the node to be encoded is occupied, and at least one second child node in the second plane is occupied, the encoding end can also obtain the neighboring nodes of the child node to be encoded and determine the context of the child node to be encoded based on the occupancy status of the neighboring nodes.

[0115] Optionally, the encoding end obtains the neighboring nodes of the child node to be encoded and determines the context of the child node to be encoded based on the occupancy status of the neighboring nodes. There are two different ways to achieve this, and the following will describe these two methods in detail.

[0116] Method 1

[0117] Taking octree partitioning as an example, under the breadth-first traversal partitioning method of octree, the encoding end can obtain the neighbor information of the child node to be encoded in the node to be encoded, including the neighbor child nodes in three target directions. For example, the neighbor child nodes in the left, front and down directions of the child node to be encoded are obtained, including: 3 neighbor child nodes that are coplanar with the current point of the child node to be encoded, 3 collinear neighbor child nodes, and 1 neighbor child node that shares a point.

[0118] The context design of the child node layer is as follows: For a child node to be encoded, the encoding end searches for the three coplanar neighboring child nodes in the left-front-bottom direction of the same layer as the child node to be encoded, the three collinear neighboring child nodes, the one concentric neighboring child node, and the occupancy of neighboring child nodes located two child node side lengths away from the current child node in the negative direction of the dimension with the shortest side length. Taking the shortest side length of the child node in the x-axis direction as an example, the reference nodes selected for each child node are as follows: Figure 4a As shown, the dashed box nodes are the current nodes to be encoded, the filled nodes are the current child nodes to be encoded, and the solid box nodes are the neighboring child nodes selected by each child node.

[0119] The encoding process meticulously considers the occupancy of 3 coplanar neighboring child nodes, 3 collinear child nodes, and the child node located two child node side lengths away from the current child node in the negative direction along the dimension with the shortest side length. There are a total of 2 possible occupancy scenarios for these 7 child nodes. 7 =128 possible cases. If not all of them are non-occupied, then there are 2... 7 -1 = 127 possibilities, assigning one context to each. If all 7 child nodes are unoccupied, then the occupancy of shared neighbor child nodes is further considered. A shared neighbor child node has two possibilities: occupied or unoccupied. A separate context is assigned to the case where the shared neighbor child node is occupied. If the shared neighbor child node is also unoccupied, then the occupancy of neighbor nodes in the node to be encoded layer is further considered. Thus, based on the occupancy of neighbor child nodes in the node to be encoded layer, a total of 127 + 2 - 1 = 128 contexts can be obtained.

[0120] If none of the eight neighboring child nodes at the same level of the child node to be encoded are occupied, then further obtain the following: Figure 4b The diagram shows the placement of four groups of neighboring nodes in the node layer to be encoded. Nodes within dashed boxes are the nodes to be encoded, and nodes within solid borders are neighboring nodes. For the node layer to be encoded, the context is determined according to the following steps:

[0121] 1. First, obtain the coplanar neighbor nodes in three preset directions of the node to be encoded. For example, obtain the top-right and bottom-three coplanar neighbor nodes of the node to be encoded. There are two possible positions for these three coplanar neighbor nodes in the top-right and bottom-three directions of the node to be encoded. 3 =8 possibilities, and a context is assigned to each of the cases where not all are unoccupied. Combined with the position of the child node to be encoded within the node to be encoded, this group of coplanar neighbor nodes provides a total of (8-1)×8=56 contexts. If the top-right and last three coplanar neighbor nodes of the node to be encoded are all unoccupied, then the remaining three groups of neighbors at the node to be encoded layer (i.e., ...) are further obtained. Figure 4b The occupancy status of the left front-bottom coplanar neighbor, right top-back collinear neighbor, and left front-bottom collinear neighbor in the data.

[0122] 2. Obtain the distance between the most recently occupied node and the current node. The specific relationship between the occupancy status of neighboring nodes and their distances is shown in Table 1.

[0123] Table 1. Correspondence between the occupancy status of neighboring nodes in the node to be encoded and their distance.

[0124]

[0125] As shown in Table 1, there are 3 possible values ​​for distance. One context is assigned to each of these 3 values. Combined with the position of the child node to be encoded within the node to be encoded, there are a total of 3 × 8 = 24 contexts.

[0126] Thus, the total number of contexts determined based on the above method one is: 128+56+24=208. The encoding end assigns an adaptive probability model to each context.

[0127] Method 2

[0128] After determining the node to be encoded, for each child node to be encoded, the encoding end can obtain six neighboring nodes that are coplanar and collinear with the node to be encoded in the node's layer, as follows: Figure 5a As shown. Figure 5a The nodes with dashed borders are the nodes to be encoded, the filled nodes are the child nodes to be encoded, and the nodes with solid borders are the coplanar and collinear neighbor nodes of the node to be encoded. For the three coplanar neighbor nodes, considering each distribution, there are a total of 2 3 =8 cases; for the remaining 3 collinear neighbor nodes, only the number of occupied nodes among the three neighbor nodes is obtained, which has 0, 1, 2, and 3 cases in total. Combining the two, there are a total of 4×8=32 cases. Configuring 1 context for each case, a total of 32 contexts are obtained for the node layer to be encoded.

[0129] Furthermore, for each child node to be encoded, obtain its neighboring nodes in the same layer and along the target direction. For example, obtain the left, front, and bottom (negative directions of each coordinate axis) coplanar neighboring child nodes of the child node to be encoded, as follows: Figure 5b As shown. Figure 5b The nodes with dashed borders are the nodes to be encoded, the filled nodes are the child nodes to be encoded, and the nodes with solid borders are the coplanar neighbors of the child nodes at the same level. There are a total of 2 possible positions for these three coplanar neighbors at the same level as the child nodes to be encoded. 3 =8 types, each case is assigned a context, so the child node to be encoded provides a total of 8 contexts.

[0130] The contexts of the node layer to be encoded and the child node layer to be encoded do not interfere with each other. Therefore, the total number of contexts that can be determined by this method is 32×8=256. The encoding end assigns an adaptive probability model to each context.

[0131] Optionally, the prediction result of the node to be encoded is the third prediction result, or the prediction result of the node to be encoded is the first prediction result, and the child node to be encoded is located in the first plane of the node to be encoded; or the prediction result of the node to be encoded is the second prediction result, and the child node to be encoded is located in the second plane of the node to be encoded. The encoding end can determine the context of the child node to be encoded based on the above method one or method two.

[0132] This application also provides a point cloud decoding method. Please refer to... Figure 6 , Figure 6 This is a flowchart of a point cloud decoding method provided in an embodiment of this application, such as... Figure 6 As shown, the method includes the following steps:

[0133] Step 601: The decoding end obtains the node to be decoded in the point cloud sequence and the m reference nodes that have been decoded in the point cloud sequence, where m is a positive integer;

[0134] Step 602: The decoding end predicts the occupancy information of the node to be decoded based on the occupancy information of the m reference nodes, and determines the prediction result of the node to be decoded;

[0135] Step 603: The decoding end determines the context of the child node to be decoded based on the prediction result and the position of the child node to be decoded in the node to be decoded. The child node to be decoded is any child node obtained by partitioning the node to be decoded based on the structure tree.

[0136] Step 604: The decoding end performs entropy decoding on the child node to be decoded according to the context to generate the target bitstream.

[0137] Optionally, step 601 specifically includes:

[0138] The decoding end acquires the nodes to be decoded in the point cloud sequence;

[0139] The decoding end obtains the first k decoded nodes of the node to be decoded based on the node decoding order, where k is a positive integer;

[0140] If at least one of the first k decoded nodes has target plane features, the decoding end acquires the m decoded reference nodes in the point cloud sequence.

[0141] Optionally, when at least one of the first k decoded nodes has target plane features, the decoding end acquires the m decoded reference nodes in the point cloud sequence, including:

[0142] If the number of decoded nodes with target plane features among the first k decoded nodes is greater than or equal to a first threshold, the decoding end determines that the first k decoded nodes match the target plane features;

[0143] Wherein, the first threshold is a positive integer less than k.

[0144] Optionally, step 601 may further include:

[0145] The decoding end acquires the nodes to be decoded in the point cloud sequence;

[0146] The decoding end determines the target coordinate system based on the coordinate values ​​of the node to be decoded;

[0147] The decoding end divides the point cloud sequence into layers that belong to the same node as the node to be decoded, and determines the nodes that have the same coordinate value on the target coordinate axis as candidate reference nodes. The target coordinate axis is any coordinate axis in the target coordinate system, and the target coordinate axis is perpendicular to the target plane.

[0148] The decoding end obtains m reference nodes from the candidate reference nodes.

[0149] Optionally, step 602 specifically includes:

[0150] The decoding end determines a first plane and a second plane of the node, wherein the first plane and the second plane are both parallel to the target plane, and the first plane and the second plane are stacked along the extension direction of the target coordinate axis. The first plane is closer to the coordinate origin than the second plane, and the coordinate origin is the coordinate origin of the target coordinate system.

[0151] The decoding end obtains the number of first child nodes and the number of second child nodes occupied among the m reference nodes, where the first child node is a child node located in the first plane and the second child node is a child node located in the second plane.

[0152] The decoding end predicts the occupancy information of the node to be decoded based on the number of the first child nodes occupied and the number of the second child nodes occupied among the m reference nodes, and determines the prediction result of the node to be decoded.

[0153] Optionally, the decoding end predicts the occupancy information of the node to be decoded based on the number of occupied first child nodes and the number of occupied second child nodes among the m reference nodes, and determines the prediction result of the node to be decoded, including at least one of the following:

[0154] If the number of occupied first child nodes and the number of occupied second child nodes in the m reference nodes meet the first condition, the decoding end predicts that at least one first child node in the node to be decoded is occupied and the second child node in the node to be decoded is not occupied, and the prediction result of the node to be decoded is determined as the first prediction result. The first condition is that the number of occupied first child nodes in the m reference nodes is greater than the second threshold and the number of occupied second child nodes is less than the third threshold.

[0155] If the number of occupied first child nodes and the number of occupied second child nodes in the m reference nodes meet the second condition, the decoding end predicts that at least one second child node in the node to be decoded is occupied and the first child node in the node to be decoded is not occupied. The prediction result of the node to be decoded is determined as the second prediction result. The second condition is that the number of occupied second child nodes in the m reference nodes is greater than the second threshold and the number of occupied first child nodes is less than the third threshold.

[0156] If the number of the first child nodes occupied and the number of the second child nodes occupied in the m reference nodes do not meet the first condition and the second condition, the decoding end predicts that at least one of the first child nodes and at least one of the second child nodes in the node to be decoded are occupied, and determines the prediction result of the node to be decoded as the third prediction result.

[0157] Optionally, step 603 may specifically include at least one of the following:

[0158] When the prediction result of the node to be decoded is the first prediction result, and the child node to be decoded is located on the second plane of the node to be decoded, the decoding end determines the first preset model as the context of the child node to be decoded;

[0159] When the prediction result of the node to be decoded is the second prediction result, and the child node to be decoded is located on the first plane of the node to be decoded, the decoding end determines the second preset model as the context of the child node to be decoded;

[0160] When the prediction result of the node to be decoded is the first prediction result, and the child node to be decoded is located on the first plane of the node to be decoded, the decoding end obtains the neighboring nodes of the child node to be decoded, and determines the context of the child node to be decoded based on the occupancy of the neighboring nodes.

[0161] When the prediction result of the node to be decoded is the second prediction result, and the child node to be decoded is located on the second plane of the node to be decoded, the decoding end obtains the neighboring nodes of the child node to be decoded, and determines the context of the child node to be decoded based on the occupancy of the neighboring nodes;

[0162] If the prediction result of the node to be decoded is the third prediction result, the neighboring nodes of the child node to be decoded are obtained, and the context of the child node to be decoded is determined based on the occupancy status of the neighboring nodes.

[0163] Optionally, if the first child node and the second child node in the reference node are based on an n-ary tree partition, the second threshold is less than or equal to The third threshold is a positive integer, less than or equal to A positive integer, where n is a positive integer.

[0164] In this embodiment, the decoding end can predict the occupancy information of the node to be decoded based on the occupancy information of the already decoded reference node, and determine the context of the child node to be decoded based on the prediction result of the node to be decoded and the position of the child node to be decoded in the node to be decoded. This can better utilize the occupancy information of the already decoded nodes in the point cloud sequence, improve the decompression performance of the point cloud, and improve the decoding efficiency of the decoding end.

[0165] It should be noted that the point cloud decoding method provided in this application embodiment is different from the point cloud encoding method described above, except that the execution subject is different. The specific execution steps and implementation process can be referred to the specific description in the point cloud encoding method described above, and will not be repeated here.

[0166] The point cloud encoding method provided in this application can be executed by a point cloud encoding device. This application uses a point cloud encoding device executing the point cloud encoding method as an example to illustrate the point cloud encoding device provided in this application.

[0167] Please refer to Figure 7 , Figure 7 This is a structural diagram of a point cloud encoding device provided in an embodiment of this application, as shown below. Figure 7 As shown, the point cloud encoding device 700 includes:

[0168] The first acquisition module 701 is used to acquire the node to be encoded in the point cloud sequence and m reference nodes that have been encoded in the point cloud sequence, where m is a positive integer;

[0169] The first prediction module 702 is used to predict the occupancy information of the node to be encoded based on the occupancy information of the m reference nodes, and to determine the prediction result of the node to be encoded.

[0170] The first determining module 703 is used to determine the context of the child node to be encoded based on the prediction result and the position of the child node to be encoded in the node to be encoded, wherein the child node to be encoded is any child node obtained by dividing the node to be encoded based on the structure tree.

[0171] The encoding module 704 is used to perform entropy encoding on the child node to be encoded according to the context to generate the target bitstream.

[0172] Optionally, the first acquisition module 701 is further configured to:

[0173] Obtain the nodes to be encoded from the point cloud sequence;

[0174] The first k encoded nodes of the node to be encoded are obtained based on the node encoding order, where k is a positive integer.

[0175] If at least one of the first k encoded nodes has target plane features, obtain m encoded reference nodes in the point cloud sequence.

[0176] Optionally, the first acquisition module 701 is further configured to:

[0177] If the number of encoded nodes with target plane features in the first k encoded nodes is greater than a first threshold, obtain m encoded reference nodes in the point cloud sequence.

[0178] Wherein, the first threshold is a positive integer less than k.

[0179] Optionally, the first acquisition module 701 is further configured to:

[0180] Obtain the nodes to be encoded from the point cloud sequence;

[0181] The target coordinate system is determined based on the coordinate values ​​of the node to be encoded;

[0182] The nodes in the point cloud sequence that belong to the same level as the node to be encoded and have the same coordinate value on the target coordinate axis as the node to be encoded are determined as candidate reference nodes. The target coordinate axis is any coordinate axis in the target coordinate system and is perpendicular to the target plane.

[0183] Obtain m reference nodes from the candidate reference nodes.

[0184] Optionally, the first prediction module 702 is further configured to:

[0185] Determine a first plane and a second plane for the node, wherein both the first plane and the second plane are parallel to the target plane, and the first plane and the second plane overlap in the extension direction of the target coordinate axis. The first plane is closer to the origin of the coordinate system than the second plane.

[0186] Obtain the number of first child nodes and the number of second child nodes occupied among the m reference nodes, where the first child node is a child node located in the first plane and the second child node is a child node located in the second plane;

[0187] Based on the number of occupied first child nodes and the number of occupied second child nodes among the m reference nodes, the occupancy information of the node to be encoded is predicted, and the prediction result of the node to be encoded is determined.

[0188] Optionally, the first prediction module 702 is further configured to perform at least one of the following:

[0189] If the number of occupied first child nodes and the number of occupied second child nodes in the m reference nodes meet the first condition, it is predicted that at least one first child node in the node to be encoded is occupied and the second child node in the node to be encoded is not occupied. The prediction result of the node to be encoded is determined as the first prediction result. The first condition is that the number of occupied first child nodes in the m reference nodes is greater than the second threshold and the number of occupied second child nodes is less than the third threshold.

[0190] If the number of occupied first child nodes and the number of occupied second child nodes in the m reference nodes meet the second condition, it is predicted that at least one second child node in the node to be encoded is occupied and the first child node in the node to be encoded is not occupied. The prediction result of the node to be encoded is determined as the second prediction result. The second condition is that the number of occupied second child nodes in the m reference nodes is greater than the second threshold and the number of occupied first child nodes is less than the third threshold.

[0191] If the number of the first child nodes occupied and the number of the second child nodes occupied in the m reference nodes do not meet the first condition and the second condition, it is predicted that at least one first child node and at least one second child node in the node to be encoded are occupied, and the prediction result of the node to be encoded is determined as the third prediction result.

[0192] Optionally, the first determining module 703 is further configured to perform at least one of the following:

[0193] If the prediction result of the node to be encoded is the first prediction result, and the child node to be encoded is located on the second plane of the node to be encoded, the first preset model is determined as the context of the child node to be encoded.

[0194] If the prediction result of the node to be encoded is the second prediction result, and the child node to be encoded is located on the first plane of the node to be encoded, the second preset model is determined as the context of the child node to be encoded.

[0195] If the prediction result of the node to be encoded is the first prediction result, and the child node to be encoded is located on the first plane of the node to be encoded, the neighboring nodes of the child node to be encoded are obtained, and the context of the child node to be encoded is determined based on the occupancy of the neighboring nodes.

[0196] If the prediction result of the node to be encoded is the second prediction result, and the child node to be encoded is located on the second plane of the node to be encoded, the neighboring nodes of the child node to be encoded are obtained, and the context of the child node to be encoded is determined based on the occupancy of the neighboring nodes.

[0197] If the prediction result of the node to be encoded is the third prediction result, the neighboring nodes of the child node to be encoded are obtained, and the context of the child node to be encoded is determined based on the occupancy of the neighboring nodes.

[0198] Optionally, if the first child node and the second child node in the reference node are based on an n-ary tree partition, the second threshold is less than or equal to The third threshold is a positive integer, less than or equal to A positive integer, where n is a positive integer.

[0199] In this embodiment, the point cloud encoding device 700 can predict the occupancy information of the node to be encoded based on the occupancy information of the already encoded reference node, and determine the context of the child node to be encoded based on the prediction result of the node to be encoded and the position of the child node to be encoded in the node to be encoded. This can better utilize the occupancy information of the already encoded nodes in the point cloud sequence, improve the geometric compression performance of the point cloud, and improve the encoding efficiency of the point cloud encoding device 700.

[0200] The point cloud encoding device 700 in this application embodiment can be an electronic device, such as an electronic device with an operating system, or a component in an electronic device, such as an integrated circuit or a chip. The electronic device can be a terminal or other devices besides a terminal. For example, the terminal can be, but is not limited to, the type of terminal 11 listed above, and other devices can be servers, network attached storage (NAS), etc., and this application embodiment does not specifically limit the types.

[0201] The point cloud encoding device 700 provided in this application embodiment can achieve... Figure 1 The various processes implemented in the method embodiments achieve the same technical effect, and will not be described again here to avoid repetition.

[0202] The point cloud decoding method provided in this application can be executed by a point cloud decoding device. This application uses the example of a point cloud decoding device executing the point cloud decoding method to illustrate the point cloud decoding device provided in this application.

[0203] Please refer to Figure 8 , Figure 8 This is a structural diagram of a point cloud decoding device provided in an embodiment of this application, as shown below. Figure 8 As shown, the point cloud decoding device 800 includes:

[0204] The second acquisition module 801 is used to acquire the node to be decoded in the point cloud sequence and the m reference nodes that have been decoded in the point cloud sequence, where m is a positive integer;

[0205] The second prediction module 802 is used to predict the occupancy information of the node to be decoded based on the occupancy information of the m reference nodes, and to determine the prediction result of the node to be decoded.

[0206] The second determining module 803 is used to determine the context of the child node to be decoded based on the prediction result and the position of the child node to be decoded in the node to be decoded, wherein the child node to be decoded is any child node obtained by dividing the node to be decoded based on the structure tree.

[0207] The decoding module 804 is used to perform entropy decoding on the child node to be decoded based on the context to generate the target bitstream.

[0208] Optionally, the second acquisition module 801 is further configured to:

[0209] Obtain the nodes to be decoded in the point cloud sequence;

[0210] Based on the node decoding order, obtain the first k decoded nodes of the node to be decoded, where k is a positive integer;

[0211] If at least one of the first k decoded nodes has target plane features, obtain the m decoded reference nodes in the point cloud sequence.

[0212] Optionally, the second acquisition module 801 is further configured to:

[0213] If the number of decoded nodes with target plane features in the first k decoded nodes is greater than or equal to a first threshold, obtain m decoded reference nodes in the point cloud sequence.

[0214] Wherein, the first threshold is a positive integer less than k.

[0215] Optionally, the second acquisition module 801 is further configured to:

[0216] Obtain the nodes to be decoded in the point cloud sequence;

[0217] The target coordinate system is determined based on the coordinate values ​​of the node to be decoded;

[0218] The nodes in the point cloud sequence that belong to the same node as the node to be decoded are divided into layers, and the nodes that have the same coordinate value as the node to be decoded on the target coordinate axis are determined as candidate reference nodes. The target coordinate axis is any coordinate axis in the target coordinate system, and the target coordinate axis is perpendicular to the target plane.

[0219] Obtain m reference nodes from the candidate reference nodes.

[0220] Optionally, the second prediction module 802 is further configured to:

[0221] A first plane and a second plane of the node are determined, wherein the first plane and the second plane are both parallel to the target plane, and the first plane and the second plane are stacked along the extension direction of the target coordinate axis. The first plane is closer to the origin of the coordinate system than the second plane.

[0222] Obtain the number of first child nodes and the number of second child nodes occupied among the m reference nodes, where the first child node is a child node located in the first plane and the second child node is a child node located in the second plane;

[0223] Based on the number of the first child nodes occupied and the number of the second child nodes occupied among the m reference nodes, the occupancy information of the node to be decoded is predicted, and the prediction result of the node to be decoded is determined.

[0224] Optionally, the second prediction module 802 is further configured to perform at least one of the following:

[0225] If the number of occupied first child nodes and the number of occupied second child nodes in the m reference nodes meet the first condition, it is predicted that at least one first child node in the node to be decoded is occupied and the second child node in the node to be decoded is not occupied. The prediction result of the node to be decoded is determined as the first prediction result. The first condition is that the number of occupied first child nodes in the m reference nodes is greater than the second threshold and the number of occupied second child nodes is less than the third threshold.

[0226] If the number of occupied first child nodes and the number of occupied second child nodes in the m reference nodes meet the second condition, it is predicted that at least one second child node in the node to be decoded is occupied and the first child node in the node to be decoded is not occupied. The prediction result of the node to be decoded is determined as the second prediction result. The second condition is that the number of occupied second child nodes in the m reference nodes is greater than the second threshold and the number of occupied first child nodes is less than the third threshold.

[0227] If the number of the first child nodes occupied and the number of the second child nodes occupied in the m reference nodes do not meet the first condition and the second condition, it is predicted that at least one first child node and at least one second child node in the node to be decoded are occupied, and the prediction result of the node to be decoded is determined as the third prediction result.

[0228] Optionally, the second determining module 803 is further configured to perform at least one of the following:

[0229] If the prediction result of the node to be decoded is the first prediction result, and the child node to be decoded is located on the second plane of the node to be decoded, the first preset model is determined as the context of the child node to be decoded.

[0230] If the prediction result of the node to be decoded is the second prediction result, and the child node to be decoded is located on the first plane of the node to be decoded, the second preset model is determined as the context of the child node to be decoded.

[0231] If the prediction result of the node to be decoded is the first prediction result, and the child node to be decoded is located on the first plane of the node to be decoded, the neighboring nodes of the child node to be decoded are obtained, and the context of the child node to be decoded is determined based on the occupancy of the neighboring nodes.

[0232] If the prediction result of the node to be decoded is the second prediction result, and the child node to be decoded is located on the second plane of the node to be decoded, the neighboring nodes of the child node to be decoded are obtained, and the context of the child node to be decoded is determined based on the occupancy of the neighboring nodes.

[0233] If the prediction result of the node to be decoded is the third prediction result, obtain the neighboring nodes of the child node to be decoded, and determine the context of the child node to be decoded based on the occupancy status of the neighboring nodes.

[0234] Optionally, if the first child node and the second child node in the reference node are based on an n-ary tree partition, the second threshold is less than or equal to The third threshold is a positive integer, less than or equal to A positive integer, where n is a positive integer.

[0235] In this embodiment, the point cloud decoding device 800 can predict the occupancy information of the node to be decoded based on the occupancy information of the already decoded reference node, and determine the context of the child node to be decoded based on the prediction result of the node to be decoded and the position of the child node to be decoded in the node to be decoded. This allows for better utilization of the occupancy information of the already decoded nodes in the point cloud sequence, improving the decompression performance of the point cloud and increasing the decoding efficiency of the point cloud decoding device 800.

[0236] The point cloud decoding device 800 in this embodiment can be an electronic device, such as an electronic device with an operating system, or a component in an electronic device, such as an integrated circuit or a chip. The electronic device can be a terminal or other devices besides a terminal. For example, the terminal can include, but is not limited to, the type of terminal 11 listed above; other devices can be servers, network attached storage (NAS), etc., and this embodiment does not impose specific limitations.

[0237] The point cloud decoding device 800 provided in this application embodiment can achieve... Figure 6 The various processes implemented in the method embodiments achieve the same technical effect, and will not be described again here to avoid repetition.

[0238] Optional, such as Figure 9 As shown, this application embodiment also provides an electronic device 900, including a processor 901 and a memory 902. The memory 902 stores a program or instructions that can run on the processor 901. For example, when the electronic device 900 is an encoding terminal, the program or instructions executed by the processor 901 implement the above-mentioned... Figure 1 Each step of the method embodiment described herein can achieve the same technical effect. When the electronic device 900 is a decoding end, the program or instruction executed by the processor 901 implements the above-described steps. Figure 6 The steps of the method embodiments described herein can achieve the same technical effect, and will not be repeated here to avoid repetition.

[0239] This application embodiment also provides a terminal, the above-mentioned... Figure 1 and Figure 6 All implementation processes and methods of the described method embodiments can be applied to this terminal embodiment and achieve the same technical effect. Specifically, Figure 10 A schematic diagram of the hardware structure of a terminal to implement an embodiment of this application.

[0240] The terminal 1000 includes, but is not limited to, at least some of the following components: radio frequency unit 1001, network module 1002, audio output unit 1003, input unit 1004, sensor 1005, display unit 1006, user input unit 1007, interface unit 1008, memory 1009, and processor 1010.

[0241] Those skilled in the art will understand that the terminal 1000 may also include a power supply (such as a battery) for supplying power to various components. The power supply may be logically connected to the processor 1010 through a power management system, thereby enabling functions such as managing charging, discharging, and power consumption through the power management system. Figure 10The terminal structure shown does not constitute a limitation on the terminal. The terminal may include more or fewer components than shown, or combine certain components, or have different component arrangements, which will not be elaborated here.

[0242] It should be understood that, in this embodiment, the input unit 1004 may include a graphics processing unit (GPU) 10041 and a microphone 10042. The GPU 10041 processes image data of still images or videos obtained by an image capture device (such as a camera) in video capture mode or image capture mode. The display unit 1006 may include a display panel 10061, which may be configured in the form of a liquid crystal display, an organic light-emitting diode, etc. The user input unit 1007 includes a touch panel 10071 and at least one of other input devices 10072. The touch panel 10071 is also called a touch screen. The touch panel 10071 may include a touch detection device and a touch controller. Other input devices 10072 may include, but are not limited to, physical keyboards, function keys (such as volume control buttons, power buttons, etc.), trackballs, mice, and joysticks, which will not be described in detail here.

[0243] In this embodiment, after receiving downlink data from the network-side device, the radio frequency unit 1001 can transmit it to the processor 1010 for processing; in addition, the radio frequency unit 1001 can send uplink data to the network-side device. Typically, the radio frequency unit 1001 includes, but is not limited to, antennas, amplifiers, transceivers, couplers, low-noise amplifiers, duplexers, etc.

[0244] The memory 1009 can be used to store software programs or instructions and various data. The memory 1009 may primarily include a first storage area for storing programs or instructions and a second storage area for storing data. The first storage area may store the operating system, application programs or instructions required for at least one function (such as sound playback function, image playback function, etc.). Furthermore, the memory 1009 may include volatile memory or non-volatile memory, or both. The non-volatile memory may be read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), or flash memory. Volatile memory can be random access memory (RAM), static random access memory (SRAM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), double data rate synchronous dynamic random access memory (DDRSDRAM), enhanced synchronous dynamic random access memory (ESDRAM), synchronous link dynamic random access memory (SLDRAM), and direct memory bus RAM (DRRAM). The memory 1009 in this embodiment includes, but is not limited to, these and any other suitable types of memory.

[0245] The processor 1010 may include one or more processing units; optionally, the processor 1010 integrates an application processor and a modem processor, wherein the application processor mainly handles operations involving the operating system, user interface, and applications, and the modem processor mainly handles wireless communication signals, such as a baseband processor. It is understood that the aforementioned modem processor may also not be integrated into the processor 1010.

[0246] When terminal 1000 is the encoding end, processor 1010 is used for:

[0247] Obtain the node to be encoded in the point cloud sequence and the m reference nodes that have been encoded in the point cloud sequence, where m is a positive integer;

[0248] Based on the occupancy information of the m reference nodes, predict the occupancy information of the node to be encoded, and determine the prediction result of the node to be encoded.

[0249] Based on the prediction results and the position of the child node to be encoded in the node to be encoded, the context of the child node to be encoded is determined. The child node to be encoded is any child node obtained by partitioning the node to be encoded based on the structure tree.

[0250] The target bitstream is generated by entropy encoding of the child node to be encoded based on the context.

[0251] Optionally, the processor 1010 is also used for:

[0252] Obtain the nodes to be encoded from the point cloud sequence;

[0253] The first k encoded nodes of the node to be encoded are obtained based on the node encoding order, where k is a positive integer.

[0254] If at least one of the first k encoded nodes has target plane features, obtain m encoded reference nodes in the point cloud sequence.

[0255] Optionally, the processor 1010 is also used for:

[0256] If the number of encoded nodes with target plane features in the first k encoded nodes is greater than or equal to a first threshold, then obtain m encoded reference nodes in the point cloud sequence.

[0257] Wherein, the first threshold is a positive integer less than k.

[0258] Optionally, the processor 1010 is also used for:

[0259] Obtain the nodes to be encoded from the point cloud sequence;

[0260] The target coordinate system is determined based on the coordinate values ​​of the node to be encoded;

[0261] The nodes in the point cloud sequence that belong to the same level as the node to be encoded and have the same coordinate value on the target coordinate axis as the node to be encoded are determined as candidate reference nodes. The target coordinate axis is any coordinate axis in the target coordinate system and is perpendicular to the target plane.

[0262] Obtain m reference nodes from the candidate reference nodes.

[0263] Optionally, the processor 1010 is also used for:

[0264] Determine a first plane and a second plane for the node, wherein both the first plane and the second plane are parallel to the target plane, and the first plane and the second plane overlap in the extension direction of the target coordinate axis. The first plane is closer to the origin of the coordinate system than the second plane.

[0265] Obtain the number of first child nodes and the number of second child nodes occupied among the m reference nodes, where the first child node is a child node located in the first plane and the second child node is a child node located in the second plane;

[0266] Based on the number of occupied first child nodes and the number of occupied second child nodes among the m reference nodes, the occupancy information of the node to be encoded is predicted, and the prediction result of the node to be encoded is determined.

[0267] Optionally, the processor 1010 is also used for:

[0268] If the number of occupied first child nodes and the number of occupied second child nodes in the m reference nodes meet the first condition, it is predicted that at least one first child node in the node to be encoded is occupied and the second child node in the node to be encoded is not occupied. The prediction result of the node to be encoded is determined as the first prediction result. The first condition is that the number of occupied first child nodes in the m reference nodes is greater than the second threshold and the number of occupied second child nodes is less than the third threshold.

[0269] If the number of occupied first child nodes and the number of occupied second child nodes in the m reference nodes meet the second condition, it is predicted that at least one second child node in the node to be encoded is occupied and the first child node in the node to be encoded is not occupied. The prediction result of the node to be encoded is determined as the second prediction result. The second condition is that the number of occupied second child nodes in the m reference nodes is greater than the second threshold and the number of occupied first child nodes is less than the third threshold.

[0270] If the number of the first child nodes occupied and the number of the second child nodes occupied in the m reference nodes do not meet the first condition and the second condition, it is predicted that at least one first child node and at least one second child node in the node to be encoded are occupied, and the prediction result of the node to be encoded is determined as the third prediction result.

[0271] Optionally, the processor 1010 is also used for:

[0272] If the prediction result of the node to be encoded is the first prediction result, and the child node to be encoded is located on the second plane of the node to be encoded, the first preset model is determined as the context of the child node to be encoded.

[0273] If the prediction result of the node to be encoded is the second prediction result, and the child node to be encoded is located on the first plane of the node to be encoded, the second preset model is determined as the context of the child node to be encoded.

[0274] If the prediction result of the node to be encoded is the first prediction result, and the child node to be encoded is located on the first plane of the node to be encoded, the neighboring nodes of the child node to be encoded are obtained, and the context of the child node to be encoded is determined based on the occupancy of the neighboring nodes.

[0275] If the prediction result of the node to be encoded is the second prediction result, and the child node to be encoded is located on the second plane of the node to be encoded, the neighboring nodes of the child node to be encoded are obtained, and the context of the child node to be encoded is determined based on the occupancy of the neighboring nodes.

[0276] If the prediction result of the node to be encoded is the third prediction result, the neighboring nodes of the child node to be encoded are obtained, and the context of the child node to be encoded is determined based on the occupancy of the neighboring nodes.

[0277] Optionally, if the first child node and the second child node in the reference node are based on an n-ary tree partition, the second threshold is less than or equal to The third threshold is a positive integer, less than or equal to A positive integer, where n is a positive integer.

[0278] Alternatively, when terminal 1000 is the decoding end, processor 1010 is used for:

[0279] Obtain the node to be decoded in the point cloud sequence and the m reference nodes that have been decoded in the point cloud sequence, where m is a positive integer;

[0280] Based on the occupancy information of the m reference nodes, predict the occupancy information of the node to be decoded, and determine the prediction result of the node to be decoded;

[0281] Based on the prediction results and the position of the child node to be decoded in the node to be decoded, the context of the child node to be decoded is determined. The child node to be decoded is any child node obtained by partitioning the node to be decoded based on the structure tree.

[0282] Based on the context, the child node to be decoded is entropy decoded to generate the target bitstream.

[0283] Optionally, the processor 1010 is also used for:

[0284] Obtain the nodes to be decoded in the point cloud sequence;

[0285] Based on the node decoding order, obtain the first k decoded nodes of the node to be decoded, where k is a positive integer;

[0286] If at least one of the first k decoded nodes has target plane feature matching, obtain the m decoded reference nodes in the point cloud sequence.

[0287] Optionally, the processor 1010 is also used for:

[0288] If the number of decoded nodes with target plane features in the first k decoded nodes is greater than or equal to a first threshold, obtain m decoded reference nodes in the point cloud sequence.

[0289] Wherein, the first threshold is a positive integer less than k.

[0290] Optionally, the processor 1010 is also used for:

[0291] Obtain the nodes to be decoded in the point cloud sequence;

[0292] The target coordinate system is determined based on the coordinate values ​​of the node to be decoded;

[0293] The nodes in the point cloud sequence that belong to the same node as the node to be decoded are divided into layers, and the nodes that have the same coordinate value as the node to be decoded on the target coordinate axis are determined as candidate reference nodes. The target coordinate axis is any coordinate axis in the target coordinate system, and the target coordinate axis is perpendicular to the target plane.

[0294] Obtain m reference nodes from the candidate reference nodes.

[0295] Optionally, the processor 1010 is also used for:

[0296] A first plane and a second plane of the node are determined, wherein the first plane and the second plane are both parallel to the target plane, and the first plane and the second plane are stacked along the extension direction of the target coordinate axis. The first plane is closer to the origin of the coordinate system than the second plane.

[0297] Obtain the number of first child nodes and the number of second child nodes occupied among the m reference nodes, where the first child node is a child node located in the first plane and the second child node is a child node located in the second plane;

[0298] Based on the number of the first child nodes occupied and the number of the second child nodes occupied among the m reference nodes, the occupancy information of the node to be decoded is predicted, and the prediction result of the node to be decoded is determined.

[0299] Optionally, the processor 1010 is also used for:

[0300] If the number of occupied first child nodes and the number of occupied second child nodes in the m reference nodes meet the first condition, it is predicted that at least one first child node in the node to be decoded is occupied and the second child node in the node to be decoded is not occupied. The prediction result of the node to be decoded is determined as the first prediction result. The first condition is that the number of occupied first child nodes in the m reference nodes is greater than the second threshold and the number of occupied second child nodes is less than the third threshold.

[0301] If the number of occupied first child nodes and the number of occupied second child nodes in the m reference nodes meet the second condition, it is predicted that at least one second child node in the node to be decoded is occupied and the first child node in the node to be decoded is not occupied. The prediction result of the node to be decoded is determined as the second prediction result. The second condition is that the number of occupied second child nodes in the m reference nodes is greater than the second threshold and the number of occupied first child nodes is less than the third threshold.

[0302] If the number of the first child nodes occupied and the number of the second child nodes occupied in the m reference nodes do not meet the first condition and the second condition, it is predicted that at least one first child node and at least one second child node in the node to be decoded are occupied, and the prediction result of the node to be decoded is determined as the third prediction result.

[0303] Optionally, the processor 1010 is also used for:

[0304] If the prediction result of the node to be decoded is the first prediction result, and the child node to be decoded is located on the second plane of the node to be decoded, the first preset model is determined as the context of the child node to be decoded.

[0305] If the prediction result of the node to be decoded is the second prediction result, and the child node to be decoded is located on the first plane of the node to be decoded, the second preset model is determined as the context of the child node to be decoded.

[0306] If the prediction result of the node to be decoded is the first prediction result, and the child node to be decoded is located on the first plane of the node to be decoded, the neighboring nodes of the child node to be decoded are obtained, and the context of the child node to be decoded is determined based on the occupancy of the neighboring nodes.

[0307] If the prediction result of the node to be decoded is the second prediction result, and the child node to be decoded is located on the second plane of the node to be decoded, the neighboring nodes of the child node to be decoded are obtained, and the context of the child node to be decoded is determined based on the occupancy of the neighboring nodes.

[0308] If the prediction result of the node to be decoded is the third prediction result, obtain the neighboring nodes of the child node to be decoded, and determine the context of the child node to be decoded based on the occupancy status of the neighboring nodes.

[0309] Optionally, if the first child node and the second child node in the reference node are based on an n-ary tree partition, the second threshold is less than or equal to The third threshold is a positive integer, less than or equal to A positive integer, where n is a positive integer.

[0310] The terminal 1000 provided in this application embodiment can better utilize the occupancy information of encoded and decoded points in the point cloud sequence, thereby improving the geometric compression performance of the point cloud and increasing encoding and decoding efficiency.

[0311] This application embodiment also provides a readable storage medium storing a program or instructions that, when executed by a processor, implement the above-described functionality. Figure 1 or Figure 6 The various processes in the method embodiments described herein can achieve the same technical effect, and will not be repeated here to avoid repetition.

[0312] The processor is the processor in the terminal described in the above embodiments. The readable storage medium includes computer-readable storage media, such as computer read-only memory (ROM), random access memory (RAM), magnetic disk, or optical disk.

[0313] This application embodiment also provides a chip, the chip including a processor and a communication interface, the communication interface being coupled to the processor, the processor being used to run programs or instructions to implement the above. Figure 1 or Figure 6 The various processes in the method embodiments described herein can achieve the same technical effect, and will not be repeated here to avoid repetition.

[0314] It should be understood that the chip mentioned in the embodiments of this application may also be referred to as a system-on-a-chip, system chip, chip system, or system-on-a-chip, etc.

[0315] This application embodiment also provides a computer program / program product, which is stored in a storage medium and executed by at least one processor to implement the above. Figure 1 or Figure 6 The various processes in the method embodiments described herein can achieve the same technical effect, and will not be repeated here to avoid repetition.

[0316] It should be noted that, in this document, the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or apparatus. Without further limitations, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the process, method, article, or apparatus that includes that element. Furthermore, it should be noted that the scope of the methods and apparatuses in the embodiments of this application is not limited to performing functions in the order shown or discussed, but may also include performing functions substantially simultaneously or in the reverse order, depending on the functions involved. For example, the described methods may be performed in a different order than described, and various steps may be added, omitted, or combined. Additionally, features described with reference to certain examples may be combined in other examples.

[0317] Through the above description of the embodiments, those skilled in the art can clearly understand that the methods of the above embodiments can be implemented by means of software plus necessary general-purpose hardware platforms. Of course, they can also be implemented by hardware, but in many cases the former is a better implementation method. Based on this understanding, the technical solution of this application, in essence, or the part that contributes to the prior art, can be embodied in the form of a computer software product. This computer software product is stored in a storage medium (such as ROM / RAM, magnetic disk, optical disk) and includes several instructions to cause a terminal (which may be a mobile phone, computer, server, air conditioner, or network device, etc.) to execute the methods described in the various embodiments of this application.

[0318] The embodiments of this application have been described above with reference to the accompanying drawings. However, this application is not limited to the specific embodiments described above. The specific embodiments described above are merely illustrative and not restrictive. Those skilled in the art can make many other forms under the guidance of this application without departing from the spirit and scope of the claims, and all of these forms are within the protection scope of this application.

Claims

1. A point cloud encoding method, characterized in that, include: The encoding end obtains the node to be encoded in the point cloud sequence and m reference nodes that have been encoded in the point cloud sequence, where m is a positive integer; The encoding end determines the context of the child node to be encoded based on the placeholder information of the m reference nodes and the position of the child node to be encoded in the node to be encoded. The child node to be encoded is any child node obtained by dividing the node to be encoded based on the structure tree. The encoding end performs entropy encoding on the child node to be encoded according to the context to generate the target bitstream; The encoding end acquires the node to be encoded in the point cloud sequence and the m already encoded reference nodes in the point cloud sequence, including: The encoding end acquires the nodes to be encoded in the point cloud sequence; The encoding end determines the target coordinate system based on the coordinate values ​​of the node to be encoded; The encoding end divides the point cloud sequence into layers that belong to the same node as the node to be encoded, and determines the nodes that have the same coordinate value on the target coordinate axis as candidate reference nodes. The target coordinate axis is any coordinate axis in the target coordinate system, and the target coordinate axis is perpendicular to the target plane. The encoding end obtains m reference nodes from the candidate reference nodes.

2. The method according to claim 1, characterized in that, The encoding end acquires the node to be encoded in the point cloud sequence and the m already encoded reference nodes in the point cloud sequence, including: The encoding end acquires the nodes to be encoded in the point cloud sequence; The encoding end obtains the first k encoded nodes of the node to be encoded based on the node encoding order, where k is a positive integer; If at least one of the first k encoded nodes has target plane features, the encoding end acquires the m encoded reference nodes in the point cloud sequence.

3. The method according to claim 2, characterized in that, When at least one of the first k encoded nodes has target plane features, the encoding end acquires the m encoded reference nodes in the point cloud sequence, including: If the number of encoded nodes with target plane features in the first k encoded nodes is greater than or equal to a first threshold, the encoding end acquires the m encoded reference nodes in the point cloud sequence. Wherein, the first threshold is a positive integer less than k.

4. The method according to claim 1, characterized in that, The occupancy information of the m reference nodes encoded in the point cloud sequence includes the number of occupied first child nodes and the number of occupied second child nodes among the m reference nodes; the method further includes: The encoding end determines a first plane and a second plane of the node, wherein the first plane and the second plane are both parallel to the target plane, and the first plane and the second plane are stacked in the extension direction of the target coordinate axis. The first plane is closer to the origin of the coordinate system than the second plane. The encoding end obtains the number of occupied first child nodes and the number of occupied second child nodes among the m reference nodes, wherein the first child node is a child node located in the first plane and the second child node is a child node located in the second plane.

5. The method according to any one of claims 1-4, wherein, The encoding end determines the context of the child node to be encoded based on the placeholder information of the m reference nodes and the position of the child node to be encoded within the node to be encoded, including: The encoding end predicts the occupancy information of the node to be encoded based on the occupancy information of the m reference nodes, and determines the prediction result of the node to be encoded. The encoding end determines the context of the child node to be encoded based on the prediction result of the node to be encoded and the position of the child node to be encoded in the node to be encoded.

6. A point cloud decoding method, characterized in that, include: The decoding end obtains the node to be decoded in the point cloud sequence and the m reference nodes that have been decoded in the point cloud sequence, where m is a positive integer; The decoding end determines the context of the child node to be decoded based on the placeholder information of the m reference nodes and the position of the child node to be decoded in the node to be decoded. The child node to be decoded is any child node obtained by partitioning the node to be decoded based on the structure tree. The decoding end performs entropy decoding on the child node to be decoded according to the context to generate the target bitstream; The decoding end acquires the node to be decoded in the point cloud sequence and the m previously decoded reference nodes in the point cloud sequence, including: The decoding end acquires the nodes to be decoded in the point cloud sequence; The decoding end determines the target coordinate system based on the coordinate values ​​of the node to be decoded; The decoding end divides the point cloud sequence into layers that belong to the same node as the node to be decoded, and determines the nodes that have the same coordinate value on the target coordinate axis as candidate reference nodes. The target coordinate axis is any coordinate axis in the target coordinate system, and the target coordinate axis is perpendicular to the target plane. The decoding end obtains m reference nodes from the candidate reference nodes.

7. The method according to claim 6, characterized in that, The decoding end acquires the node to be decoded in the point cloud sequence and the m already decoded reference nodes in the point cloud sequence, including: The decoding end acquires the nodes to be decoded in the point cloud sequence; The decoding end obtains the first k decoded nodes of the node to be decoded based on the node decoding order, where k is a positive integer; If at least one of the first k decoded nodes has target plane features, the decoding end acquires the m decoded reference nodes in the point cloud sequence.

8. The method according to claim 7, characterized in that, When at least one of the first k decoded nodes has target plane features, the decoding end acquires the m decoded reference nodes in the point cloud sequence, including: If the number of decoded nodes with target plane features in the first k decoded nodes is greater than or equal to a first threshold, the decoding end acquires the m decoded reference nodes in the point cloud sequence. Wherein, the first threshold is a positive integer less than k.

9. The method according to claim 6, characterized in that, The occupancy information of the m reference nodes encoded in the point cloud sequence includes the number of occupied first child nodes and the number of occupied second child nodes among the m reference nodes; the method further includes: The decoding end determines a first plane and a second plane of the node, wherein the first plane and the second plane are both parallel to the target plane, and the first plane and the second plane are stacked along the extension direction of the target coordinate axis. The first plane is closer to the coordinate origin than the second plane, and the coordinate origin is the coordinate origin of the target coordinate system. The decoding end obtains the number of occupied first child nodes and the number of occupied second child nodes among the m reference nodes, wherein the first child node is a child node located in the first plane and the second child node is a child node located in the second plane.

10. The method according to any one of claims 6-9, characterized in that, The decoding end determines the context of the child node to be decoded based on the placeholder information of the m reference nodes and the position of the child node to be decoded within the node to be decoded, including: The decoding end predicts the occupancy information of the node to be decoded based on the occupancy information of the m reference nodes, and determines the prediction result of the node to be decoded. The decoding end determines the context of the child node to be decoded based on the prediction result and the position of the child node to be decoded within the node to be decoded.

11. An electronic device, characterized in that, It includes a processor and a memory, the memory storing a program or instructions that can run on the processor, the program or instructions being executed by the processor to implement the steps of the point cloud encoding method as described in any one of claims 1-5, or to implement the steps of the point cloud decoding method as described in any one of claims 6-10.

12. A readable storage medium, characterized in that, The readable storage medium stores a program or instructions that, when executed by a processor, implement the steps of the point cloud encoding method as described in any one of claims 1-5, or the steps of the point cloud decoding method as described in any one of claims 6-10.