Method and device for decoding point cloud information

By analyzing or inferring the signals of binary syntax elements and combining with flexible tree segmentation methods, the problem of inflexible tree segmentation representation in point cloud compression in the prior art is solved, and a more efficient and high-quality point cloud compression effect is achieved.

CN113315977BActive Publication Date: 2025-02-07TENCENT AMERICA LLC
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202011485202.1
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2020-10-30
Filing Date
2020-12-16
Publication Date
2025-02-07
Estimated Expiration
2040-12-16

AI Technical Summary

Technical Problem

The prior art is difficult to achieve flexible tree segmentation representation in point cloud compression, resulting in insufficient compression efficiency and quality.

Method used

By analyzing or inferring the signals of binary syntax elements, the encoding and segmentation method of point cloud information is determined. Flexible tree segmentation methods such as quad-tree, binary tree, asymmetric segmentation and mixed segmentation are used to optimize the rate distortion function to select the best segmentation mode.

Benefits of technology

It realizes more flexible and efficient point cloud compression, improves compression efficiency and quality, and is suitable for different point cloud data.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN113315977B_ABST
    Figure CN113315977B_ABST
Patent Text Reader

Abstract

The present application provides a method and apparatus for decoding point cloud information. The method comprises: obtaining an encoded bitstream, the encoded bitstream comprising encoded information of a point cloud, the point cloud comprising a set of points in a three-dimensional space; and determining the type of segmentation method for encoding the point cloud information by at least one of the following operations: parsing a signal of at least three binary syntax elements, or inferring at least one syntax element of the at least three binary syntax elements.
Need to check novelty before this filing date? Find Prior Art

Description

Background Art

[0001] Point cloud modeling has been widely used in recent years. For example, point clouds can be used for object detection and localization in autonomous vehicles, for mapping in geographic information systems (GIS), and for visualization and archiving of cultural heritage objects and collections in cultural heritage projects.

[0002] A point cloud consists of a set of high-dimensional points (usually three-dimensional (3D)), each of which includes 3D position information and additional attributes such as color, reflectivity, etc. High-dimensional point sets can be captured using multiple cameras and depth sensors through Light Detection and Ranging (LIDAR) in various deployment methods, and can consist of thousands to billions of points to truly represent the original scene.

[0003] Compression techniques are needed to reduce the amount of data required to represent point clouds for faster transmission and / or reduced storage. As explained in Non-Patent Document 1 and Non-Patent Document 2, the Moving Picture Experts Group (MPEG) has created a joint technical committee (JTC 1 / SC 29 / WG 11) and an ad hoc group (MPEG-PCC) to standardize compression techniques for static and / or dynamic point clouds. Among them, MPEG is a working group of the International Organization for Standardization (ISO) and the International Electrotechnical Commission (IEC).

[0004] Non-patent document 1: Use Cases for Point Cloud Compression, JTC1 / SC29 WG11 document number N16331, published in Chinese in Geneva in June 2016.

[0005] Non-patent document 2: Requirements for Point Cloud Compression, JTC1 / SC29 WG11 document number N16330, published in Chinese in Geneva in June 2016. Summary of the invention

[0006] The present application relates to point cloud coding (PCC). As described herein, for example, for point cloud compression, a flexible segmentation representation and coding of a tree is elaborated.

[0007] According to one aspect of the present application, a method for decoding encoded information of a point cloud can be executed by at least one processor and includes: obtaining an encoded code stream, the encoded code stream including encoded information of a point cloud, the point cloud including a set of points in a three-dimensional space; and determining the type of segmentation method used to encode the information of the point cloud by at least one of the following: parsing a signal of at least three binary syntax elements, or inferring at least one syntax element of at least three binary syntax elements.

[0008] According to another aspect of the present application, the at least three binary syntax elements may indicate whether to perform segmentation on the X-axis, the Y-axis, and the Z-axis.

[0009] According to another aspect of the present application, the method may further include: obtaining a node size of an object of the segmented point cloud, wherein the type of segmentation method may be determined based on the node size of the object by inferring at least three binary syntax elements.

[0010] According to another aspect of the present application, the type of the segmentation manner may be determined by at least one of the following further operations: parsing signals of another two binary syntax elements and inferring the another two binary syntax elements.

[0011] According to another aspect of the present application, the following formula can be used to select the segmentation type of the point cloud: p^=argmin┬p〖{D(p)+λ·R(p)}, where p indicates a tree segmentation mode, D(p) is the distortion function, R(p) is the rate function, λ is the Laplace coefficient, and p^ is a tree segmentation mode.

[0012] According to another aspect of the present application, the type of the segmentation manner may be determined by parsing one syntax element among at least three binary syntax elements and inferring two syntax elements among the at least three binary syntax elements.

[0013] According to another aspect of the present application, determining the type of segmentation may include inferring the segmentation type of descendant nodes of the segmented point cloud.

[0014] According to another aspect of the present application, a device for encoding and decoding information of a point cloud may include: at least one memory for storing computer program code; and at least one processor for accessing the at least one memory and operating according to the computer program code; the computer program code may include: a first acquisition code for acquiring an encoded code stream, the encoded code stream including encoded information of a point cloud, the point cloud including a set of points in a three-dimensional space; a determination code for determining the type of segmentation method for encoding the information of the point cloud by at least one of the following operations: parsing a signal of at least three binary syntax elements, or inferring at least one syntax element of at least three binary syntax elements.

[0015] According to another aspect of the present application, the at least three binary syntax elements may indicate whether the segmentation is performed on the X-axis, the Y-axis, and the Z-axis.

[0016] According to another aspect of the present application, the computer program code may further include: a second acquisition code for acquiring the node size of the object of the segmented point cloud, wherein the determination code is further used to determine the type of segmentation method by inferring the at least three binary grammar elements based on the node size of the object.

[0017] According to another aspect of the present application, the determination code may be further configured to determine the type of the segmentation manner by at least one of the following operations: parsing signals of two additional binary syntax elements and inferring the additional binary syntax element.

[0018] According to another aspect of the present application, the following formula can be used to select the type of point cloud segmentation method: p^=argmin┬p〖{D(p)+λ·R(p)}, where p indicates a tree segmentation mode, D(p) is the distortion function, R(p) is the rate function, λ is the Laplace coefficient, and p^ is a tree segmentation mode.

[0019] According to another aspect of the present application, the determination code may be used to parse one syntax element of at least three binary syntax elements and infer two syntax elements of the at least three binary syntax elements to determine the type of the segmentation manner.

[0020] According to one aspect of the present application, a non-volatile computer-readable storage medium may store instructions that may cause at least one processor to perform the following operations: obtain an encoded code stream, the encoded code stream including encoded information of a point cloud, the point cloud including a set of points in a three-dimensional space; and determine the type of segmentation method used to encode the information of the point cloud by at least one of the following operations: parsing a signal of at least three binary syntax elements, or inferring at least one syntax element of the at least three binary syntax elements. BRIEF DESCRIPTION OF THE DRAWINGS

[0021] Figure 1 Schematic diagram of the octree partitioning method in three-dimensional space.

[0022] Figure 2 Schematic diagram of the octree partitioning method and tree structure.

[0023] Figure 3 Schematic diagram of the quadtree partitioning method in three-dimensional space.

[0024] Figure 4 Schematic diagram of the binary tree partitioning method in three-dimensional space.

[0025] Figure 5 Schematic diagram of the asymmetric partitioning method in two-dimensional space.

[0026] Figure 6 Schematic diagram of the two-level hybrid segmentation method in two-dimensional space.

[0027] Figure 7 A diagram illustrating an example process for decoding encoded information of a point cloud.

[0028] Figure 8 The present invention is a schematic diagram of an example implementation environment of the system and / or method of the present application.

[0029] Fig. 9 for Figure 8 A schematic diagram of an example of components of at least one device in. Implementation

[0030] Point Cloud Compression in MPEG Test Model 13 (TMC13)

[0031] As described in non-patent document 3 and non-patent document 4, in the test model 13 (TMC13) codec published by MPEG, the geometric information and related attributes of each point in the point cloud, such as color or reflectivity, are compressed separately. The geometric information (e.g., the 3D coordinates of the point cloud) and its occupancy information are encoded using the octree segmentation method. Then, based on the reconstructed geometric structure, the attributes are compressed using prediction, lifting, and region-adaptive hierarchical transformation techniques. The octree segmentation method and the occupancy information encoding process are described in detail below.

[0032] Non-patent document 3: G-PCC Codec description, ISO / IEC JTC1 / SC29 / WG11 document number N18891, October 2019.

[0033] Non-patent document 4: ISO / IEC CD 23090-9 Text of geometric point cloud compression (G-PCC Codec description), ISO / IEC JTC1 / SC29 WG11 document number N18478, July 2019, Geneva.

[0034] Octree partitioning

[0035] In TMC13, if the octree geometry codec is used, the geometry encoding is performed as follows. First, the bounding box B aligned with the cube axis consists of two points (0,0,0) and (2 M-1 ,2 M-1 ,2 M-1 ) is limited, where 2 M-1 The size of B is defined, and M is given in the bitstream. Then, B is further divided in a recursive manner to build an octree structure. At each stage, a cube is further divided into 8 sub-cubes. Then, an 8-bit code, the occupancy code, is generated by associating each sub-cube with a 1-bit value to indicate whether it contains a point (i.e., whether it is full and the value is 1) or does not contain a point (i.e., whether it is empty and the value is 0). Only full sub-cubes (i.e., non-volume elements) with a size greater than 1 are further subdivided. Figure 1 Schematic diagram of the octree partitioning method in three-dimensional space.

[0036] Figure 2 An example of a two-level octree partitioning method and the corresponding occupancy code is shown in , where dark cubes and nodes indicate that they are occupied by points.

[0037] Encoding the occupancy code

[0038] Then, the occupancy code of each node is compressed by an arithmetic encoder. The occupancy code can be represented as S, where S is an 8-bit integer, and each bit in S indicates the occupancy state of each child node. There are two encoding methods of occupancy codes in TMC13, namely, a bit-by-bit encoding method and a byte-by-byte encoding method. Bit-by-bit encoding is enabled by default. In both methods, arithmetic coding with context modeling is used to encode the occupancy code, wherein the context state is initialized at the beginning of the entire encoding process and is updated during the encoding process.

[0039] For bit-by-bit encoding, eight binary numbers in S are encoded in a certain order, where each binary number is encoded by referring to the occupancy status of neighboring nodes and the occupancy status of children of the neighboring nodes, where the neighboring nodes are at the same level as the current node.

[0040] For byte-by-byte encoding, S is encoded by referring to the following information:

[0041] An adaptive look up table (A-LUT) that records the N (e.g., 32) most frequently used occupied codes, and

[0042] A cache where the most recently observed M (eg, 16) different occupied codes are recorded.

[0043] A binary flag indicating whether S is in the A-LUT is encoded. If S is in the A-LUT, the index in the A-LUT is encoded by 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 of S is encoded by using a binary arithmetic encoder. Otherwise, if S is not in the cache, the binary representation of S is encoded by using a binary arithmetic encoder.

[0044] The decoding process starts by parsing the dimensions of the bounding box B in the bitstream. Then, the same octree structure is built by subdividing B according to the decoded occupancy code.

[0045] Nonetheless, there is still room for improvement in these methods and techniques, mainly in terms of flexible tree segmentation representations, which will be discussed below (for the purpose of point cloud compression).

[0046] The proposed methods and apparatus may be used alone or in any order. In addition, each of the methods (or embodiments), encoders, and decoders may be implemented by a processing circuit (e.g., at least one processor or at least one integrated circuit). In one example, at least one processor executes a program stored in a non-transitory computer-readable medium. In addition, the disclosure herein is not limited to uses related to TMC13 software or the MPEG-PCC standard.

[0047] Flexible tree partitioning

[0048] According to the embodiments described herein, tree partitioning methods and techniques are disclosed.

[0049] According to various embodiments and disclosed technologies, nodes in a tree structure (e.g., cubes in 3D space) can be partitioned in different ways, including but not limited to the following: quadtree partitioning, binary tree partitioning, symmetric partitioning, asymmetric partitioning, hybrid partitioning, and flexible partitioning.

[0050] Symmetrical Split

[0051] The symmetric octree (OT) partitioning method is described as follows. Figure 1As shown, a cube in 3D space can be divided into 8 sub-cubes (of the same size) by three planes perpendicular to the x-axis, y-axis and z-axis respectively. That is, the partitioning can be applied along the x-axis, y-axis and z-axis.

[0052] The symmetric quadtree (QT) partitioning method is described as follows. Figure 3 As shown in FIG. 1 , a cube in a 3D space can be divided into four sub-cubes (of the same size) by two mutually perpendicular planes. That is, the division can be performed along two of the three axes.

[0053] The symmetric binary tree (BT) partitioning method is described as follows. Figure 4 As shown, a cube in 3D can be divided into two sub-cubes (of the same size) by one plane perpendicular to one of the x-axis, the y-axis and the z-axis. That is, the division can be performed along only one axis.

[0054] Asymmetric split

[0055] According to various embodiments, when the split position is not in the middle (eg, in addition to the above-mentioned symmetrical split), an asymmetrical split may be performed. Figure 5 2D schematic diagram of asymmetric segmentation. 3D asymmetric segmentation may include the following:

[0056] o Asymmetric OT segmentation. A cube in 3D space can be divided into 8 sub-cubes (of different sizes) by three planes perpendicular to the x-axis, y-axis, and z-axis, respectively. The position of segmentation along each axis can be in the middle or not in the middle.

[0057] o Asymmetric QT segmentation. A cube in 3D space can be divided into 4 sub-cubes (of different sizes) by two mutually perpendicular planes. The position of the segmentation along each axis can be in the middle or not in the middle.

[0058] o Asymmetric BT partitioning. A cube in 3D space can be partitioned into two sub-cubes (of different sizes) by a plane perpendicular to one of the x-axis, y-axis, and z-axis. The partitioning position can be in the middle or not in the middle.

[0059] According to various embodiments, typical split ratios in the asymmetric mode are 1:3 and 3:1, however, in other cases, the split ratio can be any value as long as the split is performed at integer positions. There are some constraints involved in the asymmetric split method, including but not limited to the following:

[0060] o Asymmetric partitioning is not allowed only when the node size is within a specified range. For example, in some embodiments, asymmetric partitioning is not used for 2x2x2 cubes or even cubes larger than 8x8x8.

[0061] o When the node is a cube, such as a cube that can only be partitioned by symmetric OT / QT / BT partitioning, asymmetric partitioning is not allowed.

[0062] Mixed segmentation

[0063] According to various embodiments, a node may be split in such a way that the node appears to have been split multiple times at once, for example, the node may be split via a hybrid splitting scheme. Figure 6 2D schematic diagram of a two-level hybrid segmentation scheme, where the two levels indicate two consecutive segmentations. Figure 6 The left side of shows the situation where an asymmetric BT partition (3:1) is performed along the x-axis, and then a symmetric BT partition (1:1) is performed on the child nodes in the lower half along the y-axis. Figure 6 The right side of shows the situation where symmetrical BT partitioning (1:1) is performed along the x-axis, and then symmetrical BT partitioning (1:1) is performed twice on the two child nodes along the x-axis again. Figure 6 The left side of can be understood as a ternary tree partition, because three child nodes are generated, and Figure 6 The right side of can be understood as another form of quadtree partitioning.

[0064] In 3D space, the combination of mixed segmentation can be complex. Therefore, simplifications and constraints can be made, including but not limited to the following aspects:

[0065] o Mixed splits higher than two levels are not allowed, which may indicate that a node may be split at most twice at a time.

[0066] o Limited combinations of segmentations may be allowed in hybrid segmentation. A set of usable hybrid segmentation modes may be predefined.

[0067] ο Mixed splitting is allowed only when the node size is within the specified range. For example, mixed splitting does not work for 2x2x2 cubes or cubes larger than 8x8x8.

[0068] ο Mixed partitioning is allowed only when the nodes are cubes, i.e. mixed partitioning does not apply to rectangular cuboids.

[0069] o If a mixed partition is equivalent to a non-mixed partition, the mixed partition is invalid. For example, if a symmetric OT partition is equivalent to a mixed partition (symmetric BT plus two symmetric QT), then this type of mixed partition is invalid.

[0070] Flexible representation of tree partitioning

[0071] This article discloses a technique for flexible tree segmentation that provides additivity, so that tree nodes can be flexibly segmented. The preferred segmentation mode can be determined at the encoder side by a rate-distortion optimization technique, where the preferred mode minimizes the cost function, as follows:

[0072]

[0073] Here, p indicates a tree partitioning mode, D(p) and R(p) are the distortion function and rate function in terms of p, λ is the Laplace coefficient that balances the rate and distortion terms, is the preferred tree partitioning mode that minimizes the cost function. Note that if the attribute and the geometric structure are jointly coded, the distortion function D(p) may include the distortion of the attribute. If the geometric codec is lossless, the distortion function may be ignored, since D(p) is always 0 in this case. The preferred partitioning mode may then be signaled in the codestream via a syntax element.

[0074] According to various embodiments, in order to efficiently encode the flexible tree structure, the partitioning and occupancy information may be represented in binary form. Note that the syntax elements disclosed below may be encoded by bypass or by entropy coding with context modeling.

[0075] Symmetrical Split

[0076] According to various embodiments, in order to indicate symmetric OT, QT and BT partitioning, three binary syntax elements split_x, split_y and split_z may be signaled to indicate whether to partition along the x-axis, y-axis and z-axis, respectively. These values ​​indicate the partitioning mode as shown below:

[0077] Table 1 Symmetrical split signaling

[0078] split_x split_y split_z Split Mode 1 1 1 Symmetric OT 1 1 0 Symmetric QT along the xy axis 1 0 1 Symmetric QT along the xz axis 0 1 1 Symmetric QT along the yz axis 1 0 0 Symmetric BT along the x-axis 0 1 0 Symmetrical BT along the y-axis 0 0 1 Symmetric BT along the z-axis

[0079] According to other embodiments, these syntax elements may be inferred rather than explicitly signaled.

[0080] According to various embodiments, if the node size in one dimension is below a threshold, or satisfies a predetermined condition, the syntax elements split along that dimension may be inferred. For example, if the node size is 4x4x1, split_z may be inferred to be zero, since the z dimension cannot be further divided.

[0081] According to various embodiments, if two of the three syntax elements are known to be zero, then the last syntax element may be inferred to be equal to 1. For example, if split_x and split_y are signaled as zero, then split_z may be inferred to be 1 since they cannot be zero at the same time.

[0082] According to one embodiment, if a node is a cube, only symmetric OT is allowed, so split_x, split_y and split_z can be inferred to be 1 and do not need to be signaled.

[0083] According to one embodiment, these partitioning syntax elements may be applied to the current node, its child nodes, its grandchild nodes, and even down to the leaf nodes. In this case, the partitioning syntax elements of the descendant nodes may be inferred without explicit signaling.

[0084] According to one embodiment, after width-first encoding and decoding of multiple partition depths, the remaining child nodes can be regarded as subtrees. Each subtree can be partitioned in a different way, so the partition syntax element can be signaled for each partition depth of each subtree.

[0085] According to one embodiment, the partition syntax elements of nodes at the same partition depth may be assumed to be the same, in which case only one set of partition syntax elements may be signaled for each partition depth.

[0086] According to one embodiment, the flexible partitioning mode is allowed only when certain conditions are met, in which case the partitioning syntax element is not signaled. For example, the flexible partitioning mode is allowed only when the partitioning depth reaches a threshold. Therefore, when the partitioning depth is below the threshold, the partitioning syntax element can be inferred to be 1, which indicates that only symmetric OT partitioning is allowed.

[0087] Asymmetric split

[0088] According to various embodiments using asymmetric segmentation, additional syntax elements split_pos_x, split_pos_y, split_pos_z may be used to indicate the segmentation position. The segmentation position may take up to 3 values, indicating whether the segmentation is symmetric (1:1) or asymmetric (1:3 or 3:1). Taking split_pos_x as an example, if split_x is equal to 1, the segmentation ratio may be defined by two bits as follows:

[0089] Table 2 Asymmetric split signaling

[0090] split_pos_x Split ratio b0 1:1 (Symmetrical) b10 1:3 (asymmetric) b11 3:1 (asymmetric)

[0091] According to various embodiments, the first bit may indicate whether the split is symmetric (1:1), while the second bit may indicate whether the split ratio is 1:3 or 3:1, and whether the split is asymmetric. If split_x is equal to 0, split_pos_x is not signaled. The same definition applies to split_pos_y and split_pos_z.

[0092] Various embodiments also disclose techniques for inferring rather than explicitly signaling these syntax elements.

[0093] According to one embodiment, if the node size in one dimension is below a threshold, or satisfies a predefined condition, the split syntax element along that dimension may be inferred. For example, if asymmetric splitting is only allowed for node sizes less than or equal to 4, split_pos_x, split_pos_y, split_pos_z may not be signaled when the node size is greater than 4.

[0094] According to one embodiment, when the node is a cube, it may not be allowed to apply an asymmetric split, so in this case, split_pos_x, split_pos_y, split_pos_z may be inferred to be equal to 0 without being signaled.

[0095] According to one embodiment, the same split position can be applied to the current node, its child nodes and its grandchildren. In addition, the split position can even be applied to leaf nodes, in which case the split syntax elements of the descendant nodes can be inferred without explicitly signaling.

[0096] According to one embodiment, the partition syntax elements of nodes at the same partition depth may be assumed to be the same, in which case only one set of partition syntax elements may be signaled for each partition depth.

[0097] According to one embodiment, the asymmetric partitioning mode may be allowed to be applied only when certain conditions are met, in which case the partition position syntax element may not be signaled when the conditions are not met. For example, the asymmetric partitioning mode may be allowed only when the partition depth reaches a threshold, so when the partition depth is below the threshold, the partition position syntax element may be inferred to be equal to 0, indicating that only symmetric partitioning is allowed.

[0098] Mixed segmentation

[0099] According to various embodiments, hybrid splitting may be signaled by a flag hybrid_split_flag and an index hybrid_split_index. If hybrid_split_flag is equal to 1, hybrid_split_index may be signaled to indicate a hybrid splitting mode with reference to a predefined lookup table. If hybrid_split_flag is set equal to 0, hybrid_split_index is not signaled, and symmetric and / or asymmetric splitting modes are signaled as described above. The lookup table, for example, the mapping between hybrid_split_index and hybrid splitting mode is as follows:

[0100] Table 3 Hybrid segmentation signaling

[0101]

[0102]

[0103] Similar to what was discussed above, these syntax elements may additionally be inferred and / or signaled according to various embodiments.

[0104] According to one embodiment, hybrid splitting is allowed only when the node is cubic, so hybrid_split_flag may be inferred to be equal to 0, and hybrid_split_index is not signaled when the current node is non-cubic.

[0105] According to one embodiment, the same partition position may be applied to the current node, its child nodes, its grandchild nodes, and even leaf nodes, in which case the partition syntax elements of the descendant nodes may be inferred without being explicitly signaled.

[0106] According to one embodiment, the partition syntax elements of nodes at the same partition depth may be assumed to be the same, in which case only one set of partition syntax elements may be signaled for each partition depth.

[0107] According to one embodiment, some mixed partitioning modes are not allowed when certain conditions are met, in which case the lookup table is reduced, thereby saving bits from redundancy.

[0108] According to one embodiment, the signaling of the hybrid partitioning mode and other symmetric and asymmetric modes can be unified by a single lookup table, which includes all possible partitioning modes of the current node. In this case, only one index in the lookup table can be indicated to indicate the partitioning mode.

[0109] Occupancy information encoding and decoding in flexible tree partitioning

[0110] The present application provides a flexible tree segmentation technology that can divide a node into less than eight child nodes and each child node can have different sizes. For example, the asymmetric QT segmentation method in 3D can generate 4 child nodes with different sizes. Therefore, according to various embodiments, the occupancy code is not always 8 bits. If the node is divided into N child nodes, the occupancy code is N bits, where each bit indicates whether the corresponding child node is occupied or empty. Different node sizes affect the context modeling in the occupancy information encoding and decoding.

[0111] Figure 7 is a flow chart of an example method 700 for decoding encoded information of a point cloud. In some embodiments, Figure 7 At least one method block of may be performed by user equipment 810. In some embodiments, Figure 7At least one method block of may be performed by another device or a group of devices separate from or including the user device 810, such as the platform 820.

[0112] like Figure 7 As shown, method 700 may include obtaining an encoded code stream, the encoded code stream including encoded information of a point cloud, the point cloud including a set of points in a three-dimensional space (block 710).

[0113] A point cloud can be a collection of points in 3D space, each point having associated attributes, such as color, material properties, etc.

[0114] like Figure 7 As further shown, method 700 may include determining a type of segmentation for encoding information of the point cloud by at least one of parsing a signal of at least three binary syntax elements or inferring at least one syntax element of the at least three binary syntax elements (block 720).

[0115] Figure 8 8 is a schematic diagram of an example communication system 800 in which the systems and / or methods described herein may be implemented. Figure 8 As shown, communication system 800 may include user equipment 810, platform 820, and network 830. The devices of communication system 800 may be interconnected via wired connections, wireless connections, or a combination of wired and wireless connections.

[0116] The communication system 800 may support unidirectional transmission of data. For example, the first user device 810 may encode video data at a local location for transmission to the second user device 810 via the network 830. The second user device 810 may receive the encoded video data of the first user device 810 from the network 830, decode the encoded data and display the recovered video data. Unidirectional data transmission is common in media service applications and the like.

[0117] The communication system 800 may support bidirectional transmission of data. For example, the communication system 800 may support bidirectional transmission of encoded video, such as may occur during a video conference. For bidirectional transmission of data, each user device 810 may encode video data collected at a local location for transmission to another user device 810 via the network 830. Each user device 810 may also receive encoded video data transmitted by another user device 810, may decode the encoded data, and may display the recovered video data on a local display device.

[0118] The user device 810 includes one or more devices that can receive, generate, store, process, and / or provide information associated with the platform 820. For example, the user device 810 may include a computing device (e.g., a desktop computer, a laptop computer, a tablet computer, a handheld computer, a smart speaker, a server, etc.), a mobile phone (e.g., a smart phone, a wireless phone, etc.), a wearable device (e.g., smart glasses or a smart watch), or a similar device. In some embodiments, the user device 810 can receive information from the platform 820 and / or send information to the platform 820.

[0119] The platform 820 includes at least one device that can provide information to the user device 810 as described elsewhere herein. In some embodiments, the platform 220 may include a cloud server or a cloud server group. In some embodiments, the platform 820 may be modular in design so that software components can be swapped in or out according to specific needs. In this way, the platform 820 can be easily and / or quickly reconfigured for different purposes.

[0120] In some embodiments, as shown, the platform 820 may be hosted in a cloud computing environment 822. It is worth noting that although the embodiments described herein describe the platform 820 as being hosted in a cloud computing environment 822, in some embodiments, the platform 820 may not be cloud-based (i.e., may be implemented outside of a cloud computing environment) or may be partially cloud-based.

[0121] Cloud computing environment 822 includes an environment hosting platform 820. Cloud computing environment 822 can provide computing, software, data access, storage, and other services that do not require end users (e.g., user devices 810) to be aware of the physical location and configuration of the systems and / or devices hosting platform 820. As shown, cloud computing environment 822 can include a set of computing resources 824 (collectively, “computing resources 824” and individually, “computing resources 824”).

[0122] The computing resources 824 include one or more personal computers, workstation computers, server devices, or other types of computing and / or communication devices. In some embodiments, the computing resources 824 can host the platform 820. Cloud resources can include computing instances executed in the computing resources 824, storage devices provided in the computing resources 824, data transmission devices provided by the computing resources 824, etc. In some embodiments, the computing resources 824 can communicate with other computing resources 824 via wired connections, wireless connections, or a combination of wired and wireless connections.

[0123] Further Figure 8 As shown, the computing resources 824 include a set of cloud resources, such as one or more applications (APP) 824-1, one or more virtual machines (VM) 824-2, virtualized storage (VS) 824-3, one or more hypervisors (HYP) 824-4, etc.

[0124] The applications 824-1 include one or more software applications that can be provided to or accessed by the user device 810 and / or the platform 820. The applications 824-1 eliminate the need for the user device 810 to install and execute software applications. For example, the applications 824-1 can include software associated with the platform 820 and / or any other software that can be provided through the cloud computing environment 822. In some embodiments, one application 824-1 can send / receive information to / from one or more other applications 824-1 through the virtual machine 824-2.

[0125] Virtual machine 824-2 includes a software implementation of a machine (e.g., a computer), and virtual machine 824-2 executes programs like a physical machine. Virtual machine 824-2 can be a system virtual machine or a process virtual machine, depending on the use and correspondence of virtual machine 824-2 to any real machine. System virtual machine can provide a complete system platform that supports the execution of a complete operating system ("OS"). Process virtual machine can execute a single program and can support a single process. In some embodiments, virtual machine 824-2 can execute on behalf of a user (e.g., user device 810) and can manage the infrastructure of cloud computing environment 822, such as data management, synchronization, or long-term data transmission.

[0126] Virtualized storage 824-3 includes one or more storage systems and / or one or more devices that use virtualization technology within the storage system or device of computing resource 824. In some embodiments, within the context of a storage system, the types of virtualization may include block virtualization and file virtualization. Block virtualization may refer to abstracting (or separating) logical storage from physical storage so that the storage system can be accessed without considering physical storage or heterogeneous structures. The above separation may allow administrators of storage systems to flexibly manage storage for end users. File virtualization may eliminate the dependency between data accessed at the file level and the location of physical storage files. This may optimize the performance of storage usage, server consolidation, and / or non-disruptive file migration.

[0127] Hypervisor 824-4 may provide hardware virtualization technology that allows multiple operating systems (e.g., "guest operating systems") to execute simultaneously on a host computer such as computing resource 824. Hypervisor 824-4 may provide a virtual operating platform to the guest operating systems and may manage the execution of the guest operating systems. Multiple instances of various operating systems may share virtualized hardware resources.

[0128] The network 830 includes one or more wired and / or wireless networks. For example, the network 830 may include 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 local area network (LAN), a wide area network (WAN), a metropolitan area network (MAN), a telephone network (e.g., a public switched telephone network (PSTN)), a private network, an ad hoc network, an intranet, the Internet, a fiber-based network, etc., and / or a combination of these or other types of networks.

[0129] Figure 8 The number and arrangement of devices and networks shown is provided as an example. Figure 8 There may be more devices and / or networks, fewer devices and / or networks, different devices and / or networks, or different arrangements of devices and / or networks than those shown. Figure 8 Two or more of the devices shown may be implemented in a single device, or Figure 8 The single device shown may be implemented by multiple distributed devices. Additionally or alternatively, one or more devices of environment 800 may perform one or more functions described as being performed by another set of devices of environment 200.

[0130] Fig. 9 8 is a diagram of example components of device 900. Device 900 may correspond to user device 810 and / or platform 820. Fig. 9 As shown, device 900 may include a bus 910 , a processor 920 , a memory 930 , a storage component 940 , an input component 950 , an output component 960 , and a communication interface 970 .

[0131] The bus 910 includes components that allow communication between components of the device 900. The processor 920 is implemented in hardware, firmware, or a combination of hardware and software. The processor 920 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 another type of processing component. In some embodiments, the processor 920 includes one or more processors that can be programmed to perform functions. The memory 930 includes a random access memory (RAM), a read-only memory (ROM), and / or another type of dynamic or static storage device (e.g., flash memory, magnetic memory, and / or optical memory), which stores information and / or instructions for use by the processor 920.

[0132] Storage component 940 stores information and / or software related to the operation and use of device 900. For example, storage component 940 may include a hard disk (e.g., a magnetic disk, an optical disk, a magneto-optical disk, and / or a solid-state disk), a compact disk (CD), a digital versatile disk (DVD), a floppy disk, a cassette, a magnetic tape, and / or another type of non-volatile computer-readable medium, and a corresponding drive.

[0133] Input components 950 include components that allow device 900 to receive information, such as through user input, such as a touch screen display, a keyboard, a keypad, a mouse, buttons, switches, and / or a microphone. In addition or alternatively, input components 950 may include sensors for sensing information (e.g., global positioning system (GPS) components, accelerometers, gyroscopes, and / or actuators). Output components 960 include components that provide output information from device 300, such as a display, a speaker, and / or one or more light emitting diodes (LEDs).

[0134] The communication interface 970 includes a transceiver-like component (e.g., a transceiver and / or a separate receiver and transmitter) that enables the device 900 to communicate with other devices, for example, via a wired connection, a wireless connection, or a combination of wired and wireless connections. The communication interface 970 may allow the device 900 to receive information from another device and / or provide information to another device. For example, the communication interface 970 may include an Ethernet interface, an optical interface, a coaxial interface, an infrared interface, a radio frequency (RF) interface, a universal serial bus (USB) interface, a Wi-Fi interface, a cellular network interface, etc.

[0135] Device 900 can perform one or more processes described herein. Device 900 can perform these processes in response to processor 920 executing software instructions stored by non-volatile computer readable media (e.g., memory 930 and / or storage component 940). Computer readable media is defined herein as non-volatile memory devices. Memory devices include storage space within a single physical storage device or storage space distributed on multiple physical storage devices.

[0136] The software instructions may be read into the memory 930 and / or storage component 940 from another computer-readable medium or from another device through the communication interface 970. When executed, the software instructions stored in the memory 930 and / or storage component 940 may cause the processor 920 to perform one or more processes described herein. Additionally or alternatively, hardwired circuitry may be used in place of or in combination with software instructions to perform one or more processes described herein. Therefore, the embodiments described herein are not limited to any specific combination of hardware circuitry and software.

[0137] Fig. 9 The number and arrangement of components shown is provided as an example. Fig. 9 Compared to the components shown, device 900 may include more components, fewer components, different components, or components arranged differently. Additionally or alternatively, a set of components (e.g., one or more components) of device 900 can perform one or more functions described as being performed by another set of components of device 900.

[0138] The foregoing disclosure provides illustration and description, but is not intended to be exhaustive or to limit the implementations to the precise forms disclosed. Modifications and variations are possible in light of the above disclosure or may be acquired from practice of the implementations.

[0139] As used herein, the term component is intended to be broadly interpreted as hardware, firmware, or a combination of hardware and software.

[0140] Obviously, the systems and / or methods described herein can be implemented in different 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 to these implementations. Therefore, the operation and behavior of the systems and / or methods are described herein without reference to specific software code - it should be understood that software and hardware can be designed based on the description herein to implement the systems and / or methods.

[0141] Although particular combinations of features are referenced 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 may be combined in ways not specifically recited 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 each dependent claim in combination with every other claim in the claim group.

[0142] Elements, actions or instructions used herein should not be interpreted as critical or necessary unless explicitly described as such. In addition, as used herein, the articles "one" and "an" are intended to include one or more projects, and can be used interchangeably with "one or more". In addition, as used herein, the term "set" is intended to include one or more projects (e.g., related projects, unrelated projects, combinations of related projects and unrelated projects, etc.), and can be used interchangeably with "one or more". When only one project is meant, the term "one" or similar language is used. In addition, as used herein, the terms "has", "have", "having" etc. are intended to be open terms. Further, the phrase "based on" is intended to mean "based at least in part on", unless otherwise explicitly stated.

Claims

1. A method for decoding encoded information of a point cloud, performed by at least one processor, characterized in that: The method comprises: Acquire an encoded code stream, the encoded code stream comprising encoded information of a point cloud, the point cloud comprising a set of points in a three-dimensional space; and The type of segmentation mode for encoding the information of the point cloud is determined by at least one of the following operations: parsing a signal of at least three binary syntax elements, or inferring at least one syntax element of the at least three binary syntax elements.

2. The method according to claim 1, characterized in that The at least three binary syntax elements indicate whether to perform segmentation on the X-axis, the Y-axis, and the Z-axis.

3. The method according to claim 1, characterized in that: Further including: Get the node size of an object of the segmented point cloud, The type of segmentation method for encoding the information of the point cloud includes: The type of the partitioning manner is determined by inferring the at least three binary syntax elements based on the node size of the object.

4. The method according to any one of claims 1 to 3, characterized in that: Determining the type of segmentation used to encode information of the point cloud further includes at least one of: parsing signals of the other two binary syntax elements, and inferring the other two binary syntax elements.

5. The method according to claim 4, characterized in that The other two binary syntax elements indicate that the type of the partitioning method is a symmetric method, and when the type of the partitioning method is an asymmetric method, indicate a partitioning ratio of the type of the partitioning method.

6. The method according to claim 2, characterized in that Further including: Get the node size of an object of the segmented point cloud, The type of segmentation method for encoding the information of the point cloud includes: The type of the partitioning manner is determined by inferring the at least three binary syntax elements based on the node size of the object.

7. The method according to claim 4, characterized in that Further including: Get the node shape of an object of the segmented point cloud, The type of segmentation method for encoding the information of the point cloud includes: The type of the segmentation manner is determined by inferring the at least three binary syntax elements based on the node shape of the object.

8. The method according to any one of claims 1 to 3, characterized in that: The type of segmentation of the point cloud is selected using the following formula: where p indicates a tree partitioning mode, D(p) is the distortion function, R(p) is the rate function, λ is the Laplace coefficient, and It is a tree partitioning mode.

9. The method according to any one of claims 1 to 3, characterized in that: The type of segmentation used to encode information of the point cloud includes: The type of the segmentation mode is determined by parsing one of the at least three binary syntax elements and inferring two syntax elements of the at least three binary syntax elements.

10. The method according to any one of claims 1 to 3, characterized in that: The type of segmentation used to encode information of the point cloud includes: The segmentation type of the descendant nodes of the segmented point cloud is inferred.

11. A device for decoding point cloud information, characterized in that: include: at least one memory for storing computer program code; and at least one processor configured to access the at least one memory and to operate according to the computer program code; The computer program code comprises: A first acquisition code is used to acquire an encoded code stream, wherein the encoded code stream includes encoded information of a point cloud, wherein the point cloud includes a set of points in a three-dimensional space; and A code is determined to determine a type of segmentation method for encoding information of the point cloud by at least one of the following operations: parsing a signal of at least three binary syntax elements, or inferring at least one syntax element of the at least three binary syntax elements.

12. The device according to claim 11, characterized in that The at least three binary syntax elements indicate whether to perform segmentation on the X-axis, the Y-axis, and the Z-axis.

13. The device according to claim 11, characterized in that The computer program code further comprises: The second acquisition code is used to obtain the node size of an object of the segmented point cloud. The determination code is further used to determine the type of the segmentation mode by inferring the at least three binary syntax elements based on the node size of the object.

14. The device according to any one of claims 11 to 13, characterized in that The determining code is further configured to determine the type of the segmentation manner by performing at least one of the following further operations: parsing signals of another two binary syntax elements and inferring the another two binary syntax elements.

15. The device according to claim 14, characterized in that The other two binary syntax elements indicate that the type of the partitioning method is a symmetric method, and when the type of the partitioning method is an asymmetric method, indicate a partitioning ratio of the type of the partitioning method.

16. The device according to claim 12, characterized in that The computer program code further comprises: The second acquisition code is used to obtain the node size of an object of the segmented point cloud. The determination code is used to determine the type of the segmentation mode by inferring the at least three binary syntax elements based on the node size of the object.

17. The device according to claim 14, characterized in that The computer program code further comprises: The second acquisition code is used to obtain the node shape of an object of the segmented point cloud. The determination code is used to determine the type of the segmentation method by inferring the at least three binary syntax elements based on the node shape of the object.

18. The device according to any one of claims 11 to 13, characterized in that The type of segmentation of the point cloud is selected using the following formula: where p indicates a tree partitioning mode, D(p) is the distortion function, R(p) is the rate function, λ is the Laplace coefficient, and It is a tree partitioning mode.

19. The device according to any one of claims 11 to 13, characterized in that The determination code is used to determine the type of the segmentation mode by parsing one syntax element among the at least three binary syntax elements and inferring two syntax elements among the at least three binary syntax elements.

20. A non-volatile computer-readable storage medium storing instructions, characterized in that: The instructions may cause at least one processor to execute the method according to any one of claims 1-10.

Citation Information

Patent Citations

  • Image data coding and decoding methods and devices

    CN109151477A

  • A method and apparatus for encoding / decoding the geometry of a point cloud representing a 3D object

    EP3474233A1