Decoding methods, encoding methods, decoders, encoders, and encoding / decoding devices

By determining coplanar, collinear, and concurrent predicted points based on geometric information during point cloud compression, and supplementing or replacing candidate points, the problem of poor prediction performance of point cloud attribute information is solved, and the storage and transmission efficiency of point cloud data is improved.

CN117426086BActive Publication Date: 2026-05-26GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP LTD

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP LTD
Filing Date
2021-06-11
Publication Date
2026-05-26

AI Technical Summary

Technical Problem

How to improve the prediction effect of attribute information in point cloud compression using existing technologies is an urgent problem to be solved.

Method used

By determining the predicted points in the point cloud that are coplanar, collinear, or concurrent with the current point based on geometric information, and supplementing or replacing the candidate points in the decoding order, the attribute prediction value of the current point is obtained.

Benefits of technology

It improves the accuracy of point cloud attribute prediction, reduces the need for data storage and transmission, and optimizes point cloud data management.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN117426086B_ABST
    Figure CN117426086B_ABST
Patent Text Reader

Abstract

This application provides a decoding method, an encoding method, a decoder, an encoder, and an encoding / decoding device. The decoding method includes: parsing the bitstream of a point cloud to obtain the geometric information of the point cloud; if the current point to be decoded in the point cloud is a point other than the first n points in the decoding order of the attribute information of the point cloud, where n is a positive integer, determining at least one predicted point in the point cloud that is coplanar, collinear, or concurrent with the current point based on the geometric information; supplementing or replacing the at least one predicted point by traversing at least one candidate point located before the current point in the decoding order to obtain the predicted point corresponding to the current point; and determining the attribute prediction value of the current point based on the attribute reconstruction value of the predicted point corresponding to the current point. The decoding method provided by this application can improve the prediction effect for attribute information.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of encoding and decoding technology, and more specifically, to decoding methods, encoding methods, decoders, encoders, and encoding and decoding devices. Background Technology

[0002] Point clouds are becoming increasingly prevalent in various fields, such as virtual / augmented reality, robotics, geographic information systems, and medicine. With the continuous improvement in the accuracy and speed of scanning equipment, it is possible to accurately acquire large amounts of point clouds from the surface of objects; often, a single scene can correspond to hundreds of thousands of points. This massive number of points also presents challenges for computer storage and transmission. Therefore, point compression has become a hot topic.

[0003] For point cloud compression, the main tasks are to compress its location and attribute information. Specifically, the location information of the point cloud is first octree encoded; then, based on the location information of the current point after octree encoding, points are selected from the already encoded points to predict the attribute information of the current point. The attribute information of the selected points is then predicted, and the color information is encoded by subtracting the original attribute information from the predicted value, thus achieving the encoding of the point cloud.

[0004] To date, improving the prediction effect of attribute information is a technical problem that urgently needs to be solved in this field. Summary of the Invention

[0005] This application provides a decoding method, an encoding method, a decoder, an encoder, and an encoding / decoding device that can improve the prediction effect for attribute information.

[0006] Firstly, this application provides a decoding method, including:

[0007] The point cloud's bitstream is parsed to obtain its geometric information;

[0008] If the current point to be decoded in the point cloud is a point other than the first n points in the decoding order of the attribute information of the point cloud, where n is a positive integer, then based on the geometric information, at least one predicted point in the point cloud that is coplanar, collinear, or concurrent with the current point is determined.

[0009] By traversing at least one candidate point in the decoding order that is preceding the current point, the at least one predicted point is supplemented or replaced to obtain the predicted point corresponding to the current point;

[0010] Based on the attribute reconstruction value of the prediction point corresponding to the current point, determine the attribute prediction value of the current point.

[0011] Secondly, this application provides an encoding method, including:

[0012] Obtain the geometric information of the point cloud;

[0013] If the current point to be encoded in the point cloud is a point other than the first n points in the encoding order of the attribute information of the point cloud, where n is a positive integer, then based on the geometric information, at least one predicted point in the point cloud that is coplanar, collinear, or concurrent with the current point is determined.

[0014] By traversing at least one candidate point in the encoding order that is preceding the current point, the at least one predicted point is supplemented or replaced to obtain the predicted point corresponding to the current point;

[0015] Based on the attribute reconstruction value of the prediction point corresponding to the current point, determine the attribute prediction value of the current point.

[0016] Thirdly, this application provides a decoder, including:

[0017] The parsing unit is used to parse the bitstream of the point cloud to obtain the geometric information of the point cloud;

[0018] The first determining unit is configured to determine at least one predicted point in the point cloud that is coplanar, collinear, or concurrent with the current point if the current point to be decoded in the point cloud is a point other than the first n points in the decoding order of the attribute information of the point cloud, where n is a positive integer, based on the geometric information.

[0019] The supplementary replacement unit is used to supplement or replace the at least one predicted point by traversing at least one candidate point located before the current point in the decoding order, so as to obtain the predicted point corresponding to the current point.

[0020] The second determining unit is used to determine the attribute prediction value of the current point based on the attribute reconstruction value of the prediction point corresponding to the current point.

[0021] Fourthly, this application provides an encoder, comprising:

[0022] Acquisition unit, used to acquire geometric information of point cloud;

[0023] The first determining unit is configured to determine at least one predicted point in the point cloud that is coplanar, collinear, or concurrent with the current point if the current point to be encoded in the point cloud is a point other than the first n points in the encoding order of the attribute information of the point cloud, where n is a positive integer, based on the geometric information.

[0024] The supplementary replacement unit is used to supplement or replace the at least one predicted point by traversing at least one candidate point located before the current point in the encoding order, so as to obtain the predicted point corresponding to the current point.

[0025] The second determining unit is used to determine the attribute prediction value of the current point based on the attribute reconstruction value of the prediction point corresponding to the current point.

[0026] Based on the above technical solution, for the current point to be decoded in the point cloud that is a point other than the first n points in the decoding order of the attribute information of the point cloud, firstly, based on the geometric information, at least one predicted point in the point cloud that is coplanar, collinear, or concurrent with the current point is determined; then, by traversing at least one candidate point located before the current point in the decoding order, the at least one predicted point is supplemented or replaced to obtain the predicted point corresponding to the current point; equivalently, if the at least one predicted point determined based on geometric relationships is insufficient (i.e., the nearest neighbor is unavailable) or is not the nearest neighbor, the at least one predicted point can be supplemented or replaced by traversing the at least one candidate point. This not only ensures that the current point has enough predicted points, but also ensures that the predicted point corresponding to the current point is the nearest neighbor of the current point, thereby improving the prediction accuracy of the attribute prediction value of the current point.

[0027] In other words, since geometric relationships can also be called spatial relationships, traversing the at least one candidate point is equivalent to performing a global search based on the at least one candidate point. Based on this, by traversing the at least one candidate point located before the current point in the decoding order, the at least one predicted point is supplemented or replaced. This is equivalent to finding the predicted point corresponding to the current point by combining spatial relationships with a global search. That is, by enriching the way the predicted point of the current point is obtained, the prediction accuracy of the attribute prediction value of the current point is improved. Attached Figure Description

[0028] Figure 1 This is an example of a point cloud image provided in an embodiment of this application.

[0029] Figure 2 yes Figure 1 A magnified view of a portion of the point cloud image shown.

[0030] Figure 3 This is an example of a point cloud image with six viewing angles provided in the embodiments of this application.

[0031] Figure 4 This is a schematic block diagram of the coding framework provided in the embodiments of this application.

[0032] Figure 5This is a schematic block diagram of the decoding framework provided in the embodiments of this application.

[0033] Figure 6 This is an example of a bounding box provided in an embodiment of this application.

[0034] Figure 7 This is an example of octree partitioning of bounding boxes provided in the embodiments of this application.

[0035] Figures 8 to 10 The encoding order of Morton codes in two-dimensional space is shown.

[0036] Figure 11 The encoding order of Morton codes in three-dimensional space is shown.

[0037] Figure 12 This is a schematic flowchart of the decoding method provided in the embodiments of this application.

[0038] Figure 13 This is a schematic flowchart of the encoding method provided in the embodiments of this application.

[0039] Figure 14 This is a schematic block diagram of the decoder provided in the embodiments of this application.

[0040] Figure 15 This is a schematic block diagram of the encoder provided in the embodiments of this application.

[0041] Figure 16 This is a schematic block diagram of the encoding / decoding device provided in the embodiments of this application. Detailed Implementation

[0042] The technical solutions in the embodiments of this application will now be described with reference to the accompanying drawings.

[0043] A point cloud is a set of discrete points in space that are randomly distributed and represent the spatial structure and surface properties of a three-dimensional object or scene. Figure 1 and Figure 2 The images show a 3D point cloud and a magnified view of a portion of it, revealing that the point cloud surface is composed of densely distributed points.

[0044] Two-dimensional images contain information at each pixel, and their distribution is regular, so there's no need to record their positional information separately. However, the distribution of points in a point cloud in three-dimensional space is random and irregular, so it's 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 object's color. For point clouds, in addition to color, a common attribute for each point is reflectance, which reflects the object's surface material. Therefore, point cloud data typically includes geometric information (x, y, z) composed of three-dimensional positional information, attribute information composed of three-dimensional color information (r, g, b), and one-dimensional reflectance information (r).

[0045] In other words, each point in a point cloud can include geometric information and attribute information. The geometric information of each point refers to its Cartesian three-dimensional coordinates. The attribute information of each point can include, but is not limited to, at least one of the following: color information, material information, and laser reflection intensity information. Color information can be from any color space. For example, color information can be Red Green Blue (RGB). Alternatively, color information can be luminance / chrominance (YCbCr, YUV) information, where Y represents luminance (Luma), Cb(U) represents the blue chrominance component, and Cr(V) represents the red chrominance component. Each point in a point cloud has the same number of attribute information. For example, each point in a point cloud may have both color information and laser reflection intensity information. Or, each point in a point cloud may have color information, material information, and laser reflection intensity information.

[0046] Point cloud images can have multiple viewing angles, for example, such as Figure 3 The point cloud image shown can be viewed from six angles. The data storage format corresponding to the point cloud image consists of a header information part and a data part. 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.

[0047] As an example, the data storage format for point cloud images can be implemented as follows:

[0048] ply

[0049] Format ascii 1.0

[0050] element vertex 207242

[0051] property float x

[0052] property float y

[0053] property float z

[0054] property uchar red

[0055] property uchar green

[0056] property uchar blue 75 318 0 0 142 0 75 319 0 0 143 0 75 319 1 1 9 9 75 315 0 1 9 9

[0061] The data storage format for the aforementioned point cloud image is ".ply", represented by ASCII code, with a total of 207242 points. Each point has three-dimensional position information (xyz) and three-dimensional color information (rgb).

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

[0063] Based on application scenarios, point clouds can be divided into two main categories: machine-perceived point clouds and human-perceived point clouds. Application scenarios for machine-perceived point clouds include, but are not limited to: autonomous navigation systems, real-time inspection systems, geographic information systems, visual sorting robots, and disaster relief robots. Application scenarios for human-perceived point clouds include, but are not limited to: digital cultural heritage, free-viewpoint broadcasting, 3D immersive communication, and 3D immersive interaction. Correspondingly, point clouds can be classified into dense point clouds and sparse point clouds based on their acquisition method; they can also be classified into static point clouds and dynamic point clouds based on their acquisition approach. More specifically, they can be divided into three types: static point clouds, dynamic point clouds, and dynamically acquired point clouds. For static point clouds, the object is stationary, and the device acquiring the point cloud is also stationary; for dynamic point clouds, the object is moving, but the device acquiring the point cloud is stationary; for dynamically acquired point clouds, the device acquiring the point cloud is moving.

[0064] 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. Specifically, point clouds of object surfaces can be acquired using acquisition devices such as photoelectric radar, lidar, laser scanners, and multi-view cameras. Point clouds obtained based on laser measurement principles can include the 3D coordinates and laser reflection intensity of points. Point clouds obtained based on photogrammetry principles can include the 3D coordinates and color information of points. Point clouds obtained by combining laser measurement and photogrammetry principles can include the 3D coordinates, laser reflection intensity, and color information of points. These technologies reduce the cost and time required for point cloud data acquisition and improve data accuracy. For example, in the medical field, point clouds of biological tissues and organs can be obtained using magnetic resonance imaging (MRI), computed tomography (CT), and electromagnetic positioning information. These technologies have reduced the cost and time required to acquire point clouds and improved data accuracy. This revolution in point cloud data acquisition has made it possible to acquire massive amounts of point cloud data. However, with the growth of application demands, the processing of massive 3D point cloud data is encountering bottlenecks due to limitations in storage space and transmission bandwidth.

[0065] Taking a point cloud video with a frame rate of 30fps as an example, each frame contains 700,000 points. Each point in each frame 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) * 30fps * 10s = 3.15GB. In contrast, a 10-second 1280×720 two-dimensional video with a YUV sampling format of 4:2:0 and a frame rate of 24fps has a data size of approximately 1280 * 720 * 12 bits * 24 frames * 10s ≈ 0.33GB. A 10-second two-view 3D video has a data size of approximately 0.33 * 2 = 0.66GB. It is clear that the data size of a point cloud video far exceeds that of two-dimensional and three-dimensional videos of the same duration. Therefore, to better manage data, save server storage space, and reduce transmission traffic and time between servers and clients, point cloud compression has become a key issue in promoting the development of the point cloud industry.

[0066] Point cloud compression typically employs separate compression of point cloud geometric information and attribute information. At the encoding end, the point cloud geometric information is first encoded in the geometric encoder, and then the reconstructed geometric information is input as supplementary information to the attribute encoder to assist in the compression of point cloud attributes. At the decoding end, the point cloud geometric information is first decoded in the geometric decoder, and then the decoded geometric information is input as supplementary information to the attribute decoder to assist in the compression of point cloud attributes. The entire encoder-decoder system consists of preprocessing / post-processing, geometric encoding / decoding, and attribute encoding / decoding.

[0067] Point clouds can be encoded and decoded using various types of encoding and decoding frameworks. As examples, the encoding / decoding framework can be the Geometry Point Cloud Compression (G-PCC) or Video Point Cloud Compression (V-PCC) framework provided by the Moving Picture Experts Group (MPEG), or the AVS-PCC or Point Cloud Compression Reference Platform (PCRM) framework provided by the Audio Video Standard (AVS) task force. The G-PCC framework can be used to compress first-type static point clouds and third-type dynamically acquired point clouds, while the V-PCC framework can be used to compress second-type dynamic point clouds. 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. Both G-PCC and AVS-PCC are for static sparse point clouds, and their encoding frameworks are largely the same. The following description uses the PCRM framework as an example to illustrate the encoding / decoding frameworks applicable to the embodiments of this application.

[0068] Figure 4 This is a schematic block diagram of the coding framework provided in the embodiments of this application.

[0069] like Figure 4As shown, in the geometric encoding part of the encoding end, the original geometric information is first preprocessed. The geometric origin is normalized to the minimum position in the point cloud space by coordinate translation, and the geometric information is converted from floating-point numbers to integers by coordinate quantization to facilitate subsequent regularization processing. Then, the regularized geometric information is geometrically encoded. An octree structure is used to recursively divide the point cloud space. Each time, the current block is divided into eight sub-blocks of the same size, and the occupancy codeword status of each sub-block is judged. When the sub-block does not contain any points, it is recorded as empty; otherwise, it is recorded as non-empty. The occupancy codeword information of all blocks is recorded in the last layer of the recursive division and encoded. The geometric information expressed by the octree structure is input into the geometric entropy encoder to form a geometric code stream, and geometric reconstruction processing is performed in the encoder. The reconstructed geometric information is input into the attribute encoder as additional information. In the attribute encoding section, the original attribute information is first preprocessed. Since the geometric information changes after geometric encoding, attribute values ​​need to be reassigned to each point after geometric encoding. This process is called attribute recoloring. In addition, if the attribute information being processed is color information, the original colors need to be transformed into the YUV color space, which is more in line with the visual characteristics of the human eye. Then, the preprocessed attribute information is encoded. Attribute encoding first requires reordering the point cloud. The reordering method is Morton code, so the traversal order of attribute encoding is Morton order. The attribute prediction method in PCRM is single-point prediction based on Morton order. That is, following the Morton order, we trace back one point from the current point to be encoded. The point found is the prediction reference point for the current point to be encoded. Then, the attribute reconstruction value of the prediction reference point is used as the attribute prediction value. The attribute residual is the difference between the attribute value of the current point to be encoded and the attribute prediction value. Finally, the residual is quantized and input into the attribute entropy encoder to form the attribute code stream.

[0070] Figure 5 This is a schematic block diagram of the decoding framework provided in the embodiments of this application.

[0071] like Figure 5As shown, at the decoding end, the same approach of decoding geometry and attributes separately is adopted. In the geometry decoding part, entropy decoding is first performed on the geometry bitstream to obtain the geometric information of each point. Then, an octree structure is constructed in the same way as the geometry encoding. Combined with the decoded geometry, the geometric information expressed by the coordinate transformation through the octree structure is reconstructed. On the one hand, this information is dequantized and inversely translated to obtain the decoded geometry information; on the other hand, it is input as additional information into the attribute decoder. In the attribute decoding part, the Morton order is constructed in the same way as the encoding end. First, entropy decoding is performed on the attribute bitstream to obtain the quantized residual information; then, dequantization is performed to obtain the point cloud residual. Similarly, in the same way as the attribute encoding, the attribute prediction value of the current point to be decoded is obtained. Then, the attribute prediction value is added to the residual value to recover the YUV attribute value of the current point to be decoded. Finally, the decoded attribute information is obtained through inverse color space transformation.

[0072] For ease of description, the method for regularizing point clouds will be explained below.

[0073] The irregular spatial distribution of point clouds presents challenges to the encoding process; therefore, a recursive octree structure is adopted, such as... Figure 6 As shown, the points in the point cloud are represented as the centers of a cube in a regularized manner. Specifically, the entire point cloud is first placed within a cube-shaped bounding box, and the coordinates of the points in the point cloud are represented as (x, y, z). k ,y k ,z k ), k = 0, ..., K-1, where K is the total number of points in the point cloud, and the boundary values ​​of the point cloud in the x, y, and z directions are respectively:

[0074] x min =min(x 0 x 1 , ..., x K-1 );

[0075] y min =min(y 0 y 1 , ..., y K-1 );

[0076] z min =min(z) 0 , z 1 ,…,z K-1 );

[0077] x max =max(z) 0 , z 1 ,…,z K-1 );

[0078] y max=max(y 0 y 1 , ..., y K-1 );

[0079] z max =max(z) 0 , z 1 , ..., z K-1 ).

[0080] Then the origin of the bounding box (x origin y origin , z origin The following can be calculated:

[0081] x crigin =int(floor(x) min ));

[0082] y origin =int(floor(y) min ));

[0083] z origin =int(floor(z) min )).

[0084] Here, floor() represents flooring down or rounding down. int() represents flooring operation.

[0085] Based on the calculation formulas using boundary values ​​and the origin, the dimensions of the bounding box in the x, y, and z directions can be calculated as follows:

[0086] BoudingBoxSize x =int(x max -x origin +1;

[0087] BoudingBoxSize y =int(y max -y origin +1;

[0088] BoudingBoxSize z =int(z max -z origin )+1.

[0089] After obtaining the dimensions of the bounding box in the x, y, and z directions, as follows: Figure 7As shown, the bounding box is first partitioned into octrees, resulting in eight sub-blocks each time. Then, the non-empty blocks (blocks containing points) within these sub-blocks are partitioned into octrees again. This process is recursively repeated until a certain depth is reached. The final size of the non-empty sub-blocks is called a voxel. Each voxel contains one or more points. The geometric positions of these points are normalized to form the center point of the voxel, and the attribute value of this center point is the average of the attribute values ​​of all points in the voxel. Regularizing the point cloud into blocks in space facilitates the description of the relationships between points in the point cloud, and thus enables the expression of a specific encoding order. Each voxel is encoded in a certain order, that is, the point (or "node") represented by the voxel is encoded. A commonly used encoding order is the cross-separation Morton order.

[0090] Figures 8 to 10 The encoding order of Morton codes in two-dimensional space is shown. Figure 11 The encoding order of the Merton code in three-dimensional space is shown. The order of the arrows indicates the encoding order of the points under the Merton order. Figure 8 The Morton coding sequence of a 2x2 pixel "z" shape in two-dimensional space is shown. Figure 9 This illustrates the "z"-shaped Morton coding sequence between four 2x2 blocks in two-dimensional space. Figure 10 The diagram illustrates the "z"-shaped Morton coding sequence between four 4x4 blocks in two-dimensional space, forming the Morton coding sequence for the entire 8x8 block. The extended Morton coding sequence in three-dimensional space is shown below. Figure 11 As shown, Figure 11 The image shows 16 points. Within each "z" character, the Morton coding order between each "z" character is first along the x-axis, then along the y-axis, and finally along the z-axis.

[0091] In the intra-frame prediction part of point cloud compression, for color attributes, the prediction of the current point is mainly based on the neighboring points of the current point. The residual information is calculated by comparing the attribute prediction value with the attribute value of the current point, and then quantized and other processes are performed. The residual information is then transmitted to the decoding end. After receiving and parsing the bit stream, the decoding end obtains the residual information through inverse transformation and inverse quantization. The decoding end predicts the attribute prediction value through the same process, and then superimposes it with the residual information to obtain the attribute reconstruction value of the current point.

[0092] In this process, intra-frame attribute prediction utilizes the geometric relationships between points, using points that are geometrically coplanar, collinear, or concurrent with the current point as prediction points. Simultaneously, the prediction points must satisfy the condition that they were encoded or decoded before the current point. Then, a weighted average is used to calculate the attribute prediction value for the current point. For example, a common weighting method is to use the reciprocal of the geometric Manhattan distance between the prediction point and the current point; that is, points coplanar with the current point have a weight of 1, points collinear with the current point have a weight of 1 / 2, and points concurrent with the current point have a weight of 1 / 3. Specifically, for the first point being encoded, since there is no reference point for prediction, it can be omitted from prediction, or its attribute prediction value can be set to a fixed value, such as 0.

[0093] In short, the predicted point for the current point is determined based on the following two conditions:

[0094] a) It satisfies the coplanar, collinear, and concurrent relationships with the current point.

[0095] b) Encoding is completed before the current point.

[0096] For a given point, there are 6 faces, 12 edges, and 8 points. Therefore, the maximum number of points that are geometrically coplanar, collinear, and concurrent with the current point are 6, 12, and 8, respectively. Assuming the current point O is numbered 7, the points coplanar with it are 3, 5, 6, 14, 21, and 35; the points collinear with it are 1, 2, 4, 10, 12, 17, 20, 28, 33, 34, 42, and 49; and the points concurrent with it are 0, 8, 16, 24, 32, 40, 48, and 56. Among all points that are geometrically coplanar, collinear, or concurrent with the current point, regardless of the current point's position, the points that may satisfy the condition "encoding completed before the current point" are: coplanar with the current point (3, 5, 6); collinear with the current point (1, 2, 4, 10, 12, 17, 20, 33, 34); and concurrent with the current point (0, 8, 16, 24, 32, 40, 48). Therefore, the prediction point for the current point is selected from the following: coplanar with the current point (3, 5, 6); collinear with the current point (1, 2, 4, 10, 12, 17, 20, 33, 34); and concurrent with the current point (0, 8, 16, 24, 32, 40, 48).

[0097] In point cloud compression, the intra-frame prediction component of attributes operates on the intra-frame prediction component of the PCRM framework, affecting both the encoder and decoder. Since the current PCRM encoding / decoding framework only involves a single frame, attribute prediction specifically refers to intra-frame prediction. Figure 4 and Figure 5 Attribute prediction in [the context of the text].

[0098] The implementation method of PCRM's attribute encoder is as follows:

[0099] The geometrically reconstructed point cloud is recursively divided into several cubic voxels by an octree. Within each voxel, points undergo intra-frame prediction to calculate attribute prediction values ​​according to the Merton coding order. For the first encoded point, steps a), c), and d) are executed; for the remaining points, steps b), c), and d) are executed.

[0100] a) When the current point is the first point of the encoding, there is no reference point for prediction, and its attribute prediction value is directly set to (128,128,128).

[0101] (b) Using points in the point cloud that are coplanar, collinear, or intercentric with the current point as the search range for prediction points, determine a minimum of 3 and a maximum of 6 points as prediction points. Calculate the weighted average of the attribute reconstruction values ​​of all prediction points as the attribute prediction value of the current point. For example, if the points coplanar with the current point are 3, 5, and 6; the points collinear with the current point are 1, 2, 4, 10, 12, 17, 20, 33, and 34; and the points intercentric with the current point are 0, 8, 16, 24, 32, 40, and 48, determine a minimum of 3 and a maximum of 6 points as prediction points. Calculate the weighted average of the attribute reconstruction values ​​of all prediction points as the attribute prediction value of the current point. If the number of prediction points determined within the search range is less than 3, then find the point with the closest Manhattan distance among the first 32 points in the Morton order of the current point, and supplement with 3 points as prediction points. The attribute prediction value is the weighted average of these 3 points.

[0102] As an example, the formula for calculating the weighted average of the attribute reconstruction values ​​of all predicted points is as follows:

[0103]

[0104] in, The weighted average of the attribute reconstruction values ​​for all predicted points, i.e., the attribute prediction value for the current point O. w represents the attribute reconstruction value for the i-th prediction point. i w represents the weight of the i-th prediction point. When the prediction point is empty, w i =0; R is the total number of prediction points.

[0105] c) The residual is the difference between the original attribute value and the predicted value at the current point. Then, the residual is transformed and quantized.

[0106] d) The attribute prediction value is superimposed with the residual information after inverse quantization, inverse transformation and other operations to obtain the attribute reconstruction value of the current point as reference information for subsequent coding units.

[0107] The implementation method of PCRM's attribute decoder is as follows:

[0108] The geometrically reconstructed point cloud is recursively divided into several cubic voxels by an octree. The points in each voxel are subjected to intra-frame prediction to calculate attribute prediction values ​​in the same Morton order as the encoding process. For the first point to be decoded, processes a) and c) are executed, and for the remaining points, processes b) and c) are executed.

[0109] a) When the current point is the first point to be decoded, there is no reference point for prediction, and its attribute prediction value is directly set to (128,128,128).

[0110] (b) Using points in the point cloud that are coplanar, collinear, or intercentric with the current point as the search range for prediction points, determine a minimum of 3 and a maximum of 6 points as prediction points. Calculate the weighted average of the attribute reconstruction values ​​of all prediction points as the attribute prediction value of the current point. For example, if the points coplanar with the current point are 3, 5, and 6; the points collinear with the current point are 1, 2, 4, 10, 12, 17, 20, 33, and 34; and the points intercentric with the current point are 0, 8, 16, 24, 32, 40, and 48, determine a minimum of 3 and a maximum of 6 points as prediction points. Calculate the weighted average of the attribute reconstruction values ​​of all prediction points as the attribute prediction value of the current point. If the number of prediction points determined within the search range is less than 3, then find the point with the closest Manhattan distance among the first 32 points in the Morton order of the current point, and supplement with 3 points as prediction points. The attribute prediction value is the weighted average of these 3 points.

[0111] As an example, the formula for calculating the weighted average of the attribute reconstruction values ​​of all predicted points is as follows:

[0112]

[0113] in, The weighted average of the attribute reconstruction values ​​for all predicted points, i.e., the attribute prediction value for the current point O. w represents the attribute reconstruction value for the i-th prediction point. i w represents the weight of the i-th prediction point. When the prediction point is empty, w i =0; R is the total number of prediction points.

[0114] c) Read the residual information of the current point from the bitstream, and after inverse quantization, inverse transformation and other operations, superimpose it with the attribute prediction value of the current point to obtain the attribute reconstruction value of the current point as reference information for subsequent coding units.

[0115] The above analysis reveals that the intra-frame prediction method used by the attribute encoder and attribute decoder of PCRM locally utilizes reference information around the current point, and is divided into two steps:

[0116] a) Use points that are coplanar, collinear, or concurrent with the current point as the search range for prediction points, and determine a minimum of 3 and a maximum of 6 points as prediction points;

[0117] b) When the number of prediction points determined within the search range is less than 3, find the point with the closest Manhattan distance among the first 32 points under the current point Morton order, and fill in 3 points as prediction points.

[0118] However, in step a), to control the buffering, it considers referring to the first 128 points from the current point in the Morton order to find points that are coplanar, collinear, or concurrent with the current point. In other words, in step a), it is also necessary to determine whether the coplanar, collinear, or concurrent points are among the first 128 points from the current point in the Morton order. In step b), the Manhattan distance of the 32 points is compared according to the Morton order. The predicted point found by this method is only the relatively closest point among the 32 points, and is not necessarily the closest to the current point. In other words, the intra-frame prediction method used by the attribute encoder and attribute decoder of the above PCRM cannot always find the predicted point closest to the current point among the 128 points.

[0119] This application provides a decoding method, an encoding method, a decoder, an encoder, and an encoding / decoding device that can improve the prediction effect for attribute information.

[0120] Figure 12 This is a schematic flowchart of the decoding method 100 provided in the embodiments of this application.

[0121] like Figure 12 As shown, the decoding method 100 may include:

[0122] S110, parse the bitstream of the point cloud to obtain the geometric information of the point cloud;

[0123] S120, if the current point to be decoded in the point cloud is a point other than the first n points in the decoding order of the attribute information of the point cloud, where n is a positive integer, based on the geometric information, determine at least one predicted point in the point cloud that is coplanar, collinear, or concurrent with the current point;

[0124] S130, by traversing at least one candidate point located before the current point in the decoding order, the at least one predicted point is supplemented or replaced to obtain the predicted point corresponding to the current point;

[0125] S140, for the attribute reconstruction value of the prediction point corresponding to the current point, determine the attribute prediction value of the current point.

[0126] Based on the above technical solution, for the current point to be decoded in the point cloud that is a point other than the first n points in the decoding order of the attribute information of the point cloud, firstly, based on the geometric information, at least one predicted point in the point cloud that is coplanar, collinear, or concurrent with the current point is determined; then, by traversing at least one candidate point located before the current point in the decoding order, the at least one predicted point is supplemented or replaced to obtain the predicted point corresponding to the current point; equivalently, if the at least one predicted point determined based on geometric relationships is insufficient (i.e., the nearest neighbor is unavailable) or is not the nearest neighbor, the at least one predicted point can be supplemented or replaced by traversing the at least one candidate point. This not only ensures that the current point has enough predicted points, but also ensures that the predicted point corresponding to the current point is the nearest neighbor of the current point, thereby improving the prediction accuracy of the attribute prediction value of the current point.

[0127] In other words, since geometric relationships can also be called spatial relationships, traversing the at least one candidate point is equivalent to performing a global search based on the at least one candidate point. Based on this, by traversing the at least one candidate point located before the current point in the decoding order, the at least one predicted point is supplemented or replaced. This is equivalent to finding the predicted point corresponding to the current point by combining spatial relationships with a global search. That is, by enriching the way the predicted point of the current point is obtained, the prediction accuracy of the attribute prediction value of the current point is improved.

[0128] In addition, the technical solution provided in this application was tested on AVS’s latest point cloud compression platform, PCRM3.0, and the test results are shown in Tables 1 to 4.

[0129] Table 1

[0130]

[0131] Table 2

[0132]

[0133] Table 3

[0134]

[0135] Table 4

[0136]

[0137] As shown in Tables 1 to 3, "-" represents a decrease in bit distortion (BD-rate). BD-rate represents the difference in bit rate at the same peak signal-to-noise ratio (PSNR). A smaller BD-rate indicates better performance of the coding algorithm. Table 1 shows the BD-rate of each component of Cat1B and Cat3 under limit-lossy geometry compression and lossy attributes compression. Cat1B represents a point cloud containing only color information, while Cat3 represents a point cloud containing color information and other attribute information. Table 2 shows the BD-rate of color information in Cat1B and Cat3 under lossless geometry compression and lossy attributes compression. Table 3 shows the BD-rate of each component of Cat1B and Cat3 under lossless geometry compression and limit-lossy attributes compression. Table 4 shows the bpip ratio of Cat1B and Cat3 under lossless geometry compression and lossless attributes compression. A larger bpip ratio indicates better performance of the coding algorithm. As can be seen from Tables 1 to 4, the decoding method provided in this application has a significant performance improvement.

[0138] It should be noted that, in this embodiment, the number of predicted points corresponding to the current point is not fixed. The minimum and maximum number of predicted points corresponding to the current point depend on the size of the fixed cache. Therefore, the predicted points corresponding to the current point can also be referred to as predicted points under the fixed cache or nearest neighbor points. Optionally, the minimum number of predicted points corresponding to the current point can be 3, and the maximum number can be 6.

[0139] Furthermore, this application does not limit the specific implementation method of the decoding order. For example, the decoding order can be Morton sort or Hilbert sort. Morton sort is the order of Morton codes generated from geometric positions using a cross-separation computation method; Hilbert sort is the order of traversal of the Hilbert curve in space.

[0140] In some embodiments, n equals 3; the method 100 may further include:

[0141] If the current point is the first point in the decoding sequence, the attribute prediction value of the first point is set to a preset value; if the current point is the second point in the decoding sequence, the attribute reconstruction value of the first point is determined as the attribute prediction value of the second point; if the current point is the third point in the decoding sequence, the weighted average of the attribute reconstruction values ​​of the first point and the attribute reconstruction values ​​of the second point is determined as the attribute prediction value of the third point.

[0142] In some embodiments, by traversing at least one candidate point preceding the current point in the decoding order to supplement or replace the at least one predicted point, the method 100 may further include:

[0143] The at least one candidate point is determined based on the index of the current point in the decoding order.

[0144] In one implementation, if the index of the current point is less than or equal to a first value, all points in the decoding order preceding the current point are determined as at least one candidate point; if the index of the current point is greater than the first value, a first number of points in the decoding order preceding the current point are determined as at least one candidate point. Optionally, the first value is 128.

[0145] In other words, when the index of the current point is greater than the first value, the search range for candidate points is the first value of points preceding the current point in the Morton order; when the index of the current point is less than or equal to the first value, the search range for candidate points is all points preceding the current point in the Morton order. Assuming that the number of at least one predicted point in the point cloud that is coplanar, collinear, or concurrent with the current point is less than 3, then within the search range for candidate points, the point closest to the current point in terms of Manhattan distance is found, and this closest point is added to the at least one predicted point.

[0146] In some embodiments, S130 may include:

[0147] If the number of at least one predicted point is less than the second or third value, the at least one predicted point is supplemented by traversing at least one candidate point in the decoding order preceding the current point to obtain the predicted point corresponding to the current point, wherein the third value is greater than or equal to the second value. Alternatively, if the number of at least one predicted point is less than the second or third value, the at least one predicted point is supplemented and replaced by traversing at least one candidate point in the decoding order preceding the current point to obtain the predicted point corresponding to the current point.

[0148] In some embodiments, S130 may include:

[0149] If the number of the at least one predicted point is equal to the third value, the at least one predicted point is replaced by traversing the at least one candidate point located before the current point in the decoding order to obtain the predicted point corresponding to the current point.

[0150] In short, if the number of at least one predicted point is less than the second value, or if the number of at least one predicted point is greater than or equal to the second value and less than the third value, the predicted points are supplemented by traversing the at least one candidate point; if the number of at least one predicted point is equal to the third value, the predicted points with too small a weight among the at least one predicted points are replaced by traversing the at least one candidate point.

[0151] In some embodiments, S130 may include:

[0152] If the number of the at least one predicted point is less than the second value, the unvisited candidate points in the at least one candidate point are traversed in descending order of the index in the decoding order, and the traversed candidate points are added to the at least one predicted point until the number of the at least one predicted point is equal to the second value.

[0153] Of course, in other alternative embodiments, if the number of the at least one predicted point is less than the second value, under certain conditions, the unvisited candidate points among the at least one candidate points can be traversed in descending order of the index in the decoding order, and the traversed candidate points can be added to the at least one predicted point until the number of the at least one predicted point equals the second value. For example, if the number of the at least one predicted point is less than the second value, the unvisited candidate points among the at least one candidate points can be traversed in descending order of the index in the decoding order; if the weight of the current candidate point is greater than the minimum weight among the at least one weights corresponding to the at least one predicted point, or if the weight of the current candidate point is equal to the minimum weight, or if the weight of the current candidate point is equal to the minimum weight and the index of the current candidate point is less than the index of the predicted point corresponding to the minimum weight, then the current candidate point is added to the at least one predicted point until the number of the at least one predicted point equals the second value.

[0154] In some embodiments, S130 may include:

[0155] If the number of the at least one predicted point is greater than or equal to the second value and less than the third value, the untraversed candidate points among the at least one candidate points are traversed in descending order of the index in the decoding order. If the weight of the current candidate point is greater than the minimum weight among the at least one weights corresponding to the at least one predicted point, the current candidate point is added to the at least one predicted point. The third value is greater than or equal to the second value.

[0156] Of course, in other alternative embodiments, if the number of the at least one predicted point is greater than or equal to the second value and less than the third value, the unvisited candidate points among the at least one candidate points are traversed in descending order of the index in the decoding order. Alternatively, under other conditions, the current candidate point can be added to the at least one predicted point, where the third value is greater than or equal to the second value. For example, if the number of the at least one predicted point is greater than or equal to the second value and less than the third value, the unvisited candidate points among the at least one candidate points are traversed in descending order of the index in the decoding order; if the weight of the current candidate point is equal to the minimum weight, or if the weight of the current candidate point is equal to the minimum weight and the index of the current candidate point is less than the index of the predicted point corresponding to the minimum weight, the current candidate point is added to the at least one predicted point.

[0157] In some embodiments, S130 may include:

[0158] If the number of the at least one predicted point is equal to the third value, the unvisited candidate points among the at least one candidate points are traversed in descending order of index. If the weight of the current candidate point is greater than the minimum weight among the at least one weights corresponding to the at least one predicted point, or if the weight of the current candidate point is equal to the minimum weight and the index of the current candidate point is less than the index of the predicted point corresponding to the minimum weight, the predicted point corresponding to the minimum weight is replaced by the current candidate point.

[0159] Of course, in other alternative embodiments, if the number of the at least one predicted point is equal to the third value, the unvisited candidate points among the at least one candidate points are traversed in descending order of index in the decoding order. Alternatively, under other conditions, the predicted point corresponding to the minimum weight can be replaced by the current candidate point. For example, if the number of the at least one predicted point is equal to the third value, the unvisited candidate points among the at least one candidate points are traversed in descending order of index in the decoding order; if the weight of the current candidate point is equal to the minimum weight, the predicted point corresponding to the minimum weight is replaced by the current candidate point.

[0160] In some embodiments, S130 may include:

[0161] If the number of the at least one predicted point is less than the second value, the untraversed candidate points among the at least one candidate points are traversed in descending order of the index in the decoding order, and the traversed candidate points are added to the at least one predicted point until the number of the at least one predicted point is equal to the second value; if the at least one candidate point also includes untraversed candidate points, the untraversed candidate points among the at least one candidate points are traversed in descending order of the index in the decoding order. If the weight of the current candidate point is greater than the minimum weight among the at least one weights corresponding to the at least one predicted point, the current candidate point is added to the at least one predicted point, and the third value is greater than or equal to the second value; if the number of the at least one predicted point is equal to the third value and the at least one candidate point also includes untraversed candidate points, the untraversed candidate points among the at least one candidate points are traversed in descending order of the index. If the weight of the current candidate point is greater than the minimum weight among the at least one weights corresponding to the at least one predicted point, or if the weight of the current candidate point is equal to the minimum weight and the index of the current candidate point is less than the index of the predicted point corresponding to the minimum weight, the predicted point corresponding to the minimum weight is replaced by the current candidate point.

[0162] Of course, in other alternative embodiments, if the number of the at least one predicted point is equal to the second value or the third value, the traversal of the untraversed candidate points in the at least one candidate point can be stopped; or, if the number of the at least one predicted point is equal to the second value or the third value, a portion of the untraversed candidate points in the at least one candidate point can be traversed.

[0163] As an example, if the number of the at least one predicted point is less than the second value, the untraced candidate points in the at least one candidate point are traversed in descending order of the index in the decoding order, and the traversed candidate points are added to the at least one predicted point, until the number of the at least one predicted point is equal to the second value, at which point the traversal of the untraced candidate points in the at least one candidate point is stopped.

[0164] As an example, if the number of the at least one predicted point is less than the second value, the unvisited candidate points among the at least one candidate points are traversed in descending order of the index in the decoding order, and the traversed candidate points are added to the at least one predicted point until the number of the at least one predicted point is equal to the second value; if the number of the at least one predicted point reaches the second value, and the at least one candidate point still includes unvisited candidate points, the m1 unvisited candidate points among the at least one candidate points are traversed in descending order of the index in the decoding order, where m1 is greater than or equal to 0; if the weight of the current candidate point is greater than the minimum weight among the at least one weights corresponding to the at least one predicted point, the current candidate point is added to the at least one predicted point; if the number of the at least one predicted point reaches the third value before all m1 candidate points have been traversed, and the third value is greater than or equal to the second value, the traversal of the unvisited candidate points among the m1 candidate points is stopped.

[0165] As another example, if the number of the at least one predicted point is less than the second value, the unvisited candidate points among the at least one candidate points are traversed in descending order of the index in the decoding order, and the traversed candidate points are added to the at least one predicted point until the number of the at least one predicted point equals the second value; if the number of the at least one predicted point reaches the second value, and the at least one candidate point still includes unvisited candidate points, the m1 unvisited candidate points among the at least one candidate points are traversed in descending order of the index in the decoding order, where m1 is greater than or equal to 0; if the weight of the current candidate point is greater than the weight of the at least one predicted point respectively corresponding to If the minimum weight among at least one weight is used to supplement the current candidate point to the at least one prediction point; if the number of the at least one prediction point reaches a third value before all m1 candidate points have been traversed, and the third value is greater than or equal to the second value, the untraversed candidate points among the m1 candidate points are traversed in descending order of index. If the weight of the current candidate point is greater than the minimum weight among the at least one weights corresponding to the at least one prediction point, or if the weight of the current candidate point is equal to the minimum weight and the index of the current candidate point is less than the index of the prediction point corresponding to the minimum weight, the prediction point corresponding to the minimum weight is replaced by the current candidate point.

[0166] As another example, if the number of the at least one predicted point is less than the second value, the untraversed candidate points among the at least one candidate points are traversed in descending order of the index in the decoding order, and the traversed candidate points are added to the at least one predicted point until the number of the at least one predicted point is equal to the second value; if the number of the at least one predicted point reaches the second value, and the at least one candidate point still includes untraversed candidate points, the untraversed candidate points among the at least one candidate points are traversed in descending order of the index in the decoding order; if the weight of the current candidate point is greater than the minimum weight among the at least one weights corresponding to the at least one predicted point, the current candidate point is added to the at least one predicted point; if the number of the at least one predicted point reaches the third value before all at least one candidate point has been traversed, and the third value is greater than or equal to the second value, the traversal of the untraversed candidate points among the at least one candidate point is stopped.

[0167] As another example, if the number of the at least one predicted point is less than the second value, the unvisited candidate points among the at least one candidate points are traversed in descending order of the index in the decoding order, and the traversed candidate points are added to the at least one predicted point until the number of the at least one predicted point equals the second value; if the number of the at least one predicted point reaches the second value, and the at least one candidate point still includes unvisited candidate points, the unvisited candidate points among the at least one candidate points are traversed in descending order of the index in the decoding order; if the weight of the current candidate point is greater than the minimum weight among the at least one weights corresponding to the at least one predicted point, the current candidate point is... Supplement to the at least one prediction point; if the number of the at least one prediction point reaches a third value before all at least one candidate point has been traversed, and the third value is greater than or equal to the second value, continue traversing the m2 untraversed candidate points in the at least one candidate point in descending order of index in the decoding order, where m2 is greater than or equal to 0; if the weight of the current candidate point is greater than the minimum weight among the at least one weights corresponding to the at least one prediction point, or if the weight of the current candidate point is equal to the minimum weight and the index of the current candidate point is less than the index of the prediction point corresponding to the minimum weight, replace the prediction point corresponding to the minimum weight with the current candidate point.

[0168] As an example, when the number of the at least one predicted point reaches a second or third value, the traversal of the at least one candidate point is stopped.

[0169] As another example, when the number of candidate points that have been traversed reaches a preset threshold, traversing the at least one candidate point is stopped.

[0170] In other words, the conditions for stopping the traversal of the at least one candidate point include, but are not limited to: the number of the at least one predicted point reaching a second value or a third value, and / or the number of traversed candidate points reaching a preset threshold. Optionally, the third value is greater than or equal to the second value. Optionally, the number of traversed candidate points can be counted from the first candidate point to be traversed among the at least one candidate points, or it can be counted from the first candidate point to be traversed after the number of the at least one predicted point reaches the second value or the third value. This application embodiment does not limit this.

[0171] Of course, in the specific examples above, the conditions for supplementing or replacing the prediction points can be replaced by other conditions, and this application embodiment does not specifically limit this.

[0172] It should be noted that if the number of the at least one predicted point is less than the second value, or if the number of the at least one predicted point is greater than or equal to the second value and less than the third value, even after traversing all the untraversed candidate points in the at least one candidate point in descending order of the index in the decoding order, the number of the at least one predicted point may still be less than the third value. In this case, there will be no scheme to replace the predicted points in the at least one predicted point. Similarly, if the number of the at least one predicted point is less than the second value, or if the number of the at least one predicted point is greater than or equal to the second value and less than the third value, after traversing some of the untraversed candidate points in the at least one candidate point according to the descending order of the index in the decoding order, the number of the at least one predicted point is already equal to the third value. At this time, continue to traverse the untraversed candidate points in the at least one candidate point according to the descending order of the index in the decoding order to replace the predicted points with too small weights in the at least one predicted point. Of course, it is also possible that after continuing to traverse the untraversed candidate points in the at least one candidate point according to the descending order of the index in the decoding order, no suitable candidate point for replacing the predicted points in the at least one predicted point is found.

[0173] In this embodiment, since there may be more than the second value of points that have the same Manhattan distance as the current point, setting the number of prediction points corresponding to the current point to be greater than or equal to the second value and less than or equal to the third value can improve the accuracy of weighted prediction.

[0174] In some embodiments, the method 100 may further include:

[0175] After supplementing the at least one prediction point with the current candidate point or replacing the prediction point corresponding to the minimum weight with the current candidate point, the at least one prediction point is sorted in descending order of weight.

[0176] As an example, if the number of the at least one predicted point is less than the second value, the unvisited candidate points among the at least one candidate points are traversed in descending order of index in the decoding order, and the traversed candidate points are added to the at least one predicted point, until the number of the at least one predicted point equals the second value, and the at least one predicted point is sorted in descending order of weight; and / or, if the number of the at least one predicted point is greater than or equal to the second value and less than the third value, the unvisited candidate points among the at least one candidate points are traversed in descending order of index in the decoding order, and if the weight of the current candidate point is greater than the weight of the last predicted point among the at least one predicted points, the current candidate point is added to the at least one predicted point. The at least one predicted point is sorted in descending order of weight, and the third value is greater than or equal to the second value; and / or, if the number of the at least one predicted point is equal to the third value, the untraversed candidate points among the at least one candidate points are traversed in descending order of index in the decoding order. If the weight of the current candidate point is greater than the weight of the last predicted point among the at least one predicted points, or if the weight of the current candidate point is equal to the weight of the last predicted point among the at least one predicted points and the index of the current candidate point is less than the index of the last predicted point among the at least one predicted points, the predicted point corresponding to the minimum weight is replaced by the current candidate point, and the at least one predicted point is sorted in descending order of weight.

[0177] In some embodiments, the second value is 3 and the third value is 6.

[0178] Of course, in other alternative embodiments, the values ​​of the second and third values ​​can also be other values, and this application does not specifically limit them. For example, the values ​​of the second and third values ​​can also be 4 and 7, respectively.

[0179] In some embodiments, the weight of the current candidate point is the reciprocal of the distance between the current candidate point and the current point.

[0180] As an example, the weight of the current candidate point is the reciprocal of the Manhattan distance between the current candidate point and the current point. When calculating the weight of the current candidate point, assume the current point's index is i and its geometric coordinates are (x...). i y i , z i The geometric coordinates of the current candidate point are (x, y). ij y ij , z ij Where j = 0, 1, 2, ..., k, then the weight w of each candidate point is... ijAs shown in Equation 1 below:

[0181]

[0182] Of course, in other alternative embodiments, the weight of the current candidate point can be calculated using other distances. For example, the weight of the current candidate point can be the reciprocal of the Euclidean distance between the current candidate point and the current point. Alternatively, the weight of the current candidate point can be a fixed constant.

[0183] In some embodiments, S140 may include:

[0184] The weighted average of the attribute reconstruction values ​​of the prediction points corresponding to the current point is determined as the predicted value of the current point.

[0185] In other words, the predicted value of the current point can be determined based on the following formula:

[0186]

[0187] in, The weighted average of the attribute reconstruction values ​​for all predicted points, i.e., the attribute prediction value for the current point O. w represents the attribute reconstruction value for the i-th prediction point. i w represents the weight of the i-th prediction point. When the prediction point is empty, w i =0; R is the total number of prediction points.

[0188] The decoding method provided in this application will be described below with reference to specific embodiments.

[0189] In this embodiment, the first value is 128, the second value is 3, and the third value is 6. Based on this, the implementation method of the attribute decoder is as follows:

[0190] The geometrically reconstructed point cloud is recursively divided into several cubic voxels by an octree. Points in each voxel undergo intra-frame prediction to calculate attribute prediction values ​​according to the same Morton order as the encoding process. For the first decoded point, processes a) and e) are executed; for the remaining points, processes b), c), d), and e) are executed.

[0191] a) When the current point is the first point to be decoded, there is no reference point for prediction, and its attribute prediction value is directly set to (128,128,128); when the current point is the second point to be decoded, the first point is used as the prediction point, and its attribute prediction value is the attribute reconstruction value of the first point; when the current point is the third point to be decoded, the first and second points are used as the prediction points, and its attribute prediction value is the weighted average of the attribute reconstruction values ​​of the first and second points.

[0192] (b) Using points in the point cloud that are coplanar, collinear, or intercentric with the current point as the search range for prediction points, determine a minimum of 3 and a maximum of 6 points as prediction points, and calculate the weighted average of the attribute reconstruction values ​​of all prediction points as the attribute prediction value of the current point. For example, using points 3, 5, and 6 that are coplanar with the current point, points 1, 2, 4, 10, 12, 17, 20, 33, and 34 that are collinear with the current point, and points 0, 8, 16, 24, 32, 40, and 48 that are intercentric with the current point as the search range for prediction points, determine a minimum of 3 and a maximum of 6 points as prediction points, and calculate the weighted average of the attribute reconstruction values ​​of all prediction points as the attribute prediction value of the current point.

[0193] c) When the index of the current point is greater than 128, the search range for candidate points is the first 128 points of the current point in the Morton order; when the index of the current point is less than or equal to 128, the search range for candidate points is all points preceding the current point in the Morton order. Assuming that the number of prediction points determined in b) is less than 3, then within the search range for candidate points, the point closest to the current point in terms of Manhattan distance is searched, and a minimum of 3 and a maximum of 6 points are determined as prediction points.

[0194] Optional, the specific determination method is as follows:

[0195] First, traverse and evaluate each of the 128 candidate points in Morton order. When the number of predicted points is less than 3, directly determine the candidate point as the predicted point, and then arrange all the predicted points in descending order of weight value. When the number of predicted points is greater than or equal to 3 and less than 6, if the weight of the current candidate point is greater than the weight of the last predicted point, then select the current candidate point as the predicted point, and then rearrange all the predicted points in descending order of weight value. When the number of predicted points is equal to 6, if the weight of the current candidate point is greater than the weight of the last predicted point, or if the weight of the current candidate point is equal to the weight of the last predicted point and the index of the current candidate point is less than the index of the last predicted point, then replace the original last predicted point with the candidate point, and then rearrange all the predicted points in descending order of weight value.

[0196] d) Calculate the weighted average of the attribute reconstruction values ​​of all predicted points according to the following formula, and use it as the attribute prediction value of the current point:

[0197]

[0198] in, The weighted average of the attribute reconstruction values ​​for all predicted points, i.e., the attribute prediction value for the current point O. w represents the attribute reconstruction value for the i-th prediction point. i w represents the weight of the i-th prediction point. When the prediction point is empty, w i =0; R is the total number of prediction points.

[0199] e) Read the residual information of the current point from the bitstream, and after inverse quantization, inverse transformation and other operations, superimpose it with the attribute prediction value of the current point to obtain the attribute reconstruction value of the current point as reference information for subsequent decoding units.

[0200] It should be noted that this embodiment is applicable to Figure 5 The intra-prediction part of the decoding framework shown. Intra-prediction algorithms based on a combination of spatial relationships and global search can employ various decoding orders, including but not limited to Morton order, Hilbert order, etc.; intra-prediction algorithms based on a combination of spatial relationships and global search can employ various weight selection methods, including but not limited to weights based on Euclidean distance, fixed constant weights, etc.

[0201] The preferred embodiments of this application have been described in detail above with reference to the accompanying drawings. However, this application is not limited to the specific details of the above embodiments. Within the scope of the technical concept of this application, various simple modifications can be made to the technical solutions of this application, and these simple modifications all fall within the protection scope of this application. For example, the various specific technical features described in the above specific embodiments can be combined in any suitable manner without contradiction. To avoid unnecessary repetition, this application will not describe the various possible combinations separately. Furthermore, various different embodiments of this application can also be arbitrarily combined, as long as they do not violate the spirit of this application, they should also be considered as the content disclosed in this application. It should also be understood that in the various method embodiments of this application, the sequence number of each process does not imply the order of execution. The execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of this application.

[0202] Figure 13 This is a schematic flowchart based on the encoding method 200 provided in the embodiments of this application.

[0203] like Figure 13 As shown, the decoding method 200 may include:

[0204] S210, acquire the geometric information of the point cloud;

[0205] S220, if the current point to be encoded in the point cloud is a point other than the first n points in the encoding order of the attribute information of the point cloud, where n is a positive integer, based on the geometric information, determine at least one predicted point in the point cloud that is coplanar, collinear, or concurrent with the current point;

[0206] S230, by traversing at least one candidate point in the encoding order that is located before the current point, the at least one predicted point is supplemented or replaced to obtain the predicted point corresponding to the current point;

[0207] S240, for the attribute reconstruction value of the prediction point corresponding to the current point, determine the attribute prediction value of the current point.

[0208] In some embodiments, n equals 3; the method 200 may further include:

[0209] If the current point is the first point in the encoding order, set the attribute prediction value of the first point to a preset value;

[0210] If the current point is the second point in the encoding order, the attribute reconstruction value of the first point is determined as the attribute prediction value of the second point;

[0211] If the current point is the third point in the encoding order, the weighted average of the attribute reconstruction values ​​of the first point and the attribute reconstruction values ​​of the second point is determined as the attribute prediction value of the third point.

[0212] In some embodiments, before obtaining the prediction point corresponding to the current point by traversing at least one candidate point located before the current point in the encoding order to supplement or replace the at least one predicted point, the method 200 may further include:

[0213] The at least one candidate point is determined based on the index of the current point in the encoding order.

[0214] In some embodiments, if the index of the current point is less than or equal to a first value, all points in the encoding order preceding the current point are determined as at least one candidate point; if the index of the current point is greater than the first value, a first number of points in the encoding order preceding the current point are determined as at least one candidate point.

[0215] In some embodiments, the first value is 128.

[0216] In some embodiments, S230 may include:

[0217] If the number of the at least one predicted point is less than the second value, the unvisited candidate points among the at least one candidate points are traversed in descending order of the index in the encoding order, and the traversed candidate points are added to the at least one predicted point, until the number of the at least one predicted point is equal to the second value; and / or

[0218] If the number of the at least one predicted point is greater than or equal to the second value and less than the third value, traverse the untraversed candidate points among the at least one candidate points in descending order of the index in the encoding order. If the weight of the current candidate point is greater than the minimum weight among the at least one weights corresponding to the at least one predicted point, add the current candidate point to the at least one predicted point. The third value is greater than or equal to the second value; and / or

[0219] If the number of the at least one predicted point is equal to the third value, the unvisited candidate points among the at least one candidate points are traversed in descending order of the index in the encoding order. If the weight of the current candidate point is greater than the minimum weight among the at least one weights corresponding to the at least one predicted point, or if the weight of the current candidate point is equal to the minimum weight and the index of the current candidate point is less than the index of the predicted point corresponding to the minimum weight, the predicted point corresponding to the minimum weight is replaced by the current candidate point.

[0220] In some embodiments, S230 may include:

[0221] If the number of the at least one predicted point is less than the second value, the untraced candidate points in the at least one candidate point are traversed in descending order of the index in the encoding order, and the traversed candidate points are added to the at least one predicted point until the number of the at least one predicted point is equal to the second value.

[0222] If the at least one candidate point also includes untraversed candidate points, continue to traverse the untraversed candidate points in the at least one candidate point in descending order of index in the encoding order. If the weight of the current candidate point is greater than the minimum weight among the at least one weights corresponding to the at least one prediction point, the current candidate point is added to the at least one prediction point.

[0223] If the number of the at least one predicted point is equal to the third value and the at least one candidate point also includes untraversed candidate points, continue to traverse the untraversed candidate points in the at least one candidate point in descending order of the index in the encoding order. If the weight of the current candidate point is greater than the minimum weight among the at least one weights corresponding to the at least one predicted point, or if the weight of the current candidate point is equal to the minimum weight and the index of the current candidate point is less than the index of the predicted point corresponding to the minimum weight, replace the predicted point corresponding to the minimum weight with the current candidate point. The third value is greater than or equal to the second value.

[0224] In some embodiments, the method 200 may further include:

[0225] After supplementing the at least one prediction point with the current candidate point or replacing the prediction point corresponding to the minimum weight with the current candidate point, the at least one prediction point is sorted in descending order of weight.

[0226] In some embodiments, the second value is 3 and the third value is 6.

[0227] In some embodiments, the weight of the current candidate point is the reciprocal of the distance between the current candidate point and the current point.

[0228] In some embodiments, S240 may include:

[0229] The weighted average of the attribute reconstruction values ​​of the prediction points corresponding to the current point is determined as the predicted value of the current point.

[0230] It should be understood that the encoding method 200 can be referred to the relevant description of the decoding method 100, and will not be repeated here to avoid repetition.

[0231] The decoding method provided in this application will be described below with reference to specific embodiments.

[0232] In this embodiment, the first value is 128, the second value is 3, and the third value is 6. Based on this, the implementation method of the attribute encoder is as follows:

[0233] The geometrically reconstructed point cloud is recursively divided into several cubic voxels by an octree. Points in each voxel undergo intra-frame prediction to calculate attribute prediction values ​​according to the same Morton order as the encoding process. For the first point being encoded, processes a) and e) are executed; for the remaining points, processes b), c), d), and e) are executed.

[0234] a) When the current point is the first point of the code, there is no reference point for prediction, and its attribute prediction value is directly set to (128,128,128); when the current point is the second point of the code, the first point is used as the prediction point, and its attribute prediction value is the attribute reconstruction value of the first point; when the current point is the third point of the code, the first and second points are used as the prediction points, and its attribute prediction value is the weighted average of the attribute reconstruction values ​​of the first and second points.

[0235] (b) Using points in the point cloud that are coplanar, collinear, or intercentric with the current point as the search range for prediction points, determine a minimum of 3 and a maximum of 6 points as prediction points, and calculate the weighted average of the attribute reconstruction values ​​of all prediction points as the attribute prediction value of the current point. For example, using points 3, 5, and 6 that are coplanar with the current point, points 1, 2, 4, 10, 12, 17, 20, 33, and 34 that are collinear with the current point, and points 0, 8, 16, 24, 32, 40, and 48 that are intercentric with the current point as the search range for prediction points, determine a minimum of 3 and a maximum of 6 points as prediction points, and calculate the weighted average of the attribute reconstruction values ​​of all prediction points as the attribute prediction value of the current point.

[0236] c) When the index of the current point is greater than 128, the search range for candidate points is the first 128 points of the current point in the Morton order; when the index of the current point is less than or equal to 128, the search range for candidate points is all points preceding the current point in the Morton order. Assuming that the number of prediction points determined in b) is less than 3, then within the search range for candidate points, the point closest to the current point in terms of Manhattan distance is searched, and a minimum of 3 and a maximum of 6 points are determined as prediction points.

[0237] Optional, the specific determination method is as follows:

[0238] First, traverse and evaluate each of the 128 candidate points in Morton order. When the number of predicted points is less than 3, directly determine the candidate point as the predicted point, and then arrange all the predicted points in descending order of weight value. When the number of predicted points is greater than or equal to 3 and less than 6, if the weight of the current candidate point is greater than the weight of the last predicted point, then select the current candidate point as the predicted point, and then rearrange all the predicted points in descending order of weight value. When the number of predicted points is equal to 6, if the weight of the current candidate point is greater than the weight of the last predicted point, or if the weight of the current candidate point is equal to the weight of the last predicted point and the index of the current candidate point is less than the index of the last predicted point, then replace the original last predicted point with the candidate point, and then rearrange all the predicted points in descending order of weight value.

[0239] d) Calculate the weighted average of the attribute reconstruction values ​​of all predicted points according to the following formula, and use it as the attribute prediction value of the current point:

[0240]

[0241] in, The weighted average of the attribute reconstruction values ​​for all predicted points, i.e., the attribute prediction value for the current point O. w represents the attribute reconstruction value for the i-th prediction point. i w represents the weight of the i-th prediction point. When the prediction point is empty, w i =0; R is the total number of prediction points.

[0242] e) The residual is the difference between the original attribute value and the predicted value of the current point. Then, the residual is transformed and quantized.

[0243] f) The attribute prediction value is superimposed with the residual information after inverse quantization, inverse transformation, etc., to obtain the attribute reconstruction value of the current point as reference information for subsequent coding units.

[0244] It should be noted that this embodiment is applicable to Figure 4 The intra-prediction part of the coding framework shown. Intra-prediction algorithms based on a combination of spatial relationships and global search can employ various coding orders, including but not limited to Morton order, Hilbert order, etc.; intra-prediction algorithms based on a combination of spatial relationships and global search can employ various weight selection methods, including but not limited to weights based on Euclidean distance, fixed constant weights, etc.

[0245] The encoder or decoder provided in the embodiments of this application will now be described with reference to the accompanying drawings.

[0246] Figure 14 This is a schematic block diagram of the decoder 300 provided in the embodiments of this application.

[0247] like Figure 14 As shown, the decoder 300 may include:

[0248] The parsing unit 310 is used to parse the bitstream of the point cloud to obtain the geometric information of the point cloud;

[0249] The first determining unit 320 is used to determine at least one predicted point in the point cloud that is coplanar, collinear, or concurrent with the current point if the current point to be decoded in the point cloud is a point other than the first n points in the decoding order of the attribute information of the point cloud, where n is a positive integer, based on the geometric information.

[0250] The supplementary replacement unit 330 is used to supplement or replace the at least one predicted point by traversing at least one candidate point located before the current point in the decoding order, so as to obtain the predicted point corresponding to the current point.

[0251] The second determining unit 340 is used to determine the attribute prediction value of the current point based on the attribute reconstruction value of the prediction point corresponding to the current point.

[0252] In some embodiments, n equals 3; the second determining unit 340 is further configured to:

[0253] If the current point is the first point in the decoding order, set the attribute prediction value of the first point to a preset value;

[0254] If the current point is the second point in the decoding order, the attribute reconstruction value of the first point is determined as the attribute prediction value of the second point;

[0255] If the current point is the third point in the decoding order, the weighted average of the attribute reconstruction values ​​of the first point and the attribute reconstruction values ​​of the second point is determined as the attribute prediction value of the third point.

[0256] In some embodiments, the supplementation and replacement unit 330 supplements or replaces at least one predicted point by traversing at least one candidate point located before the current point in the decoding order to obtain the predicted point corresponding to the current point. The supplementation and replacement unit 330 is further configured to:

[0257] The at least one candidate point is determined based on the index of the current point in the decoding order.

[0258] In some embodiments, the supplementary replacement unit 330 is specifically used for:

[0259] If the index of the current point is less than or equal to the first value, all points in the decoding order that are located before the current point are determined as the at least one candidate point;

[0260] If the index of the current point is greater than the first value, the first number of points in the decoding order that are preceding the current point are determined as the at least one candidate point.

[0261] In some embodiments, the first value is 128.

[0262] In some embodiments, the supplementary replacement unit 330 is specifically used for:

[0263] If the number of the at least one predicted point is less than the second value, the unvisited candidate points among the at least one candidate points are traversed in descending order of index in the decoding order, and the traversed candidate points are added to the at least one predicted point, until the number of the at least one predicted point is equal to the second value; and / or

[0264] If the number of the at least one predicted point is greater than or equal to the second value and less than the third value, traverse the untraversed candidate points among the at least one candidate points in descending order of the index in the decoding order. If the weight of the current candidate point is greater than the minimum weight among the at least one weights corresponding to the at least one predicted point, add the current candidate point to the at least one predicted point. The third value is greater than or equal to the second value; and / or

[0265] If the number of the at least one prediction point is equal to the third value, the unvisited candidate points among the at least one candidate points are traversed in descending order of the index in the decoding order. If the weight of the current candidate point is greater than the minimum weight among the at least one weights corresponding to the at least one prediction point, or if the weight of the current candidate point is equal to the minimum weight and the index of the current candidate point is less than the index of the prediction point corresponding to the minimum weight, the prediction point corresponding to the minimum weight is replaced by the current candidate point.

[0266] In some embodiments, the supplementary replacement unit 330 is specifically used for:

[0267] If the number of the at least one predicted point is less than the second value, the untraced candidate points in the at least one candidate point are traversed in descending order of the index in the decoding order, and the traversed candidate points are added to the at least one predicted point until the number of the at least one predicted point is equal to the second value.

[0268] If the at least one candidate point also includes untraversed candidate points, continue to traverse the untraversed candidate points in the at least one candidate point in descending order of index in the decoding order. If the weight of the current candidate point is greater than the minimum weight among the at least one weights corresponding to the at least one prediction point, the current candidate point is added to the at least one prediction point.

[0269] If the number of the at least one predicted point is equal to the third value and the at least one candidate point also includes untraversed candidate points, continue to traverse the untraversed candidate points in the at least one candidate point in descending order of index. If the weight of the current candidate point is greater than the minimum weight among the at least one weights corresponding to the at least one predicted point, or if the weight of the current candidate point is equal to the minimum weight and the index of the current candidate point is less than the index of the predicted point corresponding to the minimum weight, replace the predicted point corresponding to the minimum weight with the current candidate point. The third value is greater than or equal to the second value.

[0270] In some embodiments, the supplementary replacement unit 330 is further configured to:

[0271] After supplementing the at least one prediction point with the current candidate point or replacing the prediction point corresponding to the minimum weight with the current candidate point, the at least one prediction point is sorted in descending order of weight.

[0272] In some embodiments, the second value is 3 and the third value is 6.

[0273] In some embodiments, the weight of the current candidate point is the reciprocal of the distance between the current candidate point and the current point.

[0274] In some embodiments, the second determining unit 340 is specifically used for:

[0275] The weighted average of the attribute reconstruction values ​​of the prediction points corresponding to the current point is determined as the predicted value of the current point.

[0276] It should be noted that this decoder 300 can also be combined with... Figure 5 The decoding framework shown can be used to replace or combine units in the decoder 300 with relevant parts of the decoding framework. For example, the first determining unit 320, the supplementary replacement unit 330, and the second determining unit 340 can be used to implement the attribute prediction part of the encoding framework.

[0277] Figure 15 This is a schematic block diagram of the encoder 400 provided in the embodiments of this application.

[0278] like Figure 15 As shown, the encoder 400 may include:

[0279] Acquisition unit 410 is used to acquire geometric information of point cloud;

[0280] The first determining unit 420 is used to determine at least one predicted point in the point cloud that is coplanar, collinear, or concurrent with the current point if the current point to be encoded in the point cloud is a point other than the first n points in the encoding order of the attribute information of the point cloud, where n is a positive integer, based on the geometric information.

[0281] The supplementary replacement unit 430 is used to supplement or replace the at least one predicted point by traversing at least one candidate point located before the current point in the encoding order, so as to obtain the predicted point corresponding to the current point.

[0282] The second determining unit 440 is used to determine the attribute prediction value of the current point based on the attribute reconstruction value of the prediction point corresponding to the current point.

[0283] In some embodiments, n equals 3; the second determining unit 440 can also be used for:

[0284] If the current point is the first point in the encoding order, set the attribute prediction value of the first point to a preset value;

[0285] If the current point is the second point in the encoding order, the attribute reconstruction value of the first point is determined as the attribute prediction value of the second point;

[0286] If the current point is the third point in the encoding order, the weighted average of the attribute reconstruction values ​​of the first point and the attribute reconstruction values ​​of the second point is determined as the attribute prediction value of the third point.

[0287] In some embodiments, the supplementation and replacement unit 430 supplements or replaces the at least one predicted point by traversing at least one candidate point located before the current point in the encoding order to obtain the predicted point corresponding to the current point. The supplementation and replacement unit 430 may also be used for:

[0288] The at least one candidate point is determined based on the index of the current point in the encoding order.

[0289] In some embodiments, the supplementary replacement unit 430 is specifically used for:

[0290] If the index of the current point is less than or equal to the first value, all points in the encoding order that are located before the current point are determined as the at least one candidate point;

[0291] If the index of the current point is greater than the first value, the first number of points in the encoding order that are preceding the current point are determined as the at least one candidate point.

[0292] In some embodiments, the first value is 128.

[0293] In some embodiments, the supplementary replacement unit 430 is specifically used for:

[0294] If the number of the at least one predicted point is less than the second value, the unvisited candidate points among the at least one candidate points are traversed in descending order of the index in the encoding order, and the traversed candidate points are added to the at least one predicted point, until the number of the at least one predicted point is equal to the second value; and / or

[0295] If the number of the at least one predicted point is greater than or equal to the second value and less than the third value, traverse the untraversed candidate points among the at least one candidate points in descending order of the index in the encoding order. If the weight of the current candidate point is greater than the minimum weight among the at least one weights corresponding to the at least one predicted point, add the current candidate point to the at least one predicted point. The third value is greater than or equal to the second value; and / or

[0296] If the number of the at least one predicted point is equal to the third value, the unvisited candidate points among the at least one candidate points are traversed in descending order of the index in the encoding order. If the weight of the current candidate point is greater than the minimum weight among the at least one weights corresponding to the at least one predicted point, or if the weight of the current candidate point is equal to the minimum weight and the index of the current candidate point is less than the index of the predicted point corresponding to the minimum weight, the predicted point corresponding to the minimum weight is replaced by the current candidate point.

[0297] In some embodiments, the supplementary replacement unit 430 is specifically used for:

[0298] If the number of the at least one predicted point is less than the second value, the untraced candidate points in the at least one candidate point are traversed in descending order of the index in the encoding order, and the traversed candidate points are added to the at least one predicted point until the number of the at least one predicted point is equal to the second value.

[0299] If the at least one candidate point also includes untraversed candidate points, continue to traverse the untraversed candidate points in the at least one candidate point in descending order of index in the encoding order. If the weight of the current candidate point is greater than the minimum weight among the at least one weights corresponding to the at least one prediction point, the current candidate point is added to the at least one prediction point.

[0300] If the number of the at least one predicted point is equal to the third value and the at least one candidate point also includes untraversed candidate points, continue to traverse the untraversed candidate points in the at least one candidate point in descending order of the index in the encoding order. If the weight of the current candidate point is greater than the minimum weight among the at least one weights corresponding to the at least one predicted point, or if the weight of the current candidate point is equal to the minimum weight and the index of the current candidate point is less than the index of the predicted point corresponding to the minimum weight, replace the predicted point corresponding to the minimum weight with the current candidate point. The third value is greater than or equal to the second value.

[0301] In some embodiments, the supplementary replacement unit 430 may also be used for:

[0302] After supplementing the at least one prediction point with the current candidate point or replacing the prediction point corresponding to the minimum weight with the current candidate point, the at least one prediction point is sorted in descending order of weight.

[0303] In some embodiments, the second value is 3 and the third value is 6.

[0304] In some embodiments, the weight of the current candidate point is the reciprocal of the distance between the current candidate point and the current point.

[0305] In some embodiments, the second determining unit 440 is specifically used for:

[0306] The weighted average of the attribute reconstruction values ​​of the prediction points corresponding to the current point is determined as the predicted value of the current point.

[0307] It should be noted that this encoder 400 can also be combined with... Figure 4 The encoding framework shown can be used to replace or combine units in the encoder 400 with relevant parts of the encoding framework. For example, the first determining unit 420, the supplementary replacement unit 430, and the second determining unit 440 can be used to implement the attribute prediction part of the encoding framework.

[0308] It should be understood that the device embodiments and method embodiments can correspond to each other, and similar descriptions can be referred to the method embodiments. To avoid repetition, further details are omitted here. Specifically, the decoder 300 can correspond to the corresponding subject in executing the method 100 of the embodiments of this application, and each unit in the decoder 300 implements the corresponding process in the method 100. Similarly, the encoder 400 can correspond to the corresponding subject in executing the method 200 of the embodiments of this application, and each unit in the encoder 400 implements the corresponding process in the method 200. For the sake of brevity, further details are omitted here.

[0309] It should also be understood that the various units in the decoder 300 or encoder 400 involved in the embodiments of this application can be individually or entirely merged into one or more other units, or some of the units can be further divided into multiple functionally smaller units. This can achieve the same operation without affecting the technical effect of the embodiments of this application. The above units are based on logical function division. In practical applications, the function of one unit can also be implemented by multiple units, or the function of multiple units can be implemented by one unit. In other embodiments of this application, the decoder 300 or encoder 400 may also include other units. In practical applications, these functions can also be implemented with the assistance of other units, and can be implemented by multiple units working together. According to another embodiment of this application, the decoder 300 or encoder 400 involved in the embodiments of this application, and the encoding and decoding method based on point cloud attribute prediction of the embodiments of this application, can be constructed by running a computer program (including program code) capable of performing the steps involved in the corresponding method on a general-purpose computing device including processing elements and storage elements such as a central processing unit (CPU), random access storage medium (RAM), and read-only storage medium (ROM). Computer programs can be recorded on, for example, a computer-readable storage medium, and loaded onto any electronic device with data processing capabilities via the computer-readable storage medium, and run therein to implement the corresponding methods of the embodiments of this application.

[0310] In other words, the units mentioned above can be implemented in hardware, in software instructions, or in a combination of hardware and software. Specifically, the steps of the method embodiments in this application can be completed by the integrated logic circuits in the processor's hardware and / or by software instructions. The steps of the method disclosed in the embodiments of this application can be directly manifested as being executed by a hardware decoding processor, or executed by a combination of hardware and software in the decoding processor. Optionally, the software can reside in a mature storage medium in the art, such as random access memory, flash memory, read-only memory, programmable read-only memory, electrically erasable programmable memory, registers, etc. This storage medium is located in memory, and the processor reads the information in the memory and completes the steps in the above method embodiments in conjunction with its hardware.

[0311] Figure 16 This is a schematic structural diagram of the encoding / decoding device 500 provided in the embodiments of this application.

[0312] like Figure 16As shown, the encoding / decoding device 500 includes at least a processor 510 and a computer-readable storage medium 520. The processor 510 and the computer-readable storage medium 520 can be connected via a bus or other means. The computer-readable storage medium 520 stores a computer program 521, which includes computer instructions. The processor 510 executes the computer instructions stored in the computer-readable storage medium 520. The processor 510 is the computing and control core of the encoding / decoding device 500, and is suitable for implementing one or more computer instructions, specifically for loading and executing one or more computer instructions to achieve corresponding method flows or corresponding functions.

[0313] As an example, processor 510 may also be referred to as a central processing unit (CPU). Processor 510 may include, but is not limited to: general-purpose processors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc.

[0314] As an example, the computer-readable storage medium 520 may be a high-speed RAM memory or a non-volatile memory, such as at least one disk storage device; optionally, it may also be at least one computer-readable storage medium located remotely from the aforementioned processor 510. Specifically, the computer-readable storage medium 520 includes, but is not limited to, volatile memory and / or non-volatile memory. The non-volatile memory may be read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), or flash memory. The volatile memory may be random access memory (RAM), which serves as an external cache. By way of example, but not limitation, many forms of RAM are available, such as Static RAM (SRAM), Dynamic RAM (DRAM), Synchronous DRAM (SDRAM), Double Data Rate SDRAM (DDR SDRAM), Enhanced Synchronous DRAM (ESDRAM), Synchronous Link DRAM (SLDRAM), and Direct Rambus RAM (DR RAM).

[0315] In one implementation, the codec device 500 can be Figure 4 The encoding framework shown or Figure 15 The encoder 400 is shown; the computer-readable storage medium 520 stores first computer instructions; the processor 510 loads and executes the first computer instructions stored in the computer-readable storage medium 520 to implement... Figure 13 The corresponding steps in the illustrated method embodiment are described below. In a specific implementation, the first computer instruction in the computer-readable storage medium 520 is loaded and executed by the processor 510, and to avoid repetition, these steps will not be repeated here. In one implementation, the encoding / decoding device 500 may be... Figure 5 The decoding framework shown or Figure 14The decoder 300 is shown; the computer-readable storage medium 520 stores second computer instructions; the processor 510 loads and executes the second computer instructions stored in the computer-readable storage medium 520 to implement... Figure 12 The corresponding steps in the method embodiment shown; in specific implementation, the second computer instructions in the computer-readable storage medium 520 are loaded and executed by the processor 510, and will not be described again here to avoid repetition.

[0316] According to another aspect of this application, embodiments of this application also provide a computer-readable storage medium (Memory), which is a memory device in the encoding / decoding device 500 for storing programs and data. For example, a computer-readable storage medium 520. It is understood that the computer-readable storage medium 520 here may include the built-in storage medium in the encoding / decoding device 500, or it may include an extended storage medium supported by the encoding / decoding device 500. The computer-readable storage medium provides storage space that stores the operating system of the encoding / decoding device 500. Furthermore, the storage space also stores one or more computer instructions suitable for loading and execution by the processor 510. These computer instructions may be one or more computer programs 521 (including program code). These computer instructions are used by the computer to execute the point cloud attribute prediction-based encoding / decoding method provided in the various optional embodiments described above.

[0317] According to another aspect of this application, a computer program product or computer program is provided, which includes computer instructions stored in a computer-readable storage medium. For example, computer program 521. In this case, the encoding / decoding device 500 may be a computer, and a processor 510 reads the computer instructions from the computer-readable storage medium 520 and executes the computer instructions, causing the computer to perform the point cloud attribute prediction-based encoding / decoding method provided in the various alternative embodiments described above.

[0318] In other words, when implemented using software, it can be implemented entirely or partially in the form of a computer program product. This computer program product includes one or more computer instructions. When these computer program instructions are loaded and executed on a computer, all or part of the processes of the embodiments of this application are run or the functions of the embodiments of this application are implemented. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions can be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another. For example, the computer instructions can be transmitted from one website, computer, server, or data center to another via wired (e.g., coaxial cable, fiber optic, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) means.

[0319] Those skilled in the art will recognize that the units and process steps of the various examples described in conjunction with the embodiments disclosed herein 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.

[0320] Finally, it should be noted that the above content 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 scope of the technology 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.

Claims

1. A decoding method, comprising: include: The point cloud's bitstream is parsed to obtain its geometric information; If the current point to be decoded in the point cloud is a point other than the first n points in the decoding order of the attribute information of the point cloud, where n is a positive integer, then based on the geometric information, at least one predicted point in the point cloud that is coplanar, collinear, or concurrent with the current point is determined. By traversing at least one candidate point in the decoding order that is preceding the current point, the at least one predicted point is supplemented or replaced to obtain the predicted point corresponding to the current point; Based on the attribute reconstruction value of the prediction point corresponding to the current point, determine the attribute prediction value of the current point.

2. The method of claim 1, wherein, n equals 3; the method further includes: If the current point is the first point in the decoding order, set the attribute prediction value of the first point to a preset value; If the current point is the second point in the decoding order, the attribute reconstruction value of the first point is determined as the attribute prediction value of the second point; If the current point is the third point in the decoding order, the weighted average of the attribute reconstruction values ​​of the first point and the attribute reconstruction values ​​of the second point is determined as the attribute prediction value of the third point.

3. The method according to claim 1 or 2, characterized in that, The method further includes supplementing or replacing at least one predicted point by traversing at least one candidate point in the decoding order preceding the current point to obtain the predicted point preceding the current point: The at least one candidate point is determined based on the index of the current point in the decoding order.

4. The method according to claim 3, characterized in that, Determining the at least one candidate point based on the index of the current point in the decoding order includes: If the index of the current point is less than or equal to the first value, all points in the decoding order that are located before the current point are determined as the at least one candidate point; If the index of the current point is greater than the first value, the first number of points in the decoding order that are preceding the current point are determined as the at least one candidate point.

5. The method according to claim 4, characterized in that, The first value is 128.

6. The method according to any one of claims 1 to 5, characterized in that, The step of supplementing or replacing at least one predicted point by traversing at least one candidate point in the decoding order preceding the current point to obtain the predicted point corresponding to the current point includes: If the number of the at least one predicted point is less than the second value, the unvisited candidate points among the at least one candidate points are traversed in descending order of index in the decoding order, and the traversed candidate points are added to the at least one predicted point, until the number of the at least one predicted point is equal to the second value; and / or If the number of the at least one predicted point is greater than or equal to the second value and less than the third value, traverse the untraversed candidate points among the at least one candidate points in descending order of the index in the decoding order. If the weight of the current candidate point is greater than the minimum weight among the at least one weights corresponding to the at least one predicted point, add the current candidate point to the at least one predicted point. The third value is greater than or equal to the second value; and / or If the number of the at least one prediction point is equal to the third value, the unvisited candidate points among the at least one candidate points are traversed in descending order of the index in the decoding order. If the weight of the current candidate point is greater than the minimum weight among the at least one weights corresponding to the at least one prediction point, or if the weight of the current candidate point is equal to the minimum weight and the index of the current candidate point is less than the index of the prediction point corresponding to the minimum weight, the prediction point corresponding to the minimum weight is replaced by the current candidate point.

7. The method according to any one of claims 1 to 6, characterized in that, The step of supplementing or replacing at least one predicted point by traversing at least one candidate point in the decoding order preceding the current point to obtain the predicted point corresponding to the current point includes: If the number of the at least one predicted point is less than the second value, the untraced candidate points in the at least one candidate point are traversed in descending order of the index in the decoding order, and the traversed candidate points are added to the at least one predicted point until the number of the at least one predicted point is equal to the second value. If the at least one candidate point also includes untraversed candidate points, continue to traverse the untraversed candidate points in the at least one candidate point in descending order of index in the decoding order. If the weight of the current candidate point is greater than the minimum weight among the at least one weights corresponding to the at least one prediction point, the current candidate point is added to the at least one prediction point. If the number of the at least one predicted point is equal to the third value and the at least one candidate point also includes untraversed candidate points, continue to traverse the untraversed candidate points in the at least one candidate point in descending order of index. If the weight of the current candidate point is greater than the minimum weight among the at least one weights corresponding to the at least one predicted point, or if the weight of the current candidate point is equal to the minimum weight and the index of the current candidate point is less than the index of the predicted point corresponding to the minimum weight, replace the predicted point corresponding to the minimum weight with the current candidate point. The third value is greater than or equal to the second value.

8. The method according to claim 6 or 7, characterized in that, The method further includes: After supplementing the at least one prediction point with the current candidate point or replacing the prediction point corresponding to the minimum weight with the current candidate point, the at least one prediction point is sorted in descending order of weight.

9. The method according to claim 8, characterized in that, The second value is 3, and the third value is 6.

10. The method according to claim 8, characterized in that, The weight of the current candidate point is the reciprocal of the distance between the current candidate point and the current point.

11. An encoding method, characterized in that, include: Obtain the geometric information of the point cloud; If the current point to be encoded in the point cloud is a point other than the first n points in the encoding order of the attribute information of the point cloud, where n is a positive integer, then based on the geometric information, at least one predicted point in the point cloud that is coplanar, collinear, or concurrent with the current point is determined. By traversing at least one candidate point in the encoding order that is preceding the current point, the at least one predicted point is supplemented or replaced to obtain the predicted point corresponding to the current point; Based on the attribute reconstruction value of the prediction point corresponding to the current point, determine the attribute prediction value of the current point.

12. The method according to claim 11, characterized in that, n equals 3; the method further includes: If the current point is the first point in the encoding order, set the attribute prediction value of the first point to a preset value; If the current point is the second point in the encoding order, the attribute reconstruction value of the first point is determined as the attribute prediction value of the second point; If the current point is the third point in the encoding order, the weighted average of the attribute reconstruction values ​​of the first point and the attribute reconstruction values ​​of the second point is determined as the attribute prediction value of the third point.

13. The method according to claim 11 or 12, characterized in that, The method further includes, by traversing at least one candidate point preceding the current point in the encoding order and supplementing or replacing the at least one predicted point to obtain the predicted point preceding the current point, the method further includes: The at least one candidate point is determined based on the index of the current point in the encoding order.

14. The method according to claim 13, characterized in that, Determining the at least one candidate point based on the index of the current point in the encoding order includes: If the index of the current point is less than or equal to the first value, all points in the encoding order that are located before the current point are determined as the at least one candidate point; If the index of the current point is greater than the first value, the first number of points in the encoding order that are preceding the current point are determined as the at least one candidate point.

15. The method according to claim 14, characterized in that, The first value is 128.

16. The method according to any one of claims 11 to 15, characterized in that, The step of supplementing or replacing at least one predicted point by traversing at least one candidate point in the encoding order preceding the current point to obtain the predicted point corresponding to the current point includes: If the number of the at least one predicted point is less than the second value, traverse the untraversed candidate points in the at least one candidate point according to the descending order of the index in the encoding order, and add the traversed candidate points to the at least one predicted point, until the number of the at least one predicted point is equal to the second value; and / or If the number of the at least one predicted point is greater than or equal to the second value and less than the third value, traverse the untraversed candidate points among the at least one candidate points in descending order of the index in the encoding order. If the weight of the current candidate point is greater than the minimum weight among the at least one weights corresponding to the at least one predicted point, add the current candidate point to the at least one predicted point. The third value is greater than or equal to the second value; and / or If the number of the at least one predicted point is equal to the second value and less than the third value, the unvisited candidate points among the at least one candidate points are traversed in descending order of the index in the encoding order. If the weight of the current candidate point is greater than the minimum weight among the at least one weights corresponding to the at least one predicted point, or if the weight of the current candidate point is equal to the minimum weight and the index of the current candidate point is less than the index of the predicted point corresponding to the minimum weight, the predicted point corresponding to the minimum weight is replaced by the current candidate point.

17. The method according to any one of claims 11 to 16, characterized in that, The step of supplementing or replacing at least one predicted point by traversing at least one candidate point in the encoding order preceding the current point to obtain the predicted point corresponding to the current point includes: If the number of the at least one predicted point is less than the second value, the untraced candidate points in the at least one candidate point are traversed in descending order of the index in the encoding order, and the traversed candidate points are added to the at least one predicted point until the number of the at least one predicted point is equal to the second value. If the at least one candidate point also includes untraversed candidate points, continue to traverse the untraversed candidate points in the at least one candidate point in descending order of index in the encoding order. If the weight of the current candidate point is greater than the minimum weight among the at least one weights corresponding to the at least one prediction point, the current candidate point is added to the at least one prediction point. If the number of the at least one predicted point is equal to the third value and the at least one candidate point also includes untraversed candidate points, continue to traverse the untraversed candidate points in the at least one candidate point in descending order of the index in the encoding order. If the weight of the current candidate point is greater than the minimum weight among the at least one weights corresponding to the at least one predicted point, or if the weight of the current candidate point is equal to the minimum weight and the index of the current candidate point is less than the index of the predicted point corresponding to the minimum weight, replace the predicted point corresponding to the minimum weight with the current candidate point. The third value is greater than or equal to the second value.

18. The method according to claim 16 or 17, characterized in that, The method further includes: After supplementing the at least one prediction point with the current candidate point or replacing the prediction point corresponding to the minimum weight with the current candidate point, the at least one prediction point is sorted in descending order of weight.

19. The method according to claim 18, characterized in that, The second value is 3, and the third value is 6.

20. The method according to claim 18, characterized in that, The weight of the current candidate point is the reciprocal of the distance between the current candidate point and the current point.

21. A decoder, characterized in that, include: The parsing unit is used to parse the bitstream of the point cloud to obtain the geometric information of the point cloud; The first determining unit is configured to determine at least one predicted point in the point cloud that is coplanar, collinear, or concurrent with the current point if the current point to be decoded in the point cloud is a point other than the first n points in the decoding order of the attribute information of the point cloud, where n is a positive integer, based on the geometric information. The supplementary replacement unit is used to supplement or replace the at least one predicted point by traversing at least one candidate point located before the current point in the decoding order, so as to obtain the predicted point corresponding to the current point. The second determining unit is used to determine the attribute prediction value of the current point based on the attribute reconstruction value of the prediction point corresponding to the current point.

22. The decoder according to claim 21, characterized in that, n equals 3; the second determining unit is also used for: If the current point is the first point in the decoding order, set the attribute prediction value of the first point to a preset value; If the current point is the second point in the decoding order, the attribute reconstruction value of the first point is determined as the attribute prediction value of the second point; If the current point is the third point in the decoding order, the weighted average of the attribute reconstruction values ​​of the first point and the attribute reconstruction values ​​of the second point is determined as the attribute prediction value of the third point.

23. The decoder according to claim 21 or 22, characterized in that, The supplementation and replacement unit supplements or replaces at least one predicted point by traversing at least one candidate point located before the current point in the decoding order, thereby obtaining the predicted point before the current point. The supplementation and replacement unit is further configured to: The at least one candidate point is determined based on the index of the current point in the decoding order.

24. The decoder according to claim 23, characterized in that, The supplementary replacement unit is specifically used for: If the index of the current point is less than or equal to the first value, all points in the decoding order that are located before the current point are determined as the at least one candidate point; If the index of the current point is greater than the first value, the first number of points in the decoding order that are preceding the current point are determined as the at least one candidate point.

25. The decoder according to claim 24, characterized in that, The first value is 128.

26. The decoder according to any one of claims 21 to 25, characterized in that, The supplementary replacement unit is specifically used for: If the number of the at least one predicted point is less than the second value, the unvisited candidate points among the at least one candidate points are traversed in descending order of index in the decoding order, and the traversed candidate points are added to the at least one predicted point, until the number of the at least one predicted point is equal to the second value; and / or If the number of the at least one predicted point is greater than or equal to the second value and less than the third value, traverse the untraversed candidate points among the at least one candidate points in descending order of the index in the decoding order. If the weight of the current candidate point is greater than the minimum weight among the at least one weights corresponding to the at least one predicted point, add the current candidate point to the at least one predicted point. The third value is greater than or equal to the second value; and / or If the number of the at least one prediction point is equal to the third value, the unvisited candidate points among the at least one candidate points are traversed in descending order of the index in the decoding order. If the weight of the current candidate point is greater than the minimum weight among the at least one weights corresponding to the at least one prediction point, or if the weight of the current candidate point is equal to the minimum weight and the index of the current candidate point is less than the index of the prediction point corresponding to the minimum weight, the prediction point corresponding to the minimum weight is replaced by the current candidate point.

27. The decoder according to any one of claims 21 to 26, characterized in that, The supplementary replacement unit is specifically used for: If the number of the at least one predicted point is less than the second value, the untraced candidate points in the at least one candidate point are traversed in descending order of the index in the decoding order, and the traversed candidate points are added to the at least one predicted point until the number of the at least one predicted point is equal to the second value. If the at least one candidate point also includes untraversed candidate points, continue to traverse the untraversed candidate points in the at least one candidate point in descending order of index in the decoding order. If the weight of the current candidate point is greater than the minimum weight among the at least one weights corresponding to the at least one prediction point, the current candidate point is added to the at least one prediction point. If the number of the at least one predicted point is equal to the third value and the at least one candidate point also includes untraversed candidate points, continue to traverse the untraversed candidate points in the at least one candidate point in descending order of index. If the weight of the current candidate point is greater than the minimum weight among the at least one weights corresponding to the at least one predicted point, or if the weight of the current candidate point is equal to the minimum weight and the index of the current candidate point is less than the index of the predicted point corresponding to the minimum weight, replace the predicted point corresponding to the minimum weight with the current candidate point. The third value is greater than or equal to the second value.

28. The decoder according to claim 26 or 27, characterized in that, The supplementary replacement unit is also used for: After supplementing the at least one prediction point with the current candidate point or replacing the prediction point corresponding to the minimum weight with the current candidate point, the at least one prediction point is sorted in descending order of weight.

29. The decoder according to claim 28, characterized in that, The second value is 3, and the third value is 6.

30. The decoder according to claim 28, characterized in that, The weight of the current candidate point is the reciprocal of the distance between the current candidate point and the current point.

31. An encoder, characterized in that, include: Acquisition unit, used to acquire geometric information of point cloud; The first determining unit is configured to determine at least one predicted point in the point cloud that is coplanar, collinear, or concurrent with the current point if the current point to be encoded in the point cloud is a point other than the first n points in the encoding order of the attribute information of the point cloud, where n is a positive integer, based on the geometric information. The supplementary replacement unit is used to supplement or replace the at least one predicted point by traversing at least one candidate point located before the current point in the encoding order, so as to obtain the predicted point corresponding to the current point. The second determining unit is used to determine the attribute prediction value of the current point based on the attribute reconstruction value of the prediction point corresponding to the current point.

32. The encoder according to claim 31, characterized in that, n equals 3; the second determining unit is also used for: If the current point is the first point in the encoding order, set the attribute prediction value of the first point to a preset value; If the current point is the second point in the encoding order, the attribute reconstruction value of the first point is determined as the attribute prediction value of the second point; If the current point is the third point in the encoding order, the weighted average of the attribute reconstruction values ​​of the first point and the attribute reconstruction values ​​of the second point is determined as the attribute prediction value of the third point.

33. The encoder according to claim 31 or 32, characterized in that, The supplementation and replacement unit supplements or replaces at least one predicted point by traversing at least one candidate point located before the current point in the encoding order, thereby obtaining the predicted point before the current point. The supplementation and replacement unit is further configured to: The at least one candidate point is determined based on the index of the current point in the encoding order.

34. The encoder according to claim 33, characterized in that, The supplementary replacement unit is specifically used for: If the index of the current point is less than or equal to the first value, all points in the encoding order that are located before the current point are determined as the at least one candidate point; If the index of the current point is greater than the first value, the first number of points in the encoding order that are preceding the current point are determined as the at least one candidate point.

35. The encoder according to claim 34, characterized in that, The first value is 128.

36. The encoder according to any one of claims 31 to 35, characterized in that, The supplementary replacement unit is specifically used for: If the number of the at least one predicted point is less than the second value, traverse the untraversed candidate points in the at least one candidate point according to the descending order of the index in the encoding order, and add the traversed candidate points to the at least one predicted point, until the number of the at least one predicted point is equal to the second value; and / or If the number of the at least one predicted point is greater than or equal to the second value and less than the third value, traverse the untraversed candidate points among the at least one candidate points in descending order of the index in the encoding order. If the weight of the current candidate point is greater than the minimum weight among the at least one weights corresponding to the at least one predicted point, add the current candidate point to the at least one predicted point. The third value is greater than or equal to the second value; and / or If the number of the at least one predicted point is equal to the second value and less than the third value, the unvisited candidate points among the at least one candidate points are traversed in descending order of the index in the encoding order. If the weight of the current candidate point is greater than the minimum weight among the at least one weights corresponding to the at least one predicted point, or if the weight of the current candidate point is equal to the minimum weight and the index of the current candidate point is less than the index of the predicted point corresponding to the minimum weight, the predicted point corresponding to the minimum weight is replaced by the current candidate point.

37. The encoder according to any one of claims 31 to 36, characterized in that, The supplementary replacement unit is specifically used for: If the number of the at least one predicted point is less than the second value, the untraced candidate points in the at least one candidate point are traversed in descending order of the index in the encoding order, and the traversed candidate points are added to the at least one predicted point until the number of the at least one predicted point is equal to the second value. If the at least one candidate point also includes untraversed candidate points, continue to traverse the untraversed candidate points in the at least one candidate point in descending order of index in the encoding order. If the weight of the current candidate point is greater than the minimum weight among the at least one weights corresponding to the at least one prediction point, the current candidate point is added to the at least one prediction point. If the number of the at least one predicted point is equal to the third value and the at least one candidate point also includes untraversed candidate points, continue to traverse the untraversed candidate points in the at least one candidate point in descending order of the index in the encoding order. If the weight of the current candidate point is greater than the minimum weight among the at least one weights corresponding to the at least one predicted point, or if the weight of the current candidate point is equal to the minimum weight and the index of the current candidate point is less than the index of the predicted point corresponding to the minimum weight, replace the predicted point corresponding to the minimum weight with the current candidate point. The third value is greater than or equal to the second value.

38. The encoder according to claim 36 or 37, characterized in that, The supplementary replacement unit is also used for: After supplementing the at least one prediction point with the current candidate point or replacing the prediction point corresponding to the minimum weight with the current candidate point, the at least one prediction point is sorted in descending order of weight.

39. The encoder according to claim 38, characterized in that, The second value is 3, and the third value is 6.

40. The encoder according to claim 38, characterized in that, The weight of the current candidate point is the reciprocal of the distance between the current candidate point and the current point.

41. A codec device, characterized in that, include: A processor, adapted to execute computer programs; A computer-readable storage medium storing a computer program, which, when executed by the processor, implements the decoding method as described in any one of claims 1 to 10, or the encoding method as described in any one of claims 11 to 20.

42. A computer-readable storage medium, characterized in that, Used to store a computer program that causes a computer to perform the decoding method as described in any one of claims 1 to 10, or to implement the encoding method as described in any one of claims 11 to 20.