Point cloud data decoding method, computer system and storage medium
By reducing the context array size of the prediction tree in point cloud data encoding, the high cost problem caused by the excessive number of contexts in the existing technology is solved, more efficient point cloud data compression is achieved, encoding complexity is reduced and compression efficiency is improved.
Patent Information
- Application Number
- CN202511012609.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2021-05-19
- Filing Date
- 2021-06-07
- Publication Date
- 2025-09-05
AI Technical Summary
Existing point cloud compression techniques require a large amount of context in prediction tree-based encoding, resulting in high encoding cost and difficulty in reducing the amount of context without significant performance loss.
By reducing the size of the context array corresponding to the syntax element, in particular reducing at least one dimension of the context array from a first value to less than the first value, adopting a prediction tree-based coding method, reducing the number of contexts, simplifying the context array to ctxNumBits[12][3][31] or ctxNumBits[12][1][31], and reducing coding complexity.
Without significantly affecting the performance, the complexity and cost of the encoder are significantly reduced, and the compression efficiency of point cloud data is improved.
Smart Images

Figure CN120602677A_ABST
Abstract
Description
[0001] This application is a divisional application of the patent application with the application date of June 7, 2021, Chinese patent application number 202180006205.9, and invention name “Point cloud data decoding method, computer system and storage medium”. Technical Field
[0002] The present application relates generally to the field of data processing, and more particularly to point clouds. Background Art
[0003] Point clouds have seen widespread application in recent years. For example, they 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 in cultural heritage projects. A point cloud consists of a set of high-dimensional points, typically three-dimensional (3D), each containing 3D position information and additional attributes such as color and reflectivity. High-dimensional points can be acquired using multiple cameras and depth sensors, or laser radar (LiDAR) in various settings, and can consist of thousands to billions of points, providing a realistic representation of the original scene. For faster transmission or reduced storage, compression techniques are needed to reduce the amount of data required to represent point clouds. The International Organization for Standardization (ISO) / International Electrotechnical Commission (IEC) Moving Picture Experts Group (MPEG) (JTC 1 / SC 29 / WG11) has established an ad-hoc group (MPEG-PCC) to standardize compression techniques for static and / or dynamic point clouds. Summary of the Invention
[0004] Embodiments of the present application provide a point cloud data decoding method, system, and computer-readable storage medium.
[0005] In some embodiments, embodiments of the present application provide a method for decoding point cloud data, the method being executed by at least one processor, the method comprising:
[0006] receiving data corresponding to the point cloud;
[0007] Determining the number of contexts associated with the received data by reducing the size of a context array corresponding to a syntax element, wherein the syntax element is used to perform prediction tree-based encoding on the point cloud, the context array being a three-dimensional array representing a total number of contexts required to encode the syntax element associated with the received data, wherein reducing the size of the context array corresponding to the syntax element comprises: reducing the size of at least one dimension of the context array from a first value to a second value that is smaller than the first value; and
[0008] The data corresponding to the point cloud is decoded based on the reduced amount of context.
[0009] In some embodiments, the present application provides a computer system for decoding point cloud data, the computer system comprising:
[0010] at least one computer-readable non-transitory storage medium configured to store computer program code; and
[0011] At least one computer processor configured to access the computer program code and operate according to instructions of the computer program code, the computer program code comprising:
[0012] receiving code configured to cause the at least one computer processor to receive data corresponding to a point cloud;
[0013] Reduction code configured to cause the at least one computer processor to determine a number of contexts associated with received data by reducing a size of a context array corresponding to a syntax element, wherein the syntax element is used for prediction tree-based encoding of the point cloud, the context array being a three-dimensional array representing a total number of contexts required to encode the syntax element associated with the received data, the reducing the size of the context array corresponding to the syntax element comprising: reducing a size of at least one dimension of the context array from a first value to a second value smaller than the first value; and
[0014] Decoding code is configured to cause the at least one computer processor to decode the data corresponding to the point cloud based on the reduced amount of context.
[0015] In some embodiments, an embodiment of the present application provides a non-temporary computer-readable storage medium on which a computer program for point cloud data decoding is stored, and the computer program is configured to enable at least one computer processor to execute the point cloud data decoding method described in the embodiment of the present application. BRIEF DESCRIPTION OF THE DRAWINGS
[0016] The above and other purposes, features and advantages of the present application will become apparent from the following detailed description of exemplary embodiments in conjunction with the accompanying drawings. The various features of the drawings are not drawn to scale because the illustrations are for the sake of clarity, so as to facilitate those skilled in the art to understand the technical solutions of the present application in conjunction with the detailed description. In the drawings:
[0017] Figure 1 is a networked computer environment in accordance with at least one embodiment.
[0018] Figure 2A is a schematic diagram of an octree structure for point cloud data according to at least one embodiment.
[0019] Figure 2B is a schematic diagram of octree partitioning for point cloud data according to at least one embodiment.
[0020] Figure 2C is a schematic diagram of quadtree partitioning according to at least one embodiment.
[0021] Figure 2D is a schematic diagram of binary tree partitioning according to at least one embodiment.
[0022] Figure 3 is a syntax element for point cloud encoding according to at least one embodiment.
[0023] Figure 4 is an operational flow diagram representing steps performed by a program for decoding point cloud data, according to at least one embodiment.
[0024] Figure 5 According to at least one embodiment Figure 1 Block diagram of the internal and external components of computers and servers shown in .
[0025] Figure 6 According to at least one embodiment, Figure 1 A block diagram of an exemplary cloud computing environment of a computer system is shown.
[0026] Figure 7 According to at least one embodiment Figure 6 A block diagram of the functional layers of an exemplary cloud computing environment is shown. DETAILED DESCRIPTION
[0027] This application discloses specific embodiments of the claimed structures and methods. However, it should be understood that the disclosed embodiments are merely examples of the claimed structures and methods that may be embodied in various forms. However, these structures and methods may be embodied in many different forms and should not be construed as being limited to the exemplary embodiments described herein. On the contrary, these exemplary embodiments are provided to make this application more comprehensive and complete and to fully convey the scope to those skilled in the art. In the specification, details of well-known features and technologies may be omitted to avoid unnecessary confusion in the presented embodiments.
[0028] Embodiments generally relate to the field of data processing, and more specifically, to point clouds. Among other things, the exemplary embodiments described below provide a system, method, and computer program for reducing context for encoding a point cloud based on reducing the size of arrays corresponding to syntax elements used for prediction tree-based encoding of the point cloud. Consequently, some embodiments provide the ability to improve computing capabilities by enabling improved point cloud compression and decompression based on consideration of the reduced context.
[0029] As mentioned above, point cloud coding has been widely used in recent years. For example, it is used for object detection and localization in autonomous vehicles, for mapping in GIS, and for visualization and archiving of cultural heritage objects and collections in cultural heritage projects. A point cloud contains a set of high-dimensional points, usually 3D, each of which includes 3D position information and additional attributes such as color, reflectivity, etc. High-dimensional points can be captured using multiple cameras and depth sensors, or LiDAR in various settings, and can consist of thousands to billions of points, thereby realistically representing the original scene. In order to transmit faster or reduce storage, compression techniques are needed to reduce the amount of data required to represent the point cloud. ISO / IEC MPEG (JTC 1 / SC 29 / WG11) has created an ad-hoc group (MPEG-PCC) to standardize compression techniques for static and / or dynamic point clouds.
[0030] In the MPEG TMC13 model, geometric information and related attributes, such as color or reflectivity, are compressed separately. The geometric information (which is the 3D coordinates of the point cloud) is encoded using its occupancy information through octree partitioning, quadtree partitioning and binary tree partitioning. After the geometric information is encoded, the attributes are compressed using prediction, lifting and region-adaptive hierarchical transformation techniques based on the reconstructed geometry. There are two ways to code geometry, one is based on the octree and the other is based on the prediction tree. However, the prediction tree coding defined in MPEG-PCC requires a large number of contexts to encode the ptn_residual_abs_log2[k], k=0, 1, 2 syntax elements, which is quite expensive. Therefore, it is advantageous to reduce the number of contexts without causing significant performance loss. In addition, prediction tree-based coding can be combined with node-based coding to provide further performance gains.
[0031] Various aspects are described with reference to flowcharts and / or block diagrams of methods, devices (systems), and computer-readable storage media of various embodiments. It should be understood that each block in the flowcharts and / or block diagrams, and combinations of blocks in the flowcharts and / or block diagrams, can be implemented by computer-readable program instructions.
[0032] The exemplary embodiments described below provide a system, method, and computer program for encoding a point cloud using a reduced amount of context. Figure 1 is a functional block diagram of a networked computer environment, which illustrates a point cloud encoding system 100 (hereinafter referred to as the "system") for compressing and decompressing point cloud data. It should be understood that Figure 1 This is merely an illustration of one embodiment and does not imply any limitation on the environments in which different embodiments may be implemented. Various modifications may be made to the described environment based on design and implementation requirements.
[0033] System 100 may include a computer 102 and a server computer 114. Computer 102 may communicate with server computer 114 via a communication network 110 (hereinafter referred to as the "network"). Computer 102 may include a processor 104 and a software program 108 stored in a data storage device 106 and capable of interfacing with a user and communicating with server computer 114. Figure 5 As discussed, computer 102 may include internal components 800A and external components 900A, respectively, and server computer 114 may include internal components 800B and external components 900B, respectively. Computer 102 may be, for example, a mobile device, a phone, a personal digital assistant, a netbook, a laptop computer, a tablet computer, a desktop computer, or any other type of computing device capable of running programs, accessing a network, and accessing a database.
[0034] The server computer 114 may also operate in a cloud computing service model, such as Software as a Service (SaaS), Platform as a Service (PaaS), or Infrastructure as a Service (IaaS), as described below with reference to Figure 6 and Figure 7 The server computer 114 may also be located in a cloud computing deployment model, such as a private cloud, a community cloud, a public cloud, or a hybrid cloud.
[0035] The server computer 114 that can be used for point cloud coding can run a point cloud coding program 116 (hereinafter referred to as "program"), which can interact with the database 112. Figure 4 The point cloud encoding program method is explained in more detail. In one embodiment, computer 102 can operate as an input device including a user interface, while program 116 can primarily operate on server computer 114. In an alternative embodiment, program 116 can primarily operate on at least one computer 102, while server computer 114 can be used to process and store data used by program 116. It should be noted that program 116 can be a stand-alone program or can be integrated into a larger point cloud compression program.
[0036] However, it should be noted that in some cases, the processing of program 116 may be shared in any ratio between computer 102 and server computer 114. In another embodiment, program 116 may be executed on more than one computer, server computer, or some combination of computers and server computers, such as multiple computers 102 communicating with a single server computer 114 via network 110. In another embodiment, for example, program 116 may be executed on multiple server computers 114 communicating with multiple client computers via network 110. Alternatively, the program may be executed on a network server that communicates with the server and multiple client computers via the network.
[0037] The network 110 may include a wired connection, a wireless connection, a fiber optic connection, or some combination thereof. In general, the network 110 may be any combination of connections and protocols that support communication between the computer 102 and the server computer 114. The network 110 may include various types of networks, such as a local area network (LAN), a wide area network (WAN) such as the Internet, a telecommunications network such as the public switched telephone network (PSTN), a wireless network, a public switched network, a satellite network, a cellular network (e.g., a fifth generation (5G) network, a long term evolution (LTE) network, a third generation (3G) network, a code division multiple access (CDMA) network, etc.), a public land mobile network (PLMN), a metropolitan area network (MAN), a private network, an ad hoc network, an intranet, a fiber-optic-based network, etc., and / or combinations of these or other types of networks.
[0038] Figure 1 The number and arrangement of devices and networks shown are provided as examples. Figure 1 There may be more devices and / or networks, fewer devices and / or networks, different devices and / or networks, or devices and / or networks arranged differently than those shown. Figure 1 Two or more of the devices shown may be implemented in a single device, or Figure 1 The single device shown may be implemented as multiple distributed devices. Additionally or alternatively, one set of devices (eg, at least one device) of system 100 may perform at least one function described as being performed by another set of devices of system 100.
[0039] Reference Figure 2A , shows a schematic diagram of an octree structure 200A. In TMC13, if the octree geometry codec is used, the geometry encoding process is as follows. First, the bounding box B of the cube axis alignment consists of two points (0, 0, 0) and (2 M-1 , 2 M -1 , 2 M-1 ) definition, where 2M-1 The size of B is defined, and M is specified in the codestream. The octree structure 200A is then constructed by recursively subdividing B. At each stage, the cube is subdivided into 8 sub-cubes. An 8-bit code, i.e., an occupancy code, is then generated by associating a 1-bit value with each sub-cube to indicate whether it contains a point (i.e., it is full and has a value of 1) or does not contain a point (i.e., it is empty and has a value of 0). Only complete sub-cubes greater than 1 (i.e., non-voxels) are further subdivided.
[0040] Reference Figure 2B , shows a schematic diagram of an octree partition 200B. The octree partition 200B may include two levels of octree partitions 202 and corresponding occupancy codes 204, wherein when cubes and nodes are marked as black, it indicates that they are occupied by points. The occupancy code 204 of each node is then compressed using an arithmetic encoder. The occupancy code 204 can be represented as S (8-bit integer), and each bit in S indicates the occupancy status of each child node. TMC13 includes two encoding methods for occupancy codes, namely bit-by-bit encoding and byte-by-byte encoding. Bit-by-bit encoding is enabled by default. Both methods utilize context modeling to perform arithmetic coding to encode the occupancy code 204, wherein the context state is initialized at the beginning of the entire encoding process and is updated during the encoding process.
[0041] For bit-by-bit encoding, the eight bins in S are encoded in a certain order, where each bin is encoded by referring to the occupancy status of the neighboring nodes and the neighboring nodes' children, where the neighboring nodes are in the same level as the current node. For byte-by-byte encoding, S is encoded by referring to an adaptive lookup table (A-LUT) and a cache, where the A-LUT traces the N (e.g., 32) most frequently occupied codes and the cache traces the last M (e.g., 16) different occupied codes observed.
[0042] A binary flag indicating whether S is in the A-LUT is encoded. If S is in the A-LUT, the index into the A-LUT is encoded using a binary arithmetic encoder. If S is not in the A-LUT, a binary flag indicating whether S is in the cache is encoded. If S is in the cache, the binary representation of the index is encoded using a binary arithmetic encoder. Otherwise, if S is not in the cache, the binary representation of S is encoded using a binary arithmetic encoder. The decoding process begins by parsing the dimensions of the bounding box B from the bitstream. B is then subdivided according to the decoded occupancy code to construct the same octree structure.
[0043] The occupancy code of the current node usually has 8 bits, where each bit indicates whether its i-th child node is occupied. When encoding the occupancy code of the current node, all information from the adjacent encoded nodes can be used for context modeling. The context information can be further grouped according to the partition level and the distance to the current node. Without loss of generality, the context index of the i-th child node of the current node can be obtained as follows:
[0044] idx=LUT[i][ctxIdxParent][ctxIdxChild]
[0045] Where LUT is the context index lookup table, and ctxIdxParent and ctxIdxChild are LUT indices representing parent node level and child node level adjacency information.
[0046] refer to Figure 2C , shows a schematic diagram of quadtree partitioning. For point clouds, the bounding box B is not restricted to be the same size in all directions. Instead, it can be a rectangular cuboid of any size to better fit the shape of the 3D scene or object. In implementation, the size of B is usually expressed as a power of 2, that is, Please note that d x , d y , d z It is not assumed to be equal. In quadtree partitioning, two of the three dimensions (i.e., x, y, z dimensions) are divided in half, thereby forming four sub-boxes of equal size. 200C shows the quadtree partitioning of a 3D cube along the xy, xz, and yz axes respectively.
[0047] refer to Figure 2D , shows a schematic diagram of binary tree partitioning. As analyzed above, the bounding box B is not restricted to be the same size in all directions. Instead, it can be a rectangular cuboid of any size to better adapt to the shape of the 3D scene or object. In implementation, the size of B is usually expressed as a power of 2, that is, Please note that d x , d y , d z It is not assumed to be equal. In binary tree partitioning, one of the three dimensions (i.e., x, y, z dimensions) is divided in half, thereby forming two sub-boxes of equal size. 200D shows the binary tree partitioning of a 3D cube along the xy, xz, and yz axes respectively.
[0048] Now refer to Figure 3, shows syntax element 300. Prediction tree-based geometry coding is introduced, where a prediction tree (i.e., a spanning tree) is constructed for all points in the point cloud. A point can be predicted using all previous points. For example, the position of a point can be predicted by the position of its parent point or by the position of its parent and grandparent points.
[0049] According to at least one embodiment, the syntax element 300 may include the following parameters:
[0050] ptn_child_cnt[nodeIdx] is the number of direct child nodes of the current prediction tree node in the geometric prediction tree.
[0051] ptn_pred_mode[nodeIdx] is the mode used to predict the position associated with the current node.
[0052] ptn_residual_eq0_flag[k], ptn_residual_sign_flag[k], ptn_residual_abs_log2[k], and ptn_residual_abs_remaining[k] collectively indicate the first prediction residual of the k-th geometric position component. ptn_residual_eq0_flag[k] indicates whether the residual component is equal to 0. ptn_residual_sign_flag[k] equal to 1 indicates that the sign of the residual component is positive. ptn_residual_sign_flag[k] equal to 0 indicates that the sign of the residual component is negative.
[0053] When encoding the residual bit count, it is assumed that a 5-bit bit count value b4b3b2b1b0 is used, i.e., the total number of context arrays, which is denoted as ctxNumBits
[12] [3]
[31] . The index of the first dimension (value 12) is used to represent a set of different contexts related to the overall value of ptn_residual_abs_log2[k]. The index of the middle dimension (value 3) represents the three components of ptn_residual_abs_log2[k], k = 0, 1, 2. The index of the last dimension (value 31) is determined based on the value of ptn_residual_abs_log2[k] = b4b3b2b1b0, denoted as ctxIdx.
[0054] According to at least one embodiment, a first method of determining ctxIdx may include:
[0055] For b0, ctxIdx=0
[0056] For b1, ctxIdx=1+b0
[0057] For b2, ctxIdx=3+b1b0
[0058] For b3, ctxIdx=7+b2b1b0
[0059] For b4, ctxIdx=15+b3b2b1b0
[0060] A second method of determining ctxIdx is to flip the order of the coded bits and may include:
[0061] For b4, ctxIdx=0
[0062] For b3, ctxIdx=1+b4
[0063] For b2, ctxIdx=3+b5b4
[0064] For b1, ctxIdx=7+b4b2b1
[0065] For b0, ctxIdx=15+b4b3b2b1
[0066] According to at least one embodiment, the total number of contexts required to encode the syntax element ptn_residual_abs_log2[k], k=0, 1, 2 can be reduced. In one embodiment, all three components of ptn_residual_abs_log2[k], k=0, 1, 2 share the same set of contexts, i.e., the context array ctxNumBits
[12] [3]
[31] is simplified to ctxNumBits
[12] [1]
[31] . In another embodiment, the three components of ptn_residual_abs_log2[k], k=0, 1, 2 still have different sets of contexts. Conversely, the context array ctxNumBits
[12] [3]
[31] can be reduced to ctxNumBits
[12] [3][8].
[0067] For example, the derivation of ctxIdx can be modified as follows:
[0068] For b0, ctxIdx=0
[0069] For b1, ctxIdx=1+b0
[0070] For b2, ctxIdx=3+b1b0
[0071] For b3, ctxIdx=7
[0072] For b4, ctxIdx=8
[0073] In addition, the derivation of ctxIdx can also be modified as follows:
[0074] Forb4, ctxIdx=0
[0075] For b3, ctxIdx=1+b4
[0076] For b2, ctxIdx=3+b5b4
[0077] Forb1, ctxIdx=7
[0078] Forb0, ctxIdx=8
[0079] In at least one embodiment, the total number of contexts required is reduced to less than 1 / 3 of their original size, significantly reducing encoder complexity. In at least one embodiment, the context array ctxNumBits
[12] [3]
[31] can be reduced to only ctxNumBits[1][3]
[31] . Thus, the context can be determined based on the number of components k = 0, 1, 2 and the bit value of ptn_residual_abs_log2[k] = b4b3b2b1b0.
[0080] In node-based geometry coding, the geometry of the point cloud can be encoded until a depth of k is reached, where k is specified by the encoder and transmitted in the code stream. For each occupied node at depth k, it can be considered as a sub-body (or subtree) of the point cloud. For simplicity, the node at depth k can be described as a largest coding unit (LCU). When an LCU is encoded using a prediction tree, the number of points in the LCU can be encoded, and then conventional prediction tree-based encoding is performed while treating the LCU as the entire point cloud. Different ways can be used to encode the number of points in the LCU. For example, a fixed number of bits N can be used to encode the number of points in the LCU, where N can be indicated in the high-level syntax of the code stream (such as a sequence parameter set, a geometry parameter set, or a slice header). The actual number of bits used to represent the number of points in the LCU can be determined (denoted as n), and a fixed number (i.e., s bits) can be used to represent n. The s bits can be encoded using bypass coding, or entropy coding can be used to use a context for each of the s bits. The number of points in the LCU can then be encoded using n bits using bypass coding. Since each LCU can correspond to an intermediate node in the octree partition, and each node has its own starting position, the starting position can be used as a default value for prediction tree-based coding. The bounding box of the LCU can also be determined, and its minimum coordinates can be used as a default value for prediction tree-based coding.
[0081] Now refer to Figure 4, shows an operational flow chart illustrating the steps of a method 400 performed by a program for compressing and decompressing point cloud data.
[0082] At step 402 , the method 400 includes receiving data corresponding to a point cloud.
[0083] At step 404 , the method 400 includes reducing a number of contexts associated with the received data based on reducing a size of an array corresponding to syntax elements used for prediction tree-based encoding of the point cloud.
[0084] At step 406 , the method 400 includes decoding the data corresponding to the point cloud based on the reduced amount of context.
[0085] It should be understood that Figure 4 This only provides an illustration of one implementation and does not imply any limitations on how different embodiments may be implemented. Various modifications may be made to the described environment based on design and implementation requirements.
[0086] Figure 5 500 is according to an exemplary embodiment Figure 1 It should be understood that the block diagram of the internal and external components of the computer depicted in Figure 5 This is merely an illustration of one implementation and does not imply any limitation to the environments in which different embodiments may be implemented. Various modifications may be made to the described environment based on design and implementation requirements.
[0087] Computer 102 ( Figure 1 ) and server computer 114 ( Figure 1 ) may include Figure 5 Respective sets of internal components 800A, 800B and external components 900A, 900B are shown. Each set of internal components 800 includes at least one processor 820 connected to at least one bus 826, at least one computer-readable random access memory (RAM) 822 and at least one computer-readable read-only memory (ROM) 824, including at least one operating system 828, and at least one computer-readable tangible storage device 830.
[0088] The processor 820 is implemented in hardware, firmware, or a combination of hardware and software. The processor 820 is a central processing unit (CPU), a graphics processing unit (GPU), an accelerated processing unit (APU), a microprocessor, a microcontroller, a digital signal processor (DSP), a field programmable gate array (FPGA), an application specific integrated circuit (ASIC), or other types of processing components. In some embodiments, the processor 820 includes at least one processor that can be programmed to perform functions. The bus 826 includes components that allow communication between the internal components 800A and 800B.
[0089] At least one operating system 828, and the server computer 114 ( Figure 1 ) on the software program 108 ( Figure 1 ) and point cloud encoding program 116 ( Figure 1 ) are stored on at least one respective computer-readable tangible storage device 830 for execution by at least one respective processor 820 via at least one respective RAM 822 (which typically includes cache memory). Figure 5 In the illustrated embodiment, each computer-readable tangible storage device 830 is a magnetic disk storage device of an internal hard drive. Alternatively, each computer-readable tangible storage device 830 is a semiconductor memory device, such as ROM 824, an erasable programmable read-only memory (EPROM), flash memory, an optical disk, a magneto-optical disk, a solid-state disk, a compact disk (CD), a digital versatile disk (DVD), a floppy disk, a cassette, a magnetic tape, and / or other types of non-volatile computer-readable tangible storage devices capable of storing computer programs and digital information.
[0090] Each set of internal components 800A, 800B also includes a read / write (R / W) drive or interface 832 for reading from or writing to at least one portable computer readable tangible storage device 936 (e.g., a CD-ROM, DVD, memory stick, tape, magnetic disk, optical disk, or semiconductor storage device). Figure 1 ) and point cloud encoding program 116 ( Figure 1 ) can be stored on at least one corresponding portable computer-readable tangible storage device 936, read via a corresponding R / W drive or interface 832 and loaded into a corresponding hard disk drive 830.
[0091] Each set of internal components 800A, 800B also includes a network adapter or interface 836, such as a TCP / IP adapter card, a wireless Wi-Fi interface card, or a 3G, 4G or 5G wireless interface card or other wired or wireless communication link. Figure 1 ) on the software program 108 ( Figure 1 ) and point cloud encoding program 116 ( Figure 1 ) can be downloaded from an external computer to the computer 102 via a network (eg, the Internet, a local area network or other network, a wide area network) and a corresponding network adapter or interface 836 ( Figure 1 ) and the server computer 114. The software program 108 and the point cloud encoding program 116 on the server computer 114 are loaded from the network adapter or interface 836 to the corresponding hard disk drive 830. The network can include copper wire, fiber optic, wireless transmission, routers, firewalls, switches, gateway computers and / or edge servers.
[0092] Each set of external components 900A, 900B may include a computer display 920, a keyboard 930, and a computer mouse 934. External components 900A, 900B may also include a touch screen, a virtual keyboard, a touchpad, a pointing device, and other human interface devices. Each set of internal components 800A, 800B also includes a device driver 840 to interface with the computer display 920, keyboard 930, and computer mouse 934. Device driver 840, R / W driver or interface 832, and network adapter or interface 836 comprise hardware and software (stored in storage device 830 and / or ROM 824).
[0093] It should be understood in advance that although this application includes a detailed description of cloud computing, the embodiments listed in this application are not limited to cloud computing environments. Instead, certain embodiments can be implemented in conjunction with any other type of computing environment now known or later developed.
[0094] Cloud computing is a service delivery model for enabling convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, network bandwidth, servers, processing, memory, storage, applications, virtual machines, and services) that can be rapidly provisioned and released with minimal management effort or interaction with the service provider. A cloud model can include at least five characteristics, at least three service models, and at least four deployment models.
[0095] Features are as follows:
[0096] On-demand self-service: Cloud users can automatically and unilaterally provision computing capabilities, such as server time and network storage, as needed without manual interaction with the service provider.
[0097] Broad network access: Capabilities are available over the network and accessed through standard mechanisms that facilitate use on heterogeneous thin or thick client platforms (e.g., mobile phones, laptops, and personal digital assistants).
[0098] Resource pooling: Pooling a provider's computing resources to serve multiple users using a multi-tenant model, dynamically allocating and reallocating different physical and virtual resources based on demand. Location independence means that users typically have no control or knowledge of the exact location of the provided resources, but are able to specify the location at a higher level of abstraction (e.g., country, state, or data center).
[0099] Rapid elasticity: Capabilities can be provisioned quickly and elastically, in some cases automatically provisioned for rapid scale-out and released for rapid scale-in. To users, the capabilities available for provisioning often appear unlimited and can be purchased at any time and in any quantity.
[0100] Metered services: Cloud systems automatically control and optimize resource usage by leveraging metering capabilities at a level of abstraction appropriate to the type of service (e.g., storage, processing, bandwidth, and active user accounts). Resource usage can be monitored, controlled, and reported, providing transparency to both providers and users of the services being used.
[0101] The service model is as follows:
[0102] Software as a Service (SaaS): The functionality provided to users is the use of the provider's applications running on cloud infrastructure. Applications can be accessed from a variety of client devices through a thin client interface such as a web browser (e.g., web-based email). Users do not manage or control the underlying cloud infrastructure, including the network, servers, operating systems, storage, or even individual application functions, but may be restricted to user-specific application configuration settings.
[0103] Platform as a Service (PaaS): The functionality provided to users is to deploy user-created or acquired applications onto cloud infrastructure. These user-created or acquired applications are built using programming languages and tools supported by the provider. Users do not manage or control the underlying cloud infrastructure, including networks, servers, operating systems, or storage. Instead, they control the deployed applications and the configuration of the application hosting environment.
[0104] Infrastructure as a Service (IaaS): The functionality provided to users is the provision of processing, storage, networking, and other basic computing resources, where users can deploy and run arbitrary software including operating systems and applications. Users do not manage or control the underlying cloud infrastructure, but control the operating system, storage, deployed applications, and may have limited control over selected network components (for example, host firewalls).
[0105] The deployment model is as follows:
[0106] Private cloud: Cloud infrastructure is run solely for an organization. It can be managed by the organization or a third party and can exist on-premises or off-premises.
[0107] Community cloud: Cloud infrastructure is shared by multiple organizations and supports a specific community with shared concerns (e.g., mission, security requirements, policy, and compliance considerations). It can be managed by the organization or a third party and can exist on-premises or off-premises.
[0108] Public cloud: Cloud infrastructure is available to the general public or large industrial groups and is owned by an organization that sells cloud services.
[0109] Hybrid cloud: A cloud infrastructure composed of two or more clouds (private, community, or public) that remain unique entities but are bound together by standardized or proprietary technologies to enable data and application portability (e.g., cloud bursting for load balancing between clouds).
[0110] The cloud computing environment is service-oriented, focusing on statelessness, low coupling, modularity, and semantic interoperability. The core of cloud computing is the infrastructure consisting of a network of interconnected nodes.
[0111] Reference Figure 6 , which shows an exemplary cloud computing environment 600. As shown, the cloud computing environment 600 includes at least one cloud computing node 10, and the local computing devices used by cloud users (such as personal digital assistants (PDAs) or cellular phones 54A, desktop computers 54B, laptop computers 54C and / or automobile computer systems 54N) can communicate with these cloud computing nodes 10. The cloud computing nodes 10 can communicate with each other. They can be physically or virtually grouped in at least one network, such as the private cloud, community cloud, public cloud, hybrid cloud, or a combination thereof described above (not shown). This allows the cloud computing environment 600 to provide infrastructure, platforms and / or software as services without the cloud user needing to maintain resources for these services on local computing devices. It should be understood that Figure 6 The types of computing devices 54A-N shown are exemplary only, and cloud computing node 10 and cloud computing environment 600 may communicate with any type of computer system over any type of network and / or network-addressable connection (eg, using a web browser).
[0112] Reference Figure 7 , which shows a cloud computing environment 600 ( Figure 6 ) provides a set of functional abstraction layers 700. It should be understood in advance that Figure 7 The components, layers, and functions shown are merely exemplary, and the embodiments are not limited thereto. As shown, the following layers and corresponding functions are provided:
[0113] The hardware and software layer 60 includes hardware and software components. Examples of hardware components include: host 61, server 62 based on Reduced Instruction Set Computer (RISC) architecture, server 63, blade server 64, storage device 65, and network and network components 66. In some embodiments, software components include network application server software 67 and database software 68.
[0114] Virtualization layer 70 provides an abstraction layer from which examples of virtual entities may be provided: virtual servers 71 , virtual storage 72 , virtual networks 73 including virtual private networks, virtual applications and operating systems 74 , and virtual clients 75 .
[0115] In one example, the management layer 80 may provide the following functionality. Resource provisioning 81 provides dynamic procurement of computing and other resources for performing tasks in a cloud computing environment. Metering and pricing 82 provides cost traceability when resources are utilized in a cloud computing environment and bills or invoices for the consumption of these resources. In one example, these resources may include application software licenses. Security provides authentication for cloud users and tasks and provides protection for data and other resources. User portal 83 provides access to the cloud computing environment for users and system administrators. Service level management 84 provides allocation and management of cloud computing resources to meet the required service levels. Service level agreement (SLA) planning and implementation 85 provides pre-arrangement and acquisition of cloud computing resources in anticipation of future demand according to the SLA.
[0116] The workload layer 90 provides examples of functionality that can utilize a cloud computing environment. Examples of workloads and functionality that can be provided from this layer include: mapping and navigation 91, software development and lifecycle management 92, virtual classroom instruction delivery 93, data analytics processing 94, transaction processing 95, and point cloud encoding 96. Point cloud encoding 96 can reduce the size of arrays corresponding to syntax elements of point cloud data encoding based on prediction trees.
[0117] Some embodiments may be directed to systems, methods and / or computer-readable media at any possible level of technical detail integration.Computer-readable media may include non-volatile computer-readable storage media (or media) having computer-readable program instructions stored thereon that cause a processor to perform operations.
[0118] A computer-readable storage medium can be a tangible device that can retain and store instructions for use by an instruction execution device. A computer-readable storage medium can be, for example, but not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination thereof. A non-exhaustive list of more specific examples of computer-readable storage media includes the following: a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disc (DVD), a memory stick, a floppy disk, a mechanical encoding device (such as a punch card or a structure protruding in a groove on which instructions are recorded), and any suitable combination thereof. The computer-readable storage medium used in this application should not be interpreted as being a volatile signal per se, such as a radio wave or other freely propagating electromagnetic wave, an electromagnetic wave propagated through a waveguide or other transmission medium (e.g., a light pulse through a fiber optic cable), or an electrical signal transmitted through a wire.
[0119] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to a corresponding computing / processing device, or downloaded to an external computer or external storage device via a network (e.g., the Internet, a local area network, a wide area network, and / or a wireless network). The network can include copper transmission cables, optical transmission fibers, wireless transmissions, routers, firewalls, switches, gateway computers, and / or edge servers. The network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and forwards the computer-readable program instructions to be stored in a computer-readable storage medium within the corresponding computing / processing device.
[0120] The computer readable program code / instruction for performing an operation can be an assembly instruction, an instruction set architecture (ISA) instruction, a machine instruction, a machine dependent instruction, a microcode, a firmware instruction, a state setting data, a configuration data for an integrated circuit, or a source code or an object code written in any combination of one or more programming languages, including object-oriented programming languages such as Smalltalk, C++, and a procedural programming language (e.g., "C" programming language) or similar programming languages. The computer readable program code / instruction for performing an operation can be an assembly instruction, an instruction set architecture (ISA) instruction, a machine instruction, a machine dependent instruction, a microcode, a firmware instruction, a state setting data, a configuration data for an integrated circuit, or a source code or an object code written in any combination of one or more programming languages, including object-oriented programming languages such as Smalltalk, C++, and a procedural programming language (e.g., "C" programming language) or similar programming languages. The computer readable program instructions can be executed entirely on the user's computer, partially on the user's computer, as an independent software package, partially on the user's computer and partially on a remote computer, or fully on a remote computer or server. In the latter case, the remote computer can be connected to the user's computer via any type of network (including a local area network (LAN) or a wide area network (WAN)), or can be connected to an external computer (e.g., by using the Internet of an Internet service provider). In some embodiments, electronic circuits including, for example, programmable logic circuits, field programmable gate arrays (FPGAs), or programmable logic arrays (PLAs) can execute computer-readable program instructions by utilizing state information of the computer-readable program instructions to personalize the electronic circuits to perform aspects or operations.
[0121] These computer program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, or other programmable data processing device to produce a machine, so that the instructions are executed by the processor of the computer or other programmable data processing device to create a device for implementing the functions / actions specified by at least one block in the flowchart and / or block diagram. These computer-readable program instructions can also be stored in a computer-readable storage medium, which can direct the computer, programmable data processing device, and / or other equipment to operate in a specific manner, so that the computer-readable storage medium having the instructions stored therein contains an article of manufacture, which includes instructions for implementing various aspects of the functions / actions specified by at least one block in the flowchart and / or block diagram.
[0122] Computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operating steps to be performed on the computer, other programmable apparatus, or other device, thereby producing a computer-implemented process, so that the instructions executed on the computer, other programmable apparatus, or other device implement the functions / actions specified by at least one box of the flowchart and / or block diagram.
[0123] The flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functions and operations of possible implementations of the systems, methods and computer-readable media according to various embodiments. In this regard, each block in the flowchart or block diagram can represent a module, fragment or portion of an instruction, which includes at least one executable instruction for implementing a specified logical function. Compared to what is depicted in the figure, the method, computer system and computer-readable media may include more blocks, fewer blocks, different blocks or blocks of different arrangements. In some optional embodiments, the functions marked in the frame may not occur in the order marked in the accompanying drawings. For example, depending on the functions involved, the two frames shown in succession can actually be executed simultaneously or substantially simultaneously, or the frames can sometimes be executed in the opposite order. It should also be noted that each frame of the block diagram and / or flowchart and the combination of the frames of the block diagram and / or flowchart can be implemented by a system based on dedicated hardware that performs a specified function or action or performs a combination of dedicated hardware and computer instructions.
[0124] It is apparent that the systems and / or methods described herein can be implemented in various forms of hardware, firmware, or a combination of hardware and software. The actual dedicated control hardware or software code used to implement these systems and / or methods is not limited by these embodiments. Therefore, this application describes the operation and behavior of these systems and / or methods without reference to specific software code - it should be understood that software and hardware can be designed based on the description of this application to implement these systems and / or methods.
[0125] Unless explicitly stated, the elements, actions or instructions used in this application shall not be interpreted as critical or necessary. In addition, as used in this application, the articles "one" and "an" are intended to include at least one item and can be used interchangeably with "at least one". In addition, as used in this application, the term "set" is intended to include at least one item (e.g., related items, unrelated items, a combination of related items and unrelated items, etc.), and can be used interchangeably with "at least one". In the case where only one item is desired, the term "one" or similar language is used. In addition, as used in this application, the terms "having", "having" etc. are intended to be open terms. Further, the phrase "based on" is intended to mean "based at least in part on", unless explicitly stated otherwise.
[0126] The descriptions of the various aspects and embodiments have been given for illustrative purposes, but are not intended to be exhaustive or limited to the disclosed embodiments. Even if combinations of features are recited in the claims and / or disclosed in the specification, these combinations are not intended to limit the disclosure of possible implementations. In fact, many of these features can be combined in ways that are not specifically described in the claims and / or disclosed in the specification. Although each dependent claim listed below may be directly dependent on only one claim, the disclosure of possible implementations includes the combination of each dependent claim with every other claim in the claim set. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope of the described embodiments. The terms used in this application are selected to best explain the principles of the embodiments of the application, practical applications or technical improvements to technologies found on the market, or to enable others of ordinary skill in the art to understand the embodiments disclosed in this application.
Claims
1. A point cloud data decoding method, characterized in that: The method is executed by at least one processor, and includes: receiving data corresponding to the point cloud; Determining the number of contexts associated with the received data by reducing the size of a context array corresponding to a syntax element, wherein the syntax element is used to perform prediction tree-based encoding on the point cloud, the context array being a three-dimensional array representing a total number of contexts required to encode the syntax element associated with the received data, wherein reducing the size of the context array corresponding to the syntax element comprises: reducing the size of at least one dimension of the context array from a first value to a second value that is smaller than the first value; and The data corresponding to the point cloud is decoded based on the reduced amount of context.
2. The method according to claim 1, characterized in that The size of the context array is reduced based on reducing the number of bit values of the context.
3. The method according to claim 1, characterized in that The current node associated with the point cloud includes three geometric position residual components.
4. The method according to claim 3, characterized in that The size of the context array is reduced based on three geometric position residual components sharing the same context.
5. The method according to claim 1, wherein The size of the context array is reduced based on reducing the number of indices of the context.
6. The method according to claim 1, characterized in that The data is decoded based on decoding a maximum coding unit using a prediction tree.
7. The method according to claim 6, characterized in that The method further includes decoding the number of points in the maximum coding unit by prediction tree-based encoding based on viewing the maximum coding unit as a smaller point cloud.
8. A computer system, characterized in that The computer system is used for decoding point cloud data, and the computer system includes: at least one computer-readable non-transitory storage medium configured to store computer program code; and At least one computer processor configured to access the computer program code and operate according to instructions of the computer program code, the computer program code comprising: receiving code configured to cause the at least one computer processor to receive data corresponding to a point cloud; Reduction code configured to cause the at least one computer processor to determine a number of contexts associated with received data by reducing a size of a context array corresponding to a syntax element, wherein the syntax element is used for prediction tree-based encoding of the point cloud, the context array being a three-dimensional array representing a total number of contexts required to encode the syntax element associated with the received data, the reducing the size of the context array corresponding to the syntax element comprising: reducing a size of at least one dimension of the context array from a first value to a second value smaller than the first value; and Decoding code is configured to cause the at least one computer processor to decode the data corresponding to the point cloud based on the reduced amount of context.
9. The computer system according to claim 8, wherein: The size of the context array is reduced based on reducing the number of bit values of the context.
10. The computer system according to claim 8, wherein: The current node associated with the point cloud includes three geometric position residual components.
11. The computer system according to claim 10, wherein: The size of the context array is reduced based on three geometric position residual components sharing the same context.
12. The computer system according to claim 8, wherein: The size of the context array is reduced based on reducing the number of indexes of the context.
13. The computer system according to claim 8, wherein: The data is decoded based on decoding a largest coding unit associated with the point cloud using a prediction tree.
14. The computer system according to claim 13, wherein: The decoding code is further configured to cause the at least one computer processor to decode the number of points in the largest coding unit through prediction tree-based encoding based on treating the largest coding unit as a smaller point cloud.
15. A non-transitory computer-readable storage medium, characterized in that A computer program for point cloud data decoding is stored thereon, and the computer program is configured to enable at least one computer processor to execute the point cloud data decoding method according to any one of claims 1 to 7.