Point cloud compression method and apparatus and point cloud decoding method
By compressing point clouds using hash shrinking technology, the problem of large point cloud data volume is solved, achieving efficient data storage and transmission, which is applicable to fields such as autonomous driving and geographic information systems.
Patent Information
- Application Number
- CN202180027098.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2021-10-14
- Filing Date
- 2021-10-18
- Publication Date
- 2025-12-16
- Estimated Expiration
- 2041-10-18
AI Technical Summary
Existing point cloud compression technologies suffer from problems such as large data volume and low transmission and storage efficiency when processing high-dimensional point cloud data, especially in autonomous vehicles, geographic information systems, and cultural heritage visualization.
Hash shrinkage is used to compress point clouds by dividing the point cloud into multiple bounding boxes and removing information of non-boundary points when the hash table reaches its maximum size. The size of the hash table is managed by combining the check points of the boundary points, and the hash shrinkage strategy is used to reduce the storage requirements of the hash table.
It effectively reduces the storage and transmission requirements of point cloud data, improves coding efficiency, and is suitable for various point cloud application scenarios, especially in autonomous driving and geographic information systems, reducing the resource consumption of data processing.
Smart Images

Figure CN115486079B_ABST
Abstract
Description
[0001] Cross-reference to related applications
[0002] This application claims priority to U.S. Patent Application No. 17 / 501,779, filed October 14, 2021, entitled “Method and Apparatus for Constructing 3D Geometry,” and U.S. Patent Application No. 63 / 157,519, filed March 5, 2021, entitled “Update of Hash Shrinkage for Point Cloud Encoding,” the entire contents of which are incorporated herein by reference. Technical Field
[0003] This application describes embodiments of point cloud coding (PCC) that generally involve a hash shrinking method. Background Technology
[0004] The background description provided herein is for the purpose of presenting the general context of this application. The extent of the work of the currently named inventors described in the background section and various aspects of this specification does not indicate that it was prior art at the time of filing of this application, nor is it expressly or implied that it was acknowledged as prior art of this application.
[0005] In recent years, point clouds have been widely used. For example, point clouds are used for object detection and localization in autonomous vehicles, for mapping in Geographic Information Systems (GIS), and for visualizing and archiving cultural heritage objects and collections. Summary of the Invention
[0006] This application provides an apparatus for point cloud compression. An apparatus includes processing circuitry that encodes information associated with a current point among a plurality of points in a point cloud. The plurality of points are divided into a plurality of bounding boxes. The processing circuitry determines whether a first size of a hash table is greater than or equal to a predetermined maximum size of the hash table. Based on the first size of the hash table being greater than or equal to the predetermined maximum size of the hash table, the processing circuitry removes information associated with non-boundary points within the plurality of bounding boxes from the hash table. The processing circuitry stores the encoded information associated with the current point in the hash table.
[0007] In one embodiment, the processing circuitry determines whether a checkpoint of the current point is the same as a saved checkpoint, the checkpoint of the current point being generated based on a boundary size of each of the plurality of boundary boxes and a location of the current point. The processing circuitry removes the information associated with the non-boundary points of the plurality of boundary boxes from the hash table based on the checkpoint of the current point being different from the saved checkpoint. The processing circuitry modifies the saved checkpoint based on the checkpoint of the current point.
[0008] In one embodiment, the processing circuitry determines whether a second size of the hash table is greater than or equal to the predetermined maximum size of the hash table. Based on the second size of the hash table being greater than or equal to the predetermined maximum size of the hash table, the processing circuitry removes information associated with all remaining points of the plurality of boundary boxes from the hash table.
[0009] In one embodiment, the processing circuitry removes information associated with all remaining points of the plurality of boundary boxes from the hash table.
[0010] In one embodiment, the processing circuitry encodes at least one of the following into a bitstream: the predetermined maximum size of the hash table and a boundary size of each of the plurality of boundary boxes.
[0011] In one embodiment, the processing circuitry encodes a mode index into a bitstream, the mode index indicating one of a plurality of hash table shrinkage modes.
[0012] In one embodiment, the processing circuitry encodes at least one of the following based on the mode index: the predetermined maximum size of the hash table and a boundary size of each of the plurality of boundary boxes.
[0013] In one embodiment, the information associated with the current point includes one of the following: geometry information associated with the current block and attribute information associated with the current block.
[0014] Aspects of the disclosure provide a method for point cloud compression. The method can perform any one or combination of processes performed by an apparatus for point cloud compression. In the method, information associated with a current point of a plurality of points of a point cloud is encoded. The plurality of points is partitioned into a plurality of boundary boxes. A first size of a hash table is determined to be greater than or equal to a predetermined maximum size of the hash table. Based on the first size of the hash table being greater than or equal to the predetermined maximum size of the hash table, information associated with non-boundary points of the plurality of boundary boxes is removed from the hash table. The encoded information associated with the current point is stored into the hash table.
[0015] Aspects of the disclosure also provide a non-transitory computer-readable medium having instructions stored thereon that, when executed by at least one processor, cause the at least one processor to perform any one method or a combination of methods for point cloud compression. BRIEF DESCRIPTION OF DRAWINGS
[0016] Other features, properties, and various advantages of the disclosed subject matter will become more apparent from the following detailed description and accompanying drawings, in which:
[0017] Figure 1 An exemplary forward transform in attribute coding based on lifting is shown in accordance with embodiments of the disclosure.
[0018] Figure 2 An exemplary inverse transform in attribute coding based on lifting is shown in accordance with embodiments of the disclosure.
[0019] Figure 3A An exemplary forward transform in attribute coding based on region adaptive hierarchical transform is shown in accordance with embodiments of the disclosure.
[0020] Figure 3B An exemplary inverse transform in attribute coding based on region adaptive hierarchical transform is shown in accordance with embodiments of the disclosure.
[0021] Figure 4 An exemplary two-dimensional illustration of a bounding box is shown in accordance with embodiments of the disclosure.
[0022] Figure 5 An exemplary hash pruning algorithm is shown in accordance with embodiments of the disclosure.
[0023] Figure 6 Another exemplary hash pruning algorithm is shown in accordance with embodiments of the disclosure.
[0024] Figure 7 Another exemplary hash pruning algorithm is shown in accordance with embodiments of the disclosure.
[0025] Figure 8 Another exemplary hash pruning algorithm is shown in accordance with embodiments of the disclosure.
[0026] Figure 9 An exemplary flowchart is shown in accordance with embodiments of the disclosure.
[0027] Figure 10 Another exemplary flowchart of embodiments of the disclosure is shown.
[0028] Figure 11 A schematic diagram of a computer system is shown in accordance with embodiments of the disclosure. DETAILED DESCRIPTION
[0029] I. Point cloud compression
[0030] A point cloud can contain a set of high-dimensional points, e.g., three-dimensional (3D) points. Each 3D point can include 3D position information and additional attributes, e.g., color, reflectance, etc. These information can be captured by multiple cameras and depth sensors or variously configured lidars, and can consist of thousands, or even hundreds of millions of points to represent the original scene faithfully.
[0031] Compression techniques are used to reduce the amount of data required to represent a point cloud for faster transmission or smaller storage. The International Organization for Standardization (ISO) / International Electrotechnical Commission (IEC) Moving Picture Experts Group (MPEG) created a Study Group (MPEG-PCC) to standardize compression techniques for static or dynamic clouds.
[0032] In some related examples such as Test Model 13 (TMC13) in MPEG, geometry information and related attributes (e.g., color or reflectance information) are compressed separately. With an octree partitioning mechanism, geometry information (geometry information is 3D coordinates of a point cloud) is encoded together with associated occupancy information. Then, a separate attribute encoding technique (e.g., a prediction-based attribute encoding technique, a lifting-based attribute encoding technique, or a region-adaptive hierarchical transform (RAHT)-based attribute encoding technique) is used to compress attributes based on reconstructed geometry.
[0033] In the following discussion, only one level of detail (LoD) is used as an example of point cloud representation.
[0034] In prediction-based attribute encoding, (P i ) i=1…N is a set of positions associated with points in a point cloud, (M i ) i=1…N is a Morton code associated with (P i ) i=1…N First, points are sorted in ascending order according to the associated Morton code. Set I as an array of point indices sorted according to this process. An encoder (or decoder) compresses (or decompresses) individual points according to the order defined by I. In each iteration i, a point P i is selected. The distances of P i to s (e.g., s = 64) previous points are analyzed, and k (e.g., k = 3) nearest neighbors of P i are selected for prediction. More precisely, a i ) i∈0…k-1 is predicted by using a linear interpolation process based on the distances of the nearest neighbors of point i. Set is the set of k nearest neighbors of the current point i, set is the decoded (or reconstructed) attribute value, and set is the distance to the current point. The predicted attribute value is given by
[0035]
[0036] The lifting-based attribute encoding is based on the prediction-based attribute encoding. The main difference compared to the prediction-based attribute encoding is that two additional steps are introduced in the lifting-based attribute encoding. The first step is to introduce an update operator, and the second step is to use an adaptive quantization strategy. Figure 1 and Figure 2 illustrate an exemplary forward transform and an exemplary inverse transform in the lifting-based attribute encoding according to an embodiment of the present disclosure, respectively.
[0037] Figure 3A and Figure 3B illustrate an exemplary forward transform and an exemplary inverse transform in the RAHT-based attribute encoding according to an embodiment of the present disclosure, respectively. In Figure 3A and Figure 3B , and w0 is the weight sign of the input coefficient F l+1,2n , while w1 is the weight sign of the input coefficient F l+1,2n+1 .
[0038] II. Hash-based point cloud compression
[0039] According to aspects of the present disclosure, the hash-based neighbor information access method can be used for geometry encoding and attribute encoding in point cloud compression.
[0040] The encoded geometry (or attribute) information can be saved in a hash table and retrieved as the prediction value of the subsequent encoded node. The hash table can be used to store the reconstructed geometry (or attribute) value. For example, a hash table H is maintained, where the key of the hash table can be the Morton code of the 3D coordinates of a point, i.e., M i = Morton(x i , y i , z i ), where (x i , y i , z i ) is the 3D coordinates of the i-th point. Using the Morton code M i as the key, the reconstructed geometry (or attribute) value can be directly accessed in the hash table H. If H(M i ) is NULL, it indicates that the position (x i , y iz i ) is not occupied and has no geometry (or attribute) value associated with the location (x i ,y i ,z i ) or the geometry (or attribute) value associated with the location (x i ,y i ,z i ) has not been encoded.
[0041] When encoding (or decoding) the geometry (or attribute) value of the current point, the previously encoded geometry (or attribute) value of the neighboring point of the current point can be obtained from the hash table H as the prediction value of the current point. After encoding (or decoding) the geometry (or attribute) value of the current point, the reconstructed geometry (or attribute) value of the current point is stored in the hash table H.
[0042] According to aspects of the present disclosure, the size of the hash table can be reduced based on a hash shrinking technique. The hash shrinking technique can be used if the size of the hash table exceeds the maximum size of the hash table. Since the points of the point cloud can be divided into multiple bounding boxes, in order to reduce the size of the hash table while maintaining the encoding efficiency, some points can be removed. In one method, all points that are not at the boundary of the multiple bounding boxes of the point cloud can be removed and the boundary points are kept.
[0043] In some embodiments, the multiple boundary points can be allowed to exceed the maximum hash table size under one or more conditions. For example, if the point cloud has a dense geometry distribution (e.g., the points in the point cloud are densely distributed), the number of boundary points can be greater than the maximum hash table size. In this case, the maximum hash table size can be a soft threshold rather than a hard threshold, because the actual size of the hash table can exceed the maximum hash table size.
[0044] The present disclosure includes hash shrinking strategies to further reduce the actual hash table size. Some shrinking strategies can cause a decrease in encoding efficiency. Notably, the hash shrinking strategies can be applied to one or both of geometry encoding and attribute encoding in PCC applications.
[0045] Notably, the hash shrinking strategies are not limited to TMC13 software or PCC in MPEG or PCC in Audio Video Coding Standard (AVS). The hash shrinking strategies can be a general solution for PCC systems.
[0046] In some embodiments, at least one parameter can be introduced in the hash shrinking method. The first parameter can be the maximum hash table size, and the second parameter can be the boundary size of each of the multiple bounding boxes of the point cloud. The maximum hash table size can be defined in a log2 scale. For example, one parameter K defines the maximum size of the hash table as 2 KThe boundary size can also be defined in log2 scale. For example, M defines the boundary box in 3D space (2 M ,2 M ,2 M ). It is worth noting that these two parameters can be fixed for all cases, or configured separately for different cases and sent in the bitstream as part of the high-level syntax, such as the sequence parameter set, the geometry parameter set, the slice header, or the like. When the hash table reaches the maximum capacity, the hash table can be reduced by removing some or all elements in the hash table. The rules for which elements to remove can be different in different cases.
[0047] According to aspects of the present disclosure, when the hash table reaches the maximum capacity, elements storing information of non-boundary points in the point cloud can be removed from the hash table.
[0048] Figure 4 An exemplary two-dimensional illustration of the boundary boxes (401)-(404) is shown according to embodiments of the present disclosure, in which the boundary boxes (401)-(403) are encoded, while the boundary box (404) has not yet been encoded. In each boundary box, the shaded area represents the boundary points. For example, the shaded area (411) represents the boundary points of the boundary box (401), and the area (412) represents the non-boundary points of the boundary box (401). It is worth noting that the boundary points are not limited to being located at the bottom side and / or the right side of the boundary box in the two-dimensional representation. In other cases, the boundary points can be located at a combination of one or more other sides, such as the left side and / or the top side of the boundary box in the two-dimensional representation.
[0049] Figure 5 A hash shrinking algorithm according to embodiments of the present disclosure is shown. In this hash shrinking algorithm, elements in the hash table storing information of non-boundary points of the boundary box are removed from the hash table. For example, if the size of each boundary box in the 3D space is (2 M ,2 M ,2 M ), at least one position coordinate of the boundary points is equal to 2 i*M -1 (i = 1, 2, 3, …). In this embodiment, all hash elements storing boundary point information are retained, and the remaining elements are removed from the hash table.
[0050] Figure 6Another hash shrinking algorithm according to embodiments of the present disclosure is shown. In this hash shrinking algorithm, in order to limit the coding efficiency loss, the hash operation can only be performed when the current point p reaches a new bounding box. For example, assume that the points in the input point cloud are sorted in a certain order, such as Morton order. A check point can be used to check whether the current point p reaches a new bounding box. The coordinates of the check point of the current point p can be defined as (p.x>>M, p.y>>M, p.z>>M), where 2 M is the boundary size. If the check point of the current point p is different from the saved check point, it indicates that the current point reaches a new bounding box that does not contain the saved check point, and then the shrinking operation can be applied and the saved check point is updated to the check point of the current point. Take Figure 4 for example, the initial check point can be set to (0, 0, 0) in the bounding box (401), and M = 4, so that the boundary size of each bounding box is 16. If the current point p is located at (20, 20, 20), the check point of the current point p is (20>>4, 20>>4, 20>>4) = (1, 1, 1), which is different from the initial check point (0, 0, 0). This means that the current point p reaches the bounding box (402), so if the size of the hash table exceeds the maximum hash table size, the shrinking operation can be applied.
[0051] Figure 7 Another shrinking algorithm according to embodiments of the present disclosure is shown. In this shrinking algorithm, after shrinking the hash table by removing non-boundary points as shown in Figure 6 , if the hash table size is still greater than the defined threshold (for example, the maximum hash table size), additional points in the hash table can be removed. In one embodiment, all points in the hash table can be removed. In one embodiment, after shrinking the hash table by removing non-boundary points as shown in Figure 6 , if the hash table size is still greater than the defined threshold, all points in the hash table can not be removed, but some points can be removed according to specific rules. For example, according to specific rules, the points that are first added to the hash table can be removed, the points with smaller Morton codes in the hash table can be removed, and so on.
[0052] Figure 8 Another shrinking algorithm according to embodiments of the present disclosure is shown. In this shrinking algorithm, the maximum hash size defined by K is a hard threshold. That is, once the hash table size exceeds the hard threshold, the hash table can be emptied. In one embodiment, the hash table is emptied by removing all points. In this case, the boundary size M can be omitted because the shrinking condition no longer depends on the boundary size M.
[0053] In some embodiments, the predefined parameters in the hash shrink algorithm, e.g., K = maxHashSizeLog2 and M = hashBoundarySizeLog2, can be signaled. In some embodiments, the predefined parameters can be signaled in the high-level syntax. In addition, a shrink mode index can be signaled to switch between different shrink strategies. For example, these parameters can be specified in the sequence header, slice header, geometry parameter set (GPS), or attribute parameter set (APS) of the bitstream. Since these shrink strategies can be used for geometry coding and attribute coding, the parameters can be configured separately for geometry coding and attribute coding. Thus, the two sets of parameters can be signaled in GPS and APS, respectively.
[0054] In one embodiment, K and M are signaled for geometry coding in GPS as shown in Table 1. The syntax element gps_hash_max_size_log2 defines the maximum hash table size in log2, i.e., K = gps_hash_max_size_log2, for geometry coding. The syntax element gps_hash_boundary_size_log2 defines the boundary size in log2, i.e., M = gps_hash_boundary_size_log2, for geometry coding. The syntax element gps_hash_shrink_mode specifies different hash shrink strategies for geometry coding.
[0055] Table 1
[0056]
[0057] In one embodiment, K and M are signaled for attribute coding in APS as shown in Table 2. The syntax element aps_hash_max_size_log2 defines the maximum hash table size in log2, i.e., K = aps_hash_max_size_log2, for attribute coding. The syntax element gps_hash_boundary_size_log2 defines the boundary size in log2, i.e., M = gps_hash_boundary_size_log2, for attribute coding. The syntax element aps_hash_shrink_mode specifies different hash shrink strategies for attribute coding.
[0058] Table 2
[0059]
[0060] In some embodiments, different shrinking strategies can have different sets of parameters. Table 3 shows different sets of parameters in the APS, while the same signaling method can be applied in the GPS as well. Syntax elements aps_hash_mode0_param0 and aps_hash_mode0_param1 are example parameters when syntax element aps_hash_shrink_mode is equal to 0. For example, syntax elements aps_hash_mode0_param0 and aps_hash_mode0_param1 can be a first value of a maximum hash table size and a first value of a boundary size, respectively. Syntax elements aps_hash_mode1_param0 and aps_hash_mode1_param1 are example parameters when syntax element aps_hash_shrink_mode is equal to 1. For example, syntax elements aps_hash_mode1_param0 and aps_hash_mode1_param1 can be a second value of a maximum hash table size and a second value of a boundary size, respectively.
[0061] Table 3
[0062]
[0063] III. Flowchart
[0064] Figure 9 A flowchart illustrating an example process (900) according to embodiments of the disclosure is shown. In various embodiments, the process (900) is performed by processing circuitry, e.g., processing circuitry as shown in FIG. 1. In some embodiments, the process (900) is implemented in software instructions, and thus when the processing circuitry executes the software instructions, the processing circuitry performs the process (900). Figure 11
[0065] The process (900) can generally begin at step (S910), where the process (900) encodes information associated with a current point of a plurality of points of a point cloud. The plurality of points are partitioned into a plurality of bounding boxes. Then, the process (900) proceeds to step (S920).
[0066] At step (S920), the process (900) determines whether a first size of a hash table is greater than or equal to a predetermined maximum size of the hash table. Then, the process (900) proceeds to step (S930).
[0067] At step (S930), the process (900) removes, from the hash table, information associated with non-boundary points of the plurality of bounding boxes based on the first size of the hash table being greater than or equal to the predetermined maximum size of the hash table. Then, the process (900) proceeds to step (S940).
[0068] At step (S940), process (900) stores the encoded information associated with the current point into the hash table. Process (900) then ends.
[0069] In one embodiment, process (900) determines whether a checkpoint of the current point is consistent with a saved checkpoint. The checkpoint of the current point is determined based on the boundary size of each of the plurality of boundary boxes. Process (900) removes, from the hash table, information associated with non-boundary points of the plurality of boundary boxes based on the checkpoint of the current point being different from the saved checkpoint. Process (900) modifies the saved checkpoint based on the checkpoint of the current point.
[0070] In one embodiment, process (900) determines whether a second size of the hash table is greater than or equal to a predetermined maximum size of the hash table. Process (900) removes, from the hash table, information associated with all remaining points of the plurality of boundary boxes based on the second size of the hash table being greater than or equal to the predetermined maximum size of the hash table.
[0071] In one embodiment, process (900) removes, from the hash table, information associated with all remaining points of the plurality of boundary boxes.
[0072] In one embodiment, process (900) encodes at least one of the following into the bitstream: the predetermined maximum size of the hash table and the boundary size of each of the plurality of boundary boxes.
[0073] In one embodiment, process (900) encodes a mode index into the bitstream, the mode index indicating one of a plurality of hash table shrinkage modes.
[0074] In one embodiment, process (900) encodes at least one of the following based on the mode index: the predetermined maximum size of the hash table and the boundary size of each of the plurality of boundary boxes.
[0075] In one embodiment, the information associated with the current point includes one of the following: geometry information associated with the current block and attribute information associated with the current block.
[0076] Figure 10 Another flowchart illustrating an exemplary process (1000) according to embodiments of the disclosure is shown. In various embodiments, process (1000) is performed by processing circuitry, e.g., Figure 11 shown in FIG. 1 1 1. In some embodiments, process (1000) is implemented in software instructions, and thus when the processing circuitry executes the software instructions, the processing circuitry performs process (1000).
[0077] The process (1000) can generally begin at step (S1010), where the process (1000) receives a bitstream including a hash table storing encoded information associated with a first subset of points of a point cloud. A second subset of points of the point cloud is omitted or removed from the hash table based on a number of points in the first subset of points and the second subset of points being greater than a predetermined maximum hash table size. The points of the point cloud are divided into a plurality of bounding boxes, and the second subset of points includes non-boundary points of the plurality of bounding boxes. The process (1000) then proceeds to step (S1020).
[0078] At step (S1020), the process (1000) decodes the encoded information associated with the first subset of points of the point cloud. The process (1000) then proceeds to step (S1030).
[0079] At step (S1030), the process (1000) reconstructs the point cloud based on the decoded information associated with the first subset of points of the point cloud. The process (1000) then ends.
[0080] IV. Computer System
[0081] The techniques described above, can be implemented as computer software using computer readable instructions and physically stored in one or more computer-readable media. For example, Figure 11 A computer system (1100) suitable for implementing certain embodiments of the disclosed subject matter is shown.
[0082] Computer software can be coded using any suitable machine code or computer language that can be subject to assembly, compilation, linking, or similar
[0083] Instructions can be executed on various types of computers or components thereof, including, for example, personal computers, tablet computers, servers, smartphones, gaming devices, internet appliances, and the like.
[0084] Figure 11 The components of computer system (1100) shown are exemplary in nature and are not intended to suggest any limitation as to the scope of use or functionality of the computer software implementing embodiments of the present application. Neither should the configuration of components be interpreted as having any dependency or requirement relating to any one or combination of components illustrated in the exemplary embodiment of computer system (1100).
[0085] Computer system (1100) can include certain human interface input devices. Such a human interface input device can be responsive to user input data being in the form of physical motion, physical interaction, and / or physical sounds. Accordingly, computer system (1100) can include a keyboard (1101), mouse (1102), pen, voice recognition device, touch screen (1110), data glove, and / or other human interface input devices.
[0086] The input human interface devices can include one or more of: a keyboard (1101), a mouse (1102), a trackpad (1103), a touch screen (1110), a data
[0087] Computer system (1100) can also include certain human interface output devices. Such human interface output devices can be stimulating one or more of the human senses of sight, touch, taste, smell, and / or hearing. A display (1110) can provide pictures, text or graphics on a computer monitor, LCD screen, etc. These displays (1110) can be internal or external and can include screens that provide tactile feedback to a user. Speakers (1109) or other audio generating devices can provide sounds for the hearing sense. Other output devices, such as haptic feedback devices, can provide tactile feedback to a user. Other output devices, such as CD / DVD writers (not shown), can provide tactile output through tactile feedback to a user.
[0088] Computer system (1100) can also include human accessible storage devices and their associated media and / or computer readable media. Such devices and their associated media can store computer readable instructions, data or computer program code for implementation of techniques described herein. Such computer readable media can be removable and / or built-in. Examples of such devices include a USB thumb drive, a flash memory card, a media disk (e.g. a CD, DVD, Blu-ray disk), a media tape, a magnetic tape, a punch tape, a punch card, etc. Examples of such media include a USB thumb drive, a flash memory card, a magnetic disk, a magnetic tape, a magnetic strip, a punch tape, a punch card, etc.
[0089] Those skilled in the art will further appreciate that the term“computer-readable medium” as used herein does not encompass transitory signals per se.
[0090] The computer system (1100) also can include an interface (1154) to one or more communication networks (1155). The one or more communication networks (1155) can be, for example, wireless, wired, optical, or a combination of such networks. The one or more communication networks (1155) can further be local, wide-area, metropolitan, vehicular and industrial, real-time, delay-tolerant, or a combination of such networks. Examples of the one or more communication networks (1155) include local area networks such as Ethernet, wireless LANs, cellular networks to include GSM, 3G, 4G, 5G, LTE and the like, TV wireline or wireless wide area digital networks to include cable TV, satellite TV, and the like, vehicular and industrial to include CANBus, and the like. Certain networks commonly require external network interface adapters that attached to certain general purpose data ports or peripheral buses (1149) (such as USB ports of the computer system (1100)). Others are commonly integrated into the core of computing systems (1100) by connection to system buses (1140) (such as mobile phone computer systems that integrate cellular network interfaces into the core, or television computer systems that integrate cable or terrestrial TV interfaces into the core). As described above, certain protocols and protocol stacks can be used on each of those networks and network interfaces.
[0091] The above human interface devices, human-accessible storage devices, and network interfaces can be attached to the core (1140) of the computer system (1100) as illustrated in FIG. 11.
[0092] The core (1140) can include one or more Central Processing Units (CPU) (1141), Graphics Processing Units (GPU) (1142), specialized programmable processing units in the form of Field Programmable Gate Areas (FPGA) (1143), hardware accelerators for certain tasks (1144), and so forth. These devices, along with Read-only memory (ROM) (1145), Random-access memory (1146), internal mass storage such as internal non-user accessible hard drives, SSDs, and so forth (1147), can be connected through a system bus (1148). In some computer systems, the system bus (1148) can be accessible through one or more physical plugs to enable extensions by additional CPUs, GPU, and so forth. The peripheral devices can be attached either directly to the core’s system bus (1148), or through a peripheral bus (1149). Architectures for a peripheral bus include PCI, USB, and so forth.
[0093] CPUs (1141), GPUs (1142), FPGAs (1143), and accelerators (1144) can execute certain instructions that, in combination, can make up the aforementioned computer code. That computer code can be stored in ROM (1145) or RAM (1146). Transitional data for the CPU (1141), GPU (1142), and / or FPGA (1143) can be stored in RAM (1146), while permanent data can be stored in for example, internal mass storage (1147). A cache can be used by the CPU (1141), GPU (1142), mass storage (1147), ROM (1145), RAM (1146), and so on, to store frequently- accessed data in a faster accessible data.
[0094] Computer readable media can have thereon computer code, which, when executed by a computer, carries out various computer-implemented operations. The media and computer code can be specially designed and configured for the purposes of the present disclosure, or can be of the type well known and available to those in the computer software art.
[0095] As a non-limiting example, a computer system having architecture (1100), and specifically the core (1140), can be caused to perform a function by one or more processors (including CPUs, GPUs, FPGA, accelerators, and the like) executing software embodied in one or more tangible, computer-readable media. Such computer-readable media can be media associated with user-accessible mass storage as introduced above, as well as certain non-transitory memory, such as certain on- core memory (1147) and ROM (1145). Software can be stored therein and executed by the core (1140) to accomplish the functions of the application. A computer-readable medium can include one or more memory devices (including on-core memory, ROM, RAM, DRAM, SRAM, DDR RAM, flash, tape, enterprise storage devices, disk storage, diskettes, RAMAC, ROMAC, CD-ROM, WORM, holographic, machinereadable, and the like, or other me dium that is suitable to store software). According to a particular need, a computer-readable medium can include one or more of a variety of appropriate devices or chips. Software can cause the core (1140), specifically the processors therein, to execute particular processes or particular parts of particular processes described herein, including defining data structures stored in RAM (1146) and modifying such data structures according to the processes defined by the software. Additionally or alternatively, computer systems can be caused to provide functionality by hardware, either in place of software, or in combination with software, to perform particular processes or particular parts of particular processes described herein. Portions of a process might be implemented as software running in one or more of the processors described herein, in hardware such as ASICs, FPGAs, or other hardware implemented logic, or some combination of software and hardware. Where appropriate, aspects of a process can be performed by a plurality of devices, by a plurality instances of a
[0096] While this application has described a number of exemplary embodiments, there are alterations, modifications, various replacements and various equivalent equivalents that fall within the scope of the present application. Therefore, it should be understood that those skilled in the art will be able to design many systems and methods that, although not explicitly shown or described herein, embody the principles of the present application and thus fall within the spirit and scope of the present application.
Claims
1. A method for point cloud compression, comprising: encoding information associated with a current point of a plurality of points of a point cloud, the plurality of points being partitioned into a plurality of bounding boxes; determining whether a first size of a hash table is greater than or equal to a predetermined maximum size of the hash table, the hash table storing encoded information associated with neighboring points of the current point in the bounding boxes; based on the first size of the hash table being greater than or equal to the predetermined maximum size of the hash table, removing information associated with non-boundary points of the plurality of bounding boxes from the hash table; and storing encoded information associated with the current point into the hash table; wherein the removing comprises: determining whether a checkpoint of the current point is consistent with a saved checkpoint, the checkpoint of the current point being generated based on a boundary size of each of the plurality of bounding boxes and a position of the current point, the checkpoint being used to indicate whether the current point has reached a new bounding box that does not contain the saved checkpoint; based on the checkpoint of the current point being different from the saved checkpoint, removing the information associated with the non-boundary points of the plurality of bounding boxes from the hash table; and based on the checkpoint of the current point, modifying the saved checkpoint.
2. The method of claim 1, wherein, The method further comprises: determining whether a second size of the hash table is greater than or equal to the predetermined maximum size of the hash table, the second size of the hash table referring to a size of the hash table after removing information associated with non-boundary points of the plurality of bounding boxes from the hash table; and based on the second size of the hash table being greater than or equal to the predetermined maximum size of the hash table, removing information associated with all remaining points of the plurality of bounding boxes from the hash table.
3. The method of claim 1, wherein, The method further comprises: removing information associated with all remaining points of the plurality of bounding boxes from the hash table.
4. The method of claim 1, wherein, The method further comprises: encoding at least one of the following into a bitstream: the predetermined maximum size of the hash table; and a boundary size of each of the plurality of bounding boxes.
5. The method of claim 1, wherein, The method further comprises: encoding a mode index into a bitstream, the mode index indicating one of a plurality of hash table shrinkage modes, the hash table shrinkage modes being used to indicate strategies of reducing a size of the hash table.
6. The method of claim 5, wherein, The method further comprises: based on the mode index, encoding at least one of the following: the predetermined maximum size of the hash table and the boundary size of each of the plurality of bounding boxes.
7. The method of claim 1, wherein, The information associated with the current point comprises one of: geometry information associated with the current point; and attribute information associated with the current point.
8. An apparatus for point cloud compression, comprising: processing circuitry configured to: encode information associated with a current point of a plurality of points of a point cloud, the plurality of points being partitioned into a plurality of bounding boxes; determine whether a first size of a hash table is greater than or equal to a predetermined maximum size of the hash table, the hash table storing encoded information associated with neighboring points of the current point in the bounding boxes; remove, from the hash table, information associated with non-boundary points of the plurality of bounding boxes based on the first size of the hash table being greater than or equal to the predetermined maximum size of the hash table; and store, into the hash table, encoded information associated with the current point; wherein the processing circuitry is further configured to: determine whether a check point of the current point is consistent with a saved check point, the check point of the current point being generated based on a boundary size of each of the plurality of bounding boxes and a position of the current point, the check point being used to indicate whether the current point has reached a new bounding box that does not contain the saved check point; remove, from the hash table, the information associated with the non-boundary points of the plurality of bounding boxes based on the check point of the current point being different from the saved check point; and modify the saved check point based on the check point of the current point.
9. The apparatus of claim 8, wherein, the processing circuitry is configured to: determine whether a second size of the hash table is greater than or equal to the predetermined maximum size of the hash table, the second size of the hash table referring to a size of the hash table after removing, from the hash table, information associated with non-boundary points of the plurality of bounding boxes; and remove, from the hash table, information associated with all remaining points of the plurality of bounding boxes based on the second size of the hash table being greater than or equal to the predetermined maximum size of the hash table.
10. The apparatus of claim 8, wherein, the processing circuitry is configured to: remove, from the hash table, information associated with all remaining points of the plurality of bounding boxes.
11. The apparatus of claim 8, wherein, the processing circuitry is configured to: encode, into a bitstream, at least one of: the predetermined maximum size of the hash table; and the boundary size of each of the plurality of bounding boxes.
12. The apparatus of claim 8, wherein, the processing circuitry is configured to: encode, into a bitstream, a mode index, the mode index indicating one of a plurality of hash table shrinkage modes, the hash table shrinkage modes being used to indicate strategies of reducing a size of the hash table.
13. The apparatus of claim 12, wherein, the processing circuitry is configured to: encode, into a bitstream, based on the mode index, at least one of: the predetermined maximum size of the hash table; and the boundary size of each of the plurality of bounding boxes.
14. The apparatus of claim 8, wherein, the information associated with the current point comprises one of: geometry information associated with the current point; and attribute information associated with the current point.
15. A non-transitory computer-readable storage medium having instructions stored thereon that, when executed by at least one processor, cause the at least one processor to perform the method of any one of claims 1 to 7.
16. A method for point cloud decoding, comprising decoding information associated with a current point of a plurality of points of a point cloud, the plurality of points being partitioned into a plurality of bounding boxes; determining whether a first size of a hash table is greater than or equal to a predetermined maximum size of the hash table, the hash table storing decoded information associated with neighboring points of the current point of the bounding boxes; based on the first size of the hash table being greater than or equal to the predetermined maximum size of the hash table, removing information associated with non-boundary points of the plurality of bounding boxes from the hash table; and storing decoded information associated with the current point into the hash table; wherein the removing comprises: determining whether a checkpoint of the current point is consistent with a saved checkpoint, the checkpoint of the current point being generated based on a boundary size of each of the plurality of bounding boxes and a location of the current point, the checkpoint being used to indicate whether the current point has reached a new bounding box that does not contain the saved checkpoint; based on the checkpoint of the current point being different from the saved checkpoint, removing the information associated with the non-boundary points of the plurality of bounding boxes from the hash table; and based on the checkpoint of the current point, modifying the saved checkpoint.
Citation Information
Patent Citations
Three-dimensional representation of multi-scale voxel hash processing
CN110276829A