Encoding method, decoding method, encoder, decoder, and storage medium
By constructing a virtual reference point cloud that is consistent with the current point cloud geometry, the problem of cumbersome inter-frame prediction judgment in RAHT transform is solved, and the encoding and decoding performance and efficiency are improved.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP LTD
- Filing Date
- 2025-01-17
- Publication Date
- 2026-07-23
AI Technical Summary
In the existing G-PCC encoding and decoding framework, the inter-frame prediction technique in the RAHT transform requires cumbersome judgment conditions, which leads to a decrease in encoding and decoding performance.
When inter-frame prediction is enabled for the current point cloud, a virtual reference point cloud with the same geometric information as the current point cloud is constructed based on the reconstructed reference point cloud for inter-frame prediction, avoiding cumbersome position determination.
It improves the encoding and decoding performance of RAHT transform, reduces complexity, and makes full use of the attribute information of the reference point cloud.
Smart Images

Figure CN2025073087_23072026_PF_FP_ABST
Abstract
Description
Encoding / decoding methods, encoders, decoders, and storage media Technical Field
[0001] This application relates to the field of point cloud encoding and decoding technology, and in particular to an encoding and decoding method, encoder, decoder and storage medium. Background Technology
[0002] In the Geometry-based Point Cloud Compression (G-PCC) encoding and decoding framework, the geometric information and attribute information of the point cloud are encoded separately. Specifically, G-PCC attribute encoding can include: Predicting Transform (PT), Lifting Transform (LT), and Region Adaptive Hierarchical Transform (RAHT).
[0003] For inter-frame prediction in RAHT transform, each node to be predicted needs to determine whether its position is the same in the current point cloud octree and the reference point cloud octree. However, this judgment condition is cumbersome and imperfect, and may result in inter-frame prediction performance being worse than not performing inter-frame prediction at all, thus reducing encoding and decoding performance. Summary of the Invention
[0004] This application provides an encoding / decoding method, encoder, decoder, and storage medium that can fully utilize the attribute information of reference frames to improve the encoding / decoding performance of RAHT transform.
[0005] The technical solution of this application embodiment can be implemented as follows:
[0006] In a first aspect, embodiments of this application provide a decoding method applied to a decoder, the method comprising:
[0007] When inter-frame prediction is enabled for the current point cloud, a second reference point cloud is determined based on the reconstructed first reference point cloud of the current point cloud, which maintains consistent geometric information with the current point cloud.
[0008] Based on the second reference point cloud, perform inter-frame prediction on the points in the current point cloud.
[0009] Secondly, embodiments of this application provide an encoding method applied to an encoder, the method comprising:
[0010] When inter-frame prediction is enabled for the current point cloud, a second reference point cloud is determined based on the reconstructed first reference point cloud of the current point cloud, which maintains consistent geometric information with the current point cloud.
[0011] Based on the second reference point cloud, perform inter-frame prediction on the points in the current point cloud.
[0012] Thirdly, embodiments of this application provide an encoder, which includes a first determining unit and a first predicting unit, wherein:
[0013] The first determining unit is configured to determine a second reference point cloud with consistent geometric information based on the reconstructed first reference point cloud of the current point cloud when inter-frame prediction is enabled in the current point cloud.
[0014] The first prediction unit is configured to perform inter-frame prediction of points in the current point cloud based on the second reference point cloud.
[0015] Fourthly, embodiments of this application provide an encoder, which includes a first memory and a first processor, wherein:
[0016] A first memory for storing computer programs that can run on a first processor;
[0017] A first processor is configured to execute the encoding method as described in the second aspect when running a computer program.
[0018] Fifthly, embodiments of this application provide a decoder, which includes a second determining unit and a second predicting unit, wherein:
[0019] The second determining unit is configured to determine a second reference point cloud whose geometric information is consistent with that of the current point cloud based on the reconstructed first reference point cloud of the current point cloud when inter-frame prediction is enabled in the current point cloud.
[0020] The second prediction unit is configured to perform inter-frame prediction of points in the current point cloud based on the second reference point cloud.
[0021] Sixthly, embodiments of this application provide a decoder, which includes a second memory and a second processor, wherein:
[0022] The second memory is used to store computer programs that can run on the second processor;
[0023] The second processor is used to execute the decoding method as described in the first aspect when running a computer program.
[0024] In a seventh aspect, embodiments of this application provide a computer-readable storage medium having a computer program stored thereon, which, when executed by a processor, implements the decoding method as described in the first aspect or the encoding method as described in the second aspect.
[0025] Eighthly, embodiments of this application provide a computer-readable storage medium having a bitstream stored thereon, the bitstream being generated by performing the steps of the encoding method as described in the second aspect.
[0026] In a ninth aspect, embodiments of this application provide a computer program product, including a computer program or instructions, which, when executed by a processor, implement the decoding method as described in the first aspect or the encoding method as described in the second aspect.
[0027] This application provides an encoding / decoding method, encoder, decoder, and storage medium. Whether at the encoding or decoding end, when inter-frame prediction is enabled for the current point cloud, a second reference point cloud with consistent geometric information is determined based on the reconstructed first reference point cloud of the current point cloud. Then, based on the second reference point cloud, inter-frame prediction is performed on the points in the current point cloud. In this way, by constructing a second reference point cloud (i.e., a virtual reference point cloud) with consistent geometric information with the current point cloud, it can be guaranteed that for each target node in the current point cloud, there must exist a corresponding virtual reference node. This avoids the trouble of performing inter-frame prediction judgments on target nodes, reducing complexity. Simultaneously, it can fully utilize the attribute information of the reference point cloud, thereby improving the encoding / decoding performance of the RAHT transform. Attached Figure Description
[0028] Figure 1A is a schematic diagram of a three-dimensional point cloud image;
[0029] Figure 1B is a magnified view of a portion of the 3D point cloud image;
[0030] Figure 2A is a schematic diagram of six viewing angles of a point cloud image;
[0031] Figure 2B is a schematic diagram of the data storage format corresponding to the point cloud image;
[0032] Figure 3 is a schematic diagram of the network architecture for point cloud encoding and decoding;
[0033] Figure 4 is a schematic diagram of the component framework of the G-PCC encoder;
[0034] Figure 5 is a schematic diagram of the component framework of the G-PCC decoder;
[0035] Figure 6 is a schematic diagram of the RAHT encoding process;
[0036] Figure 7 is a schematic diagram of the RAHT decoding process;
[0037] Figure 8 is a schematic diagram of the two-point transformation of RAHT;
[0038] Figure 9 is a schematic diagram of the RAHT transformation process;
[0039] Figure 10 is a schematic diagram of the upsampling prediction positive transformation process of RAHT;
[0040] Figure 11 is a schematic diagram of the inverse transformation process of RAHT;
[0041] Figure 12 is a schematic diagram of the inter-frame prediction process of RAHT;
[0042] Figure 13 is a flowchart of the dual motion compensation method in GES-TM;
[0043] Figure 14 is a schematic diagram of the inter-frame prediction judgment conditions of RAHT;
[0044] Figure 15 is a schematic flowchart of a decoding method provided in an embodiment of this application;
[0045] Figure 16 is a schematic flowchart of a decoding method provided in an embodiment of this application;
[0046] Figure 17 is a flowchart illustrating an encoding method provided in an embodiment of this application;
[0047] Figure 18 is a schematic diagram of the construction of a virtual reference point cloud provided in an embodiment of this application;
[0048] Figure 19 is a schematic diagram of the construction process of a virtual reference point cloud provided in an embodiment of this application;
[0049] Figure 20 is a schematic diagram of the composition structure of an encoder provided in an embodiment of this application;
[0050] Figure 21 is a schematic diagram of the hardware structure of an encoder provided in an embodiment of this application;
[0051] Figure 22 is a schematic diagram of the composition structure of a decoder provided in an embodiment of this application;
[0052] Figure 23 is a schematic diagram of the hardware structure of a decoder provided in an embodiment of this application;
[0053] Figure 24 is a schematic diagram of the composition structure of an encoding and decoding system provided in an embodiment of this application. Detailed Implementation
[0054] In order to gain a more detailed understanding of the features and technical content of the embodiments of this application, the implementation of the embodiments of this application will be described in detail below with reference to the accompanying drawings. The accompanying drawings are for reference and illustration only and are not intended to limit the embodiments of this application.
[0055] Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this application belongs. The terminology used herein is for the purpose of describing embodiments of this application only and is not intended to limit this application.
[0056] In the following description, references are made to “some embodiments,” which describe a subset of all possible embodiments. However, it is 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.
[0057] It should also be noted that the terms "first, second, and third" used in the embodiments of this application are only used to distinguish similar objects and do not represent a specific order of objects. It is understood that "first, second, and third" can be interchanged in a specific order or sequence where permitted, so that the embodiments of this application described herein can be implemented in an order other than that illustrated or described herein.
[0058] Before providing a further detailed description of the embodiments of this application, the nouns and terms used in the embodiments of this application will be explained. The nouns and terms used in the embodiments of this application shall be interpreted as follows:
[0059] Geometry-based point cloud compression (G-PCC / GPCC);
[0060] Video-based point cloud compression (V-PCC or VPCC);
[0061] Level of Detail (LOD);
[0062] Region Adaptive Hierarchical Transform (RAHT);
[0063] Alternating Current (AC) coefficient;
[0064] DC low-frequency coefficient;
[0065] Attribute Parameter Set (APS);
[0066] K-Nearest Neighbor (search method) (KNN);
[0067] Peak Signal-to-Noise Ratio (PSNR);
[0068] Rate-distortion optimization (RDO);
[0069] Rate-distortion optimization quantization (RDOQ);
[0070] Luminance component (Luma or Y);
[0071] Blue chromaticity component (Chroma blue, Cb);
[0072] The red chromaticity component (Cr).
[0073] Point cloud is a three-dimensional representation of an object's surface. Point cloud data of an object's surface can be collected using acquisition devices such as photoelectric radar, lidar, laser scanner, and multi-view camera.
[0074] A point cloud is a set of randomly distributed discrete points in space that represent 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 magnified view of a portion of the three-dimensional point cloud image. It can be seen that the surface of the point cloud is composed of densely distributed points. In a two-dimensional image, each pixel contains information and is regularly distributed, so there is no need to record its position information. However, the distribution of points in a point cloud in three-dimensional space is random and irregular. Therefore, it is necessary to record the position of each point in space to fully represent a point cloud. Similar to two-dimensional images, each location during acquisition has corresponding attribute information, usually RGB color values, reflecting the color of the object. For point clouds, in addition to color information, the most common attribute information for each point is reflectance, which reflects the surface material of the object. Therefore, point cloud data typically includes the position information and attribute information of the points. The position information of a point can also be called its geometric information. For example, the geometric information of a point can be its three-dimensional coordinates (x, y, z). The attribute information of a point can include color information and / or reflectance, etc. 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 information. Here, R represents red (Red, R), G represents green (Green, G), and B represents blue (Blue, B). Another example is luminance / chromaticity information (YCbCr, YUV). Here, Y represents luminance (Luma), Cb(U) represents blue chromaticity, and Cr(V) represents red chromaticity.
[0075] Point clouds obtained based on laser measurement principles can include the three-dimensional coordinates and reflectance values of the points. Similarly, point clouds obtained based on photogrammetry principles can include the three-dimensional coordinates and three-dimensional color information of the points. Furthermore, point clouds obtained by combining laser measurement and photogrammetry principles can include the three-dimensional coordinates, reflectance values, and three-dimensional color information of the points.
[0076] Figures 2A and 2B show a point cloud image and its corresponding data storage format. Figure 2A provides six viewing angles for the point cloud image, while Figure 2B consists of a header and a data section. The header information includes the data format, data representation type, 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 207242 points. Each point has three-dimensional coordinate information (x, y, z) and three-dimensional color information (r, g, b).
[0077] Point clouds can be classified according to the acquisition method as follows: (1) Static point cloud, that is, the object is stationary and the device for acquiring the point cloud is also stationary; (2) Dynamic point cloud, that is, the object is moving, but the device for acquiring the point cloud is stationary; (3) Dynamic acquisition point cloud, that is, the device for acquiring the point cloud is moving.
[0078] For example, point clouds can be divided into two main categories based on their uses:
[0079] Category 1: Machine-perceived 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;
[0080] Category 2: Human eye-perceived point clouds, which can be used in point cloud application scenarios such as digital cultural heritage, free-viewpoint broadcasting, 3D immersive communication, and 3D immersive interaction.
[0081] Point clouds can flexibly and conveniently express the spatial structure and surface properties of three-dimensional objects or scenes. Since point clouds are obtained by directly sampling real objects, they can provide a strong sense of realism while ensuring accuracy. Therefore, they are widely used, including virtual reality games, computer-aided design, geographic information systems, automatic navigation systems, digital cultural heritage, free-viewpoint broadcasting, three-dimensional immersive remote presentation, and three-dimensional reconstruction of biological tissues and organs.
[0082] Point cloud acquisition primarily utilizes the following methods: computer generation, 3D laser scanning, and 3D photogrammetry. Computers can generate point clouds of virtual 3D objects and scenes; 3D laser scanning can acquire point clouds of static real-world 3D objects or scenes, with a capacity of millions of point clouds per second; 3D photogrammetry can acquire point clouds of dynamic real-world 3D objects or scenes, with a capacity of tens of millions of point clouds per second. These technologies reduce the cost and time required for point cloud data acquisition and improve data accuracy. While the evolution of point cloud data acquisition methods has made acquiring massive amounts of point cloud data possible, the processing of such large volumes of 3D point cloud data is facing bottlenecks due to limitations in storage space and transmission bandwidth, driven by increasing application demands. For example, taking a point cloud video with a frame rate of 30 frames per second (fps) as an example, each frame of the point cloud contains 700,000 points, and each point has coordinate information xyz (float) and color information RGB (uchar). Therefore, the data size of a 10-second point cloud video is approximately 0.7 million × (4 bytes × 3 + 1 byte × 3) × 30 fps × 10 s = 3.15 GB, where 1 byte is 10 bits. In contrast, a 10-second 1280×720 two-dimensional video with a YUV sampling format of 4:2:0 and a frame rate of 24 fps has a data size of approximately 1280×720 × 12 bits × 24 fps × 10 s ≈ 0.33 GB, and a 10-second two-view three-dimensional video has a data size of approximately 0.33 × 2 = 0.66 GB. It is evident that the data size of a point cloud video far exceeds that of two-dimensional and three-dimensional videos of the same duration. Therefore, in order to better achieve 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.
[0083] In other words, since point clouds are a collection of massive points, storing point clouds not only consumes a lot of memory, but is also not conducive to transmission. There is also not enough bandwidth to support the transmission of point clouds directly at the network layer without compression. Therefore, point clouds need to be compressed.
[0084] Currently, point cloud encoding frameworks that can compress point clouds include the Geometry-based Point Cloud Compression (G-PCC) or Video-based Point Cloud Compression (V-PCC) frameworks provided by the Moving Picture Experts Group (MPEG), and the AVS-PCC framework provided by AVS. The G-PCC framework can be used to compress both static point clouds (Type 1) and dynamically acquired point clouds (Type 3), and it can be based on the Test Model Compression 13 (TMC13) point cloud compression test platform. The V-PCC framework can be used to compress dynamic point clouds (Type 2), and it can be based on the Test Model Compression 2 (TMC2) point cloud compression test platform. Therefore, the G-PCC framework is also called the point cloud codec TMC13, and the V-PCC framework is also called the point cloud codec TMC2.
[0085] This application provides a network architecture for a point cloud encoding / decoding system that includes decoding and encoding methods. As shown in Figure 3, 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. The electronic devices can be various types of devices with point cloud encoding / decoding capabilities, such as mobile phones, tablets, personal computers, personal digital assistants, navigators, digital phones, video phones, televisions, sensing devices, servers, etc., without limitation.
[0086] In this application embodiment, the decoder or encoder can be the aforementioned electronic device. This electronic device has point cloud encoding and decoding capabilities and generally includes a point cloud encoder (i.e., encoder) and a point cloud decoder (i.e., decoder).
[0087] The following section provides a detailed introduction to the relevant technologies using the G-PCC encoding and decoding framework as an example.
[0088] As can be understood, in the G-PCC encoding and decoding framework for point clouds, the point cloud data to be encoded is first divided into multiple slices. Within each slice, the geometric information of the point cloud and the attribute information corresponding to each point are encoded separately.
[0089] Figure 4 is a schematic diagram of the G-PCC encoder's structural framework. In this G-PCC encoding framework, the point cloud data to be encoded is first divided into multiple slices. Within each slice, the geometric information and attribute information of each point cloud are encoded separately. As shown in Figure 4, the G-PCC encoding framework may include a coordinate transformation module 401, a voxelization module 402, an octree partitioning module 403, a surface fitting module 404, a geometry reconstruction module 405, a first arithmetic encoding module 406, a color transformation module 407, a recoloring module 408, a RAHT transformation module 409, a LOD generation module 410, a lifting module 411, a quantization module 412, and a second arithmetic encoding module 413. In the geometric encoding process, the coordinate transformation module 401 performs coordinate transformation on the geometric information, ensuring that the entire point cloud is contained within a bounding box. Then, quantization is performed based on the voxelization module 402. This quantization step primarily serves a scaling function. Due to the rounding effect of quantization, some point clouds have identical geometric information. Therefore, parameters are used to determine whether to remove duplicate points. This process of quantization and removing duplicate points is also known as the voxelization process. Next, the octree partitioning module 403 performs octree partitioning on the bounding box. In the octree-based geometric information encoding process, the bounding box is divided into eight equal sub-cubes. Non-empty sub-cubes (containing points from the point cloud) are further divided into eight equal parts until the resulting leaf nodes are 1×1×1 unit cubes. The first arithmetic encoding module 406 performs arithmetic encoding on the points in the leaf nodes, generating a binary geometric bit stream, i.e., the geometric code stream. In the geometric information encoding process based on triangle soup (Trisoup), octree partitioning is also performed first. However, unlike octree-based geometric information encoding, this Trisoup does not need to partition the point cloud step by step into unit cubes with a side length of 1×1×1. Instead, it stops partitioning when the side length of the sub-block is W. In the surface fitting module 404, based on the surface formed by the distribution of the point cloud in each block, at most twelve intersection points (vertices) generated by the surface and the twelve edges of the block are obtained. Arithmetic encoding is performed on the vertex (surface fitting based on the intersection points) to generate a binary geometric bit stream, i.e., a geometric code stream. In the geometry reconstruction module 405, the vertex is also used in the implementation of the geometric reconstruction process, and the reconstructed set information is used when encoding the attributes of the point cloud.
[0090] During attribute encoding, after geometric encoding is completed and the geometric information is reconstructed, color conversion module 407 performs color conversion, transforming the color information (i.e., attribute information) from the RGB color space to the YUV color space. Then, recoloring module 408 uses the reconstructed geometric information to recolor the point cloud, ensuring that the unencoded attribute information corresponds to the reconstructed geometric information. Attribute encoding primarily targets color information. During color information encoding, there are two main transformation methods: one is based on the LOD generation module 410 and the lifting module 411, mainly relying on distance-based lifting transformation based on LOD partitioning; the other is based on the RAHT transformation module 409, directly performing the RAHT transformation. 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 through the quantization module 412 (i.e. quantization coefficients). Finally, after the geometric coding data processed by octree partitioning and surface fitting is combined with the attribute coding data processed by quantization coefficients, the second arithmetic coding module 413 is used to encode the vertex coordinates of each block in sequence (i.e. arithmetic coding) to generate a binary attribute bit stream, i.e. attribute code stream.
[0091] Figure 5 is a schematic diagram of the G-PCC decoder's structural framework. In this G-PCC decoding framework, for the acquired binary bitstream, the geometric bitstream and attribute bitstream in the binary bitstream are first decoded independently. As shown in Figure 5, the G-PCC decoding framework may include a first arithmetic decoding module 501, an octree synthesis module 502, a surface fitting module 503, a geometry reconstruction module 504, an inverse coordinate transformation module 505, a second arithmetic decoding module 506, an inverse quantization module 507, a RAHT inverse transformation module 508, a LOD generation module 509, a lift inverse transformation module 510, and an inverse color conversion module 511. Specifically, when decoding the geometric bitstream, the geometric information of the point cloud is obtained by sequentially performing the first arithmetic decoding, octree synthesis, surface fitting, geometry reconstruction, and inverse coordinate transformation. When decoding the attribute bitstream, the attribute information of the point cloud is obtained by sequentially performing the second arithmetic decoding, inverse quantization, LOD-based inverse lift transformation or RAHT-based inverse transformation, and inverse color transformation. Based on the geometric and attribute information, the three-dimensional image model of the point cloud data to be encoded is restored.
[0092] It can also be understood that for RAHT encoding of point cloud attribute information, Figure 6 is a flowchart of RAHT encoding, and Figure 7 is a flowchart of RAHT decoding. As shown in Figure 6, for the original point cloud (or "initial point cloud"), intra-frame prediction or inter-frame prediction can be performed. In the intra-frame prediction process, upsampling prediction of the original point cloud can obtain the predicted point cloud, and then RAHT transformation can determine the predicted AC coefficients. In the inter-frame prediction process, RAHT transformation based on the adjacent frames of the original point cloud (i.e., "reference point cloud") can also determine the predicted AC coefficients. RAHT transformation of the original point cloud can determine the DC coefficients of the root node and the original AC coefficients. Subtraction between the original AC coefficients and the predicted AC coefficients can obtain the prediction residual. After quantization and entropy encoding of the prediction residual, the attribute bitstream can be generated. As shown in Figure 7, the AC prediction value can be obtained based on intra-frame prediction / inter-frame prediction; the AC prediction residual can be obtained by entropy decoding and inverse quantization of the attribute bitstream; the original AC coefficients can be obtained by adding the AC prediction value and the AC prediction residual; and then the reconstructed attribute value can be obtained by combining the DC coefficients with the RAHT inverse transform.
[0093] Here, the RAHT transform is based on the Haar wavelet transform. Its core principle is to recursively transform the hierarchical tree structure from the root node to the child nodes from bottom to top. The resulting DC coefficients are passed to the next layer, and the AC coefficients are quantized and encoded. The main encoding process is as follows: First, based on the octree structure of the point cloud, it is determined whether upsampling prediction or inter-frame prediction is used. Second, a recursive transformation is performed from the root node to the child nodes from bottom to top to obtain the layer-by-layer AC coefficients. If prediction is involved, the difference between the predicted AC coefficients and the original AC coefficients is used to obtain the current prediction residual. Finally, the prediction residuals of the AC coefficients are quantized and encoded to generate the attribute bitstream. At the decoding end, RAHT decoding still proceeds from the root node to the child node from top to bottom. The decoder reads the attribute bitstream and performs entropy decoding, followed by inverse quantization to obtain the AC residual. If there is intra-frame prediction or inter-frame prediction, the AC prediction residual is added to the AC prediction value to obtain the original AC coefficients. Then, it is combined with the DC coefficients to perform RAHT inverse transform to obtain the reconstructed attribute value of this layer. The reconstructed attribute value of this layer can then be used to calculate the DC coefficients of the next layer, until all layers have been traversed to obtain the reconstructed attribute value.
[0094] It can also be understood that, in the embodiments of this application, a video frame can be understood as an image. For example, the current frame can be understood as the current image, and the reference frame can be understood as a reference image. The RAHT predictive coding process will be described in detail below following the steps described above.
[0095] In one specific implementation, the detailed steps of RAHT encoding are as follows:
[0096] Step 1: RAHT transformation.
[0097] G-PCC employs the RAHT transform method, which relies on a pre-partitioned octree structure. Each non-empty voxel block (hereinafter referred to as a transform block) contains 2×2×2 sub-blocks (hereinafter referred to as sub-blocks). Within each transform block, RAHT applies Haar wavelet transforms in the X, Y, and Z directions, respectively. The specific transform formulas for the Haar transforms of two adjacent sub-blocks are as follows:
[0098] Among them, w i,j Let g be the weight of the j-th node to be transformed in the i-th layer. i,j h is the attribute value of the leaf node. i,j h is the AC coefficient. i,j The DC coefficients are used as the DC coefficients. After each transformation, the DC coefficients are directly passed to the next layer, while the AC coefficients are quantized and entropy encoded. If there is only one point in the layer, the attribute value of that point is directly passed to the next layer as the DC coefficient.
[0099] For the RAHT transform, Figure 8 shows a schematic diagram of the two-point RAHT transform, and Figure 9 shows a schematic diagram of the RAHT transform process. In these diagrams, the small cubes filled with dots represent the child nodes of the current node, and the black arrows indicate the transform direction. As shown in Figure 9, the obtained DC coefficients continue to propagate along the remaining two directions, performing a two-point Haar transform, until the entire transform block containing 2×2×2 child blocks is traversed. Therefore, for each transform block with 8 child blocks, one DC coefficient and seven AC coefficients can be obtained. The entire process can be simplified to the following formula:
[0100] Among them, A N ω represents the sum of attributes within a sub-block. N T(ω1,ω2,…,ω) represents the number of points within the transformed sub-block. N The matrix () represents the RAHT transform matrix of the transform block. DC and AC represent the transform coefficients obtained after the transform. During encoding, only the DC coefficients of the root node are encoded; the DC coefficients of the remaining transform blocks are ignored because they can be calculated from the reconstruction attributes at the decoding end. The N-1 AC coefficients obtained from each transform are encoded. The relationship between the DC coefficients and the reconstruction attribute values is shown below:
[0101] In the current G-PCC, the transformation process begins at the root node and proceeds from top to bottom. Except for the bottommost leaf nodes, each node in a layer can be considered a transformation block, containing 2×2×2 sub-blocks. Each sub-block in the current layer corresponds to a transformation block in the next layer, and the DC coefficients are passed down and decomposed layer by layer along the root node. Blocks within the same layer are transformed in ascending order of their block coordinates in the Morton code, until all sub-blocks have been traversed.
[0102] Step 2, intra-frame upsampling prediction.
[0103] To further remove redundancy and improve point compression efficiency, an upsampling prediction method is introduced. The core of upsampling prediction is intra-frame prediction, which uses the attribute information of pre-encoded points to predict the attribute information of the current point, thereby obtaining the predicted AC coefficients. Subsequently, redundancy is removed by encoding the AC coefficient residuals between the predicted AC coefficients (i.e., predicted values) and the original AC coefficients (i.e., true values).
[0104] The RAHT transform uses a top-down tree structure, with the transform performed within a 2×2×2 block. The reconstructed attribute values of the parent node and its coplanar and collinear neighbors are used to predict the attribute values of the child nodes. The actual and predicted attribute values of these child nodes are then subjected to RAHT transform to obtain the corresponding DC and AC coefficients. The AC coefficients obtained from the actual attributes are subtracted from the AC coefficients obtained from the predicted attributes to obtain residual transform coefficients, which are then quantized and entropy encoded, as shown in Figure 10. During the inverse RAHT transform, the DC coefficients inherit the reconstructed attribute values from the parent node. The residual AC coefficients obtained from the decoding end are accumulated with the predicted AC coefficients obtained from the upsampled predicted attribute values, and then combined with the inherited DC coefficients for the inverse RAHT transform to obtain the reconstructed attribute values, as shown in Figure 11. The inverse transform can also be called the "inverse transformation".
[0105] Step 3, inter-frame prediction.
[0106] Inter-frame prediction utilizes already encoded reference image information to predictively encode the current image, thereby reducing redundancy. The reference image is partitioned into an octree structure. After undergoing RAHT transformation, the AC coefficients of each reference node are memorized for inter-frame prediction of the next frame. During the encoding of the child nodes of the target node, the coefficient residuals are calculated using the coefficients of the reference image and the current image, and these residuals are then encoded. The decoder follows the same process. Here, the inter-frame prediction process is shown in Figure 12.
[0107] Inter-frame prediction will only be applied to the child nodes when the current point cloud and the reference point cloud have the same octree partitioning structure and the current target node is at the same position node.
[0108] Step 4: Coding coefficient residuals and residual RDOQ.
[0109] The predicted attribute values of each point in the current 2×2×2 block are obtained through the above intra-frame prediction, inter-frame prediction, or average prediction. The RAHT transformation is then performed on the true and predicted attribute values of these intra-block child nodes to obtain the corresponding DC and AC coefficients. For the i-th predicted AC coefficient... (k is 8). Let (AC) i ) i∈1…k-1 For the i-th original AC coefficient (i.e., the true AC coefficient), the encoded AC coefficient residual (r) i ) i∈0…k-1 Recorded as:
[0110] Then, rate-distortion optimization judgment is performed on the AC coefficient residual. If the rate-distortion cost RDcost of setting the coefficient residual to 0 is less than the rate-distortion cost RDcost of the original encoding, then the coefficient residual is set to 0.
[0111] Furthermore, the prediction residuals after RDO judgment are quantified:
[0112] Among them, Q i This represents the quantized attribute residual at the current point i, where Qs is the quantization step size, which can be calculated from the quantization parameter (QP) specified in the Compliance Test Certification (CTC) document.
[0113] Step 5: Reconstruct attribute values at the encoding end.
[0114] The purpose of encoding-end reconstruction is for the prediction of subsequent points. Before reconstructing attribute values, the encoded AC residual needs to be dequantized, denoted as... The residual after dequantization:
[0115] With predicted AC coefficient Adding them together yields the i-th reconstruction AC coefficient within the current block. Specifically as follows:
[0116] Finally, the reconstructed AC coefficients were analyzed. The reconstructed attribute values can be obtained by performing an inverse RAHT transformation together with the DC coefficients inherited from the parent node at the previous level.
[0117] It is also understandable that, for the dual motion compensation and reference frame attribute projection methods in G-PCC (Geometry-based Solid point cloud coding Test Model, GES-TM) for dense point clouds, the dual motion compensation method exists in GES-TM. The first motion compensation occurs between the geometric information of the current point cloud and the reference point cloud, resulting in a first motion-compensated point cloud. With the help of the first motion-compensated point cloud, the geometric information of the current point cloud is encoded and reconstructed, resulting in a reconstructed point cloud containing only geometric information. The second motion compensation occurs between the geometric information of the first motion-compensated point cloud and the reconstructed point cloud, resulting in a second motion-compensated point cloud. Then, with the help of the second motion-compensated point cloud, the attribute information of the current point cloud is encoded and reconstructed, thus obtaining the final complete reconstructed point cloud. This process is shown in Figure 13.
[0118] Building upon the dual motion compensation method, GES-TM employs a reference frame attribute projection method. By utilizing the motion field calculated in the second motion compensation, the attribute values of the first motion-compensated point cloud are directly projected onto the geometric information of the current point cloud, thus enabling inter-frame prediction of the current point cloud. However, due to G-PCC's stronger compatibility with different point clouds and configurations, enabling both the dual motion compensation method and the reference frame attribute projection method in G-PCC is not suitable.
[0119] In other words, the existing inter-frame prediction technique in G-PCC RAHT requires determining whether the position of each target node is the same in the current point cloud octree and the reference point cloud octree, as shown in Figure 14. This judgment is cumbersome and imperfect, and may result in inter-frame prediction performance being worse than not performing inter-frame prediction at all. The fundamental reason is that the geometric information of the reference point cloud and the current point cloud are different, which causes inconvenience for inter-frame prediction of attribute information and reduces encoding and decoding performance.
[0120] Based on this, embodiments of this application provide an encoding / decoding method. When inter-frame prediction is enabled in the current point cloud, a second reference point cloud with consistent geometric information is determined based on the reconstructed first reference point cloud of the current point cloud. Then, inter-frame prediction is performed on the points in the current point cloud based on the second reference point cloud. In this way, by constructing a second reference point cloud (i.e., a virtual reference point cloud) with consistent geometric information with the current point cloud, it can be guaranteed that for each target node in the current point cloud, there must exist a corresponding virtual reference node, which avoids the trouble of inter-frame prediction judgment for target nodes and reduces complexity. At the same time, it can also make full use of the attribute information of the reference point cloud, thereby improving the encoding / decoding performance of RAHT transform.
[0121] The embodiments of this application will now be described in detail with reference to the accompanying drawings.
[0122] In one embodiment of this application, Figure 15 is a schematic flowchart of a decoding method provided in this embodiment. As shown in Figure 15, the method may include:
[0123] S1501, when inter-frame prediction is enabled for the current point cloud, a second reference point cloud is determined based on the reconstructed first reference point cloud of the current point cloud, which maintains consistent geometric information with the current point cloud.
[0124] It should be noted that, in this embodiment, the method is applied to a point cloud decoder (hereinafter referred to as "decoder"). Specifically, this method primarily provides a decoding approach for constructing a virtual reference point cloud for inter-frame prediction. By constructing a virtual reference point cloud (i.e., a second reference point cloud) whose geometric information is consistent with the current point cloud, the cumbersome process of performing inter-frame prediction judgments on points in the current point cloud can be avoided.
[0125] It should also be noted that, in this embodiment, the construction of the second reference point cloud is performed before the attribute information of the current point cloud is decoded. However, at this point, the geometric information of the current point cloud has already been decoded and reconstructed.
[0126] In some embodiments, determining a second reference point cloud with consistent geometric information with the current point cloud based on a reconstructed first reference point cloud of the current point cloud may include: determining a second reference point cloud that does not contain attribute information; wherein the geometric information of the second reference point cloud is consistent with the geometric information of the current point cloud; determining a reference point corresponding to a first point in the second reference point cloud from the first reference point cloud, and determining the attribute information of the first point based on the attribute information of the reference point, to obtain a second reference point cloud containing attribute information. Here, the first point can be a point in the second reference point cloud.
[0127] In this embodiment, a second reference point cloud, denoted as `ref_reconstructed_pointcloud`, can be established first. Then, the geometric information of the current point cloud is assigned to the second reference point cloud to obtain a second reference point cloud without attribute information. Subsequently, for each point in the second reference point cloud (taking the first point as an example), a reference point corresponding to the first point is determined in the first reference point cloud, and the attribute information of the reference point is assigned to the corresponding first point in the second reference point cloud, until the second reference point cloud is completely traversed. At this point, each point in the second reference point cloud has been assigned attribute information, thus obtaining a second reference point cloud containing attribute information.
[0128] In other words, in this embodiment of the application, the points in the second reference point cloud are traversed, the corresponding reference points are found in the first reference point cloud, and the attribute information of the reference points is assigned to the corresponding points in the second reference point cloud to obtain a virtual reference point cloud (i.e., the second reference point cloud) that can be used for inter-frame prediction.
[0129] In some embodiments, determining the reference point corresponding to the first point in the second reference point cloud in the first reference point cloud may include: performing a nearest neighbor search in the first reference point cloud to determine at least one candidate point that is closest to the first point; and determining the reference point corresponding to the first point based on the at least one candidate point.
[0130] In one possible implementation, the nearest neighbor search can be performed in the first reference point cloud based on the K-nearest neighbor approach. That is, for each point in the second reference point cloud, the KNN method is used to search for the nearest reference point in the first reference point cloud.
[0131] In another possible implementation, nearest neighbor search can be performed in the first reference point cloud based on the Merton code method. That is, for each point in the second reference point cloud, the Merton code method can also be used to search for the nearest reference point in the first reference point cloud.
[0132] In the embodiments of this application, when performing nearest neighbor search in the first reference point cloud, various methods can be used. In addition to using the KNN method, other methods can also be used, such as the nearest neighbor search method based on Morton code, etc., without any limitation.
[0133] It should also be noted that, in this embodiment of the application, taking the first point as an example, when performing nearest neighbor search in the first reference point cloud, at least one candidate point that is closest to the first point can be found. That is to say, the number of candidate points can be one, or it can be two, three or even more, and there is no limitation here.
[0134] In one possible implementation, when the number of candidate points is one, determining the reference point corresponding to the first point based on at least one candidate point may include: determining the candidate point as the reference point corresponding to the first point.
[0135] In another possible implementation, when there are multiple candidate points, determining the reference point corresponding to the first point based on at least one candidate point may include: determining the first searched candidate point as the reference point corresponding to the first point; or, determining multiple candidate points as the reference point corresponding to the first point.
[0136] In this embodiment, the number of reference points can be one or more. If there is only one candidate point, then that candidate point is the corresponding reference point; if there are multiple candidate points, then the first candidate point found can be determined as the corresponding reference point, or all of these candidate points can be used as the corresponding reference point.
[0137] In some embodiments, there is only one reference point. Accordingly, determining the attribute information of the first point based on the attribute information of the reference point may include: determining the attribute information of the reference point as the attribute information of the first point.
[0138] In some embodiments, when there are multiple reference points, determining the attribute information of the first point based on the attribute information of the reference points may include: calculating the average of the attribute information of multiple reference points and using the obtained average result as the attribute information of the first point.
[0139] Alternatively, in some embodiments, the method may further include: calculating a weighted average of the attribute information of multiple reference points based on the distance between multiple reference points and the first point, and using the obtained average result as the attribute information of the first point.
[0140] In other words, in this embodiment of the application, for multiple reference points, the attribute information of these multiple reference points can be averaged, and the average result can be assigned to the corresponding first point; or, the weight value corresponding to the reference point can be determined according to the distance between the reference point and the first point, and then the attribute information of multiple reference points can be weighted and averaged according to the obtained weight value, and the average result can be assigned to the corresponding first point to obtain a second reference point cloud containing attribute information.
[0141] Understandably, in the embodiments of this application, the construction of the second reference point cloud can consider not only the reference point cloud used by the current point cloud, but also other reference point clouds, such as the reference point cloud used in the previous frame. In some embodiments, the first reference point cloud may include at least one of the following: the current reference point cloud corresponding to the current point cloud; and / or, the candidate reference point cloud corresponding to the point cloud of the previous frame of the current point cloud.
[0142] In some embodiments, still taking the first point in the second reference point cloud as an example, referring to Figure 16, the method may include:
[0143] S1601, Perform a nearest neighbor search in the current reference point cloud to determine the first candidate point that is closest to the first point.
[0144] S1602, perform nearest neighbor search in the candidate reference point cloud to determine the second candidate point that is closest to the first point.
[0145] S1603, calculate the mean of the attribute information of the first candidate point and the attribute information of the second candidate point, and use the obtained mean as the attribute information of the first point.
[0146] It should be noted that, in this embodiment, the reference point corresponding to the first point can be determined based on the first candidate point and the second candidate point. That is, assuming the reference point cloud used by the current point cloud is denoted as A, and the reference point cloud used by the previous point cloud is denoted as B, when assigning attribute information to the second reference point cloud, not only can the nearest neighbor first candidate point be searched in A, but also the nearest neighbor second candidate point can be searched in B. Then, the average value is selected and assigned to the corresponding reference point in the second reference point cloud. Here, the average value can be calculated directly by averaging, or it can be calculated by weighted averaging the attribute information of the first candidate point and the first point, and the second candidate point and the first point, based on the first distance between them and the second candidate point. This allows for more efficient use of the attribute information of the reference point cloud.
[0147] It is also understandable that, in this embodiment of the application, some pattern indication information (or pattern flags) in the form of syntax elements can be written into the bitstream. In this way, by parsing the values of relevant syntax elements in the bitstream, the relevant identification information of the current point cloud can be determined.
[0148] In some embodiments, the method may further include: parsing a third syntax element in the bitstream; when the third syntax element instructs the decoder to start constructing a second reference point cloud, the decoding process shown in FIG15 is executed, that is, the step of executing the reconstructed first reference point cloud based on the current point cloud and determining a second reference point cloud that is consistent with the geometric information of the current point cloud.
[0149] In this embodiment, the third syntax element is stored in the APS, and the third syntax element can be represented by ref_reconstructed_flag. If the value of the third syntax element is the first value, then the third syntax element instructs the decoder to start constructing the second reference point cloud, meaning this embodiment uses a virtual reference point cloud construction scheme; if the value of the third syntax element is the second value, then the third syntax element instructs the decoder not to start constructing the second reference point cloud, meaning this embodiment does not use a virtual reference point cloud construction scheme.
[0150] In some embodiments, the method may further include: parsing a second syntax element in the bitstream; when the second syntax element indicates that the current point cloud has a reference point cloud that can be selected for inter-frame prediction, the decoding process shown in FIG15 is executed, that is, the step of executing the first reference point cloud reconstructed based on the current point cloud and determining a second reference point cloud that is consistent with the geometric information of the current point cloud.
[0151] In this embodiment of the application, the second syntax element can be represented by attrInterPredParams.enableAttrInterPred. Here, attrInterPredParams.enableAttrInterPred is used to indicate whether the current point cloud has a reference point cloud that can be selected for inter-frame prediction, or whether inter-frame prediction is enabled. Therefore, the second syntax element can also be called the "inter-frame prediction flag".
[0152] In the embodiments of this application, if the value of the second syntax element is the first value, then the second syntax element indicates that the current point cloud enables inter-frame prediction, that is, the current point cloud has a reference point cloud and can choose to perform inter-frame prediction; if the value of the second syntax element is the second value, then the second syntax element indicates that the current point cloud does not enable inter-frame prediction, that is, the current point cloud does not have a reference point cloud and can choose to perform inter-frame prediction.
[0153] It should also be noted that, in this embodiment of the application, not every current point cloud needs to construct a second reference point cloud; a flag can also be used to indicate this. For example, the first syntax element is used to indicate whether the construction of a second reference point cloud is enabled for the current point cloud.
[0154] In some embodiments, the method may further include: parsing a first syntax element in the bitstream; when the first syntax element indicates that the current point cloud is initiating the construction of a second reference point cloud, the decoding process shown in FIG15 is executed, that is, the step of executing the reconstructed first reference point cloud based on the current point cloud and determining a second reference point cloud that is consistent with the geometric information of the current point cloud.
[0155] In the embodiments of this application, if the value of the first syntax element is a first value, then the first syntax element indicates that the current point cloud starts building a second reference point cloud, that is, the current point cloud uses the construction scheme of a virtual reference point cloud; if the value of the first syntax element is a second value, then the first syntax element indicates that the current point cloud does not start building a second reference point cloud, that is, the current point cloud does not use the construction scheme of a virtual reference point cloud.
[0156] In one possible implementation, the value of the first syntax element is equal to the value of the second syntax element. In this case, the first syntax element can be omitted. The second syntax element then indicates not only whether the current point cloud has a reference point cloud to choose from for inter-frame prediction, but also whether the current point cloud should initiate the construction of a second reference point cloud. In short, the second syntax element can be used to indicate whether the current point cloud has a reference point cloud to choose from for inter-frame prediction and whether the current point cloud uses a virtual reference point cloud construction scheme.
[0157] In another possible implementation, the value of the first syntax element can be obtained by parsing the bitstream; that is, the first syntax element and the second syntax element are two different syntax elements. In this case, to determine whether the current point cloud uses the virtual reference point cloud construction scheme, the encoder can write the value of the first syntax element into the bitstream through cost calculation; then the decoder can directly obtain the value of the first syntax element by parsing the bitstream to determine whether the current point cloud uses the virtual reference point cloud construction scheme.
[0158] It should also be noted that in the embodiments of this application, the first value and the second value are different. Here, the first value can be set to 1 and the second value can be set to 0; or, the first value can be set to true and the second value can be set to false; there are no limitations on this.
[0159] For example, if the value of ref_reconstructed_flag is 1, it indicates that the decoder enables the construction of the second reference point cloud, that is, the construction of the second reference point cloud is required in this embodiment; if the value of ref_reconstructed_flag is 0, it indicates that the decoder does not enable the construction of the second reference point cloud, that is, the construction of the second reference point cloud is not required in this embodiment.
[0160] In other words, in this embodiment, it is applied to the case of inter-frame prediction where a second reference point cloud needs to be constructed. Specifically, for inter-frame prediction, after constructing a second reference point cloud with geometric information consistent with the current point cloud, it can be guaranteed that for each point in the current point cloud, there is a corresponding virtual reference point, while also fully utilizing the attribute information of the reference frame.
[0161] S1502, based on the second reference point cloud, performs inter-frame prediction on the points in the current point cloud.
[0162] In this embodiment of the application, after obtaining the second reference point cloud, the second reference point cloud can be used as a virtual reference point cloud for the next step of inter-frame attribute prediction. In some embodiments, the method may include: performing inter-frame prediction on points in the current point cloud based on the attribute information of the second reference point cloud, and determining the attribute prediction values of the points in the current point cloud.
[0163] In some embodiments, the method may further include: performing RAHT transformation on the attribute prediction values of points in the current point cloud to determine the parameter prediction values of points in the current point cloud, such as the prediction values of parameters 0 to 7 as shown in Figure 14.
[0164] In some embodiments, the method may further include: parsing the parameter residual values of points in the current point cloud in the bit stream; and determining the parameter reconstruction values of points in the current point cloud based on the parameter residual values and parameter prediction values of points in the current point cloud.
[0165] It should be noted that, in the embodiments of this application, the parameter quantization residual of the points in the current point cloud in the parsed bitstream can be used; the parameter quantization residual of the points in the current point cloud can be dequantized to obtain the parameter residual value of the points in the current point cloud; and then the parameter residual value and the parameter prediction value of the points in the current point cloud can be added to determine the parameter reconstruction value of the points in the current point cloud.
[0166] It should also be noted that the predicted parameter values, residual parameter values, and reconstructed parameter values here all refer to the AC coefficients. That is, the AC quantization residuals of the points in the current point cloud are parsed in the bitstream; the AC quantization residuals of the points in the current point cloud are dequantized to obtain the AC residuals of the points in the current point cloud; then the AC residuals of the points in the current point cloud and the predicted AC coefficients are added together to determine the reconstructed AC coefficients of the points in the current point cloud.
[0167] It is also understood that, in this embodiment, the decoding method is applied to the case of inter-frame prediction where a second reference point cloud needs to be constructed. Specifically, if inter-frame prediction is not enabled for the current point cloud or if the construction of a second reference point cloud is not required, then the decoding method described in this embodiment is not executed; that is, the construction of a second reference point cloud is not performed, and inter-frame prediction is performed on the points in the current point cloud according to relevant technologies. Otherwise, if inter-frame prediction is enabled for the current point cloud and the construction of a second reference point cloud is required, then the decoding method described in this embodiment is executed. In this way, after constructing a virtual reference point cloud with geometric information consistent with the current point cloud, it can be guaranteed that for each point in the current point cloud, there is a corresponding virtual reference point, while also fully utilizing the attribute information of the reference frame.
[0168] This application provides a decoding method. When inter-frame prediction is enabled in the current point cloud, a second reference point cloud with consistent geometric information is determined based on the reconstructed first reference point cloud of the current point cloud. Then, inter-frame prediction is performed on the points in the current point cloud based on the second reference point cloud. In this way, by constructing a second reference point cloud (i.e., a virtual reference point cloud) with consistent geometric information with the current point cloud, it can be guaranteed that for each point in the current point cloud, there must exist a corresponding virtual reference node, which can avoid the trouble of inter-frame prediction judgment and reduce complexity. At the same time, it can also make full use of the attribute information of the reference point cloud, thereby improving the decoding performance of RAHT transform.
[0169] In another embodiment of this application, FIG17 is a flowchart illustrating an encoding method provided by an embodiment of this application. As shown in FIG17, the method may include:
[0170] S1701, when inter-frame prediction is enabled for the current point cloud, a second reference point cloud is determined based on the reconstructed first reference point cloud of the current point cloud, which maintains consistent geometric information with the current point cloud.
[0171] It should be noted that, in the embodiments of this application, the method is applied to a point cloud encoder (which may be simply referred to as an "encoder"). Specifically, this mainly provides an encoding method for constructing a virtual reference point cloud for inter-frame prediction. By considering the construction of a virtual reference point cloud (i.e., a second reference point cloud), whose geometric information is consistent with the current point cloud, the hassle of performing inter-frame prediction judgments on the points in the current point cloud can be avoided.
[0172] It should also be noted that, in this embodiment, the construction of the second reference point cloud is performed before the attribute information of the current point cloud is encoded. However, at this point, the geometric information of the current point cloud has already been encoded and reconstructed.
[0173] In some embodiments, determining a second reference point cloud with consistent geometric information with the current point cloud based on a reconstructed first reference point cloud of the current point cloud may include: determining a second reference point cloud that does not contain attribute information; wherein the geometric information of the second reference point cloud is consistent with the geometric information of the current point cloud; determining a reference point corresponding to a first point in the second reference point cloud from the first reference point cloud, and determining the attribute information of the first point based on the attribute information of the reference point, to obtain a second reference point cloud containing attribute information. Here, the first point can be a point in the second reference point cloud.
[0174] In this embodiment, a second reference point cloud, denoted as `ref_reconstructed_pointcloud`, can be established first. Then, the geometric information of the current point cloud is assigned to the second reference point cloud to obtain a second reference point cloud without attribute information. Subsequently, for each point in the second reference point cloud (taking the first point as an example), a reference point corresponding to the first point is determined in the first reference point cloud, and the attribute information of the reference point is assigned to the corresponding first point in the second reference point cloud, until the second reference point cloud is completely traversed. At this point, each point in the second reference point cloud has been assigned attribute information, thus obtaining a second reference point cloud containing attribute information.
[0175] In other words, in this embodiment of the application, the points in the second reference point cloud are traversed, the corresponding reference points are found in the first reference point cloud, and the attribute information of the reference points is assigned to the corresponding points in the second reference point cloud to obtain a virtual reference point cloud (i.e., the second reference point cloud) that can be used for inter-frame prediction.
[0176] In some embodiments, determining the reference point corresponding to the first point in the second reference point cloud in the first reference point cloud may include: performing a nearest neighbor search in the first reference point cloud to determine at least one candidate point that is closest to the first point; and determining the reference point corresponding to the first point based on the at least one candidate point.
[0177] In one possible implementation, the nearest neighbor search can be performed in the first reference point cloud based on the K-nearest neighbor approach. That is, for each point in the second reference point cloud, the KNN method is used to search for the nearest reference point in the first reference point cloud.
[0178] In another possible implementation, nearest neighbor search can be performed in the first reference point cloud based on the Merton code method. That is, for each point in the second reference point cloud, the Merton code method can also be used to search for the nearest reference point in the first reference point cloud.
[0179] In the embodiments of this application, when performing nearest neighbor search in the first reference point cloud, various methods can be used. In addition to using the KNN method, other methods can also be used, such as the nearest neighbor search method based on Morton code, etc., without any limitation.
[0180] It should also be noted that, in this embodiment of the application, taking the first point as an example, when performing nearest neighbor search in the first reference point cloud, at least one candidate point that is closest to the first point can be found. That is to say, the number of candidate points can be one, or it can be two, three or even more, and there is no limitation here.
[0181] In one possible implementation, when the number of candidate points is one, determining the reference point corresponding to the first point based on at least one candidate point may include: determining the candidate point as the reference point corresponding to the first point.
[0182] In another possible implementation, when there are multiple candidate points, determining the reference point corresponding to the first point based on at least one candidate point may include: determining the first searched candidate point as the reference point corresponding to the first point; or, determining multiple candidate points as the reference point corresponding to the first point.
[0183] In this embodiment, the number of reference points can be one or more. If there is only one candidate point, then that candidate point is the corresponding reference point; if there are multiple candidate points, then the first candidate point found can be determined as the corresponding reference point, or all of these candidate points can be used as the corresponding reference point.
[0184] In some embodiments, there is only one reference point. Accordingly, determining the attribute information of the first point based on the attribute information of the reference point may include: determining the attribute information of the reference point as the attribute information of the first point.
[0185] In some embodiments, when there are multiple reference points, determining the attribute information of the first point based on the attribute information of the reference points may include: calculating the average of the attribute information of multiple reference points and using the obtained average result as the attribute information of the first point.
[0186] Alternatively, in some embodiments, the method may further include: calculating a weighted average of the attribute information of multiple reference points based on the distance between multiple reference points and the first point, and using the obtained average result as the attribute information of the first point.
[0187] In other words, in this embodiment of the application, for multiple reference points, the attribute information of these multiple reference points can be averaged, and the average result can be assigned to the corresponding first point; or, the weight value corresponding to the reference point can be determined according to the distance between the reference point and the first point, and then the attribute information of multiple reference points can be weighted and averaged according to the obtained weight value, and the average result can be assigned to the corresponding first point to obtain a second reference point cloud containing attribute information.
[0188] Understandably, in the embodiments of this application, the construction of the second reference point cloud can consider not only the reference point cloud used by the current point cloud, but also other reference point clouds, such as the reference point cloud used in the previous frame. In some embodiments, the first reference point cloud may include at least one of the following: the current reference point cloud corresponding to the current point cloud; and / or, the candidate reference point cloud corresponding to the point cloud of the previous frame of the current point cloud.
[0189] In some embodiments, taking the first point in the second reference point cloud as an example, the method may include: performing a nearest neighbor search in the current reference point cloud to determine a first candidate point that is closest to the first point; performing a nearest neighbor search in the candidate reference point cloud to determine a second candidate point that is closest to the first point; and determining a reference point corresponding to the first point based on the first candidate point and the second candidate point.
[0190] In one specific embodiment, determining the attribute information of the first point based on the attribute information of the reference point may include: calculating the average of the attribute information of the first candidate point and the attribute information of the second candidate point, and using the obtained average result as the attribute information of the first point.
[0191] It should be noted that, in this embodiment, assuming the reference point cloud used for the current point cloud is denoted as A and the reference point cloud used for the previous point cloud is denoted as B, when assigning attribute information to the second reference point cloud, not only can the nearest neighbor first candidate point be searched in A, but also the nearest neighbor second candidate point can be searched in B. Then, the average value is selected and assigned to the corresponding reference point in the second reference point cloud. Here, the average value can be calculated directly by averaging, or it can be calculated by weighted averaging the attribute information of the first candidate point and the first point, and the second candidate point and the first point, based on the first distance between the first candidate point and the first point, and the second distance between the second candidate point and the first point. This allows for more efficient use of the attribute information of the reference point cloud.
[0192] It is also understood that, in this embodiment of the application, some pattern indication information (or pattern flags) in the form of syntax elements can be written into the bitstream. In this way, the values of the relevant syntax elements written into the bitstream are determined based on the relevant identification information of the current point cloud. This allows the decoding end to obtain the relevant identification information of the current point cloud by parsing the values of the relevant syntax elements in the bitstream.
[0193] In some embodiments, the method may further include: determining the value of a third syntax element; encoding the value of the third syntax element; and writing the obtained encoded bits into a bitstream.
[0194] In this embodiment of the application, when the encoder starts constructing the second reference point cloud, the encoding process shown in FIG17 is executed, that is, the step of executing the first reference point cloud reconstructed based on the current point cloud and determining the second reference point cloud that is consistent with the geometric information of the current point cloud is executed.
[0195] In this embodiment, the third syntax element is stored in the APS, and can be represented by `ref_reconstructed_flag`. The third syntax element indicates whether the encoder enables the construction of the second reference point cloud. In some embodiments, if the encoder enables the construction of the second reference point cloud (i.e., this embodiment uses a virtual reference point cloud construction scheme), the value of the third syntax element is a first value; if the encoder does not enable the construction of the second reference point cloud (i.e., this embodiment does not use a virtual reference point cloud construction scheme), the value of the third syntax element is a second value.
[0196] In some embodiments, the method may further include: determining the value of a second syntax element; encoding the value of the second syntax element; and writing the obtained encoded bits into a bitstream.
[0197] In this embodiment, when the current point cloud has a reference point cloud that can be selected for inter-frame prediction, the encoding process shown in Figure 17 is executed. This involves determining a second reference point cloud with consistent geometric information based on the reconstructed first reference point cloud of the current point cloud. Furthermore, the second syntax element can be represented by `attrInterPredParams.enableAttrInterPred`. `attrInterPredParams.enableAttrInterPred` indicates whether the current point cloud has a reference point cloud that can be selected for inter-frame prediction, or whether inter-frame prediction is enabled. Therefore, the second syntax element can also be called an "inter-frame prediction flag".
[0198] In the embodiments of this application, if the current point cloud enables inter-frame prediction, that is, the current point cloud has a reference point cloud that can be selected for inter-frame prediction, then the value of the second syntax element is the first value; if the current point cloud does not enable inter-frame prediction, that is, the current point cloud does not have a reference point cloud that can be selected for inter-frame prediction, then the value of the second syntax element is the second value.
[0199] Furthermore, in this embodiment, the first value and the second value are different. Here, the first value can be set to 1 and the second value can be set to 0; or, the first value can be set to true and the second value can be set to false; there are no limitations on this.
[0200] For example, if the encoder enables the construction of the second reference point cloud, that is, the construction of the second reference point cloud is required in this embodiment, then the value of ref_reconstructed_flag is 1; if the encoder does not enable the construction of the second reference point cloud, that is, the construction of the second reference point cloud is not required in this embodiment, then the value of ref_reconstructed_flag is 0.
[0201] It should also be noted that in this embodiment, not every current point cloud needs to have a second reference point cloud constructed. Therefore, it is necessary to determine whether the construction of a second reference point cloud is enabled for the current point cloud. When the construction of a second reference point cloud is enabled for the current point cloud, the encoding process shown in Figure 17 can be executed, namely, the step of determining a second reference point cloud that maintains consistent geometric information with the current point cloud based on the reconstructed first reference point cloud. Whether the construction of a second reference point cloud is enabled for the current point cloud can be represented by a first syntax element.
[0202] In some embodiments, determining whether the current point cloud is enabled to construct a second reference point cloud may include: calculating the encoding cost of the current point cloud when the current point cloud is enabled to construct a second reference point cloud, and determining a first cost result; calculating the encoding cost of the current point cloud when the current point cloud is not enabled to construct a second reference point cloud, and determining a second cost result; and determining whether the current point cloud is enabled to construct a second reference point cloud based on the first cost result and the second cost result.
[0203] In the embodiments of this application, the encoding cost calculation here can be based on rate-distortion optimization, or it can be based on other cost methods (such as mean square error, mean absolute error, etc.), without any limitation.
[0204] Thus, after obtaining the first cost result and the second cost result, it can be determined whether the current point cloud should initiate the construction of a second reference point cloud by comparing the first cost result and the second cost result. In some embodiments, the method may include: determining that the current point cloud should initiate the construction of a second reference point cloud when the first cost result is less than the second cost result; and determining that the current point cloud should not initiate the construction of a second reference point cloud when the first cost result is greater than the second cost result.
[0205] It should be noted that if the result of the first cost is equal to the result of the second cost, then it can be determined that the current point cloud is initiating the construction of the second reference point cloud, or it can be determined that the current point cloud is not initiating the construction of the second reference point cloud. No restrictions are imposed here.
[0206] In some embodiments, the method may further include: determining the value of a first syntax element; encoding the value of the first syntax element; and writing the obtained encoded bits into a bitstream.
[0207] It should be noted that, in this embodiment of the application, since not every current point cloud needs to construct a second reference point cloud, a flag bit can be used to indicate this. For example, the first syntax element is used to indicate whether the current point cloud is ready to construct a second reference point cloud. That is, when the current point cloud is ready to construct a second reference point cloud, the encoding process shown in Figure 17 is executed, namely, the step of determining a second reference point cloud that maintains consistent geometric information with the current point cloud based on the reconstructed first reference point cloud.
[0208] It should also be noted that, in the embodiments of this application, determining the value of the first syntax element may include: if the first cost result is less than the second cost result, then the value of the first syntax element is the first value; if the first cost result is greater than the second cost result, then the value of the first syntax element is the second value. That is, if the current point cloud enables the construction of a second reference point cloud, i.e., the current point cloud uses a virtual reference point cloud construction scheme, then the value of the first syntax element is the first value; if the current point cloud does not enable the construction of a second reference point cloud, i.e., the current point cloud does not use a virtual reference point cloud construction scheme, then the value of the first syntax element is the second value.
[0209] It should also be noted that, in the embodiments of this application, if the first cost result is equal to the second cost result, then the value of the first syntax element can be either the first value or the second value, without any limitation.
[0210] It should also be noted that in the embodiments of this application, the first value and the second value are different. Here, the first value can be set to 1 and the second value can be set to 0; or, the first value can be set to true and the second value can be set to false; there are no limitations on this.
[0211] In one possible implementation, the value of the first syntax element is equal to the value of the second syntax element. In this case, the first syntax element can be omitted. The second syntax element then indicates not only whether the current point cloud has a reference point cloud to choose from for inter-frame prediction, but also whether the current point cloud should initiate the construction of a second reference point cloud. In short, the second syntax element can be used to indicate whether the current point cloud has a reference point cloud to choose from for inter-frame prediction and whether the current point cloud uses a virtual reference point cloud construction scheme.
[0212] In another possible implementation, the value of the first syntax element can be determined through cost calculation at the encoder, meaning the first and second syntax elements are two different syntax elements. In this case, to determine whether the current point cloud uses the virtual reference point cloud construction scheme, the encoder can write the value of the first syntax element into the bitstream through cost calculation; then the decoder can directly obtain the value of the first syntax element by parsing the bitstream to determine whether the current point cloud uses the virtual reference point cloud construction scheme.
[0213] In other words, in this embodiment, it is applied to the case of inter-frame prediction where a second reference point cloud needs to be constructed. Specifically, for inter-frame prediction, after constructing a second reference point cloud with geometric information consistent with the current point cloud, it can be guaranteed that for each point in the current point cloud, there is a corresponding virtual reference point, while also fully utilizing the attribute information of the reference frame.
[0214] S1702, based on the second reference point cloud, performs inter-frame prediction on the points in the current point cloud.
[0215] In this embodiment of the application, after obtaining the second reference point cloud, the second reference point cloud can be used as a virtual reference point cloud for the next step of inter-frame attribute prediction. In some embodiments, the method may include: performing inter-frame prediction on points in the current point cloud based on the attribute information of the second reference point cloud, and determining the attribute prediction values of the points in the current point cloud.
[0216] In some embodiments, the method may further include: performing RAHT transformation on the attribute prediction values of points in the current point cloud to determine the parameter prediction values of points in the current point cloud, such as the prediction values of parameters 0 to 7 as shown in Figure 14.
[0217] In some embodiments, the method may further include: performing RAHT transformation on the initial attribute values of points in the current point cloud to determine the initial parameter values of points in the current point cloud, such as the initial values of parameters 0 to 7 as shown in Figure 14.
[0218] Thus, in this embodiment of the application, the parameter residual values of the points in the current point cloud are determined based on the initial parameter values and predicted parameter values of the points in the current point cloud; the parameter residual values of the points in the current point cloud are encoded, and the obtained encoded bits are written into the bit stream.
[0219] In this embodiment of the application, determining the parameter residual value of a point in the current point cloud may include: performing a subtraction operation on the initial parameter value and the predicted parameter value of the point in the current point cloud to obtain the parameter residual value of the point in the current point cloud.
[0220] In addition, in this embodiment of the application, encoding the parameter residual values of the points in the current point cloud may include: quantizing the parameter residual values of the points in the current point cloud to obtain the parameter quantization residuals of the points in the current point cloud; then encoding the parameter quantization residuals of the points in the current point cloud and writing the obtained encoded bits into the bit stream.
[0221] It should also be noted that in the embodiments of this application, the initial parameter value, predicted parameter value, and residual parameter value all refer to the AC coefficients. That is, after determining the predicted AC coefficients of the points in the current point cloud, a subtraction operation is performed based on the initial AC coefficients and predicted AC coefficients of the points in the current point cloud to determine the AC residuals of the points in the current point cloud; the AC residuals of the points in the current point cloud are quantized to obtain the AC quantized residuals of the points in the current point cloud; the AC quantized residuals of the points in the current point cloud are encoded, and the obtained encoded bits are written into the bitstream.
[0222] It is also understood that, in the embodiments of this application, the encoding method is applied to the case of inter-frame prediction where a second reference point cloud needs to be constructed. Specifically, if inter-frame prediction is not enabled for the current point cloud or if the construction of a second reference point cloud is not required, then the encoding method described in the embodiments of this application is not executed; that is, the construction of a second reference point cloud is not performed, and inter-frame prediction is performed on the points in the current point cloud according to relevant technologies. Otherwise, if inter-frame prediction is enabled for the current point cloud and the construction of a second reference point cloud is required, then the encoding method described in the embodiments of this application is executed. In this way, after constructing a virtual reference point cloud with geometric information consistent with the current point cloud, it can be guaranteed that for each point in the current point cloud, there is a corresponding virtual reference point, while also fully utilizing the attribute information of the reference frame.
[0223] This application provides an encoding method that, when inter-frame prediction is enabled for the current point cloud, determines a second reference point cloud with consistent geometric information based on the reconstructed first reference point cloud of the current point cloud; then, based on the second reference point cloud, performs inter-frame prediction on the points in the current point cloud. By constructing a second reference point cloud (i.e., a virtual reference point cloud) with consistent geometric information with the current point cloud, it can be guaranteed that for each point in the current point cloud, there exists a corresponding virtual reference node, avoiding the hassle of inter-frame prediction judgment and reducing complexity; simultaneously, it can fully utilize the attribute information of the reference point cloud, thereby improving the encoding performance of the RAHT transform.
[0224] In another embodiment of this application, based on the encoding and decoding method of the foregoing embodiments, this application proposes a technical solution for constructing a virtual reference point cloud for inter-frame prediction. This technical solution is implemented on G-PCC reference software and tested on the MPEG-required test sequence Cat2. The technical solution is described in detail below:
[0225] To address the inconsistency in geometric information between the current point cloud and the reference point cloud during inter-frame prediction, this technical solution proposes constructing a virtual reference point cloud (i.e., the aforementioned "second reference point cloud") for inter-frame prediction. Figure 18 is a schematic diagram illustrating the construction of a virtual reference point cloud provided in an embodiment of this application. As shown in Figure 18, the geometric information of this reference point cloud is consistent with that of the current point cloud. The method for obtaining attribute information is as follows: For each point X in the virtual reference point cloud, a point Y with the closest geometric position to point X is searched in the reference point cloud, and the attribute value of point Y is assigned to point X. This process is repeated until every point in the virtual reference point cloud has been assigned an attribute value. This virtual reference point cloud is then used for inter-frame prediction. Since the geometric information of the virtual reference point cloud is consistent with that of the current point cloud, for each target node in the current point cloud, there is a corresponding virtual reference node, eliminating the need for further judgment and fully utilizing the attribute information of the reference point cloud.
[0226] In addition, in Figure 18, by performing a RAHT transformation on the points in the current point cloud, the initial parameter values of the points in the current point cloud can be obtained; then, based on the RAHT transformation of the virtual reference point cloud, the predicted parameter values of the points in the current point cloud can be obtained; subtracting the two yields the corresponding predicted parameter values.
[0227] In some embodiments, FIG19 is a schematic diagram of a virtual reference point cloud construction process provided by an embodiment of this application. As shown in FIG19, the construction process may include:
[0228] S1901, the geometric information of the current point cloud has been encoded and reconstructed.
[0229] S1902, determine whether to enable the inter-frame prediction flag and enable the ref_reconstructed_flag flag.
[0230] S1903, if the judgment result is yes, then a virtual reference point cloud without attribute information is established, and its geometric information is consistent with the geometric information of the current point cloud.
[0231] S1904: Traverse the points in the virtual reference point cloud, find the nearest neighbor reference point in the current reference point cloud, and assign its attribute information to the corresponding point in the virtual reference point cloud.
[0232] S1905, using a virtual reference point cloud to replace the current reference point cloud.
[0233] S1906 If the judgment result is negative, then the construction of the virtual reference point cloud will not be performed.
[0234] S1907, perform inter-frame attribute prediction on the current point cloud.
[0235] In this embodiment of the application, for step S1902, if the judgment result is yes, that is, the inter-frame prediction flag is enabled and the ref_reconstructed_flag flag is enabled, then steps S1903 to S1905 are executed, and then the virtual reference point cloud is used to perform inter-frame attribute prediction on the current point cloud; if the judgment result is no, that is, the inter-frame prediction flag is not enabled or the ref_reconstructed_flag flag is not enabled, then step S1906 is executed, and then the relevant technology is used to perform inter-frame attribute prediction on the current point cloud.
[0236] In other words, in this embodiment, a flag bit `ref_reconstructed_flag` can be stored in the APS to indicate whether the virtual reference point cloud needs to be constructed. The construction of the virtual reference point cloud is performed before the attribute information of the point cloud is encoded / decoded. The implementation steps at the encoding and decoding ends are as follows: A new point cloud `ref_reconstructed_pointcloud` is created, and the geometric information reconstructed from the current point cloud is assigned to this new point cloud. Subsequently, for each point in this new point cloud, the KNN method is used to search for the nearest point in the current reference point cloud (i.e., the original reference point cloud used by the current point cloud), and the attribute value of this nearest neighbor in the current reference point cloud is assigned to the corresponding point in the new point cloud, until the entire new point cloud is traversed. At this point, each point in the new point cloud has been assigned an attribute value, and then this new point cloud is used as the virtual reference point cloud for the next step of inter-frame prediction of attribute information.
[0237] In one possible implementation, the code for constructing the virtual reference point cloud is described as follows:
[0238] In other words, in this embodiment of the application, after the above technical solution was implemented on the GPCC reference software TMC13-v28.0-rc2, the multi-frame dynamic point cloud sequence required by MPEG was tested under C1 and C2 test conditions (Cat2), and the test configuration conditions were octree-inter-raht. Table 1 shows the test results under the C1 test condition, and Table 2 shows the test results under the C2 test condition.
[0239] Table 1
[0240] Table 2
[0241] In this context, test condition C1 is a lossless geometry, nearly lossless attribute encoding method, and test condition C2 is a lossy geometry, lossy attribute encoding method. The End-to-End BD-AttrRate in Tables 1 and 2 represents the BD-Rate of the end-to-end attribute values relative to the attribute bitstream. The BD-Rate reflects the difference in PSNR curves between the two cases (with and without using the technical solutions of this application). Here, a decrease in BD-Rate indicates a reduction in bitrate and improved performance when PSNR is equal; conversely, a increase indicates a decrease in performance. That is, the greater the decrease in BD-Rate, the better the compression effect. Cat2-Aaverage, Cat2-B average, and Cat2-C average represent the average test results of the point cloud sequences for each of the three datasets in Cat2. Finally, the Overall average is the average test result of all sequences. The test results above show that the proposed method can bring about a very considerable performance improvement. However, due to the use of the KNN nearest neighbor search method in the nearest neighbor search process, the encoding and decoding time has increased.
[0242] It should be noted that, in the embodiments of this application, when constructing the virtual reference point cloud, not only the currently used reference point cloud (denoted as A) is considered, but the reference point cloud used in the previous frame (denoted as B) can also be retained. When determining the attribute information of the virtual reference point cloud, in addition to searching for the nearest neighbor in A, the nearest neighbor in B can also be searched, and then the average value is assigned to the corresponding point of the virtual reference point cloud. This can make fuller use of the information of the reference point cloud.
[0243] It should also be noted that in the embodiments of this application, various methods can be used when performing nearest neighbor search. In addition to using the KNN method, nearest neighbor search methods based on Morton codes can also be used, etc., without any limitation.
[0244] It should also be noted that, in this embodiment, it is assumed that as long as inter-frame prediction is enabled and the flag for constructing a virtual reference point cloud is turned on, a virtual reference point cloud is constructed for each frame's point cloud. However, the construction of the virtual reference point cloud may not be effective for all frames. Therefore, the encoder can also determine whether the virtual reference point cloud construction method needs to be used for each frame based on the RDO method.
[0245] In this application embodiment, the specific implementation of the aforementioned embodiments is described in detail through the above embodiments. It can be seen from this that, according to the technical solution of the aforementioned embodiments, a virtual reference point cloud construction scheme for inter-frame prediction is proposed here. By constructing a virtual reference point cloud that is consistent with the geometric information of the current point cloud, it can be guaranteed that for each point in the current point cloud, there must be a corresponding virtual reference point. At this time, there is no need to perform inter-frame prediction judgment. At the same time, the attribute information of the reference point cloud can be fully utilized, thereby improving the encoding and decoding performance.
[0246] In another embodiment of this application, based on the same inventive concept as the foregoing embodiments, FIG20 is a schematic diagram of the composition structure of an encoder provided in an embodiment of this application. As shown in FIG20, the encoder 200 may include a first determining unit 2001 and a first predicting unit 2002, wherein:
[0247] The first determining unit 2001 is configured to determine a second reference point cloud with consistent geometric information based on the reconstructed first reference point cloud of the current point cloud when inter-frame prediction is enabled in the current point cloud.
[0248] The first prediction unit 2002 is configured to perform inter-frame prediction of points in the current point cloud based on the second reference point cloud.
[0249] In some embodiments, the first determining unit 2001 is further configured to determine a second reference point cloud that does not contain attribute information; wherein the geometric information of the second reference point cloud is consistent with the geometric information of the current point cloud; and to determine a reference point corresponding to a first point in the second reference point cloud in the first reference point cloud, and to determine the attribute information of the first point according to the attribute information of the reference point, so as to obtain a second reference point cloud containing attribute information; wherein the first point is a point in the second reference point cloud.
[0250] In some embodiments, referring to FIG20, the encoder 200 may further include a first search unit 2003 configured to perform a nearest neighbor search in a first reference point cloud to determine at least one candidate point that is closest to the first point; and a first determination unit 2001 configured to determine a reference point corresponding to the first point based on at least one candidate point.
[0251] In some embodiments, when the number of candidate points is one, the first determining unit 2001 is further configured to determine the candidate point as the reference point corresponding to the first point.
[0252] In some embodiments, when there are multiple candidate points, the first determining unit 2001 is further configured to determine the first searched candidate point as the reference point corresponding to the first point; or, to determine multiple candidate points as the reference point corresponding to the first point.
[0253] In some embodiments, when there are multiple reference points, the first determining unit 2001 is further configured to perform an average calculation on the attribute information of the multiple reference points and use the obtained average result as the attribute information of the first point; or, based on the distance between the multiple reference points and the first point, perform a weighted average calculation on the attribute information of the multiple reference points and use the obtained average result as the attribute information of the first point.
[0254] In some embodiments, the first search unit 2003 is further configured to perform nearest neighbor search in the first reference point cloud based on the K-nearest neighbor method; or, it is further configured to perform nearest neighbor search in the first reference point cloud based on the Morton code method.
[0255] In some embodiments, the first reference point cloud includes at least one of the following: the current reference point cloud corresponding to the current point cloud; and the candidate reference point cloud corresponding to the point cloud of the previous frame of the current point cloud.
[0256] In some embodiments, the first search unit 2003 is further configured to perform a nearest neighbor search in the current reference point cloud to determine a first candidate point that is closest to the first point; and to perform a nearest neighbor search in the candidate reference point cloud to determine a second candidate point that is closest to the first point; the first determination unit 2001 is further configured to determine a reference point corresponding to the first point based on the first candidate point and the second candidate point.
[0257] In some embodiments, the first determining unit 2001 is further configured to calculate the average of the attribute information of the first candidate point and the attribute information of the second candidate point, and use the obtained average result as the attribute information of the first point; or, based on the distance between the first point and the multiple reference points, calculate the weighted average of the attribute information of the multiple reference points, and use the obtained average result as the attribute information of the first point.
[0258] In some embodiments, the first prediction unit 2002 is further configured to perform inter-frame prediction on points in the current point cloud based on the attribute information of the second reference point cloud, and determine the attribute prediction values of the points in the current point cloud.
[0259] In some embodiments, the first determining unit 2001 is further configured to determine whether the current point cloud is initiating the construction of a second reference point cloud; and when the current point cloud is initiating the construction of a second reference point cloud, to perform the step of determining a second reference point cloud that is consistent with the geometric information of the current point cloud based on the reconstructed first reference point cloud of the current point cloud.
[0260] In some embodiments, the first determining unit 2001 is further configured to perform encoding cost calculation on the current point cloud when the current point cloud enables the construction of the second reference point cloud, and determine a first cost result; perform encoding cost calculation on the current point cloud when the current point cloud does not enable the construction of the second reference point cloud, and determine a second cost result; and determine whether the current point cloud enables the construction of the second reference point cloud based on the first cost result and the second cost result.
[0261] In some embodiments, the first determining unit 2001 is further configured to determine that the current point cloud starts building a second reference point cloud when the first cost result is less than the second cost result; and / or, determine that the current point cloud does not start building a second reference point cloud when the first cost result is greater than the second cost result.
[0262] In some embodiments, referring to FIG20, the encoder 200 may further include an encoding unit 2004, wherein: the first determining unit 2001 is further configured to determine the value of the first syntax element, and the second syntax element is used to indicate whether the current point cloud is enabled to construct the second reference point cloud; the encoding unit 2004 is configured to encode the value of the first syntax element and write the obtained encoded bits into the bit stream.
[0263] Understandably, in the embodiments of this application, a "unit" can be a portion of a circuit, a portion of a processor, a portion of a program or software, etc., and can also be a module or a non-modular one. Furthermore, the components in this embodiment can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. The integrated unit described above can be implemented in hardware or as a software functional module.
[0264] In another embodiment of this application, FIG21 is a schematic diagram of the hardware structure of an encoder provided in an embodiment of this application. As shown in FIG21, the encoder 200 may include: a first communication interface 2101, a first memory 2102, and a first processor 2103; the various components are coupled together through a first bus system 2104. It is understood that the first bus system 2104 is used to realize the connection and communication between these components. In addition to a data bus, the first bus system 2104 also includes a power bus, a control bus, and a status signal bus. However, for the sake of clarity, all buses are labeled as the first bus system 2104 in FIG21. Wherein:
[0265] The first communication interface 2101 is used for receiving and sending signals during the process of sending and receiving information with other external network elements;
[0266] The first memory 2102 is used to store computer programs that can run on the first processor 2103;
[0267] The first processor 2103 is configured to, when running the computer program, perform the following: when inter-frame prediction is enabled in the current point cloud, determine a second reference point cloud that is consistent with the geometric information of the current point cloud based on the reconstructed first reference point cloud of the current point cloud; and perform inter-frame prediction on the points in the current point cloud based on the second reference point cloud.
[0268] It is understood that the first memory 2102 in the embodiments of this application can be volatile memory or non-volatile memory, or may include both volatile and non-volatile memory. The non-volatile memory can be read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), or flash memory. The volatile memory can be random access memory (RAM), which is used as an external cache. By way of example, but not limitation, many forms of RAM are available, such as Static Random Access Memory (SRAM), Dynamic Random Access Memory (DRAM), Synchronous DRAM (SDRAM), Double Data Rate SDRAM (DDRSDRAM), Enhanced Synchronous DRAM (ESDRAM), Synchlink DRAM (SLDRAM), and Direct Rambus RAM (DRRAM). The first memory 2102 of the system and method described in this application is intended to include, but is not limited to, these and any other suitable types of memory.
[0269] The first processor 2103 may be an integrated circuit chip with signal processing capabilities. In implementation, each step of the above method can be completed by the integrated logic circuitry in the hardware of the first processor 2103 or by instructions in software form. The first processor 2103 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. It can implement or execute the methods, steps, and logic block diagrams disclosed in the embodiments of this application. The general-purpose processor may be a microprocessor or any conventional processor. The steps of the methods disclosed in the embodiments of this application can be directly embodied in the execution of a hardware decoding processor, or executed by a combination of hardware and software modules in the decoding processor. The software modules may reside in random access memory, flash memory, read-only memory, programmable read-only memory, electrically erasable programmable memory, registers, or other mature storage media in the art. The storage medium is located in the first memory 2102. The first processor 2103 reads the information in the first memory 2102 and completes the steps of the above method in conjunction with its hardware.
[0270] It is understood that the embodiments described in this application can be implemented using hardware, software, firmware, middleware, microcode, or a combination thereof. For hardware implementation, the processing unit can be implemented in one or more application-specific integrated circuits (ASICs), digital signal processors (DSPs), digital signal processing devices (DSPDs), programmable logic devices (PLDs), field-programmable gate arrays (FPGAs), general-purpose processors, controllers, microcontrollers, microprocessors, other electronic units for performing the functions described in this application, or combinations thereof. For software implementation, the technology described in this application can be implemented through modules (e.g., procedures, functions, etc.) that perform the functions described in this application. Software code can be stored in memory and executed by a processor. The memory can be implemented in the processor or external to the processor.
[0271] Alternatively, as another embodiment, the first processor 2103 is further configured to perform the method described in any of the foregoing embodiments when running the computer program.
[0272] This embodiment provides an encoder that constructs a second reference point cloud (i.e., a virtual reference point cloud) that maintains the same geometric information as the current point cloud. This ensures that for each target node in the current point cloud, there is a corresponding virtual reference node, avoiding the hassle of inter-frame prediction and judgment of target nodes and reducing complexity. At the same time, it can make full use of the attribute information of the reference point cloud, thereby improving the coding performance of RAHT transform.
[0273] In another embodiment of this application, based on the same inventive concept as the foregoing embodiments, FIG22 is a schematic diagram of the composition structure of a decoder provided in an embodiment of this application. As shown in FIG22, the decoder 220 may include a second determining unit 2201 and a second predicting unit 2202, wherein:
[0274] The second determining unit 2201 is configured to determine a second reference point cloud with consistent geometric information based on the reconstructed first reference point cloud of the current point cloud when inter-frame prediction is enabled in the current point cloud.
[0275] The second prediction unit 2202 is configured to perform inter-frame prediction of points in the current point cloud based on the second reference point cloud.
[0276] In some embodiments, the second determining unit 2201 is further configured to determine a second reference point cloud that does not contain attribute information; wherein the geometric information of the second reference point cloud is consistent with the geometric information of the current point cloud; and to determine a reference point corresponding to a first point in the second reference point cloud in the first reference point cloud, and to determine the attribute information of the first point according to the attribute information of the reference point, so as to obtain a second reference point cloud containing attribute information; wherein the first point is a point in the second reference point cloud.
[0277] In some embodiments, referring to FIG22, the decoder 220 may further include a second search unit 2203 configured to perform a nearest neighbor search in the first reference point cloud to determine at least one candidate point that is closest to the first point; the second determination unit 2201 is further configured to determine the reference point corresponding to the first point based on the at least one candidate point.
[0278] In some embodiments, when the number of candidate points is one, the second determining unit 2201 is further configured to determine the candidate point as the reference point corresponding to the first point.
[0279] In some embodiments, when there are multiple candidate points, the second determining unit 2201 is further configured to determine the first searched candidate point as the reference point corresponding to the first point; or, to determine multiple candidate points as the reference point corresponding to the first point.
[0280] In some embodiments, when there are multiple reference points, the second determining unit 2201 is further configured to perform an average calculation on the attribute information of the multiple reference points and use the obtained average result as the attribute information of the first point.
[0281] In some embodiments, the second search unit 2203 is further configured to perform nearest neighbor search in the first reference point cloud based on the K-nearest neighbor method; or, it is further configured to perform nearest neighbor search in the first reference point cloud based on the Morton code method.
[0282] In some embodiments, the first reference point cloud includes at least one of the following: the current reference point cloud corresponding to the current point cloud; and the candidate reference point cloud corresponding to the point cloud of the previous frame of the current point cloud.
[0283] In some embodiments, the second search unit 2203 is further configured to perform a nearest neighbor search in the current reference point cloud to determine a first candidate point that is closest to the first point; and to perform a nearest neighbor search in the candidate reference point cloud to determine a second candidate point that is closest to the first point; the second determination unit 2201 is further configured to determine a reference point corresponding to the first point based on the first candidate point and the second candidate point.
[0284] In some embodiments, the second determining unit 2201 is further configured to perform an average calculation on the attribute information of the first candidate point and the attribute information of the second candidate point, and use the obtained average result as the attribute information of the first point.
[0285] In some embodiments, the second prediction unit 2202 is further configured to perform inter-frame prediction on points in the current point cloud based on the attribute information of the second reference point cloud, and determine the attribute prediction values of the points in the current point cloud.
[0286] In some embodiments, referring to FIG22, the decoder 220 may further include a decoding unit 2204 configured to parse a first syntax element in the bitstream; and when the first syntax element indicates that the current point cloud is ready to construct a second reference point cloud, to perform the step of determining a second reference point cloud that is consistent with the geometric information of the current point cloud based on the reconstructed first reference point cloud of the current point cloud.
[0287] Understandably, in this embodiment, a "unit" can be a portion of a circuit, a portion of a processor, a portion of a program or software, etc., and can also be a module or a non-modular component. Furthermore, the components in this embodiment can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. The integrated unit can be implemented in hardware or as a software functional module.
[0288] In another embodiment of this application, FIG23 is a schematic diagram of the hardware structure of a decoder provided in an embodiment of this application. As shown in FIG23, the decoder 220 may include: a second communication interface 2301, a second memory 2302, and a second processor 2303; the various components are coupled together through a second bus system 2304. It is understood that the second bus system 2304 is used to realize the connection and communication between these components. In addition to a data bus, the second bus system 2304 also includes a power bus, a control bus, and a status signal bus. However, for clarity, all buses are labeled as the second bus system 2304 in FIG23. Wherein:
[0289] The second communication interface 2301 is used for receiving and sending signals during the process of sending and receiving information with other external network elements;
[0290] The second memory 2302 is used to store computer programs that can run on the second processor 2303;
[0291] The second processor 2303 is configured to, when running the computer program, perform the following: when inter-frame prediction is enabled in the current point cloud, determine a second reference point cloud that is consistent with the geometric information of the current point cloud based on the reconstructed first reference point cloud of the current point cloud; and perform inter-frame prediction on the points in the current point cloud based on the second reference point cloud.
[0292] Alternatively, as another embodiment, the second processor 2303 is also configured to execute the method described in any of the foregoing embodiments when running the computer program.
[0293] It is understood that the second memory 2302 has similar hardware functions to the first memory 2102, and the second processor 2303 has similar hardware functions to the first processor 2103; these will not be described in detail here.
[0294] This embodiment provides a decoder that constructs a second reference point cloud (i.e., a virtual reference point cloud) that maintains the same geometric information as the current point cloud. This ensures that for each target node in the current point cloud, there is a corresponding virtual reference node, avoiding the hassle of inter-frame prediction and judgment of target nodes and reducing complexity. At the same time, it can make full use of the attribute information of the reference point cloud, thereby improving the decoding performance of RAHT transform.
[0295] In another embodiment of this application, FIG24 is a schematic diagram of the composition structure of an encoding / decoding system provided in an embodiment of this application. As shown in FIG5, the encoding / decoding system 240 may include an encoder 2401 and a decoder 2402.
[0296] In this embodiment, encoder 2401 can be any of the encoders described in the foregoing embodiments, and decoder 2402 can be any of the decoders described in the foregoing embodiments.
[0297] In some embodiments, this application also provides a computer-readable storage medium storing a computer program thereon. When executed by a processor, the computer program implements the method as described in any of the foregoing embodiments. Specifically, when executed by a first processor, the computer program implements the encoding method as described in any of the foregoing embodiments, or when executed by a second processor, it implements the decoding method as described in any of the foregoing embodiments.
[0298] In some embodiments, this application also provides a computer program product, including a computer program or instructions. When executed by a processor, the computer program or instructions implement the method as described in any of the foregoing embodiments. Specifically, when executed by a first processor, the computer program or instructions implement the encoding method as described in any of the foregoing embodiments, or when executed by a second processor, they implement the decoding method as described in any of the foregoing embodiments.
[0299] In some embodiments, this application also provides a computer program that, when executed by a processor, implements the method as described in any of the foregoing embodiments. Specifically, when executed by a first processor, the computer program or instructions implement the encoding method as described in any of the foregoing embodiments, or when executed by a second processor, implement the decoding method as described in any of the foregoing embodiments.
[0300] In some embodiments, this application also provides a computer-readable storage medium storing a bitstream thereon. The bitstream is generated by performing the steps of the encoding method as described in any of the foregoing embodiments.
[0301] In this embodiment of the application, the information to be encoded in the encoding method may include at least one of the following: the value of a first syntax element, the value of a second syntax element, the value of a third syntax element, and the parameter residual values of points in the current point cloud. Here, this information to be encoded is processed to write it into the bitstream.
[0302] Those skilled in the art will recognize that the units and algorithm steps of the various examples described in conjunction with the embodiments disclosed in this application can be implemented in electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are implemented in hardware or software depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.
[0303] Those skilled in the art will clearly understand that, for the sake of convenience and brevity, the specific working process of the above-described apparatus and unit can be referred to the corresponding process in the foregoing method embodiments, and will not be repeated here.
[0304] In the several embodiments provided in this application, it should be understood that the disclosed apparatus and methods can be implemented in other ways. For example, the apparatus embodiments described above are merely illustrative; for instance, the division of units is only a logical functional division, and in actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the coupling or direct coupling or communication connection shown or discussed may be through some interfaces; the indirect coupling or communication connection between apparatuses or units may be electrical, mechanical, or other forms.
[0305] The units described as separate components may or may not be physically separate. The components shown as units may or may not be physical units; that is, they may be located in one place or distributed across multiple network units. Some or all of the units can be selected to achieve the purpose of this embodiment according to actual needs.
[0306] Furthermore, the functional units in the various embodiments of this application can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. If the functions are implemented as software functional units and sold or used as independent products, they can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this application, in essence, or the part that contributes to the prior art, 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 to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute all or part of the steps of the methods described in the various embodiments of this application. The aforementioned storage medium includes: USB flash drives, portable hard drives, read-only memory (ROM), random access memory (RAM), magnetic disks, optical disks, and other media capable of storing program code.
[0307] It should be noted that, in this application, the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or apparatus. Without further limitation, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the process, method, article, or apparatus that includes that element.
[0308] The sequence numbers of the embodiments in this application are for descriptive purposes only and do not represent the superiority or inferiority of the embodiments.
[0309] The methods disclosed in the several method embodiments provided in this application can be arbitrarily combined without conflict to obtain new method embodiments.
[0310] The features disclosed in the several product embodiments provided in this application can be arbitrarily combined without conflict to obtain new product embodiments.
[0311] The features disclosed in the several method or device embodiments provided in this application can be arbitrarily combined without conflict to obtain new method or device embodiments.
[0312] The above description is merely a specific embodiment of this application, but the scope of protection of this application is not limited thereto. Any variations or substitutions that can be easily conceived by those skilled in the art within the technical scope disclosed in this application should be included within the scope of protection of this application. Therefore, the scope of protection of this application should be determined by the scope of the claims. Industrial applicability
[0313] In this embodiment, whether at the encoding or decoding end, when inter-frame prediction is enabled for the current point cloud, a second reference point cloud with consistent geometric information is determined based on the reconstructed first reference point cloud of the current point cloud. Then, inter-frame prediction is performed on the points in the current point cloud based on the second reference point cloud. In this way, by constructing a second reference point cloud (i.e., a virtual reference point cloud) with consistent geometric information with the current point cloud, it can be guaranteed that for each target node in the current point cloud, there must exist a corresponding virtual reference node. This avoids the trouble of performing inter-frame prediction judgments on target nodes and reduces complexity. At the same time, it can fully utilize the attribute information of the reference point cloud, thereby improving the encoding and decoding performance of the RAHT transform.
Claims
1. A decoding method applied to a decoder, the method comprising: When inter-frame prediction is enabled for the current point cloud, a second reference point cloud that maintains consistent geometric information with the current point cloud is determined based on the reconstructed first reference point cloud of the current point cloud. Based on the second reference point cloud, inter-frame prediction is performed on the points in the current point cloud.
2. The method according to claim 1, wherein, The step of determining a second reference point cloud that maintains geometric information consistent with the current point cloud, based on the reconstructed first reference point cloud of the current point cloud, includes: A second reference point cloud that does not contain attribute information is determined; wherein the geometric information of the second reference point cloud is consistent with the geometric information of the current point cloud; In the first reference point cloud, a reference point corresponding to the first point in the second reference point cloud is determined, and the attribute information of the first point is determined according to the attribute information of the reference point, so as to obtain a second reference point cloud containing attribute information. The first point is a point in the second reference point cloud.
3. The method according to claim 2, wherein, Determining the reference point corresponding to the first point in the second reference point cloud from the first reference point cloud includes: Perform a nearest neighbor search in the first reference point cloud to determine at least one candidate point that is closest to the first point; The reference point corresponding to the first point is determined based on the at least one candidate point.
4. The method according to claim 3, wherein, When the number of candidate points is one, determining the reference point corresponding to the first point based on the at least one candidate point includes: The candidate point is determined as the reference point corresponding to the first point.
5. The method according to claim 3, wherein, When there are multiple candidate points, determining the reference point corresponding to the first point based on the at least one candidate point includes: The first candidate point found in the search is determined as the reference point corresponding to the first point; or, The plurality of candidate points are determined as reference points corresponding to the first point.
6. The method according to claim 5, wherein, When there are multiple reference points, determining the attribute information of the first point based on the attribute information of the reference points includes: The mean value of the attribute information of multiple reference points is calculated, and the obtained mean value is used as the attribute information of the first point. or, Based on the distances between the multiple reference points and the first point, a weighted average of the attribute information of the multiple reference points is calculated, and the resulting average is used as the attribute information of the first point.
7. The method according to claim 3, wherein, The nearest neighbor search in the first reference point cloud includes: Nearest neighbor search is performed in the first reference point cloud based on the K-nearest neighbor method.
8. The method according to claim 3, wherein, The nearest neighbor search in the first reference point cloud includes: Nearest neighbor search is performed in the first reference point cloud based on the Morton code method.
9. The method according to claim 2, wherein, The first reference point cloud includes at least one of the following: The current reference point cloud corresponding to the current point cloud; The candidate reference point cloud corresponding to the previous frame point cloud of the current point cloud.
10. The method according to claim 9, wherein, Determining the reference point corresponding to the first point in the second reference point cloud from the first reference point cloud includes: A nearest neighbor search is performed in the current reference point cloud to determine the first candidate point that is closest to the first point; A nearest neighbor search is performed in the candidate reference point cloud to determine the second candidate point that is closest to the first point; Based on the first candidate point and the second candidate point, determine the reference point corresponding to the first point.
11. The method according to claim 10, wherein, Determining the attribute information of the first point based on the attribute information of the reference point includes: The mean of the attribute information of the first candidate point and the attribute information of the second candidate point is calculated, and the mean result is used as the attribute information of the first point.
12. The method according to any one of claims 1 to 11, wherein, The step of performing inter-frame prediction on points in the current point cloud based on the second reference point cloud includes: Based on the attribute information of the second reference point cloud, inter-frame prediction is performed on the points in the current point cloud to determine the attribute prediction values of the points in the current point cloud.
13. The method according to any one of claims 1 to 11, wherein, The method further includes: Parse the first syntax element in the bitstream; When the first syntax element instructs the current point cloud to begin constructing a second reference point cloud, the step of determining a second reference point cloud that is consistent with the geometric information of the current point cloud is executed based on the reconstructed first reference point cloud of the current point cloud.
14. An encoding method applied to an encoder, the method comprising: When inter-frame prediction is enabled for the current point cloud, a second reference point cloud that maintains consistent geometric information with the current point cloud is determined based on the reconstructed first reference point cloud of the current point cloud. Based on the second reference point cloud, inter-frame prediction is performed on the points in the current point cloud.
15. The method according to claim 14, wherein, The step of determining a second reference point cloud that maintains geometric information consistent with the current point cloud, based on the reconstructed first reference point cloud of the current point cloud, includes: A second reference point cloud that does not contain attribute information is determined; wherein the geometric information of the second reference point cloud is consistent with the geometric information of the current point cloud; In the first reference point cloud, a reference point corresponding to the first point in the second reference point cloud is determined, and the attribute information of the first point is determined according to the attribute information of the reference point, so as to obtain a second reference point cloud containing attribute information. The first point is a point in the second reference point cloud.
16. The method according to claim 15, wherein, Determining the reference point corresponding to the first point in the second reference point cloud from the first reference point cloud includes: Perform a nearest neighbor search in the first reference point cloud to determine at least one candidate point that is closest to the first point; The reference point corresponding to the first point is determined based on the at least one candidate point.
17. The method according to claim 16, wherein, When the number of candidate points is one, determining the reference point corresponding to the first point based on the at least one candidate point includes: The candidate point is determined as the reference point corresponding to the first point.
18. The method according to claim 16, wherein, When there are multiple candidate points, determining the reference point corresponding to the first point based on the at least one candidate point includes: The first candidate point found in the search is determined as the reference point corresponding to the first point; or, The plurality of candidate points are determined as reference points corresponding to the first point.
19. The method according to claim 18, wherein, When there are multiple reference points, determining the attribute information of the first point based on the attribute information of the reference points includes: The mean value of the attribute information of multiple reference points is calculated, and the obtained mean value is used as the attribute information of the first point. or, Based on the distances between the multiple reference points and the first point, a weighted average of the attribute information of the multiple reference points is calculated, and the resulting average is used as the attribute information of the first point.
20. The method of claim 16, wherein, The nearest neighbor search in the first reference point cloud includes: Nearest neighbor search is performed in the first reference point cloud based on the K-nearest neighbor method.
21. The method according to claim 16, wherein, The nearest neighbor search in the first reference point cloud includes: Nearest neighbor search is performed in the first reference point cloud based on the Morton code method.
22. The method according to claim 15, wherein, The first reference point cloud includes at least one of the following: The current reference point cloud corresponding to the current point cloud; The candidate reference point cloud corresponding to the previous frame point cloud of the current point cloud.
23. The method according to claim 22, wherein, Determining the reference point corresponding to the first point in the second reference point cloud from the first reference point cloud includes: A nearest neighbor search is performed in the current reference point cloud to determine the first candidate point that is closest to the first point; A nearest neighbor search is performed in the candidate reference point cloud to determine the second candidate point that is closest to the first point; Based on the first candidate point and the second candidate point, determine the reference point corresponding to the first point.
24. The method according to claim 23, wherein, Determining the attribute information of the first point based on the attribute information of the reference point includes: The mean of the attribute information of the first candidate point and the attribute information of the second candidate point is calculated, and the mean result is used as the attribute information of the first point.
25. The method according to any one of claims 14 to 24, wherein, The step of performing inter-frame prediction on points in the current point cloud based on the second reference point cloud includes: Based on the attribute information of the second reference point cloud, inter-frame prediction is performed on the points in the current point cloud to determine the attribute prediction values of the points in the current point cloud.
26. The method according to claim 14, wherein, The method further includes: Determine whether the current point cloud is ready to build a second reference point cloud; When the construction of the second reference point cloud begins from the current point cloud, the step of determining the second reference point cloud that is consistent with the geometric information of the current point cloud is executed based on the reconstructed first reference point cloud of the current point cloud.
27. The method according to claim 26, wherein, Determining whether the current point cloud is ready to construct a second reference point cloud includes: When the construction of the second reference point cloud begins in the current point cloud, the encoding cost of the current point cloud is calculated to determine the first cost result; When the construction of the second reference point cloud is not enabled in the current point cloud, the encoding cost of the current point cloud is calculated to determine the second cost result; Based on the first cost result and the second cost result, determine whether the current point cloud should start constructing a second reference point cloud.
28. The method according to claim 27, wherein, The step of determining whether to initiate the construction of a second reference point cloud based on the first cost result and the second cost result includes: When the first cost result is less than the second cost result, it is determined that the current point cloud will begin constructing a second reference point cloud; If the first cost result is greater than the second cost result, it is determined that the current point cloud will not start constructing a second reference point cloud.
29. The method according to any one of claims 26 to 28, wherein, The method further includes: The value of the first syntax element is determined, and the second syntax element is used to indicate whether the current point cloud is enabled to construct a second reference point cloud; The value of the first syntax element is encoded, and the resulting encoded bits are written into the bitstream.
30. An encoder, the encoder comprising a first determining unit and a first predicting unit, wherein: The first determining unit is configured to, when inter-frame prediction is enabled in the current point cloud, determine a second reference point cloud that is consistent with the geometric information of the current point cloud based on the reconstructed first reference point cloud of the current point cloud; The first prediction unit is configured to perform inter-frame prediction of points in the current point cloud based on the second reference point cloud.
31. An encoder, the encoder comprising a first memory and a first processor, wherein: The first memory is used to store computer programs that can run on the first processor; The first processor is configured to perform the method as described in any one of claims 14 to 29 when running the computer program.
32. A decoder, the decoder comprising a second determining unit and a second predicting unit, wherein: The second determining unit is configured to, when inter-frame prediction is enabled in the current point cloud, determine a second reference point cloud whose geometric information is consistent with that of the current point cloud based on the reconstructed first reference point cloud of the current point cloud; The second prediction unit is configured to perform inter-frame prediction of points in the current point cloud based on the second reference point cloud.
33. A decoder, the decoder comprising a second memory and a second processor, wherein: The second memory is used to store computer programs that can run on the second processor; The second processor is configured to perform the method as described in any one of claims 1 to 13 when running the computer program.
34. A computer-readable storage medium having a computer program stored thereon, wherein, When the computer program is executed by a processor, it implements the method as described in any one of claims 1 to 13, or the method as described in any one of claims 14 to 29.
35. A computer-readable storage medium having a bitstream stored thereon, wherein, The bitstream is generated by performing the steps of the encoding method as described in any one of claims 14 to 29.