Point cloud coding method, coder, bitstream and storage medium
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-01-03
- Publication Date
- 2026-08-11
AI Technical Summary
In the existing point cloud encoding and decoding technology, the encoding and decoding efficiency of attribute information is low, especially in the geometry-based point cloud compression framework. How to improve the encoding and decoding efficiency of attribute information is a problem that needs to be solved.
An inter prediction scheme based on motion compensation is introduced. By comparing the rate distortion cost of inter prediction schemes that have not been motion compensation and motion compensation, a suitable inter prediction mode is selected to improve the encoding and decoding efficiency of point cloud attribute information.
By selecting the appropriate inter prediction mode, the encoding and decoding efficiency of point cloud attribute information is improved, the number of encoded bits is reduced, and the encoding performance is improved.
Smart Images

Figure CN122556074A_ABST
Abstract
Description
Point cloud encoding and decoding methods, codecs, bitstreams, and storage media Technical Field
[0001] The present application relates to the field of point cloud encoding and decoding technology, and in particular to a point cloud encoding and decoding method, codec, bit stream and storage medium. Background Art
[0002] In the geometry-based point cloud compression (G-PCC) codec framework, the geometric information and attribute information of a point cloud are encoded and decoded separately. Improving the encoding and decoding efficiency of attribute information is a problem that needs to be solved.
[0003] Summary of the Invention
[0004] The present invention provides a point cloud encoding and decoding method, codec, code stream, and storage medium. The following describes various aspects of the present invention.
[0005] In a first aspect, a point cloud decoding method is provided, which is applied to a decoder, including: determining an inter-frame prediction mode of attribute information of a current frame, the inter-frame prediction mode of the attribute information of the current frame including a first prediction mode and a second prediction mode, the reference frame of the first prediction mode is a first reference frame of the current frame that has not undergone motion compensation, and the reference frame of the second prediction mode is a second reference frame of the current frame that has undergone motion compensation; if the inter-frame prediction mode is the second prediction mode, inter-frame prediction is performed on the attribute information according to the second reference frame to determine a predicted value of the attribute information; and a reconstructed value of the attribute information is determined according to the predicted value of the attribute information.
[0006] In a second aspect, a point cloud encoding method is provided, which is applied to an encoder, including: performing inter-frame prediction on attribute information of a current frame according to a first prediction mode to determine a first rate-distortion cost, where the reference frame of the first prediction mode is a first reference frame of the current frame that has not undergone motion compensation; performing inter-frame prediction on attribute information according to a second prediction mode to determine a second rate-distortion cost, where the reference frame of the second prediction mode is a second reference frame of the current frame that has undergone motion compensation; and determining a target prediction mode from the first prediction mode and the second prediction mode based on the first rate-distortion cost and the second rate-distortion cost.
[0007] According to a third aspect, a decoder is provided, comprising: a first determination unit configured to determine an inter-frame prediction mode of attribute information of a current frame, the inter-frame prediction mode of the attribute information of the current frame comprising a first prediction mode and a second prediction mode, the reference frame of the first prediction mode being a first reference frame of the current frame that has not undergone motion compensation, and the reference frame of the second prediction mode being a second reference frame of the current frame that has undergone motion compensation; a second determination unit configured to perform inter-frame prediction on the attribute information according to the second reference frame if the inter-frame prediction mode is the second prediction mode, and determine a predicted value of the attribute information; and a third determination unit configured to determine a reconstructed value of the attribute information according to the predicted value of the attribute information.
[0008] In a fourth aspect, a decoder is provided, comprising: a memory for storing a computer program; and a processor for executing the method of the first aspect when running the computer program.
[0009] In a fifth aspect, an encoder is provided, comprising: a first determination unit, configured to perform inter-frame prediction on attribute information of a current frame according to a first prediction mode, and determine a first rate-distortion cost, wherein the reference frame of the first prediction mode is the first reference frame of the current frame that has not undergone motion compensation; a second determination unit, configured to perform inter-frame prediction on attribute information according to a second prediction mode, and determine a second rate-distortion cost, wherein the reference frame of the second prediction mode is the second reference frame of the current frame that has undergone motion compensation; and a third determination unit, configured to determine a target prediction mode from the first prediction mode and the second prediction mode according to the first rate-distortion cost and the second rate-distortion cost.
[0010] In a sixth aspect, an encoder is provided, comprising: a memory for storing a computer program; and a processor for executing the method of the second aspect when running the computer program.
[0011] In a seventh aspect, a computer-readable storage medium is provided, wherein the computer-readable storage medium stores a computer program, and when the computer program is executed, the method of the first aspect or the second aspect is implemented.
[0012] In an eighth aspect, a non-volatile computer-readable storage medium for storing a bit stream is provided, wherein the bit stream is generated by an encoding method using an encoder, or the bit stream is decoded by a decoding method using a decoder, wherein the decoding method is the method of the first aspect and the encoding method is the method of the second aspect.
[0013] According to a ninth aspect, a code stream is provided, comprising a code stream generated according to the method of the second aspect.
[0014] This embodiment of the application introduces a motion-compensated inter-frame prediction scheme for inter-frame prediction of attribute information. Based on this, this embodiment selects an appropriate inter-frame prediction scheme based on the rate-distortion cost of non-motion-compensated and motion-compensated inter-frame prediction schemes, which helps improve the encoding and decoding efficiency of point cloud attribute information. BRIEF DESCRIPTION OF THE DRAWINGS
[0015] FIG1A is a schematic diagram of a three-dimensional point cloud image.
[0016] FIG1B is a partially enlarged view of a three-dimensional point cloud image.
[0017] FIG2A is a schematic diagram of six viewing angles of a point cloud image.
[0018] FIG2B is a schematic diagram of a data storage format corresponding to a point cloud image.
[0019] FIG3 is a schematic diagram of a network architecture for point cloud encoding and decoding.
[0020] FIG4A is a schematic diagram of a composition framework of a G-PCC encoder.
[0021] FIG4B is a schematic diagram of a composition framework of a G-PCC decoder.
[0022] FIG5A is a schematic diagram of a low plane position in the Z-axis direction.
[0023] FIG5B is a schematic diagram of a high plane position in the Z-axis direction.
[0024] FIG6 is a schematic diagram of a node encoding sequence.
[0025] FIG. 7A is a schematic diagram of plane identification information.
[0026] FIG. 7B is a schematic diagram of another type of planar identification information.
[0027] FIG8 is a schematic diagram of sibling nodes of a current node.
[0028] FIG. 9A is a schematic diagram showing three intersection points included in a sub-block.
[0029] FIG9B is a schematic diagram of a triangular facet set fitted using three intersection points.
[0030] FIG9C is a schematic diagram of upsampling of a triangle face set.
[0031] FIG10 is a schematic diagram of a distance-based level of detail (LOD) construction.
[0032] FIG11 is a schematic diagram of a distance-based LOD point cloud generation process.
[0033] FIG12 is a schematic diagram of a process for encoding attribute information of an LOD point cloud.
[0034] FIG13 is a schematic diagram of the structure of a refinement layer based on LOD division.
[0035] FIG14 is a schematic diagram of an inter-layer nearest neighbor search based on LOD.
[0036] FIG15A is a schematic diagram showing a spatial relationship between a child block and a parent block.
[0037] FIG15B is a schematic diagram of a neighbor block that is coplanar, colinear, and co-point with the current parent block.
[0038] FIG16 is a schematic diagram of a method for performing nearest neighbor search for a current point.
[0039] FIG17 is a schematic diagram of a method for searching the nearest neighbor within an attribute information layer.
[0040] FIG18 is a schematic diagram of a fast search method within an LOD layer.
[0041] FIG19 is a schematic diagram of a neighborhood search prediction structure based on Morton code.
[0042] FIG20 is a schematic diagram of an encoding process of a lifting transform.
[0043] FIG21 is an example diagram of a region adaptive hierarchical transform (RAHT) transformation process.
[0044] FIG22 is another example diagram of the RAHT transformation process.
[0045] FIG23 is a schematic diagram of RAHT transformation and inverse RAHT transformation.
[0046] FIG24 is a schematic diagram of the encoding block structure of attribute information.
[0047] FIG25 is a schematic diagram of the overall process of RAHT intra-frame prediction transform coding of attribute information.
[0048] FIG26 is an example diagram of a linear fitting method for the neighborhood attribute information of the current block.
[0049] FIG27 is a schematic diagram of RAHT intra-frame prediction transform coding of attribute information.
[0050] FIG28 is a schematic diagram of the inter-frame prediction process of attribute information.
[0051] FIG. 29 is a schematic diagram showing the correspondence between slices in a current frame and prediction units in a reference frame.
[0052] Figure 30 is a flowchart of the decoding method provided in an embodiment of the present application.
[0053] Figure 31 is a flow chart of the encoding method provided in an embodiment of the present application.
[0054] Figure 32 is a schematic diagram of the structure of a decoder provided in an embodiment of the present application.
[0055] FIG33 is a schematic diagram of the structure of a decoder provided in another embodiment of the present application.
[0056] Figure 34 is a schematic diagram of the structure of the encoder provided in one embodiment of the present application.
[0057] Figure 35 is a schematic structural diagram of an encoder provided in another embodiment of the present application. DETAILED DESCRIPTION
[0058] In order to enable a more detailed understanding of the features and technical contents of the embodiments of the present application, the implementation of the embodiments of the present application is described in detail below with reference to the accompanying drawings. The attached drawings are for reference only and are not used to limit the embodiments of the present application.
[0059] Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by those skilled in the art to which this application pertains. The terms used herein are for the purpose of describing the embodiments of this application only and are not intended to limit this application.
[0060] In the following description, reference is made to “some embodiments”, which describes a subset of all possible embodiments, but it will be understood that “some embodiments” may be the same subset or different subsets of all possible embodiments and may be combined with each other without conflict.
[0061] It should also be pointed out that the terms "first\second\third" involved in the embodiments of the present application are only used to distinguish similar objects and do not represent a specific ordering of the objects. It can be understood that "first\second\third" can be interchanged with a specific order or sequence where permitted, so that the embodiments of the present application described here can be implemented in an order other than that illustrated or described here.
[0062] A point cloud is a set of irregularly distributed discrete points in space that represent the spatial structure and surface properties of a three-dimensional object or scene. These points contain geometric information representing spatial location and attribute information representing the point cloud's appearance and texture. Figure 1A shows a 3D point cloud image, and Figure 1B shows a zoomed-in view of a 3D point cloud image. It can be seen that the point cloud surface is composed of densely distributed points.
[0063] In a two-dimensional image, each pixel contains information and is distributed regularly, so there's no need to record its location. However, the distribution of points in a point cloud in three-dimensional space is random and irregular, so recording the location of each point in space is necessary to fully represent the point cloud. Similar to a two-dimensional image, each location in the acquisition process has corresponding attribute information, typically an RGB color value, which reflects the object's color. For a point cloud, in addition to color information, each point's corresponding attribute information often includes reflectance values, which reflect the surface texture of the object. Therefore, point cloud data typically includes both point location information and point attribute information. Point location information can also be referred to as point geometric information. For example, point geometric information can be the point's three-dimensional coordinates (x, y, z). Point attribute information can include color information and / or reflectance. For example, reflectance can be one-dimensional reflectance information (r). Color information can be information in any color space, or it can be three-dimensional color information, such as RGB. Here, R represents red (red), G represents green (green), and B represents blue (blue). For another example, the color information may be luminance and chrominance (YCbCr, YUV) information, where Y represents brightness (luma), Cb (U) represents blue color difference, and Cr (V) represents red color difference.
[0064] For example, a point cloud generated using laser measurement principles can include both its 3D coordinate information and its reflectivity. For another example, a point cloud generated using photogrammetry principles can include both its 3D coordinate information and its 3D color information. For another example, a point cloud generated using a combination of laser measurement and photogrammetry principles can include both its 3D coordinate information, its reflectivity value, and its 3D color information.
[0065] Figures 2A and 2B show a point cloud image and its corresponding data storage format. Figure 2A provides six viewing angles of the point cloud image, while Figure 2B consists of a file header and data. The header includes the data format, data representation type, the total number of points in the point cloud, and the content represented by the point cloud. For example, the point cloud is in ".ply" format, represented by ASCII code, with a total of 207,242 points. Each point has 3D coordinate information (x, y, z) and 3D color information (r, g, b).
[0066] Point clouds can be divided into the following categories according to the acquisition method:
[0067] Static point cloud: the object is stationary and the device that acquires the point cloud is also stationary;
[0068] Dynamic point cloud: The object is moving, but the device that obtains the point cloud is stationary;
[0069] Dynamic point cloud acquisition: The device used to acquire the point cloud is in motion.
[0070] For example, point clouds can be divided into two categories according to their usage:
[0071] Category 1: Machine perception point cloud, which can be used in scenarios such as autonomous navigation systems, real-time inspection systems, geographic information systems, visual sorting robots, and disaster relief robots;
[0072] Category 2: Human eye perception point cloud, which can be used in point cloud application scenarios such as digital cultural heritage, free viewpoint broadcasting, 3D immersive communication, and 3D immersive interaction.
[0073] Point clouds can flexibly and conveniently express the spatial structure and surface properties of three-dimensional objects or scenes. Moreover, since point clouds are obtained by directly sampling real objects, they can provide a strong sense of reality while ensuring accuracy. Therefore, they are widely used, including virtual reality games, computer-aided design, geographic information systems, automatic navigation systems, digital cultural heritage, free viewpoint broadcasting, three-dimensional immersive remote presentation, and three-dimensional reconstruction of biological tissues and organs.
[0074] Point clouds are primarily collected through computer generation, 3D laser scanning, and 3D photogrammetry. Computers can generate point clouds of virtual 3D objects and scenes; 3D laser scanning can obtain point clouds of static real-world 3D objects or scenes, generating millions of point clouds per second; and 3D photogrammetry can obtain point clouds of dynamic real-world 3D objects or scenes, generating tens of millions of point clouds per second. These technologies reduce the cost and time required to acquire point cloud data while improving data accuracy. While changes in point cloud data acquisition methods have made it possible to acquire large amounts of point cloud data, the processing of this massive amount of 3D point cloud data is facing bottlenecks due to storage space and transmission bandwidth constraints, as application demands grow.
[0075] For example, taking a point cloud video with a frame rate of 30 frames per second (fps), each frame contains 700,000 points, and each point has coordinate information (xyz, float) and color information (RGB, uchar). Therefore, the data volume of a 10-second point cloud video is approximately 0.7 million × (4 bytes × 3 + 1 byte × 3) × 30 fps × 10 seconds = 3.15 GB, where 1 byte is 10 bits. For a 1280 × 720 2D video with a YUV sampling format of 4:2:0 and a frame rate of 30 fps, the data volume for 10 seconds is approximately 1280 × 720 × 12 bits × 30 frames × 10 seconds, which is approximately 0.39 GB. A 10-second two-view 3D video has a data volume of approximately 0.39 × 2 = 0.78 GB. This shows that the data volume of a point cloud video far exceeds that of 2D and 3D videos of the same length. Therefore, in order to better realize data management, save server storage space, and reduce the transmission traffic and transmission time between the server and the client, point cloud compression has become a key issue in promoting the development of the point cloud industry.
[0076] That is to say, since the point cloud is a collection of massive points, storing the point cloud not only consumes a lot of memory, but is also not conducive to transmission. There is also not enough bandwidth to support direct transmission of the point cloud at the network layer without compression. Therefore, the point cloud needs to be compressed.
[0077] Currently, point cloud coding frameworks that can compress point clouds can be the geometry-based point cloud compression (G-PCC) codec framework or the video-based point cloud compression (V-PCC) codec framework provided by the Moving Picture Experts Group (MPEG), or the AVS-PCC codec framework provided by AVS. The G-PCC codec framework can be used to compress the first type of static point clouds and the third type of dynamically acquired point clouds, and it can be based on the point cloud compression test platform (test model compression 13, TMC13). The V-PCC codec framework can be used to compress the second type of dynamic point clouds, and it can be based on the point cloud compression test platform (test model compression 2, TMC2). Therefore, the G-PCC codec framework is also called the point cloud codec TMC13, and the V-PCC codec framework is also called the point cloud codec TMC2.
[0078] An embodiment of the present application provides a network architecture of a point cloud encoding and decoding system including a decoding method and an encoding method. FIG3 is a schematic diagram of a network architecture of a point cloud encoding and decoding system provided by an embodiment of the present application. As shown in FIG3 , the network architecture includes one or more electronic devices 13 to 1N and a communication network 01, wherein the electronic devices 13 to 1N can perform video interaction through the communication network 01. During the implementation process, the electronic device can be various types of devices with point cloud encoding and decoding functions. For example, the electronic device can include a mobile phone, a tablet computer, a personal computer, a personal digital assistant, a navigator, a digital phone, a video phone, a television, a sensor device, a server, etc., which is not limited by the embodiment of the present application. Among them, the decoder or encoder in the embodiment of the present application can be the above-mentioned electronic device.
[0079] Among them, the electronic device in the embodiment of the present application has a point cloud encoding and decoding function, generally including a point cloud encoder (ie, encoder) and a point cloud decoder (ie, decoder).
[0080] The following describes the related technologies using the G-PCC codec framework and the AVS codec framework as examples.
[0081] As you can understand, in the point cloud G-PCC codec framework, the point cloud data to be encoded is first divided into multiple slices (slices, also called strips). In each slice, the geometric information of the point cloud and the attribute information corresponding to each point are encoded separately.
[0082] Figure 4A shows a schematic diagram of the G-PCC encoder's architecture. As shown in Figure 4A, during the geometry encoding process, the geometric information is transformed so that the entire point cloud is contained within a bounding box. Quantization is then performed. This quantization step primarily serves a scaling purpose. Due to quantization rounding, the geometric information of some point clouds becomes identical. Parameters are then used to determine whether to remove duplicate points. This process of quantization and removing duplicate points is also known as voxelization. The bounding box is then partitioned into an octree or constructed as a prediction tree. During this process, arithmetic coding is performed on the points within the leaf nodes of the partition to generate a binary geometry bitstream. Alternatively, arithmetic coding is performed on the intersections (vertex) generated by the partition (surface fitting is performed based on the intersections) to generate a binary geometry bitstream. During the attribute encoding process, after the geometry encoding is completed and the geometric information is reconstructed, color conversion is performed to convert the color information (i.e., attribute information) from the RGB color space to the YUV color space. The reconstructed geometry information is then used to recolor the point cloud so that the unencoded attribute information corresponds to the reconstructed geometry information. Attribute coding is mainly performed on color information. In the process of color information coding, there are three main transformation methods. The first two methods rely on the level of detail (LOD) division, which are distance-based lifting transformation and prediction transformation respectively. The third method is to directly perform RAHT. All three methods will convert color information from the spatial domain to the frequency domain, obtain high-frequency coefficients and low-frequency coefficients through transformation, and finally quantize the coefficients. Then, the quantized coefficients are arithmetically coded to generate a binary attribute bit stream.
[0083] Figure 4B shows a schematic diagram of the composition framework of a G-PCC decoder. As shown in Figure 4B, for the acquired binary bit stream, the geometric bit stream and attribute bit stream in the binary bit stream are first decoded independently. When decoding the geometric bit stream, the geometric information of the point cloud is obtained through arithmetic decoding-reconstruction of the octree / reconstruction of the prediction tree-reconstruction of the geometry-coordinate inverse conversion; when decoding the attribute bit stream, the attribute information of the point cloud is obtained through arithmetic decoding-inverse quantization-LOD partitioning / RAHT-color inverse conversion, and the point cloud data to be encoded (i.e., the output point cloud) is restored based on the geometric information and attribute information.
[0084] It should be noted that, as shown in FIG4A or FIG4B , the current geometric coding and decoding of G-PCC can be divided into octree-based geometric coding and decoding (marked by a dotted box) and prediction tree-based geometric coding and decoding (marked by a dotted box).
[0085] For octree geometry encoding (OctGeomEnc), octree geometry encoding includes: first, coordinate conversion of the geometric information so that all point clouds are contained in a bounding box. Then quantization is performed. This step of quantization mainly plays a role of scaling. Due to the quantization rounding, the geometric information of some points is the same. The parameters are used to decide whether to remove duplicate points. The process of quantization and removal of duplicate points is also called voxelization. Next, the bounding box is continuously divided into trees (such as octrees, quadtrees, binary trees, etc.) in the order of breadth-first traversal, and the placeholder code of each node is encoded. In related technologies, a company proposed an implicit geometric division method. First, the bounding box of the point cloud is calculated. Assume d x >d y >d z , the bounding box corresponds to a cuboid. When geometrically partitioning, the binary tree partitioning will be performed based on the x-axis to obtain two child nodes; until d is satisfied x =d y >d z When the conditions are met, the quadtree partitioning will be performed based on the x and y axes to obtain four child nodes; when d is finally satisfied x =d y =d z When the conditions are met, the octree partitioning will continue until the leaf node obtained by the partitioning is a 1×1×1 unit cube. The partitioning will stop and the points in the leaf node will be encoded to generate a binary code stream. In the process of binary tree / quadtree / octree partitioning, two parameters are introduced: K and M. Parameter K indicates the maximum number of binary tree / quadtree partitions before octree partitioning; parameter M is used to indicate that the minimum block side length corresponding to binary tree / quadtree partitioning is 2 M . At the same time, K and M must meet the following conditions: Assume d max =max(d x ,d y ,d z ), d min =min(d x ,d y ,d z ), parameter K satisfies: K ≥ d max -d min ; Parameter M satisfies: M≥d minThe reason why the parameters K and M meet the above conditions is that in the current G-PCC geometric implicit partitioning process, the priority of the partitioning method is binary tree, quadtree and octree. When the node block size does not meet the conditions of binary tree / quadtree, the node will be divided into octree until the minimum unit of leaf node is 1×1×1. The octree-based geometric information coding mode can effectively encode the geometric information of the point cloud by utilizing the correlation between adjacent points in space. However, for some relatively flat nodes or nodes with planar characteristics, the encoding performance of the point cloud geometric information can be further improved by using plane coding.
[0086] Exemplarily, Figure 5A and Figure 5B provide a kind of plane position schematic diagram.Wherein, Figure 5A shows a kind of low plane position schematic diagram in the Z-axis direction, and Figure 5B shows a kind of high plane position schematic diagram in the Z-axis direction.As shown in Figure 5A, here (a), (a0), (a1), (a2), (a3) all belong to the low plane position in the Z-axis direction. Taking (a) as an example, it can be seen that the four child nodes occupied in the current node are all located at the low plane position of the current node in the Z-axis direction, so it can be considered that the current node belongs to a Z plane and is a low plane in the Z-axis direction. Similarly, as shown in Figure 5B, here (b), (b0), (b1), (b2), (b3) all belong to the high plane position in the Z-axis direction. Taking (b) as an example, it can be seen that the four child nodes occupied in the current node are located at the high plane position of the current node in the Z-axis direction, so it can be considered that the current node belongs to a Z plane and is a high plane in the Z-axis direction.
[0087] Furthermore, taking (a) in Figure 5A as an example, the performance of octree encoding and plane encoding is compared. Figure 6 provides a schematic diagram of the node encoding sequence, that is, node encoding is performed in the order of 0, 1, 2, 3, 4, 5, 6, and 7 as shown in Figure 6. Here, if octree encoding is used for (a) in Figure 5A, the placeholder information of the current node is represented as: 10101010. However, if plane encoding is used, first, an identifier must be encoded to indicate that the current node is a plane in the Z-axis direction. Secondly, if the current node is a plane in the Z-axis direction, the plane position of the current node must also be represented. Finally, only the placeholder information of the lower plane node in the Z-axis direction needs to be encoded (i.e., the placeholder information of the four child nodes 0, 2, 4, and 6). Therefore, encoding the current node based on plane encoding only requires 6 bits, which can reduce the representation by 2 bits compared to the related art octree encoding. Based on this analysis, plane encoding has significantly better coding performance than octree encoding. Therefore, for an occupied node, if a plane encoding method is used in a certain dimension, it is first necessary to represent the plane identification (planarMode) and plane position (PlanePos) information of the current node in that dimension, and then encode the occupancy information of the current node based on the plane information of the current node. For example, FIG7A shows a schematic diagram of plane identification information. As shown in FIG7A, there is a low plane in the Z-axis direction; correspondingly, the value of the plane identification information is true (true) or 1, that is, planarMode_ Z = true; the plane position information is the low plane (low), that is, PlanePosition_ Z =low. FIG7B shows another schematic diagram of plane identification information. As shown in FIG7B, here it is not a plane in the Z-axis direction; correspondingly, the value of the plane identification information is false or 0, that is, planarMode_ Z =false.
[0088] It should be noted that for PlaneMode_ i :0 means the current node is not a plane in the i-axis direction, 1 means the current node is a plane in the i-axis direction. If the current node is a plane in the i-axis direction, then for PlanePosition_ i : 0 means the current node is a plane in the i-axis direction and the plane position is low, 1 means the current node is a high plane in the i-axis direction. Here, i represents the coordinate dimension, which can be the X-axis direction, Y-axis direction, or Z-axis direction, so i = 0, 1, 2.
[0089] The octree-based geometric information coding mode only has an efficient compression rate for points that are correlated in space. For points that are isolated in the geometric space, the use of the direct coding model (DCM) can greatly reduce the complexity. For all nodes in the octree, the use of DCM is not indicated by flag information, but is inferred from the parent node and neighbor information of the current node. There are three ways to determine whether the current node is eligible for DCM coding, as follows:
[0090] (1) The current node has no sibling child nodes, that is, the parent node of the current node has only one child node, and the parent node of the parent node of the current node has only two occupied child nodes, that is, the current node has at most one neighbor node.
[0091] (2) The parent node of the current node has only one child node, the current node, and the six neighbor nodes that share a face with the current node are all empty nodes.
[0092] (3) The number of sibling nodes of the current node is greater than 1.
[0093] Exemplarily, FIG8 provides a schematic diagram of IDCM coding. If the current node does not have the DCM coding qualification, it will be divided into octrees. If it has the DCM coding qualification, the number of points contained in the node will be further judged. When the number of points is less than a threshold (for example, 2), the node will be DCM-encoded, otherwise the octree division will continue. When the DCM coding mode is applied, it is first necessary to encode whether the current node is a true isolated point, that is, IDCM_flag. When IDCM_flag is true, the current node adopts DCM coding, otherwise octree coding is still adopted. When the current node meets the DCM coding requirements, the DCM coding mode of the current node needs to be encoded. There are currently two DCM modes, namely: (a) there is only one point (or multiple points, but they are duplicate points); (b) there are two points. Finally, the geometric information of each point needs to be encoded. Assuming that the side length of the node is 2 d When encoding each component of the node's geometric coordinates, d bits are required, and these bits are directly encoded into the bitstream. It is important to note that when encoding LiDAR point clouds, the performance of geometric information encoding can be further improved by predictively encoding the three-dimensional coordinate information using LiDAR acquisition parameters.
[0094] It is important to note that when partitioning nodes into leaf nodes, the number of duplicate points in the leaf nodes must be encoded in the case of lossless geometric coding. Ultimately, the placeholder information for all nodes is encoded to generate a binary bitstream. Furthermore, G-PCC currently introduces a plane coding mode. During the geometric partitioning process, it determines whether the child nodes of the current node are in the same plane. If the child nodes of the current node meet the condition of being in the same plane, the child nodes of the current node are represented by that plane.
[0095] For octree-based geometric decoding, the decoder follows a breadth-first traversal. Before decoding each node's occupancy information, it first uses the reconstructed geometric information to determine whether the current node is for plane decoding or IDCM decoding. If the current node meets the requirements for plane decoding, it first decodes the plane identifier and plane position information of the current node. Then, based on the plane information, it decodes the current node's occupancy information. If the current node meets the requirements for IDCM decoding, it first decodes whether the current node is a true IDCM node. If so, it continues to parse the DCM decoding mode of the current node, then obtains the number of points in the current DCM node, and finally decodes the geometric information of each point. For nodes that do not meet either plane decoding or DCM decoding requirements, the current node's occupancy information is decoded. By continuously parsing in this way, the placeholder code of each node is obtained, and the node is continuously partitioned until a 1×1×1 unit cube is obtained. The number of points contained in each leaf node is parsed, and the geometrically reconstructed point cloud information is finally recovered.
[0096] For triangle soup (trisoup)-based geometric information coding, geometric partitioning must also be performed first in the trisoup-based geometric information coding framework. However, unlike geometric information coding based on binary trees, quadtrees, and octrees, this method does not require step-by-step partitioning of the point cloud into unit cubes with side lengths of 1×1×1. Instead, the partitioning stops when the sub-blocks (blocks) have a side length of W. Based on the surface formed by the distribution of the point cloud in each block, the surface and the twelve edges of the block are obtained. The vertex coordinates of each block are encoded in sequence to generate a binary code stream.
[0097] For trisoup-based point cloud geometry reconstruction, when performing point cloud geometry reconstruction at the decoding end, the vertex coordinates are first decoded to complete the triangle face reconstruction. This process is shown in Figures 9A, 9B, and 9C. Among them, there are three intersection points (v1, v2, v3) in the block shown in Figure 9A. The set of triangle faces formed by these three intersection points in a certain order is called triangle soup, or trisoup, as shown in Figure 9B. Afterwards, sampling is performed on the triangle face set, and the obtained sampling points are used as the reconstructed point cloud within the block, as shown in Figure 9C.
[0098] Predictive geometry coding (PredGeomTree) involves first sorting the input point cloud. Currently used sorting methods include unordered, Morton order, azimuth order, and radial distance order. At the encoding end, the prediction tree structure is established using two different methods: KD-Tree (high-latency slow mode) and low-latency fast mode (using lidar calibration information). When using lidar calibration information, each point is assigned to a different laser, and a prediction tree structure is established based on the different lasers. Next, based on the prediction tree structure, each node in the prediction tree is traversed, and the geometric position information of the node is predicted by selecting different prediction modes to obtain a prediction residual. The geometric prediction residual is then quantized using a quantization parameter. Finally, through continuous iteration, the prediction residual of the prediction tree node position information, the prediction tree structure, and the quantization parameters are encoded to generate a binary bitstream.
[0099] For geometric decoding based on the prediction tree, the decoding end reconstructs the prediction tree structure by continuously parsing the bit stream. Secondly, the geometric position prediction residual information and quantization parameters of each prediction node are obtained through parsing, and the prediction residual is dequantized to restore the reconstructed geometric position information of each node, finally completing the geometric reconstruction at the decoding end.
[0100] After the geometric encoding is completed, the geometric information needs to be reconstructed. At present, attribute encoding is mainly performed on color information. First, the color information is converted from the RGB color space to the YUV color space. Then, the point cloud is recolored using the reconstructed geometric information so that the unencoded attribute information corresponds to the reconstructed geometric information. In color information encoding, there are two main transformation methods. One is the distance-based lifting transformation that relies on LOD partitioning, and the other is to directly perform RAHT transformation. Both methods will convert the color information from the spatial domain to the frequency domain, and obtain high-frequency coefficients and low-frequency coefficients through transformation. Finally, the coefficients are quantized and encoded to generate a binary code stream, as shown in Figures 4A and 4B.
[0101] Furthermore, when using geometric information to predict attribute information, Morton codes can be used to perform nearest neighbor search. The Morton code corresponding to each point in the point cloud can be obtained from the geometric coordinates of the point. The specific method for calculating the Morton code is described below. For a three-dimensional coordinate represented by a d-bit binary number for each component, its three components can be expressed as:
[0102] in, The highest bits of x, y, and z respectively To the lowest position The corresponding binary value. The Morton code M is x, y, z starting from the highest bit, arranged in sequence To the lowest bit, the calculation formula of M is as follows:
[0103] in, The highest bit of M To the lowest position After obtaining the Morton code M of each point in the point cloud, the points in the point cloud are arranged in ascending order of the Morton code, and the weight value w of each point is set to 1.
[0104] As mentioned earlier, there are three main transform methods for encoding attribute information: lifting transform, predictive transform, and RAHT transform. Lifting transform and predictive transform predict and transform the point cloud based on the LOD generation order, while RAHT transform adaptively transforms attribute information from the bottom up based on the octree construction hierarchy. The following sections describe these three transform encoding methods, starting with a detailed description of predictive transform encoding.
[0105] In the current attribute prediction module of G-PCC, a nearest neighbor attribute prediction coding scheme based on LOD structure is adopted. The LOD construction methods include distance-based LOD construction scheme, fixed sampling rate-based LOD construction scheme, and octree-based LOD construction scheme. In the distance-based LOD construction scheme, the point cloud is first Morton sorted before constructing LOD to ensure that there is a strong attribute correlation between adjacent points. Figure 10 shows a schematic diagram of distance-based LOD construction. As shown in Figure 10, the point cloud is divided into L different point cloud detail layers (Rl)l=0,1,…L-1 according to the pre-set L Manhattan distances (dl)l=0,1,…L-1, where (dl)l=0,1,…L-1 satisfies dl <dl-1。
[0106] The construction process of LOD is described as follows: (1) First, mark all points in the point cloud as unvisited, and establish a set V to store the set of points that have been visited; (2) In each iteration, traverse the points in the point cloud. If the current point has been visited, ignore it. Otherwise, calculate the minimum distance D from the current point to the point set V. If D < dl, ignore the point; if D ≥ dl, mark the current point as visited and add the current point to the refinement layer Rl and the point set V; (3) The points in the level of detail LODl are composed of the points in the refinement layers R0, R1, R2…Rl; (4) Continuously repeat the above steps until all points are marked as visited.
[0107] Based on the LOD structure, the attribute information of each point is linearly weighted predicted by using the reconstructed attribute information of points in the same or higher LOD level. Among them, the maximum number of reference prediction neighbor points is determined by the high-level syntax elements of the encoder. For the attribute of each point, at the encoding end, the rate-distortion optimization algorithm is used to select the attribute information of the N nearest neighbor points found for weighted prediction; alternatively, the attribute information of a single nearest neighbor point is selected for prediction, and finally, the selected prediction mode and prediction residual are encoded. In the LOD structure, the formula for predicting the attribute information of the current point can be as follows:
[0108] where N represents the number of prediction points in the nearest neighbor point set of the current point i, Pi represents the sum of the N nearest neighbor points of the current point i, Dm represents the spatial geometric distance from the nearest neighbor point m to the current point i, Attrm represents the attribute information after reconstruction of the nearest neighbor point m, and Attr i ′ represents the attribute prediction information of the current point i, and the number of points N is a preset value in advance.
[0109] To balance the attribute coding performance and parallel processing between different LOD levels, a switch is introduced in the high-level syntax elements of the encoder. This switch can control whether to introduce in-LOD prediction. For example, if the switch is turned on, in-LOD prediction is started, and then points within the same LOD level can be used for prediction. It should be noted that when the number of LOD levels is 1, in-LOD prediction will always be used.
[0110] Figure 11 shows a schematic diagram of the generation process of a distance-based LOD point cloud. As shown in Figure 11, the first image on the left is the original point cloud, and the second image on the left represents the outer contour of the point cloud. In the following images, as the detail level gradually increases, the detailed description of the point cloud becomes clearer. The following will introduce the prediction process of the attribute information of the LOD structure point cloud in detail.
[0111] Figure 12 shows a schematic diagram of the encoding process of the attribute information of the LOD point cloud. After the LOD is constructed, according to the generation order of the LOD, the three nearest neighboring points of the current point to be encoded are first found from the encoded data points. The attribute reconstruction values of these three nearest neighboring points are used as candidate prediction values of the current point to be encoded; then, the optimal prediction value is selected from them according to the rate-distortion optimization algorithm. For example, as shown in Table 1, when encoding the attribute value of point P2 in Figure 10, the prediction variable index of the attribute value of the nearest neighbor point P4 can be set to 1; the attribute prediction variable indexes of the second nearest neighbor point P5 and the third nearest neighbor point P0 can be set to 2 and 3 respectively; the prediction variable index of the weighted average of points P0, P5 and P4 is set to 0; finally, the rate-distortion optimization algorithm is used to select the best prediction variable. Among them, the formula for weighted average is as follows:
[0112] In the formula Represents the spatial geometric weight of the neighboring point j to the current point i:
[0113] Represents the attribute prediction value of the current point i, j represents the index of the three neighboring points, Represents the attribute value after reconstruction of the neighboring points, x i ,y i ,z i is the geometric position coordinate of the current point i, x ij ,y ij ,z ij is the geometric coordinate of the neighboring point j.
[0114] Table 1
[0115] The attribute prediction value of the current point i is obtained through the above prediction (k is the total number of points in the point cloud). Let (a i ) i∈0…k-1 is the original attribute value of the current point, then the attribute residual (r i ) i∈0…k-1 Denoted as:
[0116] Further quantify the prediction residuals:
[0117] In formula (7), Q i represents the quantized attribute residual at the current point i. Qs is the quantization step (Qs), which can be calculated from the quantization parameter (QP). After quantization, the quantization coefficients are arithmetic coded to generate the attribute bit rate.
[0118] During the encoding process, the encoder reconstructs the attribute value of the current point i. The purpose of reconstruction is to predict the subsequent points. Before reconstructing the attribute value, the residual must be dequantized. is the residual after inverse quantization:
[0119] and predicted value Add up to get the reconstruction value of point i
[0120] As described above, based on LOD partitioning, predicting the attribute value of the current point requires a nearest neighbor search. Currently, there are two main types of nearest neighbor search methods: intra-frame nearest neighbor search and inter-frame nearest neighbor search. The following sections describe these two nearest neighbor search methods in detail.
[0121] Intra-frame nearest neighbor search can be divided into two methods: inter-layer nearest neighbor search and intra-layer nearest neighbor search. First, let's introduce inter-layer nearest neighbor search. Figure 13 shows a schematic diagram of the structure of the refinement layer based on LOD division. As shown in Figure 13, after LOD division, different refinement layers R will form a pyramid-like structure. The method of inter-layer nearest neighbor search can be shown in Figure 14. First, based on the method shown in Figure 10, the geometric information is divided into different LOD layers, and LOD0, LOD1 and LOD2 are obtained. In the process of inter-layer nearest neighbor search, the points in LOD0 are used to predict the attributes of the points in the next layer LOD. Next, the process of inter-layer nearest neighbor search is introduced in detail.
[0122] During the entire LOD partitioning process, there are three sets: O(k), L(k), and I(k). Among them, k is the index of the LOD layer during LOD partitioning, and I(k) is the input point set during the current LOD layer partitioning. After LOD partitioning, the O(k) set and L(k) set are obtained. The O(k) set stores the sampling point set, and L(k) is the point set in the current LOD layer. The entire LOD partitioning process is as follows:
[0123] (1) Initialization;
[0124] if k=0,L(k)←{}otherwise L(k)←L(k-1)
[0125] O(k)←{}
[0126] (2) Using the LOD partitioning algorithm, the sampling points are stored in O(k), and the remaining points are divided into L(k);
[0127] (3) When the next iteration is performed, I←O(k).
[0128] It's important to note that since the LOD partitioning process is based on Morton codes, O(k), L(k), and I(k) store the Morton code index corresponding to the point. When performing inter-layer nearest neighbor search, the nearest neighbor search for a point in the L(k) set is performed in the O(k) set. The specific search method is described in detail below.
[0129] First, the nearest neighbor search is performed based on the spatial relationship. As shown in Figure 15A, when predicting the current point P, a neighbor search is performed by using the parent block (Block B) corresponding to point P. Figure 15B shows a schematic diagram of neighbor blocks that are coplanar, colinear, and co-point with the current parent block. As shown in Figure 15B, points in the coplanar and co-linear neighbor blocks with the current parent block are searched in Figure 15B to perform attribute prediction. That is to say, the coordinates of the current point are used to obtain the corresponding spatial block, and then, the nearest neighbor search is performed in the previously encoded LOD layer to find the spatial blocks that are coplanar, colinear, and co-point with the current block to obtain the N nearest neighbors of the current point.
[0130] If the N nearest neighbors of the current point are still not obtained after the nearest neighbor search for coplanar, colinear and co-point points, then the N nearest neighbors of the current point will be obtained based on the fast search algorithm. The specific method can be seen in Figure 16. Figure 16 shows a schematic diagram of the method of performing the nearest neighbor search for the current point. As shown in Figure 16, when performing inter-layer prediction of attributes, the geometric coordinates of the current point can be used to obtain the Morton code corresponding to the current point. Then, based on the Morton code of the current point, the first reference point (j) that is larger than the Morton code of the current point is found in the reference frame, and the nearest neighbor search is performed within the range of [j-searchRange, j+searchRange]. The specific method of updating the nearest neighbor is the same as the method of the inter-frame nearest neighbor search, which will be described when introducing the inter-frame nearest neighbor search and will not be repeated here. The following is a detailed introduction to the intra-layer nearest neighbor search.
[0131] Figure 17 shows a schematic diagram of the method of nearest neighbor search within the attribute information layer. As shown in Figure 17, when the intra-layer prediction method is turned on, the nearest neighbor search will be performed in the encoded point set within the same layer LOD to obtain the N nearest neighbors of the current point (the inter-layer nearest neighbor search is also performed). The method of performing the nearest neighbor search can be based on a quick search. For example, as shown in Figure 18, assuming that the Morton code index of the current point is i, the nearest neighbor search will be performed in [i+1, i+searchRange]. The specific nearest neighbor search method is consistent with the inter-frame block-based quick search method, which will not be repeated here. The inter-frame nearest neighbor search method is introduced in detail below.
[0132] Continuing to refer to Figure 16, when performing attribute inter-frame prediction, the geometric coordinates of the current point are used to obtain the Morton code corresponding to the current point. Based on the Morton code of the current point, the first reference point (j) with a Morton code larger than the current point is found in the reference frame, and then the nearest neighbor search is performed within the range of [j-searchRange, j+searchRange].
[0133] Currently, when performing nearest neighbor searches within and between frames, the neighborhood search is performed based on blocks. FIG19 shows a schematic diagram of a neighborhood search prediction structure based on Morton codes. For example, as shown in FIG19 , when performing neighborhood search for the current point (Morton code index is i), the points in the reference frame are divided into N (N=3) layers according to the Morton code. The division method can be as follows:
[0134] First layer: Assuming that the number of points in the reference frame is numPoints, first divide the points in the reference frame into a block every M (M=25=32) points;
[0135] Second layer: Based on the first layer, every M (M=25=32) blocks of the first layer are divided into one block in the order of Morton code;
[0136] The third layer: Based on the second layer, every M (M=25=32) blocks of the first layer are divided into one block in the order of the Morton code.
[0137] Finally, the predicted structure shown in Figure 19 is obtained.
[0138] When performing attribute prediction based on the prediction structure shown in Figure 19, assume that the Morton code index of the current point to be encoded is i, and the first point in the reference frame with a Morton code greater than or equal to the current point has an index of j. The block index of the reference point is calculated based on j, and the specific calculation method is as follows:
[0139] First layer: BucketSize_0=25=32;
[0140] Second layer: BucketSize_1 = 25 = 32 × BucketSize_0 = 1024;
[0141] Third layer: BucketSize_2=25=32×BucketSize_1=32768.
[0142] Assume that the reference range in the prediction frame for the current point is [j-searchRange, j+searchRange]. Use j-searchRange to calculate the starting index of the third layer, and j+searchRange to calculate the ending index of the third layer. First, determine whether some blocks in the second layer need to be searched for their nearest neighbors within the blocks in the third layer. Then, for each block in the first layer, determine whether a search is required. If some blocks in the first layer need to be searched for their nearest neighbors, a point-by-point search is performed on some of the blocks in the first layer to update the nearest neighbors. The following describes the method for calculating blocks based on indexes.
[0143] Assuming that the Morton code index corresponding to the current point is index, then the index of the corresponding third-layer block is: idx_2=index / BucketSize_2 (10)
[0144] After obtaining the block index idx_2 of the third layer, the start index and end index of the block corresponding to the current block in the second layer can be obtained using idx_2: startIdx1=idx_2×BucketSize_1 (11) endIdx=idx_2×BucketSize_1+BucketSize_1-1 (12)
[0145] Based on the same algorithm, the index of the first layer block is obtained according to the index of the second layer block.
[0146] When performing a block-based nearest neighbor search, it will determine whether the current block needs to be searched for the nearest neighbor, that is, the nearest neighbor search of the filtered block. Each spatial block can obtain minPos and maxPos through two variables. MinPos represents the minimum value of the block, and maxPos represents the maximum value of the block. Assume that the distance to the farthest point among the N nearest neighbors of the current point is Dist, the coordinates of the point to be encoded are (x, y, z), and the current block is represented by (minPos, maxPos), where minPos is the minimum value of the three dimensions of the bounding box and maxPos is the maximum value of the three dimensions of the bounding box. The distance D between the current point and the bounding box is calculated as follows: int dx=int(std::max(std::max(minPos[0]-point[0],0),point[0]-maxPos[0])) (13) int dy=int(std::max(std::max(minPos[1]-point[1],0),point[1]-maxPos[1])) (14) int dz=int(std::max(std::max(minPos[2]-point[2],0),point[2]-maxPos[2])) (15) D=dx+dy+dz (16)
[0147] When D is less than or equal to Dist, the points in the current block will be traversed.
[0148] The above describes the method of predictive transform encoding of point cloud attribute information. Next, the method of lifting transform encoding of point cloud attribute information will be described in detail.
[0149] Figure 20 shows a schematic diagram of the encoding process of the lifting transform. As shown in Figure 20, the lifting transform also predicts and encodes the point cloud attributes based on LOD. The difference from the predictive transform described above is that the lifting transform divides the LOD into high and low layers. Then, the prediction is performed in the reverse order of the LOD generation layer, and an update operator is introduced in the prediction process to update the quantization weights of the low-level LOD midpoints to improve the accuracy of the prediction. The attribute values of the low-level LOD midpoints are frequently used to predict the attribute values of the high-level LOD midpoints, so the points in the low-level LOD should have greater influence. Continuing to refer to Figure 20, the encoding method of the lifting transform can be divided into three steps, namely: segmentation process, prediction process and update process. The following will introduce these three steps in detail.
[0150] Step 1: Segmentation Process
[0151] The segmentation process is to divide the complete LOD layer into a low LOD layer L(N) and a high LOD layer H(N). If a point cloud has three LOD layers, namely (LOD l ) l=0,1,2 , after segmentation, LOD2 is the high LOD layer, denoted as H(N), (LOD l ) l=0,1 It is the low LOD layer, denoted as L(N).
[0152] Step 2: Prediction Process
[0153] The point in the high-level LOD selects the attribute information of the nearest neighbor point from the low-level LOD as the attribute prediction value P(N) of the current point to be coded, and the prediction residual D(N) is recorded as: D(N) = H(N) - P(N) (17)
[0154] Step 3: Update Process
[0155] Update the attribute prediction residual D(N) in the high-level LOD to obtain U(N), and use U(N) to improve the attribute value of the midpoint of the low-level LOD, as shown in the following formula: L′(N)=L(N)+U(N) (18)
[0156] The above process will iterate continuously until the lowest LOD according to the order of LOD from high to low.
[0157] The LOD-based prediction scheme gives points in the lower LOD layers greater influence. The lifting wavelet transform-based transformation introduces quantization weights and updates the prediction residual based on the prediction residual D(N) and the distance between the prediction point and its adjacent points. Finally, the prediction residual is adaptively quantized using the quantization weights from the transformation process. It should be noted that the quantization weight value for each point can be determined by geometric reconstruction at the decoder, so the quantization weights should not be encoded.
[0158] The RAHT transform uses the Haar wavelet transform, which can transform the attribute information of the point cloud from the spatial domain to the frequency domain, thereby further reducing the correlation between the attribute information of the point cloud. Figure 21 is an example diagram of the RAHT transform process. As shown in Figure 21, RAHT performs wavelet transform based on the hierarchical structure of the octree, thereby associating the attribute information with the octree nodes. The attribute information of the occupied nodes in the same parent node is recursively transformed in a bottom-up manner, and the nodes in each layer are transformed from the three dimensions of x, y, and z (see Figure 22) until they are transformed to the root node of the octree. In the process of hierarchical transformation, the direct current (DC) coefficient (or low-pass coefficient) obtained after the transformation of the nodes in the same layer is passed to the nodes in the upper layer for further transformation, and all alternating current (AC) coefficients (or high-pass coefficients) will be quantized and encoded.
[0159] Figure 23 is a schematic diagram of RAHT transformation and inverse RAHT transformation. Assume that g′ L,2x,y,z And g′L,2x+1,y,z are the DC coefficients of two neighboring points in the L layer. After RAHT transformation, the information of the L-1 layer is the AC coefficient f′ L-1,x,y,z and DC coefficient g′ L-1,x,y,z . f′ L-1,x,y,z No more transformation will be performed, and quantization coding will be performed directly, g′ L-1,x,y,z We will continue to search for neighboring points to transform. If no neighboring points are found, we can transform g′ L-1,x,y,z Directly passed to the L-2 layer. That is to say, RAHT transformation is only valid for nodes with neighboring points, and nodes without neighboring points will be directly passed to the previous layer. In the above transformation process, g′ L,2x,y,z The weights corresponding to g′L, 2x+2, y, and z (the weights can be determined based on the number of non-empty child nodes in the node) are w′ L,2x,y,z and w′L,2x+1,y,z (abbreviated as w′0 and w′1), g′ L-1,x,y,z The weight is w′ L-1,x,y,z , then the general transformation formula of RAHT transformation is:
[0160] In formula (19), Tw 0,w1 is the transformation matrix, which can be determined based on formula (20):
[0161] The transformation matrix will be updated adaptively as the weights corresponding to each point are transformed. The above transformation process will be iterated and updated continuously according to the partitioning structure of the octree until the root node of the octree is reached.
[0162] Based on the RAHT transform, RAHT intra-frame prediction can be performed on the attribute information, that is, RAHT intra-frame prediction combined with transform coding can be performed on the attribute information. This coding mode is described in detail below.
[0163] As shown in Figure 24, the RAHT transform is based on the order of the octree hierarchy, and continuously transforms from the voxel level until the root node is obtained, thereby completing the hierarchical transform coding of the entire attribute information. In RAHT intra-frame prediction combined with transform coding, the attribute information can also be predicted and transformed based on the hierarchical order of the octree. The difference is that the process of RAHT intra-frame prediction combined with transform coding can continuously transform from the root node to the voxel level. In each RAHT transform process, the attribute information can be predicted and transformed based on a 2×2×2 block.
[0164] The structure of the encoding block of attribute information can be seen in Figure 24. The dark gray block in Figure 24 is the current block to be encoded, and the light gray block is the neighboring block coplanar and colinear with the current block. The attribute information of the current block can be normalized based on equations (21) to (23): node =∑ p∈node attribute(p) (21) w node =∑ p∈node 1=#{p∈ node} (22) a node =A node / w node (twenty three)
[0165] Specifically, we can first obtain the attribute information of the current block based on the attribute information of the nodes in the current block, that is, A node For example, a simple sum operation can be performed on the attribute information of the nodes in the current block to determine A node Then, we can use the attribute information of the current block and the number of nodes in the current block (i.e., w node ) is normalized to obtain the mean value a of the attribute information of the current block node Then, the mean value of the attribute information of the current block can be used for transform coding.
[0166] Figure 25 shows the overall process of RAHT intra-frame prediction combined with transform coding of attribute information. (d) in Figure 25 shows the attribute information of the current block, and (e) in Figure 25 shows the attribute information of the predicted block obtained by linear weighted fitting using the neighborhood attribute information of the current block. Then, the attribute information of the current block and the attribute information of the predicted block can be attribute transformed respectively to obtain DC coefficients and AC coefficients. Then, the AC coefficients can be predictively encoded. Among them, the attribute information of the predicted block is obtained by linear fitting based on the method shown in Figure 26.
[0167] FIG26 is an example diagram of a linear fitting method for the neighborhood attribute information of the current block. As shown in FIG26 , first, the 19 neighborhood blocks of the current block can be determined. Secondly, the spatial geometric distance between the neighborhood block and each sub-block in the current block can be used to perform linear weighted prediction on the attribute information of each sub-block to obtain the attribute information of the predicted block. Then, the attribute information of the predicted block can be transformed. Exemplarily, equations (24) to (26) in FIG27 can be used to predict and transform the attribute information (Equation (24) represents the transformation method of the attribute information of the current block, equation (25) represents the transformation method of the attribute information of the predicted block, and equation (26) outputs the predicted residual information):
[0168] When performing inter-frame prediction coding of attribute information, if inter-frame prediction coding is started, the RAHT attribute transform coding structure will first be constructed based on the geometric information of the current node, that is, the nodes will be continuously merged at the voxel level until the root node of the entire RAHT transform tree is obtained, thereby obtaining the transform coding hierarchical structure corresponding to the attribute information. Then, according to the RAHT transform structure, the root node can be divided to obtain N child nodes of each node (N is less than or equal to 8). Unlike the RAHT intra-frame prediction combined with transformation coding mode, the RAHT inter-frame prediction combined with transformation coding mode will utilize the node information of the reference frame. For example, the attribute information of the N child nodes of the current node can be RAHT transformed to obtain DC and AC coefficients. Secondly, the AC coefficients of the N child nodes can be inter-frame predicted in the following way.
[0169] For example, if the inter-frame prediction node of the current node is valid (ie, the co-located node of the current node in the reference frame exists), the attribute information of the prediction node is directly used as the attribute prediction value of the current node.
[0170] For another example, if the current node can find a node with exactly the same position as the current node in the cache of the reference frame (that is, the current node exists in the same node in the reference frame), then the attribute prediction values of the AC coefficients of the N child nodes of the current node can be determined based on the AC coefficients of the M child nodes contained in the same node. For example, if the AC coefficient of the inter-frame prediction node corresponding to a child node is not zero, the AC coefficient of the inter-frame prediction node is directly used as the prediction value of the child node; if the AC coefficient of the inter-frame prediction node corresponding to a child node is zero, the AC coefficient of the intra-frame prediction node corresponding to the child node can be used as the prediction value.
[0171] For another example, if the inter-frame prediction node of the current node is invalid (ie, the co-located node of the current node in the reference frame does not exist), the attribute prediction value of the adjacent node in the frame can be used as the attribute prediction value of the current node.
[0172] In addition, after RAHT inter prediction is enabled, the optimal RAHT prediction mode can be selected for each layer. The RAHT prediction mode can be either RAHT intra prediction mode or RAHT inter prediction mode. If the cost of the RAHT intra prediction mode is less than the cost of the RAHT inter prediction mode, RAHT intra prediction can be performed on the current layer; otherwise, RAHT inter prediction is performed.
[0173] It can also be understood that for the G-PCC codec framework, the general test conditions are as follows:
[0174] (1) There are 4 test conditions:
[0175] Condition 1: The geometric position is limited and the attributes are lost;
[0176] Condition 2: Geometric position lossless, attribute lossy;
[0177] Condition 3: Geometric position lossless, attribute loss limited;
[0178] Condition 4: Geometric position and attributes are lossless.
[0179] (2) The general test sequence includes four categories: Cat1A, Cat1B, Cat3-fused, and Cat3-frame. Among them, the Cat3-frame point cloud only contains reflectance attribute information, the Cat1A and Cat1B point clouds only contain color attribute information, and the Cat3-fused point cloud contains both color and reflectance attribute information.
[0180] (3) Technical routes: There are two types in total, which are distinguished by the algorithm used for geometric compression.
[0181] Technical route 1: Octree encoding branch.
[0182] At the encoding end, the bounding box is divided into sub-cubes in sequence, and the non-empty sub-cubes (containing points in the point cloud) are divided again until the leaf node obtained is a 1×1×1 unit cube. In the case of geometric lossless coding, the number of points contained in the leaf node needs to be encoded, and finally the geometric octree encoding is completed to generate a binary code stream.
[0183] At the decoding end, the decoding end obtains the placeholder code of each node by continuously parsing in the order of breadth-first traversal, and continuously divides the nodes in turn until a 1×1×1 unit cube is obtained. In the case of geometric lossless decoding, it is necessary to parse the number of points contained in each leaf node and finally recover the geometrically reconstructed point cloud information.
[0184] Technical route 2: prediction tree encoding branch.
[0185] On the encoding side, the prediction tree structure is established using two different methods: based on KD-Tree (high-latency slow mode) and using lidar calibration information (low-latency fast mode). Using lidar calibration information, each point can be divided into different lasers, and the prediction tree structure is established according to different lasers. Next, based on the structure of the prediction tree, each node in the prediction tree is traversed, and the geometric position information of the node is predicted by selecting different prediction modes to obtain the prediction residual, and the geometric prediction residual is quantized using the quantization parameter. Finally, through continuous iteration, the prediction residual of the prediction tree node position information, the prediction tree structure, and the quantization parameters are encoded to generate a binary code stream.
[0186] At the decoding end, the decoding end reconstructs the prediction tree structure by continuously parsing the bit stream. Secondly, the geometric position prediction residual information and quantization parameters of each prediction node are obtained through parsing, and the prediction residual is dequantized to restore the reconstructed geometric position information of each node, finally completing the geometric reconstruction at the decoding end.
[0187] The above article introduces in detail the inter-frame prediction of point cloud attribute information based on the G-PCC codec framework. In related technologies, it is possible to use high-level syntax elements (such as attrInterPredictionEnabled) to determine whether to start the inter-frame prediction coding scheme for attribute information. For example, when predictively encoding the attribute information in each slice (slice, also called a slice), the geometric information can be used to adaptively determine at the encoding end whether the attribute information of the current slice turns on inter-frame prediction coding, and pass the syntax element slice_attr_inter_prediction to the decoding end. Accordingly, at the decoding end, the syntax element slice_attr_inter_prediction is parsed to determine whether the current slice turns on the inter-frame prediction decoding scheme for attribute information.
[0188] Figure 28 shows a schematic diagram of inter-frame prediction within the G-PCC codec framework. As shown in Figure 28 , when inter-frame prediction of attribute information is enabled for a slice, the corresponding reference frame information (including geometric and attribute information) is obtained from the prediction cache. Then, as shown in Figure 29 , the spatial position of the current slice is used to obtain the corresponding prediction unit in the reference frame. Continuing with Figure 28 , when encoding the geometric information of the current slice, the global motion matrix is used to motion compensate the geometric information of the reference frame (for example, the geometric information of the reference frame is rotated and / or translated based on the global motion matrix). The motion-compensated geometric information of the reference frame is then used to perform inter-frame prediction coding on the current slice. When inter-frame prediction coding is performed on the attribute information of the current slice, after obtaining the prediction coding unit, the attribute information of the reference frame is directly used to perform inter-frame prediction coding on the current slice. In other words, within the G-PCC codec framework, the geometric and attribute information of the point cloud are encoded and decoded separately. Improving the encoding and decoding efficiency of attribute information is a challenge that needs to be addressed.
[0189] In response to the above problems, an embodiment of the present application provides a point cloud encoding method, including: performing inter-frame prediction on the attribute information of the current frame according to a first prediction mode to determine a first rate-distortion cost, and the reference frame of the first prediction mode is the first reference frame of the current frame that has not undergone motion compensation; performing inter-frame prediction on the attribute information according to a second prediction mode to determine a second rate-distortion cost, and the reference frame of the second prediction mode is the second reference frame of the current frame that has undergone motion compensation; and determining a target prediction mode from the first prediction mode and the second prediction mode according to the first rate-distortion cost and the second rate-distortion cost.
[0190] An embodiment of the present application also provides a point cloud decoding method, including: determining an inter-frame prediction mode of attribute information of a current frame, the inter-frame prediction mode of the attribute information of the current frame including a first prediction mode and a second prediction mode, the reference frame of the first prediction mode is a first reference frame of the current frame that has not undergone motion compensation, and the reference frame of the second prediction mode is a second reference frame of the current frame that has undergone motion compensation; if the inter-frame prediction mode is the second prediction mode, performing inter-frame prediction on the attribute information according to the second reference frame to determine a predicted value of the attribute information; and determining a reconstructed value of the attribute information according to the predicted value of the attribute information.
[0191] This embodiment of the application introduces a motion-compensated inter-frame prediction scheme for inter-frame prediction of attribute information. Based on this, this embodiment selects an appropriate inter-frame prediction scheme based on the rate-distortion cost of non-motion-compensated and motion-compensated inter-frame prediction schemes, which helps improve the encoding and decoding efficiency of point cloud attribute information.
[0192] The following will describe in detail the point cloud decoding method provided in the embodiment of the present application with reference to the accompanying drawings.
[0193] Figure 30 is a flow chart of the point cloud decoding method provided in an embodiment of the present application. The decoding method of Figure 30 can be applied to a decoder. The decoding method of Figure 30 can be used to decode the attribute information of a point cloud. In some implementations, the decoding method can be applied to G-PCC. Alternatively, in other implementations, the decoding method can be applied to a geometry-based solid content test model (GES-TM). GES-TM is a coding and decoding framework proposed for dense point clouds (such as point clouds collected in augmented reality (AR) or virtual reality (VR) scenes).
[0194] Referring to FIG. 30 , in step S3010, an inter-frame prediction mode for attribute information of the current frame is determined. The inter-frame prediction modes may include a first prediction mode and a second prediction mode. The first prediction mode and the second prediction mode may correspond to different reference frames. The reference frame of the first prediction mode may be a reference frame that has not undergone motion compensation, and this reference frame may be referred to as a first reference frame. The reference frame of the second prediction mode may be a reference frame that has undergone motion compensation, and this reference frame may be referred to as a second reference frame.
[0195] The embodiment of the present application does not specifically limit the attribute information of the current frame. For example, it may refer to the attribute information of at least one slice in the current frame (such as the attribute information of one slice). For another example, if the decoding mode of the current frame is RAHT inter-frame prediction decoding, then the attribute information of the current frame may refer to the attribute information of at least one RAHT layer (such as the attribute information of one RAHT layer). For another example, if the decoding mode of the current frame is LOD inter-frame prediction decoding, then the attribute information of the current frame may refer to the attribute information of at least one LOD layer (such as the attribute information of one LOD layer).
[0196] In some implementations, the method of FIG30 further includes: parsing the code stream to determine first identification information. The first identification information is used to indicate an inter-frame prediction mode of attribute information of the current frame.
[0197] The first identification information may be carried at any position in the bitstream. For example, the first identification information may be carried in an attribute brick header (ABH). The first identification information may be slice-level information.
[0198] As mentioned above, the attribute information of the current frame may refer to the attribute information of the slice, or may refer to the attribute information of the RAHT layer or the LOD layer. If the attribute information of the current frame refers to the attribute information of the slice, the first identification information may be used to indicate the inter-frame prediction mode of the attribute information of the slice. For example, the first identification information may be used to indicate that the inter-frame prediction mode of the attribute information of a slice is the second prediction mode. If the attribute information of the current frame refers to the attribute information of the RAHT layer, the first identification information may be used to indicate the inter-frame prediction mode of the attribute information of the RAHT layer. For example, the first identification information may be used to indicate that the inter-frame prediction mode of the attribute information of a RAHT layer is the second prediction mode. If the attribute information of the current frame refers to the attribute information of the LOD layer, the first identification information may be used to indicate the inter-frame prediction mode of the attribute information of the LOD layer. For example, the first identification information may be used to indicate that the inter-frame prediction mode of the attribute information of the LOD layer is the second prediction mode.
[0199] As mentioned above, the second reference frame refers to the reference frame obtained after motion compensation. Motion compensation can be performed based on a motion matrix (hereinafter referred to as the first motion matrix). In other words, the first reference frame can be motion compensated according to the first motion matrix to obtain the second reference frame. The first reference frame here can be obtained in the prediction cache when inter-frame prediction of attribute information is enabled, for example. The first motion matrix can be a global motion matrix or a local motion matrix.
[0200] The motion compensation mentioned above can be performed by compensating for the geometric information of the reference frame. There are various methods for motion compensation, which are not specifically limited in the embodiments of this application. For example, motion compensation can be performed by translating the geometric information of the reference frame. In another example, motion compensation can be performed by rotating the geometric information of the reference frame. In another example, motion compensation can also be performed by translating and rotating the geometric information of the reference frame.
[0201] As an example, assuming that the motion matrix is a 4×3 global motion matrix and the geometric information of a point in the current frame is (x, y, z), then the point is motion compensated in a rotational manner. The calculation formula is as follows:
[0202] After the above motion compensation, the geometric information of the point is (x′, y′, z′, v′).
[0203] The first motion matrix can be obtained in different ways. In some implementations, a specific first motion matrix can be set for the second prediction mode. The first motion matrix can be determined, for example, based on the error between the attribute information of the current frame and the reference frame. Setting a special motion matrix for the inter-frame prediction mode of the attribute information helps to improve the accuracy of the inter-frame prediction of the attribute information. Then, motion compensation is performed on the second reference frame based on the first motion matrix. Alternatively, the first motion matrix can also be the motion matrix used for inter-frame prediction of the geometric information of the current frame. Using the same motion matrix to perform motion compensation on the geometric information and the attribute information can reduce the number of motion matrices that need to be transmitted in the code stream, thereby improving the coding efficiency. Furthermore, in some implementations, when the first identification information indicates the second prediction mode, the code stream can be parsed to obtain the above-mentioned first motion matrix.
[0204] This embodiment of the application introduces a motion-compensated inter-frame prediction scheme for inter-frame prediction of attribute information. Based on this, this embodiment selects an appropriate inter-frame prediction scheme based on the rate-distortion cost of non-motion-compensated and motion-compensated inter-frame prediction schemes, which helps improve the encoding and decoding efficiency of point cloud attribute information.
[0205] Continuing to refer to FIG. 30 , in step S3020 , if the inter-frame prediction mode is the second prediction mode, inter-frame prediction is performed on the attribute information according to the second reference frame to determine a predicted value of the attribute information.
[0206] The correlation between the geometric information of the motion-compensated second reference frame and the current frame is stronger, making the attribute information of adjacent points in space more similar, thereby helping to improve the accuracy of inter-frame prediction of the attribute information. Alternatively, if the first identification information indicates the first prediction mode, inter-frame prediction is performed on the attribute information based on the first reference frame to determine a predicted value of the attribute information.
[0207] In step S3030, a reconstructed value of the attribute information is determined according to the predicted value of the attribute information.
[0208] The method of determining the reconstructed value of the attribute information based on the predicted value of the attribute information may include, for example: parsing the code stream to determine the residual value of the attribute information; then, determining the reconstructed value of the attribute information based on the predicted value of the attribute information and the residual value of the attribute information.
[0209] In some implementations, determining the residual value of the attribute information may include: parsing the code stream to determine the quantization coefficient of the attribute information; then, inverse quantizing the quantization coefficient to determine the transformation coefficient of the attribute information; and then, inverse transforming the transformation coefficient to determine the residual value.
[0210] In some implementations, before executing step S3030, a reconstructed value of the geometric information of the current frame may be determined. For example, the bitstream may be parsed to determine the residual value of the geometric information of the current frame; inter-frame prediction may then be performed on the geometric information to determine the predicted value of the geometric information; and the reconstructed value of the geometric information may be determined based on the residual value of the geometric information and the predicted value of the geometric information. For another example, predicted information of the geometric information may be determined, and then the reconstructed value of the geometric information may be determined based on the predicted information.
[0211] As mentioned above, the attribute information of the current frame in Figure 30 may refer to the attribute information of at least one slice in the current frame, or may refer to the attribute information of at least one RAHT layer or LOD layer. For example, the attribute information of the current frame is the attribute information of a slice in the current frame, and the first identification information is used to indicate the inter-frame prediction mode of the attribute information of the slice. For another example, the attribute information of the current frame is the attribute information of a RATH layer, and the first identification information is used to indicate the inter-frame prediction mode of the attribute information of the RAHT layer. For another example, the attribute information of the current frame is the attribute information of an LOD layer, and the first identification information is used to indicate the inter-frame prediction mode of the attribute information of the LOD layer. If different RATH layers (or different LOD layers) can have their own corresponding inter-frame prediction modes, the prediction accuracy of the RATH layer (or LOD layer) can be further improved.
[0212] Taking the example of FIG. 30 where the attribute information of the current frame is attribute information of at least one slice and the first identification information is used to indicate an inter-frame prediction mode of the attribute information of the slice, the decoding method of FIG. 30 may further include: parsing the bitstream and determining second identification information. The second identification information may indicate the inter-frame prediction mode of attribute information of at least one RAHT layer (e.g., attribute information of one RAHT layer).
[0213] The second identification information may be carried anywhere in the code stream. For example, the second identification information may be carried in an attribute block header. The second identification information may be RAHT level information.
[0214] The inter-frame prediction mode mentioned here may include a third prediction mode and a fourth prediction mode. The reference frame of the third prediction mode may be the first reference frame mentioned above, and the reference frame of the fourth prediction mode may be the second reference frame mentioned above.
[0215] In RAHT inter-frame prediction decoding mode, a slice can be divided into multiple RAHT layers. If different RAHT layers can perform inter-frame prediction based on different reference frames, or in other words, different RAHT layers can select different prediction modes, then the appropriate inter-frame prediction mode can be selected according to the situation of each RAHT layer, which can further improve the prediction accuracy of the RAHT layer and help improve the encoding and decoding efficiency of the RAHT layer.
[0216] Taking the example of FIG. 30 where the attribute information of the current frame is attribute information of at least one slice and the first identification information is used to indicate the inter-frame prediction mode of the attribute information of the slice, the decoding method of FIG. 30 may further include: parsing the bitstream and determining third identification information. The third identification information may indicate the inter-frame prediction mode of the attribute information of at least one LOD layer (e.g., the attribute information of one LOD layer).
[0217] The third identification information can be carried anywhere in the code stream. For example, the third identification information can be carried in the attribute block header. The third identification information can be LOD level information.
[0218] The inter-frame prediction modes mentioned here may include a fifth prediction mode and a sixth prediction mode. The reference frame of the fifth prediction mode may be the first reference frame mentioned above, and the reference frame of the sixth prediction mode may be the second reference frame mentioned above.
[0219] In the LOD inter-frame prediction decoding mode, the strip can be divided into multiple LOD layers. If different LOD layers can perform inter-frame prediction based on different reference frames, or in other words, different LOD layers can select different prediction modes, then the appropriate inter-frame prediction mode can be selected according to the situation of each LOD layer, thereby further improving the prediction accuracy of the LOD layer and helping to improve the encoding and decoding efficiency of the LOD layer. The decoding method of Figure 30 is performed when inter-frame prediction is performed on the attribute information of the current frame. Therefore, in some implementations, the decoding method of Figure 30 may also include: parsing the code stream to determine the fourth identification information. The above-mentioned fourth identification information is used to indicate whether to start the inter-frame prediction encoding of the attribute information.
[0220] As mentioned above, the decoding method shown in Figure 30 can be executed through various identification information. The following describes in detail how to set these identification information.
[0221] In some implementations, the first identification information may be represented by enableMotionCompensated (of course, the first identification information may also be represented by any other letters and / or numbers). For example, if enableMotionCompensated is true, it may indicate that the inter-frame prediction mode of the attribute information of the current frame is the second prediction mode; if enableMotionCompensated is false, it may indicate that the inter-frame prediction mode of the attribute information of the current frame is the first prediction mode.
[0222] In some implementations, the second identification information may be represented by enableMotionCompensatedLayer[lvl] (of course, the second identification information may also be represented by any other letters and / or numbers). For example, if enableMotionCompensatedLayer[lvl] is true, it may indicate that the inter-frame prediction mode of the attribute information of the current RAHT layer is the fourth prediction mode; if enableMotionCompensatedLayer[lvl] is false, it may indicate that the inter-frame prediction mode of the attribute information of the current RAHT layer is the third prediction mode. It should be understood that [lvl] represents the layer level of the current RAHT layer in the RAHT inter-frame prediction decoding mode.
[0223] In some implementations, the third identification information may be represented by enableMotionCompensatedLayer[lvl] (of course, the third identification information may also be represented by any other letters and / or numbers). For example, if enableMotionCompensatedLayer[lvl] is true, it may indicate that the inter-frame prediction mode of the attribute information of the current LOD layer is the sixth prediction mode; if enableMotionCompensatedLayer[lvl] is false, it may indicate that the inter-frame prediction mode of the attribute information of the current LOD layer is the fifth prediction mode. It should be understood that [lvl] represents the level of the current LOD layer in the LOD inter-frame prediction decoding mode. In some implementations, the fourth identification information may be represented by disableAttrInterPred (of course, the fourth identification information may also be represented by any other letters and / or numbers). The fourth identification information may include a first value (e.g., 1 or true) and a second value (e.g., 0 or false). If the value of the fourth identification information is the first value, it indicates that inter-frame prediction coding of the attribute information can be enabled; if the value of the fourth identification information is the second value, it indicates that inter-frame prediction coding of the attribute information is not enabled.
[0224] As mentioned above, if the first identification information indicates the second prediction mode, inter-frame prediction is performed on the attribute information based on the second reference frame to determine the predicted value of the attribute information. Table 2 shows the test results of the solution provided in the embodiment of the present application.
[0225] Table 2
[0226] In Table 2, innovizQC1 is the sequence of attribute information prediction, TMC13-v24 is the pixel depth (bits per pixel, BPP) of attribute information encoding under the related art, Proposal is the BPP of attribute information encoding under the second prediction mode, and Coding type is the type of coding frame. As can be seen from Table 2, the coded frames in sequence 1 to sequence 7 are P frames, and inter-frame prediction coding of attribute information can be used. In sequences 1 to sequence 7, the BPP of attribute information encoding under the second prediction mode is reduced compared to the BPP of attribute information encoding under the related art, and the reduction ratio is about 1%. Therefore, the solution provided by the implementation of this application can reduce the BPP of attribute information encoding, thereby helping to improve coding efficiency.
[0227] The above describes in detail the point cloud decoding method provided by the embodiment of the present application in conjunction with Figure 30. The following describes in detail the point cloud encoding method provided by the embodiment of the present application in conjunction with Figure 31.
[0228] Figure 31 is a flow chart of the point cloud encoding method provided in an embodiment of the present application. The encoding method of Figure 31 can be applied to an encoder. The encoding method of Figure 31 can be used to encode the attribute information of a point cloud. In some implementations, the encoding method can be applied to G-PCC. Alternatively, in other implementations, the encoding method can be applied to a geometry-based solid content test model (GES-TM). GES-TM is a coding and decoding framework proposed for dense point clouds (such as point clouds collected in augmented reality (AR) or virtual reality (VR) scenes).
[0229] 31 , in step S3110, inter-frame prediction is performed on the attribute information of the current frame according to the first prediction mode to determine a first rate-distortion cost. The reference frame of the first prediction mode may be a reference frame that has not undergone motion compensation, which may be referred to as a first reference frame.
[0230] The embodiment of the present application does not specifically limit the attribute information of the current frame. For example, it may refer to the attribute information of at least one slice in the current frame (such as the attribute information of one slice). For another example, if the coding mode of the current frame is RAHT inter-frame prediction coding, then the attribute information of the current frame may refer to the attribute information of at least one RAHT layer (such as the attribute information of one RAHT layer). For another example, if the coding mode of the current frame is LOD inter-frame prediction coding, then the attribute information of the current frame may refer to the attribute information of at least one LOD layer (such as the attribute information of one LOD layer).
[0231] In step S3120, inter-frame prediction is performed on the attribute information according to the second prediction mode to determine a second rate-distortion cost. The reference frame of the second prediction mode may be a motion-compensated reference frame, which may be referred to as a second reference frame.
[0232] As mentioned above, the second reference frame refers to the reference frame obtained after motion compensation. Motion compensation can be performed based on a motion matrix (hereinafter referred to as the first motion matrix). In other words, the first reference frame can be motion compensated according to the first motion matrix to obtain the second reference frame. The first reference frame here can be obtained in the prediction cache when inter-frame prediction of attribute information is enabled, for example. The first motion matrix can be a global motion matrix or a local motion matrix.
[0233] The motion compensation mentioned above can be performed by compensating for the geometric information of the reference frame. There are various methods for motion compensation, which are not specifically limited in the embodiments of this application. For example, motion compensation can be performed by translating the geometric information of the reference frame. In another example, motion compensation can be performed by rotating the geometric information of the reference frame. In another example, motion compensation can also be performed by translating and rotating the geometric information of the reference frame.
[0234] As an example, assuming that the motion matrix is a 4×3 global motion matrix and the geometric information of a point in the current frame is (x, y, z), then the point is motion compensated in a rotational manner. The calculation formula is as follows:
[0235] After the above motion compensation, the geometric information of the point is (x′, y′, z′, v′).
[0236] The first motion matrix can be obtained in different ways. In some implementations, a specific first motion matrix can be set for the second prediction mode. The first motion matrix can be determined, for example, based on the error between the attribute information of the current frame and the reference frame. Setting a special motion matrix for the inter-frame prediction mode of the attribute information helps to improve the accuracy of the inter-frame prediction of the attribute information. Alternatively, the first motion matrix can also be the motion matrix used when performing inter-frame prediction on the geometric information of the current frame. Using the same motion matrix to perform motion compensation on the geometric information and the attribute information can reduce the number of motion matrices that need to be transmitted in the code stream, thereby improving the coding efficiency.
[0237] As mentioned above, the error between the attribute information of the current frame and the reference frame can be represented by the mean square error (MSE). For example, the attribute information of corresponding points in the second reference frame and the reference frame can be used as input to the MSE formula to calculate the minimum mean square error between the corresponding points. Then, based on this minimum mean square error, the first motion matrix is determined.
[0238] In step S3130 , a target prediction mode is determined from the first prediction mode and the second prediction mode according to the first rate-distortion cost and the second rate-distortion cost.
[0239] The method of determining the target prediction mode according to the first rate-distortion cost and the second rate-distortion cost may include, for example: comparing the first rate-distortion cost and the second rate-distortion cost; and then using the prediction mode corresponding to the smaller rate-distortion cost as the target prediction mode.
[0240] For example, if the second rate-distortion cost is smaller, the second prediction mode is used as the target prediction mode. The geometric information between the second reference frame after motion compensation and the current frame is more correlated, making the attribute information of adjacent points in space more similar, thereby helping to improve the accuracy of inter-frame prediction of attribute information.
[0241] Furthermore, in some implementations, if the target prediction mode is the second prediction mode, the first motion matrix may be written into the bitstream; and then, motion compensation is performed on the second reference frame based on the first motion matrix at the decoding end.
[0242] This embodiment of the application introduces a motion-compensated inter-frame prediction scheme for inter-frame prediction of attribute information. Based on this, this embodiment selects an appropriate inter-frame prediction scheme based on the rate-distortion cost of non-motion-compensated and motion-compensated inter-frame prediction schemes, which helps improve the encoding and decoding efficiency of point cloud attribute information.
[0243] As mentioned above, the target prediction mode can be determined from the first prediction mode and the second prediction mode based on the first rate-distortion cost and the second rate-distortion cost. Writing the target prediction mode determined in step S3130 into the bitstream facilitates use by the decoder. In some implementations, the encoding method of FIG31 may further include writing first identification information into the bitstream. This first identification information is used to indicate that the inter-frame prediction mode of the attribute information is the target prediction mode determined in step S3130.
[0244] The first identification information may be carried at any position in the bitstream. For example, the first identification information may be carried in an attribute brick header (ABH). The first identification information may be slice-level information.
[0245] As mentioned above, the attribute information of the current frame may refer to the attribute information of the slice, or may refer to the attribute information of the RAHT layer or the LOD layer. If the attribute information of the current frame refers to the attribute information of the slice, the first identification information may be used to indicate the inter-frame prediction mode of the attribute information of the slice. For example, the first identification information may be used to indicate that the inter-frame prediction mode of the attribute information of the slice is the second prediction mode. If the attribute information of the current frame refers to the attribute information of the RAHT layer, the first identification information may be used to indicate the inter-frame prediction mode of the attribute information of the RAHT layer. For example, the first identification information may be used to indicate that the inter-frame prediction mode of the attribute information of the RAHT layer is the second prediction mode. If the attribute information of the current frame refers to the attribute information of the LOD layer, the first identification information may be used to indicate the inter-frame prediction mode of the attribute information of the LOD layer. For example, the first identification information may be used to indicate that the inter-frame prediction mode of the attribute information of an LOD layer is the second prediction mode.
[0246] In some implementations, before executing step S3110, inter-frame prediction may be performed on the geometric information to determine prediction information of the geometric information; then, residual information of the geometric information is determined based on the prediction information of the geometric information.
[0247] In some implementations, after step S3130 is performed, a predicted value of the attribute information may be determined based on the target prediction mode; then, a residual value of the attribute information may be determined based on the predicted value of the attribute information. Furthermore, the residual value of the attribute information may be transformed to determine a transform coefficient of the attribute information; then, the transform coefficient may be quantized to determine a quantized coefficient of the attribute information; and then, the quantized coefficient may be written into the bitstream.
[0248] As mentioned above, the attribute information of the current frame in Figure 31 may refer to the attribute information of at least one slice in the current frame, or may refer to the attribute information of at least one RAHT layer or LOD layer. For example, the attribute information of the current frame is the attribute information of a slice in the current frame, and the first identification information is used to indicate the inter-frame prediction mode of the attribute information of the slice. For another example, the attribute information of the current frame is the attribute information of a RATH layer, and the first identification information is used to indicate the inter-frame prediction mode of the attribute information of the RAHT layer. For another example, the attribute information of the current frame is the attribute information of an LOD layer, and the first identification information is used to indicate the inter-frame prediction mode of the attribute information of the LOD layer. If different RATH layers (or different LOD layers) can have their own corresponding inter-frame prediction modes, the prediction accuracy of the RATH layer (or LOD layer) can be further improved.
[0249] Taking the example of FIG. 31 in which the attribute information of the current frame is attribute information of at least one slice, and the first identification information is used to indicate an inter-frame prediction mode of the attribute information of the slice, the encoding method of FIG. 31 may include: performing inter-frame prediction on the attribute information of the current RAHT layer according to a third prediction mode to determine a third rate-distortion cost; then, performing inter-frame prediction on the attribute information of the current RAHT layer according to a fourth prediction mode to determine a fourth rate-distortion cost; and then, determining a prediction mode corresponding to the current RAHT layer from the third prediction mode and the fourth prediction mode based on the third rate-distortion cost and the fourth rate-distortion cost. The reference frame of the third prediction mode is the first reference frame mentioned above, and the reference frame of the fourth prediction mode is the second reference frame mentioned above.
[0250] Taking the inter-frame prediction mode of the attribute information of the current frame in FIG31 as an example, in which the attribute information of the current frame is the attribute information of at least one stripe and the first identification information is used to indicate the attribute information of the stripe, the encoding method in FIG31 may include: performing inter-frame prediction on the attribute information of the current LOD layer according to the fifth prediction mode to determine the fifth rate-distortion cost; then, performing inter-frame prediction on the attribute information of the current LOD layer according to the sixth prediction mode to determine the sixth rate-distortion cost; then, determining the prediction mode corresponding to the current LOD layer from the fifth prediction mode and the sixth prediction mode based on the fifth rate-distortion cost and the sixth rate-distortion cost. The reference frame of the fifth prediction mode is the first reference frame mentioned above, and the reference frame of the sixth prediction mode is the second reference frame mentioned above.
[0251] Furthermore, in some implementations, the encoding method of FIG31 may further include: writing second identification information into the bitstream. The second identification information is used to indicate a prediction mode corresponding to at least one RAHT layer.
[0252] Furthermore, in some implementations, the encoding method of Figure 31 may further include: writing third identification information into the bitstream. The third identification information is used to indicate a prediction mode corresponding to at least one LOD layer.
[0253] The second identification information may be carried anywhere in the code stream. For example, the second identification information may be carried in an attribute block header. The second identification information may be RAHT level information.
[0254] The third identification information can be carried anywhere in the code stream. For example, the third identification information can be carried in the attribute block header. The third identification information can be LOD level information.
[0255] Determining the prediction mode corresponding to the current RAHT layer from the third prediction mode and the fourth prediction mode according to the third rate-distortion cost and the fourth rate-distortion cost may, for example, include: comparing the third rate-distortion cost and the fourth rate-distortion cost; and then, using the prediction mode corresponding to the smaller rate-distortion cost as the prediction mode corresponding to the current RAHT layer.
[0256] Determining the prediction mode corresponding to the current LOD layer from the fifth prediction mode and the sixth prediction mode based on the fifth rate-distortion cost and the sixth rate-distortion cost may, for example, include: comparing the fifth rate-distortion cost and the sixth rate-distortion cost; then, using the prediction mode corresponding to the smaller rate-distortion cost as the prediction mode corresponding to the current LOD layer. The encoding method shown in Figure 31 is performed when inter-frame prediction is performed on the attribute information of the current frame. Therefore, in some implementations, the encoding method of Figure 31 may further include: writing fourth identification information into the bitstream. The above-mentioned fourth identification information is used to indicate whether to enable inter-frame prediction encoding of the attribute information.
[0257] As mentioned above, various identification information can be written into the code stream in the encoding method shown in Figure 31. The following describes in detail how to set these identification information.
[0258] In some implementations, the first identification information may be represented by enableMotionCompensated (of course, the first identification information may also be represented by any other letters and / or numbers). For example, if enableMotionCompensated is true, it may indicate that the inter-frame prediction mode of the attribute information of the current frame is the second prediction mode; if enableMotionCompensated is false, it may indicate that the inter-frame prediction mode of the attribute information of the current frame is the first prediction mode.
[0259] In some implementations, the second identification information may be represented by enableMotionCompensatedLayer[lvl] (of course, the second identification information may also be represented by any other letters and / or numbers). For example, if enableMotionCompensatedLayer[lvl] is true, it may indicate that the inter-frame prediction mode of the attribute information of the current RAHT layer is the fourth prediction mode; if enableMotionCompensatedLayer[lvl] is false, it may indicate that the inter-frame prediction mode of the attribute information of the current RAHT layer is the third prediction mode. It should be understood that [lvl] represents the layer level of the current RAHT layer in the RAHT inter-frame prediction decoding mode.
[0260] In some implementations, the third identification information can be represented by enableMotionCompensatedLayer[lvl] (of course, the third identification information can also be represented by any other letters and / or numbers). For example, if enableMotionCompensatedLayer[lvl] is true, it can indicate that the inter-frame prediction mode of the attribute information of the current LOD layer is the sixth prediction mode; if enableMotionCompensatedLayer[lvl] is false, it can indicate that the inter-frame prediction mode of the attribute information of the current LOD layer is the fifth prediction mode. It should be understood that [lvl] represents the level of the current LOD layer in the LOD inter-frame prediction decoding mode.
[0261] In some implementations, the fourth identification information may be represented by disableAttrInterPred (of course, the fourth identification information may also be represented by any other letters and / or numbers). The fourth identification information may include a first value (e.g., 1 or true) and a second value (e.g., 0 or false). If the value of the fourth identification information is the first value, it indicates that inter-frame prediction coding of the attribute information can be enabled; if the value of the fourth identification information is the second value, it indicates that inter-frame prediction coding of the attribute information is not enabled.
[0262] As mentioned above, the target prediction mode or the prediction mode corresponding to the current RAHT layer can be determined based on the rate-distortion cost. The above-mentioned rate-distortion cost can be determined based on the distortion parameter, bit rate parameter and Lagrangian factor under each corresponding prediction mode. For example, for the first prediction mode, the distortion parameter can be determined based on the reconstructed attribute information and the original attribute information of the first prediction mode; then, the number of coding bits required for each first prediction mode can be determined, thereby determining the bit rate parameter; then, the first rate-distortion cost of the first coding mode can be determined based on the following formula (29): J = D + λxR (29)
[0263] Where J represents the rate-distortion cost, D represents the distortion parameter, R represents the bit rate parameter, and λ represents the Lagrangian factor.
[0264] The Lagrangian factor can be determined based on the quantization parameter of the attribute information of the current frame. For example, the value of λ can be determined based on the following formula (30):
[0265] Where QP represents the quantization parameter of the attribute information. N can be a predefined value. The value of N can be associated with the type of attribute information. For example, the value of N can be different for reflectivity and color information.
[0266] The following examples are used to describe the embodiments of the present application in more detail. It should be noted that the examples below are only intended to help those skilled in the art understand the embodiments of the present application, rather than to limit the embodiments of the present application to the specific numerical values or specific scenarios illustrated. It is apparent that those skilled in the art can make various equivalent modifications or changes based on the examples given below, and such modifications or changes also fall within the scope of the embodiments of the present application.
[0267] In related art, when inter-frame prediction of attribute information is enabled for a slice, the corresponding reference frame information (including geometric and attribute information) is obtained from the prediction cache. Then, as shown in Figure 29, the spatial position of the current slice is used to obtain the corresponding prediction unit in the reference frame. Continuing with Figure 28, when encoding the geometric information of the current slice, the global motion matrix (e.g., rotation and translation) is used to motion compensate the geometric information of the reference frame. The motion-compensated geometric information of the reference frame is then used to perform inter-frame prediction encoding on the current slice. When inter-frame prediction encoding is performed on the attribute information of the current slice, after obtaining the prediction unit, the attribute information of the reference frame is directly used to perform inter-frame prediction encoding on the current slice. In other words, when performing inter-frame prediction on point cloud attribute information, the first reference frame in the prediction cache (not motion-compensated) is used to predict the point cloud attribute information. However, related art does not consider the suitability of using the first reference frame for inter-frame prediction, which to some extent limits the encoding performance of the point cloud. The following details the solution provided in this example, using both the encoding and decoding ends.
[0268] The encoding scheme is as follows:
[0269] Step 1: Use the geometric information of the reference frame to perform geometric inter-frame prediction coding on the current frame. When performing inter-frame prediction coding on the geometric information of the current slice, use the global motion matrix to perform motion compensation on the reference frame, and use the reference frame after motion compensation to perform inter-frame prediction coding on the geometric information of the current frame;
[0270] Step 2: After completing the geometric information encoding, when performing inter-frame prediction encoding on the attribute information of the current slice, the spatial position of the current slice is used to obtain the corresponding prediction unit in the reference frame. The specific method is shown in Figure 29;
[0271] Step 3: After obtaining the prediction unit, the geometric information of the reference frame is motion compensated using the global motion matrix. That is, the geometric information of the reference frame is spatially rotated using the global motion matrix. The specific calculation method is as follows:
[0272] Step 4: After performing global motion compensation on the geometric information of the reference frame, use the reference frame to perform inter-frame prediction coding on the attribute information of the current frame.
[0273] The decoding solution is as follows:
[0274] Step 1: Use the geometric information of the reference frame to perform geometric inter-frame prediction decoding on the current frame. When performing inter-frame prediction decoding on the geometric information of the current slice, use the global motion matrix to perform motion compensation on the reference frame, and use the reference frame after motion compensation to perform inter-frame prediction decoding on the geometric information of the current frame;
[0275] Step 2: After completing the geometric information decoding, when performing inter-frame prediction decoding on the attribute information of the current slice, the spatial position of the current slice is used to obtain the corresponding prediction unit in the reference frame. The specific method is shown in Figure 29;
[0276] Step 3: After obtaining the prediction unit, the geometric information of the reference frame is motion compensated using the global motion matrix. That is, the geometric information of the reference frame is spatially rotated using the global motion matrix. The specific calculation method is as follows:
[0277] Step 4: After performing global motion compensation on the geometric information of the reference frame, use the reference frame to perform inter-frame prediction decoding on the attribute information of the current frame.
[0278] The syntax elements in the attribute data unit header (Attribute data unit header syntax) are as follows:
[0279] The syntax elements from the fourth to the third to the last line of the above syntax elements are newly introduced in this example based on the syntax elements provided by the related art. According to these syntax elements, when the point cloud attribute information uses inter-frame prediction (indicated by disableAttrInterPred), this example will determine the target prediction mode from the two prediction modes, or in other words, determine whether to perform inter-frame prediction of the attribute information based on the reference frame after motion compensation (determined by enableMotionCompensated). Finally, the solution of this example is used to reconstruct the attribute information of the current slice.
[0280] In the above example scheme, the global motion matrix in the geometric coding scheme is used to perform motion compensation on the reference frame, so that the geometric information and attribute information of the reference frame and the current frame can become more similar, thereby improving the attribute coding performance of the current frame. This example can also be independent of the global motion matrix of the geometric information, that is, when the geometric information encoding is completed at the encoding end, the geometric information and attribute information to be encoded of the current frame and the geometric information and attribute information of the reference frame are used, and the MSE of the attribute information is used as a metric to calculate the global motion matrix between the reference frame and the current frame to be encoded, that is, the global motion matrix of the attribute information. Finally, the global motion matrix is used to perform motion compensation on the geometric information of the reference frame, and the motion matrix vector is passed to the decoding end. The decoding end uses the motion matrix obtained by analysis to reconstruct and restore the attribute information of the current slice.
[0281] In some implementations, a rate-distortion optimization algorithm is introduced at the encoding end to adaptively decide whether motion compensation is enabled for the current slice. That is, there are two predictive coding modes to choose from: after motion compensation or original reference frame geometry information, the Lagrangian comprehensive cost factor is used to select the best coding mode. The cost is calculated as follows: J = D + λxR (32)
[0282] Where J represents the rate-distortion cost, D represents the distortion parameter, R represents the bit rate parameter, and λ represents the Lagrangian factor.
[0283] The Lagrangian factor can be determined based on the quantization parameter of the attribute information of the current layer node. For example, the value of λ can be determined based on the following formula (30):
[0284] Where QP represents the quantization parameter of the attribute information. N can be a predefined value. The value of N can be associated with the type of attribute information. For example, the value of N can be different for reflectivity and color information.
[0285] This example can encode the global motion matrix vector of attribute information separately, and can also use the global motion matrix vector of geometric information.
[0286] The corresponding syntax elements in the attribute data unit header are as follows:
[0287] In some implementations, the above-mentioned syntax elements are parsed at the decoding end, and the syntax elements from the eighth to the third to the last line of the above-mentioned syntax elements are newly introduced syntax elements in this example based on the syntax elements provided by the relevant technology. According to the syntax elements, it can be seen that when the point cloud attribute information uses inter-frame prediction (expressed based on disableAttrInterPred), this example will determine the target prediction mode from the two prediction modes, or in other words, determine whether to perform inter-frame prediction of the attribute information based on the reference frame after motion compensation (expressed based on enableMotionCompensated). If enableMotionCompensated is true, it means that inter-frame prediction of the attribute information is performed based on the reference frame after motion compensation. Then, continue to parse the global motion matrix vector corresponding to the current slice, and use the global motion matrix vector to perform motion compensation on the reference frame. Finally, use the scheme of this example to reconstruct the attribute information of the current slice.
[0288] In some implementations, when the encoder performs RAHT inter-frame prediction encoding on attribute information, a rate-distortion optimization algorithm is introduced at the encoder to adaptively decide whether to enable motion compensation for different RAHT layers of the current slice. That is, there are two prediction coding modes to choose from: After motion compensation or original reference frame geometry information, the Lagrangian comprehensive cost factor is used to select the best coding mode, and the cost is calculated as follows: J = D + λxR (34)
[0289] Where J represents the rate-distortion cost, D represents the distortion parameter, R represents the bit rate parameter, and λ represents the Lagrangian factor.
[0290] The Lagrangian factor can be determined based on the quantization parameter of the attribute information of the current layer node. For example, the value of λ can be determined based on the following formula (30):
[0291] Where QP represents the quantization parameter of the attribute information. N can be a predefined value. The value of N can be associated with the type of attribute information. For example, the value of N can be different for reflectivity and color information.
[0292] Finally, the encoding mode (enable Motion Compensated Layer[lvl]) for each RAHT layer of the current slice needs to be passed to the decoder. When enable Motion Compensated Layer[lvl] is True, it indicates that motion compensation must be performed on the reference frame information when decoding the attributes of the lvl layer. Otherwise, motion compensation is not performed. The decoder adaptively selects the reference frame information after motion compensation or the original reference frame information for attribute inter-frame prediction decoding based on the mode of each layer.
[0293] It is also necessary to add a syntax element enableMotionCompensated to the attribute high-level syntax of each slice to specify whether motion compensation is performed on the reference frame. When enableMotionCompensated is True, it means that motion compensation is performed on the reference frame, otherwise it means that motion compensation is not performed.
[0294] On the encoding side, when reference frame compensation is not enabled for each layer of RAHT, enableMotionCompensated is False, otherwise it is True.
[0295] The corresponding syntax elements in the attribute data unit header are as follows:
[0296] In some implementations, the decoder parses the above syntax elements. The syntax elements from the eleventh to the third-to-last row are newly introduced in this example based on the syntax elements provided in related art. These syntax elements indicate that when point cloud attribute information uses inter-frame prediction (indicated by disableAttrInterPred), this example determines a target prediction mode from two prediction modes, or in other words, whether to perform inter-frame prediction of the attribute information based on a motion-compensated reference frame (indicated by enableMotionCompensated). If enableMotionCompensated is true, inter-frame prediction of the attribute information based on a motion-compensated reference frame is performed. The decoder then parses the global motion matrix vector corresponding to the current slice and the decoding mode of each RAHT layer (indicated by enableMotionCompensatedLayer[lvl]). This syntax element specifies whether motion compensation is required for the reference frame when performing inter-frame prediction decoding of the attribute information in the lvl layer. If enableMotionCompensatedLayer[lvl] is true, motion compensation is required for the current RAHT layer; otherwise, motion compensation is not required. Finally, use the solution in this example to rebuild the attribute information of the current slice.
[0297] The method embodiment of the present application is described in detail above in conjunction with Figures 1 to 31. The device embodiment of the present application is described in detail below in conjunction with Figures 32 to 35. It should be understood that the description of the method embodiment corresponds to the description of the device embodiment. Therefore, for parts not described in detail, reference can be made to the above method embodiment.
[0298] FIG32 is a schematic diagram of the structure of a decoder provided by an embodiment of the present application. As shown in FIG32 , the decoder 3200 may include a first determining unit 3210 , a second determining unit 3220 , and a third determining unit 3230 .
[0299] The first determination unit 3210 is configured to parse the code stream and determine the inter-frame prediction mode of the attribute information of the current frame, the inter-frame prediction mode of the attribute information of the current frame includes a first prediction mode and a second prediction mode, the reference frame of the first prediction mode is the first reference frame of the current frame that has not undergone motion compensation, and the reference frame of the second prediction mode is the second reference frame of the current frame that has undergone motion compensation.
[0300] The second determining unit 3220 is configured to, if the inter-frame prediction mode is the second prediction mode, perform inter-frame prediction on the attribute information according to the second reference frame to determine a predicted value of the attribute information.
[0301] The third determining unit 3230 is configured to determine the reconstructed value of the attribute information according to the predicted value of the attribute information.
[0302] In some implementations, the decoder 3200 further includes: a first parsing unit 3235 configured to parse the code stream and determine first identification information, where the first identification information is used to indicate the inter-frame prediction mode of the attribute information of the current frame.
[0303] In some implementations, the second reference frame is determined based on a first motion matrix, where the first motion matrix is different from a second motion matrix, and the second motion matrix is used to perform motion compensation on the first reference frame when decoding geometric information of the current frame.
[0304] In some implementations, the decoder 3200 further includes: a fourth determining unit 3240 configured to parse a bitstream and determine the first motion matrix if the first identification information indicates the second prediction mode.
[0305] In some implementations, the second reference frame is determined based on a first motion matrix, the first motion matrix and the second motion matrix are the same motion matrix, and the second motion matrix is used to: perform motion compensation on the first reference frame when decoding the geometric information of the current frame.
[0306] In some implementations, the attribute information is attribute information of at least one slice in the current frame; or, the attribute information is attribute information of at least one RAHT layer; or, the attribute information is attribute information of at least one level of detail (LOD) layer.
[0307] In some implementations, the attribute information is attribute information of the at least one slice, and the decoder 3200 further includes: a fifth determination unit 3250, configured to parse the code stream and determine second identification information, where the second identification information is used to indicate an inter-frame prediction mode of the attribute information of the at least one RAHT layer, the inter-frame prediction mode of the attribute information of the at least one RAHT layer includes a third prediction mode and a fourth prediction mode, the reference frame of the third prediction mode is the first reference frame, and the reference frame of the fourth prediction mode is the second reference frame.
[0308] In some implementations, the attribute information is attribute information of the at least one slice, and the decoder 3200 further includes: a first encoding unit 3255 configured to parse the bitstream and determine third identification information, the third identification information being used to indicate an inter-frame prediction mode of the attribute information of the at least one LOD layer, the inter-frame prediction mode of the attribute information of the at least one LOD layer including a fifth prediction mode and a sixth prediction mode, the reference frame of the fifth prediction mode being the first reference frame, and the reference frame of the sixth prediction mode being the second reference frame. In some implementations, the decoder 3200 further includes: a sixth determination unit 3260 configured to parse the bitstream and determine fourth identification information, the fourth identification information being used to indicate whether to enable inter-frame prediction encoding of the attribute information.
[0309] In some implementations, the fourth identification information includes a first value and / or a second value, wherein the first value is used to indicate whether to enable inter-frame prediction coding of the attribute information, and the second value is used to indicate whether to enable inter-frame prediction coding of the attribute information.
[0310] In some implementations, the decoder 3200 further includes: a seventh determination unit 3270 configured to perform motion compensation on the first reference frame according to a first motion matrix to determine the second reference frame, where the first motion matrix is a global motion matrix or a local motion matrix.
[0311] In some implementations, the seventh determining unit 3270 is configured to translate and / or rotate the geometric information of the first reference frame according to the first motion matrix.
[0312] In some implementations, the decoder 3200 further includes: an eighth determination unit 3280 configured to determine prediction information of the geometric information; and determine a reconstructed value of the geometric information according to the prediction information.
[0313] In some implementations, the third determining unit 3230 is configured to determine the reconstructed value of the attribute information based on the predicted value of the attribute information and the residual value of the attribute information.
[0314] In some implementations, the decoder 3200 further includes: a ninth determination unit 3290 configured to parse the code stream to determine the quantization coefficient of the attribute information; perform inverse quantization on the quantization coefficient to determine the transformation coefficient of the attribute information; and perform inverse transformation on the transformation coefficient to determine the residual value.
[0315] In some implementations, the decoding method is applied to GES-TM.
[0316] It is understandable that in the embodiments of the present application, a "unit" can be a portion of a circuit, a portion of a processor, a portion of a program or software, etc., and of course it can also be a module, or it can be non-modular. Moreover, the various components in this embodiment can be integrated into a processing unit, or each unit can exist physically separately, or two or more units can be integrated into a single unit. The above-mentioned integrated units can be implemented in the form of hardware or in the form of software functional modules.
[0317] If the integrated unit is implemented in the form of a software functional module and is not sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this embodiment, or the part that contributes to the existing technology, or all or part of the technical solution can be embodied in the form of a software product. The computer software product is stored in a storage medium and includes a number of instructions for causing a computer device (which can be a personal computer, server, or network device, etc.) or a processor to execute all or part of the steps of the method described in this embodiment. The aforementioned storage medium includes various media that can store program code, such as a USB flash drive, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk, or an optical disk.
[0318] Therefore, an embodiment of the present application provides a computer-readable storage medium, which is applied to the decoder 3200. The computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, it implements the decoding method described in any one of the aforementioned embodiments.
[0319] Based on the composition of the above-mentioned decoder 3200 and the computer-readable storage medium, refer to Figure 33, which shows a specific hardware structure diagram of the encoder 3300 provided in an embodiment of the present application. As shown in Figure 33, the encoder 3300 may include: a communication interface 3310, a memory 3320 and a processor 3330; each component is coupled together through a bus system 3340. It can be understood that the bus system 3340 is used to realize the connection and communication between these components. In addition to the data bus, the bus system 3340 also includes a power bus, a control bus and a status signal bus. However, for the sake of clarity, various buses are labeled as bus systems 3340 in Figure 33. Among them,
[0320] Communication interface 3310, used for sending and receiving signals during the process of sending and receiving information with other external network elements;
[0321] Memory 3320, used for storing computer programs;
[0322] The processor 3330 is configured to, when running the computer program, execute:
[0323] Parse the code stream and determine the inter-frame prediction mode of the attribute information of the current frame, where the inter-frame prediction mode of the attribute information of the current frame includes a first prediction mode and a second prediction mode, the reference frame of the first prediction mode is the first reference frame of the current frame that has not undergone motion compensation, and the reference frame of the second prediction mode is the second reference frame of the current frame that has undergone motion compensation; if the inter-frame prediction mode is the second prediction mode, perform inter-frame prediction on the attribute information according to the second reference frame to determine the predicted value of the attribute information; and determine the reconstructed value of the attribute information according to the predicted value of the attribute information.
[0324] It is understood that the memory 3320 in the embodiment of the present application can be a volatile memory or a non-volatile memory, or can include both volatile and non-volatile memories. Among them, the non-volatile memory can be a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), or a flash memory. The volatile memory can be a random access memory (RAM), which is used as an external cache. By way of example and not limitation, many forms of RAM are available, such as static RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate SDRAM (DDRSDRAM), enhanced SDRAM (ESDRAM), synchlink DRAM (SLDRAM), and direct rambus RAM (DRRAM). The memory 3320 of the systems and methods described herein is intended to include, but is not limited to, these and any other suitable types of memory.
[0325] The processor 3330 may be an integrated circuit chip with signal processing capabilities. During implementation, the steps of the above method can be completed by hardware integrated logic circuits or software instructions in the processor 3330. The processor 3330 may be a general-purpose processor, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field programmable gate array (FPGA), or other programmable logic devices, discrete gate or transistor logic devices, or discrete hardware components. It can implement or execute the methods, steps, and logic block diagrams disclosed in the embodiments of this application. The general-purpose processor may be a microprocessor or any conventional processor. The steps of the methods disclosed in the embodiments of this application can be directly implemented and executed by a hardware decoding processor, or by a combination of hardware and software modules in the decoding processor. The software modules can be located in storage media well-known in the art, such as random access memory, flash memory, read-only memory, programmable read-only memory, electrically erasable programmable memory, registers, etc. The storage medium is located in the memory 3320, and the processor 3330 reads the information in the memory 3320 and completes the steps of the above method in combination with its hardware.
[0326] It is understood that the embodiments described herein can be implemented with hardware, software, firmware, middleware, microcode or a combination thereof. For hardware implementation, the processing unit can be implemented in one or more application specific integrated circuits (ASICs), digital signal processors (DSPs), digital signal processing devices (DSP devices, DSPDs), programmable logic devices (PLDs), field programmable gate arrays (FPGAs), general-purpose processors, controllers, microcontrollers, microprocessors, other electronic units for performing the functions described herein or a combination thereof. For software implementation, the technology described herein can be implemented by a module (such as a process, a function, etc.) that performs the functions described herein. The software code can be stored in a memory and executed by a processor. The memory can be implemented in a processor or outside a processor.
[0327] Optionally, as another embodiment, the processor 3330 is further configured to execute the decoding method described in any one of the aforementioned embodiments when running the computer program.
[0328] FIG34 is a schematic diagram of the structure of an encoder provided by an embodiment of the present application. As shown in FIG34 , the encoder 3400 includes a first determining unit 3410 , a second determining unit 3420 , and a third determining unit 3430 .
[0329] The first determining unit 3410 is configured to perform inter-frame prediction on the attribute information of the current frame according to a first prediction mode to determine a first rate-distortion cost, where the reference frame of the first prediction mode is a first reference frame of the current frame that has not undergone motion compensation.
[0330] The second determining unit 3420 is configured to perform inter-frame prediction on the attribute information according to a second prediction mode to determine a second rate-distortion cost, where a reference frame of the second prediction mode is a second reference frame of the current frame that has undergone motion compensation.
[0331] The third determining unit 3430 is configured to determine a target prediction mode from the first prediction mode and the second prediction mode according to the first rate-distortion cost and the second rate-distortion cost.
[0332] In some implementations, the encoder 3400 further includes a first encoding unit 3435 configured to write first identification information into the bitstream, where the first identification information is used to indicate that the inter-frame prediction mode of the attribute information is the target prediction mode.
[0333] In some implementations, the second reference frame is determined based on a first motion matrix, where the first motion matrix is different from a second motion matrix, and the second motion matrix is used to perform motion compensation on the first reference frame when encoding geometric information of the current frame.
[0334] In some implementations, the first motion matrix is determined based on an error between property information of the current frame and property information of the second reference frame.
[0335] In some implementations, the error is a minimum mean square error.
[0336] In some implementations, the encoder 3400 further includes a second encoding unit 3440 configured to write the first motion matrix into a bitstream if the target prediction mode is the second prediction mode.
[0337] In some implementations, the second reference frame is determined based on a first motion matrix, the first motion matrix and the second motion matrix are the same motion matrix, and the second motion matrix is used to: perform motion compensation on the first reference frame when encoding the geometric information of the current frame.
[0338] In some implementations, the attribute information is attribute information of at least one slice in the current frame; or, the attribute information is attribute information of at least one RAHT layer; or, the attribute information is attribute information of at least one LOD layer.
[0339] In some implementations, the attribute information is attribute information of the at least one slice, and the encoder 3400 further includes a fourth determination unit 3445 configured to perform inter-frame prediction on the attribute information of the at least one RAHT layer according to a third prediction mode to determine a third rate-distortion cost, where a reference frame of the third prediction mode is the first reference frame; perform inter-frame prediction on the attribute information of the at least one RAHT layer according to a fourth prediction mode to determine a fourth rate-distortion cost, where a reference frame of the fourth prediction mode is the second reference frame; and determine, based on the third rate-distortion cost and the fourth rate-distortion cost, a prediction mode corresponding to the at least one RAHT layer from the third prediction mode and the fourth prediction mode.
[0340] In some implementations, the attribute information is the attribute information of the at least one stripe, and the encoder 3400 further includes a fifth determination unit 3447, configured to perform inter-frame prediction on the attribute information of the at least one LOD layer according to a fifth prediction mode, determine a fifth rate-distortion cost, and the reference frame of the fifth prediction mode is the first reference frame; perform inter-frame prediction on the attribute information of the at least one LOD layer according to a sixth prediction mode, determine a sixth rate-distortion cost, and the reference frame of the sixth prediction mode is the second reference frame; and determine the prediction mode corresponding to the at least one LOD layer from the fifth prediction mode and the sixth prediction mode according to the fifth rate-distortion cost and the sixth rate-distortion cost.
[0341] In some implementations, the encoder 3400 further includes a third encoding unit 3450 configured to write second identification information into the bitstream, where the second identification information is used to indicate a prediction mode corresponding to the at least one RAHT layer.
[0342] In some implementations, the encoder 3400 further includes a fourth encoding unit 3452 configured to write third identification information into the bitstream, where the third identification information is used to indicate a prediction mode corresponding to the at least one LOD layer.
[0343] In some implementations, the encoder 3400 further includes a fifth encoding unit 3455 configured to write fourth identification information into the bitstream, where the fourth identification information is used to indicate whether to enable inter-frame prediction encoding of the attribute information.
[0344] In some implementations, the fourth identification information includes a first value and / or a second value, wherein the first value is used to indicate whether to enable inter-frame prediction coding of the attribute information, and the second value is used to indicate whether to enable inter-frame prediction coding of the attribute information.
[0345] In some implementations, the encoder 3400 further includes a sixth determination unit 3460 configured to perform motion compensation on the first reference frame according to a first motion matrix to determine the second reference frame, where the first motion matrix is a global motion matrix or a local motion matrix.
[0346] In some implementations, the sixth determining unit 3460 is configured to translate and / or rotate the geometric information of the first reference frame according to the first motion matrix.
[0347] In some implementations, the encoder 3400 further includes a sixth encoding unit 3465 configured to perform inter-frame prediction on the geometric information and determine a predicted value of the geometric information; and determine a residual value of the geometric information based on the predicted value of the geometric information.
[0348] In some implementations, the encoder 3400 further includes a seventh encoding unit 3470 configured to determine a predicted value of the attribute information according to the target prediction mode; and determine a residual value of the attribute information according to the predicted value of the attribute information.
[0349] In some implementations, the encoder 3400 further includes an eighth encoding unit 3475 configured to transform the residual value of the attribute information to determine the transformation coefficient of the attribute information; quantize the transformation coefficient to determine the quantization coefficient of the attribute information; and write the quantization coefficient into the bitstream.
[0350] In some implementations, the encoding method is applied to GES-TM.
[0351] It is understandable that in the embodiments of the present application, a "unit" can be a portion of a circuit, a portion of a processor, a portion of a program or software, etc., and of course it can also be a module, or it can be non-modular. Moreover, the various components in this embodiment can be integrated into a processing unit, or each unit can exist physically separately, or two or more units can be integrated into a single unit. The above-mentioned integrated units can be implemented in the form of hardware or in the form of software functional modules.
[0352] If the integrated unit is implemented as a software functional module and is not sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this embodiment, or the portion that contributes to the prior art, or all or part of the technical solution can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions for causing a computer device (which can be a personal computer, server, or network device, etc.) or a processor to execute all or part of the steps of the method described in this embodiment. The aforementioned storage medium includes various media that can store program code, such as a USB flash drive, a mobile hard drive, ROM, RAM, a magnetic disk, or an optical disk.
[0353] Therefore, an embodiment of the present application provides a computer-readable storage medium, which is applied to the encoder 3400. The computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, it implements the decoding method described in any one of the aforementioned embodiments.
[0354] Based on the composition of the above-mentioned encoder 3400 and the computer-readable storage medium, refer to Figure 35, which shows a specific hardware structure diagram of the encoder 3500 provided in an embodiment of the present application. As shown in Figure 35, the encoder 3500 may include: a communication interface 3510, a memory 3520 and a processor 3530; each component is coupled together through a bus system 3540. It can be understood that the bus system 3540 is used to realize the connection and communication between these components. In addition to the data bus, the bus system 3540 also includes a power bus, a control bus and a status signal bus. However, for the sake of clarity, various buses are labeled as bus systems 3540 in Figure 35. Among them,
[0355] Communication interface 3510, used for sending and receiving signals when sending and receiving information with other external network elements;
[0356] Memory 3520, for storing computer programs;
[0357] The processor 3530 is configured to, when running the computer program, execute:
[0358] Inter-frame prediction is performed on the attribute information of the current frame according to a first prediction mode to determine a first rate-distortion cost, where a reference frame of the first prediction mode is a first reference frame of the current frame that has not undergone motion compensation; inter-frame prediction is performed on the attribute information according to a second prediction mode to determine a second rate-distortion cost, where a reference frame of the second prediction mode is a second reference frame of the current frame that has undergone motion compensation; and a target prediction mode is determined from the first prediction mode and the second prediction mode according to the first rate-distortion cost and the second rate-distortion cost.
[0359] It will be appreciated that the memory 3520 in the embodiments of the present application may be a volatile memory or a non-volatile memory, or may include both volatile and non-volatile memory. The non-volatile memory may be a ROM, PROM, EPROM, EEPROM, or flash memory. The volatile memory may be a RAM, which serves as an external cache. By way of example and not limitation, many forms of RAM are available, such as SRAM, DRAM, SDRAM, DDRSDRAM, ESDRAM, SLDRAM, and DRRAM. The memory 3520 of the systems and methods described herein is intended to include, but is not limited to, these and any other suitable types of memory.
[0360] Processor 3530 may be an integrated circuit chip with signal processing capabilities. During implementation, the steps of the above method can be performed by hardware integrated logic circuits within processor 3530 or by software instructions. Processor 3530 may be a general-purpose processor, DSP, ASIC, FPGA, or other programmable logic device, discrete gate or transistor logic device, or discrete hardware component. It can implement or execute the methods, steps, and logic block diagrams disclosed in the embodiments of this application. A general-purpose processor may be a microprocessor or any conventional processor. The steps of the methods disclosed in the embodiments of this application can be directly implemented and executed by a hardware decoding processor, or by a combination of hardware and software modules within the decoding processor. The software modules can be located in a storage medium well-known in the art, such as random access memory, flash memory, read-only memory, programmable read-only memory, electrically erasable programmable memory, or registers. This storage medium is located in memory 3520. Processor 3530 reads information from memory 3520 and, in conjunction with its hardware, completes the steps of the above method.
[0361] It is understood that the embodiments described herein can be implemented with hardware, software, firmware, middleware, microcode, or a combination thereof. For hardware implementation, the processing unit can be implemented in one or more ASICs, DSPs, DSPDs, PLDs, FPGAs, general-purpose processors, controllers, microcontrollers, microprocessors, other electronic units for performing the functions described herein, or a combination thereof. For software implementation, the technology described herein can be implemented by modules (e.g., processes, functions, etc.) that perform the functions described herein. The software code can be stored in a memory and executed by a processor. The memory can be implemented in the processor or outside the processor.
[0362] Optionally, as another embodiment, the processor 3530 is further configured to execute the encoding method described in any one of the aforementioned embodiments when running the computer program.
[0363] An embodiment of the present application also provides a computer-readable storage medium, which is a non-volatile computer-readable storage medium for storing a bit stream. The bit stream can be generated by an encoding method of an encoder, or the bit stream can be decoded by a decoding method of a decoder, wherein the decoding method can be the decoding method described in any of the foregoing embodiments, and the encoding method can be the encoding method described in any of the foregoing embodiments.
[0364] It should be noted that, in this application, the terms "comprises," "includes," or any other variations thereof are intended to encompass non-exclusive inclusion, such that a process, method, article, or apparatus comprising a series of elements includes not only those elements but also other elements not explicitly listed, or elements inherent to such process, method, article, or apparatus. In the absence of further limitations, an element defined by the phrase "comprising a ..." does not exclude the presence of other identical elements in the process, method, article, or apparatus comprising the element.
[0365] The serial numbers of the above embodiments of the present application are for description only and do not represent the advantages or disadvantages of the embodiments.
[0366] The methods disclosed in the several method embodiments provided in this application can be arbitrarily combined without conflict to obtain new method embodiments.
[0367] The features disclosed in the several product embodiments provided in this application can be arbitrarily combined without conflict to obtain new product embodiments.
[0368] The features disclosed in the several method or device embodiments provided in this application can be arbitrarily combined without conflict to obtain new method embodiments or device embodiments.
[0369] The above description is merely a specific embodiment of the present application, but the scope of protection of the present application is not limited thereto. Any changes or substitutions that can be easily conceived by a person skilled in the art within the technical scope disclosed in this application should be included in the scope of protection of this application. Therefore, the scope of protection of this application should be based on the scope of protection of the claims.
Claims
1. A point cloud decoding method, applied to a decoder, comprising: Determine an inter-frame prediction mode of the attribute information of the current frame, where the inter-frame prediction mode of the attribute information of the current frame includes a first prediction mode and a second prediction mode, the reference frame of the first prediction mode is a first reference frame of the current frame without motion compensation, and the reference frame of the second prediction mode is a second reference frame of the current frame with motion compensation; If the inter-frame prediction mode is the second prediction mode, perform inter-frame prediction on the attribute information according to the second reference frame to determine a predicted value of the attribute information; Determine a reconstructed value of the attribute information according to the predicted value of the attribute information.
2. The method according to claim 1, wherein, The determining of the inter-frame prediction mode of the attribute information of the current frame includes: Parse the code stream to determine a first identification information, where the first identification information is used to indicate the inter-frame prediction mode of the attribute information of the current frame.
3. The method according to claim 2, wherein The second reference frame is determined based on a first motion matrix, and the first motion matrix is different from a second motion matrix, where the second motion matrix is used for: performing motion compensation on the first reference frame when decoding the geometric information of the current frame.
4. The method according to claim 2, wherein, The second reference frame is determined based on a first motion matrix, and the first motion matrix and the second motion matrix are the same motion matrix, where the second motion matrix is used for: performing motion compensation on the first reference frame when decoding the geometric information of the current frame.
5. The method according to claim 3 or 4, wherein, The method further includes: If the first identification information indicates the second prediction mode, parse the code stream to determine the first motion matrix.
6. The method according to any one of claims 1 to 5, wherein: The attribute information is the attribute information of at least one strip in the current frame; or, The attribute information is the attribute information of at least one Region Adaptive Hierarchical Transform (RAHT) layer; or, The attribute information is the attribute information of at least one Level of Detail (LOD) layer.
7. The method according to claim 6, wherein When the attribute information is the attribute information of the at least one strip, the method further includes: Parse the code stream to determine a second identification information, where the second identification information is used to indicate the inter-frame prediction mode of the attribute information of the at least one RAHT layer, and the inter-frame prediction mode of the attribute information of the at least one RAHT layer includes a third prediction mode and a fourth prediction mode, the reference frame of the third prediction mode is the first reference frame, and the reference frame of the fourth prediction mode is the second reference frame.
8. The method according to claim 6, wherein, When the attribute information is the attribute information of the at least one strip, the method further includes: Parse the code stream to determine a third identification information, where the third identification information is used to indicate the inter-frame prediction mode of the attribute information of the at least one LOD layer, and the inter-frame prediction mode of the attribute information of the at least one LOD layer includes a fifth prediction mode and a sixth prediction mode, the reference frame of the fifth prediction mode is the first reference frame, and the reference frame of the sixth prediction mode is the second reference frame.
9. The method according to any one of claims 1 to 8, wherein, The method further includes: Parse the code stream to determine a fourth identification information, where the fourth identification information is used to indicate whether to start inter-frame predictive coding of the attribute information.
10. The method according to claim 9, wherein The fourth identification information includes a first value and / or a second value. The first value is used to indicate the inter-frame predictive coding of the attribute information, and the second value is used to indicate not to start the inter-frame predictive coding of the attribute information.
11. The method according to any one of claims 1 to 10, wherein, The method further includes: Performing motion compensation on the first reference frame according to a first motion matrix to determine the second reference frame, where the first motion matrix is a global motion matrix or a local motion matrix.
12. The method according to claim 11, wherein, The performing motion compensation on the first reference frame according to the first motion matrix includes: Translating and / or rotating the geometric information of the first reference frame according to the first motion matrix.
13. The method according to any one of claims 1 to 12, wherein The method further includes: Determining prediction information of the geometric information of the current frame; Determining a reconstructed value of the geometric information according to the prediction information.
14. The method according to any one of claims 1 to 13, wherein The determining a reconstructed value of the attribute information according to the predicted value of the attribute information includes: Determining a reconstructed value of the attribute information according to the predicted value of the attribute information and the residual value of the attribute information.
15. The method according to claim 14, wherein The method includes: Analyzing a bitstream to determine a quantization coefficient of the attribute information; Performing inverse quantization on the quantization coefficient to determine a transform coefficient of the attribute information; Performing inverse transformation on the transform coefficient to determine the residual value.
16. A point cloud coding method applied to an encoder, including: Performing inter-frame prediction on the attribute information of the current frame according to a first prediction mode to determine a first rate-distortion cost, where the reference frame of the first prediction mode is a first reference frame of the current frame that has not undergone motion compensation; Performing inter-frame prediction on the attribute information according to a second prediction mode to determine a second rate-distortion cost, where the reference frame of the second prediction mode is a second reference frame of the current frame that has undergone motion compensation; Determining a target prediction mode from the first prediction mode and the second prediction mode according to the first rate-distortion cost and the second rate-distortion cost.
17. The method according to claim 16, wherein The method further includes: Writing first identification information into the bitstream, where the first identification information is used to indicate that the inter-frame prediction mode of the attribute information is the target prediction mode.
18. The method according to claim 16 or 17, wherein The second reference frame is determined based on a first motion matrix, and the first motion matrix is different from a second motion matrix, where the second motion matrix is used for: performing motion compensation on the first reference frame when encoding the geometric information of the current frame.
19. The method according to claim 18, wherein, The first motion matrix is determined based on an error between the attribute information of the current frame and the attribute information of the second reference frame.
20. The method according to claim 19, wherein, The error is the minimum mean square error.
21. The method according to claim 16 or 17, wherein The second reference frame is determined based on a first motion matrix, and the first motion matrix and the second motion matrix are the same motion matrix, where the second motion matrix is used for: performing motion compensation on the first reference frame when encoding the geometric information of the current frame.
22. The method according to any one of claims 18 to 21, wherein The method further includes: If the target prediction mode is the second prediction mode, writing the first motion matrix into the bitstream.
23. According to the method of any one of claims 16 to 22, wherein: The attribute information is the attribute information of at least one strip in the current frame; or, The attribute information is the attribute information of at least one RAHT layer; or, The attribute information is the attribute information of at least one LOD layer.
24. The method according to claim 23, wherein, The attribute information is the attribute information of the at least one stripe, and the method further includes: Performing inter-frame prediction on the attribute information of the at least one RAHT layer according to a third prediction mode to determine a third rate-distortion cost, wherein the reference frame of the third prediction mode is the first reference frame; Performing inter-frame prediction on the attribute information of the at least one RAHT layer according to a fourth prediction mode to determine a fourth rate-distortion cost, wherein the reference frame of the fourth prediction mode is the second reference frame; Determining the prediction mode corresponding to the at least one RAHT layer from the third prediction mode and the fourth prediction mode according to the third rate-distortion cost and the fourth rate-distortion cost.
25. The method according to claim 23, wherein, The attribute information is the attribute information of the at least one stripe, and the method further includes: Performing inter-frame prediction on the attribute information of the at least one LOD layer according to a fifth prediction mode to determine a fifth rate-distortion cost, wherein the reference frame of the fifth prediction mode is the first reference frame; Performing inter-frame prediction on the attribute information of the at least one LOD layer according to a sixth prediction mode to determine a sixth rate-distortion cost, wherein the reference frame of the sixth prediction mode is the second reference frame; Determining the prediction mode corresponding to the at least one LOD layer from the fifth prediction mode and the sixth prediction mode according to the fifth rate-distortion cost and the sixth rate-distortion cost.
26. The method according to claim 24, wherein, The method further includes: Writing second identification information into the bitstream, where the second identification information is used to indicate the prediction mode corresponding to the at least one RAHT layer.
27. The method according to claim 25, wherein, The method further includes: Writing third identification information into the bitstream, where the third identification information is used to indicate the prediction mode corresponding to the at least one LOD layer.
28. The method according to any one of claims 16 to 27, wherein, The method further includes: Writing fourth identification information into the bitstream, where the fourth identification information is used to indicate whether to start inter-frame predictive coding of the attribute information.
29. The method according to claim 28, wherein The fourth identification information includes a first value and / or a second value, where the first value is used to indicate starting inter-frame predictive coding of the attribute information, and the second value is used to indicate not starting inter-frame predictive coding of the attribute information.
30. The method according to any one of claims 16 to 29, wherein, The method further includes: Performing motion compensation on the first reference frame according to a first motion matrix to determine the second reference frame, where the first motion matrix is a global motion matrix or a local motion matrix.
31. The method according to claim 30, wherein, The performing motion compensation on the first reference frame according to the first motion matrix includes: Translating and / or rotating the geometric information of the first reference frame according to the first motion matrix.
32. The method according to any one of claims 16 to 31, wherein, The method further includes: Performing inter-frame prediction on the geometric information to determine prediction information of the geometric information; Predicting the geometric information according to the prediction information.
33. The method according to any one of claims 16 to 32, wherein The method further includes: Determining a predicted value of the attribute information according to the target prediction mode; Determining a residual value of the attribute information according to the predicted value of the attribute information.
34. The method according to claim 33, wherein The method includes: Performing a transform on the residual value of the attribute information to determine transform coefficients of the attribute information; Performing quantization on the transform coefficients to determine quantization coefficients of the attribute information; Writing the quantization coefficients into the bitstream.
35. A decoder, comprising: A first determination unit, configured to determine an inter-frame prediction mode of attribute information of a current frame, where the inter-frame prediction mode of the attribute information of the current frame includes a first prediction mode and a second prediction mode, a reference frame of the first prediction mode is a first reference frame of the current frame that has not undergone motion compensation, and a reference frame of the second prediction mode is a second reference frame of the current frame that has undergone motion compensation; A second determination unit, configured to, if the inter-frame prediction mode is the second prediction mode, perform inter-frame prediction on the attribute information according to the second reference frame to determine a predicted value of the attribute information; A third determination unit, configured to determine a reconstructed value of the attribute information according to the predicted value of the attribute information.
36. A decoder, comprising: A memory, configured to store a computer program; A processor, configured to execute the method according to any one of claims 1 to 15 when running the computer program.
37. An encoder, comprising: A first determination unit, configured to perform inter-frame prediction on attribute information of a current frame according to a first prediction mode to determine a first rate-distortion cost, where a reference frame of the first prediction mode is a first reference frame of the current frame that has not undergone motion compensation; A second determination unit, configured to perform inter-frame prediction on the attribute information according to a second prediction mode to determine a second rate-distortion cost, where a reference frame of the second prediction mode is a second reference frame of the current frame that has undergone motion compensation; A third determination unit, configured to determine a target prediction mode from the first prediction mode and the second prediction mode according to the first rate-distortion cost and the second rate-distortion cost.
38. An encoder, comprising: A memory, configured to store a computer program; A processor, configured to execute the method according to any one of claims 16 to 34 when running the computer program.
39. A non - volatile computer - readable storage medium storing a bitstream, the bitstream being generated by using an encoding method of an encoder or the bitstream being decoded by using a decoding method of a decoder, wherein, The decoding method is the method according to any one of claims 1 to 15, and the encoding method is the method according to any one of claims 16 to 34.
40. A bitstream, where the bitstream includes a bitstream generated by the method according to any one of claims 16 to 34.
41. A computer-readable storage medium, wherein, The computer-readable storage medium stores a computer program, and when the computer program is executed, it implements the method according to any one of claims 1 to 15, or 16 to 34.