Encoding and decoding method, code stream, encoder, decoder and storage medium

CN121241567APending Publication Date: 2025-12-30GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202380098588.6
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2023-07-06
Publication Date
2025-12-30

AI Technical Summary

Technical Problem

In the existing G-PCC encoding and decoding framework, the RAHT attribute transformation encoding and decoding is highly complex, resulting in low attribute encoding efficiency and an inability to effectively remove redundancy from point cloud data.

Method used

By determining the number of voxel nodes and the number of reconstructed nodes in the current unit, it is possible to decide whether to skip encoding and decoding, thereby optimizing the attribute reconstruction process, reducing time complexity, and improving encoding and decoding efficiency.

Benefits of technology

While ensuring the efficiency of point cloud attribute encoding and decoding, the time complexity is reduced and the bit rate is saved, thus improving the performance of point cloud encoding and decoding.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121241567A_ABST
    Figure CN121241567A_ABST
Patent Text Reader

Abstract

The embodiment of the invention discloses an encoding and decoding method, a code stream, an encoder, a decoder and a storage medium. The method comprises the following steps: determining a first number of voxel nodes of a current unit and a second number of reconstruction nodes of the current unit; wherein the first number and the second number are used for determining whether the voxel nodes of the current unit are skipped and decoded or not; and determining an attribute reconstruction value of the voxel node of the current unit according to the first number and the second number. Therefore, when the voxel node of the current unit skips decoding, the time complexity of attribute coding and decoding can be reduced, the attribute coding and decoding efficiency of the point cloud can be improved, and the coding and decoding performance of the point cloud can be improved.
Need to check novelty before this filing date? Find Prior Art

Description

Coding and decoding method, code stream, encoder, decoder and storage medium Technical Field

[0001] The embodiments of the present application relate to the field of point cloud encoding and decoding technology, and in particular to an encoding and decoding method, a bit stream, an encoder, a decoder, and a storage medium. Background Art

[0002] In the Geometry-based Point Cloud Compression (G-PCC) codec framework, the geometric and attribute information of a point cloud are encoded separately. G-PCC attribute encoding can include Predicting Transform (PT), Lifting Transform (LT), and Region Adaptive Hierarchical Transform (RAHT).

[0003] In the RAHT transformation, the nodes of each layer need to be transformed, predicted, encoded and decoded in turn, which will increase the complexity of RAHT attribute transformation encoding and decoding, and thus cannot effectively remove the redundancy of attributes, resulting in low attribute coding efficiency.

[0004] Summary of the Invention

[0005] The embodiments of the present application provide a coding and decoding method, a code stream, an encoder, a decoder, and a storage medium, which can reduce the time complexity of attribute coding and decoding, improve the attribute coding and decoding efficiency of point clouds, and thereby improve the coding and decoding performance of point clouds.

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

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

[0008] Determining a first number of voxel nodes of a current unit and a second number of reconstruction nodes of the current unit; wherein the first number and the second number are used to determine whether to skip decoding the voxel nodes of the current unit;

[0009] Determine the attribute reconstruction value of the voxel node of the current unit according to the first quantity and the second quantity.

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

[0011] determining a first number of voxel nodes of a current cell and a second number of reconstruction nodes of the current cell;

[0012] It is determined whether the attribute information of the voxel node of the current unit is skipped for encoding according to the first number and the second number.

[0013] In a third aspect, an embodiment of the present application provides a code stream, which is generated by bit encoding based on information to be encoded; wherein the information to be encoded includes at least one of the following:

[0014] Prediction mode identification information, attribute information of repeated nodes of the current unit and quantized coefficient residuals corresponding to nodes of the current layer; wherein the prediction mode identification information is used to indicate whether the current unit starts skip coding mode.

[0015] In a fourth aspect, an embodiment of the present application provides an encoder, comprising a first determining unit and an encoding unit, wherein:

[0016] a first determining unit configured to determine a first number of voxel nodes of a current unit and a second number of reconstruction nodes of the current unit;

[0017] The encoding unit is configured to determine whether to skip encoding of the attribute information of the voxel node of the current unit according to the first number and the second number.

[0018] In a fifth aspect, an embodiment of the present application provides an encoder, comprising a first memory and a first processor, wherein:

[0019] a first memory for storing a computer program capable of running on the first processor;

[0020] The first processor is configured to execute the method according to the second aspect when running a computer program.

[0021] In a sixth aspect, an embodiment of the present application provides a decoder, comprising a second determination unit and a second reconstruction unit, wherein:

[0022] A second determining unit is configured to determine a first number of voxel nodes of a current unit and a second number of reconstruction nodes of the current unit; wherein the first number and the second number are used to determine whether to skip decoding the voxel nodes of the current unit;

[0023] The second reconstruction unit is configured to determine the attribute reconstruction value of the voxel node of the current unit according to the first quantity and the second quantity.

[0024] In a seventh aspect, an embodiment of the present application provides a decoder, comprising a second memory and a second processor, wherein:

[0025] a second memory for storing a computer program capable of running on the second processor;

[0026] The second processor is configured to execute the method according to the first aspect when running a computer program.

[0027] In an eighth aspect, an embodiment of the present application provides a computer-readable storage medium storing a computer program, which, when executed, implements the method described in the first aspect or the method described in the second aspect.

[0028] The embodiment of the present application provides a coding and decoding method, a code stream, an encoder, a decoder and a storage medium. Whether it is the coding end or the decoding end, the first number of voxel nodes of the current unit and the second number of reconstruction nodes of the current unit are first determined, and then the attribute reconstruction value of the voxel node of the current unit is determined based on the first number and the second number. Among them, the first number and the second number are used to determine whether the voxel node of the current unit skips coding and decoding. That is to say, when reconstructing the attributes of each voxel node, the judgment condition of whether to perform attribute coding and decoding for each voxel node is optimized. Specifically, if there are no duplicate nodes in the current unit, that is, the first number and the second number are the same, then there is no need to code and decode the voxel nodes of the current unit. Therefore, on the basis of ensuring the coding and decoding efficiency of the point cloud attributes, the time complexity of the point cloud attribute coding and decoding can be reduced, and the bit rate can also be saved, thereby improving the coding and decoding performance of the point cloud. BRIEF DESCRIPTION OF THE DRAWINGS

[0029] FIG1A is a schematic diagram of a three-dimensional point cloud image;

[0030] FIG1B is a partially enlarged view of a three-dimensional point cloud image;

[0031] FIG2A is a schematic diagram of six viewing angles of a point cloud image;

[0032] FIG2B is a schematic diagram of a data storage format corresponding to a point cloud image;

[0033] FIG3 is a schematic diagram of a network architecture for point cloud encoding and decoding;

[0034] FIG4A is a schematic diagram of a composition framework of a G-PCC encoder;

[0035] FIG4B is a schematic diagram of a composition framework of a G-PCC decoder;

[0036] FIG5A is a schematic diagram of a low plane position in the Z-axis direction;

[0037] FIG5B is a schematic diagram of a high plane position in the Z-axis direction;

[0038] FIG6 is a schematic diagram of a node coding sequence;

[0039] FIG7A is a schematic diagram of plane identification information;

[0040] FIG7B is a schematic diagram of another type of planar identification information;

[0041] FIG8 is a schematic diagram of sibling nodes of a current node;

[0042] Figure 9 is a schematic diagram of the intersection of a laser radar and a node;

[0043] FIG10 is a schematic diagram of neighborhood nodes at the same partition depth and the same coordinates;

[0044] FIG11 is a schematic diagram of a current node being located at a low plane position of a parent node;

[0045] FIG12 is a schematic diagram showing a current node located at a high plane position of a parent node;

[0046] FIG13 is a schematic diagram of predictive coding of planar position information of a laser radar point cloud;

[0047] FIG14 is a schematic diagram of IDCM encoding;

[0048] FIG15 is a schematic diagram of coordinate transformation of a rotating laser radar to obtain a point cloud;

[0049] FIG16 is a schematic diagram of predictive coding in the X-axis or Y-axis direction;

[0050] FIG17A is a schematic diagram showing an angle of the Y plane predicted by the horizontal azimuth angle;

[0051] FIG17B is a schematic diagram showing an angle of the X-plane predicted by the horizontal azimuth angle;

[0052] FIG18 is another schematic diagram of predictive coding in the X-axis or Y-axis direction;

[0053] FIG19A is a schematic diagram of three intersection points included in a sub-block;

[0054] FIG19B is a schematic diagram of a triangular facet set fitted using three intersection points;

[0055] FIG19C is a schematic diagram of upsampling of a triangle face set;

[0056] FIG20 is a schematic diagram of a distance-based LOD construction process;

[0057] FIG21 is a schematic diagram of a visualization result of an LOD generation process;

[0058] FIG22 is a schematic diagram of an encoding process for attribute prediction;

[0059] FIG23 is a schematic diagram of the composition of a pyramid structure;

[0060] FIG24 is a schematic diagram showing the composition of another pyramid structure;

[0061] FIG25 is a schematic diagram of an LOD structure for inter-layer nearest neighbor search;

[0062] FIG26 is a schematic diagram of a nearest neighbor search structure based on spatial relationships;

[0063] FIG27A is a schematic diagram of a coplanar spatial relationship;

[0064] FIG27B is a schematic diagram of a coplanar and colinear spatial relationship;

[0065] FIG27C is a schematic diagram of a spatial relationship of coplanarity, colinearity, and copointness;

[0066] FIG28 is a schematic diagram of inter-layer prediction based on fast search;

[0067] FIG29 is a schematic diagram of an LOD structure for nearest neighbor search within an attribute layer;

[0068] FIG30 is a schematic diagram of intra-layer prediction based on fast search;

[0069] FIG31 is a block-based neighborhood search structure diagram;

[0070] FIG32 is a schematic diagram of an encoding process of a lifting transform;

[0071] FIG33 is a schematic diagram of a RAHT transformation structure;

[0072] FIG34 is a schematic diagram of a RAHT transformation process along the x, y, and z directions;

[0073] FIG35A is a schematic diagram of a RAHT forward transformation process;

[0074] FIG35B is a schematic diagram of a RAHT inverse transformation process;

[0075] FIG36 is a schematic diagram of the structure of an attribute coding block;

[0076] FIG37 is a schematic diagram of the overall process of RAHT attribute prediction transform coding;

[0077] FIG38 is a schematic diagram of a neighborhood prediction relationship of a current block;

[0078] FIG39 is a schematic diagram of a calculation process of an attribute transformation coefficient;

[0079] FIG40 is a schematic diagram of the structure of RAHT attribute inter-frame prediction coding;

[0080] FIG41 is a flowchart diagram 1 of a decoding method provided in an embodiment of the present application;

[0081] FIG42 is a schematic diagram of the structure of a RAHT attribute coding layer provided in an embodiment of the present application;

[0082] FIG43 is a second flow chart of a decoding method provided in an embodiment of the present application;

[0083] FIG44 is a flowchart diagram 1 of an encoding method provided in an embodiment of the present application;

[0084] FIG45 is a second flow chart of an encoding method provided in an embodiment of the present application;

[0085] FIG46 is a third flow chart of an encoding method provided in an embodiment of the present application;

[0086] FIG47 is a schematic diagram of the structure of an encoder provided in an embodiment of the present application;

[0087] FIG48 is a schematic diagram of a specific hardware structure of an encoder provided in an embodiment of the present application;

[0088] FIG49 is a schematic diagram of the structure of a decoder provided in an embodiment of the present application;

[0089] FIG50 is a schematic diagram of a specific hardware structure of a decoder provided in an embodiment of the present application;

[0090] Figure 51 is a schematic diagram of the composition structure of a coding and decoding system provided in an embodiment of the present application. DETAILED DESCRIPTION

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

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

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

[0094] It should also be pointed out that the terms "first\second\third" involved in the embodiments of the present application are only 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.

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

[0096] A point cloud is a set of irregularly distributed discrete points in space that express the spatial structure and surface properties of a three-dimensional object or scene. Figure 1A shows a three-dimensional point cloud image and Figure 1B shows a partially enlarged view of the three-dimensional point cloud image. It can be seen that the point cloud surface is composed of densely distributed points.

[0097] In a two-dimensional image, each pixel contains information and is distributed regularly, so there's no need to record its location. However, the distribution of points in a point cloud in three-dimensional space is random and irregular, so recording the location of each point in space is necessary to fully represent the point cloud. Similar to a two-dimensional image, each location in the acquisition process has corresponding attribute information, typically an RGB color value, which reflects the object's color. For a point cloud, in addition to color information, each point's corresponding attribute information often includes reflectance values, which reflect the surface texture of the object. Therefore, point cloud data typically includes both point location information and point attribute information. Point location information can also be referred to as point geometric information. For example, point geometric information can be the point's three-dimensional coordinates (x, y, z). Point attribute information can include color information and / or reflectance. For example, reflectance can be one-dimensional reflectance information (r). Color information can be information in any color space, or it can be three-dimensional color information, such as RGB. Here, R represents red (R), G represents green (G), and B represents blue (B). For another example, the color information may 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.

[0098] For example, a point cloud generated using laser measurement principles can include both its 3D coordinate information and its reflectivity. For another example, a point cloud generated using photogrammetry principles can include both its 3D coordinate information and its 3D color information. For another example, a point cloud generated using a combination of laser measurement and photogrammetry principles can include both its 3D coordinate information, its reflectivity value, and its 3D color information.

[0099] Figures 2A and 2B show a point cloud image and its corresponding data storage format. Figure 2A provides six viewing angles of the point cloud image, while Figure 2B consists of a file header and data. The header includes the data format, data representation type, the total number of points in the point cloud, and the content represented by the point cloud. For example, the point cloud is in ".ply" format, represented by ASCII code, with a total of 207,242 points. Each point has 3D coordinate information (x, y, z) and 3D color information (r, g, b).

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

[0101] Static point cloud: the object is stationary and the device that acquires the point cloud is also stationary;

[0102] Dynamic point cloud: The object is moving, but the device that obtains the point cloud is stationary;

[0103] Dynamic point cloud acquisition: The device used to acquire the point cloud is in motion.

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

[0105] 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;

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

[0107] Point clouds can flexibly and conveniently express the spatial structure and surface properties of three-dimensional objects or scenes. Moreover, since point clouds are obtained by directly sampling real objects, they can provide a strong sense of reality while ensuring accuracy. Therefore, they are widely used, including virtual reality games, computer-aided design, geographic information systems, automatic navigation systems, digital cultural heritage, free viewpoint broadcasting, three-dimensional immersive remote presentation, and three-dimensional reconstruction of biological tissues and organs.

[0108] Point clouds are primarily collected through computer generation, 3D laser scanning, and 3D photogrammetry. Computers can generate point clouds of virtual 3D objects and scenes; 3D laser scanning can obtain point clouds of static real-world 3D objects or scenes, generating millions of point clouds per second; and 3D photogrammetry can obtain point clouds of dynamic real-world 3D objects or scenes, generating tens of millions of point clouds per second. These technologies reduce the cost and time required to acquire point cloud data while improving data accuracy. While changes in point cloud data acquisition methods have made it possible to acquire large amounts of point cloud data, the processing of this massive amount of 3D point cloud data is facing bottlenecks due to storage space and transmission bandwidth constraints, as application demands grow.

[0109] For example, taking a point cloud video with a frame rate of 30 frames per second (fps), each frame contains 700,000 points, and each point has coordinate information (xyz, float) and color information (RGB, uchar). Therefore, the data volume of a 10-second point cloud video is approximately 0.7 million × (4 bytes × 3 + 1 byte × 3) × 30 fps × 10 seconds = 3.15 GB, where 1 byte is 10 bits. For a 1280 × 720 2D video with a YUV sampling format of 4:2:0 and a frame rate of 24 fps, the data volume for 10 seconds is approximately 1280 × 720 × 12 bits × 24 fps × 10 seconds ≈ 0.33 GB. The data volume of a 10-second two-view 3D video is approximately 0.33 × 2 = 0.66 GB. This shows that the data volume of a point cloud video far exceeds that of 2D and 3D videos of the same length. Therefore, in order to better realize data management, save server storage space, and reduce the transmission traffic and transmission time between the server and the client, point cloud compression has become a key issue in promoting the development of the point cloud industry.

[0110] That is to say, since the point cloud is a collection of massive points, storing the point cloud 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 the point cloud at the network layer without compression. Therefore, the point cloud needs to be compressed.

[0111] Currently, the point cloud coding framework that can compress point clouds can be the geometry-based Point Cloud Compression (G-PCC) codec framework or the video-based Point Cloud Compression (V-PCC) codec framework provided by the Moving Picture Experts Group (MPEG), or the AVS-PCC codec framework provided by 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, which can be based on the Point Cloud Compression Test Platform (Test Model Compression 13, TMC13). The V-PCC codec framework can be used to compress the second type of dynamic point clouds, which can be based on the Point Cloud Compression Test Platform (Test Model Compression 2, TMC2). Therefore, the G-PCC codec framework is also called the point cloud codec TMC13, and the V-PCC codec framework is also called the point cloud codec TMC2.

[0112] An embodiment of the present application provides a network architecture of a point cloud encoding and decoding system including a decoding method and an encoding method. FIG3 is a schematic diagram of a network architecture of a point cloud encoding and decoding system provided by an embodiment of the present application. As shown in FIG3 , the network architecture includes one or more electronic devices 13 to 1N and a communication network 01, wherein the electronic devices 13 to 1N can perform video interaction through the communication network 01. During the implementation process, the electronic device can be various types of devices with point cloud encoding and decoding functions. For example, the electronic device can include a mobile phone, a tablet computer, a personal computer, a personal digital assistant, a navigator, a digital phone, a video phone, a television, a sensor device, a server, etc., which is not limited by the embodiment of the present application. Among them, the decoder or encoder in the embodiment of the present application can be the above-mentioned electronic device.

[0113] Among them, the electronic device in the embodiment of the present application has a point cloud encoding and decoding function, generally including a point cloud encoder (ie, encoder) and a point cloud decoder (ie, decoder).

[0114] The following describes the related technologies using the G-PCC encoding and decoding framework as an example.

[0115] As you can understand, in the point cloud G-PCC codec framework, the point cloud data to be encoded is first divided into multiple slices through slice partitioning. In each slice, the geometric information of the point cloud and the attribute information corresponding to each point are encoded separately.

[0116] Figure 4A shows a schematic diagram of the G-PCC encoder's architecture. As shown in Figure 4A, during the geometry encoding process, the geometric information is transformed so that the entire point cloud is contained within a bounding box. Quantization is then performed. This quantization step primarily serves a scaling purpose. Due to quantization rounding, the geometric information of some point clouds becomes identical. Parameters are then used to determine whether to remove duplicate points. This process of quantization and removing duplicate points is also known as voxelization. The bounding box is then partitioned into an octree or constructed as a prediction tree. During this process, arithmetic coding is performed on the points within the leaf nodes of the partition to generate a binary geometry bitstream. Alternatively, arithmetic coding is performed on the intersection points (vertices) generated by the partition (surface fitting is performed based on the intersection points) to generate a binary geometry bitstream. During the attribute encoding process, after the geometry encoding is completed and the geometry 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 geometry information is then used to recolor the point cloud so that the unencoded attribute information corresponds to the reconstructed geometry information. Attribute encoding is mainly performed on color information. In the color information encoding process, there are two main transformation methods. One is the distance-based lifting transformation that relies on the level of detail (LOD) division, and the other is the direct region adaptive hierarchical transformation (RAHT). Both methods convert color information from the spatial domain to the frequency domain, obtain high-frequency coefficients and low-frequency coefficients through transformation, and finally quantize the coefficients. Then, the quantized coefficients are arithmetically encoded to generate a binary attribute bit stream.

[0117] Figure 4B shows a schematic diagram of the composition framework of a G-PCC decoder. As shown in Figure 4B, for the acquired binary bit stream, the geometric bit stream and attribute bit stream in the binary bit stream are first decoded independently. When decoding the geometric bit stream, the geometric information of the point cloud is obtained through arithmetic decoding-reconstruction of the octree / reconstruction of the prediction tree-reconstruction of the geometry-coordinate inverse conversion; when decoding the attribute bit stream, the attribute information of the point cloud is obtained through arithmetic decoding-inverse quantization-LOD partitioning / RAHT-color inverse conversion, and the point cloud data to be encoded (i.e., the output point cloud) is restored based on the geometric information and attribute information.

[0118] It should be noted that, as shown in FIG4A or FIG4B , the current geometric coding and decoding of G-PCC can be divided into octree-based geometric coding and decoding (marked by a dotted box) and prediction tree-based geometric coding and decoding (marked by a dotted box).

[0119] For Octree geometry encoding (OctGeomEnc), octree-based geometry encoding includes: first, coordinate conversion of the geometric information so that all point clouds are contained in a bounding box. Then quantization is performed. This step of quantization mainly plays a role of scaling. Due to the quantization rounding, the geometric information of some points is the same. The parameters are used to decide whether to remove duplicate points. The process of quantization and removal of duplicate points is also called voxelization. Next, the bounding box is continuously divided into trees (such as octrees, quadtrees, binary trees, etc.) in the order of breadth-first traversal, and the placeholder code of each node is encoded. In related technologies, a company proposed an implicit geometric division method. First, the bounding box of the point cloud is calculated. Assume d x >d y >d z , the bounding box corresponds to a cuboid. When geometrically partitioning, the binary tree partitioning will be performed based on the x-axis to obtain two child nodes; until d is satisfied x =d y >d z When the conditions are met, the quadtree partitioning will be performed based on the x and y axes to obtain four child nodes; when d is finally satisfied x =d y =d z When the conditions are met, the octree partitioning will continue until the leaf node obtained by the partitioning is a 1×1×1 unit cube. The partitioning will stop and the points in the leaf node will be encoded to generate a binary code stream. In the process of binary tree / quadtree / octree partitioning, two parameters are introduced: K and M. Parameter K indicates the maximum number of binary tree / quadtree partitions before octree partitioning; parameter M is used to indicate that the minimum block side length corresponding to binary tree / quadtree partitioning is 2 M . At the same time, K and M must meet the following conditions: Assume d max =max(d x ,d y ,d z ), d min =min(d x ,d y ,d z ), parameter K satisfies: K ≥ d max -d min ; Parameter M satisfies: M≥d minThe reason why the parameters K and M meet the above conditions is that in the current G-PCC geometric implicit partitioning process, the priority of the partitioning method is binary tree, quadtree and octree. When the node block size does not meet the conditions of binary tree / quadtree, the node will be divided into octree until the minimum unit of leaf node is 1×1×1. The octree-based geometric information coding mode can effectively encode the geometric information of the point cloud by utilizing the correlation between adjacent points in space. However, for some relatively flat nodes or nodes with planar characteristics, the coding efficiency of the point cloud geometric information can be further improved by using plane coding.

[0120] Exemplarily, Figure 5A and Figure 5B provide a kind of plane position schematic diagram.Wherein, Figure 5A shows a kind of low plane position schematic diagram in the Z-axis direction, and Figure 5B shows a kind of high plane position schematic diagram in the Z-axis direction.As shown in Figure 5A, here (a), (a0), (a1), (a2), (a3) ​​all belong to the low plane position in the Z-axis direction. Taking (a) as an example, it can be seen that the four child nodes occupied in the current node are all located at the low plane position of the current node in the Z-axis direction, so it can be considered that the current node belongs to a Z plane and is a low plane in the Z-axis direction. Similarly, as shown in Figure 5B, here (b), (b0), (b1), (b2), (b3) all belong to the high plane position in the Z-axis direction. Taking (b) as an example, it can be seen that the four child nodes occupied in the current node are located at the high plane position of the current node in the Z-axis direction, so it can be considered that the current node belongs to a Z plane and is a high plane in the Z-axis direction.

[0121] Taking (a) in Figure 5A as an example, the efficiency of octree encoding and plane encoding is compared. Figure 6 provides a schematic diagram of the node encoding sequence, that is, node encoding is performed in the order of 0, 1, 2, 3, 4, 5, 6, and 7 as shown in Figure 6. Here, if octree encoding is used for (a) in Figure 5A, the placeholder information of the current node is represented as: 11001100. However, if plane encoding is used, first, an identifier must be encoded to indicate that the current node is a plane in the Z-axis direction. Secondly, if the current node is a plane in the Z-axis direction, the plane position of the current node must also be represented. Finally, only the placeholder information of the lower plane node in the Z-axis direction needs to be encoded (i.e., the placeholder information of the four child nodes 0, 2, 4, and 6). Therefore, encoding the current node based on plane encoding only requires 6 bits, which can reduce the representation by 2 bits compared to the related art octree encoding. Based on this analysis, plane encoding has significantly higher coding efficiency than octree encoding. Therefore, for an occupied node, if a plane coding method is used for encoding in a certain dimension, it is first necessary to represent the plane identification (planarMode) and plane position (PlanePos) information of the current node in the dimension, and then encode the occupancy information of the current node based on the plane information of the current node. For example, Figure 7A shows a schematic diagram of plane identification information. As shown in Figure 7A, there is a low plane in the Z-axis direction; correspondingly, the value of the plane identification information is true (true) or 1, that is, planarMode _Z = true; the plane position information is the low plane (low), that is, PlanePosition _Z =low. Figure 7B shows another schematic diagram of plane identification information. As shown in Figure 7B, here it is not a plane in the Z-axis direction; correspondingly, the value of the plane identification information is false or 0, that is, planarMode _Z =false.

[0122] It should be noted that for PlaneMode _i : 0 means the current node is not a plane in the i-axis direction, 1 means the current node is a plane in the i-axis direction. If the current node is a plane in the i-axis direction, then for PlanePosition _i : 0 means the current node is a plane in the i-axis direction and the plane position is low, 1 means the current node is a high plane in the i-axis direction. Here, i represents the coordinate dimension, which can be the X-axis direction, Y-axis direction, or Z-axis direction, so i = 0, 1, 2.

[0123] In the G-PCC standard, when determining whether a node meets the conditions for planar coding and when the node meets the conditions for planar coding, predictive coding of the planar identifier and planar position information of the node is required.

[0124] In the embodiments of the present application, there are three judgment conditions in the current G-PCC standard for determining whether a node meets the conditions for planar coding. The following will explain them in detail one by one.

[0125] First, judge according to the planar probability of the node in each dimension.

[0126] (1) Determine the local area density (local_node_density) of the current node;

[0127] (2) Determine the probability Prob(i) of the current node in each dimension.

[0128] When the local area density of the node is less than the threshold Th (for example, Th = 3), compare the planar probability Prob(i) of the current node in the three coordinate dimensions with the thresholds Th0, Th1, and Th2, where Th0 < Th1 < Th2 (for example, Th0 = 0.6, Th1 = 0.77, Th2 = 0.88). Here, Eligible i (i = 0, 1, 2) represents whether planar coding is started in each dimension: Eligible i = Prob(i) >= threshold.

[0129] It should be noted that the threshold is adaptively changed. For example, when Prob(0) > Prob(1) > Prob(2), then Eligible i is set as follows: <00​​​​​​​​​​​​​​​​​​​​

[0136] Eligible2=Prob(2)>=Th2.

[0137] Here, the update of Prob(i) is as follows:

[0138] Prob(i) new =(L×Prob(i)+δ(coded node)) / L+1 (1)

[0139] Where L = 255; in addition, if the coded node is a plane, δ(coded node) is 1; otherwise, δ(coded node) is 0.

[0140] Here, the update of local_node_density is as follows:

[0141] local_node_density new =local_node_density+4*numSiblings (2)

[0142] Where local_node_density is initialized to 4, and numSiblings is the number of sibling nodes of the node. For example, FIG8 shows a schematic diagram of the sibling nodes of the current node. As shown in FIG8 , the current node is a node filled with slashes, and the nodes filled with grids are sibling nodes. Then, the number of sibling nodes of the current node is 5 (including the current node itself).

[0143] Second, determine whether the current layer nodes meet the plane coding requirements based on the point cloud density of the current layer.

[0144] The density of the current layer points is used to determine whether to perform planar coding on the nodes of the current layer. Assuming that the number of points in the current point cloud to be coded is pointCount, the number of points reconstructed by the inferred direct coding model (IDCM) coding is numPointCountRecon, and because the octree is coded based on the order of breadth-first traversal, the number of nodes to be coded in the current layer can be obtained as nodeCount. Then, the assumption to determine whether to start planar coding in the current layer is planarEligibleKOctreeDepth, specifically: planarEligibleK OctreeDepth = (pointCount-numPointCountRecon) <nodeCount×1.3。

[0145] Among them, if (pointCount-numPointCountRecon) is less than nodeCount×1.3, then planarEligibleK OctreeDepth is true; if (pointCount-numPointCountRecon) is not less than nodeCount×1.3, then planarEligibleKOctreeDepth is false. In this way, when planarEligibleKOctreeDepth is true, all nodes in the current layer are planar coded; otherwise, all nodes in the current layer are not planar coded and only octree coding is used.

[0146] 3. Determine whether the current node meets the plane coding requirements based on the acquisition parameters of the lidar point cloud.

[0147] Figure 9 shows a schematic diagram of the intersection of a laser radar and a node. As shown in Figure 9, a node filled with a grid is simultaneously traversed by two laser beams, so the current node is not a plane in the direction perpendicular to the Z axis. A node filled with a diagonal line is small enough to be traversed by two laser beams simultaneously, so it is possible that the node filled with a diagonal line is a plane in the direction perpendicular to the Z axis.

[0148] Furthermore, for nodes that meet the plane coding conditions, predictive coding may be performed on the plane identification information and the plane position information.

[0149] First, predictive coding of plane identification information.

[0150] Here, only three context information are used for encoding, that is, the plane identification in each coordinate dimension is designed separately for context.

[0151] Secondly, predictive coding of plane position information.

[0152] It should be understood that for the encoding of non-lidar point cloud planar position information, the predictive encoding of the planar position information may include:

[0153] (a) Using the occupancy information of neighboring nodes, the plane position information of the current node is predicted to be three elements: predicted as low plane, predicted as high plane, and unpredictable;

[0154] (b) Spatial distance between nodes at the same partition depth and coordinates as the current node and the current node: “near” and “far”;

[0155] (c) If the node at the same partition depth and the same coordinates as the current node is a plane, determine the plane position of the node;

[0156] (d) Coordinate dimension (i=0, 1, 2).

[0157] It should be noted that in an embodiment of the present application, after determining the spatial distance between the node at the same division depth and the same coordinates as the current node and the current node, if the spatial distance is less than the preset distance threshold, then the spatial distance can be determined to be "near"; or, if the spatial distance is greater than the preset distance threshold, then the spatial distance can be determined to be "far".

[0158] For example, Figure 10 shows a schematic diagram of neighboring nodes at the same partition depth and coordinates. As shown in Figure 10, the bold large cube represents the parent node, the small grid-filled cube inside it represents the current node, and the vertex position of the current node is shown. The small white-filled cube represents neighboring nodes at the same partition depth and coordinates. The distance between the current node and the neighboring node is the spatial distance, which can be judged as "near" or "far." In addition, if the neighboring node is a plane, the planar position of the neighboring node is also required.

[0159] In this way, as shown in Figure 10, the current node is a small cube filled with a grid, and the neighboring node is a small cube filled with white at the same octree partition depth level and the same vertical coordinate, and the distance between the two nodes is judged as "near" and "far", and the plane position of the reference node is used.

[0160] Furthermore, in an embodiment of the present application, FIG11 shows a schematic diagram of a current node being located at a low plane position of a parent node. As shown in FIG11 , (a), (b), and (c) show three examples of the current node being located at a low plane position of a parent node. Specific descriptions are as follows:

[0161] ① If any of the child nodes 4 to 7 of the point fill node is occupied, and all the grid fill nodes are not occupied, it is very likely that there is a plane in the current node (filled with a slash), and the plane is located lower.

[0162] ② If the child nodes 4 to 7 of the point fill node are not occupied, and any grid fill node is occupied, it is very likely that there is a plane in the current node (filled with diagonal lines), and the plane is located higher.

[0163] ③ If the child nodes 4 to 7 of the point fill node are all empty nodes and the grid fill nodes are all empty nodes, the plane position cannot be inferred and is therefore marked as unknown.

[0164] ④ If any of the child nodes 4 to 7 of the point fill node is occupied and any of the grid fill nodes is occupied, the plane position cannot be inferred at this time, so it is marked as unknown.

[0165] In an embodiment of the present application, FIG12 shows a schematic diagram of a current node being located at a high plane position of a parent node. As shown in FIG12, (a), (b), and (c) show three examples of the current node being located at a high plane position of a parent node. The specific description is as follows:

[0166] ① If any of the child nodes 4 to 7 of the grid fill node is occupied, and the point fill node is not occupied, it is very likely that there is a plane in the current node (filled with diagonal lines), and the plane position is low.

[0167] ② If the child nodes 4 to 7 of the grid fill node are not occupied, and the point fill node is occupied, it is very likely that there is a plane in the current node (filled with a slash), and the plane position is higher.

[0168] ③If the child nodes 4 to 7 of the grid fill node are all unoccupied, and the point fill node is unoccupied, the plane position cannot be inferred at this time, so it is marked as unknown.

[0169] ④ If one of the child nodes 4 to 7 of the grid fill node is occupied and the point fill node is occupied, the plane position cannot be inferred at this time and is therefore marked as unknown.

[0170] It should also be understood that, with respect to the coding of the laser radar point cloud plane position information, FIG13 shows a schematic diagram of the predictive coding of the laser radar point cloud plane position information. As shown in FIG13, when the laser radar emission angle is θ bottom When , it can be mapped to the bottom virtual plane; when the laser radar emission angle is θ top At this time, it can be mapped to the high plane (Top virtual plane).

[0171] That is, by using the laser radar acquisition parameters to predict the plane position of the current node, and by using the position where the current node intersects with the laser ray to quantize the position into multiple intervals, the final result is the context information of the plane position of the current node. The specific calculation process is as follows: Assume that the coordinates of the laser radar are (x Lidar ,y Lidar ,z Lidar ), the geometric coordinates of the current node are (x, y, z), then first calculate the vertical tangent value tanθ of the current node relative to the lidar, the calculation formula is as follows:

[0172] Furthermore, because each laser has a certain offset angle relative to the laser radar, it is also necessary to calculate the relative tangent value tanθ of the current node relative to the laser corr,L , the specific calculation is as follows:

[0173] Finally, the relative tangent value tanθ of the current node will be used corr,L To predict the plane position of the current node, as follows, assuming that the tangent value of the lower boundary of the current node is tan(θ bottom ), the tangent value of the upper boundary is tan(θ top ), according to tanθ corr,L The plane position is quantized into four quantization intervals, that is, the context information of the plane position is determined.

[0174] However, the octree-based geometric information coding mode only has an efficient compression rate for points that are correlated in space. For points that are isolated in the geometric space, the use of the Direct Coding Model (DCM) can greatly reduce the complexity. For all nodes in the octree, the use of DCM is not indicated by flag information, but is inferred from the parent node and neighbor information of the current node. There are three ways to determine whether the current node is eligible for DCM coding, as follows:

[0175] (1) The current node has no sibling child nodes, that is, the parent node of the current node has only one child node, and the parent node of the parent node of the current node has only two occupied child nodes, that is, the current node has at most one neighbor node.

[0176] (2) The parent node of the current node has only one child node, the current node, and the six neighbor nodes that share a face with the current node are all empty nodes.

[0177] (3) The number of sibling nodes of the current node is greater than 1.

[0178] Exemplarily, FIG14 provides a schematic diagram of IDCM coding. If the current node does not have the DCM coding qualification, it will be divided into octrees. If it has the DCM coding qualification, the number of points contained in the node will be further determined. When the number of points is less than a threshold (for example, 2), the node will be DCM-encoded, otherwise the octree division will continue. When the DCM coding mode is applied, it is first necessary to encode whether the current node is a true isolated point, that is, IDCM_flag. When IDCM_flag is true, the current node is DCM-encoded, otherwise octree coding is still used. When the current node meets the DCM coding requirements, the DCM coding mode of the current node needs to be encoded. There are currently two DCM modes: (a) there is only one point (or multiple points, but they are duplicate points); (b) there are two points. Finally, the geometric information of each point needs to be encoded. Assuming that the side length of the node is 2 d When encoding each component of the node's geometric coordinates, d bits are required, and these bits are directly encoded into the bitstream. It is important to note that when encoding LiDAR point clouds, the efficiency of geometric information coding can be further improved by predictively encoding the three-dimensional coordinate information using LiDAR acquisition parameters.

[0179] Furthermore, the IDCM encoding process is described in detail below.

[0180] When the current node meets the DCM encoding mode, the number of points of the current node, numPoints, is encoded first; the number of points of the current node is encoded according to different DirectModes:

[0181] (1) If the current node does not meet the requirements of the DCM node, exit directly (that is, the number of points is greater than 2 points and is not a duplicate point).

[0182] (2) If the number of points numPonts in the current node is less than or equal to 2, the encoding process is as follows:

[0183] i) First encode whether the numPonts of the current node is greater than 1;

[0184] ii) If the current node has only one point and the geometry coding environment is geometry lossless coding, it is necessary to encode that the second point of the current node is not a duplicate point.

[0185] (3) If the number of points numPonts in the current node is greater than 2, the encoding process is as follows:

[0186] i) First encode the numPonts of the current node to be less than or equal to 1;

[0187] ii) Secondly, it is encoded that the second point of the current node is a repeated point, and then it is encoded whether the number of repeated points of the current node is greater than 1. When the number of repeated points is greater than 1, it is necessary to perform exponential Golomb decoding on the remaining number of repeated points.

[0188] After encoding the number of points in the current node, the coordinate information of the points contained in the current node is encoded. The following will introduce the lidar point cloud and the human eye point cloud in detail.

[0189] (1) Point cloud facing the human eye.

[0190] (1) If the current node contains only one point, the geometric information of the point in three dimensions will be directly encoded (Bypass coding);

[0191] (2) If the current node contains two points, the first coordinate axis dirextAxis will be obtained by using the geometric coordinates of the points. It should be noted that the coordinate axes currently compared only include the x-axis and y-axis, not the z-axis. Assuming that the geometric coordinates of the current node are nodePos, the judgment method is as follows:

[0192] dirextAxis=!(nodePos[0] <nodePos[1]) (5)

[0193] That is, the axis with the smallest node coordinate geometry position will be used as the priority encoding axis dirextAxis, and then the geometry information of the priority encoding axis dirextAxis will be encoded as follows. Assume that the encoding geometry bit depth corresponding to the priority encoding axis is nodeSizeLog2, and assume that the coordinates of the two points are pointPos[0] and pointPos[1]. The specific encoding process is as follows:

[0194] After encoding the priority axis dirextAxis, the geometric coordinates of the current node are directly encoded. Assuming that the remaining encoding bit depth of each point is nodeSizeLog2, the specific encoding process is as follows:

[0195] for(int axisIdx=0; axisIdx<3; ++axisIdx)

[0196] for(int mask=(1<<nodeSizeLog2[axisIdx])> >1;mask;mask>>1)

[0197] encodePosBit(!!(pointPos[axisIdx]&mask)).

[0198] (2) LiDAR point cloud.

[0199] If the current node contains two points, the priority coded coordinate axis dirextAxis will be obtained first by using the geometric coordinates of the points. Assuming that the geometric coordinates of the current node are nodePos, the judgment method is as follows:

[0200] dirextAxis=!(nodePos[0] <nodePos[1])

[0201] That is, the axis with the smaller node coordinate geometry position will be used as the priority encoding axis dirextAxis. It should be noted that the currently compared coordinate axes only include the x-axis and y-axis, not the z-axis. Then, the geometric information of the priority encoded coordinate axis dirextAxis is first encoded as follows, assuming that the encoding geometry bit depth corresponding to the priority encoded axis is nodeSizeLog2, and assuming that the coordinates of the two points are pointPos[0] and pointPos[1]. The specific encoding process is as follows:

[0202] After encoding the priority-encoded coordinate axis dirextAxis, the geometric coordinates of the current node are encoded.

[0203] Since the LiDAR point cloud can obtain the acquisition parameters of the LiDAR point cloud, the geometric coordinate information of the current node can be predicted, thereby further improving the efficiency of the geometric information encoding of the point cloud. Similarly, the geometric information nodePos of the current node is first used to obtain a directly encoded main axis direction, and then the geometric information of the already encoded direction is used to predict the geometric information of another dimension. Assuming that the directly encoded axis direction is directAxis and the bit depth of the direct encoding is nodeSizeLog2, the encoding method is as follows:

[0204] for(int mask=(1<<nodeSizeLog2)> >1;mask;mask>>1);

[0205] encodePosBit(!!(pointPos[directAxis]&mask)).

[0206] It should be noted here that all geometric accuracy information in the directAxis direction will be encoded here.

[0207] For example, Figure 15 provides a schematic diagram of coordinate transformation for obtaining point clouds using a rotating laser radar. In the Cartesian coordinate system, the (x, y, z) coordinates of each node can be converted to (R, i) represents. In addition, the laser scanner can perform laser scanning at a preset angle, and different θ(i) can be obtained under different values ​​of i. For example, when i is equal to 1, θ(1) can be obtained, and the corresponding scanning angle is -15°; when i is equal to 2, θ(2) can be obtained, and the corresponding scanning angle is -13°; when i is equal to 10, θ(10) can be obtained, and the corresponding scanning angle is +13°; when i is equal to 9, θ(19) can be obtained, and the corresponding scanning angle is +15°.

[0208] In this way, after encoding all the precision of the directAxis coordinate direction, the LaserIdx corresponding to the current point will be calculated first, that is, the pointLaserIdx number in Figure 15, and the LaserIdx of the current node, that is, nodeLaserIdx; secondly, the LaserIdx of the node, that is, nodeLaserIdx, will be used to predict the LaserIdx of the point, that is, pointLaserIdx. The calculation method of the LaserIdx of the node or point is as follows. Assuming that the geometric coordinates of the point are pointPos, the starting coordinates of the laser ray are LidarOrigin, and assuming that the number of Lasers is LaserNum, the tangent value of each Laser is tanθ i , the vertical offset position of each Laser is Z i ,but:

[0209] After calculating the current point's LaserIdx, the LaserIdx of the current node is first used to predictively encode the pointLaserIdx. After encoding the current point's LaserIdx, the three-dimensional geometric information of the current point is predictively encoded using the LiDAR acquisition parameters.

[0210] For example, FIG16 shows a schematic diagram of predictive coding in the X-axis or Y-axis direction. As shown in FIG16 , the box filled with a grid represents the current node, and the box filled with a slash represents the already coded node. Here, the LaserIdx corresponding to the current point is first used to obtain the corresponding predicted value of the horizontal azimuth, that is, Secondly, the node geometry information corresponding to the current point is used to obtain the horizontal azimuth angle corresponding to the node Assuming that the geometric coordinates of the node are nodePos, the horizontal azimuth angle The calculation method between the node geometry information is as follows:

[0211] By using the acquisition parameters of the laser radar, we can get the number of rotation points of each laser, numPoints, which represents the number of points obtained by each laser ray rotating one circle. Then, we can use the number of rotation points of each laser to calculate the rotation angular velocity deltaPhi of each laser. The calculation method is as follows:

[0212] Furthermore, using the horizontal azimuth angle of the node And the horizontal azimuth of the previous Laser code point corresponding to the current point Calculate the predicted horizontal azimuth angle corresponding to the current point That is, the predicted value of the horizontal azimuth angle as shown in Figure 17A and Figure 17B. Figure 17A shows a schematic diagram of predicting the angle of the Y plane through the horizontal azimuth angle, and Figure 17B shows a schematic diagram of predicting the angle of the X plane through the horizontal azimuth angle. Here, the predicted value of the horizontal azimuth angle corresponding to the current point is The calculation method is as follows:

[0213] For example, FIG18 shows another schematic diagram of predictive coding in the X-axis or Y-axis direction. As shown in FIG18 , the portion filled with a grid (left side) represents a low plane, and the portion filled with dots (right side) represents a high plane. Indicates the low plane horizontal azimuth of the current node, Indicates the horizontal azimuth of the high plane of the current node, Indicates the predicted horizontal azimuth angle corresponding to the current node.

[0214] Thus, by using the predicted value of the horizontal azimuth and the low plane horizontal azimuth of the current node and the high plane horizontal azimuth To predict the geometric information of the current node. The details are as follows:

[0215] int context=(angLel≥0&&angLeR≥0)||(angLel<0&&angLeR<0)? 0:2;

[0216] int minAngle=std∷min(abs(angLel),abs(angLeR));

[0217] int maxAngle=std∷max(abs(angLel),abs(angLeR));

[0218] context+=maxAngle>minAngle? 0:1;

[0219] context+=maxAngle>minAngle? 0:4.

[0220] After encoding the LaserIdx of the point, the Z-axis direction of the current point will be predicted using the LaserIdx corresponding to the current point. That is, the depth information radius of the radar coordinate system is calculated by using the x and y information of the current point. Then, the tangent value of the current point and the vertical offset are obtained using the LaserIdx of the current point. The predicted value of the Z-axis direction of the current point, namely Z_pred, can be obtained. The details are as follows:

[0221] int tanTheta=tanθ laserIdx ;

[0222] int zOffset = Z laserIdx ;

[0223] Z_pred=radius×tanTheta-zOffset.

[0224] Furthermore, Z_pred is used to perform predictive coding on the geometric information of the current point in the Z-axis direction to obtain the prediction residual Z_res, and finally Z_res is encoded.

[0225] It is important to note that when partitioning nodes into leaf nodes, the number of duplicate points in the leaf nodes must be encoded in the case of lossless geometric coding. Ultimately, the placeholder information for all nodes is encoded to generate a binary bitstream. Furthermore, G-PCC currently introduces a plane coding mode. During the geometric partitioning process, it determines whether the child nodes of the current node are in the same plane. If the child nodes of the current node meet the condition of being in the same plane, the child nodes of the current node are represented by that plane.

[0226] For octree-based geometric decoding, the decoder follows a breadth-first traversal. Before decoding each node's occupancy information, it first uses the reconstructed geometric information to determine whether the current node is for plane decoding or IDCM decoding. If the current node meets the requirements for plane decoding, it first decodes the plane identifier and plane position information of the current node. Then, based on the plane information, it decodes the current node's occupancy information. If the current node meets the requirements for IDCM decoding, it first decodes whether the current node is a true IDCM node. If so, it continues to parse the DCM decoding mode of the current node, then obtains the number of points in the current DCM node, and finally decodes the geometric information of each point. For nodes that do not meet either plane decoding or DCM decoding requirements, the current node's occupancy information is decoded. By continuously parsing in this way, the placeholder code of each node is obtained, and the node is continuously partitioned until a 1×1×1 unit cube is obtained. The number of points contained in each leaf node is parsed, and the geometrically reconstructed point cloud information is finally recovered.

[0227] The following is a detailed introduction to the IDCM decoding process.

[0228] Similar to the processing at the encoding end, we first use prior information to determine whether the node should start IDCM. The starting conditions of IDCM are as follows:

[0229] (1) The current node has no sibling child nodes, that is, the parent node of the current node has only one child node, and the parent node of the parent node of the current node has only two occupied child nodes, that is, the current node has at most one neighbor node.

[0230] (2) The parent node of the current node has only one child node, the current node, and the six neighbor nodes that share a face with the current node are all empty nodes.

[0231] (3) The number of sibling nodes of the current node is greater than 1.

[0232] Furthermore, when a node meets the conditions for DCM coding, it is first decoded to determine whether the current node is a true DCM node, that is, IDCM_flag; when IDCM_flag is true, the current node adopts DCM coding, otherwise it still adopts octree coding.

[0233] Next, decode the number of points numPoints of the current node. The specific decoding method is as follows:

[0234] i) First decode whether numPonts of the current node is greater than 1;

[0235] ii) If the numPonts of the current node is greater than 1, continue decoding to see if the second point is a duplicate point; if the second point is not a duplicate point, it can be implicitly inferred that the second type of DCM mode contains only two points;

[0236] iii) If the numPonts of the current node obtained by decoding is less than or equal to 1, continue decoding to see if the second point is a repeated point; if the second point is not a repeated point, it can be implicitly inferred that the second type of DCM pattern is satisfied, which contains only one point; if the second point obtained by decoding is a repeated point, it can be inferred that the third type of DCM pattern is satisfied, which contains multiple points, but they are all repeated points, then continue decoding to see if the number of repeated points is greater than 1 (entropy decoding), and if it is greater than 1, continue decoding the number of remaining repeated points (using exponential Columbus decoding).

[0237] If the current node does not meet the requirements of the DCM node, it will exit directly (that is, the number of points is greater than 2 points and it is not a duplicate point).

[0238] After decoding the number of points in the current node, the coordinate information of the points contained in the current node is decoded. The following will introduce the lidar point cloud and the human eye point cloud in detail.

[0239] (1) Point cloud facing the human eye.

[0240] (1) If the current node contains only one point, the geometric information of the point in three dimensions will be directly decoded (Bypass coding);

[0241] (2) If the current node contains two points, the first decoded coordinate axis dirextAxis will be obtained by using the geometric coordinates of the points. It should be noted that the coordinate axes currently compared only include the x and y axes, not the z axis. Assuming that the geometric coordinates of the current node are nodePos, the judgment method is as follows:

[0242] dirextAxis=!(nodePos[0] <nodePos[1])(9)

[0243] That is, the axis with the smallest node coordinate geometry position will be used as the priority decoding axis dirextAxis, and then the geometry information of the priority decoding axis dirextAxis will be decoded first in the following way. Assume that the geometry bit depth to be decoded corresponding to the priority decoding axis is nodeSizeLog2, and assume that the coordinates of the two points are pointPos[0] and pointPos[1]. The specific encoding process is as follows:

[0244] After decoding the prioritized axis dirextAxis, the geometric coordinates of the current point are directly decoded. Assuming the remaining encoding bit depth of each point is nodeSizeLog2 and the coordinate information of the point is pointPos, the specific decoding process is as follows:

[0245] (2) LiDAR point cloud.

[0246] If the current node contains two points, the priority decoding axis dirextAxis will be obtained first by using the geometric coordinates of the points. Assuming that the geometric coordinates of the current node are nodePos, the judgment method is as follows:

[0247] dirextAxis=!(nodePos[0] <nodePos[1])(10)

[0248] That is, the axis with the smaller node coordinate geometry position will be used as the priority decoding axis dirextAxis. It should be noted that the currently compared coordinate axes only include the x-axis and y-axis, not the z-axis. Secondly, the priority encoded coordinate axis dirextAxis geometry information is first decoded as follows, assuming that the encoding geometry bit depth corresponding to the priority decoded axis is nodeSizeLog2, and assuming that the coordinates of the two points are pointPos[0] and pointPos[1]. The specific encoding process is as follows:

[0249] After decoding the priority coordinate axis dirextAxis, the geometric coordinates of the current point are decoded.

[0250] Similarly, we first use the current node's geometry information nodePos to get a direct decoding main axis direction, and then use the geometry information of the decoded direction to decode the geometry information of the other dimension. Assuming that the axis direction of direct decoding is directAxis and the bit depth to be decoded in direct decoding is nodeSizeLog2, the decoding method is as follows:

[0251] It should be noted here that all geometric accuracy information in the directAxis direction will be decoded here.

[0252] After decoding all the precision of the directAxis coordinate direction, the current node's LaserIdx (nodeLaserIdx) is calculated first. Then, the node's LaserIdx (nodeLaserIdx) is used to predict and decode the point's LaserIdx (pointLaserIdx). The calculation method for the node or point's LaserIdx is the same as that of the encoder. Finally, the residual information of the current point's LaserIdx and the node's LaserIdx prediction is decoded to obtain ResLaserIdx. The decoding method is as follows:

[0253] PointLaserIdx=nodeLaserIdx+ResLaserIdx(11)

[0254] After decoding the LaserIdx of the current point, the three-dimensional geometric information of the current point is predicted and decoded using the acquisition parameters of the laser radar. The specific algorithm is as follows:

[0255] As shown in Figure 11, the LaserIdx corresponding to the current point is first used to obtain the corresponding predicted value of the horizontal azimuth angle, that is, Secondly, the node geometry information corresponding to the current point is used to obtain the horizontal azimuth angle corresponding to the node Assuming that the geometric coordinates of the node are nodePos, the horizontal azimuth angle The calculation method between the node geometry information is as follows:

[0256] By using the acquisition parameters of the laser radar, we can get the number of rotation points of each laser, numPoints, which represents the number of points obtained by each laser ray rotating one circle. Then, we can use the number of rotation points of each laser to calculate the rotation angular velocity deltaPhi of each laser. The calculation method is as follows:

[0257] Furthermore, using the horizontal azimuth angle of the node And the horizontal azimuth of the previous Laser code point corresponding to the current point Calculate the predicted horizontal azimuth angle corresponding to the current point That is, the predicted value of the horizontal azimuth angle as shown in Figures 17A and 17B. The calculation method is as follows:

[0258] Thus, by using the predicted value of the horizontal azimuth and the low plane horizontal azimuth of the current node and the horizontal azimuth of the high plane To predict and decode the geometric information of the current node. The details are as follows:

[0259] int context=(angLel≥0&&angLeR≥0)||(angLel<0&&angLeR<0)? 0:2;

[0260] int absAngleL=abs(angLel);

[0261] int absAngleR=abs(angLeR);

[0262] context+=absAngleL>absAngleR? 0:1;

[0263] context+=maxAngle>minAngle<1? 4:0.

[0264] After decoding the LaserIdx of the completed point, the Z-axis direction of the current point will be predicted and decoded using the LaserIdx corresponding to the current point. That is, the depth information radius of the radar coordinate system is calculated by using the x and y information of the current point. Then, the tangent value of the current point and the vertical offset are obtained using the LaserIdx of the current point. The predicted value of the Z-axis direction of the current point, namely Z_pred, can be obtained. The details are as follows:

[0265] int tanTheta=tanθ laserIdx ;

[0266] int zOffset = Z laserIdx ;

[0267] Z_pred=radius×tanTheta-zOffset.

[0268] Furthermore, the decoded Z_res and Z_pred are used to reconstruct and restore the geometric information of the current point in the Z-axis direction.

[0269] For triangle soup (trisoup)-based geometric information coding, geometric partitioning must also be performed first in the trisoup-based geometric information coding framework. However, unlike geometric information coding based on binary trees, quadtrees, and octrees, this method does not require step-by-step partitioning of the point cloud into unit cubes with side lengths of 1×1×1. Instead, the partitioning stops when the sub-blocks (blocks) have a side length of W. Based on the surface formed by the distribution of the point cloud in each block, the surface and the twelve edges of the block are obtained. The vertex coordinates of each block are encoded in sequence to generate a binary code stream.

[0270] For trisoup-based point cloud geometry reconstruction, when performing point cloud geometry reconstruction at the decoding end, the vertex coordinates are first decoded to complete the triangle face reconstruction. This process is shown in Figures 19A, 19B, and 19C. Among them, there are three intersection points (v1, v2, v3) in the block shown in Figure 19A. The set of triangle faces formed by these three intersection points in a certain order is called triangle soup, or trisoup, as shown in Figure 19B. Afterwards, sampling is performed on the triangle face set, and the obtained sampling points are used as the reconstructed point cloud within the block, as shown in Figure 19C.

[0271] For predictive geometry coding (PredGeomTree), the following steps are involved: first, sort the input point cloud. Currently, the sorting methods used include unordered, Morton order, azimuth order, and radial distance order. At the encoding end, the prediction tree structure is established using two different methods: KD-Tree (high-latency slow mode) and low-latency fast mode (using lidar calibration information). When using lidar calibration information, each point is divided into different lasers, and a prediction tree structure is established according to the different lasers. Next, based on the structure of the prediction tree, each node in the prediction tree is traversed, and the geometric position information of the node is predicted by selecting different prediction modes to obtain the prediction residual, and the geometric prediction residual is quantized using the quantization parameter. Finally, through continuous iteration, the prediction residual of the prediction tree node position information, the prediction tree structure, and the quantization parameter are encoded to generate a binary code stream.

[0272] For geometric decoding based on the prediction tree, the decoding end reconstructs the prediction tree structure by continuously parsing the bit stream. Secondly, the geometric position prediction residual information and quantization parameters of each prediction node are obtained through parsing, and the prediction residual is dequantized to restore the reconstructed geometric position information of each node, finally completing the geometric reconstruction at the decoding end.

[0273] After the geometric encoding is completed, the geometric information needs to be reconstructed. At present, attribute encoding is mainly performed on color information. First, the color information is converted from the RGB color space to the YUV color space. Then, the point cloud is recolored using the reconstructed geometric information so that the unencoded attribute information corresponds to the reconstructed geometric information. In color information encoding, there are two main transformation methods. One is the distance-based lifting transformation that relies on LOD partitioning, and the other is to directly perform RAHT transformation. Both methods will convert the color information from the spatial domain to the frequency domain, and obtain high-frequency coefficients and low-frequency coefficients through transformation. Finally, the coefficients are quantized and encoded to generate a binary code stream, as shown in Figures 4A and 4B.

[0274] Furthermore, when using geometric information to predict attribute information, Morton codes can be used to perform nearest neighbor search. The Morton code corresponding to each point in the point cloud can be obtained from the geometric coordinates of the point. The specific method for calculating the Morton code is described below. For a three-dimensional coordinate represented by a d-bit binary number for each component, its three components can be expressed as:

[0275] Among them, x l ,y l ,z l ∈{0,1} are the binary values ​​corresponding to the highest bit (l=1) to the lowest bit (l=d) of x, y, and z respectively. The Morton code M is to cross-arrange x, y, and z starting from the highest bit. l ,y l ,z l To the lowest bit, the calculation formula of M is as follows:

[0276] Among them, m l ′∈{0,1} are the values ​​of the highest bit (l′=1) to the lowest bit (l′=3d) of M. After obtaining the Morton code M of each point in the point cloud, the points in the point cloud are arranged in ascending order of the Morton code, and the weight value w of each point is set to 1.

[0277] It can also be understood that for the G-PCC codec framework, the general test conditions are as follows:

[0278] (1) There are 4 test conditions:

[0279] Condition 1: The geometric position is limited and the attributes are lost;

[0280] Condition 2: Geometric position lossless, attribute lossy;

[0281] Condition 3: Geometric position lossless, attribute loss limited;

[0282] Condition 4: Geometric position and attributes are lossless.

[0283] (2) The general test sequence includes four categories: Cat1A, Cat1B, Cat3-fused, and Cat3-frame. Among them, Cat2-frame point cloud only contains reflectance attribute information, Cat1A and Cat1B point clouds only contain color attribute information, and Cat3-fused point cloud contains both color and reflectance attribute information.

[0284] (3) Technical routes: There are two types in total, which are distinguished by the algorithm used for geometric compression.

[0285] Technical route 1: Octree encoding branch.

[0286] At the encoding end, the bounding box is divided into sub-cubes in sequence, and the non-empty sub-cubes (containing points in the point cloud) are divided again until the leaf node obtained is a 1×1×1 unit cube. In the case of geometric lossless coding, the number of points contained in the leaf node needs to be encoded, and finally the geometric octree encoding is completed to generate a binary code stream.

[0287] At the decoding end, the decoding end obtains the placeholder code of each node by continuously parsing in the order of breadth-first traversal, and continuously divides the nodes in turn until a 1×1×1 unit cube is obtained. In the case of geometric lossless decoding, it is necessary to parse the number of points contained in each leaf node and finally recover the geometrically reconstructed point cloud information.

[0288] Technical route 2: prediction tree encoding branch.

[0289] On the encoding side, the prediction tree structure is established using two different methods: based on KD-Tree (high-latency slow mode) and using lidar calibration information (low-latency fast mode). Using lidar calibration information, each point can be divided into different lasers, and the prediction tree structure is established according to different lasers. Next, based on the structure of the prediction tree, each node in the prediction tree is traversed, and the geometric position information of the node is predicted by selecting different prediction modes to obtain the prediction residual, and the geometric prediction residual is quantized using the quantization parameter. Finally, through continuous iteration, the prediction residual of the prediction tree node position information, the prediction tree structure, and the quantization parameters are encoded to generate a binary code stream.

[0290] At the decoding end, the decoding end reconstructs the prediction tree structure by continuously parsing the bit stream. Secondly, the geometric position prediction residual information and quantization parameters of each prediction node are obtained through parsing, and the prediction residual is dequantized to restore the reconstructed geometric position information of each node, finally completing the geometric reconstruction at the decoding end.

[0291] It should also be noted that, as shown in FIG. 4A or FIG. 4B, the current G-PCC coding framework includes three attribute coding methods: Predicting Transform (PT), Lifting Transform (LT), and Region Adaptive Hierarchical Transform (RAHT). Among them, the first two perform point cloud prediction coding based on the generation order of LoDs, while RAHT adaptively transforms the attribute information from bottom to top according to the construction levels of the octree. The following will introduce these three point cloud attribute coding methods specifically.

[0292] (a) Predictive coding of point cloud attribute information.

[0293] Currently, the attribute prediction module of G-PCC adopts a nearest neighbor attribute prediction coding scheme based on a Level-of-details (LoDs) structure. The construction methods of LoDs include a distance-based LoD construction scheme, a fixed sampling rate-based LoD construction scheme, and an octree-based LoD construction scheme, etc. In the distance threshold-based LoD construction scheme, before constructing LoD, the point cloud is first sorted by Morton to ensure strong attribute correlation between adjacent points. FIG. 20 is a schematic diagram of a distance-based LoD construction process. As shown in FIG. 20, according to L Manhattan distances (dl) preset by the user in advance, l = 0, 1, … L-1; the point cloud is divided into L different point cloud detail levels (Rl), l = 0, 1, … L-1, where (dl)l = 0, 1, … L-1 satisfies dl < dl-1. The LoD construction process is as follows:

[0294] (1) First, mark all points in the point cloud as unvisited, and establish a set V to store the set of visited points; (2) For each iteration l, by traversing the points in the point cloud, if the current point has been visited, ignore it, otherwise calculate the minimum distance D from the current point to the set V. If D < dl, ignore the point; otherwise, mark the current point as visited and add the current point to the refinement level Rl and the set V; (3) The points in the detail level LoDl are composed of the points in the refinement levels R0, R1, R2…Rl; (4) Continuously repeat the above steps until all points are marked as visited.

[0295] Based on the LOD structure, the attribute value of each point is linearly weighted predicted using the attribute reconstruction values ​​of points in the same or higher LOD layer. The maximum number of reference prediction neighbors is determined by the encoder's high-level syntax elements. For each point attribute, the encoder uses a rate-distortion optimization algorithm to select a weighted prediction using the attributes of the N nearest neighbors found, or a single nearest neighbor for prediction. Finally, the selected prediction mode and prediction residual are encoded.

[0296] Among them, N represents the number of predicted points in the nearest neighbor point set of point i, Pi represents the sum of the N nearest neighbor points of point i, Dm represents the spatial geometric distance from the nearest neighbor point m to the current point i, Attrm represents the attribute value of the nearest neighbor point m after reconstruction, Attr i ′ represents the attribute prediction value of the current point i, and the number of points N is a preset value.

[0297] To balance attribute coding efficiency and parallel processing between different LOD layers, a switch is introduced in the encoder's high-level syntax elements to control whether to use intra-LOD prediction. If turned on, intra-LOD prediction is enabled, allowing predictions to be made using points within the same LOD layer. Note that when the number of LOD layers is 1, intra-LOD prediction is always used.

[0298] Figure 21 shows a visualization of the LOD generation process. This provides a subjective example of the distance-based LOD generation process. Specifically (from left to right): points in the first layer represent the outer contours of the point cloud; as the number of detail layers increases, the point cloud details become increasingly clear.

[0299] Figure 22 is a schematic diagram of the attribute prediction encoding process. As shown in Figure 22, for the specific process of G-PCC attribute prediction, for the original point cloud, the three nearest neighbors of the Kth point are first searched, and then attribute prediction is performed. The difference between the attribute prediction value of the Kth point and the original attribute value of the Kth point is calculated to obtain the prediction residual of the Kth point. Quantization and arithmetic coding are then performed to finally generate the attribute bit rate.

[0300] (i) Optimal prediction value selection:

[0301] After the LOD is constructed, according to the generation order of LOD, the three nearest neighboring points of the current point to be encoded are first found from the encoded data points. The attribute reconstruction values ​​of these three nearest neighboring points are used as candidate prediction values ​​of the current point to be encoded; then, the optimal prediction value is selected from them according to the rate-distortion optimization (RDO). For example, when encoding the attribute value of point P2 in Figure 20, the prediction variable index of the attribute value of the nearest neighbor point P4 is set to 1; the attribute prediction variable indexes of the second nearest neighbor point P5 and the third nearest neighbor point P0 are set to 2 and 3 respectively; the prediction variable index of the weighted average of points P0, P5 and P4 is set to 0, as shown in Table 1; finally, RDO is used to select the best prediction variable. The formula for weighted average is as follows:

[0302] in, Represents the spatial geometric weight of the neighboring point j to the current point i:

[0303] Represents the attribute prediction value of the current point i, j represents the index of the three neighboring points, Represents the attribute value after reconstruction of the neighboring points, x i ,y i ,z i is the geometric position coordinate of the current point i, x ij ,y ij ,z ij is the geometric coordinate of the neighboring point j.

[0304] For example, Table 1 provides an example of candidate prediction item samples for an attribute code.

[0305] Table 1

[0306] (ii) Attribute prediction residuals and quantification:

[0307] The attribute prediction value of the current point i is obtained through the above prediction (k is the total number of points in the point cloud). Let (a i ) i∈0…k-1 is the original value of the attribute of the current point, then the attribute residual (r i ) i∈0…k-1 Denoted as:

[0308] Further quantify the prediction residuals:

[0309] Among them, Q iIt represents the quantized attribute residual of the current point i, Qs is the quantization step (Qs), which can be calculated by the quantization parameter QP (QP) specified by CTC.

[0310] (iii) The encoding end reconstructs the attribute value:

[0311] The purpose of reconstruction at the encoding end is to predict the subsequent points. Before reconstructing the attribute value, the residual must be dequantized. is the residual after inverse quantization:

[0312] and predicted value Add up to get the reconstruction value of point i

[0313] There are currently two main types of algorithms for attribute nearest neighbor search based on LOD partitioning: intra-frame nearest neighbor search and inter-frame nearest neighbor search. The inter-frame nearest neighbor search algorithm is detailed below, while the intra-frame nearest neighbor search can be divided into inter-layer nearest neighbor search and intra-layer nearest neighbor search.

[0314] (i) Intra-frame nearest neighbor search:

[0315] Intra-frame nearest neighbor search is divided into two algorithms: inter-layer nearest neighbor search and intra-layer nearest neighbor search. After LOD division, it resembles a pyramid structure, as shown in Figure 23.

[0316] In a specific implementation, for inter-layer nearest neighbor search, the pyramid structure is shown in Figure 24. Figure 25 is a schematic diagram of the LOD construction process for inter-layer nearest neighbor search. As shown in Figure 25, different LOD layers are obtained based on geometric information, resulting in LOD0, LOD1, and LOD2. Points in LOD0 are used to predict the attributes of points in the next LOD layer during the inter-layer nearest neighbor search process.

[0317] The entire process of searching for the nearest neighbor within a frame is described in detail below.

[0318] During the entire LOD partitioning process, there are three sets: O(k), L(k), and I(k). Among them, k is the index of the LOD layer during LOD partitioning, and I(k) is the input point set during the current LOD layer partitioning. After LOD partitioning, the O(k) set and L(k) set are obtained. The O(k) set stores the sampling point set, and L(k) is the point set in the current LOD layer. The entire LOD partitioning process is as follows:

[0319] (1) Initialization.

[0320] if k=0,L(k)←{}; otherwise,L(k)←L(k-1);

[0321] O(k)←{};

[0322] (2) Using the LOD partitioning algorithm, the sampling points are stored in O(k), and the remaining points are divided into L(k);

[0323] (3) When the next iteration is performed, I←O(k).

[0324] It should be noted here that since the entire LOD division process is based on the Morton code, O(k), L(k) and I(k) store the Morton code index corresponding to the point.

[0325] When performing inter-layer nearest neighbor search, that is, the points in the L(k) set perform nearest neighbor search in the O(k) set. The specific search algorithm is as follows:

[0326] Taking the nearest neighbor search based on spatial relationships as an example, when predicting the current point P, the neighbor search is performed by using the parent block (Block B) corresponding to point P. As shown in Figure 26, points in the neighbor blocks that are coplanar or colinear with the current parent block are searched for attributes.

[0327] Figure 27A shows a schematic diagram of a coplanar spatial relationship, where there are 6 spatial blocks that have a relationship with the current parent block. Figure 27B shows a schematic diagram of a coplanar and colinear spatial relationship, where there are 18 spatial blocks that have a relationship with the current parent block. Figure 27C shows a schematic diagram of a coplanar, colinear, and co-point spatial relationship, where there are 26 spatial blocks that have a relationship with the current parent block.

[0328] First, the coordinates of the current point are used to obtain the corresponding spatial block. Second, a nearest neighbor search is performed in the previously encoded LOD layer to find the spatial blocks that are coplanar, colinear, and co-point with the current block to obtain the N nearest neighbors of the current point.

[0329] After performing coplanar, colinear, and co-point nearest neighbor searches, if the N nearest neighbors of the current point are still not found, the N nearest neighbors of the current point will be found based on a fast search algorithm. The specific algorithm is as follows:

[0330] As shown in Figure 28, when performing inter-attribute layer prediction, the geometric coordinates of the current point to be encoded are first used to obtain the Morton code corresponding to the current point. Secondly, based on the Morton code of the current point, the first reference point (j) with a value greater than the Morton code of the current point is found in the reference frame. Then, the nearest neighbor search is performed within the range of [j-searchRange, j+searchRange].

[0331] The rest of the specific algorithms for updating the nearest neighbor are the same as the inter-frame nearest neighbor search algorithm and will not be described in detail here. The specific algorithms will be mentioned in the inter-frame nearest neighbor search algorithm.

[0332] It is understood that in the embodiment of the present application, a video frame can be understood as an image. For example, the current frame can be understood as the current image, and the reference frame can be understood as the reference image.

[0333] In another specific implementation, for the nearest neighbor search within a layer, Figure 29 shows a schematic diagram of the LOD structure of the nearest neighbor search within an attribute layer. As shown in Figure 29, if the intra-layer prediction algorithm is turned on, that is, the syntax element EnableRefferingSameLoD=1, then the nearest neighbor search within the layer can be allowed. For example, for the LOD1 layer, the nearest neighbor point of the current point P6 can be P1, which is not allowed in other layers; if the syntax element EnableRefferingSameLoD=0, then inter-layer search is allowed in other layers. For example, for the LOD1 layer, the nearest neighbor point of the current point P6 can be P4. That is to say, when the intra-layer prediction algorithm is turned on, the nearest neighbor search will be performed in the same layer LOD and the set of encoded points in the same layer to obtain the N nearest neighbors of the current point (the inter-layer nearest neighbor search is also performed).

[0334] When performing prediction within the attribute layer, a nearest neighbor search is performed based on a fast search algorithm. The specific algorithm is shown in Figure 30. The current point is represented by a grid. Assuming the Morton code index of the current point is i, the nearest neighbor search is performed in [i+1, i+searchRange]. The specific nearest neighbor search algorithm is consistent with the inter-frame block-based fast search algorithm and is not described in detail here.

[0335] (ii) Nearest neighbor search between frames:

[0336] Figure 28 is a schematic diagram of attribute inter-frame prediction. As shown in Figure 28, when performing attribute inter-frame prediction, the geometric coordinates of the current point to be encoded are first used to obtain the Morton code corresponding to the current point. Then, based on the Morton code of the current point, the first reference point (j) with a Morton code greater than the current point is found in the reference frame. Then, the nearest neighbor search is performed within the range [j-searchRange, j+searchRange].

[0337] The current nearest neighbor search within and between frames is based on block-based neighborhood search, as shown in Figure 31. As shown in Figure 31, when performing neighborhood search for the current point (Morton code index is i), the points in the reference frame are first divided into N (N=3) layers according to the Morton code. The specific division algorithm is as follows:

[0338] First layer: Assume that the points of the reference frame are numPoints, first divide the points in the reference frame into M (M=2 5 =32) points are divided into a block

[0339] middle;

[0340] Second layer: Based on the first layer, the blocks of the first layer are also processed every M (M=2 5 =32) blocks are divided into one

[0341] in the block;

[0342] The third layer: Based on the second layer, the blocks of the second layer are also processed every M (M=2 5 =32) blocks are divided into one

[0343] in the block;

[0344] Finally, the predicted structure shown in Figure 31 is obtained.

[0345] When performing attribute prediction based on the prediction structure shown in Figure 31, assuming that the Morton code index of the current point to be encoded is i, first obtain the first point in the reference frame whose Morton code is greater than or equal to the current point, with index j. Then, the block index of the reference point is calculated based on j. The specific calculation method is as follows:

[0346] First layer: BucketSize_0 = 2 5 =32;

[0347] Second layer: BucketSize_1=2 5 =32×BucketSize_0=1024;

[0348] Third layer: BucketSize_2=2 5 =32×BucketSize_1=32768.

[0349] Assume that the reference range in the prediction frame of the current point is [j-searchRange, j+searchRange], use j-searchRange to calculate the starting index of the third layer, and use j+searchRange to calculate the ending index of the third layer; secondly, first determine whether some blocks in the second layer need to be searched for the nearest neighbor in the blocks of the third layer, and then go to the second layer, and determine whether a search is needed for each block in the first layer. If some blocks in the first layer need to be searched for the nearest neighbor, then the midpoints of some blocks in the first layer will be judged point by point to update the nearest neighbor.

[0350] The following is an introduction to the algorithm based on the index calculation block. Assuming that the Morton code index corresponding to the current point is index, then the index of the corresponding third-layer block is:

[0351] idx_2=index / BucketSize_2(24)

[0352] After obtaining the block index idx_2 on the third layer, you can use idx_2 to get the start and end indexes of the block corresponding to the current block on the second layer:

[0353] startIdx1=idx_2×BucketSize_1(25)

[0354] endIdx=idx_2×BucketSize_1+BucketSize_1-1(26)

[0355] Similarly, the index of the first layer block is obtained based on the index of the second layer block based on the same algorithm.

[0356] When performing a block-based nearest neighbor search, we first determine whether the current block needs to be searched for the nearest neighbor. This is called filtering the nearest neighbor search for the block. Each spatial block can be obtained through two variables: minPos and maxPos. MinPos represents the minimum value of the block, and maxPos represents the maximum value of the block.

[0357] Assume that the distance to the farthest point among the N nearest neighbors of the current point is Dist, the coordinates of the point to be encoded are (x, y, z), and the current block is represented by (minPos, maxPos), where minPos is the minimum value of the bounding box in three dimensions and maxPos is the maximum value of the bounding box in three dimensions. The distance D between the current point and the bounding box is calculated as follows:

[0358] int dx=int(std::max(std::max(minPos[0]-point[0],0),point[0]-maxPos[0]));

[0359] int dy=int(std::max(std::max(minPos[1]-point[1],0),point[1]-maxPos[1]));

[0360] int dz=int(std::max(std::max(minPos[2]-point[2],0),point[2]-maxPos[2]));

[0361] D = dx + dy + dz;

[0362] When D is less than or equal to Dist, the points in the current block will be traversed.

[0363] (b) Lifting transform encoding of point cloud attribute information.

[0364] Figure 32 is a schematic diagram of the encoding process of a lifting transform. The lifting transform also predicts the attributes of the point cloud based on LOD. The difference from the predictive transform is that the lifting transform first divides the LOD into high and low layers, predicts in the reverse order of the LOD generation layer, and introduces an update operator in the prediction process to update the quantized weights of the low-level LOD midpoints to improve the accuracy of the prediction. This is because the attribute values ​​of the low-level LOD midpoints are frequently used to predict the attribute values ​​of the high-level LOD midpoints, and the points in the low-level LOD should have greater influence.

[0365] Step 1: Segmentation process.

[0366] The segmentation process is to divide the complete LOD layer into a low LOD layer L(N) and a high LOD layer H(N). If a point cloud has three LOD layers, namely (LOD l ) l=0,1,2 , after segmentation, LOD2 is the high LOD layer, denoted as H(N), (LOD l ) l=0,1 It is the low LOD layer, denoted as L(N).

[0367] Step 2: Prediction process.

[0368] The point in the high-level LOD selects the attribute information of the nearest neighbor point from the low-level as the attribute prediction value P(N) of the current point to be coded, and the prediction residual D(N) is recorded as:

[0369] D(N)=H(N)-P(N)(27)

[0370] Step 3: Update process.

[0371] Update the attribute prediction residual D(N) in the high-level LOD to obtain U(N), and use U(N) to improve the attribute value of the midpoint of the low-level LOD, as shown in the following formula:

[0372] L′(N)=L(N)+U(N)(28)

[0373] The above process will iterate continuously until the lowest LOD according to the order of LOD from high to low.

[0374] Because the LOD-based prediction scheme makes points in the lower LOD layers more influential, the transformation scheme based on the lifting wavelet transform introduces quantization weights and updates the prediction residual based on the prediction residual D(N) and the distance between the prediction point and the adjacent points. Finally, the quantization weights used in the transformation process are used to adaptively quantize the prediction residual. It is important to note that the quantization weight value of each point can be determined by geometric reconstruction at the decoding end, so the quantization weights should not be encoded.

[0375] (c) Region-adaptive hierarchical transformation.

[0376] The Regional Adaptive Hierarchical Transform (RAHT) is a Haar wavelet transform that transforms point cloud attribute information from the spatial domain to the frequency domain, further reducing the correlation between point cloud attributes. Its main concept is to transform the nodes in each layer in the X, Y, and Z dimensions in a bottom-up manner according to the octree structure (as shown in Figure 34), and iterate until the root node of the octree. As shown in Figure 33, the basic concept is to perform a wavelet transform based on the hierarchical structure of the octree, associate attribute information with the octree nodes, and recursively transform the attributes of occupied nodes under the same parent node in a bottom-up manner, transforming the nodes in each layer in the X, Y, and Z dimensions until the root node of the octree is reached. During the hierarchical transformation process, the low-pass / low-frequency (DC) coefficients obtained after the transformation of the nodes in the same layer are passed to the nodes in the next layer for further transformation, while all high-pass / high-frequency (AC) coefficients can be encoded using an arithmetic coder.

[0377] During the transformation process, the DC coefficients (direct current components) of the transformed nodes at the same layer are passed to the previous layer for further transformation, while the AC coefficients (alternating current components) of each layer are quantized and encoded. The main transformation processes are described below.

[0378] FIG35A is a schematic diagram of a RAHT forward transformation process, and FIG35B is a schematic diagram of a RAHT inverse transformation process. For the transformation and inverse transformation process corresponding to RAHT, assuming that g′ L,2x,y,z and g′L,2x+1,y,z are the DC coefficients of two neighboring points in the L layer. After linear transformation, the information of the L-1 layer is the AC coefficient f′ L-1,x,y,z and DC coefficient g′ L-1,x,y,z ; Then, f′ L-1,x,y,z No more transformation will be performed, and quantization coding will be performed directly, g′ L-1,x,y,z The nearest neighbor will continue to be searched for transformation. If no neighbor is found, it will be directly passed to the L-2 layer. That is, the RAHT transformation is only effective for nodes with neighbor points. Nodes without neighbor points will be directly passed to the previous layer. In the above transformation process, g′ L,2x,y,zThe weights (the number of non-empty child nodes in the node) corresponding to g′L, 2x+2, y, and z are w′ respectively. L,2x,y,z and w′L,2x+1,y,z (abbreviated as w′0 and w′1), g′ L-1,x,y,z The weight is w′ L-1,x,y,z , then the general transformation formula is:

[0379] Among them, T w0,w1 is the transformation matrix:

[0380] The transformation matrix will be updated as the weights corresponding to each point change adaptively. The above process will be iterated and updated continuously according to the partitioning structure of the octree until the root node of the octree is reached.

[0381] In a specific implementation method, for regional adaptive hierarchical intra-frame prediction transform coding, prediction can be performed based on RAHT transform coding. As shown in Figure 33, RAHT attribute transform is based on the order of the octree hierarchy, and the transformation is continuously performed from the voxel level until the root node is obtained, thereby completing the hierarchical transform coding of the entire attribute. In the prediction transform coding, attribute prediction transform coding is also performed based on the hierarchical order of the octree, but the transformation is continuously performed from the root node to the voxel level. In each RAHT attribute transformation process, attribute prediction transform coding is performed based on a 2×2×2 block. The details are shown in Figure 36. As shown in Figure 36, it can be seen that the grid filling block is the current block to be encoded, and the diagonal filling block is some neighboring blocks that are coplanar and colinear with the current block to be encoded. Among them, the attributes of the current block are normalized in the following way:

[0382] A node =∑ p∈node attribute(p);

[0383] w node =∑ p∈node 1 = {p∈node};

[0384] a node =A node / w node .

[0385] First, the attributes of the current block can be obtained by the attributes of the points contained in the current block, namely: A node By simply adding the attributes of the points in the current block, and then normalizing the attributes of the current block with the number of points in the current block, the mean value a of the current block attribute is obtained. node The attribute transform coding is performed using the mean value of the current block attribute. The specific coding process is shown in Figure 37.

[0386] As shown in Figure 37, the overall process of RAHT attribute prediction transform coding is shown. (a) is the current block and some coplanar and colinear neighboring blocks, (b) is the normalized block, (c) is the upsampled block, (d) is the attribute of the current block, and (e) is the attribute of the predicted block obtained by linear weighted fitting using the neighboring attributes of the current block. Finally, attribute transformation is performed on both to obtain DC and AC coefficients, and the AC coefficients are predictively coded.

[0387] The predicted attributes of the current block can be obtained by linear fitting as shown in Figure 38. As shown in Figure 38, 19 neighboring blocks of the current block are first obtained. Then, the spatial geometric distance between the neighboring blocks and each sub-block of the current block is used to perform a linear weighted prediction of the attributes of each sub-block. Finally, the predicted block attributes obtained using the linear weighting are transformed. The specific attribute transformation is shown in Figure 39.

[0388] In Figure 39, (d) represents the original value of the attribute, and the corresponding attribute transformation coefficient is as follows:

[0389] (e) represents the attribute prediction value, and the corresponding attribute transformation coefficient is as follows:

[0390] By subtracting the original value of the attribute from the predicted value of the attribute, the prediction residual can be obtained as follows:

[0391] In another specific implementation, for region-adaptive hierarchical inter-frame prediction transform coding, in G-PCC attribute inter-frame prediction coding scheme 1, the process is similar to intra-frame prediction coding. First, the RAHT attribute transform coding structure is constructed based on geometric information. That is, the transformation is continuously performed from the voxel level until the root node is obtained, thereby completing the hierarchical transform coding of the entire attribute. In this way, the intra-frame coding structure and the inter-frame coding structure are constructed. The inter-frame coding structure of the RAHT attribute can be seen in Figure 40.

[0392] As shown in FIG40 , firstly, the geometric information of the current node to be coded is used to obtain the same-position prediction node of the node to be coded in the reference frame, and then the geometric information and attribute information of the reference node are used to obtain the predicted attribute of the current node to be coded.

[0393] The attribute prediction value of the current node to be encoded is obtained in the following two different ways:

[0394] ① The inter-frame prediction node of the current node is valid: that is, if the same-position node exists, the attribute of the predicted node is directly used as the attribute prediction value of the current node to be encoded;

[0395] ② The inter-frame prediction node of the current node is invalid: that is, the co-located node does not exist, then the attribute prediction value of the adjacent node in the frame is used as the attribute prediction value of the node to be encoded.

[0396] Finally, the attribute prediction value is used to predict the attribute of the current node to be encoded, thereby completing the predictive coding of the entire attribute.

[0397] In another specific implementation method, for regional adaptive hierarchical inter-frame prediction transform coding, in the G-PCC attribute inter-frame prediction coding scheme 2, unlike the intra-frame prediction coding and inter-frame prediction coding scheme 1, if the inter-frame prediction coding scheme 2 is started, the RAHT attribute transform coding structure will be constructed based on the geometric information of the current node to be encoded, that is, the nodes will be continuously merged at the voxel level until the root node of the entire RAHT transform tree is obtained, thereby completing the transform coding hierarchical structure of the entire attribute. Secondly, according to the RAHT transform structure, the root node is divided to obtain N child nodes (N is less than or equal to 8) of each node. In the inter-frame prediction coding scheme 2, the attributes of the N child nodes will first be independently orthogonally transformed using the RAHT transform to obtain DC coefficients and AC coefficients. Then, the AC coefficients of the N child nodes are subjected to attribute inter-frame prediction in the following manner:

[0398] ① The inter-frame prediction node of the current node is valid: that is, if the same-position node exists, the attribute of the prediction node is directly used as the attribute prediction value of the current node to be encoded

[0399] ② The current node can find a node with exactly the same position as the current node in the cache of the reference frame: that is, if the same-position node exists, the AC coefficients of the M child nodes contained in the same-position node are directly used as the AC coefficient attribute prediction values ​​of the N child nodes of the current node.

[0400] If the AC coefficient of the predicted node is not zero: the AC coefficient of the predicted node is directly used as the predicted value;

[0401] If the AC coefficient of the prediction node is zero, the AC coefficient of the corresponding child node of the intra-frame prediction will be used as the prediction value.

[0402] ③ The inter-frame prediction node of the current node is invalid: that is, the co-located node does not exist, then the attribute prediction value of the adjacent node in the frame is used as the attribute prediction value of the node to be encoded.

[0403] Simply put, when encoding the RAHT attribute transform of G-PCC, encoding and decoding can be performed in the order from the root node to the child node. First, the geometric information of the current layer node is used to restore the child nodes of the current layer in the order of Z, Y and X. Secondly, the attributes of the current layer node that have been reconstructed are used to predict and decode the attributes of the current layer node, thereby restoring the attributes of the current layer node until the transformation is to the child node, that is, the voxel level. However, in G-PCC, if the number of current layer nodes is exactly the same as the number of child nodes of the current layer node, it means that each node in the current layer has only one child node, that is, the current layer will not generate AC coefficients. However, in the existing coding scheme, the nodes of the current layer still need to be transformed, predicted, and other processes in sequence. This will increase the complexity of RAHT attribute transform encoding and decoding and introduce redundant operations. Similarly, in the existing RAHT coding scheme, the codec first completes the encoding and decoding of non-node-level attribute information (i.e., the node size is greater than or equal to 1×1×1), and finally encodes and decodes the attribute information of the voxel-level nodes. This is because there may be a situation in the point cloud where there are duplicate points. Therefore, it is necessary to complete the encoding and decoding of the attribute information of the non-voxel-level points first, and then complete the encoding and decoding of the attribute information of the voxel-level points. Since there are no duplicate points in the current coding unit, the voxel-level point attribute information still needs to be encoded and decoded, further increasing the time complexity of attribute transform encoding / decoding.

[0404] Based on this, an embodiment of the present application provides an encoding method, which first determines a first number of voxel nodes of a current unit and a second number of reconstruction nodes of the current unit; then, based on the first number and the second number, determines whether to skip encoding of the attribute information of the voxel nodes of the current unit. An embodiment of the present application also provides a decoding method, which first determines a first number of voxel nodes of a current unit and a second number of reconstruction nodes of the current unit; wherein the first number and the second number are used to determine whether to skip decoding of the voxel nodes of the current unit; then, based on the first number and the second number, determines the attribute reconstruction value of the voxel nodes of the current unit.

[0405] In this way, when reconstructing the attributes of each voxel node, the judgment conditions for whether to perform attribute encoding and decoding on each voxel node are optimized. Specifically, if there are no duplicate nodes in the current unit, that is, the first number and the second number are the same, there is no need to encode and decode the voxel nodes of the current unit. Therefore, on the basis of ensuring the encoding and decoding efficiency of the point cloud attributes, the time complexity of the point cloud attribute encoding and decoding can be reduced, and the bit rate can also be saved, thereby improving the encoding and decoding performance of the point cloud.

[0406] The embodiments of the present application will be described in detail below with reference to the accompanying drawings.

[0407] In one embodiment of the present application, referring to FIG41 , a flowchart of a decoding method provided by an embodiment of the present application is shown. As shown in FIG41 , the method may include:

[0408] S4101: Determine a first number of voxel nodes of a current unit and a second number of reconstruction nodes of the current unit; wherein the first number and the second number are used to determine whether to skip decoding the voxel nodes of the current unit.

[0409] It should be noted that the decoding method of the embodiment of the present application is applied to a point cloud decoder (which may be referred to as a "decoder" for short). The method may refer to a point cloud decoding method, specifically a point cloud attribute decoding method, and more specifically, a skip decoding method for point cloud attribute RAHT transform prediction. Here, the optimization is mainly for whether the nodes of the current layer are skipped for decoding and whether the voxel nodes are skipped for decoding when divided into the voxel level, thereby reducing the time complexity of the attribute transformation encoding and decoding, and having no effect on the encoding and decoding efficiency of the attribute transformation.

[0410] It should also be noted that, in the embodiments of the present application, the current unit may be a current decoding unit to be decoded, which may be a slice. In some embodiments, the method may further include: dividing the nodes in the current unit to determine at least one layer; and when the nodes in the last layer are divided into voxel levels, determining the voxel nodes of the current unit and a first number of voxel nodes.

[0411] For example, in the RAHT attribute transformation, the order of the RAHT attribute transformation is to divide the point cloud from the root node in sequence until it is divided into the voxel level. Specifically, the division is stopped when the unit cube of size 1×1×1 is reached, thereby completing the encoding and reconstruction of the entire point cloud attribute. Here, as shown in Figure 42, each layer obtained by downsampling along the Z direction, Y direction, and X direction is a RAHT transformation layer, that is, layer. Then, when it is divided into a unit cube of size 1×1×1, it means that it has been divided into the voxel level. At this time, the voxel node and the first number of voxel nodes can be determined.

[0412] It should also be noted that, in the embodiment of the present application, the voxel node represents the node corresponding to the division from the root node to the voxel level, and the size of the voxel node is 1×1×1; the reconstruction node represents the node in the current unit that performs attribute reconstruction. Among them, before the nodes in the current unit are attribute decoded, the geometric information of the nodes in the current unit has been fully decoded. At this time, the second number of reconstructed nodes in the current unit can be determined, so that it can be determined whether the first number is consistent with the second number. That is to say, in the embodiment of the present application, before the voxel node is attribute decoded, it is first necessary to determine whether the first number is the same as the second number, and then determine whether the voxel node of the current unit is skipped for decoding.

[0413] In some embodiments, if the first number is the same as the second number, decoding of the voxel node of the current unit is skipped.

[0414] In some embodiments, if the first number is different from the second number, attribute decoding is performed on the repeated nodes in the voxel nodes, and decoding of the remaining voxel nodes except the repeated nodes in the voxel nodes is skipped.

[0415] In an embodiment of the present application, there may be duplicate nodes in the voxel nodes of the current unit division, so the first number and the second number may be inconsistent. If there are no duplicate nodes in the voxel nodes of the current unit division, then the first number and the second number are consistent; conversely, if there are duplicate nodes in the voxel nodes of the current unit division, then the first number and the second number are inconsistent, and attribute decoding is required for the duplicate nodes. Here, duplicate nodes (also referred to as "duplicate points") refer to multiple nodes with the same geometric information but different attribute information.

[0416] S4102: Determine the attribute reconstruction value of the voxel node of the current unit according to the first quantity and the second quantity.

[0417] It should be noted that in this embodiment of the present application, the attribute reconstruction value of the voxel node of the current unit can be directly copied from the attribute reconstruction value of the reconstructed node of the current unit. However, the attribute reconstruction value of the duplicate node cannot be copied and must be determined by decoding the bitstream. In other words, the difference between the first number and the second number can determine how to determine the attribute reconstruction value of the voxel node of the current unit.

[0418] In some embodiments, when the first number and the second number are the same, determining the attribute reconstruction value of the voxel node of the current unit based on the first number and the second number may include: setting the attribute reconstruction value of the voxel node of the current unit to the attribute reconstruction value of the reconstruction node of the current unit.

[0419] Exemplarily, if the first number is the same as the second number, decoding the attribute information of the voxel node of the current unit can be skipped, and the attribute reconstruction value of the voxel node can be directly copied as the attribute reconstruction value of the reconstruction node of the current unit.

[0420] In some embodiments, when the first number and the second number are different, determining the attribute reconstruction value of the voxel node of the current unit based on the first number and the second number may include: decoding the code stream to determine the attribute reconstruction value of the repeated node; using the attribute reconstruction value of the repeated node as the attribute reconstruction value of the first reconstruction node in the current unit, and setting the attribute reconstruction value of the remaining voxel nodes in the voxel node except the repeated node as the attribute reconstruction value of the remaining reconstruction nodes in the current unit except the first reconstruction node.

[0421] Exemplarily, if the first number is different from the second number, it indicates that there are duplicate nodes in the voxel nodes divided by the current unit. At this time, the attribute reconstruction value of the duplicate node can be decoded and determined, and then the attribute reconstruction value of the duplicate node can be used as the attribute reconstruction value of the first reconstruction node in the current unit, and the attribute reconstruction value of the remaining voxel nodes other than the duplicate node can be copied as the attribute reconstruction value of the remaining reconstruction nodes in the current unit except the first reconstruction node.

[0422] For example, for multiple nodes with the same geometric information but different attribute information (i.e., repeated nodes), the encoding end can use a timer to add the attribute information of these multiple nodes, and determine the added value as the attribute information of the node corresponding to the geometric information; subsequently, at the decoding end, a timer can also be used to separate the attribute information of each of the multiple nodes from this attribute information to obtain the attribute reconstruction value of the repeated node.

[0423] In some embodiments, decoding the code stream and determining the attribute reconstruction value of the repeated node may include: setting a timer; starting the timer when the attribute reconstruction value of the repeated node begins to be decoded, and determining that the attribute reconstruction value of the repeated node is completely decoded when the timer reaches a preset value.

[0424] It should be noted that when the first number is different from the second number, the third number of repeated nodes in the voxel node can also be determined based on the difference between the first number and the second number; wherein the setting of the timer is associated with the third number.

[0425] Exemplarily, a timer can be used to determine whether all attribute reconstruction values ​​of repeated nodes have been decoded. If the timer is in a positive counting mode, then when the attribute reconstruction value of the repeated node begins to be decoded, the initial value of the timer is 0, and when the timer counts to the third number, all attribute reconstruction values ​​of the repeated node have been decoded; if the timer is in a countdown mode, then when the attribute reconstruction value of the repeated node begins to be decoded, the initial value of the timer is the third number, and when the timer counts to 0, all attribute reconstruction values ​​of the repeated node have been decoded. After all attribute reconstruction values ​​of the repeated nodes have been decoded, it means that there are no repeated nodes in the subsequent voxel nodes, and the attribute decoding of these nodes can be skipped, and the attribute reconstruction values ​​of the subsequent remaining voxel nodes are directly copied as the attribute reconstruction values ​​of the final remaining reconstructed nodes.

[0426] It is understood that in this embodiment of the present application, at least one layer includes the current layer, where the current layer may be the RAHT transformed layer currently to be decoded, or referred to as a "RAHT attribute decoding layer." FIG43 is a flow chart of another decoding method provided in this embodiment of the present application. As shown in FIG43 , the method may include:

[0427] S4301: Determine the fourth number of nodes in the current layer and the fifth number of child nodes corresponding to the nodes in the current layer; wherein the fourth number and the fifth number are used to determine whether to skip decoding the current layer.

[0428] It should be noted that, in an embodiment of the present application, the fourth number of nodes in the current layer can be determined first, and the fifth number of child nodes corresponding to the nodes in the current layer can be determined at the same time. Before the attributes of the nodes in the current layer are decoded, since the geometric information of the nodes in the current layer has been decoded, the number of nodes in the current layer (i.e., the "fourth number") and the number of child nodes of the nodes in the current layer (i.e., the "fifth number") can be determined based on the geometric information of the nodes in the current layer.

[0429] Furthermore, in an embodiment of the present application, a RAHT attribute transform structure is first constructed based on the geometric information of the points in the point cloud, and decoding can be performed in order from the root node to the child nodes. Using the geometric information of the nodes in the current layer, the child nodes of the current layer are restored in the order of Z, Y, and X. Next, the attributes of the nodes in the previous layer are used to predictively decode the attributes of the nodes in the current layer, thereby restoring the reconstructed attribute values ​​of the nodes in the current layer. This process is continued until the voxel level is reached, resulting in a RAHT attribute transform structure comprising at least one RAHT transform layer.

[0430] It should be noted that in the embodiment of the present application, the RAHT attribute transform can be performed based on the order of the octree hierarchy. Among them, based on the hierarchical order of the octree, the transformation can be continuously performed from the voxel level to the root node, thereby constructing the octree. Then, during the prediction transformation process, the attribute prediction transform coding is also performed based on the hierarchical order of the octree, but the transformation is continuously performed from the root node to the voxel level.

[0431] It can be understood that in the embodiment of the present application, it can be defined that a layer obtained by downsampling along a preset direction, such as the Z direction, the Y direction and the X direction in sequence is a RAHT transformation layer, such as the current layer.

[0432] It should also be noted that, in the embodiment of the present application, the current layer may include at least one point, wherein the at least one point in the current layer may serve as a node to be decoded in the current layer when decoding the current layer.

[0433] Furthermore, in an embodiment of the present application, for each point in the current layer, it corresponds to a geometric information and an attribute information; wherein the geometric information represents the spatial relationship of the point, and the attribute information represents the relevant information of the attribute of the point.

[0434] Here, the attribute information may be color information, or reflectivity, or other attributes, which are not specifically limited in the embodiments of the present application. Specifically, when the attribute information is color information, it may be color information in any color space. For example, the attribute information may be color information in an RGB space, a YUV space, a YCbCr space, or the like, which are not specifically limited in the embodiments of the present application.

[0435] It should also be noted that in the embodiment of the present application, when performing RAHR transform encoding, the non-voxel level node attribute transformation and inverse transformation are completed first, and then the voxel level node transformation is completed, because there may be a situation in the point cloud, that is, there are duplicate nodes in the point cloud.

[0436] Accordingly, in an embodiment of the present application, if the nodes of the current layer are non-voxel level, then the fourth number can represent the number of occupied nodes of the current layer; and the fifth number can represent the number of occupied sub-nodes in the nodes of the current layer.

[0437] Accordingly, in an embodiment of the present application, if the nodes of the current layer are at the voxel level, the fourth number can represent the number of occupied nodes in the current layer; and the fifth number can represent the number of nodes to be decoded.

[0438] That is to say, in an embodiment of the present application, the fourth number is the number of valid nodes (i.e., occupied nodes) of the current layer, and for non-voxel-level nodes, the fifth number is the number of valid child nodes (i.e., occupied child nodes) of the nodes of the current layer, and for voxel-level nodes, the fifth number is the number of nodes to be decoded.

[0439] Furthermore, in an embodiment of the present application, the geometric information of the node of the current layer can be determined first; and then the child nodes corresponding to the node of the current layer and the fifth quantity can be determined based on the geometric information.

[0440] It should be noted that in an embodiment of the present application, for the current node of the current layer, when using the geometric information of the current node to determine the corresponding child node, you can choose to use the geometric information of the current node for upsampling to obtain the child nodes occupied by the current node (the number of child nodes is N, where the maximum value of N is 8).

[0441] Exemplarily, in some embodiments, when encoding and decoding the attribute information of the nodes of the current layer, the number of nodes of the current layer, that is, the fourth number, can be obtained first; at the same time, after using the geometric information of the nodes of the current layer to restore the child nodes of the nodes of the current layer, the number of child nodes of the nodes of the current layer, that is, the fifth number, can be obtained.

[0442] S4302: Determine the attribute reconstruction value of the child node corresponding to the node of the current layer according to the fourth quantity and the fifth quantity.

[0443] It should be noted that in an embodiment of the present application, after determining the fourth quantity and the fifth quantity corresponding to the node of the current layer, the attribute reconstruction value of the child node corresponding to the node of the current layer can be further determined based on the fourth quantity and the fifth quantity.

[0444] Furthermore, in an embodiment of the present application, after determining the fourth quantity and the fifth quantity corresponding to the nodes of the current layer, the fourth quantity and the fifth quantity can be used to encode and decode the attribute information of whether to skip the coding layer (current layer).

[0445] It can be understood that in the embodiment of the present application, since the RAHT transform is only valid for nodes with neighboring points, if the number of nodes in the current layer is exactly the same as the number of child nodes of the nodes in the current layer, it can be indicated that each node in the current layer has only one child node; in this case, the current layer will not generate AC coefficients (high-frequency coefficients), so it can be chosen to skip the transformation, prediction, and other processes performed on the nodes of the current layer in sequence.

[0446] That is, in the embodiment of the present application, by utilizing the number of nodes and the number of child nodes of the current layer, it is possible to adaptively determine whether the current layer can skip encoding and decoding. The key to determining whether to skip encoding and decoding for the current layer lies in whether the number of nodes and the number of child nodes of the current layer are the same, that is, whether the fourth number and the fifth number are the same.

[0447] In some embodiments, when determining the attribute reconstruction value of the child node corresponding to the node of the current layer based on the fourth quantity and the fifth quantity, the method may further include: if the fourth quantity and the fifth quantity are the same, determining the attribute reconstruction value of the node of the current layer as the attribute reconstruction value of the child node corresponding to the node of the current layer.

[0448] It can be understood that in an embodiment of the present application, if the fourth number and the fifth number corresponding to the nodes of the current layer are the same, it can be determined that the number of nodes in the current layer is the same as the number of child nodes corresponding to the nodes of the current layer. Then, it can be considered that for each node in the current layer, there is only one corresponding child node.

[0449] Accordingly, in an embodiment of the present application, since the RAHT transform is only valid for nodes with neighboring points, during the RAHT attribute transformation process, if each node in the current layer corresponds to only one child node, then it can be considered that the current layer will not generate AC coefficients. Therefore, it can be chosen not to transform, predict, etc. the nodes of the current layer in sequence, that is, skip the processing of the current layer. At this time, it can be called "skipping the decoding layer."

[0450] Accordingly, in an embodiment of the present application, if it is determined that the fourth quantity and the fifth quantity corresponding to the nodes of the current layer are the same, that is, it is determined that the current layer is a skip decoding layer, then you can choose to skip the transformation, prediction, etc. processes of the nodes of the current layer in sequence, and instead directly determine the attribute reconstruction value of the node of the current layer as the attribute reconstruction value of the child node corresponding to the node of the current layer.

[0451] That is to say, in an embodiment of the present application, during the RAHT attribute transformation process, if each node of the current layer corresponds to only one child node, then it is possible to choose not to perform transformation, prediction, and other processes on the nodes of the current layer in sequence, thereby reducing the complexity of the RAHT attribute transformation encoding and decoding.

[0452] Furthermore, in an embodiment of the present application, when determining the attribute reconstruction value of the child node corresponding to the node of the current layer based on the fourth number and the fifth number, if the fourth number and the fifth number are the same, it is determined that the current layer is a skip decoding layer, then you can choose to skip the current layer to the next layer, and then use the next layer as the current layer to continue to determine whether to skip decoding the nodes of the next layer.

[0453] Accordingly, in an embodiment of the present application, for the child node corresponding to the node of the current layer, the sixth number of the child nodes of the next layer corresponding to the child node can be determined first; then, based on the fifth number and the sixth number, the attribute reconstruction value of the child node of the next layer corresponding to the child node can be determined.

[0454] It can be understood that in an embodiment of the present application, if the child node corresponding to the node of the current layer is a non-voxel-level node, then the sixth number can be the number of valid child nodes in the next layer (i.e., the occupied child nodes in the next layer) of the child node corresponding to the node of the current layer; if the child node corresponding to the node of the current layer is a voxel-level node, then the sixth number can be the number of nodes to be decoded.

[0455] It should be noted that, in the embodiment of the present application, after determining the fifth number and the sixth number, the fifth number and the sixth number can be used to encode and decode the attribute information of whether to skip the coding layer (the next layer of the current layer).

[0456] Exemplarily, in some embodiments, if the fifth number and the sixth number are the same, then it may be possible to choose not to perform transformation, prediction, and other processes on the child nodes of the node of the current layer in sequence, that is, skip processing the child nodes of the current layer, and instead directly determine the attribute reconstruction value of the child node corresponding to the node of the current layer as the attribute reconstruction value of the child node of the next layer of the child node corresponding to the node of the current layer.

[0457] In some embodiments, when determining the attribute reconstruction value of the child node corresponding to the node of the current layer based on the fourth quantity and the fifth quantity, the method may further include: if the fourth quantity and the fifth quantity corresponding to the node of the current layer are different, determining the attribute prediction value of the child node corresponding to the node of the current layer based on the node of the current layer; performing RAHT transformation based on the attribute prediction value of the child node to determine the reconstruction value of the high-frequency coefficient and the low-frequency coefficient corresponding to the node of the current layer; performing RAHT inverse transformation based on the reconstruction value of the high-frequency coefficient and the low-frequency coefficient to determine the attribute reconstruction value of the child node.

[0458] It should be noted that in an embodiment of the present application, if the fourth number and the fifth number are different, it can be determined that the number of nodes in the current layer is different from the number of sub-nodes corresponding to the nodes in the current layer. At this time, the current layer will still generate AC coefficients, so the nodes of the current layer can continue to be transformed, predicted, etc. in sequence without skipping the processing of the current layer. At this time, the current layer can be used as a non-skipped decoding layer.

[0459] Furthermore, in some embodiments, when determining the attribute prediction value of the child node corresponding to the node of the current layer based on the node of the current layer, it can include: determining the adjacent nodes corresponding to the node of the current layer; and determining the attribute prediction value of the child node corresponding to the node of the current layer based on the attribute reconstruction value and relative distance parameter corresponding to the adjacent nodes.

[0460] It should also be noted that, in the embodiment of the present application, the adjacent node may refer to the neighboring node of the current node, wherein the relative distance parameter corresponding to the adjacent node may represent the spatial geometric distance between the child node corresponding to the node of the current layer and the corresponding adjacent node.

[0461] Exemplarily, in an embodiment of the present application, for the current node of the current layer, the current node includes two sub-nodes, sub-node 1 and sub-node 2. The relative distance parameter between the current node and the adjacent node may include the spatial geometric distance between sub-node 1 and the adjacent node, and may also include the spatial geometric distance between sub-node 2 and the adjacent node.

[0462] Exemplarily, in an embodiment of the present application, when determining the attribute prediction value of the child node corresponding to the node of the current layer based on the node of the current layer, for the current node of the current layer, the reconstructed attributes (attribute reconstruction values) of the neighboring nodes of the current node and the spatial geometric distance of each neighboring node from the child node of the current node can be used to perform linear fitting, and finally obtain the attribute prediction value of each child node of the current node.

[0463] For example, in an embodiment of the present application, for the current node of the current layer, the 19 adjacent nodes of the current node can be determined first, and then the spatial geometric distance between the adjacent nodes and each child node of the current node can be used to perform linear weighted prediction on the attributes of each child node, and finally the attribute prediction value of each child node can be obtained.

[0464] Further, in some embodiments, when performing a RAHT transformation based on the attribute prediction value of the child node to determine the reconstructed value of the high-frequency coefficient and the low-frequency coefficient corresponding to the node of the current layer, it can include: performing a RAHT transformation based on the attribute prediction value of the child node to determine the predicted value of the high-frequency coefficient and the low-frequency coefficient corresponding to the node of the current layer; and determining the reconstructed value of the high-frequency coefficient corresponding to the node of the current layer according to the predicted value of the high-frequency coefficient.

[0465] It is understood that in the embodiment of the present application, for the current node of the current layer, after determining the attribute prediction value corresponding to the child node of the current node, the attribute prediction value of the corresponding child node can be used to perform RAHT attribute transformation, thereby obtaining the corresponding DC coefficient and AC coefficient, that is, obtaining the DC coefficient and AC coefficient corresponding to the current node. Among them, the DC coefficient is the low-frequency coefficient, and the AC coefficient is the high-frequency coefficient.

[0466] It should be noted that, in the embodiment of the present application, for the current node of the current layer, the AC coefficient obtained by performing RAHT attribute transformation using the attribute prediction value corresponding to the sub-node can be understood as the prediction value of the high-frequency coefficient corresponding to the current node.

[0467] Furthermore, in some embodiments, when determining the reconstructed value of the high-frequency coefficient corresponding to the node of the current layer based on the predicted value of the high-frequency coefficient, it can include: decoding the code stream to determine the quantized coefficient residual corresponding to the node of the current layer; and determining the reconstructed value of the high-frequency coefficient corresponding to the node of the current layer based on the predicted value of the high-frequency coefficient and the quantized coefficient residual.

[0468] Further, in some embodiments, when determining the reconstructed value of the high-frequency coefficient corresponding to the node of the current layer based on the predicted value of the high-frequency coefficient and the quantized coefficient residual, it can include: inverse quantizing the quantized coefficient residual to determine the inverse quantized residual value corresponding to the node of the current layer; determining the reconstructed value of the high-frequency coefficient corresponding to the node of the current layer based on the inverse quantized residual value corresponding to the node of the current layer and the predicted value of the high-frequency coefficient corresponding to the node of the current layer.

[0469] Exemplarily, in an embodiment of the present application, the inverse quantized residual value corresponding to the node of the current layer and the predicted value of the high-frequency coefficient corresponding to the node of the current layer can be summed up to obtain the reconstructed value of the high-frequency coefficient corresponding to the node of the current layer.

[0470] It should also be noted that in an embodiment of the present application, after determining the reconstruction values ​​of the low-frequency coefficients and high-frequency coefficients of the nodes of the current layer, a RAHT inverse transform can be performed based on the reconstruction values ​​of the high-frequency coefficients and the low-frequency coefficients, and then the attribute reconstruction values ​​of the child nodes can be determined.

[0471] For example, in the embodiment of the present application, it is assumed that g′ L,2x,y,z and g′L,2x+1,y,z are the DC coefficients of two neighboring points in the L layer. After linear transformation, the information of the L-1 layer is the AC coefficient f′ L-1,x,y,z and DC coefficient g′ L-1,x,y,z ; Then, f′ L-1,x,y,z No more transformation will be performed, and quantization coding will be performed directly, g′ L-1,x,y,z The next neighbor will continue to be searched for transformation. If no neighbor is found, it will be directly passed to the L-2 layer. That is, the RAHT transformation is only effective for nodes with neighbor points. Nodes without neighbor points will be directly passed to the previous layer. In this transformation process, g′ L,2x,y,z The weights (the number of non-empty child nodes in the node) corresponding to g′L, 2x+2, y, and z are w′ respectively. L,2x,y,z and w′L,2x+1,y,z (abbreviated as w′0 and w′1), g′L-1,x,y,z The weight is w′ L-1,x,y,z , then the general transformation formula is:

[0472] Among them, T w0,w1 is the transformation matrix, which is updated adaptively as the weights corresponding to each point change. The RAHT forward transform (also called "RAHT forward transform") is shown in Figure 35A above.

[0473] For example, in this embodiment of the present application, an inverse RAHT transform is performed based on the DC coefficient and AC coefficient of the child node of the current node to restore the attribute reconstruction value of the child node of the current node. The inverse RAHT transform (also referred to as "RAHT inverse transform" or "RAHT inverse transform") is shown in Figure 35B.

[0474] That is to say, in an embodiment of the present application, if the fourth quantity and the fifth quantity corresponding to the nodes of the current layer are not the same, then the nodes of the current layer can continue to be transformed, predicted, and so on. Specifically, for the current node of the current layer, the reconstruction attributes of the adjacent nodes of the current node and the spatial geometric distance of each adjacent node from each child node of the current node can be used for linear fitting to obtain the predicted attributes of each child node of the current node; then, the predicted attributes of each child node are used to perform RAHT attribute transformation to obtain the corresponding DC and AC coefficients, and then the AC coefficient of the predicted node (the predicted value of the high-frequency coefficient) and the AC coefficient (the coefficient difference) parsed from the bitstream are used to restore the AC coefficient (the reconstructed value of the high-frequency coefficient) of the current node to be decoded (the current node). Finally, the AC coefficient (the reconstructed value of the high-frequency coefficient) and the DC coefficient of the current node can be used to perform RAHT inverse transformation to restore the attribute reconstruction value of each child node of the current node.

[0475] Furthermore, in an embodiment of the present application, if the current layer is a non-skipped coding layer, then the nodes of the current layer can be transformed, predicted, and other processes can be performed in sequence to determine the attribute reconstruction values ​​of the child nodes corresponding to the nodes of the current layer; then, for the child nodes of the current layer nodes, the sixth number of the next-layer child nodes corresponding to the child nodes can be determined first; and then, based on the fifth number and the sixth number, the attribute reconstruction values ​​of the next-layer child nodes corresponding to the child nodes can be determined.

[0476] That is to say, in the embodiment of the present application, regardless of whether the current layer is a skip coding layer, that is, regardless of whether the nodes of the current layer are transformed, predicted, etc. in sequence; it is still necessary to repeat the above steps, still determine the number of nodes in other layers, and the corresponding number of child nodes, and then determine whether to perform skip decoding processing based on the number of nodes and the corresponding number of child nodes.

[0477] Accordingly, in an embodiment of the present application, the method of step S4301 to step S4302 is continuously repeated, starting from the root node of the RAHT transform and continuing until the last node of the leaf node layer of the RAHT, thereby completing the attribute decoding of the entire RAHT transform.

[0478] Furthermore, in some embodiments, the method may also include: decoding the code stream, determining the prediction mode identification information; when the prediction mode identification information indicates that the current unit starts the skip decoding mode, executing the first quantity and the second quantity determination steps, and / or executing the fourth quantity and the fifth quantity determination steps.

[0479] In an embodiment of the present application, the prediction mode identification information is at least one of the following high-level syntax elements: a syntax element corresponding to an attribute parameter set (APS) and a syntax element corresponding to an attribute block header (ABH).

[0480] In this embodiment of the present application, if the value of the prediction mode identification information is a first value, it is determined that the current unit is in skip decoding mode; if the value of the prediction mode identification information is a second value, it is determined that the current unit is not in skip decoding mode. The following describes whether skip decoding mode is enabled for the voxel node of the current unit and whether skip decoding mode is enabled for the node of the current layer.

[0481] In a specific embodiment, the method may further include: decoding the code stream to determine first prediction mode identification information; when the first prediction mode identification information indicates that the voxel node of the current unit starts the skip decoding mode, executing the first quantity and second quantity determination steps.

[0482] It should be noted that in an embodiment of the present application, if the value of the first prediction mode identification information is the first value, it is determined that the voxel node of the current unit starts the skip decoding mode; if the value of the first prediction mode identification information is the second value, it is determined that the voxel node of the current unit does not start the skip decoding mode.

[0483] It should also be noted that, in the embodiment of the present application, only when the voxel node of the current unit starts the skip decoding mode, the first quantity and the second quantity can be further determined at this time, and then the size of the first quantity and the second quantity is used to determine whether the voxel node of the current unit skips decoding. Specifically, if the two are consistent, the node attributes at the voxel level are skipped. Otherwise, a timer is used. When the number of remaining repeated nodes of the timer is zero, it means that there are no repeated nodes in the subsequent points. Similarly, the attribute decoding of the subsequent points can be skipped, and the attribute reconstruction value of the subsequent voxel node is directly copied as the attribute reconstruction value of the final remaining reconstructed point.

[0484] In another specific embodiment, the method may further include: decoding the code stream to determine the second prediction mode identification information; when the second prediction mode identification information indicates that the node of the current layer starts the skip decoding mode, executing the fourth quantity and the fifth quantity determination steps.

[0485] It should be noted that in an embodiment of the present application, if the value of the second prediction mode identification information is the first value, it is determined that the node of the current layer starts the skip decoding mode; if the value of the second prediction mode identification information is the second value, it is determined that the node of the current layer does not start the skip decoding mode.

[0486] It should also be noted that in the embodiment of the present application, only when the node of the current layer starts the skip decoding mode, the fourth number and the fifth number can be further determined at this time, and then the size of the fourth number and the fifth number is used to determine whether the node of the current layer skips decoding, that is, whether the current layer is a skip decoding layer. Specifically, if the two numbers are consistent, the current layer is determined to be a skip decoding layer, and it is no longer necessary to decode the attribute reconstruction value of the child node corresponding to the node of the current layer; if the two numbers are inconsistent, it is determined that the current layer does not belong to the skip decoding layer, and RAHT prediction and decoding can be performed according to the decoding method of the relevant technology.

[0487] It should also be noted that, in the embodiment of the present application, the first value is different from the second value, and the first value and the second value can be in parameter form or in digital form. Specifically, the first prediction mode identification information and the second prediction mode identification information can be parameters written in the profile, or can be the value of a flag, which is not specifically limited here. In addition, for the first value and the second value, the first value can be set to 1 and the second value can be set to 0; or, the first value can be set to 0 and the second value can be set to 1; or, the first value can be set to true and the second value can be set to false; or, the first value can be set to false and the second value can be set to true. Among them, in the embodiment of the present application, the first value is set to 1 and the second value is set to 0, but it is not specifically limited.

[0488] Exemplarily, in some embodiments, taking the first value being set to 1 and the second value being set to 0 as an example, the code stream is decoded to determine the value of the second prediction mode identification information; if the value of the second prediction mode identification information is 1, then it can be determined that the node of the current layer starts the skip decoding mode, and then the fourth quantity and fifth quantity corresponding to the node of the current layer can be further determined according to the above method; if the value of the second prediction mode identification information is 0, then it can be determined that the node of the current layer does not start the skip decoding mode, and the attribute decoding processing of the node of the current layer can be performed according to the common intra-frame prediction method or inter-frame prediction method.

[0489] That is to say, in an embodiment of the present application, if the value of the first prediction mode identification information determined by the decoded code stream is the first value, that is, it is determined that the voxel node of the current unit starts the skip decoding mode, then the first and second number determination steps can be executed, that is, the decoding process shown in Figure 41 is executed; if the value of the second prediction mode identification information determined by the decoded code stream is the first value, that is, it is determined that the node of the current layer starts the skip decoding mode, then the fourth and fifth number determination processes can be executed, that is, the decoding process shown in Figure 43 is executed.

[0490] To sum up, in an embodiment of the present application, when encoding and decoding attribute information, if the number of nodes in the current layer is consistent with the number of child nodes in the current layer, the current layer is considered to belong to a skipped coding layer, and therefore there is no need to perform transformation, prediction, encoding, and decoding on the current layer, thereby reducing the time complexity of attribute transformation encoding and decoding, and will not have any impact on the attribute coding efficiency.

[0491] For example, in the implementation of the standard text, a specific SPEC modification is as follows:

[0492] That is, the decoding method proposed in the embodiments of the present application, when performing RAHT decoding on an attribute, determines at each RAHT transform layer whether the number of nodes in the current layer is consistent with the number of child nodes in the current layer to determine whether the current RAHT transform layer is a skipped coding layer, that is, to determine whether to skip the transformation, prediction, and other processes for the current layer. If the number of nodes in the current layer is consistent with the number of child nodes in the current layer, the current layer is considered to be a skipped coding layer, and the transformation, prediction, encoding, and decoding processes are not required. This can reduce the time complexity of attribute transform encoding and decoding without affecting the coding efficiency of the attribute.

[0493] This embodiment provides a decoding method, which proposes a decoding method for skipping the current layer. By utilizing the number of nodes and the number of child nodes of the current layer, it is adaptively determined whether the current layer can skip decoding. This can reduce the time complexity of encoding and decoding while ensuring the encoding and decoding efficiency remains unchanged. In addition, a decoding method for skipping voxel-level nodes is proposed. First, the number of voxel nodes and the number of reconstructed nodes can be obtained. When the number of reconstructed nodes is consistent with the number of voxel nodes, it is considered that there are no duplicate nodes in the current unit, and the decoding of voxel-level node attributes can also be skipped. In this way, on the basis of ensuring the encoding and decoding efficiency of point cloud attributes, the time complexity of point cloud attribute encoding and decoding can be reduced, and the bit rate can also be saved, thereby improving the encoding and decoding performance of the point cloud.

[0494] In one embodiment of the present application, referring to FIG44 , a schematic flow chart of an encoding method provided by an embodiment of the present application is shown. As shown in FIG44 , the method may include:

[0495] S4401: Determine a first number of voxel nodes of a current unit and a second number of reconstruction nodes of the current unit.

[0496] It should be noted that the encoding method of the embodiment of the present application is applied to a point cloud encoder (which may be referred to as "encoder" for short). The method may refer to a point cloud encoding method, specifically a point cloud attribute encoding method, and more specifically, a skip encoding method for point cloud attribute RAHT transform prediction. Here, the optimization is mainly for whether the nodes of the current layer are skipped for encoding and whether the voxel nodes are skipped for encoding when divided into the voxel level, thereby reducing the time complexity of attribute transformation encoding and decoding, and having no effect on the encoding and decoding efficiency of the attribute transformation.

[0497] It should also be noted that, in the embodiments of the present application, the current unit may be a current coding unit to be encoded, which may be a slice. In some embodiments, the method may further include: dividing the nodes in the current unit to determine at least one layer; and when the nodes in the last layer are divided into voxel levels, determining the voxel nodes of the current unit and a first number of voxel nodes.

[0498] For example, in the RAHT attribute transformation, the order of the RAHT attribute transformation is to divide the point cloud from the root node in sequence until it is divided into the voxel level. Specifically, the division is stopped when the unit cube of size 1×1×1 is reached, thereby completing the encoding and reconstruction of the entire point cloud attribute. Here, as shown in Figure 42, each layer obtained by downsampling along the Z direction, Y direction, and X direction is a RAHT transformation layer, that is, layer. Then, when it is divided into a unit cube of size 1×1×1, it means that it has been divided into the voxel level. At this time, the voxel node and the first number of voxel nodes can be determined.

[0499] It should also be noted that in the implementation of this application, in the examples, a voxel node represents the node corresponding to the division from the root node to the voxel level, and the size of the voxel node is 1×1×1; a reconstruction node represents the node in the current unit that undergoes attribute reconstruction. Before the attribute encoding of the nodes in the current unit is performed, the geometric information of the nodes in the current unit has been fully encoded. At this time, the second number of reconstructed nodes in the current unit can be determined, thereby determining whether the first number and the second number are consistent.

[0500] S4402: Determine whether the attribute information of the voxel node of the current unit is skipped for encoding based on the first quantity and the second quantity.

[0501] It should be noted that, in the embodiment of the present application, before performing attribute encoding on the voxel node, it is first necessary to determine whether the first number and the second number are the same, and then determine whether the voxel node of the current unit is skipped for encoding.

[0502] In some embodiments, if the first number is the same as the second number, encoding the attribute information of the voxel node of the current unit is skipped.

[0503] In some embodiments, if the first number is different from the second number, attribute encoding is performed on the repeated nodes in the voxel nodes, and encoding of attribute information of the remaining voxel nodes except the repeated nodes in the voxel nodes is skipped.

[0504] In an embodiment of the present application, there may be duplicate nodes in the voxel nodes of the current unit division, so the first number and the second number may be inconsistent. If there are no duplicate nodes in the voxel nodes of the current unit division, then the first number and the second number are consistent; conversely, if there are duplicate nodes in the voxel nodes of the current unit division, then the first number and the second number are inconsistent, and attribute encoding is required for the duplicate nodes. Here, duplicate nodes (also referred to as "duplicate points") refer to multiple nodes with the same geometric information but different attribute information.

[0505] In some embodiments, performing attribute encoding on repeated nodes in voxel nodes may include: encoding attribute information of the repeated nodes, and writing the obtained encoding bits into a bitstream.

[0506] It should be noted that, in an embodiment of the present application, when encoding the attribute information of a repeated node, it may include: setting a timer; when the attribute information of the repeated node begins to be encoded, starting the timer, and when the timer reaches a preset value, determining that all the attribute information of the repeated node has been encoded.

[0507] It should also be noted that in an embodiment of the present application, when the first number is different from the second number, the third number of repeated nodes in the voxel node can also be determined based on the difference between the first number and the second number; wherein the setting of the timer is associated with the third number.

[0508] Exemplarily, a timer can be used to determine whether the attribute reconstruction values ​​of the repeated nodes have been fully encoded. If the timer is in a positive counting mode, then when the attribute reconstruction values ​​of the repeated nodes begin to be encoded, the initial value of the timer is 0. When the timer counts to the third number, the attribute reconstruction values ​​of the repeated nodes are fully encoded. If the timer is in a countdown mode, then when the attribute reconstruction values ​​of the repeated nodes begin to be encoded, the initial value of the timer is the third number. When the timer counts to 0, the attribute reconstruction values ​​of the repeated nodes are fully encoded. After the attribute reconstruction values ​​of the repeated nodes are fully encoded, it means that there are no repeated nodes in the subsequent voxel nodes, and the attribute encoding of these nodes can be skipped.

[0509] Furthermore, in some embodiments, referring to FIG. 45 , after step S4401, the method may further include:

[0510] S4501: Determine the attribute reconstruction value of the voxel node of the current unit according to the first quantity and the second quantity.

[0511] It should be noted that in this embodiment of the present application, the attribute reconstruction value of the voxel node of the current unit can be directly copied from the attribute reconstruction value of the reconstructed node of the current unit, but the attribute reconstruction value of the duplicate node cannot be copied. In other words, the difference between the first quantity and the second quantity can determine how to determine the attribute reconstruction value of the voxel node of the current unit.

[0512] In some embodiments, when the first number and the second number are the same, determining the attribute reconstruction value of the voxel node of the current unit based on the first number and the second number may include: setting the attribute reconstruction value of the voxel node of the current unit to the attribute reconstruction value of the reconstruction node of the current unit. For example, if the first number and the second number are the same, encoding the attribute information of the voxel node of the current unit may be skipped, and the attribute reconstruction value of the voxel node may be directly copied as the attribute reconstruction value of the reconstruction node of the current unit.

[0513] In some embodiments, when the first number and the second number are different, determining the attribute reconstruction value of the voxel node of the current unit based on the first number and the second number may include: using the attribute reconstruction value of the repeated node as the attribute reconstruction value of the first reconstruction node in the current unit, and setting the attribute reconstruction value of the remaining voxel nodes in the voxel node except the repeated node as the attribute reconstruction value of the remaining reconstruction nodes in the current unit except the first reconstruction node.

[0514] For example, if the first number differs from the second number, indicating that there are duplicate nodes among the voxel nodes in the current unit division, the attribute reconstruction value of the duplicate node can be determined, and then the attribute reconstruction value of the duplicate node can be used as the attribute reconstruction value of the first reconstruction node in the current unit. The attribute reconstruction value of the remaining voxel nodes other than the duplicate node can also be copied as the attribute reconstruction value of the remaining reconstruction nodes in the current unit except the first reconstruction node. In addition, when the first number differs from the second number, the attribute information of the duplicate nodes needs to be encoded so that the decoding end can decode and determine the attribute reconstruction value of these duplicate nodes.

[0515] For example, for multiple nodes with the same geometric information but different attribute information (i.e., repeated nodes), the encoding end can use a timer to add the attribute information of these multiple nodes, and determine the added value as the attribute information of the node corresponding to the geometric information; when performing attribute decoding at the decoding end, a timer is used to separate the attribute information of each of the multiple nodes from this attribute information to obtain the attribute reconstruction value of the repeated node.

[0516] It can also be understood that in this embodiment of the present application, at least one layer includes the current layer, where the current layer can be the RAHT transformed layer currently to be decoded, or referred to as a "RAHT attribute coding layer". Figure 46 is a flowchart of another encoding method provided in an embodiment of the present application. As shown in Figure 46, the method may include:

[0517] S4601: Determine the fourth number of nodes in the current layer and the fifth number of child nodes corresponding to the nodes in the current layer; wherein the fourth number and the fifth number are used to determine whether to skip encoding the current layer.

[0518] It should be noted that, in an embodiment of the present application, the fourth number of nodes in the current layer can be determined first, and the fifth number of child nodes corresponding to the nodes in the current layer can be determined at the same time. Before the attributes of the nodes in the current layer are encoded, since the geometric information of the nodes in the current layer has been encoded, the number of nodes in the current layer (i.e., the "fourth number") and the number of child nodes of the nodes in the current layer (i.e., the "fifth number") can be determined based on the geometric information of the nodes in the current layer.

[0519] Furthermore, in an embodiment of the present application, a RAHT attribute transform structure is first constructed based on the geometric information of the points in the point cloud, and encoding can be performed in the order from the root node to the child nodes. Using the geometric information of the nodes in the current layer, the child nodes of the current layer are restored in the order of Z, Y, and X. Next, the attributes of the nodes in the previous layer are predictively encoded using the reconstructed attributes of the nodes in the current layer, thereby restoring the reconstructed attribute values ​​of the nodes in the current layer. This process is continued until the voxel level is reached, resulting in a RAHT attribute transform structure comprising at least one RAHT transform layer.

[0520] It should be noted that in the embodiment of the present application, the RAHT attribute transform can be performed based on the order of the octree hierarchy. Among them, based on the hierarchical order of the octree, the transformation can be continuously performed from the voxel level to the root node, thereby constructing the octree. Then, during the prediction transformation process, the attribute prediction transform coding is also performed based on the hierarchical order of the octree, but the transformation is continuously performed from the root node to the voxel level.

[0521] It can be understood that in the embodiment of the present application, it can be defined that a layer obtained by downsampling along a preset direction, such as the Z direction, the Y direction and the X direction in sequence is a RAHT transformation layer, such as the current layer.

[0522] It should also be noted that, in the embodiment of the present application, the current layer may include at least one point, wherein the at least one point in the current layer may be used as a node to be encoded in the current layer when encoding the current layer.

[0523] Furthermore, in an embodiment of the present application, for each point in the current layer, it corresponds to a geometric information and an attribute information; wherein the geometric information represents the spatial relationship of the point, and the attribute information represents the relevant information of the attribute of the point.

[0524] Here, the attribute information may be color information, or reflectivity, or other attributes, which are not specifically limited in the embodiments of the present application. Specifically, when the attribute information is color information, it may be color information in any color space. For example, the attribute information may be color information in an RGB space, a YUV space, a YCbCr space, or the like, which are not specifically limited in the embodiments of the present application.

[0525] It should also be noted that in the embodiment of the present application, when performing RAHR transform encoding, the non-voxel level node attribute transformation and inverse transformation are completed first, and then the voxel level node transformation is completed, because there may be a situation in the point cloud, that is, there are duplicate nodes in the point cloud.

[0526] Accordingly, in an embodiment of the present application, if the nodes of the current layer are non-voxel level, then the fourth number can represent the number of occupied nodes of the current layer; and the fifth number can represent the number of occupied sub-nodes in the nodes of the current layer.

[0527] Accordingly, in the embodiment of the present application, if the nodes of the current layer are at the voxel level, the fourth number can represent the number of occupied nodes of the current layer; and the fifth number can represent the number of nodes to be encoded.

[0528] That is to say, in an embodiment of the present application, the fourth number is the number of valid nodes (i.e., occupied nodes) of the current layer, and for non-voxel-level nodes, the fifth number is the number of valid child nodes (i.e., occupied child nodes) of the nodes of the current layer, and for voxel-level nodes, the fifth number is the number of nodes to be encoded.

[0529] Furthermore, in an embodiment of the present application, the geometric information of the node of the current layer can be determined first; and then the child nodes corresponding to the node of the current layer and the fifth quantity can be determined based on the geometric information.

[0530] It should be noted that in an embodiment of the present application, for the current node of the current layer, when using the geometric information of the current node to determine the corresponding child node, you can choose to use the geometric information of the current node for upsampling to obtain the child nodes occupied by the current node (the number of child nodes is N, where the maximum value of N is 8).

[0531] Exemplarily, in some embodiments, when encoding and decoding the attribute information of the nodes of the current layer, the number of nodes of the current layer, that is, the fourth number, can be obtained first; at the same time, after using the geometric information of the nodes of the current layer to restore the child nodes of the nodes of the current layer, the number of child nodes of the nodes of the current layer, that is, the fifth number, can be obtained.

[0532] S4602: Determine the attribute reconstruction value of the child node corresponding to the node of the current layer according to the fourth quantity and the fifth quantity.

[0533] It should be noted that in an embodiment of the present application, after determining the fourth quantity and the fifth quantity corresponding to the node of the current layer, the attribute reconstruction value of the child node corresponding to the node of the current layer can be further determined based on the fourth quantity and the fifth quantity.

[0534] Furthermore, in an embodiment of the present application, after determining the fourth quantity and the fifth quantity corresponding to the nodes of the current layer, the fourth quantity and the fifth quantity can be used to encode and decode the attribute information of whether to skip the coding layer (current layer).

[0535] It can be understood that in the embodiment of the present application, since the RAHT transform is only valid for nodes with neighboring points, if the number of nodes in the current layer is exactly the same as the number of child nodes of the nodes in the current layer, it can be indicated that each node in the current layer has only one child node; in this case, the current layer will not generate AC coefficients (high-frequency coefficients), so it can be chosen to skip the transformation, prediction, and other processes performed on the nodes of the current layer in sequence.

[0536] That is, in the embodiment of the present application, by utilizing the number of nodes and the number of child nodes of the current layer, it is possible to adaptively determine whether the current layer can skip encoding and decoding. The key to determining whether to skip encoding and decoding for the current layer lies in whether the number of nodes and the number of child nodes of the current layer are the same, that is, whether the fourth number and the fifth number are the same.

[0537] In some embodiments, when determining the attribute reconstruction value of the child node corresponding to the node of the current layer based on the fourth quantity and the fifth quantity, the method may further include: if the fourth quantity and the fifth quantity are the same, determining the attribute reconstruction value of the node of the current layer as the attribute reconstruction value of the child node corresponding to the node of the current layer.

[0538] It can be understood that in an embodiment of the present application, if the fourth number and the fifth number corresponding to the nodes of the current layer are the same, it can be determined that the number of nodes in the current layer is the same as the number of child nodes corresponding to the nodes of the current layer. Then, it can be considered that for each node in the current layer, there is only one corresponding child node.

[0539] Accordingly, in an embodiment of the present application, since the RAHT transform is only valid for nodes with neighboring points, during the RAHT attribute transformation process, if each node in the current layer corresponds to only one child node, then it can be considered that the current layer will not generate AC coefficients. Therefore, it can be chosen not to perform transformation, prediction, etc. on the nodes of the current layer in sequence, that is, skipping the processing of the current layer. At this time, it can be called "skipping the coding layer."

[0540] Accordingly, in an embodiment of the present application, if it is determined that the fourth quantity and the fifth quantity corresponding to the nodes of the current layer are the same, that is, it is determined that the current layer is a skip coding layer, then you can choose to skip the transformation, prediction, etc. of the nodes of the current layer in sequence, and instead directly determine the attribute reconstruction value of the node of the current layer as the attribute reconstruction value of the child node corresponding to the node of the current layer.

[0541] That is to say, in an embodiment of the present application, during the RAHT attribute transformation process, if each node of the current layer corresponds to only one child node, then it is possible to choose not to perform transformation, prediction, and other processes on the nodes of the current layer in sequence, thereby reducing the complexity of the RAHT attribute transformation encoding and decoding.

[0542] Furthermore, in an embodiment of the present application, when determining the attribute reconstruction value of the child node corresponding to the node of the current layer based on the fourth number and the fifth number, if the fourth number and the fifth number are the same, it is determined that the current layer is a skip coding layer, then you can choose to skip the current layer to the next layer, and then use the next layer as the current layer to continue to determine whether to skip coding the nodes of the next layer.

[0543] Accordingly, in an embodiment of the present application, for the child node corresponding to the node of the current layer, the sixth number of the child nodes of the next layer corresponding to the child node can be determined first; then, based on the fifth number and the sixth number, the attribute reconstruction value of the child node of the next layer corresponding to the child node can be determined.

[0544] It can be understood that in an embodiment of the present application, if the child node corresponding to the node of the current layer is a non-voxel-level node, then the sixth number can be the number of valid child nodes in the next layer (i.e., the occupied child nodes in the next layer) of the child node corresponding to the node of the current layer; if the child node corresponding to the node of the current layer is a voxel-level node, then the sixth number can be the number of nodes to be encoded.

[0545] It should be noted that, in the embodiment of the present application, after determining the fifth number and the sixth number, the fifth number and the sixth number can be used to encode and decode the attribute information of whether to skip the coding layer (the next layer of the current layer).

[0546] Exemplarily, in some embodiments, if the fifth number and the sixth number are the same, then it may be possible to choose not to perform transformation, prediction, and other processes on the child nodes of the node of the current layer in sequence, that is, skip processing the child nodes of the current layer, and instead directly determine the attribute reconstruction value of the child node corresponding to the node of the current layer as the attribute reconstruction value of the child node of the next layer of the child node corresponding to the node of the current layer.

[0547] In some embodiments, when determining the attribute reconstruction value of the child node corresponding to the node of the current layer based on the fourth quantity and the fifth quantity, the method may further include: if the fourth quantity and the fifth quantity corresponding to the node of the current layer are different, determining the attribute prediction value of the child node corresponding to the node of the current layer based on the node of the current layer; performing RAHT transformation based on the attribute prediction value of the child node to determine the reconstruction value of the high-frequency coefficient and the low-frequency coefficient corresponding to the node of the current layer; performing RAHT inverse transformation based on the reconstruction value of the high-frequency coefficient and the low-frequency coefficient to determine the attribute reconstruction value of the child node.

[0548] It should be noted that in an embodiment of the present application, if the fourth number and the fifth number are different, it can be determined that the number of nodes in the current layer is different from the number of sub-nodes corresponding to the nodes in the current layer. At this time, the current layer will still generate AC coefficients, so the nodes of the current layer can continue to be transformed, predicted, etc. in sequence without skipping the processing of the current layer. At this time, the current layer can be used as a non-skipped coding layer.

[0549] Furthermore, in some embodiments, when determining the attribute prediction value of the child node corresponding to the node of the current layer based on the node of the current layer, it can include: determining the adjacent nodes corresponding to the node of the current layer; and determining the attribute prediction value of the child node corresponding to the node of the current layer based on the attribute reconstruction value and relative distance parameter corresponding to the adjacent nodes.

[0550] It should also be noted that, in the embodiment of the present application, the adjacent node may refer to the neighboring node of the current node, wherein the relative distance parameter corresponding to the adjacent node may represent the spatial geometric distance between the child node corresponding to the node of the current layer and the corresponding adjacent node.

[0551] Exemplarily, in an embodiment of the present application, for the current node of the current layer, the current node includes two sub-nodes, sub-node 1 and sub-node 2. The relative distance parameter between the current node and the adjacent node may include the spatial geometric distance between sub-node 1 and the adjacent node, and may also include the spatial geometric distance between sub-node 2 and the adjacent node.

[0552] Exemplarily, in an embodiment of the present application, when determining the attribute prediction value of the child node corresponding to the node of the current layer based on the node of the current layer, for the current node of the current layer, the reconstructed attributes (attribute reconstruction values) of the neighboring nodes of the current node and the spatial geometric distance of each neighboring node from the child node of the current node can be used to perform linear fitting, and finally obtain the attribute prediction value of each child node of the current node.

[0553] For example, in an embodiment of the present application, for the current node of the current layer, the 19 adjacent nodes of the current node can be determined first, and then the spatial geometric distance between the adjacent nodes and each child node of the current node can be used to perform linear weighted prediction on the attributes of each child node, and finally the attribute prediction value of each child node can be obtained.

[0554] Further, in some embodiments, when performing a RAHT transform based on the attribute prediction value of the child node to determine the reconstructed value of the high-frequency coefficient and the low-frequency coefficient corresponding to the node of the current layer, it can include: performing a RAHT transform based on the attribute prediction value of the child node to determine the predicted value of the high-frequency coefficient and the low-frequency coefficient corresponding to the node of the current layer; performing a RAHT transform based on the attribute value of the child node to determine the high-frequency coefficient and the low-frequency coefficient corresponding to the node of the current layer; and determining the reconstructed value of the high-frequency coefficient corresponding to the node of the current layer based on the predicted value of the high-frequency coefficient corresponding to the node of the current layer and the high-frequency coefficient corresponding to the node of the current layer.

[0555] Further, in some embodiments, when determining the reconstructed value of the high-frequency coefficient corresponding to the node of the current layer based on the predicted value of the high-frequency coefficient corresponding to the node of the current layer and the high-frequency coefficient corresponding to the node of the current layer, it can include: determining the coefficient residual corresponding to the node of the current layer based on the predicted value of the high-frequency coefficient corresponding to the node of the current layer and the high-frequency coefficient corresponding to the node of the current layer; determining the reconstructed value of the high-frequency coefficient corresponding to the node of the current layer based on the coefficient residual corresponding to the node of the current layer.

[0556] Further, in some embodiments, when determining the reconstructed value of the high-frequency coefficient corresponding to the node of the current layer based on the coefficient residual corresponding to the node of the current layer, it can include: inverse quantizing the quantized coefficient residual to determine the inverse quantized residual value corresponding to the node of the current layer; determining the reconstructed value of the high-frequency coefficient corresponding to the node of the current layer based on the inverse quantized residual value corresponding to the node of the current layer and the predicted value of the high-frequency coefficient corresponding to the node of the current layer.

[0557] It should be noted that, in the embodiment of the present application, for the current node of the current layer, after determining the attribute prediction value corresponding to the child node of the current node, the attribute prediction value of the corresponding child node can be used to perform RAHT attribute transformation, so as to obtain the corresponding DC coefficient and AC coefficient. Among them, the DC coefficient is the low-frequency coefficient, and the AC coefficient is the high-frequency coefficient. Among them, in the embodiment of the present application, for the current node of the current layer, the AC coefficient obtained by performing RAHT attribute transformation using the attribute prediction value corresponding to the child node can be understood as the predicted value of the AC coefficient corresponding to the current node.

[0558] It should also be noted that, in the embodiment of the present application, for the current node of the current layer, the attribute values ​​of the child nodes can also be used to perform a RAHT transformation to determine the AC coefficient and DC coefficient corresponding to the node of the current layer. In this embodiment of the present application, for the current node of the current layer, the AC coefficient obtained by performing a RAHT attribute transformation using the attribute values ​​corresponding to the child nodes can be understood as the original value of the AC coefficient corresponding to the current node.

[0559] In this way, based on the predicted value of the AC coefficient corresponding to the node of the current layer and the original value of the AC coefficient, the coefficient residual corresponding to the node of the current layer can be determined; then the quantized coefficient residual is inversely quantized to determine the inversely quantized residual value corresponding to the node of the current layer; and then based on the inversely quantized residual value corresponding to the node of the current layer and the predicted value of the AC coefficient corresponding to the node of the current layer, the reconstructed value of the AC coefficient corresponding to the node of the current layer can be determined.

[0560] Exemplarily, in an embodiment of the present application, the inverse quantized residual value corresponding to the node of the current layer and the predicted value of the AC coefficient corresponding to the node of the current layer can be summed up to obtain the reconstructed value of the AC coefficient corresponding to the node of the current layer.

[0561] Furthermore, in some embodiments, the method may also include: quantizing the coefficient residuals to determine the quantized coefficient residuals corresponding to the nodes of the current layer; encoding the quantized coefficient residuals and writing the obtained coded bits into the bitstream.

[0562] It should be noted that in an embodiment of the present application, the quantized coefficient residual is written into the bit stream, and the quantized coefficient residual can be obtained by decoding the bit stream at the decoding end. Then, based on the predicted value of the high-frequency coefficient and the quantized coefficient residual, the reconstructed value of the high-frequency coefficient corresponding to the node of the current layer can be determined.

[0563] It should also be noted that in an embodiment of the present application, after determining the reconstruction values ​​of the low-frequency coefficients and high-frequency coefficients of the nodes of the current layer, a RAHT inverse transform can be performed based on the reconstruction values ​​of the high-frequency coefficients and the low-frequency coefficients, and then the attribute reconstruction values ​​of the child nodes can be determined.

[0564] For example, in the embodiment of the present application, it is assumed that g′ L,2x,y,z and g′L,2x+1,y,z are the DC coefficients of two neighboring points in the L layer. After linear transformation, the information of the L-1 layer is the AC coefficient f′ L-1,x,y,z and DC coefficient g′ L-1,x,y,z ; Then, f′ L-1,x,y,z No more transformation will be performed, and quantization coding will be performed directly, g′ L-1,x,y,z The next neighbor will continue to be searched for transformation. If no neighbor is found, it will be directly passed to the L-2 layer. That is, the RAHT transformation is only effective for nodes with neighbor points. Nodes without neighbor points will be directly passed to the previous layer. In this transformation process, g′ L,2x,y,z The weights (the number of non-empty child nodes in the node) corresponding to g′L, 2x+2, y, and z are w′ respectively. L,2x,y,z and w′L,2x+1,y,z (abbreviated as w′0 and w′1), g′ L-1,x,y,z The weight is w′ L-1,x,y,z, then the general transformation formula is:

[0565] Among them, T w0,w1 is the transformation matrix, which is updated adaptively as the weights corresponding to each point change. The RAHT forward transform (also called "RAHT forward transform") is shown in Figure 35A above.

[0566] For example, in this embodiment of the present application, an inverse RAHT transform is performed based on the DC coefficient and AC coefficient of the child node of the current node to restore the attribute reconstruction value of the child node of the current node. The inverse RAHT transform (also referred to as "RAHT inverse transform" or "RAHT inverse transform") is shown in Figure 35B.

[0567] That is to say, in an embodiment of the present application, if the fourth quantity and the fifth quantity corresponding to the nodes of the current layer are not the same, then the nodes of the current layer can continue to be transformed, predicted, and so on. Specifically, for the current node of the current layer, the reconstruction attributes of the adjacent nodes of the current node and the spatial geometric distance of each adjacent node from each child node of the current node can be used to perform linear fitting to obtain the predicted attributes of each child node of the current node; then, the predicted attributes of each child node are used to perform RAHT attribute transformation to obtain the corresponding DC and AC coefficients. At the same time, the attributes of each child node of the current node can be transformed by RAHT attribute transformation to obtain DC and AC coefficients; then, the predicted value of the AC coefficient obtained by the prediction node can be used to predict the AC coefficient of the current node, thereby obtaining the AC prediction residual coefficient (coefficient residual) of each child node, and then the coefficient residual can be quantized and encoded. On the other hand, the inverse quantization residual value of the AC prediction residual coefficient and the predicted value of the AC coefficient can be used to restore the AC reconstruction coefficient of the current node (the reconstruction value of the high-frequency coefficient), and finally the AC coefficient and DC coefficient of the current node are used to perform RAHT inverse transformation to restore the attribute reconstruction value of each child node of the current node.

[0568] Furthermore, in an embodiment of the present application, if the current layer is a non-skipped coding layer, then the nodes of the current layer can be transformed, predicted, and other processes can be performed in sequence to determine the attribute reconstruction values ​​of the child nodes corresponding to the nodes of the current layer; then, for the child nodes of the current layer nodes, the sixth number of the next-layer child nodes corresponding to the child nodes can be determined first; and then, based on the fifth number and the sixth number, the attribute reconstruction values ​​of the next-layer child nodes corresponding to the child nodes can be determined.

[0569] That is to say, in the embodiment of the present application, regardless of whether the current layer is a skip coding layer, that is, regardless of whether the nodes of the current layer are transformed, predicted, etc. in sequence; it is still necessary to repeat the above steps, still determine the number of nodes in other layers, and the corresponding number of child nodes, and then determine whether to perform skip coding processing based on the number of nodes and the corresponding number of child nodes.

[0570] Accordingly, in an embodiment of the present application, the method of step S4601 to step S4602 is continuously repeated, starting from the root node of the RAHT transformation and continuing until the last node of the leaf node layer of the RAHT, thereby completing the attribute encoding of the entire RAHT transformation.

[0571] Furthermore, in some embodiments, the method may also include: determining prediction mode identification information; when the prediction mode identification information indicates that the current unit starts the skip coding mode, performing the first quantity and the second quantity determination steps, and / or, performing the fourth quantity and the fifth quantity determination steps.

[0572] In an embodiment of the present application, the prediction mode identification information is at least one of the following high-level syntax elements: a syntax element corresponding to an attribute parameter set (APS) and a syntax element corresponding to an attribute block header (ABH).

[0573] In an embodiment of the present application, the prediction mode identification information may also be encoded, and the resulting encoded bits may be written into the bitstream. If the current unit activates skip coding mode, the prediction mode identification information is determined to have a first value; if the current unit does not activate skip coding mode, the prediction mode identification information is determined to have a second value. The following describes whether skip coding mode is activated for the voxel node of the current unit and whether skip coding mode is activated for the nodes of the current layer.

[0574] In a specific embodiment, the method may further include: determining first prediction mode identification information; and executing the first quantity and second quantity determination steps when the first prediction mode identification information indicates that the voxel node of the current unit starts the skip coding mode.

[0575] In an embodiment of the present application, the first prediction mode identification information may be encoded, and the resulting encoded bits may be written into a bitstream. If the voxel node of the current unit enables skip coding mode, the value of the first prediction mode identification information is determined to be a first value; if the voxel node of the current unit does not enable skip coding mode, the value of the first prediction mode identification information is determined to be a second value.

[0576] It should also be noted that, in the embodiment of the present application, only when the voxel node of the current unit starts the skip coding mode, the first quantity and the second quantity can be further determined at this time, and then the size of the first quantity and the second quantity is used to determine whether the voxel node of the current unit skips coding. Specifically, if the two are consistent, the node attributes at the voxel level are skipped. Otherwise, a timer is used. When the number of remaining repeated nodes of the timer is zero, it means that there are no repeated nodes in the subsequent points. Similarly, the attribute coding of the subsequent points can be skipped, and the attribute reconstruction values ​​of the subsequent voxel nodes are directly copied as the attribute reconstruction values ​​of the final remaining reconstructed points.

[0577] In another specific embodiment, the method may further include: determining second prediction mode identification information; and executing the fourth and fifth quantity determination steps when the second prediction mode identification information indicates that the node of the current layer starts the skip coding mode.

[0578] In an embodiment of the present application, the second prediction mode identification information may also be encoded, and the resulting encoded bits may be written into the bitstream. If the node in the current layer enables skip coding mode, the value of the second prediction mode identification information is determined to be the first value; if the node in the current layer does not enable skip coding mode, the value of the second prediction mode identification information is determined to be the second value.

[0579] It should also be noted that in the embodiment of the present application, only when the node of the current layer starts the skip coding mode, the fourth number and the fifth number can be further determined at this time, and then the size of the fourth number and the fifth number is used to determine whether the node of the current layer skips coding, that is, whether the current layer is a skip coding layer. Specifically, if the two numbers are consistent, the current layer is determined to be a skip coding layer, and it is no longer necessary to encode the attribute reconstruction value of the child node corresponding to the node of the current layer; if the two numbers are inconsistent, the current layer is determined not to be a skip coding layer, and RAHT prediction and encoding can be performed according to the encoding method of the relevant technology.

[0580] It should also be noted that, in the embodiment of the present application, the first value is different from the second value, and the first value and the second value can be in parameter form or in digital form. Specifically, the first prediction mode identification information and the second prediction mode identification information can be parameters written in the profile, or can be the value of a flag, which is not specifically limited here. In addition, for the first value and the second value, the first value can be set to 1 and the second value can be set to 0; or, the first value can be set to 0 and the second value can be set to 1; or, the first value can be set to true and the second value can be set to false; or, the first value can be set to false and the second value can be set to true. Among them, in the embodiment of the present application, the first value is set to 1 and the second value is set to 0, but it is not specifically limited.

[0581] Exemplarily, in some embodiments, taking the first value being set to 1 and the second value being set to 0 as an example, if the node of the current layer starts the skip coding mode, then it can be determined that the value of the second prediction mode identification information is 1, and then the fourth quantity and fifth quantity corresponding to the node of the current layer can be further determined according to the above method; if the node of the current layer does not start the skip coding mode, then it can be determined that the value of the second prediction mode identification information is 0, and the node of the current layer can be attribute coded according to the common intra-frame prediction method or inter-frame prediction method.

[0582] That is to say, in an embodiment of the present application, if the value of the first prediction mode identification information written in the code stream is the first value, that is, it is determined that the voxel node of the current unit starts the skip coding mode, then the first and second number determination steps can be executed, that is, the encoding process shown in Figure 44 is executed; if the value of the second prediction mode identification information written in the code stream is the first value, that is, it is determined that the node of the current layer starts the skip coding mode, then the fourth and fifth number determination processes can be executed, that is, the encoding process shown in Figure 46 is executed.

[0583] Furthermore, an embodiment of the present application also provides a code stream, which is generated by bit encoding based on the information to be encoded; wherein the information to be encoded may include at least one of the following: prediction mode identification information, attribute information of the repeated node of the current unit and the quantized coefficient residual corresponding to the node of the current layer; wherein the prediction mode identification information is used to indicate whether the current unit starts the skip coding mode.

[0584] It should be noted that in an embodiment of the present application, after the encoding end determines the information to be encoded, the information to be encoded can be written into the code stream; then the encoding end transmits it to the decoding end. Subsequently, at the decoding end, this information, such as the prediction mode identification information, can be obtained by decoding the code stream, and then it can be determined whether the current unit starts the skip coding mode.

[0585] To sum up, in an embodiment of the present application, when encoding attribute information, if the number of nodes in the current layer is consistent with the number of child nodes in the current layer, the current layer is considered to be a skipped coding layer, and therefore there is no need to perform transformation, prediction, encoding, and decoding on the current layer, thereby reducing the time complexity of attribute transformation encoding and decoding, and will not have any impact on the attribute coding efficiency.

[0586] This embodiment provides a coding method, in which a coding method for skipping the current layer is proposed. By utilizing the number of nodes and the number of child nodes of the current layer, it is adaptively determined whether the current layer can skip coding. This can reduce the time complexity of coding and decoding while ensuring the unchanged coding and decoding efficiency. In addition, a coding method for skipping voxel-level nodes is also proposed. First, the number of voxel nodes and the number of reconstructed nodes can be obtained. When the number of reconstructed nodes is consistent with the number of voxel nodes, it is considered that there are no duplicate nodes in the current unit, and the coding of voxel-level node attributes can also be skipped. In this way, on the basis of ensuring the coding and decoding efficiency of point cloud attributes, the time complexity of point cloud attribute coding and decoding can be reduced, and the bit rate can also be saved, thereby improving the coding and decoding performance of the point cloud.

[0587] In another embodiment of the present application, based on the encoding and decoding method of the aforementioned embodiment, the embodiment of the present application first defines a RAHT attribute coding layer. The current attribute RAHT transform coding order is to divide the attribute from the root node in sequence until it is divided into the voxel level (1×1×1), thereby completing the attribute encoding and attribute reconstruction of the entire point cloud. Here, it can be defined that the layer obtained by downsampling once along the Z direction, Y direction, and X direction each time is a RAHT transform layer, that is, layer. This is shown in Figure 42.

[0588] Secondly, based on the RAHT attribute coding layer, an algorithm for skipping coding layers is introduced. First, when encoding / decoding the attributes of the current layer node, the number of nodes in the current layer can be obtained. After using the geometric information of the current layer node to recover the child nodes of the current layer node, the number of child nodes of the current layer node can be obtained. Based on the size of the two, it is determined whether the current layer belongs to the skip coding layer:

[0589] If the data of the current layer node is consistent with the number of child nodes of the current layer node, the current layer belongs to the skip coding layer;

[0590] Otherwise, the current layer is a non-skipped coding layer.

[0591] Thus, after obtaining the start condition for skipping the coding layer, a specific algorithm of the coding end is as follows:

[0592] Step 1: Determine whether the number of nodes in the current layer is consistent with the number of child nodes in the current layer. If they are consistent, the current layer is a skip coding layer; otherwise, it is a non-skipped coding layer.

[0593] Step 2: If the current layer does not belong to a skip coding layer, transform, predict and encode according to the encoding method of the related art.

[0594] Step 3: If the current layer belongs to a skip coding layer, directly skip the current layer to the next layer.

[0595] Step 4: Repeat the above steps until encoding is done at the voxel level.

[0596] Step 5: For voxel-level nodes, before encoding the attributes of the voxel-level nodes, first determine whether the number of voxel-level nodes in the current coding unit is consistent with the number of reconstructed nodes. If they are consistent, skip encoding the attributes of the voxel-level points; otherwise, a timer will be used. When the number of remaining duplicate points of the timer is zero, it means that there are no duplicate points in the subsequent nodes, and the attribute encoding of the subsequent nodes can also be skipped.

[0597] On the decoding side, a specific algorithm is as follows:

[0598] Step 1: Determine whether the number of nodes in the current layer is consistent with the number of child nodes in the current layer. If they are consistent, the current layer belongs to the skip decoding layer; otherwise, it is a non-skip decoding layer;

[0599] Step 2: If the current layer does not belong to the skip decoding layer, prediction and decoding are performed according to the decoding method of the related art.

[0600] Step 3: If the current layer belongs to the skip decoding layer, directly skip the current layer to the next layer.

[0601] Step 4: Repeat the above steps until decoding is completed at the voxel level.

[0602] Step 5: For voxel-level nodes, before decoding the attributes of the voxel-level nodes, first determine whether the number of voxel-level nodes in the current decoding unit is consistent with the number of reconstructed nodes. If they are consistent, skip decoding the attributes of the voxel-level points; otherwise, a timer will be used. When the number of remaining duplicate points of the timer is zero, it means that there are no duplicate points in the subsequent nodes, and the attribute decoding of the subsequent nodes can also be skipped, and the attribute reconstruction values ​​of the subsequent remaining voxel nodes are directly copied as the attribute reconstruction values ​​of the final remaining reconstructed nodes.

[0603] That is to say, in an embodiment of the present application, a coding method for skipping coding layers is proposed, which adaptively determines whether the current layer can skip coding by utilizing the number of nodes and the number of sub-nodes of the current layer. This can reduce the time complexity of coding and decoding while ensuring that the coding and decoding efficiency remains unchanged. Similarly, in the RAHT coding scheme, the codec end first completes the encoding and decoding of non-node layer attribute information (i.e., the size of the node is greater than or equal to 1×1×1), and finally encodes and decodes the attribute information of the voxel-level nodes. The reason is that there will be duplicate points in the point cloud, so it is necessary to complete the encoding and decoding of the attribute information of the non-voxel-level points first, and then complete the encoding and decoding of the voxel-level point attribute information. In this way, at the codec end, the number of voxel-level reconstruction points can be obtained first. When the number of reconstruction points is consistent with the number of nodes that need to be reconstructed, it is considered that there are no duplicate points in the current coding unit (such as a slice), and the encoding / decoding of the voxel-level point attribute information can also be skipped.

[0604] Through the above embodiments, the specific implementation of the aforementioned embodiments is described in detail. It can be seen that according to the technical solutions of the aforementioned embodiments, when performing RAHT encoding on attribute information, the embodiments of the present application determine whether the current RAHT attribute coding layer is a skipped coding layer by determining whether the number of nodes in the current layer is consistent with the number of child nodes of the current layer node at each RAHT attribute coding layer. If the number of nodes in the current layer is consistent with the number of child nodes of the current layer node, the current layer is considered to be a skipped coding layer, that is, no transformation, prediction, encoding, and decoding processes are required, thereby reducing the time complexity of attribute transformation encoding / decoding and having no impact on the attribute coding efficiency.

[0605] In another embodiment of the present application, based on the same inventive concept as the above embodiment, see Figure 47, which shows a schematic diagram of the composition structure of an encoder provided by an embodiment of the present application. As shown in Figure 47, the encoder 470 may include: a first determining unit 4701 and an encoding unit 4702, wherein:

[0606] A first determining unit 4701 is configured to determine a first number of voxel nodes of a current unit and a second number of reconstruction nodes of the current unit;

[0607] The encoding unit 4702 is configured to determine whether the attribute information of the voxel node of the current unit is to be skipped for encoding based on the first quantity and the second quantity.

[0608] In some embodiments, the encoding unit 4702 is further configured to skip encoding the attribute information of the voxel node if the first number is the same as the second number; if the first number is different from the second number, perform attribute encoding on the repeated nodes in the voxel node, and skip encoding the attribute information of the remaining voxel nodes in the voxel node except the repeated nodes.

[0609] In some embodiments, the encoding unit 4702 is further configured to encode the attribute information of the repeated nodes and write the obtained encoded bits into the code stream.

[0610] In some embodiments, the encoding unit 4702 is further configured to set a timer; when the attribute information of the repeated node begins to be encoded, the timer is started, and when the timer reaches a preset value, it is determined that all the attribute information of the repeated node is encoded.

[0611] In some embodiments, the first determining unit 4701 is further configured to determine a third number of repeated nodes in the voxel node based on a difference between the first number and the second number; wherein the setting of the timer is associated with the third number.

[0612] In some embodiments, referring to FIG. 47 , the encoder 470 may further include a first reconstruction unit 4703 configured to determine a property reconstruction value of a voxel node of a current unit according to the first quantity and the second quantity.

[0613] In some embodiments, the first reconstruction unit 4703 is further configured to set the attribute reconstruction value of the voxel node of the current unit to the attribute reconstruction value of the reconstruction node of the current unit when the first number is the same as the second number.

[0614] In some embodiments, the first reconstruction unit 4703 is further configured to use the attribute reconstruction value of the repeated node as the attribute reconstruction value of the first reconstruction node in the current unit when the first number is different from the second number, and to set the attribute reconstruction values ​​of the remaining voxel nodes in the voxel node except the repeated node as the attribute reconstruction values ​​of the remaining reconstruction nodes in the current unit except the first reconstruction node.

[0615] In some embodiments, the first determination unit 4701 is further configured to divide the nodes in the current unit to determine at least one layer; and when the nodes of the last layer are divided into voxel levels, determine the voxel nodes of the current unit and the first number of voxel nodes.

[0616] In some embodiments, the at least one layer includes a current layer, and the first determining unit 4701 is further configured to determine a fourth number of nodes in the current layer and a fifth number of child nodes corresponding to the nodes in the current layer; wherein the fourth number and the fifth number are used to determine whether to skip encoding the current layer;

[0617] The first reconstruction unit 4703 is further configured to determine the attribute reconstruction value of the child node corresponding to the node of the current layer according to the fourth quantity and the fifth quantity.

[0618] In some embodiments, the fourth number represents the number of occupied nodes in the current layer; the fifth number represents the number of occupied child nodes or the number of nodes to be encoded in the nodes of the current layer.

[0619] In some embodiments, the first determining unit 4701 is further configured to determine the attribute reconstruction value of the node of the current layer as the attribute reconstruction value of the child node corresponding to the node of the current layer if the fourth number and the fifth number are the same.

[0620] In some embodiments, the first determining unit 4701 is further configured to determine a sixth number of next-layer child nodes corresponding to the child node if the fourth number and the fifth number are the same;

[0621] The first reconstruction unit 4703 is further configured to determine, based on the fifth quantity and the sixth quantity, an attribute reconstruction value of a next-layer child node corresponding to the child node.

[0622] In some embodiments, the first reconstruction unit 4703 is further configured to determine the attribute prediction value of the child node corresponding to the node of the current layer based on the node of the current layer if the fourth quantity and the fifth quantity are different; perform RAHT transformation based on the attribute prediction value of the child node and the attribute value of the child node respectively to determine the reconstruction value of the high-frequency coefficient and the low-frequency coefficient corresponding to the node of the current layer; and perform RAHT inverse transformation based on the reconstruction value of the high-frequency coefficient and the low-frequency coefficient to determine the attribute reconstruction value of the child node.

[0623] In some embodiments, the first determination unit 4701 is further configured to determine the adjacent nodes corresponding to the nodes of the current layer; and determine the attribute prediction values ​​of the child nodes corresponding to the nodes of the current layer based on the attribute reconstruction values ​​and relative distance parameters corresponding to the adjacent nodes.

[0624] In some embodiments, the first reconstruction unit 4703 is further configured to perform a RAHT transform based on the attribute prediction value of the child node to determine the predicted value of the high-frequency coefficient and the low-frequency coefficient corresponding to the node of the current layer; perform a RAHT transform based on the attribute value of the child node to determine the high-frequency coefficient and the low-frequency coefficient corresponding to the node of the current layer; and determine the reconstructed value of the high-frequency coefficient corresponding to the node of the current layer based on the predicted value of the high-frequency coefficient corresponding to the node of the current layer and the high-frequency coefficient corresponding to the node of the current layer.

[0625] In some embodiments, the first reconstruction unit 4703 is also configured to determine the coefficient residual corresponding to the node of the current layer based on the predicted value of the high-frequency coefficient corresponding to the node of the current layer and the high-frequency coefficient corresponding to the node of the current layer; and determine the reconstructed value of the high-frequency coefficient corresponding to the node of the current layer based on the coefficient residual corresponding to the node of the current layer.

[0626] In some embodiments, the first determining unit 4701 is further configured to quantize the coefficient residual to determine the quantized coefficient residual corresponding to the node of the current layer;

[0627] The encoding unit 4702 is further configured to perform encoding processing on the quantized coefficient residual and write the obtained encoding bits into the bit stream.

[0628] In some embodiments, the first reconstruction unit 4703 is also configured to dequantize the quantized coefficient residual to determine the dequantized residual value corresponding to the node of the current layer; and determine the reconstructed value of the high-frequency coefficient corresponding to the node of the current layer based on the dequantized residual value corresponding to the node of the current layer and the predicted value of the high-frequency coefficient corresponding to the node of the current layer.

[0629] In some embodiments, the first determining unit 4701 is further configured to determine geometric information of the node of the current layer; determine the child nodes corresponding to the node of the current layer and the fifth quantity according to the geometric information.

[0630] In some embodiments, the first determining unit 4701 is further configured to determine prediction mode identification information;

[0631] The encoding unit 4702 is further configured to, when the prediction mode identification information indicates that the current unit starts the skip encoding mode, perform the first and second number determination steps, and / or perform the fourth and fifth number determination steps.

[0632] In some embodiments, the prediction mode identification information is at least one of the following high-level syntax elements: a syntax element corresponding to a property parameter set and a syntax element corresponding to property block header information.

[0633] In some embodiments, the encoding unit 4702 is further configured to encode the prediction mode identification information and write the obtained encoded bits into the bitstream.

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

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

[0636] Therefore, an embodiment of the present application provides a computer-readable storage medium, which is applied to the encoder 470. The computer-readable storage medium stores a computer program, and when the computer program is executed by the first processor, it implements the method described in any one of the aforementioned embodiments.

[0637] Based on the composition of the encoder 470 and the computer-readable storage medium, refer to Figure 48, which shows a schematic diagram of the specific hardware structure of the encoder 470 provided in an embodiment of the present application. As shown in Figure 48, the encoder 470 may include: a first communication interface 4801, a first memory 4802 and a first processor 4803; each component is coupled together through a first bus system 4804. It can be understood that the first bus system 4804 is used to achieve connection and communication between these components. In addition to the data bus, the first bus system 4804 also includes a power bus, a control bus and a status signal bus. However, for the sake of clarity, various buses are labeled as the first bus system 4804 in Figure 48. Among them:

[0638] The first communication interface 4801 is used to receive and send signals when sending and receiving information with other external network elements;

[0639] A first memory 4802 is used to store computer programs that can be run on the first processor 4803;

[0640] The first processor 4803 is configured to, when running the computer program, execute:

[0641] determining a first number of voxel nodes of a current cell and a second number of reconstruction nodes of the current cell;

[0642] It is determined whether the attribute information of the voxel node of the current unit is skipped for encoding according to the first number and the second number.

[0643] It is understood that the first memory 4802 in the embodiment of the present application can be a volatile memory or a non-volatile memory, or can include both volatile and non-volatile memories. Among them, the non-volatile memory can 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 can 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 first memory 4802 of the systems and methods described herein is intended to include, but is not limited to, these and any other suitable types of memory.

[0644] The first processor 4803 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 or software instructions in the first processor 4803. The above-mentioned first processor 4803 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 can 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 first memory 4802, and the first processor 4803 reads the information in the first memory 4802 and completes the steps of the above method in combination with its hardware.

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

[0646] Optionally, as another embodiment, the first processor 4803 is further configured to execute any one of the methods described in the foregoing embodiments when running the computer program.

[0647] This embodiment provides an encoder, in which, when reconstructing the attributes of each voxel node, the judgment conditions for whether to perform attribute encoding and decoding on each voxel node are optimized. Specifically, if there are no duplicate nodes in the current unit, that is, the first number and the second number are the same, then there is no need to encode and decode the voxel nodes of the current unit. Therefore, on the basis of ensuring the encoding and decoding efficiency of the point cloud attributes, the time complexity of the encoding and decoding of the point cloud attributes can be reduced, and the bit rate can also be saved, thereby improving the encoding and decoding performance of the point cloud.

[0648] In yet another embodiment of the present application, based on the same inventive concept as the aforementioned embodiment, see FIG49 , which shows a schematic diagram of the structure of a decoder provided by an embodiment of the present application. As shown in FIG49 , the decoder 490 may include a second determination unit 4901 and a second reconstruction unit 4902, wherein:

[0649] A second determining unit 4901 is configured to determine a first number of voxel nodes of a current unit and a second number of reconstruction nodes of the current unit; wherein the first number and the second number are used to determine whether to skip decoding the voxel nodes of the current unit;

[0650] The second reconstruction unit 4902 is configured to determine the attribute reconstruction value of the voxel node of the current unit according to the first quantity and the second quantity.

[0651] In some embodiments, referring to FIG. 49 , the decoder 490 may further include a decoding unit 4903 configured to skip decoding a voxel node of a current unit if the first number is the same as the second number.

[0652] In some embodiments, the second reconstruction unit 4902 is further configured to set the attribute reconstruction value of the voxel node of the current unit to the attribute reconstruction value of the reconstruction node of the current unit when the first number is the same as the second number.

[0653] In some embodiments, the decoding unit 4903 is further configured to perform attribute decoding on duplicate nodes in the voxel nodes if the first number is different from the second number, and skip decoding the remaining voxel nodes except the duplicate nodes in the voxel nodes.

[0654] In some embodiments, the second reconstruction unit 4902 is further configured to decode the code stream and determine the attribute reconstruction value of the repeated node when the first number is different from the second number; use the attribute reconstruction value of the repeated node as the attribute reconstruction value of the first reconstruction node in the current unit, and set the attribute reconstruction value of the remaining voxel nodes in the voxel node except the repeated node as the attribute reconstruction value of the remaining reconstruction nodes in the current unit except the first reconstruction node.

[0655] In some embodiments, the decoding unit 4903 is further configured to set a timer; when the attribute reconstruction value of the repeated node begins to be decoded, the timer is started, and when the timer reaches a preset value, it is determined that all the attribute reconstruction values ​​of the repeated node are decoded.

[0656] In some embodiments, when the first number is different from the second number, the second determination unit 4901 is further configured to determine a third number of repeated nodes in the voxel node based on the difference between the first number and the second number; wherein the setting of the timer is associated with the third number.

[0657] In some embodiments, the second determination unit 4901 is further configured to divide the nodes in the current unit to determine at least one layer; and when the nodes of the last layer are divided into voxel levels, determine the voxel nodes of the current unit and the first number of voxel nodes.

[0658] In some embodiments, the at least one layer includes a current layer, and the second determining unit 4901 is further configured to determine a fourth number of nodes in the current layer and a fifth number of child nodes corresponding to the nodes in the current layer; wherein the fourth number and the fifth number are used to determine whether to skip decoding the current layer;

[0659] The second reconstruction unit 4902 is further configured to determine the attribute reconstruction value of the child node corresponding to the node of the current layer according to the fourth quantity and the fifth quantity.

[0660] In some embodiments, the fourth number represents the number of occupied nodes in the current layer; the fifth number represents the number of occupied child nodes in the node of the current layer or the number of nodes to be decoded.

[0661] In some embodiments, the second reconstruction unit 4902 is further configured to determine the attribute reconstruction value of the node of the current layer as the attribute reconstruction value of the child node corresponding to the node of the current layer if the fourth number and the fifth number are the same.

[0662] In some embodiments, the second reconstruction unit 4902 is further configured to determine the sixth number of the next layer of sub-nodes corresponding to the sub-node if the fourth number and the fifth number are the same; and determine the attribute reconstruction value of the next layer of sub-nodes corresponding to the sub-node based on the fifth number and the sixth number.

[0663] In some embodiments, the second reconstruction unit 4902 is further configured to determine the attribute prediction value of the child node corresponding to the node of the current layer based on the node of the current layer if the fourth quantity and the fifth quantity are different; perform RAHT transformation based on the attribute prediction value of the child node to determine the reconstruction value of the high-frequency coefficient and the low-frequency coefficient corresponding to the node of the current layer; and perform RAHT inverse transformation based on the reconstruction value of the high-frequency coefficient and the low-frequency coefficient to determine the attribute reconstruction value of the child node.

[0664] In some embodiments, the second determination unit 4901 is further configured to determine the adjacent nodes corresponding to the nodes of the current layer; and determine the attribute prediction values ​​of the child nodes corresponding to the nodes of the current layer based on the attribute reconstruction values ​​and relative distance parameters corresponding to the adjacent nodes.

[0665] In some embodiments, the second reconstruction unit 4902 is further configured to perform RAHT transformation based on the attribute prediction value of the child node to determine the prediction value and low-frequency coefficient of the high-frequency coefficient corresponding to the node of the current layer; and determine the reconstructed value of the high-frequency coefficient corresponding to the node of the current layer based on the prediction value of the high-frequency coefficient.

[0666] In some embodiments, the decoding unit 4903 is further configured to decode the code stream to determine the quantized coefficient residual corresponding to the node of the current layer;

[0667] The second determination unit 4901 is further configured to determine the reconstructed value of the high-frequency coefficient corresponding to the node of the current layer based on the predicted value of the high-frequency coefficient and the quantized coefficient residual.

[0668] In some embodiments, the second reconstruction unit 4902 is further configured to perform inverse quantization on the quantized coefficient residual to determine the inverse quantized residual value corresponding to the node of the current layer; and determine the reconstructed value of the high-frequency coefficient corresponding to the node of the current layer based on the inverse quantized residual value corresponding to the node of the current layer and the predicted value of the high-frequency coefficient corresponding to the node of the current layer.

[0669] In some embodiments, the second determining unit 4901 is further configured to determine geometric information of the node of the current layer; and determine the child node corresponding to the node of the current layer and the fifth quantity based on the geometric information.

[0670] In some embodiments, the decoding unit 4903 is further configured to decode the code stream and determine the prediction mode identification information; and when the prediction mode identification information indicates that the current unit starts the skip decoding mode, perform the first and second number determination steps, and / or perform the fourth and fifth number determination steps.

[0671] In some embodiments, the prediction mode identification information is at least one of the following high-level syntax elements: a syntax element corresponding to a property parameter set and a syntax element corresponding to property block header information.

[0672] It is understood that in this embodiment, a "unit" can be a portion of a circuit, a portion of a processor, a portion of a program or software, etc., and can also be a module or a non-modular system. Furthermore, the various components in this embodiment can be integrated into a single processing unit, or each unit can exist physically separately, or two or more units can be integrated into a single unit. The aforementioned integrated units can be implemented in the form of hardware or software functional modules.

[0673] 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, this embodiment provides a computer-readable storage medium, which is applied to decoder 490 and stores a computer program. When the computer program is executed by the second processor, it implements any of the methods in the aforementioned embodiments.

[0674] Based on the composition of the decoder 490 and the computer-readable storage medium, refer to Figure 50, which shows a specific hardware structure diagram of the decoder 490 provided in an embodiment of the present application. As shown in Figure 50, the decoder 490 may include: a second communication interface 5001, a second memory 5002 and a second processor 5003; each component is coupled together through a second bus system 5004. It can be understood that the second bus system 5004 is used to achieve connection and communication between these components. In addition to the data bus, the second bus system 5004 also includes a power bus, a control bus and a status signal bus. However, for the sake of clarity, various buses are labeled as the second bus system 5004 in Figure 50. Among them:

[0675] The second communication interface 5001 is used to receive and send signals during the process of sending and receiving information with other external network elements;

[0676] The second memory 5002 is used to store computer programs that can be run on the second processor 5003;

[0677] The second processor 5003 is configured to, when running the computer program, execute:

[0678] Determining a first number of voxel nodes of a current unit and a second number of reconstruction nodes of the current unit; wherein the first number and the second number are used to determine whether to skip decoding the voxel nodes of the current unit;

[0679] Determine the attribute reconstruction value of the voxel node of the current unit according to the first quantity and the second quantity.

[0680] Optionally, as another embodiment, the second processor 5003 is further configured to execute any one of the methods described in the foregoing embodiments when running the computer program.

[0681] It can be understood that the hardware functions of the second memory 5002 are similar to those of the first memory 4802, and the hardware functions of the second processor 5003 are similar to those of the first processor 4803; they will not be described in detail here.

[0682] This embodiment provides a decoder, in which, when reconstructing the attributes of each voxel node, the judgment conditions for whether to perform attribute encoding and decoding on each voxel node are optimized. Specifically, if there are no duplicate nodes in the current unit, that is, the first number and the second number are the same, then there is no need to encode and decode the voxel nodes of the current unit. Therefore, on the basis of ensuring the encoding and decoding efficiency of the point cloud attributes, the time complexity of the encoding and decoding of the point cloud attributes can be reduced, and the bit rate can also be saved, thereby improving the encoding and decoding performance of the point cloud.

[0683] In yet another embodiment of the present application, referring to FIG51 , a schematic diagram of the structure of a coding and decoding system provided by an embodiment of the present application is shown. As shown in FIG51 , the coding and decoding system 510 may include an encoder 5101 and a decoder 5102 .

[0684] In the embodiment of the present application, the encoder 5101 may be the encoder described in any one of the aforementioned embodiments, and the decoder 5102 may be the decoder described in any one of the aforementioned embodiments.

[0685] It should be noted that, in this 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.

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

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

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

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

[0690] 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

[0691] In an embodiment of the present application, whether it is the encoding end or the decoding end, the first number of voxel nodes of the current unit and the second number of reconstruction nodes of the current unit are determined, and then the attribute reconstruction value of the voxel node of the current unit is determined based on the first number and the second number; wherein the first number and the second number are used to determine whether the voxel node of the current unit skips encoding and decoding. And the fourth number of nodes of the current layer and the fifth number of child nodes corresponding to the nodes of the current layer are determined; according to the fourth number and the fifth number, the attribute reconstruction value of the child node corresponding to the node of the current layer is determined; wherein the fourth number and the fifth number are used to determine whether the current layer skips encoding and decoding. In this way, the number of nodes and the number of child nodes of the current layer can be used to adaptively determine whether the current layer can skip decoding. When the number of reconstructed nodes is consistent with the number of voxel nodes, it can be considered that there are no duplicate nodes in the current unit, and the node attributes at the voxel level can also be skipped. In this way, on the basis of ensuring the encoding and decoding efficiency of the point cloud attributes, the time complexity of the point cloud attribute encoding and decoding can be reduced, and the bit rate can also be saved, thereby improving the encoding and decoding performance of the point cloud.

Claims

1. A decoding method, applied to a decoder, the method comprising: Determine a first number of voxel nodes of a current unit and a second number of reconstruction nodes of the current unit; wherein the first number and the second number are used to determine whether to skip decoding the voxel nodes of the current unit; The attribute reconstruction value of the voxel node of the current unit is determined according to the first number and the second number.

2. The method according to claim 1, wherein: The method further comprises: If the first number is the same as the second number, decoding of the voxel node of the current unit is skipped.

3. The method according to claim 2, wherein: The step of determining the attribute reconstruction value of the voxel node of the current unit according to the first quantity and the second quantity includes: When the first number is the same as the second number, the attribute reconstruction value of the voxel node of the current unit is set to the attribute reconstruction value of the reconstruction node of the current unit.

4. The method according to claim 1, wherein: The method further comprises: If the first number is different from the second number, attribute decoding is performed on the repeated nodes in the voxel nodes, and decoding of the remaining voxel nodes in the voxel nodes except the repeated nodes is skipped.

5. The method according to claim 4, wherein: The step of determining the attribute reconstruction value of the voxel node of the current unit according to the first quantity and the second quantity includes: When the first number is different from the second number, decoding the code stream to determine the attribute reconstruction value of the repeated node; The attribute reconstruction value of the repeated node is used as the attribute reconstruction value of the first reconstruction node in the current unit, and the attribute reconstruction values ​​of the remaining voxel nodes in the voxel node except the repeated node are set as the attribute reconstruction values ​​of the remaining reconstruction nodes in the current unit except the first reconstruction node.

6. The method according to claim 5, wherein: The decoding code stream determines the attribute reconstruction value of the repeated node, including: Set a timer; When the attribute reconstruction value of the repeated node starts to be decoded, the timer is started, and when the timing of the timer reaches a preset value, it is determined that the attribute reconstruction value of the repeated node is completely decoded.

7. The method according to claim 6, wherein: When the first number is different from the second number, the method further includes: According to the difference between the first number and the second number, a third number of repeated nodes in the voxel nodes is determined; wherein the setting of the timer is associated with the third number.

8. The method according to any one of claims 1 to 7, wherein: The determining a first number of voxel nodes of the current unit includes: Dividing the nodes in the current unit to determine at least one layer; When the nodes of the last layer are divided into voxel levels, the voxel nodes of the current unit and the first number of the voxel nodes are determined.

9. The method according to claim 8, wherein: The at least one layer includes a current layer, and the method further includes: Determine a fourth number of nodes of the current layer and a fifth number of child nodes corresponding to the nodes of the current layer; wherein the fourth number and the fifth number are used to determine whether to skip decoding the current layer; According to the fourth number and the fifth number, an attribute reconstruction value of a child node corresponding to the node of the current layer is determined.

10. The method according to claim 9, wherein: The fourth number represents the number of occupied nodes of the current layer; The fifth number represents the number of occupied child nodes or the number of nodes to be decoded in the node of the current layer.

11. The method according to claim 9, wherein: The step of determining the attribute reconstruction value of the child node corresponding to the node of the current layer according to the fourth number and the fifth number includes: If the fourth number is the same as the fifth number, the attribute reconstruction value of the node of the current layer is determined as the attribute reconstruction value of the child node corresponding to the node of the current layer.

12. The method according to claim 9, wherein: The step of determining the attribute reconstruction value of the child node corresponding to the node of the current layer according to the fourth number and the fifth number includes: If the fourth number is the same as the fifth number, determining a sixth number of next-layer child nodes corresponding to the child node; According to the fifth number and the sixth number, an attribute reconstruction value of a next-layer child node corresponding to the child node is determined.

13. The method according to claim 9, wherein: The step of determining the attribute reconstruction value of the child node corresponding to the node of the current layer according to the fourth number and the fifth number includes: If the fourth number is different from the fifth number, the subnode corresponding to the node of the current layer is determined according to the node of the current layer. The predicted value of the point's attributes; Performing a RAHT transformation based on the attribute prediction value of the child node to determine a reconstructed value of a high-frequency coefficient and a low-frequency coefficient corresponding to the node of the current layer; An inverse RAHT transform is performed based on the reconstructed value of the high-frequency coefficient and the low-frequency coefficient to determine the attribute reconstruction value of the child node.

14. The method according to claim 13, wherein: The step of determining, according to the node of the current layer, the attribute prediction value of the child node corresponding to the node of the current layer comprises: Determine the adjacent nodes corresponding to the nodes of the current layer; According to the attribute reconstruction value corresponding to the adjacent node and the relative distance parameter, the attribute prediction value of the child node corresponding to the node of the current layer is determined.

15. The method according to claim 13, wherein: The performing RAHT transformation based on the attribute prediction value of the child node to determine the reconstruction value and low-frequency coefficient of the high-frequency coefficient corresponding to the node of the current layer includes: Performing a RAHT transformation based on the attribute prediction value of the child node to determine the prediction value of the high-frequency coefficient and the low-frequency coefficient corresponding to the node of the current layer; The reconstructed value of the high-frequency coefficient corresponding to the node of the current layer is determined according to the predicted value of the high-frequency coefficient.

16. The method according to claim 15, wherein: The step of determining the reconstructed value of the high-frequency coefficient corresponding to the node of the current layer according to the predicted value of the high-frequency coefficient comprises: Decoding the bitstream to determine the quantized coefficient residual corresponding to the node of the current layer; According to the predicted value of the high-frequency coefficient and the quantized coefficient residual, a reconstructed value of the high-frequency coefficient corresponding to the node of the current layer is determined.

17. The method according to claim 16, wherein: The determining, according to the predicted value of the high-frequency coefficient and the quantized coefficient residual, the reconstructed value of the high-frequency coefficient corresponding to the node of the current layer comprises: Dequantizing the quantized coefficient residual to determine the dequantized residual value corresponding to the node of the current layer; The reconstructed value of the high-frequency coefficient corresponding to the node of the current layer is determined according to the inverse quantized residual value corresponding to the node of the current layer and the predicted value of the high-frequency coefficient corresponding to the node of the current layer.

18. The method according to claim 9, wherein: The method further comprises: Determine geometric information of nodes of the current layer; Determine the child nodes corresponding to the nodes of the current layer and the fifth quantity according to the geometric information.

19. The method according to claim 9, wherein: The method further comprises: Decoding the bitstream and determining the prediction mode identification information; When the prediction mode identification information indicates that the current unit starts the skip decoding mode, the steps of determining the first number and the second number are performed, and / or the steps of determining the fourth number and the fifth number are performed.

20. The method according to claim 19, wherein: The prediction mode identification information is at least one of the following high-level syntax elements: a syntax element corresponding to an attribute parameter set and a syntax element corresponding to attribute block header information.

21. A coding method, applied to an encoder, the method comprising: determining a first number of voxel nodes of a current cell and a second number of reconstruction nodes of the current cell; It is determined whether the attribute information of the voxel node of the current unit is skipped for encoding according to the first number and the second number.

22. The method according to claim 21, wherein: The determining, according to the first number and the second number, whether to skip encoding of the attribute information of the voxel node of the current unit includes: If the first number is the same as the second number, skip encoding the attribute information of the voxel node; If the first number is different from the second number, attribute encoding is performed on the repeated nodes in the voxel nodes, and encoding of attribute information of the remaining voxel nodes in the voxel nodes except the repeated nodes is skipped.

23. The method according to claim 22, wherein: The performing attribute encoding on the repeated nodes in the voxel nodes comprises: The attribute information of the repeated node is encoded, and the obtained encoding bits are written into the bit stream.

24. The method according to claim 23, wherein: The encoding process of the attribute information of the repeated node includes: Set a timer; When the attribute information of the repeated node starts to be encoded, the timer is started, and when the timing of the timer reaches a preset value, it is determined that the attribute information of the repeated node is completely encoded.

25. The method according to claim 24, wherein: The method further comprises: According to the difference between the first number and the second number, a third number of repeated nodes in the voxel nodes is determined; wherein the setting of the timer is associated with the third number.

26. The method according to claim 21, wherein: The method further comprises: The attribute reconstruction value of the voxel node of the current unit is determined according to the first number and the second number.

27. The method according to claim 26, wherein: The step of determining the attribute reconstruction value of the voxel node of the current unit according to the first quantity and the second quantity includes: When the first number is the same as the second number, the attribute reconstruction value of the voxel node of the current unit is set to the attribute reconstruction value of the reconstruction node of the current unit.

28. The method according to claim 26, wherein: The step of determining the attribute reconstruction value of the voxel node of the current unit according to the first quantity and the second quantity includes: When the first number is different from the second number, the attribute reconstruction value of the repeated node is used as the attribute reconstruction value of the first reconstruction node in the current unit, and the attribute reconstruction values ​​of the remaining voxel nodes in the voxel node except the repeated node are set as the attribute reconstruction values ​​of the remaining reconstruction nodes in the current unit except the first reconstruction node.

29. The method according to any one of claims 21 to 28, wherein: The determining a first number of voxel nodes of the current unit includes: Dividing the nodes in the current unit to determine at least one layer; When the nodes of the last layer are divided into voxel levels, the voxel nodes of the current unit and the first number of the voxel nodes are determined.

30. The method of claim 29, wherein: The at least one layer includes a current layer, and the method further includes: Determine a fourth number of nodes of the current layer and a fifth number of child nodes corresponding to the nodes of the current layer; wherein the fourth number and the fifth number are used to determine whether to perform skip coding on the current layer; According to the fourth number and the fifth number, an attribute reconstruction value of a child node corresponding to the node of the current layer is determined.

31. The method according to claim 30, wherein: The fourth number represents the number of occupied nodes of the current layer; The fifth number represents the number of occupied child nodes or the number of nodes to be encoded in the node of the current layer.

32. The method of claim 30, wherein: The step of determining the attribute reconstruction value of the child node corresponding to the node of the current layer according to the fourth number and the fifth number includes: If the fourth number is the same as the fifth number, the attribute reconstruction value of the node of the current layer is determined as the attribute reconstruction value of the child node corresponding to the node of the current layer.

33. The method of claim 30, wherein: The step of determining the attribute reconstruction value of the child node corresponding to the node of the current layer according to the fourth number and the fifth number includes: If the fourth number is the same as the fifth number, determining a sixth number of next-layer child nodes corresponding to the child node; According to the fifth number and the sixth number, an attribute reconstruction value of a next-layer child node corresponding to the child node is determined.

34. The method of claim 30, wherein: The step of determining the attribute reconstruction value of the child node corresponding to the node of the current layer according to the fourth number and the fifth number includes: If the fourth number is different from the fifth number, determining the attribute prediction value of the child node corresponding to the node of the current layer according to the node of the current layer; Performing RAHT transformation based on the attribute prediction value of the child node and the attribute value of the child node respectively, to determine the reconstructed value of the high-frequency coefficient and the low-frequency coefficient corresponding to the node of the current layer; An inverse RAHT transform is performed based on the reconstructed value of the high-frequency coefficient and the low-frequency coefficient to determine the attribute reconstruction value of the child node.

35. The method of claim 34, wherein: The step of determining, according to the node of the current layer, the attribute prediction value of the child node corresponding to the node of the current layer comprises: Determine the adjacent nodes corresponding to the nodes of the current layer; According to the attribute reconstruction value corresponding to the adjacent node and the relative distance parameter, the attribute prediction value of the child node corresponding to the node of the current layer is determined.

36. The method of claim 34, wherein: The performing RAHT transformation based on the attribute prediction value of the child node and the attribute value of the child node respectively to determine the reconstruction value and low-frequency coefficient of the high-frequency coefficient corresponding to the node of the current layer includes: Performing a RAHT transformation based on the attribute prediction value of the child node to determine the prediction value of the high-frequency coefficient and the low-frequency coefficient corresponding to the node of the current layer; Performing a RAHT transformation based on the attribute value of the child node to determine the high-frequency coefficient and the low-frequency coefficient corresponding to the node of the current layer; According to the predicted values ​​of the high-frequency coefficients corresponding to the nodes of the current layer and the high-frequency coefficients corresponding to the nodes of the current layer, the reconstructed values ​​of the high-frequency coefficients corresponding to the nodes of the current layer are determined.

37. The method of claim 36, wherein: The determining, according to the predicted value of the high-frequency coefficient corresponding to the node of the current layer and the high-frequency coefficient corresponding to the node of the current layer, the reconstructed value of the high-frequency coefficient corresponding to the node of the current layer comprises: According to the predicted value of the high-frequency coefficient corresponding to the node of the current layer and the high-frequency coefficient corresponding to the node of the current layer, the current layer is determined. The coefficient residuals corresponding to the nodes in the previous layer; According to the coefficient residuals corresponding to the nodes of the current layer, the reconstructed values ​​of the high-frequency coefficients corresponding to the nodes of the current layer are determined.

38. The method of claim 37, wherein: The method further comprises: quantizing the coefficient residual to determine the quantized coefficient residual corresponding to the node of the current layer; The quantized coefficient residual is coded and the obtained coded bits are written into a bit stream.

39. The method of claim 38, wherein: The step of determining the reconstructed value of the high-frequency coefficient corresponding to the node of the current layer according to the coefficient residual corresponding to the node of the current layer comprises: Dequantizing the quantized coefficient residual to determine the dequantized residual value corresponding to the node of the current layer; The reconstructed value of the high-frequency coefficient corresponding to the node of the current layer is determined according to the inverse quantized residual value corresponding to the node of the current layer and the predicted value of the high-frequency coefficient corresponding to the node of the current layer.

40. The method of claim 30, wherein: The method further comprises: Determine geometric information of nodes of the current layer; Determine the child nodes corresponding to the nodes of the current layer and the fifth quantity according to the geometric information.

41. The method of claim 30, wherein: The method further comprises: Determining prediction mode identification information; When the prediction mode identification information indicates that the current unit starts the skip coding mode, the steps of determining the first number and the second number are performed, and / or the steps of determining the fourth number and the fifth number are performed.

42. The method according to claim 41, wherein: The prediction mode identification information is at least one of the following high-level syntax elements: a syntax element corresponding to an attribute parameter set and a syntax element corresponding to attribute block header information.

43. The method of claim 41, wherein: The method further comprises: The prediction mode identification information is coded and the obtained coded bits are written into a bit stream.

44. A code stream, wherein The code stream is generated by bit encoding according to the information to be encoded; wherein the information to be encoded includes at least one of the following: Prediction mode identification information, attribute information of repeated nodes of the current unit and quantized coefficient residuals corresponding to nodes of the current layer; wherein the prediction mode identification information is used to indicate whether the current unit starts skip coding mode.

45. An encoder, comprising a first determining unit and an encoding unit, wherein: The first determining unit is configured to determine a first number of voxel nodes of a current unit and a second number of reconstruction nodes of the current unit; The encoding unit is configured to determine whether to skip encoding of the attribute information of the voxel node of the current unit according to the first number and the second number.

46. ​​An encoder, comprising a first memory and a first processor, wherein: The first memory is used to store a computer program that can be run on the first processor; The first processor is configured to execute the method according to any one of claims 21 to 43 when running the computer program.

47. A decoder, comprising a second determination unit and a second reconstruction unit, wherein: The second determining unit is configured to determine a first number of voxel nodes of a current unit and a second number of reconstruction nodes of the current unit; wherein the first number and the second number are used to determine whether to skip decoding the voxel nodes of the current unit; The second reconstruction unit is configured to determine the attribute reconstruction value of the voxel node of the current unit according to the first number and the second number.

48. A decoder comprising a second memory and a second processor, wherein: The second memory is used to store a computer program that can be run on the second processor; The second processor is configured to execute the method according to any one of claims 1 to 20 when running the computer program.

49. A computer-readable storage medium, wherein: The computer-readable storage medium stores a computer program, and when the computer program is executed, the method according to any one of claims 1 to 20 is implemented, or the method according to any one of claims 21 to 43 is implemented.