Encoding method, decoding method, bitstream, encoder, decoder and storage medium

By expanding the reference frame type of inter -frame predicted in the point cloud, the problem of poor prediction effects caused by the single type of reference frame type in the existing technology, and achieved more efficient point cloud geometric information coding performance.

WO2025015523A1PCT designated stage expired Publication Date: 2025-01-23GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP LTD
View PDF 6 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2023/107964
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2023-07-18
Publication Date
2025-01-23

AI Technical Summary

Technical Problem

In the inter-frame prediction of point clouds, the reference frame type is single, and the most suitable prediction point cannot be fully selected, resulting in poor prediction effect and reducing the coding efficiency of geometric information.

Method used

Provide a coding method. By determining the candidate node in multiple reference frames of the current frame, it expands the predictable reference frame type that is predicted by the frame, and improves the accuracy of the inter -frame prediction.

Benefits of technology

It improves the encoding and decoding performance of point cloud geometric information, improves the accuracy of inter-frame prediction, and enhances the compression efficiency of point cloud data.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2023107964_23012025_PF_FP_ABST
    Figure CN2023107964_23012025_PF_FP_ABST
Patent Text Reader

Abstract

The embodiments of the present application provide an encoding method, a decoding method, a bitstream, an encoder, a decoder and a storage medium. The decoding method comprises: decoding a bitstream, and determining index information of the current node in the current frame; determining a prediction node from at least one reference frame of the current frame according to the index information, wherein the at least one reference frame comprises a first reference frame, and geometric parameters of a node in the first reference frame are determined on the basis of geometric parameters of nodes in a plurality of frames; and determining a geometric predicted value of the current node according to the prediction node. Thus, the accuracy of inter-frame prediction can be improved, so that the encoding efficiency of geometric information is improved, and the encoding and decoding performance of a point cloud can then 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 present application relates 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 information and attribute information of the point cloud are encoded separately. G-PCC's geometry coding can be divided into octree-based geometry coding and prediction tree-based geometry coding. For prediction tree-based geometry coding, it is first necessary to establish a prediction tree; then, each node in the prediction tree is traversed, and after determining the prediction mode of each node, the geometric position information of the node is predicted according to the prediction mode to obtain the prediction residual. Finally, the parameters such as the prediction mode and prediction residual of each node are encoded to generate a binary code stream.

[0003] During the encoding process, the current node can also use inter-frame prediction mode to predict its geometric position information. However, related technologies use a single reference frame type for inter-frame prediction, which makes it difficult to fully select the inter-frame prediction point that best suits the current node. This results in poor prediction results and reduces the coding efficiency of geometric information.

[0004] Summary of the Invention

[0005] The embodiments of the present application provide a coding and decoding method, bitstream, encoder, decoder, and storage medium that can improve the accuracy of inter-frame prediction, thereby increasing the coding efficiency of geometric information and improving the coding and decoding performance of point clouds. The following describes various aspects of this application.

[0006] In a first aspect, a decoding method is provided, which is applied to a decoder, and the method includes: decoding a code stream to determine index information of a current node in a current frame; determining a predicted node from at least one reference frame of the current frame based on the index information; wherein the at least one reference frame includes a first reference frame, and the geometric parameters of the node in the first reference frame are determined based on the geometric parameters of the nodes in multiple frames; and determining a geometric prediction value of the current node based on the predicted node.

[0007] In a second aspect, a coding method is provided, which is applied to an encoder, and the method includes: determining a previous encoded node of a current node in a current frame; determining a candidate node in at least one reference frame of the current frame based on the previous encoded node; wherein the at least one reference frame includes a first reference frame, and the geometric parameters of the node in the first reference frame are determined based on the node geometric parameters in multiple frames; determining an inter-frame candidate node set based on the candidate nodes in the at least one reference frame; and determining a geometric prediction value of the current node based on the inter-frame candidate node set.

[0008] According to a third aspect, a code stream is provided, wherein the code stream is generated by bit encoding based on information to be encoded; wherein the information to be encoded includes at least one of the following: a geometric prediction residual value of a current node, a quantization parameter, index information, a value of first identification information, a value of second identification information, a value of third identification information, and a first parameter; wherein the first identification information is used to indicate whether the current node uses a bidirectional inter-frame prediction mode, the second identification information is used to indicate whether the current node uses an inter-frame prediction mode, and the third identification information is used to indicate whether the current node enables an inter-frame prediction mode based on a fused frame, and the first parameter is used to indicate an interval between a key frame corresponding to a group of frames and a first forward prediction frame in the group of frames, or the first parameter is used to indicate an interval between two adjacent forward prediction frames in the group of frames, and the group of frames is a group of frames in which the current frame is located.

[0009] In a fourth aspect, a decoder is provided, comprising: a decoding unit configured to decode a code stream and determine index information of a current node in a current frame; a determination unit configured to determine a prediction node from at least one reference frame of the current frame based on the index information; wherein the at least one reference frame includes a first reference frame, and the geometric parameters of the node in the first reference frame are determined based on the geometric parameters of the nodes in multiple frames; and a prediction unit configured to determine a geometric prediction value of the current node based on the prediction node.

[0010] In a fifth aspect, a decoder is provided, comprising: a memory for storing a computer program; and a processor for executing the method described in the first aspect when running the computer program.

[0011] In a sixth aspect, an encoder is provided, comprising: a determination unit configured to determine a previous encoded node of a current node in a current frame; determining a candidate node in at least one reference frame of the current frame based on the previous encoded node; wherein the at least one reference frame includes a first reference frame, and the geometric parameters of the node in the first reference frame are determined based on the node geometric parameters in multiple frames; and determining an inter-frame candidate node set based on the candidate nodes in the at least one reference frame; a prediction unit configured to determine a geometric prediction value of the current node based on the inter-frame candidate node set.

[0012] In a seventh aspect, an encoder is provided, comprising: a memory for storing a computer program; and a processor for executing the method described in the second aspect when running the computer program.

[0013] In an eighth aspect, a computer-readable storage medium is provided, wherein the computer-readable storage medium stores a computer program, and when the computer program is executed, the method as described in the first aspect or the method as described in the second aspect is implemented.

[0014] The embodiments of the present application provide a coding and decoding method, a bitstream, an encoder, a decoder, and a storage medium. At the encoding end, the previous encoded node of the current node in the current frame is first determined; then, based on the previous encoded node, a candidate node is determined in at least one reference frame of the current frame; wherein the at least one reference frame includes a first reference frame, and the geometric parameters of the node in the first reference frame are determined based on the node geometric parameters in multiple frames; then, based on the candidate nodes in the at least one reference frame, a set of inter-frame candidate nodes is determined; finally, based on the inter-frame candidate node set, a geometric prediction value of the current node is determined. At the decoding end, the bitstream is first decoded to determine the index information of the current node in the current frame; then, based on the index information, a predicted node is determined from at least one reference frame of the current frame; wherein the at least one reference frame includes a first reference frame, and the geometric parameters of the node in the first reference frame are determined based on the node geometric parameters in multiple frames; then, based on the predicted node, a geometric prediction value of the current node is determined. The embodiments of the present application are mainly optimized for inter-frame prediction. Compared with related technologies, the embodiments of the present application expand the types of reference frames available for inter-frame prediction, improve the accuracy of inter-frame prediction, and thus improve the encoding and decoding performance of point cloud geometric information. BRIEF DESCRIPTION OF THE DRAWINGS

[0015] FIG1A is a schematic diagram of a three-dimensional point cloud image.

[0016] FIG1B is a partially enlarged view of a three-dimensional point cloud image.

[0017] FIG2A is a schematic diagram of six viewing angles of a point cloud image.

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

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

[0020] FIG4A is a schematic diagram of a composition framework of a G-PCC encoder.

[0021] FIG4B is a schematic diagram of a composition framework of a G-PCC decoder.

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

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

[0024] FIG6 is a schematic diagram of a node encoding sequence.

[0025] FIG. 7A is a schematic diagram of plane identification information.

[0026] FIG. 7B is a schematic diagram of another type of planar identification information.

[0027] FIG8 is a schematic diagram of sibling nodes of a current node.

[0028] FIG9 is a schematic diagram of the intersection of a laser radar and a node.

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

[0030] FIG11 is a schematic diagram showing a current node being located at a low plane position of a parent node.

[0031] FIG12 is a schematic diagram showing a current node being located at a high plane position of a parent node.

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

[0033] FIG14 is a schematic diagram of IDCM encoding.

[0034] FIG15 is a schematic diagram of coordinate transformation for obtaining a point cloud using a rotating laser radar.

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

[0036] FIG. 17A is a schematic diagram showing an angle of the X-plane predicted by the horizontal azimuth angle.

[0037] FIG17B is a schematic diagram showing an angle of the Y plane predicted by the horizontal azimuth angle.

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

[0039] FIG. 19A is a schematic diagram showing three intersection points included in a sub-block.

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

[0041] FIG19C is a schematic diagram of upsampling of a triangle face set.

[0042] FIG20 is a schematic diagram of the structure of geometric information inter-frame encoding and decoding.

[0043] FIG21 is an example diagram of the inter-frame prediction method provided by the related art.

[0044] Figure 22 is a flowchart of the decoding method provided in an embodiment of the present application.

[0045] Figure 23 is a structural diagram of inter-frame coding of geometric information provided in an embodiment of the present application.

[0046] FIG24 is a diagram showing an example of the structure of a set of frames proposed in an embodiment of the present application.

[0047] FIG25 is an example diagram of a set of frames and their reference frames proposed in an embodiment of the present application.

[0048] Figure 26 is a flow chart of the encoding method provided in an embodiment of the present application.

[0049] Figure 27 is a structural diagram of inter-frame decoding of geometric information provided in an embodiment of the present application.

[0050] FIG28 is a schematic diagram of the structure of a decoder provided in an embodiment of the present application.

[0051] FIG29 is a schematic diagram of the structure of a decoder provided in another embodiment of the present application.

[0052] Figure 30 is a schematic diagram of the structure of the encoder provided in one embodiment of the present application.

[0053] Figure 31 is a schematic structural diagram of an encoder provided in another embodiment of the present application.

[0054] Figure 32 is a structural diagram of the encoding and decoding system provided in an embodiment of the present application. DETAILED DESCRIPTION

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

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

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

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

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

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

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

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

[0063] 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). Specifically, in Figure 2B , the data storage format corresponding to the point cloud image is indicated as ply in line 1; the data representation type is indicated by format ascii 1.0 in line 2; the total number of points is indicated by element vertex 207242 in line 3; the three-dimensional coordinate information (x, y, z) of each point is represented as property float x, property float y, and property float z in lines 4-6; and the three-dimensional color information (r, g, b) is represented as property uchar red, property uchar green, and property uchar blue in lines 7-9. The completion of the file header information can be indicated by "end_header" in line 10 of Figure 2B . In FIG. 2B , the data portion can be exemplarily represented by rows 11-14 as: 75 318 0 0 142 0, 75 319 0 0 143 0, 75 319 1 1 9 9, and 77 315 ​​0 1 9 9.

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

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

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

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

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

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

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

[0071] 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 telepresence, and three-dimensional reconstruction of biological tissues and organs.

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

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

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

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

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

[0077] 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).

[0078] The following describes the related technologies using the G-PCC codec framework and the AVS codec framework as examples.

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

[0080] Figure 4A shows a schematic diagram of the G-PCC encoder 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 a prediction tree is constructed. During this process, arithmetic coding is performed on the points in 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 geometric information is reconstructed, color conversion is performed to convert the color information (i.e., attribute information) from the RGB color space to the YUV color space. The reconstructed 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.

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

[0082] 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).

[0083] For Octree geometry encoding (OctGeomEnc), the 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.

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

[0085] 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: 10101010. 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 encoding method is used in a certain dimension, it is first necessary to represent the plane identification (planarMode) and plane position (PlanePos) information of the current node in that dimension, and then encode the occupancy information of the current node based on the plane information of the current node. For example, FIG7A shows a schematic diagram of plane identification information. As shown in FIG7A, 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. FIG7B shows another schematic diagram of plane identification information. As shown in FIG7B, 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.

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

[0087] In the G-PCC standard, to determine whether a node meets the plane coding conditions and when the node meets the plane coding conditions, it is necessary to perform predictive coding on the plane identification and plane position information of the node.

[0088] The current G-PCC standard has three criteria for determining whether a node satisfies plane coding, which are described in detail below.

[0089] 1. Judge based on the plane probability of the node in each dimension.

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

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

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

[0093] It should be noted that the threshold is adaptively changed. For example, when Prob(0)>Prob(1)>Prob(2), Eligible i The settings are as follows: Eligible0=Prob(0)>=Th0; Eligible1=Prob(1)>=Th1; Eligible2=Prob(2)>=Th2 (1)

[0094] When Prob(1)>Prob(0)>Prob(2), then Eligible i The settings are as follows: Eligible0=Prob(0)>=Th1; Eligible1=Prob(1)>=Th0; Eligible2=Prob(2)>=Th2 (2)

[0095] Here, the update of Prob(i) is as follows: new =(L×Prob(i)+δ(coded node)) / L+1 (3)

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

[0097] Here, the update of local_node_density is as follows: local_node_density new =local_node_density+4*numSiblings (4)

[0098] 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 the sibling nodes of the current node. Then, the number of sibling nodes of the current node is 5 (including the current node itself).

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

[0100] The point density of the current layer 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 Infer Direct Coding Model (IDCM) coding is numPointCountRecon. Since the octree is coded in a breadth-first traversal order, 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 for the current layer is planarEligibleKOctreeDepth, specifically: planarEligibleK OctreeDepth = (pointCount - numPointCountRecon) < nodeCount × 1.3.

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

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

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

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

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

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

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

[0108] 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:

[0109] (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;

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

[0111] (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;

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

[0113] 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".

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

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

[0116] 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:

[0117] ① 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.

[0118] ② 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.

[0119] ③ 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.

[0120] ④ 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.

[0121] 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:

[0122] ① 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.

[0123] ② 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.

[0124] ③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.

[0125] ④ 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.

[0126] 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).

[0127] 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:

[0128] 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:

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

[0130] 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:

[0131] (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.

[0132] (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.

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

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

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

[0136] 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:

[0137] (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).

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

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

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

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

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

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

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

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

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

[0147] (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: dirextAxis = !(nodePos[0]<nodePos[1])

[0148] 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:

[0149] After encoding the prioritized axis dirextAxis, the geometric coordinates of the current node are directly encoded. Assuming the remaining encoding bit depth of each point is nodeSizeLog2, the specific encoding process is as follows: for(int axisIdx=0;axisIdx<3;++axisIdx) for(int mask=(1<<nodeSizeLog2[axisIdx])>>1;mask;mask>>1) encodePosBit(!!(pointPos[axisIdx]&mask)).

[0150] (2) LiDAR point cloud.

[0151] 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: dirextAxis = !(nodePos[0]<nodePos[1])

[0152] 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:

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

[0154] 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 the other dimension. Also assuming that the directly encoded axis direction is directAxis, and assuming that the bit depth of the direct encoding is nodeSizeLog2, the encoding method is as follows: for(int mask=(1<<nodeSizeLog2)>>1;mask;mask>>1) encodePosBit(!!(pointPos[directAxis]&mask)).

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

[0156] 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). 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°.

[0157] In this way, after encoding all the precision of the directAxis coordinate direction, the LaserIdx corresponding to the current node 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:

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

[0159] 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 (Current node), and the box filled with a slash represents the already coded point (Already coded node). Here, the LaserIdx corresponding to the current node 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 node 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 is The calculation method between the node geometry information is as follows:

[0160] 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:

[0161] Furthermore, using the horizontal azimuth angle of the node And the horizontal azimuth of the previous Laser code point corresponding to the current node Calculate the horizontal azimuth angle prediction value corresponding to the current node 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 by the horizontal azimuth angle, and Figure 17B shows a schematic diagram of predicting the angle of the X plane by the horizontal azimuth angle. Here, for the predicted value of the horizontal azimuth angle corresponding to the current node The calculation is as follows:

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

[0163] 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: int context=(angLel≥0&&angLeR≥0)||(angLel<0&&angLeR<0)? 0:2; int minAngle=std∷min(abs(angLel),abs(angLeR)); int maxAngle=std∷max(abs(angLel),abs(angLeR)); context+=maxAngle>minAngle? 0:1; context+=maxAngle>minAngle? 0:4.

[0164] After encoding the LaserIdx of the completed point, the Z-axis direction of the current node will be predicted and encoded using the LaserIdx corresponding to the current node. That is, the radius of the radar coordinate system is calculated using the x and y information of the current node. Then, the tangent value of the current node and the vertical offset are obtained using the LaserIdx of the current node. The predicted value of the Z-axis direction of the current node, namely Z_pred, can be obtained. The details are as follows: int tanTheta=tanθ laserIdx ; int zOffset = Z laserIdx ; Z_pred=radius×tanTheta-zOffset.

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

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

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

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

[0169] 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:

[0170] (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.

[0171] (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.

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

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

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

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

[0176] ii) If the numPonts of the current node is greater than 1, the second point is decoded to determine whether it is a duplicate point. If the second point is not a duplicate point, it can be implicitly inferred that the second type of DCM pattern contains only two points.

[0177] iii) If the numPonts of the current node obtained by decoding is less than or equal to 1, then decode whether the second point is a repeated point; if the second point is not a repeated point, then 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, then it can be inferred that the third type of DCM pattern is satisfied, which contains multiple points, but all are repeated points, then decode whether the number of repeated points is greater than 1 (entropy decoding), and if it is greater than 1, decode the number of remaining repeated points (using exponential Columbus decoding).

[0178] 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).

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

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

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

[0182] (2) If the current node contains two points, the first coordinate axis to be decoded is 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: dirextAxis = (nodePos[0] < nodePos[1]) (10)

[0183] 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:

[0184] After decoding the prioritized axis dirextAxis, the geometric coordinates of the current node are directly decoded. Assuming that 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:

[0185] (2) LiDAR point cloud.

[0186] If the current node contains two points, the priority decoding 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: dirextAxis = ! (nodePos[0] < nodePos[1]) (11)

[0187] 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:

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

[0189] 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:

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

[0191] After decoding all the precision of the directAxis coordinate direction, the LaserIdx of the current node, i.e., nodeLaserIdx, is calculated first. Then, the LaserIdx of the node, i.e., nodeLaserIdx, is used to predict and decode the LaserIdx of the point, i.e., pointLaserIdx. The calculation method of the LaserIdx of the node or point is the same as that of the encoder. Finally, the LaserIdx of the current node and the predicted residual information of the LaserIdx of the node are decoded to obtain ResLaserIdx. The decoding method is as follows: PointLaserIdx=nodeLaserIdx+ResLaserIdx (12)

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

[0193] As shown in Figure 11, first use the LaserIdx corresponding to the current node to obtain the corresponding horizontal azimuth prediction value, that is, Secondly, the node geometry information corresponding to the current node 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 is The calculation method between the node geometry information is as follows:

[0194] 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:

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

[0196] 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: int context=(angLel≥0&&angLeR≥0)||(angLel<0&&angLeR<0)? 0:2; int absAngleL=abs(angLel); int absAngleR=abs(angLeR); context+=absAngleL>absAngleR? 0:1; context+=maxAngle>minAngle<<1? 4:0.

[0197] After decoding the LaserIdx of the node, the Z-axis direction of the current node is predicted and decoded using the LaserIdx corresponding to the current node. That is, the radius of the radar coordinate system is calculated using the x and y information of the current node. Then, the tangent value of the current node and the vertical offset are obtained using the LaserIdx of the current node. The predicted value of the Z-axis direction of the current node, namely Z_pred, can be obtained. The details are as follows: int tanTheta=tanθ laserIdx ; int zOffset = Z laserIdx ; Z_pred=radius×tanTheta-zOffset.

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

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

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

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

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

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

[0204] 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:

[0205] in, The highest bits of x, y, and z respectively To the lowest position The corresponding binary value. The Morton code M is x, y, z starting from the highest bit, arranged in sequence To the lowest bit, the calculation formula of M is as follows:

[0206] in, The highest bit of M To the lowest position 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.

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

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

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

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

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

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

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

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

[0215] Technical route 1: Octree encoding branch.

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

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

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

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

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

[0221] In a possible implementation manner, the following specifically describes the inter-frame coding and decoding of geometric information in the related art.

[0222] Taking Figure 15 as an example, the point coordinates of the point cloud input are (x, y, z). Using the prior radar information of the current node cloud, the position information of the point cloud is converted into the radar coordinate system (radius, laserIdx). Assume that the geometric coordinates of the point are pointPos, the starting coordinates of the laser ray are LidarOrigin, and the number of lasers is LaserNum, and the tangent value of each laser is tanθ i , the vertical offset position of each Laser is Zi , then the LaserIdx of a node or point is calculated as follows:

[0223] Furthermore, assuming that the geometric coordinates of the node are pointPos, the horizontal azimuth The calculation is as follows:

[0224] Furthermore, the depth information radius is calculated as follows:

[0225] Among them, LidarOrigin is generally 0.

[0226] For example, Figure 20 shows a schematic diagram of the structure of inter-frame coding and decoding of geometric information. As shown in Figure 20, the current node to be encoded in the current frame is filled with a grid, and the previous encoded node of the current node is represented by a. There is a first reference frame and a second reference frame, where the first reference frame can be the previous frame of the current frame, and the second reference frame can be a global motion compensation (GMC) reference frame.

[0227] Thus, taking FIG. 20 as an example, when performing inter-frame prediction coding on the current node to be coded, the previous coded node a of the current node to be coded in the prediction tree is traversed;

[0228] In the first reference frame (i.e. the previous reference frame), find the node a that has the same value as the node a that has been encoded before the current node is encoded. For node b with laserID, points c and d encoded or decoded after point b in the first reference frame are used as inter-frame candidate points;

[0229] In the second reference frame (i.e. the reference frame of the previous frame after global motion), find the node a that has the same encoding as the previous encoded node a of the current node. and laserID point g, the points e and f encoded or decoded after point g in the second reference frame are used as inter-frame candidate points; at the same time, points e and f Replaced by the parent node of the current node to be encoded

[0230] Then, using rate-distortion optimization (RDO), different prediction points (including several intra-frame candidate points and up to four inter-frame candidate points) are selected to predict the node's geometric position information, generating a prediction residual. This geometric prediction residual is then quantized using a quantization parameter. Finally, through continuous iteration, parameters such as the prediction mode, prediction residual, prediction tree structure, and quantization parameter for the prediction tree node position information are encoded to generate a binary bitstream.

[0231] At the decoding end, the decoding end reconstructs the prediction tree structure by continuously parsing the bitstream and traversing the prediction tree to find the decoded node a before the current node to be decoded;

[0232] First, the prediction mode is decoded; if the prediction mode is inter-frame prediction mode, the prediction point is selected from the following up to four candidate points using the decoded prediction mode:

[0233] In the first reference frame (i.e. the previous reference frame), find the node a that has the same value as the node a that has been decoded before the current node is decoded. For node b with laserID, points c and d encoded or decoded after point b in the first reference frame are used as inter-frame candidate points;

[0234] In the second reference frame (i.e. the reference frame of the previous frame after global motion), find the node a that has the same and laserID point g, the points e and f encoded or decoded after point g in the second reference frame are used as inter-frame candidate points; at the same time, points e and f Replaced with the parent node of the current node to be decoded

[0235] Secondly, the geometric position prediction residual information and quantization parameters of different prediction points are obtained by analysis, and the prediction residual is dequantized, so that the reconstructed geometric position information of each node can be restored, and finally the geometric reconstruction at the decoding end is completed.

[0236] In the prediction tree-based encoding and decoding, if the prediction mode of the current node is the inter-frame prediction mode, the related technology simply uses the previous frame (or the previous two frames) of the current frame as a reference frame, and then selects candidate nodes for inter-frame prediction from the reference frame.

[0237] Taking FIG. 21 as an example, assuming that a group of frames shown in FIG. 21 (including frames 0 to 8) are encoded, the encoding order of the related art is generally frame 0->frame 1->frame 2->frame 3->frame 4->frame 5->frame 6->frame 7->frame 8, and the encoding is specifically performed using the following encoding method:

[0238] Frame 0 is an I frame. When encoding frame 0, intra-frame coding is used.

[0239] The first frame is a P frame. When encoding the first frame, frame 0 is selected as the reference frame, and candidate nodes for inter-frame prediction are selected from frame 0 (as can be seen from Figure 21, the arrow starting from frame 0 points to frame 1, indicating that frame 0 is the reference frame of frame 1. The representation of reference frames for subsequent frames is similar and will not be repeated here);

[0240] The second frame is a P frame. When encoding the second frame, the 0th frame and the 1st frame are selected as reference frames, and candidate nodes for inter-frame prediction are selected from the 0th frame and the 1st frame.

[0241] The third frame is a P frame. When encoding the third frame, the first and second frames are selected as reference frames, and candidate nodes for inter-frame prediction are selected from the first and second frames.

[0242] The 4th frame is a P frame. When encoding the 4th frame, the 2nd and 3rd frames are selected as reference frames, and candidate nodes for inter-frame prediction are selected from the 2nd and 3rd frames.

[0243] The fifth frame is a P frame. When encoding the fifth frame, the third and fourth frames are selected as reference frames, and candidate nodes for inter-frame prediction are selected from the third and fourth frames.

[0244] The 6th frame is a P frame. When encoding the 6th frame, the 4th and 5th frames are selected as reference frames, and candidate nodes for inter-frame prediction are selected from the 4th and 5th frames.

[0245] The 7th frame is a P frame. When encoding the 7th frame, the 5th and 6th frames are selected as reference frames, and candidate nodes for inter-frame prediction are selected from the 5th and 6th frames.

[0246] The 8th frame is a P frame. When encoding the 8th frame, the 6th and 7th frames are selected as reference frames, and candidate nodes for inter-frame prediction are selected from the 6th and 7th frames.

[0247] If the previous frame (or the previous two frames) of the current frame is simply used as the reference frame, the type of reference frame for inter-frame prediction will be single, and the candidate node that is most suitable for the current node cannot be fully selected, resulting in poor prediction effect and reduced coding efficiency of point cloud geometric information.

[0248] Based on this, an embodiment of the present application provides a coding method, including: determining the previous encoded node of the current node in the current frame; determining a candidate node in at least one reference frame of the current frame based on the previous encoded node; wherein the at least one reference frame includes a first reference frame, and the geometric parameters of the node in the first reference frame are determined based on the geometric parameters of the nodes in multiple frames; determining an inter-frame candidate node set based on the candidate nodes in the at least one reference frame; and determining a geometric prediction value of the current node based on the inter-frame candidate node set.

[0249] An embodiment of the present application also provides a decoding method, including: decoding a code stream to determine index information of a current node in a current frame; determining a predicted node from at least one reference frame of the current frame based on the index information; wherein the at least one reference frame includes a first reference frame, and the geometric parameters of the node in the first reference frame are determined based on the geometric parameters of nodes in multiple frames; and determining a geometric prediction value of the current node based on the predicted node.

[0250] Compared with related technologies, the technical solution provided by the embodiments of the present application expands the types of reference frames available for inter-frame prediction, improves the accuracy of inter-frame prediction, and thus improves the encoding and decoding performance of point cloud geometric information.

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

[0252] FIG22 is a flow chart of a decoding method provided in an embodiment of the present application. The decoding method can be applied to a decoder. The decoding method can refer to a point cloud inter-frame prediction method or a method for decoding point cloud inter-frame geometric information. The embodiment of the present application can be used to decode all points in a point cloud or to decode only some points in a point cloud. For example, the embodiment of the present application can be used to decode points in a point cloud that are relatively concentrated in space.

[0253] Referring to FIG. 22 , in step S2210 , the code stream is decoded to determine the index information of the current node in the current frame.

[0254] The current node may refer to a node currently to be decoded in the point cloud.

[0255] The index information may sometimes also be referred to as a prediction point pattern, a prediction point pattern value, or a prediction point sequence number.

[0256] The index information may be in parameter form or in digital form. For example, the index information may be a number such as 0, 1, 2, 3, or 4, or may be information such as a, b, c, d, or e, which is not specifically limited here.

[0257] In some embodiments, the index information may be used to indicate the index position of the prediction node for inter-frame prediction in the inter-frame candidate set. The inter-frame candidate set refers to a set consisting of candidate nodes for inter-frame prediction.

[0258] In some embodiments, the index information may include at least one index value.

[0259] For example, the index information may include an index value. Based on the one index value, the prediction node and the reference frame where the prediction node is located can be determined simultaneously. As an example, assume that the current frame includes three reference frames (i.e., reference frame 0 to reference frame 2), and each reference frame includes 2 candidate nodes for inter-frame prediction, for a total of 6 candidate nodes. The 6 candidate nodes can be numbered from 0 to 5, where 0 represents the first candidate node in reference frame 0, 1 represents the second candidate node in reference frame 0, 2 represents the first candidate node in reference frame 1, 3 represents the second candidate node in reference frame 1, 4 represents the first candidate node in reference frame 2, and 5 represents the second candidate node in reference frame 2. Assuming that the number indicated by the index information is 5, it can be determined that the prediction node is located in reference frame 2, and it can also be determined that the prediction node is the second candidate node in reference frame 2.

[0260] For another example, the index information may include two index values ​​(hereinafter referred to as the first index value and the second index value). Based on the first index value, the reference frame where the prediction node is located can be determined. Based on the second index value, the prediction node can be determined from the reference frame where the prediction node is located. As an example, assume that the current frame includes three reference frames (i.e., reference frame 0 to reference frame 2), each reference frame includes 2 candidate nodes for inter-frame prediction, for a total of 6 candidate nodes. The value of the first index value can be 0, indicating that the prediction node is located in reference frame 0, and the value of the second index value can be 0, indicating that the prediction node is the first candidate node in reference frame 0.

[0261] In some embodiments, the candidate nodes in the inter-frame candidate node set can be arranged in a predetermined order. For example, for a candidate node with a high probability of being selected, its index position in the inter-frame candidate node set can be set relatively early. This results in a smaller index corresponding to the candidate node, thereby reducing the number of encoding bits for the index information and thus lowering the bit rate.

[0262] In step S2220, a prediction node is determined from at least one reference frame of the current frame according to the index information.

[0263] In some embodiments, the at least one reference frame may include a first reference frame. The geometric parameters of the nodes in the first reference frame may be determined based on the geometric parameters of the nodes in multiple frames. In other words, the first reference frame is a fusion frame of the multiple frames.

[0264] In some embodiments, the at least one reference frame may further include the multiple frames (ie, the multiple frames used to generate the first reference frame). In other words, the multiple frames are multiple reference frames of the current frame.

[0265] Taking decoding of a group of frames (including frames 0 to 8) shown in FIG21 as an example, the following decoding method can be used for decoding:

[0266] Frame 0 is an I frame. When decoding frame 0, intra-frame decoding is used.

[0267] The first frame is a P frame. When decoding the first frame, the 0th frame is selected as the reference frame, and the candidate node for inter-frame prediction is selected from the 0th frame;

[0268] The second frame is a P frame. When decoding the second frame, the 0th frame, the 1st frame, and the fusion frame of the 0th frame and the 1st frame are selected as reference frames, and candidate nodes for inter-frame prediction are selected from the 0th frame, the 1st frame, and the fusion frame of the 0th frame and the 1st frame;

[0269] The third frame is a P frame. When decoding the third frame, the first frame, the second frame, and the fusion frame of the first and second frames are selected as reference frames, and candidate nodes for inter-frame prediction are selected from the first frame, the second frame, and the fusion frame of the first and second frames;

[0270] The 4th frame is a P frame. When decoding the 4th frame, the 2nd frame, the 3rd frame, and the fusion frame of the 2nd and 3rd frames are selected as reference frames, and candidate nodes for inter-frame prediction are selected from the 2nd frame, the 3rd frame, and the fusion frame of the 2nd and 3rd frames.

[0271] The fifth frame is a P frame. When decoding the fifth frame, the third frame, the fourth frame, and the fusion frame of the third and fourth frames are selected as reference frames, and candidate nodes for inter-frame prediction are selected from the third frame, the fourth frame, and the fusion frame of the third and fourth frames.

[0272] The 6th frame is a P frame. When decoding the 6th frame, the 4th frame, the 5th frame, and the fusion frame of the 4th and 5th frames are selected as reference frames, and candidate nodes for inter-frame prediction are selected from the 4th frame, the 5th frame, and the fusion frame of the 4th and 5th frames.

[0273] The 7th frame is a P frame. When decoding the 7th frame, the 5th frame, the 6th frame, and the fusion frame of the 5th and 6th frames are selected as reference frames, and candidate nodes for inter-frame prediction are selected from the 5th frame, the 6th frame, and the fusion frame of the 5th and 6th frames.

[0274] The 8th frame is a P frame. When decoding the 8th frame, the 6th frame, the 7th frame, and the fusion frame of the 6th and 7th frames are selected as reference frames, and candidate nodes for inter-frame prediction are selected from the 6th frame, the 7th frame, and the fusion frame of the 6th and 7th frames.

[0275] In some embodiments, the geometric parameters of a node may also be referred to as the geometric information or geometric position information of the node. It should be noted that in the embodiments of the present application, these three expressions can be replaced with each other if there is no conflict.

[0276] In some embodiments, the geometric parameters of the node may include at least one of a first geometric parameter, a second geometric parameter, and a third geometric parameter. The embodiment of the present application does not specifically limit the definition of the first geometric parameter, the second geometric parameter, and the third geometric parameter, and can be set according to actual needs. The first geometric parameter can be, for example, at least one of the geometric coordinates of the node, or the first geometric parameter can be determined based on at least one of the geometric coordinates of the node. The second geometric parameter can be, for example, at least one of the geometric coordinates of the node, or the second geometric parameter can be determined based on at least one of the geometric coordinates of the node. The third geometric parameter can be, for example, at least one of the geometric coordinates of the node, or the third geometric parameter can be determined based on at least one of the geometric coordinates of the node.

[0277] For example, the geometric parameters of a node may refer to geometric parameters in a Cartesian coordinate system. For example, in a Cartesian coordinate system, the geometric parameters of a node may include an X coordinate, a Y coordinate, and a Z coordinate of the node.

[0278] For example, the geometric parameters of a node may refer to the geometric parameters in the radar coordinate system. For example, in the radar coordinate system, the geometric parameters of a node may include the horizontal azimuth of the node (which may be expressed as ) and radar laser index number (which can be represented by laserID).

[0279] For ease of understanding, the following text uses the first geometric parameter as the radar laser index number, the second geometric parameter as the horizontal azimuth angle, and the third geometric parameter as the distance between the node and other nodes as examples for illustration. In the absence of conflict, the radar laser index number mentioned in each embodiment below can be replaced by the first geometric parameter, the horizontal azimuth angle can be replaced by the second geometric parameter, and the distance can be replaced by the third geometric parameter.

[0280] In some embodiments, the multiple frames may include a previous frame of the current frame and a previous frame of the previous frame. In other words, the previous frame of the current frame and the previous frame of the previous frame may be fused to generate the first reference frame.

[0281] In some embodiments, the multiple frames may include the Kth frame (K is an integer greater than 0) before the current frame and the Mth frame (M is an integer greater than 0; where M and K may be the same or different) after the current frame. In other words, the forward frame and the backward frame of the current frame may be fused to generate the first reference frame. For example, the previous frame of the current frame may be fused with the next frame of the current frame to generate the first reference frame.

[0282] In some embodiments, the plurality of frames mentioned above may include a first frame and a second frame. The first frame may include a first node, the second frame may include a second node, and geometric parameters of the first node and the second node satisfy a first condition. The first reference frame may include a third node, the geometric parameters of the third node being determined based on the geometric parameters of the first node and the second node (or, the geometric parameters of the third node are obtained by fusing the geometric parameters of the first node and the second node).

[0283] In some embodiments, the first condition may be associated with at least one of: radar laser index numbers of the first node and the second node; horizontal azimuth angles of the first node and the second node; and a distance between the first node and the second node.

[0284] For example, if the geometric parameters of the node are geometric parameters in a radar coordinate system, the first condition may be associated with at least one of the following: radar laser index numbers of the first node and the second node; and horizontal azimuth angles of the first node and the second node.

[0285] For another example, if the geometric parameters of the nodes are geometric parameters in a Cartesian coordinate system, the first condition may be associated with the distance between the first node and the second node.

[0286] In some embodiments, the geometric parameters between the first node and the second node satisfying the first condition may include: the radar laser index number of the first node is the same as the radar laser index number of the second node; and the horizontal azimuth angle of the first node is the same as the horizontal azimuth angle of the second node. That is, for the first node in the first frame, a node with the same laserID and the same laserID as the first node can be selected from the second frame. as the second node, and fuse the geometric parameters of the first node and the second node, thereby determining the geometric parameters of the third node in the first reference frame.

[0287] In some embodiments, the geometric parameters between the first node and the second node satisfying the first condition may include: the radar laser index number of the first node is the same as the radar laser index number of the second node; and the horizontal azimuth angle of the first node is greater than and closest to the horizontal azimuth angle of the second node. That is, for the first node in the first frame, a node with the same laser ID as the first node and the first node can be selected from the second frame. Greater than the first node as the second node, and fuse the geometric parameters of the first node and the second node, thereby determining the geometric parameters of the third node in the first reference frame.

[0288] In some embodiments, the geometric parameters between the first node and the second node satisfying the first condition may include: the radar laser index number of the first node is the same as the radar laser index number of the second node; and the horizontal azimuth angle of the first node is smaller than and closest to the horizontal azimuth angle of the second node. That is, for the first node in the first frame, a node with the same laser ID as the first node and the first node can be selected from the second frame. Less than the first node as the second node, and fuse the geometric parameters of the first node and the second node, thereby determining the geometric parameters of the third node in the first reference frame.

[0289] In some embodiments, the geometric parameters between the first node and the second node satisfying the first condition may include: the Euclidean distance (e.g., Euclidean distance in three-dimensional space) between the first node and the second node being the shortest. In other words, for a first node in the first frame, a node with the closest Euclidean distance to the first node may be selected from the second frame as the second node, and the geometric parameters of the first node and the second node may be fused to determine the geometric parameters of a third node in the first reference frame.

[0290] For example, assuming that the first frame and the second frame are frame A and frame B respectively, and the first node is node m in frame A, then the node n (corresponding to the second node above) with the closest Euclidean distance to node m in three-dimensional space can be selected from frame B. If the coordinates of node m in frame A are (X A , Y A , Z A ), the coordinates of node n in frame B are (X i , Y i , Z i ), then we can solve The minimum value of is obtained as node n. Then, node m and node n can be fused to generate a new node (corresponding to the third node above). Further, by processing the other nodes in frame A and frame B in a similar manner, a fused frame of frame A and frame B can be generated.

[0291] In some embodiments, the geometric parameters between the first node and the second node satisfying the first condition may include: the Manhattan distance (e.g., the Manhattan distance in three-dimensional space) between the first node and the second node being the shortest. In other words, for a first node in the first frame, a node with the closest Manhattan distance to the first node may be selected from the second frame as the second node, and the geometric parameters of the first node and the second node may be fused to determine the geometric parameters of a third node in the first reference frame.

[0292] For example, assuming that the first frame and the second frame mentioned above are frames A and B respectively, and the first node is node m in frame A, then the node n (corresponding to the second node above) with the closest Manhattan distance to node m in three-dimensional space can be selected from frame B. If the coordinates of node m in frame A are (X A , Y A , Z A ), the coordinates of node n in frame B are (X i , Y i , Z i ), then we can solve |X A -X i +Y A -Y i +Z A -Z i The minimum value of | is used to obtain node n. Node m and node n can then be fused to generate a new node (corresponding to the third node mentioned above). Furthermore, by processing the other nodes in frames A and B in a similar manner, a fused frame of frames A and B can be generated.

[0293] In some embodiments, the geometric parameters between the first node and the second node satisfying the first condition may include: the first node and the second node having the shortest Morton distance (e.g., a Morton distance in three-dimensional space). In other words, for a first node in the first frame, a node with the shortest Morton distance to the first node may be selected from the second frame as the second node, and the geometric parameters of the first node and the second node may be fused to determine the geometric parameters of a third node in the first reference frame.

[0294] In some embodiments, the geometric parameters between the first node and the second node satisfying the first condition may include: the Hilbert distance (e.g., the Hilbert distance in three-dimensional space) between the first node and the second node being the shortest. In other words, for a first node in the first frame, a node having the shortest Hilbert distance to the first node may be selected from the second frame as the second node, and the geometric parameters of the first node and the second node may be fused to determine the geometric parameters of a third node in the first reference frame.

[0295] In some embodiments, the at least one reference frame mentioned in step S2220 may also include a frame obtained by performing global motion on the first reference frame.

[0296] In some embodiments, if the at least one reference frame includes multiple frames used to fuse the first reference frame, the at least one reference frame may also include a frame obtained by performing global motion on some or all of the multiple frames.

[0297] In some embodiments, if the predicted node indicated by the index information is located in the first reference frame, step S2220 may include: determining the previous decoded node of the current node; determining a first candidate node from the first reference frame based on the previous decoded node; wherein the geometric parameters of the previous decoded node and the first candidate node meet the second condition; and determining the predicted node based on the first candidate node.

[0298] In some embodiments, determining the previous decoded node of the current node may include: determining the previous decoded node of the current node according to a decoding order of a prediction tree corresponding to the current frame.

[0299] For example, first, a prediction tree corresponding to the current frame can be constructed. The methods for constructing the prediction tree structure may include: a prediction tree construction method based on KD-Tree (high-latency slow mode) and a prediction tree construction method based on lidar calibration information (low-latency fast mode). When using lidar calibration information, each point can be divided into different Lasers, and a prediction tree structure can be established according to different Lasers. The decoding order of the prediction tree can be, for example, one of the following: unordered, Morton order, azimuth order, and radial distance order, etc., which are not specifically limited here. In this way, at the decoding end, the prediction tree structure can be reconstructed by decoding the code stream. Then, the prediction tree can be traversed to determine the previous decoded node of the current node based on the decoding order of the prediction tree.

[0300] In some embodiments, the geometric parameters of the previously decoded node and the first candidate node satisfying the second condition may include: the radar laser index number of the previously decoded node is the same as the radar laser index number of the first candidate node; and the horizontal azimuth angle of the previously decoded node is the same as the horizontal azimuth angle of the first candidate node. That is, in the first reference frame, the laserID of the first candidate node found is the same as the laserID of the previously decoded node, and the laserID of the first candidate node found is the same as the laserID of the previously decoded node. With the previous decoded node same.

[0301] In some embodiments, the geometric parameters of the previously decoded node and the first candidate node satisfying the second condition may include: the radar laser index number of the previously decoded node is the same as the radar laser index number of the first candidate node; and the horizontal azimuth angle of the previously decoded node is greater than and closest to the horizontal azimuth angle of the first candidate node. That is, in the first reference frame, the laserID of the first candidate node found is the same as the laserID of the previously decoded node, and the laserID of the first candidate node found is the same as the laserID of the previously decoded node. is the first node that is greater than the previous decoded node

[0302] In some embodiments, the geometric parameters of the previously decoded node and the first candidate node satisfying the second condition may include: the radar laser index number of the previously decoded node is the same as the radar laser index number of the first candidate node; and the horizontal azimuth angle of the previously decoded node is smaller than and closest to the horizontal azimuth angle of the first candidate node. That is, in the first reference frame, the laserID of the first candidate node found is the same as the laserID of the previously decoded node, and the laserID of the first candidate node found is the same as the laserID of the previously decoded node. is the first node that is smaller than the previous decoded node

[0303] In some embodiments, if the predicted node indicated by the index information is a first candidate node in the first reference frame, determining the predicted node according to the first candidate node may include: determining the first candidate node as the predicted node.

[0304] Taking Figure 23 as an example, assuming the predicted node indicated by the index information is the first candidate node b in the first reference frame, during inter-frame prediction decoding of the current node, the prediction tree can be traversed to determine the previous decoded node a of the current node. The geometric parameters of the previous decoded node a can then be used to search for a first candidate point b in the first reference frame whose geometric parameters meet the second condition as those of the previous decoded node a (e.g., searching for a first candidate node b in the first reference frame that has the same radar laser index number and horizontal azimuth as the previous decoded node a). This first candidate node b can then be determined as the predicted node for subsequent inter-frame prediction processing.

[0305] In some embodiments, if the predicted node indicated by the index information is a second candidate node in the first reference frame, determining the predicted node based on the first candidate node may include: determining the second candidate node based on the first candidate node according to a preset method. For example, the second candidate node may be determined based on the first candidate node according to the decoding order of the prediction tree corresponding to the first reference frame. For another example, the second candidate node may be determined based on the first candidate node according to the order of the horizontal azimuth angles of the nodes in the first reference frame.

[0306] Taking Figure 23 as an example, assuming that the predicted node indicated by the index information is the second candidate node c in the first reference frame, and that the second candidate node c is the next decoded node after the first candidate node b, then during inter-frame prediction decoding of the current node, the prediction tree can be traversed to determine the previous decoded node a of the current node. Then, the geometric parameters of the previous decoded node a can be used to search for a first candidate point b in the first reference frame whose geometric parameters meet the second condition as the previous decoded node a (e.g., searching for a first candidate node b in the first reference frame that has the same radar laser index number and horizontal azimuth as the previous decoded node). Then, the second candidate node c decoded after the first candidate node b can be determined according to the decoding order of the prediction tree. Subsequent inter-frame prediction processing can then be performed based on this second candidate node c.

[0307] In some embodiments, the at least one reference frame mentioned above may include a forward reference frame and a first reference frame (ie, a fused frame).

[0308] In some embodiments, the at least one reference frame mentioned above may include a backward reference frame and a first reference frame (ie, a fused frame).

[0309] In some embodiments, the aforementioned at least one reference frame including the first reference frame can be replaced by: the at least one reference frame including the forward reference frame of the current frame and the backward reference frame of the current frame (i.e., the current frame is a B frame). In other words, the embodiments of the present application support a bidirectional inter-frame prediction scheme for the current frame. The introduction of this scheme expands the types of reference frames available for selection in the inter-frame prediction process, improves the accuracy of inter-frame prediction, and thus improves the encoding and decoding performance of point cloud geometric information.

[0310] In other embodiments, the at least one reference frame may include not only the first reference frame but also a forward reference frame of the current frame and a backward reference frame of the current frame. In other words, the embodiments of the present application can simultaneously support the aforementioned inter-frame prediction scheme based on fused frames and the bidirectional inter-frame prediction scheme, thereby further expanding the types of reference frames available for selection in the inter-frame prediction process, improving the accuracy of inter-frame prediction, and thus improving the encoding and decoding performance of point cloud geometric information.

[0311] In some embodiments, the method of Figure 22 may also include: decoding the code stream to determine the value of the first identification information; if the value of the first identification information indicates that the current node uses a bidirectional inter-frame prediction mode, then executing the step of decoding the code stream to determine the index information of the current node in the current frame (i.e., step S2210).

[0312] In some embodiments, if the value of the first identification information is a first value, it is determined that the first identification information indicates that the current node does not use the bidirectional inter-frame prediction mode; if the value of the first identification information is a second value (different from the first value), it is determined that the first identification information indicates that the current node uses the bidirectional inter-frame prediction mode.

[0313] In some embodiments, the first value and the second value may be in parameter form, or may be in digital form.

[0314] In some embodiments, the first identification information may be a parameter written in a profile, or a flag written in a bitstream.

[0315] Exemplarily, the first value may be set to 1 and the second value may be set to 0; or, the first value may be set to 0 and the second value may be set to 1; or, the first value may be set to true and the second value may be set to false; or, the first value may be set to false and the second value may be set to true.

[0316] Taking the first identification information as a flag bit written into the code stream as an example, assuming that the first value of the first identification information is 0 and the second value is 1, if the value of the first identification information is 0, it can be determined that the current node does not use the bidirectional inter-frame prediction mode, that is, there is no need to execute the decoding method described in the embodiment of the present application; if the value of the first identification information is 1, it can be determined that the current node uses the bidirectional inter-frame prediction mode, that is, the decoding method described in the embodiment of the present application is executed.

[0317] In some embodiments, the at least one reference frame mentioned above includes a first reference frame, which can be replaced by: the current frame belongs to a group of frames (Group of Frame, GOF) in N groups of frames (N is an integer greater than 0), and each group of frames in the N groups of frames can correspond to a key frame (or, each group of frames can include a key frame, i.e., an I frame). In other words, the embodiment of the present application supports an inter-frame prediction scheme based on GOF. After introducing the inter-frame prediction scheme based on GOF, since each group of frames corresponds to a key frame (using intra-frame prediction), the error of this group of frames (such as prediction error) will not be transmitted to the next group of frames, so that the transmission of errors can be controlled within a group of frames.

[0318] In some embodiments, the at least one reference frame may include a first reference frame; on this basis, the current frame belongs to a group of frames in N groups of frames (N is an integer greater than 0), and each group of frames in the N groups of frames may correspond to a key frame (or, each group of frames may include a key frame, i.e., an I frame). In other words, the embodiment of the present application may be based on both an inter-frame prediction scheme based on a fused frame and an inter-frame prediction scheme based on a GOF. This not only controls the propagation of errors within a group of frames, but also expands the types of reference frames available for selection in the inter-frame prediction process, improves the accuracy of the inter-frame prediction, and thereby improves the encoding and decoding performance of the point cloud geometric information.

[0319] In some embodiments, the set of frames may include I frames, P frames, and B frames. I frames use intra-frame prediction; P frames may use inter-frame prediction with reference to a previously decoded I frame or P frame; and B frames may use bidirectional inter-frame prediction.

[0320] For example, referring to FIG. 24 , every k frames (k is an integer greater than 1) can be set as a group of frames. Thus, frames 0 to k-1 in FIG. 24 constitute a group of frames. Within this group of frames, frame 0 can be set as an I frame, and the remaining frames can be set as P frames or B frames. Then, frame k becomes the I frame of the next group of frames, and this cycle repeats.

[0321] In some embodiments, the method of Figure 22 may further include: decoding a code stream and determining a first parameter. The first parameter may be used to indicate the interval between a key frame corresponding to a group of frames (or a key frame in a group of frames) and the first forward predicted frame in the group of frames. Alternatively, the first parameter may be used to indicate the interval between two adjacent forward predicted frames in a group of frames. After obtaining the first parameter, the group of frames may be decoded according to the first parameter. For example, the decoding order of the group of frames and / or the reference frames of each frame in the group of frames may be determined according to the first parameter; and the group of frames may be decoded according to the decoding order of the group of frames and / or the reference frames of each frame in the group of frames.

[0322] For example, the number of frames contained in a group of frames can be fixed (or the length of a group of frames is fixed). Then, the interval between an I frame in a group of frames (the I frame can be the first frame in a group of frames) and the first P frame in the group of frames can be set to a fixed first interval, and the interval between every two adjacent P frames in the group of frames (if any) can also be set to the fixed first interval. The remaining frames in the group of frames can be set to B frames. Exemplarily, the group of frames can be organized as follows: IBBBPBBBPBBBP. The first parameter mentioned above can be used to indicate the first interval (it can be understood that, in this example, the first interval can refer to the interval between the I frame and the first P frame in a group of frames, or it can refer to the interval between two adjacent P frames in a group of frames). Based on the first parameter, the decoding end can determine the decoding order of the group of frames and / or the reference frames of each frame in the group of frames. A more specific example is given below in conjunction with Figures 24 and 25.

[0323] In a group of frames as shown in FIG24 , if the code stream includes a first parameter, and the first parameter indicates that the interval between the I frame and the P frame is 8, then the reference frames corresponding to the 0th to 8th frames in the group of frames can be referred to in Table 1 below.

[0324] Table 1

[0325] In addition, Figure 25 graphically illustrates the reference frames of the set of frames from frame 0 to frame 8. In Figure 25 , the frame where the arrow starts is the reference frame of the frame where the arrow ends.

[0326] Based on the above reference frame setting method, at the decoding end, decoding can be performed in the following order: frame 0->frame 8->frame 4->frame 2->frame 1->frame 3->frame 6->frame 5->frame 7, and the following decoding method is used for decoding:

[0327] Frame 0 is an I frame. When decoding frame 0, intra-frame prediction is used.

[0328] The 8th frame is a P frame. When decoding the 8th frame, the 0th frame is selected as the reference frame, and the candidate node for inter-frame prediction is selected from the 0th frame;

[0329] The 4th frame is a B frame. When decoding the 4th frame, the 0th frame and the 8th frame are selected as reference frames, and candidate nodes for inter-frame prediction are selected from the 0th frame and the 8th frame.

[0330] The second frame is a B frame. When decoding the second frame, the 0th frame and the 4th frame are selected as reference frames, and candidate nodes for inter-frame prediction are selected from the 0th frame and the 4th frame.

[0331] The first frame is a B frame. When decoding the first frame, the 0th and 2nd frames are selected as reference frames, and candidate nodes for inter-frame prediction are selected from the 0th and 2nd frames.

[0332] The third frame is a B frame. When decoding the third frame, the second and fourth frames are selected as reference frames, and candidate nodes for inter-frame prediction are selected from the second and fourth frames.

[0333] The 6th frame is a B frame. When decoding the 6th frame, the 4th and 8th frames are selected as reference frames, and candidate nodes for inter-frame prediction are selected from the 4th and 8th frames.

[0334] The 5th frame is a B frame. When decoding the 5th frame, the 4th and 6th frames are selected as reference frames, and candidate nodes for inter-frame prediction are selected from the 4th and 6th frames.

[0335] The 7th frame is a B frame. When decoding the 7th frame, the 6th and 8th frames are selected as reference frames, and candidate nodes for inter-frame prediction are selected from the 6th and 8th frames.

[0336] As mentioned above, the inter-frame prediction scheme based on the fused frame and the bidirectional inter-frame prediction scheme (or the inter-frame prediction scheme based on a group of frames) can be implemented in combination. If the two are combined in an embodiment, Figure 25 can be decoded according to the following decoding order: frame 0->frame 8->frame 4->frame 2->frame 1->frame 3->frame 6->frame 5->frame 7, and the decoding is specifically performed using the following decoding method:

[0337] Frame 0 is an I frame. When decoding frame 0, intra-frame prediction is used.

[0338] The 8th frame is a P frame. When decoding the 8th frame, the 0th frame is selected as the reference frame, and the candidate node for inter-frame prediction is selected from the 0th frame;

[0339] The 4th frame is a B frame. When decoding the 4th frame, the 0th frame, the 8th frame, and the fusion frame of the 0th frame and the 8th frame are selected as reference frames, and candidate nodes for inter-frame prediction are selected from these reference frames;

[0340] The second frame is a B frame. When decoding the second frame, the 0th frame, the 4th frame, and the fusion frame of the 0th frame and the 4th frame are selected as reference frames, and candidate nodes for inter-frame prediction are selected from these reference frames;

[0341] The first frame is a B frame. When decoding the first frame, the 0th frame, the 2nd frame, and the fusion frame of the 0th frame and the 2nd frame are selected as reference frames, and candidate nodes for inter-frame prediction are selected from these reference frames.

[0342] The third frame is a B frame. When decoding the third frame, the second frame, the fourth frame, and the fusion frame of the second and fourth frames are selected as reference frames, and candidate nodes for inter-frame prediction are selected from these reference frames.

[0343] The 6th frame is a B frame. When decoding the 6th frame, the 4th frame, the 8th frame, and the fusion frame of the 4th and 8th frames are selected as reference frames, and candidate nodes for inter-frame prediction are selected from these reference frames;

[0344] The fifth frame is a B frame. When decoding the fifth frame, the fourth frame, the sixth frame, and the fusion frame of the fourth and sixth frames are selected as reference frames, and candidate nodes for inter-frame prediction are selected from these reference frames.

[0345] The 7th frame is a B frame. When decoding the 7th frame, the 6th frame, the 8th frame, and the fusion frame of the 6th and 8th frames are selected as reference frames, and candidate nodes for inter-frame prediction are selected from these reference frames.

[0346] 22 , in step S2230 , the geometric prediction value of the current node is determined based on the prediction node. For example, the value of the geometric parameter of the prediction node can be determined as the geometric prediction value of the current node.

[0347] In some embodiments, the method of Figure 22 may also include: decoding the code stream to determine the geometric prediction residual value and quantization parameter of the current node; performing inverse quantization processing on the geometric prediction residual value according to the quantization parameter to obtain an inverse quantized residual value; and determining the geometric reconstruction information of the current node based on the inverse quantized residual value and the geometric prediction value.

[0348] In some embodiments, determining the geometric reconstruction information of the current node based on the inverse quantization residual value and the geometric prediction value may include: performing an addition operation on the inverse quantization residual value and the geometric prediction value to determine the geometric reconstruction information of the current node. That is, in this embodiment, the geometric prediction residual value of the current node can be obtained through a decoded bitstream, and a quantization parameter can be obtained through the decoded bitstream; then, the geometric prediction residual value is inversely quantized based on the quantization parameter to obtain an inverse quantized residual value; and then, the inverse quantization residual value and the geometric prediction value are summed to obtain the geometric reconstruction information of the current node, thereby completing geometric reconstruction at the decoding end.

[0349] The decoding method shown in FIG22 primarily optimizes decoding for the inter-frame prediction mode. In some embodiments, second identification information (e.g., a flag bit) may be used to determine whether the current node uses the inter-frame prediction mode. Therefore, in some embodiments, the method of FIG22 may further include: decoding the bitstream to determine the value of the second identification information; if the value of the second identification information indicates that the current node uses the inter-frame prediction mode, then performing the step of decoding the bitstream to determine the index information of the current node in the current frame (i.e., step S2210 described above).

[0350] Further, in some embodiments, the method of Figure 22 may also include: if the value of the second identification information is the third value, determining that the second identification information indicates that the current node does not use the inter-frame prediction mode; if the value of the second identification information is the fourth value (different from the third value), determining that the second identification information indicates that the current node uses the inter-frame prediction mode.

[0351] In some embodiments, the third value and the fourth value may be in parameter form, or may be in digital form.

[0352] In some embodiments, the second identification information may be a parameter written into a profile, or a flag written into a bitstream.

[0353] Exemplarily, the third value may be set to 1 and the fourth value may be set to 0; or, the third value may be set to 0 and the fourth value may be set to 1; or, the third value may be set to true and the fourth value may be set to false; or, the third value may be set to false and the fourth value may be set to true.

[0354] Taking the second identification information as a flag bit written into the code stream as an example, assuming that the third value of the second identification information is 0 and the fourth value is 1, if the value of the second identification information is 0, it can be determined that the current node does not use the inter-frame prediction mode, that is, there is no need to execute the decoding method described in the embodiment of the present application; if the value of the second identification information is 1, it can be determined that the current node uses the inter-frame prediction mode, that is, the decoding method described in the embodiment of the present application is executed.

[0355] In some embodiments, the method of Figure 22 may also include: decoding the code stream to determine the value of the third identification information; if the value of the third identification information indicates that the current node enables the inter-frame prediction mode based on the fused frame, then executing the step of decoding the code stream to determine the index information of the current node in the current frame (i.e., step S2210 in the previous text).

[0356] Further, in some embodiments, the method of Figure 22 may also include: if the value of the third identification information is the fifth value, determining that the third identification information indicates that the current node does not enable the inter-frame prediction mode based on the fused frame; if the value of the third identification information is the sixth value (different from the fifth value), determining that the third identification information indicates that the current node enables the inter-frame prediction mode based on the fused frame.

[0357] In some embodiments, the fifth value and the sixth value may be in parameter form, or may be in digital form.

[0358] In some embodiments, the third identification information may be a parameter written into a profile, or a flag written into a bitstream.

[0359] Exemplarily, the fifth value may be set to 1 and the sixth value may be set to 0; or, the fifth value may be set to 0 and the sixth value may be set to 1; or, the fifth value may be set to true and the sixth value may be set to false; or, the fifth value may be set to false and the sixth value may be set to true.

[0360] Taking the third identification information as an example of a flag bit written into the code stream, assuming that the fifth value of the third identification information is 0 and the sixth value is 1, if the value of the third identification information is 0, it can be determined that the current node does not use the inter-frame prediction mode based on the fused frame, that is, there is no need to execute the decoding method described in the embodiment of the present application; if the value of the third identification information is 1, it can be determined that the current node uses the inter-frame prediction mode based on the fused frame, that is, the decoding method described in the embodiment of the present application is executed.

[0361] As a more specific example, the third identification information can use a 1-bit flag to indicate whether the decoding method of the embodiment of the present application is enabled or not. The flag can be placed in the header information of the high-level syntax element, such as the geometry header. Moreover, the flag can be conditionally enabled under certain conditions. In some embodiments, if the flag does not appear in the code stream, the value of the flag can be considered to be a fixed default value. At the decoding end, if the flag does not appear in the code stream, the flag can be decoded without being decoded, and the value of the flag can be directly set to the fixed default value.

[0362] The present embodiment provides a decoding method, comprising: decoding a bitstream to determine index information for a current node in a current frame; determining a predicted node from at least one reference frame of the current frame based on the index information; wherein the at least one reference frame includes a first reference frame, and the geometric parameters of the node in the first reference frame are determined based on the geometric parameters of nodes in multiple frames; and determining a geometric prediction value for the current node based on the predicted node. Compared to related technologies, the technical solution provided by the present embodiment expands the types of reference frames available for inter-frame prediction, improves the accuracy of inter-frame prediction, and thus enhances the encoding and decoding performance of point cloud geometric information.

[0363] The decoding method provided by the embodiment of the present application is described in detail above with reference to Figures 22 to 25. The encoding method provided by the embodiment of the present application is described in detail below with reference to Figures 26 to 27.

[0364] FIG26 is a schematic flow chart of an encoding method provided in an embodiment of the present application. The encoding method can be applied to an encoder. The encoding method can refer to a point cloud inter-frame prediction method or a method for encoding point cloud inter-frame geometric information. The embodiment of the present application can be used to encode all points in a point cloud or to encode some points in a point cloud. For example, the embodiment of the present application can be used to encode points in a point cloud that are relatively concentrated in space.

[0365] 26 , in step S2610 , the previous encoded node of the current node in the current frame is determined.

[0366] The current node may refer to a node to be encoded currently in the point cloud.

[0367] In some embodiments, determining a previously encoded node of a current node in a current frame may include: determining the previously encoded node of the current node based on a coding order of a prediction tree corresponding to the current frame.

[0368] For example, first, a prediction tree corresponding to the current frame can be constructed. The methods for constructing the prediction tree structure may include: a prediction tree construction method based on KD-Tree (high-latency slow mode) and a prediction tree construction method based on lidar calibration information (low-latency fast mode). When using lidar calibration information, each point can be divided into different Lasers, and a prediction tree structure can be established according to different Lasers. The encoding order of the prediction tree can be, for example, one of the following: unordered, Morton order, azimuth order, and radial distance order, etc., which are not specifically limited here. In this way, at the encoding end, the prediction tree can be traversed to determine the previous encoded node of the current node based on the encoding order of the prediction tree.

[0369] In step S2620, a candidate node is determined in at least one reference frame of the current frame according to the previously encoded node.

[0370] In some embodiments, the at least one reference frame may include a first reference frame. The geometric parameters of the nodes in the first reference frame may be determined based on the geometric parameters of the nodes in multiple frames. In other words, the first reference frame is a fusion frame of the multiple frames.

[0371] In some embodiments, the at least one reference frame may further include the multiple frames (ie, the multiple frames used to generate the first reference frame). In other words, the multiple frames may be multiple reference frames of the current frame.

[0372] Taking encoding of a group of frames (including frames 0 to 8) shown in FIG21 as an example, the following encoding method may be used for encoding:

[0373] Frame 0 is an I frame. When encoding frame 0, intra-frame coding is used.

[0374] The first frame is a P frame. When encoding the first frame, the 0th frame is selected as the reference frame, and the candidate nodes for inter-frame prediction are selected from the 0th frame.

[0375] The second frame is a P frame. When encoding the second frame, the 0th frame, the 1st frame, and the fusion frame of the 0th frame and the 1st frame are selected as reference frames, and candidate nodes for inter-frame prediction are selected from the 0th frame, the 1st frame, and the fusion frame of the 0th frame and the 1st frame;

[0376] The third frame is a P frame. When encoding the third frame, the first frame, the second frame, and the fusion frame of the first and second frames are selected as reference frames, and candidate nodes for inter-frame prediction are selected from the first frame, the second frame, and the fusion frame of the first and second frames.

[0377] The 4th frame is a P frame. When encoding the 4th frame, the 2nd frame, the 3rd frame, and the fusion frame of the 2nd and 3rd frames are selected as reference frames, and candidate nodes for inter-frame prediction are selected from the 2nd frame, the 3rd frame, and the fusion frame of the 2nd and 3rd frames.

[0378] The fifth frame is a P frame. When encoding the fifth frame, the third frame, the fourth frame, and the fusion frame of the third and fourth frames are selected as reference frames, and candidate nodes for inter-frame prediction are selected from the third frame, the fourth frame, and the fusion frame of the third and fourth frames.

[0379] The 6th frame is a P frame. When encoding the 6th frame, the 4th frame, the 5th frame, and the fusion frame of the 4th and 5th frames are selected as reference frames, and candidate nodes for inter-frame prediction are selected from the 4th frame, the 5th frame, and the fusion frame of the 4th and 5th frames;

[0380] The 7th frame is a P frame. When encoding the 7th frame, the 5th frame, the 6th frame, and the fusion frame of the 5th and 6th frames are selected as reference frames, and candidate nodes for inter-frame prediction are selected from the 5th frame, the 6th frame, and the fusion frame of the 5th and 6th frames.

[0381] The 8th frame is a P frame. When encoding the 8th frame, the 6th frame, the 7th frame, and the fusion frame of the 6th and 7th frames are selected as reference frames, and candidate nodes for inter-frame prediction are selected from the 6th frame, the 7th frame, and the fusion frame of the 6th and 7th frames.

[0382] In some embodiments, the geometric parameters of a node may also be referred to as the geometric information or geometric position information of the node. It should be noted that in the embodiments of the present application, these three expressions can be replaced with each other if there is no conflict.

[0383] In some embodiments, the geometric parameters of a node may refer to geometric parameters in a Cartesian coordinate system. For example, in a Cartesian coordinate system, the geometric parameters of a node may include an X coordinate, a Y coordinate, and a Z coordinate of the node.

[0384] In some embodiments, the geometric parameters of a node may refer to geometric parameters in a radar coordinate system. For example, in a radar coordinate system, the geometric parameters of a node may include the horizontal azimuth of the node (which may be expressed as ) and radar laser index number (which can be represented by laserID).

[0385] In some embodiments, the multiple frames may include a previous frame of the current frame and a previous frame of the previous frame. In other words, the previous frame of the current frame and the previous frame of the previous frame may be fused to generate the first reference frame.

[0386] In some embodiments, the multiple frames may include the Kth frame (K is an integer greater than 0) before the current frame and the Mth frame (M is an integer greater than 0; where M and K may be the same or different) after the current frame. In other words, the forward frame and the backward frame of the current frame may be fused to generate the first reference frame. For example, the previous frame of the current frame may be fused with the next frame of the current frame to generate the first reference frame.

[0387] In some embodiments, the plurality of frames mentioned above may include a first frame and a second frame. The first frame may include a first node, the second frame may include a second node, and geometric parameters of the first node and the second node satisfy a first condition. The first reference frame may include a third node, the geometric parameters of the third node being determined based on the geometric parameters of the first node and the second node (or, the geometric parameters of the third node are obtained by fusing the geometric parameters of the first node and the second node).

[0388] In some embodiments, the first condition may be associated with at least one of: radar laser index numbers of the first node and the second node; horizontal azimuth angles of the first node and the second node; and a distance between the first node and the second node.

[0389] For example, if the geometric parameters of the nodes are geometric parameters in a radar coordinate system, the first condition may be associated with at least one of the following: radar laser index numbers of the first node and the second node; and horizontal azimuth angles of the first node and the second node.

[0390] For another example, if the geometric parameters of the nodes are geometric parameters in a Cartesian coordinate system, the first condition may be associated with the distance between the first node and the second node.

[0391] In some embodiments, the geometric parameters between the first node and the second node satisfying the first condition may include: the radar laser index number of the first node is the same as the radar laser index number of the second node; and the horizontal azimuth angle of the first node is the same as the horizontal azimuth angle of the second node. That is, for the first node in the first frame, a node with the same laserID and the same laserID as the first node can be selected from the second frame. as the second node, and fuse the geometric parameters of the first node and the second node, thereby determining the geometric parameters of the third node in the first reference frame.

[0392] In some embodiments, the geometric parameters between the first node and the second node satisfying the first condition may include: the radar laser index number of the first node is the same as the radar laser index number of the second node; and the horizontal azimuth angle of the first node is greater than and closest to the horizontal azimuth angle of the second node. That is, for the first node in the first frame, a node with the same laser ID as the first node and the first node can be selected from the second frame. Greater than the first node as the second node, and fuse the geometric parameters of the first node and the second node, thereby determining the geometric parameters of the third node in the first reference frame.

[0393] In some embodiments, the geometric parameters between the first node and the second node satisfying the first condition may include: the radar laser index number of the first node is the same as the radar laser index number of the second node; and the horizontal azimuth angle of the first node is smaller than and closest to the horizontal azimuth angle of the second node. That is, for the first node in the first frame, a node with the same laser ID as the first node and the first node can be selected from the second frame. Less than the first node as the second node, and fuse the geometric parameters of the first node and the second node, thereby determining the geometric parameters of the third node in the first reference frame.

[0394] In some embodiments, the geometric parameters between the first node and the second node satisfying the first condition may include: the Euclidean distance (e.g., Euclidean distance in three-dimensional space) between the first node and the second node being the shortest. In other words, for a first node in the first frame, a node with the closest Euclidean distance to the first node may be selected from the second frame as the second node, and the geometric parameters of the first node and the second node may be fused to determine the geometric parameters of a third node in the first reference frame.

[0395] For example, assuming that the first frame and the second frame are frame A and frame B respectively, and the first node is node m in frame A, then the node n (corresponding to the second node above) with the closest Euclidean distance to node m in three-dimensional space can be selected from frame B. If the coordinates of node m in frame A are (X A , Y A , Z A ), the coordinates of node n in frame B are (X i , Y i , Z i ), then we can solve The minimum value of is obtained as node n. Then, node m and node n can be fused to generate a new node (corresponding to the third node above). Further, by processing the other nodes in frame A and frame B in a similar manner, a fused frame of frame A and frame B can be generated.

[0396] In some embodiments, the geometric parameters between the first node and the second node satisfying the first condition may include: the Manhattan distance (e.g., the Manhattan distance in three-dimensional space) between the first node and the second node being the shortest. In other words, for a first node in the first frame, a node with the closest Manhattan distance to the first node may be selected from the second frame as the second node, and the geometric parameters of the first node and the second node may be fused to determine the geometric parameters of a third node in the first reference frame.

[0397] For example, assuming that the first frame and the second frame mentioned above are frames A and B respectively, and the first node is node m in frame A, then the node n (corresponding to the second node above) with the closest Manhattan distance to node m in three-dimensional space can be selected from frame B. If the coordinates of node m in frame A are (X A , Y A , Z A ), the coordinates of node n in frame B are (X i , Y i , Z i ), then we can solve |Xx-X i +Y A -Y i +Z A -Z iThe minimum value of | is used to obtain node n. Node m and node n can then be fused to generate a new node (corresponding to the third node mentioned above). Furthermore, by processing the other nodes in frames A and B in a similar manner, a fused frame of frames A and B can be generated.

[0398] In some embodiments, the geometric parameters between the first node and the second node satisfying the first condition may include: the first node and the second node having the shortest Morton distance (e.g., a Morton distance in three-dimensional space). In other words, for a first node in the first frame, a node with the shortest Morton distance to the first node may be selected from the second frame as the second node, and the geometric parameters of the first node and the second node may be fused to determine the geometric parameters of a third node in the first reference frame.

[0399] In some embodiments, the geometric parameters between the first node and the second node satisfying the first condition may include: the Hilbert distance (e.g., the Hilbert distance in three-dimensional space) between the first node and the second node being the shortest. In other words, for a first node in the first frame, a node having the shortest Hilbert distance to the first node may be selected from the second frame as the second node, and the geometric parameters of the first node and the second node may be fused to determine the geometric parameters of a third node in the first reference frame.

[0400] In some embodiments, the at least one reference frame mentioned in step S2620 may also include a frame obtained by performing global motion on the first reference frame.

[0401] In some embodiments, if the at least one reference frame includes multiple frames used to fuse the first reference frame, the at least one reference frame may also include a frame obtained by performing global motion on some or all of the multiple frames.

[0402] In some embodiments, the at least one reference frame mentioned above may include a forward reference frame and a first reference frame (ie, a fused frame).

[0403] In some embodiments, the at least one reference frame mentioned above may include a backward reference frame and a first reference frame (ie, a fused frame).

[0404] In some embodiments, the aforementioned at least one reference frame including the first reference frame can be replaced by: the at least one reference frame including the forward reference frame of the current frame and the backward reference frame of the current frame (i.e., the current frame is a B frame). In other words, the embodiments of the present application support a bidirectional inter-frame prediction scheme for the current frame. The introduction of this scheme expands the types of reference frames available for inter-frame prediction, improves the accuracy of inter-frame prediction, and thus improves the encoding and decoding performance of point cloud geometric information.

[0405] In other embodiments, the at least one reference frame may include not only the first reference frame but also a forward reference frame of the current frame and a backward reference frame of the current frame. In other words, the embodiments of the present application can simultaneously support the aforementioned inter-frame prediction scheme based on fused frames and the bidirectional inter-frame prediction scheme, thereby further expanding the types of reference frames available for inter-frame prediction, improving the accuracy of inter-frame prediction, and thus improving the encoding and decoding performance of point cloud geometric information.

[0406] In some embodiments, the method of Figure 26 may also include: determining the value of the first identification information; if the value of the first identification information indicates that the current node uses a bidirectional inter-frame prediction mode, then executing the step of determining the previous encoded node of the current node in the current frame (ie, step S2610).

[0407] In some embodiments, if the value of the first identification information is a first value, it is determined that the first identification information indicates that the current node does not use the bidirectional inter-frame prediction mode; if the value of the first identification information is a second value (different from the first value), it is determined that the first identification information indicates that the current node uses the bidirectional inter-frame prediction mode.

[0408] In some embodiments, the first value and the second value may be in parameter form, or may be in digital form.

[0409] In some embodiments, the first identification information may be a parameter written in a profile, or a flag written in a bitstream.

[0410] Exemplarily, the first value may be set to 1 and the second value may be set to 0; or, the first value may be set to 0 and the second value may be set to 1; or, the first value may be set to true and the second value may be set to false; or, the first value may be set to false and the second value may be set to true.

[0411] Taking the first identification information as a flag bit written into the code stream as an example, assuming that the first value of the first identification information is 0 and the second value is 1, if the value of the first identification information is 0, it can be determined that the current node does not use the bidirectional inter-frame prediction mode, that is, there is no need to execute the encoding method described in the embodiment of the present application; if the value of the first identification information is 1, it can be determined that the current node uses the bidirectional inter-frame prediction mode, that is, the encoding method described in the embodiment of the present application is executed.

[0412] In some embodiments, the at least one reference frame mentioned above includes a first reference frame, which can be replaced by: the current frame belongs to a group of frames in N groups of frames (N is an integer greater than 0), and each group of frames in the N groups of frames can correspond to a key frame (or, each group of frames can include a key frame, i.e., an I frame). In other words, the embodiment of the present application supports an inter-frame prediction scheme based on GOF. After the introduction of the inter-frame prediction scheme based on GOF, since each group of frames corresponds to a key frame (using intra-frame prediction), the error of this group of frames (such as prediction error) will not be transmitted to the next group of frames, thereby controlling the transmission of errors within a group of frames.

[0413] In some embodiments, the at least one reference frame may include a first reference frame; on this basis, the current frame belongs to a group of frames in N groups of frames (N is an integer greater than 0), and each group of frames in the N groups of frames may correspond to a key frame (or, each group of frames may include a key frame, i.e., an I frame). In other words, the embodiment of the present application may simultaneously be based on an inter-frame prediction scheme of a fused frame and an inter-frame prediction scheme based on a GOF, which not only controls the propagation of errors within a group of frames, but also expands the types of reference frames available for inter-frame prediction, improves the accuracy of inter-frame prediction, and thus improves the encoding and decoding performance of point cloud geometric information.

[0414] For example, referring to FIG. 24 , every k frames (k is an integer greater than 1) can be set as a group of frames. Thus, frames 0 to k-1 in FIG. 24 constitute a group of frames. Within this group of frames, frame 0 can be set as an I frame, and the remaining frames can be set as P frames or B frames. Then, frame k becomes the I frame of the next group of frames, and this cycle repeats.

[0415] In some embodiments, the method of Figure 26 may further include: determining a first parameter; encoding the first parameter, and writing the obtained coded bits into a bitstream. The first parameter can be used to indicate the interval between a key frame corresponding to a group of frames (or a key frame in a group of frames) and the first forward predicted frame in the group of frames. Alternatively, the first parameter can be used to indicate the interval between two adjacent forward predicted frames in a group of frames. The decoding end can determine the encoding order of the group of frames and / or the reference frames of each frame in the group of frames based on the first parameter; and decode the group of frames based on the encoding order of the group of frames and / or the reference frames of each frame in the group of frames.

[0416] For example, in a group of frames as shown in FIG24 , if the first parameter indicates that the interval between the I frame and the P frame is 8, the reference frames corresponding to the 0th to 8th frames in the group of frames can be shown in Table 2 below.

[0417] Table 2

[0418] In addition, Figure 25 graphically illustrates the reference frames of the set of frames from frame 0 to frame 8. In Figure 25 , the frame where the arrow starts is the reference frame of the frame where the arrow ends.

[0419] Based on the above reference frame setting method, at the encoding end, encoding can be performed in the following encoding order: frame 0->frame 8->frame 4->frame 2->frame 1->frame 3->frame 6->frame 5->frame 7, and the encoding is specifically performed in the following encoding method:

[0420] Frame 0 is an I frame. When encoding frame 0, intra-frame prediction is used.

[0421] The 8th frame is a P frame. When encoding the 8th frame, the 0th frame is selected as the reference frame, and the candidate nodes for inter-frame prediction are selected from the 0th frame.

[0422] The 4th frame is a B frame. When encoding the 4th frame, the 0th frame and the 8th frame are selected as reference frames, and candidate nodes for inter-frame prediction are selected from the 0th frame and the 8th frame.

[0423] The second frame is a B frame. When encoding the second frame, the 0th frame and the 4th frame are selected as reference frames, and candidate nodes for inter-frame prediction are selected from the 0th frame and the 4th frame.

[0424] The first frame is a B frame. When encoding the first frame, the 0th and 2nd frames are selected as reference frames, and candidate nodes for inter-frame prediction are selected from the 0th and 2nd frames.

[0425] The third frame is a B frame. When encoding the third frame, the second and fourth frames are selected as reference frames, and candidate nodes for inter-frame prediction are selected from the second and fourth frames.

[0426] The 6th frame is a B frame. When encoding the 6th frame, the 4th and 8th frames are selected as reference frames, and candidate nodes for inter-frame prediction are selected from the 4th and 8th frames.

[0427] The 5th frame is a B frame. When encoding the 5th frame, the 4th and 6th frames are selected as reference frames, and candidate nodes for inter-frame prediction are selected from the 4th and 6th frames.

[0428] The 7th frame is a B frame. When encoding the 7th frame, the 6th and 8th frames are selected as reference frames, and candidate nodes for inter-frame prediction are selected from the 6th and 8th frames.

[0429] As mentioned above, the inter-frame prediction scheme based on the fused frame and the bidirectional inter-frame prediction scheme (or the inter-frame prediction scheme based on a group of frames) can be implemented in combination. If the two are combined in an embodiment, Figure 25 can be encoded in the following encoding order: frame 0->frame 8->frame 4->frame 2->frame 1->frame 3->frame 6->frame 5->frame 7, and specifically encoded using the following encoding method:

[0430] Frame 0 is an I frame. When encoding frame 0, intra-frame prediction is used.

[0431] The 8th frame is a P frame. When encoding the 8th frame, the 0th frame is selected as the reference frame, and the candidate nodes for inter-frame prediction are selected from the 0th frame.

[0432] The 4th frame is a B frame. When encoding the 4th frame, the 0th frame, the 8th frame, and the fusion frame of the 0th frame and the 8th frame are selected as reference frames, and candidate nodes for inter-frame prediction are selected from these reference frames;

[0433] The second frame is a B frame. When encoding the second frame, the 0th frame, the 4th frame, and the fusion frame of the 0th frame and the 4th frame are selected as reference frames, and candidate nodes for inter-frame prediction are selected from these reference frames;

[0434] The first frame is a B frame. When encoding the first frame, the 0th frame, the 2nd frame, and the fusion frame of the 0th frame and the 2nd frame are selected as reference frames, and candidate nodes for inter-frame prediction are selected from these reference frames;

[0435] The third frame is a B frame. When encoding the third frame, the second frame, the fourth frame, and the fusion frame of the second and fourth frames are selected as reference frames, and candidate nodes for inter-frame prediction are selected from these reference frames.

[0436] The 6th frame is a B frame. When encoding the 6th frame, the 4th frame, the 8th frame, and the fusion frame of the 4th and 8th frames are selected as reference frames, and candidate nodes for inter-frame prediction are selected from these reference frames;

[0437] The fifth frame is a B frame. When encoding the fifth frame, the fourth frame, the sixth frame, and the fusion frame of the fourth and sixth frames are selected as reference frames, and candidate nodes for inter-frame prediction are selected from these reference frames.

[0438] The 7th frame is a B frame. When encoding the 7th frame, the 6th frame, the 8th frame, and the fusion frame of the 6th and 8th frames are selected as reference frames, and candidate nodes for inter-frame prediction are selected from these reference frames.

[0439] In some embodiments, determining a candidate node in at least one reference frame of a current frame based on a previously encoded node may include: determining a first candidate node in a first reference frame whose geometric parameters satisfy a second condition with those of the previously encoded node; and determining at least one second candidate node in the first reference frame based on the first candidate node.

[0440] There are many ways to define whether the geometric parameters of the previous encoded node and the first candidate node meet the second condition.

[0441] In some embodiments, the geometric parameters of the previously encoded node and the first candidate node satisfying the second condition may include: the radar laser index number of the previously encoded node is the same as the radar laser index number of the first candidate node; and the horizontal azimuth angle of the previously encoded node is the same as the horizontal azimuth angle of the first candidate node. That is, in the first reference frame, the laserID of the first candidate node found is the same as the laserID of the previously encoded node, and the laserID of the first candidate node found is the same as the laserID of the previously encoded node. With the previous encoded node same.

[0442] In some embodiments, the geometric parameters of the previously encoded node and the first candidate node satisfying the second condition may include: the radar laser index number of the previously encoded node is the same as the radar laser index number of the first candidate node; and the horizontal azimuth angle of the previously encoded node is greater than and closest to the horizontal azimuth angle of the first candidate node. That is, in the first reference frame, the laserID of the first candidate node found is the same as the laserID of the previously encoded node, and the laserID of the first candidate node found is the same as the laserID of the previously encoded node. is the first node that is greater than the previous encoded node

[0443] In some embodiments, the geometric parameters of the previously encoded node and the first candidate node satisfying the second condition may include: the radar laser index number of the previously encoded node is the same as the radar laser index number of the first candidate node; and the horizontal azimuth angle of the previously encoded node is smaller than and closest to the horizontal azimuth angle of the first candidate node. That is, in the first reference frame, the laserID of the first candidate node found is the same as the laserID of the previously encoded node, and the laserID of the first candidate node found is the same as the laserID of the previously encoded node. is the first node that is smaller than the previous encoded node

[0444] Taking Figure 27 as an example, the method for determining the first and second candidate nodes in the first reference frame is illustrated. Referring to Figure 27 , during inter-frame prediction coding of the current node, the prediction tree can be traversed to determine the previously encoded node a of the current node. The geometric parameters of the previously encoded node a can then be used to search for a first candidate point b in the first reference frame that meets the second condition (e.g., searching for a first candidate node b in the first reference frame that has the same radar laser index number and horizontal azimuth as the previously encoded node). At least one second candidate node to be encoded after the first candidate node b can then be determined from the first reference frame (this can include the second candidate node c shown in Figure 27 , or can include the second candidate nodes c and d shown in Figure 27 , or can include the second candidate nodes c through m shown in Figure 27 , or can include the second candidate nodes c through n shown in Figure 27 , with no specific limitation on the number of second candidate nodes). Furthermore, in some embodiments, global motion compensation can be performed on the first reference frame to obtain a GMC frame of the first reference frame, which can then be used as the reference frame for the current frame. Then, the geometric parameters of the previously encoded node a can be used to search for a third candidate point g that meets the second condition in the GMC frame (such as searching for a third candidate node g with the same radar laser index number and horizontal azimuth as the previously encoded node in the GMC frame). Then, at least one fourth candidate node encoded after the third candidate node g can be determined from the GMC frame (which may include the second candidate node e shown in FIG. 27 , or may include the second candidate nodes e and f shown in FIG. 27 , or may include the second candidate nodes e to o shown in FIG. 27 , or may include the second candidate nodes e to p shown in FIG. 27 , and the number of fourth candidate nodes is not specifically limited here).

[0445] In step S2630, an inter-frame candidate node set is determined based on candidate nodes in at least one reference frame.

[0446] Each candidate node in the inter-frame candidate node set may correspond to an index information, which may also be sometimes referred to as a prediction point mode, a prediction point mode value, or a prediction point sequence number.

[0447] The index information may be in parameter form or in digital form. For example, the index information may be a number such as 0, 1, 2, 3, or 4, or may be information such as a, b, c, d, or e, which is not specifically limited here.

[0448] In some embodiments, the index information may be used to indicate the index position of the prediction node (ie, the prediction point used to perform inter-frame prediction on the current node) in the inter-frame candidate set.

[0449] In some embodiments, the candidate nodes in the inter-frame candidate node set can be arranged in a predetermined order. For example, for a candidate node with a high probability of being selected, its index position in the inter-frame candidate node set can be set relatively early. This results in a smaller index corresponding to the candidate node, thereby reducing the number of encoding bits for the index information and thus lowering the bit rate.

[0450] In step S2640, the geometric prediction value of the current node is determined based on the inter-frame candidate node set.

[0451] In some embodiments, determining a geometric prediction value of a current node based on an inter-frame candidate node set may include: determining a prediction node from the inter-frame candidate node set; and determining a geometric prediction value of the current node based on the prediction node.

[0452] Furthermore, in some embodiments, determining a prediction node from an inter-frame candidate node set may include: performing cost calculations on at least one candidate node in the inter-frame candidate node set to determine a cost value for each of the at least one candidate node; determining a minimum cost value from the cost values ​​of the at least one candidate node, and using the candidate node corresponding to the minimum cost value as the prediction node.

[0453] In some embodiments, performing cost calculations on at least one candidate node in the inter-frame candidate node set may include performing cost calculations on at least one candidate node in the inter-frame candidate node set based on a rate-distortion cost approach. Alternatively, other cost approaches (such as a sum of absolute errors) may be used to perform cost calculations on at least one candidate node in the inter-frame candidate node set.

[0454] Taking rate-distortion cost as an example, after determining the cost value of each candidate node, the minimum cost value can be selected from them, and then the candidate node corresponding to the minimum cost value can be used as the prediction node; based on the geometric parameters of the prediction node (such as geometric position information), the geometric prediction value of the current node can be determined.

[0455] In some embodiments, the method of FIG. 26 may further include: determining index information of the current node (refer to the previous description for the index information); encoding the index information of the current node, and writing the obtained coded bits into the bitstream. The encoder encodes the index information of the current node so that the decoder can subsequently obtain the index information of the current node directly through decoding.

[0456] In some embodiments, the method of FIG. 26 may further include: determining a geometric prediction residual value of the current node based on the geometric prediction value of the current node; encoding the geometric prediction residual value of the current node, and writing the obtained coded bits into the bitstream.

[0457] In some embodiments, determining the geometric prediction residual value of the current node based on the geometric prediction value of the current node may include: determining the initial residual value of the current node based on the geometric prediction value of the current node; quantizing the initial residual value of the current node based on a quantization parameter to determine the geometric prediction residual value of the current node.

[0458] In some embodiments, determining the initial residual value of the current node based on the geometric prediction value of the current node may include: determining the original value of the current node; and determining the initial residual value of the current node by performing a subtraction operation between the original value of the current node and the geometric prediction value of the current node.

[0459] In some embodiments, the method of FIG. 26 may further include encoding a quantization parameter and writing the resulting coded bits into the bitstream. Taking geometric position information as an example, the geometric prediction value of the current node is first determined. A difference operation is then performed between the geometric position information of the current node and the geometric prediction value to obtain an initial residual value. The initial residual value is then quantized using the quantization parameter to determine a geometric prediction residual value. Finally, through continuous iteration, parameters such as the index information of each node position information in the prediction tree, the geometric prediction residual value, the prediction tree structure, and the quantization parameter are encoded, and the resulting coded bits are written into the bitstream.

[0460] The encoding method shown in FIG26 is primarily optimized for encoding in the inter-frame prediction mode. Therefore, second identification information (e.g., a flag bit) may be used to determine whether the current node uses the inter-frame prediction mode. Therefore, in some embodiments, the method of FIG26 may further include: determining the value of the second identification information; if the value of the second identification information indicates that the current node uses the inter-frame prediction mode, then performing the step of determining the previous encoded node of the current node in the current frame (i.e., step S2610 described above).

[0461] Further, in some embodiments, the method of Figure 26 may also include: if the value of the second identification information is the third value, determining that the second identification information indicates that the current node does not use the inter-frame prediction mode; if the value of the second identification information is the fourth value (different from the third value), determining that the second identification information indicates that the current node uses the inter-frame prediction mode.

[0462] In some embodiments, the third value and the fourth value may be in parameter form, or may be in digital form.

[0463] In some embodiments, the second identification information may be a parameter written into a profile, or a flag written into a bitstream.

[0464] Exemplarily, the third value may be set to 1 and the fourth value may be set to 0; or, the third value may be set to 0 and the fourth value may be set to 1; or, the third value may be set to true and the fourth value may be set to false; or, the third value may be set to false and the fourth value may be set to true.

[0465] Taking the second identification information as a flag bit written into the bitstream as an example, assuming that the third value of the second identification information is 0 and the fourth value is 1, if the value of the second identification information is 0, it can be determined that the current node does not use the inter-frame prediction mode, that is, there is no need to execute the encoding method described in the embodiment of the present application; if the value of the second identification information is 1, it can be determined that the current node uses the inter-frame prediction mode, that is, the encoding method described in the embodiment of the present application is executed. In this way, at the subsequent decoding end, by decoding the value of the first identification information, it can be determined whether the current node uses the inter-frame prediction mode, thereby improving decoding efficiency.

[0466] In some embodiments, the method of Figure 26 may further include: determining the value of the third identification information; if the value of the third identification information indicates that the current node enables the inter-frame prediction mode based on the fused frame, then executing the step of determining the previous encoded node of the current node in the current frame (i.e., step S2610 in the previous text).

[0467] Further, in some embodiments, the method of Figure 26 may also include: if the value of the third identification information is the fifth value, determining that the third identification information indicates that the current node does not enable the inter-frame prediction mode based on the fused frame; if the value of the third identification information is the sixth value (different from the fifth value), determining that the third identification information indicates that the current node enables the inter-frame prediction mode based on the fused frame.

[0468] In some embodiments, the fifth value and the sixth value may be in parameter form, or may be in digital form.

[0469] In some embodiments, the third identification information may be a parameter written into a profile, or a flag written into a bitstream.

[0470] Exemplarily, the fifth value may be set to 1 and the sixth value may be set to 0; or, the fifth value may be set to 0 and the sixth value may be set to 1; or, the fifth value may be set to true and the sixth value may be set to false; or, the fifth value may be set to false and the sixth value may be set to true.

[0471] Taking the third identification information as a flag bit written into the bitstream as an example, assuming that the fifth value of the third identification information is 0 and the sixth value is 1, if the value of the third identification information is 0, it can be determined that the current node does not use the inter-frame prediction mode based on the fused frame, that is, there is no need to execute the encoding method described in the embodiment of the present application; if the value of the third identification information is 1, it can be determined that the current node uses the inter-frame prediction mode based on the fused frame, that is, execute the encoding method described in the embodiment of the present application. In this way, at the subsequent decoding end, by decoding the value of the third identification information, it can be determined whether the current node uses the inter-frame prediction mode based on the fused frame, thereby improving decoding efficiency.

[0472] As a more specific example, the third identification information can use a 1-bit flag to indicate whether the encoding method of the embodiment of the present application is turned on or not. The flag can be placed in the header information of the high-level syntax element, such as the geometry header. Moreover, the flag can be conditionally turned on under certain conditions. In some embodiments, if the flag does not appear in the code stream, the value of the flag can be considered to be a fixed default value. At the decoding end, if the flag does not appear in the code stream, the flag can be decoded without being decoded, and the value of the flag can be directly set to the fixed default value.

[0473] The present application also provides a bitstream. The bitstream can be generated by bit encoding based on information to be encoded. The information to be encoded includes at least one of the following: a geometric prediction residual value of the current node, a quantization parameter, index information, a value of first identification information, a value of second identification information, a value of third identification information, and a first parameter. The first identification information indicates whether the current node uses a bidirectional inter-frame prediction mode, the second identification information indicates whether the current node uses an inter-frame prediction mode, and the third identification information indicates whether the current node enables an inter-frame prediction mode based on a fused frame. The first parameter indicates the interval between a key frame corresponding to a group of frames and the first forward-predicted frame in the group of frames, or the first parameter indicates the interval between two adjacent forward-predicted frames in a group of frames, where the group of frames refers to the group of frames in which the current frame is located. After determining the information to be encoded, the encoder can encode the information to be encoded and write the resulting encoded bits into a bitstream, which is then transmitted from the encoder to the decoder. By decoding the bitstream, the decoder can obtain information such as the geometric prediction residual value, quantization parameter, and index information of the current node, thereby recovering the geometric reconstruction information of the current node.

[0474] An embodiment of the present application provides an encoding method, comprising: determining a previously encoded node of a current node in a current frame; determining a candidate node in at least one reference frame of the current frame based on the previously encoded node; wherein the at least one reference frame includes a first reference frame, and the geometric parameters of the node in the first reference frame are determined based on the geometric parameters of nodes in multiple frames; determining an inter-frame candidate node set based on the candidate nodes in the at least one reference frame; and determining a geometric prediction value for the current node based on the inter-frame candidate node set. Compared to related technologies, the technical solution provided by the embodiment of the present application expands the types of reference frames available for inter-frame prediction, improves the accuracy of inter-frame prediction, and thus improves the encoding and decoding performance of point cloud geometric information.

[0475] The nodes mentioned in the above embodiments can be understood as or replaced by a block. For example, the points in the prediction tree can be divided into blocks, and the same prediction information can be used in the blocks for prediction coding, thereby improving coding efficiency.

[0476] The following examples are used to describe the embodiments of the present application in more detail. It should be noted that the examples below are only intended to help those skilled in the art understand the embodiments of the present application, rather than to limit the embodiments of the present application to the specific numerical values ​​or specific scenarios illustrated. It is apparent that those skilled in the art can make various equivalent modifications or changes based on the examples given below, and such modifications or changes also fall within the scope of the embodiments of the present application.

[0477] The inter-frame prediction scheme (or tool, e.g., a program or algorithm) proposed in this example can be enabled using a 1-bit flag. This flag can be placed in the header of a higher-level syntax element, such as the geometry header. This flag can be conditionally enabled under certain conditions. If the flag is not present in the bitstream, the flag value can be a default value (which can be a fixed value).

[0478] Similarly, the decoder needs to decode the flag bit. If the flag bit does not appear in the bitstream, it is not decoded and the flag bit value is determined to be the default value. This example proposes two solutions, which can be implemented independently or in combination. The following examples illustrate these two solutions in detail.

[0479] Solution 1 (inter-frame prediction solution based on fused frames):

[0480] As mentioned above, if the frames to be encoded are frames 0 to 8 as shown in FIG21 , the encoding order of the related art is frame 0 -> frame 1 -> frame 2 -> frame 3 -> frame 4 -> frame 5 -> frame 6 -> frame 7 -> frame 8, and the encoding is specifically performed using the following encoding method:

[0481] Frame 0 is an I frame. When encoding frame 0, intra-frame coding is used.

[0482] The first frame is a P frame. When encoding the first frame, frame 0 is selected as the reference frame, and candidate nodes for inter-frame prediction are selected from frame 0 (as can be seen from Figure 21, the arrow starting from frame 0 points to frame 1, indicating that frame 0 is the reference frame of frame 1. The representation of reference frames for subsequent frames is similar and will not be repeated here);

[0483] The second frame is a P frame. When encoding the second frame, the 0th frame and the 1st frame are selected as reference frames, and candidate nodes for inter-frame prediction are selected from the 0th frame and the 1st frame.

[0484] The third frame is a P frame. When encoding the third frame, the first and second frames are selected as reference frames, and candidate nodes for inter-frame prediction are selected from the first and second frames.

[0485] The 4th frame is a P frame. When encoding the 4th frame, the 2nd and 3rd frames are selected as reference frames, and candidate nodes for inter-frame prediction are selected from the 2nd and 3rd frames.

[0486] The fifth frame is a P frame. When encoding the fifth frame, the third and fourth frames are selected as reference frames, and candidate nodes for inter-frame prediction are selected from the third and fourth frames.

[0487] The 6th frame is a P frame. When encoding the 6th frame, the 4th and 5th frames are selected as reference frames, and candidate nodes for inter-frame prediction are selected from the 4th and 5th frames.

[0488] The 7th frame is a P frame. When encoding the 7th frame, the 5th and 6th frames are selected as reference frames, and candidate nodes for inter-frame prediction are selected from the 5th and 6th frames.

[0489] The 8th frame is a P frame. When encoding the 8th frame, the 6th and 7th frames are selected as reference frames, and candidate nodes for inter-frame prediction are selected from the 6th and 7th frames.

[0490] That is to say, during inter-frame prediction, the relevant technology simply uses the previous frame (or the previous two frames) of the current frame as the reference frame, which will result in a single type of reference frame for inter-frame prediction and fail to fully select the inter-frame candidate node that is most suitable for the current node, resulting in poor prediction results and reduced coding efficiency of point cloud geometric information.

[0491] Similarly, for frames 0 to 8 shown in FIG21 , the encoding scheme based on fused frames proposed in this example is described below.

[0492] The encoding scheme based on fusion frames proposed in this example adopts the encoding order of frame 0->frame 1->frame 2->frame 3->frame 4->frame 5->frame 6->frame 7->frame 8, and specifically adopts the following encoding method for encoding:

[0493] Frame 0 is an I frame. When encoding frame 0, intra-frame coding is used.

[0494] The first frame is a P frame. When encoding the first frame, the 0th frame is selected as the reference frame, and the candidate nodes for inter-frame prediction are selected from the 0th frame.

[0495] The second frame is a P frame. When encoding the second frame, the 0th frame, the 1st frame, and the fusion frame of the 0th frame and the 1st frame are selected as reference frames, and candidate nodes for inter-frame prediction are selected from the 0th frame, the 1st frame, and the fusion frame of the 0th frame and the 1st frame;

[0496] The third frame is a P frame. When encoding the third frame, the first frame, the second frame, and the fusion frame of the first and second frames are selected as reference frames, and candidate nodes for inter-frame prediction are selected from the first frame, the second frame, and the fusion frame of the first and second frames.

[0497] The 4th frame is a P frame. When encoding the 4th frame, the 2nd frame, the 3rd frame, and the fusion frame of the 2nd and 3rd frames are selected as reference frames, and candidate nodes for inter-frame prediction are selected from the 2nd frame, the 3rd frame, and the fusion frame of the 2nd and 3rd frames.

[0498] The fifth frame is a P frame. When encoding the fifth frame, the third frame, the fourth frame, and the fusion frame of the third and fourth frames are selected as reference frames, and candidate nodes for inter-frame prediction are selected from the third frame, the fourth frame, and the fusion frame of the third and fourth frames.

[0499] The 6th frame is a P frame. When encoding the 6th frame, the 4th frame, the 5th frame, and the fusion frame of the 4th and 5th frames are selected as reference frames, and candidate nodes for inter-frame prediction are selected from the 4th frame, the 5th frame, and the fusion frame of the 4th and 5th frames;

[0500] The 7th frame is a P frame. When encoding the 7th frame, the 5th frame, the 6th frame, and the fusion frame of the 5th and 6th frames are selected as reference frames, and candidate nodes for inter-frame prediction are selected from the 5th frame, the 6th frame, and the fusion frame of the 5th and 6th frames.

[0501] The 8th frame is a P frame. When encoding the 8th frame, the 6th frame, the 7th frame, and the fusion frame of the 6th and 7th frames are selected as reference frames, and candidate nodes for inter-frame prediction are selected from the 6th frame, the 7th frame, and the fusion frame of the 6th and 7th frames.

[0502] There are many ways to fuse two frames. Several examples of fusion methods are given below.

[0503] Fusion method 1:

[0504] Assume that the frames to be fused are frame A and frame B.

[0505] For node m in frame A or frame B, select a node in frame B or frame A that has the same laserID and Node n.

[0506] The coordinates of node m and node n are fused (e.g., averaged) to generate a new node. Other nodes in frame A or frame B are processed in a similar manner to generate a fused frame of frame A and frame B.

[0507] Fusion method 2:

[0508] Assume that the frames to be fused are frame A and frame B.

[0509] For node m in frame A or frame B, select the first node in frame B or frame A that has the same laserID as node m. Greater than or equal to node m Node n.

[0510] The coordinates of node m and node n are fused (e.g., averaged) to generate a new node. Other nodes in frame A or frame B are processed in a similar manner to generate a fused frame of frame A and frame B.

[0511] Fusion method three:

[0512] Assume that the frames to be fused are frame A and frame B.

[0513] For node m in frame A or frame B, select the first node in frame B or frame A that has the same laserID as node m. Less than or equal to node m Node n.

[0514] The coordinates of node m and node n are fused (e.g., averaged) to generate a new node. Other nodes in frame A or frame B are processed in a similar manner to generate a fused frame of frame A and frame B.

[0515] Fusion method four:

[0516] Assume that the frames to be fused are frame A and frame B.

[0517] For node m in frame A or frame B, select the node n with the closest Euclidean distance to node m in three-dimensional space in frame B or frame A. Let the coordinates of node m in frame A be (X A , Y A , Z A ), the coordinates of the point n found in frame B are (Xi , Y i , Z i ).calculate Node n is obtained by taking the minimum value of . Nodes m and n are then coordinate-fused (e.g., averaged) to generate a new node. The other nodes in frame A or frame B are processed similarly to generate a fused frame of frames A and B.

[0518] Fusion method five:

[0519] Assume that the frames to be fused are frame A and frame B.

[0520] For node m in frame A or frame B, select the node n with the closest Manhattan distance to node m in frame B or frame A. Let the coordinates of node m in frame A be (X A , Y A , Z A ), the coordinates of the point n found in frame B are (X i , Y i , Z i ). Calculate |X A -X i +Y A -Y i +Z A -Z i Node n is obtained by taking the minimum value of |. Nodes m and n are then coordinate-fused (e.g., averaged) to generate a new node. The other nodes in frame A or frame B are processed similarly to generate a fused frame of frames A and B.

[0521] Fusion method six:

[0522] Assume that the frames to be fused are frame A and frame B.

[0523] For node m in frame A or frame B, select node n in frame B or frame A that has the closest Morton distance to node m in three-dimensional space. Fuse the coordinates of nodes m and n (e.g., take the average) to generate a new node. Similarly, process each node in frame A or frame B to generate a fused frame of frames A and B.

[0524] Fusion method seven:

[0525] Assume that the frames to be fused are frame A and frame B.

[0526] For node m in frame A or frame B, select node n in frame B or frame A that has the closest Hilbert distance to node m in three-dimensional space. Fuse the coordinates of nodes m and n (e.g., take the average) to generate a new node. Similarly, process each node in frame A or frame B to generate a fused frame of frames A and B.

[0527] Scheme 1 introduces the fusion frame structure into the structure of the inter-frame prediction tree, enriches the reference space of reference prediction, and improves the encoding and decoding performance of point cloud geometric information.

[0528] Solution 2 (inter-frame prediction solution based on a group of frames (GOF)):

[0529] First, as shown in Figure 24, a group of k frames is set, with frames 0 to k-1 forming a group. Frame 0 is an I frame, and the remaining frames are P or B frames. Frame k is an I frame, and this cycle repeats. The prediction tree inter-frame coding introduces a group structure and bidirectional inter-frame prediction for the current frame, making the inter-frame prediction tree coding flexible and keeping error propagation confined to a group of frames.

[0530] Next, a first parameter can be defined. This first parameter represents the interval between I frames and P frames in a group of frames (or, the first parameter can represent the interval between two adjacent P frames in a group of frames). In a group of frames, except for I frames and P frames, the remaining frames are B frames. This first parameter can be transmitted from the encoder to the decoder. Therefore, the encoder can encode the first parameter into the bitstream, and the decoder can obtain the first parameter from the bitstream.

[0531] For k frames in the set of frames:

[0532] I-frames use intra-frame prediction;

[0533] P frames can refer to the previous coded I frame or P frame for inter-frame prediction;

[0534] B frames can use bidirectional I frames, bidirectional P frames, or bidirectional B frames for bidirectional inter-frame prediction;

[0535] For example, it is assumed that a group of frames includes k frames, and the first parameter indicates that the interval between I frames and P frames in the group of frames is 8. Then, the reference frames of the 0th to 8th frames in the group of frames are as shown in Table 3:

[0536] Table 3

[0537] Figure 25 graphically illustrates the reference frames of the set of frames from frame 0 to frame 8. In Figure 25 , the frame where the arrow starts is the reference frame of the frame where the arrow ends.

[0538] Based on the above reference frame setting method, at the encoding end, encoding can be performed in the following encoding order: frame 0->frame 8->frame 4->frame 2->frame 1->frame 3->frame 6->frame 5->frame 7, and the encoding is specifically performed in the following encoding method:

[0539] Frame 0 is an I frame. When encoding frame 0, intra-frame prediction is used.

[0540] The 8th frame is a P frame. When encoding the 8th frame, the 0th frame is selected as the reference frame, and the candidate nodes for inter-frame prediction are selected from the 0th frame.

[0541] The 4th frame is a B frame. When encoding the 4th frame, the 0th frame and the 8th frame are selected as reference frames, and candidate nodes for inter-frame prediction are selected from the 0th frame and the 8th frame.

[0542] The second frame is a B frame. When encoding the second frame, the 0th frame and the 4th frame are selected as reference frames, and candidate nodes for inter-frame prediction are selected from the 0th frame and the 4th frame.

[0543] The first frame is a B frame. When encoding the first frame, the 0th and 2nd frames are selected as reference frames, and candidate nodes for inter-frame prediction are selected from the 0th and 2nd frames.

[0544] The third frame is a B frame. When encoding the third frame, the second and fourth frames are selected as reference frames, and candidate nodes for inter-frame prediction are selected from the second and fourth frames.

[0545] The 6th frame is a B frame. When encoding the 6th frame, the 4th and 8th frames are selected as reference frames, and candidate nodes for inter-frame prediction are selected from the 4th and 8th frames.

[0546] The 5th frame is a B frame. When encoding the 5th frame, the 4th and 6th frames are selected as reference frames, and candidate nodes for inter-frame prediction are selected from the 4th and 6th frames.

[0547] The 7th frame is a B frame. When encoding the 7th frame, the 6th and 8th frames are selected as reference frames, and candidate nodes for inter-frame prediction are selected from the 6th and 8th frames.

[0548] In addition, if the second scheme is combined with the inter-frame prediction scheme based on fused frames proposed in the first scheme, the above encoding method can be adjusted as follows:

[0549] Frame 0 is an I frame. When encoding frame 0, intra-frame prediction is used.

[0550] The 8th frame is a P frame. When encoding the 8th frame, the 0th frame is selected as the reference frame, and the candidate nodes for inter-frame prediction are selected from the 0th frame.

[0551] The 4th frame is a B frame. When encoding the 4th frame, the 0th frame, the 8th frame, and the fusion frame of the 0th frame and the 8th frame are selected as reference frames, and candidate nodes for inter-frame prediction are selected from these reference frames;

[0552] The second frame is a B frame. When encoding the second frame, the 0th frame, the 4th frame, and the fusion frame of the 0th frame and the 4th frame are selected as reference frames, and candidate nodes for inter-frame prediction are selected from these reference frames;

[0553] The first frame is a B frame. When encoding the first frame, the 0th frame, the 2nd frame, and the fusion frame of the 0th frame and the 2nd frame are selected as reference frames, and candidate nodes for inter-frame prediction are selected from these reference frames;

[0554] The third frame is a B frame. When encoding the third frame, the second frame, the fourth frame, and the fusion frame of the second and fourth frames are selected as reference frames, and candidate nodes for inter-frame prediction are selected from these reference frames.

[0555] The 6th frame is a B frame. When encoding the 6th frame, the 4th frame, the 8th frame, and the fusion frame of the 4th and 8th frames are selected as reference frames, and candidate nodes for inter-frame prediction are selected from these reference frames;

[0556] The fifth frame is a B frame. When encoding the fifth frame, the fourth frame, the sixth frame, and the fusion frame of the fourth and sixth frames are selected as reference frames, and candidate nodes for inter-frame prediction are selected from these reference frames.

[0557] The 7th frame is a B frame. When encoding the 7th frame, the 6th frame, the 8th frame, and the fusion frame of the 6th and 8th frames are selected as reference frames, and candidate nodes for inter-frame prediction are selected from these reference frames.

[0558] The fusion method of the fused frame can adopt any one of the fusion methods 1 to fusion methods 7 mentioned in Solution 1.

[0559] After determining the reference frame of each frame, the geometric parameters of the nodes in the prediction tree may be encoded in the manner described below.

[0560] When performing inter-frame predictive coding on the current node at the encoding end, the prediction tree is traversed to determine the previous encoded node of the current node.

[0561] Using the geometric parameters of the previously encoded node, candidates for the current node are searched in the reference frame of the current frame (or the reference frame obtained after global motion of the current frame's reference frame) using certain agreed conditions (e.g., searching for candidate nodes in the reference frame with the same radar laser index number and horizontal azimuth as the previously encoded node), forming an inter-frame candidate node set. A prediction node (corresponding to the prediction node mentioned above) is then selected through rate-distortion optimization (RDO), and its index information (indicating its index position in the inter-frame candidate node set) is encoded. The geometric parameters of the current node are then predicted to obtain a prediction residual, which is then quantized using a quantization parameter to obtain a quantized geometric prediction residual. Finally, through continuous iteration, the prediction mode, prediction residual, prediction tree structure, and quantization parameter of the geometric parameters of the nodes in the prediction tree are encoded to generate a binary bitstream.

[0562] At the decoding end, the index information of the current node is decoded. The information of the previous decoded node of the current node is used to find the prediction node of the current node (corresponding to the prediction node mentioned above) in the reference frame of the current frame (or the reference frame of the current frame obtained after global motion). Secondly, the geometric position prediction residual information and quantization parameters of the current node are obtained through analysis, and the prediction residual is dequantized to recover the reconstructed geometric position information of the current node, finally completing the geometric reconstruction at the decoding end.

[0563] Table 4 shows the test results of the technical solution provided by this example under the conditions of geometric position loss and attribute loss. It can be seen that the technical solution provided by this example improves the encoding and decoding performance.

[0564] Table 4

[0565] The method embodiment of the present application is described in detail above in conjunction with Figures 1 to 27. The device embodiment of the present application is described in detail below in conjunction with Figures 28 to 32. It should be understood that the description of the method embodiment corresponds to the description of the device embodiment. Therefore, for parts not described in detail, reference can be made to the above method embodiment.

[0566] FIG28 is a schematic diagram of the structure of a decoder provided by an embodiment of the present application. As shown in FIG28 , the decoder 2800 may include a decoding unit 2810 , a determination unit 2820 , and a prediction unit 2830 .

[0567] The decoding unit 2810 is configured to decode the code stream and determine the index information of the current node in the current frame.

[0568] The determination unit 2820 is configured to determine a prediction node from at least one reference frame of the current frame according to the index information; wherein the at least one reference frame includes a first reference frame, and the geometric parameters of the node in the first reference frame are determined based on the node geometric parameters in multiple frames.

[0569] The prediction unit 2830 is configured to determine a geometric prediction value of the current node based on the prediction node.

[0570] In some embodiments, the plurality of frames includes: a previous frame of the current frame; and a previous frame of the previous frame.

[0571] In some embodiments, the plurality of frames include: a K-th frame before the current frame, where K is an integer greater than 0; and an M-th frame after the current frame, where M is an integer greater than 0.

[0572] In some embodiments, the multiple frames include a first frame and a second frame, the first frame includes a first node, the second frame includes a second node, and the geometric parameters of the first node and the second node meet a first condition, the first reference frame includes a third node, and the geometric parameters of the third node are determined based on the geometric parameters of the first node and the second node.

[0573] In some embodiments, the first condition is associated with at least one of: radar laser index numbers of the first node and the second node; horizontal azimuth angles of the first node and the second node; and a distance between the first node and the second node.

[0574] In some embodiments, the geometric parameters between the first node and the second node satisfy a first condition, including: the radar laser index number of the first node is the same as the radar laser index number of the second node; and the horizontal azimuth angle of the first node is the same as the horizontal azimuth angle of the second node.

[0575] In some embodiments, the geometric parameters between the first node and the second node satisfy a first condition, including: the radar laser index number of the first node is the same as the radar laser index number of the second node; and the horizontal azimuth angle of the first node is greater than and closest to the horizontal azimuth angle of the second node.

[0576] In some embodiments, the geometric parameters between the first node and the second node satisfy a first condition, including: the radar laser index number of the first node is the same as the radar laser index number of the second node; and the horizontal azimuth angle of the first node is less than and closest to the horizontal azimuth angle of the second node.

[0577] In some embodiments, the geometric parameters between the first node and the second node satisfy a first condition, including at least one of the following: the Euclidean distance between the first node and the second node is the shortest; the Manhattan distance between the first node and the second node is the shortest; the Morton distance between the first node and the second node is the shortest; and the Hilbert distance between the first node and the second node is the shortest.

[0578] In some embodiments, the at least one reference frame includes a forward reference frame of the current frame and a backward reference frame of the current frame.

[0579] In some embodiments, the decoding unit 2810 is further configured to decode the code stream and determine the value of the first identification information; if the value of the first identification information indicates that the current node uses a bidirectional inter-frame prediction mode, the step of decoding the code stream and determining the index information of the current node in the current frame is executed.

[0580] In some embodiments, the determination unit 2820 is further configured to determine that if the value of the first identification information is a first value, then the first identification information indicates that the current node does not use the bidirectional inter-frame prediction mode; if the value of the first identification information is a second value, then the first identification information indicates that the current node uses the bidirectional inter-frame prediction mode.

[0581] In some embodiments, the current frame belongs to a group of frames in N groups of frames, and each group of frames in the N groups of frames corresponds to a key frame, where N is an integer greater than 0.

[0582] In some embodiments, the decoding unit 2810 is further configured to decode the code stream, determine a first parameter, and the first parameter is used to indicate the interval between a key frame corresponding to a group of frames and the first forward predicted frame in the group of frames, or the first parameter can be used to indicate the interval between two adjacent forward predicted frames in a group of frames; and decode the group of frames according to the first parameter.

[0583] In some embodiments, the determination unit 2820 is configured to determine the previous decoded node of the current node if the predicted node indicated by the index information is located in the first reference frame; determine the first candidate node from the first reference frame based on the previous decoded node; wherein the geometric parameters of the previous decoded node and the first candidate node meet the second condition; and determine the predicted node based on the first candidate node.

[0584] In some embodiments, the geometric parameters of the previous decoded node and the first candidate node satisfy the second condition, including: the radar laser index number of the previous decoded node is the same as the radar laser index number of the first candidate node; and the horizontal azimuth angle of the previous decoded node is the same as the horizontal azimuth angle of the first candidate node.

[0585] In some embodiments, the geometric parameters of the previous decoded node and the first candidate node satisfy the second condition, including: the radar laser index number of the previous decoded node is the same as the radar laser index number of the first candidate node; and the horizontal azimuth angle of the previous decoded node is greater than and closest to the horizontal azimuth angle of the first candidate node.

[0586] In some embodiments, the geometric parameters of the previous decoded node and the first candidate node satisfy the second condition, including: the radar laser index number of the previous decoded node is the same as the radar laser index number of the first candidate node; and the horizontal azimuth angle of the previous decoded node is less than and closest to the horizontal azimuth angle of the first candidate node.

[0587] In some embodiments, the determining unit 2820 is configured to determine a previous decoded node of the current node according to a decoding order of the prediction tree corresponding to the current frame.

[0588] In some embodiments, the decoding unit 2810 is further configured to decode the code stream to determine the geometric prediction residual value and quantization parameter of the current node; the determination unit 2820 is further configured to perform inverse quantization on the geometric prediction residual value according to the quantization parameter to obtain an inverse quantized residual value; and determine the geometric reconstruction information of the current node based on the inverse quantized residual value and the geometric prediction value.

[0589] In some embodiments, the decoding unit 2810 is further configured to decode the code stream and determine the value of the second identification information; if the value of the second identification information indicates that the current node uses the inter-frame prediction mode, the step of decoding the code stream and determining the index information of the current node in the current frame is executed.

[0590] In some embodiments, the determination unit 2820 is further configured to determine that if the value of the second identification information is a third value, then the second identification information indicates that the current node does not use the inter-frame prediction mode; if the value of the second identification information is a fourth value, then the second identification information indicates that the current node uses the inter-frame prediction mode.

[0591] In some embodiments, the decoding unit 2810 is further configured to decode the code stream and determine the value of the third identification information; if the value of the third identification information indicates that the current node enables the inter-frame prediction mode based on the fused frame, then the step of decoding the code stream and determining the index information of the current node in the current frame is executed.

[0592] In some embodiments, the determination unit 2820 is further configured to determine that if the value of the third identification information is the fifth value, then the third identification information indicates that the current node does not enable the inter-frame prediction mode based on the fused frame; if the value of the third identification information is the sixth value, then the third identification information indicates that the current node enables the inter-frame prediction mode based on the fused frame.

[0593] In some embodiments, the first geometric parameter is a radar laser index number.

[0594] In some embodiments, the second geometric parameter is a horizontal azimuth angle.

[0595] In some embodiments, the third geometric parameter is distance.

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

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

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

[0599] Based on the composition of the above-mentioned decoder 2800 and the computer-readable storage medium, refer to Figure 29, which shows a specific hardware structure diagram of the encoder 2800 provided in an embodiment of the present application. As shown in Figure 29, the encoder 2900 may include: a communication interface 2910, a memory 2920 and a processor 2930; each component is coupled together through a bus system 2940. It can be understood that the bus system 2940 is used to realize the connection and communication between these components. In addition to the data bus, the bus system 2940 also includes a power bus, a control bus and a status signal bus. However, for the sake of clarity, various buses are labeled as bus systems 2940 in Figure 29. Among them,

[0600] Communication interface 2910, used for sending and receiving signals when sending and receiving information with other external network elements;

[0601] Memory 2920, for storing computer programs;

[0602] The processor 2930 is configured to, when running the computer program, execute:

[0603] Decode the code stream and determine the index information of the current node in the current frame;

[0604] Determine, based on the index information, a predicted node from at least one reference frame of the current frame; wherein the at least one reference frame includes a first reference frame, and geometric parameters of nodes in the first reference frame are determined based on geometric parameters of nodes in multiple frames;

[0605] According to the predicted node, a geometric prediction value of the current node is determined.

[0606] It is understood that the memory 2920 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 memory 2920 of the systems and methods described herein is intended to include, but is not limited to, these and any other suitable types of memory.

[0607] The processor 2930 may be an integrated circuit chip with signal processing capabilities. During implementation, each step of the above method can be completed by hardware integrated logic circuits in the processor 2930 or by software instructions. The above-mentioned processor 2930 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 memory 2920, and the processor 2930 reads the information in the memory 2920 and completes the steps of the above method in combination with its hardware.

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

[0609] Optionally, as another embodiment, the processor 2930 is further configured to execute the decoding method described in any one of the aforementioned embodiments when running the computer program.

[0610] This embodiment provides a decoder that is optimized for inter-frame prediction, expands the types of reference frames available for inter-frame prediction, improves the accuracy of inter-frame prediction, and thus improves the encoding and decoding performance of point cloud geometric information.

[0611] FIG30 is a schematic diagram of the structure of an encoder provided by an embodiment of the present application. As shown in FIG30 , the encoder 3000 may include a determination unit 3010 and a prediction unit 3020 .

[0612] The determination unit 3010 is configured to determine a previous encoded node of a current node in a current frame; determine a candidate node in at least one reference frame of the current frame based on the previous encoded node; wherein the at least one reference frame includes a first reference frame, and the geometric parameters of the node in the first reference frame are determined based on the node geometric parameters in multiple frames; and determine a set of inter-frame candidate nodes based on the candidate nodes in the at least one reference frame.

[0613] The prediction unit 3020 is configured to determine a geometric prediction value of the current node based on the inter-frame candidate node set.

[0614] In some embodiments, the determining unit 3010 is configured to determine a previous encoded node of the current node based on a coding order of a prediction tree corresponding to the current frame.

[0615] In some embodiments, the plurality of frames includes: a previous frame of the current frame; and a previous frame of the previous frame.

[0616] In some embodiments, the plurality of frames include: a K-th frame before the current frame, where K is an integer greater than 0; and an M-th frame after the current frame, where M is an integer greater than 0.

[0617] In some embodiments, the multiple frames include a first frame and a second frame, the first frame includes a first node, the second frame includes a second node, and the geometric parameters of the first node and the second node meet a first condition, the first reference frame includes a third node, and the geometric parameters of the third node are determined based on the geometric parameters of the first node and the second node.

[0618] In some embodiments, the first condition is associated with at least one of: radar laser index numbers of the first node and the second node; horizontal azimuth angles of the first node and the second node; and a distance between the first node and the second node.

[0619] In some embodiments, the geometric parameters between the first node and the second node satisfy a first condition, including: the radar laser index number of the first node is the same as the radar laser index number of the second node; and the horizontal azimuth angle of the first node is the same as the horizontal azimuth angle of the second node.

[0620] In some embodiments, the geometric parameters between the first node and the second node satisfy a first condition, including: the radar laser index number of the first node is the same as the radar laser index number of the second node; and the horizontal azimuth angle of the first node is greater than and closest to the horizontal azimuth angle of the second node.

[0621] In some embodiments, the geometric parameters between the first node and the second node satisfy a first condition, including: the radar laser index number of the first node is the same as the radar laser index number of the second node; and the horizontal azimuth angle of the first node is less than and closest to the horizontal azimuth angle of the second node.

[0622] In some embodiments, the geometric parameters between the first node and the second node satisfy a first condition, including at least one of the following: the Euclidean distance between the first node and the second node is the shortest; the Manhattan distance between the first node and the second node is the shortest; the Morton distance between the first node and the second node is the shortest; and the Hilbert distance between the first node and the second node is the shortest.

[0623] In some embodiments, the at least one reference frame includes a forward reference frame of the current frame and a backward reference frame of the current frame.

[0624] In some embodiments, the determination unit 3010 is further configured to determine the value of the first identification information; if the value of the first identification information indicates that the current node uses a bidirectional inter-frame prediction mode, the step of determining the previous encoded node of the current node in the current frame is executed.

[0625] In some embodiments, the determination unit 3010 is further configured to determine that if the value of the first identification information is a first value, then the first identification information indicates that the current node does not use the bidirectional inter-frame prediction mode; if the value of the first identification information is a second value, then the first identification information indicates that the current node uses the bidirectional inter-frame prediction mode.

[0626] In some embodiments, the encoder 3000 further includes an encoding unit 3030. The encoding unit 3030 is configured to encode the value of the first identification information and write the obtained encoded bits into the bitstream.

[0627] In some embodiments, the current frame belongs to a group of frames in N groups of frames, and each group of frames in the N groups of frames corresponds to a key frame, where N is an integer greater than 0.

[0628] In some embodiments, the determination unit 3010 is further configured to determine a first parameter, where the first parameter is used to indicate the interval between a key frame corresponding to a group of frames and the first forward predicted frame in the group of frames, or the first parameter can be used to indicate the interval between two adjacent forward predicted frames in a group of frames; the encoding unit 3030 is further configured to encode the first parameter and write the obtained encoded bits into the bitstream.

[0629] In some embodiments, the determination unit 3010 is configured to determine a first candidate node in the first reference frame whose geometric parameters with the previous encoded node meet the second condition; and determine at least one second candidate node in the first reference frame based on the first candidate node.

[0630] In some embodiments, the geometric parameters of the previous encoded node and the first candidate node satisfy the second condition, including: the radar laser index number of the previous encoded node is the same as the radar laser index number of the first candidate node; and the horizontal azimuth angle of the previous encoded node is the same as the horizontal azimuth angle of the first candidate node.

[0631] In some embodiments, the geometric parameters of the previous encoded node and the first candidate node satisfy the second condition, including: the radar laser index number of the previous encoded node is the same as the radar laser index number of the first candidate node; and the horizontal azimuth angle of the previous encoded node is greater than and closest to the horizontal azimuth angle of the first candidate node.

[0632] In some embodiments, the geometric parameters of the previous encoded node and the first candidate node satisfy the second condition, including: the radar laser index number of the previous encoded node is the same as the radar laser index number of the first candidate node; and the horizontal azimuth angle of the previous encoded node is less than and closest to the horizontal azimuth angle of the first candidate node.

[0633] In some embodiments, determining a geometric prediction value of a current node based on an inter-frame candidate node set includes: determining a prediction node from the inter-frame candidate node set; and determining a geometric prediction value of the current node based on the prediction node.

[0634] In some embodiments, the determination unit 3010 is further configured to perform cost calculation on at least one candidate node in the inter-frame candidate node set based on a rate-distortion cost method to determine the cost value of at least one candidate node; determine the minimum cost value from the cost values ​​of at least one candidate node, and use the candidate node corresponding to the minimum cost value as the predicted node.

[0635] In some embodiments, the determination unit 3010 is further configured to determine the index information of the current node; wherein the index information is used to indicate the index position of the predicted node in the inter-frame candidate node set; the encoding unit 3030 is further configured to encode the index information of the current node and write the obtained encoding bits into the bitstream.

[0636] In some embodiments, the determination unit 3010 is further configured to determine the geometric prediction residual value of the current node based on the geometric prediction value of the current node; the encoding unit 3030 is further configured to encode the geometric prediction residual value of the current node and write the obtained encoding bits into the bitstream.

[0637] In some embodiments, the determination unit 3010 is further configured to determine an initial residual value of the current node based on the geometric prediction value of the current node; quantize the initial residual value of the current node based on a quantization parameter to determine the geometric prediction residual value of the current node.

[0638] In some embodiments, the determination unit 3010 is further configured to determine the original value of the current node; and determine the initial residual value of the current node by performing a subtraction operation on the original value of the current node and the geometric prediction value of the current node.

[0639] In some embodiments, the encoding unit 3030 is further configured to encode the quantization parameter and write the obtained encoded bits into the bitstream.

[0640] In some embodiments, the determination unit 3010 is further configured to determine the value of the second identification information; if the value of the second identification information indicates that the current node uses the inter-frame prediction mode, the step of determining the previous encoded node of the current node in the current frame is executed.

[0641] In some embodiments, the determination unit 3010 is further configured to determine that if the value of the second identification information is a third value, then the second identification information indicates that the current node does not use the inter-frame prediction mode; if the value of the second identification information is a fourth value, then the second identification information indicates that the current node uses the inter-frame prediction mode.

[0642] In some embodiments, the encoding unit 3030 is further configured to encode the value of the second identification information and write the obtained encoded bits into the bitstream.

[0643] In some embodiments, the determination unit 3010 is further configured to determine the value of the third identification information; if the value of the third identification information indicates that the current node enables the inter-frame prediction mode based on the fused frame, the step of determining the previous encoded node of the current node in the current frame is executed.

[0644] In some embodiments, the determination unit 3010 is further configured to determine that if the value of the third identification information is the fifth value, then the third identification information indicates that the current node does not enable the inter-frame prediction mode based on the fused frame; if the value of the third identification information is the sixth value, then the third identification information indicates that the current node enables the inter-frame prediction mode based on the fused frame.

[0645] In some embodiments, the encoding unit 3030 is further configured to encode the value of the third identification information and write the obtained encoded bits into the bitstream.

[0646] In some embodiments, the first geometric parameter is a radar laser index number.

[0647] In some embodiments, the second geometric parameter is a horizontal azimuth angle.

[0648] In some embodiments, the third geometric parameter is distance.

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

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

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

[0652] Based on the composition of the above-mentioned encoder 3000 and the computer-readable storage medium, refer to Figure 31, which shows a specific hardware structure diagram of the encoder 3000 provided in an embodiment of the present application. As shown in Figure 31, the encoder 3100 may include: a communication interface 3110, a memory 3120 and a processor 3130; each component is coupled together through a bus system 3140. It can be understood that the bus system 3140 is used to realize the connection and communication between these components. In addition to the data bus, the bus system 3140 also includes a power bus, a control bus and a status signal bus. However, for the sake of clarity, various buses are labeled as bus system 3140 in Figure 31. Among them,

[0653] Communication interface 3110, used for sending and receiving signals during the process of sending and receiving information with other external network elements;

[0654] Memory 3120, for storing computer programs;

[0655] The processor 3130 is configured to, when running the computer program, execute:

[0656] Determine the previous encoded node of the current node in the current frame;

[0657] Determine, based on the previously encoded node, a candidate node in at least one reference frame of the current frame; wherein the at least one reference frame includes a first reference frame, and geometric parameters of the node in the first reference frame are determined based on geometric parameters of nodes in multiple frames;

[0658] Determining an inter-frame candidate node set based on the candidate nodes in the at least one reference frame;

[0659] Determine a geometric prediction value of the current node based on the inter-frame candidate node set.

[0660] It is understood that the memory 3120 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 memory 3120 of the systems and methods described herein is intended to include, but is not limited to, these and any other suitable types of memory.

[0661] The processor 3130 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 processor 3130. The above-mentioned processor 3130 can 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 memory 3120, and the processor 3130 reads the information in the memory 3120 and completes the steps of the above method in combination with its hardware.

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

[0663] Optionally, as another embodiment, the processor 3130 is further configured to execute the encoding method described in any one of the aforementioned embodiments when running the computer program.

[0664] This embodiment provides an encoder that optimizes candidate nodes for inter-frame prediction, expands the types of reference frames available for inter-frame prediction, improves the accuracy of inter-frame prediction, and thus improves the encoding and decoding performance of point cloud geometric information.

[0665] FIG32 is a schematic diagram of the structure of a coding and decoding system provided in an embodiment of the present application. As shown in FIG32 , a coding and decoding system 3200 may include an encoder 3210 and a decoder 3220 .

[0666] In the embodiment of the present application, the encoder 3210 may be the encoder described in any one of the aforementioned embodiments, and the decoder 3220 may be the decoder described in any one of the aforementioned embodiments.

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

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

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

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

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

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

[0673] In an embodiment of the present application, at the encoding end, the previous encoded node of the current node in the current frame is first determined; then, based on the previous encoded node, a candidate node is determined in at least one reference frame of the current frame; wherein the at least one reference frame includes a first reference frame, and the geometric parameters of the node in the first reference frame are determined based on the node geometric parameters in multiple frames; then, based on the candidate nodes in the at least one reference frame, a set of inter-frame candidate nodes is determined; finally, based on the inter-frame candidate node set, a geometric prediction value of the current node is determined. At the decoding end, the code stream is first decoded to determine the index information of the current node in the current frame; then, based on the index information, a predicted node is determined from at least one reference frame of the current frame; wherein the at least one reference frame includes a first reference frame, and the geometric parameters of the node in the first reference frame are determined based on the node geometric parameters in multiple frames; then, based on the predicted node, a geometric prediction value of the current node is determined. The embodiments of the present application are mainly aimed at optimizing candidate nodes for inter-frame prediction. Compared with related technologies, the embodiments of the present application expand the types of reference frames available for inter-frame prediction, improve the accuracy of inter-frame prediction, and thus improve the encoding and decoding performance of point cloud geometric information.

Claims

1. A decoding method, applied to a decoder, the method comprising: Decode the code stream and determine the index information of the current node in the current frame; Determine, according to the index information, a prediction node from at least one reference frame of the current frame; wherein the at least one reference frame includes a first reference frame, and geometric parameters of nodes in the first reference frame are determined based on geometric parameters of nodes in a plurality of frames; According to the prediction node, a geometric prediction value of the current node is determined.

2. The method according to claim 1, wherein: The plurality of frames include: a frame preceding the current frame; and The previous frame of the previous frame.

3. The method according to claim 1, wherein: The plurality of frames include: the Kth frame before the current frame, where K is an integer greater than 0; and The Mth frame after the current frame, where M is an integer greater than 0.

4. The method according to any one of claims 1 to 3, wherein: The multiple frames include a first frame and a second frame, the first frame includes a first node, the second frame includes a second node, and geometric parameters of the first node and the second node satisfy a first condition, and the first reference frame includes a third node, and the geometric parameters of the third node are determined based on the geometric parameters of the first node and the second node.

5. The method according to claim 4, wherein: The first condition is associated with at least one of the following: first geometric parameters of the first node and the second node; second geometric parameters of the first node and the second node; and A third geometric parameter of the first node and the second node.

6. The method according to claim 5, wherein: The geometric parameters between the first node and the second node satisfy the first condition, including: A first geometric parameter of the first node is the same as a first geometric parameter of the second node; and The second geometric parameter of the first node is the same as the second geometric parameter of the second node.

7. The method according to claim 5, wherein: The geometric parameters between the first node and the second node satisfy the first condition, including: A first geometric parameter of the first node is the same as a first geometric parameter of the second node; and The second geometric parameter of the first node is greater than and closest to the second geometric parameter of the second node.

8. The method according to claim 5, wherein: The geometric parameters between the first node and the second node satisfy the first condition, including: A first geometric parameter of the first node is the same as a first geometric parameter of the second node; and The second geometric parameter of the first node is smaller than and closest to the second geometric parameter of the second node.

9. The method according to claim 5, wherein: The geometric parameters between the first node and the second node satisfy the first condition, including at least one of the following: The Euclidean distance between the first node and the second node is the shortest; The Manhattan distance between the first node and the second node is the shortest; The Morton distance between the first node and the second node is the shortest; as well as The Hilbert distance between the first node and the second node is the shortest.

10. The method according to any one of claims 1 to 9, wherein: The at least one reference frame includes a forward reference frame of the current frame and / or a backward reference frame of the current frame.

11. The method according to claim 10, wherein: The method further comprises: Decoding the code stream to determine the value of the first identification information; If the value of the first identification information indicates that the current node uses a bidirectional inter-frame prediction mode, the step of decoding the code stream and determining the index information of the current node in the current frame is performed.

12. The method according to claim 11, wherein: The method further comprises: If the value of the first identification information is the first value, determining that the first identification information indicates that the current node does not use the bidirectional inter-frame prediction mode; If the value of the first identification information is the second value, it is determined that the first identification information indicates that the current node uses a bidirectional inter-frame prediction mode.

13. The method according to any one of claims 1 to 12, wherein: The current frame belongs to a group of frames in N groups of frames, and each group of frames in the N groups of frames corresponds to a key frame, and N is an integer greater than 0.

14. The method according to claim 13, wherein: The method further comprises: Decoding a bitstream, determining a first parameter, where the first parameter is used to indicate an interval between a key frame corresponding to the group of frames and a first forward predicted frame in the group of frames; or, the first parameter is used to indicate an interval between two adjacent forward predicted frames in the group of frames; The set of frames is decoded according to the first parameter.

15. The method according to any one of claims 1 to 14, wherein: If the prediction node indicated by the index information is located in the first reference frame, determining the prediction node from at least one reference frame of the current frame according to the index information includes: Determine a decoded node before the current node; Determine a first candidate node from the first reference frame according to the previously decoded node; wherein geometric parameters of the previously decoded node and the first candidate node satisfy a second condition; The predicted node is determined according to the first candidate node.

16. The method according to claim 15, wherein: The geometric parameters of the previous decoded node and the first candidate node satisfy a second condition, including: The first geometric parameter of the previously decoded node is the same as the first geometric parameter of the first candidate node; and The second geometric parameter of the previously decoded node is the same as the second geometric parameter of the first candidate node.

17. The method according to claim 15, wherein: The geometric parameters of the previous decoded node and the first candidate node satisfy a second condition, including: The first geometric parameter of the previously decoded node is the same as the first geometric parameter of the first candidate node; and The second geometric parameter of the previously decoded node is greater than and closest to the second geometric parameter of the first candidate node.

18. The method according to claim 15, wherein: The geometric parameters of the previous decoded node and the first candidate node satisfy a second condition, including: The first geometric parameter of the previously decoded node is the same as the first geometric parameter of the first candidate node; and The second geometric parameter of the previously decoded node is smaller than and closest to the second geometric parameter of the first candidate node.

19. The method according to any one of claims 15 to 18, wherein: The determining a decoded node before the current node comprises: According to the decoding order of the prediction tree corresponding to the current frame, a previous decoded node of the current node is determined.

20. The method according to any one of claims 1 to 19, wherein: The method further comprises: Decoding the bitstream to determine the geometric prediction residual value and quantization parameter of the current node; Performing inverse quantization processing on the geometric prediction residual value according to the quantization parameter to obtain an inverse quantized residual value; The geometric reconstruction information of the current node is determined according to the inverse quantization residual value and the geometric prediction value.

21. The method according to any one of claims 1 to 20, wherein: The method further comprises: Decoding the code stream to determine the value of the second identification information; If the value of the second identification information indicates that the current node uses the inter-frame prediction mode, the step of decoding the code stream and determining the index information of the current node in the current frame is executed.

22. The method according to claim 21, wherein: The method further comprises: If the value of the second identification information is the third value, determining that the second identification information indicates that the current node does not use the inter-frame prediction mode; If the value of the second identification information is the fourth value, it is determined that the second identification information indicates that the current node uses the inter-frame prediction mode.

23. The method according to any one of claims 1 to 22, wherein: The method further comprises: Decoding the code stream to determine the value of the third identification information; If the value of the third identification information indicates that the current node enables the inter-frame prediction mode based on the fused frame, the decoding bit stream is executed to determine the index information of the current node in the current frame.

24. The method according to claim 23, wherein: The method further comprises: If the value of the third identification information is the fifth value, it is determined that the third identification information indicates that the current node does not enable the inter-frame prediction mode based on the fused frame; If the value of the third identification information is the sixth value, it is determined that the third identification information indicates that the current node enables the inter-frame prediction mode based on the fused frame.

25. The method according to any one of claims 5 to 9 and 16 to 18, wherein: The first geometric parameter is a radar laser index number.

26. The method according to any one of claims 5 to 9 and 16 to 18, wherein: The second geometric parameter is a horizontal azimuth angle.

27. The method according to any one of claims 5 to 9, wherein: The third geometric parameter is distance.

28. A coding method, applied to an encoder, the method comprising: Determine the previous encoded node of the current node in the current frame; Determine a candidate node in at least one reference frame of the current frame according to the previously encoded node; wherein the at least one reference frame includes a first reference frame, and the geometric parameters of the node in the first reference frame are determined based on the geometric parameters of the nodes in multiple frames; Determine an inter-frame candidate node set according to the candidate nodes in the at least one reference frame; Determine a geometric prediction value of the current node based on the inter-frame candidate node set.

29. The method according to claim 28, wherein: The step of determining a previously encoded node of a current node in a current frame comprises: Based on the coding order of the prediction tree corresponding to the current frame, a previous coded node of the current node is determined.

30. The method of claim 28, wherein: The plurality of frames include: a frame preceding the current frame; and The previous frame of the previous frame.

31. The method of claim 28, wherein: The plurality of frames include: the Kth frame before the current frame, where K is an integer greater than 0; and The Mth frame after the current frame, where M is an integer greater than 0.

32. The method according to any one of claims 28 to 31, wherein: The multiple frames include a first frame and a second frame, the first frame includes a first node, the second frame includes a second node, and geometric parameters of the first node and the second node satisfy a first condition, and the first reference frame includes a third node, and the geometric parameters of the third node are determined based on the geometric parameters of the first node and the second node.

33. The method of claim 32, wherein: The first condition is associated with at least one of the following: first geometric parameters of the first node and the second node; second geometric parameters of the first node and the second node; and A third geometric parameter of the first node and the second node.

34. The method of claim 33, wherein: The geometric parameters between the first node and the second node satisfy the first condition, including: A first geometric parameter of the first node is the same as a first geometric parameter of the second node; and The second geometric parameter of the first node is the same as the second geometric parameter of the second node.

35. The method of claim 33, wherein: The geometric parameters between the first node and the second node satisfy the first condition, including: A first geometric parameter of the first node is the same as a first geometric parameter of the second node; and The second geometric parameter of the first node is greater than and closest to the second geometric parameter of the second node.

36. The method of claim 33, wherein: The geometric parameters between the first node and the second node satisfy the first condition, including: A first geometric parameter of the first node is the same as a first geometric parameter of the second node; and The second geometric parameter of the first node is smaller than and closest to the second geometric parameter of the second node.

37. The method of claim 33, wherein: The geometric parameters between the first node and the second node satisfy the first condition, including at least one of the following: The Euclidean distance between the first node and the second node is the shortest; The Manhattan distance between the first node and the second node is the shortest; The Morton distance between the first node and the second node is the shortest; as well as The Hilbert distance between the first node and the second node is the shortest.

38. The method according to any one of claims 28 to 37, wherein: The at least one reference frame includes a forward reference frame of the current frame and / or a backward reference frame of the current frame.

39. The method of claim 38, wherein: The method further comprises: Determine a value of the first identification information; If the value of the first identification information indicates that the current node uses a bidirectional inter-frame prediction mode, the step of determining a previously encoded node of the current node in the current frame is performed.

40. The method of claim 39, wherein: The method further comprises: If the value of the first identification information is the first value, determining that the first identification information indicates that the current node does not use the bidirectional inter-frame prediction mode; If the value of the first identification information is the second value, it is determined that the first identification information indicates that the current node uses a bidirectional inter-frame prediction mode.

41. The method according to claim 39 or 40, wherein: The method further comprises: The value of the first identification information is encoded, and the obtained encoded bits are written into a bit stream.

42. The method according to any one of claims 28 to 41, wherein: The current frame belongs to a group of frames in N groups of frames, and each group of frames in the N groups of frames corresponds to a key frame, and N is an integer greater than 0.

43. The method of claim 42, wherein: The method further comprises: Determine a first parameter, where the first parameter is used to indicate an interval between a key frame corresponding to the group of frames and a first forward predicted frame in the group of frames; or, the first parameter is used to indicate an interval between two adjacent forward predicted frames in the group of frames; The first parameter is encoded, and the obtained encoded bits are written into a bit stream.

44. A method according to any one of claims 28 to 43, wherein: The determining of a candidate node in at least one reference frame of the current frame according to the previously encoded node comprises: Determine a first candidate node in the first reference frame whose geometric parameters satisfy a second condition with respect to the previously encoded node; At least one second candidate node is determined in the first reference frame according to the first candidate node.

45. The method of claim 44, wherein: The geometric parameters of the previous encoded node and the first candidate node satisfy a second condition, including: The first geometric parameter of the previously encoded node is the same as the first geometric parameter of the first candidate node; and The second geometric parameter of the previously encoded node is the same as the second geometric parameter of the first candidate node.

46. ​​The method of claim 44, wherein: The geometric parameters of the previous encoded node and the first candidate node satisfy a second condition, including: The first geometric parameter of the previously encoded node is the same as the first geometric parameter of the first candidate node; and The second geometric parameter of the previously encoded node is greater than and closest to the second geometric parameter of the first candidate node.

47. The method of claim 44, wherein: The geometric parameters of the previous encoded node and the first candidate node satisfy a second condition, including: The first geometric parameter of the previously encoded node is the same as the first geometric parameter of the first candidate node; and The second geometric parameter of the previously encoded node is smaller than and closest to the second geometric parameter of the first candidate node.

48. The method according to any one of claims 28 to 47, wherein: The step of determining the geometric prediction value of the current node according to the inter-frame candidate node set includes: Determine a prediction node from the inter-frame candidate node set; According to the prediction node, a geometric prediction value of the current node is determined.

49. The method of claim 48, wherein: The determining a prediction node from the inter-frame candidate node set includes: Performing cost calculation on at least one candidate node in the inter-frame candidate node set based on a rate-distortion cost method to determine a cost value of each of the at least one candidate node; A minimum cost value is determined from the cost values ​​of the at least one candidate node, and the candidate node corresponding to the minimum cost value is used as the predicted node.

50. The method of claim 48 or 49, wherein: The method further comprises: Determine the index information of the current node; wherein the index information is used to indicate the index position of the predicted node in the inter-frame candidate node set; The index information of the current node is encoded, and the obtained encoding bits are written into a bit stream.

51. A method according to any one of claims 28 to 50, wherein: The method further comprises: Determining a geometric prediction residual value of the current node according to the geometric prediction value of the current node; The geometric prediction residual value of the current node is encoded, and the obtained encoding bits are written into the bit stream.

52. The method of claim 51, wherein: The step of determining the geometric prediction residual value of the current node according to the geometric prediction value of the current node includes: Determining an initial residual value of the current node according to the geometric prediction value of the current node; The initial residual value of the current node is quantized according to the quantization parameter to determine the geometric prediction residual value of the current node.

53. The method of claim 52, wherein: Determining the initial residual value of the current node according to the geometric prediction value of the current node includes: Determining the original value of the current node; An initial residual value of the current node is determined by performing a subtraction operation on the original value of the current node and the geometric prediction value of the current node.

54. The method of claim 52 or 53, wherein: The method further comprises: The quantization parameter is encoded, and the obtained encoded bits are written into a bit stream.

55. The method according to any one of claims 28 to 54, wherein: The method further comprises: Determine a value of the second identification information; If the value of the second identification information indicates that the current node uses the inter-frame prediction mode, the step of determining the previous encoded node of the current node in the current frame is performed.

56. The method of claim 55, wherein: The method further comprises: If the value of the second identification information is the third value, determining that the second identification information indicates that the current node does not use the inter-frame prediction mode; If the value of the second identification information is the fourth value, it is determined that the second identification information indicates that the current node uses the inter-frame prediction mode.

57. The method of claim 55 or 56, wherein: The method further comprises: The value of the second identification information is encoded, and the obtained encoded bits are written into a bit stream.

58. The method according to any one of claims 28 to 57, wherein: The method further comprises: Determine a value of the third identification information; If the value of the third identification information indicates that the current node enables the inter-frame prediction mode based on the fused frame, the step of determining the previous encoded node of the current node in the current frame is performed.

59. The method of claim 58, wherein: The method further comprises: If the value of the third identification information is the fifth value, it is determined that the third identification information indicates that the current node does not enable the inter-frame prediction mode based on the fused frame; If the value of the third identification information is the sixth value, it is determined that the third identification information indicates that the current node enables the inter-frame prediction mode based on the fused frame.

60. The method of claim 58 or 59, wherein: The method further comprises: The value of the third identification information is encoded, and the obtained encoded bits are written into the bit stream.

61. The method according to any one of claims 33 to 37 and 45 to 47, wherein: The first geometric parameter is a radar laser index number.

62. The method according to any one of claims 33 to 37 and 45 to 47, wherein: The second geometric parameter is a horizontal azimuth angle.

63. The method according to any one of claims 33 to 37, wherein: The third geometric parameter is distance.

64. 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: The geometric prediction residual value, quantization parameter, index information, value of the first identification information, value of the second identification information, value of the third identification information and the first parameter of the current node; Among them, the first identification information is used to indicate whether the current node uses a bidirectional inter-frame prediction mode, the second identification information is used to indicate whether the current node uses an inter-frame prediction mode, the third identification information is used to indicate whether the current node enables an inter-frame prediction mode based on a fused frame, the first parameter is used to indicate an interval between a key frame corresponding to a group of frames and the first forward prediction frame in the group of frames, or the first parameter is used to indicate an interval between two adjacent forward prediction frames in the group of frames, and the group of frames is a group of frames in which the current frame is located.

65. A decoder, the decoder comprising: A decoding unit configured to decode the code stream and determine index information of a current node in a current frame; A determination unit, configured to determine a prediction node from at least one reference frame of the current frame according to the index information; wherein the at least one reference frame includes a first reference frame, and the geometric parameters of the nodes in the first reference frame are determined based on the geometric parameters of the nodes in the plurality of frames; The prediction unit is configured to determine a geometric prediction value of the current node based on the prediction node.

66. A decoder, the decoder comprising: Memory for storing computer programs; A processor, configured to execute the method according to any one of claims 1 to 27 when running the computer program.

67. An encoder, comprising: A determination unit configured to determine a previously encoded node of a current node in a current frame; Determine a candidate node in at least one reference frame of the current frame according to the previously encoded node; wherein the at least one reference frame includes a first reference frame, and the geometric parameters of the nodes in the first reference frame are determined based on the geometric parameters of the nodes in a plurality of frames; and determine an inter-frame candidate node set according to the candidate nodes in the at least one reference frame; The prediction unit is configured to determine a geometric prediction value of the current node based on the inter-frame candidate node set.

68. An encoder, comprising: Memory for storing computer programs; A processor for executing the method according to any one of claims 28 to 63 when running the computer program.

69. 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 27 is implemented, or the method according to any one of claims 28 to 63 is implemented.

Citation Information

Patent Citations

  • Registration-based improved V-PCC inter-frame prediction method and system

    CN113573068A

  • Point cloud fusion three-dimensional reconstruction method and system based on multivariate confidence coefficient filtering

    CN115375836A

  • Inter prediction coding for geometry point cloud compression

    US20220207780A1

  • Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, point cloud data reception method

    WO2020256244A1

  • Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device

    WO2022163805A1