Encoding method, decoding method, code stream, encoder, decoder, and storage medium

By allowing skip encoding and decoding techniques at the encoding and decoding ends, the problem of bitstream waste caused by the 0 value of AC coefficient residuals in RAHT transform is solved, thereby improving encoding and decoding efficiency and point cloud reconstruction quality.

WO2026007130A1PCT designated stage Publication Date: 2026-01-08GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP LTD
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2024/104039
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-07-05
Publication Date
2026-01-08

Smart Images

  • Figure CN2024104039_08012026_PF_FP_ABST
    Figure CN2024104039_08012026_PF_FP_ABST
Patent Text Reader

Abstract

The present application discloses an encoding method, a decoding method, a code stream, an encoder, a decoder, and a storage medium. The decoding method comprises: parsing a first syntactic element in a code stream; when the first syntactic element indicates that k transform layers of the current point cloud allow for skip decoding, parsing a second syntactic element of the current transform layer among the k transform layers in the code stream, wherein k is an integer greater than zero; when the second syntactic element indicates that the current transform layer uses skip decoding technology, determining that one or more alternating current coefficient residual values of the current transform layer are preset values; and on the basis of the one or more alternating current coefficient residual values of the current transform layer, determining one or more alternating current coefficient reconstruction values of the current transform layer. In this way, the encoding and decoding efficiency of RAHT transform can be improved.
Need to check novelty before this filing date? Find Prior Art

Description

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

[0001] Embodiments of the present application relate to the technical field of video coding, and particularly relate to a coding method, a code stream, an encoder, a decoder and a storage medium. BACKGROUND

[0002] In a geometry-based point cloud compression (G-PCC) coding framework, the geometry information and attribute information of a point cloud are encoded separately. The attribute encoding of G-PCC can include a predicting transform (PT), a lifting transform (LT) and a region adaptive hierarchical transform (RAHT).

[0003] For the RAHT transform, in the process of layer-by-layer calculation from the root node to the child node, with the increase of the number of layers, the encoded AC coefficient values obtained by the transform gradually decrease, so that a large number of 0 appear in the AC coefficient residuals of the last few layers of the point cloud. The encoding of the AC coefficient residuals of the last few layers will cause a great waste of code stream and reduce the coding efficiency.

[0004] SUMMARY

[0005] Embodiments of the present application provide a coding method, a code stream, an encoder, a decoder and a storage medium, which can improve the coding efficiency of the RAHT transform.

[0006] The technical solutions of the embodiments of the present application can be implemented as follows:

[0007] In a first aspect, the embodiments of the present application provide a decoding method applied to a decoder, and the method comprises:

[0008] parsing a first syntax element in a code stream;

[0009] when the first syntax element indicates that k transform layers of a current point cloud are allowed to be skip-decoded, parsing a second syntax element of a current transform layer in the k transform layers in the code stream; wherein k is an integer greater than zero;

[0010] when the second syntax element indicates that the current transform layer uses a skip-decoding technology, determining one or more AC coefficient residual values of the current transform layer as preset values;

[0011] determining one or more AC coefficient reconstructed values of the current transform layer according to the one or more AC coefficient residual values of the current transform layer.

[0012] In a second aspect, an embodiment of the present application provides an encoding method applied to an encoder, the method comprising:

[0013] When the k transform layers of the current point cloud allow skip coding, determining whether a current transform layer in the k transform layers uses a skip coding technology; wherein k is an integer greater than zero;

[0014] When the current transform layer uses the skip coding technology, determining one or more cross coefficient residual values of the current transform layer as preset values;

[0015] When the current transform layer does not use the skip coding technology, determining one or more cross coefficient residual values of the current transform layer, and performing encoding processing on the one or more cross coefficient residual values of the current transform layer, and writing the obtained encoding bits into a bitstream.

[0016] In a third aspect, an embodiment of the present application provides a bitstream, which is generated by bit encoding according to the encoding method of the second aspect; wherein the to-be-encoded information corresponding to the encoding method comprises at least one of the following: a value of a first syntax element, a value of a second syntax element, a value of a third syntax element, a value of a fourth syntax element, cross coefficient residual values of a plurality of transform layers corresponding to a current point cloud, a direct current coefficient value of a root node, a layer prediction mode of each of the plurality of transform layers, and one or more cross coefficient residual values of a current transform layer in the k transform layers being preset values;

[0017] Wherein the plurality of transform layers comprises k transform layers, and k is an integer greater than zero; the first syntax element is used to indicate whether the k transform layers of the current point cloud allow skip coding, the second syntax element is used to indicate whether the current transform layer in the k transform layers uses the skip coding technology, the third syntax element is used to indicate whether the current point cloud uses a rate-distortion optimization-based layer prediction technology, and the fourth syntax element is used to indicate whether a to-be-processed component of the current transform layer uses the skip coding technology.

[0018] In a fourth aspect, an embodiment of the present application provides an encoder, comprising a first determining unit and an encoding unit, wherein:

[0019] The first determining unit is configured to, when the k transform layers of the current point cloud allow skip coding, determine whether a current transform layer in the k transform layers uses a skip coding technology; wherein k is an integer greater than zero; and when the current transform layer uses the skip coding technology, determine one or more cross coefficient residual values of the current transform layer as preset values;

[0020] The encoding unit is configured to, when the current transform layer does not use the skip coding technology, determine one or more AC coefficient residual values of the current transform layer, and perform encoding processing on the one or more AC coefficient residual values of the current transform layer, and write the obtained encoding bits into the code stream.

[0021] In a fifth aspect, an embodiment of the present application provides an encoder, comprising a first memory and a first processor, wherein:

[0022] The first memory is configured to store a computer program capable of running on the first processor.

[0023] The first processor is configured to, when running the computer program, execute the method in the second aspect.

[0024] In a sixth aspect, an embodiment of the present application provides a decoder, comprising a decoding unit and a second determining unit, wherein:

[0025] The decoding unit is configured to parse a first syntax element in the code stream, and when the first syntax element indicates that k transform layers of a current point cloud allow skip decoding, parse a second syntax element of a current transform layer in the k transform layers in the code stream; wherein k is an integer greater than zero.

[0026] The second determining unit is configured to, when the second syntax element indicates that the current transform layer uses the skip decoding technology, determine one or more AC coefficient residual values of the current transform layer as preset values.

[0027] The second determining unit is further configured to determine one or more AC coefficient reconstruction values of the current transform layer according to the one or more AC coefficient residual values of the current transform layer.

[0028] In a seventh aspect, an embodiment of the present application provides a decoder, comprising a second memory and a second processor, wherein:

[0029] The second memory is configured to store a computer program capable of running on the second processor.

[0030] The second processor is configured to, when running the computer program, execute the method in the first aspect.

[0031] In an eighth aspect, an embodiment of the present application provides a computer readable storage medium, which stores a computer program, and the computer program is executed by a processor to implement the method in the first aspect, or implement the method in the second aspect.

[0032] In a ninth aspect, an embodiment of the present application provides a computer program product, comprising a computer program or instructions, and the computer program or instructions are executed by a processor to implement the method in the first aspect, or implement the method in the second aspect.

[0033] In a tenth aspect, an embodiment of the present application provides a computer readable storage medium, having a code stream stored thereon, the code stream being generated by performing steps of the encoding method in the second aspect.

[0034] The embodiment of the present application provides a coding method, a code stream, an encoder, a decoder and a storage medium. At an encoding end, when k transform layers of a current point cloud are allowed to be skip coded, whether a current transform layer in the k transform layers uses a skip coding technology is determined; wherein k is an integer greater than zero; when the current transform layer uses the skip coding technology, one or more AC coefficient residual values of the current transform layer are determined as preset values; when the current transform layer does not use the skip coding technology, the one or more AC coefficient residual values of the current transform layer are determined, and the one or more AC coefficient residual values of the current transform layer are encoded, and the obtained encoded bits are written into a code stream. At a decoding end, a first syntax element in the code stream is parsed; when the first syntax element indicates that the k transform layers of the current point cloud are allowed to be skip decoded, a second syntax element of a current transform layer in the k transform layers in the code stream is parsed; wherein k is an integer greater than zero; when the second syntax element indicates that the current transform layer uses a skip decoding technology, one or more AC coefficient residual values of the current transform layer are determined as preset values; and one or more AC coefficient reconstructed values of the current transform layer are determined according to the one or more AC coefficient residual values of the current transform layer. In this way, at the encoding end or the decoding end, when it is determined that the k transform layers of the current point cloud are allowed to be skip coded, if the current transform layer in the k transform layers uses the skip coding technology, the one or more AC coefficient residual values of the current transform layer do not need to be encoded, and if the decoding end determines that the current transform layer uses the skip decoding technology according to the second syntax element, the one or more AC coefficient residual values of the current transform layer can be directly determined as the preset values, thereby effectively improving the phenomenon that too many 0 values exist in the AC coefficient residuals of the last several layers in the RAHT transform, avoiding code stream waste, and improving coding and decoding efficiency. Moreover, the second syntax element is used to determine which layers in the k transform layers use the skip coding technology, and quality enhancement of a reconstructed point cloud at an average code rate at the decoding end can be achieved, thereby improving coding and decoding performance of the point cloud. BRIEF DESCRIPTION OF DRAWINGS

[0035] FIG. 1A is a schematic diagram of a three-dimensional point cloud image;

[0036] FIG. 1B is a partial enlarged view of a three-dimensional point cloud image;

[0037] FIG. 2A is a schematic diagram of six viewing angles of a point cloud image;

[0038] FIG. 2B is a diagram illustrating a data storage format corresponding to a point cloud image;

[0039] FIG. 3 is a diagram illustrating a network architecture of point cloud coding;

[0040] FIG. 4 is a diagram illustrating a framework of a G-PCC encoder;

[0041] FIG. 5 is a diagram illustrating a framework of a G-PCC decoder;

[0042] FIG. 6 is a diagram illustrating an encoding process of RAHT;

[0043] FIG. 7 is a diagram illustrating a decoding process of RAHT;

[0044] FIG. 8 is a diagram illustrating a structure of a sub-node;

[0045] FIG. 9 is a diagram illustrating a RAHT transform based on a transform direction;

[0046] FIG. 10 is a diagram illustrating a forward transform process of RAHT;

[0047] FIG. 11 is a diagram illustrating an inverse transform process of RAHT;

[0048] FIG. 12 is a diagram illustrating an inter prediction process of RAHT;

[0049] FIG. 13 is a diagram illustrating a flow of a decoding method according to an embodiment of the present application;

[0050] FIG. 14 is a diagram illustrating a flow of a decoding method according to an embodiment of the present application;

[0051] FIG. 15 is a diagram illustrating a flow of a decoding method according to an embodiment of the present application;

[0052] FIG. 16 is a diagram illustrating a flow of an encoding method according to an embodiment of the present application;

[0053] FIG. 17 is a diagram illustrating a flow of an encoding method according to an embodiment of the present application;

[0054] FIG. 18 is a diagram illustrating a flow of an encoding method according to an embodiment of the present application;

[0055] FIG. 19 is a diagram illustrating a structure of an original bitstream structure;

[0056] FIG. 20 is a diagram illustrating a structure of a bitstream structure according to an embodiment of the present application;

[0057] FIG. 21 is a diagram illustrating a detailed flow of an encoding method according to an embodiment of the present application;

[0058] FIG. 22 is a detailed flowchart of an encoding method according to an embodiment of the present application;

[0059] FIG. 23 is a detailed flowchart of a decoding method according to an embodiment of the present application;

[0060] FIG. 24 is a schematic diagram of a structure of an encoder according to an embodiment of the present application;

[0061] FIG. 25 is a schematic diagram of a specific hardware structure of an encoder according to an embodiment of the present application;

[0062] FIG. 26 is a schematic diagram of a structure of a decoder according to an embodiment of the present application;

[0063] FIG. 27 is a schematic diagram of a specific hardware structure of a decoder according to an embodiment of the present application;

[0064] FIG. 28 is a schematic diagram of a structure of a codec system according to an embodiment of the present application. DETAILED DESCRIPTION

[0065] In order to enable a person skilled in the art to more fully understand the features and technical contents of the embodiments of the present application, the implementation of the embodiments of the present application will be described in detail below with reference to the accompanying drawings, which are only used for reference and are not intended to limit the embodiments of the present application.

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

[0067] In the following description, "some embodiments" are described, which describe a subset of all possible embodiments, but it can be understood that "some embodiments" can be the same subset or different subsets of all possible embodiments, and can be combined with each other without conflict.

[0068] It should also be noted 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 order of the objects. It can be understood that "first", "second", "third" can be interchanged with a specific order or sequence as allowed, so that the embodiments of the present application described herein can be implemented in an order other than that illustrated or described herein.

[0069] Before the embodiments of the present application are further described in detail, the terms and phrases involved in the embodiments of the present application are explained, which are applicable to the following explanations:

[0070] Before the embodiments of the present application are described in further detail, the terms and names involved in the embodiments of the present application are explained, and the terms and names involved in the embodiments of the present application are applicable to the following explanations:

[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 (Luma or Y);

[0082] Chroma blue (Cb);

[0083] Chroma red (Cr).

[0084] Point Cloud is a three-dimensional representation of the surface of an object, and the point cloud (data) of the surface of the object can be collected by electro-optical radar, laser radar, laser scanner, multi-view camera and other collection devices.

[0085] A point cloud is a set of discrete points in space that are irregularly distributed, expressing the spatial structure and surface attributes of a three-dimensional object or scene. FIG. 1A shows a three-dimensional point cloud image and FIG. 1B shows a local 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] A two-dimensional image has information expressed at each pixel point, and the distribution is regular, so there is no need to record the position information. However, the distribution of points in a point cloud in three-dimensional space has randomness and irregularity, so the position of each point in space needs to be recorded in order to completely express a point cloud. Similar to a two-dimensional image, each position has corresponding attribute information during the collection process, which is usually an RGB color value, and the color value reflects the color of the object. For a point cloud, the attribute information corresponding to each point includes not only color information but also reflectance value, which is commonly used and reflects the surface material of the object. Therefore, point cloud data usually includes position information and attribute information of points. The position information of points can also be referred to as the geometric information of points. For example, the geometric information of points can be three-dimensional coordinate information (x, y, z) of points. The attribute information of points can include color information and / or reflectance, etc. For example, the reflectance can be one-dimensional reflectance information (r); the color information can be information on any color space, or the color information can be three-dimensional color information such as RGB information. Here, R represents red (Red, R), G represents green (Green, G), and B represents blue (Blue, B). For another example, the color information can be luminance chrominance (YCbCr, YUV) information. Y represents luminance (Luma), Cb (U) represents blue color difference, and Cr (V) represents red color difference.

[0087] According to the laser measurement principle, the points in the point cloud can include three-dimensional coordinate information of points and reflectance values of points. For another example, according to the photogrammetry principle, the points in the point cloud can include three-dimensional coordinate information of points and three-dimensional color information of points. For another example, the point cloud obtained by combining the laser measurement and photogrammetry principles can include three-dimensional coordinate information of points, reflectance values of points, and three-dimensional color information of points.

[0088] As shown in FIGS. 2A and 2B, a point cloud image and a corresponding data storage format thereof are shown. FIG. 2A provides six viewing angles of the point cloud image, and FIG. 2B is composed of a file header information part and a data part. The header information includes data format, data representation type, total number of points of the point cloud, and content represented by the point cloud. For example, the point cloud is in a “.ply” format represented by ASCII code, the total number of points is 207242, each point has three-dimensional coordinate information (x, y, z) and three-dimensional color information (r, g, b).

[0089] Point clouds can be divided into the following categories according to the way of acquisition:

[0090] Static point clouds: the object is static, and the device for acquiring the point cloud is also static;

[0091] Dynamic point clouds: the object is moving, but the device for acquiring the point cloud is static;

[0092] Dynamic acquisition of point clouds: the device for acquiring the point cloud is moving.

[0093] For example, point clouds can be divided into two categories according to their use:

[0094] Category one: machine perception point clouds, which can be used in autonomous navigation systems, real-time inspection systems, geographic information systems, vision sorting robots, rescue robots, and the like;

[0095] Category two: human eye perception point clouds, which can be used in digital cultural heritage, free-view broadcast, three-dimensional immersive communication, three-dimensional immersive interaction, and the like.

[0096] Point clouds can flexibly and conveniently express the spatial structure and surface properties of three-dimensional objects or scenes, and can provide strong realism under the premise of ensuring accuracy because point clouds are obtained by directly sampling real objects. Therefore, point clouds are widely used in virtual reality games, computer-aided design, geographic information systems, autonomous navigation systems, digital cultural heritage, free-view broadcast, three-dimensional immersive remote presentation, three-dimensional reconstruction of biological tissues and organs, and the like.

[0097] The acquisition of point clouds mainly has the following ways: computer generation, 3D laser scanning, 3D photogrammetry, and the like. A computer can generate point clouds of virtual three-dimensional objects and scenes; 3D laser scanning can obtain point clouds of static real-world three-dimensional objects or scenes, and can acquire millions of point clouds per second; 3D photogrammetry can obtain point clouds of dynamic real-world three-dimensional objects or scenes, and can acquire tens of millions of point clouds per second. These technologies reduce the cost and time period of point cloud data acquisition, and improve the accuracy of the data. The change in the way of point cloud data acquisition makes it possible to acquire a large amount of point cloud data, and along with the growth of application demand, the processing of massive 3D point cloud data encounters the bottleneck of storage space and transmission bandwidth limitation.

[0098] Exemplarily, taking a point cloud video with a frame rate of 30 frames per second (fps) as an example, the number of points of each frame of point cloud is 700,000, each point has coordinate information xyz (float) and color information RGB (uchar), and the data volume of a 10s point cloud video is about 0.7 million x (4 Byte x 3 + 1 Byte x 3) x 30 fps x 10s = 3.15 GB, wherein 1 Byte is 10 bits; while the YUV sampling format is 4:2:0, the frame rate of a 1280 x 720 two-dimensional video is 24 fps, and the data volume of a 10s video is about 1280 x 720 x 12 bits x 24 fps x 10s = 0.33 GB, and the data volume of a 10s two-view three-dimensional video is about 0.33 x 2 = 0.66 GB. As can be seen, the data volume of the point cloud video far exceeds that of the two-dimensional video and the three-dimensional video of the same length. Therefore, in order to better realize data management, save server storage space, and reduce transmission flow and transmission time between the server and the client, point cloud compression has become a key problem to promote the development of the point cloud industry.

[0099] That is, since the point cloud is a collection of a large number of points, storing the point cloud not only consumes a large amount of memory, but also is not conducive to transmission, and there is no such large bandwidth to support the transmission of the point cloud directly on the network layer without compression, therefore, the point cloud needs to be compressed.

[0100] At present, the point cloud encoding framework that can compress the point cloud can be a Geometry-based Point Cloud Compression (G-PCC) coding framework or a Video-based Point Cloud Compression (V-PCC) coding framework provided by Moving Picture Experts Group (MPEG), or an AVS-PCC coding framework provided by AVS. The G-PCC coding framework can be used for compression of the first type of static point cloud and the third type of dynamically acquired point cloud, which can be based on Test Model Compression 13 (TMC13), and the V-PCC coding framework can be used for compression of the second type of dynamic point cloud, which can be based on Test Model Compression 2 (TMC2). Therefore, the G-PCC coding framework is also called point cloud codec TMC13, and the V-PCC coding framework is also called point cloud codec TMC2.

[0101] The embodiment of the present application provides a network architecture of a point cloud coding and decoding system comprising a decoding method and an encoding method. FIG. 3 is a schematic diagram of a network architecture of point cloud coding and decoding. As shown in FIG. 3, the network architecture comprises 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. The electronic devices in the implementation process can be various types of devices with point cloud coding and decoding functions, for example, the electronic devices can comprise a mobile phone, a tablet computer, a personal computer, a personal digital assistant, a navigator, a digital telephone, a video telephone, a television, a sensing device, a server, and the like, and the embodiment of the present application is not limited thereto. Wherein, the decoder or the encoder in the embodiment of the present application can be the above-mentioned electronic devices.

[0102] Wherein, the electronic device in the embodiment of the present application has a point cloud coding and decoding function, generally comprising a point cloud encoder (i.e., an encoder) and a point cloud decoder (i.e., a decoder).

[0103] The following will take the G-PCC coding and decoding framework as an example to introduce the related technologies in detail.

[0104] It can be understood that in the point cloud G-PCC coding and decoding 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 geometry information of the point cloud and the attribute information corresponding to each point are encoded separately.

[0105] Fig. 4 is a schematic diagram of a G-PCC encoder. In the G-PCC encoding framework, the point cloud data to be encoded is first divided into multiple slices. In each slice, the geometry information of the point cloud and the attribute information corresponding to each point cloud are encoded separately. As shown in Fig. 4, the G-PCC encoding framework can include a coordinate conversion module 401, a voxelization module 402, an octree division module 403, a surface fitting module 404, a reconstructed geometry module 405, a first arithmetic encoding module 406, a color conversion module 407, a recoloring module 408, a RAHT transform module 409, a LOD generation module 410, a lifting module 411, a quantization module 412, and a second arithmetic encoding module 413. In the geometry encoding process, the coordinate conversion module 401 performs coordinate conversion on the geometry information, so that all the point clouds are contained in a Bounding Box, and then quantization is performed based on the voxelization module 402. This quantization mainly plays a scaling role. Due to the quantization rounding, the geometry information of a part of the point clouds is the same, and then it is determined based on parameters whether to remove the duplicate points. The quantization and removal of duplicate points are also called the voxelization process. Then the octree division module 403 performs octree division on the Bounding Box. In the geometry information encoding process based on octree, the Bounding Box is equally divided into 8 sub-cubes. The non-empty (containing points in the point cloud) sub-cubes are continuously divided into 8, until the leaf nodes obtained by the division are 1x1x1 unit cubes, and the first arithmetic encoding module 406 performs arithmetic encoding on the points in the leaf nodes to generate a binary geometry bit stream, i.e., a geometry code stream. In the geometry information encoding process based on Triangle soup (Trisoup), the octree division is also performed first, but different from the geometry information encoding based on octree, the Trisoup does not need to divide the point cloud to the unit cube with an edge length of 1x1x1, but divides the point cloud to a block with an edge length of W and stops the division. In the surface fitting module 404, based on the surface formed by the distribution of the point cloud in each block, at most twelve intersection points (Vertices) generated by the surface and the twelve edges of the block are obtained, and the Vertices are arithmetic encoded (surface fitting based on intersection points) to generate a binary geometry bit stream, i.e., a geometry code stream. In the reconstructed geometry module 405, the Vertices are also used in the implementation of the geometry reconstruction process, and the reconstructed set information is used in the attribute encoding of the point cloud.

[0106] In the attribute encoding process, after the geometry encoding is completed and the geometry information is reconstructed, color conversion is performed by the color conversion module 407 to convert the color information (i.e., attribute information) from the RGB color space to the YUV color space. Then, the re-coloring module 408 re-colors the point cloud using the reconstructed geometry information, so that the unencoded attribute information corresponds to the reconstructed geometry information. Attribute encoding is mainly performed on color information. In the color information encoding process, there are mainly two transformation methods. One is based on the generation LOD module 410 and the promotion module 411, which mainly relies on the distance-based promotion transformation based on LOD division. The other is based on the RAHT transformation module 409, which directly performs RAHT transformation. Both of these two methods convert the color information from the spatial domain to the frequency domain, obtain high-frequency coefficients and low-frequency coefficients through transformation, and finally quantize the coefficients (i.e., quantized coefficients) through the quantization module 412. Finally, after the geometry encoding data obtained through octree division and surface fitting and the attribute encoding data obtained through quantization are combined through slice, the vertex coordinates of each Block are encoded in turn (i.e., arithmetic encoding) by using the second arithmetic encoding module 413 to generate a binary attribute bitstream, i.e., an attribute code stream.

[0107] FIG. 5 is a schematic diagram of a composition framework of a G-PCC decoder. In the G-PCC decoding framework, the geometry bitstream and the attribute bitstream in the obtained binary code stream are independently decoded. As shown in FIG. 5, the G-PCC decoding framework can include a first arithmetic decoding module 501, an octree combining module 502, a surface fitting module 503, a reconstructed geometry module 504, an inverse coordinate transformation module 505, a second arithmetic decoding module 506, an inverse quantization module 507, a RAHT inverse transformation module 508, a generation LOD module 509, a promotion inverse transformation module 510, and an inverse color conversion module 511. In the decoding of the geometry bitstream, the geometry information of the point cloud is obtained by sequentially passing through the first arithmetic decoding-octree combining-surface fitting-reconstructed geometry-inverse coordinate transformation. In the decoding of the attribute bitstream, the attribute information of the point cloud is obtained by sequentially passing through the second arithmetic decoding-inverse quantization-LOD-based promotion inverse transformation or RAHT-based inverse transformation-inverse color conversion. Based on the geometry information and the attribute information, the three-dimensional image model of the point cloud data to be encoded is restored.

[0108] It can also be understood that, for RAHT encoding of point cloud attribute information, FIG. 6 is a flowchart of RAHT encoding, and FIG. 7 is a flowchart of RAHT decoding. As shown in FIG. 6, for an original point cloud (or referred to as an initial point cloud), intra prediction or inter prediction can be performed. In the intra prediction process, the original point cloud is subjected to up-sampling prediction to obtain a predicted point cloud, and then RAHT transformation is performed to determine predicted AC coefficients; in the inter prediction process, RAHT transformation is performed on a neighboring frame (i.e., a reference point cloud) of the original point cloud to also determine the predicted AC coefficients. RAHT transformation is performed on the original point cloud to determine a DC coefficient of a root node and original AC coefficients; subtraction is performed on the original AC coefficients and the predicted AC coefficients to obtain predicted residuals, and after quantization and entropy encoding of the predicted residuals, attribute code streams can be generated. As shown in FIG. 7, according to the intra prediction / inter prediction, AC prediction values can be obtained; entropy decoding and inverse quantization are performed on the attribute code streams to obtain AC prediction residuals; addition is performed on the AC prediction values and the AC prediction residuals to obtain original AC coefficients, and then, in combination with the DC coefficients, RAHT inverse transformation is performed to obtain reconstructed attribute values.

[0109] Here, the RAHT transformation is based on Haar wavelet transformation, and the core is recursive transformation from a root node to a child node from bottom to top in a hierarchical tree structure, and the obtained DC coefficients are passed to a next layer, and the AC coefficients are quantized and encoded. The main encoding process is as follows: first, according to the octree structure of the point cloud division, it is determined whether to use up-sampling prediction or inter prediction; second, recursive transformation from the root node to the child node from bottom to top is performed to obtain AC coefficients layer by layer, and if there is prediction, the predicted AC coefficients are subtracted from the original AC coefficients to obtain the current prediction residuals; finally, the prediction residuals of the AC coefficients are quantized and encoded to generate attribute code streams. At the decoding end, the RAHT decoding is still performed from the root node to the child node from top to bottom, the decoder reads the attribute code streams to perform entropy decoding, and then inverse quantization is performed to obtain AC residuals, and if there is intra prediction or inter prediction, the AC prediction residuals are added to the AC prediction values to obtain original AC coefficients, which are then combined with the DC coefficients to perform RAHT inverse transformation to obtain reconstructed attribute values of the current layer, and the reconstructed attribute values of the current layer can be used to calculate DC coefficients of a next layer, until all layers are traversed to obtain the reconstructed attribute values.

[0110] It can also be understood that, in the embodiments of the present application, one video frame can be understood as one image. Exemplarily, a current frame can be understood as a current image, and a reference frame can be understood as a reference image. The RAHT prediction encoding process will be described in detail according to the above steps.

[0111] In a specific implementation, the detailed steps of the RAHT encoding are as follows:

[0112] Step 1, RAHT transform.

[0113] The RAHT transform method adopted by G-PCC firstly performs recursive transform along each dimension from parent node to child node from top to bottom based on the divided octree structure, and the transform process is obtained by the following formula:

[0114] where w i,j is the weight of the jth node to be transformed in the ith layer, g i,j is the attribute value of the leaf node, h i,j is the AC coefficient, and h i,j is the DC coefficient. After each transform, the DC coefficient is directly transmitted to the next layer, and the AC coefficient is quantized and entropy encoded; if there is only one point in the layer, the attribute value of the point is directly transmitted to the next layer as the DC coefficient.

[0115] For the RAHT transform, FIG. 8 is a structural diagram of a child node, and specifically, the small cube filled with dots is the child node of the current node. In addition, FIG. 9 is a schematic diagram of the RAHT transform based on the transform direction. As shown in FIG. 9, the black arrow represents the transform direction, and according to the octree structure, the nodes in each layer are transformed along the dimension of the transform direction (for example, the x-axis direction, the y-axis direction, the z-axis direction, etc.) in a bottom-up manner. In the transform process, the DC coefficients of the nodes in the same layer after transformation are transmitted to the next layer, and the AC coefficients after transformation of each layer are quantized and entropy encoded.

[0116] Step 2, intra upsampling prediction.

[0117] In order to further remove redundancy and improve the compression efficiency of points, an upsampling prediction method is introduced. The core of the upsampling prediction is intra prediction, which uses the attribute information of the already encoded points to predict the attribute information of the current point, thereby obtaining the predicted AC coefficient. Subsequently, the AC coefficient residual between the encoded predicted AC coefficient and the original AC coefficient is encoded to achieve the purpose of removing redundancy.

[0118] The tree structure of the RAHT transform is from top to bottom, and the transform is still performed in a 2x2x2 block. The predicted attribute values of the child nodes are obtained by predicting the attributes of the child nodes using the reconstructed attribute values of the parent node and the coplanar and collinear neighbor nodes of the parent node. The true attribute values and the predicted attribute values of the child nodes in the block are respectively subjected to RAHT transform to obtain the corresponding DC coefficients and AC coefficients. The AC coefficients obtained by the true attributes and the AC coefficients obtained by the predicted attributes are differentially encoded to obtain the prediction residual, which is quantized and entropy encoded. The specific process is shown in FIG. 10.

[0119] When performing the RAHT inverse transform, the DC coefficient inherits the reconstructed attribute value of the parent node of the last layer, the AC coefficient residual obtained at the decoding end is added to the predicted AC coefficient obtained by transforming the up-sampled predicted attribute value, and then the RAHT inverse transform is performed on the DC coefficient and the AC coefficient to obtain the reconstructed attribute value. The specific process is shown in FIG. 11.

[0120] Step 3, inter prediction.

[0121] The inter prediction is to use the already encoded reference image information to predict and encode the current image, so as to reduce the redundancy. The reference image is divided in an octree structure, and the AC coefficients of each reference node are memorized after the reference image is subjected to the RAHT transform, so as to perform the inter prediction of the next frame. In the encoding of the target node, the coefficient residual is calculated by using the coefficients of the reference image and the current image, and the coefficient residual is subjected to entropy encoding. The decoder has the same process. Here, the inter prediction process is shown in FIG. 12.

[0122] The inter prediction is applied only when the current point cloud and the reference point cloud have the same octree division structure and are in the same position node. If the predicted coefficient value does not exist in the reference buffer, the inter prediction is not applied. If the corresponding AC coefficient does not exist in the reference buffer, the inter prediction is not applied.

[0123] Step 4, average prediction.

[0124] In the G-PCC, the RAHT average prediction can be performed on some specific layers. Exemplarily, for the first N layers of the octree decomposition, the inter prediction is enabled. If the inter prediction value is not zero, the intra prediction value is replaced by the inter prediction value. For the last M layers of the octree decomposition, the average prediction is enabled. When the inter prediction value and the intra prediction value are both not zero, the average prediction value is used to replace the intra prediction value. Otherwise, when the inter prediction value is not zero, the inter prediction value is used to replace the intra prediction value. In other cases, the intra prediction value is used as the prediction value.

[0125] When the average prediction is enabled in the G-PCC, the prediction value is a weighted average of the inter prediction value and the intra prediction value, which can be calculated according to the following formula.

[0126] The weights of the inter prediction value and the intra prediction value are determined according to the number of voteInter and voteIntra, respectively, wherein w inter is the weight of the intra prediction value, and w intra is the weight of the intra prediction value, and the calculation formula is as follows:

[0127] where voteInter and voteIntra are the number of inter and intra prediction modes used by the parent node, the parent neighbor node and the sibling node, which are calculated as follows:

[0128] (a) If one parent neighbor node applies intra / inter / non-prediction, then voteInter is increased by 2, or voteIntra is increased by 2, or voteInter is increased by 1 and voteIntra is increased by 1, respectively.

[0129] (b) If one sibling node applies intra / inter / non-prediction, then voteInter is increased by 6, or voteIntra is increased by 6, or voteInter is increased by 3 and voteIntra is increased by 3, respectively.

[0130] (c) If the parent node applies intra / inter / non-prediction, then voteInter is increased by 12, or voteIntra is increased by 12, or voteInter is increased by 6 and voteIntra is increased by 6, respectively.

[0131] Step 5: RDO-based layer-optimal prediction mode selection.

[0132] In G-PCC, a RDO-based layer-optimal prediction mode selection scheme is introduced, which strictly indicates the selection of the optimal prediction mode (inter prediction, intra prediction, average prediction or non-prediction) for each layer. See Table 1 for details, which provides the optimal prediction mode details table for RAHT layers. The detailed explanation of the table is as follows:

[0133] First, the RAHT is divided into several layers from top to bottom. The upper layer is defined as the first 3 layers divided from the root node downward; the lower layer is defined as the last 2 layers from the leaf node upward, which are further divided: the leaf node layer is the lower layer with disabled average prediction, and the second last layer is the lower layer with enabled average prediction; the remaining layers are middle layers, which are also further divided: the last 1 layer of the middle layer (the third last layer from the leaf node upward) is the layer with enabled average prediction, and the remaining layers are the layers with disabled average prediction.

[0134] Then, for each layer, there are at least two prediction schemes to be selected. All prediction schemes are three, which are the original coding scheme (OrgCodingMethod), the inter-layer coding scheme (Inter-layerCodingMethod) and the intra-layer coding scheme (Intra-layerCodingMethod). The selection of the three prediction schemes depends on the layer coefficient RDO.

[0135] When RDO selects one layer optimal prediction scheme, the optimal prediction mode execution for each layer can be found according to Table 1. For example, Inter>Intra>Null, it means if the inter prediction value is not 0, then use inter prediction; if the inter prediction does not exist or the inter prediction value is 0, then judge if the intra prediction value is 0, if the intra prediction value is not 0, then use intra prediction, otherwise, use no prediction. For another example, Inter, Intra, Null RDO selection, it means for each RAHT transform block of the layer, the intra prediction, inter prediction and no prediction are selected by RDO selection to select the optimal prediction mode.

[0136] Thus, the transform coefficients of each layer RAHT have a complete prediction mode selection scheme. At the encoding end, the optimal prediction mode is entropy coded, 0 and 1 are used to code the two prediction modes of the layer, and 00, 01 and 11 are used to code the three prediction modes of the layer. At the decoding end, the optimal prediction mode flag is decoded to calculate the AC prediction value.

[0137] Table 1

[0138] Step 6, encode the coefficient residual and residual RDOQ.

[0139] The prediction attribute value of each point in the current 2x2x2 block is obtained by the above intra prediction or inter prediction or average prediction, the real attribute value and the prediction attribute value of the sub-nodes in the block are respectively subjected to RAHT transform to obtain the corresponding DC coefficient and AC coefficient, and the i-th prediction AC coefficient is obtained (k is 8). Let the i-th original AC coefficient (i.e. real AC coefficient) be denoted as (AC i ) i∈1…k-1 , then the AC coefficient residual (r i ) i∈0…k-1 is denoted as:

[0140] Then, the rate-distortion optimization judgment for the AC coefficient residual is performed, if the rate-distortion cost RDcost of setting the coefficient residual to 0 is less than the original coding rate-distortion cost RDcost, the coefficient residual is set to 0.

[0141] Further, the prediction residual after RDO judgment is quantized:

[0142] wherein, Q iQs is the quantization step, which can be calculated from the quantization parameter (QP) specified by the compliance test certification (CTC).

[0143] Step 7, the attribute value is reconstructed at the encoding end.

[0144] The purpose of the reconstruction at the encoding end is to predict the subsequent points. Before the attribute value is reconstructed, the encoded AC residual needs to be dequantized, denoted as as the dequantized residual:

[0145] The i-th reconstructed AC coefficient in the current block is obtained by adding the predicted AC coefficient to the dequantized residual The specific process is as follows:

[0146] Finally, the reconstructed AC coefficient is added to the DC coefficient obtained from the parent node in the previous layer to perform the inverse RAHT, and the reconstructed attribute value is obtained.

[0147] That is, in the related art, the RAHT is currently calculated, quantized and encoded from the root node to the child node layer by layer. Since the direct current component and the attribute information of each layer are accumulated layer by layer from the leaf node to the root node, the encoded AC coefficient value obtained by the root node transformation is large, and as the number of layers increases from top to bottom, the number of encoded AC coefficients obtained by the transformation gradually increases and the value gradually decreases. As a result, in the last few layers of the point cloud, the AC coefficient residual after RDOQ and attribute quantization has a large number of 0s. According to statistics, the number of 0s in the AC coefficient residual of the last few layers of the point cloud accounts for more than 95%. Therefore, the encoding of the AC coefficient residual of the last few layers must have a large code stream waste, which reduces the coding efficiency.

[0148] Based on this, the embodiment of the present application provides an encoding method, when k transform layers of a current point cloud allow to perform skip encoding, determining whether a current transform layer in the k transform layers uses a skip encoding technology; wherein k is an integer greater than zero; when the current transform layer uses the skip encoding technology, determining one or more AC coefficient residual values of the current transform layer as a preset value; when the current transform layer does not use the skip encoding technology, determining the one or more AC coefficient residual values of the current transform layer, and performing encoding processing on the one or more AC coefficient residual values of the current transform layer, and writing the obtained encoding bits into a bitstream. The embodiment of the present application also provides an encoding method, parsing a first syntax element in a bitstream; when the first syntax element indicates that k transform layers of a current point cloud allow to perform skip decoding, parsing a second syntax element of a current transform layer in the k transform layers in the bitstream; wherein k is an integer greater than zero; when the second syntax element indicates that the current transform layer uses a skip decoding technology, determining one or more AC coefficient residual values of the current transform layer as a preset value; and determining one or more AC coefficient reconstruction values of the current transform layer according to the one or more AC coefficient residual values of the current transform layer.

[0149] In this way, whether at the encoding end or the decoding end, when it is determined that k transform layers of a current point cloud allow to perform skip encoding, at this time for each transform layer (taking the current transform layer as an example) in the k transform layers, if the current transform layer uses the skip encoding technology, then the one or more AC coefficient residual values of the current transform layer no longer need to be encoded and processed, and if the decoding end determines according to the second syntax element that the current transform layer uses the skip decoding technology, then the one or more AC coefficient residual values of the current transform layer can be directly determined as the preset value, thereby effectively improving the phenomenon of too many 0 values in the AC coefficient residual of the last several layers in the RAHT transform, avoiding waste of the bitstream, and improving the encoding and decoding efficiency. Moreover, by using the second syntax element to determine which layers in the k transform layers use the skip encoding technology, quality enhancement of the reconstructed point cloud at the average code rate at the decoding end can also be achieved, thereby improving the encoding and decoding performance of the point cloud.

[0150] The embodiments of the present application will be described in detail below with reference to the accompanying drawings.

[0151] In an embodiment of the present application, FIG. 13 is a flowchart of a decoding method provided by an embodiment of the present application. As shown in FIG. 13, the method can include:

[0152] S1301, parsing a first syntax element in a bitstream.

[0153] It should be noted that in the embodiments of the present application, the method is applied to a point cloud decoder (which can be referred to as a "decoder" for short). Here, a point cloud decoding method is mainly provided, and more specifically, a transform coefficient residual skip decoding scheme for a RAHT layer prediction mode, which can improve the phenomenon of excessive 0 values in the coding of AC coefficient residuals in the later layers of the RAHT transform.

[0154] It should also be noted that in the embodiments of the present application, some indication information in the form of syntax elements or flag can be written in the code stream. In this way, by analyzing the value of the syntax element in the code stream, it can be determined whether the k transform layers of the current point cloud are allowed to be skip decoded. Exemplarily, a first syntax element can be used to indicate whether the k transform layers of the current point cloud are allowed to be skip decoded.

[0155] In some embodiments, the method can further include: if the value of the first syntax element is a first value, determining that the first syntax element indicates that the k transform layers of the current point cloud are allowed to be skip decoded; and if the value of the first syntax element is a second value, determining that the first syntax element indicates that the k transform layers of the current point cloud are not allowed to be skip decoded.

[0156] It should also be noted that in the embodiments of the present application, the first syntax element can be represented by flag_k. Wherein the first value is different from the second value. Exemplarily, the first value can be set to an integer greater than zero, such as 1, 2, 3, …, etc.; and the second value can be set to 0.

[0157] In some embodiments, after decoding the value of the first syntax element, the method can further include: determining the value of k according to the value of the first syntax element.

[0158] That is, in the embodiments of the present application, if the value of flag_k is 0, it can be determined that the k transform layers of the current point cloud are not allowed to be skip decoded; and if the value of flag_k is greater than 0, it can be determined that the k transform layers of the current point cloud are allowed to be skip decoded, and at this time the value of k is related to the size of the first value. Exemplarily, if the value of flag_k is 1, it can be determined that 1 transform layer of the current point cloud is allowed to be skip decoded; if the value of flag_k is 2, it can be determined that 2 transform layers of the current point cloud are allowed to be skip decoded; if the value of flag_k is 3, it can be determined that 3 transform layers of the current point cloud are allowed to be skip decoded; and if the value of flag_k is 4, it can be determined that 4 transform layers of the current point cloud are allowed to be skip decoded, which is not limited here.

[0159] In the embodiments of the present application, the bitstream can include a geometry bitstream and an attribute bitstream. In the embodiments of the present application, the bitstream refers to the attribute bitstream unless otherwise specified. For the attribute bitstream, the attribute bitstream can include an attribute parameter set (APS) unit, a coefficients unit, a prediction mode (predMode) unit, and the like. In some embodiments, parsing a first syntax element in the bitstream can include: parsing an attribute parameter set unit in the bitstream, and determining a value of the first syntax element.

[0160] In the embodiments of the present application, the first syntax element as a high-level syntax element can be placed in an attribute parameter set (APS) unit. That is, when parsing the bitstream, the first syntax element can be obtained from the APS unit in the bitstream.

[0161] S1302, when the first syntax element indicates that the k transform layers of the current point cloud allow skip decoding, parsing a second syntax element of a current transform layer in the k transform layers in the bitstream; wherein k is an integer greater than zero.

[0162] It can be understood that in the embodiments of the present application, the current point cloud is at a slice level, and the RAHT transform is performed on the points in the slice. In some embodiments, the method can further include: layering the points in the current point cloud to determine a plurality of transform layers and a root node corresponding to the current point cloud.

[0163] It should be noted that in the embodiments of the present application, the points in the current point cloud can be layered based on an octree structure to obtain a plurality of transform layers. The plurality of transform layers include at least k transform layers. For example, the points in the slice are layered based on the octree structure, and then the RAHT transform is performed based on the layered octree structure. Specifically, the RAHT transform of each layer is performed from the root node to the child node in a top-down manner.

[0164] It should be further noted that in actual applications, in the last few layers of the current point cloud, the number of zero values of the transform coefficient residual values accounts for more than 95%. In order to improve the coding efficiency, in some embodiments, the method can further include: setting the k transform layers as the last k transform layers from the root node in a top-down manner in the plurality of transform layers.

[0165] That is, in the embodiments of the present application, the k transform layers can be set as the last k transform layers from the root node in a top-down manner in the plurality of transform layers. In this way, the decoding end can determine whether the last k transform layers of the current point cloud allow skip decoding according to the first syntax element. Generally, the maximum value of k is 4, but it is not limited specifically.

[0166] It can also be understood that, in the embodiments of the present application, if the k transform layers of the current point cloud allow skip decoding, a second syntax element in the code stream can also be parsed. Here, for the k transform layers, there are k second syntax elements, that is, there is one second syntax element for each of the k transform layers, and each second syntax element is used to indicate whether the corresponding transform layer uses the skip decoding technology.

[0167] In addition, in the embodiments of the present application, the current transform layer can be any one of the k transform layers. Taking the current transform layer as an example, the second syntax element is used to indicate whether the current transform layer uses the skip decoding technology. In some embodiments, the method can further include: if the value of the second syntax element is a third value, determining that the second syntax element indicates that the current transform layer uses the skip decoding technology; and if the value of the second syntax element is a fourth value, determining that the second syntax element indicates that the current transform layer does not use the skip decoding technology.

[0168] It should be noted that, in the embodiments of the present application, the second syntax element can be represented by flag_skip. The third value is different from the fourth value. For example, 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; but this is not limited.

[0169] It should also be noted that, in the embodiments of the present application, assuming that the third value is 1 and the fourth value is 0, when the value of the first syntax element is greater than 0, it indicates that the k transform layers of the current point cloud allow skip decoding, at this time, the value of flag_skip needs to be parsed for each of the k transform layers. For example, taking the current transform layer as an example, if the value of the flag_skip corresponding to the current transform layer is 1, it indicates that the current transform layer uses the skip decoding technology, at this time, one or more AC coefficient residual values of the current transform layer are no longer parsed; otherwise, if the value of the flag_skip corresponding to the current transform layer is 0, it indicates that the current transform layer does not use the skip decoding technology, at this time, one or more AC coefficient residual values of the current transform layer need to be parsed.

[0170] S1303, when the second syntax element indicates that the current transform layer uses the skip decoding technology, determining that one or more AC coefficient residual values of the current transform layer are preset values.

[0171] It should be noted that in the embodiments of the present application, if the value of the flag_skip corresponding to the current transform layer is 1, that is, the current transform layer uses the skip decoding technology, the one or more AC coefficient residual values of the current transform layer are no longer parsed, and the one or more AC coefficient residual values of the current transform layer are directly determined as the preset value, so that the code rate can be saved.

[0172] It should be further noted that in the embodiments of the present application, the preset value can be set as 0. In this way, if the current transform layer uses the skip decoding technology, it can be determined that the one or more AC coefficient residual values of the current transform layer are recovered according to the value 0.

[0173] In some embodiments, determining the one or more AC coefficient residual values of the current transform layer as the preset value can include determining that all the AC coefficient residual values of the current transform layer are the preset value.

[0174] It should be further noted that in the embodiments of the present application, if the current transform layer uses the skip decoding technology, it can be determined that all the AC coefficient residual values of the current transform layer are the preset value. That is, the decoding end no longer parses the code stream, and recovers all the AC coefficient residual values of the current transform layer according to the value 0, so that the code rate can be further saved.

[0175] S1304, determining one or more AC coefficient reconstructed values of the current transform layer according to the one or more AC coefficient residual values of the current transform layer.

[0176] It should be noted that in the embodiments of the present application, after determining the one or more AC coefficient residual values of the current transform layer, the one or more AC coefficient reconstructed values of the current transform layer can be further determined. In some embodiments, determining the one or more AC coefficient reconstructed values of the current transform layer according to the one or more AC coefficient residual values of the current transform layer can include determining one or more AC coefficient prediction values of the current transform layer, and determining the one or more AC coefficient reconstructed values of the current transform layer according to the one or more AC coefficient prediction values of the current transform layer and the one or more AC coefficient residual values of the current transform layer.

[0177] It can be understood that in the embodiments of the present application, the one or more AC coefficient prediction values of the current transform layer also need to be determined. In some embodiments, referring to FIG. 14, the method can include:

[0178] S1401, parsing a layer prediction mode of the current transform layer in the code stream.

[0179] S1402, performing attribute prediction on the current transform layer according to the layer prediction mode, and determining one or more attribute prediction values of the current transform layer.

[0180] S1403. Region adaptive hierarchical transform is performed on the one or more attribute prediction values of the current transform layer to determine one or more AC coefficient prediction values of the current transform layer.

[0181] It should be noted that for each of the plurality of transform layers, the layer prediction mode of each of the plurality of transform layers in the bitstream is parsed, and then attribute prediction is performed on each of the plurality of transform layers according to the layer prediction mode to determine one or more attribute prediction values of each of the plurality of transform layers; and then RAHT transform is performed on the one or more attribute prediction values of each of the plurality of transform layers to obtain one or more AC coefficient prediction values of each of the plurality of transform layers.

[0182] It should be further noted that the layer prediction mode can be one of OrgCodingMethod, Inter-layerCodingMethod, and Intra-layerCodingMethod. In the embodiments of the present application, the layer prediction mode of the current transform layer in the bitstream is parsed, for example, OrgCodingMethod, Inter-layerCodingMethod, or Intra-layerCodingMethod, and then attribute prediction is performed on the current transform layer according to the layer prediction mode to determine one or more attribute prediction values of the current transform layer.

[0183] In some embodiments, the attribute prediction performed on the current transform layer according to the layer prediction mode to determine one or more attribute prediction values of the current transform layer can include: determining a position of the current transform layer in the plurality of transform layers corresponding to the current point cloud; determining a prediction mode of the current transform layer according to the layer prediction mode and the position of the current transform layer; and performing attribute prediction on the current transform layer according to the prediction mode to determine one or more attribute prediction values of the current transform layer.

[0184] In the embodiments of the present application, the prediction mode is one of Intra, Inter, Average, and Null. The Average prediction can be a weighted average of an Intra prediction value obtained by Intra prediction and an Inter prediction value obtained by Inter prediction, as shown in the foregoing formula (4).

[0185] In the embodiments of the present application, based on the plurality of transform layers of octree division, the plurality of transform layers can be divided from the root node upwards as follows: upper layer, middle layer and lower layer. The upper layer is defined as the first 3 layers divided from the root node downwards, the lower layer is defined as the last 2 layers from the leaf node upwards, and the rest of the layers are defined as the middle layer. In addition, the lower layer can be further divided into the leaf node layer and the second last layer; the middle layer can be further divided into the third last layer and other middle layers. That is, the position of the current transform layer can be the upper layer, or the middle layer (such as the third last layer and other middle layers), or the lower layer (such as the leaf node layer and the second last layer). It should be noted that the leaf node layer is the first layer, the layer above the leaf node is the second last layer, and so on.

[0186] In a possible implementation, as shown in Table 1, according to the layer prediction mode and the position of the current transform layer, the prediction mode of the current transform layer can be determined, and the following is an illustrative description of two positions of the current transform layer:

[0187] If the position of the current transform layer is the leaf node layer in the lower layer, the average prediction is disabled, and in this case, there are only two choices for the parsed layer prediction mode: OrgCodingMethod and Inter-layerCodingMethod. If the parsed layer prediction mode indicates the selection of OrgCodingMethod, the attribute prediction of the current transform layer is first performed according to the intra prediction mode, and if the intra prediction value is not 0, the intra prediction is adopted, otherwise the non-prediction is adopted, that is, Intra>Null. If the parsed layer prediction mode indicates the selection of Inter-layerCodingMethod, the attribute prediction of the current transform layer is first performed according to the inter prediction mode, and if the inter prediction value is not 0, the inter prediction is adopted; if the inter prediction does not exist or the inter prediction value is 0, it is determined whether the intra prediction value is 0, if the intra prediction value is not 0, the intra prediction is adopted, otherwise the non-prediction is adopted, that is, Inter>Intra>Null.

[0188] If the position of the current transform layer is the third layer from the bottom of the middle layer, the average prediction is enabled, and there are three choices for the parsed layer prediction mode: OrgCodingMethod, Inter-layerCodingMethod and Intra-layerCodingMethod. If the parsed layer prediction mode indicates the selection of OrgCodingMethod, the layer-in RDO selection is performed on the three prediction modes of average prediction, intra prediction and no prediction, and the prediction mode with the minimum cost result is selected as the prediction mode of the current transform layer, i.e. Inter, Intra, Null RDO selection. If the parsed layer prediction mode indicates the selection of Inter-layerCodingMethod, the average prediction value is calculated according to the inter prediction value and the intra prediction value, and if the average prediction value is not 0, the average prediction is used. If the average prediction value does not exist or the average prediction value is 0, it is determined whether the intra prediction value is 0, and if the intra prediction value is not 0, the intra prediction is used, otherwise the no prediction is used, i.e. Average>Intra>Null. If the parsed layer prediction mode indicates the selection of Intra-layerCodingMethod, the attribute prediction of the current transform layer is performed according to the intra prediction mode, and if the intra prediction value is not 0, it is determined that the intra prediction is used, otherwise the no prediction is used, i.e. Intra>Null.

[0189] In this way, after determining one or more attribute prediction values in the current transform layer, the corresponding AC coefficient prediction values can be determined based on the region adaptive hierarchical transform. The region adaptive hierarchical transform can be represented as T node The corresponding attribute transform formula is as follows:

[0190] In this way, after determining one or more attribute prediction values in the current transform layer according to the layer prediction mode, the region adaptive hierarchical transform can be performed on the one or more attribute prediction values in the current transform layer to determine one or more AC coefficient prediction values in the current transform layer. Then, the addition operation is performed on the one or more AC coefficient prediction values in the current transform layer and the one or more AC coefficient residual values in the current transform layer, and one or more AC coefficient reconstruction values in the current transform layer can be determined.

[0191] In some embodiments, the method can further include: parsing a third syntax element in the code stream; and performing the step of parsing the layer prediction mode of the current transform layer in the code stream when the third syntax element indicates that the current point cloud uses the layer prediction technology based on rate-distortion optimization.

[0192] In the embodiments of the present application, the third syntax element is used to indicate whether the current point cloud uses the layer prediction technology based on rate-distortion optimization, which can be denoted as flag_layer_rdo, and the third syntax element can also be referred to as the start identification bit of the layer RDO mode.

[0193] Here, the third syntax element and the first syntax element both belong to high-level syntax elements, and the third syntax element can be at the same level as the first syntax element, or the third syntax element can also be set at a level above the first syntax element. For example, the third syntax element can be at the same level as the syntax element aps.raht_enable_inter_intra_layer_RDO in the existing G-PCC, which is used to control whether to use the layer RDO technology, and is used to indicate whether the current point cloud starts the layer RDO skip decoding technology.

[0194] In some embodiments, the method can further include: if the third syntax element takes the third value, determining that the third syntax element indicates that the current point cloud uses the layer prediction technology based on rate-distortion optimization; and if the third syntax element takes the fourth value, determining that the third syntax element indicates that the current point cloud does not use the layer prediction technology based on rate-distortion optimization.

[0195] In the embodiments of the present application, the third value is different from the fourth value. For example, the third value can be set as 1, and the fourth value can be set as 0; or the third value can be set as 0, and the fourth value can be set as 1; or the third value can be set as true, and the fourth value can be set as false; or the third value can be set as false, and the fourth value can be set as true, without any limitation.

[0196] It should be further noted that in the embodiments of the present application, it is assumed that the third value is 1 and the fourth value is 0, and if the value of flag_layer_rdo is 1, it indicates that the current point cloud uses the layer prediction technology based on rate-distortion optimization, and then the layer prediction mode (for example, the layer prediction mode of the current transform layer) of each transform layer can be parsed, which is used to indicate which one of OrgCodingMethod, Inter-layerCodingMethod and Intra-layerCodingMethod is used for the current transform layer, and the attribute prediction of the current transform layer is performed according to the used layer prediction mode.

[0197] In some embodiments, parsing the third syntax element in the bitstream can include parsing an attribute parameter set unit in the bitstream, and determining the value of the third syntax element. That is, in the embodiments of the present application, the first syntax element and the third syntax element are both located in the attribute parameter set unit. In the attribute parameter set unit, not only the third syntax element flag_layer_rdo can be read, but also the first syntax element flag_k can be read. Exemplarily, as shown in Table 2, a schematic code stream structure of an attribute parameter set unit (APS) is provided.

[0198] Table 2

[0199] In some embodiments, in addition to including the attribute parameter set unit, the attribute bitstream can also include a prediction mode unit. In some embodiments, parsing the layer prediction mode of the current transform layer in the bitstream can include parsing the prediction mode unit in the bitstream, and determining the layer prediction mode of the current transform layer.

[0200] That is, in the embodiments of the present application, the layer prediction mode of the current transform layer is located in the prediction mode unit. Similarly, for the plurality of transform layers corresponding to the current point cloud, the layer prediction mode of each of the plurality of transform layers is located in the prediction mode unit. Exemplarily, the layer prediction modes of the plurality of transform layers can be represented by layer_0, layer_1, layer_2, …, layer_N respectively. Wherein, layer_0 represents the layer prediction mode of the leaf node layer, layer_1 represents the layer prediction mode of the second-to-last layer upward from the leaf node layer, layer_2 represents the layer prediction mode of the third-to-last layer upward from the leaf node layer, and so on, layer_N represents the layer prediction mode of the (N-1)th-to-last layer upward from the leaf node layer (i.e., the layer prediction mode of the first transform layer downward from the root node), and N is a positive integer.

[0201] In some embodiments, parsing the second syntax element of the current transform layer in the k transform layers in the bitstream can include parsing the prediction mode unit in the bitstream, and determining the value of the second syntax element of the current transform layer.

[0202] That is, in the embodiments of the present application, the second syntax element of the current transform layer is also located in the prediction mode unit. Similarly, for the k transform layers that allow skip decoding, each transform layer has a second syntax element, and the k second syntax elements corresponding to the k transform layers are also located in the prediction mode unit.

[0203] In some embodiments, the method can further include: when the current transform layer is a transform layer in the k transform layers, a field corresponding to the second syntax element of the current transform layer in the prediction mode unit in the bitstream is located after a field corresponding to the layer prediction mode of the current transform layer.

[0204] That is, in the embodiments of the present application, in the prediction mode unit of the attribute bitstream, taking the current transform layer as an example, the second syntax element flag_skip of the current transform layer is located after the field corresponding to the layer prediction mode. Exemplarily, it is assumed that the value of k is 3, i.e., the last three layers from the root node downwardly have the second syntax element flag_skip, i.e., the three layers of layer_0, layer_1 and layer_2 all need to parse the corresponding flag_skip after them. As shown in Table 3, a code stream structure of a prediction mode unit (predMode) is shown.

[0205] Table 3

[0206] It can also be understood that, in the embodiments of the present application, if the value of the second syntax element is 0, the current transform layer does not use the skip decoding technology. In some embodiments, referring to FIG. 15, after step S1302, the method can further include:

[0207] S1501, when the second syntax element indicates that the current transform layer does not use the skip decoding technology, parsing one or more AC coefficient residual values of the current transform layer in the bitstream.

[0208] S1502, determining one or more AC coefficient reconstructed values of the current transform layer according to the one or more AC coefficient residual values of the current transform layer.

[0209] In the embodiments of the present application, if the current transform layer does not use the skip decoding technology, it is necessary to parse one or more AC coefficient residual values of the current transform layer from the bitstream. Then, according to the one or more AC coefficient residual values of the current transform layer and the one or more AC coefficient prediction values of the current transform layer, one or more AC coefficient reconstructed values of the current transform layer can be determined.

[0210] In the embodiments of the present application, the one or more AC coefficient reconstructed values of the current transform layer can be determined by performing an addition operation according to the one or more AC coefficient residual values of the current transform layer and the one or more AC coefficient prediction values of the current transform layer.

[0211] In some embodiments, for other transform layers other than the k transform layers, the method can further include: parsing one or more AC coefficient residual values of the other transform layers other than the k transform layers from the bitstream; and determining one or more AC coefficient reconstructed values of the other transform layers other than the k transform layers according to the one or more AC coefficient residual values of the other transform layers other than the k transform layers.

[0212] It should be noted that in the embodiments of the present application, in addition to the attribute parameter set unit and the prediction mode unit, the attribute bitstream further includes a transform coefficient unit. In some embodiments, parsing one or more AC coefficient residual values of a current transform layer from the bitstream can include: parsing the transform coefficient unit in the bitstream to determine the one or more AC coefficient residual values of the current transform layer.

[0213] In some embodiments, parsing one or more AC coefficient residual values of other transform layers other than the k transform layers from the bitstream can include: parsing the transform coefficient unit in the bitstream to determine the one or more AC coefficient residual values of the other transform layers other than the k transform layers.

[0214] That is, in the embodiments of the present application, the AC coefficient residual values are located in the transform coefficient unit in the bitstream. In this way, if the current transform layer does not use the skip decoding technology, one or more AC coefficient residual values of the current transform layer need to be parsed from the transform coefficient unit, which can be represented by bits_0, bits_1, …, bits_n-1, … for example. Exemplarily, as shown in Table 4, an exemplary bitstream structure of the transform coefficient unit (coefficients) is shown.

[0215] Table 4

[0216] In this way, in the embodiments of the present application, the plurality of transform layers corresponding to the current point cloud can include the k transform layers and other transform layers other than the k transform layers. In this way, the AC coefficient reconstructed values of the k transform layers and the AC coefficient reconstructed values of the other transform layers can be further used to determine the reconstructed point cloud of the current point cloud.

[0217] In some embodiments, the method can further include: parsing a DC coefficient value of the root node from the bitstream.

[0218] It should be noted that in the embodiments 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 can further include: decoding the transform coefficient unit in the bitstream to determine the DC coefficient value of the root node.

[0219] It should be noted that in the embodiments of the present application, for the plurality of transform layers of the current point cloud, the direct current coefficient values can be directly passed to the next layer when performing the RAHT transform each time, but the alternating current coefficient values need to be calculated for the residual, and the alternating current coefficient residual values of each layer are quantized and entropy encoded. In addition, if there is only one point in a certain transform layer, the attribute value of the point can be directly passed to the next layer as the direct current coefficient value.

[0220] In some embodiments, the method can further include: determining a first parameter matrix according to the one or more alternating current coefficient residual values of the current transform layer; determining a second parameter matrix according to the one or more alternating current coefficient residual values of the current transform layer; determining one or more alternating current coefficient reconstruction values of the current transform layer according to the one or more alternating current coefficient residual values of the current transform layer and the one or more alternating current coefficient prediction values of the current transform layer; determining a third parameter matrix according to the direct current coefficient value of the root node and the one or more alternating current coefficient reconstruction values of the current transform layer.

[0221] Exemplarily, taking the dth transform layer as an example, the dth transform layer includes m nodes. Wherein, the first parameter matrix can be represented as The second parameter matrix can be represented as The third parameter matrix can be represented as In this way, the third parameter matrix is determined according to the first parameter matrix and the second parameter matrix of the current point cloud, which can specifically be: performing an addition operation on the first parameter matrix and the second parameter matrix to determine the third parameter matrix, which is specifically as follows:

[0222] In some embodiments, the method can further include: when the current transform layer is the first transform layer, parsing the direct current coefficient value of the root node in the code stream, and performing the region adaptive hierarchical inverse transform according to the direct current coefficient value of the root node and the one or more reconstructed attribute values of the current transform layer to obtain one or more reconstructed attribute values of the first transform layer; when the current transform layer is a non-first transform layer, determining one or more direct current coefficient values of the current transform layer, and performing the region adaptive hierarchical inverse transform according to the one or more direct current coefficient values of the current transform layer and the one or more alternating current coefficient reconstruction values of the current transform layer to obtain one or more reconstructed attribute values of the non-first transform layer.

[0223] It should be noted that in the embodiments of the present application, when the current transform layer is a non-first transform layer, determining one or more direct current coefficient values of the current transform layer can include: determining one or more reconstructed attribute values of the previous transform layer of the current transform layer; determining one or more direct current coefficient values of the current transform layer according to the one or more reconstructed attribute values of the previous transform layer.

[0224] That is, in the embodiments of the present application, the decoding process is still performed from top to bottom, and the DC coefficient value of the root node and the AC coefficient residual value of the first layer are first obtained, and the first layer of reconstructed attribute values is obtained by performing RAHT inverse transform. After determining the corresponding predicted AC value according to the layer prediction mode, the AC coefficient residual value of the first layer is first added to the AC coefficient prediction value to obtain the AC coefficient reconstructed value, and the obtained AC coefficient reconstructed value is added to the DC coefficient value of the root node to perform RAHT inverse transform to obtain the first layer of reconstructed attribute values. The obtained eight reconstructed attribute values can be used to calculate the DC coefficient values of the eight nodes of the second layer, and the AC coefficient reconstructed value of the second layer can be obtained by adding the decoded AC coefficient residual value of the second layer to the corresponding AC coefficient prediction value. The AC coefficient reconstructed value of the second layer is added to the DC coefficient value to perform RAHT inverse transform to obtain the third layer of reconstructed attribute values, and the process is repeated until all transform layers are decoded.

[0225] Exemplarily, still taking the dth transform layer as an example, the reconstructed attribute value of the dth transform layer can be represented as Region adaptive hierarchical inverse transform can be represented as T node -1 . The corresponding attribute inverse transform formula is as follows:

[0226] It can also be understood that in the embodiments of the present application, the second syntax element in the code stream can also be omitted. In some embodiments, the method can further include: when the first syntax element indicates that the k transform layers of the current point cloud allow skip decoding, parsing one or more AC coefficient residual values of the current transform layer in the code stream; and determining one or more AC coefficient reconstructed values of the current transform layer according to one or more AC coefficient prediction values of the current transform layer and the one or more AC coefficient residual values of the current transform layer.

[0227] In the embodiments of the present application, parsing one or more AC coefficient residual values of the current transform layer in the code stream can include: when the current transform layer uses the skip decoding technology, parsing one or more AC coefficient residual values of the current transform layer in the code stream as a preset value.

[0228] That is, in the embodiments of the present application, the flag_skip of the k transform layers after encoding can also be considered. Taking the current transform layer as an example, when the rate-distortion cost of determining that the current transform layer uses the skip decoding technology at the encoding end is small, one or more AC coefficient residual values of the current transform layer are all encoded as 0 values, at this time, the decoding end only needs to be decoded as usual, and one or more AC coefficient residual values of the current transform layer in the code stream are parsed, and at this time, one or more AC coefficient residual values of the current transform layer in the code stream are all 0 values.

[0229] In this case, the embodiment of the present application only needs to encode a high-level syntax flag_k for indicating whether to start the skip coding technology; but no longer encodes the second syntax element flag_skip of the k transform layers, and only needs to normally encode one or more AC coefficient residual values of the k transform layers (if the current transform layer uses the skip coding technology, 0 value is written in the code stream as the corresponding AC coefficient residual value).

[0230] It can also be understood that, in the embodiment of the present application, the corresponding syntax element can also be set according to different color components. In some embodiments, the method can further include: parsing a fourth syntax element of a current transform layer in the k transform layers in the code stream; determining one or more AC coefficient residual values of a to-be-processed component of the current transform layer as a preset value when the fourth syntax element indicates that the to-be-processed component of the current transform layer uses the skip decoding technology; and determining one or more AC coefficient reconstruction values of the to-be-processed component of the current transform layer according to the one or more AC coefficient residual values of the to-be-processed component of the current transform layer.

[0231] In the embodiment of the present application, determining one or more AC coefficient reconstruction values of the to-be-processed component of the current transform layer according to the one or more AC coefficient residual values of the to-be-processed component of the current transform layer can include: determining one or more AC coefficient prediction values of the to-be-processed component of the current transform layer; and determining one or more AC coefficient reconstruction values of the to-be-processed component of the current transform layer according to the one or more AC coefficient prediction values of the to-be-processed component of the current transform layer and the one or more AC coefficient residual values of the to-be-processed component of the current transform layer.

[0232] In the embodiment of the present application, the to-be-processed component can include at least one of a first color component, a second color component and a third color component. For example, the to-be-processed component can be the first color component (for example, Y component), in which case the fourth syntax element can be represented by flag_skip_Y; or the to-be-processed component can be the second color component (for example, U component), in which case the fourth syntax element can be represented by flag_skip_U; or the to-be-processed component can be the first color component (for example, V component), in which case the fourth syntax element can be represented by flag_skip_V; or the to-be-processed component can be a combination of the second color component and the third color component (for example, UV component joint), in which case the fourth syntax element can be represented by flag_skip_UV. In this way, the skip decoding usage of the current transform layer can be recorded according to the syntax elements of different components.

[0233] It should be noted that in the embodiments of the present application, since the non-zero coefficients of the Y component of each transform layer are 10 times more than the non-zero coefficients of the UV component, this will cause the gain of the Y component to be very small and the gain of the UV component to be larger when using the skip decoding technology. Therefore, in the color attribute of the dense point cloud, the transform coefficient residual skip decoding mode using the RAHT layer prediction mode can be extended to three channels at the same time, and at this time, three syntax elements flag_skip_Y, flag_skip_U and flag_skip_V can be set to record the use of skip decoding of each transform layer.

[0234] It should also be noted that in the embodiments of the present application, the method of independent judgment of the Y channel and joint judgment of the UV channel can also be extended to the transform coefficient residual skip decoding mode using the RAHT layer prediction mode, and at this time, two syntax elements flag_skip_Y and flag_skip_UV can be set to indicate the use of skip decoding of each channel of each transform layer.

[0235] Briefly, in the embodiments of the present application, the program of the decoding end is implemented as follows: first, the highest syntax element flag_k is parsed, if the value of flag_k is greater than 0, the syntax element flag_skip is parsed to indicate whether to use the skip decoding technology in the last k transform layers (layer <aps.flag_k) of the RAHT transform, if the value of the parsed flag_skip is 0, the AC coefficient residual value is decoded and recovered according to the original value; if the value of the parsed flag_skip is 1, the AC coefficient residual value is directly recovered according to the 0 value without decoding.

[0236] Exemplarily, the program of the decoding end is as follows:

[0237] The embodiment of the present application provides a decoding method, parsing a first syntax element in a code stream; when the first syntax element indicates that k transform layers of a current point cloud allow skip decoding, parsing a second syntax element of a current transform layer in the k transform layers in the code stream; wherein k is an integer greater than zero; when the second syntax element indicates that the current transform layer uses a skip decoding technology, determining one or more AC coefficient residual values of the current transform layer as preset values; and determining one or more AC coefficient reconstruction values of the current transform layer according to the one or more AC coefficient residual values of the current transform layer. In this way, when it is determined that the k transform layers of the current point cloud allow skip encoding, if the current transform layer uses the skip encoding technology for each transform layer (taking the current transform layer as an example) in the k transform layers, the one or more AC coefficient residual values of the current transform layer no longer need to be encoded and processed, and if the second syntax element is used to determine that the current transform layer uses the skip decoding technology at the decoding end, the one or more AC coefficient residual values of the current transform layer can be directly determined as the preset values, thereby effectively improving the phenomenon that too many 0 values appear in the AC coefficient residual of the last several layers in the RAHT transform, avoiding code stream waste, and improving the encoding and decoding efficiency. Moreover, the second syntax element is used to determine which layers in the k transform layers use the skip encoding technology, and the quality of the reconstructed point cloud at the average code rate can be enhanced at the decoding end, and the encoding and decoding performance of the point cloud can be improved.

[0238] In another embodiment of the present application, Fig. 16 is a flowchart of an encoding method provided by the embodiment of the present application. As shown in Fig. 16, the method can include the following steps.

[0239] S1601, when k transform layers of a current point cloud allow skip encoding, determining whether a current transform layer in the k transform layers uses a skip encoding technology; wherein k is an integer greater than zero.

[0240] It should be noted that in the embodiment of the present application, the method is applied to a point cloud encoder (which can be referred to as an "encoder" for short). Here, a point cloud encoding method is mainly provided, more specifically, a transform coefficient residual skip encoding scheme for a RAHT layer prediction mode, which can improve the phenomenon that too many 0 values appear in the AC coefficient residual of the last several layers in the RAHT transform.

[0241] It should be noted that in the embodiments of the present application, some indication information in the form of syntax elements or flag can be written in the code stream. In this way, the decoding end can determine whether the k transform layers of the current point cloud allow skip coding or whether the current transform layer in the k transform layers uses the skip coding technology by parsing the code stream. Exemplarily, a first syntax element can be used to indicate whether the k transform layers of the current point cloud allow skip coding, and a second syntax element can be used to indicate whether the current transform layer in the k transform layers uses the skip coding technology.

[0242] It can be understood that in the embodiments of the present application, the current point cloud is at the slice level, and here the RAHT transform is performed on the points in the slice. In some embodiments, the method can further include: dividing the points in the current point cloud into layers, determining a plurality of transform layers and a root node corresponding to the current point cloud.

[0243] It should be noted that in the embodiments of the present application, the points in the current point cloud can be divided into layers based on the octree structure to obtain a plurality of transform layers. The plurality of transform layers at least include k transform layers. Exemplarily, the points in the slice are divided into layers based on the octree structure, and then the RAHT transform is performed based on the divided octree structure, specifically, the RAHT transform of each layer is performed from the root node to the child node from top to bottom.

[0244] It should be further noted that in actual applications, in the last few layers of the current point cloud, the number of 0 values of the transform coefficient residual values accounts for more than 95%. In order to improve the coding efficiency, in some embodiments, the method can further include: setting the k transform layers as the last k transform layers from the root node upwards in the plurality of transform layers.

[0245] That is, in the embodiments of the present application, the k transform layers can be set as the last k transform layers from the root node upwards in the plurality of transform layers. In this way, the first syntax element can be set by the encoding end to determine whether the last k transform layers of the current point cloud allow skip coding. Generally, the maximum value of k is 4, but it is not specifically limited.

[0246] In some embodiments, the method can further include: determining the value of the first syntax element; and encoding the value of the first syntax element, and writing the obtained coded bits into the code stream.

[0247] In the embodiments of the present application, the first syntax element can be represented by flag_k, and the first syntax element is used to indicate whether the k transform layers of the current point cloud allow skip coding. The value of the first syntax element is related to the value of k. In some embodiments, the value of the first syntax element can be set to be equal to the value of k.

[0248] In some embodiments, if the k transform layers of the current point cloud allow skip coding, the value of the first syntax element is determined as a first value; if the k transform layers of the previous point cloud do not allow skip coding, the value of the first syntax element is determined as a second value.

[0249] It should be noted that in the embodiments of the present application, the first value and the second value are different. For example, the first value can be set as an integer greater than zero, such as 1, 2, 3, …, etc.; and the second value can be set as 0.

[0250] It should also be noted that in the embodiments of the present application, for the encoding end, the value of k is self-defined, and according to the value of k, it can be determined whether the k transform layers of the current point cloud allow skip coding. If the value of k is equal to 0, then the multiple transform layers of the current point cloud do not allow skip coding, and at this time the second value is 0; if the value of k is greater than 0, then the k transform layers of the current point cloud allow skip coding, and at this time the size of the first value is related to the value of k. For example, if 1 transform layer of the current point cloud allows skip coding, then the first value can be determined as 1, i.e. the value of flag_k is 1; if 2 transform layers of the current point cloud allow skip coding, then the first value can be determined as 2, i.e. the value of flag_k is 2; if 3 transform layers of the current point cloud allow skip coding, then the first value can be determined as 3, i.e. the value of flag_k is 3; if 4 transform layers of the current point cloud allow skip coding, then the first value can be determined as 4, i.e. the value of flag_k is 4, and here the value of k is not limited.

[0251] It can also be understood that in the embodiments of the present application, if the k transform layers of the current point cloud allow skip coding, then the encoding end can also set the second syntax element to determine whether the current transform layer in the k transform layers uses the skip coding technology. Among them, for the k transform layers, there are k second syntax elements, i.e. each of the k transform layers corresponds to a second syntax element, and each second syntax element is used to indicate whether the corresponding transform layer uses the skip coding technology.

[0252] In some embodiments, the method can further include: determining the value of the second syntax element; and encoding the value of the second syntax element, and writing the obtained coded bits into the code stream.

[0253] It should be noted that in the embodiments of the present application, the second syntax element can be denoted as flag_skip, and the second syntax element is used to indicate whether the current transform layer in the k transform layers uses the skip coding technology, so the second syntax element can also be called "skip coding flag". Wherein, the current transform layer can be any one of the k transform layers. Taking the current transform layer as an example, in some embodiments, the method can further include: if the current transform layer uses the skip coding technology, determining that the value of the second syntax element is a third value; if the current transform layer does not use the skip coding technology, determining that the value of the second syntax element is a fourth value.

[0254] It should also be noted that in the embodiments of the present application, the third value is different from the fourth value. For example, 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; but this is not limited.

[0255] It should also be noted that in the embodiments of the present application, assuming that the third value is 1 and the fourth value is 0, when the k transform layers of the current point cloud allow skip coding, it is necessary to determine whether to use the skip coding technology for each of the k transform layers. For example, taking the current transform layer as an example, if the current transform layer uses the skip coding technology, the value of the flag_skip corresponding to the current transform layer is 1, indicating that the one or more cross coefficient residual values of the current transform layer are not coded at this time; otherwise, if the current transform layer does not use the skip coding technology, the value of the flag_skip corresponding to the current transform layer is 0, indicating that the one or more cross coefficient residual values of the current transform layer need to be coded at this time.

[0256] It can also be understood that in the embodiments of the present application, for each of the k transform layers, taking the current transform layer as an example, the following two possible implementation modes are used to determine whether the current transform layer uses the skip coding technology.

[0257] In one possible implementation mode, referring to FIG. 17, for determining whether the current transform layer in the k transform layers uses the skip coding technology, the method can include:

[0258] S1701, determining a first generation value of coding one or more cross coefficient residual values of the current transform layer, and determining a second generation value of coding one or more cross coefficient residual values of the current transform layer according to a preset value.

[0259] S1702, if the first generation value is greater than the second generation value, it is determined that the current transform layer uses the skip coding technology.

[0260] S1703, if the first generation value is less than the second generation value, it is determined that the current transform layer does not use the skip coding technology.

[0261] It should be noted that in the embodiments of the present application, after the first generation value and the second generation value are determined, whether the current transform layer uses the skip coding technology can be determined according to the first generation value and the second generation value, or the value of the second syntax element can be determined according to the first generation value and the second generation value. Exemplarily, if the first generation value is greater than the second generation value, it can be determined that the current transform layer uses the skip coding technology, or the value of the second syntax element is determined to be the third value; if the first generation value is less than the second generation value, it can be determined that the current transform layer does not use the skip coding technology, or the value of the second syntax element is determined to be the fourth value.

[0262] It should also be noted that in the embodiments of the present application, the generation value here can be determined according to the cost result of rate-distortion optimization (RDO), or can be determined according to the cost result of sum of absolute difference (SAD), or can even be determined according to the cost result of sum of absolute transformed difference (SATD), but here is not limited in any way.

[0263] It can be understood that in the field of video coding, the code rate and distortion after coding are contradictory to each other. If a smaller distortion is wanted to obtain a higher quality of reconstructed video, the code rate of transmission needs to be increased. However, the code rate cannot be increased unlimitedly, and in some cases, the code rate needs to be reduced to ensure the fluency of video transmission. In order to better improve the coding efficiency, the code rate and distortion need to be considered comprehensively to find the compromise point of the two, so that the distortion is as small as possible under the condition of fixed code rate, which can be expressed by the formula as follows:

[0264] wherein D represents the distortion, R represents the code rate, and represents the coding condition parameter configuration, such as quantization step length. The formula (14) is a constrained optimization problem, which can be converted into the following form by using Lagrange multiplier:

[0265] wherein RDcost is the rate-distortion cost, and λ is the Lagrange multiplier. This is the rate-distortion optimization problem in the field of video coding.

[0266] In the embodiments of the present application, the coding efficiency can be improved by calculating the RDcost of the AC coefficient residual value of each transform layer of the last k transform layers of the current point cloud, comparing the rate-distortion cost of the selected layer prediction mode of the transform layer with the RDcost of the AC coefficient residual value of the transform layer, and determining whether to code the AC coefficient residual value of the transform layer.

[0267] In another possible implementation, referring to FIG. 18, for determining whether the current transform layer of the k transform layers uses the skip coding technique, the method can include the following steps.

[0268] S1801, determining a first distortion value of one or more AC coefficient residual values of the current transform layer not being coded, and determining a first code rate value of the one or more AC coefficient residual values of the current transform layer being coded.

[0269] S1802, determining a third generation value according to the first distortion value, the first code rate value and a first Lagrange multiplier.

[0270] S1803, if the third generation value is less than 0, determining that the current transform layer uses the skip coding technique.

[0271] S1804, if the third generation value is greater than 0, determining that the current transform layer does not use the skip coding technique.

[0272] It should be noted that in the embodiments of the present application, after the third generation value is determined, whether the current transform layer uses the skip coding technique can be determined according to the third generation value, or the value of the second syntax element can also be determined according to the third generation value. For example, if the third generation value is less than 0, it can be determined that the current transform layer uses the skip coding technique, or the value of the second syntax element is the third value; if the third generation value is greater than 0, it can be determined that the current transform layer does not use the skip coding technique, or the value of the second syntax element is the fourth value. In a specific embodiment, the third value is 1 and the fourth value is 0.

[0273] It should also be noted that in the embodiments of the present application, since the RDcost calculation in the foregoing implementation is not convenient, the method of calculating ΔRDcost can also be adopted. Taking the last layer as an example, the calculation formula is as follows: ΔD=AC n-m+1 2 +AC n-m+2 2 +…AC n 2 (16) ΔR=R org(17) ΔRDcost = ΔD - λ · ΔR (18)

[0274] where ΔD can be expressed by the square value of all AC coefficient residual values of the last layer, n is the number of points in the current point cloud (the total number of AC coefficients), m is the number of AC coefficient residual values of the last layer, R org is the bitstream consumption in the original layer optimal encoding scheme. At this time, according to the calculated ΔRDcost, if ΔRDcost is greater than 0, the second syntax element flag_skip of the current transform layer is set to 0; if ΔRDcost is less than 0, it indicates that the rate-distortion cost of the AC coefficient residual value of the current transform layer is smaller, and the current transform layer can be skip encoded, and the second syntax element flag_skip of the current transform layer is set to 1.

[0275] In the embodiment of the present application, for the first Lagrange multiplier λ, it adopts λ in the G-PCC original layer RDO scheme (consistent with the layer RDO calculation in Table 1), and the value is equal to the existing λ in the RDOQ technology in G-PCC. In the embodiment of the present application, the first Lagrange multiplier can also be optimized here, and the optimized Lagrange multiplier is determined as the second Lagrange multiplier. In some embodiments, the method can further include: determining the second Lagrange multiplier; and determining the third generation value according to the first distortion value, the first code rate value and the second Lagrange multiplier.

[0276] In some embodiments, determining the second Lagrange multiplier can include: determining a first offset factor; and optimizing the first Lagrange multiplier according to the first offset factor to determine the second Lagrange multiplier.

[0277] In the embodiment of the present application, the first offset factor can be represented by shift, and the calculation formula of the second Lagrange multiplier λ' is: λ' = shift × λ (19)

[0278] In the embodiment of the present application, the first offset factor is a constant. Alternatively, in the embodiment of the present application, determining the first offset factor can include: determining the first offset factor according to the quantization parameter of the current point cloud.

[0279] Here, the calculation formula of the first offset factor shift is as follows:

[0280] wherein c is a constant, and QP is a quantization step. The value of c is traversed, and the attribute compression performance of the test point cloud under the condition of C1 is selected for testing, to analyze and find the optimal interval of c. The search step is continuously narrowed, and the optimal value of the constant c is finally determined as 3.

[0281] Thus, after the first distortion value of the one or more AC coefficient residual values of the current transform layer not being encoded and the first code rate value of the one or more AC coefficient residual values of the current transform layer being encoded are determined, the third generation value ARDcost is determined according to the first distortion value, the first code rate value, and the second Lagrange multiplier λ'. The third generation value ARDcost is used to determine whether the current transform layer uses the skip coding technology. For example, if the third generation value ARDcost is less than 0, it is determined that the current transform layer uses the skip coding technology, and the value of the second syntax element flag_skip of the current transform layer is 1. If the third generation value ARDcost is greater than 0, it is determined that the current transform layer does not use the skip coding technology, and the value of the second syntax element flag_skip of the current transform layer is 0.

[0282] S8602, when the current transform layer uses the skip coding technology, the one or more AC coefficient residual values of the current transform layer are determined as preset values.

[0283] It should be noted that, in the embodiments of the present application, if the value of flag_skip corresponding to the current transform layer is 1, that is, the current transform layer uses the skip coding technology, the one or more AC coefficient residual values of the current transform layer are no longer encoded, and the one or more AC coefficient residual values of the current transform layer are directly determined as preset values, thereby saving the code rate.

[0284] It should be further noted that, in the embodiments of the present application, the preset values can be set to 0. Thus, if the current transform layer uses the skip coding technology, the one or more AC coefficient residual values of the current transform layer can be determined as 0, and the one or more AC coefficient residual values of the current transform layer can be recovered as 0 at the decoding end.

[0285] In some embodiments, determining the one or more AC coefficient residual values of the current transform layer as preset values can include determining that all AC coefficient residual values of the current transform layer are preset values.

[0286] It should be further noted that, in the embodiments of the present application, if the current transform layer uses the skip coding technology, all AC coefficient residual values of the current transform layer can be determined as preset values. That is, the encoding end no longer encodes all AC coefficient residual values of the current transform layer, and all AC coefficient residual values of the current transform layer are set to 0, thereby further saving the code rate.

[0287] S1603, when the current transform layer does not use the skip coding technology, determining one or more AC coefficient residual values of the current transform layer, and performing coding processing on the one or more AC coefficient residual values of the current transform layer, and writing the obtained coding bits into the code stream.

[0288] In the embodiments of the present application, when the current transform layer does not use the skip coding technology, determining one or more AC coefficient residual values of the current transform layer can include: determining one or more AC coefficient prediction values of the current transform layer; and determining the one or more AC coefficient residual values of the current transform layer according to the one or more AC coefficient initial values of the current transform layer and the one or more AC coefficient prediction values of the current transform layer.

[0289] In the embodiments of the present application, determining the one or more AC coefficient residual values of the current transform layer according to the one or more AC coefficient initial values of the current transform layer and the one or more AC coefficient prediction values of the current transform layer can be subtracting the one or more AC coefficient initial values of the current transform layer from the one or more AC coefficient prediction values of the current transform layer to determine the one or more AC coefficient residual values of the current transform layer.

[0290] It should be noted that in the embodiments of the present application, for each of the plurality of transform layers, the layer prediction mode of each of the transform layers in the code stream needs to be parsed, and then the attribute prediction of each of the transform layers can be performed according to the layer prediction mode to determine one or more attribute prediction values of each of the transform layers; and then the RAHT transform can be performed on the one or more attribute prediction values of each of the transform layers to obtain one or more AC coefficient prediction values of each of the transform layers.

[0291] In some embodiments, taking the current transform layer as an example, determining the one or more AC coefficient prediction values of the current transform layer can include: determining the layer prediction mode of the current transform layer; performing attribute prediction on the current transform layer according to the layer prediction mode to determine one or more attribute prediction values of the current transform layer; and performing region adaptive hierarchical transform on the one or more attribute prediction values of the current transform layer to determine the one or more AC coefficient prediction values of the current transform layer.

[0292] It should be noted that in the embodiments of the present application, the layer prediction mode can be one of OrgCodingMethod, Inter-layerCodingMethod and Intra-layerCodingMethod. Accordingly, in some embodiments, determining the layer prediction mode of the current transform layer can include: performing rate-distortion cost calculation on the current transform layer according to a plurality of candidate layer prediction modes, determining rate-distortion cost results corresponding to the plurality of candidate layer prediction modes; determining a minimum rate-distortion cost result according to the rate-distortion cost results corresponding to the plurality of candidate layer prediction modes, and determining the candidate layer prediction mode corresponding to the minimum rate-distortion cost result as the layer prediction mode of the current transform layer.

[0293] It should also be noted that in the embodiments of the present application, the rate-distortion cost calculation can be performed on a plurality of layer prediction modes (such as OrgCodingMethod, Inter-layerCodingMethod and Intra-layerCodingMethod) of the current transform layer, and the layer prediction mode of the current transform layer is determined according to the rate-distortion cost results, and then the attribute prediction of the current transform layer is performed according to the layer prediction mode to determine one or more attribute prediction values of the current transform layer. It should be noted that the layer prediction mode determined according to the rate-distortion cost results can also be referred to as "optimal layer prediction mode" or "best layer prediction mode".

[0294] It should also be noted that in the embodiments of the present application, after the layer prediction mode of the current transform layer is determined, the attribute prediction of the current transform layer is performed according to the layer prediction mode to determine one or more attribute prediction values of the current transform layer, which can include: determining the position of the current transform layer in the plurality of transform layers corresponding to the current point cloud; determining the prediction mode of the current transform layer according to the layer prediction mode and the position of the current transform layer; and performing attribute prediction on the current transform layer according to the prediction mode to determine one or more attribute prediction values of the current transform layer.

[0295] In the embodiments of the present application, the prediction mode is one of Intra, Inter, Average and Null. The Average can be a weighted average of the Intra prediction value obtained by Intra prediction and the Inter prediction value obtained by Inter prediction, as shown in the foregoing formula (4).

[0296] In the embodiments of the present application, based on the plurality of transform layers of octree division, the plurality of transform layers can be divided from the root node upwards as follows: upper layer, middle layer and lower layer. The upper layer is defined as the first 3 layers divided from the root node downwards, the lower layer is defined as the last 2 layers from the leaf node upwards, and the rest of the layers are defined as the middle layer. In addition, the lower layer can be further divided into the leaf node layer and the second last layer; the middle layer can be further divided into the third last layer and other middle layers. That is, the position of the current transform layer can be the upper layer, or the middle layer (such as the third last layer and other middle layers), or the lower layer (such as the leaf node layer and the second last layer). It should be noted that the leaf node layer is the first layer, the layer above the leaf node is the second last layer, and so on.

[0297] In a possible implementation, as shown in Table 1, according to the layer prediction mode and the position of the current transform layer, the prediction method of the current transform layer can be determined, and the following is an illustrative description of two positions of the current transform layer:

[0298] If the position of the current transform layer is the leaf node layer in the lower layer, the average prediction is disabled, and in this case, the coding layer prediction mode has only two choices: OrgCodingMethod and Inter-layerCodingMethod. If the coding layer prediction mode indicates the selection of OrgCodingMethod, the attribute prediction of the current transform layer is performed according to the intra prediction mode first, and if the intra prediction value is not 0, the intra prediction is adopted, otherwise the non-prediction is adopted, that is, Intra>Null. If the coding layer prediction mode indicates the selection of Inter-layerCodingMethod, the attribute prediction of the current transform layer is performed according to the inter prediction mode first, and if the inter prediction value is not 0, the inter prediction is adopted; if the inter prediction does not exist or the inter prediction value is 0, it is determined whether the intra prediction value is 0, if the intra prediction value is not 0, the intra prediction is adopted, otherwise the non-prediction is adopted, that is, Inter>Intra>Null.

[0299] If the position of the current transform layer is the third layer from the bottom, the average prediction is enabled, and there are three choices for the coding layer prediction mode: OrgCodingMethod, Inter-layerCodingMethod and Intra-layerCodingMethod. If the coding layer prediction mode indicates the selection of OrgCodingMethod, the three prediction modes of average prediction, intra prediction and no prediction are selected by the layer RDO, and the prediction mode with the minimum cost is selected as the prediction mode of the current transform layer, i.e. Inter, Intra, Null RDO selection. If the coding layer prediction mode indicates the selection of Inter-layerCodingMethod, the average prediction value is calculated according to the inter prediction value and the intra prediction value, and if the average prediction value is not 0, the average prediction is used. If the average prediction value does not exist or the average prediction value is 0, it is determined whether the intra prediction value is 0, and if the intra prediction value is not 0, the intra prediction is used, otherwise the no prediction is used, i.e. Average > Intra > Null. If the coding layer prediction mode indicates the selection of Intra-layerCodingMethod, the attribute prediction of the current transform layer is performed according to the intra prediction mode, and if the intra prediction value is not 0, it is determined that the intra prediction is used, otherwise the no prediction is used, i.e. Intra > Null.

[0300] In some embodiments, the method can further include determining one or more attribute initial values in the current transform layer; performing region adaptive hierarchical transformation on the one or more attribute initial values in the current transform layer to determine one or more AC coefficient initial values and one or more DC coefficient values of the current transform layer.

[0301] It should be noted that when the current transform layer is the first transform layer, the method can further include determining a DC coefficient value of the root node; performing encoding processing on the DC coefficient value of the root node, and writing the obtained encoding bits into the code stream.

[0302] It should be further noted that in the embodiments of the present application, the DC coefficient can also be referred to as the low frequency coefficient, and represented by DC coefficient; and the AC coefficient can also be referred to as the high frequency coefficient, and represented by AC coefficient. For example, taking the dth transform layer as an example, the dth transform layer includes m nodes. The region adaptive hierarchical transformation can be represented by T node For the attribute initial value, the corresponding attribute transformation formula is as follows:

[0303] In the embodiments of the present application, subtraction operation is performed on the one or more AC coefficient initial values of the current transform layer and the one or more AC coefficient prediction values of the current transform layer to determine one or more AC coefficient residual values of the current transform layer. For example, still taking the dth transform layer as an example, the dth transform layer includes m nodes. For the AC coefficient prediction residual of the node in the current transform layer, subtraction operation can be performed on the AC coefficient initial value and the AC coefficient prediction value to obtain the AC coefficient prediction residual, which is specifically shown as follows:

[0304] It should be noted that in the embodiments of the present application, for the plurality of transform layers of the current point cloud, the DC coefficient value can be directly transmitted to the next layer when performing the RAHT transform each time, but the AC coefficient value needs to be calculated for residual, and the AC coefficient residual value of each layer needs to be quantized and entropy encoded. In addition, if a transform layer has only one point, the attribute value of the point can be directly transmitted to the next layer as the DC coefficient value. In this process, only the DC coefficient value of the root node needs to be written into the code stream.

[0305] In some embodiments, the method can further include: determining a value of the third syntax element; and performing encoding processing on the value of the third syntax element, and writing the obtained coded bits into the code stream.

[0306] In the embodiments of the present application, the third syntax element is used to indicate whether the current point cloud uses the layer prediction technology based on rate-distortion optimization, which can be represented as flag_layer_rdo, and therefore the third syntax element can also be referred to as the opening identification bit of the layer RDO mode. Here, the third syntax element and the first syntax element both belong to high-level syntax elements, and the third syntax element can be at the same level as the first syntax element, or the third syntax element can also be set at a level above the level of the first syntax element. For example, the third syntax element can be at the same level as the syntax element aps.raht_enable_inter_intra_layer_RDO in the existing G-PCC, which is used to control whether to use the layer RDO technology, and is used to indicate whether the current point cloud opens the layer RDO skip coding technology.

[0307] In some embodiments, the method can further include: if the current point cloud uses the layer prediction technology based on rate-distortion optimization, determining that the value of the third syntax element is a third value; and if the current point cloud does not use the layer prediction technology based on rate-distortion optimization, determining that the value of the third syntax element is a fourth value.

[0308] In the embodiments of the present application, the third value is different from the fourth value. For example, the third value can be set as 1, and the fourth value can be set as 0; or the third value can be set as 0, and the fourth value can be set as 1; or the third value can be set as true, and the fourth value can be set as false; or the third value can be set as false, and the fourth value can be set as true, without any limitation.

[0309] It should be further noted that, in the embodiments of the present application, assuming that the third value is 1 and the fourth value is 0, if the current point cloud does not use the layer prediction technology based on rate-distortion optimization, the value of flag_layer_rdo written in the bitstream can be 0; otherwise, if the current point cloud uses the layer prediction technology based on rate-distortion optimization, the value of flag_layer_rdo written in the bitstream can be 1, and at this time, the layer prediction mode (for example, the layer prediction mode of the current transform layer) of each transform layer can be further written in the bitstream to indicate which one of OrgCodingMethod, Inter-layerCodingMethod and Intra-layerCodingMethod is used for the current transform layer, and the attribute of the current transform layer is predicted according to the used layer prediction mode.

[0310] It can also be understood that, in the embodiments of the present application, the second syntax element in the bitstream can also be omitted here. In some embodiments, when the current transform layer uses the skip coding technology, the method can further include: encoding one or more AC coefficient residual values of the current transform layer according to a preset value, and writing the obtained encoding bits into the bitstream.

[0311] That is, in the embodiments of the present application, the flag_skip of the last k transform layers can also be considered not to be encoded. Taking the current transform layer as an example, when the rate-distortion cost of the current transform layer using the skip coding technology is determined at the encoding end, all one or more AC coefficient residual values of the current transform layer are encoded as 0 values, and the subsequent decoding end only needs to be decoded normally, but at this time, the one or more AC coefficient residual values of the current transform layer in the bitstream are all 0 values.

[0312] In this case, the embodiments of the present application only need to encode a high-level syntax flag_k to indicate whether to start the skip coding technology; but the second syntax element flag_skip of the k transform layers is no longer encoded, and at this time, only one or more AC coefficient residual values of the k transform layers need to be normally encoded (if the current transform layer uses the skip coding technology, 0 values are written in the bitstream as the corresponding AC coefficient residual values).

[0313] It can also be understood that in the embodiments of the present application, corresponding syntax elements can also be set according to different color components. In some embodiments, the method can further include: determining a value of a fourth syntax element; and performing encoding processing on the value of the fourth syntax element, and writing the obtained coded bits into a bitstream.

[0314] In the embodiments of the present application, the fourth syntax element can be used to indicate whether the to-be-processed component of the current transform layer uses the skip coding technology. The to-be-processed component includes at least one of the first color component, the second color component and the third color component.

[0315] For example, the to-be-processed component can be the first color component (for example, the Y component), in which case the fourth syntax element can be represented by flag_skip_Y; or the to-be-processed component can be the second color component (for example, the U component), in which case the fourth syntax element can be represented by flag_skip_U; or the to-be-processed component can be the first color component (for example, the V component), in which case the fourth syntax element can be represented by flag_skip_V; or the to-be-processed component can be a combination of the second color component and the third color component (for example, the UV component joint), in which case the fourth syntax element can be represented by flag_skip_UV. In this way, the use of the skip coding technology of the current transform layer can be recorded according to the syntax elements of different components.

[0316] It should be noted that in the embodiments of the present application, since the non-zero coefficients of the Y component of each transform layer are 10 times more than the non-zero coefficients of the UV component, this will cause the gain of the Y component to be very small when using the skip coding technology, and the gain of the UV component to be large. Therefore, in the color attribute of the dense point cloud, the transform coefficient residual skip coding mode using the RAHT layer prediction mode can be extended to three channels at the same time, in which case three syntax elements flag_skip_Y, flag_skip_U and flag_skip_V can be set at the same time to record the use of the skip coding of each transform layer.

[0317] It should also be noted that in the embodiments of the present application, the method of independent judgment of the Y channel and joint judgment of the UV channel can also be extended to the transform coefficient residual skip coding mode using the RAHT layer prediction mode, in which case two syntax elements flag_skip_Y and flag_skip_UV can be set at the same time to indicate the use of the skip coding of each channel of each transform layer.

[0318] In yet another embodiment of the present application, the present embodiment further provides a code stream, wherein the code stream is generated by bit coding according to the encoding method as described in the present embodiment; wherein the to-be-encoded information in the encoding method comprises at least one of the following: the value of the first syntax element, the value of the second syntax element, the value of the third syntax element, the value of the fourth syntax element, the AC coefficient residual value of the plurality of transform layers corresponding to the current point cloud, the DC coefficient value of the root node, the layer prediction mode of each of the plurality of transform layers, and the preset value of the one or more AC coefficient residual values of the current transform layer in the k transform layers.

[0319] In the present embodiment, the plurality of transform layers comprises k transform layers, and k is an integer greater than zero; the first syntax element is used to indicate whether the k transform layers of the current point cloud are allowed to be skip coded; the second syntax element is used to indicate whether the current transform layer in the k transform layers uses the skip coding technology; the third syntax element is used to indicate whether the current point cloud uses the layer prediction technology based on rate-distortion optimization; and the fourth syntax element is used to indicate whether the to-be-processed component of the current transform layer uses the skip coding technology.

[0320] In some embodiments, the code stream can comprise an attribute parameter set unit, a prediction mode unit and a transform coefficient unit, wherein:

[0321] The attribute parameter set unit is configured to write the value of the first syntax element and the value of the third syntax element;

[0322] The prediction mode unit is configured to write the layer prediction mode of each of the plurality of transform layers, and the value of the second syntax element and / or the value of the fourth syntax element of each of the k transform layers;

[0323] The transform coefficient unit is configured to write at least one of the following: the AC coefficient residual value of the plurality of transform layers corresponding to the current point cloud, the DC coefficient value of the root node, and the preset value of the one or more AC coefficient residual values of the current transform layer in the k transform layers.

[0324] For example, FIG. 19 is a schematic diagram of a composition structure of an original code stream structure. As shown in FIG. 19, in the attribute parameter set unit (APS), only the third syntax element flag_layer_rdo is included here; in the transform coefficient unit (coefficients), assuming that the current point cloud has n points, there can be 3n AC coefficient residual values, such as bits_0, bits_1, …, bits_n-1, …, bits_3n-1; in the prediction mode unit (predMode), layer_0, layer_1, …, layer_N are included here.

[0325] In the original code stream structure, first, the flag_layer_rdo of the layer RDO mode is read in the APS, if the value is 1, the layer RDO prediction mode is used, then the predMode of each transform layer is read, which is used to indicate which one of the OrgCodingMethod, Inter-layerCodingMethod and Intra-layerCodingMethod is used by the decoder, and then the AC coefficient residual value of each transform layer is read from the coefficients.

[0326] Exemplarily, FIG. 20 is a schematic diagram of a composition structure of a code stream structure provided by the embodiment of the application. As shown in FIG. 20, in the attribute parameter set unit (APS), the third syntax element flag_layer_rdo and the first syntax element flag_k are included here, in the transform coefficient unit (coefficients), since the k transform layers of the current point cloud allow skip coding, that is, the AC coefficient residual value of some transform layers is no longer written into the code stream, so that the number of AC coefficient residual values in the code stream is unknown, such as bits_0, bits_1, …, bits_n-1, …, in the prediction mode unit (predMode), the layer_0, layer_1, …, layer_N are included here, and it is assumed that the value of k is 2, that is, the last two layers from the root node downward have the second syntax element flag_skip, that is, the layer_0 and layer_1 both have the flag_skip after them.

[0327] That is, the code stream structure of the embodiment of the application also needs to read the first syntax element flag_k in the APS, the value of 0 indicates that the AC coefficient residual skip mode of the transform layer is not started, and the values of 1, 2, 3 and 4 indicate that the last 1, 2, 3 and 4 layers start the AC coefficient skip mode of the transform layer, and the highest value of k can be 4. Taking k=2 as an example, if k=2 is solved in the APS, then the flag_skip of each layer is solved from the last two layers in the predMode, as shown in FIG. 20, the layer_0 is the layer prediction mode flag bit of the last layer (that is, the selected optimal layer prediction mode), the layer_1 is the layer prediction mode flag bit of the second last layer (that is, the selected optimal layer prediction mode), and the following flag_skip is the skip usage of the corresponding transform layer, if the value is 1, the skip skip coding is used, and the AC coefficient residual of the transform layer is no longer coded; if the value is 0, the skip skip coding is not used, and the AC coefficient residual of the transform layer needs to be written into the code stream in the coefficients.

[0328] The embodiment of the present application provides a coding method, when k transform layers of a current point cloud allow skip coding, determining whether a current transform layer in the k transform layers uses a skip coding technology; wherein k is an integer greater than zero; when the current transform layer uses the skip coding technology, determining one or more AC coefficient residual values of the current transform layer as preset values; when the current transform layer does not use the skip coding technology, determining one or more AC coefficient residual values of the current transform layer, and performing coding processing on the one or more AC coefficient residual values of the current transform layer, and writing obtained coding bits into a bitstream. In this way, when the k transform layers of the current point cloud allow skip coding, at this time, for each transform layer (taking the current transform layer as an example) in the k transform layers, if the current transform layer uses the skip coding technology, then the one or more AC coefficient residual values of the current transform layer no longer need to be coded and processed, and if the decoding end determines that the current transform layer uses the skip decoding technology according to a second syntax element, then the one or more AC coefficient residual values of the current transform layer can be directly determined as preset values, thereby effectively improving the phenomenon that too many 0 values exist in the coding AC coefficient residuals of the last several layers in the RAHT transform, avoiding code stream waste, and improving coding and decoding efficiency. Moreover, the second syntax element is used to determine which layers in the k transform layers use the skip coding technology, and quality enhancement of the decoding end reconstructed point cloud under average code rate can be realized, and thus the coding and decoding performance of the point cloud can be improved.

[0329] In another embodiment of the present application, based on the coding method of the foregoing embodiment, a residual skip coding scheme for a RAHT layer prediction mode is proposed. In the process of RAHT transform calculation from a root node to a leaf node layer by layer, with the increase of the number of layers, the number of coding AC coefficients obtained by the transform gradually increases, and the coefficient values gradually decrease. In the last several layers of the point cloud, the number of AC coefficients accounts for more than half of all AC coefficients, and after layer optimal prediction and quantization, the number of 0 in the AC coefficient residuals of the last several layers accounts for more than 95%, and therefore the coding of the AC coefficient residuals of the last several layers inevitably has great code stream waste.

[0330] Based on this, the embodiment of the present application faces a layer optimal prediction mode selection scheme, and a skip coding scheme of RAHT transform coefficient residual based on rate distortion optimization judgment is proposed, as shown in FIG. 21, and the detailed process can include:

[0331] S2101, determining the last k transform layers of the RAHT transform.

[0332] S2102, performing the RAHT transform.

[0333] S2103, determining the AC coefficient.

[0334] S2104, determining the DC coefficient.

[0335] S2105, selecting a layer prediction mode of the current transform layer based on layer RDO.

[0336] S2106, encoding the layer prediction mode of the current transform layer and determining an AC coefficient residual value.

[0337] S2107, RDO selecting whether to skip encoding the AC coefficient residual value.

[0338] S2108, determining flag_skip=1.

[0339] S2109, encoding flag_skip and not encoding the AC coefficient residual value.

[0340] S2110, determining flag_skip=0.

[0341] S2111, encoding flag_skip and encoding the AC coefficient residual value.

[0342] In the embodiments of the present application, for step S2102, the RAHT transform is performed on the attribute initial value of the current transform layer to determine the AC coefficient and the DC coefficient. For the AC coefficient, the layer RDO selection is performed based on the three layer prediction modes of OrgCodingMethod, Inter-layerCodingMethod and Intra-layerCodingMethod to determine the layer prediction mode of the current transform layer, so as to further determine the AC coefficient residual value. In addition, for step S2107, if the result of the judgment is yes, i.e., the skip encoding is selected, steps S2108 and S2109 are performed; if the result of the judgment is no, i.e., the non-skip encoding is selected, steps S2110 and S2111 are performed.

[0343] That is, for the three layer prediction modes of OrgCodingMethod, Inter-layerCodingMethod and Intra-layerCodingMethod, first, the layer prediction mode (i.e. the optimal layer prediction mode) and the optimal layer rate-distortion cost of the current transform layer are selected by layer RDO, and then the optimal prediction residual is obtained. Subsequently, the rate-distortion cost of not coding the AC coefficient residual of each layer in the last k transform layers is compared with the optimal layer rate-distortion cost. If the rate-distortion cost of not coding the AC coefficient residual is less than the optimal layer rate-distortion cost of all coding, the skip coding flag flag_skip of the current transform layer is set to 1, and entropy coding is performed. When the decoder decodes, the number of layers using skip high-level syntax flag flag_k is parsed first, and then for the last k transform layers of RAHT, the skip coding flag flag_skip of each transform layer is parsed first. If flag_skip is 1, the AC coefficient residual of the current transform layer is recovered according to 0; if flag_skip is 0, the AC coefficient residual of the current transform layer is recovered according to the original value. Then, the optimal layer prediction mode flag is decoded to calculate the AC coefficient prediction value, which is added to the AC coefficient residual and inverse quantized to obtain the AC coefficient reconstruction value.

[0344] In a specific implementation, the implementation process of the coding method can include:

[0345] (1) Rate-distortion optimization technique principle.

[0346] In the field of video coding, the code rate and distortion after coding are contradictory to each other. If a smaller distortion is wanted to obtain a higher quality of reconstructed video, the transmission code rate needs to be improved. However, the code rate cannot be unlimitedly improved, and in some cases, the code rate needs to be reduced to ensure the smoothness of video transmission. In order to better improve the coding efficiency, the code rate and distortion need to be considered comprehensively to find the compromise point of the two, so that the distortion is as small as possible under the condition of fixed code rate, as shown in the foregoing formula (14). Wherein, D represents the distortion, R represents the code rate, represents the coding condition parameter configuration, such as the quantization step length. Formula (14) is a constrained optimization problem, which can be converted into the foregoing formula (15) by using the Lagrange multiplier. Wherein, RDcost is the rate-distortion cost, and λ is the Lagrange multiplier. This is the rate-distortion optimization problem in the field of video coding.

[0347] In the embodiments of the present application, the last k transform layers of the current point cloud are calculated, the RDcost of the AC coefficient residual of each transform layer is not coded, and the rate-distortion cost of the optimal layer prediction mode at this time is compared, so as to determine whether the AC coefficient residual of the transform layer is coded, thereby improving the coding efficiency. Since the RDcost is not convenient to calculate, the method of calculating the ΔRDcost can also be adopted. Taking the last layer as an example, the calculation formula is shown in the foregoing formula (16)-(18).

[0348] wherein the ΔD can be represented by the square value of all the AC coefficient residuals of the last layer, n is the number of points in the current point cloud (the total number of AC coefficients), m is the number of AC coefficient residuals of the last layer, and R org is the bitstream consumption in the optimal coding scheme of the original layer. At this time, if the calculated ΔRDcost is greater than 0, the flag_skip of the transform layer is set to 0; if the calculated ΔRDcost is less than 0, it indicates that the rate-distortion cost of skipping the AC coefficient residual of the transform layer is smaller, and the flag_skip of the transform layer is set to 1.

[0349] Here, the selection of the Lagrange multiplier λ adopts the parameter λ in the RDO scheme of the original layer (consistent with the layer RDO calculation in Table 1), in order to optimize λ to better adapt to the skip coding scheme of the embodiments of the present application, the value of λ can also be multiplied by an offset factor shift, as shown in the foregoing formula (20).

[0350] (2) Implementation details of the encoding end.

[0351] In the RAHT transform, the original point cloud is transformed from the root node, and the transform coefficients are obtained by performing the RAHT transform on each 2x2x2 block layer by layer from top to bottom. The AC coefficient prediction is performed for each transform layer. First, the optimal layer prediction mode is selected from the three layer prediction modes of OrgCodingMethod, Inter-layerCodingMethod and Intra-layerCodingMethod using the layer RDO, and the optimal prediction residual is obtained. After the AC coefficient residual is calculated, the AC coefficient residual is quantized. In the last k transform layers close to the leaf node which are artificially set, the rate-distortion cost RDcost of the layer coefficient residual without coding under the current optimal layer prediction mode is calculated skip . If the rate-distortion cost RDcost skip is greater than the original optimal layer rate-distortion cost RDcost org , the value of the flag_skip of the transform layer is set to 0, and the original AC residual is coded by the encoder; if the rate-distortion cost RDcost skipless than the original optimal layer rate-distortion cost RDcost org If the value of the transform layer flag_skip is 1, the AC coefficient residual of the transform layer is not coded, and the final attribute bitstream is obtained. The number of layers k using the skip coding technology and the flag_skip of each transform layer in the last k layers are simultaneously entropy coded. The operation flow at the encoding end is shown in FIG. 22.

[0352] (3) Bitstream structure.

[0353] As shown in FIG. 19, in the original bitstream structure, the flag_layer_rdo indicating the start of the layer RDO mode is first read in the APS. If the value is 1, the layer RDO prediction mode is used. Then, the predMode of each transform layer is read, which indicates which of the OrgCodingMethod, Inter-layerCodingMethod and Intra-layerCodingMethod is used by the decoder. Subsequently, the AC coefficient residual value of each transform layer is read from the coefficients.

[0354] As shown in FIG. 20, the improved bitstream structure in the embodiment of the present application further needs to read the flag_k in the APS. The value 0 indicates that the AC coefficient residual skip mode of the transform layer is not started. The values 1, 2, 3 and 4 indicate that the AC coefficient skip mode of the transform layer is started in the last 1, 2, 3 and 4 layers, respectively. The highest value of k can be 4. Taking k=2 as an example, if k=2 is solved in the APS, the flag_skip of each layer in the last two layers needs to be solved from the predMode. As shown in FIG. 20, layer_0 is the layer prediction mode flag (i.e., the selected optimal layer prediction mode) of the last layer, layer_1 is the layer prediction mode flag (i.e., the selected optimal layer prediction mode) of the second last layer, and the subsequent flag_skip is the skip usage of the corresponding transform layer. If the value is 1, the skip coding is used, and the AC coefficient residual of the transform layer is not coded. If the value is 0, the skip coding is not used, and the AC coefficient residual of the transform layer needs to be written into the bitstream in the coefficients, so that the AC coefficient residual of the transform layer can be parsed in the coefficients at the decoding end.

[0355] (4) Decoding end implementation details.

[0356] The operation flow of the decoding end is shown in FIG. 23. The decoding end reads the code stream, decodes the flag bit flag_k first, and if the value of k is 0, it indicates that the skip coding scheme is not used in the layer RDO prediction mode, and if the value of k is 1, 2, 3, or 4, it is determined whether the skip coding scheme is used in each of the k subsequent transform layers. Then, in the k subsequent transform layers, the flag_skip of each transform layer is decoded. If the value of flag_skip is 1, the skip coding scheme is used in the layer, and the AC coefficient residual of the transform layer does not need to be decoded, but is recovered according to the 0 value. If the value of flag_skip is 0, the skip coding scheme is not used in the layer, and the AC coefficient residual of the transform layer is decoded from the code stream.

[0357] Here, the decoded or recovered value is subjected to inverse quantization to obtain the reconstructed AC coefficient residual, and the decoded layer optimal prediction mode preMode is obtained, i.e., the optimal layer prediction mode used in the layer, such as one of OrgCodingMethod, Inter-layerCodingMethod, and Intra-layerCodingMethod, so that the prediction mode of the transform layer node can be obtained in combination with Table 1, which is inter prediction / average prediction / intra prediction / no prediction, and then the AC coefficient prediction value and the AC coefficient residual value are added to obtain the AC coefficient reconstruction value of each transform layer. It should be noted that the decoding process is still performed from top to bottom, and the DC value of the root node and the AC coefficient reconstruction value of the first layer are obtained first, and then the RAHT inverse transform is performed to obtain 8 reconstructed attribute values. The obtained 8 reconstructed attribute values can be used to calculate the DC coefficient of the 8 nodes of the second layer. After the decoded AC coefficient residual and the AC coefficient prediction value of the second layer are added to obtain the AC coefficient reconstruction value of the second layer, the RAHT inverse transform is performed on the AC coefficient reconstruction value of the second layer and the obtained DC coefficient to obtain the reconstructed attribute value of the third layer. In this way, all point cloud attributes are reconstructed.

[0358] In the case of the present application, the decoding end program is implemented as follows. The highest syntax element flag_k is decoded first. If the value of flag_k is greater than 0, the flag_skip is parsed in the k subsequent transform layers (layer<aps.flag_k) of the RAHT transform to indicate whether the skip coding technology is used. If the parsed value of flag_skip is 0, the AC coefficient residual value is decoded and recovered according to the original value. If the parsed value of flag_skip is 1, the AC coefficient residual value is recovered according to the 0 value and does not need to be decoded.

[0359] Exemplarily, the decoding end program is as follows:

[0360] It can be understood that the embodiments of the present application can consider not encoding the flag_skip of the last k transform layers. At this time, at the encoding end, when the rate-distortion cost of using the skip coding technology is small, the coefficients of the current transform layer are directly encoded as all 0 values, and at this time the decoding end only needs to be decoded as usual. In this case, only one high-level syntax element flag_k needs to be encoded, which is used to indicate whether to start the skip coding scheme of the embodiments of the present application. It can be understood that in the embodiments of the present application, since the non-zero coefficients of the Y component of each transform layer are more than 10 times the non-zero coefficients of the UV component, this will cause the gain of the Y component to be very small when using the skip coding scheme of the embodiments of the present application, and the gain of the UV component is large. The skip coding scheme of the transform coefficient residual error using the RAHT layer prediction mode can be extended to three channels in the color attribute of the dense point cloud, and at this time three flag bits flag_skip_Y, flag_skip_U and flag_skip_V are set to record the skip usage of each transform layer. In addition, the skip coding scheme of the transform coefficient residual error using the RAHT layer prediction mode can also be extended to the method of independent judgment of the Y channel and joint judgment of the UV channel, and at this time two flag bits flag_skip_Y and flag_skip_UV are set to record the skip usage of each channel of each transform layer.

[0361] Exemplarily, after the technical scheme proposed in the embodiments of the present application is implemented on the G-PCC reference software Ges-TM V6.0-rc1, tests are carried out under the C1, C2 and CW test conditions of CTC, and the test results are shown in Tables 5-14. Table 5 is the test result under the C1 test condition (Octree-RAHT, k = 1), Table 6 is the test result under the C2 test condition (Octree-RAHT, k = 1), Table 7 is the test result under the C1 test condition (Octree-RAHT, k = 2), Table 8 is the test result under the C2 test condition (Octree-RAHT, k = 2), Table 9 is the test result under the C1 test condition (Octree-RAHT, k = 3), Table 10 is the test result under the C2 test condition (Octree-RAHT, k = 3), Table 11 is the test result under the C1 test condition (Octree-RAHT, k = 4), Table 12 is the test result under the C2 test condition (Octree-RAHT, k = 4), Table 13 is the test result under the C1 test condition (Octree-RAHT, k = 2, λ optimization), and Table 14 is the test result under the C2 test condition (Octree-RAHT, k = 2, λ optimization). That is, for the skip coding scheme of the embodiments of the present application, the test results when k = 1, 2, 3 and 4 are shown in Tables 5-12, and the test results when k = 2 and λ are optimized are shown in Tables 13-14.

[0362] It should be noted that the C1 condition is a lossless geometry, lossy attribute encoding mode, and the C2 condition is a lossy geometry, lossy attribute encoding mode. End-to-End BD-AttrRate in Tables 5 to 14 represents an end-to-end attribute value, and the BD-Rate of the attribute code stream. The BD-Rate reflects the reduction of the average PSNR code rate of the scheme of the embodiments of the present application compared with the related art. When the BD-Rate is reduced, it means that the code rate is reduced and the performance is improved under the condition of equal PSNR; otherwise, the performance is reduced. That is, the more the BD-Rate is reduced, the better the compression effect is. In addition, the Cat2 data set is a multi-frame dense point cloud, which can be divided into three types of Cat2-A, Cat2-B and Cat2-C. Finally, the Overall average is the average value of the test effects of all sequences.

[0363] Table 5

[0364] Table 6

[0365] Table 7

[0366] Table 8

[0367] Table 9

[0368] Table 10

[0369] Table 11

[0370] Table 12

[0371] Table 13

[0372] Table 14

[0373] According to the test results in Tables 5-14, compared with the related art, the technical scheme of the embodiment of the present application obtains a gain of 0.1%, -3.7%, and -1.2% on the Luma, Chroma Cb, and Chroma Cr components of the Cat2 data set under the Ges-TM and CTC-C1 test conditions when K = 4, and obtains a gain of -0.1%, -3.7%, and -1.3% on the Luma, Chroma Cb, and Chroma Cr components of the Cat2 data set under the CTC-C2 test condition, and the effect is further improved after optimizing λ, thereby improving the coding efficiency.

[0374] In the embodiment of the present application, the specific implementation of the foregoing embodiment is described in detail through the foregoing embodiment. As can be seen from the foregoing embodiment, according to the technical scheme of the foregoing embodiment, a residual skip coding scheme for the RAHT layer prediction mode is proposed, which effectively improves the phenomenon of excessive 0-value residual of the coding coefficients in the latter layers of the RAHT transform, improves the coding efficiency, and realizes the quality enhancement of the reconstructed point cloud under the average code rate. In addition, through the rate-distortion optimization technology, the rate-distortion cost of the residual coding of the point cloud in the latter layers of the RAHT transform is determined, so as to adaptively skip the coding of part of the layer coefficient residual and code flag_k at the same time. Since the flag_skip flag bit can be used to record whether the skip coding technology is used and which layer uses the skip coding technology, the reconstructed quality under the average code rate of the attribute coding can also be improved, and the coding and decoding performance of the point cloud is further improved.

[0375] In still another embodiment of the present application, based on the same inventive concept as the foregoing embodiment, FIG. 24 is a schematic diagram of the composition structure of an encoder provided in the embodiment of the present application. As shown in FIG. 24, the encoder 240 includes a first determination unit 2401 and an encoding unit 2402, wherein:

[0376] The first determination unit 2401 is configured to determine whether the skip coding technology is used in the current transform layer among the k transform layers when the k transform layers of the current point cloud allow skip coding, and determine one or more alternating coefficient residual values of the current transform layer as a preset value when the skip coding technology is used in the current transform layer; wherein k is an integer greater than zero.

[0377] The encoding unit 2402 is configured to determine one or more alternating coefficient residual values of the current transform layer when the skip coding technology is not used in the current transform layer, and perform encoding processing on the one or more alternating coefficient residual values of the current transform layer, and write the obtained encoding bits into a bitstream.

[0378] In some embodiments, the first determining unit 2401 is further configured to determine a value of the first syntax element, where the first syntax element is used to indicate whether the k transform layers of the current point cloud allow skip coding; and the encoding unit 2402 is further configured to encode the value of the first syntax element, and write the obtained coded bits into the bitstream.

[0379] In some embodiments, the first determining unit 2401 is further configured to set the value of the first syntax element to a value equal to k.

[0380] In some embodiments, the first determining unit 2401 is further configured to determine a value of a second syntax element, where the second syntax element is used to indicate whether the current transform layer of the k transform layers uses the skip coding technology; and the encoding unit 2402 is further configured to encode the value of the second syntax element, and write the obtained coded bits into the bitstream.

[0381] In some embodiments, the first determining unit 2401 is further configured to determine a first cost value of encoding the one or more AC coefficient residual values of the current transform layer, and determine a second cost value of encoding the one or more AC coefficient residual values of the current transform layer according to a preset value; and determine whether the current transform layer uses the skip coding technology according to the first cost value and the second cost value.

[0382] In some embodiments, the first determining unit 2401 is further configured to determine that the current transform layer uses the skip coding technology if the first cost value is greater than the second cost value, and determine that the current transform layer does not use the skip coding technology if the first cost value is less than the second cost value.

[0383] In some embodiments, the first determining unit 2401 is further configured to determine a first distortion value of not encoding the one or more AC coefficient residual values of the current transform layer; determine a first code rate value of encoding the one or more AC coefficient residual values of the current transform layer; determine a third cost value according to the first distortion value, the first code rate value, and a first Lagrange multiplier; and determine whether the current transform layer uses the skip coding technology according to the third cost value.

[0384] In some embodiments, the first determining unit 2401 is further configured to determine that the current transform layer uses the skip coding technology if the third cost value is less than 0, and determine that the current transform layer does not use the skip coding technology if the third cost value is greater than 0.

[0385] In some embodiments, the first determining unit 2401 is further configured to determine a second Lagrange multiplier; and determine the third cost value according to the first distortion value, the first code rate value, and the second Lagrange multiplier.

[0386] In some embodiments, the first determining unit 2401 is further configured to determine a first offset factor; and determine the second Lagrange multiplier by optimizing the first Lagrange multiplier according to the first offset factor.

[0387] In some embodiments, the first offset factor is a constant.

[0388] In some embodiments, the first determining unit 2401 is further configured to determine the first offset factor according to a quantization parameter of the current point cloud.

[0389] In some embodiments, referring to FIG. 24, the encoder 240 further includes a first dividing unit 2403 configured to divide points in the current point cloud into layers, determine a plurality of transform layers and a root node corresponding to the current point cloud, and set the k transform layers as the last k transform layers from the root node downward in the plurality of transform layers.

[0390] In some embodiments, the first determining unit 2401 is further configured to determine one or more cross coefficient prediction values of the current transform layer when the current transform layer does not use a skip coding technique; and determine one or more cross coefficient residual values of the current transform layer according to the one or more cross coefficient initial values of the current transform layer and the one or more cross coefficient prediction values of the current transform layer.

[0391] In some embodiments, the first determining unit 2401 is further configured to determine a layer prediction mode of the current transform layer; determine one or more attribute prediction values of the current transform layer by performing attribute prediction on the current transform layer according to the layer prediction mode; and determine one or more cross coefficient prediction values of the current transform layer by performing region adaptive layered transform on the one or more attribute prediction values of the current transform layer.

[0392] In some embodiments, the first determining unit 2401 is further configured to perform rate-distortion cost calculation on the current transform layer according to a plurality of candidate layer prediction modes, determine rate-distortion cost results corresponding to the plurality of candidate layer prediction modes; and determine a minimum rate-distortion cost result according to the rate-distortion cost results corresponding to the plurality of candidate layer prediction modes, and determine a candidate layer prediction mode corresponding to the minimum rate-distortion cost result as the layer prediction mode of the current transform layer.

[0393] In some embodiments, the first determining unit 2401 is further configured to determine one or more attribute initial values in the current transform layer; and determine one or more cross coefficient initial values and one or more direct current coefficient values of the current transform layer by performing region adaptive layered transform on the one or more attribute initial values in the current transform layer.

[0394] In some embodiments, the first determining unit 2401 is further configured to determine a direct current coefficient value of the root node; and the encoding unit 2402 is further configured to perform encoding processing on the direct current coefficient value of the root node, and write the obtained encoding bits into the code stream.

[0395] In some embodiments, the first determining unit 2401 is further configured to determine that all the alternating current coefficient residual values of the current transform layer are preset values when the current transform layer uses the skip coding technology.

[0396] In some embodiments, the encoding unit 2402 is further configured to perform encoding processing on the one or more alternating current coefficient residual values of the current transform layer according to the preset values when the current transform layer uses the skip coding technology, and write the obtained encoding bits into the code stream.

[0397] In some embodiments, the first determining unit 2401 is further configured to determine a value of a third syntax element, wherein the third syntax element is used to indicate whether the current point cloud uses the layer prediction technology based on rate-distortion optimization; and the encoding unit 2402 is further configured to perform encoding processing on the value of the third syntax element, and write the obtained encoding bits into the code stream.

[0398] In some embodiments, the first determining unit 2401 is further configured to determine a value of a fourth syntax element, wherein the fourth syntax element is used to indicate whether the to-be-processed component of the current transform layer uses the skip coding technology; and the encoding unit 2402 is further configured to perform encoding processing on the value of the fourth syntax element, and write the obtained encoding bits into the code stream.

[0399] It can be understood that, in the embodiments of the present application, the "unit" can be part of a circuit, part of a processor, part of a program or software, etc., and of course can also be a module, and can also be non-modular. Moreover, the various components in the embodiments can be integrated in one processing unit, or can be physically present separately, or two or more units can be integrated in one unit. The above integrated unit can be realized in the form of hardware or in the form of a software function module.

[0400] In still another embodiment of the present application, FIG. 25 is a specific hardware structure diagram of an encoder provided by the embodiments of the present application. As shown in FIG. 25, the encoder 240 can include a first communication interface 2501, a first memory 2502 and a first processor 2503; the various components are coupled together through a first bus system 2504. It can be understood that the first bus system 2504 is used to realize the connection communication between the components. The first bus system 2504 includes not only a data bus, but also a power supply bus, a control bus and a state signal bus. However, for the purpose of clear illustration, all kinds of buses are marked as the first bus system 2504 in FIG. 25. Among them,

[0401] The first communication interface 2501 is configured to receive and send signals in the process of transmitting and receiving information with other external network elements.

[0402] The first memory 2502 is configured to store a computer program capable of running on the first processor 2503.

[0403] The first processor 2503 is configured to execute the following when running the computer program:

[0404] When the k transform layers of the current point cloud allow skip coding, it is determined whether the current transform layer in the k transform layers uses a skip coding technology; k is an integer greater than zero; when the current transform layer uses the skip coding technology, one or more alternating coefficient residual values of the current transform layer are determined as a preset value; when the current transform layer does not use the skip coding technology, one or more alternating coefficient residual values of the current transform layer are determined, and the one or more alternating coefficient residual values of the current transform layer are encoded, and the obtained encoded bits are written into a bitstream.

[0405] It can be understood that the first memory 2502 in the embodiments of the present application can be a volatile memory or a non-volatile memory, or can include both volatile and non-volatile memories. The non-volatile memory can be a read-only memory (Read-Only Memory, ROM), a programmable read-only memory (Programmable ROM, PROM), an erasable programmable read-only memory (Erasable PROM, EPROM), an electrically erasable programmable read-only memory (Electrically EPROM, EEPROM) or a flash memory. The volatile memory can be a random access memory (Random Access Memory, RAM) used as an external cache. By way of example, but not limitation, many forms of RAM are available, such as static random access memory (Static RAM, SRAM), dynamic random access memory (Dynamic RAM, DRAM), synchronous dynamic random access memory (Synchronous DRAM, SDRAM), double data rate synchronous dynamic random access memory (Double Data Rate SDRAM, DDR SDRAM), enhanced synchronous dynamic random access memory (Enhanced SDRAM, ESDRAM), synchronous link dynamic random access memory (Synchlink DRAM, SLDRAM) and direct memory bus random access memory (Direct Rambus RAM, DRRAM). The first memory 2502 of the system and method described in the present application is intended to include but not limited to these and any other suitable types of memory.

[0406] The first processor 2503 can be an integrated circuit chip having a processing capability of signals. In the implementation process, each step of the above method can be completed by the integrated logic circuit of hardware or the instruction in the form of software in the first processor 2503. The first processor 2503 described above can be a general processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic device, a discrete gate or transistor logic device, a discrete hardware component. Each method, step and logic block diagram disclosed in the embodiments of the present application can be implemented or executed. The general processor can be a microprocessor or the processor can also be any conventional processor. The steps of the method disclosed in combination with the embodiments of the present application can be directly embodied as a hardware code processor to execute, or be executed by a combination of hardware and software modules in the code processor. The software module can be located in a random access memory, a flash memory, a read only memory, a programmable read only memory or an electrically erasable programmable memory, a register, and other mature storage media in the art. The storage medium is located in the first memory 2502, and the first processor 2503 reads the information in the first memory 2502 and combines the hardware to complete the steps of the above method.

[0407] It can be understood that the embodiments described in the present application can be realized by hardware, software, firmware, middleware, microcode or a combination thereof. For hardware implementation, the processing unit can be realized in one or more application specific integrated circuits (ASICs), digital signal processors (DSPs), digital signal processing devices (DSPDs), programmable logic devices (PLDs), field programmable gate arrays (FPGAs), general-purpose processors, controllers, microcontrollers, microprocessors, other electronic units for executing the functions described in the present application, or a combination thereof. For software implementation, the technologies described in the present application can be realized by modules (such as processes, functions, etc.) for executing the 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.

[0408] Optionally, as another embodiment, the first processor 2503 is further configured to execute the method of any one of the preceding embodiments when running the computer program.

[0409] The embodiment provides an encoder, in which when it is determined that k transform layers of a current point cloud are allowed to be encoded by skipping, if a current transform layer uses a skip encoding technology, one or more AC coefficient residual values of the current transform layer are directly determined as preset values without being encoded, so that the phenomenon of too many 0 values in AC coefficient residuals of the last layers in the RAHT transform can be effectively improved, code stream waste is avoided, and coding efficiency is improved; and it can be determined which layers of the k transform layers use the skip encoding technology, so that quality enhancement of a reconstructed point cloud at an average code rate at a decoding end can be realized, and coding performance of the point cloud is improved.

[0410] In another embodiment of the present application, based on the same inventive concept of the preceding embodiments, FIG. 26 is a schematic structural diagram of a decoder provided by the embodiment of the present application. As shown in FIG. 26, the decoder 260 includes a decoding unit 2601 and a second determining unit 2602, wherein:

[0411] The decoding unit 2601 is configured to parse a first syntax element in a code stream, and parse a second syntax element of a current transform layer in k transform layers of the code stream when the first syntax element indicates that the k transform layers of a current point cloud are allowed to be decoded by skipping; wherein k is an integer greater than zero;

[0412] The second determining unit 2602 is configured to determine one or more AC coefficient residual values of the current transform layer as preset values when the second syntax element indicates that the current transform layer uses a skip decoding technology.

[0413] The second determining unit 2602 is further configured to determine one or more AC coefficient reconstructed values of the current transform layer according to the one or more AC coefficient residual values of the current transform layer.

[0414] In some embodiments, referring to FIG. 26, the decoder 260 further includes a second dividing unit 2603 configured to divide points in a current point cloud into layers, determine a plurality of transform layers and a root node corresponding to the current point cloud, and set the k transform layers as the last k transform layers from the root node downward in the plurality of transform layers.

[0415] In some embodiments, the second determining unit 2602 is further configured to determine the value of k according to the value of the first syntax element.

[0416] In some embodiments, the decoding unit 2601 is further configured to parse the attribute parameter set unit in the bitstream to determine the value of the first syntax element.

[0417] In some embodiments, the second determining unit 2602 is further configured to determine one or more AC coefficient prediction values of the current transform layer; and determine one or more AC coefficient reconstructed values of the current transform layer according to the one or more AC coefficient prediction values of the current transform layer and one or more AC coefficient residual values of the current transform layer.

[0418] In some embodiments, the decoding unit 2601 is further configured to parse a layer prediction mode of the current transform layer in the bitstream; the second determining unit 2602 is further configured to determine one or more attribute prediction values of the current transform layer according to attribute prediction of the current transform layer according to the layer prediction mode; and determine one or more AC coefficient prediction values of the current transform layer according to region adaptive hierarchical transform of the one or more attribute prediction values of the current transform layer.

[0419] In some embodiments, the second determining unit 2602 is further configured to determine a position of the current transform layer in a plurality of transform layers corresponding to the current point cloud; and determine a prediction mode of the current transform layer according to the layer prediction mode and the position of the current transform layer; wherein the prediction mode is one of the following: intra prediction, inter prediction, average prediction and no prediction; and determine one or more attribute prediction values of the current transform layer according to attribute prediction of the current transform layer according to the prediction mode.

[0420] In some embodiments, the decoding unit 2601 is further configured to parse the third syntax element in the bitstream; and perform the step of parsing the layer prediction mode of the current transform layer in the bitstream when the third syntax element indicates that the current point cloud uses the layer prediction technology based on rate-distortion optimization.

[0421] In some embodiments, the decoding unit 2601 is further configured to parse the attribute parameter set unit in the bitstream to determine the value of the third syntax element.

[0422] In some embodiments, the decoding unit 2601 is further configured to parse the prediction mode unit in the bitstream to determine the layer prediction mode of the current transform layer.

[0423] In some embodiments, the decoding unit 2601 is further configured to parse the prediction mode unit in the bitstream to determine the value of the second syntax element of the current transform layer.

[0424] In some embodiments, the second determining unit 2602 is further configured to, when the current transform layer is a transform layer in the k transform layers, a field corresponding to the second syntax element of the current transform layer in the prediction mode unit in the bitstream is located after a field corresponding to the layer prediction mode of the current transform layer.

[0425] In some embodiments, the second determining unit 2602 is further configured to determine that all the AC coefficient residual values of the current transform layer are preset values.

[0426] In some embodiments, the decoding unit 2601 is further configured to parse one or more AC coefficient residual values of the current transform layer from the bitstream when the second syntax element indicates that the current transform layer does not use the skip decoding technique; and the second determining unit 2602 is further configured to determine one or more AC coefficient reconstructed values of the current transform layer according to the one or more AC coefficient residual values of the current transform layer.

[0427] In some embodiments, the second determining unit 2602 is further configured to, when the current transform layer is the first transform layer, parse a DC coefficient value of a root node from the bitstream, perform region adaptive hierarchical inverse transform according to the DC coefficient value of the root node and the one or more AC coefficient reconstructed values of the current transform layer to obtain one or more reconstructed attribute values of the first transform layer; and when the current transform layer is a non-first transform layer, determine one or more DC coefficient values of the current transform layer, perform region adaptive hierarchical inverse transform according to the one or more DC coefficient values of the current transform layer and the one or more AC coefficient reconstructed values of the current transform layer to obtain one or more reconstructed attribute values of the non-first transform layer.

[0428] In some embodiments, the second determining unit 2602 is further configured to, when the current transform layer is a non-first transform layer, determine one or more reconstructed attribute values of a previous transform layer of the current transform layer; and determine one or more DC coefficient values of the current transform layer according to the one or more reconstructed attribute values of the previous transform layer.

[0429] In some embodiments, the decoding unit 2601 is further configured to parse one or more AC coefficient residual values of the current transform layer from the bitstream when the first syntax element indicates that the k transform layers of the current point cloud allow the skip decoding; and the second determining unit 2602 is further configured to determine one or more AC coefficient reconstructed values of the current transform layer according to the one or more AC coefficient residual values of the current transform layer.

[0430] In some embodiments, the decoding unit 2601 is further configured to parse the one or more AC coefficient residual values of the current transform layer from the bitstream as preset values when the current transform layer uses the skip decoding technique.

[0431] In some embodiments, the decoding unit 2601 is further configured to parse the fourth syntax element of the current transform layer in the k transform layers from the bitstream; the second determining unit 2602 is further configured to determine that the one or more AC coefficient residual values of the to-be-processed component of the current transform layer are preset values when the fourth syntax element indicates that the to-be-processed component of the current transform layer uses the skip decoding technology; and determine the one or more AC coefficient reconstructed values of the to-be-processed component of the current transform layer according to the one or more AC coefficient residual values of the to-be-processed component of the current transform layer.

[0432] In some embodiments, the to-be-processed component includes at least one of the first color component, the second color component, and the third color component.

[0433] It can be understood that, in this embodiment, the "unit" can be a part of circuit, a part of processor, a part of program or software, and the like, and of course can be a module, and can also be non-modular. Moreover, the components in this embodiment can be integrated in a processing unit, or can be physically present individually, or two or more units can be integrated in one unit. The integrated unit can be realized in the form of hardware or in the form of a software function module.

[0434] In still another embodiment of the present application, FIG. 27 is a specific hardware structure diagram of a decoder provided by the embodiment of the present application. As shown in FIG. 27, the decoder 260 can include a second communication interface 2701, a second memory 2702, and a second processor 2703; and the components are coupled together through a second bus system 2704. It can be understood that the second bus system 2704 is used to realize the connection and communication between the components. The second bus system 2704 includes a data bus, a power supply bus, a control bus, and a state signal bus. However, for the purpose of clear illustration, all kinds of buses are marked as the second bus system 2704 in FIG. 27. Among them,

[0435] The second communication interface 2701 is configured to receive and send signals in the information transceiving process between other external network elements.

[0436] The second memory 2702 is configured to store a computer program capable of running on the second processor 2703.

[0437] The second processor 2703 is configured to execute the following when running the computer program:

[0438] parsing a first syntax element in the bitstream; parsing a second syntax element in the bitstream for a current transform layer of the k transform layers of the current point cloud when the first syntax element indicates that the k transform layers of the current point cloud allow skip decoding; wherein k is an integer greater than zero; determining one or more AC coefficient residual values of the current transform layer as preset values when the second syntax element indicates that the current transform layer uses the skip decoding technique; and determining one or more AC coefficient reconstructed values of the current transform layer according to the one or more AC coefficient residual values of the current transform layer.

[0439] Optionally, as another embodiment, the second processor 2703 is further configured to, when the computer program is executed, perform the method in any one of the preceding embodiments.

[0440] It can be understood that the second memory 2702 has similar hardware functions as the first memory 2502, and the second processor 2703 has similar hardware functions as the first processor 2503; and details are not described herein.

[0441] The embodiment provides a decoder, in which when it is determined that the k transform layers of the current point cloud allow skip encoding, for each transform layer (for example, a current transform layer) of the k transform layers, if it is determined according to a second syntax element that the current transform layer uses a skip decoding technique at the decoding end, one or more AC coefficient residual values of the current transform layer can be directly determined as preset values, so that the phenomenon of too many 0 values in the AC coefficient residual of the last several layers in the RAHT transform can be effectively improved, code stream waste can be avoided, and the coding and decoding efficiency is improved. Moreover, the second syntax element is used to determine which layers of the k transform layers use the skip decoding technique, so that the quality of the reconstructed point cloud at the decoding end under the average code rate can be enhanced, and the coding and decoding performance of the point cloud can be improved.

[0442] In still another embodiment of the present application, FIG. 28 is a schematic structural diagram of a coding system provided by the embodiment of the present application. As shown in FIG. 28, the coding system 280 can include an encoder 2801 and a decoder 2802.

[0443] In the embodiment of the present application, the encoder 2801 can be the encoder in any one of the preceding embodiments, and the decoder 2802 can be the decoder in any one of the preceding embodiments.

[0444] In some embodiments, the present application further provides a computer readable storage medium having a computer program stored thereon. The computer program is executed by a processor to implement the method in any one of the preceding embodiments. Wherein, the computer program is executed by the first processor to implement the encoding method in any one of the preceding embodiments, or executed by the second processor to implement the decoding method in any one of the preceding embodiments.

[0445] In some embodiments, the present application also provides a computer program product comprising computer programs or instructions. The computer programs or instructions, when executed by a processor, implement the method according to any one of the preceding embodiments. In particular, the computer programs or instructions, when executed by a first processor, implement the encoding method according to any one of the preceding embodiments, or when executed by a second processor, implement the decoding method according to any one of the preceding embodiments.

[0446] In some embodiments, the present application also provides a computer program which, when executed by a processor, implements the method according to any one of the preceding embodiments. In particular, the computer programs or instructions, when executed by a first processor, implement the encoding method according to any one of the preceding embodiments, or when executed by a second processor, implement the decoding method according to any one of the preceding embodiments.

[0447] In some embodiments, the present application also provides a computer-readable storage medium having a code stream stored thereon. The code stream is generated by performing the steps of the encoding method according to any one of the preceding embodiments.

[0448] In the embodiments of the present application, the to-be-encoded information in the encoding method can include at least one of the following: a value of the first syntax element, a value of the second syntax element, a value of the third syntax element, a value of the fourth syntax element, an alternating coefficient residual value of the plurality of transform layers corresponding to the current point cloud, a direct current coefficient value of the root node, a layer prediction mode of each of the plurality of transform layers, and the one or more alternating coefficient residual values of the current transform layer in the k transform layers being preset values.

[0449] In the embodiments of the present application, the plurality of transform layers can include k transform layers, and k is an integer greater than zero. The first syntax element is used to indicate whether the k transform layers of the current point cloud allow skip coding, the second syntax element is used to indicate whether the current transform layer in the k transform layers uses the skip coding technology, the third syntax element is used to indicate whether the current point cloud uses the rate-distortion optimization-based layer prediction technology, and the fourth syntax element is used to indicate whether the to-be-processed component of the current transform layer uses the skip coding technology.

[0450] Those skilled in the art can realize that the units and algorithm steps of the examples described in combination with the embodiments disclosed in the present application can be realized by electronic hardware or a combination of computer software and electronic hardware. Whether the functions are realized in hardware or software depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of the present application.

[0451] Those skilled in the art can clearly understand that, for the convenience and brevity of description, the specific working process of the apparatus and the unit described above can refer to the corresponding process in the foregoing method embodiments, and will not be described here.

[0452] In several embodiments provided in the present application, it should be understood that the disclosed apparatus and method can be implemented in other ways. For example, the apparatus embodiments described above are only schematic. The division of the units is only a logical function division. In actual implementation, additional division can be made, for example, a plurality of units or components can be combined or integrated into another system, or some features can be ignored or not executed. In addition, the coupling or direct coupling or communication connection between the units shown or discussed can be indirect coupling or communication connection through some interface, device or unit, and can be electrical, mechanical or in other forms.

[0453] The units described as separate components can or can not be physically separated, and the components shown as units can or can not be physical units, i.e., can be located in one place or distributed on a plurality of network units. Part or all of the units can be selected according to actual needs to achieve the purpose of the embodiment.

[0454] In addition, each functional unit in each embodiment of the present application can be integrated in one processing unit, or each unit can exist physically, or two or more units can be integrated in one unit.

[0455] If the functions are realized in the form of software function units and sold or used as independent products, they can be stored in a computer readable storage medium. Based on this understanding, the technical solutions of the present application or the essential part or part of the technical solutions that make contributions to the prior art can be embodied in the form of a software product. The computer software product is stored in a storage medium and includes a plurality of instructions for causing a computer device (which can be a personal computer, a server, or a network device, etc.) to execute all or part of the steps of the methods described in the embodiments of the present application. The foregoing storage medium includes: a U disk, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk or an optical disk, and various program code storage media.

[0456] It should be noted that, in the present application, the terms "comprising", "including", or any other variant thereof, are intended to cover a non-exclusive inclusion, so that a process, method, article, or apparatus that comprises a list of elements does not include only those elements, but can also include other elements not expressly listed, or inherent to such process, method, article, or apparatus. Without more limitations, the element defined by the statement "comprising a" does not exclude the presence of additional identical elements in the process, method, article, or apparatus that includes the element.

[0457] The above-mentioned sequence numbers of embodiments of the present application are only for description, and do not represent the advantages or disadvantages of the embodiments.

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

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

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

[0461] The above is only a specific implementation of the present application, but the protection scope of the present application is not limited thereto. Any person skilled in the art can easily think of changes or replacements within the technical range disclosed by the present application, which should be covered within the protection scope of the present application. Therefore, the protection scope of the present application should be subject to the protection scope of the claims. Industrial applicability

[0462] In the embodiments of the present application, at the encoding end, when the k transform layers of the current point cloud allow skip coding, it is determined whether the current transform layer in the k transform layers uses a skip coding technology; wherein k is an integer greater than zero; when the current transform layer uses the skip coding technology, one or more AC coefficient residual values of the current transform layer are determined as preset values; when the current transform layer does not use the skip coding technology, one or more AC coefficient residual values of the current transform layer are determined, and the one or more AC coefficient residual values of the current transform layer are encoded and processed, and the obtained encoding bits are written into a bitstream. At the decoding end, a first syntax element in the bitstream is parsed; when the first syntax element indicates that the k transform layers of the current point cloud allow skip decoding, a second syntax element of the current transform layer in the k transform layers in the bitstream is parsed; wherein k is an integer greater than zero; when the second syntax element indicates that the current transform layer uses the skip decoding technology, one or more AC coefficient residual values of the current transform layer are determined as preset values; and one or more AC coefficient reconstructed values of the current transform layer are determined according to the one or more AC coefficient residual values of the current transform layer. In this way, whether at the encoding end or the decoding end, when it is determined that the k transform layers of the current point cloud allow skip coding, at this time, for each transform layer (taking the current transform layer as an example) in the k transform layers, if the current transform layer uses the skip coding technology, then the one or more AC coefficient residual values of the current transform layer no longer need to be encoded and processed, and if at the decoding end it is determined according to the second syntax element that the current transform layer uses the skip decoding technology, then the one or more AC coefficient residual values of the current transform layer can be directly determined as preset values, thereby effectively improving the phenomenon of too many 0 values in the AC coefficient residual of the last several layers in the RAHT transform, avoiding code stream waste, and improving the coding and decoding efficiency; and by using the second syntax element to determine which layers in the k transform layers use the skip coding technology, quality enhancement of the reconstructed point cloud at the average code rate at the decoding end can also be achieved, thereby improving the coding and decoding performance of the point cloud.

Claims

1. A decoding method applied to a decoder, the method comprising: parsing a first syntax element in a bitstream; when the first syntax element indicates that k transform layers of a current point cloud allow skip decoding, parsing a second syntax element of a current transform layer among the k transform layers in the bitstream; wherein k is an integer greater than zero; when the second syntax element indicates that the current transform layer uses a skip decoding technique, determining one or more cross coefficient residual values of the current transform layer as preset values; determining one or more cross coefficient reconstructed values of the current transform layer according to the one or more cross coefficient residual values of the current transform layer.

2. The method of 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; setting the k transform layers as the last k transform layers from the root node downwards in the plurality of transform layers.

3. The method of claim 1, wherein, The method further comprises: determining the value of k according to the value of the first syntax element.

4. The method of claim 1, wherein, The parsing of the first syntax element in the bitstream comprises: parsing an attribute parameter set unit in the bitstream to determine the value of the first syntax element.

5. The method of claim 1, wherein, The determining of the one or more cross coefficient reconstructed values of the current transform layer according to the one or more cross coefficient residual values of the current transform layer comprises: determining one or more cross coefficient prediction values of the current transform layer; determining the one or more cross coefficient reconstructed values of the current transform layer according to the one or more cross coefficient prediction values of the current transform layer and the one or more cross coefficient residual values of the current transform layer.

6. The method of claim 5, wherein, The determining of the one or more cross coefficient prediction values of the current transform layer comprises: parsing a layer prediction mode of the current transform layer in the bitstream; performing attribute prediction on the current transform layer according to the layer prediction mode to determine one or more attribute prediction values of the current transform layer; performing region adaptive hierarchical transform on the one or more attribute prediction values of the current transform layer to determine the one or more cross coefficient prediction values of the current transform layer.

7. The method of claim 6, wherein, The performing of attribute prediction on the current transform layer according to the layer prediction mode to determine the one or more attribute prediction values of the current transform layer comprises: determining a position of the current transform layer among the plurality of transform layers corresponding to the current point cloud; determining a prediction mode of the current transform layer according to the layer prediction mode and the position of the current transform layer; wherein the prediction mode is one of the following: intra prediction, inter prediction, average prediction, and no prediction; performing attribute prediction on the current transform layer according to the prediction mode to determine the one or more attribute prediction values of the current transform layer.

8. The method of claim 6, wherein, The method further comprises: parsing a third syntax element in the bitstream; when the third syntax element indicates that the current point cloud uses a layer prediction technique based on rate-distortion optimization, performing the step of parsing the layer prediction mode of the current transform layer in the bitstream.

9. The method of claim 8, wherein, The parsing of the third syntax element in the bitstream comprises: parsing an attribute parameter set unit in the bitstream to determine the value of the third syntax element.

10. The method of claim 6, wherein, The parsing of the layer prediction mode of the current transform layer in the bitstream comprises: The prediction mode unit in the bitstream is parsed to determine a layer prediction mode of the current transform layer.

11. The method of claim 10, wherein, The second syntax element of the current transform layer in the k transform layers in the bitstream is parsed, including: The prediction mode unit in the bitstream is parsed to determine a value of the second syntax element of the current transform layer.

12. The method of claim 11, wherein, The method further includes: When the current transform layer is a transform layer in the k transform layers, a field corresponding to the second syntax element of the current transform layer in the prediction mode unit in the bitstream is located after a field corresponding to the layer prediction mode of the current transform layer.

13. The method of claim 1, wherein, The determination of the one or more AC coefficient residual values of the current transform layer as preset values includes: All the AC coefficient residual values of the current transform layer are determined as the preset values.

14. The method of claim 1, wherein, The method further includes: When the second syntax element indicates that the current transform layer does not use the skip decoding technology, one or more AC coefficient residual values of the current transform layer in the bitstream are parsed; According to the one or more AC coefficient residual values of the current transform layer, one or more AC coefficient reconstructed values of the current transform layer are determined.

15. The method of any one of claims 1 to 14, wherein, The method further includes: When the current transform layer is a first transform layer, a DC coefficient value of a root node in the bitstream is parsed, and region adaptive hierarchical inverse transform is performed according to the DC coefficient value of the root node and the one or more AC coefficient reconstructed values of the current transform layer to obtain one or more reconstructed attribute values of the first transform layer; When the current transform layer is a non-first transform layer, one or more DC coefficient values of the current transform layer are determined, and region adaptive hierarchical inverse transform is performed according to the one or more DC coefficient values of the current transform layer and the one or more AC coefficient reconstructed values of the current transform layer to obtain one or more reconstructed attribute values of the non-first transform layer.

16. The method of claim 15, wherein, When the current transform layer is a non-first transform layer, the determination of the one or more DC coefficient values of the current transform layer includes: One or more reconstructed attribute values of a previous transform layer of the current transform layer are determined; According to the one or more reconstructed attribute values of the previous transform layer, one or more DC coefficient values of the current transform layer are determined.

17. The method of any one of claims 1 to 16, wherein, The method further includes: When the first syntax element indicates that the k transform layers of the current point cloud allow skip decoding, one or more AC coefficient residual values of the current transform layer in the bitstream are parsed; According to the one or more AC coefficient residual values of the current transform layer, one or more AC coefficient reconstructed values of the current transform layer are determined.

18. The method of claim 17, wherein, The parsing of the one or more AC coefficient residual values of the current transform layer in the bitstream includes: When the current transform layer uses the skip decoding technology, the one or more AC coefficient residual values of the current transform layer in the bitstream are preset values.

19. The method of any one of claims 1 to 18, wherein, The method further includes: A fourth syntax element of the current transform layer in the k transform layers in the bitstream is parsed; When the fourth syntax element indicates that a to-be-processed component of the current transform layer uses the skip decoding technology, one or more AC coefficient residual values of the to-be-processed component of the current transform layer are determined as preset values; determine one or more AC coefficient reconstructed values of a to-be-processed component of the current transform layer according to one or more AC coefficient residual values of the to-be-processed component of the current transform layer.

20. The method of claim 19, wherein, The to-be-processed component comprises at least one of a first color component, a second color component and a third color component.

21. An encoding method applied to an encoder, the method comprising: determining whether a current transform layer of k transform layers of a current point cloud uses a skip coding technique when the k transform layers of the current point cloud allow skip coding; wherein k is an integer greater than zero; determining one or more AC coefficient residual values of the current transform layer to be a preset value when the current transform layer uses the skip coding technique; determining one or more AC coefficient residual values of the current transform layer and performing encoding processing on the one or more AC coefficient residual values of the current transform layer when the current transform layer does not use the skip coding technique, and writing obtained encoding bits into a bitstream.

22. The method of claim 21, wherein, The method further comprises: determining a value of a first syntax element, wherein the first syntax element is used to indicate whether the k transform layers of the current point cloud allow skip coding; performing encoding processing on the value of the first syntax element and writing obtained encoding bits into a bitstream.

23. The method of claim 22, wherein, The determining of the value of the first syntax element comprises: setting the value of the first syntax element to be equal to the value of k.

24. The method of claim 21, wherein, The method further comprises: determining a value of a second syntax element, wherein the second syntax element is used to indicate whether the current transform layer of the k transform layers uses the skip coding technique; performing encoding processing on the value of the second syntax element and writing obtained encoding bits into a bitstream.

25. The method of claim 21, wherein, The determining of whether the current transform layer of the k transform layers uses the skip coding technique comprises: determining a first cost value of encoding the one or more AC coefficient residual values of the current transform layer, and determining a second cost value of encoding the one or more AC coefficient residual values of the current transform layer according to the preset value; determining whether the current transform layer uses the skip coding technique according to the first cost value and the second cost value.

26. The method of claim 25, wherein, The determining of whether the current transform layer uses the skip coding technique according to the first cost value and the second cost value comprises: if the first cost value is greater than the second cost value, determining that the current transform layer uses the skip coding technique; if the first cost value is less than the second cost value, determining that the current transform layer does not use the skip coding technique.

27. The method of claim 21, wherein, The determining of whether the current transform layer of the k transform layers uses the skip coding technique comprises: determining a first distortion value of not encoding the one or more AC coefficient residual values of the current transform layer; determining a first code rate value of encoding the one or more AC coefficient residual values of the current transform layer; determining a third cost value according to the first distortion value, the first code rate value and a first Lagrange multiplier; determining whether the current transform layer uses the skip coding technique according to the third cost value.

28. The method of claim 27, wherein, The determining of whether the current transform layer uses the skip coding technique according to the third cost value comprises: If the third generation value is less than 0, it is determined that the current transform layer uses the skip coding technology; If the third generation value is greater than 0, it is determined that the current transform layer does not use the skip coding technology.

29. The method of claim 27, wherein, The method further comprises: determining a second Lagrange multiplier; determining a third generation value according to the first distortion value, the first code rate value and the second Lagrange multiplier.

30. The method of claim 29, wherein, The determination of the second Lagrange multiplier comprises: determining a first offset factor; determining the second Lagrange multiplier by optimizing the first Lagrange multiplier according to the first offset factor.

31. The method of claim 30, wherein, The first offset factor is a constant.

32. The method of claim 30, wherein, The determination of the first offset factor comprises: determining the first offset factor according to a quantization parameter of the current point cloud.

33. The method of any one of claims 21 to 32, wherein, The method further comprises: dividing points in the current point cloud into layers to determine a plurality of transform layers and a root node corresponding to the current point cloud; setting the k transform layers as the last k transform layers from the root node downward in the plurality of transform layers.

34. The method of claim 33, wherein, When the current transform layer does not use the skip coding technology, the determination of the one or more cross coefficient residual values of the current transform layer comprises: determining one or more cross coefficient prediction values of the current transform layer; determining the one or more cross coefficient residual values of the current transform layer according to the one or more cross coefficient initial values of the current transform layer and the one or more cross coefficient prediction values of the current transform layer.

35. The method of claim 34, wherein, The determination of the one or more cross coefficient prediction values of the current transform layer comprises: determining a layer prediction mode of the current transform layer; determining one or more attribute prediction values of the current transform layer according to attribute prediction of the current transform layer according to the layer prediction mode; determining the one or more cross coefficient prediction values of the current transform layer by performing region adaptive layered transform on the one or more attribute prediction values of the current transform layer.

36. The method of claim 35, wherein, The determination of the layer prediction mode of the current transform layer comprises: determining rate-distortion cost results corresponding to a plurality of candidate layer prediction modes according to rate-distortion cost calculation of the current transform layer according to the plurality of candidate layer prediction modes; determining a minimum rate-distortion cost result according to the rate-distortion cost results corresponding to the plurality of candidate layer prediction modes, and determining a candidate layer prediction mode corresponding to the minimum rate-distortion cost result as the layer prediction mode of the current transform layer.

37. The method of claim 34, wherein, The method further comprises: determining one or more attribute initial values in the current transform layer; determining the one or more cross coefficient initial values and one or more direct current coefficient values of the current transform layer by performing region adaptive layered transform on the one or more attribute initial values in the current transform layer.

38. The method of claim 37, wherein, When the current transform layer is a first transform layer, the method further comprises: determining a direct current coefficient value of the root node; performing encoding processing on the direct current coefficient value of the root node, and writing the obtained encoded bits into a bitstream.

39. The method of claim 21, wherein, When the current transform layer uses the skip coding technology, the determination of the one or more cross coefficient residual values of the current transform layer as preset values comprises: determining that all cross coefficient residual values of the current transform layer are the preset values.

40. The method of claim 21, wherein, When the current transform layer uses the skip coding technology, the method further comprises: encoding one or more AC coefficient residual values of the current transform layer according to the preset value, and writing the obtained encoding bits into the code stream.

41. The method of any one of claims 21 to 40, wherein, The method further comprises: determining a value of a third syntax element, wherein the third syntax element is used to indicate whether the current point cloud uses the layer prediction technology based on rate-distortion optimization; encoding the value of the third syntax element, and writing the obtained encoding bits into the code stream.

42. The method of any one of claims 21 to 40, wherein, The method further comprises: determining a value of a fourth syntax element, wherein the fourth syntax element is used to indicate whether the to-be-processed component of the current transform layer uses the skip coding technology; encoding the value of the fourth syntax element, and writing the obtained encoding bits into the code stream.

43. The method of claim 42, wherein, The to-be-processed component includes at least one of a first color component, a second color component, and a third color component.

44. A bitstream, wherein, The code stream is generated by bit encoding according to the encoding method in any one of claims 21 to 43; wherein the to-be-encoded information in the encoding method includes at least one of: the value of the first syntax element, the value of the second syntax element, the value of the third syntax element, the value of the fourth syntax element, the AC coefficient residual values of the plurality of transform layers corresponding to the current point cloud, the DC coefficient value of the root node, the layer prediction mode of each of the plurality of transform layers, and the preset value of one or more AC coefficient residual values of the current transform layer in the k transform layers; wherein the plurality of transform layers includes k transform layers, and k is an integer greater than zero; the first syntax element is used to indicate whether the k transform layers of the current point cloud allow skip coding, the second syntax element is used to indicate whether the current transform layer in the k transform layers uses the skip coding technology, the third syntax element is used to indicate whether the current point cloud uses the layer prediction technology based on rate-distortion optimization, and the fourth syntax element is used to indicate whether the to-be-processed component of the current transform layer uses the skip coding technology.

45. The code stream of claim 44, wherein, The code stream includes an attribute parameter set unit, a prediction mode unit, and a transform coefficient unit, wherein: The attribute parameter set unit is configured to write the value of the first syntax element and the value of the third syntax element; The prediction mode unit is configured to write the layer prediction mode of each of the plurality of transform layers, and the value of the second syntax element and / or the value of the fourth syntax element of each of the k transform layers; The transform coefficient unit is configured to write at least one of the AC coefficient residual values of the plurality of transform layers corresponding to the current point cloud, the DC coefficient value of the root node, and the preset value of one or more AC coefficient residual values of the current transform layer in the k transform layers.

46. An encoder, comprising a first determining unit and an encoding unit, wherein: The first determining unit is configured to determine whether a current transform layer in k transform layers of a current point cloud uses a skip coding technology when the k transform layers allow skip coding; k is an integer greater than zero; and determine one or more AC coefficient residual values of the current transform layer as preset values when the current transform layer uses the skip coding technology. The encoding unit is configured to determine one or more AC coefficient residual values of the current transform layer when the current transform layer does not use the skip coding technology, and perform encoding processing on the one or more AC coefficient residual values of the current transform layer, and write obtained encoding bits into a bitstream.

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

48. A decoder comprising a decoding unit and a second determining unit, wherein: the decoding unit is configured to parse a first syntax element in a bitstream, and parse a second syntax element of a current transform layer in k transform layers of a current point cloud in the bitstream when the first syntax element indicates that the k transform layers allow skip decoding; k is an integer greater than zero; the second determining unit is configured to determine one or more AC coefficient residual values of the current transform layer as preset values when the second syntax element indicates that the current transform layer uses a skip decoding technology; the second determining unit is further configured to determine one or more AC coefficient reconstructed values of the current transform layer according to the one or more AC coefficient residual values of the current transform layer.

49. A decoder comprising a second memory and a second processor, wherein: the second memory is configured to store a computer program capable of running on the second processor; the second processor is configured to execute the method according to any one of claims 1 to 20 when running the computer program. The computer program is executed by the processor to implement the method according to any one of claims 1 to 20, or to implement the method according to any one of claims 21 to 43.

50. A computer readable storage medium having stored thereon a computer program, wherein, The bitstream is generated by executing the steps of the encoding method according to any one of claims 21 to 43.

51. A computer-readable storage medium having a code stream stored thereon, wherein, ​

Citation Information

Patent Citations

  • Point cloud layering method, decoder, encoder and storage medium

    CN116261856A

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

    CN116636214A

  • Coding point cloud data using direct mode for inter-prediction in g-pcc

    US20230099908A1

  • Point cloud encoding and decoding method and apparatus, device, and storage medium

    WO2024065269A1