WO2021248339A1 - Procédé et appareil de codage/décodage de nuage de points - Google Patents
Procédé et appareil de codage/décodage de nuage de points Download PDFInfo
- Publication number
- WO2021248339A1 WO2021248339A1 PCT/CN2020/095239 CN2020095239W WO2021248339A1 WO 2021248339 A1 WO2021248339 A1 WO 2021248339A1 CN 2020095239 W CN2020095239 W CN 2020095239W WO 2021248339 A1 WO2021248339 A1 WO 2021248339A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- point cloud
- code stream
- points
- point
- cloud points
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/597—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/10—Processing, recording or transmission of stereoscopic or multi-view image signals
- H04N13/106—Processing image signals
- H04N13/161—Encoding, multiplexing or demultiplexing different image signal components
Definitions
- This application relates to the field of point cloud technology, and more specifically, to a point cloud coding and decoding method and device.
- Point cloud (or three-dimensional point cloud) is a form of expression of three-dimensional objects or scenes. It is composed of a set of discrete points that are randomly distributed in space and express the spatial structure and surface properties of three-dimensional objects or three-dimensional scenes. Most point clouds are generated by 3D scanning equipment, such as photoelectric radar, lidar, stereo camera, etc. Due to the novel data structure of point clouds, point clouds have become one of the common data sources in many fields such as photogrammetry, remote sensing, computer vision, and machine learning.
- the present application provides a point cloud coding and decoding method and device, which can improve the performance of point cloud coding and decoding compared with the prior art.
- a point cloud encoding method which includes: encoding the sequential number 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.
- a method for decoding a point cloud including: obtaining a code stream of the point cloud; decoding the code stream of the point cloud to obtain the sequential number of the point cloud points in the point cloud.
- a point cloud encoding device which includes a processor configured to execute the point cloud encoding method in the above first aspect.
- a point cloud decoding device which includes a processor configured to execute the point cloud decoding method in the above second aspect.
- a computer storage medium is provided with a computer program stored thereon, and when the computer program is executed by a computer, the computer executes the method provided in the first aspect or the second aspect.
- a system which includes the point cloud encoding device in the first aspect, the point cloud decoding device in the second aspect, and the point cloud scanning device.
- the information of the sequence number of the point cloud points in the point cloud is encoded and decoded, and the sequence information of the original point cloud data is retained when the point cloud is encoded, so that the original sequence information can be restored during decoding.
- the point cloud data enables the decoded point cloud data to be applied to more scenarios, and also makes 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 coding and decoding and the versatility of point cloud data.
- Fig. 1 shows a schematic diagram of a point cloud data encoding process provided by the present application.
- Figure 2 is a schematic diagram of an initialization space for point cloud coding.
- Fig. 3 is a schematic diagram of a point cloud data decoding process according to an embodiment of the present application.
- Fig. 4 is a schematic flowchart of a point cloud processing method according to an embodiment of the present application.
- Fig. 5, Fig. 7, Fig. 10, Fig. 12, Fig. 14, Fig. 16, Fig. 18, Fig. 20, Fig. 22, Fig. 24, and Fig. 26 are schematic diagrams of various point cloud coding methods according to embodiments of the present application Flow chart.
- Fig. 6, Fig. 9, Fig. 11, Fig. 13, Fig. 15, Fig. 17, Fig. 19, Fig. 21, Fig. 23, Fig. 25 and Fig. 27 are schematic flow diagrams of various point cloud decoding methods according to embodiments of the present application block diagram.
- Fig. 8 is a tree structure diagram of a point cloud according to an embodiment of the present application.
- Fig. 28 is a schematic structural diagram of a point cloud scanning device according to an embodiment of the present application.
- FIG. 29 is a schematic diagram of a scanning pattern of the point cloud scanning device in FIG. 28.
- Fig. 30 is a schematic block diagram of a point cloud encoding device according to an embodiment of the present application.
- Fig. 31 is a schematic block diagram of a point cloud decoding device according to an embodiment of the present application.
- the embodiments of this application can be applied to standard or non-standard point cloud codecs.
- a digital audio and video coding standard (AVS) encoder For example, a digital audio and video coding standard (AVS) encoder.
- AVS digital audio and video coding standard
- the size of the sequence number of each process does not mean the order of execution.
- the execution order of each process should be determined by its function and internal logic, and should not correspond to the difference in the embodiments of the present application.
- the implementation process constitutes any limitation.
- a point cloud is a collection of discrete points that express the spatial distribution of the target and the characteristics of the target surface in the same spatial reference coordinate system. That is, after obtaining the spatial coordinates of each sampling point on the surface of the object, the collection of sampling points obtained is called a point Cloud (Point Cloud).
- Point Cloud point Cloud
- a large number of discrete points are usually required to characterize the objects in the three-dimensional space.
- the discrete points in the point cloud are referred to as point cloud points.
- Fig. 1 shows a schematic diagram of a point cloud data encoding process provided by the present application.
- Point cloud data usually includes location information and attribute information of multiple point cloud points in the point cloud.
- the position coordinates of the point cloud point can be used to describe the position of the point cloud point in the three-dimensional space.
- the attribute information of the point cloud point may include, for example, the color information of the point cloud point, and may also include other information such as the reflectivity of the point cloud point.
- the point cloud data can be encoded to compress the data volume of the point cloud.
- the coding of the position information of the point cloud and the coding of the attribute information are usually carried out separately.
- the position information coding method of the point cloud point includes:
- Coordinate translation and quantification translate and quantify the position coordinates of multiple point cloud points in the point cloud.
- 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.
- duplicate coordinates can be removed. It is also possible to directly perform octree encoding on the quantized point cloud point position coordinates without de-duplication.
- Multitree division In this step, the multitree division can be understood as any one or more of division methods among octree division, quadtree division, and binary tree division.
- an octree division method is adopted to encode the position information of the point cloud points, and this process may also be referred to as octree encoding.
- the complete octree division process includes multi-level octree division, where each level of octree division uses the coordinates of the center point of the current block for sub-block division, and the current block is divided into eight small blocks through the center point Sub-blocks of the same volume.
- the position coordinates of the point cloud points may be the position coordinates of the point cloud points after geometric quantification and/or removal of duplicate coordinates
- three directional dimensions x, y, z
- the initialization space to be divided can be determined according to the selected quantization values.
- the initialization space is then divided into multiple layers of octrees.
- Each layer of octree division can use the position coordinates of the center point of the current block to divide the space, and divide the current block into eight sub-blocks of equal volume through the center point.
- Fig. 2 shows the division result obtained after the initial division of the initialization space. It can be seen from Fig. 2 that the initialization space is evenly divided into 8 sub-blocks of equal volume.
- the initialization space is the root node block, and these sub-blocks are the child node blocks of the root node, which are called the first-level child node blocks.
- the child node block at this time is called the leaf node block of the current octree.
- the threshold may be 1, for example.
- the encoding can be performed layer by layer according to the breadth first search (BFS) of the octree.
- BFS breadth first search
- the division result of each octree can be coded layer by layer, that is, it is judged whether the eight sub-blocks obtained after the current sub-block is divided into the octree contain point cloud points. If a certain sub-block of the block contains point cloud points, the sub-block is further divided, otherwise the division is stopped.
- the last layer can be a layer with a sub-block side length of 1
- the bottom of the octree is reached, that is, the leaf node of the octree is reached, and no further division is required .
- a quad-tree division method, a binary tree division method, or a multi-tree division method in which several division methods are mixed may also be used to encode the position information of the point cloud point.
- the multiple sub-blocks after the multi-tree division can be coded layer by layer according to the breadth-first coding order.
- the sub-block adopts the quadtree division method only 4 bits (bits) need to be encoded for its encoding, which saves 4 bits compared with the octree division; if the binary tree division method is used for encoding, only 2 bits need to be encoded , Which saves 6 bits than the octree partition.
- the skipped bits can be guessed as 0 at the decoding end.
- a depth-first search (DFS) encoding method may also be used to encode the position of the point cloud point Go ahead and encode.
- the initialization space of the point cloud is divided by a multi-branch tree division method, and after the tree structure of the point cloud is formed, when the first block in the tree structure is coded, if the point cloud point in the first block is If the distribution and/or quantity meet the preset conditions, the depth-first traversal sequence encoding method is adopted 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.
- the second block is coded, and the second block is located after the first block in the breadth-first traversal coding sequence. If the second block also meets the preset conditions, the depth-first traversal sequence coding method is also adopted to encode the position coordinates of the point cloud points in the second block. If the second block does not meet the preset condition, then according to the breadth-first traversal coding mode, the division result of the next layer is coded. In this way, the tree structure is coded until it reaches the leaf node level of the tree structure.
- Entropy coding Entropy coding the code stream after octree coding to obtain the geometric code stream of the point cloud, that is, the code stream of the position information of multiple point clouds in the point cloud.
- the synchronization will compress and encode the corresponding attribute values in the order of the position coordinates after the reconstruction of the multi-tree.
- the attribute information encoding method of the point cloud point includes:
- This step is an optional step, that is, the process of converting the color attribute of the point cloud point from RGB space to the YUV space. Specifically, the color attribute of the point cloud point can be spatially transformed through a conversion formula.
- Attribute interpolation When the geometric information of the point cloud point (the number of points in the point cloud or the relative position of the point to the point) has changed, for example, the operation of removing duplicate points in the position information encoding is required to perform attribute interpolation. That is, the process of recoloring.
- recoloring is to calculate a new attribute value for each point in the reconstructed point cloud, so that the reconstructed point cloud and the original point cloud The attribute error is the smallest.
- the realization process is as follows:
- Step 2 For each point in the reconstructed point cloud Find the closest point in the original point cloud Assume The attribute value of is A i * .
- Step 4 Reconstruct each point in the point cloud Calculate the reconstruction attribute value, if U(i) is empty, then directly assign A i * as the reconstruction attribute value to If U(i) is not empty, then reconstruct the attribute value of the point U(i) to the attribute average of all points, the calculation formula is as follows:
- Morton code reordering method can be used to predict the point cloud point attributes. Firstly, the point cloud is reordered based on Morton code to generate the point cloud sequence 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 lookup table. The process is as follows:
- Step 1 Traverse the geometry to reconstruct the point cloud to obtain the geometric coordinates x, y, and z corresponding to the current point.
- Step 2 Find the Morton table according to the geometric coordinates to calculate the Morton code corresponding to the current point.
- Step 3 Reorder the point cloud based on Morton code.
- the sorted attribute values are predicted by the previous term difference, and the attribute residuals are obtained according to the predicted value and the original value. Then quantify the attribute residuals. Entropy coding the quantized coefficient value can get the attribute code stream.
- Fig. 3 shows a schematic diagram of a decoding process provided by the present application.
- Entropy decoding After obtaining the input geometric code stream and attribute code stream, the decoding end uses the entropy decoding method corresponding to the entropy coding method of the encoding end to decode the code stream bit by bit.
- the initialization space of the point cloud can be determined by the information after entropy decoding (the size of the initialization space can be written into the code stream by the encoder, and the decoder can obtain it from the code stream. ), and then divide the initialization space into a multi-tree.
- the decoding end uses the same space division method as the encoding end to divide the initialization space.
- the position coordinate data of the point cloud point to be inversely quantized is obtained through multiple sub-node blocks in the divided multi-tree and their corresponding binary bit streams.
- Inverse quantization is the inverse process of quantization at the encoding end.
- the position coordinate data to be inversely quantized after the reconstruction of the multi-branch tree is inversely quantized to obtain the quantized coordinates in the encoding end.
- the attribute code stream is subjected to entropy decoding and inverse quantization to obtain the attribute prediction residual value.
- Attribute reconstruction Specifically, if the attribute prediction residual is obtained after inverse quantization, The current point attribute reconstruction value is The attribute reconstruction value of the previous point is The attribute reconstruction value of the current point
- the reconstructed point cloud output by the encoding end is obtained.
- Inverse space transformation Corresponding to the space transformation at the encoding end, this step is also optional. If the attribute value after attribute reconstruction is the attribute value in the YUV space, the inverse space transformation is performed on it to obtain the attribute value in the RGB space.
- the point cloud data can be obtained by combining the position information obtained by the above decoding and the corresponding attribute information.
- SLAM simultaneous localization and mapping
- mobile platforms such as unmanned aerial vehicles, cars, remote-controlled vehicles, robots, etc.
- SLAM simultaneous localization and mapping
- this application proposes a point cloud processing method, which can improve the performance of point cloud coding and decoding and its versatility. Specifically, on the basis of coding and decoding the position coordinates and attribute information of the point cloud points, add The coding and decoding of the order information of the point cloud points, so as to retain more information of the original point cloud data, so that the point cloud data can be applied to more scenarios, and the calculation results based on the point cloud data are more effective in more scenarios. precise.
- FIG. 4 to FIG. 27 may be executed by an encoding device or a decoding device.
- FIG. 4 shows a schematic flowchart of a point cloud processing method 10.
- the point cloud processing method 10 may include the following steps.
- S12 Encoding or decoding the sequential number of the point cloud points in the point cloud.
- the processing method 10 may be a point cloud encoding method 100.
- the encoding method 100 may include the following steps.
- S110 Encode the sequential number of the point cloud points in the point cloud to form a code stream of the point cloud.
- S120 Send the code stream of the point cloud.
- a point cloud point scanning device such as a lidar device, emits laser light on the surface of an environmental object to scan the object.
- a measurement point on the surface of the object reflects the laser signal.
- the optical signal is received by the lidar device to obtain 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. This information is also called the raw data of the point cloud point.
- the point cloud scanning device does not acquire multiple point cloud points at the same time, but sequentially acquires environmental objects in chronological order
- Multiple point cloud points corresponding to multiple measurement points on the surface form a data packet of a point cloud composed of multiple point cloud points.
- the sequence number of the point cloud points in the embodiment of the present application can be in chronological order, acquisition order or scan The sequence number of the point cloud point obtained sequentially.
- a sequence number may be assigned to multiple point cloud points in the point cloud data packet according to the time sequence, collection sequence, or scanning sequence of the point cloud points.
- the obtained point cloud data packet includes a total of N point cloud points, and the sequence numbers of the N point cloud points are assigned as 0 to N-1 in chronological order, and the sequence numbers 0 to N-1 are performed Encoding, where N is a positive integer. Encoding the sequence numbers of the N point clouds can form a part of the point cloud code stream.
- the processing method 10 may be a point cloud decoding method 200.
- the decoding method 200 may include the following steps.
- S220 Decode the code stream of the point cloud to obtain the sequence number of the point cloud points in the point cloud.
- the code stream of the point cloud corresponds to the code stream obtained by encoding by the above-mentioned encoding method
- the sequence number of the point cloud points in the point cloud obtained by the decoding corresponds to the point cloud in the original point cloud point data of the above-mentioned encoding method
- the sequence number of the point, the sequence number of the original point cloud point is obtained according to the decoding, and the original point cloud can be better restored.
- the point cloud points are sorted in ascending order to obtain the sorted point cloud data, and the original point cloud is restored according to the sorted point cloud data.
- the coding and decoding process of sequentially numbering the point cloud points can be understood as a newly added coding and decoding process.
- the order 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 coding, and the decoded point cloud data is improved in the subsequent application process , Such as the accuracy and versatility in the SLAM algorithm.
- the multiple implementation manners can be understood as the implementation manner of step S110 or S220 described above.
- the sequential number of the point cloud point is encoded or decoded.
- the encoding and decoding method for the position of the point cloud point may refer to the above-mentioned multi-tree encoding and decoding method using breadth-first traversal order, or the multi-tree encoding and decoding method using depth-first traversal order, as implemented in this application
- the example does not specifically limit the coding and decoding method of the position coordinates of the specific point cloud point.
- the process of encoding and decoding the positions of multiple point cloud points can be a process of encoding and decoding the tree structure of the point cloud, whether it is a multi-tree encoding and decoding method with a breadth-first traversal order, or a depth
- the multi-tree encoding and decoding methods with priority traversal order require encoding and decoding to the leaf nodes of the tree structure to complete the encoding and decoding of the tree structure.
- the number of point cloud points and sequence numbers in the leaf node can be encoded, and then the position of the next leaf node can be encoded, and then the next leaf node
- the number of point cloud points and the sequence number are encoded until the position of all the leaf nodes in the tree structure, the number of point cloud points and the sequence number are encoded.
- Fig. 7 shows a schematic flow chart of a point cloud coding method 101.
- the encoding method 101 may include the following steps.
- 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 the first leaf node, encode the sequential number of the point cloud points in the second leaf node.
- the first leaf node may be any leaf node that includes point cloud points in the tree structure of the point cloud.
- the second leaf node is the one that includes point cloud points after the first leaf point.
- the embodiment of the present application does not specifically limit the specific positions of the first leaf node and the second leaf node.
- the number of point cloud points in a leaf node is X
- the number X can be encoded as X-1
- the sequence numbers of the X point cloud points in the leaf node are encoded, if one of them
- the sequence number of the point cloud point is Y, then it can be coded as Y-1.
- the position of the point cloud point in the point cloud may be coded in a breadth-first traversal sequence coding manner.
- Fig. 8 shows a tree structure diagram of a point cloud. If the breadth-first traversal sequence encoding method is used to encode the tree structure of the point cloud in Figure 8, the position encoding of the point cloud point in the point cloud is 11 0010 1000 01(N 1 )01(N 2 )0000 1(N 3 )001(N 4 )01(N 5 )00, where N 1 to N 5 are the number of point cloud points in the leaf node 1# to the leaf node 5#, respectively.
- the sequence number of the point cloud points is coded, and the position and sequence number of the point cloud points in the point cloud are coded as 11 0010 1000 01(N 1 S 1 )01(N 2 S 2 ) 0000 1(N 3 S 3 )001(N 4 S 4 )01(N 5 S 5 )00, where S 1 to S 5 are the sequential numbers of the point cloud points in the leaf node 1# to the leaf node 5#, respectively.
- the position of the point cloud point in the point cloud can also be coded in a depth-first traversal sequence coding manner.
- the coding mode of leaf node 3# to leaf node 5# below node 2# can refer to the above-mentioned breadth-first coding mode.
- the bit corresponding to the position of the first leaf node is adjacent to the bit corresponding to the number of point cloud points in the first leaf node, and the first leaf node
- the bit corresponding to the number of 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.
- FIG. 9 shows a schematic flowchart of a point cloud decoding method 201.
- the decoding method 201 may include the following steps.
- S2011 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, encode the order of the point cloud points in the first leaf node The number stream is decoded.
- the sequential number code stream of the point cloud points in the first leaf node is arranged .
- the number code stream of the point cloud points in the first leaf node is adjacent to the sequential number code stream of the point cloud points in the first leaf node, and the number code stream of the point cloud points in the second leaf node is the same as the number code stream of the point cloud points in the second leaf node.
- the sequential number code streams of the point cloud points in the two leaf nodes are adjacent.
- the numbered code stream is decoded to obtain the sequential number of the point cloud point in the first leaf node.
- the decoding method 201 is the inverse process of the above-mentioned encoding method 101, and the related solutions can be referred to the above description, which will not be repeated here.
- the number and sequence numbers of the point cloud points in the multiple leaf node blocks may be encoded according to the encoding sequence of the positions of the multiple leaf nodes.
- Fig. 10 shows a schematic flow chart of a point cloud coding method 102.
- the encoding method 102 may include the following steps.
- S1021 Encode the positions of multiple leaf nodes in the tree structure of the point cloud.
- S1022 Encode the number and sequence number of the point cloud points in the first leaf node.
- S1023 Encode the number and sequence number of the point cloud points in the second leaf node.
- the first leaf node may be any leaf node that includes point cloud points in the tree structure of the point cloud.
- the second leaf node is the one that includes point cloud points after the first leaf point.
- the embodiment of the present application does not specifically limit the specific positions of the first leaf node and the second leaf node.
- the position of the point cloud point in the point cloud may be coded in a breadth-first traversal sequence coding manner.
- the position and sequence number of the point cloud points in the point cloud are encoded as 11 0010 1000 01010000 10010100 N 1 S 1 N 2 S 2 N 3 S 3 N 4 S 4 N 5 S 5 , where N 1 to N 5 are the number of point cloud points in leaf node 1# to leaf node 5#, and S 1 to S 5 are leaf node 1 respectively # ⁇ Node5# The sequential number of the point cloud point.
- the position of the point cloud point in the point cloud can also be coded in a depth-first traversal sequence coding manner.
- the coding method of the leaf node 3# to the leaf node 5# below the node 2# can refer to the breadth-first coding method mentioned above.
- the K leaf nodes can be encoded after encoding the K leaf nodes.
- the number of point cloud points in the leaf node and the sequential number, and then the position of other leaf nodes in the subtree are coded, and after the position coding is completed, the number of point cloud points in the other leaf node and the sequential number are coded.
- the leaf node 1# to leaf node 5# in accordance with the coding order of the position of the leaf node
- the number and sequence number of the point cloud points specifically, the sequence number of the point cloud points in the leaf node 1# can be coded after the number of the point cloud points in the leaf node 1#, and then the leaf node 2# midpoint cloud points can be coded The number and the sequence number of the point cloud point in the leaf node 2#.
- an identifier indicating whether or not point cloud points are included in each leaf node can be added, so that the number of point cloud points in the leaf node can be corresponding to the leaf node during decoding. middle.
- the bit corresponding to the position of the first leaf node and the code bit corresponding to the number of point cloud points in the first leaf node may not be adjacent, but the first The coded bit corresponding to the number of point cloud points in the leaf node is adjacent to the bit corresponding to the sequential number of the point cloud points in the first leaf node.
- the code stream of the position and sequence number of the point cloud points in the point cloud can be expressed as: P 1 ...P i ...P n ...N 1 S 1 ...N i S i ...N n S n , where, P i represents the i th position bit corresponding to the leaf nodes, i N i denotes the number of leaf nodes corresponding to the midpoint of the cloud point bits, S i represents the order number of bits corresponding to the midpoint of the i-th point cloud leaf node, It is understandable that if point cloud points are included in the i-th leaf node, the number and sequence number of the point cloud points are coded, and if point cloud points are not included in the i-th leaf node, the point cloud point calculation is not performed.
- FIG. 11 shows a schematic flowchart of a point cloud decoding method 202.
- the decoding method 202 may include the following steps.
- S2021 Decode the position code streams of multiple leaf nodes in the tree structure of the point cloud.
- S2022 Decode the number code stream and the sequential number code stream of the point cloud points in the first leaf node.
- S2023 Decode the number code stream and the sequential number code stream of the point cloud points in the second leaf node.
- the number code stream and the sequential number code stream of the point cloud points in the multiple leaf nodes are arranged.
- the point cloud in the first leaf node is arranged after the number code stream of the point cloud points in the first leaf node
- the point sequence number code stream, after the number code stream of the point cloud points in the second leaf node, the sequence number code stream of the point cloud points in the second leaf node is arranged.
- the point cloud points in the multiple leaf nodes are arranged The sequence number code stream.
- the number of point cloud points in the multiple leaf nodes is the number of point cloud points in the multiple leaf nodes.
- the sequence of multiple leaf node blocks in the code stream is same.
- decoding method 202 is the inverse process of the encoding method 102 described above, and the related solutions can be referred to the above description, and will not be repeated here.
- the sequential number of the point cloud point in the point cloud is coded and decoded.
- the number of point cloud points in the multiple leaf nodes may be encoded, and then the sequential numbers of the point cloud points in the multiple leaf nodes may be encoded.
- the number of point cloud points in the multiple leaf nodes and the sequential number of the point cloud points in the multiple leaf node blocks can be coded according to the coding sequence of the positions of the multiple leaf nodes.
- FIG. 12 shows a schematic flowchart of a point cloud encoding method 103.
- the encoding method 103 may include the following steps.
- S1031 Encode the positions of multiple leaf nodes in the tree structure of the point cloud.
- S1032 Encode the number of multiple point cloud points in multiple leaf nodes.
- S1032 Encode the sequential numbers of the multiple point cloud points in the multiple leaf nodes.
- the above-mentioned multiple leaf nodes may be part or all of the leaf nodes in the point cloud. That is, after encoding the position of the part or all of the leaf nodes in the tree structure of the point cloud, the number of point cloud points in the part or all of the leaf nodes is encoded, and then the number of point cloud points in the part or all of the leaf nodes is encoded. The sequence number of the point cloud point is coded.
- the breadth-first traversal order encoding method or the depth-first traversal order encoding method is adopted to encode the tree structure of the point cloud, and then, according to the encoding order of the leaf nodes, the point cloud in each leaf node including the point cloud points The number of points is coded, and then the sequential number of the point cloud points in each leaf node including the point cloud points is coded.
- the position and sequence number of the point cloud points in the point cloud are encoded as 11 0010 1000 01010000 10010 100 N 1 N 2 N 3 N 4 N 5 S 1 S 2 S 3 S 4 S 5 , where N 1 to N 5 are the number of point cloud points in leaf node 1# to leaf node 5#, and S 1 to S 5 are leaf node 1# to leaf node 5#, respectively The sequential number of points in the point cloud.
- the leaf node 1 in the subtree with node 1# as the root node can be selected. After encoding the position of # ⁇ Node2#, code the number of point cloud points in leaf node 1# and leaf node 2#, and then code the sequential number of point cloud points in leaf node 1# and leaf node 2#, node 2#.
- the following encoding methods of leaf node 3# to leaf node 5# can refer to the above-mentioned breadth-first encoding method.
- the K leaf nodes can be encoded after encoding the K leaf nodes.
- the number of point cloud points in the leaf node and then encode the sequential number of the point cloud points in the K leaf nodes, and then encode the position of other leaf nodes in the subtree. After the position encoding is completed, encode the number of point cloud points in the other leaf nodes and The sequential number of point cloud points in other leaf nodes.
- encoding the leaf node 1# to leaf node 5# in accordance with the coding order of the position of the leaf node The number of point cloud points, and then encode the sequential number of the point cloud points from leaf node 1# to leaf node 5#.
- an identifier indicating whether or not point cloud points are included in each leaf node can be added, so that the number of point cloud points in the leaf node can be corresponding to the leaf node during decoding. middle.
- 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.
- the bit stream of the position and sequence number of the point cloud points in the point cloud can be expressed as: P 1 ...P i ...P n N 1 ...N i ...N n S 1 ...S i ...S n , where , P i represents the i-th position of the coded bits of leaf nodes, i N i denotes the number of leaf nodes corresponding to the midpoint of the cloud point bits, S i represents the order number of bits corresponding to the midpoint of the i-th point cloud leaf node, It is understandable that if point cloud points are included in the i-th leaf node, the number and sequence number of the point cloud points are coded, and if point cloud points are not included in the i-th leaf node, the point cloud point calculation is not performed.
- FIG. 13 shows a schematic flowchart of a point cloud decoding method 203.
- the decoding method 203 may include the following steps.
- S2031 Decode the position code streams of multiple leaf nodes in the tree structure of the point cloud.
- S2032 Decode the quantity code stream of the multiple point cloud points in the multiple leaf nodes.
- S2032 Decode the sequential number code stream of the multiple point cloud points in the multiple leaf nodes.
- the quantity code stream of the point cloud points in the multiple leaf nodes is arranged, and the quantity code of the point cloud points in the multiple leaf nodes is arranged
- the stream may be adjacent to the sequentially numbered code stream of the point cloud points in the plurality of leaf nodes.
- decoding method 203 is the inverse process of the encoding method 103 described above, and the related solutions can be referred to the above description, and will not be repeated here.
- the positions of multiple leaf nodes and the number of point cloud points in the multiple leaf node blocks after encoding the positions of multiple leaf nodes and the number of point cloud points in the multiple leaf node blocks, according to the coding order of the positions of the multiple leaf nodes, perform the coding of the point clouds in the multiple leaf node blocks.
- the sequence number of the point is coded.
- FIG. 14 shows a schematic flowchart of a point cloud encoding method 104.
- the encoding method 104 may include the following steps.
- S1042 After encoding the position of the second leaf node in the tree structure of the point cloud, encode the number of point cloud points in the second leaf node.
- S1043 Encode the sequential numbers of the point cloud points in the multiple leaf nodes.
- the breadth-first traversal order encoding method or the depth-first traversal order encoding method is adopted to encode the tree structure of the point cloud and the number of point cloud points in the leaf nodes, and then, according to the encoding order of the leaf nodes, each The sequential number of the point cloud point in the leaf node including the point cloud point is coded.
- the position of the node in the tree structure and the number of point cloud points are encoded as 11 0010 1000 01(N 1 )01(N 2 )0000 1(N 3 )001(N 4 )01(N 5 )00, and then code the sequence numbers of the point cloud points in leaf node 1# to leaf node 5# in sequence, then the point cloud code is 11 0010 1000 01(N 1 ) 01(N 2 )0000 1(N 3 )001(N 4 )01(N 5 )00(S 1 )(S 2 )(S 3 )(S 4 )(S 5 ), where N 1 to N 5 are respectively Is the number of point cloud points in leaf node 1# to leaf node 5#, and S 1 to S 5 are the sequential numbers of the point cloud points in leaf node 1# to leaf node 5#, respectively.
- the bit corresponding to the number of point cloud points in the last leaf node among the multiple leaf nodes corresponds to the sequential number of the point cloud points in the multiple leaf nodes
- the bits are adjacent.
- the code stream of the position and sequence number of the point cloud points in the point cloud can be expressed as: P 1 N 1 ...P i N i ...P n N n ...S 1 ...S i ...S n , where, P i represents the i-th position of the coded bits of leaf nodes, i N i denotes the number of leaf nodes corresponding to the midpoint of the cloud point bits, S i represents the order number of bits corresponding to the midpoint of the i-th point cloud leaf node, can It is understood that if point cloud points are included in the i-th leaf node, the number and sequence number of the point cloud points are encoded, and if the point cloud points are not included in the i-th leaf node, the number of point cloud points is not executed And the coding process of sequential numbering, where 1 ⁇ i ⁇ n, and n is the number of leaf nodes in the tree structure.
- FIG. 15 shows a schematic flowchart of a point cloud decoding method 204.
- the decoding method 204 may include the following steps.
- S2042 After decoding the position code stream of the second leaf node in the tree structure of the point cloud, decode the number code stream of the point cloud points in the second leaf node.
- S2043 Decode the sequential number code stream of the point cloud points in the multiple leaf nodes.
- the number code stream of the point cloud points in the first leaf node is arranged.
- the number code stream of the second leaf node is arranged.
- the number code stream of the point cloud points in the second leaf node is arranged.
- the number code stream of the last leaf node in the tree structure is arranged.
- the sequential number code stream of the point cloud points in the multiple leaf nodes is arranged.
- the number code stream of the point cloud points in the last leaf node is adjacent to the sequential number code stream of the point cloud points in the multiple leaf nodes.
- the number of point cloud points in the multiple leaf nodes is the number of point cloud points in the multiple leaf nodes.
- the sequence of multiple leaf node blocks in the code stream is same.
- decoding method 204 is the inverse process of the encoding method 104 described above, and the related solutions can be referred to the above description, and will not be repeated here.
- the encoding and decoding methods of the above four embodiments only include: encoding and decoding the positions and sequential numbers of the point cloud points in the point cloud.
- the encoding and decoding methods may also include the encoding and decoding of the point cloud points in the point cloud.
- the encoding and decoding of the attributes of the point cloud, and the specific encoding and decoding methods of the attributes of the point cloud points can refer to the related description in FIG. 1 above, or encoding methods of other attributes may also be used, which are not specifically limited in the embodiment of the present application.
- the sequence number is the sequence number of the multiple point cloud points, and the sequence number of the point cloud points in the same leaf node can be compared according to the target order.
- the sequential numbers of multiple point cloud points are coded, and when the attributes of multiple point cloud points in the same leaf node are subsequently coded, the attributes of multiple point cloud points are also coded in the target sequence.
- the above-mentioned target order may be ascending order numbering, or descending order, or any other order, which is not limited in the embodiment of the present application.
- the point cloud points in a leaf node of multiple leaf nodes are multiple, in the sequential numbering code stream of the point cloud points in the leaf node, the point cloud points are numbered in sequence Arrange from small to large, or from large to small. And in the attribute code stream of the point cloud points in the one leaf node, the point cloud points are also arranged in order from small to large, or from large to small.
- the sequential number of the point cloud points can also be encoded and decoded.
- the quantized position coordinates of point cloud points do not perform the deduplication step, and in the process of encoding the attributes of the point cloud, neither Perform the recoloring steps. That is to look up the Morton table directly according to the geometric coordinates of the point cloud points to obtain the Morton code corresponding to each point cloud point, and reorder the point clouds based on the Morton code, and then encode the attribute values of the sorted point cloud .
- the attributes and sequence numbers of one point cloud point are coded.
- FIG. 16 shows a schematic flowchart of a point cloud encoding method 105.
- the encoding method 105 may include the following steps.
- S1051 Encode the attribute and sequence number of the first point cloud point in the point cloud.
- S1052 Encode the attribute and sequence number of the second point cloud point in the point cloud.
- the second point cloud point is any point cloud point after the first point cloud point.
- the embodiment of the present application compares the first point cloud point and The specific location of the second point cloud point is not limited.
- the bit corresponding to the attribute of the first point cloud point is adjacent to the bit corresponding to the sequence number of the first point cloud point, and the bit corresponding to the attribute of the second point cloud point The bit corresponding to the sequential number of the second point cloud point is adjacent.
- the attribute coding bit can be located before the sequential numbered coding bit.
- the attribute of the point cloud point in the point cloud and the code stream of the sequential number can be expressed as: C 1 S 1 ...C j S j ...C N S N , where C j represents the attribute coding bit of the j-th point cloud point, S j represents the coding bit of the sequential number of the j-th point cloud point, 1 ⁇ j ⁇ N, and N is the point cloud point in the point cloud quantity.
- the coded bits of the sequential number can be located before the attribute coded bits.
- the attribute of the point cloud point in the point cloud and the code stream of the sequential number can be expressed as: S 1 C 1 ...S j C j ...S N C N.
- FIG. 17 shows a schematic flowchart of a point cloud decoding method 205.
- the decoding method 205 may include the following steps.
- S2051 Decode the attribute code stream and the sequential number code stream of the first point cloud point.
- S2052 Decode the attribute code stream and the sequential number code stream of the second point cloud point.
- the attribute code stream and sequential number code stream of one point cloud point in the point cloud are arranged.
- the attribute code stream and the sequential number code stream of the first point cloud point are arranged.
- the attribute code stream of the first point cloud point is adjacent to the sequential number code stream of the first point cloud point.
- the attribute code stream of the second point cloud point is adjacent to the sequential number code stream of the second point cloud point.
- decoding method 205 is the inverse process of the encoding method 105 described above, and the related solutions can be referred to the above description, and will not be repeated here.
- FIG. 18 shows a schematic flowchart of a point cloud encoding method 106.
- the encoding method 106 may include the following steps.
- S1061 Encode attributes of multiple point cloud points in the point cloud.
- S1062 Encode the sequential numbers of multiple point cloud points in the point cloud.
- the sequential numbers of the multiple point cloud points are coded.
- the attributes of the multiple point cloud points are encoded.
- the total number of sequence numbers may be equal to the total number of attributes.
- sequence numbers of the multiple point cloud points are coded according to the coding sequence of the attributes of the multiple point cloud points.
- the attributes of the multiple point cloud points are coded according to the coding sequence of the sequential number of the multiple point cloud points.
- the aforementioned multiple point cloud points may be part or all of the point cloud points in 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.
- the code stream of the attributes and sequence numbers of the point cloud points can be expressed as: C 1 ...C j ...C N S 1 ...S j ...S N , or S 1 ...S j ...S N C 1 ...C j ...C N where C j represents the attribute code bit of the j-th point cloud point, S j represents the code bit of the sequential number of the j-th point cloud point, 1 ⁇ j ⁇ N, and N is the point The number of point cloud points in the cloud.
- FIG. 19 shows a schematic flowchart of a point cloud decoding method 206.
- the decoding method 206 may include the following steps.
- S2062 Decode the sequential number code stream of the multiple point cloud points.
- the sequential number code streams of the multiple point cloud points are arranged.
- the attribute code stream of the multiple point cloud points is adjacent to the sequential number code stream of the multiple point cloud points.
- the arrangement order of the multiple point cloud points in the sequential 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.
- decoding method 206 is the inverse process of the encoding method 106 described above, and the relevant solutions can be referred to the above description, and will not be repeated here.
- the encoding and decoding methods of Embodiment 5 and Embodiment 6 above only include: encoding and decoding the attributes and sequential numbers of the point cloud points in the point cloud.
- the encoding method may also include the encoding and decoding of the point cloud points in the point cloud.
- the coding and decoding of the position of the cloud point, and the specific coding and decoding method of the position of the point cloud can be referred to the related description in Figure 1 and Figure 3 above, and coding and decoding methods of other positions can also be used, which is not done in the embodiment of this application. Specific restrictions.
- sequence number of the point cloud points can also be integrated into the coding and decoding process of the position and attributes of the point cloud points.
- FIG. 20 shows a schematic flowchart of a point cloud encoding method 107.
- the encoding method 107 may include the following steps.
- S1072 Encode the attribute of the point cloud point in the first leaf node.
- S1074 Encode the attribute of the point cloud point in the second leaf node.
- the first leaf node may be any leaf node that includes point cloud points in the tree structure of the point cloud.
- the second leaf node is the one that includes point cloud points after the first leaf point.
- the embodiment of the present application does not specifically limit the specific positions of the first leaf node and the second leaf node.
- the position coding of all leaf nodes in the tree structure of the point cloud and the number and sequence number of the point cloud points can be completed to complete the coding, so as to complete the coding of all the point cloud points in the point cloud to generate the code stream of the point cloud.
- step S1071 and step S1073 reference may be made to the related description of step S1011 and step S1012 in FIG. 7, which will not be repeated here.
- the attributes of the point cloud points in the first leaf node may be encoded.
- the attributes of the point cloud points in the second leaf node may be encoded. After the sequential numbers of the point cloud points are coded, the attributes of the point cloud points in the second leaf node are coded.
- the sequence number of the point cloud point in the first leaf node may be encoded.
- the sequence number of the point cloud point in the first leaf node may be encoded.
- the sequential number of the point cloud point in the second leaf node is coded.
- the code stream of the point cloud can be expressed as 11 0010 1000 01(N 1 S 1 C 1 )01(N 2 S 2 C 2 )0000 1(N 3 S 3 C 3 )001(N 4 S 4 C 4 )01(N 5 S 5 C 5 )00, or , 11 0010 1000 01(N 1 C 1 S 1 )01(N 2 C 2 S 2 )0000 1(N 3 C 3 S 3 )001(N 4 C 4 S 4 )01(N 5 C 5 S 5 ) 00, where N 1 to N 5 are the number of point cloud points in leaf node 1# to leaf node 5#, S 1 to S 5 are the order of point cloud points in leaf node 1# to leaf node 5#, respectively Number, C 1 to C 5 are the attributes of the point cloud points in leaf node 1# to
- the bit corresponding to the number of point cloud points in the first leaf node is adjacent to the bit corresponding to the attribute of the point cloud point in the first leaf node, and
- the bit corresponding to the attribute of the point cloud point in the first leaf node is adjacent to the bit corresponding to the sequential number of the point cloud point in the first leaf node, or the number of point cloud points in the first leaf node corresponds to
- the bit is adjacent to the bit corresponding to the sequential number of the point cloud point in the first leaf node, and the bit corresponding to the sequential number of the point cloud point in the first leaf node corresponds to the attribute of the point cloud point in the first leaf node
- the bits are adjacent.
- the code stream of the point cloud can be expressed as: P 1 N 1 S 1 C 1 ??P i N i S i C i ??P n N n S n C n , or P 1 N 1 C 1 S 1 ?? P i N i C i S i —
- P n N n C n S n where, P i represents the i th position bit corresponding to the leaf nodes, N i denotes the i th leaf node midpoint The bit corresponding to the number of cloud points, S i represents the bit corresponding to the sequential number of the point cloud point in the i-th leaf node, and C i represents the bit corresponding to the attribute of the point cloud point in the i-th leaf node. It is understandable 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 number and sequence number of the point cloud points are not executed The encoding process of sum attributes, where 1 ⁇ i ⁇ n, and n is the number of leaf nodes in the tree structure.
- FIG. 21 shows a schematic flowchart of a point cloud decoding method 207.
- the decoding method 207 may include the following steps.
- S2072 Decode the attribute code stream of the point cloud point in the first leaf node.
- S2073 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 first leaf node, encode the order of the point cloud points in the second leaf node The number stream is decoded.
- the attribute code stream of the point cloud points in the first leaf node is arranged; Before or after the attribute code stream of the point cloud points in the leaf node, the sequential number code stream of the point cloud points in the first leaf node is arranged.
- the number code stream of the point cloud points in the first leaf node is the same as
- the attribute code streams of the point cloud points in the first leaf node are adjacent, and the attribute code streams of the point cloud points in the first leaf node are adjacent to the sequential number code streams of the point cloud points in the first leaf node;
- the number code stream of the point cloud points in the first leaf node is the same as The sequential number code stream of the point cloud points in the first leaf node is adjacent, and the sequential number code stream of the point cloud points in the first leaf node is adjacent to the attribute code stream of the point cloud points in the first leaf node.
- decoding method 207 is the inverse process of the encoding method 107 described above, and the relevant solutions can be referred to the above description, and will not be repeated here.
- Fig. 22 shows a schematic flow chart of a point cloud coding method 108.
- the encoding method 108 may include the following steps.
- 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.
- S1083 Encode the sequential numbers of multiple point cloud points in the point cloud.
- the first leaf node may be any leaf node that includes point cloud points in the tree structure of the point cloud.
- the second leaf node is the one that includes point cloud points after the first leaf point.
- the embodiment of the present application does not specifically limit the specific positions of the first leaf node and the second leaf node.
- 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 Put the sequence numbering process of all point cloud points after the position and attribute coding.
- the sequence numbers of the point cloud points in the multiple leaf node blocks may be encoded according to the encoding sequence of the positions of the multiple leaf nodes.
- the code stream of the point cloud can be expressed as 11 0010 1000 01 ( N 1 C 1 )01(N 2 C 2 )0000 1(N 3 C 3 )001(N 4 C 4 )01(N 5 C 5 )00, after the number and attribute coding of point cloud points, continue Encoding the sequence number of the point cloud point, the code stream of the point cloud can be expressed as 11 0010 1000 01(N 1 C 1 )01(N 2 C 2 )0000 1(N 3 C 3 )001(N 4 C 4 )01 (N 5 C 5 )00 S 1 S 2 S 3 S 4 S 5 , where N 1 to N 5 are the number of point cloud points in leaf node 1# to leaf node 5#, and S 1 to S 5 are respectively The sequential numbers of the point cloud points in the leaf node 1# to the leaf node 5
- 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 the same as those in the leaf node.
- the attributes of the point cloud point correspond to the bits adjacent to each other.
- the i-th leaf node includes point cloud points, then the number, sequence number and attributes of the point cloud points are encoded. If point cloud points are not included in the i leaf nodes, the number of point cloud points, sequence numbers, and attribute coding process are not performed, where 1 ⁇ i ⁇ n, and n is the number of leaf nodes in the tree structure.
- FIG. 23 shows a schematic flowchart of a point cloud decoding method 208.
- the decoding method 208 may include the following steps.
- S2083 Decode the sequential number code stream of multiple point cloud points in the point cloud.
- the sequential number code stream of the point cloud points in the multiple leaf nodes is arranged.
- decoding method 208 is the inverse process of the encoding method 108 described above, and the relevant solutions can be referred to the above description, and will not be repeated here.
- FIG. 24 shows a schematic flowchart of a point cloud encoding method 109.
- the encoding method 109 may include the following steps.
- S1093 Encode attributes of multiple point cloud points in the point cloud.
- the first leaf node may be any leaf node that includes point cloud points in the tree structure of the point cloud.
- the second leaf node is the one that includes point cloud points after the first leaf point.
- the embodiment of the present application does not specifically limit the specific positions of the first leaf node and the second leaf node.
- the coding of the sequential numbering of the point cloud points in the leaf nodes is added to complete the position and sequential numbering of the point cloud points.
- the attributes of all the point cloud points are encoded.
- the attributes of the point cloud points in the multiple leaf node blocks may be encoded according to the encoding sequence of the positions of the multiple leaf nodes.
- the code stream of the point cloud can be expressed as 11 0010 1000 01 ( N 1 S 1 )01(N 2 S 2 )0000 1(N 3 S 3 )001(N 4 S 4 )01(N 5 S 5 )00 C 1 C 2 C 3 C 4 C 5 , where N 1 to N 5 is the number of point cloud points in leaf node 1# to leaf node 5#, S 1 to S 5 are the sequential numbers of point cloud points in leaf node 1# to leaf node 5#, C 1 to C 5 are the attributes of the point cloud points in leaf node 1# to leaf node 5#, respectively.
- 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 the same as those in the leaf node.
- the bits corresponding to the sequential numbers of the point cloud points are adjacent.
- the i-th leaf node includes point cloud points, then the number, sequence number and attributes of the point cloud points are encoded. If point cloud points are not included in the i leaf nodes, the number of point cloud points, sequence numbers, and attribute coding process are not performed, where 1 ⁇ i ⁇ n, and n is the number of leaf nodes in the tree structure.
- FIG. 25 shows a schematic flowchart of a point cloud decoding method 209.
- the decoding method 209 may include the following steps.
- S2092 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, encode the order of the point cloud points in the second leaf node The number stream is decoded.
- the attribute code streams of the point cloud points in the multiple leaf nodes are arranged.
- the sequential number code stream of the point cloud points in the first leaf node is arranged; among the multiple leaf nodes After the position code stream and the sequential number code stream of the point cloud point, the attribute code streams of the point cloud points in the multiple leaf nodes are arranged.
- decoding method 209 is the inverse process of the encoding method 109 described above, and the related solutions can be referred to the above description, and will not be repeated here.
- the encoding of the sequential number of the point cloud points may also be an encoding process independent of the position and attribute encoding of the point cloud points.
- FIG. 26 shows a schematic flowchart of a point cloud encoding method 1010.
- the encoding method 1010 may include the following steps.
- S10101 Encode the positions of multiple point cloud points in the point cloud.
- S10102 Encode attributes of multiple point cloud points in the point cloud.
- S10103 Encode the sequential numbers of multiple point cloud points in the point cloud.
- sequence numbers of the multiple point cloud points may be coded according to the coding sequence of the positions of the multiple point cloud points, or according to the coding sequence of the positions of the multiple point cloud points.
- the code stream of the point cloud can be expressed as 11 0010 1000 01(N 1 )01(N 2 )0000 1(N 3 ) 001(N 4 )01(N 5 )00 S 1 S 2 S 3 S 4 S 5 C 1 C 2 C 3 C 4 C 5 , or, 1 0010 1000 01(N 1 )01(N 2 )0000 1( N 3 )001(N 4 )01(N 5 )00 C 1 C 2 C 3 C 4 C 5 S 1 S 2 S 3 S 4 S 5 , where N 1 to N 5 are leaf nodes 1# to leaf nodes, respectively The number of point cloud points in 5#, S 1 to S 5 are the sequential numbers of the point cloud points in leaf node 1# to leaf node 5#, and C 1 to C 5 are leaf node 1# to leaf node 5 respectively # The attributes of the point cloud point.
- the code stream of the point cloud can be expressed as: P 1 N 1 ...P i N i ...P n N n ...S 1 ...S i ...S n C i ...C i ...C n , or P 1 N 1 ...P i N i ...P n N n ...C i ...C i ...C n S 1 ...S i ...S n , where P i represents the bit corresponding to the position of the i-th leaf node, and N i represents the position of the i-th leaf node.
- the bit corresponding to the number of point cloud points in the i leaf node S i represents the bit corresponding to the sequential number of the point cloud point in the i-th leaf node, and C i represents the bit corresponding to the attribute of the point cloud point in the i-th leaf node, It is understandable that if point cloud points are included in the i-th leaf node, then 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 point cloud is not executed The number of points, sequence number and attribute coding process, where 1 ⁇ i ⁇ n, n is the number of leaf nodes in the tree structure.
- FIG. 27 shows a schematic flowchart of a point cloud decoding method 2010.
- the decoding method 2010 may include the following steps.
- S20101 Decode the position code streams of multiple point cloud points.
- S20102 Decode the attribute code streams of multiple point cloud points.
- S20103 Decode the sequential number code stream of multiple point cloud points.
- the decoding method 2010 is the inverse process of the encoding method 1010 described above, and the relevant solutions can be referred to the above description, and will not be repeated here.
- the encoding order may be agreed upon by the encoding and decoding end.
- the encoding end adopts any encoding order in the foregoing embodiments for encoding, and correspondingly, the decoding end adopts the corresponding decoding order for decoding.
- the identifier indicating the coding sequence can also be written into the header information of the point cloud.
- the corresponding The coding sequence identifier 0 is written into the header information of the point cloud, and the decoding end obtains the coding sequence information by decoding the header information of the point cloud, and then uses the corresponding decoding sequence to decode the code stream of the point cloud.
- the embodiment of the present application does not specifically limit the value of the coding sequence identifier and the coding and decoding method.
- the encoding and decoding process for the number of point cloud points is included.
- the decoding method is not specifically limited in this application.
- the number of point cloud points can be coded using binary entropy coding or multiple entropy coding, and correspondingly, the number of point cloud points can be decoded using binary entropy decoding or multiple entropy decoding.
- binary entropy coding can be used to encode the attributes of the point cloud points, and correspondingly, the decoding method of binary entropy decoding can be used to decode the attributes of the point cloud points.
- the binary entropy coding can be equal-probability binary entropy coding, or it can also be context-based binary entropy coding.
- LOD level of detail
- sequence number of the point cloud points in the point cloud it can be known from the above description that the sequence number is used to characterize the sequence of multiple point cloud points, which is related to the number of point cloud points.
- the sequence number value can be directly encoded and decoded.
- the difference of the sequential number values may be coded and decoded to implement the coding and decoding of the sequential number values of multiple point cloud points, so as to further reduce the coding bits, thereby improving the compression performance of the point cloud.
- the coding sequence of the sequence number of the point cloud points or the sequence number difference is the same as the coding sequence of the positions of the leaf nodes or the same as the coding sequence of the attributes of the point cloud points.
- the sequence number difference of the first coded point cloud point in the point cloud is its own sequence number value, starting from the second point cloud Starting from the point, the sequence number difference of each point cloud point is the difference between its own sequence number value and the sequence number value of the previously coded point cloud point.
- the symbol identification bit may be encoded first to indicate that the sequence number difference of multiple point cloud points is positive or negative, and then the multiple The absolute value of the difference of the sequence number of each point cloud point is coded.
- sequence number difference of the point cloud points is a positive value A
- 2 ⁇ A-1 is coded
- sequence number difference of the point cloud points is a negative value B
- sequence number difference is -2 ⁇ B is coded to distinguish the positive and negative of the sequence number difference.
- binary entropy coding or multiple entropy coding may be adopted to encode the sequence number/sequence number difference of the point cloud points. It is understandable that if the sequence number difference of the point cloud points is encoded, according to the description of the above two embodiments, the absolute value of the sequence number difference can be binary entropy coded or multiple entropy coded, or it can be 2 ⁇ A-1 or -2 ⁇ B performs binary entropy coding or multiple entropy coding.
- the above-mentioned binary entropy coding may be equal-probability binary entropy coding, or may also be context-based binary entropy coding, and the above-mentioned multiple-entropy coding may also be equal-probability multiple-entropy coding, or It can be context-based multiple entropy coding.
- the decoding method of binary entropy decoding or multiple entropy decoding may also be adopted, where the binary Entropy decoding may be equal-probability binary decoding or context-based binary entropy decoding.
- the above-mentioned multiple entropy decoding may also be equal-probability multiple entropy decoding, or may also be context-based multiple entropy decoding.
- the decoding method of binary entropy decoding it is necessary to perform de-binarization processing on the code stream first, and the de-binarization processing method also includes the processing method of variable-length codes or fixed-length codes.
- variable-length code is used to binarize the sequential number of point cloud points
- truncated Rice code, K-order exponential Golomb coding, unary code or other variable-length code schemes in the prior art can be used to sequentially number the point cloud points Binarization is performed, which is not specifically limited in the embodiments of the present application.
- the threshold value is cMax
- the Rice parameter R and the code number to be coded is Idx
- 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.
- the prefix code is composed of P 1s and one 0, and the length is P+1; if P is greater than or equal to the value (cMax>>R), the prefix code is composed of (cMax>>R) ) Consists of 1 and the length is (cMax>>R).
- the suffix value S is as shown in formula 2.
- the suffix code is a binary string of S, and the length is R.
- the parameter R of Rice code and the threshold value cMax are agreed upon by the codec.
- the exponential Golomb code is composed of a prefix and a suffix. Both the prefix and the suffix depend on the order k of the exponential Golomb code. Therefore, the k-order exponential Golomb code representing the non-negative integer number value N can be generated by the following steps.
- step 3 The lowest k bits removed in step 1 are added to the end of the bit string.
- the prefix is composed of m consecutive 0s and one 1
- the suffix is composed of m+k, which is the binary representation of N-2k (2m-1). Based on this, the encoding can be binarized.
- the order k of the Columbus code can be agreed upon by the codec.
- the integer N is defined as: scheme 1, N 1s followed by 1 0, scheme 2, or N 0s followed by 1 1 immediately.
- 0 is coded as 0, 1 is coded as 10, 2 is coded as 110, and 3 is coded as 1110, or scheme 2, 0 is coded as 1, 1 is coded as 01, 2 is coded as 001, and 3 is coded as 0001.
- the coding and decoding modes of the position, attributes, and sequence numbers of the point cloud points can be any of the coding modes mentioned above, which is not specifically limited in this application.
- the position of the point cloud point may be encoded first, and then the attributes and sequence numbers of the point cloud points may be encoded and decoded.
- the codec process of sequential numbering can be parallel or serial.
- the point cloud coding and decoding method proposed in this application can be applied to point cloud data obtained by any point cloud scanning device, whether it is a point cloud scanning device in a traditional repetitive scanning mode or a point cloud scanning device in a non-repetitive scanning mode All the point cloud data obtained can be compressed and transmitted using the coding and decoding method proposed in this application.
- the point cloud coding and decoding method of this application is especially suitable for non- Point cloud data acquired by a point cloud scanning device in a repeated scanning mode.
- the scanning device includes, but is not limited to, a lidar. Changes in dimensionality.
- the device 200 includes a ranging module 201, and 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, receive the return light, and convert the return light into an electrical signal.
- the transmitter 203 can be used to emit a light pulse sequence.
- the transmitter 203 may emit a sequence of laser pulses.
- the collimating element 204 is arranged on the exit light path of the emitter, and is used to collimate the light beam emitted from the emitter 203, and collimate the light beam emitted from the emitter 203 into parallel light and output to the scanning module.
- the collimating element is also used to condense at least a part of the return light reflected by the probe.
- the collimating element 204 may be a collimating lens or other elements capable of collimating light beams.
- the light path changing element 206 is used to merge the transmitting light path and the receiving light path in the device before the collimating element 204, so that the transmitting light path and the receiving light path can share the same collimating element, making the light path more compact .
- the emitter 203 and the detector 205 use their own collimating elements, and the optical path changing element 206 is arranged on the optical path behind the collimating element.
- the beam aperture of the emitter 203 is smaller, the beam aperture of the return light received by the device is larger, so the light path changing element can use a small area mirror to connect the emitting light path and the receiving light. The light path is merged.
- the device 200 further includes a scanning module 202.
- the scanning module 202 is placed on the exit light path of the distance measuring module 201.
- the scanning module 202 is used to change the transmission direction of the collimated beam 219 emitted by the collimating element 204 and project it to the external environment, and project the return light to the collimating element 204 .
- the returned light is converged on the detector 105 via the collimating element 204.
- the scanning module 202 may include at least one optical element for changing the propagation path of the light beam, wherein the optical element may change the propagation path of the light beam by reflecting, refracting, or diffracting the light beam.
- the scanning module 202 includes a lens, a mirror, a prism, a galvanometer, a grating, a liquid crystal, an optical phased array (Optical Phased Array), or any combination of the foregoing optical elements.
- at least part of the optical elements are moving.
- a driving module is used to drive the at least part of the optical elements to move.
- the moving optical elements can reflect, refract, or diffract the light beam to different directions at different times.
- the 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.
- the multiple optical elements of the scanning module 202 may rotate at different rotation speeds or vibrate at different speeds.
- at least part of the optical elements of the scanning module 202 may rotate at substantially the same rotation speed.
- the multiple optical elements of the scanning module may also rotate around different axes.
- the multiple optical elements of the scanning module may also rotate in the same direction or in different directions; or vibrate in the same direction, or vibrate in different directions, which is not limited herein.
- 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 to change the first optical element 214.
- the direction of the beam 219 is collimated.
- the first optical element 214 projects the collimated beam 219 to different directions.
- the angle between the direction of the collimated beam 219 changed by the first optical element and the rotation axis 109 changes with the rotation of the first optical element 214.
- the first optical element 214 includes a pair of opposing non-parallel surfaces through which the collimated light beam 219 passes.
- the first optical element 214 includes a prism whose thickness varies along at least one radial direction.
- the first optical element 114 includes a wedge angle prism to collimate the light beam 119 for refracting.
- the scanning module 202 further includes a second optical element 215, the second optical element 215 rotates around the rotation axis 209, and the rotation speed of the second optical element 215 is different from the rotation speed 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.
- 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 speed and/or rotation of the first optical element 214 and the second optical element 215 are different, so that the collimated light beam 219 is projected to the outside space.
- the controller 218 controls the drivers 216 and 217 to drive the first optical element 214 and the second optical element 215, respectively.
- the rotational speeds of the first optical element 214 and the second optical element 215 can be determined according to the expected scanning area and pattern in actual applications.
- the drivers 216 and 217 may include motors or other drivers.
- 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 whose thickness varies along at least one radial direction. In one embodiment, the second optical element 115 includes a wedge prism.
- the scanning module 102 further includes a third optical element (not shown) and a driver for driving the third optical element to move.
- the third optical element includes a pair of opposite non-parallel surfaces, and the light beam passes through the pair of surfaces.
- the third optical element includes a prism whose thickness varies in at least one radial direction.
- the third optical element includes a wedge prism. At least two of the first, second, and third optical elements rotate at different rotation speeds and/or rotation directions.
- each optical element in the scanning module 202 can project light to different directions, such as directions 211 and 213, so that the space around the device 200 is scanned.
- FIG. 29 is a schematic diagram of a scanning pattern of the device 200. It is understandable that when the speed of the optical element in the scanning module changes, the scanning pattern will also change accordingly.
- the detection object 201 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 to the device 200 in a direction opposite to the projected light 211.
- the return light 212 reflected by the probe 201 is incident on the collimating element 204 after passing through the scanning module 202.
- the detector 205 and the transmitter 203 are placed on the same side of the collimating element 204, and the detector 205 is used to convert at least part of the return light passing through the collimating element 204 into electrical signals to generate raw data of point cloud points.
- Fig. 30 is a schematic block diagram of a point cloud coding device 1 according to an embodiment of the present application.
- the point cloud coding device 1 corresponds to any one of the above-mentioned point cloud coding methods.
- the point cloud encoding device 1 includes: a processor 11 and a memory 12;
- the memory 12 may be used to store programs, and the processor 11 may be used to execute the programs stored in the memory to perform the following operations:
- the processor 11 is used to encode the position and sequence number of the point cloud point in the point cloud to generate a code stream of the point cloud.
- the processor 11 may be configured to: encode 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, and then the point cloud in the first leaf node The sequence number of the points is coded to generate the code stream of the point cloud.
- the processor 11 is configured to: after encoding the positions of multiple leaf nodes in the tree structure of the point cloud, encode the number and sequence numbers of the point cloud points in the multiple leaf nodes to generate a point cloud Stream.
- the processor 11 is configured to: after encoding the number of point cloud points in the first leaf node among the plurality of leaf nodes, encode the sequential 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, the sequential numbers of the point cloud points in the multiple leaf nodes are encoded.
- the bit corresponding to the number of 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.
- the processor 11 may be used to encode 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, and then The sequence number of the point cloud points is coded to generate the code stream of the point cloud.
- the processor 11 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.
- the bit corresponding to the number of point cloud points in the multiple leaf nodes is adjacent to the bit corresponding to the sequential number of the point cloud points in the multiple leaf nodes.
- the processor 11 is configured 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.
- the bit corresponding to the number of point cloud points in the last leaf node of the multiple leaf nodes is adjacent to the bit corresponding to the sequential number of the point cloud points in the multiple leaf nodes.
- the above-mentioned multiple leaf nodes are part or all of the leaf nodes in the point cloud.
- the processor 11 when encoding the sequence numbers of the point cloud points in the multiple leaf nodes, is configured to: according to the coding sequence of the positions of the multiple leaf nodes, the point cloud points in the multiple leaf nodes The sequence number encoding.
- the processor 11 is configured to: number the points in the leaf node from small to large, or from large to small in order, The sequential number coding of cloud points.
- processor 11 is further configured to: code the attribute of the point cloud point in the one leaf node according to the sequence number from small to large, or from large to small.
- the processor 11 is used to encode the attributes and sequence numbers of the point cloud points in the point cloud to generate a code stream of the point cloud.
- the processor 11 is configured to encode the attributes and sequential numbers of one point cloud point in the point cloud, and then encode the attributes and sequential numbers of another point cloud point in the point cloud.
- the bit corresponding to the attribute of the first point cloud point in the aforementioned point cloud is adjacent to the bit corresponding to the sequential number of the first point cloud point.
- the processor 11 is configured to: after encoding the attributes of the multiple point cloud points in the point cloud, encode the sequential number of the multiple point cloud points.
- the aforementioned multiple point cloud points may be part or all of the point cloud points included in the point cloud.
- bits corresponding to the attributes of the multiple point cloud points may be adjacent to the bits corresponding to the sequential numbers of the multiple point cloud points.
- the processor 11 is configured to: code the sequence numbers of the multiple point cloud points according to the coding sequence of the attributes of the multiple point cloud points.
- the processor 11 is used to encode the position, attribute, and sequence number of the point cloud points in the point cloud to generate a code stream of the point cloud.
- 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, the point cloud in the first leaf node The attribute code of the point.
- the processor 11 may be configured to: before or after encoding the attributes of the point cloud points in the first leaf node in the tree structure of the point cloud, perform sequential numbering of the point cloud points in the first leaf node coding.
- the bit corresponding to the number of point cloud points in the first leaf node is adjacent to the bit corresponding to the attribute of the point cloud point in the first leaf node, and the point cloud point in the first leaf node
- the bit corresponding to the attribute of is adjacent to the bit corresponding to the sequential number of the point cloud point in the first leaf node;
- the 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, and the order of the point cloud points in the first leaf node
- the bit corresponding to the number is adjacent to the bit corresponding to the attribute of the point cloud point in the first leaf node.
- the processor 11 is configured to encode the positions and attributes of the point cloud points in the multiple leaf nodes in the tree structure of the point cloud, and then encode the sequential numbers of the point cloud points in the multiple leaf nodes.
- 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, the point cloud in the first leaf node Encoding the sequential number of points; after encoding the positions and sequential numbers of the point cloud points in the 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.
- the processor 11 is further configured to: obtain the original data of the point cloud point in the point cloud; encode the position of the point cloud point in the point cloud to obtain the bit corresponding to the position; The attribute of the point is coded to obtain the bit corresponding to the attribute; the sequential number of the point cloud point in the point cloud is coded to obtain the bit corresponding to the sequential number; according to the bit corresponding to the position, the bit corresponding to the attribute, and the bit corresponding to the sequential number Bits generate a bit stream of the point cloud.
- the processor 11 is configured to: perform binarization and entropy coding on the sequence numbers of the point cloud points in the point cloud, where the entropy coding is equal-probability binary entropy coding or context-based binary entropy coding.
- Binarization is fixed-length code binarization or variable-length code binarization.
- the processor 11 is configured to: perform entropy coding on the sequential number of the point cloud points in the point cloud, where the entropy coding is equal probability multiple entropy coding or context-based multiple entropy coding.
- the processor 11 is configured to: encode the sequence number difference of the point cloud points in the point cloud; wherein, the sequence number difference of the first point cloud point in the point cloud is the sequence number value, and the point cloud divides The sequence number difference of a point cloud point outside the first point cloud point is the difference between the sequence number of the one point cloud point and the sequence number of the previous point cloud point.
- the processor 11 is configured to: encode a sign flag bit, the sign flag bit is used to identify the point cloud point in the point cloud sequence number difference is positive or negative; The absolute value of the difference in the sequence number of the point cloud points in the point cloud is coded.
- the processor 11 is configured to: if the sequence number difference of the first point cloud point in the point cloud is a positive value A, encode 2 ⁇ A-1; or, if the first point cloud point in the point cloud is The sequence number difference of the two point cloud points is a negative value B, and -2 ⁇ B is coded.
- the processor 11 is configured to: perform binarization and entropy coding on the difference in the sequence number of the point cloud points in the point cloud, where the entropy coding is equal-probability binary entropy coding or context-based binary entropy coding.
- Binarization is fixed-length code binarization or variable-length code binarization.
- the processor 11 is configured to: perform entropy coding on the difference of the sequence numbers of the point cloud points in the point cloud, where the entropy coding is equal probability multiple entropy coding or context-based multiple entropy coding.
- the processor 11 is configured to: perform binarization and entropy coding on the attributes of the point cloud points in the point cloud, where the entropy coding is equal-probability binary entropy coding or context-based binary entropy coding, and the binarization is For fixed-length code binarization or variable-length code binarization.
- the sequence number of the point cloud points in the above-mentioned point cloud indicates the time sequence, collection sequence, or scanning sequence of the point cloud points.
- the processor 11 is further configured to: assign sequence numbers to the point cloud points in the point cloud according to the time sequence, collection sequence, or scanning sequence of the point cloud points.
- the point cloud points in the point cloud are point cloud points acquired by the point cloud scanning device in a non-repetitive scanning manner.
- the point cloud scanning device may be the device 200 in FIG. 28.
- the light emission direction of the point cloud scanning device changes in the three dimensions of XYZ over time.
- the angle change of two point cloud points with adjacent sequential numbers may be greater than the angle change of two point cloud points with adjacent sequential numbers obtained by repeated scanning.
- FIG. 31 is a schematic block diagram of a point cloud decoding device 2 according to an embodiment of the present application.
- the point cloud decoding device 2 corresponds to any one of the foregoing point cloud decoding methods.
- the point cloud decoding device 2 includes: a processor 21 and a memory 22;
- the memory 22 may be used to store programs, and the processor 21 may be used to execute the programs stored in the memory to perform the following operations:
- the code stream of the point cloud includes the position code stream of the point cloud points and the sequential number code stream of the point cloud points; the processor 21 is used to: edit the position code stream of the point cloud points and the sequence of the point cloud points The number stream is decoded to obtain the position and sequence number of the point cloud point in the point cloud.
- the first leaf node is arranged The sequence number code stream of the point cloud points in the.
- the number code stream and the sequential number code stream of the point cloud points in the multiple leaf nodes are arranged .
- the number code stream of the point cloud points in the first leaf node is adjacent to the sequential number code stream of the point cloud points in the first leaf node.
- the position code stream of multiple leaf nodes in the tree structure of the point cloud and the number of point cloud points in the multiple leaf nodes are arranged after the code stream.
- the sequential number code stream of the point cloud points in the leaf node are arranged after the code stream.
- the number code stream of the point cloud points in the multiple leaf nodes is arranged.
- the number code stream of the point cloud points in the multiple leaf nodes is adjacent to the sequential number code stream of the point cloud points in the multiple leaf nodes.
- the number code stream of the point cloud points in the first leaf node is arranged.
- the number code stream of the point cloud points in the last leaf node of the plurality of leaf nodes is adjacent to the sequential number code stream of the point cloud points in the plurality of leaf nodes.
- the multiple leaf nodes are all leaf nodes in the point cloud.
- the number of point cloud points in the plurality of leaf nodes is the order of arrangement of the plurality of leaf node blocks in the code stream and the sequence number of the point cloud points in the plurality of leaf nodes is the order of the plurality of leaf node blocks in the code stream.
- the arrangement order is the same.
- the point cloud points in a leaf node of the multiple leaf nodes are multiple, in the sequential numbering code stream of the point cloud points in the leaf node, the point cloud points are sequentially numbered from small to large, or from large Arrange in order of smallest.
- the code stream of the point cloud also includes: the attribute code stream of the point cloud point in the one leaf node; in the attribute code stream of the point cloud point in the one leaf node, the point cloud points are numbered in order from small to large, or Arrange from largest to smallest.
- the code stream of the point cloud includes the attribute code stream of the point cloud point and the sequence number code stream of the point cloud point; the processor 21 is used to: the attribute code stream of the point cloud point and the sequence of the point cloud point The code stream is decoded to obtain the attributes and sequence numbers of the point cloud points in the point cloud.
- the attribute code stream and sequential number code stream of one point cloud point in the point cloud are arranged flow.
- the attribute code stream of the first point cloud point in the point cloud is adjacent to the sequential number code stream of the first point cloud point.
- the sequential number code stream of the multiple point cloud points is arranged.
- the multiple point cloud points are all point cloud points included in the point cloud.
- attribute code stream of the multiple point cloud points is adjacent to the sequential number code stream of the multiple point cloud points.
- sequence of the multiple point cloud points in the sequence number stream of the multiple point cloud points is the same as the sequence of the multiple point cloud points in the attribute code stream of the multiple point cloud points.
- the code stream of the point cloud includes the position code stream of the point cloud point, the attribute code stream of the point cloud point, and the sequential number code stream of the point cloud point; the processor 21 is used to: determine the position of the point cloud point The code stream, the attribute code stream of the point cloud point and the sequential number code stream of the point cloud point are decoded to obtain the position, attribute and sequential number of the point cloud point in the point cloud.
- the first leaf is arranged The attribute code stream of the point cloud point in the node.
- the sequential number code stream of the point cloud points in the first leaf node is arranged.
- the number code stream of the point cloud point in the first leaf node is adjacent to the attribute code stream of the point cloud point in the first leaf node, and the attribute code stream of the point cloud point in the first leaf node
- the code stream is adjacent to the sequential number code stream of the point cloud points in the first leaf node
- the number code stream of the point cloud points in the first leaf node is adjacent to the sequential number code stream of the point cloud points in the first leaf node, and the sequential number code of the point cloud points in the first leaf node The stream is adjacent to the attribute code stream of the point cloud point in the first leaf node.
- the sequential number code stream of the point cloud points in the multiple leaf nodes is arranged.
- the first leaf is arranged The sequential number code stream of the point cloud points in the node; after the position code stream and sequential number code stream of the point cloud points in the multiple leaf nodes in the tree structure of the point cloud, the points in the multiple leaf nodes are arranged The sequence number code stream of the cloud point.
- the processor 21 is further configured to sort the point cloud points in descending order according to the sequence number of the point cloud points in the point cloud to obtain sorted point cloud data.
- the processor 21 is configured to: perform inverse binarization and entropy decoding on the sequential number code stream of the point cloud points in the code stream, where the entropy decoding is equal-probability binary entropy decoding or context-based binary entropy decoding.
- Meta-entropy decoding the de-binarization is fixed-length code de-binarization or variable-length code de-binarization.
- the processor 21 is configured to: perform entropy decoding on a code stream of sequential number of point cloud points in the code stream, where the entropy decoding is equal probability multiple entropy decoding or context-based multiple entropy decoding.
- the processor 21 is configured to decode the sequence number difference code stream of the point cloud points in the code stream, where the sequence number difference of the first point cloud point in the point cloud is the sequence number value, The difference in the sequence number of a point cloud point except the first point cloud point in the point cloud is the difference between the sequence number of the one point cloud point and the sequence number of the previous point cloud point.
- the processor 21 is used to decode the sequence number difference code stream of the point cloud point to obtain the absolute value of the symbol flag bit and the sequence number difference value of the point cloud point, where the symbol The flag bit is used to identify the point cloud point sequence number difference is positive or negative.
- the processor 21 is configured to decode the sequence number difference code stream of the first point cloud point to obtain an odd value A', so as to obtain the sequence number difference value of the first point cloud point as a positive value (A '+1)/2, or decode the sequence number difference code stream 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.
- the processor 21 is configured to: perform debinarization and entropy decoding on the sequence number difference of the point cloud points, where the entropy decoding is equal-probability binary entropy decoding or context-based binary entropy decoding, and Inverse binarization is fixed-length code inverse binarization or variable-length code inverse binarization.
- the processor 21 is configured to: perform entropy decoding on the sequence number difference of the point cloud points, where the entropy decoding is equal probability multiple entropy decoding or context-based multiple entropy decoding.
- the processor 21 is configured to: perform inverse binarization and entropy decoding on the attribute code stream of the point cloud points in the code stream, where the entropy decoding is equal-probability binary entropy decoding or context-based binary entropy
- the de-binarization is fixed-length code de-binarization or variable-length code de-binarization.
- the sequence number of the point cloud points in the point cloud represents the time sequence, collection sequence, or scanning sequence of the point cloud points.
- the point cloud points in the point cloud are point cloud points acquired by the point cloud scanning device in a non-repetitive scanning manner.
- the point cloud scanning device may be the device 200 in FIG. 28.
- the light emission direction of the point cloud scanning device changes in the three dimensions of XYZ over time.
- the angle change of two point cloud points with adjacent sequential numbers may be greater than the angle change of two point cloud points with adjacent sequential numbers obtained by repeated scanning.
- the application also provides an electronic device, which may include the point cloud encoding device and/or decoding device of the various embodiments of the application described above.
- the present application also provides a system, which may include the point cloud encoding device, decoding device, and point cloud scanning device of the various embodiments of the present application described above.
- the point cloud scanning device may be, for example, the one shown in FIG. 28 ⁇ 200 ⁇ Device 200.
- the present application also provides a computer storage medium on which a computer program is stored.
- the computer program When the computer program is executed by a computer, the computer executes the method in the foregoing method embodiment.
- the present application also provides a computer program product containing instructions, which when executed by a computer causes the computer to execute the method of the foregoing method embodiment.
- the computer program product includes one or more computer instructions.
- 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 computer-readable storage medium. For example, the computer instructions may be transmitted from a website, computer, server, or data center.
- 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 integrated with one or more available media.
- the usable medium may be a magnetic medium (for example, a floppy disk, a hard disk, a magnetic tape), an optical medium (for example, a digital video disc (DVD)), or a semiconductor medium (for example, a solid state disk (SSD)), etc.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
L'invention concerne un procédé et un appareil de codage/décodage de nuage de points. Par comparaison avec l'état de la technique, les performances de codage/décodage de nuage de points peuvent être améliorées. Le procédé de codage de nuage de points consiste à : coder les numéros de série de points de nuage de points dans un nuage de points pour générer un flux de code du nuage de points ; et envoyer le flux de code du nuage de points. Le procédé de décodage de nuage de points consiste à : acquérir un flux de code d'un nuage de points ; et décoder le flux de code du nuage de points pour obtenir les numéros de série de points de nuage de points dans le nuage de points. Au moyen de la solution technique de la présente invention, des informations des numéros de série de points de nuage de points dans un nuage de points sont codées et décodées, et des informations de séquence de données de nuage de points d'origine sont conservées pendant le codage du nuage de points, de sorte que les données de nuage de points d'origine peuvent être récupérées selon les informations de séquence pendant le décodage, les données de nuage de points décodés peuvent être appliquées dans plusieurs scénarios, et un résultat de calcul basé sur les données de nuage de points est plus précis dans plusieurs scénarios. Par conséquent, au moyen de la solution technique de la présente demande, les performances de codage/décodage de nuage de points et l'universalité des données de nuage de points associées peuvent être améliorées.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2020/095239 WO2021248339A1 (fr) | 2020-06-09 | 2020-06-09 | Procédé et appareil de codage/décodage de nuage de points |
CN202080005109.8A CN112740702A (zh) | 2020-06-09 | 2020-06-09 | 点云的编解码方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2020/095239 WO2021248339A1 (fr) | 2020-06-09 | 2020-06-09 | Procédé et appareil de codage/décodage de nuage de points |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2021248339A1 true WO2021248339A1 (fr) | 2021-12-16 |
Family
ID=75609431
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2020/095239 WO2021248339A1 (fr) | 2020-06-09 | 2020-06-09 | Procédé et appareil de codage/décodage de nuage de points |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN112740702A (fr) |
WO (1) | WO2021248339A1 (fr) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114463426A (zh) * | 2022-02-09 | 2022-05-10 | 上海大学 | 基于三角切分的平行四边形点云码设计与识别方法及系统 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115720270A (zh) * | 2021-08-24 | 2023-02-28 | 鹏城实验室 | 点云编码方法、解码方法、点云编码设备及解码设备 |
WO2023061420A1 (fr) * | 2021-10-13 | 2023-04-20 | Beijing Bytedance Network Technology Co., Ltd. | Procédé, appareil et support de codage en nuage de points |
CN116309896A (zh) * | 2021-12-20 | 2023-06-23 | 华为技术有限公司 | 数据编解码方法、装置和设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104243958A (zh) * | 2014-09-29 | 2014-12-24 | 联想(北京)有限公司 | 三维网格数据的编码、解码方法以及编码、解码装置 |
US20160275719A1 (en) * | 2015-03-19 | 2016-09-22 | Intergraph Corporation | System and method for fast optimization of point cloud data |
CN106952297A (zh) * | 2017-03-22 | 2017-07-14 | 电子科技大学 | 一种三维激光扫描数据点云度压缩方法 |
WO2019103009A1 (fr) * | 2017-11-22 | 2019-05-31 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | Procédé de codage de données tridimensionnelles, procédé de décodage de données tridimensionnelles, dispositif de codage de données tridimensionnelles, et dispositif de décodage de données tridimensionnelles |
CN110915219A (zh) * | 2017-07-13 | 2020-03-24 | 交互数字Vc控股公司 | 用于对几何形状由基于八叉树的结构表示的有色点云的颜色进行编码/解码的方法和装置 |
CN111247802A (zh) * | 2019-01-10 | 2020-06-05 | 深圳市大疆创新科技有限公司 | 用于三维数据点集处理的方法和设备 |
CN111699683A (zh) * | 2019-06-13 | 2020-09-22 | 深圳市大疆创新科技有限公司 | 一种点云编码方法、点云解码方法及相关设备 |
-
2020
- 2020-06-09 CN CN202080005109.8A patent/CN112740702A/zh active Pending
- 2020-06-09 WO PCT/CN2020/095239 patent/WO2021248339A1/fr active Application Filing
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104243958A (zh) * | 2014-09-29 | 2014-12-24 | 联想(北京)有限公司 | 三维网格数据的编码、解码方法以及编码、解码装置 |
US20160275719A1 (en) * | 2015-03-19 | 2016-09-22 | Intergraph Corporation | System and method for fast optimization of point cloud data |
CN106952297A (zh) * | 2017-03-22 | 2017-07-14 | 电子科技大学 | 一种三维激光扫描数据点云度压缩方法 |
CN110915219A (zh) * | 2017-07-13 | 2020-03-24 | 交互数字Vc控股公司 | 用于对几何形状由基于八叉树的结构表示的有色点云的颜色进行编码/解码的方法和装置 |
WO2019103009A1 (fr) * | 2017-11-22 | 2019-05-31 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | Procédé de codage de données tridimensionnelles, procédé de décodage de données tridimensionnelles, dispositif de codage de données tridimensionnelles, et dispositif de décodage de données tridimensionnelles |
CN111247802A (zh) * | 2019-01-10 | 2020-06-05 | 深圳市大疆创新科技有限公司 | 用于三维数据点集处理的方法和设备 |
CN111699683A (zh) * | 2019-06-13 | 2020-09-22 | 深圳市大疆创新科技有限公司 | 一种点云编码方法、点云解码方法及相关设备 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114463426A (zh) * | 2022-02-09 | 2022-05-10 | 上海大学 | 基于三角切分的平行四边形点云码设计与识别方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112740702A (zh) | 2021-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2021248339A1 (fr) | Procédé et appareil de codage/décodage de nuage de points | |
US20220108494A1 (en) | Method, device, and storage medium for point cloud processing and decoding | |
WO2020248187A1 (fr) | Procédé de codage en nuage de points, procédé de décodage en nuage de points et dispositif associé | |
US11935270B2 (en) | Predictive geometry coding in G-PCC | |
WO2022042539A1 (fr) | Procédé et dispositif de prédiction d'un nuage de points, procédé de mise en couches d'un nuage de points sur la base d'un ordre spatial | |
US9503123B1 (en) | Random access to compressed data using bitwise indices | |
US20210335019A1 (en) | Method and device for processing three-dimensional data point set | |
WO2021000334A1 (fr) | Procédé et dispositif de codage de données, procédé et dispositif de décodage de données et support de stockage | |
WO2021196029A1 (fr) | Procédé et dispositif de codage et de décodage d'un nuage de points | |
WO2020123469A1 (fr) | Encodage d'attribut d'arbre hiérarchique par points médians dans un codage en nuage de points | |
CN113179410B (zh) | 一种点云属性的编解码方法、装置和系统 | |
WO2020143005A1 (fr) | Procédé et appareil de codage ou de décodage d'un ensemble de points de données tridimensionnels | |
EP4133731A1 (fr) | Signalisation d'indice de prédiction pour prédire une transformation dans une compression de nuage de points basée sur la géométrie | |
CN112384950A (zh) | 点云的编解码方法及装置 | |
EP2786601A1 (fr) | Codage et décodage de position fondés sur une arborescence spatiale résiliable | |
CN113632492A (zh) | 一种用于点云处理、解码的方法、设备及存储介质 | |
CN115086658B (zh) | 点云数据的处理方法、装置、存储介质及编解码设备 | |
JP2023543752A (ja) | 点群コーデック方法及びシステム、並びに点群エンコーダ及び点群デコーダ | |
US20230342984A1 (en) | Inter prediction in point cloud compression | |
CN112689997B (zh) | 点云的排序方法和装置 | |
KR20230170908A (ko) | 인터 예측을 사용한 지오메트리 포인트 클라우드 압축 (gpcc) 평면 모드의 성능 개선 | |
WO2020248562A1 (fr) | Procédé de traitement et de décodage de nuage de points, dispositif de traitement et de décodage de nuage de points, et support d'informations | |
WO2023103565A1 (fr) | Procédé et appareil de codage et de décodage d'informations d'attribut de nuage de points, dispositif, et support de stockage | |
WO2023173238A1 (fr) | Procédé de codage, procédé de décodage, flux de code, codeur, décodeur et support d'enregistrement | |
JP2024527337A (ja) | 点群を符号化及び復号化する方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 20939576 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 20939576 Country of ref document: EP Kind code of ref document: A1 |