The present disclosure belongs to the field of point cloud coding, and particularly relates to a point cloud attribute decoding method and device based on a new processing order.
Supporting the application of virtual reality (VR) AR, Augmented Reality (AR) is the next important challenge of media technology in the 21st century. These applications, together with 3D data acquisition, 3D rendering and computer vision, make it possible to realize the emerging immersive media experience in the near future. Point cloud is an ideal representation of three-dimensional scenes and objects. It consists of a group of points that are irregularly distributed and unconnected in three-dimensional space. Each point that constitutes a point cloud has geometric information and optional attribute information. Among them, geometric information is used to express the structure of three-dimensional objects, which is composed of three-dimensional position coordinates X, Y, and Z; Attribute information is used to express the surface attributes of three-dimensional scenes or objects. Common attribute information includes color, reflectivity, normal, and transparency. The data scale of point cloud is extremely huge. For example, a point cloud with high quality to express three-dimensional objects has hundreds of thousands to millions of points. In order to facilitate the storage and transmission of point cloud data, it is necessary to compress point cloud data.
Most point cloud compression algorithms are based on voxelized point cloud, which has the advantages of convenient processing and controllable accuracy. A voxelized point cloud is a point cloud whose pointing position coordinates are quantized into a cube grid, and the coordinates of the midpoint of each cube grid represent the coordinates of the midpoint of the cube grid, so only the index of the cube grid is needed to encode the position information of the point cloud, and the position accuracy can be controlled by the size of the cube grid.
At present, most point cloud attribute coding is based on Morton order to find several nearest neighbors, and then the attributes of these nearest neighbors are weighted to predict the attribute value of the current point. Among them, Morton order is the point order obtained by sorting the points in the point cloud according to their Morton codes, and the Morton codes of each point can be obtained from the position coordinates of the points. Specifically, it is obtained by alternately placing the coordinates of each dimension of the points according to each bit of the binary bit. In [1], the nearest neighbor points are to be found based on Morton order. If the number of LOD (level of detail) is 1, three points closest to the current point will be found from several coded points before the current point under Morton order, and then the weighted average of the attribute values of these points will be used to predict the attribute values of the current point. If the number of LOD (level of detail) is greater than 1, Then the first point whose Morton code is greater than the Morton code of the current point will be found from the points in the coded level of detail arranged in Morton order, and then three points closest to the current point will be found around this found point, and the weighted average of the attribute values of these points will be used to predict the attribute values of the current point. In [2], attribute prediction is also based on Morton code. For sparse point clouds, the weighted average of the attribute values of the first three points of the current point in Morton order is directly used to predict the attribute values of the current point. For dense point clouds, the points that are coplanar and collinear with the current point are first found from the first several points of the current point in Morton order. If they are found, the weighted average of the attribute values of these coplanar and collinear points is used to predict the attribute values of the current point, otherwise, the previous points of the current point in Morton order are directly used.
Theoretically, the closer the three-dimensional distance between the predicted point and the current point is, the stronger the correlation between the predicted point's attributes and the current point's attributes is, the more accurate the attribute prediction is, and the lower the required code rate under the condition of constant distortion is. Since the three-dimensional spatial distance between adjacent or similar points under the Morton order will periodically jump with different amplitudes, the three-dimensional spatial distance between adjacent points under the Morton order will periodically change from near to far. Therefore, the Morton code has poor spatial neighbor characteristics, so the nearest point found by the nearest neighbor search with the Morton order will not be ideal.
Hilbert curve is a continuous fractal space filling curve, also known as Hilbert space filling curve. It was first discovered by German mathematician David Hilbert in 1891, and it can map high-dimensional space to one dimension. Hilbert curve has good spatial neighborhood characteristics. Hilbert's spatial neighborhood characteristics mean that data points that are similar in one-dimensional space are also similar in high-dimensional space. Because of its spatial neighborhood, Hilbert curve and its discrete approximation are widely used. For example, it is widely used in database indexing, memory management, image processing, and dynamic load balancing. This disclosure uses the discrete approximation of Hilbert curve in three-dimensional space.
For the shortcoming that the three-dimensional space distance before adjacent points in Morton order will periodically jump, the present disclosure proposes a point cloud attribute decoding method and device based on a new processing order to further improve the coding efficiency of point cloud attributes. Hilbert order is used as the coding order of point cloud attribute. The nearest neighbors in the three-dimensional space of the current point are found from several points in the preceding of the current point in Hilbert order, and these nearest neighbors are used as the prediction points of the current point. Because the similar points in Hilbert order are also similar in three-dimensional space, in particular, in the worst case, the distance between two points in three-dimensional space with distance n on Hilbert order is less than or equal to and the distance between two points on Morton order with distance n in three-dimensional space may be greater than the maximum value of point cloud dimension, and when k is small, the average distance between the current point and the current point in Hilbert order is smaller than that of the current point in Morton order. Therefore, Hilbert order can be used to find the neighbor points that are more similar to the current point in three-dimensional space, so that the attribute values of the predicted points are more relevant to the attribute values of the current point, and then the coding efficiency of point cloud attributes can be improved.
The first purpose of the disclosure is to provide a point cloud attribute decoding method based on a new processing order, which includes the following contents:
Preferably, the point cloud attribute decoding method based on the new processing order is characterized in that the weighted average of the reconstructed attribute values of the preceding decoding points under Hilbert order comprises:
Preferably, the point cloud attribute decoding method based on the new processing order is characterized in the weighted average of the reconstructed attribute values of the preceding decoding points under Hilbert order comprises:
Preferably, the point cloud attribute decoding method based on the new processing order is characterized in that the weighted average of the reconstructed attribute values of the preceding decoding points under Hilbert order comprises:
Preferably, the point cloud attribute decoding method based on the new processing order can also have another implementation form, which is characterized by comprising:
The expression method in the present disclosure is agreed as follows:
X
1=(x11x12 . . . x1n . . . x1N−1x1N),X2=(x21x22 . . . x2n . . . x2N−1x2N),X3=
(x31x32 . . . x3n . . . x3N−1x3N)
The left side of binary expansion represents high-bit and the right side represents low-bit, where N is an integer greater than 0, indicating the coordinate bit width.
Preferably, the point cloud attribute decoding method based on the new processing order includes the following steps:
The three-dimensional geometric coordinates of reconstructed points in the point cloud are processed sequentially from high-bit to low-bit. (X1, X2, X3)N The binary bits of, where the firstiSecondary processing: according to the three-dimensional geometric coordinates of the reconstructed point (3*mi) Binary bits, generate the corresponding Hilbert code subcode Ci,m
Process sequentially binary bits of the three-dimensional geometric coordinates (X1, X2, X3)N of reconstructed points in the point cloud from high-bit to low-bit, where the ith time processing: generate the corresponding subcode Ci,m
C
i,m
=ConvertCodem
x
2
m
+m
. . . +m
+1
x
2
m
+m
. . . +m
+2
. . . x
2
m
+m
. . . +m
,
x
3
m
+m
. . . +m
+1
x
3
m
+m
. . . +m
+2
. . . x
3
m
+m
. . . +m
,statei),
statei+1=ConvertStatem
x
2
m
+m
. . . +m
+1
x
2
m
+m
. . . +m
+2
. . . x
2
m
+m
. . . +m
,
x
3
m
+m
. . . +m
+1
x
3
m
+m
. . . +m
+2
. . . x
3
m
+m
. . . +m
,statei),
Among them, ConvertCodem
Σi=1pmi=N;
According to the Hilbert order from small to large or from large to small, the reconstruction attribute information of point cloud is decoded from the bitstream in order.
A second object of the present disclosure is to provide a point cloud attribute decoding device based on a new processing order, which includes:
Preferably, the point cloud attribute decoding device based on the new processing order is characterized in that the weighted average of the reconstructed attribute values of the preceding decoding points under Hilbert order comprises:
Preferably, the point cloud attribute decoding device based on the new processing order is characterized in the weighted average of the reconstructed attribute values of the preceding decoding points under Hilbert order comprises:
Preferably, the point cloud attribute decoding device based on the new processing order is characterized in that the weighted average of the reconstructed attribute values of the preceding decoding points in the Hilbert order comprises:
Preferably, the device of decoding point cloud attribute based on the new processing order can also have another implementation form, whose characteristics include:
A module of calculating attribute prediction value: the input of this module is the attribute prediction point, and the output is the attribute prediction value of the current point, and the module uses the weighted average of the reconstructed attribute values of these n attribute prediction points as the attribute prediction value of the current point;
A module of decoding attribute residual: the input of this module is the bitstream and the output is the attribute residual, and this module decodes the attribute residual value of the current point from the bitstream;
A module of acquiring reconstructed attribute value: the input of this module is the attribute residual and the attribute prediction value, and the output is the reconstructed attribute value of the current point, and the module obtains the reconstructed attribute value of the current point according to the attribute prediction value of the current point and the decoded attribute residual value.
Preferably, the method of decoding point cloud attribute based on the new processing order includes the following steps:
A module of generating Hilbert code: the input of this module is the reconstructed geometric coordinates of the point cloud, and the output is the Hilbert code corresponding to the geometric coordinates of the point cloud. This module sequentially processes binary bits of the three-dimensional geometric coordinates (X1, X2, X3)N of reconstructed points in the point cloud from high-bit to low-bit, where the ith time processing: generate the corresponding subcode Ci,m
C
i,m
=ConvertCodem
x
2
m
+m
. . . +m
+1
x
2
m
+m
. . . +m
+2
. . . x
2
m
+m
. . . +m
,
x
3
m
+m
. . . +m
+1
x
3
m
+m
. . . +m
+2
. . . x
3
m
+m
. . . +m
,statei),
statei+1=ConvertStatem
x
2
m
+m
. . . +m
+1
x
2
m
+m
. . . +m
+2
. . . x
2
m
+m
. . . +m
,
x
3
m
+m
. . . +m
+1
x
3
m
+m
. . . +m
+2
. . . x
3
m
+m
. . . +m
,statei),
ConvertCodem
Σi=1pmi=N;
A module of decoding attribute: the input is the attribute bitstream, and the output is the reconstructed point cloud attribute in this module. The module sequentially decodes the bitstream to get the reconstructed point cloud attribute information according to the order of Hilbert from small to large or from large to small.
Because the used Hilbert order has the best spatial neighbor characteristics, neighbor points closer to the current point in three dimensions can be found with greater probability as the prediction points. Thus the attribute values of the prediction points are more relevant to the attribute values of the current point. Then we achieve the goal to improve the compression efficiency of point cloud attributes on the premise of maintaining the complexity.
In order to explain the technical scheme in the embodiment of the application or the prior art more clearly, the following will briefly introduce the drawings needed in the description of the embodiment or the prior art Obviously, the drawings in the following description form a part of this application, and the illustrative embodiments of the disclosure and their descriptions are used to explain the disclosure, and do not constitute an improper limitation of the disclosure.
For ordinary technicians in this field, other drawings can be obtained according to these drawings without creative work.
In order to further understand the present disclosure, the preferred embodiments of the present disclosure are described below with reference to examples, but it should be understood that these descriptions are only for further explaining the features and advantages of the present disclosure, and are not a limitation of the claims of the present disclosure.
For the convenience of expression, the following definitions are made:
For n binary numbers X1, X2, . . . , Xn, X1X2 . . . Xn means to put this n binary numbers are bitwise spliced together, and the number on the left is high and the number on the right is low.
If each dimension of a D-dimensional hypercube is divided equally by 2n, then the hypercube is called a D-dimensional n-order hypercube, expressed by HCnD, let (X1, X2 . . . Xd . . . XD) denote the coordinates of the smallest sub-cube in D-dimensional n-order hyper-cube, where, 0≤Xd<2n, 1≤d≤D. A curve passing through the smallest sub-cube in HCnD is called a D-dimensional n-order Hilbert curve denoted by HnD. The scan order index of each minimal sub-cube over HnD in a D-dimensional n-order hypercube HCnD is called the Hilbert code of the minimal sub-cube, which is represented by HCodenD, where HCodenD starts from 0.
The order of scanning the smallest cube of the D-dimensional 1-order Hilbert curve in the D-dimensional 1-order hyper-cube H1D is the order of gray codes. For example, for three-dimensional, the gray codes of the sub-cubes with the scanning order of 0,1, 2, 3, 4, 5, 6 and 7 are 000, 001, 011, 010, 110, 111, 101 and 100, which are exactly the coordinates of the sub-cubes. Therefore, the Hilbert code of the D-dimensional 1-order curve can be generated according to the gray code.
Symbols (x1x2 . . . xK)b are used to express K bits binary number, where 0≤xk<b, 1≤k≤K.
Gray code coding function is
G((x1x2 . . . xK)2)=(g1g2 . . . gK)2,
(g1g2 . . . gK)2 is the Gray code of (x1x2 . . . xK)2, the calculation formula is as follows:
(g1g2 . . . gK)2=(x1x2 . . . xK)2∧((x1x2 . . . xK)2>>1)
Where ∧ denotes exclusive or operators, >> denotes the right shift operator.
The decoding function of Gray code is
DG((g1g2 . . . gK)2)=(x1x2 . . . xK)2
Where xk=DGk((g1g2 . . . gK)2)
The calculation formula is as follows
Hilbert curve is self-similar, and the generation of the curve is a recursive process. The Hilbert curve of order n+1 needs the Hilbert curve of order N, specifically, the position corresponding to the 2D sub-cubes of the D-dimensional 1-order hyper-cube is regarded as the 2D quadrant of the D-dimensional space, then for the n+1-order Hilbert curve, it is necessary to copy the n-order Hilbert curve directly or put it in a quadrant of the n+1-order Hilbert curve after mirror flipping, and then connect the starting point and end point of the n-order Hilbert curve of the adjacent quadrant or the n-order Hilbert curve after mirror flipping, so as to form the n+1-order curve. There are two main flips used: mirror flip 1 and mirror flip 2. Both flips are mirror flips along a hyperplane, where
Mirror flip 1 is along the hyperplane Xi−Xj=0 to flip. Exchange the coordinates between Xi and Xj needed. Xi↔Xj represents the exchange of coordinates.
Mirror flip 2 is along the hyperplane
to flip, the coordinate Xi needs to be exchanged to be 2n−1−Xi.
These two flips are order-preserving, that is, the relative position of each point on the curve remains unchanged before and after flipping.
Hilbert sub-curve is directional, and the direction can be uniquely determined by the coordinates of the starting point and the ending point. There is only one different bit between the coordinates of the starting point and the ending point. For example, the starting point coordinate of the three-dimensional first-order Hilbert curve is DG (0)=000, and the ending point coordinate is DG (7)=100. Bq and Eq are used to represent respectively the starting coordinates and ending coordinates of the sub-curves of the D-dimensional 1-order in the quadrant q (as mentioned above, the coordinates of the quadrant q can be obtained by the gray code G(q)). Then for three dimensions, there are B0=000, E0=010, B1=000, E1=100, B2=000, E2=100, B3=110, E3=111, B4=110, E4=111, B5=101, E5=001, B6=101, E6=001, B7=001, E7=011.
It can be determined by the coordinates of the starting point and the ending point to turn each sub-curve into a line mirror image flip similar to the one-order curve.
It is three-dimensional space that counts in the following. That is: D=3, giving the three-dimensional coordinates (X1, X2, X3) of a point, which is expanded in binary to
X
1=(x11x12 . . . x1n . . . x1N−1x1N),X2=(x21x22 . . . x2n . . . x2N−1x2N),X3=
(x31x32 . . . x3n . . . x3N−1x3N)
The mirror flip 1 of quadrant q
T
1
q=(DG(0)∧DG(7))∧(Bq∧Eq),0≤q≤7
The obtained 3 digits T1q above represents the flip rule of mirror flip 1. The specific flip rule is as follows: there is only one different bit between the coordinates of starting point and the coordinates of ending point, so G(0)∧DG(7) and Bq∧Eq only one digit 1. Therefore, there are only two 1 or all 0s in each binary bit of T1q, if the ith bit and jth bit of T1q is 1, then exchange coordinates Xi and Xj, 1≤i, j≤3.
The mirror flip 2 of quadrant q
T
2
q
=DG(0)∧Bq,0≤q≤7
The obtained 3 digits T2q represents the flip rule of mirror flip 2. The specific flip rule is as follows: if the ith bit of T2q is 1, setting Xi=2n−1−Xi, where n is the order of the curve to be flipped.
Hilbert coding is the process of calculating the Hilbert code HCodeN=(C1C2 . . . Cn . . . CN−1CN) according to the given coordinates (X1, X2, X3), where Cn is the 3-bit binary subcode of each layer, and n is taken from 1 to N to obtain Cn by the following calculation.
C
n
=DG((x1nx2nx3n)2) 1.
Set X
i=(xin+1 . . . xiN−1xiN),1≤i≤3 2.
Mirror Flip2:if the ith bit of t2C
Mirror Flip1:if the ith bit and jth bit of T1C
A method of decoding point cloud attribute based on a new processing order in this embodiment, as shown in
For the reconstructed point cloud geometry, the associated Hilbert code is generated according to its three-dimensional spatial coordinates. As mentioned above, for a point given three-dimensional coordinate (X1, X2, X3), its coordinates are expanded in terms of binary as follows:
X
1=(x11x12 . . . x1n . . . x1N−1x1N),X2=(x21x22 . . . x2n . . . x2N−1x2N),X3=(x31x32 . . . x3n . . . x3N−1x3N)
The Hilbert code of the point (X1, X2, X3) can be obtained by the following process, HCodeN=(C1C2 . . . Cn . . . CN−1CN), where Cn is a 3-bit binary subcode, Cn is obtained by sequentially taking n from 1 to N through the following calculation
C
n
=DG((x1nx2nx3n)2) 1.
Set X
i=(xin+1 . . . xiN−1xiN),1≤i≤3 2.
Mirror Flip2:if the ith bit of t2C
Mirror Flip1:if the ith bit and jth bit of T1C
The attribute values of points in the point cloud are processed in sequence according to Hilbert order, and the attribute values of the current points are processed by the following steps: Use the weighted average of reconstructed attribute values of preceding decoding points in Hilbert order is as the attribute prediction value of the current point, where Hilbert order is the point order obtained by sorting points in the point cloud from small to large or from large to small according to their corresponding Hilbert code values: use the first point P of the current point in Hilbert order, let its attribute value=Â. That is, Â is the attribute prediction value of the current point;
Obtain the reconstructed attribute value of the current point according to the attribute prediction value of the current point and the decoded attribute residual value, wherein the reconstructed attribute value of the current point is A=Â+R.
A method of decoding point cloud attribute based on a new processing order in this embodiment includes: For the reconstructed point cloud geometry, the associated Hilbert code is generated according to its three-dimensional spatial coordinates. As mentioned above, for a point given three-dimensional coordinate (X1, X2, X3), its coordinates are expanded in terms of binary as follows:
X
1=(x11x12 . . . x1n . . . x1N−1x1N),X2=(x21x22 . . . x2n . . . x2N−1x2N),X3=(x31x32 . . . x3n . . . x3N−1x3N)
The Hilbert code of the point (X1, X2, X3) can be obtained by the following process, HCodeN=(C1C2 . . . Cn . . . CN−1CN), where Cn is a 3-bit binary subcode, Cn is obtained by sequentially taking n from 1 to N through the following calculation.
C
n
=DG((x1nx2nx3n)2) 1.
Set X
i=(xin+1 . . . xiN−1xiN),1≤i≤3 2.
Mirror Flip2:if the ith bit of t2C
Mirror Flip1:if the ith bit and jth bit of T1C
The attribute values of points in the point cloud are processed in sequence according to Hilbert order, and the attribute values of the current points are processed by the following steps:
Where di is the distance of point Pi from current point (X, Y, Z), the distance is at least one of the following distances:
A point cloud attribute decoding method based on a new processing order in this embodiment includes the following contents.
For the reconstructed point cloud geometry, the corresponding Hilbert code is generated according to its three-dimensional spatial coordinates. As mentioned above, for a given three-dimensional coordinate (X1, X2, X3), the coordinates of the point are expanded in binary as follows:
X
1=(x11x12 . . . x1n . . . x1N−1x1N),X2=(x21x22 . . . x2n . . . x2N−1x2N),X3=(x31x32 . . . x3n . . . x3N−1x3N)
Hilbert code HCodeN=(C1C2 . . . Cn . . . CN−1CN) of the point (X1, X2, X3) can be obtained by the following process, in which Cn is a 3-bit binary subcode, Cn is obtained by taking n from 1 to N in order for the following calculation:
C
n
=DG((x1nx2nx3n)2) 1.
Set X
i=(xin+1 . . . xiN−1xiN),1≤i≤3 2.
Mirror Flip2:if the ith bit of t2C
Mirror Flip1:if the ith bit and jth bit of T1C
The attribute values of points in the point cloud are processed in sequence according to Hilbert order, and the attribute values of the current points are processed by the following steps:
A point cloud attribute decoding method based on a new processing order in this embodiment includes the following contents.
For the reconstructed point cloud geometry, the corresponding Hilbert code is generated according to its three-dimensional spatial coordinates. As mentioned above, for a given three-dimensional coordinate (X1, X2, X3), the coordinates of the point are expanded in binary as follows:
X
1=(x11x12 . . . x1n . . . x1N−1x1N),X2=(x21x22 . . . x2n . . . x2N−1x2N),X3=(x31x32 . . . x3n . . . x3N−1x3N)
Hilbert code HCodeN=(C1C2 . . . Cn . . . CN−1CN) of the point (X1, X2, X3) can be obtained by the following process, in which Cn is a 3-bit binary subcode, Cn is obtained by taking n from 1 to N in order for the following calculation:
C
n
=DG((x1nx2nx3n)2) 1.
Set X
i=(xin+1 . . . xiN−1xiN),1≤i≤3 2.
Mirror Flip2:if the ith bit of t2C
Mirror Flip1:if the ith bit and jth bit of T1C
The attribute values of points in the point cloud are processed in sequence according to Hilbert order, and the attribute values of the current points are processed by the following steps:
A point cloud attribute decoding method based on a new processing order in this embodiment includes the following contents.
For the reconstructed point cloud geometry, the corresponding Hilbert code is generated according to its three-dimensional spatial coordinates. As mentioned above, for a given three-dimensional coordinate (X1, X2, X3), the coordinates of the point are expanded in binary as follows:
X
1=(x11x12 . . . x1n . . . x1N−1x1N),X2=(x21x22 . . . x2n . . . x2N−1x2N),X3=(x31x32 . . . x3n . . . x3N−1x3N)
Hilbert code HCodeN=(C1C2 . . . Cn . . . CN−1CN) of the point (X1, X2, X3) can be obtained by the following process, in which Cn is a 3-bit binary subcode, Cn is obtained by taking n from 1 to N in order for the following calculation:
C
n
=DG((x1nx2nx3n)2) 1.
Set X
i=(xin+1 . . . xiN−1xiN),1≤i≤3 2.
Mirror Flip2:if the ith bit of t2C
Mirror Flip1:if the ith bit and jth bit of T1C
Among them, di is the distance between the point Pi and the current point (X, Y, Z), which can be at least one of the following distances:
As shown in
Hilbert code generation module: the input of this module is the reconstructed point cloud geometry, and the output is the point cloud geometry containing Hilbert code. For the reconstructed point cloud geometry, this module generates the corresponding Hilbert code according to its three-dimensional spatial coordinates. As mentioned above, for a given three-dimensional coordinate (X1, X2, X3), the coordinates of the point are expanded in binary as follows:
X
1=(x11x12 . . . x1n . . . x1N−1x1N),X2=(x21x22 . . . x2n . . . x2N−1x2N),X3=(x31x32 . . . x3n . . . x3N−1x3N)
Hilbert code HCodeN=(C1C2 . . . Cn . . . CN−1CN) of the point (X1, X2, X3) can be obtained by the following process, in which Cn is a 3-bit binary subcode, Cn is obtained by taking n from 1 to N in order for the following calculation:
C
n
=DG((x1nx2nx3n)2) 1.
Set X
i=(xin+1 . . . xiN−1xiN),1≤i≤3 2.
Mirror Flip2:if the ith bit of t2C
Mirror Flip1:if the ith bit and jth bit of T1C
Process the attribute values of points in the point cloud in sequence according to Hilbert order, and execute the following modules to process the attribute values of the current points:
A point cloud attribute decoding device based on a new processing order in this embodiment includes the following modules.
Hilbert code generation module: the input of this module is the reconstructed point cloud geometry, and the output is the point cloud geometry containing Hilbert code. For the reconstructed point cloud geometry, this module generates the corresponding Hilbert code according to its three-dimensional spatial coordinates. As mentioned above, for a given three-dimensional coordinate (X1, X2, X3), the coordinates of the point are expanded in binary as follows
X
1=(x11x12 . . . x1n . . . x1N−1x1N),X2=(x21x22 . . . x2n . . . x2N−1x2N),X3=(x31x32 . . . x3n . . . x3N−1x3N)
Hilbert code HCodeN=(C1C2 . . . Cn . . . CN−1CN) of the point (X1, X2, X3) can be obtained by the following process, in which Cn is a 3-bit binary subcode, Cn is obtained by taking n from 1 to N in order for the following calculation:
C
n
=DG((x1nx2nx3n)2) 1.
Set X
i=(xin+1 . . . xiN−1xiN),1≤i≤3 2.
Mirror Flip2:if the ith bit of t2C
Mirror Flip1:if the ith bit and jth bit of T1C
Process the attribute values of points in the point cloud in sequence according to Hilbert order, and execute the following modules to process the attribute values of the current points:
Among them, di is the distance between the point Pi and the current point (X, Y, Z), which can be at least one of the following distances:
A point cloud attribute decoding device based on a new processing order in this embodiment includes the following modules.
Hilbert code generation module: the input of this module is the reconstructed point cloud geometry, and the output is the point cloud geometry containing Hilbert code. For the reconstructed point cloud geometry, this module generates the corresponding Hilbert code according to its three-dimensional spatial coordinates. As mentioned above, for a given three-dimensional coordinate (X1, X2, X3), the coordinates of the point are expanded in binary as follows:
X
1=(x11x12 . . . x1n . . . x1N−1x1N),X2=(x21x22 . . . x2n . . . x2N−1x2N),X3=(x31x32 . . . x3n . . . x3N−1x3N)
Hilbert code HCodeN=(C1C2 . . . Cn . . . CN−1CN) of the point (X1, X2, X3) can be obtained by the following process, in which Cn is a 3-bit binary subcode, Cn is obtained by taking n from
C
n
=DG((x1nx2nx3n)2) 1.
Set X
i=(xin+1 . . . xiN−1xiN),1≤i≤3 2.
Mirror Flip2:if the ith bit of t2C
Mirror Flip1:if the ith bit and jth bit of T1C
Among them, di is the distance between the point Pi and the current point (X, Y, Z), which can be at least one of the following distances:
A point cloud attribute decoding device based on a new processing order in this embodiment includes the following modules.
Hilbert code generation module: the input of this module is the reconstructed point cloud geometry, and the output is the point cloud geometry containing Hilbert code. For the reconstructed point cloud geometry, this module generates the corresponding Hilbert code according to its three-dimensional spatial coordinates. As mentioned above, for a given three-dimensional coordinate (X1, X2, X3), the coordinates of the point are expanded in binary as follows
X
1=(x11x12 . . . x1n . . . x1N−1x1N),X2=(x21x22 . . . x2n . . . x2N−1x2N),X3=(x31x32 . . . x3n . . . x3N−1x3N)
Hilbert code HCodeN=(C1C2 . . . Cn . . . CN−1CN) of the point (X1, X2, X3) can be obtained by the following process, in which Cn is a 3-bit binary subcode, Cn is obtained by taking n from 1 to N in order for the following calculation:
C
n
=DG((x1nx2nx3n)2) 1.
Set X
i=(xin+1 . . . xiN−1xiN),1≤i≤3 2.
Mirror Flip2:if the ith bit of t2C
Mirror Flip1:if the ith bit and jth bit of T1C
A point cloud attribute decoding device based on a new processing order in this embodiment includes the following modules.
Hilbert code generation module: the input of this module is the reconstructed point cloud geometry, and the output is the point cloud geometry containing Hilbert code. For the reconstructed point cloud geometry, this module generates the corresponding Hilbert code according to its three-dimensional spatial coordinates. As mentioned above, for a given three-dimensional coordinate (X1, X2, X3), the coordinates of the point are expanded in binary as follows:
X
1=(x11x12 . . . x1n . . . x1N−1x1N),X2=(x21x22 . . . x2n . . . x2N−1x2N),X3=(x31x32 . . . x3n . . . x3N−1x3N)
Hilbert code HCodeN=(C1C2 . . . Cn . . . CN−1CN) of the point (X1, X2, X3) can be obtained by the following process, in which Cn is a 3-bit binary subcode, Cn is obtained by taking n from 1 to N in order for the following calculation:
C
n
=DG((x1nx2nx3n)2) 1.
Set X
i=(xin+1 . . . xiN−1xiN),1≤i≤3 2.
Mirror Flip2:if the ith bit of t2C
Mirror Flip1:if the ith bit and jth bit of T1C
Among them, di is the distance between the point Pi and the current point (X, Y, Z), which can be at least one of the following distances:
A point cloud attribute decoding method based on a new processing order in this embodiment, as shown in
When the decoded geometric points are in Hilbert order, the point cloud attributes are directly processed according to the decoding order, and the attribute values of the current points are processed by the following steps:
A point cloud attribute decoding method based on a new processing order in this embodiment includes the following contents.
When the decoded geometric points are in Hilbert order, the point cloud attributes are directly processed according to the decoding order, and the attribute values of the current points are processed by the following steps:
Among them, di is the distance between the point Pi and the current point (X, Y, Z), which can be at least one of the following distances:
A point cloud attribute decoding method based on a new processing order in this embodiment includes the following contents.
When the decoded geometric points are in Hilbert order, the point cloud attributes are directly processed according to the decoding order, and the attribute values of the current points are processed by the following steps:
Among them, di is the distance between the point Pi and the current point (X, Y, Z), which can be at least one of the following distances:
A point cloud attribute decoding method based on a new processing order in this embodiment includes the following contents.
When the decoded geometric points are in Hilbert order, the point cloud attributes are directly processed according to the decoding order, and the attribute values of the current points are processed by the following steps:
As shown in
When the decoded geometric points are in Hilbert order, the point cloud attributes are directly processed according to the decoding order, and the following modules are executed for processing the attribute values of the current points:
A point cloud attribute decoding device based on a new processing order in this embodiment includes the following modules.
When the decoded geometric points are in Hilbert order, the point cloud attributes are directly processed according to the decoding order, and the following modules are executed for processing the attribute values of the current points:
Among them, di is the distance between the point Pi and the current point (X, Y, Z), which can be at least one of the following distances:
A point cloud attribute decoding device based on a new processing order in this embodiment includes the following modules.
When the decoded geometric points are in Hilbert order, the point cloud attributes are directly processed according to the decoding order, and the following modules are executed for processing the attribute values of the current points:
Among them, di is the distance between the point Pi and the current point (X, Y, Z), which can be at least one of the following distances:
A point cloud attribute decoding device based on a new processing order in this embodiment includes the following modules.
When the decoded geometric points are in Hilbert order, the point cloud attributes are directly processed according to the decoding order, and the following modules are executed for processing the attribute values of the current points:
A point cloud attribute decoding method based on a new processing order in this embodiment includes the following contents.
The three-dimensional geometric coordinates (X1, X2, X3)N of reconstructed points in the point cloud are processed sequentially from high position to low position of the binary bits, where the ith processing: generate the corresponding Hilbert code subcode Ci,m
Where >> refers to bitwise right shift operation and << refers to bitwise left shift operation, and the lookup table HilbertCode used is as follows:
According to the sequence of Hilbert from small to large or from large to small, the reconstructed attribute information of the point cloud is decoded from the bitstream in order, and the attribute value of the current point is processed by the following steps:
Among them, di is the distance between the point Pi and the current point (X, Y, Z), which can be at least one of the following distances:
A point cloud attribute decoding device based on a new processing order in this embodiment includes the following modules.
Hilbert code generation module: the input of this module is the reconstructed geometric coordinates of the point cloud, and the output is the Hilbert code corresponding to the geometric coordinates of the point cloud. This module sequentially processes the three-dimensional geometric coordinates (X1, X2, X3)N of reconstructed points in the point cloud sequentially from high position to low position of the binary bits, where the ith processing: generate the corresponding Hilbert code subcode Ci,m
Attribute decoding module: the input of this module is the attribute bitstream, and the output is the reconstructed point cloud attribute. This module decodes the reconstructed point cloud attribute information from the bitstream in order of Hilbert from small to large or from large to small, and executes the following modules to process the attribute value of the current point:
Among them, di is the distance between the point Pi and the current point (X, Y, Z), which can be at least one of the following distances:
A point cloud attribute decoding method based on a new processing order in this embodiment includes the following contents.
The three-dimensional geometric coordinates (X1, X2, X3)N of reconstructed points in the point cloud are processed sequentially from high position to low position of the binary bits, where the ith processing: generate the corresponding Hilbert code subcode Ci,m
Where >> refers to bitwise right shift operation and << refers to bitwise left shift operation, and the lookup table of HilbertCode used is as follows:
According to the Hilbert order from small to large or from large to small, the reconstructed attribute information of the point cloud is decoded from the bitstream in order, and the attribute value of the current point is processed by the following steps:
Among them, di is the distance between the point Pi and the current point (X, Y, Z), which can be at least one of the following distances:
Use the following formula to calculate the weighted average of the attribute values of the three points P1, P2, P3, and take the weighted average value as the attribute prediction value  of the current point,
A point cloud attribute decoding device based on a new processing order in this embodiment includes the following modules.
The binary bits of the three-dimensional geometric coordinates (X1, X2, X3)N of the reconstructed points in the point cloud are processed in order from high to low, and the i th processing: According to the (3*mi) binary bits in the three-dimensional geometric coordinates of the reconstructed points, the corresponding Hilbert code is generated. In this embodiment, N=bitWidth and is an even number. X1=x, X2=y, X3=z. Only 2 bits are processed each time, that is, mi=2, p=bitWidth/2. ConvertCodem
Attribute decoding module: the input of the module is attribute bitstream and the output is reconstructed attribute of the point cloud. According to the Hilbert order from small to large or from large to small, the reconstructed attribute information of the point cloud is decoded from the bitstream in order, and the attribute value of the current point is processed by the following steps:
Among them, di is the distance between the point Pi and the current point (X, Y, Z), which can be at least one of the following distances:
Use the following formula to calculate the weighted average of the attribute values of the three points P1, P2, P3, and take the weighted average value as the attribute prediction value  of the current point,
A method for generating a new processing order in this embodiment includes the following contents.
For the reconstructed point cloud geometry, the Hilbert code corresponding to it is generated according to its three-dimensional spatial coordinates. As mentioned above, for a given three-dimensional coordinate (X1, X2, X3), the coordinates of the point are expanded in binary as follows:
X
1=(x11x12 . . . x1n . . . x1N−1x1N),X2=(x21x22 . . . x2n . . . x2N−1x2N),X3=(x31x32 . . . x3n . . . x3N−1x3N)
The Hilbert code HCodeN(X1, X2, X3)=(C1C2 . . . Cn . . . CN−1CN) of point (X1, X2, X3) is obtained through the following process, The Hilbert code has 3*N binary bits. Ci, i=1, . . . , N, is the i-th substring code composed of three binary bits, while C1 is the highest 3-bit subcode and CN is the lowest 3-bit subcode. Hilbert codes are obtained by performing the following calculations:
Among them, i is the state when the subcode Ci−1 of the i-th string is generated, and
i is one of the 12 states, as shown in
(x1i,x2i,x3i) of (x1i,x2i,x3i) to Ci−1.
1∈[a, b, c, d, e, h, k, m, p, q, r, s] means that when calculating C1, one of the 12 states should be selected as the initial value state, and then each time
i is calculated according to the mapping relationship defined by the function g(
i−1, Ci−1), which contains the upper state
i−1 corresponding to the subcode and the upper subcode Ci−1 corresponding to the subcode. Until all subcodes C1, C2 . . . CN are calculated and all subcodes are arranged in order, the Hilbert codeHCodeN(X1, X2, X3) of points with three-dimensional space coordinates (x1i,x2i,x3i) is obtained. The bits of the binary code of the Hilbert code cannot form a one-to-one correspondence with the bits of the binary code of the geometric coordinates.
The correspondence between the input x1i,x2i,x3i of a mapping function ƒa(x1i,x2i,x3i) corresponding to the 12 states defined in
The remaining functions are as follows:
ƒb(x1i,x2i,x3i)=ƒa(x2i,x3i,x1i),ƒc(x1i,x2i,x3i)=ƒa(x3i,x1i,x2i),
ƒd(x1i,x2i,x3i)=ƒa(x1i,
ƒa(
ƒk(x1i,x2i,x3i)=ƒa(
ƒa(
ƒq(x1i,x2i,x3i)=ƒa(
ƒa(x3i,
The transformation relationship between the above maps has the same meaning as the transformation relationship between the curves corresponding to the state, the order exchange of the binary coordinates input by ƒ(x1i,x2i,x3i) corresponds to the symmetry of the plane in the curve, and the reverse of the binary coordinates input by ƒ(x1i,x2i,x3i) corresponds to the rotation around the axis in the curve. The remaining mappings are shown in the following table:
The function i=g(
i−1, Ci−1) is used to obtain the state
i of the current level from the previous level state
i−1 and the previous level subcode Ci−1, which is shown as follows:
i−1
In this example, the numbers corresponding to the 12 states shown in i−1, Ci−1) function in Table 1 should also be adjusted accordingly so that the state transition relationship of
i obtained from
i−1) remains unchanged.
A method of generating a new processing order for this embodiment includes the following
For the reconstructed point cloud geometry, the corresponding Hilbert code is generated according to its three-dimensional space coordinates. As mentioned above, for a given three-dimensional coordinate of (X1, X2, X3), its coordinates are expanded in binary as follows
X
1=(x11x12 . . . x1n . . . x1N−1x1N),X2=(x21x22 . . . x2n . . . x2N−1x2N),X3=(x31x32 . . . x3n . . . x3N−1x3N)
The Hilbert code HCodeN(X1, X2, X3)=(C1C2 . . . Cn . . . CN−1CN) of point (X1, X2, X3) is obtained through the following process, The Hilbert code has 3*N binary bits. Ci, i=1, . . . , N, is the i-th substring code composed of three binary bits, while C1 is the highest 3-bit subcode and CN is the lowest 3-bit subcode. Hilbert codes are obtained by performing the following calculations:
Among them, i is the state when the subcode Ci−1 of the i-th string is generated, and
i is one of the 12 states, as shown in
(x1i,x2i,x3i) of (x1i,x2i,x3i) to Ci−1.
i∈[a, b, c, d, e, h, k, m, p, q, r, s] means that when calculating C1, one of the 12 states should be selected as the initial value state, and then each time
i is calculated according to the mapping relationship defined by the function g(
i−1, Ci−1), which contains the upper state
i−1 corresponding to the subcode and the upper subcode Ci−1 corresponding to the subcode. Until all subcodes C1, C2 . . . CN are calculated and all subcodes are arranged in order, the Hilbert codeHCodeN(X1, X2, X3) of points with three-dimensional space coordinates (x1i,x2i,x3i) is obtained. The bits of the binary code of the Hilbert code cannot form a one-to-one correspondence with the bits of the binary code of the geometric coordinates.
The correspondence between the input x1i,x2i,x3i of a mapping function ƒa(x1i,x2i,x3i) corresponding to the 12 states defined in
c
1
i
=x
1
i
c
2
i
=x
1
i
−x
2
i
c
3
i=
C
i
=c
1
i
c
2
i
c
3
i
Among them, ⊕ denotes the exclusive-or operation, and ⊙ denotes the inclusive-or operation. The mapping relationship between the remaining states and ƒa(x1i,x2i,x3i) has the following operational relationship, where
ƒb(x1i,x2i,x3i)=ƒa(x2i,x3i,x1i),ƒc(x1i,x2i,x3i)=ƒa(x3i,x1i,x2i),
ƒd(x1i,x2i,x3i)=ƒa(x1i,
ƒa(
ƒk(x1i,x2i,x3i)=ƒa(
ƒa(
ƒq(x1i,x2i,x3i)=ƒa(
ƒa(x3i,
The transformation relationship between the above maps has the same meaning as the transformation relationship between the curves corresponding to the state, the order exchange of the binary coordinates input by ƒ(x1i,x2i,x3i) corresponds to the symmetry of the plane in the curve, and the reverse of the binary coordinates input by ƒ(x1i,x2i,x3i) corresponds to the rotation around the axis in the curve.
The mapping relationship of the function i=g(
i−1, Ci−1) is shown in Table 2.
i according to
i−1 and Ci−1
i−1
In this embodiment, the numbers corresponding to the 12 states shown in i−1, Ci−1) function in Table 2 should also be adjusted accordingly so that the state transition relationship of
i obtained from
i−1) remains unchanged.
A method of generating a new processing order for this embodiment includes the following
For the reconstructed point cloud geometry, the corresponding Hilbert code is generated according to its three-dimensional space coordinates. As mentioned above, for a given three-dimensional coordinate of (X1, X2, X3), its coordinates are expanded in binary as follows
X
1=(x11x12 . . . x1n . . . x1N−1x1N),X2=(x21x22 . . . x2n . . . x2N−1x2N),X3=(x31x32 . . . x3n . . . x3N−1x3N)
The Hilbert code HCodeN(X1, X2, X3)=(C1C2 . . . Cn . . . CN−1CN) of point (X1, X2, X3) is obtained through the following process, The Hilbert code has 3*N binary bits. Ci, i=1, . . . , N, is the i-th substring code composed of three binary bits, while C1 is the highest 3-bit subcode and CN is the lowest 3-bit subcode. Hilbert codes are obtained by performing the following calculations:
Among them, i is the state when the subcode Ci−1 of the i-th string is generated, and
i is one of the 12 states, as shown in
(x1i,x2i,x3i) of (x1i,x2i,x3i) to Ci−1.
1∈[a, b, c, d, e, h, k, m, p, q, r, s] means that when calculating C1, one of the 12 states should be selected as the initial value state, and then each time
i is calculated according to the mapping relationship defined by the function g(
i−1, Ci−1), which contains the upper state
i−1 corresponding to the subcode and the upper subcode Ci−1 corresponding to the subcode. Until all subcodes C1, C2 . . . CN are calculated and all subcodes are arranged in order, the Hilbert codeHCodeN(X1, X2, X3) of points with three-dimensional space coordinates (x1i,x2i,x3i) is obtained. The bits of the binary code of the Hilbert code cannot form a one-to-one correspondence with the bits of the binary code of the geometric coordinates.
The correspondence between the input x1i,x2i,x3i and the output Ci of a mapping function ƒa(x1i,x2i,x3i) is as follows:
The remaining functions are as follows:
ƒb(x1i,x2i,x3i)=ƒa(x2i,x3i,x1i),ƒc(x1i,x2i,x3i)=ƒa(x3i,x1i,x2i),
ƒd(x1i,x2i,x3i)=ƒa(x1i,
ƒa(
ƒk(x1i,x2i,x3i)=ƒa(
ƒa(
ƒq(x1i,x2i,x3i)=ƒa(
ƒa(x3i,
The transformation relationship between the above maps has the same meaning as the transformation relationship between the curves corresponding to the state, the order exchange of the binary coordinates input by ƒ(x1i,x2i,x3i) corresponds to the symmetry of the plane in the curve, and the reverse of the binary coordinates input by ƒ(x1i,x2i,x3i) corresponds to the rotation around the axis in the curve.
The remaining mappings are shown in the following table:
The function i=g(
i−1, Ci−1) is used to obtain the state
i of the current level from the previous level state
i−1 and the previous level subcode Ci−1, which is shown as follows:
i according to
i−1 and Ci−1
i−1
In this embodiment, the numbers corresponding to the 12 states can be changed, but the g(i−1, Ci−1) function in Table 3 should also be adjusted accordingly so that the state transition relationship of
i obtained from S
i−1) remains unchanged.
A method of generating a new processing order for this embodiment includes the following
For the reconstructed point cloud geometry, the corresponding Hilbert code is generated according to its three-dimensional space coordinates. As mentioned above, for a given three-dimensional coordinate of (X1, X2, X3), its coordinates are expanded in binary as follows
X
1=(x11x12 . . . x1n . . . x1N−1x1N),X2=(x21x22 . . . x2n . . . x2N−1x2N),X3=(x31x32 . . . x3n . . . x3N−1x3N)
The Hilbert code HCodeN(X1, X2, X3)=(C1C2 . . . Cn . . . CN−1CN) of point (X1, X2, X3) is obtained through the following process, The Hilbert code has 3*N binary bits. Ci, i=1, . . . , N, is the i-th substring code composed of three binary bits, while C1 is the highest 3-bit subcode and CN is the lowest 3-bit subcode. Hilbert codes are obtained by performing the following calculations:
Among them, i is the state when the subcode Ci−1 of the i-th string is generated, and
i is one of the 12 states, as shown in
(x1i,x2i,x3i) of (x1i,x2i,x3i) to Ci−1.
i∈[a, b, c, d, e, h, k, m, p, q, r, s] means that when calculating C1, one of the 12 states should be selected as the initial value state, and then each time
i is calculated according to the mapping relationship defined by the function g(
i−1, Ci−1), which contains the upper state
i−1 corresponding to the subcode and the upper subcode Ci−1 corresponding to the subcode. Until all subcodes C1, C2 . . . CN are calculated and all subcodes are arranged in order, the Hilbert codeHCodeN(X1, X2, X3) of points with three-dimensional space coordinates (x1i,x2i,x3i) is obtained. The bits of the binary code of the Hilbert code cannot form a one-to-one correspondence with the bits of the binary code of the geometric coordinates.
The correspondence between the input x1i,x2i,x3i of a mapping function ƒa(x1i,x2i,x3i) corresponding to the 12 states defined in
c
1
i
=x
1
i
c
2
i
=x
1
i
−x
2
i
c
3
i=
C
i
=c
1
i
c
2
i
c
3
i
Among them, ⊕ denotes the exclusive-or operation, and ⊙ denotes the inclusive-or operation. The mapping relationship between the remaining states and ƒa(x1i,x2i,x3i) has the following operational relationship, where
ƒb(x1i,x2i,x3i)=ƒa(x2i,x3i,x1i),ƒc(x1i,x2i,x3i)=ƒa(x3i,x1i,x2i),
ƒd(x1i,x2i,x3i)=ƒa(x1i,
ƒa(
ƒk(x1i,x2i,x3i)=ƒa(
ƒa(
ƒq(x1i,x2i,x3i)=ƒa(
ƒa(x3i,
The transformation relationship between the above maps has the same meaning as the transformation relationship between the curves corresponding to the state The order exchange of the binary coordinates input by ƒ(x1i,x2i,x3i) corresponds to the symmetry of the plane in the curve, and the reverse of the binary coordinates input by ƒ(x1i,x2i,x3i) corresponds to the rotation around the axis in the curve.
The mapping relationship of the function i=g(
i−1, Ci−1) is shown in Table 4.
i according to
i−1 and Ci−1
i−1
In this example, the numbers corresponding to the 12 states can be changed, but the g (i−1, Ci−1) function in Table 4 should also be adjusted accordingly so that the state transition relationship of
i obtained from
i−1) remains unchanged.
A point cloud attribute decoding method based on a new processing order for this embodiment includes the following contents.
According to the three-dimensional geometric coordinates of all points in the point set, the corresponding Hilbert code is calculated by any method in embodiment 23 to embodiment 26, and then these points are reordered according to the Hilbert code values of these points, and the multiple points arranged in Hilbert order are obtained. The bits of the binary code of the Hilbert code cannot form a one-to-one correspondence with the bits of the binary code of the geometric coordinates.
The attribute residual values of multiple points are obtained by decoding from the bitstream.
The attribute residual values of these points correspond to the Hilbert codes of each point in the Hilbert order point set, and also correspond to the three-dimensional geometric coordinates of each point in the Hilbert order. That is, the attribute residuals r1, r2, . . . decoded from the stream correspond to the points P1, P2, . . . sorted after Hilbert order.
A point cloud attribute decoding method based on a new processing order for this embodiment includes the following contents.
According to the three-dimensional geometric coordinates of all points in the point set, the corresponding Hilbert code is calculated by any method in embodiment 23 to embodiment 26, and then these points are reordered according to the Hilbert code values of these points, and the multiple points arranged in Hilbert order are obtained. The bits of the binary code of the Hilbert code cannot form a one-to-one correspondence with the bits of the binary code of the geometric coordinates.
In this paper, any method of embodiments 1 to 22 is used to decode the attribute residual value from the bitstream and predict the attribute value of the decoding point, and then the reconstructed attribute value of the point is obtained according to the attribute residual value corresponding to the point.
A point cloud attribute encoding method based on a new processing order in this embodiment includes the following contents.
According to the three-dimensional geometric coordinates of all points in the point set, the corresponding Hilbert code is calculated by any method in embodiment 23 to embodiment 26, and then these points are reordered according to the Hilbert code values of these points, and the multiple points arranged in Hilbert order are obtained. The bits of the binary code of the Hilbert code cannot form a one-to-one correspondence with the bits of the binary code of the geometric coordinates.
Use any attribute prediction method of implementation examples 1 to 22 to predict the attribute value of the coding point, and then obtain the attribute residual value of the point according to the actual attribute value corresponding to the point.
Write the attribute residual values of multiple points to the bitstream.
A device for generating a new processing order of this embodiment includes the following contents.
Subcode generation module: For the reconstructed point cloud geometry, for a given three-dimensional coordinate point (X1, X2, X3), its coordinates are expanded in binary as follows:
X
1=(x11x12 . . . x1n . . . x1N−1x1N),X2=(x21x22 . . . x2n . . . x2N−1x2N),X3=(x31x32 . . . x3n . . . x3N−1x3N)
Input the binary bits x1i,x2i,x3i of its three-dimensional space coordinates, and output the corresponding Hilbert subcode Ci, i=1, . . . , N, where the subcode is composed of three binary bits, while C1 is the highest 3-bit subcode and CN is the lowest 3-bit subcode. Hilbert codes are obtained by performing the following calculations:
C
i=(x1i,x2i,x3i)
State transition module:
Among them, i is the state when the subcode Ci−1 of the i-th string is generated, and
i is one of the 12 states, as shown in
(x1i,x2i,x3i) of (x1i,x2i,x3i) to Ci−1.
1∈[a, b, c, d, e, h, k, m, p, q, r, s] means that when calculating C1, one of the 12 states should be selected as the initial value state, and then each time
i is calculated according to the mapping relationship defined by the function g (
i−1, Ci−1), which contains the upper state
i−1 corresponding to the subcode and the upper subcode Ci−1 corresponding to the subcode.
Hilbert code generation module: until all subcodes C1, C2 . . . CN are calculated and all subcodes are arranged in order, the Hilbert code HCodeN(X1, X2, X3) of points with three-dimensional space coordinates (x1i,x2i,x3i) is obtained. The bits of the binary code of the Hilbert code cannot form a one-to-one correspondence with the bits of the binary code of the geometric coordinates.
The correspondence between the input x1i,x2i,x3i and the output Ci of a mapping function ƒa(x1i,x2i,x3i) defined in
The remaining functions are as follows:
ƒb(x1i,x2i,x3i)=ƒa(x2i,x3i,x1i),ƒc(x1i,x2i,x3i)=ƒa(x3i,x1i,x2i),
ƒd(x1i,x2i,x3i)=ƒa(x1i,
ƒa(
ƒk(x1i,x2i,x3i)=ƒa(
ƒa(
ƒq(x1i,x2i,x3i)=ƒa(
ƒa(x3i,
The transformation relationship between the above maps has the same meaning as the transformation relationship between the curves corresponding to the state, the order exchange of the binary coordinates input by ƒ(x1i,x2i,x3i) corresponds to the symmetry of the plane in the curve, and the reverse of the binary coordinates input by ƒ(x1i,x2i,x3i) corresponds to the rotation around the axis in the curve.
The remaining mappings are shown in the following table:
The function i=g(
i−1, Ci−1) is used to obtain the state
i of the current level from the previous level state
i−1 and the previous level subcode Ci−1, which is shown as follows:
i according to
i−1 and Ci−1
i−1
In this embodiment, the numbers corresponding to the 12 states shown in i−1, Ci−1) function in Table 5 should also be adjusted accordingly so that the state transition relationship of
i obtained from
i−1) remains unchanged.
A device for generating a new processing order of this embodiment includes the following contents.
Using the subcode generation module, state transition module and Hilbert code generation module of embodiment 30, the corresponding Hilbert code is output for the input three-dimensional coordinates of (X1, X2, X3).
The Hilbert sorting module: input the Hilbert code of multiple points, reorder these points according to the Hilbert code value of these points, and output the multiple points arranged in Hilbert order. The bits of the binary code of the Hilbert code cannot form a one-to-one correspondence with the bits of the binary code of the geometric coordinates;
according to the attribute residual decoding module of embodiments 6 to 10 and 20 to 22, the attribute residual values of the multiple points are obtained by decoding from the stream.
The attribute residual corresponding module: the respective attribute residual values of the multiple points correspond to the Hilbert code of each point in the Hilbert order, and also correspond to the three-dimensional geometric coordinates of each point in the Hilbert order.
According to the attribute prediction value acquisition module and the reconstructed attribute value acquisition module of implementation examples 6 to 10 and implementation examples 20 to 22, the input of the attribute prediction value acquisition module is the reconstructed point cloud, and the attribute prediction value of these points is output. The reconstructed attribute value acquisition module inputs the attribute prediction value and the attribute residual value corresponding to the reconstructed point to obtain the reconstructed attribute value of the current point.
Finally, we need to explain all the above implementation methods, such as the implementation methods of (x1i,x2i,x3i), g(
i−1, Ci−1), including but not limited to functions, lookup tables, fixed circuit implementations, or state transitions using state machines.
| Number | Date | Country | Kind |
|---|---|---|---|
| 202010822352.0 | Aug 2020 | CN | national |
| 202011063672.9 | Sep 2020 | CN | national |
| 202011452464.8 | Dec 2020 | CN | national |
| Filing Document | Filing Date | Country | Kind |
|---|---|---|---|
| PCT/CN2021/112484 | 8/13/2021 | WO |