Decoding method, encoding method, decoder and encoder for point cloud

CN117710587BActive Publication Date: 2026-10-09GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202311874021.1
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2020-12-22
Publication Date
2026-10-09
Estimated Expiration
2040-12-22

AI Technical Summary

Technical Problem

数量如此庞大的点也给计算机的存储和传输带来了挑战

Benefits of technology

[0034] The solution provided in this application improves the accuracy of reconstructing the attribute information of the target points by converting the initial reconstructed values ​​into initial brightness and initial chromaticity values, and then uses a Kalman filter algorithm to filter only the initial chromaticity values. This enhances the quality of the point reconstruction process and, consequently, improves the decoding effect of point cloud encoding. Furthermore, considering that the Kalman filter algorithm is more suitable for processing stationary signals, while the brightness values ​​of point clouds fluctuate significantly, using the Kalman filter algorithm to filter only the initial chromaticity values ​​improves the filtering effect, further enhancing the decoding effect of point cloud encoding.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN117710587B_ABST
    Figure CN117710587B_ABST
Patent Text Reader

Abstract

Embodiments of the present application provide a point cloud decoding method, a point cloud encoding method, a decoder and an encoder. The decoding method comprises: parsing a code stream of a point cloud to obtain an initial reconstruction value of attribute information of a target point in the point cloud; converting the initial reconstruction value into an initial luminance value and an initial chroma value; filtering the initial chroma value by using a Kalman filtering algorithm to obtain a final chroma value; obtaining a final reconstruction value of the attribute information of the target point based on the final chroma value and the initial luminance value; and obtaining a decoded point cloud according to the final reconstruction value of the attribute information of the target point. In the scheme provided in the present application, the initial reconstruction value is converted into the initial luminance value and the initial chroma value, and the Kalman filtering algorithm is used to filter only the initial chroma value, so that the decoding effect of point cloud encoding can be improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of point cloud encoding and decoding, and more specifically, to point cloud decoding methods, encoding methods, decoders, and encoders. 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 position and color information. Specifically, the position information of the point cloud is first encoded using an octree; simultaneously, the color information is predicted based on the octree-encoded position information, and then the color information is encoded by subtracting it from the original color information, thus achieving the encoding of the point cloud.

[0004] To date, improving the prediction accuracy of color information for points is a pressing technical problem that needs to be solved in this field. Summary of the Invention

[0005] This application provides a point cloud decoding method, encoding method, decoder, and encoder, which can improve the reconstruction accuracy during the point cloud decoding process, and thus improve the decoding effect.

[0006] On the one hand, a point cloud decoding method is provided, including:

[0007] The bitstream of the point cloud is parsed to obtain the initial reconstructed value of the attribute information of a target point in the point cloud;

[0008] The initial reconstructed values ​​are converted into initial luminance values ​​and initial chrominance values;

[0009] The initial chromaticity values ​​are filtered using the Kalman filter algorithm to obtain the final chromaticity values;

[0010] Based on the final chromaticity value and the initial luminance value, the final reconstructed value of the attribute information of the target point is obtained;

[0011] The decoded point cloud is obtained based on the final reconstructed value of the attribute information of the target point.

[0012] On the other hand, a point cloud encoding method is provided, including:

[0013] The position information of a target point in the point cloud is processed to obtain the reconstructed position information of the target point;

[0014] Based on the reconstructed information of the target point's location information, the predicted value of the target point's attribute information is obtained;

[0015] The attribute information of the target point in the point cloud is processed to obtain the true value of the attribute information of the target point;

[0016] Based on the predicted value of the attribute information of the target point and the true value of the attribute information of the target point, the residual value of the attribute information of the target point is obtained;

[0017] The number of residual values ​​of the attribute information of the points that need to be written into the lossless encoding bitstream and the residual value of the attribute information of the target point are encoded to obtain the bitstream.

[0018] On the other hand, a decoder is provided, including:

[0019] The parsing unit is used to parse the bitstream of the point cloud to obtain the initial reconstructed value of the attribute information of a target point in the point cloud;

[0020] A conversion unit is used to convert the initial reconstructed values ​​into initial luminance values ​​and initial chrominance values;

[0021] The filtering unit is used to filter the initial chromaticity value using the Kalman filtering algorithm to obtain the final chromaticity value;

[0022] The first processing unit is used to obtain the final reconstructed value of the attribute information of the target point based on the final chromaticity value and the initial luminance value;

[0023] The second processing unit is used to obtain the decoded point cloud based on the final reconstructed value of the attribute information of the target point.

[0024] On the other hand, an encoder is provided, including:

[0025] The first processing unit is used to process the position information of a target point in the point cloud to obtain the reconstructed position information of the target point.

[0026] The second processing unit is used to obtain the predicted value of the attribute information of the target point based on the reconstructed information of the target point's location information;

[0027] The third processing unit processes the attribute information of the target point in the point cloud to obtain the true value of the attribute information of the target point;

[0028] The fourth processing unit is used to obtain the residual value of the attribute information of the target point based on the predicted value of the attribute information of the target point and the true value of the attribute information of the target point;

[0029] The encoding unit is used to encode the number of residual values ​​of the attribute information of the points to be written into the lossless encoding bitstream and the residual values ​​of the attribute information of the target point to obtain the bitstream.

[0030] On the other hand, embodiments of this application provide a data processing device for point cloud media, the data processing device for point cloud media comprising:

[0031] Processor, adapted to implement computer instructions; and,

[0032] A computer-readable storage medium storing computer instructions adapted for loading by a processor and executing the data processing method for the point cloud media described above.

[0033] On the other hand, embodiments of this application provide a computer-readable storage medium storing computer instructions. When these computer instructions are read and executed by a processor of a computer device, the computer device performs the aforementioned data processing method for point cloud media.

[0034] The solution provided in this application improves the accuracy of reconstructing the attribute information of the target points by converting the initial reconstructed values ​​into initial brightness and initial chromaticity values, and then uses a Kalman filter algorithm to filter only the initial chromaticity values. This enhances the quality of the point reconstruction process and, consequently, improves the decoding effect of point cloud encoding. Furthermore, considering that the Kalman filter algorithm is more suitable for processing stationary signals, while the brightness values ​​of point clouds fluctuate significantly, using the Kalman filter algorithm to filter only the initial chromaticity values ​​improves the filtering effect, further enhancing the decoding effect of point cloud encoding. Attached Figure Description

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

[0036] Figure 2 This is a schematic block diagram of the LOD layer provided in the embodiments of this application.

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

[0038] Figure 4 This is a schematic flowchart of the point cloud decoding method provided in the embodiments of this application.

[0039] Figure 5This is a schematic diagram illustrating the principle of Kalman filtering provided in the embodiments of this application.

[0040] Figure 6 This is another illustrative flowchart of the point cloud decoding method provided in the embodiments of this application.

[0041] Figure 7 This is a schematic flowchart of the point cloud encoding method provided in the embodiments of this application.

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

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

[0044] Figure 10 This is a schematic block diagram of the electronic device provided in the embodiments of this application. Detailed Implementation

[0045] The following explains the concepts related to point clouds.

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

[0047] Point cloud data is a specific record of point clouds. The point cloud data for each point can include geometric and attribute information. The geometric information of each point refers to its Cartesian three-dimensional coordinates. The attribute information for 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) information. Alternatively, color information can be luminance / chrominance (YcbCr, YUV) information. Here, Y represents luminance (Luma), Cb(U) represents blue color difference, Cr(V) represents red, and U and V represent chrominance (Chroma), which describes color difference information.

[0048] Each point in a point cloud possesses the same number of attribute information. For example, each point in a point cloud may have two attribute information: color information and laser reflection intensity. Alternatively, each point may have three attribute information: color information, material information, and laser reflection intensity. In the encapsulation process of point cloud media, the geometric information of a point can be referred to as its geometric component, and its attribute information as its attribute component. A point cloud media may include one geometric component and one or more attribute components.

[0049] 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. Point clouds can be acquired through methods including, but are not limited to: computer generation, 3D laser scanning, and 3D photogrammetry. Computers can generate point clouds of virtual 3D objects and scenes. 3D scanning can obtain point clouds of static real-world 3D objects or scenes, acquiring millions of point clouds per second. 3D photography can obtain point clouds of dynamic real-world 3D objects or scenes, acquiring 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 coordinate information of points and the laser reflection intensity of points. Point clouds obtained based on photogrammetry principles can include the three-dimensional coordinates and color information of points. Point clouds obtained by combining laser measurement and photogrammetry principles can include the three-dimensional coordinates, laser reflection intensity, and color information of points. Correspondingly, point clouds can also be classified into three types based on their acquisition methods: 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.

[0050] 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 acquisition methods has made it possible to acquire large amounts of point clouds. With the continuous accumulation of large-scale point clouds, efficient storage, transmission, publishing, sharing, and standardization have become crucial for point cloud applications.

[0051] Point cloud data can be used to create point cloud media, which can be a media file. Point cloud media can include multiple media frames, each composed of point cloud data. Point cloud media can flexibly and conveniently express the spatial structure and surface properties of 3D objects or 3D scenes, and is therefore widely used. After encoding the point cloud media, the encoded stream is then encapsulated to form an encapsulated file, which can be transmitted to the user. Correspondingly, on the point cloud media player side, the encapsulated file needs to be decapsulated first, then decoded, and finally the decoded data stream is presented. The encapsulated file can also be called a point cloud file.

[0052] To date, point clouds can be encoded using a point cloud encoding framework.

[0053] The point cloud coding framework can be the Geometry Point Cloud Compression (G-PCC) codec framework or the Video Point Cloud Compression (V-PCC) codec framework provided by the Moving Picture Experts Group (MPEG), or the AVS-PCC codec framework provided by the Audio Video Standard (AVS). The G-PCC codec framework can be used to compress first-type static point clouds and third-type dynamically acquired point clouds, while the V-PCC codec framework can be used to compress second-type dynamic point clouds. The G-PCC codec framework is also called the point cloud codec TMC13, and the V-PCC codec framework is also called the point cloud codec TMC2. The following description uses the G-PCC codec framework to illustrate the applicable codec frameworks in the embodiments of this application.

[0054] Figure 1 This is a schematic block diagram of the encoding framework 100 provided in the embodiments of this application.

[0055] like Figure 1As shown, the encoding framework 100 can acquire the location and attribute information of a point cloud from the acquisition device. Point cloud encoding includes location encoding and attribute encoding. In one embodiment, the location encoding process includes: preprocessing the original point cloud such as coordinate transformation and quantization to remove duplicate points; constructing an octree and then encoding it to form a geometric bitstream. The attribute encoding process includes: selecting one of three prediction modes to predict the point cloud based on the reconstructed location information and the true values ​​of the attribute information of the given input point cloud; quantizing the predicted result and performing arithmetic encoding to form an attribute bitstream.

[0056] like Figure 1 As shown, position encoding can be implemented using the following units:

[0057] The system includes a coordinate transformation unit 101, a quantize and remove points unit 102, an octree analysis unit 103, a geometry reconstruction unit 104, and an arithmetic encoding unit 105.

[0058] The coordinate transformation unit 101 can be used to transform the world coordinates of points in the point cloud into relative coordinates. For example, the geometric coordinates of a point are subtracted from the minimum values ​​of the x, y, and z coordinate axes, which is equivalent to a de-DC operation, to transform the coordinates of points in the point cloud from world coordinates to relative coordinates. The quantization and duplicate point removal unit 102 can reduce the number of coordinates through quantization; after quantization, previously different points may be assigned the same coordinates. Based on this, duplicate points can be deleted through a deduplication operation; for example, multiple clouds with the same quantized position and different attribute information can be merged into one cloud through attribute transformation. In some embodiments of this application, the quantization and duplicate point removal unit 102 is an optional unit module. The octree analysis unit 103 can encode the position information of the quantized points using an octree encoding method. For example, the point cloud is divided into octrees, so that the position of a point can correspond one-to-one with the position of the octree. By counting the positions of points in the octree and marking their flags as 1, geometric encoding is performed. The first arithmetic coding unit 105 can use entropy coding to perform arithmetic coding on the position information output by the octree analysis unit 103, that is, to use arithmetic coding to generate a geometric bitstream from the position information output by the octree analysis unit 103; the geometric bitstream can also be called a geometric bitstream.

[0059] Attribute encoding can be implemented through the following units:

[0060] The system includes a color space transformation unit 110, an attribute transformation unit 111, a region adaptive hierarchical transformation (RAHT) unit 112, a predicting transform unit 113, a lifting transform unit 114, a quantize unit 115, and a second arithmetic coding unit 116.

[0061] The color space transformation unit 110 can be used to transform the RGB color space of points in the point cloud to YCbCr format or other formats. The attribute transformation unit 111 can be used to transform the attribute information of points in the point cloud to minimize attribute distortion. For example, the attribute transformation unit 111 can be used to obtain the true value of the attribute information of the points. For example, the attribute information can be the color information of the points. After the true value of the attribute information of the points is obtained by the attribute transformation unit 111, any prediction unit can be selected to predict the points in the point cloud. The unit used to predict the points in the point cloud may include at least one of RAHT 112, predicting transform unit 113, and lifting transform unit 114. In other words, any one of RAHT 112, predicting transform unit 113, and lifting transform unit 114 can be used to predict the attribute information of points in the point cloud to obtain the predicted value of the attribute information of the points, and then the residual value of the attribute information of the points can be obtained based on the predicted value of the attribute information of the points. For example, the residual value of a point's attribute information can be the actual value of the point's attribute information minus the predicted value of the point's attribute information.

[0062] The prediction transformation unit 113 can also be used to generate a level of detail (LOD), sequentially predicting the attribute information of points in the LOD and calculating the prediction residuals for subsequent quantization encoding. Specifically, for each point in the LOD, the three nearest neighbor points are found in the preceding LOD, and then the reconstructed values ​​of the three neighbor points are used to predict the current point to obtain the predicted value; based on this, the residual value of the current point can be obtained based on the predicted value and the true value of the current point. For example, the residual value can be determined based on the following formula:

[0063] attrResidualQuant=(attrValue-attrPred) / Qstep;

[0064] Where attrResidualQuant represents the residual value at the current point, attrPred represents the predicted value at the current point, attrValue represents the true value at the current point, and Qstep represents the quantization step size. Qstep is calculated from the quantization parameter (Qp).

[0065] The current point will be used as the nearest neighbor of subsequent points, and the reconstructed value of the current point will be used to predict the attribute information of subsequent points. The reconstructed attribute information of the current point can be obtained by the following formula:

[0066] reconstructedColor=attrResidualQuant×Qstep+attrPred;

[0067] Where reconstructedColor represents the reconstructed value of the current point, attrResidualQuant represents the residual value of the current point, Qstep represents the quantization step size, and attrPred represents the predicted value of the current point. Qstep is calculated from the quantization parameter (Qp).

[0068] The LOD generation process includes: obtaining the Euclidean distance between points based on their position information in the point cloud; and dividing the points into different LOD layers based on the Euclidean distance. In one embodiment, the Euclidean distances can be sorted, and different ranges of Euclidean distances can be divided into different LOD layers. For example, a point can be randomly selected as the first LOD layer. Then, the Euclidean distances between the remaining points and this point are calculated, and points whose Euclidean distances meet a first threshold requirement are assigned to the second LOD layer. The centroids of the points in the second LOD layer are obtained, and the Euclidean distances between the points other than those in the first and second LOD layers and these centroids are calculated. Points whose Euclidean distances meet a second threshold are assigned to the third LOD layer. This process is repeated until all points are assigned to LOD layers. By adjusting the Euclidean distance threshold, the number of points in each LOD layer can be increased incrementally. It should be understood that other methods can also be used for LOD layer division, and this application does not limit this. It should be noted that the point cloud can be directly divided into one or more LOD layers, or it can be first divided into multiple point cloud slices, and then each slice can be divided into one or more LOD layers. For example, the point cloud can be divided into multiple slices, and the number of points in each slice can be between 550,000 and 1,100,000. Each slice can be considered a separate point cloud. Each slice can also be divided into multiple LOD layers, and each LOD layer includes multiple points. In one embodiment, the LOD layers can be divided based on the Euclidean distance between the points.

[0069] Figure 2 This is a schematic block diagram of the LOD layer provided in the embodiments of this application.

[0070] like Figure 2 As shown, suppose the point cloud includes multiple points arranged in their original order, namely P0, P1, P2, P3, P4, P5, P6, P7, P8, and P9. Assume the point cloud can be divided into three Level of Distance (LOD) layers based on the Euclidean distance between the points: LOD0, LOD1, and LOD2. LOD0 can include P0, P5, P4, and P2; LOD2 can include P1, P6, and P3; and LOD3 can include P9, P8, and P7. In this case, LOD0, LOD1, and LOD2 can be used to form the LOD-based order of the point cloud, namely P0, P5, P4, P2, P1, P6, P3, P9, P8, and P7. This LOD-based order can serve as the encoding order of the point cloud.

[0071] The quantization unit 115 can be used to quantize the residual values ​​of the point's attribute information. For example, if the quantization unit 115 is connected to the prediction transformation unit 113, the quantization unit can be used to quantize the residual values ​​of the point's attribute information output by the prediction transformation unit 113. For example, the residual values ​​of the point's attribute information output by the prediction transformation unit 113 can be quantized using a quantization step size to improve system performance. The second arithmetic coding unit 116 can use zero-run length coding to entropy encode the residual values ​​of the point's attribute information to obtain an attribute bitstream. The attribute bitstream can be bitstream information.

[0072] It should be understood that, in the embodiments of this application, the predicted value of the attribute information of a point in the point cloud can also be called the predicted color value in LOD mode. Subtracting the predicted value from the actual value of the point's attribute information yields the residual value. This residual value can also be called the residual color value in LOD mode. Adding the predicted value and the residual value of the point's attribute information generates the reconstructed value. This reconstructed value can also be called the reconstructed color value in LOD mode.

[0073] Figure 3 This is a schematic block diagram of the decoding framework 200 provided in the embodiments of this application.

[0074] like Figure 3As shown, the decoding framework 200 can acquire the bitstream of the point cloud from the encoding device and obtain the position and attribute information of the points in the point cloud through parsing. Point cloud decoding includes position decoding and attribute decoding. In one embodiment, the position decoding process includes: performing arithmetic decoding on the geometric bitstream; constructing an octree and merging it to reconstruct the point position information to obtain the reconstructed position information of the points; and performing coordinate transformation on the reconstructed position information of the points to obtain the point position information. The point position information can also be referred to as the point's geometric information.

[0075] The attribute decoding process includes: obtaining residual values ​​of attribute information of points in the point cloud by parsing the attribute bitstream; obtaining residual values ​​of attribute information of points after inverse quantization by inverse quantization; selecting one of three prediction modes to predict the point cloud based on the reconstructed information of point position information obtained during the position decoding process, obtaining predicted values, obtaining reconstructed values ​​of point attribute information based on predicted values ​​and residual values; and performing color space inverse conversion on the reconstructed values ​​of point attribute information to obtain the decoded point cloud.

[0076] like Figure 3 As shown, position decoding can be implemented through the following units: a first arithmetic decoding unit 201, an octree synthesis unit 202, a geometry reconstruction unit 203, and an inverse transform coordinates unit 204. Attribute encoding can be implemented through the following units: a second arithmetic decoding unit 210, an inverse quantization unit 211, a RAHT unit 212, a predicting transform unit 213, a lifting transform unit 214, and an inverse transform colors unit 215.

[0077] It should be noted that decompression is the inverse process of compression. Similarly, the functions of each unit in the decoding framework 200 can be found in the functions of the corresponding units in the encoding framework 100. For example, the decoding framework 200 can divide the point cloud into multiple Levels of Distance (LODs) based on the Euclidean distance between points in the point cloud; then, it can decode the attribute information of the points in the LODs sequentially. For example, it can calculate the number of zeros (zero_cnt) in zero-run-length coding to decode the residual values ​​based on the number of zeros; then, the decoding framework 200 can perform inverse quantization based on the decoded residual values, and add the inverse quantized residual values ​​to the predicted value of the current point to obtain the reconstructed value of the point cloud, until all point clouds have been decoded. Decoding is performed using zero-length encoding (ZLE). First, the size of the first `zero_cnt` in the bitstream is determined. If it's greater than 0, the residual value of this point's attribute information is 0; if `zero_cnt` is not 0, the residual value is not 0. If the residual value is 0, a first parsing function is used to parse it; if it's not 0, a second parsing function is used. The current point will be used as the nearest neighbor of subsequent points in the LOD (Level of Detail), and the reconstructed value of the current point will be used to predict the attribute information of subsequent points. Furthermore, regarding inverse transform and inverse scaling (scaling), for orthogonal transforms, if one matrix is ​​used for the transform, the other is used for the inverse transform. For decoding methods, the matrix used in the decoder can be called the "transform" matrix.

[0078] This application provides a point cloud decoding method, encoding method, decoder, and encoder, which can improve the reconstruction accuracy during the point cloud decoding process, and thus improve the decoding effect.

[0079] Figure 4 A schematic flowchart of a point cloud decoding method 300 according to an embodiment of this application is shown. The decoding method 300 can be executed by a decoding end. For example, Figure 3 The decoding framework 200 shown is the point cloud decoder TMC13. For ease of explanation, the technical solution of this application will be described below with the decoder as the main execution entity.

[0080] like Figure 4 As shown, the decoding method 300 may include:

[0081] S301, parse the bitstream of the point cloud to obtain the initial reconstructed value of the attribute information of a target point in the point cloud;

[0082] S302, convert the initial reconstructed values ​​into initial luminance values ​​and initial chrominance values;

[0083] S303, The initial chromaticity value is filtered using the Kalman filter algorithm to obtain the final chromaticity value;

[0084] S304, Based on the final chromaticity value and the initial luminance value, obtain the final reconstructed value of the attribute information of the target point;

[0085] S305, based on the final reconstructed value of the attribute information of the target point, the decoded point cloud is obtained.

[0086] Specifically, the initial reconstructed value can be an RGB format value. For example, the initial reconstructed value F can be obtained by mixing different components of the three primary colors R, G, and B, i.e., F = r[R] + g[G] + b[B], where r, g, and b are the coefficients of the three primary colors involved in the mixing. When all three primary color components are 0 (weakest), the mixture produces black; when all three primary color components are k (strongest), the mixture produces white. By adjusting the values ​​of the three coefficients r, g, and b, various colors between black and white can be mixed. RGB can be converted to a color space to obtain luminance values ​​(i.e., luminance signal Y) and chrominance values ​​(i.e., color difference signals Cr and Cb). Colors including chrominance and luminance values ​​are called the YCbCr color space. In this embodiment, Kalman filtering is applied to the converted original chrominance values ​​to improve the decoding effect.

[0087] The solution provided in this application improves the accuracy of reconstructing the attribute information of the target points by converting the initial reconstructed values ​​into initial brightness and initial chromaticity values, and then uses a Kalman filter algorithm to filter only the initial chromaticity values. This enhances the quality of the point reconstruction process and, consequently, improves the decoding effect of point cloud encoding. Furthermore, considering that the Kalman filter algorithm is more suitable for processing stationary signals, while the brightness values ​​of point clouds fluctuate significantly, using the Kalman filter algorithm to filter only the initial chromaticity values ​​improves the filtering effect, further enhancing the decoding effect of point cloud encoding.

[0088] Based on the technical solution provided in this application, tests were conducted on the G-PCC reference software TMC13 V11.0. Under the CTCCY test conditions, some test sequences required by the Moving Picture Experts Group were tested. The test results are shown in Table 1 below. The performance improvement effect is explained in conjunction with Table 1.

[0089] Table 1

[0090] Class A point cloud sequence -0.8% -5.7% -7.4% Class B point cloud sequence -0.3% -3.6% -4.2% The average values ​​of the point cloud sequences of type A and type B -0.5% -4.6% -5.7%

[0091] As shown in Table 1, in the scheme of this application embodiment, "-" represents the Björgård incremental bit rate ( The delta bit rate (BD-BitRate, BD-BR, or BDBR) decreases. BDBR represents the bit rate difference at the same Peak Signal-to-Noise Ratio (PSNR). A smaller BDBR indicates better performance of the encoding algorithm. As shown in Table 1, Class A point cloud sequences represent point clouds containing color information and other attribute information, while Class B point cloud sequences include point clouds containing only color information. By using the average BDBR of Class A and Class B point cloud sequences, we can objectively and realistically reflect how the introduction of quantization weights can improve the performance of the encoding algorithm.

[0092] It should be noted that, generally speaking, a decrease in bitrate and an increase in PSNR indicate that the new method has better performance. However, there may be a situation where the bitrate is lower than the original method, but the PSNR, i.e., the video quality, is lower. In this case, BDBR can be used to measure the performance of the coding algorithm. Of course, in the video processing process, other parameters can also be used to measure the performance of the coding algorithm to characterize the changes in bitrate and PSNR of the video obtained using the new method compared to the video obtained using the original method. This application does not specifically limit these methods. For example, the Björgard incremental signal-to-noise ratio (BDBR) can also be used. The delta peak signal-to-noise rate (BD-PSNR or BDPSNR) is used to measure the performance of coding algorithms. BDPSNR represents the difference in PSNR at the same bit rate, and the larger the BDPSNR, the better the performance of the coding algorithm.

[0093] It should be noted that the Kalman filtering process in this application embodiment can be integrated into the post-processing process of the decoder, or into the filtering process within the loop. This application embodiment does not specifically limit this. In addition, the point cloud involved in this application can be a complete point cloud, or a point cloud slice formed by dividing a complete point cloud.

[0094] Figure 5 This is a schematic diagram illustrating the principle of Kalman filtering provided in the embodiments of this application.

[0095] like Figure 5As shown, curve 371 represents the initial chromaticity value of the target point's attribute information, curve 372 represents the final chromaticity value of the target point's attribute information, and curve 373 represents the measured value of the target point's attribute information. In other words, the measured value of the target point's attribute information can be used to filter the initial chromaticity value of the target point's attribute information to obtain the final chromaticity value of the target point's attribute information. The initial chromaticity value can also be called the prior estimate; the final chromaticity value can also be called the optimal estimate or the posterior estimate. For example, Kalman filtering of a target point in a point cloud can be divided into a prediction process and a correction process. Assuming the target point is the k-th point in the point cloud; in the prediction process, the state of the k-th point can be estimated based on the initial chromaticity value of the (k-1)-th point to obtain the measured value of the k-th point; in the correction process, the measured value of the k-th point is used to correct the initial chromaticity value of the k-th point to obtain the final chromaticity value of the k-th point.

[0096] In some embodiments of this application, S303 may include:

[0097] Using the chromaticity values ​​of the reconstructed attribute information of one or more points preceding the target point as measurement values, the initial chromaticity values ​​are filtered using the Kalman filter algorithm to obtain the final chromaticity values.

[0098] For example, the reconstructed attribute information values ​​of one or more points preceding the target point can be the reconstructed attribute information values ​​of a point preceding the target point. Alternatively, the reconstructed attribute information values ​​of one or more points preceding the target point can be the mean, maximum, or minimum of the reconstructed attribute information values ​​of multiple points preceding the target point. For example, using the chroma values ​​of the initial reconstructed attribute information values ​​of one or more points preceding the target point as measurement values, a Kalman filter algorithm is used to filter the initial chroma values ​​to obtain the final chroma values. Alternatively, using the chroma values ​​of the final reconstructed attribute information values ​​of one or more points preceding the target point as measurement values, a Kalman filter algorithm is used to filter the initial chroma values ​​to obtain the final chroma values. Optionally, the one or more points preceding the target point are one or more points located preceding the target point in the decoding order. Of course, the one or more points preceding the target point can also be one or more points determined in other orders. It should be noted that the one or more points preceding the target point can be understood as one or more points located preceding the target point in the LOD layer where the target point is located, or as one or more points preceding the encoding order.

[0099] In short, the decoder uses the chromaticity value of the reconstructed value as the measurement value, and uses the Kalman filter algorithm to filter the initial chromaticity value to obtain the final chromaticity value.

[0100] As an example, S303 may include:

[0101] Calculate the average reconstructed value of the attribute information of each of the one or more points; convert the average reconstructed value into an average luminance value and an average chrominance value; use the average chrominance value as a measurement value, and filter the initial chrominance value using the Kalman filter algorithm to obtain the final chrominance value.

[0102] Of course, as mentioned above, using the average chromaticity value as a measurement value is merely an example provided in this application and should not be construed as a limitation of this application.

[0103] In some embodiments of this application, the residual value of the attribute information of the target point is obtained after inverse quantization based on the target quantization step size among multiple quantization step sizes; step S302 may include: when the target quantization step size is greater than or equal to a threshold N, converting the initial reconstructed value into the initial luminance value and the initial chrominance value, where N is a non-negative integer. Optionally, the multiple quantization step sizes are sorted in ascending order, where N is the value of the nth quantization step size among the multiple quantization step sizes, and n is an integer greater than 0.

[0104] In other words, when performing dequantization based on a larger quantization step size, the initial reconstructed value is converted into the initial luminance value and the initial chrominance value.

[0105] Assume there are 5 quantization steps, corresponding to 5 bit rates. Assume Kalman filtering is applied only to the last 3 larger quantization steps (the target quantization steps), while the first 2 steps are left unprocessed. Considering that a larger quantization step leads to a greater error between the reconstructed attribute values ​​and the true values ​​of the points, resulting in lower quality reconstructed attributes, even applying Kalman filtering to the first two steps is inefficient due to the small error in the reconstructed attribute values. However, applying Kalman filtering only to the last 3 larger quantization steps results in better filtering of the reconstructed attribute values, simplifying the filtering process while maintaining decoding quality.

[0106] In some embodiments of this application, S302 may include:

[0107] The initial reconstructed values ​​are converted into initial luminance and initial chrominance values ​​using a color space conversion function. These initial luminance and chrominance values ​​are located within the color space supported by the display screen. Optionally, the color space conversion function can be transformGbrToYCbCrBt709. Optionally, the color space can also be called a color gamut space.

[0108] Of course, this application aims to protect the use of color space conversion functions to convert the initial reconstructed values ​​into a color space or color gamut supported by the display screen. The embodiments of this application do not limit the specific conversion function. For example, different conversion functions can be used depending on the properties of the display screen, and even different conversion functions can be used based on the color spaces or color gamuts involved in different encoding / decoding standards.

[0109] In some embodiments of this application, S301 may include:

[0110] When the number of points in a LOD layer of the point cloud is less than the threshold M, the initial reconstructed value of the point's attribute information is obtained for each point in the LOD layer based on the residual value of the point's attribute information obtained through lossless encoding and the predicted value of the point's attribute information. When the number of points in a LOD layer of the point cloud is greater than or equal to M, the initial reconstructed value of the point's attribute information is obtained for the m*M-th point in the LOD layer based on the residual value of the point's attribute information obtained through lossless encoding and the predicted value of the point's attribute information, where M is a positive integer greater than 1 and m is a positive integer greater than or equal to 0.

[0111] For point clouds in the early LOD layers of the encoding sequence, the large Euclidean distance can introduce significant quantization errors during the quantization process. By not quantizing the residual values ​​of attribute information for some points, the reconstructed attribute information of these points is essentially treated as true values. This improves the accuracy of the reconstructed attribute information for all points in the point cloud. Furthermore, the increased accuracy of the reconstructed values ​​leads to more accurate updates and iterations of the Kalman filter, further enhancing the decoding performance. The decoder does not inverse quantize points at the same location to achieve the goal of decoding correct and higher-quality reconstructed values.

[0112] Optionally, the method 300 may further include:

[0113] The bitstream is parsed to obtain the number of residual values ​​of attribute information for points in the bitstream that do not require dequantization.

[0114] In some embodiments of this application, S301 may include:

[0115] When the number of points in a LOD layer of the point cloud is less than the threshold T, the final reconstructed value of the attribute information of the points in the LOD layer is replaced with the true value of the attribute information; when the number of points in a LOD layer of the point cloud is greater than or equal to T, the final reconstructed value of the attribute information of the t*T-th point in the LOD layer is replaced with the true value, where T is a positive integer greater than 1 and t is a positive integer greater than or equal to 0.

[0116] For point clouds in the early LOD layers of the encoding sequence, the large Euclidean distance can introduce significant quantization errors during the quantization process. Replacing some points with the ground truth values ​​in the final reconstructed values ​​improves the accuracy of the reconstructed attribute information for all points in the point cloud. Furthermore, the increased accuracy of the reconstructed values ​​makes the Kalman filter update and iteration process more accurate, further enhancing the decoding performance. The decoder uses the ground truth values ​​for points at the same locations to achieve the goal of decoding correct and higher-quality reconstructed values.

[0117] Optionally, the method 300 may further include:

[0118] The bitstream is parsed to obtain the number of points whose attribute information is finally reconstructed as true values, and the true values ​​of the point's attribute information.

[0119] In some embodiments of this application, the method 300 may further include:

[0120] The point cloud is divided into one or more LOD layers, and each LOD layer includes one or more points.

[0121] In some embodiments of this application, S301 may include:

[0122] The bitstream is parsed to obtain the reconstructed location information of the target point; based on the reconstructed location information of the target point, the predicted value of the attribute information of the target point is obtained; the bitstream is parsed to obtain the residual value of the attribute information of the target point; based on the predicted value of the attribute information of the target point and the residual value of the attribute information of the target point, the initial reconstructed value of the attribute information of the target point is obtained.

[0123] Figure 6 This is another schematic diagram of the decoding method provided in the embodiments of this application.

[0124] like Figure 6 As shown, assume there are 5 quantization steps (Qp1, Qp2, Qp3, Qp4, and Qp5), corresponding to 5 bit rates. Assume the last 3 quantization steps (Qp3, Qp4, and Qp5) are greater than or equal to a threshold N; that is, Kalman filtering is only performed on the larger of the last 3 quantization steps (Qp3, Qp4, and Qp5), while the first two quantization steps are left unprocessed. Based on this, Kalman filtering can be performed on the reconstructed value of each point sequentially according to the LOD generation order.

[0125] Specifically, the encoder traverses the point cloud, where the initial reconstructed value of the attribute information of the current point is an RGB value. The decoder calculates the average reconstructed value of the attribute information of the three points preceding the current point. Subsequently, the decoder uses the function `transformGbrToYCbCrBt709` to convert the initial reconstructed value of the current point and the average reconstructed value of the previous three points from the RGB domain to the YUV domain. This gives the encoder the average chromaticity and average luminance values ​​of the average reconstructed value, as well as the initial chromaticity and luminance values ​​of the current point. Next, the decoder uses the obtained average chromaticity value as the measured value and the initial chromaticity value as the predicted value to perform Kalman filtering, obtaining the final chromaticity value of the current point. Then, based on the final chromaticity value and the initial luminance value of the current point, the decoder obtains the final reconstructed value. In other words, the UV components of the YUV components serve as the input parameters for Kalman filtering (measured values), and the UV components of the YUV components of the current point serve as another input parameter for Kalman filtering (predicted values). After Kalman filtering, the filtered final reconstructed value will overwrite the initial reconstructed value of the current point.

[0126] In this embodiment, when a larger quantization step size is selected, Kalman filtering is performed only on the initial chromaticity value, avoiding quality loss of the initial luminance value and improving filtering performance.

[0127] Figure 7 A schematic flowchart of a point cloud encoding method 400 according to an embodiment of this application is shown. The method 400 can be executed by an encoding end. For example... Figure 2 The encoding frame 100 or encoder shown is shown.

[0128] like Figure 7 As shown, the method 400 may include:

[0129] S401, Process the position information of a target point in the point cloud to obtain the reconstructed position information of the target point;

[0130] S402, based on the reconstructed information of the target point's location information, obtain the predicted value of the target point's attribute information;

[0131] S403, Process the attribute information of the target point in the point cloud to obtain the true value of the attribute information of the target point;

[0132] S404, Based on the predicted value of the attribute information of the target point and the true value of the attribute information of the target point, obtain the residual value of the attribute information of the target point;

[0133] S405, the number of residual values ​​of the attribute information of the points to be written into the lossless encoding of the bitstream and the residual values ​​of the attribute information of the target point are encoded to obtain the bitstream.

[0134] In some embodiments of this application, S405 may include:

[0135] When the number of points in a LOD layer of the point cloud is less than the threshold M, the residual value of the attribute information of the undequantized points in the LOD layer is encoded to obtain the bitstream; when the number of points in a LOD layer of the point cloud is greater than or equal to M, the residual value of the attribute information of the m*M-th point in the LOD layer is encoded to obtain the bitstream, where M is a positive integer greater than 1 and m is a positive integer greater than or equal to 0.

[0136] Specifically, the encoder processes the position information of a target point in the point cloud to obtain reconstructed position information of the target point; based on the reconstructed position information of the target point, it obtains predicted values ​​of the target point's attribute information; it processes the attribute information of the target point in the point cloud to obtain true values ​​of the target point's attribute information; based on the predicted values ​​and true values ​​of the target point's attribute information, it obtains residual values ​​of the target point's attribute information; and it encodes the residual values ​​of the target point's attribute information to obtain the bitstream. Optionally, the number of points for which residual values ​​of attribute information do not need to be quantized can also be encoded; for example, when the number of points in a LOD layer of the point cloud is less than a threshold M, the residual values ​​of the attribute information of the undequantized points in the LOD layer are encoded to obtain the bitstream; when the number of points in a LOD layer of the point cloud is greater than or equal to M, the residual values ​​of the attribute information of the undequantized point in the m*M-th LOD layer are encoded to obtain the bitstream, where M is a positive integer greater than 1 and m is a positive integer greater than or equal to 0.

[0137] In some embodiments of this application, the method 400 may further include:

[0138] The point cloud is divided into one or more LOD layers, and each LOD layer includes one or more points.

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

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

[0141] Figure 8 This is a schematic block diagram of a point cloud decoder 500 provided in an embodiment of this application.

[0142] like Figure 8 As shown, the decoder 500 may include:

[0143] The parsing unit 501 is used to parse the bitstream of the point cloud to obtain the initial reconstructed value of the attribute information of a target point in the point cloud;

[0144] The conversion unit 502 is used to convert the initial reconstructed values ​​into initial luminance values ​​and initial chrominance values;

[0145] The filtering unit 503 is used to filter the initial chromaticity value using the Kalman filtering algorithm to obtain the final chromaticity value;

[0146] The first processing unit 504 is used to obtain the final reconstructed value of the attribute information of the target point based on the final chromaticity value and the initial luminance value;

[0147] The second processing unit 505 is used to obtain the decoded point cloud based on the final reconstructed value of the attribute information of the target point.

[0148] In some embodiments of this application, the filtering unit 503 is specifically used for:

[0149] Calculate the average reconstructed value of the attribute information of each of the one or more points;

[0150] The average reconstructed values ​​are converted into average luminance values ​​and average chrominance values;

[0151] The average chromaticity value is used as a measurement value, and the initial chromaticity value is filtered using the Kalman filter algorithm to obtain the final chromaticity value.

[0152] In some embodiments of this application, one or more points preceding the target point are one or more points located before the target point in the decoding order.

[0153] In some embodiments of this application, the residual value of the attribute information of the target point is obtained after inverse quantization processing based on the target quantization step size among multiple quantization step sizes; the conversion unit 502 is specifically used for:

[0154] If the target quantization step size is greater than or equal to the threshold N, the initial reconstructed value is converted into the initial luminance value and the initial chrominance value, where N is a non-negative integer.

[0155] In some embodiments of this application, the plurality of quantization steps are ordered in ascending order, where N is the value of the nth quantization step among the plurality of quantization steps, and n is an integer greater than 0.

[0156] In some embodiments of this application, the conversion unit 502 is specifically used for:

[0157] The initial reconstructed values ​​are converted into initial luminance values ​​and initial chrominance values ​​using a color space conversion function. The initial luminance values ​​and initial chrominance values ​​are located within the color space supported by the display screen.

[0158] In some embodiments of this application, the parsing unit 501 is specifically used for:

[0159] When the number of points in a LOD layer of the point cloud is less than the threshold M, the initial reconstructed value of the point's attribute information is obtained for each point in the LOD layer based on the residual value of the point's attribute information obtained through lossless encoding and the predicted value of the point's attribute information. When the number of points in a LOD layer of the point cloud is greater than or equal to M, the initial reconstructed value of the point's attribute information is obtained for the m*M-th point in the LOD layer based on the residual value of the point's attribute information obtained through lossless encoding and the predicted value of the point's attribute information, where M is a positive integer greater than 1 and m is a positive integer greater than or equal to 0.

[0160] In some embodiments of this application, the parsing unit 501 is further configured to:

[0161] The bitstream is parsed to obtain the number of residual values ​​of attribute information for points in the bitstream that do not require dequantization.

[0162] In some embodiments of this application, the parsing unit 501 is specifically used for:

[0163] When the number of points in a LOD layer of the point cloud is less than the threshold T, the final reconstructed value of the attribute information of the points in the LOD layer is replaced with the true value of the attribute information; when the number of points in a LOD layer of the point cloud is greater than or equal to T, the final reconstructed value of the attribute information of the t*T-th point in the LOD layer is replaced with the true value, where T is a positive integer greater than 1 and t is a positive integer greater than or equal to 0.

[0164] In some embodiments of this application, the parsing unit 501 is further configured to:

[0165] The bitstream is parsed to obtain the number of points whose attribute information is finally reconstructed as true values, and the true values ​​of the point's attribute information.

[0166] In some embodiments of this application, the parsing unit 501 is further configured to:

[0167] The point cloud is divided into one or more LOD layers, and each LOD layer includes one or more points.

[0168] In some embodiments of this application, the parsing unit 501 is specifically used for:

[0169] The bitstream is parsed to obtain the reconstructed location information of the target point;

[0170] Based on the reconstructed information of the target point's location information, the predicted value of the target point's attribute information is obtained;

[0171] The bitstream is parsed to obtain the residual values ​​of the attribute information of the target point;

[0172] The initial reconstructed values ​​of the target point's attribute information are obtained based on the predicted values ​​of the target point's attribute information and the residual values ​​of the target point's attribute information.

[0173] Figure 9 This is a schematic block diagram of a point cloud encoder 600 provided in an embodiment of this application.

[0174] like Figure 9 As shown, the encoder 600 may include:

[0175] The first processing unit 601 is used to process the position information of a target point in the point cloud to obtain the reconstructed position information of the target point.

[0176] The second processing unit 602 is used to obtain the predicted value of the attribute information of the target point based on the reconstruction information of the target point's location information;

[0177] The third processing unit 603 processes the attribute information of the target point in the point cloud to obtain the true value of the attribute information of the target point.

[0178] The fourth processing unit 604 is used to obtain the residual value of the attribute information of the target point based on the predicted value of the attribute information of the target point and the true value of the attribute information of the target point.

[0179] The encoding unit 605 is used to encode the number of residual values ​​of the attribute information of the points to be written into the lossless encoding bitstream and the residual value of the attribute information of the target point to obtain the bitstream.

[0180] In some embodiments of this application, the encoding unit 605 is specifically used for:

[0181] When the number of points in a LOD layer of the point cloud is less than the threshold M, the residual value of the attribute information of the undequantized points in the LOD layer is encoded to obtain the bitstream; when the number of points in a LOD layer of the point cloud is greater than or equal to M, the residual value of the attribute information of the m*M-th point in the LOD layer is encoded to obtain the bitstream, where M is a positive integer greater than 1 and m is a positive integer greater than or equal to 0.

[0182] In some embodiments of this application, the first processing unit 601 is specifically used for:

[0183] The point cloud is divided into one or more LOD layers, and each LOD layer includes one or more points.

[0184] 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 500 can correspond to the corresponding subject in executing the method 300 of the embodiments of this application, and each unit in the decoder 500 implements the corresponding process in the method 300. Similarly, the encoder 600 can correspond to the corresponding subject in executing the method 400 of the embodiments of this application, and each unit in the encoder 600 implements the corresponding process in the method 400. For the sake of brevity, further details are omitted here.

[0185] It should also be understood that the units in the encoder or decoder 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. In other words, 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. Of course, in other embodiments of this application, the encoder or decoder may also include other units. In practical applications, these functions can also be implemented with the assistance of other units, and can be implemented collaboratively by multiple units.

[0186] According to another embodiment of this application, the encoder or decoder involved in the embodiments of this application can be constructed and the encoding or decoding method provided in the embodiments of this application can be implemented by running a computer program (including program code) capable of executing 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 memory (RAM), and read-only memory (ROM). The computer program can be recorded on, for example, a computer-readable storage medium, and loaded onto any electronic device with processing capabilities through the computer-readable storage medium and run therein to implement the corresponding method of the embodiments of this application. 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 the embodiments of this application can be completed by the integrated logic circuits of the hardware in the processor and / or by software instructions. The steps of the method disclosed in the embodiments of this application can be directly embodied 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 be located 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. The storage medium is located in the memory, and the processor reads the information in the memory and, in conjunction with its hardware, completes the steps in the above method embodiments.

[0187] Figure 10 This is a schematic structural diagram of the electronic device 700 provided in the embodiments of this application.

[0188] like Figure 10As shown, the electronic device 700 includes at least a processor 710 and a computer-readable storage medium 720. The processor 710 and the computer-readable storage medium 720 can be connected via a bus or other means. The computer-readable storage medium 720 stores a computer program 721, which includes computer instructions. The processor 710 executes the computer instructions stored in the computer-readable storage medium 720. The processor 710 is the computing and control core of the electronic device 700, and is suitable for implementing one or more computer instructions, specifically for loading and executing one or more computer instructions to achieve a corresponding method flow or function.

[0189] As an example, processor 710 may also be referred to as a central processing unit (CPU). Processor 710 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.

[0190] As an example, the computer-readable storage medium 720 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 710. Specifically, the computer-readable storage medium 720 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).

[0191] In one implementation, the electronic device 700 may be Figure 3 The decoding frame 200 shown Figure 8 The decoder 500 is shown; the computer-readable storage medium 720 stores first computer instructions; the processor 710 loads and executes the first computer instructions stored in the computer-readable storage medium 720 to implement... Figure 4 The corresponding steps in the method embodiment shown; in specific implementation, the first computer instruction in the computer-readable storage medium 720 is loaded by the processor 710 and the corresponding steps are executed. To avoid repetition, they will not be described again here.

[0192] In one implementation, the electronic device 700 may be Figure 1 The encoding frame 100 shown or Figure 9The encoder 600 is shown; the computer-readable storage medium 720 stores second computer instructions; the processor 710 loads and executes the second computer instructions stored in the computer-readable storage medium 720 to implement... Figure 7 The corresponding steps in the method embodiment; in specific implementation, the second computer instructions in the computer-readable storage medium 720 are loaded and executed by the processor 710, and will not be described again here to avoid repetition.

[0193] 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 electronic device 700 for storing programs and data. For example, a computer-readable storage medium 720. It is understood that the computer-readable storage medium 720 here may include both the built-in storage medium in electronic device 700 and extended storage media supported by electronic device 700. The computer-readable storage medium provides storage space that stores the operating system of electronic device 700. Furthermore, the storage space also stores one or more computer instructions suitable for loading and execution by processor 710, which may be one or more computer programs 721 (including program code).

[0194] 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 721. In this case, electronic device 700 may be a computer, and processor 710 reads the computer instructions from computer-readable storage medium 720, and executes the computer instructions, causing the computer to perform the encoding or decoding methods provided in the various alternative embodiments described above.

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

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

[0197] 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 method for decoding point clouds, characterized in that, include: The bitstream of the point cloud is parsed to obtain the initial reconstructed value of the attribute information of a target point in the point cloud; The initial reconstructed values ​​are converted into initial luminance values ​​and initial chrominance values; The initial chromaticity values ​​are filtered using the Kalman filter algorithm to obtain the final chromaticity values; Based on the final chromaticity value and the initial luminance value, the final reconstructed value of the attribute information of the target point is obtained; The decoded point cloud is obtained based on the final reconstructed value of the attribute information of the target point.

2. The method according to claim 1, characterized in that, The step of filtering the initial chromaticity value using the Kalman filter algorithm to obtain the final chromaticity value includes: Using the chromaticity values ​​of the reconstructed attribute information of one or more points preceding the target point as measurement values, the initial chromaticity values ​​are filtered using the Kalman filter algorithm to obtain the final chromaticity values.

3. The method according to claim 2, characterized in that, The process of using the reconstructed chromaticity values ​​of attribute information from one or more points preceding the target point as measurement values, and filtering the initial chromaticity values ​​using the Kalman filter algorithm to obtain the final chromaticity value includes: Calculate the average reconstruction value of the attribute information of one or more points preceding the target point; The average reconstructed values ​​are converted into average luminance values ​​and average chrominance values; The average chromaticity value is used as a measurement value, and the initial chromaticity value is filtered using the Kalman filter algorithm to obtain the final chromaticity value.

4. The method according to claim 2, characterized in that, The one or more points preceding the target point are the one or more points located before the target point in the decoding order.

5. The method according to claim 1, characterized in that, The residual value of the attribute information of the target point is obtained after inverse quantization processing based on the target quantization step size among multiple quantization steps; the conversion of the initial reconstructed value into initial luminance value and initial chrominance value includes: If the target quantization step size is greater than or equal to the threshold N, the initial reconstructed value is converted into the initial luminance value and the initial chrominance value, where N is a non-negative integer.

6. The method according to claim 5, characterized in that, The multiple quantization steps are sorted in ascending order, where N is the value of the nth quantization step, and n is an integer greater than 0.

7. The method according to claim 1, characterized in that, The step of converting the initial reconstructed values ​​into initial luminance values ​​and initial chrominance values ​​includes: The initial reconstructed values ​​are converted into initial luminance values ​​and initial chrominance values ​​using a color space conversion function. The initial luminance values ​​and initial chrominance values ​​are located within the color space supported by the display screen.

8. The method according to claim 1, characterized in that, The process of parsing the bitstream of the point cloud to obtain the initial reconstructed values ​​of the attribute information of a target point in the point cloud includes: When the number of points in a LOD layer of the point cloud is less than the threshold M, the initial reconstructed value of the point's attribute information is obtained for the points in the LOD layer based on the residual value of the point's attribute information in lossless encoding and the predicted value of the point's attribute information. When the number of points in a LOD layer of the point cloud is greater than or equal to M, for the m-th point in the LOD layer... Given M points, the initial reconstructed values ​​of the point attribute information are obtained based on the residual values ​​of the point attribute information obtained from lossless coding and the predicted values ​​of the point attribute information. M is a positive integer greater than 1, and m is a positive integer greater than or equal to 0.

9. The method according to claim 8, characterized in that, The method further includes: The bitstream is parsed to obtain the number of residual values ​​of attribute information for points in the bitstream that do not require dequantization.

10. The method according to claim 1, characterized in that, The process of parsing the bitstream of the point cloud to obtain the initial reconstructed values ​​of the attribute information of a target point in the point cloud includes: When the number of points in a LOD layer of the point cloud is less than the threshold T, for the points in the LOD layer, the final reconstructed value of the point's attribute information is replaced with the true value of the attribute information. When the number of points in a LOD layer of the point cloud is greater than or equal to T, the t-th point in the LOD layer will be... The final reconstructed values ​​of the attribute information of T points are replaced with the true values, where T is a positive integer greater than 1 and t is a positive integer greater than or equal to 0.

11. The method according to claim 10, characterized in that, The method further includes: The bitstream is parsed to obtain the number of points whose attribute information is finally reconstructed as true values, and the true values ​​of the point's attribute information.

12. The method according to claim 1, characterized in that, The method further includes: The point cloud is divided into one or more LOD layers, and each LOD layer includes one or more points.

13. The method according to claim 1, characterized in that, The process of parsing the bitstream of the point cloud to obtain the initial reconstructed values ​​of the attribute information of a target point in the point cloud includes: The bitstream is parsed to obtain the reconstructed location information of the target point; Based on the reconstructed information of the target point's location information, the predicted value of the target point's attribute information is obtained; The bitstream is parsed to obtain the residual values ​​of the attribute information of the target point; The initial reconstructed values ​​of the target point's attribute information are obtained based on the predicted values ​​of the target point's attribute information and the residual values ​​of the target point's attribute information.

14. A decoder, characterized in that, include: The parsing unit is used to parse the bitstream of the point cloud to obtain the initial reconstructed value of the attribute information of a target point in the point cloud; A conversion unit is used to convert the initial reconstructed values ​​into initial luminance values ​​and initial chrominance values; The filtering unit is used to filter the initial chromaticity value using the Kalman filtering algorithm to obtain the final chromaticity value; The first processing unit is used to obtain the final reconstructed value of the attribute information of the target point based on the final chromaticity value and the initial luminance value; The second processing unit is used to obtain the decoded point cloud based on the final reconstructed value of the attribute information of the target point.

15. An electronic device, characterized in that, include: A processor, adapted to execute computer programs; A computer-readable storage medium storing a computer program that, when executed by the processor, implements the point cloud decoding method as described in any one of claims 1 to 13.

16. A computer-readable storage medium, characterized in that, The computer-readable storage medium includes computer instructions adapted to be loaded by a processor and executed as described in any one of claims 1 to 13 for decoding point clouds.

Citation Information

Patent Citations

  • Point cloud decoding method, point cloud coding method, decoder and encoder

    CN116601947A

  • Point cloud decoding method and encoding method, and decoder and encoder

    WO2022133755A1