Attribute information prediction method, encoder, decoder, and storage medium
By using the preset adjacent information table in PCEM to determine the target Morton code and judge the existence of adjacent points, the problem of inaccurate prediction of Morton code adjacent points is solved, and the accuracy and coding efficiency of attribute information prediction are improved.
Patent Information
- Application Number
- CN202210909589.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2019-12-02
- Publication Date
- 2025-03-28
- Estimated Expiration
- 2039-12-02
AI Technical Summary
In the point cloud exploration model (PCEM), when only points adjacent to Morton code are used to predict attribute information, it is spatially inaccurate, resulting in large prediction residuals and affecting coding efficiency.
By determining the current Morton code of the point to be predicted, the target Morton code is determined based on the preset adjacent information table, and whether there is a neighboring point is judged. If it exists, the attribute reconstruction information of the corresponding point is used for prediction.
The accuracy of attribute information prediction is improved, the prediction residuals are reduced, and the encoding efficiency is improved.
Smart Images

Figure CN115190300B_ABST
Abstract
Description
[0001] This application is a divisional application of an invention patent application with an application date of December 2, 2019, application number 201980102312.4, and invention name “Prediction method, encoder, decoder, and storage medium for attribute information”. Technical Field
[0002] The embodiments of the present application relate to coding and decoding technology in the field of communications, and in particular to a prediction method, encoder, decoder and storage medium for attribute information. Background Art
[0003] In the point cloud exploration model (PCEM) encoder framework, the input point cloud can be divided into geometric information and attribute information corresponding to each point, where the geometric information of the point cloud and the attribute information corresponding to each point cloud are encoded separately. When encoding the attribute information of the point cloud, the coordinate information of the point can be used to obtain the Morton code corresponding to each point in the point cloud, and then the attribute information is predicted based on the Morton code through the backward difference method.
[0004] Since the Morton code has periodic jump points, it is spatially inaccurate to only use the adjacent points of the Morton code to predict the current point, which affects the accuracy of the prediction, leads to the defect of large prediction residual, and further reduces the coding efficiency. Summary of the invention
[0005] The embodiments of the present application provide a prediction method, encoder, decoder and storage medium for attribute information, which can effectively improve the prediction accuracy, greatly reduce the prediction residual, and thus improve the coding efficiency.
[0006] The technical solution of the embodiment of the present application can be implemented as follows:
[0007] In a first aspect, an embodiment of the present application provides a method for predicting attribute information, which is applied to an encoder, and the method includes:
[0008] Determine the current Morton code of the point to be predicted in the point cloud to be encoded;
[0009] Based on the current Morton code, determine the target Morton code corresponding to the point to be predicted according to a preset adjacent information table; wherein the preset adjacent information table is used to determine the coordinate difference between the adjacent position of the point to be predicted and a preset reference point;
[0010] Determine whether there are adjacent points of the point to be predicted in the point cloud to be encoded according to the target Morton code;
[0011] If the adjacent point exists in the point cloud to be encoded, the attribute prediction value of the point to be predicted is predicted according to the attribute reconstruction information of the adjacent point.
[0012] In a second aspect, an embodiment of the present application further provides a method for predicting attribute information, which is applied to a decoder, and the method includes:
[0013] Determine the current Morton code of the point to be predicted in the point cloud to be decoded;
[0014] Based on the current Morton code, determine the target Morton code corresponding to the point to be predicted according to a preset adjacent information table; wherein the preset adjacent information table is used to determine the coordinate difference between the adjacent position of the point to be predicted and a preset reference point;
[0015] Determine whether there are adjacent points of the point to be predicted in the point cloud to be decoded according to the target Morton code;
[0016] If the adjacent point exists in the point cloud to be decoded, the attribute prediction value of the point to be predicted is predicted according to the attribute reconstruction information of the adjacent point.
[0017] In a third aspect, an embodiment of the present application further provides an encoder, the encoder comprising: a first determination part, a first judgment part, a first prediction part,
[0018] The first determination part is configured to determine the current Morton code of the point to be predicted in the point cloud to be encoded; and based on the current Morton code, determine the target Morton code corresponding to the point to be predicted according to a preset adjacent information table; wherein the preset adjacent information table is used to determine the coordinate difference between the adjacent position of the point to be predicted and a preset reference point;
[0019] The first judgment part is configured to judge whether there are adjacent points of the point to be predicted in the point cloud to be encoded according to the target Morton code;
[0020] The first prediction part is configured to predict the attribute prediction value of the point to be predicted based on the attribute reconstruction information of the neighboring point if the neighboring point exists in the point cloud to be encoded.
[0021] In a fourth aspect, an embodiment of the present application further provides a decoder, the decoder comprising: a second determining part, a second judging part, a second predicting part,
[0022] The second determination part is configured to determine the current Morton code of the point to be predicted in the point cloud to be decoded; and based on the current Morton code, determine the target Morton code corresponding to the point to be predicted according to a preset adjacent information table; wherein the preset adjacent information table is used to determine the coordinate difference between the adjacent position of the point to be predicted and a preset reference point;
[0023] The second judgment part is configured to judge whether there are adjacent points of the point to be predicted in the point cloud to be decoded according to the target Morton code;
[0024] The second prediction part is configured to predict the attribute prediction value of the point to be predicted based on the attribute reconstruction information of the neighboring point if the neighboring point exists in the point cloud to be decoded.
[0025] In a fifth aspect, an embodiment of the present application further provides an encoder, comprising a first processor and a first memory storing instructions executable by the first processor, wherein when the instructions are executed by the first processor, the attribute information prediction method as described above is implemented.
[0026] In a sixth aspect, an embodiment of the present application further provides a decoder, comprising a second processor and a second memory storing instructions executable by the second processor, wherein when the instructions are executed by the second processor, the attribute information prediction method as described above is implemented.
[0027] In a seventh aspect, an embodiment of the present application further provides a computer-readable storage medium having a program stored thereon, which is applied to an encoder, and when the program is executed by a processor, the method for predicting attribute information as described above is implemented.
[0028] In an eighth aspect, an embodiment of the present application further provides a computer-readable storage medium having a program stored thereon, which is applied to a decoder. When the program is executed by a processor, the method for predicting attribute information as described above is implemented.
[0029] The embodiment of the present application provides a prediction method, encoder, decoder and storage medium for attribute information, wherein the encoder determines the current Morton code of the point to be predicted in the point cloud to be encoded; based on the current Morton code, the target Morton code corresponding to the point to be predicted is determined according to a preset adjacent information table; wherein the preset adjacent information table is used to determine the coordinate difference between the adjacent position of the point to be predicted and the preset reference point; according to the target Morton code, it is determined whether there are adjacent points of the point to be predicted in the point cloud to be encoded; if there are adjacent points in the point cloud to be encoded, the attribute prediction value of the point to be predicted is predicted according to the attribute reconstruction information of the adjacent points. The decoder determines the current Morton code of the point to be predicted in the point cloud to be decoded; based on the current Morton code, the target Morton code corresponding to the point to be predicted is determined according to the preset adjacent information table; according to the target Morton code, it is determined whether there are adjacent points of the point to be predicted in the point cloud to be decoded; if there are adjacent points in the point cloud to be decoded, the attribute prediction value of the point to be predicted is predicted according to the attribute reconstruction information of the adjacent points. It can be seen that in the embodiments of the present application, when the codec predicts the attribute information of the point to be predicted, based on the preset adjacent information table, it can use the current Morton code of the point to be predicted to determine the target Morton code corresponding to the adjacent position around the point to be predicted. If there is a neighboring point of the point to be predicted at the adjacent position in the point cloud, the codec can directly use the attribute reconstruction value of the adjacent point to predict the attribute prediction value of the point to be predicted. It is precisely because the correlation between the point to be predicted and the adjacent points is stronger, so the prediction of the attribute information of the point to be predicted through the adjacent points can effectively improve the accuracy of the prediction, greatly reduce the prediction residual, and thus improve the coding efficiency. BRIEF DESCRIPTION OF THE DRAWINGS
[0030] Figure 1 It is a schematic diagram of the encoding process of PCEM;
[0031] Figure 2 It is a schematic diagram of the decoding process of PCEM;
[0032] Figure 3 Shows the spatial encoding of each pixel of an 8×8 image;
[0033] Figure 4 Shows the spatial encoding of each pixel of a 4×4 image;
[0034] Figure 5 The application of the prediction method is shown in Figure 2. Figure 1 ;
[0035] Figure 6 The application of the prediction method is shown in Figure 2. Figure 2 ;
[0036] Figure 7 Schematic diagram of the implementation process of the prediction method for attribute information Figure 1 ;
[0037] Figure 8 is a schematic diagram of adjacent locations;
[0038] Fig. 9 Schematic diagram of the implementation process of the prediction method for attribute information Figure 2 ;
[0039] Fig.10 Schematic diagram of the implementation process of the prediction method for attribute information Figure 3 ;
[0040] Fig.11 Schematic diagram of the implementation process of the prediction method for attribute information Figure 4 ;
[0041] Fig.12 Schematic diagram of the implementation process of the prediction method for attribute information Figure 5 ;
[0042] Fig.13 Schematic diagram of the prediction framework for attribute information;
[0043] Fig.14 It is the flow chart of the prediction algorithm for attribute information;
[0044] Fig.15 Schematic diagram of the implementation process of the prediction method for attribute information Figure 6 ;
[0045] Fig.16 Schematic diagram of the implementation process of the prediction method for attribute information Figure 7 ;
[0046] Fig.17 Schematic diagram of the implementation process of the prediction method for attribute information Figure 8 ;
[0047] Fig.18 The structure of the encoder is shown in Figure 2. Figure 1 ;
[0048] Fig.19 The structure of the encoder is shown in Figure 2. Figure 2 ;
[0049] Fig. 20 The structure of the decoder is shown in Figure 2. Figure 1 ;
[0050] Fig.21 The structure of the decoder is shown in Figure 2. Figure 2 . DETAILED DESCRIPTION
[0051] In order to enable a more detailed understanding of the features and technical contents of the embodiments of the present application, the implementation of the embodiments of the present application is described in detail below in conjunction with the accompanying drawings. The attached drawings are for reference only and are not used to limit the embodiments of the present application.
[0052] In the point cloud exploration model (PCEM) encoder framework of the Audio Video Coding Standard (AVS), the input point cloud can be divided into geometric information and attribute information corresponding to each point, wherein the geometric information of the point cloud and the attribute information corresponding to each point cloud are encoded separately.
[0053] Figure 1 It is a schematic diagram of the encoding process of PCEM, such as Figure 1 As shown in the figure, in the process of geometric encoding, the coordinates of the geometric information are transformed so that all the point clouds are contained in a bounding box, and then quantized. This step of quantization mainly plays a role in scaling. Due to the quantization rounding, the geometric information of some point clouds is the same, so it is decided whether to remove duplicate points based on parameters. The process of quantization and removal of duplicate points is also called voxelization. Then the bounding box is divided into octrees. According to the different depths of the octree division level, the encoding of geometric information can be divided into two frameworks: octree-based and trisoup-based.
[0054] After the geometric encoding is completed, the geometric information is reconstructed to guide the attribute encoding. At present, attribute encoding is mainly performed on color information. The color information (i.e. attribute information) is converted from the RGB (Red-Green-Blue) color space to the YUV (Luminance-Chrominance) color space. Then, the point cloud is recolored using the reconstructed geometric information so that the unencoded attribute information corresponds to the reconstructed geometric information.
[0055] Next, attribute prediction is performed. First, the point cloud is reordered based on the Morton code to generate a point cloud order that can be used for point cloud attribute prediction. Then, the differential method is used to predict the attribute information and obtain the attribute prediction residual. The attribute prediction residual can then be quantized and encoded and input into the entropy coding engine to obtain the bit stream.
[0056] Figure 2 The decoding process diagram of PCEM is shown in FIG. Figure 2 As shown, for the binary code stream obtained, the geometric bit stream and attribute bit stream in the binary code stream are first decoded independently. When decoding the geometric bit stream, the geometric information of the point cloud is obtained through entropy decoding-octree reconstruction-inverse coordinate quantization-inverse coordinate translation; when decoding the attribute bit stream, the attribute information of the point cloud is obtained through entropy decoding-inverse quantization-attribute reconstruction-inverse space transformation, and the three-dimensional image model of the point cloud data to be encoded is restored based on the geometric information and attribute information.
[0057] It is understandable that when encoding the attribute information of the point cloud, the coordinate information of the point can be used to obtain the Morton code corresponding to each point in the point cloud, and then the attribute information is predicted based on the Morton code by the backward difference method. Morton coding is also called z-order code because its encoding order follows the spatial z order. The specific method for calculating the Morton code is described as follows. For each component of the three-dimensional coordinate represented by a d-bit binary number, the representation of its three coordinate components is achieved by:
[0058]
[0059] Among them, x l ,y l ,z l ∈{0,1} are the binary values corresponding to the highest bit (l=1) to the lowest bit (l=d) of x, y, and z respectively. The Morton code M is to arrange x, y, and z in a crosswise order starting from the highest bit. l ,y l ,z l To the lowest bit, the calculation formula of M is as follows:
[0060]
[0061] Among them, m l′ ∈{0,1} are the values of the highest bit (l′=1) to the lowest bit (l′=3d) of M. After obtaining the Morton code M of each point in the point cloud, the points in the point cloud are arranged in the order of the Morton code from small to large, and the weight w of each point is set to 1. Expressed in computer language, it is similar to the combination of z|(y<<1)|(x<<2).
[0062] Combination Figure 3 For explanation, the order of high and low bits is z, y, x (x|(y<<1)|(z<<2)) as an example.
[0063] Figure 3 The spatial encoding of each pixel of an 8×8 image is shown, Figure 3 As shown in the figure, from 000000 to 111111, a one-dimensional binary number is used to encode the position coordinates of the x and y values from 0 to 7. Interlacing the binary coordinate values, a binary z value graph is obtained. Connecting the z-shaped graph along the numerical direction produces a recursive z-shaped curve. The z value is placed at each position in the graph in the order of connection. In fact, the above figure is generated by iterating in the z direction, from 00-11 (the entire Figure 1 z), then from 0000-1111 (put a z at each point of the previous z), then from 000000-111111 (put a z at each point of the previous z), increase two digits each time, and recursively increase.
[0064] Figure 4 shows the spatial encoding of each pixel of a 4×4 image, such as Figure 4 As shown, for the Morton code of two-dimensional coordinates, the coordinates x and y are first binarized, and then starting from the highest bit of x and y, the values of each bit are arranged crosswise from high to low. Finally, the values of the Morton code are connected from small to large, and the Z-shaped connection order can be seen, and every four points can be regarded as a small block. Except for the last two bits, the first four bits are the same. In this way, the Morton code with the same first four bits can determine a parent block. At this time, the Morton codes of these four points are shifted right by 2 bits to get the Morton codes of their parent blocks. In this way, every four blocks of the same level are continuously combined, that is, the Morton code value is shifted right by two bits, and their parent blocks can be obtained. Similarly, in three-dimensional coordinates, every eight small blocks are combined, that is, the Morton code value is shifted right by three bits, and their parent blocks can be obtained.
[0065] At present, in the process of predicting attribute information based on the backward difference method, the adjacent points of the Morton code can be used to predict the current point. The specific process is as follows:
[0066] Step 1, traverse the point cloud after Morton reordering. For the first point, there is no reference point for prediction, and its prediction value is 0. Assuming the current point attribute value is A0, the prediction residual is R0 = A0;
[0067] Step 2: For the remaining points, the previous point of the current point in the Morton order is used as the reference point, and the attribute reconstruction value A'(i-1) of the reference point is used as the prediction value. Suppose the attribute value of the current point is Ai, then the prediction residual is Ri=Ai-A'(i-1):
[0068] Step 3: Repeat Step 2 until the complete frame point cloud is traversed.
[0069] Then the attribute prediction residual can be quantized and encoded and input into the entropy coding engine to obtain the bit stream.
[0070] However, the Morton code has periodic jump points, that is, the corresponding spatial positions of two adjacent points in the Morton code are not necessarily adjacent. Therefore, it is spatially inaccurate to only use the adjacent points of the Morton code to predict the current point. That is, in PCEM, only relying on the previous Morton code to predict the attribute information of the current point will result in errors, affecting the accuracy of the prediction.
[0071] In order to overcome the above-mentioned defects, the present application proposes to use the current Morton code of the point to be predicted to quickly find the real adjacent point with a stronger correlation with the point to be predicted, and use the attribute reconstruction value of the adjacent point to predict the attribute information of the point to be predicted, thereby improving the performance of the encoder. That is to say, in the present application, when the codec predicts the attribute information of the point to be predicted, based on the preset adjacent information table, it can use the current Morton code of the point to be predicted to determine the target Morton code corresponding to the adjacent position around the point to be predicted. If there is an adjacent point of the point to be predicted at the adjacent position in the point cloud, then the codec can directly use the attribute reconstruction value of the adjacent point to predict the attribute prediction value of the point to be predicted. It is precisely because the correlation between the point to be predicted and the adjacent point is stronger, so the prediction of the attribute information of the point to be predicted is realized through the adjacent point, which can effectively improve the accuracy of the prediction, greatly reduce the prediction residual, and thus improve the coding efficiency.
[0072] The method for predicting attribute information proposed in this application can affect the attribute prediction process and attribute reconstruction process in the PCEM point cloud codec framework. For example, Figure 5 The application of the prediction method is shown in Figure 2. Figure 1 ,like Figure 5 As shown, the attribute prediction method of the present application can be applied at the attribute prediction position in the PCEM point cloud encoder framework. Figure 6 The application of the prediction method is shown in Figure 2. Figure 2 ,like Figure 6 As shown, the attribute prediction method of the present application can be applied in the attribute reconstruction position in the PCEM point cloud decoder framework. Furthermore, the attribute information prediction method acts on both the encoding end and the decoding end, and the process, framework and algorithm of the attribute information prediction method are exactly the same at the encoding end and the decoding end.
[0073] The technical solutions in the embodiments of the present application will be clearly and completely described below in conjunction with the drawings in the embodiments of the present application.
[0074] An embodiment of the present application provides a method for predicting attribute information, which is applied to an encoder. Figure 7 Schematic diagram of the implementation process of the prediction method for attribute information Figure 1 ,like Figure 7 As shown, the method for an encoder to predict attribute information of a point to be predicted may include the following steps:
[0075] Step 101: Determine the current Morton code of the point to be predicted in the point cloud to be encoded.
[0076] In an embodiment of the present application, the encoder may first determine the current Morton code of the point to be predicted in the point cloud to be encoded.
[0077] It should be noted that in the embodiment of the present application, when encoding the point cloud to be encoded, the geometric information of the point cloud to be encoded and the attribute information corresponding to the point cloud to be encoded are encoded separately. After the encoding of the geometric information is completed, the geometric information is reconstructed, and the encoding of the attribute information will depend on the reconstructed geometric information.
[0078] Specifically, the encoding of attribute information is mainly for the encoding of color information. First, the color information is converted from the RGB color space to the YUV color space. Then, the point cloud is recolored using the reconstructed geometric information so that the unencoded attribute information corresponds to the reconstructed geometric information. Next, the attribute information is predicted. First, the point cloud to be encoded is reordered based on the Morton code to generate a point cloud sequence that can be used to predict the attribute information of the point cloud to be encoded.
[0079] Further, in an embodiment of the present application, after encoding the geometric information of the point cloud to be encoded, the encoder can use the set information of each point in the point cloud to be encoded to determine the Morton code of each point. After obtaining the Morton code of each point, the encoder can sort all the points in the point cloud to be encoded in order from small to large, and generate a point cloud sequence set corresponding to the point cloud to be encoded. Among them, the point cloud sequence set stores all the Morton codes of all the points in the point cloud to be encoded.
[0080] It should be noted that, in the embodiment of the present application, when the encoder encodes the attribute information of the coded point cloud, the attribute information of all points of the coded point cloud can be predicted in sequence according to the Morton code from small to large.
[0081] It can be understood that in an embodiment of the present application, the point to be predicted can be any point in the point cloud to be encoded, and the current Morton code is the Morton code of the point to be predicted. When predicting the attribute information of the point to be predicted, other points corresponding to other Morton codes smaller than the current Morton code have completed the prediction of the attribute information, and the corresponding attribute reconstruction information is generated.
[0082] Furthermore, in an embodiment of the present application, when the encoder predicts the attribute information of the prediction point, it is necessary to first determine the Morton code of the prediction point to obtain the current Morton code.
[0083] Step 102: Based on the current Morton code, determine the target Morton code corresponding to the point to be predicted according to a preset adjacent information table; wherein the preset adjacent information table is used to determine the coordinate difference between the adjacent position of the point to be predicted and a preset reference point.
[0084] In an embodiment of the present application, after determining the current Morton code of the point to be predicted, the encoder can determine the target Morton code corresponding to the point to be predicted based on the current Morton code and according to a preset adjacent information table, wherein the target Morton code can represent the Morton code corresponding to the adjacent positions around the point to be predicted.
[0085] It should be noted that, in the embodiment of the present application, the preset adjacent information table may represent the coordinate difference between the adjacent positions around the point to be predicted and the preset reference point. The adjacent positions of the point to be predicted may include coplanar adjacent points coplanar with the point to be predicted, and may also include colinear adjacent points colinear with the point to be predicted.
[0086] It is understandable that in the embodiment of the present application, when predicting the attribute information of the predicted point, if the predicted point is taken as the spatial center of the point cloud to be encoded, then the preset reference point can be the coordinate origin of the space centered on the predicted point. Specifically, based on the same preset reference point, the distance between the preset reference point and the predicted point, and the distance between the preset reference point and the adjacent position of the predicted point are calculated to obtain the coordinate difference between the adjacent position and the predicted point. Among them, the preset reference point can be the point with the smallest Morton code in the point cloud to be encoded.
[0087] Figure 8 is a schematic diagram of adjacent positions, such as Figure 8 As shown, the preset reference point is O, the point to be predicted is A, B, C and D coplanarly adjacent to A are coplanar adjacent points, and E, F and G colinearly adjacent to A are colinear adjacent points.
[0088] It can be understood that in the embodiment of the present application, the encoder performs octree segmentation. Therefore, for the point to be predicted, there are 26 adjacent positions around it according to the unit distance. However, since the encoder predicts the attribute information of the coded point cloud in the order of the Morton code from small to large when encoding the attribute information of the coded point cloud, the encoder only needs to consider the points whose Morton code is smaller than the current Morton code. For example, only the above Figure 8 B, C, D, E, F and G in the.
[0089] Further, in an embodiment of the present application, before the encoder determines the target Morton code corresponding to the point to be predicted based on the current Morton code and the preset neighbor information table, it is necessary to first establish a preset neighbor information table corresponding to the point to be predicted. In other words, the preset neighbor information table is established based on the point to be predicted.
[0090] It should be noted that, in an embodiment of the present application, when the encoder establishes a preset adjacent information table corresponding to the point to be predicted, it can operate on the current Morton code (cur_pos) of the point to be predicted. Specifically, the encoder can first locate the Morton code (base_pos) of the preset reference point, and then calculate the coordinate difference between the adjacent positions of the preset reference point and the point to be predicted based on the Morton code of the preset reference point, and then continue to perform Morton encoding on these coordinate differences, so that the preset adjacent information table corresponding to the point to be predicted can be established.
[0091] That is to say, in an embodiment of the present application, since the adjacent positions of the point to be predicted may include coplanar adjacent points that are coplanar with the point to be predicted, and collinear adjacent points that are collinear with the point to be predicted, when the encoder establishes a preset adjacent information table corresponding to the point to be predicted, it can respectively calculate the first coordinate difference between the preset reference point and the coplanar adjacent point, and calculate the second coordinate difference between the preset reference point and the collinear adjacent point. Then, the first coordinate difference can be Morton encoded to obtain the coplanar Morton code corresponding to the coplanar adjacent point. At the same time, the second coordinate difference can be Morton encoded to obtain the collinear Morton code corresponding to the collinear adjacent point. Finally, the encoder can establish the preset adjacent information table corresponding to the point to be predicted based on the coplanar Morton code and the collinear Morton code.
[0092] Furthermore, in an embodiment of the present application, after determining the current Morton code of the point to be predicted in the point cloud to be encoded, the encoder can determine the target Morton code corresponding to the point to be predicted based on the preset adjacent information table corresponding to the current Morton code, wherein the target Morton code can represent the Morton code corresponding to the adjacent positions around the point to be predicted.
[0093] Specifically, in an embodiment of the present application, when the encoder determines the target Morton code corresponding to the point to be predicted based on the current Morton code and according to the preset adjacent information table, since the preset adjacent information table stores the Morton code after Morton encoding the coordinate difference between the preset reference point and the adjacent position, the encoder can extract the Morton code corresponding to the coordinate difference of the adjacent position from the preset adjacent information table, and can further use the Morton code of the coordinate difference to determine the target Morton code.
[0094] It can be understood that in the embodiments of the present application, since the preset adjacent information table stores the coplanar Morton codes and collinear Morton codes corresponding to the points to be predicted, when the encoder determines the target Morton code, it can extract the coplanar Morton code and / or collinear Morton code from the preset adjacent information table, and then perform a sum operation on the current Morton code and the coplanar Morton code and / or collinear Morton code, so as to obtain the target Morton code.
[0095] It should be noted that in the embodiments of the present application, since the adjacent positions of the points to be predicted include both coplanar adjacent points and collinear adjacent points, the encoder can first determine the adjacent type when determining the target Morton code, wherein the adjacent type may include coplanar adjacent and collinear adjacent, and then based on the determined adjacent type, further extract the coplanar Morton code or the collinear Morton code from the preset adjacent information table, and determine the target Morton code based on the coplanar Morton code or the collinear Morton code.
[0096] For example, in this application, for a point to be predicted, if the distance between the coplanar adjacent point and it is 1, then the distance between the colinear adjacent point and it is Based on the principle that the closer the distance, the stronger the correlation, the coplanar adjacent neighbor types can be preferentially selected, and then the coplanar Morton code can be extracted from the preset neighbor information table to determine the target Morton code using the coplanar Morton code.
[0097] It should be noted that, in the embodiment of the present application, the target Morton code can represent the Morton codes corresponding to the adjacent positions around the point to be predicted. Therefore, the encoder can use the target Morton code to search and determine the adjacent points around the point to be predicted.
[0098] Step 103: Determine whether there are adjacent points of the point to be predicted in the point cloud to be encoded according to the target Morton code.
[0099] In an embodiment of the present application, after the encoder determines the target Morton code corresponding to the point to be predicted based on the current Morton code and the preset adjacent information table, it can judge whether there are adjacent points of the point to be predicted in the point cloud to be encoded according to the target Morton code. In other words, the encoder can use the Morton code corresponding to the adjacent positions around the point to be predicted to further judge whether there are points adjacent to the point to be predicted in the point cloud to be encoded.
[0100] It should be noted that, in the embodiments of the present application, after determining the target Morton code, the encoder cannot directly determine the adjacent points of the point to be predicted based on the target Morton code. This is because the point cloud is not evenly distributed in space, and adjacent points may not necessarily exist at adjacent positions of the point to be predicted. In other words, the target Morton code determined according to the adjacent positions of the point to be predicted may not necessarily correspond to points in the point cloud to be encoded. Therefore, after determining the target Morton code, the encoder still needs to determine whether there are adjacent points of the point to be predicted in the point cloud to be encoded based on the target Morton code.
[0101] It can be understood that in the embodiments of the present application, after obtaining the Morton code of each point, the encoder will sort all the Morton codes of all the points in order from small to large, and generate a point cloud sequence set corresponding to the point cloud to be encoded. Therefore, after determining the target Morton code, the encoder can use the point cloud sequence set corresponding to the point cloud to be encoded, combined with the target Morton code, to further judge whether there are adjacent points to the point to be predicted.
[0102] Further, in an embodiment of the present application, when the encoder determines whether there are adjacent points of the to-be-predicted point in the encoded point cloud based on the point cloud sequence set and the target Morton code, the encoder can first obtain the point cloud sequence set of the to-be-predicted point cloud, and then use the target Morton code to perform query processing in the point cloud sequence set to obtain a query result. If the query result is that the target Morton code exists in the point cloud sequence set, then the encoder can determine that there are adjacent points corresponding to the to-be-predicted point in the to-be-predicted point cloud. That is to say, in the present application, after determining the target Morton code, the encoder directly searches the point cloud sequence set for the target Morton code. If it exists, it can be considered that the to-be-predicted point has adjacent points in space; correspondingly, if it does not exist, it can be considered that the to-be-predicted point has no adjacent points in space.
[0103] It should be noted that in an embodiment of the present application, when the encoder performs query processing in a point cloud sequence set based on a target Morton code, it can either directly traverse each Morton code in the query point cloud sequence set according to the target Morton code to obtain a query result; or it can perform query processing on the point cloud sequence set according to a preset query algorithm based on the target Morton code to obtain a query result.
[0104] That is to say, in the embodiments of the present application, when the encoder performs query processing in the point cloud sequence set based on the target Morton code, it can use either a traversal method for the point cloud sequence set or other algorithms for quickly searching the point cloud sequence set.
[0105] Step 104: If there are adjacent points in the point cloud to be encoded, the attribute prediction value of the point to be predicted is predicted based on the attribute reconstruction information of the adjacent points.
[0106] In an embodiment of the present application, after the encoder determines whether there are adjacent points of the point to be predicted in the coded point cloud based on the target Morton code, if there are adjacent points of the point to be predicted in the coded point cloud, the encoder can directly reconstruct information based on the attributes of the adjacent points of the point to be predicted, predict the attribute information of the point to be predicted, and obtain the attribute prediction value.
[0107] It should be noted that in an embodiment of the present application, if there are adjacent points to the point to be predicted, then when the encoder predicts the attribute prediction value of the point to be predicted based on the attribute reconstruction information of the adjacent points, it can first obtain the attribute reconstruction value of the adjacent points, and then perform mean calculation on the attribute reconstruction value to obtain the average value corresponding to the attribute reconstruction value, and then the average value can be determined as the attribute prediction value.
[0108] It can be understood that in the embodiments of the present application, since the adjacent points of the point to be predicted can be coplanar adjacent points that are coplanar with the point to be predicted, or can be collinear adjacent points that are collinear with the point to be predicted, if the encoder determines that the adjacent points of the point to be predicted are coplanar adjacent points or collinear adjacent points, then when the encoder obtains the attribute reconstruction value of the adjacent point, it can obtain the first attribute reconstruction value corresponding to the coplanar adjacent point, or obtain the second attribute reconstruction value corresponding to the collinear adjacent point.
[0109] Accordingly, in the present application, since there is at least one coplanar adjacent point and at least one colinear adjacent point for the point to be predicted, the encoder can calculate a first average value corresponding to at least one first reconstruction value when performing mean calculation on the attribute reconstruction value, or calculate a second average value corresponding to at least one second reconstruction value. Finally, the encoder can determine the first average value or the second average value as the attribute prediction value, thereby completing the prediction of the attribute information of the point to be predicted.
[0110] Furthermore, in an embodiment of the present application, if the encoder determines that the adjacent points of the point to be predicted are coplanar adjacent points and collinear adjacent points, then when the encoder obtains the attribute reconstruction values of the adjacent points, it can obtain the first attribute reconstruction values corresponding to the coplanar adjacent points, and at the same time, obtain the second attribute reconstruction values corresponding to the collinear adjacent points.
[0111] Accordingly, in the present application, since the point to be predicted has at least one coplanar adjacent point and at least one colinear adjacent point, when the encoder calculates the mean of the attribute reconstruction value, it can perform weighted average calculation on the first attribute reconstruction value and the second attribute reconstruction value according to the preset weight, so as to obtain the weighted average value. Finally, the encoder can determine the weighted average value as the attribute prediction value, thereby completing the prediction of the attribute information of the point to be predicted.
[0112] It is understandable that in the embodiment of the present application, when the encoder uses the preset weight to perform weighted average calculation on the first attribute reconstruction value and the second attribute reconstruction value, different weight values can be assigned to the first attribute reconstruction value and the second attribute reconstruction value respectively. Specifically, based on the principle that the closer the distance, the stronger the correlation, the weight value corresponding to the first attribute reconstruction value should be greater than the weight value corresponding to the second attribute reconstruction value.
[0113] Exemplarily, in the present application, if the point to be predicted has multiple adjacent points such as coplanar adjacent points and collinear adjacent points, for example, there are 6 adjacent points to predict the attribute information of the point to be predicted, including 3 coplanar adjacent points and 3 collinear adjacent points. The encoder can perform a distance-based weighted average operation on the attribute reconstruction values of all adjacent points to predict the attribute information of the point to be predicted and obtain the attribute prediction value of the point to be predicted. Specifically, the encoder can use formula (2) to predict the attribute information of the point to be predicted:
[0114]
[0115] in, is the predicted value of the attribute of the current point, n is the number of adjacent points, and the value can be 6, a j Reconstruct the values of the attributes of the adjacent points, w j is the corresponding weight coefficient, which is generally given by the following formula (3):
[0116]
[0117] Among them, d ij is the distance between the adjacent point and the point to be predicted, f(d ij ) is equal to d ij That is, according to the distance between each neighboring point and the point to be predicted, the correlation weakens as the distance increases, so a larger weight is given to the attribute reconstruction value of the neighboring point with a smaller distance.
[0118] It is understandable that in the embodiment of the present application, when predicting the attribute information of the point to be predicted, the encoder can simultaneously use the first attribute reconstruction value of the coplanar adjacent point to be predicted and the second attribute reconstruction value of the collinear adjacent point to determine the attribute prediction value of the point to be predicted, or can choose to use the first attribute reconstruction value of the coplanar adjacent point to be predicted, or the second attribute reconstruction value of the collinear adjacent point to determine the attribute prediction value of the point to be predicted. Among them, based on the principle that the closer the distance, the stronger the correlation, the coplanar adjacent point with a closer distance can be preferentially selected to predict the attribute information of the point to be predicted.
[0119] For example, in this application, the encoder may first search for coplanar adjacent points with a distance of 1. If they exist, the average of the attribute reconstruction values of these coplanar adjacent points is used as the attribute prediction value of the point to be predicted. If there are no coplanar adjacent points of the point to be predicted in the point cloud to be encoded, then continue to search for coplanar adjacent points with a distance of The collinear adjacent points are then used as the attribute prediction value of the point to be predicted.
[0120] Fig. 9 Schematic diagram of the implementation process of the prediction method for attribute information Figure 2 ,like Fig. 9 As shown, in an embodiment of the present application, after the encoder determines whether there are adjacent points in the coded point cloud according to the target Morton code, that is, after step 103, the method for the encoder to predict the attribute information of the predicted point may further include the following steps:
[0121] Step 105: If there are no adjacent points in the coded point cloud, the attribute prediction value of the point to be predicted is predicted using the previous Morton code corresponding to the current Morton code.
[0122] In an embodiment of the present application, after the encoder determines whether there are adjacent points of the point to be predicted in the coded point cloud based on the target Morton code, if there are no adjacent points of the point to be predicted in the coded point cloud, the encoder cannot predict the attribute information of the point to be predicted based on the adjacent points of the point to be predicted. Therefore, the encoder needs to use the previous Morton code corresponding to the current Morton code to predict the attribute information of the point to be predicted, so as to obtain the attribute prediction value of the point to be predicted.
[0123] It should be noted that in the embodiment of the present application, there are no adjacent points to the point to be predicted, that is, there are no coplanar adjacent points and colinear adjacent points around the point to be predicted, so the attribute information of the point to be predicted can only be predicted by using the attribute reconstruction value corresponding to the previous Morton code of the current Morton code.
[0124] Further, in an embodiment of the present application, when the encoder predicts the attribute prediction value of the point to be predicted using the previous Morton code corresponding to the current Morton code, the encoder can first determine the reconstructed point corresponding to the previous Morton code from the point cloud to be encoded, and then obtain the attribute reconstruction value of the reconstructed point, and determine the attribute reconstruction value of the reconstructed point as the attribute prediction value of the point to be predicted. That is to say, in the present application, based on the target Morton code, if there are no adjacent points of the point to be predicted in the point cloud to be encoded, then the attribute reconstruction value of the reconstructed point corresponding to the previous Morton code of the current Morton code is directly used as the attribute prediction value of the point to be predicted, so as to complete the prediction of the attribute information of the point to be predicted.
[0125] It is understandable that in the embodiment of the present application, if there are no adjacent points of the point to be predicted in the point cloud to be encoded, the encoder can first search for the previous Morton code of the current Morton code from the point cloud sequence set of the point cloud to be encoded. Among them, the point cloud sequence set stores all the Morton codes of all the points in the point cloud to be encoded in order from small to large.
[0126] Fig.10 Schematic diagram of the implementation process of the prediction method for attribute information Figure 3 ,like Fig.10As shown, in an embodiment of the present application, after the encoder determines whether there are adjacent points in the coded point cloud according to the target Morton code, that is, after step 103, and before predicting the attribute prediction value of the point to be predicted according to the attribute reconstruction information of the adjacent points, that is, before step 104, the method for the encoder to predict the attribute information of the point to be predicted may also include the following steps:
[0127] Step 106: Determine the reconstructed point corresponding to the previous Morton code from the point cloud to be encoded.
[0128] Step 107: Determine the reconstructed point as an adjacent point of the point to be predicted.
[0129] In an embodiment of the present application, after the encoder determines whether there are adjacent points of the point to be predicted in the encoded point cloud based on the target Morton code, if there are no adjacent points of the point to be predicted in the point cloud to be encoded, that is, there are no coplanar adjacent points and colinear adjacent points around the point to be predicted, then the encoder can first determine the reconstructed point corresponding to the previous Morton code from the point cloud to be encoded.
[0130] Further, in an embodiment of the present application, after the encoder determines the reconstructed point corresponding to the previous Morton code from the point cloud to be encoded, it can determine the neighboring point of the point to be predicted by the reconstructed point. That is to say, in the present application, based on the target Morton code, if there is no neighboring point of the point to be predicted in the point cloud to be encoded, then the reconstructed point corresponding to the previous Morton code of the current Morton code is directly used as the neighboring point of the point to be predicted, and then the prediction of the attribute information of the point to be predicted is completed according to the method of step 104.
[0131] It can be understood that in the embodiment of the present application, after step 103, that is, after the encoder determines whether there are adjacent points in the point cloud to be encoded according to the target Morton code, if there are adjacent points of the point to be predicted in the point cloud to be encoded, then the encoder can directly predict the attribute prediction value of the point to be predicted based on the attribute reconstruction information of the adjacent points; if there are no adjacent points of the point to be predicted in the point cloud to be encoded, then the encoder can first search for the previous Morton code of the current Morton code from the point cloud sequence set of the point cloud to be encoded, and then determine the reconstructed point corresponding to the previous Morton code from the point cloud to be encoded, and determine the reconstructed point as the adjacent point of the point to be predicted, so that the attribute prediction value of the point to be predicted can continue to be predicted based on the attribute reconstruction information of the adjacent points.
[0132] It can be seen that in an embodiment of the present application, if it is determined that there are no adjacent points of the point to be predicted in the point cloud to be encoded based on the target Morton code, then the encoder can first use the reconstructed points corresponding to the previous Morton code of the current Morton code in the point cloud sequence set as the adjacent points of the point to be predicted, and then predict the attribute prediction value of the point to be predicted based on the attribute reconstruction information of the adjacent points.
[0133] In an embodiment of the present application, further, after the encoder predicts the attribute prediction value of the point to be predicted based on the attribute reconstruction information of the adjacent points, the encoder can calculate the prediction residual of the point to be predicted based on the attribute prediction value, and then encode the prediction residual to generate a bit stream.
[0134] It should be noted that, in the embodiment of the present application, based on the method of the above steps 101 to 107, when the encoder predicts the attribute information of the predicted point, based on the preset adjacent information table, the current Morton code of the predicted point can be used to determine the target Morton code corresponding to the adjacent position around the predicted point. If there is an adjacent point of the predicted point at the adjacent position in the point cloud, the codec can directly use the attribute reconstruction value of the adjacent point to predict the attribute prediction value of the predicted point. It is precisely because the correlation between the predicted point and the adjacent point is stronger, so the prediction of the attribute information of the predicted point is realized through the adjacent point, which can effectively improve the accuracy of the prediction. In contrast, the present application directly obtains the Morton code of the adjacent point according to the current Morton code of the predicted point, and when it is determined after the query that the adjacent point does exist, the attribute information of the predicted point is predicted using the reconstructed attribute value of the adjacent point. Compared with the related technical solutions of PCEM, the spatial correlation of the point cloud is utilized to a greater extent, and the output binary code stream is greatly reduced while the peak signal to noise ratio (PSNR) performance is maintained or even slightly improved.
[0135] Furthermore, in an embodiment of the present application, if the point cloud to be encoded is subjected to layered processing, the encoder may also apply the above-mentioned methods of steps 101 to 107 to intra-layer prediction of the point cloud to be encoded.
[0136] In the embodiments of the present application, further, the prediction method of attribute information proposed in the present application can make full use of the spatial correlation of the point cloud, so that the prediction residual is smaller and more suitable for subsequent quantization and entropy coding, and a higher gain is achieved under the premise of maintaining PSNR performance. Table 1 shows the performance of the prediction method of attribute information proposed in the present application. It can be seen from Table 1 that, compared with the relevant technical solutions of PCEM, for different targets, under the same objective quality, the bit rate is reduced and the performance of the encoder is improved by using the prediction method of attribute information proposed in the present application.
[0137] Table 1
[0138]
[0139] The embodiment of the present application provides a method for predicting attribute information, wherein the encoder determines the current Morton code of the point to be predicted in the point cloud to be encoded; based on the current Morton code, the target Morton code corresponding to the point to be predicted is determined according to the preset adjacent information table; wherein the preset adjacent information table is used to determine the coordinate difference between the adjacent position of the point to be predicted and the preset reference point; according to the target Morton code, it is judged whether there are adjacent points of the point to be predicted in the point cloud to be encoded; if there are adjacent points in the point cloud to be encoded, the attribute prediction value of the point to be predicted is predicted according to the attribute reconstruction information of the adjacent points. It can be seen that in the embodiment of the present application, when the codec predicts the attribute information of the point to be predicted, based on the preset adjacent information table, the current Morton code of the point to be predicted can be used to determine the target Morton code corresponding to the adjacent position around the point to be predicted. If there is an adjacent point of the point to be predicted at the adjacent position in the point cloud, the codec can directly use the attribute reconstruction value of the adjacent point to predict the attribute prediction value of the point to be predicted. It is precisely because the correlation between the point to be predicted and the adjacent point is stronger, so the prediction of the attribute information of the point to be predicted is realized through the adjacent points, which can effectively improve the accuracy of the prediction, greatly reduce the prediction residual, and thus improve the coding efficiency.
[0140] Based on the above embodiment, in another embodiment of the present application, Fig.11 Schematic diagram of the implementation process of the prediction method for attribute information Figure 4 ,like Fig.11 As shown, since the adjacent positions of the to-be-predicted point may include coplanar adjacent points coplanar with the to-be-predicted point, and may also include colinear adjacent points colinear with the to-be-predicted point, the method for the encoder to establish a preset adjacent information table corresponding to the to-be-predicted point may include the following steps:
[0141] Step 201: Locate a preset reference point.
[0142] Step 202, calculating a first coordinate difference between a preset reference point and a coplanar adjacent point, and calculating a second coordinate difference between a preset reference point and a colinear adjacent point;
[0143] Step 203, perform Morton encoding on the first coordinate difference to obtain coplanar Morton codes corresponding to coplanar adjacent points, and perform Morton encoding on the second coordinate difference to obtain collinear Morton codes corresponding to collinear adjacent points;
[0144] Step 204: Based on the coplanar Morton code and the colinear Morton code, a preset neighbor information table corresponding to the point to be predicted is established.
[0145] In an embodiment of the present application, when establishing a preset adjacent information table, the encoder needs to first locate a preset reference point, wherein the preset reference point represents the origin coordinates of the space centered on the point to be predicted in the point cloud to be encoded. The preset reference point can be the point with the smallest Morton code in the point cloud to be encoded.
[0146] Exemplarily, in the present application, the coordinates of the point to be predicted are (1, 1, 2), and with the point to be predicted as the center of the space, the encoder can position the coordinates of the preset reference point as (0, 0, 0).
[0147] It should be noted that, in an embodiment of the present application, after locating the preset reference point, the coordinates of adjacent positions around the point to be predicted can be determined based on the preset reference point. For example, the coordinates of a certain adjacent position can be determined to be (1, 1, 1).
[0148] Furthermore, in an embodiment of the present application, the coordinate difference between the adjacent positions of the preset reference point and the point to be predicted may specifically include a first coordinate difference between the preset reference point and the coplanar adjacent point, and may also include a second coordinate difference between the preset reference point and the colinear adjacent point.
[0149] It should be noted that, in the embodiment of the present application, after the encoder uses the preset reference point to calculate the coordinate difference between the preset reference point and the adjacent position, it can perform Morton encoding on the coordinate difference to obtain the corresponding Morton code.
[0150] It can be understood that in an embodiment of the present application, after calculating the first coordinate difference between a preset reference point and a coplanar adjacent point, the encoder can perform Morton encoding on the first coordinate difference to obtain a corresponding Morton code, i.e., a coplanar Morton code; correspondingly, after calculating the second coordinate difference between a preset reference point and a collinear adjacent point, the encoder can perform Morton encoding on the second coordinate difference to obtain a corresponding Morton code, i.e., a collinear Morton code.
[0151] Further, in an embodiment of the present application, after the encoder completes the Morton encoding of the coordinate difference between the preset reference point and the adjacent position, it can establish a preset adjacent information table based on the obtained Morton code. Specifically, the encoder can establish a preset adjacent information table using the corresponding relationship between the adjacent position and the Morton code. In other words, the preset adjacent information table can be used to determine the Morton code of the adjacent position.
[0152] It can be understood that in an embodiment of the present application, the encoder can establish a preset adjacent information table corresponding to the point to be predicted based on the coplanar Morton code and the collinear Morton code. Specifically, the encoder can preset the adjacent information table of the coplanar adjacent points of the point to be predicted and the corresponding coplanar Morton code storage values. At the same time, the encoder can also preset the adjacent information table of the collinear adjacent points of the point to be predicted and the corresponding collinear Morton code storage values, thereby completing the establishment of the preset adjacent information table.
[0153] In the embodiments of the present application, further, Fig.12 Schematic diagram of the implementation process of the prediction method for attribute information Figure 5 ,like Fig.12As shown, the method for the encoder to determine the target Morton code corresponding to the point to be predicted based on the current Morton code according to the preset adjacent information table may include the following steps:
[0154] Step 102a: read the coplanar Morton code and the colinear Morton code corresponding to the point to be predicted from the preset adjacent information table.
[0155] Step 102b, performing a sum operation on the coplanar Morton code and the Morton code of the preset reference point to obtain a first sum value, and performing a sum operation on the collinear Morton code and the Morton code of the preset reference point to obtain a second sum value.
[0156] Step 102c: determine the first sum and the second sum as target Morton codes.
[0157] In an embodiment of the present application, when the encoder uses the current Morton code and the preset adjacent information table corresponding to the point to be predicted to determine the target Morton code, the coplanar Morton code and the collinear Morton code can be first read from the preset adjacent information table. That is, the encoder can first obtain the Morton code corresponding to the coplanar adjacent points of the point to be predicted from the preset adjacent information table, that is, the coplanar Morton code, and at the same time, the Morton code corresponding to the collinear adjacent points of the point to be predicted can be obtained from the preset adjacent information table, that is, the collinear Morton code. Then, the coplanar Morton code and the collinear Morton code can be further used to determine the target Morton code.
[0158] It can be understood that in the embodiment of the present application, the encoder can perform a sum operation on the coplanar Morton code and the Morton code of the preset reference point to obtain a first sum value. Specifically, since the coplanar Morton code can represent the distance difference between the preset reference point and the coplanar adjacent point, the encoder can directly obtain the Morton code of the coplanar adjacent point after adding the coplanar Morton code and the Morton code of the preset reference point, that is, the first sum value can be used as the Morton code of the coplanar adjacent point of the point to be predicted, and therefore the first sum value can be determined as the target Morton code.
[0159] Accordingly, in the present application, the encoder can perform a sum operation on the collinear Morton code and the Morton code of the preset reference point to obtain a second sum value. Specifically, since the collinear Morton code can represent the distance difference between the preset reference point and the collinear adjacent point, the encoder can directly obtain the Morton code of the collinear adjacent point after adding the collinear Morton code and the Morton code of the preset reference point, that is, the second sum value can be used as the Morton code of the collinear adjacent point of the point to be predicted, and therefore the second sum value can be determined as the target Morton code.
[0160] In an embodiment of the present application, further, before the encoder determines the target Morton code corresponding to the point to be predicted based on the current Morton code and according to the preset neighbor information table, that is, before step 102, the neighbor type of the point to be predicted may be selected to determine whether the neighbor type is a coplanar type or a colinear type. In other words, the encoder may choose to obtain only the Morton codes of the coplanar neighboring points of the point to be predicted, or may choose to obtain only the Morton codes of the colinear neighboring points of the point to be predicted.
[0161] It can be understood that, in the embodiment of the present application, the method for the encoder to determine the target Morton code corresponding to the point to be predicted based on the current Morton code and according to the preset adjacent information table may include the following steps:
[0162] Step 102d: If the adjacent type is a coplanar type, the coplanar Morton code corresponding to the point to be predicted is read from the preset adjacent information table.
[0163] Step 102e: performing a sum operation on the coplanar Morton code and the Morton code of the preset reference point to obtain a first sum value.
[0164] Step 102f, determining the first sum value as the target Morton code.
[0165] In an embodiment of the present application, if the encoder first selects the adjacency type as coplanar adjacency, then the encoder only needs to read the coplanar Morton code corresponding to the predicted point from the preset adjacency information table, and then perform a sum operation on the coplanar Morton code and the Morton code of the preset reference point to obtain a first sum value, and finally the first sum value can be determined as the target Morton code.
[0166] That is to say, in an embodiment of the present application, if the encoder chooses to obtain only the Morton codes of the coplanar adjacent points of the point to be predicted, then when the encoder uses the current Morton code and the preset adjacent information table corresponding to the point to be predicted to determine the target Morton code, the encoder can first obtain the coplanar Morton code corresponding to the coplanar adjacent points of the point to be predicted from the preset adjacent information table. Then, the coplanar Morton code and the Morton code of the preset reference point can be further summed. Since the coplanar Morton code can represent the distance difference between the preset reference point and the coplanar adjacent point, the encoder can determine the first sum as the target Morton code after adding the coplanar Morton code and the Morton code of the preset reference point.
[0167] It can be understood that in the embodiments of the present application, based on the principle that the closer the distance, the stronger the similarity, the encoder can give priority to selecting the adjacent type as coplanar adjacent, thereby reducing the output binary code stream as much as possible on the basis of reducing the prediction residual to improve the encoding efficiency.
[0168] Further, in an embodiment of the present application, the method in which the encoder determines the target Morton code corresponding to the point to be predicted based on the current Morton code according to the preset adjacent information table may also include the following steps:
[0169] Step 102g: If the neighbor type is a collinear type, the collinear Morton code corresponding to the point to be predicted is read from the preset neighbor information table.
[0170] Step 102h, performing a sum operation on the collinear Morton code and the Morton code of the preset reference point to obtain a second sum value.
[0171] Step 102i: determine the second sum value as the target Morton code.
[0172] In an embodiment of the present application, if the encoder first selects the adjacency type as collinear adjacency, then the encoder only needs to read the collinear Morton code corresponding to the point to be predicted from the preset adjacency information table, and then perform a sum operation on the collinear Morton code and the Morton code of the preset reference point to obtain a second sum value, and finally the second sum value can be determined as the target Morton code.
[0173] That is to say, in an embodiment of the present application, if the encoder chooses to obtain only the Morton codes of the collinear adjacent points of the point to be predicted, then when the encoder uses the current Morton code and the preset adjacent information table corresponding to the point to be predicted to determine the target Morton code, the encoder can first obtain the collinear Morton code corresponding to the collinear adjacent points of the point to be predicted from the preset adjacent information table. Then, the collinear Morton code and the Morton code of the preset reference point can be further summed. Since the collinear Morton code can represent the distance difference between the preset reference point and the collinear adjacent point, the encoder can determine the second sum as the target Morton code after adding the collinear Morton code and the Morton code of the preset reference point.
[0174] It can be understood that in the embodiments of the present application, based on the principle that the closer the distance, the stronger the similarity, the encoder can give priority to selecting the neighbor type as coplanar neighbor, but if there are no coplanar adjacent points in the point cloud to be encoded that are coplanar with the points to be predicted, then the encoder can select the neighbor type as collinear neighbor, thereby reducing the prediction residual as much as possible to improve the coding efficiency.
[0175] The embodiment of the present application provides a method for predicting attribute information, wherein the encoder determines the current Morton code of the point to be predicted in the point cloud to be encoded; based on the current Morton code, the target Morton code corresponding to the point to be predicted is determined according to the preset adjacent information table; wherein the preset adjacent information table is used to determine the coordinate difference between the adjacent position of the point to be predicted and the preset reference point; according to the target Morton code, it is judged whether there are adjacent points of the point to be predicted in the point cloud to be encoded; if there are adjacent points in the point cloud to be encoded, the attribute prediction value of the point to be predicted is predicted according to the attribute reconstruction information of the adjacent points. It can be seen that in the embodiment of the present application, when the codec predicts the attribute information of the point to be predicted, based on the preset adjacent information table, the current Morton code of the point to be predicted can be used to determine the target Morton code corresponding to the adjacent position around the point to be predicted. If there is an adjacent point of the point to be predicted at the adjacent position in the point cloud, the codec can directly use the attribute reconstruction value of the adjacent point to predict the attribute prediction value of the point to be predicted. It is precisely because the correlation between the point to be predicted and the adjacent point is stronger, so the prediction of the attribute information of the point to be predicted is realized through the adjacent points, which can effectively improve the accuracy of the prediction, greatly reduce the prediction residual, and thus improve the coding efficiency.
[0176] Based on the above embodiment, in another embodiment of the present application, if there are adjacent points of the point to be predicted in the point cloud to be encoded, then the adjacent points may specifically include coplanar adjacent points coplanar with the point to be predicted, and may also include colinear adjacent points colinear with the point to be predicted. Therefore, the method for the encoder to predict the attribute prediction value of the point to be predicted according to the attribute reconstruction information of the adjacent points may include the following steps:
[0177] Step 301: If the adjacent point is a coplanar adjacent point coplanar with the point to be predicted, obtain a first attribute reconstruction value corresponding to the coplanar adjacent point.
[0178] Step 302: Calculate a first average value of the first attribute reconstruction value, and determine the first average value as the attribute prediction value.
[0179] In an embodiment of the present application, after the encoder determines whether there are adjacent points of the point to be predicted in the encoded point cloud according to the target Morton code, if there are adjacent points of the point to be predicted in the point cloud to be encoded, and the existing adjacent points of the point to be predicted are only coplanar adjacent points that are coplanar with the point to be predicted, then when the encoder obtains the attribute reconstruction value of the adjacent point, it can obtain the first attribute reconstruction value corresponding to the coplanar adjacent point.
[0180] Furthermore, in an embodiment of the present application, since there is at least one coplanar adjacent point to the point to be predicted, the encoder can calculate a first average value corresponding to at least one first reconstruction value when performing mean calculation on the attribute reconstruction value, and then the encoder can determine the first average value as the attribute prediction value, thereby completing the prediction of the attribute information of the point to be predicted.
[0181] For example, in the present application, if the point to be predicted has only three coplanar adjacent points, the encoder can use the following formula (4) to average the attribute reconstruction values of all adjacent points to obtain the attribute prediction value of the point to be predicted:
[0182]
[0183] in, is the predicted value of the attribute of the current point, a 1j Reconstruct values for attributes of coplanar neighboring points.
[0184] In an embodiment of the present application, further, the method for an encoder to predict an attribute prediction value of a point to be predicted based on attribute reconstruction information of adjacent points may include the following steps:
[0185] Step 303: If the adjacent point is a collinear adjacent point that is collinearly adjacent to the point to be predicted, obtain a second attribute reconstruction value corresponding to the collinear adjacent point.
[0186] Step 304: Calculate a second average value of the second attribute reconstruction value, and determine the second average value as the attribute prediction value.
[0187] In an embodiment of the present application, after the encoder determines whether there are adjacent points of the point to be predicted in the encoded point cloud according to the target Morton code, if there are adjacent points of the point to be predicted in the point cloud to be encoded, and the adjacent points of the point to be predicted that exist are only collinear adjacent points that are collinearly adjacent to the point to be predicted, then when the encoder obtains the attribute reconstruction value of the adjacent point, it can obtain the second attribute reconstruction value corresponding to the collinear adjacent point.
[0188] Furthermore, in an embodiment of the present application, since there is at least one collinear adjacent point to the point to be predicted, the encoder can calculate a second average value corresponding to at least one second reconstruction value when performing mean calculation on the attribute reconstruction value, and then the encoder can determine the second average value as the attribute prediction value, thereby completing the prediction of the attribute information of the point to be predicted.
[0189] For example, in the present application, if the point to be predicted has only two collinear adjacent points, the encoder can use the following formula (5) to average the attribute reconstruction values of all adjacent points to obtain the attribute prediction value of the point to be predicted:
[0190]
[0191] in, is the predicted value of the attribute of the current point, a 2j Reconstruct values for attributes of collinear neighboring points.
[0192] In an embodiment of the present application, further, the method for an encoder to predict an attribute prediction value of a point to be predicted based on attribute reconstruction information of adjacent points may include the following steps:
[0193] Step 305: If the adjacent point is a coplanar adjacent point coplanar with the point to be predicted and a collinear adjacent point collinear with the point to be predicted, obtain a first attribute reconstruction value corresponding to the coplanar adjacent point and a second attribute reconstruction value corresponding to the collinear adjacent point.
[0194] Step 306: Perform weighted average calculation on the first attribute reconstruction value and the second attribute reconstruction value according to preset weights to obtain a weighted average value.
[0195] Step 307: Determine the weighted average value as the attribute prediction value.
[0196] In an embodiment of the present application, after the encoder determines whether there are adjacent points of the point to be predicted in the encoded point cloud according to the target Morton code, if there are adjacent points of the point to be predicted in the point cloud to be encoded, and the adjacent points of the point to be predicted include both coplanar adjacent points and collinear adjacent points, then when the encoder obtains the attribute reconstruction value of the adjacent points, it can obtain the first attribute reconstruction value corresponding to the coplanar adjacent points, and at the same time, obtain the second attribute reconstruction value corresponding to the collinear adjacent points.
[0197] Further, in an embodiment of the present application, since there is at least one coplanar adjacent point and at least one colinear adjacent point for the predicted point, when the encoder calculates the mean of the attribute reconstruction value, it can perform a weighted average calculation on the first attribute reconstruction value and the second attribute reconstruction value according to a preset weight, thereby obtaining a weighted average value. Among them, the encoder can assign different weight values to the first attribute reconstruction value and the second attribute reconstruction value respectively based on the principle that the closer the distance, the stronger the correlation. Specifically, the weight value corresponding to the first attribute reconstruction value should be greater than the weight value corresponding to the second attribute reconstruction value.
[0198] That is to say, in the present application, when predicting the attribute information of the point to be predicted, the encoder can simultaneously use the first attribute reconstruction value of the coplanar adjacent points of the point to be predicted and the second attribute reconstruction value of the collinear adjacent points to determine the attribute prediction value of the point to be predicted, or can choose to use the first attribute reconstruction value of the coplanar adjacent points of the point to be predicted, or the second attribute reconstruction value of the collinear adjacent points to determine the attribute prediction value of the point to be predicted. For example, the encoder can first search for coplanar adjacent points with a distance of 1. If they exist, then use the average value of the attribute reconstruction values of these coplanar adjacent points as the attribute prediction value of the point to be predicted; if there are no coplanar adjacent points of the point to be predicted in the point cloud to be encoded, then continue to search for coplanar adjacent points with a distance of The collinear adjacent points are then used as the attribute prediction value of the point to be predicted.
[0199] The embodiment of the present application provides a method for predicting attribute information, wherein the encoder determines the current Morton code of the point to be predicted in the point cloud to be encoded; based on the current Morton code, the target Morton code corresponding to the point to be predicted is determined according to the preset adjacent information table; wherein the preset adjacent information table is used to determine the coordinate difference between the adjacent position of the point to be predicted and the preset reference point; according to the target Morton code, it is judged whether there are adjacent points of the point to be predicted in the point cloud to be encoded; if there are adjacent points in the point cloud to be encoded, the attribute prediction value of the point to be predicted is predicted according to the attribute reconstruction information of the adjacent points. It can be seen that in the embodiment of the present application, when the codec predicts the attribute information of the point to be predicted, based on the preset adjacent information table, the current Morton code of the point to be predicted can be used to determine the target Morton code corresponding to the adjacent position around the point to be predicted. If there is an adjacent point of the point to be predicted at the adjacent position in the point cloud, the codec can directly use the attribute reconstruction value of the adjacent point to predict the attribute prediction value of the point to be predicted. It is precisely because the correlation between the point to be predicted and the adjacent point is stronger, so the prediction of the attribute information of the point to be predicted is realized through the adjacent points, which can effectively improve the accuracy of the prediction, greatly reduce the prediction residual, and thus improve the coding efficiency.
[0200] Based on the above embodiment, in yet another embodiment of the present application, Fig.13 It is a schematic diagram of the prediction framework of attribute information, such as Fig.13 As shown, the method for an encoder to predict attribute information using the current Morton code may include the following steps:
[0201] Step 401: Calculate the current Morton code of the point to be predicted.
[0202] The encoder may first determine the Morton code of the point to be predicted in the point cloud to be encoded, that is, the current Morton code.
[0203] Step 402: Select the adjacent type of adjacent points.
[0204] It is understandable that in the embodiment of the present application, the encoder may select the neighbor type before determining the target Morton code of the adjacent point. The neighbor type may include a coplanar type and a colinear type, and then based on the neighbor type, further select the coplanar Morton code or the colinear Morton code to obtain.
[0205] It should be noted that, in the embodiment of the present application, before step 404, the encoder cannot determine whether there are adjacent points of the point to be predicted in the point cloud to be encoded. Therefore, the adjacent points here are assumed to exist at adjacent positions around the point to be predicted.
[0206] Step 403: Determine the target Morton code of the adjacent point based on the adjacent type.
[0207] If the adjacent type selected by the encoder is coplanar adjacent, then the coplanar Morton code corresponding to the coplanar adjacent point can be obtained from the pre-established preset adjacent information table and used as the target Morton code; if the adjacent type selected by the encoder is collinear adjacent, then the collinear Morton code corresponding to the collinear adjacent point can be obtained from the pre-established preset adjacent information table and used as the target Morton code.
[0208] Step 404, determine whether there are adjacent points, if yes, execute step 405; if not, execute step 406.
[0209] The encoder can use the target Morton code to determine whether there are adjacent points in the point cloud to be encoded. Specifically, the encoder can perform query processing in the point cloud sequence set of the point cloud to be encoded, that is, directly search for whether the target Morton code exists in the point cloud sequence set. If it exists, it can be considered that the point to be predicted has adjacent points in space; correspondingly, if it does not exist, it can be considered that the point to be predicted has no adjacent points in space.
[0210] Step 405: Use the attribute reconstruction values of the adjacent points to predict the attribute information of the point to be predicted.
[0211] If there are adjacent points of the point to be predicted in the coded point cloud, the encoder directly obtains the attribute prediction value of the point to be predicted based on the attribute reconstruction information of the adjacent points of the point to be predicted. The encoder can calculate the mean of the attribute reconstruction values of the adjacent points and determine the average of the attribute reconstruction values as the attribute prediction value.
[0212] Step 406: Use the previous Morton code of the current Morton code to predict the attribute information of the point to be predicted.
[0213] If there are no adjacent points of the point to be predicted in the coded point cloud, the encoder needs to use the previous Morton code corresponding to the current Morton code to obtain the attribute prediction value of the point to be predicted. The encoder can determine the reconstructed point corresponding to the previous Morton code, and then obtain the attribute reconstruction value of the reconstructed point, and determine the attribute reconstruction value of the reconstructed point as the attribute prediction value of the point to be predicted.
[0214] Step 407: Calculate the prediction residual corresponding to the point to be predicted.
[0215] Step 408: Generate a bit stream.
[0216] After the encoder predicts the attribute prediction value of the point to be predicted, it can use the attribute prediction value to calculate the prediction residual, and then encode the prediction residual to obtain and output a binary code stream.
[0217] In an embodiment of the present application, another exemplary implementation method of predicting attribute information is as follows: Fig.14 The flow chart of the prediction algorithm for attribute information is as follows: Fig.14 As shown, when the encoder predicts attribute information, the specific implementation process may include the following steps:
[0218] Step 501: Determine the current Morton code Cur_pos of the point to be predicted.
[0219] The encoder may first determine the Morton code of the point to be predicted in the point cloud to be encoded, that is, the current Morton code Cur_pos.
[0220] Step 502: Locate the Morton code base_pos of the preset reference point.
[0221] The encoder operates Cur_pos to locate the Morton code base_pos of the reference point. The encoder can pre-calculate the coordinate difference between the reference point base_pos and the adjacent points of the predicted point, perform Morton encoding on these differences, and establish a preset table.
[0222] Step 503: Based on base_pos, calculate and obtain the target Morton code neighbor_pos of the neighboring point.
[0223] The encoder can calculate the target Morton code of each position adjacent to the predicted point by adding the Morton code according to the preset table. Specifically, the encoder can obtain neighbor_pos by adding the Morton code based on base_pos. Wherein, neighbor_pos=morton3dAdd(base_pos, mortonOffset). MortonOffset represents the coordinate difference after Morton encoding.
[0224] Step 504: Based on neighbor_pos, find out whether the neighbor point Neighbor exists. If it exists, directly execute step 506; if it does not exist, execute step 505 first, and then continue to execute step 506.
[0225] The encoder can use the target Morton code to determine whether there are adjacent points in the point cloud to be encoded. Specifically, the encoder can perform query processing in the point cloud sequence set of the point cloud to be encoded, that is, directly search for whether the target Morton code exists in the point cloud sequence set. If it exists, it can be considered that the point to be predicted has adjacent points in space; correspondingly, if it does not exist, it can be considered that the point to be predicted has no adjacent points in space.
[0226] Step 505: Take the point corresponding to the last Morton Code of the current Morton Code as the adjacent point of the point to be predicted.
[0227] If there are no neighboring points of the predicted point in the point cloud to be encoded, the encoder needs to use the previous Morton code lastMortonCode corresponding to the current Morton code to predict the attribute information of the predicted point. Specifically, the previous Morton code can be considered as the Morton code of the neighboring point of the predicted point, that is, the point corresponding to the previous Morton code lastMortonCode of the current Morton code is used as the neighboring point of the predicted point. Where Neighbor = lastMortonCode.
[0228] Step 506: Determine the attribute prediction value Pred of the point to be predicted using the reconstructed value neighbor[i] of the neighboring point.
[0229] The encoder obtains the attribute prediction value of the point to be predicted based on the attribute reconstruction information of the neighboring points of the point to be predicted. The encoder can calculate the average of the attribute reconstruction values of the neighboring points neighbor[i] and determine the average of the attribute reconstruction values as the attribute prediction value. Specifically, Pred = average(neighbor[i]).
[0230] Step 507: Calculate the prediction residual Residual of the point to be predicted based on Pred.
[0231] After the encoder predicts the attribute prediction value of the point to be predicted, it can use the attribute prediction value to calculate the prediction residual, and then encode the prediction residual to generate and output the attribute code stream.
[0232] It can be seen that in an embodiment of the present application, if it is determined that there are no adjacent points of the point to be predicted in the point cloud to be encoded based on the target Morton code, then the encoder can first use the reconstructed points corresponding to the previous Morton code of the current Morton code in the point cloud sequence set as the adjacent points of the point to be predicted, and then predict the attribute prediction value of the point to be predicted based on the attribute reconstruction information of the adjacent points.
[0233] The embodiment of the present application provides a method for predicting attribute information, wherein the encoder determines the current Morton code of the point to be predicted in the point cloud to be encoded; based on the current Morton code, the target Morton code corresponding to the point to be predicted is determined according to the preset adjacent information table; wherein the preset adjacent information table is used to determine the coordinate difference between the adjacent position of the point to be predicted and the preset reference point; according to the target Morton code, it is judged whether there are adjacent points of the point to be predicted in the point cloud to be encoded; if there are adjacent points in the point cloud to be encoded, the attribute prediction value of the point to be predicted is predicted according to the attribute reconstruction information of the adjacent points. It can be seen that in the embodiment of the present application, when the codec predicts the attribute information of the point to be predicted, based on the preset adjacent information table, the current Morton code of the point to be predicted can be used to determine the target Morton code corresponding to the adjacent position around the point to be predicted. If there is an adjacent point of the point to be predicted at the adjacent position in the point cloud, the codec can directly use the attribute reconstruction value of the adjacent point to predict the attribute prediction value of the point to be predicted. It is precisely because the correlation between the point to be predicted and the adjacent point is stronger, so the prediction of the attribute information of the point to be predicted is realized through the adjacent points, which can effectively improve the accuracy of the prediction, greatly reduce the prediction residual, and thus improve the coding efficiency.
[0234] An embodiment of the present application provides a method for predicting attribute information, which is applied in a decoder. Fig.15 Schematic diagram of the implementation process of the prediction method for attribute information Figure 6 ,like Fig.15 As shown, the method for a decoder to predict attribute information of a point to be predicted may include the following steps:
[0235] Step 601: Determine the current Morton code of the point to be predicted in the point cloud to be decoded.
[0236] In an embodiment of the present application, the decoder may first determine the current Morton code of the to-be-predicted point in the to-be-decoded point cloud.
[0237] It should be noted that in the embodiment of the present application, when decoding the point cloud to be decoded, the geometric information of the point cloud to be decoded and the attribute information corresponding to the point cloud to be decoded are decoded separately. After the decoding of the geometric information is completed, the geometric information is reconstructed, and the decoding of the attribute information will depend on the reconstructed geometric information.
[0238] Further, in an embodiment of the present application, after decoding the geometric information of the point cloud to be decoded, the decoder can use the set information of each point in the point cloud to be decoded to determine the Morton code of each point. After obtaining the Morton code of each point, the decoder can sort all the points in the point cloud to be decoded in order from small to large, and generate a point cloud sequence set corresponding to the point cloud to be decoded. Among them, the point cloud sequence set stores all the Morton codes of all the points in the point cloud to be decoded.
[0239] It should be noted that, in the embodiment of the present application, when the decoder decodes the attribute information of the point cloud to be decoded, the attribute information of all points of the point cloud to be decoded can be predicted in order from small to large according to the Morton code.
[0240] It can be understood that in the embodiments of the present application, the point to be predicted can be any point in the point cloud to be decoded, and the current Morton code is the Morton code of the point to be predicted. When predicting the attribute information of the point to be predicted, other points corresponding to other Morton codes smaller than the current Morton code have completed the prediction of the attribute information, and the corresponding attribute reconstruction information is generated.
[0241] Furthermore, in an embodiment of the present application, when the decoder predicts the attribute information of the prediction point, it is necessary to first determine the Morton code of the prediction point to obtain the current Morton code.
[0242] Step 602: Based on the current Morton code, determine the target Morton code corresponding to the point to be predicted according to a preset adjacent information table; wherein the preset adjacent information table is used to determine the coordinate difference between the adjacent position of the point to be predicted and a preset reference point.
[0243] In an embodiment of the present application, after determining the current Morton code of the point to be predicted, the decoder can determine the target Morton code corresponding to the point to be predicted based on the current Morton code and according to a preset adjacent information table, wherein the target Morton code can represent the Morton code corresponding to the adjacent positions around the point to be predicted.
[0244] It should be noted that, in the embodiment of the present application, the preset adjacent information table may represent the coordinate difference between the adjacent positions around the point to be predicted and the preset reference point. The adjacent positions of the point to be predicted may include coplanar adjacent points coplanar with the point to be predicted, and may also include colinear adjacent points colinear with the point to be predicted.
[0245] It is understandable that in the embodiment of the present application, when predicting the attribute information of the point to be predicted, if the point to be predicted is taken as the spatial center of the point cloud to be decoded, then the preset reference point can be the coordinate origin of the space centered on the point to be predicted. Specifically, based on the same preset reference point, the distance between the preset reference point and the point to be predicted and the distance between the preset reference point and the adjacent position of the point to be predicted are calculated to obtain the coordinate difference between the adjacent position and the point to be predicted. Among them, the preset reference point can be the point with the smallest Morton code in the point cloud to be decoded.
[0246] Further, in an embodiment of the present application, before the decoder determines the target Morton code corresponding to the point to be predicted based on the current Morton code and the preset neighbor information table, it is necessary to first establish a preset neighbor information table corresponding to the point to be predicted. In other words, the preset neighbor information table is established based on the point to be predicted.
[0247] It should be noted that, in an embodiment of the present application, when the decoder establishes a preset adjacent information table corresponding to the point to be predicted, it can operate on the current Morton code (cur_pos) of the point to be predicted. Specifically, the decoder can first locate the Morton code (base_pos) of the preset reference point, and then calculate the coordinate difference between the adjacent positions of the preset reference point and the point to be predicted based on the Morton code of the preset reference point, and then continue to perform Morton encoding on these coordinate differences, so that the preset adjacent information table corresponding to the point to be predicted can be established.
[0248] That is to say, in an embodiment of the present application, since the adjacent positions of the point to be predicted may include coplanar adjacent points that are coplanar with the point to be predicted, and collinear adjacent points that are collinear with the point to be predicted, when the decoder establishes a preset adjacent information table corresponding to the point to be predicted, it can respectively calculate the first coordinate difference between the preset reference point and the coplanar adjacent point, and calculate the second coordinate difference between the preset reference point and the collinear adjacent point, and then perform Morton encoding on the first coordinate difference to obtain the coplanar Morton code corresponding to the coplanar adjacent point. At the same time, the second coordinate difference can be Morton encoded to obtain the collinear Morton code corresponding to the collinear adjacent point. Finally, the decoder can establish a preset adjacent information table corresponding to the point to be predicted based on the coplanar Morton code and the collinear Morton code.
[0249] Furthermore, in an embodiment of the present application, after determining the current Morton code of the point to be predicted in the point cloud to be decoded, the decoder can determine the target Morton code corresponding to the point to be predicted based on the preset adjacent information table corresponding to the current Morton code, wherein the target Morton code can represent the Morton code corresponding to the adjacent positions around the point to be predicted.
[0250] Specifically, in an embodiment of the present application, when the decoder determines the target Morton code corresponding to the point to be predicted based on the current Morton code and according to the preset adjacent information table, since the preset adjacent information table stores the Morton code after Morton decoding of the coordinate difference between the preset reference point and the adjacent position, the decoder can extract the Morton code corresponding to the coordinate difference of the adjacent position from the preset adjacent information table, and can further use the Morton code of the coordinate difference to determine the target Morton code.
[0251] It can be understood that in the embodiment of the present application, since the preset adjacent information table stores the coplanar Morton codes and collinear Morton codes corresponding to the points to be predicted, when the decoder determines the target Morton code, it can extract the coplanar Morton code and / or the collinear Morton code from the preset adjacent information table, and then perform a sum operation on the current Morton code and the coplanar Morton code and / or the collinear Morton code, so as to obtain the target Morton code.
[0252] It should be noted that in the embodiments of the present application, since the adjacent positions of the points to be predicted include both coplanar adjacent points and collinear adjacent points, the decoder can first determine the adjacent type when determining the target Morton code, wherein the adjacent type may include coplanar adjacent and collinear adjacent, and then based on the determined adjacent type, further extract the coplanar Morton code or the collinear Morton code from the preset adjacent information table, and determine the target Morton code based on the coplanar Morton code or the collinear Morton code.
[0253] For example, in this application, for a point to be predicted, if the distance between the coplanar adjacent point and it is 1, then the distance between the colinear adjacent point and it is Based on the principle that the closer the distance, the stronger the correlation, the coplanar adjacent neighbor types can be preferentially selected, and then the coplanar Morton code can be extracted from the preset neighbor information table to determine the target Morton code using the coplanar Morton code.
[0254] It should be noted that, in the embodiment of the present application, the target Morton code can represent the Morton codes corresponding to the adjacent positions around the point to be predicted. Therefore, the decoder can use the target Morton code to search and determine the adjacent points around the point to be predicted.
[0255] Step 603: Determine whether there are adjacent points of the point to be predicted in the point cloud to be decoded according to the target Morton code.
[0256] In an embodiment of the present application, after the decoder determines the target Morton code corresponding to the point to be predicted based on the current Morton code and the preset adjacent information table, it can judge whether there are adjacent points of the point to be predicted in the point cloud to be decoded according to the target Morton code. In other words, the decoder can use the Morton code corresponding to the adjacent positions around the point to be predicted to further judge whether there are points adjacent to the point to be predicted in the point cloud to be decoded.
[0257] It should be noted that, in the embodiments of the present application, after determining the target Morton code, the decoder cannot directly determine the adjacent points of the point to be predicted based on the target Morton code. This is because the point cloud is not evenly distributed in space, and adjacent points may not necessarily exist at adjacent positions of the point to be predicted. In other words, the target Morton code determined according to the adjacent positions of the point to be predicted may not necessarily correspond to points in the point cloud to be decoded. Therefore, after determining the target Morton code, the decoder still needs to determine whether there are adjacent points of the point to be predicted in the point cloud to be decoded based on the target Morton code.
[0258] It can be understood that in the embodiment of the present application, after obtaining the Morton code of each point, the decoder will sort all the Morton codes of all the points in order from small to large, and generate a point cloud sequence set corresponding to the point cloud to be decoded. Therefore, after determining the target Morton code, the decoder can use the point cloud sequence set corresponding to the point cloud to be decoded, combined with the target Morton code, to further judge whether there are adjacent points to the predicted point.
[0259] Further, in an embodiment of the present application, when the decoder determines whether there are adjacent points of the to-be-predicted point in the decoded point cloud according to the point cloud sequence set and the target Morton code, the decoder can first obtain the point cloud sequence set of the to-be-decoded point cloud, and then use the target Morton code to perform query processing in the point cloud sequence set to obtain the query result. If the query result is that the target Morton code exists in the point cloud sequence set, then the decoder can determine that there are adjacent points corresponding to the to-be-predicted point in the to-be-decoded point cloud. That is to say, in the present application, after determining the target Morton code, the decoder directly searches the point cloud sequence set for the target Morton code. If it exists, it can be considered that the to-be-predicted point has adjacent points in space; correspondingly, if it does not exist, it can be considered that the to-be-predicted point has no adjacent points in space.
[0260] It should be noted that in the embodiments of the present application, when the decoder performs query processing in a point cloud sequence set based on a target Morton code, it can either directly traverse each Morton code in the query point cloud sequence set according to the target Morton code to obtain a query result; or it can perform query processing on the point cloud sequence set according to a preset query algorithm based on the target Morton code to obtain a query result.
[0261] That is to say, in the embodiment of the present application, when the decoder performs query processing in the point cloud sequence set based on the target Morton code, it can use either a traversal method for the point cloud sequence set or other algorithms for quickly searching the point cloud sequence set.
[0262] Step 604: If there are adjacent points in the point cloud to be decoded, predict the attribute prediction value of the point to be predicted based on the attribute reconstruction information of the adjacent points.
[0263] In an embodiment of the present application, after the decoder determines whether there are adjacent points of the point to be predicted in the decoded point cloud based on the target Morton code, if there are adjacent points of the point to be predicted in the point cloud to be decoded, the decoder can directly reconstruct information based on the attributes of the adjacent points of the point to be predicted, predict the attribute information of the point to be predicted, and obtain the attribute prediction value.
[0264] It should be noted that in an embodiment of the present application, if there are adjacent points to the point to be predicted, then when the decoder predicts the attribute prediction value of the point to be predicted based on the attribute reconstruction information of the adjacent points, it can first obtain the attribute reconstruction value of the adjacent points, and then perform mean calculation on the attribute reconstruction value to obtain the average value corresponding to the attribute reconstruction value, and then the average value can be determined as the attribute prediction value.
[0265] It can be understood that in the embodiments of the present application, since the adjacent points of the point to be predicted can be coplanar adjacent points coplanar with the point to be predicted, or can be collinear adjacent points collinear with the point to be predicted, if the decoder determines that the adjacent points of the point to be predicted are coplanar adjacent points or collinear adjacent points, then when the decoder obtains the attribute reconstruction value of the adjacent point, it can obtain the first attribute reconstruction value corresponding to the coplanar adjacent point, or obtain the second attribute reconstruction value corresponding to the collinear adjacent point.
[0266] Accordingly, in the present application, since there is at least one coplanar adjacent point and at least one colinear adjacent point for the point to be predicted, when the decoder calculates the mean of the attribute reconstruction value, it can calculate a first average value corresponding to at least one first reconstruction value, or calculate a second average value corresponding to at least one second reconstruction value. Finally, the decoder can determine the first average value or the second average value as the attribute prediction value, thereby completing the prediction of the attribute information of the point to be predicted.
[0267] Furthermore, in an embodiment of the present application, if the decoder determines that the adjacent points of the point to be predicted are coplanar adjacent points and collinear adjacent points, then when the decoder obtains the attribute reconstruction values of the adjacent points, it can obtain the first attribute reconstruction value corresponding to the coplanar adjacent points, and at the same time, obtain the second attribute reconstruction value corresponding to the collinear adjacent points.
[0268] Accordingly, in the present application, since the point to be predicted has at least one coplanar adjacent point and at least one colinear adjacent point, when the decoder calculates the mean of the attribute reconstruction value, it can perform a weighted average calculation on the first attribute reconstruction value and the second attribute reconstruction value according to the preset weight, thereby obtaining a weighted average value. Finally, the decoder can determine the weighted average value as the attribute prediction value, thereby completing the prediction of the attribute information of the point to be predicted.
[0269] It is understandable that in the embodiment of the present application, when the decoder uses the preset weights to perform weighted average calculation on the first attribute reconstruction value and the second attribute reconstruction value, different weight values can be assigned to the first attribute reconstruction value and the second attribute reconstruction value, respectively. Specifically, based on the principle that the closer the distance, the stronger the correlation, the weight value corresponding to the first attribute reconstruction value should be greater than the weight value corresponding to the second attribute reconstruction value.
[0270] Exemplarily, in the present application, if the point to be predicted has multiple adjacent points such as coplanar adjacent points and collinear adjacent points, for example, there are 6 adjacent points to predict the attribute information of the point to be predicted, including 3 coplanar adjacent points and 3 collinear adjacent points. The decoder can perform a distance-based weighted average operation on the attribute reconstruction values of all adjacent points to achieve the prediction of the attribute information of the point to be predicted and obtain the attribute prediction value of the point to be predicted. That is, according to the distance between each adjacent point and the point to be predicted, the correlation decreases as the distance increases, so a larger weight is given to the attribute reconstruction value of the adjacent point with a smaller distance.
[0271] It is understandable that in the embodiment of the present application, when predicting the attribute information of the point to be predicted, the decoder can simultaneously use the first attribute reconstruction value of the coplanar adjacent point to be predicted and the second attribute reconstruction value of the collinear adjacent point to determine the attribute prediction value of the point to be predicted, or can choose to use the first attribute reconstruction value of the coplanar adjacent point to be predicted or the second attribute reconstruction value of the collinear adjacent point to determine the attribute prediction value of the point to be predicted. Among them, based on the principle that the closer the distance, the stronger the correlation, the coplanar adjacent point with a closer distance can be preferentially selected to predict the attribute information of the point to be predicted.
[0272] For example, in this application, the decoder may first search for coplanar adjacent points with a distance of 1. If they exist, the average of the attribute reconstruction values of these coplanar adjacent points is used as the attribute prediction value of the point to be predicted. If there are no coplanar adjacent points of the point to be predicted in the point cloud to be decoded, then the decoder may continue to search for coplanar adjacent points with a distance of The collinear adjacent points are then used as the attribute prediction value of the point to be predicted.
[0273] Fig.16 Schematic diagram of the implementation process of the prediction method for attribute information Figure 7 ,like Fig.16 As shown, in the embodiment of the present application, after the decoder determines whether there are adjacent points in the decoded point cloud according to the target Morton code, that is, after step 603, the method for the encoder to predict the attribute information of the point to be predicted may further include the following steps:
[0274] Step 605: If there are no adjacent points in the decoded point cloud, the attribute prediction value of the point to be predicted is predicted using the previous Morton code corresponding to the current Morton code.
[0275] In an embodiment of the present application, after the decoder determines whether there are adjacent points of the point to be predicted in the decoded point cloud based on the target Morton code, if there are no adjacent points of the point to be predicted in the decoded point cloud, then the decoder cannot predict the attribute information of the point to be predicted based on the adjacent points of the point to be predicted. Therefore, the decoder needs to use the previous Morton code corresponding to the current Morton code to predict the attribute information of the point to be predicted, so as to obtain the attribute prediction value of the point to be predicted.
[0276] It should be noted that in the embodiment of the present application, there are no adjacent points to the point to be predicted, that is, there are no coplanar adjacent points and colinear adjacent points around the point to be predicted, so the attribute information of the point to be predicted can only be predicted by using the attribute reconstruction value corresponding to the previous Morton code of the current Morton code.
[0277] Further, in an embodiment of the present application, when the decoder predicts the attribute prediction value of the point to be predicted using the previous Morton code corresponding to the current Morton code, it can first determine the reconstructed point corresponding to the previous Morton code from the point cloud to be decoded, and then obtain the attribute reconstruction value of the reconstructed point, and determine the attribute reconstruction value of the reconstructed point as the attribute prediction value of the point to be predicted. That is to say, in the present application, based on the target Morton code, if there are no adjacent points of the point to be predicted in the point cloud to be decoded, then the attribute reconstruction value of the reconstructed point corresponding to the previous Morton code of the current Morton code is directly used as the attribute prediction value of the point to be predicted, so as to complete the prediction of the attribute information of the point to be predicted.
[0278] It is understandable that in the embodiment of the present application, if there are no adjacent points of the point to be predicted in the point cloud to be decoded, the decoder can first search for the previous Morton code of the current Morton code from the point cloud sequence set of the point cloud to be decoded. Among them, the point cloud sequence set stores all the Morton codes of all the points in the point cloud to be decoded in order from small to large.
[0279] Fig.17 Schematic diagram of the implementation process of the prediction method for attribute information Figure 8 ,like Fig.17 As shown, in the embodiment of the present application, after the decoder determines whether there are adjacent points in the decoded point cloud according to the target Morton code, that is, after step 603, and before predicting the attribute prediction value of the point to be predicted according to the attribute reconstruction information of the adjacent points, that is, before step 604, the method for the decoder to predict the attribute information of the point to be predicted may also include the following steps:
[0280] Step 606: Determine the reconstructed point corresponding to the previous Morton code from the point cloud to be decoded.
[0281] Step 607: Determine the reconstructed point as an adjacent point of the point to be predicted.
[0282] In an embodiment of the present application, after the decoder determines whether there are adjacent points of the point to be predicted in the decoded point cloud based on the target Morton code, if there are no adjacent points of the point to be predicted in the point cloud to be decoded, that is, there are no coplanar adjacent points and colinear adjacent points around the point to be predicted, then the decoder can first determine the reconstructed point corresponding to the previous Morton code from the point cloud to be decoded.
[0283] Further, in an embodiment of the present application, after the decoder determines the reconstructed point corresponding to the previous Morton code from the point cloud to be decoded, it can determine the neighboring point of the point to be predicted by the reconstructed point. That is to say, in the present application, based on the target Morton code, if there is no neighboring point of the point to be predicted in the point cloud to be decoded, then the reconstructed point corresponding to the previous Morton code of the current Morton code is directly used as the neighboring point of the point to be predicted, and then the prediction of the attribute information of the point to be predicted is completed according to the method of step 604.
[0284] It can be understood that in the embodiment of the present application, after step 603, that is, after the decoder determines whether there are adjacent points in the point cloud to be decoded according to the target Morton code, if there are adjacent points of the point to be predicted in the point cloud to be decoded, then the decoder can directly predict the attribute prediction value of the point to be predicted based on the attribute reconstruction information of the adjacent points; if there are no adjacent points of the point to be predicted in the point cloud to be decoded, then the decoder can first search for the previous Morton code of the current Morton code from the point cloud sequence set of the point cloud to be decoded, and then determine the reconstructed point corresponding to the previous Morton code from the point cloud to be decoded, and determine the reconstructed point as the adjacent point of the point to be predicted, so that the attribute prediction value of the point to be predicted can continue to be predicted based on the attribute reconstruction information of the adjacent points.
[0285] It can be seen that in an embodiment of the present application, if it is determined based on the target Morton code that there are no adjacent points of the point to be predicted in the point cloud to be decoded, then the decoder can first use the reconstructed point corresponding to the previous Morton code of the current Morton code in the point cloud sequence set as the adjacent point of the point to be predicted, and then predict the attribute prediction value of the point to be predicted based on the attribute reconstruction information of the adjacent point.
[0286] It should be noted that, in an embodiment of the present application, based on the method of steps 601 to 607 above, when the decoder predicts the attribute information of the point to be predicted, based on the preset adjacent information table, it can use the current Morton code of the point to be predicted to determine the target Morton code corresponding to the adjacent position around the point to be predicted. If there is a neighboring point of the point to be predicted at the adjacent position in the point cloud, the codec can directly use the attribute reconstruction value of the adjacent point to predict the attribute prediction value of the point to be predicted. It is precisely because the correlation between the point to be predicted and the adjacent points is stronger, so the prediction of the attribute information of the point to be predicted through the adjacent points can effectively improve the accuracy of the prediction.
[0287] Furthermore, in an embodiment of the present application, if the point cloud to be decoded is processed in layers, the decoder may also apply the above-mentioned methods of steps 601 to 607 to intra-layer prediction of the point cloud to be decoded.
[0288] In the embodiments of the present application, further, the prediction method of attribute information proposed in the present application can make full use of the spatial correlation of the point cloud, so that the prediction residual is smaller and more suitable for subsequent quantization and entropy decoding, thereby achieving higher gain while maintaining PSNR performance.
[0289] The embodiment of the present application provides a method for predicting attribute information, wherein the decoder determines the current Morton code of the point to be predicted in the point cloud to be decoded; based on the current Morton code, the target Morton code corresponding to the point to be predicted is determined according to the preset adjacent information table; wherein the preset adjacent information table is used to determine the coordinate difference between the adjacent position of the point to be predicted and the preset reference point; according to the target Morton code, it is judged whether there are adjacent points of the point to be predicted in the point cloud to be decoded; if there are adjacent points in the point cloud to be decoded, the attribute prediction value of the point to be predicted is predicted according to the attribute reconstruction information of the adjacent points. It can be seen that in the embodiment of the present application, when the codec predicts the attribute information of the point to be predicted, based on the preset adjacent information table, the current Morton code of the point to be predicted can be used to determine the target Morton code corresponding to the adjacent position around the point to be predicted. If there is an adjacent point of the point to be predicted at the adjacent position in the point cloud, the codec can directly use the attribute reconstruction value of the adjacent point to predict the attribute prediction value of the point to be predicted. It is precisely because the correlation between the point to be predicted and the adjacent point is stronger, so the prediction of the attribute information of the point to be predicted is realized through the adjacent points, which can effectively improve the accuracy of the prediction, greatly reduce the prediction residual, and thus improve the coding efficiency.
[0290] Based on the above embodiment, another embodiment of the present application proposes an encoder, Fig.18 The structure of the encoder is shown in Figure 2. Figure 1 ,like Fig.18 As shown, the encoder 100 proposed in the embodiment of the present application may include a first determination part 101, a first judgment part 102, and a first prediction part 103.
[0291] The first determining part 101 is configured to determine the current Morton code of the point to be predicted in the point cloud to be encoded; and based on the current Morton code, determine the target Morton code corresponding to the point to be predicted according to a preset adjacent information table; wherein the preset adjacent information table is used to determine the coordinate difference between the adjacent position of the point to be predicted and a preset reference point;
[0292] The first judging part 102 is configured to judge whether there are adjacent points of the point to be predicted in the point cloud to be encoded according to the target Morton code;
[0293] The first prediction part 103 is configured to predict the attribute prediction value of the point to be predicted according to the attribute reconstruction information of the neighboring point if the neighboring point exists in the point cloud to be encoded.
[0294] Fig.19 The structure of the encoder is shown in Figure 2. Figure 2 ,like Fig.19 As shown, the encoder 100 proposed in the embodiment of the present application may also include a first processor 104, a first memory 105 storing executable instructions of the first processor 104, a first communication interface 106, and a first bus 107 for connecting the first processor 104, the first memory 105 and the first communication interface 106.
[0295] Further, in an embodiment of the present application, the first processor 104 is used to determine a current Morton code of a point to be predicted in a point cloud to be encoded; based on the current Morton code, a target Morton code corresponding to the point to be predicted is determined according to a preset adjacent information table; wherein the preset adjacent information table is used to determine a coordinate difference between an adjacent position of the point to be predicted and a preset reference point;
[0296] It is determined whether there are adjacent points of the point to be predicted in the point cloud to be encoded according to the target Morton code; if the adjacent points exist in the point cloud to be encoded, the attribute prediction value of the point to be predicted is predicted according to the attribute reconstruction information of the adjacent points.
[0297] In addition, each functional module in this embodiment can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. The above integrated unit can be implemented in the form of hardware or software functional modules.
[0298] If the integrated unit is implemented in the form of a software function module and is not sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this embodiment is essentially or the part that contributes to the prior art or the whole or part of the technical solution can be embodied in the form of a software product. The computer software product is stored in a storage medium, including several instructions for a computer device (which can be a personal computer, server, or network device, etc.) or a processor to perform all or part of the steps of the method of this embodiment. The aforementioned storage medium includes: U disk, mobile hard disk, read-only memory (ROM), random access memory (RAM), disk or optical disk, etc., various media that can store program codes.
[0299] The embodiment of the present application provides an encoder, which determines the current Morton code of the point to be predicted in the point cloud to be encoded; based on the current Morton code, determines the target Morton code corresponding to the point to be predicted according to the preset adjacent information table; wherein the preset adjacent information table is used to determine the coordinate difference between the adjacent position of the point to be predicted and the preset reference point; determines whether there are adjacent points of the point to be predicted in the point cloud to be encoded according to the target Morton code; if there are adjacent points in the point cloud to be encoded, predicts the attribute prediction value of the point to be predicted according to the attribute reconstruction information of the adjacent points. It can be seen that in the embodiment of the present application, when the codec predicts the attribute information of the point to be predicted, based on the preset adjacent information table, the current Morton code of the point to be predicted can be used to determine the target Morton code corresponding to the adjacent position around the point to be predicted. If there is an adjacent point of the point to be predicted at the adjacent position in the point cloud, the codec can directly use the attribute reconstruction value of the adjacent point to predict the attribute prediction value of the point to be predicted. It is precisely because the correlation between the point to be predicted and the adjacent point is stronger, so the prediction of the attribute information of the point to be predicted is realized through the adjacent points, which can effectively improve the accuracy of the prediction, greatly reduce the prediction residual, and thus improve the coding efficiency.
[0300] Based on the above embodiment, in another embodiment of the present application, Fig. 20 The structure of the decoder is shown in Figure 2. Figure 1 ,like Fig. 20 As shown, the decoder 200 proposed in the embodiment of the present application may include a second determination part 201, a second judgment part 202 and a second prediction part 203.
[0301] The second determining part 201 is configured to determine the current Morton code of the point to be predicted in the point cloud to be decoded; and based on the current Morton code, determine the target Morton code corresponding to the point to be predicted according to a preset adjacent information table; wherein the preset adjacent information table is used to determine the coordinate difference between the adjacent position of the point to be predicted and a preset reference point;
[0302] The second judging part 202 is configured to judge whether there are adjacent points of the point to be predicted in the point cloud to be decoded according to the target Morton code;
[0303] The second prediction part 203 is configured to predict the attribute prediction value of the point to be predicted according to the attribute reconstruction information of the neighboring point if the neighboring point exists in the point cloud to be decoded.
[0304] Fig.21 The structure of the decoder is shown in Figure 2. Figure 2 ,like Fig.21 As shown, the decoder 200 proposed in the embodiment of the present application may also include a second processor 204, a second memory 205 storing executable instructions of the second processor 204, a second communication interface 206, and a second bus 207 for connecting the second processor 204, the second memory 205 and the second communication interface 206.
[0305] Further, in an embodiment of the present application, the above-mentioned second processor 204 is used to determine the current Morton code of the point to be predicted in the point cloud to be decoded; based on the current Morton code, determine the target Morton code corresponding to the point to be predicted according to a preset adjacent information table; wherein the preset adjacent information table is used to determine the coordinate difference between the adjacent position of the point to be predicted and a preset reference point; determine whether there are adjacent points of the point to be predicted in the point cloud to be decoded according to the target Morton code; if the adjacent points exist in the point cloud to be decoded, predict the attribute prediction value of the point to be predicted according to the attribute reconstruction information of the adjacent points.
[0306] In addition, each functional module in this embodiment can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. The above integrated unit can be implemented in the form of hardware or software functional modules.
[0307] If the integrated unit is implemented in the form of a software function module and is not sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this embodiment is essentially or the part that contributes to the prior art or the whole or part of the technical solution can be embodied in the form of a software product. The computer software product is stored in a storage medium and includes several instructions for a computer device (which can be a personal computer, server, or network device, etc.) or a processor to perform all or part of the steps of the method of this embodiment. The aforementioned storage medium includes: U disk, mobile hard disk, ROM, RAM, disk or optical disk and other media that can store program codes.
[0308] The embodiment of the present application provides a decoder, which determines the current Morton code of the point to be predicted in the point cloud to be decoded; based on the current Morton code, determines the target Morton code corresponding to the point to be predicted according to the preset adjacent information table; wherein the preset adjacent information table is used to determine the coordinate difference between the adjacent position of the point to be predicted and the preset reference point; determines whether there are adjacent points of the point to be predicted in the point cloud to be decoded according to the target Morton code; if there are adjacent points in the point cloud to be decoded, predicts the attribute prediction value of the point to be predicted according to the attribute reconstruction information of the adjacent points. It can be seen that in the embodiment of the present application, when the codec predicts the attribute information of the point to be predicted, based on the preset adjacent information table, the current Morton code of the point to be predicted can be used to determine the target Morton code corresponding to the adjacent position around the point to be predicted. If there is an adjacent point of the point to be predicted at the adjacent position in the point cloud, the codec can directly use the attribute reconstruction value of the adjacent point to predict the attribute prediction value of the point to be predicted. It is precisely because the correlation between the point to be predicted and the adjacent point is stronger, so the prediction of the attribute information of the point to be predicted is realized through the adjacent points, which can effectively improve the accuracy of the prediction, greatly reduce the prediction residual, and thus improve the coding efficiency.
[0309] The embodiments of the present application provide a computer-readable storage medium and a computer-readable storage medium, on which a program is stored. When the program is executed by a processor, the method described in the above embodiments is implemented.
[0310] Specifically, the program instructions corresponding to the prediction method of an attribute information in this embodiment can be stored in a storage medium such as a CD, a hard disk, a USB flash drive, etc. When the program instructions corresponding to the prediction method of an attribute information in the storage medium are read or executed by an electronic device, the following steps are included:
[0311] Determine the current Morton code of the point to be predicted in the point cloud to be encoded;
[0312] Based on the current Morton code, determine the target Morton code corresponding to the point to be predicted according to a preset adjacent information table; wherein the preset adjacent information table is used to determine the coordinate difference between the adjacent position of the point to be predicted and a preset reference point;
[0313] Determine whether there are adjacent points of the point to be predicted in the point cloud to be encoded according to the target Morton code;
[0314] If the adjacent point exists in the point cloud to be encoded, the attribute prediction value of the point to be predicted is predicted according to the attribute reconstruction information of the adjacent point.
[0315] When a program instruction corresponding to a prediction method of attribute information in a storage medium is read or executed by an electronic device, the method further includes the following steps:
[0316] Determine the current Morton code of the point to be predicted in the point cloud to be decoded;
[0317] Based on the current Morton code, determine the target Morton code corresponding to the point to be predicted according to a preset adjacent information table; wherein the preset adjacent information table is used to determine the coordinate difference between the adjacent position of the point to be predicted and a preset reference point;
[0318] Determine whether there are adjacent points of the point to be predicted in the point cloud to be decoded according to the target Morton code;
[0319] If the adjacent point exists in the point cloud to be decoded, the attribute prediction value of the point to be predicted is predicted according to the attribute reconstruction information of the adjacent point.
[0320] Those skilled in the art will appreciate that the embodiments of the present application may be provided as methods, systems, or computer program products. Therefore, the present application may adopt the form of hardware embodiments, software embodiments, or embodiments in combination with software and hardware. Moreover, the present application may adopt the form of a computer program product implemented on one or more computer-usable storage media (including but not limited to disk storage and optical storage, etc.) that contain computer-usable program code.
[0321] The present application is described with reference to implementation flowcharts and / or block diagrams of the methods, devices (systems), and computer program products according to the embodiments of the present application. It should be understood that each process and / or box in the flowchart and / or block diagram, as well as the combination of processes and / or boxes in the flowchart and / or block diagram, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, an embedded processor, or other programmable data processing device to generate a machine, so that the instructions executed by the processor of the computer or other programmable data processing device generate instructions for implementing the process in the flowchart. Figure 1A process or multiple processes and / or boxes Figure 1 A device that provides the functions specified in a block or multiple blocks.
[0322] These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable data processing device to operate in a specific manner, so that the instructions stored in the computer-readable memory produce a manufactured product including an instruction device, which is implemented in the implementation flow diagram. Figure 1 A process or multiple processes and / or boxes Figure 1 A function specified in one or more boxes.
[0323] These computer program instructions can also be loaded onto a computer or other programmable data processing device so that a series of operation steps are executed on the computer or other programmable device to produce a computer-implemented process, so that the instructions executed on the computer or other programmable device provide for implementing the process described in the flowchart. Figure 1 A process or multiple processes and / or boxes Figure 1 The steps for the functions specified in one or more boxes.
[0324] The above description is only a preferred embodiment of the present application and is not intended to limit the protection scope of the present application.
[0325] The embodiment of the present application provides a prediction method, encoder, decoder and storage medium for attribute information, wherein the encoder determines the current Morton code of the point to be predicted in the point cloud to be encoded; based on the current Morton code, the target Morton code corresponding to the point to be predicted is determined according to a preset adjacent information table; wherein the preset adjacent information table is used to determine the coordinate difference between the adjacent position of the point to be predicted and the preset reference point; according to the target Morton code, it is determined whether there are adjacent points of the point to be predicted in the point cloud to be encoded; if there are adjacent points in the point cloud to be encoded, the attribute prediction value of the point to be predicted is predicted according to the attribute reconstruction information of the adjacent points. The decoder determines the current Morton code of the point to be predicted in the point cloud to be decoded; based on the current Morton code, the target Morton code corresponding to the point to be predicted is determined according to the preset adjacent information table; according to the target Morton code, it is determined whether there are adjacent points of the point to be predicted in the point cloud to be decoded; if there are adjacent points in the point cloud to be decoded, the attribute prediction value of the point to be predicted is predicted according to the attribute reconstruction information of the adjacent points. It can be seen that in the embodiments of the present application, when the codec predicts the attribute information of the point to be predicted, based on the preset adjacent information table, it can use the current Morton code of the point to be predicted to determine the target Morton code corresponding to the adjacent position around the point to be predicted. If there is a neighboring point of the point to be predicted at the adjacent position in the point cloud, the codec can directly use the attribute reconstruction value of the adjacent point to predict the attribute prediction value of the point to be predicted. It is precisely because the correlation between the point to be predicted and the adjacent points is stronger, so the prediction of the attribute information of the point to be predicted through the adjacent points can effectively improve the accuracy of the prediction, greatly reduce the prediction residual, and thus improve the coding efficiency.
Claims
1. A method for predicting attribute information, applied to an encoder, the method comprising: Determine the current position information of the point to be predicted in the point cloud to be encoded; Based on the current position information, determine the target position information corresponding to the point to be predicted according to a preset adjacent information table; wherein the preset adjacent information table is used to determine the coordinate difference between the adjacent position of the point to be predicted and a preset reference point; Determine whether there are adjacent points of the point to be predicted in the point cloud to be encoded according to the target position information; If the adjacent point exists in the point cloud to be encoded, the attribute prediction value of the point to be predicted is predicted according to the attribute reconstruction information of the adjacent point. Before determining the target position information corresponding to the point to be predicted based on the current position information according to a preset adjacent information table, the method further includes: Establishing the preset adjacent information table corresponding to the point to be predicted, The adjacent positions include: coplanar adjacent points coplanar with the point to be predicted, and collinear adjacent points collinear with the point to be predicted. The step of establishing the preset adjacent information table corresponding to the point to be predicted includes: Positioning the preset reference point; A first coordinate difference between the preset reference point and the coplanar adjacent point is calculated, and a second coordinate difference between the preset reference point and the colinear adjacent point is calculated.
2. The method according to claim 1, wherein: The step of establishing the preset adjacent information table corresponding to the point to be predicted further includes: Performing position information encoding on the first coordinate difference to obtain coplanar position information corresponding to the coplanar adjacent points, and performing position information encoding on the second coordinate difference to obtain collinear position information corresponding to the collinear adjacent points; Based on the coplanar position information and the colinear position information, the preset adjacent information table corresponding to the point to be predicted is established.
3. The method according to claim 1, wherein: The step of judging whether there are adjacent points of the point to be predicted in the point cloud to be encoded according to the target position information includes: Obtaining a point cloud sequence set of the point cloud to be encoded; Performing query processing on the point cloud sequence set based on the target position information to obtain a query result; If the query result is that the target position information exists in the point cloud sequence set, it is determined that the adjacent point exists.
4. The method according to claim 3, wherein: The query processing is performed in the point cloud sequence set based on the target position information to obtain the query result, including: Based on the target position information, the point cloud sequence set is traversed to obtain the query result.
5. A method for predicting attribute information, applied to a decoder, the method comprising: Determine the current position information of the point to be predicted in the point cloud to be decoded; Based on the current position information, determine the target position information corresponding to the point to be predicted according to a preset adjacent information table; wherein the preset adjacent information table is used to determine the coordinate difference between the adjacent position of the point to be predicted and a preset reference point; Determine whether there are adjacent points of the point to be predicted in the point cloud to be decoded according to the target position information; If the adjacent point exists in the point cloud to be decoded, the attribute prediction value of the point to be predicted is predicted according to the attribute reconstruction information of the adjacent point. Wherein, before determining the target position information corresponding to the to-be-predicted point based on the current position information and according to a preset adjacent information table, the method further includes: Establishing the preset adjacent information table corresponding to the point to be predicted, Wherein, the adjacent positions include: coplanar adjacent points coplanar with the point to be predicted, and collinear adjacent points collinear with the point to be predicted, and the step of establishing the preset adjacent information table corresponding to the point to be predicted includes: Positioning the preset reference point; A first coordinate difference between the preset reference point and the coplanar adjacent point is calculated, and a second coordinate difference between the preset reference point and the colinear adjacent point is calculated.
6. The method according to claim 5, wherein: The step of establishing the preset adjacent information table corresponding to the point to be predicted further includes: Performing position information encoding on the first coordinate difference to obtain coplanar position information corresponding to the coplanar adjacent points, and performing position information encoding on the second coordinate difference to obtain collinear position information corresponding to the collinear adjacent points; Based on the coplanar position information and the colinear position information, the preset adjacent information table corresponding to the point to be predicted is established.
7. The method according to claim 5, wherein: The step of judging whether there are adjacent points of the point to be predicted in the point cloud to be decoded according to the target position information includes: Obtaining a point cloud sequence set of the point cloud to be decoded; Performing query processing on the point cloud sequence set based on the target position information to obtain a query result; If the query result is that the target position information exists in the point cloud sequence set, it is determined that the adjacent point exists.
8. The method according to claim 7, wherein: The query processing is performed in the point cloud sequence set based on the target position information to obtain the query result, including: Based on the target position information, the point cloud sequence set is traversed to obtain the query result.
9. An encoder, comprising: The first determination part, the first judgment part, the first prediction part, The first determining part is configured to determine the current position information of the point to be predicted in the point cloud to be encoded; and based on the current position information, determining the target position information corresponding to the point to be predicted according to a preset adjacent information table; wherein the preset adjacent information table is used to determine the coordinate difference between the adjacent position of the point to be predicted and a preset reference point; The first judgment part is configured to judge whether there are adjacent points of the point to be predicted in the point cloud to be encoded according to the target position information; The first prediction part is configured to predict the attribute prediction value of the point to be predicted based on the attribute reconstruction information of the adjacent point if the adjacent point exists in the point cloud to be encoded, Wherein, before determining the target position information corresponding to the to-be-predicted point based on the current position information and according to a preset adjacent information table, the first determining part is further configured as follows: Establishing the preset adjacent information table corresponding to the point to be predicted, The adjacent positions include: coplanar adjacent points coplanar with the point to be predicted, and collinear adjacent points collinear with the point to be predicted. The step of establishing the preset adjacent information table corresponding to the point to be predicted includes: Positioning the preset reference point; A first coordinate difference between the preset reference point and the coplanar adjacent point is calculated, and a second coordinate difference between the preset reference point and the colinear adjacent point is calculated.
10. A decoder, comprising: The second determination part, the second judgment part, the second prediction part, The second determining part is configured to determine the current position information of the point to be predicted in the point cloud to be decoded; and based on the current position information, determining the target position information corresponding to the point to be predicted according to a preset adjacent information table; wherein the preset adjacent information table is used to determine the coordinate difference between the adjacent position of the point to be predicted and a preset reference point; The second judgment part is configured to judge whether there are adjacent points of the point to be predicted in the point cloud to be decoded according to the target position information; The second prediction part is configured to predict the attribute prediction value of the point to be predicted according to the attribute reconstruction information of the adjacent point if the adjacent point exists in the point cloud to be decoded, Wherein, before determining the target position information corresponding to the to-be-predicted point based on the current position information and according to a preset adjacent information table, the second determining part is further configured as follows: Establishing the preset adjacent information table corresponding to the point to be predicted, Wherein, the adjacent positions include: coplanar adjacent points coplanar with the point to be predicted, and collinear adjacent points collinear with the point to be predicted, and the step of establishing the preset adjacent information table corresponding to the point to be predicted includes: Positioning the preset reference point; A first coordinate difference between the preset reference point and the coplanar adjacent point is calculated, and a second coordinate difference between the preset reference point and the colinear adjacent point is calculated.
11. An encoder, comprising a first processor and a first memory storing instructions executable by the first processor, wherein when the instructions are executed by the first processor, the method according to any one of claims 1 to 4 is implemented.
12. A decoder, comprising a second processor and a second memory storing instructions executable by the second processor, wherein when the instructions are executed by the second processor, the method according to any one of claims 5 to 8 is implemented.
13. A computer-readable storage medium having a program stored thereon, applied to an encoder, wherein when the program is executed by a processor, the method according to any one of claims 1 to 8 is implemented.
Citation Information
Patent Citations
Point Cloud Compression
US20190080483A1