A point cloud outlier point encoding method, decoding method and device

By establishing an octree structure and context set, the problem of determining that neighbor nodes are empty in point cloud encoding is solved, the entropy encoding performance is improved, and efficient encoding and decoding of isolated point cloud nodes is achieved.

CN115474036BActive Publication Date: 2026-03-31PENG CHENG LAB
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-06-11
Publication Date
2026-03-31

AI Technical Summary

Technical Problem

Existing point cloud encoding and decoding methods often classify actually non-empty neighboring nodes as empty, resulting in low entropy encoding performance and failing to consider the occupancy status of neighboring nodes.

Method used

By establishing an octree structure, based on the point cloud data to be encoded and the occupancy status of the nodes in the previous layer, the isolated node flag and context set are obtained, and the isolated node flag is encoded based on the context set to update the node occupancy status.

Benefits of technology

It improves the performance of entropy coding, avoids missing actual non-empty neighbor nodes, and achieves efficient encoding and decoding of isolated point cloud nodes.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115474036B_ABST
    Figure CN115474036B_ABST
Patent Text Reader

Abstract

The application discloses a point cloud isolated point coding method, a decoding method and a device, and the method comprises the following steps: obtaining an isolated node flag bit and a context set of the isolated node according to to-be-coded point cloud data and an occupation condition of a node of a previous layer; coding the point cloud isolated node flag bit according to the context set of the isolated node flag bit, so as to obtain a binary code stream corresponding to the point cloud isolated node flag bit; coding coordinates of the isolated node according to the point cloud isolated node flag bit; and updating the occupation condition of a node of a next layer corresponding to the isolated node according to the coordinates of the isolated node. The application codes the point cloud isolated node based on the context set, can realize efficient coding of the isolated node flag bit through the context, and does not miss the actual non-empty neighbor node, so that the performance of entropy coding is improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to the field of digital signal processing technology, and in particular to a method, method and apparatus for encoding isolated points in point clouds. Background Technology

[0002] Data compression is used in communications and computer networking to efficiently store, transmit, and reproduce information. There is a growing interest in representing three-dimensional objects or spaces, as this can involve large datasets for which efficient and effective compression is extremely useful and valuable. In some cases, point clouds can be used to represent three-dimensional objects or spaces. A point cloud is a collection of points, each with three coordinate positions (X, Y, Z), and in some cases, additional properties such as color data (e.g., brightness and chromaticity), transparency, reflectivity, normal vectors, etc. Point clouds can be static (a snapshot of a fixed object or environment / object at a single point in time) or dynamic (a time series of point clouds).

[0003] Point clouds can involve large amounts of data, and it is crucial to encode and decode this data quickly and accurately. However, current point cloud encoding and decoding methods sometimes classify actually non-empty neighbor nodes as empty, and when encoding isolated points, they do not consider the occupancy of neighboring nodes, resulting in low performance of entropy encoding.

[0004] Therefore, existing technologies still need improvement and development. Summary of the Invention

[0005] The technical problem to be solved by the present invention is to provide a point cloud isolated point encoding method, decoding method and apparatus to address the above-mentioned defects of the prior art. The aim is to solve the problems in the prior art that point cloud encoding and decoding methods may determine that actually non-empty neighbor nodes are empty, and that the occupancy of neighboring nodes is not considered when encoding the isolated node flag, resulting in low performance of entropy encoding.

[0006] The technical solution adopted by this invention to solve the problem is as follows:

[0007] In a first aspect, embodiments of the present invention provide a method for encoding isolated points in a point cloud, wherein the method includes:

[0008] Establish an octree structure corresponding to the point cloud, wherein the octree includes several layers and each layer includes several nodes.

[0009] For the current layer node, based on the point cloud data to be encoded and the occupancy status of the nodes in the previous layer, the isolated node flag and the context set of the isolated node are obtained;

[0010] The isolated node flag bits of the point cloud are encoded according to the context set of the isolated node flag bits to obtain the binary code stream corresponding to the isolated node flag bits of the point cloud.

[0011] The coordinates of the isolated node are encoded according to the isolated node flag bits of the point cloud;

[0012] Based on the coordinates of the isolated node, update the occupancy status of the next-level node corresponding to the isolated node.

[0013] In one implementation, the isolated node flag and the context set of the isolated node are obtained based on the point cloud data to be encoded and the occupancy status of the nodes in the previous layer, including:

[0014] When the number of point cloud vertices contained in the node is 1, the node is regarded as an isolated node of the point cloud, and the isolated node flag corresponding to the isolated node of the point cloud is set to 1.

[0015] When the number of point cloud vertices contained in the node is greater than 1, the node is regarded as a non-isolated node of the point cloud, and the isolated node flag corresponding to the non-isolated node of the point cloud is set to 0.

[0016] Traverse every node of the next level of the octree structure;

[0017] Obtain several adjacent nodes of each node in the next level of an octree structure;

[0018] Detect the occupancy status of each node's neighboring nodes;

[0019] A context set is obtained based on the occupancy status of each node's neighboring nodes; wherein the context set includes several elements, and the nodes include isolated nodes and non-isolated nodes.

[0020] In one implementation, obtaining the context set based on the occupancy status of each node's neighboring nodes includes:

[0021] For each node, a binary array is constructed; wherein the binary array includes an X group, a Y group, a Z group, and a minimum scale array;

[0022] Iterate through groups X, Y, and Z in the binary array;

[0023] Sort the scales of group X, group Y, and group Z in the binary array, and take the smallest scale group as the smallest scale array;

[0024] Assign values ​​to the binary array based on the occupancy status of each node's neighboring nodes;

[0025] Use the assigned binary array to select the context set.

[0026] In one implementation, updating the occupancy status of the next-level node corresponding to the isolated node based on the coordinates of the isolated node includes:

[0027] Obtain the linked list, and retrieve the coordinates of the isolated node of the point cloud from the point cloud data to be encoded. Store the coordinates in the linked list, and then set the access threshold for the isolated node of the point cloud.

[0028] Traverse the coordinates of the isolated nodes of the point cloud in the linked list, and update the occupancy status of the next-level nodes corresponding to the isolated nodes based on the coordinates of the isolated nodes.

[0029] When the number of times the isolated node of the point cloud is accessed exceeds the access count threshold, the coordinate is removed from the linked list.

[0030] Secondly, embodiments of the present invention provide a method for decoding isolated points in a point cloud, wherein the method includes:

[0031] Based on the occupancy status of the decoded upper-level octree, obtain the context set of the isolated node flag bits;

[0032] The bitstream is decoded based on the context set of the isolated node flag bits to obtain the point cloud isolated node flag bits;

[0033] The coordinates of the isolated node are obtained by decoding the isolated node flag bits of the point cloud.

[0034] Based on the coordinates of the isolated node, update the occupancy status of the next-level node corresponding to the isolated node.

[0035] In one implementation, the context set of the isolated node flag bits decodes the bitstream to obtain the point cloud isolated node flag bits, which include:

[0036] The bitstream is decoded based on the context set of the isolated node flag bits;

[0037] When the decoding result is 1, the node is regarded as an isolated node in the point cloud, and the isolated node flag corresponding to the isolated node in the point cloud is set to 1.

[0038] When the decoding result is 0, the node is regarded as a non-isolated node of the point cloud, and the isolated node flag corresponding to the non-isolated node of the point cloud is set to 0.

[0039] In one implementation, updating the occupancy status of the next-level node corresponding to the isolated node based on the coordinates of the isolated node includes:

[0040] Obtain the linked list, store the coordinates of the decoded isolated nodes in the linked list, and then set the access threshold for the isolated nodes of the point cloud.

[0041] Traverse the coordinates of the isolated nodes of the point cloud in the linked list, and update the occupancy status of the next-level nodes corresponding to the isolated nodes based on the coordinates of the isolated nodes.

[0042] When the number of times the isolated node of the point cloud is accessed exceeds the access count threshold, the coordinate is removed from the linked list.

[0043] Thirdly, embodiments of the present invention also provide a point cloud isolated point encoding device, wherein the device includes:

[0044] The context set acquisition module is used to obtain the isolated node flag and the context set of the isolated node based on the point cloud data to be encoded and the occupancy status of the nodes in the previous layer.

[0045] The binary code stream acquisition module is used to encode the isolated node flag bits of the point cloud according to the context set of the isolated node flag bits to obtain the binary code stream corresponding to the isolated node flag bits of the point cloud.

[0046] The coordinate acquisition module is used to encode the coordinates of the isolated node according to the isolated node flag bit of the point cloud;

[0047] The occupancy status acquisition module is used to update the occupancy status of the next-level node corresponding to the isolated node based on the coordinates of the isolated node.

[0048] Fourthly, embodiments of the present invention also provide a point cloud isolated point decoding device, wherein the device includes:

[0049] The context set acquisition module is used to obtain the context set of isolated node flags based on the occupancy status of the decoded upper-level octree.

[0050] The point cloud isolated node flag acquisition module is used to decode the bitstream according to the context set of the isolated node flag to obtain the point cloud isolated node flag.

[0051] The coordinate acquisition module is used to decode the isolated node flags of the point cloud to obtain the coordinates of the isolated node;

[0052] The occupancy status acquisition module is used to update the occupancy status of the next-level node corresponding to the isolated node based on the coordinates of the isolated node.

[0053] Fifthly, embodiments of the present invention also provide a point cloud encoding and decoding system, wherein the system includes a point cloud isolated point encoding device and a point cloud isolated point decoding device.

[0054] In a sixth aspect, embodiments of the present invention also provide a smart terminal, including a memory and one or more programs, wherein one or more programs are stored in the memory and configured to be executed by one or more processors, the one or more programs including a point cloud outlier encoding method or a point cloud outlier decoding method as described in any of the preceding claims.

[0055] In a seventh aspect, embodiments of the present invention also provide a non-transitory computer-readable storage medium, wherein when the instructions in the storage medium are executed by a processor of an electronic device, the electronic device is able to perform any of the point cloud isolated point encoding methods or point cloud isolated point decoding methods described above.

[0056] The beneficial effects of this invention are as follows: First, the embodiment of this invention acquires point cloud data to be encoded; then, based on the point cloud data, it obtains a context set and isolated point cloud nodes, preparing for subsequent encoding of isolated node flags. Subsequently, it encodes the isolated node flags based on the context set, obtaining a binary code stream corresponding to the isolated node flags; and then encodes the coordinates of the isolated nodes based on the isolated node flags. Finally, it updates the occupancy status of the next-layer nodes corresponding to the isolated nodes. Therefore, this invention, by encoding isolated nodes based on a context set, can efficiently encode isolated node flags through context and avoid missing actual non-empty neighbor nodes, thereby improving the performance of entropy encoding. Attached Figure Description

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

[0058] Figure 1 A diagram illustrating the updating context of existing technology.

[0059] Figure 2 This is a schematic diagram of a point cloud isolated point encoding method provided in an embodiment of the present invention.

[0060] Figure 3 This is a schematic diagram of six adjacent nodes provided in an embodiment of the present invention.

[0061] Figure 4 The coding flowchart provided for embodiments of the present invention.

[0062] Figure 5 An embodiment block diagram of the construction context provided for embodiments of the present invention.

[0063] Figure 6 This is a schematic diagram illustrating the update context provided in an embodiment of the present invention.

[0064] Figure 7 The decoding flowchart is provided for an embodiment of the present invention.

[0065] Figure 8 A comparison table of geometric coding efficiency under lossy conditions provided for embodiments of the present invention.

[0066] Figure 9 This is a schematic diagram of a point cloud isolated point encoding device provided in an embodiment of the present invention.

[0067] Figure 10 This is a block diagram illustrating the internal structure of a smart terminal provided in an embodiment of the present invention. Detailed Implementation

[0068] This invention discloses a method, method, and apparatus for encoding and decoding isolated points in point clouds. To make the objectives, technical solutions, and effects of this invention clearer and more explicit, the invention will be further described in detail below with reference to the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are only for explaining the invention and are not intended to limit the invention.

[0069] Those skilled in the art will understand that, unless specifically stated otherwise, the singular forms “a,” “an,” “the,” and “the” used herein may also include the plural forms. It should be further understood that the term “comprising” as used in this specification means the presence of the stated features, integers, steps, operations, elements, and / or components, but does not exclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and / or groups thereof. It should be understood that when we say an element is “connected” or “coupled” to another element, it can be directly connected or coupled to the other element, or there may be intermediate elements. Furthermore, “connected” or “coupled” as used herein can include wireless connections or wireless coupling. The term “and / or” as used herein includes all or any units and all combinations of one or more associated listed items.

[0070] It will be understood by those skilled in the art that, unless otherwise defined, all terms used herein (including technical and scientific terms) have the same meaning as commonly understood by one of ordinary skill in the art to which this invention pertains. It should also be understood that terms such as those defined in general dictionaries should be understood to have the same meaning as in the context of the prior art, and should not be interpreted in an idealized or overly formal sense unless specifically defined as herein.

[0071] In existing technologies, Zhang Xiang et al. proposed a method for direct encoding of isolated points. This method introduces a flag indicating whether the current node uses the isolated point encoding mode. This flag is entropy-encoded using a context model. If the flag is True, the isolated point mode is used, the geometric coordinates of the point are directly encoded, and the octree partitioning ends. If the flag is False, the occupancy code is encoded, and the octree partitioning continues. This method introduces a flag and uses a context model to entropy-encode it. However, using a context model alone is not efficient for encoding the flag. Considering that whether a node is an isolated point is related to the occupancy status of its neighboring nodes, this invention achieves efficient encoding of the flag by designing a flag context.

[0072] Zhang Wei et al. proposed an optimized method for geometric context updating. This method uses the placeholder code of the current node to update the context information of the current level of the octree in both placeholder code encoding and isolated point encoding modes. In placeholder code encoding mode, the child nodes of the current node are used to update the context information of the next level of the octree, while in isolated point encoding mode, the child nodes of the current node are not used for updating. Figure 1 As shown in the diagram, the left side represents the current layer, the lower left represents isolated nodes, and the lower right represents non-isolated nodes. The occupancy of both nodes is updated in the context information. The right side represents the next layer, where only the information of the non-isolated nodes on the right is updated in the context information. This can lead to actually non-empty neighbor nodes being judged as empty, affecting the performance of entropy coding. This invention achieves highly efficient application of isolated point coordinates by continuing to use the information of isolated points and updating the context information with the coordinates of the isolated points in subsequent encoding and decoding processes.

[0073] To address the problems of existing technologies, this embodiment provides a point cloud isolated node encoding method. By encoding isolated nodes based on a context set, it can avoid missing actual non-empty neighbor nodes, thereby improving the performance of entropy encoding. Specifically, firstly, based on the point cloud data to be encoded and the occupancy status of nodes in the previous layer, an isolated node flag and the context set of the isolated node are obtained; then, the isolated node flag is encoded according to the context set of the isolated node flag to obtain a binary code stream corresponding to the isolated node flag; subsequently, the coordinates of the isolated node are encoded according to the isolated node flag; finally, the occupancy status of the next-layer nodes corresponding to the isolated node is updated based on the coordinates of the isolated node.

[0074] Exemplary methods

[0075] This embodiment provides a method for encoding isolated points in point clouds, which can be applied to intelligent terminals for digital signal processing. Specifically, as follows... Figure 1 As shown, the method includes:

[0076] Step S100: Based on the point cloud data to be encoded and the occupancy status of the nodes in the previous layer, obtain the isolated node flag and the context set of the isolated node.

[0077] Specifically, the first step is to acquire the point cloud data to be encoded. This can be done using airborne LiDAR or a backpack LiDAR. In practice, to obtain more accurate data processing results later, the point cloud data to be encoded can undergo preprocessing, such as filtering and denoising. Neural network algorithms can be used to process the point cloud data to be encoded, or the data can be selected to obtain a context set and isolated point cloud nodes. The context set is an ordered sequence of attributes that defines the environment for objects residing within it. An isolated point cloud node refers to a single point existing in the point cloud space. The global space can be partitioned using the KD-tree concept, dividing the point cloud data to be encoded into multiple KD subspaces, each with a similar number of points. Then, an octree structure is built in each KD subspace to obtain an octree structure corresponding to the point cloud data to be encoded. Accordingly, obtaining the octree structure corresponding to the point cloud data to be encoded based on the point cloud data to be encoded includes the following steps: obtaining the location information of the point cloud data to be encoded; wherein, the location information is used to represent the three-dimensional coordinate information of the point cloud data to be encoded; based on the octree algorithm, the location information is divided into nodes of each level of the octree to obtain the octree structure corresponding to the point cloud data to be encoded. In this embodiment, the location information of the point cloud data to be encoded is obtained first; wherein, the location information is used to represent the three-dimensional coordinate information of the point cloud data to be encoded; an octree is a data structure that is divided layer by layer from the root node to the leaf nodes, that is, a tree with a maximum of eight child nodes for non-leaf nodes. Octree algorithm: an octree extends the scene from two-dimensional space to three-dimensional space. If it is not an empty tree, any node in the tree will have exactly eight or zero child nodes, that is, the number of child nodes will not be 0 or 8. The octree structure includes several levels, and each level includes several nodes. According to the octree algorithm, the location information can be segmented into nodes at corresponding levels in the octree to obtain the octree structure corresponding to the point cloud data to be encoded.

[0078] After obtaining the octree structure, based on the point cloud data to be encoded and the occupancy status of the nodes in the previous layer, the isolated node flag and the context set of the isolated node are obtained. Accordingly, obtaining the isolated node flag and the context set of the isolated node based on the point cloud data to be encoded and the occupancy status of the nodes in the previous layer includes the following steps: When the number of point cloud vertices contained in the node is 1, the node is designated as an isolated node in the point cloud, and the isolated node flag corresponding to the isolated node is set to 1; when the number of point cloud vertices contained in the node is greater than 1, the node is designated as a non-isolated node in the point cloud, and the isolated node flag corresponding to the non-isolated node is set to 0; traverse each node in the previous layer of the octree structure; for example, traverse the nodes in the previous layer of the octree layer by layer to obtain several neighboring nodes of each node in the previous layer of the octree structure; detect the occupancy status of each neighboring node of each node; for example, for a certain node, obtain the occupancy status of its 6 surrounding neighboring nodes. Next, based on the occupancy status of each node's neighboring nodes, a context set is obtained; wherein, the context set includes several elements; correspondingly, obtaining the context set based on the occupancy status of each node's neighboring nodes includes the following steps: constructing a binary array for each node; wherein, the binary array includes X groups, Y groups, Z groups, and a minimum scale array; traversing the X groups, Y groups, and Z groups in the binary array; sorting the scales of the X groups, Y groups, and Z groups in the binary array, and using the minimum scale group as the minimum scale array; assigning values ​​to the binary array based on the occupancy status of each node's neighboring nodes; and using the assigned binary array to select the context set.

[0079] Specifically, this invention uses the occupancy status near the current node as context to encode and decode the isolated node flag, such as... Figure 4 As shown. The innovation lies in using the occupancy status of the current node's vicinity as context.

[0080] like Figure 5 As shown, the specific implementation method is as follows:

[0081] (1) Before encoding and decoding, the scale of the point cloud in the X, Y and Z directions is statistically analyzed, the direction with the smallest scale is selected, and 16 contexts are established for encoding and decoding.

[0082] (2) Statistically analyze the occupancy status of the 6 nodes adjacent to the current node, and divide the 6 adjacent nodes into three groups according to their relative relationship with the current node: group X, group Y, and group Z. For example... Figure 3 As shown.

[0083] (3) The specific process for selecting the context is as follows:

[0084] a. Create a binary array A[4] to select the context, where A[0] corresponds to the X group, A[1] corresponds to the Y group, A[2] corresponds to the Z group, and A[3] corresponds to the direction with the smallest scale.

[0085] b. Traverse the three groups of nodes in order. If the current group is not the direction with the smallest scale, the corresponding value is 0 when both nodes in the current group are empty; otherwise, the corresponding value is 1.

[0086] C. If the current group is the direction with the smallest scale, then use A[n] corresponding to the current group to record the occupancy in the negative direction, which refers to the corresponding binary array. For example, X corresponds to A[0], and A[3] records the occupancy in the positive direction, which refers to the two adjacent nodes in the direction with the smallest scale.

[0087] D. Select the context set using array A[4].

[0088] After obtaining the isolated node flag and the context set of the isolated node, the following can be executed: Figure 1 The steps are as follows: S200, the isolated node flag bits of the point cloud are encoded according to the context set of the isolated node flag bits to obtain the binary code stream corresponding to the isolated node flag bits of the point cloud.

[0089] Specifically, based on the context set of the isolated node flag bits, the isolated node of the point cloud can be encoded using an octree-like encoding method or a neural network algorithm to obtain the binary code stream corresponding to the isolated node of the point cloud.

[0090] After obtaining the binary code stream corresponding to the isolated node flag bits of the point cloud, the following can be executed: Figure 1 The following steps are shown: S300, Encode the coordinates of the isolated node according to the isolated node flag bit of the point cloud.

[0091] Once the coordinates of the isolated node are obtained, the following can be executed: Figure 1 The following steps are shown: S400, Update the occupancy status of the next-level node corresponding to the isolated node based on the coordinates of the isolated node. Accordingly, updating the occupancy status of the next-level node corresponding to the isolated node based on the coordinates of the isolated node includes the following steps:

[0092] S401. Obtain the linked list, and obtain the coordinates of the isolated node of the point cloud from the point cloud data to be encoded. Store the coordinates in the linked list, and then set the access threshold of the isolated node of the point cloud.

[0093] S402. Traverse the coordinates of the isolated nodes of the point cloud in the linked list, and update the occupancy status of the next-level nodes corresponding to the isolated nodes based on the coordinates of the isolated nodes.

[0094] S403. When the number of times of accessing the point cloud isolated node is greater than the access times threshold, remove the coordinate from the linked list.

[0095] Specifically, the present invention records the information of isolated points and uses the isolated points to update the context during the encoding and decoding process of subsequent layers of the octree. The innovation lies in recording the information of isolated points and using the information of isolated points to update the context in non-current layers, as Figure 6 shown.

[0096] The specific implementation is as follows: (1) Before encoding and decoding, create a new linked list to store the coordinates of isolated vertices, and set the maximum number of times M that each isolated point can be accessed. The maximum access times refers to the number of times each isolated point is accessed. The more times an isolated point is accessed, the less likely it is to be adjacent to other nodes. Therefore, removing the isolated points that have been accessed a certain number of times can reduce the time overhead.

[0097] (2) During the encoding and decoding process, for each isolated node processed, add its coordinate and the number of times K (initially K = 0) accessed to the end of the linked list.

[0098] (3) After traversing one layer of the octree, traverse all the coordinates of isolated vertices in the linked list, add the occupancy of all vertices that satisfy K < M to the context of the next layer, and increase their access times by 1. Remove other nodes from the linked list, that is, the nodes whose access times are greater than or equal to M.

[0099] This embodiment provides a method for decoding point cloud isolated points, which can be applied to intelligent terminals for digital signal processing. As Figure 7 shown, the method includes the following steps: Step H100. Obtain the context set of the isolated node flag bits according to the occupancy of the previously decoded upper layer of the octree; specifically, the to-be-decoded code stream can be received on a receiver or on a decoding device; the to-be-decoded code stream includes a non-point cloud isolated node code stream and a point cloud isolated node coordinate code stream, and then obtain the context set of the isolated node flag bits according to the occupancy of the previously decoded upper layer of the octree.

[0100] After obtaining the context set of the isolated node flag bits, the following can be executed as Figure 7The steps shown are as follows: Step H200: Decode the bitstream according to the context set of the isolated node flag to obtain the isolated node flag of the point cloud. Correspondingly, the step of decoding the bitstream according to the context set of the isolated node flag to obtain the isolated node flag of the point cloud includes the following steps: Decode the bitstream according to the context set of the isolated node flag; when the decoding result is 1, the node is designated as an isolated node of the point cloud, and the isolated node flag corresponding to the isolated node is set to 1; when the decoding result is 0, the node is designated as a non-isolated node of the point cloud, and the isolated node flag corresponding to the non-isolated node is set to 0.

[0101] After obtaining the isolated node flag of the decoded point cloud, the following can be executed: Figure 7 The following steps are shown: Step H300: Decode the isolated node flag bit of the point cloud to obtain the coordinates of the isolated node.

[0102] Once the coordinates of the isolated node are obtained, the following can be executed: Figure 7 The steps shown are as follows: H400, update the occupancy status of the next-level node corresponding to the isolated node based on the coordinates of the isolated node. Accordingly, updating the occupancy status of the next-level node corresponding to the isolated node based on the coordinates of the isolated node includes the following steps: obtain a linked list, store the coordinates of the decoded isolated nodes in the linked list, and set a threshold for the number of visits to the point cloud isolated nodes; traverse the coordinates of the point cloud isolated nodes in the linked list, and update the occupancy status of the next-level node corresponding to the isolated node based on the coordinates of the isolated node; when the number of visits to the point cloud isolated node exceeds the access threshold, remove the coordinates from the linked list.

[0103] The direct advantage of this method is the reduction of geometric encoding overhead in point cloud encoding. To demonstrate the results, we tested the method of this invention against anchors using PCRM software version 3.0. This method improves geometric encoding efficiency under both lossy and lossless conditions. Figure 8 The results of this method under lossy coding conditions are shown in the figure.

[0104] Exemplary device

[0105] like Figure 8 As shown in the figure, this embodiment of the invention provides a point cloud isolated point encoding device, which includes a context set acquisition module 501, a binary code stream acquisition module 502, a coordinate acquisition module 503, and an occupancy acquisition module 504, wherein:

[0106] The context set acquisition module 501 is used to obtain the isolated node flag and the context set of the isolated node based on the point cloud data to be encoded and the occupancy status of the nodes in the previous layer.

[0107] The binary code stream acquisition module 502 is used to encode the isolated node flag bits of the point cloud according to the context set of the isolated node flag bits to obtain the binary code stream corresponding to the isolated node flag bits of the point cloud.

[0108] The coordinate acquisition module 503 is used to encode the coordinates of the isolated node according to the isolated node flag bit of the point cloud;

[0109] The occupancy status acquisition module 504 is used to update the occupancy status of the next-level node corresponding to the isolated node based on the coordinates of the isolated node.

[0110] Based on the above embodiments, the present invention also provides a smart terminal, the principle block diagram of which can be as follows: Figure 9 As shown, the smart terminal includes a processor, memory, network interface, display screen, and temperature sensor connected via a system bus. The processor provides computing and control capabilities. The memory includes non-volatile storage media and internal memory. The non-volatile storage media stores the operating system and computer programs. The internal memory provides an environment for the operation of the operating system and computer programs stored in the non-volatile storage media. The network interface is used to communicate with external terminals via a network connection. When the computer program is executed by the processor, it implements a point cloud isolated point encoding method. The display screen can be an LCD screen or an e-ink screen. The temperature sensor is pre-installed inside the smart terminal to detect the operating temperature of internal devices.

[0111] Those skilled in the art will understand that Figure 9 The schematic diagram in the figure is merely a block diagram of a part of the structure related to the present invention and does not constitute a limitation on the smart terminal on which the present invention is applied. The specific smart terminal may include more or fewer components than shown in the figure, or combine certain components, or have different component arrangements.

[0112] In one embodiment, a smart terminal is provided, including a memory and one or more programs, wherein the one or more programs are stored in the memory and configured to be executed by one or more processors. The one or more programs include instructions for performing the following operations:

[0113] Based on the point cloud data to be encoded and the occupancy status of the nodes in the previous layer, the isolated node flag and the context set of the isolated node are obtained.

[0114] The isolated node flag bits of the point cloud are encoded according to the context set of the isolated node flag bits to obtain the binary code stream corresponding to the isolated node flag bits of the point cloud.

[0115] The coordinates of the isolated node are encoded according to the isolated node flag bits of the point cloud;

[0116] Based on the coordinates of the isolated node, update the occupancy status of the next-level node corresponding to the isolated node.

[0117] Those skilled in the art will understand that all or part of the processes in the methods of the above embodiments can be implemented by a computer program instructing related hardware. The computer program can be stored in a non-volatile computer-readable storage medium. When executed, the computer program can include the processes of the embodiments of the above methods. Any references to memory, storage, databases, or other media used in the embodiments provided by this invention can include non-volatile and / or volatile memory. Non-volatile memory can include read-only memory (ROM), programmable ROM (PROM), electrically programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), or flash memory. Volatile memory can include random access memory (RAM) or external cache memory. By way of illustration and not limitation, RAM is available in various forms, such as static RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), dual data rate SDRAM (DDRSDRAM), enhanced SDRAM (ESDRAM), synchronous link DRAM (SLDRAM), RAMbus direct RAM (RDRAM), direct memory bus dynamic RAM (DRDRAM), and RAMbus dynamic RAM (RDRAM), etc.

[0118] In summary, this invention discloses a method, decoding method, and apparatus for encoding isolated points in a point cloud. The method includes: obtaining an isolated node flag and a context set of the isolated node based on the point cloud data to be encoded and the occupancy status of nodes in the previous layer; encoding the isolated node flag according to the context set of the isolated node flag to obtain a binary code stream corresponding to the isolated node flag; encoding the coordinates of the isolated node according to the isolated node flag; and updating the occupancy status of the next-layer nodes corresponding to the isolated node based on the coordinates of the isolated node. This invention encodes isolated nodes in a point cloud based on a context set, which can achieve efficient encoding of isolated node flags through context and without missing actual non-empty neighbor nodes, thereby improving the performance of entropy encoding.

[0119] Based on the above embodiments, the present invention discloses a point cloud isolated point encoding method and a point cloud decoding method. It should be understood that the application of the present invention is not limited to the above examples. Those skilled in the art can make improvements or modifications based on the above description, and all such improvements and modifications should fall within the protection scope of the appended claims.

Claims

1. A method for encoding isolated points of a point cloud defined in an octree structure, the octree structure comprising a number of levels, each level comprising a number of nodes; for a current level node, characterized in that, The method comprises: According to the to-be-encoded point cloud data and the occupation state of the node of the previous layer, an isolated node flag bit and a context set of the isolated node are obtained; The point cloud isolated node flag bit is encoded according to the context set of the isolated node, and a binary code stream corresponding to the point cloud isolated node flag bit is obtained; The coordinates of the isolated node are encoded according to the point cloud isolated node flag bit; According to the coordinates of the isolated node, the occupation state of the node of the next layer corresponding to the isolated node is updated.

2. The point cloud outlier encoding method of claim 1, wherein, The method comprises: When the number of point cloud vertices contained in the node is 1, the node is regarded as a point cloud isolated node, and the isolated node flag bit corresponding to the point cloud isolated node is set to 1; When the number of point cloud vertices contained in the node is greater than 1, the node is regarded as a point cloud non-isolated node, and the isolated node flag bit corresponding to the point cloud non-isolated node is set to 0; Each node of the previous layer of the octree structure is traversed; A plurality of adjacent nodes of each node of the previous layer of the octree structure are obtained; The occupation state of each adjacent node of each node is detected; According to the occupation state of each adjacent node of each node, a context set is obtained; wherein the context set comprises a plurality of elements, and the node comprises an isolated node and a non-isolated node.

3. The point cloud outlier encoding method of claim 2, wherein, The method comprises: According to each node, a binary array is constructed; wherein the binary array comprises X group, Y group, Z group and scale minimum array; X group, Y group and Z group in the binary array are traversed; The scale of X group, the scale of Y group and the scale of Z group in the binary array are sorted, and the group with the smallest scale is taken as the scale minimum array; According to the occupation state of each adjacent node of each node, the binary array is assigned a value; The context set is selected by using the assigned binary array.

4. The point cloud outlier encoding method of claim 1, wherein, The method comprises: The coordinates of the point cloud isolated node are obtained from the to-be-encoded point cloud data, and the coordinates are stored in the linked list, and then the access frequency threshold of the point cloud isolated node is set; The coordinates of the point cloud isolated node in the linked list are traversed, and the occupation state of the node of the next layer corresponding to the isolated node is updated according to the coordinates of the isolated node; When the access frequency of the point cloud isolated node is greater than the access frequency threshold, the coordinates are removed from the linked list.

5. A method for decoding isolated points of a point cloud defined in an octree structure, the octree structure comprising a number of layers, each layer comprising a number of nodes; for a current layer node, characterized in that, The method comprises: According to the decoded occupation state of the previous layer of the octree, a context set of an isolated node is obtained; The code stream is decoded according to the context set of the isolated node, and a point cloud isolated node flag bit is obtained; The coordinates of the isolated node are obtained by decoding according to the point cloud isolated node flag bit; According to the coordinates of the isolated node, the occupation state of the node of the next layer corresponding to the isolated node is updated.

6. The method of Claim 5, wherein, The decoding of the code stream according to the context set of the isolated node includes: decoding of the code stream according to the context set of the isolated node; when the decoding result is 1, the node is taken as a point cloud isolated node, and the isolated node flag corresponding to the point cloud isolated node is set to 1; when the decoding result is 0, the node is taken as a point cloud non-isolated node, and the isolated node flag corresponding to the point cloud non-isolated node is set to 0.

7. The method of Claim 5, wherein, The updating of the occupancy of the next layer node corresponding to the isolated node according to the coordinates of the isolated node includes: acquiring a linked list, storing the coordinates of the decoded isolated node in the linked list, and setting a threshold of the access times of the point cloud isolated node; traversing the coordinates of the point cloud isolated node in the linked list, and updating the occupancy of the next layer node corresponding to the isolated node according to the coordinates of the isolated node; when the access times of the point cloud isolated node are greater than the threshold of the access times, removing the coordinates from the linked list.

8. A point cloud isolated point encoding device, characterized in that, The device includes: a context set acquisition module configured to obtain an isolated node flag and a context set of the isolated node according to point cloud data to be encoded and occupancy of a node of a previous layer; a binary code stream acquisition module configured to encode the point cloud isolated node flag according to the context set of the isolated node, and obtain a binary code stream corresponding to the point cloud isolated node flag; a coordinate acquisition module configured to encode coordinates of the isolated node according to the point cloud isolated node flag; an occupancy acquisition module configured to update occupancy of a next layer node corresponding to the isolated node according to the coordinates of the isolated node.

9. A point cloud isolated point decoding device, characterized in that, The device includes: a context set acquisition module configured to obtain a context set of an isolated node according to decoded occupancy of a previous layer octree; a point cloud isolated node flag acquisition module configured to decode a code stream according to the context set of the isolated node, and obtain a point cloud isolated node flag; a coordinate acquisition module configured to decode the coordinates of the isolated node according to the point cloud isolated node flag; an occupancy acquisition module configured to update occupancy of a next layer node corresponding to the isolated node according to the coordinates of the isolated node.

10. A point cloud coding system, characterized by, It includes: The point cloud isolated point encoding device of claim 8 and the point cloud isolated point decoding device of claim 9.

11. A smart terminal, characterized by A memory and one or more programs, wherein the one or more programs are stored in the memory and configured to be executed by one or more processors, and the one or more programs include programs for executing the method of any one of claims 1-7.

12. A non-transitory computer-readable storage medium, comprising: When the instructions in the storage medium are executed by the processor of the electronic device, the electronic device can execute the method of any one of claims 1-7. When the instructions in the storage medium are executed by the processor of the electronic device, the electronic device can execute the method of any one of claims 1-7.

Citation Information

Patent Citations

  • Methods and devices for entropy coding point clouds

    CN111615792A

  • Point cloud geometrical information encoding and decoding method

    CN112565795A