Point cloud coding and decoding method, codec and computer storage medium
Patent Information
- Application Number
- CN202280097320.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2022-07-13
- Filing Date
- 2022-09-06
- Publication Date
- 2025-02-07
AI Technical Summary
Existing point cloud coding methods fail to fully utilize the spatial correlation of point clouds in the upsampling prediction process, resulting in low coding efficiency and affecting video compression performance.
By determining the reconstructed attribute information of the occupied neighbor nodes and child nodes of the current node, perform RAHT transformation to obtain the attribute prediction value, and update the reconstructed attribute information of the child node according to the predicted value or write it into the code stream, and introduce the adjacent nodes and child nodes of the same layer. Prediction processing to improve encoding and decoding efficiency.
The coding efficiency of the point cloud coding method is improved, the video compression performance is improved, and the compression capability of point cloud data is enhanced.
Smart Images

Figure CN119404503A_ABST
Abstract
Description
Point cloud encoding and decoding method, codec and computer storage medium
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS
[0002] This application claims priority to patent application number PCT / CN2022 / 105576, filed on July 13, 2022, entitled “Point cloud encoding and decoding method, codec and computer storage medium,” the entire contents of which are incorporated by reference into this application. Technical Field
[0003] The embodiments of the present application relate to the field of video coding and decoding technology, and in particular to a point cloud coding and decoding method, a codec, and a computer storage medium. Background Art
[0004] In the Geometry Point Cloud Compression (G-PCC) framework developed by the Moving Picture Experts Group (MPEG), the geometric information of a point cloud and the attribute information corresponding to each point cloud are encoded separately. After the geometric encoding is completed, the geometric information is reconstructed, and the encoding of the attribute information depends on the reconstructed geometric information.
[0005] Currently, MPEG G-PCC mainly uses two attribute transform coding branches: Region Adaptive Hierarchical Transform (RAHT) and Lifting Transform. To remove spatial redundancy and improve video compression performance, RAHT introduces upsampling prediction.
[0006] When performing upsampling prediction processing, the parent node and the neighbors of the parent node that have been encoded in the upper layer are mainly used to predict the current node. The actual spatial situation of the current node in the point cloud is not taken into account, resulting in low coding efficiency.
[0007] Summary of the Invention
[0008] The embodiments of the present application provide a point cloud encoding and decoding method, a codec, and a computer storage medium, which improve encoding and decoding efficiency and enhance video compression performance.
[0009] The technical solution of the embodiment of the present application can be implemented as follows:
[0010] In a first aspect, an embodiment of the present application provides a point cloud decoding method, applied to a decoder, the method comprising:
[0011] Determining reconstruction attribute information of an occupied neighbor node of a current node and reconstruction attribute information of an occupied neighbor child node at the same layer of a child node of the current node;
[0012] Determining an attribute prediction value of a child node of the current node according to the reconstructed attribute information of the occupied neighbor node and the reconstructed attribute information of the occupied neighbor child node at the same layer of the child node of the current node;
[0013] Performing a RAHT transformation on the attribute prediction value to determine a first transformed coefficient, and determining the reconstructed attribute information of the child node of the current node according to the first transformed coefficient.
[0014] In a second aspect, an embodiment of the present application provides a point cloud decoding method, applied to a decoder, the method comprising:
[0015] If the current node is not a root node, determining the number of occupied neighbors of the parent node of the current node and the number of occupied neighbors of the current node;
[0016] If the number of occupied neighbors of the parent node is greater than or equal to a first threshold, and the number of occupied neighbors of the current node is greater than or equal to a second threshold, determining the reconstruction attribute information of the occupied neighbor nodes of the current node and the reconstruction attribute information of the occupied neighbor child nodes of the child node of the current node at the same layer;
[0017] Determining an attribute prediction value of a child node of the current node according to the reconstructed attribute information of the occupied neighbor node and the reconstructed attribute information of the occupied neighbor child node at the same layer of the child node of the current node;
[0018] Performing a RAHT transformation on the attribute prediction value to determine a first transformed coefficient, and determining the reconstructed attribute information of the child node of the current node according to the first transformed coefficient.
[0019] In a third aspect, an embodiment of the present application provides a point cloud encoding method, applied to an encoder, the method comprising:
[0020] Determining reconstruction attribute information of an occupied neighbor node of a current node and reconstruction attribute information of an occupied neighbor child node at the same layer of a child node of the current node;
[0021] Determine an attribute prediction value of a child node of the current node according to the reconstructed attribute information of the occupied neighbor node and the reconstructed attribute information of the occupied neighbor child node at the same layer of the child node of the current node;
[0022] Performing a RAHT transform on the attribute prediction value to determine a first transformed coefficient, and determining a coefficient residual value of a child node of the current node based on the first transformed coefficient;
[0023] The coefficient residual value is written into the bitstream.
[0024] In a fourth aspect, an embodiment of the present application provides a point cloud encoding method, applied to an encoder, the method comprising:
[0025] If the current node is not a root node, determining the number of occupied neighbors of the parent node of the current node and the number of occupied neighbors of the current node;
[0026] If the number of occupied neighbors of the parent node is greater than or equal to a first threshold, and the number of occupied neighbors of the current node is greater than or equal to a second threshold, determining the reconstruction attribute information of the occupied neighbor nodes of the current node and the reconstruction attribute information of the occupied neighbor child nodes of the child node of the current node at the same layer;
[0027] Determine an attribute prediction value of a child node of the current node according to the reconstructed attribute information of the occupied neighbor node and the reconstructed attribute information of the occupied neighbor child node at the same layer of the child node of the current node;
[0028] Performing a RAHT transform on the attribute prediction value to determine a first transformed coefficient, and determining a coefficient residual value of a child node of the current node based on the first transformed coefficient;
[0029] The coefficient residual value is written into the bitstream.
[0030] In a fifth aspect, an embodiment of the present application provides a decoder, comprising: a first determining part,
[0031] The first determination part is configured to determine the reconstruction attribute information of the occupied neighboring nodes of the current node and the reconstruction attribute information of the occupied neighboring child nodes of the current node at the same layer; determine the attribute prediction value of the child node of the current node based on the reconstruction attribute information of the occupied neighboring nodes and the reconstruction attribute information of the occupied neighboring child nodes of the current node at the same layer; perform RAHT transformation on the attribute prediction value to determine the first transformed coefficient, and determine the reconstruction attribute information of the child node of the current node based on the first transformed coefficient.
[0032] In a sixth aspect, an embodiment of the present application provides a decoder, comprising: a first determining part,
[0033] The first determination part is configured to determine the number of occupied neighbors of the parent node of the current node and the number of occupied neighbors of the current node if the current node is not a root node; if the number of occupied neighbors of the parent node is greater than or equal to a first threshold, and the number of occupied neighbors of the current node is greater than or equal to a second threshold, determine the reconstruction attribute information of the occupied neighbor nodes of the current node and the reconstruction attribute information of the occupied same-layer neighbor sub-nodes of the child nodes of the current node; determine the attribute prediction value of the child node of the current node based on the reconstruction attribute information of the occupied neighbor nodes and the reconstruction attribute information of the occupied same-layer neighbor sub-nodes of the child node of the current node; perform RAHT transformation on the attribute prediction value to determine the first transformed coefficient, and determine the reconstruction attribute information of the child node of the current node based on the first transformed coefficient.
[0034] In a seventh aspect, an embodiment of the present application provides a decoder, which includes a first processor and a first memory storing executable instructions of the first processor. When the instructions are executed, the point cloud decoding method as described above is implemented.
[0035] In an eighth aspect, an embodiment of the present application provides an encoder, comprising: a second determining part, an encoding part,
[0036] The second determining portion is configured to determine the reconstructed attribute information of the occupied neighboring nodes of the current node and the reconstructed attribute information of the occupied neighboring child nodes of the child nodes of the current node at the same layer; determine the attribute prediction value of the child node of the current node based on the reconstructed attribute information of the occupied neighboring nodes and the reconstructed attribute information of the occupied neighboring child nodes of the child nodes of the current node at the same layer; perform a RAHT transform on the attribute prediction value to determine a first transformed coefficient, and determine a coefficient residual value of the child node of the current node based on the first transformed coefficient;
[0037] The encoding part is configured to write the coefficient residual value into the code stream.
[0038] In a ninth aspect, an embodiment of the present application provides an encoder, comprising: a second determining part, an encoding part,
[0039] The second determination part is configured to, if the current node is not a root node, determine the number of occupied neighbors of the parent node of the current node and the number of occupied neighbors of the current node; if the number of occupied neighbors of the parent node is greater than or equal to a first threshold, and the number of occupied neighbors of the current node is greater than or equal to a second threshold, determine the reconstruction attribute information of the occupied neighbor nodes of the current node and the reconstruction attribute information of the occupied neighbor subnodes of the child node of the current node at the same layer; determine the attribute prediction value of the child node of the current node based on the reconstruction attribute information of the occupied neighbor nodes and the reconstruction attribute information of the occupied neighbor subnodes of the child node of the current node at the same layer; perform RAHT transformation on the attribute prediction value to determine a first transformed coefficient, and determine the coefficient residual value of the child node of the current node based on the first transformed coefficient;
[0040] The encoding part is configured to write the coefficient residual value into the code stream.
[0041] In the tenth aspect, an embodiment of the present application provides an encoder, which includes a second processor and a second memory storing instructions executable by the second processor. When the instructions are executed, the second processor implements the point cloud encoding method as described above.
[0042] In the eleventh aspect, an embodiment of the present application provides a computer storage medium, which stores a computer program, and when the computer program is executed by a processor, it implements the point cloud decoding method and point cloud encoding method as described above.
[0043] The embodiment of the present application discloses a point cloud encoding and decoding method, a codec and a computer storage medium, wherein the decoder determines the reconstruction attribute information of the occupied neighbor nodes of the current node and the reconstruction attribute information of the occupied neighbor subnodes of the current node at the same layer; determines the attribute prediction value of the subnode of the current node based on the reconstruction attribute information of the occupied neighbor nodes and the reconstruction attribute information of the occupied neighbor subnodes of the current node at the same layer; performs RAHT transformation on the attribute prediction value to determine the first transformed coefficient, and determines the reconstruction attribute information of the subnode of the current node based on the first transformed coefficient. The encoder determines the reconstruction attribute information of the occupied neighbor nodes of the current node and the reconstruction attribute information of the occupied neighbor subnodes of the current node at the same layer; determines the attribute prediction value of the subnode of the current node based on the reconstruction attribute information of the occupied neighbor nodes and the reconstruction attribute information of the occupied neighbor subnodes of the current node at the same layer; performs RAHT transformation on the attribute prediction value to determine the first transformed coefficient, and determines the quantized coefficient residual of the subnode of the current node based on the first transformed coefficient; and writes the quantized coefficient residual into the bitstream. That is to say, in an embodiment of the present application, for the RAHT transformation process, when predicting the attribute information of the current node, the reconstructed attribute information of the occupied neighboring nodes of the current node and the reconstructed attribute information of the occupied same-layer neighboring child nodes of the child nodes of the current node can be used to determine the attribute prediction value of the child nodes of the current node, that is, on the basis of the upsampling prediction, the same-layer adjacent nodes of the current node and the same-layer adjacent child nodes of the child nodes are introduced to perform the prediction processing of the attribute information, that is, the parent-layer adjacent nodes and the same-layer adjacent child nodes of the child nodes of the current node are introduced to perform the prediction processing of the attribute information, which improves the encoding and decoding efficiency and enhances the video compression performance. BRIEF DESCRIPTION OF THE DRAWINGS
[0044] FIG1 is a schematic diagram of RAHT transformation;
[0045] Figure 2 is a schematic diagram of the parent layer neighbors;
[0046] FIG3 is a schematic diagram of the framework of the G-PCC encoder;
[0047] FIG4 is a schematic diagram of the framework of the G-PCC decoder;
[0048] FIG5 is a schematic diagram of an implementation flow of a point cloud decoding method proposed in an embodiment of the present application;
[0049] FIG6 is a schematic diagram of the implementation process of the point cloud encoding method proposed in an embodiment of the present application;
[0050] FIG7 is a flowchart of RAHT encoding;
[0051] FIG8 is a flowchart of RAHT decoding;
[0052] FIG9 is a schematic diagram of the prediction method;
[0053] FIG10 is a schematic diagram of the structure of the decoder;
[0054] FIG11 is a second schematic diagram of the structure of the decoder;
[0055] FIG12 is a schematic diagram of the structure of the encoder;
[0056] FIG13 is a second schematic diagram of the encoder structure. DETAILED DESCRIPTION
[0057] 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.
[0058] 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.
[0059] 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.
[0060] It should be pointed out that the terms "first\second\third" involved in the embodiments of the present application are merely 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.
[0061] Here, point cloud is a three-dimensional representation of the surface of an object. Point cloud (data) of the surface of an object can be collected through acquisition equipment such as photoelectric radar, lidar, laser scanner, and multi-view camera.
[0062] A point cloud refers to a collection of massive three-dimensional points. The points in the point cloud can include both their location information and their attribute information. For example, the location information of a point can be its three-dimensional coordinate information. The location information of a point can also be referred to as its geometric information. For example, the attribute information of a point can include color information and / or reflectivity information, etc. For example, color information can be information in any color space. For example, color information can be RGB information, where R represents red (Red, R), G represents green (Green, G), and B represents blue (Blue, B). For another example, color information can 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.
[0063] For example, a point cloud obtained based on the principle of laser measurement can include the three-dimensional coordinate information of the point and the laser reflection intensity (reflectance) of the point. For another example, a point cloud obtained based on the principle of photogrammetry can include the three-dimensional coordinate information of the point and the color information of the point. For another example, a point cloud obtained by combining the principles of laser measurement and photogrammetry can include the three-dimensional coordinate information of the point, the laser reflection intensity (reflectance) of the point, and the color information of the point.
[0064] Point clouds can be divided into the following categories according to the acquisition method:
[0065] The first type of static point cloud: the object is stationary and the device used to obtain the point cloud is also stationary;
[0066] The second type of dynamic point cloud: the object is moving, but the device that obtains the point cloud is stationary;
[0067] The third type of dynamic point cloud acquisition: the object is moving, and the device for acquiring the point cloud is also moving.
[0068] For example, point clouds can be divided into two categories according to their usage:
[0069] 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;
[0070] 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.
[0071] Since point clouds are a collection of massive points, storing point clouds 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 point clouds at the network layer without compression. Therefore, point clouds need to be compressed.
[0072] Currently, point cloud coding frameworks that can compress point clouds can be the Geometry Point Cloud Compression (G-PCC) codec framework or the Video Point Cloud Compression (V-PCC) codec framework provided by the Moving Picture Experts Group (MPEG), or the AVS-PCC codec framework provided by the Audio Video Standard (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, while the V-PCC codec framework can be used to compress the second type of dynamic point clouds. The G-PCC codec framework is also known as the Point Cloud Codec TMC13, and the V-PCC codec framework is also known as the Point Cloud Codec TMC2.
[0073] It can be understood that in the point cloud G-PCC encoder framework, the input point cloud is sliced and then the slices are independently encoded. In the slice, the geometric information and attribute information of the point cloud are encoded separately. The G-PCC encoder first encodes the geometric information. The encoder performs coordinate transformation on the geometric information so that the entire point cloud is contained in a bounding box; then quantization is performed. This quantization step mainly plays a scaling role. Due to quantization rounding, the geometric information of some points is the same. The decision whether to remove duplicate points is based on parameters. Not removing duplicate points is called geometric lossless compression, and removing duplicate points is called geometric lossy compression. The process of quantizing and removing duplicate points is also called voxelization. Next, the bounding box is divided based on a multi-tree (such as an octree, quadtree, or binary tree). Depending on the depth of the multi-tree division level, the encoding of geometric information is divided into two frameworks: multi-tree based and prediction tree based.
[0074] In a multitree-based geometric information coding framework, the bounding box is divided into multiple sub-cubes, and the placeholder bits of the sub-cubes are recorded (where 1 indicates a non-empty sub-cube and 0 indicates an empty sub-cube). The sub-cubes are further divided equally, usually stopping when the resulting leaf node is a 1×1×1 unit cube. During this process, the placeholder bits are intra-predicted using the spatial correlation between the node and its surrounding nodes. Finally, arithmetic coding (CABAC) is performed to generate a binary geometric bit stream, also known as the geometry code stream.
[0075] After completing the geometric information encoding, the G-PCC encoder reconstructs the geometric information and uses the reconstructed geometric information to encode the attribute information of the point cloud. Among them, in the geometric information coding framework based on the multi-tree, both geometric lossless compression and geometric lossy compression have a geometric reconstruction process when the multi-tree division is completed. At present, the attribute encoding of the point cloud mainly encodes the color information of the point in the point cloud. First, the encoder can perform color space conversion on the color information of the point. For example, when the color information of the point in the input point cloud is represented by the RGB color space, the encoder can convert the color information from the RGB color space to the YUV color space. Then, the point cloud is recolored using the reconstructed geometric information so that the unencoded attribute information corresponds to the reconstructed geometric information. In color information coding, there are two main transformation methods. One is the lifting transformation that relies on the level of detail (LOD) division, and the other is the direct region adaptive hierarchical transform (RAHT) transformation. Both methods transform color information from the spatial domain to the frequency domain to obtain high-frequency coefficients and low-frequency coefficients. Finally, the coefficients are quantized and arithmetically coded to generate a binary attribute bit stream, namely the attribute code stream.
[0076] It should be noted that for attribute information, you can first choose whether to perform color space conversion on the input attribute information. Currently, the TMC13 platform supports converting color attributes from RGB to YUV space. When the geometry is lossy, the point cloud is recolored, and then the appropriate encoding method is selected based on different test sequences and conditions. MPEG G-PCC currently uses two attribute transform coding branches: the RAHT branch and the lifting transform branch.
[0077] The RAHT transform is based on the hierarchical structure created by partitioning the point cloud data into an octree. Starting from the root node of the octree, the transform is performed in layers from top to bottom. The transform is performed in 2×2×2 blocks, and within this block, the transform order is from bottom to top. Figure 1 illustrates the RAHT transform. As shown in Figure 1, after the octree partitioning, voxel block 1 is obtained (i.e., the geometric volume with three alternating colors and depths in Figure 1, each representing a point in the point cloud). The RAHT transform begins at the top level. Taking the transformation order xyz as an example, as shown in Figure 1, the RAHT transform is first performed along the x-direction. If there are adjacent voxel blocks in the x-direction, a RAHT is performed on them, resulting in a weighted average (DC coefficient) and residual (AC coefficient) of the attribute values of the two adjacent points. The DC coefficient is stored as the attribute information of voxel block 2 of the parent node and undergoes a RAHT transform at the next level; the AC coefficient also undergoes a RAHT transform at the next level. If there are no adjacent points, the attribute values of the voxel block are directly passed to the parent node at the second level. The second RAHT transform is performed along the y-direction. If there are adjacent voxel blocks in the y-direction, the two are RAHTed together to obtain the weighted average (DC coefficient) and residual (AC coefficient) of the attribute values of the two adjacent points. The third RAHT transform is then performed along the z-direction, obtaining a parent voxel block 3 with three alternating color depths, which serves as the parent node for the next level in the octree. The AC coefficients are retained for subsequent encoding, and the RAHT transform is then repeated along the x-, y-, and z-directions until there is only one parent node for the entire point cloud.
[0078] In practice, when traversing points in a point cloud, the Morton code of the sorted point cloud is used. That is, whether two child nodes are under the same parent node can be determined by whether the values of the Morton code after shifting one position to the right are equal.
[0079] To remove spatial redundancy, RAHT introduces upsampled prediction, which significantly improves performance. The entire prediction process for upsampled prediction can be divided into two steps: first, a neighbor search, and then a weighted prediction based on the reconstructed values of the found neighboring nodes.
[0080] When performing neighbor search, first, determine the number of neighbors of the parent node of the current point. If it is less than the set threshold (such as predictionThreshold[1] = 2), then no neighbor search and weighted prediction will be performed. RAHT will be performed directly on the original attribute information of the current point, and then the AC coefficients will be quantized and entropy coded; otherwise, a neighbor search will be performed.
[0081] Secondly, search for the neighbors of the parent node within the range: the parent node of the current point, the coplanar neighbors of the current parent node, and the collinear neighbors of the current parent node. Figure 2 shows a schematic diagram of the parent-level neighbors. As shown in Figure 2, if a neighbor of the parent node is occupied, record the reconstruction attribute information of this neighbor.
[0082] Count the number of neighbors of the parent node found (including the current parent node itself). If the number of neighbors of the parent node is less than the set threshold predictionThreshold[1]=6, no weighted prediction is performed. Instead, directly perform RAHT on the original attribute information of the current point, and then quantize and entropy-encode the AC coefficients; otherwise, perform weighted prediction.
[0083] When performing weighted prediction, perform weighted prediction on each child node of the current parent node. Their respective alternative reference point sets are the neighbor nodes obtained from the neighbor search process. It is stipulated that the prediction weight of the current parent node is 4, the prediction weight of the coplanar neighbors of the parent node is 2, and the prediction weight of the collinear neighbors of the parent node is 1.
[0084] Among them, the current parent node can be used to predict each of its internal child nodes, while other parent node neighbors need to further determine whether they meet the conditions of being coplanar and collinear with the current child node. If not, they cannot be used for weighted prediction of the current child node; if they meet this condition, they can be used to predict the current child node.
[0085] Set the prediction thresholds limitLow and limitHigh according to the attribute value attrpar of the current parent node as shown in the following formula:
[0086] limitLow = attrpar × 2 (1)
[0087] limitHigh = attrpar × 25 (2)
[0088] Assume that the attribute value of the current parent node neighbor is attrnei. If limitLow < 10 × attrnei < limitHigh, add it to the reference neighbor point set of the current child node; otherwise, this neighbor node is not used for prediction.
[0089] In the point cloud G-PCC decoder framework, the point cloud geometry bitstream and the point cloud attribute bitstream are decoded separately. The G-PCC decoder decodes the geometry bitstream. The decoder performs arithmetic decoding on the geometry bitstream to decode the point cloud bounding box and the multitree-based placeholder bits (1 indicates non-null, 0 indicates null). Depending on the depth of the multitree partitioning level during encoding, the decoding of geometric information is divided into two frameworks: multitree-based and prediction tree-based.
[0090] Figure 3 is a schematic diagram of the framework of the G-PCC encoder. In the schematic diagram of the framework of the G-PCC encoder shown in Figure 3, it is applied to the point cloud encoder. For the point cloud data to be encoded, the point cloud data is first divided into multiple slices through slice division. In each slice, the geometric information and attribute information of the point cloud are encoded separately. In the geometric encoding process, the geometric information is transformed so that the entire point cloud is contained in a bounding box, and then quantized. This quantization step mainly plays a scaling role. Due to the quantization rounding, the geometric information of a part of the point cloud is the same, so the decision whether to remove duplicate points is made based on the parameters. The process of quantization and removal of duplicate points is also called voxelization. The bounding box is then divided into a multi-branch tree. In the multi-tree-based geometric information coding process, the bounding box is divided into multiple sub-cubes, and the non-empty sub-cubes (containing points in the point cloud) are further divided until the leaf node obtained by division is a 1×1×1 unit cube. The division is stopped and the points in the leaf nodes are arithmetically encoded to generate a binary geometric bit stream, i.e., a geometric code stream.
[0091] During the attribute encoding process, after geometric encoding is completed and the geometric information is reconstructed, color conversion is performed to convert the color information (i.e., attribute information) from the RGB color space to the YUV color space. The reconstructed geometric information is then used to recolor the point cloud so that the unencoded attribute information corresponds to the reconstructed geometric information. Attribute encoding is primarily performed on color information. There are two main transformation methods for color information encoding: one is a lifting transformation based on LOD partitioning, and the other is a direct RAHT transformation. Both methods convert color information from the spatial domain to the frequency domain, obtaining high-frequency and low-frequency coefficients through the transformation. The coefficients are then quantized (i.e., quantized coefficients). Finally, the geometrically encoded data, which has undergone multi-tree partitioning and surface fitting, is sliced and synthesized with the attribute encoded data processed with the quantized coefficients. The vertex coordinates of each block are then encoded in sequence (i.e., arithmetic encoding), generating a binary attribute bit stream, i.e., the attribute code stream.
[0092] Figure 4 is a schematic diagram of the framework of the G-PCC decoder. As shown in Figure 4, it is applied to the point cloud decoder. For the acquired binary code stream, after acquiring the binary code stream, the geometric bit stream and the attribute bit stream in the binary code stream are independently decoded. When decoding the geometric bit stream, the geometric information of the point cloud is obtained through arithmetic decoding-synthetic multi-tree-surface fitting-reconstruction of geometry-inverse process of coordinate conversion. Here, after surface fitting, you can choose to perform the step of reconstructing geometry or the step of Scalable-reconstruction of geometry, which is mainly determined by whether the spatial scalability function is performed. In addition, when decoding the attribute bit stream, the attribute information of the point cloud is obtained through arithmetic decoding-inverse quantization-LOD-based inverse lifting or RAHT-based inverse transformation-color conversion inverse process, and the three-dimensional image model of the point cloud data to be encoded is restored based on the geometric information and attribute information.
[0093] Currently, RAHT performs top-down layer-by-layer computations for upsampling prediction. When encoding the current layer, the parent node and its neighbors, which have already been encoded in the previous layer, are used to predict the current point. However, this encoding method fails to fully exploit spatial correlation, resulting in a loss of coding efficiency.
[0094] In order to solve the above problem, in an embodiment of the present application, the decoder determines the reconstruction attribute information of the occupied neighboring nodes of the current node and the reconstruction attribute information of the occupied neighboring subnodes of the current node at the same layer; determines the attribute prediction value of the subnode of the current node based on the reconstruction attribute information of the occupied neighboring nodes and the reconstruction attribute information of the occupied neighboring subnodes of the current node at the same layer; performs RAHT transformation on the attribute prediction value to determine the first transformed coefficient, and determines the reconstruction attribute information of the subnode of the current node based on the first transformed coefficient. The encoder determines the reconstruction attribute information of the occupied neighboring nodes of the current node and the reconstruction attribute information of the occupied neighboring subnodes of the current node at the same layer; determines the attribute prediction value of the subnode of the current node based on the reconstruction attribute information of the occupied neighboring nodes and the reconstruction attribute information of the occupied neighboring subnodes of the current node at the same layer; performs RAHT transformation on the attribute prediction value to determine the first transformed coefficient, and determines the quantized coefficient residual of the subnode of the current node based on the first transformed coefficient; and writes the quantized coefficient residual into the bitstream. That is to say, in an embodiment of the present application, for the RAHT transformation process, when predicting the attribute information of the current node, the reconstructed attribute information of the occupied neighboring nodes of the current node and the reconstructed attribute information of the occupied same-layer neighboring child nodes of the child nodes of the current node can be used to determine the attribute prediction value of the child nodes of the current node, that is, on the basis of upsampling prediction, the same-layer adjacent nodes of the current node and the same-layer adjacent child nodes of the child nodes are introduced to perform prediction processing of the attribute information, that is, the parent-layer adjacent nodes and the same-layer adjacent child nodes of the child nodes of the current node are introduced to perform prediction processing of the attribute information, which improves the encoding and decoding efficiency and enhances the video compression performance.
[0095] That is to say, the point cloud encoding and decoding method proposed in the embodiment of the present application introduces neighboring nodes in the same layer for prediction based on upsampling prediction, thereby further improving the encoding efficiency.
[0096] The point cloud encoding method in the embodiment of the present application can be applied to the RAHT part shown in Figure 3. In addition, the point cloud decoding method in the embodiment of the present application can also be applied to the RAHT part shown in Figure 4. In other words, the point cloud encoding and decoding method in the embodiment of the present application can be applied to both the encoder and the decoder, or even to both the encoder and the decoder at the same time, but this embodiment of the present application does not specifically limit this.
[0097] The technical solutions in the embodiments of the present application will be described clearly and completely below in conjunction with the drawings in the embodiments of the present application.
[0098] The present application proposes a point cloud decoding method. FIG5 is a schematic diagram of an implementation flow of the point cloud decoding method proposed in the present application. As shown in FIG5 , the method for performing point cloud decoding processing by the decoder may include the following steps:
[0099] Step 101: Determine the reconstruction attribute information of the occupied neighbor nodes of the current node and the reconstruction attribute information of the occupied neighbor child nodes of the child nodes of the current node at the same layer.
[0100] In an embodiment of the present application, the reconstruction attribute information of the occupied neighboring nodes of the current node may be determined first, and the reconstruction attribute information of the occupied neighboring child nodes of the child nodes of the current node may be determined at the same time.
[0101] It can be understood that in an embodiment of the present application, the current node can be a point in the point cloud to be decoded, the current node can be a block with a RAHT transformation unit of 2×2×2, and accordingly, the child node of the current node can be a sub-block in the block with a RAHT transformation unit of 2×2×2, and the parent node of the current node is the node in the upper layer of the current node.
[0102] It is understood that in the embodiments of the present application, at the decoding end, an octree structure is first constructed from the bottom up based on the geometric information, and then parsed layer by layer starting from the root node. The transformation unit of RAHT is a 2×2×2 block, which is defined as the node to be decoded, that is, the current node.
[0103] Furthermore, in an embodiment of the present application, if the current node is a root node, the code stream is decoded to determine the quantized coefficients of the current node; the quantized coefficients are inversely quantized to determine the transformed coefficients; and the transformed coefficients are inversely transformed to determine the reconstructed attribute information of the current node.
[0104] It should be noted that in the embodiment of the application, if the current node is the root node, the quantized coefficients obtained from the decoded code stream can be inversely quantized to obtain the corresponding transformed coefficients; then the transformed coefficients are inversely transformed to determine the reconstructed attribute information of the current node.
[0105] Furthermore, in an embodiment of the present application, if the current node is not a root node, the number of occupied neighbors of the parent node of the current node and the number of occupied neighbors of the current node are determined; if the number of occupied neighbors of the parent node is greater than or equal to a first threshold, and the number of occupied neighbors of the current node is greater than or equal to a second threshold, the determination process of the reconstruction attribute information of the occupied neighbor nodes and the reconstruction attribute information of the occupied same-layer neighbor child nodes of the child nodes of the current node is executed.
[0106] It should be noted that, in the embodiment of the application, if the current node is not the root node, then the number of neighbor nodes of the current node and the parent node can be further determined, that is, the number of occupied neighbors of the parent node and the number of occupied neighbors of the current node can be determined. If the number of occupied neighbors of the parent node is greater than or equal to the first threshold, and the number of occupied neighbors of the current node is greater than or equal to the second threshold, then the process of determining the reconstruction attribute information of the occupied neighbor nodes and the reconstruction attribute information of the occupied neighbor child nodes of the current node can be executed, that is, the process of executing step 101.
[0107] Furthermore, in an embodiment of the present application, if the number of occupied neighbors of the parent node is less than the first threshold, or the number of occupied neighbors of the current node is less than the second threshold, the code stream is decoded to determine the quantized coefficients of the current node; the quantized coefficients are inversely quantized to determine the transformed coefficients; and the transformed coefficients are inversely transformed to determine the reconstructed attribute information of the current node.
[0108] It should be noted that, in the embodiment of the application, if the current node is not the root node, then the number of neighbor nodes of the parent node of the current node can be further determined, that is, the number of occupied neighbors of the parent node and the number of occupied neighbors of the current node can be determined. If the number of occupied neighbors of the parent node is less than the first threshold, or the number of occupied neighbors of the current node is less than the second threshold, then the quantized coefficients obtained from the decoded code stream can be inversely quantized to obtain the corresponding transformed coefficients; then the transformed coefficients are inversely transformed, so that the reconstructed attribute information of the current node can be determined.
[0109] It should be noted that in the embodiments of the present application, the first threshold and the second threshold can be any preset values. For example, the first threshold can be 2, that is, predictionThreshold[1] = 2, and the second threshold can be 6, that is, predictionThreshold[1] = 6. The embodiments of the present application do not limit the values of the third threshold and the fourth threshold.
[0110] Furthermore, in an embodiment of the present application, the occupied neighboring child nodes of the child nodes of the current node and the child nodes of the current node are neighboring nodes of the same layer; wherein, the neighboring nodes of the same layer are nodes of the same size.
[0111] It should be noted that in an embodiment of the present application, the occupied same-layer neighbor sub-nodes of the child nodes of the current node and the current node can be same-layer neighbor nodes, where the same-layer neighbor nodes can be understood as nodes decoded from the same layer, and the same-layer neighbor nodes can also be understood as nodes of the same size.
[0112] It can be understood that in the embodiments of the present application, the occupied neighbor node of the current node is the parent layer neighbor node of the current node (i.e., the parent layer of the child node); the occupied same-layer neighbor child node of the child node of the current node is the same-layer neighbor node of the current node (i.e., the same layer of the child node).
[0113] Furthermore, in an embodiment of the present application, the occupied neighbor nodes include: the current node, the occupied coplanar neighbor nodes and collinear neighbor nodes of the current node; the occupied same-layer neighbor sub-nodes of the child nodes of the current node include: the occupied coplanar neighbor nodes and collinear neighbor nodes of the child nodes of the current node.
[0114] It should be noted that in an embodiment of the present application, when performing prediction processing, it is necessary to first search the parent layer neighbor nodes (i.e., the neighbor nodes of the current node) and the same layer neighbor nodes (i.e., the neighbor nodes of the child nodes of the current node) of the current node, so as to determine the reconstruction attribute information of the occupied neighbor nodes and the reconstruction attribute information of the occupied same layer neighbor child nodes of the child nodes of the current node.
[0115] For example, in the embodiment of the present application, when searching for parent layer neighbor nodes of the current node, the specific search range includes: the current node (current parent layer node) and its coplanar and colinear neighbor nodes. Record the reconstruction attribute information of the existing neighbor nodes, with A recP 、A recPface 、A recPline Respectively represent the reconstruction attribute information of the current node and its coplanar and colinear neighbor nodes.
[0116] For example, in the embodiment of the present application, when searching for neighbor nodes on the same layer of the child nodes of the current node, the specific search range includes: neighbor child nodes that are coplanar and colinear with the child nodes of the current node. Record the reconstruction attribute information of the existing neighbor child nodes, with A recSface 、A recSline Respectively represent the reconstruction attribute information of neighbor nodes that are coplanar and colinear with the child nodes of the current node.
[0117] Step 102: Determine the attribute prediction value of the child node of the current node based on the reconstructed attribute information of the occupied neighbor node and the reconstructed attribute information of the occupied neighbor child nodes at the same layer of the child node of the current node.
[0118] In an embodiment of the present application, after determining the reconstruction attribute information of the occupied neighboring nodes of the current node and the reconstruction attribute information of the occupied neighboring sub-nodes of the current node's sub-nodes on the same layer, the attribute prediction value of the sub-node of the current node can be further determined based on the reconstruction attribute information of the occupied neighboring nodes and the reconstruction attribute information of the occupied neighboring sub-nodes of the current node's sub-nodes on the same layer.
[0119] That is to say, in an embodiment of the present application, for the upsampling prediction method, when predicting attribute information, not only the neighboring nodes of the same layer of the current node are used for prediction processing, but also the neighboring nodes of the same layer of the child nodes of the current node are introduced, that is, the neighboring nodes of the same layer of the current node and the neighboring nodes of the same layer of the child nodes are used at the same time to predict attribute information.
[0120] Furthermore, in an embodiment of the present application, the weight value corresponding to each of the occupied neighboring nodes and the occupied neighboring sub-nodes of the same layer of the child node of the current node is determined; and the reconstructed attribute information of the occupied neighboring node and the reconstructed attribute information of the occupied neighboring sub-nodes of the same layer of the child node of the current node are weighted according to the weight value corresponding to each node to determine the attribute prediction value of the child node of the current node.
[0121] It is understood that in embodiments of the present application, when determining the attribute prediction value of the child node of the current node, a weighted calculation may be performed based on the reconstructed attribute information of the occupied neighbor node and the reconstructed attribute information of the occupied neighbor child nodes at the same layer of the child node of the current node. The weight values corresponding to different neighbor nodes may be different, and the weight value corresponding to each neighbor node may be related to the Euclidean distance between the neighbor node and the current node.
[0122] Furthermore, in an embodiment of the present application, the weight value corresponding to each node includes: the first weight value corresponding to the current node, that is, A recP Corresponding W recP , the second weight value corresponding to the coplanar neighbor node occupied by the current node, that is, A recPface Corresponding W recPface , the third weight value corresponding to the collinear neighbor node occupied by the current node, that is, A recPline Corresponding W recPline , the fourth weight value corresponding to the coplanar neighbor node occupied by the child node of the current node, that is, A recSface Corresponding W recSface , the fifth weight value corresponding to the collinear neighbor node occupied by the child node of the current node, that is, A recSline Corresponding W recSline .
[0123] For example, in an embodiment of the present application, the attribute prediction value A of the child node of the current node is pre It can be calculated by the following formula:
[0124]
[0125] Among them, A pre is the attribute prediction value of the child node of the current node, W recP 、W recPface 、W recPline 、W recSface 、W recSline A recP 、A recPface 、A recPline 、A recSface 、A recSline The weight corresponding to each neighbor, where the weight value is related to the Euclidean distance, and n1, n2, n3, and n4 are the number of the child node's parent-layer coplanar, parent-layer collinear, same-layer coplanar, and same-layer collinear neighbors found, respectively.
[0126] Furthermore, in an embodiment of the present application, the occupied neighbor nodes and the occupied neighbor sub-nodes of the current node at the same layer are screened to determine a reference neighbor node; and the attribute prediction value of the sub-node of the current node is determined based on the reconstructed attribute information of the reference neighbor node.
[0127] It is understood that in the embodiments of the present application, after completing the search for parent-layer neighbor nodes and same-layer neighbor nodes, the parent-layer neighbor nodes and same-layer neighbor nodes may be screened and / or restricted to obtain reference neighbor nodes, which are then used to determine the attribute prediction values of the child nodes of the current node. The reference neighbor nodes may be some or all of the searched occupied neighbor nodes and the occupied same-layer neighbor child nodes of the child nodes of the current node.
[0128] Furthermore, in an embodiment of the present application, a weight value corresponding to each of the reference neighbor nodes is determined; a weighted operation is performed on the reconstructed attribute information of the reference neighbor nodes according to the weight value corresponding to each node to determine the attribute prediction value of the child node of the current node.
[0129] It is understood that in embodiments of the present application, when determining the attribute prediction value of the child node of the current node, a weighted calculation may be performed based on the reconstructed attribute information of the reference neighbor node. The weight values corresponding to different neighbor nodes may be different, and the weight value corresponding to each neighbor node may be related to the Euclidean distance between the neighbor node and the current node.
[0130] Exemplarily, in the embodiments of the present application, the specific method for weighted calculation according to the reconstruction attribute information of the reference neighbor nodes can refer to the above formula (3).
[0131] Further, in the embodiments of the present application, a first preset threshold is determined according to the reconstruction attribute information of the current node; wherein, the first preset threshold can include a first prediction threshold and a second prediction threshold; then, the occupied neighbor nodes and the occupied same-layer neighbor child nodes of the child nodes of the current node can be screened according to the first preset threshold to determine the reference neighbor nodes.
[0132] Further, in the embodiments of the present application, a first prediction threshold and a second prediction threshold are determined according to the reconstruction attribute information of the current node; the occupied neighbor nodes and the occupied same-layer neighbor child nodes of the child nodes of the current node are screened according to the first prediction threshold and the second prediction threshold to determine the reference neighbor nodes.
[0133] It should be noted that, in the embodiments of the present application, the parent-layer neighbor nodes and the same-layer neighbor nodes can be selected for screening to determine the reference neighbor nodes. Among them, when performing the screening process, a first prediction threshold limitLow and a second prediction threshold limitHigh can be determined according to the reconstruction attribute information of the parent node (that is, the first preset threshold can include limitLow and limitHigh), referring to the above formulas (1) and (2); then, the occupied neighbor nodes and the occupied same-layer neighbor child nodes of the child nodes of the current node can be screened according to the first prediction threshold and the second prediction threshold.
[0134] Exemplarily, assume that the attribute value of the occupied neighbor node (or the occupied same-layer neighbor child node of the child node of the current node) is attrnei. If limitLow < 10×attrnei < limitHigh, then it is added to the reference neighbor point set of the current child node, that is, this neighbor node is determined as the reference neighbor node; otherwise, this neighbor node is not used for prediction, that is, it is not used as the reference neighbor node.
[0135] Further, in the embodiments of the present application, among the reference neighbor nodes, the number of the occupied neighbor nodes is limited to be less than or equal to a third threshold, and / or, the number of the occupied same-layer neighbor child nodes of the child nodes of the current node is limited to be less than or equal to a fourth threshold.
[0136] That is to say, in the embodiments of the present application, the number of the occupied neighbor nodes among the reference neighbor nodes is less than or equal to the third threshold. The number of the occupied same-layer neighbor child nodes among the reference neighbor nodes is less than or equal to the fourth threshold.
[0137] It should be noted that in the embodiments of the present application, restrictions may be imposed on parent-layer neighbor nodes and same-layer neighbor nodes, wherein the number of occupied neighbor nodes and / or the number of occupied same-layer neighbor child nodes of the child nodes of the current node may be restricted.
[0138] For example, the number of occupied neighbor nodes is limited to no more than a third threshold (e.g., 6), and / or the number of occupied neighbor child nodes at the same layer of the child nodes of the current node is limited to no more than a fourth threshold (e.g., 12). This embodiment of the present application does not limit the values of the third and fourth thresholds.
[0139] Step 103: Perform RAHT transformation on the attribute prediction value to determine a first transformed coefficient, and determine the reconstructed attribute information of the child node of the current node according to the first transformed coefficient.
[0140] In an embodiment of the present application, after determining the attribute prediction value of the child node of the current node based on the reconstructed attribute information of the occupied neighboring node and the reconstructed attribute information of the occupied same-layer neighboring child node of the child node of the current node, the attribute prediction value can be further subjected to RAHT transformation to determine the first transformed coefficient, and the reconstructed attribute information of the child node of the current node can be determined based on the first transformed coefficient.
[0141] Furthermore, in an embodiment of the present application, the code stream can be decoded first to determine the quantized coefficient residuals (coefficient residual values) of the child nodes of the current node; the quantized coefficient residuals can be inversely quantized (scaling) to determine the coefficient residuals of the child nodes of the current node.
[0142] Furthermore, in an embodiment of the present application, when determining the reconstruction attribute information of the child node of the current node based on the first transformed coefficient, the second transformed coefficient of the child node of the current node can be determined based on the first transformed coefficient and the coefficient residual; the second transformed coefficient is inversely transformed to determine the reconstruction attribute information of the child node of the current node.
[0143] Furthermore, in an embodiment of the present application, after the reconstruction attribute information of the child nodes of the current node is determined according to the first transformed coefficient, the reconstruction attribute information of the current node can be further determined according to the reconstruction attribute information of all the child nodes of the current node.
[0144] It should be noted that, in the embodiment of the present application, the method for the decoder to perform point cloud decoding processing may include the following steps:
[0145] Step 104: If the current node is not a root node, determine the number of occupied neighbors of the parent node of the current node and the number of occupied neighbors of the current node.
[0146] Step 105: If the number of occupied neighbors of the parent node is greater than or equal to the first threshold, and the number of occupied neighbors of the current node is greater than or equal to the second threshold, then determine the reconstruction attribute information of the occupied neighbor nodes of the current node and the reconstruction attribute information of the occupied neighbor child nodes of the current node at the same layer.
[0147] Step 102: Determine the attribute prediction value of the child node of the current node based on the reconstructed attribute information of the occupied neighbor node and the reconstructed attribute information of the occupied neighbor child nodes at the same layer of the child node of the current node.
[0148] Step 103: Perform RAHT transformation on the attribute prediction value to determine a first transformed coefficient, and determine the reconstructed attribute information of the child node of the current node according to the first transformed coefficient.
[0149] In an embodiment of the present application, when decoding the current node, it is possible to first determine whether the current node is a root node. If the current node is not a root node, the number of occupied neighbors of the parent node of the current node and the number of occupied neighbors of the current node can be further determined. Thus, it is possible to determine whether to execute the method of steps 102 and 103 based on the number of occupied neighbors of the parent node of the current node and the number of occupied neighbors of the current node, that is, to further determine whether to introduce the same-layer adjacent nodes of the current node and the same-layer adjacent child nodes of the child nodes to perform prediction processing of the attribute information of the current node based on the number of occupied neighbors of the parent node of the current node and the number of occupied neighbors of the current node.
[0150] Furthermore, in an embodiment of the present application, after determining the number of occupied neighbors of the parent node of the current node and the number of occupied neighbors of the current node, if the number of occupied neighbors of the parent node is greater than or equal to the first threshold, and the number of occupied neighbors of the current node is greater than or equal to the second threshold, then it can be determined to introduce the same-layer adjacent nodes of the current node and the same-layer adjacent sub-nodes of the sub-node to perform prediction processing of the attribute information of the current node. Therefore, it is necessary to further determine the reconstructed attribute information of the occupied neighbor nodes of the current node and the reconstructed attribute information of the occupied same-layer neighbor sub-nodes of the sub-nodes of the current node, and then determine the attribute prediction value of the sub-node of the current node based on the reconstructed attribute information of the occupied neighbor nodes and the reconstructed attribute information of the occupied same-layer neighbor sub-nodes of the sub-nodes of the current node. Finally, perform RAHT transformation on the attribute prediction value to determine the first transformed coefficient, and determine the reconstructed attribute information of the sub-node of the current node based on the first transformed coefficient.
[0151] Furthermore, in an embodiment of the present application, if the current node is a root node, it can be directly determined that there is no need to introduce the adjacent nodes of the same layer of the current node and the adjacent sub-nodes of the same layer of the sub-node to perform prediction processing on the attribute information of the current node, but instead directly perform inverse quantization processing on the quantized coefficients obtained from the decoded code stream to obtain the corresponding transformed coefficients; then perform inverse transformation processing on the transformed coefficients, so as to determine the reconstructed attribute information of the current node.
[0152] Furthermore, in an embodiment of the present application, after determining the number of occupied neighbors of the parent node of the current node and the number of occupied neighbors of the current node, if the number of occupied neighbors of the parent node is less than the first threshold, or the number of occupied neighbors of the current node is less than the second threshold, then it can be determined that there is no need to introduce the same-layer adjacent nodes of the current node and the same-layer adjacent child nodes of the child node to perform prediction processing of the attribute information of the current node, but instead directly perform inverse quantization processing on the quantized coefficients obtained from the decoded code stream to obtain the corresponding transformed coefficients; then perform inverse transformation processing on the transformed coefficients, so as to determine the reconstructed attribute information of the current node.
[0153] The embodiment of the present application discloses a point cloud decoding method, wherein the decoder determines the reconstruction attribute information of the occupied neighbor nodes of the current node and the reconstruction attribute information of the occupied neighbor subnodes of the current node at the same layer; determines the attribute prediction value of the subnode of the current node based on the reconstruction attribute information of the occupied neighbor nodes and the reconstruction attribute information of the occupied neighbor subnodes of the current node at the same layer; performs RAHT transformation on the attribute prediction value to determine the first transformed coefficient, and determines the reconstruction attribute information of the subnode of the current node based on the first transformed coefficient. That is, in the embodiment of the present application, for the RAHT transformation process, when predicting the attribute information of the current node, the reconstruction attribute information of the occupied neighbor nodes of the current node and the reconstruction attribute information of the occupied neighbor subnodes of the current node at the same layer of the subnode can be used to determine the attribute prediction value of the subnode of the current node, that is, on the basis of upsampling prediction, the neighboring nodes at the same layer of the current node and the neighboring subnodes at the same layer of the subnode ...
[0154] Based on the above embodiment, another embodiment of the present application proposes a point cloud encoding method. FIG6 is a schematic diagram of an implementation flow of the point cloud encoding method proposed in the embodiment of the present application. As shown in FIG6 , the method for performing point cloud encoding processing by the encoder may include the following steps:
[0155] Step 201: Determine the reconstruction attribute information of the occupied neighbor nodes of the current node and the reconstruction attribute information of the occupied neighbor child nodes of the child nodes of the current node at the same layer.
[0156] In an embodiment of the present application, the reconstruction attribute information of the occupied neighboring nodes of the current node may be determined first, and the reconstruction attribute information of the occupied neighboring child nodes of the child nodes of the current node may be determined at the same time.
[0157] It can be understood that in an embodiment of the present application, the current node can be a point in the point cloud to be encoded, the current node can be a block with a RAHT transformation unit of 2×2×2, and accordingly, the child node of the current node can be a sub-block in the block with a RAHT transformation unit of 2×2×2, and the parent node of the current node is the node in the upper layer of the current node.
[0158] It is understood that in the embodiments of the present application, at the encoding end, an octree structure is first constructed from the bottom up based on the geometric information, and then parsed layer by layer starting from the root node. The RAHT transform unit is a 2×2×2 block, which is defined as the node to be encoded, that is, the current node.
[0159] Furthermore, in an embodiment of the present application, if the current node is a root node, a RAHT transform is performed on the reconstructed attribute information of the current node to determine the transformed coefficients; the transformed coefficients are quantized to determine the quantized coefficients; and the quantized coefficients are written into the bitstream.
[0160] It should be noted that in an embodiment of the application, if the current node is a root node, then the reconstructed attribute information of the current node can be subjected to RAHT transformation to determine the transformed coefficients; the transformed coefficients can be quantized to determine the quantized coefficients; and the quantized coefficients can be written into the bitstream.
[0161] Furthermore, in an embodiment of the present application, if the current node is not a root node, the number of occupied neighbors of the parent node of the current node and the number of occupied neighbors of the current node are determined; if the number of occupied neighbors of the parent node is greater than or equal to a first threshold, and the number of occupied neighbors of the current node is greater than or equal to a second threshold, the determination process of the reconstruction attribute information of the occupied neighbor nodes and the reconstruction attribute information of the occupied same-layer neighbor child nodes of the child nodes of the current node is executed.
[0162] It should be noted that, in the embodiment of the application, if the current node is not the root node, then the number of neighbor nodes of the current node and the parent node can be further determined, that is, the number of occupied neighbors of the parent node and the number of occupied neighbors of the current node can be determined. If the number of occupied neighbors of the parent node is greater than or equal to the first threshold, and the number of occupied neighbors of the current node is greater than or equal to the second threshold, then the process of determining the reconstruction attribute information of the occupied neighbor nodes and the reconstruction attribute information of the occupied same-layer neighbor child nodes of the child nodes of the current node can be executed, that is, the process of executing step 201.
[0163] Furthermore, in an embodiment of the present application, if the number of occupied neighbors of the parent node is less than the first threshold, or the number of occupied neighbors of the current node is less than the second threshold, the reconstructed attribute information of the current node is subjected to RAHT transformation to determine the transformed coefficients; the transformed coefficients are quantized to determine the quantized coefficients; and the quantized coefficients are written into the bitstream.
[0164] It should be noted that, in an embodiment of the application, if the current node is not a root node, then the number of neighbor nodes of the parent node of the current node can be further determined, that is, the number of occupied neighbors of the parent node and the number of occupied neighbors of the current node can be determined. If the number of occupied neighbors of the parent node is less than the first threshold, or the number of occupied neighbors of the current node is less than the second threshold, then the reconstructed attribute information of the current node can be RAHT transformed to determine the transformed coefficients; the transformed coefficients can be quantized to determine the quantized coefficients; and the quantized coefficients can be written into the code stream.
[0165] It should be noted that in the embodiments of the present application, the first threshold and the second threshold can be any preset values. For example, the first threshold can be 2, that is, predictionThreshold[1] = 2, and the second threshold can be 6, that is, predictionThreshold[1] = 6. The embodiments of the present application do not limit the values of the third threshold and the fourth threshold.
[0166] Furthermore, in an embodiment of the present application, the occupied neighboring child nodes of the child nodes of the current node and the child nodes of the current node are neighboring nodes of the same layer; wherein, the neighboring nodes of the same layer are nodes of the same size.
[0167] It should be noted that in an embodiment of the present application, the occupied same-layer neighbor child nodes of the child nodes of the current node and the current node can be same-layer neighbor nodes, where the same-layer neighbor nodes can be understood as nodes of the same layer, and the same-layer neighbor nodes can also be understood as nodes of the same size.
[0168] It can be understood that in the embodiments of the present application, the occupied neighbor node of the current node is the parent layer neighbor node of the current node (i.e., the parent layer of the child node); the occupied same-layer neighbor child node of the child node of the current node is the same-layer neighbor node of the current node (i.e., the same layer of the child node).
[0169] Furthermore, in an embodiment of the present application, the occupied neighbor nodes include: the current node, the occupied coplanar neighbor nodes and collinear neighbor nodes of the current node; the occupied same-layer neighbor sub-nodes of the child nodes of the current node include: the occupied coplanar neighbor nodes and collinear neighbor nodes of the child nodes of the current node.
[0170] It should be noted that in an embodiment of the present application, when performing prediction processing, it is necessary to first search the parent layer neighbor nodes (i.e., the neighbor nodes of the current node) and the same layer neighbor nodes (i.e., the neighbor nodes of the child nodes of the current node) of the current node, so as to determine the reconstruction attribute information of the occupied neighbor nodes and the reconstruction attribute information of the occupied same layer neighbor child nodes of the child nodes of the current node.
[0171] For example, in the embodiment of the present application, when searching for parent layer neighbor nodes of the current node, the specific search range includes: the current node (current parent layer node) and its coplanar and colinear neighbor nodes. Record the reconstruction attribute information of the existing neighbor nodes, with A recP 、A recPface 、A recPline Respectively represent the reconstruction attribute information of the current node and its coplanar and colinear neighbor nodes.
[0172] For example, in the embodiment of the present application, when searching for neighbor nodes on the same layer of the child nodes of the current node, the specific search range includes: neighbor child nodes that are coplanar and colinear with the child nodes of the current node. Record the reconstruction attribute information of the existing neighbor nodes, with A recSface 、A recSline Respectively represent the reconstruction attribute information of neighbor nodes that are coplanar and colinear with the child nodes of the current node.
[0173] Step 202: Determine the attribute prediction value of the child node of the current node according to the reconstructed attribute information of the occupied neighbor node and the reconstructed attribute information of the occupied neighbor child nodes at the same layer of the child node of the current node.
[0174] In an embodiment of the present application, in an embodiment of the present application, after determining the reconstruction attribute information of the occupied neighboring nodes of the current node and the reconstruction attribute information of the occupied neighboring sub-nodes of the current node's sub-nodes on the same layer, the attribute prediction value of the sub-node of the current node can be further determined based on the reconstruction attribute information of the occupied neighboring nodes and the reconstruction attribute information of the occupied neighboring sub-nodes of the current node's sub-nodes on the same layer.
[0175] That is to say, in an embodiment of the present application, for the upsampling prediction method, when predicting attribute information, not only the neighboring nodes of the same layer of the current node are used for prediction processing, but also the neighboring nodes of the same layer of the child nodes of the current node are introduced, that is, the neighboring nodes of the same layer of the current node and the neighboring nodes of the same layer of the child nodes are used at the same time to predict attribute information.
[0176] Furthermore, in an embodiment of the present application, the weight value corresponding to each of the occupied neighboring nodes and the occupied neighboring sub-nodes of the same layer of the child node of the current node is determined; and the reconstructed attribute information of the occupied neighboring node and the reconstructed attribute information of the occupied neighboring sub-nodes of the same layer of the child node of the current node are weighted according to the weight value corresponding to each node to determine the attribute prediction value of the child node of the current node.
[0177] It is understood that in embodiments of the present application, when determining the attribute prediction value of the child node of the current node, a weighted calculation may be performed based on the reconstructed attribute information of the occupied neighbor node and the reconstructed attribute information of the occupied neighbor child nodes at the same layer of the child node of the current node. The weight values corresponding to different neighbor nodes may be different, and the weight value corresponding to each neighbor node may be related to the Euclidean distance between the neighbor node and the current node.
[0178] Furthermore, in an embodiment of the present application, the weight value corresponding to each node includes: the first weight value corresponding to the current node, that is, A recP Corresponding W recP , the second weight value corresponding to the coplanar neighbor node occupied by the current node, that is, A recPface Corresponding W recPface , the third weight value corresponding to the collinear neighbor node occupied by the current node, that is, A recPline Corresponding W recPline , the fourth weight value corresponding to the coplanar neighbor node occupied by the child node of the current node, that is, A recSface Corresponding W recSface , the fifth weight value corresponding to the collinear neighbor node occupied by the child node of the current node, that is, A recSline Corresponding W recSline .
[0179] For example, in an embodiment of the present application, the attribute prediction value A of the child node of the current node is pre It can be calculated by the above formula (3). Where A pre is the attribute prediction value of the child node of the current node, W recP 、W recPface 、W recPline 、W recSface 、W recSline A recP 、A recPface 、A recPline 、A recSface 、A recSline The weight corresponding to each neighbor, where the weight value is related to the Euclidean distance, and n1, n2, n3, and n4 are the number of the child node's parent-layer coplanar, parent-layer collinear, same-layer coplanar, and same-layer collinear neighbors found, respectively.
[0180] Furthermore, in an embodiment of the present application, the occupied neighbor nodes and the occupied neighbor sub-nodes of the current node at the same layer are screened to determine a reference neighbor node; and the attribute prediction value of the sub-node of the current node is determined based on the reconstructed attribute information of the reference neighbor node.
[0181] It is understood that in the embodiments of the present application, after completing the search for parent-layer neighbor nodes and same-layer neighbor nodes, the parent-layer neighbor nodes and same-layer neighbor nodes may be screened and / or restricted to obtain reference neighbor nodes, which are then used to determine the attribute prediction values of the child nodes of the current node. The reference neighbor nodes may be some or all of the searched occupied neighbor nodes and the occupied same-layer neighbor child nodes of the child nodes of the current node.
[0182] Furthermore, in an embodiment of the present application, a weight value corresponding to each of the reference neighbor nodes is determined; a weighted operation is performed on the reconstructed attribute information of the reference neighbor nodes according to the weight value corresponding to each node to determine the attribute prediction value of the child node of the current node.
[0183] It is understood that in embodiments of the present application, when determining the attribute prediction value of the child node of the current node, a weighted calculation may be performed based on the reconstructed attribute information of the reference neighbor node. The weight values corresponding to different neighbor nodes may be different, and the weight value corresponding to each neighbor node may be related to the Euclidean distance between the neighbor node and the current node.
[0184] For example, in the embodiment of the present application, the specific method of performing weighted calculation based on the reconstruction attribute information of the reference neighbor node can refer to the above formula (3).
[0185] Further, in the embodiments of the present application, a first preset threshold is determined according to the reconstruction attribute information of the current node; wherein, the first preset threshold may include a first prediction threshold and a second prediction threshold; then, screening processing may be performed on the occupied neighbor nodes and the occupied same-layer neighbor child nodes of the child nodes of the current node according to the first preset threshold to determine reference neighbor nodes.
[0186] Further, in the embodiments of the present application, a first prediction threshold and a second prediction threshold are determined according to the reconstruction attribute information of the current node; screening processing is performed on the occupied neighbor nodes and the occupied same-layer neighbor child nodes of the child nodes of the current node according to the first prediction threshold and the second prediction threshold to determine the reference neighbor nodes.
[0187] It should be noted that, in the embodiments of the present application, screening may be performed on the parent-layer neighbor nodes and the same-layer neighbor nodes to determine reference neighbor nodes. Among them, when performing screening processing, a first prediction threshold limitLow and a second prediction threshold limitHigh may be determined according to the reconstruction attribute information of the parent node (that is, the first preset threshold may include limitLow and limitHigh), referring to the above formulas (1) and (2); then, screening processing may be performed on the occupied neighbor nodes and the occupied same-layer neighbor child nodes of the child nodes of the current node according to the first prediction threshold and the second prediction threshold.
[0188] Exemplarily, assume that the attribute value of the occupied neighbor node (or the occupied same-layer neighbor child node of the child node of the current node) is attrnei. If limitLow < 10 × attrnei < limitHigh, then it is added to the reference neighbor point set of the current child node, that is, this neighbor node is determined as a reference neighbor node; otherwise, this neighbor node is not used for prediction, that is, it is not used as a reference neighbor node.
[0189] Further, in the embodiments of the present application, among the reference neighbor nodes, the number of the occupied neighbor nodes is restricted to be less than or equal to a third threshold, and / or, the number of the occupied same-layer neighbor child nodes of the child nodes of the current node is restricted to be less than or equal to a fourth threshold.
[0190] That is to say, in the embodiments of the present application, the number of the occupied neighbor nodes among the reference neighbor nodes is less than or equal to the third threshold. The number of the occupied same-layer neighbor child nodes among the reference neighbor nodes is less than or equal to the fourth threshold.
[0191] It should be noted that in the embodiments of the present application, restrictions may be imposed on parent-layer neighbor nodes and same-layer neighbor nodes, wherein the number of occupied neighbor nodes and / or the number of occupied same-layer neighbor child nodes of the child nodes of the current node may be restricted.
[0192] For example, the number of occupied neighbor nodes is limited to no more than a third threshold (e.g., 6), and / or the number of occupied neighbor child nodes at the same layer of the child nodes of the current node is limited to no more than a fourth threshold (e.g., 12). This embodiment of the present application does not limit the values of the third and fourth thresholds.
[0193] Step 203: Perform RAHT transformation on the attribute prediction value to determine a first transformed coefficient, and determine the quantized coefficient residual of the child node of the current node based on the first transformed coefficient.
[0194] In an embodiment of the present application, after determining the attribute prediction value of the child node of the current node based on the reconstructed attribute information of the occupied neighboring node and the reconstructed attribute information of the occupied same-layer neighboring child node of the child node of the current node, the attribute prediction value can be further subjected to RAHT transformation to determine the first transformed coefficient, and the quantized coefficient residual (coefficient residual value) of the child node of the current node can be determined based on the first transformed coefficient.
[0195] Furthermore, in an embodiment of the present application, a RAHT transform is performed on the original attribute information of the child node of the current node to determine the second transformed coefficient; the coefficient residual between the first transformed coefficient and the second transformed coefficient is determined; and the coefficient residual is quantized to determine the quantized coefficient residual.
[0196] Step 204: Write the quantized coefficient residual into the bitstream.
[0197] In an embodiment of the present application, after determining the quantized coefficient residual of the child node of the current node according to the first transformed coefficient, the quantized coefficient residual can be written into the bitstream.
[0198] Furthermore, in an embodiment of the present application, the method for performing point cloud encoding processing by the encoder may include the following steps:
[0199] Step 205: If the current node is not a root node, determine the number of occupied neighbors of the parent node of the current node and the number of occupied neighbors of the current node.
[0200] Step 206: If the number of occupied neighbors of the parent node is greater than or equal to the first threshold, and the number of occupied neighbors of the current node is greater than or equal to the second threshold, then determine the reconstruction attribute information of the occupied neighbor nodes of the current node and the reconstruction attribute information of the occupied neighbor child nodes of the current node at the same layer.
[0201] Step 202: Determine the attribute prediction value of the child node of the current node according to the reconstructed attribute information of the occupied neighbor node and the reconstructed attribute information of the occupied neighbor child nodes at the same layer of the child node of the current node.
[0202] Step 203: Perform RAHT transformation on the attribute prediction value to determine a first transformed coefficient, and determine the quantized coefficient residual of the child node of the current node based on the first transformed coefficient.
[0203] Step 204: Write the quantized coefficient residual into the bitstream.
[0204] In an embodiment of the present application, when encoding the current node, it is possible to first determine whether the current node is a root node. If the current node is not a root node, the number of occupied neighbors of the parent node of the current node and the number of occupied neighbors of the current node can be further determined. Thus, it is possible to determine whether to execute the method of steps 202 to 204 based on the number of occupied neighbors of the parent node of the current node and the number of occupied neighbors of the current node, that is, to further determine whether to introduce the same-layer adjacent nodes of the current node and the same-layer adjacent child nodes of the child node to perform prediction processing of the attribute information of the current node based on the number of occupied neighbors of the parent node of the current node and the number of occupied neighbors of the current node.
[0205] Furthermore, in an embodiment of the present application, after determining the number of occupied neighbors of the parent node of the current node and the number of occupied neighbors of the current node, if the number of occupied neighbors of the parent node is greater than or equal to the first threshold, and the number of occupied neighbors of the current node is greater than or equal to the second threshold, then it can be determined to introduce the same-layer adjacent nodes of the current node and the same-layer adjacent sub-nodes of the sub-node to perform prediction processing of the attribute information of the current node. Therefore, it is necessary to further determine the reconstructed attribute information of the occupied neighbor nodes of the current node and the reconstructed attribute information of the occupied same-layer neighbor sub-nodes of the sub-nodes of the current node, and then determine the attribute prediction value of the sub-node of the current node based on the reconstructed attribute information of the occupied neighbor nodes and the reconstructed attribute information of the occupied same-layer neighbor sub-nodes of the sub-nodes of the current node, and then perform RAHT transformation on the attribute prediction value to determine the first transformed coefficient, and determine the quantized coefficient residual of the sub-node of the current node based on the first transformed coefficient, and finally write the quantized coefficient residual into the bitstream.
[0206] Furthermore, in an embodiment of the present application, if the current node is a root node, it can be directly determined that there is no need to introduce the adjacent nodes of the same layer of the current node and the adjacent sub-nodes of the same layer of the sub-node to perform prediction processing on the attribute information of the current node, but instead directly perform RAHT transformation on the reconstructed attribute information of the current node to determine the transformed coefficients; perform quantization processing on the transformed coefficients to determine the quantized coefficients; and write the quantized coefficients into the bitstream.
[0207] Furthermore, in an embodiment of the present application, after determining the number of occupied neighbors of the parent node of the current node and the number of occupied neighbors of the current node, if the number of occupied neighbors of the parent node is less than the first threshold, or the number of occupied neighbors of the current node is less than the second threshold, then it can be determined that there is no need to introduce the same-layer adjacent nodes of the current node and the same-layer adjacent child nodes of the child node to perform prediction processing of the attribute information of the current node, but instead directly perform RAHT transformation on the reconstructed attribute information of the current node to determine the transformed coefficients; perform quantization processing on the transformed coefficients to determine the quantized coefficients; and write the quantized coefficients into the bitstream.
[0208] An embodiment of the present application discloses a point cloud encoding method, in which an encoder determines reconstruction attribute information of an occupied neighboring node of a current node and reconstruction attribute information of an occupied neighboring sub-node of a sub-node of the current node at the same layer; determines an attribute prediction value of a sub-node of the current node based on the reconstruction attribute information of the occupied neighboring node and the reconstruction attribute information of the occupied neighboring sub-node of the current node at the same layer; performs a RAHT transform on the attribute prediction value to determine a first transformed coefficient, and determines a quantized coefficient residual of a sub-node of the current node based on the first transformed coefficient; and writes the quantized coefficient residual into a bitstream. That is to say, in an embodiment of the present application, for the RAHT transformation process, when predicting the attribute information of the current node, the reconstructed attribute information of the occupied neighboring nodes of the current node and the reconstructed attribute information of the occupied same-layer neighboring child nodes of the child nodes of the current node can be used to determine the attribute prediction value of the child nodes of the current node, that is, on the basis of upsampling prediction, the same-layer adjacent nodes of the current node and the same-layer adjacent child nodes of the child nodes are introduced to perform prediction processing of the attribute information, that is, the parent-layer adjacent nodes and the same-layer adjacent child nodes of the child nodes of the current node are introduced to perform prediction processing of the attribute information, which improves the encoding and decoding efficiency and enhances the video compression performance.
[0209] Based on the above embodiments, another embodiment of the present application proposes a point cloud encoding method and a point cloud decoding method.
[0210] At the encoding end, RAHT first constructs an octree structure from the bottom up based on the geometric information, and then parses it layer by layer starting from the root node. The RAHT transform unit is a 2×2×2 block, and this block is defined as the node to be encoded, that is, the current node (the current parent node). The current node can be a 2×2×2 block with a RAHT transform unit, and the child node of the current node can be a sub-block in the 2×2×2 block with a RAHT transform unit.
[0211] If the current node is a root node, no prediction is performed, and RAHT is performed directly on the attribute information, and then the transformed DC coefficient (direct current coefficient) and AC coefficient (alternating current coefficient) (the transformed coefficient) are quantized and entropy coded.
[0212] If the current node is not a root node, the number of neighbors of the parent node and the current node (the number of occupied neighbors of the parent node and the number of occupied neighbors of the current node) is used to determine whether to predict the current node. If prediction is performed, neighbor search and weighted prediction are performed on each child node of the current node to obtain the attribute prediction value of the child node of the current node. RAHT is then performed on the predicted value and the original value of the attribute respectively, and finally the residual of the AC coefficients (the first transformed coefficient and the second transformed coefficient) of the two are quantized and entropy coded. If prediction is not performed, RAHT is directly performed on the original attribute value of the current node, and the AC coefficients (the transformed coefficients) are quantized and entropy coded.
[0213] In one embodiment, Figure 7 is a RAHT encoding flow chart. As shown in Figure 7, at the encoding end, RAHT first constructs an octree structure from the bottom up based on geometric information, and then parses it layer by layer starting from the root node. The RAHT transform unit is a 2×2×2 block, which is defined as the node to be encoded, i.e., the current node.
[0214] If the node to be coded is a root node, no prediction is performed, and RAHT is performed directly on the attribute information. Then, the transformed DC coefficient (direct current coefficient) and AC coefficient (alternating current coefficient) are quantized and entropy coded.
[0215] If the node to be coded is not the root node, the decision on whether to predict the node to be coded is made based on the parent node and the number of neighbors of the node to be coded. If prediction is performed, neighbor search and weighted prediction are performed on each occupied child node of the node to be coded, so as to obtain the attribute prediction value of the corresponding child node. RAHT is then performed on the predicted value and the original value of the attribute respectively, and the residual of the AC coefficients of the two is finally quantized and entropy coded. If prediction is not performed, RAHT is directly performed on the original attribute value, and the AC coefficients are quantized and entropy coded.
[0216] Furthermore, the point cloud decoding method proposed in the embodiment of the present application is processed in the same way at the decoding end as at the encoding end. First, an octree structure is constructed from the bottom up based on the geometric information, and then parsed layer by layer starting from the root node. The transformation unit of RAHT is a 2×2×2 block, and the block is defined as the node to be decoded, that is, the current node (current parent layer node). The current node can be a block with a transformation unit of RAHT of 2×2×2, and the child node of the current node can be a sub-block in a block with a transformation unit of RAHT of 2×2×2.
[0217] If the current node is the root node, no prediction is performed. After decoding the bitstream, the reconstruction coefficients are obtained by inverse quantization. Then, the reconstructed DC and AC coefficients (the transformed coefficients) are inversely transformed to obtain attribute reconstruction information (reconstructed attribute information).
[0218] If the current node is not a root node, the number of neighbors of the parent node and the current node (the number of occupied neighbors of the parent node and the number of occupied neighbors of the current node) is used to determine whether to predict the current node. If prediction is performed, neighbor search and weighted prediction are performed on each child node of the current node. The AC coefficient of the predicted value (the first transformed coefficient) is obtained through transformation, and is added to the reconstructed AC coefficient residual (coefficient residual) obtained by decoding to obtain the reconstructed AC coefficient corresponding to the original attribute value (the second transformed coefficient). Finally, an inverse transformation is performed to obtain the attribute reconstruction information. If prediction is not performed, the decoded reconstruction coefficient (the transformed coefficient) is directly inversely transformed to obtain the attribute reconstruction information.
[0219] In one embodiment, Figure 8 is a RAHT decoding flow chart. As shown in Figure 8, at the decoding end, an octree structure is first constructed from the bottom up based on the geometric information, and then parsed layer by layer starting from the root node. The RAHT transform unit is a 2×2×2 block, which is defined as the node to be decoded, that is, the current node (current parent layer node). Secondly, after decoding the bitstream, it is dequantized to obtain the reconstructed coefficients (coefficient residuals).
[0220] If the node to be decoded is the root node, no prediction is performed, and the reconstructed DC and AC coefficients are directly inversely transformed to obtain attribute reconstruction information.
[0221] If the node to be decoded is not the root node, the number of neighbors of the grandparent node and the parent node is used to determine whether to predict the current node to be decoded.
[0222] If prediction is performed, neighbor search and weighted prediction are performed on each occupied child node of the current node to be decoded. The AC coefficients of the predicted values are transformed and added to the residual of the reconstructed AC coefficients obtained by decoding to obtain the reconstructed AC coefficients corresponding to the original attribute values. Finally, an inverse transformation is performed to obtain the attribute reconstruction information. If prediction is not performed, the decoded reconstruction coefficients are directly inversely transformed to obtain the attribute reconstruction information.
[0223] Furthermore, the present embodiment proposes a new prediction scheme. Based on upsampling prediction, it introduces prediction using neighboring nodes on the same layer. Figure 9 is a schematic diagram of the prediction method. As shown in Figure 9, the prediction process mainly includes the following steps: parent layer neighbor search, same layer neighbor search, neighbor screening, and weighted prediction.
[0224] Among them, when searching for parent layer neighbors (parent layer neighbor nodes), the parent layer neighbor search is performed on the current layer node to be encoded (or the node to be decoded, that is, the current node), and the scope includes: the current node (current parent layer node) and its coplanar and colinear neighbor nodes. Record the reconstruction attribute information of the existing neighbor nodes, with A recP 、A recPface 、A recPline Respectively represent the reconstruction attribute information of the current parent node and its coplanar and colinear neighbor nodes.
[0225] Furthermore, when searching for neighbors in the same layer (neighbor nodes in the same layer), the neighbor nodes in the current layer to be coded are searched in the same layer, and the range includes: neighbor nodes in the same layer that have been coded (or decoded) and are coplanar or colinear with the corresponding child nodes (current nodes) in the node to be coded. Record the reconstruction attribute information of the existing neighbor nodes, and use A recSface 、A recSline Represents the reconstruction attribute information of coplanar and collinear neighbor nodes respectively.
[0226] Furthermore, when filtering neighbors, two prediction thresholds limitLow and limitHigh are set according to the current parent node attribute value to filter the neighbors found by searching the parent layer and the same layer, or to limit the number of neighbors to improve the accuracy of the prediction.
[0227] Furthermore, during weighted prediction, the filtered neighbors are used to perform weighted prediction on the current node (or each child node belonging to the same transform unit block as the current node). The weight value of each neighbor is related to the Euclidean distance. The specific calculation formula for the attribute prediction value is as shown in Formula (3) above.
[0228] Among them, A pre is the attribute prediction value of the child node of the current node, W recP 、W recPface 、W recPline 、WrecSface 、W recSline A recP 、A recPface 、A recPline 、A recSface 、A recSline The weight corresponding to each neighbor, where the weight value is related to the Euclidean distance, and n1, n2, n3, and n4 are the number of the child node's parent-layer coplanar, parent-layer collinear, same-layer coplanar, and same-layer collinear neighbors found, respectively.
[0229] It is understandable that the point cloud encoding and decoding method proposed in the embodiment of this application can fully utilize the spatial correlation of the point cloud and introduce the same-layer neighbors to predict the current node when predicting attribute information, thereby further improving the coding efficiency of G-PCC.
[0230] It should be noted that BD-AttrRate under the condition of lossy compression of attribute information indicates that, compared with common encoding and decoding methods, while obtaining the same encoding quality, the encoding bit rate of the point cloud encoding and decoding method proposed in the embodiment of the present application is saved (BD-Rate is a negative value) or increased (BD-Rate is a positive value) by a percentage compared with the encoding bit rate of the prior art as shown below.
[0231] For example, in the embodiments of the present application, W recP 、W recPface 、W recPline 、W recSface 、W recSline They are 4, 2, 0, 2, 0 respectively, that is, the first weight value, the second weight value, the third weight value, the fourth weight value, and the fifth weight value are 4, 2, 0, 2, 0 respectively. The performance gains are shown in Table 1 and Table 2.
[0232] Table 1 BD-AttrRate under geometric lossless and attribute lossy conditions
[0233]
[0234] Table 2 BD-AttrRate under geometric lossy and attribute lossy conditions
[0235]
[0236] For example, in the embodiments of the present application, W recP 、W recPface 、W recPline 、W recSface 、W recSline They are 4, 2, 1, 2, and 1 respectively. That is, the first weight value, the second weight value, the third weight value, the fourth weight value, and the fifth weight value are 4, 2, 1, 2, and 1 respectively. The performance gains are shown in Tables 3 and 4.
[0237] Table 3 BD-AttrRate under geometric lossless and attribute lossy conditions
[0238]
[0239] Table 4 BD-AttrRate under geometric lossy and attribute lossy conditions
[0240]
[0241] For example, in the embodiments of the present application, W recP 、W recPface 、W recPline 、W recSface 、W recSline They are 4, 2, 1, 2, and 1 respectively, that is, the first weight value, the second weight value, the third weight value, the fourth weight value, and the fifth weight value are 4, 2, 1, 2, and 1 respectively. At the same time, the number of neighbors participating in the prediction is limited, for example, n1+n3≤6, and / or, n2+n4≤12, that is, a maximum of 6 coplanar neighbors are used, and a maximum of 12 collinear neighbors are used (neighbors on the same layer can be used preferentially). The performance gains are shown in Tables 5 and 6.
[0242] Table 5 BD-AttrRate under geometric lossless and attribute lossy conditions
[0243]
[0244] Table 6 BD-AttrRate under geometric lossy and attribute lossy conditions
[0245]
[0246] The embodiment of the present application discloses a point cloud encoding and decoding method, wherein the decoder determines the reconstruction attribute information of the occupied neighboring nodes of the current node and the reconstruction attribute information of the occupied neighboring subnodes of the current node at the same layer; determines the attribute prediction value of the subnode of the current node based on the reconstruction attribute information of the occupied neighboring nodes and the reconstruction attribute information of the occupied neighboring subnodes of the current node at the same layer; performs RAHT transformation on the attribute prediction value to determine the first transformed coefficient, and determines the reconstruction attribute information of the subnode of the current node based on the first transformed coefficient. The encoder determines the reconstruction attribute information of the occupied neighboring nodes of the current node and the reconstruction attribute information of the occupied neighboring subnodes of the current node at the same layer; determines the attribute prediction value of the subnode of the current node based on the reconstruction attribute information of the occupied neighboring nodes and the reconstruction attribute information of the occupied neighboring subnodes of the current node at the same layer; performs RAHT transformation on the attribute prediction value to determine the first transformed coefficient, and determines the quantized coefficient residual of the subnode of the current node based on the first transformed coefficient; and writes the quantized coefficient residual into the bitstream. That is to say, in an embodiment of the present application, for the RAHT transformation process, when predicting the attribute information of the current node, the reconstructed attribute information of the occupied neighboring nodes of the current node and the reconstructed attribute information of the occupied same-layer neighboring child nodes of the child nodes of the current node can be used to determine the attribute prediction value of the child nodes of the current node, that is, on the basis of upsampling prediction, the same-layer adjacent nodes of the current node and the same-layer adjacent child nodes of the child nodes are introduced to perform prediction processing of the attribute information, that is, the parent-layer adjacent nodes and the same-layer adjacent child nodes of the child nodes of the current node are introduced to perform prediction processing of the attribute information, which improves the encoding and decoding efficiency and enhances the video compression performance.
[0247] Based on the above embodiments, another embodiment of the present application proposes a point cloud encoding method and a point cloud decoding method.
[0248] At the encoding end or the decoding end, prediction identification information, such as a flag bit raht_prediction_enabled_flag, can be used to determine whether the prediction mode for RAHT transformation is enabled. If the prediction identification information indicates that the prediction mode for RAHT transformation is enabled, for example, the value of raht_prediction_enabled_flag is the first value (such as 1), then the number of neighbor blocks of the current block (current node) and the number of its parent neighbor blocks can be compared with the preset values (first threshold and second threshold) to determine whether the current block enables neighbor attribute prediction.
[0249] That is, at the encoder or decoder, if RAHT prediction is enabled (raht_prediction_enabled_flag = 1), the number of neighbor blocks of the current block and the number of its parent neighbor blocks are compared with the preset value to determine whether neighbor attribute prediction is enabled for the current block. If the current block is the root node, prediction is not enabled (i.e., lvl>0 is required). The relationship between the parent block, neighbor block, and current block can be determined by the level lvl of the transform block in the transform tree and the block coordinates (bs, bt, bv).
[0250] For example, the relevant standard syntax is as follows:
[0251] RahtPredEligible[lvl][bs][bt][bv]:=raht_prediction_enabled_flag
[0252] &&lvl>0
[0253] &&lvl <RahtRootLvl
[0254] &&RahtNeighCnt[lvl][bs][bt][bv]≥raht_prediction_samples_min
[0255] &&RahtNeighCntMinAncestor[lvl][bs][bt][bv]≥raht_prediction_subtree_min
[0256] Among them, RahtNeighCnt refers to the number of neighbor blocks, that is, the number of neighbor blocks, and RahtNeighCntMinAncestor refers to the number of parent blocks, that is, the number of parent neighbor blocks.
[0257] Furthermore, if the current block meets the conditions for enabling neighbor attribute prediction, neighbor prediction is performed on the sub-blocks in the current block using the attribute values of the neighbor block (parent layer) of the current block and the attribute values of the sub-blocks (same layer or sub-layer) of the neighbor block. The attribute values of the neighbor block are the attribute values obtained by normalizing the DC coefficient of the neighbor block, and the attribute values of the sub-blocks of the neighbor block are the attribute values obtained by normalizing the DC coefficient of the neighbor block.
[0258] For example, the relevant standard syntax is as follows:
[0259] RahtDcNorm[lvl][bs][bt][bv]:=
[0260] DivExp2Fz((coeff>>wShift)×(IntRecipSqrt(w)>>25-wShift),30)
[0261] where
[0262] w:=RahtBlkWeight[lvl][bs][bt][bv]
[0263] coeff:=RahtDcCoeff[lvl][bs][bt][bv]
[0264] wShift:=w>1024? IntLog2(w-1)>>1:0
[0265] Among them, RahtDcNorm[lvl][bs][bt][bv] is the normalized attribute value of the block coordinates (bs, bt, bv) at any lvl layer in the transform tree.
[0266] It should be noted that the neighbor blocks of the current block include: the current block itself, the neighbor blocks that are coplanar with the sub-block to be encoded in the current block, and the neighbor blocks that are colinear with the sub-block to be encoded in the current block; the neighbor sub-blocks of the current block include: the encoded sub-blocks of the neighbor blocks that are coplanar or colinear with the sub-block to be predicted in the current block.
[0267] That is to say, when searching for parent layer neighbor nodes of the current node, the specific search range includes: the current node (current parent layer node) and its coplanar and colinear neighbor nodes. Record the reconstruction attribute information of the existing neighbor nodes, with A recP 、A recPface 、A recPline Respectively represent the reconstruction attribute information of the current node and the neighboring nodes coplanar and colinear with the current node. When searching for neighboring nodes on the same layer of the child nodes of the current node, the specific search range includes: neighboring child nodes coplanar and colinear with the child nodes of the current node. Record the reconstruction attribute information of the existing neighboring nodes, with A recSface 、A recSline Respectively represent the reconstruction attribute information of neighbor nodes that are coplanar and colinear with the child nodes of the current node.
[0268] Furthermore, the attribute value of the coplanar and collinear block with block coordinates (Bs, Bt, Bv) at any lvl layer is: RahtDcNorm[Lvl][Bs+ds][Bs+dt][Bs+dv], where ds, dt, dv can be -1, 0, 1, and abs(ds)+abs(dt)+abs(dv)<3.
[0269] Furthermore, the prediction weights of the neighboring blocks and the neighboring block sub-blocks of the current block are determined; wherein, the weight of the current block itself is w1 (the first weight value), the weight of the coplanar neighboring blocks is w2 (the second weight value), and the weight of the collinear neighboring blocks is w3 (the third weight value). If the ratio of the attributes of a coplanar or collinear neighbor to the current block is less than a certain threshold 1 or greater than a certain threshold 2, then the weight of the coplanar or collinear neighbor is reset to 0 (the position of the neighbor is marked as RahtPredExcluded[ds][dt][dv]). The weight of the encoded sub-block of the neighboring block that is coplanar with the sub-block to be predicted of the current block is w4 (the fourth weight value), and the weight of the encoded sub-block of the neighboring block that is collinear with the sub-block to be predicted of the current block is w5 (the fifth weight value). The determination of the coplanar or collinear relationship of the same layer or sub-layer is completed by using the block's Morton code.
[0270] The weight of the neighbor block with the same-layer coordinates of [Bs+ds][Bt+dt][Bv+dv] is: w[ds][dt][dv]:=RahtPredExcluded[ds][dt][dv]? 0:RahtPredWeight[ds][dt][dv][m], where the value of RahtPredWeight[ds][dt][dv][m] is one of 0, w1, w2, and w3 depending on the values of ds, dt, and dv.
[0271] The sub-block weight of the neighbor block with coordinates [Bs+ds][Bt+dt][Bv+dv] is: w[((Bs+ds)<<1)+ds2][((Bt+dt)<<1)+dt2][((Bv+dv)<<1)+dv2]:=RahtPredWeight[((Bs+ds)<<1)+ds2][((Bt+dt)<<1)+dt2][( ((Bv+dv)<<1)+dv2][m], where (ds2, dt2, dv2) are the relative coordinates of the neighbor sub-block in the neighbor block. Depending on their values, the value of RahtPredWeight[((Bs+ds)<<1)+ds2][((Bt+dt)<<1)+dt2][((Bv+dv)<<1)+dv2][m] takes 0, one of w4 and w5.
[0272] Furthermore, the attribute values of the selected same-layer and sub-layer blocks (which can also be understood as the attribute values of the parent layer and the same layer of the sub-block) are used to obtain their corresponding weights according to their relative positions, and a weighted average operation of the attributes is performed to obtain the attribute prediction value RahtPred[m] of each sub-block to be encoded in the current block, that is, the attribute prediction value of the child node of the current node, where m is the current sub-block index from 0 to 7.
[0273] The embodiment of the present application discloses a point cloud encoding and decoding method, wherein the decoder determines the reconstruction attribute information of the occupied neighboring nodes of the current node and the reconstruction attribute information of the occupied neighboring subnodes of the current node at the same layer; determines the attribute prediction value of the subnode of the current node based on the reconstruction attribute information of the occupied neighboring nodes and the reconstruction attribute information of the occupied neighboring subnodes of the current node at the same layer; performs RAHT transformation on the attribute prediction value to determine the first transformed coefficient, and determines the reconstruction attribute information of the subnode of the current node based on the first transformed coefficient. The encoder determines the reconstruction attribute information of the occupied neighboring nodes of the current node and the reconstruction attribute information of the occupied neighboring subnodes of the current node at the same layer; determines the attribute prediction value of the subnode of the current node based on the reconstruction attribute information of the occupied neighboring nodes and the reconstruction attribute information of the occupied neighboring subnodes of the current node at the same layer; performs RAHT transformation on the attribute prediction value to determine the first transformed coefficient, and determines the quantized coefficient residual of the subnode of the current node based on the first transformed coefficient; and writes the quantized coefficient residual into the bitstream. That is to say, in an embodiment of the present application, for the RAHT transformation process, when predicting the attribute information of the current node, the reconstructed attribute information of the occupied neighboring nodes of the current node and the reconstructed attribute information of the occupied same-layer neighboring child nodes of the child nodes of the current node can be used to determine the attribute prediction value of the child nodes of the current node, that is, on the basis of upsampling prediction, the same-layer adjacent nodes of the current node and the same-layer adjacent child nodes of the child nodes are introduced to perform prediction processing of the attribute information, that is, the parent-layer adjacent nodes and the same-layer adjacent child nodes of the child nodes of the current node are introduced to perform prediction processing of the attribute information, which improves the encoding and decoding efficiency and enhances the video compression performance.
[0274] Based on the above embodiment, in yet another embodiment of the present application, FIG10 is a schematic diagram of a structure of a decoder. As shown in FIG10 , the decoder 300 proposed in the embodiment of the present application may include: a first determining part 301,
[0275] The first determination part 301 is configured to determine the reconstruction attribute information of the occupied neighboring nodes of the current node and the reconstruction attribute information of the occupied neighboring child nodes of the current node at the same layer; determine the attribute prediction value of the child node of the current node based on the reconstruction attribute information of the occupied neighboring nodes and the reconstruction attribute information of the occupied neighboring child nodes of the current node at the same layer; perform RAHT transformation on the attribute prediction value to determine the first transformed coefficient, and determine the reconstruction attribute information of the child node of the current node based on the first transformed coefficient.
[0276] Further, in an embodiment of the present application, the first determination part 301 is configured to determine the number of occupied neighbors of the parent node of the current node and the number of occupied neighbors of the current node if the current node is not a root node; if the number of occupied neighbors of the parent node is greater than or equal to a first threshold, and the number of occupied neighbors of the current node is greater than or equal to a second threshold, determine the reconstruction attribute information of the occupied neighbor nodes of the current node and the reconstruction attribute information of the occupied same-layer neighbor sub-nodes of the child nodes of the current node; determine the attribute prediction value of the child node of the current node based on the reconstruction attribute information of the occupied neighbor nodes and the reconstruction attribute information of the occupied same-layer neighbor sub-nodes of the child node of the current node; perform RAHT transformation on the attribute prediction value to determine the first transformed coefficient, and determine the reconstruction attribute information of the child node of the current node based on the first transformed coefficient.
[0277] Figure 11 is a second schematic diagram of the composition structure of the decoder. As shown in Figure 11, the decoder 300 proposed in the embodiment of the present application may also include a first processor 302, a first memory 303 storing executable instructions of the first processor 302, a first communication interface 304, and a first bus 305 for connecting the first processor 302, the first memory 303 and the first communication interface 304.
[0278] Furthermore, in an embodiment of the present application, the above-mentioned first processor 302 is used to determine the reconstruction attribute information of the occupied neighboring nodes of the current node and the reconstruction attribute information of the occupied neighboring sub-nodes of the current node at the same layer; determine the attribute prediction value of the sub-node of the current node based on the reconstruction attribute information of the occupied neighboring nodes and the reconstruction attribute information of the occupied neighboring sub-nodes of the current node at the same layer; perform RAHT transformation on the attribute prediction value to determine the first transformed coefficient, and determine the reconstruction attribute information of the sub-node of the current node based on the first transformed coefficient.
[0279] Furthermore, in an embodiment of the present application, the above-mentioned first processor 302 is used to determine the number of occupied neighbors of the parent node of the current node and the number of occupied neighbors of the current node if the current node is not a root node; if the number of occupied neighbors of the parent node is greater than or equal to a first threshold, and the number of occupied neighbors of the current node is greater than or equal to a second threshold, determine the reconstruction attribute information of the occupied neighbor nodes of the current node and the reconstruction attribute information of the occupied same-layer neighbor sub-nodes of the child node of the current node; determine the attribute prediction value of the child node of the current node based on the reconstruction attribute information of the occupied neighbor nodes and the reconstruction attribute information of the occupied same-layer neighbor sub-nodes of the child node of the current node; perform RAHT transformation on the attribute prediction value to determine the first transformed coefficient, and determine the reconstruction attribute information of the child node of the current node based on the first transformed coefficient.
[0280] FIG12 is a schematic diagram of the first structure of the encoder. As shown in FIG12 , the encoder 400 proposed in the embodiment of the present application may include: a second determining part 401, an encoding part 402,
[0281] The second determining portion 401 is configured to determine the reconstructed attribute information of the occupied neighboring nodes of the current node and the reconstructed attribute information of the occupied neighboring child nodes of the child nodes of the current node at the same layer; determine the attribute prediction value of the child node of the current node based on the reconstructed attribute information of the occupied neighboring nodes and the reconstructed attribute information of the occupied neighboring child nodes of the child nodes of the current node at the same layer; perform a RAHT transform on the attribute prediction value to determine a first transformed coefficient, and determine a quantized coefficient residual of the child node of the current node based on the first transformed coefficient;
[0282] The encoding part 402 is configured to write the quantized coefficient residual into a bitstream.
[0283] Further, in an embodiment of the present application, the second determination part 401 is configured to, if the current node is not a root node, determine the number of occupied neighbors of the parent node of the current node and the number of occupied neighbors of the current node; if the number of occupied neighbors of the parent node is greater than or equal to a first threshold, and the number of occupied neighbors of the current node is greater than or equal to a second threshold, determine the reconstruction attribute information of the occupied neighbor nodes of the current node and the reconstruction attribute information of the occupied neighbor subnodes of the child node of the current node at the same layer; determine the attribute prediction value of the child node of the current node based on the reconstruction attribute information of the occupied neighbor nodes and the reconstruction attribute information of the occupied neighbor subnodes of the child node of the current node at the same layer; perform RAHT transformation on the attribute prediction value to determine a first transformed coefficient, and determine the coefficient residual value of the child node of the current node based on the first transformed coefficient;
[0284] The encoding part 402 is configured to write the quantized coefficient residual into a bitstream.
[0285] Figure 13 is a second schematic diagram of the composition structure of the encoder. As shown in Figure 13, the encoder 400 proposed in the embodiment of the present application may further include a second processor 403, a second memory 404 storing executable instructions of the second processor 403, a second communication interface 405, and a second bus 406 for connecting the second processor 403, the second memory 404 and the second communication interface 405.
[0286] Furthermore, in an embodiment of the present application, the above-mentioned second processor 403 is used to determine the reconstruction attribute information of the occupied neighboring node of the current node and the reconstruction attribute information of the occupied neighboring child nodes of the child node of the current node at the same layer; determine the attribute prediction value of the child node of the current node based on the reconstruction attribute information of the occupied neighboring node and the reconstruction attribute information of the occupied neighboring child nodes of the child node of the current node at the same layer; perform RAHT transformation on the attribute prediction value to determine the first transformed coefficient, and determine the quantized coefficient residual of the child node of the current node based on the first transformed coefficient; and write the quantized coefficient residual into the bitstream.
[0287] Furthermore, in an embodiment of the present application, the second processor 403 is configured to, if the current node is not a root node, determine the number of occupied neighbors of the parent node of the current node and the number of occupied neighbors of the current node; if the number of occupied neighbors of the parent node is greater than or equal to a first threshold, and the number of occupied neighbors of the current node is greater than or equal to a second threshold, determine the reconstruction attribute information of the occupied neighbor nodes of the current node and the reconstruction attribute information of the occupied neighbor subnodes of the child node of the current node at the same layer; determine the attribute prediction value of the child node of the current node based on the reconstruction attribute information of the occupied neighbor nodes and the reconstruction attribute information of the occupied neighbor subnodes of the child node of the current node at the same layer; perform a RAHT transform on the attribute prediction value to determine a first transformed coefficient, and determine the coefficient residual value of the child node of the current node based on the first transformed coefficient; and write the coefficient residual value into the bitstream.
[0288] 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.
[0289] If the integrated unit is implemented as a software functional module and is not sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this embodiment, or the portion that contributes to the prior art, or all or part of the technical solution can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions for causing a computer device (which can be a personal computer, server, or network device, etc.) or a processor to execute all or part of the steps of the method described in this embodiment. The aforementioned storage medium includes various media that can store program code, such as a USB flash drive, a mobile hard drive, a read-only memory (ROM), a random access memory (RAM), a magnetic disk, or an optical disk.
[0290] It is understood that the memory 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 memories. Among them, the non-volatile memory may 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 may be a random access memory (RAM), which is used as an external cache. By way of example and not limitation, many forms of RAM are available, such as static random access memory (SRAM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), double data rate synchronous dynamic random access memory (DDRSDRAM), enhanced synchronous dynamic random access memory (ESDRAM), synchronous link dynamic random access memory (SLDRAM), and direct RAM bus random access memory (DRRAM). The memory of the systems and methods described herein is intended to include, but is not limited to, these and any other suitable types of memory.
[0291] The processor may be an integrated circuit chip with signal processing capabilities. During implementation, each step of the above method can be completed by hardware integrated logic circuits in the processor or by software instructions. The above processor 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. The various methods, steps, and logic block diagrams disclosed in the embodiments of this application can be implemented or executed. The general-purpose processor may be a microprocessor or any conventional processor. The steps of the method disclosed in the embodiments of this application can be directly implemented and executed by a hardware decoding processor, or by a combination of hardware and software modules in the decoding processor. The software module can be located in a storage medium mature in the art, such as random access memory, flash memory, read-only memory, programmable read-only memory, electrically erasable programmable memory, registers, etc. The storage medium is located in the memory, and the processor reads the information in the memory and, in conjunction with its hardware, completes the steps of the above method.
[0292] It is to be understood that these embodiments described in the present application can be implemented with hardware, software, firmware, middleware, microcode or its combination.For hardware implementation, the processing unit can be implemented in one or more application specific integrated circuits (Application Specific Integrated Circuits, ASIC), digital signal processor (Digital Signal Processing, DSP), digital signal processing equipment (DSP Device, DSPD), programmable logic device (Programmable Logic Device, PLD), field programmable gate array (Field-Programmable Gate Array, FPGA), general-purpose processor, controller, microcontroller, microprocessor, other electronic units for performing functions described in the present application or its combination.For software implementation, the technology described in the present application can be realized by the module (such as process, function etc.) that performs functions described in the present application. The software code can be stored in a memory and executed by a processor. The memory can be implemented in the processor or outside the processor.
[0293] The embodiment of the present application provides a codec, wherein the decoder determines the reconstruction attribute information of the occupied neighboring nodes of the current node and the reconstruction attribute information of the occupied neighboring subnodes of the current node at the same layer; determines the attribute prediction value of the subnode of the current node based on the reconstruction attribute information of the occupied neighboring nodes and the reconstruction attribute information of the occupied neighboring subnodes of the current node at the same layer; performs a RAHT transform on the attribute prediction value to determine a first transformed coefficient, and determines the reconstruction attribute information of the subnode of the current node based on the first transformed coefficient. The encoder determines the reconstruction attribute information of the occupied neighboring nodes of the current node and the reconstruction attribute information of the occupied neighboring subnodes of the current node at the same layer; determines the attribute prediction value of the subnode of the current node based on the reconstruction attribute information of the occupied neighboring nodes and the reconstruction attribute information of the occupied neighboring subnodes of the current node at the same layer; performs a RAHT transform on the attribute prediction value to determine a first transformed coefficient, and determines the quantized coefficient residual of the subnode of the current node based on the first transformed coefficient; and writes the quantized coefficient residual into the bitstream. That is to say, in an embodiment of the present application, for the RAHT transformation process, when predicting the attribute information of the current node, the reconstructed attribute information of the occupied neighboring nodes of the current node and the reconstructed attribute information of the occupied same-layer neighboring child nodes of the child nodes of the current node can be used to determine the attribute prediction value of the child nodes of the current node, that is, on the basis of upsampling prediction, the same-layer adjacent nodes of the current node and the same-layer adjacent child nodes of the child nodes are introduced to perform prediction processing of the attribute information, that is, the parent-layer adjacent nodes and the same-layer adjacent child nodes of the child nodes of the current node are introduced to perform prediction processing of the attribute information, which improves the encoding and decoding efficiency and enhances the video compression performance.
[0294] An embodiment of the present application provides a computer storage medium, which is applied to an encoder 300. The computer storage medium stores a point cloud decoding program. When the point cloud decoding program is executed by a processor, the method described in any one of the aforementioned embodiments is implemented.
[0295] Specifically, the program instructions corresponding to a point cloud decoding method in this embodiment can be stored on a storage medium such as a CD, a hard disk, or a USB flash drive. When the program instructions corresponding to a point cloud decoding method in the storage medium are read or executed by an electronic device, the following steps are included:
[0296] Determining reconstruction attribute information of an occupied neighbor node of a current node and reconstruction attribute information of an occupied neighbor child node at the same layer of a child node of the current node;
[0297] Determining an attribute prediction value of a child node of the current node according to the reconstructed attribute information of the occupied neighbor node and the reconstructed attribute information of the occupied neighbor child node at the same layer of the child node of the current node;
[0298] Performing a RAHT transformation on the attribute prediction value to determine a first transformed coefficient, and determining the reconstructed attribute information of the child node of the current node according to the first transformed coefficient.
[0299] When a program instruction corresponding to a point cloud decoding method in a storage medium is read or executed by an electronic device, the method includes the following steps:
[0300] If the current node is not a root node, determining the number of occupied neighbors of the parent node of the current node and the number of occupied neighbors of the current node;
[0301] If the number of occupied neighbors of the parent node is greater than or equal to a first threshold, and the number of occupied neighbors of the current node is greater than or equal to a second threshold, determining the reconstruction attribute information of the occupied neighbor nodes of the current node and the reconstruction attribute information of the occupied neighbor child nodes of the child node of the current node at the same layer;
[0302] Determining an attribute prediction value of a child node of the current node according to the reconstructed attribute information of the occupied neighbor node and the reconstructed attribute information of the occupied neighbor child node at the same layer of the child node of the current node;
[0303] Performing a RAHT transformation on the attribute prediction value to determine a first transformed coefficient, and determining the reconstructed attribute information of the child node of the current node according to the first transformed coefficient.
[0304] An embodiment of the present application provides a computer storage medium, which is applied to an encoder 400. The computer storage medium stores a point cloud encoding program. When the point cloud encoding program is executed by a processor, the method described in any one of the aforementioned embodiments is implemented.
[0305] Specifically, the program instructions corresponding to a point cloud encoding method in this embodiment can be stored on a storage medium such as a CD, a hard disk, or a USB flash drive. When the program instructions corresponding to a point cloud encoding method in the storage medium are read or executed by an electronic device, the following steps are included:
[0306] Determining reconstruction attribute information of an occupied neighbor node of a current node and reconstruction attribute information of an occupied neighbor child node at the same layer of a child node of the current node;
[0307] Determine an attribute prediction value of a child node of the current node according to the reconstructed attribute information of the occupied neighbor node and the reconstructed attribute information of the occupied neighbor child node at the same layer of the child node of the current node;
[0308] Performing a RAHT transform on the attribute prediction value to determine a first transformed coefficient, and determining a quantized coefficient residual of a child node of the current node based on the first transformed coefficient;
[0309] The quantized coefficient residual is written into the bitstream.
[0310] When a program instruction corresponding to a point cloud coding method in a storage medium is read or executed by an electronic device, the method includes the following steps:
[0311] If the current node is not a root node, determining the number of occupied neighbors of the parent node of the current node and the number of occupied neighbors of the current node;
[0312] If the number of occupied neighbors of the parent node is greater than or equal to a first threshold, and the number of occupied neighbors of the current node is greater than or equal to a second threshold, determining the reconstruction attribute information of the occupied neighbor nodes of the current node and the reconstruction attribute information of the occupied neighbor child nodes of the child node of the current node at the same layer;
[0313] Determine an attribute prediction value of a child node of the current node according to the reconstructed attribute information of the occupied neighbor node and the reconstructed attribute information of the occupied neighbor child node at the same layer of the child node of the current node;
[0314] Performing a RAHT transform on the attribute prediction value to determine a first transformed coefficient, and determining a coefficient residual value of a child node of the current node based on the first transformed coefficient;
[0315] The coefficient residual value is written into the bitstream.
[0316] It should be noted that, in the embodiments of the present 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.
[0317] 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.
[0318] The methods disclosed in the several method embodiments provided in this application can be arbitrarily combined without conflict to obtain new method embodiments.
[0319] The features disclosed in the several product embodiments provided in this application can be arbitrarily combined without conflict to obtain new product embodiments.
[0320] 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.
[0321] The above description is merely a specific embodiment of the present application, but the scope of protection of the present application is not limited thereto. Any changes or substitutions that can be easily conceived by a person skilled in the art within the technical scope disclosed in this application should be included in the scope of protection of this application. Therefore, the scope of protection of this application should be based on the scope of protection of the claims. Industrial Applicability
[0322] The embodiment of the present application discloses a point cloud encoding and decoding method, a codec and a computer storage medium, wherein the decoder determines the reconstruction attribute information of the occupied neighbor nodes of the current node and the reconstruction attribute information of the occupied neighbor subnodes of the current node at the same layer; determines the attribute prediction value of the subnode of the current node based on the reconstruction attribute information of the occupied neighbor nodes and the reconstruction attribute information of the occupied neighbor subnodes of the current node at the same layer; performs RAHT transformation on the attribute prediction value to determine the first transformed coefficient, and determines the reconstruction attribute information of the subnode of the current node based on the first transformed coefficient. The encoder determines the reconstruction attribute information of the occupied neighbor nodes of the current node and the reconstruction attribute information of the occupied neighbor subnodes of the current node at the same layer; determines the attribute prediction value of the subnode of the current node based on the reconstruction attribute information of the occupied neighbor nodes and the reconstruction attribute information of the occupied neighbor subnodes of the current node at the same layer; performs RAHT transformation on the attribute prediction value to determine the first transformed coefficient, and determines the quantized coefficient residual of the subnode of the current node based on the first transformed coefficient; and writes the quantized coefficient residual into the bitstream. That is to say, in an embodiment of the present application, for the RAHT transformation process, when predicting the attribute information of the current node, the reconstructed attribute information of the occupied neighboring nodes of the current node and the reconstructed attribute information of the occupied same-layer neighboring child nodes of the child nodes of the current node can be used to determine the attribute prediction value of the child nodes of the current node, that is, on the basis of upsampling prediction, the same-layer adjacent nodes of the current node and the same-layer adjacent child nodes of the child nodes are introduced to perform prediction processing of the attribute information, that is, the parent-layer adjacent nodes and the same-layer adjacent child nodes of the child nodes of the current node are introduced to perform prediction processing of the attribute information, which improves the encoding and decoding efficiency and enhances the video compression performance.
Claims
1. A point cloud decoding method, applied to a decoder, comprising: Determining reconstruction attribute information of an occupied neighbor node of a current node and reconstruction attribute information of an occupied neighbor child node at the same layer of a child node of the current node; Determining an attribute prediction value of a child node of the current node according to the reconstructed attribute information of the occupied neighbor node and the reconstructed attribute information of the occupied neighbor child node at the same layer of the child node of the current node; Performing a RAHT transformation on the attribute prediction value to determine a first transformed coefficient, and determining the reconstructed attribute information of the child node of the current node according to the first transformed coefficient.
2. The method according to claim 1, wherein The occupied neighbor nodes include: the current node, the occupied coplanar neighbor nodes and colinear neighbor nodes of the current node; The occupied neighbor sub-nodes of the current node in the same layer include: occupied coplanar neighbor nodes and colinear neighbor nodes of the current node in the same layer.
3. The method according to claim 2, wherein: The method further comprises: Determine the weight values corresponding to the occupied neighbor node and the occupied neighbor child nodes of the child node of the current node at the same layer; A weighted operation is performed on the reconstructed attribute information of the occupied neighboring node and the reconstructed attribute information of the occupied neighboring child nodes of the child node of the current node in the same layer according to the weight value to determine the attribute prediction value of the child node of the current node.
4. The method according to claim 2, wherein: The method further comprises: Screening the occupied neighbor nodes and the occupied neighbor sub-nodes of the child nodes of the current node at the same layer to determine a reference neighbor node; Determine the attribute prediction value of the child node of the current node according to the reconstructed attribute information of the reference neighbor node.
5. The method according to claim 4, wherein The method further comprises: Determine a weight value corresponding to the reference neighbor node; A weighted operation is performed on the reconstructed attribute information of the reference neighbor node according to the weight value to determine the attribute prediction value of the child node of the current node.
6. The method according to claim 4 or 5, wherein: The method further comprises: Determining a first preset threshold according to the reconstruction attribute information of the current node; The occupied neighbor nodes and the occupied neighbor sub-nodes of the current node at the same layer are screened according to the first preset threshold to determine the reference neighbor node.
7. The method according to claim 4 or 5, wherein: The method further comprises: The number of the occupied neighbor nodes in the reference neighbor nodes is less than or equal to a third threshold.
8. The method according to claim 4 or 5, wherein: The method further comprises: The number of the occupied same-layer neighbor sub-nodes in the reference neighbor node is less than or equal to a fourth threshold.
9. The method according to claim 3 or 5, wherein: The weight values include: a first weight value corresponding to the current node, a second weight value corresponding to the coplanar neighbor nodes occupied by the current node, a third weight value corresponding to the collinear neighbor nodes occupied by the current node, a fourth weight value corresponding to the coplanar neighbor nodes occupied by the child nodes of the current node, and a fifth weight value corresponding to the occupied collinear neighbor nodes of the child nodes of the current node.
10. The method according to claim 1, wherein: The method further comprises: Decoding a code stream to determine coefficient residual values of child nodes of the current node; Dequantization is performed on the coefficient residual value to determine the coefficient residual of the child node of the current node.
11. The method according to claim 10, wherein: The method further comprises: Determine a second transformed coefficient of a child node of the current node according to the first transformed coefficient and the coefficient residual; Perform an inverse transformation on the second transformed coefficients to determine the reconstructed attribute information of the child nodes of the current node.
12. The method according to any one of claims 1-5, 10-11, wherein: The occupied neighboring child nodes of the child nodes of the current node in the same layer and the child nodes of the current node are neighboring nodes in the same layer; wherein, the neighboring nodes in the same layer are nodes of the same size.
13. A point cloud decoding method, applied to a decoder, comprising: If the current node is not a root node, determining the number of occupied neighbors of the parent node of the current node and the number of occupied neighbors of the current node; If the number of occupied neighbors of the parent node is greater than or equal to a first threshold, and the number of occupied neighbors of the current node is greater than or equal to a second threshold, determining the reconstruction attribute information of the occupied neighbor nodes of the current node and the reconstruction attribute information of the occupied neighbor child nodes of the child node of the current node at the same layer; Determining an attribute prediction value of a child node of the current node according to the reconstructed attribute information of the occupied neighbor node and the reconstructed attribute information of the occupied neighbor child node at the same layer of the child node of the current node; Performing a RAHT transformation on the attribute prediction value to determine a first transformed coefficient, and determining the reconstructed attribute information of the child node of the current node according to the first transformed coefficient.
14. The method according to claim 13, wherein The method further comprises: If the current node is a root node, decoding the bitstream to determine the quantized coefficients of the current node; Performing inverse quantization processing on the quantized coefficients to determine transformed coefficients; Perform inverse transformation on the transformed coefficients to determine the reconstructed attribute information of the current node.
15. The method according to claim 13, wherein The method further comprises: If the number of occupied neighbors of the parent node is less than the first threshold, or the number of occupied neighbors of the current node is less than the second threshold, decoding the bitstream to determine the quantized coefficients of the current node; Performing inverse quantization processing on the quantized coefficients to determine transformed coefficients; Perform inverse transformation on the transformed coefficients to determine the reconstructed attribute information of the current node.
16. A point cloud encoding method, applied to an encoder, comprising: Determining reconstruction attribute information of an occupied neighbor node of a current node and reconstruction attribute information of an occupied neighbor child node at the same layer of a child node of the current node; Determine an attribute prediction value of a child node of the current node according to the reconstructed attribute information of the occupied neighbor node and the reconstructed attribute information of the occupied neighbor child node at the same layer of the child node of the current node; Performing a RAHT transform on the attribute prediction value to determine a first transformed coefficient, and determining a coefficient residual value of a child node of the current node based on the first transformed coefficient; The coefficient residual value is written into the bitstream.
17. The method according to claim 16, wherein The occupied neighbor nodes include: the current node, the occupied coplanar neighbor nodes and colinear neighbor nodes of the current node; The occupied neighbor sub-nodes of the current node in the same layer include: occupied coplanar neighbor nodes and colinear neighbor nodes of the current node in the same layer.
18. The method according to claim 17, wherein The method further comprises: Determine the weight values corresponding to the occupied neighbor node and the occupied neighbor child nodes of the child node of the current node at the same layer; A weighted operation is performed on the reconstructed attribute information of the occupied neighboring node and the reconstructed attribute information of the occupied neighboring child nodes of the child node of the current node in the same layer according to the weight value to determine the attribute prediction value of the child node of the current node.
19. The method according to claim 17, wherein The method further comprises: Screening the occupied neighbor nodes and the occupied neighbor sub-nodes of the child nodes of the current node at the same layer to determine a reference neighbor node; Determine the attribute prediction value of the child node of the current node according to the reconstructed attribute information of the reference neighbor node.
20. The method according to claim 19, wherein The method further comprises: Determine a weight value corresponding to the reference neighbor node; A weighted operation is performed on the reconstructed attribute information of the reference neighbor node according to the weight value to determine the attribute prediction value of the child node of the current node.
21. The method according to claim 19 or 20, wherein The method further comprises: Determining a first prediction threshold and a second prediction threshold according to the reconstruction attribute information of the current node; The occupied neighbor nodes and the occupied neighbor sub-nodes of the current node at the same layer are screened according to the first preset threshold to determine the reference neighbor node.
22. The method according to claim 19 or 20, wherein The method further comprises: The number of the occupied neighbor nodes in the reference neighbor nodes is less than or equal to a third threshold.
23. The method according to claim 19 or 20, wherein The method further comprises: The number of the occupied same-layer neighbor sub-nodes in the reference neighbor node is less than or equal to a fourth threshold.
24. The method according to claim 18 or 20, wherein The weight values include: a first weight value corresponding to the current node, a second weight value corresponding to the coplanar neighbor nodes occupied by the current node, a third weight value corresponding to the collinear neighbor nodes occupied by the current node, a fourth weight value corresponding to the coplanar neighbor nodes occupied by the child nodes of the current node, and a fifth weight value corresponding to the occupied collinear neighbor nodes of the child nodes of the current node.
25. The method according to claim 1, wherein The method further comprises: Performing a RAHT transformation on the original attribute information of the child node of the current node to determine a second transformed coefficient; determining a coefficient residual between the first transformed coefficient and the second transformed coefficient; The coefficient residual is quantized to determine the coefficient residual value.
26. The method according to any one of claims 16 to 20, 25, wherein: The occupied neighboring child nodes of the child nodes of the current node in the same layer and the child nodes of the current node are neighboring nodes in the same layer; wherein, the neighboring nodes in the same layer are nodes of the same size.
27. A point cloud encoding method, applied to an encoder, comprising: If the current node is not a root node, determining the number of occupied neighbors of the parent node of the current node and the number of occupied neighbors of the current node; If the number of occupied neighbors of the parent node is greater than or equal to a first threshold, and the number of occupied neighbors of the current node is greater than or equal to a second threshold, determining the reconstruction attribute information of the occupied neighbor nodes of the current node and the reconstruction attribute information of the occupied neighbor child nodes of the child node of the current node at the same layer; Determine an attribute prediction value of a child node of the current node according to the reconstructed attribute information of the occupied neighbor node and the reconstructed attribute information of the occupied neighbor child node at the same layer of the child node of the current node; Performing a RAHT transform on the attribute prediction value to determine a first transformed coefficient, and determining a coefficient residual value of a child node of the current node based on the first transformed coefficient; The coefficient residual value is written into the bitstream.
28. The method according to claim 27, wherein The method further comprises: If the current node is a root node, performing a RAHT transformation on the reconstruction attribute information of the current node to determine a coefficient after the transformation; quantizing the transformed coefficients to determine quantized coefficients; The quantized coefficients are written into a bitstream.
29. The method according to claim 27, wherein The method further comprises: If the number of neighbors of the parent node is less than the first threshold, or the number of neighbors of the parent node is less than the second threshold, performing a RAHT transform on the reconstruction attribute information of the current node to determine a coefficient after the transform; quantizing the transformed coefficients to determine quantized coefficients; The quantized coefficients are written into a bitstream.
30. A decoder, comprising: The first part is to determine The first determining part is configured to determine the reconstruction attribute information of the occupied neighbor node of the current node and the reconstruction attribute information of the occupied neighbor child node of the child node of the current node at the same layer; Determining an attribute prediction value of a child node of the current node according to the reconstructed attribute information of the occupied neighbor node and the reconstructed attribute information of the occupied neighbor child node at the same layer of the child node of the current node; Performing a RAHT transformation on the attribute prediction value to determine a first transformed coefficient, and determining the reconstructed attribute information of the child node of the current node according to the first transformed coefficient.
31. A decoder, comprising: The first part is to determine The first determining part is configured to determine the number of occupied neighbors of the parent node of the current node and the number of occupied neighbors of the current node if the current node is not a root node; If the number of occupied neighbors of the parent node is greater than or equal to a first threshold, and the number of occupied neighbors of the current node is greater than or equal to a second threshold, determining the reconstruction attribute information of the occupied neighbor nodes of the current node and the reconstruction attribute information of the occupied neighbor child nodes of the child node of the current node at the same layer; Determining an attribute prediction value of a child node of the current node according to the reconstructed attribute information of the occupied neighbor node and the reconstructed attribute information of the occupied neighbor child node at the same layer of the child node of the current node; Performing a RAHT transformation on the attribute prediction value to determine a first transformed coefficient, and determining the reconstructed attribute information of the child node of the current node according to the first transformed coefficient.
32. A decoder, comprising a first processor and a first memory storing instructions executable by the first processor, wherein when the instructions are executed, the first processor implements the method according to any one of claims 1-12 or 13-15.
33. An encoder, comprising: The second determining part, the encoding part, The second determining part is configured to determine the reconstruction attribute information of the occupied neighbor node of the current node and the reconstruction attribute information of the occupied neighbor child node of the child node of the current node at the same layer; Determine an attribute prediction value of a child node of the current node according to the reconstructed attribute information of the occupied neighbor node and the reconstructed attribute information of the occupied neighbor child node at the same layer of the child node of the current node; Performing a RAHT transform on the attribute prediction value to determine a first transformed coefficient, and determining a coefficient residual value of a child node of the current node based on the first transformed coefficient; The encoding part is configured to write the coefficient residual value into the code stream.
34. An encoder, comprising: The second determining part, the encoding part, The second determining part is configured to determine the number of occupied neighbors of the parent node of the current node and the number of occupied neighbors of the current node if the current node is not a root node; If the number of occupied neighbors of the parent node is greater than or equal to a first threshold, and the number of occupied neighbors of the current node is greater than or equal to a second threshold, determining the reconstruction attribute information of the occupied neighbor nodes of the current node and the reconstruction attribute information of the occupied neighbor child nodes of the child node of the current node at the same layer; Determine an attribute prediction value of a child node of the current node according to the reconstructed attribute information of the occupied neighbor node and the reconstructed attribute information of the occupied neighbor child node at the same layer of the child node of the current node; Performing a RAHT transform on the attribute prediction value to determine a first transformed coefficient, and determining a coefficient residual value of a child node of the current node based on the first transformed coefficient; The encoding part is configured to write the coefficient residual value into the code stream.
35. An encoder comprising a second processor and a second memory storing instructions executable by the second processor, wherein when the instructions are executed, the second processor implements the method according to any one of claims 16 to 26 or 27 to 29.
36. A computer storage medium, wherein: The computer storage medium stores a computer program, which, when executed by a first processor, implements the method according to any one of claims 1 to 12 or 13 to 15, and which, when executed by a second processor, implements the method according to any one of claims 16 to 26 or 27 to 29.