Point cloud encoding method, point cloud decoding method, encoder, decoder, and storage medium

By filtering the reconstructed attribute values ​​in the RAHT layer, the problem of low point cloud encoding and decoding efficiency is solved, and a more efficient encoding and decoding effect is achieved.

WO2026085891A1PCT designated stage Publication Date: 2026-04-30GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2024/127565
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-10-27
Publication Date
2026-04-30

AI Technical Summary

Technical Problem

Existing RAHT-based point cloud encoding and decoding schemes suffer from low encoding and decoding efficiency, mainly due to the distortion of point cloud attribute information after RAHT transformation.

Method used

By filtering the reconstructed attribute values ​​in the RAHT layer, the distortion of attribute information is reduced, thereby improving encoding and decoding efficiency.

Benefits of technology

By performing filtering operations, the distortion of point cloud attribute information is reduced, and the encoding and decoding efficiency is improved.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2024127565_30042026_PF_FP_ABST
    Figure CN2024127565_30042026_PF_FP_ABST
Patent Text Reader

Abstract

Embodiments of the present application provide a point cloud encoding method, a point cloud decoding method, an encoder, a decoder, and a storage medium. The point cloud decoding method comprises: parsing a code stream, and determining a residual value of an AC coefficient of a current transform block, wherein the current transform block belongs to a first RAHT layer, and the first RAHT layer is any one of a plurality of RAHT layers of a point cloud of a current frame; determining a reconstructed value of the AC coefficient of the current transform block on the basis of the residual value of the AC coefficient of the current transform block; determining a reconstructed attribute value of the current transform block on the basis of the reconstructed value of the AC coefficient of the current transform block; determining whether to perform a filtering operation on the first RAHT layer; and if it is determined to perform the filtering operation on the first RAHT layer, filtering the reconstructed attribute value of the current transform block on the basis of a first group of filtering coefficients.
Need to check novelty before this filing date? Find Prior Art

Description

Point cloud encoding / decoding methods, codecs, and storage media Technical Field

[0001] This application relates to the field of point cloud encoding and decoding technology, and in particular to a point cloud encoding and decoding method, an encoder and decoder, and a storage medium. Background Technology

[0002] Within the point cloud encoding / decoding framework, during the encoding and decoding of point cloud attribute information, an encoding / decoding scheme based on region adaptive hierarchical transform (RAHT) can be initiated. However, current RAHT-based encoding / decoding schemes suffer from low encoding / decoding efficiency.

[0003] Summary of the Invention

[0004] This application provides a point cloud encoding / decoding method, an encoder / decoder, and a storage medium. The various aspects involved in this application are described below.

[0005] Firstly, a point cloud decoding method is provided, applied to a decoder, comprising: parsing the bitstream; determining the residual values ​​of the alternating current (AC) coefficients of the current transform block, wherein the current transform block belongs to a first RAHT layer, and the first RAHT layer is any one of multiple RAHT layers of the current frame point cloud; determining the reconstructed values ​​of the AC coefficients of the current transform block based on the residual values ​​of the AC coefficients of the current transform block; determining the reconstructed attribute values ​​of the current transform block based on the reconstructed values ​​of the AC coefficients of the current transform block; determining whether to perform a filtering operation on the first RAHT layer; and if it is determined that a filtering operation will be performed on the first RAHT layer, then filtering the reconstructed attribute values ​​of the current transform block based on a first set of filtering coefficients.

[0006] Secondly, a point cloud encoding method is provided, applied to an encoder, including: determining the residual value of the AC coefficients of the current transform block, wherein the current transform block belongs to the first RAHT layer, and the first RAHT layer is any one of the multiple RAHT layers of the current frame point cloud;

[0007] Based on the residual values ​​of the AC coefficients of the current transform block, determine the reconstructed values ​​of the AC coefficients of the current transform block; based on the reconstructed values ​​of the AC coefficients of the current transform block, determine the reconstructed attribute values ​​of the current transform block; determine whether to perform a filtering operation on the first RAHT layer; if it is determined to perform a filtering operation on the first RAHT layer, then filter the reconstructed attribute values ​​of the current transform block based on the first set of filtering coefficients.

[0008] Thirdly, a decoder is provided, comprising: a first determining unit configured to parse the bitstream and determine the residual values ​​of the AC coefficients of the current transform block, wherein the current transform block belongs to a first RAHT layer, and the first RAHT layer is any one of multiple RAHT layers of the current frame point cloud; a second determining unit configured to determine the reconstructed values ​​of the AC coefficients of the current transform block based on the residual values ​​of the AC coefficients of the current transform block; a third determining unit configured to determine the reconstructed attribute values ​​of the current transform block based on the reconstructed values ​​of the AC coefficients of the current transform block; a fourth determining unit configured to determine whether to perform a filtering operation on the first RAHT layer; and a filtering unit configured to filter the reconstructed attribute values ​​of the current transform block based on a first set of filtering coefficients if it is determined that a filtering operation will be performed on the first RAHT layer.

[0009] Fourthly, a decoder is provided, comprising: a memory for storing a computer program; and a processor for executing the method of the first aspect when running the computer program.

[0010] Fifthly, an encoder is provided, comprising: a first determining unit configured to determine the residual value of the AC coefficients of a current transform block, wherein the current transform block belongs to a first RAHT layer, and the first RAHT layer is any one of a plurality of RAHT layers of the current frame point cloud;

[0011] The second determining unit is configured to determine the reconstructed value of the AC coefficients of the current transform block based on the residual value of the AC coefficients of the current transform block; the third determining unit is configured to determine the reconstructed attribute value of the current transform block based on the reconstructed value of the AC coefficients of the current transform block; the fourth determining unit is configured to determine whether to perform a filtering operation on the first RAHT layer; the filtering unit is configured to filter the reconstructed attribute value of the current transform block based on the first set of filtering coefficients if it is determined that a filtering operation will be performed on the first RAHT layer.

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

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

[0014] Eighthly, a non-volatile computer-readable storage medium is provided for storing a bit stream, the bit stream being generated by an encoding method using an encoder, or the bit stream being decoded by a decoding method using a decoder, wherein the decoding method is as described in the first aspect and the encoding method is as described in the second aspect.

[0015] Ninth aspect, a computer-readable storage medium is provided, which stores a bitstream generated according to the method of the second aspect.

[0016] The attribute information of point clouds suffers from distortion after RAHT transformation, resulting in low encoding and decoding efficiency. This application's embodiments filter the reconstructed attribute values ​​in the RAHT layer to reduce attribute information distortion, thereby helping to improve the encoding and decoding efficiency of attribute information. Attached Figure Description

[0017] Figure 1 is a schematic diagram of a network architecture for point cloud encoding and decoding.

[0018] Figure 2A is a schematic diagram of the component framework of a G-PCC encoder.

[0019] Figure 2B is a schematic diagram of the component framework of a G-PCC decoder.

[0020] Figure 3A is a schematic diagram of an attribute information encoding process based on RAHT transformation.

[0021] Figure 3B is a schematic diagram of a decoding process for attribute information based on RAHT transformation.

[0022] Figure 4 is a schematic diagram of a two-point transformation process.

[0023] Figure 5 is a schematic diagram of another two-point transformation process.

[0024] Figure 6 is a schematic diagram of a RAHT transform that includes upsampling prediction.

[0025] Figure 7 is a schematic diagram of a RAHT inverse transform that includes upsampling prediction.

[0026] Figure 8 is a schematic diagram of a coding process based on RAHT transform (including inter-frame prediction).

[0027] Figure 9 is a flowchart illustrating a decoding method provided in an embodiment of this application.

[0028] Figure 10 is a schematic diagram of the encoding and decoding method of filter coefficients provided in the embodiments of this application.

[0029] Figure 11 is a schematic diagram of the position of parameter information in the code stream structure.

[0030] Figure 12 is a schematic diagram of a transform block in a RAHT layer.

[0031] Figure 13 is a flowchart illustrating an encoding method provided in an embodiment of this application.

[0032] Figure 14 is a schematic flowchart of Wiener filtering of attribute information provided in an embodiment of this application.

[0033] Figure 15 is a flowchart illustrating another encoding method provided in an embodiment of this application.

[0034] Figure 16 is a flowchart illustrating another decoding method provided in an embodiment of this application.

[0035] Figure 17 is a schematic diagram of the structure of a decoder provided in an embodiment of this application.

[0036] Figure 18 is a schematic diagram of the structure of a decoder provided in another embodiment of this application.

[0037] Figure 19 is a schematic diagram of the encoder provided in an embodiment of this application.

[0038] Figure 20 is a schematic diagram of the encoder provided in another embodiment of this application. Detailed Implementation

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

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

[0041] In the following description, references are made to “some embodiments,” which describe a subset of all possible embodiments. However, it is understood that “some embodiments” may be the same subset or different subsets of all possible embodiments and may be combined with each other without conflict.

[0042] It should also be noted that the terms "first, second, and third" used in the embodiments of this application are only used to distinguish similar objects and do not represent a specific order of objects. It is understood that "first, second, and third" can be interchanged in a specific order or sequence where permitted, so that the embodiments of this application described herein can be implemented in an order other than that illustrated or described herein.

[0043] A point cloud is a set of randomly distributed discrete points in space that represent the spatial structure and surface properties of a three-dimensional object or scene. These points contain geometric information representing spatial location and attribute information representing the appearance and texture of the point cloud.

[0044] Two-dimensional images contain information at each pixel, and their distribution is regular, so there's no need to record their positional information separately. However, the distribution of points in a point cloud in three-dimensional space is random and irregular, so the position of each point in space needs to be recorded to fully represent a point cloud. Similar to two-dimensional images, each location during acquisition has corresponding attribute information, usually RGB color values, reflecting the color of an object. For point clouds, in addition to color information, the most common attribute information for each point is reflectance, which reflects the surface material of the object. Therefore, point cloud data typically includes point position information and point attribute information. Point position information can also be called point geometric information. For example, point geometric information can be the three-dimensional coordinates (x, y, z). Point attribute information can include color information and / or reflectance, etc. For example, reflectance can be one-dimensional reflectance information (r); color information can be information in any color space, or it can be three-dimensional color information, such as RGB information. Here, R represents red (red, R), G represents green (green, G), and B represents blue (blue, B). For example, color information can be luminance and chromaticity (YCbCr, YUV) information. Here, Y represents luminance (luma), Cb (U) represents blue color difference, and Cr (V) represents red color difference.

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

[0046] Currently, point cloud encoding frameworks capable of compressing point clouds can include the G-PCC codec framework provided by the Moving Picture Experts Group (MPEG) or the video-based point cloud compression (V-PCC) codec framework, as well as the AVS-PCC codec framework provided by AVS or the geometry-based solid content test model (GES-TM). The G-PCC codec framework can be used to compress type 1 static point clouds and type 3 dynamically acquired point clouds, and it can be based on a point cloud compression test platform (test model compression 13, TMC13). The V-PCC codec framework can be used to compress type 2 dynamic point clouds, and it can be based on a point cloud compression test platform (test model compression 2, TMC2). Therefore, the G-PCC codec framework is also called the point cloud codec TMC13, and the V-PCC codec framework is also called the point cloud codec TMC2. GES-TM is an encoding and decoding framework proposed for dense point clouds (such as point clouds acquired in augmented reality (AR) or virtual reality (VR) scenes).

[0047] This application provides a network architecture for a point cloud encoding / decoding system that includes decoding and encoding methods. Figure 1 is a schematic diagram of such a network architecture. As shown in Figure 1, the network architecture includes one or more electronic devices 13 to 1N and a communication network 01. The electronic devices 13 to 1N can perform video interaction through the communication network 01. The electronic devices can be various types of devices with point cloud encoding / decoding capabilities, such as mobile phones, tablets, personal computers, personal digital assistants, navigators, digital phones, video phones, televisions, sensing devices, servers, etc. This application does not impose any limitations. The decoder or encoder in this application can be one of the aforementioned electronic devices.

[0048] The electronic device in this application embodiment has point cloud encoding and decoding functions, and generally includes a point cloud encoder (i.e., encoder) and a point cloud decoder (i.e. decoder).

[0049] The following section uses the G-PCC and AVS codec frameworks as examples to explain the relevant technologies.

[0050] As can be understood, in the G-PCC encoding and decoding framework for point clouds, the point cloud data to be encoded is first divided into multiple slices. Within each slice, the geometric information of the point cloud and the attribute information corresponding to each point are encoded separately.

[0051] Figure 2A illustrates a schematic diagram of the component framework of a G-PCC encoder. As shown in Figure 2A, during the geometric encoding process, coordinate transformation is performed on the geometric information to ensure that the entire point cloud is contained within a bounding box. Then, quantization is performed; this step primarily serves a scaling function. Due to quantization rounding, some point clouds have identical geometric information, so parameters are used to determine whether to remove duplicate points. This process of quantization and removing duplicate points is also known as voxelization. Next, the bounding box is partitioned into an octree or a prediction tree is constructed. During this process, arithmetic encoding is performed on the points in the leaf nodes of the partition to generate a binary geometric bitstream; or, arithmetic encoding is performed on the vertices generated by the partition (surface fitting based on the vertices) to generate a binary geometric bitstream. During the attribute encoding process, after geometric encoding is completed and the geometric information is reconstructed, color conversion is performed to convert the color information (i.e., attribute information) from the RGB color space to the YUV color space. Then, the reconstructed geometric information is used to recolor the point cloud, so that the unencoded attribute information corresponds to the reconstructed geometric information. Attribute encoding is mainly performed on color information. In the process of color information encoding, there are three main transformation methods. The first two methods rely on the level of detail (LOD) partitioning, namely distance-based lifting transformation and prediction transformation. The third method is to directly perform RAHT. All three 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 and then perform arithmetic encoding on the quantized coefficients to generate a binary attribute bit stream.

[0052] Figure 2B illustrates a schematic diagram of the G-PCC decoder's structural framework. As shown in Figure 2B, for the acquired binary bitstream, the geometric bitstream and attribute bitstream within the binary bitstream are first decoded independently. During the decoding of the geometric bitstream, arithmetic decoding—reconstructing the octree / reconstructing the prediction tree—reconstructing geometry—inverse coordinate transformation is used to obtain the geometric information of the point cloud. During the decoding of the attribute bitstream, arithmetic decoding—inverse quantization—LOD partitioning / RAHT—inverse color transformation is used to obtain the attribute information of the point cloud. Based on the geometric and attribute information, the point cloud data to be encoded (i.e., the output point cloud) is reconstructed.

[0053] It should be noted that, as shown in Figure 2A or Figure 2B, the current geometric coding and decoding of G-PCC can be divided into octree-based geometric coding and decoding (marked with dashed boxes) and prediction tree-based geometric coding and decoding (marked with dotted-dash boxes).

[0054] For octree-based geometry encoding (OctGeomEnc), the process involves: first, performing coordinate transformation on the geometric information to ensure that all points in the point cloud are contained within a single bounding box; then, quantization is performed, and due to rounding, some points may have identical geometric information. Whether to remove duplicate points is determined based on parameters; this process of quantization and removal of duplicate points is also known as voxelization. Next, the bounding boxes are continuously partitioned into tree types (e.g., octree, quadtree, binary tree) using a breadth-first search, and the placeholder code for each node is encoded. In related technologies, an implicit geometric partitioning method has been proposed, which first calculates the bounding box of the point cloud. Assume d x >d y >d z The bounding box corresponds to a cuboid. During geometric partitioning, a binary tree partition is first performed based on the x-axis, resulting in two child nodes; this continues until d is satisfied. x =d y >d z Only when the condition is met will the quadtree be partitioned based on the x and y axes to obtain four child nodes; when d is finally satisfied x =d y =d z Under certain conditions, the octree partitioning will continue until the resulting leaf nodes form a 1×1×1 unit cube. The partitioning then stops, and the nodes in the leaf nodes are encoded to generate a binary code stream. In the binary / quadtree / octree partitioning process, two parameters are introduced: K and M. Parameter K indicates the maximum number of binary / quadtree partitions performed before octree partitioning; parameter M indicates that the minimum block side length during binary / quadtree partitioning is 2. M At the same time, K and M must satisfy the following condition: Assume d max =max(d x ,d y ,d z ), d min =min(d x ,d y ,d z The parameter K satisfies: K ≥ d max ―d min The parameter M satisfies: M ≥ d minThe reason why parameters K and M satisfy the above conditions is that, in the current G-PCC implicit partitioning process, the priority of partitioning methods is binary tree, quadtree, and octree. Only when the node block size does not meet the binary / quadtree condition will the node be continuously partitioned into an octree until the smallest leaf node unit of 1×1×1 is reached. The octree-based geometric information encoding mode can effectively encode the geometric information of the point cloud by utilizing the correlation between nearest neighbors in space.

[0055] The following section uses the RAHT transform as an example to provide a detailed explanation of the encoding and decoding process of point cloud attribute information.

[0056] The principle of RAHT transform is Haar wavelet transform. Its core is to recursively transform attribute information from the root node to the child nodes in a top-down order for a hierarchical tree structure. The resulting direct current (DC) coefficients are passed to the next layer, while the alternating current (AC) coefficients are quantized and encoded. Figure 3A shows a schematic diagram of the attribute information encoding process based on RAHT transform. As shown in Figure 3, at the encoding end, firstly, based on the octree structure of the point cloud, it is determined whether to use upsampling prediction (or intra-frame prediction) or inter-frame prediction; secondly, recursively transforming from the root node to the child nodes from top to bottom yields layer-by-layer AC coefficients. If prediction occurs during the transformation process, the difference between the predicted AC coefficients and the original AC coefficients is used to obtain the residual value of the AC coefficients; finally, the residual value of the AC coefficients is quantized and encoded to generate the attribute information bitstream.

[0057] Figure 3B illustrates a schematic diagram of the attribute information decoding process based on RAHT transform. As shown in Figure 3B, at the decoding end, the attribute information decoding process based on RAHT transform is still performed in a top-down order from the root node to the child nodes. First, the decoder reads the attribute bitstream and performs entropy decoding, followed by inverse quantization to obtain the residual values ​​of the AC coefficients. If there is intra-frame prediction or inter-frame prediction during the transformation process, the residual values ​​of the AC coefficients are added to the predicted values ​​of the AC coefficients to obtain the reconstructed values ​​of the AC coefficients. Then, it is combined with the DC coefficients and subjected to inverse RAHT transform to obtain the reconstructed attribute values ​​of this layer. The reconstructed attribute values ​​of this layer can then be used to calculate the DC coefficients of the next layer, until all layers have been traversed to obtain the reconstructed attribute values. To aid further understanding, the concepts involved in the attribute information encoding process based on RAHT transform described above will be explained in detail below.

[0058] RAHT Transformation

[0059] The RAHT transform relies on a pre-partitioned octree structure, where each non-empty voxel block (hereinafter referred to as a transform block) contains 2×2×2 sub-blocks (hereinafter referred to as sub-blocks). Within each transform block, RAHT applies the Haar wavelet transform in the X, Y, and Z directions, respectively. The specific Haar wavelet transform formulas for two adjacent sub-blocks are shown below:

[0060] Among them, w i,j Let g be the weight of the j-th sub-block (or node to be transformed) in the i-th layer. i,j h is the attribute value of the leaf node. i,j Let AC be the coefficient of the alternation, and g′ be the coefficient of the alternation. i,j The DC coefficient is represented by .

[0061] The Haar wavelet transform of two adjacent sub-blocks can also be called a two-point transform. Figures 4 and 5 show a schematic diagram of a two-point transform process. As shown in Figure 4, after completing the two-point transform in one transform direction, AC coefficients and DC coefficients are obtained. As shown in Figure 5, the DC coefficients obtained in the first transform direction continue to be propagated along the remaining two directions (the first transform direction and the second transform direction) to continue the two-point transform until the entire transform block containing 2×2×2 sub-blocks has been traversed. Therefore, for a transform block containing 8 sub-blocks, 1 DC coefficient and 7 AC coefficients can be obtained.

[0062] For example, the two-point transformations in multiple directions described above can be simplified to the following formula:

[0063] Among them, A N ω represents the sum of attribute information within a sub-block. N T(ω1,ω2,…,ω) represents the number of points within the transformed sub-block. N ) represents the RAHT transformation matrix of the transform block.

[0064] It should be understood that the DC coefficients and AC coefficients represent the transform coefficients obtained after the transformation. During the encoding process, the N-1 AC coefficients obtained from each transformation are encoded, while only the DC coefficients of the root node are encoded; the DC coefficients of the remaining transform blocks are ignored. This is because these ignored DC coefficients can be calculated from the reconstruction attributes at the decoding end. The relationship between the DC coefficients and the reconstruction attribute values ​​is shown in formula (1-5):

[0065] Among them, A N ω represents the sum of attribute information within a sub-block. N This indicates the number of points within the transformed sub-block.

[0066] In the current G-PCC encoding / decoding framework, the transformation process starts from the root node and is performed in a top-down order. Except for the bottom leaf nodes, each node in a layer can be considered a transform block, containing 2×2×2 sub-blocks. Each sub-block in the current layer corresponds to a transform block in the next layer, and the DC coefficients are passed down and decomposed layer by layer from the root node. Transform blocks within the same layer are transformed in ascending order of their coordinates in the Morton code, until all sub-blocks have been traversed.

[0067] Intra-frame upsampling prediction

[0068] To further remove redundancy and improve the compression efficiency of attribute information, an upsampling prediction method is introduced. The essence of upsampling prediction is intra-frame prediction, which uses the attribute information of already encoded points to predict the attribute information of the current point, thereby obtaining the predicted values ​​of the AC coefficients. Then, the predicted values ​​of the AC coefficients are subtracted from the original values ​​to obtain the residual values ​​of the AC coefficients. Next, the residual values ​​of the AC coefficients are encoded to achieve the purpose of redundancy removal. The following sections, in conjunction with Figures 6 and 7, provide a more detailed description of the RAHT transform and inverse RAHT transform processes involving upsampling prediction.

[0069] Figure 6 illustrates a flowchart of a RAHT transform incorporating upsampling prediction. As shown in Figure 6, the RAHT transform in the tree structure proceeds from top to bottom, and the transform is performed within a 2×2×2 block. The reconstructed attribute values ​​of the parent node and its coplanar and collinear neighboring nodes are used to predict the predicted attribute values ​​of these child nodes. Then, the original and predicted attribute values ​​of these child nodes are subjected to RAHT transform to obtain the corresponding DC and AC coefficients. Next, the AC coefficients obtained based on the original attribute values ​​are differiated from those obtained based on the predicted attribute values ​​to obtain the residual values ​​of the AC coefficients, which are then quantized and entropy-encoded. Figure 7 illustrates a flowchart of an inverse RAHT transform incorporating upsampling prediction. As shown in Figure 7, during the inverse RAHT transform, the DC coefficients inherit the reconstructed attribute values ​​of the parent node at the previous level. The residual values ​​of the AC coefficients obtained at the decoding end are accumulated with the AC coefficients obtained by transforming the predicted attribute values ​​from the upsampling prediction, and then combined with the inherited DC coefficients to undergo an inverse RAHT transform to obtain the reconstructed attribute values.

[0070] Inter-frame prediction

[0071] Inter-frame prediction utilizes the attribute information of already encoded point cloud frames to predict and encode the attribute information of the current frame, thereby reducing redundancy. Figure 8 illustrates a schematic diagram of an encoding process based on RAHT transform that includes inter-frame prediction. As shown in Figure 8, the reference frame is first divided into an octree structure. After the reference frame undergoes RAHT transformation, the AC coefficients of each reference node are recorded for inter-frame prediction of the point cloud attribute information in the next frame. In the encoding of the target node's attribute information, the residual value of the AC coefficients is calculated using the AC coefficients of the reference nodes and the target node, and this residual value is then encoded. The decoding process is similar to the encoding process and will not be described in detail here.

[0072] It should be noted that inter-frame prediction is only applied if the current frame and the reference frame have the same octree partitioning structure and are at the same node position. Inter-frame prediction is not applied if there are no prediction coefficient values ​​in the reference buffer (i.e., the buffer of the reference frame). Inter-frame prediction is also not applied if there are no corresponding AC coefficients in the reference buffer.

[0073] Coding coefficient residuals and residuals

[0074] After obtaining the predicted attribute values ​​of the current 2×2×2 transform block through upsampling prediction or inter-frame prediction as described above, RAHT transformation is performed on the original attribute values ​​and predicted attribute values ​​of the sub-blocks within the transform block to obtain the corresponding DC coefficients and AC coefficients. For the obtained i-th predicted AC coefficient... (k is 8). Let (AC) i ) i∈1…k―1 For the i-th original AC coefficient, the residual value (r) of the AC coefficient is... i ) i∈0…k―1 It can be represented as:

[0075] Then, the residual values ​​of the AC coefficients are evaluated based on rate-distortion optimization (RDO): if this r... i If the rate-distortion cost RDcost set to 0 is less than the original rate-distortion cost RDcost, then r is set to 0. i Set to 0.

[0076] Further quantification of the prediction residuals based on RDO judgment:

[0077] Where, r i Q is the residual value of the AC coefficient. iThis represents the quantized attribute residual value at the current point i. Qs is the quantization step size, which can be calculated from the quantization parameter (QP) specified by CTC.

[0078] Reconstructing attribute values ​​at the encoding end

[0079] The purpose of encoding-side reconstruction is for predicting subsequent points. Before reconstructing attribute values, the residual values ​​of the quantized AC coefficients need to be dequantized.

[0080] in, Q represents the residual value of the AC coefficients after dequantization. i Qs represents the quantized attribute residual value at the current point i, and Qs is the quantization step size.

[0081] With the predicted AC coefficient The sums are used to obtain the i-th reconstruction AC coefficient within the current block. Right now:

[0082] Finally, the reconstructed AC coefficients were analyzed. The reconstructed attribute values ​​can be obtained by performing an inverse RAHT transformation together with the DC coefficients inherited from the parent node at the previous level.

[0083] The above section details the encoding and decoding process of point cloud attribute information based on RAHT transform. During this process, various factors can cause distortion of the point cloud attribute information after the RAHT transform, leading to low encoding and decoding efficiency.

[0084] For example, in lossy attribute encoding, the quantization and rounding of the residual values ​​of AC coefficients, as well as the rounding calculations during RAHT transform and inverse RAHT transform, cause distortion in the reconstructed attribute values, reducing the efficiency of encoding and decoding.

[0085] For example, the RAHT transform performs layer-by-layer calculation and quantization encoding from the root node to the child nodes. Due to the existence of upsampling prediction, the distortion of the reconstructed attribute values ​​will be passed from the upper layer of the RAHT layer to the lower layer of the RAHT layer, resulting in the accumulation of distortion of the reconstructed attribute values ​​of the point cloud and reducing the efficiency of encoding and decoding.

[0086] To address the aforementioned issues, this application provides a point cloud encoding method, comprising: determining the residual values ​​of the AC coefficients of a current transform block, wherein the current transform block belongs to a first RAHT layer, and the first RAHT layer is any one of multiple RAHT layers of the current frame point cloud; determining the reconstructed values ​​of the AC coefficients of the current transform block based on the residual values ​​of the AC coefficients of the current transform block; determining the reconstructed attribute values ​​of the current transform block based on the reconstructed values ​​of the AC coefficients of the current transform block; determining whether to perform a filtering operation on the first RAHT layer; and if it is determined that a filtering operation will be performed on the first RAHT layer, then filtering the reconstructed attribute values ​​of the current transform block based on a first set of filtering coefficients.

[0087] This application embodiment also provides a point cloud decoding method, including: parsing the bitstream, determining the residual values ​​of the AC coefficients of the current transform block, wherein the current transform block belongs to a first RAHT layer, and the first RAHT layer is any one of multiple RAHT layers of the current frame point cloud; determining the reconstructed values ​​of the AC coefficients of the current transform block based on the residual values ​​of the AC coefficients of the current transform block; determining the reconstructed attribute values ​​of the current transform block based on the reconstructed values ​​of the AC coefficients of the current transform block; determining whether to perform a filtering operation on the first RAHT layer; and if it is determined that a filtering operation will be performed on the first RAHT layer, then filtering the reconstructed attribute values ​​of the current transform block based on a first set of filtering coefficients.

[0088] The embodiments of this application filter the reconstructed attribute values ​​in the RAHT layer to reduce the distortion of attribute information, thereby helping to improve the encoding and decoding efficiency of attribute information.

[0089] The point cloud decoding method provided in the embodiments of this application will be described in detail below with reference to the accompanying drawings.

[0090] Figure 9 is a flowchart illustrating the point cloud decoding method provided in an embodiment of this application. The decoding method in Figure 9 can be applied to a decoder. The decoding method in Figure 9 can be used to decode the attribute information of a point cloud. In some implementations, this decoding method can be applied to G-PCC. Alternatively, in other implementations, this decoding method can be applied to a geometry-based solid content test model (GES-TM). GES-TM is an encoding and decoding framework proposed for dense point clouds (such as point clouds acquired in augmented reality (AR) or virtual reality (VR) scenes).

[0091] Referring to Figure 9, in step S910, the bitstream is parsed to determine the residual values ​​of the AC coefficients of the current transform block. Here, the current transform block belongs to the first RAHT layer.

[0092] A RAHT layer can also be called a RAHT decoding layer, a RAHT attribute decoding layer, or a RAHT transform layer. The first RAHT layer can be determined based on at least one partitioning (or sampling) of the preceding layer along the X, Y, and Z directions. The first RAHT layer can be any one of the multiple RAHT layers in the current frame's point cloud. The first layer can be located at any level among the upper, middle, and lower RAHT layers.

[0093] The current transform block can be understood as a transform block (or sub-block) in the RAHT layer, and the attribute information corresponding to the previous transform block can correspond to the attribute information of the points in the point cloud.

[0094] AC coefficients can also be called attribute transformation coefficients, AC coefficients, high-frequency coefficients, AC high-frequency coefficients, or high-pass coefficients.

[0095] In step S920, the reconstructed values ​​of the AC coefficients of the current transform block are determined based on the residual values ​​of the AC coefficients of the current transform block.

[0096] In some implementations, step S920 may include: determining the predicted value of the AC coefficients of the current transform block based on the reconstructed value of the AC coefficients of the predicted block; and then determining the reconstructed value of the AC coefficients of the current transform block based on the predicted value of the AC coefficients of the current transform block and the residual value of the AC coefficients of the current transform block. For example, the sum of the predicted value of the AC coefficients of the current transform block and the residual value of the AC coefficients of the current transform block can be used as the reconstructed value of the AC coefficients of the current transform block.

[0097] The prediction block mentioned above can be an inter-frame prediction block, i.e., a reference block within a reference frame. For example, after the reference frame undergoes a RAHT transform, the AC coefficients of the reference block can be used as the predicted values ​​of the AC coefficients of the current transform block. Alternatively, the prediction block can also be a prediction block determined based on upsampling. For example, the prediction block can be an intra-frame prediction block predicted based on the reconstruction attribute values ​​of the current block's parent block and its coplanar and collinear neighboring blocks.

[0098] In step S930, the reconstruction attribute value of the current transform block is determined based on the reconstruction value of the AC coefficient of the current transform block.

[0099] In some implementations, step S930 may include: performing an inverse RAHT transformation based on the reconstructed values ​​of the AC coefficients and DC coefficients of the current transform block to determine the reconstructed attribute values ​​of the current transform block.

[0100] In step S940, it is determined whether to perform a filtering operation on the first RAHT layer.

[0101] This application does not specifically limit the method for determining whether to filter the first RAHT layer in its embodiments. For example, at the encoding / decoding end, it can determine whether to perform filtering on the first RAHT layer based on default predefined rules. In some implementations, it can also indicate whether to perform filtering on the first RAHT layer based on auxiliary information of the bitstream (such as syntax elements).

[0102] In some implementations, the first identifier information obtained by parsing the bitstream can be used to determine whether to perform filtering operations on the first RAHT layer.

[0103] The first identification information can be determined based on the rate-distortion costs corresponding to the first RAHT layer before and after filtering, respectively. The calculation method of rate-distortion cost can be found in the description on the encoding side, and will not be detailed here.

[0104] The reconstructed attribute values ​​corresponding to the first RAHT layer can be various types of attribute information. For example, they can be attribute information of the Y component, the U component, or the V component. In other words, the filtering in Figure 9 can be applied to any of the attribute information of the above components.

[0105] The first identification information mentioned above can be used to determine whether the reconstruction attribute value of one component in the first RAHT layer is filtered. In this case, the three identification information can be used to determine whether the reconstruction attribute values ​​of the three components are filtered respectively.

[0106] Alternatively, the first identification information can also be used to simultaneously determine whether the reconstructed attribute values ​​of the two components in the first RAHT layer are filtered to save bitstream overhead. For example, research has found that the residual distributions of the attribute information of the U component and the V component are similar. Therefore, at the decoding end, one identification information can be used to simultaneously indicate whether the reconstructed attribute values ​​of the U component and the V component in the first RAHT layer are filtered. Another identification information can be used to separately indicate whether the reconstructed attribute value of the Y component in the first RAHT layer is filtered.

[0107] Referring again to Figure 9, in step S950, if it is determined that a filtering operation will be performed on the first RAHT layer, the reconstructed attribute values ​​of the current transform block are filtered according to the first set of filtering coefficients.

[0108] The embodiments of this application do not limit the type of filtering in step S950. For example, the filtering in step S950 can be Wiener filtering. Alternatively, the filtering in step S950 can also be any other weighted calculation of the current reconstructed attribute value based on the neighborhood-based reconstructed attribute value.

[0109] The first set of filter coefficients mentioned above can be determined by the syntax elements in the bitstream. To save bitstream overhead, in some implementations, the first set of filters can be multiplexed onto the filtering of reconstructed attribute values ​​of multiple RAHT layers in a multi-frame point cloud. Here, the multi-frame point cloud can be a sequence of consecutive point cloud frames.

[0110] For example, suppose that in the decoding order, the current frame point cloud is the Kth frame point cloud, and the Kth frame point cloud and the K+Nth frame point cloud are two frames in a sequence of consecutive point cloud frames, where K and N are both positive integers. For instance, the Kth frame point cloud mentioned above can be an I-frame point cloud, and the K+Nth frame point cloud can be a P-frame point cloud, where the Kth frame point cloud and the K+Nth frame point cloud belong to the same set of frames.

[0111] Accordingly, the decoding method shown in Figure 9 may further include: performing a filtering operation on the second RAHT layer of the point cloud in the K+Nth frame according to the first set of filtering coefficients. That is, a set of filtering coefficients can be multiplexed onto a sequence of consecutive point cloud frames to save bitstream overhead. The stationarity of attribute values ​​between consecutive point cloud frames in a sequence is more similar, and therefore the filtering coefficients will also be more similar. Thus, using the same set of filtering coefficients for a sequence of consecutive point cloud frames can improve the filtering effect and thereby enhance decoding performance. It should be understood that the geometric position information of the first RAHT layer corresponds to the geometric position information of the second RAHT layer. This geometric position information may include three-dimensional coordinate information and / or the position information of the RAHT layer.

[0112] Of course, the second RAHT layer of the point cloud in frame K+N can also avoid reusing the first set of filtering coefficients and instead use a set of filtering coefficients (such as the second set of filtering coefficients) determined based on the reconstructed attribute values ​​of the point cloud in that frame. The second set of filtering coefficients can also be determined through syntax elements in the bitstream. This approach can improve the filtering effect.

[0113] In related technologies, the filter coefficients written to the bitstream are usually decimals, and the range of floating-point numbers is almost unlimited. This requires a higher bitrate to encode the filter coefficients.

[0114] To further reduce bitstream overhead, the decoding method shown in Figure 9 can also include: parsing the bitstream to determine the third set of filter coefficients, where the values ​​in the third set of filter coefficients are integers; then, performing an inverse rounding operation on the third set of filter coefficients to determine the first set of filter coefficients. In this way, the values ​​of the filter coefficients parsed from the bitstream can be integers, thus avoiding the encoding and decoding of floating-point numbers and thereby saving bitstream overhead.

[0115] Furthermore, to ensure that the parsed filter coefficients are closer to the filter coefficients encoded into the bitstream, embodiments of this application can also use different quantization parameters to dequantize the quantized filter coefficients at different bitrates. In some implementations, determining the third set of filter coefficients may include: parsing the bitstream to determine the quantized filter coefficients; if the bitrate of the bitstream belongs to a first bitrate range, then dequantizing the quantized filter coefficients according to the first quantization parameter to determine the third set of filter coefficients; or, if the bitrate of the bitstream belongs to a second bitrate range, then dequantizing the quantized filter coefficients according to the second quantization parameter to determine the third set of filter coefficients.

[0116] The first bitrate range (or second bitrate range) mentioned above can be, for example, r01 and r02 bitrates, or r03 and r04 bitrates, or r05 and r06 bitrates. The following description, in conjunction with Figure 10, exemplarily illustrates the encoding and decoding method for the filter coefficients provided in this application.

[0117] As shown in Figure 10, the three autocorrelation coefficients in the filter coefficients are all decimals. First, the three autocorrelation coefficients are multiplied by 128 and rounded down. Then, for the first autocorrelation coefficient (0.914815), we subtract the integer value from 128 to further remove redundancy. Next, for the three integer autocorrelation coefficients, we perform further quantization. The value of the quantization parameter q is determined by the bitrate. At bitrates r01 and r02, q = 4; at bitrates r03 and r04, q = 2; and at bitrates r05 and r06, q = 1. The final quantized filter coefficients are 5, 3, and 2 as shown in Figure 10, and they are entropy encoded. During filter coefficient reconstruction at the encoding end and decoding at the decoding end, 5, 3, and 2 are multiplied by the quantization parameter q. Then, for the first autocorrelation coefficient (0.914815), we subtract the dequantized integer value from 128, and then divide by 128 to obtain the reconstructed filter coefficients.

[0118] As mentioned earlier, the decision to perform filtering on the first RAHT layer can be based on the first identifier information. In the decoding method shown in Figure 9, the decision to enable filtering on the current point cloud can also be based on the identifier information. In some implementations, the bitstream can be parsed to determine the second identifier information. This second identifier information is used to indicate whether filtering is enabled on the current point cloud.

[0119] In this embodiment, the first identification information can be carried in the attribute block header (ABH). Additionally, the ABH can also carry the filtering coefficients corresponding to the first RAHT layer. The second identification information can be carried in the attribute parameter set (APS).

[0120] The following describes several possible ways to represent the first and second identification information.

[0121] For example, the first identifier information can be represented by Wiener_flag_N (of course, the first identifier information can also be represented by any other letter and / or number). For example, the first identifier information can include a first value (such as 1 or true) and a second value (such as 0 or false). If the first identifier information is the first value, the first RAHT layer performs a filtering operation; if the first identifier information is the first value, the first RAHT layer does not perform a filtering operation. Furthermore, a separate identifier information can be set for the reconstruction attribute values ​​of different components. For example, Wiener_flag_Y, Wiener_flag_Cb, and Wiener_flag_Cr can be used to indicate whether filtering is performed on the reconstruction attribute values ​​of the Y component, U component, and V component corresponding to the first RAHT layer, respectively.

[0122] For example, the second flag can be represented by `enable_Wiener_flag` (of course, the second flag can also be represented by any other letters and / or numbers). For instance, the second flag can include a first value (such as 1 or true) and a second value (such as 0 or false). If the second flag is the first value, it indicates that filtering is enabled in the current point cloud; if the second flag is the second value, it indicates that filtering is disabled in the current point cloud.

[0123] In some implementations, the encoding / decoding method provided in this application can be applied to radar point clouds. In this case, the filtered target reconstruction attribute values ​​only include the reconstruction attribute values ​​corresponding to reflectivity.

[0124] For example, Figure 11 shows a schematic diagram of the position of parameter information in the bitstream structure. As shown in Figure 11, APS stores the identifier information enable_Wiener_flag to indicate whether filtering is enabled in the current point cloud; coefficients stores the residuals of the AC coefficients of each RAHT layer to recover the reconstructed attribute values; ABH stores Wiener_flag_[3][layer] to indicate whether filtering is performed on the reconstructed attribute values ​​of the three components of each RAHT layer.

[0125] In some implementations, the first set of filter coefficients may be correlated with the reconstruction attribute values ​​of the current transform block and at least one neighboring transform block. Here, correlation refers to the filter coefficients determined at the encoding end using the reconstruction attribute values ​​of the current transform block and at least one neighboring transform block.

[0126] At least one neighboring transform block mentioned above can be determined based on the geometric position information of the current transform block and the geometric position information of its neighbors. The geometric position information here includes Morton code and / or three-dimensional coordinate values. The following description, using Figure 12 as an example, exemplifies the method of finding neighboring transform blocks based on Morton code in this application.

[0127] For example, Figure 12 shows a schematic diagram of a transform block in a RAHT layer. As shown in Figure 12, within each RAHT layer of the RAHT transform, there are many transform blocks containing 2×2×2 sub-blocks. First, we need to find the k neighbor transform blocks of each transform block within the reconstructed attribute block. The neighbor transform blocks are searched according to the Morton code order within the block. As shown in Figure 12, the sub-blocks within the parent transform block have been sorted according to the Morton code order during the RAHT transform process. We assume that four sub-blocks within a parent transform block in Figure 12 are already occupied (referred to as 0, 1, 3, 5 in Morton code order). Now, for these four occupied sub-blocks, we search for their k neighbor sub-blocks, assuming k = 3. The search method starts from the current sub-block and follows the Morton code order. The three neighboring sub-blocks of sub-block 0 are 0, 1, 3; the three neighboring sub-blocks of sub-block 1 are 1, 3, 5; the three neighboring sub-blocks of sub-block 3 are 3, 5, 0; and the three neighboring sub-blocks of sub-block 5 are 5, 0, 1. The scheme for finding neighboring sub-blocks is consistent across all sub-blocks in this layer. Ultimately, we can obtain the reconstructed attribute values ​​of the three nearest neighboring sub-blocks for each sub-block.

[0128] As mentioned earlier, the filtering method in Figure 9 can be Wiener filtering. To aid understanding, the principle of Wiener filtering will be explained in detail below.

[0129] The Wiener filter, proposed by mathematician Norbert Wiener, is a linear filter that uses the least squares criterion for optimality. Under certain constraints, it minimizes the square of the difference between its output and a given function (usually called the desired output). Through mathematical operations, this can ultimately be transformed into a problem of solving a Tobleitz equation.

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

[0131] The matrix form is: y(n)=H(m)×X(n) (1-11)

[0132] Given the desired signal d, we can calculate the error between the known signal and the desired signal: e(n)=d(n)―y(n)=d(n)―H(m)×X(n),m=0,1,...M (1-12)

[0133] The Wiener filter uses the minimum mean square error as its objective function, therefore, let the objective function be: Min E(e(n)) 2 )=E[(d(n)―H(m)×X(n)) 2 (1-13)

[0134] When the filter coefficients are optimal, the derivative of the objective function with respect to the coefficients should be 0, that is: 2E[(d(n)―H(m)×X(n))]×X(n)=0 E[d(n)X(n)]―H(m)E[X(n)X(n)]=0

[0135] The above formula can be expressed as: Rxd―H×Rxx=0 (1-15)

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

[0137] Therefore, from the Wiener-Hough equation, we have: H = Rxx ―1 ×Rxd (1-16)

[0138] The optimal coefficient H is obtained.

[0139] In this technical solution, the noisy signal and the desired signal correspond to the reconstructed point cloud and the original point cloud at input, respectively. Let the filter order be k, meaning the optimal coefficients are calculated using the k nearest neighbors (including the point itself) of each point. Let the number of points in the point cloud sequence be n. Matrix P(n,k) represents the color attribute values ​​of the k nearest neighbors of all points in the reconstructed point cloud sequence under this component. Vector S(n) represents the color attribute values ​​of all points in the original point cloud sequence under this component. From the above algorithm, we can obtain:

[0140] Cross-correlation vector B(k): B(k)=P(n,k) T ×S(n) (1-17)

[0141] Autocorrelation matrix A(k,k): A(k,k)=P(n,k) T ×P(n,k) (1-18)

[0142] From the Wiener-Hough equations, the optimal coefficient (vector) H(k) is: H(k) = A(k,k) ―1 ×B(k) (1-19)

[0143] What is obtained is the Wiener coefficient H of the k-th order filter under this component.

[0144] Similarly, by applying H to the reconstructed point cloud sequence, i.e., matrix P, the original sequence (the attribute value R(n) of this component) can be recovered to the maximum extent, that is: R(n)=P(n,k)×H(k) (1-21)

[0145] The test results obtained from testing the encoding and decoding method provided in the embodiments of this application will be introduced below to verify the performance improvement brought about by the embodiments of this application.

[0146] Table 1: Test results obtained from the encoding / decoding method based on the embodiments of this application under C1 conditions.

[0147] Table 2: Test results obtained by the encoding / decoding method based on the embodiments of this application under C2 conditions

[0148] In Tables 1 and 2, condition C1 represents a lossless geometry, lossy attribute coding scheme, and condition C2 represents a lossy geometry, lossy attribute coding scheme. In the tables, End-to-End BD-AttrRate represents the BD-Rate of end-to-end attribute values ​​relative to the attribute bitstream, and End-to-End BD-TotalRate represents the BD-Rate of end-to-end attribute values ​​relative to the total bitstream. BD-Rate reflects the reduction in bitrate at average PSNR compared to the original method. 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, the greater the decrease in BD-Rate, the better the compression effect. The Cat2 dataset consists of multi-frame dense point clouds, divided into three classes: Cat2-A, Cat2-B, and Cat2-C. Finally, the Overall Average is the average of the test results for all sequences.

[0149] This embodiment was executed on the G-PCC reference software Ges-TM V7.0-rc1, and tested under CTC conditions C1 and C2, with the number of neighboring blocks participating in filtering k=3. The test results are shown in Tables 1 and 2 (since CW is a lossless coding condition and does not require filtering, the experimental results under CW are not shown). Compared with related technologies, this embodiment achieved BD-attrRate gains of -0.1%, -0.8%, and -0.6% on the Luma, Chroma Cb, and Chroma Cr components of the Cat2 dataset under Ges-TM and CTC-C1 test conditions, respectively, and BD-totalRate gains of -0.2%, -1.2%, and -1.1% on the Luma, Chroma Cb, and Chroma Cr components of the Cat2 dataset under CTC-C2 test conditions, respectively.

[0150] The point cloud decoding method provided by the embodiments of this application has been described in detail above with reference to Figure 9. The point cloud encoding method provided by the embodiments of this application will be described in detail below with reference to Figure 13.

[0151] Figure 13 is a flowchart illustrating the point cloud encoding method provided in an embodiment of this application. The encoding method in Figure 13 can be applied to an encoder. The encoding method in Figure 13 can be used to encode the attribute information of a point cloud. In some implementations, this encoding method can be applied to G-PCC. Alternatively, in other implementations, this encoding method can be applied to a geometry-based solid content test model (GES-TM). GES-TM is an encoding and decoding framework proposed for dense point clouds (such as point clouds acquired in augmented reality (AR) or virtual reality (VR) scenes).

[0152] Referring to Figure 13, in step S1310, the residual values ​​of the AC coefficients of the current transform block are determined. Here, the current transform block belongs to the first RAHT layer.

[0153] A RAHT layer can also be called a RAHT decoding layer, a RAHT attribute decoding layer, or a RAHT transform layer. The first RAHT layer can be determined based on at least one partitioning (or sampling) of the preceding layer along the X, Y, and Z directions. The first RAHT layer can be any one of the multiple RAHT layers in the current frame's point cloud. The first layer can be located at any level among the upper, middle, and lower RAHT layers.

[0154] The current transform block can be understood as a transform block (or sub-block) in the RAHT layer, and the attribute information corresponding to the previous transform block can correspond to the attribute information of the points in the point cloud.

[0155] AC coefficients can also be called attribute transformation coefficients, AC coefficients, high-frequency coefficients, AC high-frequency coefficients, or high-pass coefficients.

[0156] In some implementations, the method for determining the residual values ​​of the AC coefficients of the current transform block may include: performing a RAHT transformation on the original attribute values ​​of the current transform block to determine the original values ​​of the AC coefficients of the current transform block; performing a RAHT transformation on the reconstructed attribute values ​​of the prediction block to determine the predicted values ​​of the AC coefficients of the current transform block; and determining the residual values ​​of the AC coefficients of the current transform block based on the original values ​​and the predicted values ​​of the AC coefficients of the current transform block.

[0157] The prediction block mentioned above can be an inter-frame prediction block, i.e., a reference block within a reference frame. For example, after the reference frame undergoes a RAHT transform, the AC coefficients of the reference block can be used as the predicted values ​​of the AC coefficients of the current transform block. Alternatively, the prediction block can also be a prediction block determined based on upsampling. For example, the prediction block can be an intra-frame prediction block predicted based on the reconstruction attribute values ​​of the current block's parent block and its coplanar and collinear neighboring blocks.

[0158] In step S1320, the reconstructed values ​​of the AC coefficients of the current transform block are determined based on the residual values ​​of the AC coefficients of the current transform block.

[0159] For example, the sum of the predicted AC coefficients of the current transform block and the residual AC coefficients of the current transform block can be used as the reconstructed AC coefficients of the current transform block.

[0160] In step S1330, the reconstruction attribute value of the current transform block is determined based on the reconstruction value of the AC coefficient of the current transform block.

[0161] In some implementations, step S1330 may include: performing an inverse RAHT transformation based on the reconstructed AC coefficients and DC coefficients of the current transform block to determine the reconstructed attribute values ​​of the current transform block.

[0162] In step S1340, it is determined whether to perform a filtering operation on the first RAHT layer.

[0163] This application does not specifically limit the method for determining whether to filter the first RAHT layer. For example, at the encoding / decoding end, it can determine whether to perform filtering on the first RAHT layer based on default predefined rules. In some implementations, it can also determine whether to perform filtering on the first RAHT layer based on rate-distortion cost.

[0164] For example, the first rate-distortion cost may be determined according to the reconstructed attribute values of one or more transform blocks before filtering; then, the second rate-distortion cost may be determined according to the reconstructed attribute values of one or more transform blocks after filtering; next, whether to perform a filtering operation on the first RAHT layer is determined according to the first rate-distortion cost and the second rate-distortion cost. Exemplarily, the first rate-distortion cost and the second rate-distortion cost are determined according to the rate-distortion optimization algorithm, and then their magnitudes are compared; if the first rate-distortion cost is greater than the second rate-distortion cost, it is determined to perform a filtering operation on the first RAHT layer; if the first rate-distortion cost is less than the second rate-distortion cost, it is determined not to perform a filtering operation on the first RAHT layer.

[0165] Exemplarily, the first rate-distortion cost and the second rate-distortion cost may be represented based on the following formula:

[0166] where Dist0 is the first rate-distortion cost, Dist1 is the second rate-distortion cost, attrOrg i is the original attribute value of the i-th transform block, attrRec i is the reconstructed attribute value of the i-th transform block before filtering, and attrWiener i is the reconstructed attribute value of the i-th transform block after filtering.

[0167] If Dist1>Dist0, it indicates that the distortion increases after filtering, and the filtering operation can be cancelled; if Dist1<Dist0, it indicates that the distortion decreases after filtering, and the filtering operation can be performed.

[0168] Further, the bitrates of the filtering coefficients may also be considered, so as to obtain the bitrates R0 and R1 before and after filtering, and calculate the rate-distortion cost: RDcost = Dist + λ·R (1―24)

[0169] where RDcost0 is the rate-distortion cost before filtering, and RDcost1 is the rate-distortion cost after filtering. If RDcost1<RDcost0, it indicates that the rate-distortion cost after filtering is small, and the filtering operation is performed; if RDcost1>RDcost0, it indicates that the rate-distortion cost after filtering is large, and the filtering operation is cancelled.

[0170] In some implementation manners, the first identification information may be written into the code stream, and the first identification information here may be used to indicate whether to perform a filtering operation on the first RAHT layer to guide the filtering on the decoding side.

[0171] The first identification information may determine the indication result based on the rate-distortion costs corresponding to the first RAHT layer before filtering and the first RAHT layer after filtering respectively.

[0172] The reconstructed attribute values ​​corresponding to the first RAHT layer can be various types of attribute information. For example, they can be attribute information of the Y component, the U component, or the V component. In other words, the filtering in Figure 13 can be applied to any of the attribute information of the above components.

[0173] The first identification information mentioned above can be used to determine whether the reconstruction attribute value of one component in the first RAHT layer is filtered. In this case, the three identification information can be used to determine whether the reconstruction attribute values ​​of the three components are filtered respectively.

[0174] Alternatively, the first identification information can also be used to simultaneously determine whether the reconstructed attribute values ​​of the two components in the first RAHT layer are filtered to save bitstream overhead. For example, research has found that the residual distributions of the attribute information of the U component and the V component are similar. Therefore, at the decoding end, one identification information can be used to simultaneously indicate whether the reconstructed attribute values ​​of the U component and the V component in the first RAHT layer are filtered. Another identification information can be used to separately indicate whether the reconstructed attribute value of the Y component in the first RAHT layer is filtered.

[0175] Referring again to Figure 13, in step S1350, if it is determined that a filtering operation will be performed on the first RAHT layer, the reconstructed attribute values ​​of the current transform block are filtered according to the first set of filtering coefficients.

[0176] The embodiments of this application do not limit the type of filtering in step S1350. For example, the filtering in step S1350 can be Wiener filtering. Alternatively, the filtering in step S1350 can also be any other weighted calculation of the reconstructed attribute value based on the neighborhood-based reconstructed attribute value and the current reconstructed attribute value.

[0177] To reduce computational load at the encoding end and save bitstream overhead, some implementations can multiplex the first set of filters onto the filtering of reconstructed attribute values ​​of multiple RAHT layers in multi-frame point clouds. Here, multi-frame point clouds can be a sequence of consecutive point cloud frames.

[0178] For example, suppose that in terms of encoding order, the current frame point cloud is the Kth frame point cloud, and the Kth frame point cloud and the K+Nth frame point cloud are two frames in a sequence of consecutive point cloud frames, where K and N are both positive integers. For instance, the Kth frame point cloud mentioned above can be an I-frame point cloud, and the K+Nth frame point cloud can be a P-frame point cloud, where the Kth frame point cloud and the K+Nth frame point cloud belong to the same set of frames.

[0179] Accordingly, the encoding method shown in Figure 13 may further include: performing a filtering operation on the second RAHT layer of the point cloud in the K+Nth frame according to the first set of filtering coefficients. That is, a set of filtering coefficients can be multiplexed onto a sequence of consecutive point cloud frames to save bitstream overhead. The stationarity of attribute values ​​between consecutive point cloud frames in a sequence is more similar, and therefore the filtering coefficients will also be more similar. Thus, using the same set of filtering coefficients for a sequence of consecutive point cloud frames can improve the filtering effect and thereby enhance encoding performance. It should be understood that the geometric position information of the first RAHT layer corresponds to the geometric position information of the second RAHT layer. This geometric position information may include three-dimensional coordinate information and / or the position information of the RAHT layer.

[0180] Of course, the second RAHT layer of the point cloud in frame K+N can also avoid reusing the first set of filtering coefficients and instead use a set of filtering coefficients (such as the second set of filtering coefficients) determined based on the reconstructed attribute values ​​of the point cloud in that frame. This approach can improve the filtering effect.

[0181] In related technologies, the filter coefficients written to the bitstream are usually decimals, and the range of floating-point numbers is almost unlimited. This requires a higher bitrate to encode the filter coefficients.

[0182] To further reduce bitstream overhead, the encoding method shown in Figure 13 may further include: determining the first set of filter coefficients; then, performing a rounding operation on the values ​​of the first set of filter coefficients to determine the third set of filter coefficients; and finally, writing the third set of filter coefficients into the bitstream. In this way, the values ​​of the filter coefficients encoded into the bitstream can be integers, thus avoiding the encoding and decoding of floating-point numbers and saving bitstream overhead.

[0183] Furthermore, to ensure that the parsed filter coefficients are closer to the filter coefficients encoded into the bitstream, embodiments of this application can also use different quantization parameters to dequantize the quantized filter coefficients at different bitrates. In some implementations, the method of writing the third set of filter coefficients into the bitstream can include: if the bitrate of the bitstream belongs to a first bitrate range, then quantize the third set of filter coefficients according to the first quantization parameter to determine the quantized filter coefficients; or, if the bitrate of the bitstream belongs to a second bitrate range, then quantize the third set of filter coefficients according to the second quantization parameter to determine the quantized filter coefficients. The first bitrate range (or second bitrate range) mentioned above can be, for example, r01 bitrate and r02 bitrate, or it can also be r03 bitrate and r04 bitrate, or it can also be r05 bitrate and r06 bitrate.

[0184] The following description, in conjunction with Figure 10, provides an exemplary description of the encoding and decoding method for the filter coefficients provided in the embodiments of this application.

[0185] As shown in Figure 10, the three autocorrelation coefficients in the filter coefficients are all decimals. First, the three autocorrelation coefficients are multiplied by 128 and rounded down. Then, for the first autocorrelation coefficient (0.914815), we subtract the integer value from 128 to further remove redundancy. Next, for the three integer autocorrelation coefficients, we perform further quantization. The value of the quantization parameter q is determined by the bitrate. At bitrates r01 and r02, q = 4; at bitrates r03 and r04, q = 2; and at bitrates r05 and r06, q = 1. The final quantized filter coefficients are 5, 3, and 2 as shown in Figure 10, and they are entropy encoded. During filter coefficient reconstruction at the encoding end and decoding at the decoding end, 5, 3, and 2 are multiplied by the quantization parameter q. Then, for the first autocorrelation coefficient (0.914815), we subtract the dequantized integer value from 128, and then divide by 128 to obtain the reconstructed filter coefficients.

[0186] As mentioned earlier, the first identifier information can guide the decoding side on whether to perform filtering operations on the first RAHT layer. In the encoding method shown in Figure 13, the identifier information can also guide the decoding side on whether to enable filtering for the current point cloud. In some implementations, the second identifier information can be written into the bitstream. Here, the second identifier information is used to indicate whether to enable filtering for the current point cloud to guide the filtering on the decoding side.

[0187] In this embodiment, the first identification information can be carried in the attribute block header (ABH). Additionally, the ABH can also carry the filtering coefficients corresponding to the first RAHT layer. The second identification information can be carried in the attribute parameter set (APS).

[0188] The following describes several possible ways to represent the first and second identification information.

[0189] For example, the first identifier information can be represented by Wiener_flag_N (of course, the first identifier information can also be represented by any other letter and / or number). For example, the first identifier information can include a first value (such as 1 or true) and a second value (such as 0 or false). If the first identifier information is the first value, the first RAHT layer performs a filtering operation; if the first identifier information is the first value, the first RAHT layer does not perform a filtering operation. Furthermore, a separate identifier information can be set for the reconstruction attribute values ​​of different components. For example, Wiener_flag_Y, Wiener_flag_Cb, and Wiener_flag_Cr can be used to indicate whether filtering is performed on the reconstruction attribute values ​​of the Y component, U component, and V component corresponding to the first RAHT layer, respectively.

[0190] For example, the second flag can be represented by `enable_Wiener_flag` (of course, the second flag can also be represented by any other letters and / or numbers). For instance, the second flag can include a first value (such as 1 or true) and a second value (such as 0 or false). If the second flag is the first value, it indicates that filtering is enabled in the current point cloud; if the second flag is the second value, it indicates that filtering is disabled in the current point cloud.

[0191] In some implementations, the encoding / decoding method provided in this application can be applied to radar point clouds. In this case, the filtered target reconstruction attribute values ​​only include the reconstruction attribute values ​​corresponding to reflectivity.

[0192] For example, Figure 11 shows a schematic diagram of the position of parameter information in the bitstream structure. As shown in Figure 11, APS stores the identifier information enable_Wiener_flag to indicate whether filtering is enabled in the current point cloud; coefficients stores the residuals of the AC coefficients of each RAHT layer to recover the reconstructed attribute values; ABH stores Wiener_flag_[3][layer] to indicate whether filtering is performed on the reconstructed attribute values ​​of the three components of each RAHT layer.

[0193] In some implementations, the first set of filter coefficients may be correlated with the reconstruction attribute values ​​of the current transform block and at least one neighboring transform block. Here, correlation refers to the filter coefficients determined at the encoding end using the reconstruction attribute values ​​of the current transform block and at least one neighboring transform block.

[0194] At least one neighboring transform block mentioned above can be determined based on the geometric position information of the current transform block and the geometric position information of its neighbors. The geometric position information here includes Morton code and / or three-dimensional coordinate values. The following description, using Figure 12 as an example, exemplifies the method of finding neighboring transform blocks based on Morton code in this application.

[0195] For example, Figure 12 shows a schematic diagram of a transform block in a RAHT layer. As shown in Figure 12, within each RAHT layer of the RAHT transform, there are many transform blocks containing 2×2×2 sub-blocks. First, we need to find the k neighbor transform blocks of each transform block within the reconstructed attribute block. The neighbor transform blocks are searched according to the Morton code order within the block. As shown in Figure 12, the sub-blocks within the parent transform block have been sorted according to the Morton code order during the RAHT transform process. We assume that four sub-blocks within a parent transform block in Figure 12 are already occupied (referred to as 0, 1, 3, 5 in Morton code order). Now, for these four occupied sub-blocks, we search for their k neighbor sub-blocks, assuming k = 3. The search method starts from the current sub-block and follows the Morton code order. The three neighboring sub-blocks of sub-block 0 are 0, 1, 3; the three neighboring sub-blocks of sub-block 1 are 1, 3, 5; the three neighboring sub-blocks of sub-block 3 are 3, 5, 0; and the three neighboring sub-blocks of sub-block 5 are 5, 0, 1. The scheme for finding neighboring sub-blocks is consistent across all sub-blocks in this layer. Ultimately, we can obtain the reconstructed attribute values ​​of the three nearest neighboring sub-blocks for each sub-block.

[0196] As mentioned earlier, the filtering method in Figure 13 can be Wiener filtering. To aid understanding, the principle of Wiener filtering will be explained in detail below.

[0197] The Wiener filter, proposed by mathematician Norbert Wiener, is a linear filter that uses the least squares criterion for optimality. Under certain constraints, it minimizes the square of the difference between its output and a given function (usually called the desired output). Through mathematical operations, this can ultimately be transformed into a problem of solving a Tobleitz equation.

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

[0199] The matrix form is: y(n)=H(m)×X(n) (1-26)

[0200] Given the desired signal d, the error between the known signal and the desired signal can be calculated as follows: e(n) = d(n) - y(n) = d(n) - H(m) × X(n), m = 0, 1, ..., M (1-27)

[0201] The Wiener filter uses the minimum mean square error as its objective function, therefore, let the objective function be: Min E(e(n)) 2 )=E[(d(n)―H(m)×X(n)) 2 (1-28)

[0202] When the filter coefficients are optimal, the derivative of the objective function with respect to the coefficients should be 0, that is: 2E[(d(n)―H(m)×X(n))]×X(n)=0 E[d(n)X(n)]―H(m)E[X(n)X(n)]=0

[0203] The above formula can be expressed as: Rxd―H×Rxx=0 (1-30)

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

[0205] Therefore, from the Wiener-Hough equation, we have: H = Rxx ―1 ×Rxd (1-31)

[0206] The optimal coefficient H is obtained.

[0207] In this technical solution, the noisy signal and the desired signal correspond to the reconstructed point cloud and the original point cloud at input, respectively. Let the filter order be k, meaning the optimal coefficients are calculated using the k nearest neighbors (including the point itself) of each point. Let the number of points in the point cloud sequence be n. Matrix P(n,k) represents the color attribute values ​​of the k nearest neighbors of all points in the reconstructed point cloud sequence under this component. Vector S(n) represents the color attribute values ​​of all points in the original point cloud sequence under this component. From the above algorithm, we can obtain:

[0208] Cross-correlation vector B(k): B(k)=P(n,k) T ×S(n) (1-32)

[0209] Autocorrelation matrix A(k,k): A(k,k)=P(n,k) T ×P(n,k) (1-33)

[0210] From the Wiener-Hough equations, the optimal coefficient (vector) H(k) is: H(k) = A(k,k) ―1 ×B(k) (1-34)

[0211] What is obtained is the Wiener coefficient H of the k-th order filter under this component.

[0212] Similarly, by applying H to the reconstructed point cloud sequence, i.e., matrix P, the original sequence (the attribute value R(n) of this component) can be recovered to the maximum extent, that is: R(n)=P(n,k)×H(k) (1-35)

[0213] Based on the preceding introduction to Wiener filtering, in some implementations, determining the first set of filter coefficients may include: determining the autocorrelation matrix and cross-correlation matrix based on the reconstruction attribute values ​​of the current transform block and the reconstruction attribute values ​​of at least one neighboring transform block; and determining the first set of filter coefficients based on the autocorrelation matrix and cross-correlation matrix. The cross-correlation matrix and autocorrelation matrix can be found in formulas (1-32) and (1-33).

[0214] The embodiments of this application are described in more detail below with specific examples. It should be noted that the examples below are merely to help those skilled in the art understand the embodiments of this application, and are not intended to limit the embodiments of this application to the specific numerical values ​​or scenarios illustrated. Those skilled in the art can obviously make various equivalent modifications or variations based on the examples given below, and such modifications or variations also fall within the scope of the embodiments of this application.

[0215] This example demonstrates a Wiener filtering scheme for attribute information of RAHT transform blocks. As shown in Figure 14, for each layer of the RAHT transform, after completing the transform, coefficient prediction, residual quantization, entropy encoding, and reconstructing the corresponding block attributes, we calculate the neighbor lookup for each sub-block of the reconstructed transform block within this layer, finding its k nearest neighbors, and then perform Wiener filtering. After the operation, we need to perform rate-distortion judgment on the filtered attributes. If the filtered RDcost... filter RDcost less than the reconstruction value rec Then set the wiener flag of this layer. l Set it to 1 and encode it, while also encoding the optimal filter coefficients.

[0216] The following section, with reference to Figures 15 and 16, provides a detailed description of the method flow of this example from the encoding and decoding ends, respectively.

[0217] Figure 15 illustrates the encoding process provided in this example. As shown in Figure 15, in the RAHT algorithm, the original point cloud starts from the root node and undergoes a layer-by-layer RAHT transformation for each 2×2×2 block from top to bottom to obtain transformation coefficients. For each layer, AC coefficient prediction is performed, and the residual values ​​are quantized and entropy encoded. Simultaneously, the encoded coefficients are dequantized, the predicted values ​​are added, and the RAHT inverse transformation is performed to obtain the reconstructed attribute values ​​of each layer's attribute block. For each layer, we find the k nearest neighbors of all sub-blocks of each transformed block, and then perform k-nearest neighbor filtering. After filtering, we need to perform a rate-distortion cost judgment. If the rate-distortion cost of filtering is small and the distortion is small, then the filter flag bit Wiener_flag of this layer is set to 1. If the rate-distortion cost is not met, it is set to 0, and no filtering is performed. When Wiener_flag = 1 and is enabled, we also need to encode k optimal filter coefficients. In addition, since the characteristics of the three color channels Y, Cb, and Cr are different, our filtering method is executed separately for each of the three channels. Each encoder layer needs to encode three color flag bits: Wiener_flag_Y, Wiener_flag_Cb, and Wiener_flag_Cr.

[0218] The bitstream structure is shown in Figure 11. In the original bitstream structure, the coefficients store the residuals of the AC coefficients of each layer for reconstructing the attribute bitstream. The improved bitstream structure needs to add two parts. The first part is to add the high-level control bit enable_Wiener_flag to the attribute control parameter APS to indicate whether the Wiener filter is enabled. Its value of 1 indicates that the proposed scheme is used, and 0 indicates that it is disabled. The second part is in the attribute ABH, which stores the filter usage flag bits Wiener_flag_Y, Wiener_flag_Cb, and Wiener_flag_Cr of each layer's three channels. Its value is 1 / 0, which is used to indicate the filter usage (in Figure 10, Wiener_flag[3][layer] refers to the buffer where the flags are stored in each of the three channels of each layer). In addition, if the value of Wiener_flag is 1, the optimal filter coefficients of k filter taps are also encoded in ABH.

[0219] Figure 16 illustrates the decoding process provided in this example. As shown in Figure 16, the decoding end reads the APS and first decodes the higher-level control bit enable_Wiener_flag. If the value of enable_Wiener_flag is 0, it indicates that the Wiener filtering scheme is not used, and there is no need to decode the flag bit in ABH. If the value of enable_Wiener_flag is 1, it indicates that the Wiener filtering scheme is used, and in this case, it is necessary to decode the flag in attribute ABH.

[0220] Subsequently, in ABH, the parameter matrix Wiener_flag[3][layer] of the flag bits is decoded. Each layer has three flag bits: Wiener_flag_Y, Wiener_flag_Cb, and Wiener_flag_Cr, with values ​​of 1 / 0, used to indicate the filter usage. Next, the coefficient residuals of each layer are decoded, dequantized, and subjected to RAHT inverse transform to reconstruct the attribute blocks of each layer. At the same time, according to the value of Wiener_flag[3], if it is 1, the filter coefficients Wienercoeff[k] of the k nearest neighbors need to be decoded again in ABH, and then the neighbor search and attribute Wiener filtering are performed on each sub-block of this layer; if the value of Wiener_flag[3] is 0, no operation is performed until all layers are processed to obtain the final reconstructed point cloud.

[0221] In the example, the APS in the bitstream structure is read and written directly according to the original program; for Wiener_flag[3] and wiener_coeff[k] in ABH, the specific implementation of the decoding program is as follows:

[0222] This example proposes a Wiener filtering example for RAHT block attributes, which effectively improves the problem of distortion accumulation and propagation in lossy attribute coding of the RAHT algorithm, improves coding efficiency, and achieves quality enhancement at the average bit rate of the reconstructed point cloud at the decoding end.

[0223] The core idea of ​​this example is to perform neighbor lookup and Wiener filtering on the reconstructed attributes at the encoding end to make them closer to the original attributes. In addition, by judging rate-distortion, the post-processing operation for the attribute block is adaptively selected. At the same time, the enable_Wiener_flag and Wiener_flag flag bits are encoded to indicate the specific filtering operation of the decoder, and the Wiener_coeff is encoded to indicate the optimal filtering coefficients, thereby improving the reconstruction quality under the average bit rate of attribute encoding.

[0224] The method embodiments of this application have been described in detail above with reference to Figures 1 to 16. The apparatus embodiments of this application will be described in detail below with reference to Figures 17 to 20. It should be understood that the descriptions of the method embodiments correspond to the descriptions of the apparatus embodiments; therefore, any parts not described in detail can be referred to the preceding method embodiments.

[0225] Figure 17 is a schematic diagram of the structure of a decoder provided in an embodiment of this application. As shown in Figure 17, the decoder 1700 may include a first determining unit 1710, a second determining unit 1720, a third determining unit 1730, a fourth determining unit 1740, and a filtering unit 1750.

[0226] The first determining unit 1710 is configured to parse the bitstream and determine the residual value of the AC coefficient of the current transform block. The current transform block belongs to the first region adaptive hierarchical transform (RAHT) layer, and the first RAHT layer is any one of the multiple RAHT layers of the current frame point cloud.

[0227] The second determining unit 1720 is configured to determine the reconstructed value of the AC coefficients of the current transform block based on the residual value of the AC coefficients of the current transform block.

[0228] The third determining unit 1730 is configured to determine the reconstruction attribute value of the current transform block based on the reconstruction value of the AC coefficient of the current transform block.

[0229] The fourth determining unit 1740 is configured to determine whether to perform a filtering operation on the first RAHT layer.

[0230] The filtering unit 1750 is configured to filter the reconstructed attribute values ​​of the current transform block according to a first set of filtering coefficients if it is determined that a filtering operation will be performed on the first RAHT layer.

[0231] In some implementations, the fourth determining unit 1740 is configured to parse the bitstream, determine the first identification information, and determine whether to perform a filtering operation on the first RAHT layer based on the first identification information.

[0232] In some implementations, the first identification information is used only to determine whether to perform a filtering operation on the first attribute information corresponding to the first RAHT layer; or, the first identification information is used to simultaneously determine whether to perform a filtering operation on the first attribute information and the second attribute information corresponding to the first RAHT layer.

[0233] In some implementations, the decoder 1700 is further configured to parse the bitstream, determine the second identification information, and determine whether to enable filtering for the current point cloud based on the second identification information.

[0234] In some implementations, in terms of decoding order, the current frame point cloud is the Kth frame point cloud, and the Kth frame point cloud and the K+Nth frame point cloud are two frames of point clouds in a sequence of consecutive point cloud frames, where K and N are both positive integers; the decoder 1700 is further configured to: perform a filtering operation on the second RAHT layer of the K+Nth frame point cloud according to the first set of filtering coefficients; or, perform a filtering operation on the second RAHT layer of the K+Nth frame point cloud according to the second set of filtering coefficients; wherein, the geometric position information of the first RAHT layer corresponds to the geometric position information of the second RAHT layer.

[0235] In some implementations, the point cloud of the Kth frame is an I-frame point cloud; and / or, the point cloud of the K+Nth frame is a P-frame point cloud; wherein the point cloud of the Kth frame and the point cloud of the K+Nth frame belong to the same group of frames.

[0236] In some implementations, the first identification information is carried in the attribute block header.

[0237] In some implementations, the second identification information is carried in the attribute control parameter APS.

[0238] In some implementations, the decoder 1700 is further configured to parse the bitstream, determine a third set of filter coefficients, wherein the values ​​in the third set of filter coefficients are integers; and perform an inverse rounding operation on the third set of filter coefficients to determine the first set of filter coefficients.

[0239] In some implementations, the decoder 1700 is further configured to parse the bitstream and determine the quantized filter coefficients; if the bit rate of the bitstream belongs to a first bit rate range, the quantized filter coefficients are dequantized according to a first quantization parameter to determine the third set of filter coefficients; or, if the bit rate of the bitstream belongs to a second bit rate range, the quantized filter coefficients are dequantized according to a second quantization parameter to determine the third set of filter coefficients.

[0240] In some implementations, the first set of filter coefficients is related to the reconstruction attribute value of the current transform block and the reconstruction attribute value of at least one neighboring transform block.

[0241] In some implementations, the at least one neighboring transform block is determined based on the geometric position information of the current transform block and the geometric position information of its neighboring locations.

[0242] In some implementations, the geometric location information includes Morton code and / or three-dimensional coordinate values.

[0243] In some implementations, the filtering is Wiener filtering.

[0244] In some implementations, the second determining unit 1720 is further configured to determine the predicted value of the AC coefficient of the current transform block based on the reconstructed value of the AC coefficient of the predicted block; and to determine the reconstructed value of the AC coefficient of the current transform block based on the predicted value of the AC coefficient of the current transform block and the residual value of the AC coefficient of the current transform block.

[0245] In some implementations, the prediction block is an intra-prediction block determined based on upsampling; or, the prediction block is an inter-prediction block determined based on inter-frame prediction.

[0246] In some implementations, the third determining unit 1730 is further configured to perform RAHT inverse transformation based on the reconstructed AC coefficients and DC coefficients of the current transform block to determine the reconstructed attribute value of the current transform block.

[0247] 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 component. Furthermore, the components in this embodiment can be integrated into a single processing unit, or each unit can exist physically separately, or two or more units can be integrated into a single unit. The integrated unit can be implemented in hardware or as a software functional module.

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

[0249] Therefore, this application provides a computer-readable storage medium for use in a decoder 1700. The computer-readable storage medium stores a computer program that, when executed by a processor, implements the decoding method described in any of the foregoing embodiments.

[0250] Based on the composition of the decoder 1700 and the computer-readable storage medium described above, refer to Figure 18, which shows a schematic diagram of the specific hardware structure of the encoder 1700 provided in this embodiment of the application. As shown in Figure 18, the encoder 1700 may include: a communication interface 1810, a memory 1820, and a processor 1830; the various components are coupled together through a bus system 1840. It is understood that the bus system 1840 is used to realize the connection and communication between these components. In addition to a data bus, the bus system 1840 also includes a power bus, a control bus, and a status signal bus. However, for clarity, all buses are labeled as bus system 1840 in Figure 18.

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

[0252] The 1820 memory is used to store computer programs;

[0253] Processor 1830, when running the computer program, performs the following:

[0254] The bitstream is parsed to determine the residual value of the AC coefficients of the current transform block, wherein the current transform block belongs to the first RAHT layer, and the first RAHT layer is any one of the multiple RAHT layers of the current frame point cloud.

[0255] Based on the residual values ​​of the AC coefficients of the current transform block, determine the reconstructed values ​​of the AC coefficients of the current transform block;

[0256] Based on the reconstructed values ​​of the AC coefficients of the current transform block, determine the reconstruction attribute value of the current transform block;

[0257] Determine whether to perform a filtering operation on the first RAHT layer;

[0258] If it is determined that a filtering operation will be performed on the first RAHT layer, then the reconstructed attribute values ​​of the current transform block are filtered according to the first set of filtering coefficients.

[0259] It is understood that the memory 1820 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 dynamic random access memory (SDRAM), double data rate synchronous dynamic random access memory (DDRSDRAM), enhanced synchronous dynamic random access memory (ESDRAM), synchronous linked dynamic random access memory (SLDRAM), and direct rambus RAM (DRRAM). The memory 1820 of the systems and methods described in this application is intended to include, but is not limited to, these and any other suitable types of memory.

[0260] The processor 1830 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 processor 1830 or by instructions in software form. The processor 1830 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 memory 1820. Processor 1830 reads the information in memory 1820 and completes the steps of the above method in conjunction with its hardware.

[0261] 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 externally.

[0262] Alternatively, as another embodiment, the processor 1830 is also configured to execute the decoding method described in any of the foregoing embodiments when running the computer program.

[0263] Figure 19 is a schematic diagram of the structure of an encoder provided in an embodiment of this application. As shown in Figure 19, the encoder 1900 includes a first determining unit 1910, a second determining unit 1920, a third determining unit 1930, a fourth determining unit 1940, and a filtering unit 1950.

[0264] The first determining unit 1910 is configured to determine the residual value of the AC coefficient of the current transform block, wherein the current transform block belongs to the first region adaptive hierarchical transform (RAHT) layer, and the first RAHT layer is any one of the multiple RAHT layers of the current frame point cloud.

[0265] The second determining unit 1920 is configured to determine the reconstructed value of the AC coefficient of the current transform block based on the residual value of the AC coefficient of the current transform block.

[0266] The third determining unit 1930 is configured to determine the reconstruction attribute value of the current transform block based on the reconstruction value of the AC coefficient of the current transform block.

[0267] The fourth determining unit 1940 is configured to determine whether to perform a filtering operation on the first RAHT layer;

[0268] The filtering unit 1950 is configured to filter the reconstructed attribute values ​​of the current transform block according to a first set of filtering coefficients if it is determined that a filtering operation will be performed on the first RAHT layer.

[0269] In some implementations, the encoder 1900 is further configured to write first identification information into the bitstream, the first identification information being used to indicate whether a filtering operation is performed on the first RAHT layer.

[0270] In some implementations, the first identification information is used only to indicate whether to perform a filtering operation on the first attribute information corresponding to the first RAHT layer; or, the first identification information is used to simultaneously indicate whether to perform a filtering operation on the first attribute information and the second attribute information corresponding to the first RAHT layer.

[0271] In some implementations, the encoder 1900 is further configured to write second identification information into the bitstream, the second identification information being used to indicate whether filtering is enabled for the current point cloud.

[0272] In some implementations, in terms of encoding order, the current frame point cloud is the Kth frame point cloud, and the Kth frame point cloud and the K+Nth frame point cloud are two frames of point clouds in a sequence of consecutive point cloud frames, where K and N are both positive integers; the encoder 1900 is further configured to perform a filtering operation on the second RAHT layer of the K+Nth frame point cloud according to the first set of filtering coefficients; or, to perform a filtering operation on the second RAHT layer of the K+Nth frame point cloud according to the second set of filtering coefficients; wherein, the geometric position information of the first RAHT layer corresponds to the geometric position information of the second RAHT layer.

[0273] In some implementations, the point cloud of the Kth frame is an I-frame point cloud; and / or, the point cloud of the K+Nth frame is a P-frame point cloud; wherein the point cloud of the Kth frame and the point cloud of the K+Nth frame belong to the same group of frames.

[0274] In some implementations, the first identification information is carried in the attribute block header.

[0275] In some implementations, the second identification information is carried in the attribute control parameter APS.

[0276] In some implementations, the fourth determining unit 1940 is further configured to determine a second rate-distortion cost based on the filtered reconstructed attribute values ​​of the one or more transform blocks; and to determine whether to perform a filtering operation on the first RAHT layer based on the first rate-distortion cost and the second rate-distortion cost.

[0277] In some implementations, the encoder 1900 is further configured to determine the first set of filter coefficients; perform a rounding operation on the values ​​in the first set of filter coefficients to determine the third set of filter coefficients; and write the third set of filter coefficients into the bitstream.

[0278] In some implementations, the encoder 1900 is further configured to quantize the third set of filter coefficients according to the first quantization parameter if the bitrate of the bitstream belongs to a first bitrate range, thereby determining the quantized filter coefficients; or,

[0279] If the bitrate of the bitstream falls within the second bitrate range, then the third set of filter coefficients are quantized according to the second quantization parameter to determine the quantized filter coefficients.

[0280] In some implementations, the first set of filter coefficients is determined based on the reconstruction attribute values ​​of the current transform block and at least one neighboring transform block.

[0281] In some implementations, the encoder 1900 is further configured to determine an autocorrelation matrix and a cross-correlation matrix based on the reconstruction attribute values ​​of the current transform block and the reconstruction attribute values ​​of at least one neighboring transform block; and to determine the first set of filter coefficients based on the autocorrelation matrix and the cross-correlation matrix.

[0282] In some implementations, the at least one neighboring transform block is determined based on the geometric position information of the current transform block and the geometric position information of its neighboring locations.

[0283] In some implementations, the geometric location information includes Morton code and / or three-dimensional coordinate values.

[0284] In some implementations, the filtering is Wiener filtering.

[0285] In some implementations, the encoder 1900 is further configured to perform RAHT transformation on the original attribute values ​​of the current transform block to determine the original values ​​of the AC coefficients of the current transform block; perform RAHT transformation on the reconstructed attribute values ​​of the prediction block to determine the predicted values ​​of the AC coefficients of the current transform block; and determine the residual values ​​of the AC coefficients of the current transform block based on the original values ​​and the predicted values ​​of the AC coefficients of the current transform block.

[0286] In some implementations, the prediction block is an intra-prediction block determined based on upsampling; or, the prediction block is an inter-prediction block determined based on inter-frame prediction.

[0287] In some implementations, the encoder 1900 is further configured to perform an inverse RAHT transformation based on the reconstructed AC coefficients and DC coefficients of the current transform block to determine the reconstructed attribute value of the current transform block.

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

[0289] 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, external hard drives, ROM, RAM, magnetic disks, or optical disks.

[0290] Therefore, this application provides a computer-readable storage medium applied to an encoder 1900, which stores a computer program that, when executed by a processor, implements the decoding method described in any of the foregoing embodiments.

[0291] Based on the composition of the encoder 1900 described above and the computer-readable storage medium, see Figure 20, which shows a schematic diagram of the specific hardware structure of the encoder 1900 provided in this embodiment of the application.

[0292] The following components can be combined arbitrarily to obtain new product embodiments. As shown in Figure 20, the encoder 2000 may include: a communication interface 2010, a memory 2020, and a processor 2030; the various components are coupled together through a bus system 2040. It is understood that the bus system 2040 is used to realize the connection and communication between these components. In addition to a data bus, the bus system 2040 also includes a power bus, a control bus, and a status signal bus. However, for clarity, all buses are labeled as bus system 2040 in Figure 20.

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

[0294] Memory 2020 is used to store computer programs;

[0295] Processor 2030, when running the computer program, is configured to perform:

[0296] Determine the residual value of the AC coefficient of the current transform block, wherein the current transform block belongs to the first region adaptive hierarchical transform (RAHT) layer, and the first RAHT layer is any one of the multiple RAHT layers of the current frame point cloud;

[0297] Based on the residual values ​​of the AC coefficients of the current transform block, determine the reconstructed values ​​of the AC coefficients of the current transform block;

[0298] Based on the reconstructed values ​​of the AC coefficients of the current transform block, determine the reconstruction attribute value of the current transform block;

[0299] Determine whether to perform a filtering operation on the first RAHT layer;

[0300] If it is determined that a filtering operation will be performed on the first RAHT layer, then the reconstructed attribute values ​​of the current transform block are filtered according to the first set of filtering coefficients.

[0301] It is understood that the memory 2020 in the embodiments of this application can be volatile memory or non-volatile memory, or may include both volatile and non-volatile memory. Non-volatile memory can be ROM, PROM, EPROM, EEPROM, or flash memory. Volatile memory can be RAM, which is used as an external cache. By way of example, but not limitation, many forms of RAM are available, such as SRAM, DRAM, SDRAM, DDRSDRAM, ESDRAM, SLDRAM, and DRRAM. The memory 2020 of the systems and methods described in this application is intended to include, but is not limited to, these and any other suitable types of memory.

[0302] The processor 2030 may be an integrated circuit chip with signal processing capabilities. In implementation, each step of the above method can be completed through integrated logic circuits in the hardware of the processor 2030 or through software instructions. The processor 2030 may be a general-purpose processor, DSP, ASIC, FPGA, or other programmable logic devices, discrete gate or transistor logic devices, or discrete hardware components. It can implement or execute the methods, steps, and logic block diagrams disclosed in the embodiments of this application. The general-purpose processor may be a microprocessor or any conventional processor. The steps of the methods disclosed in the embodiments of this application can be directly manifested as execution by a hardware decoding processor, or execution by a combination of hardware and software modules in the decoding processor. The software modules may reside in random access memory, flash memory, read-only memory, programmable read-only memory, electrically erasable programmable memory, registers, or other mature storage media in the art. This storage medium is located in memory 2020, and the processor 2030 reads information from memory 2020 and, in conjunction with its hardware, completes the steps of the above method.

[0303] 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 ASICs, DSPs, DSPDs, PLDs, 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.

[0304] Alternatively, as another embodiment, the processor 2030 is also configured to execute the encoding method described in any of the foregoing embodiments when running the computer program.

[0305] This application also provides a computer-readable storage medium, which is a non-volatile computer-readable storage medium for storing bit streams. The bit streams can be generated by using an encoding method of an encoder, or the bit streams can be decoded by using a decoding method of a decoder. The decoding method can be the decoding method described in any of the preceding embodiments, and the encoding method can be the encoding method described in any of the preceding embodiments.

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

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

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

[0309] The features disclosed in the several product embodiments provided in this application are, without conflict, related to the following:

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

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

Claims

1. A point cloud decoding method, applied to a decoder, comprising: The bitstream is parsed to determine the residual value of the AC coefficient of the current transform block. The current transform block belongs to the first region adaptive hierarchical transform (RAHT) layer, and the first RAHT layer is any one of the multiple RAHT layers of the current frame point cloud. Based on the residual values ​​of the AC coefficients of the current transform block, determine the reconstructed values ​​of the AC coefficients of the current transform block; Based on the reconstructed values ​​of the AC coefficients of the current transform block, determine the reconstruction attribute value of the current transform block; Determine whether to perform a filtering operation on the first RAHT layer; If it is determined that a filtering operation will be performed on the first RAHT layer, then the reconstructed attribute values ​​of the current transform block are filtered according to the first set of filtering coefficients.

2. The method according to claim 1, wherein, The step of determining whether to perform a filtering operation on the first RAHT layer includes: Analyze the bitstream to determine the first identifier information; Determine whether to perform a filtering operation on the first RAHT layer based on the first identification information.

3. The method according to claim 2, wherein: The first identification information is only used to determine whether to perform a filtering operation on the first attribute information corresponding to the first RAHT layer; or, The first identification information is used to simultaneously determine whether to perform filtering operations on the first attribute information and the second attribute information corresponding to the first RAHT layer.

4. The method according to any one of claims 1 to 3, wherein, The method further includes: Analyze the bitstream to determine the second identifier information; Determine whether to enable filtering for the current point cloud based on the second identification information.

5. The method according to any one of claims 1 to 4, wherein: In terms of decoding order, the current frame point cloud is the Kth frame point cloud, and the Kth frame point cloud and the K+Nth frame point cloud are two frames of point clouds in a sequence of consecutive point cloud frames, where K and N are both positive integers. The method further includes: Perform a filtering operation on the second RAHT layer of the point cloud in the K+Nth frame according to the first set of filtering coefficients; or... The filtering operation is performed on the second RAHT layer of the point cloud in the K+N frame according to the second set of filtering coefficients; The geometric position information of the first RAHT layer corresponds to the geometric position information of the second RAHT layer.

6. The method according to claim 5, wherein: The point cloud in the Kth frame is the point cloud in the I-frame; and / or, The point cloud of the K+Nth frame is the point cloud of the P frame. The point cloud of frame K and the point cloud of frame K+N belong to the same group of frames.

7. The method according to claim 2 or 3, wherein, The first identification information is carried in the attribute block header.

8. The method according to claim 4, wherein, The second identification information is carried in the attribute control parameter APS.

9. The method according to any one of claims 1 to 8, wherein, The method further includes: Analyze the bitstream to determine the third set of filter coefficients, where the values ​​in the third set of filter coefficients are integers; Perform an inverse rounding operation on the third set of filter coefficients to determine the first set of filter coefficients.

10. The method according to claim 9, wherein, The parsing of the bitstream determines the third set of filter coefficients, including: Analyze the bitstream to determine the quantization filter coefficients; If the bitrate of the bitstream falls within the first bitrate range, then the quantized filter coefficients are dequantized according to the first quantization parameter to determine the third set of filter coefficients; or, If the bitrate of the bitstream falls within the second bitrate range, then the quantized filter coefficients are dequantized according to the second quantization parameter to determine the third set of filter coefficients.

11. The method according to any one of claims 1 to 10, wherein, The first set of filter coefficients is related to the reconstruction attribute value of the current transform block and the reconstruction attribute value of at least one neighboring transform block.

12. The method according to claim 11, wherein, The at least one neighboring transform block is determined based on the geometric position information of the current transform block and the geometric position information of its adjacent positions.

13. The method according to claim 12, wherein, The geometric location information includes Morton code and / or three-dimensional coordinate values.

14. The method according to any one of claims 1 to 13, wherein, The filtering method is Wiener filtering.

15. The method according to claim 1, wherein, Determining the reconstructed values ​​of the AC coefficients of the current transform block based on the residual values ​​of the AC coefficients of the current transform block includes: Based on the reconstructed values ​​of the AC coefficients of the prediction block, the predicted values ​​of the AC coefficients of the current transform block are determined; Based on the predicted values ​​of the AC coefficients of the current transform block and the residual values ​​of the AC coefficients of the current transform block, determine the current... Reconstructed values ​​of the AC coefficients of the transform block.

16. The method of claim 15, wherein: The prediction block is an intra-frame prediction block determined based on upsampling; or, The prediction block is an inter-frame prediction block determined based on inter-frame prediction.

17. The method according to claim 15 or 16, wherein, Determining the reconstruction attribute value of the current transform block based on the reconstruction value of the AC coefficients of the current transform block includes: The reconstruction attribute value of the current transform block is determined by performing an inverse RAHT transformation based on the reconstructed AC coefficient and DC coefficient of the current transform block.

18. A point cloud encoding method, applied to an encoder, comprising: Determine the residual value of the AC coefficient of the current transform block, wherein the current transform block belongs to the first region adaptive hierarchical transform (RAHT) layer, and the first RAHT layer is any one of the multiple RAHT layers of the current frame point cloud; Based on the residual values ​​of the AC coefficients of the current transform block, determine the reconstructed values ​​of the AC coefficients of the current transform block; Based on the reconstructed values ​​of the AC coefficients of the current transform block, determine the reconstruction attribute value of the current transform block; Determine whether to perform a filtering operation on the first RAHT layer; If it is determined that a filtering operation will be performed on the first RAHT layer, then the reconstructed attribute values ​​of the current transform block are filtered according to the first set of filtering coefficients.

19. The method according to claim 18, wherein, The method further includes: The first identification information is written into the bitstream, and the first identification information is used to indicate whether to perform a filtering operation on the first RAHT layer.

20. The method of claim 19, wherein: The first identification information is only used to indicate whether to perform a filtering operation on the first attribute information corresponding to the first RAHT layer; or, The first identification information is used to simultaneously indicate whether to perform filtering operations on the first attribute information and the second attribute information corresponding to the first RAHT layer.

21. The method according to any one of claims 18 to 20, wherein, The method further includes: Write the second identifier information into the bitstream. The second identifier information is used to indicate whether filtering is enabled for the current point cloud.

22. The method according to any one of claims 18 to 21, wherein: In terms of encoding order, the current frame point cloud is the Kth frame point cloud, and the Kth frame point cloud and the K+Nth frame point cloud are two frames of point clouds in a sequence of consecutive point cloud frames, where K and N are both positive integers. The method further includes: Perform a filtering operation on the second RAHT layer of the point cloud in the K+Nth frame according to the first set of filtering coefficients; or... The filtering operation is performed on the second RAHT layer of the point cloud in the K+N frame according to the second set of filtering coefficients; The geometric position information of the first RAHT layer corresponds to the geometric position information of the second RAHT layer.

23. The method according to claim 22, wherein: The point cloud in the Kth frame is the point cloud in the I-frame; and / or, The point cloud of the K+Nth frame is the point cloud of the P frame. The point cloud of frame K and the point cloud of frame K+N belong to the same group of frames.

24. The method according to claim 19 or 20, wherein, The first identification information is carried in the attribute block header.

25. The method according to claim 21, wherein, The second identification information is carried in the attribute control parameter APS.

26. The method according to claim 18, wherein, The first RAHT layer includes one or more transform blocks, and determining whether to perform a filtering operation on the first RAHT layer includes: The first rate distortion cost is determined based on the pre-filter reconstruction attribute values ​​of the one or more transform blocks; The second rate distortion cost is determined based on the filtered reconstructed attribute values ​​of the one or more transform blocks; Based on the first rate-distortion cost and the second rate-distortion cost, determine whether to perform a filtering operation on the first RAHT layer.

27. The method according to any one of claims 18 to 26, wherein, The method further includes: Determine the first set of filter coefficients; Perform a rounding operation on the values ​​in the first group of filter coefficients to determine the third group of filter coefficients; Write the third set of filter coefficients into the bitstream.

28. The method according to claim 27, wherein, The step of writing the third set of filter coefficients into the bitstream includes: If the bitrate of the bitstream falls within the first bitrate range, then the third set of filter coefficients is quantized according to the first quantization parameter to determine the quantized filter coefficients; or, If the bitrate of the bitstream falls within the second bitrate range, then the third set of filter coefficients are quantized according to the second quantization parameter to determine the quantized filter coefficients.

29. The method according to claim 28, wherein, The first set of filter coefficients is determined based on the reconstruction attribute value of the current transform block and the reconstruction attribute value of at least one neighboring transform block.

30. The method according to claim 29, wherein, Determining the first set of filter coefficients includes: Based on the reconstruction attribute values ​​of the current transform block and the reconstruction attribute values ​​of at least one neighboring transform block, determine the autocorrelation matrix and the cross-correlation matrix; The first set of filter coefficients is determined based on the autocorrelation matrix and the cross-correlation matrix.

31. The method according to claim 29 or 30, wherein, The at least one neighboring transform block is determined based on the geometric position information of the current transform block and the geometric position information of its adjacent positions.

32. The method according to claim 31, wherein, The geometric location information includes Morton code and / or three-dimensional coordinate values.

33. The method according to any one of claims 18 to 32, wherein, The filtering method is Wiener filtering.

34. The method according to claim 18, wherein, The determination of the residual values ​​of the AC coefficients of the current transform block includes: Perform RAHT transformation on the original attribute values ​​of the current transform block to determine the original values ​​of the AC coefficients of the current transform block; Perform RAHT transformation on the reconstructed attribute values ​​of the prediction block to determine the predicted values ​​of the AC coefficients of the current transformed block; The residual values ​​of the AC coefficients of the current transform block are determined based on the original values ​​and the predicted values ​​of the AC coefficients of the current transform block.

35. The method according to claim 34, wherein: The prediction block is an intra-frame prediction block determined based on upsampling; or, The prediction block is an inter-frame prediction block determined based on inter-frame prediction.

36. The method according to claim 34 or 35, wherein, Determining the reconstruction attribute value of the current transform block based on the reconstruction value of the AC coefficients of the current transform block includes: The reconstruction attribute value of the current transform block is determined by performing an inverse RAHT transformation based on the reconstructed AC coefficient and DC coefficient of the current transform block.

37. A decoder, comprising: The first determining unit is configured to parse the bitstream and determine the residual value of the AC coefficient of the current transform block. The current transform block belongs to the first region adaptive hierarchical transform (RAHT) layer, and the first RAHT layer is any one of the multiple RAHT layers of the current frame point cloud. The second determining unit is configured to determine the reconstructed value of the AC coefficient of the current transform block based on the residual value of the AC coefficient of the current transform block; The third determining unit is configured to determine the reconstruction attribute value of the current transform block based on the reconstruction value of the AC coefficient of the current transform block; The fourth determining unit is configured to determine whether to perform a filtering operation on the first RAHT layer; The filtering unit is configured to filter the reconstructed attribute values ​​of the current transform block according to a first set of filtering coefficients if it is determined that a filtering operation will be performed on the first RAHT layer.

38. A decoder, comprising: Memory, used to store computer programs; A processor, configured to perform the method as described in any one of claims 1 to 17 when running the computer program.

39. An encoder, comprising: The first determining unit is configured to determine the residual value of the AC coefficient of the current transform block, wherein the current transform block belongs to the first region adaptive hierarchical transform (RAHT) layer, and the first RAHT layer is any one of the multiple RAHT layers of the current frame point cloud. The second determining unit is configured to determine the reconstructed value of the AC coefficient of the current transform block based on the residual value of the AC coefficient of the current transform block; The third determining unit is configured to determine the reconstruction attribute value of the current transform block based on the reconstruction value of the AC coefficient of the current transform block; The fourth determining unit is configured to determine whether to perform a filtering operation on the first RAHT layer; The filtering unit is configured to filter the reconstructed attribute values ​​of the current transform block according to a first set of filtering coefficients if it is determined that a filtering operation will be performed on the first RAHT layer.

40. An encoder, comprising: Memory, used to store computer programs; A processor, configured to perform the method as described in any one of claims 18 to 36 when running the computer program.

41. A non-volatile computer-readable storage medium for storing a bitstream, said bitstream being generated by an encoding method using an encoder, or said bitstream being decoded by a decoding method using a decoder, wherein, The decoding method is the method as described in any one of claims 1 to 17, and the encoding method is the method as described in any one of claims 18 to 36.

42. A computer-readable storage medium storing a bitstream generated by the method of any one of claims 18 to 36.

43. A computer-readable storage medium, wherein, The computer-readable storage medium stores a computer program that, when executed, implements the method as described in any one of claims 1 to 17, or 18 to 36.