A method and system for high-speed storage of 3D point clouds

By compressing and decompressing 3D point cloud data at both the host and SSD controller levels, the problems of storage pressure and write cycles in 3D point cloud data storage are solved, achieving more efficient data storage and extended device lifespan.

CN115268789BActive Publication Date: 2026-04-03SHANDONG YUNHAI GUOCHUANG CLOUD COMPUTING EQUIP IND INNOVATION CENT CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-07-30
Publication Date
2026-04-03

AI Technical Summary

Technical Problem

In existing technologies, the storage of 3D point cloud data suffers from high storage pressure and limited erase/write cycles due to the large data volume and bad block issues in NAND Flash, thus affecting the lifespan of the device.

Method used

Point cloud data is compressed and decompressed quickly and effectively at the host and SSD controller levels. By simplifying, compressing and decompressing technologies, the number of NAND Flash erase/write cycles is reduced, extending the device's lifespan.

Benefits of technology

This achieves the goal of effectively utilizing limited NAND Flash cells to store more data while ensuring transmission speed, reducing the number of erase/write cycles, and extending the lifespan of the device.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115268789B_ABST
    Figure CN115268789B_ABST
Patent Text Reader

Abstract

This invention provides a high-speed storage method and system for 3D point clouds. The method includes compression processing during point cloud data writing and decompression processing during point cloud data reading. After the host file system acquires the point cloud data, it immediately simplifies the point cloud and sends a storage write command to the SSD. Upon receiving the write command, the SSD controller's interaction layer parses the command information and passes it to the FTL. Upon receiving the command information, the FTL requests a pre-compression write buffer space and then initiates DMA to move the point cloud data to be written from the host end into the pre-compression write buffer. This invention ensures transmission speed while achieving fast and effective compression processing of the point cloud data to be stored in the NAND Flash from both the host end and the SSD controller level. This allows for the storage of as much 3D point cloud data as possible within a limited NAND Flash cell, effectively reducing the number of NAND erase / write cycles and extending the lifespan of the NAND Flash.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to the field of data processing technology, and specifically to a high-speed storage method and system for three-dimensional point clouds. Background Technology

[0002] 3D laser scanners can directly acquire various large, complex, irregular, standard or non-standard 3D data of entities or real-world scenes within their field of view and effective measurement range. They offer high measurement accuracy and data acquisition efficiency, and are relatively low-cost and capable of capturing large-scale scenes. Therefore, they are widely used in immersive media, free-viewpoint broadcasting, geographic mapping, autonomous driving, and other fields. However, the high-dimensional data characteristics and the demand for high precision and large-scale scenes result in massive point cloud data volumes, putting pressure on its storage and posing a major bottleneck to the development of related applications. With the emergence and widespread use of NAND Flash, NAND Flash-based SSDs have become a hot topic in the storage field due to their higher reliability, better performance, and lower power consumption.

[0003] Due to the manufacturing process of NAND Flash, bad blocks will inevitably be generated during manufacturing and use; these are known as factory-made bad blocks and newly added bad blocks. When NAND Flash is shipped, manufacturers allow a certain number of bad blocks, typically between 2% and 5%, and mark them as factory-made bad blocks. Simultaneously, Flash devices have a limited number of erase / write cycles. After exceeding this limit, some bits will fail to flip (from "0" to "1"), resulting in an error that prevents erasure. This block then becomes an invalid block, i.e., a newly added bad block. NAND Flash datasheets specify that a bad block cannot be erased or written to.

[0004] Therefore, it is essential to study how to store as much 3D point cloud data as possible using a limited number of NAND Flash cells while ensuring transmission speed, effectively reducing the number of NAND erase / write cycles and extending the lifespan of NAND Flash. Summary of the Invention

[0005] In view of this, the purpose of this invention is to propose a high-speed storage method, system, storage medium and device for three-dimensional point clouds, which ensures transmission speed while achieving fast and effective compression processing of point cloud data to be stored in NAND Flash from both the host end and SSD controller levels. This allows a limited number of NAND Flash cells to store as much three-dimensional point cloud data as possible, effectively reducing the number of NAND erase / write cycles and extending the lifespan of NAND Flash.

[0006] To achieve the above objectives, this invention provides a high-speed storage method for three-dimensional point clouds, applied to compress point cloud data during writing, wherein the method includes the following steps:

[0007] The host file system acquires point cloud data and simplifies the point cloud. After simplification, it sends a storage write command to the SSD.

[0008] After receiving a write command, the SSD controller's interaction layer parses the command information and passes the parsed command information to the FTL.

[0009] After receiving the command information, FTL requests the space of the pre-compression write buffer and starts DMA to move the point cloud data to be written from the host to the pre-compression write buffer.

[0010] Compress the data in the pre-compression write buffer, allocate a new post-compression write buffer space, store the compressed data in the post-compression write buffer space, and release the pre-compression write buffer space after all compression and transfer are completed.

[0011] After FTL completes the remapping, NFC is immediately activated to transfer the data in the buffer into NAND.

[0012] To achieve the above objectives, in another aspect, the present invention provides a high-speed storage method for three-dimensional point clouds, applied to decompression processing during point cloud data reading, wherein the method includes the following steps:

[0013] The host sends a data read command to the SSD;

[0014] After receiving a read command, the SSD controller's interaction layer parses the command information and passes the parsed command information to the FTL.

[0015] After receiving the command message, FTL requests the pre-decompression read buffer space and then starts NFC to move the point cloud data to be read from the NAND terminal into the pre-decompression read buffer.

[0016] Decompress the data in the pre-decompression read buffer, allocate a new post-decompression read buffer space, store the decompressed data into the post-decompression read buffer space, and release the pre-decompression read buffer space after all decompression and transfer are completed.

[0017] After FTL completes the remapping, it immediately starts DMA to transfer the data in the buffer to the Host.

[0018] Another aspect of the present invention provides a high-speed storage system for three-dimensional point clouds, comprising:

[0019] The data simplification module is used to obtain point cloud data from the host file system and simplify the point cloud. After simplification, it sends a storage write command to the SSD.

[0020] The command parsing module is used by the SSD controller's interaction layer to parse the command information after receiving a write command and pass the parsed command information to the FTL.

[0021] The data writing module is used by FTL to request pre-compression write buffer space after receiving command information, and then start DMA to move the point cloud data to be written from the host to the pre-compression write buffer.

[0022] The compression and transfer module is used to compress the data in the pre-compression write buffer, allocate a new post-compression write buffer space, store the compressed data into the post-compression write buffer space, and release the pre-compression write buffer space after all compression and transfer are completed.

[0023] The data import module is used to import the data in the buffer into the NAND flash after the FTL completes the remapping.

[0024] In another aspect, the present invention provides a computer device including a memory and a processor, wherein the memory stores a computer program that, when executed by the processor, performs any of the above-described high-speed storage methods for three-dimensional point clouds according to the present invention.

[0025] In another aspect, the present invention provides a computer-readable storage medium storing computer program instructions that, when executed, implement any of the above-described high-speed storage methods for three-dimensional point clouds according to the present invention.

[0026] The present invention has at least the following beneficial technical effects:

[0027] This invention proposes a high-speed storage method and system for 3D point clouds. The system obtains all identified network port information from two servers via commands, and configures different network segment IP addresses for all ports on one server (e.g., the server side). After successful configuration, using the IP address configured on the first port of the server side, it iterates through all ports on the client side, setting IP addresses in the same network segment as the first port of the server side. After setting the IP addresses in the same network segment, it checks whether the IP addresses of the server side and the client side ports can ping each other. If they can ping each other, it indicates that the two ports are interconnected. The process then continues by searching the second port of the server side and the remaining client side ports until all ports have been searched. This method significantly improves IP configuration efficiency and reduces configuration time, avoiding rework caused by incorrect recording of interconnection port information or configuration errors, thus improving testing efficiency and saving time.

[0028] These or other aspects of this application will become more apparent from the following description of embodiments. It should be understood that the foregoing general description and the following detailed description are exemplary and explanatory only, and are not intended to limit the application. Attached Figure Description

[0029] To more clearly illustrate the technical solutions in the embodiments of the present invention or the prior art, the drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present invention. For those skilled in the art, other embodiments can be obtained based on these drawings without creative effort.

[0030] In the diagram:

[0031] Figure 1 A system block diagram of a high-speed three-dimensional point cloud storage system according to the present invention is shown;

[0032] Figure 2 A flowchart illustrating the writing compression step in the high-speed storage method for three-dimensional point clouds according to the present invention is shown.

[0033] Figure 3 A flowchart illustrating the reading and decompression steps in the high-speed storage method for three-dimensional point clouds according to the present invention is shown.

[0034] Figure 4 A schematic diagram of the hardware structure of a computer device for implementing a high-speed storage method for three-dimensional point clouds according to the present invention is shown.

[0035] Figure 5 A schematic diagram illustrating an embodiment of a computer-readable storage medium for implementing a high-speed storage method for three-dimensional point clouds according to the present invention is shown; Detailed Implementation

[0036] The present application will now be further described in conjunction with the accompanying drawings and specific embodiments. It should be noted that, without conflict, the various embodiments or technical features described below can be arbitrarily combined to form new embodiments.

[0037] To make the objectives, technical solutions, and advantages of the present invention clearer, the embodiments of the present invention will be further described in detail below with reference to specific examples and the accompanying drawings. It should be understood that the specific embodiments described herein are merely illustrative and are not intended to limit the scope of this application.

[0038] It should be noted that all uses of "first" and "second" in the embodiments of the present invention are for the purpose of distinguishing two different entities or different parameters with the same name. Therefore, "first" and "second" are merely for convenience of expression and should not be construed as limiting the embodiments of the present invention. Furthermore, the terms "comprising" and "having," and any variations thereof, are intended to cover non-exclusive inclusion, such as other steps or units inherent in a process, method, system, product, or device that includes a series of steps or units.

[0039] The technical solutions of the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this application, not all embodiments. Based on the embodiments of this application, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of this application.

[0040] The flowchart shown in the attached diagram is for illustrative purposes only and does not necessarily include all content and operations / steps, nor does it necessarily have to be performed in the order described. For example, some operations / steps can be broken down, combined, or partially merged, so the actual execution order may change depending on the actual situation.

[0041] The following detailed description of some embodiments of this application is provided in conjunction with the accompanying drawings. Unless otherwise specified, the following embodiments and features can be combined with each other.

[0042] Due to the manufacturing process of NAND Flash, bad blocks will inevitably be generated during manufacturing and use; these are known as factory-made bad blocks and newly added bad blocks. When NAND Flash is shipped, manufacturers allow a certain number of bad blocks, typically between 2% and 5%, and mark them as factory-made bad blocks. Simultaneously, Flash devices have a limited number of erase / write cycles. After exceeding this limit, some bits will fail to flip (from "0" to "1"), resulting in an error that prevents erasure. This block then becomes an invalid block, i.e., a newly added bad block. NAND Flash datasheets specify that a bad block cannot be erased or written to.

[0043] In view of this, the present invention proposes an improved high-speed storage method for three-dimensional point clouds. While ensuring transmission speed, it achieves fast and effective compression processing of point cloud data to be stored in NAND Flash from both the host end and SSD controller levels. This allows a limited number of NAND Flash cells to store as much three-dimensional point cloud data as possible, effectively reducing the number of NAND erase / write cycles and extending the lifespan of NAND Flash.

[0044] In the improved three-dimensional point cloud high-speed storage method and system of the present invention, the present invention provides a three-dimensional point cloud high-speed storage method, wherein point cloud data is compressed during writing, specifically including:

[0045] The first step is for the host file system to obtain the point cloud data, then simplify the point cloud, and finally send a storage write command to the SSD after the simplification is complete.

[0046] The second step is that the SSD controller's interactive layer receives the write command, parses the command information, and passes the parsed command information to the FTL.

[0047] The third step is that after FTL receives the command information, it requests the space of the write buffer before compression and then starts DMA to move the point cloud data to be written from the host to the write buffer before compression.

[0048] The fourth step is to compress the data in the pre-compression write buffer, allocate a new post-compression write buffer space, store the compressed data in the post-compression write buffer space, and release the pre-compression write buffer space after all compression and transfer are completed.

[0049] Fifth, after FTL completes the remapping, it immediately starts NFC to transfer the data in the buffer into NAND.

[0050] This invention provides a high-speed storage method for three-dimensional point clouds, wherein the point cloud data is decompressed during reading, specifically including:

[0051] The first step is for the host to send a data read command to the SSD;

[0052] The second step is that the SSD controller's interaction layer receives the read command, parses the command information, and then passes the parsed command information to FT;

[0053] The third step is that after FTL receives the command information, it requests the pre-decompression read buffer space and then starts NFC to move the point cloud data to be read from the NAND end into the pre-decompression read buffer.

[0054] The fourth step is to decompress the data in the pre-decompression read buffer, allocate a new post-decompression read buffer space, store the decompressed data in the post-decompression read buffer space, and release the pre-decompression read buffer space after all decompression and transfer are completed.

[0055] Fifth, after FTL completes the remapping, it immediately starts DMA to transfer the data in the buffer to the Host.

[0056] This invention provides a high-speed storage method for three-dimensional point clouds. While ensuring transmission speed, it achieves fast and effective compression processing of point cloud data to be stored in NAND Flash from both the host end and SSD controller levels. This allows a limited number of NAND Flash cells to store as much three-dimensional point cloud data as possible, effectively reducing the number of NAND erase / write cycles and extending the lifespan of the NAND Flash.

[0057] The purpose of this invention is to provide a high-speed storage method for three-dimensional point clouds. A schematic diagram of the system structure is shown below. Figure 1 Point cloud data is compressed during writing. The writing compression system operation steps are as follows: Figure 2 Specifically, it includes:

[0058] S201: After the host file system obtains the point cloud data, it immediately simplifies the point cloud and then sends a write command to the SSD. The details are as follows:

[0059] In this embodiment of the invention, the raw point cloud data collected by the acquisition device received by the host contains more spatial and attribute information of the target surface, as well as a large number of redundant points. These redundant points cause many inconveniences for storage and subsequent point cloud operations, consuming a lot of computer resources and time. Overly dense data points also affect the smoothness of the reconstructed target surface. Therefore, the raw point cloud is immediately simplified after being received. The simplification method is as follows:

[0060] Step 1: Automatically process point cloud data into layers.

[0061] Suppose that point cloud data can be represented as Q(x) i y i, z i (i = 0, 1, 2, ..., n-1, where n is the total number of points in the point cloud), the points are layered along the Z-axis. The Z-axis coordinates of the j-th layer are as follows:

[0062] Z j =Z min +Δh j *j

[0063] Where j is the layer number, Z f Let Z be the Z-axis coordinate of the j-th layer. min The minimum value in the Z-axis direction, Δh j To define the height of the j-th layer, Δh j The initial value is calculated according to the following formula.

[0064]

[0065] N represents the planned total number of layers (this is just an initial value; the final number of layers will be adjusted based on a threshold). A threshold Th is set, and after dividing the area into two layers based on Δh0, the rate of change of the cross-sectional area of ​​the two sections is calculated.

[0066]

[0067] Where S i With S i+1 Let ΔS be the cross-sectional area of ​​two adjacent layers. If ΔS ≤ Th, then Δh0 is the layer height of the current layer and the initial layer height of the next layer. Otherwise, iterate according to Δh0 = Δh0 / 2 until ΔS ≤ Th, then Δh0 is the layer height of the current layer and the initial layer height of the next layer. The division of the j-th layer is carried out in the same way. The selection of the threshold Th needs to be determined according to the point cloud quality and accuracy requirements.

[0068] Step 2, point cloud simplification.

[0069] The layered point cloud data is simplified using the following formula;

[0070] d i <Thread

[0071] in,

[0072]

[0073] d i For point p i Point P i-1 and p i+1 The Euclidean distance between the lines containing the two points, (x i y i Let p be a point. i In the coordinates of the layered plane, A i xi +B i y i +C i =0 is point p i-1 and p i+1 The equation of the line in question:

[0074]

[0075] Thread is the threshold size, K is the total number of layers, and Δh i Let σ be the height of the i-th layer, and let σ be an adjustment factor determined according to the point cloud quality and accuracy requirements. For point cloud data with good uniformity and high accuracy requirements, σ ​​can be taken as [2, 3].

[0076] Points that satisfy the above formula are retained, while points that do not are discarded. After the point cloud is simplified, the host sends a data write command to the SSD.

[0077] S202: After receiving a write command, the SSD controller's interaction layer parses the command information and passes the parsed command information to the FTL, as follows:

[0078] After receiving the data write command from the Host, the SSD controller interface layer parses it and passes the parsed LBA and other command information to the FTL layer.

[0079] S203, after receiving the command information, FTL requests space for the pre-compression write buffer and then starts DMA to move the point cloud data to be written from the host to the pre-compression write buffer, as follows:

[0080] After receiving the command information, FTL requests a pre-compression write buffer space through the bus manager based on the amount of data carried in the LBA, which is used to cache the host-side data to be written to the SSD. After obtaining enough write buffer space, FTL configures DMA information and starts DMA through the bus controller to move the point cloud data to be written on the host to the pre-compression write buffer space and complete the mapping from LBA to buffer space.

[0081] S204: Compress the data in the pre-compression write buffer, allocate new post-compression write buffer space, store the compressed data in the post-compression write buffer space, and release the pre-compression write buffer space after all compression and transfer are completed, as detailed below:

[0082] After the DMA completes the transfer of point cloud data from the host to the buffer space, it immediately starts the compression module to compress the data in the pre-compression write buffer and allocates new write buffer space to store the compressed point cloud data. At this point, the data transmission is in the form of a data stream. Run-length encoding is used to compress the data stream directly, that is, only a code representing a certain data value and the run length of that value are stored. For example, "00000" is stored as "05", reducing the number of times the value is stored and achieving lossless compression of the data stream. After all compression and transfer are completed, the pre-compression write buffer space is released, and FTL completes the mapping from LBA to the post-compression write buffer space.

[0083] S205, after FTL completes the remapping, it immediately starts NFC to transfer the data in the buffer into NAND.

[0084] After FTL completes the mapping from the compressed write buffer space to the PBA in NAND, the mapping relationship from LBA to PBA is established. By configuring NFC information and starting NFC through the bus manager, the data in the compressed write buffer space is stored into NAND, completing the entire data writing process.

[0085] This invention provides a high-speed storage method for three-dimensional point clouds. The point cloud data is decompressed during reading, and the decompression system operation steps are as follows: Figure 3 Specifically, this includes...

[0086] S301, the Host sends a data read command to the SSD.

[0087] In S302, after receiving a read command, the SSD controller's interaction layer parses the command information and passes the parsed command information to the FTL, as follows:

[0088] After receiving the data read command from the Host, the SSD controller interface layer parses it and passes the parsed PBA and other command information to the FTL layer.

[0089] After receiving the command message, S303, FTL requests pre-decompression read buffer space and then initiates NFC to move the point cloud data to be read from the NAND terminal into the pre-decompression read buffer, as follows:

[0090] After receiving the command information, FTL requests a pre-decompression read buffer space through the bus manager based on the amount of data carried in the PBA, which is used to cache the SSD data to be read. After obtaining enough read buffer space, FTL configures NFC information and starts NFC through the bus controller to move the point cloud data to be read from the SSD into the pre-decompression write buffer space, and completes the mapping from PBA to the pre-decompression buffer space.

[0091] S304: Decompress the data in the pre-decompression read buffer, allocate a new post-decompression read buffer space, store the decompressed data into the post-decompression read buffer space, and release the pre-decompression read buffer space after all decompression and transfer are completed, as detailed below:

[0092] After NFC completes the transfer of point cloud data from NAND to the pre-decompression read buffer space, it immediately starts the decompression module to decompress the data in the pre-decompression write buffer and allocates new read buffer space to store the decompressed point cloud data. Run-length decoding is used to decompress the compressed data, that is, to restore the value storage according to each numeric code and its run length, such as restoring "05" to "00000". After all data is decompressed and transferred, the pre-decompression read buffer space is released, and FTL completes the mapping from PBA to the post-decompression read buffer space.

[0093] S305, after FTL completes the remapping, it immediately starts DMA to transfer the data in the buffer to the Host.

[0094] After FTL completes the mapping from the decompressed read buffer space to the PBA in NAND, it establishes the mapping relationship between LBA and the decompressed read buffer space. By configuring DMA information and starting DMA through the bus manager, the data in the decompressed read buffer space is transferred to the Host, completing the entire data reading process.

[0095] This invention provides a high-speed storage method for three-dimensional point clouds. While ensuring transmission speed, it achieves fast and effective compression processing of point cloud data to be stored in NAND Flash from both the host end and SSD controller levels. This allows for the storage of as much three-dimensional point cloud data as possible using limited NAND Flash cells, effectively reducing the number of NAND erase / write cycles and extending the lifespan of NAND Flash.

[0096] In summary, the purpose of this invention is to provide a high-speed storage method for three-dimensional point clouds. The point cloud data is compressed during writing, specifically including: after the host file system obtains the point cloud data, it immediately simplifies the point cloud and sends a storage write command to the SSD; the SSD controller's interaction layer receives the write command, parses the command information, and passes the parsed command information to the FTL; after receiving the command information, the FTL requests a pre-compression write buffer space and then starts DMA to move the point cloud data to be written from the host into the pre-compression write buffer; the data in the pre-compression write buffer is compressed, and a new post-compression write buffer space is requested, and the compressed data is stored in the post-compression write buffer space; after all compression and transfer are completed, the pre-compression write buffer space is released; after the FTL completes the remapping, NFC is started to move the data in the buffer into the NAND flash.

[0097] The point cloud data is decompressed during reading, specifically including: the Host sending a data read command to the SSD; the SSD controller's interaction layer receiving the read command parses the command information and passes the parsed command information to the FTL; after receiving the command information, the FTL requests a pre-decompression read buffer space and then starts NFC to move the point cloud data to be read from the NAND side into the pre-decompression read buffer; the data in the pre-decompression read buffer is decompressed, and a new post-decompression read buffer space is requested and the decompressed data is stored in the post-decompression read buffer space; after all decompression and transfer are completed, the pre-decompression read buffer space is released; after the FTL completes the remapping, it starts DMA to transfer the data in the buffer to the Host.

[0098] It should be noted that the above figures are merely illustrative of the processes included in the method according to exemplary embodiments of the present invention, and are not intended to be limiting. It is readily understood that the processes shown in the above figures do not indicate or limit the temporal order of these processes. Furthermore, it is readily understood that these processes may, for example, be executed synchronously or asynchronously in multiple modules.

[0099] It should be understood that although the above description follows a certain order, these steps are not necessarily executed in that order. Unless otherwise expressly stated herein, there is no strict order restriction on the execution of these steps, and they can be executed in other orders. Moreover, some steps in this embodiment may include multiple steps or multiple stages, which are not necessarily completed at the same time, but may be executed at different times. The execution order of these steps or stages is not necessarily sequential, but may be performed alternately or in turn with other steps or at least a portion of the steps or stages in other steps.

[0100] A second aspect of the present invention also provides a high-speed three-dimensional point cloud storage system, the system comprising:

[0101] The data simplification module is used to obtain point cloud data from the host file system and simplify the point cloud. After simplification, it sends a storage write command to the SSD.

[0102] The command parsing module is used by the SSD controller's interaction layer to parse the command information after receiving a write command and pass the parsed command information to the FTL.

[0103] The data writing module is used by FTL to request pre-compression write buffer space after receiving command information, and then start DMA to move the point cloud data to be written from the host to the pre-compression write buffer.

[0104] The compression and transfer module is used to compress the data in the pre-compression write buffer, allocate a new post-compression write buffer space, store the compressed data into the post-compression write buffer space, and release the pre-compression write buffer space after all compression and transfer are completed.

[0105] The data import module is used to import the data in the buffer into the NAND flash after the FTL completes the remapping.

[0106] In this embodiment of the invention, the high-speed storage method for three-dimensional point clouds includes compression processing during point cloud data writing, specifically comprising: after the host file system obtains the point cloud data, it immediately simplifies the point cloud, and after simplification, sends a storage write command to the SSD; after receiving the write command, the interaction layer of the SSD controller parses the command information and passes the parsed command information to the FTL; after receiving the command information, the FTL requests a pre-compression write buffer space and then starts DMA to move the point cloud data to be written from the host to the pre-compression write buffer; the data in the pre-compression write buffer is compressed, and a new post-compression write buffer space is requested, and the compressed data is stored in the post-compression write buffer space; after all compression and transfer are completed, the pre-compression write buffer space is released; after the FTL completes the remapping, it immediately starts NFC to move the data in the buffer into the NAND.

[0107] The point cloud data is decompressed during reading, specifically including: the Host sending a data read command to the SSD; the SSD controller's interaction layer receiving the read command parses the command information and passes the parsed command information to the FTL; after receiving the command information, the FTL requests a pre-decompression read buffer space and then starts NFC to move the point cloud data to be read from the NAND side into the pre-decompression read buffer; the data in the pre-decompression read buffer is decompressed, and a new post-decompression read buffer space is requested and the decompressed data is stored in the post-decompression read buffer space; after all decompression and transfer are completed, the pre-decompression read buffer space is released; after the FTL completes the remapping, it starts DMA to transfer the data in the buffer to the Host.

[0108] The point cloud data is compressed during writing. After the host file system obtains the point cloud data, it immediately simplifies the point cloud. The process of sending a storage write command to the SSD after simplification includes:

[0109] The raw point cloud data received by the host from the acquisition device contains more spatial and attribute information about the target surface, but also includes a large number of redundant points. These redundant points cause many inconveniences for storage and subsequent point cloud operations, consuming a lot of computer resources and time. Overly dense data points can also affect the smoothness of the reconstructed target surface. Therefore, the raw point cloud is immediately simplified upon receipt. After the point cloud simplification is completed, the host sends a data write command to the SSD.

[0110] The point cloud data is compressed during writing. The interaction layer of the SSD controller receives the write command, parses the command information, and then passes the parsed command information to the FTL. This process includes:

[0111] After receiving the command information, FTL requests a pre-compression write buffer space through the bus manager based on the amount of data carried in the LBA, which is used to cache the host-side data to be written to the SSD. After obtaining enough write buffer space, FTL configures DMA information and starts DMA through the bus controller to move the point cloud data to be written on the host to the pre-compression write buffer space and complete the mapping from LBA to buffer space.

[0112] The point cloud data is compressed during writing. The process of compressing the data in the pre-compression write buffer, allocating a new post-compression write buffer space, storing the compressed data in the post-compression write buffer space, and releasing the pre-compression write buffer space after all compression and transfer are completed includes:

[0113] After the DMA completes the transfer of point cloud data from the host to the buffer space, it immediately starts the compression module to compress the data in the pre-compression write buffer and allocates new write buffer space to store the compressed point cloud data. At this point, the data transmission is in the form of a data stream. Run-length encoding is used directly to compress the data stream, that is, only a code representing a certain data value and the run length of that value are stored, reducing the number of times the value is stored and achieving lossless compression of the data stream. After all compression and transfer are completed, the pre-compression write buffer space is released, and FTL completes the mapping from LBA to the post-compression write buffer space.

[0114] The point cloud data is compressed during writing. After the FTL completes the remapping, the NFC process of transferring the data from the buffer into the NAND flash memory is initiated, including:

[0115] After FTL completes the mapping from the compressed write buffer space to the PBA in NAND, the mapping relationship from LBA to PBA is established. By configuring NFC information and starting NFC through the bus manager, the data in the compressed write buffer space is stored into NAND, completing the entire data writing process.

[0116] When reading point cloud data, decompression is performed. After receiving the read command, the interaction layer of the SSD controller parses the command information and passes the parsed command information to the FTL. The process includes: after receiving the data read command issued by the Host, the SSD controller interface layer parses it and passes the parsed PBA and other command information to the FTL layer.

[0117] During point cloud data reading, decompression processing is performed. After receiving the command information, the FTL requests pre-decompression read buffer space and then initiates NFC to move the point cloud data to be read from the NAND terminal into the pre-decompression read buffer. The process includes:

[0118] After receiving the command information, FTL requests a pre-decompression read buffer space through the bus manager based on the amount of data carried in the PBA, which is used to cache the SSD data to be read. After obtaining enough read buffer space, FTL configures NFC information and starts NFC through the bus controller to move the point cloud data to be read from the SSD into the pre-decompression write buffer space, and completes the mapping from PBA to the pre-decompression buffer space.

[0119] When reading point cloud data, decompression processing is performed. This process includes decompressing the data in the pre-decompression read buffer, allocating a new post-decompression read buffer space, storing the decompressed data in the post-decompression read buffer space, and releasing the pre-decompression read buffer space after all decompression and transfer are completed.

[0120] After NFC completes the transfer of point cloud data from NAND to the pre-decompression read buffer space, it immediately starts the decompression module to decompress the data in the pre-decompression write buffer and allocates new read buffer space to store the decompressed point cloud data. Run-length decoding is used to decompress the compressed data, that is, to restore the value storage according to each numeric code and its run length, such as restoring "05" to "00000". After all data is decompressed and transferred, the pre-decompression read buffer space is released, and FTL completes the mapping from PBA to the post-decompression read buffer space.

[0121] The point cloud data is decompressed during reading. After the FTL completes remapping, the DMA is then started to transfer the data in the buffer to the Host. The process includes:

[0122] After FTL completes the mapping from the decompressed read buffer space to the PBA in NAND, it establishes the mapping relationship between LBA and the decompressed read buffer space. By configuring DMA information and starting DMA through the bus manager, the data in the decompressed read buffer space is transferred to the Host, completing the entire data reading process.

[0123] It should be noted that although several modules or units of the device for performing actions have been mentioned in the detailed description above, this division is not mandatory. In fact, according to embodiments of the present invention, the features and functions of two or more modules or units described above can be embodied in one module or unit. Conversely, the features and functions of one module or unit described above can be further divided and embodied by multiple modules or units.

[0124] A third aspect of the present invention also provides a computer device 1000, including a memory 1001 and a processor 1002, wherein the memory stores a computer program, which, when executed by the processor, implements the method of any of the above embodiments.

[0125] like Figure 4 The diagram shown is a hardware structure schematic of an embodiment of the computer device for executing the high-speed storage method for three-dimensional point clouds provided by the present invention. Figure 4 Taking the computer device 1000 shown as an example, this computer device includes a processor 1002 and a memory 1001, and may also include an input device 430 and an output device 440. The processor 1002, memory 1001, input device 430, and output device 440 can be connected via a bus or other means. Figure 4Taking a bus connection as an example, input device 430 can receive input digital or character information, and generate signal inputs related to high-speed storage of 3D point clouds. Output device 440 may include display devices such as a display screen.

[0126] Memory 1001, as a non-volatile computer-readable storage medium, can be used to store non-volatile software programs, non-volatile computer-executable programs, and modules, such as the program instructions / modules corresponding to the high-speed 3D point cloud storage method in this embodiment. Memory 1001 may include a program storage area and a data storage area, wherein the program storage area may store the operating system and application programs required for at least one function; the data storage area may store data created by using the high-speed 3D point cloud storage method, etc. In addition, memory 1001 may include high-speed random access memory and may also include non-volatile memory, such as at least one disk storage device, flash memory device, or other non-volatile solid-state storage device. In some embodiments, memory 1001 may optionally include memory remotely located relative to processor 1002, and these remote memories can be connected to the local module via a network. Examples of such networks include, but are not limited to, the Internet, corporate intranets, local area networks, mobile communication networks, and combinations thereof.

[0127] In some embodiments, processor 1002 may be a central processing unit (CPU), controller, microcontroller, microprocessor, or other data processing chip. Processor 1002 is typically used to control the overall operation of computer device 1000. In this embodiment, processor 1002 is used to run program code stored in memory 1001 or process data. In this embodiment, the processors 1002 of multiple computer devices 1000 execute various server functions and data processing by running non-volatile software programs, instructions, and modules stored in memory 1001, thereby implementing the high-speed three-dimensional point cloud storage method described in the above embodiment.

[0128] Through the above description of the embodiments, those skilled in the art can clearly understand that each embodiment can be implemented by means of software plus a general-purpose hardware platform, and of course, it can also be implemented by hardware. Those skilled in the art can understand that all or part of the processes in the methods of the above embodiments can be implemented by a computer program instructing related hardware. The program can be stored in a computer-compatible storage medium. When the program is executed, it can include the processes of the embodiments of the above methods, that is, implement the high-speed storage method for three-dimensional point clouds of the above method embodiments.

[0129] A fourth aspect of the present invention also provides a computer-readable storage medium. Figure 5A schematic diagram of a computer-readable storage medium for a high-speed three-dimensional point cloud storage method provided according to an embodiment of the present invention is shown. Figure 5 As shown, the computer-readable storage medium 2000 stores computer program instructions 2001, which can be executed by a processor. When the computer program instructions 2001 are executed, they implement the method of any of the above embodiments, that is, implement the three-dimensional point cloud high-speed storage method of the above method embodiments.

[0130] It should be understood that, where there is no conflict, all the embodiments, features and advantages described above for the high-speed storage method of three-dimensional point clouds according to the present invention are equally applicable to the high-speed storage method and storage medium of three-dimensional point clouds according to the present invention.

[0131] Those skilled in the art will also understand that the various exemplary logic blocks, modules, circuits, and algorithm steps described in conjunction with the disclosure herein can be implemented as electronic hardware, computer software, or a combination of both. To clearly illustrate this interchangeability between hardware and software, the functionality of various illustrative components, blocks, modules, circuits, and steps has been generally described. Whether this functionality is implemented as software or as hardware depends on the specific application and the design constraints imposed on the system as a whole. Those skilled in the art can implement the functionality in various ways for each specific application, but such implementation decisions should not be construed as departing from the scope of the embodiments disclosed herein.

[0132] Finally, it should be noted that the computer-readable storage medium (e.g., memory) described herein can be volatile memory or non-volatile memory, or may include both volatile and non-volatile memory. By way of example, and not limitation, non-volatile memory may include read-only memory (ROM), programmable ROM (PROM), electrically programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), or flash memory. Volatile memory may include random access memory (RAM), which can act as external cache memory. By way of example, and not limitation, RAM can be obtained in various forms, such as synchronous RAM (DRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), dual data rate SDRAM (DDRSDRAM), enhanced SDRAM (ESDRAM), synchronous link DRAM (SLDRAM), and direct Rambus RAM (DRRAM). The storage devices disclosed herein are intended to include, but are not limited to, these and other suitable types of memory.

[0133] The various exemplary logic blocks, modules, and circuits described herein can be implemented or performed using the following components designed to perform the functions herein: general-purpose processors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs) or other programmable logic devices, discrete gate or transistor logic, discrete hardware components, or any combination of these components. A general-purpose processor may be a microprocessor, but alternatively, the processor may be any conventional processor, controller, microcontroller, or state machine. The processor may also be implemented as a combination of computing devices, such as a combination of a DSP and a microprocessor, multiple microprocessors, one or more microprocessors combined with a DSP, and / or any other such configuration.

[0134] In summary, this invention proposes a high-speed storage method and system for 3D point clouds. The system obtains all identified network port information from two servers via commands and configures different network segment IP addresses for all ports on one server (e.g., the server side). After successful configuration, using the IP address configured on the first port of the server side, it iterates through all ports on the client side, setting IP addresses in the same network segment as the first port of the server side. After setting the IP addresses in the same network segment, it checks whether the IP addresses of the server side and the client side ports can ping each other. If they can ping each other, it indicates that the two ports are interconnected. Then, it iterates through the second port of the server side and the remaining client side ports until all ports have been pinged. This method significantly improves IP configuration efficiency and reduces configuration time, avoids rework caused by incorrect recording of interconnection port information or configuration errors, improves testing efficiency, and saves time.

[0135] The above are exemplary embodiments disclosed in this invention. However, it should be noted that various changes and modifications can be made without departing from the scope of the embodiments of this invention as defined by the claims. The functions, steps, and / or actions of the methods according to the disclosed embodiments described herein do not need to be performed in any particular order. Furthermore, although the elements disclosed in the embodiments of this invention may be described or claimed individually, they may be understood as multiple unless explicitly limited to a singular number.

[0136] It should be understood that, as used herein, the singular form "a" is intended to include the plural form as well, unless the context clearly supports an exception. It should also be understood that, as used herein, "and / or" refers to any and all possible combinations of one or more of the associatedly listed items. The embodiment numbers disclosed above are for descriptive purposes only and do not represent the superiority or inferiority of the embodiments.

[0137] Those skilled in the art should understand that the discussion of any of the above embodiments is merely exemplary and is not intended to imply that the scope of the invention (including the claims) is limited to these examples. Within the framework of the invention, technical features of the above embodiments or different embodiments can be combined, and many other variations of different aspects of the invention exist, which are not provided in the details for the sake of brevity. Therefore, any omissions, modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of the invention should be included within the protection scope of the invention.

Claims

1. A high-speed storage method for three-dimensional point clouds, characterized in that, This method, applied to compression processing during point cloud data writing, includes the following steps: After the host file system obtains the point cloud data, it immediately simplifies the point cloud and sends a storage write command to the SSD after simplification is complete. After receiving a write command, the SSD controller's interaction layer parses the command information and passes the parsed command information to the FTL. After receiving the command information, FTL requests the space of the write buffer before compression and then starts DMA to move the point cloud data to be written from the host to the write buffer before compression. Compress the data in the pre-compression write buffer, allocate a new post-compression write buffer space, store the compressed data in the post-compression write buffer space, and release the pre-compression write buffer space after all compression and transfer are completed. After FTL completes the remapping, NFC is immediately activated to transfer the data in the buffer into NAND. After the host file system acquires the point cloud data, it then performs point cloud simplification, including: Automatically layer point cloud data; simplify the layered point cloud data; The layered point cloud data is simplified using the following formula; Points that satisfy the above formula are retained, while points that do not satisfy the above formula are discarded. For point Time and The Euclidean distance between the lines containing the two points, , ) is a point In the coordinates of the layered plane, For point and The equation of the line in question: For the threshold size, The total number of layers, For the first Floor height, It is a regulating factor.

2. The high-speed storage method for three-dimensional point clouds according to claim 1, characterized in that, The aforementioned high-speed storage method for three-dimensional point clouds is also applied to decompression processing during point cloud data reading. This method includes the following steps: The host sends a data read command to the SSD; After receiving a read command, the SSD controller's interaction layer parses the command information and passes the parsed command information to the FTL. After receiving the command message, FTL requests the pre-decompression read buffer space and then starts NFC to move the point cloud data to be read from the NAND terminal into the pre-decompression read buffer. Decompress the data in the pre-decompression read buffer, allocate a new post-decompression read buffer space, store the decompressed data into the post-decompression read buffer space, and release the pre-decompression read buffer space after all decompression and transfer are completed. After FTL completes the remapping, it immediately starts DMA to transfer the data in the buffer to the Host.

3. The high-speed storage method for three-dimensional point clouds according to claim 2, characterized in that, When compressing point cloud data during writing, the host file system obtains the point cloud data and then simplifies it. The process of sending a storage write command to the SSD after simplification includes: The host receives the raw point cloud data collected by the acquisition device. After receiving the raw point cloud, it immediately performs a reduction. After the point cloud reduction is completed, the host sends a data write command to the SSD.

4. The high-speed storage method for three-dimensional point clouds according to claim 3, characterized in that, When point cloud data is written and compressed, the interaction layer of the SSD controller receives the write command, parses the command information, and passes the parsed command information to the FTL. The process includes: After receiving the command information, FTL requests a pre-compression write buffer space through the bus manager based on the amount of data carried in the LBA, which is used to cache the host-side data to be written to the SSD. Once sufficient write buffer space is allocated, FTL configures DMA information and starts DMA through the bus controller to move the point cloud data to be written from the host to the pre-compression write buffer space and complete the mapping from LBA to the buffer space.

5. The high-speed storage method for three-dimensional point clouds according to claim 4, characterized in that, When compressing point cloud data during writing, the process of compressing the data in the pre-compression write buffer, allocating a new post-compression write buffer space, storing the compressed data in the post-compression write buffer space, and releasing the pre-compression write buffer space after all compression and transfer are completed includes: After the DMA completes the transfer of point cloud data from the HOST to the buffer space, it immediately starts the compression module to compress the data in the write buffer before compression and allocates new write buffer space to store the compressed point cloud data. The point cloud data is transmitted in the form of a data stream, and the data stream is directly compressed using run-length encoding. After all compression and transfer are completed, the pre-compression write buffer space is released, and FTL completes the mapping from LBA to the post-compression write buffer space.

6. The high-speed storage method for three-dimensional point clouds according to claim 4, characterized in that, When point cloud data is written and compressed, after the FTL completes the remapping, the NFC process of moving the data in the buffer into the NAND is initiated. After FTL completes the mapping from the compressed write buffer space to the PBA in NAND, the mapping relationship from LBA to PBA is established. By configuring NFC information and starting NFC through the bus manager, the data in the compressed write buffer space is stored into NAND, completing the entire data writing process.

7. The high-speed storage method for three-dimensional point clouds according to claim 5, characterized in that, During the decompression process of point cloud data reading, the interaction layer of the SSD controller receives the read command, parses the command information, and passes the parsed command information to the FTL. The process includes: Get the network port IDs of all network cards under the OS of the server and client, and count the number of server ports and client ports, respectively marked as num_s and num_c; If num_s ≤ num_c, then iterate through all ports on the server side and set IPs of different network segments. If num_s > num_c, then iterate through all ports on the client side and set IPs of different network segments.

8. The high-speed storage method for three-dimensional point clouds according to claim 5, characterized in that, When decompressing point cloud data during reading, after receiving the command information, the FTL requests pre-decompression read buffer space and then initiates NFC to move the point cloud data to be read from the NAND terminal into the pre-decompression read buffer. The process includes: After receiving the command information, FTL requests a pre-decompression read buffer space through the bus manager based on the amount of data carried in the PBA, which is used to cache the SSD data to be read. After acquiring sufficient read buffer space, FTL configures NFC information and initiates NFC via the bus controller to move the point cloud data to be read from the SSD to the pre-decompression write buffer space, and completes the mapping from PBA to the pre-decompression buffer space.

9. The high-speed storage method for three-dimensional point clouds according to claim 5, characterized in that, When decompressing point cloud data during reading, the process is characterized by the following steps: decompressing the data in the pre-decompression read buffer, allocating a new post-decompression read buffer space, storing the decompressed data in the post-decompression read buffer space, and releasing the pre-decompression read buffer space after all decompression and transfer are completed. After NFC completes the transfer of point cloud data from NAND to the pre-decompression read buffer space, it immediately starts the decompression module to decompress the data in the pre-decompression write buffer and requests a new read buffer space to store the decompressed point cloud data. Run-length decoding is used to decompress the compressed data, that is, to restore the value storage according to each value code and its run length, such as "05" being restored to "00000"; After all data is decompressed and transferred, the pre-decompression read buffer space is released, and FTL completes the mapping from PBA to the post-decompression read buffer space.

10. The high-speed storage method for three-dimensional point clouds according to claim 5, characterized in that, When decompressing point cloud data during reading, the process is characterized by the following: after the FTL completes remapping, the DMA process that immediately starts transferring the data in the buffer to the Host includes: After FTL completes the mapping from the decompressed read buffer space to the PBA in NAND, it establishes the mapping relationship between LBA and the decompressed read buffer space. By configuring DMA information and starting DMA through the bus manager, the data in the decompressed read buffer space is transferred to the Host, completing the entire data reading process.

Citation Information

Patent Citations

  • Writing-in and reading method of solid-state memory system flash translation layer (FTL) with compression function

    CN103136109A

  • Dara storage apparatus capable of varying map cache buffer size

    CN110781093A