Point cloud coding and decoding method, codec and computer storage medium

CN119301934APending Publication Date: 2025-01-10GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202280096659.4
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2022-07-07
Publication Date
2025-01-10

AI Technical Summary

Technical Problem

In the point cloud G-PCC encoder framework, during the multi-tree geometry encoding process, the plane coding mode has low plane qualification determination and coding efficiency for nodes, resulting in a decrease in video compression performance.

Method used

Introduce all-planar identification information all_planar_flag, use this identification information to determine the planar composition of the current node in three preset spatial directions, optimize the encoding and decoding process of planar flags, and reduce unnecessary transmission of planar identification information.

Benefits of technology

It reduces the complexity of encoding and decoding, improves the efficiency of point cloud video compression, and improves video compression performance.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119301934A_ABST
    Figure CN119301934A_ABST
Patent Text Reader

Abstract

The embodiment of the invention discloses a point cloud decoding method, and the method comprises the steps: decoding a code stream through a decoder, and determining the full-plane identification information of a current node; if the full-plane identification information indicates that the occupied child nodes of the current node form planes in three preset space directions, decoding the code stream, determining three pieces of plane position information of the current node in the three preset space directions, and determining reconstruction geometric information of the current node based on the three pieces of plane position information; if the full-plane identification information indicates that the occupied child nodes of the current node do not completely form a plane in three preset space directions, decoding the code stream, and determining first plane identification information of the current node in a first space direction and second plane identification information of the current node in a second space direction, determining reconstruction geometric information of the current node according to the first plane identification information and the second plane identification information; wherein the first space direction and the second space direction are any two different directions in the three preset space directions.
Need to check novelty before this filing date? Find Prior Art

Description

Point cloud encoding and decoding method, codec and computer storage medium Technical Field

[0001] The embodiments of the present application relate to the field of video coding and decoding technology, and in particular to a point cloud coding and decoding method, a codec, and a computer storage medium. Background Art

[0002] In the geometry-based point cloud compression (G-PCC) framework, the point cloud's geometric information and the attribute information corresponding to each point cloud are encoded separately. After the geometry encoding is completed, the geometry information is reconstructed, and the encoding of the attribute information depends on the reconstructed geometry information.

[0003] In the point cloud G-PCC encoder framework, there are two geometric information encoding methods, namely multi-tree based geometric coding and prediction tree based geometric coding.

[0004] A plane coding mode is introduced in the multi-tree partitioning process. However, the common plane coding mode of multi-tree geometric coding does not take into account the actual situation of the nodes in the point cloud when encoding the plane flag bit. It has problems of high complexity and low coding efficiency, which reduces the video compression performance.

[0005] Summary of the Invention

[0006] The embodiments of the present application provide a point cloud encoding and decoding method, a codec, and a computer storage medium, which can reduce complexity, improve decoding efficiency, and enhance video compression performance.

[0007] The technical solution of the embodiment of the present application can be implemented as follows:

[0008] In a first aspect, an embodiment of the present application provides a point cloud decoding method, applied to a decoder, the method comprising:

[0009] Decode the code stream to determine the full plane identification information of the current node;

[0010] If the full plane identification information indicates that the occupied child nodes of the current node all constitute planes in three preset spatial directions, decoding the bitstream, determining three plane position information of the current node in the three preset spatial directions, and determining reconstructed geometric information of the current node based on the three plane position information;

[0011] If the full plane identification information indicates that the occupied sub-nodes of the current node do not fully constitute a plane in the three preset spatial directions, the code stream is decoded to determine the first plane identification information of the current node in the first spatial direction and the second plane identification information of the current node in the second spatial direction, and the reconstructed geometric information of the current node is determined based on the first plane identification information and the second plane identification information; wherein, the first spatial direction and the second spatial direction are any two different directions among the three preset spatial directions.

[0012] In a second aspect, an embodiment of the present application provides a point cloud encoding method, applied to an encoder, the method comprising:

[0013] Determine three plane identification information of the current node in three preset spatial directions;

[0014] If the three plane identification information indicates that the occupied sub-nodes of the current node all constitute a plane in the three preset spatial directions, setting the full plane identification information of the current node to indicate that the occupied sub-nodes of the current node all constitute a plane in the three preset spatial directions, and writing the full plane identification information into the bitstream;

[0015] If the three plane identification information indicates that the occupied sub-nodes of the current node do not fully constitute a plane in the three preset spatial directions, then the full plane identification information of the current node is set to indicate that the occupied sub-nodes of the current node do not fully constitute a plane in the three preset spatial directions, and the full plane identification information is written into the code stream.

[0016] In a third aspect, an embodiment of the present application provides a decoder, comprising: a decoding part, a first determining part,

[0017] The decoding part is configured to decode the code stream;

[0018] The first determining part is configured to determine the full plane identification information of the current node;

[0019] The decoding part is further configured to decode the code stream if the full plane identification information indicates that the occupied child nodes of the current node all constitute planes in three preset spatial directions;

[0020] The first determining part is further configured to determine three plane position information of the current node in the three preset spatial directions, and determine the reconstructed geometric information of the current node based on the three plane position information;

[0021] The decoding part is further configured to decode the code stream if the full plane identification information indicates that the occupied child nodes of the current node do not fully constitute a plane in three preset spatial directions;

[0022] The first determination part is also configured to determine the first plane identification information of the current node in the first spatial direction and the second plane identification information of the current node in the second spatial direction, and determine the reconstructed geometric information of the current node based on the first plane identification information and the second plane identification information; wherein, the first spatial direction and the second spatial direction are any two different directions among the three preset spatial directions.

[0023] In a fourth aspect, an embodiment of the present application provides a decoder, which includes a first processor and a first memory storing executable instructions of the first processor. When the instructions are executed, the point cloud decoding method as described above is implemented.

[0024] In a fifth aspect, an embodiment of the present application provides an encoder, comprising: a second determining part, an encoding part,

[0025] The second determining part is configured to determine three plane identification information of the current node in three preset spatial directions; if the three plane identification information indicates that the occupied sub-nodes of the current node all constitute planes in the three preset spatial directions, then set the full plane identification information of the current node to indicate that the occupied sub-nodes of the current node all constitute planes in the three preset spatial directions;

[0026] The second determining part is further configured to set the full plane identification information of the current node to indicate that the occupied sub-nodes of the current node do not fully constitute a plane in the three preset spatial directions if the three plane identification information indicates that the occupied sub-nodes of the current node do not fully constitute a plane in the three preset spatial directions.

[0027] The encoding part is configured to write the full-plane identification information into the code stream.

[0028] In a sixth aspect, an embodiment of the present application provides an encoder, which includes a second processor and a second memory storing instructions executable by the second processor. When the instructions are executed, the second processor implements the point cloud encoding method as described above.

[0029] In a seventh aspect, an embodiment of the present application provides a computer storage medium, which stores a computer program. When the computer program is executed by a processor, it implements the point cloud decoding method and point cloud encoding method as described above.

[0030] An embodiment of the present application discloses a point cloud encoding and decoding method, a codec, and a computer storage medium. The decoder decodes a code stream to determine the full plane identification information of the current node; if the full plane identification information indicates that the occupied sub-nodes of the current node all constitute a plane in three preset spatial directions, the decoder then decodes the code stream to determine the three plane position information of the current node in the three preset spatial directions, and determines the reconstructed geometric information of the current node based on the three plane position information; if the full plane identification information indicates that the occupied sub-nodes of the current node do not all constitute a plane in the three preset spatial directions, the decoder then decodes the code stream to determine the first plane identification information of the current node in the first spatial direction and the second plane identification information of the current node in the second spatial direction, and determines the reconstructed geometric information of the current node based on the first plane identification information and the second plane identification information; wherein the first spatial direction and the second spatial direction are any two different directions among the three preset spatial directions. Determine the three plane identification information of the current node in the three preset spatial directions; if the three plane identification information indicates that the occupied sub-nodes of the current node all constitute planes in the three preset spatial directions, set the full plane identification information of the current node to indicate that the occupied sub-nodes of the current node all constitute planes in the three preset spatial directions, and write the full plane identification information into the codestream; if the three plane identification information indicates that the occupied sub-nodes of the current node do not all constitute planes in the three preset spatial directions, set the full plane identification information of the current node to indicate that the occupied sub-nodes of the current node do not all constitute planes in the three preset spatial directions, and write the full plane identification information into the codestream. It can be seen that in the embodiment of the present application, the full plane identification information all_planar_flag is introduced, wherein, when the value of all_planar_flag is 1, it indicates that the occupied sub-nodes of the current node constitute a plane in the three preset spatial directions. In this case, there is no need to transmit the three plane identification information of the current node in the three preset spatial directions in the code stream; when the value of all_planar_flag is 0, it indicates that the occupied sub-nodes of the current node do not constitute a plane in at least one spatial direction. In this case, two plane identification information of two spatial directions of the three preset spatial directions can be determined first. If these two plane identification information respectively indicate that the occupied sub-nodes of the current node constitute a plane in these two spatial directions, then there is no need to transmit another plane identification information in the code stream. It can be seen that the point cloud encoding and decoding method proposed in the embodiment of the present application can reduce complexity, improve decoding efficiency, and enhance video compression performance. BRIEF DESCRIPTION OF THE DRAWINGS

[0031] FIG1 is a schematic diagram of the framework of the G-PCC encoder;

[0032] FIG2 is a schematic diagram of the framework of the G-PCC decoder;

[0033] Figure 3 is a schematic diagram of the plane position of multi-branch tree nodes;

[0034] Figure 4 is a second schematic diagram of the plane position of multi-branch tree nodes;

[0035] Figure 5 is a schematic diagram of the plane position of the multi-branch tree nodes;

[0036] FIG6 is a schematic diagram of an implementation flow of a point cloud decoding method proposed in an embodiment of the present application;

[0037] FIG7 is a schematic diagram of an implementation flow of a point cloud encoding method proposed in an embodiment of the present application;

[0038] FIG8 is a schematic diagram of a point cloud encoding method proposed in an embodiment of the present application;

[0039] FIG9 is a schematic diagram of a point cloud decoding method proposed in an embodiment of the present application;

[0040] FIG10 is a schematic diagram of the structure of the decoder;

[0041] FIG11 is a second schematic diagram of the structure of the decoder;

[0042] FIG12 is a schematic diagram of the structure of the encoder;

[0043] FIG13 is a second schematic diagram of the encoder structure. DETAILED DESCRIPTION

[0044] In order to enable a more detailed understanding of the features and technical contents of the embodiments of the present application, the implementation of the embodiments of the present application is described in detail below with reference to the accompanying drawings. The attached drawings are for reference only and are not used to limit the embodiments of the present application.

[0045] Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by those skilled in the art to which this application pertains. The terms used herein are for the purpose of describing the embodiments of this application only and are not intended to limit this application.

[0046] In the following description, reference is made to “some embodiments”, which describes a subset of all possible embodiments, but it will be understood that “some embodiments” may be the same subset or different subsets of all possible embodiments and may be combined with each other without conflict.

[0047] It should be pointed out that the terms "first\second\third" involved in the embodiments of the present application are merely used to distinguish similar objects and do not represent a specific ordering of the objects. It can be understood that "first\second\third" can be interchanged with a specific order or sequence where permitted, so that the embodiments of the present application described here can be implemented in an order other than that illustrated or described here.

[0048] Here, point cloud is a three-dimensional representation of the surface of an object. Point cloud (data) of the surface of an object can be collected through acquisition equipment such as photoelectric radar, lidar, laser scanner, and multi-view camera.

[0049] A point cloud refers to a collection of massive three-dimensional points. The points in the point cloud can include both their location information and their attribute information. For example, the location information of a point can be its three-dimensional coordinate information. The location information of a point can also be referred to as its geometric information. For example, the attribute information of a point can include color information and / or reflectivity, etc. For example, color information can be information in any color space. For example, color information can be RGB information, where R represents red (Red, R), G represents green (Green, G), and B represents blue (Blue, B). For another example, color information can be luminance and chrominance (YCbCr, YUV) information, where Y represents brightness (Luma), Cb (U) represents blue color difference, and Cr (V) represents red color difference.

[0050] For example, a point cloud obtained based on the principle of laser measurement can include the three-dimensional coordinate information of the point and the laser reflection intensity (reflectance) of the point. For another example, a point cloud obtained based on the principle of photogrammetry can include the three-dimensional coordinate information of the point and the color information of the point. For another example, a point cloud obtained by combining the principles of laser measurement and photogrammetry can include the three-dimensional coordinate information of the point, the laser reflection intensity (reflectance) of the point, and the color information of the point.

[0051] Point clouds can be divided into the following categories according to the acquisition method:

[0052] The first type of static point cloud: the object is stationary and the device used to obtain the point cloud is also stationary;

[0053] The second type of dynamic point cloud: the object is moving, but the device that obtains the point cloud is stationary;

[0054] The third type of dynamic point cloud acquisition: the device that acquires the point cloud is moving.

[0055] For example, point clouds can be divided into two categories according to their usage:

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

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

[0058] Since point clouds are a collection of massive points, storing point clouds not only consumes a lot of memory, but is also not conducive to transmission. There is also not enough bandwidth to support direct transmission of point clouds at the network layer without compression. Therefore, point clouds need to be compressed.

[0059] Currently, point cloud coding frameworks that can compress point clouds can be the Geometry Point Cloud Compression (G-PCC) codec framework or the Video Point Cloud Compression (V-PCC) codec framework provided by the Moving Picture Experts Group (MPEG), or the AVS-PCC codec framework provided by the Audio Video Standard (AVS). The G-PCC codec framework can be used to compress the first type of static point clouds and the third type of dynamically acquired point clouds, while the V-PCC codec framework can be used to compress the second type of dynamic point clouds. The G-PCC codec framework is also known as the Point Cloud Codec TMC13, and the V-PCC codec framework is also known as the Point Cloud Codec TMC2.

[0060] As you can understand, in the point cloud G-PCC encoder framework, the input point cloud is sliced ​​and then independently encoded. Within a slice, the geometric information of the point cloud and the attribute information corresponding to the points in the point cloud are encoded separately. The G-PCC encoder first encodes the geometric information. The encoder performs coordinate transformation on the geometric information so that the entire point cloud is contained within a bounding box. Quantization is then performed. This quantization step mainly serves a scaling purpose. Due to quantization rounding, the geometric information of some points remains the same. Parameters are used to determine whether to remove duplicate points. Not removing duplicate points is called geometric lossless compression, while removing duplicate points is called geometric lossy compression. The process of quantizing and removing duplicate points is also called voxelization. Next, the bounding box is partitioned using a multitree (such as an octree, quadtree, or binary tree). Depending on the depth of the multitree partitioning level, the encoding of geometric information is divided into two frameworks: multitree-based and prediction tree-based.

[0061] In a multitree-based geometric information coding framework, the bounding box is divided into multiple sub-cubes. The placeholder bits of each sub-cube are recorded (where 1 indicates a non-empty sub-cube and 0 indicates an empty sub-cube). The sub-cubes are further divided, typically stopping when the resulting leaf nodes are 1×1×1 unit cubes. During this process, the placeholder bits are intra-predicted using the spatial correlation between the node and its surrounding nodes. Finally, arithmetic coding (CABAC) is performed to generate a binary geometry bitstream, also known as the geometry codestream.

[0062] After encoding the geometric information, the G-PCC encoder reconstructs the geometry and uses the reconstructed geometry to encode the attribute information of the point cloud. Within the multitree-based geometry information coding framework, both lossless and lossy geometry compression involve a geometry reconstruction process upon completion of the multitree partitioning. Currently, attribute encoding of point clouds primarily involves encoding the color information of the points within the point cloud. First, the encoder can perform a color space conversion on the point color information. For example, when the color information of the points in the input point cloud is represented in the RGB color space, the encoder can convert the color information from RGB to YUV. The reconstructed geometry is then used to recolor the point cloud, aligning the unencoded attribute information with the reconstructed geometry. There are two main transformation methods for color information encoding: a distance-based lifting transform that relies on LOD partitioning, and a direct RAHT transform. Both methods transform the color information from the spatial domain to the frequency domain, obtaining high-frequency and low-frequency coefficients. Finally, these coefficients are quantized and arithmetic-coded to generate a binary attribute bitstream, also known as the attribute bitstream.

[0063] In the point cloud G-PCC decoder framework, the point cloud geometry bitstream and the attribute bitstreams corresponding to the points in the point cloud are decoded separately. The G-PCC decoder decodes the geometry bitstream. The decoder performs arithmetic decoding on the geometry bitstream, decoding the point cloud bounding box and the placeholder bits based on the multitree (1 is not empty, 0 is empty). Depending on the depth of the multitree partitioning level during encoding, the decoding of geometric information is divided into two frameworks: multitree-based and prediction tree-based.

[0064] Figure 1 is a schematic diagram of the framework of the G-PCC encoder. In the schematic diagram of the framework of the G-PCC encoder shown in Figure 1, it is applied to the point cloud encoder. For the point cloud data to be encoded, the point cloud data is first divided into multiple slices through slice division. In each slice, the geometric information of the point cloud and the attribute information corresponding to each point cloud are encoded separately. In the geometric encoding process, the geometric information is transformed so that all the point clouds are contained in a bounding box, and then quantized. This quantization step mainly plays a scaling role. Due to the quantization rounding, the geometric information of some point clouds is the same, so whether to remove duplicate points is determined based on the parameters. The process of quantization and removal of duplicate points is also called voxelization. The bounding box is then divided into a multi-branch tree. In the multi-tree-based geometric information coding process, the bounding box is divided into multiple sub-cubes, and the non-empty sub-cubes (containing points in the point cloud) are further divided until the leaf nodes obtained are 1×1×1 unit cubes. The division is stopped and the points in the leaf nodes are arithmetically encoded to generate a binary geometric bit stream, i.e., a geometric code stream.

[0065] During attribute encoding, after geometric encoding is completed and the geometric information is reconstructed, color conversion is performed to convert the color information (i.e., attribute information) from the RGB color space to the YUV color space. The reconstructed geometric information is then used to recolor the point cloud, aligning the unencoded attribute information with the reconstructed geometric information. Attribute encoding primarily targets color information. Two main transformation methods are used: a distance-based lifting transform that relies on level of detail (LOD) partitioning, and a direct region-adaptive hierarchical transform (RAHT) transformation. Both methods convert color information from the spatial domain to the frequency domain, obtaining high- and low-frequency coefficients. These coefficients are then quantized (i.e., quantized coefficients). Finally, the geometrically encoded data (via multitree partitioning and surface fitting) is sliced ​​together with the attribute-encoded data (via quantized coefficients). The vertex coordinates of each block are then encoded (i.e., arithmetic encoding) to generate a binary attribute bitstream, i.e., the attribute codestream.

[0066] Figure 2 is a schematic diagram of the framework of the G-PCC decoder. As shown in Figure 2, it is applied to the point cloud decoder. For the acquired binary code stream, after acquiring the binary code stream, the geometric bit stream and the attribute bit stream in the binary code stream are independently decoded. When decoding the geometric bit stream, the geometric information of the point cloud is obtained through arithmetic decoding-synthetic multi-tree-surface fitting-reconstruction of geometry-inverse process of coordinate conversion. Here, after surface fitting, you can choose to perform the step of reconstructing geometry or the step of Scalable-reconstruction of geometry, which is mainly determined by whether the spatial scalability function is performed. In addition, when decoding the attribute bit stream, the attribute information of the point cloud is obtained through arithmetic decoding-inverse quantization-LOD-based inverse lifting or RAHT-based inverse transformation-color conversion inverse process, and the three-dimensional image model of the point cloud data to be encoded is restored based on the geometric information and attribute information.

[0067] The plane coding mode is introduced in the multitree partitioning process, which is located in the multitree geometry coding process and is applied to the multitree partitioning and surface fitting part as shown in Figure 1. This method efficiently encodes nodes that meet the plane qualification criteria. In the plane coding mode, first, a flag bit occ_single_plane is introduced. This flag bit is used to indicate whether the occupied child nodes in the current node belong to the same plane. If occ_single_plane is 1, then an additional flag bit plane_position is required. This flag bit uses a binary symbol (such as 0 or 1) to indicate whether the plane is located in the low plane or the high plane. For example, plane_position is 0 for the low plane and plane_position is 1 for the high plane.

[0068] For example, Figure 3 is a schematic diagram of the plane position of a multi-tree node 1, Figure 4 is a schematic diagram of the plane position of a multi-tree node 2, and Figure 5 is a schematic diagram of the plane position of a multi-tree node 3. As shown in Figure 3, the occupied child nodes in the current node are all located in the low plane, as shown in Figure 4, the occupied child nodes in the current node are all located in the high plane, and as shown in Figure 5, the occupied child nodes in the current node are all located in the non-plane.

[0069] When the plane coding mode was first introduced, it only targeted planes in one direction (i.e., the z direction). Later, considering the different distributions of different point clouds, it was expanded to planes in three directions (i.e., the x, y, or z directions). Specifically, first, the flag occ_single_plane[axisIdx] was introduced. This flag is used to indicate whether the occupied child nodes in the current node constitute a plane in the axisIdx-th axis direction. If occ_single_plane[axisIdx] is 0, it means that the occupied child nodes in the current node are located in the other two plane directions perpendicular to the axisIdx-th axis.

[0070] In the plane coding mode of the common multi-tree geometric coding process, it is first necessary to determine the plane eligibility of the node, and then determine the plane mode of the node that meets the plane eligibility determination conditions. In the plane mode determination process, the plane flag occ_single_plane[axisIdx] (where 0≤axisIdx≤2) is introduced to determine whether the occupied child nodes of the node are planes in three directions (i.e., x, y, and z directions). Assuming that the occupied child nodes of a node meet the plane eligibility determination conditions in all three directions, the specific determination criteria are as follows:

[0071] If occ_single_plane[0] is 1, and occ_single_plane[1] and occ_single_plane[2] are both 0, it means that the occupied child of the node is located in the x-plane;

[0072] If occ_single_plane[1] is 1, and occ_single_plane[0] and occ_single_plane[2] are both 0, it means that the occupied child of the node is located in the y plane;

[0073] If occ_single_plane[2] is 1, and occ_single_plane[0] and occ_single_plane[1] are both 0, it means that the occupied child of the node is located in the z plane;

[0074] If occ_single_plane[0] is 0, and occ_single_plane[1] and occ_single_plane[2] are both 1, it means that the occupied child of the node is located in the yz plane;

[0075] If occ_single_plane[1] is 0, and occ_single_plane[0] and occ_single_plane[2] are both 1, it means that the occupied child of the node is located in the xz plane;

[0076] If occ_single_plane[2] is 0, and occ_single_plane[0] and occ_single_plane[1] are both 1, it means that the occupied child of the node is located in the xy plane;

[0077] If occ_single_plane[0], occ_single_plane[1], and occ_single_plane[2] are all 1, it means that the occupied child nodes of the node are located in the xyz plane;

[0078] If occ_single_plane[0], occ_single_plane[1], and occ_single_plane[2] are all 0, it means that the occupied child node of the node is not a plane.

[0079] After the judgment is completed, the plane flag needs to be encoded. Furthermore, when occ_single_plane[axisIdx] is 1, an additional binary symbol (such as 0 or 1) is required to encode the flag plane_position[axisIdx]. If the flag is 0, it means that the occupied child node of the node is located in the low plane of the axisIdx-th axis. If the flag is 1, it means that the occupied child node of the node is located in the high plane of the axisIdx-th axis.

[0080] In the above method, when the occupied child nodes of a node meet the plane qualification criteria in all three directions, three binary symbols (such as 0 or 1) are required to encode the plane flag bits, namely occ_single_plane[0], occ_single_plane[1] and occ_single_plane[2]. However, in general, when the occupied child nodes of a node meet the plane qualification criteria in all three directions, the node is most likely a plane in all three directions, that is, occ_single_plane[0], occ_single_plane[1] and occ_single_plane[2] are all 1.

[0081] In other words, the common plane coding mode of multi-tree geometric coding does not take into account the actual situation of the nodes in the point cloud when encoding the plane flag bit. It has problems of high complexity and low coding efficiency, which reduces the video compression performance.

[0082] In order to solve the above problem, in an embodiment of the present application, in an embodiment of the present application, full plane identification information all_planar_flag is introduced, wherein, when the value of all_planar_flag is 1, it indicates that the occupied sub-nodes of the current node constitute planes in the three preset spatial directions. At this time, there is no need to transmit the three plane identification information of the current node in the three preset spatial directions in the code stream; when the value of all_planar_flag is 0, it indicates that the occupied sub-nodes of the current node do not constitute a plane in at least one spatial direction. At this time, two plane identification information of two spatial directions in the three preset spatial directions can be determined first. If these two plane identification information respectively indicate that the occupied sub-nodes of the current node constitute planes in the two spatial directions, then there is no need to transmit another plane identification information in the code stream. It can be seen that the point cloud encoding and decoding method proposed in the embodiment of the present application can reduce complexity, improve decoding efficiency, and enhance video compression performance.

[0083] The point cloud encoding method in the embodiment of the present application can be applied to the multi-tree partitioning and surface fitting portion as shown in Figure 1. In addition, the point cloud decoding method in the embodiment of the present application can also be applied to the reconstructed multi-tree and reconstructed surface estimation as shown in Figure 2. In other words, the point cloud encoding and decoding method in the embodiment of the present application can be applied to both the encoder and the decoder, or even to both the encoder and the decoder simultaneously, but this embodiment of the present application does not specifically limit this.

[0084] The technical solutions in the embodiments of the present application will be described clearly and completely below in conjunction with the drawings in the embodiments of the present application.

[0085] The present application proposes a point cloud decoding method. FIG6 is a schematic diagram of an implementation flow of the point cloud decoding method proposed in the present application. As shown in FIG6 , the method for performing point cloud decoding processing by the decoder may include the following steps:

[0086] Step 101: Decode the code stream to determine the full plane identification information of the current node.

[0087] In an embodiment of the present application, the decoder may first decode the bitstream and then determine the full plane identification information of the current node. The full plane identification information may indicate whether the occupied subnodes of the current node all form planes in three preset spatial directions. That is, based on the full plane identification information corresponding to the current node, it may be determined whether the planes formed by the occupied subnodes of the current node are all perpendicular to the three preset spatial directions.

[0088] It can be understood that in an embodiment of the present application, if the occupied sub-nodes of the current node do not form a plane in one of the three preset spatial directions, then it can be considered that the plane formed by the occupied sub-nodes of the current node is perpendicular to the spatial direction.

[0089] It should be noted that, in an embodiment of the present application, the full-plane identification information can be used to determine whether the occupied sub-nodes of the current node all constitute a plane in the three preset spatial directions. Specifically, on the encoding side, the encoder can assign a value to the full-plane identification information. For example, when the value of the full-plane identification information is a numerical value, it is considered that the occupied sub-nodes of the current node all constitute a plane in the three preset spatial directions. When the value of the full-plane identification information is another numerical value, it is considered that the occupied sub-nodes of the current node do not all constitute a plane in the three preset spatial directions.

[0090] That is, in an embodiment of the present application, in a decoder, when determining whether the occupied child nodes of the current node all constitute a plane in the three preset spatial directions, the determination may be based on the full plane identification information. The full plane identification information may be represented by a flag bit, all_plane_flag, or another flag bit, not_all_plane_flag.

[0091] It can be understood that, in the embodiment of the present application, the value of the full-plane identification information can be 0 or 1.

[0092] Correspondingly, in an embodiment of the present application, if the determined full-plane identification information is the flag all_plane_flag, then, when the value of the flag all_plane_flag is 0, it can be determined that the full-plane identification information indicates that the occupied sub-nodes of the current node do not constitute a plane in the three preset spatial directions; when the value of the flag all_plane_flag is 1, it can be determined that the full-plane identification information indicates that the occupied sub-nodes of the current node constitute a plane in the three preset spatial directions.

[0093] Correspondingly, in an embodiment of the present application, if the determined full-plane identification information is the flag not_all_plane_flag, then, when the value of the flag not_all_plane_flag is 1, it can be determined that the full-plane identification information indicates that the occupied sub-nodes of the current node do not constitute a plane in the three preset spatial directions; when the value of the flag all_plane_flag is 0, it can be determined that the full-plane identification information indicates that the occupied sub-nodes of the current node constitute a plane in the three preset spatial directions.

[0094] Furthermore, in an embodiment of the present application, the three preset spatial directions can be three different directions in space that are perpendicular to each other. Taking the spatial coordinate axis as an example, the three preset spatial directions can be the x-axis direction, the y-axis direction, and the z-axis direction.

[0095] It can be understood that, in the embodiment of the present application, the current node may be a point in the point cloud to be decoded.

[0096] Furthermore, in an embodiment of the present application, before obtaining the full plane identification information, it is possible to first judge whether the current node meets the plane qualification judgment conditions in the three preset spatial directions. If the current node meets the plane qualification judgment conditions in all three preset spatial directions, then the full plane identification information determination process is executed.

[0097] Accordingly, in an embodiment of the present application, after separately judging whether the current node meets the plane qualification judgment conditions in the three preset spatial directions, if the current node does not meet the plane qualification judgment conditions in all three preset spatial directions, the process of determining the full plane identification information will no longer be executed. Instead, for one or two spatial directions that meet the plane qualification judgment conditions, the code stream will be decoded to determine the plane identification information of the current node in the one or two spatial directions that meet the plane qualification judgment conditions; and then the reconstructed geometric information of the current node can be determined based on the plane identification information of the current node in one or two spatial directions.

[0098] That is to say, in the embodiment of the present application, a prerequisite for determining the full plane identification information of the current node by decoding the code stream is whether the current node meets the plane qualification judgment conditions in three preset spatial directions.

[0099] Step 102: If the full plane identification information indicates that the occupied child nodes of the current node all constitute planes in the three preset spatial directions, decode the code stream, determine the three plane position information of the current node in the three preset spatial directions, and determine the reconstructed geometric information of the current node based on the three plane position information.

[0100] In an embodiment of the present application, after determining the full plane identification information of the current node, if the full plane identification information indicates that the occupied sub-nodes of the current node constitute planes in three preset spatial directions, the code stream is decoded to determine the three plane position information of the current node in the three preset spatial directions, and then the reconstructed geometric information of the current node can be determined based on the three plane position information.

[0101] It should be noted that, in an embodiment of the present application, if the full-plane identification information indicates that the occupied sub-nodes of the current node constitute a plane in the three preset spatial directions, then it can be said that the positions of the occupied sub-nodes of the current node constitute a plane in the three preset spatial directions, that is, the current node is determined to be a three-plane node, and therefore it can be considered that the occupied sub-nodes of the current node can constitute a plane in any preset spatial direction.

[0102] It can be understood that in an embodiment of the present application, for one of the three preset spatial directions, if it has been determined that the occupied sub-nodes of the current node can constitute a plane in the preset spatial direction, then it can be directly assumed that the plane identification information of the current node in the spatial direction indicates that the occupied sub-nodes of the current node constitute a plane in the spatial direction. Therefore, there is no need to decode the plane identification information of the current node in the spatial direction, but continue to determine the three plane position information of the current node in the three preset spatial directions, and then the reconstructed geometric information of the current node can be determined based on the three plane position information.

[0103] Further, in an embodiment of the present application, if the full plane identification information indicates that the occupied sub-nodes of the current node constitute a plane in three preset spatial directions, then the three plane identification information of the current node in the three preset spatial directions can be set to respectively indicate that the occupied sub-nodes of the current node constitute a plane in the three preset spatial directions.

[0104] It can be understood that in an embodiment of the present application, for one of the three preset spatial directions, if it has been determined that the occupied sub-nodes of the current node can constitute a plane in this spatial direction, then the plane identification information of the current node in this spatial direction can be directly set to indicate that the occupied sub-nodes of the current node constitute a plane in this spatial direction. Therefore, there is no need to decode the plane identification information of the current node in this spatial direction, but instead continue to determine the three plane position information of the current node in the three preset spatial directions, and then the reconstructed geometric information of the current node can be determined based on the three plane position information.

[0105] It should be noted that, in an embodiment of the present application, if the plane identification information of the current node in a spatial direction indicates that the occupied child nodes of the current node constitute a plane in the spatial direction, then the plane position information of the current node in the spatial direction can be further determined; if the plane identification information of the current node in a spatial direction indicates that the occupied child nodes of the current node do not constitute a plane in the spatial direction, then it can be determined that the current node does not have plane position information in the spatial direction.

[0106] It should be noted that in the embodiments of the present application, for one of the three preset spatial directions, the plane identification information of the spatial direction can indicate whether the occupied child nodes of the current node constitute a plane in the spatial direction. That is, through the plane identification information corresponding to the current node, it can be determined whether the plane formed by the occupied child nodes of the current node is perpendicular to the spatial direction. If the occupied child nodes of the current node do not constitute a plane in the spatial direction, then it can be considered that the plane formed by the occupied child nodes of the current node is perpendicular to the spatial direction.

[0107] It should be noted that, in an embodiment of the present application, the plane identification information can be used to determine whether the occupied sub-nodes of the current node constitute a plane in the corresponding spatial direction. Specifically, on the encoding side, the encoder can assign a value to the plane identification information. For example, when the value of the plane identification information is a numerical value, it is considered that the occupied sub-nodes of the current node constitute a plane in the corresponding spatial direction. When the value of the plane identification information is another numerical value, it is considered that the occupied sub-nodes of the current node do not constitute a plane in the corresponding spatial direction, that is, the plane formed by the occupied sub-nodes of the current node is perpendicular to the spatial direction.

[0108] That is, in embodiments of the present application, in the decoder, when determining whether the occupied child nodes of the current node form a plane in a spatial direction, the determination can be made based on the plane identification information in that spatial direction. The plane identification information can be represented by a flag bit, occ_single_plane. occ_single_plane[k] can be used to indicate whether the occupied child nodes of the current node form a plane in the k+1th spatial direction, where k can take values ​​of 0, 1, or 2.

[0109] For example, in an embodiment of the present application, occ_single_plane[0] may represent the first plane identification information of the current node in the first spatial direction, occ_single_plane[1] may represent the second plane identification information of the current node in the second spatial direction, and occ_single_plane[2] may represent the third plane identification information of the current node in the third spatial direction.

[0110] It can be understood that, in the embodiment of the present application, the value of the plane identification information occ_single_plane[k] can be 0 or 1.

[0111] Accordingly, in an embodiment of the present application, if the determined plane identification information is the flag bit occ_single_plane[k], then, when the value of the flag bit occ_single_plane[k] is 0, it can be determined that the plane identification information indicates that the occupied child nodes of the current node do not constitute a plane in the k+1th spatial direction, and when the value of the flag bit occ_single_plane[k] is 1, it can be determined that the plane identification information indicates that the occupied child nodes of the current node constitute a plane in the k+1th spatial direction.

[0112] It can be understood that when the value of all_plane_flag obtained by decoding is 1, it can be determined that the current node constitutes a plane in the three preset spatial directions. At this time, the three plane identification information of the current node in the three preset spatial directions is not in the codestream. This is because at the encoding end, the three plane identification information in the three preset spatial directions is not written into the codestream. Therefore, the three plane identification information of the current node in the three preset spatial directions can be directly set to indicate that the occupied subnodes of the current node constitute a plane in the three preset spatial directions. That is, the value of the first plane identification information occ_single_plane[0] in the first spatial direction is set to 1, the value of the second plane identification information occ_single_plane[1] in the second spatial direction is set to 1, and the value of the third plane identification information occ_single_plane[2] in the third spatial direction is set to 1.

[0113] Step 103: If the full plane identification information indicates that the occupied sub-nodes of the current node do not constitute a complete plane in the three preset spatial directions, decode the code stream to determine the first plane identification information of the current node in the first spatial direction and the second plane identification information of the current node in the second spatial direction, and determine the reconstructed geometric information of the current node based on the first plane identification information and the second plane identification information; wherein the first spatial direction and the second spatial direction are any two different directions among the three preset spatial directions.

[0114] In an embodiment of the present application, after determining the full plane identification information of the current node, if the full plane identification information indicates that the occupied sub-nodes of the current node do not constitute a complete plane in the three preset spatial directions, then the decoding of the code stream can be continued to further determine the first plane identification information of the current node in the first spatial direction and the second plane identification information of the current node in the second spatial direction, and then the reconstructed geometric information of the current node can be determined based on the first plane identification information and the second plane identification information.

[0115] It should be noted that in the embodiments of the present application, the first spatial direction and the second spatial direction are any two different directions from the three preset spatial directions. Assuming that the three preset spatial directions can be the x-axis direction, the y-axis direction, and the z-axis direction, respectively, the first spatial direction and the second spatial direction can be any two directions from the x-axis direction, the y-axis direction, and the z-axis direction. For example, the first spatial direction can be the x-axis direction, and the second spatial direction can be the y-axis direction; or the first spatial direction can be the z-axis direction, and the second spatial direction can be the y-axis direction; or the first spatial direction can be the z-axis direction, and the second spatial direction can be the x-axis direction, and so on. The embodiments of the present application do not specifically limit this.

[0116] Further, in an embodiment of the present application, if the full plane identification information indicates that the occupied sub-nodes of the current node do not constitute a plane in the three preset spatial directions, then it can be considered that for at least one of the three preset spatial directions, the occupied sub-nodes of the current node do not constitute a plane in the at least one spatial direction.

[0117] It can be understood that in the embodiments of the present application, the full plane identification information indicates that the occupied sub-nodes of the current node do not constitute a plane in the three preset spatial directions. Possible situations may include: 1. The occupied sub-nodes of the current node do not constitute a plane in two spatial directions, but only constitute a plane in another spatial direction; 2. The occupied sub-nodes of the current node constitute a plane in two spatial directions, but do not constitute a plane in another spatial direction.

[0118] It should be noted that, in an embodiment of the present application, if the first plane identification information indicates that the occupied sub-nodes of the current node do not constitute a plane in the first spatial direction, then it can be determined that the plane constituted by the occupied sub-nodes of the current node indicated by the first plane identification information is perpendicular to the first spatial direction; if the second plane identification information indicates that the occupied sub-nodes of the current node do not constitute a plane in the second spatial direction, then it can be determined that the plane constituted by the occupied sub-nodes of the current node indicated by the second plane identification information is perpendicular to the second spatial direction; if the third plane identification information indicates that the occupied sub-nodes of the current node do not constitute a plane in the third spatial direction, then it can be determined that the plane constituted by the occupied sub-nodes of the current node indicated by the third plane identification information is perpendicular to the third spatial direction.

[0119] That is, in an embodiment of the present application, if the plane identification information in a spatial direction indicates that the occupied child nodes of the current node do not constitute a plane in the spatial direction, then the plane identification information in the spatial direction can be considered to indicate that the plane formed by the occupied child nodes of the current node is perpendicular to the spatial direction. For example, if the plane identification information in the x-axis direction indicates that the occupied child nodes of the current node do not constitute a plane in the x-axis direction, then the plane identification information in the x-axis direction can be considered to indicate that the plane formed by the occupied child nodes of the current node is perpendicular to the x-axis direction.

[0120] Furthermore, in an embodiment of the present application, if the full plane identification information indicates that the occupied sub-nodes of the current node do not constitute a complete plane in the three preset spatial directions, then the first plane identification information of the current node in the first spatial direction and the second plane identification information of the current node in the second spatial direction can be determined first, and then it can be further determined based on the first plane identification information and the second plane identification information whether it is necessary to decode the third plane identification information of the current node in the third spatial direction.

[0121] Furthermore, in an embodiment of the present application, when determining the reconstructed geometric information of the current node based on the first plane identification information and the second plane identification information, if the first plane identification information indicates that the occupied sub-nodes of the current node constitute a plane in the first spatial direction, and at the same time, the second plane identification information indicates that the occupied sub-nodes of the current node constitute a plane in the second spatial direction, then the decoding of the code stream can be continued to further determine the first plane position information of the current node in the first spatial direction and the second plane position information of the current node in the second spatial direction; then the reconstructed geometric information of the current node can be determined based on the first plane position information and the second plane position information.

[0122] It can be understood that in an embodiment of the present application, if the value of occ_single_plane[0] obtained by decoding is 1, it can be determined that the first plane identification information indicates that the occupied sub-nodes of the current node constitute a plane in the first spatial direction, and if the value of occ_single_plane[1] obtained by decoding is 1, it can be determined that the second plane identification information indicates that the occupied sub-nodes of the current node constitute a plane in the second spatial direction.

[0123] It should be noted that, in an embodiment of the present application, after determining that the full plane identification information indicates that the occupied sub-nodes of the current node do not constitute a full plane in the three preset spatial directions, if the first plane identification information and the second plane identification information indicate that the occupied sub-nodes of the current node constitute a plane in both the first spatial direction and the second spatial direction, then it can be directly assumed that the third plane identification information of the current node in the third spatial direction indicates that the occupied sub-nodes of the current node do not constitute a plane in the third spatial direction, that is, it can be directly assumed that the plane identification information in the third spatial direction indicates that the plane constituted by the occupied sub-nodes of the current node is perpendicular to the third spatial direction. Therefore, there is no need to decode the third plane identification information of the current node in the third spatial direction, but continue to determine the first plane position information of the current node in the first spatial direction and the second plane position information in the second spatial direction, and then the reconstructed geometric information of the current node can be determined based on the first plane position information and the second plane position information.

[0124] It can be understood that in an embodiment of the present application, after determining that the full plane identification information indicates that the occupied sub-nodes of the current node do not constitute a full plane in the three preset spatial directions, if the first plane identification information and the second plane identification information indicate that the occupied sub-nodes of the current node constitute a plane in the first spatial direction and the second spatial direction, then the third plane identification information of the current node in the third spatial direction can be set to indicate that the occupied sub-nodes of the current node do not constitute a plane in the third spatial direction, that is, the plane identification information in the third spatial direction can be set to indicate that the plane constituted by the occupied sub-nodes of the current node is perpendicular to the third spatial direction.

[0125] It should be noted that in the embodiments of the present application, the third spatial direction may be one of the three preset spatial directions other than the first and second spatial directions. Assuming that the three preset spatial directions may be the x-axis, y-axis, and z-axis, if the first spatial direction may be the x-axis and the second spatial direction may be the y-axis, then the third spatial direction may be the z-axis; if the first spatial direction may be the z-axis and the second spatial direction may be the y-axis, then the third spatial direction may be the x-axis; this is not specifically limited in the embodiments of the present application.

[0126] That is to say, in an embodiment of the present application, when the full plane identification information indicates that the occupied sub-nodes of the current node do not constitute a plane in the three preset spatial directions, if the first plane identification information and the second plane identification information indicate that the occupied sub-nodes of the current node constitute a plane in both the first spatial direction and the second spatial direction, at this time, there is no third plane identification information in the code stream. This is because at the encoding end, the third plane identification information is not written into the code stream. Therefore, the third plane identification information can be decoded without being processed. Instead, the third plane identification information can be directly set to indicate that the occupied sub-nodes of the current node do not constitute a plane in the third spatial direction. That is, the plane identification information in the third spatial direction can be set to indicate that the plane constituted by the occupied sub-nodes of the current node is perpendicular to the third spatial direction.

[0127] It can be seen that in the embodiment of the present application, in the embodiment of the present application, when the value of all_plane_flag is 0, if the value of occ_single_plane[0] obtained by decoding is 1 and the value of occ_single_plane[1] is also 1, the value of occ_single_plane[2] can be directly set to 0.

[0128] Furthermore, in an embodiment of the present application, when determining the reconstructed geometric information of the current node based on the first plane identification information and the second plane identification information, if the first plane identification information indicates that the occupied sub-nodes of the current node do not constitute a plane in the first spatial direction, and / or the second plane identification information indicates that the occupied sub-nodes of the current node do not constitute a plane in the second spatial direction, then the decoding of the code stream can be continued to further determine the third plane identification information of the current node in the third spatial direction; and then the reconstructed geometric information of the current node can be determined based on the third plane identification information.

[0129] It is understood that in the embodiment of the present application, if the value of occ_single_plane[0] obtained by decoding is 0, it can be determined that the first plane identification information indicates that the occupied child nodes of the current node do not constitute a plane in the first spatial direction. If the value of occ_single_plane[1] obtained by decoding is 0, it can be determined that the second plane identification information indicates that the occupied child nodes of the current node do not constitute a plane in the second spatial direction. The third spatial direction can be a direction other than the first spatial direction and the second spatial direction among the three preset spatial directions.

[0130] It should be noted that, in an embodiment of the present application, after determining that the full plane identification information indicates that the occupied sub-nodes of the current node do not constitute a complete plane in the three preset spatial directions, if the first plane identification information and / or the second plane identification information indicate that the occupied sub-nodes of the current node do not constitute a plane in the first spatial direction and / or the second spatial direction, that is, indicating that the occupied sub-nodes of the current node do not constitute a plane in one or two spatial directions of the first spatial direction and the second spatial direction, then it is necessary to further determine the third plane identification information of the current node in the third spatial direction, and then determine whether the occupied sub-nodes of the current node constitute a plane in the third spatial direction.

[0131] That is to say, in an embodiment of the present application, when the value of all_plane_flag is 0, if the value of occ_single_plane[0] obtained by decoding is 0, and / or the value of occ_single_plane[1] is 0, that is, the value of occ_single_plane[0] and the value of occ_single_plane[1] are not both 1, then it is necessary to further decode the code stream to determine occ_single_plane[2].

[0132] Exemplarily, a possible implementation is: if the first plane identification information indicates that the occupied sub-nodes of the current node constitute a plane in the first spatial direction, and the second plane identification information indicates that the occupied sub-nodes of the current node do not constitute a plane in the second spatial direction, and the third plane identification information indicates that the occupied sub-nodes of the current node do not constitute a plane in the third spatial direction, then the first plane position information of the current node in the first spatial direction can be further determined; and then the reconstructed geometric information of the current node can be determined based on the first plane position information.

[0133] That is to say, in an embodiment of the present application, when the value of all_plane_flag is 0, if the value of occ_single_plane[0] obtained by decoding is 1, the value of occ_single_plane[1] is 0, and the value of occ_single_plane[2] is 0, then it is necessary to determine the reconstructed geometric information of the current node through the first plane position information of the current node in the first spatial direction.

[0134] Exemplarily, a possible implementation is: if the first plane identification information indicates that the occupied sub-nodes of the current node constitute a plane in the first spatial direction, and the second plane identification information indicates that the occupied sub-nodes of the current node do not constitute a plane in the second spatial direction, and the third plane identification information indicates that the occupied sub-nodes of the current node constitute a plane in the third spatial direction, then the first plane position information of the current node in the first spatial direction and the third plane position information of the current node in the third spatial direction can be further determined; then the reconstructed geometric information of the current node can be determined based on the first plane position information and the third plane position information.

[0135] That is to say, in an embodiment of the present application, when the value of all_plane_flag is 0, if the value of occ_single_plane[0] obtained by decoding is 1, the value of occ_single_plane[1] is 0, and the value of occ_single_plane[2] is 1, then it is necessary to determine the reconstructed geometric information of the current node through the first plane position information of the current node in the first spatial direction and the third plane position information of the current node in the third spatial direction.

[0136] Exemplarily, one possible implementation is: if the first plane identification information indicates that the occupied sub-nodes of the current node do not constitute a plane in the first spatial direction, and the second plane identification information indicates that the occupied sub-nodes of the current node do not constitute a plane in the second spatial direction, and the third plane identification information indicates that the occupied sub-nodes of the current node do not constitute a plane in the third spatial direction, then second plane position information of the current node in the second spatial direction can be further determined; and then, the reconstructed geometric information of the current node can be determined based on the second plane position information;

[0137] That is to say, in an embodiment of the present application, when the value of all_plane_flag is 0, if the value of occ_single_plane[0] obtained by decoding is 0, the value of occ_single_plane[1] is 1, and the value of occ_single_plane[2] is 0, then it is necessary to determine the reconstructed geometric information of the current node through the second plane position information of the current node in the second spatial direction.

[0138] Exemplarily, a possible implementation is: if the first plane identification information indicates that the occupied sub-nodes of the current node do not constitute a plane in the first spatial direction, and the second plane identification information indicates that the occupied sub-nodes of the current node constitute a plane in the second spatial direction, and the third plane identification information indicates that the occupied sub-nodes of the current node constitute a plane in the third spatial direction, then the second plane position information of the current node in the second spatial direction and the third plane position information of the current node in the third spatial direction can be further determined; then the reconstructed geometric information of the current node can be determined based on the second plane position information and the third plane position information.

[0139] That is to say, in an embodiment of the present application, when the value of all_plane_flag is 0, if the value of occ_single_plane[0] obtained by decoding is 0, the value of occ_single_plane[1] is 1, and the value of occ_single_plane[2] is 1, then it is necessary to determine the reconstructed geometric information of the current node through the second plane position information of the current node in the second spatial direction and the third plane position information of the current node in the third spatial direction.

[0140] Exemplarily, a possible implementation is: if the first plane identification information indicates that the occupied sub-nodes of the current node do not constitute a plane in the first spatial direction, and the second plane identification information indicates that the occupied sub-nodes of the current node do not constitute a plane in the second spatial direction, and the third plane identification information indicates that the occupied sub-nodes of the current node constitute a plane in the third spatial direction, then the third plane position information of the current node in the third spatial direction can be further determined; and then the reconstructed geometric information of the current node can be determined based on the third plane position information.

[0141] That is to say, in an embodiment of the present application, when the value of all_plane_flag is 0, if the value of occ_single_plane[0] obtained by decoding is 0, the value of occ_single_plane[1] is 0, and the value of occ_single_plane[2] is 1, then it is necessary to determine the reconstructed geometric information of the current node through the third plane position information of the current node in the third spatial direction.

[0142] It should be noted that, in an embodiment of the present application, when acquiring plane position information, if the first plane identification information indicates that the occupied sub-nodes of the current node constitute a plane in the first spatial direction, the code stream is decoded to determine the first plane position information of the current node in the first spatial direction; otherwise, the decoding of the first plane position information is skipped; if the second plane identification information indicates that the occupied sub-nodes of the current node constitute a plane in the second spatial direction, the code stream is decoded to determine the second plane position information of the current node in the second spatial direction; otherwise, the decoding of the second plane position information is skipped; if the third plane identification information indicates that the occupied sub-nodes of the current node constitute a plane in the third spatial direction, the code stream is decoded to determine the third plane position information of the current node in the third spatial direction; otherwise, the decoding of the third plane position information is skipped.

[0143] It can be understood that in an embodiment of the present application, for one of the three preset spatial directions, the plane position information of the spatial direction can indicate the position of the plane formed by the occupied sub-nodes of the current node in the spatial direction, that is, the specific position of the plane formed by the occupied sub-nodes of the current node can be determined through the plane position information corresponding to the current node.

[0144] It should be noted that, in an embodiment of the present application, the plane position information can be used to determine the position of the plane formed by the occupied sub-nodes of the current node in the corresponding spatial direction. Specifically, on the encoding side, the encoder can assign a value to the plane position information. For example, when the value of the plane position information is a numerical value, the position of the plane formed by the occupied sub-nodes of the current node in the corresponding spatial direction is considered to be a high plane. When the value of the plane position information is another numerical value, the position of the plane formed by the occupied sub-nodes of the current node in the corresponding spatial direction is considered to be a low plane.

[0145] That is, in an embodiment of the present application, in the decoder, when determining the position of the plane formed by the occupied child nodes of the current node in a spatial direction, the position can be determined by the plane position information in that spatial direction. The plane position information can be represented by a flag bit, plane_position. plane_position[k] can be used to indicate the position of the plane formed by the occupied child nodes of the current node in the k+1th spatial direction, and the value of k can be 0, 1, or 2.

[0146] For example, in an embodiment of the present application, plane_position[0] may represent the first plane position information of the current node in the first spatial direction, plane_position[1] may represent the second plane position information of the current node in the second spatial direction, and plane_position[2] may represent the third plane position information of the current node in the third spatial direction.

[0147] It can be understood that, in the embodiment of the present application, the value of the plane position information plane_position[k] can be 0 or 1.

[0148] Further, in an embodiment of the present application, if the value of the plane position information is a first value (for example, 1), then it can be determined that the plane position information indicates that the occupied sub-nodes of the current node constitute a high plane in the corresponding spatial direction; if the value of the plane position information is a first value (for example, 0), then it can be determined that the plane position information indicates that the occupied sub-nodes of the current node constitute a low plane in the corresponding spatial direction.

[0149] Correspondingly, in an embodiment of the present application, if the determined plane position information is the flag plane_position[k], then, when the value of the flag plane_position[k] is 0, it can be determined that the plane position information indicates that the plane formed by the occupied child nodes of the current node in the k+1th spatial direction is a low plane, and when the value of the flag plane_position[k] is 1, it can be determined that the plane position information indicates that the plane formed by the occupied child nodes of the current node in the k+1th spatial direction is a high plane.

[0150] In summary, the point cloud decoding method proposed by the above steps 101 to 103 is a point cloud plane mode decoding method. The flag all_planar_flag (i.e., full plane identification information) is introduced in the point cloud geometric plane coding mode. Among them, when the value of all_planar_flag is 1, it means that the occupied sub-nodes of the current node constitute planes in the three preset spatial directions. At this time, the values ​​of the three plane identification information occ_single_plane[0], occ_single_plane[1], and occ_single_plane[2] can be directly inferred to be 1, that is, the three plane identification information of the current node in the three preset spatial directions can be directly defaulted to indicate that the occupied sub-nodes of the current node constitute planes in the three preset spatial directions, or, the three plane identification information of the current node in the three preset spatial directions can be directly set to indicate that the occupied sub-nodes of the current node constitute planes in the three preset spatial directions. When the value of all_planar_flag is 0, it means that the occupied subnodes of the current node do not form a plane in at least one spatial direction. At this time, the two plane identification information of two spatial directions of the three preset spatial directions can be first decoded to determine. If the values ​​of these two plane identification information are both 1, that is, these two plane identification information respectively indicate that the occupied subnodes of the current node form planes in these two spatial directions, then the value of the other plane identification information can be directly inferred to be 0, that is, the identification information of the current node in the third spatial direction can be directly defaulted to indicate that the occupied subnodes of the current node form a plane in the third spatial direction. Alternatively, the plane identification information of the current node in the third spatial direction can be directly set to indicate that the occupied subnodes of the current node form a plane in the third spatial direction. By decoding the plane flag bit in this way, the number of binary symbols required to transmit the plane flag bit occ_single_plane[axisIdx] can be significantly reduced, thereby improving the efficiency of plane mode geometric encoding and decoding.

[0151] For example, in an embodiment of the present application, the point cloud standard text before modification is as shown in Table 1, and the standard text after modification is as shown in Table 2.

[0152] Table 1

[0153]

[0154]

[0155] Table 2

[0156]

[0157]

[0158] It can be seen that before the modification, the grammatical structure is:

[0159]

[0160] After the modification, when the value of all_planar_flag is equal to 0, the corresponding syntax structure is:

[0161]

[0162] An embodiment of the present application discloses a point cloud decoding method, where a decoder decodes a code stream to determine full-plane identification information of a current node; if the full-plane identification information indicates that the occupied sub-nodes of the current node all constitute a plane in three preset spatial directions, the decoder then decodes the code stream to determine three plane position information of the current node in the three preset spatial directions, and determines the reconstructed geometric information of the current node based on the three plane position information; if the full-plane identification information indicates that the occupied sub-nodes of the current node do not all constitute a plane in the three preset spatial directions, the decoder then decodes the code stream to determine first plane identification information of the current node in the first spatial direction and second plane identification information of the current node in the second spatial direction, and determines the reconstructed geometric information of the current node based on the first plane identification information and the second plane identification information; wherein the first spatial direction and the second spatial direction are any two different directions among the three preset spatial directions. It can be seen that in the embodiment of the present application, the full plane identification information all_planar_flag is introduced, wherein, when the value of all_planar_flag is 1, it indicates that the occupied sub-nodes of the current node constitute a plane in the three preset spatial directions. In this case, there is no need to transmit the three plane identification information of the current node in the three preset spatial directions in the code stream; when the value of all_planar_flag is 0, it indicates that the occupied sub-nodes of the current node do not constitute a plane in at least one spatial direction. In this case, two plane identification information of two spatial directions of the three preset spatial directions can be determined first. If these two plane identification information respectively indicate that the occupied sub-nodes of the current node constitute a plane in these two spatial directions, then there is no need to transmit another plane identification information in the code stream. It can be seen that the point cloud encoding and decoding method proposed in the embodiment of the present application can reduce complexity, improve decoding efficiency, and enhance video compression performance.

[0163] Based on the above embodiment, another embodiment of the present application proposes a point cloud encoding method. FIG7 is a schematic diagram of an implementation flow of the point cloud encoding method proposed in the embodiment of the present application. As shown in FIG7 , the method for performing point cloud encoding processing by the encoder may include the following steps:

[0164] Step 201: Determine three plane identification information of the current node in three preset spatial directions.

[0165] In an embodiment of the present application, the encoder may first determine three plane identification information of the current node in three preset spatial directions respectively.

[0166] Furthermore, in an embodiment of the present application, the three preset spatial directions can be three different directions in space that are perpendicular to each other. Taking the spatial coordinate axis as an example, the three preset spatial directions can be the x-axis direction, the y-axis direction, and the z-axis direction.

[0167] It can be understood that, in the embodiment of the present application, the current node may be a point in the point cloud to be encoded.

[0168] It should be noted that in the embodiments of the present application, for one of the three preset spatial directions, the plane identification information of the spatial direction can indicate whether the occupied child nodes of the current node constitute a plane in the spatial direction. That is, through the plane identification information corresponding to the current node, it can be determined whether the plane formed by the occupied child nodes of the current node is perpendicular to the spatial direction. If the occupied child nodes of the current node do not constitute a plane in the spatial direction, then it can be considered that the plane formed by the occupied child nodes of the current node is perpendicular to the spatial direction.

[0169] It should be noted that, in an embodiment of the present application, the plane identification information can be used to determine whether the occupied sub-nodes of the current node constitute a plane in the corresponding spatial direction. Specifically, on the encoding side, the encoder can assign a value to the plane identification information. For example, when the value of the plane identification information is a numerical value, it is considered that the occupied sub-nodes of the current node constitute a plane in the corresponding spatial direction. When the value of the plane identification information is another numerical value, it is considered that the occupied sub-nodes of the current node do not constitute a plane in the corresponding spatial direction, that is, the plane formed by the occupied sub-nodes of the current node is perpendicular to the spatial direction.

[0170] That is, in embodiments of the present application, when determining whether the occupied child nodes of the current node form a plane in a spatial direction, the determination can be made based on the plane identification information in that spatial direction. The plane identification information can be represented by a flag bit, occ_single_plane. occ_single_plane[k] can be used to indicate whether the occupied child nodes of the current node form a plane in the k+1th spatial direction, where k can take values ​​of 0, 1, or 2.

[0171] For example, in an embodiment of the present application, occ_single_plane[0] may represent the first plane identification information of the current node in the first spatial direction, occ_single_plane[1] may represent the second plane identification information of the current node in the second spatial direction, and occ_single_plane[2] may represent the third plane identification information of the current node in the third spatial direction.

[0172] It can be understood that, in the embodiment of the present application, the value of the plane identification information occ_single_plane[k] can be 0 or 1.

[0173] Accordingly, in an embodiment of the present application, if the determined plane identification information is the flag bit occ_single_plane[k], then, when the value of the flag bit occ_single_plane[k] is 0, it can be determined that the plane identification information indicates that the occupied child nodes of the current node do not constitute a plane in the k+1th spatial direction, and when the value of the flag bit occ_single_plane[k] is 1, it can be determined that the plane identification information indicates that the occupied child nodes of the current node constitute a plane in the k+1th spatial direction.

[0174] Step 202: If the three plane identification information indicates that the occupied sub-nodes of the current node constitute a plane in the three preset spatial directions, then set the full plane identification information of the current node to indicate that the occupied sub-nodes of the current node constitute a plane in the three preset spatial directions, and write the full plane identification information into the code stream.

[0175] Step 203: If the three plane identification information indicates that the occupied sub-nodes of the current node do not fully constitute a plane in the three preset spatial directions, then set the full plane identification information of the current node to indicate that the occupied sub-nodes of the current node do not fully constitute a plane in the three preset spatial directions, and write the full plane identification information into the code stream.

[0176] In an embodiment of the present application, after determining the three plane identification information of the current node in the three preset spatial directions, if the three plane identification information indicates that the occupied subnodes of the current node all constitute planes in the three preset spatial directions, then the full plane identification information of the current node can be set to indicate that the occupied subnodes of the current node all constitute planes in the three preset spatial directions, and then the full plane identification information is written into the bitstream. Correspondingly, if the three plane identification information indicates that the occupied subnodes of the current node do not all constitute planes in the three preset spatial directions, then the full plane identification information of the current node can be set to indicate that the occupied subnodes of the current node do not all constitute planes in the three preset spatial directions, and then the full plane identification information is written into the bitstream (such as Signal all_plane_flag in a bitstream, where the flag bit all_plane_flag is used to represent the full plane identification information).

[0177] Furthermore, in an embodiment of the present application, after determining the full-plane identification information of the current node, the encoder may write the full-plane identification information into the bitstream. The full-plane identification information may indicate whether the occupied subnodes of the current node all form planes in three preset spatial directions. That is, based on the full-plane identification information corresponding to the current node, it can be determined whether the planes formed by the occupied subnodes of the current node are all perpendicular to the three preset spatial directions.

[0178] It can be understood that in an embodiment of the present application, if the occupied sub-nodes of the current node do not form a plane in one of the three preset spatial directions, then it can be considered that the plane formed by the occupied sub-nodes of the current node is perpendicular to the spatial direction.

[0179] It should be noted that, in an embodiment of the present application, the full-plane identification information can be used to determine whether the occupied sub-nodes of the current node all constitute a plane in the three preset spatial directions. Specifically, on the encoding side, the encoder can assign a value to the full-plane identification information. For example, when the value of the full-plane identification information is a numerical value, it is considered that the occupied sub-nodes of the current node all constitute a plane in the three preset spatial directions. When the value of the full-plane identification information is another numerical value, it is considered that the occupied sub-nodes of the current node do not all constitute a plane in the three preset spatial directions.

[0180] That is, in an embodiment of the present application, when determining whether the occupied child nodes of the current node all constitute a plane in the three preset spatial directions, the determination can be made based on the full-plane identification information. The full-plane identification information can be represented by a flag bit, all_plane_flag, or by another flag bit, not_all_plane_flag. Accordingly, the standard text corresponding to writing the full-plane identification information into the bitstream can be "Signal all_plane_flag in a bitstream" or "Signal not_all_plane_flag in a bitstream," which is not specifically limited in this application.

[0181] It can be understood that, in the embodiment of the present application, the value of the full-plane identification information can be 0 or 1.

[0182] Correspondingly, in an embodiment of the present application, if the determined full-plane identification information is the flag all_plane_flag, then, when the value of the flag all_plane_flag is 0, it can be determined that the full-plane identification information indicates that the occupied sub-nodes of the current node do not constitute a plane in the three preset spatial directions; when the value of the flag all_plane_flag is 1, it can be determined that the full-plane identification information indicates that the occupied sub-nodes of the current node constitute a plane in the three preset spatial directions.

[0183] Correspondingly, in an embodiment of the present application, if the determined full-plane identification information is the flag not_all_plane_flag, then, when the value of the flag not_all_plane_flag is 1, it can be determined that the full-plane identification information indicates that the occupied sub-nodes of the current node do not constitute a plane in the three preset spatial directions; when the value of the flag all_plane_flag is 0, it can be determined that the full-plane identification information indicates that the occupied sub-nodes of the current node constitute a plane in the three preset spatial directions.

[0184] Furthermore, in an embodiment of the present application, before obtaining the full-plane identification information, it is possible to first judge whether the current node meets the plane qualification judgment conditions in the three preset spatial directions. If the current node meets the plane qualification judgment conditions in all three preset spatial directions, then the full-plane identification information determination process is executed, and then the full-plane identification information is written into the code stream.

[0185] Accordingly, in an embodiment of the present application, after separately judging whether the current node meets the plane qualification judgment conditions in the three preset spatial directions, if the current node does not meet the plane qualification judgment conditions in all three preset spatial directions, the full plane identification information determination process will no longer be executed. Instead, for one or two spatial directions that meet the plane qualification judgment conditions, the plane identification information of the current node in the one or two spatial directions that meet the plane qualification judgment conditions will be selected and determined; and then, encoding processing can be performed based on the plane identification information of the current node in one or two spatial directions.

[0186] That is to say, in the embodiment of the present application, the prerequisite for determining the full plane identification information of the current node and writing it into the code stream is whether the current node meets the plane qualification judgment conditions in three preset spatial directions.

[0187] Furthermore, in an embodiment of the present application, after determining the full plane identification information of the current node, if the full plane identification information indicates that the occupied child nodes of the current node constitute a plane in three preset spatial directions, then the three plane position information of the current node in the three preset spatial directions are determined, and then the three plane position information can be written into the bitstream (such as Signal plane_position[k]in a bitstream, where the flag plane_position[k] is used to represent the plane position information in the k+1th spatial direction, and the value of k can be 0, 1, or 2).

[0188] It should be noted that, in an embodiment of the present application, if the full-plane identification information indicates that the occupied sub-nodes of the current node constitute a plane in the three preset spatial directions, then it can be said that the positions of the occupied sub-nodes of the current node constitute a plane in the three preset spatial directions, that is, the current node is determined to be a three-plane node, and therefore it can be considered that the occupied sub-nodes of the current node can constitute a plane in any preset spatial direction.

[0189] It can be understood that in an embodiment of the present application, for one of the three preset spatial directions, if it has been determined that the occupied sub-nodes of the current node can constitute a plane in the preset spatial direction, then it can be directly assumed that the plane identification information of the current node in the spatial direction indicates that the occupied sub-nodes of the current node constitute a plane in the spatial direction. Therefore, there is no need to perform encoding processing of the plane identification information of the current node in the spatial direction, but instead continue to determine the three plane position information of the current node in the three preset spatial directions, and then write these three plane position information into the code stream.

[0190] Furthermore, in an embodiment of the present application, if the full plane identification information indicates that the occupied sub-nodes of the current node constitute planes in the three preset spatial directions, then the encoding processing of the three plane identification information of the current node in the three preset spatial directions can be skipped, that is, the three plane identification information of the current node in the three preset spatial directions are not written into the code stream.

[0191] It should be noted that, in an embodiment of the present application, if the plane identification information of the current node in a spatial direction indicates that the occupied child nodes of the current node constitute a plane in the spatial direction, then the plane position information of the current node in the spatial direction can be further determined; if the plane identification information of the current node in a spatial direction indicates that the occupied child nodes of the current node do not constitute a plane in the spatial direction, then it can be determined that the current node does not have plane position information in the spatial direction.

[0192] It can be understood that when the value of all_plane_flag is 1, it can be determined that the current node constitutes a plane in the three preset spatial directions. At this time, at the encoding end, the three plane identification information in the three preset spatial directions is not written into the bitstream, that is, the bitstream does not contain the three plane identification information of the current node in the three preset spatial directions. Therefore, at the decoding end, the three plane identification information of the current node in the three preset spatial directions can be directly set to indicate that the occupied subnodes of the current node constitute a plane in the three preset spatial directions. That is, the value of the first plane identification information occ_single_plane[0] in the first spatial direction is set to 1, the value of the second plane identification information occ_single_plane[1] in the second spatial direction is set to 1, and the value of the third plane identification information occ_single_plane[2] in the third spatial direction is set to 1.

[0193] Furthermore, in an embodiment of the present application, after determining the full plane identification information of the current node, if the full plane identification information indicates that the occupied sub-nodes of the current node do not constitute a complete plane in the three preset spatial directions, then encoding processing can be further performed based on the first plane identification information of the current node in the first spatial direction and the second plane identification information of the current node in the second spatial direction.

[0194] It should be noted that in the embodiments of the present application, the first spatial direction and the second spatial direction are any two different directions from the three preset spatial directions. Assuming that the three preset spatial directions can be the x-axis direction, the y-axis direction, and the z-axis direction, respectively, the first spatial direction and the second spatial direction can be any two directions from the x-axis direction, the y-axis direction, and the z-axis direction. For example, the first spatial direction can be the x-axis direction, and the second spatial direction can be the y-axis direction; or the first spatial direction can be the z-axis direction, and the second spatial direction can be the y-axis direction; or the first spatial direction can be the z-axis direction, and the second spatial direction can be the x-axis direction, and so on. The embodiments of the present application do not specifically limit this.

[0195] Further, in an embodiment of the present application, if the full plane identification information indicates that the occupied sub-nodes of the current node do not constitute a plane in the three preset spatial directions, then it can be considered that for at least one of the three preset spatial directions, the occupied sub-nodes of the current node do not constitute a plane in the at least one spatial direction.

[0196] It can be understood that in the embodiments of the present application, the full plane identification information indicates that the occupied sub-nodes of the current node do not constitute a plane in the three preset spatial directions. Possible situations may include: 1. The occupied sub-nodes of the current node do not constitute a plane in two spatial directions, but only constitute a plane in another spatial direction; 2. The occupied sub-nodes of the current node constitute a plane in two spatial directions, but do not constitute a plane in another spatial direction.

[0197] It should be noted that, in an embodiment of the present application, if the first plane identification information indicates that the occupied sub-nodes of the current node do not constitute a plane in the first spatial direction, then it can be determined that the plane constituted by the occupied sub-nodes of the current node indicated by the first plane identification information is perpendicular to the first spatial direction; if the second plane identification information indicates that the occupied sub-nodes of the current node do not constitute a plane in the second spatial direction, then it can be determined that the plane constituted by the occupied sub-nodes of the current node indicated by the second plane identification information is perpendicular to the second spatial direction; if the third plane identification information indicates that the occupied sub-nodes of the current node do not constitute a plane in the third spatial direction, then it can be determined that the plane constituted by the occupied sub-nodes of the current node indicated by the third plane identification information is perpendicular to the third spatial direction.

[0198] That is, in an embodiment of the present application, if the plane identification information in a spatial direction indicates that the occupied child nodes of the current node do not constitute a plane in the spatial direction, then the plane identification information in the spatial direction can be considered to indicate that the plane formed by the occupied child nodes of the current node is perpendicular to the spatial direction. For example, if the plane identification information in the x-axis direction indicates that the occupied child nodes of the current node do not constitute a plane in the x-axis direction, then the plane identification information in the x-axis direction can be considered to indicate that the plane formed by the occupied child nodes of the current node is perpendicular to the x-axis direction.

[0199] Furthermore, in an embodiment of the present application, if the full plane identification information indicates that the occupied sub-nodes of the current node do not constitute a complete plane in the three preset spatial directions, then the first plane identification information of the current node in the first spatial direction and the second plane identification information of the current node in the second spatial direction can be determined first, and then it can be further determined based on the first plane identification information and the second plane identification information whether it is necessary to encode the third plane identification information of the current node in the third spatial direction.

[0200] Furthermore, in an embodiment of the present application, when encoding processing is performed according to the first plane identification information and the second plane identification information, if the first plane identification information indicates that the occupied child nodes of the current node constitute a plane in the first spatial direction, and at the same time, the second plane identification information indicates that the occupied child nodes of the current node constitute a plane in the second spatial direction, then the first plane position information of the current node in the first spatial direction and the second plane position information of the current node in the second spatial direction can be further determined; then encoding processing can be performed based on the first plane position information and the second plane position information, that is, after writing the first plane identification information into the code stream (such as Signal occ_single_plane[0]in a bitstream, wherein the flag bit occ_single_plane[0] is used to represent the first plane identification information), the first plane position information is written into the code stream (such as Signal plane_position[0]in a bitstream, wherein the flag bit plane_position[0] is used to represent the first plane position information); after writing the second plane identification information into the code stream (such as Signal occ_single_plane[1]in a bitstream, wherein the flag bit occ_single_plane[1] is used to represent the second plane identification information), and then the second plane position information is written into the code stream (such as Signal plane_position[1] in a bitstream, wherein the flag bit plane_position[1] is used to represent the second plane position information).

[0201] It can be understood that in an embodiment of the present application, if the value of occ_single_plane[0] is 1, it can be determined that the first plane identification information indicates that the occupied sub-nodes of the current node constitute a plane in the first spatial direction, and if the value of occ_single_plane[1] is 1, it can be determined that the second plane identification information indicates that the occupied sub-nodes of the current node constitute a plane in the second spatial direction.

[0202] It should be noted that, in an embodiment of the present application, after determining that the full plane identification information indicates that the occupied sub-nodes of the current node do not fully constitute a plane in the three preset spatial directions, if the first plane identification information and the second plane identification information indicate that the occupied sub-nodes of the current node constitute a plane in both the first spatial direction and the second spatial direction, then it can be directly assumed that the third plane identification information of the current node in the third spatial direction indicates that the occupied sub-nodes of the current node do not constitute a plane in the third spatial direction, that is, it can be directly assumed that the plane identification information in the third spatial direction indicates that the plane constituted by the occupied sub-nodes of the current node is perpendicular to the third spatial direction. Therefore, there is no need to perform encoding processing of the third plane identification information of the current node in the third spatial direction, that is, the third plane identification information of the current node in the third spatial direction is not written into the code stream, but the first plane position information of the current node in the first spatial direction and the second plane position information in the second spatial direction are continued to be determined. Then, the first plane position information can be written into the code stream after the first plane identification information is written into the code stream; and the second plane position information can be written into the code stream after the second plane identification information is written into the code stream.

[0203] It should be noted that in the embodiments of the present application, the third spatial direction may be one of the three preset spatial directions other than the first and second spatial directions. Assuming that the three preset spatial directions may be the x-axis, y-axis, and z-axis, if the first spatial direction may be the x-axis and the second spatial direction may be the y-axis, then the third spatial direction may be the z-axis; if the first spatial direction may be the z-axis and the second spatial direction may be the y-axis, then the third spatial direction may be the x-axis; this is not specifically limited in the embodiments of the present application.

[0204] That is to say, in an embodiment of the present application, when the full plane identification information indicates that the occupied sub-nodes of the current node do not constitute a plane in the three preset spatial directions, if the first plane identification information and the second plane identification information indicate that the occupied sub-nodes of the current node constitute a plane in both the first spatial direction and the second spatial direction, at this time, at the encoding end, the third plane identification information is not written into the bitstream, that is, there is no third plane identification information in the bitstream. Therefore, at the decoding end, the third plane identification information may not be decoded, but the third plane identification information may be directly set to indicate that the occupied sub-nodes of the current node do not constitute a plane in the third spatial direction, that is, the plane identification information in the third spatial direction may be set to indicate that the plane constituted by the occupied sub-nodes of the current node is perpendicular to the third spatial direction.

[0205] It can be seen that in the embodiment of the present application, in the embodiment of the present application, when the value of all_plane_flag is 0, if the value of occ_single_plane[0] is 1 and the value of occ_single_plane[1] is also 1, the encoding processing of occ_single_plane[2] can be directly skipped.

[0206] Furthermore, in an embodiment of the present application, when encoding processing is performed based on the first plane identification information and the second plane identification information, if the first plane identification information indicates that the occupied sub-nodes of the current node do not constitute a plane in the first spatial direction, and / or the second plane identification information indicates that the occupied sub-nodes of the current node do not constitute a plane in the second spatial direction, then the third plane identification information of the current node in the third spatial direction can be determined; and then encoding processing can be performed based on the third plane identification information.

[0207] It is understood that in the embodiments of the present application, if the value of occ_single_plane[0] is 0, it can be determined that the first plane identification information indicates that the occupied child nodes of the current node do not form a plane in the first spatial direction, and if the value of occ_single_plane[1] is 0, it can be determined that the second plane identification information indicates that the occupied child nodes of the current node do not form a plane in the second spatial direction. The third spatial direction can be a direction other than the first spatial direction and the second spatial direction among the three preset spatial directions.

[0208] It should be noted that, in an embodiment of the present application, after determining that the full plane identification information indicates that the occupied sub-nodes of the current node do not constitute a complete plane in the three preset spatial directions, if the first plane identification information and / or the second plane identification information indicate that the occupied sub-nodes of the current node do not constitute a plane in the first spatial direction and / or the second spatial direction, that is, indicating that the occupied sub-nodes of the current node do not constitute a plane in one or two spatial directions of the first spatial direction and the second spatial direction, then it is necessary to further determine the third plane identification information of the current node in the third spatial direction, and then determine whether the occupied sub-nodes of the current node constitute a plane in the third spatial direction.

[0209] That is to say, in an embodiment of the present application, when the value of all_plane_flag is 0, if the value of occ_single_plane[0] is 0, and / or the value of occ_single_plane[1] is 0, that is, the value of occ_single_plane[0] and the value of occ_single_plane[1] are not both 1, then it is necessary to further determine occ_single_plane[2].

[0210] Exemplarily, a possible implementation is: if the first plane identification information indicates that the occupied sub-nodes of the current node constitute a plane in the first spatial direction, and the second plane identification information indicates that the occupied sub-nodes of the current node do not constitute a plane in the second spatial direction, and the third plane identification information indicates that the occupied sub-nodes of the current node do not constitute a plane in the third spatial direction, then the first plane position information of the current node in the first spatial direction can be further determined; and then encoding processing can be performed based on the first plane position information, that is, the first plane position information is written into the code stream after the first plane identification information is written into the code stream.

[0211] That is to say, in an embodiment of the present application, when the value of all_plane_flag is 0, if the value of occ_single_plane[0] is 1, the value of occ_single_plane[1] is 0, and the value of occ_single_plane[2] is 0, then the first plane position information needs to be written into the code stream after the first plane identification information is written into the code stream.

[0212] Exemplarily, a possible implementation is: if the first plane identification information indicates that the occupied sub-nodes of the current node constitute a plane in the first spatial direction, and the second plane identification information indicates that the occupied sub-nodes of the current node do not constitute a plane in the second spatial direction, and the third plane identification information indicates that the occupied sub-nodes of the current node constitute a plane in the third spatial direction, then the first plane position information of the current node in the first spatial direction and the third plane position information of the current node in the third spatial direction can be further determined; then encoding processing can be performed based on the first plane position information and the third plane position information, that is, the first plane position information is written into the code stream after the first plane identification information is written into the code stream, and the third plane position information is written into the code stream after the third plane identification information is written into the code stream.

[0213] That is, in an embodiment of the present application, when the value of all_plane_flag is 0, if the value of occ_single_plane[0] is 1, the value of occ_single_plane[1] is 0, and the value of occ_single_plane[2] is 1, then it is necessary to write the first plane position information into the bitstream after writing the first plane identification information into the bitstream, and write the third plane position information into the bitstream (such as Signal occ_single_plane[2]in a bitstream, wherein the flag bit occ_single_plane[2] is used to represent the third plane identification information) after writing the third plane position information into the bitstream (such as Signal plane_position[2]in a bitstream, wherein the flag bit plane_position[2] is used to represent the third plane position information).

[0214] Exemplarily, a possible implementation is: if the first plane identification information indicates that the occupied sub-nodes of the current node do not constitute a plane in the first spatial direction, and the second plane identification information indicates that the occupied sub-nodes of the current node constitute a plane in the second spatial direction, and the third plane identification information indicates that the occupied sub-nodes of the current node do not constitute a plane in the third spatial direction, then the second plane position information of the current node in the second spatial direction can be further determined; and then encoding processing can be performed based on the second plane position information, that is, the second plane position information is written into the code stream after the second plane identification information is written into the code stream.

[0215] That is to say, in an embodiment of the present application, when the value of all_plane_flag is 0, if the value of occ_single_plane[0] is 0, the value of occ_single_plane[1] is 1, and the value of occ_single_plane[2] is 0, then the second plane position information needs to be written into the code stream after the second plane identification information is written into the code stream.

[0216] Exemplarily, a possible implementation is: if the first plane identification information indicates that the occupied sub-nodes of the current node do not constitute a plane in the first spatial direction, and the second plane identification information indicates that the occupied sub-nodes of the current node constitute a plane in the second spatial direction, and the third plane identification information indicates that the occupied sub-nodes of the current node constitute a plane in the third spatial direction, then the second plane position information of the current node in the second spatial direction and the third plane position information of the current node in the third spatial direction can be further determined; then encoding processing can be performed based on the second plane position information and the third plane position information, that is, the second plane position information is written into the code stream after the second plane identification information is written into the code stream, and the third plane position information is written into the code stream after the third plane identification information is written into the code stream.

[0217] That is to say, in an embodiment of the present application, when the value of all_plane_flag is 0, if the value of occ_single_plane[0] is 0, the value of occ_single_plane[1] is 1, and the value of occ_single_plane[2] is 1, then the second plane position information needs to be written into the code stream after the second plane identification information is written into the code stream, and the third plane position information needs to be written into the code stream after the third plane identification information is written into the code stream.

[0218] Exemplarily, a possible implementation is: if the first plane identification information indicates that the occupied sub-nodes of the current node do not constitute a plane in the first spatial direction, and the second plane identification information indicates that the occupied sub-nodes of the current node do not constitute a plane in the second spatial direction, and the third plane identification information indicates that the occupied sub-nodes of the current node constitute a plane in the third spatial direction, then the third plane position information of the current node in the third spatial direction can be further determined; and then encoding processing can be performed based on the third plane position information, that is, the third plane position information is written into the code stream after the third plane identification information is written into the code stream.

[0219] That is to say, in an embodiment of the present application, when the value of all_plane_flag is 0, if the value of occ_single_plane[0] is 0, the value of occ_single_plane[1] is 0, and the value of occ_single_plane[2] is 1, then the third plane position information needs to be written into the code stream after the third plane identification information is written into the code stream.

[0220] It should be noted that, in an embodiment of the present application, when performing encoding processing of plane position information, if the first plane identification information indicates that the occupied sub-nodes of the current node constitute a plane in the first spatial direction, then after encoding the first plane identification information, the first plane position information of the current node in the first spatial direction is encoded; otherwise, after encoding the first plane identification information, the encoding of the first plane position information is skipped; if the second plane identification information indicates that the occupied sub-nodes of the current node constitute a plane in the second spatial direction, then after encoding the second plane identification information, the second plane position information of the current node in the second spatial direction is encoded; otherwise, after encoding the second plane identification information, the encoding of the second plane position information is skipped; if the third plane identification information indicates that the occupied sub-nodes of the current node constitute a plane in the third spatial direction, then after encoding the third plane identification information, the third plane position information of the current node in the third spatial direction is encoded; otherwise, after encoding the third plane identification information, the encoding of the third plane position information is skipped.

[0221] It can be understood that in an embodiment of the present application, for one of the three preset spatial directions, the plane position information of the spatial direction can indicate the position of the plane formed by the occupied sub-nodes of the current node in the spatial direction, that is, the specific position of the plane formed by the occupied sub-nodes of the current node can be determined through the plane position information corresponding to the current node.

[0222] It should be noted that, in an embodiment of the present application, the plane position information can be used to determine the position of the plane formed by the occupied sub-nodes of the current node in the corresponding spatial direction. Specifically, on the encoding side, the encoder can assign a value to the plane position information. For example, when the value of the plane position information is a numerical value, the position of the plane formed by the occupied sub-nodes of the current node in the corresponding spatial direction is considered to be a high plane. When the value of the plane position information is another numerical value, the position of the plane formed by the occupied sub-nodes of the current node in the corresponding spatial direction is considered to be a low plane.

[0223] That is, in an embodiment of the present application, when determining the position of the plane formed by the occupied child nodes of the current node in a spatial direction, the position can be determined by the plane position information in that spatial direction. The plane position information can be represented by a flag bit, plane_position. plane_position[k] can be used to indicate the position of the plane formed by the occupied child nodes of the current node in the k+1th spatial direction, and the value of k can be 0, 1, or 2.

[0224] For example, in an embodiment of the present application, plane_position[0] may represent the first plane position information of the current node in the first spatial direction, plane_position[1] may represent the second plane position information of the current node in the second spatial direction, and plane_position[2] may represent the third plane position information of the current node in the third spatial direction.

[0225] It can be understood that, in the embodiment of the present application, the value of the plane position information plane_position[k] can be 0 or 1.

[0226] Further, in an embodiment of the present application, if the value of the plane position information is a first value (for example, 1), then it can be determined that the plane position information indicates that the occupied sub-nodes of the current node constitute a high plane in the corresponding spatial direction; if the value of the plane position information is a first value (for example, 0), then it can be determined that the plane position information indicates that the occupied sub-nodes of the current node constitute a low plane in the corresponding spatial direction.

[0227] Correspondingly, in an embodiment of the present application, if the determined plane position information is the flag plane_position[k], then, when the value of the flag plane_position[k] is 0, it can be determined that the plane position information indicates that the plane formed by the occupied child nodes of the current node in the k+1th spatial direction is a low plane, and when the value of the flag plane_position[k] is 1, it can be determined that the plane position information indicates that the plane formed by the occupied child nodes of the current node in the k+1th spatial direction is a high plane.

[0228] In summary, the point cloud coding method proposed by the above steps 201 to 203 is a point cloud plane mode coding method. The flag all_planar_flag (i.e., full plane identification information) is introduced into the point cloud geometric plane coding mode. Among them, when the value of all_planar_flag is 1, it indicates that the occupied sub-nodes of the current node constitute planes in the three preset spatial directions. At this time, the values ​​of the three plane identification information occ_single_plane[0], occ_single_plane[1], and occ_single_plane[2] can be directly inferred to be 1. Therefore, the encoding end can not write the three plane identification information into the bitstream, and on the decoding side, the three plane identification information of the current node in the three preset spatial directions can be directly defaulted to indicate that the occupied sub-nodes of the current node constitute planes in the three preset spatial directions, or the three plane identification information of the current node in the three preset spatial directions can be directly set to indicate that the occupied sub-nodes of the current node constitute planes in the three preset spatial directions. When the value of all_planar_flag is 0, it indicates that the occupied subnodes of the current node do not form a plane in at least one spatial direction. In this case, two plane identification information for two of the three preset spatial directions can be determined first. If the values ​​of these two plane identification information are both 1, that is, the two plane identification information respectively indicate that the occupied subnodes of the current node form a plane in these two spatial directions, then the value of the other plane identification information can be directly inferred to be 0. Therefore, the encoder can not write the plane identification information in the third spatial direction into the bitstream. On the decoder side, it can directly default to the identification information of the current node in the third spatial direction to indicate that the occupied subnodes of the current node form a plane in the third spatial direction. Alternatively, the plane identification information of the current node in the third spatial direction can be directly set to indicate that the occupied subnodes of the current node form a plane in the third spatial direction. By encoding the plane flag bit in this way, the number of binary symbols required to transmit the plane flag bit occ_single_plane[axisIdx] can be significantly reduced, thereby improving the efficiency of plane mode geometric encoding and decoding.

[0229] An embodiment of the present application discloses a point cloud encoding method, which determines three plane identification information of a current node in three preset spatial directions; if the three plane identification information indicates that the occupied sub-nodes of the current node all constitute planes in the three preset spatial directions, then the full plane identification information of the current node is set to indicate that the occupied sub-nodes of the current node all constitute planes in the three preset spatial directions, and the full plane identification information is written into a code stream; if the three plane identification information indicates that the occupied sub-nodes of the current node do not all constitute planes in the three preset spatial directions, then the full plane identification information of the current node is set to indicate that the occupied sub-nodes of the current node do not all constitute planes in the three preset spatial directions, and the full plane identification information is written into the code stream. It can be seen that in the embodiment of the present application, the full plane identification information all_planar_flag is introduced, wherein, when the value of all_planar_flag is 1, it indicates that the occupied sub-nodes of the current node constitute a plane in the three preset spatial directions. In this case, there is no need to transmit the three plane identification information of the current node in the three preset spatial directions in the code stream; when the value of all_planar_flag is 0, it indicates that the occupied sub-nodes of the current node do not constitute a plane in at least one spatial direction. In this case, two plane identification information of two spatial directions of the three preset spatial directions can be determined first. If these two plane identification information respectively indicate that the occupied sub-nodes of the current node constitute a plane in these two spatial directions, then there is no need to transmit another plane identification information in the code stream. It can be seen that the point cloud encoding and decoding method proposed in the embodiment of the present application can reduce complexity, improve decoding efficiency, and enhance video compression performance.

[0230] Based on the above embodiment, another embodiment of the present application provides a point cloud encoding method and a point cloud decoding method. In which, at the encoding end, if the current node meets the plane qualification criteria in three directions (three preset spatial directions, such as the x-axis direction, the y-axis direction, and the z-axis direction), then the all_planar_flag (all plane identification information) can be encoded.

[0231] For example, if all_planar_flag is 1, then the plane position information plane_position[0], plane_position[1], and plane_position[2] in three directions can be calculated based on the occupancy information of the occupied child nodes of the current node, and the plane position information can be encoded. If all_planar_flag is 0, the plane identification information occ_single_plane[0] and occ_single_plane[1] in two directions can be encoded first, and occ_single_plane[2] can be inferred based on occ_single_plane[0] and occ_single_plane[1].

[0232] It can be understood that if occ_single_plane[0] and occ_single_plane[1] are both 1, occ_single_plane[0] and occ_single_plane[1] can be encoded as true, and plane position information plane_position[0] and plane_position[1] are calculated based on the occupancy information of the occupied child node of the current node, and the plane position information is encoded. If occ_single_plane[0] and occ_single_plane[1] are not both 1, occ_single_plane[0], occ_single_plane[1] and occ_single_plane[2] are encoded respectively, and when occ_single_plane[axisIdx] is 1, plane position information plane_position[axisIdx] is calculated and the plane position information is encoded. Where 0≤axisIdx≤2.

[0233] If the current node does not meet the plane qualification criteria in all three directions, the respective plane flags occ_single_plane[axisIdx] and plane positions plane_position[axisIdx] are determined and encoded based on whether the plane qualification criteria are met in each direction.

[0234] Correspondingly, at the decoding end, if the current node meets the plane qualification conditions in all three directions, the all_planar_flag is decoded.

[0235] For example, if all_planar_flag is 1, occ_single_plane[0], occ_single_plane[1], and occ_single_plane[2] are directly inferred to be 1. Alternatively, occ_single_plane[0], occ_single_plane[1], and occ_single_plane[2] can be set to 1, and then the plane position information plane_position[0], plane_position[1], and plane_position[2] can be decoded from the bitstream. If all_planar_flag is 0, occ_single_plane[0] and occ_single_plane[1] are decoded from the bitstream.

[0236] It is understandable that if occ_single_plane[0] and occ_single_plane[1] are both 1, occ_single_plane[2] is directly inferred to be 0. Alternatively, occ_single_plane[2] can be set to 0, and then the plane position information plane_position[0] and plane_position[1] can be decoded from the bitstream. If occ_single_plane[0] and occ_single_plane[1] are not both 1, occ_single_plane[2] is decoded from the bitstream, and depending on whether occ_single_plane[axisIdx] is 1, the plane position information plane_position[axisIdx] is decoded from the bitstream accordingly. Where 0≤axisIdx≤2.

[0237] If the current node does not meet the plane qualification criteria in all three directions, then the respective plane flags occ_single_plane[axisIdx] and plane positions plane_position[axisIdx] are extracted from the bitstream according to whether the plane qualification criteria are met in each direction.

[0238] Furthermore, in an embodiment of the present application, FIG8 is a schematic diagram of a point cloud encoding method proposed in an embodiment of the present application. As shown in FIG8 , after determining whether the current node meets the plane qualification determination conditions in all three directions, if the plane qualification determination conditions are met in all three directions, then all_planar_flag can be encoded. Wherein, it is determined whether all_planar_flag is 1. If all_planar_flag is 1, it is determined that the full plane identification information indicates that the occupied child nodes of the current node constitute a plane in the three preset spatial directions. At this time, there is no need to encode occ_single_plane[0], occ_single_plane[1], and occ_single_plane[2], but directly encode the plane position information plane_position[0], plane_position[1], and plane_position[2]. In this case, the three binary symbols originally encoding occ_single_plane[0], occ_single_plane[1], and occ_single_plane[2] are represented by one binary symbol all_planar_flag.

[0239] Furthermore, if all_planar_flag is 0, the plane identification information occ_single_plane[0] and occ_single_plane[1] in two directions can be encoded first, wherein it is determined whether occ_single_plane[0] is 1. If occ_single_plane[0] is 1, the plane position information plane_position[0] is encoded; then, it is determined whether occ_single_plane[1] is 1. If occ_single_plane[1] is 1, the plane position information plane_position[1] is encoded.

[0240] Furthermore, occ_single_plane[2] may be inferred based on occ_single_plane[0] and occ_single_plane[1]. Among them, it can be first determined whether occ_single_plane[0] and occ_single_plane[1] are both 1. If so, that is, occ_single_plane[0] and occ_single_plane[1] are both 1, then there is no need to encode occ_single_plane[2], because at this time occ_single_plane[2] must be 0. At this time, the plane position information plane_position[0] and plane_position[1] can be calculated based on the occupancy information of the occupied child node of the current node, and the plane position information is encoded; if not, that is, occ_single_plane[0] and occ_single_plane[1] are not both 1, then occ_single_plane[2] is encoded, and it is determined whether occ_single_plane[2] is 1. If so, that is, when occ_single_plane[2] is 1, the plane position information plane_position[2] is calculated and the plane position information is encoded.

[0241] If the current node does not meet the plane qualification criteria in all three directions, the respective plane flags occ_single_plane[axisIdx] and plane position information plane_position[axisIdx] are determined and encoded based on whether the respective directions meet the plane qualification criteria.

[0242] Further, in an embodiment of the present application, FIG9 is a schematic diagram of a point cloud decoding method proposed in an embodiment of the present application. As shown in FIG9 , after determining whether the current node meets the plane qualification determination conditions in all three directions, if the plane qualification determination conditions are met in all three directions, then all_planar_flag can be decoded. Wherein, it is determined whether all_planar_flag is 1. If all_planar_flag is 1, it is determined that the full plane identification information indicates that the occupied child nodes of the current node constitute a plane in the three preset spatial directions, indicating that the current node is a three-plane (that is, the positions of the occupied child nodes of the current node constitute a plane in the three directions). Therefore, the three plane identification information occ_single_plane[0], occ_single_plane[1] and occ_single_plane[2] can be directly set to 1, and the three plane position information plane_position[0], plane_position[1] and plane_position[2] can be decoded from the code stream.

[0243] Furthermore, if all_planar_flag is 0, the plane identification information occ_single_plane[0] and occ_single_plane[1] in both directions can be decoded from the bitstream first. Determine whether occ_single_plane[0] is 1. If occ_single_plane[0] is 1, decode the plane position information plane_position[0]. Then, determine whether occ_single_plane[1] is 1. If occ_single_plane[1] is 1, decode the plane position information plane_position[1].

[0244] Furthermore, it is possible to first determine whether both occ_single_plane[0] and occ_single_plane[1] are 1. If so, that is, both occ_single_plane[0] and occ_single_plane[1] are 1, then there is no need to decode occ_single_plane[2], but directly set occ_single_plane[2] to 0. If not, that is, both occ_single_plane[0] and occ_single_plane[1] are not 1, then decode occ_single_plane[2] and determine whether occ_single_plane[2] is 1. If so, that is, when occ_single_plane[2] is 1, decode the plane position information plane_position[2] accordingly from the bitstream.

[0245] If the current node does not meet the plane qualification criteria in all three directions, then the respective plane flag occ_single_plane[axisIdx] and plane position information plane_position[axisIdx] are extracted from the bitstream based on whether each direction meets the plane qualification criteria.

[0246] In summary, through the point cloud encoding method and point cloud decoding method proposed in the embodiment of the present application, the flag all_planar_flag (i.e., full plane identification information) is introduced into the point cloud geometric plane encoding mode. Wherein, when the value of all_planar_flag is 1, it indicates that the occupied sub-nodes of the current node constitute planes in the three preset spatial directions. At this time, the values ​​of the three plane identification information occ_single_plane[0], occ_single_plane[1], and occ_single_plane[2] can be directly inferred to be 1, that is, the three plane identification information of the current node in the three preset spatial directions can be directly defaulted to indicate that the occupied sub-nodes of the current node constitute planes in the three preset spatial directions, or, the three plane identification information of the current node in the three preset spatial directions can be directly set to indicate that the occupied sub-nodes of the current node constitute planes in the three preset spatial directions. When the value of all_planar_flag is 0, it means that the occupied subnodes of the current node do not constitute a plane in at least one spatial direction. At this time, the two plane identification information of two spatial directions of the three preset spatial directions can be first decoded to determine. If the values ​​of these two plane identification information are both 1, that is, these two plane identification information respectively indicate that the occupied subnodes of the current node constitute planes in these two spatial directions, then the value of the other plane identification information can be directly inferred to be 0, that is, the identification information of the current node in the third spatial direction can be directly defaulted to indicate that the occupied subnodes of the current node constitute a plane in the third spatial direction, or the plane identification information of the current node in the third spatial direction can be directly set to indicate that the occupied subnodes of the current node constitute a plane in the third spatial direction. By encoding and decoding the plane flag bit in this way, the number of binary symbols required to transmit the plane flag bit occ_single_plane[axisIdx] can be significantly reduced, thereby improving the efficiency of plane mode geometry encoding and decoding.

[0247] An embodiment of the present application discloses a point cloud encoding and decoding method, wherein a decoder decodes a code stream to determine full-plane identification information of a current node; if the full-plane identification information indicates that the occupied sub-nodes of the current node all constitute a plane in three preset spatial directions, the decoder then decodes the code stream to determine three plane position information of the current node in the three preset spatial directions, and determines the reconstructed geometric information of the current node based on the three plane position information; if the full-plane identification information indicates that the occupied sub-nodes of the current node do not all constitute a plane in the three preset spatial directions, the decoder then decodes the code stream to determine first plane identification information of the current node in the first spatial direction and second plane identification information of the current node in the second spatial direction, and determines the reconstructed geometric information of the current node based on the first plane identification information and the second plane identification information; wherein the first spatial direction and the second spatial direction are any two different directions among the three preset spatial directions. Determine the three plane identification information of the current node in the three preset spatial directions; if the three plane identification information indicates that the occupied sub-nodes of the current node all constitute planes in the three preset spatial directions, set the full plane identification information of the current node to indicate that the occupied sub-nodes of the current node all constitute planes in the three preset spatial directions, and write the full plane identification information into the codestream; if the three plane identification information indicates that the occupied sub-nodes of the current node do not all constitute planes in the three preset spatial directions, set the full plane identification information of the current node to indicate that the occupied sub-nodes of the current node do not all constitute planes in the three preset spatial directions, and write the full plane identification information into the codestream. It can be seen that in the embodiment of the present application, the full plane identification information all_planar_flag is introduced, wherein, when the value of all_planar_flag is 1, it indicates that the occupied sub-nodes of the current node constitute a plane in the three preset spatial directions. In this case, there is no need to transmit the three plane identification information of the current node in the three preset spatial directions in the code stream; when the value of all_planar_flag is 0, it indicates that the occupied sub-nodes of the current node do not constitute a plane in at least one spatial direction. In this case, two plane identification information of two spatial directions of the three preset spatial directions can be determined first. If these two plane identification information respectively indicate that the occupied sub-nodes of the current node constitute a plane in these two spatial directions, then there is no need to transmit another plane identification information in the code stream. It can be seen that the point cloud encoding and decoding method proposed in the embodiment of the present application can reduce complexity, improve decoding efficiency, and enhance video compression performance.

[0248] Based on the above embodiment, in yet another embodiment of the present application, FIG10 is a schematic diagram of a structure of a decoder. As shown in FIG10 , the decoder 300 proposed in the embodiment of the present application may include: a decoding part 301, a first determining part 302,

[0249] The decoding part 301 is configured to decode the code stream;

[0250] The first determining part 302 is configured to determine the full plane identification information of the current node;

[0251] The decoding part 301 is further configured to decode the code stream if the full plane identification information indicates that the occupied child nodes of the current node all form planes in three preset spatial directions;

[0252] The first determining part 302 is further configured to determine three plane position information of the current node in the three preset spatial directions, and determine the reconstructed geometric information of the current node based on the three plane position information;

[0253] The decoding part 301 is further configured to decode the code stream if the full plane identification information indicates that the occupied child nodes of the current node do not fully constitute a plane in the three preset spatial directions;

[0254] The first determination part 302 is also configured to determine the first plane identification information of the current node in the first spatial direction and the second plane identification information of the current node in the second spatial direction, and determine the reconstructed geometric information of the current node based on the first plane identification information and the second plane identification information; wherein, the first spatial direction and the second spatial direction are any two different directions among the three preset spatial directions.

[0255] Figure 11 is a second schematic diagram of the composition structure of the decoder. As shown in Figure 11, the decoder 300 proposed in the embodiment of the present application may also include a first processor 303, a first memory 304 storing executable instructions of the first processor 303, a first communication interface 305, and a first bus 306 for connecting the first processor 303, the first memory 304 and the first communication interface 305.

[0256] Further, in an embodiment of the present application, the above-mentioned first processor 303 is used to decode the code stream and determine the full plane identification information of the current node; if the full plane identification information indicates that the occupied sub-nodes of the current node constitute a plane in the three preset spatial directions, then decode the code stream to determine the three plane position information of the current node in the three preset spatial directions, and determine the reconstructed geometric information of the current node based on the three plane position information; if the full plane identification information indicates that the occupied sub-nodes of the current node do not fully constitute a plane in the three preset spatial directions, then decode the code stream to determine the first plane identification information of the current node in the first spatial direction and the second plane identification information of the current node in the second spatial direction, and determine the reconstructed geometric information of the current node based on the first plane identification information and the second plane identification information; wherein, the first spatial direction and the second spatial direction are any two different directions among the three preset spatial directions.

[0257] FIG12 is a schematic diagram of the first structure of the encoder. As shown in FIG12 , the encoder 400 proposed in the embodiment of the present application may include: a second determining part 401, an encoding part 402,

[0258] The second determining portion 401 is configured to determine three plane identification information of the current node in three preset spatial directions; if the three plane identification information indicates that the occupied subnodes of the current node all constitute planes in the three preset spatial directions, then set the full plane identification information of the current node to indicate that the occupied subnodes of the current node all constitute planes in the three preset spatial directions;

[0259] The second determining portion 401 is further configured to set the full plane identification information of the current node to indicate that the occupied subnodes of the current node do not fully constitute a plane in the three preset spatial directions if the three plane identification information indicates that the occupied subnodes of the current node do not fully constitute a plane in the three preset spatial directions;

[0260] The encoding part 402 is configured to write the full-plane identification information into the code stream.

[0261] Figure 13 is a second schematic diagram of the composition structure of the encoder. As shown in Figure 13, the encoder 400 proposed in the embodiment of the present application may further include a second processor 403, a second memory 404 storing executable instructions of the second processor 403, a second communication interface 405, and a second bus 406 for connecting the second processor 403, the second memory 404 and the second communication interface 405.

[0262] Further, in an embodiment of the present application, the above-mentioned second processor 403 is used to determine the full-plane identification information of the current node and write the full-plane identification information into the code stream; if the full-plane identification information indicates that the occupied sub-nodes of the current node constitute a plane in the three preset spatial directions, then determine the three plane position information of the current node in the three preset spatial directions, and write the three plane position information into the code stream; if the full-plane identification information indicates that the occupied sub-nodes of the current node do not constitute a plane in the three preset spatial directions, then determine the first plane identification information of the current node in the first spatial direction and the second plane identification information of the current node in the second spatial direction, and perform encoding processing according to the first plane identification information and the second plane identification information; wherein, the first spatial direction and the second spatial direction are any two different directions among the three preset spatial directions.

[0263] It is understandable that in the embodiments of the present application, a "unit" can be a portion of a circuit, a portion of a processor, a portion of a program or software, etc., and of course it can also be a module, or it can be non-modular. Moreover, the various components in this embodiment can be integrated into a processing unit, or each unit can exist physically separately, or two or more units can be integrated into a single unit. The above-mentioned integrated units can be implemented in the form of hardware or in the form of software functional modules.

[0264] If the integrated unit is implemented as a software functional module and is not sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this embodiment, or the portion that contributes to the prior art, or all or part of the technical solution can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions for causing a computer device (which can be a personal computer, server, or network device, etc.) or a processor to execute all or part of the steps of the method described in this embodiment. The aforementioned storage medium includes various media that can store program code, such as a USB flash drive, a mobile hard drive, a read-only memory (ROM), a random access memory (RAM), a magnetic disk, or an optical disk.

[0265] It is understood that the memory in the embodiments of the present application may be a volatile memory or a non-volatile memory, or may include both volatile and non-volatile memories. Among them, the non-volatile memory may be a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), or a flash memory. The volatile memory may be a random access memory (RAM), which is used as an external cache. By way of example and not limitation, many forms of RAM are available, such as 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 RAM bus random access memory (DRRAM). The memory of the systems and methods described herein is intended to include, but is not limited to, these and any other suitable types of memory.

[0266] The processor may be an integrated circuit chip with signal processing capabilities. During implementation, each step of the above method can be completed by hardware integrated logic circuits in the processor or by software instructions. The above processor may be a general-purpose processor, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field programmable gate array (FPGA), or other programmable logic devices, discrete gate or transistor logic devices, or discrete hardware components. The various methods, steps, and logic block diagrams disclosed in the embodiments of this application can be implemented or executed. The general-purpose processor may be a microprocessor or any conventional processor. The steps of the method disclosed in the embodiments of this application can be directly implemented and executed by a hardware decoding processor, or by a combination of hardware and software modules in the decoding processor. The software module can be located in a storage medium mature in the art, such as random access memory, flash memory, read-only memory, programmable read-only memory, electrically erasable programmable memory, registers, etc. The storage medium is located in the memory, and the processor reads the information in the memory and, in conjunction with its hardware, completes the steps of the above method.

[0267] It is to be understood that these embodiments described in the present application can be implemented with hardware, software, firmware, middleware, microcode or its combination.For hardware implementation, the processing unit can be implemented in one or more application specific integrated circuits (Application Specific Integrated Circuits, ASIC), digital signal processor (Digital Signal Processing, DSP), digital signal processing equipment (DSP Device, DSPD), programmable logic device (Programmable Logic Device, PLD), field programmable gate array (Field-Programmable Gate Array, FPGA), general-purpose processor, controller, microcontroller, microprocessor, other electronic units for performing functions described in the present application or its combination.For software implementation, the technology described in the present application can be realized by the module (such as process, function etc.) that performs functions described in the present application. The software code can be stored in a memory and executed by a processor. The memory can be implemented in the processor or outside the processor.

[0268] An embodiment of the present application provides a codec, wherein the decoder decodes a code stream and determines full-plane identification information of a current node; if the full-plane identification information indicates that the occupied sub-nodes of the current node all constitute a plane in three preset spatial directions, the decoder decodes the code stream and determines three plane position information of the current node in the three preset spatial directions, and determines the reconstructed geometric information of the current node based on the three plane position information; if the full-plane identification information indicates that the occupied sub-nodes of the current node do not all constitute a plane in the three preset spatial directions, the decoder decodes the code stream and determines first plane identification information of the current node in the first spatial direction and second plane identification information of the current node in the second spatial direction, and determines the reconstructed geometric information of the current node based on the first plane identification information and the second plane identification information; wherein the first spatial direction and the second spatial direction are any two different directions among the three preset spatial directions. The encoder determines three plane identification information of the current node in three preset spatial directions; if the three plane identification information indicates that the occupied sub-nodes of the current node all constitute planes in the three preset spatial directions, the full plane identification information of the current node is set to indicate that the occupied sub-nodes of the current node all constitute planes in the three preset spatial directions, and the full plane identification information is written into the bitstream; if the three plane identification information indicates that the occupied sub-nodes of the current node do not all constitute planes in the three preset spatial directions, the full plane identification information of the current node is set to indicate that the occupied sub-nodes of the current node do not all constitute planes in the three preset spatial directions, and the full plane identification information is written into the bitstream. It can be seen that in the embodiment of the present application, the full plane identification information all_planar_flag is introduced, wherein, when the value of all_planar_flag is 1, it indicates that the occupied sub-nodes of the current node constitute a plane in the three preset spatial directions. In this case, there is no need to transmit the three plane identification information of the current node in the three preset spatial directions in the code stream; when the value of all_planar_flag is 0, it indicates that the occupied sub-nodes of the current node do not constitute a plane in at least one spatial direction. In this case, two plane identification information of two spatial directions of the three preset spatial directions can be determined first. If these two plane identification information respectively indicate that the occupied sub-nodes of the current node constitute a plane in these two spatial directions, then there is no need to transmit another plane identification information in the code stream. It can be seen that the point cloud encoding and decoding method proposed in the embodiment of the present application can reduce complexity, improve decoding efficiency, and enhance video compression performance.

[0269] An embodiment of the present application provides a computer storage medium, which is applied to an encoder 300. The computer storage medium stores a point cloud decoding program. When the point cloud decoding program is executed by a processor, the method described in any one of the aforementioned embodiments is implemented.

[0270] Specifically, the program instructions corresponding to a point cloud decoding method in this embodiment can be stored on a storage medium such as a CD, a hard disk, or a USB flash drive. When the program instructions corresponding to a point cloud decoding method in the storage medium are read or executed by an electronic device, the following steps are included:

[0271] Decode the code stream to determine the full plane identification information of the current node;

[0272] If the full plane identification information indicates that the occupied child nodes of the current node all constitute planes in three preset spatial directions, decoding the bitstream, determining three plane position information of the current node in the three preset spatial directions, and determining reconstructed geometric information of the current node based on the three plane position information;

[0273] If the full plane identification information indicates that the occupied sub-nodes of the current node do not fully constitute a plane in the three preset spatial directions, the code stream is decoded to determine the first plane identification information of the current node in the first spatial direction and the second plane identification information of the current node in the second spatial direction, and the reconstructed geometric information of the current node is determined based on the first plane identification information and the second plane identification information; wherein, the first spatial direction and the second spatial direction are any two different directions among the three preset spatial directions.

[0274] An embodiment of the present application provides a computer storage medium, which is applied to an encoder 400. The computer storage medium stores a point cloud encoding program. When the point cloud encoding program is executed by a processor, the method described in any one of the aforementioned embodiments is implemented.

[0275] Specifically, the program instructions corresponding to a point cloud encoding method in this embodiment can be stored on a storage medium such as a CD, a hard disk, or a USB flash drive. When the program instructions corresponding to a point cloud encoding method in the storage medium are read or executed by an electronic device, the following steps are included:

[0276] Determine the full plane identification information of the current node, and write the full plane identification information into the code stream;

[0277] If the full-plane identification information indicates that the occupied child nodes of the current node all constitute planes in three preset spatial directions, determining three plane position information of the current node in the three preset spatial directions, and writing the three plane position information into the bitstream;

[0278] If the full plane identification information indicates that the occupied sub-nodes of the current node do not constitute a complete plane in the three preset spatial directions, the first plane identification information of the current node in the first spatial direction and the second plane identification information of the current node in the second spatial direction are determined, and encoding processing is performed based on the first plane identification information and the second plane identification information; wherein, the first spatial direction and the second spatial direction are any two different directions among the three preset spatial directions.

[0279] It should be noted that, in the embodiments of the present application, the terms "comprises," "includes," or any other variations thereof are intended to encompass non-exclusive inclusion, such that a process, method, article, or apparatus comprising a series of elements includes not only those elements, but also other elements not explicitly listed, or elements inherent to such process, method, article, or apparatus. In the absence of further limitations, an element defined by the phrase "comprising a ..." does not exclude the presence of other identical elements in the process, method, article, or apparatus comprising the element.

[0280] The serial numbers of the above-mentioned embodiments of the present application are for description only and do not represent the advantages or disadvantages of the embodiments.

[0281] The methods disclosed in the several method embodiments provided in this application can be arbitrarily combined without conflict to obtain new method embodiments.

[0282] The features disclosed in the several product embodiments provided in this application can be arbitrarily combined without conflict to obtain new product embodiments.

[0283] The features disclosed in the several method or device embodiments provided in this application can be arbitrarily combined without conflict to obtain new method embodiments or device embodiments.

[0284] The above description is merely a specific embodiment of the present application, but the scope of protection of the present application is not limited thereto. Any changes or substitutions that can be easily conceived by a person skilled in the art within the technical scope disclosed in this application should be included in the scope of protection of this application. Therefore, the scope of protection of this application should be based on the scope of protection of the claims. Industrial Applicability

[0285] An embodiment of the present application discloses a point cloud encoding and decoding method, a codec, and a computer storage medium. The decoder decodes a code stream to determine the full plane identification information of the current node; if the full plane identification information indicates that the occupied sub-nodes of the current node all constitute a plane in three preset spatial directions, the decoder then decodes the code stream to determine the three plane position information of the current node in the three preset spatial directions, and determines the reconstructed geometric information of the current node based on the three plane position information; if the full plane identification information indicates that the occupied sub-nodes of the current node do not all constitute a plane in the three preset spatial directions, the decoder then decodes the code stream to determine the first plane identification information of the current node in the first spatial direction and the second plane identification information of the current node in the second spatial direction, and determines the reconstructed geometric information of the current node based on the first plane identification information and the second plane identification information; wherein the first spatial direction and the second spatial direction are any two different directions among the three preset spatial directions. Determine the three plane identification information of the current node in the three preset spatial directions; if the three plane identification information indicates that the occupied sub-nodes of the current node all constitute planes in the three preset spatial directions, set the full plane identification information of the current node to indicate that the occupied sub-nodes of the current node all constitute planes in the three preset spatial directions, and write the full plane identification information into the codestream; if the three plane identification information indicates that the occupied sub-nodes of the current node do not all constitute planes in the three preset spatial directions, set the full plane identification information of the current node to indicate that the occupied sub-nodes of the current node do not all constitute planes in the three preset spatial directions, and write the full plane identification information into the codestream. It can be seen that in the embodiment of the present application, the full plane identification information all_planar_flag is introduced, wherein, when the value of all_planar_flag is 1, it indicates that the occupied sub-nodes of the current node constitute a plane in the three preset spatial directions. In this case, there is no need to transmit the three plane identification information of the current node in the three preset spatial directions in the code stream; when the value of all_planar_flag is 0, it indicates that the occupied sub-nodes of the current node do not constitute a plane in at least one spatial direction. In this case, two plane identification information of two spatial directions of the three preset spatial directions can be determined first. If these two plane identification information respectively indicate that the occupied sub-nodes of the current node constitute a plane in these two spatial directions, then there is no need to transmit another plane identification information in the code stream. It can be seen that the point cloud encoding and decoding method proposed in the embodiment of the present application can reduce complexity, improve decoding efficiency, and enhance video compression performance.

Claims

1. A point cloud decoding method, applied to a decoder, comprising: Decode the code stream to determine the full plane identification information of the current node; If the full plane identification information indicates that the occupied child nodes of the current node all constitute planes in three preset spatial directions, decoding the bitstream, determining three plane position information of the current node in the three preset spatial directions, and determining reconstructed geometric information of the current node based on the three plane position information; If the full plane identification information indicates that the occupied sub-nodes of the current node do not fully constitute a plane in the three preset spatial directions, the code stream is decoded to determine the first plane identification information of the current node in the first spatial direction and the second plane identification information of the current node in the second spatial direction, and the reconstructed geometric information of the current node is determined based on the first plane identification information and the second plane identification information; wherein, the first spatial direction and the second spatial direction are any two different directions among the three preset spatial directions.

2. The method according to claim 1, wherein The method further comprises: If the full plane identification information indicates that the occupied sub-nodes of the current node constitute planes in three preset spatial directions, then the three plane identification information of the current node in the three preset spatial directions are set to indicate that the occupied sub-nodes of the current node constitute planes in the three preset spatial directions.

3. The method according to claim 1, wherein The method further comprises: If the first plane identification information indicates that the occupied child nodes of the current node constitute a plane in the first spatial direction, and the second plane identification information indicates that the occupied child nodes of the current node constitute a plane in the second spatial direction, decoding the codestream to determine first plane position information of the current node in the first spatial direction and second plane position information of the current node in the second spatial direction; Reconstructed geometric information of the current node is determined based on the first plane position information and the second plane position information.

4. The method according to claim 3, wherein: The method further comprises: If the first plane identification information indicates that the occupied sub-nodes of the current node constitute a plane in the first spatial direction, and the second plane identification information indicates that the occupied sub-nodes of the current node constitute a plane in the second spatial direction, then the third plane identification information of the current node in the third spatial direction is set to indicate that the occupied sub-nodes of the current node do not constitute a plane in the third spatial direction; wherein the third spatial direction is one of the three preset spatial directions other than the first spatial direction and the second spatial direction.

5. The method according to claim 1, wherein The method further comprises: If the first plane identification information indicates that the occupied child nodes of the current node do not constitute a plane in the first spatial direction, and / or the second plane identification information indicates that the occupied child nodes of the current node do not constitute a plane in the second spatial direction, decoding the bitstream to determine third plane identification information of the current node in the third spatial direction; wherein the third spatial direction is one of the three preset spatial directions other than the first spatial direction and the second spatial direction; The reconstructed geometric information of the current node is determined according to the third plane identification information.

6. The method according to claim 5, wherein: The method further comprises: If the first plane identification information indicates that the occupied child nodes of the current node constitute a plane in the first spatial direction, and the second plane identification information indicates that the occupied child nodes of the current node do not constitute a plane in the second spatial direction, and the third plane identification information indicates that the occupied child nodes of the current node do not constitute a plane in the third spatial direction, determining first plane position information of the current node in the first spatial direction; and determining reconstructed geometric information of the current node based on the first plane position information; If the first plane identification information indicates that the occupied sub-nodes of the current node constitute a plane in the first spatial direction, and the second plane identification information indicates that the occupied sub-nodes of the current node do not constitute a plane in the second spatial direction, and the third plane identification information indicates that the occupied sub-nodes of the current node constitute a plane in the third spatial direction, then determine the first plane position information of the current node in the first spatial direction and the third plane position information of the current node in the third spatial direction; and determine the reconstructed geometric information of the current node based on the first plane position information and the third plane position information.

7. The method according to claim 5, wherein: The method further comprises: If the first plane identification information indicates that the occupied child nodes of the current node do not constitute a plane in the first spatial direction, and the second plane identification information indicates that the occupied child nodes of the current node constitute a plane in the second spatial direction, and the third plane identification information indicates that the occupied child nodes of the current node do not constitute a plane in the third spatial direction, determining second plane position information of the current node in the second spatial direction; and determining reconstructed geometric information of the current node based on the second plane position information; If the first plane identification information indicates that the occupied sub-nodes of the current node do not constitute a plane in the first spatial direction, and the second plane identification information indicates that the occupied sub-nodes of the current node constitute a plane in the second spatial direction, and the third plane identification information indicates that the occupied sub-nodes of the current node constitute a plane in the third spatial direction, then determine the second plane position information of the current node in the second spatial direction and the third plane position information of the current node in the third spatial direction; and determine the reconstructed geometric information of the current node based on the second plane position information and the third plane position information.

8. The method according to claim 5, wherein The method further comprises: If the first plane identification information indicates that the occupied sub-nodes of the current node do not constitute a plane in the first spatial direction, and the second plane identification information indicates that the occupied sub-nodes of the current node do not constitute a plane in the second spatial direction, and the third plane identification information indicates that the occupied sub-nodes of the current node constitute a plane in the third spatial direction, then determine the third plane position information of the current node in the third spatial direction; and determine the reconstructed geometric information of the current node based on the third plane position information.

9. The method according to claim 4 or 5, wherein: The method further comprises: If the first plane identification information indicates that the occupied child nodes of the current node constitute a plane in the first spatial direction, decoding the code stream to determine the first plane position information of the current node in the first spatial direction; otherwise, skipping decoding the first plane position information; If the second plane identification information indicates that the occupied child nodes of the current node constitute a plane in the second spatial direction, decoding the code stream to determine the second plane position information of the current node in the second spatial direction; otherwise, skipping decoding the second plane position information; If the third plane identification information indicates that the occupied child nodes of the current node constitute a plane in the third spatial direction, the code stream is decoded to determine the third plane position information of the current node in the third spatial direction; otherwise, the decoding of the third plane position information is skipped.

10. The method according to any one of claims 5 to 8, wherein: The method further comprises: If the first plane identification information indicates that the occupied child nodes of the current node do not constitute a plane in the first spatial direction, determining that the first plane identification information indicates that the plane constituted by the occupied child nodes of the current node is perpendicular to the first spatial direction; and / or, If the second plane identification information indicates that the occupied child nodes of the current node do not form a plane in the second spatial direction, determining that the second plane identification information indicates that the plane formed by the occupied child nodes of the current node is perpendicular to the second spatial direction; and / or, If the third plane identification information indicates that the occupied sub-nodes of the current node do not constitute a plane in the third spatial direction, it is determined that the plane constituted by the occupied sub-nodes of the current node indicated by the third plane identification information is perpendicular to the third spatial direction.

11. The method according to any one of claims 1 to 8, wherein: The method further comprises: If the current node meets the plane qualification determination conditions in the three preset spatial directions, the full plane identification information determination process is executed.

12. The method according to claim 11, wherein The method further comprises: If the current node does not meet the plane qualification determination conditions in all three preset spatial directions, decoding the bitstream for one or two spatial directions that meet the plane qualification determination conditions to determine the plane identification information of the current node in the one or two spatial directions; The reconstructed geometric information of the current node is determined according to the plane identification information of the current node in the one or two spatial directions.

13. The method according to any one of claims 1, 3, 6-8, wherein: The method further comprises: If the value of the plane position information is the first value, determining that the plane position information indicates that the occupied child nodes of the current node constitute a high plane in the corresponding spatial direction; If the value of the plane position information is the second value, it is determined that the plane position information indicates that the occupied child nodes of the current node constitute a low plane in the corresponding spatial direction.

14. A point cloud encoding method, applied to an encoder, comprising: Determine three plane identification information of the current node in three preset spatial directions; If the three plane identification information indicates that the occupied sub-nodes of the current node all constitute a plane in the three preset spatial directions, setting the full plane identification information of the current node to indicate that the occupied sub-nodes of the current node all constitute a plane in the three preset spatial directions, and writing the full plane identification information into the bitstream; If the three plane identification information indicates that the occupied sub-nodes of the current node do not fully constitute a plane in the three preset spatial directions, then the full plane identification information of the current node is set to indicate that the occupied sub-nodes of the current node do not fully constitute a plane in the three preset spatial directions, and the full plane identification information is written into the code stream.

15. The method according to claim 14, wherein The method further comprises: If the full-plane identification information indicates that the occupied child nodes of the current node all constitute planes in three preset spatial directions, determining three plane position information of the current node in the three preset spatial directions, and writing the three plane position information into the bitstream; If the full plane identification information indicates that the occupied sub-nodes of the current node do not constitute a complete plane in the three preset spatial directions, encoding processing is performed according to the first plane identification information of the current node in the first spatial direction and the second plane identification information of the current node in the second spatial direction; wherein the first spatial direction and the second spatial direction are any two different directions among the three preset spatial directions.

16. The method according to claim 15, wherein The method further comprises: If the full plane identification information indicates that the occupied sub-nodes of the current node all constitute planes in three preset spatial directions, the three plane identification information of the current node in the three preset spatial directions are not written into the codestream.

17. The method according to claim 15, wherein: The method further comprises: If the first plane identification information indicates that the occupied child nodes of the current node constitute a plane in the first spatial direction, and the second plane identification information indicates that the occupied child nodes of the current node constitute a plane in the second spatial direction, determining first plane position information of the current node in the first spatial direction and second plane position information of the current node in the second spatial direction; The first plane position information is written into the code stream after the first plane identification information is written into the code stream; and the second plane position information is written into the code stream after the second plane identification information is written into the code stream.

18. The method according to claim 17, wherein The method further comprises: If the first plane identification information indicates that the occupied sub-nodes of the current node constitute a plane in the first spatial direction, and the second plane identification information indicates that the occupied sub-nodes of the current node constitute a plane in the second spatial direction, the third plane identification information of the current node in the third spatial direction is not written into the codestream; wherein the third spatial direction is one of the three preset spatial directions other than the first spatial direction and the second spatial direction.

19. The method according to claim 15, wherein The method further comprises: If the first plane identification information indicates that the occupied child nodes of the current node do not constitute a plane in the first spatial direction, and / or the second plane identification information indicates that the occupied child nodes of the current node do not constitute a plane in the second spatial direction, determining third plane identification information of the current node in the third spatial direction; wherein the third spatial direction is one of the three preset spatial directions other than the first spatial direction and the second spatial direction; Encoding is performed according to the third plane identification information.

20. The method according to claim 19, wherein The method further comprises: If the first plane identification information indicates that the occupied child nodes of the current node form a plane in the first spatial direction, and the second plane identification information indicates that the occupied child nodes of the current node do not form a plane in the second spatial direction, and the third plane identification information indicates that the occupied child nodes of the current node do not form a plane in the third spatial direction, determining first plane position information of the current node in the first spatial direction; and writing the first plane position information into the codestream after writing the first plane identification information into the codestream; If the first plane identification information indicates that the occupied child nodes of the current node constitute a plane in the first spatial direction, and the second plane identification information indicates that the occupied child nodes of the current node do not constitute a plane in the second spatial direction, and the third plane identification information indicates that the occupied child nodes of the current node constitute a plane in the third spatial direction, then determine the first plane position information of the current node in the first spatial direction and the third plane position information of the current node in the third spatial direction; and write the first plane position information into the codestream after writing the first plane identification information into the codestream, and write the third plane position information into the codestream after writing the third plane identification information into the codestream.

21. The method according to claim 19, wherein The method further comprises: If the first plane identification information indicates that the occupied child nodes of the current node do not constitute a plane in the first spatial direction, and the second plane identification information indicates that the occupied child nodes of the current node constitute a plane in the second spatial direction, and the third plane identification information indicates that the occupied child nodes of the current node do not constitute a plane in the third spatial direction, determining second plane position information of the current node in the second spatial direction; and writing the second plane position information into the codestream after writing the second plane identification information into the codestream; If the first plane identification information indicates that the occupied child nodes of the current node do not constitute a plane in the first spatial direction, and the second plane identification information indicates that the occupied child nodes of the current node constitute a plane in the second spatial direction, and the third plane identification information indicates that the occupied child nodes of the current node constitute a plane in the third spatial direction, then determine the second plane position information of the current node in the second spatial direction and the third plane position information of the current node in the third spatial direction; and write the second plane position information into the codestream after writing the second plane identification information into the codestream, and write the third plane position information into the codestream after writing the third plane identification information into the codestream.

22. The method according to claim 19, wherein The method further comprises: If the first plane identification information indicates that the occupied child nodes of the current node do not constitute a plane in the first spatial direction, and the second plane identification information indicates that the occupied child nodes of the current node do not constitute a plane in the second spatial direction, and the third plane identification information indicates that the occupied child nodes of the current node constitute a plane in the third spatial direction, then determine the third plane position information of the current node in the third spatial direction; and write the third plane position information into the codestream after writing the third plane identification information into the codestream.

23. The method according to claim 18 or 19, wherein The method further comprises: If the first plane identification information indicates that the occupied child nodes of the current node constitute a plane in the first spatial direction, then after encoding the first plane identification information, encoding the first plane position information of the current node in the first spatial direction; otherwise, after encoding the first plane identification information, skip encoding the first plane position information; If the second plane identification information indicates that the occupied child nodes of the current node constitute a plane in the second spatial direction, then after encoding the second plane identification information, encoding the second plane position information of the current node in the second spatial direction; otherwise, after encoding the second plane identification information, skip encoding the second plane position information; If the third plane identification information indicates that the occupied child nodes of the current node constitute a plane in the third spatial direction, then after encoding the third plane identification information, the third plane position information of the current node in the third spatial direction is encoded; otherwise, after encoding the third plane identification information, the encoding of the third plane position information is skipped.

24. The method according to any one of claims 19 to 22, wherein: The method further comprises: If the first plane identification information indicates that the occupied child nodes of the current node do not constitute a plane in the first spatial direction, determining that the first plane identification information indicates that the plane constituted by the occupied child nodes of the current node is perpendicular to the first spatial direction; and / or, If the second plane identification information indicates that the occupied child nodes of the current node do not form a plane in the second spatial direction, determining that the second plane identification information indicates that the plane formed by the occupied child nodes of the current node is perpendicular to the second spatial direction; and / or, If the third plane identification information indicates that the occupied sub-nodes of the current node do not constitute a plane in the third spatial direction, it is determined that the plane constituted by the occupied sub-nodes of the current node indicated by the third plane identification information is perpendicular to the third spatial direction.

25. The method according to any one of claims 14 to 22, wherein: The method further comprises: If the current node meets the plane qualification determination conditions in the three preset spatial directions, the full plane identification information determination process is executed, and the full plane identification information is written into the code stream.

26. The method according to claim 25, wherein The method further comprises: If the current node does not meet the plane qualification determination conditions in all three preset spatial directions, then for one or two spatial directions that meet the plane qualification determination conditions, determine the plane identification information of the current node in the one or two spatial directions; Encoding processing is performed according to the plane identification information of the current node in the one or two spatial directions.

27. The method according to any one of claims 14, 18, 20-22, wherein: The method further comprises: If the value of the plane position information is the first value, determining that the plane position information indicates that the occupied child nodes of the current node constitute a high plane in the corresponding spatial direction; If the value of the plane position information is the second value, it is determined that the plane position information indicates that the occupied child nodes of the current node constitute a low plane in the corresponding spatial direction.

28. A decoder, comprising: Decoding part, first determination part, The decoding part is configured to decode the code stream; The first determining part is configured to determine the full plane identification information of the current node; The decoding part is further configured to decode the code stream if the full plane identification information indicates that the occupied child nodes of the current node all constitute planes in three preset spatial directions; The first determining part is further configured to determine three plane position information of the current node in the three preset spatial directions, and determine the reconstructed geometric information of the current node based on the three plane position information; The decoding part is further configured to decode the code stream if the full plane identification information indicates that the occupied child nodes of the current node do not fully constitute a plane in three preset spatial directions; The first determination part is also configured to determine the first plane identification information of the current node in the first spatial direction and the second plane identification information of the current node in the second spatial direction, and determine the reconstructed geometric information of the current node based on the first plane identification information and the second plane identification information; wherein, the first spatial direction and the second spatial direction are any two different directions among the three preset spatial directions.

29. A decoder, comprising a first processor and a first memory storing instructions executable by the first processor, wherein when the instructions are executed, the first processor implements the method according to any one of claims 1 to 13.

30. An encoder, comprising: The second determining part, the encoding part, The second determining part is configured to determine three plane identification information of the current node in three preset spatial directions; If the three plane identification information indicates that the occupied sub-nodes of the current node all form planes in the three preset spatial directions, then setting the full plane identification information of the current node to indicate that the occupied sub-nodes of the current node all form planes in the three preset spatial directions; The second determining portion is further configured to set the full plane identification information of the current node to indicate that the occupied subnodes of the current node do not fully constitute a plane in the three preset spatial directions if the three plane identification information indicates that the occupied subnodes of the current node do not fully constitute a plane in the three preset spatial directions; The encoding part is configured to write the full-plane identification information into the code stream.

31. An encoder, comprising a second processor and a second memory storing instructions executable by the second processor, wherein when the instructions are executed, the second processor implements the method according to any one of claims 14 to 27.

32. A computer storage medium, wherein: The computer storage medium stores a computer program, which implements the method according to any one of claims 1 to 13 when executed by a first processor, and implements the method according to any one of claims 14 to 27 when executed by a second processor.