Point cloud encoding method, point cloud decoding method, and related devices

By constructing a tree structure for the point cloud and determining neighbor information, the problem of low point cloud encoding efficiency is solved, and encoding efficiency is improved by selecting appropriate neighbor node information as context.

CN118175319BActive Publication Date: 2026-06-26VIVO MOBILE COMM CO LTD

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
VIVO MOBILE COMM CO LTD
Filing Date
2022-12-09
Publication Date
2026-06-26

AI Technical Summary

Technical Problem

In the existing point cloud encoding process, the encoding efficiency is low, especially in the entropy encoding of geometric information, where there is a lot of context information, which leads to low encoding efficiency.

Method used

By constructing a tree structure from the geometric information of the point cloud, the child nodes to be encoded are obtained, and the encoding is performed based on the neighbor information of the child node. The node information of the target associated child node or multiple neighbor child nodes is determined as the context, thereby reducing the amount of context information.

Benefits of technology

This improves the efficiency of point cloud encoding by selecting different neighbor node information as context based on the density of nodes, thereby reducing the amount of context information and thus improving encoding efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN118175319B_ABST
    Figure CN118175319B_ABST
Patent Text Reader

Abstract

The application discloses a point cloud encoding method, a point cloud decoding method and related equipment, and belongs to the technical field of computers. The point cloud encoding method of the application embodiment comprises the following steps: tree-shaped construction is performed on the geometric information of a point cloud to obtain a to-be-encoded subnode; first neighbor information corresponding to the to-be-encoded subnode is determined; the to-be-encoded subnode is encoded based on the first neighbor information to obtain an encoding result of the to-be-encoded subnode; wherein, in the case where it is determined that there is a target associated subnode corresponding to the to-be-encoded subnode, the first neighbor information is determined based on node information of the target associated subnode, and the target associated subnode is a neighbor subnode whose association degree with the to-be-encoded subnode meets a preset condition; or, in the case where it is determined that there is no target associated subnode, the first neighbor information is determined based on node information of a plurality of target neighbor subnodes other than the target associated subnode among the neighbor subnodes of the to-be-encoded subnode.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

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

[0002] Point clouds are a representation of three-dimensional objects or scenes, consisting of a set of randomly distributed discrete points in space that express the spatial structure and surface properties of the object or scene. To accurately reflect spatial information, a considerable number of discrete points are required. To reduce the bandwidth consumed during point cloud data storage and transmission, point cloud data needs to be encoded and compressed. Point cloud data typically consists of geometric information describing the location, such as three-dimensional coordinates (x, y, z), and attribute information for that location, such as color (R, G, B) or reflectivity. In the point cloud encoding and compression process, the encoding of geometric information and attribute information are performed separately.

[0003] Currently, in the process of entropy encoding of geometric information of point clouds, the context involved in encoding the child nodes to be encoded includes the prediction of the current point's sub-layer neighbors and the prediction of the current point's layer neighbors. The context information involved is large, resulting in low encoding efficiency. Summary of the Invention

[0004] This application provides a point cloud encoding method, a point cloud decoding method, and related equipment, which can solve the problem of low encoding efficiency.

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

[0006] The geometric information of the point cloud is used to construct a tree structure to obtain the child nodes to be encoded;

[0007] Determine the first neighbor information corresponding to the child node to be encoded;

[0008] The child node to be encoded is encoded based on the first neighbor information to obtain the encoding result of the child node to be encoded;

[0009] Wherein, if it is determined that there exists a target associated child node corresponding to the child node to be encoded, the first neighbor information is determined based on the node information of the target associated child node, wherein the target associated child node is a neighboring child node whose association with the child node to be encoded meets a preset condition; or,

[0010] If it is determined that the target associated child node does not exist, the first neighbor information is determined based on the node information of multiple target neighbor child nodes other than the target associated child node among the neighbor child nodes of the child node to be encoded.

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

[0012] Determine the second neighbor information corresponding to the child node to be decoded;

[0013] The child node to be decoded is decoded based on the second neighbor information to obtain the decoding result of the child node to be decoded;

[0014] Wherein, if it is determined that there exists a target associated child node corresponding to the child node to be decoded, the second neighbor information is determined based on the node information of the target associated child node, wherein the target associated child node is a neighboring child node whose association with the child node to be decoded meets a preset condition; or,

[0015] If it is determined that the target associated child node does not exist, the second neighbor information is determined based on the node information of multiple target neighbor child nodes other than the target associated child node among the neighbor child nodes of the child node to be decoded.

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

[0017] The acquisition module is used to construct a tree structure from the geometric information of the point cloud and obtain the child nodes to be encoded.

[0018] The determination module is used to determine the first neighbor information corresponding to the child node to be encoded;

[0019] The encoding module is used to encode the child node to be encoded based on the first neighbor information to obtain the encoding result of the child node to be encoded.

[0020] Wherein, if it is determined that there exists a target associated child node corresponding to the child node to be encoded, the first neighbor information is determined based on the node information of the target associated child node, wherein the target associated child node is a neighboring child node whose association with the child node to be encoded meets a preset condition; or,

[0021] If it is determined that the target associated child node does not exist, the first neighbor information is determined based on the node information of multiple target neighbor child nodes other than the target associated child node among the neighbor child nodes of the child node to be encoded.

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

[0023] The determination module is used to determine the second neighbor information corresponding to the child node to be decoded;

[0024] The decoding module is used to decode the child node to be decoded based on the second neighbor information to obtain the decoding result of the child node to be decoded;

[0025] Wherein, if it is determined that there exists a target associated child node corresponding to the child node to be decoded, the second neighbor information is determined based on the node information of the target associated child node, wherein the target associated child node is a neighboring child node whose association with the child node to be decoded meets a preset condition; or,

[0026] If it is determined that the target associated child node does not exist, the second neighbor information is determined based on the node information of multiple target neighbor child nodes other than the target associated child node among the neighbor child nodes of the child node to be decoded.

[0027] Fifthly, a communication device is provided, the terminal including a processor, a memory, and a program or instructions stored in the memory and executable on the processor, wherein when the program or instructions are executed by the processor, they implement the steps of the method described in the first aspect; or, when the program or instructions are executed by the processor, they implement the steps of the method described in the second aspect.

[0028] Sixthly, a communication device is provided, including a processor and a communication interface, wherein the processor is used for:

[0029] The geometric information of the point cloud is used to construct a tree structure to obtain the child nodes to be encoded;

[0030] Determine the first neighbor information corresponding to the child node to be encoded;

[0031] The child node to be encoded is encoded based on the first neighbor information to obtain the encoding result of the child node to be encoded;

[0032] Wherein, if it is determined that there exists a target associated child node corresponding to the child node to be encoded, the first neighbor information is determined based on the node information of the target associated child node, wherein the target associated child node is a neighboring child node whose association with the child node to be encoded meets a preset condition; or,

[0033] If it is determined that the target associated child node does not exist, the first neighbor information is determined based on the node information of multiple target neighbor child nodes other than the target associated child node among the neighbor child nodes of the child node to be encoded.

[0034] In a seventh aspect, a communication device is provided, including a processor and a communication interface, wherein the processor is used for:

[0035] Determine the second neighbor information corresponding to the child node to be decoded;

[0036] The child node to be decoded is decoded based on the second neighbor information to obtain the decoding result of the child node to be decoded;

[0037] Wherein, if it is determined that there exists a target associated child node corresponding to the child node to be decoded, the second neighbor information is determined based on the node information of the target associated child node, wherein the target associated child node is a neighboring child node whose association with the child node to be decoded meets a preset condition; or,

[0038] If it is determined that the target associated child node does not exist, the second neighbor information is determined based on the node information of multiple target neighbor child nodes other than the target associated child node among the neighbor child nodes of the child node to be decoded.

[0039] Eighthly, 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 method as described in the first aspect, or, when executed by a processor, implement the steps of the method as described in the second aspect.

[0040] In a ninth aspect, a chip is provided, the chip including a processor and a communication interface coupled to the processor, the processor being configured to run a program or instructions to implement the steps of the method as described in the first aspect, or to implement the steps of the method as described in the second aspect.

[0041] In a tenth aspect, a computer program / program product is provided, the computer program / program product being stored in a non-volatile storage medium, the program / program product being executed by at least one processor to implement the steps of the method as described in the first aspect, or to implement the steps of the method as described in the second aspect.

[0042] In this embodiment, the geometric information of the point cloud is used to construct a tree structure to obtain child nodes to be encoded; first neighbor information corresponding to the child node to be encoded is determined; the child node to be encoded is encoded based on the first neighbor information to obtain the encoding result of the child node to be encoded; wherein, if it is determined that there is a target associated child node corresponding to the child node to be encoded, the first neighbor information is determined based on the node information of the target associated child node, and the target associated child node is a neighbor child node whose association degree with the child node to be encoded meets a preset condition; if it is determined that there is no target associated child node, the first neighbor information is determined based on the node information of multiple target neighbor child nodes other than the target associated child node among the neighbor child nodes of the child node to be encoded. In this way, by determining whether there is a target associated child node corresponding to the child node to be encoded to determine the first neighbor information, different neighbor node information can be selected as context for encoding the child node to be encoded based on the node density, which can reduce the amount of context information and thus improve encoding efficiency. Attached Figure Description

[0043] Figure 1 This is a schematic diagram of a point cloud AVS encoder framework;

[0044] Figure 2 This is a schematic diagram of a point cloud AVS decoder framework;

[0045] Figure 3 It is a schematic diagram of reference nodes selected for each child node;

[0046] Figure 4 This is a schematic diagram of four sets of reference neighbor nodes for the current node;

[0047] Figure 5 This is a diagram showing how each child block corresponds to one of its six adjacent parent blocks;

[0048] Figure 6 This is a schematic diagram of the 18 surrounding adjacent blocks and their Morton sequence numbers used by the current block to be encoded;

[0049] Figure 7 This is one of the flowcharts illustrating a point cloud encoding method provided in an embodiment of this application;

[0050] Figure 8 This is a second schematic flowchart of a point cloud encoding method provided in an embodiment of this application;

[0051] Figure 9 This is a schematic diagram of a reference node for selecting each child node, provided in an embodiment of this application;

[0052] Figure 10 This is a schematic diagram of neighbors at the same position in a child node layer provided in an embodiment of this application;

[0053] Figure 11 This is one of the flowcharts illustrating a point cloud decoding method provided in an embodiment of this application;

[0054] Figure 12 This is a schematic diagram of an encoding test result provided in an embodiment of this application;

[0055] Figure 13 This is a second schematic flowchart of a point cloud decoding method provided in an embodiment of this application;

[0056] Figure 14 This is a schematic diagram of the structure of a point cloud encoding device provided in an embodiment of this application;

[0057] Figure 15 This is a schematic diagram of the structure of a point cloud decoding device provided in an embodiment of this application;

[0058] Figure 16 This is a structural diagram of a communication device provided in an embodiment of this application;

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

[0060] 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.

[0061] 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.

[0062] The encoding / decoding end corresponding to the encoding / decoding method in this application embodiment can be a terminal, which can also be called a terminal device or user equipment (UE). The terminal can be a mobile phone, tablet computer, laptop computer, personal digital assistant (PDA), handheld computer, netbook, ultra-mobile personal computer (UMPC), mobile internet device (MID), augmented reality (AR) / virtual reality (VR) device, robot, wearable device or vehicle-mounted device (VUE), pedestrian terminal (PUE), etc. Wearable devices include smartwatches, bracelets, headphones, glasses, etc. It should be noted that the specific type of terminal is not limited in this application embodiment.

[0063] For ease of understanding, the following describes some aspects of the embodiments of this application:

[0064] (1) Point cloud AVS encoding and decoding framework

[0065] 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 geometric information is transformed to ensure that the entire point cloud is contained within a bounding box. Then, quantization is performed; this step mainly serves a scaling function. Due to quantization rounding, some points have identical geometric information, and parameters determine whether to remove duplicate points. Quantization and duplicate point removal are part of the preprocessing. Next, the bounding box is partitioned (octree / quadtree / binary tree) in breadth-first traversal order, and the placeholder code for each node is encoded. In the octree-based geometric code framework, the bounding box is sequentially partitioned into sub-cubes. Non-empty sub-cubes (containing points from the point cloud) are further partitioned until the resulting leaf nodes are 1x1x1 unit cubes. The number of points contained in each leaf node is then encoded, finally completing the geometric octree encoding and generating a binary code stream. In the octree-based geometric decoding process, the decoding end follows a breadth-first traversal order, continuously parsing the placeholder code of each node and dividing the nodes sequentially until a 1x1x1 unit cube is obtained. The division stops when the node is divided, and the number of points contained in each leaf node is parsed, ultimately restoring the geometrically reconstructed point cloud information.

[0066] After geometric encoding is completed, the geometric information is reconstructed, and the reconstructed geometric information is used to encode attribute information. Currently, attribute encoding mainly targets color and reflectivity information. First, it is determined whether a color space conversion is needed. If a color space conversion is needed, the color information is converted from the RGB color space to the YUV color space. Then, in the case of geometrically lossy encoding, attribute interpolation, i.e., recoloring, is required for the reconstructed point cloud. New attribute values ​​are calculated for each point in the reconstructed point cloud to minimize the attribute error between the reconstructed point cloud and the original point cloud. Attribute information encoding is divided into two branches: attribute prediction and attribute transformation. The attribute prediction process is as follows: first, the point cloud is reordered, and then differential prediction is performed. There are two methods for reordering: Morton reordering and Hilbert reordering. The current AVS encoding framework uses Hilbert codes to reorder the point cloud. Then, the sorted point cloud is used for attribute prediction using a difference method. If the geometric information of the current point to be encoded is the same as that of the previous encoded point, it is a duplicate point. The reconstructed attribute value of the duplicate point is used as the attribute prediction value of the current point to be encoded. Otherwise, the m points in the first Hilbert order of the current point to be encoded are selected as neighbor candidates. Then, the Manhattan distance between each of these points and the geometric information of the current point to be encoded is calculated. The n closest points are determined as the neighbors of the current point to be encoded. Using the reciprocal of the distance as the weight, the weighted average of the attributes of all neighbors is calculated as the attribute prediction value of the current point to be encoded. Then, the prediction residual is calculated using the attribute prediction value and the attribute value of the current point to be encoded. 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. Figure 1 and Figure 2 The diagram shown is an AVS codec framework diagram. This technology involves the geometric entropy coding part.

[0067] (2) Entropy coding

[0068] (2.1): The context involved in this entropy coding technique includes the prediction of the sub-layer neighbors of the current point and the prediction of the neighbors of the current point layer.

[0069] 1) Prediction of the sub-neighbors of the current point

[0070] In the breadth-first traversal partitioning of an octree, the neighbor information obtained when encoding the child node of the current node includes neighbor child nodes in the left, front, and bottom directions. The context model design of the child node layer is as follows: For the child node layer to be encoded, find the occupancy of the three coplanar, three collinear, and one concurrent nodes in the left, front, and bottom directions of the same layer as the child node to be encoded, as well as the nodes located two node side lengths away from the current child node in the negative direction of the dimension with the shortest node side length. Taking the shortest node side length in the X dimension as an example, the reference nodes selected for each child node are as follows: Figure 3 As shown in the diagram. The dashed-lined nodes represent the current node, the gray nodes represent the current child nodes to be encoded, and the solid-lined nodes represent the reference nodes selected by each child node.

[0071] The occupancy of 7 nodes is considered in detail, including 3 coplanar nodes, 3 collinear nodes, and nodes located two node side lengths away from the current child node in the negative direction along the shortest node side length. There are a total of 2 possible occupancy scenarios for these 7 nodes. 7 = 128 possible cases. If not all of them are non-occupied, then there are a total of 2 7 -1 = 127 possibilities, each with one context. If all 7 nodes are unoccupied, then consider the occupancy of shared neighbor nodes. A shared neighbor has two possibilities: occupied or unoccupied. A separate context is allocated for the case where the shared neighbor node is occupied. If the shared neighbor is also unoccupied, then consider the occupancy of the current node-level neighbors, which will be discussed later. Therefore, there are a total of 127 + 2 - 1 = 128 contexts for the child node-level neighbors to be encoded.

[0072] 2) Neighbor prediction at the current node level

[0073] If none of the eight reference nodes at the same level of the child node to be encoded are occupied, then consider the following: Figure 4 The diagram shows the occupancy of the four groups of neighbors at the current node level. The nodes within the dashed boxes represent the current node, and the nodes within the solid borders represent neighboring nodes.

[0074] For the current node level, determine the context by following these steps:

[0075] a) First, consider the top-right and bottom-right three coplanar neighbors of the current node. There are two possible positions for these three coplanar neighbors. 3 =8 possibilities. Assign one context to each case where not all are unoccupied. Considering the position of the child node to be encoded within the current node, this group of neighboring nodes provides a total of (8-1)×8 = 56 contexts. If the three coplanar neighbors to the upper right of the current node are not occupied, then continue considering the remaining three groups of neighbors at the current node level.

[0076] b) Consider the distance between the most recently occupied node and the current node.

[0077] The specific distribution of neighboring nodes and their corresponding distances are shown in Table 1.

[0078] Table 1. Correspondence between current node layer occupancy and distance.

[0079]

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

[0081] At this point, the technology context model has allocated a total of 128 + 56 + 24 = 208 contexts.

[0082] (2.2) This entropy coding technique uses a two-layer context reference relationship configuration.

[0083] As shown in equation (1), the first layer is the occupancy status of the coded adjacent blocks of the current child block to be encoded (i.e., ctxIdxParent), and the second layer is the occupancy status of the adjacent coded blocks at the same depth as the current child block to be encoded (i.e., ctxIdxChild).

[0084] First, for each sub-block to be encoded, the ctxIdxChild of the second layer is shown in equation (2). This indicates the occupancy status of the three encoded sub-blocks that are 1 unit away from the current sub-block l2.

[0085] idx=LUT[ctxIdxParent][ctxIdxChild] (1)

[0086]

[0087]

[0088] Secondly, for the first layer's ctxIdxParent, for the relative positions of different sub-blocks, the adjacent parent blocks that are coplanar and collinear with it are found by looking up a table, and ctxIdxParent is calculated according to equation (3) based on their occupancy. For example Figure 5 As shown, each subgraph displays the relative positions of the 6 adjacent parent blocks found by the i-th sub-block, including 3 coplanar parent blocks (P... i,0 P i,1 P i,2 ) and 3 collinear parent blocks (P i,3 P i,4 P i,5 The positional relationship between each child block and its adjacent parent block is obtained using Table 1, and the numbers in Table 2 correspond to... Figure 6The Morton numbering in the code takes into account the different sub-block positions and geometric central rotational symmetry. Figure 6 It can be seen that, with the current block as the center, this method has a larger receptive field and can utilize up to 18 neighboring parent blocks that have already been encoded. The method used in Equation (3) is the permutation and combination of the occupancy of the three coplanar parent blocks and the sum of the number of occupancy of the three collinear parent blocks.

[0089] Therefore, the maximum number of contexts used in this technical method is 2. 3 ×2 5 =256.

[0090] Table 2. Relationship between child block i and its adjacent parent block j. The numbers in the table correspond to... Figure 6 The Morton sequence number in the code.

[0091] <![CDATA[P i,j ]]> j=0 j=1 j=2 j=3 j=4 j=5 i=0 4 10 12 1 3 9 i=1 4 10 14 1 5 11 i=2 4 16 12 7 3 15 i=3 4 16 14 7 5 17 i=4 22 10 12 19 21 9 i=5 22 10 14 19 23 11 i=6 22 16 12 25 21 15 i=7 22 16 14 25 23 17

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

[0093] See Figure 7 , Figure 7 This is a flowchart of a mesh coding method provided in an embodiment of this application, which can be applied to coding end devices, such as... Figure 7 As shown, the point cloud encoding method includes the following steps:

[0094] Step 101: Construct a tree structure from the geometric information of the point cloud to obtain the child nodes to be encoded.

[0095] The tree structure can be constructed as a binary tree, a quadtree, or an octree, etc.

[0096] In one implementation, the geometric information of the point cloud can be transformed to ensure that the entire point cloud is contained within a bounding box. Quantization is then performed, primarily for scaling. Due to the rounding effect of quantization, some points may have identical geometric information. Whether to remove duplicate points is determined based on parameters. This process of quantization and removing duplicate points is considered preprocessing. After preprocessing, the bounding box can be partitioned (octree / quadtree / binary tree) in breadth-first traversal order to obtain the child nodes to be encoded. For example, in an octree-based geometric coding framework, the bounding box is sequentially partitioned into sub-cubes. Non-empty sub-cubes (containing points from the point cloud) are further partitioned until the resulting leaf nodes are 1x1x1 unit cubes, at which point the partitioning stops.

[0097] Step 102: Determine the first neighbor information corresponding to the child node to be encoded.

[0098] The first neighbor information can be determined based on the node information of the target associated child node, wherein the target associated child node is a neighboring child node whose association with the child node to be encoded meets a preset condition; or, the first neighbor information can be determined based on the node information of multiple target neighboring child nodes other than the target associated child node among the neighboring child nodes of the child node to be encoded.

[0099] Step 103: Encode the child node to be encoded based on the first neighbor information to obtain the encoding result of the child node to be encoded;

[0100] Wherein, if it is determined that a target associated child node exists corresponding to the child node to be encoded, the first neighbor information is determined based on the node information of the target associated child node, wherein the target associated child node is a neighboring child node whose association with the child node to be encoded meets a preset condition; and / or,

[0101] If it is determined that the target associated child node does not exist, the first neighbor information is determined based on the node information of multiple target neighbor child nodes other than the target associated child node among the neighbor child nodes of the child node to be encoded.

[0102] The step of encoding the child node to be encoded based on the first neighbor information can be achieved by using the first neighbor information as the context of the child node to be encoded. For example, the child node to be encoded can be encoded using the CABAC encoding algorithm with the first neighbor information as the context.

[0103] Additionally, node information can include information indicating whether a node is occupied. For example, if a node is occupied, the node information can be 1; if a node is not occupied, the node information can be 0.

[0104] In addition, the target associated child node can be a strongly related neighbor child node of the child node to be encoded.

[0105] Furthermore, the target associated child node can be a coplanar child node corresponding to the child node to be encoded; or the target associated child node can include coplanar child nodes and edge-sharing child nodes corresponding to the child node to be encoded; or the target associated child node can include coplanar child nodes, edge-sharing child nodes, and vertex-sharing child nodes corresponding to the child node to be encoded; etc., this embodiment does not limit this. The degree of association between the target associated child node and the child node to be encoded varies depending on the preset conditions.

[0106] Taking the target associated child node as the coplanar child node corresponding to the child node to be encoded as an example, the target neighbor child node may include the edge-sharing child node corresponding to the child node to be encoded, the point-sharing child node corresponding to the child node to be encoded, the child node at the two node edge lengths in the negative direction of the dimension where the shortest node edge length of the child node to be encoded is located, the child node selected from the coplanar parent node corresponding to the parent node of the child node to be encoded, and the child node selected from the collinear parent node corresponding to the parent node of the child node to be encoded, etc.

[0107] Taking the target associated child node as the coplanar child node and the co-edge child node corresponding to the child node to be encoded as an example, the target neighbor child node may include the co-point child node corresponding to the child node to be encoded, the child node at the two node side lengths in the negative direction of the dimension where the shortest node side length of the child node to be encoded is located, the child node selected from the coplanar parent node corresponding to the parent node of the child node to be encoded, and the child node selected from the collinear parent node corresponding to the parent node of the child node to be encoded, etc.

[0108] Taking the target associated child node as the coplanar child node, edge-sharing child node, and point-sharing child node corresponding to the child node to be encoded as an example, the target neighbor child node may include the child node at the two node edge lengths in the negative direction of the dimension where the shortest node edge length of the child node to be encoded is located, the child node selected from the coplanar parent node corresponding to the parent node of the child node to be encoded, and the child node selected from the collinear parent node corresponding to the parent node of the child node to be encoded, etc.

[0109] Furthermore, the existence of a target associated child node corresponding to the child node to be encoded can mean that the target associated child node is occupied; the absence of a target associated child node can mean that the target associated child node is not occupied. For example, if the node information of the target associated child node is 1, then a target associated child node exists; if the node information of the target associated child node is 0, then a target associated child node does not exist. The number of target associated child nodes can be multiple. The existence of a target associated child node corresponding to the child node to be encoded can mean that at least one target associated child node is occupied; the absence of a target associated child node can mean that all target associated child nodes are not occupied. Taking the target associated child node as a coplanar child node corresponding to the child node to be encoded as an example, the existence of a target associated child node corresponding to the child node to be encoded can mean that all coplanar child nodes corresponding to the child node to be encoded are not occupied; the absence of a target associated child node can mean that all coplanar child nodes corresponding to the child node to be encoded are not occupied.

[0110] In one implementation, the target associated child node is a coplanar child node corresponding to the child node to be encoded. If it is determined that a coplanar child node exists corresponding to the child node to be encoded, the first neighbor information can be determined based on the node information of the coplanar child node corresponding to the child node to be encoded. Further, the first neighbor information can be determined based on the node information of the coplanar child node corresponding to the child node to be encoded and the node information of the coplanar parent node corresponding to the child node to be encoded. For example, the first neighbor information may include the node information of the coplanar child node corresponding to the child node to be encoded and the node information of the coplanar parent node corresponding to the child node to be encoded.

[0111] Furthermore, the coplanar child nodes corresponding to the child node to be encoded can be any coplanar child nodes that can be obtained under the breadth-first traversal partitioning method of the tree. Taking octree construction as an example, the coplanar child nodes corresponding to the child node to be encoded can be the coplanar neighbor child nodes in the left, front, and bottom directions that can be obtained under the breadth-first traversal partitioning method of the octree. Under the breadth-first traversal partitioning method of the octree, the number of coplanar child nodes that can be obtained for the child node to be encoded is three.

[0112] Furthermore, the common-edge child nodes corresponding to the child node to be encoded can be any common-edge child nodes that can be obtained under the breadth-first traversal of the tree. Taking octree construction as an example, the common-edge child nodes corresponding to the child node to be encoded can be the common-edge child nodes in the left, front, and bottom directions that can be obtained under the breadth-first traversal of the octree. Under the breadth-first traversal of the octree, the number of common-edge child nodes that can be obtained is three.

[0113] Additionally, the common child nodes corresponding to the child node to be encoded can be any common child node obtainable under the breadth-first traversal of the tree. Taking octree construction as an example, the common child nodes corresponding to the child node to be encoded can be the common child nodes in the left-front-down direction obtainable under the breadth-first traversal of the octree. Under the breadth-first traversal of the octree, the number of common child nodes obtainable by the child node to be encoded is one.

[0114] It should be noted that if there is a target associated child node corresponding to the child node to be encoded, the child node to be encoded can be considered to be in a relatively dense node position; if there is no target associated child node corresponding to the child node to be encoded, the child node to be encoded can be considered to be in a relatively sparse node position. Therefore, different neighbor node information can be selected as context for encoding the child node to be encoded based on the node density.

[0115] In this embodiment, the geometric information of the point cloud is used to construct a tree structure to obtain child nodes to be encoded; first neighbor information corresponding to the child node to be encoded is determined; the child node to be encoded is encoded based on the first neighbor information to obtain the encoding result of the child node to be encoded; wherein, if it is determined that there is a target associated child node corresponding to the child node to be encoded, the first neighbor information is determined based on the node information of the target associated child node, and the target associated child node is a neighbor child node whose association degree with the child node to be encoded meets a preset condition; if it is determined that there is no target associated child node, the first neighbor information is determined based on the node information of multiple target neighbor child nodes other than the target associated child node among the neighbor child nodes of the child node to be encoded. In this way, by determining whether there is a target associated child node corresponding to the child node to be encoded to determine the first neighbor information, different neighbor node information can be selected as context for encoding the child node to be encoded based on the node density, which can reduce the amount of context information and thus improve encoding efficiency.

[0116] Optionally, determining the first neighbor information corresponding to the child node to be encoded includes:

[0117] If it is determined that the target associated child node does not exist:

[0118] The target neighbor state corresponding to the child node to be encoded is determined based on the node information of the multiple target neighbor child nodes. The target neighbor state is used to characterize the occupancy status of the multiple target neighbor child nodes.

[0119] The state value of the target neighbor state is determined based on the encoding result of the encoded child node, and the neighbor state corresponding to the encoded child node is the target neighbor state;

[0120] The first neighbor information corresponding to the child node to be encoded is determined based on the state value of the target neighbor state.

[0121] The occupancy status of multiple target neighbor child nodes can refer to whether or not multiple target neighbor child nodes are occupied. A target neighbor state can be one of multiple neighbor states. Taking 10 target neighbor child nodes as an example, with each target neighbor child node represented by a single binary digit, the total number of neighbor states M is 2T. 10 For example, if all 10 target neighbor child nodes are occupied, the neighbor state is all 1s; if none of the 10 target neighbor child nodes are occupied, the neighbor state is all 0s.

[0122] Additionally, the state value of the target neighbor state can be the number of encoded results with a preset value among the encoding results of multiple encoded child nodes. For example, this preset value can be 1. The encoding results of encoded child nodes can include 0 or 1. The state value of the target neighbor state can be the number of encoded results with a value of 1 among the encoding results of multiple most recent encoded child nodes. The state value of the target neighbor state can be the number of encoded results with a value of 1 among the encoding results of a preset number of most recent encoded child nodes. The preset number can be 8, 9, 10, etc., and this embodiment does not limit this. For example, the state value of the target neighbor state can be the number of encoded results with a value of 1 among the encoding results of the 8 most recent encoded child nodes.

[0123] As a specific embodiment, when it is determined that the target associated child node does not exist, the consideration of the first neighbor information is based on the neighbor information already encoded in the child node layer. The target neighbor state can be one of multiple neighbor states, such as... Figure 8 As shown, the neighbor state M can be determined by the neighbor node information 1, and the neighbor node information 1 is determined by state M1 and state M2:

[0124] (1) Select the occupancy of nodes that share 3 edges, 1 vertex, and are located two node side lengths away from the current child node in the negative direction along the dimension with the shortest node side length. There are a total of 5 child node level neighbors, such as... Figure 9 As shown, the node in the black solid box is the current node, the black node is the child node to be encoded, and the nodes around the black node are the child node's layer neighbors.

[0125] The state M1 is formed by the occupancy of the above 5 child nodes, and its calculation formula is as follows:

[0126]

[0127] Where j represents the index of any selected neighbor child node among these 5 neighbor child nodes, s j This represents the placeholder code for the neighbor of the child node with index j. The value of M1 ranges from 0 to 32.

[0128] (2) Among the three coplanar and two collinear neighbors of the current node (the parent node of the current child node to be encoded), select one child node neighbor from each of the three coplanar neighbors. These five child node neighbors occupy the information composition state M2. The position of the selected child node neighbor relative to its parent node is the same as the position of the child node to be encoded relative to the current node. That is, if the index value of the child node to be encoded relative to the current node is i, the index values ​​of the three child node neighbors relative to their parent node are also i. Taking child node 7 as an example, the three coplanar child node neighbors selected are as follows: Figure 10 As shown.

[0129] State M2 is formed by the occupancy of the above 5 child nodes, and its calculation formula is as follows:

[0130] M2 = s x +s y ×2+s z ×4+s xy ×8+s xz ×16

[0131] Where s x s y s z These represent the placeholder codes for the neighboring child nodes located along the x, y, and z axes of the current node, respectively; s xy With s xz Placeholder code for the neighbor child node selected for the two collinear neighbors of the current node.

[0132] Combining state M1 and state M2, the formula for calculating the neighbor state M is:

[0133] M = M1 × 32 + M2

[0134] The value of M ranges from 0 to 1024, meaning that the value of neighbor node information 1 ranges from 0 to 1024, with a total of 1024 neighbor states.

[0135] In this implementation, when it is determined that the target associated child node does not exist: the target neighbor state corresponding to the child node to be encoded is determined based on the node information of the plurality of target neighbor child nodes, and the target neighbor state is used to characterize the occupancy status of the plurality of target neighbor child nodes; the state value of the target neighbor state is determined based on the encoding result of the encoded child node, and the neighbor state corresponding to the encoded child node is the target neighbor state; the first neighbor information corresponding to the child node to be encoded is determined based on the state value of the target neighbor state. In this way, the first neighbor information corresponding to the child node to be encoded can be determined through the encoding result of the encoded child node in the same neighbor state, and this first neighbor information can be used as context for encoding the child node to be encoded, which can reduce the amount of context information and thus improve encoding efficiency.

[0136] Optionally, the target neighbor state is one of multiple neighbor states, each neighbor state corresponds to a sliding window, the sliding window corresponding to the target neighbor state stores the encoding results of multiple encoded child nodes, and the state value of the target neighbor state is determined based on the encoding results in the sliding window corresponding to the target neighbor state;

[0137] The method further includes:

[0138] The sliding window corresponding to the state of the target neighbor is updated based on the encoding result of the child node to be encoded.

[0139] The sliding window corresponding to the target neighbor state can store the encoding results of multiple most recently encoded child nodes. For example, the sliding window can store the encoding results of a preset number of most recently encoded child nodes.

[0140] In addition, after the child node to be encoded is encoded, the sliding window corresponding to the target neighbor state can be updated. The encoding result of the child node to be encoded is stored in the sliding window corresponding to the target neighbor state, and the encoding result of the encoded child node whose encoding time is furthest from the current time is removed from the sliding window.

[0141] As a specific implementation, each neighbor state corresponds to a sliding window that stores the values ​​of the K most recently encoded symbols for that neighbor state. That is, each neighbor state M has a first-in-first-out sliding window B(M) of length Kbit, and the value of its k-th bit is b. k (M), K, and k are positive integers. If the value of k ranges from 1 to K, the k-th bit represents the value of the (K-k+1)-th most recently encoded symbol in that state at the encoding end, and the k-th bit represents the value of the (K-k+1)-th most recently decoded symbol in that state at the decoding end. The sliding window update operation is as follows: after each encoding or decoding of symbol S, the sliding window B of K bits is shifted right by 1 bit, and the value of symbol S is assigned to the K-th bit, as follows:

[0142] B(M)=(B(M)>>1)|(S<<K-1).

[0143] In addition, such as Figure 8 As shown, state M can be transformed into state N through a sliding window, realizing state transition based on the sliding window. The number of bits with a value of 1 in the sliding window is used as the output state N:

[0144]

[0145] The value of state N ranges from 0 to K. For example, if K is 8, then N has a total of 9 state values.

[0146] In this embodiment, the sliding window corresponding to the target neighbor state stores the encoding results of multiple encoded child nodes. The state value of the target neighbor state is determined based on the encoding results in the sliding window corresponding to the target neighbor state. The sliding window corresponding to the target neighbor state is updated based on the encoding results of the child nodes to be encoded. In this way, the state value of the target neighbor state can be updated by updating the sliding window corresponding to the target neighbor state.

[0147] Optionally, determining the first neighbor information corresponding to the child node to be encoded based on the state value of the target neighbor state includes:

[0148] If the target neighbor state is not a preset neighbor state, the first neighbor information corresponding to the child node to be encoded is determined based on the state value of the target neighbor state;

[0149] The method further includes:

[0150] When the target neighbor state is the preset neighbor state, the first neighbor information corresponding to the child node to be encoded is determined based on the coplanar parent node corresponding to the child node to be encoded.

[0151] The preset neighbor state can represent the occupancy status of multiple target neighbor child nodes, indicating a neighbor state where none of the target neighbor child nodes occupy a position. The preset neighbor state can also be a neighbor state where the neighbor state M is 0.

[0152] Furthermore, when the target neighbor state is not a preset neighbor state, determining the first neighbor information corresponding to the child node to be encoded based on the state value of the target neighbor state can be achieved by including the state value of the target neighbor state in the first neighbor information corresponding to the child node to be encoded. Further, when the target neighbor state is not a preset neighbor state, the first neighbor information corresponding to the child node to be encoded can be determined based on the state value of the target neighbor state and the coplanar parent node corresponding to the child node to be encoded.

[0153] Furthermore, when the target neighbor state is the preset neighbor state, determining the first neighbor information corresponding to the child node to be encoded based on the coplanar parent node corresponding to the child node to be encoded can be achieved by the first neighbor information corresponding to the child node to be encoded including the node information of the coplanar parent node corresponding to the child node to be encoded when the target neighbor state is the preset neighbor state. For example, if there are 3 coplanar parent nodes, and the number of contexts for the node information of the coplanar parent nodes is 8, and each child node of the coplanar parent node is assigned one context, with each coplanar parent node involving 8 contexts, then the number of contexts for the first neighbor information is 8 * 8 = 64.

[0154] In this embodiment, when the target neighbor state is not a preset neighbor state, the first neighbor information corresponding to the child node to be encoded is determined based on the state value of the target neighbor state; when the target neighbor state is the preset neighbor state, the first neighbor information corresponding to the child node to be encoded is determined based on the coplanar parent node corresponding to the child node to be encoded. This allows for the determination of the first neighbor information by considering the coplanar parent node corresponding to the child node to be encoded when the target neighbor state indicates that the multiple target neighbor child nodes are not occupied. Furthermore, it allows for the selection of different neighbor node information as context for encoding the child node to be encoded, taking into account node density, thereby improving encoding efficiency.

[0155] Optionally, when the target neighbor state is not a preset neighbor state, determining the first neighbor information corresponding to the child node to be encoded based on the state value of the target neighbor state includes:

[0156] If the target neighbor state is not a preset neighbor state, the first neighbor information corresponding to the child node to be encoded is determined based on the state value of the target neighbor state and the coplanar parent node corresponding to the child node to be encoded.

[0157] Where the target neighbor state is not a preset neighbor state, the first neighbor information corresponding to the child node to be encoded may include the state value of the target neighbor state and the node information of the coplanar parent node corresponding to the child node to be encoded. For example, if state N has 9 state values, the number of contexts for each state value is 9, the number of coplanar parent nodes is 3, and the number of contexts for each coplanar parent node's node information is 8, then the number of contexts for the first neighbor information is 8 * 9 = 72.

[0158] In this embodiment, when the target neighbor state is not a preset neighbor state, the first neighbor information corresponding to the child node to be encoded is determined based on the state value of the target neighbor state and the coplanar parent node corresponding to the child node to be encoded. In this way, the first neighbor information corresponding to the child node to be encoded can be determined by the encoding results of the encoded child nodes in the same neighbor state and the coplanar parent node corresponding to the child node to be encoded. It is possible to use neighbor information with strong correlation as context for encoding, which can improve encoding efficiency.

[0159] Optionally, when the target associated child node is a coplanar child node corresponding to the child node to be encoded, the target neighbor child node includes at least one of the following:

[0160] First neighbor child node;

[0161] Second neighbor child node;

[0162] The first neighbor child node includes at least one of the following:

[0163] The common edge child nodes corresponding to the child nodes to be encoded;

[0164] The common sub-nodes corresponding to the sub-nodes to be encoded;

[0165] The child nodes located at the two node side lengths in the negative direction of the dimension where the shortest node side length of the child node to be encoded is located;

[0166] The second neighbor child node includes at least one of the following:

[0167] The child node selected from the coplanar parent nodes corresponding to the parent node of the child node to be encoded;

[0168] The child node selected from the collinear parent nodes corresponding to the parent node of the child node to be encoded;

[0169] The selected child node is positioned in the same place as the child node to be encoded in its parent node.

[0170] Furthermore, the child node selected from the coplanar parent nodes corresponding to the parent node of the child node to be encoded can satisfy the following condition: the position of the selected child node in the coplanar parent node is the same as the position of the child node to be encoded in the parent node of the child node to be encoded. For example, if the index value of the child node to be encoded in the parent node of the child node to be encoded is i, then the index value of the selected child node in its parent node is also i.

[0171] Furthermore, the child node selected from the collinear parent nodes corresponding to the parent node of the child node to be encoded can satisfy the following condition: the position of the selected child node in the collinear parent node is the same as the position of the child node to be encoded in the parent node of the child node to be encoded. For example, if the index value of the child node to be encoded in the parent node of the child node to be encoded is i, then the index value of the selected child node in its parent node is also i.

[0172] In this implementation, the first neighbor information is determined based on the node information of the target neighbor child node, which can use the neighbor information with strong relevance as the context for encoding, thereby improving encoding efficiency.

[0173] As a specific implementation, the process of determining the first neighbor information corresponding to the child node to be encoded is as follows:

[0174] (1): First, check if the three coplanar child nodes of the current child node to be encoded exist. If they exist, the context for encoding the current child node is as follows:

[0175] Consider the product of three coplanar nodes in the parent node layer to form 8 contexts. The three coplanar nodes in the parent node layer are the three parent layer neighbor nodes selected by the parent node layer that are coplanar with the current child node to be encoded.

[0176] Consider three coplanar child nodes in the child node layer forming 7 contexts (excluding cases where none are occupied). The three coplanar child nodes in the child node layer are the three child layer neighbor nodes that are coplanar with the child node to be encoded.

[0177] The context information of the parent node layer and the child node layer are combined and multiplied, resulting in a total of 56 contexts.

[0178] (2): If the three coplanar child nodes of the current child node to be encoded do not exist, then determine whether the neighbor node information 1 is 0 (i.e. whether M is 0). If it is not 0, then use a sliding window to perform state transition to obtain 9 contexts (the sliding window length is 8).

[0179] The parent node layer considers three parent nodes that are coplanar with the current child node, resulting in a total of 8 contexts;

[0180] The context information of the parent node layer and the child node layer are combined and multiplied, resulting in a total of 72 contexts.

[0181] (3): If the neighbor node information 1 is 0, then only the three parent nodes that are coplanar with the current child node to be encoded are considered, resulting in a total of 8 contexts. Each child node is assigned a context, resulting in a total of 64 contexts.

[0182] The above three steps constitute the entire entropy coding process, such as Figure 8 As shown, for the point cloud as a whole, the context includes the context related to neighbor node information 1 and the context related to other neighbor node information. The other neighbor node information is the neighbor node information other than the neighbor node involved in neighbor node information 1. The combination of neighbor information generates a total of 56+72+64=192 contexts. Therefore, CABAC has 192 contexts.

[0183] For entropy decoding, such as Figure 11 As shown, similar to the entropy coding process, the input is changed from the symbols to be encoded to the bitstream to be decoded, and the corresponding encoding operation is replaced with the decoding operation.

[0184] like Figure 12 As shown, the point cloud encoding method of this embodiment can reduce the bit rate, improve encoding efficiency, and reduce the complexity of hardware implementation compared to PCRM_V9.0. Figure 12In the code, the columns containing AVSC4_ai and AVSC1_ai represent point cloud sequence names, such as bridge_1mm, double_T_section_1mm, and intersection1_1mm. The AVSC4_ai and AVSC1_ai parameters represent point cloud encoding test conditions. There are four test conditions: AVSC1 indicates finitely lossy geometric position and lossy attributes; AVSC2 indicates lossless geometric position and lossy attributes; AVSC3 indicates lossless geometric position and finitely lossy attributes; and AVSC4 indicates lossless geometric position and lossless attributes. The geometric encoding parameters and attribute encoding parameters in the above conditions can be interpreted as follows: under the condition of lossless geometry: geom_remove_dup_flag = 0, meaning duplicate points are not removed; geom_quant_step = 1, meaning geometric coordinates are not quantized. Under geometrically finite lossy conditions: `geom_remove_dup_flag = 1`, meaning duplicate points are removed; the setting of `geom_quant_step` is determined by the quantization step size of the bitrate points, which is determined by the geometric bit width of the point cloud. Under attribute-free conditions: `color_transform_flag = 0`, meaning no RGB to YUV conversion; the attribute quantization parameter `color_quant_param = 0` or `refl_quant_param = 0`, meaning the attribute quantization step size is set to 1. Under attribute-finite lossy conditions: `color_transform_flag = 0`, meaning no RGB to YUV conversion; the attribute quantization parameter can be set according to decreasing quantization impairment. Under attribute-lossy conditions: `color_transform_flag = 1`, meaning RGB to YUV conversion is required; the attribute quantization parameter can be set according to decreasing quantization impairment. Figure 12 In this implementation, the Geometry parameter represents the bitstream of the geometrically encoded portion of the point cloud. For example, a Geometry parameter of 99.5% means that, under AVSC4 testing conditions, encoding the point cloud using this embodiment produces a geometric bitstream that is 99.5% of that produced by existing schemes. The D1 and D1-H parameters represent two different point cloud quality distortion evaluation parameters. Negative values ​​for D1 and D1-H indicate that, under AVSC1 testing conditions, encoding the point cloud using this embodiment produces a higher overall point cloud quality than existing schemes. Compared to existing schemes, this embodiment can reduce the bitrate, improve encoding efficiency, and reduce hardware implementation complexity.

[0185] It should be noted that AVS employs two entropy coding techniques: the first involves context prediction including both the current node's child neighbor prediction and the current node's own neighbor prediction; the second uses a two-layer context reference relationship configuration. The simultaneous use of two entropy coding techniques in AVS results in high hardware implementation costs. Furthermore, each entropy coding scheme has its own problems: the first does not consider the occupancy of directly contacting neighbors between the parent node and the current child node; the second only considers coplanar child nodes, neglecting the utilization of collinear and concurrent child nodes.

[0186] This embodiment proposes an entropy coding and decoding method based on a sliding window. It utilizes more relevant neighbor information, selects different neighbor node information as context based on node density, and employs a sliding window-based state transition technique. Compared with related techniques, this embodiment can reduce the code rate, improve coding efficiency, and reduce the complexity of hardware implementation.

[0187] See figure. Figure 13 This is a flowchart of a point cloud decoding method provided in an embodiment of this application, which can be applied to decoding devices, such as... Figure 13 As shown, the point cloud decoding method includes the following steps:

[0188] Step 201: Determine the second neighbor information corresponding to the child node to be decoded;

[0189] Step 202: Decode the child node to be decoded based on the second neighbor information to obtain the decoding result of the child node to be decoded;

[0190] Wherein, if it is determined that there exists a target associated child node corresponding to the child node to be decoded, the second neighbor information is determined based on the node information of the target associated child node, wherein the target associated child node is a neighboring child node whose association with the child node to be decoded meets a preset condition; or,

[0191] If it is determined that the target associated child node does not exist, the second neighbor information is determined based on the node information of multiple target neighbor child nodes other than the target associated child node among the neighbor child nodes of the child node to be decoded.

[0192] Optionally, determining the second neighbor information corresponding to the child node to be decoded includes:

[0193] If it is determined that the target associated child node does not exist:

[0194] The target neighbor state corresponding to the child node to be decoded is determined based on the node information of the multiple target neighbor child nodes. The target neighbor state is used to characterize the occupancy status of the multiple target neighbor child nodes.

[0195] The state value of the target neighbor state is determined based on the decoding result of the decoded child node, and the neighbor state corresponding to the decoded child node is the target neighbor state;

[0196] The second neighbor information corresponding to the child node to be decoded is determined based on the state value of the target neighbor state.

[0197] Optionally, the target neighbor state is one of multiple neighbor states, each neighbor state corresponds to a sliding window, the sliding window corresponding to the target neighbor state stores the decoding results of multiple decoded child nodes, and the state value of the target neighbor state is determined based on the decoding results in the sliding window corresponding to the target neighbor state;

[0198] The method further includes:

[0199] The sliding window corresponding to the state of the target neighbor is updated based on the decoding result of the child node to be decoded.

[0200] Optionally, determining the second neighbor information corresponding to the child node to be decoded based on the state value of the target neighbor state includes:

[0201] If the target neighbor state is not a preset neighbor state, the second neighbor information corresponding to the child node to be decoded is determined based on the state value of the target neighbor state;

[0202] The method further includes:

[0203] When the target neighbor state is the preset neighbor state, the second neighbor information corresponding to the child node to be decoded is determined based on the coplanar parent node corresponding to the child node to be decoded.

[0204] Optionally, when the target neighbor state is not a preset neighbor state, determining the second neighbor information corresponding to the child node to be decoded based on the state value of the target neighbor state includes:

[0205] If the target neighbor state is not a preset neighbor state, the second neighbor information corresponding to the child node to be decoded is determined based on the state value of the target neighbor state and the coplanar parent node corresponding to the child node to be decoded.

[0206] Optionally, when the target associated child node is a coplanar child node corresponding to the child node to be decoded, the target neighbor child node includes at least one of the following:

[0207] First neighbor child node;

[0208] Second neighbor child node;

[0209] The first neighbor child node includes at least one of the following:

[0210] The common edge child node corresponding to the child node to be decoded;

[0211] The common sub-nodes corresponding to the sub-nodes to be decoded;

[0212] The child nodes located at the two node side lengths in the negative direction of the dimension where the shortest node side length of the child node to be decoded is located;

[0213] The second neighbor child node includes at least one of the following:

[0214] The child node selected from the coplanar parent nodes corresponding to the parent node of the child node to be decoded;

[0215] The child node selected from the collinear parent nodes corresponding to the parent node of the child node to be decoded;

[0216] The selected child node is located in the same position as the child node to be decoded in its parent node.

[0217] It should be noted that the point cloud encoding method provided in this application embodiment can be executed by a point cloud encoding device, or by a control module in the point cloud encoding device for executing the point cloud encoding method. This application embodiment uses the point cloud encoding device executing the point cloud encoding method as an example to illustrate the point cloud encoding device provided in this application embodiment.

[0218] Please see Figure 14 , Figure 14 This is a structural diagram of a point cloud encoding device provided in an embodiment of this application, as shown below. Figure 14 As shown, the point cloud encoding device 300 includes:

[0219] The acquisition module 301 is used to construct a tree structure from the geometric information of the point cloud and acquire the child nodes to be encoded.

[0220] The determining module 302 is used to determine the first neighbor information corresponding to the child node to be encoded;

[0221] Encoding module 303 is used to encode the child node to be encoded based on the first neighbor information to obtain the encoding result of the child node to be encoded; or,

[0222] Wherein, when it is determined that there is a target associated child node corresponding to the child node to be encoded, the first neighbor information is determined based on the node information of the target associated child node, and the target associated child node is a neighbor child node whose association degree with the child node to be encoded meets a preset condition;

[0223] If it is determined that the target associated child node does not exist, the first neighbor information is determined based on the node information of multiple target neighbor child nodes other than the target associated child node among the neighbor child nodes of the child node to be encoded.

[0224] Alternatively, if it is determined that the target associated child node does not exist:

[0225] The determining module includes:

[0226] The first determining unit is used to determine the target neighbor status corresponding to the child node to be encoded based on the node information of the plurality of target neighbor child nodes, wherein the target neighbor status is used to characterize the occupancy status of the plurality of target neighbor child nodes;

[0227] The second determining unit is used to determine the state value of the target neighbor state based on the encoding result of the encoded child node, wherein the neighbor state corresponding to the encoded child node is the target neighbor state;

[0228] The third determining unit is used to determine the first neighbor information corresponding to the child node to be encoded based on the state value of the target neighbor state.

[0229] Optionally, the target neighbor state is one of multiple neighbor states, each neighbor state corresponds to a sliding window, the sliding window corresponding to the target neighbor state stores the encoding results of multiple encoded child nodes, and the state value of the target neighbor state is determined based on the encoding results in the sliding window corresponding to the target neighbor state;

[0230] The device further includes:

[0231] The update module is used to update the sliding window corresponding to the target neighbor state based on the encoding result of the child node to be encoded.

[0232] Optionally, the third determining unit is specifically used for:

[0233] If the target neighbor state is not a preset neighbor state, the first neighbor information corresponding to the child node to be encoded is determined based on the state value of the target neighbor state;

[0234] The determining module further includes:

[0235] The fourth determining unit is used to determine the first neighbor information corresponding to the child node to be encoded based on the coplanar parent node corresponding to the child node to be encoded when the target neighbor state is the preset neighbor state.

[0236] Optionally, the second determining unit is specifically used for:

[0237] If the target neighbor state is not a preset neighbor state, the first neighbor information corresponding to the child node to be encoded is determined based on the state value of the target neighbor state and the coplanar parent node corresponding to the child node to be encoded.

[0238] Optionally, when the target associated child node is a coplanar child node corresponding to the child node to be encoded, the target neighbor child node includes at least one of the following:

[0239] First neighbor child node;

[0240] Second neighbor child node;

[0241] The first neighbor child node includes at least one of the following:

[0242] The common edge child nodes corresponding to the child nodes to be encoded;

[0243] The common sub-nodes corresponding to the sub-nodes to be encoded;

[0244] The child nodes located at the two node side lengths in the negative direction of the dimension where the shortest node side length of the child node to be encoded is located;

[0245] The second neighbor child node includes at least one of the following:

[0246] The child node selected from the coplanar parent nodes corresponding to the parent node of the child node to be encoded;

[0247] The child node selected from the collinear parent nodes corresponding to the parent node of the child node to be encoded;

[0248] The selected child node is positioned in the same place as the child node to be encoded in its parent node.

[0249] The point cloud encoding device 300 in this embodiment can improve encoding efficiency.

[0250] The point cloud encoding device in this application embodiment can be a device, a device or electronic device with an operating system, or a component, integrated circuit, or chip in a terminal. The device or electronic device can be a mobile terminal or a non-mobile terminal. For example, a mobile terminal can include, but is not limited to, the types of terminals listed above, while a non-mobile terminal can be a server, network attached storage (NAS), personal computer (PC), television (TV), ATM, or self-service machine, etc. This application embodiment does not specifically limit the type of terminal.

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

[0252] It should be noted that the point cloud decoding method provided in this application embodiment can be executed by a point cloud decoding device, or by a control module in the point cloud decoding device for executing the point cloud decoding method. This application embodiment uses the point cloud decoding device executing the point cloud decoding method as an example to illustrate the point cloud decoding device provided in this application embodiment.

[0253] Please see Figure 15 , Figure 15 This is a structural diagram of a point cloud decoding device provided in an embodiment of this application, as shown below. Figure 15 As shown, the point cloud decoding device 400 includes:

[0254] The determination module 401 is used to determine the second neighbor information corresponding to the child node to be decoded;

[0255] Decoding module 402 is used to decode the child node to be decoded based on the second neighbor information to obtain the decoding result of the child node to be decoded;

[0256] Wherein, if it is determined that there exists a target associated child node corresponding to the child node to be decoded, the second neighbor information is determined based on the node information of the target associated child node, wherein the target associated child node is a neighboring child node whose association with the child node to be decoded meets a preset condition; or,

[0257] If it is determined that the target associated child node does not exist, the second neighbor information is determined based on the node information of multiple target neighbor child nodes other than the target associated child node among the neighbor child nodes of the child node to be decoded.

[0258] Alternatively, if it is determined that the target associated child node does not exist:

[0259] The determining module includes:

[0260] The first determining unit is used to determine the target neighbor state corresponding to the child node to be decoded based on the node information of the plurality of target neighbor child nodes, wherein the target neighbor state is used to characterize the occupancy status of the plurality of target neighbor child nodes;

[0261] The second determining unit is used to determine the state value of the target neighbor state based on the decoding result of the decoded child node, wherein the neighbor state corresponding to the decoded child node is the target neighbor state;

[0262] The third determining unit is used to determine the second neighbor information corresponding to the child node to be decoded based on the state value of the target neighbor state.

[0263] Optionally, the target neighbor state is one of multiple neighbor states, each neighbor state corresponds to a sliding window, the sliding window corresponding to the target neighbor state stores the decoding results of multiple decoded child nodes, and the state value of the target neighbor state is determined based on the decoding results in the sliding window corresponding to the target neighbor state;

[0264] The device further includes:

[0265] The update module is used to update the sliding window corresponding to the state of the target neighbor based on the decoding result of the child node to be decoded.

[0266] Optionally, the third determining unit is specifically used for:

[0267] If the target neighbor state is not a preset neighbor state, the second neighbor information corresponding to the child node to be decoded is determined based on the state value of the target neighbor state;

[0268] The determining module further includes:

[0269] The fourth determining unit is used to determine the second neighbor information corresponding to the child node to be decoded based on the coplanar parent node corresponding to the child node to be decoded when the target neighbor state is the preset neighbor state.

[0270] Optionally, the third determining unit is specifically used for:

[0271] If the target neighbor state is not a preset neighbor state, the second neighbor information corresponding to the child node to be decoded is determined based on the state value of the target neighbor state and the coplanar parent node corresponding to the child node to be decoded.

[0272] Optionally, when the target associated child node is a coplanar child node corresponding to the child node to be decoded, the target neighbor child node includes at least one of the following:

[0273] First neighbor child node;

[0274] Second neighbor child node;

[0275] The first neighbor child node includes at least one of the following:

[0276] The common edge child node corresponding to the child node to be decoded;

[0277] The common sub-nodes corresponding to the sub-nodes to be decoded;

[0278] The child nodes located at the two node side lengths in the negative direction of the dimension where the shortest node side length of the child node to be decoded is located;

[0279] The second neighbor child node includes at least one of the following:

[0280] The child node selected from the coplanar parent nodes corresponding to the parent node of the child node to be decoded;

[0281] The child node selected from the collinear parent nodes corresponding to the parent node of the child node to be decoded;

[0282] The selected child node is located in the same position as the child node to be decoded in its parent node.

[0283] The point cloud decoding device 400 in this embodiment can improve decoding efficiency.

[0284] The point cloud decoding device in this application embodiment can be a device, a device or electronic device with an operating system, or a component, integrated circuit, or chip in a terminal. The device or electronic device can be a mobile terminal or a non-mobile terminal. For example, a mobile terminal can include, but is not limited to, the types of terminals listed above, while a non-mobile terminal can be a server, network attached storage (NAS), personal computer (PC), television (TV), ATM, or self-service machine, etc. This application embodiment does not specifically limit the type of terminal.

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

[0286] Optionally, such as Figure 16 As shown, this application embodiment also provides a communication device 500, including a processor 501 and a memory 502. The memory 502 stores programs or instructions that can run on the processor 501. For example, when the communication device 500 is an encoding device, the program or instructions executed by the processor 501 implement the various steps of the above-described point cloud encoding method embodiment and achieve the same technical effect. When the communication device 500 is a decoding device, the program or instructions executed by the processor 501 implement the various steps of the above-described point cloud decoding method embodiment and achieve the same technical effect. To avoid repetition, further details are omitted here.

[0287] This application embodiment also provides a communication device, including a processor and a communication interface. The processor is used to: construct a tree structure from the geometric information of a point cloud to obtain a child node to be encoded; determine first neighbor information corresponding to the child node to be encoded; and encode the child node to be encoded based on the first neighbor information to obtain an encoding result for the child node to be encoded. Wherein, if it is determined that a target associated child node exists corresponding to the child node to be encoded, the first neighbor information is determined based on the node information of the target associated child node, where the target associated child node is a neighboring child node whose association with the child node to be encoded meets a preset condition; or, if it is determined that no target associated child node exists, the first neighbor information is determined based on the node information of multiple target neighboring child nodes among the neighboring child nodes of the child node to be encoded, excluding the target associated child node. This communication device embodiment corresponds to the above-described point cloud encoding method embodiment. All implementation processes and methods of the above-described point cloud encoding method embodiment can be applied to this communication device embodiment and can achieve the same technical effect.

[0288] This application embodiment also provides a communication device, including a processor and a communication interface. The processor is configured to: determine second neighbor information corresponding to a child node to be decoded; decode the child node to be decoded based on the second neighbor information to obtain a decoding result of the child node to be decoded; wherein, if it is determined that a target associated child node exists corresponding to the child node to be decoded, the second neighbor information is determined based on the node information of the target associated child node, and the target associated child node is a neighboring child node whose association with the child node to be decoded meets a preset condition; or, if it is determined that the target associated child node does not exist, the second neighbor information is determined based on the node information of multiple target neighboring child nodes other than the target associated child node among the neighboring child nodes of the child node to be decoded. This communication device embodiment corresponds to the above-described point cloud decoding method embodiment. All implementation processes and methods of the above-described point cloud decoding method embodiment can be applied to this communication device embodiment and can achieve the same technical effect.

[0289] Optionally, the communication device can be a terminal. Specifically, Figure 17 A schematic diagram of the hardware structure of a terminal to implement an embodiment of this application.

[0290] The terminal 600 includes, but is not limited to, at least some of the following components: radio frequency unit 601, network module 602, audio output unit 603, input unit 604, sensor 605, display unit 606, user input unit 607, interface unit 608, memory 609, and processor 610.

[0291] Those skilled in the art will understand that the terminal 600 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 610 through a power management system, thereby enabling functions such as managing charging, discharging, and power consumption through the power management system. Figure 17 The 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.

[0292] It should be understood that, in this embodiment, the input unit 604 may include a graphics processing unit (GPU) 6041 and a microphone 6042. The GPU 6041 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 606 may include a display panel 6061, which may be configured in the form of a liquid crystal display, an organic light-emitting diode, or the like. The user input unit 607 includes at least one of a touch panel 6071 and other input devices 6072. The touch panel 6071 is also called a touch screen. The touch panel 6071 may include a touch detection device and a touch controller. Other input devices 6072 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.

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

[0294] The memory 609 can be used to store software programs or instructions, as well as various data. The memory 609 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, image playback, etc.). Furthermore, the memory 609 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 609 in this embodiment includes, but is not limited to, these and any other suitable types of memory.

[0295] Processor 610 may include one or more processing units; optionally, processor 610 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 processor 610.

[0296] Where the terminal is an encoding device:

[0297] The processor 610 is used for:

[0298] The geometric information of the point cloud is used to construct a tree structure to obtain the child nodes to be encoded;

[0299] Determine the first neighbor information corresponding to the child node to be encoded;

[0300] The child node to be encoded is encoded based on the first neighbor information to obtain the encoding result of the child node to be encoded;

[0301] Wherein, if it is determined that there exists a target associated child node corresponding to the child node to be encoded, the first neighbor information is determined based on the node information of the target associated child node, wherein the target associated child node is a neighboring child node whose association with the child node to be encoded meets a preset condition; or,

[0302] If it is determined that the target associated child node does not exist, the first neighbor information is determined based on the node information of multiple target neighbor child nodes other than the target associated child node among the neighbor child nodes of the child node to be encoded.

[0303] Optionally, the processor 610 is specifically used for:

[0304] If it is determined that the target associated child node does not exist:

[0305] The target neighbor state corresponding to the child node to be encoded is determined based on the node information of the multiple target neighbor child nodes. The target neighbor state is used to characterize the occupancy status of the multiple target neighbor child nodes.

[0306] The state value of the target neighbor state is determined based on the encoding result of the encoded child node, and the neighbor state corresponding to the encoded child node is the target neighbor state;

[0307] The first neighbor information corresponding to the child node to be encoded is determined based on the state value of the target neighbor state.

[0308] Optionally, the target neighbor state is one of multiple neighbor states, each neighbor state corresponds to a sliding window, the sliding window corresponding to the target neighbor state stores the encoding results of multiple encoded child nodes, and the state value of the target neighbor state is determined based on the encoding results in the sliding window corresponding to the target neighbor state;

[0309] The processor 610 is also used for:

[0310] The sliding window corresponding to the state of the target neighbor is updated based on the encoding result of the child node to be encoded.

[0311] Optionally, the processor 610 is specifically used for:

[0312] If the target neighbor state is not a preset neighbor state, the first neighbor information corresponding to the child node to be encoded is determined based on the state value of the target neighbor state;

[0313] The processor 610 is also used for:

[0314] When the target neighbor state is the preset neighbor state, the first neighbor information corresponding to the child node to be encoded is determined based on the coplanar parent node corresponding to the child node to be encoded.

[0315] Optionally, the processor 610 is specifically used for:

[0316] If the target neighbor state is not a preset neighbor state, the first neighbor information corresponding to the child node to be encoded is determined based on the state value of the target neighbor state and the coplanar parent node corresponding to the child node to be encoded.

[0317] Optionally, when the target associated child node is a coplanar child node corresponding to the child node to be encoded, the target neighbor child node includes at least one of the following:

[0318] First neighbor child node;

[0319] Second neighbor child node;

[0320] The first neighbor child node includes at least one of the following:

[0321] The common edge child nodes corresponding to the child nodes to be encoded;

[0322] The common sub-nodes corresponding to the sub-nodes to be encoded;

[0323] The child nodes located at the two node side lengths in the negative direction of the dimension where the shortest node side length of the child node to be encoded is located;

[0324] The second neighbor child node includes at least one of the following:

[0325] The child node selected from the coplanar parent nodes corresponding to the parent node of the child node to be encoded;

[0326] The child node selected from the collinear parent nodes corresponding to the parent node of the child node to be encoded;

[0327] The selected child node is positioned in the same place as the child node to be encoded in its parent node.

[0328] When the terminal is a decoding device:

[0329] The processor 610 is used for:

[0330] Determine the second neighbor information corresponding to the child node to be decoded;

[0331] The child node to be decoded is decoded based on the second neighbor information to obtain the decoding result of the child node to be decoded;

[0332] Wherein, if it is determined that there exists a target associated child node corresponding to the child node to be decoded, the second neighbor information is determined based on the node information of the target associated child node, wherein the target associated child node is a neighboring child node whose association with the child node to be decoded meets a preset condition; or,

[0333] If it is determined that the target associated child node does not exist, the second neighbor information is determined based on the node information of multiple target neighbor child nodes other than the target associated child node among the neighbor child nodes of the child node to be decoded.

[0334] Optionally, the processor 610 is specifically used for:

[0335] If it is determined that the target associated child node does not exist:

[0336] The target neighbor state corresponding to the child node to be decoded is determined based on the node information of the multiple target neighbor child nodes. The target neighbor state is used to characterize the occupancy status of the multiple target neighbor child nodes.

[0337] The state value of the target neighbor state is determined based on the decoding result of the decoded child node, and the neighbor state corresponding to the decoded child node is the target neighbor state;

[0338] The second neighbor information corresponding to the child node to be decoded is determined based on the state value of the target neighbor state.

[0339] Optionally, the target neighbor state is one of multiple neighbor states, each neighbor state corresponds to a sliding window, the sliding window corresponding to the target neighbor state stores the decoding results of multiple decoded child nodes, and the state value of the target neighbor state is determined based on the decoding results in the sliding window corresponding to the target neighbor state;

[0340] The processor 610 is also used for:

[0341] The sliding window corresponding to the state of the target neighbor is updated based on the decoding result of the child node to be decoded.

[0342] Optionally, the processor 610 is specifically used for:

[0343] If the target neighbor state is not a preset neighbor state, the second neighbor information corresponding to the child node to be decoded is determined based on the state value of the target neighbor state;

[0344] The processor 610 is also used for:

[0345] When the target neighbor state is the preset neighbor state, the second neighbor information corresponding to the child node to be decoded is determined based on the coplanar parent node corresponding to the child node to be decoded.

[0346] Optionally, the processor 610 is specifically used for:

[0347] If the target neighbor state is not a preset neighbor state, the second neighbor information corresponding to the child node to be decoded is determined based on the state value of the target neighbor state and the coplanar parent node corresponding to the child node to be decoded.

[0348] Optionally, when the target associated child node is a coplanar child node corresponding to the child node to be decoded, the target neighbor child node includes at least one of the following:

[0349] First neighbor child node;

[0350] Second neighbor child node;

[0351] The first neighbor child node includes at least one of the following:

[0352] The common edge child node corresponding to the child node to be decoded;

[0353] The common sub-nodes corresponding to the sub-nodes to be decoded;

[0354] The child nodes located at the two node side lengths in the negative direction of the dimension where the shortest node side length of the child node to be decoded is located;

[0355] The second neighbor child node includes at least one of the following:

[0356] The child node selected from the coplanar parent nodes corresponding to the parent node of the child node to be decoded;

[0357] The child node selected from the collinear parent nodes corresponding to the parent node of the child node to be decoded;

[0358] The selected child node is located in the same position as the child node to be decoded in its parent node.

[0359] The terminal in this embodiment can improve encoding and decoding efficiency.

[0360] Specifically, the terminal in this embodiment further includes: instructions or programs stored in memory 609 and executable on processor 610, wherein processor 610 calls the instructions or programs in memory 609 to execute. Figure 14 or Figure 15 The methods executed by each module shown achieve the same technical effect, and to avoid repetition, they will not be described in detail here.

[0361] This application also provides a readable storage medium storing a program or instructions. When the program or instructions are executed by a processor, they implement the various processes of the above-described point cloud encoding method embodiments, or when the program or instructions are executed by a processor, they implement the various processes of the above-described point cloud decoding method embodiments, and can achieve the same technical effect. To avoid repetition, further details are omitted here.

[0362] The processor mentioned above 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.

[0363] This application embodiment also provides a chip, which includes a processor and a communication interface. The communication interface is coupled to the processor. The processor is used to run programs or instructions to implement the various processes of the above-described point cloud encoding method embodiment, or to implement the various processes of the above-described point cloud decoding method embodiment, and can achieve the same technical effect. To avoid repetition, it will not be described again here.

[0364] 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.

[0365] 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.

[0366] 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.

[0367] 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 geometric information of the point cloud is used to construct a tree structure to obtain the child nodes to be encoded; Determine the first neighbor information corresponding to the child node to be encoded; The child node to be encoded is encoded based on the first neighbor information to obtain the encoding result of the child node to be encoded; Wherein, when it is determined that there is a target associated child node corresponding to the child node to be encoded, and the target associated child node is a coplanar child node corresponding to the child node to be encoded, the first neighbor information is determined based on the node information of the target associated child node and the node information of the coplanar parent node corresponding to the child node to be encoded, and the target associated child node is a neighboring child node whose association degree with the child node to be encoded meets a preset condition; If it is determined that there is no target associated child node, and the target associated child node is a coplanar child node corresponding to the child node to be encoded, the first neighbor information is determined based on the node information of multiple target neighbor child nodes among the neighbor child nodes of the child node to be encoded. The target neighbor child node includes: the second neighbor child node; The second neighbor child node includes at least one of the following: The child node selected from the coplanar parent nodes corresponding to the parent node of the child node to be encoded; The child node selected from the collinear parent nodes corresponding to the parent node of the child node to be encoded; The selected child node is positioned in the same place as the child node to be encoded in its parent node.

2. The method according to claim 1, characterized in that, Determining the first neighbor information corresponding to the child node to be encoded includes: If it is determined that the target associated child node does not exist: Based on the node information of the multiple target neighbor child nodes, the target neighbor state corresponding to the child node to be encoded is determined, and the target neighbor state is used to characterize the occupancy status of the multiple target neighbor child nodes; The state value of the target neighbor state is determined based on the encoding result of the encoded child node, and the neighbor state corresponding to the encoded child node is the target neighbor state; The first neighbor information corresponding to the child node to be encoded is determined based on the state value of the target neighbor state.

3. The method according to claim 2, characterized in that, The target neighbor state is one of multiple neighbor states, and each neighbor state corresponds to a sliding window. The sliding window corresponding to the target neighbor state stores the encoding results of multiple encoded child nodes. The state value of the target neighbor state is determined based on the encoding results in the sliding window corresponding to the target neighbor state. The method further includes: The sliding window corresponding to the state of the target neighbor is updated based on the encoding result of the child node to be encoded.

4. The method according to claim 2, characterized in that, Determining the first neighbor information corresponding to the child node to be encoded based on the state value of the target neighbor state includes: If the target neighbor state is not a preset neighbor state, the first neighbor information corresponding to the child node to be encoded is determined based on the state value of the target neighbor state; The method further includes: When the target neighbor state is the preset neighbor state, the first neighbor information corresponding to the child node to be encoded is determined based on the coplanar parent node corresponding to the child node to be encoded.

5. The method according to claim 4, characterized in that, When the target neighbor state is not a preset neighbor state, determining the first neighbor information corresponding to the child node to be encoded based on the state value of the target neighbor state includes: If the target neighbor state is not a preset neighbor state, the first neighbor information corresponding to the child node to be encoded is determined based on the state value of the target neighbor state and the coplanar parent node corresponding to the child node to be encoded.

6. The method according to any one of claims 1-5, characterized in that, The target neighbor child nodes also include: First neighbor child node; The first neighbor child node includes at least one of the following: The common edge child nodes corresponding to the child nodes to be encoded; The common sub-nodes corresponding to the sub-nodes to be encoded; The child nodes located at the two node side lengths in the negative direction of the dimension containing the shortest node side length of the child node to be encoded.

7. A point cloud decoding method, characterized in that, include: Determine the second neighbor information corresponding to the child node to be decoded; The child node to be decoded is decoded based on the second neighbor information to obtain the decoding result of the child node to be decoded; Wherein, when it is determined that there is a target associated child node corresponding to the child node to be decoded, and the target associated child node is a coplanar child node corresponding to the child node to be decoded, the second neighbor information is determined based on the node information of the target associated child node and the node information of the coplanar parent node corresponding to the child node to be decoded, and the target associated child node is a neighboring child node whose association degree with the child node to be decoded meets a preset condition; If it is determined that there is no target associated child node, and the target associated child node is a coplanar child node corresponding to the child node to be decoded, the second neighbor information is determined based on the node information of multiple target neighbor child nodes among the neighbor child nodes of the child node to be decoded; The target neighbor child node includes: the second neighbor child node; The second neighbor child node includes at least one of the following: The child node selected from the coplanar parent nodes corresponding to the parent node of the child node to be decoded; The child node selected from the collinear parent nodes corresponding to the parent node of the child node to be decoded; The selected child node is located in the same position as the child node to be decoded in its parent node.

8. The method according to claim 7, characterized in that, The process of determining the second neighbor information corresponding to the child node to be decoded includes: If it is determined that the target associated child node does not exist: The target neighbor state corresponding to the child node to be decoded is determined based on the node information of the plurality of target neighbor child nodes, and the target neighbor state is used to characterize the occupancy status of the plurality of target neighbor child nodes; The state value of the target neighbor state is determined based on the decoding result of the decoded child node, and the neighbor state corresponding to the decoded child node is the target neighbor state; The second neighbor information corresponding to the child node to be decoded is determined based on the state value of the target neighbor state.

9. The method according to claim 8, characterized in that, The target neighbor state is one of multiple neighbor states, each neighbor state corresponds to a sliding window, the sliding window corresponding to the target neighbor state stores the decoding results of multiple decoded child nodes, and the state value of the target neighbor state is determined based on the decoding results in the sliding window corresponding to the target neighbor state; The method further includes: The sliding window corresponding to the state of the target neighbor is updated based on the decoding result of the child node to be decoded.

10. The method according to claim 8, characterized in that, The step of determining the second neighbor information corresponding to the child node to be decoded based on the state value of the target neighbor state includes: If the target neighbor state is not a preset neighbor state, the second neighbor information corresponding to the child node to be decoded is determined based on the state value of the target neighbor state; The method further includes: When the target neighbor state is the preset neighbor state, the second neighbor information corresponding to the child node to be decoded is determined based on the coplanar parent node corresponding to the child node to be decoded.

11. The method according to claim 10, characterized in that, When the target neighbor state is not a preset neighbor state, determining the second neighbor information corresponding to the child node to be decoded based on the state value of the target neighbor state includes: If the target neighbor state is not a preset neighbor state, the second neighbor information corresponding to the child node to be decoded is determined based on the state value of the target neighbor state and the coplanar parent node corresponding to the child node to be decoded.

12. The method according to any one of claims 7-11, characterized in that, The target neighbor child nodes also include: First neighbor child node; The first neighbor child node includes at least one of the following: The common edge child node corresponding to the child node to be decoded; The common sub-nodes corresponding to the sub-nodes to be decoded; The child nodes located at the two node side lengths in the negative direction of the dimension containing the shortest node side length of the child node to be decoded.

13. A point cloud encoding device, characterized in that, include: The acquisition module is used to construct a tree structure from the geometric information of the point cloud and obtain the child nodes to be encoded. The determination module is used to determine the first neighbor information corresponding to the child node to be encoded; The encoding module is used to encode the child node to be encoded based on the first neighbor information to obtain the encoding result of the child node to be encoded. Wherein, when it is determined that there is a target associated child node corresponding to the child node to be encoded, and the target associated child node is a coplanar child node corresponding to the child node to be encoded, the first neighbor information is determined based on the node information of the target associated child node and the node information of the coplanar parent node corresponding to the child node to be encoded, and the target associated child node is a neighboring child node whose association degree with the child node to be encoded meets a preset condition; If it is determined that there is no target associated child node, and the target associated child node is a coplanar child node corresponding to the child node to be encoded, the first neighbor information is determined based on the node information of multiple target neighbor child nodes among the neighbor child nodes of the child node to be encoded. The target neighbor child node includes: the second neighbor child node; The second neighbor child node includes at least one of the following: The child node selected from the coplanar parent nodes corresponding to the parent node of the child node to be encoded; The child node selected from the collinear parent nodes corresponding to the parent node of the child node to be encoded; The selected child node is positioned in the same place as the child node to be encoded in its parent node.

14. A point cloud decoding device, characterized in that, include: The determination module is used to determine the second neighbor information corresponding to the child node to be decoded; The decoding module is used to decode the child node to be decoded based on the second neighbor information to obtain the decoding result of the child node to be decoded; Wherein, when it is determined that there is a target associated child node corresponding to the child node to be decoded, and the target associated child node is a coplanar child node corresponding to the child node to be decoded, the second neighbor information is determined based on the node information of the target associated child node and the node information of the coplanar parent node corresponding to the child node to be decoded, and the target associated child node is a neighboring child node whose association degree with the child node to be decoded meets a preset condition; If it is determined that there is no target associated child node, and the target associated child node is a coplanar child node corresponding to the child node to be decoded, the second neighbor information is determined based on the node information of multiple target neighbor child nodes among the neighbor child nodes of the child node to be decoded; The target neighbor child node includes: the second neighbor child node; The second neighbor child node includes at least one of the following: The child node selected from the coplanar parent nodes corresponding to the parent node of the child node to be decoded; The child node selected from the collinear parent nodes corresponding to the parent node of the child node to be decoded; The selected child node is located in the same position as the child node to be decoded in its parent node.

15. A communication device, characterized in that, The method includes a processor, a memory, and a program or instructions stored in the memory and executable on the processor, wherein the program or instructions, when executed by the processor, implement the steps of the point cloud encoding method as described in any one of claims 1 to 6; or, the program or instructions, when executed by the processor, implement the steps of the point cloud decoding method as described in any one of claims 7 to 12.

16. 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 to 6, or, when executed by a processor, implement the steps of the point cloud decoding method as described in any one of claims 7 to 12.