Intra-frame prediction method and apparatus, encoding method and apparatus, decoding method and apparatus, codec, device and medium
Patent Information
- Application Number
- PCT/CN2021/099855
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2021-06-11
- Publication Date
- 2026-10-22
Smart Images

Figure CN2021099855_22102026_PF_FP_ABST
Abstract
Description
Intra-frame prediction, encoding / decoding methods and apparatus, codecs, devices, and media Technical Field
[0001] This application relates to point cloud processing technology, including but not limited to intra-frame prediction, encoding and decoding methods and apparatus, encoders and decoders, devices, and media. Background Technology
[0002] A point cloud is a set of randomly distributed discrete points in space that represent the spatial structure and surface properties of a three-dimensional object or scene. Point cloud data typically includes attribute information composed of three-dimensional position information (x, y, z), three-dimensional color information (r, g, b), and one-dimensional reflectance information (r).
[0003] Point clouds can flexibly and conveniently express the spatial structure and surface properties of three-dimensional objects or scenes. Since point clouds are obtained by directly sampling real objects, they can provide a strong sense of realism while ensuring accuracy. Therefore, they are widely used, including virtual reality games, computer-aided design, geographic information systems, automatic navigation systems, digital cultural heritage, free-viewpoint broadcasting, three-dimensional immersive telepresence, and three-dimensional reconstruction of biological tissues and organs.
[0004] With the growth of application demands, the processing of massive three-dimensional (3D) point cloud data has encountered bottlenecks due to limitations in storage space and transmission bandwidth. To better achieve data management, save server storage space, and reduce transmission traffic and time between servers and clients, point cloud compression has become a key issue in promoting the development of the point cloud industry.
[0005] Point cloud compression is mainly divided into geometric compression and attribute compression. Among them, the accuracy of intra-frame prediction in attribute compression directly affects the encoding and decoding efficiency.
[0006] Summary of the Invention
[0007] In view of this, the intra-frame prediction, encoding / decoding method, apparatus, codec, device, and medium provided in the embodiments of this application can improve the accuracy of intra-frame prediction, thereby improving the encoding / decoding efficiency of point clouds. The intra-frame prediction, encoding / decoding method, apparatus, codec, device, and medium provided in the embodiments of this application are implemented as follows:
[0008] The intra-frame prediction method provided in this application embodiment is applied to a decoding end. The method includes: determining a first predicted node of the current node from a first candidate node within a first range of the current node; determining a second predicted node of the current node from a second candidate node within a second range of the current node when the number of the first predicted nodes is less than a first threshold; wherein the second range is greater than the first range; determining a third predicted node of the current node from the first K third candidate nodes in the decoding order of the current node when the total number of the first predicted node and the second predicted node is less than the first threshold; wherein K is greater than 0; and obtaining the attribute prediction value of the current node based on the attribute values of the first predicted node, the second predicted node, and the third predicted node of the current node.
[0009] The point cloud decoding method provided in this application includes: parsing a received attribute bitstream to obtain a reconstruction residual of the current node; performing the steps of the intra-frame prediction method described in this application on the current node to obtain an attribute prediction value of the current node; and determining an attribute reconstruction value of the current node based on the attribute prediction value of the current node and the reconstruction residual of the current node.
[0010] The intra-frame prediction method provided in this application embodiment is applied to the encoding end. The method includes: determining a first predicted node of the current node from a first candidate node within a first range of the current node; determining a second predicted node of the current node from a second candidate node within a second range of the current node when the number of the first predicted nodes is less than a first threshold; wherein the second range is greater than the first range; determining a third predicted node of the current node from the first K third candidate nodes in the encoding order of the current node when the total number of the first predicted node and the second predicted node is less than the first threshold; wherein K is greater than 0; and obtaining the attribute prediction value of the current node based on the attribute values of the first predicted node, the second predicted node, and the third predicted node of the current node.
[0011] The point cloud encoding method provided in this application embodiment is applied to the encoding end. The method includes: performing the steps of the intra-prediction method as described in this application embodiment on the current node of the point cloud to obtain the attribute prediction value of the current node; determining the residual between the attribute prediction value of the current node and the original attribute value of the current node; and encoding the residual of the current node into an attribute bitstream.
[0012] The intra-frame prediction apparatus provided in this application embodiment is applied at a decoding end and includes: a first determining module, configured to determine a first predicted node of the current node from first candidate nodes within a first range of the current node; a second determining module, configured to determine a second predicted node of the current node from second candidate nodes within a second range of the current node when the number of the first predicted nodes is less than a first threshold; wherein the second range is greater than the first range; a third determining module, configured to determine a third predicted node of the current node from the first K third candidate nodes in the decoding order of the current node when the total number of the first predicted nodes and the second predicted nodes is less than the first threshold; wherein K is greater than 0; and a first intra-frame prediction module, configured to obtain the attribute prediction value of the current node based on the attribute values of the first predicted node, the second predicted node, and the third predicted node of the current node.
[0013] The decoding apparatus provided in this application includes: a parsing module, used to parse the received attribute bitstream to obtain the reconstruction residual of the current node; a second intra-frame prediction module, used to perform the steps of the intra-frame prediction method applicable to the decoding end as described in this application embodiment on the current node to obtain the attribute prediction value of the current node; and a reconstruction module, used to determine the attribute reconstruction value of the current node based on the attribute prediction value of the current node and the reconstruction residual of the current node.
[0014] The decoder provided in this application includes a memory and a processor; wherein the memory is used to store a computer program that can run on the processor; the processor is used to execute, when running the computer program, an intra-frame prediction method applicable to the decoding end as described in this application embodiment, or a point cloud decoding method as described in this application embodiment.
[0015] The intra-frame prediction apparatus provided in this application embodiment is applied at the encoding end and includes: a fourth determining module, configured to determine a first predicted node of the current node from a first candidate node within a first range of the current node; a fifth determining module, configured to determine a second predicted node of the current node from a second candidate node within a second range of the current node when the number of the first predicted nodes is less than a first threshold; wherein the second range is greater than the first range; a sixth determining module, configured to determine a third predicted node of the current node from the first K third candidate nodes in the encoding order of the current node when the total number of the first predicted nodes and the second predicted nodes is less than the first threshold; wherein K is greater than 0; and a third intra-frame prediction module, configured to obtain the attribute prediction value of the current node based on the attribute values of the first predicted node, the second predicted node, and the third predicted node of the current node.
[0016] The encoding apparatus provided in this application includes: a fourth intra-frame prediction module, used to perform the steps of the intra-frame prediction method applicable to the encoding end as described in this application embodiment on the current node of the point cloud to obtain the attribute prediction value of the current node; a seventh determination module, used to determine the residual between the attribute prediction value of the current node and the original attribute value of the current node; and an encoding module, used to encode the residual of the current node into an attribute bitstream.
[0017] An encoder provided in this application includes a memory and a processor; the memory is used to store a computer program that can run on the processor; the processor is used to execute, when running the computer program, an intra-frame prediction method applicable to the encoding end as described in this application embodiment, or a point cloud encoding method as described in this application embodiment.
[0018] An electronic device provided in this application includes a memory and a processor; the memory is used to store a computer program that can run on the processor; the processor is used to execute, when running the computer program, an intra-frame prediction method applicable to the decoding end as described in this application embodiment, or a point cloud decoding method as described in this application embodiment, or an intra-frame prediction method applicable to the encoding end as described in this application embodiment, or a point cloud encoding method as described in this application embodiment.
[0019] The computer-readable storage medium provided in this application embodiment stores a computer program thereon. When the computer program is executed by a processor, it implements the intra-frame prediction method applicable to the decoding end as described in this application embodiment; or, when the computer program is executed by a processor, it implements the point cloud decoding method as described in this application embodiment; or, when the computer program is executed by a processor, it implements the intra-frame prediction method applicable to the encoding end as described in this application embodiment; and when the computer program is executed by a processor, it implements the point cloud encoding method as described in this application embodiment.
[0020] In this embodiment, the first predicted node of the current node is determined from the first candidate nodes within the first range of the current node. If the number of the first predicted nodes is less than the first threshold, instead of traversing the first K third candidate nodes under the encoding order of the current node to select other predicted nodes of the current node, the current node is first located in the second range, and the second predicted node that meets the conditions is searched. If the total number of predicted nodes obtained is still less than the first threshold, a full search is performed among the first K third candidate nodes. In this way, the predicted nodes found at the end can include the nodes closest to the current node as much as possible, thereby improving the accuracy of intra-frame prediction and indirectly improving the coding efficiency, so that the residual occupies less bandwidth. Attached Figure Description
[0021] The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate embodiments consistent with this application and, together with the specification, serve to explain the technical solutions of this application.
[0022] Figure 1 is a schematic diagram of a 3D point cloud image and a magnified view of a part of it;
[0023] Figure 2 is a schematic diagram of a point cloud image and its corresponding data storage format;
[0024] Figure 3A is a schematic diagram of the coding framework of the point cloud compression reference platform provided by the Audio Video Standard (AVS) Point Cloud Compression Task Force, namely the Point Cloud Reference Model (PCRM).
[0025] Figure 3B is a schematic diagram of the decoding framework of the point cloud compression reference platform PCRM provided by the AVS point cloud compression task force.
[0026] Figure 4A is a schematic diagram of placing the entire point cloud within a cube-shaped bounding box;
[0027] Figure 4B is a schematic diagram of the octree partitioning process of the point cloud;
[0028] Figure 5 is a schematic diagram of the encoding order of Merton codes in two-dimensional space;
[0029] Figure 6 is a schematic diagram of the encoding order of Merton codes in three-dimensional space;
[0030] Figure 7A is a schematic diagram of the current node and its coplanar nodes;
[0031] Figure 7B is a schematic diagram of the current node and its collinear nodes;
[0032] Figure 7C is a schematic diagram of the current node and its common nodes;
[0033] Figure 8 is a schematic diagram of the implementation process of the intra-frame prediction method in an embodiment of this application;
[0034] Figure 9 is a schematic diagram of the second candidate node within the second range of the embodiments of this application;
[0035] Figure 10 is a schematic diagram showing the location of the second candidate node within the second range of an embodiment of this application;
[0036] Figure 11 is a schematic diagram of the implementation process of the intra-frame prediction method in an embodiment of this application;
[0037] Figure 12 is a schematic diagram showing the position of the first candidate node within the first range according to an embodiment of this application;
[0038] Figure 13 is a schematic diagram of an example of the first and second scopes of an embodiment of this application;
[0039] Figure 14 is a schematic diagram of an example of a second candidate node within the second scope of an embodiment of this application;
[0040] Figure 15 is a schematic diagram of the intra-frame prediction device according to an embodiment of this application;
[0041] Figure 16 is a schematic diagram of the structure of the encoding device according to an embodiment of this application;
[0042] Figure 17 is a schematic diagram of the intra-frame prediction device according to an embodiment of this application;
[0043] Figure 18 is a schematic diagram of the decoding device according to an embodiment of this application;
[0044] Figure 19 is a schematic diagram of the hardware entity of the electronic device according to an embodiment of this application;
[0045] Figure 20 is a schematic diagram of the hardware entity of the encoder according to an embodiment of this application;
[0046] Figure 21 is a schematic diagram of the hardware entity of the decoder according to an embodiment of this application. Detailed Implementation
[0047] To make the objectives, technical solutions, and advantages of the embodiments of this application clearer, the specific technical solutions of this application will be further described in detail below with reference to the accompanying drawings of the embodiments of this application. The following embodiments are used to illustrate this application, but are not intended to limit the scope of this application.
[0048] Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this application belongs. The terminology used herein is for the purpose of describing embodiments of this application only and is not intended to limit this application.
[0049] In the following description, references are made to “some embodiments,” which describe a subset of all possible embodiments. However, it is 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.
[0050] It should be noted that the terms "first, second, third" used in the embodiments of this application are used to distinguish similar or different objects and do not represent a specific order of objects. It is understood that "first, second, third" can be interchanged in a specific order or sequence where permitted, so that the embodiments of this application described herein can be implemented in an order other than that illustrated or described herein.
[0051] The encoding / decoding framework and business scenarios described in the embodiments of this application are for the purpose of more clearly illustrating the technical solutions of the embodiments of this application, and do not constitute a limitation on the technical solutions provided in the embodiments of this application. Those skilled in the art will understand that, with the evolution of encoding / decoding frameworks and the emergence of new business scenarios, the technical solutions provided in the embodiments of this application are also applicable to similar technical problems.
[0052] Before further describing the embodiments of this application, the data format of point clouds, the encoding / decoding framework, and the rule-based processing of point clouds involved in the embodiments of this application will be explained. The encoding / decoding framework and business scenarios described in the embodiments of this application are for the purpose of more clearly illustrating the technical solutions of the embodiments of this application and do not constitute a limitation on the technical solutions provided in the embodiments of this application. Those skilled in the art will understand that with the evolution of encoding / decoding frameworks and the emergence of new business scenarios, the technical solutions provided in the embodiments of this application are also applicable to similar technical problems.
[0053] (1) Data format of point clouds
[0054] A point cloud is a set of discrete points in space that are randomly distributed and represent the spatial structure and surface properties of a three-dimensional object or scene. For example, as shown in Figure 1, 101 is a three-dimensional point cloud image. 102 is a magnified view of a portion of this point cloud image, showing that the surface of the point cloud is composed of densely distributed points.
[0055] The distribution of points in a point cloud in three-dimensional space is random and irregular. Therefore, it is necessary to record the position of each point in space to completely represent a point cloud. Each position has corresponding attribute information, typically three-dimensional color information (r, g, b) reflecting the color of the object; reflectance is also a common attribute, reflecting the surface material of the object. Therefore, point cloud data usually includes attribute information composed of three-dimensional position information (x, y, z), three-dimensional color information (r, g, b), and one-dimensional reflectance information (r).
[0056] Figure 2 shows a point cloud image and its corresponding data storage format. 201 provides six viewing angles for the point cloud image; 202 shows the data storage format of the point cloud image, which consists of a header information part and a data part. The header information includes the data format, data representation type, total number of points in the point cloud, and the content represented by the point cloud. For example, the point cloud in 202 is in ".ply" format, represented by ASCII code, with a total of 207242 points. Each point has three-dimensional position information (x, y, z) and three-dimensional color information (r, g, b).
[0057] (2) Introduction to point cloud compression
[0058] Point cloud acquisition primarily utilizes the following methods: computer generation, 3D laser scanning, and 3D photogrammetry. Computers can generate point clouds of virtual 3D objects and scenes; 3D laser scanning can acquire point clouds of static real-world 3D objects or scenes, with a capacity of millions of point clouds per second; 3D photogrammetry can acquire point clouds of dynamic real-world 3D objects or scenes, with a capacity of tens of millions of point clouds per second. These technologies reduce the cost and time required for point cloud data acquisition and improve data accuracy. This transformation in point cloud data acquisition methods has made the acquisition of massive amounts of point cloud data possible. However, with the growth of application demands, the processing of massive 3D point cloud data encounters bottlenecks limited by storage space and transmission bandwidth.
[0059] Taking a point cloud video with a frame rate of 30 frames per second (fps) as an example, each frame contains 700,000 points. Each point has floating-point (float) 3D position information (x, y, z) and uchar 3D color information (r, g, b). Therefore, the data size of a 10-second point cloud video is approximately 0.7 million × (4 bytes × 3 + 1 byte × 3) × 30 fps × 10 s = 3.15 GB. In contrast, a 10-second 1280 × 720 2D video with a YUV sampling format of 4:2:0 and a frame rate of 24 fps has a data size of approximately 1280 × 720 × 12 bits × 24 frames × 10 s ≈ 0.33 GB. A 10-second two-view 3D video has a data size of approximately 0.33 × 2 = 0.66 GB. It is evident that the data size of a point cloud video far exceeds that of 2D and 3D videos of the same duration. Therefore, in order to better achieve data management, save server storage space, and reduce transmission traffic and transmission time between the server and the client, point cloud compression has become a key issue in promoting the development of the point cloud industry.
[0060] Point cloud compression typically involves compressing the 3D position information and attribute information of points separately. At the encoding end, the 3D position information of points is first encoded in the geometric encoder to obtain reconstructed 3D position information; this reconstructed 3D position information is then input as supplementary information into the attribute encoder to assist in the compression of point attribute information. At the decoding end, the 3D position information of points is first decoded in the geometric decoder; this decoded 3D position information is then input as supplementary information into the attribute decoder to assist in the compression of point attribute information. The entire encoder-decoder system consists of preprocessing / post-processing, geometric encoding / decoding, and attribute encoding / decoding.
[0061] Figure 3A shows the encoding framework of the PCRM point cloud compression reference platform provided by the AVS point cloud compression task force, and Figure 3B shows the decoding framework of the PCRM point cloud compression reference platform provided by the AVS point cloud compression task force. It should be noted that the platform type to which the technical solutions of the embodiments of this application are applicable is not limited. The technical solutions of the embodiments of this application are not only applicable to the PCRM point cloud compression reference platform, but also to various other types of point cloud compression reference platforms.
[0062] For the PCRM reference software, as shown in Figure 3A, in the geometric encoding part of the encoding end, firstly, the acquired 3D position information is preprocessed. The geometric origin is normalized to the minimum position in the point cloud space through coordinate translation, and the 3D position information is converted from floating-point to integer through coordinate quantization, resulting in regularized 3D position information, i.e., a regularized point cloud space, which facilitates subsequent regularization processing. Then, geometric encoding is performed on the regularized 3D position information. For example, in some embodiments, an octree structure can be used to recursively partition the regularized point cloud space. Each time, the current node is divided into eight sub-blocks of the same size, and the occupancy codeword status of each sub-block is determined. If there are no points in the sub-block, it is recorded as empty; otherwise, it is recorded as non-empty. The occupancy codeword information of all blocks is recorded at the last level of the recursive partitioning and then encoded.
[0063] As shown in Figure 3A, the 3D position information expressed through an octree structure is input into the geometric entropy encoder to form a geometric code stream. Simultaneously, geometric reconstruction processing is performed within the encoder, and the reconstructed 3D position information is input as additional information into the attribute encoder. In the attribute encoding section, the acquired attribute information is first preprocessed. Since the 3D position information changes after geometric encoding, attribute values need to be reassigned to each point after geometric encoding; this process is called attribute recoloring. Furthermore, if the processed attribute information is 3D color information, the original colors need to be transformed into the YUV color space, which better matches the visual characteristics of the human eye. Then, the preprocessed attribute information is encoded. In some embodiments, for attribute encoding, the point cloud first needs to be reordered using Morton codes. Therefore, the traversal order for attribute encoding is the Morton order. The attribute prediction method in PCRM is a single-point prediction based on the Morton order. That is, following the Morton order, we trace back one point from the current point to be encoded (also called the current node) to find the prediction reference point (also called the prediction node) of the current point to be encoded. Then, the attribute reconstruction value of the prediction reference point is used as the attribute prediction value. The attribute residual is the difference between the preprocessed attribute value of the current point to be encoded and the attribute prediction value. Finally, the residual is quantized and the quantized residual is input into the attribute entropy encoder to form the attribute code stream.
[0064] It should be noted that since the encoding and decoding framework of the relevant PCRM only involves a single frame, attribute prediction specifically refers to intra-frame prediction.
[0065] At the decoding end, as shown in Figure 3B, the geometric bitstream and attribute bitstream are decoded separately. In the geometric bitstream decoding section, entropy decoding is first performed to obtain the 3D position information of each node. Then, an octree structure is constructed in the same way as the geometric encoding to reconstruct the coordinate-transformed 3D position information expressed through the octree structure. This information is then inverse-quantized and inverse-translated to obtain the decoded 3D position information. Simultaneously, the decoded 3D position information is input as additional information into the attribute decoder. In the attribute bitstream decoding section, Morton order is constructed in the same way as the encoding end. Entropy decoding is first performed on the attribute bitstream to obtain the quantized residual information. Then, the residual information is inverse-quantized to obtain the residual value. Similarly, in the same way as the attribute encoding, the attribute prediction value of the current point to be decoded (also called the current node) is obtained. Then, the attribute prediction value is added to the residual value to recover the YUV attribute value of the current point to be decoded. Finally, the decoded attribute information is obtained through inverse color space transformation.
[0066] (3) Regularization of point clouds
[0067] Due to the irregular spatial distribution of point clouds, the encoding process faces challenges. Therefore, a recursive octree structure is adopted to represent the points in the point cloud as the centers of a cube in a regularized manner. As shown in Figure 4A, the entire point cloud is first placed within a cube-shaped bounding box, and the coordinates of the points in the point cloud are represented as (x...). q ,y q ,z q ), q=0,...,Q-1, where Q is the total number of points in the point cloud. The boundary values of the point cloud in the x, y, and z directions are shown in equations (1) to (6) below, respectively:
[0068] x min =min(x 0 ,x 1 ,...x q-1 Equation (1);
[0069] y min =min(y 0 ,y 1 ,...y q-1 Equation (2);
[0070] z min =min(z) 0 ,z 1 ,...z q-1 Equation (3);
[0071] x max =max(x 0 ,x 1 ,...x q-1 Equation (4);
[0072] y max =max(y 0 ,y 1 ,...y q-1 Equation (5);
[0073] z max =max(z) 0 ,z 1 ,...z q-1 Equation (6);
[0074] Then the origin of the bounding box (x origin ,y origin ,z origin The following formulas (7) to (9) can be used to calculate the following:
[0075] x origin =int(floor(x) min Equation (7);
[0076] y origin =int(floor(y) min Formula (8);
[0077] z origin =int(floor(z) min Equation (9);
[0078] The dimensions of the bounding box in the x, y, and z directions can be calculated using the following equations (10) to (12):
[0079] BoudingBoxSize x =int(x max -x origin Equation (10) + 1;
[0080] BoudingBoxSize y =int(y max -y origin Equation (11) + 1;
[0081] BoudingBoxSize z =int(z max -z originEquation (12) + 1;
[0082] Then, as shown in Figure 4B, the bounding box of the cube is first divided into eight sub-blocks using an octree. Then, the non-empty blocks (i.e., blocks containing points) in the sub-blocks are divided into an octree again. This process is repeated recursively until a certain depth is reached. The non-empty sub-blocks of the final size are called voxels. Each voxel contains one or more points. The geometric positions of these points are normalized to the center point (node) of the voxel. The attribute value of the center point is the average of the attribute values of all points in the voxel (i.e., the original attribute value).
[0083] Understandably, regularizing point clouds into blocks in space facilitates the description of relationships between points in the point cloud, thereby enabling the expression of specific encoding orders. Each voxel is encoded in a certain order, that is, the point (or "node") represented by the voxel is encoded. A commonly used encoding order is the cross-separated Morton order. Figure 5 shows the Morton code encoding order in two-dimensional space, taking an 8×8 block as an example. The order of the arrows indicates the encoding order of nodes under the Morton order. 501 is the Morton encoding order of a 2×2 pixel "z" shape in the block, 502 is the Morton encoding order of a "z" shape between four 2×2 blocks, and 503 is the Morton encoding order of a "z" shape between four 4×4 blocks, which together form the Morton encoding order of the entire 8×8 block. The Morton encoding order extended to three-dimensional space is shown in Figure 6. The figure shows 16 nodes. Within each "z", the Morton encoding order between each "z" is first encoded along the x-axis, then along the y-axis, and finally along the z-axis.
[0084] (4) Intra-frame prediction of attributes in point cloud compression
[0085] In the intra-frame prediction part of point cloud compression, for color attributes, the prediction of the current node is mainly based on the neighboring nodes of the current node. The residual information is calculated based on the attribute prediction value and the original attribute value of the current node. After quantization and other processes, the residual information is encoded into the bitstream and transmitted to the decoding end. After receiving and parsing the bitstream, the decoding end obtains the residual information through inverse transformation and inverse quantization. The decoding end predicts the attribute prediction value through the same process. After superimposing the residual information, the attribute reconstruction value of the current node is obtained.
[0086] In this process, intra-frame attribute prediction utilizes the geometric relationships between nodes, using geometrically coplanar, collinear, and / or concurrent nodes of the current node as prediction nodes. Simultaneously, the prediction nodes must satisfy the condition that they were encoded before the current node. Then, the weight values are set to the reciprocal of the geometric Manhattan distance between the prediction node and the current node; that is, coplanar nodes have a weight of 1, collinear nodes have a weight of 1 / 2, and concurrent nodes have a weight of 1 / 3. The weighted average of the attribute reconstruction values of all prediction nodes is calculated as the attribute prediction value (specifically, for the first encoded node, there is no reference point for prediction, and its attribute prediction value is set to 0). Based on these two conditions:
[0087] Condition a) It satisfies the coplanar, collinear and / or concurrent relationships with the current node;
[0088] Condition b) is encoded before the current node.
[0089] As shown in Figures 7A to 7C, assuming the current node O has the index 7, there are 6 faces, 12 edges, and 8 vertices. As shown in Figure 7A, the co-faced nodes are 3, 5, 6, 14, 21, and 35; as shown in Figure 7B, the collinear nodes are 1, 2, 4, 10, 12, 17, 20, 28, 33, 34, 42, and 49; as shown in Figure 7C, the concurrent nodes are 0, 8, 16, 24, 32, 40, 48, and 56.
[0090] Of all these coplanar nodes, collinear nodes, and concurrent nodes, regardless of the current node's position, the coplanar nodes 3, 5, and 6, the collinear nodes 1, 2, 4, 10, 12, 17, 20, 33, and 34, and the concurrent nodes 0, 8, 16, 24, 32, 40, and 48 are likely to satisfy the condition "encoding completed before the current node". Therefore, the predicted node is generated from the coplanar nodes 3, 5, and 6, the collinear nodes 1, 2, 4, 10, 12, 17, 20, 33, and 34, and the concurrent nodes 0, 8, 16, 24, 32, 40, and 48.
[0091] (5) The position of attribute intra-frame prediction in the point cloud coding framework
[0092] As shown in Figures 3A and 3B, this technique is applied to the intra-prediction part of the PCRM point cloud coding framework, affecting both the encoder and decoder simultaneously.
[0093] This application provides an intra-frame prediction method. The method is applicable to the encoding end and can be applied to electronic devices with information processing capabilities. The electronic devices can be any device with point cloud video encoding / decoding capabilities or encoding capabilities, such as televisions, projectors, mobile phones, computers, tablets, virtual reality (VR) headsets, etc.
[0094] Figure 8 is a schematic diagram of the implementation flow of the intra-frame prediction method according to an embodiment of this application. As shown in Figure 8, the method may include the following steps 801 to 804:
[0095] Step 801: Determine the first predicted node of the current node from the first candidate nodes within the first range of the current node.
[0096] In some embodiments, a node that meets a condition among the first candidate nodes can be used as the first predicted node; wherein, the condition is a non-empty node encoded before the current node.
[0097] During the search for the first candidate node within the first range, it is possible that not all first candidate nodes have been traversed yet, and the total number of currently determined first predicted nodes has reached the second threshold. At this point, the search can be ended, and the attribute prediction value of the current node can be obtained directly based on the attribute values of these predicted nodes. The search for the next first candidate node can continue. If the next first candidate node is a non-empty node encoded before the current node and its distance from the current node (e.g., Manhattan distance) is less than the maximum distance between the current first predicted node and the current node, then the first candidate node is used as the first predicted node to replace the first predicted node corresponding to the maximum distance.
[0098] In some embodiments, after traversing each first candidate node within a first range, if the total number of determined first predicted nodes is greater than or equal to a first threshold but less than a second threshold, then it is not necessary to continue searching for more predicted nodes. Instead, the attribute prediction value of the current node can be obtained based on the attribute value of the currently obtained first predicted node. Alternatively, step 802 can be executed to continue determining the second predicted node.
[0099] It should be noted that when implementing step 801, i.e., determining the first predicted node among the first candidate nodes in the first range, the first candidate nodes in the first range can be traversed and searched, or the traversal and search can be performed in order of distance from the current node from closest to furthest. For example, firstly, the first candidate nodes whose distance from the current node is the first sub-distance can be traversed and searched. If the total number of first predicted nodes determined in this range meets the end search condition (e.g., the end search condition is that the total number of currently determined predicted nodes is greater than or equal to the first threshold, or equal to the second threshold), then the range search is not expanded further, that is, other first candidate nodes in the first range are not searched. Based on the attribute values of the currently obtained first predicted nodes, the attribute prediction value of the current node is obtained. If the total number of first predicted nodes determined in the first sub-distance range does not meet the end search condition, then the search range is further expanded, based on the traversal and search of first candidate nodes whose distance from the current node is the second sub-distance, and so on.
[0100] In some embodiments, the current node is the Mth node to be encoded; where M is greater than or equal to a first threshold. This ensures that the number of nodes before the current node is not less than the first threshold, thereby ensuring that the most accurate prediction node is found, thus improving the accuracy of the attribute prediction value of the current node, and consequently making the corresponding residual occupy less bandwidth.
[0101] For the first node to the (M-1)th node, in some embodiments, when the current node is the first node, a specific attribute value is set as the attribute prediction value of the first node; when the current node is a subsequent node of the first node and a node before the Mth node, the attribute prediction value of the subsequent node is obtained based on the attribute reconstruction value of the encoded node.
[0102] The specific attribute value can be any value, and this application does not limit it. For example, the specific attribute value is (0, 0, 0); or (128, 128, 128); or (0, 64, 0); or (128, 0, 0). Of course, the three components of the specific attribute value can be equal or unequal.
[0103] In some embodiments, the mean of the reconstructed attribute values of the encoded nodes can be used as the predicted attribute value for subsequent nodes. In some embodiments, the weighted average of the reconstructed attribute values of the encoded nodes can also be used as the predicted attribute value for subsequent nodes; wherein the weight of the encoded node is negatively correlated with the distance of the node relative to the current node. For example, the weight of the encoded node is the reciprocal of the distance from the node to the current node.
[0104] Step 802: If the number of the first predicted nodes is less than the first threshold, determine the second predicted node of the current node from the second candidate nodes within the second range of the current node; wherein the second range is greater than the first range.
[0105] Similar to the previous description, in some embodiments, nodes that meet certain conditions among the second candidate nodes can be used as second predicted nodes; wherein, the condition is a non-empty node encoded before the current node. During the search among the second candidate nodes within the second range, it is possible that not all second candidate nodes have been traversed, and the total number of currently determined second predicted nodes has reached the second threshold. At this point, the search can end, and the attribute prediction value of the current node can be obtained directly based on the attribute values of these predicted nodes. The search can continue to find the next second candidate node. If the next second candidate node is a non-empty node encoded before the current node and its distance from the current node (e.g., Manhattan distance) is less than the maximum distance among the current second predicted nodes, then this second candidate node is used as the second predicted node, replacing the second predicted node corresponding to the maximum distance.
[0106] In some embodiments, after traversing each second candidate node in the second range, if the total number of determined second predicted nodes and first predicted nodes is greater than or equal to the first threshold but less than the second threshold, then it is not necessary to continue searching for more predicted nodes. Instead, the attribute prediction value of the current node can be obtained based on the attribute value of the first predicted node and the attribute value of the currently obtained second predicted node. Alternatively, step 803 can be executed to continue determining the second predicted node.
[0107] It should be noted that when implementing step 802, i.e., determining the second predicted node among the second candidate nodes in the second range, the search can be performed by traversing the second candidate nodes in the second range, or by traversing the search in order of distance from the current node from closest to furthest. For example, first, the search is performed by traversing the second candidate nodes whose distance from the current node is the third sub-distance. If the total number of second predicted nodes determined within this range meets the end search condition (e.g., the end search condition is that the total number of currently determined predicted nodes is greater than or equal to the first threshold, or equal to the second threshold), then the search range is not expanded further, that is, other second candidate nodes in the second range are not searched. Based on the attribute values of the first predicted node and the attribute values of the currently obtained second predicted nodes, the attribute prediction value of the current node is obtained. If the total number of second predicted nodes determined within the third sub-distance range does not meet the end search condition, then the search range is further expanded, and the search is performed by traversing the search for second candidate nodes whose distance from the current node is the fourth sub-distance, and so on.
[0108] In some embodiments, if the number of first predicted nodes is greater than or equal to the first threshold, step 803 can be omitted, and the attribute prediction value of the current node can be obtained directly based on the attribute value of the first predicted node. Of course, in other embodiments, if the number of first predicted nodes is greater than or equal to the first threshold, the second and / or third predicted nodes can be searched through steps 802 and / or 803, but the total number of predicted nodes cannot exceed the second threshold. Then, the attribute prediction value of the current node is obtained based on the attribute reconstruction values of all the predicted nodes finally found.
[0109] In some embodiments, a node within the second range that meets a condition can be determined as the second predicted node; wherein the condition is a non-empty node encoded before the current node.
[0110] In some embodiments, the first candidate node includes nodes whose distance from the current node is less than or equal to a first distance; the second candidate node includes nodes whose distance from the current node is less than or equal to a second distance; wherein the second distance is greater than the first distance.
[0111] It should be noted that, in this embodiment of the application, the type of distance is not limited, and it can be Manhattan distance, Euclidean distance, or vertical distance, etc.; the so-called vertical distance refers to the distance from the node to the plane on which the surface of the current node is located.
[0112] Furthermore, in some embodiments, the first candidate node includes coplanar nodes of the current node, collinear nodes of the current node, and / or concurrent nodes of the current node.
[0113] Furthermore, in some embodiments, both the first candidate node and the second candidate node are nodes that may have completed encoding before the current node.
[0114] For example, taking the Morton order as the encoding order, the coplanar nodes of the current node include nodes with indices 3, 5 and 6, the collinear nodes of the current node include nodes with indices 1, 2, 4, 10, 12, 17, 20, 33 and 34, and the concurrent nodes of the current node include nodes with indices 0, 8, 16, 24, 32, 40 and 48.
[0115] The types of the first and second distances are not limited; they can be Manhattan distances or distances from the plane containing the surface of the current node. Taking Manhattan distance as an example, as shown in Figure 9, the second distance is greater than or equal to 3. For example, as shown in Figure 9, the second distance is 6 (correspondingly, from the perspective of vertical distance, the second distance is 2, in nodes, that is, the distance from the candidate node to the plane containing the surface of the current node is 2 nodes). The second candidate node is a node whose Manhattan distance from the current node is 2 and / or 3. For example, as shown in Figures 10(a) to (f), the second candidate nodes include nodes with indices 24, 40, 48, 10, 12, 17, 20, 25, 26, 33, 34, 41, 44, 50, 52, 84, 98, 140, 161, 266, and 273.
[0116] Step 803: If the total number of the first predicted nodes and the second predicted nodes is less than the first threshold, determine the third predicted node of the current node from the first K third candidate nodes in the encoding order of the current node; where K is greater than 0.
[0117] In some embodiments, if the total number of the first and second predicted nodes is greater than or equal to the first threshold, the search for the third predicted node can continue through step 803, or the search for predicted nodes can be terminated, and the attribute prediction value of the current node can be obtained based on the attribute values of the first and second predicted nodes.
[0118] It should be noted that, in the embodiments of this application, there is no limitation on the encoding order in which the nodes are encoded sequentially. The encoding order can be Morton order, Hilbert order, or other encoding orders, etc.
[0119] In some embodiments, step 803 can be implemented as follows:
[0120] Following the encoding order, traverse the first K third candidate nodes sequentially:
[0121] When the current total number of predicted nodes is less than the first threshold, the current third candidate node is determined as the third predicted node; and
[0122] When the current total number of predicted nodes is greater than or equal to the first threshold and less than the second threshold, if the distance between the current third candidate node and the current node is less than the maximum distance among the predicted nodes, the current third candidate node is determined as the third predicted node; wherein, the predicted nodes include the currently obtained first predicted node, second predicted node, and third predicted node; and
[0123] When the current total number of predicted nodes is equal to the second threshold, if the distance between the current third candidate node and the current node is less than the maximum distance between the predicted nodes and the current node, or if the distance between the current third candidate node and the current node is equal to the maximum distance between the predicted nodes and the current node and the current third candidate node was encoded before the predicted node corresponding to the maximum distance, then the current third candidate node is replaced as the third predicted node.
[0124] In this embodiment, the specific values of the first threshold and the second threshold are not limited and can be any range. In some embodiments, the first threshold is 3 and the second threshold is 6; thus, without significantly increasing the search complexity, using more prediction nodes can improve the intra-frame prediction accuracy, thereby reducing the bandwidth occupied by the residual.
[0125] It should be noted that if, after traversing all third candidate nodes in step 803, the first threshold number of predicted nodes is still not found, or the number of predicted nodes is less than the second threshold number, the process can proceed directly to step 804. Alternatively, the number of predicted nodes can be filled to the second threshold number before proceeding to step 804. Based on the attribute values of all predicted nodes (including the filled predicted nodes), the attribute prediction value of the current node is obtained. The attribute value of the filled predicted node can be any value. For example, its attribute value is the attribute reconstruction value of any determined predicted node, or its attribute value is a fixed constant, or its attribute value is the attribute value of the predicted node that is closest to the current predicted node among the determined predicted nodes.
[0126] Step 804: Obtain the attribute prediction value of the current node based on the attribute values of the first prediction node, the second prediction node, and the third prediction node of the current node.
[0127] In some embodiments, the attribute prediction value of the current node can be obtained based on the attribute reconstruction values of the first prediction node, the second prediction node, and the third prediction node of the current node.
[0128] Furthermore, in some embodiments, the average or weighted average of the attribute reconstruction values of these predicted nodes can be used as the attribute prediction value of the current node; wherein, the weight value of the predicted node is negatively correlated with the distance to the current node, for example, the weight value is the reciprocal of the distance between the predicted node and the current node.
[0129] In this embodiment, the first predicted node of the current node is determined from the first candidate nodes within the first range of the current node. If the number of the first predicted nodes is less than the first threshold, instead of traversing the first K third candidate nodes under the encoding order of the current node to select other predicted nodes of the current node, the current node is first located in the second range, and the second predicted node that meets the conditions is searched. If the total number of predicted nodes obtained is still less than the first threshold, a full search is performed among the first K third candidate nodes. In this way, the predicted nodes found at the end can include the nodes closest to the current node as much as possible, thereby improving the accuracy of intra-frame prediction and indirectly improving the coding efficiency, so that the residual occupies less bandwidth.
[0130] In some embodiments, if the total number of the first and second predicted nodes is greater than a first threshold, the search for predicted nodes ends, and a full search is no longer performed on the first K third candidate nodes. Instead, the attribute prediction value of the current node is obtained directly based on the attribute values of the first and second predicted nodes. In this way, the predicted node closest to the current node can be found with maximum efficiency, thereby improving coding efficiency.
[0131] In the embodiments of this application, K can be any value, and there is no limitation on the range of K. For example, K is 32.
[0132] This application provides a point cloud encoding method, the method comprising: performing the steps of the intra-frame prediction method of the encoding end on the current node of the point cloud to obtain the attribute prediction value of the current node; determining the residual between the attribute prediction value of the current node and the original attribute value of the current node; and encoding the residual of the current node into an attribute bitstream.
[0133] In some embodiments, the reconstruction residual of the current node is determined; the reconstruction residual is superimposed with the attribute prediction value of the current node to obtain the attribute reconstruction value of the current node.
[0134] In some embodiments, the residual of the current node can be transformed and / or quantized, and then the processed residual can be post-processed by inverse quantization and / or inverse transformation to obtain the reconstructed residual of the current node.
[0135] It should be noted that the description of the above-described point cloud coding method embodiments is similar to the description of the above-described intra-frame prediction method embodiments at the encoding end, and has similar beneficial effects as the method embodiments. For technical details not disclosed in the point cloud coding method embodiments of this application, please refer to the description of the intra-frame prediction method embodiments at the encoding end of this application for understanding.
[0136] Accordingly, this application provides an intra-frame prediction method. This method is applicable to the decoding end and can be applied to electronic devices with information processing capabilities. The electronic devices can be any device with point cloud video encoding and decoding functions or decoding functions, such as televisions, projectors, mobile phones, computers, tablets, virtual reality (VR) headsets, etc.
[0137] Figure 11 is a schematic diagram of the implementation flow of the intra-frame prediction method according to an embodiment of this application. As shown in Figure 11, the method may include the following steps 111 to 114:
[0138] Step 111: Determine the first predicted node of the current node from the first candidate nodes within the first range of the current node.
[0139] In some embodiments, the current node is the Mth node; where M is greater than or equal to the first threshold. Accordingly, when the current node is the first node, a specific attribute value is set as the attribute prediction value of the first node; when the current node is a subsequent node of the first node and a node before the Mth node, the attribute prediction value of the subsequent node is obtained based on the attribute reconstruction value of the decoded node.
[0140] Step 112: If the number of the first predicted nodes is less than the first threshold, determine the second predicted node of the current node from the second candidate nodes within the second range of the current node; wherein the second range is greater than the first range.
[0141] In some embodiments, the method further includes: if the total number of the first predicted nodes and the second predicted nodes is greater than or equal to the first threshold, ending the search for predicted nodes, and obtaining the attribute value of the current node based on the attribute values of the first predicted nodes and the second predicted nodes.
[0142] In some embodiments, a node within the second range that meets a condition can be determined as the second predicted node; wherein the condition is a non-empty node decoded before the current node.
[0143] In some embodiments, the first candidate node includes nodes whose distance from the current node is less than or equal to a first distance; the second candidate node includes nodes whose distance from the current node is less than or equal to a second distance; wherein the second distance is greater than the first distance.
[0144] Furthermore, in some embodiments, the first candidate node includes coplanar nodes of the current node, collinear nodes of the current node, and / or concurrent nodes of the current node. For example,
[0145] Furthermore, in some embodiments, both the first candidate node and the second candidate node are nodes that may have completed decoding before the current node.
[0146] For example, the coplanar nodes of the current node include nodes with indices 3, 5, and 6; the collinear nodes of the current node include nodes with indices 1, 2, 4, 10, 12, 17, 20, 33, and 34; and the concurrent nodes of the current node include nodes with indices 0, 8, 16, 24, 32, 40, and 48.
[0147] In some embodiments, the first distance and the second distance are Manhattan distances.
[0148] Furthermore, in some embodiments, the second distance is greater than or equal to 3, and the second candidate node is a node whose Manhattan distance from the current node is 2 and / or 3.
[0149] For example, the second candidate nodes include nodes with indices of 24, 40, 48, 10, 12, 17, 20, 25, 26, 33, 34, 41, 44, 50, 52, 84, 98, 140, 161, 266, and 273.
[0150] Step 113: If the total number of the first prediction node and the second prediction node is less than the first threshold, determine the third prediction node of the current node from the first K third candidate nodes in the decoding order of the current node; where K is greater than 0.
[0151] In some embodiments, step 113 can be implemented as follows:
[0152] Following the decoding order, traverse the first K third candidate nodes sequentially:
[0153] When the current total number of predicted nodes is less than the first threshold, the current third candidate node is determined as the third predicted node;
[0154] When the current total number of predicted nodes is greater than or equal to the first threshold and less than the second threshold, if the distance between the current third candidate node and the current node is less than the maximum distance between the predicted nodes and the current node, the current third candidate node is determined as the third predicted node; wherein, the predicted nodes include the currently obtained first predicted node, second predicted node and third predicted node.
[0155] When the current total number of predicted nodes is equal to the second threshold, if the distance between the current third candidate node and the current node is less than the maximum distance among the predicted nodes to the current node, or if the distance between the current third candidate node and the current node is equal to the maximum distance among the predicted nodes to the current node and the current third candidate node was decoded before the predicted node corresponding to the maximum distance, then the current third candidate node is replaced as the third predicted node.
[0156] In this embodiment, the specific values of the first threshold and the second threshold are not limited and can be any range. In some embodiments, the first threshold is 3 and the second threshold is 6; thus, without significantly increasing the search complexity, using more prediction nodes can improve the intra-frame prediction accuracy, thereby reducing the bandwidth occupied by the residual.
[0157] Step 114: Obtain the attribute prediction value of the current node based on the attribute values of the first prediction node, the second prediction node, and the third prediction node of the current node.
[0158] In some embodiments, the attribute prediction value of the current node can be obtained based on the attribute reconstruction values of the first prediction node, the second prediction node, and the third prediction node of the current node.
[0159] It is understood that the intra-prediction method at the decoding end is the same as the intra-prediction method at the encoding end. Therefore, the description of the above embodiments of the intra-prediction method at the decoding end is similar to the description of the above embodiments of the intra-prediction method at the encoding end, and has similar beneficial effects. For technical details and other embodiments not disclosed in the embodiments of the intra-prediction method at the decoding end of this application, please refer to the description of the embodiments of the intra-prediction method at the encoding end of this application for understanding.
[0160] This application provides a point cloud decoding method, the method comprising: parsing a received attribute bitstream to obtain a reconstruction residual of the current node; performing the steps of the intra-frame prediction method described at the decoding end on the current node to obtain an attribute prediction value of the current node; and determining an attribute reconstruction value of the current node based on the attribute prediction value of the current node and the reconstruction residual.
[0161] It should be noted that the description of the above embodiments of the point cloud decoding method, wherein the intra-frame prediction method is similar to the description of the intra-frame prediction method embodiments of the encoding end described above, and has similar beneficial effects as the method embodiments. For technical details not disclosed in the embodiments of the point cloud decoding method of this application, please refer to the description of the intra-frame prediction method embodiments of the encoding end of this application for understanding.
[0162] The following describes an exemplary application of the embodiments of this application in a real-world application scenario.
[0163] The implementation method of the PCRM attribute encoder is as follows. In Example 1, the geometrically reconstructed point cloud is recursively divided into several voxels by an octree. The nodes in each voxel perform intra-frame prediction processes to calculate attribute prediction values according to the Morton coding order. For the first node being encoded, the following processes a1), c1), and d1) are executed, and for the remaining nodes, processes b1), c1), and d1) are executed:
[0164] a1) When the current node is the first node to be encoded, there are no reference nodes to predict, and the attribute prediction value of the current node is set to (128, 128, 128).
[0165] b1) Using the coplanar nodes 3, 5 and 6 of the current node, the collinear nodes 1, 2, 4, 10, 12, 17, 20, 33 and 34, and the concurrent nodes 0, 8, 16, 24, 32, 40 and 48 as the search range for prediction nodes, determine a minimum of 3 and a maximum of 6 nodes as prediction nodes, as shown in the following formula (13). Calculate the weighted average of the attribute reconstruction values of all prediction nodes, and use this weighted average as the attribute prediction value of the current node.
[0166]
[0167] Where R is the set of prediction nodes. To predict the attribute reconstruction values of the node, w i The weight of the prediction node is w when the prediction node is an empty node. i =0.
[0168] If the number of predicted nodes determined within the range of coplanar nodes, collinear nodes, and concurrent nodes is less than 3, then the node with the closest Manhattan distance is found among the first 32 nodes in the current node’s Morton order, and 3 nodes are added as predicted nodes. The attribute predicted value is the weighted average of these 3 nodes.
[0169] c1) The residual is the difference between the original attribute value and the predicted attribute value of the current node. Then, the residual is transformed and quantized.
[0170] d1) The attribute prediction value is superimposed with the residual information after inverse quantization, inverse transformation and other operations to obtain the attribute reconstruction value of the current node. This value is used as reference information for subsequent coding units.
[0171] The implementation method of the PCRM attribute decoder is as follows: The geometrically reconstructed point cloud is recursively divided into several voxels by an octree. Nodes in each voxel perform intra-frame prediction processes to calculate attribute prediction values according to the same Morton order as the encoding process. For the first node to be decoded, processes a2) and c2) are executed; for the remaining nodes, processes b2) and c2) are executed.
[0172] a2) When the current node is the first node to be decoded, there are no reference nodes for prediction, and the attribute prediction value of the current node is directly set to (128, 128, 128).
[0173] b) Using the coplanar nodes 3, 5, and 6 of the current node, the collinear nodes 1, 2, 4, 10, 12, 17, 20, 33, and 34, and the concurrent nodes 0, 8, 16, 24, 32, 40, and 48 as the search range for prediction nodes, determine a minimum of 3 and a maximum of 6 nodes as prediction nodes, as shown in the following formula (14). Calculate the weighted average of the attribute reconstruction values of all prediction nodes, and use this weighted average as the attribute prediction value of the current node.
[0174]
[0175] Where R is the set of prediction nodes. To predict the attribute reconstruction values of the node, w i The weight of the prediction node is w when the prediction node is an empty node. i =0.
[0176] If the number of predicted nodes determined within the range of coplanar nodes, collinear nodes, and concurrent nodes is less than 3, then the node with the closest Manhattan distance is found among the first 32 nodes in the current node’s Morton order, and 3 nodes are added as predicted nodes. The attribute predicted value is the weighted average of these 3 nodes.
[0177] c2) Read the residual information of the current node from the bitstream, and after inverse quantization, inverse transformation and other operations, superimpose it with the attribute prediction value of the current node to obtain the attribute reconstruction value of the current node. This value can be used as reference information for subsequent coding units.
[0178] In some embodiments, the intra-frame prediction method used by PCRM consists of two steps:
[0179] a) Using the coplanar nodes, collinear nodes, and concurrent nodes of the current node as the search range for predicted nodes, determine a minimum of 3 and a maximum of 6 nodes as predicted nodes.
[0180] b) When the number of predicted nodes determined within the range of coplanar nodes, collinear nodes, and concurrent nodes is less than 3, traverse the first 32 nodes under the current node's Morton order to find the node with the closest Manhattan distance, and fill in 3 nodes as predicted nodes.
[0181] The technical solutions of this application are implemented at both the encoding and decoding ends. When performing intra-frame prediction, this technical solution is implemented for all nodes. In embodiment 2, a distance-first intra-frame prediction algorithm is provided. Compared to embodiment 1 above, it can find the nearest prediction node with maximum efficiency.
[0182] The technical solution of Example 2 is implemented in the intra-frame prediction part of the encoding end as follows: The geometrically reconstructed point cloud is recursively divided into several voxels by an octree. The nodes in each voxel calculate the attribute prediction value according to the Morton coding order. For the 1st, 2nd and 3rd encoded nodes, processes a), f), and g) are executed, and for the remaining points, processes b), c), d), e), f), and g) are executed.
[0183] a) When the current node is the first node in the encoding, there is no reference node for prediction, and the attribute prediction value of the current node is directly set to (128, 128, 128); when the current node is the second node in the encoding, the first node is used as the prediction node, and its attribute prediction value is the attribute reconstruction value of the first node; when the current node is the third node in the encoding, the first node and the second node are used as the prediction nodes, and its attribute prediction value is the weighted average of the attribute reconstruction values of the first node and the second node.
[0184] b) As shown in Figure 12, the coplanar nodes 3, 5 and 6 of the current node, the collinear nodes 1, 2, 4, 10, 12, 17, 20, 33 and 34, and the concurrent nodes 0, 8, 16, 24, 32, 40 and 48 are used as the search range for the predicted nodes (because these 19 nodes are points that may have been encoded before the current node under the first distance). Within the range of these 19 nodes (i.e., an example of the first range), a minimum of 3 (i.e., an example of the first threshold) and a maximum of 6 (i.e., an example of the second threshold) nodes are determined as predicted nodes.
[0185] c) If the number of predicted nodes determined in b) is less than 3, then the search range is expanded by one circle. That is, in b), the predicted nodes exist in the 3×3×3 range shown in Figure 13 (i.e., an example of the first range), and the predicted nodes after the expansion exist in the 5×5×5 range shown in Figure 13 (i.e., an example of the second range).
[0186] At this point, the index of the current node is 56. The prediction node search range is nodes 24, 40, and 48 with a Manhattan distance of 2 from the current node, and nodes 10, 12, 17, 20, 25, 26, 33, 34, 41, 44, 50, 52, 84, 98, 140, 161, 266, and 273 with a Manhattan distance of 3 from the current node. (Under the second distance, there may be a total of 79 nodes that have been encoded before the current node, but considering that the more points selected, the more the encoding and decoding complexity will increase, 21 of the 79 nodes are selected.) Within the range of these 21 nodes (i.e., an example of the second range), a minimum of 3 and a maximum of 6 nodes are determined as prediction nodes.
[0187] Figure 10 shows a schematic diagram of the predicted node search range in the left, front, down, right, back, and up directions of the current node.
[0188] d) Assuming the number of prediction nodes determined in c) is still less than 3, then among the first 32 nodes in the current node's Morton order, find the node with the closest Manhattan distance, and determine a minimum of 3 and a maximum of 6 nodes as prediction nodes. The method for determining these nodes is as follows:
[0189] First, traverse and judge each of the 32 third candidate nodes in the Morton order. When the number of predicted nodes is less than 3, the current third node is directly determined as the predicted node. Then, all the predicted nodes are arranged in ascending order of Manhattan distance from the current node.
[0190] When the number of prediction nodes is greater than or equal to 3 and less than 6, if the Manhattan distance of the current third candidate node is less than the Manhattan distance of the last prediction node, then the candidate node is selected as the prediction node, and then all prediction nodes are rearranged in ascending order of Manhattan distance from the current node.
[0191] When the number of prediction nodes is equal to 6, if the Manhattan distance of the current third candidate node is less than the Manhattan distance of the last prediction node, or if the Manhattan distance of the current third candidate node is equal to the Manhattan distance of the last prediction node and the index of the current third candidate node is less than the index of the last prediction node, then the candidate node replaces the original last prediction node, and then all prediction nodes are rearranged in ascending order of Manhattan distance.
[0192] e) As shown in equation (15), calculate the weighted average of the attribute reconstruction values of all predicted nodes as the attribute prediction value of the current node:
[0193]
[0194] Where R is the set of prediction nodes. To predict the attribute reconstruction values of the node, wi The weight of the predicted node is the reciprocal of the geometric Manhattan distance between the predicted node and the current node;
[0195] f) The residual is the difference between the original attribute value and the predicted value of the current node. Then, the residual is transformed and quantized.
[0196] g) The attribute prediction values are superimposed with the residual information after inverse quantization, inverse transformation, etc., to obtain the attribute reconstruction value of the current node as reference information for subsequent coding units.
[0197] The specific process of intra-frame prediction at the decoding end in Example 2 is as follows: The geometrically reconstructed point cloud is recursively divided into several voxels by an octree. Nodes in each voxel perform intra-frame prediction to calculate attribute prediction values according to the same Morton order as in the encoding process. For the first node being decoded, processes a) and f) are executed; for the remaining nodes, processes b), c), d), e), and f) are executed.
[0198] a) When the current node is the first node to be decoded, there is no reference point for prediction, and its attribute prediction value is directly set to (128, 128, 128); when the current node is the second node to be decoded, the first node is used as the prediction node, and its attribute prediction value is the attribute decoding value (i.e., attribute reconstruction value) of the first node; when the current node is the third node to be decoded, the first and second nodes are used as prediction nodes, and its attribute prediction value is the weighted average of the attribute decoding values of the first and second nodes.
[0199] b) Using the coplanar nodes 3, 5 and 6 of the current node, the collinear nodes 1, 2, 4, 10, 12, 17, 20, 33 and 34, and the concurrent nodes 0, 8, 16, 24, 32, 40 and 48 as the search range for prediction nodes, determine a minimum of 3 and a maximum of 6 nodes as prediction nodes within this range of 19 nodes.
[0200] c) Assuming the number of predicted nodes determined in b) is less than 3, the search range is expanded by one circle. At this time, the index of the current node is 56, and the search range of predicted nodes is 24, 40, and 48, which are 2 Manhattan distances away from the current node, and 10, 12, 17, 20, 25, 26, 33, 34, 41, 44, 50, 52, 84, 98, 140, 161, 266, and 273, which are 3 Manhattan distances away from the current node. At this time, a minimum of 3 and a maximum of 6 nodes are determined as predicted nodes within the range of these 21 nodes.
[0201] d) Assuming the number of prediction nodes determined in c) is still less than 3, then among the first 32 nodes in the current node's Morton order, find the node with the closest Manhattan distance, and determine a minimum of 3 and a maximum of 6 nodes as prediction nodes. The method for determining these nodes is as follows:
[0202] First, traverse and judge each of the 32 third candidate nodes in the Morton order. When the number of predicted nodes is less than 3, the current third node is directly determined as the predicted node. Then, all the predicted nodes are arranged in ascending order of Manhattan distance from the current node.
[0203] When the number of prediction nodes is greater than or equal to 3 and less than 6, if the Manhattan distance of the current third candidate node is less than the Manhattan distance of the last prediction node, then the candidate node is selected as the prediction node, and then all prediction nodes are rearranged in ascending order of Manhattan distance from the current node.
[0204] When the number of prediction nodes is equal to 6, if the Manhattan distance of the current third candidate node is less than the Manhattan distance of the last prediction node, or if the Manhattan distance of the current third candidate node is equal to the Manhattan distance of the last prediction node and the index of the current third candidate node is less than the index of the last prediction node, then the candidate node replaces the original last prediction node, and then all prediction nodes are rearranged in ascending order of Manhattan distance.
[0205] e) As shown in equation (16), calculate the weighted average of the attribute decoding values of all predicted nodes as the attribute prediction value of the current node:
[0206]
[0207] Where R is the set of prediction nodes. To predict the attribute reconstruction values of the node, w i The weight of the predicted node is the reciprocal of the geometric Manhattan distance between the predicted node and the current node;
[0208] f) Read the residual information of the current node from the bitstream, and after inverse quantization, inverse transformation and other operations, superimpose it with the attribute prediction value of the current node to obtain the attribute reconstruction value of the current node as reference information for subsequent coding units.
[0209] The technical solution in Example 2 applies to the intra-frame prediction part of the encoding / decoding framework.
[0210] Depth-first intra-frame prediction algorithms can employ various coding orders, including but not limited to Morton order or Hilbert order.
[0211] The depth-first intra-frame prediction algorithm can expand the prediction node search range (i.e., the second range) to 79 nodes under the second distance.
[0212] Distance-based intra-frame prediction algorithms can employ various weight selection methods, including but not limited to weights based on Euclidean distance and fixed constant weights.
[0213] The technical solution of Embodiment 2 is applicable to the intra-frame prediction coding and decoding part. By using the search range of the first distance and the second distance, the node closest to the current node is first located. When it cannot be found, a full search is performed among the first 32 nodes in the Morton order. This can find the prediction node closest to the current node with the greatest efficiency, thereby improving coding efficiency.
[0214] The technical solution of Example 2 was tested on AVS's latest point cloud compression platform PCRM3.0, and the test results are shown in Tables 1 to 4.
[0215] Table 1 shows the test results of this embodiment on the Cat1B and Cat3 datasets under the condition C1 (C1-limit-lossy geometry, lossy attributes) with finite geometric loss and lossy attributes. As shown in Table 1, compared with the performance of the PCRM benchmark platform, this embodiment improves the EtE BD-rate in all three dimensions of color attributes Y, Cb, and Cr. For example, for the Cat1B test results, the EtE BD-rate for the Y attribute is improved by 0.1% compared with the PCRM benchmark platform. Similarly, for the Cat3 test results, the EtE BD-rate for the Cr attribute is improved by 1.5% compared with the PCRM benchmark platform.
[0216] Table 1 C1-limit-lossy geometry,lossy attributes
[0217]
[0218] Table 2 shows the test results of this embodiment on the Cat1B and Cat3 datasets under the condition C2 (lossless geometry, lossy attributes) with geometrically lossless but attribute-lossy properties. As shown in Table 2, compared with the performance of the PCRM benchmark platform, this embodiment improves the EtE BD-rate in all three dimensions of color attributes Y, Cb, and Cr. For example, for the Cat1B test results, the EtE BD-rate for the Y attribute is 4.4% better than the PCRM benchmark platform. Similarly, for the Cat3 test results, the EtE BD-rate for the Cr attribute is 4.2% better than the PCRM benchmark platform.
[0219] Table 2 C2-lossless geometry,lossy attributes
[0220]
[0221] Table 3 shows the test results of this embodiment on the Cat1B and Cat3 datasets under the condition C3 (lossless geometry, limit-lossy attributes). As shown in Table 3, compared with the performance of the PCRM benchmark platform, this embodiment improves the EtE BD-rate in all three dimensions of color attributes Y, Cb, and Cr. For example, for the Cat1B test results, the EtE BD-rate for the Cb attribute is improved by 4.1% compared with the PCRM benchmark platform. Similarly, for the Cat3 test results, the EtE BD-rate for the Cr attribute is improved by 3.5% compared with the PCRM benchmark platform.
[0222] Table 3 C1-lossless geometry,limit-lossy attributes
[0223]
[0224] Table 4 shows the test results of this embodiment on the Cat1B and Cat3 datasets under the condition of lossless geometry and lossless attributes (C4). As shown in Table 4, compared with the performance of the PCRM benchmark platform, this embodiment improves the bpip ratio for color attributes. For example, for the Cat1B test results, the bpip ratio is 99.6% of the output bitstream of the PCRM benchmark platform, meaning the bitstream size is reduced by 0.4% compared to the PCRM benchmark platform. Similarly, for the Cat3 test results, the bpip ratio is 99.9% of the output bitstream of the PCRM benchmark platform, meaning the bitstream size is reduced by 0.1% compared to the PCRM benchmark platform. It is evident that this embodiment can achieve better distortion with fewer codewords.
[0225] Table 4 C1-lossless geometry,lossless attributes
[0226]
[0227] The technical solution in Example 2 provides a distance-first prediction node search method during intra-frame prediction, which can find the prediction node closest to the current node with maximum efficiency, thereby improving coding efficiency, as detailed below:
[0228] (1) A depth-first method is proposed to find the predicted node;
[0229] (2) It is proposed to use 3 to 6 prediction nodes to perform weighted average to obtain the attribute prediction value of the current node.
[0230] In some embodiments, the Morton order encoding method used in the above embodiments can be changed to other encoding orders, such as Hilbert order.
[0231] In some embodiments, the predicted node search range under the second distance in the above embodiments (i.e., an example of the second range) can be expanded to 79 nodes, as shown in Figure 14, by adding nodes with indices 0, 1, 2, 3, 4, 5, 6, 8, 9, 11, 13, 16, 18, 19, 22, 27, 32, 36, 37, 38, 45, 54, 64, 66, 68, 70, 80, 82, 86, 96, 100, 102, 128, 129, 132, 133, 136, 137, 141, 160, 164, 165, 192, 196, 256, 257, 258, 259, 264, 265, 267, 272, 274, 275, 320, 322, 384, and 385.
[0232] In some embodiments, the weighted average method based on Manhattan distance in this embodiment is replaced with other methods, such as weighted average based on Euclidean distance, weighted average based on a fixed constant, etc.
[0233] Based on the foregoing embodiments, the intra-frame prediction device provided in this application, including the modules and the units included in each module, can be implemented by an encoder or processor in an electronic device; of course, it can also be implemented by specific logic circuits; in the implementation process, the processor can be a central processing unit (CPU), microprocessor (MPU), digital signal processor (DSP), field programmable gate array (FPGA), or graphics processing unit (GPU), etc.
[0234] Figure 15 is a schematic diagram of the intra-frame prediction device according to an embodiment of this application. As shown in Figure 15, the intra-frame prediction device 150 is applied at the coding end and includes:
[0235] The fourth determining module 151 is used to determine the first predicted node of the current node from the first candidate nodes within the first range of the current node;
[0236] The fifth determining module 152 is used to determine a second predicted node of the current node from a second candidate node within a second range of the current node when the number of the first predicted nodes is less than a first threshold; wherein the second range is greater than the first range;
[0237] The sixth determining module 153 is used to determine the third predicted node of the current node from the first K third candidate nodes in the encoding order of the current node when the total number of the first predicted node and the second predicted node is less than the first threshold; wherein K is greater than 0.
[0238] The third intra-frame prediction module 154 is used to obtain the attribute prediction value of the current node based on the attribute values of the first prediction node, the second prediction node and the third prediction node of the current node.
[0239] In some embodiments, the third intra-frame prediction module 154 is further configured to: end the search for prediction nodes when the total number of the first prediction nodes and the second prediction nodes is greater than or equal to the first threshold, and obtain the attribute value of the current node based on the attribute values of the first prediction nodes and the second prediction nodes.
[0240] In some embodiments, the current node is the Mth node; wherein M is greater than or equal to the first threshold.
[0241] In some embodiments, the third intra-frame prediction module 154 is further configured to: set a specific attribute value as the attribute prediction value of the first node when the current node is the first node; and obtain the attribute prediction value of the subsequent node based on the attribute reconstruction value of the encoded node when the current node is a subsequent node of the first node and a node before the Mth node.
[0242] In some embodiments, the first candidate node includes nodes whose distance from the current node is less than or equal to a first distance; the second candidate node includes nodes whose distance from the current node is less than or equal to a second distance; wherein the second distance is greater than the first distance.
[0243] In some embodiments, the first candidate node includes coplanar nodes of the current node, collinear nodes of the current node, and / or concurrent nodes of the current node.
[0244] In some embodiments, both the first candidate node and the second candidate node are nodes that may have completed encoding before the current node.
[0245] In some embodiments, the coplanar nodes of the current node include nodes with indices 3, 5, and 6; the collinear nodes of the current node include nodes with indices 1, 2, 4, 10, 12, 17, 20, 33, and 34; and the concurrent nodes of the current node include nodes with indices 0, 8, 16, 24, 32, 40, and 48.
[0246] In some embodiments, the first distance and the second distance are Manhattan distances.
[0247] In some embodiments, the second distance is greater than or equal to 3, and the second candidate node is a node whose Manhattan distance from the current node is 2 and / or 3.
[0248] In some embodiments, the second candidate node includes nodes with indices of 24, 40, 48, 10, 12, 17, 20, 25, 26, 33, 34, 41, 44, 50, 52, 84, 98, 140, 161, 266, and 273.
[0249] In some embodiments, the fifth determining module 152 is configured to: determine a node in the second range that meets a condition as the second predicted node; wherein the condition is a non-empty node encoded before the current node.
[0250] In some embodiments, the sixth determining module 153 is configured to: traverse the first K third candidate nodes sequentially according to the encoding order: when the current total number of predicted nodes is less than the first threshold, determine the current third candidate node as the third predicted node; when the current total number of predicted nodes is greater than or equal to the first threshold and less than the second threshold, if the distance between the current third candidate node and the current node is less than the maximum distance among the predicted nodes to the current node, determine the current third candidate node as the third predicted node; wherein, the predicted nodes include the currently obtained first predicted node, second predicted node, and third predicted node; when the current total number of predicted nodes is equal to the second threshold, if the distance between the current third candidate node and the current node is less than the maximum distance among the predicted nodes to the current node, or, if the distance between the current third candidate node and the current node is equal to the maximum distance among the predicted nodes to the current node and the current third candidate node was encoded before the predicted node corresponding to the maximum distance, replace the predicted node corresponding to the maximum distance with the current third candidate node as the third predicted node.
[0251] In some embodiments, the first threshold is 3 and the second threshold is 6.
[0252] In some embodiments, the third intra-frame prediction module 154 is configured to: obtain the attribute prediction value of the current node based on the attribute reconstruction values of the first prediction node, the second prediction node and the third prediction node of the current node.
[0253] The above description of the embodiments of the apparatus 150 is similar to the description of the intra-frame prediction method embodiments of the encoding end described above, and has similar beneficial effects as these method embodiments. For technical details not disclosed in the apparatus embodiments of this application, please refer to the description of the intra-frame prediction method embodiments of the encoding end of this application for understanding.
[0254] Based on the foregoing embodiments, the encoding device provided in this application, including the modules and the units included in each module, can be implemented by an encoder or processor in an electronic device; of course, it can also be implemented by specific logic circuits; in the implementation process, the processor can be a central processing unit (CPU), microprocessor (MPU), digital signal processor (DSP), field programmable gate array (FPGA), or graphics processing unit (GPU), etc.
[0255] Figure 16 is a schematic diagram of the structure of the encoding device according to an embodiment of this application. As shown in Figure 16, the encoding device 160 includes:
[0256] The fourth intra-frame prediction module 161 is used to perform the steps of the intra-frame prediction method as described in the encoding end of the embodiment of this application on the current node of the point cloud to obtain the attribute prediction value of the current node.
[0257] The seventh determining module 162 is used to determine the residual between the predicted attribute value of the current node and the original attribute value of the current node;
[0258] Encoding module 163 is used to encode the residual of the current node into an attribute bitstream.
[0259] In some embodiments, the encoding device 160 further includes: an eighth determining module, configured to determine the reconstruction residual of the current node; and a reconstruction module, configured to superimpose the reconstruction residual with the attribute prediction value of the current node to obtain the attribute reconstruction value of the current node.
[0260] The above description of the embodiments of device 160 is similar to the description of the intra-frame prediction method embodiments of the encoding end described above, and has similar beneficial effects as these method embodiments. For technical details not disclosed in the device embodiments of this application, please refer to the description of the intra-frame prediction method embodiments of the encoding end of this application for understanding.
[0261] Figure 17 is a schematic diagram of the intra-frame prediction device according to an embodiment of this application. As shown in Figure 17, the intra-frame prediction device 170 is applied at the decoding end and includes:
[0262] The first determining module 171 is used to determine the first predicted node of the current node from the first candidate nodes within the first range of the current node;
[0263] The second determining module 172 is configured to determine a second predicted node of the current node from a second candidate node within a second range of the current node when the number of the first predicted nodes is less than a first threshold; wherein the second range is greater than the first range;
[0264] The third determining module 173 is used to determine the third predicting node of the current node from the first K third candidate nodes in the decoding order of the current node when the total number of the first predicting node and the second predicting node is less than the first threshold; wherein K is greater than 0.
[0265] The first intra-frame prediction module 174 is used to obtain the attribute prediction value of the current node based on the attribute values of the first prediction node, the second prediction node and the third prediction node of the current node.
[0266] In some embodiments, the first intra-frame prediction module 174 is configured to: end the search for prediction nodes when the total number of the first prediction nodes and the second prediction nodes is greater than or equal to the first threshold, and obtain the attribute value of the current node based on the attribute values of the first prediction nodes and the second prediction nodes.
[0267] In some embodiments, the current node is the Mth node; wherein M is greater than or equal to the first threshold.
[0268] In some embodiments, the first intra-frame prediction module 174 is configured to: set a specific attribute value as the attribute prediction value of the first node when the current node is the first node; and obtain the attribute prediction value of the subsequent node based on the attribute reconstruction value of the decoded node when the current node is a subsequent node of the first node and a node before the Mth node.
[0269] In some embodiments, the first candidate node includes nodes whose distance from the current node is less than or equal to a first distance; the second candidate node includes nodes whose distance from the current node is less than or equal to a second distance; wherein the second distance is greater than the first distance.
[0270] In some embodiments, the first candidate node includes coplanar nodes of the current node, collinear nodes of the current node, and / or concurrent nodes of the current node.
[0271] In some embodiments, both the first candidate node and the second candidate node are nodes that may have completed decoding before the current node.
[0272] In some embodiments, the coplanar nodes of the current node include nodes with indices 3, 5, and 6; the collinear nodes of the current node include nodes with indices 1, 2, 4, 10, 12, 17, 20, 33, and 34; and the concurrent nodes of the current node include nodes with indices 0, 8, 16, 24, 32, 40, and 48.
[0273] In some embodiments, the first distance and the second distance are Manhattan distances.
[0274] In some embodiments, the second distance is greater than or equal to 3, and the second candidate node is a node whose Manhattan distance from the current node is 2 and / or 3.
[0275] In some embodiments, the second candidate node includes nodes with indices of 24, 40, 48, 10, 12, 17, 20, 25, 26, 33, 34, 41, 44, 50, 52, 84, 98, 140, 161, 266, and 273.
[0276] In some embodiments, the second determining module 172 is configured to: determine a node in the second range that meets a condition as the second predicted node; wherein the condition is a non-empty node decoded before the current node.
[0277] In some embodiments, the third determining module 173 is configured to: traverse the first K third candidate nodes sequentially according to the decoding order: when the current total number of predicted nodes is less than the first threshold, determine the current third candidate node as the third predicted node; when the current total number of predicted nodes is greater than or equal to the first threshold and less than the second threshold, if the distance between the current third candidate node and the current node is less than the maximum distance among the predicted nodes to the current node, determine the current third candidate node as the third predicted node; wherein, the predicted nodes include the currently obtained first predicted node, second predicted node, and third predicted node; when the current total number of predicted nodes is equal to the second threshold, if the distance between the current third candidate node and the current node is less than the maximum distance among the predicted nodes to the current node, or, if the distance between the current third candidate node and the current node is equal to the maximum distance among the predicted nodes to the current node and the current third candidate node was decoded before the predicted node corresponding to the maximum distance, replace the predicted node corresponding to the maximum distance with the current third candidate node as the third predicted node.
[0278] In some embodiments, the first threshold is 3 and the second threshold is 6.
[0279] In some embodiments, the first intra-frame prediction module 174 is configured to: obtain the attribute prediction value of the current node based on the attribute reconstruction values of the first prediction node, the second prediction node, and the third prediction node of the current node.
[0280] The description of the above embodiments of the intra-prediction apparatus 170 is similar to the description of the above embodiments of the intra-prediction method, and has similar beneficial effects. For technical details not disclosed in the apparatus embodiments of this application, please refer to the description of the intra-prediction method embodiments of the encoding end of this application for understanding.
[0281] Based on the foregoing embodiments, the decoding device provided in this application, including the modules and the units included in each module, can be implemented by a decoder or processor in an electronic device; of course, it can also be implemented by specific logic circuits; in the implementation process, the processor can be a central processing unit (CPU), microprocessor (MPU), digital signal processor (DSP), field programmable gate array (FPGA), or graphics processing unit (GPU), etc.
[0282] Figure 18 is a schematic diagram of the decoding device according to an embodiment of this application. As shown in Figure 18, the decoding device 180 includes:
[0283] The parsing module 181 is used to parse the received attribute code stream to obtain the reconstruction residual of the current node;
[0284] The second intra-frame prediction module 182 is used to perform the steps of the method as described in any one of claims 1 to 15 on the current node to obtain the attribute prediction value of the current node.
[0285] The reconstruction module 183 is used to determine the attribute reconstruction value of the current node based on the attribute prediction value of the current node and the reconstruction residual of the current node.
[0286] The above description of the embodiments of the decoding device 180 is similar to the description of the intra-frame prediction method embodiments described above, and has similar beneficial effects as these method embodiments. For technical details not disclosed in the device embodiments of this application, please refer to the description of the intra-frame prediction method embodiments of the encoding end of this application for understanding.
[0287] It should be noted that, in the embodiments of this application, if the above-described methods are implemented as software functional modules and sold or used as independent products, they can also be stored in a computer-readable storage medium. Based on this understanding, the technical solutions of the embodiments of this application, essentially or in other words, the parts that contribute to related technologies, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause an electronic device to execute all or part of the methods described in the various embodiments of this application. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, portable hard drives, read-only memory (ROM), magnetic disks, or optical disks. Thus, the embodiments of this application are not limited to any specific hardware and software combination.
[0288] Correspondingly, this application provides an electronic device. FIG19 is a hardware entity schematic diagram of the electronic device according to an embodiment of this application. As shown in FIG19, the electronic device 190 includes a memory 191 and a processor 192. The memory 191 stores a computer program that can run on the processor 192. When the processor 192 executes the program, it implements the steps in the method provided in the above embodiment.
[0289] This application provides an encoder. Figure 20 is a schematic diagram of the hardware entity of the encoder according to an embodiment of this application. The encoder 20 includes a memory 201 and a processor 202. The memory 201 is used to store a computer program that can run on the processor 202. The processor 202 is used to execute the steps of the method provided in the above embodiment when running the computer program.
[0290] This application provides an embodiment of a decoder. Figure 21 is a schematic diagram of the hardware entity of the decoder according to this application embodiment. The decoder 21 includes a memory 211 and a processor 212. The memory 211 is used to store a computer program that can run on the processor 212. The processor 212 is used to execute the steps of the method provided in the above embodiment when running the computer program.
[0291] It should be noted that the memory is configured to store instructions and applications that can be executed by the processor, and can also cache data to be processed or already processed by the processor and the modules in the corresponding devices (e.g., point cloud data, image data, audio data, voice communication data and video communication data), which can be implemented through flash memory or random access memory (RAM).
[0292] Correspondingly, embodiments of this application provide a computer-readable storage medium having a computer program stored thereon, which, when executed by a processor, implements the steps in the methods provided in the above embodiments.
[0293] It should be noted that the descriptions of the above embodiments of the electronic device, encoder, decoder, and storage medium are similar to the descriptions of the above method embodiments, and have similar beneficial effects. For technical details not disclosed in the embodiments of the electronic device, encoder, decoder, and storage medium of this application, please refer to the descriptions of the method embodiments of this application for understanding.
[0294] It should be understood that the phrases "one embodiment," "an embodiment," or "some embodiments" throughout the specification mean that a specific feature, structure, or characteristic related to an embodiment is included in at least one embodiment of this application. Therefore, "in one embodiment," "in one embodiment," or "in some embodiments" appearing throughout the specification do not necessarily refer to the same embodiment. Furthermore, these specific features, structures, or characteristics can be combined in any suitable manner in one or more embodiments. It should be understood that in the various embodiments of this application, the sequence numbers of the above-described processes do not imply a sequential order of execution; the execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of this application. The sequence numbers of the above-described embodiments are merely descriptive and do not represent the superiority or inferiority of the embodiments.
[0295] It should be noted that, in this document, the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or apparatus. Unless otherwise specified, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the process, method, article, or apparatus that includes that element.
[0296] In the several embodiments provided in this application, it should be understood that the disclosed devices and methods can be implemented in other ways. The embodiments of the touchscreen system described above are merely illustrative. For example, the division of modules is only a logical functional division, and in actual implementation, there may be other division methods, such as: multiple modules or components can be combined, or integrated into another system, or some features can be ignored or not executed. In addition, the coupling, direct coupling, or communication connection between the various components shown or discussed can be through some interfaces, and the indirect coupling or communication connection between devices or modules can be electrical, mechanical, or other forms.
[0297] The modules described above as separate components may or may not be physically separate. The components shown as modules may or may not be physical modules. They may be located in one place or distributed across multiple network units. Some or all of the modules may be selected to achieve the purpose of this embodiment according to actual needs.
[0298] In addition, each functional module in the various embodiments of this application can be integrated into one processing unit, or each module can be a separate unit, or two or more modules can be integrated into one unit; the integrated modules can be implemented in hardware or in the form of hardware plus software functional units.
[0299] Those skilled in the art will understand that all or part of the steps of the above method embodiments can be implemented by hardware related to program instructions. The aforementioned program can be stored in a computer-readable storage medium. When the program is executed, it performs the steps of the above method embodiments. The aforementioned storage medium includes various media that can store program code, such as mobile storage devices, read-only memory (ROM), magnetic disks, or optical disks.
[0300] Alternatively, if the integrated units described above are implemented as software functional modules and sold or used as independent products, they can also be stored in a computer-readable storage medium. Based on this understanding, the technical solutions of the embodiments of this application, or the parts that contribute to related technologies, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause an electronic device to execute all or part of the methods described in the various embodiments of this application. The aforementioned storage medium includes various media capable of storing program code, such as mobile storage devices, ROMs, magnetic disks, or optical disks.
[0301] The methods disclosed in the several method embodiments provided in this application can be arbitrarily combined without conflict to obtain new method embodiments.
[0302] The features disclosed in the several product embodiments provided in this application can be arbitrarily combined without conflict to obtain new product embodiments.
[0303] The features disclosed in the several method or device embodiments provided in this application can be arbitrarily combined without conflict to obtain new method or device embodiments.
[0304] The above description is merely an embodiment of this application, but the scope of protection of this application is not limited thereto. Any variations or substitutions that can be easily conceived by those skilled in the art within the scope of the technology disclosed in this application should be included within the scope of protection of this application. Therefore, the scope of protection of this application should be determined by the scope of the claims.
Claims
1. An intra-frame prediction method, applied at the decoding end, the method comprising: From the first candidate nodes within the first range of the current node, determine the first predicted node of the current node; If the number of the first predicted nodes is less than a first threshold, a second predicted node for the current node is determined from the second candidate nodes within a second range of the current node; wherein the second range is greater than the first range. If the total number of the first prediction node and the second prediction node is less than the first threshold, the third prediction node of the current node is determined from the first K third candidate nodes in the decoding order of the current node; where K is greater than 0. Based on the attribute values of the first, second, and third prediction nodes of the current node, the attribute prediction value of the current node is obtained.
2. The method according to claim 1, wherein, The method further includes: If the total number of the first predicted nodes and the second predicted nodes is greater than or equal to the first threshold, the search for predicted nodes ends, and the attribute value of the current node is obtained based on the attribute values of the first predicted nodes and the second predicted nodes.
3. The method according to claim 1, wherein, The current node is the Mth node; where M is greater than or equal to the first threshold.
4. The method according to claim 3, wherein, The method further includes: If the current node is the first node, set the specific attribute value to the attribute prediction value of the first node; When the current node is a node following the first node and preceding the Mth node, the attribute prediction value of the subsequent node is obtained based on the attribute reconstruction value of the decoded node.
5. The method according to claim 1, wherein, The first candidate node includes nodes whose distance from the current node is less than or equal to a first distance; The second candidate node includes nodes whose distance from the current node is less than or equal to a second distance; wherein the second distance is greater than the first distance.
6. The method according to claim 5, wherein, The first candidate node includes the coplanar nodes of the current node, the collinear nodes of the current node, and / or the concurrent nodes of the current node.
7. The method according to claim 6, wherein, Both the first candidate node and the second candidate node are nodes that may complete decoding before the current node.
8. The method according to claim 5 or 7, wherein, The first distance and the second distance are Manhattan distances.
9. The method according to claim 8, wherein, The second distance is greater than or equal to 3, and the second candidate node is a node whose Manhattan distance from the current node is 2 and / or 3.
10. The method according to claim 1, wherein, Determining the second predicted node of the current node from the second candidate nodes within the second range of the current node includes: The node that meets the condition in the second range is determined as the second predicted node; wherein the condition is a non-empty node that was decoded before the current node.
11. The method according to any one of claims 1 to 10, wherein, Determining the third predicted node of the current node from the first K third candidate nodes in the decoding order of the current node includes: Following the decoding order, traverse the first K third candidate nodes sequentially: When the current total number of predicted nodes is less than the first threshold, the current third candidate node is determined as the third predicted node; When the current total number of predicted nodes is greater than or equal to the first threshold and less than the second threshold, if the distance between the current third candidate node and the current node is less than the maximum distance between the predicted nodes and the current node, the current third candidate node is determined as the third predicted node; wherein, the predicted nodes include the currently obtained first predicted node, second predicted node and third predicted node. When the current total number of predicted nodes is equal to the second threshold, if the distance between the current third candidate node and the current node is less than the maximum distance among the predicted nodes to the current node, or if the distance between the current third candidate node and the current node is equal to the maximum distance among the predicted nodes to the current node and the current third candidate node was decoded before the predicted node corresponding to the maximum distance, then the current third candidate node is replaced as the third predicted node.
12. The method according to claim 11, wherein, The first threshold is 3, and the second threshold is 6.
13. The method according to claim 1, wherein, The step of obtaining the attribute prediction value of the current node based on the attribute values of the first prediction node, the second prediction node, and the third prediction node includes: The attribute prediction value of the current node is obtained based on the attribute reconstruction values of the first prediction node, the second prediction node, and the third prediction node of the current node.
14. A point cloud decoding method, the method comprising: The received attribute bitstream is parsed to obtain the reconstruction residual of the current node; Perform the steps of the method as described in any one of claims 1 to 13 on the current node to obtain the attribute prediction value of the current node; The attribute reconstruction value of the current node is determined based on the attribute prediction value of the current node and the reconstruction residual of the current node.
15. An intra-frame prediction method, applied at the coding end, the method comprising: From the first candidate nodes within the first range of the current node, determine the first predicted node of the current node; If the number of the first predicted nodes is less than a first threshold, a second predicted node for the current node is determined from the second candidate nodes within a second range of the current node; wherein the second range is greater than the first range. If the total number of the first predicted nodes and the second predicted nodes is less than the first threshold, the third predicted node of the current node is determined from the first K third candidate nodes in the encoding order of the current node; where K is greater than 0. Based on the attribute values of the first, second, and third prediction nodes of the current node, the attribute prediction value of the current node is obtained.
16. The method according to claim 15, wherein, The method further includes: If the total number of the first predicted nodes and the second predicted nodes is greater than or equal to the first threshold, the search for predicted nodes ends, and the attribute value of the current node is obtained based on the attribute values of the first predicted nodes and the second predicted nodes.
17. The method according to claim 15, wherein, The current node is the Mth node; where M is greater than or equal to the first threshold.
18. The method according to claim 17, wherein, The method further includes: If the current node is the first node, set the specific attribute value to the attribute prediction value of the first node; When the current node is a node following the first node and preceding the Mth node, the attribute prediction value of the subsequent node is obtained based on the attribute reconstruction value of the encoded node.
19. The method according to claim 15, wherein, The first candidate node includes nodes whose distance from the current node is less than or equal to a first distance; The second candidate node includes nodes whose distance from the current node is less than or equal to a second distance; wherein the second distance is greater than the first distance.
20. The method according to claim 19, wherein, The first candidate node includes the coplanar nodes of the current node, the collinear nodes of the current node, and / or the concurrent nodes of the current node.
21. The method according to claim 20, wherein, Both the first candidate node and the second candidate node are nodes that may have completed encoding before the current node.
22. The method according to claim 19 or 21, wherein, The first distance and the second distance are Manhattan distances.
23. The method according to claim 22, wherein, The second distance is greater than or equal to 3, and the second candidate node is a node whose Manhattan distance from the current node is 2 and / or 3.
24. The method according to claim 15, wherein, Determining the second predicted node of the current node from the second candidate nodes within the second range of the current node includes: The node that meets the condition in the second range is determined as the second predicted node; wherein the condition is a non-empty node encoded before the current node.
25. The method according to any one of claims 15 to 24, wherein, Determining the third predicted node of the current node from the first K third candidate nodes in the encoding order of the current node includes: Following the encoding order, traverse the first K third candidate nodes sequentially: When the current total number of predicted nodes is less than the first threshold, the current third candidate node is determined as the third predicted node; When the current total number of predicted nodes is greater than or equal to the first threshold and less than the second threshold, if the distance between the current third candidate node and the current node is less than the maximum distance between the predicted nodes and the current node, the current third candidate node is determined as the third predicted node; wherein, the predicted nodes include the currently obtained first predicted node, second predicted node and third predicted node. When the current total number of predicted nodes is equal to the second threshold, if the distance between the current third candidate node and the current node is less than the maximum distance among the predicted nodes to the current node, or if the distance between the current third candidate node and the current node is equal to the maximum distance among the predicted nodes to the current node and the current third candidate node was encoded before the predicted node corresponding to the maximum distance, then the current third candidate node is replaced as the third predicted node.
26. The method according to claim 25, wherein, The first threshold is 3, and the second threshold is 6.
27. The method according to claim 15, wherein, The step of obtaining the attribute prediction value of the current node based on the attribute values of the first prediction node, the second prediction node, and the third prediction node includes: The attribute prediction value of the current node is obtained based on the attribute reconstruction values of the first prediction node, the second prediction node, and the third prediction node of the current node.
28. A point cloud encoding method, applied at the encoding end, the method comprising: Perform the steps of the method as described in any one of claims 15 to 27 on the current node of the point cloud to obtain the attribute prediction value of the current node; Determine the residual between the predicted attribute value of the current node and the original attribute value of the current node; The residual of the current node is encoded into an attribute bitstream.
29. The method according to claim 28, wherein, The method further includes: Determine the reconstruction residual of the current node; The reconstructed residual is superimposed with the attribute prediction value of the current node to obtain the attribute reconstruction value of the current node.
30. An intra-frame prediction device, applied at a decoding end, comprising: The first determining module is used to determine the first predicted node of the current node from the first candidate nodes within the first range of the current node; The second determining module is configured to determine a second predicted node of the current node from a second candidate node within a second range of the current node when the number of the first predicted nodes is less than a first threshold; wherein the second range is greater than the first range; The third determining module is used to determine the third predicted node of the current node from the first K third candidate nodes in the decoding order of the current node when the total number of the first predicted nodes and the second predicted nodes is less than the first threshold; wherein K is greater than 0. The first intra-frame prediction module is used to obtain the attribute prediction value of the current node based on the attribute values of the first prediction node, the second prediction node, and the third prediction node of the current node.
31. A decoding device, comprising: The parsing module is used to parse the received attribute bitstream to obtain the reconstruction residual of the current node; The second intra-frame prediction module is used to perform the steps of the method as described in any one of claims 1 to 13 on the current node to obtain the attribute prediction value of the current node; The reconstruction module is used to determine the attribute reconstruction value of the current node based on the attribute prediction value of the current node and the reconstruction residual of the current node.
32. A decoder, comprising a memory and a processor; wherein, The memory is used to store computer programs that can run on the processor; The processor is configured to, when running the computer program, execute the intra-frame prediction method as described in any one of claims 1 to 13, or execute the point cloud decoding method as described in claim 14.
33. An intra-frame prediction device, applied at the coding end, comprising: The fourth determining module is used to determine the first predicted node of the current node from the first candidate nodes within the first range of the current node; The fifth determining module is used to determine a second predicted node of the current node from second candidate nodes within a second range of the current node when the number of the first predicted nodes is less than a first threshold; wherein the second range is greater than the first range; The sixth determining module is used to determine the third predicted node of the current node from the first K third candidate nodes in the encoding order of the current node when the total number of the first predicted node and the second predicted node is less than the first threshold; wherein K is greater than 0. The third intra-frame prediction module is used to obtain the attribute prediction value of the current node based on the attribute values of the first prediction node, the second prediction node, and the third prediction node of the current node.
34. An encoding device, comprising: The fourth intra-frame prediction module is used to perform the steps of the method as described in any one of claims 15 to 27 on the current node of the point cloud to obtain the attribute prediction value of the current node. The seventh determining module is used to determine the residual between the predicted attribute value of the current node and the original attribute value of the current node; The encoding module is used to encode the residual of the current node into an attribute bitstream.
35. An encoder, comprising a memory and a processor; The memory is used to store computer programs that can run on the processor; The processor is configured to, when running the computer program, execute the intra-frame prediction method as described in any one of claims 15 to 27, or execute the point cloud encoding method as described in claim 28 or 29.
36. An electronic device, comprising a memory and a processor; The memory is used to store computer programs that can run on the processor; The processor is configured to, when running the computer program, execute the intra-frame prediction method as described in any one of claims 1 to 13, or execute the point cloud decoding method as described in claim 14, or execute the intra-frame prediction method as described in any one of claims 15 to 27, or execute the point cloud encoding method as described in claim 28 or 29.
37. A computer-readable storage medium having a computer program stored thereon, wherein the computer program, when executed by a processor, implements the intra-frame prediction method of any one of claims 1 to 13, or, when executed by a processor, implements the point cloud decoding method of claim 14, or, when executed by a processor, implements the intra-frame prediction method of any one of claims 15 to 27, and the computer program, when executed by a processor, implements the point cloud encoding method of claim 28 or 29.