Encoding method, decoding method, bitstream, encoder, decoder, and storage medium

By performing transformation operations based on the slices divided by the reference point cloud at the encoding and decoding ends, the time complexity is reduced, the problem of low efficiency of RAHT attribute transformation encoding and decoding is solved, and the point cloud encoding and decoding performance is improved.

WO2025213421A1PCT designated stage Publication Date: 2025-10-16GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP LTD
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2024/087319
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-04-11
Publication Date
2025-10-16

AI Technical Summary

Technical Problem

In the existing geometric point cloud compression coding and decoding framework, the time complexity of RAHT attribute transform coding and decoding is high, resulting in low coding efficiency.

Method used

At the encoding and decoding ends, transform operations are performed on slices divided based on the reference point cloud instead of the entire frame to determine the predicted value of the transform coefficient of the current block, and the transform coefficients are stored in the memory module to reduce time complexity.

Benefits of technology

Improved the efficiency of point cloud attribute encoding and decoding, and enhanced encoding and decoding performance.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2024087319_16102025_PF_FP_ABST
    Figure CN2024087319_16102025_PF_FP_ABST
Patent Text Reader

Abstract

The present application discloses an encoding method, a decoding method, a bitstream, an encoder, a decoder, and a storage medium. The decoding method comprises: determining prediction mode identification information of a current block; when the prediction mode identification information indicates that the current block performs inter prediction in a transform domain, on the basis of a reference block of the current block, determining a transform coefficient predicted value of the current block; decoding a bitstream to determine a transform coefficient residual value of the current block; and on the basis of the transform coefficient predicted value of the current block and the transform coefficient residual value of the current block, determining a transform coefficient of the current block. In this way, time complexity is reduced, and the attribute encoding and decoding efficiency of a point cloud is 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] The embodiments of the present application relate to the technical field of video coding, in particular 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 predicting transform (PT), lifting transform (LT) and region adaptive hierarchical transform (RAHT).

[0003] When performing RAHT transform, the attribute information is adaptively transformed from bottom to top according to the construction level of an octree. Since the existing technical solutions are not ideal, the time complexity is increased when the reference image is transformed and operated at the encoding end and the decoding end, which increases the complexity of RAHT attribute transform coding and decoding and reduces the attribute encoding efficiency.

[0004] SUMMARY

[0005] The embodiments of the present application provide a coding method, a code stream, an encoder, a decoder and a storage medium, which can reduce the time complexity, improve the attribute coding and decoding efficiency of the point cloud, and further improve the coding and decoding performance of the point cloud.

[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] determining prediction mode identification information of a current block;

[0009] when the prediction mode identification information indicates that the current block performs inter-frame prediction in a transform domain, determining a transform coefficient prediction value of the current block according to a reference block of the current block;

[0010] decoding a code stream to determine a transform coefficient residual value of the current block;

[0011] determining a transform coefficient of the current block according to the transform coefficient prediction value of the current block and the transform coefficient residual value of the current block.

[0012] In a second aspect, an encoding method is provided. The method is applied to an encoder and includes the following steps.

[0013] determining prediction mode identification information of the current block;

[0014] when the prediction mode identification information indicates that the current block is subjected to inter-frame prediction in a transform domain, determining a transform coefficient prediction value of the current block according to a reference block of the current block;

[0015] determining a transform coefficient residual value of the current block according to the transform coefficient prediction value of the current block;

[0016] encoding the transform coefficient residual value of the current block, and writing obtained encoding bits into a bitstream.

[0017] In a third aspect, a bitstream is provided. The bitstream is generated by bit encoding to-be-encoded information. The to-be-encoded information includes at least one of a low-frequency coefficient value of a root node and a high-frequency coefficient residual value of a current block.

[0018] In a fourth aspect, an encoder is provided. The encoder includes a first determining unit, a first predicting unit and an encoding unit, and performs the following steps.

[0019] The first determining unit is configured to determine prediction mode identification information of the current block.

[0020] The first predicting unit is configured to, when the prediction mode identification information indicates that the current block is subjected to inter-frame prediction in a transform domain, determine a transform coefficient prediction value of the current block according to a reference block of the current block.

[0021] The first determining unit is further configured to determine a transform coefficient residual value of the current block according to the transform coefficient prediction value of the current block.

[0022] The encoding unit is configured to encode the transform coefficient residual value of the current block, and write obtained encoding bits into a bitstream.

[0023] In a fifth aspect, an encoder is provided. The encoder includes a first memory and a first processor, and performs the following steps.

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

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

[0026] In a sixth aspect, a decoder is provided. The decoder includes a second determining unit, a second predicting unit and a decoding unit, and performs the following steps.

[0027] The second determining unit is configured to determine prediction mode identification information of the current block.

[0028] The second predicting unit is configured to determine a transform coefficient prediction value of the current block according to a reference block of the current block when the prediction mode identification information indicates that the current block is subjected to inter-frame prediction in a transform domain.

[0029] The decoding unit is configured to decode the code stream and determine a transform coefficient residual value of the current block.

[0030] The second determining unit is further configured to determine a transform coefficient of the current block according to the transform coefficient prediction value of the current block and the transform coefficient residual value of the current block.

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

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

[0033] The second processor is configured to execute the method according to the first aspect when running the computer program.

[0034] 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 according to the first aspect or the method according to the second aspect.

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

[0036] The embodiment of the present application provides a coding and decoding method, a code stream, an encoder, a decoder and a storage medium. At the encoding end, prediction mode identifier information of a current block is determined; when the prediction mode identifier information indicates that the current block performs inter-frame prediction in a transform domain, a transform coefficient prediction value of the current block is determined according to a reference block of the current block; a transform coefficient residual value of the current block is determined according to the transform coefficient prediction value of the current block; and the transform coefficient residual value of the current block is encoded and processed, and the obtained encoding bits are written into the code stream. At the decoding end, the prediction mode identifier information of the current block is determined; when the prediction mode identifier information indicates that the current block performs inter-frame prediction in the transform domain, the transform coefficient prediction value of the current block is determined according to the reference block of the current block; the code stream is decoded to determine the transform coefficient residual value of the current block; and the transform coefficient of the current block is determined according to the transform coefficient prediction value of the current block and the transform coefficient residual value of the current block. In this way, at the encoding end or the decoding end, when the current block performs inter-frame prediction in the transform domain, the transform coefficient prediction value of the current block can be determined according to the reference block of the current block. The reference block can be a slice based on a reference point cloud for transform operation, instead of a whole frame based on the reference point cloud for transform operation, so that the time complexity is reduced; and the transform coefficient of the reference block can be stored in a memory module, so that the transform coefficient of the reference block can be directly obtained from the memory module when needed, further reducing the time complexity, thereby improving the attribute coding and decoding efficiency of the point cloud and further improving the coding and decoding performance of the point cloud. BRIEF DESCRIPTION OF DRAWINGS

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

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

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

[0040] FIG. 2B is a schematic diagram of a data storage format corresponding to a point cloud image;

[0041] FIG. 3 is a schematic diagram of a network architecture of point cloud coding and decoding;

[0042] FIG. 4 is a schematic diagram of a composition framework of a G-PCC encoder;

[0043] FIG. 5 is a schematic diagram of a composition framework of a G-PCC decoder;

[0044] FIG. 6 is a schematic diagram of a RAHT transform structure;

[0045] FIG. 7 is a schematic diagram of a RAHT transform process along x, y and z directions;

[0046] FIG. 8A is a schematic diagram of a RAHT forward transform process;

[0047] FIG. 8B is a process diagram of a RAHT inverse transform;

[0048] FIG. 9 is a structure diagram of RAHT attribute inter-prediction encoding;

[0049] FIG. 10 is a hierarchical structure diagram of point cloud attribute RAHT;

[0050] FIG. 11 is a framework diagram of RAHT inter-prediction transform applied to an encoding end;

[0051] FIG. 12 is a framework diagram of RAHT inter-prediction transform applied to a decoding end;

[0052] FIG. 13 is a logical structure diagram of RAHT inter-prediction transform;

[0053] FIG. 14 is a flow diagram of a decoding method provided by an embodiment of the present application;

[0054] FIG. 15 is a logical structure diagram of inter-prediction transform provided by an embodiment of the present application;

[0055] FIG. 16 is a flow diagram of a decoding method provided by an embodiment of the present application;

[0056] FIG. 17 is a flow diagram of a decoding method provided by an embodiment of the present application;

[0057] FIG. 18 is a flow diagram of a decoding method provided by an embodiment of the present application;

[0058] FIG. 19 is a flow diagram of an encoding method provided by an embodiment of the present application;

[0059] FIG. 20 is a framework diagram of inter-prediction transform applied to a decoding end provided by an embodiment of the present application;

[0060] FIG. 21 is a framework diagram of inter-prediction transform applied to an encoding end provided by an embodiment of the present application;

[0061] FIG. 22 is a component structure diagram of an encoder provided by an embodiment of the present application;

[0062] FIG. 23 is a specific hardware structure diagram of an encoder provided by an embodiment of the present application;

[0063] FIG. 24 is a component structure diagram of a decoder provided by an embodiment of the present application;

[0064] FIG. 25 is a specific hardware structure diagram of a decoder provided by an embodiment of the present application;

[0065] FIG. 26 is a schematic diagram of a composition structure of a coding system provided by an embodiment of the present application. DETAILED DESCRIPTION

[0066] In order to enable a more detailed understanding of the features and technical content 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.

[0067] 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 be limiting of the present application.

[0068] In the following description, reference is made to "some embodiments", 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.

[0069] It should also be noted that the terms "first", "second", "third" used 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 in 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.

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

[0071] A point cloud is a set of discrete points that are irregularly distributed in a three-dimensional space, expressing the spatial structure and surface properties of a three-dimensional object or scene. These points contain geometric information for representing spatial positions and attribute information for representing the appearance texture of the point cloud. FIG. 1A shows a three-dimensional point cloud image and FIG. IB shows a local enlarged view of the three-dimensional point cloud image, and it can be seen that the point cloud surface is composed of densely distributed points.

[0072] A two-dimensional image has information expressed at each pixel point, and the distribution is regular, so it does not need to record the position information. However, the points in the point cloud have randomness and irregularity in the three-dimensional space, so the position of each point in the space needs to be recorded to completely express a point cloud. Similar to a two-dimensional image, each position has corresponding attribute information during the acquisition process, usually including color information and reflectance information. The color information reflects the color of the object, usually represented by RGB; the reflectance information reflects the surface material of the object, usually represented by reflectance. The point cloud data is usually composed of geometric information (x, y, z) representing the three-dimensional space position information and attribute information representing color information (r, g, b) and reflectance information (reflectance) and the like. For example, the reflectance information 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. Among them, Y represents brightness (Luma), Cb (U) represents blue color difference, and Cr (V) represents red color difference.

[0073] Exemplarily, the point cloud obtained according to the laser measurement principle can include three-dimensional coordinate information of the point and reflectance information of the point. For another example, the point cloud obtained according to the photogrammetry principle can include three-dimensional coordinate information of the point and three-dimensional color information of the point. For another example, the point cloud obtained by combining the laser measurement and the photogrammetry principle can include three-dimensional coordinate information of the point, reflectance information of the point, and three-dimensional color information of the point.

[0074] As shown in FIGS. 2A and 2B, a point cloud image and its corresponding data storage format 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 “.ply” format, represented by ASCII code, and 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).

[0075] The point cloud can be divided into the following categories according to the acquisition method:

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

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

[0078] Dynamic acquisition of point cloud: the device for acquiring point cloud is in motion.

[0079] For example, point clouds are divided into two categories according to their uses:

[0080] Category one: machine perception point cloud, which can be used in autonomous navigation systems, real-time inspection systems, geographic information systems, visual sorting robots, rescue robots, etc.

[0081] Category two: human eye perception point cloud, which can be used in digital cultural heritage, free-view broadcast, three-dimensional immersive communication, three-dimensional immersive interaction, etc.

[0082] Point cloud 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 cloud is obtained by directly sampling real objects, so it is 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, and three-dimensional reconstruction of biological tissues and organs, etc.

[0083] The acquisition of point cloud mainly has the following ways: computer generation, 3D laser scanning, 3D photogrammetry, etc. A computer can generate point cloud of virtual three-dimensional objects and scenes; 3D laser scanning can obtain point cloud of static real-world three-dimensional objects or scenes, and can obtain million-level point cloud per second; 3D photogrammetry can obtain point cloud of dynamic real-world three-dimensional objects or scenes, and can obtain ten million-level point cloud per second. These point cloud acquisition technologies reduce the cost and time period of point cloud data acquisition, and improve the accuracy of data, further promoting the practical application of point cloud. Due to the continuous industrialization of point cloud data acquisition methods, it is possible to obtain a large amount of point cloud data. However, with the growth of application demand, the processing of massive 3D point cloud data has encountered a bottleneck in storage space and transmission bandwidth.

[0084] 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 contains 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. Correspondingly, the data volume of a 10s 1280 x 720 two-dimensional video with a YUV sampling format of 4:2:0 and a frame rate of 30 fps is about 1280 x 720 x 12 bits x 30 fps x 10s = 0.39 GB, and the data volume of a 10s two-view three-dimensional video is about 0.39 x 2 = 0.78 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.

[0085] 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 is also 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.

[0086] 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, and can be based on Test Model Compression 13 (TMC13). The V-PCC coding framework can be used for compression of the second type of dynamic point cloud, and 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.

[0087] The embodiment of the present application provides a network architecture of a point cloud coding system comprising a decoding method and an encoding method, and Figure 3 is a schematic diagram of a network architecture of a point cloud coding provided by the embodiment of the present application. As shown in Figure 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 a point cloud coding function, 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. Wherein, the decoder or the encoder in the embodiment of the present application can be the above-mentioned electronic devices.

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

[0089] The following describes the related technologies by taking a G-PCC coding framework as an example.

[0090] It can be understood that in the point cloud G-PCC coding framework, firstly, the point cloud data is divided into multiple slices through slice division for the input point cloud. In each slice, the geometry information of the point cloud and the attribute information corresponding to each point are encoded separately.

[0091] Figure 4 is a schematic diagram of a composition framework of a G-PCC encoder. As shown in Figure 4, the G-PCC encoder is applied to a point cloud encoder. In the G-PCC coding framework, the input point cloud is divided into slices, and then the slices are independently encoded. In the slice, the geometry information of the point cloud and the attribute information corresponding to the points in the point cloud are encoded separately. The G-PCC encoder firstly encodes the geometry information. The encoder performs coordinate conversion on the geometry information, so that all the point clouds are contained in a bounding box; and then quantization is performed, and the quantization mainly plays a role of scaling. Due to the quantization rounding, the geometry information of a part of points is the same, and whether to remove the repeated points is determined according to the parameters. The quantization and the removal of the repeated points are also called the voxelization process. Next, the bounding box is divided based on an octree. According to different octree division levels, the encoding of the geometry information is divided into two frameworks based on an octree and a triangular facet set.

[0092] In the octree-based geometry information coding framework, the bounding box is octree-divided into 8 child cubes, and the occupancy bits of the child cubes are recorded (where 1 is non-empty and 0 is empty). The non-empty child cubes are further octree-divided, and the division is usually stopped when the resulting leaf nodes are 1x1x1 unit cubes. In this process, the occupancy bits are intra-predicted using the spatial correlation between the node and its surrounding nodes, and finally CABAC coding based on the context model is performed to generate a binary geometry bitstream, i.e. a geometry code stream.

[0093] In the triangle patch set-based geometry information coding framework, octree division is also performed first, but the difference is that the octree-based geometry information coding method does not need to divide the point cloud into unit cubes with an edge length of 1x1x1, but stops dividing when the edge length of the block is W. Based on the distribution of the point cloud in each block, a surface is formed, and at most twelve intersection points (vertices) are obtained between the surface and the twelve edges of the block. Finally, the coordinates of each vertex of each block are sequentially encoded to generate a binary geometry bitstream, i.e. a geometry code stream.

[0094] After completing the geometry information coding, the G-PCC encoder reconstructs the geometry information and encodes the attribute information of the point cloud using the reconstructed geometry information. Currently, the attribute coding of the point cloud mainly encodes the color information of the points in the point cloud. First, the encoder can perform color space conversion on the color information of the points, for example, when the color information of the points in the input point cloud is represented using the RGB color space, the encoder can convert the color information from the RGB color space to the YUV color space. Then, the point cloud is recolored using the reconstructed geometry information, so that the uncoded attribute information corresponds to the reconstructed geometry information. In color information coding, there are mainly two transformation methods, one is distance-based lifting transformation depending on level of detail (LOD) division, and the other is direct region adaptive hierarchal transform (RAHT). Both methods transform the color information from the spatial domain to the frequency domain to obtain high-frequency coefficients and low-frequency coefficients, and finally quantize the coefficients and perform arithmetic coding on the quantized coefficients to generate a binary attribute bitstream, i.e. an attribute code stream.

[0095] FIG. 5 is a schematic diagram of a constituent framework of a G-PCC decoder. As shown in FIG. 5, the G-PCC decoder is applied to a point cloud decoder. In the G-PCC decoding framework, after obtaining a binary code stream, the geometry bit stream and the attribute bit stream in the binary code stream are respectively decoded independently. In the decoding of the geometry bit stream, the geometry information of the point cloud is obtained through arithmetic decoding-synthetic octree-surface fitting-reconstruction geometry-inverse coordinate transformation; in the decoding of the attribute bit stream, the attribute information of the point cloud is obtained through arithmetic decoding-inverse quantization-LOD-based inverse lifting or RAHT-based inverse transformation-inverse color conversion, and based on the geometry information and the attribute information, the original slice can be restored; after slice merging, the three-dimensional image model of the input point cloud can be restored.

[0096] It should be noted that, as shown in FIG. 4 or FIG. 5, the current G-PCC geometry coding can be divided into octree-based geometry coding and prediction tree-based geometry coding. The current G-PCC attribute coding contains three attribute coding methods: predicting transform (PT), lifting transform (LT) and region adaptive hierarchical transform (RAHT). Among them, the first two are point cloud prediction coding based on the generation order of LOD, and RAHT is an adaptive transform of attribute information from bottom to top according to the construction level of octree.

[0097] The following describes the point cloud attribute coding method in detail taking the region adaptive hierarchical transform as an example.

[0098] Region adaptive hierarchical transform (RAHT) is a Haar wavelet transform, which can transform the point cloud attribute information from spatial domain to frequency domain, further reducing the correlation between point cloud attributes. The main idea is to transform the nodes in each layer from X, Y and Z dimensions in a bottom-up manner according to the octree structure (as shown in FIG. 7), and iterate until the root node of the octree. As shown in FIG. 6, the basic idea is to perform wavelet transform based on the hierarchical structure of the octree, associate the attribute information with the octree nodes, recursively transform the attributes of the occupied nodes in the same parent node in a bottom-up manner, transform the nodes in each layer from X, Y and Z dimensions, and transform to the root node of the octree. In the process of hierarchical transform, the low pass / low frequency (DC) coefficients obtained after transforming the nodes in the same layer are passed to the nodes in the previous layer for further transformation, and all high pass / high frequency (AC) coefficients can be encoded by an arithmetic encoder.

[0099] In the transformation process, the DC coefficients (direct current component) of the same layer of nodes after transformation will be passed to the previous layer for further transformation, and the AC coefficients (alternating current component) after transformation of each layer will be quantized and coded. The main transformation process will be introduced below.

[0100] FIG. 8A is a schematic diagram of the process of RAHT forward transformation, and FIG. 8B is a schematic diagram of the process of RAHT inverse transformation. For the corresponding transformation and inverse transformation process of RAHT, it is assumed that g′ L,2x,y,z and g′L,2x+1,y,z are two attribute DC coefficients of the neighboring nodes in the L layer. After linear transformation, the information of the L-1 layer is the AC coefficient f′ L-1,x,y,z and the DC coefficient g′ L-1,x,y,z ; then, f′ L-1,x,y,z will no longer be transformed and will be directly quantized and coded, and g′ L-1,x,y,z will continue to search for neighbors for transformation, and if no neighbors are found, it will be directly passed to the L-2 layer, i.e., the RAHT transformation is only valid for nodes with neighbors, and nodes without neighbors will be directly passed to the previous layer. In the above transformation process, the weights (the number of non-empty child nodes in the node) corresponding to g′ L,2x,y,z and g′L,2x+1,y,z are w′ L,2x,y,z and w′L,2x+1,y,z (abbreviated as w′0 and w′1), and the weight of g′ L-1,x,y,z is w′ L-1,x,y,z , and the general transformation formula is:

[0101] where T w0,w1 is the transformation matrix:

[0102] The transformation matrix will be updated adaptively according to the weights corresponding to each point. The above process will be iteratively updated according to the division structure of the octree until the root node of the octree.

[0103] In a specific implementation, for the region adaptive hierarchical inter-prediction transform coding, the process of G-PCC attribute inter-prediction coding is similar to that of intra-prediction coding, which is described as follows:

[0104] First, the RAHT attribute transform coding structure is constructed based on the geometric information, i.e., the transformation is continuously performed at the voxel level until the root node is obtained, thereby completing the hierarchical transform coding of the entire attribute. In this way, the intra-coding structure and the inter-coding structure are constructed. The inter-coding structure of the RAHT attribute can be seen from FIG. 9.

[0105] As shown in Fig. 9, first, the co-located prediction node of the current node to be encoded is obtained in the reference image using the geometry information of the current node to be encoded, and then the prediction attribute of the current node to be encoded is obtained using the geometry information and attribute information of the reference node.

[0106] Secondly, the attribute prediction value of the current node to be encoded is obtained in two different ways as follows:

[0107] ① The inter-frame prediction node of the current node is valid, i.e., the co-located node exists, and the attribute of the prediction node is directly taken as the attribute prediction value of the current node to be encoded.

[0108] ② The inter-frame prediction node of the current node is invalid, i.e., the co-located node does not exist, and the attribute prediction value of the intra-frame neighboring node is taken as the attribute prediction value of the node to be encoded.

[0109] Finally, the attribute of the current node to be encoded is predicted using the obtained attribute prediction value, thereby completing the whole attribute prediction and encoding.

[0110] In another specific implementation, for the hierarchy of the RAHT inter-frame transform, it can specifically include,

[0111] a. One point cloud can be one frame (or "one image"), and one frame (or "one image") can be divided into multiple slices.

[0112] b. For the point cloud to be decoded, it is decoded independently according to the slice.

[0113] c. One slice is one unit of RAHT transform / inverse transform, and one slice performs one RAHT transform / inverse transform.

[0114] d. One RAHT transform / inverse transform can include multiple transform layers.

[0115] e. Each transform layer can include multiple RAHT transform blocks, and the intra-frame prediction and the inter-frame prediction are both for the transform blocks.

[0116] Exemplarily, Fig. 10 is a schematic diagram of the hierarchy of the point cloud attribute RAHT. As shown in Fig. 10, one point cloud can be divided into multiple slices, such as slice 1 and slice 2. For each slice, taking slice 1 as an example, slice 1 can perform one RAHT transform / inverse transform, such as obtaining RAHT transform layer 1, and the RAHT transform layer 1 can include multiple RAHT transform blocks, such as RAHT transform block 1 and RAHT transform block 2.

[0117] In a specific implementation, FIG. 11 is a schematic diagram of a framework of RAHT inter-frame prediction transform applied to an encoding end. As shown in FIG. 11, point cloud geometry octree decomposition is performed on geometry information of a point cloud to be encoded, RAHT transform is performed on attribute information of the point cloud to be encoded, and transform coefficients of the point cloud to be encoded can be determined; a transform coefficient prediction value of the point cloud to be encoded can be determined according to RAHT inter-frame prediction or RAHT intra-frame prediction; a transform coefficient residual value can be obtained by subtracting the transform coefficient prediction value from the transform coefficients of the point cloud to be encoded; and quantized transform coefficient residual values can be obtained by quantizing the transform coefficient residual value. On one hand, the quantized transform coefficient residual values can be encoded and written into an attribute bitstream; on the other hand, the quantized transform coefficient residual values can be dequantized to obtain reconstructed transform coefficient residual values; the reconstructed transform coefficients can be obtained by adding the reconstructed transform coefficient residual values and the transform coefficient prediction value; and reconstructed point cloud attributes can be obtained by performing RAHT inverse transform on the reconstructed transform coefficients. In addition, in the RAHT inter-frame prediction process, the encoding end also involves operations of octree decomposition on geometry information of a reference point cloud and RAHT transform on attribute information of the reference point cloud.

[0118] In another specific implementation, FIG. 12 is a schematic diagram of a framework of RAHT inter-frame prediction transform applied to a decoding end. As shown in FIG. 12, point cloud geometry octree decomposition is performed on geometry information of a point cloud to be decoded, and the attribute bitstream is parsed to obtain quantized transform coefficient residual values; the quantized transform coefficient residual values are dequantized to obtain transform coefficient residual values of the point cloud to be decoded; a transform coefficient prediction value of the point cloud to be decoded can be determined according to RAHT inter-frame prediction or RAHT intra-frame prediction; the transform coefficients of the point cloud to be decoded can be obtained by performing addition operation on the transform coefficient residual values and the transform coefficient prediction value; and point cloud attributes can be reconstructed by performing RAHT inverse transform on the transform coefficients. In addition, in the RAHT inter-frame prediction process, the decoding end also involves operations of octree decomposition on geometry information of a reference point cloud and RAHT transform on attribute information of the reference point cloud.

[0119] That is, the related art needs to perform RAHT transform operation on a reference point cloud at the encoding end and the decoding end when performing region adaptive hierarchical inter-frame prediction transform coding, which greatly increases the time complexity and brings high algorithm complexity. In addition, as shown in FIG. 13, when the current point cloud is decoded, the reference point cloud is used as a reference frame for reference, the reference frame is regarded as a slice, and only one RAHT transform (i.e., only one RAHT transform layer) is performed as a reference, and the information of different RAHT transform layers of the reference image is not retained, which increases the complexity of RAHT attribute transform coding and reduces the attribute coding efficiency.

[0120] Based on this, the embodiment of the present application provides an encoding method, determining prediction mode identification information of a current block; when the prediction mode identification information indicates that the current block performs inter-frame prediction in a transform domain, determining a transform coefficient prediction value of the current block according to a reference block of the current block; determining a transform coefficient residual value of the current block according to the transform coefficient prediction value of the current block; and performing encoding processing on the transform coefficient residual value of the current block, and writing the obtained encoding bits into a code stream. The embodiment of the present application also provides a decoding method, determining prediction mode identification information of a current block; when the prediction mode identification information indicates that the current block performs inter-frame prediction in a transform domain, determining a transform coefficient prediction value of the current block according to a reference block of the current block; decoding a code stream to determine a transform coefficient residual value of the current block; and determining a transform coefficient of the current block according to the transform coefficient prediction value of the current block and the transform coefficient residual value of the current block.

[0121] In this way, at the encoding end or the decoding end, when the current block performs inter-frame prediction in the transform domain, the transform coefficient prediction value of the current block can be determined according to the reference block of the current block. The reference block can be transformed based on a slice divided based on a reference point cloud, instead of being transformed based on the entire frame of the reference point cloud, thereby reducing the time complexity. Moreover, the transform coefficients of the reference block can be stored in a memory module, so that the transform coefficients of the reference block can be directly obtained from the memory module when needed, further reducing the time complexity, thereby improving the attribute encoding and decoding efficiency of the point cloud, and further improving the encoding and decoding performance of the point cloud.

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

[0123] In an embodiment of the present application, FIG. 14 is a flowchart of a decoding method provided by an embodiment of the present application. As shown in FIG. 14, the method can include the following steps.

[0124] S1401, determining prediction mode identification information of a current block.

[0125] It should be noted that the decoding method of the embodiment of the present application is applied to a decoder, and the decoding method specifically refers to a transform domain prediction method of point cloud attributes. The transform domain prediction of the current block can include inter-frame prediction in a transform domain and intra-frame prediction in a transform domain. When the current block performs inter-frame prediction in a transform domain, the time complexity can be reduced.

[0126] It should also be noted that in the embodiment of the present application, the current block can be a transform block to be decoded in the current point cloud.

[0127] In the embodiments of the present application, mode indication information (or mode flag) in the form of some syntax elements can be written in the bitstream. In this way, by parsing the values of the syntax elements in the bitstream, the prediction mode identification information of the current block can be determined. For example, a first syntax element can be used to indicate the prediction mode identification information of the current block. In this way, by decoding the bitstream, the value of the first syntax element is determined; and according to the value of the first syntax element, the prediction mode identification information of the current block can be determined.

[0128] In the embodiments of the present application, if the value of the first syntax element is a first value, it is determined that the current block performs inter-frame prediction in the transform domain; and if the value of the first syntax element is a second value, it is determined that the current block performs intra-frame prediction in the transform domain. The first value and the second value are different. For example, the first value can be 1, and the second value can be 0; or the first value can be true, and the second value can be false.

[0129] Considering the bit overhead in the bitstream, the first syntax element can not be written in the bitstream in the embodiments of the present application. In some embodiments, for the prediction mode identification information of the current block, the method can further include: if there is a reference block in the reference point cloud that satisfies the preset inter-frame condition with the current block, it is determined that the prediction mode identification information indicates that the current block performs inter-frame prediction in the transform domain; and if there is no reference block in the reference point cloud that satisfies the preset inter-frame condition with the current block, it is determined that the prediction mode identification information indicates that the current block performs intra-frame prediction in the transform domain.

[0130] That is to say, in the embodiments of the present application, the determination of the prediction mode identification information of the current block can be determined by the first syntax element in the bitstream, or can be determined according to whether the inter-frame reference block is found in the reference point cloud as the judgment condition of the prediction mode identification information, or can be determined by other judgment conditions, which are not limited here.

[0131] For example, when the inter-frame reference block is found in the reference point cloud as the judgment condition of the prediction mode identification information, if the reference block that satisfies the preset inter-frame condition can be found in the reference point cloud for the current block, it is determined that the current block performs inter-frame prediction in the transform domain; and if the reference block that satisfies the preset inter-frame condition cannot be found in the reference point cloud for the current block, it is determined that the current block performs intra-frame prediction in the transform domain. Here, the reference point cloud is the reference frame of the current point cloud where the current block is located.

[0132] S1402, when the prediction mode identification information indicates that the current block performs inter-frame prediction in the transform domain, the prediction value of the transform coefficient of the current block is determined according to the reference block of the current block.

[0133] In the embodiments of the present application, if the current block is subjected to inter-frame prediction in a transform domain, the reference block of the current block is first determined, and then the prediction value of the transform coefficient of the current block is determined according to the reference block of the current block.

[0134] In some embodiments, the method can comprise: determining the reference block of the current block according to the slice identification information in the reference point cloud.

[0135] It should be noted that, in the embodiments of the present application, the reference point cloud is divided into slices, and at least one slice of the reference point cloud is obtained, wherein the reference block is located in the reference slice.

[0136] It should also be noted that, in the embodiments of the present application, the slice identification (sliceID) can be used to indicate the reference slice. In this way, the reference block of the current block can be determined from the reference slice indicated by the slice identification information.

[0137] That is, in the embodiments of the present application, the reference block of the current block is subjected to transform operation based on the slice of the reference point cloud, rather than the whole frame of the reference point cloud. As shown in FIG. 15, the reference point cloud can be divided into at least two slices, such as slice1-ref1 and slice2-ref2. Transforming slice1-ref1 can obtain the RAHT transform layer ref-1, and the RAHT transform layer ref-1 can include the RAHT transform block ref1-1, the RAHT transform block ref1-2, etc. Transforming slice2-ref2 can obtain the RAHT transform layer ref-2, and the RAHT transform layer ref-2 can include the RAHT transform block ref2-1, the RAHT transform block ref2-2, etc. In this way, by avoiding RAHT transform of the whole frame of the reference point cloud, the time complexity can be reduced. Moreover, the transform coefficients at the slice level can be reserved. Since the RAHT transform of the current point cloud is subjected to inter-frame prediction according to the slice level, using the transform coefficients at the slice level as the reference can improve the accuracy of inter-frame prediction. Meanwhile, some slices of the reference point cloud can be adaptively selected for inter-frame prediction, and some slices can not be used for inter-frame prediction, thereby improving the flexibility of prediction and saving memory.

[0138] In some embodiments, for determining the reference block of the current block, the method can further comprise: if a candidate reference block existing in the reference point cloud satisfies a preset inter-frame condition with the current block, determining the candidate reference block as the reference block of the current block.

[0139] In the embodiments of the present application, if the current block can find an inter-frame reference block in the reference point cloud, i.e., a candidate reference block satisfying the preset inter-frame condition with the current block, then the current block performs inter-frame prediction in the transform domain at this time, and the found candidate reference block is taken as the reference block of the current block. Wherein, whether the found candidate reference block satisfies the preset inter-frame condition with the current block can be determined by the following possible implementation manners.

[0140] In a possible implementation manner, the candidate reference block existing in the reference point cloud satisfies the preset inter-frame condition with the current block, which can include that the coordinate information of the candidate reference block is the same as the coordinate information of the current block, the slice identification information where the candidate reference block is located is the same as the slice identification information where the current block is located, and the transform layer information where the candidate reference block is located is the same as the current layer information where the current block is located.

[0141] In another possible implementation manner, the candidate reference block existing in the reference point cloud satisfies the preset inter-frame condition with the current block, which can include that the coordinate information of the parent transform block of the candidate reference block is the same as the coordinate information of the parent transform block of the current block, the slice identification information where the candidate reference block is located is the same as the slice identification information where the current block is located, and the transform layer information where the candidate reference block is located is the same as the current layer information where the current block is located.

[0142] In the embodiments of the present application, the coordinate information can include geometric position (x, y, z) information and Morden code information, etc. In addition, in the embodiments of the present application, the absolute coordinate information of the candidate reference block can be determined according to the coordinate information of the candidate reference block and the slice identification information where the candidate reference block is located, and the absolute coordinate information of the parent transform block of the candidate reference block can be determined according to the coordinate information of the parent transform block of the candidate reference block and the slice identification information where the candidate reference block is located.

[0143] In yet another possible implementation manner, the candidate reference block existing in the reference point cloud satisfies the preset inter-frame condition with the current block, which can include that the absolute coordinate information of the candidate reference block is the same as the absolute coordinate information of the current block, and the transform layer information where the candidate reference block is located is the same as the current layer information where the current block is located.

[0144] In yet another possible implementation manner, the candidate reference block existing in the reference point cloud satisfies the preset inter-frame condition with the current block, which can include that the absolute coordinate information of the parent transform block of the candidate reference block is the same as the absolute coordinate information of the parent transform block of the current block, and the transform layer information where the candidate reference block is located is the same as the current layer information where the current block is located.

[0145] In the embodiments of the present application, the absolute coordinate information of the candidate reference block can be determined according to the coordinate information of the candidate reference block and the slice identification information (sliceID) where the candidate reference block is located.

[0146] In some embodiments, for the absolute coordinate information of the candidate reference block, the method can comprise: determining the coordinate information of the candidate reference block; and determining the absolute coordinate information of the candidate reference block according to the coordinate information of the candidate reference block and the coordinate offset information of the slice identifier information where the candidate reference block is located relative to the origin. Specifically, the absolute coordinate information of the candidate reference block can be obtained by adding the coordinate information of the candidate reference block to the coordinate offset information of the slice identifier information where the candidate reference block is located relative to the origin.

[0147] It should be further noted that, for the candidate reference block and the current block satisfying the preset inter-frame condition, the preset inter-frame condition herein can be the above-mentioned several possible implementation manners, or other conditions that can be used to find an inter-frame reference block, which is not limited herein.

[0148] Thus, for the reference block found in the reference point cloud, the reference block can specifically comprise: the coordinate information of the reference block is the same as the coordinate information of the current block, the slice identifier information where the reference block is located is the same as the slice identifier information where the current block is located, and the transform layer information where the reference block is located is the same as the current layer information where the current block is located; or the coordinate information of the parent transform block of the reference block is the same as the coordinate information of the parent transform block of the current block, the slice identifier information where the reference block is located is the same as the slice identifier information where the current block is located, and the transform layer information where the reference block is located is the same as the current layer information where the current block is located; or the absolute coordinate information of the reference block is the same as the absolute coordinate information of the current block, and the transform layer information where the reference block is located is the same as the current layer information where the current block is located; or the absolute coordinate information of the parent transform block of the reference block is the same as the absolute coordinate information of the parent transform block of the current block, and the transform layer information where the reference block is located is the same as the current layer information where the current block is located, and the like, which is not limited herein.

[0149] It should be further noted that, in the embodiments of the present application, for the absolute coordinate information of the reference block, the coordinate information of the reference block can be determined, and then the absolute coordinate information of the reference block can be determined according to the coordinate information of the reference block and the coordinate offset information of the slice identifier information where the reference block is located relative to the origin; for the absolute coordinate information of the parent transform block of the reference block, the coordinate information of the parent transform block of the reference block can be determined, and then the absolute coordinate information of the parent transform block of the reference block can be determined according to the coordinate information of the parent transform block of the reference block and the coordinate offset information of the slice identifier information where the reference block is located relative to the origin.

[0150] It can be understood that, after the reference block of the current block is determined, the transform coefficient prediction value of the current block can be determined according to the reference block of the current block, which can specifically comprise: determining the transform coefficient prediction value of the current block according to the transform coefficient of the reference block.

[0151] In a specific embodiment, when the current block is subjected to inter-frame prediction in the transform domain, referring to FIG. 16, the method can comprise:

[0152] S1601, determining attribute information of the reference slice based on the reference slice indicated by the slice identification information.

[0153] S1602, performing region adaptive hierarchical transform on the attribute information of the reference slice to determine transform coefficients of at least one transform layer.

[0154] S1603, determining transform coefficients of the reference block from the transform coefficients of the at least one transform layer.

[0155] S1604, determining a transform coefficient prediction value of the current block according to the transform coefficients of the reference block.

[0156] In the embodiments of the present application, in order to reduce the time complexity, when determining the transform coefficients of the reference block, the RAHT transform can be performed based on the slice (i.e., the reference slice) divided by the reference point cloud, rather than based on the entire frame of the reference point cloud. In this way, the transform coefficients at the slice level can be reserved. Since the RAHT transform of the current point cloud is inter-frame prediction based on the slice level, using the transform coefficients at the slice level as a reference, the transform coefficient prediction value of the current block can be more accurately obtained, thereby improving the accuracy of inter-frame prediction. At the same time, it is also possible to adaptively select some slices of the reference point cloud for inter-frame prediction, and some slices are not used for inter-frame prediction, thereby further improving the flexibility of prediction and saving memory.

[0157] That is, in the embodiments of the present application, the transform coefficients of the reference block can be determined by performing RAHT transform on the slice (i.e., the reference slice) divided by the reference point cloud. Specifically, by performing RAHT transform on the attribute information of the reference slice, the transform coefficients of at least one transform layer can be determined. Each transform layer can include at least one transform block, from which the transform coefficients of the reference block are obtained. Then, the transform coefficients of the reference block are used as the transform coefficient prediction value of the current block.

[0158] In another specific embodiment, for the transform coefficients of the reference block, the method can include: decoding a code stream to determine a transform coefficient residual value of the reference block; and determining the transform coefficients of the reference block according to the transform coefficient prediction value of the reference block and the transform coefficient residual value of the reference block.

[0159] In the embodiments of the present application, when the transform coefficients of the reference block need to be predicted, the code stream can be decoded to determine the quantized coefficient residual value of the reference block; the quantized coefficient residual value of the reference block is dequantized to determine the transform coefficient residual value of the reference block; and then the transform coefficients of the reference block are determined according to the transform coefficient prediction value of the reference block and the transform coefficient residual value of the reference block.

[0160] In yet another specific embodiment, for the transform coefficients of the reference block, the method can comprise: decoding the bitstream to determine the transform coefficients of the reference block.

[0161] In the embodiments of the present application, when the transform coefficients of the reference block do not need to be predicted, the quantized coefficients of the reference block can be determined by decoding the bitstream, and the transform coefficients of the reference block can be determined by inverse quantizing the quantized coefficients of the reference block.

[0162] It should be noted that after the transform coefficients of the reference block are obtained, they can be saved in the memory module. In a specific embodiment, the method can further comprise: determining storage information of the reference block; and saving the storage information of the reference block in the memory module. The storage information of the reference block can include at least one of the following: the transform coefficients of the reference block, coordinate information of the reference block, slice identification information in which the reference block is located, and transform layer information in which the reference block is located.

[0163] It should be further noted that after the storage information of the reference block is saved in the memory module, in some embodiments, when the current block is subjected to inter-frame prediction in the transform domain, referring to FIG. 17, the method can comprise:

[0164] S1701, determining the transform coefficients of the reference block according to the corresponding storage information of the reference block in the memory module.

[0165] S1702, determining the transform coefficient prediction value of the current block according to the transform coefficients of the reference block.

[0166] It should be noted that in the embodiments of the present application, the storage information corresponding to the reference block can be pre-stored in the memory module. As shown in FIG. 15, based on a plurality of slices of the reference point cloud, the information of a plurality of RAHT transform layers of the reference point cloud can be reserved in the memory module. In this way, after the reference block of the current block is determined, the transform coefficients of the reference block can be quickly obtained from the memory module according to the slice ID in which the reference block is located, and then the transform coefficients of the reference block can be used as the transform coefficient prediction value of the current block, so as to further reduce the time complexity and make the inter-frame prediction more accurate.

[0167] In some embodiments, the storage information corresponding to the reference block in the memory module can include at least one of the following: the transform coefficients of the reference block, coordinate information of the reference block, slice identification information in which the reference block is located, transform layer information in which the reference block is located, and absolute coordinate information of the reference block.

[0168] It should be further noted that in the embodiments of the present application, the absolute coordinate information of the reference block can be determined according to the coordinate information of the reference block and the slice identification information in which the reference block is located. In some embodiments, for the absolute coordinate information of the reference block, the method can include: determining the coordinate information of the reference block; and determining the absolute coordinate information of the reference block according to the coordinate information of the reference block and the coordinate offset information of the slice identification information in which the reference block is located relative to the origin. Specifically, the absolute coordinate information of the reference block can be obtained by adding the coordinate information of the reference block to the coordinate offset information of the slice identification information in which the reference block is located relative to the origin.

[0169] It should be further noted that in the embodiments of the present application, the coordinate information can include geometric position (x, y, z) information and Morton code information, etc. Taking the reference block as an example, the coordinate information of the reference block refers to the position information of the reference block when the RAHT transform is performed, and the absolute coordinate information of the reference block refers to the absolute position information of the reference block in the reference frame.

[0170] In this way, if the current block performs the inter-frame prediction in the transform domain, after the reference block satisfying the preset inter-frame condition is found in the reference frame, the transform coefficient prediction value of the current block can be determined according to the transform coefficient of the reference block.

[0171] In some embodiments, when the prediction mode identification information indicates that the current block performs the intra-frame prediction in the transform domain, after step S1401, referring to FIG. 18, the method can further include:

[0172] S1801, when the prediction mode identification information indicates that the current block performs the intra-frame prediction in the transform domain, determining the transform coefficient prediction value of the neighboring block of the current block, the transform coefficient prediction value of the parent transform block of the current block, and the transform coefficient prediction value of the neighboring block of the parent transform block.

[0173] S1802, performing a weighted operation on the transform coefficient prediction value of the neighboring block of the current block, the transform coefficient prediction value of the parent transform block of the current block, and the transform coefficient prediction value of the neighboring block of the parent transform block to determine the transform coefficient prediction value of the current block.

[0174] That is, if the candidate reference block satisfying the preset inter-frame condition cannot be found in the reference point cloud, it is determined that the current block performs the intra-frame prediction in the transform domain, and at this time, the obtained intra-frame prediction value can be used as the transform coefficient prediction value of the current block. The intra-frame prediction value can be obtained by performing a weighted calculation on the transform coefficient prediction value of the neighboring block of the current block, the transform coefficient prediction value of the parent transform block of the current block, and the transform coefficient prediction value of the neighboring block of the parent transform block.

[0175] It should be further noted that in the embodiments of the present application, the transform coefficients can include low frequency coefficients and high frequency coefficients. The low frequency coefficients can also be referred to as direct current coefficients or DC coefficients, and the high frequency coefficients can also be referred to as alternating current coefficients or AC coefficients. It should be noted that the transform coefficient prediction value herein mainly refers to the high frequency coefficient prediction value of the current block.

[0176] S1403, decoding the code stream to determine the transform coefficient residual value of the current block.

[0177] S1404, determining the transform coefficient of the current block according to the transform coefficient prediction value of the current block and the transform coefficient residual value of the current block.

[0178] In the embodiments of the present application, steps S1401-S1402 and step S1403 have no execution order. For example, steps S1401-S1402 can be executed first, and then step S1403 can be executed; or step S1403 can be executed first, and then steps S1401-S1402 can be executed; or steps S1401-S1402 and step S1403 can be executed simultaneously, which is not limited here.

[0179] In the embodiments of the present application, decoding the code stream to determine the transform coefficient residual value of the current block can include: decoding the code stream to determine the quantized coefficient residual value of the current block; and dequantizing the quantized coefficient residual value to determine the transform coefficient residual value of the current block.

[0180] In the embodiments of the present application, the transform coefficient of the current block can be obtained by performing an addition operation on the transform coefficient prediction value of the current block and the transform coefficient residual value of the current block.

[0181] It can be understood that in the embodiments of the present application, the method further includes: determining the storage information of the current block; and saving the storage information of the current block into the memory module.

[0182] Further, in some embodiments, the method further includes: saving the storage information of the current block into the memory module when the current point cloud where the current block is located satisfies the condition of being used as a reference point cloud. That is, in the embodiments of the present application, if the frame where the current point cloud is located has the possibility of being used as a reference frame of a subsequent frame, the storage information of the current block can be saved into the memory module; so that when the inter-frame prediction in the transform domain is performed subsequently, the required reference block information can be obtained from the memory module.

[0183] It can also be understood that in the embodiments of the present application, the storage information of the current block can include at least one of the following: the transform coefficient of the current block, the coordinate information of the current block, the slice identification information where the current block is located, the current layer information where the current block is located, and the absolute coordinate information of the current block.

[0184] In some embodiments, for the absolute coordinate information of the current block, the method can comprise: determining the coordinate information of the current block; and determining the absolute coordinate information of the current block according to the coordinate information of the current block and the coordinate offset information of the slice identifier information in which the current block is located relative to the origin.

[0185] That is, in the embodiments of the present application, the absolute coordinate information of the current block can be obtained by performing addition operation on the coordinate information of the current block and the coordinate offset information of the slice identifier information in which the current block is located relative to the origin. In this way, when searching for the reference block, the reference block of the current block can be determined according to that the absolute coordinate information of the candidate reference block is the same as the absolute coordinate information of the current block and the transform layer information in which the candidate reference block is located is the same as the current layer information in which the current block is located, or the reference block of the current block can be determined according to that the absolute coordinate information of the parent transform block of the candidate reference block is the same as the absolute coordinate information of the parent transform block of the current block and the transform layer information in which the candidate reference block is located is the same as the current layer information in which the current block is located, and the like, which are not limited herein.

[0186] In a specific embodiment, the method of decoding the code stream and determining the transform coefficient residual value of the current block can comprise: decoding the code stream and determining the high-frequency coefficient residual value of the current block. Correspondingly, the method of determining the transform coefficient of the current block according to the transform coefficient prediction value of the current block and the transform coefficient residual value of the current block can comprise: determining the high-frequency coefficient value of the current block according to the high-frequency coefficient prediction value of the current block and the high-frequency coefficient residual value of the current block. Here, specifically, the high-frequency coefficient value of the current block can be determined by performing addition operation on the high-frequency coefficient prediction value of the current block and the high-frequency coefficient residual value of the current block.

[0187] In some embodiments, the method can further comprise: determining the geometric information of the current slice; and performing octree decomposition on the geometric information of the current slice to determine at least one transform layer; wherein the at least one transform layer comprises the current layer in which the current block is located.

[0188] In the embodiments of the present application, the slice identifier information (sliceID) in which the current block is located can be used to indicate the current slice. The current slice is determined by slice division of the current point cloud. For the current slice, the geometric information of the current slice is octree decomposed, and RAHT inverse transformation is performed from the root node of the octree upwards, and for each node in each layer, RAHT inverse transformation is performed from the x, y and z dimensions, until the leaf node of the octree is reached.

[0189] In some embodiments, the method further comprises: when the current layer is the L-1 layer in the at least one transform layer, performing region adaptive hierarchical inverse transformation on the transform coefficients of the current block in the L-1 layer to determine the reconstruction attribute information of the node in the L layer; wherein L is a positive integer.

[0190] In some embodiments, the method further comprises decoding the bitstream to determine the low frequency coefficient value of the root node. That is, the low frequency coefficient value of the root node and the high frequency coefficient residual value of each layer are written in the bitstream, so that the decoding end can perform the region adaptive hierarchical inverse transform.

[0191] In the embodiments of the present application, the region adaptive hierarchical inverse transform is performed on the transform coefficients of the current block in the L-1th layer to determine the reconstructed attribute information of the nodes in the Lth layer, and specifically can include: when the current layer is the first transform layer, performing the region adaptive hierarchical inverse transform according to the low frequency coefficient value of the root node and the high frequency coefficient value of the current block in the first layer to determine the reconstructed attribute information of the nodes in the second transform layer; when the current layer is not the first transform layer, determining the direct current coefficient value of the current block in the current layer, and performing the region adaptive hierarchical inverse transform according to the direct current coefficient value of the current block in the current layer and the alternating current coefficient value of the current block in the current layer to determine the reconstructed attribute information of the nodes in the next layer.

[0192] That is, in the embodiments of the present application, the attribute information of the current patch can be inversely transformed by the RAHT from top to bottom along the octree decomposition, and the RAHT is performed on the nodes in each layer from the x, y and z dimensions respectively until the leaf nodes of the octree are transformed. In the process of hierarchical transform, the DC coefficient and the AC coefficient of the nodes in the same layer (L-1th layer) are inversely transformed by the RAHT to obtain the DC coefficient of the next layer (Lth layer), that is, the attribute information of each layer. The transform matrix is updated adaptively according to the weight corresponding to each point. The above process is iteratively updated according to the division structure of the octree until the leaf nodes of the octree.

[0193] Exemplarily, assuming that g′L-1,2x,y,z is the attribute DC coefficient in the L-1th layer and f′L-1,2x,y,z is the attribute AC coefficient in the L-1th layer, then for the attribute DC coefficient in the Lth layer, the calculation formula of the RAHT inverse transform is:

[0194] Based on the RAHT inverse transform, the reconstructed attribute information of the current patch can be determined.

[0195] The embodiment of the present application provides a decoding method, in particular to a decoding scheme of point cloud fast inter-frame attribute transformation. The prediction mode identification information of the current block is determined; when the prediction mode identification information indicates that the current block is subjected to inter-frame prediction in the transform domain, the transform coefficient prediction value of the current block is determined according to the reference block of the current block; the code stream is decoded to determine the transform coefficient residual value of the current block; and the transform coefficient of the current block is determined according to the transform coefficient prediction value of the current block and the transform coefficient residual value of the current block. That is, when the current block is subjected to inter-frame prediction in the transform domain, the transform coefficient prediction value of the current block can be determined according to the reference block of the current block. The reference block can be subjected to transform operation based on the slice of the reference point cloud, instead of subjected to transform operation based on the whole frame of the reference point cloud, so that the time complexity is reduced; and the transform coefficient of the reference block can be stored in the memory module, so that the transform coefficient of the reference block can be directly obtained from the memory module when needed, further reducing the time complexity, thereby improving the attribute coding and decoding efficiency of the point cloud, and further improving the coding and decoding performance of the point cloud.

[0196] In an embodiment of the present application, FIG. 19 is a flowchart of an encoding method provided by the embodiment of the present application. As shown in FIG. 19, the method can include the following steps.

[0197] S1901, determining the prediction mode identification information of the current block.

[0198] It should be noted that the encoding method of the embodiment of the present application is applied to an encoder, and the encoding method specifically refers to a transform domain prediction method of point cloud attribute. The transform domain prediction of the current block can include inter-frame prediction in the transform domain and intra-frame prediction in the transform domain. When the current block is subjected to inter-frame prediction in the transform domain, the time complexity can be reduced.

[0199] It should be further noted that in the embodiment of the present application, the current block can be a transform block to be encoded in the current point cloud.

[0200] In the embodiment of the present application, some mode indication information (or mode flag) in the form of syntax elements can be written in the code stream. In this way, by analyzing the value of the syntax element in the code stream, the prediction mode identification information of the current block can be determined. Exemplarily, the first syntax element can be used to indicate the prediction mode identification information of the current block. In this way, the value of the first syntax element is determined; and the value of the first syntax element is subjected to encoding processing, and the obtained encoding bits are written in the code stream.

[0201] In the embodiments of the present application, if the current block is subjected to inter-frame prediction in the transform domain, the value of the first syntax element is determined as a first value; if the current block is subjected to intra-frame prediction in the transform domain, the value of the first syntax element is determined as a second value. The first value and the second value are different. For example, the first value can be 1, and the second value can be 0; or the first value can be true, and the second value can be false.

[0202] In consideration of the bit overhead in the code stream, the first syntax element can not be written in the code stream in the embodiments of the present application. In some embodiments, for the prediction mode identification information of the current block, the method can further include: if there is a reference block in the reference point cloud that satisfies the preset inter-frame condition with the current block, determining that the prediction mode identification information indicates that the current block is subjected to inter-frame prediction in the transform domain; if there is no reference block in the reference point cloud that satisfies the preset inter-frame condition with the current block, determining that the prediction mode identification information indicates that the current block is subjected to intra-frame prediction in the transform domain.

[0203] That is to say, in the embodiments of the present application, the determination of the prediction mode identification information of the current block can be determined by the first syntax element in the code stream, or can be determined according to whether the inter-frame reference block is found in the reference point cloud as the judgment condition of the prediction mode identification information, or can be determined according to other judgment conditions, which are not limited here.

[0204] Exemplarily, when the inter-frame reference block is found in the reference point cloud as the judgment condition of the prediction mode identification information, if the reference block that satisfies the preset inter-frame condition can be found in the reference point cloud for the current block, it is determined that the current block is subjected to inter-frame prediction in the transform domain; if the reference block that satisfies the preset inter-frame condition cannot be found in the reference point cloud for the current block, it is determined that the current block is subjected to intra-frame prediction in the transform domain. Here, the reference point cloud is the reference frame of the current point cloud where the current block is located.

[0205] S1902, when the prediction mode identification information indicates that the current block is subjected to inter-frame prediction in the transform domain, the transform coefficient prediction value of the current block is determined according to the reference block of the current block.

[0206] In the embodiments of the present application, if the current block is subjected to inter-frame prediction in the transform domain, the reference block of the current block is first determined, and then the transform coefficient prediction value of the current block is determined according to the reference block of the current block.

[0207] In some embodiments, the method can include: determining the reference block of the current block according to the slice identification information in the reference point cloud.

[0208] It should be noted that, in the embodiments of the present application, the reference point cloud is divided into slices, and at least one slice of the reference point cloud is obtained, and the reference slice in which the reference block is located is included in the at least one slice.

[0209] It should be further noted that, in the embodiments of the present application, the slice identifier (sliceID) can be used to indicate the reference slice. In this way, the reference block of the current block can be determined from the reference slice indicated by the slice identifier.

[0210] That is, in the embodiments of the present application, for the reference block of the current block, the transformation operation is performed based on the slice of the reference point cloud, rather than based on the entire frame of the reference point cloud. As shown in FIG. 15, the reference point cloud can be divided into at least two slices, such as slice1-ref1 and slice2-ref2. The RAHT transformation layer ref-1 can be obtained by performing transformation on slice1-ref1, and the RAHT transformation layer ref-1 can include the RAHT transformation block ref1-1, the RAHT transformation block ref1-2, and the like. The RAHT transformation layer ref-2 can be obtained by performing transformation on slice2-ref2, and the RAHT transformation layer ref-2 can include the RAHT transformation block ref2-1, the RAHT transformation block ref2-2, and the like. In this way, by avoiding performing RAHT transformation on the entire frame of the reference point cloud, the time complexity can be reduced. Moreover, the transformation coefficients at the slice level can be reserved. Since the RAHT transformation of the current point cloud is performed based on inter-frame prediction at the slice level, using the transformation coefficients at the slice level as a reference can improve the accuracy of inter-frame prediction. Meanwhile, some slices of the reference point cloud can be adaptively selected for inter-frame prediction, and some slices of the reference point cloud can not be used for inter-frame prediction, thereby improving the flexibility of prediction and saving memory.

[0211] In some embodiments, for determining the reference block of the current block, the method can further include: if a candidate reference block existing in the reference point cloud satisfies a preset inter-frame condition with the current block, determining the candidate reference block as the reference block of the current block.

[0212] In the embodiments of the present application, if the inter-frame reference block of the current block can be found in the reference point cloud, that is, the candidate reference block satisfying the preset inter-frame condition with the current block, then the inter-frame prediction in the transform domain is performed for the current block at this time, and the found candidate reference block is used as the reference block of the current block. Whether the found candidate reference block satisfies the preset inter-frame condition with the current block can be determined by the following possible implementation manners.

[0213] In one possible implementation, the candidate reference block existing in the reference point cloud and the current block meet the preset inter-frame conditions, which may include: the coordinate information of the candidate reference block is the same as the coordinate information of the current block, and the slice identification information where the candidate reference block is located is the same as the slice identification information where the current block is located, and the transformation layer information where the candidate reference block is located is the same as the current layer information where the current block is located.

[0214] In another possible implementation, the candidate reference block existing in the reference point cloud and the current block meet the preset inter-frame conditions, which may include: the coordinate information of the parent transform block of the candidate reference block is the same as the coordinate information of the parent transform block of the current block, and the slice identification information where the candidate reference block is located is the same as the slice identification information where the current block is located, and the transform layer information where the candidate reference block is located is the same as the current layer information where the current block is located.

[0215] In the embodiment of the present application, the coordinate information may include geometric position (x, y, z) information and Morton code information, etc. In addition, in the embodiment of the present application, the absolute coordinate information of the candidate reference block can be determined based on the coordinate information of the candidate reference block and the slice identification information where the candidate reference block is located, and the absolute coordinate information of the parent transform block of the candidate reference block can be determined based on the coordinate information of the parent transform block of the candidate reference block and the slice identification information where the candidate reference block is located.

[0216] In another possible implementation, the candidate reference block in the reference point cloud and the current block meet a preset inter-frame condition, which may include: the absolute coordinate information of the candidate reference block is the same as the absolute coordinate information of the current block and the transformation layer information of the candidate reference block is the same as the current layer information of the current block.

[0217] In another possible implementation, the candidate reference block in the reference point cloud and the current block meet a preset inter-frame condition, which may include: the absolute coordinate information of the parent transform block of the candidate reference block is the same as the absolute coordinate information of the parent transform block of the current block and the transform layer information where the candidate reference block is located is the same as the current layer information where the current block is located.

[0218] In an embodiment of the present application, the absolute coordinate information of the candidate reference block may be determined based on the coordinate information of the candidate reference block and the slice identification information (sliceID) where the candidate reference block is located.

[0219] In some embodiments, for the absolute coordinate information of the candidate reference block, the method may include: determining the coordinate information of the candidate reference block; and determining the absolute coordinate information of the candidate reference block based on the coordinate information of the candidate reference block and coordinate offset information of the slice identification information where the candidate reference block is located relative to the origin. Specifically, the absolute coordinate information of the candidate reference block may be obtained by adding the coordinate information of the candidate reference block to the coordinate offset information of the slice identification information where the candidate reference block is located relative to the origin.

[0220] It should be further noted that, for the candidate reference block and the current block satisfying the preset inter-frame condition, the preset inter-frame condition herein can be the above-mentioned several possible implementation manners, or can be other conditions capable of being used to find the inter-frame reference block, and the present application does not make any limitation in this regard.

[0221] In this way, for the reference block found in the reference point cloud, the reference block can specifically include: the coordinate information of the reference block is the same as the coordinate information of the current block, and the slice identification information where the reference block is located is the same as the slice identification information where the current block is located, and the transform layer information where the reference block is located is the same as the current layer information where the current block is located; or the coordinate information of the parent transform block of the reference block is the same as the coordinate information of the parent transform block of the current block, and the slice identification information where the reference block is located is the same as the slice identification information where the current block is located, and the transform layer information where the reference block is located is the same as the current layer information where the current block is located; or the absolute coordinate information of the reference block is the same as the absolute coordinate information of the current block, and the transform layer information where the reference block is located is the same as the current layer information where the current block is located; or the absolute coordinate information of the parent transform block of the reference block is the same as the absolute coordinate information of the parent transform block of the current block, and the transform layer information where the reference block is located is the same as the current layer information where the current block is located, and the like, and the present application does not make any limitation in this regard.

[0222] It should be further noted that, in the embodiments of the present application, for the absolute coordinate information of the reference block, the coordinate information of the reference block can be determined, and then the absolute coordinate information of the reference block is determined according to the coordinate information of the reference block and the coordinate offset information of the slice identification information where the reference block is located relative to the origin; for the absolute coordinate information of the parent transform block of the reference block, the coordinate information of the parent transform block of the reference block can be determined, and then the absolute coordinate information of the parent transform block of the reference block is determined according to the coordinate information of the parent transform block of the reference block and the coordinate offset information of the slice identification information where the reference block is located relative to the origin.

[0223] It can be understood that, after the reference block of the current block is determined, the transform coefficient prediction value of the current block is determined according to the reference block of the current block, which can specifically include: the transform coefficient prediction value of the current block is determined according to the transform coefficient of the reference block.

[0224] In a specific embodiment, when the current block performs inter-frame prediction in the transform domain, the method can include: determining attribute information of a reference slice based on the reference slice indicated by the slice identification information; performing region adaptive hierarchical transformation on the attribute information of the reference slice to determine transform coefficients of at least one transform layer; determining transform coefficients of a reference block from the transform coefficients of the at least one transform layer; and determining a transform coefficient prediction value of the current block according to the transform coefficients of the reference block.

[0225] In the embodiments of the present application, in order to reduce the time complexity, when the transform coefficients of the reference block are determined, the transform coefficients can be obtained based on the slice (i.e., reference slice) of the reference point cloud by RAHT transform, instead of being obtained based on the whole frame of the reference point cloud by RAHT transform. In this way, the transform coefficients at the slice level can be reserved. Since the RAHT transform of the current point cloud is performed according to the slice level for inter-frame prediction, the transform coefficients at the slice level are used as the reference, the prediction value of the transform coefficients of the current block can be more accurately obtained, and the accuracy of the inter-frame prediction is improved. Meanwhile, some slices of the reference point cloud can be adaptively selected for inter-frame prediction, and some slices of the reference point cloud can not be used for inter-frame prediction, so that the flexibility of the prediction is also improved, and the memory is saved.

[0226] That is, in the embodiments of the present application, the transform coefficients of the reference block can be determined by RAHT transform based on the slice (i.e., reference slice) of the reference point cloud. Specifically, by performing RAHT transform on the attribute information of the reference slice, the transform coefficients of at least one transform layer can be determined. Each transform layer can include at least one transform block, from which the transform coefficients of the reference block are obtained. Then, the transform coefficients of the reference block are used as the prediction value of the transform coefficients of the current block.

[0227] In another specific embodiment, for the transform coefficients of the reference block, the method can include: determining the transform coefficient residual value of the reference block; quantizing the transform coefficient residual value of the reference block to determine the quantized coefficient residual value of the reference block; dequantizing the quantized coefficient residual value of the reference block to determine the reconstructed transform coefficient residual value of the reference block; and determining the transform coefficients of the reference block according to the prediction value of the transform coefficients of the reference block and the reconstructed transform coefficient residual value of the reference block.

[0228] In the embodiments of the present application, when the transform coefficients of the reference block need to be predicted, the transform coefficient residual value of the reference block can be determined, the transform coefficient residual value of the reference block is quantized and dequantized to determine the reconstructed transform coefficient residual value of the reference block, and the transform coefficients of the reference block can be determined according to the prediction value of the transform coefficients of the reference block and the reconstructed transform coefficient residual value of the reference block.

[0229] In the embodiments of the present application, after the transform coefficient residual value of the reference block is quantized to determine the quantized coefficient residual value of the reference block, the method can further include: encoding the quantized coefficient residual value of the reference block, and writing the obtained encoded bits into a bitstream.

[0230] In yet another specific embodiment, when the transform coefficients of the reference block do not need to be predicted, the transform coefficients of the reference block can be directly written into the bitstream. Specifically, the transform coefficients of the reference block can be quantized to determine the quantized coefficients of the reference block, and the quantized coefficients of the reference block can be encoded to write the obtained encoded bits into the bitstream.

[0231] It should be noted that after the transform coefficients of the reference block are obtained, the transform coefficients of the reference block can be stored in the memory module. In a specific embodiment, the method can further include determining storage information of the reference block, and storing the storage information of the reference block in the memory module. The storage information of the reference block can include at least one of the following: the transform coefficients of the reference block, coordinate information of the reference block, slice identification information in which the reference block is located, and transform layer information in which the reference block is located.

[0232] It should be further noted that after the storage information of the reference block is stored in the memory module, in some embodiments, when the current block is subjected to inter-frame prediction in the transform domain, the method can include determining the transform coefficients of the reference block according to the corresponding storage information of the reference block in the memory module, and determining the transform coefficient prediction value of the current block according to the transform coefficients of the reference block.

[0233] It should be noted that in the embodiments of the present application, the storage information corresponding to the reference block can be pre-stored in the memory module. As shown in FIG. 15, based on the plurality of slices of the reference point cloud, the information of the plurality of RAHT transform layers of the reference point cloud can be reserved in the memory module. In this way, after the reference block of the current block is determined, the transform coefficients of the reference block can be quickly obtained from the memory module according to the slice ID in which the reference block is located, and the transform coefficients of the reference block can be used as the transform coefficient prediction value of the current block, so as to further reduce the time complexity and make the inter-frame prediction more accurate.

[0234] In some embodiments, the corresponding storage information of the reference block in the memory module can include at least one of the following: the transform coefficients of the reference block, the coordinate information of the reference block, the slice identification information in which the reference block is located, the transform layer information in which the reference block is located, and the absolute coordinate information of the reference block.

[0235] It should be further noted that in the embodiments of the present application, the absolute coordinate information of the reference block can be determined according to the coordinate information of the reference block and the slice identification information in which the reference block is located. In some embodiments, for the absolute coordinate information of the reference block, the method can include determining the coordinate information of the reference block, and determining the absolute coordinate information of the reference block according to the coordinate information of the reference block and the coordinate offset information of the slice identification information in which the reference block is located relative to the origin. Specifically, the coordinate information of the reference block plus the coordinate offset information of the slice ID in which the reference block is located relative to the origin can obtain the absolute coordinate information of the reference block.

[0236] It should be noted that, in the embodiments of the present application, the coordinate information can include geometric position (x, y, z) information and Morton code information, etc. Taking a reference block as an example, the coordinate information of the reference block refers to the position information of the reference block when the RAHT transform is performed, and the absolute coordinate information of the reference block refers to the absolute position information of the reference block in the reference frame.

[0237] In this way, if the current block performs the inter-frame prediction in the transform domain, after the reference block satisfying the preset inter-frame condition is found in the reference frame, the transform coefficient prediction value of the current block can be determined according to the transform coefficient of the reference block.

[0238] In some embodiments, when the prediction mode identification information indicates that the current block performs the intra-frame prediction in the transform domain, the method can further include: determining the transform coefficient prediction value of the neighboring block of the current block, the transform coefficient prediction value of the parent transform block of the current block, and the transform coefficient prediction value of the neighboring block of the parent transform block; and performing a weighted operation on the transform coefficient prediction value of the neighboring block of the current block, the transform coefficient prediction value of the parent transform block of the current block, and the transform coefficient prediction value of the neighboring block of the parent transform block to determine the transform coefficient prediction value of the current block.

[0239] That is, if the candidate reference block satisfying the preset inter-frame condition cannot be found in the reference point cloud, it is determined that the current block performs the intra-frame prediction in the transform domain, and at this time, the obtained intra-frame prediction value can be used as the transform coefficient prediction value of the current block. The intra-frame prediction value can be obtained by performing a weighted calculation on the transform coefficient prediction values of the neighboring block of the current block, the parent transform block of the current block, and the neighboring block of the parent transform block.

[0240] It should be noted that, in the embodiments of the present application, the transform coefficient can include a low-frequency coefficient and a high-frequency coefficient. The low-frequency coefficient can also be referred to as a direct current coefficient or a DC coefficient, and the high-frequency coefficient can also be referred to as an alternating current coefficient or an AC coefficient. It should be noted that the transform coefficient prediction value herein mainly refers to the high-frequency coefficient prediction value of the current block.

[0241] S1903, determining the transform coefficient residual value of the current block according to the transform coefficient prediction value of the current block.

[0242] S1904, performing encoding processing on the transform coefficient residual value of the current block, and writing the obtained encoding bits into the bitstream.

[0243] In the embodiments of the present application, performing encoding processing on the transform coefficient residual value of the current block and writing the obtained encoding bits into the bitstream can include: quantizing the transform coefficient residual value to determine the quantized coefficient residual value of the current block; and performing encoding processing on the quantized coefficient residual value of the current block and writing the obtained encoding bits into the bitstream.

[0244] In some embodiments, the method can further include: dequantizing the quantized coefficient residual values of the current block to determine reconstructed transform coefficient residual values of the current block; and determining the transform coefficients of the current block according to the transform coefficient predictor of the current block and the reconstructed transform coefficient residual values of the current block. Specifically, the transform coefficients of the current block can be obtained by performing an addition operation on the transform coefficient predictor of the current block and the reconstructed transform coefficient residual values of the current block.

[0245] It can be understood that in the embodiments of the present application, the method further includes: determining storage information of the current block; and saving the storage information of the current block into the memory module.

[0246] Further, in some embodiments, the method further includes: saving the storage information of the current block into the memory module when the current point cloud in which the current block is located satisfies the condition of being used as a reference point cloud. That is, in the embodiments of the present application, if the frame in which the current point cloud is located is likely to be used as a reference frame of a subsequent frame, the storage information of the current block can be saved into the memory module; so that when the inter-frame prediction in the transform domain is performed subsequently, the relevant information of the reference block required can be obtained from the memory module.

[0247] It can also be understood that in the embodiments of the present application, the storage information of the current block can include at least one of the following: the transform coefficients of the current block, the coordinate information of the current block, the slice identification information in which the current block is located, the current layer information in which the current block is located, and the absolute coordinate information of the current block.

[0248] In some embodiments, for the absolute coordinate information of the current block, the method can include: determining the coordinate information of the current block; and determining the absolute coordinate information of the current block according to the coordinate information of the current block and the coordinate offset information of the slice identification information in which the current block is located relative to the origin.

[0249] That is, in the embodiments of the present application, the absolute coordinate information of the current block can be obtained by performing an addition operation on the coordinate information of the current block and the coordinate offset information of the slice identification information in which the current block is located relative to the origin. In this way, when searching for the reference block, the reference block of the current block can be determined according to that the absolute coordinate information of the candidate reference block is the same as the absolute coordinate information of the current block and the transform layer information in which the candidate reference block is located is the same as the current layer information in which the current block is located, or the reference block of the current block can be determined according to that the absolute coordinate information of the parent transform block of the candidate reference block is the same as the absolute coordinate information of the parent transform block of the current block and the transform layer information in which the candidate reference block is located is the same as the current layer information in which the current block is located, and the like, which are not limited herein.

[0250] In some embodiments, the method can further include: determining geometry information of the current slice; performing octree decomposition on the geometry information of the current slice to determine the at least one transform layer; and wherein the at least one transform layer includes a current layer in which the current block is located.

[0251] In an embodiment of the present application, the current slice can be indicated according to slice identification information (sliceID) of the current block. The current slice is determined by slice division of the current point cloud. For the current slice, the geometry information of the current slice is octree decomposed, and RAHT inverse transformation is performed from top to bottom based on the hierarchical structure of the octree. For each node in each layer, RAHT inverse transformation is performed from x, y and z dimensions, respectively, until the leaf node of the octree is reached.

[0252] In some embodiments, the method can further include: when the current layer is the L-1 layer in the at least one transform layer, determining a low-frequency coefficient value of a node in the L layer, and performing region adaptive hierarchical transformation on the low-frequency coefficient value of the node in the L layer to determine a low-frequency coefficient value and a high-frequency coefficient original value of a node in the L-1 layer, until the low-frequency coefficient value and the high-frequency coefficient original value of the root node of the current point cloud are determined; wherein L is a positive integer.

[0253] In an embodiment of the present application, the current block transform coefficient residual value is determined according to the current block transform coefficient prediction value, which can include: determining a high-frequency coefficient original value of the current block in the current layer; and determining a high-frequency coefficient residual value of the current block according to the high-frequency coefficient original value of the current block and the high-frequency coefficient prediction value of the current block. In some embodiments, the method further includes: encoding the high-frequency coefficient residual value of the current block, and writing the obtained encoding bits into a bitstream.

[0254] In an embodiment of the present application, after the low-frequency coefficient value of the root node of the current point cloud is obtained, the method can further include: encoding the low-frequency coefficient value of the root node, and writing the obtained encoding bits into a bitstream.

[0255] That is, in an embodiment of the present application, the low-frequency coefficient value of the root node and the high-frequency coefficient residual value of each layer can be written into a bitstream, so that RAHT inverse transformation can be implemented at a decoding end to recover the reconstructed attribute information of the current point cloud.

[0256] It should be further explained that in the embodiments of the present application, for the obtained transform layer, the DC coefficients obtained after the nodes in the same layer (Lth layer) are transformed are passed to the nodes in the next layer (L-1th layer) for further transformation using the attribute information of the point cloud. The transform matrix is updated adaptively according to the weights corresponding to each point. The above process is iteratively updated according to the division structure of the octree until the root node of the octree. The DC coefficients and all the AC coefficients of the root node are collectively referred to as transform coefficients.

[0257] Specifically, assuming g′ L,2x,y,z and g′L,2x+1,y,z are two attribute DC coefficients in the Lth layer that are adjacent to each other. After linear transformation, the information in the L-1th layer is the AC coefficient f′ L-1,x,y,z and the DC coefficient g′ L-1,x,y,z ; then f′ L-1,x,y,z will no longer be transformed and will be directly quantized and encoded, and g′ L-1,x,y,z will continue to search for neighbors for transformation, and if no neighbors are found, it will be directly passed to the L-2th layer, that is, the RAHT transformation is only effective for nodes with neighbors, and nodes without neighbors will be directly passed to the previous layer. In the above transformation process, the weights corresponding to g′ L,2x,y,z and g′L,2x+1,y,z (the number of non-empty child nodes in this node) are w′ L,2x,y,z and w′L,2x+1,y,z (abbreviated as w′0 and w′1), and the weight of g′ L-1,x,y,z is w′ L-1,x,y,z , and the RAHT transformation formula is:

[0258] Based on the RAHT transformation, the transform coefficients of the current block can be determined, specifically the original values of the transform coefficients. Then, according to the original values of the transform coefficients of the current block and the predicted values of the transform coefficients of the current block, the residual values of the transform coefficients of the current block can be calculated.

[0259] The embodiment of the application provides a coding method, in particular to a coding scheme of point cloud fast inter-frame attribute transformation. The prediction mode identification information of the current block is determined; when the inter-frame prediction in the transform domain of the current block is indicated by the prediction mode identification information, the transform coefficient prediction value of the current block is determined according to the reference block of the current block; the transform coefficient residual value of the current block is determined according to the transform coefficient prediction value of the current block; and the coding processing of the transform coefficient residual value of the current block is performed, and the obtained coding bits are written into the code stream. That is to say, when the inter-frame prediction in the transform domain of the current block is performed, the transform coefficient prediction value of the current block can be determined according to the reference block of the current block. The reference block can be based on the slice of the reference point cloud for the transform operation, instead of based on the whole frame of the reference point cloud for the transform operation, so that the time complexity is reduced; and the transform coefficient of the reference block can be stored in the memory module, so that the transform coefficient of the reference block can be directly obtained from the memory module when the transform coefficient of the reference block is needed, and the time complexity is further reduced, thereby the attribute coding efficiency of the point cloud is improved, and the coding performance of the point cloud is improved.

[0260] In another embodiment of the application, based on the coding method described in the foregoing embodiment, the present technical solution proposes to cache the decoded geometric information and transform coefficients of the possible reference point cloud into a memory module (buffer) for later use as a reference frame. In this way, by avoiding the necessity of repeatedly performing octree decomposition and RAHT transformation on the reference frame, the time complexity can be reduced, and the information of multiple RAHT transformation layers of the reference frame can be retained for inter-frame prediction.

[0261] In the embodiment of the application, FIG. 15 is a schematic diagram of the logical structure of the inter-frame prediction transformation provided by the embodiment of the application. As shown in FIG. 15, the reference point cloud can be divided into at least two slices, so that the transformation can be performed based on the divided slices instead of based on the whole frame during the RAHT transformation, the time complexity is reduced, and the information of multiple RAHT transformation layers of the reference frame can be retained for inter-frame prediction.

[0262] In a specific embodiment, as shown in FIG. 20, the flow of the decoding end is as follows:

[0263] S201, parsing the code stream.

[0264] Input the attribute code stream, and decode to obtain the quantized transform coefficient residual value.

[0265] S202, point cloud geometry octree decomposition.

[0266] The geometry information of the to-be-decoded point cloud is subjected to octree decomposition, the inverse transformation is performed on the nodes in each layer from the x, y and z dimensions, and the inverse transformation is performed to the leaf nodes of the octree.

[0267] S203, inverse quantization.

[0268] The inverse quantization is performed on the decoded quantized transform coefficient residual value to obtain a transform coefficient residual value.

[0269] According to whether the inter-frame reference block can be found in the reference point cloud, it is determined to enter the RAHT inter-frame prediction or the RAHT intra-frame prediction; the transform coefficient residual value is added to the transform coefficient prediction value to obtain a transform coefficient.

[0270] S204, RAHT inter-frame prediction.

[0271] The absolute geometric position (i.e., the aforementioned "absolute coordinate information") of the current block is calculated: the position of the current block when performing the transformation is a relative geometric position (i.e., the aforementioned "coordinate information"), and the absolute geometric position of the current block in the current frame can be obtained by calculation. Specifically, the absolute geometric position of the current block is equal to the relative geometric position of the current transform block plus the geometric position offset of the slice to which the current block belongs relative to the origin.

[0272] Finding the inter-frame reference block: for each transform block in the current frame RAHT transformation, find the inter-frame prediction transform block of the current layer in the memory module. Taking the current block as an example, find a transform block in the reference frame whose absolute geometric position is the same as that of the current block and whose layer is the same as that of the current block as the reference block, or find a transform block in the reference frame whose parent transform block absolute geometric position is the same as that of the parent transform block of the current block and whose layer is the same as that of the current block as the reference block, or find a transform block in the reference frame whose geometric position is the same as that of the current block and whose layer is the same as that of the current block and whose sliceID is the same as that of the current block as the reference block, or find a transform block in the reference frame whose parent transform block geometric position is the same as that of the parent transform block of the current block and whose layer is the same as that of the current block and whose sliceID is the same as that of the current block as the reference block.

[0273] If the inter-frame reference block is found in the memory module, the transform coefficient corresponding to the inter-frame reference block in the memory module can be used as the transform coefficient prediction value of the current block.

[0274] S205, RAHT intra-frame prediction.

[0275] If the inter-frame reference block cannot be found, the intra-frame prediction value is used as the transform coefficient prediction value of the current block, wherein the intra-frame prediction value is obtained by weighted prediction of the neighboring blocks of the current block, the parent transform block, and the neighboring blocks of the parent transform block.

[0276] S206, saving to the memory module.

[0277] If the current decoded frame can be used as a reference frame of a subsequent frame, at least one of the transform coefficients of the current block, the absolute geometric position, the geometric position, the sliceID, the layer information of the RAHT transform layer in which the current block is located, and the like can be stored in the memory module as the inter-frame prediction reference information of the subsequent frame; otherwise, the RAHT inverse transform is directly performed.

[0278] S207, RAHT inverse transform.

[0279] According to the obtained transform coefficients, the attributes of the point cloud are inversely transformed in a top-down manner along the octree decomposition, and the inverse transformation is performed on the nodes in each layer from the x, y, and z dimensions, until the leaf nodes of the octree are reached. In the process of hierarchical transformation, the DC coefficients and the AC coefficients of the nodes in the same layer (the L-1 layer) are inversely transformed to obtain the DC coefficients of the next layer (the L layer). The transformation matrix is updated adaptively according to the weights corresponding to the points. The above process is iteratively updated according to the division structure of the octree until the leaf nodes of the octree are reached. Assuming that g′L-1,2x,y,z is the attribute DC coefficient in the L-1 layer, and f′L-1,2x,y,z is the attribute AC coefficient in the L-1 layer, the calculation formulas of the RAHT inverse transform are shown in equations (3) and (4). Finally, the attributes of the point cloud can be obtained.

[0280] That is, as shown in FIG. 20, the point cloud geometry octree decomposition is performed on the geometry information of the to-be-decoded point cloud, and the attribute code stream is parsed to obtain the quantized transform coefficient residual value. Then, the quantized transform coefficient residual value is dequantized to obtain the transform coefficient residual value of the to-be-decoded point cloud. The transform coefficient prediction value of the to-be-decoded point cloud can be determined according to the RAHT inter-frame prediction or the RAHT intra-frame prediction. Then, the transform coefficient of the to-be-decoded point cloud can be obtained by performing an addition operation on the transform coefficient residual value and the transform coefficient prediction value. The transform coefficient is saved in the memory module, so that the transform coefficient of the reference block can be directly obtained from the memory module when the inter-frame prediction is performed subsequently. Finally, the RAHT inverse transform is performed on the transform coefficient to reconstruct the attributes of the point cloud.

[0281] In a specific embodiment, as shown in FIG. 21, the flow of the encoding end is as follows:

[0282] S211, point cloud geometry octree decomposition.

[0283] The geometry information of the to-be-encoded point cloud is input, and the octree decomposition is performed on the geometry information to obtain the RAHT transform layer. The transformation is performed on the nodes in each layer from the x, y, and z dimensions, until the root node of the octree is reached.

[0284] S212, RAHT transform.

[0285] For the obtained RAHT transform layer, the DC coefficients obtained after the node transform of the same layer (Lth layer) are transmitted to the node of the next layer (L-1th layer) for continuous transform using the attribute information of the point cloud. The transform matrix is updated adaptively according to the weight corresponding to each point. The above process is iteratively updated according to the division structure of the octree until the root node of the octree. The DC coefficients of the root node and all the AC coefficients are collectively referred to as transform coefficients;

[0286] The absolute geometric position of the current block relative to the origin can be obtained by calculation, and the absolute geometric position of the current block is equal to the relative geometric position of the current block plus the geometric position offset of the slice to which the current block belongs relative to the origin; assuming g′ L,2x,y,z and g′L,2x+1,y,z are two attribute DC coefficients in the Lth layer that are adjacent to each other. After linear transformation, the information of the L-1th layer is the AC coefficient f′ L-1,x,y,z and the DC coefficient g′ L-1,x,y,z ; then, f′ L-1,x,y,z will no longer be transformed and will be directly quantized and encoded, and g′ L-1,x,y,z will continue to search for neighbors for transformation, and if no neighbors are found, it will be directly transmitted to the L-2th layer, that is, the RAHT transform is only effective for nodes with neighbors, and nodes without neighbors will be directly transmitted to the previous layer. In the above transformation process, the weights (the number of non-empty child nodes in the node) corresponding to g′ L,2x,y,z and g′L,2x+1,y,z are w′ L,2x,y,z and w′L,2x+1,y,z (abbreviated as w′0 and w′1), and the weight of g′ L-1,x,y,z is w′ L-1,x,y,z , and the calculation formula of the RAHT inverse transform is shown in formula (5) and formula (6). Finally, the transform coefficients can be obtained.

[0287] According to whether an inter-frame reference block can be found in the reference point cloud, it is determined to enter the RAHT inter-frame prediction or the RAHT intra-frame prediction; the transform coefficient is subtracted from the transform coefficient prediction value to obtain a transform coefficient residual value.

[0288] S213, RAHT inter-frame prediction.

[0289] Calculate the absolute geometric position (i.e., the aforementioned "absolute coordinate information") of the current block: the position of the current block when performing transformation is the relative geometric position (i.e., the aforementioned "coordinate information"), and the absolute geometric position of the current block in the current frame can be obtained by calculation, which is equal to the relative geometric position of the current transform block plus the geometric position offset of the slice to which the current block belongs relative to the origin;

[0290] Finding inter-frame reference block: finding an inter-frame prediction transform block of the current layer in the memory module for each transform block in the current frame RAHT transform, taking the current block as an example, finding a transform block in the reference frame whose absolute geometric position is the same as that of the current block and whose layer is the same as that of the current block as the reference block, or finding a transform block in the reference frame whose parent transform block absolute geometric position is the same as that of the parent transform block of the current block and whose layer is the same as that of the current block as the reference block, or finding a transform block in the reference frame whose geometric position is the same as that of the current block and whose layer is the same as that of the current block and whose sliceID is the same as that of the current block as the reference block, or finding a transform block in the reference frame whose parent transform block geometric position is the same as that of the parent transform block of the current block and whose layer is the same as that of the current block and whose sliceID is the same as that of the current block as the reference block.

[0291] If the inter-frame reference block is found in the memory module, the transform coefficients corresponding to the inter-frame reference block in the memory module can be used as the transform coefficient prediction value of the current block.

[0292] S214, RAHT intra-frame prediction.

[0293] If the inter-frame reference block cannot be found, the intra-frame prediction value is used as the transform coefficient prediction value of the current block, wherein the intra-frame prediction value is obtained by weighted prediction of the neighboring blocks of the current block, the parent transform block and the neighboring blocks of the parent transform block.

[0294] S215, quantization.

[0295] The transform coefficient residual value is quantized to obtain the quantized transform coefficient residual value.

[0296] S216, encoding.

[0297] The quantized transform coefficient residual value is encoded and written into the code stream.

[0298] S217, inverse quantization.

[0299] The quantized transform coefficient residual value is inverse quantized to obtain the reconstructed transform coefficient residual value (i.e. the reconstructed transform coefficient residual value).

[0300] S218, saving to the memory module.

[0301] The reconstructed transform coefficient residual value is added to the transform coefficient prediction value to obtain the reconstructed transform coefficient. If the current frame is encoded and can be used as a reference frame for subsequent frames, at least one of the reconstructed transform coefficient, the absolute geometric position, the geometric position, the sliceID, the layer information of the RAHT transform layer where the current block is located, etc. can be stored in the memory module as the inter-frame prediction reference information for subsequent frames; otherwise, the RAHT inverse transform is directly performed.

[0302] S219, RAHT inverse transform.

[0303] The reconstructed transform coefficients are subjected to RAHT inverse transform, and reconstructed point cloud attributes can be obtained.

[0304] That is, as shown in FIG. 21, the point cloud geometry octree decomposition is performed on the geometry information of the to-be-encoded point cloud, the RAHT transform is performed on the attribute information of the to-be-encoded point cloud, the transform coefficients of the to-be-encoded point cloud can be determined, the transform coefficient prediction value of the to-be-encoded point cloud can be determined according to the RAHT inter-frame prediction or the RAHT intra-frame prediction, the transform coefficient residual value can be obtained by subtracting the transform coefficient prediction value from the transform coefficients of the to-be-encoded point cloud, and the quantized transform coefficient residual value can be obtained by quantizing the transform coefficient residual value. On the one hand, the quantized transform coefficient residual value can be encoded and written into the attribute code stream; on the other hand, the reconstructed transform coefficient residual value can be obtained by dequantizing the quantized transform coefficient residual value, and the reconstructed transform coefficients can be obtained by adding the reconstructed transform coefficient residual value and the transform coefficient prediction value. The transform coefficients are saved in the memory module, so that the transform coefficients of the reference block can be directly obtained from the memory module when the inter-frame prediction is performed subsequently, and finally the reconstructed point cloud attributes can be obtained by performing the RAHT inverse transform on the reconstructed transform coefficients.

[0305] Exemplarily, based on the coding method of the foregoing embodiments, Table 1 is the latest tmc13v24 performance results provided by the embodiments of the present application under the test conditions of lossy geometry and lossy attribute.

[0306] Table 1

[0307] According to the latest tmc13v24 performance results shown in Table 1, it can be seen that the time complexity of the encoding end is reduced by 7%, and the time complexity of the decoding end is reduced by 19%.

[0308] In the embodiments of the present application, the specific implementation of the foregoing embodiments is described in detail through the foregoing embodiments. It can be seen from the foregoing embodiments that according to the technical solutions of the foregoing embodiments, the decoded geometry positions, the sliceIDs and the transform coefficients of the possible reference frames are cached into the buffer for use by the subsequent frames, so that the reference frames do not have to be subjected to octree decomposition and RAHT transform again, the time for the encoding and decoding ends to perform the RAHT transform on the predicted frames is reduced, the time complexity is obviously reduced, the information of multiple RAHT transform layers of the reference frames can be retained, the inter-frame prediction is more accurate, and the coding and decoding performance is improved.

[0309] In yet another embodiment of the present application, based on the same inventive concept as the foregoing embodiments, FIG. 22 is a schematic diagram of a constituent structure of an encoder provided in an embodiment of the present application. As shown in FIG. 22, the encoder 220 can include a first determining unit 2201, a first predicting unit 2202, and an encoding unit 2203, wherein:

[0310] The first determining unit 2201 is configured to determine prediction mode identification information of a current block.

[0311] The first predicting unit 2202 is configured to, when the prediction mode identification information indicates that the current block is subjected to inter-frame prediction in a transform domain, determine a transform coefficient prediction value of the current block according to a reference block of the current block.

[0312] The first determining unit 2201 is further configured to determine a transform coefficient residual value of the current block according to the transform coefficient prediction value of the current block.

[0313] The encoding unit 2203 is configured to perform encoding processing on the transform coefficient residual value of the current block, and write the obtained encoding bits into a bitstream.

[0314] In some embodiments, the first determining unit 2201 is further configured to quantize the transform coefficient residual value to determine a quantized coefficient residual value of the current block, and the encoding unit 2203 is further configured to perform encoding processing on the quantized coefficient residual value of the current block, and write the obtained encoding bits into the bitstream.

[0315] In some embodiments, the first determining unit 2201 is further configured to determine the reference block of the current block according to patch identification information in a reference point cloud.

[0316] In some embodiments, the first determining unit 2201 is further configured to determine the transform coefficient prediction value of the current block according to a transform coefficient of the reference block.

[0317] In some embodiments, the first determining unit 2201 is further configured to determine attribute information of a reference patch based on the reference patch indicated by the patch identification information, perform region-adaptive hierarchical transformation on the attribute information of the reference patch to determine transform coefficients of at least one transform layer, and determine the transform coefficient of the reference block from the transform coefficients of the at least one transform layer.

[0318] In some embodiments, the first determining unit 2201 is further configured to determine a transform coefficient residual value of the reference block, quantize the transform coefficient residual value of the reference block to determine a quantized coefficient residual value of the reference block, dequantize the quantized coefficient residual value of the reference block to determine a reconstructed transform coefficient residual value of the reference block, and determine the transform coefficient of the reference block according to the transform coefficient prediction value of the reference block and the reconstructed transform coefficient residual value of the reference block.

[0319] In some embodiments, referring to FIG. 22, the encoder 220 further comprises a first saving unit 2204; and the first determining unit 2201 is further configured to determine storage information of the reference block, wherein the storage information of the reference block comprises at least one of the following: the transform coefficients of the reference block, the coordinate information of the reference block, the slice identification information where the reference block is located, and the transform layer information where the reference block is located; and the first saving unit 2204 is configured to save the storage information of the reference block into the memory module.

[0320] In some embodiments, the first determining unit 2201 is further configured to determine the transform coefficients of the reference block according to the corresponding storage information of the reference block in the memory module.

[0321] In some embodiments, the first determining unit 2201 is further configured to determine that the coordinate information of the reference block is the same as the coordinate information of the current block, and the slice identification information where the reference block is located is the same as the slice identification information where the current block is located, and the transform layer information where the reference block is located is the same as the current layer information where the current block is located.

[0322] In some embodiments, the first determining unit 2201 is further configured to determine that the coordinate information of the parent transform block of the reference block is the same as the coordinate information of the parent transform block of the current block, and the slice identification information where the reference block is located is the same as the slice identification information where the current block is located, and the transform layer information where the reference block is located is the same as the current layer information where the current block is located.

[0323] In some embodiments, the first determining unit 2201 is further configured to determine the coordinate information of the reference block; and determine the absolute coordinate information of the reference block according to the coordinate information of the reference block and the coordinate offset information of the slice identification information where the reference block is located relative to the origin.

[0324] In some embodiments, the first determining unit 2201 is further configured to determine that the absolute coordinate information of the reference block is the same as the absolute coordinate information of the current block, and the transform layer information where the reference block is located is the same as the current layer information where the current block is located.

[0325] In some embodiments, the first determining unit 2201 is further configured to determine that the absolute coordinate information of the parent transform block of the reference block is the same as the absolute coordinate information of the parent transform block of the current block, and the transform layer information where the reference block is located is the same as the current layer information where the current block is located.

[0326] In some embodiments, the first determining unit 2201 is further configured to determine that the prediction mode identification information indicates that the current block performs the inter-frame prediction in the transform domain if there is a reference block in the reference point cloud that satisfies the preset inter-frame condition with the current block; and determine that the prediction mode identification information indicates that the current block performs the intra-frame prediction in the transform domain if there is no reference block in the reference point cloud that satisfies the preset inter-frame condition with the current block.

[0327] In some embodiments, the first prediction unit 2202 is further configured to, when the prediction mode identification information indicates that the current block is subject to intra prediction in the transform domain, determine a transform coefficient prediction value of a neighboring block of the current block, a transform coefficient prediction value of a parent transform block of the current block, and a transform coefficient prediction value of a neighboring block of the parent transform block; and perform a weighting operation on the transform coefficient prediction value of the neighboring block of the current block, the transform coefficient prediction value of the parent transform block of the current block, and the transform coefficient prediction value of the neighboring block of the parent transform block to determine the transform coefficient prediction value of the current block.

[0328] In some embodiments, the first determination unit 2201 is further configured to perform dequantization on the quantized coefficient residual value of the current block to determine a reconstructed transform coefficient residual value of the current block; and determine the transform coefficient of the current block according to the transform coefficient prediction value of the current block and the reconstructed transform coefficient residual value of the current block.

[0329] In some embodiments, the first determination unit 2201 is further configured to determine storage information of the current block, wherein the storage information of the current block includes at least one of the following: the transform coefficient of the current block, coordinate information of the current block, slice identification information in which the current block is located, and current layer information in which the current block is located; and the first saving unit 2204 is further configured to save the storage information of the current block into the memory module.

[0330] In some embodiments, the first saving unit 2204 is further configured to save the storage information of the current block into the memory module when a current point cloud in which the current block is located satisfies a condition for serving as a reference point cloud.

[0331] In some embodiments, the first determination unit 2201 is further configured to determine geometry information of a current slice, wherein the current slice is determined by slice division of the current point cloud; and perform octree decomposition on the geometry information of the current slice to determine at least one transform layer, wherein the at least one transform layer includes the current layer in which the current block is located.

[0332] In some embodiments, the first determination unit 2201 is further configured to, when the current layer is an L-1 layer in the at least one transform layer, determine a low-frequency coefficient value of a node in an L layer, and perform region adaptive hierarchical transform according to the low-frequency coefficient value of the node in the L layer to determine a low-frequency coefficient value of a node in the L-1 layer and a high-frequency coefficient original value until a low-frequency coefficient value of a root node of the current point cloud and a high-frequency coefficient original value are determined; wherein L is a positive integer.

[0333] In some embodiments, the encoding unit 2203 is further configured to perform encoding processing on the low-frequency coefficient value of the root node of the current point cloud, and write the obtained encoding bits into the bitstream.

[0334] In some embodiments, the first determining unit 2201 is further configured to determine a high frequency coefficient original value of the current block, and determine a high frequency coefficient residual value of the current block according to the high frequency coefficient original value of the current block and a high frequency coefficient prediction value of the current block; and the encoding unit 2203 is further configured to perform encoding processing on the high frequency coefficient residual value of the current block, and write the obtained encoding bits into the bitstream.

[0335] It can be understood that, in the embodiments of the present application, the "unit" can be a part of circuit, a part of processor, a part of program or software, etc., and of course can also be a module, and can also be non-modular. Moreover, the components in the embodiments of the present application can be integrated in one processing unit, or each unit can be physically present separately, 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.

[0336] In still another embodiment of the present application, FIG. 23 is a specific hardware structure schematic diagram of an encoder provided by the embodiments of the present application. As shown in FIG. 23, the encoder 220 can include a first communication interface 2301, a first memory 2302 and a first processor 2303; each component is coupled together through a first bus system 2304. It can be understood that the first bus system 2304 is used to realize the connection communication between the components. The first bus system 2304 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 2304 in FIG. 23. Among them,

[0337] The first communication interface 2301 is used for receiving and sending signals in the process of transceiving information with other external network elements;

[0338] The first memory 2302 is used to store computer programs capable of running on the first processor 2303;

[0339] The first processor 2303 is used to execute the following when running the computer programs:

[0340] determining prediction mode identification information of the current block, and determining a transform coefficient prediction value of the current block according to a reference block of the current block when the prediction mode identification information indicates that the current block performs transform domain inter prediction, and determining a transform coefficient residual value of the current block according to the transform coefficient prediction value of the current block;

[0341] performing encoding processing on the transform coefficient residual value of the current block, and writing the obtained encoding bits into the bitstream.

[0342] It is to be appreciated that the first memory 2302 in the embodiments of the application can be a volatile memory or a nonvolatile memory, or can include both volatile and nonvolatile memory. In one example, a non-volatile memory can be a read-only memory (ROM), programmable ROM (PROM), erasable PROM (EPROM), electrically EPROM (EEPROM), or flash memory. A volatile memory can be a random access memory (RAM), which is used as external cache. By way of example and not limitation, many forms of RAM are available, for example, static RAM (SRAM), dynamic RAM (DRAM), synchronous dynamic RAM (SDRAM), double data rate SDRAM (DDR SDRAM), enhanced SDRAM (ESDRAM), Synchlink DRAM (SLDRAM), and direct Rambus RAM (DRRAM). The first memory 2302 of the system and method described herein are intended to include, without being limited to, these and any other suitable types of memory.

[0343] The first processor 2303 can be an integrated circuit chip, which has the 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 2303. The first processor 2303 described above can be a general processor, a digital signal processor (Digital Signal Processor, DSP), an application specific integrated circuit (Application Specific Integrated Circuit, ASIC), a field programmable gate array (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 disclosed in the embodiment 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 embodiment 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 or other mature storage medium in the art. The storage medium is located in the first memory 2302, and the first processor 2303 reads the information in the first memory 2302, and combines the hardware to complete the steps of the above method.

[0344] It can be understood that the embodiments described in the present application can be realized by hardware, software, firmware, middleware, microcode or combination thereof. For hardware implementation, the processing unit can be realized in one or more application specific integrated circuits (Application Specific Integrated Circuits, ASIC), digital signal processors (Digital Signal Processing, DSP), digital signal processing devices (DSP Device, DSPD), programmable logic devices (Programmable Logic Device, PLD), field programmable gate arrays (Field-Programmable Gate Array, FPGA), general processors, controllers, microcontrollers, microprocessors, other electronic units for executing functions described in the present application or combination thereof. For software implementation, the technology described in the present application can be realized by modules (such as processes, functions, etc.) for executing functions described in the present application. The software code can be stored in the memory and executed by the processor. The memory can be implemented in the processor or outside the processor.

[0345] Optionally, as another embodiment, the first processor 2303 is further configured to execute the method according to any one of the preceding embodiments when the computer program is run.

[0346] The embodiment provides an encoder, when inter-frame prediction in a transform domain is performed on a current block, a transform coefficient prediction value of the current block can be determined according to a reference block of the current block. The reference block can be a slice based on a reference point cloud, and a transform operation is performed on the slice, instead of being based on a whole frame of the reference point cloud, so that time complexity is reduced; and the transform coefficient of the reference block can be stored in a memory module, so that the transform coefficient of the reference block can be directly obtained from the memory module when the transform coefficient of the reference block is needed, further reducing time complexity, thereby improving attribute coding efficiency of the point cloud, and further improving coding performance of the point cloud.

[0347] In another embodiment of the present application, based on the same inventive concept as the preceding embodiments, FIG. 24 is a schematic diagram of a composition structure of a decoder provided by the embodiment of the present application. As shown in FIG. 24, the decoder 240 can include a second determination unit 2401, a second prediction unit 2402, and a decoding unit 2403, wherein:

[0348] The second determination unit 2401 is configured to determine prediction mode identification information of the current block.

[0349] The second prediction unit 2402 is configured to, when the prediction mode identification information indicates that the current block is subjected to inter-frame prediction in a transform domain, determine a transform coefficient prediction value of the current block according to a reference block of the current block.

[0350] The decoding unit 2403 is configured to decode a code stream, and determine a transform coefficient residual value of the current block.

[0351] The second determination unit 2401 is further configured to determine a transform coefficient of the current block according to the transform coefficient prediction value of the current block and the transform coefficient residual value of the current block.

[0352] In some embodiments, the second determination unit 2401 is further configured to determine the reference block of the current block according to slice identification information in the reference point cloud.

[0353] In some embodiments, the second determination unit 2401 is further configured to determine the transform coefficient prediction value of the current block according to the transform coefficient of the reference block.

[0354] In some embodiments, the second determination unit 2401 is further configured to determine attribute information of a reference slice based on the reference slice indicated by the slice identification information; perform region adaptive hierarchical transformation on the attribute information of the reference slice to determine transform coefficients of at least one transform layer; and determine the transform coefficient of the reference block from the transform coefficients of the at least one transform layer.

[0355] In some embodiments, the decoding unit 2403 is further configured to decode the bitstream to determine the transform coefficient residual value of the reference block; and the second determining unit 2401 is further configured to determine the transform coefficient of the reference block according to the transform coefficient prediction value of the reference block and the transform coefficient residual value of the reference block.

[0356] In some embodiments, the decoding unit 2403 is further configured to decode the bitstream to determine the transform coefficient of the reference block.

[0357] In some embodiments, referring to FIG. 24, the decoder 240 further includes a second saving unit 2404; and the second determining unit 2401 is further configured to determine the storage information of the reference block, wherein the storage information of the reference block includes at least one of the following: the transform coefficient of the reference block, the coordinate information of the reference block, the slice identification information where the reference block is located, and the transform layer information where the reference block is located; and the second saving unit 2404 is configured to save the storage information of the reference block into the memory module.

[0358] In some embodiments, the second determining unit 2401 is further configured to determine the transform coefficient of the reference block according to the corresponding storage information of the reference block in the memory module.

[0359] In some embodiments, the second determining unit 2401 is further configured to determine that the coordinate information of the reference block is the same as the coordinate information of the current block, and the slice identification information where the reference block is located is the same as the slice identification information where the current block is located, and the transform layer information where the reference block is located is the same as the current layer information where the current block is located.

[0360] In some embodiments, the second determining unit 2401 is further configured to determine that the coordinate information of the parent transform block of the reference block is the same as the coordinate information of the parent transform block of the current block, and the slice identification information where the reference block is located is the same as the slice identification information where the current block is located, and the transform layer information where the reference block is located is the same as the current layer information where the current block is located.

[0361] In some embodiments, the second determining unit 2401 is further configured to determine the coordinate information of the reference block; and determine the absolute coordinate information of the reference block according to the coordinate information of the reference block and the coordinate offset information of the slice identification information where the reference block is located relative to the origin.

[0362] In some embodiments, the second determining unit 2401 is further configured to determine that the absolute coordinate information of the reference block is the same as the absolute coordinate information of the current block, and the transform layer information where the reference block is located is the same as the current layer information where the current block is located.

[0363] In some embodiments, the second determining unit 2401 is further configured to determine that the absolute coordinate information of the parent transform block of the reference block is the same as the absolute coordinate information of the parent transform block of the current block, and the transform layer information where the reference block is located is the same as the current layer information where the current block is located.

[0364] In some embodiments, the second determining unit 2401 is further configured to determine, if there is a reference block in the reference point cloud that satisfies a preset inter-frame condition with the current block, that the prediction mode identification information indicates that the current block performs the inter-frame prediction in the transform domain; and determine, if there is no reference block in the reference point cloud that satisfies the preset inter-frame condition with the current block, that the prediction mode identification information indicates that the current block performs the intra-frame prediction in the transform domain.

[0365] In some embodiments, the second prediction unit 2402 is further configured to, when the prediction mode identification information indicates that the current block performs the intra-frame prediction in the transform domain, determine a transform coefficient prediction value of a neighboring block of the current block, a transform coefficient prediction value of a parent transform block of the current block, and a transform coefficient prediction value of a neighboring block of the parent transform block; and perform a weighting operation on the transform coefficient prediction value of the neighboring block of the current block, the transform coefficient prediction value of the parent transform block of the current block, and the transform coefficient prediction value of the neighboring block of the parent transform block to determine a transform coefficient prediction value of the current block.

[0366] In some embodiments, the second determining unit 2401 is further configured to determine storage information of the current block, wherein the storage information of the current block includes at least one of the following: a transform coefficient of the current block, coordinate information of the current block, slice identification information in which the current block is located, and current layer information in which the current block is located; and the second saving unit 2404 is further configured to save the storage information of the current block into the memory module.

[0367] In some embodiments, the second saving unit 2404 is configured to save the storage information of the current block into the memory module when a current point cloud in which the current block is located satisfies a condition for serving as a reference point cloud.

[0368] In some embodiments, the decoding unit 2403 is further configured to decode the code stream to determine a quantized coefficient residual value of the current block; and the second determining unit 2401 is further configured to perform dequantization on the quantized coefficient residual value to determine a transform coefficient residual value of the current block.

[0369] In some embodiments, the second determining unit 2401 is further configured to determine geometry information of a current slice; wherein the current slice is determined by slice division of a current point cloud; and perform octree decomposition on the geometry information of the current slice to determine at least one transform layer; wherein the at least one transform layer includes a current layer in which the current block is located.

[0370] In some embodiments, the second determining unit 2401 is further configured to, when the current layer is an L-1 layer in the at least one transform layer, perform region adaptive hierarchical inverse transform on a reconstructed transform coefficient of the current block in the L-1 layer to determine reconstructed attribute information of a node in an L layer; wherein L is a positive integer.

[0371] It can be understood that, in this embodiment, the "unit" can be a partial circuit, a partial processor, a partial program or software, etc., and of course can also 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.

[0372] In still another embodiment of the present application, Fig. 25 is a specific hardware structure diagram of a decoder provided by the embodiment of the present application. As shown in Fig. 25, the decoder 240 can include a second communication interface 2501, a second memory 2502 and a second processor 2503; each component is coupled together through a second bus system 2504. It can be understood that the second bus system 2504 is used to realize the connection communication between the components. The second 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 second bus system 2504 in Fig. 25. Among them,

[0373] The second communication interface 2501 is configured to receive and send signals in the process of transceiving information with other external network elements;

[0374] The second memory 2502 is configured to store a computer program capable of running on the second processor 2503;

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

[0376] determining prediction mode identification information of a current block; when the prediction mode identification information indicates that the current block performs inter-frame prediction in a transform domain, determining a transform coefficient prediction value of the current block according to a reference block of the current block; decoding a code stream to determine a transform coefficient residual value of the current block; and determining a transform coefficient of the current block according to the transform coefficient prediction value of the current block and the transform coefficient residual value of the current block.

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

[0378] It can be understood that the hardware function of the second memory 2502 is similar to that of the first memory 2302, and the hardware function of the second processor 2503 is similar to that of the first processor 2303; here, no longer detailed.

[0379] The embodiment provides a decoder, when inter-frame prediction in a transform domain is performed on a current block, a transform coefficient prediction value of the current block can be determined according to a reference block of the current block. The reference block can be subjected to transform operation based on a slice divided according to a reference point cloud, instead of being subjected to transform operation based on a whole frame of the reference point cloud, so that time complexity is reduced; and the transform coefficient of the reference block can be stored in a memory module, so that the transform coefficient of the reference block can be directly obtained from the memory module when the transform coefficient of the reference block is needed, so that time complexity is further reduced, so that attribute coding and decoding efficiency of the point cloud is improved, and coding and decoding performance of the point cloud is improved.

[0380] In still another embodiment of the present application, FIG. 26 is a schematic diagram of a composition structure of a coding and decoding system provided by the embodiment of the present application. As shown in FIG. 26, the coding and decoding system 260 can include an encoder 2601 and a decoder 2602.

[0381] In the embodiment of the present application, the encoder 2601 can be the encoder described in any one of the foregoing embodiments, and the decoder 2602 can be the decoder described in any one of the foregoing embodiments.

[0382] In some embodiments, the embodiment of the present application further provides a computer readable storage medium, which stores a computer program. The computer program is executed by a processor (for example, the first processor or the second processor) to implement the method described in any one of the foregoing embodiments.

[0383] In some embodiments, the embodiment of the present application further provides a computer program product, which includes a computer program or instructions. The computer program or instructions are executed by a processor (for example, the first processor or the second processor) to implement the method described in any one of the foregoing embodiments.

[0384] In some embodiments, the embodiment of the present application further provides a computer program, which is executed by a processor (for example, the first processor or the second processor) to implement the method described in any one of the foregoing embodiments.

[0385] 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 realize the described functions for each specific application, but such implementation should not be considered beyond the scope of the present application.

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

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

[0388] 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., they can be located in one place or distributed on a plurality of network units. Some or all of the units can be selected according to actual needs to achieve the purpose of the embodiment.

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

[0390] 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 various 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.

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

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

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

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

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

[0396] 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 scope 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

[0397] In the embodiments of the present application, at the encoding end, prediction mode identification information of a current block is determined; when the prediction mode identification information indicates that the current block performs inter-frame prediction in a transform domain, a transform coefficient prediction value of the current block is determined according to a reference block of the current block; a transform coefficient residual value of the current block is determined according to the transform coefficient prediction value of the current block; and the transform coefficient residual value of the current block is encoded, and the obtained encoding bits are written into a bitstream. At the decoding end, the prediction mode identification information of the current block is determined; when the prediction mode identification information indicates that the current block performs inter-frame prediction in the transform domain, the transform coefficient prediction value of the current block is determined according to the reference block of the current block; the bitstream is decoded to determine the transform coefficient residual value of the current block; and the transform coefficient of the current block is determined according to the transform coefficient prediction value of the current block and the transform coefficient residual value of the current block. In this way, at the encoding end or the decoding end, when the current block performs inter-frame prediction in the transform domain, the transform coefficient prediction value of the current block can be determined according to the reference block of the current block. The reference block can be a slice based on a reference point cloud for transform operation, instead of a whole frame based on the reference point cloud for transform operation, thereby reducing the time complexity; and the transform coefficient of the reference block can be stored in a memory module, so that the transform coefficient of the reference block can be directly obtained from the memory module when needed, thereby further reducing the time complexity, improving the attribute coding and decoding efficiency of the point cloud, and further improving the coding and decoding performance of the point cloud.

Claims

1. A decoding method, applied to a decoder, comprising: Determining prediction mode identification information of the current block; When the prediction mode identification information indicates that the current block performs inter-frame prediction in the transform domain, determining a transform coefficient prediction value of the current block according to a reference block of the current block; Decoding a bitstream to determine a transform coefficient residual value of the current block; The transform coefficient of the current block is determined according to the transform coefficient prediction value of the current block and the transform coefficient residual value of the current block.

2. The method according to claim 1, wherein The method further comprises: A reference block of the current block is determined according to the slice identification information in the reference point cloud.

3. The method according to claim 2, wherein: The determining, according to the reference block of the current block, a predicted value of a transform coefficient of the current block, comprises: A transform coefficient prediction value of the current block is determined according to the transform coefficient of the reference block.

4. The method according to claim 3, wherein: The method further comprises: determining attribute information of the reference slice based on the reference slice indicated by the slice identification information; Performing a region-adaptive hierarchical transformation on the attribute information of the reference slice to determine a transformation coefficient of at least one transformation layer; A transform coefficient of the reference block is determined from the transform coefficients of the at least one transform layer.

5. The method according to claim 3, wherein The method further comprises: Decoding a code stream to determine a transform coefficient residual value of the reference block; The transform coefficient of the reference block is determined according to the transform coefficient prediction value of the reference block and the transform coefficient residual value of the reference block.

6. The method according to claim 3, wherein: The method further comprises: The code stream is decoded to determine the transform coefficient of the reference block.

7. The method according to claim 5 or 6, wherein: The method further comprises: Determining storage information of the reference block, wherein the storage information of the reference block includes at least one of the following: a transform coefficient of the reference block, coordinate information of the reference block, slice identification information of the reference block, and transform layer information of the reference block; The storage information of the reference block is saved in a memory module.

8. The method according to claim 7, wherein: The method further comprises: Determine the transformation coefficient of the reference block according to the storage information corresponding to the reference block in the memory module.

9. The method according to claim 1, wherein The method further comprises: The coordinate information of the reference block is the same as the coordinate information of the current block, the slice identification information of the reference block is the same as the slice identification information of the current block, and the transformation layer information of the reference block is the same as the current layer information of the current block.

10. The method according to claim 1, wherein The method further comprises: The coordinate information of the parent transform block of the reference block is the same as the coordinate information of the parent transform block of the current block, and the slice identification information of the reference block is the same as the slice identification information of the current block, and the transform layer information of the reference block is the same as the current layer information of the current block.

11. The method according to claim 1, wherein The method further comprises: Determining coordinate information of the reference block; The absolute coordinate information of the reference block is determined according to the coordinate information of the reference block and the coordinate offset information of the slice identification information where the reference block is located relative to the origin.

12. The method according to claim 11, wherein The method further comprises: The absolute coordinate information of the reference block is the same as the absolute coordinate information of the current block, and the transformation layer information of the reference block is the same as the current layer information of the current block.

13. The method according to claim 11, wherein The method further comprises: The absolute coordinate information of the parent transform block of the reference block is the same as the absolute coordinate information of the parent transform block of the current block, and the transform layer information of the reference block is the same as the current layer information of the current block.

14. The method according to any one of claims 1 to 13, wherein The method further comprises: If there is a reference block in the reference point cloud that satisfies a preset inter-frame condition with the current block, determining that the prediction mode identification information indicates that the current block is to be subjected to transform domain inter-frame prediction; If there is no reference block in the reference point cloud that satisfies a preset inter-frame condition with the current block, it is determined that the prediction mode identification information indicates that the current block is to be subjected to transform domain intra-frame prediction.

15. The method according to claim 14, wherein The method further comprises: When the prediction mode identification information indicates that the current block performs transform-domain intra prediction, determining transform coefficient prediction values ​​of neighboring blocks of the current block, transform coefficient prediction values ​​of a parent transform block of the current block, and transform coefficient prediction values ​​of neighboring blocks of the parent transform block; A weighted operation is performed on the transform coefficient prediction values ​​of the neighboring blocks of the current block, the transform coefficient prediction value of the parent transform block of the current block, and the transform coefficient prediction values ​​of the neighboring blocks of the parent transform block to determine the transform coefficient prediction value of the current block.

16. The method according to any one of claims 1 to 13, wherein The method further comprises: Determining storage information of the current block, wherein the storage information of the current block includes at least one of the following: a transform coefficient of the current block, coordinate information of the current block, slice identification information of the current block, and current layer information of the current block; The storage information of the current block is saved in the memory module.

17. The method according to claim 16, wherein Saving the storage information of the current block in the memory module includes: When the current point cloud where the current block is located meets the condition of being used as a reference point cloud, the storage information of the current block is saved in the memory module.

18. The method according to any one of claims 1 to 17, wherein The decoding code stream to determine the transform coefficient residual value of the current block includes: Decoding a bitstream to determine a quantization coefficient residual value of the current block; Dequantize the quantized coefficient residual value to determine the transform coefficient residual value of the current block.

19. The method according to any one of claims 1 to 17, wherein The method further comprises: Determine geometric information of a current slice; wherein the current slice is determined by slice division of the current point cloud; Performing octree decomposition on the geometric information of the current slice to determine at least one transform layer; wherein the at least one transform layer includes the current layer where the current block is located.

20. The method according to claim 19, wherein The method further comprises: When the current layer is the L-1th layer in the at least one transformation layer, a regional adaptive hierarchical inverse transformation is performed on the reconstructed transformation coefficients of the current block in the L-1th layer to determine the reconstruction attribute information of the nodes in the Lth layer; wherein L is a positive integer.

21. A coding method, applied to an encoder, comprising: Determining prediction mode identification information of the current block; When the prediction mode identification information indicates that the current block performs inter-frame prediction in the transform domain, determining a transform coefficient prediction value of the current block according to a reference block of the current block; Determining a transform coefficient residual value of the current block according to a transform coefficient prediction value of the current block; The transform coefficient residual value of the current block is coded, and the obtained coded bits are written into a bitstream.

22. The method according to claim 21, wherein The encoding process is performed on the transform coefficient residual value of the current block, and the obtained encoding bits are written into a bitstream, including: quantizing the transform coefficient residual value to determine the quantized coefficient residual value of the current block; The quantization coefficient residual value of the current block is coded, and the obtained coded bits are written into a bit stream.

23. The method according to claim 21, wherein The method further comprises: A reference block of the current block is determined according to the slice identification information in the reference point cloud.

24. The method according to claim 23, wherein The determining, according to the reference block of the current block, a predicted value of a transform coefficient of the current block, comprises: A transform coefficient prediction value of the current block is determined according to the transform coefficient of the reference block.

25. The method according to claim 24, wherein The method further comprises: determining attribute information of the reference slice based on the reference slice indicated by the slice identification information; Performing a region-adaptive hierarchical transformation on the attribute information of the reference slice to determine a transformation coefficient of at least one transformation layer; A transform coefficient of the reference block is determined from the transform coefficients of the at least one transform layer.

26. The method according to claim 24, wherein The method further comprises: determining a transform coefficient residual value of the reference block; quantizing the transform coefficient residual value of the reference block to determine the quantized coefficient residual value of the reference block; Dequantizing the quantized coefficient residual value of the reference block to determine the reconstructed transform coefficient residual value of the reference block; The transform coefficient of the reference block is determined according to the transform coefficient prediction value of the reference block and the reconstructed transform coefficient residual value of the reference block.

27. The method according to claim 26, wherein The method further comprises: Determining storage information of the reference block, wherein the storage information of the reference block includes at least one of the following: a transform coefficient of the reference block, coordinate information of the reference block, slice identification information of the reference block, and transform layer information of the reference block; The storage information of the reference block is saved in a memory module.

28. The method according to claim 27, wherein The method further comprises: Determine the transformation coefficient of the reference block according to the storage information corresponding to the reference block in the memory module.

29. The method according to claim 21, wherein The method further comprises: The coordinate information of the reference block is the same as the coordinate information of the current block, the slice identification information of the reference block is the same as the slice identification information of the current block, and the transformation layer information of the reference block is the same as the current layer information of the current block.

30. The method according to claim 21, wherein The method further comprises: The coordinate information of the parent transform block of the reference block is the same as the coordinate information of the parent transform block of the current block, and the slice identification information of the reference block is the same as the slice identification information of the current block, and the transform layer information of the reference block is the same as the current layer information of the current block.

31. The method according to claim 21, wherein The method further comprises: Determining coordinate information of the reference block; The absolute coordinate information of the reference block is determined according to the coordinate information of the reference block and the coordinate offset information of the slice identification information where the reference block is located relative to the origin.

32. The method according to claim 32, wherein The method further comprises: The absolute coordinate information of the reference block is the same as the absolute coordinate information of the current block, and the transformation layer information of the reference block is the same as the current layer information of the current block.

33. The method according to claim 32, wherein The method further comprises: The absolute coordinate information of the parent transform block of the reference block is the same as the absolute coordinate information of the parent transform block of the current block, and the transform layer information of the reference block is the same as the current layer information of the current block.

34. The method according to any one of claims 21 to 33, wherein The method further comprises: If there is a reference block in the reference point cloud that satisfies a preset inter-frame condition with the current block, determining that the prediction mode identification information indicates that the current block is to be subjected to transform domain inter-frame prediction; If there is no reference block in the reference point cloud that satisfies a preset inter-frame condition with the current block, it is determined that the prediction mode identification information indicates that the current block is to be subjected to transform domain intra-frame prediction.

35. The method according to claim 34, wherein The method further comprises: When the prediction mode identification information indicates that the current block performs transform-domain intra prediction, determining transform coefficient prediction values ​​of neighboring blocks of the current block, transform coefficient prediction values ​​of a parent transform block of the current block, and transform coefficient prediction values ​​of neighboring blocks of the parent transform block; A weighted operation is performed on the transform coefficient prediction values ​​of the neighboring blocks of the current block, the transform coefficient prediction value of the parent transform block of the current block, and the transform coefficient prediction values ​​of the neighboring blocks of the parent transform block to determine the transform coefficient prediction value of the current block.

36. The method of claim 22, wherein: The method further comprises: Dequantizing the quantized coefficient residual value of the current block to determine the reconstructed transform coefficient residual value of the current block; The transform coefficient of the current block is determined according to the transform coefficient prediction value of the current block and the reconstructed transform coefficient residual value of the current block.

37. The method according to claim 36, wherein The method further comprises: Determining storage information of the current block, wherein the storage information of the current block includes at least one of the following: a transform coefficient of the current block, coordinate information of the current block, slice identification information of the current block, and current layer information of the current block; The storage information of the current block is saved in the memory module.

38. The method according to claim 37, wherein Saving the storage information of the current block in the memory module includes: When the current point cloud where the current block is located meets the condition of being used as a reference point cloud, the storage information of the current block is saved in the memory module.

39. The method according to any one of claims 21 to 38, wherein The method further comprises: Determine geometric information of a current slice; wherein the current slice is determined by slice division of the current point cloud; Performing octree decomposition on the geometric information of the current slice to determine at least one transform layer; wherein the at least one transform layer includes the current layer where the current block is located.

40. The method of claim 39, wherein The method further comprises: When the current layer is the L-1th layer in the at least one transformation layer, the low-frequency coefficient values ​​of the nodes in the L-1th layer are determined, and a regional adaptive hierarchical transformation is performed based on the low-frequency coefficient values ​​of the nodes in the L-1th layer to determine the low-frequency coefficient values ​​and the original values ​​of the high-frequency coefficients of the nodes in the L-1th layer until the low-frequency coefficient values ​​and the original values ​​of the high-frequency coefficients of the root node of the current point cloud are determined; wherein L is a positive integer.

41. The method according to claim 40, wherein The method further comprises: The low-frequency coefficient value of the root node of the current point cloud is encoded, and the obtained encoded bits are written into a bitstream.

42. The method of claim 40, wherein: The method further comprises: Determining original values ​​of high-frequency coefficients of the current block; Determining a high-frequency coefficient residual value of the current block according to an original high-frequency coefficient value of the current block and a predicted high-frequency coefficient value of the current block; The high frequency coefficient residual value of the current block is coded, and the obtained coded bits are written into a bit stream.

43. A code stream, wherein The code stream is generated by bit coding according to information to be coded; wherein the information to be coded includes at least one of the following: a low-frequency coefficient value of a root node and a high-frequency coefficient residual value of a current block.

44. An encoder comprising a first determining unit, a first predicting unit, and an encoding unit, wherein: The first determining unit is configured to determine prediction mode identification information of the current block; The first prediction unit is configured to determine, when the prediction mode identification information indicates that the current block performs inter-frame prediction in the transform domain, a transform coefficient prediction value of the current block based on a reference block of the current block; The first determining unit is further configured to determine a transform coefficient residual value of the current block according to the transform coefficient prediction value of the current block; The encoding unit is configured to perform encoding processing on the transform coefficient residual value of the current block and write the obtained encoding bits into the bit stream.

45. An encoder comprising a first memory and a first processor, wherein: The first memory is used to store a computer program that can be run on the first processor; The first processor is configured to execute the method according to any one of claims 21 to 42 when running the computer program.

46. ​​A decoder comprising a second determining unit, a second predicting unit, and a decoding unit, wherein: The second determining unit is configured to determine prediction mode identification information of the current block; The second prediction unit is configured to determine a transform coefficient prediction value of the current block according to a reference block of the current block when the prediction mode identification information indicates that the current block performs inter-frame prediction in the transform domain; The decoding unit is configured to decode the code stream and determine the transform coefficient residual value of the current block; The second determining unit is further configured to determine the transform coefficient of the current block according to the transform coefficient prediction value of the current block and the transform coefficient residual value of the current block.

47. A decoder comprising a second memory and a second processor, wherein: The second memory is used to store a computer program that can be run 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.

48. A computer-readable storage medium having a computer program stored thereon, wherein: When the computer program is executed by a processor, the method according to any one of claims 1 to 20 or the method according to any one of claims 21 to 42 is implemented.

Citation Information

Patent Citations

  • Data compression for video

    CN102792688A

  • Decoding method, coding method, decoding device and coding device

    CN106998470A

  • Inter prediction method, encoder, decoder and computer storage medium

    CN114651443A

  • Compression method for real-time volume video stream transmission

    CN115633179A

  • Method and apparatus for intra prediction in video coding system

    US20180310000A1