Encoding method and apparatus, decoding method and apparatus, point cloud encoder, point cloud decoder, bit stream, device, and storage medium
By dynamically enabling or disabling cross-component prediction mode during point cloud encoding and decoding, the encoding and decoding efficiency of point clouds is optimized, the bottleneck problem of point cloud data storage and transmission is solved, and the processing efficiency is improved.
Patent Information
- Application Number
- PCT/CN2024/087630
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-04-12
- Publication Date
- 2026-01-22
AI Technical Summary
Existing technologies have bottlenecks in the encoding and decoding efficiency of point cloud data, especially in terms of storage space, transmission bandwidth and processing efficiency of massive point cloud data.
By dynamically enabling or disabling cross-component prediction modes during point cloud encoding and decoding, the encoding and decoding modes of nodes in the current transform layer can be determined, thereby optimizing the encoding and decoding efficiency of point clouds.
It improves the encoding and decoding efficiency of point cloud data, reduces the consumption of computing resources, and enhances the speed of data processing and storage efficiency.
Smart Images

Figure CN2024087630_22012026_PF_FP_ABST
Abstract
Description
Encoding and decoding methods and apparatus, point cloud codecs, bitstreams, devices, and storage media Technical Field
[0001] This application relates to point cloud compression technology, including but not limited to encoding and decoding methods and apparatus, point cloud codecs, bitstreams, devices, and storage media. Background Technology
[0002] 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. Point cloud data typically includes geometric and attribute information of the sampling points; the geometric information includes the three-dimensional position information (x, y, z) of the sampling points, and the attribute information includes the color information and / or one-dimensional reflectance information of the sampling points, etc.
[0003] Point clouds can flexibly and conveniently represent the spatial structure and surface properties of 3D objects or scenes. Because point clouds are obtained by directly sampling real objects, they can provide a strong sense of realism while maintaining accuracy, thus leading to their wide range of applications, including virtual reality games, computer-aided design, geographic information systems, automatic navigation systems, digital cultural heritage, free-viewpoint broadcasting, 3D immersive telepresence, and 3D reconstruction of biological tissues and organs. Therefore, improving the encoding and decoding efficiency of point clouds is of significant importance.
[0004] Summary of the Invention
[0005] The encoding / decoding method, apparatus, point cloud codec, bitstream, device, and storage medium provided in this application are intended to enhance the efficiency of point cloud attribute encoding / decoding. The encoding / decoding processing method, apparatus, point cloud codec, bitstream, device, and storage medium provided in this application are implemented as follows:
[0006] In a first aspect, embodiments of this application provide a decoding method applied to a point cloud decoder. The method includes: determining whether the decoding mode of a node in the current transform layer enables cross-component prediction mode; and determining the transform coefficients of a first attribute component of the current node based on the decoding mode.
[0007] It is understood that in the decoding method provided in the embodiments of this application, it is determined whether the decoding mode of the node of the current transform layer enables cross-component prediction mode; then, according to the decoding mode, the transform coefficient of the first attribute component of the current node is determined; thus, for the node of the current transform layer, cross-component prediction mode may be enabled or may not be enabled, rather than enabling cross-component prediction mode for all nodes of all transform layers of the current point cloud, which is beneficial to saving decoding efficiency.
[0008] Secondly, embodiments of this application provide an encoding method applied to a point cloud encoder. The method includes: determining whether the encoding mode of a node in the current transform layer enables cross-component prediction mode; if the encoding mode enables cross-component prediction mode, determining the residual value of the transform coefficients of the first attribute component of the current node; quantizing the residual value of the transform coefficients of the first attribute component of the current node to obtain a first quantized value; and writing the first quantized value into the bitstream.
[0009] It is understood that in the encoding method provided in the embodiments of this application, for the nodes of the current transform layer, the cross-component prediction mode may be enabled or not, rather than enabling the cross-component prediction mode for all nodes of all transform layers of the current point cloud. Therefore, it is beneficial to save encoding efficiency.
[0010] Thirdly, embodiments of this application provide a decoding device applied to a point cloud decoder. The device includes: a first determining module configured to determine whether the decoding mode of a node in the current transform layer enables cross-component prediction mode; and a second determining module configured to determine the transform coefficients of the first attribute component of the current node according to the decoding mode.
[0011] Fourthly, embodiments of this application provide a point cloud decoder, including a first memory and a first processor; wherein the first memory is used to store a computer program capable of running on the first processor; and the first processor is used to execute the decoding method described in the first aspect when running the computer program.
[0012] Fifthly, embodiments of this application provide a bitstream generated by the encoding method described in the second aspect.
[0013] Sixthly, embodiments of this application provide an encoding apparatus applied to a point cloud encoder. The apparatus includes: a third determining module configured to determine whether the encoding mode of a node in the current transform layer enables cross-component prediction mode; a fourth determining module configured to determine the residual value of the transform coefficients of the first attribute component of the current node when the encoding mode enables cross-component prediction mode; a quantization module configured to quantize the residual value of the transform coefficients of the first attribute component of the current node to obtain a first quantized value; and an encoding module configured to write the first quantized value into the bitstream.
[0014] In a seventh aspect, embodiments of this application provide a point cloud encoder, including a second memory and a second processor; wherein the second memory is used to store a computer program capable of running on the second processor; and the second processor is used to execute the encoding method described in the second aspect when running the computer program.
[0015] Eighthly, embodiments of this application provide an electronic device, including: a processor adapted to execute a computer program; and a computer-readable storage medium storing a computer program, wherein when the computer program is executed by the processor, it implements the decoding method described in the first aspect, or when the computer program is executed by the processor, it implements the encoding method described in the second aspect.
[0016] Ninthly, embodiments of this application provide a computer-readable storage medium, wherein the computer-readable storage medium stores a computer program, which, when executed, implements the decoding method described in the first aspect or the encoding method described in the second aspect.
[0017] In a tenth aspect, embodiments of this application provide a computer program product, including a computer program or instructions, which, when executed by a processor, implement the decoding method described in the first aspect, or the encoding method described in the second aspect.
[0018] It should be understood that the above general description and the following detailed description are exemplary and explanatory only, and do not limit this application. Attached Figure Description
[0019] The accompanying drawings, which are incorporated in and form part of this specification, illustrate embodiments consistent with this application and, together with the specification, serve to explain the technical solutions of this application. Obviously, the drawings described below are merely some embodiments of this application, and those skilled in the art can obtain other drawings based on these drawings without any inventive effort.
[0020] The flowcharts shown in the accompanying drawings are merely illustrative and do not necessarily include all content and operations / steps, nor do they necessarily have to be performed in the described order. For example, some operations / steps can be broken down, while others can be combined or partially combined; therefore, the actual execution order may change depending on the specific circumstances.
[0021] Figure 1 is an example of a three-dimensional point cloud image;
[0022] Figure 2 is a magnified view of a portion of the 3D point cloud image;
[0023] Figure 3 is an example of a point cloud image;
[0024] Figure 4 shows the data storage format of the point cloud image shown in Figure 3;
[0025] Figure 5 is a schematic diagram of the point cloud encoder in the MPEG G-PCC attribute encoding and decoding framework;
[0026] Figure 6 shows the structure of the point cloud decoder in the MPEG G-PCC attribute encoding and decoding framework;
[0027] Figure 7 is a planar schematic diagram of the node;
[0028] Figure 8 is a schematic diagram of the node encoding order;
[0029] Figure 9 is an example of a flat sign;
[0030] Figure 10 is an example of a flat sign;
[0031] Figure 11 is a schematic diagram of IDCM encoding;
[0032] Figure 12 is a schematic diagram of geometric information reconstruction in a block;
[0033] Figure 13 is a flowchart of G-PCC attribute prediction;
[0034] Figure 14 is a schematic diagram of the transformation process of a Region Adaptive Hierarchical Transform (RAHT) along the x, y, and z directions.
[0035] Figure 15 is a schematic diagram of a RAHT transformation structure;
[0036] Figure 16 is a schematic diagram of a RAHT positive transformation process;
[0037] Figure 17 is a schematic diagram of a RAHT inverse transform process;
[0038] Figure 18 is a schematic diagram of the structure of an attribute encoding block;
[0039] Figure 19 is a schematic diagram of the overall process of a RAHT attribute prediction transform coding;
[0040] Figure 20 is a schematic diagram of the neighborhood prediction relationship of the current block;
[0041] Figure 21 is a schematic diagram of the calculation process of an attribute transformation coefficient;
[0042] Figure 22 is a schematic diagram of the implementation flow of the decoding method provided in the embodiment of this application;
[0043] Figure 23 is a schematic diagram of a further implementation process of step 2201 provided in an embodiment of this application;
[0044] Figure 24 is a schematic diagram of the RAHT transformation layer provided in an embodiment of this application;
[0045] Figure 25 is a schematic diagram of a further implementation of step 2202 provided in an embodiment of this application;
[0046] Figure 26 is a schematic diagram of a further implementation of step 2202 provided in the embodiment of this application;
[0047] Figure 27 is a schematic diagram of a further implementation process of step 2602 provided in an embodiment of this application;
[0048] Figure 28 is a schematic diagram of the implementation flow of the encoding method provided in the embodiment of this application;
[0049] Figure 29 is a schematic diagram of a further implementation process of step 2801 provided in an embodiment of this application;
[0050] Figure 30 is a schematic diagram of the decoding device provided in an embodiment of this application;
[0051] Figure 31 is a schematic diagram of the structure of the encoding device provided in an embodiment of this application;
[0052] Figure 32 is a schematic diagram of the point cloud decoder provided in an embodiment of this application;
[0053] Figure 33 is a schematic diagram of the structure of the point cloud encoder provided in the embodiment of this application. Detailed Implementation
[0054] To make the objectives, technical solutions, and advantages of the embodiments of this application clearer, the specific technical solutions of this application will be further described in detail below with reference to the accompanying drawings of the embodiments of this application. The following embodiments are used to illustrate this application, but do not limit the scope of this application.
[0055] Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this application belongs. The terminology used herein is for the purpose of describing embodiments of this application only and is not intended to limit this application.
[0056] In the following description, references are made to “some embodiments,” which describe a subset of all possible embodiments. However, it is understood that “some embodiments” may be the same subset or different subsets of all possible embodiments and may be combined with each other without conflict.
[0057] Point clouds are discrete sets of points in three-dimensional space. These points contain geometric information representing spatial location and attribute information representing the texture of the point cloud appearance. Figure 1 is an example of a three-dimensional point cloud image, and Figure 2 is a magnified view of a part of the three-dimensional point cloud image. It can be seen that the surface of the point cloud is composed of densely distributed points.
[0058] Two-dimensional images contain information at each pixel, and their distribution is regular, so there's no need to record their positional information separately. However, the distribution of points in a point cloud in three-dimensional space is random and irregular, so it's necessary to record the position of each point in space to fully represent a point cloud. Similar to two-dimensional images, each location during acquisition has corresponding attribute information, usually RGB color values, which reflect the color of the object. For point clouds, in addition to color, a common attribute for each point is reflectance, which reflects the surface material of the object. Therefore, point clouds typically include geometric information (x, y, z) composed of three-dimensional positional information, as well as three-dimensional color information (r, g, b) and one-dimensional reflectance information (r). Figure 3 shows an example point cloud image, and Figure 4 shows the data storage format of the point cloud image shown in Figure 3. Figure 3 provides six viewing angles for the point cloud image; Figure 4 consists of a header information section and a data section. The header information includes the data format, data representation type, total number of points in the point cloud, and the content represented by the point cloud. For example, the point cloud in this case is in ".ply" format, represented by ASCII code, with a total of 207242 points. Each point has three-dimensional position information (x, y, z) and three-dimensional color information (r, g, b).
[0059] Point clouds can flexibly and conveniently express the spatial structure and surface properties of three-dimensional objects or scenes. Since point clouds are obtained by directly sampling real objects, they can provide a strong sense of realism while ensuring accuracy. Therefore, they are widely used, including virtual reality games, computer-aided design, geographic information systems, automatic navigation systems, digital cultural heritage, free-viewpoint broadcasting, three-dimensional immersive remote presentation, and three-dimensional reconstruction of biological tissues and organs.
[0060] Point cloud acquisition primarily utilizes the following methods: computer generation, 3D laser scanning, and 3D photogrammetry. Computers can generate point clouds of virtual 3D objects and scenes; 3D laser scanning can acquire point clouds of static real-world 3D objects or scenes, with a capacity of millions of point clouds per second; 3D photogrammetry can acquire point clouds of dynamic real-world 3D objects or scenes, with a capacity of tens of millions of point clouds per second. These technologies reduce the cost and time required for point cloud data acquisition and improve data accuracy. This evolution in point cloud data acquisition methods has made acquiring massive amounts of point cloud data possible. However, with the growth of application demands, the processing of massive amounts of 3D point cloud data faces bottlenecks limited by storage space, transmission bandwidth, and encoding / decoding efficiency.
[0061] In the point cloud G-PCC encoder framework, the geometric information of the point cloud and the attribute information corresponding to each point are encoded separately.
[0062] Figure 5 is a schematic diagram of the point cloud encoder in the MPEG G-PCC attribute encoding and decoding framework. As shown in Figure 5, during the geometric encoding process, coordinate transformation is performed on the geometric information so that the entire point cloud is contained within a bounding box. Then, quantization is performed; this step mainly 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 called 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 primarily targets color information. There are two main transformation methods in the color information encoding process: one is distance-based lifting transformation that relies on Level of Detail (LOD) partitioning, and the other is direct Region Adaptive Hierarchical Transform (RAHT). Both methods convert color information from the spatial domain to the frequency domain, obtaining high-frequency and low-frequency coefficients through the transformation. Finally, the coefficients are quantized to obtain quantized coefficients; then, arithmetic encoding is performed on the quantized coefficients to generate a binary attribute bitstream.
[0063] Figure 6 shows the structure of the point cloud decoder in the MPEG G-PCC attribute encoding and decoding framework. As shown in Figure 6, for the acquired binary bitstream, the geometric bitstream and attribute bitstream in the binary bitstream are first decoded independently. When decoding the geometric bitstream, the geometric information of the point cloud is obtained through arithmetic decoding-reconstruction of the octree / reconstruction of the prediction tree-reconstruction of geometry-coordinate inverse transformation. When decoding the attribute bitstream, the attribute information of the point cloud is obtained through arithmetic decoding-inverse quantization-LOD partitioning / RAHT-color inverse transformation. Based on the geometric information and attribute information, the point cloud data to be encoded (i.e., the output point cloud) is restored. The attribute bitstream and geometric bitstream shown in Figures 5 and 6 can be understood as point cloud bitstreams or bitstreams.
[0064] As shown in Figure 5 or Figure 6, the geometric encoding and decoding of MPEG G-PCC can be divided into octree-based geometric encoding and decoding (marked with dashed boxes) and prediction tree-based geometric encoding and decoding (marked with dotted-dash boxes).
[0065] It should be noted that the point cloud encoder and point cloud decoder shown in Figures 5 and 6 are for the purpose of more clearly illustrating the technical solutions of the embodiments of this application, and do not constitute a limitation on the technical solutions provided in the embodiments of this application. Those skilled in the art will understand that with the evolution of point cloud encoders and decoders and the emergence of new business scenarios, the technical solutions provided in the embodiments of this application are also applicable to similar technical problems.
[0066] The following section will first introduce the encoding of geometric information.
[0067] Octree-based geometric encoding: First, coordinate transformation is performed on the geometric information so that the entire point cloud is contained within a bounding box. Then, quantization is performed, primarily for scaling. Due to quantization rounding, some points have identical geometric information; whether to remove duplicate points is determined based on parameters. This process of quantization and removing duplicate points is also known as voxelization. Next, the bounding box is continuously partitioned into multi-way trees (octree / quadtree / binary tree) in breadth-first search order, and the placeholder code of each node is encoded. This can be used for implicit geometric partitioning to calculate the bounding box of the point cloud. Assume the bounding box corresponds to a cuboid d. x >d y >d z During geometric partitioning, the binary tree is first partitioned 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 process continues until the resulting leaf nodes form 1x1x1 unit cubes. The partitioning then stops, and the nodes in each leaf node are encoded to generate a binary code stream. In the partitioning process based on binary trees / quadtrees / octrees, two parameters are introduced: K and M. Parameter K indicates the maximum number of binary / quadtree partitions performed before octree partitioning; parameter M indicates the minimum block side length of 2 when performing binary / quadtree partitioning. 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 zThe parameter K satisfies: K >= d max -d min The parameter M satisfies: M >= d min The 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 1x1x1 is reached. The octree-based geometric information encoding mode can effectively encode the geometric information of the point cloud by utilizing the correlation between adjacent points in space. For some relatively flat nodes or nodes with planar characteristics, planar encoding can further improve the encoding efficiency of the point cloud geometric information.
[0068] As shown in Figure 7, series (a0-a3) in (a) belong to the low plane positions in the Z-axis direction, and series (b0-b3) in (b) belong to the high plane positions in the Z-axis direction. Taking (a) as an example, as shown in Figure 7, it can be seen that the four occupied child nodes of the current node are all located in the low plane positions of the current node in the Z-axis direction. Therefore, the current node can be considered to belong to a Z-plane and be a low plane in the Z-axis direction. Similarly, (b) indicates that the occupied child nodes of the current node are located in the high plane positions of the current node in the Z-axis direction. The efficiency of octree coding and planar coding will be compared below using (a) as an example.
[0069] Following the 0-7 encoding order shown in Figure 8, if octree encoding is used for (a) in Figure 7, the placeholder information of the current node is represented as: 11001100. If planar encoding is used, firstly, an identifier needs to be encoded to indicate that the current node is a plane in the Z-axis direction, and the planar position of the current node needs to be represented; secondly, only the placeholder information of the lower plane nodes in the Z-axis direction needs to be encoded (i.e., the placeholder information of the four child nodes 0246). Therefore, encoding the current node based on planar encoding requires encoding 6 bits, which is 2 bits less than the original octree encoding. Based on this analysis, planar encoding has a significantly higher encoding efficiency than octree encoding. For an occupied node, if planar encoding is used in a certain dimension, firstly, the planar identifier and planar position information of the current node in that dimension are represented, and secondly, the placeholder information of the current node is encoded based on the planar information of the current node. Figures 9 and 10 are example diagrams of planar identifiers.
[0070] It is important to note that: PlaneMode i(i = 0, 1, 2): 0 represents that the current node is not a plane along the i-axis. If the current node is a plane along the i-axis (i.e., PlaneMode), then... i (i=0,1,2):1),PlanePosition i :0 indicates that the current node is a plane along the i-axis, and the plane is located in the lower plane; PlanePosition i :1 indicates that the current node is a high plane in the i-axis direction.
[0071] Octree-based geometric information encoding only achieves high compression efficiency for points with strong spatial correlation. However, for points isolated in geometric space, DCM encoding can improve compression efficiency while reducing encoding complexity to some extent. For all nodes in the octree, DCM is not represented by flag bits, but rather inferred from the current node's parent node and its neighbors. There are three ways to determine whether a current node is eligible for DCM encoding. Figure 11 illustrates DCM encoding.
[0072] (1) The current node has no sibling child nodes (i.e., the current node's parent node has only one child node), and the current node's parent node's parent node has only two occupied child nodes (i.e., the current node has at most one neighbor node).
[0073] (2) The parent node of the current node has only the current node as its child node, and the six neighboring nodes that share a face with the current node are all empty nodes.
[0074] (3) The number of sibling nodes of the current node is greater than 1.
[0075] If the current node is not eligible for DCM encoding, it will be partitioned into an octree. If it is eligible, the number of points it contains will be further determined: if the number of points is less than a threshold of 2 (meaning the current node is a true isolated point), then DCM encoding will be performed on the node; otherwise, octree partitioning will continue. When applying DCM encoding, firstly, a flag (IDCM_flag) needs to be encoded to indicate whether the current node is a true isolated point. When IDCM_flag is true, the current node uses DCM encoding; otherwise, the current node still uses octree encoding. When the current node meets the DCM encoding conditions, the DCM encoding mode of the current node needs to be encoded. Currently, there are two DCM encoding modes: 1) Only one point exists (or multiple points, but they are duplicate points); 2) It contains two points. Secondly, the geometric information of each point needs to be encoded. Assume the side length of the node is 2. dEncoding each component of the geometric coordinates of a node requires d bits, and this bit information is directly encoded into the bitstream. It's important to note that when encoding LiDAR point clouds, predictive encoding of the three-dimensional coordinate information is performed using LiDAR acquisition parameters, which further improves the encoding efficiency of geometric information.
[0076] It is important to note that when dividing nodes down to leaf nodes, under geometrically lossless encoding, the number of duplicate points in the leaf nodes needs to be encoded. Finally, the placeholder information of all nodes is encoded to generate a binary code stream.
[0077] Based on octree-based geometric decoding, the decoding end follows a breadth-first traversal. Before decoding the placeholder information of each node, it uses the reconstructed geometric information to determine whether the current node should undergo planar decoding or IDCM decoding. If the current node meets the conditions for planar decoding, its planar identifier and planar position information are decoded, and the placeholder information is decoded based on these. If the current node meets the conditions for IDCM decoding, the IDCM_flag needs to be further parsed to determine if the current node is a true IDCM node. If IDCM_flag: 1, it indicates that the current node is a true IDCM node, and the DCM decoding mode of the current node is further parsed to obtain the number of points in the current DCM node. Finally, the geometric information of each point is decoded. For nodes that do not meet either the planar decoding or DCM decoding conditions, the placeholder information of the current node is decoded. By continuously parsing the placeholder code of each node in this way, and dividing the nodes in turn, the division stops when a 1x1x1 unit cube is obtained. The number of points contained in each leaf node is then parsed, and finally the geometric reconstruction point cloud information is recovered.
[0078] In the trisoup (triangle soup)-based geometric information encoding framework, geometric partitioning is also performed first. However, unlike binary / quadtree / octree-based geometric information encoding, this method does not need to partition the point cloud into 1x1x1 unit cubes step by step. Instead, partitioning stops when the side length of a block (sub-block) reaches W. Based on the surface formed by the distribution of the point cloud in each block, at most twelve vertices (intersection points) are obtained between this surface and the twelve edges of the block. The vertex coordinates of each block are encoded sequentially to generate a binary bitstream.
[0079] When reconstructing point cloud geometry at the decoding end, the vertex coordinates are first decoded to complete the reconstruction of triangular patches, as shown in Figure 12. Block 1201 contains three vertices (v1, v2, v3). The set of triangular patches formed by these three vertices in a certain order is called the triangle soup, or trisoup 1202. Then, sampling is performed on this triangular patch set, and the obtained sampled points are used as the reconstructed point cloud within that block, such as the newly added sampled points in 1203.
[0080] Geometric encoding based on prediction trees: First, the input point cloud is sorted using methods including unordered, Morton order, azimuth order, and radial distance order. At the encoding end, the prediction tree structure is built using two different methods: a high-latency, slow-speed KD-Tree method and a low-latency, fast LiDAR calibration method (i.e., using LiDAR calibration information to assign each point to a different laser and build the prediction structure according to the different lasers). Next, based on the prediction tree structure, each node in the prediction tree is traversed, and the geometric position information of the node is predicted using different prediction modes to obtain the prediction residual. The geometric prediction residual is then quantized using quantization parameters. Finally, through continuous iteration, the prediction residual of the prediction tree node position information, the prediction tree structure, and the quantization parameters are encoded to generate a binary code stream.
[0081] Geometric decoding based on prediction trees involves the decoder first reconstructing the prediction tree structure by continuously parsing the bitstream; then, obtaining the geometric position prediction residual information and quantization parameters of each prediction node by parsing the bitstream, and performing inverse quantization on the prediction residual; finally, the reconstructed geometric position information of each node is recovered, and the geometric reconstruction of the decoder is completed.
[0082] After geometric encoding is completed, the geometric information is reconstructed. Attribute encoding mainly targets color information. First, the color information is converted from the RGB color space to the YUV color space. Then, the reconstructed geometric information is used to recolor the point cloud, so that the unencoded attribute information corresponds to the reconstructed geometric information. In color information encoding, there are two main transformation methods: one is distance-based lifting transformation that relies on LOD (Level of Detail) partitioning, and the other is RAHT (Region Adaptive Hierarchical Transform). Both methods transform the color information from the spatial domain to the frequency domain, obtain high-frequency and low-frequency coefficients through transformation, and finally quantize and encode the coefficients to generate a binary code stream.
[0083] When using geometric information to predict attribute information, Morton codes can be used for nearest neighbor search. The Morton code for each point in the point cloud can be obtained from the geometric coordinates of that point. After obtaining the Morton code M for each point in the point cloud, the points in the point cloud are arranged in ascending order of Morton code. The specific calculation method for Morton codes is described below:
[0084] 1) For each component of a three-dimensional coordinate represented by a d-bit binary number, its three components can be represented as:
[0085] Where, x l ,y l ,z l ∈{0,1} are the binary values corresponding to the highest bit (l=1) to the lowest bit (l=d) of x, y, and z, respectively.
[0086] 2) Morton code M is based on x, y, z, starting from the most significant bit and alternating between the x, y, and z bits. l ,y l ,z l Up to the least significant bit, the formula for calculating M is as follows:
[0087] Where, m l′ ∈{0,1} are the values of the most significant bit (l′=1) to the least significant bit (l′=3d) of M, respectively.
[0088] The G-PCC coding framework currently includes three attribute coding methods: Predicting Transform (PT), Lifting Transform (LT), and Region Adaptive Hierarchical Transform (RAHT). The first two predictively encode point clouds based on the order of LOD generation, while RAHT adaptively transforms attribute information from bottom to top based on the octree construction hierarchy.
[0089] The predictive encoding process for point cloud attribute information is described below.
[0090] Figure 13 is a flowchart of G-PCC attribute prediction. As shown in Figure 13, the attribute prediction of the current point is performed based on the attribute reconstruction values of the three nearest neighbor points of the current point; the prediction residual of the current point is determined according to the attribute prediction value of the current point and the original attribute value of the current point; the prediction residual is quantized and arithmetic encoded to obtain the attribute code stream.
[0091] Attribute prediction residuals and quantization:
[0092] The attribute prediction value of the current point i is obtained through the above prediction. (k is the total number of points in the point cloud). Let (a i ) i∈0…k-1 Given the original attribute values of the current point, the predicted residual (r) i ) i∈0…k-1 Recorded as:
[0093] Further quantification of the predicted residuals:
[0094] In the formula Q i This represents the quantized prediction residual at the current point i. Qs is the quantization step size, which can be calculated from the quantization parameter QP. The specific calculation formula is as follows:
[0095] Reconstruct attribute values at the encoding end:
[0096] The purpose of reconstruction at the encoding end is for prediction of subsequent points. Before reconstructing attribute values, the residuals need to be dequantized. The residual after dequantization:
[0097] Compared with the predicted value Add them together to get the reconstructed value of point i.
[0098] Region Adaptive Hierarchical Transform (RAHT) is a Haar wavelet transform that can transform point cloud attribute information from the spatial domain to the frequency domain, further reducing the correlation between point cloud attributes. Its main idea is to transform nodes in each layer from the x, y, and z dimensions in a bottom-up manner, following an octree structure (as shown in Figure 14), iterating until the root node of the octree. As shown in Figure 15, its basic idea is to perform wavelet transform based on the hierarchical structure of the octree, associating attribute information with octree nodes. For the attributes of occupied nodes within the same parent node, a recursive transformation is performed from the bottom up, transforming nodes in each layer from the x, y, and z dimensions until the root node of the octree is reached. During the hierarchical transformation process, the low-pass (DC) coefficients obtained after transforming nodes in the same layer are passed to nodes in the next layer for further transformation, while all high-pass (AC) coefficients are encoded using an arithmetic encoder. In Figure 15, g represents low-frequency coefficients, and h represents high-frequency coefficients. At the encoding end, the low-frequency coefficients g need to be... 0,0 The residuals and high-frequency coefficients h 0,0The residuals are all written into the bitstream. As shown in Figure 15, the RAHT forward transform and the RAHT inverse transform are relative terms. Both the RAHT forward transform and the RAHT inverse transform can be called RAHT transforms, but the difference is that their transformation processes are opposite.
[0099] During the transformation process, the DC coefficients (direct current components) after transformation at the same layer node will be passed to the next layer for further transformation, while the AC coefficients (alternating current components) after transformation at each layer will be quantized and encoded. The main transformation process will be described below.
[0100] Figure 16 is a schematic diagram of a forward RAHT transformation, and Figure 17 is a schematic diagram of an inverse RAHT transformation. Assume that g′ L,2x,y,z Let g′L,2x+1,y,z be the DC coefficients of two attributes that are neighbors in layer L. After linear transformation, the information of layer L-1 is the AC coefficients f′. L-1,x,y,z and DC coefficient g′ L-1,x,y,z f′ L-1,x,y,z No further transformation will be performed; quantization encoding will proceed directly. L-1,x,y,z The process will continue searching for nearest neighbors for transformation. If no neighbors are found, the node will be directly passed to layer L-2; that is, the RAHT transformation is only effective for nodes with neighbors; nodes without neighbors will be directly passed to the next layer. During the above transformation process, g′ L,2x,y,z The weights (number of non-empty child nodes within the node) corresponding to g′L,2x+2,y,z are w′ respectively. L,2x,y,z and w′L,2x+1,y,z (abbreviated as w′0 and w′1), g′ L-1,x,y,z The weight is w′ L-1,x,y,z Then the general transformation formula is:
[0101] In the formula T w0,w1 Here is the transformation matrix:
[0102] The transformation matrix adaptively changes and updates according to the weights corresponding to each point. The above process iterates and updates continuously based on the partitioning structure of the octree until the root node of the octree is reached.
[0103] The following describes the region-adaptive hierarchical intra-predictive transform coding.
[0104] Region-adaptive hierarchical predictive transform coding is based on RAHT transform coding. As shown in Figure 18, RAHT attribute transformation follows the hierarchical order of an octree, continuously transforming from the voxel level until the root node is reached, thus completing the hierarchical transform coding of the entire attribute. In predictive transform coding, attribute prediction transform coding is also based on the hierarchical order of an octree, but it continuously transforms from the root node until the voxel level. In each RAHT attribute transformation process, attribute prediction transform coding is performed based on 2x2x2 blocks.
[0105] As shown in Figure 18, the grid-filled blocks represent the current block to be encoded, and the diagonal-filled blocks represent neighboring blocks that are coplanar or collinear with the current block. The attributes of the current block are normalized as follows: a node =A node / w node
[0106] First, the attributes of the current block can be obtained by using the attributes of points contained within the current block, i.e., A. node The mean value 'a' of the current block's attributes can be obtained by simply adding the attributes of the points contained in the current block; then, the mean value 'a' of the current block's attributes is obtained by normalizing the attributes of the current block with the number of points in the current block. node The attribute transformation encoding is performed using the average value of the current block attributes. See Figure 19 for the specific encoding process.
[0107] Figure 19 shows the overall process of RAHT attribute prediction transformation coding. In Figure 12, (d) represents the current block attribute, and (e) represents the predicted block attribute obtained by linear weighted fitting using the neighborhood attributes of the current block. Finally, attribute transformations are performed on both to obtain DC and AC coefficients, and the AC coefficients are then predicted and coded.
[0108] The predicted attributes of the current block are obtained through linear fitting, as shown in Figure 20. As shown in Figure 20, firstly, 19 neighboring blocks of the current block are obtained. Secondly, the attributes of each sub-block are predicted using a linear weighted average based on the spatial geometric distance between the neighboring blocks and each sub-block of the current block. Finally, the predicted block attributes obtained through linear weighting are transformed. (The process is repeated in the original text.)
[0109] The specific attribute transformation is shown in Figure 21, where (d) represents the original attribute value, and the corresponding attribute transformation coefficients are shown in the following formula:
[0110] In Figure 21, (e) represents the predicted attribute value, and the corresponding attribute transformation coefficients are shown in the following formula:
[0111] By subtracting the original attribute value from the predicted attribute value, the prediction residual can be obtained as shown in the following formula:
[0112] The following is an introduction to the region-adaptive hierarchical inter-frame predictive transform coding scheme.
[0113] In G-PCC attribute inter-frame predictive coding, if inter-frame predictive coding is initiated, a RAHT attribute transform coding structure is constructed based on the geometric information of the current node to be coded. This involves continuously merging nodes at the voxel level until the root node of the entire RAHT transform tree is obtained, resulting in a hierarchical transform coding structure for the attributes. According to the RAHT transform structure, the root node is used to divide the tree into N child nodes (N ≤ 8). In the inter-frame predictive coding scheme, the attributes of the N child nodes are independently orthogonally transformed using the RAHT transform to obtain DC and AC coefficients. The AC coefficients of the N child nodes are then used for attribute inter-frame prediction in the following manner:
[0114] (1) The inter-frame prediction node of the current node is valid: that is, if the same node exists, the attribute of the prediction node will be directly used as the attribute prediction value of the current node to be encoded.
[0115] (2) The current node can find a node with the same position as the current node in the buffer of the reference frame: that is, if a peer node exists, the AC coefficients of the M child nodes contained in the peer node will be directly used as the AC coefficient attribute prediction values of the N child nodes of the current node.
[0116] If the AC coefficient of the prediction node is not zero, then the AC coefficient of the prediction node is directly used as the prediction value.
[0117] If the AC coefficient of the predicted node is zero, the AC coefficient of the corresponding child node in the intra-frame prediction will be used as the predicted value.
[0118] (3) The inter-frame prediction node of the current node is invalid: that is, the co-location node does not exist. In this case, the attribute prediction value of the adjacent node in the frame is used as the attribute prediction value of the node to be encoded.
[0119] Based on this, the existing RAHT inter-frame coding will select the best RAHT coding mode for each layer: intra-frame prediction coding or inter-frame prediction coding. When the cost of the intra-frame prediction coding mode is less than the cost of the inter-frame prediction coding mode, RAHT intra-frame prediction will be performed on the current layer; otherwise, RAHT inter-frame prediction will be performed.
[0120] General test conditions for GPCC
[0121] 1) There are 4 types of test conditions:
[0122] Condition 1: Geometric position is finitely lossy, and properties are lossy;
[0123] Condition 2: Geometric position is lossless, but attributes are lossy;
[0124] Condition 3: Geometric position is lossless, but attribute loss is limited;
[0125] Condition 4: Geometric position is lossless and attribute is lossless.
[0126] 2) The general test sequence includes four types: Cat1A, Cat1B, Cat3-fused, and Cat3-frame. Among them, Cat2-frame point cloud only contains reflectivity attribute information, Cat1A and Cat1B point clouds only contain color attribute information, and Cat3-fused point cloud contains both color and reflectivity attribute information.
[0127] 3) Technical approach: There are two approaches, distinguished by the algorithm used in geometric compression.
[0128] Technical Route 1: Octree Coding Branch:
[0129] At the encoding end, the bounding box is divided into sub-cubes in sequence. The non-empty sub-cubes (containing points in the point cloud) are further divided until the leaf nodes are 1x1x1 unit cubes. In the case of geometric lossless encoding, the number of points contained in the leaf nodes needs to be encoded. Finally, the encoding of the geometric octree is completed, and a binary code stream is generated.
[0130] On the decoding side, the decoder follows a breadth-first traversal order, continuously parsing the placeholder code of each node and then dividing the nodes until a 1x1x1 unit cube is obtained. In the case of geometric lossless decoding, it is necessary to parse the number of points contained in each leaf node and finally recover the geometrically reconstructed point cloud information.
[0131] Technical Route 2: Predictive Tree Coding Branch:
[0132] At the encoding end, two different methods are used to build the prediction tree structure: KD-Tree (high latency, slow mode) and using LiDAR calibration information to assign each point to a different laser and build the prediction structure according to the different lasers (low latency, fast mode). Next, based on the prediction tree structure, each node in the prediction tree is traversed, and different prediction modes are selected to predict the geometric position information of the node to obtain the prediction residual. Then, quantization parameters are used to quantize the geometric prediction residual. Finally, through continuous iteration, the prediction residual of the prediction tree node position information, the prediction tree structure, and the quantization parameters are encoded to generate a binary code stream.
[0133] At the decoding end, the decoder first reconstructs the prediction tree structure by continuously parsing the bitstream; then, it obtains the geometric position prediction residual information and quantization parameters of each prediction node by parsing the bitstream, and performs inverse quantization on the prediction residual; finally, it recovers the reconstructed geometric position information of each node, and completes the geometric reconstruction at the decoding end.
[0134] In the relevant G-PCC attribute RAHT intra-frame coding, the (last_component_prediction_enable_flag) in the high-level aps syntax element determines whether to perform cross-component prediction for the last component (Chroma Cr). The specific coding algorithm is described above in the attribute information coding section. If cross-component prediction coding is enabled, the RAHT layer is used as the coding unit. The linear relationship between Chroma Cb and Chroma Cr is fitted using the reconstructed N (N=128) coefficients. This linear relationship is then used to perform cross-component prediction for the last component, Chroma Cr, thereby further improving the efficiency of point cloud attribute information coding.
[0135] However, this coding scheme does not consider the distribution characteristics of attribute information of each RAHT layer coding unit node. Instead, it directly determines whether to enable cross-component prediction coding at the sequence level. When cross-component prediction coding is enabled, the RAHT layer is used as the coding unit to fit the linear relationship between different components using the reconstructed N attribute information. This coding scheme does not utilize the attribute distribution characteristics of the current node, resulting in low coding efficiency of attribute information. Based on this problem, this application introduces a new cross-component coding scheme that can be applied to both intra-frame and inter-frame coding. Specifically, using the RAHT layer as the coding unit, two coding modes are introduced for each RAHT layer coding unit: cross-component prediction and non-cross-component prediction. Each RAHT layer coding unit can use intra-frame prediction, inter-frame prediction, or no prediction. Before encoding the AC coefficients of different RAHT layer coding units, the optimal coding mode of the current RAHT coding layer is obtained at the coding end using the rate-distortion optimization algorithm, namely: cross-component prediction coding and non-cross-component prediction coding. Finally, the optimal coding mode of the current RAHT coding layer is passed to the decoding end. The decoding end uses the decoding mode of the current RAHT layer to reconstruct the AC coefficients of the current layer, thereby completing the entire attribute RAHT decoding and ultimately improving the RAHT attribute coding efficiency.
[0136] Based on the above analysis, the embodiments of this application will be described in detail below with reference to the accompanying drawings.
[0137] This application provides a decoding method that can be applied to a point cloud decoder. Figure 22 is a schematic diagram of the implementation flow of the decoding method provided in this application. As shown in Figure 22, the method includes the following steps 2201 and 2202:
[0138] Step 2201: Determine whether the decoding mode of the current transform layer node enables cross-component prediction mode;
[0139] Step 2202: Determine the transformation coefficients of the first attribute component of the current node according to the decoding mode.
[0140] It is understood that in the decoding method provided in the embodiments of this application, it is determined whether the decoding mode of the node of the current transform layer enables cross-component prediction mode; then, according to the decoding mode, the transform coefficient of the first attribute component of the current node is determined; thus, for the node of the current transform layer, cross-component prediction mode may be enabled or may not be enabled, rather than enabling cross-component prediction mode for all nodes of all transform layers of the current point cloud, which is beneficial to saving decoding efficiency.
[0141] The following describes further optional implementation methods and related terms for each of the above steps.
[0142] In step 2201, it is determined whether the decoding mode of the current transform layer node enables cross-component prediction mode.
[0143] In this embodiment, there is no restriction on the level at which the cross-component prediction mode is enabled; it can be hierarchical or node-level. In some embodiments, the decoding mode of the node in the current transform layer mentioned in step 2201 can be effective for all nodes in the current transform layer, effective for the node group to which the current node belongs, or effective for the current node itself; wherein the number of nodes in the node group is greater than or equal to 1 and less than or equal to the number of nodes in the current transform layer.
[0144] In other words, for step 2201, in embodiment 1, it is determined whether the decoding mode of all nodes in the current transform layer enables cross-component prediction mode. That is, for the current transform layer, cross-component prediction mode may or may not be enabled. Whether to enable cross-component prediction mode is restricted to the transform layer level. Thus, for all transform layers of the current point cloud, only some transform layers may use cross-component prediction mode, rather than all transform layers enabling cross-component prediction mode; this is beneficial to improving encoding and decoding efficiency.
[0145] For step 2201, in Embodiment 2, it is determined whether the decoding mode of the current node group in the current transform layer enables cross-component prediction mode; where the current node group refers to the node group to which the current node belongs. That is, for the current node group of the current transform layer, cross-component prediction mode may or may not be enabled. Compared to enabling cross-component prediction mode for all nodes in the entire transform layer, and enabling cross-component prediction mode for all transform layers of the current point cloud, Embodiment 2 can further improve encoding and decoding efficiency.
[0146] For step 2201, in embodiment 3, it is determined whether the decoding mode of the current node of the current transform layer enables cross-component prediction mode. For each node of the current transform layer, mode selection can be performed, which may enable or disable cross-component prediction mode, thus further improving encoding and decoding efficiency.
[0147] In this embodiment of the application, there are no restrictions on how to implement step 2201. That is, there are no restrictions on the method for determining the decoding mode of the node of the current transform layer. The decoding mode of the node of the current transform layer can be determined based on the syntax elements in the bitstream or implicit deduction.
[0148] Specifically, in some embodiments, step 2201 can be implemented as follows: decoding the bitstream, determining a first syntax element, the first syntax element being used to indicate whether the decoding mode of the current transform layer enables cross-component prediction mode; and determining the decoding mode of the current node based on the first syntax element.
[0149] For example, in some embodiments, the value of the first syntax element is a first numerical value or a second numerical value; wherein the first numerical value is used to indicate that the current transform layer enables cross-component prediction mode; and the second numerical value is used to indicate that the current transform layer does not enable cross-component prediction mode.
[0150] Furthermore, in some embodiments, the first syntax element is also used to instruct the current transform layer to enable intra-frame prediction mode, inter-frame prediction mode, or transform mode. That is, in this embodiment, the first syntax element may instruct the activation of any one of the following decoding modes 1 to 6:
[0151] Decoding Mode 1: Intra-frame prediction mode and cross-component prediction mode;
[0152] Decoding Mode 2: Inter-frame Prediction Mode and Cross-component Prediction Mode;
[0153] Decoding Mode 3: Transform Mode and Cross-Component Prediction Mode;
[0154] Decoding Mode 4: Intra-frame prediction mode and non-component prediction mode;
[0155] Decoding Mode 5: Inter-frame Prediction Mode and Non-Component Prediction Mode;
[0156] Decoding Mode 6: Transform Mode and Non-Component Prediction Mode.
[0157] It should be noted that the "non-cross-component prediction mode" refers to disabling cross-component prediction. Different values of the first syntax element indicate different decoding modes. It should be understood that the first syntax element is valid for the current transform layer, meaning that the decoding mode is the same for all nodes in the current transform layer.
[0158] It is understandable that this method of directly indicating the decoding mode through the first syntax element is an explicit indication method. Of course, step 2201 can also be implemented through implicit deduction. For example, step 2201 can be implemented through the following embodiments 4, 5, 6 or 7.
[0159] In Example 4, as shown in FIG23, step 2201 can be implemented by the following steps 2301 to 2303:
[0160] Step 2301: Decode the bitstream and determine the second syntax element, which is used to indicate the first threshold.
[0161] For example, in some embodiments, the second syntax element may be last_component_prediction_raht_depth, the value of which is equal to the first threshold.
[0162] Step 2302: Determine the level of the current transformation layer.
[0163] In some embodiments, the current transform layer is a RAHT transform layer, and therefore the current transform layer can also be referred to as the current RAHT transform layer.
[0164] Furthermore, in some embodiments, the RAHT transform layer is defined as shown in Figure 24, where a layer obtained by downsampling along the Z, Y, and X directions is called a RAHT transform layer.
[0165] Step 2303: Determine the decoding mode of all nodes in the current transform layer based on the relationship between the current transform layer level and the first threshold.
[0166] For step 2303, further, in some embodiments, if the level of the current transform layer is greater than or equal to a first difference, the decoding mode enables cross-component prediction mode; wherein the first difference is equal to the level of the root node minus the first threshold. In other embodiments, if the level of the current transform layer is less than the first difference, the decoding mode does not enable cross-component prediction mode.
[0167] In this embodiment, the transformation layer containing the root node has the highest level.
[0168] It should be understood that the decoding mode determined by the method shown in Figure 23 is valid for all nodes of the current transform layer.
[0169] In Embodiment 5, step 2201 can be implemented as follows: determine the decoding mode of all nodes in the current transform layer based on the number of reconstructed nodes in the current transform layer.
[0170] Furthermore, in some embodiments, the decoding mode enables cross-component prediction mode when the number of reconstructed nodes in the current transform layer is greater than or equal to a second threshold. In other embodiments, the decoding mode does not enable cross-component prediction mode when the number of reconstructed nodes in the current transform layer is less than the second threshold.
[0171] It should be understood that the decoding mode determined by the method described in Embodiment 5 is valid for all nodes of the current transform layer, that is, the decoding mode of all nodes of the current transform layer is the same.
[0172] In Example 6, the step 2201, "determining whether the decoding mode of the node in the current transform layer is enabled by cross-component prediction mode", can be implemented as follows: the decoding mode of the current node in the current transform layer is determined based on the correlation between the attribute reconstruction value of the first attribute component of the parent node of the current node and the attribute reconstruction value of the first attribute component of the neighboring nodes of the parent node of the current node.
[0173] Further, in some embodiments, the correlation can be determined based on the error between the attribute reconstruction value of the first attribute component of the current node's parent node and the attribute reconstruction values of the first attribute components of one or more neighboring nodes of the current node's parent node. For example, if the error between the attribute reconstruction value of the first attribute component of the current node's parent node and the attribute reconstruction values of the first attribute components of at least Q neighboring nodes of the current node's parent node is less than or equal to a first error threshold, then it is determined that the decoding mode of the current node in the current transform layer enables cross-component prediction mode. Otherwise, the decoding mode of the current node does not enable cross-component prediction mode. As another example, if the error between the attribute reconstruction value of the first attribute component of the current node's parent node and the average of the attribute reconstruction values of the first attribute components of multiple neighboring nodes of the current node's parent node is less than or equal to a second error threshold, then it is determined that the decoding mode of the current node in the current transform layer enables cross-component prediction mode. Otherwise, the decoding mode of the current node does not enable cross-component prediction mode.
[0174] It should be understood that the determination result of the method described in Embodiment 6 is valid for the current node of the current transform layer, that is, determining whether the decoding mode of the current node of the current transform layer enables cross-component prediction mode.
[0175] In Embodiment 7, the step 2201, "determining whether the decoding mode of the node in the current transform layer enables cross-component prediction mode," can be implemented as follows: decode the bitstream, determine a third syntax element, the third syntax element being used to indicate whether the decoding mode of the current node or the node group to which the current node belongs enables cross-component prediction mode; wherein, the number of nodes in the node group is greater than or equal to 1 and less than or equal to the number of nodes in the current transform layer; determine the decoding mode of the current node according to the third syntax element.
[0176] Furthermore, in some embodiments, the third syntax element is also used to instruct the current node or the node group to which the current node belongs to enable intra-frame prediction mode, inter-frame prediction mode, or transform mode.
[0177] It should be understood that Example 7 actually describes two embodiments. In one embodiment, the third syntax element is used to indicate whether the decoding mode of the node group enables cross-component prediction mode, meaning the decoding mode indicated by the third syntax element is valid for all nodes in the node group, and all nodes in the same node group have the same decoding mode. In another embodiment, the third syntax element is used to indicate whether the decoding mode of the current node enables cross-component prediction mode, meaning the decoding mode indicated by the third syntax element is valid for the current node, but different nodes may use different decoding modes.
[0178] In step 2202, the transformation coefficients of the first attribute component of the current node are determined according to the decoding mode.
[0179] For the case where the cross-component prediction mode is enabled in the decoding mode, the specific implementation of step 2202 can be carried out in the following embodiment 8, embodiment 9 or embodiment 10.
[0180] In Example 8, as shown in FIG25, step 2202 can be implemented through the following steps 2501 and 2502:
[0181] Step 2501: When the cross-component prediction mode is enabled in the decoding mode, determine the predicted value of the transformation coefficient of the first attribute component of the current node based on the transformation coefficient of the second attribute component of the current node.
[0182] Further, in some embodiments, step 2501 can be implemented as follows: determining a first coefficient, the first coefficient being used to characterize the linear relationship between the transformation coefficients of the first attribute component and the transformation coefficients of the second attribute component; and determining a predicted value of the transformation coefficient of the first attribute component of the current node based on the first coefficient and the transformation coefficient of the second attribute component of the current node. For example, the predicted value of the transformation coefficient of the first attribute component of the current node is equal to the product of the first coefficient and the transformation coefficient of the second attribute component of the current node.
[0183] In the embodiments of this application, there are no restrictions on the method for determining the first coefficient. The first coefficient can be a predefined value or can be determined by the following methods.
[0184] Specifically, in some embodiments, the first coefficient can be determined by: obtaining the transformation coefficients of the first attribute component and the second attribute component of the reference node; wherein the decoding mode of the reference node is a cross-component prediction mode; and fitting the linear relationship between the transformation coefficients of the first attribute component and the transformation coefficients of the second attribute component of the reference node to obtain the first coefficient.
[0185] It is understood that the reference nodes used to fit the linear relationship are all nodes that use cross-component prediction mode. Specifically, the transform coefficients of the first attribute component of the reference node are obtained by using cross-component prediction mode. Since the transform coefficients of the first attribute component obtained using cross-component prediction mode have a strong correlation with the transform coefficients of the second attribute component, fitting the linear relationship between the transform coefficients of the first and second attribute components based on these transform coefficients can yield more accurate first coefficients, thereby improving the accuracy of the predicted value of the transform coefficient of the first attribute component of the current node and reducing rate distortion at the decoding end. For the encoding end, this can save codeword overhead.
[0186] The transformation coefficients of the first attribute component obtained without using the cross-component prediction mode have a low correlation with the transformation coefficients of the second attribute component, and there is a large error between them. If these transformation coefficients are included in the determination of the first coefficient, it may increase the error of the first coefficient, resulting in a decrease in the accuracy of the predicted value of the transformation coefficient of the first attribute component of the current node.
[0187] On the other hand, only the transformation coefficients of the first and second attribute components of the reference nodes that have enabled cross-component prediction mode are cached, and the transformation coefficients of the nodes that have not enabled cross-component prediction mode are not stored, which helps to save cache overhead.
[0188] Step 2502: Determine the transformation coefficients of the first attribute component of the current node based on the predicted values of the transformation coefficients of the first attribute component of the current node.
[0189] In some embodiments, step 2502 can be implemented as follows: decoding the bitstream to obtain a first quantized value of the residual value of the transform coefficients of the first attribute component of the current node; performing inverse quantization on the first quantized value to obtain an inverse quantized value of the first quantized value; and determining the transform coefficients of the first attribute component of the current node based on the predicted value of the transform coefficients of the first attribute component of the current node and the inverse quantized value of the first quantized value.
[0190] For example, in some embodiments, the transform coefficient of the first attribute component of the current node is equal to the sum of the predicted value of the transform coefficient of the first attribute component of the current node and the inverse quantization value of the first quantization value.
[0191] Furthermore, Embodiment 8 and its further embodiments can be implemented by the point cloud decoder when the decoding mode enables cross-component prediction mode but does not enable intra-frame prediction mode or inter-frame prediction mode.
[0192] In Example 9, as shown in FIG26, step 2202 can be implemented through the following steps 2601 and 2602:
[0193] Step 2601: When the cross-component prediction mode is enabled in the decoding mode, determine the residual value of the transform coefficient of the first attribute component of the current node based on the residual value of the transform coefficient of the second attribute component of the current node.
[0194] In some embodiments, the residual value of the transformation coefficient of the second attribute component mentioned in step 2601 refers to the residual value after dequantization.
[0195] In some embodiments, step 2601 can be implemented as follows: determining a second coefficient, the second coefficient being used to characterize the linear relationship between the residual value of the transformation coefficient of the first attribute component and the residual value of the transformation coefficient of the second attribute component; and determining the residual value of the transformation coefficient of the first attribute component of the current node based on the second coefficient and the residual value of the transformation coefficient of the second attribute component of the current node.
[0196] For example, in some embodiments, determining the residual value of the transform coefficient of the first attribute component of the current node based on the second coefficient and the residual value of the transform coefficient of the second attribute component of the current node includes: the residual value of the transform coefficient of the first attribute component of the current node is equal to the product of the second coefficient and the residual value of the transform coefficient of the second attribute component of the current node; determining the residual value of the transform coefficient of the first attribute component of the current node based on the predicted value of the residual value of the transform coefficient of the first attribute component of the current node and the residual value of the residual value of the transform coefficient of the first attribute component of the current node; wherein, the residual value of the residual value of the transform coefficient of the first attribute component of the current node is the dequantized value, which can be obtained by decoding the bitstream to obtain the decoded value of the residual value of the residual value of the transform coefficient of the first attribute component of the current node, and then dequantizing the decoded value to obtain the residual value of the residual value of the transform coefficient of the first attribute component of the current node as described in this example.
[0197] In the embodiments of this application, there are no restrictions on the method for determining the second coefficient. The second coefficient can be a predefined value or can be determined by the following methods.
[0198] Specifically, in some embodiments, the second coefficient can be determined by: obtaining the residual values of the transformation coefficients of the first attribute component and the second attribute component of the reference node; wherein the decoding mode of the reference node is a cross-component prediction mode; and fitting a linear relationship between the residual values of the transformation coefficients of the first attribute component and the residual values of the transformation coefficients of the second attribute component of the reference node to obtain the second coefficient.
[0199] It is understood that the reference nodes used to fit the linear relationship are all nodes that use cross-component prediction mode. Specifically, this means that the residual values of the transform coefficients of the first attribute component of the reference node are obtained by using cross-component prediction mode. Since the residual values of the transform coefficients of the first attribute component obtained using cross-component prediction mode are strongly correlated with the residual values of the transform coefficients of the second attribute component, fitting the linear relationship between the residual values of the transform coefficients of the first and second attribute components based on these residual values yields a more accurate second coefficient. This improves the accuracy of the residual values of the transform coefficients of the first attribute component of the current node, thereby reducing rate distortion at the decoding end. For the encoding end, this saves codeword overhead.
[0200] The residual values of the transformation coefficients of the first attribute component obtained without using the cross-component prediction model have little correlation with the residual values of the transformation coefficients of the second attribute component, and there is a large error between them. If these residual values are included in the determination of the second coefficient, it may increase the error of the second coefficient, resulting in a decrease in the accuracy of the residual values of the transformation coefficients of the first attribute component of the current node.
[0201] On the other hand, only the residual values of the transform coefficients of the first and second attribute components of the reference node with cross-component prediction mode enabled are cached, while the residual values of the transform coefficients of the node without cross-component prediction mode enabled are not cached. This helps to save cache overhead.
[0202] Step 2602: Determine the transformation coefficients of the first attribute component of the current node based on the residual value of the transformation coefficients of the first attribute component of the current node.
[0203] In some embodiments, as shown in FIG27, step 2602 can be implemented by the following steps 2701 to 2703:
[0204] Step 2701: Determine the predicted value of the first attribute component of the current node;
[0205] Furthermore, in some embodiments, step 2701 can be implemented as follows: perform intra-frame prediction or inter-frame prediction on the first attribute component of the current node to obtain the predicted value of the first attribute component of the current node.
[0206] Step 2702: Determine the predicted value of the transformation coefficient of the first attribute component of the current node based on the predicted value of the first attribute component of the current node.
[0207] For example, in some embodiments, the predicted value of the first attribute component of the current node can be subjected to RAHT transformation to obtain the predicted value of the transformation coefficient of the first attribute component of the current node.
[0208] Step 2703: Determine the transformation coefficients of the first attribute component of the current node based on the predicted value and residual value of the transformation coefficients of the first attribute component of the current node.
[0209] For example, in some embodiments, the transformation coefficient of the first attribute component of the current node is equal to the sum of the predicted value of the transformation coefficient of the first attribute component of the current node and the residual value of the transformation coefficient of the first attribute component of the current node.
[0210] Furthermore, embodiments of Example 9 and further embodiments thereof may be implemented by the point cloud decoder when the decoding mode enables cross-component prediction mode and enables intra-frame prediction mode or enables inter-frame prediction mode.
[0211] Regarding step 2202, "determine the transformation coefficients of the first attribute component of the current node according to the decoding mode", in embodiment 10, it can be implemented as follows: when the cross-component prediction mode is enabled in the decoding mode, the transformation coefficients of the first attribute component of the current node are determined according to the inverse quantization value of the transformation coefficients of the second attribute component of the current node.
[0212] Specifically, the inverse quantization value of the transform coefficient of the second attribute component of the current node can be obtained as follows: decode the bitstream to obtain the decoded value of the transform coefficient of the second attribute component of the current node, and inverse quantize the decoded value to obtain the inverse quantization value of the transform coefficient of the second attribute component of the current node.
[0213] Further, in some embodiments, determining the transform coefficients of the first attribute component of the current node based on the inverse quantization value of the transform coefficients of the second attribute component of the current node includes: determining a third coefficient, the third coefficient being used to characterize the linear relationship between the transform coefficients of the first attribute component and the inverse quantization value of the transform coefficients of the second attribute component; and determining the transform coefficients of the first attribute component of the current node based on the third coefficient and the inverse quantization value of the transform coefficients of the second attribute component of the current node. For example, the transform coefficient of the first attribute component of the current node is equal to the product of the third coefficient and the inverse quantization value of the transform coefficients of the second attribute component of the current node.
[0214] In the embodiments of this application, there are no restrictions on the method for determining the third coefficient. The third coefficient can be a predefined value or can be determined by the following methods.
[0215] Specifically, in some embodiments, the third coefficient can be determined by: obtaining the transform coefficients of the first attribute component and the inverse quantization values of the transform coefficients of the second attribute component of the reference node; wherein the decoding mode of the reference node is a cross-component prediction mode; and fitting the linear relationship between the transform coefficients of the first attribute component and the inverse quantization values of the transform coefficients of the second attribute component of the reference node to obtain the third coefficient.
[0216] Furthermore, embodiments of Example 10 and further embodiments thereof may be implemented by the point cloud decoder when the decoding mode enables cross-component prediction mode and transform mode (such as RAHT transform mode) and does not enable intra-frame prediction mode or inter-frame prediction mode.
[0217] It should be noted that, in the embodiments of this application, there is no limitation on the number of reference nodes used to fit the linear relationship. Furthermore, in some embodiments, where the decoding mode is the same for nodes in the same transform layer, the reference nodes participating in fitting the linear relationship and the current node belong to the same transform layer. In one possible implementation, after obtaining the transform coefficients of the first attribute components of all nodes in the current transform layer, the cached transform coefficient information of the nodes in the current transform layer, which refers to the coefficients used to fit the linear relationship, is cleared.
[0218] Similarly, in some embodiments, in schemes where the decoding mode is the same for nodes in the same node group, the reference node participating in fitting the linear relationship and the current node belong to the same node group. In one possible implementation, after obtaining the transformation coefficients of the first attribute components of all nodes in the current node group, the cached transformation coefficient information of the nodes in the current node group, which refers to the coefficients used to fit the linear relationship, is cleared.
[0219] Of course, in other embodiments, there is no restriction on whether the reference node belongs to the same transformation layer or the same node group as the current node. That is, the reference nodes participating in fitting the linear relationship may include nodes of the layer above the current transformation layer and / or nodes of the current transformation layer, or the reference nodes participating in fitting the linear relationship may include nodes of the node group above the current node group and / or nodes of the current node group. There is no restriction on whether the reference node belongs to the same node group as the current node. For example, the reference node is the H nodes preceding the current node.
[0220] In this embodiment, there are no restrictions on the first attribute component and the second attribute component; the first attribute component and the second attribute component can be any two different components of a node's attribute. For example, the first attribute component is Cr, and the second attribute component is Cb.
[0221] For Embodiment 8, Embodiment 9 or Embodiment 10 above, a possible implementation is described below.
[0222] First, two cache entries, ChromaCbMultCb and ChromaCbMultCr, are defined. These caches store the attribute information of the currently reconstructed nodes in the RAHT layer (i.e., the reference nodes), and their size is fixed at MaxSize (currently set to 128). The contents of these two caches are used to fit a linear relationship between ChromaCb and ChromaCr, where windowSize represents the current cache size. The specific fitting relationship is as follows:
[0223] The linear relationship between the ChromCb and ChromaCr components in the current RAHT layer is calculated using sumCbMultCb and sumCbMultCr:
[0224] After calculating the linear relationship between the current encoding / decoding point ChormCb and ChormCr, the following relationship is used to perform cross-component prediction of the ChormCr component: predChormCr=ChormCb×k
[0225] After encoding / decoding the attribute information of the current node, the reconstructed attribute information of the current node needs to be used to update the cached ChromaCbMultCb and ChromaCbMultCr. The specific update method is as follows:
[0226] 1) When `windowSize` is greater than or equal to `MaxSize`, the first element of cached `CromaCbMultCb` and `CromaCbMultCr` is discarded according to the first-in, first-out (FIFO) principle. Specifically: `while(windowSize>=MaxSize){ ChromaCbMultCb.pop_front(); ChromaCbMultCr.pop_front(); windowSize--;}`
[0227] 2) Assuming the reconstruction attribute information of the current node is reconAttr[nodeNum][3], where nodeNum represents the number of child nodes to be reconstructed, and 3 represents the Luma, ChormCb, and ChromaCr components, then the cache is updated as follows:
[0228] In one possible implementation, where the decoding mode is the same for nodes in the same transform layer, after encoding / decoding the attribute information of all nodes in the current transform layer, the information in ChromaCbMultCb and ChromaCbMultCr is cleared.
[0229] In another possible implementation, where the same decoding mode is used for nodes in the same node group, after encoding / decoding the attribute information of all nodes in the current node group, the information in ChromaCbMultCb and ChromaCbMultCr is cleared.
[0230] It should be understood that, for Example 8, ChromaCbMultCb caches the transform coefficients of the second attribute component of the reconstructed node, and ChromaCbMultCr caches the transform coefficients of the first attribute component of the reconstructed node, where k is the first coefficient. For Example 9, ChromaCbMultCb caches the residual values of the transform coefficients of the second attribute component of the reconstructed node, and ChromaCbMultCr caches the residual values of the transform coefficients of the first attribute component of the reconstructed node, where k is the second coefficient. For Example 10, ChromaCbMultCb caches the inverse quantized values of the transform coefficients of the second attribute component of the reconstructed node, and ChromaCbMultCr caches the transform coefficients of the first attribute component of the reconstructed node, where k is the third coefficient.
[0231] It should be understood that the types of ChromaCb and ChromaCr are different in different embodiments of Embodiments 8-10 above. For example, in a specific example of Embodiment 8, ChromaCb is the transformation coefficient of the Cb attribute component of the reference node, ChromaCr is the transformation coefficient of the Cr attribute component of the reference node, and k is the first coefficient. As another example, in a specific example of Embodiment 9, ChromaCb is the residual value of the transformation coefficient of the Cb attribute component of the reference node, ChromaCr is the residual value of the transformation coefficient of the Cr attribute component of the reference node, and k is the second coefficient. Yet another example, in a specific example of Embodiment 10, ChromaCb is the inverse quantization value of the transformation coefficient of the Cb attribute component of the reference node, ChromaCr is the transformation coefficient of the Cr attribute component of the reference node, and k is the third coefficient.
[0232] The previous section described how to determine the transform coefficients of the first attribute component of the current node when cross-component prediction mode is enabled in the decoding mode of the current transform layer node. The following section will explain how to determine the transform coefficients of the first attribute component of the current node when cross-component prediction mode is not enabled.
[0233] Regarding step 2202, "determining the transform coefficients of the first attribute component of the current node according to the decoding mode," in some embodiments, it can be implemented as follows: when the cross-component prediction mode is not enabled in the decoding mode, decode the bitstream and determine the decoded value or residual value of the transform coefficients of the first attribute component of the current node; and determine the transform coefficients of the first attribute component of the current node according to the decoded value or residual value of the transform coefficients of the first attribute component of the current node.
[0234] Furthermore, the method for determining the transform coefficients of the first attribute component of the current node is different depending on whether the decoding mode is enabled in the intra / inter-frame prediction mode. For details, please refer to the descriptions of Embodiments 11 and 12 below.
[0235] In Example 11, step 2202 can be implemented as follows: when the decoding mode does not enable cross-component prediction mode and enables intra-frame prediction or inter-frame prediction mode, decode the bitstream and determine the residual value of the transform coefficient of the first attribute component of the current node; perform intra-frame prediction or inter-frame prediction on the first attribute component of the current node to obtain the predicted value of the first attribute component of the current node; transform the predicted value of the first attribute component of the current node to obtain the predicted value of the transform coefficient of the first attribute component of the current node; determine the transform coefficient of the first attribute component of the current node based on the residual value and the predicted value of the transform coefficient of the first attribute component of the current node.
[0236] For Embodiment 11, further, in some embodiments, the decoding of the bitstream to determine the residual value of the transform coefficient of the first attribute component of the current node includes: decoding the bitstream to obtain the residual decoded value of the transform coefficient of the first attribute component of the current node, and inverse quantizing the residual decoded value to obtain the residual value of the transform coefficient of the first attribute component of the current node.
[0237] For example, in some embodiments, the transformation coefficient of the first attribute component of the current node is equal to the sum of the residual value of the transformation coefficient of the first attribute component of the current node and the predicted value of the transformation coefficient of the first attribute component of the current node.
[0238] In embodiment 12, step 2202 can be implemented as follows: when the decoding mode does not enable cross-component prediction mode, nor does it enable intra-frame prediction mode or inter-frame prediction mode, but enables transform mode (such as RAHT transform mode), the bitstream is decoded to determine the decoded value of the transform coefficient of the first attribute component of the current node; the decoded value of the transform coefficient of the first attribute component of the current node is dequantized to obtain the transform coefficient of the first attribute component of the current node.
[0239] In some embodiments of any of the decoding methods described above, the decoding method further includes: performing RAHT transformation based on the transformation coefficients of the first attribute components of all nodes in the current point cloud to obtain the reconstructed value of the first attribute components of the current point cloud.
[0240] It can be understood that the RAHT transform here is the inverse transformation process from the encoding end, i.e., the inverse RAHT transform. See Figure 17 for details, and the lower half of the rectangle in Figure 15, i.e., from f... 0,0 g 0,0 Transform to g′ 3,5 to g′ 3,0 Understanding through the process.
[0241] It should be noted that, in the embodiments of this application, whether or not to enable the decoding method described in the embodiments of this application may be subject to restrictions or be unrestricted. In the case of restrictions, in some embodiments, the method further includes: decoding the bitstream and determining a fourth syntax element, wherein the fourth syntax element indicates that the decoding mode of the current point cloud enables cross-component prediction mode.
[0242] It is understood that when the fourth syntax element indicates that the decoding mode of the current point cloud enables cross-component prediction mode, the decoding method described in the above embodiments of this application is used. At this time, cross-component prediction mode is not enabled for every node of all transform layers of the current point cloud. Instead, the decoding method described in the embodiments of this application is used to further determine whether the decoding mode of the node of the current transform layer enables cross-component prediction mode. In this way, even if the fourth syntax element indicates that the decoding mode of the current point cloud enables cross-component prediction mode, the decoding mode of any node of any transform layer in the current point cloud may not enable cross-component prediction mode, which is beneficial to saving decoding efficiency.
[0243] Furthermore, in some embodiments, the fourth syntax element may be a sequence-level (SPS), picture-level (Picture header), or slice-level (Slice header) syntax element.
[0244] This application provides an encoding method applied to a point cloud encoder. Figure 28 is a schematic diagram of the implementation flow of the encoding method provided in this application. As shown in Figure 28, the method includes the following steps 2801 to 2803:
[0245] Step 2801: Determine whether the encoding mode of the current transform layer node enables cross-component prediction mode;
[0246] Step 2802: When the cross-component prediction mode is enabled in the encoding mode, determine the residual value of the transform coefficient of the first attribute component of the current node.
[0247] Step 2803: Quantize the residual value of the transform coefficient of the first attribute component of the current node to obtain a first quantized value; and write the first quantized value into the bitstream.
[0248] It is understood that in the encoding method provided in the embodiments of this application, it is determined whether the encoding mode of the node of the current transform layer enables cross-component prediction mode; that is, for the node of the current transform layer, cross-component prediction mode may be enabled or may not be enabled, rather than enabling cross-component prediction mode for all nodes of all transform layers of the current point cloud, thus which is beneficial to saving encoding efficiency.
[0249] The following describes further optional implementation methods and related terms for each of the above steps.
[0250] In step 2801, it is determined whether the encoding mode of the current transform layer node enables cross-component prediction mode.
[0251] In this embodiment, there is no restriction on the level at which the cross-component prediction mode is enabled; it can be hierarchical or node-level. In some embodiments, the decoding mode of the node in the current transform layer mentioned in step 2801 can be effective for all nodes in the current transform layer, effective for the node group to which the current node belongs, or effective for the current node itself; wherein the number of nodes in the node group is greater than or equal to 1 and less than or equal to the number of nodes in the current transform layer.
[0252] In other words, for step 2801, in embodiment 13, it is determined whether the decoding mode of all nodes in the current transform layer enables cross-component prediction mode. That is, for the current transform layer, cross-component prediction mode may or may not be enabled. Whether to enable cross-component prediction mode is restricted to the transform layer level. Thus, for all transform layers of the current point cloud, only some transform layers may use cross-component prediction mode, rather than all transform layers enabling cross-component prediction mode; this is beneficial to improving coding efficiency.
[0253] For step 2801, in embodiment 14, it is determined whether the decoding mode of the current node group in the current transform layer enables cross-component prediction mode; where the current node group refers to the node group to which the current node belongs. That is, for the current node group in the current transform layer, cross-component prediction mode may or may not be enabled. Compared to enabling cross-component prediction mode for all nodes in the entire transform layer, and enabling cross-component prediction mode for all transform layers of the current point cloud, embodiment 14 can further improve coding efficiency.
[0254] For step 2801, in embodiment 15, it is determined whether the decoding mode of the current node of the current transform layer enables cross-component prediction mode. For each node of the current transform layer, mode selection can be performed, which may enable or disable cross-component prediction mode, thus further improving coding efficiency.
[0255] In this embodiment, there are no restrictions on how step 2801 is implemented. That is, there are no restrictions on the method for determining the decoding mode of the node in the current transform layer. Rate-distortion optimization algorithms or other rules can be used to determine whether the decoding mode of the node in the current transform layer enables cross-component prediction mode. For example, step 2801 can be implemented through any of the embodiments in Examples 16-20 below.
[0256] Specifically, in embodiment 16, step 2801 can be implemented as follows: determine the first rate-distortion cost of all nodes in the current transform layer when cross-component prediction mode is enabled, and determine the second rate-distortion cost of all nodes in the current transform layer when cross-component prediction mode is not enabled. Based on the first and second rate-distortion costs, determine whether the coding mode of all nodes in the current transform layer (i.e., the coding mode of the current transform layer) enables cross-component prediction mode. For example, the coding mode of the current transform layer is the coding mode corresponding to the minimum rate-distortion cost.
[0257] After selecting the encoding mode of the current transform layer based on the rate-distortion optimization algorithm, in some embodiments, the method further includes: writing a first syntax element into the bitstream, wherein the first syntax element is used to indicate whether the decoding mode of the current transform layer enables cross-component prediction mode.
[0258] For example, in some embodiments, the value of the first syntax element is a first numerical value or a second numerical value; wherein the first numerical value is used to indicate that the current transform layer enables cross-component prediction mode; and the second numerical value is used to indicate that the current transform layer does not enable cross-component prediction mode.
[0259] Furthermore, in some embodiments, the first syntax element is also used to instruct the current transform layer to enable intra-frame prediction mode, inter-frame prediction mode, or transform mode.
[0260] In embodiment 17, step 2801 can be implemented as follows: determine the level of the current transform layer; and determine the encoding mode of all nodes of the current transform layer according to the relationship between the level of the current transform layer and the first threshold.
[0261] In some embodiments, the encoding end may indicate a first threshold in the bitstream, that is, the encoding method further includes: writing a second syntax element into the bitstream, the second syntax element being used to indicate the first threshold.
[0262] In some embodiments, the current transform layer is a RAHT transform layer, and therefore the current transform layer can also be referred to as the current RAHT transform layer.
[0263] For Example 17, further, in some embodiments, determining the encoding mode of all nodes of the current transform layer based on the relationship between the current transform layer level and the first threshold includes: if the current transform layer level is greater than or equal to a first difference, the encoding mode enables cross-component prediction mode; wherein the first difference is equal to the root node level minus the first threshold. In other embodiments, if the current transform layer level is less than the first difference, the encoding mode does not enable cross-component prediction mode.
[0264] In this embodiment, the transformation layer containing the root node has the highest level.
[0265] In Example 18, step 2801 can be implemented as follows: determine the encoding mode of all nodes in the current transform layer based on the number of reconstructed nodes in the current transform layer.
[0266] Furthermore, in some embodiments, the coding mode enables cross-component prediction mode when the number of reconstructed nodes in the current transform layer is greater than or equal to a second threshold. In other embodiments, the coding mode does not enable cross-component prediction mode when the number of reconstructed nodes in the current transform layer is less than the second threshold.
[0267] It should be understood that the encoding mode determined by the method described in Embodiment 18 is valid for all nodes of the current transform layer, that is, the encoding mode of all nodes of the current transform layer is the same.
[0268] In Example 19, the step 2801, "determining whether the encoding mode of the node in the current transform layer is enabled by cross-component prediction mode", can be implemented as follows: the encoding mode of the current node in the current transform layer is determined based on the correlation between the attribute reconstruction value of the first attribute component of the parent node of the current node and the attribute reconstruction value of the first attribute component of the neighboring nodes of the parent node of the current node.
[0269] Further, in some embodiments, the correlation can be determined based on the error between the attribute reconstruction value of the first attribute component of the current node's parent node and the attribute reconstruction values of the first attribute components of one or more neighboring nodes of the current node's parent node. For example, if the error between the attribute reconstruction value of the first attribute component of the current node's parent node and the attribute reconstruction values of the first attribute components of at least Q neighboring nodes of the current node's parent node is less than or equal to a first error threshold, then it is determined that the encoding mode of the current node in the current transform layer enables cross-component prediction mode. Otherwise, the encoding mode of the current node does not enable cross-component prediction mode. As another example, if the error between the attribute reconstruction value of the first attribute component of the current node's parent node and the average of the attribute reconstruction values of the first attribute components of multiple neighboring nodes of the current node's parent node is less than or equal to a second error threshold, then it is determined that the encoding mode of the current node in the current transform layer enables cross-component prediction mode. Otherwise, the encoding mode of the current node does not enable cross-component prediction mode.
[0270] It should be understood that the determination result of the method described in Embodiment 19 is valid for the current node of the current transform layer, that is, determining whether the encoding mode of the current node of the current transform layer enables cross-component prediction mode.
[0271] In Example 20, the step 2801, "determining whether the encoding mode of the current transform layer's node enables cross-component prediction mode," can be implemented as follows: Determine the third rate-distortion cost of the current node or the node group to which the current node belongs in the current transform layer when cross-component prediction mode is enabled, and determine the fourth rate-distortion cost of the current node or the node group in the current transform layer when cross-component prediction mode is not enabled. Based on the third and fourth rate-distortion costs, determine whether the encoding mode of the current node or the node group in the current transform layer enables cross-component prediction mode. For example, the encoding mode of the current node or the node group in the current transform layer is the encoding mode corresponding to the minimum rate-distortion cost.
[0272] After selecting the encoding mode of the current node or the node group based on the rate-distortion optimization algorithm, in some embodiments, the encoding method further includes: writing a third syntax element into the bitstream, the third syntax element being used to indicate whether the decoding mode of the current node or the node group enables cross-component prediction mode; wherein the number of nodes in the node group is greater than or equal to 1 and less than or equal to the number of nodes in the current transform layer.
[0273] Furthermore, in some embodiments, the third syntax element is also used to instruct the current node or the node group to which the current node belongs to enable intra-frame prediction mode, inter-frame prediction mode, or transform mode.
[0274] It should be understood that Example 20 actually describes two embodiments. In one embodiment, the rate-distortion cost corresponding to the node group with and without cross-component prediction mode is determined, and based on this, it is determined whether the encoding mode of the node group enables cross-component prediction mode. The third syntax element is used to indicate whether the decoding mode of the node group enables cross-component prediction mode; that is, the decoding mode indicated by the third syntax element is valid for all nodes in the node group, and all nodes in the same node group have the same decoding mode. In another embodiment, the rate-distortion cost corresponding to the current node with and without cross-component prediction mode is determined, and based on this, it is determined whether the encoding mode of the current node enables cross-component prediction mode. The third syntax element is used to indicate whether the decoding mode of the current node enables cross-component prediction mode; that is, the decoding mode indicated by the third syntax element is valid for the current node, and different nodes may use different decoding modes.
[0275] In step 2802, if the cross-component prediction mode is enabled in the encoding mode, the residual value of the transformation coefficient of the first attribute component of the current node is determined.
[0276] Step 2802 can be further implemented through any of the following embodiments 21 to 23.
[0277] In Example 21, as shown in FIG29, step 2802 can be implemented by the following steps 2901 and 2902:
[0278] Step 2901: Determine the predicted value of the transformation coefficient of the first attribute component of the current node based on the transformation coefficient of the second attribute component of the current node.
[0279] In some embodiments, step 2901 can be implemented as follows: determining a first coefficient, the first coefficient being used to characterize the linear relationship between the transformation coefficient of the first attribute component and the transformation coefficient of the second attribute component; and determining a predicted value of the transformation coefficient of the first attribute component of the current node based on the first coefficient and the transformation coefficient of the second attribute component of the current node.
[0280] Further, in some embodiments, determining the first coefficient includes: obtaining the transformation coefficients of a first attribute component and a second attribute component of a reference node; wherein the encoding mode of the reference node is a cross-component prediction mode; and fitting the linear relationship between the transformation coefficients of the first attribute component and the transformation coefficients of the second attribute component of the reference node to obtain the first coefficient.
[0281] Step 2902: Determine the residual value of the transformation coefficient of the first attribute component of the current node based on the predicted value of the transformation coefficient of the first attribute component of the current node.
[0282] In some embodiments, the encoding method further includes: dequantizing the first quantization value to obtain the dequantized value of the first quantization value; and determining the transformation coefficients of the first attribute component of the current node based on the predicted value of the transformation coefficients of the first attribute component of the current node and the dequantized value of the first quantization value.
[0283] In some embodiments, the encoding method further includes: caching the transformation coefficients of the first attribute component of the current node when the encoding mode of the current node is a cross-component prediction mode.
[0284] Furthermore, embodiment 21 and its further embodiments can be implemented by a point cloud encoder when the encoding mode enables cross-component prediction mode but does not enable intra-frame prediction mode or inter-frame prediction mode.
[0285] In embodiment 22, step 2802 can be implemented as follows: determine the residual value of the transformation coefficient of the first attribute component of the current node based on the residual value of the transformation coefficient of the second attribute component of the current node.
[0286] In some embodiments, the residual value of the transformation coefficient of the second attribute component mentioned in Embodiment 22 refers to the residual value after dequantization.
[0287] Further, in some embodiments, embodiment 22 can be implemented as follows: determining a second coefficient, the second coefficient being used to characterize the linear relationship between the residual value of the transformation coefficient of the first attribute component and the residual value of the transformation coefficient of the second attribute component; and determining the residual value of the transformation coefficient of the first attribute component of the current node based on the second coefficient and the residual value of the transformation coefficient of the second attribute component of the current node.
[0288] For example, in some embodiments, determining the residual value of the transform coefficient of the first attribute component of the current node based on the second coefficient and the residual value of the transform coefficient of the second attribute component of the current node includes: the predicted value of the residual value of the transform coefficient of the first attribute component of the current node is equal to the product of the second coefficient and the residual value of the transform coefficient of the second attribute component of the current node; determining the residual value of the transform coefficient of the first attribute component of the current node based on the predicted value of the residual value of the transform coefficient of the first attribute component of the current node and the residual value of the residual value of the transform coefficient of the first attribute component of the current node; wherein, the residual value of the residual value of the transform coefficient of the first attribute component of the current node is the value after inverse quantization.
[0289] In the embodiments of this application, there are no restrictions on the method for determining the second coefficient. The second coefficient can be a predefined value or can be determined by the following methods.
[0290] Specifically, in some embodiments, the second coefficient can be determined by: obtaining the residual values of the transform coefficients of the first attribute component and the second attribute component of the reference node; wherein the coding mode of the reference node is a cross-component prediction mode; and fitting the linear relationship between the residual values of the transform coefficients of the first attribute component and the residual values of the transform coefficients of the second attribute component of the reference node to obtain the second coefficient; thus, it is beneficial to save coding efficiency.
[0291] Based on Embodiment 22, the encoding method further includes: determining the predicted value of the first attribute component of the current node; determining the predicted value of the transform coefficient of the first attribute component of the current node based on the predicted value of the first attribute component of the current node; performing dequantization on the first quantization value to obtain the dequantized value of the first quantization value; and determining the transform coefficient of the first attribute component of the current node based on the predicted value of the transform coefficient of the first attribute component of the current node and the dequantized value of the first quantization value. For this described embodiment, it should be noted that the first quantization value mentioned here refers to the quantized value of the residual value of the residual value of the transform coefficient of the first attribute component of the current node. Based on this first quantization value and the predicted value of the residual value of the transform coefficient of the first attribute component of the current node, the residual value of the transform coefficient of the first attribute component of the current node is obtained; then, based on the residual value of the transform coefficient of the first attribute component of the current node and the predicted value of the transform coefficient of the first attribute component of the current node, the transform coefficient of the first attribute component of the current node can be obtained.
[0292] Furthermore, in some embodiments, determining the predicted value of the first attribute component of the current node includes: performing intra-frame prediction or inter-frame prediction on the first attribute component of the current node to obtain the predicted value of the first attribute component of the current node.
[0293] Further, in some embodiments, determining the predicted value of the transform coefficient of the first attribute component of the current node based on the predicted value of the first attribute component of the current node includes: performing a RAHT transform on the predicted value of the first attribute component of the current node to obtain the predicted value of the transform coefficient of the first attribute component of the current node.
[0294] Furthermore, in some embodiments, the transformation coefficient of the first attribute component of the current node is equal to the sum of the predicted value of the transformation coefficient of the first attribute component of the current node and the inverse quantization value of the first quantization value.
[0295] Based on this, in some embodiments, the encoding method further includes: caching the transformation coefficients of the first attribute component of the current node when the encoding mode of the current node is a cross-component prediction mode.
[0296] Furthermore, Embodiment 22 and its further embodiments can be implemented by a point cloud encoder when the encoding mode enables cross-component prediction mode and intra-frame prediction mode or inter-frame prediction mode. Accordingly, in this encoding mode, the residual value of the transform coefficients of the first attribute component of the current node described in step 2803 is quantized to obtain a first quantized value; wherein, the "residual value of the transform coefficients" refers to the residual value of the residual value of the transform coefficients. In one possible implementation, the encoder can obtain the residual value of the transform coefficients of the first attribute component of the current node as follows: predict the first attribute component of the current node to obtain the predicted value of the first attribute component of the current node; transform the predicted value of the first attribute component of the current node (e.g., RAHT transform) to obtain the first value of the transform coefficients of the first attribute component of the current node; transform the original value of the first attribute component of the current node to obtain the second value of the transform coefficients of the first attribute component of the current node; obtain the original value of the residual value of the transform coefficients of the first attribute component of the current node based on the first and second values; determine the predicted value of the residual value of the transform coefficients of the first attribute component of the current node (i.e., the predicted value of the residual value of the transform coefficients of the first attribute component of the current node is equal to the product of the second coefficient and the residual value of the transform coefficients of the second attribute component of the current node); obtain the residual value of the residual value of the transform coefficients of the first attribute component of the current node based on the original value of the residual value of the transform coefficients of the first attribute component of the current node and the predicted value of the residual value of the transform coefficients of the first attribute component of the current node.
[0297] In Example 23, the step 2802, "determining the residual value of the transform coefficients of the first attribute component of the current node," can be implemented as follows: Based on the inverse quantization value of the transform coefficients of the second attribute component of the current node, determine the predicted value of the transform coefficients of the first attribute component of the current node; based on the predicted value of the transform coefficients of the first attribute component of the current node, determine the residual value of the transform coefficients of the first attribute component of the current node. For example, the residual value of the transform coefficients of the first attribute component of the current node can be determined based on the predicted value and the original value of the transform coefficients of the first attribute component of the current node.
[0298] Further, in some embodiments, determining the transform coefficients of the first attribute component of the current node based on the inverse quantization value of the transform coefficients of the second attribute component of the current node includes: determining a third coefficient, the third coefficient being used to characterize the linear relationship between the transform coefficients of the first attribute component and the inverse quantization value of the transform coefficients of the second attribute component; and determining a predicted value of the transform coefficients of the first attribute component of the current node based on the third coefficient and the inverse quantization value of the transform coefficients of the second attribute component of the current node. For example, the predicted value of the transform coefficients of the first attribute component of the current node is equal to the product of the third coefficient and the inverse quantization value of the transform coefficients of the second attribute component of the current node.
[0299] In the embodiments of this application, there are no restrictions on the method for determining the third coefficient. The third coefficient can be a predefined value or can be determined by the following methods.
[0300] Specifically, in some embodiments, the third coefficient can be determined by: obtaining the transform coefficients of the first attribute component and the inverse quantization values of the transform coefficients of the second attribute component of the reference node; wherein the encoding mode of the reference node is a cross-component prediction mode; and fitting the linear relationship between the transform coefficients of the first attribute component and the inverse quantization values of the transform coefficients of the second attribute component of the reference node to obtain the third coefficient.
[0301] Furthermore, embodiment 23 and its further embodiments can be implemented by the point cloud encoder when the encoding mode enables cross-component prediction mode and transform mode (such as RAHT transform mode) and does not enable intra-frame prediction mode or inter-frame prediction mode.
[0302] It should be noted that, in this embodiment, the number of reference nodes is not limited. There is also no limitation on the first attribute component and the second attribute component; the first attribute component and the second attribute component can be any two different components of a node's attribute. For example, the first attribute component is Cr, and the second attribute component is Cb.
[0303] For Embodiments 21, 22, or 23 above, one possible implementation is described below.
[0304] First, two cache entries, ChromaCbMultCb and ChromaCbMultCr, are defined. These caches store the attribute information of the currently reconstructed nodes in the RAHT layer (i.e., the reference nodes), and their size is fixed at MaxSize (currently set to 128). The contents of these two caches are used to fit a linear relationship between ChromaCb and ChromaCr, where windowSize represents the current cache size. The specific fitting relationship is as follows:
[0305] The linear relationship between the ChromCb and ChromaCr components in the current RAHT layer is calculated using sumCbMultCb and sumCbMultCr:
[0306] After calculating the linear relationship between the current encoding / decoding point ChormCb and ChormCr, the following relationship is used to perform cross-component prediction of the ChormCr component: predChormCr=ChormCb×k
[0307] After encoding / decoding the attribute information of the current node, the reconstructed attribute information of the current node needs to be used to update the cached ChromaCbMultCb and ChromaCbMultCr. The specific update method is as follows:
[0308] 3) When `windowSize` is greater than or equal to `MaxSize`, the first element of cached `CromaCbMultCb` and `CromaCbMultCr` is discarded according to the first-in, first-out (FIFO) principle. Specifically: `while(windowSize>=MaxSize){ ChromaCbMultCb.pop_front(); ChromaCbMultCr.pop_front(); windowSize--;}`
[0309] 4) Assuming the reconstruction attribute information of the current node is reconAttr[nodeNum][3], where nodeNum represents the number of child nodes to be reconstructed, and 3 represents the Luma, ChormCb, and ChromaCr components, then the cache is updated as follows:
[0310] It should be understood that, for Example 21, ChromaCbMultCb caches the transform coefficients of the second attribute component of the reconstructed node, and ChromaCbMultCr caches the transform coefficients of the first attribute component of the reconstructed node, where k is the first coefficient. For Example 22, ChromaCbMultCb caches the residual values of the transform coefficients of the second attribute component of the reconstructed node, and ChromaCbMultCr caches the residual values of the transform coefficients of the first attribute component of the reconstructed node, where k is the second coefficient. For Example 23, ChromaCbMultCb caches the inverse quantized values of the transform coefficients of the second attribute component of the reconstructed node, and ChromaCbMultCr caches the transform coefficients of the first attribute component of the reconstructed node, where k is the third coefficient.
[0311] It should be understood that the types of ChromaCb and ChromaCr are different in different embodiments of embodiments 21-23 above. For example, in a specific example of embodiment 21, ChromaCb is the transformation coefficient of the Cb attribute component of the reference node, ChromaCr is the transformation coefficient of the Cr attribute component of the reference node, and k is the first coefficient. As another example, in a specific example of embodiment 22, ChromaCb is the residual value of the transformation coefficient of the Cb attribute component of the reference node, ChromaCr is the residual value of the transformation coefficient of the Cr attribute component of the reference node, and k is the second coefficient. Yet another example, in a specific example of embodiment 23, ChromaCb is the inverse quantization value of the transformation coefficient of the Cb attribute component of the reference node, ChromaCr is the transformation coefficient of the Cr attribute component of the reference node, and k is the third coefficient.
[0312] The previous section described how to determine the transform coefficients of the first attribute component of the current node when cross-component prediction mode is enabled in the encoding mode of the current transform layer node. The following section will explain how to determine the transform coefficients of the first attribute component of the current node when cross-component prediction mode is not enabled.
[0313] In some embodiments, when cross-component prediction mode is not enabled in the encoding mode, the quantization value or residual value of the transform coefficient of the first attribute component of the current node is determined; the quantization value or residual value of the transform coefficient of the first attribute component of the current node is written into the bitstream.
[0314] Furthermore, the method for determining the transform coefficients of the first attribute component of the current node is different depending on whether the encoding mode is enabled in the intra / inter-frame prediction mode. For details, please refer to the descriptions of Embodiments 24 and 25 below.
[0315] In Example 24, when the encoding mode does not enable cross-component prediction mode and enables intra-frame prediction or inter-frame prediction mode, intra-frame prediction or inter-frame prediction is performed on the first attribute component of the current node to obtain the predicted value of the first attribute component of the current node; based on the predicted value of the first attribute component of the current node, the predicted value of the transform coefficient of the first attribute component of the current node is determined; based on the original value of the first attribute component of the current node, the original value of the transform coefficient of the first attribute component of the current node is determined; based on the original value and the predicted value of the transform coefficient of the first attribute component of the current node, the residual value of the transform coefficient of the first attribute component of the current node is determined.
[0316] Based on this, writing the residual value of the transform coefficient of the first attribute component of the current node into the bitstream includes: writing the first quantized value obtained by quantizing the residual value of the transform coefficient of the first attribute component of the current node into the bitstream.
[0317] In some embodiments, the method further includes: dequantizing the first quantized value to obtain the dequantized value of the first quantized value; and determining the transformation coefficients of the first attribute component of the current node based on the predicted value of the transformation coefficients of the first attribute component of the current node and the dequantized value of the first quantized value.
[0318] For example, in some embodiments, the transform coefficient of the first attribute component of the current node is equal to the sum of the inverse quantization value of the first quantization value and the predicted value of the transform coefficient of the first attribute component of the current node.
[0319] In Example 25, when the decoding mode does not enable cross-component prediction mode, nor does it enable intra-frame prediction mode or inter-frame prediction mode, but enables a transform mode (such as RAHT transform mode), the original value of the transform coefficient of the first attribute component of the current node is quantized and written into the bitstream.
[0320] For embodiment 25, the method further includes: dequantizing the original value of the quantized transformation coefficient of the first attribute component of the current node to obtain the transformation coefficient of the first attribute component of the current node.
[0321] It should be noted that, in the embodiments of this application, whether or not the encoding method described in the embodiments of this application is enabled may be subject to restrictions or not. In the case of restrictions, in some embodiments, the method further includes: writing a fourth syntax element into the bitstream, wherein the fourth syntax element indicates that the decoding mode of the current point cloud enables cross-component prediction mode.
[0322] Furthermore, in some embodiments, the fourth syntax element may be a sequence-level (SPS), picture-level (Picture header), or slice-level (Slice header) syntax element.
[0323] It should be noted that, in the embodiments of this application, the transformation coefficients of the first attribute component can be AC coefficients or DC coefficients. In the cross-component prediction mode, the AC coefficients or residual values of the AC coefficients of the second attribute component can be used to determine the AC coefficients or residual values of the AC coefficients of the first attribute component. Alternatively, the DC coefficients or residual values of the DC coefficients of the second attribute component can be used to determine the DC coefficients or residual values of the DC coefficients of the first attribute component.
[0324] One or more exemplary embodiments are described below.
[0325] First, we introduce the definition of the RAHT attribute encoding layer. The current RAHT transformation encoding sequence iterates sequentially from the root node until it reaches the voxel level (1x1x1), thus completing the encoding and reconstruction of the entire point cloud attributes. Here, a RAHT transformation layer, or layer, is defined as the layer obtained by downsampling once along the Z, Y, and X directions each time. See Figure 24 for details.
[0326] Secondly, based on the RAHT attribute coding layer, a rate-distortion optimization algorithm is introduced to select the prediction coding method for the current layer: 1. Enable cross-component prediction coding (existing method); 2. Disable cross-component prediction coding. It should be understood that the current layer is also called the current transform layer, which can be the current RAHT transform layer.
[0327] First, two cache entries, ChromaCbMultCb and ChromaCbMultCr, are defined. These caches store attribute information of nodes that have been reconstructed in the current RAHT layer, and their size is fixed at MaxSize (currently set to 128). The contents of these two caches are used to fit a linear relationship between ChromaCb and ChromaCr, where windowSize represents the current cache size. The specific fitting relationship is as follows:
[0328] The linear relationship between the ChromCb and ChromaCr components in the current RAHT layer is calculated using sumCbMultCb and sumCbMultCr:
[0329] After calculating the linear relationship between the current encoding / decoding point ChormCb and ChormCr, the following relationship is used to perform cross-component prediction of the ChormCr component: predChormCr=ChormCb×k
[0330] After encoding / decoding the attribute information of the current node, the reconstructed attribute information of the current node needs to be used to update the cached ChromaCbMultCb and ChromaCbMultCr. The specific update method is as follows:
[0331] 5) When `windowSize` is greater than or equal to `MaxSize`, the first element of cached `CromaCbMultCb` and `CromaCbMultCr` is discarded according to the first-in, first-out (FIFO) principle. Specifically: `while(windowSize>=MaxSize){ ChromaCbMultCb.pop_front(); ChromaCbMultCr.pop_front(); windowSize--;}`
[0332] 6) Assuming the reconstruction attribute information of the current node is reconAttr[nodeNum][3], where nodeNum represents the number of child nodes to be reconstructed, and 3 represents the Luma, ChormCb, and ChromaCr components, then the cache is updated as follows:
[0333] At the encoding end, two encoding modes are used to encode the attribute information of the current layer node to obtain the optimal encoding mode for the current layer node. This optimal encoding mode is then passed to the decoding end, which uses the parsed decoding mode to reconstruct and recover the attribute information of the current layer node to be decoded. In the rate-distortion optimization algorithm, firstly, the distortion D between the reconstructed attribute and the original attribute for each prediction mode is calculated. Secondly, the bitstream R required to be encoded for each decoding mode is obtained. The rate-distortion cost is then calculated as follows: J = D + λxR
[0334] λ can be calculated using attribute quantization parameters. The current method for calculating λ is as follows:
[0335] The parameter N can be set to different values based on reflectivity and color.
[0336] In one possible implementation, the encoding mode of each layer can be added to the ABH (Attribute Brick Header) parameter set, and the specific algorithm on the encoding side is as follows:
[0337] Step 1: If the nodes in the current layer can be encoded using cross-component predictive coding, then introduce a rate-distortion optimization algorithm into the current layer. By encoding each node in the current layer, calculate the cost corresponding to each coding mode and obtain the optimal coding mode.
[0338] When encoding the attribute information of the current layer, corresponding cross-component prediction caches need to be allocated according to the prediction mode of the current layer. Specifically, if the current layer can enable three modes: inter-frame prediction, intra-frame prediction, and no prediction, corresponding cache contents need to be allocated, namely, caches for inter-frame prediction, caches for intra-frame prediction, and caches for no prediction. When encoding each node, the linear relationship between ChromaCb and ChromCr components is obtained from the corresponding cache according to the corresponding prediction mode, and then the linear relationship is used to predict and encode the ChromCr component of the current node. Similarly, after the encoding is completed, the cache contents of the corresponding prediction mode are updated using the attribute information of the current node. Specifically, assuming that the current node uses inter-frame prediction, the attribute information is reconstructed to update the corresponding inter-frame prediction cache. The specific calculation method and cache update method are described above.
[0339] If the current layer chooses not to perform cross-component prediction, the cached content updated by the current RAHT layer needs to be cleared. Specifically, after the current layer selects the RDO mode and chooses not to perform cross-component prediction, the attribute information of the current layer is encoded using the existing prediction method. In order to ensure that the encoding and decoding can obtain the same reconstruction information, the cached content updated by the attribute information of the current layer needs to be released at the encoding end.
[0340] Step 2: Finally, use the optimal encoding pattern to predictively encode the attributes of the current layer nodes.
[0341] The specific algorithm for decoding is as follows:
[0342] Step 1: If the nodes of the current layer can use cross-component predictive coding, then parse the optimal decoding mode of the current RAHT layer to be decoded, i.e. whether to start cross-component predictive decoding of the last component.
[0343] Step 2: Finally, use the best decoding mode to decode the attributes of the current layer node.
[0344] In one possible implementation, when encoding attribute information using RAHT, the RAHT layer is used as the encoding unit. Building upon existing schemes, two encoding modes are introduced for each RAHT layer: cross-component prediction encoding and non-cross-component prediction encoding. A rate-distortion optimization algorithm is used to select the optimal mode, and a corresponding algorithm is employed to encode the attribute information of the RAHT layer, thereby improving the encoding efficiency of point cloud attributes. After introducing the attribute encoding algorithm based on the RAHT encoding layer, the attribute encoding efficiency is significantly improved for some sequences. In particular, under C2 conditions, the performance of the chroma Cr component in the Soldier sequence is improved by approximately 6.5%, significantly enhancing the encoding efficiency of point cloud attributes.
[0345] In some embodiments, when performing RAHT encoding on attribute information (including inter-frame predictive coding and intra-frame predictive coding), each RAHT coding layer introduces a coding mode to determine whether to activate the cross-component predictive coding mode, and finally passes this coding mode to the decoder, which uses the decoding mode to reconstruct the attribute information of the point cloud. In one possible implementation, the coding mode of each RAHT layer is ultimately stored in the high-level syntax elements of ABH. In another possible implementation, the coding mode can be encoded in two ways, for example, it can be bypassed as a high-level syntax element in ABH, or it can be encoded in the form of entropy coding with an additional data stream structure. The latter often reduces the bitstream of the pattern encoding compared to the former, thereby further improving the coding efficiency of the point cloud attribute information. In addition, for the current slice / RAHT coding layer, the embodiments of this application can be applied to different coding layers, including: intra-frame predictive coding layer, inter-frame predictive coding layer, and non-predictive coding layer.
[0346] Table 1 below shows the attribute data unit header syntax.
[0347] Table 1
[0348] Here, attr_code_mode[i] indicates the coding mode of the current RAHT layer. When this parameter is True, it means that cross-component predictive coding is enabled in the current layer; otherwise, it is not enabled. The default value is False, meaning that cross-component predictive coding is not enabled by default.
[0349] Other possible implementation methods are described below.
[0350] (1) The attribute encoding pattern can be further modified.
[0351] In the above scheme, two encoding modes are introduced by encoding the attribute information of nodes in different encoding layers: cross-component predictive coding or disabling cross-component predictive coding. A rate-distortion optimization algorithm is applied to all nodes in the current layer to obtain the optimal encoding mode. Finally, the decoder uses the encoding mode to reconstruct and recover the attribute information of the nodes in the current layer. This encoding scheme can be further modified: a comprehensive analysis of the reconstructed attribute distribution characteristics of the neighboring nodes of different nodes in the current layer is performed. For example, if the error between the reconstructed attributes of the current node's parent node and the reconstructed attributes of the current node's parent node's neighboring nodes is within a certain range, then the neighborhood attribute distribution characteristics of the current node are considered relatively smooth. Based on such distribution characteristics, it can be implicitly deduced that the current node adopts the cross-component predictive coding mode; otherwise, the attribute distribution in the neighborhood range of the current node is considered to be relatively volatile, and the cross-component coding mode is not adopted.
[0352] (2) The attribute encoding pattern can be further modified.
[0353] In the above scheme, two coding modes are introduced by encoding the attribute information of nodes in different coding layers: cross-component prediction coding or non-cross-component coding. A rate-distortion optimization algorithm is applied to all nodes in the current layer to obtain the optimal coding mode. Finally, the decoder uses the coding mode to reconstruct and recover the attribute information of the nodes in the current layer. This coding scheme can be further modified: four coding modes are introduced for encoding the attribute information of nodes in different coding layers: intra-frame prediction + cross-component prediction coding, intra-frame prediction + non-cross-component prediction coding, transform + cross-component prediction coding, and transform + non-cross-component prediction coding. By adaptively selecting the coding mode for all nodes in the current layer, the decoder uses the coding mode to reconstruct and recover the attribute information of the nodes in the current layer. Introducing more intra-frame coding modes further improves the intra-frame coding efficiency of point cloud attributes.
[0354] (3) The attribute encoding pattern can be further modified.
[0355] In the above scheme, two encoding modes are introduced by encoding the attribute information of nodes in different encoding layers: cross-component predictive coding or non-cross-component coding. A rate-distortion optimization algorithm is applied to all nodes in the current layer to obtain the optimal encoding mode. Finally, the decoder uses the encoding mode to reconstruct and recover the attribute information of the nodes in the current layer. This encoding scheme can be further modified: by adding a syntax element to the higher-level syntax elements of APS to enable cross-component predictive coding, such as `last_component_prediction_raht_depth`. This parameter determines whether cross-component predictive coding is enabled when `depth` is less than `last_component_prediction_raht_depth`, and disabled otherwise.
[0356] It should be noted that the "cross-component prediction mode" mentioned above can also be called "cross-component prediction" or "cross-component prediction encoding / decoding", etc.
[0357] It should be noted that although the steps of the method in this application are described in a specific order in the accompanying drawings, this does not require or imply that the steps must be performed in that specific order, or that all the steps shown must be performed to achieve the desired result. Additional or alternative steps may be omitted, multiple steps may be combined into one step, and / or one step may be broken down into multiple steps; or steps from different embodiments may be combined into a new technical solution.
[0358] Based on the foregoing embodiments, this application provides a decoding device applied to a point cloud decoder. Figure 30 is a schematic diagram of the structure of the decoding device provided in this application. As shown in Figure 30, the decoding device 300 includes:
[0359] The first determining module 3001 is configured to determine whether the decoding mode of the current transform layer node enables cross-component prediction mode;
[0360] The second determining module 3002 is configured to determine the transformation coefficients of the first attribute component of the current node according to the decoding mode.
[0361] In some embodiments, the first determining module 3001 is configured to: decode the bitstream, determine a first syntax element, the first syntax element being used to indicate whether the decoding mode of the current transform layer enables cross-component prediction mode; and determine the decoding mode of the current node based on the first syntax element.
[0362] For example, in some embodiments, the value of the first syntax element is a first numerical value or a second numerical value; wherein the first numerical value is used to indicate that the current transform layer enables cross-component prediction mode; and the second numerical value is used to indicate that the current transform layer does not enable cross-component prediction mode.
[0363] In some embodiments, the first syntax element is further used to indicate that the current transform layer enables intra-frame prediction mode, inter-frame prediction mode, or transform mode.
[0364] In other embodiments, the first determining module 3001 is configured to: decode the bitstream, determine a second syntax element, the second syntax element being used to indicate a first threshold; determine the level of the current transform layer; and determine the decoding mode of all nodes of the current transform layer based on the relationship between the level of the current transform layer and the first threshold.
[0365] For example, in some embodiments, the decoding mode enables cross-component prediction mode when the level of the current transform layer is greater than or equal to a first difference; wherein the first difference is equal to the level of the root node minus the first threshold.
[0366] For example, in some embodiments, the decoding mode does not enable cross-component prediction mode when the level of the current transform layer is less than the first difference.
[0367] In some other embodiments, the first determining module 3001 is configured to: determine the decoding mode of all nodes in the current transform layer based on the number of reconstructed nodes in the current transform layer.
[0368] For example, in some embodiments, the decoding mode enables cross-component prediction mode when the number of reconstructed nodes in the current transform layer is greater than or equal to a second threshold.
[0369] For example, in some embodiments, the decoding mode does not enable cross-component prediction mode when the number of reconstructed nodes in the current transform layer is less than a second threshold.
[0370] In other embodiments, the first determining module 3001 is configured to: determine the decoding mode of the current node of the current transformation layer based on the correlation between the attribute reconstruction value of the first attribute component of the parent node of the current node and the attribute reconstruction value of the first attribute component of the neighboring nodes of the parent node of the current node.
[0371] In some other embodiments, the first determining module 3001 is configured to: decode the bitstream, determine a third syntax element, the third syntax element being used to indicate whether the decoding mode of the current node or the node group to which the current node belongs is enabled by cross-component prediction mode; wherein the number of nodes in the node group is greater than or equal to 1 and less than or equal to the number of nodes in the current transform layer; and determine the decoding mode of the current node according to the third syntax element.
[0372] In some embodiments, the third syntax element is further used to instruct the current node or the node group to which the current node belongs to enable intra-frame prediction mode, inter-frame prediction mode, or transform mode.
[0373] In some embodiments, the first determining module 3001 is further configured to: decode the bitstream and determine a fourth syntax element, the fourth syntax element indicating that the decoding mode of the current point cloud enables cross-component prediction mode.
[0374] Furthermore, in some embodiments, the fourth syntax element is a sequence-level, image-level, or slice-level syntax element.
[0375] In some embodiments, the second determining module 3002 is configured to: when the cross-component prediction mode is enabled in the decoding mode, determine the predicted value of the transformation coefficient of the first attribute component of the current node based on the transformation coefficient of the second attribute component of the current node; and determine the transformation coefficient of the first attribute component of the current node based on the predicted value of the transformation coefficient of the first attribute component of the current node. It should be noted that this embodiment is hereinafter referred to as Embodiment 26.
[0376] In embodiment 26, the second determining module 3002 is further configured to: determine a first coefficient, the first coefficient being used to characterize the linear relationship between the transformation coefficient of the first attribute component and the transformation coefficient of the second attribute component; and determine the predicted value of the transformation coefficient of the first attribute component of the current node based on the first coefficient and the transformation coefficient of the second attribute component of the current node.
[0377] For example, in some embodiments, the second determining module 3002 is configured to: obtain the transformation coefficients of the first attribute component and the second attribute component of the reference node; wherein the decoding mode of the reference node is a cross-component prediction mode; and fit the linear relationship between the transformation coefficients of the first attribute component and the transformation coefficients of the second attribute component of the reference node to obtain the first coefficient.
[0378] In further embodiments of Example 26, the second determining module 3002 is configured to: decode the bitstream to obtain a first quantized value of the residual value of the transform coefficient of the first attribute component of the current node; and dequantize the first quantized value to obtain a dequantized value of the first quantized value; and determine the transform coefficient of the first attribute component of the current node based on the predicted value of the transform coefficient of the first attribute component of the current node and the dequantized value of the first quantized value.
[0379] For Example 26, in some embodiments, the decoding mode does not enable intra-frame prediction mode and inter-frame prediction mode.
[0380] In other embodiments, the second determining module 3002 is configured to: when the cross-component prediction mode is enabled in the decoding mode, determine the residual value of the transform coefficient of the first attribute component of the current node based on the residual value of the transform coefficient of the second attribute component of the current node; and determine the transform coefficient of the first attribute component of the current node based on the residual value of the transform coefficient of the first attribute component of the current node. It should be noted that this embodiment is hereinafter referred to as Embodiment 27.
[0381] In further embodiments of Example 27, the second determining module 3002 is configured to: determine a second coefficient, the second coefficient being used to characterize the linear relationship between the residual value of the transformation coefficient of the first attribute component and the residual value of the transformation coefficient of the second attribute component; and determine the residual value of the transformation coefficient of the first attribute component of the current node based on the second coefficient and the residual value of the transformation coefficient of the second attribute component of the current node.
[0382] For example, in some embodiments, the second determining module 3002 is configured to: obtain the residual values of the transformation coefficients of the first attribute component and the second attribute component of the reference node; wherein the decoding mode of the reference node is a cross-component prediction mode; and fit the linear relationship between the residual values of the transformation coefficients of the first attribute component and the residual values of the transformation coefficients of the second attribute component of the reference node to obtain the second coefficient.
[0383] In further embodiments of Example 27, the second determining module 3002 is configured to: determine the predicted value of the first attribute component of the current node; determine the predicted value of the transformation coefficient of the first attribute component of the current node based on the predicted value of the first attribute component of the current node; and determine the transformation coefficient of the first attribute component of the current node based on the predicted value of the transformation coefficient of the first attribute component of the current node and the residual value.
[0384] For example, in some embodiments, the second determining module 3002 is configured to: perform intra-frame prediction or inter-frame prediction on the first attribute component of the current node to obtain the predicted value of the first attribute component of the current node.
[0385] In some embodiments, the current transformation layer is a RAHT transformation layer.
[0386] In some embodiments, the decoding device 300 further includes a transformation module configured to perform RAHT transformation based on the transformation coefficients of the first attribute components of all nodes of the current point cloud to obtain the reconstructed value of the first attribute component of the current point cloud.
[0387] This application provides an encoding device applied to a point cloud encoder. Figure 31 is a schematic diagram of the structure of the encoding device provided in this application embodiment. As shown in Figure 31, the encoding device 310 includes:
[0388] The third determining module 3101 is configured to determine whether the encoding mode of the current transform layer node enables cross-component prediction mode;
[0389] The fourth determining module 3102 is configured to determine the residual value of the transform coefficient of the first attribute component of the current node when the cross-component prediction mode is enabled in the encoding mode.
[0390] The quantization module 3103 is configured to quantize the residual value of the transformation coefficient of the first attribute component of the current node to obtain a first quantized value;
[0391] The encoding module 3104 is configured to write the first quantized value into the bit stream.
[0392] In some embodiments, the encoding module 3104 is further configured to: write a first syntax element into the bitstream; wherein the first syntax element is used to indicate whether the decoding mode of the current transform layer enables cross-component prediction mode.
[0393] For example, in some embodiments, the value of the first syntax element is a first numerical value or a second numerical value; wherein the first numerical value is used to indicate that the current transform layer enables cross-component prediction mode; and the second numerical value is used to indicate that the current transform layer does not enable cross-component prediction mode.
[0394] In some embodiments, the first syntax element is further used to indicate that the current transform layer enables intra-frame prediction mode, inter-frame prediction mode, or transform mode.
[0395] In other embodiments, the third determining module 3101 is configured to: determine the level of the current transform layer; and determine the encoding mode of all nodes of the current transform layer according to the relationship between the level of the current transform layer and the first threshold.
[0396] In some embodiments, the encoding module 3104 is further configured to write a second syntax element into the bitstream, the second syntax element being used to indicate the first threshold.
[0397] For example, in some embodiments, the coding mode enables cross-component prediction mode when the level of the current transform layer is greater than or equal to a first difference; wherein the first difference is equal to the level of the root node minus the first threshold.
[0398] For example, in some embodiments, the encoding mode does not enable cross-component prediction mode when the level of the current transform layer is less than the first difference.
[0399] In some other embodiments, the third determining module 3101 is configured to: determine the encoding mode of all nodes in the current transform layer based on the number of reconstructed nodes in the current transform layer.
[0400] For example, in some embodiments, the encoding mode enables cross-component prediction mode when the number of reconstructed nodes in the current transform layer is greater than or equal to a second threshold.
[0401] For example, in some embodiments, the encoding mode does not enable cross-component prediction mode when the number of reconstructed nodes in the current transform layer is less than a second threshold.
[0402] In some other embodiments, the third determining module 3101 is configured to: determine the encoding mode of the current node of the current transform layer based on the correlation between the attribute reconstruction value of the first attribute component of the parent node of the current node and the attribute reconstruction value of the first attribute component of the neighboring nodes of the parent node of the current node.
[0403] In some other embodiments, the encoding module 3104 is configured to write a third syntax element into the bitstream, the third syntax element being used to indicate whether the decoding mode of the current node or the node group to which the current node belongs is enabled by cross-component prediction mode; wherein the number of nodes in the node group is greater than or equal to 1 and less than or equal to the number of nodes in the current transform layer.
[0404] In some embodiments, the third syntax element is further used to instruct the current node or the node group to which the current node belongs to enable intra-frame prediction mode, inter-frame prediction mode, or transform mode.
[0405] In some embodiments, the encoding module 3104 is further configured to write a fourth syntax element into the bitstream, the fourth syntax element indicating that the decoding mode of the current point cloud enables cross-component prediction mode.
[0406] In some embodiments, the fourth syntax element is a sequence-level, image-level, or slice-level syntax element.
[0407] In some embodiments, the fourth determining module 3102 is configured to: determine the predicted value of the transformation coefficient of the first attribute component of the current node based on the transformation coefficient of the second attribute component of the current node; and determine the residual value of the transformation coefficient of the first attribute component of the current node based on the predicted value of the transformation coefficient of the first attribute component of the current node. It should be noted that this embodiment will be referred to as Embodiment 28 below.
[0408] In embodiment 28, further, in some embodiments, the fourth determining module 3102 is configured to: determine a first coefficient, the first coefficient being used to characterize the linear relationship between the transformation coefficient of the first attribute component and the transformation coefficient of the second attribute component; and determine a predicted value of the transformation coefficient of the first attribute component of the current node based on the first coefficient and the transformation coefficient of the second attribute component of the current node.
[0409] For example, in some embodiments, the fourth determining module 3102 is configured to: obtain the transformation coefficients of the first attribute component and the second attribute component of the reference node; wherein the encoding mode of the reference node is a cross-component prediction mode; and fit the linear relationship between the transformation coefficients of the first attribute component and the transformation coefficients of the second attribute component of the reference node to obtain the first coefficient.
[0410] Based on embodiment 28, in some embodiments, the encoding device 310 further includes an inverse quantization module and a fifth determination module; wherein, the inverse quantization module is configured to inverse quantize the first quantization value to obtain the inverse quantization value of the first quantization value; the fifth determination module is configured to determine the transformation coefficient of the first attribute component of the current node based on the predicted value of the transformation coefficient of the first attribute component of the current node and the inverse quantization value of the first quantization value.
[0411] In Example 28, further, in some embodiments, the coding mode does not enable intra-frame prediction mode and inter-frame prediction mode.
[0412] In other embodiments, the fourth determining module 3102 is configured to: determine the residual value of the transformation coefficient of the first attribute component of the current node based on the residual value of the transformation coefficient of the second attribute component of the current node. It should be noted that this embodiment is referred to as Embodiment 29 below.
[0413] In embodiment 29, further, in some embodiments, the fourth determining module 3102 is configured to: determine a second coefficient, the second coefficient being used to characterize the linear relationship between the residual value of the transformation coefficient of the first attribute component and the residual value of the transformation coefficient of the second attribute component; and determine the residual value of the transformation coefficient of the first attribute component of the current node based on the second coefficient and the residual value of the transformation coefficient of the second attribute component of the current node.
[0414] For example, in some embodiments, the residual values of the transform coefficients of the first attribute component and the second attribute component of the reference node are obtained; wherein the encoding mode of the reference node is a cross-component prediction mode; and the second coefficient is obtained by fitting a linear relationship between the residual values of the transform coefficients of the first attribute component and the residual values of the transform coefficients of the second attribute component of the reference node.
[0415] Based on embodiment 28, in some embodiments, the encoding device 310 further includes a sixth determining module, an inverse quantization module, and a seventh determining module; wherein, the prediction module is configured to determine the predicted value of the first attribute component of the current node; and to determine the predicted value of the transform coefficient of the first attribute component of the current node based on the predicted value of the first attribute component of the current node; the inverse quantization module is configured to inverse quantize the first quantization value to obtain the inverse quantization value of the first quantization value; the seventh determining module is configured to determine the transform coefficient of the first attribute component of the current node based on the predicted value of the transform coefficient of the first attribute component of the current node and the inverse quantization value of the first quantization value.
[0416] Furthermore, in some embodiments, the sixth determining module is configured to: perform intra-frame prediction or inter-frame prediction on the first attribute component of the current node to obtain the predicted value of the first attribute component of the current node.
[0417] In some embodiments, the current transformation layer is a RAHT transformation layer.
[0418] The descriptions of the above device embodiments are similar to those of the above method embodiments, and have similar beneficial effects. For technical details not disclosed in the device embodiments of this application, please refer to the descriptions of the method embodiments of this application for understanding.
[0419] It should be noted that the module division of the apparatus described in the embodiments of this application is illustrative and only represents one logical functional division. In actual implementation, other division methods may be used. Furthermore, the functional units in the various embodiments of this application can be integrated into one processing unit, exist as separate physical units, or have two or more units integrated into one unit. The integrated units can be implemented in hardware, as software functional units, or a combination of software and hardware.
[0420] It should be noted that, in the embodiments of this application, if the above-described methods are implemented as software functional modules and sold or used as independent products, they can also be stored in a computer-readable storage medium. Based on this understanding, the technical solutions of the embodiments of this application, or the parts that contribute to related technologies, 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 an electronic device to execute all or part of the methods described in the various embodiments of this application. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, portable hard drives, read-only memory (ROM), magnetic disks, or optical disks. Thus, the embodiments of this application are not limited to any specific hardware and software combination.
[0421] This application provides a point cloud decoder, as shown in FIG32. The point cloud decoder 320 includes: a first communication interface 3201, a first memory 3202, and a first processor 3203; the various components are coupled together through a first bus system 3204. It is understood that the first bus system 3204 is used to realize the connection and communication between these components. In addition to a data bus, the first bus system 3204 also includes a power bus, a control bus, and a status signal bus. However, for clarity, all buses are labeled as the first bus system 3204 in FIG32.
[0422] The first communication interface 3201 is used for receiving and sending signals during the process of sending and receiving information with other external network elements;
[0423] The first memory 3202 is used to store computer programs that can run on the first processor 3203;
[0424] The first processor 3203 is configured to execute the decoding method described in the embodiments of this application when running the computer program.
[0425] It is understood that the first memory 3202 in the embodiments of this application can be volatile memory or non-volatile memory, or may include both volatile and non-volatile memory. The non-volatile memory can be read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), or flash memory. The volatile memory can be random access memory (RAM), which is used as an external cache. By way of example, but not limitation, many forms of RAM are available, such as Static Random Access Memory (SRAM), Dynamic Random Access Memory (DRAM), Synchronous DRAM (SDRAM), Double Data Rate SDRAM (DDRSDRAM), Enhanced Synchronous DRAM (ESDRAM), Synchlink DRAM (SLDRAM), and Direct Rambus RAM (DRRAM). The first memory 3202 of the system and method described in this application is intended to include, but is not limited to, these and any other suitable types of memory.
[0426] The first processor 3203 may be an integrated circuit chip with signal processing capabilities. In implementation, each step of the above method can be completed by the integrated logic circuitry in the hardware of the first processor 3203 or by instructions in software form. The first processor 3203 may be a general-purpose processor, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), or other programmable logic devices, discrete gate or transistor logic devices, or discrete hardware components. It can implement or execute the methods, steps, and logic block diagrams disclosed in the embodiments of this application. The general-purpose processor may be a microprocessor or any conventional processor. The steps of the methods disclosed in the embodiments of this application can be directly embodied in the execution of a hardware decoding processor, or executed by a combination of hardware and software modules in the decoding processor. The software modules may reside in random access memory, flash memory, read-only memory, programmable read-only memory, electrically erasable programmable memory, registers, or other mature storage media in the art. The storage medium is located in the first memory 3202. The first processor 3203 reads the information in the first memory 3202 and completes the steps of the above method in conjunction with its hardware.
[0427] It is understood that the embodiments described in this application can be implemented using hardware, software, firmware, middleware, microcode, or a combination thereof. For hardware implementation, the processing unit can be implemented in one or more application-specific integrated circuits (ASICs), digital signal processors (DSPs), digital signal processing devices (DSPDs), programmable logic devices (PLDs), field-programmable gate arrays (FPGAs), general-purpose processors, controllers, microcontrollers, microprocessors, other electronic units for performing the functions described in this application, or combinations thereof. For software implementation, the technology described in this application can be implemented through modules (e.g., procedures, functions, etc.) that perform the functions described in this application. Software code can be stored in memory and executed by a processor. The memory can be implemented in the processor or external to the processor.
[0428] Alternatively, as another embodiment, the first processor 3203 is also configured to execute any of the aforementioned decoding method embodiments when running the computer program.
[0429] This application provides a point cloud encoder, as shown in Figure 33. The point cloud encoder 330 includes: a second communication interface 3301, a second memory 3302, and a second processor 3303; the various components are coupled together through a second bus system 3304. It is understood that the second bus system 3304 is used to realize the connection and communication between these components. In addition to a data bus, the second bus system 3304 also includes a power bus, a control bus, and a status signal bus. However, for clarity, all buses are labeled as the second bus system 3304 in Figure 33.
[0430] The second communication interface 3301 is used for receiving and sending signals during the process of sending and receiving information with other external network elements;
[0431] The second memory 3302 is used to store computer programs that can run on the second processor 3303;
[0432] The second processor 3303 is used to execute the encoding method described in the embodiments of this application when running the computer program.
[0433] Alternatively, as another embodiment, the second processor 3303 is also configured to execute the aforementioned encoding method embodiment when running the computer program.
[0434] It is understood that the second memory 3302 has similar hardware functions to the first memory 3202, and the second processor 3303 has similar hardware functions to the first processor 3203; details will not be elaborated here.
[0435] This application provides an electronic device, including: a processor adapted to execute a computer program; and a computer-readable storage medium storing the computer program, which, when executed by the processor, implements the encoding and / or decoding methods described in this application. The electronic device can be various types of devices with point cloud encoding and / or point cloud decoding capabilities, such as mobile phones, tablets, laptops, personal computers, televisions, projection devices, or monitoring devices.
[0436] This application provides a computer-readable storage medium storing a computer program that, when executed, implements an encoding method such as that on the side of a point cloud encoder or a decoding method such as that on the side of a point cloud decoder.
[0437] This application provides a bitstream generated using the encoding method described in this application.
[0438] This application provides a computer-readable storage medium storing a computer program that, when executed, implements either the decoding method or the encoding method described in this application.
[0439] It should be noted that the descriptions of the above embodiments are similar to those of the above method embodiments, and have similar beneficial effects. For technical details not disclosed in the embodiments of this application regarding storage media, bitstreams, program products, and devices, please refer to the descriptions of the method embodiments of this application for understanding.
[0440] It should be understood that the phrases "one embodiment," "an embodiment," or "some embodiments" mentioned throughout the specification mean that a specific feature, structure, or characteristic related to an embodiment is included in at least one embodiment of this application. Therefore, "in one embodiment," "in one embodiment," or "in some embodiments" appearing throughout the specification do not necessarily refer to the same embodiment. Furthermore, these specific features, structures, or characteristics can be combined in any suitable manner in one or more embodiments. It should be understood that in the various embodiments of this application, the sequence numbers of the above-described processes do not imply a sequential order of execution; the execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of this application. The sequence numbers of the above-described embodiments are merely for descriptive purposes and do not represent the superiority or inferiority of the embodiments. The descriptions of the various embodiments above tend to emphasize the differences between the various embodiments; their similarities or commonalities can be referred to mutually, and for the sake of brevity, they will not be repeated here.
[0441] In this article, the term "and / or" is merely a description of the relationship between related objects, indicating that there can be three kinds of relationships. For example, object A and / or object B can represent three situations: object A exists alone, object A and object B exist simultaneously, and object B exists alone.
[0442] It should be noted that, in this document, 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. Unless otherwise specified, 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.
[0443] In the several embodiments provided in this application, it should be understood that the disclosed devices and methods can be implemented in other ways. The embodiments described above are merely illustrative. For example, the division of modules is only a logical functional division, and in actual implementation, there may be other division methods, such as: multiple modules or components can be combined, or integrated into another system, or some features can be ignored or not executed. In addition, the coupling, direct coupling, or communication connection between the various components shown or discussed can be through some interfaces, and the indirect coupling or communication connection between devices or modules can be electrical, mechanical, or other forms.
[0444] The modules described above as separate components may or may not be physically separate. The components shown as modules may or may not be physical modules. They may be located in one place or distributed across multiple network units. Some or all of the modules may be selected to achieve the purpose of this embodiment according to actual needs.
[0445] In addition, each functional module in the various embodiments of this application can be integrated into one processing unit, or each module can be a separate unit, or two or more modules can be integrated into one unit; the integrated modules can be implemented in hardware or in the form of hardware plus software functional units.
[0446] Those skilled in the art will understand that all or part of the steps of the above method embodiments can be implemented by hardware related to program instructions. The aforementioned program can be stored in a computer-readable storage medium. When the program is executed, it performs the steps of the above method embodiments. The aforementioned storage medium includes various media that can store program code, such as mobile storage devices, read-only memory (ROM), magnetic disks, or optical disks.
[0447] Alternatively, if the integrated units described above are implemented as software functional modules and sold or used as independent products, they can also be stored in a computer-readable storage medium. Based on this understanding, the technical solutions of the embodiments of this application, or the parts that contribute to related technologies, 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 an electronic device to execute all or part of the methods described in the various embodiments of this application. The aforementioned storage medium includes various media capable of storing program code, such as mobile storage devices, ROMs, magnetic disks, or optical disks.
[0448] The methods disclosed in the several method embodiments provided in this application can be arbitrarily combined to obtain new method embodiments without conflict. The features disclosed in the several product embodiments provided in this application can be arbitrarily combined to obtain new product embodiments without conflict. The features disclosed in the several method or device embodiments provided in this application can be arbitrarily combined to obtain new method embodiments or device embodiments without conflict.
[0449] The above description is merely an 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
A decoding method, the method is applied to a point cloud decoder, the method comprises: determining whether a decoding mode of a node of a current transform layer enables a cross-component prediction mode; determining a transform coefficient of a first attribute component of the current node according to the decoding mode. The method of claim 1, wherein, The determining whether the decoding mode of the node of the current transform layer enables the cross-component prediction mode comprises: decoding a bitstream to determine a first syntax element, the first syntax element is used to indicate whether the decoding mode of the current transform layer enables the cross-component prediction mode; determining the decoding mode of the current node according to the first syntax element. According to the method of claim 2, wherein the value of the first syntax element is a first numerical value or a second numerical value; wherein the first numerical value is used to indicate that the current transform layer enables the cross-component prediction mode; and the second numerical value is used to indicate that the current transform layer does not enable the cross-component prediction mode. The method of claim 2, wherein, The first syntax element is also used to indicate that the current transform layer enables an intra prediction mode, an inter prediction mode or a transform mode. The method of claim 1, wherein, The determining whether the decoding mode of the node of the current transform layer enables the cross-component prediction mode comprises: decoding a bitstream to determine a second syntax element, the second syntax element is used to indicate a first threshold value; determining a level of the current transform layer; determining the decoding mode of all nodes of the current transform layer according to the relationship between the level of the current transform layer and the first threshold value. According to the method of claim 5, wherein in the case that the level of the current transform layer is greater than or equal to a first difference value, the decoding mode enables the cross-component prediction mode; wherein the first difference value is equal to the level of a root node minus the first threshold value. According to the method of claim 6, wherein in the case that the level of the current transform layer is less than the first difference value, the decoding mode does not enable the cross-component prediction mode. The method of claim 1, wherein, The determining whether the decoding mode of the node of the current transform layer enables the cross-component prediction mode comprises: determining the decoding mode of all nodes of the current transform layer according to the number of reconstructed nodes of the current transform layer. According to the method of claim 8, wherein in the case that the number of reconstructed nodes of the current transform layer is greater than or equal to a second threshold value, the decoding mode enables the cross-component prediction mode. According to the method of claim 8, wherein in the case that the number of reconstructed nodes of the current transform layer is less than the second threshold value, the decoding mode does not enable the cross-component prediction mode. The method of claim 1, wherein, The determining whether the decoding mode of the node of the current transform layer enables the cross-component prediction mode comprises: determining the decoding mode of the current node of the current transform layer according to the correlation between the attribute reconstruction value of the first attribute component of the parent node of the current node and the attribute reconstruction value of the first attribute component of the neighbor node of the parent node of the current node. The method of claim 1, wherein, The determining whether the decoding mode of the node of the current transform layer enables the cross-component prediction mode comprises: decoding the bitstream to determine a third syntax element, the third syntax element being used to indicate whether a cross-component prediction mode is enabled for a decoding mode of the current node or a node group in which the current node is located, wherein a number of nodes of the node group is greater than or equal to 1 and less than or equal to a number of nodes of the current transform layer; determining the decoding mode of the current node according to the third syntax element. The method of claim 12, wherein, The third syntax element is further used to indicate that the current node or the node group in which the current node is located enables an intra prediction mode, an inter prediction mode or a transform mode. The method according to any one of claims 1 to 13, wherein The method further comprises: decoding the bitstream to determine a fourth syntax element, the fourth syntax element indicating that a cross-component prediction mode is enabled for a decoding mode of a current point cloud. The method of claim 14, wherein, The fourth syntax element is a sequence level, a picture level or a slice level syntax element. The method according to any one of claims 1 to 15, wherein The determining the transform coefficients of the first attribute component of the current node according to the decoding mode comprises: in a case where the decoding mode enables the cross-component prediction mode, determining a prediction value of the transform coefficients of the first attribute component of the current node according to the transform coefficients of the second attribute component of the current node; determining the transform coefficients of the first attribute component of the current node according to the prediction value of the transform coefficients of the first attribute component of the current node. The method of claim 16, wherein, The determining the prediction value of the transform coefficients of the first attribute component of the current node according to the transform coefficients of the second attribute component of the current node comprises: determining a first coefficient used to represent a linear relationship between the transform coefficients of the first attribute component and the transform coefficients of the second attribute component; determining the prediction value of the transform coefficients of the first attribute component of the current node according to the first coefficient and the transform coefficients of the second attribute component of the current node. The method of claim 17, wherein, The determining the first coefficient comprises: obtaining the transform coefficients of the first attribute component and the second attribute component of a reference node, wherein a decoding mode of the reference node is the cross-component prediction mode; fitting a linear relationship between the transform coefficients of the first attribute component of the reference node and the transform coefficients of the second attribute component of the reference node to obtain the first coefficient. The method of claim 16, wherein, The determining the transform coefficients of the first attribute component of the current node according to the prediction value of the transform coefficients of the first attribute component of the current node comprises: decoding the bitstream to obtain a first quantized value of a residual value of the transform coefficients of the first attribute component of the current node; dequantizing the first quantized value to obtain a dequantized value of the first quantized value; determining the transform coefficients of the first attribute component of the current node according to the prediction value of the transform coefficients of the first attribute component of the current node and the dequantized value of the first quantized value. The method according to any one of claims 16-19, wherein The decoding mode does not enable the intra prediction mode and the inter prediction mode. The method according to any one of claims 1 to 15, wherein The determining the transform coefficients of the first attribute component of the current node according to the decoding mode comprises: in a case where the decoding mode enables the cross-component prediction mode, determining a residual value of the transform coefficients of the first attribute component of the current node according to a residual value of the transform coefficients of the second attribute component of the current node; determine the residual value of the transform coefficient of the first attribute component of the current node according to the residual value of the transform coefficient of the second attribute component of the current node. The method of claim 21, wherein, The determining the residual value of the transform coefficient of the first attribute component of the current node according to the residual value of the transform coefficient of the second attribute component of the current node comprises: determining a second coefficient for representing a linear relationship between the residual value of the transform coefficient of the first attribute component and the residual value of the transform coefficient of the second attribute component; determining the residual value of the transform coefficient of the first attribute component of the current node according to the second coefficient and the residual value of the transform coefficient of the second attribute component of the current node. The method of claim 22, wherein, The determining the second coefficient comprises: obtaining the residual values of the transform coefficients of the first attribute component and the second attribute component of a reference node; wherein the decoding mode of the reference node is a cross-component prediction mode; fitting a linear relationship between the residual value of the transform coefficient of the first attribute component of the reference node and the residual value of the transform coefficient of the second attribute component of the reference node to obtain the second coefficient. The method of claim 21, wherein, The determining the transform coefficient of the first attribute component of the current node according to the residual value of the transform coefficient of the first attribute component of the current node comprises: determining a prediction value of the first attribute component of the current node; determining a prediction value of the transform coefficient of the first attribute component of the current node according to the prediction value of the first attribute component of the current node; determining the transform coefficient of the first attribute component of the current node according to the prediction value and the residual value of the transform coefficient of the first attribute component of the current node. The method of claim 24, wherein, The determining the prediction value of the first attribute component of the current node comprises: performing intra prediction or inter prediction on the first attribute component of the current node to obtain the prediction value of the first attribute component of the current node. The method of any one of claims 18-25, wherein, The reference node and the current node are in the same transform layer or the same node group; wherein the number of nodes in the node group is greater than or equal to 1 and less than or equal to the number of nodes of the current transform layer. The method of any one of claims 1-26, wherein, The current transform layer is a RAHT transform layer. The method of claim 27, wherein, The method further comprises: performing RAHT transform on the transform coefficients of the first attribute component of all nodes of the current point cloud to obtain the reconstructed value of the first attribute component of the current point cloud. A method of encoding, the method being applied to a point cloud encoder, the method comprising: determining whether the coding mode of the node of the current transform layer enables a cross-component prediction mode; in the case where the coding mode enables the cross-component prediction mode, determining the residual value of the transform coefficient of the first attribute component of the current node; quantizing the residual value of the transform coefficient of the first attribute component of the current node to obtain a first quantized value; and writing the first quantized value into a bitstream. The method of claim 29, wherein, The method further comprises: writing a first syntax element into a bitstream; wherein the first syntax element is used to indicate whether the decoding mode of the current transform layer enables the cross-component prediction mode. The method of claim 30, wherein, The value of the first syntax element is a first numerical value or a second numerical value; wherein the first numerical value is used to indicate that the current transform layer enables the cross-component prediction mode; and the second numerical value is used to indicate that the current transform layer does not enable the cross-component prediction mode. The method of claim 30, wherein, The first syntax element is also used to indicate that the current transform layer enables an intra prediction mode, an inter prediction mode or a transform mode. The method of claim 29, wherein, The method further comprises: determining a level of the current transform layer; determining the coding mode of all nodes of the current transform layer according to a relationship between the level of the current transform layer and a first threshold value. The method of claim 33, wherein, The method further comprises: writing a second syntax element into the bitstream, the second syntax element being used to indicate the first threshold value. According to the method of claim 33, wherein, in a case where the level of the current transform layer is greater than or equal to a first difference value, the coding mode enables the cross-component prediction mode; wherein the first difference value is equal to the level of the root node minus the first threshold value. According to the method of claim 35, wherein, in a case where the level of the current transform layer is less than the first difference value, the coding mode does not enable the cross-component prediction mode. The method of claim 29, wherein, The method further comprises: determining the coding mode of all nodes of the current transform layer according to a number of reconstructed nodes of the current transform layer. According to the method of claim 37, wherein, in a case where the number of reconstructed nodes of the current transform layer is greater than or equal to a second threshold value, the coding mode enables the cross-component prediction mode. According to the method of claim 38, wherein, in a case where the number of reconstructed nodes of the current transform layer is less than the second threshold value, the coding mode does not enable the cross-component prediction mode. The method of claim 29, wherein, The method further comprises: determining the coding mode of the current node of the current transform layer according to a correlation between a property reconstruction value of a first property component of a parent node of the current node and a property reconstruction value of the first property component of a neighboring node of the parent node of the current node. The method of claim 29, wherein, The method further comprises: writing a third syntax element into the bitstream, the third syntax element being used to indicate whether a decoding mode of the current node or a node group in which the current node is located enables the cross-component prediction mode; wherein the number of nodes of the node group is greater than or equal to 1 and less than or equal to the number of nodes of the current transform layer. The method of claim 41, wherein, The third syntax element is also used to indicate that the current node or the node group in which the current node is located enables an intra prediction mode, an inter prediction mode or a transform mode. The method of any one of claims 29-42, wherein, The method further comprises: writing a fourth syntax element into the bitstream, the fourth syntax element indicating that a decoding mode of the current point cloud enables the cross-component prediction mode. The method of claim 43, wherein, The fourth syntax element is a sequence level, image level or slice level syntax element. The method of any one of claims 29-44, wherein, The method further comprises: determining the residual value of the transform coefficient of the first property component of the current node, comprising: determining a prediction value of the transform coefficient of the first attribute component of the current node according to the transform coefficient of the second attribute component of the current node; determining a residual value of the transform coefficient of the first attribute component of the current node according to the prediction value of the transform coefficient of the first attribute component of the current node. The method of claim 45, wherein, The method further comprises: determining a prediction value of the transform coefficient of the first attribute component of the current node according to the transform coefficient of the second attribute component of the current node; determining a residual value of the transform coefficient of the first attribute component of the current node according to the prediction value of the transform coefficient of the first attribute component of the current node. The method of claim 46, wherein, The method further comprises: determining a prediction value of the transform coefficient of the first attribute component of the current node according to the transform coefficient of the second attribute component of the current node; determining a residual value of the transform coefficient of the first attribute component of the current node according to the prediction value of the transform coefficient of the first attribute component of the current node. The method of claim 45, wherein, The method further comprises: determining a prediction value of the transform coefficient of the first attribute component of the current node according to the transform coefficient of the second attribute component of the current node; determining a residual value of the transform coefficient of the first attribute component of the current node according to the prediction value of the transform coefficient of the first attribute component of the current node. The method of any one of claims 45-48, wherein, The method further comprises: The method of any one of claims 29-44, wherein, determining a prediction value of the transform coefficient of the first attribute component of the current node according to the transform coefficient of the second attribute component of the current node; determining a residual value of the transform coefficient of the first attribute component of the current node according to the prediction value of the transform coefficient of the first attribute component of the current node. The method of claim 50, wherein, The method further comprises: determining a prediction value of the transform coefficient of the first attribute component of the current node according to the transform coefficient of the second attribute component of the current node; determining a residual value of the transform coefficient of the first attribute component of the current node according to the prediction value of the transform coefficient of the first attribute component of the current node. The method of claim 51, wherein, The method further comprises: determining a prediction value of the transform coefficient of the first attribute component of the current node according to the transform coefficient of the second attribute component of the current node; determining a residual value of the transform coefficient of the first attribute component of the current node according to the prediction value of the transform coefficient of the first attribute component of the current node. The method of claim 50, wherein, The method further comprises: determining a prediction value of the transform coefficient of the first attribute component of the current node according to the transform coefficient of the second attribute component of the current node; determining a residual value of the transform coefficient of the first attribute component of the current node according to the prediction value of the transform coefficient of the first attribute component of the current node. The method further comprises: determining a prediction value of the transform coefficient of the first attribute component of the current node according to the transform coefficient of the second attribute component of the current node; determining a residual value of the transform coefficient of the first attribute component of the current node according to the prediction value of the transform coefficient of the first attribute component of the current node. The method further comprises: determining a prediction value of the transform coefficient of the first attribute component of the current node according to the transform coefficient of the second attribute component of the current node; determining a residual value of the transform coefficient of the first attribute component of the current node according to the prediction value of the transform coefficient of the first attribute component of the current node. The method further comprises: determining a prediction value of the transform coefficient of the first attribute component of the current node according to the transform coefficient of the second attribute component of the current node; determining a residual value of the transform coefficient of the first attribute component of the current node according to the prediction value of the transform coefficient of the first attribute component of the current node. determine the transform coefficient of the first attribute component of the current node according to the prediction value of the transform coefficient of the first attribute component of the current node and the dequantized value of the first quantized value. The method of claim 53, wherein, The determining the prediction value of the first attribute component of the current node comprises: performing intra prediction or inter prediction on the first attribute component of the current node to obtain the prediction value of the first attribute component of the current node. The method of any one of claims 47-54, wherein, The reference node and the current node are in the same transform layer or the same node group; and the number of nodes in the node group is greater than or equal to 1 and less than or equal to the number of nodes of the current transform layer. The method of any one of claims 29-55, wherein, The current transform layer is a RAHT transform layer. A decoding apparatus applied to a point cloud decoder, the apparatus comprising: a first determining module configured to determine whether a decoding mode of a node of a current transform layer enables a cross-component prediction mode; a second determining module configured to determine a transform coefficient of a first attribute component of a current node according to the decoding mode. A point cloud decoder comprising a first memory and a first processor; wherein the first memory is configured to store a computer program capable of running on the first processor; the first processor is configured to execute the method according to any one of claims 1 to 28 when running the computer program. An encoding apparatus applied to a point cloud encoder, the apparatus comprising: a third determining module configured to determine whether an encoding mode of a node of a current transform layer enables a cross-component prediction mode; a fourth determining module configured to determine a residual value of a transform coefficient of a first attribute component of a current node when the encoding mode enables the cross-component prediction mode; a quantizing module configured to quantize the residual value of the transform coefficient of the first attribute component of the current node to obtain a first quantized value; an encoding module configured to write the first quantized value into a bitstream. A point cloud encoder comprising a second memory and a second processor; wherein the second memory is configured to store a computer program capable of running on the second processor; the second processor is configured to execute the method according to any one of claims 29 to 56 when running the computer program. A bitstream generated by the encoding method according to any one of claims 29 to 56. An electronic device comprising: a processor adapted to execute a computer program; a computer readable storage medium having a computer program stored therein, the computer program, when executed by the processor, implements the decoding method according to any one of claims 1 to 28 or the encoding method according to any one of claims 29 to 56. A computer-readable storage medium, wherein, The computer readable storage medium stores a computer program, which, when executed, implements the decoding method according to any one of claims 1 to 28 or the encoding method according to any one of claims 29 to 56. A computer program product comprising computer programs or instructions which, when executed by a processor, implement the method of any one of claims 1 to 28, or implement the method of any one of claims 29 to 56.