Gaussian splat point cloud compression method and apparatus, device, and storage medium

By grouping Gaussian point cloud data and calculating the differential data for compression, the problems of high compression complexity and poor reconstruction effect of Gaussian point cloud are solved, and efficient storage and reconstruction effects are achieved.

WO2025151979A1PCT designated stage expired Publication Date: 2025-07-24SHENZHEN XGRIDS-INNOVATION CO LTD
View PDF 6 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2024/072265
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-01-15
Publication Date
2025-07-24

AI Technical Summary

Technical Problem

In the prior art, Gaussian point cloud compression is high and the reconstruction effect is poor.

Method used

By dividing the Gaussian point cloud data with high similarity into a group, the basic Gaussian point cloud data for each group is determined, and the difference data between each Gaussian point cloud data and its own group is calculated, and then the difference data and basic Gaussian point cloud data are compressed.

Benefits of technology

It reduces the complexity of Gaussian point cloud compression, reduces the storage space requirement, and can better reconstruct large-space scenarios after decompression.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2024072265_24072025_PF_FP_ABST
    Figure CN2024072265_24072025_PF_FP_ABST
Patent Text Reader

Abstract

A Gaussian splat point cloud compression method and apparatus, a device, and a storage medium. The Gaussian splat point cloud compression method comprises: acquiring a plurality of pieces of Gaussian splat point cloud data, the Gaussian splat point cloud data comprising position data; on the basis of the position data of the plurality of pieces of Gaussian splat point cloud data, grouping the plurality of pieces of Gaussian splat point cloud data to obtain a plurality of groups of Gaussian splat point cloud data; determining basic Gaussian splat point cloud data of each group of Gaussian splat point cloud data among the plurality of groups of Gaussian splat point cloud data; for each piece of Gaussian splat point cloud data, determining the difference between the Gaussian splat point cloud data and the basic Gaussian splat point cloud data of the group to which the Gaussian splat point cloud data belongs as difference data of the Gaussian splat point cloud data; and compressing the difference data of each piece of Gaussian splat point cloud data and the basic Gaussian splat point cloud data of each group of Gaussian splat point cloud data. In this way, the complexity of Gaussian splat point cloud compression is reduced, and the Gaussian splat point cloud reconstruction effect is improved.
Need to check novelty before this filing date? Find Prior Art

Description

A Gaussian point cloud compression method, device, equipment and storage medium Technical Field

[0001] The embodiments of the present application relate to the technical field of Gaussian point cloud data processing, and specifically to a Gaussian point cloud compression method, apparatus, device, and storage medium. Background Art

[0002] Compared with ordinary point cloud data that uses a simple 3D coordinate point set (each point contains (x, y, z) coordinates) to represent objects or scenes, Gaussian point cloud (Gaussian Splat Point Cloud) contains not only position data, but also normal data, color data, spherical harmonic coefficient data, scaling coefficient data, rotation coefficient data, etc. This makes Gaussian point cloud more suitable for the field of real scene reconstruction. For example, the data used for highly realistic 3D object reconstruction, large scene reconstruction, virtual shooting and visual effects are all represented as Gaussian point clouds.

[0003] When large spatial scenes are represented using Gaussian point clouds, storage devices often need to process tens of millions or even billions of Gaussian point cloud data. Each Gaussian point cloud consists of 248 floating-point numbers, occupying a total of 992 bytes. This means that a large amount of disk space is required to store this Gaussian point cloud data. Therefore, Gaussian point clouds for large spatial scenes are typically compressed for storage and decompressed before rendering to complete the reconstruction of the large spatial scene.

[0004] When compressing Gaussian point clouds for large spatial scenes that require real-time processing and data transmission, Sparse Gaussian Process (SGP) is a commonly used compression method. SGP compresses point clouds by finding a sparse representation in high-dimensional space, thereby significantly reducing the dimensionality of the data, reducing memory usage and communication bandwidth requirements. However, the computational complexity of SGP is relatively high and requires more computing resources. Moreover, when using SGP-compressed Gaussian point clouds to reconstruct large spatial scenes, since the data used is a sparse representation of the original Gaussian point cloud data, the reconstructed large spatial scene cannot achieve the accuracy of the original large spatial scene.

[0005] Therefore, how to reduce the complexity of Gaussian point cloud compression and improve the effect of Gaussian point cloud reconstruction has become a technical problem that needs to be solved urgently.

[0006] Summary of the Invention

[0007] In view of the above problems, the embodiments of the present application provide a Gaussian point cloud compression method, apparatus, device and storage medium, which are used to solve the problems of high complexity and poor reconstruction effect of Gaussian point cloud compression in the prior art.

[0008] According to one aspect of an embodiment of the present application, a Gaussian point cloud compression method is provided, the method comprising: acquiring a plurality of Gaussian point cloud data, wherein the Gaussian point cloud data includes position data; grouping the plurality of Gaussian point cloud data according to their position data to obtain a plurality of groups of Gaussian point cloud data; determining basic Gaussian point cloud data of each group of Gaussian point cloud data in the plurality of groups of Gaussian point cloud data; for each Gaussian point cloud data, determining the difference between the Gaussian point cloud data and the basic Gaussian point cloud data of the group to which it belongs as difference data of the Gaussian point cloud data; and compressing the difference data of each Gaussian point cloud data and the basic Gaussian point cloud data of each group of Gaussian point cloud data.

[0009] In an optional manner, multiple Gaussian point cloud data are grouped according to their position data to obtain multiple groups of Gaussian point cloud data, including: determining a bounding box according to the position data of the multiple Gaussian point cloud data, wherein the bounding box is used to enclose the multiple Gaussian point cloud data, and the bounding box is divided into multiple sub-bounding boxes; determining the nearest sub-bounding box of each Gaussian point cloud data, wherein the nearest sub-bounding box is the sub-bounding box that is closest to the Gaussian point cloud data among the multiple sub-bounding boxes; and grouping the Gaussian point cloud data with the same nearest sub-bounding box into the same group to obtain multiple groups of Gaussian point cloud data.

[0010] In an optional manner, the bounding box is divided into a preset number of sub-bounding boxes of the same size.

[0011] In an optional manner, determining the basic Gaussian point cloud data of each group of Gaussian point cloud data in multiple groups of Gaussian point cloud data includes: taking the average value of the point cloud data of each group of Gaussian point cloud data as the basic Gaussian data of the group of Gaussian point cloud data, or taking the minimum value of the point cloud data in each group of Gaussian point cloud data as the basic Gaussian data of the group of Gaussian point cloud data.

[0012] In an optional manner, the Gaussian point cloud data also includes spherical harmonic coefficient data and color data, the basic Gaussian point cloud data includes position data, spherical harmonic coefficient data and color data, and the difference data of the Gaussian point cloud data includes position difference data, spherical harmonic coefficient difference data and color difference data; the difference data of each Gaussian point cloud data and the basic Gaussian point cloud data of each group of Gaussian point cloud data are compressed, including: obtaining the position difference data, spherical harmonic coefficient difference data and color difference data of multiple Gaussian point cloud data from the difference data of multiple Gaussian point cloud data; compressing the position difference data, spherical harmonic coefficient difference data and color difference data of multiple Gaussian point cloud data and the basic Gaussian point cloud data respectively, so that the data loss degree of the compressed position difference data is less than the data loss degree of the compressed spherical harmonic coefficient difference data and the data loss degree of the compressed color difference data.

[0013] In an optional manner, in the steps of respectively compressing position difference data, spherical harmonic coefficient difference data and color difference data of multiple Gaussian point cloud data and basic Gaussian point cloud data so that the data loss degree of the compressed position difference data is less than the data loss degree of the compressed spherical harmonic coefficient difference data and the data loss degree of the compressed color difference data, the compression of the position difference data includes the following steps: encoding the position difference data of the multiple Gaussian point cloud data into one-dimensional data; and compressing the one-dimensional data into binary data.

[0014] In an optional manner, the color difference data of the plurality of Gaussian point cloud data are compressed into a texture compression format.

[0015] According to another aspect of an embodiment of the present application, a Gaussian point cloud compression device is provided, including: an acquisition module for acquiring multiple Gaussian point cloud data, wherein the Gaussian point cloud data includes position data; a grouping module for grouping the multiple Gaussian point cloud data according to their position data to obtain multiple groups of Gaussian point cloud data; a first determination module for determining basic Gaussian point cloud data of each group of Gaussian point cloud data in the multiple groups of Gaussian point cloud data; a second determination module for determining, for each Gaussian point cloud data, the difference between the Gaussian point cloud data and the basic Gaussian point cloud data of the group to which it belongs as difference data of the Gaussian point cloud data; and a compression module for compressing the difference data of each Gaussian point cloud data and the basic Gaussian point cloud data of each group of Gaussian point cloud data.

[0016] According to another aspect of an embodiment of the present application, a Gaussian point cloud compression device is provided, comprising: a processor and a memory, wherein the memory stores executable instructions, and the processor can execute the executable instructions to implement the Gaussian point cloud compression method as described in any one of the above.

[0017] According to another aspect of an embodiment of the present application, a computer-readable storage medium is provided, wherein the storage medium stores at least one executable instruction, and when the executable instruction is executed, the Gaussian point cloud compression method described in any one of the above items can be implemented.

[0018] In the embodiment of the present application, Gaussian point cloud data with high similarity are grouped according to position data, and the difference between the Gaussian point cloud data and the basic Gaussian point cloud data of the group to which it belongs is used as the difference data of the Gaussian point cloud data. The difference data and the basic Gaussian point cloud data are compressed, so that the bytes required for compression of each Gaussian point cloud data are less than the bytes occupied by the basic Gaussian point cloud data, thereby reducing the total amount of storage space required to store the compressed encoded data. The execution algorithm of this process is simple and the algorithm complexity is low. Because the number of Gaussian point clouds is not reduced during compression, the Gaussian point cloud data obtained after decompression has a better effect on reconstructing large spatial scenes.

[0019] The above description is only an overview of the technical solutions of the embodiments of the present application. In order to more clearly understand the technical means of the embodiments of the present application, they can be implemented in accordance with the contents of the specification. In order to make the above and other purposes, features and advantages of the embodiments of the present application more obvious and easy to understand, the specific implementation methods of the present application are listed below. BRIEF DESCRIPTION OF THE DRAWINGS

[0020] The accompanying drawings are only used to illustrate the embodiments and are not to be considered as limiting the present application. In addition, the same reference symbols are used to represent the same components throughout the drawings. In the drawings:

[0021] FIG1 shows a flowchart of a Gaussian point cloud compression method provided in an embodiment of the present application;

[0022] FIG2 shows a flowchart of sub-steps of S120 in FIG1 provided in an embodiment of the present application;

[0023] FIG3 shows a schematic structural diagram of a Gaussian point cloud compression device provided in an embodiment of the present application;

[0024] FIG4 shows a schematic structural diagram of a Gaussian point cloud compression device provided in an embodiment of the present application. DETAILED DESCRIPTION

[0025] The exemplary embodiments of the present application will be described in more detail below with reference to the accompanying drawings. Although exemplary embodiments of the present application are shown in the drawings, it should be understood that the present application can be implemented in various forms and should not be limited to the embodiments set forth herein.

[0026] The core idea of ​​SGP is to reduce the computational effort during model training and prediction by selecting a representative subset to replace the original dataset. This representative subset is called a "sparse" dataset, which contains key information from the original dataset and can effectively characterize the characteristics of the entire dataset. SGP achieves compression by reducing the number of Gaussian point clouds rather than reducing the number of bytes occupied by each Gaussian point cloud. Therefore, using SGP to compress Gaussian point clouds is more complex and may result in poor reconstruction results.

[0027] Based on this, the inventors of the present application have discovered that the total amount of storage space required for Gaussian point clouds can be reduced by using a compression method that reduces the number of bytes occupied by each Gaussian point cloud, rather than by reducing the number of Gaussian point clouds. Furthermore, after decompression, the compression method that reduces the number of bytes occupied by each Gaussian point cloud can more accurately reconstruct the original large-scale scene. Specifically, Gaussian point clouds with high similarity can be first grouped together, and the basic point cloud data of each group of Gaussian point clouds can be found. Each Gaussian point cloud can then be offset to its corresponding basic point cloud data. The difference data of the Gaussian point cloud obtained after the offset occupies fewer bytes than the original Gaussian point cloud, significantly reducing the total amount of bytes required for multiple Gaussian point clouds. The difference data is encoded and stored, rather than encoding and storing the encoded data of the original Gaussian point cloud. This can reduce the total amount of storage space required for storing the encoded data. Furthermore, the execution algorithm of this process is simple and has low algorithm complexity. Furthermore, because the number of Gaussian point clouds is not reduced during compression, the Gaussian point cloud data obtained after decompression can achieve better reconstruction results for large-scale scenes.

[0028] This application is applicable to the compression of Gaussian point clouds, which can be large or small spatial scenes; can be static or dynamic; can be Gaussian point clouds of single sensor data or Gaussian point clouds fused from multiple sensor data. Furthermore, this application is also applicable to different types of Gaussian point clouds, such as point cloud data generated by lidar, laser scanners, cameras, ultrasonic sensors, and the like.

[0029] FIG1 shows a flowchart of a Gaussian point cloud compression method provided in an embodiment of the present application. The method is performed by a Gaussian point cloud compression device. The Gaussian point cloud compression device can be a device that collects Gaussian point cloud data, such as a sensor such as a laser radar, or a computing device with data processing capabilities, such as a computer or server. As shown in FIG1 , the method includes the following steps:

[0030] S110: Acquire a plurality of Gaussian point cloud data, wherein the Gaussian point cloud data includes position data.

[0031] When the compression device of the Gaussian point cloud is a device for collecting Gaussian point cloud data, multiple Gaussian point cloud data can be obtained through collection; when the compression device of the Gaussian point cloud is a computing device with data processing capabilities, multiple Gaussian point cloud data can be obtained by communicating with other devices. For example, a computer connected to a lidar can instantly obtain Gaussian point cloud data collected by the lidar from the lidar.

[0032] Gaussian point cloud data consists of attribute data in multiple dimensions, typically including position data, normal data, color data, spherical harmonic coefficient data, transparency coefficient data, scaling coefficient data, and rotation coefficient data. Position data describes the specific location of each Gaussian point cloud in three-dimensional space, such as the (x, y, z) coordinates; normal data describes the normal direction of each Gaussian point cloud; color data describes the base color of each Gaussian point cloud; spherical harmonic coefficient data describes the color coefficient related to viewing angle and scene lighting; transparency coefficient data describes the degree of transparency of each Gaussian point cloud color; scaling coefficient data describes the shape of each Gaussian point cloud; and rotation coefficient data describes the rotation direction of each Gaussian point cloud.

[0033] S120 , grouping a plurality of Gaussian point cloud data according to their position data to obtain a plurality of groups of Gaussian point cloud data.

[0034] Grouping multiple Gaussian point cloud data according to their position data can be done by grouping Gaussian point cloud data with similar distances in the position data into one group, that is, first calculating the distances between all Gaussian point clouds, and then grouping Gaussian point clouds with distances less than the threshold into the same group based on a set distance threshold; or grouping Gaussian point clouds in the same area in the position data into one group, that is, first dividing the three-dimensional space into several areas, and then grouping Gaussian point clouds in the same area into one group. Gaussian point cloud data can also be grouped based on the position data in combination with attribute data of other dimensions (such as spherical harmonic coefficient data and color data). For example, the similarity between Gaussian point clouds can be calculated based on color data, and then Gaussian point clouds with higher similarity and closer distance can be grouped into the same group based on a set similarity threshold.

[0035] In a preferred embodiment, cluster analysis can be used to group multiple Gaussian point cloud data. Cluster analysis is an unsupervised learning method whose main purpose is to classify data into several categories based on similarities between the data. Specifically, common clustering algorithms such as K-means, hierarchical clustering, and DBSCAN can be used to calculate the similarity between the position data of the Gaussian point clouds.

[0036] The similarity between the multiple Gaussian point cloud data is determined according to the position data of the multiple Gaussian point cloud data, and the multiple Gaussian point cloud data are grouped according to the similarity, so that the difference between the Gaussian point cloud data in the same group is small, that is, the bytes occupied by each Gaussian point cloud data in the same group are relatively close.

[0037] Tree structures such as KD tree, KDB tree, R tree, and Octree can also be used to group Gaussian point cloud data according to position data. Among them, the KD tree (K-Dimensional Tree) is a tree structure that divides the k-dimensional data space. The KD tree sorts multiple Gaussian point cloud data in a certain dimension (such as position data), and divides multiple Gaussian point cloud data into two subsets based on this dimension, and then recursively repeats this process in the remaining dimensions (such as color data) until all dimensions are processed; the KDB tree (K-Dimensional Binary Tree) is the binary form of the KD tree, and the KDB tree divides the data space into two subspaces, and each subspace is recursively divided; the R tree (R-Tree) is a data structure used to process multi-dimensional data. It groups multiple Gaussian point cloud data together and divides them according to certain rules (such as the number of data points in a node or the size of a node); the Octree is used to recursively divide the three-dimensional space into 8 subspaces, and each subspace is further recursively divided. The KD tree, KDB tree, R tree, and Octree all group Gaussian point cloud data by dividing the data space into multiple subspaces and then recursively processing in the subspaces.

[0038] S130. Determine the basic Gaussian point cloud data for each group of Gaussian point cloud data in multiple groups of Gaussian point cloud data.

[0039] For example, a group of Gaussian point cloud data includes A1(x1, y1, z1, c1, f1), A2(x2, y2, z2, c2, f2), and A3(x3, y3, z3, c3, f3), where A1, A2, and A3 represent three Gaussian point cloud data, (x, y, z) represents position data in three-dimensional coordinates, c represents color data, and f represents normal coefficient data.

[0040] First, the minimum value of a certain attribute data among the multiple attribute data of the multiple Gaussian point cloud data in this group can be determined, and then the Gaussian point cloud data corresponding to the minimum value of this attribute data is used as the basic Gaussian point cloud data of this group. For example, the Gaussian point cloud data with the smallest color data value can be used as the basic Gaussian point cloud data of this group. If c1 < c3 < c2, then the Gaussian point cloud data A1 corresponding to c1 is used as the basic Gaussian point cloud data of A1, A2, and A3.

[0041] In an optional manner, S130 includes: S131. Use the minimum value of the point cloud data of each group of Gaussian point cloud data as the basic Gaussian data of this group of Gaussian point cloud data.

[0042] First, the minimum data value among the multiple attribute data of the multiple Gaussian point cloud data in the group can be determined, and then the minimum data values among the multiple attribute data are combined into the basic Gaussian point cloud data. For example, if x2 < x1 < x3, y3 < y2 < y1, z1 < z2 < z3, c1 < c3 < c2, f3 < f1 < f2, then A0(x2, y3, z1, c1, f3) can be used as the basic Gaussian point cloud data of A1, A2, and A3.

[0043] It is also possible to select the representative data value among the multiple Gaussian point cloud data in the group as the basic Gaussian point cloud data. In an optional manner, S130 includes: S132, taking the average value of the point cloud data of each group of Gaussian point cloud data as the basic Gaussian data of the group.

[0044] For example, if x0 is the average value of x1, x2, and x3, y0 is the average value of y1, y2, and y3, z0 is the average value of z1, z2, and z3, c0 is the average value of c1, c2, and c3, and f0 is the average value of f1, f2, and f3, then A4(x0, y0, z0, c0, f0) is used as the basic Gaussian point cloud data of A1, A2, and A3.

[0045] S140, for each Gaussian point cloud data, determines the difference between the Gaussian point cloud data and the basic Gaussian point cloud data of its group as the difference data of the Gaussian point cloud data.

[0046] Subtract the data value of the Gaussian point cloud data from the data value of the basic Gaussian point cloud data of its group, and use the difference obtained from the subtraction as the data value of the difference data of the Gaussian point cloud data. The number of bytes occupied by each difference data obtained from the subtraction is less than the number of bytes occupied by the original Gaussian point cloud data. For example, in a group of Gaussian point cloud data A1(x1, y1, z1, c1, f1), A2(x2, y2, z2, c2, f2), and A3(x3, y3, z3, c3, f3), if A1(x1, y1, z1, c1, f1) is specifically A1(1024, 1024, 1024, 6, 6), and A0(1008, 1008, 1008, 5, 5) is the basic Gaussian point cloud data of A1, A2, and A3, then subtracting A0 from A1 gives the difference data B1(16, 16, 16, 1, 1) of A1.

[0047] The binary number "1111110000" converted from the decimal number "1024" occupies 10 bits, or 1.25 bytes; the binary number "10000" converted from the decimal number "16" occupies 5 bits, or 0.625 bytes; the binary number "110" converted from the decimal number "6" occupies 3 bits, or 0.375 bytes; the binary number "1" converted from the decimal number "1" occupies 1 bit, or 0.125 bytes. Therefore, the number of bytes required for A1 (1024, 1024, 1024, 6, 6) is 4.5 bytes (1.25 + 1.25 + 1.25 + 0.375 + 0.375); the number of bytes required for B1 (16, 16, 16, 1, 1) is 2.125 bytes (0.625 + 0.625 + 0.625 + 0.125 + 0.125). The number of bytes required for B1 (2.125 bytes) is nearly half of the number of bytes required for A1 itself (4.5 bytes).

[0048] Similarly, the difference data B2 of A2 can be obtained by subtracting A2 from A0, and the difference data B3 of A3 can be obtained by subtracting A3 from A0. The total number of bytes required for the difference data B1, B2 and B3 is much less than that of the original Gaussian point cloud data A1, A2 and A3.

[0049] It should be pointed out that in the embodiment of the present application, only the position data, color data and normal coefficient data in the multiple attribute data of the Gaussian point cloud data are used as examples to illustrate S130 and S140, and no limitation is imposed on the attribute data of other dimensions in the Gaussian point cloud data. For example, the Gaussian point cloud data A1, A2 and A3 can also include spherical harmonic coefficient data and scaling coefficient data, etc.

[0050] S150 , compressing the difference data of each Gaussian point cloud data and the basic Gaussian point cloud data of each group of Gaussian point cloud data.

[0051] The difference data of each Gaussian point cloud data and the basic Gaussian point cloud data of each group of Gaussian point cloud data are compressed instead of the original Gaussian point cloud data. This makes the number of bytes required to compress each Gaussian point cloud data smaller, thereby greatly reducing the total number of bytes required to compress multiple Gaussian point cloud data, thereby reducing the total amount of storage space required to store the compressed encoded data. In addition, the execution algorithm of this process is simple and the algorithm complexity is low.

[0052] During decompression, the basic Gaussian point cloud data of each group of Gaussian point cloud data and the difference data of each Gaussian point cloud data are decompressed, and then the basic Gaussian point cloud data of the group to which the difference data belongs is added to the difference data of each Gaussian point cloud data to obtain the original Gaussian point cloud data. Because the number of Gaussian point clouds is not reduced during compression, the Gaussian point cloud data obtained after decompression has a better effect on reconstructing large spatial scenes.

[0053] In the embodiment of the present application, Gaussian point cloud data with high similarity are grouped according to position data, and the difference between the Gaussian point cloud data and the basic Gaussian point cloud data of the group to which it belongs is used as the difference data of the Gaussian point cloud data. The difference data and the basic Gaussian point cloud data are compressed, so that fewer bytes are required to be compressed for each Gaussian point cloud data, thereby reducing the total amount of storage space required to store the compressed encoded data. The execution algorithm of this process is simple and the algorithm complexity is low. Because the number of Gaussian point clouds is not reduced during compression, the Gaussian point cloud data obtained after decompression has a better effect on reconstructing large spatial scenes.

[0054] FIG2 shows a flowchart of the sub-steps of S120 in FIG1 according to an embodiment of the present application. Referring to FIG2, S120 includes the following sub-steps:

[0055] S121 : determining a bounding box according to position data of the plurality of Gaussian point cloud data, wherein the bounding box is used to enclose the plurality of Gaussian point cloud data, and the bounding box is divided into a plurality of sub-bounding boxes.

[0056] Determine the maximum and minimum values ​​of the position data of multiple Gaussian point cloud data, that is, determine the maximum and minimum values ​​of the multiple position data on each coordinate axis. Use the determined maximum and minimum values ​​of the position data to construct a bounding box that surrounds the position data of all Gaussian point cloud data to ensure that the positions of all Gaussian point cloud data are contained in the bounding box.

[0057] In a preferred manner, the bounding box is divided into a preset number of sub-bounding boxes of the same size.

[0058] The bounding box is divided into a preset number of cubic areas of the same size. Each cubic area is a sub-bounding box. The division speed of the bounding box is faster when the preset number of areas is divided.

[0059] S122 , determining the nearest sub-bounding box of each Gaussian point cloud data, wherein the nearest sub-bounding box is the sub-bounding box that is closest to the Gaussian point cloud data among the multiple sub-bounding boxes.

[0060] The nearest sub-bounding box is the sub-bounding box that contains the Gaussian point cloud data.

[0061] S123, grouping Gaussian point cloud data with the same nearest sub-bounding box into the same group to obtain multiple groups of Gaussian point cloud data.

[0062] In an optional manner, a spatial hash table method can be used to group Gaussian point cloud data. When the bounding box is divided into a preset number of cubic areas of the same size, each cubic area (sub-bounding box) corresponds to a hash table. Traverse all Gaussian point cloud data and assign them to corresponding cubic areas according to their position information. During the assignment process, if the number of point clouds in a certain cubic area exceeds a preset threshold, these point clouds can be grouped together. Since the spatial hash table method groups according to the position data of the point cloud, it can well maintain the local structure of the Gaussian point cloud data, so that the reconstruction speed is faster when reconstructing large spatial scenes. In addition, the spatial hash table method can also be conveniently combined with other attribute data (such as spherical harmonic coefficient data, color data, etc.) to achieve more refined grouping. For example, the spherical harmonic coefficients of the point cloud can be calculated in each cubic area, and then further grouped according to the similarity of the spherical harmonic coefficients.

[0063] Before grouping the Gaussian point cloud data, the Gaussian point cloud data may be preprocessed to improve the grouping speed of the Gaussian point cloud data, for example, outlier judgment may be performed on the Gaussian point cloud data and data outliers may be removed, and homogenization and normalization operations may be performed on the Gaussian point cloud data.

[0064] In order to further improve the reconstruction quality of large spatial scenes, in an optional manner, the Gaussian point cloud data also includes spherical harmonic coefficient data and color data, the basic Gaussian point cloud data includes position data, spherical harmonic coefficient data and color data, and the difference data of the Gaussian point cloud data includes position difference data, spherical harmonic coefficient difference data and color difference data.

[0065] The basic Gaussian point cloud data includes all data dimensions of the Gaussian point cloud data (such as position data, spherical harmonic coefficient data and color data), so that the difference data obtained by subtracting the Gaussian point cloud data from the basic Gaussian point cloud data also includes all data dimensions of the Gaussian point cloud data.

[0066] S150 includes the following sub-steps:

[0067] S151 , respectively obtaining position difference data, spherical harmonic coefficient difference data, and color difference data of a plurality of Gaussian point cloud data from difference data of a plurality of Gaussian point cloud data.

[0068] Extract data values ​​of each dimension from the difference data of Gaussian point cloud data. For example, the difference data of multiple Gaussian point cloud data include A1(x1, y1, z1, c1, f1), A2(x2, y2, z2, c2, f2) and A3(x3, y3, z3, c3, f3),..., An(xn, yn, zn, cn, fn). Among them, A1, A2, A3...An represent the difference data of multiple Gaussian point cloud data, (x, y, z) represents the position data of the difference data in three-dimensional coordinates, c represents the color data of the difference data, and f represents the normal coefficient data of the difference data. Then, the coordinate values ​​of the difference data of multiple Gaussian point cloud data in the x-axis dimension are extracted to obtain X(x1, x2, x3,..., xn), the coordinate values ​​of the difference data of multiple Gaussian point cloud data in the y-axis dimension are extracted to obtain Y(y1, y2, y3,..., yn), the coordinate values ​​of the difference data of multiple Gaussian point cloud data in the z-axis dimension are extracted to obtain Z(z1, z2, z3,..., zn), the color values ​​of the difference data of multiple Gaussian point cloud data in the color dimension are extracted to obtain C(c1, c2, c3,..., cn), and the normal coefficient data values ​​of the difference data of multiple Gaussian point cloud data with Gaussian distribution are extracted to obtain F(f1, f2, f3,..., fn).

[0069] When extracting the data values ​​of each dimension from the difference data of the Gaussian point cloud data, the data value of each dimension has an index corresponding to the Gaussian point cloud data, so that after decompression, the value of each dimension corresponding to each difference data can be found according to the index to restore the difference data. For example, the index corresponding to the difference data A1 (x1, y1, z1, c1, f1) of the Gaussian point cloud data is d1, then the coordinate value of the difference data of the multiple Gaussian point cloud data in the x-axis dimension is extracted to obtain the index of x1 in X (x1, x2, x3, ..., xn), that is, d1, and the coordinate value of the difference data of the multiple Gaussian point cloud data in the y-axis dimension is extracted to obtain the index of y1 in Y (y1, y2, y3, ..., yn) is also d1, z1 The index of Z (z1, z2, z3, ..., zn), the index of c1 in C (c1, c2, c3, ..., cn), and the index of f1 in F (f1, f2, f3, ..., fn) are all d1. Therefore, after compressing X, Y, Z, C, and F and decompressing them to obtain X, Y, Z, C, and F, A1 (x1, y1, z1, c1, f1) can be restored from X, Y, Z, C, and F through index d1.

[0070] It should be pointed out that in the embodiment of the present application, only the position data, color data and normal coefficient data in the multiple attribute data of the difference data of the Gaussian point cloud data are used as examples to illustrate S151, and the attribute data of other dimensions in the difference data of the Gaussian point cloud data are not limited. For example, the difference data A1, A2, A3..., An of the Gaussian point cloud data can also include spherical harmonic coefficient data and scaling coefficient data, etc.

[0071] S152, respectively compressing the position difference data, spherical harmonic coefficient difference data and color difference data of the plurality of Gaussian point cloud data and the basic Gaussian point cloud data, so that the data loss degree of the compressed position difference data is less than the data loss degree of the compressed spherical harmonic coefficient difference data and the data loss degree of the compressed color difference data.

[0072] Different degrees of data loss indicate different compression rates. For the difference data of Gaussian point cloud data, appropriate compression methods can be selected according to the data characteristics and application requirements of different dimensions to optimize the efficiency of storing and transmitting compressed data.

[0073] For color difference data, since the color accuracy requirements are relatively low in most large-space scene reconstructions, some compression methods with large losses can be used to reduce the size of the data. For example, 8-bit color depth can be used instead of the standard 24-bit true color to represent color difference data, so that the number of bytes occupied by each color value of the color difference data is reduced from 3 to 1, greatly reducing the amount of bytes occupied by the color difference data. In addition, a region-based color encoding method can be used to reduce the amount of data by merging similar colors in space into one representative color, and the region-based color encoding method can also better maintain the overall color distribution characteristics.

[0074] In an optional manner, the color difference data of the plurality of Gaussian point cloud data are compressed into a texture compression format.

[0075] The texture compression format refers to a format used to compress and store image data. A variety of encoding methods can be used to compress the color difference data of multiple Gaussian point cloud data into a variety of texture compression formats. For example, the color difference data can be compressed into the DXT1 format, the HC6H format, or the ETC format. DXT1 (DirectX Texture Compression 1), also known as BC1 (Block Compression 1), is a block-based texture compression format. DXT1 / BC1 can compress image data to a smaller size while maintaining high image quality. HC6H / BC7 refers to a Huffman coding-based texture compression format that compresses image data into a texture compression format using Huffman coding. ETC (Ericsson Texture Compression) compresses image data into a texture compression format using transform coding and entropy coding.

[0076] Preferably, the color difference data may be normalized to a range of [0, 255] before being subjected to texture compression transformation using a texture encoding method.

[0077] The GPU (Graphics Processing Unit) has highly parallel processing capabilities and can quickly process large amounts of image-formatted data. The color difference data of the Gaussian point cloud data is compressed into a texture compression format for easier GPU processing. Furthermore, transmitting and storing data in a texture compression format consumes fewer resources. Compressing the color difference data of the Gaussian point cloud data into a texture compression format can improve the operating efficiency of the Gaussian point cloud compression device.

[0078] For spherical harmonic coefficient difference data, its compression strategy needs to take into account both data compression ratio and accuracy. The spherical harmonic coefficient difference data can be clustered into K categories based on their similarity, and then vector quantization operations are performed on the K categories to map each category to a binary index code. According to the compression accuracy requirements and loss degree requirements for the spherical harmonic coefficient difference data, the number of bits of the binary index code can be set to 8 bits, 16 bits, or 24 bits. If the accuracy requirements are not high, it can be compressed to 8 bits. If the accuracy requirements are high, it can be compressed to 24 bits. In an optional manner, other attribute data of the Gaussian point cloud data, such as normal difference data, scaling coefficient difference data, and rotation coefficient difference data, can also be compressed through vector quantization operations.

[0079] For position difference data, since the position difference data determines the geometric accuracy of the reconstructed model, it is necessary to ensure high data quality during compression, that is, the data loss of the compressed position difference data should not be too large. Some compression methods with low data loss during compression can be used to reduce the size of the data, such as Hilbert curve encoding and Morton encoding. Among them, Hilbert curve encoding is an encoding method based on a multi-scale space-filling curve. Hilbert curve encoding maps multiple position difference data into a multi-scale grid and encodes them along the Hilbert curve to complete the compression of the position difference data; Morton encoding is an encoding method based on the Morton sequence. The Morton sequence is a sequence of powers of 2, each number is twice the previous number. Morton encoding maps multiple position difference data into the Morton sequence and encodes the Morton numbers in the Morton sequence to achieve compression of the position difference data. When compressing position difference data, both Hilbert curve encoding and Morton encoding can effectively reduce the size of the data and ensure high data quality.

[0080] In an optional manner, the compressing of the position difference data in step S152 includes the following steps:

[0081] S151a, encoding the position difference data of multiple Gaussian point cloud data into one-dimensional data.

[0082] Position proximity encoding can be used to encode three-dimensional (X, Y, and Z axis) position difference data into one-dimensional data. Position proximity encoding is a coding method based on spatial proximity relationships. It encodes the spatial proximity relationships between the position difference data of multiple Gaussian point clouds to encode three-dimensional position difference data into one-dimensional data. Position proximity encoding can effectively reduce the size of position difference data while ensuring high data quality.

[0083] S151b, compressing the one-dimensional data into binary data.

[0084] The one-dimensional data can be compressed and re-encoded according to the block information to generate binary data. The compression and re-encoding of the one-dimensional data according to the block information refers to dividing the one-dimensional data into blocks of a certain length and then encoding each block to generate binary data.

[0085] By encoding the position difference data of multiple Gaussian point cloud data into one-dimensional data and then compressing the one-dimensional data into binary data, the number of bytes required for the position difference data can be effectively reduced while ensuring that the data loss during compression is small.

[0086] By selecting appropriate compression strategies for different data dimensions, we can effectively reduce the byte usage of the difference data of Gaussian point cloud data, while maintaining the original characteristics of the Gaussian point cloud data to a certain extent, thereby enabling more accurate reconstruction of the original large-scale spatial scene.

[0087] For multiple basic Gaussian point cloud data, the basic Gaussian point cloud data can be compressed as a whole, or the position data, spherical harmonic coefficient data and color data in the basic Gaussian point cloud data can be compressed separately.

[0088] It should be pointed out that the embodiments of the present application do not limit the compression method of data in other dimensions of the Gaussian point cloud data. For example, the Gaussian point cloud data also includes attribute data such as normal data, scaling coefficient data, and rotation coefficient data. The difference data of these attribute data can be normalized first, and then, depending on the strategy, a suitable compression method (such as vectorized compression) can be selected to encode the difference data into binary data. For example, the rotation coefficient difference data represented as a quaternion with four components can be compressed to 32 bits through smallest-three compression.

[0089] FIG3 shows a schematic diagram of the structure of a Gaussian point cloud compression device provided in an embodiment of the present application. As shown in the figure, the device 200 includes: an acquisition module 210, a grouping module 220, a first determination module 230, a second determination module 240, and a compression module 250.

[0090] The acquisition module 210 is used to acquire a plurality of Gaussian point cloud data, wherein the Gaussian point cloud data includes position data;

[0091] The grouping module 220 is used to group multiple Gaussian point cloud data according to their position data to obtain multiple groups of Gaussian point cloud data;

[0092] The first determining module 230 is used to determine the basic Gaussian point cloud data of each set of Gaussian point cloud data in the multiple sets of Gaussian point cloud data;

[0093] The second determining module 240 is configured to determine, for each Gaussian point cloud data, a difference between the Gaussian point cloud data and the basic Gaussian point cloud data of the group to which it belongs as difference data of the Gaussian point cloud data;

[0094] The compression module 250 is used to compress the difference data of each Gaussian point cloud data and the basic Gaussian point cloud data of each group of Gaussian point cloud data.

[0095] In an optional manner, the grouping module 220 is further used to determine a bounding box based on the position data of multiple Gaussian point cloud data, wherein the bounding box is used to enclose multiple Gaussian point cloud data, and the bounding box is divided into multiple sub-bounding boxes; determine the nearest sub-bounding box of each Gaussian point cloud data, wherein the nearest sub-bounding box is the sub-bounding box that is closest to the Gaussian point cloud data among the multiple sub-bounding boxes; and group the Gaussian point cloud data with the same nearest sub-bounding box into the same group to obtain multiple groups of Gaussian point cloud data.

[0096] In an optional manner, the grouping module 220 is further configured to divide the bounding box into a preset number of sub-bounding boxes of the same size.

[0097] In an optional manner, the first determination module 230 is further configured to use the average value of the point cloud data of each group of Gaussian point cloud data as the basic Gaussian data of the group of Gaussian point cloud data, or to use the minimum value of the point cloud data of each group of Gaussian point cloud data as the basic Gaussian data of the group of Gaussian point cloud data.

[0098] In an optional manner, the Gaussian point cloud data also includes spherical harmonic coefficient data and color data, the basic Gaussian point cloud data includes position data, spherical harmonic coefficient data and color data, and the difference data of the Gaussian point cloud data includes position difference data, spherical harmonic coefficient difference data and color difference data; the compression module 250 is also used to obtain the position difference data, spherical harmonic coefficient difference data and color difference data of multiple Gaussian point cloud data from the difference data of multiple Gaussian point cloud data; and compress the position difference data, spherical harmonic coefficient difference data and color difference data of multiple Gaussian point cloud data and the basic Gaussian point cloud data, so that the data loss degree of the compressed position difference data is less than the data loss degree of the compressed spherical harmonic coefficient difference data and the data loss degree of the compressed color difference data.

[0099] In an optional manner, the compression module 250 is further configured to encode the position difference data of the plurality of Gaussian point cloud data into one-dimensional data; and compress the one-dimensional data into binary data.

[0100] In an optional manner, the compression module 250 is further configured to compress the color difference data of the plurality of Gaussian point cloud data into a texture compression format.

[0101] In the embodiment of the present application, the grouping module 220 groups Gaussian point cloud data with high similarity according to the position data, and uses the second determination module 240 to use the difference between the Gaussian point cloud data and the basic Gaussian point cloud data of the group to which it belongs as the difference data of the Gaussian point cloud data. The compression module 250 compresses the difference data and the basic Gaussian point cloud data, so that the number of bytes required to compress each Gaussian point cloud data is small, thereby reducing the total amount of storage space required to store the compressed encoded data. In addition, the execution algorithm of this process is simple and the algorithm complexity is low. Because the number of Gaussian point clouds is not reduced during compression, the Gaussian point cloud data obtained after decompression has a better effect on reconstructing large spatial scenes.

[0102] FIG4 shows a schematic structural diagram of a Gaussian point cloud compression device provided in an embodiment of the present application. The specific embodiment of the present application does not limit the specific implementation of the Gaussian point cloud compression device.

[0103] As shown in FIG. 4 , the Gaussian point cloud compression device may include a processor 302 , a communications interface 304 , a memory 306 , and a communication bus 308 .

[0104] Processor 302, communication interface 304, and memory 306 communicate with each other via communication bus 308. Communication interface 304 is used to communicate with other devices, such as clients or other server network elements. Processor 302 is used to execute program 310, which may specifically perform the steps described in the aforementioned embodiment of the Gaussian point cloud compression method.

[0105] Specifically, the program 310 may include program code including computer-executable instructions.

[0106] Processor 302 may be a central processing unit (CPU), an application-specific integrated circuit (ASIC), or one or more integrated circuits configured to implement the embodiments of the present application. The one or more processors included in the Gaussian point cloud compression device may be processors of the same type, such as one or more CPUs, or processors of different types, such as one or more CPUs and one or more ASICs.

[0107] The memory 306 is used to store the program 310. The memory 306 may include a high-speed RAM memory, and may also include a non-volatile memory (non-volatile memory), such as at least one disk memory.

[0108] An embodiment of the present application provides a computer-readable storage medium storing executable instructions. When the executable instructions are executed on a Gaussian point cloud compression device, the Gaussian point cloud compression device executes the Gaussian point cloud compression method of any of the above method embodiments.

[0109] An embodiment of the present application provides a Gaussian point cloud compression device for executing the above-mentioned Gaussian point cloud compression method.

[0110] An embodiment of the present application provides a computer program, which can be called by a processor to enable a Gaussian point cloud compression device to execute the Gaussian point cloud compression method in any of the above method embodiments.

[0111] An embodiment of the present application provides a computer program product, which includes a computer program stored on a computer-readable storage medium. The computer program includes program instructions. When the program instructions are executed on a computer, the computer executes the Gaussian point cloud compression method in any of the above method embodiments.

[0112] The algorithm or demonstration provided here are not inherently relevant to any particular computer, virtual system or other equipment. Various general purpose systems can also be used together with the teachings based on this. According to the above description, it is obvious that the structure required for constructing this type of system. In addition, the present application embodiment is not directed to any specific programming language yet. It should be understood that various programming languages ​​can be utilized to realize the content of the present application described here, and the above description of specific languages ​​is for the purpose of disclosing the best mode of implementation of the present application.

[0113] In the description provided herein, a large number of specific details are described. However, it is understood that the embodiments of the present application can be practiced without these specific details. In some instances, well-known methods, structures, and techniques are not shown in detail so as not to obscure the understanding of this description.

[0114] Similarly, it should be understood that in order to streamline the present application and facilitate understanding of one or more of the various inventive aspects, in the above description of exemplary embodiments of the present application, various features of the embodiments of the present application are sometimes grouped together into a single embodiment, figure, or description thereof. However, this method of disclosure should not be interpreted as reflecting an intention that the claimed application requires more features than are expressly recited in each claim.

[0115] Those skilled in the art will appreciate that the modules in the devices in the embodiments can be adaptively changed and set in one or more devices different from the embodiments. The modules or units or components in the embodiments can be combined into one module or unit or component, and can be divided into multiple sub-modules or sub-units or sub-components. Except that at least some of such features and / or processes or units are mutually exclusive, all features disclosed in this specification (including the accompanying claims, abstracts and drawings) and all processes or units of any method or device disclosed so far can be combined in any combination. Unless otherwise expressly stated, each feature disclosed in this specification (including the accompanying claims, abstracts and drawings) can be replaced by an alternative feature that provides the same, equivalent or similar purpose.

[0116] It should be noted that the above embodiments illustrate rather than limit the present application, and that a person skilled in the art may devise alternative embodiments without departing from the scope of the appended claims. In the claims, any reference signs placed between brackets should not be construed as limiting the claims. The word "comprising" does not exclude the presence of elements or steps not listed in the claims. The word "a" or "an" preceding an element does not exclude the presence of a plurality of such elements. The present application may be implemented by means of hardware comprising several different elements and by means of appropriately programmed computers. In a unit claim enumerating several means, several of these means may be embodied by the same item of hardware. The use of the words first, second, and third etc. does not indicate any order. These words may be interpreted as names. The steps in the above embodiments should not be understood as limiting the order of execution unless otherwise specified.

Claims

1. A compression method for Gaussian point clouds, characterized in that, The method includes: Obtaining a plurality of Gaussian point cloud data, where the Gaussian point cloud data includes position data; Grouping the plurality of Gaussian point cloud data according to the position data thereof to obtain multiple groups of Gaussian point cloud data; Determining the basic Gaussian point cloud data of each group of Gaussian point cloud data in the multiple groups of Gaussian point cloud data; For each Gaussian point cloud data, determining the difference between the Gaussian point cloud data and the basic Gaussian point cloud data of the group to which it belongs as the difference data of the Gaussian point cloud data; Compressing the difference data of each Gaussian point cloud data and the basic Gaussian point cloud data of each group of Gaussian point cloud data.

2. The method according to claim 1, wherein The step of grouping the plurality of Gaussian point cloud data according to the position data thereof to obtain multiple groups of Gaussian point cloud data includes: Determining a bounding box according to the position data of the plurality of Gaussian point cloud data, where the bounding box is used to enclose the plurality of Gaussian point cloud data, and the bounding box is divided into a plurality of sub-bounding boxes; Determining the nearest sub-bounding box of each Gaussian point cloud data, where the nearest sub-bounding box is the sub-bounding box closest to the Gaussian point cloud data among the plurality of sub-bounding boxes; Grouping the Gaussian point cloud data with the same nearest sub-bounding box into the same group to obtain multiple groups of Gaussian point cloud data.

3. The method according to claim 2, characterized in that, The bounding box is divided into a preset number of sub-bounding boxes with the same size.

4. The method according to claim 1, wherein The step of determining the basic Gaussian point cloud data of each group of Gaussian point cloud data in the multiple groups of Gaussian point cloud data includes: Taking the average value of the point cloud data of each group of Gaussian point cloud data as the basic Gaussian data of the group of Gaussian point cloud data, or taking the minimum value of the point cloud data in each group of Gaussian point cloud data as the basic Gaussian data of the group of Gaussian point cloud data.

5. The method according to claim 1, wherein The Gaussian point cloud data further includes spherical harmonic coefficient data and color data, the basic Gaussian point cloud data includes the position data, the spherical harmonic coefficient data and the color data, and the difference data of the Gaussian point cloud data includes position difference data, spherical harmonic coefficient difference data and color difference data; the step of compressing the difference data of each Gaussian point cloud data and the basic Gaussian point cloud data of each group of Gaussian point cloud data includes: Respectively obtaining the position difference data, spherical harmonic coefficient difference data and color difference data of the plurality of Gaussian point cloud data from the difference data of the plurality of Gaussian point cloud data; Respectively compressing the position difference data, spherical harmonic coefficient difference data and color difference data of the plurality of Gaussian point cloud data and the basic Gaussian point cloud data, so that the data loss degree of compressing the position difference data is less than the data loss degree of compressing the spherical harmonic coefficient difference data and the data loss degree of compressing the color difference data.

6. The method according to claim 5, characterized in that In the step of respectively compressing the position difference data, spherical harmonic coefficient difference data and color difference data of the plurality of Gaussian point cloud data and the basic Gaussian point cloud data, so that the data loss degree of compressing the position difference data is less than the data loss degree of compressing the spherical harmonic coefficient difference data and the data loss degree of compressing the color difference data, the compression of the position difference data includes the following steps: Encoding the position difference data of the plurality of Gaussian point cloud data into one-dimensional data; Compressing the one-dimensional data into binary data.

7. The method according to claim 5, characterized in that The color difference data of the multiple Gaussian point cloud data is compressed into a texture compression format.

8. A compression device for Gaussian point clouds, characterized in that, The device includes: An acquisition module, configured to acquire multiple Gaussian point cloud data, where the Gaussian point cloud data includes position data; A grouping module, configured to group the multiple Gaussian point cloud data according to the position data thereof to obtain multiple groups of Gaussian point cloud data; A first determination module, configured to determine the basic Gaussian point cloud data of each group of Gaussian point cloud data in the multiple groups of Gaussian point cloud data; A second determination module, configured to, for each Gaussian point cloud data, determine the difference between the Gaussian point cloud data and the basic Gaussian point cloud data of the group to which the Gaussian point cloud data belongs as the difference data of the Gaussian point cloud data; A compression module, configured to compress the difference data of each Gaussian point cloud data and the basic Gaussian point cloud data of each group of Gaussian point cloud data.

9. A computing device, characterized in that, It includes: A processor, a memory, a communication interface, and a communication bus, where the processor, the memory, and the communication interface complete communication with each other through the communication bus; The memory is used to store executable instructions, and the executable instructions cause the processor to execute the operations of the Gaussian point cloud compression method according to any one of claims 1-7.

10. A computer-readable storage medium, characterized in that, Executable instructions are stored in the storage medium, and when the executable instructions run on a Gaussian point cloud compression device, the Gaussian point cloud compression device is caused to execute the operations of the Gaussian point cloud compression method according to any one of claims 1-7.

Citation Information

Patent Citations

  • Point cloud neighbor determination, point cloud prediction, point cloud coding and point cloud decoding method and device

    CN113014903A

  • Point cloud data acquisition method and device, apparatus and storage medium

    CN113483661A

  • Block-based predictive coding for point cloud compression

    CN114467302A

  • Point cloud attribute coding method, point cloud attribute decoding method and terminal

    CN115714859A

  • Systems and Methods for Compressing, Representing and Processing Point Clouds

    US20190116372A1