CN112740702A - Point cloud encoding and decoding method and device - Google Patents

Point cloud encoding and decoding method and device Download PDF

Info

Publication number
CN112740702A
CN112740702A CN202080005109.8A CN202080005109A CN112740702A CN 112740702 A CN112740702 A CN 112740702A CN 202080005109 A CN202080005109 A CN 202080005109A CN 112740702 A CN112740702 A CN 112740702A
Authority
CN
China
Prior art keywords
point cloud
cloud points
code stream
points
point
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202080005109.8A
Other languages
Chinese (zh)
Inventor
李璞
郑萧桢
夏清
许友
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SZ DJI Technology Co Ltd
Original Assignee
SZ DJI Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SZ DJI Technology Co Ltd filed Critical SZ DJI Technology Co Ltd
Publication of CN112740702A publication Critical patent/CN112740702A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/161Encoding, multiplexing or demultiplexing different image signal components

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

Compared with the prior art, the method and the device for encoding and decoding the point cloud can improve the performance of point cloud encoding and decoding, and the method for encoding the point cloud comprises the following steps: coding the sequential number of point cloud points in the point cloud to generate a code stream of the point cloud; and transmitting the code stream of the point cloud. The point cloud decoding method comprises the following steps: acquiring a code stream of the point cloud; and decoding the code stream of the point cloud to obtain the sequential number of the point cloud points in the point cloud. According to the technical scheme, the information of the point cloud point sequence number in the point cloud is coded and decoded, and the sequence information of the original point cloud data is reserved during the coding of the point cloud, so that the original point cloud data can be recovered according to the sequence information during decoding, the decoded point cloud data can be applied to more scenes, and the calculation result based on the point cloud data is more accurate under more scenes. Therefore, the technical scheme of the application can improve the performance of point cloud coding and decoding and the universality of point cloud data.

Description

Point cloud encoding and decoding method and device
Copyright declaration
The disclosure of this patent document contains material which is subject to copyright protection. The copyright is owned by the copyright owner. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the patent and trademark office official records and records.
Technical Field
The present application relates to the field of point cloud technology, and more particularly, to a method and an apparatus for encoding and decoding point cloud.
Background
A point cloud (or called three-dimensional point cloud) is an expression form of a three-dimensional object or scene, and is composed of a set of randomly distributed discrete points in space, which express the spatial structure and surface attributes of the three-dimensional object or three-dimensional scene. Most point clouds are generated by three-dimensional scanning devices, such as photoelectric radar, lidar, stereo cameras, and the like. Due to the novel data structure of the point cloud, the point cloud has become one of common data sources in multiple fields such as photogrammetry, remote sensing, computer vision, machine learning and the like.
In order to reduce the bandwidth occupied by storing and transmitting the point cloud data, the point cloud is usually encoded and compressed by a point cloud encoder, and the original point cloud is restored by decoding after the compressed point cloud is transmitted to a decoding end. Therefore, how to improve the performance and the universality of the point cloud coding and decoding algorithm is a technical problem to be solved urgently.
Disclosure of Invention
Compared with the prior art, the point cloud coding and decoding method and device can improve the point cloud coding and decoding performance.
In a first aspect, a method for encoding a point cloud is provided, including: coding the sequential number of point cloud points in the point cloud to generate a code stream of the point cloud; and transmitting the code stream of the point cloud.
In a second aspect, a method for decoding a point cloud is provided, including: acquiring a code stream of the point cloud; and decoding the code stream of the point cloud to obtain the sequential number of the point cloud points in the point cloud.
In a third aspect, an apparatus for encoding a point cloud is provided, which includes a processor configured to execute the method for encoding a point cloud in the first aspect.
In a fourth aspect, a device for decoding point clouds is provided, which comprises a processor for executing the method for decoding point clouds in the second aspect.
In a fifth aspect, a computer storage medium is provided, on which a computer program is stored, which, when executed by a computer, causes the computer to perform the method provided in the first or second aspect.
In a sixth aspect, a system is provided, which comprises the device for encoding a point cloud in the first aspect, the device for decoding a point cloud in the second aspect, and the device for scanning a point cloud.
According to the technical scheme, the information of the point cloud point sequence number in the point cloud is coded and decoded, and the sequence information of the original point cloud data is reserved during the coding of the point cloud, so that the original point cloud data can be recovered according to the sequence information during decoding, the decoded point cloud data can be applied to more scenes, and the calculation result based on the point cloud data is more accurate under more scenes. Therefore, the technical scheme of the application can improve the performance of point cloud coding and decoding and the universality of point cloud data.
Drawings
Fig. 1 shows a schematic diagram of a point cloud data encoding process provided in the present application.
Fig. 2 is a schematic diagram of an initialization space for point cloud encoding.
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 flow chart diagram of a point cloud processing method according to an embodiment of the present application.
Fig. 5, 7, 10, 12, 14, 16, 18, 20, 22, 24, and 26 are schematic flow chart block diagrams of a method for encoding a plurality of point clouds according to an embodiment of the present application.
Fig. 6, 9, 11, 13, 15, 17, 19, 21, 23, 25 and 27 are schematic flow chart diagrams of a decoding method of multiple point clouds according to an embodiment of the application.
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 apparatus according to an embodiment of the present application.
FIG. 29 is a schematic view of a scanning pattern of the scanning device for the point cloud of FIG. 28.
Fig. 30 is a schematic block diagram of an apparatus for encoding a point cloud according to an embodiment of the present application.
Fig. 31 is a schematic block diagram of a point cloud decoding apparatus according to an embodiment of the present application.
Detailed Description
In order to facilitate understanding of the technical solutions provided in the embodiments of the present application, the following first describes some concepts related to the embodiments of the present application.
The technical solutions in the embodiments of the present application will be described below with reference to the accompanying drawings.
The method and the device can be suitable for standard or non-standard point cloud codecs. For example, an encoder of the digital video coding standard (AVS).
It should be understood that, in the various embodiments of the present application, the size of the serial number of each process does not mean the execution sequence, and the execution sequence of each process should be determined by its function and inherent logic, and should not constitute any limitation to the implementation process of the embodiments of the present application.
Unless otherwise defined, all technical and scientific terms used in the examples of this application have the same meaning as commonly understood by one of ordinary skill in the art to which this application belongs. The terminology used in the present application is for the purpose of describing particular embodiments only and is not intended to limit the scope of the present application. As used herein, the term "and/or" includes any and all combinations of one or more of the associated listed items.
In order to facilitate understanding of the technical solutions provided by the embodiments of the present invention, some concepts related to the embodiments of the present invention are described below first.
The Point Cloud is a set of discrete points that represent the spatial distribution of the target and the characteristics of the target surface in the same spatial reference coordinate system, that is, a set of sampling points obtained after obtaining the spatial coordinates of each sampling Point on the surface of the object, and is called Point Cloud (Point Cloud). In order to accurately reflect information in three-dimensional space, a large number of discrete points are typically required to characterize an object in three-dimensional space. Discrete points in the point cloud are hereinafter referred to as point cloud points.
Fig. 1 shows a schematic diagram of a point cloud data encoding process provided in the present application.
The point cloud data typically includes location information and attribute information for a plurality of point cloud points in the point cloud. The position coordinates of the point cloud points can be used to describe the positions of the point cloud points in the three-dimensional space, and the attribute information of the point cloud points may include, for example, color information of the point cloud points, and may also include other information such as reflectivity of the point cloud points. In order to reduce the bandwidth occupied by the point cloud during storage and transmission, the point cloud data can be encoded to compress the data volume of the point cloud. In the process of encoding point cloud data, the position information encoding and the attribute information encoding of point cloud points are generally performed separately.
As shown in fig. 1, in the method for encoding point cloud data, the method for encoding location information of a point cloud point includes:
coordinate translation and quantification: and translating and quantizing the position coordinates of a plurality of cloud points in the point cloud. In one example, the position coordinates of the point cloud are processed by a geometric quantization method. The process of geometric quantization may convert the location coordinates of the plurality of cloud points to integer coordinates greater than or equal to zero. Duplicate coordinates may be removed after position coordinate translation quantization. And directly carrying out octree coding on the position coordinates of the point cloud points after quantization without duplicate removal.
Multi-branch tree division: in this step, the multi-branch tree partition may be understood as any one or more of an octree partition, a quadtree partition, and a binary tree partition.
In some embodiments, the location information of the point cloud is encoded by using an octree partition method, which may also be referred to as octree coding. The complete octree division process comprises multi-layer octree division, wherein the division of each layer of octree divides sub-blocks by using the coordinates of the center point of the current block, and the current block is divided into eight small sub-blocks with the same volume through the center point.
For example, the maximum and minimum values of the position coordinates in the three direction dimensions (x, y, z) may be selected first based on the position coordinates of the plurality of point cloud points (which may be the position coordinates of the point cloud points after geometric quantization and/or removal of the repeated coordinates). Then, an initialization space to be divided may be determined according to the selected quantization values.
After the initialization space is determined, the initialization space is then subjected to a multi-level octree partitioning. And each layer of octree division can perform space division by using the position coordinates of the central point of the current block, and the current block is divided into eight sub-blocks with equal volumes through the central point. Fig. 2 shows the division result obtained after the initialization space is divided for the first time, and it can be seen from fig. 2 that the initialization space is uniformly divided into sub-blocks with 8 equal volumes. In an octree, the initialization space is a root node block, and the sub-blocks are child node blocks of the root node, called first-level child node blocks.
After the first layer of child node blocks are obtained, whether a point cloud point exists in each child node block of the first layer can be judged, the child node blocks which exist the point cloud points are further divided until the side length of each child node block is smaller than a threshold value, the octree division is stopped, and the child node blocks at the moment are called leaf node blocks of the current octree. The threshold may be 1, for example.
When the octree is encoded on the position coordinates of a plurality of point cloud points in the point cloud, encoding can be performed layer by layer according to the breadth-first traversal order (BFS) of the octree. When encoding layer by layer, the division result of each octree can be encoded layer by layer, that is, whether eight subblocks obtained after current subblocks are subjected to octree division contain point cloud points or not is judged. If a sub-block of the block contains point cloud points, the sub-block is further divided, otherwise, the division is stopped. When the division is performed to one layer of the last octree (the last layer can be a layer with the side length of the subblock being 1), the bottom layer of the octree is reached, namely the leaf nodes of the octree are reached, and no further division is needed.
In other embodiments, the position information of the point cloud point may also be encoded in a quadtree partitioning manner, a binary tree partitioning manner, or a multi-branch tree partitioning manner in which several partitioning manners are mixed.
For example, similar to the octree encoding process above, the subblocks divided by the multi-way tree may be encoded layer by layer in the breadth-first encoding order. If the subblocks adopt a quadtree division mode, only 4 bits (bits) need to be coded for coding, and 4 bits are saved compared with the octree division; if the coding is carried out by adopting a binary tree division mode, only 2 bits need to be coded, and 6 bits are saved compared with the octree division. The skipped bits can be assumed to be 0 at the decoding end.
Optionally, in addition to encoding the positions of the cloud points in a breadth-first traversal order (BFS) encoding manner, the positions of the cloud points may also be encoded in a depth-first search (DFS) encoding manner.
In some embodiments, after a multi-branch tree partition method is used to partition an initialization space of a point cloud, and after a tree structure of the point cloud is formed, when the point cloud is coded into a first block in the tree structure, if distribution and/or number of point cloud points in the first block meet a preset condition, a coding method of a depth-first traversal order is used to code position coordinates of point cloud points in the first block, and then the point cloud points return to a second block behind the first block, and the second block is coded, and in a breadth-first traversal coding order, the second block is located behind the first block. If the second block also meets the preset condition, the position coordinates of the point cloud points in the second block are coded by adopting a coding mode of depth-first traversal order. And if the second block does not meet the preset condition, encoding the division result of the next layer according to a breadth-first traversal encoding mode. The tree structure is encoded in this manner until it is encoded to the leaf node level of the tree structure.
Entropy coding: and entropy coding the code stream coded by the octree to obtain a geometric code stream of the point cloud, namely the code stream of the position information of a plurality of point cloud points in the point cloud.
After the position coordinates are subjected to multi-branch tree coding, the corresponding attribute values are synchronously subjected to compression coding according to the position coordinate sequence after the multi-branch tree is reconstructed.
With continued reference to fig. 1, in the method for encoding point cloud data, the method for encoding attribute information of a point cloud point includes:
spatial transformation: the step is an optional step, namely, a process of converting the color attribute of the point cloud point from an RGB space to a YUV space, and specifically, the color attribute of the point cloud point may be subjected to spatial transformation by a conversion formula.
Attribute interpolation: in the case where the geometric information of the point cloud points (the number of points of the point cloud points or the relative positions of the points and the points) is changed, for example, an operation of removing repeated points is performed in the position information encoding, and then the attribute interpolation, that is, the process of re-coloring, is performed.
Given the geometry and attribute information of the original point cloud and the geometry information of the reconstructed point cloud, the re-coloring is to calculate a new attribute value for each point in the reconstructed point cloud, so that the attribute error of the reconstructed point cloud and the original point cloud is minimized. The realization process is as follows:
step 1: the geometrical information of the original point cloud and the reconstructed point cloud are respectively (P)i)i=0...N-1And
Figure BDA0002973596390000061
wherein N and NrecRespectively the number of points in the original point cloud and the reconstructed point cloud, and if the repeated points are removed, N is easy to knowrec<N, otherwise Nrec=N。
Step 2: for reconstruction of point cloudsEach point being
Figure BDA0002973596390000062
Finding the point P closest to the original point cloudi *Is provided with Pi *Has an attribute value of Ai *
Step 3: for each point in the original point cloud, finding the point closest to the point in the reconstructed point cloud. For reconstructing points in a point cloud
Figure BDA0002973596390000063
Let U (i) be (X)k(i)k∈{1,...,D(i)}) In the original point cloud, all with
Figure BDA0002973596390000064
The point set is the closest point, where D (i) is the number of points included in U (i), and it is noted that U (i) may be empty or may include one or more points.
Step 4: for each point in the reconstructed point cloud
Figure BDA0002973596390000065
Calculating the reconstruction attribute value, if U (i) is empty, directly adding Ai *Assigned as reconstructed attribute value
Figure BDA0002973596390000066
If U (i) is not empty, reconstructing the attribute mean value of all the points in the attribute values U (i) of the points, and calculating the formula as follows:
Figure BDA0002973596390000067
and (3) attribute prediction: in one implementation, the cloud point attribute may be predicted by using a morton code reordering method. Firstly, reordering point clouds based on Morton codes to generate a point cloud sequence which can be used for point cloud attribute prediction. In the attribute coding of the AVS standard, the Morton code is obtained by calculation based on the Morton look-up table, and the process is as follows:
step 1: and traversing the point cloud of the geometric reconstruction to obtain the geometric coordinates x, y and z corresponding to the current point.
Step 2: and searching the Morton table according to the geometric coordinates to calculate the Morton code corresponding to the current point.
Step 3: reordering the point clouds based on morton codes.
And then, performing forepart difference prediction on the sorted attribute values to obtain an attribute residual error according to the predicted value and the original value. The attribute residuals are then quantized. And entropy coding is carried out on the quantized coefficient value to obtain the attribute code stream.
In addition, the point cloud attribute may also be predicted in other prediction manners, which is not specifically limited in this embodiment of the present application.
The decoding process of the point cloud data is substantially the same as the reverse process of the encoding process. Fig. 3 shows a schematic diagram of a decoding flow provided in the present application.
Entropy decoding: and after the decoding end acquires the input geometric code stream and the attribute code stream, the decoding end decodes the code stream bit by adopting an entropy decoding method corresponding to the entropy coding method of the encoding end.
Multi-branch tree reconstruction: specifically, for a geometric code stream, an initialization space of a point cloud can be determined through entropy-decoded information (the size of the initialization space can be written into the code stream by an encoding end, and a decoding end can obtain the code stream), and then the initialization space is divided into a plurality of branches. And the decoding end divides the initialization space by adopting a space division mode consistent with the encoding end. And obtaining position coordinate data of the point cloud point to be inversely quantized through a plurality of sub-node blocks in the divided multi-branch tree and the binary bit streams corresponding to the sub-node blocks.
Inverse quantization: the inverse quantization is an inverse process of the quantization of the coding end, and the position coordinate data to be inversely quantized after the multi-branch tree reconstruction is inversely quantized to obtain the coordinates quantized in the coding end. And the attribute code stream is subjected to entropy decoding and inverse quantization to obtain an attribute prediction residual value.
And (3) attribute reconstruction: specifically, if the attribute prediction residual obtained after the inverse quantization is as
Figure BDA0002973596390000071
The current point attribute reconstructed value is
Figure BDA0002973596390000072
The attribute reconstruction value of the previous point is
Figure BDA0002973596390000073
The attribute of the current point reconstructs the value
Figure BDA0002973596390000074
And traversing all point cloud points in the point cloud to obtain a reconstructed point cloud output by the encoding end.
Inverse spatial transformation: corresponding to the space transformation of the encoding end, the step is also an optional step, and if the attribute value after attribute reconstruction is the attribute value of the YUV space, the attribute value of the RGB space is obtained by performing inverse space transformation on the attribute value.
And finally, combining the position information obtained by decoding and the corresponding attribute information to obtain point cloud data.
The related art encoding process is described above with reference to fig. 1 to 3. As can be seen from the above description, when encoding and decoding a point cloud, only the position coordinate information and the attribute information of point cloud points in the point cloud are encoded and correspondingly decoded, and the sequence information of the original point cloud points is not retained in the encoding process, so that the sequence of the point cloud points restored by decoding cannot be guaranteed to be the same as the sequence of the original point cloud points, and in the actual application of the point cloud, the sequence information of the point cloud points is very important, which may affect the final application result.
For example, in a synchronous positioning and mapping (SLAM) technology, a mobile platform, such as an unmanned aerial vehicle, an automobile, a remote control car, a robot, and the like, gradually constructs a map of a surrounding environment by acquiring point cloud data when the mobile platform moves in an unknown environment and under the condition that the position of the mobile platform is uncertain, and estimates the pose of the robot by using the map information, thereby realizing autonomous positioning and navigation. If the sequence information is lost in the point cloud encoding and decoding process, the accuracy of map construction is affected, so that the deviation of positioning and navigation results is caused, and adverse effects are generated.
Based on the above problems, the present application provides a point cloud processing method, which can improve the performance and the universality of point cloud encoding and decoding, and specifically, on the basis of encoding and decoding the position coordinates and the attribute information of point cloud points, the encoding and decoding of the sequence information of the point cloud points are increased, so that more information of original point cloud data is retained, the point cloud data can be applied to more scenes, and the calculation result based on the point cloud data is more accurate in more scenes.
The point cloud encoding and decoding method provided by the embodiment of the present application is described in detail below with reference to fig. 4 to 27. The methods in fig. 4 to 27 may be performed by an encoding apparatus or a decoding apparatus.
Fig. 4 shows a schematic flow diagram of a method 10 for processing a point cloud.
As shown in fig. 4, the method 10 for processing the point cloud may include the following steps.
S11: and acquiring data of the point cloud.
S12: and coding or decoding the sequential number of the point cloud points in the point cloud.
Specifically, if the processing method 10 is executed by an encoding apparatus, the processing method 10 may be a point cloud encoding method 100, and as shown in fig. 5, the encoding method 100 may include the following steps.
S110: and coding the sequential numbers of the point cloud points in the point cloud to form a code stream of the point cloud.
S120: and transmitting the code stream of the point cloud.
In the embodiment of the present application, a scanning device for point cloud points, such as a laser radar device, emits laser light to the surface of an environmental object to scan the object, in the process, after a measurement point on the surface of the object reflects a laser signal, the reflected light signal is received by the laser radar device, so as to obtain a point cloud point in a point cloud, where the point cloud point includes information such as a position space of the measurement point and a light reflection intensity, and the information is also referred to as raw data of the point cloud point.
In the process of acquiring point clouds or scanning an environmental object, a scanning device of the point clouds does not acquire a plurality of point clouds at the same time, but sequentially acquires a plurality of point clouds corresponding to a plurality of measuring points on the surface of the environmental object according to a time sequence to form a data packet of the point clouds composed of the plurality of point clouds.
Optionally, in the encoding method of the embodiment of the present application, the plurality of point cloud points in the data packet of the point cloud may be assigned their sequence numbers according to a time sequence, an acquisition sequence, or a scanning sequence of the point cloud points.
For example, the data packet of the acquired point cloud includes N point cloud points, the sequence numbers of the N point cloud points are allocated to be 0 to N-1 according to the time sequence, and the sequence numbers 0 to N-1 are encoded, where N is a positive integer. The sequence numbers of the N point clouds are coded to form a part of the point cloud code stream.
Specifically, if the processing method 10 is executed by a decoding apparatus, the processing method 10 may be a point cloud decoding method 200, as shown in fig. 6, and the decoding method 200 may include the following steps.
S210: and acquiring a code stream of the point cloud.
S220: and decoding the code stream of the point cloud to obtain the sequential number of the point cloud points in the point cloud.
In the embodiment of the application, the code stream of the point cloud corresponds to the code stream obtained by the encoding method, the sequence number of the point cloud points in the point cloud obtained by the decoding corresponds to the sequence number of the point cloud points in the original data of the point cloud points in the encoding method, and the original point cloud can be better recovered by obtaining the sequence number of the original point cloud points according to the decoding.
Optionally, the point cloud points are numbered according to the sequence of the point cloud points in the point cloud, the point cloud points are sorted from small to large to obtain sorted point cloud data, and the original point cloud is recovered according to the sorted point cloud data.
Based on the encoding and decoding methods described in fig. 1 to fig. 3, in the encoding and decoding processes of the point clouds in fig. 5 and fig. 6, the encoding and decoding process of the point cloud points with the sequential numbers can be understood as a newly added encoding and decoding process, and the sequential relationship of the point cloud points is represented by the encoding and decoding of the newly added point cloud points with the sequential numbers, so that the sequence of the decoded point cloud is completely the same as the sequence of the point cloud before encoding, and the accuracy and the universality of the decoded point cloud data in the subsequent application process, such as in the SLAM algorithm, are improved.
Specifically, for the encoding and decoding mode of the sequence number of the point cloud points in the whole point cloud encoding and decoding process, the following various embodiments are specifically proposed in the present application. This plurality of embodiments may be understood as embodiments of step S110 or S220 described above.
Example 1
In this embodiment, in the process of encoding and decoding the positions of the point cloud points in the point cloud, the serial numbers of the point cloud points are encoded or decoded.
Optionally, the encoding and decoding method for the positions of the point cloud points may refer to the above-mentioned multi-way tree encoding and decoding method adopting the breadth-first traversal order, or may also adopt the multi-way tree encoding and decoding method adopting the depth-first traversal order, and the embodiment of the present application does not specifically limit the specific encoding and decoding method for the position coordinates of the point cloud points.
It can be understood that the process of encoding and decoding the positions of the plurality of cloud points may be an encoding and decoding process of a tree structure of the cloud points, and encoding and decoding to leaf nodes of the tree structure are required to complete encoding and decoding of the tree structure no matter a multi-branch tree encoding and decoding mode of a breadth-first traversal order is adopted or a multi-branch tree encoding and decoding mode of a depth-first traversal order is adopted.
In this embodiment, after encoding to the position of one leaf node, the point cloud number and the sequence number in the leaf node are encoded, then the position of the next leaf node is encoded, and then the point cloud number and the sequence number in the next leaf node are encoded until encoding of the positions of all leaf nodes in the tree structure, the point cloud number, and the sequence number is completed.
Fig. 7 shows a schematic flow diagram of a method 101 for encoding a point cloud.
As shown in fig. 7, the encoding method 101 may include the following steps.
S1011: after the position of a first leaf node in a tree structure of the point cloud and the number of point cloud points in the first leaf node are coded, the sequence number of the point cloud points in the first leaf node is coded.
S1012: and after the position of a second leaf node in the tree structure of the point cloud and the number of the point cloud points in the first leaf node are coded, coding the sequential number of the point cloud points in the second leaf node.
Optionally, the first leaf node may be a leaf node in any one of the tree structures of the point cloud, the leaf node including the point cloud point, and in the encoding sequence, the second leaf node is a leaf node after the first leaf node, the leaf node including the point cloud point.
Optionally, if the number of point cloud points in one leaf node is X, the number X may be encoded as X-1, and then the sequence number of the X point cloud points in the leaf node is encoded, and if the sequence number of one of the point cloud points is Y, the sequence number of one of the point cloud points may be encoded as Y-1.
In some embodiments, the location of the point cloud point in the point cloud may be encoded using a breadth-first traversal order encoding scheme.
As an example, FIG. 8 shows a tree structure diagram of a point cloud. If the tree structure of the point clouds in fig. 8 is encoded by using the encoding method of breadth-first traversal order, the position of the point cloud point in the point cloud is encoded as 110010100001 (N)1)01(N2)0000 1(N3)001(N4)01(N5)00, wherein N1To N5The number of point cloud points in leaf node 1# to leaf node 5# respectively. Further, the sequential numbering of the point cloud points is encoded after the number of the point cloud points, and then the position and the sequential numbering of the point cloud points in the point cloud are encoded as 110010100001 (N)1 S1)01(N2 S2)0000 1(N3 S3)001(N4 S4)01(N5 S5)00, wherein S1To S5The point cloud points in leaf node 1# to leaf node 5# are numbered sequentially.
In other embodiments, the position of the point cloud point in the point cloud may also be encoded by using a depth-first traversal order encoding method.
As an example, if the subtree with the node 1# as the root node in fig. 8 satisfies the condition of depth-first traversal order, the subtree with the node 1# as the following is first encoded, and after the encoding is completed, the subtree returns to the node 2# and then the subtree is traversed in the order of breadth-first. Similarly, after encoding the position of the leaf node 1#, the number and the sequence number of the point cloud points in the leaf node 1# are encoded, and after encoding the position of the leaf node 2#, the number and the sequence number of the point cloud points in the leaf node 2# are encoded, and the encoding modes from the leaf node 3# to the leaf node 5# below the node 2# may refer to the above breadth-first encoding mode.
According to the scheme of the embodiment of the application, in the code stream after point cloud coding, the bits corresponding to the position of the first leaf node are adjacent to the bits corresponding to the number of the point cloud points in the first leaf node, and the bits corresponding to the number of the point cloud points in the first leaf node are adjacent to the bits corresponding to the sequence number of the point cloud points in the first leaf node.
In this case, the code stream of the position and sequence number of the point cloud point in the point cloud can be expressed as: p1 N1 S1……Pi Ni Si……Pn Nn SnWherein P isiBit corresponding to the position of the ith leaf node, NiBit corresponding to the number of point clouds in the ith leaf node, SiThe bits corresponding to the serial numbers of the point cloud points in the ith leaf node are represented, and it can be understood that if the point cloud points are included in the ith leaf node, the number and the serial numbers of the point cloud points are encoded, and if the point cloud points are not included in the ith leaf node, the point cloud points are not executedAnd (3) coding the number and the sequence number of the cloud points, wherein i is more than or equal to 1 and less than or equal to n, and n is the number of leaf nodes in the tree structure.
Fig. 9 shows a schematic flow diagram of a method 201 for decoding a point cloud, corresponding to the encoding method 101 in fig. 7.
As shown in fig. 9, the decoding method 201 may include the following steps.
S2011: after decoding a position code stream of a first leaf node in a tree structure of the point cloud and a quantity code stream of point cloud points in the first leaf node, decoding a sequential number code stream of the point cloud points in the first leaf node.
S2012: and after decoding the position code stream of a 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, decoding the sequential number code stream of the point cloud points in the second leaf node.
Optionally, in this embodiment, after the code stream of the position of the first leaf node and the code stream of the number of point cloud points in the first leaf node, the code stream of the sequential number of point cloud points in the first leaf node is arranged.
Optionally, 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 adjacent to the sequential number code stream of the point cloud points in the second leaf node.
Decoding the position code stream of the first leaf node and the number code stream of the point cloud points in the first leaf node to obtain the positions of the point cloud points in the first leaf node, and decoding the sequential number code stream of the point cloud points in the first leaf node to obtain the sequential number of the point cloud points in the first leaf node.
It can be understood that the decoding method 201 is the inverse process of the encoding method 101, and the related schemes can be referred to the above description, which is not described herein again.
Example 2
In this embodiment, after the positions of the plurality of leaf nodes in the point cloud tree structure are coded, the number and the sequence number of the point cloud points in one leaf node are coded, and then the number and the sequence number of the point cloud points in another leaf node are coded until the coding of the number and the sequence number of the point cloud points in the plurality of leaf nodes is completed.
Optionally, after the position coding of the plurality of leaf nodes is completed, the number and the sequence number of the point cloud points in the plurality of leaf node blocks may be coded according to the coding sequence of the positions of the plurality of leaf nodes.
Fig. 10 shows a schematic flow diagram of a method 102 of encoding a point cloud.
As shown in fig. 10, the encoding method 102 may include the following steps.
S1021: the positions of a plurality of leaf nodes in a tree structure of the point cloud are encoded.
S1022: the number and sequence number of point cloud points in the first leaf node are encoded.
S1023: and coding the number and the sequence number of the point cloud points in the second leaf node.
Optionally, the first leaf node may be a leaf node in any one of the tree structures of the point cloud, the leaf node including the point cloud point, and in the encoding sequence, the second leaf node is a leaf node after the first leaf node, the leaf node including the point cloud point.
In some embodiments, the location of the point cloud point in the point cloud may be encoded using a breadth-first traversal order encoding scheme.
As an example, if the tree structure of the point clouds in fig. 8 is encoded by using a breadth-first traversal order encoding method, the positions and order numbers of the point clouds in the point clouds are encoded as 11001010000101000010010100N1 S1 N2S2 N3 S3 N4 S4 N5 S5In which N is1To N5The number of point cloud points, S, in leaf node 1# to leaf node 5# respectively1To S5The order of the point cloud points in the leaf node 1# to the leaf node 5# respectivelyAnd (6) numbering.
In other embodiments, the position of the point cloud point in the point cloud may also be encoded by using a depth-first traversal order encoding method.
As an example, if the subtree with the node 1# as the root node in fig. 8 satisfies the condition of depth-first traversal order, the subtree with the node 1# as the following is first encoded, and after the encoding is completed, the subtree returns to the node 2# and then the subtree is traversed in the order of breadth-first.
Optionally, according to the granularity of the root node, after the positions of the leaf nodes 1# and 2# in the subtree using the node 1# as the root node are encoded, the number and the sequence number of the point cloud points in the leaf node 1# and the number and the sequence number of the point cloud points in the leaf node 2# are encoded, and the encoding modes from the leaf node 3# to the leaf node 5# below the node 2# may refer to the above encoding mode with the breadth first.
Optionally, not according to the granularity of the root node, if the subtree in which the node 1# is the root node includes 3 or more than 3 leaf nodes, the number and the sequence number of the cloud points in the K leaf nodes may be encoded after the positions of the K leaf nodes are encoded, then the positions of other leaf nodes in the subtree are encoded, and the number and the sequence number of the cloud points in the other leaf nodes are encoded after the position encoding is completed.
Optionally, after encoding the positions of all leaf nodes from the leaf node 1# to the leaf node 5# in the sub-tree, the number and the sequence number of the point cloud points in the leaf node 1# to the leaf node 5# are encoded according to the encoding sequence of the positions of the leaf nodes, specifically, after encoding the number of the point cloud points in the leaf node 1# the sequence number of the point cloud points in the leaf node 1# is encoded, and then encoding the number of the point cloud points in the leaf node 2# and the sequence number of the point cloud points in the leaf node 2 #.
It should be noted that after the positions of all or part of the leaf nodes are encoded, an identifier indicating whether each leaf node includes a point cloud point may be added, so that the number of point cloud points in the leaf nodes may be corresponded to the leaf nodes when decoding is performed.
Through the scheme of the embodiment of the application, in the code stream of the point cloud, the bit corresponding to the position of the first leaf node may not be adjacent to the code bit corresponding to the number of the point cloud points in the first leaf node, but the code bit corresponding to the number of the 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.
In this case, the code stream of the position and sequence number of the point cloud point in the point cloud can be expressed as: p1…Pi…Pn…N1 S1…Ni Si…Nn SnWherein P isiBit corresponding to the position of the ith leaf node, NiBit corresponding to the number of point clouds in the ith leaf node, SiAnd if the ith leaf node does not comprise point cloud points, the coding process of the number of the point cloud points and the sequence number is not executed, wherein i is more than or equal to 1 and less than or equal to n, and n is the number of the leaf nodes in the tree structure.
Fig. 11 shows a schematic flow diagram of a method 202 for decoding a point cloud, corresponding to the encoding method 102 in fig. 10.
As shown in fig. 11, the decoding method 202 may include the following steps.
S2021: and decoding the position code streams of a plurality of leaf nodes in the tree structure of the point cloud.
S2022: and decoding the number code stream and the sequence number code stream of the point cloud points in the first leaf node.
S2023: and decoding the number code stream and the sequence number code stream of the point cloud points in the second leaf node.
In the embodiment of the application, after the position code streams of the plurality of leaf nodes in the tree structure of the point cloud, the number code stream and the sequence number code stream of the point cloud points in the plurality of leaf nodes are arranged.
Optionally, in the number code stream and the sequence number code stream of the point cloud points in the multiple leaf nodes, after the number code stream of the point cloud points in the first leaf node, the sequence number code stream of the point cloud points in the first leaf node is arranged, and 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.
Optionally, in the number code stream and the sequence number code stream of the point cloud points in the plurality of leaf nodes, the sequence number code stream of the point cloud points in the plurality of nodes is arranged after the number code stream of the point cloud points in the plurality of leaf nodes.
Optionally, an arrangement order of the plurality of leaf node blocks in the stream of the number of point cloud points in the plurality of leaf nodes is the same as an arrangement order of the plurality of leaf node blocks in the stream of the sequence number of point cloud points in the plurality of leaf nodes.
It is understood that the decoding method 202 is the inverse process of the encoding method 102, and the related schemes can be referred to the above description, which is not described herein again.
Example 3
In this embodiment, after the position of the point cloud point in the point cloud is coded and decoded, the sequential number of the point cloud point in the point cloud is coded and decoded.
Specifically, after the position coding of the plurality of leaf nodes in the point cloud tree structure is completed, the number of point cloud points in the plurality of leaf nodes is coded, and then the serial numbers of the point cloud points in the plurality of leaf nodes are coded.
Optionally, the number of point cloud points in the leaf nodes may be encoded according to an encoding order of positions of the leaf nodes, and the order number of the point cloud points in the leaf node blocks may be encoded.
Fig. 12 shows a schematic flow diagram of a method 103 for encoding a point cloud.
As shown in fig. 12, the encoding method 103 may include the following steps.
S1031: the positions of a plurality of leaf nodes in a tree structure of the point cloud are encoded.
S1032: encoding a number of point cloud points in a plurality of leaf nodes.
S1032: and coding the sequence numbers of the plurality of point cloud points in the plurality of leaf nodes.
Optionally, in this embodiment of the application, the plurality of leaf nodes may be part or all of the leaf nodes in the point cloud. After the position coding of the part or all of the leaf nodes in the tree structure of the point cloud is finished, the number of the point cloud points in the part or all of the leaf nodes is coded, and then the sequence numbers of the point cloud points in the part or all of the leaf nodes are coded.
Specifically, a tree structure of the point cloud is encoded by using a coding mode of breadth-first traversal order or a coding mode of depth-first traversal order, then the number of point cloud points in each leaf node including the point cloud points is encoded according to the coding order of the leaf nodes, and then the sequence number of the point cloud points in each leaf node including the point cloud points is encoded.
If the tree structure of the point clouds in fig. 8 is encoded using breadth-first traversal order, the point cloud point locations and order numbers in the point clouds are encoded as 11001010000101000010010100N1 N2 N3 N4 N5 S1 S2 S3 S4 S5In which N is1To N5The number of point cloud points, S, in leaf node 1# to leaf node 5# respectively1To S5The point cloud points in leaf node 1# to leaf node 5# are numbered sequentially.
If the subtree in fig. 8 with node 1# as the root node satisfies the condition of depth-first traversal order, optionally, according to the granularity of the root node, after encoding the positions of leaf node 1# and leaf node 2# in the subtree with node 1# as the root node, the number of cloud points in leaf node 1# and leaf node 2# is encoded, and then the sequential numbering of the cloud points in leaf node 1# and leaf node 2# is encoded, and the encoding manner from leaf node 3# to leaf node 5# below node 2# may refer to the above encoding manner with breadth-first.
Optionally, not according to the granularity of the root node, if the subtree in which the node 1# is the root node includes 3 or more than 3 leaf nodes, the number of point cloud points in the K leaf nodes may be encoded after the positions of the K leaf nodes are encoded, then the sequential numbers of the point cloud points in the K leaf nodes are encoded, then the positions of other leaf nodes in the subtree are encoded, and after the position encoding is completed, the number of point cloud points in the other leaf nodes and the sequential numbers of point cloud points in the other leaf nodes are encoded.
Optionally, after encoding the positions of all leaf nodes from the leaf node 1# to the leaf node 5# in the sub-tree, the number of the point cloud points from the leaf node 1# to the leaf node 5# is encoded according to the encoding sequence of the positions of the leaf nodes, and then the serial numbers of the point cloud points from the leaf node 1# to the leaf node 5# are encoded.
It should be noted that after the positions of all or part of the leaf nodes are encoded, an identifier indicating whether each leaf node includes a point cloud point may be added, so that the number of point cloud points in the leaf nodes may be corresponded to the leaf nodes when decoding is performed.
According to the scheme of the application embodiment, in the code stream of the point cloud, the bits corresponding to the number of the point cloud points in the leaf nodes are adjacent to the bits corresponding to the sequence numbers of the point cloud points in the leaf nodes.
In this case, the code stream of the position and sequence number of the point cloud point in the point cloud can be expressed as: p1…Pi…PnN1…Ni…Nn S1…Si…SnWherein P isiPosition-coded bit, N, representing the ith leaf nodeiBit corresponding to the number of point clouds in the ith leaf node, SiAnd if the ith leaf node does not comprise point cloud points, the coding process of the number of the point cloud points and the sequence number is not executed, wherein i is more than or equal to 1 and less than or equal to n, and n is the number of the leaf nodes in the tree structure.
Fig. 13 shows a schematic flow diagram of a method 203 for decoding a point cloud, corresponding to the encoding method 103 in fig. 12.
As shown in fig. 13, the decoding method 203 may include the following steps.
S2031: and decoding the position code streams of a plurality of leaf nodes in the tree structure of the point cloud.
S2032: and decoding the number code stream of the plurality of point cloud points in the plurality of leaf nodes.
S2032: and decoding the serial number code stream of the plurality of point cloud points in the plurality of leaf nodes.
Optionally, after the position code streams of the plurality of leaf nodes in the point cloud tree structure, the number code streams of the point cloud points in the plurality of leaf nodes are arranged, and the number code streams of the point cloud points in the plurality of leaf nodes may be adjacent to the sequential number code streams of the point cloud points in the plurality of leaf nodes.
It is understood that the decoding method 203 is the inverse process of the encoding method 103, and the related schemes can be referred to the above description, which is not described herein again.
Example 4
In this embodiment, after the position of one leaf node in the tree structure of the point cloud is encoded, the number of point cloud points in the leaf node is encoded, then the positions of other leaf nodes and the number of point cloud points in the tree structure of the point cloud are encoded, and after the positions of a plurality of leaf nodes and the number of point cloud points in the plurality of leaf nodes are encoded, the number of point cloud points in the plurality of leaf nodes is encoded.
Optionally, after the position codes of the leaf nodes and the number codes of the point cloud points in the leaf node blocks are completed, the sequence numbers of the point cloud points in the leaf node blocks are coded according to the coding sequence of the positions of the leaf nodes.
Fig. 14 shows a schematic flow diagram of a method 104 for encoding a point cloud.
As shown in fig. 14, the encoding method 104 may include the following steps.
S1041: after the position of a first leaf node in the tree structure of the point cloud is coded, the number of point cloud points in the first leaf node is coded.
S1042: and after the position of a second leaf node in the tree structure of the point cloud is coded, the number of the point cloud points in the second leaf node is coded.
S1043: the sequential numbering of the point cloud points in the plurality of leaf nodes is encoded.
Optionally, the tree structure of the point cloud and the number of point cloud points in the leaf nodes are encoded by using a breadth-first traversal order encoding method or a depth-first traversal order encoding method, and then, the sequence number of the point cloud points in each leaf node including the point cloud points is encoded according to the leaf node encoding order.
For example, if the tree structure of the point clouds in fig. 8 is encoded using breadth-first traversal, the positions of the nodes in the tree structure and the number of point cloud points are encoded as 110010100001 (N)1)01(N2)0000 1(N3)001(N4)01(N5)00, then sequentially coding the sequential numbers of point cloud points in the leaf nodes from 1# to 5#, and coding the point cloud points into 110010100001 (N)1)01(N2)0000 1(N3)001(N4)01(N5)00(S1)(S2)(S3)(S4)(S5) In which N is1To N5The number of point cloud points, S, in leaf node 1# to leaf node 5# respectively1To S5The point cloud points in leaf node 1# to leaf node 5# are numbered sequentially.
According to the scheme of the application embodiment, in the code stream of the point cloud, the bits corresponding to the number of the point cloud points in the last leaf node in the plurality of leaf nodes are adjacent to the bits corresponding to the sequence numbers of the point cloud points in the plurality of leaf nodes.
In this case, the code stream of the position and sequence number of the point cloud point in the point cloud can be expressed as: p1 N1…PiNi…Pn Nn…S1…Si…SnWherein P isiPosition-coded bit, N, representing the ith leaf nodeiBit corresponding to the number of point clouds in the ith leaf node, SiAnd if the ith leaf node does not comprise point cloud points, the coding process of the number of the point cloud points and the sequence number is not executed, wherein i is more than or equal to 1 and less than or equal to n, and n is the number of the leaf nodes in the tree structure.
Corresponding to the encoding method 104 in fig. 14, fig. 15 shows a schematic flow diagram of a method 204 for decoding a point cloud.
As shown in fig. 15, the decoding method 204 may include the following steps.
S2041: and after the position code stream of the first leaf node in the point cloud tree structure is decoded, the number code stream of the point cloud points in the first leaf node is decoded.
S2042: and after the position code stream of the second leaf node in the tree structure of the point cloud is decoded, the number code stream of the point cloud points in the second leaf node is decoded.
S2043: and decoding the sequential serial number code stream of the point cloud points in the leaf nodes.
In this embodiment, after the position code stream of the first leaf node in the tree structure of the point cloud, the number code stream of the point cloud points in the first leaf node is arranged. And after the position code stream of the second leaf node, the number code stream of the point cloud points in the second leaf node is arranged. After the position code stream of the last leaf node in the tree structure, the number code stream of the point cloud points in the last leaf node is arranged. After the code stream of the number of the point cloud points in the last leaf node, the code streams of the sequence numbers of the point cloud points in the plurality of leaf nodes are arranged.
Optionally, the code stream of the number of point cloud points in the last leaf node is adjacent to the code stream of the sequential number of point cloud points in the plurality of leaf nodes.
Optionally, an arrangement order of the plurality of leaf node blocks in the stream of the number of point cloud points in the plurality of leaf nodes is the same as an arrangement order of the plurality of leaf node blocks in the stream of the sequence number of point cloud points in the plurality of leaf nodes.
It is understood that the decoding method 204 is the inverse process of the encoding method 104, and the related schemes can be referred to the above description, which is not described herein again.
As can be seen from the above description, the encoding and decoding methods of the above 4 embodiments only include: the encoding and decoding method may further include encoding and decoding attributes of the point cloud points in the point cloud, and the specific encoding and decoding manner of the attributes of the point cloud points may be described in the above related description in fig. 1, or may also adopt an encoding method of other attributes, which is not specifically limited in the embodiment of the present application.
It should be noted that, in the above 4 embodiments, if one leaf node includes multiple cloud points, the sequence number is a sequence number of the multiple cloud points, the sequence number of the multiple cloud points in the same leaf node may be encoded according to a target sequence, and subsequently, when the attribute of the multiple cloud points in the same leaf node is encoded, the attribute of the multiple cloud points is also encoded by using the target sequence.
Optionally, the target sequence may be in a sequence numbered from small to large, or in a sequence numbered from large to small, or in any other sequence, which is not limited in this application.
Correspondingly, in the decoding process, if the number of point cloud points in one leaf node of the plurality of leaf nodes is multiple, in the code stream numbered in the sequence of the point cloud points in the one leaf node, the point cloud points are numbered in the sequence from small to large or in the sequence from large to small. In the attribute code stream of the point cloud points in the leaf node, the point cloud points are also numbered in sequence from small to large or from large to small.
In the above, with reference to embodiments 1 to 4, the process of coding and decoding the sequential numbers of the point cloud points in the coding and decoding process of the positions of the point cloud points in the point cloud is described.
In addition, the serial numbers of the point cloud points can be coded and decoded in the process of coding and decoding the attributes of the point cloud points in the point cloud.
Optionally, the encoding and decoding method for the attributes of the pair of cloud points may refer to the above description in fig. 1 and fig. 3.
Optionally, in order to implement lossless encoding of the point cloud, in the process of encoding the position of the point cloud, the quantized position coordinates of the point cloud point are not subjected to a deduplication step, and in the process of encoding the attribute of the point cloud, a re-coloring step is not performed. The method comprises the steps of directly searching a morton table according to the geometric coordinates of point cloud points to obtain the morton code corresponding to each point cloud point, reordering the point clouds based on the morton codes, and encoding the attribute values of the ordered point clouds.
Example 5
In this embodiment, after the attribute and the sequence number of one point cloud point are encoded, the attribute and the sequence number of another point cloud point are encoded.
Fig. 16 shows a schematic flow diagram of a method 105 for encoding a point cloud.
As shown in fig. 16, the encoding method 105 may include the following steps.
S1051: and coding the attribute and the sequence number of the first point cloud point in the point cloud.
S1052: and coding the attribute and the sequence number of the second point cloud point in the point cloud.
Optionally, in the coordinate position sequence or the morton code sequence, the second point cloud point is any one point cloud point after the first point cloud point, and the specific positions of the first point cloud point and the second point cloud point are not limited in this embodiment of the application.
Through the scheme of this embodiment, in the code stream of the point cloud, 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 is adjacent to the bit corresponding to the sequence number of the second point cloud point.
In this case, it may be attribute codingThe bits are located before the coded bits of the sequential number, and for example, the attribute of the point cloud point in the point cloud and the code stream of the sequential number may be represented as: c1 S1…Cj Sj…CN SNWherein, CjAttribute coded bit, S, representing the j point cloud pointjJ is more than or equal to 1 and is less than or equal to N, and N is the number of point cloud points in the point cloud. Optionally, the sequentially numbered code bits may also be located before the attribute code bits, for example, the code stream of the attribute and the sequential number of the point cloud point in the point cloud may be represented as: s1 C1…Sj Cj…SN CN
Fig. 17 shows a schematic flow diagram of a method 205 for decoding a point cloud, corresponding to the encoding method 105 in fig. 16.
As shown in fig. 17, the decoding method 205 may include the following steps.
S2051: and decoding the attribute code stream and the sequence number code stream of the first point cloud point.
S2052: and decoding the attribute code stream and the sequence number code stream of the second point cloud point.
In the embodiment of the present application, after the attribute code stream and the sequence number code stream of one point cloud point in the point cloud, the attribute code stream and the sequence number code stream of another point cloud point in the point cloud are arranged.
Optionally, after the attribute code stream and the sequence number code stream of the first point cloud point, the attribute code stream and the sequence number code stream of the second point cloud point are arranged.
Optionally, the attribute code stream of the first point cloud point is adjacent to the sequential number code stream of the first point cloud point. And the attribute code stream of the second point cloud point is adjacent to the sequential serial number code stream of the second point cloud point.
It is understood that the decoding method 205 is the inverse process of the encoding method 105, and the related schemes can be referred to the above description, which is not described herein again.
Example 6
Fig. 18 shows a schematic flow diagram of a method 106 of encoding a point cloud.
As shown in fig. 18, the encoding method 106 may include the following steps.
S1061: and encoding the attributes of a plurality of cloud points in the point cloud.
S1062: and coding the serial numbers of the plurality of cloud points in the point cloud.
In this embodiment, after the attributes of a plurality of cloud points in a point cloud are encoded, the serial numbers of the plurality of cloud points are encoded. Or after the serial numbers of the plurality of cloud points in the point cloud are coded, the attributes of the plurality of cloud points are coded. Alternatively, the total number of sequential numbers may be equal to the total number of attributes.
Optionally, the sequence numbers of the plurality of cloud points are encoded according to an encoding sequence of the attributes of the plurality of cloud points. Or encoding the attributes of the plurality of cloud points according to the encoding sequence of the serial numbers of the plurality of cloud points.
Optionally, the plurality of point cloud points may be some or all of the point cloud points in the point cloud.
Through the scheme of the embodiment, in the code stream of the point cloud, the bits corresponding to the attributes of the plurality of point cloud points are adjacent to the bits corresponding to the sequence numbers of the plurality of point cloud points.
In this case, the code stream of the attribute and the sequence number of the point cloud point in the point cloud may be represented as: c1…Cj…CNS1…Sj…SNOr, S1…Sj…SN C1…Cj…CNWherein, CjAttribute coded bit, S, representing the j point cloud pointjJ is more than or equal to 1 and is less than or equal to N, and N is the number of point cloud points in the point cloud.
Fig. 19 shows a schematic flow diagram of a method 206 for decoding a point cloud, corresponding to the encoding method 106 in fig. 18.
As shown in fig. 19, the decoding method 206 may include the following steps.
S2061: and decoding the attribute code streams of the plurality of cloud points.
S2062: and decoding the serial number code streams of the plurality of cloud points.
In the embodiment of the application, after the attribute code stream of the plurality of cloud points in the point cloud, the serial number code stream of the plurality of cloud points is arranged.
Optionally, the attribute code stream of the plurality of cloud points is adjacent to the sequentially numbered code stream of the plurality of cloud points.
Optionally, an arrangement order of the plurality of cloud points in the serial number code stream of the plurality of cloud points is the same as an arrangement order of the plurality of cloud points in the attribute code stream of the plurality of cloud points.
It is understood that the decoding method 206 is the inverse process of the encoding method 106, and the related schemes can be referred to the above description, which is not described herein again.
It can be understood that the coding and decoding methods of the above embodiments 5 and 6 only include: the attribute and the sequence number of the point cloud point in the point cloud may be coded or decoded, and the coding method may further include coding or decoding the position of the point cloud point in the point cloud, and the specific coding or decoding manner of the position of the point cloud point may refer to the relevant description in fig. 1 and fig. 3 above, and may also adopt coding or decoding methods of other positions, which is not specifically limited in the embodiment of the present application.
Example 7
Optionally, the sequential numbering of the point cloud points may be integrated into the encoding and decoding processes of the positions and attributes of the point cloud points.
Fig. 20 shows a schematic flow diagram of a method 107 for encoding a point cloud.
As shown in fig. 20, the encoding method 107 may include the following steps.
S1071: after the position of a first leaf node in a tree structure of the point cloud and the number of point cloud points in the first leaf node are coded, the sequence number of the point cloud points in the first leaf node is coded.
S1072: encoding attributes of point cloud points in the first leaf node.
S1073: and after the position of a second leaf node in the tree structure of the point cloud and the number of the point cloud points in the first leaf node are coded, coding the sequential number of the point cloud points in the second leaf node.
S1074: encoding attributes of point cloud points in the second leaf node.
Optionally, the first leaf node may be a leaf node in any one of the tree structures of the point cloud, the leaf node including the point cloud point, and in the encoding sequence, the second leaf node is a leaf node after the first leaf node, the leaf node including the point cloud point.
By adopting the method, position coding and the number and the sequence of the cloud points of the middle point can be finished on all leaf nodes in the tree structure of the point cloud, so that all the point cloud points in the point cloud are coded, and the code stream of the point cloud is generated.
Optionally, the above steps S1071 and S1073 may refer to the related description of steps S1011 and S1012 in fig. 7, and are not described herein again.
In some embodiments, the attribute of the point cloud point in the first leaf node may be encoded after encoding the sequential number of the point cloud point in the first leaf node, and similarly, the attribute of the point cloud point in the second leaf node may be encoded after encoding the sequential number of the point cloud point in the second leaf node.
In other embodiments, after the attribute of the point cloud point in the first leaf node is encoded, the serial number of the point cloud point in the first leaf node may be encoded, and similarly, after the attribute of the point cloud point in the second leaf node is encoded, the serial number of the point cloud point in the second leaf node may be encoded.
If the tree structure of the point clouds in fig. 8 is encoded by using the encoding method of breadth-first traversal order, and the number, attributes, and order numbers of the cloud points of the encoding points in the leaf node layer, the code stream of the point clouds can be represented as 110010100001 (N)1 S1 C1)01(N2 S2 C2)0000 1(N3 S3 C3)001(N4 S4 C4)01(N5 S5 C5)00, or, 110010100001 (N)1 C1 S1)01(N2 C2 S2)0000 1(N3 C3 S3)001(N4 C4 S4)01(N5 C5 S5)00, wherein N1To N5The number of point cloud points, S, in leaf node 1# to leaf node 5# respectively1To S5The sequential numbering of the point cloud points in the leaf node 1# to the leaf node 5# respectively, C1To C5The attributes of the point cloud points in leaf node 1# to leaf node 5# respectively.
According to the scheme of this embodiment, in the code stream after the point cloud coding, bits corresponding to the number of point cloud points in the first leaf node are adjacent to bits corresponding to the attribute of the point cloud points in the first leaf node, and bits corresponding to the attribute of the point cloud points in the first leaf node are adjacent to bits corresponding to the sequence number of the point cloud points in the first leaf node, or bits corresponding to the number of point cloud points in the first leaf node are adjacent to bits corresponding to the sequence number of the point cloud points in the first leaf node, and bits corresponding to the sequence number of the point cloud points in the first leaf node are adjacent to bits corresponding to the attribute of the point cloud points in the first leaf node.
In this case, the code stream of the point cloud may be represented as: p1 N1 S1 C1……Pi Ni Si Ci……Pn Nn SnCnOr P is1 N1 C1 S1……Pi Ni Ci Si……Pn Nn Cn SnWherein P isiBit corresponding to the position of the ith leaf node, NiBit corresponding to the number of point clouds in the ith leaf node, SiBit corresponding to the sequential number of the point cloud point in the ith leaf node, CiA bit representing the attribute correspondence of the point cloud point in the ith leaf node may beIt is understood that if the ith leaf node includes point cloud points, the number, sequence number and attribute of the point cloud points are coded, and if the ith leaf node does not include the point cloud points, the coding process of the number, sequence number and attribute of the point cloud points is not executed, wherein i is more than or equal to 1 and less than or equal to n, and n is the number of leaf nodes in the tree structure.
Fig. 21 shows a schematic flow diagram of a method 207 for decoding a point cloud, corresponding to the encoding method 107 in fig. 20.
As shown in fig. 21, the decoding method 207 may include the following steps.
S2071: after decoding a position code stream of a first leaf node in a tree structure of the point cloud and a quantity code stream of point cloud points in the first leaf node, decoding a sequential number code stream of the point cloud points in the first leaf node.
S2072: and decoding the attribute code stream of the point cloud point in the first leaf node.
S2073: and after decoding the position code stream of a 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, decoding the sequential number code stream of the point cloud points in the second leaf node.
S2074: and decoding the attribute code stream of the point cloud point in the second leaf node.
In the embodiment of the application, after the position code stream of the first leaf node and the number code stream of the point cloud points in the first leaf node, the attribute code stream of the point cloud points in the first leaf node is arranged; before or after the attribute code stream of the point cloud point in the first leaf node, the sequential number code stream of the point cloud point in the first leaf node is arranged.
If the sequentially numbered code streams of the point cloud points in the first leaf node are arranged after the attribute code streams of the point cloud points in the first leaf node, optionally, the number code streams of the point cloud points in the first leaf node are adjacent to the attribute code streams of the point cloud points in the first leaf node, and the attribute code streams of the point cloud points in the first leaf node are adjacent to the sequentially numbered code streams of the point cloud points in the first leaf node;
if the sequentially numbered code streams of the point cloud points in the first leaf node are arranged before the attribute code streams of the point cloud points in the first leaf node, optionally, the number code streams of the point cloud points in the first leaf node are adjacent to the sequentially numbered code streams of the point cloud points in the first leaf node, and the sequentially numbered code streams of the point cloud points in the first leaf node are adjacent to the attribute code streams of the point cloud points in the first leaf node.
It is understood that the decoding method 207 is the inverse process of the encoding method 107, and the related schemes can be referred to the above description, which is not described herein again.
Example 8
FIG. 22 shows a schematic flow diagram of a method 108 of encoding a point cloud.
As shown in fig. 22, the encoding method 108 may include the following steps.
S1081: after the position of a first leaf node in a tree structure of the point cloud and the number of point cloud points in the first leaf node are coded, the attribute of the point cloud point in the first leaf node is coded.
S1082: and after the position of a second leaf node in the tree structure of the point cloud and the number of the point cloud points in the second leaf node are coded, the attribute of the point cloud points in the second leaf node is coded.
S1083: and coding the serial numbers of the plurality of cloud points in the point cloud.
Optionally, the first leaf node may be a leaf node in any one of the tree structures of the point cloud, the leaf node including the point cloud point, and in the encoding sequence, the second leaf node is a leaf node after the first leaf node, the leaf node including the point cloud point.
Specifically, in the embodiment of the present application, in the process of encoding the positions of a plurality of leaf nodes in the tree structure, the encoding of the attributes of point cloud points in the leaf nodes is added to complete the encoding of the positions and the attributes of the point cloud points, and the process of sequentially numbering all the point cloud points is placed after the encoding of the positions and the attributes.
Optionally, after the position coding of the plurality of leaf nodes is completed, the serial numbers of the point cloud points in the plurality of leaf node blocks may be coded according to the coding sequence of the positions of the plurality of leaf nodes.
If the tree structure of the point clouds in fig. 8 is encoded by using the encoding method of breadth-first traversal order, and the number and attributes of the point cloud points are encoded in the leaf node layer, the code stream of the point clouds can be represented as 110010100001 (N)1 C1)01(N2 C2)0000 1(N3 C3)001(N4 C4)01(N5 C5)00, after the number and the attributes of the point cloud points are coded, the sequential numbering of the point cloud points is continuously coded, and the code stream of the point cloud points can be represented as 110010100001 (N)1 C1)01(N2 C2)0000 1(N3 C3)001(N4 C4)01(N5 C5)00S1 S2 S3 S4 S5In which N is1To N5The number of point cloud points, S, in leaf node 1# to leaf node 5# respectively1To S5The sequential numbering of the point cloud points in the leaf node 1# to the leaf node 5# respectively, C1To C5The attributes of the point cloud points in leaf node 1# to leaf node 5# respectively.
Through the scheme of the embodiment, in the code stream after point cloud coding, the bits corresponding to the serial numbers of the point cloud points are adjacent, and the bits corresponding to the number of the point cloud points in one leaf node are adjacent to the bits corresponding to the attributes of the point cloud points in the leaf node.
In this case, the code stream of the point cloud may be represented as: p1 N1 C1……Pi Ni Ci……Pn Nn Cn S1…Si…SnWherein P isiBit corresponding to the position of the ith leaf node, NiBit corresponding to the number of point clouds in the ith leaf node, SiThe bits corresponding to the sequential numbers of the point cloud points in the ith leaf node are shown,Ciand if the ith leaf node does not comprise the point cloud point, the coding process of the number, the sequence number and the attribute of the point cloud point is not executed, wherein i is more than or equal to 1 and less than or equal to n, and n is the number of the leaf nodes in the tree structure.
Corresponding to the encoding method 108 in fig. 22, fig. 23 shows a schematic flow diagram of a method 208 of decoding a point cloud.
As shown in fig. 23, the decoding method 208 may include the following steps.
S2081: after decoding a position code stream of a first leaf node in a tree structure of the point cloud and a quantity code stream of point cloud points in the first leaf node, decoding an attribute code stream of the point cloud points in the first leaf node.
S2082: and after decoding the position code stream of a 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, decoding the attribute code stream of the point cloud points in the second leaf node.
S2083: and decoding the serial number code stream of the plurality of point cloud points in the point cloud.
In the embodiment of the application, after the position code stream and the attribute code stream of the point cloud point in the plurality of leaf nodes in the tree structure of the point cloud, the code stream of the sequential number of the point cloud point in the plurality of leaf nodes is arranged.
It is understood that the decoding method 208 is the inverse process of the encoding method 108, and the related schemes can be referred to the above description, which is not described herein again.
Example 9
Fig. 24 shows a schematic flow diagram of a method 109 for encoding a point cloud.
As shown in fig. 24, the encoding method 109 may include the following steps.
S1091: after the position of a first leaf node in a tree structure of the point cloud and the number of point cloud points in the first leaf node are coded, the sequence number of the point cloud points in the first leaf node is coded.
S1092: and after the position of a second leaf node in the tree structure of the point cloud and the number of the point cloud points in the second leaf node are coded, coding the serial numbers of the point cloud points in the second leaf node.
S1093: and encoding the attributes of a plurality of cloud points in the point cloud.
Optionally, the first leaf node may be a leaf node in any one of the tree structures of the point cloud, the leaf node including the point cloud point, and in the encoding sequence, the second leaf node is a leaf node after the first leaf node, the leaf node including the point cloud point.
Specifically, in the embodiment of the present application, in the process of encoding the positions of a plurality of leaf nodes in a tree structure, the encoding of the sequential number of point cloud points in the leaf nodes is added, and after the encoding of the positions and the sequential number of the point cloud points is completed, the attributes of all the point cloud points are encoded.
Optionally, after the encoding of the positions of the plurality of leaf nodes is completed, the attributes of the point cloud points in the plurality of leaf node blocks may be encoded according to the encoding sequence of the positions of the plurality of leaf nodes.
If the tree structure of the point clouds in fig. 8 is encoded by using the encoding method of breadth-first traversal order, and the number and attributes of the point cloud points are encoded in the leaf node layer, the code stream of the point clouds can be represented as 110010100001 (N)1 S1)01(N2 S2)0000 1(N3 S3)001(N4 S4)01(N5 S5)00C1 C2 C3 C4 C5In which N is1To N5The number of point cloud points, S, in leaf node 1# to leaf node 5# respectively1To S5The sequential numbering of the point cloud points in the leaf node 1# to the leaf node 5# respectively, C1To C5The attributes of the point cloud points in leaf node 1# to leaf node 5# respectively.
Through the scheme of the embodiment, in the code stream after point cloud coding, the bits corresponding to the attributes of the point cloud points are adjacent, and the bits corresponding to the number of the point cloud points in one leaf node are adjacent to the bits corresponding to the sequence numbers of the point cloud points in the leaf node.
In this case, the code stream of the point cloud may be represented as: p1 N1 S1……Pi Ni Si……Pn Nn Sn C1…Ci…CnWherein P isiBit corresponding to the position of the ith leaf node, NiBit corresponding to the number of point clouds in the ith leaf node, SiBit corresponding to the sequential number of the point cloud point in the ith leaf node, CiAnd if the ith leaf node does not comprise the point cloud point, the coding process of the number, the sequence number and the attribute of the point cloud point is not executed, wherein i is more than or equal to 1 and less than or equal to n, and n is the number of the leaf nodes in the tree structure.
Fig. 25 shows a schematic flow diagram of a method 209 for decoding a point cloud, corresponding to the encoding method 109 in fig. 24.
As shown in fig. 25, the decoding method 209 may include the following steps.
S2091: after decoding a position code stream of a first leaf node in a tree structure of the point cloud and a quantity code stream of point cloud points in the first leaf node, decoding a sequential number code stream of the point cloud points in the first leaf node.
S2092: and after decoding the position code stream of a 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, decoding the sequential number code stream of the point cloud points in the second leaf node.
S2093: and decoding the attribute code stream of a plurality of point cloud points in the point cloud.
In the embodiment of the application, after the position code stream and the sequence number code stream of the point cloud point in the leaf nodes in the tree structure of the point cloud, the attribute code stream of the point cloud point in the leaf nodes is arranged.
Specifically, after the position code stream of the first leaf node and the number code stream of the point cloud points in the first leaf node, the sequential number code streams of the point cloud points in the first leaf node are arranged; after the position code stream and the sequence number code stream of the point cloud point in the leaf nodes, the attribute code stream of the point cloud point in the leaf nodes is arranged.
It is understood that the decoding method 209 is the inverse process of the encoding method 109, and the related schemes can be referred to the above description, which is not described herein again.
Example 10
Optionally, the encoding of the sequential number of the point cloud points may also be an encoding process independent of the location and attribute encoding of the point cloud points.
Fig. 26 shows a schematic flow diagram of a method 1010 of encoding a point cloud.
As shown in fig. 26, the encoding method 1010 may include the following steps.
S10101: and coding the positions of a plurality of cloud points in the point cloud.
S10102: and encoding the attributes of a plurality of cloud points in the point cloud.
S10103: and coding the serial numbers of the plurality of cloud points in the point cloud.
Alternatively, the sequential numbers of the plurality of cloud points may be encoded in an encoding order of the positions of the plurality of cloud points, or in an encoding order of the positions of the plurality of cloud points.
If the tree structure of the point clouds in fig. 8 is encoded by using the encoding method of breadth-first traversal order, the code stream of the point clouds may be represented as 110010100001 (N)1)01(N2)0000 1(N3)001(N4)01(N5)00S1 S2 S3 S4 S5C1 C2 C3 C4 C5Alternatively, 10010100001 (N)1)01(N2)0000 1(N3)001(N4)01(N5)00C1 C2 C3 C4C5 S1 S2 S3 S4 S5In which N is1To N5The number of point cloud points, S, in leaf node 1# to leaf node 5# respectively1To S5The sequential numbering of the point cloud points in the leaf node 1# to the leaf node 5# respectively, C1To C5The attributes of the point cloud points in leaf node 1# to leaf node 5# respectively.
In this case, the code stream of the point cloud may be represented as: p1 N1…Pi Ni…Pn Nn…S1…Si…Sn Ci…Ci…CnOr P is1 N1…Pi Ni…Pn Nn…Ci…Ci…Cn S1…Si…SnWherein P isiBit corresponding to the position of the ith leaf node, NiBit corresponding to the number of point clouds in the ith leaf node, SiBit corresponding to the sequential number of the point cloud point in the ith leaf node, CiAnd if the ith leaf node does not comprise the point cloud point, the coding process of the number, the sequence number and the attribute of the point cloud point is not executed, wherein i is more than or equal to 1 and less than or equal to n, and n is the number of the leaf nodes in the tree structure.
Corresponding to the encoding method 1010 in fig. 26, fig. 27 shows a schematic flow diagram of a method 2010 for decoding a point cloud.
As shown in fig. 27, the decoding method 2010 may include the following steps.
S20101: and decoding the position code stream of the plurality of cloud points.
S20102: and decoding the attribute code streams of the plurality of cloud points.
S20103: and decoding the serial number code streams of the plurality of cloud points.
It can be understood that the decoding method 2010 is the inverse process of the encoding method 1010, and the related schemes can be referred to the above description, which is not described herein again.
In the above, different embodiments use different coding orders to code the positions, attributes, and sequence numbers of point cloud points in the point cloud, so as to obtain different code stream structures. In some embodiments, the encoding order may be agreed by an encoding and decoding end, the encoding end encodes according to any one of the encoding orders in the foregoing embodiments, and correspondingly, the decoding end decodes according to a corresponding decoding order. In other embodiments, the identifier indicating the encoding order may also be written into the header information of the point cloud, for example, if the point cloud is encoded by using the encoding order in embodiment 1, the encoding order identifier 0 corresponding to embodiment 1 may be written into the header information of the point cloud, and the decoding end obtains the encoding order information by decoding the header information of the point cloud, and then decodes the code stream of the point cloud by using the corresponding decoding order. The embodiment of the present application does not specifically limit the numerical value of the coding sequence identifier and the coding and decoding method.
The encoding and decoding processes of the positions, attributes and sequence numbers of the point cloud points in the point cloud are described above with reference to specific embodiments. The specific encoding and decoding methods of these parts are further described below.
In the encoding and decoding process of the positions of the point cloud points in the point cloud, the encoding and decoding process of the number of the point cloud points is included, optionally, any encoding and decoding mode in the prior art may be adopted for the encoding and decoding mode of the number of the point cloud points, and the present application is not limited to this specifically. For example, the number of cloud points may be encoded by using a binary entropy coding or a multivariate entropy coding method, and correspondingly, the number of cloud points may be decoded by using a binary entropy decoding or multivariate entropy decoding method.
In the process of encoding and decoding the attribute of the point cloud point, binary entropy encoding may be adopted to encode the attribute of the point cloud point, and correspondingly, a decoding mode of binary entropy decoding may be adopted to decode the attribute of the point cloud point, wherein the binary entropy encoding may be equal probability binary entropy encoding or context-based binary entropy encoding. Compared with an attribute coding scheme of a level of detail (LOD) coding scheme, the coding method has the advantages that the computing complexity is greatly reduced, and the part of time overhead and the overhead of computing resources are reduced in the coding and decoding processes. And correspondingly deleting longer parameter description related to LOD coding, and the compression performance is obviously improved when the point cloud data volume is less.
Optionally, as for the sequential numbering of the point cloud points in the point cloud, as can be seen from the above description, the sequential numbering is used to represent the sequence of the plurality of point cloud points, which is related to the number of point cloud points.
In some embodiments, the sequential number values may be directly coded.
In other embodiments, the difference value of the sequence number value may be further encoded and decoded to implement encoding and decoding of the sequence number values of the plurality of point cloud points, so as to further reduce the encoding bits, thereby improving the compression performance of the point cloud.
Optionally, the coding order of the sequence numbers or sequence number difference values of the point cloud points is the same as the coding order of the positions of the leaf nodes or the coding order of the attributes of the point cloud points.
Specifically, if the difference value of the sequence number values of the point cloud points is encoded, the sequence number difference value of the first encoded point cloud point in the point cloud is its own sequence number value, and from the second point cloud point, the sequence number difference value of each point cloud point is the difference value between its own sequence number value and the sequence number value of the previously encoded point cloud point.
Since the sequence number difference may be a positive value or a negative value, in some embodiments, the symbol flag may be encoded first to indicate that the sequence number difference of the plurality of cloud points is a positive value or a negative value, and then the absolute value of the sequence number difference of the plurality of cloud points is encoded.
In other embodiments, if the sequence number difference of the cloud point is a positive value A, 2 xA-1 is encoded, and if the sequence number difference of the cloud point is a negative value B, 2 xB is encoded to distinguish the positive and negative of the sequence number difference.
Optionally, the sequence number/sequence number difference of the point cloud points may be encoded by using a binary entropy coding or a multivariate entropy coding method. It can be understood that, if the sequence number difference of the cloud points is encoded, according to the two embodiments, the absolute value of the sequence number difference may be binary entropy or multivariate entropy encoded, or 2 × a-1 or-2 × B may be binary entropy or multivariate entropy encoded.
In the embodiment of the present application, the binary entropy coding may be equiprobable binary entropy coding, or may also be context-based binary entropy coding, and the multivariate entropy coding may also be equiprobable multivariate entropy coding, or may also be context-based multivariate entropy coding.
Correspondingly, in the process of decoding the serial number code stream of the point cloud point/the serial number difference code stream of the point cloud point, a binary entropy decoding or a multi-element entropy decoding mode may also be adopted, wherein the binary entropy decoding may be equal-probability binary decoding or context-based binary entropy decoding, and the multi-element entropy decoding may also be equal-probability multi-element entropy decoding or context-based multi-element entropy decoding.
Specifically, if a binary entropy coding method is adopted, a binarization processing method needs to be performed on a value to be coded first, where the binarization processing method includes a variable-length code or fixed-length code processing method. Correspondingly, if a decoding method of binary entropy decoding is adopted, the code stream needs to be subjected to inverse binarization processing, and the inverse binarization processing method also includes a variable length code or fixed length code processing method.
If the sequential numbering of the point cloud points is binarized by using the fixed length code, and the bit width of the fixed length code is determined by the maximum value of the sequential numbering, for example, if the point clouds totally include N point cloud points and the sequential numbering of the N point cloud points is 1 to N in sequence, the bit width of the fixed length code is
Figure BDA0002973596390000301
Wherein the content of the first and second substances,
Figure BDA0002973596390000302
indicating rounding up. As an example, if N is 500, log2500 ≈ 8.96578, the bit width is 9.
If the variable length code is used to binarize the serial number of the point cloud point, the truncated rice code, K-order exponential golomb code, unary code, or other variable length code schemes in the prior art may be used to binarize the serial number of the point cloud point, which is not specifically limited in this embodiment of the present application.
A few variable length codes are briefly described below.
(a) Truncation Rice code
The threshold value is set to be cMax, the Rice parameter R, the number to be coded is Idx, the truncated Rice code is formed by connecting a prefix code and a suffix code in series, and the calculation method of the prefix value P is shown as formula 1.
P=Idx>>R (1)
If P is smaller than the value (cMax > > R), the prefix code consists of P1 s and one 0, and the length is P + 1; if P is larger than or equal to value (cMax > > R), the prefix code is composed of (cMax > > R) 1, and the length is (cMax > > R). When the number value Idx is smaller than cMax, the suffix value S is as shown in formula 2.
S=Idx-(P<<R) (2)
The suffix code is a binarized string of S and has a length of R.
And when the number value Idx is larger than or equal to cMax, no suffix code exists.
Wherein, the parameter R and the threshold value cMax of the Rice code are both appointed by the encoding and decoding end.
(b) K-th order exponential golomb encoding
The exponential golomb code consists of a prefix and a suffix, both of which depend on the order k of the exponential golomb code. The starting signal is generated by an exponential golomb code of order k representing a non-negative integer number value N as follows.
The number N is written in binary form, the lowest k bits are removed, and then 1 is added.
And secondly, calculating the number of the remaining bits, and reducing the number by one, namely the number of prefix zeros needing to be added.
And thirdly, filling the lowest k bits removed in the step one back to the tail of the bit string.
Taking the number of the number as 4, the first-order exponential golomb code is taken as an example:
the binary representation of (4) is 100, 0 becomes 10 by removing the lowest 1 bit, and becomes 11 by adding 1.
The number of bits of (2) 11, and hence the number of 0's in the prefix is 1.
And thirdly, complementing the 0 removed in the step (i) on the lowest bit of the bit string, wherein the final code word is 0110.
For Golomb code of order k, the prefix consists of m consecutive 0 s and one 1, and the suffix consists of m + k, which is a binary representation of N-2k (2 m-1). Accordingly, the binaryzation of the codes can be realized. The order k of the golomb code can be determined by the encoding and decoding end.
(c) One-element code
The integer N is defined as: scheme 1, N1 s are followed by 10, scheme two, or N0 s are followed by 1.
For example, 0 is coded to 0, 1 is coded to 10, 2 is coded to 110, and 3 is coded to 1110 using scheme 1, or 1 is coded to 1, 1 is coded to 01, 2 is coded to 001, and 3 is coded to 0001 using scheme 2.
Optionally, the encoding/decoding manner of the positions, the attributes, and the sequence numbers of the point cloud points may be any one of the encoding manners mentioned above, which is not specifically limited in this application.
Optionally, in the encoding and decoding process of the point cloud point in the point cloud, the position of the point cloud point may be encoded first, and then the attribute and the sequence number of the point cloud point are encoded and decoded, and the encoding and decoding processes of the attribute and the sequence number of the point cloud point may be parallel or serial.
The point cloud encoding and decoding method can be applied to point cloud data acquired by any point cloud scanning device, and the acquired point cloud data can be subjected to data compression and transmission by adopting the encoding and decoding method provided by the application no matter the traditional point cloud scanning device adopting a repeated scanning mode or the point cloud scanning device adopting a non-repeated scanning mode.
In the working process of the point cloud scanning device adopting the non-repeated scanning mode, the scanning path is complex, the angle change of the two adjacent point cloud points is large, and in some cases, the angle change of the two adjacent point cloud points is larger than the angle change of the two adjacent point cloud points obtained by adopting the repeated scanning mode. If the original sequence is not recorded and coded, the sequence of the point cloud points in the original point cloud is difficult to be deduced according to the position coordinates or other data values of the point cloud points, so that the point cloud coding and decoding method is particularly suitable for point cloud data acquired by a point cloud scanning device in a non-repeated scanning mode.
The above-mentioned point cloud scanning apparatus using non-repetitive scanning will be described by way of example with reference to the apparatus 200 shown in fig. 28, and the scanning apparatus includes, but is not limited to, a laser radar whose lasing direction changes in three XYZ dimensions with time.
As shown in fig. 28, the apparatus 200 includes a ranging module 201, and a ranging module 210 includes an emitter 203, a collimating element 204, a detector 205, and a path changing element 206. The distance measuring module 210 is configured to emit a light beam, receive return light, and convert the return light into an electrical signal. Wherein the emitter 203 may be configured to emit a sequence of light pulses. In one embodiment, the transmitter 203 may emit a sequence of laser pulses. The collimating element 204 is disposed on an emitting light path of the emitter, and is configured to collimate the light beam emitted from the emitter 203, and collimate the light beam emitted from the emitter 203 into parallel light to be emitted to the scanning module. The collimating element is also for converging at least a portion of the return light reflected by the detector. The collimating element 204 may be a collimating lens or other element capable of collimating a light beam.
In the embodiment shown in fig. 28, the transmit and receive optical paths within the device are combined by the optical path altering element 206 before the collimating element 204, so that the transmit and receive optical paths can share the same collimating element, making the optical path more compact. In other implementations, the emitter 203 and the detector 205 may use respective collimating elements, and the optical path changing element 206 may be disposed in the optical path after the collimating elements.
In the embodiment shown in fig. 28, since the beam aperture of the return light received by the device is large due to the small beam aperture emitted from the emitter 203, the optical path changing element can adopt a mirror with a small area to combine the emission optical path and the reception optical path.
As shown in fig. 28, the apparatus 200 further includes a scanning module 202. The scanning module 202 is disposed on the emitting light path of the distance measuring module 201, and the scanning module 202 is configured to change the transmission direction of the collimated light beam 219 emitted by the collimating element 204, project the collimated light beam to the external environment, and project the return light beam to the collimating element 204. The return light is converged onto the detector 105 by the collimating element 204.
In one embodiment, the scanning module 202 may include at least one optical element for altering the propagation path of the light beam, wherein the optical element may alter the propagation path of the light beam by reflecting, refracting, diffracting, etc., the light beam. For example, the scanning module 202 includes a lens, mirror, prism, galvanometer, grating, liquid crystal, Optical Phased Array (Optical Phased Array), or any combination thereof. In one example, at least a portion of the optical element is moved, for example, by a driving module, and the moved optical element can reflect, refract, or diffract the light beam to different directions at different times. In some embodiments, multiple optical elements of the scanning module 202 may rotate or oscillate about a common axis 209, with each rotating or oscillating optical element serving to constantly change the direction of propagation of an incident beam. In one embodiment, the multiple optical elements of the scanning module 202 may rotate at different rotational speeds or oscillate at different speeds. In another embodiment, at least some of the optical elements of the scanning module 202 may rotate at substantially the same rotational speed. In some embodiments, the multiple optical elements of the scanning module may also be rotated about different axes. In some embodiments, the multiple optical elements of the scanning module may also rotate in the same direction, or in different directions; or in the same direction, or in different directions, without limitation.
In one embodiment, the scanning module 202 includes a first optical element 214 and a driver 216 coupled to the first optical element 214, the driver 216 configured to drive the first optical element 214 to rotate about the rotation axis 209, such that the first optical element 214 redirects the collimated light beam 219. The first optical element 214 projects the collimated beam 219 into different directions. In one embodiment, the angle between the direction of the collimated beam 219 after it is altered by the first optical element and the rotational axis 109 changes as the first optical element 214 is rotated. In one embodiment, the first optical element 214 includes a pair of opposing non-parallel surfaces through which the collimated light beam 219 passes. In one embodiment, the first optical element 214 includes a prism having a thickness that varies along at least one radial direction. In one embodiment, the first optical element 114 comprises a wedge prism that refracts the collimated beam 119.
In one embodiment, the scanning module 202 further comprises a second optical element 215, the second optical element 215 rotating around a rotation axis 209, the rotation speed of the second optical element 215 being 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. In one embodiment, the second optical element 115 is coupled 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 may be driven by the same or different drivers, such that the first optical element 214 and the second optical element 215 rotate at different speeds and/or turns, thereby projecting the collimated light beam 219 into different directions in the ambient space, which may scan a larger spatial range. In one embodiment, the controller 218 controls the drivers 216 and 217 to drive the first optical element 214 and the second optical element 215, respectively. The rotation speed of the first optical element 214 and the second optical element 215 can be determined according to the region and the pattern expected to be scanned in the actual application. The drives 216 and 217 may include motors or other drives.
In one embodiment, the second optical element 115 includes a pair of opposing non-parallel surfaces through which the light beam passes. In one embodiment, second optical element 115 includes a prism having a thickness that varies along at least one radial direction. In one embodiment, second optical element 115 comprises a wedge angle prism.
In one embodiment, the scan module 102 further comprises a third optical element (not shown) and a driver for driving the third optical element to move. Optionally, the third optical element comprises a pair of opposed non-parallel surfaces through which the light beam passes. In one embodiment, the third optical element comprises a prism having a thickness that varies along at least one radial direction. In one embodiment, the third optical element comprises a wedge angle prism. At least two of the first, second and third optical elements rotate at different rotational speeds and/or rotational directions.
Rotation of the optical elements in the scanning module 202 may project light in different directions, such as directions 211 and 213, thus scanning the space around the device 200. Fig. 29 is a schematic diagram of a scanning pattern of the apparatus 200, as shown in fig. 29. It will be appreciated that as the speed of the optical elements within the scanning module changes, the scanning pattern will also change.
When the light 211 projected by the scanning module 202 strikes the detection object 201, a portion of the light is reflected by the detection object 201 to the apparatus 200 in a direction opposite to the direction of the projected light 211. The return light 212 reflected by the object 201 passes through the scanning module 202 and then enters the collimating element 204.
The detector 205 is placed on the same side of the collimating element 204 as the emitter 203, and the detector 205 is used to convert at least part of the return light passing through the collimating element 204 into an electrical signal to generate raw data of a point cloud.
The above method embodiments are described in detail with reference to fig. 4 to fig. 27, and the following device embodiments are described in detail with reference to fig. 30 and fig. 31, where it is understood that the device embodiments correspond to the method embodiments, and similar descriptions may refer to the method embodiments.
Fig. 30 is a schematic block diagram of an encoding apparatus 1 of a point cloud according to an embodiment of the present application, the encoding apparatus 1 of the point cloud corresponding to any one of the above-described encoding methods of the point cloud.
As shown in fig. 30, 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:
coding 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.
In some embodiments, the processor 11 is configured to: and coding the positions and the sequence numbers of the point cloud points in the point cloud to generate a code stream of the point cloud.
As an example, the processor 11 may be configured to: after the position of a first leaf node in a tree structure of the point cloud and the number of point cloud points in the first leaf node are coded, the sequence of the point cloud points in the first leaf node is numbered and coded to generate a code stream of the point cloud.
Optionally, the processor 11 is configured to: after the positions of a plurality of leaf nodes in the tree structure of the point cloud are coded, the number and the sequence of the point cloud points in the leaf nodes are coded to generate a code stream of the point cloud.
Optionally, the processor 11 is configured to: after the number of the point cloud points in a first leaf node in the plurality of leaf nodes is coded, coding the sequence number of the point cloud points in the first leaf node; or after the number of the point cloud points in the leaf nodes is coded, the sequence numbers of the point cloud points in the leaf nodes are coded.
Optionally, the bits corresponding to the number of point cloud points in the first leaf node are adjacent to the bits corresponding to the sequence number of the point cloud points in the first leaf node.
As another example, the processor 11 may be configured to: after the positions of a plurality of leaf nodes in the tree structure of the point cloud and the number of point cloud points in the leaf nodes are coded, the sequence of point cloud points in the leaf nodes is numbered and coded to generate a code stream of the point cloud.
In some embodiments, the processor 11 is configured to: after the positions of a plurality of leaf nodes in the tree structure of the point cloud are encoded, the number of point cloud points in the plurality of leaf nodes is encoded.
Optionally, the bits corresponding to the number of the point cloud points in the plurality of leaf nodes are adjacent to the bits corresponding to the sequence numbers of the point cloud points in the plurality of leaf nodes.
In other embodiments, processor 11 is configured to: after the position of a first leaf node in the tree structure of the point cloud is coded, the number of point cloud points in the first leaf node is coded.
Optionally, the bits corresponding to the number of point cloud points in the last leaf node of the plurality of leaf nodes are adjacent to the bits corresponding to the sequence numbers of the point cloud points in the plurality of leaf nodes.
Optionally, the plurality of leaf nodes are part or all of the leaf nodes in the point cloud.
Optionally, when encoding the sequential number of point cloud points in the plurality of leaf nodes, the processor 11 is configured to: and coding the sequence numbers of the point cloud points in the leaf nodes according to the coding sequence of the positions of the leaf nodes.
If the number of point cloud points in one of the leaf nodes is multiple, the processor 11 is configured to: and coding the sequential numbering of the point cloud points in the leaf node according to the sequential numbering from small to large or from large to small.
Further, the processor 11 is further configured to: and coding the attributes of the point cloud points in the leaf node according to the sequence number from small to large or from large to small.
In other embodiments, processor 11 is configured to: and coding the attributes and the sequence numbers of the point cloud points in the point cloud to generate a code stream of the point cloud.
As an example, the processor 11 is configured to: and after the attribute and the sequence number of one point cloud point in the point cloud are coded, the attribute and the sequence number of another point cloud point in the point cloud are coded.
Optionally, bits corresponding to the attribute of the first point cloud point in the point cloud are adjacent to bits corresponding to the sequence number of the first point cloud point.
As another example, the processor 11 is configured to: and after the attributes of a plurality of cloud points in the point cloud are coded, the sequence of the cloud points is numbered and coded.
The plurality of point cloud points may be some or all of the point cloud points included in the point cloud.
Further, bits corresponding to the attributes of the plurality of point cloud points may be adjacent to bits corresponding to the sequence numbers of the plurality of point cloud points.
Optionally, the processor 11 is configured to: and numbering and coding the sequence of the plurality of the cloud points according to the coding sequence of the attributes of the plurality of the cloud points.
In other embodiments, processor 11 is configured to: and coding the positions, attributes and sequence numbers of point cloud points in the point cloud to generate a code stream of the point cloud.
Optionally, the processor 11 is configured to: after the position of a first leaf node in a tree structure of the point cloud and the number of point cloud points in the first leaf node are coded, the attribute of the point cloud points in the first leaf node is coded.
Further, the processor 11 may be configured to: before or after the attribute of the point cloud point in the first leaf node in the tree structure of the point cloud is coded, the sequence number of the point cloud point in the first leaf node is coded.
In this case, bits corresponding to the number of point cloud points in the first leaf node are adjacent to bits corresponding to the attribute of the point cloud points in the first leaf node, and bits corresponding to the attribute of the point cloud points in the first leaf node are adjacent to bits corresponding to the sequence number of the point cloud points in the first leaf node;
or, bits corresponding to the number of the point cloud points in the first leaf node are adjacent to bits corresponding to the sequence number of the point cloud points in the first leaf node, and bits corresponding to the sequence number of the point cloud points in the first leaf node are adjacent to bits corresponding to the attribute of the point cloud points in the first leaf node.
Optionally, the processor 11 is configured to: after the positions and the attributes of the point cloud points in a plurality of leaf nodes in the tree structure of the point cloud are coded, the sequence numbers of the point cloud points in the plurality of leaf nodes are coded.
Optionally, the processor 11 is configured to: after the position of a first leaf node in a tree structure of the point cloud and the number of point cloud points in the first leaf node are coded, the sequence of the point cloud points in the first leaf node is numbered and coded; after the positions and the sequence of the point cloud points in a plurality of leaf nodes in the tree structure of the point cloud are coded, the sequence of the point cloud points in the plurality of leaf nodes is coded.
In other embodiments, the processor 11 is further configured to: acquiring original data of point cloud points in the point cloud; coding the positions of point cloud points in the point cloud to obtain bits corresponding to the positions; encoding the attribute of a point cloud point in a point cloud to obtain a bit corresponding to the attribute; coding the sequential number of the point cloud points in the point cloud to obtain bits corresponding to the sequential number; and generating a code stream of the point cloud according to the bit corresponding to the position, the bit corresponding to the attribute and the bit corresponding to the sequence number.
Optionally, the processor 11 is configured to: and carrying out binarization and entropy coding on the serial numbers of the point cloud points in the point cloud, wherein the entropy coding is equal probability binary entropy coding or context-based binary entropy coding, and the binarization is fixed length code binarization or variable length code binarization.
Optionally, the processor 11 is configured to: and entropy coding is carried out on the sequential number of the point cloud points in the point cloud, wherein the entropy coding is equal probability multivariate entropy coding or multivariate entropy coding based on context.
Optionally, the processor 11 is configured to: coding the sequential serial number difference of the point cloud points in the point cloud; the sequence number difference of a first point cloud point in the point cloud is a sequence number value, and the sequence number difference of a point cloud point except the first point cloud point in the point cloud is the difference between the sequence number of the point cloud point and the sequence number of the previous point cloud point.
In this case, in some embodiments, processor 11 is configured to: coding a sign flag bit, wherein the sign flag bit is used for identifying whether the difference value of the sequence numbers of the point cloud points in the point cloud is a positive number or a negative number; and encoding the absolute value of the sequential numbering difference of the point cloud points in the point cloud.
In other embodiments, processor 11 is configured to: if the sequence number difference value of the first point cloud point in the point cloud is a positive value A, encoding 2 xA-1; or if the serial number difference value of the second point cloud point in the point cloud is a negative value B, encoding the 2 multiplied by B.
Optionally, the processor 11 is configured to: and carrying out binarization and entropy coding on the sequence number difference value of the point cloud points in the point cloud, wherein the entropy coding is equal probability binary entropy coding or context-based binary entropy coding, and the binarization is fixed length code binarization or variable length code binarization.
Optionally, the processor 11 is configured to: and entropy coding is carried out on the difference value of the serial numbers of the point cloud points in the point cloud, wherein the entropy coding is equal probability multivariate entropy coding or multivariate entropy coding based on context.
Optionally, the processor 11 is configured to: and (3) carrying out binarization and entropy coding on the point cloud point attributes in the point cloud, wherein the entropy coding is equal probability binary entropy coding or context-based binary entropy coding, and the binarization is fixed length code binarization or variable length code binarization.
In this embodiment, the serial number of the point cloud points in the point cloud indicates a time sequence, an acquisition sequence, or a scanning sequence of the point cloud points.
Optionally, the processor 11 is further configured to: and distributing the sequence numbers of the point cloud points in the point cloud according to the time sequence, the acquisition sequence or the scanning sequence of the point cloud points.
Optionally, the point cloud points in the point cloud are point cloud points obtained 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.
Alternatively, in a non-repetitive scanning mode, the light emission direction of the point cloud scanning device changes in three XYZ dimensions over time.
Further, in the point cloud, the angle change of the two cloud points with the adjacent serial numbers may be greater than the angle change of the two cloud points with the adjacent serial numbers obtained by the repeated scanning method.
Fig. 31 is a schematic block diagram of a point cloud decoding apparatus 2 according to an embodiment of the present application, the point cloud decoding apparatus 2 corresponding to any one of the above-described point cloud decoding methods.
As shown in fig. 31, the point cloud decoding apparatus 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:
acquiring a code stream of the point cloud;
and decoding the code stream of the point cloud to obtain the sequential number of the point cloud points in the point cloud.
In some embodiments, the code stream of the point cloud includes a position code stream of the point cloud points and a sequential number code stream of the point cloud points; the processor 21 is configured to: and decoding the position code stream of the point cloud points and the sequential numbering code stream of the point cloud points to obtain the position and sequential numbering of the point cloud points in the point cloud.
As an example, in the code stream of the point cloud, after the code stream of the position of the first leaf node in the tree structure of the point cloud and the code stream of the number of point cloud points in the first leaf node, the code stream of the sequential number of point cloud points in the first leaf node is arranged.
Optionally, in the code stream of the point cloud, after the position code streams of the plurality of leaf nodes in the tree structure of the point cloud, the number code stream and the sequence number code stream of the point cloud points in the plurality of leaf nodes are arranged.
Optionally, in the number code stream and the sequence number code stream of the point cloud points in the plurality of leaf nodes, after the number code stream of the point cloud points in a first leaf node in the plurality of leaf nodes, the sequence number code stream of the point cloud points in the first leaf node is arranged; or after the number code stream of the point cloud points in the plurality of leaf nodes, the sequential number code stream of the point cloud points in the plurality of leaf nodes is arranged.
Optionally, 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.
As another example, in the code stream of the point cloud, after the code stream of the positions of the plurality of leaf nodes in the tree structure of the point cloud and the code stream of the number of point cloud points in the plurality of leaf nodes, the code stream of the sequential number of point cloud points in the plurality of leaf nodes is arranged.
In some embodiments, the code stream of the positions of the plurality of leaf nodes in the tree structure of the point cloud is followed by the code stream of the number of point cloud points in the plurality of leaf nodes.
Optionally, the code stream of the number of point cloud points in the plurality of leaf nodes is adjacent to the code stream of the sequential number of point cloud points in the plurality of leaf nodes.
In other embodiments, after the code stream of the position of the first leaf node in the tree structure of the point cloud, the code stream of the number of point cloud points in the first leaf node is arranged.
Optionally, the code stream of the number of point cloud points in the last leaf node of the plurality of leaf nodes is adjacent to the code stream of the sequential number of point cloud points in the plurality of leaf nodes.
Optionally, the plurality of leaf nodes are all leaf nodes in the point cloud.
Optionally, an arrangement order of the plurality of leaf node blocks in the stream of the number of point cloud points in the plurality of leaf nodes is the same as an arrangement order of the plurality of leaf node blocks in the stream of the sequence number of point cloud points in the plurality of leaf nodes.
If the number of the point cloud points in one of the leaf nodes is multiple, the point cloud points are numbered in the code stream according to the sequence, and the point cloud points are arranged from small to large or from large to small according to the sequence number.
Further, the code stream of the point cloud further includes: the attribute code stream of the point cloud point in the leaf node; in the attribute code stream of the point cloud points in the leaf node, the point cloud points are numbered according to the sequence from small to large or from large to small.
In other embodiments, the code stream of the point cloud includes an attribute code stream of the point cloud point and a sequential number code stream of the point cloud point; the processor 21 is configured to: and decoding the attribute code stream of the point cloud points and the sequence number code stream of the point cloud points to obtain the attribute and the sequence number of the point cloud points in the point cloud.
As an example, in the code stream of point clouds, after the attribute code stream and the sequential number code stream of one point cloud point in the point clouds, the attribute code stream and the sequential number code stream of another point cloud point in the point clouds are arranged.
Optionally, 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.
As another example, in the code stream of the point cloud, after the attribute code stream of the plurality of point cloud points in the point cloud, the sequentially numbered code stream of the plurality of point cloud points is arranged.
Optionally, the plurality of point cloud points are all point cloud points included in the point cloud.
Further, the attribute code stream of the plurality of cloud points is adjacent to the serial number code stream of the plurality of cloud points.
Optionally, an arrangement order of the plurality of cloud points in the serial number code stream of the plurality of cloud points is the same as an arrangement order of the plurality of cloud points in the attribute code stream of the plurality of cloud points.
In other embodiments, the code stream of the point cloud includes a position code stream of point cloud points, an attribute code stream of the point cloud points, and a sequential number code stream of the point cloud points; the processor 21 is configured to: and decoding the position code stream of the point cloud points, the attribute code stream of the point cloud points and the sequence number code stream of the point cloud points to obtain the position, the attribute and the sequence number of the point cloud points in the point cloud.
Optionally, in the code stream of the point cloud, after the position code stream of the first leaf node in the tree structure of the point cloud and the number code stream of the point cloud points in the first leaf node, the attribute code stream of the point cloud points in the first leaf node is arranged.
Further, before or after the attribute code stream of the point cloud point in the first leaf node in the tree structure of the point cloud, the sequential number code stream of the point cloud point in the first leaf node is arranged.
In this case, the 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, and the attribute code stream of the point cloud points in the first leaf node is adjacent to the sequentially numbered code stream of the point cloud points in the first leaf node;
or the number code stream of the point cloud points in the first leaf node is adjacent to the sequence number code stream of the point cloud points in the first leaf node, and the sequence 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.
Optionally, after the position code stream and the attribute code stream of the point cloud point in the multiple leaf nodes in the point cloud tree structure, the sequential number code stream of the point cloud point in the multiple leaf nodes is arranged.
Optionally, in the code stream of the point cloud, after the code stream of the position of the first leaf node in the tree structure of the point cloud and the code stream of the number of point cloud points in the first leaf node, the code stream of the sequential number of point cloud points in the first leaf node is arranged; after the position code stream and the sequence number code stream of the point cloud points in the leaf nodes in the point cloud tree structure, the sequence number code stream of the point cloud points in the leaf nodes is arranged.
In other embodiments, the processor 21 is further configured to: and sequencing the point cloud points according to the sequence number of the point cloud points in the point cloud, and sequencing the point cloud points from small to large to obtain the sequenced point cloud data.
Optionally, the processor 21 is configured to: and performing inverse binarization and entropy decoding on the sequentially numbered code stream of the point cloud points in the code stream, wherein the entropy decoding is equal probability binary entropy decoding or context-based binary entropy decoding, and the inverse binarization is fixed-length code inverse binarization or variable-length code inverse binarization.
Optionally, the processor 21 is configured to: and performing entropy decoding on the sequentially numbered code stream of the point cloud points in the code stream, wherein the entropy decoding is equal probability multi-element entropy decoding or multi-element entropy decoding based on context.
Optionally, the processor 21 is configured to: and decoding the code stream of the sequence number difference values of the point cloud points in the code stream, wherein the sequence number difference value of a first point cloud point in the point cloud is a sequence number value, and the sequence number difference value of one point cloud point except the first point cloud point in the point cloud is the difference value of the sequence number of the point cloud point and the sequence number of the previous point cloud point.
In this case, in some embodiments, the processor 21 is configured to: and decoding the serial number difference code stream of the point cloud point to obtain an absolute value of the serial number difference of a symbol marker bit and the point cloud point, wherein the symbol marker bit is used for identifying whether the serial number difference of the point cloud point is a positive number or a negative number.
In other embodiments, the processor 21 is configured to: decoding the serial number difference code stream of the first point cloud point to obtain an odd value A 'so as to obtain that the serial number difference of the first point cloud point is a positive value (A' +1)/2, or decoding the serial number difference code stream of the second point cloud point to obtain an even value B 'so as to obtain that the serial number difference of the second point cloud point is a negative value-B'/2.
Optionally, the processor 21 is configured to: and performing inverse binarization and entropy decoding on the sequence number difference value of the point cloud point, wherein the entropy decoding is equal probability binary entropy decoding or context-based binary entropy decoding, and the inverse binarization is fixed-length code inverse binarization or variable-length code inverse binarization.
Optionally, the processor 21 is configured to: and performing entropy decoding on the sequence number difference value of the point cloud point, wherein the entropy decoding is equal probability multi-element entropy decoding or multi-element entropy decoding based on context.
Optionally, the processor 21 is configured to: and performing inverse binarization and entropy decoding on the attribute code stream of the point cloud point in the code stream, wherein the entropy decoding is equal probability binary entropy decoding or context-based binary entropy decoding, and the inverse binarization is fixed-length code inverse binarization or variable-length code inverse binarization.
In the embodiment of the present application, the sequential number of point cloud points in a point cloud indicates a time sequence, an acquisition sequence, or a scanning sequence of the point cloud points.
Optionally, the point cloud points in the point cloud are point cloud points obtained 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.
Alternatively, in a non-repetitive scanning mode, the light emission direction of the point cloud scanning device changes in three XYZ dimensions over time.
Further, in the point cloud, the angle change of the two cloud points with the adjacent serial numbers may be greater than the angle change of the two cloud points with the adjacent serial numbers obtained by the repeated scanning method.
The application also provides an electronic device, which can comprise the point cloud encoding device and/or decoding device of the various embodiments of the application.
The present application also provides a system that may include the above-described apparatus for encoding a point cloud of various embodiments of the present application, an apparatus for decoding the point cloud, and an apparatus for scanning the point cloud, which may be, for example, the apparatus 200 shown in fig. 28.
The present application also provides a computer storage medium having stored thereon a computer program which, when executed by a computer, causes the computer to perform the method of the above-described method embodiments.
The present application also provides a computer program product comprising instructions which, when executed by a computer, cause the computer to perform the method of the above-described method embodiments.
In the above embodiments, all or part of the implementation may be realized by software, hardware, firmware or any other combination. When implemented in software, may be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer instructions. When loaded and executed on a computer, cause the processes or functions described in accordance with the embodiments of the application to occur, in whole or in part. The computer may be a general purpose computer, a special purpose computer, a network of computers, or other programmable device. The computer instructions may be stored in a computer readable storage medium or transmitted from one computer readable storage medium to another, for example, the computer instructions may be transmitted from one website, computer, server, or data center to another website, computer, server, or data center by wire (e.g., coaxial cable, fiber optic, digital subscriber line) or wirelessly (e.g., infrared, wireless, microwave, etc.). The computer-readable storage medium can be any available medium that can be accessed by a computer or a data storage device, such as a server, a data center, etc., that incorporates one or more of the available media. The usable medium may be a magnetic medium (e.g., a floppy disk, a hard disk, a magnetic tape), an optical medium (e.g., a Digital Video Disk (DVD)), or a semiconductor medium (e.g., a Solid State Disk (SSD)), among others.
Those of ordinary skill in the art will appreciate that the various illustrative elements and algorithm steps described in connection with the embodiments disclosed herein may be implemented as electronic hardware or combinations of computer software and electronic hardware. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the implementation. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present application.
The above description is only for the specific embodiments of the present application, but the scope of the present application is not limited thereto, and any person skilled in the art can easily conceive of the changes or substitutions within the technical scope of the present application, and shall be covered by the scope of the present application. Therefore, the protection scope of the present application shall be subject to the protection scope of the claims.

Claims (170)

1. A method for encoding a point cloud, comprising:
coding 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.
2. The encoding method of claim 1, wherein the encoding the sequential numbering of point cloud points in the point cloud to generate the code stream of the point cloud comprises:
and coding the positions and the sequence numbers of the point cloud points in the point cloud to generate a code stream of the point cloud.
3. The encoding method according to claim 2, wherein the encoding the positions and the sequence numbers of the point cloud points in the point cloud to generate a code stream of the point cloud comprises:
and after the position of a first leaf node in the tree structure of the point cloud and the number of point cloud points in the first leaf node are coded, sequentially numbering and coding the point cloud points in the first leaf node to generate a code stream of the point cloud.
4. The encoding method according to claim 2, wherein the encoding the positions and the sequence numbers of the point cloud points in the point cloud to generate a code stream of the point cloud comprises:
and after the positions of a plurality of leaf nodes in the tree structure of the point cloud are coded, the number and the sequence of the point cloud points in the leaf nodes are coded to generate a code stream of the point cloud.
5. The encoding method of claim 4, wherein the encoding the number and the sequential numbering of the point cloud points in the plurality of leaf nodes comprises:
after the number of the point cloud points in a first leaf node of the plurality of leaf nodes is coded, coding the sequence number of the point cloud points in the first leaf node; alternatively, the first and second electrodes may be,
and after the number of the point cloud points in the leaf nodes is coded, coding the sequence numbers of the point cloud points in the leaf nodes.
6. The encoding method of claim 3, wherein bits corresponding to the number of point cloud points in the first leaf node are adjacent to bits corresponding to the sequential number of point cloud points in the first leaf node.
7. The encoding method according to claim 2, wherein the encoding the positions and the sequence numbers of the point cloud points in the point cloud to generate a code stream of the point cloud comprises:
after the positions of a plurality of leaf nodes in the tree structure of the point cloud and the number of point cloud points in the leaf nodes are coded, the sequence number of the point cloud points in the leaf nodes is coded, so that a code stream of the point cloud is generated.
8. The encoding method of claim 7, wherein said encoding the positions of the plurality of leaf nodes in the tree structure of the point cloud and the number of point cloud points in the plurality of leaf nodes comprises:
and after the positions of a plurality of leaf nodes in the tree structure of the point cloud are coded, the number of the point cloud points in the leaf nodes is coded.
9. The encoding method of claim 8, wherein bits corresponding to a number of point cloud points in the plurality of leaf nodes are adjacent to bits corresponding to a sequential number of point cloud points in the plurality of leaf nodes.
10. The encoding method of claim 7, wherein said encoding the positions of the plurality of leaf nodes in the tree structure of the point cloud and the number of point cloud points in the plurality of leaf nodes comprises:
and after the position of a first leaf node in the tree structure of the point cloud is coded, the number of the point cloud points in the first leaf node is coded.
11. The encoding method of claim 10, wherein bits corresponding to a number of point cloud points in a last leaf node of the plurality of leaf nodes are adjacent to bits corresponding to a sequential number of point cloud points in the plurality of leaf nodes.
12. The encoding method of any one of claims 7 to 11, wherein the plurality of leaf nodes are some or all of the leaf nodes in the point cloud.
13. The encoding method of any one of claims 7 to 12, wherein said encoding sequential numbering of point cloud points in the plurality of leaf nodes comprises:
and coding the sequence numbers of the point cloud points in the leaf nodes according to the coding sequence of the positions of the leaf nodes.
14. The encoding method according to claim 13, wherein if there are a plurality of point cloud points in one of the plurality of leaf nodes, the point cloud points in the one leaf node are sequentially numbered from small to large or from large to small.
15. The encoding method of claim 14, wherein the encoding method further comprises: and encoding the attribute of the point cloud point in the leaf node according to the sequence number from small to large or from large to small.
16. The encoding method of claim 1, wherein the encoding the sequential numbering of point cloud points in the point cloud to generate the code stream of the point cloud comprises:
and coding the attribute and the sequence number of the point cloud points in the point cloud to generate a code stream of the point cloud.
17. The encoding method of claim 16, wherein the encoding of the attributes and the order number of the point cloud points in the point cloud comprises:
and after coding the attribute and the sequence number of one point cloud point in the point cloud, coding the attribute and the sequence number of another point cloud point in the point cloud.
18. The encoding method of claim 17, wherein bits corresponding to the attribute of a first point cloud point in the point cloud are adjacent to bits corresponding to the sequential number of the first point cloud point.
19. The encoding method of claim 16, wherein the encoding of the attributes and the order number of the point cloud points in the point cloud comprises:
and after the attributes of the plurality of cloud points in the point cloud are coded, the sequence of the plurality of cloud points is numbered and coded.
20. The encoding method according to claim 19, wherein the plurality of point cloud points are some or all of the point cloud points included in the point cloud.
21. The encoding method according to claim 19 or 20, wherein bits corresponding to the attributes of the plurality of point cloud points are adjacent to bits corresponding to the sequence numbers of the plurality of point cloud points.
22. The encoding method of any one of claims 19 to 21, wherein said encoding the sequential numbering of the plurality of point cloud points comprises:
and numbering and coding the sequence of the plurality of cloud points according to the coding sequence of the attributes of the plurality of cloud points.
23. The encoding method of claim 1, wherein the encoding the sequential numbering of point cloud points in the point cloud to generate the code stream of the point cloud comprises:
and coding the position, the attribute and the sequence number of the point cloud points in the point cloud to generate a code stream of the point cloud.
24. The encoding method of claim 23, wherein the encoding the locations and attributes of point cloud points in the point cloud comprises:
and after the position of a first leaf node in the tree structure of the point cloud and the number of point cloud points in the first leaf node are coded, the attribute of the point cloud points in the first leaf node is coded.
25. The encoding method of claim 24, wherein said encoding the sequential numbering of point cloud points in the point cloud comprises:
and coding the sequence number of the point cloud points in the first leaf node before or after coding the attribute of the point cloud point in the first leaf node in the point cloud tree structure.
26. The encoding method of claim 25, wherein bits corresponding to the number of point cloud points in the first leaf node are adjacent to bits corresponding to the attribute of the point cloud points in the first leaf node, and wherein bits corresponding to the attribute of the point cloud points in the first leaf node are adjacent to bits corresponding to the sequential number of the point cloud points in the first leaf node;
or, bits corresponding to the number of point cloud points in the first leaf node are adjacent to bits corresponding to the sequence number of point cloud points in the first leaf node, and bits corresponding to the sequence number of point cloud points in the first leaf node are adjacent to bits corresponding to the attribute of point cloud points in the first leaf node.
27. The encoding method of claim 24, wherein said encoding the sequential numbering of point cloud points in the point cloud comprises:
and after the positions and the attributes of the point cloud points in a plurality of leaf nodes in the tree structure of the point cloud are coded, coding the sequence numbers of the point cloud points in the plurality of leaf nodes.
28. The encoding method of claim 23, wherein the encoding the locations and attributes of point cloud points in the point cloud comprises:
after the position of a first leaf node in the tree structure of the point cloud and the number of point cloud points in the first leaf node are coded, the sequence of the point cloud points in the first leaf node is numbered and coded;
and after the positions and the sequence of the point cloud points in the leaf nodes in the tree structure of the point cloud are coded, the sequence of the point cloud points in the leaf nodes is coded.
29. The encoding method of claim 1, further comprising:
acquiring original data of point cloud points in the point cloud;
the coding is carried out on the sequential number of the point cloud points in the point cloud to generate the code stream of the point cloud, and the coding comprises the following steps:
coding the positions of point cloud points in the point cloud to obtain bits corresponding to the positions;
encoding the attribute of the point cloud point in the point cloud to obtain a bit corresponding to the attribute;
coding the sequential number of the point cloud points in the point cloud to obtain bits corresponding to the sequential number;
and generating a code stream of the point cloud according to the bit corresponding to the position, the bit corresponding to the attribute and the bit corresponding to the sequence number.
30. The encoding method according to any one of claims 1 to 29, wherein the encoding of the sequential numbering of point cloud points in a point cloud comprises:
and carrying out binarization and entropy coding on the sequential number of the point cloud points in the point cloud, wherein the entropy coding is equal probability binary entropy coding or context-based binary entropy coding, and the binarization is fixed length code binarization or variable length code binarization.
31. The encoding method according to any one of claims 1 to 29, wherein the encoding of the sequential numbering of point cloud points in a point cloud comprises:
and entropy coding is carried out on the sequential number of the point cloud points in the point cloud, wherein the entropy coding is equal probability multivariate entropy coding or multivariate entropy coding based on context.
32. The encoding method according to any one of claims 1 to 29, wherein the encoding of the sequential numbering of point cloud points in a point cloud comprises:
coding the sequential numbering difference of the point cloud points in the point cloud;
the sequence number difference of a first point cloud point in the point cloud is a sequence number value, and the sequence number difference of a point cloud point except the first point cloud point in the point cloud is the difference between the sequence number of the point cloud point and the sequence number of the previous point cloud point.
33. The encoding method of claim 32, wherein said encoding the sequentially numbered differences of point cloud points in the point cloud comprises:
coding a sign flag bit, wherein the sign flag bit is used for identifying whether the difference value of the sequence numbers of the point cloud points in the point cloud is a positive number or a negative number;
and encoding the absolute value of the sequential numbering difference of the point cloud points in the point cloud.
34. The encoding method of claim 33, wherein encoding the sequentially numbered differences of point cloud points in the point cloud comprises:
if the sequence number difference value of the first point cloud point in the point cloud is a positive value A, encoding 2 xA-1; alternatively, the first and second electrodes may be,
and if the sequence number difference value of the second point cloud point in the point cloud is a negative value B, encoding the 2 multiplied by B.
35. The encoding method of any one of claims 32 to 34, wherein the encoding of the sequentially numbered difference values of point cloud points in the point cloud comprises:
and carrying out binarization and entropy coding on the sequence number difference value of the point cloud points in the point cloud, wherein the entropy coding is equal probability binary entropy coding or context-based binary entropy coding, and the binarization is fixed length code binarization or variable length code binarization.
36. The encoding method of any one of claims 32 to 34, wherein said encoding the sequential numbering of point cloud points in the point cloud comprises:
and entropy coding is carried out on the sequence number difference of the point cloud points in the point cloud, wherein the entropy coding is equal probability multi-element entropy coding or multi-element entropy coding based on context.
37. The encoding method according to any one of claims 1 to 36, wherein encoding attributes of point cloud points in the point cloud comprises:
and carrying out binarization and entropy coding on the attributes of the point cloud points in the point cloud, wherein the entropy coding is equal probability binary entropy coding or context-based binary entropy coding, and the binarization is fixed-length code binarization or variable-length code binarization.
38. The encoding method of any one of claims 1 to 37, wherein the sequential numbering of point cloud points in the point cloud represents a temporal order, an acquisition order, or a scan order of the point cloud points.
39. The encoding method according to any one of claims 1 to 37, characterized in that the encoding method further comprises:
and distributing the sequence numbers of the point cloud points in the point cloud according to the time sequence, the acquisition sequence or the scanning sequence of the point cloud points.
40. The encoding method according to any one of claims 1 to 39, wherein the point cloud points in the point cloud are point cloud points obtained by a point cloud scanning device in a non-repetitive scanning manner.
41. The encoding method as claimed in claim 40, wherein the light emission direction of the point cloud scanning device is changed in three dimensions XYZ with time.
42. The encoding method according to claim 40 or 41, wherein the angle variation of the sequentially numbered two adjacent point cloud points in the point cloud is larger than the angle variation of the sequentially numbered two adjacent point cloud points obtained by the repeated scanning.
43. A method of decoding a point cloud, comprising:
acquiring a code stream of the point cloud;
and decoding the code stream of the point cloud to obtain the sequential number of the point cloud points in the point cloud.
44. The decoding method according to claim 43, wherein the code stream of the point cloud includes a code stream of locations of point cloud points and a code stream of sequential numbers of the point cloud points;
the decoding of the code stream of the point cloud to obtain the sequential number of the point cloud points in the point cloud comprises the following steps:
and decoding the position code stream of the point cloud points and the sequential number code stream of the point cloud points to obtain the position and the sequential number of the point cloud points in the point cloud.
45. The decoding method according to claim 44, wherein, in the code stream of the point cloud, after a code stream of a position of a first leaf node in the tree structure of the point cloud and a code stream of a number of point cloud points in the first leaf node, a sequentially numbered code stream of point cloud points in the first leaf node is arranged.
46. The decoding method according to claim 44, wherein, in the code stream of the point cloud, a code stream of the number of point cloud points and a code stream of sequential numbering of the point cloud points in the plurality of leaf nodes are arranged after a code stream of positions of a plurality of leaf nodes in a tree structure of the point cloud.
47. The decoding method according to claim 46, wherein, among the number code stream and the sequentially-numbered code stream of the point cloud points in the plurality of leaf nodes, the number code stream of the point cloud points in a first leaf node in the plurality of leaf nodes is followed by the sequentially-numbered code stream of the point cloud points in the first leaf node; alternatively, the first and second electrodes may be,
after the number code stream of the point cloud points in the leaf nodes, the sequential number code streams of the point cloud points in the leaf nodes are arranged.
48. The decoding method of claim 45, wherein the code stream of the number of point cloud points in the first leaf node is adjacent to the code stream of the sequential number of point cloud points in the first leaf node.
49. The decoding method according to claim 44, wherein, in the code stream of the point cloud, a code stream of positions of a plurality of leaf nodes in the tree structure of the point cloud and a code stream of numbers of point cloud points in the plurality of leaf nodes are followed by a sequentially numbered code stream of point cloud points in the plurality of leaf nodes.
50. The decoding method according to claim 48, wherein a code stream of the number of point cloud points in the plurality of leaf nodes is arranged after the code stream of the positions of the plurality of leaf nodes in the tree structure of the point cloud.
51. The decoding method of claim 50, wherein the code stream of the number of point cloud points in the plurality of leaf nodes is adjacent to the code stream of the sequential number of point cloud points in the plurality of leaf nodes.
52. The decoding method according to claim 49, wherein a code stream of the number of point cloud points in the first leaf node is arranged after a code stream of the position of the first leaf node in the tree structure of the point cloud.
53. The decoding method of claim 52, wherein the code stream of the number of point cloud points in the last leaf node of the plurality of leaf nodes is adjacent to the code stream of the sequential number of point cloud points in the plurality of leaf nodes.
54. The decoding method of any of claims 49-53, wherein the plurality of leaf nodes are all leaf nodes in the point cloud.
55. The decoding method according to any one of claims 49 to 54, wherein an arrangement order of the plurality of leaf node blocks in the stream of the number of point cloud points in the plurality of leaf nodes is the same as an arrangement order of the plurality of leaf node blocks in the sequentially numbered stream of point cloud points in the plurality of leaf nodes.
56. The decoding method according to claim 55, wherein if there are a plurality of point cloud points in one of the plurality of leaf nodes, the point cloud points are numbered in the order of the point cloud points in the sequentially numbered code stream of the one leaf node from small to large or from large to small.
57. The decoding method of claim 56, wherein the code stream of point clouds further comprises: the attribute code stream of the point cloud point in the leaf node;
in the attribute code stream of the point cloud points in the leaf node, the point cloud points are numbered according to the sequence from small to large or from large to small.
58. The decoding method according to claim 43, wherein the code stream of the point cloud includes an attribute code stream of point cloud points and a sequential number code stream of point cloud points;
the decoding of the code stream of the point cloud to obtain the sequential number of the point cloud points in the point cloud comprises the following steps:
and decoding the attribute code stream of the point cloud points and the sequence number code stream of the point cloud points to obtain the attribute and the sequence number of the point cloud points in the point cloud.
59. The decoding method according to claim 58, wherein, in the code stream of the point clouds, after the attribute code stream and the sequential number code stream of one point cloud point in the point clouds, the attribute code stream and the sequential number code stream of another point cloud point in the point clouds are arranged.
60. The decoding method of claim 59, wherein the stream of attributes of the first point cloud point in the point cloud is adjacent to the stream of sequentially numbered first point cloud points.
61. The decoding method of claim 58, wherein a sequential number code stream of the plurality of point cloud points is arranged after the attribute code stream of the plurality of point cloud points in the point cloud.
62. The decoding method according to claim 61, wherein the plurality of point cloud points are all point cloud points included in the point cloud.
63. The decoding method according to claim 61 or 62, wherein the attribute code stream of the plurality of point cloud points is adjacent to the sequentially numbered code stream of the plurality of point cloud points.
64. The decoding method according to any one of claims 61 to 63, wherein an arrangement order of the plurality of point cloud points in the sequence number code stream of the plurality of point cloud points is the same as an arrangement order of the plurality of point cloud points in the attribute code stream of the plurality of point cloud points.
65. The decoding method according to claim 43, wherein the code stream of the point cloud includes a position code stream of point cloud points, an attribute code stream of point cloud points, and a sequential number code stream of point cloud points;
the decoding of the code stream of the point cloud to obtain the sequential number of the point cloud points in the point cloud comprises the following steps:
and decoding the position code stream of the point cloud points, the attribute code stream of the point cloud points and the sequence number code stream of the point cloud points to obtain the position, the attribute and the sequence number of the point cloud points in the point cloud.
66. The decoding method according to claim 65, wherein in the code stream of the point cloud, after a code stream of a position of a first leaf node in the tree structure of the point cloud and a code stream of a number of point cloud points in the first leaf node, an attribute code stream of point cloud points in the first leaf node is arranged.
67. The decoding method according to claim 66, wherein the code stream of the sequential number of the point cloud points in the first leaf node is arranged before or after the code stream of the attribute of the point cloud points in the first leaf node in the tree structure of the point cloud.
68. The decoding method of claim 67, wherein the code stream of the number of point cloud points in the first leaf node is adjacent to the code stream of the attribute of the point cloud points in the first leaf node, and the code stream of the attribute of the point cloud points in the first leaf node is adjacent to the code stream of the sequential number of the point cloud points in the first leaf node;
or the number code stream of the point cloud points in the first leaf node is adjacent to the sequence number code stream of the point cloud points in the first leaf node, and the sequence 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.
69. The decoding method according to claim 66, wherein a code stream of sequential numbering of point cloud points in the plurality of leaf nodes is arranged after a code stream of positions and an attribute of point cloud points in the plurality of leaf nodes in the tree structure of the point cloud.
70. The decoding method according to claim 65, wherein, in the code stream of the point cloud, after a code stream of a position of a first leaf node in the tree structure of the point cloud and a code stream of a number of point cloud points in the first leaf node, a sequentially numbered code stream of point cloud points in the first leaf node is arranged;
after the position code stream and the sequence number code stream of the point cloud points in the leaf nodes in the tree structure of the point cloud, the sequence number code stream of the point cloud points in the leaf nodes is arranged.
71. The decoding method according to any one of claims 43 to 70, wherein the decoding method further comprises:
and sequencing the point cloud points according to the sequence number of the point cloud points in the point cloud, and sequencing the point cloud points from small to large to obtain the sequenced point cloud data.
72. The decoding method according to any one of claims 43 to 71, wherein the decoding the code stream of point clouds comprises:
and performing inverse binarization and entropy decoding on the sequentially numbered code streams of the point cloud points in the code streams, wherein the entropy decoding is equal probability binary entropy decoding or context-based binary entropy decoding, and the inverse binarization is fixed-length code inverse binarization or variable-length code inverse binarization.
73. The decoding method according to any one of claims 43 to 71, wherein the decoding the code stream of point clouds comprises:
and carrying out entropy decoding on the sequentially numbered code streams of the point cloud points in the code streams, wherein the entropy decoding is equal probability multi-element entropy decoding or multi-element entropy decoding based on context.
74. The decoding method according to any one of claims 43 to 71, wherein the decoding the code stream of point clouds comprises:
and decoding the code stream of the sequence number difference values of the point cloud points in the code stream, wherein the sequence number difference value of a first point cloud point in the point cloud is a sequence number value, and the sequence number difference value of one point cloud point except the first point cloud point in the point cloud is the difference value of the sequence number of the one point cloud point and the sequence number of the previous point cloud point.
75. The decoding method of claim 74, wherein said decoding a stream of sequentially numbered difference values of point cloud points in the stream comprises:
and decoding the serial number difference code stream of the point cloud point to obtain a symbol flag bit and an absolute value of the serial number difference of the point cloud point, wherein the symbol flag bit is used for identifying whether the serial number difference of the point cloud point is a positive number or a negative number.
76. The decoding method of claim 74, wherein said decoding a stream of sequentially numbered difference values of point cloud points in the stream comprises:
decoding the serial number difference code stream of the first point cloud point to obtain an odd value A 'so as to obtain that the serial number difference of the first point cloud point is a positive value (A' +1)/2, or,
and decoding the serial number difference code stream of the cloud point of the second point to obtain an even number value B 'so as to obtain that the serial number difference of the cloud point of the second point is a negative value-B'/2.
77. The decoding method according to any one of claims 74 to 76, wherein said decoding a sequentially numbered difference codestream of point cloud points in the codestream comprises:
and performing inverse binarization and entropy decoding on the sequence number difference value of the point cloud point, wherein the entropy decoding is equal probability binary entropy decoding or context-based binary entropy decoding, and the inverse binarization is fixed-length code inverse binarization or variable-length code inverse binarization.
78. The decoding method according to any one of claims 74 to 76, wherein said decoding a sequentially numbered difference codestream of point cloud points in the codestream comprises:
and performing entropy decoding on the sequence number difference value of the point cloud points, wherein the entropy decoding is equal probability multi-element entropy decoding or multi-element entropy decoding based on context.
79. The decoding method according to any one of claims 43 to 78, wherein the decoding the code stream of point clouds comprises:
and performing inverse binarization and entropy decoding on the attribute code stream of the point cloud point in the code stream, wherein the entropy decoding is equal probability binary entropy decoding or context-based binary entropy decoding, and the inverse binarization is fixed-length code inverse binarization or variable-length code inverse binarization.
80. The decoding method of any one of claims 43 to 79, wherein the sequential numbering of point cloud points in the point cloud represents a temporal order, an acquisition order, or a scan order of the point cloud points.
81. The decoding method according to any one of claims 43 to 80, wherein the point cloud points in the point cloud are point cloud points obtained by a point cloud scanning device in a non-repetitive scanning manner.
82. The decoding method of claim 81, wherein the light emission direction of said point cloud scanning device varies in three XYZ dimensions with time.
83. The decoding method according to claim 81 or 82, wherein the angle variation of two cloud points with adjacent sequential numbers in the point cloud is larger than the angle variation of two cloud points with adjacent sequential numbers obtained by using a repeated scanning manner.
84. An apparatus for encoding a point cloud, comprising a processor configured to:
coding 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.
85. The encoding device of claim 84, wherein the processor is configured to:
and coding the positions and the sequence numbers of the point cloud points in the point cloud to generate a code stream of the point cloud.
86. The encoding apparatus of claim 85, wherein the processor is configured to:
and after the position of a first leaf node in the tree structure of the point cloud and the number of point cloud points in the first leaf node are coded, sequentially numbering and coding the point cloud points in the first leaf node to generate a code stream of the point cloud.
87. The encoding apparatus of claim 85, wherein the processor is configured to:
and after the positions of a plurality of leaf nodes in the tree structure of the point cloud are coded, the number and the sequence of the point cloud points in the leaf nodes are coded to generate a code stream of the point cloud.
88. The encoding device of claim 87, wherein the processor is configured to: after the number of the point cloud points in a first leaf node of the plurality of leaf nodes is coded, coding the sequence number of the point cloud points in the first leaf node; alternatively, the first and second electrodes may be,
and after the number of the point cloud points in the leaf nodes is coded, coding the sequence numbers of the point cloud points in the leaf nodes.
89. The encoding apparatus of claim 86, wherein bits corresponding to the number of point cloud points in the first leaf node are adjacent to bits corresponding to the sequential number of point cloud points in the first leaf node.
90. The encoding apparatus of claim 85, wherein the processor is configured to:
after the positions of a plurality of leaf nodes in the tree structure of the point cloud and the number of point cloud points in the leaf nodes are coded, the sequence number of the point cloud points in the leaf nodes is coded, so that a code stream of the point cloud is generated.
91. The encoding device of claim 90, wherein the processor is configured to: and after the positions of a plurality of leaf nodes in the tree structure of the point cloud are coded, the number of the point cloud points in the leaf nodes is coded.
92. The encoding apparatus of claim 91, wherein bits corresponding to a number of point cloud points in the plurality of leaf nodes are adjacent to bits corresponding to a sequential number of point cloud points in the plurality of leaf nodes.
93. The encoding device of claim 90, wherein the processor is configured to: and after the position of a first leaf node in the tree structure of the point cloud is coded, the number of the point cloud points in the first leaf node is coded.
94. The encoding apparatus of claim 93, wherein bits corresponding to a number of point cloud points in a last leaf node of the plurality of leaf nodes are adjacent to bits corresponding to a sequential number of point cloud points in the plurality of leaf nodes.
95. The encoding apparatus of any one of claims 90-94, wherein the plurality of leaf nodes are some or all of the leaf nodes in the point cloud.
96. The encoding apparatus of any one of claims 90-95, wherein the processor is configured to:
and coding the sequence numbers of the point cloud points in the leaf nodes according to the coding sequence of the positions of the leaf nodes.
97. The encoding device of claim 96, wherein if there are a plurality of point cloud points in one of the plurality of leaf nodes, the processor is configured to:
and coding the sequential numbering of the point cloud points in the leaf node according to the sequence numbering from small to large or from large to small.
98. The encoding device of claim 97, wherein the processor is further configured to: and encoding the attribute of the point cloud point in the leaf node according to the sequence number from small to large or from large to small.
99. The encoding device of claim 84, wherein the processor is configured to:
and coding the attribute and the sequence number of the point cloud points in the point cloud to generate a code stream of the point cloud.
100. The encoding apparatus of claim 99, wherein the processor is configured to: and after coding the attribute and the sequence number of one point cloud point in the point cloud, coding the attribute and the sequence number of another point cloud point in the point cloud.
101. The encoding apparatus of claim 100, wherein bits corresponding to the attribute of a first point cloud point in the point cloud are adjacent to bits corresponding to the sequential number of the first point cloud point.
102. The encoding apparatus of claim 99, wherein the processor is configured to:
and after the attributes of the plurality of cloud points in the point cloud are coded, the sequence of the plurality of cloud points is numbered and coded.
103. The encoding device of claim 102, wherein the plurality of point cloud points are some or all of the point cloud points included in the point cloud.
104. The encoding apparatus of claim 102 or 103, wherein bits corresponding to the attributes of the plurality of point cloud points are adjacent to bits corresponding to the sequence numbers of the plurality of point cloud points.
105. The encoding apparatus of any one of claims 102-104, wherein the processor is configured to:
and numbering and coding the sequence of the plurality of cloud points according to the coding sequence of the attributes of the plurality of cloud points.
106. The encoding device of claim 84, wherein the processor is configured to:
and coding the position, the attribute and the sequence number of the point cloud points in the point cloud to generate a code stream of the point cloud.
107. The encoding device of claim 106, wherein the processor is configured to:
and after the position of a first leaf node in the tree structure of the point cloud and the number of point cloud points in the first leaf node are coded, the attribute of the point cloud points in the first leaf node is coded.
108. The encoding device of claim 107, wherein the processor is configured to:
and coding the sequence number of the point cloud points in the first leaf node before or after coding the attribute of the point cloud point in the first leaf node in the point cloud tree structure.
109. The encoding apparatus of claim 108, wherein bits corresponding to the number of point cloud points in the first leaf node are adjacent to bits corresponding to the attribute of the point cloud points in the first leaf node, and wherein bits corresponding to the attribute of the point cloud points in the first leaf node are adjacent to bits corresponding to the ordinal number of the point cloud points in the first leaf node;
or, bits corresponding to the number of point cloud points in the first leaf node are adjacent to bits corresponding to the sequence number of point cloud points in the first leaf node, and bits corresponding to the sequence number of point cloud points in the first leaf node are adjacent to bits corresponding to the attribute of point cloud points in the first leaf node.
110. The encoding device of claim 107, wherein the processor is configured to:
and after the positions and the attributes of the point cloud points in a plurality of leaf nodes in the tree structure of the point cloud are coded, coding the sequence numbers of the point cloud points in the plurality of leaf nodes.
111. The encoding device of claim 106, wherein the processor is configured to:
after the position of a first leaf node in the tree structure of the point cloud and the number of point cloud points in the first leaf node are coded, the sequence of the point cloud points in the first leaf node is numbered and coded;
and after the positions and the sequence of the point cloud points in the leaf nodes in the tree structure of the point cloud are coded, the sequence of the point cloud points in the leaf nodes is coded.
112. The encoding device of claim 84, wherein the processor is further configured to: acquiring original data of point cloud points in the point cloud;
coding the positions of point cloud points in the point cloud to obtain bits corresponding to the positions;
encoding the attribute of the point cloud point in the point cloud to obtain a bit corresponding to the attribute;
coding the sequential number of the point cloud points in the point cloud to obtain bits corresponding to the sequential number;
and generating a code stream of the point cloud according to the bit corresponding to the position, the bit corresponding to the attribute and the bit corresponding to the sequence number.
113. The encoding apparatus of any one of claims 84-112, wherein the processor is configured to:
and carrying out binarization and entropy coding on the sequential number of the point cloud points in the point cloud, wherein the entropy coding is equal probability binary entropy coding or context-based binary entropy coding, and the binarization is fixed length code binarization or variable length code binarization.
114. The encoding apparatus of any one of claims 84-112, wherein the processor is configured to:
and entropy coding is carried out on the sequential number of the point cloud points in the point cloud, wherein the entropy coding is equal probability multivariate entropy coding or multivariate entropy coding based on context.
115. The encoding apparatus of any one of claims 84-112, wherein the processor is configured to:
coding the sequential numbering difference of the point cloud points in the point cloud;
the sequence number difference of a first point cloud point in the point cloud is a sequence number value, and the sequence number difference of a point cloud point except the first point cloud point in the point cloud is the difference between the sequence number of the point cloud point and the sequence number of the previous point cloud point.
116. The encoding device of claim 115, wherein the processor is configured to:
coding a sign flag bit, wherein the sign flag bit is used for identifying whether the difference value of the sequence numbers of the point cloud points in the point cloud is a positive number or a negative number;
and encoding the absolute value of the sequential numbering difference of the point cloud points in the point cloud.
117. The encoding apparatus of claim 116, wherein the processor is configured to:
if the sequence number difference value of the first point cloud point in the point cloud is a positive value A, encoding 2 xA-1; alternatively, the first and second electrodes may be,
and if the sequence number difference value of the second point cloud point in the point cloud is a negative value B, encoding the 2 multiplied by B.
118. The encoding device of any one of claims 115-117, wherein the processor is configured to:
and carrying out binarization and entropy coding on the sequence number difference value of the point cloud points in the point cloud, wherein the entropy coding is equal probability binary entropy coding or context-based binary entropy coding, and the binarization is fixed length code binarization or variable length code binarization.
119. The encoding device of any one of claims 115-117, wherein the processor is configured to:
and entropy coding is carried out on the sequence number difference of the point cloud points in the point cloud, wherein the entropy coding is equal probability multi-element entropy coding or multi-element entropy coding based on context.
120. The encoding apparatus of any one of claims 84-119, wherein the processor is configured to:
and carrying out binarization and entropy coding on the attributes of the point cloud points in the point cloud, wherein the entropy coding is equal probability binary entropy coding or context-based binary entropy coding, and the binarization is fixed-length code binarization or variable-length code binarization.
121. The encoding apparatus of any one of claims 84-120, wherein the sequential numbering of point cloud points in the point cloud represents a temporal order, an acquisition order, or a scan order of the point cloud points.
122. The encoding apparatus of any one of claims 84-120, wherein the processor is further configured to:
and distributing the sequence numbers of the point cloud points in the point cloud according to the time sequence, the acquisition sequence or the scanning sequence of the point cloud points.
123. The encoding device as claimed in any one of claims 84 to 122, wherein the point cloud points in the point cloud are point cloud points obtained by a point cloud scanning device using a non-repetitive scanning manner.
124. The encoding device of claim 123, wherein the light emitting direction of the point cloud scanning device varies in XYZ three dimensions over time.
125. The encoding device of claim 123 or 124, wherein the angle variation of two sequentially numbered adjacent cloud points in the point cloud is greater than the angle variation of two sequentially numbered adjacent cloud points obtained by using a repeated scanning method.
126. An apparatus for decoding a point cloud, comprising: comprising a processor configured to perform:
acquiring a code stream of the point cloud;
and decoding the code stream of the point cloud to obtain the sequential number of the point cloud points in the point cloud.
127. The decoding apparatus according to claim 126, wherein the code stream of point clouds comprises a code stream of locations of point cloud points and a code stream of sequential numbers of point cloud points;
the processor is configured to perform: and decoding the position code stream of the point cloud points and the sequential number code stream of the point cloud points to obtain the position and the sequential number of the point cloud points in the point cloud.
128. The decoding device according to claim 127, wherein, in the code stream of the point cloud, after a code stream of a position of a first leaf node in the tree structure of the point cloud and a code stream of a number of point cloud points in the first leaf node, a sequentially numbered code stream of point cloud points in the first leaf node is arranged.
129. The decoding apparatus according to claim 127, wherein, in the code stream of the point cloud, a code stream of the number of point cloud points and a code stream of sequential numbering of the point cloud points in the plurality of leaf nodes are arranged after a code stream of positions of a plurality of leaf nodes in a tree structure of the point cloud.
130. The decoding device according to claim 129, wherein, among the stream of numbers of point cloud points and the sequentially numbered streams of codes in the plurality of leaf nodes, the stream of numbers of point cloud points in a first leaf node among the plurality of leaf nodes is followed by the sequentially numbered stream of point cloud points in the first leaf node; alternatively, the first and second electrodes may be,
after the number code stream of the point cloud points in the leaf nodes, the sequential number code streams of the point cloud points in the leaf nodes are arranged.
131. The decoding device of claim 128, wherein the code stream of the number of point cloud points in the first leaf node is adjacent to the code stream of the sequential number of point cloud points in the first leaf node.
132. The decoding apparatus according to claim 127, wherein, in the code stream of the point cloud, a code stream of positions of a plurality of leaf nodes in the tree structure of the point cloud and a code stream of numbers of point cloud points in the plurality of leaf nodes are followed by a sequentially numbered code stream of point cloud points in the plurality of leaf nodes.
133. The decoding apparatus of claim 131, wherein a code stream of the number of point cloud points in the plurality of leaf nodes is arranged after a code stream of the positions of the plurality of leaf nodes in the tree structure of the point cloud.
134. The decoding device of claim 133, wherein a stream of numbers of point cloud points in the plurality of leaf nodes is adjacent to a stream of sequentially numbered point cloud points in the plurality of leaf nodes.
135. The decoding device of claim 132, wherein a code stream of the number of point cloud points in the first leaf node is arranged after a code stream of the position of the first leaf node in the tree structure of the point cloud.
136. The decoding apparatus of claim 135, wherein the code stream of the number of point cloud points in the last leaf node of the plurality of leaf nodes is adjacent to the code stream of the sequential number of point cloud points in the plurality of leaf nodes.
137. The decoding device of any one of claims 132-136, wherein the plurality of leaf nodes are all leaf nodes in the point cloud.
138. The decoding device according to any one of claims 132 through 137, wherein an order of arrangement of the plurality of leaf node blocks in the stream of the number of point cloud points in the plurality of leaf nodes is the same as an order of arrangement of the plurality of leaf node blocks in the sequentially numbered stream of point cloud points in the plurality of leaf nodes.
139. The decoding device according to claim 138, wherein if there are a plurality of point cloud points in one of the plurality of leaf nodes, the point cloud points are numbered sequentially from smaller to larger or from larger to smaller in the sequentially numbered code stream of point cloud points in the one leaf node.
140. The decoding apparatus of claim 139, wherein the code stream of point clouds further comprises: the attribute code stream of the point cloud point in the leaf node;
in the attribute code stream of the point cloud points in the leaf node, the point cloud points are numbered according to the sequence from small to large or from large to small.
141. The decoding apparatus according to claim 126, wherein the code stream of point clouds comprises a code stream of attribute of point cloud points and a code stream of sequential numbering of point cloud points;
the processor is configured to: and decoding the attribute code stream of the point cloud points and the sequence number code stream of the point cloud points to obtain the attribute and the sequence number of the point cloud points in the point cloud.
142. The decoding apparatus as claimed in claim 141, wherein in the code stream of point clouds, after the code stream of attribute and sequential numbering of one point cloud point in the point clouds, the code stream of attribute and sequential numbering of another point cloud point in the point clouds are arranged.
143. The decoding apparatus of claim 142, wherein the stream of attributes of a first point cloud point in the point cloud is adjacent to the stream of sequentially numbered first point cloud points.
144. The decoding device of claim 141, wherein a stream of sequentially numbered cloud points is arranged after the stream of attributes of the cloud points.
145. The decoding device of claim 144, wherein the plurality of point cloud points are all point cloud points included in the point cloud.
146. The decoding device of claim 144 or 145, wherein the stream of attribute codes of the plurality of cloud points is adjacent to the stream of sequentially numbered cloud points.
147. The decoding device of any one of claims 144 to 146, wherein an arrangement order of the plurality of point cloud points in the sequence number code stream of the plurality of point cloud points is the same as an arrangement order of the plurality of point cloud points in the attribute code stream of the plurality of point cloud points.
148. The decoding apparatus as claimed in claim 126, wherein the code stream of point clouds includes a code stream of locations of point cloud points, a code stream of attributes of point cloud points, and a code stream of sequential numbering of point cloud points;
the processor is configured to: and decoding the position code stream of the point cloud points, the attribute code stream of the point cloud points and the sequence number code stream of the point cloud points to obtain the position, the attribute and the sequence number of the point cloud points in the point cloud.
149. The decoding device of claim 148, wherein in the code stream of the point cloud, the code stream of the position of the first leaf node in the tree structure of the point cloud and the code stream of the number of point cloud points in the first leaf node are followed by the code stream of the attributes of the point cloud points in the first leaf node.
150. The decoding apparatus of claim 149, wherein a code stream of sequential numbering of point cloud points in a first leaf node is arranged before or after an attribute code stream of point cloud points in the first leaf node in the tree structure of the point cloud.
151. The decoding device of claim 150, wherein the code stream of the number of point cloud points in the first leaf node is adjacent to the code stream of the attributes of the point cloud points in the first leaf node, and the code stream of the attributes of the point cloud points in the first leaf node is adjacent to the code stream of the sequential number of point cloud points in the first leaf node;
or the number code stream of the point cloud points in the first leaf node is adjacent to the sequence number code stream of the point cloud points in the first leaf node, and the sequence 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.
152. The decoding apparatus of claim 149, wherein a code stream of sequential numbering of point cloud points in the plurality of leaf nodes is arranged after a code stream of positions and an attribute of point cloud points in the plurality of leaf nodes in the tree structure of the point cloud.
153. The decoding device of claim 148, wherein a code stream sequentially numbered point cloud points in the first leaf node is arranged after a code stream of a position of a first leaf node in the tree structure of the point cloud and a code stream of a number of point cloud points in the first leaf node in the code stream of the point cloud;
after the position code stream and the sequence number code stream of the point cloud points in the leaf nodes in the tree structure of the point cloud, the sequence number code stream of the point cloud points in the leaf nodes is arranged.
154. The decoding device according to any one of claims 126-153, wherein the processor is further configured to:
and sequencing the point cloud points according to the sequence number of the point cloud points in the point cloud, and sequencing the point cloud points from small to large to obtain the sequenced point cloud data.
155. The decoding device according to any one of claims 126 to 154, wherein the processor is configured to:
and performing inverse binarization and entropy decoding on the sequentially numbered code streams of the point cloud points in the code streams, wherein the entropy decoding is equal probability binary entropy decoding or context-based binary entropy decoding, and the inverse binarization is fixed-length code inverse binarization or variable-length code inverse binarization.
156. The decoding device according to any one of claims 126 to 154, wherein the processor is configured to:
and carrying out entropy decoding on the sequentially numbered code streams of the point cloud points in the code streams, wherein the entropy decoding is equal probability multi-element entropy decoding or multi-element entropy decoding based on context.
157. The decoding device according to any one of claims 126 to 154, wherein the processor is configured to:
and decoding the code stream of the sequence number difference values of the point cloud points in the code stream, wherein the sequence number difference value of a first point cloud point in the point cloud is a sequence number value, and the sequence number difference value of one point cloud point except the first point cloud point in the point cloud is the difference value of the sequence number of the one point cloud point and the sequence number of the previous point cloud point.
158. The decoding device of claim 157, wherein the processor is configured to:
and decoding the serial number difference code stream of the point cloud point to obtain a symbol flag bit and an absolute value of the serial number difference of the point cloud point, wherein the symbol flag bit is used for identifying whether the serial number difference of the point cloud point is a positive number or a negative number.
159. The decoding device of claim 157, wherein the processor is configured to:
decoding the serial number difference code stream of the first point cloud point to obtain an odd value A 'so as to obtain that the serial number difference of the first point cloud point is a positive value (A' +1)/2, or,
and decoding the serial number difference code stream of the cloud point of the second point to obtain an even number value B 'so as to obtain that the serial number difference of the cloud point of the second point is a negative value-B'/2.
160. The decoding device of any one of claims 157-159, wherein the processor is configured to:
and performing inverse binarization and entropy decoding on the sequence number difference value of the point cloud point, wherein the entropy decoding is equal probability binary entropy decoding or context-based binary entropy decoding, and the inverse binarization is fixed-length code inverse binarization or variable-length code inverse binarization.
161. The decoding device of any one of claims 157-159, wherein the processor is configured to:
and performing entropy decoding on the sequence number difference value of the point cloud points, wherein the entropy decoding is equal probability multi-element entropy decoding or multi-element entropy decoding based on context.
162. The decoding device according to any one of claims 126 to 161, wherein the processor is configured to:
and performing inverse binarization and entropy decoding on the attribute code stream of the point cloud point in the code stream, wherein the entropy decoding is equal probability binary entropy decoding or context-based binary entropy decoding, and the inverse binarization is fixed-length code inverse binarization or variable-length code inverse binarization.
163. The decoding device of any one of claims 126 to 162, wherein the sequential numbering of point cloud points in the point cloud represents a temporal order, an acquisition order, or a scan order of the point cloud points.
164. The decoding device as claimed in any one of claims 126 to 163, wherein the point cloud points in the point cloud are point cloud points obtained by a point cloud scanning device using a non-repetitive scanning manner.
165. The decoding device of claim 164, wherein the light emitting direction of said point cloud scanning device varies with time in XYZ three dimensions.
166. The decoding device according to claim 164 or 165, wherein the angle variation of two sequentially numbered adjacent point cloud points in the point cloud is larger than the angle variation of two sequentially numbered adjacent point cloud points obtained by using a rescanning method.
167. A system comprising means for encoding a point cloud as claimed in any one of claims 84 to 125, means for decoding a point cloud as claimed in any one of claims 126 to 166, and means for scanning the point cloud.
168. The system of claim 167, wherein the point cloud scanning device is a lidar that scans in a non-repetitive scanning manner.
169. A computer-readable storage medium for storing program instructions which, when executed by a computer, cause the computer to perform the encoding method of any one of claims 1 to 42.
170. A computer-readable storage medium storing program instructions which, when executed by a computer, cause the computer to perform the decoding method of any one of claims 43 to 83.
CN202080005109.8A 2020-06-09 2020-06-09 Point cloud encoding and decoding method and device Pending CN112740702A (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2020/095239 WO2021248339A1 (en) 2020-06-09 2020-06-09 Point cloud encoding/decoding method and apparatus

Publications (1)

Publication Number Publication Date
CN112740702A true CN112740702A (en) 2021-04-30

Family

ID=75609431

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080005109.8A Pending CN112740702A (en) 2020-06-09 2020-06-09 Point cloud encoding and decoding method and device

Country Status (2)

Country Link
CN (1) CN112740702A (en)
WO (1) WO2021248339A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023025167A1 (en) * 2021-08-24 2023-03-02 鹏城实验室 Point cloud encoding method, point cloud decoding method, point cloud encoding device, and point cloud decoding device
WO2023061420A1 (en) * 2021-10-13 2023-04-20 Beijing Bytedance Network Technology Co., Ltd. Method, apparatus, and medium for point cloud coding
WO2023116567A1 (en) * 2021-12-20 2023-06-29 华为技术有限公司 Data coding method and apparatus, data decoding method and apparatus, and device

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104243958A (en) * 2014-09-29 2014-12-24 联想(北京)有限公司 Coding method, decoding method, coding device and decoding device for three-dimensional grid data
CN110915219A (en) * 2017-07-13 2020-03-24 交互数字Vc控股公司 Method and apparatus for encoding/decoding colors of colored point clouds whose geometric shapes are represented by an octree-based structure
CN111247802A (en) * 2019-01-10 2020-06-05 深圳市大疆创新科技有限公司 Method and apparatus for three-dimensional data point set processing
CN111699683A (en) * 2019-06-13 2020-09-22 深圳市大疆创新科技有限公司 Point cloud encoding method, point cloud decoding method and related equipment

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160275719A1 (en) * 2015-03-19 2016-09-22 Intergraph Corporation System and method for fast optimization of point cloud data
CN106952297A (en) * 2017-03-22 2017-07-14 电子科技大学 A kind of laser scanning data point cloud degree compression method
JP7168581B2 (en) * 2017-11-22 2022-11-09 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104243958A (en) * 2014-09-29 2014-12-24 联想(北京)有限公司 Coding method, decoding method, coding device and decoding device for three-dimensional grid data
CN110915219A (en) * 2017-07-13 2020-03-24 交互数字Vc控股公司 Method and apparatus for encoding/decoding colors of colored point clouds whose geometric shapes are represented by an octree-based structure
CN111247802A (en) * 2019-01-10 2020-06-05 深圳市大疆创新科技有限公司 Method and apparatus for three-dimensional data point set processing
CN111699683A (en) * 2019-06-13 2020-09-22 深圳市大疆创新科技有限公司 Point cloud encoding method, point cloud decoding method and related equipment

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023025167A1 (en) * 2021-08-24 2023-03-02 鹏城实验室 Point cloud encoding method, point cloud decoding method, point cloud encoding device, and point cloud decoding device
WO2023061420A1 (en) * 2021-10-13 2023-04-20 Beijing Bytedance Network Technology Co., Ltd. Method, apparatus, and medium for point cloud coding
WO2023116567A1 (en) * 2021-12-20 2023-06-29 华为技术有限公司 Data coding method and apparatus, data decoding method and apparatus, and device

Also Published As

Publication number Publication date
WO2021248339A1 (en) 2021-12-16

Similar Documents

Publication Publication Date Title
US11935270B2 (en) Predictive geometry coding in G-PCC
CN111699697B (en) Method, equipment and storage medium for point cloud processing and decoding
US20220358686A1 (en) Angular priors for improved prediction in point-predictive trees
CN112740702A (en) Point cloud encoding and decoding method and device
US20210326734A1 (en) Coding of laser angles for angular and azimuthal modes in geometry-based point cloud compression
CN112449754A (en) Data encoding method, data decoding method, equipment and storage medium
CN112470469B (en) Method and equipment for point cloud coding and decoding
US20220108485A1 (en) Clipping laser indices in predictive geometry coding for point cloud compression
WO2021207376A1 (en) Predictor index signaling for predicting transform in geometry-based point cloud compression
CN112384950A (en) Point cloud encoding and decoding method and device
WO2021207499A1 (en) Angular mode simplification for geometry-based point cloud compression
WO2022147015A1 (en) Hybrid-tree coding for inter and intra prediction for geometry coding
JP2024501171A (en) Inter-predictive coding for geometry point cloud compression
US20230342984A1 (en) Inter prediction in point cloud compression
JP2023544569A (en) GPCC plane mode and buffer simplification
WO2021207495A1 (en) Angular mode simplification for geometry-based point cloud compression
US20240144543A1 (en) Predictive geometry coding of point cloud
US12003768B2 (en) Residual coding for geometry point cloud compression
US20240185470A1 (en) Decoding attribute values in geometry-based point cloud compression
US20230018907A1 (en) Occupancy coding using inter prediction in geometry point cloud compression
US20220321913A1 (en) Residual coding for geometry point cloud compression
KR20230170908A (en) Improved performance of geometric point cloud compression (GPCC) planar mode using inter-prediction
WO2024086604A1 (en) Decoding attribute values in geometry-based point cloud compression
WO2023205414A1 (en) Inter prediction in point cloud compression
KR20230167031A (en) Residual coding for geometric point cloud compression

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination