Point cloud encoding and decoding method and apparatus
By encoding and restoring the sequential number of point cloud points during point cloud encoding, the problem of point cloud sequence information loss in the prior art is solved, and the performance and application accuracy of point cloud encoding and decoding are improved, especially map construction and positioning navigation in SLAM technology.
Patent Information
- Application Number
- CN202080005109.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2020-06-09
- Publication Date
- 2025-07-22
- Estimated Expiration
- 2040-06-09
AI Technical Summary
The prior art fails to effectively retain the sequential information of point cloud points during point cloud encoding and decoding, which affects the accuracy of map construction and positioning navigation in application scenarios such as SLAM technology.
During the point cloud encoding process, the sequential numbers of point cloud points are encoded, and the sequential numbers of the original point cloud points are restored during the decoding process to ensure that the decoded point cloud data retains the original order information.
The performance and versatility of point cloud encoding and decoding are improved, making point cloud data more accurate in more scenarios, especially in SLAM technology, which improves the accuracy of map construction and positioning navigation.
Smart Images

Figure CN112740702B_ABST
Abstract
Description
[0001] Copyright Notice
[0002] The disclosure of this patent document contains material that is subject to copyright protection. The copyright is reserved by the copyright owner. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure as it exists in the official records and files of the Patent and Trademark Office. Technical Field
[0003] The present application relates to the field of point cloud technology, and more specifically, to a point cloud encoding and decoding method and device. Background Art
[0004] Point cloud (or 3D point cloud) is a representation of a 3D object or scene. It is composed of a set of irregularly distributed discrete points in space that express the spatial structure and surface properties of a 3D object or scene. Most point clouds are generated by 3D scanning devices, such as photoelectric radar, lidar, stereo cameras, etc. Due to its novel data structure, point cloud has become one of the common data sources in many fields such as photogrammetry and remote sensing, computer vision, and machine learning.
[0005] In order to reduce the bandwidth occupied by point cloud data storage and transmission, it is usually necessary to encode and compress the point cloud through a point cloud encoder. After the compressed point cloud is transmitted to the decoding end, it is decoded to restore the original point cloud. Therefore, how to improve the performance and versatility of the point cloud encoding and decoding algorithm is a technical problem that needs to be solved urgently. Summary of the invention
[0006] The present application provides a point cloud encoding and decoding method and device, which can improve the performance of point cloud encoding and decoding compared to the prior art.
[0007] In a first aspect, a point cloud encoding method is provided, comprising: encoding sequential numbers of point cloud points in the point cloud to generate a code stream of the point cloud; and sending the code stream of the point cloud.
[0008] In a second aspect, a point cloud decoding method is provided, comprising: obtaining a code stream of a point cloud; decoding the code stream of the point cloud to obtain a sequential numbering of point cloud points in the point cloud.
[0009] In a third aspect, a point cloud encoding device is provided, comprising a processor, wherein the processor is used to execute the point cloud encoding method in the first aspect.
[0010] In a fourth aspect, a point cloud decoding device is provided, comprising a processor, wherein the processor is used to execute the point cloud decoding method in the second aspect.
[0011] Fifth aspect, there is provided a computer storage medium, on which a computer program is stored, and when the computer program is executed by a computer, the computer executes the method provided in the first aspect or the second aspect.
[0012] Sixth aspect, there is provided a system, including an encoding device for point cloud in the first aspect, a decoding device for point cloud in the second aspect, and a scanning device for point cloud.
[0013] Through the technical solution of the present application, the information of the sequential number of point cloud points in the point cloud is encoded and decoded, and the sequential information of the original point cloud data is retained during the encoding of the point cloud, so that the original point cloud data can be restored according to this sequential information during decoding, enabling the decoded point cloud data to be applied to more scenarios, and also making the calculation results based on the point cloud data more accurate in more scenarios. Therefore, the technical solution of the present application can improve the performance of point cloud encoding and decoding and the versatility of its point cloud data. BRIEF DESCRIPTION OF THE DRAWINGS
[0014] Figure 1 FIG. shows a schematic diagram of a point cloud data encoding process provided by the present application.
[0015] Figure 2 FIG. is a schematic diagram of an initialization space for point cloud encoding.
[0016] Figure 3 FIG. is a schematic diagram of a point cloud data decoding process according to an embodiment of the present application.
[0017] Figure 4 FIG. is a schematic flowchart of a method for processing point cloud according to an embodiment of the present application.
[0018] Figure 5 、 Figure 7 、 Figure 10 、 Figure 12 、 Figure 14 、 Figure 16 、 Figure 18 、 Figure 20 、 Figure 22 、 Figure 24 、and Figure 26 FIG. are schematic flowcharts of various point cloud encoding methods according to embodiments of the present application.
[0019] Figure 6 、 Figure 9 、 Figure 11 、 Figure 13 、 Figure 15 、 Figure 17 、 Figure 19 、 Figure 21 、 Figure 23 、 Figure 25 and Figure 27Schematic flowchart of a decoding method for multiple point clouds according to an embodiment of the present application.
[0020] Figure 8 A tree structure diagram of a point cloud according to an embodiment of the present application.
[0021] Figure 28 Schematic structural diagram of a point cloud scanning device according to an embodiment of the present application.
[0022] Figure 29 is Figure 28 Schematic diagram of a scanning pattern of a scanning device for a point cloud in
[0023] Figure 30 Schematic block diagram of an encoding device for a point cloud according to an embodiment of the present application.
[0024] Figure 31 Schematic block diagram of a decoding device for a point cloud according to an embodiment of the present application. Detailed implementation manners
[0025] To facilitate understanding of the technical solutions provided in the embodiments of the present application, some concepts related to the embodiments of the present application are first described below.
[0026] Next, the technical solutions in the embodiments of the present application will be described with reference to the accompanying drawings.
[0027] The embodiments of the present application are applicable to standard or non-standard point cloud codecs. For example, an encoder of the audio video coding standard (AVS).
[0028] It should be understood that in various embodiments of the present application, the magnitudes of the sequence numbers of the processes do not mean the order of execution, and the order of execution of the processes should be determined according to their functions and internal logics, and should not constitute any limitation to the implementation process of the embodiments of the present application.
[0029] Unless otherwise specified, all technical and scientific terms used in the embodiments of the present application have the same meanings as those commonly understood by those skilled in the technical field of the present application. The terms used in the present application are only for the purpose of describing specific embodiments, and are not intended to limit the scope of the present application. The term "and / or" used in the present application includes any and all combinations of one or more of the related listed items.
[0030] To facilitate understanding of the technical solutions provided in the embodiments of the present invention, some concepts related to the embodiments of the present invention are first described below.
[0031] A point cloud is a set of discrete points that represents the spatial distribution of an object and the characteristics of its surface in the same spatial reference coordinate system. That is, after obtaining the spatial coordinates of each sampling point on the object's surface, the set of sampling points obtained is called a point cloud (Point Cloud). To accurately reflect the information in three-dimensional space, a large number of discrete points are usually required to represent the object in three-dimensional space. Hereinafter, the discrete points in the point cloud are referred to as point cloud points.
[0032] Figure 1 FIG. shows a schematic diagram of a point cloud data encoding process provided by the present application.
[0033] Point cloud data usually includes the position information and attribute information of multiple point cloud points in the point cloud. The position coordinates of the point cloud points can be used to describe the positions of the point cloud points in three-dimensional space. The attribute information of the point cloud points can, for example, include the color information of the point cloud points, and can also include other information such as the reflectivity of the point cloud points. To reduce the bandwidth occupied by the point cloud during storage and transmission, the point cloud data can be encoded to compress the data volume of the point cloud. During the encoding process of the point cloud data, the encoding of the position information of the point cloud points and the encoding of the attribute information are usually carried out separately.
[0034] As Figure 1 shown, in the encoding method of the point cloud data, the encoding method of the position information of the point cloud points includes:
[0035] Coordinate translation and quantization: Translate and quantize the position coordinates of multiple point cloud points in the point cloud. In one example, a geometric quantization method is used to process the position coordinates of the point cloud points. The process of geometric quantization can convert the position coordinates of multiple point cloud points into integer coordinates greater than or equal to zero. After the position coordinates are translated and quantized, duplicate coordinates can be removed. It is also possible not to remove duplicates and directly perform octree encoding on the quantized position coordinates of the point cloud points.
[0036] Multi-tree partitioning: In this step, the multi-tree partitioning can be understood as any one or more partitioning methods such as octree partitioning, quadtree partitioning, and binary tree partitioning.
[0037] In some embodiments, the octree partitioning method is used to encode the position information of the point cloud points, and this process can also be called octree encoding. The complete octree partitioning process includes multiple layers of octree partitioning, where each layer of octree partitioning uses the coordinates of the center point of the current block for sub-block partitioning, and the current block is divided into eight small sub-blocks with the same volume through the center point.
[0038] For example, first, the maximum and minimum values of the position coordinates in three direction dimensions (x, y, z) can be selected according to the position coordinates of multiple point cloud points (the position coordinates of the point cloud points can be the position coordinates after geometric quantization and / or removal of duplicate coordinates of the point cloud points). Then, the initialization space to be divided can be determined based on these selected quantization values.
[0039] After determining the initialization space, then perform multi-layer octree partitioning on this initialization space. Each layer of octree partitioning can utilize the position coordinates of the center point of the current block for space partitioning, and divide the current block into eight sub-blocks with equal volumes through the center point. Figure 2 Shows the partitioning result obtained after the first partitioning of the initialization space. From Figure 2 It can be seen that the initialization space is evenly divided into 8 sub-blocks with equal volumes. In the octree, the initialization space is the root node block, and these sub-blocks are the child node blocks of this root node, called the first-layer child node blocks.
[0040] After obtaining the first-layer child node blocks, it can be determined whether there are point cloud points in each child node block of the first layer. For the child node blocks with point cloud points, further partitioning is performed until the side length of the child node block is less than the threshold, and at this time, the child node block is called the leaf node block of the current octree. This threshold can be 1, for example.
[0041] When performing octree encoding on the position coordinates of multiple point cloud points in the point cloud, it can be encoded layer by layer according to the breadth first search (BFS) order of the octree. When encoding layer by layer, each partitioning result of the octree can be encoded one by one layer by layer, that is, it is determined whether the eight sub-blocks obtained after the octree partitioning of the current sub-block contain point cloud points. If a certain sub-block of this block contains point cloud points, then further partitioning is performed on this sub-block, otherwise the partitioning stops. When reaching the last layer of the octree (the last layer can be the layer with a sub-block side length of 1), the bottom layer of the octree is reached, that is, the leaf nodes of the octree are reached, and no further partitioning is required.
[0042] In some other embodiments, a quadtree partitioning method, a binary tree partitioning method, or a multi-tree partitioning method that mixes several partitioning methods can also be used to encode the position information of the point cloud points.
[0043] For example, similar to the octree encoding process described above, the multiple sub-blocks obtained after the multi-tree division can be encoded layer by layer in the breadth-first encoding order. Among them, if the quadtree division method is used for the sub-blocks, only 4 bits need to be encoded for it, saving 4 bits compared to the octree division; if the binary tree division method is used for encoding, only 2 bits need to be encoded, saving 6 bits compared to the octree division. The skipped bits can be inferred to be 0 at the decoding end.
[0044] Optionally, in addition to the above encoding method that encodes the positions of the point cloud points in the breadth-first traversal order (BFS), the depth-first search (DFS) encoding method can also be used to encode the positions of the point cloud points.
[0045] In some embodiments, after using the multi-tree division method to divide the initial space of the point cloud to form the tree structure of the point cloud, when encoding to the first block in the tree structure, if the distribution and / or quantity of the point cloud points in the first block meet the preset conditions, the depth-first traversal order encoding method is used to encode the position coordinates of the point cloud points in the first block, and then return to the second block after the first block to encode the second block. In the breadth-first traversal encoding order, the second block is located after the first block. If the second block also meets the preset conditions, the depth-first traversal order encoding method is also used to encode the position coordinates of the point cloud points in the second block. If the second block does not meet the preset conditions, the breadth-first traversal encoding method is still used to encode the division results of its next layer. The tree structure is encoded in this way until the leaf node layer of the tree structure is encoded.
[0046] Entropy encoding: The entropy encoding is performed on the coded stream after octree encoding to obtain the geometric coded stream of the point cloud, that is, the coded stream of the position information of multiple point cloud points in the point cloud.
[0047] After the multi-tree encoding of the position coordinates, the corresponding attribute values will be compressed and encoded in the order of the position coordinates reconstructed by the multi-tree synchronously.
[0048] Continue to refer to Figure 1 , in the encoding method of point cloud data, the encoding method of the attribute information of point cloud points includes:
[0049] Spatial transformation: This step is an optional step, that is, the process of converting the color attribute of the point cloud point from the RGB space to the YUV space. Specifically, the color attribute of the point cloud point can be spatially transformed through the conversion formula.
[0050] Attribute interpolation: Attribute interpolation is required only when the geometric information of the point cloud points (the number of points in the point cloud or the relative position between points) changes. For example, when duplicate points are removed during position information encoding, that is, the process of recoloring.
[0051] Given the geometric and attribute information of the original point cloud, as well as the geometric information of the reconstructed point cloud, recoloring is to calculate a new attribute value for each point in the reconstructed point cloud to minimize the attribute error between the reconstructed point cloud and the original point cloud. The implementation process is as follows:
[0052] Step1: Let the geometric information of the original point cloud and the reconstructed point cloud be (P i ) i=0...N-1 and where N and N rec are the number of points in the original point cloud and the reconstructed point cloud respectively. It is easy to know that if duplicate points are removed, then N rec < N, otherwise N rec = N.
[0053] Step2: For each point in the reconstructed point cloud, find the point P i * in the original point cloud that is closest to it. Let the attribute value of P i * be A i * .
[0054] Step3: For each point in the original point cloud, find the point in the reconstructed point cloud that is closest to it. For the point in the reconstructed point cloud, let U(i) = (X k (i) k∈{1,...,D(i)} ) be the set of points in the original point cloud that all have as the closest point, where D(i) is the number of points contained in U(i). Note that U(i) can be empty, or it can contain one or more points.
[0055] Step4: Calculate the reconstructed attribute value for each point in the reconstructed point cloud. If U(i) is empty, then directly assign A i * as the reconstructed attribute value to If U(i) is not empty, then the attribute value of the reconstructed point is the average of the attributes of all points in U(i). The calculation formula is as follows:
[0056]
[0057] Attribute Prediction: In one implementation, the method of reordering Morton codes can be used to predict and process point cloud point attributes. First, reorder the point cloud based on the Morton code to generate a point cloud order that can be used for point cloud attribute prediction. In the attribute coding of the AVS standard, the Morton code is mainly calculated based on the Morton query table, and the process is as follows:
[0058] Step1: Traverse the geometrically reconstructed point cloud to obtain the geometric coordinates x, y, and z corresponding to the current point.
[0059] Step2: Look up the Morton table according to the geometric coordinates to calculate the Morton code corresponding to the current point.
[0060] Step3: Reorder the point cloud based on the Morton code.
[0061] Then, use forward difference prediction for the sorted attribute values. According to the predicted value and the original value, obtain the attribute residual. Then quantize the attribute residual. Entropy encode the quantized coefficient values to obtain the attribute bitstream.
[0062] In addition, other prediction methods can also be used to predict and process point cloud point attributes, and the embodiments of this application do not make specific limitations in this regard.
[0063] The decoding process of the point cloud data is roughly the same as the reverse process of the encoding process. Figure 3 Shows a schematic diagram of a decoding process provided by this application.
[0064] Entropy Decoding: After the decoding end obtains the input geometric bitstream and attribute bitstream, it uses the entropy decoding method corresponding to the entropy encoding method of the encoding end to decode the bitstream bit by bit.
[0065] Multi-way Tree Reconstruction: Specifically, for the geometric bitstream, the information after entropy decoding can first be used to determine the initialization space of the point cloud (the size of the initialization space can be written into the bitstream by the encoding end, and the decoding end can obtain it from the bitstream), and then perform multi-way tree partitioning on the initialization space. The decoding end uses the same space partitioning method as the encoding end to partition the initialization space. Obtain the position coordinate data of the point cloud points to be inverse quantized through multiple child node blocks in the partitioned multi-way tree and their corresponding binary bitstreams.
[0066] Inverse Quantization: Inverse quantization is the reverse process of quantization at the encoding end. The position coordinate data to be inverse quantized after multi-way tree reconstruction is inverse quantized to obtain the quantized coordinates at the encoding end. The attribute bitstream is entropy decoded and inverse quantized to obtain the attribute prediction residual value.
[0067] Attribute Reconstruction: Specifically, if the attribute prediction residual obtained after inverse quantization is The reconstructed value of the current point attribute is The reconstructed value of the previous point attribute is the attribute reconstruction value of the current point
[0068] After traversing all the point cloud points in the point cloud, the reconstructed point cloud output by the encoding end is obtained.
[0069] Inverse spatial transformation: Corresponding to the spatial transformation at the encoding end, this step is also an optional step. If the attribute value after attribute reconstruction is the attribute value in the YUV space, then perform an inverse spatial transformation on it to obtain the attribute value in the RGB space.
[0070] Finally, the point cloud data can be obtained by merging the position information and its corresponding attribute information decoded above.
[0071] As described above in combination with Figures 1 to 3 , the encoding process of the related technology is introduced. It can be seen from the above description that when encoding and decoding the point cloud, only the position coordinate information and attribute information of the point cloud points in the point cloud are encoded and the corresponding decoding is performed. The order information of the original point cloud points is not retained during the encoding process. Therefore, the order of the point cloud points restored by decoding cannot be guaranteed to be the same as the order of the original point cloud points. In the actual application of the point cloud, the order information of the point cloud points is very important and will affect the final application result.
[0072] For example, in the simultaneous localization and mapping (SLAM) technology, when a mobile platform, such as an unmanned aerial vehicle, a car, a remote control car, a robot, etc., moves in an unknown environment with an uncertain self-position, it gradually constructs a map of the surrounding environment by obtaining point cloud data, and at the same time uses this map information to estimate the pose of the robot, thereby achieving autonomous positioning and navigation. If the order information is lost during the point cloud encoding and decoding process, it will affect the accuracy of map construction, resulting in deviations in the positioning and navigation results and having an adverse impact.
[0073] Based on the above problems, the present application proposes a method for processing point clouds, which can improve the performance and generality of point cloud encoding and decoding. Specifically, on the basis of encoding and decoding the position coordinates and attribute information of point cloud points, encoding and decoding of the order information of point cloud points is added, so as to retain more information of the original point cloud data, enabling the point cloud data to be applied to more scenarios and making the calculation results based on the point cloud data more accurate in more scenarios.
[0074] The following in combination with Figures 4 to 27 , a detailed description of the encoding and decoding method of the point cloud provided by the embodiments of the present application is given. Figures 4 to 27 The method in
[0075] Figure 4The figure shows a schematic flowchart of a method 10 for processing a point cloud.
[0076] As Figure 4 shown, the method 10 for processing the point cloud may include the following steps.
[0077] S11: Obtain the data of the point cloud.
[0078] S12: Encode or decode the sequential numbers of the points in the point cloud.
[0079] Specifically, if the processing method 10 is executed by an encoding device, the processing method 10 may be an encoding method 100 for a point cloud. As Figure 5 shown, the encoding method 100 may include the following steps.
[0080] S110: Encode the sequential numbers of the points in the point cloud to form a bitstream of the point cloud.
[0081] S120: Transmit the bitstream of the point cloud.
[0082] In an embodiment of the present application, a scanning device for point cloud points, such as a lidar device, emits laser light to scan an environmental object surface. During this process, after a measurement point on the object surface reflects the laser signal, the reflected optical signal is received by the lidar device, thereby obtaining a point cloud point in the point cloud. The point cloud point includes information such as the position space of the measurement point and the light reflection intensity, and this information is also referred to as the raw data of the point cloud point.
[0083] During the acquisition process of the point cloud, or rather, during the process of scanning the environmental object, the scanning device of the point cloud does not obtain multiple point cloud points at the same time, but sequentially obtains multiple point cloud points corresponding to multiple measurement points on the environmental object surface in chronological order, forming a data packet of the point cloud composed of multiple point cloud points. The sequential numbers of the point cloud points in an embodiment of the present application may be the sequence numbers of the point cloud points obtained in chronological order, acquisition order, or scanning order.
[0084] Optionally, in the encoding method of an embodiment of the present application, the sequential numbers of multiple point cloud points in the data packet of the point cloud may be assigned according to the chronological order, acquisition order, or scanning order of the point cloud points.
[0085] For example, the data packet of the obtained point cloud includes a total of N point cloud points. In chronological order, the sequential numbers of the N point cloud points are assigned as 0 to N - 1, and the sequential numbers 0 to N - 1 are encoded, where N is a positive integer. Encoding the sequential numbers of the N point clouds may form a part of the point cloud bitstream.
[0086] Specifically, if the processing method 10 is executed by a decoding device, the processing method 10 may be a decoding method 200 for point cloud, as Figure 6 shown, the decoding method 200 may include the following steps.
[0087] S210: Obtain the bitstream of the point cloud.
[0088] S220: Decode the bitstream of the point cloud to obtain the sequential number of the point cloud points in the point cloud.
[0089] In the embodiments of the present application, the bitstream of the point cloud corresponds to the bitstream encoded by the above encoding method, and the sequential number of the point cloud points obtained by decoding corresponds to the sequential number of the point cloud points in the original data of the point cloud points in the above encoding method. According to the sequential number of the original point cloud points obtained by decoding, the original point cloud can be better restored.
[0090] Optionally, according to the sequential number of the point cloud points in the point cloud, sort the point cloud points in ascending order to obtain the sorted point cloud data, and restore the original point cloud according to the sorted point cloud data.
[0091] Based on the above Figures 1 to 3 described encoding and decoding methods, Figure 5 and Figure 6 in the encoding and decoding process of the point cloud, the encoding and decoding process of the sequential number of the point cloud points can be understood as an added encoding and decoding process. By encoding and decoding the added sequential number of the point cloud points, the sequential relationship of the point cloud points is characterized, so that the order of the decoded point cloud is exactly the same as the order of the point cloud before encoding, improving the accuracy and generality of the decoded point cloud data in subsequent applications, such as in the SLAM algorithm.
[0092] Specifically, for the encoding and decoding methods of the sequential number of the point cloud points in the entire encoding and decoding process of the point cloud, the present application specifically proposes the following multiple implementation manners. These multiple implementation manners can be understood as the implementation manners of the above step S110 or S220.
[0093] Embodiment 1
[0094] In this embodiment, during the encoding and decoding process of the positions of the point cloud points in the point cloud, encode or decode the sequential number of the point cloud points.
[0095] Optionally, the encoding and decoding method for the positions of the point cloud points may refer to the multi-tree encoding and decoding method using the breadth-first traversal order in the above, or may use the multi-tree encoding and decoding method using the depth-first traversal order. The embodiments of the present application do not specifically limit the encoding and decoding method for the position coordinates of the specific point cloud points.
[0096] It can be understood that the process of encoding and decoding the positions of multiple point cloud points can be the process of encoding and decoding the tree structure of the point cloud. Whether it is a multi - fork tree encoding and decoding method using the breadth - first traversal order or a multi - fork tree encoding and decoding method using the depth - first traversal order, it is necessary to encode and decode to the leaf nodes of the tree structure to complete the encoding and decoding of the tree structure.
[0097] In this embodiment, after encoding to the position of a leaf node, the number of point cloud points and the sequence number in this leaf node can be encoded, then the position of the next leaf node is encoded, and then the number of point cloud points and the sequence number in this next leaf node are encoded, until the encoding of the positions, the number of point cloud points, and the sequence numbers of all leaf nodes in the tree structure is completed.
[0098] Figure 7 Fig. shows a schematic flowchart of a point cloud encoding method 101.
[0099] As Figure 7 shown, this encoding method 101 may include the following steps.
[0100] S1011: After encoding the position of the first leaf node in the tree structure of the point cloud and the number of point cloud points in this first leaf node, encode the sequence numbers of the point cloud points in this first leaf node.
[0101] S1012: After encoding the position of the second leaf node in the tree structure of the point cloud and the number of point cloud points in this first leaf node, encode the sequence numbers of the point cloud points in this second leaf node.
[0102] Optionally, the first leaf node can be any leaf node including point cloud points in the tree structure of the point cloud. In the encoding order, the second leaf node is a leaf node including point cloud points after the first leaf node. The specific positions of the first leaf node and the second leaf node are not specifically limited in the embodiments of the present application.
[0103] Optionally, if the number of point cloud points in a leaf node is X, then the number X can be encoded as X - 1, and then the sequence numbers of the X point cloud points in this leaf node are encoded. If the sequence number of one of the point cloud points is Y, then it can be encoded as Y - 1.
[0104] In some embodiments, a breadth - first traversal order encoding method can be used to encode the positions of point cloud points in the point cloud.
[0105] As an example, Figure 8 Fig. shows a tree structure diagram of a point cloud. If a breadth - first traversal order encoding method is used for Figure 8If the tree structure of the point cloud in [ ] is encoded, the position encoding of the point cloud points in the point cloud is 11 0010 1000 01(N1)01(N2)0000 1(N3)001(N4)01(N5)00, where N1 to N5 are the numbers of the point cloud points in leaf node 1# to leaf node 5# respectively. Further, after the number of the point cloud points, the sequential number of the point cloud points is encoded, and the position and sequential number encoding of the point cloud points in the point cloud is 11 0010 1000 01(N1 S1)01(N2 S2)0000 1(N3 S3)001(N4 S4)01(N5 S5)00, where S1 to S5 are the sequential numbers of the point cloud points in leaf node 1# to leaf node 5# respectively.
[0106] In some other embodiments, an encoding method in the depth-first traversal order can also be used to encode the positions of the point cloud points in the point cloud.
[0107] As an example, if Figure 8 the subtree with node 1# as the root node in [ ] meets the conditions of the depth-first traversal order, then the subtree below node 1# is encoded first. After the encoding is completed, return to node 2#, and then traverse in the breadth-first order. Similarly, after encoding the position of leaf node 1#, encode the number and sequential number of the point cloud points in leaf node 1#. After encoding the position of leaf node 2#, encode the number and sequential number of the point cloud points in leaf node 2#. The encoding methods of leaf nodes 3# to 5# below node 2# can refer to the breadth-first encoding method in the above text.
[0108] Through the solution of the above application embodiments, in the bitstream after the point cloud is encoded, the bit corresponding to the position of the first leaf node is adjacent to the bit corresponding to the number of the point cloud points in the first leaf node, and the bit corresponding to the number of the point cloud points in the first leaf node is adjacent to the bit corresponding to the sequential number of the point cloud points in the first leaf node.
[0109] In this case, the bitstream of the position and sequential number of the point cloud points in the point cloud can be expressed as: P1 N1 S1……P i N i S i ……P n N n S n where, P i represents the bit corresponding to the position of the i-th leaf node, N i represents the bit corresponding to the number of the point cloud points in the i-th leaf node, S iIt represents the bits corresponding to the sequential number of the point cloud points in the i-th leaf node. It can be understood that if the i-th leaf node includes point cloud points, the number and sequential number of the point cloud points are encoded; if the i-th leaf node does not include point cloud points, the encoding process of the number and sequential number of the point cloud points is not performed, where 1 ≤ i ≤ n, and n is the number of leaf nodes in the tree structure.
[0110] corresponds to Figure 7 the encoding method 101 in Figure 9 shows a schematic flow chart of a decoding method 201 for point cloud.
[0111] As Figure 9 shown, the decoding method 201 may include the following steps.
[0112] S2011: After decoding the position bitstream of the first leaf node in the point cloud tree structure and the number bitstream of the point cloud points in the first leaf node, decode the sequential number bitstream of the point cloud points in the first leaf node.
[0113] S2012: After decoding the position bitstream of the second leaf node in the point cloud tree structure and the number bitstream of the point cloud points in the second leaf node, decode the sequential number bitstream of the point cloud points in the second leaf node.
[0114] Optionally, in this embodiment, after the position bitstream of the first leaf node and the number bitstream of the point cloud points in the first leaf node, the sequential number bitstream of the point cloud points in the first leaf node is arranged.
[0115] Optionally, the number bitstream of the point cloud points in the first leaf node is adjacent to the sequential number bitstream of the point cloud points in the first leaf node, and the number bitstream of the point cloud points in the second leaf node is adjacent to the sequential number bitstream of the point cloud points in the second leaf node.
[0116] Decode the position bitstream of the first leaf node and the number bitstream of the point cloud points in the first leaf node to obtain the positions of the point cloud points in the first leaf node, and decode the sequential number bitstream of the point cloud points in the first leaf node to obtain the sequential numbers of the point cloud points in the first leaf node.
[0117] It can be understood that the decoding method 201 is the reverse process of the above encoding method 101. For related solutions, reference can be made to the above description and will not be elaborated here.
[0118] Embodiment 2
[0119] In this embodiment, after encoding the positions of multiple leaf nodes in the point cloud tree structure, the number and sequential number of the point cloud points in one leaf node can be encoded, and then the number and sequential number of the point cloud points in another leaf node can be encoded until the encoding of the number and sequential number of the point cloud points in multiple leaf nodes is completed.
[0120] Optionally, after encoding the positions of multiple leaf nodes, the number and sequential number of the point cloud points in multiple leaf node blocks can be encoded in the encoding order of the positions of the multiple leaf nodes.
[0121] Figure 10 Fig. 7 shows a schematic flowchart of a point cloud encoding method 102.
[0122] As shown in Figure 10 the encoding method 102 may include the following steps.
[0123] S1021: Encode the positions of multiple leaf nodes in the tree structure of the point cloud.
[0124] S1022: Encode the number and sequential number of the point cloud points in the first leaf node.
[0125] S1023: Encode the number and sequential number of the point cloud points in the second leaf node.
[0126] Optionally, the first leaf node may be any leaf node including point cloud points in the tree structure of the point cloud. In the encoding order, the second leaf node is a leaf node including point cloud points after the first leaf node. The specific positions of the first leaf node and the second leaf node are not specifically limited in the embodiments of the present application.
[0127] In some embodiments, the positions of the point cloud points in the point cloud may be encoded by an encoding method in the breadth-first traversal order.
[0128] As an example, if the tree structure of the point cloud in Figure 8 is encoded by an encoding method in the breadth-first traversal order, the positions and sequential numbers of the point cloud points in the point cloud are encoded as 11 0010 1000 01010000 10010100N1 S1 N2S2 N3 S3 N4 S4 N5 S5, where N1 to N5 are the numbers of the point cloud points in leaf node 1# to leaf node 5# respectively, and S1 to S5 are the sequential numbers of the point cloud points in leaf node 1# to leaf node 5# respectively.
[0129] In some other embodiments, the positions of the point cloud points in the point cloud may also be encoded by an encoding method in the depth-first traversal order.
[0130] As an example, ifFigure 8 If the subtree with node 1# as the root node in satisfies the condition of depth-first traversal order, then first encode the subtree below node 1#, and after completion, return to node 2#, and then traverse in breadth-first order.
[0131] Optionally, according to the granularity of the root node, after encoding the positions of leaf node 1# and leaf node 2# in the subtree with node 1# as the root node, encode the number of point cloud points and the sequence number in leaf node 1#, and the number of point cloud points and the sequence number in leaf node 2#. The encoding method of leaf nodes 3# to 5# below node 2# can refer to the breadth-first encoding method in the above text.
[0132] Optionally, not according to the granularity of the root node, if the subtree with node 1# as the root node includes 3 or more leaf nodes, then after encoding the positions of K leaf nodes, encode the number of point cloud points and the sequence number in these K leaf nodes, and then encode the positions of other leaf nodes in the subtree. After completing the position encoding, encode the number of point cloud points and the sequence number in these other leaf nodes.
[0133] Optionally, after encoding the positions of all leaf nodes from leaf node 1# to leaf node 5# in the subtree, according to the encoding order of the positions of the leaf nodes, encode the number and sequence number of the point cloud in leaf nodes 1# to 5#. Specifically, after encoding the number of point cloud points in leaf node 1#, encode the sequence number of the point cloud points in leaf node 1#, and then encode the number of point cloud points in leaf node 2# and the sequence number of the point cloud points in leaf node 2#.
[0134] It should be noted that after encoding the positions of all or some leaf nodes, an identifier indicating whether each leaf node includes point cloud points can be added, which is convenient for decoding to correspond the number of point cloud points in the leaf node to the leaf node.
[0135] Through the solution of the above application embodiments, in the bitstream of the point cloud, the bit corresponding to the position of the first leaf node may not be adjacent to the encoded bit corresponding to the number of point cloud points in the first leaf node, but the encoded bit corresponding to the number of point cloud points in the first leaf node is adjacent to the bit corresponding to the sequence number of the point cloud points in the first leaf node.
[0136] In this case, the bitstream representing the position and sequence number of the point cloud points in the point cloud can be expressed as: P1…P i …P n …N1 S1…N i S i …N n S n , where Pi Bits corresponding to the position of the i-th leaf node, N i Bits corresponding to the number of point cloud points in the i-th leaf node, S i Bits corresponding to the sequential number of point cloud points in the i-th leaf node. It can be understood that if the i-th leaf node includes point cloud points, the number and sequential number of point cloud points are encoded; if the i-th leaf node does not include point cloud points, the encoding process of the number and sequential number of point cloud points is not performed, where 1 ≤ i ≤ n, and n is the number of leaf nodes in the tree structure.
[0137] Corresponds to Figure 10 encoding method 102 in Figure 11 shows a schematic flowchart of a decoding method 202 for point cloud.
[0138] As Figure 11 shown, the decoding method 202 may include the following steps.
[0139] S2021: Decode the position bitstream of multiple leaf nodes in the tree structure of the point cloud.
[0140] S2022: Decode the number bitstream and sequential number bitstream of point cloud points in the first leaf node.
[0141] S2023: Decode the number bitstream and sequential number bitstream of point cloud points in the second leaf node.
[0142] In the embodiments of the present application, after the position bitstream of multiple leaf nodes in the tree structure of the point cloud, the number bitstream and sequential number bitstream of point cloud points in multiple leaf nodes are arranged.
[0143] Optionally, in the number bitstream and sequential number bitstream of point cloud points in multiple leaf nodes, after the number bitstream of point cloud points in the first leaf node, the sequential number bitstream of point cloud points in the first leaf node is arranged, and after the number bitstream of point cloud points in the second leaf node, the sequential number bitstream of point cloud points in the second leaf node is arranged.
[0144] Optionally, in the number bitstream and sequential number bitstream of point cloud points in multiple leaf nodes, after the number bitstream of point cloud points in multiple leaf nodes, the sequential number bitstream of point cloud points in multiple nodes is arranged.
[0145] Optionally, the arrangement order of multiple leaf node blocks in the number bitstream of point cloud points in multiple leaf nodes is the same as the arrangement order of multiple leaf node blocks in the sequential number bitstream of point cloud points in multiple leaf nodes.
[0146] It can be understood that the decoding method 202 is the reverse process of the above encoding method 102. For related solutions, reference can be made to the above description and will not be elaborated here.
[0147] Embodiment 3
[0148] In this embodiment, after encoding and decoding the positions of the point cloud points in the point cloud, the sequential numbers of the point cloud points in the point cloud are encoded and decoded.
[0149] Specifically, after encoding the positions of multiple leaf nodes in the point cloud tree structure, the number of point cloud points in the multiple leaf nodes can be encoded, and then the sequential numbers of the point cloud points in the multiple leaf nodes can be encoded.
[0150] Optionally, according to the encoding order of the positions of the multiple leaf nodes, the number of point cloud points in the multiple leaf nodes can be encoded, and the sequential numbers of the point cloud points in the multiple leaf node blocks can be encoded.
[0151] Figure 12 Fig. shows a schematic flowchart of an encoding method 103 for a point cloud.
[0152] As Figure 12 shown, the encoding method 103 may include the following steps.
[0153] S1031: Encode the positions of multiple leaf nodes in the tree structure of the point cloud.
[0154] S1032: Encode the number of multiple point cloud points in the multiple leaf nodes.
[0155] S1032: Encode the sequential numbers of the multiple point cloud points in the multiple leaf nodes.
[0156] Optionally, in the embodiments of the present application, the above multiple leaf nodes may be some or all of the leaf nodes in the point cloud. That is, after encoding the positions of the some or all of the leaf nodes in the tree structure of the point cloud, the number of point cloud points in the some or all of the leaf nodes is encoded, and then the sequential numbers of the point cloud points in the some or all of the leaf nodes are encoded.
[0157] Specifically, the tree structure of the point cloud is encoded by using an encoding method in a breadth-first traversal order or a depth-first traversal order. Then, according to the encoding order of the leaf nodes, the number of point cloud points in each leaf node including point cloud points is encoded, and then the sequential numbers of the point cloud points in each leaf node including point cloud points are encoded.
[0158] If the breadth-first traversal order is used for Figure 8If the tree structure of the point cloud in [ ] is encoded, the position and sequential number encoding of the point cloud points in the point cloud are 11 0010 1000 01010000 10010100N1 N2 N3 N4 N5 S1 S2 S3 S4 S5, where N1 to N5 are respectively the numbers of point cloud points in leaf node 1# to leaf node 5#, and S1 to S5 are respectively the sequential number encodings of the point cloud points in leaf node 1# to leaf node 5#.
[0159] If Figure 8 the subtree with node 1# as the root node in [ ] satisfies the condition of depth - first traversal order. Optionally, according to the granularity of the root node, after encoding the positions of leaf node 1# and leaf node 2# in the subtree with node 1# as the root node, the numbers of point cloud points in leaf node 1# and leaf node 2# can be encoded, and then the sequential number encodings of the point cloud points in leaf node 1# and leaf node 2# can be encoded. The encoding methods of leaf nodes 3# to leaf node 5# below node 2# can refer to the breadth - first encoding method in the above text.
[0160] Optionally, without following the granularity of the root node, if the subtree with node 1# as the root node includes 3 or more leaf nodes, after encoding the positions of K leaf nodes, the numbers of point cloud points in these K leaf nodes can be encoded, then the sequential number encodings of the point cloud points in the K leaf nodes can be encoded, then the positions of the other leaf nodes in the subtree can be encoded. After the position encoding is completed, the numbers of point cloud points in these other leaf nodes and the sequential number encodings of the point cloud points in the other leaf nodes can be encoded.
[0161] Optionally, after encoding the positions of all leaf nodes from leaf node 1# to leaf node 5# in the subtree, according to the encoding order of the positions of the leaf nodes, the numbers of point cloud points in leaf node 1# to leaf node 5# can be encoded, and then the sequential number encodings of the point cloud points in leaf node 1# to leaf node 5# can be encoded.
[0162] It should be noted that after encoding the positions of all or some leaf nodes, an identifier indicating whether each leaf node includes point cloud points can be added, which is convenient for corresponding the number of point cloud points in the leaf node during decoding.
[0163] Through the solution of the above - mentioned application embodiments, in the bitstream of the point cloud, the bits corresponding to the numbers of point cloud points in multiple leaf nodes are adjacent to the bits corresponding to the sequential number encodings of the point cloud points in multiple leaf nodes.
[0164] In this case, the bitstream representing the position and sequential number encoding of the point cloud points in the point cloud can be expressed as: P1…P i …P n N1…N i …N n S1…Si …S n where P i represents the position - encoding bit of the i - th leaf node, N i represents the bit corresponding to the number of point - cloud points in the i - th leaf node, and S i represents the bit corresponding to the sequential number of point - cloud points in the i - th leaf node. It can be understood that if the i - th leaf node contains point - cloud points, the number and sequential number of point - cloud points are encoded; if the i - th leaf node does not contain point - cloud points, the encoding process of the number and sequential number of point - cloud points is not performed, where 1 ≤ i ≤ n, and n is the number of leaf nodes in the tree structure.
[0165] Corresponding to Figure 12 the encoding method 103 in Figure 13 FIG. shows a schematic flowchart of a decoding method 203 for point cloud.
[0166] As Figure 13 shown, the decoding method 203 may include the following steps.
[0167] S2031: Decode the position bitstream of multiple leaf nodes in the tree structure of the point cloud.
[0168] S2032: Decode the quantity bitstream of multiple point - cloud points in multiple leaf nodes.
[0169] S2032: Decode the sequential - number bitstream of multiple point - cloud points in multiple leaf nodes.
[0170] Optionally, after the position bitstream of multiple leaf nodes in the tree structure of the point cloud, the quantity bitstream of point - cloud points in multiple leaf nodes is arranged, and the quantity bitstream of point - cloud points in multiple leaf nodes may be adjacent to the sequential - number bitstream of point - cloud points in multiple leaf nodes.
[0171] It can be understood that the decoding method 203 is the inverse process of the above - mentioned encoding method 103. For related solutions, reference can be made to the above description and will not be elaborated here.
[0172] Embodiment 4
[0173] In this embodiment, after the position encoding of a leaf node in the tree structure of the point cloud is completed, the number of point - cloud points in this leaf node can be encoded, and then the positions of other leaf nodes in the tree structure of the point cloud and the number of their point - cloud points are encoded continuously. After the positions of multiple leaf nodes and the number of point - cloud points in multiple leaf nodes are encoded, then the sequential number of point - cloud points in multiple leaf nodes is encoded.
[0174] Optionally, after encoding the positions of multiple leaf nodes and the number of point cloud points in multiple leaf node blocks, the sequence numbers of the point cloud points in multiple leaf node blocks are encoded in the encoding order of the positions of the multiple leaf nodes.
[0175] Figure 14 FIG. 4 shows a schematic flowchart of an encoding method 104 for point cloud.
[0176] As Figure 14 shown, the encoding method 104 may include the following steps.
[0177] S1041: After encoding the position of the first leaf node in the tree structure of the point cloud, the number of point cloud points in the first leaf node is encoded.
[0178] S1042: After encoding the position of the second leaf node in the tree structure of the point cloud, the number of point cloud points in the second leaf node is encoded.
[0179] S1043: Encode the sequence numbers of the point cloud points in multiple leaf nodes.
[0180] Optionally, an encoding method of breadth-first traversal order or depth-first traversal order is adopted to encode the tree structure of the point cloud and the number of point cloud points in the leaf nodes. Then, in the encoding order of the leaf nodes, the sequence numbers of the point cloud points in each leaf node including point cloud points are encoded.
[0181] For example, if the tree structure of the point cloud in Figure 8 is encoded by adopting the breadth-first traversal method, the positions of the nodes in the tree structure and the number of point cloud points are encoded as 11 0010 1000 01(N1)01(N2)0000 1(N3)001(N4)01(N5)00. Then, the sequence numbers of the point cloud points in leaf node 1# to leaf node 5# are encoded in sequence. Then the point cloud is encoded as 11 00101000 01(N1)01(N2)0000 1(N3)001(N4)01(N5)00(S1)(S2)(S3)(S4)(S5), where N1 to N5 are the numbers of point cloud points in leaf node 1# to leaf node 5# respectively, and S1 to S5 are the sequence numbers of the point cloud points in leaf node 1# to leaf node 5# respectively.
[0182] Through the solution of the above application embodiment, in the bitstream of the point cloud, the bits corresponding to the number of point cloud points in the last leaf node among multiple leaf nodes are adjacent to the bits corresponding to the sequence numbers of the point cloud points in multiple leaf nodes.
[0183] In this case, the bitstream representing the positions and sequential numbers of the point cloud points in the point cloud can be expressed as: P1 N1…P i N i …P n N n …S1…S i …S n , where P i represents the position-encoding bit of the i-th leaf node, N i represents the bit corresponding to the number of point cloud points in the i-th leaf node, and S i represents the bit corresponding to the sequential number of the point cloud points in the i-th leaf node. It can be understood that if the i-th leaf node includes point cloud points, the number and sequential number of the point cloud points are encoded; if the i-th leaf node does not include point cloud points, the encoding process for the number and sequential number of the point cloud points is not performed, where 1 ≤ i ≤ n and n is the number of leaf nodes in the tree structure.
[0184] corresponds to the encoding method 104 in Figure 14 , and Figure 15 shows a schematic flowchart of a decoding method 204 for a point cloud.
[0185] As Figure 15 shown, the decoding method 204 may include the following steps.
[0186] S2041: After decoding the position bitstream of the first leaf node in the tree structure of the point cloud, decode the bitstream of the number of point cloud points in the first leaf node.
[0187] S2042: After decoding the position bitstream of the second leaf node in the tree structure of the point cloud, decode the bitstream of the number of point cloud points in the second leaf node.
[0188] S2043: Decode the bitstream of the sequential numbers of the point cloud points in multiple leaf nodes.
[0189] In the embodiments of the present application, after the position bitstream of the first leaf node in the tree structure of the point cloud, the bitstream of the number of point cloud points in the first leaf node is arranged. After the position bitstream of the second leaf node, the bitstream of the number of point cloud points in the second leaf node is arranged. After the position bitstream of the last leaf node in the tree structure, the bitstream of the number of point cloud points in the last leaf node is arranged. After the bitstream of the number of point cloud points in the last leaf node, the bitstream of the sequential numbers of the point cloud points in multiple leaf nodes is arranged.
[0190] Optionally, the bitstream of the number of point cloud points in the last leaf node is adjacent to the bitstream of the sequential numbers of the point cloud points in multiple leaf nodes.
[0191] Optionally, the number of point cloud points in multiple leaf nodes and the arrangement order of multiple leaf node blocks in the bitstream are the same as the arrangement order of the sequence numbers of the point cloud points in multiple leaf nodes in the bitstream.
[0192] It can be understood that the decoding method 204 is the reverse process of the above encoding method 104. For related solutions, reference can be made to the above description and will not be elaborated here.
[0193] From the above description, it can be seen that the encoding and decoding methods in the above 4 embodiments only include: encoding and decoding the positions and sequence numbers of point cloud points in the point cloud. In addition, the encoding and decoding method may also include encoding and decoding the attributes of point cloud points. For the specific encoding and decoding methods of the attributes of point cloud points, reference can be made to the Figure 1 related description above, or other encoding methods for attributes can also be adopted, and the embodiments of the present application do not make specific limitations.
[0194] It should be noted that in the above 4 embodiments, if a leaf node includes multiple point cloud points, the sequence numbers are the sequence numbers of multiple point cloud points, and the sequence numbers of multiple point cloud points in the same leaf node can be encoded in the target order. Subsequently, when encoding the attributes of multiple point cloud points in the same leaf node, the attributes of multiple point cloud points are also encoded in the target order.
[0195] Optionally, the above target order may be from smallest to largest or from largest to smallest in sequence number, or any other order, and the embodiments of the present application do not make limitations in this regard.
[0196] Correspondingly, in the decoding process, if the number of point cloud points in a leaf node among multiple leaf nodes is multiple, in the sequence number bitstream of the point cloud points in this leaf node, the point cloud points are arranged in ascending or descending order of sequence number. And in the attribute bitstream of the point cloud points in this leaf node, the point cloud points are also arranged in ascending or descending order of sequence number.
[0197] The above, in combination with Embodiments 1 to 4, describes the process of encoding and decoding the sequence numbers of point cloud points during the encoding and decoding process of the positions of point cloud points in the point cloud.
[0198] In addition, the sequence numbers of point cloud points can also be encoded and decoded during the encoding and decoding process of the attributes of point cloud points.
[0199] Optionally, the encoding and decoding method for the attributes of point cloud points can be referred to the Figure 1 and Figure 3 related description above.
[0200] Optionally, to achieve lossless encoding of the point cloud, during the position encoding process of the point cloud, the deduplication step is not performed on the position coordinates of the quantized point cloud points, and during the encoding process of the attributes of the point cloud, the recoloring step is not performed either. That is, directly look up the Morton table according to the geometric coordinates of the point cloud points to obtain the Morton code corresponding to each point cloud point, reorder the point cloud based on the Morton code, and then encode the attribute values of the reordered point cloud.
[0201] Embodiment 5
[0202] In this embodiment, after encoding the attributes and sequence numbers of one point cloud point, the attributes and sequence numbers of another point cloud point are encoded.
[0203] Figure 16 A schematic flowchart showing a point cloud encoding method 105 is shown.
[0204] As Figure 16 shown, the encoding method 105 may include the following steps.
[0205] S1051: Encode the attributes and sequence numbers of the first point cloud point in the point cloud.
[0206] S1052: Encode the attributes and sequence numbers of the second point cloud point in the point cloud.
[0207] Optionally, in the order of coordinate positions, or in the order of Morton codes, the second point cloud point is any point cloud point after the first point cloud point, and the specific positions of the first point cloud point and the second point cloud point are not limited in the embodiments of the present application.
[0208] Through the solution of this embodiment, in the bitstream of the point cloud, the bits corresponding to the attributes of the first point cloud point are adjacent to the bits corresponding to the sequence number of the first point cloud point, and the bits corresponding to the attributes of the second point cloud point are adjacent to the bits corresponding to the sequence number of the second point cloud point.
[0209] In this case, it may be that the attribute encoding bits are located before the sequence number encoding bits. For example, the bitstream of the attributes and sequence numbers of the point cloud points in the point cloud can be expressed as: C1 S1…C j S j …C N S N , where, C j represents the attribute encoding bits of the j-th point cloud point, S j represents the sequence number encoding bits of the j-th point cloud point, 1≤j≤N, and N is the number of point cloud points in the point cloud. Optionally, it may also be that the sequence number encoding bits are located before the attribute encoding bits. For example, the bitstream of the attributes and sequence numbers of the point cloud points in the point cloud can be expressed as: S1 C1…S j Cj …S N C N 。
[0210] corresponds to the encoding method 105 in Figure 16 and shows a schematic flowchart of a decoding method 205 for point cloud. Figure 17
[0211] As Figure 17 shown, the decoding method 205 may include the following steps.
[0212] S2051: Decode the attribute code stream and the sequence number code stream of the first point cloud point.
[0213] S2052: Decode the attribute code stream and the sequence number code stream of the second point cloud point.
[0214] In the embodiments of the present application, after the attribute code stream and the sequence number code stream of a point cloud point in the point cloud, the attribute code stream and the sequence number code stream of another point cloud point in the point cloud are arranged.
[0215] Optionally, after the attribute code stream and the sequence number code stream of the first point cloud point, the attribute code stream and the sequence number code stream of the second point cloud point are arranged.
[0216] Optionally, the attribute code stream of the first point cloud point is adjacent to the sequence number code stream of the first point cloud point. The attribute code stream of the second point cloud point is adjacent to the sequence number code stream of the second point cloud point.
[0217] It can be understood that the decoding method 205 is the reverse process of the above encoding method 105. For related solutions, reference can be made to the above description and will not be elaborated here.
[0218] Example 6
[0219] Figure 18 shows a schematic flowchart of an encoding method 106 for point cloud.
[0220] Figure 18 As shown, the encoding method 106 may include the following steps.
[0221] S1061: Encode the attributes of multiple point cloud points in the point cloud.
[0222] S1062: Encode the sequence numbers of multiple point cloud points in the point cloud.
[0223] In this embodiment, after encoding the attributes of multiple point cloud points in the point cloud, the sequential numbers of the multiple point cloud points are encoded. Alternatively, after encoding the sequential numbers of the multiple point cloud points in the point cloud, the attributes of the multiple point cloud points are encoded. Optionally, the total number of sequential numbers may be equal to the total number of attributes.
[0224] Optionally, the sequential numbers of the multiple point cloud points are encoded in the encoding order of the attributes of the multiple point cloud points. Alternatively, the attributes of the multiple point cloud points are encoded in the encoding order of the sequential numbers of the multiple point cloud points.
[0225] Optionally, the above-mentioned multiple point cloud points may be some or all of the point cloud points in the point cloud.
[0226] Through the solution of the above embodiment, in the bitstream of the point cloud, the bits corresponding to the attributes of the multiple point cloud points are adjacent to the bits corresponding to the sequential numbers of the multiple point cloud points.
[0227] In this case, the bitstreams of the attributes and sequential numbers of the point cloud points in the point cloud can be expressed as: C1…C j …C N S1…S j …S N , or, S1…S j …S N C1…C j …C N Wherein, C j represents the encoded bits of the attributes of the j-th point cloud point, and S j represents the encoded bits of the sequential number of the j-th point cloud point, 1≤j≤N, and N is the number of point cloud points in the point cloud.
[0228] Corresponding to the encoding method 106 in Figure 18 , Figure 19 shows a schematic flowchart of a decoding method 206 for a point cloud.
[0229] As Figure 19 shown, the decoding method 206 may include the following steps.
[0230] S2061: Decode the bitstream of the attributes of the multiple point cloud points.
[0231] S2062: Decode the bitstream of the sequential numbers of the multiple point cloud points.
[0232] In the embodiments of the present application, after the bitstream of the attributes of the multiple point cloud points in the point cloud, there is arranged a bitstream of the sequential numbers of the multiple point cloud points.
[0233] Optionally, the bitstream of the attributes of the multiple point cloud points is adjacent to the bitstream of the sequential numbers of the multiple point cloud points.
[0234] Optionally, the arrangement order of multiple point cloud points in the sequence number stream of multiple point cloud points is the same as the arrangement order of multiple point cloud points in the attribute code stream of multiple point cloud points.
[0235] It can be understood that the decoding method 206 is the reverse process of the above-mentioned encoding method 106. For related solutions, reference can be made to the above description and will not be elaborated here.
[0236] It can be understood that the encoding and decoding methods in the above-mentioned Embodiment 5 and Embodiment 6 only include: encoding and decoding the attributes and sequence numbers of point cloud points in the point cloud. In addition, the encoding method may further include encoding and decoding the positions of point cloud points in the point cloud. For the specific encoding and decoding methods of the positions of point cloud points, reference can be made to the above Figure 1 and Figure 3 the relevant descriptions therein, or other encoding and decoding methods for positions can also be adopted. The embodiments of the present application do not make specific limitations.
[0237] Embodiment 7
[0238] Optionally, the sequence number of the point cloud point can also be incorporated into the encoding and decoding processes of the position and attributes of the point cloud point.
[0239] Figure 20 Fig. shows a schematic flowchart of an encoding method 107 of a point cloud.
[0240] As Figure 20 shown, the encoding method 107 may include the following steps.
[0241] S1071: After encoding the position of the first leaf node in the tree structure of the point cloud and the number of point cloud points in the first leaf node, encode the sequence number of the point cloud points in the first leaf node.
[0242] S1072: Encode the attributes of the point cloud points in the first leaf node.
[0243] S1073: After encoding the position of the second leaf node in the tree structure of the point cloud and the number of point cloud points in the first leaf node, encode the sequence number of the point cloud points in the second leaf node.
[0244] S1074: Encode the attributes of the point cloud points in the second leaf node.
[0245] Optionally, the first leaf node may be any leaf node including point cloud points in the tree structure of the point cloud. In the encoding order, the second leaf node is a leaf node including point cloud points after the first leaf node. The embodiments of the present application do not make specific limitations on the specific positions of the first leaf node and the second leaf node.
[0246] By using the above method, position encoding can be completed for all leaf nodes in the tree structure of the point cloud, and the number and sequential number of the point cloud points therein can be encoded, so as to complete the encoding of all point cloud points in the point cloud and generate a bitstream of the point cloud.
[0247] Optionally, the above steps S1071 and S1073 can refer to Figure 7 the relevant descriptions of steps S1011 and S1012 in
[0248] In some embodiments, after encoding the sequential number of the point cloud points in the first leaf node, the attributes of the point cloud points in the first leaf node can be encoded. Similarly, after encoding the sequential number of the point cloud points in the second leaf node, the attributes of the point cloud points in the second leaf node can be encoded.
[0249] In other embodiments, after encoding the attributes of the point cloud points in the first leaf node, the sequential number of the point cloud points in the first leaf node can be encoded. Similarly, after encoding the attributes of the point cloud points in the second leaf node, the sequential number of the point cloud points in the second leaf node can be encoded.
[0250] If the encoding method of breadth-first traversal order is adopted to Figure 8 encode the tree structure of the point cloud in
[0251] and the number, attributes and sequential number of the point cloud points are encoded in the leaf node layer, then the bitstream of the point cloud can be expressed as 11 0010 1000 01(N1 S1 C1)01(N2 S2 C2)0000 1(N3 S3 C3)001(N4 S4 C4)01(N5 S5 C5)00, or 11 00101000 01(N1 C1 S1)01(N2 C2 S2)0000 1(N3 C3 S3)001(N4 C4 S4)01(N5 C5 S5)00, where N1 to N5 are respectively the numbers of the point cloud points in leaf node 1# to leaf node 5#, S1 to S5 are respectively the sequential numbers of the point cloud points in leaf node 1# to leaf node 5#, and C1 to C5 are respectively the attributes of the point cloud points in leaf node 1# to leaf node 5#.Through the solution of this embodiment, in the bitstream after point cloud encoding, the bits corresponding to the number of point cloud points in the first leaf node are adjacent to the bits corresponding to the attributes of the point cloud points in the first leaf node, and the bits corresponding to the attributes of the point cloud points in the first leaf node are adjacent to the bits corresponding to the sequence numbers of the point cloud points in the first leaf node. Alternatively, the bits corresponding to the number of point cloud points in the first leaf node are adjacent to the bits corresponding to the sequence numbers of the point cloud points in the first leaf node, and the bits corresponding to the sequence numbers of the point cloud points in the first leaf node are adjacent to the bits corresponding to the attributes of the point cloud points in the first leaf node.
[0252] In this case, the bitstream of the point cloud can be expressed as: P1 N1 S1 C1……P i N i S i C i ……P n N n S n C n ,or P1 N1 C1 S1……P i N i C i S i ……P n N n C n S n ,where P i represents the bits corresponding to the position of the i-th leaf node, N i represents the bits corresponding to the number of point cloud points in the i-th leaf node, S i represents the bits corresponding to the sequence numbers of the point cloud points in the i-th leaf node, C i represents the bits corresponding to the attributes of the point cloud points in the i-th leaf node. It can be understood that if the i-th leaf node includes point cloud points, the number, sequence number, and attributes of the point cloud points are encoded. If the i-th leaf node does not include point cloud points, the encoding process of the number, sequence number, and attributes of the point cloud points is not performed, where 1≤i≤n, and n is the number of leaf nodes in the tree structure.
[0253] corresponds to the encoding method 107 in Figure 20 and shows a schematic flowchart of a decoding method 207 for point cloud. Figure 21 As shown in
[0254] such as Figure 21 shown, the decoding method 207 may include the following steps.
[0255] S2071: After decoding the position bitstream of the first leaf node in the tree structure of the point cloud and the bitstream of the number of point cloud points in the first leaf node, decode the sequential number bitstream of the point cloud points in the first leaf node.
[0256] S2072: Decode the attribute bitstream of the point cloud points in the first leaf node.
[0257] S2073: After decoding the position bitstream of the second leaf node in the tree structure of the point cloud and the bitstream of the number of point cloud points in the first leaf node, decode the sequential number bitstream of the point cloud points in the second leaf node.
[0258] S2074: Decode the attribute bitstream of the point cloud points in the second leaf node.
[0259] In the embodiment of the present application, after the position bitstream of the first leaf node and the bitstream of the number of point cloud points in the first leaf node, the attribute bitstream of the point cloud points in the first leaf node is arranged; before or after the attribute bitstream of the point cloud points in the first leaf node, the sequential number bitstream of the point cloud points in the first leaf node is arranged.
[0260] If the sequential number bitstream of the point cloud points in the first leaf node is arranged after the attribute bitstream of the point cloud points in the first leaf node, optionally, the bitstream of the number of point cloud points in the first leaf node is adjacent to the attribute bitstream of the point cloud points in the first leaf node, and the attribute bitstream of the point cloud points in the first leaf node is adjacent to the sequential number bitstream of the point cloud points in the first leaf node;
[0261] If the sequential number bitstream of the point cloud points in the first leaf node is arranged before the attribute bitstream of the point cloud points in the first leaf node, optionally, the bitstream of the number of point cloud points in the first leaf node is adjacent to the sequential number bitstream of the point cloud points in the first leaf node, and the sequential number bitstream of the point cloud points in the first leaf node is adjacent to the attribute bitstream of the point cloud points in the first leaf node.
[0262] It can be understood that the decoding method 207 is the reverse process of the above encoding method 107. For related solutions, reference can be made to the above description and will not be elaborated here.
[0263] Embodiment 8
[0264] Figure 22 Shows a schematic flowchart of an encoding method 108 of a point cloud.
[0265] As Figure 22 shown, the encoding method 108 may include the following steps.
[0266] S1081: After encoding the position of the first leaf node in the tree structure of the point cloud and the number of point cloud points in the first leaf node, encode the attributes of the point cloud points in the first leaf node.
[0267] S1082: After encoding the position of the second leaf node in the tree structure of the point cloud and the number of point cloud points in the second leaf node, encode the attributes of the point cloud points in the second leaf node.
[0268] S1083: Encode the sequential numbers of multiple point cloud points in the point cloud.
[0269] Optionally, the first leaf node can be any leaf node in the tree structure of the point cloud that includes point cloud points. In the encoding order, the second leaf node is a leaf node that includes point cloud points after the first leaf node. The embodiments of the present application do not specifically limit the specific positions of the first leaf node and the second leaf node.
[0270] Specifically, in the embodiments of the present application, during the encoding process of the positions of multiple leaf nodes in the tree structure, the encoding of the attributes of the point cloud points in the leaf nodes is added to complete the encoding of the positions and attributes of the point cloud points, and the process of sequential numbering all the point cloud points is placed after the position and attribute encoding.
[0271] Optionally, after completing the encoding of the positions of multiple leaf nodes, the sequential numbers of the point cloud points in multiple leaf node blocks can be encoded according to the encoding order of the positions of the multiple leaf nodes.
[0272] If the encoding method of breadth-first traversal order is used to encode Figure 8 the tree structure of the point cloud in, and the number and attributes of the point cloud points are encoded in the leaf node layer, then the bitstream of the point cloud can be expressed as 11 0010 1000 01(N1 C1)01(N2 C2)0000 1(N3 C3)001(N4 C4)01(N5 C5)00. After completing the encoding of the number and attributes of the point cloud points, continue to encode the sequential numbers of the point cloud points, then the bitstream of the point cloud can be expressed as 11 0010 1000 01(N1 C1)01(N2 C2)00001(N3 C3)001(N4 C4)01(N5 C5)00S1 S2 S3 S4 S5, where N1 to N5 are respectively the numbers of the point cloud points in leaf node 1# to leaf node 5#, S1 to S5 are respectively the sequential numbers of the point cloud points in leaf node 1# to leaf node 5#, and C1 to C5 are respectively the attributes of the point cloud points in leaf node 1# to leaf node 5#.
[0273] Through the scheme of this embodiment, in the code stream after point cloud encoding, the bits corresponding to the sequential numbers of multiple point cloud points are adjacent, and the bits corresponding to the number of point cloud points in a leaf node are adjacent to the bits corresponding to the attributes of the point cloud points in the leaf node.
[0274] In this case, the code stream of the point cloud can be expressed as: P1 N1 C1 ... P i N i C i ...P n N n C n S1…S i …S n , where P i Indicates the bit corresponding to the position of the i-th leaf node, N i Indicates the number of points in the point cloud in the i-th leaf node. i Indicates the bits corresponding to the sequential number of the point cloud points in the i-th leaf node, C i Represents the bits corresponding to the attributes of the point cloud points in the i-th leaf node. It can be understood that if the i-th leaf node includes point cloud points, the number, sequence number and attributes of the point cloud points are encoded. If the i-th leaf node does not include point cloud points, the encoding process of the number, sequence number and attributes of the point cloud points is not performed, where 1≤i≤n, n is the number of leaf nodes in the tree structure.
[0275] and Figure 22 The encoding method 108 corresponds to, Figure 23 A schematic flowchart of a point cloud decoding method 208 is shown.
[0276] like Figure 23 As shown, the decoding method 208 may include the following steps.
[0277] S2081: After decoding the position code stream of the first leaf node in the tree structure of the point cloud and the number code stream of the point cloud points in the first leaf node, decode the attribute code stream of the point cloud points in the first leaf node.
[0278] S2082: After decoding the position code stream of the second leaf node in the tree structure of the point cloud and the number code stream of the point cloud points in the second leaf node, decode the attribute code stream of the point cloud points in the second leaf node.
[0279] S2083: Decode the sequential numbering code stream of multiple point cloud points in the point cloud.
[0280] In an embodiment of the present application, after the position code stream and attribute code stream of the point cloud points in multiple leaf nodes in the tree structure of the point cloud, a sequential numbering code stream of the point cloud points in the multiple leaf nodes is arranged.
[0281] It is understandable that the decoding method 208 is the reverse process of the above-mentioned encoding method 108. For relevant solutions, reference can be made to the above description and will not be elaborated here.
[0282] Embodiment 9
[0283] Figure 24 FIG. shows a schematic flowchart of an encoding method 109 for point cloud.
[0284] As Figure 24 shown, the encoding method 109 may include the following steps.
[0285] S1091: After encoding the position of the first leaf node in the tree structure of the point cloud and the number of point cloud points in the first leaf node, encode the sequential numbers of the point cloud points in the first leaf node.
[0286] S1092: After encoding the position of the second leaf node in the tree structure of the point cloud and the number of point cloud points in the second leaf node, encode the sequential numbers of the point cloud points in the second leaf node.
[0287] S1093: Encode the attributes of multiple point cloud points in the point cloud.
[0288] Optionally, the first leaf node may be any leaf node in the tree structure of the point cloud that includes point cloud points. In the encoding order, the second leaf node is a leaf node that includes point cloud points after the first leaf node. The specific positions of the first leaf node and the second leaf node are not specifically limited in the embodiments of the present application.
[0289] Specifically, in the embodiments of the present application, during the encoding process of the positions of multiple leaf nodes in the tree structure, the encoding of the sequential numbers of the point cloud points in the leaf nodes is added. After completing the encoding of the positions and sequential numbers of the point cloud points, the attributes of all the point cloud points are encoded.
[0290] Optionally, after completing the encoding of the positions of multiple leaf nodes, the attributes of the point cloud points in multiple leaf node blocks may be encoded in the encoding order of the positions of the multiple leaf nodes.
[0291] If the encoding method using the breadth-first traversal order is used for Figure 8Encode the tree structure of the point cloud in it. Encode the number and attributes of the point cloud points in the leaf node layer. Then, the bitstream of the point cloud can be expressed as 11 0010 1000 01(N1 S1)01(N2 S2)0000 1(N3 S3)001(N4 S4)01(N5 S5)00C1 C2 C3 C4 C5, where N1 to N5 are respectively the numbers of the point cloud points in leaf node 1# to leaf node 5#, S1 to S5 are respectively the sequential numbers of the point cloud points in leaf node 1# to leaf node 5#, and C1 to C5 are respectively the attributes of the point cloud points in leaf node 1# to leaf node 5.
[0292] Through the solution of this embodiment, in the bitstream after point cloud encoding, the bits corresponding to the attributes of multiple point cloud points are adjacent, and the bits corresponding to the number of point cloud points in a leaf node are adjacent to the bits corresponding to the sequential number of the point cloud points in that leaf node.
[0293] In this case, the bitstream of the point cloud can be expressed as: P1 N1 S1……P i N i S i ……P n N n S n C1…C i …C n where, P i represents the bit corresponding to the position of the i-th leaf node, N i represents the bit corresponding to the number of point cloud points in the i-th leaf node, S i represents the bit corresponding to the sequential number of the point cloud points in the i-th leaf node, C i represents the bit corresponding to the attribute of the point cloud points in the i-th leaf node. It can be understood that if the i-th leaf node includes point cloud points, then encode the number, sequential number, and attribute of the point cloud points. If the i-th leaf node does not include point cloud points, then do not execute the encoding process of the number, sequential number, and attribute of the point cloud points, where 1≤i≤n, and n is the number of leaf nodes in the tree structure.
[0294] Corresponding to Figure 24 the encoding method 109 in Figure 25 FIG. shows a schematic flowchart of a decoding method 209 of a point cloud.
[0295] As Figure 25 shown, the decoding method 209 may include the following steps.
[0296] S2091: After decoding the position bitstream of the first leaf node in the tree structure of the point cloud and the bitstream of the number of point cloud points in the first leaf node, decode the bitstream of the sequential number of the point cloud points in the first leaf node.
[0297] S2092: After decoding the position bitstream of the second leaf node in the tree structure of the point cloud and the number bitstream of the point cloud points in the second leaf node, decode the sequence number bitstream of the point cloud points in the second leaf node.
[0298] S2093: Decode the attribute bitstreams of multiple point cloud points in the point cloud.
[0299] In the embodiment of the present application, after the position bitstreams and sequence number bitstreams of the point cloud points in multiple leaf nodes in the tree structure of the point cloud, the attribute bitstreams of the point cloud points in multiple leaf nodes are arranged.
[0300] Specifically, after the position bitstream of the first leaf node and the number bitstream of the point cloud points in the first leaf node, the sequence number bitstream of the point cloud points in the first leaf node is arranged; after the position bitstreams and sequence number bitstreams of the point cloud points in multiple leaf nodes, the attribute bitstreams of the point cloud points in multiple leaf nodes are arranged.
[0301] It can be understood that the decoding method 209 is the reverse process of the above-mentioned encoding method 109. For related solutions, reference can be made to the above description and will not be elaborated here.
[0302] Embodiment 10
[0303] Optionally, the encoding of the sequence numbers of the point cloud points can also be an encoding process independent of the positions and attribute encodings of the point cloud points.
[0304] Figure 26 Shows a schematic flowchart of an encoding method 1010 of a point cloud.
[0305] As Figure 26 shown, the encoding method 1010 may include the following steps.
[0306] S10101: Encode the positions of multiple point cloud points in the point cloud.
[0307] S10102: Encode the attributes of multiple point cloud points in the point cloud.
[0308] S10103: Encode the sequence numbers of multiple point cloud points in the point cloud.
[0309] Optionally, the sequence numbers of multiple point cloud points can be encoded in the encoding order of the positions of multiple point cloud points, or in the encoding order of the positions of multiple point cloud points.
[0310] If the encoding method of breadth-first traversal order is adopted for Figure 8If the tree structure of the point cloud in is encoded, the bitstream of the point cloud can be expressed as 11 0010 1000 01(N1)01(N2)0000 1(N3)001(N4)01(N5)00S1 S2 S3 S4 S5C1 C2 C3 C4 C5, or 1 0010 1000 01(N1)01(N2)0000 1(N3)001(N4)01(N5)00C1 C2 C3 C4C5 S1 S2 S3 S4 S5, where N1 to N5 are the numbers of point cloud points in leaf node 1# to leaf node 5# respectively, S1 to S5 are the sequential numbers of point cloud points in leaf node 1# to leaf node 5# respectively, and C1 to C5 are the attributes of point cloud points in leaf node 1# to leaf node 5# respectively.
[0311] In this case, the bitstream of the point cloud can be expressed as: P1 N1…P i N i …P n N n …S1…S i …S n C i …C i …C n ,or P1 N1…P i N i …P n N n …C i …C i …C n S1…S i …S n ,where P i represents the bit corresponding to the position of the i-th leaf node, N i represents the bit corresponding to the number of point cloud points in the i-th leaf node, S i represents the bit corresponding to the sequential number of point cloud points in the i-th leaf node, C i represents the bit corresponding to the attribute of point cloud points in the i-th leaf node. It can be understood that if the i-th leaf node includes point cloud points, the number, sequential number, and attribute of the point cloud points are encoded; if the i-th leaf node does not include point cloud points, the encoding process of the number, sequential number, and attribute of the point cloud points is not performed, where 1≤i≤n and n is the number of leaf nodes in the tree structure.
[0312] Corresponding to Figure 26 the encoding method 1010 in Figure 27 Fig. shows a schematic flowchart of a decoding method 2010 for a point cloud.
[0313] As Figure 27As shown, the decoding method 2010 may include the following steps.
[0314] S20101: Decode the position code streams of multiple point cloud points.
[0315] S20102: Decode the attribute code streams of multiple point cloud points.
[0316] S20103: Decode the sequentially numbered code stream of multiple point cloud points.
[0317] It can be understood that the decoding method 2010 is the reverse process of the above-mentioned encoding method 1010. The relevant scheme can be found in the above description and will not be repeated here.
[0318] In the above, different embodiments use different coding orders to encode the position, attributes and sequential numbering of point cloud points in the point cloud, and different code stream structures can be obtained. In some embodiments, the coding order can be agreed upon by the encoding and decoding end, and the encoding end uses any one of the coding orders in the above embodiments for encoding, and correspondingly, the decoding end uses the corresponding decoding order for decoding. In other embodiments, the identifier representing the coding order can also be written into the header information of the point cloud. For example, if the coding order in the above embodiment 1 is used to encode the point cloud, the coding order identifier 0 corresponding to embodiment 1 can be written into the header information of the point cloud. The decoding end obtains the coding order information by decoding the header information of the point cloud, and then uses the corresponding decoding order to decode the code stream of the point cloud. The embodiments of the present application do not specifically limit the numerical value of the coding order identifier and the coding and decoding method.
[0319] The above describes the encoding and decoding process of the position, attributes and sequence number of the point cloud points in the point cloud in combination with specific embodiments. The following further describes the specific encoding and decoding methods of these parts.
[0320] In the process of encoding and decoding the position of the point cloud points in the point cloud, including the process of encoding and decoding the number of the point cloud points, optionally, the encoding and decoding method of the number of the point cloud points can adopt any encoding and decoding method in the prior art, and this application does not make specific restrictions on this. For example, the number of point cloud points can be encoded by using a binary entropy coding or a multivariate entropy coding encoding method, and correspondingly, the number of point cloud points can be decoded by using a binary entropy decoding or a multivariate entropy decoding decoding method.
[0321] During the encoding and decoding process of the attributes of the point cloud points, binary entropy coding can be used to encode the attributes of the point cloud points. Correspondingly, binary entropy decoding can be used to decode the attributes of the point cloud points. Among them, the binary entropy coding can be equiprobable binary entropy coding or context-based binary entropy coding. Compared with the attribute coding scheme of the level of detail (LOD) coding scheme, the computational complexity of the coding method is greatly reduced, and part of the time overhead and computational resource overhead are reduced for both the encoding and decoding processes. And the relatively long parameter descriptions about LOD coding are correspondingly removed, and the compression performance is also significantly improved when the point cloud data volume is small.
[0322] Optionally, for the sequential numbering of the point cloud points in the point cloud, as can be seen from the above description, this sequential numbering is used to represent the order of multiple point cloud points and is related to the number of point cloud points.
[0323] In some embodiments, the sequential numbering value can be directly encoded and decoded.
[0324] In other embodiments, the difference between the sequential numbering values can also be encoded and decoded to achieve the encoding and decoding of the sequential numbering values of multiple point cloud points, so as to further reduce the encoding bit positions and thus improve the compression performance of the point cloud.
[0325] Optionally, the encoding order of the sequential numbering of the point cloud points or the difference in sequential numbering is the same as the encoding order of the position of the leaf nodes or the same as the encoding order of the attributes of the point cloud points.
[0326] Specifically, if the difference in the sequential numbering value of the point cloud points is encoded, the difference in the sequential numbering of the first encoded point cloud point in the point cloud is its own sequential numbering value. Starting from the second point cloud point, the difference in the sequential numbering of each point cloud point is the difference between its own sequential numbering value and the sequential numbering value of the previous encoded point cloud point.
[0327] Since the difference in sequential numbering may be positive or negative, in some embodiments, the sign identification bit can be encoded first, which is used to indicate whether the difference in the sequential numbering of multiple point cloud points is positive or negative, and then the absolute value of the difference in the sequential numbering of multiple point cloud points is encoded.
[0328] In other embodiments, if the difference in the sequential numbering of the point cloud points is a positive value A, then 2×A - 1 is encoded. If the difference in the sequential numbering of the point cloud points is a negative value B, then -2×B is encoded to distinguish the positive and negative of the difference in sequential numbering.
[0329] Optionally, a binary entropy coding or a multi - ary entropy coding method can be used to code the sequential numbers / sequential number differences of the point cloud points. It can be understood that if coding the sequential number differences of the point cloud points, according to the descriptions of the above two implementation manners, binary entropy coding or multi - ary entropy coding can be performed on the absolute values of the sequential number differences, or binary entropy coding or multi - ary entropy coding can be performed on 2×A - 1 or - 2×B.
[0330] In the embodiments of the present application, the above - mentioned binary entropy coding can be equiprobable binary entropy coding or context - based binary entropy coding, and the above - mentioned multi - ary entropy coding can also be equiprobable multi - ary entropy coding or context - based multi - ary entropy coding.
[0331] Correspondingly, in the process of decoding the sequential number bitstream / sequential number difference bitstream of the point cloud points, a binary entropy decoding or a multi - ary entropy decoding method can also be used. Among them, the binary entropy decoding can be equiprobable binary decoding or context - based binary entropy decoding, and the above - mentioned multi - ary entropy decoding can also be equiprobable multi - ary entropy decoding or context - based multi - ary entropy decoding.
[0332] Specifically, if the binary entropy coding method is adopted, the value to be coded needs to be binarized first, and the binarization method includes a variable - length code or a fixed - length code method. Correspondingly, if the binary entropy decoding method is adopted, the bitstream needs to be de - binarized first, and the de - binarization method also includes a variable - length code or a fixed - length code method.
[0333] If a fixed - length code is used to binarize the sequential numbers of the point cloud points, the bit - width of the fixed - length code is determined by the maximum value of the sequential numbers. For example, if there are N point cloud points in the point cloud, and the sequential numbers of the N point cloud points are 1 to N in sequence, then the bit - width of the fixed - length code is where, represents rounding up. As an example, if N = 500, log2500≈8.96578, then the bit - width is 9.
[0334] If a variable - length code is used to binarize the sequential numbers of the point cloud points, a truncated Rice code, a K - th order exponential Golomb code, a unary code or other variable - length code schemes in the prior art can be used to binarize the sequential numbers of the point cloud points, and the embodiments of the present application do not make specific limitations in this regard.
[0335] Several variable - length codes are briefly introduced below.
[0336] (a) Truncated Rice code
[0337] Let the threshold value be cMax, the Rice parameter be R, the number to be encoded be Idx, and the truncated Rice code is formed by concatenating the prefix code and the suffix code. The calculation method of the prefix value P is shown in Equation (1).
[0338] P = Idx >> R (1)
[0339] If P is less than the value (cMax >> R), the prefix code consists of P 1s and one 0, with a length of P + 1; if P is greater than or equal to the value (cMax >> R), the prefix code consists of (cMax >> R) 1s, with a length of (cMax >> R). When the numbered value Idx is less than cMax, its suffix value S is shown in Equation (2).
[0340] S = Idx - (P << R) (2)
[0341] The suffix code is the binary string of S, with a length of R.
[0342] When the numbered value Idx is greater than or equal to cMax, there is no suffix code.
[0343] Among them, both the Rice code parameter R and the threshold value cMax are agreed upon by the encoding and decoding ends.
[0344] (b) K - order Exponential Golomb Coding
[0345] The Exponential Golomb code consists of two parts: a prefix and a suffix. Both the prefix and the suffix depend on the order k of the Exponential Golomb code. The k - order Exponential Golomb code representing the non - negative integer numbered value N can be generated by the following steps.
[0346] ① Write the number N in binary form, remove the lowest k bits, and then add 1.
[0347] ② Calculate the number of remaining bits, subtract 1 from this number, which is the number of leading zeros to be added.
[0348] ③ Append the lowest k bits removed in step ① to the end of the bit string.
[0349] Taking the first - order Exponential Golomb coding with the numbered value 4 as an example:
[0350] ① The binary representation of 4 is 100. Removing the lowest 1 bit 0 becomes 10, and after adding 1, it becomes 11.
[0351] ② The number of bits of 11 is 2, so the number of 0s in the prefix is 1.
[0352] ③ Append the 0 removed in step ① to the lowest bit of the bit string. The final codeword is 0110.
[0353] For the k-th order Golomb code, the prefix consists of m consecutive 0s and a 1, and the suffix consists of m + k, which is the binary representation of N - 2k(2m - 1). Based on this, the binarization of the encoding can be achieved. The order k of the Golomb code can be agreed upon by the encoding and decoding ends.
[0354] (c) Unary code
[0355] Define the integer N as follows: In Scheme 1, N 1s are followed by 1 0, and in Scheme 2, N 0s are followed by 1 1.
[0356] For example, in Scheme 1, 0 is encoded as 0, 1 is encoded as 10, 2 is encoded as 110, 3 is encoded as 1110, or in Scheme 2, 0 is encoded as 1, 1 is encoded as 01, 2 is encoded as 001, 3 is encoded as 0001.
[0357] Optionally, the encoding and decoding methods for the position, attributes, and sequential numbers of the point cloud points can be any of the encoding methods mentioned above, and this application does not make specific limitations on this.
[0358] Optionally, during the encoding and decoding process of the point cloud points in the point cloud, the position of the point cloud points can be encoded first, and then the attributes and sequential numbers of the point cloud points can be encoded and decoded. The encoding and decoding process of the attributes and sequential numbers of the point cloud points can be parallel or serial.
[0359] The encoding and decoding method of the point cloud proposed in this application can be applied to the point cloud data obtained by any kind of point cloud scanning device, whether it is a traditional point cloud scanning device with a repetitive scanning method or a non-repetitive scanning method point cloud scanning device. The point cloud data obtained by it can be compressed and transmitted using the encoding and decoding method proposed in this application.
[0360] Since in the working process of the point cloud scanning device with a non-repetitive scanning method, its scanning path is relatively complex, and the angle change between two adjacent point cloud points obtained is relatively large. In some cases, the angle change between two adjacent point cloud points is greater than the angle change between two adjacent point cloud points obtained by the repetitive scanning method. If the original order is not recorded and encoded, it is difficult to infer the order of the point cloud points in the original point cloud only based on the position coordinates or other data values of the point cloud points. Therefore, the encoding and decoding method of the point cloud in this application is especially suitable for the point cloud data obtained by the point cloud scanning device with a non-repetitive scanning method.
[0361] Next, in combination with Figure 28 The device 200 shown will be used to give an example description of the above-mentioned point cloud scanning device with a non-repetitive scanning method. The scanning device includes, but is not limited to, a lidar, and the laser emission direction of the lidar changes in the three dimensions of XYZ over time.
[0362] As Figure 28As shown, device 200 includes a ranging module 201. The ranging module 210 includes a transmitter 203, a collimating element 204, a detector 205, and an optical path changing element 206. The ranging module 210 is used to emit a light beam and receive the reflected light, and convert the reflected light into an electrical signal. Among them, the transmitter 203 can be used to emit a sequence of light pulses. In one embodiment, the transmitter 203 can emit a sequence of laser pulses. The collimating element 204 is disposed on the outgoing optical path of the transmitter, and is used to collimate the light beam emitted from the transmitter 203, and collimate the light beam emitted from the transmitter 203 into a parallel light beam and emit it to the scanning module. The collimating element is also used to converge at least a part of the reflected light reflected by the detected object. The collimating element 204 can be a collimating lens or other elements capable of collimating light beams.
[0363] In Figure 28 In the illustrated embodiment, the optical path changing element 206 is used to combine the emission optical path and the reception optical path in the device before the collimating element 204, so that the emission optical path and the reception optical path can share the same collimating element, making the optical path more compact. In some other implementation manners, it can also be that the transmitter 203 and the detector 205 respectively use their own collimating elements, and the optical path changing element 206 is disposed on the optical path after the collimating element.
[0364] In Figure 28 In the illustrated embodiment, since the beam aperture of the light beam emitted by the transmitter 203 is small and the beam aperture of the reflected light received by the device is large, the optical path changing element can use a small-area mirror to combine the emission optical path and the reception optical path.
[0365] As Figure 28 As shown, device 200 further includes a scanning module 202. The scanning module 202 is placed on the outgoing optical path of the ranging module 201. The scanning module 202 is used to change the transmission direction of the collimated light beam 219 emitted from the collimating element 204 and project it to the external environment, and project the reflected light to the collimating element 204. The reflected light is converged by the collimating element 204 onto the detector 105.
[0366] In one embodiment, the scanning module 202 may include at least one optical element for changing the propagation path of a light beam, wherein the optical element can change the propagation path of the light beam by reflecting, refracting, diffracting, etc. the light beam. For example, the scanning module 202 includes a lens, a mirror, a prism, a galvanometer, a grating, a liquid crystal, an optical phased array, or any combination of the above optical elements. In one example, at least part of the optical elements are movable. For example, a driving module is used to drive at least part of the optical elements to move, and the movable optical element can reflect, refract, or diffract the light beam to different directions at different times. In some embodiments, multiple optical elements of the scanning module 202 can rotate or vibrate around a common axis 209, and each rotating or vibrating optical element is used to continuously change the propagation direction of the incident light beam. In one embodiment, multiple optical elements of the scanning module 202 can rotate at different rotational speeds or vibrate at different speeds. In another embodiment, at least part of the optical elements of the scanning module 202 can rotate at substantially the same rotational speed. In some embodiments, multiple optical elements of the scanning module can also rotate around different axes. In some embodiments, multiple optical elements of the scanning module can also rotate in the same direction or in different directions; or vibrate in the same direction or in different directions, which is not limited herein.
[0367] In one embodiment, the scanning module 202 includes a first optical element 214 and a driver 216 connected to the first optical element 214. The driver 216 is used to drive the first optical element 214 to rotate around the rotation axis 209, so that the first optical element 214 changes the direction of the collimated light beam 219. The first optical element 214 projects the collimated light beam 219 to different directions. In one embodiment, the angle between the direction of the collimated light beam 219 changed by the first optical element and the rotation axis 109 changes as the first optical element 214 rotates. In one embodiment, the first optical element 214 includes a pair of non-parallel opposite surfaces, and the collimated light beam 219 passes through the pair of surfaces. In one embodiment, the first optical element 214 includes a prism with a thickness varying along at least one radial direction. In one embodiment, the first optical element 114 includes a wedge prism for refracting the collimated light beam 119.
[0368] In one embodiment, the scanning module 202 further includes a second optical element 215 that rotates about a rotation axis 209, and the rotation speed of the second optical element 215 is different from that of the first optical element 214. The second optical element 215 is used to change the direction of the light beam projected by the first optical element 214. In one embodiment, the second optical element 115 is connected to another driver 217, and the driver 117 drives the second optical element 215 to rotate. The first optical element 214 and the second optical element 215 can be driven by the same or different drivers, so that the rotation speeds and / or rotation directions of the first optical element 214 and the second optical element 215 are different, thereby projecting the collimated light beam 219 to different directions in the external space and scanning a larger space range. In one embodiment, the controller 218 controls the drivers 216 and 217 to drive the first optical element 214 and the second optical element 215 respectively. The rotation speeds of the first optical element 214 and the second optical element 215 can be determined according to the area and pattern expected to be scanned in actual applications. The drivers 216 and 217 can include motors or other drivers.
[0369] In one embodiment, the second optical element 115 includes a pair of opposite non-parallel surfaces through which the light beam passes. In one embodiment, the second optical element 115 includes a prism with a thickness varying along at least one radial direction. In one embodiment, the second optical element 115 includes a wedge-angle prism.
[0370] In one embodiment, the scanning module 102 further includes a third optical element (not shown in the figure) and a driver for driving the third optical element to move. Optionally, the third optical element includes a pair of opposite non-parallel surfaces through which the light beam passes. In one embodiment, the third optical element includes a prism with a thickness varying along at least one radial direction. In one embodiment, the third optical element includes a wedge-angle prism. At least two of the first, second, and third optical elements rotate at different rotation speeds and / or rotation directions.
[0371] The rotation of each optical element in the scanning module 202 can project light to different directions, such as directions 211 and 213, so as to scan the space around the device 200. As Figure 29 shown, Figure 29 is a schematic diagram of a scanning pattern of the device 200. It can be understood that when the speed of the optical element in the scanning module changes, the scanning pattern will also change.
[0372] When the light 211 projected by the scanning module 202 hits the detection object 201, a part of the light is reflected by the detection object 201 in the direction opposite to the projected light 211 and returns to the device 200. The returned light 212 reflected by the detection object 201 enters the collimating element 204 after passing through the scanning module 202.
[0373] The detector 205 and the transmitter 203 are placed on the same side of the collimating element 204. The detector 205 is configured to convert at least part of the return light passing through the collimating element 204 into an electrical signal to generate the raw data of the point cloud points.
[0374] As described above in conjunction with Figures 4 to 27 , the method embodiments of the present application have been described in detail. Below in conjunction with Figure 30 and Figure 31 , the embodiments of the encoding and decoding device of the point cloud of the present application will be described in detail. It should be understood that the device embodiments and the method embodiments correspond to each other, and similar descriptions can refer to the method embodiments.
[0375] Figure 30 FIG. is a schematic block diagram of an encoding device 1 of a point cloud according to an embodiment of the present application. The encoding device 1 of the point cloud corresponds to any one of the encoding methods in the above-mentioned encoding method of the point cloud.
[0376] As Figure 30 shown, the encoding device 1 of the point cloud includes: a processor 11 and a memory 12;
[0377] The memory 12 can be used to store programs, and the processor 11 can be used to execute the programs stored in the memory to perform the following operations:
[0378] Encode the sequential numbers of the point cloud points in the point cloud to generate a bitstream of the point cloud;
[0379] Transmit the bitstream of the point cloud.
[0380] In some embodiments, the processor 11 is configured to: encode the positions and sequential numbers of the point cloud points in the point cloud to generate a bitstream of the point cloud.
[0381] As an example, the processor 11 can be used to: after encoding the position of the first leaf node in the tree structure of the point cloud and the number of point cloud points in the first leaf node, encode the sequential numbers of the point cloud points in the first leaf node to generate a bitstream of the point cloud.
[0382] Optionally, the processor 11 is configured to: after encoding the positions of multiple leaf nodes in the tree structure of the point cloud, encode the numbers and sequential numbers of the point cloud points in the multiple leaf nodes to generate a bitstream of the point cloud.
[0383] Optionally, the processor 11 is configured to: after encoding the number of point cloud points in the first leaf node among the multiple leaf nodes, encode the sequential numbers of the point cloud points in the first leaf node; or, after encoding the numbers of the point cloud points in the multiple leaf nodes, encode the sequential numbers of the point cloud points in the multiple leaf nodes.
[0384] Optionally, the bits corresponding to the number of point cloud points in the first leaf node above are adjacent to the bits corresponding to the sequential numbering of the point cloud points in the first leaf node.
[0385] As another example, the processor 11 can be used to: after encoding the positions of multiple leaf nodes in the tree structure of the point cloud and the number of point cloud points in the multiple leaf nodes, encode the sequential numbering of the point cloud points in the multiple leaf nodes to generate a bitstream of the point cloud.
[0386] In some embodiments, the processor 11 is used to: after encoding the positions of multiple leaf nodes in the tree structure of the point cloud, encode the number of point cloud points in the multiple leaf nodes.
[0387] Optionally, the bits corresponding to the number of point cloud points in the multiple leaf nodes above are adjacent to the bits corresponding to the sequential numbering of the point cloud points in the multiple leaf nodes.
[0388] In some other embodiments, the processor 11 is used to: after encoding the position of the first leaf node in the tree structure of the point cloud, encode the number of point cloud points in the first leaf node.
[0389] Optionally, the bits corresponding to the number of point cloud points in the last leaf node among the multiple leaf nodes above are adjacent to the bits corresponding to the sequential numbering of the point cloud points in the multiple leaf nodes.
[0390] Optionally, the multiple leaf nodes above are some or all of the leaf nodes in the point cloud.
[0391] Optionally, when encoding the sequential numbering of the point cloud points in multiple leaf nodes, the processor 11 is used to: encode the sequential numbering of the point cloud points in the multiple leaf nodes according to the encoding order of the positions of the multiple leaf nodes.
[0392] If the number of point cloud points in a leaf node among the multiple leaf nodes is multiple, the processor 11 is used to: encode the sequential numbering of the point cloud points in the one leaf node in ascending or descending order of the sequential numbering.
[0393] Furthermore, the processor 11 is also used to: encode the attributes of the point cloud points in the one leaf node in ascending or descending order of the sequential numbering.
[0394] In some other embodiments, the processor 11 is used to: encode the attributes and sequential numbering of the point cloud points in the point cloud to generate a bitstream of the point cloud.
[0395] As an example, the processor 11 is used to: after encoding the attributes and sequential numbering of a point cloud point in the point cloud, encode the attributes and sequential numbering of another point cloud point in the point cloud.
[0396] Optionally, the bits corresponding to the attributes of the first point cloud point in the above point cloud are adjacent to the bits corresponding to the sequence number of the first point cloud point.
[0397] As another example, the processor 11 is configured to: after encoding the attributes of multiple point cloud points in the point cloud, encode the sequence numbers of the multiple point cloud points.
[0398] The above multiple point cloud points may be some or all of the point cloud points included in the point cloud.
[0399] Furthermore, the bits corresponding to the attributes of the multiple point cloud points may be adjacent to the bits corresponding to the sequence numbers of the multiple point cloud points.
[0400] Optionally, the processor 11 is configured to: encode the sequence numbers of the multiple point cloud points according to the encoding order of the attributes of the multiple point cloud points.
[0401] In some other embodiments, the processor 11 is configured to: encode the positions, attributes, and sequence numbers of the point cloud points in the point cloud to generate a bitstream of the point cloud.
[0402] Optionally, the processor 11 is configured to: after encoding the position of the first leaf node in the tree structure of the point cloud and the number of point cloud points in the first leaf node, encode the attributes of the point cloud points in the first leaf node.
[0403] Furthermore, the processor 11 may be configured to: encode the sequence numbers of the point cloud points in the first leaf node before or after encoding the attributes of the point cloud points in the first leaf node of the tree structure of the point cloud.
[0404] In this case, the bits corresponding to the number of point cloud points in the first leaf node are adjacent to the bits corresponding to the attributes of the point cloud points in the first leaf node, and the bits corresponding to the attributes of the point cloud points in the first leaf node are adjacent to the bits corresponding to the sequence numbers of the point cloud points in the first leaf node;
[0405] Or, the bits corresponding to the number of point cloud points in the first leaf node are adjacent to the bits corresponding to the sequence numbers of the point cloud points in the first leaf node, and the bits corresponding to the sequence numbers of the point cloud points in the first leaf node are adjacent to the bits corresponding to the attributes of the point cloud points in the first leaf node.
[0406] Optionally, the processor 11 is configured to: after encoding the positions and attributes of the point cloud points in multiple leaf nodes in the tree structure of the point cloud, encode the sequence numbers of the point cloud points in the multiple leaf nodes.
[0407] Optionally, the processor 11 is configured to: after encoding the position of the first leaf node in the tree structure of the point cloud and the number of point cloud points in the first leaf node, encode the sequential number of the point cloud points in the first leaf node; after encoding the positions and sequential numbers of the point cloud points in multiple leaf nodes in the tree structure of the point cloud, encode the sequential numbers of the point cloud points in the multiple leaf nodes.
[0408] In some other embodiments, the processor 11 is further configured to: obtain the original data of the point cloud points in the point cloud; and encode the positions of the point cloud points in the point cloud to obtain the bits corresponding to the positions; encode the attributes of the point cloud points in the point cloud to obtain the bits corresponding to the attributes; encode the sequential numbers of the point cloud points in the point cloud to obtain the bits corresponding to the sequential numbers; and generate a bitstream of the point cloud according to the bits corresponding to the positions, the bits corresponding to the attributes, and the bits corresponding to the sequential numbers.
[0409] Optionally, the processor 11 is configured to: binarize and entropy-encode the sequential numbers of the point cloud points in the point cloud, where the entropy encoding is equiprobable binary entropy encoding or context-based binary entropy encoding, and the binarization is fixed-length code binarization or variable-length code binarization.
[0410] Optionally, the processor 11 is configured to: entropy-encode the sequential numbers of the point cloud points in the point cloud, where the entropy encoding is equiprobable multi - ary entropy encoding or context-based multi - ary entropy encoding.
[0411] Optionally, the processor 11 is configured to: encode the difference in sequential numbers of the point cloud points in the point cloud; where the difference in sequential numbers of the first point cloud point in the point cloud is the sequential number value, and the difference in sequential numbers of a point cloud point other than the first point cloud point in the point cloud is the difference between the sequential number of the point cloud point and the sequential number of its previous point cloud point.
[0412] In this case, in some embodiments, the processor 11 is configured to: encode a sign flag bit, which is used to identify whether the difference in sequential numbers of the point cloud points in the point cloud is positive or negative; and encode the absolute value of the difference in sequential numbers of the point cloud points in the point cloud.
[0413] In some other embodiments, the processor 11 is configured to: if the difference in sequential numbers of the first point cloud point in the point cloud is a positive value A, encode 2×A - 1; or, if the difference in sequential numbers of the second point cloud point in the point cloud is a negative value B, encode -2×B.
[0414] Optionally, the processor 11 is configured to: binarize and entropy-encode the difference in sequential numbers of the point cloud points in the point cloud, where the entropy encoding is equiprobable binary entropy encoding or context-based binary entropy encoding, and the binarization is fixed-length code binarization or variable-length code binarization.
[0415] Optionally, the processor 11 is configured to: perform entropy encoding on the difference in the sequential numbers of the point cloud points in the point cloud, where the entropy encoding is equiprobable multi - variable entropy encoding or context - based multi - variable entropy encoding.
[0416] Optionally, the processor 11 is configured to: binarize and perform entropy encoding on the attributes of the point cloud points in the point cloud, where the entropy encoding is equiprobable binary entropy encoding or context - based binary entropy encoding, and the binarization is fixed - length code binarization or variable - length code binarization.
[0417] In the embodiments of the present application, the sequential numbers of the point cloud points in the above - mentioned point cloud represent the time sequence, acquisition sequence, or scanning sequence of the point cloud points.
[0418] Optionally, the processor 11 is further configured to: assign sequential numbers to the point cloud points in the point cloud according to the time sequence, acquisition sequence, or scanning sequence of the point cloud points.
[0419] Optionally, the point cloud points in the point cloud are the point cloud points obtained by the point cloud scanning device using a non - repetitive scanning method. The point cloud scanning device may be Figure 28 the device 200 in
[0420] Optionally, in the non - repetitive scanning method, the light emission direction of the point cloud scanning device changes in the three XYZ dimensions over time.
[0421] Furthermore, in the above - mentioned point cloud, the angular change between two adjacent point cloud points with sequential numbers may be greater than the angular change between two adjacent point cloud points with sequential numbers obtained by using a repetitive scanning method.
[0422] Figure 31 FIG. is a schematic block diagram of the decoding device 2 of the point cloud according to the embodiments of the present application. The decoding device 2 of the point cloud corresponds to any one of the decoding methods in the above - mentioned decoding method of the point cloud.
[0423] As Figure 31 shown, the decoding device 2 of the point cloud includes: a processor 21 and a memory 22;
[0424] The memory 22 can be used to store programs, and the processor 21 can be used to execute the programs stored in the memory to perform the following operations:
[0425] Obtain the bitstream of the point cloud;
[0426] Decode the bitstream of the point cloud to obtain the sequential numbers of the point cloud points in the point cloud.
[0427] In some embodiments, the bitstream of the point cloud includes the position bitstream of the point cloud points and the sequential number bitstream of the point cloud points; the processor 21 is configured to: decode the position bitstream of the point cloud points and the sequential number bitstream of the point cloud points to obtain the positions and sequential numbers of the point cloud points in the point cloud.
[0428] As an example, in the bitstream of the point cloud, after the position bitstream of the first leaf node in the tree structure of the point cloud and the bitstream of the number of point cloud points in this first leaf node, the sequence number bitstream of the point cloud points in this first leaf node is arranged.
[0429] Optionally, in the bitstream of the point cloud, after the position bitstreams of multiple leaf nodes in the tree structure of the point cloud, the bitstream of the number of point cloud points in these multiple leaf nodes and the sequence number bitstream are arranged.
[0430] Optionally, in the bitstream of the number of point cloud points in these multiple leaf nodes and the sequence number bitstream, after the bitstream of the number of point cloud points in the first leaf node among these multiple leaf nodes, the sequence number bitstream of the point cloud points in this first leaf node is arranged; or, after the bitstream of the number of point cloud points in these multiple leaf nodes, the sequence number bitstream of the point cloud points in these multiple leaf nodes is arranged.
[0431] Optionally, the bitstream of the number of point cloud points in this first leaf node is adjacent to the sequence number bitstream of the point cloud points in this first leaf node.
[0432] As another example, in the bitstream of the point cloud, after the position bitstreams of multiple leaf nodes in the tree structure of the point cloud and the bitstream of the number of point cloud points in these multiple leaf nodes, the sequence number bitstream of the point cloud points in these multiple leaf nodes is arranged.
[0433] In some embodiments, after the position bitstreams of multiple leaf nodes in the tree structure of the point cloud, the bitstream of the number of point cloud points in these multiple leaf nodes is arranged.
[0434] Optionally, it is characterized in that the bitstream of the number of point cloud points in these multiple leaf nodes is adjacent to the sequence number bitstream of the point cloud points in these multiple leaf nodes.
[0435] In some other embodiments, after the position bitstream of the first leaf node in the tree structure of the point cloud, the bitstream of the number of point cloud points in this first leaf node is arranged.
[0436] Optionally, the bitstream of the number of point cloud points in the last leaf node among these multiple leaf nodes is adjacent to the sequence number bitstream of the point cloud points in these multiple leaf nodes.
[0437] Optionally, these multiple leaf nodes are all the leaf nodes in the point cloud.
[0438] Optionally, the arrangement order of multiple leaf node blocks in the bitstream of the number of point cloud points in these multiple leaf nodes is the same as the arrangement order of multiple leaf node blocks in the sequence number bitstream of the point cloud points in these multiple leaf nodes.
[0439] If the number of point cloud points in one of the multiple leaf nodes is multiple, in the sequence number code stream of the point cloud points in the one leaf node, the point cloud points are arranged in ascending or descending order of the sequence numbers.
[0440] Further, the code stream of the point cloud further includes: the attribute code stream of the point cloud points in the one leaf node; in the attribute code stream of the point cloud points in the one leaf node, the point cloud points are arranged in ascending or descending order of the sequence numbers.
[0441] In some other embodiments, the code stream of the point cloud includes the attribute code stream of the point cloud points and the sequence number code stream of the point cloud points; the processor 21 is configured to: decode the attribute code stream of the point cloud points and the sequence number code stream of the point cloud points to obtain the attributes and sequence numbers of the point cloud points in the point cloud.
[0442] As an example, in the code stream of the point cloud, after the attribute code stream and the sequence number code stream of one point cloud point in the point cloud, the attribute code stream and the sequence number code stream of another point cloud point in the point cloud are arranged.
[0443] Optionally, the attribute code stream of the first point cloud point in the point cloud is adjacent to the sequence number code stream of the first point cloud point.
[0444] As another example, in the code stream of the point cloud, after the attribute code streams of multiple point cloud points in the point cloud, the sequence number code streams of the multiple point cloud points are arranged.
[0445] Optionally, the multiple point cloud points are all the point cloud points included in the point cloud.
[0446] Further, the attribute code streams of the multiple point cloud points are adjacent to the sequence number code streams of the multiple point cloud points.
[0447] Optionally, the arrangement order of the multiple point cloud points in the sequence number code stream of the multiple point cloud points is the same as the arrangement order of the multiple point cloud points in the attribute code stream of the multiple point cloud points.
[0448] In some other embodiments, the code stream of the point cloud includes the position code stream of the point cloud points, the attribute code stream of the point cloud points, and the sequence number code stream of the point cloud points; the processor 21 is configured to: decode the position code stream of the point cloud points, the attribute code stream of the point cloud points, and the sequence number code stream of the point cloud points to obtain the positions, attributes, and sequence numbers of the point cloud points in the point cloud.
[0449] Optionally, in the code stream of the point cloud, after the position code stream of the first leaf node in the tree structure of the point cloud and the number code stream of the point cloud points in the first leaf node, the attribute code stream of the point cloud points in the first leaf node is arranged.
[0450] Further, before or after the attribute bitstream of the point cloud points in the first leaf node in the tree structure of the point cloud, there is arranged an order number bitstream of the point cloud points in the first leaf node.
[0451] In this case, the quantity bitstream of the point cloud points in the first leaf node is adjacent to the attribute bitstream of the point cloud points in the first leaf node, and the attribute bitstream of the point cloud points in the first leaf node is adjacent to the order number bitstream of the point cloud points in the first leaf node;
[0452] Or, the quantity bitstream of the point cloud points in the first leaf node is adjacent to the order number bitstream of the point cloud points in the first leaf node, and the order number bitstream of the point cloud points in the first leaf node is adjacent to the attribute bitstream of the point cloud points in the first leaf node.
[0453] Optionally, after the position bitstream and the attribute bitstream of the point cloud points in multiple leaf nodes in the tree structure of the point cloud, there is arranged an order number bitstream of the point cloud points in the multiple leaf nodes.
[0454] Optionally, in the bitstream of the point cloud, after the position bitstream of the first leaf node in the tree structure of the point cloud and the quantity bitstream of the point cloud points in the first leaf node, there is arranged an order number bitstream of the point cloud points in the first leaf node; after the position bitstream and the order number bitstream of the point cloud points in multiple leaf nodes in the tree structure of the point cloud, there is arranged an order number bitstream of the point cloud points in the multiple leaf nodes.
[0455] In some other embodiments, the processor 21 is further configured to: sort the point cloud points in ascending order according to the order numbers of the point cloud points in the point cloud, so as to obtain the sorted point cloud data.
[0456] Optionally, the processor 21 is configured to: perform inverse binarization and entropy decoding on the order number bitstream of the point cloud points in the bitstream, where the entropy decoding is equiprobable binary entropy decoding or context-based binary entropy decoding, and the inverse binarization is fixed-length code inverse binarization or variable-length code inverse binarization.
[0457] Optionally, the processor 21 is configured to: perform entropy decoding on the order number bitstream of the point cloud points in the bitstream, where the entropy decoding is equiprobable multi - entropy decoding or context-based multi - entropy decoding.
[0458] Optionally, the processor 21 is configured to: decode the order number difference bitstream of the point cloud points in the bitstream, where the order number difference of the first point cloud point in the point cloud is the order number value, and the order number difference of a point cloud point except the first point cloud point in the point cloud is the difference between the order number of the point cloud point and the order number of its previous point cloud point.
[0459] In this case, in some embodiments, the processor 21 is configured to: decode the sequence number difference bitstream of the point cloud points to obtain a symbol flag bit and the absolute value of the sequence number difference of the point cloud points, where the symbol flag bit is used to identify whether the sequence number difference of the point cloud points is positive or negative.
[0460] In other embodiments, the processor 21 is configured to: decode the sequence number difference bitstream of the first point cloud point to obtain an odd value A', so as to obtain that the sequence number difference of the first point cloud point is a positive value (A'+1) / 2, or decode the sequence number difference bitstream of the second point cloud point to obtain an even value B', so as to obtain that the sequence number difference of the second point cloud point is a negative value -B' / 2.
[0461] Optionally, the processor 21 is configured to: perform inverse binarization and entropy decoding on the sequential number difference of the point cloud points, where the entropy decoding is equiprobable binary entropy decoding or context-based binary entropy decoding, and the inverse binarization is fixed-length code inverse binarization or variable-length code inverse binarization.
[0462] Optionally, the processor 21 is configured to: perform entropy decoding on the sequential number difference of the point cloud points, where the entropy decoding is equiprobable multi-ary entropy decoding or context-based multi-ary entropy decoding.
[0463] Optionally, the processor 21 is configured to: perform inverse binarization and entropy decoding on the attribute bitstream of the point cloud points in the bitstream, where the entropy decoding is equiprobable binary entropy decoding or context-based binary entropy decoding, and the inverse binarization is fixed-length code inverse binarization or variable-length code inverse binarization.
[0464] In the embodiments of the present application, the sequential number of the point cloud points in the point cloud represents the time sequence, acquisition sequence or scanning sequence of the point cloud points.
[0465] Optionally, the point cloud points in the point cloud are point cloud points obtained by the point cloud scanning device using a non-repetitive scanning method. The point cloud scanning device may be Figure 28 the device 200 in.
[0466] Optionally, in the non-repetitive scanning method, the light emission direction of the point cloud scanning device changes in the three XYZ dimensions over time.
[0467] Furthermore, in the above-mentioned point cloud, the angular change between two adjacent point cloud points in the sequential number may be greater than the angular change between two adjacent point cloud points in the sequential number obtained by using a repetitive scanning method.
[0468] The present application also provides an electronic device, which may include the encoding device and / or decoding device of the point cloud in various embodiments of the present application described above.
[0469] The present application also provides a system, which may include an encoding device, a decoding device for the point cloud of various embodiments of the present application, and a point cloud scanning device. The point cloud scanning device may be, for example, Figure 28 the device 200 shown.
[0470] The present application also provides a computer storage medium, on which a computer program is stored. When the computer program is executed by a computer, the computer executes the method of the above method embodiments.
[0471] The present application also provides a computer program product containing instructions. When the instructions are executed by a computer, the computer executes the method of the above method embodiments.
[0472] In the above embodiments, it can be implemented in whole or in part by software, hardware, firmware, or any other combination. When implemented using software, it can be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, the processes or functions described in the embodiments of the present application are generated in whole or in part. The computer may be a general-purpose computer, a special-purpose computer, a computer network, or other programmable devices. The computer instructions may be stored in a computer-readable storage medium, or transmitted from one computer-readable storage medium to another. For example, the computer instructions may be transmitted from a website, a computer, a server, or a data center to another website, computer, server, or data center in a wired manner (such as coaxial cable, optical fiber, digital subscriber line) or a wireless manner (such as infrared, wireless, microwave, etc.). The computer-readable storage medium may be any available medium that can be accessed by a computer or a data storage device such as a server or a data center integrating one or more available media. The available medium may be a magnetic medium (such as a floppy disk, a hard disk, a magnetic tape), an optical medium (such as a digital video disc (DVD)), or a semiconductor medium (such as a solid state disk (SSD)), etc.
[0473] Those of ordinary skill in the art can realize that the units and algorithm steps of each example described in combination with the embodiments disclosed herein can be implemented by electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are executed in a hardware or software manner depends on the specific application and design constraints of the technical solution. A professional technician can use different methods to implement the described functions for each specific application, but such implementation should not be considered to exceed the scope of the present application.
[0474] As described above, it is only the specific implementation manner of the present application, but the protection scope of the present application is not limited thereto. Any person skilled in the art within the technical scope disclosed by the present application can easily think of changes or substitutions, which should all be covered within the protection scope of the present application. Therefore, the protection scope of the present application shall be subject to the protection scope of the claims described above.
Claims
1. A method for encoding point clouds, characterized in that, Including: Encoding the positions and sequential numbers of the point cloud points in the point cloud to generate a bitstream of the point cloud, the bitstream of the point cloud including a position bitstream of the point cloud points and a sequential number bitstream of the point cloud points, the sequential number of the point cloud points representing the order of a single point cloud point among all the point cloud points, and the sequential number of the single point cloud point being related to the order of obtaining the single point cloud point; Transmitting the bitstream of the point cloud.
2. The encoding method according to claim 1, wherein The encoding of the positions and sequential numbers of the point cloud points in the point cloud to generate the bitstream of the point cloud includes: After encoding the position of the first leaf node in the tree structure of the point cloud and the number of point cloud points in the first leaf node, encoding the sequential numbers of the point cloud points in the first leaf node to generate the bitstream of the point cloud.
3. The encoding method according to claim 1, wherein The encoding of the positions and sequential numbers of the point cloud points in the point cloud to generate the bitstream of the point cloud includes: After encoding the positions of multiple leaf nodes in the tree structure of the point cloud, encoding the numbers and sequential numbers of the point cloud points in the multiple leaf nodes to generate the bitstream of the point cloud.
4. The encoding method according to claim 3, characterized in that, The encoding of the numbers and sequential numbers of the point cloud points in the multiple leaf nodes includes: After encoding the number of point cloud points in the first leaf node among the multiple leaf nodes, encoding the sequential numbers of the point cloud points in the first leaf node; or, After encoding the numbers of the point cloud points in the multiple leaf nodes, encoding the sequential numbers of the point cloud points in the multiple leaf nodes.
5. The encoding method according to claim 2, wherein The bits corresponding to the number of point cloud points in the first leaf node are adjacent to the bits corresponding to the sequential numbers of the point cloud points in the first leaf node.
6. The encoding method according to claim 1, wherein The encoding of the positions and sequential numbers of the point cloud points in the point cloud to generate the bitstream of the point cloud includes: After encoding the positions of multiple leaf nodes in the tree structure of the point cloud and the numbers of the point cloud points in the multiple leaf nodes, encoding the sequential numbers of the point cloud points in the multiple leaf nodes to generate the bitstream of the point cloud.
7. The encoding method according to claim 6, wherein, The encoding of the positions of multiple leaf nodes in the tree structure of the point cloud and the numbers of the point cloud points in the multiple leaf nodes includes: After encoding the positions of multiple leaf nodes in the tree structure of the point cloud, encoding the numbers of the point cloud points in the multiple leaf nodes.
8. The encoding method according to claim 7, characterized in that, The bits corresponding to the numbers of the point cloud points in the multiple leaf nodes are adjacent to the bits corresponding to the sequential numbers of the point cloud points in the multiple leaf nodes.
9. The encoding method according to claim 6, characterized in that, The encoding of the positions of multiple leaf nodes in the tree structure of the point cloud and the numbers of the point cloud points in the multiple leaf nodes includes: After encoding the position of the first leaf node in the tree structure of the point cloud, encoding the number of point cloud points in the first leaf node.
10. The encoding method according to claim 9, characterized in that, The bits corresponding to the number of point cloud points in the last leaf node among the multiple leaf nodes are adjacent to the bits corresponding to the sequential numbers of the point cloud points in the multiple leaf nodes.
11. The encoding method according to any one of claims 6 to 10, characterized in that The multiple leaf nodes are part or all of the leaf nodes in the point cloud.
12. The encoding method according to any one of claims 6 to 10, characterized in that, The encoding of the sequential numbers of the point cloud points in the multiple leaf nodes includes: Encode the sequence numbers of the point cloud points in the multiple leaf nodes according to the encoding order of the positions of the multiple leaf nodes.
13. The encoding method according to claim 12, characterized in that, If the number of point cloud points in a leaf node among the multiple leaf nodes is multiple, encode the sequence numbers of the point cloud points in the leaf node in ascending or descending order of the sequence numbers.
14. The encoding method according to claim 13, characterized in that, The encoding method further includes: encoding the attributes of the point cloud points in the leaf node in ascending or descending order of the sequence numbers.
15. The encoding method according to claim 1, characterized in that, Encoding the sequence numbers of the point cloud points in the point cloud to generate the bitstream of the point cloud includes: Encoding the attributes and sequence numbers of the point cloud points in the point cloud to generate the bitstream of the point cloud.
16. The encoding method according to claim 15, characterized in that, Encoding the attributes and sequence numbers of the point cloud points in the point cloud includes: After encoding the attributes and sequence numbers of a point cloud point in the point cloud, encoding the attributes and sequence numbers of another point cloud point in the point cloud.
17. The encoding method according to claim 16, wherein, The bits corresponding to the attributes of the first point cloud point in the point cloud are adjacent to the bits corresponding to the sequence number of the first point cloud point.
18. The encoding method according to claim 15, characterized in that, Encoding the attributes and sequence numbers of the point cloud points in the point cloud includes: After encoding the attributes of multiple point cloud points in the point cloud, encoding the sequence numbers of the multiple point cloud points.
19. The encoding method according to claim 18, wherein The multiple point cloud points are some or all of the point cloud points included in the point cloud.
20. The encoding method according to claim 18 or 19, characterized in that, The bits corresponding to the attributes of the multiple point cloud points are adjacent to the bits corresponding to the sequence numbers of the multiple point cloud points.
21. The encoding method according to any one of claims 18 to 19, characterized in that, Encoding the sequence numbers of the multiple point cloud points includes: Encoding the sequence numbers of the multiple point cloud points according to the encoding order of the attributes of the multiple point cloud points.
22. The encoding method according to claim 1, wherein Encoding the sequence numbers of the point cloud points in the point cloud to generate the bitstream of the point cloud includes: Encoding the positions, attributes, and sequence numbers of the point cloud points in the point cloud to generate the bitstream of the point cloud.
23. The encoding method according to claim 22, characterized in that, Encoding the positions and attributes of the point cloud points in the point cloud includes: After encoding the position of the first leaf node in the tree structure of the point cloud and the number of point cloud points in the first leaf node, encoding the attributes of the point cloud points in the first leaf node.
24. The encoding method according to claim 23, wherein Encoding the sequence numbers of the point cloud points in the point cloud includes: Before or after encoding the attributes of the point cloud points in the first leaf node in the tree structure of the point cloud, encoding the sequence numbers of the point cloud points in the first leaf node.
25. The encoding method according to claim 24, wherein The bits corresponding to the number of point cloud points in the first leaf node are adjacent to the bits corresponding to the attributes of the point cloud points in the first leaf node, and the bits corresponding to the attributes of the point cloud points in the first leaf node are adjacent to the bits corresponding to the sequence numbers of the point cloud points in the first leaf node; Or, the bits corresponding to the number of point cloud points in the first leaf node are adjacent to the bits corresponding to the sequence numbers of the point cloud points in the first leaf node, and the bits corresponding to the sequence numbers of the point cloud points in the first leaf node are adjacent to the bits corresponding to the attributes of the point cloud points in the first leaf node.
26. The encoding method according to claim 23, wherein Encoding the sequence numbers of the point cloud points in the point cloud includes: After encoding the positions and attributes of the point cloud points in multiple leaf nodes of the tree structure of the point cloud, encode the sequential numbers of the point cloud points in the multiple leaf nodes.
27. The encoding method according to claim 22, characterized in that, The encoding of the positions and attributes of the point cloud points in the point cloud includes: After encoding the position of the first leaf node in the tree structure of the point cloud and the number of point cloud points in the first leaf node, encode the sequential numbers of the point cloud points in the first leaf node; After encoding the positions and sequential numbers of the point cloud points in multiple leaf nodes of the tree structure of the point cloud, encode the sequential numbers of the point cloud points in the multiple leaf nodes.
28. The encoding method according to claim 1, wherein The encoding method further includes: Obtain the original data of the point cloud points in the point cloud; The encoding of the sequential numbers of the point cloud points to generate the bitstream of the point cloud includes: Encode the positions of the point cloud points in the point cloud to obtain the bits corresponding to the positions; Encode the attributes of the point cloud points in the point cloud to obtain the bits corresponding to the attributes; Encode the sequential numbers of the point cloud points in the point cloud to obtain the bits corresponding to the sequential numbers; Generate the bitstream of the point cloud according to the bits corresponding to the positions, the bits corresponding to the attributes, and the bits corresponding to the sequential numbers.
29. The encoding method according to any one of claims 1 to 10, 13 to 19, and 22 to 28, characterized in that, The encoding of the sequential numbers of the point cloud points includes: Perform binarization and entropy encoding on the sequential numbers of the point cloud points, where the entropy encoding is equiprobable binary entropy encoding or context-based binary entropy encoding, and the binarization is fixed-length code binarization or variable-length code binarization.
30. The encoding method according to any one of claims 1 to 10, 13 to 19, 22 to 28, characterized in that, The encoding of the sequential numbers of the point cloud points includes: Perform entropy encoding on the sequential numbers of the point cloud points, where the entropy encoding is equiprobable multi - entropy encoding or context-based multi - entropy encoding.
31. The encoding method according to any one of claims 1 to 10, 13 to 19, and 22 to 28, characterized in that The encoding of the sequential numbers of the point cloud points includes: Encode the difference in the sequential numbers of the point cloud points in the point cloud; Among them, the difference in the sequential number of the first point cloud point in the point cloud is the sequential number value, and the difference in the sequential number of a point cloud point other than the first point cloud point in the point cloud is the difference between the sequential number of the point cloud point and the sequential number of its previous point cloud point.
32. The encoding method according to claim 31, characterized in that, The encoding of the difference in the sequential numbers of the point cloud points includes: Encode the sign flag bit, and the sign flag bit is used to identify whether the difference in the sequential numbers of the point cloud points in the point cloud is positive or negative; Encode the absolute value of the difference in the sequential numbers of the point cloud points in the point cloud.
33. The encoding method according to claim 32, wherein The encoding of the difference in the sequential numbers of the point cloud points includes: If the difference in the sequential number of the first point cloud point in the point cloud is a positive value A, encode 2×A - 1; or, If the difference in the sequential number of the second point cloud point in the point cloud is a negative value B, encode -2×B.
34. The encoding method according to any one of claims 32 to 33, characterized in that, The encoding of the difference in the sequential numbers of the point cloud points includes: Perform binarization and entropy encoding on the difference in the sequential numbers of the point cloud points, where the entropy encoding is equiprobable binary entropy encoding or context-based binary entropy encoding, and the binarization is fixed-length code binarization or variable-length code binarization.
35. The encoding method according to any one of claims 32 to 33, characterized in that, Encoding the sequential numbers of the point cloud points includes: Performing entropy encoding on the differences of the sequential numbers of the point cloud points in the point cloud, where the entropy encoding is equiprobable multi - variable entropy encoding or context - based multi - variable entropy encoding.
36. The encoding method according to any one of claims 14 to 19, 22 to 28, and 32 to 33, characterized in that Encoding the attributes of the point cloud points in the point cloud includes: Binarizing and performing entropy encoding on the attributes of the point cloud points in the point cloud, where the entropy encoding is equiprobable binary entropy encoding or context - based binary entropy encoding, and the binarization is fixed - length code binarization or variable - length code binarization.
37. The encoding method according to any one of claims 1 to 10, 13 to 19, 22 to 28, 32 to 33, characterized in that The sequential numbers of the point cloud points in the point cloud represent the time sequence, acquisition sequence, or scanning sequence of the point cloud points.
38. The encoding method according to any one of claims 1 to 10, 13 to 19, 22 to 28, 32 to 33, characterized in that, The encoding method further includes: Allocating sequential numbers to the point cloud points in the point cloud according to the time sequence, acquisition sequence, or scanning sequence of the point cloud points.
39. The encoding method according to any one of claims 1 to 10, 13 to 19, 22 to 28, 32 to 33, characterized in that, The point cloud points in the point cloud are the point cloud points obtained by the point cloud scanning device using a non - repetitive scanning method.
40. The encoding method according to claim 39, characterized in that, The light emission direction of the point cloud scanning device changes over time in the three dimensions of X, Y, and Z.
41. The encoding method according to claim 40, characterized in that, In the point cloud, the angular change between two adjacent point cloud points with sequential numbers is greater than the angular change between two adjacent point cloud points with sequential numbers obtained by the repetitive scanning method.
42. A decoding method for point cloud, characterized in that, It includes: Obtaining the bitstream of the point cloud, where the bitstream of the point cloud includes the position bitstream of the point cloud points and the sequential number bitstream of the point cloud points; Decoding the position bitstream of the point cloud points and the sequential number bitstream of the point cloud points to obtain the positions and sequential numbers of the point cloud points in the point cloud. The sequential number of the point cloud point represents the order of the single point cloud point among all point cloud points, and the sequential number of the single point cloud point is related to the order of obtaining the single point cloud point.
43. The decoding method according to claim 42, characterized in that, In the bitstream of the point cloud, after the position bitstream of the first leaf node in the tree structure of the point cloud and the quantity bitstream of the point cloud points in the first leaf node, the sequential number bitstream of the point cloud points in the first leaf node is arranged.
44. The decoding method according to claim 42, characterized in that, In the bitstream of the point cloud, after the position bitstreams of multiple leaf nodes in the tree structure of the point cloud, the quantity bitstreams and sequential number bitstreams of the point cloud points in the multiple leaf nodes are arranged.
45. The decoding method according to claim 44, characterized in that, In the quantity bitstreams and sequential number bitstreams of the point cloud points in the multiple leaf nodes, after the quantity bitstream of the point cloud points in the first leaf node among the multiple leaf nodes, the sequential number bitstream of the point cloud points in the first leaf node is arranged; or, After the quantity bitstreams of the point cloud points in the multiple leaf nodes, the sequential number bitstreams of the point cloud points in the multiple leaf nodes are arranged.
46. The decoding method according to claim 43, characterized in that, The quantity bitstream of the point cloud points in the first leaf node is adjacent to the sequential number bitstream of the point cloud points in the first leaf node.
47. The decoding method according to claim 42, wherein, In the bitstream of the point cloud, after the position bitstreams of multiple leaf nodes in the tree structure of the point cloud and the quantity bitstreams of the point cloud points in the multiple leaf nodes, the sequential number bitstreams of the point cloud points in the multiple leaf nodes are arranged.
48. The decoding method according to claim 46, wherein After the position bitstreams of multiple leaf nodes in the tree structure of the point cloud, the quantity bitstreams of the point cloud points in the multiple leaf nodes are arranged.
49. The decoding method according to claim 48, wherein, The quantity bitstreams of the point cloud points in the multiple leaf nodes are adjacent to the sequential number bitstreams of the point cloud points in the multiple leaf nodes.
50. The decoding method according to claim 47, characterized in that, After the position code stream of the first leaf node in the tree structure of the point cloud, there is arranged the quantity code stream of the point cloud points in the first leaf node.
51. The decoding method according to claim 50, characterized in that, The quantity code stream of the point cloud points in the last leaf node among the multiple leaf nodes is adjacent to the sequence number code stream of the point cloud points among the multiple leaf nodes.
52. The decoding method according to any one of claims 47 to 51, characterized in that, The multiple leaf nodes are all the leaf nodes in the point cloud.
53. The decoding method according to any one of claims 47 to 51, characterized in that, The arrangement order of the multiple leaf node blocks in the quantity code stream of the point cloud points among the multiple leaf nodes is the same as the arrangement order of the multiple leaf node blocks in the sequence number code stream of the point cloud points among the multiple leaf nodes.
54. The decoding method according to claim 53, characterized in that, If the quantity of the point cloud points in one leaf node among the multiple leaf nodes is multiple, in the sequence number code stream of the point cloud points in the one leaf node, the point cloud points are arranged in ascending or descending order of the sequence number.
55. The decoding method according to claim 54, wherein, The code stream of the point cloud further includes: the attribute code stream of the point cloud points in the one leaf node; In the attribute code stream of the point cloud points in the one leaf node, the point cloud points are arranged in ascending or descending order of the sequence number.
56. The decoding method according to claim 42, wherein, The code stream of the point cloud includes the attribute code stream of the point cloud points and the sequence number code stream of the point cloud points; The decoding of the sequence number code stream of the point cloud points to obtain the sequence numbers of the point cloud points in the point cloud includes: The decoding of the attribute code stream of the point cloud points and the sequence number code stream of the point cloud points to obtain the attributes and sequence numbers of the point cloud points in the point cloud.
57. The decoding method according to claim 56, characterized in that, In the code stream of the point cloud, after the attribute code stream and the sequence number code stream of one point cloud point in the point cloud, there is arranged the attribute code stream and the sequence number code stream of another point cloud point in the point cloud.
58. The decoding method according to claim 57, characterized in that, The attribute code stream of the first point cloud point in the point cloud is adjacent to the sequence number code stream of the first point cloud point.
59. The decoding method according to claim 56, characterized in that, After the attribute code streams of multiple point cloud points in the point cloud, there is arranged the sequence number code stream of the multiple point cloud points.
60. The decoding method according to claim 59, characterized in that, The multiple point cloud points are all the point cloud points included in the point cloud.
61. The decoding method according to claim 59 or 60, characterized in that, The attribute code streams of the multiple point cloud points are adjacent to the sequence number code streams of the multiple point cloud points.
62. The decoding method according to any one of claims 59 to 60, characterized in that, The arrangement order of the multiple point cloud points in the sequence number stream of the multiple point cloud points is the same as the arrangement order of the multiple point cloud points in the attribute code stream of the multiple point cloud points.
63. The decoding method according to claim 42, characterized in that, The code stream of the point cloud includes the position code stream of the point cloud points, the attribute code stream of the point cloud points, and the sequence number code stream of the point cloud points; The decoding of the position code stream of the point cloud points and the sequence number code stream of the point cloud points to obtain the position and sequence number of the point cloud points in the point cloud includes: The decoding of the position code stream of the point cloud points, the attribute code stream of the point cloud points, and the sequence number code stream of the point cloud points to obtain the position, attribute, and sequence number of the point cloud points in the point cloud.
64. The decoding method according to claim 63, characterized in that, In the code stream of the point cloud, after the position code stream of the first leaf node in the tree structure of the point cloud and the quantity code stream of the point cloud points in the first leaf node, there is arranged the attribute code stream of the point cloud points in the first leaf node.
65. The decoding method according to claim 64, wherein Before or after the attribute code stream of the point cloud points in the first leaf node in the tree structure of the point cloud, there is arranged the sequence number code stream of the point cloud points in the first leaf node.
66. The decoding method according to claim 65, characterized in that, The number bitstream of the point cloud points in the first leaf node is adjacent to the attribute bitstream of the point cloud points in the first leaf node, and the attribute bitstream of the point cloud points in the first leaf node is adjacent to the sequence number bitstream of the point cloud points in the first leaf node; Alternatively, the number bitstream of the point cloud points in the first leaf node is adjacent to the sequence number bitstream of the point cloud points in the first leaf node, and the sequence number bitstream of the point cloud points in the first leaf node is adjacent to the attribute bitstream of the point cloud points in the first leaf node.
67. The decoding method according to claim 64, wherein After the position bitstream and the attribute bitstream of the point cloud points in multiple leaf nodes in the tree structure of the point cloud, the sequence number bitstream of the point cloud points in the multiple leaf nodes is arranged.
68. The decoding method according to claim 63, wherein In the bitstream of the point cloud, after the position bitstream of the first leaf node in the tree structure of the point cloud and the number bitstream of the point cloud points in the first leaf node, the sequence number bitstream of the point cloud points in the first leaf node is arranged; After the position bitstream and the sequence number bitstream of the point cloud points in multiple leaf nodes in the tree structure of the point cloud, the sequence number bitstream of the point cloud points in the multiple leaf nodes is arranged.
69. The decoding method according to any one of claims 42 to 50, 54 to 60, and 63 to 68, characterized in that, The decoding method further includes: Sorting the point cloud points in ascending order according to the sequence numbers of the point cloud points in the point cloud to obtain the sorted point cloud data.
70. The decoding method according to any one of claims 42 to 50, 54 to 60, and 63 to 68, characterized in that, The decoding of the sequence number bitstream of the point cloud points includes: Performing inverse binarization and entropy decoding on the sequence number bitstream of the point cloud points in the bitstream, where the entropy decoding is equiprobable binary entropy decoding or context-based binary entropy decoding, and the inverse binarization is fixed-length code inverse binarization or variable-length code inverse binarization.
71. The decoding method according to any one of claims 42 to 50, 54 to 60, 63 to 68, characterized in that, The decoding of the sequence number bitstream of the point cloud points includes: Performing entropy decoding on the sequence number bitstream of the point cloud points in the bitstream, where the entropy decoding is equiprobable multi - ary entropy decoding or context-based multi - ary entropy decoding.
72. The decoding method according to any one of claims 42 to 50, 54 to 60, and 63 to 68, characterized in that, The decoding of the sequence number bitstream of the point cloud points includes: Decoding the sequence number difference bitstream of the point cloud points in the bitstream, where the sequence number difference of the first point cloud point in the point cloud is the sequence number value, and the sequence number difference of a point cloud point other than the first point cloud point in the point cloud is the difference between the sequence number of the point cloud point and the sequence number of its previous point cloud point.
73. The decoding method according to claim 72, wherein, The decoding of the sequence number difference bitstream of the point cloud points in the bitstream includes: Decoding the sequence number difference bitstream of the point cloud points to obtain a sign flag bit and the absolute value of the sequence number difference of the point cloud points, where the sign flag bit is used to identify whether the sequence number difference of the point cloud points is positive or negative.
74. The decoding method according to claim 72, wherein, The decoding of the sequence number difference bitstream of the point cloud points in the bitstream includes: Decoding the sequence number difference bitstream of the first point cloud point to obtain an odd value A', so as to obtain the sequence number difference of the first point cloud point as a positive value (A' + 1) / 2, or, Decoding the sequence number difference bitstream of the second point cloud point to obtain an even value B', so as to obtain the sequence number difference of the second point cloud point as a negative value -B' / 2.
75. The decoding method according to any one of claims 73 to 74, characterized in that, Decoding the sequence number difference bitstream of the point cloud points in the bitstream includes: Inverse binarizing and entropy decoding the sequence number difference of the point cloud points, where the entropy decoding is equiprobable binary entropy decoding or context-based binary entropy decoding, and the inverse binarizing is fixed-length code inverse binarizing or variable-length code inverse binarizing.
76. The decoding method according to any one of claims 73 to 74, characterized in that, Decoding the sequence number difference bitstream of the point cloud points in the bitstream includes: Entropy decoding the sequence number difference of the point cloud points, where the entropy decoding is equiprobable multi - ary entropy decoding or context-based multi - ary entropy decoding.
77. The decoding method according to any one of claims 55 to 60, 63 to 68, and 73 to 74, characterized in that, Decoding the position bitstream of the point cloud points and the sequence number bitstream of the point cloud points includes: Inverse binarizing and entropy decoding the attribute bitstream of the point cloud points in the bitstream, where the entropy decoding is equiprobable binary entropy decoding or context-based binary entropy decoding, and the inverse binarizing is fixed-length code inverse binarizing or variable-length code inverse binarizing.
78. The decoding method according to any one of claims 42 to 50, 54 to 60, 63 to 68, 73 to 74, characterized in that, The sequence number of the point cloud points in the point cloud represents the time sequence, acquisition sequence or scanning sequence of the point cloud points.
79. The decoding method according to any one of claims 42 to 50, 54 to 60, 63 to 68, 73 to 74, characterized in that, The point cloud points in the point cloud are the point cloud points obtained by the point cloud scanning device using a non - repetitive scanning method.
80. The decoding method according to claim 79, characterized in that, The light emission direction of the point cloud scanning device changes in the three XYZ dimensions over time.
81. The decoding method according to claim 80, characterized in that, In the point cloud, the angular change between two adjacent point cloud points with adjacent sequence numbers is greater than the angular change between two adjacent point cloud points with adjacent sequence numbers obtained by a repetitive scanning method.
82. An encoding device for point clouds, characterized in that, Including a processor, the processor is used to execute: Encoding the position and sequence number of the point cloud points in the point cloud to generate the bitstream of the point cloud, the bitstream of the point cloud includes the position bitstream of the point cloud points and the sequence number bitstream of the point cloud points, the sequence number of the point cloud points represents the order of a single point cloud point among all point cloud points, and the sequence number of the single point cloud point is related to the order of obtaining the single point cloud point; Sending the bitstream of the point cloud.
83. The encoding device according to claim 82, wherein The processor is used to: After encoding the position of the first leaf node in the tree structure of the point cloud and the number of point cloud points in the first leaf node, encoding the sequence number of the point cloud points in the first leaf node to generate the bitstream of the point cloud.
84. The encoding device according to claim 82, characterized in that, The processor is used to: After encoding the positions of multiple leaf nodes in the tree structure of the point cloud, encoding the number and sequence number of the point cloud points in the multiple leaf nodes to generate the bitstream of the point cloud.
85. The encoding device according to claim 84, characterized in that, The processor is used to: After encoding the number of point cloud points in the first leaf node among the multiple leaf nodes, encoding the sequence number of the point cloud points in the first leaf node; Or, After encoding the number of point cloud points in the multiple leaf nodes, encoding the sequence number of the point cloud points in the multiple leaf nodes.
86. The encoding device according to claim 83, wherein The bits corresponding to the number of point cloud points in the first leaf node are adjacent to the bits corresponding to the sequence number of the point cloud points in the first leaf node.
87. The encoding device according to claim 82, characterized in that, The processor is used to: After encoding the positions of multiple leaf nodes in the tree structure of the point cloud and the number of point cloud points in the multiple leaf nodes, encode the sequential numbers of the point cloud points in the multiple leaf nodes to generate a bitstream of the point cloud.
88. The encoding device according to claim 87, wherein The processor is configured to: after encoding the positions of multiple leaf nodes in the tree structure of the point cloud, encode the number of point cloud points in the multiple leaf nodes.
89. The encoding device according to claim 88, wherein The bits corresponding to the number of point cloud points in the multiple leaf nodes are adjacent to the bits corresponding to the sequential numbers of the point cloud points in the multiple leaf nodes.
90. The encoding device according to claim 87, characterized in that, The processor is configured to: after encoding the position of a first leaf node in the tree structure of the point cloud, encode the number of point cloud points in the first leaf node.
91. The encoding device according to claim 90, wherein The bits corresponding to the number of point cloud points in the last leaf node among the multiple leaf nodes are adjacent to the bits corresponding to the sequential numbers of the point cloud points in the multiple leaf nodes.
92. The encoding device according to any one of claims 87 to 91, characterized in that, The multiple leaf nodes are some or all of the leaf nodes in the point cloud.
93. The encoding device according to any one of claims 87 to 91, characterized in that, The processor is configured to: Encode the sequential numbers of the point cloud points in the multiple leaf nodes in the encoding order of the positions of the multiple leaf nodes.
94. The encoding device according to claim 93, characterized in that, If the number of point cloud points in a leaf node among the multiple leaf nodes is multiple, the processor is configured to: Encode the sequential numbers of the point cloud points in the one leaf node in ascending or descending order of the sequential numbers.
95. The encoding device according to claim 94, characterized in that, The processor is further configured to: encode the attributes of the point cloud points in the one leaf node in ascending or descending order of the sequential numbers.
96. The encoding device according to claim 82, characterized in that, The processor is configured to: Encode the attributes and sequential numbers of the point cloud points in the point cloud to generate a bitstream of the point cloud.
97. The encoding device according to claim 96, wherein, The processor is configured to: after encoding the attributes and sequential numbers of a point cloud point in the point cloud, encode the attributes and sequential numbers of another point cloud point in the point cloud.
98. The encoding device according to claim 97, characterized in that, The bits corresponding to the attribute of the first point cloud point in the point cloud are adjacent to the bits corresponding to the sequential number of the first point cloud point.
99. The encoding device according to claim 96, wherein The processor is configured to: After encoding the attributes of multiple point cloud points in the point cloud, encode the sequential numbers of the multiple point cloud points.
100. The encoding device according to claim 99, wherein The multiple point cloud points are some or all of the point cloud points included in the point cloud.
101. The encoding device according to claim 99 or 100, characterized in that, The bits corresponding to the attributes of the multiple point cloud points are adjacent to the bits corresponding to the sequential numbers of the multiple point cloud points.
102. The encoding device according to any one of claims 99 to 100, characterized in that, The processor is configured to: Encode the sequential numbers of the multiple point cloud points in the encoding order of the attributes of the multiple point cloud points.
103. The encoding device according to claim 82, characterized in that, The processor is configured to: Encode the positions, attributes, and sequential numbers of the point cloud points in the point cloud to generate a bitstream of the point cloud.
104. The encoding device according to claim 103, wherein The processor is configured to: After encoding the position of a first leaf node in the tree structure of the point cloud and the number of point cloud points in the first leaf node, encode the attributes of the point cloud points in the first leaf node.
105. The encoding device according to claim 104, wherein The processor is configured to: Before or after encoding the attributes of the point cloud points in a first leaf node in the tree structure of the point cloud, encode the sequential numbers of the point cloud points in the first leaf node.
106. The encoding device according to claim 105, characterized in that, Bits corresponding to the number of point cloud points in the first leaf node are adjacent to bits corresponding to the attributes of the point cloud points in the first leaf node, and bits corresponding to the attributes of the point cloud points in the first leaf node are adjacent to bits corresponding to the sequential numbers of the point cloud points in the first leaf node; Alternatively, bits corresponding to the number of point cloud points in the first leaf node are adjacent to bits corresponding to the sequential numbers of the point cloud points in the first leaf node, and bits corresponding to the sequential numbers of the point cloud points in the first leaf node are adjacent to bits corresponding to the attributes of the point cloud points in the first leaf node.
107. The encoding device according to claim 104, characterized in that, The processor is configured to: After encoding the positions and attributes of the point cloud points in multiple leaf nodes in the tree structure of the point cloud, encode the sequential numbers of the point cloud points in the multiple leaf nodes.
108. The encoding device according to claim 103, characterized in that, The processor is configured to: After encoding the position of the first leaf node in the tree structure of the point cloud and the number of point cloud points in the first leaf node, encode the sequential numbers of the point cloud points in the first leaf node; After encoding the positions and sequential numbers of the point cloud points in multiple leaf nodes in the tree structure of the point cloud, encode the sequential numbers of the point cloud points in the multiple leaf nodes.
109. The encoding device according to claim 82, wherein, The processor is further configured to: obtain the original data of the point cloud points in the point cloud; Encode the positions of the point cloud points in the point cloud to obtain bits corresponding to the positions; Encode the attributes of the point cloud points in the point cloud to obtain bits corresponding to the attributes; Encode the sequential numbers of the point cloud points in the point cloud to obtain bits corresponding to the sequential numbers; Generate a bitstream of the point cloud according to the bits corresponding to the positions, the bits corresponding to the attributes, and the bits corresponding to the sequential numbers.
110. The encoding device according to any one of claims 82 to 91, 94 to 100, 103 to 109, characterized in that, The processor is configured to: Binarize and entropy encode the sequential numbers of the point cloud points, where the entropy encoding is equiprobable binary entropy encoding or context-based binary entropy encoding, and the binarization is fixed-length code binarization or variable-length code binarization.
111. The encoding device according to any one of claims 82 to 91, 94 to 100, 103 to 109, characterized in that, The processor is configured to: Entropy encode the sequential numbers of the point cloud points, where the entropy encoding is equiprobable multi - entropy encoding or context-based multi - entropy encoding.
112. The encoding device according to any one of claims 82 to 91, 94 to 100, 103 to 109, characterized in that, The processor is configured to: Encode the difference in sequential numbers of the point cloud points in the point cloud; Wherein, the difference in sequential numbers of the first point cloud point in the point cloud is the sequential number value, and the difference in sequential numbers of a point cloud point other than the first point cloud point in the point cloud is the difference between the sequential number of the point cloud point and the sequential number of its previous point cloud point.
113. The encoding device according to claim 112, characterized in that, The processor is configured to: Encode a sign flag bit, where the sign flag bit is used to identify whether the difference in sequential numbers of the point cloud points in the point cloud is positive or negative; Encode the absolute value of the difference in sequential numbers of the point cloud points in the point cloud.
114. The encoding device according to claim 113, characterized in that, The processor is configured to: If the difference in sequential numbers of the first point cloud point in the point cloud is a positive value A, encode 2×A - 1; or, If the difference in sequential numbers of the second point cloud point in the point cloud is a negative value B, encode -2×B.
115. The encoding device according to any one of claims 113 to 114, characterized in that, The processor is configured to: Perform binary quantization and entropy coding on the difference in the sequential numbers of the point cloud points in the point cloud. The entropy coding is equiprobable binary entropy coding or context-based binary entropy coding. The binary quantization is fixed-length code binary quantization or variable-length code binary quantization.
116. The encoding device according to any one of claims 113 to 114, characterized in that, The processor is configured to: Perform entropy coding on the difference in the sequential numbers of the point cloud points in the point cloud. The entropy coding is equiprobable multi-ary entropy coding or context-based multi-ary entropy coding.
117. The encoding device according to any one of claims 95 to 100, 103 to 109, and 113 to 114, characterized in that, The processor is configured to: Perform binary quantization and entropy coding on the attributes of the point cloud points in the point cloud. The entropy coding is equiprobable binary entropy coding or context-based binary entropy coding. The binary quantization is fixed-length code binary quantization or variable-length code binary quantization.
118. The encoding device according to any one of claims 82 to 91, 94 to 100, 103 to 109, 113 to 114, characterized in that, The sequential number of a point cloud point in the point cloud represents the time sequence, acquisition sequence, or scanning sequence of the point cloud point.
119. The encoding device according to any one of claims 82 to 91, 94 to 100, 103 to 109, 113 to 114, characterized in that, The processor is further configured to: Assign sequential numbers to the point cloud points in the point cloud according to the time sequence, acquisition sequence, or scanning sequence of the point cloud points.
120. The encoding device according to any one of claims 82 to 91, 94 to 100, 103 to 109, 113 to 114, characterized in that, The point cloud points in the point cloud are the point cloud points obtained by the point cloud scanning device using a non-repetitive scanning method.
121. The encoding device according to claim 120, characterized in that, The light emission direction of the point cloud scanning device changes in the three XYZ dimensions over time.
122. The encoding device according to claim 121, characterized in that, In the point cloud, the angular change between two adjacent point cloud points with sequential numbers is greater than the angular change between two adjacent point cloud points with sequential numbers obtained by using a repetitive scanning method.
123. A decoding device for point clouds, characterized in that, Comprising: Comprising a processor, the processor is configured to execute: Obtain the bitstream of the point cloud. The bitstream of the point cloud includes the position bitstream of the point cloud points and the sequential number bitstream of the point cloud points; Decode the position bitstream of the point cloud points and the sequential number bitstream of the point cloud points to obtain the positions and sequential numbers of the point cloud points in the point cloud. The sequential number of a point cloud point represents the order of a single point cloud point among all point cloud points, and the sequential number of the single point cloud point is related to the order of obtaining the single point cloud point.
124. The decoding device according to claim 123, characterized in that, In the bitstream of the point cloud, after the position bitstream of the first leaf node in the tree structure of the point cloud and the quantity bitstream of the point cloud points in the first leaf node, the sequential number bitstream of the point cloud points in the first leaf node is arranged. The decoding device according to claim 123, characterized in that, In the bitstream of the point cloud, after the position bitstreams of multiple leaf nodes in the tree structure of the point cloud, the quantity bitstreams and sequential number bitstreams of the point cloud points in the multiple leaf nodes are arranged.
126. The decoding device according to claim 125, characterized in that, In the quantity bitstreams and sequential number bitstreams of the point cloud points in the multiple leaf nodes, after the quantity bitstream of the point cloud points in the first leaf node among the multiple leaf nodes, the sequential number bitstream of the point cloud points in the first leaf node is arranged; or, After the quantity bitstreams of the point cloud points in the multiple leaf nodes, the sequential number bitstreams of the point cloud points in the multiple leaf nodes are arranged. The decoding device according to claim 124, wherein The quantity bitstream of the point cloud points in the first leaf node is adjacent to the sequential number bitstream of the point cloud points in the first leaf node. The decoding device according to claim 123, wherein, In the bitstream of the point cloud, after the position bitstreams of multiple leaf nodes in the tree structure of the point cloud and the quantity bitstreams of the point cloud points in the multiple leaf nodes, the sequential number bitstreams of the point cloud points in the multiple leaf nodes are arranged.
129. The decoding device according to claim 127, wherein, After the position bitstreams of multiple leaf nodes in the tree structure of the point cloud, the quantity bitstream of the point cloud points in the multiple leaf nodes is arranged. The decoding device according to claim 129, characterized in that, The quantity bitstream of the point cloud points in the multiple leaf nodes is adjacent to the sequence number bitstream of the point cloud points in the multiple leaf nodes.
131. The decoding device according to claim 128, wherein, After the position bitstream of the first leaf node in the tree structure of the point cloud, the quantity bitstream of the point cloud points in the first leaf node is arranged.
132. The decoding device according to claim 131, wherein The quantity bitstream of the point cloud points in the last leaf node among the multiple leaf nodes is adjacent to the sequence number bitstream of the point cloud points in the multiple leaf nodes.
133. The decoding device according to any one of claims 128 to 132, characterized in that, The multiple leaf nodes are all the leaf nodes in the point cloud.
134. The decoding device according to any one of claims 128 to 132, characterized in that, The arrangement order of multiple leaf node blocks in the quantity bitstream of the point cloud points in the multiple leaf nodes is the same as the arrangement order of multiple leaf node blocks in the sequence number bitstream of the point cloud points in the multiple leaf nodes. The decoding device according to claim 134, wherein If the quantity of point cloud points in one leaf node among the multiple leaf nodes is multiple, in the sequence number bitstream of the point cloud points in the one leaf node, the point cloud points are arranged in ascending or descending order of the sequence number. The decoding device according to claim 135, characterized in that, The bitstream of the point cloud further includes: the attribute bitstream of the point cloud points in the one leaf node; In the attribute bitstream of the point cloud points in the one leaf node, the point cloud points are arranged in ascending or descending order of the sequence number.
137. The decoding device according to claim 123, characterized in that, The bitstream of the point cloud includes the attribute bitstream of the point cloud points and the sequence number bitstream of the point cloud points; The processor is configured to: decode the attribute bitstream of the point cloud points and the sequence number bitstream of the point cloud points to obtain the attributes and sequence numbers of the point cloud points in the point cloud.
138. The decoding device according to claim 137, wherein, In the bitstream of the point cloud, after the attribute bitstream and the sequence number bitstream of one point cloud point in the point cloud, the attribute bitstream and the sequence number bitstream of another point cloud point in the point cloud are arranged.
139. The decoding device according to claim 138, characterized in that, The attribute bitstream of the first point cloud point in the point cloud is adjacent to the sequence number bitstream of the first point cloud point. The decoding device according to claim 137, characterized in that, After the attribute bitstreams of multiple point cloud points in the point cloud, the sequence number bitstreams of the multiple point cloud points are arranged.
141. The decoding device according to claim 140, characterized in that, The multiple point cloud points are all the point cloud points included in the point cloud.
142. The decoding device according to claim 140 or 141, characterized in that, The attribute bitstreams of the multiple point cloud points are adjacent to the sequence number bitstreams of the multiple point cloud points.
143. The decoding device according to any one of claims 140 to 141, characterized in that, The arrangement order of the multiple point cloud points in the sequence number bitstreams of the multiple point cloud points is the same as the arrangement order of the multiple point cloud points in the attribute bitstreams of the multiple point cloud points.
144. The decoding device according to claim 123, wherein, The bitstream of the point cloud includes the position bitstream of the point cloud points, the attribute bitstream of the point cloud points, and the sequence number bitstream of the point cloud points; The processor is configured to: decode the position bitstream of the point cloud points, the attribute bitstream of the point cloud points, and the sequence number bitstream of the point cloud points to obtain the positions, attributes, and sequence numbers of the point cloud points in the point cloud.
145. The decoding device according to claim 144, characterized in that, In the bitstream of the point cloud, after the position bitstream of the first leaf node in the tree structure of the point cloud and the quantity bitstream of the point cloud points in the first leaf node, the attribute bitstream of the point cloud points in the first leaf node is arranged.
146. The decoding device according to claim 145, characterized in that, Before or after the attribute bitstream of the point cloud points in the first leaf node in the tree structure of the point cloud, the sequence number bitstream of the point cloud points in the first leaf node is arranged.
147. The decoding device according to claim 146, wherein The bitstream of the number of point cloud points in the first leaf node is adjacent to the bitstream of the attributes of the point cloud points in the first leaf node, and the bitstream of the attributes of the point cloud points in the first leaf node is adjacent to the bitstream of the sequential numbers of the point cloud points in the first leaf node; Alternatively, the bitstream of the number of point cloud points in the first leaf node is adjacent to the bitstream of the sequential numbers of the point cloud points in the first leaf node, and the bitstream of the sequential numbers of the point cloud points in the first leaf node is adjacent to the bitstream of the attributes of the point cloud points in the first leaf node. The decoding device according to claim 145, characterized in that, After the bitstreams of the positions and attributes of the point cloud points in multiple leaf nodes in the tree structure of the point cloud, the bitstream of the sequential numbers of the point cloud points in the multiple leaf nodes is arranged. The decoding device according to claim 144, characterized in that, In the bitstream of the point cloud, after the position bitstream of the first leaf node in the tree structure of the point cloud and the bitstream of the number of point cloud points in the first leaf node, the bitstream of the sequential numbers of the point cloud points in the first leaf node is arranged; After the bitstreams of the positions and sequential numbers of the point cloud points in multiple leaf nodes in the tree structure of the point cloud, the bitstream of the sequential numbers of the point cloud points in the multiple leaf nodes is arranged. The decoding device according to any one of claims 123 to 132, 135 to 141, and 145 to 149, characterized in that, The processor is further configured to: Sort the point cloud points in ascending order according to the sequential numbers of the point cloud points in the point cloud to obtain the sorted point cloud data.
151. The decoding device according to any one of claims 123 to 132, 135 to 141, and 145 to 149, characterized in that, The processor is configured to: Perform inverse binary conversion and entropy decoding on the bitstream of the sequential numbers of the point cloud points in the bitstream, where the entropy decoding is equiprobable binary entropy decoding or context-based binary entropy decoding, and the inverse binary conversion is fixed-length code inverse binary conversion or variable-length code inverse binary conversion. The decoding device according to any one of claims 123 to 132, 135 to 141, and 145 to 149, characterized in that, The processor is configured to: Perform entropy decoding on the bitstream of the sequential numbers of the point cloud points in the bitstream, where the entropy decoding is equiprobable multi - entropy decoding or context-based multi - entropy decoding.
153. The decoding device according to any one of claims 123 to 132, 135 to 141, and 145 to 149, characterized in that, The processor is configured to: Decode the bitstream of the sequential number differences of the point cloud points in the bitstream, where the sequential number difference of the first point cloud point in the point cloud is the sequential number value, and the sequential number difference of a point cloud point other than the first point cloud point in the point cloud is the difference between the sequential number of the point cloud point and the sequential number of its previous point cloud point.
154. The decoding device according to claim 153, characterized in that, The processor is configured to: Decode the bitstream of the serial number differences of the point cloud points to obtain a sign flag bit and the absolute value of the serial number difference of the point cloud points, where the sign flag bit is used to identify whether the serial number difference of the point cloud points is positive or negative. The decoding device according to claim 153, wherein The processor is configured to: Decode the bitstream of the serial number differences of the first point cloud point to obtain an odd value A', so as to obtain that the serial number difference of the first point cloud point is a positive value (A' + 1) / 2, or Decode the bitstream of the serial number differences of the second point cloud point to obtain an even value B', so as to obtain that the serial number difference of the second point cloud point is a negative value -B' / 2. The decoding device according to any one of claims 154 to 155, characterized in that, The processor is configured to: Perform inverse binary conversion and entropy decoding on the sequential number differences of the point cloud points, where the entropy decoding is equiprobable binary entropy decoding or context-based binary entropy decoding, and the inverse binary conversion is fixed-length code inverse binary conversion or variable-length code inverse binary conversion. The decoding device according to any one of claims 154 to 155, characterized in that, The processor is configured to: Entropy decode the difference in the sequential numbers of the point cloud points, where the entropy decoding is equiprobable multi - variable entropy decoding or context - based multi - variable entropy decoding.
158. The decoding device according to any one of claims 136 to 141, 145 to 149, and 154 to 155, characterized in that, The processor is configured to: Inverse binarize and entropy decode the attribute bitstream of the point cloud points in the bitstream, where the entropy decoding is equiprobable binary entropy decoding or context - based binary entropy decoding, and the inverse binarization is fixed - length code inverse binarization or variable - length code inverse binarization. The decoding device according to any one of claims 123 to 132, 135 to 141, 145 to 149, 154 to 155, characterized in that, The sequential number of a point cloud point in the point cloud represents the temporal order, acquisition order, or scanning order of the point cloud point.
160. The decoding device according to any one of claims 123 to 132, 135 to 141, 145 to 149, 154 to 155, characterized in that, The point cloud points in the point cloud are point cloud points obtained by a point cloud scanning device using a non - repetitive scanning method.
161. The decoding device according to claim 160, wherein The light emission direction of the point cloud scanning device changes in three dimensions of X, Y, and Z over time.
162. The decoding device according to claim 161, characterized in that, In the point cloud, the angular change between two adjacent point cloud points with sequential numbers is greater than the angular change between two adjacent point cloud points with sequential numbers obtained by a repetitive scanning method.
163. A system for decoding and encoding point clouds, characterized in that, Comprising an encoding device for a point cloud according to any one of claims 82 to 122, a decoding device for a point cloud according to any one of claims 123 to 162, and a point cloud scanning device according to any one of claims 160 to 161.
164. According to the system of claim 163, the point cloud scanning device is a lidar, and the scanning method of the lidar is a non - repetitive scanning method.
165. A computer-readable storage medium, characterized in that, For storing program instructions, when the program instructions are run by a computer, the computer executes the encoding method according to any one of claims 1 to 41.
166. A computer-readable storage medium, characterized in that, For storing program instructions, when the program instructions are run by a computer, the computer executes the decoding method according to any one of claims 42 to 81.
Citation Information
Patent Citations
Coding method, decoding method, coding device and decoding device for three-dimensional grid data
CN104243958A
Method and apparatus for processing three-dimensional data point set
CN111247802A
A point cloud encoding method, a point cloud decoding method, and related devices
CN111699683A