Coding method, code stream, encoder, decoder and storage medium
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP LTD
- Filing Date
- 2023-12-28
- Publication Date
- 2026-07-31
AI Technical Summary
In geometry-based point cloud compression, the encoding efficiency of the RAHT transformation is affected by the phenomenon that the AC coefficient values of the last few layers are too much 0, resulting in waste of code flow and reducing encoding efficiency.
By determining the values of the first encoding parameter or decoding parameter at the encoding and decoding ends, it is instructed to skip encoding or decoding the k transformation layers of the current point cloud to be directly set to a preset value, such as 0, to improve the phenomenon that the last few layers of coded AC coefficient values are too much or 0 in the RAHT transformation.
Improve the encoding and decoding efficiency, enhance the quality of the decoding-side reconstruction point cloud under the average code rate, and improve the encoding and decoding performance of point cloud.
Smart Images

Figure CN122497980A_ABST
Abstract
Description
Coding and decoding method, code stream, encoder, decoder and storage medium Technical Field
[0001] The embodiments of the present application relate to the field of video coding and decoding technology, and in particular to a coding and decoding method, a bit stream, an encoder, a decoder, and a storage medium. Background Art
[0002] In the Geometry-based Point Cloud Compression (G-PCC) codec framework, the geometric and attribute information of a point cloud are encoded separately. G-PCC attribute encoding can include Predicting Transform (PT), Lifting Transform (LT), and Region Adaptive Hierarchical Transform (RAHT).
[0003] For the RAHT transform, as the number of layers increases from the root node to the child nodes, the coded AC coefficient values obtained by the transform gradually decrease. As a result, in the last few layers of the radar point cloud, the coded AC coefficient values contain a large number of zeros. The encoding of the AC coefficient values of the last few layers will result in bitstream waste and reduce coding efficiency.
[0004] Summary of the Invention
[0005] The embodiments of the present application provide a coding and decoding method, a bit stream, an encoder, a decoder, and a storage medium, which can improve the coding and decoding efficiency of RAHT transformation.
[0006] The technical solution of the embodiment of the present application can be implemented as follows:
[0007] In a first aspect, an embodiment of the present application provides a decoding method, applied to a decoder, the method comprising:
[0008] Determining a value of a first decoding parameter;
[0009] When the first decoding parameter indicates skip decoding of k transform layers of the current point cloud, determining one or more AC coefficient residual values of the k transform layers to be preset values; wherein k is an integer greater than zero;
[0010] Decode the code stream and determine the residual values of the AC coefficients of other transform layers other than the k transform layers in the current point cloud;
[0011] The reconstructed point cloud of the current point cloud is determined according to the residual values of the AC coefficients of the k transformation layers and the residual values of the AC coefficients of other transformation layers.
[0012] In a second aspect, an embodiment of the present application provides an encoding method, applied to an encoder, the method comprising:
[0013] Determining a value of a first encoding parameter;
[0014] When the first encoding parameter indicates skip encoding of k transformation layers of the current point cloud, determining one or more AC coefficient residual values of the k transformation layers to be preset values; wherein k is an integer greater than zero;
[0015] One or more AC coefficient residual values of the k transformation layers are coded according to preset values, and the obtained coded bits are written into the bit stream.
[0016] In a third aspect, an embodiment of the present application provides a code stream, which is generated by bit encoding based on information to be encoded; wherein the information to be encoded includes at least one of the following:
[0017] AC coefficient residual values of multiple transformation layers corresponding to the current point cloud, the DC coefficient value of the root node of the current point cloud, the AC coefficient residual values of k transformation layers of the current point cloud as preset values, the AC coefficient residual values of other transformation layers other than the k transformation layers in the current point cloud, the value of the first encoding parameter, the value of the second encoding parameter, and the value of the third encoding parameter;
[0018] Among them, the first encoding parameter is used to indicate whether to perform jump encoding on the k transformation layers of the current point cloud, the second encoding parameter is used to indicate whether to turn on jump encoding of the current point cloud, and the third encoding parameter is used to indicate whether to perform jump encoding on the k transformation layers to be processed components of the current point cloud.
[0019] In a fourth aspect, an embodiment of the present application provides an encoder, comprising a first determining unit and an encoding unit, wherein:
[0020] A first determining unit is configured to determine a value of a first encoding parameter; when the first encoding parameter indicates skip encoding of k transform layers of the current point cloud, determine one or more AC coefficient residual values of the k transform layers to be a preset value; wherein k is an integer greater than zero;
[0021] The encoding unit is configured to perform encoding processing on one or more AC coefficient residual values of k transformation layers according to preset values, and write the obtained encoding bits into the bit stream.
[0022] In a fifth aspect, an embodiment of the present application provides an encoder, comprising a first memory and a first processor, wherein:
[0023] a first memory for storing a computer program capable of running on the first processor;
[0024] The first processor is configured to execute the method according to the second aspect when running the computer program.
[0025] In a sixth aspect, an embodiment of the present application provides a decoder, comprising a second determination unit, a decoding unit, and a reconstruction unit, wherein:
[0026] a second determining unit configured to determine a value of a first decoding parameter; and when the first decoding parameter indicates skip decoding of k transform layers of the current point cloud, determining one or more AC coefficient residual values of the k transform layers to be a preset value; wherein k is an integer greater than zero;
[0027] a decoding unit configured to decode the code stream and determine residual values of AC coefficients of other transform layers other than k transform layers in the current point cloud;
[0028] The reconstruction unit is configured to determine a reconstructed point cloud of the current point cloud according to the residual values of the AC coefficients of the k transformation layers and the residual values of the AC coefficients of other transformation layers.
[0029] In a seventh aspect, an embodiment of the present application provides a decoder, comprising a second memory and a second processor, wherein:
[0030] a second memory for storing a computer program capable of running on the second processor;
[0031] The second processor is configured to execute the method according to the first aspect when running the computer program.
[0032] In an eighth aspect, an embodiment of the present application provides a computer-readable storage medium storing a computer program, which, when executed by at least one processor, implements the method described in the first aspect or the method described in the second aspect.
[0033] The embodiments of the present application provide a coding and decoding method, a code stream, an encoder, a decoder, and a storage medium. At the encoding end, the value of a first coding parameter is determined; when the first coding parameter indicates that k transformation layers of the current point cloud are to be skip-encoded, one or more AC coefficient residual values of the k transformation layers are determined to be preset values; one or more AC coefficient residual values of the k transformation layers are encoded according to the preset values, and the resulting coded bits are written into the code stream. At the decoding end, the value of a first decoding parameter is determined; when the first decoding parameter indicates that k transformation layers of the current point cloud are to be skip-decoded, one or more AC coefficient residual values of the k transformation layers are determined to be preset values; the code stream is decoded to determine the AC coefficient residual values of other transformation layers in the current point cloud besides the k transformation layers; and the reconstructed point cloud of the current point cloud is determined based on the AC coefficient residual values of the k transformation layers and the AC coefficient residual values of the other transformation layers. That is to say, whether it is the encoding end or the decoding end, when determining to skip encoding the k transformation layers of the current point cloud, one or more AC coefficient residual values of these k transformation layers are directly encoded according to the preset values. This can effectively improve the phenomenon of too many 0s in the AC coefficient values of the last few layers of encoding in the RAHT transform, thereby improving the encoding and decoding efficiency, and achieving quality enhancement of the reconstructed point cloud at the average bit rate at the decoding end, thereby improving the encoding and decoding performance of the point cloud. BRIEF DESCRIPTION OF THE DRAWINGS
[0034] FIG1A is a schematic diagram of a three-dimensional point cloud image;
[0035] FIG1B is a partially enlarged view of a three-dimensional point cloud image;
[0036] FIG2A is a schematic diagram of six viewing angles of a point cloud image;
[0037] FIG2B is a schematic diagram of a data storage format corresponding to a point cloud image;
[0038] FIG3 is a schematic diagram of a network architecture for point cloud encoding and decoding;
[0039] FIG4 is a schematic diagram of a composition framework of a G-PCC encoder;
[0040] FIG5 is a schematic diagram of a composition framework of a G-PCC decoder;
[0041] FIG6 is a schematic diagram of a RAHT encoding process;
[0042] FIG7A is a schematic diagram of the structure of a current node;
[0043] FIG7B is a schematic diagram of the structure of a sub-node;
[0044] FIG8 is a schematic diagram of a RAHT transformation based on transformation direction;
[0045] FIG9 is a schematic diagram of a RAHT forward conversion process;
[0046] FIG10 is a schematic diagram of an inverse transformation process of RAHT;
[0047] FIG11 is a schematic diagram of an inter-frame prediction process of RAHT;
[0048] FIG12 is a flowchart diagram of a decoding method according to an embodiment of the present application;
[0049] FIG13 is a second flow chart of a decoding method provided in an embodiment of the present application;
[0050] FIG14 is a third flow chart of a decoding method provided in an embodiment of the present application;
[0051] FIG15 is a fourth flow chart of a decoding method provided in an embodiment of the present application;
[0052] FIG16 is a fifth flow chart of a decoding method provided in an embodiment of the present application;
[0053] FIG17 is a schematic diagram of a detailed flow chart of a decoding method provided in an embodiment of the present application;
[0054] FIG18 is a flowchart diagram 1 of an encoding method provided in an embodiment of the present application;
[0055] FIG19 is a second flow chart of an encoding method provided in an embodiment of the present application;
[0056] FIG20 is a third flow chart of an encoding method provided in an embodiment of the present application;
[0057] FIG21 is a schematic diagram of a code stream structure of a related technology;
[0058] FIG22 is a schematic diagram of a code stream structure provided in an embodiment of the present application;
[0059] FIG23 is a schematic diagram of a detailed flow chart of an encoding method provided in an embodiment of the present application;
[0060] FIG24 is a schematic diagram of the overall flow of a coding and decoding method provided in an embodiment of the present application;
[0061] FIG25 is a schematic diagram of the structure of an encoder provided in an embodiment of the present application;
[0062] FIG26 is a schematic diagram of a specific hardware structure of an encoder provided in an embodiment of the present application;
[0063] FIG27 is a schematic diagram of the structure of a decoder provided in an embodiment of the present application;
[0064] FIG28 is a schematic diagram of a specific hardware structure of a decoder provided in an embodiment of the present application;
[0065] Figure 29 is a schematic diagram of the composition structure of a coding and decoding system provided in an embodiment of the present application. DETAILED DESCRIPTION
[0066] In order to enable a more detailed understanding of the features and technical contents of the embodiments of the present application, the implementation of the embodiments of the present application is described in detail below with reference to the accompanying drawings. The attached drawings are for reference only and are not used to limit the embodiments of the present application.
[0067] Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by those skilled in the art to which this application pertains. The terms used herein are for the purpose of describing the embodiments of this application only and are not intended to limit this application.
[0068] In the following description, reference is made to “some embodiments”, which describes a subset of all possible embodiments, but it will be 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.
[0069] It should also be pointed out that the terms "first\second\third" involved in the embodiments of the present application are only used to distinguish similar objects and do not represent a specific ordering of the objects. It can be understood that "first\second\third" can be interchanged with a specific order or sequence where permitted, so that the embodiments of the present application described here can be implemented in an order other than that illustrated or described here.
[0070] Before further explaining the embodiments of the present application in detail, the nouns and terms involved in the embodiments of the present application are explained first. The nouns and terms involved in the embodiments of the present application are subject to the following interpretations:
[0071] Geometry-based Point Cloud Compression (G-PCC / GPCC);
[0072] Video-based Point Cloud Compression (V-PCC or VPCC);
[0073] Level of Detail (LOD);
[0074] Region Adaptive Hierarchal Transform (RAHT);
[0075] Alternating Current, AC;
[0076] Direct Current, DC;
[0077] Attribute Parameter Set (APS);
[0078] Peak Signal to Noise Ratio (PSNR);
[0079] Rate–distortion optimization (RDO);
[0080] Rate–distortion optimization Quantization (RDOQ);
[0081] Luminance component (Luminance, Luma or Y);
[0082] Chroma blue (Cb);
[0083] Red chrominance component (Chroma red, Cr).
[0084] Point cloud is a three-dimensional representation of the surface of an object. Point cloud (data) of the surface of an object can be collected through acquisition equipment such as photoelectric radar, lidar, laser scanner, and multi-view camera.
[0085] A point cloud is a set of irregularly distributed discrete points in space that express the spatial structure and surface properties of a three-dimensional object or scene. Figure 1A shows a three-dimensional point cloud image and Figure 1B shows a partially enlarged view of the three-dimensional point cloud image. It can be seen that the point cloud surface is composed of densely distributed points.
[0086] In a two-dimensional image, each pixel contains information and is distributed regularly, so there's no need to record its location. However, the distribution of points in a point cloud in three-dimensional space is random and irregular, so recording the location of each point in space is necessary to fully represent the point cloud. Similar to a two-dimensional image, each location in the acquisition process has corresponding attribute information, typically an RGB color value, which reflects the object's color. For a point cloud, in addition to color information, each point's corresponding attribute information often includes reflectance values, which reflect the surface texture of the object. Therefore, point cloud data typically includes both point location information and point attribute information. Point location information can also be referred to as point geometric information. For example, point geometric information can be the point's three-dimensional coordinates (x, y, z). Point attribute information can include color information and / or reflectance. For example, reflectance can be one-dimensional reflectance information (r). Color information can be information in any color space, or it can be three-dimensional color information, such as RGB. Here, R represents red (R), G represents green (G), and B represents blue (B). For another example, the color information may be luminance and chrominance (YCbCr, YUV) information, where Y represents brightness (Luma), Cb (U) represents blue color difference, and Cr (V) represents red color difference.
[0087] For example, a point cloud generated using laser measurement principles can include both its 3D coordinate information and its reflectivity. For another example, a point cloud generated using photogrammetry principles can include both its 3D coordinate information and its 3D color information. For another example, a point cloud generated using a combination of laser measurement and photogrammetry principles can include both its 3D coordinate information, its reflectivity value, and its 3D color information.
[0088] Figures 2A and 2B show a point cloud image and its corresponding data storage format. Figure 2A provides six viewing angles of the point cloud image, while Figure 2B consists of a file header and data. The header includes the data format, data representation type, the total number of points in the point cloud, and the content represented by the point cloud. For example, the point cloud is in ".ply" format, represented by ASCII code, with a total of 207,242 points. Each point has 3D coordinate information (x, y, z) and 3D color information (r, g, b).
[0089] Point clouds can be divided into the following categories according to the acquisition method:
[0090] Static point cloud: the object is stationary and the device that acquires the point cloud is also stationary;
[0091] Dynamic point cloud: The object is moving, but the device that obtains the point cloud is stationary;
[0092] Dynamic point cloud acquisition: The device used to acquire the point cloud is in motion.
[0093] For example, point clouds can be divided into two categories according to their usage:
[0094] Category 1: Machine perception point cloud, which can be used in scenarios such as autonomous navigation systems, real-time inspection systems, geographic information systems, visual sorting robots, and disaster relief robots;
[0095] Category 2: Human eye perception point cloud, which can be used in point cloud application scenarios such as digital cultural heritage, free viewpoint broadcasting, 3D immersive communication, and 3D immersive interaction.
[0096] Point clouds can flexibly and conveniently express the spatial structure and surface properties of three-dimensional objects or scenes. Moreover, since point clouds are obtained by directly sampling real objects, they can provide a strong sense of reality 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.
[0097] Point clouds are primarily collected through computer generation, 3D laser scanning, and 3D photogrammetry. Computers can generate point clouds of virtual 3D objects and scenes; 3D laser scanning can obtain point clouds of static real-world 3D objects or scenes, generating millions of point clouds per second; and 3D photogrammetry can obtain point clouds of dynamic real-world 3D objects or scenes, generating tens of millions of point clouds per second. These technologies reduce the cost and time required to acquire point cloud data while improving data accuracy. While changes in point cloud data acquisition methods have made it possible to acquire large amounts of point cloud data, the processing of this massive amount of 3D point cloud data is facing bottlenecks due to storage space and transmission bandwidth constraints, as application demands grow.
[0098] For example, taking a point cloud video with a frame rate of 30 frames per second (fps), each frame contains 700,000 points, and each point has coordinate information (xyz, float) and color information (RGB, uchar). Therefore, the data volume of a 10-second point cloud video is approximately 0.7 million × (4 bytes × 3 + 1 byte × 3) × 30 fps × 10 seconds = 3.15 GB, where 1 byte is 10 bits. For a 1280 × 720 2D video with a YUV sampling format of 4:2:0 and a frame rate of 24 fps, the data volume for 10 seconds is approximately 1280 × 720 × 12 bits × 24 fps × 10 seconds ≈ 0.33 GB. The data volume of a 10-second two-view 3D video is approximately 0.33 × 2 = 0.66 GB. This shows that the data volume of a point cloud video far exceeds that of 2D and 3D videos of the same length. Therefore, in order to better realize data management, save server storage space, and reduce the transmission traffic and transmission time between the server and the client, point cloud compression has become a key issue in promoting the development of the point cloud industry.
[0099] That is to say, since the point cloud is a collection of massive points, storing the point cloud not only consumes a lot of memory, but is also not conducive to transmission. There is also not enough bandwidth to support direct transmission of the point cloud at the network layer without compression. Therefore, the point cloud needs to be compressed.
[0100] Currently, the point cloud coding framework that can compress point clouds can be the geometry-based Point Cloud Compression (G-PCC) codec framework or the video-based Point Cloud Compression (V-PCC) codec framework provided by the Moving Picture Experts Group (MPEG), or the AVS-PCC codec framework provided by AVS. The G-PCC codec framework can be used to compress the first type of static point clouds and the third type of dynamically acquired point clouds, which can be based on the Point Cloud Compression Test Platform (Test Model Compression 13, TMC13). The V-PCC codec framework can be used to compress the second type of dynamic point clouds, which can be based on the Point Cloud Compression Test Platform (Test Model Compression 2, TMC2). Therefore, the G-PCC codec framework is also called the point cloud codec TMC13, and the V-PCC codec framework is also called the point cloud codec TMC2.
[0101] An embodiment of the present application provides a network architecture of a point cloud encoding and decoding system including a decoding method and an encoding method. FIG3 is a schematic diagram of a network architecture of a point cloud encoding and decoding system. As shown in FIG3 , the network architecture includes one or more electronic devices 13 to 1N and a communication network 01, wherein the electronic devices 13 to 1N can perform video interaction through the communication network 01. During the implementation process, the electronic device can be various types of devices with point cloud encoding and decoding functions. For example, the electronic device can include a mobile phone, a tablet computer, a personal computer, a personal digital assistant, a navigator, a digital phone, a video phone, a television, a sensor device, a server, etc., which is not limited by the embodiment of the present application. Among them, the decoder or encoder in the embodiment of the present application can be the above-mentioned electronic device.
[0102] Among them, the electronic device in the embodiment of the present application has a point cloud encoding and decoding function, generally including a point cloud encoder (ie, encoder) and a point cloud decoder (ie, decoder).
[0103] The following takes the G-PCC codec framework as an example to introduce the relevant technologies in detail.
[0104] As you can understand, in the point cloud G-PCC codec framework, the point cloud data to be encoded is first divided into multiple slices through slice partitioning. In each slice, the geometric information of the point cloud and the attribute information corresponding to each point are encoded separately.
[0105] Figure 4 is a schematic diagram of the composition framework of a G-PCC encoder. As shown in Figure 4, in the G-PCC encoding framework, for the point cloud data to be encoded, the point cloud data is first divided into multiple slices through slice division. In each slice, the geometric information of the point cloud and the attribute information corresponding to each point cloud are encoded separately. In the geometric encoding process, the geometric information is transformed so that all the point clouds are contained in a Bounding Box, and then quantized. This quantization step mainly plays a scaling role. Due to the quantization rounding, the geometric information of some point clouds is the same, so the decision whether to remove duplicate points is made based on the parameters. The process of quantization and removal of duplicate points is also called voxelization. Then the Bounding Box is divided into an octree. In the octree-based geometry encoding process, the bounding box is divided into eight equal parts, and the non-empty sub-cubes (those containing points in the point cloud) are further divided into eight equal parts until the resulting leaf nodes are 1×1×1 unit cubes. The points in the leaf nodes are then arithmetically encoded to generate a binary geometry bitstream, also known as the geometry codestream. In the triangle soup (Trisoup)-based geometry encoding process, octree partitioning is also performed first. However, unlike the octree-based geometry encoding process, the Trisoup does not require the point cloud to be partitioned into 1×1×1 unit cubes. Instead, the partitioning stops when the point cloud reaches a sub-block with a side length of W. Based on the surface formed by the distribution of the point cloud in each block, up to twelve intersection points (vertices) generated by this surface and the twelve edges of the block are obtained. These vertices are then arithmetically encoded (surface fitting is performed based on the intersection points) to generate a binary geometry bitstream, also known as the geometry codestream. Vertex is also used to implement the geometric reconstruction process, and the reconstructed collection information is used when encoding the attributes of the point cloud.
[0106] 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. The reconstructed geometric information is then used to recolor the point cloud so that the unencoded attribute information corresponds to the reconstructed geometric information. Attribute encoding is primarily performed on color information. There are two main transformation methods for color information encoding: a distance-based lifting transform that relies on LOD partitioning, and a direct RAHT transform. Both methods convert color information from the spatial domain to the frequency domain, obtaining high-frequency and low-frequency coefficients through the transformation. The coefficients are then quantized (i.e., quantized coefficients). Finally, the geometrically encoded data that has undergone octree partitioning and surface fitting is sliced and synthesized with the attribute encoded data processed with the quantized coefficients. The vertex coordinates of each block are then encoded in sequence (i.e., arithmetic coding) to generate a binary attribute bit stream, i.e., the attribute code stream.
[0107] Figure 5 is a schematic diagram of the composition framework of a G-PCC decoder. As shown in Figure 5, in the G-PCC decoding framework, for the acquired binary code stream, the geometric bit stream and attribute bit stream in the binary code stream are first decoded independently. When decoding the geometric bit stream, the geometric information of the point cloud is obtained through arithmetic decoding-octree synthesis-surface fitting-reconstruction geometry-inverse coordinate conversion; when decoding the attribute bit stream, the attribute information of the point cloud is obtained through arithmetic decoding-inverse quantization-LOD-based lifting inverse transform or RAHT-based inverse transform-inverse color conversion, and the three-dimensional image model of the point cloud data to be encoded is restored based on the geometric information and attribute information.
[0108] It can also be understood that for the RAHT encoding of point cloud attribute information, Figure 6 is a schematic diagram of the RAHT encoding process. As shown in Figure 6, for the original point cloud (or called "initial point cloud"), intra-frame prediction or inter-frame prediction can be performed. Among them, in the intra-frame prediction process, the original point cloud is upsampled and predicted to obtain a predicted point cloud, and then a RAHT transform is performed to determine the predicted AC coefficient; in the inter-frame prediction process, a reference point cloud can be obtained based on the adjacent frames of the original point cloud, and then a RAHT transform can also be performed to determine the predicted AC coefficient. Performing a RAHT transform on the original point cloud can determine the DC coefficient and the original AC coefficient of the root node; performing a subtraction operation on the original AC coefficient and the predicted AC coefficient can obtain a prediction residual. After the prediction residual is quantized and entropy encoded, the attribute code stream can be generated.
[0109] Here, the RAHT transform is based on the Haar wavelet transform. Its core is to recursively transform the hierarchical tree structure from the root node to the child nodes from bottom to top. The DC coefficient obtained from the transformation is passed to the next layer, and the AC coefficient is quantized and encoded. The main encoding process is: first, based on the octree structure divided by the point cloud, it is determined whether it uses upsampling prediction or inter-frame prediction; second, recursive changes are performed from the root node to the child nodes from bottom to top to obtain the AC coefficients of each layer. If there is a prediction, the predicted AC coefficient is subtracted from the original AC coefficient to obtain the current prediction residual; finally, the prediction residual of the AC coefficient is quantized and encoded to generate the attribute code stream.
[0110] It can also be understood that in the embodiment of the present application, a video frame can be understood as an image. For example, the current frame can be understood as the current image, and the reference frame can be understood as the reference image.
[0111] In a specific implementation, the detailed steps of RAHT encoding are as follows:
[0112] Step 1: RAHT transformation.
[0113] The RAHT transformation method adopted by G-PCC first performs a recursive transformation along each dimension from parent nodes to child nodes from bottom to top based on the divided octree structure. The transformation process is obtained by the following formula:
[0114] Among them, w i,j is the weight of the jth node to be transformed in the i-th layer, g i,j is the attribute value of the leaf node, h i,j is the AC coefficient, h i,j is the DC coefficient. After each transformation, the DC coefficient is passed directly to the next layer, and the AC coefficient is quantized and entropy coded; if there is only one point in the layer, the attribute value of the point is directly passed to the next layer as the DC coefficient. For RAHT transformation, Figure 7A is a structural diagram of a current node, wherein the cube filled with grids is the current node, and the cube filled with diagonal lines is the neighbor node of the current node. Figure 7B is a structural diagram of a child node, specifically the small cube filled with dots is the child node of the current node. In addition, Figure 8 is a schematic diagram of RAHT transformation based on transformation direction. As shown in Figure 8, the black arrow indicates the transformation direction. According to the octree structure, the nodes in each layer are transformed along the dimensions of the transformation direction (for example, the x-axis direction, the y-axis direction, the z-axis direction, etc.) in a bottom-up manner. During the transformation process, the DC coefficient of the nodes in the same layer after transformation will be passed to the next layer, and the AC coefficient of each layer after transformation will be quantized and entropy coded.
[0115] Step 2, upsample prediction.
[0116] To further remove redundancy and improve point compression efficiency, an upsampling prediction method was introduced. The core of upsampling prediction is intra-frame prediction, which uses the previously encoded attribute information of a point to predict the attribute information of the current point, thereby obtaining the predicted AC coefficients. Redundancy is then removed by encoding the prediction residual between the predicted AC coefficients and the original AC coefficients.
[0117] The RAHT transform tree structure changes from bottom-up to top-down, and the transform still occurs within a 2×2×2 block. Attribute prediction is performed on these child nodes using the reconstructed attribute values of their parent node and its coplanar and colinear neighbors to obtain the predicted attribute values of the child nodes. The original and predicted attribute values of the child nodes within these blocks are RAHT transformed to obtain the corresponding DC and AC coefficients. The AC coefficients obtained from the actual attributes are then differentiated from the AC coefficients obtained from the predicted attributes to obtain the prediction residual, which is then quantized and entropy coded. The specific process is shown in Figure 9.
[0118] When performing the RAHT inverse transform, the DC coefficient inherits the reconstructed attribute value of the parent node in the previous layer. The AC coefficient residual obtained at the decoding end is accumulated with the predicted AC coefficient obtained by the upsampling prediction attribute value transformation, and then the RAHT inverse transform is performed together with the inherited DC coefficient to obtain the reconstructed attribute value. The specific process is shown in Figure 10.
[0119] Step 3: inter-frame prediction.
[0120] Inter-frame prediction uses information from an already encoded reference image to predictively encode the current image, reducing redundancy. The reference image is partitioned into an octree structure and subjected to a RAHT transform. The AC coefficients of each reference node are memorized for inter-frame prediction of the next frame. When encoding the target node, the coefficients of the reference and current images are used to calculate the coefficient residual, which is then entropy-coded. The decoder follows a similar process. Figure 11 illustrates the inter-frame prediction process.
[0121] Inter prediction is applied only when the current point cloud and the reference point cloud have the same octree partitioning structure and are at the same node position. If the prediction coefficient value does not exist in the reference buffer, inter prediction is not applied. If the corresponding AC coefficient does not exist in the reference buffer, inter prediction is not applied.
[0122] Step 4: Encode the coefficient residual and the residual RDOQ.
[0123] The predicted attribute value of each point in the current 2×2×2 block is obtained through the above intra-frame prediction or inter-frame prediction. The real attribute value and predicted attribute value of the sub-nodes in these blocks are respectively subjected to RAHT transformation to obtain the corresponding DC coefficient and AC coefficient. For the obtained i-th predicted AC coefficient (k is 8). Let (AC i ) i∈1…k-1 is the ith original AC coefficient (i.e., the true AC coefficient), then the coded AC coefficient residual (r i ) i∈0…k-1 Denoted as:
[0124] Then, a rate-distortion optimization judgment is performed on the AC coefficient residual. If the rate-distortion cost RDcost of setting the coefficient to 0 is less than the rate-distortion cost RDcost of the original coding, the coefficient is set to 0.
[0125] Furthermore, the prediction residual after RDO judgment is quantified:
[0126] Among them, Q i It represents the quantized attribute residual of the current point i, Qs is the quantization step (Qs), which can be calculated by the quantization parameter (QP) specified by CTC.
[0127] Step 5: The encoding end reconstructs the attribute value.
[0128] The purpose of reconstruction at the encoding end is to predict the subsequent points. Before reconstructing the attribute value, the encoded AC residual needs to be dequantized. is the residual after inverse quantization:
[0129] and predicted AC coefficient The sum can be used to obtain the i-th reconstructed AC coefficient in the current block The details are as follows:
[0130] Finally, the AC coefficients are reconstructed The reconstructed attribute value can be obtained by performing an inverse RAHT transform together with the DC coefficient inherited from the parent node in the previous layer.
[0131] That is, in related technologies, RAHT currently calculates, quantizes, and encodes layer by layer, starting from the root node and working its way down to the child nodes. Because the DC component and attribute information of each layer are accumulated layer by layer from the leaf node to the root node, the encoded AC coefficient values obtained from the root node transformation are relatively large. However, as the number of layers increases, the encoded AC coefficient values gradually decrease, resulting in a large number of zeros in the AC coefficients after RDOQ and attribute quantization in the last few layers of the radar point cloud. Statistics show that zeros account for over 95% of the AC coefficients in the last few layers of the point cloud. However, the number of AC coefficients in the last few layers of the radar point cloud accounts for the majority of all AC coefficients; therefore, encoding these AC coefficients inevitably results in significant bitrate waste.
[0132] Based on this, an embodiment of the present application provides an encoding method, which determines the value of a first encoding parameter; when the first encoding parameter indicates that k transform layers of the current point cloud are to be skip-encoded, determines that one or more AC coefficient residual values of the k transform layers are preset values; encodes the one or more AC coefficient residual values of the k transform layers according to the preset values, and writes the resulting encoded bits into a bitstream. An embodiment of the present application also provides a decoding method, which determines the value of a first decoding parameter; when the first decoding parameter indicates that k transform layers of the current point cloud are to be skip-decoded, determines that one or more AC coefficient residual values of the k transform layers are preset values; decodes the bitstream, determines the AC coefficient residual values of other transform layers in the current point cloud other than the k transform layers; and determines the reconstructed point cloud of the current point cloud based on the AC coefficient residual values of the k transform layers and the AC coefficient residual values of the other transform layers.
[0133] That is to say, whether it is the encoding end or the decoding end, when determining to skip encoding the k transformation layers of the current point cloud, one or more AC coefficient residual values of these k transformation layers are directly encoded according to the preset values. This can effectively improve the phenomenon of too many 0s in the AC coefficient values of the last few layers of encoding in the RAHT transform, thereby improving the encoding and decoding efficiency, and achieving quality enhancement of the reconstructed point cloud at the average bit rate at the decoding end, thereby improving the encoding and decoding performance of the point cloud.
[0134] The embodiments of the present application will be described in detail below with reference to the accompanying drawings.
[0135] In one embodiment of the present application, FIG12 is a flowchart of a decoding method provided by the embodiment of the present application. As shown in FIG12 , the method may include:
[0136] S1201: Determine a value of a first decoding parameter.
[0137] It should be noted that in the embodiments of the present application, the method is applied to a point cloud decoder (hereinafter referred to as "decoder"). Here, a point cloud decoding method is provided, more specifically, a skip decoding method for RAHT transform coefficients, which can improve the phenomenon of excessive zeros in the last few layers of coded AC coefficients in the RAHT transform.
[0138] It should also be noted that, in embodiments of the present application, the first decoding parameter can be used to indicate whether to perform skip decoding on the k transform layers of the current point cloud. In some embodiments, if the value of the first decoding parameter is a first value, it is determined that the first decoding parameter indicates that skip decoding is to be performed on the k transform layers of the current point cloud; if the value of the first decoding parameter is a second value, it is determined that the first decoding parameter indicates that skip decoding is not to be performed on the k transform layers of the current point cloud. Where k is an integer greater than zero.
[0139] In some embodiments, for determining the value of the first decoding parameter, the method may include: decoding a code stream, and determining the value of the first decoding parameter.
[0140] It should be noted that, in the embodiment of the present application, the first decoding parameter can be expressed in the form of a syntax element. In this case, the first decoding parameter can be called the first syntax element, which is represented by flagzero. In other words, in the embodiment of the present application, it can also be: decoding the code stream, and determining the value of the first syntax element. Among them, the first syntax element can also be used to indicate whether to perform jump decoding on the k transform layers of the current point cloud. If the value of the first syntax element is the first value, it is determined that the k transform layers of the current point cloud are jump decoded; if the value of the first syntax element is the second value, it is determined that the k transform layers of the current point cloud are not jump decoded.
[0141] It should also be noted that in the embodiment of the present application, the first value is different from the second value. The first value can be set to an integer greater than zero, such as 1, 2, 3, etc.; the second value can be set to 0.
[0142] It is understood that the value of k is associated with the first value. In a specific embodiment, the method further includes: when the first decoding parameter indicates skip decoding of k transform layers of the current point cloud, the value of k can be set to be equal to the first value.
[0143] It is also understood that a codestream may include a geometry codestream unit, an attribute codestream unit, an attribute parameter set (APS) unit, etc. In some embodiments, decoding the codestream and determining the value of the first decoding parameter may include decoding the attribute codestream unit in the codestream and determining the value of the first decoding parameter. In other words, when decoding the codestream, the first decoding parameter is specifically the attribute codestream unit in the codestream.
[0144] S1202: When the first decoding parameter indicates skip decoding of k transformation layers of the current point cloud, determine one or more AC coefficient residual values of the k transformation layers as preset values.
[0145] It should be noted that, in the embodiment of the present application, the preset value can be set to 0. In this way, if it is determined to perform skip decoding on the k transformation layers of the current point cloud, then one or more AC coefficient residual values of the k transformation layers can be restored to 0 at this time.
[0146] It should also be noted that, in the embodiment of the present application, k is an integer greater than 0. When determining to skip decode k transform layers of the current point cloud, the value of k can be set to be equal to the first value of the determined first decoding parameter, or the first value of the first syntax element.
[0147] That is to say, for decoding the first decoding parameter, if the first value of the first decoding parameter is k, then it can be determined that the k transformation layers of the current point cloud are skipped and decoded; if the second value of the first decoding parameter is 0, then it can be determined that the k transformation layers of the current point cloud are not skipped and decoded, that is, at this time it is necessary to decode the AC coefficient residual values of all transformation layers of the current point cloud.
[0148] In some embodiments, the method may further include decoding the bitstream and determining that one or more AC coefficient residual values for the k transform layers are preset values. That is, in this embodiment of the present application, the one or more AC coefficient residual values for the k transform layers are written into the bitstream according to the preset values. Thus, the decoding end also needs to decode the bitstream to determine that the one or more AC coefficient residual values for the k transform layers are the preset values.
[0149] In some embodiments, the method may further include: determining all AC coefficient residual values of the k transform layers as a preset value. That is, in the embodiment of the present application, when determining one or more AC coefficient residual values of the k transform layers, when determining to skip decoding the k transform layers of the current point cloud, all AC coefficient residual values of the k transform layers may also be determined as the preset value.
[0150] In some embodiments, the method may further include: dividing the points in the current point cloud into layers, determining multiple transformation layers corresponding to the current point cloud and the root node of the current point cloud; wherein the multiple transformation layers include k transformation layers and other transformation layers.
[0151] It should be noted that in the embodiment of the present application, the points in the current point cloud can be divided into layers based on the octree structure to obtain multiple transformation layers. Specifically, for the divided octree structure, the transformation of each layer can be performed from the root node to the child nodes from top to bottom.
[0152] It should also be noted that in actual applications, in the last few layers of the current point cloud, the number of AC coefficient residual values in these layers that are 0 accounts for more than 95%. To improve encoding and decoding efficiency, in some embodiments, the method may further include: setting the k transform layers to be the last k transform layers in the multiple transform layers from the root node to the bottom.
[0153] In other words, this mainly focuses on whether to skip decoding the last k transform layers of the current point cloud. For example, when the first decoding parameter indicates to skip decoding the last k transform layers of the current point cloud, then one or more AC coefficient residual values of the last k transform layers can be restored to 0, thereby improving encoding and decoding efficiency.
[0154] S1203 , decoding the code stream, and determining the residual values of the AC coefficients of other transformation layers other than the k transformation layers in the current point cloud.
[0155] S1204 , determining a reconstructed point cloud of the current point cloud according to the AC coefficient residual values of the k transformation layers and the AC coefficient residual values of other transformation layers.
[0156] It should be noted that, in the embodiment of the present application, the AC coefficient residual value is located in the attribute code stream unit of the code stream. In some embodiments, the method may include: decoding the attribute code stream unit in the code stream to determine the AC coefficient residual value of other transform layers.
[0157] It should also be noted that, in the embodiment of the present application, the multiple transformation layers corresponding to the current point cloud may include k transformation layers and other transformation layers other than k transformation layers. Thus, the reconstructed point cloud of the current point cloud is determined based on the AC coefficient residual values of the k transformation layers and the AC coefficient residual values of the other transformation layers, that is, based on the AC coefficient residual values of the multiple transformation layers.
[0158] In some embodiments, referring to FIG. 13 , after step S1201, the method may further include:
[0159] S1301 : When the first decoding parameter indicates that skip decoding is not performed on the k transform layers of the current point cloud, decode the code stream to determine the residual values of the AC coefficients of the multiple transform layers corresponding to the current point cloud.
[0160] S1302: Determine a reconstructed point cloud of the current point cloud according to the AC coefficient residual values of multiple transformation layers.
[0161] It should be noted that in the embodiments of the present application, if skip decoding is not performed on the k transform layers of the current point cloud, then it can be indicated that the multiple transform layers corresponding to the current point cloud need to decode their respective AC coefficient residual values. In some embodiments, the method may further include: decoding attribute code stream units in the code stream to determine the AC coefficient residual values of the multiple transform layers.
[0162] That is, in the embodiment of the present application, the first decoding parameter and the AC coefficient residual value are both located in the attribute code stream unit of the code stream. Specifically, in some embodiments, the method may further include: determining, in the attribute code stream unit, that the field corresponding to the first decoding parameter is located after the field corresponding to the AC coefficient residual value.
[0163] In this way, the decoding end first decodes the value of the first decoding parameter to determine the number of transformation layers of the AC coefficient residual value that needs to be decoded, and then decodes the AC coefficient residual value that needs to be decoded according to the indication of the first decoding parameter, and restores the AC coefficient residual value of the k transformation layers for performing jump decoding to 0.
[0164] In some embodiments, the method may further include: decoding the code stream and determining the DC coefficient value of the root node of the current point cloud.
[0165] It should be noted that, in the embodiment of the present application, only the DC coefficient value of the root node needs to be written into the bitstream. In some embodiments, the method may further include: decoding the attribute bitstream unit in the bitstream to determine the DC coefficient value of the root node of the current point cloud.
[0166] It should also be noted that in this embodiment of the present application, for multiple transform layers, the DC coefficient value can be directly passed to the next layer during each transform. However, the AC coefficient value must be subjected to residual calculation, and the AC coefficient residual value of each layer must be quantized and entropy encoded. Furthermore, if a transform layer has only one point, the attribute value of that point can be directly passed as the DC coefficient value to the next layer.
[0167] In some embodiments, the method further includes: saving the DC coefficient value of the root node into the first parameter matrix of the current point cloud. Furthermore, the method may further include: saving the AC coefficient residual values of k transformation layers and the AC coefficient residual values of other transformation layers into the first parameter matrix of the current point cloud. In other words, the AC coefficient residual values of multiple transformation layers may be saved into the first parameter matrix of the current point cloud.
[0168] In an embodiment of the present application, the decoder parses the bitstream and first decodes the first decoding parameter at the end of the bitstream. If the decoded value of the first decoding parameter is k, the AC coefficient residual values of the k transform layers are all decoded as 0. The AC coefficient residual values of the other transform layers are decoded normally and stored in the first parameter matrix. If the decoded value of the first decoding parameter is 0, all AC coefficient residual values of the multiple transform layers are decoded and stored in the first parameter matrix. It should be noted that during the process of decoding the AC coefficient residual values, the DC coefficient value of the decoded root node is also stored in the first parameter matrix.
[0169] In some embodiments, the method may further include: performing inverse quantization processing on parameter values in the first parameter matrix of the current point cloud.
[0170] That is to say, in the embodiment of the present application, before performing the RAHT inverse transform, both the DC coefficient values and the AC coefficient residual values in the first parameter matrix need to be inverse quantized.
[0171] In some embodiments, for determining a reconstructed point cloud of a current point cloud, referring to FIG. 14 , the method may include:
[0172] S1401, determining attribute prediction values of points in multiple transformation layers.
[0173] S1402 , performing region-adaptive hierarchical transformation on the attribute prediction values of the points in the multiple transformation layers to determine the AC coefficient prediction values of the points in the multiple transformation layers.
[0174] S1403 : Determine a second parameter matrix of the current point cloud according to the first parameter matrix of the current point cloud and the AC coefficient prediction values of the points in the multiple transformation layers.
[0175] S1404 , performing a region-adaptive hierarchical inverse transform on the second parameter matrix of the current point cloud to determine a reconstructed point cloud of the current point cloud.
[0176] It should be noted that in the embodiments of the present application, determining the reconstructed point cloud of the current point cloud may specifically include: determining the predicted AC coefficient values of points in multiple transformation layers; then determining the second parameter matrix of the current point cloud based on the first parameter matrix of the current point cloud and the predicted AC coefficient values of points in the multiple transformation layers; and then performing a region-adaptive hierarchical inverse transform on the second parameter matrix of the current point cloud to determine the reconstructed point cloud of the current point cloud. The DC coefficient, also known as the low-frequency coefficient, is represented by the DC coefficient; and the AC coefficient, also known as the high-frequency coefficient, is represented by the AC coefficient.
[0177] It should also be noted that, in embodiments of the present application, to determine the AC coefficient prediction values of points in multiple transform layers, it is first necessary to determine the attribute prediction values of the points in the current point cloud. In some embodiments, the method may include: when the current point cloud allows intra-frame prediction, performing intra-frame prediction on the points in the multiple transform layers to determine the attribute prediction values of the points in the multiple transform layers; when the current point cloud allows inter-frame prediction, determining a reference point cloud for the current point cloud, and performing inter-frame prediction on the points in the multiple transform layers based on the reference point cloud to determine the attribute prediction values of the points in the multiple transform layers.
[0178] In this way, after determining the attribute prediction values of points in multiple transformation layers, the corresponding AC coefficient prediction values can be determined based on the regional adaptive hierarchical transformation. node The corresponding attribute transformation formula is as follows:
[0179] In some embodiments, a second parameter matrix of the current point cloud is determined based on a first parameter matrix of the current point cloud and AC coefficient prediction values of points in multiple transformation layers. Taking the current transformation layer among multiple transformation layers as an example, the method may include: determining the AC coefficient residual values of the points of the current transformation layer in the first parameter matrix and determining the AC coefficient prediction values of the points of the current transformation layer based on the points of the current transformation layer in the current point cloud; performing an addition operation on the AC coefficient residual values and the AC coefficient prediction values to obtain AC coefficient reconstruction values of the points of the current transformation layer; after obtaining the AC coefficient reconstruction values of the points of the multiple transformation layers, determining the second parameter matrix of the current point cloud based on the DC coefficient value of the root node and the AC coefficient reconstruction values of the points of the multiple transformation layers.
[0180] For example, taking the dth transformation layer as an example, the dth transformation layer includes m nodes. The first parameter matrix can be expressed as The predicted value of the AC coefficient can be expressed as The second parameter matrix can be expressed as In this way, the second parameter matrix of the current point cloud is determined based on the first parameter matrix of the current point cloud and the AC coefficient prediction values of the points in the multiple transformation layers. Specifically, the second parameter matrix of the current point cloud is determined by performing an addition operation on the first parameter matrix of the current point cloud and the AC coefficient prediction values of the points in the multiple transformation layers, as shown below:
[0181] In some embodiments, a regional adaptive hierarchical inverse transformation is performed on the second parameter matrix of the current point cloud to determine the reconstructed point cloud of the current point cloud. The method may include: when the current transformation layer is the first transformation layer, performing a regional adaptive hierarchical inverse transformation based on the DC coefficient value of the root node and the AC coefficient reconstruction value of the point of the current transformation layer to obtain the reconstructed attribute value of the point of the first transformation layer; when the current transformation layer is not the first transformation layer, determining the DC coefficient value of the point of the current transformation layer based on the reconstructed attribute value of the point of the previous transformation layer of the current transformation layer, performing a regional adaptive hierarchical inverse transformation based on the DC coefficient value of the point of the current transformation layer and the AC coefficient reconstruction value of the point of the current transformation layer to obtain the reconstructed attribute value of the point of the non-first transformation layer.
[0182] It should be noted that in the embodiment of the present application, the decoding process is still carried out from top to bottom. First, the DC coefficient value of the root node and the residual value of the AC coefficient of the first layer are obtained, and the RAHT inverse transform is performed to obtain the reconstructed attribute value of the first layer; if the configuration allows intra-frame prediction or inter-frame prediction, the AC coefficient residual value of the first layer is first added to the predicted AC coefficient value to obtain the reconstructed AC coefficient value, and the obtained reconstructed AC coefficient value and the DC coefficient value of the root node are subjected to the RAHT inverse transform to obtain the reconstructed attribute value of the first layer. The 8 reconstructed attribute values obtained can then be used to calculate the DC coefficients of the 8 nodes in the second layer, and then the decoded AC coefficient residual value of the second layer is added to the predicted AC coefficient value to obtain the reconstructed AC coefficient value of the second layer; the reconstructed AC coefficient value of the second layer is subjected to the RAHT inverse transform together with the DC coefficient value to obtain the reconstructed attribute value of the third layer, and so on, until all transform layers are fully decoded.
[0183] For example, still taking the dth transformation layer as an example, the reconstructed attribute value of the dth transformation layer can be expressed as The region-adaptive layered inverse transform can be used with T node -1 The corresponding inverse attribute transformation formula is as follows:
[0184] In some embodiments, based on the decoding method shown in FIG12 , referring to FIG15 , step S1201 may include:
[0185] S1501: Determine a value of a second decoding parameter.
[0186] S1502: When the second decoding parameter indicates to start skip decoding of the current point cloud, determine the value of the first decoding parameter.
[0187] It should be noted that in the embodiments of the present application, the second decoding parameter can be used to indicate whether to enable skip decoding of the current point cloud, that is, to indicate whether the technical solution of the embodiments of the present application is enabled. In some embodiments, if the value of the second decoding parameter is a third value, it is determined that the second decoding parameter indicates that skip decoding of the current point cloud is enabled; if the value of the second decoding parameter is a fourth value, it is determined that the second decoding parameter indicates that skip decoding of the current point cloud is not enabled.
[0188] In some embodiments, for determining the value of the second decoding parameter, the method may include: decoding the code stream, and determining the value of the second decoding parameter.
[0189] It should be noted that in the embodiment of the present application, the method may further include: decoding the attribute parameter set unit in the code stream to determine the value of the second decoding parameter. That is, when decoding the code stream, the second decoding parameter is specifically the attribute parameter set unit located in the code stream.
[0190] It should also be noted that, in an embodiment of the present application, the second decoding parameter can be expressed in the form of a syntax element. In this case, the second decoding parameter can be called a second syntax element, represented by skip_raht_enabled_flag. In other words, in an embodiment of the present application, it can also be: decoding the code stream, and determining the value of the second syntax element. Among them, the second syntax element can also be used to indicate whether to enable skip decoding of the current point cloud, that is, to indicate whether the technical solution of the embodiment of the present application is enabled. In some embodiments, if the value of the second syntax element is the third value, it is determined that the second syntax element indicates that skip decoding of the current point cloud is enabled; if the value of the second syntax element is the fourth value, it is determined that the second syntax element indicates that skip decoding of the current point cloud is not enabled.
[0191] It should also be noted that in the embodiments of the present application, the third value is different from the fourth value. The third value can be set to 1 and the fourth value can be set to 0; or the third value can be set to 0 and the fourth value can be set to 1; or the third value can be set to true and the fourth value can be set to false; or the third value can be set to false and the fourth value can be set to true. In a specific embodiment, the third value is set to 1 and the fourth value is set to 0, but this is not intended to be limiting.
[0192] In some embodiments, referring to FIG16 , the method may further include:
[0193] S1601: Decode a code stream and determine a value of a third decoding parameter.
[0194] S1602: When the third decoding parameter indicates skip decoding of the components to be processed of the k transformation layers of the current point cloud, determine that one or more AC coefficient residual values of the components to be processed of the k transformation layers are preset values.
[0195] S1603 , decoding the code stream, and determining the AC coefficient residual values of the components to be processed in other transformation layers other than the k transformation layers in the current point cloud.
[0196] S1604 , determining a reconstructed point cloud of the to-be-processed component of the current point cloud according to the AC coefficient residual values of the to-be-processed components of k transformation layers and the AC coefficient residual values of the to-be-processed components of other transformation layers.
[0197] It should be noted that, in the embodiment of the present application, the component to be processed may include at least one of the first color component, the second color component and the third color component.
[0198] It should also be noted that in an embodiment of the present application, the third decoding parameter can be expressed in the form of a syntax element. In this case, the third decoding parameter can be referred to as a third syntax element. When the component to be processed is the first color component (e.g., the Y component), flag_Y can be used to indicate whether the Y components of the k transform layers of the current point cloud are to be skip-decoded. When the component to be processed is the second color component (e.g., the U component), flag_U can be used to indicate whether the U components of the k transform layers of the current point cloud are to be skip-decoded. When the component to be processed is the third color component (e.g., the V component), flag_V can be used to indicate whether the V components of the k transform layers of the current point cloud are to be skip-decoded. In other words, in the color attributes of the dense point cloud, the skip decoding mode for the RAHT transform coefficients can be extended to three channels at the same time. At this time, for the third coding parameter, three flags, flag_Y, flag_U, and flag_V, can be set to respectively record the number of coefficient layers to be skip-decoded.
[0199] In a specific embodiment, FIG17 is a detailed flowchart of a decoding method provided by an embodiment of the present application. As shown in FIG17 , in the attribute code stream, the first decoding parameter (flag bit flag) is first decoded. If flag = 0, then it is necessary to decode the DC and all AC coefficients (specifically, the DC coefficient value and the residual value of all AC coefficients); if flag = k, then it is necessary to decode the coefficients (specifically, the DC coefficient value and the residual value of the AC coefficient of other layers, and the last k layer is decoded as 0); then these coefficients are inversely quantized. When prediction is allowed, the AC coefficient prediction value can be determined based on intra-frame prediction or inter-frame prediction, and then the AC coefficient reconstruction value can be determined based on the AC coefficient prediction value and the inversely quantized AC coefficient residual value. After performing RAHT inverse transform on the AC coefficient reconstruction value, the corresponding reconstructed attribute value can be obtained.
[0200] In the embodiment of the present application, the specific implementation of the program on the decoding end is as follows. First, the flag .skip_raht_enabled_flag is decoded in the attribute parameter set APS. This flag determines whether the technical solution of the embodiment of the present application is turned on; if it is true, the flag flag in the attribute code stream is first decoded in the code stream and transmitted to the RAHT sub-function. If the decoded flag value is k, the AC coefficient residual value of the last k layers of RAHT is restored according to the value of 0 for the next attribute reconstruction; if the decoded flag value is 0, the AC coefficient residual value of all layers of RAHT is restored according to the original coding value. Here, the AC coefficient residual value is stored in the parameter matrix transformPredBuf.
[0201] The embodiment of the present application provides a decoding method, which determines the value of a first decoding parameter; when the first decoding parameter indicates that k transform layers of the current point cloud are to be skip-decoded, determines that one or more AC coefficient residual values of the k transform layers are preset values; decodes the code stream to determine the AC coefficient residual values of other transform layers in the current point cloud other than the k transform layers; and determines the reconstructed point cloud of the current point cloud based on the AC coefficient residual values of the k transform layers and the AC coefficient residual values of the other transform layers. In this way, when it is determined that the k transform layers of the current point cloud are to be skip-coded, the one or more AC coefficient residual values of the k transform layers are directly decoded according to the preset values, which can effectively improve the phenomenon of excessive zeros in the AC coefficient residual values of the last few layers in the RAHT transform, thereby improving the encoding and decoding efficiency. In addition, a flag is used to record whether the skip decoding operation is performed and for how many layers, thereby improving the reconstruction quality at the average bit rate, thereby improving the encoding and decoding performance of the point cloud.
[0202] In another embodiment of the present application, FIG18 is a flow chart of a coding method provided in an embodiment of the present application. As shown in FIG18 , the method may include:
[0203] S1801: Determine a value of a first encoding parameter.
[0204] It should be noted that in the embodiments of the present application, the method is applied to a point cloud encoder (hereinafter referred to as "encoder"). Here, a point cloud encoding method is provided, more specifically, a skip encoding method for RAHT transform coefficients, which can improve the phenomenon of excessive zeros in the last few layers of RAHT transform encoded AC coefficient values.
[0205] It should also be noted that, in the embodiment of the present application, for the first encoding parameter, the first encoding parameter can be used to indicate whether to perform skip encoding on the k transformation layers of the current point cloud. In some embodiments, referring to FIG. 19 , the method may include:
[0206] S1901, determining a first generation value for encoding all AC coefficient residual values of k transformation layers, and determining a second generation value for encoding one or more AC coefficient residual values of k transformation layers according to a preset value.
[0207] S1902: If the first generation value is greater than the second generation value, determine that the value of the first encoding parameter is the first value.
[0208] S1903: If the first generation value is less than the second generation value, determine that the value of the first encoding parameter is the second value.
[0209] It should be noted that in the embodiment of the present application, after determining the first-generation value and the second-generation value, the value of the first encoding parameter can be determined based on the first-generation value and the second-generation value. Alternatively, it can be said that the first-generation value and the second-generation value determine whether to perform skip encoding on the k transformation layers of the current point cloud. Where k is an integer greater than zero.
[0210] It should also be noted that in the embodiment of the present application, the cost value here can be determined based on the cost result of Rate-Distortion Optimization (RDO), or based on the cost result of Sum of Absolute Difference (SAD), or even based on the cost result of Sum of Absolute Transformed Difference (SATD), but no limitation is made here.
[0211] Understandably, in the field of video coding, the encoded bit rate and distortion are in a contradictory relationship. If you want to obtain higher-quality reconstructed video with less distortion, you need to increase the transmission bit rate. However, the bit rate cannot be increased indefinitely. In some cases, it is necessary to reduce the bit rate to ensure smooth video transmission. To better improve encoding efficiency, it is necessary to comprehensively consider the bit rate and distortion and find a compromise between the two so that the distortion is as small as possible under the condition of a fixed bit rate. This can be expressed as follows:
[0212] Among them, D represents distortion, R represents bit rate, Represents the conditional parameter configuration of the encoding, such as the quantization step size. Equation (11) is a constrained optimization problem, which can be transformed into the following form using Lagrange multipliers:
[0213] Where RDcost is the rate-distortion cost and λ is the Lagrange multiplier. This is the rate-distortion optimization problem in the field of video coding.
[0214] In this embodiment of the present application, a method is proposed to improve coding efficiency by calculating the RDOcost of the AC coefficient residual values of the current point cloud multi-parameters (layers m, m-1, ...) without encoding, and comparing them with the RDOcost of the residual values of the coefficients when all are encoded, thereby deciding whether to encode these coefficient residual values. Since RDcost calculation is inconvenient, the ΔRDcost method can be used. Taking layer k as an example, the calculation formula is as follows: ΔR=R org -1 (14) ΔRDcost=ΔD-λ·ΔR (15)
[0215] Among them, ΔD can be expressed by the square value of the residual values of all AC coefficients of k transformation layers, which is used to refer to the distortion cost after all the residual values of these coefficients are not encoded, R org is the bitrate cost in the related art coding scheme. The bitrate cost of not encoding all k transform layer AC coefficient residual values is only the 1-bit occupied by the first syntax element (flag). Therefore, ΔR represents the difference in bitrate cost between not encoding and encoding the k transform layer AC coefficient residual values, i.e., the bitrate saved by not encoding the k transform layer AC coefficient residual values. At this point, if the calculated ΔRDcost is greater than 0, it indicates that the distortion cost of not encoding is high, and flag is set to 0. If the calculated ΔRDcost is less than 0, it indicates that the bitrate saving of not encoding is high, and it is necessary to continue comparing the ΔRDcosts of other transform layers to determine whether to set flag to k.
[0216] The Lagrange multiplier λ is selected in the form of H.266 / VCC video coding, as shown in the following formula:
[0217] Where c is a constant and QP is the quantization step size. We selected c values of 0.01, 0.1, 0.2, 0.3, and 0.4, and analyzed the optimal range for c based on the attribute compression performance of the test point cloud under the C1 condition. We continued to narrow the search step size, ultimately determining the optimal value for the constant c to be 0.12.
[0218] Here, taking the rate-distortion optimization method as an example, determining the first-generation value for encoding all AC coefficient residual values of k transform layers can be performed by calculating the cost of encoding all AC coefficient residual values of k transform layers using the rate-distortion optimization method to obtain the first-generation value. Determining the second-generation value for encoding one or more AC coefficient residual values of k transform layers according to a preset value can be performed by calculating the cost of encoding one or more AC coefficient residual values of k transform layers according to a preset value using the rate-distortion optimization method to obtain the second-generation value.
[0219] In one possible implementation, for determining whether to perform jump encoding on the k transformation layers of the current point cloud, the method may include: if the first-generation value is greater than the second-generation value, determining to perform jump encoding on the k transformation layers of the current point cloud; if the first-generation value is less than the second-generation value, determining not to perform jump encoding on the k transformation layers of the current point cloud.
[0220] In another possible implementation, for determining whether to perform jump encoding on the k transformation layers of the current point cloud, the method may include: if the value of the first encoding parameter is a first value, determining that the first encoding parameter indicates that jump encoding is to be performed on the k transformation layers of the current point cloud; if the value of the first encoding parameter is a second value, determining that the first encoding parameter indicates that jump encoding is not to be performed on the k transformation layers of the current point cloud.
[0221] It should be noted that, in an embodiment of the present application, the first coding parameter can be expressed in the form of a syntax element. In this case, the first coding parameter can be called a first syntax element and represented by flagzero. The first syntax element can also be used to indicate whether the k transformation layers of the current point cloud are to be skip-coded. In some embodiments, the method may further include: determining a first generation value for encoding all the AC coefficient residual values of the k transformation layers, and determining a second generation value for encoding one or more AC coefficient residual values of the k transformation layers according to a preset value; determining the value of the first syntax element based on the first generation value and the second generation value.
[0222] In one possible implementation, the method may further include: if the first generation value is greater than the second generation value, determining that the first syntax element indicates that the k transform layers of the current point cloud are skip-encoded; if the first generation value is less than the second generation value, determining that the first syntax element indicates that the k transform layers of the current point cloud are not skip-encoded.
[0223] In this implementation, for determining the value of the first syntax element, the method may include: if the k transform layers of the current point cloud are skip-coded, determining the value of the first syntax element to be the first value; if the k transform layers of the current point cloud are not skip-coded, determining the value of the first syntax element to be the second value.
[0224] It should also be noted that, for the case where the first-generation value is equal to the second-generation value, it can be processed with reference to the case where the first-generation value is greater than the second-generation value, such as determining to skip-encode the k transformation layers of the current point cloud; or, it can be processed with reference to the case where the first-generation value is less than the second-generation value, such as determining not to skip-encode the k transformation layers of the current point cloud. No limitation is made here.
[0225] In some embodiments, the method may further include: performing encoding processing on the value of the first encoding parameter, and writing the obtained encoding bits into the bitstream.
[0226] It is understood that a code stream may include a geometry code stream unit, an attribute code stream unit, an attribute parameter set (APS) unit, etc. In some embodiments, encoding the value of the first coding parameter and writing the resulting coded bits into the code stream may include encoding the value of the first coding parameter and writing the resulting coded bits into an attribute code stream unit in the code stream. In other words, the first coding parameter is specifically an attribute code stream unit in the code stream.
[0227] It should be noted that in the embodiment of the present application, the first value is different from the second value. The first value can be set to an integer greater than zero, such as 1, 2, 3, etc.; the second value can be set to 0.
[0228] It should also be noted that the value of k is associated with the first value. In a specific embodiment, the method further includes: when the first encoding parameter indicates skip encoding of k transformation layers of the current point cloud, the first value can be set to be equal to the value of k.
[0229] In some embodiments, regarding the value of k, referring to FIG. 20 , the method may include:
[0230] S2001, determining a third generation value for encoding all AC coefficient residual values of m transformation layers, and determining a fourth generation value for encoding one or more AC coefficient residual values of m transformation layers according to a preset value.
[0231] S2002, when the third generation value is greater than the fourth generation value, determine the fifth generation value of the i transformation layers of the current point cloud encoded according to the preset value, where i = 1, 2, ..., m, and m is an integer greater than zero.
[0232] S2003: After obtaining m fifth-generation values, determine the minimum value from the m fifth-generation values.
[0233] S2004: Determine the value of k based on the value of i corresponding to the minimum cost.
[0234] It should be noted that, in the embodiment of the present application, still taking the rate-distortion optimization method as an example, the third-generation value for encoding all AC coefficient residual values of m transform layers can be determined by calculating the cost of encoding all AC coefficient residual values of m transform layers using the rate-distortion optimization method to obtain the third-generation value. The fourth-generation value for encoding one or more AC coefficient residual values of m transform layers according to preset values can be determined by calculating the cost of encoding one or more AC coefficient residual values of m transform layers according to preset values using the rate-distortion optimization method to obtain the fourth-generation value.
[0235] It should also be noted that when skip coding one or more AC coefficient residual values for m transform layers is determined based on the third- and fourth-generation values, the value of k can be further determined, specifically for which one or more AC coefficient residual values for a specific transform layer are skip-coded. Here, the RDOcosts for not coding the AC coefficient residual values for layers m, m-1, ..., 2, and 1 can be determined. The minimum RDOcost value can then be selected, and the number of layers corresponding to the minimum RDOcost value is determined as the value of k.
[0236] It should be noted that, for the case where the third-generation value is equal to the fourth-generation value, you can refer to the case where the third-generation value is greater than the fourth-generation value, that is, determine the fifth-generation value of the i (i = 1, 2, ..., m) transformation layers of the current point cloud encoded according to the preset value, so as to further determine the jump encoding of the k transformation layers of the current point cloud; or, you can also refer to the case where the third-generation value is less than the fourth-generation value, that is, execute the step of encoding all the residual values of the AC coefficients of the current point cloud, and there is no limitation here.
[0237] S1802: When the first encoding parameter indicates that skip encoding is to be performed on k transformation layers of the current point cloud, one or more AC coefficient residual values of the k transformation layers are determined to be preset values.
[0238] It should be noted that, in the embodiment of the present application, the preset value can be set to 0. In this way, if it is determined to perform skip encoding on the k transformation layers of the current point cloud, then one or more AC coefficient residual values of the k transformation layers can be encoded as 0 at this time.
[0239] It should also be noted that, in the embodiment of the present application, k is an integer greater than 0. When determining to perform skip encoding on k transformation layers of the current point cloud, the value of the first encoding parameter may be set equal to the value of k.
[0240] That is to say, for the first coding parameter, if the first value of the first coding parameter is k, then it can be determined that the k transformation layers of the current point cloud are skip-coded; if the second value of the first coding parameter is 0, then it can be determined that the k transformation layers of the current point cloud are not skip-coded, that is, at this time it is necessary to encode the AC coefficient residual values of all transformation layers of the current point cloud.
[0241] In some embodiments, the method may further include encoding one or more AC coefficient residual values for the k transform layers according to a preset value, and writing the resulting coded bits into the bitstream. That is, in this embodiment of the present application, the one or more AC coefficient residual values for the k transform layers are written into the bitstream according to the preset value. Thus, the decoding end also needs to decode the bitstream to determine that the one or more AC coefficient residual values for the k transform layers are the preset value.
[0242] In some embodiments, the method may further include: determining all AC coefficient residual values of the k transform layers as preset values. That is, in the embodiments of the present application, when determining one or more AC coefficient residual values of the k transform layers, when determining to skip-code the k transform layers of the current point cloud, all AC coefficient residual values of the k transform layers may also be determined as preset values.
[0243] In some embodiments, the method may further include: dividing the points in the current point cloud into layers, determining multiple transformation layers corresponding to the current point cloud and the root node of the current point cloud; wherein the multiple transformation layers include k transformation layers and other transformation layers.
[0244] It should be noted that in the embodiment of the present application, the points in the current point cloud can be divided into layers based on the octree structure to obtain multiple transformation layers. Specifically, for the divided octree structure, the transformation of each layer can be performed from the root node to the child nodes from top to bottom.
[0245] It should also be noted that in actual applications, in the last few layers of the current point cloud, the number of AC coefficient residual values in these layers that are 0 accounts for more than 95%. To improve coding efficiency, in some embodiments, the method may further include: setting the k transform layers to be the last k transform layers in the multiple transform layers from the root node from top to bottom.
[0246] In other words, this mainly focuses on whether to skip code the last k transform layers of the current point cloud. For example, when the first coding parameter indicates that the last k transform layers of the current point cloud are to be skip coded, then one or more AC coefficient residual values of the last k transform layers can be directly coded as 0, thereby improving coding efficiency.
[0247] S1803 , performing encoding processing on one or more AC coefficient residual values of k transformation layers according to preset values, and writing the obtained encoding bits into a bitstream.
[0248] It should be noted that in the embodiments of the present application, the AC coefficient residual values are located in the attribute code stream unit of the code stream. In some embodiments, the method may include: encoding one or more AC coefficient residual values of k transform layers according to preset values, and writing the resulting coded bits into the attribute code stream unit of the code stream.
[0249] It should also be noted that, in an embodiment of the present application, the multiple transformation layers corresponding to the current point cloud may include k transformation layers and other transformation layers other than the k transformation layers. In this way, in addition to the k transformation layers, the residual values of the AC coefficients of the other transformation layers need to be encoded normally. In some embodiments, the method may further include: when the first encoding parameter indicates that the k transformation layers of the current point cloud are to be skipped, determining the residual values of the AC coefficients of the other transformation layers other than the k transformation layers in the multiple transformation layers; encoding the residual values of the AC coefficients of the other transformation layers, and writing the obtained coded bits into the bitstream.
[0250] In a specific embodiment, encoding the AC coefficient residual values of other transformation layers and writing the obtained coded bits into the code stream may include: encoding the AC coefficient residual values of other transformation layers and writing the obtained coded bits into the attribute code stream unit in the code stream.
[0251] In some embodiments, the method may further include: determining AC coefficient prediction values of points in multiple transformation layers; determining AC coefficient residual values of multiple transformation layers based on the AC coefficient initial values of points in multiple transformation layers and the AC coefficient prediction values of points in multiple transformation layers.
[0252] It should be noted that, in an embodiment of the present application, the method also includes: determining the initial attribute values of points in multiple transformation layers; performing regional adaptive hierarchical transformation on the initial attribute values of points in multiple transformation layers, and determining the initial AC coefficient values of points in multiple transformation layers and the DC coefficient value of the root node.
[0253] Here, the DC coefficient can also be called the low-frequency coefficient and is represented by the DC coefficient; the AC coefficient can also be called the high-frequency coefficient and is represented by the AC coefficient. For example, taking the dth transformation layer as an example, the dth transformation layer includes m nodes. The region-adaptive hierarchical transformation can be represented by T node Indicates that. For the initial value of the attribute, the corresponding attribute transformation formula is as follows:
[0254] It should also be noted that, in an embodiment of the present application, the method further includes: determining the attribute prediction values of points in multiple transformation layers; performing regional adaptive hierarchical transformation on the attribute prediction values of points in multiple transformation layers to determine the AC coefficient prediction values of points in multiple transformation layers.
[0255] Here, determining the attribute prediction values of points in multiple transform layers can be based on intra-frame prediction or inter-frame prediction. In some embodiments, the method may include: when the current point cloud allows the use of intra-frame prediction, performing intra-frame prediction on the points in the multiple transform layers to determine the attribute prediction values of the points in the multiple transform layers; when the current point cloud allows the use of inter-frame prediction, determining a reference point cloud for the current point cloud, and performing inter-frame prediction on the points in the multiple transform layers based on the reference point cloud to determine the attribute prediction values of the points in the multiple transform layers.
[0256] In this way, after determining the attribute prediction values of points in multiple transformation layers, the corresponding AC coefficient prediction values can be determined based on the regional adaptive hierarchical transformation. node The corresponding attribute transformation formula is as follows:
[0257] In some embodiments, determining the AC coefficient residual values of multiple transformation layers based on the initial AC coefficient values of the points in the multiple transformation layers and the predicted AC coefficient values of the points in the multiple transformation layers can include: performing a subtraction operation on the AC coefficient initial values of the points in the multiple transformation layers and the predicted AC coefficient values of the points in the multiple transformation layers to obtain the AC coefficient prediction residuals of the points in the multiple transformation layers; and performing quantization processing on the AC coefficient prediction residuals of the points in the multiple transformation layers to obtain the AC coefficient residual values of the multiple transformation layers.
[0258] For example, taking the dth transformation layer as an example, the dth transformation layer includes m nodes. For the AC coefficient prediction residuals of points in multiple transformation layers, they can be obtained by subtracting the initial value of the AC coefficient from the predicted value of the AC coefficient, as shown below:
[0259] In some embodiments, the method may further include: when the first coding parameter indicates that the k transformation layers of the current point cloud are not to be skip-coded, encoding the residual values of the AC coefficients of multiple transformation layers, and writing the obtained coding bits into the bitstream.
[0260] It should be noted that in this embodiment of the present application, if skip coding is not performed on the k transform layers of the current point cloud, then it can be understood that the multiple transform layers corresponding to the current point cloud need to encode their respective AC coefficient residual values. In some embodiments, the method may further include encoding the AC coefficient residual values of the multiple transform layers and writing the resulting coded bits into the attribute code stream unit in the code stream.
[0261] That is, in the embodiment of the present application, the first coding parameter and the AC coefficient residual value are both located in the attribute code stream unit of the code stream. Specifically, in some embodiments, the method may further include: in the attribute code stream unit, determining that the field corresponding to the first coding parameter is located after the field corresponding to the AC coefficient residual value.
[0262] It should be noted that, in the embodiment of the present application, only the DC coefficient value of the root node needs to be written into the bitstream. In some embodiments, the method may further include: encoding the DC coefficient value of the root node and writing the obtained coded bits into the bitstream.
[0263] It should be noted that, in an embodiment of the present application, the method may further include: encoding the DC coefficient value of the root node, and writing the obtained encoding bits into the attribute code stream unit in the code stream.
[0264] It should also be noted that in this embodiment of the present application, for multiple transform layers, the DC coefficient value can be directly passed to the next layer during each transform. However, a residual calculation of the AC coefficient value is required, and the AC coefficient residual value of each layer must be quantized and entropy encoded. Furthermore, if a transform layer has only one point, the attribute value of that point can be directly passed as the DC coefficient value to the next layer. In this process, only the DC coefficient value of the root node needs to be written into the bitstream.
[0265] For the attribute code stream, Figure 21 is a schematic diagram of a code stream structure of a related technology, and Figure 22 is a schematic diagram of a code stream structure provided by an embodiment of the present application. As shown in Figure 22, bits and flag represent the coded quantization coefficient residual and the RDO layer zero flag respectively, and n represents the total number of points in the point cloud. During encoding, the DC coefficient value of the root node and all the AC coefficient residual values are first entropy-coded and written into the code stream, and then the flag flag is arithmetic-coded and written into the code stream. In this way, at the decoding end, the flag can be first decoded to determine the number of transformation layers of the AC coefficient residual value that needs to be decoded, and then the AC coefficient residual value that needs to be decoded is decoded according to the indication of the first decoding parameter, and the AC coefficient residual value of the k transformation layers for performing jump decoding is restored to 0.
[0266] In some embodiments, the method may further include: determining a value of a second encoding parameter; and when the second encoding parameter indicates to start jump encoding of the current point cloud, executing the step of determining a value of the first encoding parameter.
[0267] It should be noted that in the embodiments of the present application, the second encoding parameter can be used to indicate whether to enable skip encoding for the current point cloud, that is, to indicate whether the technical solution of the embodiments of the present application is enabled. In some embodiments, if the value of the second encoding parameter is a third value, it is determined that the second encoding parameter indicates that skip encoding for the current point cloud is enabled; if the value of the second encoding parameter is a fourth value, it is determined that the second encoding parameter indicates that skip encoding for the current point cloud is not enabled.
[0268] In some embodiments, the method further includes: encoding the value of the second encoding parameter and writing the resulting encoded bits into the bitstream. In a specific embodiment, encoding the value of the second encoding parameter and writing the resulting encoded bits into an attribute parameter set unit in the bitstream. In other words, the second encoding parameter is specifically an attribute parameter set unit in the bitstream.
[0269] It should also be noted that, in the embodiment of the present application, the second coding parameter can be expressed in the form of a syntax element. In this case, the second coding parameter can be called a second syntax element and represented by skip_raht_enabled_flag. The second syntax element can also be used to indicate whether skip coding of the current point cloud is enabled, that is, to indicate whether the technical solution of the embodiment of the present application is enabled. In some embodiments, if skip coding of the current point cloud is enabled, the value of the second syntax element is determined to be the third value; if skip coding of the current point cloud is not enabled, the value of the second syntax element is determined to be the fourth value.
[0270] That is, in the embodiment of the present application, determining the value of the second coding parameter according to the value of the second syntax element may include: setting the value of the second coding parameter to be equal to the value of the second syntax element.
[0271] It should also be noted that in the embodiments of the present application, the third value is different from the fourth value. The third value can be set to 1 and the fourth value can be set to 0; or the third value can be set to 0 and the fourth value can be set to 1; or the third value can be set to true and the fourth value can be set to false; or the third value can be set to false and the fourth value can be set to true. In a specific embodiment, the third value is set to 1 and the fourth value is set to 0, but this is not intended to be limiting.
[0272] In some embodiments, the method may further include: when jump encoding the unprocessed components of the k transformation layers of the current point cloud, determining that one or more AC coefficient residual values of the unprocessed components of the k transformation layers are preset values; encoding the one or more AC coefficient residual values of the unprocessed components of the k transformation layers according to the preset values, and writing the obtained coded bits into the bit stream.
[0273] It should be noted that, in an embodiment of the present application, the method may further include: determining the AC coefficient residual values of the components to be processed of other transformation layers other than the k transformation layers in the current point cloud; encoding the AC coefficient residual values of the components to be processed of other transformation layers, and writing the obtained coded bits into the bit stream.
[0274] It should also be noted that, in an embodiment of the present application, the method may further include: determining a value of a third coding parameter; wherein the second coding parameter is used to indicate whether to perform jump coding on the to-be-processed components of the k transformation layers of the current point cloud; encoding the value of the third coding parameter, and writing the obtained coding bits into the bitstream.
[0275] It should be noted that, in the embodiment of the present application, the component to be processed may include at least one of the first color component, the second color component and the third color component.
[0276] It should also be noted that in an embodiment of the present application, the third coding parameter can be expressed in the form of a syntax element. In this case, the third coding parameter can be referred to as a third syntax element. When the component to be processed is the first color component (e.g., the Y component), flag_Y can be used to indicate whether the Y components of the k transform layers of the current point cloud are skip-coded; when the component to be processed is the second color component (e.g., the U component), flag_U can be used to indicate whether the U components of the k transform layers of the current point cloud are skip-coded; when the component to be processed is the third color component (e.g., the V component), flag_V can be used to indicate whether the V components of the k transform layers of the current point cloud are skip-coded. In other words, in the color attributes of the dense point cloud, the skip coding mode for the RAHT transform coefficients can be extended to three channels at the same time. In this case, for the third coding parameter, three flags, flag_Y, flag_U, and flag_V, can be set to respectively record the number of coefficient layers to be skip-coded.
[0277] In a specific embodiment, FIG23 is a detailed flow chart of a coding method provided by an embodiment of the present application. As shown in FIG23 , for the original point cloud (or referred to as the "initial point cloud"), intra-frame prediction or inter-frame prediction can be performed. In the intra-frame prediction process, the original point cloud is upsampled and predicted to obtain a predicted point cloud, and then a RAHT transform is performed to determine the predicted AC coefficient; in the inter-frame prediction process, a reference point cloud can be obtained based on the adjacent frames of the original point cloud, and then a RAHT transform is performed to determine the predicted AC coefficient. Performing a RAHT transform on the original point cloud can determine the DC coefficient and the original AC coefficient of the root node; performing a subtraction operation on the original AC coefficient and the predicted AC coefficient can obtain a predicted residual. After quantizing the predicted residual, the jump coding mode for the RAHT transform coefficient can be determined according to the value of the flag. In the RAHT algorithm, the original point cloud starts from the root node and performs a RAHT transform layer by layer for each 2×2×2 block from top to bottom. For the last m layers of multi-parameters, the AC coefficient residual values of the last k (k = 1, 2, ..., m) layers are subjected to RDO. If the encoding rate-distortion cost is high, the flag is set to the layer number k corresponding to the minimum RDcost, and only the AC coefficient residual values of the previous transformed layers are encoded. If the rate-distortion cost of not encoding is high, the flag is set to 0, and all AC coefficient residual values are encoded to obtain the attribute codestream. The specific operation process is shown in Figure 23.
[0278] In another embodiment of the present application, the embodiment of the present application provides a code stream, wherein the code stream is generated by bit encoding according to information to be encoded; wherein the information to be encoded includes at least one of the following:
[0279] The AC coefficient residual values of multiple transformation layers corresponding to the current point cloud, the DC coefficient value of the root node of the current point cloud, one or more AC coefficient residual values of the k transformation layers of the current point cloud are preset values, the AC coefficient residual values of other transformation layers outside the k transformation layers in the current point cloud, the value of the first encoding parameter, the value of the second encoding parameter and the value of the third encoding parameter.
[0280] In an embodiment of the present application, the first encoding parameter is used to indicate whether to perform jump encoding on the k transformation layers of the current point cloud, the second encoding parameter is used to indicate whether to enable jump encoding of the current point cloud, and the third encoding parameter is used to indicate whether to perform jump encoding on the k transformation layers of the current point cloud to be processed.
[0281] It should also be noted that in the embodiment of the present application, for encoding parameters, the parameters obtained by the decoding end through decoding the code stream can be called "decoding parameters". The meanings of the two are the same, but the names at the encoding end and the decoding end are different.
[0282] An embodiment of the present application provides an encoding method that determines the value of a first encoding parameter; when the first encoding parameter indicates skip encoding of k transform layers of a current point cloud, determines that one or more AC coefficient residual values of the k transform layers are preset values; encodes the one or more AC coefficient residual values of the k transform layers according to the preset values, and writes the resulting encoded bits into a bitstream. Thus, when it is determined that skip encoding is to be performed on the k transform layers of the current point cloud, the one or more AC coefficient residual values of the k transform layers are directly encoded according to the preset values. This can effectively improve the phenomenon of excessive zeros in the AC coefficient values of the last few layers of the RAHT transform, thereby improving encoding efficiency, achieving quality enhancement of the point cloud reconstructed at the average bit rate at the decoding end, and thereby improving the encoding and decoding performance of the point cloud.
[0283] In another embodiment of the present application, based on the encoding and decoding methods described in the previous embodiments, a skip coding mode for RAHT transform coefficients is proposed. During the layer-by-layer calculation of the RAHT algorithm from the root node to the child nodes, as the number of layers increases, the number of encoded AC coefficients gradually increases, while the coefficient values gradually decrease. In the last few layers of the radar point cloud, the number of AC coefficients accounts for the majority of all AC coefficients, yet the number of zeros in these layers accounts for over 95%. Therefore, encoding the AC coefficients of these last few layers inevitably results in significant bitrate waste. This technical solution proposes a rate-distortion optimization approach to determine the skip coding mode for RAHT transform coefficients. This approach uses rate-distortion optimization to determine the RDO cost of not encoding the AC coefficients for the last m layers, m-1 layers, ..., and all of the coefficients, compared to the RDO cost of encoding all of them. If the cost of not encoding the AC coefficients is less than the cost of encoding them, the RDO cost of not encoding is minimized for the number of layers used. A flag is set to the value of the layer k corresponding to the minimum cost, and entropy coding is performed simultaneously. When the decoder decodes, if the decoded flag flag is k, the AC coefficient residual value of the last k layers is reconstructed as 0; if the decoded flag is 0, all are reconstructed as the original value. The overall process of this technical solution is shown in Figure 24, which may specifically include:
[0284] S2401, calculate the multi-parameter layer level n-m ~level n The RDcost of each layer of the AC coefficient residual value encoding is compared with the RDcost of the unencoded layer. If the unencoded RDcost is smaller, the flag is set to the total number k of layers corresponding to the minimum cost RDcost, otherwise it is set to 0.
[0285] S2402: Perform arithmetic coding on the flag bit flag.
[0286] S2403, the decoding end first decodes the flag flag, if the flag value is k, then the level n-k+1 ~level n The AC coefficient residual value is reconstructed as 0, otherwise it is reconstructed as the original value.
[0287] In a specific implementation, the implementation process of the encoding and decoding method may include:
[0288] (1) Principle of rate-distortion optimization technology.
[0289] In the field of video coding, the bit rate and distortion after coding are in a contradictory relationship. If you want to obtain a higher quality reconstructed video with less distortion, you need to increase the transmission bit rate; however, the bit rate cannot be increased indefinitely. In some cases, you need to reduce the bit rate to ensure the smoothness of video transmission. In order to better improve the efficiency of coding, it is necessary to comprehensively consider the bit rate and distortion and find a compromise between the two so that the distortion is as small as possible under the condition of a fixed bit rate, as shown in formula (11). Where D represents distortion, R represents bit rate, represents the conditional parameter configuration for encoding, such as the quantization step size. The above equation is a constrained optimization problem, which can be transformed into the form shown in Equation (12) using Lagrange multipliers. Here, RDcost is the rate-distortion cost, and λ is the Lagrange multiplier. This is the rate-distortion optimization problem in the field of video coding.
[0290] In the embodiment of the present application, a method is proposed to improve the coding efficiency by calculating the RDOcost of the last m layers, m-1 layers...AC coefficient residual values of the radar point cloud multi-parameters without coding and comparing them with the RDOcost of all coefficient residual values coded to decide whether to code these coefficient residual values. Since the calculation of RDcost is inconvenient, the method of calculating ΔRDcost can be adopted. Taking the k layer as an example, the calculation formula is shown in formulas (13) to (15). Among them, ΔD is represented by the square value of all AC coefficient residual values of the last k layers, which is used to refer to the distortion cost after all these coefficient residual values are not coded, R org = is the bitrate cost in the related art coding scheme. The bitrate cost of not encoding the last k layers of AC coefficient residuals is only the 1-bit flag. Therefore, ΔR represents the difference in bitrate cost between not encoding the last k layers of AC coefficient residuals and encoding them, i.e., the bitrate saved by not encoding the last k layers of AC coefficient residuals. If the calculated ΔRDcost is greater than 0, it indicates a high distortion cost from not encoding, and the flag is set to 0. If the calculated ΔRDcost is less than 0, it indicates a high bitrate cost from not encoding, and the ΔRDcost of other layers needs to be compared to determine whether to set the flag to k.
[0291] The Lagrange multiplier λ is selected using the form used in H.266 / VCC video coding, as shown in Equation (16). Here, c is a constant and QP is the quantization step size. The values of c are selected as 0.01, 0.1, 0.2, 0.3, and 0.4. The attribute compression performance of the test point cloud under the C1 condition is selected and analyzed to find the optimal range of c. The search step size is further reduced, and the optimal value of the constant c is finally determined to be 0.12.
[0292] (2) Implementation details on the encoding side.
[0293] In the RAHT algorithm, the original point cloud starts from the root node and undergoes a RAHT transform layer by layer for each 2×2×2 block from top to bottom. If intra-frame prediction or inter-frame prediction is allowed, the predicted points are RAHT transformed, the predicted AC coefficient values are subtracted from the original AC coefficient values, and the residual values are quantized. For the last m layers of multi-parameters, the AC coefficient residual values of the last k (k = 1, 2, ..., m) layers are subjected to RDO judgment. If the encoding rate-distortion cost is high, the flag is set to the minimum RDcost corresponding to the layer number k, and only the AC coefficient residual values of the previous layers are encoded. If the rate-distortion cost of not encoding is high, the flag is set to 0, and all AC coefficient residual values are encoded to obtain the attribute code stream. The operation flow chart at the encoding end is shown in Figure 23.
[0294] (3) Code stream structure.
[0295] The bitstream structure is shown in Figures 21 and 22, where bits and flag represent the quantized coefficient residuals and the RDO layer zero flag, respectively, and n represents the total number of points in the point cloud. During encoding, the root node DC coefficient value and all AC coefficient residuals are entropy-coded and written into the bitstream, followed by arithmetic coding of the flag. At the decoding end, the flag is first decoded to determine the number of RAHT parameter layers to be decoded. The AC coefficient residuals to be decoded are then entropy-decoded into the corresponding parameter matrix according to the flag. The AC coefficient residuals of the remaining layers are reset to zero.
[0296] (4) Implementation details of the decoding end.
[0297] The operation flow chart at the decoding end is shown in Figure 17. The decoding end reads the bit stream and first decodes the zero flag flag at the end of the bit stream. If the decoded flag value is k, the residual values of the last k layers of AC coefficients are all decoded as 0, and the remaining coefficients are decoded normally and stored in the parameter matrix; if the decoded flag value is 0, the DC coefficient value and all AC coefficient residual values are solved and stored in the parameter matrix.
[0298] Then all decoded coefficients are dequantized, and the decoding process is still carried out from top to bottom. First, the DC coefficient value of the root node and the residual value of the AC coefficient of the first layer are obtained, and the RAHT inverse transform is performed to obtain the reconstructed attribute value; if the configuration allows intra-frame prediction or inter-frame prediction, the first-layer AC residual obtained is first added to the predicted AC coefficient to obtain the reconstructed AC coefficient, and the obtained reconstructed AC coefficient is subjected to the RAHT inverse transform together with the DC coefficient of the root node to obtain the reconstructed attribute value of the first layer. The 8 reconstructed attribute values obtained can be used to calculate the DC coefficient values of the 8 nodes in the second layer, and then the decoded second-layer AC residual is added to the predicted AC coefficient to obtain the reconstructed AC coefficient. The obtained DC coefficient value is subjected to the RAHT inverse transform with the reconstructed AC coefficient of the second layer to obtain the reconstructed attribute value of the third layer, and so on. If the flag value is k, when decoding to the last k layers, the AC coefficient residual values are all restored to 0. At this time, it is only necessary to pass the DC coefficient value calculated by the previous layer downward, and use the DC coefficient value passed by the previous layer plus the reconstructed AC coefficient to calculate the reconstructed attribute value of the child node until the leaf node is reached. At this point, the decoding process ends.
[0299] In the case of this application, the specific implementation of the decoding program is as follows. First, the flag .skip_raht_enabled_flag is decoded from the attribute parameter set APS. This flag determines whether the technical solution of the embodiment of this application is enabled. If it is true, the flag flag in the attribute code stream is first decoded from the code stream and transmitted to the RAHT sub-function. If the decoded flag value is k, the AC coefficient residual values of the last k layers of RAHT are restored to 0 for the next attribute reconstruction. If the decoded flag value is 0, all AC coefficient residual values of RAHT are restored to the original coded values. Here, the attribute AC coefficient residuals are stored in the parameter matrix transformPredBuf.
[0300] It should also be noted that in the embodiment of the present application, the RDO judgment scheme for whether to encode the last few layers of coefficients of the RAHT transformation of the point cloud attributes in this technical solution can replace the entire original encoding scheme.
[0301] It should also be noted that in the embodiment of the present application, the flag in the technical solution can be expanded to three channels in the dense point cloud color attributes and use the skip coding mode for RAHT transform coefficients at the same time, and set three flags flag_Y, flag_U, and flag_V to record the number of coefficient layers that are not encoded.
[0302] For example, the technical solution proposed in the embodiment of the present application was implemented on the G-PCC reference software TMC13V23.0 and GES-TM V2.0, and tested under the CTC-C1 and CTC-C2 test conditions. The test results are detailed in Tables 1 to 4. Among them, Table 1 shows a test result under the C1 condition, Table 2 shows a test result under the C2 condition, Table 3 shows another test result under the C1 condition, and Table 4 shows another test result under the C2 condition. Among them, the C1 condition is a lossless geometry, lossless attribute coding method (lossless geometry, lossy attribute), and the C2 condition is a lossless geometry, lossy attribute coding method (lossless geometry, lossy attribute). The End-to-End BD-AttrRate in Tables 1 to 4 represents the BD-Rate of the end-to-end attribute value for the attribute bitstream. The BD-Rate reflects the difference in the PSNR curves under the two conditions (with or without filtering). When the BD-Rate decreases, it means that when the PSNR is equal, the bit rate is reduced and the performance is improved; otherwise, the performance decreases. That is, the lower the BD-Rate, the better the compression. Cat3-frame average represents the average performance of a multi-frame radar point cloud dataset, Cat3-fused average represents a fused point cloud dataset, and Cat2 represents a multi-frame dense point cloud. Finally, Overall average represents the average performance of all sequences tested.
[0303] Table 1
[0304] Table 2
[0305] Table 3
[0306] Table 4
[0307] Compared with related technologies, this technical solution achieved a -1.3% gain in the Reflectance component of the Cat3-frame average dataset under the TMC13 and CTC-C1 test conditions, a -2.6% gain in the Reflectance component of the Cat3-frame average dataset under the CTC-C2 test conditions, and 0.6%, -6.8%, and -7.0% gains in the Luma, Chroma Cb, and Chroma Cr components of the Cat3-fused average dataset, respectively. Compared with related technologies, this technical solution achieved 0.2%, -0.5%, and -0.2% gains in the Luma, Chroma Cb, and Chroma Cr components of the Cat2 dataset under the GES-TM and CTC-C1 test conditions, and 0.8%, -1.8%, and -0.5% gains in the Luma, Chroma Cb, and Chroma Cr components of the Cat2 dataset under the CTC-C2 test conditions.
[0308] In the embodiments of the present application, the specific implementation of the aforementioned embodiments is elaborated in detail through the above embodiments. It can be seen that, according to the technical solution of the aforementioned embodiments, a skip coding mode for RAHT transform coefficients is proposed here. Through the rate-distortion optimization technology, the rate-distortion cost of encoding the last few layers of the point cloud with more 0 values in the RAHT transform is judged, and the AC coefficients of the last few layers of the point cloud with high coding rate-distortion cost are not encoded. At the same time, the flag bit is encoded to record whether the non-coding operation is performed and for how many layers it is performed. This effectively improves the phenomenon of too many 0 values in the coding coefficients of the last few layers in the RAHT algorithm, improves the coding efficiency, and realizes quality enhancement at the average bit rate of the reconstructed point cloud at the decoding end, which can improve the reconstruction quality at the average bit rate of the attribute coding, thereby improving the encoding and decoding efficiency.
[0309] In yet another embodiment of the present application, based on the same inventive concept as the aforementioned embodiment, FIG25 is a schematic diagram of the composition structure of an encoder provided in an embodiment of the present application. As shown in FIG25 , the encoder 250 may include a first determining unit 2501 and an encoding unit 2502, wherein:
[0310] The first determining unit 2501 is configured to determine a value of a first encoding parameter; when the first encoding parameter indicates skip encoding of k transform layers of the current point cloud, determine one or more AC coefficient residual values of the k transform layers to be a preset value; wherein k is an integer greater than zero;
[0311] The encoding unit 2502 is configured to perform encoding processing on one or more AC coefficient residual values of k transformation layers according to preset values, and write the obtained encoding bits into the bit stream.
[0312] In some embodiments, the first determination unit 2501 is also configured to determine a first generation value for encoding all AC coefficient residual values of k transformation layers, and to determine a second generation value for encoding one or more AC coefficient residual values of k transformation layers according to a preset value; and to determine the value of the first coding parameter based on the first generation value and the second generation value.
[0313] In some embodiments, the first determination unit 2501 is further configured to determine the value of the first encoding parameter to be the first value if the first generation value is greater than the second generation value; and to determine the value of the first encoding parameter to be the second value if the first generation value is less than the second generation value.
[0314] In some embodiments, the first determination unit 2501 is further configured to determine that the first encoding parameter indicates that the k transformation layers of the current point cloud are skipped if the value of the first encoding parameter is a first value; and to determine that the first encoding parameter indicates that the k transformation layers of the current point cloud are not skipped if the value of the first encoding parameter is a second value.
[0315] In some embodiments, the encoding unit 2502 is further configured to perform encoding processing on the value of the first encoding parameter and write the obtained encoding bits into the bitstream.
[0316] In some embodiments, the encoding unit 2502 is further configured to perform encoding processing on the value of the first encoding parameter, and write the obtained encoding bits into the attribute code stream unit in the code stream.
[0317] In some embodiments, the first determining unit 2501 is further configured to set the first value to be equal to the value of k when the first encoding parameter indicates that k transform layers of the current point cloud are to be skip encoded.
[0318] In some embodiments, the first determination unit 2501 is further configured to determine the third generation value for encoding all AC coefficient residual values of m transformation layers, and determine the fourth generation value for encoding one or more AC coefficient residual values of m transformation layers according to a preset value; when the third generation value is greater than the fourth generation value, determine the fifth generation value for encoding the i transformation layers of the current point cloud according to the preset value, where i = 1, 2, ..., m, m is an integer greater than zero; and after obtaining m fifth generation values, determine the minimum cost value from the m fifth generation values; and determine the value of k based on the value of i corresponding to the minimum cost value.
[0319] In some embodiments, the first determining unit 2501 is further configured to determine that all AC coefficient residual values of k transformation layers are preset values.
[0320] In some embodiments, referring to FIG. 25 , the encoder 250 may further include a first division unit 2503 configured to perform layer division on the points in the current point cloud, determine multiple transformation layers corresponding to the current point cloud and the root node of the current point cloud; wherein the multiple transformation layers include k transformation layers and other transformation layers.
[0321] In some embodiments, the first determining unit 2501 is further configured to set the k transformation layers as the last k transformation layers from the root node in a downward order among the multiple transformation layers.
[0322] In some embodiments, referring to FIG. 25 , the encoder 250 may further include a first transformation unit 2504 configured to determine the initial attribute values of points in a plurality of transformation layers; and perform regional adaptive hierarchical transformation on the initial attribute values of the points in the plurality of transformation layers to determine the initial AC coefficient values of the points in the plurality of transformation layers and the DC coefficient value of the root node.
[0323] In some embodiments, the first determination unit 2501 is further configured to determine the AC coefficient prediction values of points in multiple transformation layers; and determine the AC coefficient residual values of multiple transformation layers based on the AC coefficient initial values of points in multiple transformation layers and the AC coefficient prediction values of points in multiple transformation layers.
[0324] In some embodiments, the first determination unit 2501 is further configured to perform a subtraction operation on the initial values of the AC coefficients of points in multiple transformation layers and the predicted values of the AC coefficients of points in multiple transformation layers to obtain the AC coefficient prediction residuals of the points in multiple transformation layers; and to perform quantization processing on the AC coefficient prediction residuals of the points in multiple transformation layers to obtain the AC coefficient residual values of multiple transformation layers.
[0325] In some embodiments, the first determination unit 2501 is further configured to determine the AC coefficient residual values of other transformation layers other than the k transformation layers in the multiple transformation layers when the first coding parameter indicates that the k transformation layers of the current point cloud are to be skipped and encoded; the coding unit 2502 is further configured to encode the AC coefficient residual values of the other transformation layers and write the obtained coding bits into the bitstream.
[0326] In some embodiments, the encoding unit 2502 is further configured to perform encoding processing on the AC coefficient residual values of other transform layers, and write the obtained encoding bits into the attribute code stream unit in the code stream.
[0327] In some embodiments, the encoding unit 2502 is further configured to encode the residual values of the AC coefficients of multiple transform layers when the first encoding parameter indicates that the k transform layers of the current point cloud are not to be skip-encoded, and write the obtained encoding bits into the bitstream.
[0328] In some embodiments, the encoding unit 2502 is further configured to perform encoding processing on the AC coefficient residual values of multiple transform layers, and write the obtained encoding bits into the attribute code stream unit in the code stream.
[0329] In some embodiments, the first determining unit 2501 is further configured to determine, in the attribute code stream unit, that the field corresponding to the first coding parameter is located after the field corresponding to the AC coefficient residual value.
[0330] In some embodiments, the first transformation unit 2504 is further configured to determine the attribute prediction values of points in multiple transformation layers; and perform regional adaptive hierarchical transformation on the attribute prediction values of points in multiple transformation layers to determine the AC coefficient prediction values of points in multiple transformation layers.
[0331] In some embodiments, the first determination unit 2501 is further configured to perform intra-frame prediction on points in multiple transformation layers when the current point cloud allows intra-frame prediction, and determine the attribute prediction values of the points in the multiple transformation layers; when the current point cloud allows inter-frame prediction, determine the reference point cloud of the current point cloud, and perform inter-frame prediction on points in multiple transformation layers based on the reference point cloud, and determine the attribute prediction values of the points in the multiple transformation layers.
[0332] In some embodiments, the encoding unit 2502 is further configured to perform encoding processing on the DC coefficient value of the root node and write the obtained encoding bits into the bit stream.
[0333] In some embodiments, the first determination unit 2501 is further configured to determine the value of the second encoding parameter; when the second encoding parameter indicates to start skip encoding of the current point cloud, the step of determining the value of the first encoding parameter is performed.
[0334] In some embodiments, the encoding unit 2502 is further configured to perform encoding processing on the value of the second encoding parameter and write the obtained encoding bits into the bitstream.
[0335] In some embodiments, the encoding unit 2502 is further configured to perform encoding processing on the value of the second encoding parameter, and write the obtained encoding bits into the attribute parameter set unit in the code stream.
[0336] In some embodiments, the first determination unit 2501 is further configured to determine the value of a third encoding parameter; wherein the third encoding parameter is used to indicate whether to perform jump encoding on the to-be-processed components of the k transformation layers of the current point cloud; the encoding unit 2502 is further configured to perform encoding processing on the value of the third encoding parameter and write the obtained encoding bits into the bitstream.
[0337] In some embodiments, the component to be processed includes at least one of a first color component, a second color component, and a third color component.
[0338] In some embodiments, the first determination unit 2501 is further configured to determine that one or more AC coefficient residual values of the k transformation layers to be processed components of the current point cloud are preset values when jump encoding is performed on the k transformation layers to be processed components; the encoding unit 2502 is further configured to encode one or more AC coefficient residual values of the k transformation layers to be processed components according to the preset values, and write the obtained encoding bits into the bit stream.
[0339] It is understandable that in the embodiments of the present application, a "unit" can be a portion of a circuit, a portion of a processor, a portion of a program or software, etc., and of course it can also be a module, or it can be non-modular. Moreover, the various components in this embodiment can be integrated into a processing unit, or each unit can exist physically separately, or two or more units can be integrated into a single unit. The above-mentioned integrated units can be implemented in the form of hardware or in the form of software functional modules.
[0340] If the integrated unit is implemented as a software functional module and is not sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this embodiment, or the portion that contributes to the prior art, or all or part of the technical solution can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions for causing a computer device (which can be a personal computer, server, or network device, etc.) or a processor to execute all or part of the steps of the method described in this embodiment. The aforementioned storage medium includes various media that can store program code, such as a USB flash drive, a mobile hard drive, a read-only memory (ROM), a random access memory (RAM), a magnetic disk, or an optical disk.
[0341] Therefore, an embodiment of the present application provides a computer-readable storage medium, which is applied to the encoder 250. The computer-readable storage medium stores a computer program, and when the computer program is executed by the first processor, it implements the method described in any one of the aforementioned embodiments.
[0342] Based on the composition of the above-mentioned encoder 250 and the computer-readable storage medium, Figure 26 is a schematic diagram of the specific hardware structure of an encoder provided by an embodiment of the present application. As shown in Figure 26, the encoder 250 may include: a first communication interface 2601, a first memory 2602 and a first processor 2603; each component is coupled together through a first bus system 2604. It can be understood that the first bus system 2604 is used to realize the connection and communication between these components. In addition to the data bus, the first bus system 2604 also includes a power bus, a control bus and a status signal bus. However, for the sake of clarity, various buses are labeled as the first bus system 2604 in Figure 26. Among them,
[0343] The first communication interface 2601 is used to receive and send signals when sending and receiving information with other external network elements;
[0344] A first memory 2602 is used to store computer programs that can be run on the first processor 2603;
[0345] The first processor 2603 is configured to, when running the computer program, execute:
[0346] Determine the value of the first coding parameter; when the first coding parameter indicates that k transformation layers of the current point cloud are to be skip-coded, determine that one or more AC coefficient residual values of the k transformation layers are preset values; wherein k is an integer greater than zero; encode the one or more AC coefficient residual values of the k transformation layers according to the preset values, and write the obtained coded bits into the bitstream.
[0347] It is understood that the first memory 2602 in the embodiment of the present application can be a volatile memory or a non-volatile memory, or can include both volatile and non-volatile memories. Among them, the non-volatile memory can be a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), or a flash memory. The volatile memory can be a random access memory (RAM), which is used as an external cache. By way of example and not limitation, many forms of RAM are available, such as static random access memory (SRAM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), double data rate synchronous dynamic random access memory (DDRSDRAM), enhanced synchronous dynamic random access memory (ESDRAM), synchronous link dynamic random access memory (SLDRAM), and direct RAM bus random access memory (DRRAM). The first memory 2602 of the systems and methods described herein is intended to include, but is not limited to, these and any other suitable types of memory.
[0348] The first processor 2603 may be an integrated circuit chip with signal processing capabilities. During implementation, each step of the above method can be completed by hardware integrated logic circuits or software instructions in the first processor 2603. The above-mentioned first processor 2603 can be a general-purpose processor, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field programmable gate array (FPGA), or other programmable logic devices, discrete gate or transistor logic devices, or discrete hardware components. The various methods, steps, and logic block diagrams disclosed in the embodiments of this application can be implemented or executed. The general-purpose processor can be a microprocessor or any conventional processor. The steps of the method disclosed in the embodiments of this application can be directly implemented and executed by a hardware decoding processor, or by a combination of hardware and software modules in the decoding processor. The software module can be located in a storage medium mature in the art, such as random access memory, flash memory, read-only memory, programmable read-only memory, electrically erasable programmable memory, registers, etc. The storage medium is located in the first memory 2602 , and the first processor 2603 reads the information in the first memory 2602 and completes the steps of the above method in combination with its hardware.
[0349] It is to be understood that these embodiments described in the present application can be implemented with hardware, software, firmware, middleware, microcode or its combination.For hardware implementation, the processing unit can be implemented in one or more application specific integrated circuits (Application Specific Integrated Circuits, ASIC), digital signal processor (Digital Signal Processing, DSP), digital signal processing equipment (DSP Device, DSPD), programmable logic device (Programmable Logic Device, PLD), field programmable gate array (Field-Programmable Gate Array, FPGA), general-purpose processor, controller, microcontroller, microprocessor, other electronic units for performing functions described in the present application or its combination.For software implementation, the technology described in the present application can be realized by the module (such as process, function etc.) that performs functions described in the present application. The software code can be stored in a memory and executed by a processor. The memory can be implemented in the processor or outside the processor.
[0350] Optionally, as another embodiment, the first processor 2603 is further configured to execute any one of the methods described in the foregoing embodiments when running the computer program.
[0351] This embodiment provides an encoder. When it is determined to skip encode the k transformation layers of the current point cloud, one or more AC coefficient residual values of these k transformation layers are directly encoded according to preset values. This can effectively improve the phenomenon of too many zeros in the AC coefficient values of the last few layers of encoding in the RAHT transform, thereby improving the encoding and decoding efficiency, and achieving quality enhancement of the reconstructed point cloud at the average bit rate at the decoding end, thereby improving the encoding and decoding performance of the point cloud.
[0352] In yet another embodiment of the present application, based on the same inventive concept as the aforementioned embodiment, FIG27 is a schematic diagram of the structure of a decoder provided in an embodiment of the present application. As shown in FIG27 , the decoder 270 may include a second determination unit 2701, a decoding unit 2702, and a reconstruction unit 2703, wherein:
[0353] The second determining unit 2701 is configured to determine a value of a first decoding parameter; when the first decoding parameter indicates skip decoding of k transform layers of the current point cloud, determine one or more AC coefficient residual values of the k transform layers to be a preset value; wherein k is an integer greater than zero;
[0354] The decoding unit 2702 is configured to decode the code stream and determine the residual values of the AC coefficients of the other transformation layers other than the k transformation layers in the current point cloud;
[0355] The reconstruction unit 2703 is configured to determine a reconstructed point cloud of the current point cloud according to the AC coefficient residual values of the k transformation layers and the AC coefficient residual values of other transformation layers.
[0356] In some embodiments, the decoding unit 2702 is further configured to decode the code stream and determine a value of the first decoding parameter.
[0357] In some embodiments, the decoding unit 2702 is further configured to decode an attribute code stream unit in the code stream to determine a value of the first decoding parameter.
[0358] In some embodiments, the decoding unit 2702 is further configured to decode the attribute code stream unit in the code stream to determine the residual values of the AC coefficients of other transform layers.
[0359] In some embodiments, the second determining unit 2701 is further configured to determine, in the attribute code stream unit, that the field corresponding to the first decoding parameter is located after the field corresponding to the AC coefficient residual value.
[0360] In some embodiments, the second determination unit 2701 is further configured to determine the value of the second decoding parameter; and when the second decoding parameter indicates to start jump decoding of the current point cloud, perform the step of determining the value of the first decoding parameter.
[0361] In some embodiments, the decoding unit 2702 is further configured to decode the code stream and determine a value of the second decoding parameter.
[0362] In some embodiments, the decoding unit 2702 is further configured to decode the attribute parameter set unit in the code stream to determine the value of the second decoding parameter.
[0363] In some embodiments, the second determining unit 2701 is further configured to determine that all AC coefficient residual values of k transformation layers are preset values.
[0364] In some embodiments, referring to FIG. 27 , the decoder 270 may further include a second division unit 2704 configured to perform layer division on the points in the current point cloud, determine multiple transformation layers corresponding to the current point cloud and the root node of the current point cloud; wherein the multiple transformation layers include k transformation layers and other transformation layers.
[0365] In some embodiments, the second determining unit 2701 is further configured to set the k transformation layers as the last k transformation layers from the root node in a downward order among the multiple transformation layers.
[0366] In some embodiments, the decoding unit 2702 is further configured to decode the code stream and determine the AC coefficient residual values of multiple transformation layers corresponding to the current point cloud when the first decoding parameter indicates that the k transformation layers of the current point cloud do not need to be skip-decoded; the second determination unit 2701 is further configured to determine the reconstructed point cloud of the current point cloud based on the AC coefficient residual values of multiple transformation layers.
[0367] In some embodiments, the decoding unit 2702 is further configured to decode the attribute code stream unit in the code stream to determine the AC coefficient residual values of multiple transform layers.
[0368] In some embodiments, the second determination unit 2701 is further configured to determine that the first decoding parameter indicates skip decoding of the k transformation layers of the current point cloud if the value of the first decoding parameter is the first value; and to determine that the first decoding parameter indicates not skip decoding of the k transformation layers of the current point cloud if the value of the first decoding parameter is the second value.
[0369] In some embodiments, the second determining unit 2701 is further configured to set the value of k to be equal to the first value when the first decoding parameter indicates skip decoding of k transform layers of the current point cloud.
[0370] In some embodiments, the decoding unit 2702 is further configured to decode the code stream, determine the DC coefficient value of the root node of the current point cloud; and save the DC coefficient value of the root node to the first parameter matrix of the current point cloud.
[0371] In some embodiments, the decoding unit 2702 is further configured to save the AC coefficient residual values of the k transformation layers and the AC coefficient residual values of other transformation layers into a first parameter matrix of the current point cloud.
[0372] In some embodiments, the second determining unit 2701 is further configured to perform inverse quantization processing on the parameter values in the first parameter matrix of the current point cloud.
[0373] In some embodiments, the second determination unit 2701 is further configured to determine the AC coefficient prediction values of points in multiple transformation layers; determine the second parameter matrix of the current point cloud based on the first parameter matrix of the current point cloud and the AC coefficient prediction values of points in multiple transformation layers; the reconstruction unit 2703 is further configured to perform a regional adaptive hierarchical inverse transformation on the second parameter matrix of the current point cloud to determine the reconstructed point cloud of the current point cloud.
[0374] In some embodiments, referring to FIG. 27 , the decoder 270 may further include a second transformation unit 2705 configured to determine attribute prediction values of points in multiple transformation layers; and perform regional adaptive hierarchical transformation on the attribute prediction values of points in multiple transformation layers to determine AC coefficient prediction values of points in multiple transformation layers.
[0375] In some embodiments, the second determination unit 2701 is further configured to perform intra-frame prediction on points in multiple transformation layers when the current point cloud allows the use of intra-frame prediction, and determine the attribute prediction values of the points in the multiple transformation layers; when the current point cloud allows the use of inter-frame prediction, determine the reference point cloud of the current point cloud, and perform inter-frame prediction on points in multiple transformation layers based on the reference point cloud, and determine the attribute prediction values of the points in the multiple transformation layers.
[0376] In some embodiments, the second determination unit 2701 is further configured to determine the AC coefficient residual value of the point of the current transformation layer in the first parameter matrix and the AC coefficient prediction value of the point of the current transformation layer based on the point of the current transformation layer in the current point cloud; perform addition operation on the AC coefficient residual value and the AC coefficient prediction value to obtain the AC coefficient reconstruction value of the point of the current transformation layer; and after obtaining the AC coefficient reconstruction values of the points of multiple transformation layers, determine the second parameter matrix of the current point cloud according to the DC coefficient value of the root node and the AC coefficient reconstruction values of the points of multiple transformation layers.
[0377] In some embodiments, the second reconstruction unit 2703 is further configured to, when the current transformation layer is the first transformation layer, perform a regional adaptive hierarchical inverse transformation based on the DC coefficient value of the root node and the AC coefficient reconstruction value of the point of the current transformation layer to obtain the reconstructed attribute value of the point of the first transformation layer; when the current transformation layer is not the first transformation layer, determine the DC coefficient value of the point of the current transformation layer based on the reconstruction attribute value of the point of the previous transformation layer of the current transformation layer, and perform a regional adaptive hierarchical inverse transformation based on the DC coefficient value of the point of the current transformation layer and the AC coefficient reconstruction value of the point of the current transformation layer to obtain the reconstructed attribute value of the point of the non-first transformation layer.
[0378] In some embodiments, the decoding unit 2702 is further configured to decode the code stream and determine that one or more AC coefficient residual values of k transform layers are preset values.
[0379] In some embodiments, the decoding unit 2702 is further configured to decode the code stream and determine a value of the third decoding parameter;
[0380] The second determining unit 2701 is further configured to determine one or more AC coefficient residual values of the components to be processed in the k transform layers to be preset values when the third decoding parameter indicates skip decoding of the components to be processed in the k transform layers of the current point cloud;
[0381] The decoding unit 2702 is further configured to decode the code stream and determine the AC coefficient residual values of the components to be processed in other transform layers other than the k transform layers in the current point cloud;
[0382] The reconstruction unit 2703 is further configured to determine the reconstructed point cloud of the to-be-processed component of the current point cloud according to the AC coefficient residual values of the to-be-processed components of the k transformation layers and the AC coefficient residual values of the to-be-processed components of other transformation layers.
[0383] In some embodiments, the component to be processed includes at least one of a first color component, a second color component, and a third color component.
[0384] It is understood that in this embodiment, a "unit" can be a portion of a circuit, a portion of a processor, a portion of a program or software, etc., and can also be a module or a non-modular system. Furthermore, the various components in this embodiment can be integrated into a single processing unit, or each unit can exist physically separately, or two or more units can be integrated into a single unit. The aforementioned integrated units can be implemented in the form of hardware or software functional modules.
[0385] If the integrated unit is implemented as a software functional module and is not sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, this embodiment provides a computer-readable storage medium for use in decoder 270. The computer-readable storage medium stores a computer program that, when executed by a second processor, implements any of the methods described in the aforementioned embodiments.
[0386] Based on the composition of the above-mentioned decoder 270 and the computer-readable storage medium, Figure 28 is a schematic diagram of the specific hardware structure of a decoder provided in an embodiment of the present application. As shown in Figure 28, the decoder 270 may include: a second communication interface 2801, a second memory 2802 and a second processor 2803; each component is coupled together through a second bus system 2804. It can be understood that the second bus system 2804 is used to realize the connection and communication between these components. In addition to the data bus, the second bus system 2804 also includes a power bus, a control bus and a status signal bus. However, for the sake of clarity, various buses are labeled as the second bus system 2804 in Figure 28. Among them,
[0387] The second communication interface 2801 is used to receive and send signals when sending and receiving information with other external network elements;
[0388] The second memory 2802 is used to store computer programs that can be run on the second processor 2803;
[0389] The second processor 2803 is configured to, when running the computer program, execute:
[0390] Determine the value of the first decoding parameter; when the first decoding parameter indicates jump decoding of k transformation layers of the current point cloud, determine one or more AC coefficient residual values of the k transformation layers as a preset value; wherein k is an integer greater than zero; decode the code stream to determine the AC coefficient residual values of other transformation layers other than the k transformation layers in the current point cloud; determine the reconstructed point cloud of the current point cloud based on the AC coefficient residual values of the k transformation layers and the AC coefficient residual values of other transformation layers.
[0391] Optionally, as another embodiment, the second processor 2803 is further configured to execute any one of the methods described in the foregoing embodiments when running the computer program.
[0392] It can be understood that the hardware functions of the second memory 2802 are similar to those of the first memory 2602, and the hardware functions of the second processor 2803 are similar to those of the first processor 2603; they will not be described in detail here.
[0393] This embodiment provides a decoder. When it is determined that the k transformation layers of the current point cloud are to be skip-encoded, one or more AC coefficient residual values of these k transformation layers are directly encoded according to preset values. This can effectively improve the phenomenon of too many zeros appearing in the AC coefficient values of the last few layers of coding in the RAHT transform, thereby improving the encoding and decoding efficiency, and achieving quality enhancement of the reconstructed point cloud at the decoding end at the average bit rate, thereby improving the encoding and decoding performance of the point cloud.
[0394] In yet another embodiment of the present application, FIG29 is a schematic diagram of the structure of a coding and decoding system provided by an embodiment of the present application. As shown in FIG29 , the coding and decoding system 290 may include an encoder 2901 and a decoder 2902 .
[0395] In the embodiment of the present application, the encoder 2901 may be the encoder described in any one of the aforementioned embodiments, and the decoder 2902 may be the decoder described in any one of the aforementioned embodiments.
[0396] It should be noted that, in this application, the terms "comprises," "includes," or any other variations thereof are intended to encompass non-exclusive inclusion, such that a process, method, article, or apparatus comprising a series of elements includes not only those elements but also other elements not explicitly listed, or elements inherent to such process, method, article, or apparatus. In the absence of further limitations, an element defined by the phrase "comprising a ..." does not exclude the presence of other identical elements in the process, method, article, or apparatus comprising the element.
[0397] The serial numbers of the above embodiments of the present application are for description only and do not represent the advantages or disadvantages of the embodiments.
[0398] The methods disclosed in the several method embodiments provided in this application can be arbitrarily combined without conflict to obtain new method embodiments.
[0399] The features disclosed in the several product embodiments provided in this application can be arbitrarily combined without conflict to obtain new product embodiments.
[0400] The features disclosed in the several method or device embodiments provided in this application can be arbitrarily combined without conflict to obtain new method embodiments or device embodiments.
[0401] The above description is merely a specific embodiment of the present application, but the scope of protection of the present application is not limited thereto. Any changes or substitutions that can be easily conceived by a person skilled in the art within the technical scope disclosed in this application should be included in the scope of protection of this application. Therefore, the scope of protection of this application should be based on the scope of protection of the claims. Industrial Applicability
[0402] In an embodiment of the present application, at the encoding end, the value of a first encoding parameter is determined; when the first encoding parameter indicates that k transform layers of the current point cloud are to be skip-encoded, one or more AC coefficient residual values of the k transform layers are determined to be preset values; one or more AC coefficient residual values of the k transform layers are encoded according to the preset values, and the resulting encoded bits are written into the bitstream. At the decoding end, the value of a first decoding parameter is determined; when the first decoding parameter indicates that k transform layers of the current point cloud are to be skip-decoded, one or more AC coefficient residual values of the k transform layers are determined to be preset values; the bitstream is decoded to determine the AC coefficient residual values of the other transform layers in the current point cloud besides the k transform layers; and based on the AC coefficient residual values of the k transform layers and the AC coefficient residual values of the other transform layers, the reconstructed point cloud of the current point cloud is determined. That is to say, whether it is the encoding end or the decoding end, when determining to skip encoding the k transformation layers of the current point cloud, one or more AC coefficient residual values of these k transformation layers are directly encoded according to the preset values. This can effectively improve the phenomenon of too many 0s in the AC coefficient values of the last few layers of encoding in the RAHT transform, thereby improving the encoding and decoding efficiency, and achieving quality enhancement of the reconstructed point cloud at the average bit rate at the decoding end, thereby improving the encoding and decoding performance of the point cloud.
Claims
1. A decoding method, applied to a decoder, the method comprising: Determining a value of a first decoding parameter; When the first decoding parameter indicates skip decoding for k transform layers of a current point cloud, determining that one or more alternating current coefficient residual values of the k transform layers are preset values; wherein k is an integer greater than zero; Decoding a bitstream and determining alternating current coefficient residual values of other transform layers in the current point cloud except the k transform layers; Determining a reconstructed point cloud of the current point cloud according to the alternating current coefficient residual values of the k transform layers and the alternating current coefficient residual values of the other transform layers.
2. The method according to claim 1, wherein, The determining the value of the first decoding parameter includes: Decoding a bitstream and determining the value of the first decoding parameter.
3. The method according to claim 2, wherein, The decoding the bitstream and determining the value of the first decoding parameter includes: Decoding an attribute bitstream unit in the bitstream and determining the value of the first decoding parameter.
4. The method according to claim 3, wherein The decoding the bitstream and determining the alternating current coefficient residual values of other transform layers in the current point cloud except the k transform layers includes: Decoding an attribute bitstream unit in the bitstream and determining the alternating current coefficient residual values of the other transform layers.
5. The method according to claim 4, wherein, The method further comprises: In the attribute bitstream unit, determining that a field corresponding to the first decoding parameter is located after a field corresponding to the alternating current coefficient residual value.
6. The method according to claim 1, wherein The method further comprises: Determining a value of a second decoding parameter; When the second decoding parameter indicates to enable skip decoding of the current point cloud, performing the step of determining the value of the first decoding parameter.
7. The method according to claim 6, wherein, The determining the value of the second decoding parameter includes: Decoding a bitstream and determining the value of the second decoding parameter.
8. The method according to claim 7, wherein, The decoding the bitstream and determining the value of the second decoding parameter includes: Decoding an attribute parameter set unit in the bitstream and determining the value of the second decoding parameter.
9. The method according to claim 1, wherein The determining that one or more alternating current coefficient residual values of the k transform layers are preset values includes: Determining that all alternating current coefficient residual values of the k transform layers are the preset values.
10. The method according to claim 1, wherein The method further comprises: Performing layer division on points in the current point cloud to determine a plurality of transform layers corresponding to the current point cloud and a root node of the current point cloud; wherein the plurality of transform layers includes the k transform layers and the other transform layers.
11. The method according to claim 10, wherein The method further comprises: Setting the k transform layers as the last k transform layers from the root node downwards in the plurality of transform layers.
12. The method according to claim 1, wherein, The method further comprises: When the first decoding parameter indicates not to perform skip decoding on the k transform layers of the current point cloud, decoding a bitstream and determining alternating current coefficient residual values of a plurality of transform layers corresponding to the current point cloud; Determining a reconstructed point cloud of the current point cloud according to the alternating current coefficient residual values of the plurality of transform layers.
13. The method according to claim 12, wherein, The decoding the bitstream and determining the alternating current coefficient residual values of a plurality of transform layers corresponding to the current point cloud includes: Decoding an attribute bitstream unit in the bitstream and determining the alternating current coefficient residual values of the plurality of transform layers.
14. The method according to claim 1, wherein The method further comprises: If the value of the first decoding parameter is a first value, determining that the first decoding parameter indicates skip decoding for the k transform layers of the current point cloud; If the value of the first decoding parameter is the second value, it is determined that the first decoding parameter indicates not to perform skip decoding on the k transform layers of the current point cloud.
15. The method according to claim 14, wherein, The method further includes: When the first decoding parameter indicates to perform skip decoding on the k transform layers of the current point cloud, set the value of k to be equal to the first value.
16. The method according to claim 1 or 12, wherein The method further includes: Decode the bitstream and determine the DC coefficient value of the root node of the current point cloud; Save the DC coefficient value of the root node to the first parameter matrix of the current point cloud.
17. The method according to claim 16, wherein, The method further includes: Save the AC coefficient residual values of the k transform layers and the AC coefficient residual values of the other transform layers to the first parameter matrix of the current point cloud.
18. The method according to claim 17, wherein, The method further includes: Perform inverse quantization processing on the parameter values in the first parameter matrix of the current point cloud.
19. The method according to claim 18, wherein, The determination of the reconstructed point cloud of the current point cloud includes: Determine the AC coefficient prediction values of the points in the multiple transform layers; Determine the second parameter matrix of the current point cloud according to the first parameter matrix of the current point cloud and the AC coefficient prediction values of the points in the multiple transform layers; Perform region adaptive hierarchical inverse transformation on the second parameter matrix of the current point cloud to determine the reconstructed point cloud of the current point cloud.
20. The method according to claim 19, wherein, The determination of the AC coefficient prediction values of the points in the multiple transform layers includes: Determine the attribute prediction values of the points in the multiple transform layers; Perform region adaptive hierarchical transformation on the attribute prediction values of the points in the multiple transform layers to determine the AC coefficient prediction values of the points in the multiple transform layers.
21. The method according to claim 20, wherein, The determination of the attribute prediction values of the points in the multiple transform layers includes: When in-frame prediction is allowed for the current point cloud, perform in-frame prediction on the points in the multiple transform layers to determine the attribute prediction values of the points in the multiple transform layers; When inter-frame prediction is allowed for the current point cloud, determine the reference point cloud of the current point cloud, and perform inter-frame prediction on the points in the multiple transform layers according to the reference point cloud to determine the attribute prediction values of the points in the multiple transform layers.
22. The method according to claim 19, wherein, The determination of the second parameter matrix of the current point cloud according to the first parameter matrix of the current point cloud and the AC coefficient prediction values of the points in the multiple transform layers includes: Based on the points of the current transform layer in the current point cloud, determine the AC coefficient residual values of the points of the current transform layer in the first parameter matrix, and determine the AC coefficient prediction values of the points of the current transform layer; Perform an addition operation on the AC coefficient residual values and the AC coefficient prediction values to obtain the AC coefficient reconstruction values of the points of the current transform layer; After obtaining the AC coefficient reconstruction values of the points of the multiple transform layers, determine the second parameter matrix of the current point cloud according to the DC coefficient value of the root node and the AC coefficient reconstruction values of the points of the multiple transform layers.
23. The method according to claim 22, wherein, The performing region adaptive hierarchical inverse transformation on the second parameter matrix of the current point cloud to determine the reconstructed point cloud of the current point cloud includes: When the current transform layer is the first transform layer, perform region adaptive hierarchical inverse transform according to the DC coefficient value of the root node and the reconstructed value of the AC coefficients of the points in the current transform layer to obtain the reconstructed attribute values of the points in the first transform layer; When the current transform layer is not the first transform layer, determine the DC coefficient value of the points in the current transform layer according to the reconstructed attribute values of the points in the previous transform layer of the current transform layer, and perform region adaptive hierarchical inverse transform according to the DC coefficient value of the points in the current transform layer and the reconstructed value of the AC coefficients of the points in the current transform layer to obtain the reconstructed attribute values of the points in the non-first transform layer.
24. The method according to any one of claims 1 to 23, wherein, The determining that one or more AC coefficient residuals of the k transform layers are preset values includes: Decoding the bitstream to determine that one or more AC coefficient residuals of the k transform layers are preset values.
25. The method according to any one of claims 1 to 23, wherein The method further includes: Decoding the bitstream to determine the value of the third decoding parameter; When the third decoding parameter indicates skip decoding of the components to be processed in the k transform layers of the current point cloud, determine that one or more AC coefficient residuals of the components to be processed in the k transform layers are preset values; Decoding the bitstream to determine the AC coefficient residuals of the components to be processed in other transform layers outside the k transform layers in the current point cloud; According to the AC coefficient residuals of the components to be processed in the k transform layers and the AC coefficient residuals of the components to be processed in the other transform layers, determine the reconstructed point cloud of the components to be processed in the current point cloud.
26. The method according to claim 25, wherein, The component to be processed includes at least one of a first color component, a second color component, and a third color component.
27. An encoding method applied to an encoder, the method including: Determine the value of a first encoding parameter; When the first encoding parameter indicates skip encoding of the k transform layers of the current point cloud, determine one or more AC coefficient residuals of the k transform layers to be preset values; where k is an integer greater than zero; Encode one or more AC coefficient residuals of the k transform layers according to the preset values, and write the obtained encoded bits into the bitstream.
28. The method according to claim 27, wherein The determining the value of the first encoding parameter includes: Determine the first-generation cost of encoding all AC coefficient residuals of the k transform layers, and determine the second-generation cost of encoding one or more AC coefficient residuals of the k transform layers according to the preset values; According to the first-generation cost and the second-generation cost, determine the value of the first encoding parameter.
29. The method according to claim 28, wherein The according to the first-generation cost and the second-generation cost, determining the value of the first encoding parameter includes: If the first-generation cost is greater than the second-generation cost, determine that the value of the first encoding parameter is the first value; If the first-generation cost is less than the second-generation cost, determine that the value of the first encoding parameter is the second value.
30. The method according to claim 28, wherein, The method further includes: If the value of the first encoding parameter is the first value, determine that the first encoding parameter indicates skip encoding of the k transform layers of the current point cloud; If the value of the first coding parameter is the second value, it is determined that the first coding parameter indicates not to perform skip coding on the k transformation layers of the current point cloud.
31. The method according to claim 27, wherein The method further includes: Performing coding processing on the value of the first coding parameter, and writing the obtained coded bits into the bitstream.
32. The method according to claim 31, wherein The performing coding processing on the value of the first coding parameter and writing the obtained coded bits into the bitstream includes: Performing coding processing on the value of the first coding parameter, and writing the obtained coded bits into the attribute bitstream unit in the bitstream.
33. The method according to claim 30, wherein The method further includes: When the first coding parameter indicates to perform skip coding on the k transformation layers of the current point cloud, setting the first value to be equal to the value of k.
34. The method according to claim 33, wherein, The method further includes: Determining the third-generation cost for coding all the AC coefficient residuals of the m transformation layers, and determining the fourth-generation cost for coding one or more AC coefficient residuals of the m transformation layers according to the preset value; When the third-generation cost is greater than the fourth-generation cost, determining the fifth-generation cost for coding the i transformation layers of the current point cloud according to the preset value, where i = 1, 2,..., m, and m is an integer greater than zero; After obtaining the m fifth-generation costs, determining the minimum generation cost from the m fifth-generation costs; According to the value of i corresponding to the minimum generation cost, determining the value of k.
35. The method according to claim 27, wherein, The determining that one or more AC coefficient residuals of the k transformation layers are the preset value includes: Determining that all the AC coefficient residuals of the k transformation layers are the preset value.
36. The method according to claim 27, wherein, The method further includes: Performing layer division on the points in the current point cloud, and determining the multiple transformation layers corresponding to the current point cloud and the root node of the current point cloud; wherein, the multiple transformation layers include the k transformation layers and the other transformation layers.
37. The method according to claim 36, wherein, The method further includes: Setting the k transformation layers as the last k transformation layers from the root node downwards in the multiple transformation layers.
38. The method according to claim 36, wherein, The method further includes: Determining the initial attribute values of the points in the multiple transformation layers; Performing region adaptive hierarchical transformation on the initial attribute values of the points in the multiple transformation layers, and determining the initial AC coefficient values of the points in the multiple transformation layers and the DC coefficient value of the root node.
39. The method according to claim 38, wherein, The method further includes: Determining the predicted AC coefficient values of the points in the multiple transformation layers; According to the initial AC coefficient values of the points in the multiple transformation layers and the predicted AC coefficient values of the points in the multiple transformation layers, determining the AC coefficient residuals of the multiple transformation layers.
40. The method according to claim 39, wherein, The according to the initial AC coefficient values of the points in the multiple transformation layers and the predicted AC coefficient values of the points in the multiple transformation layers, determining the AC coefficient residuals of the multiple transformation layers includes: Performing subtraction operation on the initial AC coefficient values of the points in the multiple transformation layers and the predicted AC coefficient values of the points in the multiple transformation layers to obtain the predicted AC coefficient residuals of the points in the multiple transformation layers; Performing quantization processing on the predicted AC coefficient residuals of the points in the multiple transformation layers to obtain the AC coefficient residuals value of the multiple transformation layers.
41. The method according to claim 39, wherein, The method further includes: When the first coding parameter indicates that skip coding is performed on k transformation layers of the current point cloud, determine the AC coefficient residual values of the other transformation layers among the multiple transformation layers except the k transformation layers; Perform coding processing on the AC coefficient residual values of the other transformation layers, and write the obtained coded bits into the bitstream.
42. The method according to claim 41, wherein The performing coding processing on the AC coefficient residual values of the other transformation layers and writing the obtained coded bits into the bitstream includes: Perform coding processing on the AC coefficient residual values of the other transformation layers, and write the obtained coded bits into the attribute bitstream unit in the bitstream.
43. The method according to claim 39, wherein, The method further includes: When the first coding parameter indicates that skip coding is not performed on k transformation layers of the current point cloud, perform coding processing on the AC coefficient residual values of the multiple transformation layers, and write the obtained coded bits into the bitstream.
44. The method according to claim 43, wherein, The performing coding processing on the AC coefficient residual values of the multiple transformation layers and writing the obtained coded bits into the bitstream includes: Perform coding processing on the AC coefficient residual values of the multiple transformation layers, and write the obtained coded bits into the attribute bitstream unit in the bitstream.
45. The method according to claim 42 or 44, wherein, The method further includes: In the attribute bitstream unit, determine that the field corresponding to the first coding parameter is located after the field corresponding to the AC coefficient residual value.
46. The method according to claim 39, wherein, The determining the AC coefficient prediction values of the points in the multiple transformation layers includes: Determine the attribute prediction values of the points in the multiple transformation layers; Perform region adaptive hierarchical transformation on the attribute prediction values of the points in the multiple transformation layers to determine the AC coefficient prediction values of the points in the multiple transformation layers.
47. The method according to claim 46, wherein, The determining the attribute prediction values of the points in the multiple transformation layers includes: When in-frame prediction is allowed for the current point cloud, perform in-frame prediction on the points in the multiple transformation layers to determine the attribute prediction values of the points in the multiple transformation layers; When inter-frame prediction is allowed for the current point cloud, determine the reference point cloud of the current point cloud, and perform inter-frame prediction on the points in the multiple transformation layers according to the reference point cloud to determine the attribute prediction values of the points in the multiple transformation layers.
48. The method according to claim 38, wherein The method further includes: Perform coding processing on the DC coefficient value of the root node, and write the obtained coded bits into the bitstream.
49. The method according to claim 27, wherein, The method further includes: Determine the value of the second coding parameter; When the second coding parameter indicates to enable skip coding of the current point cloud, execute the step of determining the value of the first coding parameter.
50. The method according to claim 49, wherein, The method further includes: Perform coding processing on the value of the second coding parameter, and write the obtained coded bits into the bitstream.
51. The method according to claim 50, wherein, The performing coding processing on the value of the second coding parameter and writing the obtained coded bits into the bitstream includes: Perform coding processing on the value of the second coding parameter, and write the obtained coded bits into the attribute parameter set unit in the bitstream.
52. The method according to any one of claims 27 to 51, wherein, The method further includes: Determine the value of the third coding parameter; wherein, the third coding parameter is used to indicate whether skip coding is performed on the components to be processed of k transformation layers of the current point cloud; Perform coding processing on the value of the third coding parameter, and write the obtained coded bits into the bitstream.
53. The method according to claim 52, wherein, The component to be processed includes at least one of a first color component, a second color component, and a third color component.
54. The method according to claim 52, wherein, The method further includes: When performing skip coding on the components to be processed in k transform layers of the current point cloud, determining that one or more alternating current coefficient residual values of the components to be processed in the k transform layers are preset values; Performing coding processing on one or more alternating current coefficient residual values of the components to be processed in the k transform layers according to the preset values, and writing the obtained coded bits into a bitstream.
55. A bitstream, wherein, The bitstream is generated by performing bit coding on information to be coded; wherein, the information to be coded includes at least one of the following: Alternating current coefficient residual values of multiple transform layers corresponding to the current point cloud, direct current coefficient values of the root node of the current point cloud, one or more alternating current coefficient residual values of the k transform layers of the current point cloud being preset values, alternating current coefficient residual values of other transform layers outside the k transform layers in the current point cloud, values of a first coding parameter, values of a second coding parameter, and values of a third coding parameter; Wherein, the first coding parameter is used to indicate whether to perform skip coding on the k transform layers of the current point cloud, the second coding parameter is used to indicate whether to enable skip coding of the current point cloud, and the third coding parameter is used to indicate whether to perform skip coding on the components to be processed in the k transform layers of the current point cloud.
56. An encoder, including a first determination unit and a coding unit, wherein: The first determination unit is configured to determine the value of a first coding parameter; when the first coding parameter indicates performing skip coding on k transform layers of the current point cloud, determining that one or more alternating current coefficient residual values of the k transform layers are preset values; wherein, k is an integer greater than zero; The coding unit is configured to perform coding processing on one or more alternating current coefficient residual values of the k transform layers according to the preset values, and write the obtained coded bits into a bitstream.
57. An encoder, including a first memory and a first processor, wherein: The first memory is used to store a computer program that can run on the first processor; The first processor is used to execute the method according to any one of claims 27 to 54 when running the computer program.
58. A decoder, including a second determination unit, a decoding unit, and a reconstruction unit, wherein: The second determination unit is configured to determine the value of a first decoding parameter; when the first decoding parameter indicates performing skip decoding on k transform layers of the current point cloud, determining that one or more alternating current coefficient residual values of the k transform layers are preset values; wherein, k is an integer greater than zero; The decoding unit is configured to decode the bitstream and determine the alternating current coefficient residual values of other transform layers outside the k transform layers in the current point cloud; The reconstruction unit is configured to determine the reconstructed point cloud of the current point cloud according to the alternating current coefficient residual values of the k transform layers and the alternating current coefficient residual values of the other transform layers.
59. A decoder, including a second memory and a second processor, wherein: The second memory is configured to store a computer program that can run on the second processor; The second processor is configured to execute the method according to any one of claims 1 to 26 when running the computer program.
60. A computer-readable storage medium, wherein, The computer-readable storage medium stores a computer program, and when the computer program is executed by at least one processor, it implements the method according to any one of claims 1 to 26, or the method according to any one of claims 27 to 54.