Coding method, code stream, encoder, decoder and storage medium

By using filtering coefficients in the encoder and decoder to filter the reconstructed point cloud, the problem of large differences between the reconstructed point cloud and the initial point cloud is solved, the point cloud quality is improved, the bit rate is saved, and the encoding and decoding efficiency is increased.

CN118525509BActive Publication Date: 2026-03-17GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP LTD
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-12-31
Publication Date
2026-03-17

AI Technical Summary

Technical Problem

Existing geometric point cloud compression and encoding/decoding frameworks result in significant differences between the reconstructed point cloud and the initial point cloud, leading to severe distortion and affecting point cloud quality.

Method used

The reconstructed point cloud is filtered by determining the filtering coefficients in the encoder, encoding the filtering identification information and coefficients, and then decoding the filtering coefficients in the decoder to optimize the quality of the reconstructed point cloud.

Benefits of technology

It improves point cloud quality and saves bitrate, thus increasing encoding and decoding efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN118525509B_ABST
    Figure CN118525509B_ABST
Patent Text Reader

Abstract

Embodiments of the present application disclose a coding method, a code stream, an encoder, a decoder and a storage medium. The method comprises: decoding a code stream, determining filter identification information; wherein the filter identification information is used to determine whether to perform filter processing on a reconstructed point cloud corresponding to an initial point cloud; if the filter identification information indicates to perform filter processing on the reconstructed point cloud, decoding the code stream, determining filter coefficients; performing filter processing on K target points corresponding to a first point in the reconstructed point cloud by using the filter coefficients, and determining a filtered point cloud corresponding to the reconstructed point cloud; wherein the K target points include the first point and (K-1) neighboring points adjacent to the first point, K is an integer greater than 1, and the first point represents an arbitrary point in the reconstructed point cloud. In this way, the quality of the point cloud can be improved, the code rate can be saved, and the coding efficiency 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 video encoding and decoding technology, and in particular to an encoding and decoding method, a bitstream, an encoder, a decoder, and a storage medium. Background Technology

[0002] Currently, in the Geometry-based Point Cloud Compression (G-PCC) encoding and decoding framework, the encoding of point cloud attribute information mainly focuses on color information. First, the color information is converted from the RGB color space to the YUV color space. Then, the reconstructed geometric information is used to recolor the point cloud, ensuring that the unencoded attribute information corresponds to the reconstructed geometric information. In color information encoding, three predictive transformation methods are mainly used: Predicting Transform, Lifting Transform, and Region Adaptive Hierarchical Transform (RAHT), ultimately generating a binary bitstream.

[0003] However, in related technologies, the existing G-PCC encoding and decoding framework only performs basic reconstruction of the initial point cloud. In the case of lossy attribute encoding, the reconstructed point cloud may differ significantly from the initial point cloud, resulting in severe distortion and affecting the overall quality of the point cloud. Summary of the Invention

[0004] This application provides an encoding / decoding method, a bitstream, an encoder, a decoder, and a storage medium, which can not only improve the quality of point clouds but also save bitrate, thereby improving encoding / decoding efficiency.

[0005] The technical solution of this application embodiment can be implemented as follows:

[0006] In a first aspect, embodiments of this application provide an encoding method applied to an encoder, the method comprising:

[0007] Determine the initial point cloud and the corresponding reconstructed point cloud;

[0008] The filtering coefficients are determined based on the initial point cloud and the reconstructed point cloud.

[0009] The K target points corresponding to the first point in the reconstructed point cloud are filtered using the filtering coefficients to determine the filtered point cloud corresponding to the reconstructed point cloud; where the K target points include the first point and (K-1) nearest neighbor points adjacent to the first point, K is an integer greater than 1, and the first point represents any point in the reconstructed point cloud;

[0010] Based on the reconstructed point cloud and the filtered point cloud, filter identification information is determined; the filter identification information is used to determine whether to perform filtering processing on the reconstructed point cloud.

[0011] If the filter identifier information indicates that the reconstructed point cloud should be filtered, then the filter identifier information and filter coefficients are encoded, and the resulting encoded bits are written into the bitstream.

[0012] Secondly, embodiments of this application provide a bitstream that is generated by bit encoding based on information to be encoded; wherein the information to be encoded includes at least one of the following: residual values ​​of attribute information of points in the initial point cloud, filter identification information, and filter coefficients.

[0013] Thirdly, embodiments of this application provide a decoding method applied to a decoder, the method comprising:

[0014] Decode the bitstream and determine the filter identification information; the filter identification information is used to determine whether to perform filtering processing on the reconstructed point cloud corresponding to the initial point cloud.

[0015] If the filtering identifier information indicates that the reconstructed point cloud should be filtered, then the bitstream is decoded and the filtering coefficients are determined.

[0016] The K target points corresponding to the first point in the reconstructed point cloud are filtered using the filtering coefficients to determine the filtered point cloud corresponding to the reconstructed point cloud. The K target points include the first point and (K-1) nearest neighbor points adjacent to the first point, where K is an integer greater than 1, and the first point represents any point in the reconstructed point cloud.

[0017] Fourthly, embodiments of this application provide an encoder, which includes a first determining unit, a first filtering unit, and an encoding unit; wherein,

[0018] The first determining unit is configured to determine the initial point cloud and the reconstructed point cloud corresponding to the initial point cloud; and to determine the filtering coefficients based on the initial point cloud and the reconstructed point cloud.

[0019] The first filtering unit is configured to use filtering coefficients to filter the K target points corresponding to the first point in the reconstructed point cloud, and determine the filtered point cloud corresponding to the reconstructed point cloud; wherein, the K target points include the first point and (K-1) nearest neighbor points adjacent to the first point, K is an integer greater than 1, and the first point represents any point in the reconstructed point cloud;

[0020] The first determining unit is further configured to determine filtering identification information based on the reconstructed point cloud and the filtered point cloud; wherein, the filtering identification information is used to determine whether to perform filtering processing on the reconstructed point cloud;

[0021] The encoding unit is configured to encode the filter identification information and filter coefficients if the filter identification information indicates that the reconstructed point cloud should be filtered, and write the obtained encoded bits into the bit stream.

[0022] Fifthly, embodiments of this application provide an encoder, which includes a first memory and a first processor; wherein,

[0023] A first memory for storing computer programs that can run on a first processor;

[0024] A first processor is used to execute the method as described in the first aspect when running a computer program.

[0025] Sixthly, embodiments of this application provide a decoder, which includes a decoding unit and a second filtering unit; wherein,

[0026] The decoding unit is configured to decode the bitstream and determine the filtering identification information; wherein, the filtering identification information is used to determine whether to perform filtering processing on the reconstructed point cloud corresponding to the initial point cloud; and if the filtering identification information indicates that the reconstructed point cloud should be filtered, then the bitstream is decoded and the filtering coefficients are determined.

[0027] The second filtering unit is configured to use filtering coefficients to filter the K target points corresponding to the first point in the reconstructed point cloud to determine the filtered point cloud corresponding to the reconstructed point cloud; wherein, the K target points include the first point and (K-1) nearest neighbor points adjacent to the first point, where K is an integer greater than 1, and the first point represents any point in the reconstructed point cloud.

[0028] In a seventh aspect, embodiments of this application provide a decoder, which includes a second memory and a second processor; wherein,

[0029] The second memory is used to store computer programs that can run on the second processor;

[0030] The second processor is used to execute the method described in the third aspect when running a computer program.

[0031] Eighthly, embodiments of this application provide a computer storage medium storing a computer program that, when executed by a first processor, implements the method described in the first aspect, or when executed by a second processor, implements the method described in the third aspect.

[0032] This application provides an encoding / decoding method, a bitstream, an encoder, a decoder, and a storage medium. In the encoder, an initial point cloud and a reconstructed point cloud corresponding to the initial point cloud are determined. Based on the initial point cloud and the reconstructed point cloud, filtering coefficients are determined. The filtering coefficients are used to filter K target points corresponding to a first point in the reconstructed point cloud to determine the filtered point cloud corresponding to the reconstructed point cloud. The K target points include the first point and (K-1) nearest neighbor points adjacent to the first point, where K is an integer greater than 1, and the first point represents any point in the reconstructed point cloud. Based on the reconstructed point cloud and the filtered point cloud, filtering identification information is determined. This filtering identification information is used to determine whether to perform filtering on the reconstructed point cloud. If the filtering identification information indicates that filtering should be performed on the reconstructed point cloud, the filtering identification information and the filtering coefficients are encoded, and the obtained encoded bits are written into the bitstream. In the decoder, the bitstream is decoded to determine the filtering identification information. The filtering identification information is used to determine whether to perform filtering processing on the reconstructed point cloud corresponding to the initial point cloud. If the filtering identification information indicates that the reconstructed point cloud should be filtered, the bitstream is decoded to determine the filtering coefficients. The filtering coefficients are used to filter the K target points corresponding to the first point in the reconstructed point cloud to determine the filtered point cloud corresponding to the reconstructed point cloud. The K target points include the first point and (K-1) nearest neighbor points adjacent to the first point, where K is an integer greater than 1, and the first point represents any point in the reconstructed point cloud. In this way, the encoder uses the initial point cloud and the reconstructed point cloud to calculate the filtering coefficients for filtering. Only after determining that the reconstructed point cloud needs filtering, the encoder passes the corresponding filtering coefficients to the decoder. Correspondingly, the decoder can directly decode to obtain the filtering coefficients and then use them to filter the reconstructed point cloud, thereby optimizing the reconstructed point cloud and improving its quality. Moreover, when the encoder uses nearest neighbor points for filtering, it also considers the current point itself, so that the filtered value also depends on the attribute value of the current point. This further improves the quality of the point cloud, saves bit rate, and increases encoding and decoding efficiency. Attached Figure Description

[0033] Figure 1 This is a schematic diagram of the component framework of a G-PCC encoder;

[0034] Figure 2 This is a schematic diagram of the component framework of a G-PCC decoder;

[0035] Figure 3 This is a schematic diagram of a zero-runtime encoding structure;

[0036] Figure 4 A flowchart illustrating an encoding method provided in this application embodiment. Figure 1 ;

[0037] Figure 5A flowchart illustrating an encoding method provided in this application embodiment. Figure 2 ;

[0038] Figure 6 This application provides a schematic diagram illustrating the relationship between BD-Rate performance index and K value under different components in an embodiment of the present application.

[0039] Figure 7 A schematic diagram illustrating the relationship between encoding / decoding time and the K value, provided as an embodiment of this application;

[0040] Figure 8 A flowchart illustrating a decoding method provided in this application embodiment. Figure 1 ;

[0041] Figure 9 A flowchart illustrating a decoding method provided in this application embodiment. Figure 2 ;

[0042] Figure 10 A schematic diagram illustrating the overall encoding and decoding process provided in an embodiment of this application;

[0043] Figure 11 This is a schematic diagram of an encoding-end filtering process provided in an embodiment of this application;

[0044] Figure 12 This is a schematic diagram of a decoding-end filtering process provided in an embodiment of this application;

[0045] Figure 13 A schematic diagram showing the comparison of test results for predicted transformation under CY test conditions, provided as an embodiment of this application;

[0046] Figure 14 A schematic diagram showing the comparison of test results for lifting transformation under C1 test conditions, provided for an embodiment of this application;

[0047] Figure 15 A schematic diagram showing the comparison of test results of RAHT transformation under C1 test conditions, provided for an embodiment of this application;

[0048] Figure 16 A schematic diagram of the test results of lifting transformation under C2 test conditions provided in an embodiment of this application;

[0049] Figure 17 A schematic diagram of the test results of RAHT transformation under C2 test conditions provided in an embodiment of this application;

[0050] Figure 18 A schematic diagram of the composition structure of an encoder provided in an embodiment of this application;

[0051] Figure 19This is a schematic diagram of the specific hardware structure of an encoder provided in an embodiment of this application;

[0052] Figure 20 A schematic diagram of the composition structure of a decoder provided in an embodiment of this application;

[0053] Figure 21 This is a schematic diagram of the specific hardware structure of a decoder provided in an embodiment of this application;

[0054] Figure 22 This is a schematic diagram of the composition structure of an encoding / decoding system provided in an embodiment of this application. Detailed Implementation

[0055] In order to gain a more detailed understanding of the features and technical content of the embodiments of this application, the implementation of the embodiments of this application will be described in detail below with reference to the accompanying drawings. The accompanying drawings are for reference and illustration only and are not intended to limit the embodiments of this application.

[0056] Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this application belongs. The terminology used herein is for the purpose of describing embodiments of this application only and is not intended to limit this application.

[0057] In the following description, references to "some embodiments" refer to a subset of all possible embodiments. It is understood that "some embodiments" may be the same or different subsets of all possible embodiments and may be combined with each other without conflict. It should also be noted that the terms "first, second, third" used in the embodiments of this application are merely for distinguishing similar objects and do not represent a specific ordering of objects. It is understood that "first, second, third" may be interchanged in a specific order or sequence where permitted, so that the embodiments of this application described herein can be implemented in an order other than that illustrated or described herein.

[0058] Before providing a further detailed description of the embodiments of this application, the nouns and terms used in the embodiments of this application will be explained. The nouns and terms used in the embodiments of this application shall be interpreted as follows:

[0059] Geometry-based point cloud compression (G-PCC or GPCC)

[0060] Video-based point cloud compression (V-PCC or VPCC)

[0061] Wiener Filter

[0062] Octree

[0063] Bounding box

[0064] K-Nearest Neighbor (KNN)

[0065] Level of Detail (LOD)

[0066] Predicting Transform

[0067] Lifting Transform

[0068] Region Adaptive Hierarchical Transform (RAHT)

[0069] Peak Signal-to-Noise Ratio (PSNR)

[0070] Sum Squared Error (SSE)

[0071] Minimum Mean Squared Error (MMSE)

[0072] Rate Distortion Optimization (RDO)

[0073] Luminance component (L or Y)

[0074] The blue chromaticity component (Cb)

[0075] Chroma red (Cr) component

[0076] Point clouds are a three-dimensional representation of an object's surface. They can be collected using acquisition devices such as photoelectric radar, lidar, laser scanners, and multi-view cameras.

[0077] A point cloud is a collection of massive 3D points. Points in a point cloud can include both location and attribute information. For example, location information can be the point's 3D coordinates, also known as geometric information. Attribute information can include color information and / or reflectivity, etc. Color information can be from any color space. For example, color information can be RGB, where R represents red (Red, R), G represents green (Green, G), and B represents blue (Blue, B). Alternatively, color information can be luminance / chrominance (YCbCr, YUV) information, where Y represents luminance, Cb(U) represents blue chrominance, and Cr(V) represents red chrominance.

[0078] Point clouds obtained based on laser measurement principles can include the three-dimensional coordinates and laser reflection intensity of each point. Similarly, point clouds obtained based on photogrammetry principles can include the three-dimensional coordinates and color information of each point. Furthermore, point clouds obtained by combining laser measurement and photogrammetry principles can include the three-dimensional coordinates, laser reflection intensity, and color information of each point.

[0079] Point clouds can be categorized according to the acquisition method:

[0080] The first type of static point cloud: that is, the object is stationary and the device for acquiring the point cloud is also stationary;

[0081] The second type of dynamic point cloud: The object is in motion, but the device acquiring the point cloud is stationary;

[0082] The third type of dynamic point cloud acquisition: The device acquiring the point cloud is in motion.

[0083] For example, point clouds can be divided into two main categories based on their uses:

[0084] Category 1: Machine-perceived point cloud, which can be used in scenarios such as autonomous navigation systems, real-time inspection systems, geographic information systems, visual sorting robots, and disaster relief robots;

[0085] Category 2: Human eye-perceived point clouds, which can be used in point cloud application scenarios such as digital cultural heritage, free-viewpoint broadcasting, 3D immersive communication, and 3D immersive interaction.

[0086] Since point clouds are collections of massive points, storing point clouds not only consumes a lot of memory, but is also not conducive to transmission. Furthermore, there is not enough bandwidth to support the transmission of point clouds directly at the network layer without compression. Therefore, point clouds need to be compressed.

[0087] Currently, point cloud encoding frameworks capable of compressing point clouds can be the G-PCC or 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 the first type of static point clouds and the third type of dynamically acquired point clouds, while the V-PCC codec framework can be used to compress the second type of dynamic point clouds. In this application, the description primarily focuses on the G-PCC codec framework.

[0088] It is understandable that in the point cloud G-PCC encoding and decoding framework, the point cloud of the input 3D image model is divided into slices, and each slice is encoded independently.

[0089] Figure 1 This is a schematic diagram of the structural framework of a G-PCC encoder. Figure 1As shown, this G-PCC encoder is applied to a point cloud encoder. In this G-PCC encoding framework, the point cloud data to be encoded is first divided into multiple slices. Within each slice, the geometric information and attribute information of each point cloud are encoded separately. During geometric encoding, coordinate transformation is performed on the geometric information so that all point clouds are contained within a single bounding box. Then, quantization is performed. This quantization step mainly serves a scaling function. Due to the rounding during quantization, some point clouds have identical geometric information. Therefore, a decision is made based on parameters to remove duplicate points. This process of quantization and removing duplicate points is also known as voxelization. Finally, the bounding box is divided into octrees. In the octree-based geometric information encoding process, the bounding box is divided into eight equal sub-cubes. The non-empty sub-cubes (containing points from the point cloud) are further divided into eight equal parts until the resulting leaf nodes are 1×1×1 unit cubes. Arithmetic encoding is then performed on the points in the leaf nodes to generate a binary geometric bitstream, i.e., the geometric code stream. In the triangle soup (trisoup)-based geometric information encoding process, octree partitioning is also performed first. However, unlike octree-based geometric information encoding, this trisoup does not need to partition the point cloud level by level to 1×1×1 unit cubes. Instead, partitioning stops when the sub-block has a side length of W. Based on the surface formed by the point cloud distribution in each block, at most twelve intersection points (vertices) are obtained between this surface and the twelve edges of the block. Arithmetic encoding is then performed on the vertices (surface fitting based on the intersection points) to generate a binary geometric bitstream, i.e., the geometric code stream. Vertex is also used in the implementation of the geometric reconstruction process, and the reconstructed set information is used when encoding the attributes of the point cloud.

[0090] In the attribute encoding process, after geometric encoding is completed and the geometric information is reconstructed, color conversion is performed to transform the color information (i.e., attribute information) from the RGB color space to the YUV color space. Then, the reconstructed geometric information is used to recolor the point cloud, so that the unencoded attribute information corresponds with the reconstructed geometric information. Attribute encoding mainly focuses on color information. In the color information encoding process, there are two main transformation methods: one is distance-based lifting transformation based on LOD partitioning, and the other is direct RAHT transformation. Both methods will transform the color information from the spatial domain to the frequency domain, obtain high-frequency coefficients and low-frequency coefficients through transformation, and finally quantize the coefficients (i.e., quantization coefficients). Finally, the geometric encoded data after octree partitioning and surface fitting and the attribute encoded data processed by quantization coefficients are sliced ​​and synthesized, and the vertex coordinates of each block are encoded sequentially (i.e., arithmetic encoding) to generate a binary attribute bitstream, i.e., attribute codestream.

[0091] Figure 2 This is a schematic diagram of the structural framework of a G-PCC decoder. (Example) Figure 2 As shown, this G-PCC decoder is applied to a point cloud encoder. In this G-PCC decoding framework, for the acquired binary bitstream, the geometric bitstream and attribute bitstream are first decoded independently. When decoding the geometric bitstream, the geometric information of the point cloud is obtained through arithmetic decoding, octree synthesis, surface fitting, geometry reconstruction, and inverse coordinate transformation. When decoding the attribute bitstream, the attribute information of the point cloud is obtained through arithmetic decoding, inverse quantization, inverse LOD-based lifting transformation or RAHT-based inverse transformation, and inverse color transformation. Based on the geometric and attribute information, a 3D image model of the point cloud data to be encoded is reconstructed.

[0092] As mentioned above Figure 1 In the G-PCC encoder shown, LOD partitioning is mainly used for two methods in point cloud attribute transformation: Predicting Transform and Lifting Transform.

[0093] It can also be understood that the LOD partitioning process occurs after the point cloud geometric reconstruction, at which point the geometric coordinate information of the point cloud can be directly obtained. The point cloud is divided into multiple LODs based on the Euclidean distance between the points; the colors of the points in the LODs are decoded sequentially, the number of zeros in the zero-run-length encoding technique is calculated (represented by zero_cnt), and then the residuals are decoded based on the value of zero_cnt.

[0094] The decoding operation is performed using the zero-runtime encoding method. First, the size of the first `zero_cnt` in the bitstream is determined. If it is greater than 0, it indicates that there are zero_cnt consecutive residuals of 0. If `zero_cnt` is equal to 0, it indicates that the attribute residual of this point is not 0. The corresponding residual value is decoded, and then the decoded residual value is dequantized and added to the color prediction value of the current point to obtain the reconstructed value of that point. This operation continues until all point cloud points are decoded. For example, Figure 3 This is a schematic diagram of a zero-runtime encoding structure. For example... Figure 3 As shown, if the residual values ​​are 73, 50, 32, and 15, then zero_cnt equals 0; if the residual value is 0 and there is only one residual, then zero_cnt equals 1; if the residual value is 0 and there are N residuals, then zero_cnt equals N.

[0095] In other words, the color reconstruction value of the current point (represented by reconstructedColor) needs to be calculated based on the color prediction value (represented by predictedColor) under the current prediction mode and the residual value (represented by residual) of color dequantization under the current prediction mode, i.e., reconstructedColor = predictedColor + residual.

[0096] Furthermore, the current point will be used as the nearest neighbor of subsequent LOD points, and the color reconstruction value of the current point will be used to predict the attributes of subsequent points.

[0097] However, existing G-PCC encoding and decoding frameworks only perform basic reconstruction of point cloud sequences. After reconstruction, no further processing is done to improve the quality of the reconstructed point cloud's color attributes. This may result in a significant difference between the reconstructed point cloud and the original point cloud, leading to severe distortion and affecting the overall quality of the point cloud.

[0098] Based on this, the present application proposes an encoding and decoding method that can affect the arithmetic encoding and subsequent parts of the G-PCC encoding framework, as well as the attribute reconstruction part of the G-PCC decoding framework.

[0099] In other words, the embodiments of this application propose an encoding method that can be applied to, for example... Figure 1 The arithmetic encoding and subsequent parts are shown. Accordingly, embodiments of this application also propose a decoding method that can be applied to, for example... Figure 2 The attribute shown is the reconstructed part.

[0100] In this way, the encoder uses the initial point cloud and the reconstructed point cloud to calculate the filtering coefficients for filtering. Only after determining that the reconstructed point cloud will be filtered, the corresponding filtering coefficients are passed to the decoder. Correspondingly, the decoder can directly decode to obtain the filtering coefficients and then use them to filter the reconstructed point cloud, thereby optimizing the reconstructed point cloud and improving its quality. Furthermore, when using nearest neighbor points for filtering, the encoder also considers the current point itself, ensuring that the filtered value depends on the current point's own attribute values. Moreover, when determining whether to filter the reconstructed point cloud, not only PSNR performance is considered, but also the rate-distortion cost is weighed. In addition, this paper proposes a method for determining the correspondence between the reconstructed point cloud and the initial point cloud under geometrically and attribute-lossy conditions, which not only expands the applicability and improves the quality of the point cloud but also saves bitrate and improves encoding and decoding efficiency.

[0101] The embodiments of this application will now be clearly and completely described in conjunction with the accompanying drawings.

[0102] In one embodiment of this application, see Figure 4 It illustrates a flowchart of an encoding method provided in an embodiment of this application. Figure 1 .like Figure 4 As shown, the method may include:

[0103] S401: Determine the initial point cloud and the corresponding reconstructed point cloud.

[0104] It should be noted that the encoding method described in the embodiments of this application specifically refers to a point cloud encoding method, which can be applied to a point cloud encoder (in the embodiments of this application, it can be simply referred to as an "encoder").

[0105] It should also be noted that, in the embodiments of this application, an initial point cloud and a corresponding reconstructed point cloud can be determined first, and then the filter coefficients can be calculated using the initial point cloud and the reconstructed point cloud. In addition, for a point in the initial point cloud, when encoding that point, it can be used as a point to be encoded in the initial point cloud, while there are multiple encoded points around that point.

[0106] Furthermore, in the embodiments of this application, for a point in the initial point cloud, there is a corresponding geometric information and an attribute information; wherein, the geometric information represents the spatial position of the point, and the attribute information represents the attribute value of the point (such as the color component value).

[0107] Here, the attribute information may include color components, specifically color information in any color space. For example, the attribute information may be color information in RGB space, YUV space, YCbCr space, etc., and this application embodiment does not make specific limitations.

[0108] Furthermore, in this embodiment, the color components may include a first color component, a second color component, and a third color component. Thus, if the color components conform to the RGB color space, the first, second, and third color components can be determined as R component, G component, and B component, respectively; if the color components conform to the YUV color space, the first, second, and third color components can be determined as Y component, U component, and V component, respectively; if the color components conform to the YCbCr color space, the first, second, and third color components can be determined as Y component, Cb component, and Cr component, respectively.

[0109] It is understood that, in the embodiments of this application, for a point in the initial point cloud, the attribute information of the point can be a color component, reflectivity or other attributes, and the embodiments of this application do not make specific limitations.

[0110] Furthermore, in this embodiment, for a point in the initial point cloud, the predicted value and residual value of the point's attribute information can be determined first. Then, the predicted value and residual value are used to further calculate the reconstructed value of the point's attribute information, so as to construct the reconstructed point cloud. Specifically, for a point in the initial point cloud, when determining the predicted value of the point's attribute information, the geometric information and attribute information of multiple target neighbor points of the point can be used, combined with the geometric information of the point, to predict the attribute information of the point, thereby obtaining the corresponding predicted value, and thus determining the corresponding reconstructed value. In this way, for a point in the initial point cloud, after determining the reconstructed value of the point's attribute information, the point can be used as the nearest neighbor of points in subsequent LODs, so as to continue to predict the attributes of subsequent points using the reconstructed value of the point's attribute information, thereby constructing the reconstructed point cloud.

[0111] In other words, in this embodiment, the initial point cloud can be directly obtained through the point cloud reading function of the encoder / decoder program, while the reconstructed point cloud is obtained after attribute encoding, attribute reconstruction, and geometric compensation. Furthermore, the reconstructed point cloud in this embodiment can be the reconstructed point cloud output after decoding, or it can be used as a reference for decoding subsequent point clouds. Moreover, the reconstructed point cloud can be used not only within the prediction loop (i.e., as an inloop filter) as a reference for decoding subsequent point clouds, but also outside the prediction loop (i.e., as a post-filter) without being used as a reference for decoding subsequent point clouds; this embodiment does not specifically limit this.

[0112] It is also understood that the embodiments of this application are implemented under the condition of attribute lossy encoding, and this can be further divided into two cases: geometrically lossless and attribute lossy encoding and geometrically lossy and attribute lossy encoding. Therefore, in one possible implementation, for S401, determining the initial point cloud and the reconstructed point cloud corresponding to the initial point cloud may include: if the initial point cloud is encoded and reconstructed using the first type of encoding method, a first reconstructed point cloud is obtained, and the first reconstructed point cloud is used as the reconstructed point cloud.

[0113] In another possible implementation, for S401, determining the initial point cloud and the corresponding reconstructed point cloud may include:

[0114] If the initial point cloud is encoded and reconstructed using the second type of encoding method, a second reconstructed point cloud is obtained; geometric restoration processing is performed on the second reconstructed point cloud to obtain a restored reconstructed point cloud, which is then used as the reconstructed point cloud.

[0115] It should be noted that, in the embodiments of this application, the first type of encoding method is used to indicate geometrically lossless but attribute-lossy encoding of the initial point cloud, and the second type of encoding method is used to indicate geometrically lossy and attribute-lossy encoding of the initial point cloud.

[0116] It should also be noted that in the case of geometric lossless reconstruction, the number and coordinates of points in the reconstructed point cloud remain unchanged; however, in the case of geometric loss, the number and coordinates of points, and even the bounding box of the entire reconstructed point cloud, will change significantly depending on the bitrate set, and geometric restoration processing is required in this case.

[0117] Furthermore, in some embodiments, the geometric restoration processing of the second reconstructed point cloud to obtain the restored reconstructed point cloud may include:

[0118] Geometric compensation is performed on the second reconstructed point cloud to obtain the intermediate reconstructed point cloud.

[0119] The intermediate reconstructed point cloud is scaled to obtain the restored reconstructed point cloud; the restored reconstructed point cloud has the same size and geometric position as the initial point cloud.

[0120] In other words, in this embodiment of the application, the geometric coordinates of the reconstructed point cloud are first preprocessed. After geometric compensation, the scaling scale in the configuration parameters is used to divide the geometric coordinates of each point by the scaling scale according to the reconstruction process. Through this process, the reconstructed point cloud can be restored to a size comparable to the bounding box of the initial point cloud, and the geometric position is the same (i.e., the offset of the geometric coordinates is eliminated).

[0121] It should also be noted that before inputting the initial point cloud and the reconstructed point cloud into the filter, it is necessary to ensure the correspondence between the points in the reconstructed point cloud and the points in the initial point cloud. Therefore, in one possible implementation, the method may further include: in the case of the first type of encoding method, determining the corresponding points in the initial point cloud of the points in the reconstructed point cloud according to the first preset search method, and establishing the correspondence between the points in the reconstructed point cloud and the points in the initial point cloud.

[0122] In another possible implementation, the method may further include: in the case of the second type of encoding method, determining the corresponding points in the initial point cloud of the points in the reconstructed point cloud according to the second preset search method, constructing a matching point cloud based on the determined corresponding points, using the matching point cloud as the initial point cloud, and establishing a correspondence between the points in the reconstructed point cloud and the points in the initial point cloud.

[0123] In one specific embodiment, determining the corresponding point in the initial point cloud of a point in the reconstructed point cloud according to the second preset search method may include:

[0124] Based on the current point in the reconstructed point cloud, a second constant number of points are searched in the initial point cloud using the second preset search method;

[0125] Calculate the distance between the current point and each of the second constant number of points, and select the minimum distance value from the distance values;

[0126] If there is only one minimum distance value, then the point corresponding to the minimum distance value is determined as the corresponding point of the current point;

[0127] If there are multiple minimum distance values, then the corresponding point of the current point is determined based on the multiple points corresponding to the minimum distance values.

[0128] It should be noted that, in the embodiments of this application, determining the corresponding point of the current point based on multiple points corresponding to the minimum distance value may include: randomly selecting a point from the multiple points corresponding to the minimum distance value and determining the selected point as the corresponding point of the current point; or, performing a fusion process on the multiple points corresponding to the minimum distance value and determining the fused point as the corresponding point of the current point; no specific limitation is made here.

[0129] It should also be noted that, in the embodiments of this application, the first preset search method is a K-nearest neighbor search method that searches for a first constant number of points; the second preset search method is a K-nearest neighbor search method that searches for a second constant number of points. In a specific embodiment, the first constant value is equal to 1, and the second constant value is equal to 5; that is, the first preset search method is a KNN search method with k=1, and the second preset search method is a KNN search method with k=5, but no specific limitation is made here.

[0130] In other words, for the first type of encoding method, namely the geometrically lossless but attribute-lossy encoding method, the number and coordinates of points in the reconstructed point cloud remain unchanged. Therefore, matching with corresponding points in the initial point cloud is relatively easy; a KNN search with k=1 is sufficient to obtain the correspondence between points. However, in the geometrically lossy and attribute-lossy encoding method, the number and coordinates of points, and even the bounding box of the entire point cloud, can change significantly depending on the set bitrate. To more accurately find the correspondence between points in this case, the geometric coordinates of the reconstructed point cloud must first be preprocessed. After geometric coordinate compensation, the scaling factor in the configuration parameters is used, and then the geometric coordinates of each point are divided by this scaling factor according to the reconstruction process. This process restores the reconstructed point cloud to a size comparable to the original point cloud and eliminates the geometric coordinate offset, ensuring that the geometric positions are identical. Subsequently, for each point in the reconstructed point cloud, a KNN search (k=5) is performed in the original point cloud, and the distances to the current point from these five points are calculated sequentially. The nearest neighbor is saved. If multiple nearest neighbors exist with the same distance, one of these neighbors can be randomly selected; alternatively, these neighbors can be merged into a single point by averaging their attribute values ​​as the attribute value of the current point's nearest matching neighbor. In this way, a point cloud with the same number of points as the reconstructed point cloud and a one-to-one correspondence between each point is obtained. This point cloud is then used as the true initial point cloud and input into the filter along with the reconstructed point cloud.

[0131] S402: Determine the filtering coefficients based on the initial point cloud and the reconstructed point cloud.

[0132] It should be noted that, in this embodiment, the points in the initial point cloud and the points in the reconstructed point cloud have a corresponding relationship. Before applying the filtering coefficients to the input filter, it is first necessary to determine the K target points corresponding to the points in the reconstructed point cloud. Here, taking the current point as an example, the K target points corresponding to the current point in the reconstructed point cloud may include the current point and its (K-1) nearest neighbors, where K is an integer greater than 1.

[0133] In some embodiments, determining the filtering coefficients based on the initial point cloud and the reconstructed point cloud may include: determining the filtering coefficients based on K target points corresponding to the midpoint of the initial point cloud and the midpoint of the reconstructed point cloud.

[0134] In one specific embodiment, determining the K target points corresponding to the points in the reconstructed point cloud may include:

[0135] Based on the first point in the reconstructed point cloud, a preset number of candidate points are searched in the reconstructed point cloud using the K-nearest neighbor search method.

[0136] Calculate the distance between the first point and a preset number of candidate points respectively. Select (K-1) distance values ​​from the preset number of distance values, and all (K-1) distance values ​​are less than the remaining distance values ​​in the preset number of distance values.

[0137] Based on the candidate points corresponding to the (K-1) distance values, determine the (K-1) nearest neighbor points, and then determine the first point and the (K-1) nearest neighbor points as the K target points corresponding to the first point.

[0138] It should be noted that the first point can be any point in the reconstructed point cloud. Taking the first point as an example, a preset number of candidate points can be searched in the reconstructed point cloud using the K-nearest neighbor search method. The distance between the first point and these candidate points is calculated, and then the (K-1) nearest neighbors closest to the first point are selected from these candidate points. The first point itself and its (K-1) nearest neighbors are determined as the final K target points. In other words, for the K target points, in addition to the first point itself, there are also the (K-1) nearest neighbors with the closest geometric distance to the first point, forming a total of K target points corresponding to the first point in the reconstructed point cloud.

[0139] It should also be noted that the filter here can be an adaptive filter, such as a neural network-based filter, a Wiener filter, etc., without any specific limitations.

[0140] In this embodiment, taking the Wiener filter as an example, the main function of the Wiener filter is to calculate the filtering coefficients and determine whether the point cloud quality is improved after Wiener filtering. In other words, the filtering coefficients described in this embodiment can be the coefficients processed by Wiener filtering, i.e., the filtering coefficients are the output coefficients of the Wiener filter.

[0141] Here, the Wiener filter is a linear filter whose optimality criterion is minimizing the mean square error. Under certain constraints, it minimizes the square of the difference between its output and a given function (usually called the desired output), which can ultimately be transformed into a problem of solving a Tobleitz equation through mathematical operations. The Wiener filter is also known as a least squares filter or a least squares filter.

[0142] Wiener filtering, which utilizes the correlation and spectral characteristics of stationary random processes to filter noisy signals, is currently one of the fundamental filtering methods. The specific algorithm for Wiener filtering is as follows:

[0143] For a noisy input signal, the output when the filter length or order is M is as follows:

[0144]

[0145] Where M is the length or order of the filter, y(n) is the output signal, and x(n) is a series of (noisy) input signals.

[0146] Equation (1) can be converted into matrix form as follows:

[0147] y(n)=H(m)×X(n)(2)

[0148] Given the desired signal d(n), we can calculate the error between the known signal and the desired signal, denoted by e(n), as follows:

[0149] e(n)=d(n)-y(n)=d(n)-H(m)×X(n), m=0, 1,...M(3)

[0150] The Wiener filter takes the minimum mean square error as its objective function, so let the objective function be expressed as follows.

[0151] Min E(e(n) 2 )=E[(d(n)-H(m)×X(n)) 2 (4)

[0152] When the filter coefficients are optimal, the reciprocal of the objective function with respect to the coefficients should be 0, that is:

[0153]

[0154] That is:

[0155] 2E[(d(n)-H(m)×X(n))]×X(n)=0(6)

[0156] E[d(n)X(n)]-H(m)E[X(n)X(n)]=0(7)

[0157] This can be further expressed as:

[0158] Rxd-H×Rxx=0(8)

[0159] Where Rxd and Rxx are the correlation matrix of the input signal and the desired signal, and the autocorrelation matrix of the input signal, respectively. Therefore, by calculating the optimal solution using the Wiener-Hough equation, the filter coefficients H can be obtained:

[0160] H = Rxx -1 ×Rxd(9)

[0161] Furthermore, Wiener filtering requires both a noisy signal and a desired signal. In this embodiment, for the point cloud encoding / decoding framework, these correspond to the reconstructed point cloud and the initial point cloud, respectively, thus determining the input to the Wiener filter. Therefore, for S402, determining the filter coefficients based on the initial and reconstructed point clouds can include: inputting the initial and reconstructed point clouds into the Wiener filter for calculation, and outputting the filter coefficients.

[0162] In this embodiment of the application, the initial point cloud and the reconstructed point cloud are input into the Wiener filter for calculation, and the output filter coefficients may include:

[0163] The first attribute parameter is determined based on the original values ​​of the attribute information of the points in the initial point cloud;

[0164] The second attribute parameter is determined based on the reconstructed values ​​of the attribute information of the K target points corresponding to the midpoint in the reconstructed point cloud;

[0165] The filtering coefficients are determined based on the first attribute parameter and the second attribute parameter.

[0166] In one specific embodiment, determining the filter coefficients based on the first attribute parameter and the second attribute parameter may include:

[0167] Based on the first attribute parameter and the second attribute parameter, determine the cross-correlation parameter;

[0168] Determine the autocorrelation parameter based on the second attribute parameter;

[0169] The filter coefficients are obtained by calculating the coefficients based on the cross-correlation and autocorrelation parameters.

[0170] It should be noted that, for the initial point cloud and the reconstructed point cloud, taking the color component of the attribute information as an example, if the color component conforms to the YUV space, then when determining the filtering coefficients based on the initial point cloud and the reconstructed point cloud, the first attribute parameter and the second attribute parameter of the color component (such as the Y component, U component, and V component) can be determined first based on the original value and the reconstructed value of the color component. Then, the filtering coefficients used for filtering can be further determined based on the first attribute parameter and the second attribute parameter.

[0171] Specifically, the first attribute parameter is determined based on the original value of the attribute information of at least one point in the initial point cloud; the second attribute parameter is determined based on the reconstructed value of the attribute information of K target points corresponding to at least one point in the reconstructed point cloud, where the K target points include the current point and (K-1) nearest neighbor points adjacent to the current point.

[0172] It should also be noted that the order of the Wiener filter is involved when determining the filter coefficients. In this embodiment, the order of the Wiener filter can be set to M. The values ​​of M and K can be the same or different; no specific limitation is made here.

[0173] It should also be noted that, for Wiener filters, the filter type can be used to indicate the filter order, and / or filter shape, and / or filter dimension. Filter shape includes rhombus, rectangle, etc., and filter dimension includes one-dimensional, two-dimensional, and even more dimensions.

[0174] Thus, in this embodiment, different filter types can correspond to Wiener filters of different orders. For example, the order can be 12, 32, or 128. Different types can also correspond to filters of different dimensions, such as one-dimensional filters, two-dimensional filters, etc., without specific limitations. That is, if it is necessary to determine a 16th-order filter, then 16 points can be used to determine a 16th-order asymmetric filter, or an 8th-order one-dimensional symmetric filter, or other numbers of filters (such as more specialized two-dimensional or three-dimensional filters, etc.), etc., without specific limitations on the filters.

[0175] In simple terms, in this embodiment, taking color components as an example, when determining the filtering coefficients based on the initial point cloud and the reconstructed point cloud, the first attribute parameter of the color component can be determined firstly based on the original values ​​of the color components of the points in the initial point cloud; simultaneously, the second attribute parameter of the color component can be determined based on the reconstructed values ​​of the color components of the K target points corresponding to the points in the reconstructed point cloud; finally, the filtering coefficient vector corresponding to the color component can be determined based on the first and second attribute parameters. Thus, for a color component, the corresponding first and second attribute parameters are calculated, and the filtering coefficient vector corresponding to that color component is determined using the first and second attribute parameters. After traversing all color components (such as Y component, U component, V component), the filtering coefficient vector of each color component can be obtained, thereby determining the filtering coefficients based on the filtering coefficient vector of each color component.

[0176] Specifically, when determining the filtering coefficients based on the initial point cloud and the reconstructed point cloud, the cross-correlation parameter corresponding to the color component can be determined first based on the first and second attribute parameters of the color component; at the same time, the autocorrelation parameter corresponding to the color component can be determined based on the second attribute parameter; then, the filtering coefficient vector corresponding to the color component can be determined based on the cross-correlation parameter and the autocorrelation parameter; finally, all color components can be traversed, and the filtering coefficient vector corresponding to all color components can be used to determine the filtering coefficients.

[0177] For example, in this embodiment of the application, taking the color components of the YUV space in a point cloud sequence as an example, assuming the filter order is K, the optimal coefficients, i.e., the filter coefficients, are calculated using K target points corresponding to each point in the reconstructed point cloud. Here, the K target points may include the point itself and its (K-1) nearest neighbors.

[0178] Assuming the point cloud sequence is n, the vector S(n) represents the original value of all points in the initial point cloud under a certain color component (such as the Y component). That is, S(n) is the first attribute parameter composed of the original values ​​of the Y components of all points in the initial point cloud. The matrix P(n,k) represents the reconstructed values ​​of K target points corresponding to all points in the reconstructed point cloud under the same color component (such as the Y component). That is, P(n,k) is the second attribute parameter composed of the reconstructed values ​​of the Y components of K target points corresponding to all points in the reconstructed point cloud.

[0179] Specifically, the Wiener filtering algorithm can be executed as follows:

[0180] The cross-correlation parameter B(k) is calculated based on the first attribute parameter S(n) and the second attribute parameter P(n,k), as shown below.

[0181] B(k)=P(n,k) T×S(n)(10)

[0182] The autocorrelation parameter A(k,k) is calculated based on the second attribute parameter P(n,k), as shown below.

[0183] A(k,k)=P(n,k) T ×P(n,k)(11)

[0184] According to the Wiener-Hough equations, the optimal coefficients H(k) for the Y component, i.e., the filter coefficient vector H(k) of the K-th order Wiener filter for the Y component, are shown below.

[0185] H(k)=A(k,k) -1 ×B(k)(12)

[0186] Next, the U and V components can be traversed using the method described above to finally determine the filter coefficient vectors under the U and V components. Then, the filter coefficients can be determined using the filter coefficient vectors under all color components.

[0187] Furthermore, the determination of the filtering coefficients is based on the YUV color space. If the initial point cloud or reconstructed point cloud does not conform to the YUV color space (e.g., the RGB color space), then a color space conversion is required to make it conform to the YUV color space. Therefore, in some embodiments, the method may further include: if the color components of the points in the initial point cloud conform to the RGB color space, then performing a color space conversion on the initial point cloud so that the color components of the points in the initial point cloud conform to the YUV color space; if the color components of the points in the reconstructed point cloud conform to the RGB color space, then performing a color space conversion on the reconstructed point cloud so that the color components of the points in the reconstructed point cloud conform to the YUV color space.

[0188] In other words, when determining the filtering coefficients using the initial point cloud and the reconstructed point cloud, we can first determine the first attribute parameter and the second attribute parameter corresponding to each color component based on the color components of the points in the initial point cloud and the reconstructed point cloud, and then determine the filtering coefficient vector corresponding to each color component. Finally, we can obtain the filtering coefficients using the filtering coefficient vectors of all color components.

[0189] S403: Use the filtering coefficients to filter the K target points corresponding to the first point in the reconstructed point cloud, and determine the filtered point cloud corresponding to the reconstructed point cloud.

[0190] It should be noted that the first point represents any point in the reconstructed point cloud. Furthermore, the K target points can include the first point and its (K-1) nearest neighbors, where K is an integer greater than 1. Specifically, the (K-1) nearest neighbors refer to the (K-1) nearest neighbors that are geometrically closest to the first point.

[0191] In this embodiment, after determining the filtering coefficients based on the initial point cloud and the reconstructed point cloud, the encoder can further utilize the filtering coefficients to determine the filtered point cloud corresponding to the reconstructed point cloud. Specifically, in some embodiments, it is first necessary to determine K target points corresponding to the first point in the reconstructed point cloud, where the first point represents any point in the reconstructed point cloud. Then, the K target points corresponding to the first point in the reconstructed point cloud are filtered using the filtering coefficients to determine the filtered point cloud corresponding to the reconstructed point cloud, which may include:

[0192] The filter coefficients are used to filter the K target points corresponding to the first point in the reconstructed point cloud to determine the filter value of the attribute information of the first point in the reconstructed point cloud.

[0193] After determining the filter value of the attribute information of at least one point in the reconstructed point cloud, the filtered point cloud is determined based on the filter value of the attribute information of at least one point.

[0194] In one specific embodiment, determining the K target points corresponding to the first point in the reconstructed point cloud may include:

[0195] Based on the first point in the reconstructed point cloud, a preset number of candidate points are searched in the reconstructed point cloud using the K-nearest neighbor search method.

[0196] Calculate the distance between the first point and a preset number of candidate points respectively. Select (K-1) distance values ​​from the preset number of distance values, and all (K-1) distance values ​​are less than the remaining distance values ​​in the preset number of distance values.

[0197] Based on the candidate points corresponding to the (K-1) distance values, determine the (K-1) nearest neighbor points, and then determine the first point and the (K-1) nearest neighbor points as the K target points corresponding to the first point.

[0198] It should be noted that, taking the first point as an example, the K-nearest neighbor search method can be used to search for a preset number of candidate points in the reconstructed point cloud, calculate the distance between the first point and these candidate points, and then select the (K-1) nearest neighbor points that are closest to the first point from these candidate points; that is, in addition to the first point itself, it also includes the (K-1) nearest neighbor points that are closest to the first point in terms of geometric distance, which together form the K target points corresponding to the first point in the reconstructed point cloud.

[0199] It should also be noted that, taking the color component in the attribute information as an example, when using the filtering coefficients to filter the K target points corresponding to the first point in the reconstructed point cloud, it can include: using the filtering coefficient vector corresponding to the color component to filter the K target points corresponding to the first point in the reconstructed point cloud, to obtain the filtered value of the color component of the first point in the reconstructed point cloud; and obtaining the filtered point cloud based on the filtered value of the color component of the points in the reconstructed point cloud.

[0200] Specifically, the filtering value of the color component of each point in the reconstructed point cloud can be determined based on the filtering coefficient vector corresponding to the color component and the second attribute parameter; then, the filtered point cloud can be obtained based on the filtering value of the color component of each point in the reconstructed point cloud.

[0201] It is understood that in the embodiments of this application, when using the Wiener filter to filter the reconstructed point cloud, both a noisy signal and a desired signal are required. In the point cloud encoding and decoding framework, the reconstructed point cloud can be used as the noisy signal, and the initial point cloud can be used as the desired signal. Therefore, the initial point cloud and the reconstructed point cloud can be input into the Wiener filter simultaneously, that is, the input of the Wiener filter is the initial point cloud and the reconstructed point cloud, and the output of the Wiener filter is the filtering coefficient. After obtaining the filtering coefficient, the reconstructed point cloud can be filtered based on the filtering coefficient to obtain the corresponding filtered point cloud.

[0202] In other words, in this embodiment, the filtering coefficients are obtained based on the original point cloud and the reconstructed point cloud; therefore, applying the filtering coefficients to the reconstructed point cloud can recover the original point cloud to the greatest extent. In other words, when filtering the reconstructed point cloud according to the filtering coefficients, for one color component, the filtering value corresponding to that color component can be determined based on the filtering coefficient vector corresponding to that color component, combined with the second attribute parameter under that color component.

[0203] For example, in this embodiment of the application, the filter coefficient vector H(k) under the Y component is applied to the reconstructed point cloud, that is, the second attribute parameter P(n,k), to obtain the filter value R(n) under the Y component, as shown below.

[0204] R(n)=P(n,k)×H(k) (13)

[0205] Next, the U and V components can be traversed using the method described above to finally determine the filter values ​​under the U and V components. Then, the filter values ​​under all color components can be used to determine the filtered point cloud corresponding to the reconstructed point cloud.

[0206] S404: Determine the filtering identification information based on the reconstructed point cloud and the filtered point cloud; wherein, the filtering identification information is used to determine whether to perform filtering processing on the reconstructed point cloud.

[0207] In this embodiment of the application, after the encoder obtains the filtered point cloud corresponding to the reconstructed point cloud using the filtering coefficients, it can further determine the filtering identification information corresponding to the initial point cloud based on the reconstructed point cloud and the filtered point cloud.

[0208] It should be noted that, in the embodiments of this application, the filtering identification information can be used to determine whether to perform filtering processing on the reconstructed point cloud; furthermore, the filtering identification information can also be used to determine which one or more color components in the reconstructed point cloud to perform filtering processing.

[0209] It should also be noted that, in the embodiments of this application, the color component may include at least one of the following: a first color component, a second color component, and a third color component; wherein, the component to be processed in the attribute information may be any one of the first color component, the second color component, and the third color component. See also Figure 5 It illustrates a flowchart of an encoding method provided in an embodiment of this application. Figure 2 .like Figure 5 As shown, the method for determining filter identifier information may include:

[0210] S501: Determine the first-generation value of the component to be processed of the attribute information of the reconstructed point cloud, and determine the second-generation value of the component to be processed of the attribute information of the filtered point cloud.

[0211] Understandably, in one possible implementation, determining the first generation value of the component to be processed of the attribute information of the reconstructed point cloud may include: calculating the value of the component to be processed of the attribute information of the reconstructed point cloud using a rate-distortion cost method, and using the obtained first rate-distortion value as the first generation value.

[0212] The determination of the second-generation value of the unprocessed component of the attribute information of the filtered point cloud may include: calculating the value of the unprocessed component of the attribute information of the filtered point cloud using a rate-distortion cost method, and using the obtained second rate-distortion value as the second-generation value.

[0213] In this implementation, the rate-distortion cost method can be used to determine the filtering identification information. First, the rate-distortion cost method is used to determine the first-generation value corresponding to the component to be processed of the attribute information of the reconstructed point cloud and the second-generation value corresponding to the component to be processed of the attribute information of the filtered point cloud. Then, the filtering identification information of the component to be processed is determined based on the comparison result of the first-generation value and the second cost value. Here, the cost value can be the distortion value used for distortion measurement, or the rate-distortion cost result, etc., and this application embodiment does not specifically limit it.

[0214] It should be noted that, in order to more accurately measure the performance improvement before and after filtering, this embodiment of the application simultaneously performs a rate-distortion trade-off between the filtered point cloud and the reconstructed point cloud. Here, the rate-distortion cost method can be used to calculate the rate-distortion value after the overall quality improvement and bitrate increase. The first rate-distortion value and the second rate-distortion value can respectively characterize the rate-distortion cost results of the reconstructed point cloud and the filtered point cloud under the same color components, and are used to represent the compression efficiency of the point cloud before and after filtering. The specific calculation formulas for the first rate-distortion value and the second rate-distortion value are as follows:

[0215] J=D+λ×R i (14)

[0216] Here, J is the rate-distortion value, D is the sum of squares (SSE) of the initial point cloud and the reconstructed or filtered point cloud, i.e., the sum of squares of the errors at corresponding points; λ is a quantity related to the quantization parameter QP, which can be selected in the embodiments of this application. R i The bitstream size of this color component is represented in bits. In the embodiments of this application, the bitstream size R of each color component can be approximately selected. i =R all / 3+R coef Among them, R all R is the size of the entire point cloud attribute bitstream. coef The bitstream size occupied by each color component coefficient (for filtered point clouds, R can be selected). coef = K×sizeof(int), this term is not considered when reconstructing the point cloud.

[0217] Thus, after obtaining the reconstructed point cloud and the filtered point cloud, the first rate distortion value of the component to be processed in the reconstructed point cloud and the second rate distortion value of the component to be processed in the filtered point cloud can be calculated according to the above method. These values ​​are used as the first generation value and the second generation value. Then, the filtering identification information of the component to be processed is determined based on the comparison results of the two values.

[0218] It can also be understood that, in another possible implementation, determining the first generation value of the unprocessed component of the attribute information of the reconstructed point cloud may include: calculating the cost of the unprocessed component of the attribute information of the reconstructed point cloud using a rate-distortion cost method to obtain a first rate-distortion value; calculating the performance value of the unprocessed component of the attribute information of the reconstructed point cloud using a preset performance measurement index to obtain a first performance value; and determining the first generation value based on the first rate-distortion value and the first performance value.

[0219] The determination of the second-generation value of the unprocessed component of the attribute information of the filtered point cloud may include: calculating the cost of the unprocessed component of the attribute information of the filtered point cloud using a rate-distortion cost method to obtain a second rate-distortion value; calculating the performance value of the unprocessed component of the attribute information of the filtered point cloud using a preset performance measurement index to obtain a second performance value; and determining the second-generation value based on the second rate-distortion value and the second performance value.

[0220] In this implementation, not only can the rate-distortion value determined by the rate-distortion cost method be considered, but also the performance value determined by a preset performance metric (e.g., PSNR value). Here, the first performance value and the second performance value can respectively characterize the encoding and decoding performance of the reconstructed point cloud and the filtered point cloud under the same color components. For example, in the embodiments of this application, the first performance value can be the PSNR value of the color components of the points in the reconstructed point cloud, and the second performance value can be the PSNR value of the color components of the points in the filtered point cloud.

[0221] It should be noted that, considering the ultimate goal of the G-PCC encoding / decoding framework is point cloud compression, a higher compression ratio indicates better overall performance. This application's embodiments not only consider the PSNR value to determine whether filtering is performed at the decoding end, but also utilize a rate-distortion cost approach to balance rate-distortion before and after filtering. That is, after obtaining the reconstructed point cloud and the filtered point cloud, the first performance value and the first rate-distortion value of the component to be processed in the reconstructed point cloud can be calculated using the above method to obtain the first-generation value; and the second performance value and the second rate-distortion value of the component to be processed in the filtered point cloud can be calculated to obtain the second-generation value. Then, the filtering identification information of the component to be processed is determined based on the comparison result of the first-generation value and the second cost value.

[0222] In this way, not only is the improvement in attribute value quality considered, but the cost required to write information such as filter coefficients into the bitstream is also calculated. By combining the performance of both, it is judged whether the compression performance after filtering has been improved, and thus decides whether the filter coefficients should be passed at the encoding end.

[0223] S502: Determine the filtering identification information of the component to be processed based on the first-generation value and the second-generation value.

[0224] In one possible implementation, determining the filter identification information of the component to be processed based on the first-generation value and the second-generation value may include:

[0225] If the value of the second generation is less than the value of the first generation, then the value of the filter identification information of the component to be processed is determined to be the first value.

[0226] If the value of the second generation is greater than the value of the first generation, then the value of the filter identification information of the component to be processed is determined to be the second value.

[0227] It should be noted that when the value of the second generation is equal to the value of the first generation, the value of the filter identifier information of the component to be processed can be determined to be the first value; or, the value of the filter identifier information of the component to be processed can be determined to be the second value.

[0228] It should also be noted that if the value of the filter identifier information of the component to be processed is the first value, then it can be determined that the filter identifier information of the component to be processed indicates that the component of the attribute information of the reconstructed point cloud is to be filtered; or, if the value of the filter identifier information of the component to be processed is the second value, then it can be determined that the filter identifier information of the component to be processed indicates that the component of the attribute information of the reconstructed point cloud is not to be filtered.

[0229] In another possible implementation, determining the filter identification information of the component to be processed based on the first-generation value and the second-generation value may include:

[0230] If the second performance value is greater than the first performance value and the second rate distortion value is less than the first rate distortion value, then the value of the filter identification information of the component to be processed is determined to be the first value.

[0231] If the second performance value is less than the first performance value, then the value of the filter identification information of the component to be processed is determined to be the second value.

[0232] In another possible implementation, determining the filter identification information of the component to be processed based on the first-generation value and the second-generation value may include:

[0233] If the second performance value is greater than the first performance value and the second rate distortion value is less than the first rate distortion value, then the value of the filter identification information of the component to be processed is determined to be the first value.

[0234] If the second rate distortion value is greater than the first rate distortion value, then the filter identification information of the component to be processed is determined to be the second value.

[0235] It should be noted that when the second performance value is equal to the first performance value or the second rate distortion value is equal to the first rate distortion value, the filter identification information of the component to be processed can be determined to be the first value; or, the filter identification information of the component to be processed can be determined to be the second value.

[0236] It should also be noted that if the value of the filter identifier information of the component to be processed is the first value, then it can be determined that the filter identifier information of the component to be processed indicates that the component of the attribute information of the reconstructed point cloud is to be filtered; or, if the value of the filter identifier information of the component to be processed is the second value, then it can be determined that the filter identifier information of the component to be processed indicates that the component of the attribute information of the reconstructed point cloud is not to be filtered.

[0237] It is also understandable that when the component to be processed is a color component, based on the first performance value, the first rate-distortion value, the second performance value, and the second rate-distortion value, it can be determined whether the performance value of one or more of these color components has increased and the rate-distortion cost has decreased compared to the reconstructed point cloud.

[0238] In one possible implementation, when the component to be processed is a first color component, for S502, determining the filter identification information of the component to be processed based on the first-generation value and the second-generation value may include:

[0239] If the second performance value is greater than the first performance value and the second rate distortion value is less than the first rate distortion value, the value of the filter identification information of the first color component is determined to be the first value.

[0240] If the second performance value is less than the first performance value, or the second rate distortion value is greater than the first rate distortion value, the filter identification information of the first color component is determined to be the second value.

[0241] In another possible implementation, when the component to be processed is a second color component, for S502, determining the filter identification information of the component to be processed based on the first-generation value and the second-generation value may include:

[0242] If the second performance value is greater than the first performance value and the second rate distortion value is less than the first rate distortion value, the value of the filter identification information of the second color component is determined to be the first value.

[0243] If the second performance value is less than the first performance value, or the second rate distortion value is greater than the first rate distortion value, the filter identification information of the second color component is determined to be the second value.

[0244] In another possible implementation, when the component to be processed is a third color component, for S502, determining the filter identification information of the component to be processed based on the first-generation value and the second-generation value may include:

[0245] If the second performance value is greater than the first performance value and the second rate distortion value is less than the first rate distortion value, the value of the filter identification information of the third color component is determined to be the first value.

[0246] If the second performance value is less than the first performance value, or the second rate distortion value is greater than the first rate distortion value, the filter identification information of the third color component is determined to be the second value.

[0247] Specifically, in this embodiment, taking the PSNR and rate-distortion cost (Cost) of the Y component as examples, when determining the filtering identification information of the Y component based on the first performance value, the first rate-distortion value, the second performance value, and the second rate-distortion value, if the PSNR1 corresponding to the reconstructed point cloud is greater than the PSNR2 corresponding to the filtered point cloud, or the Cost1 corresponding to the reconstructed point cloud is less than the Cost2 corresponding to the filtered point cloud, that is, the PSNR value of the filtered Y component decreases, or the rate-distortion cost of the filtered Y component increases, then the filtering effect can be considered poor. In this case, the filtering identification information of the Y component will be set to indicate that the Y component is not filtered. Correspondingly, if the PSNR1 corresponding to the reconstructed point cloud is less than the PSNR2 corresponding to the filtered point cloud and the Cost1 corresponding to the reconstructed point cloud is greater than the Cost2 corresponding to the filtered point cloud, that is, the PSNR of the filtered Y component is improved and the rate-distortion cost is reduced, then the filtering effect can be considered good. In this case, the filtering identification information of the Y component will be set to indicate that the Y component is filtered.

[0248] Thus, embodiments of this application can traverse the U and V components according to the above method to finally determine the filter identification information of the U component and the filter identification information of the V component, so as to use the filter identification information of all color components to determine the final filter identification information.

[0249] S503: Obtain the filter identification information based on the filter identification information of the component to be processed.

[0250] It should be noted that, in the embodiments of this application, the step of determining the filter identifier information using the filter identifier information of the component to be processed may include: when the component to be processed is a color component, determining the filter identifier information of the first color component, the filter identifier information of the second color component, and the filter identifier information of the third color component; and obtaining the filter identifier information based on the filter identifier information of the first color component, the filter identifier information of the second color component, and the filter identifier information of the third color component.

[0251] In other words, the filter identifier information can be in array form, specifically a 1×3 array, which consists of the filter identifier information for the first color component, the filter identifier information for the second color component, and the filter identifier information for the third color component. For example, the filter identifier information can be represented by [yuv], where y represents the filter identifier information for the first color component, u represents the filter identifier information for the second color component, and v represents the filter identifier information for the third color component.

[0252] Therefore, since the filter identification information includes the filter identification information for each color component, the filter identification information can not only be used to determine whether to perform filtering processing on the reconstructed point cloud, but also to determine which specific color component to perform filtering processing on.

[0253] Furthermore, in some embodiments, the method may further include:

[0254] If the filtering flag information of the first color component takes the first value, then it is determined that the first color component of the reconstructed point cloud will be filtered; if the filtering flag information of the first color component takes the second value, then it is determined that the first color component of the reconstructed point cloud will not be filtered; or...

[0255] If the filtering flag information of the second color component takes the first value, then it is determined that the second color component of the reconstructed point cloud will be filtered; if the filtering flag information of the second color component takes the second value, then it is determined that the second color component of the reconstructed point cloud will not be filtered; or...

[0256] If the filtering flag information of the third color component takes the first value, then it is determined that the third color component of the reconstructed point cloud will be filtered; if the filtering flag information of the third color component takes the second value, then it is determined that the third color component of the reconstructed point cloud will not be filtered.

[0257] In other words, in this embodiment of the application, if the filter identifier information corresponding to a certain color component is a first value, then it can be indicated that the color component is filtered; if the filter identifier information corresponding to a certain color component is a second value, then it can be indicated that the color component is not filtered.

[0258] Furthermore, in some embodiments, the method may further include:

[0259] If at least one of the filtering identifier information of the first color component, the filtering identifier information of the second color component, and the filtering identifier information of the third color component is a first value, then the filtering identifier information indicates that the reconstructed point cloud should be filtered.

[0260] If all three filtering identifiers for the first color component, the second color component, and the third color component are the second value, then it is determined that the filtering identifier indicates that no filtering processing is performed on the reconstructed point cloud.

[0261] In other words, in this embodiment of the application, if the filtering identification information corresponding to these color components are all second values, then it can be indicated that no filtering processing is performed on these color components, that is, it can be determined that the filtering identification information indicates that no filtering processing is performed on the reconstructed point cloud; correspondingly, if at least one of the filtering identification information of these color components is a first value, then it can be indicated that filtering processing is performed on at least one color component, that is, it can be determined that the filtering identification information indicates that filtering processing is performed on the reconstructed point cloud.

[0262] Furthermore, in this embodiment, the first value and the second value are different, and the first value and the second value can be in parameter form or in numerical form. Specifically, the identification information corresponding to these color components can be parameters written in the profile or a flag value; no specific limitation is made here.

[0263] For example, for the first value and the second value, the first value can be set to 1 and the second value can be set to 0; or, the first value can also be set to true and the second value can also be set to false; however, no specific limitation is made here.

[0264] S405: If the filter identification information indicates that the reconstructed point cloud should be filtered, then the filter identification information and filter coefficients are encoded, and the resulting encoded bits are written into the bit stream.

[0265] It should be noted that, in the embodiments of this application, after the encoder determines the filtering identification information based on the reconstructed point cloud and the filtered point cloud, if the filtering identification information indicates that the reconstructed point cloud should be filtered, then the filtering identification information can be written into the bit stream, and the filtering coefficients can also be selectively written into the bit stream.

[0266] For example, taking the filter identifier information as [1 0 1], since the filter identifier information of the first color component is 1, the first color component of the reconstructed point cloud needs to be filtered; the filter identifier information of the second color component is 0, the second color component of the reconstructed point cloud does not need to be filtered; the filter identifier information of the third color component is 1, the third color component of the reconstructed point cloud needs to be filtered; at this time, only the filter coefficients corresponding to the first color component and the filter coefficients corresponding to the third color component need to be written into the bitstream, and the filter coefficients corresponding to the second color component do not need to be written into the bitstream.

[0267] It should also be noted that, in the embodiments of this application, for the second type of encoding method, namely, the geometrically lossy and attribute-lossy encoding method, if the geometric distortion is too large, it can be directly determined that no filtering processing should be performed on the reconstructed point cloud. Therefore, in some embodiments, the method may further include: if the quantization parameter of the reconstructed point cloud is greater than a preset threshold value, then determining that the filtering identification information indicates that no filtering processing should be performed on the reconstructed point cloud.

[0268] In other words, when the geometric distortion is large (i.e., the quantization parameter is greater than the preset threshold), the number of points in the reconstructed point cloud is relatively small. If a filter coefficient of similar size is written, the rate distortion cost will be too high. Therefore, Wiener filtering will no longer be performed in this case.

[0269] Furthermore, in some embodiments, when the filter identification information indicates that no filtering processing is performed on the reconstructed point cloud, the method may further include: encoding only the filter identification information and writing the obtained encoded bits into the bitstream.

[0270] It should be noted that, in this embodiment, after the encoder obtains the filtered point cloud corresponding to the reconstructed point cloud using the filtering coefficients, it can further determine filtering identification information based on the reconstructed point cloud and the filtered point cloud. If the filtering identification information indicates that the reconstructed point cloud should be filtered, then the filtering identification information and the filtering coefficients can be written into the bitstream; if the filtering identification information indicates that the reconstructed point cloud should not be filtered, then it is not necessary to write the filtering coefficients into the bitstream, only the filtering identification information needs to be written into the bitstream so that it can be transmitted to the decoder through the bitstream later.

[0271] It should also be noted that, in this embodiment of the application, the method may further include: determining the predicted values ​​of the attribute information of the points in the initial point cloud; determining the residual values ​​of the attribute information of the points in the initial point cloud based on the original values ​​and predicted values ​​of the color component attribute information of the points in the initial point cloud; encoding the residual values ​​of the attribute information of the points in the initial point cloud; and writing the obtained encoded bits into the bitstream. In other words, after determining the residual values ​​of the attribute information, the encoder also needs to write the residual values ​​of the attribute information into the bitstream so that they can be subsequently transmitted to the decoder via the bitstream.

[0272] Furthermore, in this embodiment, for the order of the Wiener filter, it is assumed that the order is the same as the value of K, in which case K can be set to 16 or other values. Specifically, based on the loot_vox12_1200.ply sequence under CTC_C1 (geometrically lossless, attribute-lossy) conditions and r1-r6 bit rates, the BD-Rate gain and running time of the point cloud before and after filtering using the Lifting Transform method were tested, and the test results are as follows. Figure 6 and Figure 7 As shown. In Figure 6 In the diagram, (a) shows the change of the BD-Rate performance index corresponding to the Y component with the value of K, (b) shows the change of the BD-Rate performance index corresponding to the U component with the value of K, and (c) shows the change of the BD-Rate performance index corresponding to the V component with the value of K. It can be seen that the BD-Rate performance index changes slowly when the K value is too large (e.g., greater than 20). Figure 7 The diagram shows how the total encoding / decoding time varies with the value of K for all bit rates, demonstrating that the encoding / decoding time is almost linearly related to the value of K. According to... Figure 6 and Figure 7It can be seen that continuously increasing the K value does not improve performance; at the same time, an excessively large K value can easily lead to memory overflow when processing large point clouds, reducing universality. Therefore, in this embodiment, the K value can be set to 16, which can ensure the filtering effect while reducing time complexity to a certain extent.

[0273] In addition, in the embodiments of this application, the method for determining the value of K may further include:

[0274] The value of K is determined based on the number of points in the reconstructed point cloud; and / or,

[0275] The value of K is determined based on the quantization parameters of the reconstructed point cloud; and / or,

[0276] The value of K is determined based on the neighborhood difference value of the points in the reconstructed point cloud.

[0277] In this embodiment of the application, the neighborhood difference value can be calculated based on the component difference between the color component to be filtered at a point and the color component to be filtered at least one of the nearest neighbor points.

[0278] Furthermore, determining the value of K based on the neighborhood difference value of the midpoint of the reconstructed point cloud may further include: if the neighborhood difference value of the midpoint of the reconstructed point cloud satisfies a first preset interval, then a first type of filter is selected to filter the reconstructed point cloud; if the neighborhood difference value of the midpoint of the reconstructed point cloud satisfies a second preset interval, then a second type of filter is selected to filter the reconstructed point cloud; wherein the order of the first type of filter is different from the order of the second type of filter.

[0279] It should be noted that one possible implementation is to select different K values ​​when filtering point clouds of different sizes. Specifically, a threshold can be set based on the number of points to make a judgment, thereby achieving adaptive selection of K. When the number of points in the point cloud is small, K can be increased appropriately to focus on improving quality. When the number of points in the point cloud is large, K can be decreased appropriately. In this case, it is important to ensure that there is enough memory and that the running speed is not too slow.

[0280] It should also be noted that another possible implementation is as follows: When Wiener filtering, neighborhood differences are considered. Since the attribute values ​​at the point cloud contour or boundary vary greatly, a single filter may not be able to cover the entire point cloud, resulting in room for improvement, especially for sparse point cloud sequences. Therefore, the points can be classified according to neighborhood differences, and different filters can be applied to different categories, thereby passing multiple sets of filter coefficients. This allows for adaptive selection of filters to achieve better results.

[0281] It should also be noted that another possible implementation is as follows: in the case of geometrically lossy coding, when the geometric distortion is large (i.e., the quantization parameter is large), Wiener filtering is no longer performed; or, K is adaptively adjusted according to the magnitude of the quantization parameter to reduce the overhead of the bitstream. Furthermore, entropy coding can even be performed on the filter coefficients or filter identification information to be transmitted, thereby eliminating information redundancy and further improving coding efficiency.

[0282] In short, this application proposes an optimized technique for Wiener filtering of the YUV components of the encoded and decoded color reconstruction values ​​to better enhance point cloud quality. Specifically, the encoding method proposed in steps S401 to S405 considers not only geometrically lossless and attribute-lossy cases, but also point cloud Wiener filtering post-processing methods under both geometrically and attribute-lossy conditions when filtering the color components (such as Y, U, and V components) of the color reconstruction values ​​of the point cloud sequence. At the same time, the judgment of quality improvement, neighbor selection, and the size of K are optimized, thereby enabling selective quality enhancement of the reconstructed point cloud output from the decoding end with a small increase in the bit size of the bit stream and improved overall compression performance.

[0283] It should be noted that the encoding method proposed in this application is applicable to any point cloud sequence, especially for sequences with dense point distribution and medium bit rate sequences, where it exhibits significant optimization effects. Furthermore, the encoding method proposed in this application can operate on all three attribute transformation (Predicting transform, Lifing transform, RAHT) encoding methods, demonstrating universality. For a very small number of sequences with poor filtering effects, this method will not affect the reconstruction process at the decoding end; aside from a slight increase in encoding end runtime, the impact of filtering identification information on the attribute bitstream size is negligible.

[0284] It should be noted that the Wiener filter proposed in this embodiment can be used within the prediction loop, i.e., as an inloop filter, and can be used as a reference for decoding subsequent point clouds; or it can be used outside the prediction loop, i.e. as a postloop filter, and not used as a reference for decoding subsequent point clouds. No specific limitations are imposed here.

[0285] It should be noted that, in the embodiments of this application, if the Wiener filter proposed in this application is an in-loop filter, then after determining that filtering processing is to be performed, the parameter information indicating that filtering processing is to be performed, such as the filter identification information, needs to be written into the bitstream, and the filter coefficients also need to be written into the bitstream. Correspondingly, after determining that filtering processing is not to be performed, it is possible not to write the parameter information indicating that filtering processing is to be performed, such as the filter identification information, into the bitstream, nor the filter coefficients. Conversely, if the Wiener filter proposed in the embodiments of this application is a post-processing filter, in one case, the filter coefficients corresponding to the filter are located in a separate auxiliary information data unit (e.g., supplementary enhancement information SEI), then it is possible not to write the parameter information indicating that filtering processing is to be performed, such as the filter identification information, into the bitstream, nor the filter coefficients, into the bitstream. Accordingly, the decoder does not perform filtering processing on the reconstructed point cloud if it does not obtain the supplementary enhancement information. In another scenario, the filter coefficients corresponding to the filter are in an auxiliary information data unit along with other information. In this case, after determining to perform filtering, it is necessary to write the parameter information indicating the filtering process, such as the filter identification information, into the bitstream, and also to write the filter coefficients into the bitstream. Correspondingly, after determining not to perform filtering, it is possible to choose not to write the parameter information indicating the filtering process, such as the filter identification information, into the bitstream, and also not to write the filter coefficients into the bitstream.

[0286] Furthermore, for the encoding method proposed in the embodiments of this application, one or more parts of the reconstructed point cloud can be filtered. That is, the control range of the filtering identification information can be the entire reconstructed point cloud or a certain part of the reconstructed point cloud, and no specific limitation is made here.

[0287] This embodiment provides an encoding method applied to an encoder. It involves determining an initial point cloud and a corresponding reconstructed point cloud; determining filtering coefficients based on the initial and reconstructed point clouds; using the filtering coefficients to filter K target points corresponding to the first point in the reconstructed point cloud to determine the filtered point cloud; wherein the K target points include the first point and (K-1) nearest neighbors adjacent to the first point, where K is an integer greater than 1, and the first point represents any point in the reconstructed point cloud; determining filtering identification information based on the reconstructed and filtered point clouds; wherein the filtering identification information is used to determine whether to perform filtering on the reconstructed point cloud; if the filtering identification information indicates that filtering should be performed on the reconstructed point cloud, then the filtering identification information and filtering coefficients are encoded, and the obtained encoded bits are written into the bitstream. In this way, when the encoder uses nearest neighbor points for filtering, it also considers the current point itself, so that the filtered value also depends on the attribute value of the current point. Moreover, when determining whether to filter the reconstructed point cloud, it considers not only the PSNR performance index, but also the rate-distortion cost. In addition, it proposes a method for determining the correspondence between the reconstructed point cloud and the initial point cloud in the case of geometric loss and attribute loss, which not only improves the applicability, but also optimizes the reconstructed point cloud, further improves the quality of the point cloud, and can also save bitrate and improve encoding and decoding efficiency.

[0288] In another embodiment of this application, a bitstream is also provided, which is generated by bit encoding based on information to be encoded; wherein the information to be encoded includes at least one of the following: residual values ​​of attribute information of points in the initial point cloud, filter identification information, and filter coefficients.

[0289] In this way, after the encoder transmits the residual values ​​of the attribute information of the points in the initial point cloud, the filter identification information, and the filter coefficients to the decoder, the decoder obtains the residual values ​​of the attribute information of the points in the initial point cloud through decoding, and then constructs the reconstructed point cloud. Moreover, the decoder can also determine whether the reconstructed point cloud needs to be filtered by obtaining the filter identification information through decoding. Then, when the reconstructed point cloud needs to be filtered, the filter coefficients are directly obtained through decoding. The reconstructed point cloud is then filtered according to the filter coefficients, thereby optimizing the reconstructed point cloud and improving the quality of the point cloud.

[0290] In another embodiment of this application, see [link to application]. Figure 8 It illustrates a flowchart of a decoding method provided in an embodiment of this application. Figure 1 .like Figure 8 As shown, the method may include:

[0291] S801: Decode the bitstream and determine the filtering identifier information; the filtering identifier information is used to determine whether to perform filtering processing on the reconstructed point cloud corresponding to the initial point cloud.

[0292] It should be noted that the decoding method described in this application embodiment specifically refers to a point cloud decoding method, which can be applied to a point cloud decoder (in this application embodiment, it can be simply referred to as a "decoder").

[0293] It should also be noted that, in this embodiment, the decoder can first decode the bitstream to determine the filtering identification information. This filtering identification information can be used to determine whether to perform filtering on the reconstructed point cloud corresponding to the initial point cloud. Specifically, the filtering identification information can also be used to determine which one or more color components in the reconstructed point cloud should be filtered.

[0294] It should also be noted that, in the embodiments of this application, for a point in the initial point cloud, when decoding the point, it can be used as a point to be decoded in the initial point cloud, and there are multiple decoded points around the point.

[0295] Furthermore, in the embodiments of this application, for a point in the initial point cloud, there is a corresponding geometric information and an attribute information; wherein, the geometric information represents the spatial position of the point, and the attribute information represents the attribute value of the point (such as the color component value).

[0296] Here, the attribute information may include color components, specifically color information in any color space. For example, the attribute information may be color information in RGB space, YUV space, YCbCr space, etc., and this application embodiment does not make specific limitations.

[0297] Furthermore, in this embodiment, the color components may include a first color component, a second color component, and a third color component. Thus, if the color components conform to the RGB color space, the first, second, and third color components can be determined as R component, G component, and B component, respectively; if the color components conform to the YUV color space, the first, second, and third color components can be determined as Y component, U component, and V component, respectively; if the color components conform to the YCbCr color space, the first, second, and third color components can be determined as Y component, Cb component, and Cr component, respectively.

[0298] It is understood that, in the embodiments of this application, for a point in the initial point cloud, the attribute information of the point can be a color component, reflectivity or other attributes, and the embodiments of this application do not make specific limitations.

[0299] It should be noted that, in the embodiments of this application, the decoder can determine the residual values ​​of the attribute information of points in the initial point cloud by decoding the bitstream, so as to construct the reconstructed point cloud. Therefore, in some embodiments, the method may further include:

[0300] Decode the bitstream to determine the residual values ​​of the attribute information of points in the initial point cloud;

[0301] After determining the predicted values ​​of the attribute information of the points in the initial point cloud, the reconstructed values ​​of the attribute information of the points in the initial point cloud are determined based on the predicted values ​​and residual values ​​of the attribute information of the points in the initial point cloud.

[0302] The reconstructed point cloud is built based on the reconstructed values ​​of the attribute information of the points in the initial point cloud.

[0303] In other words, for a point in the initial point cloud, the predicted and residual values ​​of its attribute information can be determined first. Then, these predicted and residual values ​​can be used to further calculate the reconstructed attribute information of that point, thus constructing the reconstructed point cloud. Specifically, when determining the predicted attribute information of a point in the initial point cloud, the geometric and attribute information of multiple target neighbor points can be used. By combining the geometric information of the point itself with the predicted attribute information, the corresponding predicted value can be obtained, and thus the corresponding reconstructed value can be determined. In this way, after determining the reconstructed attribute information of a point in the initial point cloud, that point can serve as the nearest neighbor of points in subsequent LODs (Level of Detail). The reconstructed attribute information of this point can then be used to continue predicting the attributes of subsequent points, thereby constructing the reconstructed point cloud.

[0304] It should also be noted that, in the embodiments of this application, the initial point cloud can be directly obtained through the point cloud reading function of the encoder / decoder program, while the reconstructed point cloud is obtained after attribute encoding, attribute reconstruction, and geometric compensation. Furthermore, the reconstructed point cloud in the embodiments of this application can be the reconstructed point cloud output after decoding, or it can be used as a reference for decoding subsequent point clouds. In addition, the reconstructed point cloud here can be used not only within the prediction loop (i.e., as an inloop filter) as a reference for decoding subsequent point clouds, but also outside the prediction loop (i.e., as a post-filter) and not used as a reference for decoding subsequent point clouds; the embodiments of this application do not specifically limit this.

[0305] Additionally, in this embodiment, the filtering identification information may include filtering identification information of the component to be processed of the attribute information. Specifically, in some embodiments, for S801, the decoding of the bitstream and determination of the filtering identification information may include: decoding the bitstream and determining the filtering identification information of the component to be processed; wherein, the filtering identification information of the component to be processed is used to indicate whether to perform filtering processing on the component to be processed of the attribute information of the reconstructed point cloud.

[0306] Furthermore, for the decoded bitstream, determining the filtering identifier information may specifically include, in some embodiments, the following: if the value of the filtering identifier information of the component to be processed is a first value, then it is determined that the component to be processed of the attribute information of the reconstructed point cloud will be filtered; if the value of the filtering identifier information of the component to be processed is a second value, then it is determined that the component to be processed of the attribute information of the reconstructed point cloud will not be filtered.

[0307] It should also be noted that when the component to be processed is a color component, the filtering identifier information corresponding to each color component can be used to indicate whether to perform filtering processing on that color component. Therefore, in some embodiments, the decoding of the bitstream to determine the filtering identifier information of the component to be processed may include: decoding the bitstream to determine the filtering identifier information of the first color component, the filtering identifier information of the second color component, and the filtering identifier information of the third color component;

[0308] The filtering identifier information of the first color component is used to indicate whether to filter the first color component of the attribute information of the reconstructed point cloud; the filtering identifier information of the second color component is used to indicate whether to filter the second color component of the attribute information of the reconstructed point cloud; and the filtering identifier information of the third color component is used to indicate whether to filter the third color component of the attribute information of the reconstructed point cloud.

[0309] In other words, the filter identifier information can be in array form, specifically a 1×3 array, which consists of the filter identifier information for the first color component, the filter identifier information for the second color component, and the filter identifier information for the third color component. For example, the filter identifier information can be represented by [yuv], where y represents the filter identifier information for the first color component, u represents the filter identifier information for the second color component, and v represents the filter identifier information for the third color component.

[0310] Therefore, since the filter identification information includes the filter identification information corresponding to each color component, the filter identification information can not only be used to determine whether to perform filtering processing on the reconstructed point cloud, but also to determine which one or several color components should be filtered.

[0311] Furthermore, for decoding the bitstream, determining the filter identification information, in some embodiments, may specifically include:

[0312] If the filtering identifier information of the first color component takes the first value, then it is determined that the first color component of the attribute information of the reconstructed point cloud will be filtered; if the filtering identifier information of the first color component takes the second value, then it is determined that the first color component of the attribute information of the reconstructed point cloud will not be filtered; or...

[0313] If the filtering flag information of the second color component takes the first value, then it is determined that the second color component of the attribute information of the reconstructed point cloud will be filtered; if the filtering flag information of the second color component takes the second value, then it is determined that the second color component of the attribute information of the reconstructed point cloud will not be filtered; or...

[0314] If the filtering identifier of the third color component is the first value, then it is determined that the third color component of the attribute information of the reconstructed point cloud will be filtered; if the filtering identifier of the third color component is the second value, then it is determined that the third color component of the attribute information of the reconstructed point cloud will not be filtered.

[0315] In other words, in this embodiment of the application, if the filter identifier information corresponding to a certain color component is a first value, then it can be indicated that the color component is filtered; if the filter identifier information corresponding to a certain color component is a second value, then it can be indicated that the color component is not filtered.

[0316] Furthermore, in some embodiments, the method may further include:

[0317] If at least one of the filtering identifier information of the first color component, the filtering identifier information of the second color component, and the filtering identifier information of the third color component is a first value, then the filtering identifier information indicates that the reconstructed point cloud should be filtered.

[0318] If all three filtering identifiers for the first color component, the second color component, and the third color component are the second value, then it is determined that the filtering identifier indicates that no filtering processing is performed on the reconstructed point cloud.

[0319] In other words, in this embodiment of the application, if the filtering identification information corresponding to these color components are all second values, then it can be indicated that no filtering processing is performed on these color components, that is, it can be determined that the filtering identification information indicates that no filtering processing is performed on the reconstructed point cloud; correspondingly, if at least one of the filtering identification information of these color components is a first value, then it can be indicated that filtering processing is performed on at least one color component, that is, it can be determined that the filtering identification information indicates that filtering processing is performed on the reconstructed point cloud.

[0320] Furthermore, in this embodiment, the first value and the second value are different, and the first value and the second value can be in parameter form or in numerical form. Specifically, the identification information corresponding to these color components can be parameters written in the profile or a flag value; no specific limitation is made here.

[0321] For example, for the first value and the second value, the first value can be set to 1 and the second value can be set to 0; or, the first value can also be set to true and the second value can also be set to false; however, no specific limitation is made here.

[0322] S802: If the filtering identifier information indicates that the reconstructed point cloud should be filtered, then decode the bitstream and determine the filtering coefficients.

[0323] It should be noted that, in the embodiments of this application, after the decoder decodes the bitstream and determines the filter identification information, if the filter identification information indicates that the reconstructed point cloud should be filtered, then the filter coefficients used for filtering can be further determined.

[0324] It should also be noted that the filter can be an adaptive filter, such as a neural network-based filter, a Wiener filter, etc., without specific limitations. Taking the Wiener filter as an example, the filter coefficients described in the embodiments of this application can be used for Wiener filtering, that is, the filter coefficients are the coefficients processed by Wiener filtering.

[0325] Here, the Wiener filter is a linear filter whose optimality criterion is minimizing the mean square error. Under certain constraints, it minimizes the square of the difference between its output and a given function (usually called the desired output), which can ultimately be transformed into a problem of solving a Tobleitz equation through mathematical operations. The Wiener filter is also known as a least squares filter or a least squares filter.

[0326] It is understood that, in the embodiments of this application, the filter coefficients may refer to the filter coefficients corresponding to the component to be processed. Accordingly, in some embodiments, the step of decoding the bitstream and determining the filter coefficients if the filter identification information indicates that the reconstructed point cloud is to be filtered may include: if the value of the filter identification information of the component to be processed is a first value, then decoding the bitstream and determining the filter coefficients corresponding to the component to be processed.

[0327] It should be noted that when the component to be processed is a color component, the color component here includes a first color component, a second color component, and a third color component; accordingly, the filtering coefficients can be a vector of filtering coefficients corresponding to the first color component, the second color component, and the third color component. Specifically, in some embodiments, if the filtering identification information indicates that the reconstructed point cloud is to be filtered, then decoding the bitstream and determining the filtering coefficients may include:

[0328] If the filter identifier information of the first color component takes the first value, then the bitstream is decoded to determine the filter coefficients corresponding to the first color component; or...

[0329] If the filter identifier information of the second color component takes the first value, then the bitstream is decoded to determine the filter coefficients corresponding to the second color component; or,

[0330] If the filter identifier information of the third color component takes the first value, then the bitstream is decoded to determine the filter coefficient corresponding to the third color component.

[0331] Furthermore, in some embodiments, the method may further include the step of determining the filtering coefficients if the filtering identification information indicates that the reconstructed point cloud is not filtered.

[0332] In other words, in this embodiment of the application, when the filter identification information indicates that the reconstructed point cloud should be filtered, the decoder can decode the bitstream and directly obtain the filter coefficients. However, after decoding the bitstream and determining the filter identification information, if the filter identification information indicates that a certain color component of the reconstructed point cloud should not be filtered, then the decoder does not need to decode and obtain the filter coefficient vector corresponding to that color component.

[0333] S803: Use the filtering coefficients to filter the K target points corresponding to the first point in the reconstructed point cloud, and determine the filtered point cloud corresponding to the reconstructed point cloud.

[0334] It should be noted that the K target points include the first point and its (K-1) nearest neighbors, where K is an integer greater than 1. The first point represents any point in the reconstructed point cloud. Specifically, the (K-1) nearest neighbors refer to the (K-1) nearest neighbors that are geometrically closest to the first point.

[0335] It should also be noted that, in the embodiments of this application, if the filter identification information indicates that the reconstructed point cloud is to be filtered, then after determining the filter coefficients corresponding to the initial point cloud, the filter coefficients can be further used to filter the reconstructed point cloud, thereby obtaining the filtered point cloud corresponding to the reconstructed point cloud.

[0336] It should also be noted that, in this embodiment, the attribute information uses color components as an example. Each color component of the reconstructed point cloud can be filtered individually. For instance, for color information in the YUV space, the filtering coefficients corresponding to the Y component, U component, and V component can be determined separately. These filtering coefficients together constitute the filtering coefficients of the reconstructed point cloud. Furthermore, since the filtering coefficients can be determined by a K-order filter, the decoder can perform a KNN search for each point in the reconstructed point cloud to determine the K target points corresponding to that point, and then use the filtering coefficients of that point for filtering.

[0337] In some embodiments, see Figure 9It illustrates a flowchart of a decoding method provided in an embodiment of this application. Figure 2 .like Figure 9 As shown, for S803, this step may include:

[0338] S901: Use filtering coefficients to filter the K target points corresponding to the first point in the reconstructed point cloud, and determine the filtered value of the attribute information of the first point in the reconstructed point cloud.

[0339] S902: After determining the filter value of the attribute information of at least one point in the reconstructed point cloud, the filtered point cloud is determined based on the filter value of the attribute information of at least one point.

[0340] It should be noted that, in the embodiments of this application, after determining the filtering coefficients, the decoder can further utilize the filtering coefficients to determine the filtered point cloud corresponding to the reconstructed point cloud. Specifically, in some embodiments, it is first necessary to determine K target points corresponding to the first point in the reconstructed point cloud, where the first point represents any point in the reconstructed point cloud. Then, the filtering coefficients are used to filter the K target points corresponding to the first point in the reconstructed point cloud to determine the filtered point cloud corresponding to the reconstructed point cloud.

[0341] In one specific embodiment, determining the K target points corresponding to the first point in the reconstructed point cloud may include:

[0342] Based on the first point in the reconstructed point cloud, a preset number of candidate points are searched in the reconstructed point cloud using the K-nearest neighbor search method.

[0343] Calculate the distance between the first point and a preset number of candidate points respectively. Select (K-1) distance values ​​from the preset number of distance values, and all (K-1) distance values ​​are less than the remaining distance values ​​in the preset number of distance values.

[0344] Based on the candidate points corresponding to the (K-1) distance values, determine the (K-1) nearest neighbor points, and then determine the first point and the (K-1) nearest neighbor points as the K target points corresponding to the first point.

[0345] It should be noted that, taking the first point as an example, the K-nearest neighbor search method can be used to search for a preset number of candidate points in the reconstructed point cloud, calculate the distance between the first point and these candidate points, and then select the (K-1) nearest neighbor points that are closest to the first point from these candidate points; that is, in addition to the first point itself, it also includes the (K-1) nearest neighbor points that are closest to the first point in terms of geometric distance, which together form the K target points corresponding to the first point in the reconstructed point cloud.

[0346] It should also be noted that, taking the color component in the attribute information as an example, when using filtering coefficients to filter the K target points corresponding to the first point in the reconstructed point cloud, the process can include: using the filtering coefficient vector corresponding to the color component to filter the K target points corresponding to the first point in the reconstructed point cloud, obtaining the filtered value of the color component of the first point in the reconstructed point cloud; and obtaining the filtered point cloud based on the filtered values ​​of the color components of the points in the reconstructed point cloud. Specifically, the filtered value of the color component of each point in the reconstructed point cloud can be determined based on the filtering coefficient vector corresponding to the color component and the second attribute parameter; and then, based on the filtered value of the color component of each point in the reconstructed point cloud, the filtered point cloud can be obtained.

[0347] In simple terms, in the embodiments of this application, when filtering the reconstructed point cloud using filtering coefficients, the second attribute parameter corresponding to the attribute information can be determined first based on the order of the Wiener filter and the reconstructed values ​​of the attribute information of the K target points corresponding to the points in the reconstructed point cloud; then the filtered value of the attribute information can be determined based on the filtering coefficients and the second attribute parameter; finally, the filtered point cloud can be obtained based on the filtered value of the attribute information.

[0348] It should be noted that, in the embodiments of this application, if the attribute information is the color component of the YUV space, then the second attribute parameter (represented by P(n,k)) can be determined first based on the reconstructed value of the color component (such as the Y component, U component, V component) and combined with the order of the Wiener filter. That is, the second attribute parameter represents the reconstructed value of the color component of the K target points corresponding to the point in the reconstructed point cloud.

[0349] It should also be noted that, for Wiener filters, the filter type can be used to indicate the filter order, and / or filter shape, and / or filter dimension. Filter shape includes rhombus, rectangle, etc., and filter dimension includes one-dimensional, two-dimensional, and even more dimensions.

[0350] In other words, in the embodiments of this application, different filter types can correspond to Wiener filters of different orders. For example, the order can be 12, 32, or 128. Different types can also correspond to filters of different dimensions, such as one-dimensional filters, two-dimensional filters, etc., without specific limitations. That is, if it is necessary to determine a 16th-order filter, then 16 points can be used to determine a 16th-order asymmetric filter, or an 8th-order one-dimensional symmetric filter, or other numbers of filters (such as more specialized two-dimensional or three-dimensional filters, etc.), etc., without specific limitations on the filters.

[0351] It should be noted that, in this embodiment, to calculate the filter value for a specific color component, the filter value can be determined using the second attribute parameter of that color component and the corresponding filter coefficient vector. After traversing all color components and obtaining the filter value for each color component, the filtered point cloud can be obtained.

[0352] It is also understood that, in the embodiments of this application, when using the Wiener filter to filter the reconstructed point cloud, the reconstructed point cloud and the filtering coefficients can be input into the Wiener filter at the same time. That is, the input of the Wiener filter is the filtering coefficients and the reconstructed point cloud. Finally, the filtering of the reconstructed point cloud can be completed based on the filtering coefficients to obtain the corresponding filtered point cloud.

[0353] In other words, in this embodiment, the filtering coefficients are obtained based on the original point cloud and the reconstructed point cloud. Therefore, applying the filtering coefficients to the reconstructed point cloud can maximize the recovery of the original point cloud. For example, in this embodiment, taking the color components of the YUV space in the point cloud sequence as an example, assuming the filter order is K and the point cloud sequence is n, the matrix P(n,k) represents the reconstructed values ​​of the K target points corresponding to all points in the reconstructed point cloud under the same color component (such as the Y component). That is, P(n,k) is a second attribute parameter composed of the reconstructed values ​​of the Y components of the K target points corresponding to all points in the reconstructed point cloud.

[0354] Thus, based on the above equation (13), by applying the filter coefficient vector H(k) of the Y component to the reconstructed point cloud, that is, the second attribute parameter P(n,k), the filter value R(n) of the attribute information of the Y component can be obtained.

[0355] Next, the U and V components can be traversed using the method described above to finally determine the filter values ​​under the U and V components. Then, the filter values ​​under all color components can be used to determine the filtered point cloud corresponding to the reconstructed point cloud.

[0356] In addition, in the embodiments of this application, after the decoder determines the filtered point cloud corresponding to the reconstructed point cloud, it can use the filtered point cloud to cover the reconstructed point cloud.

[0357] It should be noted that, in the embodiments of this application, the quality of the filtered point cloud obtained after filtering is significantly enhanced compared to the reconstructed point cloud; therefore, after obtaining the filtered point cloud, the filtered point cloud can be used to cover the original reconstructed point cloud, thereby realizing the entire encoding / decoding and quality enhancement operation.

[0358] It should also be noted that since point clouds are usually represented using the RGB color space, and YUV components are difficult to visualize using existing applications; therefore, after determining the filtered point cloud corresponding to the reconstructed point cloud, the method may further include: if the color components of the points in the filtered point cloud do not conform to the RGB color space (e.g., YUV color space, YCbCr color space, etc.), then the filtered point cloud is color space converted so that the color components of the points in the filtered point cloud conform to the RGB color space.

[0359] Thus, when the color components of the points in the filtered point cloud conform to the YUV color space, the color components of the points in the filtered point cloud must first be converted from conforming to the YUV color space to conforming to the RGB color space, and then the original reconstructed point cloud is updated using the filtered point cloud.

[0360] It is understood that in the embodiments of this application, if the filtering identification information indicates that the reconstructed point cloud is not filtered, the decoder can skip the filtering process and apply the reconstructed point cloud obtained by the original program, that is, no longer update the reconstructed point cloud.

[0361] Furthermore, in this embodiment of the application, the order of the Wiener filter is determined. In this embodiment of the application, the order can be set to 16, which can both ensure the filtering effect and reduce the time complexity to a certain extent.

[0362] Furthermore, if the Wiener filtering at the encoder considers neighborhood differences, a single filter may not be able to cover the entire point cloud due to the large variations in attribute values ​​at the point cloud contours or boundaries, resulting in room for improvement, especially for sparse point cloud sequences. Therefore, it is possible to classify based on neighborhood differences and apply different filters to different categories, such as setting multiple Wiener filters of different orders. In this case, the encoder transmits multiple sets of filter coefficients to the decoder. Correspondingly, the decoder will decode and obtain multiple sets of filter coefficients to filter the reconstructed point cloud, so as to achieve adaptive filter selection for better results.

[0363] In short, this application proposes an optimized technique for Wiener filtering of the YUV components of the encoded and decoded color reconstruction values ​​to better enhance point cloud quality. Specifically, the decoding method proposed in steps S801 to S803 considers not only geometrically lossless and attribute-lossy cases, but also point cloud Wiener filtering post-processing methods under both geometrically and attribute-lossy conditions when filtering the color components (such as Y, U, and V components) of the color reconstruction values ​​of the point cloud sequence. At the same time, the judgment of quality improvement, neighbor selection, and the size of K are optimized, so that the quality enhancement operation of the reconstructed point cloud output by the decoding end can be selectively performed, with a small increase in the number of bits of the bit stream and an overall improvement in compression performance.

[0364] It should be noted that the decoding method proposed in this application is applicable to any point cloud sequence, especially for sequences with dense point distribution and medium bitrate sequences, where it exhibits significant optimization effects. Furthermore, the decoding method proposed in this application can operate on all three attribute transform (Predicting transform, Lifing transform, RAHT) decoding methods, demonstrating universality. For a very small number of sequences with poor filtering effects, this method will not affect the reconstruction process at the decoding end; aside from a slight increase in encoding end runtime, the impact of filtering identification information on the attribute bitstream size is negligible.

[0365] It should be noted that the Wiener filter proposed in this application embodiment can be used within the prediction loop, i.e., as an inloop filter, and can be used as a reference for decoding subsequent point clouds; or it can be used outside the prediction loop, i.e. as a postloop filter, and not used as a reference for decoding subsequent point clouds. This application does not specifically limit this.

[0366] It should be noted that, in the embodiments of this application, if the Wiener filter proposed in this application is an in-loop filter, then after determining that filtering processing is to be performed, the parameter information indicating that filtering processing is to be performed, such as the filter identification information, needs to be written into the bitstream, and the filter coefficients also need to be written into the bitstream. Correspondingly, after determining that filtering processing is not to be performed, it is possible not to write the parameter information indicating that filtering processing is to be performed, such as the filter identification information, into the bitstream, nor the filter coefficients. Conversely, if the Wiener filter proposed in the embodiments of this application is a post-processing filter, in one case, the filter coefficients corresponding to the filter are located in a separate auxiliary information data unit (e.g., supplementary enhancement information SEI), then it is possible not to write the parameter information indicating that filtering processing is to be performed, such as the filter identification information, into the bitstream, nor the filter coefficients, into the bitstream. Accordingly, the decoder does not perform filtering processing on the reconstructed point cloud if it does not obtain the supplementary enhancement information. In another scenario, the filter coefficients corresponding to the filter are in an auxiliary information data unit along with other information. In this case, after determining to perform filtering, it is necessary to write the parameter information indicating the filtering process, such as the filter identification information, into the bitstream, and also to write the filter coefficients into the bitstream. Correspondingly, after determining not to perform filtering, it is possible to choose not to write the parameter information indicating the filtering process, such as the filter identification information, into the bitstream, and also not to write the filter coefficients into the bitstream.

[0367] Furthermore, for the decoding method proposed in the embodiments of this application, one or more parts of the reconstructed point cloud can be filtered. That is, the control range of the filtering identification information can be the entire reconstructed point cloud or a certain part of the reconstructed point cloud, and no specific limitation is made here.

[0368] This embodiment provides a decoding method applied to a decoder. By decoding the bitstream, filtering identification information is determined; this information is used to determine whether to perform filtering on the reconstructed point cloud corresponding to the initial point cloud. If the filtering identification information indicates that the reconstructed point cloud should be filtered, the bitstream is decoded to determine the filtering coefficients. These coefficients are then used to filter K target points corresponding to the first point in the reconstructed point cloud, determining the filtered point cloud. The K target points include the first point and (K-1) nearest neighbors of the first point, where K is an integer greater than 1, and the first point represents any point in the reconstructed point cloud. In this way, the decoder can directly decode to obtain the filtering coefficients and then use them to filter the reconstructed point cloud, thereby optimizing the reconstructed point cloud and improving its quality. Furthermore, since the encoder considers the current point itself when using nearest neighbor points for filtering, the filtered value also depends on the attribute value of the current point. Moreover, when determining whether to filter the reconstructed point cloud, not only the PSNR performance index is considered, but also the rate-distortion cost is weighed. In addition, the encoder proposes a method to determine the correspondence between the reconstructed point cloud and the initial point cloud in the case of geometric loss and attribute loss, which not only improves the applicability and quality of the point cloud, but also saves bit rate and improves encoding and decoding efficiency.

[0369] Understandably, while a Wiener filtering-based quality enhancement technique exists, this approach still suffers from several problems: First, because the current point itself is not considered during the neighborhood search, the optimal value of that point under the minimum mean square error criterion is independent of its current value and determined solely by its nearest neighbors. This is clearly unreasonable and leaves significant room for improvement in the point cloud quality after processing. Second, the method for judging quality improvement is too simplistic; relying solely on PSNR is a one-sided approach. Integrating the judgment array and the optimal system... Writing data to the bitstream increases the total bitstream size; therefore, the compression ratio and overall performance improvement need to be considered in conjunction with the quality improvement and bitstream size. Furthermore, the relatively high order of the selected filter (K=32) leads to a longer KNN search time, and the increase in PSNR is not necessarily proportional to the size of K. This results in high computational complexity for the entire algorithm, making it difficult to leverage the inherently fast processing speed of G-PCC. Moreover, this technical solution only addresses geometrically lossless but attribute-lossy encoding methods, failing to provide an effective processing method for geometrically and attribute-lossy encoding methods. This results in poor universality of the technical solution, severely limiting the application scope of Wiener filtering post-processing.

[0370] Based on the encoding and decoding methods provided in the above embodiments, in another embodiment of this application, an optimized technique for Wiener filtering of the YUV components of the encoded and decoded color reconstruction values ​​to better enhance the point cloud quality is proposed. It mainly proposes a point cloud Wiener filtering post-processing method for geometrically lossy and attribute-lossy encoding cases, and also optimizes the judgment of quality improvement, neighbor selection, and the size of K.

[0371] Taking the Wiener filter for filtering as an example, Figure 10 This is a schematic diagram illustrating the overall encoding and decoding process provided in an embodiment of this application. Figure 10 As shown, at the encoding end, after encoding and reconstruction, the initial point cloud yields a reconstructed point cloud. Both the initial and reconstructed point clouds serve as inputs to a Wiener filter, whose output consists of filter coefficients. These coefficients are used to determine whether filtering is necessary on the reconstructed point cloud based on the desired effect. Only when filtering is required are the corresponding filter coefficients written into the bitstream. Additionally, the attribute residuals from the encoded initial point cloud are also written into the bitstream. At the decoding end, the decoder obtains the attribute residuals by decoding the bitstream, and then performs decoding and reconstruction to obtain the reconstructed point cloud. Furthermore, if filter coefficients are present in the bitstream, they must be decoded to obtain the corresponding coefficients. These coefficients and the reconstructed point cloud are then input into the Wiener filter, ultimately outputting the filtered point cloud (i.e., the output point cloud), which also exhibits enhanced quality.

[0372] In one specific embodiment, Figure 11 This is a schematic diagram illustrating a filtering process at the encoding end, provided as an embodiment of this application. Figure 11 As shown, the initial point cloud and the reconstructed point cloud serve as inputs to the Wiener filter. The points in the initial and reconstructed point clouds are aligned in terms of positional information, and their attribute information is transformed (e.g., color components in the attribute information are converted from RGB to YUV space). The filter coefficients can then be calculated using the color components of the points in both the initial and reconstructed point clouds. Specifically, the autocorrelation parameter and the cross-correlation parameter can be calculated based on the color components of the points in both the initial and reconstructed point clouds. Finally, the optimal filter coefficients, i.e., the corresponding filter coefficients, can be determined using these parameters.

[0373] Specifically, on the encoding side, the specific operations are as follows:

[0374] First, the inputs to the Wiener filter need to be obtained: the initial point cloud and the reconstructed point cloud. The initial point cloud can be directly obtained using the point cloud reading function of the encoder / decoder program, while the reconstructed point cloud is obtained after attribute encoding, attribute reconstruction, and geometric compensation. After obtaining the reconstructed point cloud in G-PCC, the Wiener filtering process can begin.

[0375] It should be noted that in geometrically lossless but attribute-lossy encoding methods, the number and coordinates of the reconstructed point cloud points remain unchanged, making matching with corresponding points in the initial point cloud relatively easy; a KNN search with k=1 is sufficient to obtain the point correspondences. However, in geometrically lossy and attribute-lossy encoding methods, the number and coordinates of the points in the reconstructed point cloud, as well as the overall bounding box of the point cloud, change significantly depending on the set bitrate. Therefore, this paper presents a more accurate method for finding point-to-point correspondences. This method first preprocesses the geometric coordinates of the reconstructed point cloud. After geometric compensation, the scaling factor (scale) in the configuration parameters is used to divide the geometric coordinates of each point by the scaling factor according to the reconstruction process. This process restores the reconstructed point cloud to a size comparable to the original point cloud while eliminating coordinate offsets. Then, for each point in the reconstructed point cloud, a KNN search (k=5) is performed in the initial point cloud, and the distances of these 5 points to the current point are calculated sequentially. The nearest neighbors are saved. If there are multiple nearest neighbors with the same distance, these nearest neighbors can be merged into one point, that is, the average attribute values ​​of these points are taken as the true attribute value of the current point's nearest neighbor matching point. In this way, a point cloud with the same number of points as the reconstructed point cloud and each point has a one-to-one correspondence can be obtained, which is used as the true initial point cloud input to the Wiener filter.

[0376] Secondly, the Wiener filter at the encoder primarily calculates the filter coefficients and determines whether the point cloud quality is improved after Wiener filtering. After inputting the initial and reconstructed point clouds, the optimal coefficients (i.e., the filter coefficients) can be calculated using the Wiener filtering algorithm. Since the filter order (i.e., the number of target points selected during filtering, K) and the number of attribute information items to be filtered affect the quality of the filtered point cloud, after several trials, balancing performance and efficiency, K=16 was chosen. Note that the K target points include the point itself and its (K-1) nearest neighbors. Simultaneously, the encoder filters all three YUV components (to obtain filtering performance on these three components). Under these conditions, after obtaining the filter coefficients, the filtered point cloud can be obtained (at this point, the reconstructed point cloud does not need to be overlaid).

[0377] Furthermore, the PSNR values ​​of the filtered point cloud and the reconstructed point cloud for each YUV component are calculated. Simultaneously, to more accurately measure the performance improvement before and after filtering, this scheme performs a rate-distortion trade-off on both the filtered and reconstructed point clouds, using a rate-distortion cost function to calculate the cost of the overall quality improvement and bitrate increase, representing the compression efficiency of the point clouds before and after filtering. The specific calculation of the cost (denoted by J) is shown in equation (14) above.

[0378] Thus, after calculating the PSNR and J for each color component of the reconstructed and filtered point clouds, if the PSNR of one or more components increases while J decreases relative to the reconstructed point cloud (e.g., only the PSNR of the V component increases while J decreases), then only the V component will be filtered at the decoding end. In this case, a 1×3 decision array (i.e., the filtering identifier information in the aforementioned embodiment, used to determine whether and which components need post-processing (i.e., filtering) at the decoding end, such as [0,1,1] indicating filtering of the U and V components) is first written into the bitstream, followed by the filtering coefficients. If no component's PSNR increases or all J increases, it indicates that the performance after filtering has actually decreased. In this case, it is not necessary to write the decision array and filtering coefficients into the bitstream to avoid reducing encoding and decoding efficiency, and Wiener filtering should not be performed at the decoding end.

[0379] Furthermore, in order to determine the optimal value of K, this application embodiment tested the BD-Rate gain and runtime of the test sequence before and after filtering using the Lifting Transform method under CTC_C1 (geometrically lossless, attribute-lossy) conditions and r1-r6 bit rates. The specific results are as follows: Figure 6 and Figure 7As shown, infinitely increasing K does not improve performance. Furthermore, an excessively large K can easily lead to memory overflow when processing large point clouds, reducing its universality. Therefore, K is set to 16 here to ensure filtering effectiveness while reducing time complexity to some extent.

[0380] In another specific embodiment, Figure 12 This is a schematic diagram illustrating a decoding-end filtering process provided in an embodiment of this application. Figure 12 As shown, when the decoder performs Wiener filtering, it can use the reconstructed point cloud and the filtering coefficients as inputs to the Wiener filter at the decoding end. After completing the transformation of the attribute information of the points in the reconstructed point cloud (such as converting the color components in the attribute information from RGB space to YUV space), the filtering coefficients can be used for filtering. The filtered and enhanced point cloud can be obtained through calculation. After completing the transformation of the attribute information of the points in the filtered point cloud (from YUV space to RGB space), the filtered point cloud is output.

[0381] Specifically, on the decoding side, the specific operations are as follows:

[0382] First, after G-PCC decodes the attribute residual values, decoding can proceed immediately. First, a 1×3 decision array is decoded. If it is determined that certain components need to be filtered, it means that there is a transmission of filtering coefficients at the encoding end, and Wiener filtering will increase the quality of the reconstructed point cloud; otherwise, decoding will not continue, and the Wiener filtering part will be skipped. The point cloud will be reconstructed according to the original program to obtain the reconstructed point cloud.

[0383] Secondly, after decoding the filtering coefficients, the filtering coefficients can be passed to the point cloud reconstruction. At this time, the reconstructed point cloud and the filtering coefficients can be directly input into the Wiener filter at the decoding end. Through calculation, the filtered and quality-enhanced point cloud can be obtained, and this point cloud can be overlaid on the reconstructed point cloud to complete the entire encoding, decoding and quality enhancement operation.

[0384] Furthermore, in the embodiments of this application, Figure 13 This is a schematic diagram illustrating the test results of a related technology and the present technical solution under CY test conditions, provided as an embodiment of this application. Figure 14 A schematic diagram illustrating the test results of a related technology and the present technical solution under C1 test conditions, provided as an embodiment of this application. Figure 15 A schematic diagram illustrating the test results of RAHT transformation under C1 test conditions, provided for embodiments of this application, of a related technology and the present technical solution. Figure 16 This is a schematic diagram illustrating the test results of a lifting transformation under C2 test conditions, provided in an embodiment of this application. Figure 17This is a schematic diagram illustrating the test results of RAHT transformation under C2 test conditions, provided as an embodiment of this application. Figures 13-17 As shown, after the encoding and decoding method proposed in this application was implemented on the G-PCC reference software TMC13 V12.0, it was tested on some test sequences required by MPEG under CTC CY, C1 and C2 test conditions (cat1-A & cat1-B). At the same time, the final test results in the attribute lossless encoding method were also compared with related technologies.

[0385] In this dataset, CY represents lossless geometry and lossy attribute encoding; C1 represents lossless geometry and near-lossless attribute encoding; and C2 represents lossy geometry and lossy attribute encoding. In the test results, End-to-End BD-AttrRate represents the end-to-end attribute value BD-Rate for the attribute bitstream. BD-Rate reflects the difference in PSNR curves between the two cases (with and without filtering). A decrease in BD-Rate indicates a reduction in bitrate and improved performance while maintaining the same PSNR; conversely, a increase indicates a decrease in performance. In other words, a greater decrease in BD-Rate indicates better compression. Cat1-A average and Cat1-B average represent the average test results of the point cloud sequences for each of the two datasets. Finally, the Overall average is the average test result for all sequences.

[0386] Therefore, the encoding and decoding method proposed in this application is mainly an optimized G-PCC point cloud decoding-end attribute Wiener filtering quality enhancement technology, which can selectively enhance the quality of the reconstructed point cloud output from the decoding end; especially for sequences with dense point distribution and medium bit rate sequences, it has a more prominent optimization effect. Moreover, the number of bits in the bit stream does not increase significantly, and the compression performance is improved; at the same time, this technology can operate on all three attribute transform (Predicting transform, Lifing transform, RAHT) encoding methods, and has universality. For a very small number of sequences with poor filtering effect, this technology will not affect the decoding-end reconstruction process; apart from a slight increase in the encoding end running time, the impact of the filtering identification information on the attribute bit stream size is negligible.

[0387] Compared with related technologies, on the one hand, when using nearest neighbor points for filtering, the current point itself is included in the calculation, meaning that the filtered value of the point also depends on its own attribute value. Testing revealed that the coefficient corresponding to the current point is relatively large in the optimal coefficients, indicating that the attribute value of that point has a significant weight in the filtering process; therefore, considering the calculation of the current point is essential. Test results show a significant improvement in the final BD-Rate, proving the correctness of this operation. On the other hand, before writing filtering coefficients and other information into the bitstream, the method for determining whether the overall performance has improved after filtering has been optimized. Considering that the ultimate goal of G-PCC is point cloud compression, a higher compression ratio indicates better overall performance. Compared to related technologies that only rely on PSNR values ​​to determine whether to perform filtering at the decoding end, this application proposes using a cost function to calculate the cost before and after filtering for each channel (Y,U,V) to perform a rate-distortion trade-off. This method not only considers the improvement in attribute value quality but also calculates the cost required to write coefficients and other information into the bitstream, combining both to determine whether the compression performance has improved after filtering, thereby deciding whether to perform coefficient transfer and decoding operations. On the other hand, the filter order K was improved. In order to reduce the running time and increase the universality while ensuring the filtering effect, a systematic test was conducted. In this embodiment, K=16 was selected for filtering. Furthermore, this embodiment can filter the reconstructed point cloud obtained by GPCC geometric lossy and attribute lossy encoding methods. It proposes a method for one-to-one correspondence between the geometrically distorted reconstructed point cloud and the original point cloud, which further improves the scope of application.

[0388] In another embodiment of this application, based on the same inventive concept as the foregoing embodiments, see [link to previous embodiment]. Figure 18 This illustrates a schematic diagram of the composition structure of an encoder 180 provided in an embodiment of this application. Figure 18 As shown, the encoder 180 may include: a first determining unit 1801, a first filtering unit 1802, and an encoding unit 1803; wherein,

[0389] The first determining unit 1801 is configured to determine the initial point cloud and the reconstructed point cloud corresponding to the initial point cloud; and to determine the filtering coefficients based on the initial point cloud and the reconstructed point cloud.

[0390] The first filtering unit 1802 is configured to use filtering coefficients to filter the K target points corresponding to the first point in the reconstructed point cloud, and determine the filtered point cloud corresponding to the reconstructed point cloud; wherein, the K target points include the first point and (K-1) nearest neighbor points adjacent to the first point, K is an integer greater than 1, and the first point represents any point in the reconstructed point cloud;

[0391] The first determining unit 1801 is further configured to determine filtering identification information based on the reconstructed point cloud and the filtered point cloud; wherein, the filtering identification information is used to determine whether to perform filtering processing on the reconstructed point cloud;

[0392] The encoding unit 1803 is configured to encode the filter identification information and filter coefficients if the filter identification information indicates that the reconstructed point cloud should be filtered, and write the obtained encoded bits into the bit stream.

[0393] In some embodiments, the first determining unit 1801 is further configured to obtain a first reconstructed point cloud if the initial point cloud is encoded and reconstructed using a first type of encoding method, and to use the first reconstructed point cloud as the reconstructed point cloud; wherein the first type of encoding method is used to indicate that the initial point cloud is geometrically lossless but attribute-lossy encoded.

[0394] In some embodiments, the first determining unit 1801 is further configured to obtain a second reconstructed point cloud if the initial point cloud is encoded and reconstructed using a second type of encoding method; and to perform geometric restoration processing on the second reconstructed point cloud to obtain a restored reconstructed point cloud, and to use the restored reconstructed point cloud as the reconstructed point cloud; wherein the second type of encoding method is used to indicate geometrically lossy and attribute lossy encoding of the initial point cloud.

[0395] In some embodiments, the first determining unit 1801 is further configured to perform geometric compensation processing on the second reconstructed point cloud to obtain an intermediate reconstructed point cloud; and to perform scale scaling processing on the intermediate reconstructed point cloud to obtain a restored reconstructed point cloud; wherein the restored reconstructed point cloud has the same size and geometric position as the initial point cloud.

[0396] In some embodiments, see Figure 18 The encoder 180 may also include a search unit 1804, configured to determine the corresponding points in the reconstructed point cloud and the initial point cloud according to the first preset search method in the case of the first type of encoding method, and establish the correspondence between the points in the reconstructed point cloud and the points in the initial point cloud.

[0397] In some embodiments, the search unit 1804 is further configured to, in the case of the second type of encoding method, determine the corresponding point in the initial point cloud of the point in the reconstructed point cloud according to the second preset search method; and construct a matching point cloud according to the determined corresponding point, use the matching point cloud as the initial point cloud, and establish a correspondence between the points in the reconstructed point cloud and the points in the initial point cloud.

[0398] In some embodiments, the first preset search method is a K-nearest neighbor search method that searches for a first constant number of points; the second preset search method is a K-nearest neighbor search method that searches for a second constant number of points.

[0399] In some embodiments, the search unit 1804 is specifically configured to: search for a second constant number of points in the initial point cloud based on the current point in the reconstructed point cloud using a second preset search method; calculate the distance values ​​between the current point and the second constant number of points respectively, select the minimum distance value from the distance values; and if the number of minimum distance values ​​is 1, determine the point corresponding to the minimum distance value as the corresponding point of the current point; if the number of minimum distance values ​​is multiple, determine the corresponding point of the current point based on the multiple points corresponding to the minimum distance values.

[0400] In some embodiments, the first constant value is equal to 1, and the second constant value is equal to 5.

[0401] In some embodiments, the first determining unit 1801 is further configured to determine K target points corresponding to the first point in the reconstructed point cloud;

[0402] Accordingly, the first filtering unit 1802 is specifically configured to use filtering coefficients to filter K target points corresponding to the first point in the reconstructed point cloud to determine the filtered value of the attribute information of the first point in the reconstructed point cloud; and after determining the filtered value of the attribute information of at least one point in the reconstructed point cloud, to determine the filtered point cloud based on the filtered value of the attribute information of at least one point.

[0403] In some embodiments, the first determining unit 1801 is further configured to: search for a preset number of candidate points in the reconstructed point cloud based on the first point in the reconstructed point cloud using a K-nearest neighbor search method; calculate the distance values ​​between the first point and the preset number of candidate points respectively; select (K-1) distance values ​​from the obtained preset number of distance values, and all (K-1) distance values ​​are less than the remaining distance values ​​in the preset number of distance values; and determine (K-1) nearest neighbor points according to the candidate points corresponding to the (K-1) distance values, and determine the first point and the (K-1) nearest neighbor points as the K target points corresponding to the first point.

[0404] In some embodiments, the first determining unit 1801 is further configured to determine a first attribute parameter based on the original value of the attribute information of the midpoint in the initial point cloud; and to determine a second attribute parameter based on the reconstructed value of the attribute information of the K target points corresponding to the midpoint in the reconstructed point cloud; and to determine filtering coefficients based on the first attribute parameter and the second attribute parameter.

[0405] In some embodiments, the first determining unit 1801 is further configured to determine a cross-correlation parameter based on a first attribute parameter and a second attribute parameter; determine an autocorrelation parameter based on a second attribute parameter; and perform coefficient calculation based on the cross-correlation parameter and the autocorrelation parameter to obtain filter coefficients.

[0406] In some embodiments, the attribute information includes color components, and the color components include at least one of the following: a first color component, a second color component, and a third color component; wherein, if the color components conform to the RGB color space, the first color component, the second color component, and the third color component are determined to be: R component, G component, and B component in sequence; if the color components conform to the YUV color space, the first color component, the second color component, and the third color component are determined to be: Y component, U component, and V component in sequence.

[0407] In some embodiments, see Figure 18 The encoder 180 may further include a computing unit 1805 configured to determine a first-generation value of the component to be processed of the attribute information of the reconstructed point cloud, and a second-generation value of the component to be processed of the attribute information of the filtered point cloud; and

[0408] The first determining unit 1801 is further configured to determine the filtering identification information of the component to be processed based on the first generation value and the second generation value; and to obtain the filtering identification information based on the filtering identification information of the component to be processed.

[0409] In some embodiments, the first determining unit 1801 is further configured to determine the value of the filter identification information of the component to be processed as a first value if the second generation value is less than the first generation value; and to determine the value of the filter identification information of the component to be processed as a second value if the second generation value is greater than the first generation value. In some embodiments, the calculation unit 1805 is specifically configured to calculate the cost of the component to be processed of the attribute information of the reconstructed point cloud using a rate-distortion cost method, and to use the obtained first rate-distortion value as the first generation value; and to calculate the cost of the component to be processed of the attribute information of the filtered point cloud using a rate-distortion cost method, and to use the obtained second rate-distortion value as the obtained second generation value.

[0410] In some embodiments, the computing unit 1805 is further configured to perform cost calculation on the unprocessed components of the attribute information of the reconstructed point cloud using a rate-distortion cost method to obtain a first rate-distortion value; and to perform performance value calculation on the unprocessed components of the attribute information of the reconstructed point cloud using a preset performance measurement index to obtain a first performance value.

[0411] The first determining unit 1801 is further configured to determine the first generation value based on the first rate distortion value and the first performance value.

[0412] In some embodiments, the calculation unit 1805 is further configured to calculate the cost of the component to be processed of the attribute information of the filtered point cloud using a rate-distortion cost method to obtain a second rate-distortion value; and to calculate the performance value of the component to be processed of the attribute information of the filtered point cloud using a preset performance measurement index to obtain a second performance value.

[0413] The first determining unit 1801 is also configured to determine the second generation value based on the second rate distortion value and the second performance value.

[0414] In some embodiments, the first determining unit 1801 is further configured to determine the value of the filter identification information of the component to be processed as a first value if the second performance value is greater than the first performance value and the second rate distortion value is less than the first rate distortion value; and to determine the value of the filter identification information of the component to be processed as a second value if the second performance value is less than the first performance value.

[0415] In some embodiments, the first determining unit 1801 is further configured to determine the value of the filter identification information of the component to be processed as a first value if the second performance value is greater than the first performance value and the second rate distortion value is less than the first rate distortion value; and to determine the value of the filter identification information of the component to be processed as a second value if the second rate distortion value is greater than the first rate distortion value.

[0416] In some embodiments, the first determining unit 1801 is further configured to determine that if the value of the filtering identifier information of the component to be processed is a first value, the filtering identifier information of the component to be processed indicates that the component to be processed of the attribute information of the reconstructed point cloud is filtered; and if the value of the filtering identifier information of the component to be processed is a second value, the filtering identifier information of the component to be processed indicates that the component to be processed of the attribute information of the reconstructed point cloud is not filtered.

[0417] In some embodiments, the first determining unit 1801 is further configured to, when the component to be processed is a color component, determine the filtering identification information of the first color component, the filtering identification information of the second color component, and the filtering identification information of the third color component; and obtain the filtering identification information based on the filtering identification information of the first color component, the filtering identification information of the second color component, and the filtering identification information of the third color component.

[0418] In some embodiments, the first determining unit 1801 is further configured to determine that if at least one of the filtering identification information of the first color component, the filtering identification information of the second color component, and the filtering identification information of the third color component is a first value, then the filtering identification information indicates that the reconstructed point cloud is to be filtered; if all of the filtering identification information of the first color component, the filtering identification information of the second color component, and the filtering identification information of the third color component are second values, then the filtering identification information indicates that the reconstructed point cloud is not to be filtered.

[0419] In some embodiments, the encoding unit 1803 is further configured to encode only the filter identification information if the filter identification information indicates that the reconstructed point cloud is not filtered, and to write the obtained encoded bits into the bit stream.

[0420] In some embodiments, the first determining unit 1801 is further configured to determine the value of K based on the number of points in the reconstructed point cloud; and / or, to determine the value of K based on the quantization parameters of the reconstructed point cloud; and / or, to determine the value of K based on the neighborhood difference value of a point in the reconstructed point cloud; wherein the neighborhood difference value is calculated based on the component difference between the attribute information of a point and the attribute information of at least one neighboring point.

[0421] In some embodiments, the first determining unit 1801 is further configured to select a first type of filter to filter the reconstructed point cloud if the neighborhood difference value of the midpoint of the reconstructed point cloud meets a first preset interval; and select a second type of filter to filter the reconstructed point cloud if the neighborhood difference value of the midpoint of the reconstructed point cloud meets a second preset interval; wherein the order of the first type of filter is different from the order of the second type of filter.

[0422] In some embodiments, the first determining unit 1801 is further configured to determine the predicted value of the attribute information of the midpoint of the initial point cloud; and to determine the residual value of the attribute information of the midpoint of the initial point cloud based on the original value and the predicted value of the attribute information of the midpoint of the initial point cloud.

[0423] The encoding unit 1803 is also configured to encode the residual values ​​of the attribute information of the points in the initial point cloud and write the obtained encoded bits into the bit stream.

[0424] Understandably, in the embodiments of this application, a "unit" can be a portion of a circuit, a portion of a processor, a portion of a program or software, etc., and can also be a module or a non-modular one. Furthermore, the components in this embodiment can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. The integrated unit described above can be implemented in hardware or as a software functional module.

[0425] If the integrated unit is implemented as a software functional module and not sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this embodiment, in essence, or the part that contributes to the prior art, or all or part of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) or processor to execute all or part of the steps of the method described in this embodiment. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, portable hard drives, read-only memory (ROM), random access memory (RAM), magnetic disks, or optical disks.

[0426] Therefore, this application provides a computer storage medium applied to an encoder 180, the computer storage medium storing a computer program that, when executed by a first processor, implements the method described in any of the foregoing embodiments.

[0427] Based on the composition of the encoder 180 and the computer storage medium described above, see [link to documentation]. Figure 19 This illustrates a schematic diagram of the specific hardware structure of the encoder 180 provided in an embodiment of this application. Figure 19 As shown, encoder 180 may include: a first communication interface 1901, a first memory 1902, and a first processor 1903; the various components are coupled together via a first bus system 1904. It is understood that the first bus system 1904 is used to implement communication between these components. In addition to a data bus, the first bus system 1904 also includes a power bus, a control bus, and a status signal bus. However, for clarity, in... Figure 19 The general designated all buses as the first bus system 1904. Among them,

[0428] The first communication interface 1901 is used for receiving and sending signals during the process of sending and receiving information with other external network elements;

[0429] The first memory 1902 is used to store computer programs that can run on the first processor 1903;

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

[0431] Determine the initial point cloud and the corresponding reconstructed point cloud;

[0432] The filtering coefficients are determined based on the initial point cloud and the reconstructed point cloud.

[0433] The K target points corresponding to the first point in the reconstructed point cloud are filtered using the filtering coefficients to determine the filtered point cloud corresponding to the reconstructed point cloud; where the K target points include the first point and (K-1) nearest neighbor points adjacent to the first point, K is an integer greater than 1, and the first point represents any point in the reconstructed point cloud;

[0434] Based on the reconstructed point cloud and the filtered point cloud, filter identification information is determined; the filter identification information is used to determine whether to perform filtering processing on the reconstructed point cloud.

[0435] If the filter identifier information indicates that the reconstructed point cloud should be filtered, then the filter identifier information and filter coefficients are encoded, and the resulting encoded bits are written into the bitstream.

[0436] It is understood that the first memory 1902 in the embodiments of this application can be volatile memory or non-volatile memory, or may include both volatile and non-volatile memory. The non-volatile memory can be read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), or flash memory. The volatile memory can be random access memory (RAM), which is used as an external cache. By way of example, but not limitation, many forms of RAM are available, such as Static Random Access Memory (SRAM), Dynamic Random Access Memory (DRAM), Synchronous DRAM (SDRAM), Double Data Rate Synchronous DRAM (DDRSDRAM), Enhanced Synchronous DRAM (ESDRAM), Synchlink DRAM (SLDRAM), and Direct Rambus RAM (DRRAM). The first memory 1902 of the system and method described in this application is intended to include, but is not limited to, these and any other suitable types of memory.

[0437] The first processor 1903 may be an integrated circuit chip with signal processing capabilities. In implementation, each step of the above method can be completed by the integrated logic circuitry in the hardware of the first processor 1903 or by instructions in software form. The first processor 1903 can be a general-purpose processor, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), or other programmable logic devices, discrete gate or transistor logic devices, or discrete hardware components. It can implement or execute the methods, steps, and logic block diagrams disclosed in the embodiments of this application. The general-purpose processor can be a microprocessor or any conventional processor. The steps of the methods disclosed in the embodiments of this application can be directly embodied in the execution of a hardware decoding processor, or can be executed by a combination of hardware and software modules in the decoding processor. The software modules can be located in random access memory, flash memory, read-only memory, programmable read-only memory, electrically erasable programmable memory, registers, or other mature storage media in the art. The storage medium is located in the first memory 1902. The first processor 1903 reads the information in the first memory 1902 and, in conjunction with its hardware, completes the steps of the above method.

[0438] It is understood that the embodiments described in this application can be implemented using hardware, software, firmware, middleware, microcode, or a combination thereof. For hardware implementation, the processing unit can be implemented in one or more application-specific integrated circuits (ASICs), digital signal processors (DSPs), DSP devices (DSPDs), programmable logic devices (PLDs), field-programmable gate arrays (FPGAs), general-purpose processors, controllers, microcontrollers, microprocessors, other electronic units for performing the functions described in this application, or combinations thereof. For software implementation, the technology described in this application can be implemented through modules (e.g., procedures, functions, etc.) that perform the functions described in this application. Software code can be stored in memory and executed by a processor. The memory can be implemented in the processor or external to the processor.

[0439] Alternatively, as another embodiment, the first processor 1903 is also configured to perform the method described in any of the foregoing embodiments when running the computer program.

[0440] This embodiment provides an encoder, which may include a first determining unit, a first filtering unit, and an encoding unit. The encoding end uses the initial point cloud and the reconstructed point cloud to calculate filtering coefficients for filtering processing. Only after determining that the reconstructed point cloud should be filtered, the corresponding filtering coefficients are passed to the decoder. Correspondingly, the decoding end can directly decode to obtain the filtering coefficients and then use them to filter the reconstructed point cloud, thereby optimizing the reconstructed point cloud and improving its quality. Furthermore, when using nearest neighbor points for filtering, the encoding end also considers the current point itself, ensuring that the filtered value depends on the current point's own attribute values. Moreover, when determining whether to filter the reconstructed point cloud, not only PSNR performance is considered, but also the rate-distortion cost is weighed. In addition, a method for determining the correspondence between the reconstructed point cloud and the initial point cloud under geometrically and attribute-lossy conditions is proposed, thereby not only expanding the applicability and improving the quality of the point cloud, but also saving bit rate and improving encoding and decoding efficiency.

[0441] Based on the same inventive concept as the foregoing embodiments, see [link to previous document]. Figure 20 This illustrates a schematic diagram of the composition structure of a decoder 200 provided in an embodiment of this application. Figure 20 As shown, the decoder 200 may include: a decoding unit 2001 and a second filtering unit 2002; wherein,

[0442] Decoding unit 2001 is configured to decode the bit stream and determine the filtering identification information; wherein, the filtering identification information is used to determine whether to perform filtering processing on the reconstructed point cloud corresponding to the initial point cloud; and if the filtering identification information indicates that the reconstructed point cloud should be filtered, then the bit stream is decoded and the filtering coefficients are determined.

[0443] The second filtering unit 2002 is configured to use filtering coefficients to filter the K target points corresponding to the first point in the reconstructed point cloud to determine the filtered point cloud corresponding to the reconstructed point cloud; wherein, the K target points include the first point and (K-1) nearest neighbor points adjacent to the first point, K is an integer greater than 1, and the first point represents any point in the reconstructed point cloud.

[0444] In some embodiments, see Figure 20 The decoder 200 may also include a second determining unit 2003, configured to determine K target points corresponding to the first point in the reconstructed point cloud;

[0445] Accordingly, the second filtering unit 2002 is specifically configured to use filtering coefficients to filter the K target points corresponding to the first point in the reconstructed point cloud to determine the filtered value of the attribute information of the first point in the reconstructed point cloud; and after determining the filtered value of the attribute information of at least one point in the reconstructed point cloud, to determine the filtered point cloud based on the filtered value of the attribute information of at least one point.

[0446] In some embodiments, the second determining unit 2003 is specifically configured to: search for a preset number of candidate points in the reconstructed point cloud based on the first point in the reconstructed point cloud using a K-nearest neighbor search method; calculate the distance values ​​between the first point and the preset number of candidate points respectively; select (K-1) distance values ​​from the obtained preset number of distance values, and all (K-1) distance values ​​are less than the remaining distance values ​​in the preset number of distance values; and determine (K-1) nearest neighbor points according to the candidate points corresponding to the (K-1) distance values, and determine the first point and the (K-1) nearest neighbor points as the K target points corresponding to the first point.

[0447] In some embodiments, the decoding unit 2001 is further configured to decode the bitstream and determine the residual values ​​of the attribute information of points in the initial point cloud;

[0448] The second determining unit 2003 is further configured to, after determining the predicted value of the attribute information of the midpoint of the initial point cloud, determine the reconstructed value of the attribute information of the midpoint of the initial point cloud based on the predicted value and residual value of the attribute information of the midpoint of the initial point cloud; and construct the reconstructed point cloud based on the reconstructed value of the attribute information of the midpoint of the initial point cloud.

[0449] In some embodiments, the attribute information includes color components, and the color components include at least one of the following: a first color component, a second color component, and a third color component; wherein, if the color components conform to the RGB color space, the first color component, the second color component, and the third color component are determined to be: R component, G component, and B component in sequence; if the color components conform to the YUV color space, the first color component, the second color component, and the third color component are determined to be: Y component, U component, and V component in sequence.

[0450] In some embodiments, the decoding unit 2001 is further configured to decode the bit stream and determine the filtering identification information of the component to be processed; wherein the filtering identification information of the component to be processed is used to indicate whether to perform filtering processing on the component to be processed of the attribute information of the reconstructed point cloud.

[0451] In some embodiments, the second determining unit 2003 is further configured to determine that if the value of the filtering identifier information of the component to be processed is a first value, the component to be processed of the attribute information of the reconstructed point cloud will be filtered; and if the value of the filtering identifier information of the component to be processed is a second value, the component to be processed of the attribute information of the reconstructed point cloud will not be filtered.

[0452] Correspondingly, the second filtering unit 2002 is also configured to decode the bit stream and determine the filtering coefficients corresponding to the component to be processed if the value of the filtering identifier information of the component to be processed is the first value.

[0453] In some embodiments, the decoding unit 2001 is further configured to decode the bitstream and determine filtering identification information of the first color component, filtering identification information of the second color component, and filtering identification information of the third color component; wherein, the filtering identification information of the first color component is used to indicate whether to filter the first color component of the attribute information of the reconstructed point cloud, the filtering identification information of the second color component is used to indicate whether to filter the second color component of the attribute information of the reconstructed point cloud, and the filtering identification information of the third color component is used to indicate whether to filter the third color component of the attribute information of the reconstructed point cloud.

[0454] In some embodiments, the second determining unit 2003 is further configured to determine that if the value of the filtering identifier information of the first color component is a first value, the first color component of the attribute information of the reconstructed point cloud will be filtered; if the value of the filtering identifier information of the first color component is a second value, the first color component of the attribute information of the reconstructed point cloud will not be filtered.

[0455] Correspondingly, the second filtering unit 2002 is also configured to decode the bitstream and determine the filtering coefficients corresponding to the first color component if the value of the filtering identifier information of the first color component is the first value.

[0456] In some embodiments, the second determining unit 2003 is further configured to: if the value of the filtering identifier information of the second color component is a first value, then determine to perform filtering processing on the second color component of the attribute information of the reconstructed point cloud; if the value of the filtering identifier information of the second color component is a second value, then determine not to perform filtering processing on the second color component of the attribute information of the reconstructed point cloud.

[0457] Accordingly, the second filtering unit 2002 is also configured to decode the bitstream and determine the filtering coefficients corresponding to the second color component if the value of the filtering identifier information of the second color component is the first value.

[0458] In some embodiments, the second determining unit 2003 is further configured to determine that if the value of the filtering identifier information of the third color component is a first value, the third color component of the attribute information of the reconstructed point cloud will be filtered; if the value of the filtering identifier information of the third color component is a second value, the third color component of the attribute information of the reconstructed point cloud will not be filtered.

[0459] Accordingly, the second filtering unit 2002 is also configured to decode the bitstream and determine the filtering coefficients corresponding to the third color component if the value of the filtering identifier information of the third color component is the first value.

[0460] In some embodiments, the second determining unit 2003 is further configured to determine that if at least one of the filtering identification information of the first color component, the filtering identification information of the second color component, and the filtering identification information of the third color component is a first value, then the filtering identification information indicates that the reconstructed point cloud is to be filtered; if all of the filtering identification information of the first color component, the filtering identification information of the second color component, and the filtering identification information of the third color component are second values, then the filtering identification information indicates that the reconstructed point cloud is not to be filtered.

[0461] In some embodiments, the second filtering unit 2002 is further configured to not perform the steps of decoding the bitstream and determining the filtering coefficients if the filtering identification information indicates that the reconstructed point cloud is not filtered.

[0462] In some embodiments, the second filtering unit 2002 is further configured to perform color space conversion on the filtered point cloud if the color components of the points in the filtered point cloud do not conform to the RGB color space, so that the color components of the points in the filtered point cloud conform to the RGB color space.

[0463] Understandably, in this embodiment, a "unit" can be a portion of a circuit, a portion of a processor, a portion of a program or software, etc., and can also be a module or a non-modular component. Furthermore, the components in this embodiment can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. The integrated unit can be implemented in hardware or as a software functional module.

[0464] If the integrated unit is implemented as a software functional module and is not sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, this embodiment provides a computer storage medium applied to the decoder 200, which stores a computer program that, when executed by a second processor, implements the method described in any of the foregoing embodiments.

[0465] Based on the composition of the decoder 200 and the computer storage medium described above, see [link to documentation]. Figure 21 This illustrates a schematic diagram of the specific hardware structure of the decoder 200 provided in an embodiment of this application. Figure 21As shown, the decoder 200 may include: a second communication interface 2101, a second memory 2102, and a second processor 2103; the various components are coupled together via a second bus system 2104. It is understood that the second bus system 2104 is used to implement communication between these components. In addition to a data bus, the second bus system 2104 also includes a power bus, a control bus, and a status signal bus. However, for clarity, in... Figure 21 The various buses are all labeled as the second bus system 2104. Among them,

[0466] The second communication interface 2101 is used for receiving and sending signals during the process of sending and receiving information with other external network elements;

[0467] The second memory 2102 is used to store computer programs that can run on the second processor 2103;

[0468] The second processor 2103 is configured to, when running the computer program, perform:

[0469] Decode the bitstream and determine the filter identification information; the filter identification information is used to determine whether to perform filtering processing on the reconstructed point cloud corresponding to the initial point cloud.

[0470] If the filtering identifier information indicates that the reconstructed point cloud should be filtered, then the bitstream is decoded and the filtering coefficients are determined.

[0471] The K target points corresponding to the first point in the reconstructed point cloud are filtered using the filtering coefficients to determine the filtered point cloud corresponding to the reconstructed point cloud. The K target points include the first point and (K-1) nearest neighbor points adjacent to the first point, where K is an integer greater than 1, and the first point represents any point in the reconstructed point cloud.

[0472] Alternatively, as another embodiment, the second processor 2103 is also configured to perform the method described in any of the foregoing embodiments when running the computer program.

[0473] It is understood that the second memory 2102 has similar hardware functions to the first memory 1902, and the second processor 2103 has similar hardware functions to the first processor 1903; these will not be described in detail here.

[0474] This embodiment provides a decoder, which may include a decoding unit and a second filtering unit. Thus, since the decoding end can directly decode to obtain the filtering coefficients, and then use these coefficients to filter the reconstructed point cloud, optimization of the reconstructed point cloud is achieved, improving its quality. Furthermore, when the encoding end uses nearest neighbor points for filtering, it also considers the current point itself, ensuring that the filtered value depends on the current point's own attribute values. Moreover, when determining whether to filter the reconstructed point cloud, it considers not only PSNR performance but also rate-distortion costs. In addition, it proposes a method for determining the correspondence between the reconstructed point cloud and the initial point cloud under geometrically and attribute-lossy conditions, thereby not only expanding the applicability and improving the quality of the point cloud but also saving bitrate and improving encoding and decoding efficiency.

[0475] In another embodiment of this application, see [link to application]. Figure 22 This illustrates a schematic diagram of the composition structure of an encoding / decoding system provided in an embodiment of this application. Figure 22 As shown, the encoding / decoding system 220 may include an encoder 2201 and a decoder 2202. The encoder 2201 may be any of the encoders described in the foregoing embodiments, and the decoder 2202 may be any of the decoders described in the foregoing embodiments.

[0476] In this embodiment of the application, the encoding / decoding system 220 uses the initial point cloud and the reconstructed point cloud to calculate filtering coefficients for filtering processing. Only after determining that the reconstructed point cloud will be filtered, are the corresponding filtering coefficients passed to the decoder. Correspondingly, the decoding end can directly decode to obtain the filtering coefficients and then use them to filter the reconstructed point cloud, thereby optimizing the reconstructed point cloud and improving its quality. Furthermore, when using nearest neighbor points for filtering, the encoding end also considers the current point itself, ensuring that the filtered value depends on the current point's own attribute value. Moreover, when determining whether to filter the reconstructed point cloud, not only PSNR performance is considered, but also the rate-distortion cost is weighed. In addition, a method for determining the correspondence between the reconstructed point cloud and the initial point cloud under geometrically and attribute-lossy conditions is proposed, thereby not only expanding the applicability and improving the quality of the point cloud, but also saving bitrate and improving encoding / decoding efficiency.

[0477] It should be noted that, in this application, the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or apparatus. Without further limitation, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the process, method, article, or apparatus that includes that element.

[0478] The sequence numbers of the embodiments in this application are for descriptive purposes only and do not represent the superiority or inferiority of the embodiments.

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

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

[0481] The features disclosed in the several method or device embodiments provided in this application can be arbitrarily combined without conflict to obtain new method or device embodiments.

[0482] The above description is merely a specific embodiment of this application, but the scope of protection of this application is not limited thereto. Any variations or substitutions that can be easily conceived by those skilled in the art within the 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.

[0483] Industrial applicability

[0484] In this embodiment, the encoder determines an initial point cloud and a reconstructed point cloud corresponding to the initial point cloud; based on the initial point cloud and the reconstructed point cloud, filtering coefficients are determined; the filtering coefficients are used to filter K target points corresponding to the first point in the reconstructed point cloud to determine the filtered point cloud corresponding to the reconstructed point cloud; wherein, the K target points include the first point and (K-1) nearest neighbor points adjacent to the first point, where K is an integer greater than 1, and the first point represents any point in the reconstructed point cloud; based on the reconstructed point cloud and the filtered point cloud, filtering identification information is determined; wherein, the filtering identification information is used to determine whether to perform filtering processing on the reconstructed point cloud; if the filtering identification information indicates that the reconstructed point cloud should be filtered, then the filtering identification information and the filtering coefficients are encoded, and the obtained encoded bits are written into the bit stream. In the decoder, the bitstream is decoded to determine the filtering identifier information. This identifier information determines whether to filter the reconstructed point cloud corresponding to the initial point cloud. If the identifier indicates filtering, the bitstream is decoded to determine the filtering coefficients. These coefficients are then used to filter the K target points corresponding to the first point in the reconstructed point cloud, resulting in the filtered point cloud. The K target points include the first point and its (K-1) nearest neighbors, where K is an integer greater than 1, and the first point represents any point in the reconstructed point cloud. Thus, the encoder uses the initial and reconstructed point clouds to calculate the filtering coefficients, and only after determining that filtering is required for the reconstructed point cloud is applied, does it pass these coefficients to the decoder. Correspondingly, the decoder can directly decode the filtering coefficients and then use them to filter the reconstructed point cloud, thereby optimizing the reconstructed point cloud and improving its quality. Furthermore, when the encoder uses nearest neighbor points for filtering, it also considers the current point itself, so that the filtered value also depends on the attribute value of the current point. Moreover, when determining whether to filter the reconstructed point cloud, it considers not only the PSNR performance index but also the rate-distortion cost. In addition, it proposes a method for determining the correspondence between the reconstructed point cloud and the initial point cloud in the case of geometric loss and attribute loss, which not only improves the applicability and the quality of the point cloud but also saves bit rate and improves encoding and decoding efficiency.

Claims

1. A coding method applied to an encoder, the method comprising: determining an initial point cloud and a reconstructed point cloud; determining a filter coefficient according to the initial point cloud and the reconstructed point cloud; performing filter processing on K target points corresponding to a first point in the reconstructed point cloud by using the filter coefficient to determine a filtered point cloud corresponding to the reconstructed point cloud, wherein the K target points include the first point and (K-1) nearest neighbor points adjacent to the first point, K is an integer greater than 1, and the first point represents any point in the reconstructed point cloud; determining filter identification information according to the reconstructed point cloud and the filtered point cloud, wherein the filter identification information is used to determine whether to perform filter processing on the reconstructed point cloud; and if the filter identification information indicates that filter processing is to be performed on the reconstructed point cloud, encoding the filter identification information and the filter coefficient, and writing obtained coding bits into a bitstream. The determination of the initial point cloud and the reconstructed point cloud comprises: if a first type of coding manner is used to encode and reconstruct the initial point cloud, a first reconstructed point cloud is obtained, and the first reconstructed point cloud is taken as the reconstructed point cloud. The determination of the initial point cloud and the reconstructed point cloud comprises: if a second type of coding manner is used to encode and reconstruct the initial point cloud, a second reconstructed point cloud is obtained; performing geometric recovery processing on the second reconstructed point cloud to obtain a recovered reconstructed point cloud, and taking the recovered reconstructed point cloud as the reconstructed point cloud. The determination of the initial point cloud and the reconstructed point cloud comprises: if a second type of coding manner is used to encode and reconstruct the initial point cloud, a second reconstructed point cloud is obtained; performing geometric recovery processing on the second reconstructed point cloud to obtain a recovered reconstructed point cloud, and taking the recovered reconstructed point cloud as the reconstructed point cloud. The determination of the initial point cloud and the reconstructed point cloud comprises: if a second type of coding manner is used to encode and reconstruct the initial point cloud, a second reconstructed point cloud is obtained; performing geometric recovery processing on the second reconstructed point cloud to obtain a recovered reconstructed point cloud, and taking the recovered reconstructed point cloud as the reconstructed point cloud. The method further comprises: in the case of the first type of coding manner, determining a corresponding point of a point in the reconstructed point cloud in the initial point cloud according to a first preset search manner, and establishing a correspondence between the point in the reconstructed point cloud and the point in the initial point cloud.

2. The method of claim 1, wherein, The method further comprises: in the case of the second type of coding manner, determining a corresponding point of a point in the reconstructed point cloud in the initial point cloud according to a second preset search manner; and constructing a matching point cloud according to the determined corresponding point, taking the matching point cloud as the initial point cloud, and establishing a correspondence between the point in the reconstructed point cloud and the point in the initial point cloud.

7. The method of claim 5 or 6, wherein the first preset search manner is a K-neighbor search manner of searching for a first constant number of points; and the second preset search manner is a K-neighbor search manner of searching for a second constant number of points. The determination of the corresponding point of the point in the reconstructed point cloud in the initial point cloud according to the second preset search manner comprises:

3. The method of claim 1, wherein, ​ ​ ​ ​ 4. The method of claim 3, wherein, ​ ​ ​ 5. The method of claim 2, wherein, ​ ​ 6. The method of claim 3, wherein, ​ ​ ​ ​ ​ ​ 8. The method of claim 6, wherein, ​ searching, based on a current point in the reconstructed point cloud, a second constant number of points in the initial point cloud by using the second preset search manner; respectively calculating distance values between the current point and the second constant number of points, and selecting a minimum distance value from the distance values; if the number of the minimum distance values is one, determining a point corresponding to the minimum distance value as a corresponding point of the current point; if the number of the minimum distance values is multiple, determining a corresponding point of the current point according to multiple points corresponding to the minimum distance values.

9. The method of claim 7, wherein, The first constant number is equal to 1, and the second constant number is equal to 5.

10. The method of claim 1, wherein, The method further comprises: determining K target points corresponding to a first point in the reconstructed point cloud; Correspondingly, the filtering processing of the K target points corresponding to the first point in the reconstructed point cloud by using the filter coefficient to determine the filtered point cloud corresponding to the reconstructed point cloud comprises: filtering processing of the K target points corresponding to the first point in the reconstructed point cloud by using the filter coefficient to determine a filtered value of attribute information of the first point in the reconstructed point cloud; after the filtered value of the attribute information of at least one point in the reconstructed point cloud is determined, determining the filtered point cloud according to the filtered value of the attribute information of the at least one point.

11. The method of claim 10, wherein, The determination of the K target points corresponding to the first point in the reconstructed point cloud comprises: based on the first point in the reconstructed point cloud, searching a preset number of candidate points in the reconstructed point cloud by using a K-neighbor search manner; respectively calculating distance values between the first point and the preset number of candidate points, and selecting (K-1) distance values from the obtained preset number of distance values, wherein the (K-1) distance values are all smaller than the remaining distance values in the preset number of distance values; determining (K-1) neighbor points according to the candidate points corresponding to the (K-1) distance values, and determining the first point and the (K-1) neighbor points as the K target points corresponding to the first point.

12. The method of claim 1, wherein, The determination of the filter coefficient according to the initial point cloud and the reconstructed point cloud comprises: determining a first attribute parameter according to an original value of attribute information of a point in the initial point cloud; determining a second attribute parameter according to a reconstructed value of attribute information of K target points corresponding to a point in the reconstructed point cloud; determining the filter coefficient based on the first attribute parameter and the second attribute parameter.

13. The method of claim 12, wherein, The determination of the filter coefficient based on the first attribute parameter and the second attribute parameter comprises: determining a cross-correlation parameter according to the first attribute parameter and the second attribute parameter; determining a self-correlation parameter according to the second attribute parameter; performing coefficient calculation according to the cross-correlation parameter and the self-correlation parameter to obtain the filter coefficient.

14. The method of claim 12, wherein, The attribute information comprises a color component, and the color component comprises at least one of a first color component, a second color component and a third color component; wherein, if the color component conforms to an RGB color space, determining that the first color component, the second color component and the third color component are R component, G component and B component in turn; If the color component conforms to a YUV color space, it is determined that the first color component, the second color component and the third color component are Y component, U component and V component in turn.

15. The method of claim 1, wherein, The determining the filtering identification information according to the reconstructed point cloud and the filtered point cloud comprises: determining a first generation value of a to-be-processed component of attribute information of the reconstructed point cloud, and determining a second generation value of a to-be-processed component of attribute information of the filtered point cloud; determining the filtering identification information of the to-be-processed component according to the first generation value and the second generation value; obtaining the filtering identification information according to the filtering identification information of the to-be-processed component.

16. The method of claim 15, wherein, The determining the filtering identification information of the to-be-processed component according to the first generation value and the second generation value comprises: if the second generation value is less than the first generation value, determining that a value of the filtering identification information of the to-be-processed component is a first value; if the second generation value is greater than the first generation value, determining that the value of the filtering identification information of the to-be-processed component is a second value.

17. The method of claim 15, wherein, The determining the first generation value of the to-be-processed component of attribute information of the reconstructed point cloud comprises: performing generation value calculation on the to-be-processed component of attribute information of the reconstructed point cloud by using a rate-distortion cost mode, and taking a first rate-distortion value obtained as the first generation value; Correspondingly, the determining the second generation value of the to-be-processed component of attribute information of the filtered point cloud comprises: performing generation value calculation on the to-be-processed component of attribute information of the filtered point cloud by using a rate-distortion cost mode, and taking a second rate-distortion value obtained as the second generation value.

18. The method of claim 15, wherein, The determining the first generation value of the to-be-processed component of attribute information of the reconstructed point cloud comprises: performing generation value calculation on the to-be-processed component of attribute information of the reconstructed point cloud by using a rate-distortion cost mode, and obtaining a first rate-distortion value; performing performance value calculation on the to-be-processed component of attribute information of the reconstructed point cloud by using a preset performance measurement index, and obtaining a first performance value; determining the first generation value according to the first rate-distortion value and the first performance value; Correspondingly, the determining the second generation value of the to-be-processed component of attribute information of the filtered point cloud comprises: performing generation value calculation on the to-be-processed component of attribute information of the filtered point cloud by using a rate-distortion cost mode, and obtaining a second rate-distortion value; performing performance value calculation on the to-be-processed component of attribute information of the filtered point cloud by using a preset performance measurement index, and obtaining a second performance value; determining the second generation value according to the second rate-distortion value and the second performance value.

19. The method of claim 18, wherein, The determining the filtering identification information of the to-be-processed component according to the first generation value and the second generation value comprises: if the second performance value is greater than the first performance value and the second rate-distortion value is less than the first rate-distortion value, determining that a value of the filtering identification information of the to-be-processed component is a first value; if the second performance value is less than the first performance value, determining that the value of the filtering identification information of the to-be-processed component is a second value.

20. The method of claim 18, wherein, The method further comprises: if the second performance value is greater than the first performance value and the second rate-distortion value is less than the first rate-distortion value, determining that the filter identification information of the to-be-processed component takes a first value; if the second rate-distortion value is greater than the first rate-distortion value, determining that the filter identification information of the to-be-processed component takes a second value.

21. The method of claim 16, 19, or 20, wherein, The method further comprises: if the filter identification information of the to-be-processed component takes the first value, determining that the filter identification information of the to-be-processed component indicates that the to-be-processed component of the attribute information of the reconstructed point cloud is subjected to the filtering processing; if the filter identification information of the to-be-processed component takes the second value, determining that the filter identification information of the to-be-processed component indicates that the to-be-processed component of the attribute information of the reconstructed point cloud is not subjected to the filtering processing.

22. The method of claim 15, wherein, The method further comprises: in a case where the to-be-processed component is a color component, determining filter identification information of a first color component, filter identification information of a second color component, and filter identification information of a third color component; obtaining the filter identification information according to the filter identification information of the first color component, the filter identification information of the second color component, and the filter identification information of the third color component.

23. The method of claim 22, wherein, The method further comprises: if at least one of the filter identification information of the first color component, the filter identification information of the second color component, and the filter identification information of the third color component is the first value, determining that the filter identification information indicates that the reconstructed point cloud is subjected to the filtering processing; if all of the filter identification information of the first color component, the filter identification information of the second color component, and the filter identification information of the third color component are the second value, determining that the filter identification information indicates that the reconstructed point cloud is not subjected to the filtering processing.

24. The method of claim 23, wherein, The method further comprises: if the filter identification information indicates that the reconstructed point cloud is not subjected to the filtering processing, only encoding the filter identification information, and writing the obtained encoded bits into the bitstream.

25. The method of claim 1, wherein, The method further comprises: determining the value of the K according to the number of points of the reconstructed point cloud; and / or, determining the value of the K according to a quantization parameter of the reconstructed point cloud; and / or, determining the value of the K according to a neighborhood difference value of a point in the reconstructed point cloud, wherein the neighborhood difference value is calculated based on a component difference value between attribute information of the point and attribute information of at least one neighbor point.

26. The method of claim 25, wherein, The method further comprises: if the neighborhood difference value of the point in the reconstructed point cloud satisfies a first preset interval, selecting a first type of filter to perform the filtering processing on the reconstructed point cloud; if the neighborhood difference value of the point in the reconstructed point cloud satisfies a second preset interval, selecting a second type of filter to perform the filtering processing on the reconstructed point cloud; wherein an order of the first type of filter is different from an order of the second type of filter.

27. The method of claim 1, wherein, The method further comprises: determine a predicted value of attribute information of a point in the initial point cloud; determine a residual value of attribute information of a point in the initial point cloud according to an original value and the predicted value of attribute information of the point in the initial point cloud; encode the residual value of attribute information of the point in the initial point cloud, and write the obtained coded bits into the code stream.

28. A decoding method applied to a decoder, the method comprising: decoding a code stream to determine filter identification information, wherein the filter identification information is used to determine whether to perform filter processing on a reconstructed point cloud; if the filter identification information indicates to perform filter processing on the reconstructed point cloud, decoding the code stream to determine filter coefficients; performing filter processing on K target points corresponding to a first point in the reconstructed point cloud by using the filter coefficients to determine a filtered point cloud corresponding to the reconstructed point cloud, wherein the K target points include the first point and (K-1) neighboring points adjacent to the first point, and K is an integer greater than 1, and the first point represents any point in the reconstructed point cloud.

29. The method of claim 28, wherein, The method further comprises: determining K target points corresponding to a first point in the reconstructed point cloud; Correspondingly, the performing filter processing on the K target points corresponding to the first point in the reconstructed point cloud by using the filter coefficients to determine the filtered point cloud corresponding to the reconstructed point cloud comprises: performing filter processing on the K target points corresponding to the first point in the reconstructed point cloud by using the filter coefficients to determine a filtered value of attribute information of the first point in the reconstructed point cloud; after determining the filtered value of attribute information of at least one point in the reconstructed point cloud, determining the filtered point cloud according to the filtered value of attribute information of the at least one point.

30. The method of claim 29, wherein, The determining the K target points corresponding to the first point in the reconstructed point cloud comprises: searching for a preset number of candidate points in the reconstructed point cloud by using K-neighbor searching based on the first point in the reconstructed point cloud; calculating distance values between the first point and the preset number of candidate points respectively, and selecting (K-1) distance values from the obtained preset number of distance values, wherein the (K-1) distance values are all smaller than the remaining distance values in the preset number of distance values; determining (K-1) neighboring points according to candidate points corresponding to the (K-1) distance values, and determining the first point and the (K-1) neighboring points as the K target points corresponding to the first point.

31. The method of claim 28, wherein, The method further comprises: decoding the code stream to determine a residual value of attribute information of a point in an initial point cloud; after determining a predicted value of attribute information of a point in the initial point cloud, determining a reconstructed value of attribute information of the point in the initial point cloud according to the predicted value and the residual value of attribute information of the point in the initial point cloud; constructing the reconstructed point cloud based on the reconstructed value of attribute information of the point in the initial point cloud.

32. The method of claim 31, wherein, The attribute information includes a color component, and the color component includes at least one of a first color component, a second color component, and a third color component; wherein, if the color component conforms to an RGB color space, determining that the first color component, the second color component, and the third color component are R component, G component, and B component in sequence. If the color component conforms to a YUV color space, it is determined that the first color component, the second color component and the third color component are Y component, U component and V component in sequence.

33. The method of claim 28, wherein, The decoding code stream determines filter identification information, including: The decoding code stream determines filter identification information of a to-be-processed component; The filter identification information of the to-be-processed component is used to indicate whether the to-be-processed component of the attribute information of the reconstructed point cloud is subjected to filter processing.

34. The method of claim 33, wherein, The decoding code stream determines filter identification information of a to-be-processed component, including: If the filter identification information of the to-be-processed component takes the first value, it is determined that the to-be-processed component of the attribute information of the reconstructed point cloud is subjected to filter processing. If the filter identification information of the to-be-processed component takes the second value, it is determined that the to-be-processed component of the attribute information of the reconstructed point cloud is not subjected to filter processing. Correspondingly, the decoding code stream determines filter coefficients, including: If the filter identification information of the to-be-processed component takes the first value, the code stream is decoded to determine filter coefficients corresponding to the to-be-processed component.

35. The method of claim 33, wherein, In the case that the to-be-processed component is a color component, the decoding code stream determines filter identification information of a to-be-processed component, including: The decoding code stream determines filter identification information of a first color component, filter identification information of a second color component and filter identification information of a third color component. The filter identification information of the first color component is used to indicate whether the first color component of the attribute information of the reconstructed point cloud is subjected to filter processing, the filter identification information of the second color component is used to indicate whether the second color component of the attribute information of the reconstructed point cloud is subjected to filter processing, and the filter identification information of the third color component is used to indicate whether the third color component of the attribute information of the reconstructed point cloud is subjected to filter processing.

36. The method of claim 35, wherein, The decoding code stream determines filter identification information of a first color component, including: If the filter identification information of the first color component takes the first value, it is determined that the first color component of the attribute information of the reconstructed point cloud is subjected to filter processing. If the filter identification information of the first color component takes the second value, it is determined that the first color component of the attribute information of the reconstructed point cloud is not subjected to filter processing. Correspondingly, the decoding code stream determines filter coefficients, including: If the filter identification information of the first color component takes the first value, the code stream is decoded to determine filter coefficients corresponding to the first color component.

37. The method of claim 35, wherein, The decoding code stream determines filter identification information of a second color component, including: If the filter identification information of the second color component takes the first value, it is determined that the second color component of the attribute information of the reconstructed point cloud is subjected to filter processing. If the filter identification information of the second color component takes the second value, it is determined that the second color component of the attribute information of the reconstructed point cloud is not subjected to filter processing. Correspondingly, if the filter identification information indicates the filtering processing on the reconstructed point cloud, the method further includes: If the filter identification information of the second color component is the first value, the method further includes:

38. The method of claim 35, wherein, The method further includes: If the filter identification information of the third color component is the first value, the method further includes: If the filter identification information of the third color component is the second value, the method further includes: Correspondingly, if the filter identification information indicates the filtering processing on the reconstructed point cloud, the method further includes: If the filter identification information of the third color component is the first value, the method further includes:

39. The method of claim 35, wherein, The method further includes: If at least one of the filter identification information of the first color component, the filter identification information of the second color component and the filter identification information of the third color component is the first value, the method further includes: If all of the filter identification information of the first color component, the filter identification information of the second color component and the filter identification information of the third color component are the second value, the method further includes:

40. The method of claim 39, wherein, The method further includes: If the filter identification information indicates the filtering processing on the reconstructed point cloud, the method further includes:

41. The method of any one of claims 28 to 40, wherein, After the determining the filtered point cloud, the method further includes: If the color component of the point in the filtered point cloud does not conform to the RGB color space, the method further includes:

42. An encoder, comprising a first determining unit, a first filtering unit and an encoding unit; wherein, the first determining unit is configured to determine an initial point cloud and a reconstructed point cloud, and determine a filter coefficient according to the initial point cloud and the reconstructed point cloud; the first filtering unit is configured to filter a K target points corresponding to a first point in the reconstructed point cloud by using the filter coefficient, and determine a filtered point cloud corresponding to the reconstructed point cloud; wherein, the K target points include the first point and (K-1) neighboring points adjacent to the first point, K is an integer greater than 1, and the first point represents any point in the reconstructed point cloud; the first determining unit is further configured to determine filter identification information according to the reconstructed point cloud and the filtered point cloud; wherein, the filter identification information is used to determine whether to perform the filtering processing on the reconstructed point cloud; and the encoding unit is configured to encode the filter identification information and the filter coefficient. The encoding unit is configured to, if the filter identification information indicates that the reconstructed point cloud is to be filtered, encode the filter identification information and the filter coefficient, and write the obtained encoded bits into a bitstream.

43. An encoder comprising a first memory and a first processor; wherein, the first memory is configured to store a computer program capable of running on the first processor; the first processor is configured to, when running the computer program, perform the method according to any one of claims 1 to 27.

44. A decoder comprising a decoding unit and a second filtering unit; wherein, the decoding unit is configured to decode a bitstream, determine filter identification information, wherein the filter identification information is used to determine whether a reconstructed point cloud is to be filtered, and if the filter identification information indicates that the reconstructed point cloud is to be filtered, decode the bitstream to determine a filter coefficient; the second filtering unit is configured to filter K target points corresponding to a first point in the reconstructed point cloud using the filter coefficient to determine a filtered point cloud corresponding to the reconstructed point cloud, wherein the K target points include the first point and (K-1) neighboring points adjacent to the first point, K is an integer greater than 1, and the first point represents any point in the reconstructed point cloud.

45. A decoder comprising a second memory and a second processor; wherein, the second memory is configured to store a computer program capable of running on the second processor; the second processor is configured to, when running the computer program, perform the method according to any one of claims 28 to 41.

46. ​​A computer storage medium, wherein, The computer storage medium stores a computer program, which, when executed by a first processor, implements the method according to any one of claims 1 to 27, or when executed by a second processor, implements the method according to any one of claims 28 to 41.

Citation Information

Patent Citations

  • Filter-based point cloud attribute prediction method and device

    CN111242997A

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

    WO2020189876A1