CN111684808A - Point cloud data encoding method, encoding device, decoding method, and decoding device - Google Patents
Point cloud data encoding method, encoding device, decoding method, and decoding device Download PDFInfo
- Publication number
- CN111684808A CN111684808A CN201980009142.5A CN201980009142A CN111684808A CN 111684808 A CN111684808 A CN 111684808A CN 201980009142 A CN201980009142 A CN 201980009142A CN 111684808 A CN111684808 A CN 111684808A
- Authority
- CN
- China
- Prior art keywords
- point cloud
- cloud data
- data
- data sets
- code stream
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 132
- 238000012545 processing Methods 0.000 claims description 31
- 230000005484 gravity Effects 0.000 claims description 30
- FBOUIAKEJMZPQG-AWNIVKPZSA-N (1E)-1-(2,4-dichlorophenyl)-4,4-dimethyl-2-(1,2,4-triazol-1-yl)pent-1-en-3-ol Chemical compound C1=NC=NN1/C(C(O)C(C)(C)C)=C/C1=CC=C(Cl)C=C1Cl FBOUIAKEJMZPQG-AWNIVKPZSA-N 0.000 claims description 19
- 239000012634 fragment Substances 0.000 claims description 11
- 230000006835 compression Effects 0.000 abstract description 17
- 238000007906 compression Methods 0.000 abstract description 17
- 238000010586 diagram Methods 0.000 description 14
- 238000003064 k means clustering Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 7
- 238000004590 computer program Methods 0.000 description 6
- 238000000638 solvent extraction Methods 0.000 description 6
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
- 238000002310 reflectometry Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/597—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/436—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/96—Tree coding, e.g. quad-tree coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Image Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
A method of encoding point cloud data, comprising: in the process of encoding the position information of the point cloud data, the point cloud data is processed by a clustering method, namely: dense point cloud data is divided into a set, and the point cloud data in the set is encoded based on an octree encoding method or other position encoding methods. As the point cloud data in the set is dense point cloud data, the number of the hollow sets in the subset divided by the octree code is reduced, and the compression efficiency of the octree code is improved.
Description
Copyright declaration
The disclosure of this patent document contains material which is subject to copyright protection. The copyright is owned by the copyright owner. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the patent and trademark office official records and records.
Technical Field
The present invention relates to the field of data encoding and decoding, and more particularly, to a method and apparatus for encoding point cloud data, and a method and apparatus for decoding point cloud data.
Background
A point cloud (point cloud) is a representation of a three-dimensional object or a three-dimensional scene, and is composed of a random set of discrete points in space, i.e., point cloud data, which is used to represent the spatial structure and surface properties of the three-dimensional object or the three-dimensional scene, and one point cloud data is generally composed of position information, and in some examples, the point cloud data further includes property information, such as three-dimensional coordinates (x, y, z), and such as color (R, G, B) and reflectivity. In order to reduce the storage space occupied during point cloud storage and the bandwidth occupied during point cloud transmission, the point cloud needs to be compressed.
A compression processing method is to encode point clouds through an octree, namely, a space where the point clouds are located is divided into eight subspaces, point cloud data in the eight subspaces belong to the same layer, if point cloud data exist in the subspaces, the subspaces are further divided until a minimum partition unit is obtained, and then the obtained point clouds are encoded layer by layer.
Because some sparse point cloud data may exist in the space where the point cloud exists, the problem of low compression efficiency exists when the point cloud is directly encoded by using the octree.
Disclosure of Invention
The application provides a method and a device for encoding point cloud data and a method and a device for decoding point cloud data, which can improve the compression efficiency and the decoding efficiency of the point cloud data.
In a first aspect, a method of encoding point cloud data is provided, comprising: acquiring a plurality of point cloud data; dividing the plurality of point cloud data into k data sets according to the positions of the plurality of point cloud data, wherein the k data sets comprise a first data set, the distance between at least two point cloud data in the first data set is smaller than or equal to a first distance threshold, and k is a positive integer greater than or equal to 2; and respectively encoding the k data sets.
In the process of encoding the position information, the point cloud data is processed by a clustering method, that is, dense point cloud data is divided into a set, and then the point cloud data in the set is subjected to edge processing based on a position encoding method (for example, an octree encoding method). As the point cloud data in the set is dense point cloud data, the number of the hollow sets in the subset divided by the octree code is reduced, and the compression efficiency of the octree code is improved.
In a second aspect, a method of decoding point cloud data is provided, comprising: acquiring a point cloud data code stream; decoding the point cloud data code stream to generate k data sets, wherein the k data sets comprise point cloud data obtained by decoding the point cloud data code stream, and k is a positive integer greater than or equal to 2; and merging the k data sets to obtain complete point cloud.
In the decoding system provided by the application, decoding is performed through the reverse process of the clustering method, namely, the code stream is decoded into a plurality of data sets, and then the plurality of data sets are combined to obtain complete point clouds. Because the data sets are components of the complete point cloud and each data set has fewer coding layers, the code stream is decoded into the data sets and then the data sets are combined, so that the decoding workload can be reduced and the decoding efficiency can be improved.
In a third aspect, a point cloud data encoding apparatus is provided, which is configured to perform the method of the first aspect.
In a fourth aspect, there is provided a point cloud data encoding apparatus comprising a memory for storing instructions and a processor for executing the instructions stored by the memory, and execution of the instructions stored in the memory causes the processor to perform the method of the first aspect.
In a fifth aspect, a chip is provided, where the chip includes a processing module and a communication interface, the processing module is configured to control the communication interface to communicate with the outside, and the processing module is further configured to implement the method of the first aspect.
In a sixth aspect, there is provided a computer readable storage medium having stored thereon a computer program which, when executed by a computer, causes the computer to carry out the method of the first aspect. Specifically, the computer may be the point cloud data encoding device.
In a seventh aspect, the present application provides a computer program product comprising instructions which, when executed by a computer, cause the computer to carry out the method provided by the first aspect.
In an eighth aspect, a point cloud data decoding apparatus for performing the method of the second aspect is provided.
In a ninth aspect, there is provided a point cloud data decoding apparatus comprising a memory for storing instructions and a processor for executing the instructions stored in the memory, and execution of the instructions stored in the memory causes the processor to perform the method of the second aspect.
In a tenth aspect, a chip is provided, where the chip includes a processing module and a communication interface, the processing module is configured to control the communication interface to communicate with the outside, and the processing module is further configured to implement the method of the second aspect.
In an eleventh aspect, there is provided a computer readable storage medium having stored thereon a computer program which, when executed by a computer, causes the computer to carry out the method of the second aspect. Specifically, the computer may be the point cloud data decoding device described above.
In a twelfth aspect, the present application provides a computer program product comprising instructions which, when executed by a computer, cause the computer to carry out the method provided by the second aspect.
Drawings
Fig. 1 is a schematic diagram of an encoding process provided in the present application.
Fig. 2 is a schematic diagram of an encoding process provided in the present application.
Fig. 3 is a schematic diagram of a method for encoding point cloud data provided in the present application.
Fig. 4 is a schematic diagram of a method for serially encoding point cloud data according to the present application.
Fig. 5 is a schematic diagram of a method for parallel encoding point cloud data provided in the present application.
Fig. 6 is a flow for partitioning point cloud based on k-means clustering algorithm provided by the present application.
Fig. 7 is a schematic diagram of a method for decoding point cloud data provided by the present application.
Fig. 8 is a schematic diagram of a method for serially decoding point cloud data according to the present application.
Fig. 9 is a schematic diagram of a method for parallel decoding point cloud data provided in the present application.
Fig. 10 is a schematic diagram of an encoding apparatus provided in the present application.
Fig. 11 is a schematic diagram of a decoding apparatus provided in the present application.
Detailed Description
The technical solutions in the embodiments of the present application will be described below with reference to the accompanying drawings.
Unless defined otherwise, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this application belongs. The terminology used herein in the description of the present application is for the purpose of describing particular embodiments only and is not intended to be limiting of the application.
Fig. 1 shows a schematic diagram of an encoding flow provided in the present application.
The encoding system encodes the position information and the attribute information in the input point cloud data respectively. The point cloud data may be point cloud data acquired by a sensor (e.g., a lidar) on a mobile platform.
For location information, in one example, the location information is quantized, e.g., rounded by a coordinate value. The quantized coordinates may be subjected to the coordinate de-duplication process and then to the position encoding, or may be directly subjected to the position encoding, for example, the position encoding is an octree encoding.
For the attribute information, the attribute conversion may be performed on the attribute information and then the attribute encoding may be performed, or the attribute information may be directly encoded. If the processing of removing the repeated coordinates is executed, attribute conversion is required in the attribute encoding process, for example, attribute information corresponding to the merged coordinates is merged; if the process of removing the duplicate coordinates is not performed, the attribute information may be directly encoded. And then sequentially performing attribute coding on the attribute information according to the order of the position information, wherein the attribute coding method is, for example, a fixed length code coding method or a level of detail (LOD) coding method. The attribute information subjected to the attribute coding is converted into a binary code.
Subsequently, the encoding system performs arithmetic encoding (i.e., compression encoding) on the position information subjected to the position encoding and the attribute information subjected to the attribute encoding in the arithmetic encoding engine, and finally obtains a code stream subjected to the compression encoding.
The decoding process of the point cloud data is substantially the same as the reverse process of the encoding process. Fig. 2 shows a schematic diagram of a decoding flow provided in the present application.
After the decoding system acquires the input code stream, arithmetic decoding is firstly carried out to obtain the position information to be decoded and the attribute information to be decoded. The decoding system respectively decodes the position information to be decoded and the attribute information to be decoded.
The decoding system first performs position decoding to obtain quantized position information, and then performs inverse quantization processing on the quantized position information to obtain position information.
After obtaining the quantized position information, the decoding system may perform attribute decoding in the order of the quantized position information. For example, the attribute information to be decoded is decoded to obtain a binary code containing the attribute information, and then the binary code is decoded according to a binarization method used by the encoding system to obtain the attribute information. The decoding system can determine the binarization method used by the coding system according to the indication information in the header information of the code stream, and can also determine the binarization method used by the coding system according to the preset information in the decoding system.
And finally, combining the position information and the attribute information obtained by decoding to obtain point cloud data.
In the process of encoding the position information, the point cloud data is processed by a clustering method, that is, dense point cloud data is divided into a set, and then the point cloud data in the set is subjected to edge processing based on a position encoding method (for example, an octree encoding method). As the point cloud data in the set is dense point cloud data, the number of the hollow sets in the subset divided by the octree code is reduced, and the compression efficiency of the octree code is improved.
Similarly, in the decoding system provided by the present application, decoding is performed through a reverse process of the clustering method, that is, the code stream is decoded into a plurality of data sets, and then the plurality of data sets are merged to obtain a complete point cloud. Because the data sets are components of the complete point cloud and each data set has fewer coding layers, the code stream is decoded into the data sets and then the data sets are combined, so that the decoding workload can be reduced and the decoding efficiency can be improved.
Hereinafter, the encoding and decoding processes based on the clustering method provided in the present application will be described in detail.
Fig. 3 illustrates a method of point cloud encoding provided by the present application. The method 100 includes:
s110, a plurality of point cloud data are obtained.
For a point cloud, the density of point cloud data (i.e., point cloud clusters) at different locations is typically different, with some locations having sparse point cloud data and others having dense point cloud data. If the point cloud is directly subjected to position division, point cloud data may not exist in some data sets obtained by division, and the data sets (empty sets) still need to be encoded during position encoding, so that the compression efficiency is low. Therefore, before encoding the point cloud data, the point cloud data needs to be clustered, that is, dense point cloud data is divided into a data set.
The plurality of point cloud data input into the encoding system may belong to one point cloud package or may belong to a plurality of point cloud packages. For example, if the point cloud package obtained by the lidar is large, the lidar may split the large point cloud package into a plurality of smaller point cloud packages and input the plurality of smaller point cloud packages into the encoding system.
In order to avoid that some dense point cloud data may be divided into different clusters, the encoding system may merge a plurality of point cloud packets having the same timestamp and device identifier, and then perform clustering on the point cloud data in the merged plurality of point cloud packets, so as to improve encoding compression efficiency.
Optionally, the plurality of point cloud data input to the encoding system may also be from different lidar. For example, a plurality of laser radars are installed on an automatic driving vehicle or an unmanned aerial vehicle, a plurality of point cloud packets are generated by the laser radars at the same time, the encoding system can also merge the point cloud packets and then perform clustering, and the encoding compression efficiency is also improved.
After the encoding system acquires the plurality of point cloud data, the following steps may be performed.
And S120, dividing the plurality of point cloud data into k data sets according to the positions of the plurality of point cloud data, wherein the k data sets comprise a first data set, the distance between at least two point cloud data in the first data set is smaller than or equal to a first distance threshold, and k is a positive integer greater than or equal to 2.
The dividing according to the positions of the plurality of point cloud data may be dividing the plurality of point cloud data based on a distance between the plurality of point cloud data. If the distance between two point cloud data is less than or equal to the first distance threshold, the two data can be divided into one data set.
The first distance threshold value can be set to different values according to actual conditions. For example, the current communication environment is poor, in order to reduce the amount of transmitted information, the first distance threshold may be set to a smaller value, and the density of point cloud data divided into the same data set is increased to improve the compression efficiency, thereby reducing the amount of information obtained after compression. For another example, if the parallel processing capability of the current encoding apparatus is weak, the first distance threshold may be set to a larger value, so as to reduce the number of data sets obtained by dividing the point cloud data, thereby reducing the computational resources required for parallel compression.
In some cases, a distance between the point cloud data of any two adjacent locations in the first data set is less than or equal to the first distance threshold.
In other cases, some special point cloud data may exist in the point clouds, and the distance between each point cloud data in the special point cloud data and any one point cloud data in the point clouds is greater than the first distance threshold, the encoding device may divide the special point clouds into a data set with the closest distance. For example, the distance between the point cloud data a and any other point cloud data is greater than the first distance threshold, and the distance between the point cloud data a and the data set where the point cloud data B is located is the closest, the point cloud data a may be divided into the data sets where the point cloud data B is located.
Therefore, there may be distances between some neighboring point cloud data in the first data set in S120 that do not satisfy the first distance threshold.
Alternatively, the encoding device may divide the specific point cloud data into a data set. For example, the density of the point cloud data in one point cloud cluster is sparse, the distance between any two adjacent point cloud data does not satisfy the first distance threshold, and the distance between the point cloud cluster and other point cloud clusters is far, so that the point cloud data in the point cloud cluster can be divided into a data set.
Therefore, there may be one or more special data sets among the k data sets in S120, and the distance between any two adjacent point cloud data in the special data sets does not satisfy the first distance threshold.
One method of partitioning based on the distance between a plurality of point cloud data is a k-means clustering (k-means clustering) algorithm, which will be described in detail below.
In addition to the above scheme of dividing based on the distance between the point cloud data, the division may be performed according to the positions of the plurality of point cloud data, or the division may be performed on the plurality of point cloud data based on the density of the plurality of point cloud data.
Because the distance between the point cloud data can reflect the density of the point cloud data, the processing processes of the two dividing modes are different, but the effects are the same or similar, the dense point cloud data can be divided into a data set, and the coding compression efficiency is improved. For example, the first data set is obtained by dividing the plurality of point cloud data according to the densities of the point cloud data, and the density of the point cloud data meets a first density threshold, so that the distance between at least two point cloud data in the first data set is necessarily less than or equal to a first distance threshold, and an association relationship exists between the first distance threshold and the first density threshold.
The multiple point cloud data may be partitioned using a density-based spatial clustering of applications with noise (DBSCAN) algorithm.
And a clustering algorithm based on a grid can be adopted to divide the point cloud data. That is, the space is divided into grid cells, the spatial position coordinates are mapped into the grid cells, and the density of each cell is calculated. Judging whether each grid is a high-density unit according to a preset density threshold, dividing point cloud data in adjacent high-density units into a data set, and finally finishing clustering of the point cloud data.
The above-described division method is merely an example, and the clustering method applicable to the present application is not limited thereto.
Optionally, in the process of dividing the plurality of point cloud data into k data sets, the distance between the data sets may also be defined.
For example, the k data sets include a second data set and a third data set, and the distance between the second data set and the third data set needs to be greater than or equal to a second distance threshold.
After the scheme is applied, if the distance between the two point cloud clusters is large, the point cloud data in the two point cloud clusters can be divided into two data sets, so that a blank area between the two point cloud clusters is prevented from being coded during position coding, and the coding compression efficiency is improved.
The distance between the two data sets may be determined from the center positions of the point cloud data in the two data sets, for example, the center positions of the plurality of point cloud data in the second data set and the center positions of the plurality of point cloud data in the third data set are first determined, and then the distance between the two center positions, that is, the distance between the second data set and the third data set, is calculated.
If the distance between the two data sets is greater than or equal to the second distance threshold, the two data sets can be used as a final division result; if the distance between the two data sets is less than the second distance threshold, the two data sets need to be further processed, e.g., the two data sets are merged into one data set.
It should be noted that the "second data set" and the "third data set" are two different data sets, and the "first data set" may be different from the two data sets, or may be one of the "second data set" and the "third data set".
After the k data sets are divided, the coding system can execute the following steps.
And S130, respectively encoding the k data sets.
The encoding system may encode the k data sets in parallel; the k data sets may also be encoded serially.
Fig. 4 and 5 show these two encoding schemes, respectively.
As shown in fig. 4, the encoding system generates k data sets, and then sequentially inputs the k data sets to one encoder to perform encoding. The encoding mode, namely the serial encoding mode, can complete encoding only by one encoder, so that the consumption of computing resources by encoding can be reduced by using the serial encoding mode.
As shown in fig. 5, after the coding system generates k data sets, the k data sets are input to at least two encoders respectively for coding. If the number of encoders is greater than or equal to k, the k data sets can be encoded simultaneously; if the number of encoders is less than k, then some of the k data sets may be encoded simultaneously. This encoding method, i.e., the parallel encoding method, can simultaneously encode at least two data sets, and therefore, the use of the parallel encoding method can improve the encoding efficiency.
Most of the process of encoding k data sets is the same as the encoding method shown in fig. 1, and is not described herein again.
Different from the encoding method shown in fig. 1, the encoder in fig. 4 and 5 generates k code stream segments after arithmetic encoding, and needs to combine the k code stream segments to generate a code stream. In addition, the code stream contains position indication information of k initialization spaces, which is used for indicating the positions of the point cloud data in the k data sets in the point cloud, so that the decoding system restores the point cloud according to the position indication information after restoring the k data sets from the code stream.
The encoding process of the present application is described in detail above, and the method for partitioning point clouds based on the k-means clustering algorithm provided by the present application will be described in detail below. It should be noted that the method described below is merely an example, and the method for partitioning a point cloud applicable to the present application is not limited thereto.
Partitioning the point cloud based on a k-means clustering algorithm first requires determining that the point cloud needs to be partitioned into several parts, i.e., determining the value of k (which can be determined by a skilled person). After the value of k is determined, the multiple point cloud data can be divided into k data sets by using a k-means clustering algorithm. The k-means clustering algorithm comprises the following steps:
determining k initial barycentric positions, wherein the k initial barycentric positions are positioned in a space corresponding to the plurality of point cloud data;
and dividing the point cloud data into k data sets according to the k initial barycentric positions, wherein the k initial barycentric positions correspond to the k data sets one by one.
The gravity center position refers to the mass center of the object and can be obtained by averaging the position coordinates of all the cloud points in the region. The degree of density of all points within a point cluster can be reflected by calculating the distance of the points within the point cluster to the position of the center of gravity.
Fig. 6 shows a process of partitioning a point cloud based on a k-means clustering algorithm provided by the present application.
After the k-means clustering algorithm starts to be executed, the clustering algorithm module acquires the value of k and the plurality of point cloud data in S110, and the following steps are started to be executed.
a) And initializing the gravity center position of each point cloud cluster, and calculating the initial distance sum.
The initial barycentric location of each point cloud cluster can be determined by the following three schemes.
The first scheme is as follows: and determining the positions of the first k input point cloud data in the plurality of point cloud data as k initial barycentric positions.
Scheme II: randomly determining k point cloud data from the plurality of point cloud data; the positions of the k point cloud data are determined as k initial barycentric positions.
For example, the number of the point cloud data is M, M is a positive integer greater than 1, and the subscript of each point cloud data is 0 to M-1; the clustering algorithm module can generate non-repeating random integers which are greater than or equal to 0 and less than or equal to M-1, select point cloud data with subscripts of the random integers, and take the positions of the point cloud data as the gravity centers of the point cloud clusters.
The third scheme is as follows: determining reference point cloud data from the plurality of point cloud data; determining k index values according to the index values of the datum point cloud data and the index value step length; and determining the positions of the k point cloud data corresponding to the k index values as k initial barycentric positions.
For example, the number of the point cloud data is M, M is a positive integer greater than 1, the subscript of each point cloud data is 0 to M-1, the subscript of the reference point cloud data is i, and i is one of 0 to M-1; the clustering algorithm module may determine the location of the k initial centers of gravity based on equation (1).
Index=i+step*j,0≤j≤k (1)
In the formula (1), Index is a subscript of point cloud data corresponding to k initial centroids, step is a step size, and j is a step number.
After determining each initial gravity center position, the clustering algorithm module can calculate the initial distance sum of each point cloud cluster, wherein the initial distance sum is the sum of the distances from each point cloud data in one point cloud cluster to the initial gravity center position of the point cloud cluster. The initial distance sum can be calculated by formula (2). The initial distance sum may be a larger value of the floating point type numbers.
In the formula (2), Di,jRepresenting the distance of the point cloud data j from the initial barycentric location i. x is the number ofi、yiAnd ziValues, x, representing the three-dimensional coordinates of the initial barycentric position i in a Cartesian coordinate systemj、yjAnd zjAnd representing the value of the three-dimensional coordinate of the point cloud data j in a Cartesian coordinate system.
Subsequently, the clustering algorithm module may perform the following steps.
b) And adjusting the point cloud cluster.
Taking one of the k point cloud clusters as an example, adjusting the point cloud cluster refers to increasing or decreasing the point cloud data in the point cloud cluster. And the adjusted point cloud cluster is the current point cloud cluster.
c) And determining the gravity center position of the current point cloud cluster, and calculating the current distance sum.
Since the point cloud data in the point cloud cluster changes, the barycentric position of the current point cloud cluster needs to be determined again. The position of the center of gravity of the current point cloud cluster may be determined according to formula (3), formula (4), and formula (5).
In the above 3 formulas, totalNumber represents the number of all point cloud data in the current point cloud cluster, and xiX-axis coordinate representing point cloud data i in the current point cloud cluster, x-axis coordinate representing the position of the center of gravity of the current point cloud cluster, yiY-axis coordinates representing point cloud data i in the current point cloud cluster, y-axis coordinates representing the position of the center of gravity of the current point cloud cluster, and ziAnd z represents the z-axis coordinate of the point cloud data i in the current point cloud cluster, and z represents the z-axis coordinate of the gravity center position of the current point cloud cluster.
After determining the center of gravity position of the current point cloud cluster, the clustering algorithm module may calculate a sum of distances from the center of gravity position of each point cloud data of the current point cloud cluster, that is, a current distance sum, according to formula (2).
d) And determining whether the current distance sum meets a preset condition.
Presetting conditions, namely iteration termination conditions, and if the current distance sum meets the preset conditions, outputting a clustering result and terminating the clustering algorithm flow; and if the current distance sum does not meet the preset condition, continuously adjusting the point cloud cluster, and repeating the step b) and the step c) until the current distance sum meets the preset condition.
The preset condition may be one or more of the following conditions.
Preset Condition one, SUMi+1Greater than SUMi。
SUMiAfter the gravity center position of the point cloud cluster is determined for the ith time, each point cloud data in the point cloud cluster is obtainedThe sum of the distances of the initial barycentric locations of the point cloud clusters; SUMi+1And after the gravity center position of the point cloud cluster is determined for the (i + 1) th time, the sum of the distances from each point cloud data in the point cloud cluster to the initial gravity center position of the point cloud cluster.
For example, the initial barycentric location is the barycentric location of the first determined point cloud cluster, the initial distance SUM is SUM1After the gravity center position of the point cloud cluster is determined for the second time, the SUM of the distances from each point cloud data in the point cloud cluster to the initial gravity center position of the point cloud cluster is SUM2(ii) a If SUM2Greater than SUM1Then SUM2Meeting the preset conditions, and adding SUM1Outputting the corresponding point cloud cluster as a clustering result; if SUM2Smaller than SUM1Then SUM2If the preset condition I is not met, repeating the step b) and the step c), and calculating the SUM of the distance after the gravity center position of the point cloud cluster is determined for the third time3According to SUM3And SUM2(ii) determining the SUM3Whether the preset condition one is met or not.
Second preset condition, SUMi+1And SUMiIs less than or equal to the third distance threshold.
For example, if SUM2And SUM1Is greater than the third distance threshold, then the SUM is determined2If the preset condition is not met, repeating the step b) and the step c), and calculating the SUM of the distance after the gravity center position of the point cloud cluster is determined for the third time3According to SUM3And SUM2Is compared with a third distance threshold value to determine the SUM3Whether the preset condition two is met or not.
The beneficial effect of above-mentioned scheme lies in: when SUM2Greater than SUM1When, if SUM2And SUM1If the difference is larger, it indicates that the SUM is1It is likely that not the global minimum, but only the local minimum (i.e., the minimum), further iterations are required to determine the global minimum of the distance sum. Therefore, the second preset condition can improve the accuracy of the clustering result.
And a third preset condition, namely i +1 is equal to a preset time threshold.
The clustering algorithm module canTo determine whether to stop the iteration based on a relationship between the number of times the center of gravity is determined and a number threshold. For example, if the time threshold is 3, if SUM2If the preset condition is not met, iteration can be continued to determine the SUM3Due to SUM3Is the SUM of the distances determined after the third determination of the center of gravity, the number of times the center of gravity is determined being equal to a preset number threshold, and therefore, regardless of the SUM3If the preset conditions are met, stopping iteration and adding the SUM2And SUM3And outputting the point cloud cluster corresponding to the value with the smaller median value as a clustering result. The scheme can reduce the time overhead required for dividing a plurality of point cloud data into k data sets.
It should be noted that the third preset condition can be used in combination with the first preset condition and/or the second preset condition, and the second preset condition can also be used in combination with the first preset condition.
The point cloud encoding method provided by the present application is described above in detail, and the point cloud decoding method is substantially the same as the inverse process of the point cloud encoding method. For example, the coding system merges k code stream segments to obtain a code stream, and the decoding system may divide the received code stream into k code stream segments and decode the k code stream segments respectively; for another example, the encoding system divides the complete point cloud into k data sets and then encodes the k data sets to generate k code stream segments, and the decoding system can decode the k code stream segments to generate k data sets and merge the k data sets to obtain the complete point cloud. Therefore, even though the processing procedure of the decoding system is not explicitly written below in individual places, the processing procedure of the decoding system can be clearly understood by those skilled in the art based on the processing procedure of the encoding system.
Fig. 7 illustrates a point cloud decoding method provided in the present application. The method 200 comprises:
s210, point cloud data code stream is obtained.
The point cloud data code stream is obtained by performing arithmetic coding and code stream segment combination processing in the method 100.
S220, decoding the point cloud data code stream to generate k data sets, wherein the k data sets comprise point cloud data obtained by decoding the point cloud data code stream, and k is a positive integer greater than or equal to 2.
The k data sets in S220 are the k data sets in the method 100. The k data sets are k point cloud clusters obtained by dividing the complete point cloud, and the density of point cloud data in each point cloud cluster is greater than that of the complete point cloud, so that the compression efficiency of coding the k point cloud clusters is higher than that of directly coding the complete point cloud; correspondingly, when decoding, the decoding efficiency of analyzing the code stream into k data sets is also higher than the decoding efficiency of directly analyzing the code stream into complete point clouds.
After the decoding system generates k data sets, the following steps can be performed.
And S230, merging the k data sets to obtain complete point clouds.
In the process of decoding the point cloud data code stream, the point cloud data code stream may be divided into k code stream segments, and then the k code stream segments are decoded respectively to generate k data sets. The decoding system can divide the point cloud data code stream into k code stream segments according to k position indication information in the point cloud data code stream, wherein the position indication information is used for indicating the position of data in the point cloud data code stream in an initialization space.
The indication information may be a start code + sequence number, and the sequence number is used to identify a hierarchy to which the point cloud data belongs, for example, the hierarchy may be a sequence level, or a frame level, or a packet level.
When the decoding system decodes the k code stream segments, the decoding system may perform parallel decoding processing on the k code stream segments, or may perform serial decoding processing on the k code stream segments.
Fig. 8 and 9 show these two decoding methods, respectively.
As shown in fig. 8, after the decoding system generates k code stream segments, the k code stream segments are sequentially input to a decoder for decoding. The decoding method, namely the serial decoding method, can complete decoding only by one decoder, so that the consumption of computing resources for decoding can be reduced by using the serial decoding method.
As shown in fig. 9, after the decoding system generates k code stream segments, the k code stream segments are respectively input to at least two decoders for decoding. If the number of the decoders is larger than or equal to k, the k code stream segments can be decoded simultaneously; if the number of the decoders is less than k, part of the k code stream segments can be decoded simultaneously. The decoding method, namely the parallel decoding method, can simultaneously decode at least two code stream fragments, so that the decoding efficiency can be improved by using the parallel decoding method.
Most of the process of decoding k code stream segments is the same as the decoding method shown in fig. 2, and is not described herein again.
Different from the decoding method shown in fig. 2, the decoders in fig. 8 and 9 need to merge k data sets after generating the k data sets, so as to generate the complete point cloud.
In addition, after the decoding system processes k code stream segments through arithmetic decoding, k position information to be decoded and possibly k attribute information to be decoded are obtained. The decoding system can respectively perform position decoding (for example, octree decoding) on the k pieces of position information to be decoded to obtain k pieces of initialization space containing k data sets; optionally, the decoding system may further perform attribute decoding (e.g., fixed length code decoding or hierarchical decoding) on the k pieces of attribute information to be decoded to obtain the k pieces of attribute information.
Method embodiments of the present application are described in detail above in conjunction with fig. 1-9, and apparatus embodiments of the present application are described in detail below in conjunction with fig. 10 and 11. It is to be understood that the description of the method embodiments corresponds to the description of the apparatus embodiments, and therefore reference may be made to the preceding method embodiments for parts not described in detail.
Fig. 10 is a schematic configuration diagram of an encoding apparatus provided. The apparatus 1000 shown in fig. 10 comprises: a memory 1010 and a processor 1020.
The memory 1010 may be used to store code. The processor 1020 is operable to read the code in the memory 1010 to perform the following operations: acquiring a plurality of point cloud data; dividing the plurality of point cloud data into k data sets according to the positions of the plurality of point cloud data, wherein the k data sets comprise a first data set, the distance between at least two point cloud data in the first data set is smaller than or equal to a first distance threshold, and k is a positive integer greater than or equal to 2; and respectively encoding the k data sets.
Optionally, the k data sets include a second data set and a third data set, and a distance between the second data set and the third data set is greater than or equal to a second distance threshold.
Optionally, a distance between the point cloud data of any two adjacent positions in the first data set is less than or equal to the first distance threshold.
Optionally, the processor 1020 is specifically configured to perform: determining k initial barycentric positions, wherein the k initial barycentric positions are positioned in a space corresponding to the plurality of point cloud data; and dividing the point cloud data into k data sets according to the k initial barycentric positions, wherein the k initial barycentric positions correspond to the k data sets one by one.
Optionally, the processor 1020 is specifically configured to perform: determining SUMi+1And SUMiThe SUMi+1The SUM is the SUM of the distances from a center of gravity position i +1 to at least one point cloud data corresponding to the center of gravity position i +1iThe method comprises the steps of calculating a sum of distances from a barycentric position i to at least one point cloud data corresponding to the barycentric position i, wherein the barycentric position i +1 is a barycentric position determined at the i +1 th time, the barycentric position i is a barycentric position determined at the i th time, the barycentric position i +1 is a barycentric position obtained after the barycentric position i is updated, and i is a positive integer; when the SUM is ini+1Determining the SUM when a preset condition is satisfiedi+1And the SUMiThe point cloud data corresponding to the smaller value belongs to a data set.
Optionally, the preset condition includes: the SUMi+1Is larger than the SUMi。
Optionally, the preset condition includes: the SUMi+1And the SUMiIs less than or equal to the third distance threshold.
Optionally, the preset condition includes: the i +1 is equal to a preset time threshold.
Optionally, the processor 1020 is specifically configured to perform: and determining the positions of the first k input point cloud data in the plurality of point cloud data as the k initial barycentric positions.
Optionally, the processor 1020 is specifically configured to perform: randomly determining k point cloud data from the plurality of point cloud data; determining the positions of the k point cloud data as the k initial barycentric positions.
Optionally, the processor 1020 is specifically configured to perform: determining reference point cloud data from the plurality of point cloud data; determining k index values according to the index values of the datum point cloud data and the index value step length; and determining the positions of the k point cloud data corresponding to the k index values as the k initial barycentric positions.
Optionally, the processor 1020 is specifically configured to perform: acquiring a plurality of point cloud packets, wherein the plurality of point cloud packets correspond to the same timestamp and equipment identification; and acquiring the plurality of point cloud data from the plurality of point cloud packets.
Optionally, the processor 1020 is specifically configured to perform: performing parallel encoding on the k data sets; alternatively, the k data sets are encoded serially.
Optionally, the processor 1020 is specifically configured to perform: respectively carrying out octree coding on the position information of the k data sets; and encoding the attribute information of the k data sets according to the result of the octree encoding.
Optionally, the processor 1020 is specifically configured to perform: and carrying out hierarchical coding on the attribute information of the k data sets according to the result of the octree coding.
Optionally, the processor 1020 is specifically configured to perform: and carrying out fixed-length code coding on the attribute information of the k data sets according to the result of the octree coding.
Optionally, the processor 1020 is specifically configured to perform: performing arithmetic coding on the result of the position information coding and the result of the attribute information coding to generate k code stream segments; and merging the k code stream segments to generate a code stream.
Optionally, the processor 1020 is specifically configured to perform: and writing the position indication information of the k initialization spaces in the code stream.
Fig. 11 is a schematic structural diagram of a decoding apparatus provided in the present application. The apparatus 1100 of FIG. 11 includes: a memory 1110 and a processor 1120.
Optionally, the processor 1120 is specifically configured to perform: dividing the point cloud data code stream into k code stream segments; and respectively decoding the k code stream fragments to generate the k data sets.
Optionally, the processor 1120 is specifically configured to perform: dividing the point cloud data code stream into k code stream segments according to k position indication information in the point cloud data code stream, wherein the position indication information is used for indicating the position of data in the point cloud data code stream in an initialization space.
Optionally, the processor 1120 is specifically configured to perform: performing parallel decoding processing on the k code stream fragments; or, performing serial decoding processing on the k code stream segments.
Optionally, the processor 1120 is specifically configured to perform: and respectively carrying out arithmetic decoding on the k code stream fragments to obtain k position information to be decoded and k attribute information to be decoded.
Optionally, the processor 1120 is specifically configured to perform: performing octree decoding on the k pieces of position information to be decoded respectively to obtain k pieces of position information; and respectively decoding the k attribute information to be decoded according to the k position information to obtain k attribute information.
Optionally, the processor 1120 is specifically configured to perform: and respectively carrying out hierarchical decoding on the k pieces of position information to be decoded according to the k pieces of position information.
Optionally, the processor 1120 is specifically configured to perform: and respectively carrying out fixed-length code decoding on the k pieces of position information to be decoded according to the k pieces of position information.
In the above embodiments, all or part of the implementation may be realized by software, hardware, firmware or any other combination. When implemented in software, may be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer instructions. When loaded and executed on a computer, cause the processes or functions described in accordance with the embodiments of the invention to occur, in whole or in part. The computer may be a general purpose computer, a special purpose computer, a network of computers, or other programmable device. The computer instructions may be stored on a computer readable storage medium or transmitted from one computer readable storage medium to another, for example, from one website, computer, server, or data center to another website, computer, server, or data center via wire (e.g., coaxial cable, fiber optic, Digital Subscriber Line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.). The computer-readable storage medium can be any available medium that can be accessed by a computer or a data storage device, such as a server, a data center, etc., that incorporates one or more of the available media. The usable medium may be a magnetic medium (e.g., a floppy disk, a hard disk, a magnetic tape), an optical medium (e.g., a Digital Video Disk (DVD)), or a semiconductor medium (e.g., a Solid State Disk (SSD)), among others.
Those of ordinary skill in the art will appreciate that the various illustrative elements and algorithm steps described in connection with the embodiments disclosed herein may be implemented as electronic hardware or combinations of computer software and electronic hardware. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the implementation. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present application.
In the several embodiments provided in the present application, it should be understood that the disclosed system, apparatus and method may be implemented in other ways. For example, the above-described apparatus embodiments are merely illustrative, and for example, the division of the units is only one logical division, and other divisions may be realized in practice, for example, a plurality of units or components may be combined or integrated into another system, or some features may be omitted, or not executed. In addition, the shown or discussed mutual coupling or direct coupling or communication connection may be an indirect coupling or communication connection through some interfaces, devices or units, and may be in an electrical, mechanical or other form.
The units described as separate parts may or may not be physically separate, and parts displayed as units may or may not be physical units, may be located in one place, or may be distributed on a plurality of network units. Some or all of the units can be selected according to actual needs to achieve the purpose of the solution of the embodiment.
In addition, functional units in the embodiments of the present application may be integrated into one processing unit, or each unit may exist alone physically, or two or more units are integrated into one unit.
The above description is only for the specific embodiments of the present application, but the scope of the present application is not limited thereto, and any person skilled in the art can easily conceive of the changes or substitutions within the technical scope of the present application, and shall be covered by the scope of the present application. Therefore, the protection scope of the present application shall be subject to the protection scope of the claims.
Claims (50)
1. A method of encoding point cloud data, comprising:
acquiring a plurality of point cloud data;
dividing the plurality of point cloud data into k data sets according to the positions of the plurality of point cloud data, wherein the k data sets comprise a first data set, the distance between at least two point cloud data in the first data set is smaller than or equal to a first distance threshold, and k is a positive integer greater than or equal to 2;
and respectively encoding the k data sets.
2. The method of claim 1, wherein the k data sets comprise a second data set and a third data set, and wherein a distance between the second data set and the third data set is greater than or equal to a second distance threshold.
3. The method of claim 1 or 2, wherein a distance between point cloud data of any two adjacent locations in the first data set is less than or equal to the first distance threshold.
4. The method of any of claims 1 to 3, wherein the dividing the plurality of point cloud data into k data sets according to the locations of the plurality of point cloud data comprises:
determining k initial barycentric positions, wherein the k initial barycentric positions are positioned in a space corresponding to the plurality of point cloud data;
and dividing the point cloud data into k data sets according to the k initial barycentric positions, wherein the k initial barycentric positions correspond to the k data sets one by one.
5. The method of claim 4, wherein the dividing the plurality of point cloud data into k data sets according to the k initial barycentric locations comprises:
determining SUMi+1And SUMiThe SUMi+1The SUM is the SUM of the distances from a center of gravity position i +1 to at least one point cloud data corresponding to the center of gravity position i +1iThe method comprises the steps of calculating a sum of distances from a barycentric position i to at least one point cloud data corresponding to the barycentric position i, wherein the barycentric position i +1 is a barycentric position determined at the i +1 th time, the barycentric position i is a barycentric position determined at the i th time, the barycentric position i +1 is a barycentric position obtained after the barycentric position i is updated, and i is a positive integer;
when the SUM is ini+1Determining the SUM when a preset condition is satisfiedi+1And the SUMiThe point cloud data corresponding to the smaller value belongs to a data set.
6. The method according to claim 5, wherein the preset conditions include: the SUMi+1Is larger than the SUMi。
7. The method according to claim 5 or 6, wherein the preset conditions include: the SUMi+1And the SUMiIs less than or equal to the third distance threshold.
8. The method according to any one of claims 5 to 7, characterized in that the preset conditions comprise: the i +1 is equal to a preset time threshold.
9. The method of any one of claims 4 to 8, wherein said determining k initial barycentric locations comprises:
and determining the positions of the first k input point cloud data in the plurality of point cloud data as the k initial barycentric positions.
10. The method of any one of claims 4 to 8, wherein said determining k initial barycentric locations comprises:
randomly determining k point cloud data from the plurality of point cloud data;
determining the positions of the k point cloud data as the k initial barycentric positions.
11. The method of any one of claims 4 to 8, wherein said determining k initial barycentric locations comprises:
determining reference point cloud data from the plurality of point cloud data;
determining k index values according to the index values of the datum point cloud data and the index value step length;
and determining the positions of the k point cloud data corresponding to the k index values as the k initial barycentric positions.
12. The method of any one of claims 1 to 11, wherein the obtaining a plurality of point cloud data comprises:
acquiring a plurality of point cloud packets, wherein the plurality of point cloud packets correspond to the same timestamp and equipment identification;
and acquiring the plurality of point cloud data from the plurality of point cloud packets.
13. The method according to any one of claims 1 to 12, wherein said encoding said k data sets separately comprises:
and carrying out parallel coding or serial coding on the k data sets.
14. The method according to any one of claims 1 to 13, wherein said encoding said k data sets separately comprises:
respectively encoding the position information of the k data sets;
and/or the presence of a gas in the gas,
and respectively encoding the attribute information of the k data sets.
15. The method of claim 14, wherein the encoding the attribute information of the k data sets respectively comprises:
and performing hierarchical coding or fixed-length code coding on the attribute information of the k data sets respectively.
16. The method of claim 14, wherein encoding the position information of the k data sets respectively comprises:
generating k initialization spaces respectively containing the k data sets;
and respectively carrying out space division on the k initialization spaces to obtain k division results.
17. The method of claim 16, wherein encoding the position information of the k data sets respectively comprises:
and writing the position indication information of the k initialization spaces in the code stream.
18. The method of any one of claims 1 to 17, wherein encoding the k sets of data separately comprises:
performing arithmetic coding on the result of the position information coding and/or the result of the attribute information coding of each data set in the k data sets to generate k code stream segments;
and merging the k code stream segments to generate a code stream.
19. A method of decoding point cloud data, comprising:
acquiring a point cloud data code stream;
decoding the point cloud data code stream to generate k data sets, wherein the k data sets comprise point cloud data obtained by decoding the point cloud data code stream, and k is a positive integer greater than or equal to 2;
and merging the k data sets to obtain complete point cloud.
20. The method of claim 19, wherein the decoding the point cloud data code stream to generate k data sets comprises:
dividing the point cloud data code stream into k code stream segments;
and respectively decoding the k code stream fragments to generate the k data sets.
21. The method of claim 20, wherein the dividing the stream of point cloud data into k stream segments comprises:
dividing the point cloud data code stream into k code stream segments according to k position indication information in the point cloud data code stream, wherein the position indication information is used for indicating the position of data in the point cloud data code stream in an initialization space.
22. The method according to claim 20 or 21, wherein the performing decoding processing on the k code stream segments respectively comprises:
performing parallel decoding processing on the k code stream fragments; or,
and performing serial decoding processing on the k code stream fragments.
23. The method according to any one of claims 20 to 22, wherein said performing decoding processing on the k code-stream segments respectively comprises:
and respectively carrying out arithmetic decoding on the k code stream fragments to obtain k position information to be decoded and/or k attribute information to be decoded.
24. The method according to claim 23, wherein said decoding the k code-stream segments respectively further comprises:
and respectively carrying out position decoding on the k pieces of position information to be decoded to obtain k pieces of initialization space containing the k pieces of data sets.
25. The method according to claim 23, wherein said performing decoding processing on the k code-stream segments respectively comprises:
and respectively carrying out hierarchical decoding or fixed length code decoding on the k attribute information to be decoded.
26. A point cloud data encoding device, comprising:
a memory for storing code;
a processor to read code in the memory to perform the following operations:
acquiring a plurality of point cloud data;
dividing the plurality of point cloud data into k data sets according to the positions of the plurality of point cloud data, wherein the k data sets comprise a first data set, the distance between at least two point cloud data in the first data set is smaller than or equal to a first distance threshold, and k is a positive integer greater than or equal to 2;
and respectively encoding the k data sets.
27. The apparatus of claim 26, wherein the k data sets comprise a second data set and a third data set, and wherein a distance between the second data set and the third data set is greater than or equal to a second distance threshold.
28. The apparatus of claim 26 or 27, wherein a distance between point cloud data of any two adjacent locations in the first data set is less than or equal to the first distance threshold.
29. The apparatus of any one of claims 26 to 28, wherein the dividing the plurality of point cloud data into k data sets according to the locations of the plurality of point cloud data comprises:
determining k initial barycentric positions, wherein the k initial barycentric positions are positioned in a space corresponding to the plurality of point cloud data;
and dividing the point cloud data into k data sets according to the k initial barycentric positions, wherein the k initial barycentric positions correspond to the k data sets one by one.
30. The apparatus of claim 29, wherein the dividing the plurality of point cloud data into k data sets according to the k initial barycentric locations comprises:
determining SUMi+1And SUMiThe SUMi+1The SUM is the SUM of the distances from a center of gravity position i +1 to at least one point cloud data corresponding to the center of gravity position i +1iThe method comprises the steps of calculating a sum of distances from a barycentric position i to at least one point cloud data corresponding to the barycentric position i, wherein the barycentric position i +1 is a barycentric position determined at the i +1 th time, the barycentric position i is a barycentric position determined at the i th time, the barycentric position i +1 is a barycentric position obtained after the barycentric position i is updated, and i is a positive integer;
when the SUM is ini+1Determining the SUM when a preset condition is satisfiedi+1And the SUMiThe point cloud data corresponding to the smaller value belongs to a data set.
31. The apparatus of claim 30, wherein the preset condition comprises: the SUMi+1Is larger than the SUMi。
32. The apparatus according to claim 30 or 31, wherein the preset conditions comprise: the SUMi+1And the SUMiIs less than or equal to the third distance threshold.
33. The apparatus according to any one of claims 30 to 32, wherein the preset conditions include: the i +1 is equal to a preset time threshold.
34. The apparatus of any one of claims 29 to 33, wherein said determining k initial barycentric locations comprises:
and determining the positions of the first k input point cloud data in the plurality of point cloud data as the k initial barycentric positions.
35. The apparatus of any one of claims 29 to 33, wherein said determining k initial barycentric locations comprises:
randomly determining k point cloud data from the plurality of point cloud data;
determining the positions of the k point cloud data as the k initial barycentric positions.
36. The apparatus of any one of claims 29 to 33, wherein said determining k initial barycentric locations comprises:
determining reference point cloud data from the plurality of point cloud data;
determining k index values according to the index values of the datum point cloud data and the index value step length;
and determining the positions of the k point cloud data corresponding to the k index values as the k initial barycentric positions.
37. The apparatus of any one of claims 26 to 36, wherein the obtaining a plurality of point cloud data comprises:
acquiring a plurality of point cloud packets, wherein the plurality of point cloud packets correspond to the same timestamp and equipment identification;
and acquiring the plurality of point cloud data from the plurality of point cloud packets.
38. The apparatus according to any one of claims 26 to 37, wherein said encoding said k data sets respectively comprises:
and carrying out parallel coding or serial coding on the k data sets.
39. The apparatus according to any one of claims 26 to 38, wherein said encoding said k data sets respectively comprises:
respectively encoding the position information of the k data sets;
and/or the presence of a gas in the gas,
and respectively encoding the attribute information of the k data sets.
40. The apparatus of claim 39, wherein said encoding attribute information of said k data sets respectively comprises:
and performing hierarchical coding or fixed-length code coding on the attribute information of the k data sets respectively.
41. The apparatus of claim 39, wherein encoding the position information of the k data sets respectively comprises:
generating k initialization spaces respectively containing the k data sets;
and respectively carrying out space division on the k initialization spaces to obtain k division results.
42. The apparatus of claim 41, wherein encoding the position information of the k data sets respectively comprises:
and writing the position indication information of the k initialization spaces in the code stream.
43. The apparatus according to any one of claims 26 to 42, wherein the encoding of the k data sets respectively comprises:
performing arithmetic coding on the result of the position information coding and/or the result of the attribute information coding of each data set in the k data sets to generate k code stream segments;
and merging the k code stream segments to generate a code stream.
44. A point cloud data decoding apparatus, comprising:
a memory for storing code;
a processor to read code in the memory to perform the following operations:
acquiring a point cloud data code stream;
decoding the point cloud data code stream to generate k data sets, wherein the k data sets comprise point cloud data obtained by decoding the point cloud data code stream, and k is a positive integer greater than or equal to 2;
and merging the k data sets to obtain complete point cloud.
45. The apparatus of claim 44, wherein the decoding the point cloud data code stream to generate k data sets comprises:
dividing the point cloud data code stream into k code stream segments;
and respectively decoding the k code stream fragments to generate the k data sets.
46. The apparatus of claim 45, wherein the dividing the stream of point cloud data into k stream segments comprises:
dividing the point cloud data code stream into k code stream segments according to k position indication information in the point cloud data code stream, wherein the position indication information is used for indicating the position of data in the point cloud data code stream in an initialization space.
47. The apparatus according to claim 45 or 46, wherein said performing decoding processing on the k code stream segments respectively includes:
and performing parallel decoding processing or serial encoding processing on the k code stream fragments.
48. The apparatus according to any one of claims 45 to 47, wherein said performing decoding processing on the k code stream segments respectively comprises:
and respectively carrying out arithmetic decoding on the k code stream fragments to obtain k position information to be decoded and/or k attribute information to be decoded.
49. The apparatus according to claim 48, wherein said decoding the k code-stream segments respectively further comprises:
and respectively carrying out position decoding on the k pieces of position information to be decoded to obtain k pieces of initialization space containing the k pieces of data sets.
50. The apparatus according to claim 48, wherein said performing decoding processing on said k code-stream segments respectively comprises:
and respectively carrying out hierarchical decoding or fixed length code decoding on the k attribute information to be decoded.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2019/089593 WO2020237647A1 (en) | 2019-05-31 | 2019-05-31 | Point cloud data encoding method, encoding device, decoding method and decoding device |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111684808A true CN111684808A (en) | 2020-09-18 |
Family
ID=72451462
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980009142.5A Pending CN111684808A (en) | 2019-05-31 | 2019-05-31 | Point cloud data encoding method, encoding device, decoding method, and decoding device |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111684808A (en) |
WO (1) | WO2020237647A1 (en) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112184840A (en) * | 2020-09-22 | 2021-01-05 | 上海交通大学 | 3D point cloud compression system based on multi-scale structured dictionary learning |
CN112581552A (en) * | 2020-12-14 | 2021-03-30 | 深圳大学 | Self-adaptive blocking point cloud compression method and device based on voxels |
CN114124909A (en) * | 2021-09-14 | 2022-03-01 | 福州大学 | Point cloud real-time acquisition, compression and transmission system and method based on laser radar |
CN114329556A (en) * | 2021-12-30 | 2022-04-12 | 江苏瞭望神州大数据科技有限公司 | All-in-one machine with chip data protection function |
CN114387375A (en) * | 2022-01-17 | 2022-04-22 | 重庆市勘测院((重庆市地图编制中心)) | Multi-view rendering method for mass point cloud data |
WO2023025135A1 (en) * | 2021-08-23 | 2023-03-02 | 鹏城实验室 | Point cloud attribute coding method and apparatus, and point cloud attribute decoding method and apparatus |
WO2023173237A1 (en) * | 2022-03-12 | 2023-09-21 | Oppo广东移动通信有限公司 | Encoding method, decoding method, bit stream, encoder, decoder, and storage medium |
WO2023173238A1 (en) * | 2022-03-12 | 2023-09-21 | Oppo广东移动通信有限公司 | Encoding method, decoding method, code stream, encoder, decoder, and storage medium |
CN117635889A (en) * | 2024-01-26 | 2024-03-01 | 南京柠瑛智能科技有限公司 | Real-time rendering method, system and device for laser point cloud data |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107798721A (en) * | 2016-08-31 | 2018-03-13 | 北京四维图新科技股份有限公司 | A kind of processing method and processing device of cloud data and point cloud rendering intent and device |
CN108171761A (en) * | 2017-12-13 | 2018-06-15 | 北京大学 | A kind of point cloud inner frame coding method and device that transformation is schemed based on Fourier |
CN108632621A (en) * | 2018-05-09 | 2018-10-09 | 北京大学深圳研究生院 | A kind of point cloud genera compression method based on distinguishing hierarchy |
US20190080483A1 (en) * | 2017-09-14 | 2019-03-14 | Apple Inc. | Point Cloud Compression |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103458032B (en) * | 2013-09-03 | 2016-03-16 | 武汉大学 | The method and system of a kind of spatial data accessing rule dynamic statistics and Information Compression |
US9412040B2 (en) * | 2013-12-04 | 2016-08-09 | Mitsubishi Electric Research Laboratories, Inc. | Method for extracting planes from 3D point cloud sensor data |
CN106846406A (en) * | 2017-02-24 | 2017-06-13 | 上海坤辕检测科技有限公司 | A kind of point cloud coordinate system construction method for object dimensional measurement of coordinates |
CN109345619B (en) * | 2018-08-10 | 2023-05-16 | 华北电力大学(保定) | Mass point cloud space management method based on octree-like coding |
-
2019
- 2019-05-31 CN CN201980009142.5A patent/CN111684808A/en active Pending
- 2019-05-31 WO PCT/CN2019/089593 patent/WO2020237647A1/en active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107798721A (en) * | 2016-08-31 | 2018-03-13 | 北京四维图新科技股份有限公司 | A kind of processing method and processing device of cloud data and point cloud rendering intent and device |
US20190080483A1 (en) * | 2017-09-14 | 2019-03-14 | Apple Inc. | Point Cloud Compression |
CN108171761A (en) * | 2017-12-13 | 2018-06-15 | 北京大学 | A kind of point cloud inner frame coding method and device that transformation is schemed based on Fourier |
CN108632621A (en) * | 2018-05-09 | 2018-10-09 | 北京大学深圳研究生院 | A kind of point cloud genera compression method based on distinguishing hierarchy |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11836954B2 (en) | 2020-09-22 | 2023-12-05 | Shanghai Jiao Tong University | 3D point cloud compression system based on multi-scale structured dictionary learning |
CN112184840A (en) * | 2020-09-22 | 2021-01-05 | 上海交通大学 | 3D point cloud compression system based on multi-scale structured dictionary learning |
CN112581552A (en) * | 2020-12-14 | 2021-03-30 | 深圳大学 | Self-adaptive blocking point cloud compression method and device based on voxels |
WO2023025135A1 (en) * | 2021-08-23 | 2023-03-02 | 鹏城实验室 | Point cloud attribute coding method and apparatus, and point cloud attribute decoding method and apparatus |
CN114124909A (en) * | 2021-09-14 | 2022-03-01 | 福州大学 | Point cloud real-time acquisition, compression and transmission system and method based on laser radar |
CN114329556B (en) * | 2021-12-30 | 2023-03-24 | 江苏瞭望神州大数据科技有限公司 | All-in-one machine with chip data protection function |
CN114329556A (en) * | 2021-12-30 | 2022-04-12 | 江苏瞭望神州大数据科技有限公司 | All-in-one machine with chip data protection function |
CN114387375A (en) * | 2022-01-17 | 2022-04-22 | 重庆市勘测院((重庆市地图编制中心)) | Multi-view rendering method for mass point cloud data |
CN114387375B (en) * | 2022-01-17 | 2023-05-16 | 重庆市勘测院(重庆市地图编制中心) | Multi-view rendering method for massive point cloud data |
WO2023173237A1 (en) * | 2022-03-12 | 2023-09-21 | Oppo广东移动通信有限公司 | Encoding method, decoding method, bit stream, encoder, decoder, and storage medium |
WO2023173238A1 (en) * | 2022-03-12 | 2023-09-21 | Oppo广东移动通信有限公司 | Encoding method, decoding method, code stream, encoder, decoder, and storage medium |
CN117635889A (en) * | 2024-01-26 | 2024-03-01 | 南京柠瑛智能科技有限公司 | Real-time rendering method, system and device for laser point cloud data |
CN117635889B (en) * | 2024-01-26 | 2024-04-23 | 南京柠瑛智能科技有限公司 | Real-time rendering method, system and device for laser point cloud data |
Also Published As
Publication number | Publication date |
---|---|
WO2020237647A1 (en) | 2020-12-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111684808A (en) | Point cloud data encoding method, encoding device, decoding method, and decoding device | |
US11409998B2 (en) | Trimming search space for nearest neighbor determinations in point cloud compression | |
US10911787B2 (en) | Hierarchical point cloud compression | |
JP5932051B2 (en) | Predictive position decoding | |
WO2021000334A1 (en) | Data encoding method and device, data decoding method and device, and storage medium | |
US11615556B2 (en) | Context modeling of occupancy coding for point cloud coding | |
US20230048381A1 (en) | Context determination for planar mode in octree-based point cloud coding | |
US20220012945A1 (en) | Point cloud geometry upsampling | |
CN112384950A (en) | Point cloud encoding and decoding method and device | |
AU2021257883B2 (en) | Context modeling of occupancy coding for pointcloud coding | |
CN115086658B (en) | Point cloud data processing method and device, storage medium and encoding and decoding equipment | |
WO2023131126A1 (en) | Method, apparatus, and medium for point cloud coding | |
WO2024074121A1 (en) | Method, apparatus, and medium for point cloud coding | |
WO2024012381A1 (en) | Method, apparatus, and medium for point cloud coding | |
WO2024149309A1 (en) | Method, apparatus, and medium for point cloud coding | |
WO2024074122A1 (en) | Method, apparatus, and medium for point cloud coding | |
WO2024074123A1 (en) | Method, apparatus, and medium for point cloud coding | |
WO2023093785A1 (en) | Method, apparatus, and medium for point cloud coding | |
WO2024149258A1 (en) | Method, apparatus, and medium for point cloud coding | |
WO2023198168A1 (en) | Method, apparatus, and medium for point cloud coding | |
WO2024149203A1 (en) | Method, apparatus, and medium for point cloud coding | |
WO2023131132A1 (en) | Method, apparatus, and medium for point cloud coding | |
WO2023093865A1 (en) | Method, apparatus, and medium for point cloud coding | |
US20240242393A1 (en) | Method, apparatus and medium for point cloud coding | |
WO2023133710A1 (en) | Encoding method, decoding method, encoder, decoder, and encoding and decoding system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20200918 |