WO2023241108A1 - 一种点云编码方法、点云解码方法及相关设备 - Google Patents

一种点云编码方法、点云解码方法及相关设备 Download PDF

Info

Publication number
WO2023241108A1
WO2023241108A1 PCT/CN2023/079143 CN2023079143W WO2023241108A1 WO 2023241108 A1 WO2023241108 A1 WO 2023241108A1 CN 2023079143 W CN2023079143 W CN 2023079143W WO 2023241108 A1 WO2023241108 A1 WO 2023241108A1
Authority
WO
WIPO (PCT)
Prior art keywords
point
point cloud
geometric
group
cloud data
Prior art date
Application number
PCT/CN2023/079143
Other languages
English (en)
French (fr)
Inventor
朱文婕
Original Assignee
腾讯科技(深圳)有限公司
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 腾讯科技(深圳)有限公司 filed Critical 腾讯科技(深圳)有限公司
Publication of WO2023241108A1 publication Critical patent/WO2023241108A1/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/004Predictors, e.g. intraframe, interframe coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/40Tree coding, e.g. quadtree, octree

Definitions

  • the present application relates to the field of computer technology, specifically to the field of encoding and decoding, and in particular to a point cloud encoding method, a point cloud decoding method, a point cloud processing device, a computer device, and a computer-readable storage medium.
  • Point cloud data is a collection of points obtained by collecting data on the surface of an object using measuring instruments.
  • Point cloud data is widely used in autonomous driving, high-precision maps and virtual reality.
  • point cloud data often consists of tens of thousands to hundreds of millions of three-dimensional points, it brings challenges to data storage, processing, transmission and display. Severe challenges are unbearable for current storage resources and transmission bandwidth, so it is essential to encode point cloud data before storing or transmitting it.
  • Embodiments of the present application provide a point cloud encoding method, a point cloud decoding method and related equipment, which can construct a prediction tree of point cloud data based on multiple starting points, thereby improving the encoding efficiency of point cloud data.
  • embodiments of the present application provide a point cloud encoding method, which method includes:
  • the point cloud data is divided into L point cloud groups, where L is an integer greater than or equal to 1.
  • L is an integer greater than or equal to 1.
  • Each point cloud group contains multiple points to be encoded;
  • Each point to be encoded in the point cloud data is encoded according to the single-chain prediction tree of each point cloud group.
  • the point cloud data to be decoded includes multiple points to be decoded.
  • the point cloud data to be decoded is a single-chain prediction tree based on the single-chain prediction tree of each point cloud group in the point cloud data to be encoded. Each point to be encoded in the data is encoded.
  • the single-chain prediction tree of each point cloud group is constructed based on the starting point of each point cloud group. The number of starting points of each point cloud group is greater than or equal to 1;
  • each point in the point cloud data is geometrically decoded to determine the reconstructed geometric information of each point in the point cloud data.
  • the acquisition unit is used to acquire point cloud data to be encoded.
  • the point cloud data is divided into L point cloud groups, where L is an integer greater than or equal to 1.
  • Each point cloud group contains multiple points to be encoded;
  • a processing unit used to determine the starting point for each point cloud group, and the number of starting points of each point cloud group is greater than or equal to 1;
  • a processing unit also used to construct a single-chain prediction tree for each point cloud group based on the starting point of each point cloud group;
  • the acquisition unit is used to obtain the point cloud data to be decoded.
  • the point cloud data includes multiple points to be decoded.
  • the point cloud data to be decoded is the single-chain prediction of each point cloud group in the point cloud data to be encoded by the encoding end. Tree, obtained by encoding each point to be encoded in the point cloud data.
  • the single-chain prediction tree of each point cloud group is constructed based on the starting point of each point cloud group. The number of starting points of each point cloud group is equal to Greater than or equal to 1;
  • the processing unit is also used to determine the geometric decoding mode of the point cloud data, and perform geometric prediction processing on each point in the point cloud data based on the geometric decoding mode and the reconstructed geometric information of the starting point to obtain the predicted geometry of each point in the point cloud data. information;
  • the processing unit is also used to perform geometric decoding of each point in the point cloud data based on the predicted geometric information of each point in the point cloud data to determine the reconstructed geometric information of each point in the point cloud data.
  • embodiments of the present application provide a computer device, which includes:
  • a computer-readable storage medium stores a computer program.
  • the computer program is executed by a processor, the above-mentioned point cloud encoding method or point cloud decoding method is implemented.
  • the present application provides a computer-readable storage medium.
  • the computer-readable storage medium stores a computer program.
  • the computer program is adapted to be loaded by a processor and execute the above point cloud encoding method or point cloud decoding method.
  • Figure 2 is a schematic diagram of an octree coding structure provided by an embodiment of the present application.
  • Figure 3 is a schematic diagram of a multi-chain prediction tree coding structure provided by an embodiment of the present application.
  • Figure 4 is a schematic diagram of a single-chain prediction tree structure provided by an embodiment of the present application.
  • Figure 7 is a schematic diagram of grouping point cloud data to be encoded according to an embodiment of the present application.
  • Figure 8 is a schematic diagram of selecting a starting point from multiple vertices of a point cloud bounding box provided by an embodiment of the present application
  • Figure 9 is a schematic diagram of a point cloud bounding box provided by an embodiment of the present application.
  • Figure 10 is a schematic diagram of selecting a starting point from multiple extreme points in a point cloud group provided by an embodiment of the present application.
  • Figure 11 is a schematic diagram of selecting a starting point according to the arrangement order of points to be encoded in a point cloud group provided by an embodiment of the present application;
  • Figure 12 is a schematic diagram of connecting a first branch link and a second branch link provided by an embodiment of the present application
  • Figure 13 is a schematic diagram of constructing branch links according to the priority order of starting points provided by the embodiment of the present application.
  • Figure 15 is a schematic diagram of constructing a target prediction tree for complete point cloud data based on a single-chain prediction tree based on L point cloud groups provided by the embodiment of the present application;
  • Figure 16 is a schematic flow chart of another point cloud encoding method provided by an embodiment of the present application.
  • Figure 18 is a schematic flow chart of a point cloud decoding method provided by an embodiment of the present application.
  • Figure 19 is a schematic structural diagram of a point cloud encoding device provided by an embodiment of the present application.
  • Figure 20 is a schematic structural diagram of a point cloud decoding device provided by an embodiment of the present application.
  • Figure 21 is a schematic structural diagram of a computer device provided by an embodiment of the present application.
  • Point cloud encoding refers to the process of encoding point cloud data to obtain a compressed code stream (or encoded code stream) of the point cloud data.
  • Point cloud encoding can include two main processes: geometric information encoding and attribute information encoding.
  • the current mainstream point cloud coding technology can be divided into geometric structure-based point cloud coding and projection-based point cloud coding for different types of point cloud data; in MPEG (Moving Picture Expert Group, international video and audio codec standard)
  • the G-PCC GPUometry-based Point Cloud Compression, point cloud coding based on geometric structure
  • AVS-PCC in AVS (AudioVideoCodingStandard, China's national video coding standard) are introduced as examples.
  • Both G-PCC and AVS-PCC are aimed at static sparse point clouds.
  • the coding framework of the two is roughly the same, as shown in Figure 1, which can be divided into a geometric information encoding process and an attribute information encoding process.
  • the geometric information encoding process encodes the geometric information of each point in the point cloud data to obtain a geometry bit stream;
  • the attribute information encoding process encodes the attribute information of each point in the point cloud data to obtain an attribute bit stream;
  • the geometry bit stream and attribute bits The streams together form a compressed code stream of point cloud data.
  • Pre-Processing It can include coordinate transformation (Transform Coordinates) and voxelize (Voxelize). Through scaling and translation operations, the point cloud data in the three-dimensional space is converted into integer form, and its minimum geometric position is moved to the coordinate origin.
  • coordinate transformation Transform Coordinates
  • Voxelize voxelize
  • Geometry encoding It can include multiple modes, such as geometric octree encoding, geometric prediction tree encoding, and geometric encoding based on triangle representation. Different modes can be used for point cloud data under different conditions. The following is an introduction to the three modes given above; among them:
  • 1Geometric octree encoding (Octree): Octree is a tree data structure.
  • the octree division method includes: uniformly dividing the preset bounding boxes hierarchically, and each node has eight child nodes. By using "1" and "0" to indicate whether each sub-node of the octree is occupied, as shown in Figure 2, the occupancy code information (Occupancy Code) is obtained as the code stream of the point cloud geometry information.
  • the above-mentioned bounding box is an algorithm for solving the optimal bounding space of a discrete point set. The basic idea is to approximately replace complex geometric objects with slightly larger geometries with simple characteristics (called bounding boxes).
  • Morton order is a recursive space segmentation technology that can better map three-dimensional space into one-dimensional space curve and has better local characteristics.
  • Geometric predictive tree coding Analyze the proximity relationship of the three-dimensional coordinates of each point in the point cloud data, set certain criteria to connect each point one by one into a single-chain or multi-chain tree structure, and use the parent connected before and after The coordinates between nodes and child nodes calculate the residual value by encoding the residual value and possible index values and calculation methods.
  • the process of building a prediction tree based on multiple points contained in point cloud data is essentially a process of solving the TSP (Traveling Salesman Problem) problem.
  • the TSP problem is a classic combinatorial optimization problem.
  • the classic TSP can be described as: a product salesman goes to several cities to sell products. The salesman starts from one city and needs to pass through all cities before returning to the starting point. How should the travel route be chosen so that the total trip is the shortest. From the perspective of graph theory, the essence of this problem is to find a cycle with the smallest weight in a weighted completely undirected graph. Since the feasible solutions to this problem are all The full arrangement of vertices will produce a combinatorial explosion as the number of vertices increases, which is an NP-complete problem.
  • an undirected weighted graph is used to model TSP
  • the city is the vertex of the graph
  • the road is the edge of the graph
  • the distance of the road is the length of the edge. It is a minimization problem that starts and ends at a specific vertex and visits each vertex exactly once.
  • the model is a complete graph (i.e. each pair of vertices is connected by an edge). If there is no path between two cities, adding a very long edge can complete the graph without affecting the calculation of the optimal loop.
  • the round-trip distance between two cities is equal, forming an undirected graph. This symmetry reduces the number of solutions by half.
  • not all bidirectional paths may exist, or the round-trip distances may be different, forming a directed graph. Traffic accidents, one-way streets and different airfares to and from certain cities are examples of ways to break this symmetry.
  • a schematic diagram of an MPEG multi-chain prediction tree coding structure can be seen in Figure 3.
  • the multi-chain prediction tree starts with point 201 and links multiple points in sequence after the starting point; when linked to point 202, 3 items appear.
  • the branch links starting from point 202 for example, from left to right and from top to bottom respectively include: a first branch link, a second branch link and a third branch link. Among them, the first branch link and the second branch link are both single links. When the third branch link is connected to point 203, two branch links starting from point 203 appear.
  • a schematic diagram of the encoding structure of an AVS single-chain prediction tree can be seen in Figure 4.
  • the single-chain prediction tree starts from the starting point 204 and links all points contained in the point cloud data into a single prediction tree. In the single-chain prediction tree There are no branch links.
  • 3Geometric coding based on triangular representation (Trisoup): Based on the division of point cloud blocks, determine the intersection point of the point cloud surface at the edge of the block and construct a triangle. Compression of geometric information is achieved by encoding intersection locations. Point cloud blocks are obtained by dividing the three-dimensional space where each point in the point cloud data is located. Each point cloud block includes some points in the point cloud data.
  • Geometry Quantization The degree of fineness of quantization is usually determined by the Quantizer Parameter (QP). If the value of QP is larger, the coefficients representing a larger value range will be quantized into the same output, so usually It will bring greater distortion and lower code rate; on the contrary, the QP value is smaller, and the coefficients representing the smaller value range will be quantized into the same output, so it usually brings smaller distortion, and at the same time Corresponds to higher code rates. In point cloud encoding, quantization is performed directly on the coordinate information of points.
  • QP Quantizer Parameter
  • GeometryEntropyEncoding Perform statistical compression coding on the occupancy code information of the octree, and finally output a binary (0 or 1) compressed code stream.
  • Statistical coding is a lossless coding method that can effectively reduce the bit rate required to express the same signal.
  • a commonly used statistical coding method is context-based binary arithmetic coding (Content Adaptive Binary Arithmetic Coding, CABAC).
  • Attribute recoloring In the case of lossy coding, after the geometric information is encoded, the encoding end needs to decode and reconstruct the geometric information, that is, to restore the geometric information of each point in the point cloud data. Find the attribute information corresponding to one or more adjacent points in the original point cloud data as the attribute information of the reconstructed point.
  • Attribute transformation coding Analyze the proximity relationship of geometric information, convert the real attribute information corresponding to a certain number of points into transformation coefficients through the transformation matrix, and encode the transformation coefficients.
  • Attribute transform coding includes three modes, such as attribute prediction transform coding, attribute lifting transform coding and hierarchical region adaptive transform coding. The three modes given above are introduced in detail below, among which:
  • Attribute prediction transform coding (Predicting Transform): Select sub-point sets based on distance, divide the point cloud data into multiple different levels (Level of Detail, LoD), and achieve point cloud representation from rough to fine. Bottom-up prediction can be achieved between adjacent layers, that is, the attribute information of points introduced in the fine layer is predicted from the neighboring points in the rough layer, and the corresponding residual signal is obtained. Among them, the lowest point is encoded as reference information.
  • RAHT 3Region Adaptive Hierarchical Transform
  • Attribute information quantization The degree of refinement of quantification is usually determined by the quantization parameter.
  • attribute prediction coding entropy coding is performed on the quantized prediction residual information; in attribute transform coding and attribute prediction transform coding, entropy coding is performed on the quantized transform coefficients.
  • the quantized prediction residual information or transformation coefficients generally use RunLength Coding and Arithmetic Coding to achieve final compression.
  • the corresponding coding mode, quantization parameters and other information are also encoded using the entropy encoder.
  • Point cloud decoding refers to the process of decoding the compressed code stream of point cloud data to reconstruct the point cloud data. Specifically, it may be a process of reconstructing the geometric information and attribute information of each point in the point cloud data based on the geometry bit stream and attribute bit stream in the compressed code stream. After the compressed code stream of point cloud data is obtained at the decoding end, for the geometric bit stream, entropy decoding is first performed to obtain various pattern information, quantized geometric information and attribute information; then the geometric information is inversely quantized to obtain the reconstructed 3D ( 3-Dimensional) point position information (i.e. geometric information).
  • 3D 3-Dimensional
  • entropy decoding is first performed to obtain the quantized prediction residual information or quantized transformation coefficients of each point in the point cloud data; then the quantized prediction residual information is inversely quantized to obtain the reconstructed residual information.
  • the quantized transformation coefficients are inversely quantized to obtain reconstruction transformation coefficients, and the reconstruction transformation coefficients are inversely transformed to obtain reconstruction residual information.
  • the attribute information of each point in the point cloud data can be reconstructed.
  • the reconstructed attribute information of each point in the point cloud data is corresponding to the reconstructed geometric information in order to obtain the reconstructed point cloud data.
  • the point cloud encoding and decoding system 30 may include an encoding device 301 and a decoding device 302.
  • the encoding device 301 or the decoding device 302 may be a terminal or a server.
  • An establishment may be established between the encoding device 301 and the decoding device 302. Communication connection.
  • the terminal can be a smartphone, a tablet computer, a notebook computer, a desktop computer, a smart speaker, a smart watch, a vehicle terminal, a smart TV, etc., but is not limited thereto.
  • the server can be an independent physical server, or a server cluster or distributed system composed of multiple physical servers. It can also provide cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communications, and middleware. Cloud servers that provide basic cloud computing services such as software services, domain name services, security services, CDN (Content Delivery Network), and big data and artificial intelligence platforms.
  • cloud servers that provide basic cloud computing services such as software services, domain name services, security services, CDN (Content Delivery Network), and big data and artificial intelligence platforms.
  • CDN Content Delivery Network
  • the embodiments of this application do not differentiate between the encoding device and the encoding end, and similarly do not differentiate between the decoding device and the decoding end.
  • the embodiment of the present application proposes a prediction tree encoding and decoding scheme based on multiple starting points.
  • the prediction tree encoding and decoding scheme specifically proposes and constructs a prediction tree encoding structure based on multiple starting points. , and encode and decode the corresponding geometric information residual.
  • the prediction tree encoding and decoding scheme includes a point cloud encoding scheme and a point cloud decoding scheme.
  • the specific implementation process of the prediction tree encoding and decoding scheme may include but is not limited to:
  • camera equipment can include ordinary cameras, stereo cameras, light field cameras, etc.; sensing equipment can include laser equipment, radar equipment, etc.; scanning equipment can include three-dimensional laser scanning equipment, etc.
  • the point cloud data generated by the device may refer to the point cloud data generated by the virtual object production device based on the virtual object (for example, a virtual three-dimensional object and a virtual three-dimensional scene obtained through three-dimensional modeling).
  • the embodiments of this application do not limit the specific source of point cloud data.
  • the point cloud data may include at least the real geometric information of the point to be encoded; the real geometric information of the point to be encoded in the point cloud data may refer to: the real spatial position information of the point to be encoded in the three-dimensional space, specifically: Refers to the coordinate information in the three-dimensional coordinate system in the three-dimensional space.
  • the coordinate information of the point to be encoded in the three-dimensional coordinate system in the three-dimensional space is (x, y, z)
  • the real geometric information of the point to be encoded is (x, y, z); in this way, the multiple points to be encoded can be reflected through the real geometric information of multiple points to be encoded. Spatial position relationships in three-dimensional space.
  • the encoding device 301 can divide the point cloud data to be encoded into L point cloud groups, where L is an integer greater than or equal to 1; then, the encoding device 301 supports point cloud groups as units , create a single-chain prediction tree for each point cloud group; and link the single-chain prediction trees of the L point cloud groups in the order in which the L point cloud groups are divided to obtain the target prediction tree of the point cloud data.
  • L an integer greater than or equal to 1
  • the encoding device 301 supports point cloud groups as units , create a single-chain prediction tree for each point cloud group; and link the single-chain prediction trees of the L point cloud groups in the order in which the L point cloud groups are divided to obtain the target prediction tree of the point cloud data.
  • the target prediction tree of the point cloud data can be encoded to obtain the encoded point cloud data, and then the encoded code stream can be obtained, and the encoded code stream can be transmitted to the decoding device 302 .
  • the process of constructing a single-chain prediction tree for each point cloud group it is supported to select multiple starting points for each point cloud group, and use the multiple starting points as the starting point of the search to obtain the corresponding branch link.
  • multiple branch links corresponding to multiple starting points are linked to obtain a single-link prediction tree of the point cloud group.
  • This method of constructing a single-chain prediction tree based on multiple starting points can achieve an efficient prediction tree structure, improve the correlation between adjacent disordered points in three-dimensional space, and improve the coding efficiency of point cloud data.
  • the decoding device 302 After the decoding device 302 receives the encoded code stream, it can obtain the point cloud data to be decoded (ie, the encoded point cloud data) through the encoded code stream; then, it supports starting point analysis of the point cloud data to be decoded to determine Reconstructed geometric information of the starting point of the point cloud data.
  • the starting point may refer to the point to be encoded that is located at the first position in the point cloud data.
  • the reconstructed geometric information of each point can be determined based on the predicted geometric information and reconstruction residual information of each point, thereby realizing the reconstruction of point cloud data at the decoding end.
  • the starting point analysis of the point cloud data is supported, and the reconstructed geometric information of the starting point of the point cloud data is directly obtained, so as to quickly determine the reconstructed geometric information of the starting point.
  • the point cloud data to be encoded can be a point collection obtained by digitally collecting the surface of a real three-dimensional object.
  • Point cloud data is a collection of points as units. Each point included in point cloud data has geometric information and attribute information, which can be used to characterize the surface characteristics of real three-dimensional objects.
  • the capture device can be used to scan the three-dimensional object surface to obtain the point cloud data to be encoded.
  • the point cloud data to be encoded includes multiple points to be encoded collected from the surface of the three-dimensional object.
  • the specific implementation it supports dividing the point cloud data to be encoded, that is, dividing the multiple points to be encoded included in the point cloud data into different point cloud groups, so that each point cloud group can include the same or a different number of points to be encoded. point.
  • the following describes the implementation process of grouping the point cloud data to be encoded to obtain L point cloud groups in conjunction with Figure 7, as shown in Figure 7:
  • the encoding device obtains a quantity threshold, which may be customized according to the data partitioning requirements of the target object.
  • the points with the number of adjacent targets are divided into one point cloud group to obtain L point cloud groups.
  • the quantity threshold includes the number of targets, which can be used to indicate: divide the points to be encoded with the number of adjacent targets in the point cloud sequence into the same point cloud group. For example, if the quantity threshold is 100, then the number of targets included in the quantity threshold is 100.
  • the adjacent 100 points to be coded can be divided into the same point cloud group according to the order of the points to be coded in the point cloud sequence. To obtain L point cloud groups.
  • the L-th point cloud group is obtained by division, if the number of remaining undivided points in the point cloud sequence is less than the target number, the remaining undivided points are added to the L-th point cloud group.
  • the number of points to be encoded included in the Lth point cloud group is: the target number + the remaining undivided points that are less than the target number.
  • the remaining undivided points can be merged into the last divided point cloud group.
  • the L-th point cloud group is divided, the number of remaining undivided points in the point cloud sequence is 2, then the 2 remaining points are divided into the L-th point cloud group, so that the L point cloud groups include 5 points to be encoded.
  • S402 Determine a starting point for each point cloud group, and the number of starting points of each point cloud group is greater than 1.
  • the starting point of the point cloud group refers to the search starting point of the single-chain prediction tree that constructs the point cloud group.
  • the search starting point can be simply understood as the first point in the link, that is, located in the link (that is, the point formed by connecting multiple points in sequence. The point at the first position (or the first position) in the path).
  • the point to be encoded is searched from the point cloud group, and the point to be encoded is linked to the branch link starting from this point, so as to A branch link is formed with this starting point as the search starting point.
  • each point in the point cloud group is based on the distance between each starting point.
  • the geometric distance relationship is linked into a single-chain prediction tree, which can improve the correlation between the disordered points in the point cloud group and each starting point, and achieve an efficient single-chain prediction tree structure.
  • any point cloud group among the L point cloud groups is a target point cloud group.
  • the implementation process of selecting a starting point for the target point cloud group may include steps s11-s12.
  • the point cloud bounding box of the target point cloud group can be the bounding box of the octree node, including: a three-dimensional bounding box covering all points in the target point cloud group.
  • Spatial body such as the smallest cuboid, the smallest cube or the smallest polyhedron (such as the decahedron), etc.
  • the construction process of the point cloud bounding box of the target point cloud group may include:
  • the origin of the point cloud bounding box of the target point cloud group is determined.
  • the coordinate information of the floating point type of the k-th point of the target point cloud group is expressed as (x k , y k , z k )
  • the coordinate information of this point is expressed as (x 2 , y 2 , z 2 ).
  • the origin of the point cloud bounding box of the target point cloud group is determined, including 1-2.
  • x min is the minimum value in the x direction among the points to be encoded in the target point cloud group
  • y min is the minimum value in the y direction among the points to be encoded in the target point cloud group
  • z min is the target The minimum value in the z direction among the points to be encoded in the point cloud group.
  • min(s 0 ,s 1 ,...,s k-1 ) is the minimum value function, which means taking the minimum value from the current input.
  • x origin , y origin , z origin the origin (x origin , y origin , z origin ) of the point cloud bounding box of the target point cloud group based on the coordinate point with the minimum value (x min , y min , z min ).
  • the rounding function can return a value less than or equal to s and the largest multiple of the specified base. For example, floor(23, 3) means that it needs to return a value 21 that is less than or equal to 23 and the largest integer multiple of 3.
  • the size of the point cloud bounding box in each direction of the three-dimensional coordinate system is calculated to determine the points of the target point cloud group.
  • the int(s) function is a rounding-down function.
  • the coordinate point (x max , y max , z max ) is the point with the maximum value in the x direction, y direction and z direction.
  • x max is the maximum value in the x direction among the points to be encoded in the target point cloud group.
  • max(s 0 ,s 1 ,...,s k-1 ) is the maximum value function, which means taking the maximum value from the current input.
  • the point cloud bounding box of the target point cloud group can be obtained.
  • the basic idea of a bounding box is to approximately replace complex geometric objects with a slightly larger geometry with simple characteristics (called a bounding box); in the embodiment of this application, the point cloud of the target point cloud group Bounding box is the smallest cuboid that can be used to surround all points to be encoded in the target point cloud group.
  • An exemplary bounding box surrounding a geometric object can be seen in Figure 9.
  • the three-dimensional space area occupied by the bounding box includes a complete geometric object.
  • the geometric object surrounded by the point cloud bounding box in the first picture shown in Figure 9 is an object holding a basketball, and the geometric object surrounded by the point cloud bounding box in the second picture shown in Figure 9 is a rabbit.
  • the selection rules may include but are not limited to: random selection, selection based on the geometric distance relationship between vertices, And select along the preset direction, etc.
  • the so-called random selection means randomly selecting P1 vertices from multiple vertices as the starting point; the so-called selection based on the geometric distance relationship between vertices means: according to the geometric distance relationship between vertices, select P1 with the furthest geometric distance.
  • the point cloud bounding box is a cuboid, and the cuboid includes eight vertices. Then, according to the relationship of the furthest geometric distance between each vertex, vertex 601 and vertex 602 can be selected as the target from the eight vertices as needed.
  • the starting point of the point cloud group The selected vertices 601 and 602 do not belong to the points to be encoded in the target point cloud group, that is, vertices 601 and 602 are other points independent of the target point cloud group.
  • the first special point may refer to multiple points in the target point cloud group whose geometric distance is greater than the distance threshold.
  • the first special points include: extreme points and median points.
  • the extreme points include maximum value points (or called maximum value points) and minimum value points (or called minimum value points) along each direction (such as x direction, y direction and z direction), and the median point can be Includes the point at the middle position among multiple points arranged sequentially in the target point cloud group.
  • the minimum value point (x min , y min , z min ) that takes the minimum value in the x direction, y direction and z direction is used as the first special point.
  • the maximum value point (x max , y max , z max ) of the maximum value is taken as the first special point.
  • s32 select P3 starting points from one or more second special points, P3 is greater than or equal to 1.
  • P3 is greater than or equal to 1.
  • the order of the points to be encoded included in the target point cloud group is: point 1 ⁇ point 2 ⁇ point 3 ⁇ ... ⁇ point 10
  • determine the starting point in the order that is, the order
  • the first point to be encoded is point 1.
  • Determine the end point in the arrangement sequence, that is, the last point to be encoded in the arrangement sequence is point 10.
  • the embodiments of this application are not limited to selecting the starting point based only on one of the above implementation methods.
  • the starting point can be selected from multiple vertices of the point cloud bounding box of the target point cloud group, and/or, from the point cloud bounding box of the target point cloud group. Select a starting point from the extreme points, and/or select a starting point from multiple points to be encoded sorted in the target point cloud group. For example, the lower left vertex of the point cloud bounding box of the target point cloud group obtained based on spatial division (such as the process of determining the point cloud bounding box of the point cloud group) is selected as the starting point. At this time, the starting point does not belong to the target point cloud group. Current group.
  • the geometric distance between the first starting point and each point in the target point cloud group may be determined. Then, according to the geometric distance, the point with the farthest geometric distance from the first starting point is selected from each point in the target point cloud group as the second starting point. Furthermore, if you want to continue to select the third starting point, you can select a point that is far away from the first starting point and the second starting point from the remaining points in the target point cloud group as the third starting point. , and so on, until P4 starting points are selected, and P4 is greater than or equal to 1.
  • the embodiment of this application also supports several implementation methods based on the above (such as based on point cloud bounding boxes, multiple first special points from a point cloud group, based on sorted point cloud groups, or based on the positional relationship between starting points ), select starting points for some of the L point cloud groups. Then, based on the point cloud group with the selected starting point, the starting point is determined for the point cloud group without the selected starting point among the L point cloud groups.
  • the starting point can be selected in a direction that is conducive to improving coding efficiency. For example, if the lower left corner vertex of the point cloud bounding box of the target point cloud group is selected, the coding efficiency of building a prediction tree based on the lower left corner vertex is greater than that of selecting the lower right corner vertex of the point cloud bounding box of the target point cloud group. For the coding efficiency of building a prediction tree based on the vertices in the lower right corner, the lower left vertex of the point cloud bounding box is given priority as the starting point of the target point cloud group.
  • the lower left corner vertex of the point cloud bounding box of the target point cloud group based on spatial division is selected as the first starting point, and the end point among the multiple points to be encoded based on the arrangement order is selected as the second starting point, then in the subsequent You can first select a point based on the first starting point to link to the first starting point, and then select a point based on the second starting point to link to the second starting point.
  • S403 Construct a single-chain prediction tree for each point cloud group based on the starting point of each point cloud group.
  • the encoding device takes other points in the target point cloud group except the starting point as candidate points and adds them to the candidate point set.
  • the points to be encoded in the target point cloud group include: point 1, point 2, point 3, point 3 and point 5.
  • the target point cloud group is The starting point includes a first starting point and a second starting point, and the first starting point belongs to the point to be encoded in the target point cloud group (such as point 1), and the second starting point does not belong to the point to be encoded in the target point cloud group (such as Such as point 6), then other points to be encoded in the target point cloud group except the first starting point (such as point 1) can be used as candidate points and added to the candidate point set.
  • it is supported to search sequentially according to the priority order among multiple starting points of the target point cloud group to build branch links where each starting point is located. Specifically, it supports the construction of the first branch link of the single-chain prediction tree of the target point cloud group based on the first starting point and the set of alternative points, and the construction of the single chain of the target point cloud group based on the second starting point and the set of alternative points.
  • the second branch link of the prediction tree Then, the first branch link and the second branch link are connected to construct a single-link prediction tree to obtain the target point cloud group. Specifically, the last point of the first branch link with high priority is connected to the last point of the second branch link with low priority to obtain a single-link prediction tree of the target point cloud group.
  • the starting points first take the first starting point A as the starting point of the search, and search from the set of candidate points for the first candidate point (such as point 2) with the closest geometric distance to the first starting point A, and then Link point 2 to the first starting point A to build a first branch link, and delete the first candidate point from the set of candidate points.
  • search for the second candidate point such as point 3 with the closest geometric distance to the second starting point B from the set of candidate points from which the first candidate point has been deleted.
  • the second candidate point is linked to the second starting point B to construct a second branch link, and the second candidate point is continued to be deleted from the set of candidate points in which the first candidate point is deleted.
  • the updated set of candidate points is Including points 4 and 5.
  • the first starting point A is used as the starting point of the search, and the third candidate point (such as point 4) with the closest geometric distance to the first starting point A is searched from the updated set of candidate points, and then the third candidate point is Points are linked to after the current last point (ie, the first candidate point) in the first branch link to construct the first branch link, and the third candidate point is deleted from the updated set of candidate points.
  • the second starting point B is used as the starting point of the search, and the fourth candidate point (such as point 5) with the closest geometric distance to the second starting point B is searched from the updated set of candidate points.
  • point 5 can be directly used as the fourth candidate point after the current last point (i.e., the second candidate point) in the second branch link to construct the second branch link; at this time If the candidate point set is an empty set, then the first branch link constructed with the first starting point A as the search starting point is point 1 ⁇ point 2 ⁇ point 4, and the second branch link constructed with the second starting point B as the search starting point It is point 6 ⁇ point 3 ⁇ point 5.
  • a set of candidate points of the target point cloud group is constructed, which does not include the starting point of the target point cloud group; then, using the starting point A as the starting point of the search, the unconnected points to be encoded in the set of candidate points are Among the points, the points with the closest geometric distance to the starting point A are searched one by one as the subsequent nodes of the current point (such as the point to be connected to the next point in the first branch link) to obtain the starting point A as the starting point of the search.
  • starting point A i.e., the first starting point
  • starting point B i.e., the second starting point
  • the specific process of this implementation may include:
  • the first calculation rule calculates the first distance weighted value between each candidate point in the candidate point set and the first starting point and the second starting point.
  • i is the candidate point in the candidate point set
  • A is the first starting point of the target point cloud group
  • B is the second starting point of the target point cloud
  • d(i,A) is the candidate point i and the first starting point A
  • the geometric distance between them, d(i,B) is the geometric distance between candidate point i and the second starting point B.
  • the value of coefficient a1 is a1>0
  • the value of coefficient b1 is b1 ⁇ 0.
  • the first candidate point whose first distance weighted value indicates the closest distance to the first starting point and the relatively farthest distance to the second starting point is added to the first branch chain with the first starting point as the first point. path, that is, the first candidate point is used as the subsequent node of the first starting point (such as the point on the first branch link); and, the set of alternative points is updated according to the first candidate point, specifically by deleting the set of candidate points from the set of alternative points.
  • a candidate point is obtained, and an updated set of candidate points is obtained.
  • the second calculation rule calculates the second distance weighted value between each candidate point in the updated set of candidate points and the first starting point and the second starting point.
  • i is the candidate point in the candidate point set
  • A is the first starting point of the target point cloud group
  • B is the second starting point of the target point cloud
  • d(i,A) is the candidate point i and the first starting point A
  • the geometric distance between them, d(i,B) is the geometric distance between candidate point i and the second starting point B
  • the value of coefficient a2 is a2 ⁇ 0
  • the value of coefficient b2 is b2>0, that is, the value of d2
  • it means that the candidate point i is relatively farthest from the first starting point A and relatively closest to the second starting point B.
  • Then determine the association between the candidate point i and the second starting point B.
  • the correlation with the first starting point A is stronger.
  • the embodiments of this application do not limit the specific values of coefficients a2 and b2.
  • the second candidate point whose second distance weighted value indicates the farthest distance from the first starting point and the relatively shortest distance to the second starting point to the second branch with the second starting point as the first point.
  • Link that is, the second candidate point is the subsequent node (such as the point on the second branch link) as the second starting point; and, based on the second candidate point, the last updated candidate point set is updated again, specifically from Delete the second candidate point from the set of candidate points after deleting the first candidate point, and obtain the set of candidate points after the second update.
  • the points to be encoded in the target point cloud group are: point 1, point 2, point 3, point 4 and point 5 respectively.
  • the starting point of the target point cloud group includes obtaining the first starting point A as point 1, and the second starting point B as point 6 independent of the target point cloud group.
  • other than point 1 in the target point cloud group to be encoded Points are used as candidate points and added to the candidate point set.
  • the candidate point set includes: point 2, point 3, point 4 and point 5.
  • the second distance weighted value between each candidate point in the updated set of candidate points and the first starting point A and the second starting point B; add the first distance indicated in the second distance weighted value together
  • the second candidate point that is relatively farthest from the starting point A and relatively closest to the second starting point B is used as the subsequent node of the second starting point B; for example, the second distance weighted value corresponding to point 2 is 7, and the second distance weighted value corresponding to point 3 is 7.
  • the second distance weighted value is 5, and the second distance weighted value corresponding to point 4 is 6, then point 2 is used as the subsequent node of the second starting point B; delete the second candidate point from the updated set of candidate points, and Update the set of alternative points. Repeat the above steps until the candidate point set is an empty set, and obtain a first branch link with the first starting point A as the first point, and a second branch link with the second starting point B as the first point.
  • the distance weighted value of any candidate point includes: the difference between the first weighted value between the any candidate point and the first starting point, and the second weighted value between any candidate point and the second starting point.
  • the embodiment of the present application also supports that after obtaining each distance weighted value in the candidate point set, first select the first point with the smallest distance weighted value to link to the first starting point, and then select the smallest distance weighted value from the remaining points. After the two points are linked to the first point, the point with the smallest weighted distance value is selected from the remaining points and linked to the second point, until all points in the candidate point set are linked, and a single-chain prediction of the target point cloud group is obtained. Tree.
  • the embodiments of this application do not limit the specific implementation process of directly constructing a single-chain prediction tree of the target point cloud group based on multiple starting points of the target point cloud group, which is explained here.
  • Another optional implementation process The principle of conducting multiple searches based on multiple starting points of the target point cloud group can be simply summarized as: assuming that the current point to be encoded in the target point cloud is i, the first starting point is denoted is A, and the second starting point is marked as B.
  • the first starting point is used as the search starting point, and the first candidate point with the smallest distance weight value between the search starting point and the second starting point is searched from the candidate point set.
  • the distance weighted value of any candidate point includes: the difference between the first weighted value between any candidate point and the first starting point, and the second weighted value between any candidate point and the second starting point.
  • the embodiment of the present application After obtaining the single-chain prediction tree of each point cloud group in the point cloud data based on the aforementioned steps S401-S403, the embodiment of the present application also supports the construction of a target prediction tree of the point cloud data based on the single-chain prediction tree of each point cloud group, so that Each point to be encoded in the point cloud data is encoded using a target prediction tree based on the point cloud data. Specifically, a single-chain prediction tree for each of the L point cloud groups can be obtained. Then, according to the grouping order of L point cloud groups, that is, the order in which L point cloud groups are obtained by dividing the point cloud data, the single-chain prediction tree of each point cloud group is connected in turn to obtain the target prediction tree of the point cloud data.
  • the starting point of the target prediction tree is the first starting point of the first point cloud group among the L point cloud groups
  • the end point of the target prediction tree is the end point of the Lth point cloud group among the L point cloud groups.
  • the schematic process of constructing a target prediction tree for complete point cloud data can be seen in Figure 15.
  • the point cloud data includes L point cloud groups.
  • Each point cloud group corresponds to a single-chain prediction tree.
  • each point cloud group corresponds to The single-chain prediction trees are connected to obtain the target prediction tree of the point cloud data.
  • the point cloud data to be encoded after obtaining the point cloud data to be encoded, it is supported to first divide the point cloud data to obtain multiple point cloud groups; and then use the group as a unit to build a single chain for each point cloud group. Prediction tree; finally, the prediction tree of the entire point cloud data is obtained based on the single-chain prediction tree of each point cloud group; compared to building a tree prediction tree for the entire point cloud data, the point cloud data can be shortened to a certain extent The construction time of the prediction tree is improved to improve the construction efficiency of the prediction tree.
  • the embodiment of the present application provides a point cloud encoding method.
  • the specific implementation process of the point cloud encoding method can be seen in Figure 16.
  • This point cloud encoding method can be executed by the encoding device 301 in the point cloud encoding and decoding system 30 shown in FIG. 5 .
  • the point cloud encoding method may include the following steps S1101-S1105:
  • the point cloud data is divided into L point cloud groups.
  • S1102 Determine a starting point for each point cloud group, and the number of starting points of each point cloud group is greater than 1.
  • S1104 Connect the single-chain prediction trees of each point cloud group to obtain the target prediction tree of the point cloud data.
  • S1105 Encode each point to be encoded in the point cloud data based on the target prediction tree.
  • the embodiment of this application supports the encoding device to use multiple encoding rules to encode each point to be encoded in the point cloud data to obtain the encoded point cloud data.
  • the encoded point cloud data belongs to the encoding code stream.
  • it supports encoding the bounding box information of the point cloud bounding box of point cloud data to obtain encoded point cloud data.
  • it is supported to encode the starting point information of the first starting point of the first point cloud group in the point cloud data (such as the real geometric information of the first starting point) to obtain the encoded point cloud data.
  • it supports encoding the starting point information of the starting point of each point cloud group in the point cloud data to obtain the encoded point cloud data.
  • the starting point of the point cloud group here can refer to: the point cloud group adjacent to the previous point cloud group.
  • the termination point (or the final point) of the single-chain prediction tree for example, the starting point of the j-th point cloud group may refer to the termination point of the single-chain prediction tree of the j-1th point cloud group.
  • Encoding rule 1 Support the encoding device to encode the bounding box information of the point cloud bounding box based on the overall point cloud data obtained by spatial division, as well as each point to be encoded in the point cloud data, to obtain the encoding code stream. Then the decoder can directly calculate the starting point information of the point cloud data to be decoded (such as the reconstructed geometric information of the starting point) based on the point cloud bounding box and spatial division of the point cloud data.
  • the bounding box information may include but is not limited to: the origin information of the point cloud bounding box, and the size of the point cloud bounding box along the x direction, y direction, and z direction. Information etc. Encode the bounding box information to obtain encoded bounding box information.
  • determine the geometric encoding mode of the target prediction tree which defines the prediction method or strategy for predicting geometric information of each point to be encoded in the point cloud data.
  • each point to be encoded in the point cloud data is encoded according to the geometric encoding mode to obtain encoded point cloud data.
  • the encoded code stream is obtained.
  • the embodiment of the present application also supports encoding the bounding box information of the point cloud bounding box of each point cloud group, and encoding the bounding box information of the point cloud bounding box of each point cloud group.
  • Each point to be encoded in the point cloud data is encoded to obtain encoded point cloud data.
  • Encoding rule 2 The encoding end is supported to encode the starting point information of the first point cloud group in the point cloud data (such as the real geometric information of the starting point), and to encode other points to be encoded in the point cloud data according to the geometric encoding mode. to get the encoded code stream. Encode the starting point information of the starting point of the target prediction tree.
  • the starting point of the target prediction tree here may refer to the first starting point of the first point cloud group among the L point cloud groups, and the starting point information of the first starting point But it refers to the real geometric information of the first starting point in the three-dimensional space coordinate system.
  • Encoding rule three Support the encoding end to encode the starting point information of the first starting point in the single-chain prediction tree of each point cloud group and the group information of each point cloud group (such as the number of points contained in the point cloud group, group identification (such as group number) etc.), and encode other points to be encoded in the point cloud data according to the geometric encoding mode to obtain encoded point cloud data.
  • the first starting point in the above-mentioned single-chain prediction tree may refer to the end point of the adjacent previous single-chain prediction tree.
  • the first starting point of the i-th group may refer to the end point of the i-1th group.
  • the encoding device encodes the starting point information of the first starting point in each single-chain prediction tree and the group information of each point cloud group. Obtain the geometric encoding mode of the target prediction tree, and encode each point to be encoded in the point cloud data according to the geometric encoding mode.
  • the first one in the single-chain prediction tree based on the encoded point cloud group
  • the starting point information of the starting point, the group information contained in each encoded point cloud group, and the encoded point cloud data are used to obtain the encoded code stream.
  • the implementation process of encoding each point to be encoded in the point cloud data according to the geometric encoding mode may include: first, performing geometric prediction processing on each point to be encoded in the point cloud data according to the geometric encoding mode of the target prediction tree, The predicted geometric information of each point to be encoded in the point cloud data is obtained. Then, based on the predicted geometric information and real geometric information of each point to be encoded in the point cloud data, the prediction residual information of each point to be encoded in the point cloud data is determined. Specifically, the real geometric information of the point to be encoded and the predicted geometric information of the point to be encoded are subtracted to obtain the prediction residual information of the point to be encoded. Finally, the prediction residual information of each point to be encoded in the point cloud data is encoded to obtain the encoded code stream.
  • a single presequence node to perform geometric prediction processing on the current point to be encoded, that is, it supports determining the predicted geometric information of the current point to be encoded based on a single presequence node (or simply a presequence point). It is assumed that the point cloud data includes the current point to be encoded, and the current point to be encoded refers to any point to be encoded in the target prediction tree except the first point. Then, according to the geometric coding mode of the target prediction tree, geometric prediction processing is performed on the point currently to be encoded, and the process of obtaining the predicted geometric information of the point currently to be encoded includes: obtaining the point before the current point to be encoded in the target prediction tree, And the real geometric information of an adjacent previous point.
  • each point cloud group adopts the same geometric encoding mode; if the default setting information indicates that the same geometric encoding mode is set for each point cloud group in the point cloud data, If each point cloud group sets a different geometric encoding mode, each point cloud group adopts a different geometric encoding mode.
  • the default setting information may be pre-set in the storage space of the encoding device, so that when the encoding device needs to use the geometric encoding mode for encoding, it can be directly pulled from the storage space.
  • the decoding device (2) Set a unified geometric encoding mode for each point cloud group in the point cloud data, and send the mode information of the geometric encoding mode to the decoding device.
  • the mode information of the geometric coding mode is written into the parameter set (such as coding header information) or coding stream, so that when transmitting the parameter set or coding stream, the mode information of several coding modes can be sent to the decoding device at once. .
  • the decoding device can set the geometric decoding mode for the point cloud data to be decoded according to the mode information.
  • the mode information of the geometric coding mode is written into the parameter set or the encoding code stream, so that when the parameter set or the encoding code stream is transmitted, the mode information of several encoding modes can be sent to the decoding device at once.
  • the point cloud data includes a first point cloud group and a second point cloud group
  • the first geometric encoding mode set for the first point cloud group indicates: using a single pre-order node to perform geometric prediction processing on the current point to be encoded
  • the second geometric encoding mode set for the second point cloud group indicates that S (S is greater than or equal to 2) pre-order nodes are used to perform geometric prediction processing on the current point to be encoded; then the mode information of the first geometric encoding mode and the third
  • the mode information of the two geometric coding modes is sent to the decoding device, so that the decoding device sets the geometric decoding mode for the corresponding point cloud group to be decoded according to the mode information.
  • the geometric distribution characteristics of point cloud data determine the geometric coding mode of the target prediction tree.
  • the geometric distribution characteristics of the point cloud data may include: the size distribution characteristics of the point cloud bounding box along the x direction, y direction and z direction based on the spatially divided point cloud data; or, the size distribution characteristics of the point cloud group in the point cloud data.
  • the point cloud encompasses the size distribution characteristics along the x, y, and z directions.
  • the geometric encoding mode is determined according to the geometric distribution characteristics of the point cloud bounding box of the point cloud data. Specifically, first, the point cloud bounding box of the point cloud data is determined. Specifically, the point cloud bounding box is constructed based on the spatial division into the point cloud data. The point cloud bounding box includes all points to be encoded in the point cloud data; after determining In the process of creating a point cloud bounding box for point cloud data, the bounding box size of the point cloud bounding box can be determined based on the real geometric information of each point in the point cloud data.
  • the geometric coding mode is determined for the target prediction tree based on the difference value. For example, for the target prediction tree in the x direction, Different geometric encoding modes are set in the y direction and z direction, that is, point cloud data uses different geometric encoding modes in different directions. Specifically, the points to be encoded in the point cloud data use different geometric encoding in different directions. model.
  • the determination method of the difference value between the bounding box size of the point cloud bounding box in the x direction, the y direction and the z direction may include: dividing the size of the point cloud bounding box in the x direction, the size in the y direction and The sizes in the z direction are subtracted sequentially to obtain the difference value; if the difference value is greater than the difference threshold, the bounding box size of the point cloud bounding box is determined. The difference value between the x direction, the y direction and the z direction is larger; On the contrary, if the difference value is less than or equal to the difference threshold, the bounding box size of the point cloud bounding box is determined, and the difference value between the x direction, the y direction and the z direction is small.
  • the embodiment of the present application does not limit the specific implementation process of determining the difference value between the bounding box size of the point cloud bounding box in the x direction, the y direction and the z direction.
  • the size of the point cloud bounding box in the x direction is described above.
  • the size in the y direction and the size in the z direction in sequence Subtraction is just an exemplary implementation process for determining the difference value given in the embodiment of the present application, and is specifically explained here.
  • the geometric encoding mode is determined based on the geometric distribution characteristics of each point cloud group in the point cloud data; that is, the point cloud group is taken as a unit and based on the geometric distribution characteristics of each point cloud group, the corresponding point cloud group is Determine the geometry encoding mode. Specifically, first, based on the real geometric information of the points to be encoded in each point cloud group in the point cloud data, the bounding box size of the point cloud bounding box of each point cloud group is analyzed; then, based on the points of each point cloud group Geometric distribution properties of cloud bounding boxes, setting encoding mode for each point cloud group.
  • the bounding box of the point cloud bounding box of the target point cloud group can be analyzed. Box size; if the difference value between the bounding box size of the target point cloud group in the x direction, y direction and z direction is greater than the difference threshold, then the single chain prediction tree of the target point cloud group will be in the x direction, y direction and z direction.
  • different geometric encoding modes are respectively set, that is, the points to be encoded included in the target point cloud group adopt different geometric encoding modes in different directions.
  • the method for determining the difference value between the bounding box size of the point cloud bounding box of the target point cloud group in the x direction, the y direction and the z direction can be found in the above relevant description, and will not be described again here.
  • the embodiments of the present application support geometric encoding of each point to be decoded in point cloud data. Compared with encoding the points to be encoded, the amount of data when encoding geometric information can be reduced and the cost of compressed data can be reduced. transmission volume, further improving the coding efficiency of point cloud data.
  • embodiments of the present application also support multiple geometric encoding modes, so that the same or different geometric encoding modes can be selected according to business needs to optimize the geometric encoding mode, thereby improving the encoding efficiency of point cloud data.
  • the embodiment of the present application provides a point cloud decoding method.
  • the implementation process of the point cloud decoding method can be seen in Figure 18.
  • the point cloud decoding method can be executed by the decoding device 302 in the point cloud encoding and decoding system 30 shown in Figure 5.
  • the point cloud decoding method may include the following steps S1301-S1304:
  • the point cloud data to be decoded includes multiple points to be decoded; the point cloud data to be decoded may refer to the aforementioned encoded point cloud data, which belongs to the encoded code stream.
  • the point cloud data to be decoded is obtained by encoding each point to be encoded in the point cloud data based on the single-chain prediction tree of each point cloud group in the point cloud data to be encoded.
  • the single-chain prediction tree of each point cloud group The prediction tree is constructed based on the starting points of each point cloud group, and the number of starting points of each point cloud group is greater than 1.
  • the encoding device and the decoding device can be the same device. In this way, after the encoding device completes encoding the point cloud data, the encoded point cloud data can be stored in the storage space. In this way, the decoding device (i.e. encoding device) When there is a need for decoding, the point cloud data to be encoded can be obtained directly from the storage space.
  • S1302 Perform starting point analysis on the point cloud data to obtain reconstructed geometric information of the starting point of the point cloud data.
  • the encoding device supports using multiple encoding rules to encode each point to be encoded in the point cloud data to obtain an encoded code stream. For example, it supports encoding the bounding box information of the point cloud bounding box of point cloud data to obtain the encoded code stream. For another example, it is supported to encode the starting point information of the first starting point of the first point cloud group in the point cloud data (such as the real geometric information of the first starting point) to obtain the encoded code stream. For another example, it supports encoding the starting point information of the starting point of each point cloud group in point cloud data to obtain the encoded code stream.
  • the decoding device can use different methods to parse and obtain the reconstructed geometric information of the starting point of the target prediction tree according to different encoding rules for point cloud data.
  • the reconstructed geometric information of the starting point of the point cloud data is predicted by parsing the encoded bounding box information.
  • the point cloud data to be decoded belongs to the encoded code stream, which includes the encoded bounding box information.
  • the encoded bounding box information can be parsed to obtain the vertex information of each vertex of the point cloud bounding box of the point cloud data. Based on the vertex information of each vertex of the point cloud bounding box, the reconstructed geometric information of the starting point of the point cloud data can be determined.
  • the encoded bounding box information includes: the vertex information of a vertex (such as the lower-left corner vertex) of the point cloud bounding box and the size information along the xyz direction.
  • the encoded bounding box information After parsing the encoded bounding box information, it can be directly Get the predicted geometric information of a vertex of the point cloud bounding box and the size information along the xyz direction.
  • the point cloud bounding box can be a cuboid or a cube, based on the predicted geometric information of one vertex and the size information along the xyz direction, the predicted geometric information of other vertices of the point cloud bounding box can be derived.
  • the starting point can be selected from multiple vertices of the point cloud bounding box according to the starting point selection information, so that the predicted geometric information of the selected vertex is used as the reconstructed geometric information of the starting point.
  • the starting point selection information can be used to instruct the selection of P1 vertices from multiple vertices of the point cloud bounding box as the starting point.
  • the starting point selection information can be stored in the decoding device in the form of parameters, or the encoding device can be based on points.
  • the cloud bounding box is generated after selecting P1 starting points and sent to the decoding device.
  • the encoded bounding box information is the bounding box information of the point cloud bounding box of the point cloud group in the point cloud data, it is also supported to perform the bounding box information of the point cloud bounding box of each point cloud group. Analyze and obtain the vertex information of each vertex of each point cloud bounding box. Then based on the vertex information of each vertex of the point cloud bounding box of each point cloud group, the reconstructed geometric information of the starting point of the single-chain prediction tree of each point cloud group is determined. Among them, each point cloud group is obtained by grouping point cloud data by the encoding device.
  • the reconstructed geometric information of the starting point of the predicted point cloud data is achieved by parsing the starting point information of the first starting point in the single-chain prediction tree of each point cloud group in the point cloud data.
  • the point cloud data to be decoded belongs to the encoded code stream.
  • the encoded code stream includes the starting point information of the first starting point in each encoded single-chain prediction tree.
  • a single-chain prediction tree corresponds to a point cloud group.
  • the point cloud The group is obtained by dividing the point cloud data at the encoding end.
  • the target prediction tree of the point cloud data is obtained by connecting the single-chain prediction trees of each point cloud group.
  • the first starting point in the single-chain prediction tree mentioned above may refer to the termination point of the adjacent single-chain prediction tree.
  • S1303 Obtain the geometric decoding mode of the target prediction tree, perform geometric prediction processing on each point in the point cloud data according to the geometric decoding mode and the reconstructed geometric information of the starting point, and obtain the predicted geometric information of each point in the point cloud data.
  • geometric prediction processing can be performed on each point in the point cloud data according to the geometric decoding mode of the point cloud data, and the predicted geometric information of each point can be obtained. For example, if the reconstructed geometric information of the first starting point of the target prediction tree of point cloud data is known, then based on the reconstructed geometric information of the first starting point, according to the geometric The coding mode in turn derives the predicted geometric information of other points.
  • the point cloud data includes the number of points in each point cloud group after encoding.
  • the predicted point number information of each point cloud group can be obtained, then according to Geometry decoding mode can determine the predicted geometry of each point in each point cloud group based on the predicted point number information of each point cloud group and the known predicted geometry information of the last point of the single-chain prediction tree of each point cloud group. information, and then obtain the predicted geometric information of each point in the point cloud data.
  • Geometry decoding mode can determine the predicted geometry of each point in each point cloud group based on the predicted point number information of each point cloud group and the known predicted geometry information of the last point of the single-chain prediction tree of each point cloud group. information, and then obtain the predicted geometric information of each point in the point cloud data.
  • For the i-th point cloud group we can derive Get the predicted geometric information of each point in the i-th point cloud group. By analogy, the predicted geometric information of each point in the point cloud data is obtained.
  • the geometric decoding mode used by the decoder may include but is not limited to:
  • a single presequence node to perform geometric prediction processing on the current point to be decoded, that is, it supports determining the predicted geometric information of the current point to be decoded based on a single presequence node (or simply a presequence point). It is assumed that the point cloud data includes the current point to be decoded, and the current point to be decoded refers to any point to be decoded except the first point in the point cloud data or point cloud group.
  • the process of obtaining the predicted geometric information of the current point to be decoded includes: obtaining the point before the current point to be decoded in the decoding sequence, and Predicted geometric information for adjacent single preceding points. Then, the predicted geometric information of the previous point is used as the predicted geometric information of the current point to be decoded.
  • the decoding order refers to the encoding order in which the encoding end encodes each point in the point cloud data to be encoded.
  • the encoding sequence in which the encoding device encodes each point in the point cloud data to be encoded is: point 1 ⁇ point 3 ⁇ point 2 ⁇ point 5 ⁇ point 4, then it is determined that the decoding device decodes each point in the point cloud data to be decoded.
  • the decoding order is: point 1 ⁇ point 3 ⁇ point 2 ⁇ point 5 ⁇ point 4.
  • the encoding device and the decoding device may store default setting information, which indicates setting a default geometric decoding mode for the point cloud data. After the default device information is obtained, the default setting information is set for the point cloud data. Geometry decoding information. When the point cloud data is divided into multiple point cloud groups, if the default setting information indicates that the same geometric decoding mode is set for each point cloud group in the point cloud data, each point cloud group adopts the same geometric decoding.
  • the default setting information can be preset in the storage space of the decoding device, In this way, when the decoding device needs to adopt the geometric decoding mode, it can be directly pulled from the storage space.
  • the default setting mode can also be sent from the encoding device to the decoding device, that is, the decoding device can obtain the default setting information from the point cloud data to be encoded (or called encoded point cloud data), and use the default settings according to the The information sets the default geometric coding mode for the target prediction tree. This default setting information is negotiated between the encoding end and the decoding end.
  • the geometric distribution characteristics of point cloud data determine the geometric encoding mode of point cloud data.
  • the geometric distribution characteristics of the point cloud data may include: the size distribution characteristics of the point cloud bounding box along the x direction, y direction and z direction based on the spatially divided point cloud data; or, the size distribution characteristics of the point cloud group in the point cloud data.
  • the point cloud encompasses the size distribution characteristics along the x, y, and z directions.
  • the determination method of the difference value between the bounding box size of the point cloud bounding box in the x direction, the y direction and the z direction may include: dividing the size of the point cloud bounding box in the x direction, the size in the y direction and The dimensions in the z direction are subtracted successively to obtain the difference value. If the difference value is greater than the difference threshold, the bounding box size of the point cloud bounding box is determined. The difference value between the x direction, the y direction and the z direction is larger; conversely, if the difference value is less than or equal to the difference threshold, the point cloud bounding box is determined. The difference between the bounding box size of the cloud bounding box in the x direction, the y direction and the z direction is small.
  • the distance statistical characteristics of the point cloud data may refer to: the sum of distances of multiple adjacent points in the point cloud data. Specifically, it may be the sum of the absolute values of the reconstruction residual information of multiple adjacent points.
  • the reconstruction residual information of each point can be an analysis of the encoded prediction residual information in the encoded code stream. owned. That is to say, the encoding device can encode the prediction residual information of each point, so that the decoding device can analyze the encoded prediction residual information of each point and obtain the reconstructed residual information of each point. The sum of reconstruction residual information between multiple adjacent points can be counted. If the sum of reconstruction residual information is greater than the distance threshold, the specified geometric encoding mode is set for the point cloud data. If the specified geometric encoding mode indicates that S A pre-order node performs geometric prediction processing on the current point to be decoded.
  • the point cloud data after obtaining the point cloud data to be decoded, can be analyzed from a starting point to determine the reconstructed geometric information of the starting point of the target prediction tree of the point cloud data. Then, according to the geometric decoding mode of the point cloud data and the reconstructed geometric information of the starting point, geometric prediction processing is performed on each point to be encoded in the point cloud data, and the predicted geometric information of each point to be encoded is obtained. Then, based on the predicted geometric information of each point in the point cloud data, each point in the point cloud data is geometrically decoded to determine the reconstructed geometric information of each point in the point cloud data.
  • the acquisition unit 1401 is used to acquire the point cloud data to be encoded.
  • the point cloud data is a collection of points.
  • the point cloud data is divided into L point cloud groups. L is an integer greater than or equal to 1.
  • Each point cloud A group contains multiple points to be encoded;
  • the processing unit 1402 is used to determine the starting point for each point cloud group, and the number of starting points of each point cloud group is greater than or equal to 1;
  • the processing unit 1402 is also used to construct a single-chain prediction tree of each point cloud group based on the starting point of each point cloud group;
  • the processing unit 1402 is also used to encode each point to be encoded in the point cloud data according to the single-chain prediction tree of each point cloud group.
  • the method of determining the starting point of the point cloud group includes any one or more of the following:
  • the first special point refers to a point in the point cloud group whose geometric distance is greater than the distance threshold
  • Any point cloud group among the L point cloud groups is a target point cloud group.
  • the processing unit 1402 is used to select a starting point for the target point cloud group, it is specifically used for:
  • the method of determining the starting point of the point cloud group includes: selecting the starting point from a plurality of first special points of the point cloud group;
  • any point cloud group among the L point cloud groups is a target point cloud group, and the starting point of the target point cloud group at least includes: a first starting point and a second starting point; based on the first starting point and the Describe the second starting point and construct a single-chain prediction tree of the target point cloud group, including:
  • the priority of the first starting point is greater than the priority of the second starting point; the processing unit 1402 is configured to construct a single chain of the target point cloud group based on the candidate point set, the first starting point, and the second starting point.
  • predicting trees it is specifically used for:
  • first candidate point search for the second candidate point with the smallest distance between the search starting point and the second starting point from the updated set of candidate points; and link the second candidate point to the new Search starting point, and update the candidate point set based on the first candidate point;
  • processing unit 1402 is also used to:
  • the points of the adjacent target number are divided into one point cloud group to obtain L point cloud groups;
  • the L-1 point cloud group is obtained by dividing, if the number of remaining undivided points in the point cloud sequence is less than the target number, the remaining undivided points will be added to the L-th point cloud group;
  • the L-th point cloud group is obtained by division, if the number of remaining undivided points in the point cloud sequence is less than the target number, then the remaining undivided points are added to the L-th point cloud group.
  • the processing unit 1402 is used to encode each point to be encoded in the point cloud data according to the single-chain prediction tree of each point cloud group, specifically for:
  • the starting point of the target prediction tree is the first starting point of the first point cloud group among the L point cloud groups
  • the end point of the target prediction tree is the end point of the L-th point cloud group among the L point cloud groups.
  • the processing unit 1402 is used to encode each point to be encoded in the point cloud data based on the target prediction tree, and when obtaining the encoded code stream, it is specifically used to:
  • the starting point of the target prediction tree refers to the first starting point of the first point cloud group among the L point cloud groups;
  • the encoded code stream is obtained.
  • the processing unit 1402 is used to encode each point to be encoded in the point cloud data based on the target prediction tree, and when obtaining the encoded code stream, it is specifically used for:
  • the encoded code stream is obtained.
  • the processing unit 1402 is used to encode each point to be encoded in the point cloud data according to the geometric encoding mode, specifically for:
  • the prediction residual information of each point in the point cloud data is encoded to obtain the encoded point cloud data.
  • the point cloud data includes the current point to be encoded, and the current point to be encoded refers to any point to be encoded in the target prediction tree except the starting point;
  • the processing unit 1402 is configured to perform geometric prediction processing on the point currently to be encoded according to the geometric encoding mode of the target prediction tree. When obtaining the predicted geometric information of the point currently to be encoded, it is specifically configured to perform at least one of the following:
  • the processing unit 1402 when used to obtain the geometric coding mode of the target prediction tree, it is specifically used to:
  • the processing unit 1402 is configured to determine the geometric coding mode of the target prediction tree according to the geometric distribution characteristics of the point cloud data, specifically for:
  • the geometric encoding mode is determined for the target prediction tree based on the difference value.
  • the processing unit 1402 is configured to determine the geometric coding mode of the target prediction tree according to the geometric distribution characteristics of the point cloud data, specifically for:
  • the single chain prediction tree of the target point cloud group will be in the x direction, y direction and z direction respectively.
  • Figure 20 is a schematic structural diagram of a point cloud decoding device provided by an embodiment of the present application.
  • the point cloud decoding device can be provided in a computer device provided by an embodiment of the present application.
  • the computer device can be the method embodiment described above.
  • the encoding device mentioned in; in some embodiments, the point cloud decoding device can be a computer program (including program code) running in the computer device, and the point cloud decoding device can be used to perform the method shown in Figure 18 Corresponding steps in the examples.
  • the point cloud decoding device may include the following units:
  • the acquisition unit 1501 is used to acquire point cloud data to be decoded.
  • the point cloud data includes multiple points to be decoded.
  • the point cloud data to be decoded is a single chain of each point cloud group in the point cloud data to be encoded by the encoding end.
  • Prediction tree obtained by encoding each point to be encoded in the point cloud data.
  • the single-chain prediction tree of each point cloud group is constructed based on the starting point of each point cloud group. The number of starting points of each point cloud group All are greater than or equal to 1;
  • the processing unit 1502 is used to analyze the starting point of the point cloud data and obtain the reconstructed geometric information of the starting point of the point cloud data;
  • the processing unit 1502 is also configured to perform geometric decoding on each point in the point cloud data based on the predicted geometric information of each point in the point cloud data, so as to determine the reconstructed geometric information of each point in the point cloud data.
  • the reconstructed geometric information of the starting point of the point cloud data is determined.
  • the processing unit 1502 is used to perform starting point analysis on the point cloud data, and when obtaining the reconstructed geometric information of the starting point of the point cloud data, it is specifically used for:
  • the analysis results are used as the reconstructed geometric information of the starting point of the point cloud data.
  • the point cloud data to be decoded belongs to the encoding stream.
  • the encoding stream includes the starting point information of the first starting point in each single-chain prediction tree after encoding.
  • the encoding stream is the point to be encoded at the encoding end.
  • Each point in the cloud data is encoded;
  • a single-chain prediction tree corresponds to a point cloud group, and the point cloud group is obtained by grouping the point cloud data at the encoding end;
  • the processing unit 1502 is used to perform starting point analysis on the point cloud data, and when obtaining the reconstructed geometric information of the starting point of the point cloud data, it is specifically used for:
  • the analysis results for the starting point information of the first starting point in each single-chain prediction tree are used as the reconstructed geometric information of the starting point of the corresponding point cloud group.
  • the encoded code stream includes encoded group information of each point cloud group; the group information of the point cloud group at least includes: the number of points contained in the point cloud group and the group identifier of the point cloud group;
  • the predicted geometric information of each point in each point cloud group is determined to obtain the point cloud data Predicted geometric information of each point in .
  • the point cloud data includes the current point to be decoded, and the current point to be decoded refers to the point to be decoded in the point cloud data except the starting point;
  • the processing unit 1502 is used to perform the current to be decoded based on the geometric decoding mode.
  • the process of geometric prediction processing of points, the process of obtaining the predicted geometric information of the current point to be decoded, is specifically used for:
  • the decoding order refers to the encoding order in which the encoding end encodes each point in the point cloud data to be encoded.
  • processing unit 1502 when the processing unit 1502 is used to obtain the geometric decoding mode of point cloud data, it is specifically used for at least one of the following:
  • the default setting information is negotiated between the encoding end and the decoding end;
  • the point cloud group is obtained by grouping the point cloud data at the encoding end;
  • the encoded code stream includes encoded bounding box information, and the encoded code stream is obtained by encoding each point in the point cloud data to be encoded by the encoding end; the processing unit 1502 is used to calculate the geometry of the point cloud data according to the geometry of the point cloud data. Distribution characteristics, when determining the geometric decoding mode of point cloud data, are specifically used for:
  • Embodiments of the present application also provide a computer-readable storage medium (Memory).
  • the computer-readable storage medium is a memory device in a computer device and is used to store programs and data. It will be understood that the computer-readable storage media herein It may include built-in storage media in the computer device, and of course may also include extended storage media supported by the computer device.
  • Computer-readable storage media provide storage space that stores the processing system of the computer device. Furthermore, one or more instructions suitable for being loaded and executed by the processor 1601 are also stored in the storage space. These instructions may be one or more computer programs (including program codes).
  • Each point to be encoded in the point cloud data is encoded according to the single-chain prediction tree of each point cloud group.
  • Embodiments of the present application also provide a computer program product or computer program.
  • the computer program product or computer program includes computer instructions, and the computer instructions are stored in a computer-readable storage medium.
  • the processor of the terminal reads the computer instructions from the computer-readable storage medium, and the processor executes the computer instructions, so that the computer device performs the above-mentioned point cloud encoding method or point cloud decoding method.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本申请实施例提供了一种点云编码方法、点云解码方法及相关设备,点云编码方法包括:获取(S401)待编码的点云数据;为每个点云组确定(S402)起始点;基于每个点云组的起始点构建(S403)每个点云组的单链预测树;根据每个点云组的单链预测树,对点云数据中的各个待编码的点进行编码(S404)。采用本申请实施例能够提高点云数据的编码效率。

Description

一种点云编码方法、点云解码方法及相关设备
本申请要求于2022年06月17日提交的申请号为202210690211.7,发明名称为“一种点云编码方法、点云解码方法及相关设备”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及计算机技术领域,具体涉及编解码领域,尤其涉及一种点云编码方法、一种点云解码方法、一种点云处理装置、一种计算机设备及一种计算机可读存储介质。
背景技术
点云数据是采用测量仪器对物体表面进行数据采集所得到的点集合。点云数据在自动驾驶、高精度地图及虚拟现实等方面应用广泛,但由于点云数据往往是由数万个点到数亿个三维点组成,对数据存储、处理及传输显示都带来了严峻的挑战,对于目前的存储资源和传输带宽都难以承受,因此对点云数据进编码后存储或传输是必不可少的。
发明内容
本申请实施例提供一种点云编码方法、点云解码方法及相关设备,能够基于多个起始点构建点云数据的预测树,从而提高点云数据的编码效率。
一方面,本申请实施例提供了一种点云编码方法,该方法包括:
获取待编码的点云数据,点云数据被划分为L个点云组,L为大于或等于1的整数,每个点云组包含多个待编码的点;
为每个点云组确定起始点,每个点云组的起始点的数量均大于等于1;
基于每个点云组的起始点构建每个点云组的单链预测树;
根据每个点云组的单链预测树,对点云数据中的各个待编码的点进行编码。
另一方面,本申请实施例提供了一种点云解码方法,该方法包括:
获取待解码的点云数据,点云数据包括多个待解码的点;待解码的点云数据是编码端根据待编码的点云数据中每个点云组的单链预测树,对点云数据中各个待编码的点进行编码得到,每个点云组的单链预测树是基于每个点云组的起始点构建的,每个点云组的起始点的数量均大于等于1;
对点云数据进行起始点解析,得到点云数据的起始点的重建几何信息;
确定点云数据的几何解码模式,并根据几何解码模式和起始点的重建几何信息,对点云数据中各点进行几何预测处理,得到点云数据中各点的预测几何信息;
基于点云数据中各点的预测几何信息,对点云数据中各点进行几何解码,以确定点云数据中各点的重建几何信息。
另一方面,本申请实施例提供了一种点云编码装置,该装置包括:
获取单元,用于获取待编码的点云数据,点云数据被划分为L个点云组,L为大于或等于1的整数,每个点云组包含多个待编码的点;
处理单元,用于为每个点云组确定起始点,每个点云组的起始点的数量均大于等于1;
处理单元,还用于基于每个点云组的起始点构建每个点云组的单链预测树;
处理单元,还用于根据每个点云组的单链预测树,对点云数据中的各个待编码的点进行编码。
另一方面,本申请实施例提供了一种点云解码装置,该装置包括:
获取单元,用于获取待解码的点云数据,点云数据包括多个待解码的点;待解码的点云数据是编码端根据待编码的点云数据中每个点云组的单链预测树,对点云数据中各个待编码的点进行编码得到,每个点云组的单链预测树是基于每个点云组的起始点构建的,每个点云组的起始点的数量均大于等于1;
处理单元,用于对点云数据进行起始点解析,得到点云数据的起始点的重建几何信息;
处理单元,还用于确定点云数据的几何解码模式,并根据几何解码模式和起始点的重建几何信息,对点云数据中各点进行几何预测处理,得到点云数据中各点的预测几何信息;
处理单元,还用于基于点云数据中各点的预测几何信息,对点云数据中各点进行几何解码,以确定点云数据中各点的重建几何信息。
另一方面,本申请实施例提供了一种计算机设备,该计算机设备包括:
处理器,用于加载并执行计算机程序;
计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,该计算机程序被处理器执行时,实现上述点云编码方法或点云解码方法。
另一方面,本申请提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,该计算机程序适于由处理器加载并执行上述点云编码方法或点云解码方法。
另一方面,本申请提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。电子设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该电子设备执行上述点云编码方法或点云解码方法。
附图说明
图1是本申请实施例提供的一种编码框架的结构示意图;
图2是本申请实施例提供的一种八叉树编码结构的示意图;
图3是本申请实施例提供的一种多链预测树编码结构的示意图;
图4是本申请实施例提供的一种单链的预测树结构的示意图;
图5是本申请实施例提供的一种点云编解码系统的架构示意图;
图6是本申请实施例提供的一种点云编码方法的流程示意图;
图7是本申请实施例提供的一种对待编码的点云数据进行分组的示意图;
图8是本申请实施例提供的一种从点云包围盒的多个顶点中选取起始点的示意图;
图9是本申请实施例提供的一种点云包围盒的示意图;
图10是本申请实施例提供的一种从点云组的多个极值点中选取起始点的示意图;
图11是本申请实施例提供的一种按照点云组中待编码的点的排列顺序,选取起始点的示意图;
图12是本申请实施例提供的一种将第一分支链路和第二分支链路连接的示意图;
图13是本申请实施例提供的一种按照起始点的优先级顺序,构建分支链路的示意图;
图14是本申请实施例提供的一种以多个起始点为基准进行多次搜索构建分支链路的示意图;
图15是本申请实施例提供的一种基于L个点云组的单链预测树,构建完整点云数据的目标预测树的示意图;
图16是本申请实施例提供的另一种点云编码方法的流程示意图;
图17是本申请实施例提供的一种预测待编码的点的预测几何信息的示意图;
图18是本申请实施例提供的一种点云解码方法的流程示意图;
图19是本申请实施例提供的一种点云编码装置的结构示意图;
图20是本申请实施例提供的一种点云解码装置的结构示意图;
图21是本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
为了更清楚地理解本申请实施例提供的技术方案,在此先对本申请实施例涉及的关键术语进行介绍:
一、点云数据(Point Cloud Data)。
点云数据可以是指空间中一组无规则分布的、表达三维物体或三维场景的空间结构及表面属性的离散点集,点云数据中可以包括多个点,每个点具备几何信息和属性信息。其中,几何信息也可以称为三维位置信息,任一个点的几何信息可以是指该点的三维坐标(x,y, z),可以包括该点在三维坐标系统的各个坐标轴中的坐标值,即X轴的坐标值x,Y轴的坐标值y,Z轴的坐标值z。任一个点的属性信息可以包括以下至少一种:颜色信息、材质信息、激光反射强度信息(也可以称为反射率)。通常,点云数据中的每个点具有相同数量的属性信息;例如,点云数据中的每个点都可以具有颜色信息和激光反射强度两种属性信息;或者,点云数据中的每个点都可以具有颜色信息、材质信息和激光反射强度信息三种属性信息。另外,可以根据不同的分类标准将点云数据划分为不同的类别;例如,从点云数据的获取方式划分,可以分为将点云数据的类型分为密集型点云和稀疏型点云;又如,从点云数据的时序类型划分,可以将点云数据的类型分为静态点云和动态点云。
二、点云编码(Point Cloud Compression,PCC)。
点云编码是指对点云数据进行编码,得到点云数据的压缩码流(或称为编码码流)的过程。点云编码可以包括几何信息编码和属性信息编码两个主要过程。目前主流的点云编码技术,针对点云数据的不同类型,可以分为基于几何结构的点云编码以及基于投影的点云编码;以MPEG(Moving Picture Expert Group,国际视音频编解码标准)中的G-PCC(Geometry-based Point Cloud Compression,基于几何结构的点云编码),以及AVS(AudioVideoCodingStandard,中国国家视频编解码标准)中的点云编码标准AVS-PCC为例进行介绍。
G-PCC及AVS-PCC均针对静态的稀疏性点云,两者的编码框架大致相同,如图1所示,可以分为几何信息编码过程以及属性信息编码过程。几何信息编码过程对点云数据中各点的几何信息进行编码,得到几何比特流;属性信息编码过程对点云数据中各点的属性信息进行编码,得到属性比特流;几何比特流和属性比特流共同组成点云数据的压缩码流。
1、对于几何信息编码过程,主要操作和处理可以参见如下描述:
(1)预处理(Pre-Processing):可以包括坐标变换(Transform Coordinates)和体素化(Voxelize)。通过缩放和平移的操作,将三维空间中的点云数据转换成整数形式,并将其最小几何位置移至坐标原点处。
(2)几何编码(Geometry encoding):可以包括多种模式,如几何八叉树编码、几何预测树编码及基于三角表示的几何编码等,在不同条件下可对点云数据使用不同的模式。下面对上述给出的三种模式进行介绍;其中:
①几何八叉树编码(Octree):八叉树是一种树形数据结构。对于3D空间中的点云数据,八叉树划分方式包括:逐层次地对预先设定的包围盒进行均匀划分,每个节点都具有八个子节点。通过对八叉树各个子节点的占用与否采用“1”和“0”指示,如图2所示,获得占用码信息(Occupancy Code)作为点云几何信息的码流。其中,上述提及的包围盒是一种求解离散点集最优包围空间的算法,基本思想是用体积稍大且特性简单的几何体(称为包围盒)来近似地代替复杂的几何对象。
目前支持基于莫顿序(Morton)实现八叉树的构建,即将点云数据的3D坐标信息(即几何信息)通过查询莫顿顺序表,转换成对应的莫顿码。然后,根据每一位莫顿码的排序,获得每层八叉树的对应点。目前主流的点云编码技术是利用八叉树划分对点云数据进行表示,对几何信息和属性信息采用不同的处理流程。其中,莫顿序又称为莫顿曲线,是一种递归的空间分割技术,能够较好地把三维空间映射成一维的空间曲线,并且具有较好的局部特性。
②几何预测树编码(Predictive Tree):分析点云数据中各点的三维坐标的邻近关系,设置一定的准则将各个点逐一连接成单链或是多链的树形结构,利用前后连接的父节点和子节点之间的坐标计算残差值,通过对残差值及可能存在的索引值及计算方法进行编码。
基于点云数据所包含的多个点构建预测树的过程,其实质是解决TSP(Traveling Salesman Problem,旅行商问题)问题的过程。TSP问题是一个经典的组合优化问题。经典的TSP可以描述为:一个商品推销员要去若干个城市推销商品,该推销员从一个城市出发,需要经过所有城市后,回到出发地。应如何选择行进路线,以使总的行程最短。从图论的角度来看,该问题实质是在一个带权完全无向图中,找一个权值最小的回路。由于该问题的可行解是所有 顶点的全排列,随着顶点数的增加,会产生组合爆炸,它是一个NP完全问题。由于其在交通运输、电路板线路设计以及物流配送等领域内有着广泛的应用,国内外学者对其进行了大量的研究。早期的研究者使用精确算法求解该问题,常用的方法包括:分枝定界法、线性规划法、动态规划法等。但是,随着问题规模的增大,精确算法将变得无能为力,因此,在后来的研究中,国内外学者重点使用近似算法或启发式算法,主要有遗传算法、模拟退火法、蚁群算法、禁忌搜索算法、贪婪算法和神经网络等。
例如,用无向加权图来对TSP建模,则城市是图的顶点,道路是图的边,道路的距离就是该边的长度。它是起点和终点都在一个特定顶点,访问每个顶点恰好一次的最小化问题。通常,该模型是一个完全图(即每对顶点由一条边连接)。如果两个城市之间不存在路径,则增加一条非常长的边就可以完成图,而不影响计算最优回路。在对称TSP问题中,两座城市之间来回的距离是相等的,形成一个无向图。这种对称性将解的数量减少了一半。在非对称TSP问题中,可能不是双向的路径都存在,或是来回的距离不同,形成了有向图。交通事故、单行道和出发与到达某些城市机票价格不同等都是打破这种对称性的例子。
一种MPEG多链预测树编码结构的示意图可参见图3,该多链预测树以点201为起始点,并在该起始点之后依次链接多个点;当链接至点202时,出现3条以点202为起始点的分支链路,如从左到右和从上至下分别包括:第一分支链路、第二分支链路以及第三分支链路。其中,第一分支链路和第二分支链路均为单链,第三分支链路在链接至点203时,出现以点203为起始点的两条分支链路。一种AVS单链预测树编码结构的示意图可参见图4,该单链预测树从起始点204开始,将点云数据所包含的所有点链接成为一个单一的预测树,该单链预测树中不存在分支链路。
③基于三角表示的几何编码(Trisoup):在点云块划分的基础上,确定点云表面在块的边缘的交点并构建三角形。通过编码交点位置实现几何信息的压缩。点云块是对点云数据中的各个点所处的三维空间进行划分得到的,每个点云块中包括点云数据中的部分点。
(3)几何量化(GeometryQuantization):量化的精细程度通常由量化参数(Quantizer Parameter,QP)来决定,QP取值较大大,表示更大取值范围的系数将被量化为同一个输出,因此通常会带来更大的失真,及较低的码率;相反,QP取值较小,表示较小取值范围的系数将被量化为同一个输出,因此通常会带来较小的失真,同时对应较高的码率。在点云编码中,量化是直接对点的坐标信息进行的。
(4)几何熵编码(GeometryEntropyEncoding):针对八叉树的占用码信息,进行统计压缩编码,最后输出二值化(0或者1)的压缩码流。统计编码是一种无损编码方式,可以有效的降低表达同样的信号所需要的码率。常用的统计编码方式是基于上下文的二值化算术编码(Content Adaptive Binary Arithmetic Coding,CABAC)。
2、对于属性信息编码过程,主要操作和处理可以参见如下描述:
(1)属性重上色(Recoloring):有损编码情况下,在几何信息编码后,需编码端解码并重建几何信息,即恢复点云数据中各点的几何信息。在原始的点云数据中寻找对应一个或多个邻近点的属性信息,作为该重建点的属性信息。
(2)属性变换编码(Transform):分析几何信息的邻近关系,通过变换矩阵将一定数量的点对应的真实属性信息转换为变换系数,对变换系数进行编码。属性变换编码中包括三种模式,如属性预测变换编码、属性提升变换编码及分层区域自适应变换编码。下面对上述给出的三种模式进行详细介绍,其中:
①属性预测变换编码(Predicting Transform):根据距离选择子点集,将点云数据划分成多个不同的层级(Level of Detail,LoD),实现由粗糙到精细化的点云表示。相邻层之间可以实现自下而上的预测,即由粗糙层中的邻近点预测精细层中引入的点的属性信息,获得对应的残差信号。其中,最底层的点作为参考信息进行编码。
②属性提升变换编码(Lifting Transform):在LoD相邻层预测的基础上,引入邻域点的权重更新策略,最终获得各点的预测属性值,获得对应的残差信号。
③分层区域自适应变换编码(Region Adaptive Hierarchical Transform,RAHT):属性信息经过RAHT变换,将信号转换到变换域中,称之为变换系数。
(3)属性信息量化(Attribute Quantization):量化的精细程度通常由量化参数来决定。在属性预测编码中,是对量化后的预测残差信息进行熵编码;在属性变换编码及属性预测变换编码中,是对量化后的变换系数进行熵编码。
(4)属性熵编码(AttributeEntropy Coding):量化后的预测残差信息或变换系数一般使用行程编码(RunLength Coding)及算数编码(Arithmetic Coding)实现最终的压缩。相应的编码模式,量化参数等信息也同样采用熵编码器进行编码。
三、点云解码。
点云解码是指对点云数据的压缩码流进行解码,以重建点云数据的过程。具体地,可以是基于压缩码流中的几何比特流和属性比特流,重建点云数据中各点的几何信息和属性信息的过程。在解码端获得点云数据的压缩码流之后,对于几何比特流,首先进行熵解码,获得各种模式信息、量化后的几何信息以及属性信息;然后几何信息经过反量化,得到重建的3D(3-Dimensional)点位置信息(即几何信息)。对于属性比特流,首先进行熵解码,得到点云数据中各点量化后的预测残差信息或量化后的变换系数;然后对量化后的预测残差信息进行反量化得到重建残差信息,对量化后的变换系数进行反量化得到重建变换系数,重建变换系数经反变换后得到重建残差信息,根据点云数据中各点重建残差信息可以重建点云数据中各点的属性信息。将点云数据中各点重建的属性信息,按顺序与重建的几何信息一一对应,得到重建的点云数据。
基于上述对点云数据、点云编码和点云解码的相关描述,本申请实施例提出一种点云编解码系统。如图5所示,点云编解码系统30中可以包括编码设备301和解码设备302,编码设备301或解码设备302可以是终端,也可以是服务器,编码设备301和解码设备302之间可以建立通信连接。其中,终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表、车载终端、智能电视等,但并不局限于此。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。为便于阐述,本申请实施例对编码设备和编码端不作区分描述,同理对解码设备和解码端不作区分描述。
基于图5所示的点云编解码系统,本申请实施例提出一种基于多起始点的预测树编解码方案,该预测树编解码方案具体提出并构建了基于多起始点的预测树编码结构,并对对应的几何信息残差进行编解码。该预测树编解码方案包括点云编码方案和点云解码方案。该预测树编解码方案的具体实现流程可包括但不限于:
(1)获取点云数据。
点云数据可以通过场景捕获或设备生成两种方式获取得到。其中,场景捕获点云数据可以是指:通过捕获设备或测量仪器采集真实世界的视觉场景得到点云数据;捕获设备可以是设置于编码设备301中的硬件组件,例如捕获设备是终端的摄像头、传感器等。捕获设备也可以是与编码设备301相连接的硬件装置,例如与服务器相连接的摄像头等;捕获设备用于为编码设备301提供点云数据的获取服务;捕获设备可以包括但不限于以下任一种:摄像设备、传感设备、扫描设备。其中,摄像设备可以包括普通摄像头、立体摄像头、光场摄像头等;传感设备可以包括激光设备、雷达设备等;扫描设备可以包括三维激光扫描设备等。设备生成点云数据可以是指:虚拟对象制作设备根据虚拟对象(例如通过三维建模得到的虚拟三维物体及虚拟三维场景)的生成点云数据。本申请实施例对点云数据的具体来源不作限定。
点云数据中可以至少包括待编码的点的真实几何信息;点云数据中待编码的点的真实几何信息可以是指:该待编码的点在三维空间中的真实的空间位置信息,具体是指在三维空间中的三维坐标系中的坐标信息。例如,待编码的点在三维空间中的三维坐标系中的坐标信息 为(x,y,z),则该待编码的点的真实几何信息为(x,y,z);这样通过多个待编码的点的真实几何信息,可以反映该多个待编码的点在三维空间中的空间位置关系。
(2)对点云数据进行编码,以得到编码码流。
在捕获设备获取到点云数据后,编码设备301可以将待编码的点云数据划分为L个点云组,L为大于或等于1的整数;然后,编码设备301支持以点云组为单位,为每个点云组创建单链预测树;并将L个点云组的单链预测树,按照L个点云组被划分时的顺序进行链接,以得到点云数据的目标预测树。通过针对每个点云组均构建单链预测树,相比于针对整个点云数据构建一棵树预测树而言,在一定程度上可缩短点云数据的预测树的构建时长,提高预测树的构建效率。继而,可以对该点云数据的目标预测树进行编码,得到编码后的点云数据,进而得到编码码流,并将编码码流传输至解码设备302。其中,在为每个点云组构建单链预测树的过程中,支持为每个点云组先选取多个起始点,并以多个起始点分别作为搜索起点,得到每个起始点对应的分支链路。最后将多个起始点对应的多个分支链路进行链接,以得到点云组的单链预测树。这种基于多起始点构建单链预测树的方式,能够实现高效的预测树结构,提高三维空间中邻近的无序点的关联关系,提升点云数据的编码效率。
(3)对待解码的点云数据进行解码,以重建点云数据。
在解码设备302接收到编码码流后,可通过该编码码流获取待解码的点云数据(即编码后的点云数据);然后,支持对待解码的点云数据进行起始点解析,以确定点云数据的起始点的重建几何信息,该起始点可是指点云数据中排列位置位于第一位置的待编码的点。其次,根据点云数据的几何解码模式以及起始点的重建几何信息,对点云数据中各个待编码的点进行几何预测处理,得到各点的预测几何信息;再对各点进行几何解析处理,以得到各点的重建残差信息,使得基于各点的预测几何信息和重建残差信息,确定出各点的重建几何信息,从而实现在解码端重建点云数据。上述过程中,支持对点云数据进行起始点解析,直接得到点云数据的起始点的重建几何信息,实现快速确定起始点的重建几何信息。并且,对点云数据中各待解码的点进行几何解码最终得到的是各点的重建残差信息,相比于直接重建各个点的重建几何信息而言,由于残差数据量较小,这样可以减少几何信息解码时解码的数据量,进一步提高点云数据的解码效率。
可以理解的是,本申请实施例描述的点云编解码系统是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着系统架构的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
基于上述对预测树编解码方案的相关介绍,下面结合附图分别对本申请实施例涉及的点云编码方法和点云解码方法分别进行阐述。
本申请实施例提供一种点云编码方法,该点云编码方法的具体实现流程可参见图6;该点云编码方法可以由图5所示点云编解码系统30中的编码设备301执行。如图6所示,该点云编码方法可以包括以下步骤S401-S404:
S401,获取待编码的点云数据,点云数据被划分为L个点云组,L为大于或等于1的整数。
待编码的点云数据可以是对真实三维物体表面进行数字采集所得到的点集合。点云数据是以点为单位的集合,点云数据包括的每个点具有几何信息和属性信息,可用于表征真实三维物体的表面特性。当目标对象(如任一对象)具有分析三维物体表面的表面特性或传输物体表面的表面特征的需求时,可以采用捕获设备对三维物体表面进行扫描,以获取到待编码的点云数据,该待编码的点云数据包括从三维物体表面采集到的多个待编码的点。
具体实现中,支持对待编码的点云数据进行划分,即将点云数据包括的多个待编码的点划分至不同的点云组中,这样每个点云组可包括相同或不同数量的待编码的点。下面结合图7描述对待编码的点云数据进行分组,以得到L个点云组的实现过程,如图7所示:
假设点云数据包括N个待编码点,N为大于1的整数。可先对待编码的点云数据包括的 N个待编码的点进行排序,得到点云序列。点云序列可包括但不限于莫顿序或原始序。其中:①莫顿序可以是根据点云数据所包含的各个待编码的点的几何信息进行莫顿码排序得到的。具体是将点云数据所包含的各个待编码的点的3D坐标信息(如前述提及的几何信息)通过查询莫顿顺序表,转换为每个待编码的点对应的莫顿码,再对每位莫顿码进行排序得到点云数据对应的莫顿序。②原始序可以是指将待编码的点云数据输入至编码设备时,各个待编码的点的输入顺序。此情况下,该原始序可包括对物体表面扫描时获取到的各点的扫描顺序,还可以包括目标对象(如编码人员)对点云数据中各个点自定义的顺序。本申请实施例对原始序的具体确定方式不作限定。
然后,编码设备获取数量阈值,该数量阈值可以是根据目标对象的数据划分需求自定义设置的。最后,按照点云序列中各个待编码的点的排列顺序,将相邻目标数量的点划分至一个点云组,以得到L个点云组。其中,数量阈值包括目标数量,可用于指示:将点云序列中相邻目标数量的待编码的点划分至同一点云组。例如,数量阈值为100,则该数量阈值包括的目标数量为100,可以按照点云序列中各个待编码的点的排列顺序,将相邻100个待编码的点划分至同一点云组中,以得到L个点云组。
可以理解的是,点云序列所包含的待编码的点的数量,可能并非是目标数量的整数倍;例如,点云序列包含的待编码的点的数量为11个,目标数量为3,此时待编码的点的数量与目标数量之间的关系为:11=3*3+2,即按照点云序列中各个点的排列顺序,将相邻3个点划分为一个点云组后,点云序列中还剩余2个点未被划分至点云组。在此情况下,本申请实施例提供两种可选方式来将剩余的点划分至点云组。
可选的,在划分得到第L-1个点云组时,若点云序列中剩余未划分的点的数量小于目标数量,则将剩余未划分的点添加至第L个点云组。此时,第L个点云组中包括的待编码的点的数量为:不足目标数量的剩余未划分的点的数量。换而言之,在点云序列中剩余未划分的点的数量不足数量阈值时,可将该剩余未划分的点所组成的点云组作为最后一个点云组。如图7所示的,在划分得到第L-1个点云组时,点云序列中剩余未划分的点的数量为2,则将该2个剩余点划分至第L个点云组,该第L个点云组中包括2个待编码的点。
可选的,在划分得到第L个点云组时,若点云序列中剩余未划分的点的数量小于目标数量,则将剩余未划分的点添加至第L个点云组中。此时,第L个点云组中包括的待编码的点的数量为:目标数量+不足目标数量的剩余未划分的点。换而言之,在点云序列中剩余未划分的点的数量不足数量阈值时,可以将该剩余未划分的点并入已划分的最后一个点云组中。如图7所示的,在划分得到第L个点云组时,点云序列中剩余未划分的点的数量为2,则将该2个剩余点划分至第L个点云组,使得第L个点云组中包括5个待编码的点。
S402,为每个点云组确定起始点,每个点云组的起始点的数量均大于1。
点云组的起始点是指:构建点云组的单链预测树的搜索起点,搜索起点可简单理解为链路中的最首点,即位于链路(即多个点依次连接所形成的路径)中第一位置(或称为最首位置)的点。当某个点被确定为搜索起点时,确定以该点为基准,从点云组中搜索待编码的点,将该待编码的点链接至以该点为起始点的分支链路上,以形成以该起始点为搜索起点的分支链路。进一步的,在点云组的起始点的数量大于1的情况下,可分别以每个起始点作为搜索起点,搜索得到每个起始点对应的分支链路,再基于各个分支链路连接得到点云组的预测树。由此可见,通过为每个点云组确定多个起始点,以构建多个分支链路,最后基于多个分支链路构建点云组的预测树的方式,相比于基于单个起始点为点云组构建预测树而言,通过分别以各个起始点同步构建分支链路的过程,在一定程度上可缩短预测树的构建时长,提高预测树构建效率,得到高效的预测树结构。或者,在点云组的起始点的数量大于1的情况下,支持以各个起始点为基准进行多次搜索,构建一条单链预测树;即将点云组中各点按照与各个起始点之间的几何距离关系,链接成一条单链预测树,能够提高点云组中的无序点与各个起始点之间的关联关系,实现高效的单链预测树结构。
下面对本申请实施例提供的几种点云组的起始点的确定方式进行介绍,其中:
1)从点云组的点云包围盒的多个顶点中,选取起始点。假设L个点云组中的任一个点云组为目标点云组,如图8所示,为目标点云组选取起始点的实现过程可包括步骤s11-s12。
s11,确定目标点云组的点云包围盒。其中,考虑到目标点云组是对整个点云数据划分得到的,因此目标点云组的点云包围盒可是八叉树节点的包围盒,包括:涵盖了目标点云组中所有点的三维空间体,如最小长方体、最小立方体或最小多面体(如十面体)等。其中,目标点云组的点云包围盒的构建过程可包括:
首先,基于目标点云组中各待编码的点的真实几何信息,确定目标点云组的点云包围盒的原点。假设目标点云组的k-th点的浮点类型的坐标信息表示为(xk,yk,zk),k是目标点云组中的待编码的点的点数,k=0,1,2,…,k-1,如k=2时,该点的坐标信息表示为(x2,y2,z2)。则基于目标点云组中各点的真实几何信息,确定目标点云组的点云包围盒的原点,包括①-②。
①根据目标点云组中各点的真实几何信息,确定在x方向、y方向以及z方向上均为最小数值的坐标点(xmin,ymin,zmin)。其中,xmin是目标点云组中各个待编码的点中在x方向上的最小值,ymin是目标点云组中各个待编码的点中在y方向上的最小值,zmin是目标点云组中各个待编码的点中在z方向上的最小值。xmin,ymin以及zmin的计算公式如下:
xmin=min(x0,x1,…,xk-1);ymin=min(y0,y1,…,yk-1);zmin=min(z0,z1,…,zk-1)
其中,min(s0,s1,…,sk-1)是取最小值函数,表示从当前输入中取最小值。
②基于最小数值的坐标点(xmin,ymin,zmin)计算目标点云组的点云包围盒的原点(xorigin,yorigin,zorigin)。其中,原点坐标中的xorigin,yorigin以及zorigin可分别采用如下计算公式计算得到:
xorigin=int(floor(xmin));yorigin=int(floor(ymin));zorigin=int(floor(zmin))
int(s)函数和floor(s)函数均为取整函数;int(s)函数的取整原理为向下取整,支持返回小于或等于s的最大整数值,如int(7.3)=7;floor(s)函数取整函数可以返回小于或等于s,且是指定基数的最大倍数值,如floor(23,3)表示需要返回小于或等于23且是3的最大整数倍的数值21。
然后,基于点云包围盒的原点和目标点云组中各个待编码的点的真实几何信息,计算点云包围盒在三维坐标系的各个方向上的尺寸,以此确定目标点云组的点云包围盒。点云包围盒在x,y,z方向上的尺寸可以采用如下计算公式计算:
BoudingBoxSizex=int(xmax-xorigin)+1;BoudingBoxSizey=int(ymax-yorigin)+1;
BoudingBoxSizez=int(zmax-zorigin)+1
其中,int(s)函数为向下取整函数,关于int(s)函数的相关介绍可参见上述相关描述,在此不作赘述。坐标点(xmax,ymax,zmax)是在x方向、y方向以及z方向上均为最大数值的点,xmax是目标点云组中各个待编码的点中在x方向上的最大值,ymax是目标点云组中各个待编码的点中在y方向上的最大值,zmax是目标点云组中各个待编码的点中在z方向上的最大值;xmax,ymax以及zmax的计算公式如下:
xmax=max(x0,x1,…,xk-1);ymax=max(y0,y1,…,yk-1);zmax=max(z0,z1,…,zk-1)
其中,max(s0,s1,…,sk-1)是取最大值函数,表示从当前输入中取最大值。
综上所述,基于计算得到的点云包围盒的原点,以及点云包围盒在x方向、y方向和z方向上的尺寸,可得到目标点云组的点云包围盒。正如前述所提及的,包围盒的基本思想是用体积稍大且特性简单的几何体(称为包围盒)来近似地代替复杂的几何对象;在本申请实施例中目标点云组的点云包围盒,可用于包围目标点云组中所有待编码点的最小长方体。一种示例性的包围几何对象的包围盒可参见图9,该包围盒所占的三维空间区域内包括完整的几何对象。如图9所示的第一张图中被点云包围盒包围的几何对象为手握篮球的对象,如图9所示的第二张图中被点云包围盒包围的几何对象为兔子。
s12,从目标点云组的点云包围盒的多个顶点中,按照选取规则选取P1个起始点,P1大于等于1。其中,选取规则可包括但不限于:随机选择,按各顶点之间的几何距离关系选取, 以及沿预设方向选取等。所谓随机选择是指:从多个顶点中随机选取P1个顶点作为起始点;所谓按各顶点之间的几何距离关系选取是指:按照顶点之间的几何距离关系,将几何距离最远的P1个顶点作为起始点;所谓沿预设方向选取可是指:沿x方向、y方向和/或z方向选取P1个起始点。继续参见图9,该点云包围盒为长方体,该长方体包括八个顶点,那么可以按照各个顶点之间的几何距离最远的关系,从八个顶点中按需选取顶点601和顶点602作为目标点云组的起始点,此时选取的顶点601和顶点602不属于目标点云组中的待编码点,即顶点601和顶点602是独立于目标点云组之外的其他点。
2)从点云组的多个第一特殊点中选取起始点。假设L个点云组中的任一个点云组为目标点云组,如图10所示,为目标点云组选取起始点的实现过程可包括步骤s21-s22。
s21,确定目标点云组的第一极值点。第一特殊点可是指目标点云组中几何距离大于距离阈值的多个点。例如,第一特殊点包括:极值点和中位点。其中,极值点包括沿各个(如x方向、y方向以及z方向)的最大值点(或称为极大值点)和最小值点(或称为极小值点),中位点可包括目标点云组中按序排列的多个点中的中间位置的点。具体地,可以获取目标点云组中各个待编码的点在x方向,y方向和z方向上的坐标信息,再对每个方向上各个待编码点的坐标信息进行比较,以确定多个待编码的点沿各个方向上的极值点。例如,取多个待编码的点沿x方向的极小值点作为第一特殊点,此时该极小值点在x方向上的数值是最小的,但在y方向和z方向上的数值不一定是最小的。再如,如前述描述的在x方向,y方向和z方向上均取最小值的最小值点(xmin,ymin,zmin)作为第一特殊点,在x方向,y方向和z方向上均取最大值的最大值点(xmax,ymax,zmax)作为第一特殊点。
s22,从极大值点、极小值点和中位点中,选取P2个起始点,P2大于等于1。例如,可以从极大值点和极小值点中选取极小值点作为目标点云组的起始点,或者,同时选取极大值点和极小值点作为目标点云组的起始点等。其中,基于目标点云组中的各个待编码的点的真实几何信息,确定的极大值点和极小值点可能是属于目标点云组包括的待编码的点,也可能是独立于目标点云组之外的其他点。
3)按照点云组中待编码的点的排列顺序,选取起始点。正如前述所描述的,点云组是按照点云序列中各个待编码的点的排列顺序划分得到的,因此,点云组中包括的多个待编码的点同样是按照顺序排列的。假设L个点云组中的任一个点云组为目标点云组,如图11所示,为目标点云组选取起始点的实现过程可包括步骤s31-s32。
s31,按照目标点云组中的各个待编码的点的排列顺序,确定一个或多个第二特殊点;该第二特殊点包括以下至少一种:排列顺序中的最首点,以及,排列顺序中的最末点。当然,目标点云组中的第二特殊点还可以是有利于提高编码效率的中间点,本申请实施例对第二特殊点的具体类型不作限定,只要往有利于提高编码效率的方向选取起始点即可。
s32,从一个或多个第二特殊点中选取P3个起始点,P3大于等于1。举例来说,假设目标点云组包括的各个待编码的点之间的排列顺序为:点1→点2→点3→…→点10,则确定该排列顺序中的起始点,即排列顺序中最首的待编码的点为点1,确定该排列顺序中的终止点,即排列顺序中最末的待编码的点为点10;可选取目标点云组中排列顺序为起始点的点1,作为目标点云组的起始点;或者,可选取目标点云组中排列顺序为终止点的点10,作为目标点云组的起始点。
基于上述描述,还需特别说明如下①-⑤点。
①本申请实施例并不限定只基于上述一种实现方式选取起始点,如可以从目标点云组的点云包围盒的多个顶点中选取起始点,和/或,从目标点云组的极值点中选取起始点,和/或,从目标点云组中排序排列的多个待编码的点中选取起始点。例如,选择基于空间划分(如确定点云组的点云包围盒的过程)得到的目标点云组的点云包围盒的左下角顶点作为起始点,此时该起始点不属于目标点云组当前组。再选择基于排列顺序多个待编码的点的终止点作为起始点,此时该起始点属于目标点云组。由此可见,为目标点云组选取的起始点可以是属于目标点云组中的待编码的点,也可以是独立于目标点云组之外的其他点。
②本申请实施例还支持基于几何位置关系选取起始点。具体地,可以先为目标点云组确定第一起始点,该第一起始点的确定方式可以包括上述给出的三种起始点选取方式的任一种。如该第一起始点可以基于目标点云组的点云包围盒的多个顶点确定的,或者,从目标点云组的多个极值点中确定的,或者,按照目标点云组中待编码的点的排列顺序确定的。然后,基于第一起始点与目标点云组中各点之间的几何位置关系,从目标点云组中各点中选取起始点。此处的几何位置关系可是指起始点与各点之间的几何距离关系,起始点与任一点的几何距离相比该起始点与其他点的几何距离更远,则该起始点与该任一点的几何距离关系为:该任一点是距离该任一起始点最远的点。
例如,在确定目标点云组的第一起始点后,可确定该第一起始点与目标点云组中各点之间的几何距离。然后,根据几何距离从目标点云组的各点中选取与第一起始点之间的几何距离最远的点作为第二起始点。进一步的,如果还想继续选取第三起始点,那么可以从目标点云组中剩余各点中选取与第一起始点和第二起始点之间的几何距离均较远的点作为第三起始点,以此类推,直到选取到P4个起始点,P4大于等于1。
③本申请实施例还支持基于上述几种实现方式(如基于点云包围盒、从点云组的多个第一特殊点、基于排序的点云组、或者,基于起始点之间的位置关系),为L个点云组中的部分点云组选取起始点。然后,基于被选取起始点的点云组,为L个点云组中未被选取起始点的点云组确定起始点。例如,L个点云组中包括第m个点云组和第m+1个点云组,那么可以按照上述给出几种实现方式为第m个点云组选取一个或多个起始点;如第m个点云组已选取一个或多个起始点,则可以从第m个点云组的一个或多个起始点,按照筛选规则为第m+1个点云组选取起始点。其中,筛选规则可包括但不限于:随机选取,或者,选取第m个点云组的一个或多个起始点中优先级最低的起始点。当然,第m+1个点云组的起始点除可以包括第m个点云组的起始点外,还可以包括按照上述几种实现方式确定的起始点。
举例来说,在第m个点云组已选取一个或多个起始点的情况下,可基于该一个或多个起始点构建第m个点云组的单链预测树。然后,可以将该第m个点云组的单链预测树的最末点(即第m个点云组的一个或多个起始点中优先级最低的起始点),作为第m+1个点云组的起始点。
④在实际为目标点云组选取起始点时,可以沿着利于提高编码效率的方向选取起始点。例如,如果选取目标点云组的点云包围盒的左下角顶点后,基于该左下角顶点构建预测树的编码效率,大于选取目标点云组的点云包围盒的右下角顶点后,基于该右下角顶点构建预测树的编码效率,则优先选取点云包围盒的左下角顶点作为目标点云组的起始点。
⑤在起始点选取后,还支持为起始点设置优先级,如为多个起始点设置相同或不同的优先级。例如,按照优先级从高至低的顺序,可将起始点分别称为:第一起始点、第二起始点以及第三起始点等等。通过对起始点的优先级设置,可预先定义好在后续基于多个起始点为目标点云组构建预测树时,基于起始点选取点的顺序。举例来说,选择基于空间划分的目标点云组的点云包围盒的左下角顶点作为第一起始点,以及基于排列顺序的多个待编码点中的终止点作为第二起始点,则在后续可先基于第一起始点选取点链接至第一起始点,再基于第二起始点选取点链接至第二起始点。
S403,基于每个点云组的起始点构建每个点云组的单链预测树。
通过对整个点云数据进行分组,可将整个点云组划分为多个点云组,使得能够以点云组为单位,同步为每个点云组构建单链预测树。相比于针对整个点云数据建立预测树而言,在一定程度上缩短预测树的构建时长,提高预测树构建效率。下面以对点云数据划分得到的L个点云组中的任一个点云组为目标点云组,且目标点云组的起始点至少包括:第一起始点和第二起始点,且第一起始点的优先级大于第二起始点的优先级为例,对构建单链预测树的实施过程进行介绍。
首先,编码设备将目标点云组中除起始点外的其他点作为候选点,添加至备选点集合中。例如:目标点云组中的待编码的点包括:点1、点2、点3、点3以及点5。若目标点云组的 起始点包括第一起始点和第二起始点,且第一起始点属于目标点云组中的待编码的点(如点1),第二起始点不属于目标点云组中的待编码的点(如点6),则可以将目标点云组中除第一起始点(如点1)以外的其他待编码的点作为候选点,添加至备选点集合,此时备选点集合为[点2、点3、点4、点5]。其次,基于备选点集合、第一起始点以及第二起始点,构建目标点云组的单链预测树,该单链预测树的起始点为第一起始点,终止点为第二起始点。
下面对基于备选点集合、第一起始点以及第二起始点,构建单链预测树的实施过程进行介绍,其中:
在一种实现方式中,支持按照目标点云组的多个起始点之间的优先级顺序依次搜索,以构建各个起始点所在的分支链路。具体地,支持基于第一起始点和备选点集合,构建目标点云组的单链预测树的第一分支链路,基于第二起始点和备选点集合,构建目标点云组的单链预测树的第二分支链路。然后,将第一分支链路和第二分支链路进行连接,以构建得到目标点云组的单链预测树。具体是将优先级高的第一分支链路的最末点,与优先级低的第二分支链路的最末点进行连接,得到目标点云组的单链预测树。
一种可选的实现流程,包括①-②。
①以优先级高的第一起始点为搜索起点,从备选点集合中搜索与第一起始点之间的几何距离最近的第一候选点。将第一候选点链接至以第一起始点为最首点的第一分支链路,基于第一候选点更新备选点集合,具体是在备选点集合中删除第一候选点,得到更新后的备选点集合。以及,以优先级低的第二起始点为搜索起点,从更新后的备选点集合中搜索与第二起始点之间的几何距离最近的第二候选点。将第二候选点链接至以第二起始点为最首点的第二分支链路,基于第二候选点再次上述更新后的备选点集合,具体是在更新后的备选点集合中删除第二候选点,以得到再次更新后的备选点集合。重复上述步骤,直至备选点集合为空集,得到目标点云组的单链预测树的第一分支链路和第二分支链路。
举例来说,如图12所示,假设目标点云组中的待编码的点分别为:点1、点2、点3、点4以及点5。目标点云组的起始点包括得到第一起始点A为点1。第二起始点B为独立于目标点云组的点6,则将目标点云组中除点1之外的其他待编码的点作为候选点,添加至备选点集合。此时备选点集合中包括:点2、点3、点4以及点5。然后,按照起始点的优先级顺序,先以第一起始点A为搜索起点,从备选点集合中搜索与第一起始点A之间的几何距离最近的第一候选点(如点2),再将点2链接至第一起始点A,以构建第一分支链路,以及在备选点集合中删除第一候选点。然后,以第二起始点B为搜索起点,从删除了第一候选点的备选点集合中搜索与第二起始点B之间的几何距离最近的第二候选点(如点3),将第二候选点链接至第二起始点B,以构建第二分支链路,以及在删除了第一候选点的备选点集合中继续删除第二候选点,此时更新后的备选点集合中包括点4和点5。
进一步的,再以第一起始点A为搜索起点,从更新后的备选点集合中搜索与第一起始点A之间的几何距离最近的第三候选点(如点4),再将第三候选点链接至第一分支链路中当前最末点(即第一候选点)之后,以构建第一分支链路,以及在更新后的备选点集合中删除第三候选点。同理,再以第二起始点B为搜索起点,从更新后的备选点集合中搜索与第二起始点B之间的几何距离最近的第四候选点(如点5),由于此时备选点集合中只剩点5,则可直接将点5作为第四候选点第二分支链路中当前最末点(即第二候选点)之后,以构建第二分支链路;此时备选点集合为空集,则以第一起始点A为搜索起点构建的第一分支链路为点1→点2→点4,以第二起始点B为搜索起点构建的第二分支链路为点6→点3→点5。
②将单链预测树的第一分支链路和单链预测树的第二分支链路进行连接,以构建得到目标点云组的单链预测树。该连接过程的示意图可参见图13,假设目标点云组的起始点包括:起始点A(即第一起始点)和起始点B(即第二起始点)。首先构建目标点云组的备选点集合,该备选点集合中不包括目标点云组的起始点;然后,以起始点A为搜索起点,从备选点集合中未连接的待编码的点中,逐个搜索与起始点A之间的几何距离最近的点作为当前点(如第一分支链路中待连接下一点的点)的后序节点,以得到以起始点A为搜索起点的第一分支 链路701。同理,以起始点B为搜索起点,从备选点集合中未连接的待编码的点中,逐个搜索与起始点B之间的几何距离最近的点作为当前点的后序节点,以得到以起始点B为搜索起点的第二分支链路702。然后,将第一分支链路701的最末点,与第二分支链路702的最末点进行连接,将连接后的预测树作为目标点云组的单链预测树。其中,起始点A(即第一起始点)作为目标点云组的单链预测树的起始点,而起始点B(即第二起始点)作为目标点云组的单链预测树的终止点。
另一种可选的实现流程:其原理可简单概述为:假设目标点云中的待编码的当前点为i,第一起始点记为A,第二起始点记为B。那么当前点i与第一起始点A之间的距离为:当前点i与第一起始点A和第一起始点B的距离的加权值d1=a1×d(i,A)+b1×d(i,B),其中,a1>0,b1<0,表示选取备选点集合中距离第一起始点A相对最近且距离第二起始点相对最远的点作为第一起始点A的后序节点。同理,当前点i与第二起始点B之间的距离为:当前点i与第一起始点A和第一起始点B的距离的加权值d2=a2×d(i,A)+b2×d(i,B),其中,a2<0,b2>0,表示选取备选点集合中距离第二起始点B相对最近且距离第一起始点相对最远的点作为第二起始点B的后序节点。该实现方式的具体流程可包括:
首先,按照第一计算规则,计算备选点集合中各候选点与第一起始点和第二起始点的第一距离加权值,该第一计算规则可以为:d1=a1×d(i,A)+b1×d(i,B)
其中,i为备选点集合中的候选点,A为目标点云组的第一起始点,B为目标点云的第二起始点,d(i,A)为候选点i和第一起始点A之间的几何距离,d(i,B)为候选点i和第二起始点B之间的几何距离。系数a1取值为a1>0,系数b1取值为b1<0,即d1取值越大时,表示候选点i距离第一起始点A相对最近,且距离第二起始点B相对最远,则确定候选点i与第一起始点A之间的关联关系,相比于候选点i与第二起始点B之间的关联关系更强。本申请实施例对系数a1以及b1的具体取值不作限定。
其次,将第一距离加权值指示与第一起始点的距离相对最近,且与第二起始点的距离相对最远的第一候选点,添加至以第一起始点为最首点的第一分支链路,即将第一候选点作为第一起始点的后序节点(如第一分支链路上的点);以及,根据第一候选点更新备选点集合,具体是从备选点集合中删除第一候选点,得到更新后的备选点集合。
同理,按照第二计算规则,计算更新后的备选点集合中各候选点与第一起始点和第二起始点的第二距离加权值,该第二计算规则可以为:
d2=a2×d(i,A)+b2×d(i,B)
其中,i为备选点集合中的候选点,A为目标点云组的第一起始点,B为目标点云的第二起始点,d(i,A)为候选点i和第一起始点A之间的几何距离,d(i,B)为候选点i和第二起始点B之间的几何距离;系数a2取值为a2<0,系数b2取值为b2>0,即d2取值越大时,表示候选点i距离第一起始点A相对最远,且距离第二起始点B相对最近,则确定候选点i与第二起始点B之间的关联关系,相比于候选点i与第一起始点A之间的关联关系更强。本申请实施例对系数a2以及b2的具体取值不作限定。
然后,将第二距离加权值指示与第一起始点的距离相对最远,且与第二起始点的距离相对最近的第二候选点,添加至以第二起始点为最首点的第二分支链路,即将第二候选点作为第二起始点的后序节点(如第二分支链路上的点);以及,根据第二候选点再次更新上一次更新后备选点集合,具体是从删除第一候选点后的备选点集合中删除第二候选点,得到二次更新后的备选点集合。
最后,重复上述步骤,直至备选点集合为空集,以实现将目标点云组中的所有点均链接至分支链路上,得到目标点云组的单链预测树的第一分支链路和第二分支链路。
举例来说,如图14所示,假设目标点云组中的待编码的点分别为:点1、点2、点3、点4以及点5。目标点云组的起始点包括得到第一起始点A为点1,第二起始点B为独立于目标点云组的点6,则将目标点云组中除点1之外的其他待编码的点作为候选点,添加至备选点集合。此时备选点集合中包括:点2、点3、点4以及点5。然后,按照第一计算规则,计 算备选点集合中各个候选点与第一起始点A和第二起始点B的第一距离加权值;将第一距离加权值中指示距离第一起始点A相对最近,且距离第二起始点B相对最远的第一候选点,作为第一起始点A的后序节点。如点2对应的第一距离加权值为3,点3对应的第一距离加权值为7,点4对应的第一距离加权值为5,点5对应的第一距离加权值为10,则将点5作为第一起始点A的后序节点;在备选点集合中删除第一候选点,以更新备选点集合。
继而,再基于第二计算规则,计算更新后的备选点集合中各个候选点与第一起始点A和第二起始点B的第二距离加权值;将第二距离加权值中指示距离第一起始点A相对最远,且距离第二起始点B相对最近的第二候选点,作为第二起始点B的后序节点;如点2对应的第二距离加权值为7,点3对应的第二距离加权值为5,点4对应的第二距离加权值为6,则将点2作为第二起始点B的后序节点;在更新后的备选点集合中删除第二候选点,以更新备选点集合。重复上述步骤,直至备选点集合为空集,得到分别以第一起始点A为最首点的第一分支链路,和以第二起始点B为最首点的第二分支链路。
其他实现方式中,支持以目标点云组的多个起始点为基准,进行多次搜索,直接构建得到目标点云组的单链预测树。
一种可选的实现流程:以目标点云组的多个起始点为基准进行多次搜索的原理可简单概述为:假设目标点云中的待编码的当前点为i,第一起始点记为A,第二起始点记为B。那么当前点i与第一起始点A之间的距离为:当前点i与第一起始点A和第一起始点B的距离的加权值,d1=a1×d(i,A)+b1×d(i,B),其中,a1>0,b1<0,表示选取备选点集合中距离第一起始点A相对最近且距离第二起始点相对最远的点作为第一起始点A的后序节点。任一候选点的距离加权值包括:该任一候选点和第一起始点之间的第一加权值,与任一候选点和第二起始点之间的第二加权值的差值。再计算备选点集合中剩余点与第一起始点和第二起始点之间的距离加权值,将距离加权值指示距离第一起始点相对最近且距离第二起始点相对较远的点确链接至单链预测树的最末点。重复上述步骤,直到备选点集合为空集,得到目标点云组的单链预测树。
该实现方式的具体流程可包括:首先,根据距离运算规则,确定备选点集合中各个候选点,与第一起始点和第二起始点之间的距离加权值。其中,该距离运算规则为,d1=a1×d(i,A)+b1×d(i,B),其中,a1>0,b1<0,根据该距离运算规则运算得到的点的距离加权值可用于表示:选取备选点集合中距离第一起始点A相对最近且距离第二起始点相对最远的点。
然后,按照距离加权值逐渐增大的顺序,依次链接备选点集合中的各个候选点,得到候选点链路。该候选点链路中的最首点为距离加权值最小的第一候选点,最末点为距离加权值最大的第二候选点。最后,将候选点链路的第一候选点链接至所述第一起始点,以及,将候选点链路的第二候选点链接至第二起始点,得到目标点云组的单链预测树。
当然,除了采用上述描述这种实现方式,即先构建候选点链路再将候选点链路链接至第一起始点和第二起始点,以构建目标点云组的单链预测树。本申请实施例还支持在得到备选点集合中的各个距离加权值后,先选取距离加权值最小的第一点链接至第一起始点之后,再从剩余的点中选取距离加权值最小的第二点链接至第一点之后,再从剩余的点中选取距离加权值最小的点链接至第二点之后,直到备选点集合中所有点均被链接,得到目标点云组的单链预测树。本申请实施例对以目标点云组的多个起始点为基准,直接构建得到目标点云组的单链预测树的具体实施过程不作限定,在此说明。
另一种可选的实现流程:以目标点云组的多个起始点为基准进行多次搜索的原理可简单概述为:假设目标点云中的待编码的当前点为i,第一起始点记为A,第二起始点记为B。那么当前点i与第一起始点A之间的距离为:当前点i与第一起始点A和第一起始点B的距离的加权值d1=a1×d(i,A)+b1×d(i,B),其中,a1>0,b1<0,表示选取备选点集合中距离第一起始点A相对最近且距离第二起始点相对最远的点作为第一起始点A的后序节点。再计算备选点集合中剩余点与第一候选点和第二起始点之间的距离加权值,将距离加权值指示距 离第一候选点相对最近且距离第二起始点相对较远的第一候选点,以构建目标点云组的单链预测树。
该实现方式的具体流程可包括:
首先,以第一起始点为搜索起点,从备选点集合中搜索到搜索起点和第二起始点之间的距离加权值最小的第一候选点。任一候选点的距离加权值包括:任一候选点和第一起始点之间的第一加权值,与任一候选点和第二起始点之间的第二加权值的差值。其中,距离加权值的计算规则包括:d1=a1×d(i,A)+b1×d(i,B),其中,a1>0,b1<0。将第一候选点链接至搜索起点(即第一起始点),且根据第一候选点更新备选点集合,如在备选点集合中删除第一起始点。
其次,以第一候选点作为新的搜索起点,从更新后的备选点集合中搜索到与搜索起点和第二起始点之间的距离最小的第二候选点;将第二候选点链接至新的搜索起点,根据第一候选点更新备选点集合。再以第二候选点作为新的搜索起点,继续进行候选点搜索,直到备选点集合为空集。
最后,将最后搜索到的候选点与第二起始点连接,得到目标点云组的单链预测树。
需说明的是,上述只是本申请实施例给出的多种示例性的构建分支链路的实施例,其目标在于从目标点云组中搜索到与第一起始点距离最近(如几何距离或距离加权值)的无序点,以及,从目标点云组中搜索到与第二起始点距离最近的无序点,提高三维空间中的邻近的无序点的关联关系。在实际应用中,还可以采用其他实现方式来达到上述目标,本申请实施例对构建分支链路的具体实施过程不作限定。
S404,根据每个点云组的单链预测树,对点云数据中的各个待编码的点进行编码。
基于前述步骤S401-S403得到点云数据中每个点云组的单链预测树后,本申请实施例还支持基于每个点云组的单链预测树构建点云数据的目标预测树,以便于基于点云数据的目标预测树对点云数据中的各个待编码的点进行编码。具体地,可获取L个点云组中每个点云组的单链预测树。然后,按照L个点云组的分组顺序,即从点云数据中划分得到L个点云组的顺序,依次连接每个点云组的单链预测树,得到点云数据的目标预测树,该目标预测树的起始点为L个点云组中的第一个点云组的第一起始点,目标预测树的终止点为L个点云组中的第L个点云组的终止点。最后再基于目标预测树对点云数据中的各个待编码的点进行编码。
示例性的基于L个点云组的单链预测树,构建完整点云数据的目标预测树的示意图过程可参见图15。如图15所示,点云数据包括L个点云组,每个点云组对应有一条单链预测树,则按照L个点云组被划分时的分组顺序,将每个点云组对应的单链预测树进行连接,得到点云数据的目标预测树。例如,L个点云组中包括相邻的第j个点云组和第j+1个点云组,j=1,2,…,L-1;则将第j个点云组的单链预测树中的最末点(或称为终止点),作为第j+1个点云组的单链预测树的最首点(或称为起始点),以得到点云数据的目标预测树。
本申请实施例中,一方面,在获取待编码的点云数据后,支持先对点云数据进行划分,得到多个点云组;再以组为单位,针对每个点云组构建单链预测树;最后基于每个点云组的单链预测树得到整个点云数据的预测树;相比于针对整个点云数据构建一棵树预测树而言,在一定程度上可缩短点云数据的预测树的构建时长,提高预测树的构建效率。另一方面,为每个点云组构建单链预测树时,支持为每个点云组确定两个或两个以上的起始点,并基于两个或两个以上的起始点为点云组构建单链预测树;这种基于多起始点构建单链预测树的方式,能够实现高效的预测树结构,提高三维空间中邻近的无序点的关联关系,提升点云数据的编码效率。
本申请实施例提供一种点云编码方法,该点云编码方法的具体实现流程可参见图16。该点云编码方法可以由图5所示点云编解码系统30中的编码设备301执行。如图16所示,该点云编码方法可以包括以下步骤S1101-S1105:
S1101,获取待编码的点云数据,该点云数据被划分为L个点云组。
S1102,为每个点云组确定起始点,每个点云组的起始点的数量均大于1。
S1103,基于每个点云组的起始点构建每个点云组的单链预测树。
S1104,将每个点云组的单链预测树进行连接,得到点云数据的目标预测树。
需要说明的是,步骤S1101-S1104所示的具体实施过程,可参见前述图6所示实施例中步骤S401-S404所示的具体实施过程的相关描述,在此不作赘述。
S1105,基于目标预测树对点云数据中的各个待编码的点进行编码。
本申请实施例支持编码设备采用多种编码规则,对点云数据中的各个待编码的点进行编码,以得到编码后的点云数据,该编码后的点云数据属于编码码流,在此说明。例如,支持对点云数据的点云包围盒的包围盒信息进行编码,以得到编码后的点云数据。再如,支持编码点云数据中的第一个点云组的第一起始点的起始点信息(如第一起始点的真实几何信息),以得到编码后的点云数据。又如,支持编码点云数据中每个点云组的起始点的起始点信息,以得到编码后的点云数据。其中,考虑到目标预测树是由L个点云组的单链预测树依次连接得到的,那么此处的点云组的起始点可是指:该点云组的相邻前一个点云组的单链预测树的终止点(或称为最末点),如第j个点云组的起始点可是指第j-1个点云组的单链预测树的终止点。
下面对上述给出的多种编码规则的具体实施过程进行阐述,参见下述编码规则一至编码规则三。
编码规则一:支持编码设备对基于空间划分得到的整体点云数据的点云包围盒的包围盒信息,以及点云数据中的各个待编码的点进行编码,以得到编码码流。那么解码端可以根据点云数据的点云包围盒和空间划分,直接计算得到待解码的点云数据的起始点信息(如起始点的重建几何信息)。
首先,确定点云数据的点云包围盒的包围盒信息,该包围盒信息可包括但不限于:点云包围盒的原点信息,点云包围盒沿x方向、y方向及z方向上的尺寸信息等。对包围盒信息进行编码,得到编码后的包围盒信息。其次,确定目标预测树的几何编码模式,该几何编码模式定义了对点云数据中各个待编码的点的预测几何信息的预测方法或策略。然后,根据几何编码模式对点云数据中各待编码的点进行编码,得到编码后的点云数据。最后,根据编码后的包围盒信息和编码后的点云数据,得到编码码流。
需要说明的是,除支持对整个点云数据的点云包围盒的包围盒信息进行编码外,本申请实施例还支持对各个点云组的点云包围盒的包围盒信息进行编码,以及对点云数据中的各个待编码的点进行编码,以得到编码后的点云数据。
编码规则二:支持编码端编码点云数据中的第一点云组的起始点信息(如起始点的真实几何信息),以及按照几何编码模式对点云数据中其他待编码的点进行编码,以得到编码码流。对目标预测树的起始点的起始点信息进行编码,此处的目标预测树的起始点可是指L个点云组中第一个点云组的第一起始点,该第一起始点的起始点信息可是指该第一起始点在三维空间坐标系中的真实几何信息。上述描述的对目标预测树中的起始点的起始点信息进行编码包括:对第一点云组的第一起始点的起始点信息进行编码。以及,确定目标预测树的几何编码模式,根据几何编码模式对点云数据中各待编码的点进行编码。再根据编码后的目标预测树中起始点的起始点信息,以及编码后的点云数据,得到编码码流。
编码规则三:支持编码端编码各个点云组的单链预测树中第一起始点的起始点信息以及各个点云组的组信息(如点云组所包含的点数、组标识(如组号)等),以及按照几何编码模式对点云数据中其他待编码的点进行编码,以得到编码后的点云数据。其中,考虑到在对多个点云组的单链预测树进行连接,以得到点云数据的目标预测树的过程中,是将第j个点云组的单链预测树的终止点,作为第j+1个点云组的单链预测树的第一起始点,j=1,2,…,L-1。则上述提及的单链预测树中的第一起始点,可是指相邻前一单链预测树的终止点,如第i组的第一起始点可是指第i-1组的终止点。编码设备对各个单链预测树中第一起始点的起始点信息以及各个点云组的组信息进行编码。获取目标预测树的几何编码模式,根据几何编码模式对点云数据中各待编码的点进行编码。根据编码后的各个点云组的单链预测树中第一起 始点的起始点信息,编码后的各个点云组所包含的组信息,以及编码后的点云数据,得到编码码流。
需说明的是,①上述只是给出的三种示例性的对点云数据进行编码的实施过程,在实际应用中,还可能存在其他编码实施方式,本申请实施例对此不作限定。②上述三种编码规则的具体实施过程,均涉及根据目标预测树的几何编码模式,对点云数据中各待编码的点进行编码的过程,该过程具体是指根据几何编码模式对点云数据中各待编码的点的预测残差信息进行编码。其中,根据几何编码模式对点云数据中各待编码的点进行编码的实施过程可包括:首先,根据目标预测树的几何编码模式,对点云数据中各待编码的点进行几何预测处理,得到点云数据中各待编码的点的预测几何信息。然后,基于点云数据中各待编码的点的预测几何信息和真实几何信息,确定点云数据中各待编码的点的预测残差信息。具体是将待编码的点的真实几何信息与该待编码的点的预测几何信息进行相减,得到该待编码的点的预测残差信息。最后,对点云数据中的各个待编码的点的预测残差信息进行编码,得到编码码流。
本申请实施例提供的几何编码模式(或称为预测模式)可包括但不限于:
1)不对待编码的点进行几何预测处理;
2)采用单个前序节点(parent点)对当前待编码的点进行几何预测处理;
3)采用S个前序节点(如parent点、grandparent点,或者,parent点、grandparent点以及grand-grandparent点)对当前待编码的点进行几何预测处理;假设单链预测树或目标预测树中,位于当前待编码的点之前的点数为Q,那么S的取值为:2,3,4,…,Q-1。
下面对上述给出的几种示例性的几何编码模式的具体实施过程进行介绍,其中:
1)对于目标预测树中位于第一位置的第一起始点而言,无需对该第一起始点进行几何预测处理。
2)采用单个前序节点对当前待编码的点进行几何预测处理,即支持基于单个前序节点(或简称为前序点)确定当前待编码的点的预测几何信息。假设点云数据中包括当前待编码的点,该当前待编码的点是指目标预测树中除最首点之外的任一个待编码的点。那么根据目标预测树的几何编码模式,对当前待编码的点进行几何预测处理,得到该当前待编码的点的预测几何信息的过程,包括:获取目标预测树中位于当前待编码的点之前,且相邻的一个前序点的真实几何信息。然后,将该前序点的真实几何信息,作为当前待编码的点的预测几何信息。如图17所示的第一幅图,假设点云数据的目标预测树中的当前待编码的点为点5,在目标预测树中位于点5之前,且相邻的一个前序点为点4,则将点4的真实几何信息确定为点5的预测几何信息。
3)采用S个前序节点对当前待编码的点进行几何预测处理,本申请实施例对S的具体取值不作限定,即本申请实施例支持基于多个前序节点共同计算当前待编码的点的预测几何信息。假设点云数据中包括当前待编码的点,该当前待编码的点是指目标预测树中除最首点之外的任一个待编码的点。那么根据目标预测树的几何编码模式,对当前待编码的点进行几何预测处理,得到该当前待编码的点的预测几何信息的过程,包括:获取目标预测树中位于当前待编码的点之前,且相邻的多个前序点的真实几何信息,并对多个前序点的真实几何信息进行融合,得到当前待编码的点的预测几何信息。值得说明的是,本申请实施例对融合的具体过程不作限定,如融合可包括但不限于差分处理或平均值计算等。以获取相邻2个前序点为例,如图17所示的第二幅图,假设点云数据的目标预测树中的当前待编码的点为点5,在目标预测树中位于点5之前,且相邻的2个前序点分别为点4和点3,则可以对点4的真实几何信息和点5的真实几何信息进行差分处理,并将差分处理的结果确定为点5的预测几何信息。
另外,本申请实施例还支持为目标预测树设置相同或不同的几何编码模式;为目标预测树设置几何编码模式的方式可包括但不限于:
(1)对点云数据在编码端和解码端设置统一的几何编码模式。也就是说,在编码端为点云数据设置的几何编码模式,与在解码端为编码后的点云数据设置的几何解码模式是相同。 具体地,编码设备和解码设备中可存储有默认设置信息,该默认设置信息指示为点云数据设置默认的几何编码模式,则在获取到默认设备信息后,根据该默认设置信息为点云数据设置默认的几何编码信息。其中,若该默认设置信息指示为点云数据中的各个点云组设置相同的几何编码模式,则各个点云组均采用相同的几何编码模式;若该默认设置信息指示为点云数据中的各个点云组设置不同的几何编码模式,则各个点云组采用不同的几何编码模式。其中,该默认设置信息可是预先设置在编码设备的存储空间中的,这样编码设备需要采用几何编码模式进行编码时,可直接从存储空间中拉取。
另外,编码设备还可以基于默认的几何编码模式生成模式设置信息,将模式设置信息发送至解码设备,该模式设置信息指示解码设备也采用默认的几何解码模式对编码后的点云数据进行解码。或者,解码设备的存储空间中本身存储有默认设置信息,这样解码设备在获取到待解码的点云数据后,可直接根据存储空间中存储的默认设置信息,为待解码的点云数据设置默认的几何编码模式。
(2)对点云数据中各个点云组设置统一的几何编码模式,并将几何编码模式的模式信息发送至解码设备。具体是将几何编码模式的模式信息写入参数集(如编码头信息)或编码码流,以便于在传输参数集或编码码流时,一并将几个编码模式的模式信息发送至解码设备。这样解码设备在接收到几何编码模式的模式信息后,可以根据该模式信息为待解码的点云数据设置几何解码模式。
(3)对点云数据中各个点云组设置不同的编码模式,并将各个点云组的几何编码模式的模式信息发送至解码设备。具体是将几何编码模式的模式信息写入参数集或编码码流,以便于在传输参数集或编码码流时,一并将几个编码模式的模式信息发送至解码设备。例如,点云数据中包括第一点云组和第二点云组,为第一点云组设置的第一几何编码模式指示:采用单个前序节点对当前待编码的点进行几何预测处理,为第二点云组设置的第二几何编码模式指示采用S(S大于等于2)个前序节点对当前待编码的点进行几何预测处理;则可以将第一几何编码模式的模式信息和第二几何编码模式的模式信息发送至解码设备,以便于解码设备根据模式信息为相应的待解码的点云组设置几何解码模式。
(4)根据点云数据的几何分布特性,确定目标预测树的几何编码模式。其中,点云数据的几何分布特性可包括:基于空间划分的点云数据的点云包围盒沿x方向、y方向以及z方向上的尺寸分布特性;或者,点云数据中的点云组的点云包围沿x方向、y方向以及z方向上的尺寸分布特性。
在一种实现方式中,根据点云数据的点云包围盒的几何分布特性,确定几何编码模式。具体地,首先,确定点云数据的点云包围盒,具体是基于空间划分为点云数据构建点云包围盒,该点云包围盒包括了点云数据中的所有待编码的点;在确定点云数据的点云包围盒的过程中,可根据点云数据中各点的真实几何信息,确定该点云包围盒的包围盒尺寸,具体是该点云包围盒在x方向、y方向以及z方向上的尺寸;其中,计算点云包围盒的尺寸的具体实施过程可参见步骤S402所示的具体实施过程的相关描述,在此不作赘述。若点云包围盒的包围盒尺寸,在x方向、在y方向及z方向之间的差异值较大,则根据差异值为目标预测树确定几何编码模式,如为目标预测树在x方向、y方向及z方向上,分别设置不同的几何编码模式,即点云数据在不同方向上采用不同的几何编码模式,具体是点云数据中待编码的点,在不同方向上采用不同的几何编码模式。
其中,点云包围盒的包围盒尺寸在x方向、在y方向及z方向之间的差异值的确定方式可包括:将点云包围盒在x方向上的尺寸、在y方向上的尺寸以及在z方向上的尺寸依次相减,得到差异值;若差异值大于差异阈值,则确定点云包围盒的包围盒尺寸,在x方向、在y方向及z方向之间的差异值较大;反之,若差异值小于或等于差异阈值,则确定点云包围盒的包围盒尺寸,在x方向、在y方向及z方向之间的差异值较小。本申请实施例对确定点云包围盒的包围盒尺寸在x方向、在y方向及z方向之间的差异值的具体实施过程不作限定,上述描述的将点云包围盒在x方向上的尺寸、在y方向上的尺寸以及在z方向上的尺寸依次 相减,只是本申请实施例给出的一种示例性确定差异值的实施过程,特在此说明。
其他实现方式中,根据点云数据中各个点云组的几何分布特性,确定几何编码模式;也就是说,以点云组为单位,根据各个点云组的几何分布特性,为相应点云组确定几何编码模式。具体地,首先,根据点云数据中各个点云组中待编码的点的真实几何信息,分析每个点云组的点云包围盒的包围盒尺寸;然后,根据每个点云组的点云包围盒的几何分布特性,为每个点云组设置编码模式。以点云数据中的任一点云组为目标点云组为例,根据目标点云组中的各待编码的点的真实几何信息,可分析到该目标点云组的点云包围盒的包围盒尺寸;若目标点云组的包围盒尺寸,在x方向、y方向及z方向之间差异值大于差异阈值,则对目标点云组的单链预测树在x方向、y方向及z方向上,分别设置不同的几何编码模式,即目标点云组所包含的待编码的点,在不同方向上采用不同的几何编码模式。其中,目标点云组的点云包围盒的包围盒尺寸在x方向、在y方向及z方向之间的差异值的确定方式,可参见上述相关描述,在此不作赘述。
(5)根据点云数据的距离统计特性,确定几何编码模式。其中,点云数据的距离统计特性可是指:点云数据中相邻多个点之间的几何距离之和。具体地,可统计相邻多个点之间的几何距离之和,若几何距离之和大于距离阈值,则为点云数据设置指定的几何编码模式,如该指定的几何编码模式指示采用S个前序节点对当前待编码的点进行几何预测处理。
值得注意的是,上述是本申请实施例给出的几种示例性的目标预测树的几何编码模式的确定方法,并不会对本申请实施例产生限定。
综上所述,本申请实施例支持对点云数据中各待解码的点进行几何编码,相比于对待编码的点进行编码而言,可以减少几何信息编码时的数据量,降低压缩数据的传输量,进一步提高点云数据的编码效率。并且,本申请实施例还支持多种几何编码模式,使得可以根据业务需求选取相同或不同的几何编码模式,实现对几何编码模式的优化,从而提高对点云数据的编码效率。
本申请实施例提供一种点云解码方法,该点云解码方法的实现流程可参见图18该点云解码方法可以由图5所示点云编解码系统30中的解码设备302执行。如图18所示,该点云解码方法可以包括以下步骤S1301-S1304:
S1301,获取待解码的点云数据。
其中,待解码的点云数据中包括多个待解码的点;待解码的点云数据可是指前述提及的编码后的点云数据,属于编码码流。待解码的点云数据是编码设备根据待编码的点云数据中每个点云组的单链预测树,对点云数据中各个待编码的点进行编码得到,每个点云组的单链预测树是基于每个点云组的起始点构建的,每个点云组的起始点的数量均大于1。当编码设备对点云数据编码结束后,可将编码码流发送至解码设备。在一些编解码场景中,编码设备和解码设备可以是同一设备,这样编码设备对点云数据编码结束后,可将编码后的点云数据存储至存储空间中,这样解码设备(即编码设备)在具有解码需求时,可直接从存储空间中获取到待编码的点云数据。
S1302,对点云数据进行起始点解析,得到点云数据的起始点的重建几何信息。
正如前述图16所示实施例中步骤S1104所示的,本申请实施例提供的编码设备支持采用多种编码规则对点云数据中的各个待编码的点进行编码,得到编码码流。例如,支持对点云数据的点云包围盒的包围盒信息进行编码,以得到编码码流。再如,支持编码点云数据中的第一个点云组的第一起始点的起始点信息(如第一起始点的真实几何信息),以得到编码码流。又如,支持编码点云数据中每个点云组的起始点的起始点信息,以得到编码码流。相应的,解码设备可以根据对点云数据的编码规则不同,采用不同的方式解析得到目标预测树的起始点的重建几何信息。
下面对多种解析得到起始点的重建几何信息的实施过程进行阐述。
在一种实现方式中,通过解析编码后的包围盒信息,以实现预测点云数据的起始点的重建几何信息。其中,待解码的点云数据属于编码码流,该编码码流中包括编码后的包围盒信 息,则可以对编码后的包围盒信息进行解析处理,以得到点云数据的点云包围盒的各个顶点的顶点信息。再基于点云包围盒的各个顶点的顶点信息,可以确定点云数据的起始点的重建几何信息。
例如,编码后的包围盒信息包括:点云包围盒的一个顶点(如最左下角顶点)的顶点信息以及沿xyz方向上的尺寸信息,则对编码后的包围盒信息进行解析后,可直接得到点云包围盒的一个顶点的预测几何信息以及沿xyz方向上的尺寸信息。考虑到点云包围盒可以是一个长方体或立方体,那么基于一个顶点的预测几何信息和沿xyz方向上的尺寸信息,可推导出该点云包围盒的其他顶点的预测几何信息。进一步的,可根据起始点选取信息从点云包围盒的多个顶点中选取起始点,从而将被选取的顶点的预测几何信息作为起始点的重建几何信息。其中,起始点选取信息可用于指示从点云包围盒的多个顶点中选取P1个顶点作为起始点,该起始点选取信息可是以参数形式存储于解码设备中的,也可以是编码设备基于点云包围盒选取P1个起始点后生成并发送至解码设备中的。
需要说明的是,如果编码后的包围盒信息为点云数据中的点云组的点云包围盒的包围盒信息,则还支持对每个点云组的点云包围盒的包围盒信息进行解析,得到每个点云包围盒的各个顶点的顶点信息。再基于每个点云组的点云包围盒的各个顶点的顶点信息,确定各个点云组的单链预测树的起始点的重建几何信息。其中,各个点云组是编码设备对点云数据进行分组得到的。
在另一种实现方式中,通过解析编码后的目标预测树中,起始点的起始点信息,以实现预测点云数据的起始点的重建几何信息。具体实现中,待解码的点云数据属于编码码流,该编码码流中编码后的点云数据的目标预测树中,起始点的起始点信息。目标预测树的起始点可是指:L个点云组中第一个点云组的第一起始点,L为大于或等于1的整数,L个点云组是编码端对点云数据进行分组得到的。那么对编码后的目标预测树中起始点的起始点信息进行解析,可直接将解析结果作为目标预测树的起始点的重建几何信息。
其他实现方式中,通过解析点云数据中每个点云组的单链预测树中第一起始点的起始点信息,以实现预测点云数据的起始点的重建几何信息。具体实现中,待解码的点云数据属于编码码流,编码码流中包括编码后的各个单链预测树中第一起始点的起始点信息,一个单链预测树对应一个点云组,点云组是编码端对点云数据进行划分得到的,点云数据的目标预测树是将各个点云组的单链预测树进行连接得到的。然后,可直接对编码后的L个点云组中每个点云组的单链预测树中第一起始点的起始点信息进行解析处理,将针对各个单链预测树中第一起始点的起始点信息的解析结果,作为相应点云组的起始点的重建几何信息,从而根据各个点云组的起始点的重建几何信息确定点云数据的起始点的重建几何信息。
需说明的是,上述提及的单链预测树中的第一起始点,可是指相邻上一单链预测树的终止点。由前述描述可知,点云数据的目标预测树是由L个点云组的单链预测树依次连接得到的,如第i个点云组的单链预测树的最末点(或称为终止点),与第i+1个点云组的单链预测树的最首点(或称为起始点)相连接,i=1,2,…,L,此时第i个点云组的单链预测树的终止点作为第i+1个点云组的第一起始点。因此,对编码后的各个点云组的单链预测树中第一起始点的起始点信息进行解析,可直接得到各个点云组的第一起始点的重建几何信息,从而有利于后续基于第一起始点的重建几何信息对相应点云组中的其他点进行几何预测。
可以理解的是,根据编码后的点云数据中所包含的信息的不同,解码设备可采用不同的方式预测目标预测树的起始点的重建几何信息。本申请实施例对解码设备预测起始点的重建几何信息的具体实现方式不作限定。
S1303,获取目标预测树的几何解码模式,根据几何解码模式和起始点的重建几何信息,对点云数据中各点进行几何预测处理,得到点云数据中各点的预测几何信息。
在已知起始点的重建几何信息的情况下,可以按照点云数据的几何解码模式,对点云数据中各点进行几何预测处理,得到各个点的预测几何信息。例如,已知点云数据的目标预测树的第一个起始点的重建几何信息,则可以基于该第一个起始点的重建几何信息,按照几何 编码模式依次推导出其它各点的预测几何信息。再如,点云数据中包括编码后的每个点云组的点数,那么对该编码后的每个点云组的点数进行解析后,可得到每个点云组的预测点数信息,则按照几何解码模式,根据每个点云组的预测点数信息,以及已知的各个点云组的单链预测树的最末点的预测几何信息,可确定每个点云组中各点的预测几何信息,进而得到点云数据中各点的预测几何信息。对于第i个点云组而言,可以按照几何编码模式、第i个点云组的预测点数信息以及第i-1个点云组的单链预测树的最末点的预测几何信息,推导出第i个点云组中各个点的预测几何信息。以此类推,得到点云数据中各点的预测几何信息。
与编码端采用的几何编码模式类似的,解码端所采用的几何解码模式可包括但不限于:
1)不对待解码的点进行几何预测处理;
2)采用单个前序节点(parent点)对当前待解码的点进行几何预测处理;
3)采用S个前序节点(如parent点、grandparent点,或者,parent点、grandparent点以及grand-grandparent点)对当前待解码的点进行几何预测处理;假设点云数据或点云组中位于当前待解码的点之前的点数为Q,那么S的取值为:2,3,4,…,Q-1。
下面对上述给出的几种示例性的几何解码模式的具体实施过程进行介绍,其中:
1)对于目标预测树中位于第一位置的第一起始点而言,其预测几何信息可以通过前述描述的包围盒信息解析得到;或者,通过编码后的单链预测树的最末点的末点信息解析得到;或者,通过编码后的目标预测树的最首点的首点信息解析得到,因此,无需对该第一起始点进行几何预测处理。
2)采用单个前序节点对当前待解码的点进行几何预测处理,即支持基于单个前序节点(或简称为前序点)确定当前待解码的点的预测几何信息。假设点云数据中包括当前待解码的点,该当前待解码的点是指点云数据或点云组中除最首点之外的任一个待解码的点。那么根据目标预测树的几何解码模式,对当前待解码的点进行几何预测处理,得到该当前待解码的点的预测几何信息的过程,包括:获取解码顺序中位于当前待解码的点之前,且相邻的单个前序点的预测几何信息。然后,将该前序点的预测几何信息,作为当前待解码的点的预测几何信息。其中,解码顺序是指编码端对待编码的点云数据中各点进行编码的编码顺序。例如,编码设备对待编码的点云数据中各点进行编码的编码顺序为:点1→点3→点2→点5→点4,则确定解码设备对待解码的点云数据中各点进行解码的解码顺序为:点1→点3→点2→点5→点4。
3)采用S个前序节点对当前待解码的点进行几何预测处理,本申请实施例对S的具体取值不作限定,即本申请实施例支持基于多个前序节点共同计算当前待解码的点的预测几何信息。假设点云数据中包括当前待解码的点,该当前待解码的点是指点云数据或点云组中除最首点之外的任一个待解码的点,那么根据目标预测树的几何编码模式,对当前待解码的点进行几何预测处理,得到该当前待解码的点的预测几何信息的过程,包括:获取解码顺序中位于当前待解码的点之前,且相邻的多个前序点的预测几何信息,并对多个前序点的预测几何信息进行融合,得到当前待解码的点的预测几何信息。值得说明的是,本申请实施例对融合的具体过程不作限定,如融合可包括但不限于差分处理或平均值计算等。
另外,本申请实施例还支持为点云数据设置相同或不同的几何解码模式,设置几何解码模式的方式可包括但不限于下述(1)-(5)。
(1)对点云数据在编码端和解码端设置统一的几何编码模式。也就是说,在编码端为点云数据设置的几何编码模式,与在解码端为编码后的点云数据设置的几何解码模式是相同。编码设备和解码设备中可存储有默认设置信息,该默认设置信息指示为点云数据设置默认的几何解码模式,则在获取到默认设备信息后,根据该默认设置信息为点云数据设置默认的几何解码信息。在点云数据被划分为多个点云组的情况下,若该默认设置信息指示为点云数据中的各个点云组设置相同的几何解码模式,则各个点云组均采用相同的几何解码模式;若该默认设置信息指示为点云数据中的各个点云组设置不同的几何解码模式,则各个点云组采用不同的几何解码模式。可选的,该默认设置信息可是预先设置在解码设备的存储空间中的, 这样解码设备需要采用几何解码模式时,可直接从存储空间中拉取。可选的,默认设置模式还可以由编码设备发送至解码设备,即解码设备可以从待编码的点云数据(或称为编码后的点云数据)中获取默认设置信息,并根据该默认设置信息为目标预测树设置默认的几何编码模式,该默认设置信息是编码端和解码端协商设置的。
(2)在参数集或编码码流中解析点云数据的编码模式。在编码设备为点云数据中各个点云组设置统一的几何编码模式,且该几何解码模式的模式信息被写入至参数集或编码码流中的情况下,解码设备可从参数集或编码码流中获取模式信息,并根据该模式信息为点云数据中的各个点云组设置统一的几何解码模式。
(3)在参数集或编码码流中解析点云数据中各个点云组的编码模式。在编码设备为点云数据中各个点云组设置了不同的几何编码模式,且各个点云组的几何编码模式的模式信息被写入至参数集或编码码流的情况下,解码设备可基于接收到的各个点云组的模式信息,为各个点云组设置相应的几何解码模式。
(4)根据点云数据的几何分布特性,确定点云数据的几何编码模式。其中,点云数据的几何分布特性可包括:基于空间划分的点云数据的点云包围盒沿x方向、y方向以及z方向上的尺寸分布特性;或者,点云数据中的点云组的点云包围沿x方向、y方向以及z方向上的尺寸分布特性。
在一种实现方式中,根据点云数据的点云包围盒的几何分布特性,确定几何解码模式。首先,确定点云数据的点云包围盒的尺寸,点云数据的点云包围盒沿x方向、y方向以及z方向上的尺寸,可以是直接解析编码后的包围盒信息得到的。其中,解析点云包围盒的包围盒信息的具体实施过程可参见前述相关描述,在此不作赘述。若点云数据的点云包围盒的包围盒尺寸,在x方向、在y方向及z方向之间的差异值较大,如差异值大于差异阈值,则为点云数据在x方向、y方向及z方向上,分别设置不同的几何解码模式,即点云数据在不同方向上采用不同的几何解码模式。具体是点云数据中待解码的点,在不同方向上采用不同的几何解码模式。
其中,点云包围盒的包围盒尺寸在x方向、在y方向及z方向之间的差异值的确定方式可包括:将点云包围盒在x方向上的尺寸、在y方向上的尺寸以及在z方向上的尺寸依次相减,得到差异值。若差异值大于差异阈值,则确定点云包围盒的包围盒尺寸,在x方向、在y方向及z方向之间的差异值较大;反之,若差异值小于或等于差异阈值,则确定点云包围盒的包围盒尺寸,在x方向、在y方向及z方向之间的差异值较小。本申请实施例对确定点云包围盒的包围盒尺寸在x方向、在y方向及z方向之间的差异值的具体实施过程不作限定,上述描述的将点云包围盒在x方向上的尺寸、在y方向上的尺寸以及在z方向上的尺寸依次相减,只是本申请实施例给出的一种示例性确定差异值的实施过程,特在此说明。
在一些实现方式中,根据点云数据中各个点云组的几何分布特性,确定几何编码模式。也就是说,以点云组为单位,根据各个点云组的几何分布特性,为相应点云组确定几何解码模式。首先,确定点云数据的点云包围盒的尺寸,点云数据的点云包围盒沿x方向、y方向以及z方向上的尺寸,可以是直接解析编码后的包围盒信息得到的。其中,解析点云包围盒的包围盒信息的具体实施过程可参见前述相关描述,在此不作赘述。然后,根据每个点云组的点云包围盒的几何分布特性,为每个点云组设置几何解码模式。以点云数据中的任一点云组为目标点云组为例,若目标点云组的包围盒尺寸,在x方向、y方向及z方向之间差异值大于差异阈值,则为目标点云组在x方向、y方向及z方向上,分别设置不同的几何解码模式,即目标点云组所包含的待解码的点,在不同方向上采用不同的几何解码模式。其中,目标点云组的点云包围盒的包围盒尺寸在x方向、在y方向及z方向之间的差异值的确定方式,可参见上述相关描述,在此不作赘述。
(5)根据点云数据的距离统计特性,确定几何编码模式。其中,点云数据的距离统计特性可是指:点云数据中相邻多个点的距离之和,具体可以是相邻多个点的重建残差信息的绝对值之和。其中,每个点的重建残差信息可以是对编码码流中的编码后的预测残差信息解析 得到的。也就是说,编码设备可以对各个点的预测残差信息进行编码,以便于解码设备对编码后的的各点的预测残差信息进行解析,得到各个点的重建残差信息。可统计相邻多个点之间的重建残差信息之和,若重建残差信息之和大于距离阈值,则为点云数据设置指定的几何编码模式,如该指定的几何编码模式指示采用S个前序节点对当前待解码的点进行几何预测处理。
值得注意的是,上述是本申请实施例给出的几种示例性几何解码模式的确定方法,并不会对本申请实施例产生限定。
S1304,基于点云数据中各点的预测几何信息,对点云数据中各点进行几何解码,以确定点云数据中各点的重建几何信息。
可选地,点云数据中还包括有编码后的各个点的预测残差信息,任一点的预测残差信息是编码设备将该任一点的真实几何信息和预测几何信息相减得到的。那么,解码设备在接收到编码后的点云数据后,还对点云数据中编码后的各个点的预测残差信息进行解析,以得到各个点的重建残差信息。进一步的,可根据各个点的重建残差信息和预测几何信息,对点云数据中各待解码的点进行几何解码,以确定点云数据中各点的重建几何信息。具体是将任一点的重建残差信息与预测几何信息相加,得到该任一点的重建几何信息。
本申请实施例中,在获取到待解码的点云数据后,可对点云数据进行起始点解析,以确定点云数据的目标预测树的起始点的重建几何信息。然后,根据点云数据的几何解码模式以及起始点的重建几何信息,对点云数据中各个待编码的点进行几何预测处理,得到各个待编码的点的预测几何信息。再基于点云数据中各点的预测几何信息,对点云数据中各点进行几何解码,以确定点云数据中各点的重建几何信息。上述过程中,支持对点云数据进行起始点解析,直接得到点云数据的目标预测树的起始点的重建几何信息,实现快速确定起始点的重建几何信息,在一定程度上提高点云数据的解码效率。
上述详细阐述了本申请实施例的方法,为了便于更好地实施本申请实施例的上述方案,相应地,下面提供了本申请实施例的装置。
请参见图19,图19是本申请实施例提供的一种点云编码装置的结构示意图,该点云编码装置可以设置于本申请实施例提供的计算机设备中,计算机设备可以是上述方法实施例中提及的编码设备.在一些实施例中,该点云编码装置可以是运行于计算机设备中的一个计算机程序(包括程序代码),该点云编码装置可以用于执行图6或图16所示的方法实施例中的相应步骤。请参见图19,该点云编码装置可以包括如下单元:
获取单元1401,用于获取待编码的点云数据,点云数据是以点为单位的集合,点云数据被划分为L个点云组,L为大于或等于1的整数,每个点云组包含多个待编码的点;
处理单元1402,用于为每个点云组确定起始点,每个点云组的起始点的数量均大于等于1;
处理单元1402,还用于基于每个点云组的起始点构建每个点云组的单链预测树;
处理单元1402,还用于根据每个点云组的单链预测树,对点云数据中的各个待编码的点进行编码。
在一种实现方式中,点云组的起始点的确定方式,包括以下任一种或多种:
从点云组的点云包围盒的多个顶点中,选取起始点;
从点云组的一个或多个第一特殊点中选取起始点,第一特殊点是指点云组中几何距离大于距离阈值的点;
按照点云组中待编码的点的排列顺序,选取起始点。
在一种实现方式中,点云组的起始点的确定方式包括:从点云组的点云包围盒的多个顶点中,选取起始点;
L个点云组中的任一个点云组为目标点云组,处理单元1402用于为目标点云组选取起始点时,具体用于:
确定目标点云组的点云包围盒;其中,目标点云组的点云包围盒包括:涵盖目标点云组中所有点的最小长方体、最小立方体或最小多面体;
从目标点云组的点云包围盒的多个顶点中,按照选取规则选择P1个起始点,P1大于等于1;
其中,选取规则包括以下至少一种:随机选择,按各顶点之间的几何距离关系选取,以及沿预设方向选取。
在一种实现方式中,点云组的起始点的确定方式包括:从点云组的多个第一特殊点中选取起始点;
L个点云组中的任一个点云组为目标点云组,处理单元1402用于为目标点云组选取起始点,具体用于:
从目标点云组所包含的多个待编码的点中,确定一个或多个第一特殊点,第一特殊点包括以下至少一种:目标点云组的极大值点、极小值点及中位点;
从极大值点、极小值点及中位点中,选取P2个起始点,P2大于等于1。
在一种实现方式中,点云组的起始点的确定方式包括:按照点云组中待编码的点的排列顺序,选取起始点;
L个点云组中的任一个点云组为目标点云组,处理单元1402用于为目标点云组选取起始点时,具体用于:
按照目标点云组中的各个待编码的点的排列顺序,确定一个或多个第二特殊点;第二特殊点包括以下至少一种:排列顺序中的最首点,以及,排列顺序中的最末点;
从一个或多个第二特殊点中,选取P3个起始点,P3大于等于1。
在一种实现方式中,L个点云组中的任一个点云组为目标点云组,处理单元1402用于为目标点云组选取起始点时,具体用于:
确定目标点云组的第一起始点;其中,第一起始点的确定方式包括以下任一种:基于目标点云组的点云包围盒的多个顶点确定的,或者,从目标点云组的一个或多个第一特殊点中确定的,或者,按照目标点云组中待编码的点的排列顺序确定的;
基于第一起始点与目标点云组中各点之间的几何位置关系,从目标点云组中各点中选取起始点。
在一种实现方式中,L个点云组中包括第m个点云组和第m+1个点云组;第m个点云组已选取一个或多个起始点;处理单元1402用于为第m+1个点云组选取起始点时,具体用于:
从第m个点云组的一个或多个起始点中,按照筛选规则为第m+1个点云组选取起始点;
其中,筛选规则包括以下任一种:随机选取,或者,选取第m个点云组的一个或多个起始点中优先级最低的起始点。
在一种实现方式中,L个点云组中的任一个点云组为目标点云组,目标点云组的起始点至少包括:第一起始点和第二起始点;基于第一起始点和所述第二起始点,构建目标点云组的单链预测树,包括:
将目标点云组中除起始点外的其他点作为候选点,添加至备选点集合;
基于备选点集合、第一起始点以及第二起始点,构建目标点云组的单链预测树;
其中,单链预测树的起始点为第一起始点,终止点为第二起始点。
在一种实现方式中,第一起始点的优先级大于第二起始点的优先级;处理单元1402用于基于备选点集合、第一起始点以及第二起始点,构建目标点云组的单链预测树时,具体用于:
基于第一起始点和所述备选点集合,构建目标点云组的单链预测树的第一分支链路,并基于第二起始点和所述备选点集合,构建目标点云组的单链预测树的第二分支链路;
将优先级高的第一分支链路的最末点,与优先级低的第二分支链路的最末点进行连接,得到目标点云组的单链预测树。
在一种实现方式中,处理单元1402用于基于第一起始点和备选点集合,构建目标点云组 的单链预测树的第一分支链路,并基于第二起始点和备选点集合,构建目标点云组的单链预测树的第二分支链路时,具体用于:
以优先级高的所述第一起始点为搜索起点,从所述备选点集合中搜索与第一起始点之间的几何距离最近的第一候选点;将第一候选点链接至以第一起始点为最首点的第一分支链路,并基于第一候选点更新备选点集合;
以及,以优先级低的第二起始点为搜索起点,从更新后的备选点集合中搜索与第二起始点之间的几何距离最近的第二候选点;将第二候选点链接至以第二起始点为最首点的第二分支链路,并基于第二候选点再次更新更新后的备选点集合;
重复上述步骤,直至备选点集合为空集,得到目标点云组的单链预测树的第一分支链路和第二分支链路。
在一种实现方式中,第一起始点的优先级大于第二起始点的优先级;处理单元1402用于基于备选点集合、第一起始点以及第二起始点,构建目标点云组的单链预测树时,具体用于:
以第一起始点为搜索起点,从备选点集合中搜索到搜索起点和第二起始点之间的距离加权值最小的第一候选点;并将第一候选点链接至搜索起点,且根据第一候选点更新备选点集合;
以第一候选点作为新的搜索起点,从更新后的备选点集合中搜索到与搜索起点和第二起始点之间的距离最小的第二候选点;并将第二候选点链接至新的搜索起点,并根第一候选点更新备选点集合;
以第二候选点作为新的搜索起点,继续进行候选点搜索,直到备选点集合为空集;
将最后搜索到的候选点与第二起始点连接,得到目标点云组的单链预测树。
在一种实现方式中,处理单元1402,还用于:
对点云数据包括的多个待编码的点进行排序,得到点云序列;
按照点云序列中各点的排列顺序,将相邻目标数量的点划分至一个点云组,以得到L个点云组;
其中,在划分得到第L-1个点云组时,若点云序列中剩余未划分的点的数量小于目标数量,则将剩余未划分的点添加至第L个点云组;
或者,在划分得到第L个点云组时,若点云序列中剩余未划分的点的数量小于目标数量,则将剩余未划分的点添加至第L个点云组。
在一种实现方式中,处理单元1402用于根据每个点云组的单链预测树,对点云数据中的各个待编码的点进行编码时,具体用于:
按照L个点云组的分组顺序,依次连接每个点云组的单链预测树,得到点云数据的目标预测树;
基于目标预测树对所述点云数据中的各个待编码的点进行编码,得到编码码流;
其中,目标预测树的起始点为L个点云组中第一个点云组的第一起始点,目标预测树的终止点为L个点云组中第L个点云组的终止点。
在一种实现方式中,L个点云组中包括相邻的第j个点云组和第j+1个点云组,j=1,2,…,L-1;处理单元1402用于按照L个点云组的分组顺序,依次连接每个点云组的单链预测树,得到点云数据的目标预测树时,具体用于:
将第j个点云组的单链预测树的最末点,与第j+1个点云组的单链预测树的最首点相连,以得到点云数据的目标预测树。
在一种实现方式中,处理单元1402用于基于目标预测树对点云数据中的各个待编码的点进行编码,得到编码码流时,具体用于:
确定点云数据的点云包围盒的包围盒信息,并对包围盒信息进行编码;
以及,获取目标预测树的几何编码模式,并根据几何编码模式对点云数据中各待编码的点进行编码;
根据编码后的包围盒信息和编码后的点云数据,得到编码码流。
在一种实现方式中,处理单元1402用于基于目标预测树对点云数据中的各个待编码的点进行编码,得到编码码流时,具体用于:
对目标预测树中起始点的起始点信息进行编码;目标预测树的起始点是指L个点云组中第一个点云组的第一起始点;
以及,获取目标预测树的几何编码模式,并根据几何编码模式对点云数据中各待编码的点进行编码;
根据编码后的目标预测树中起始点的起始点信息,以及编码后的点云数据,得到编码码流。
在一种实现方式中,点云数据中第j个点云组的单链预测树的终止点,作为第j+1个点云组的单链预测树的第一起始点,j=1,2,…,L-1;处理单元1402用于基于目标预测树对点云数据中的各个待编码的点进行编码,得到编码码流时,具体用于:
对各个单链预测树中第一起始点的起始点信息,以及各个点云组的组信息,进行编码;
以及,获取目标预测树的几何编码模式,并根据几何编码模式对点云数据中各待编码的点进行编码;
根据编码后的各个单链预测树中第一起始点的起始点信息,编码后的各个点云组的组信息,以及编码后的点云数据,得到编码码流。
在一种实现方式中,处理单元1402用于根据几何编码模式对点云数据中各待编码的点进行编码时,具体用于:
根据目标预测树的几何编码模式,对点云数据中各点进行几何预测处理,得到点云数据中各点的预测几何信息;
基于点云数据中各点的预测几何信息和真实几何信息,确定点云数据中各点的预测残差信息;
对点云数据中各点的预测残差信息进行编码,得到编码后的点云数据。
在一种实现方式中,点云数据中包括当前待编码的点,当前待编码的点是指目标预测树中除起始点之外的任一个待编码的点;
处理单元1402用于根据目标预测树的几何编码模式,对当前待编码的点进行几何预测处理,得到当前待编码的点的预测几何信息时,具体用于执行以下至少一种:
获取目标预测树中位于当前待编码的点之前,且相邻的单个前序点的真实几何信息,并将前序点的真实几何信息,作为当前待编码的点的预测几何信息;
或者,获取目标预测树中位于当前待编码的点之前,且相邻的多个前序点的真实几何信息,并对多个前序点的真实几何信息进行融合,得到当前待编码的点的预测几何信息。
在一种实现方式中,处理单元1402用于获取目标预测树的几何编码模式时,具体用于:
获取默认设置信息,并根据默认设置信息为目标预测树设置默认的几何编码模式,默认设置信息是编码端与解码端协商设置的;
或者,为点云数据中各个点云组设置相同的几何编码模式,几何编码模式的模式信息被写入参数集或编码码流;
或者,为点云数据中各个点云组设置不同的几何编码模式,几何编码模式的模式信息被写入参数集或编码码流;
或者,根据点云数据的几何分布特性,确定目标预测树的几何编码模式;
或者,根据点云数据的距离统计特性,确定目标预测树的几何编码模式。
在一种实现方式中,处理单元1402用于根据所述点云数据的几何分布特性,确定所述目标预测树的几何编码模式时,具体用于:
根据所述点云数据中各点的真实几何信息,确定所述点云数据的点云包围盒的包围盒尺寸;
若所述点云数据的点云包围盒的包围盒尺寸,在x方向、y方向及z方向之间的差异值大于差异阈值,则根据差异值为目标预测树确定几何编码模式。
在一种实现方式中,处理单元1402用于根据所述点云数据的几何分布特性,确定所述目标预测树的几何编码模式时,具体用于:
根据目标点云组中各点的真实几何信息,确定目标点云组的点云包围盒的包围盒尺寸;
若目标点云组的包围盒尺寸,在x方向、y方向及z方向之间差异值大于差异阈值,则对目标点云组的单链预测树在x方向、y方向及z方向上,分别设置不同的几何编码模式。
请参见图20,图20是本申请实施例提供的一种点云解码装置的结构示意图,该点云解码装置可以设置于本申请实施例提供的计算机设备中,计算机设备可以是上述方法实施例中提及的编码设备;在一些实施例中,该点云解码装置可以是运行于计算机设备中的一个计算机程序(包括程序代码),该点云解码装置可以用于执行图18所示的方法实施例中的相应步骤。请参见图20,该点云解码装置可以包括如下单元:
获取单元1501,用于获取待解码的点云数据,点云数据包括多个待解码的点;待解码的点云数据是编码端根据待编码的点云数据中每个点云组的单链预测树,对点云数据中各个待编码的点进行编码得到,每个点云组的单链预测树是基于每个点云组的起始点构建的,每个点云组的起始点的数量均大于等于1;
处理单元1502,用于对点云数据进行起始点解析,得到点云数据的起始点的重建几何信息;
处理单元1502,还用于确定点云数据的几何解码模式,并根据几何解码模式和起始点的重建几何信息,对点云数据中各点进行几何预测处理,得到点云数据中各点的预测几何信息;
处理单元1502,还用于基于点云数据中各点的预测几何信息,对点云数据中各点进行几何解码,以确定点云数据中各点的重建几何信息。
在一种实现方式中,待解码的点云数据属于编码码流,编码码流中包括编码后的包围盒信息,编码码流是编码端对待编码的点云数据中各点进行编码得到的;处理单元1502用于对点云数据进行起始点解析,得到点云数据的起始点的重建几何信息,包括:
对编码后的包围盒信息进行解析处理,以得到点云数据的点云包围盒的各个顶点的顶点信息;
基于点云包围盒的各个顶点的顶点信息,确定点云数据的起始点的重建几何信息。
在一种实现方式中,待解码的点云数据属于编码码流,编码码流中包括编码后的点云数据的目标预测树中,起始点的起始点信息,编码码流是编码端对待编码的点云数据中各点进行编码得到的;目标预测树的起始点是指L个点云组中第一个点云组的第一起始点,L为大于或等于1的整数,L个点云组是编码端对点云数据进行分组得到的;
处理单元1502用于对点云数据进行起始点解析,得到点云数据的起始点的重建几何信息时,具体用于:
对编码后的点云数据的目标预测树中,起始点的起始点信息进行解析处理;
将解析结果作为点云数据的起始点的重建几何信息。
在一种实现方式中,待解码的点云数据属于编码码流,编码码流中包括编码后的各个单链预测树中第一起始点的起始点信息,编码码流是编码端对待编码的点云数据中各点进行编码得到的;一个单链预测树对应一个点云组,点云组是编码端对点云数据进行分组得到的;
处理单元1502用于对点云数据进行起始点解析,得到点云数据的起始点的重建几何信息时,具体用于:
对编码后的各个单链预测树中第一起始点的起始点信息,进行解析处理;
将针对各个单链预测树中第一起始点的起始点信息的解析结果,作为相应点云组的起始点的重建几何信息。
在一种实现方式中,编码码流中包括编码后的每个点云组的组信息;点云组的组信息至少包括:点云组所包含的点的数量以及点云组的组标识;
处理单元1502用于根据几何解码模式和起始点的重建几何信息,对点云数据中各点进行 几何预测处理,得到点云数据中各点的预测几何信息时,具体用于:
对编码后的每个点云组的组信息进行解析处理,得到每个点云组的预测组信息;
按照几何解码模式,并根据每个点云组的预测组信息,以及每个点云组的起始点的重建几何信息,确定每个点云组中各点的预测几何信息,以得到点云数据中各点的预测几何信息。
在一种实现方式中,点云数据中包括当前待解码点,当前待解码点是指点云数据中除起始点之外的待解码的点;处理单元1502用于基于几何解码模式对当前待解码点进行几何预测处理的过程,得到当前待解码点的预测几何信息的过程时,具体用于:
获取解码顺序中位于当前待解码点之前,且相邻的单个前序点的预测几何信息,并将前序点的预测几何信息,作为当前待解码点的预测几何信息;
或者,获取解码顺序中位于当前待解码点之前,且相邻的多个前序点的预测几何信息,并对多个前序点的预测几何信息进行融合,得到当前待解码点的预测几何信息;
其中,解码顺序是指:编码端对待编码的点云数据中各点进行编码的编码顺序。
在一种实现方式中,处理单元1502用于获取点云数据的几何解码模式时,具体用于以下至少一种:
获取默认设置信息,并根据默认设置信息为点云数据设置默认的几何解码模式,默认设置信息是编码端与解码端协商设置的;
或者,从参数集或编码码流中解析模式信息,并根据模式信息为点云数据设置几何解码信息;
或者,从参数集或编码码流中解析模式信息,并根据模式信息为点云数据中各个点云组设置不同的几何解码模式;点云组是编码端对点云数据分组得到的;
或者,根据点云数据的几何分布特性,确定点云数据的几何解码模式;
或者,根据点云数据的距离统计特性,确定点云数据的几何解码模式。
在一种实现方式中,编码码流中包括编码后的包围盒信息,编码码流是编码端对待编码的点云数据中各点进行编码得到的;处理单元1502用于根据点云数据的几何分布特性,确定点云数据的几何解码模式时,具体用于:
对编码的包围盒信息进行解析处理,以得到点云数据的点云包围盒的包围盒尺寸;
若点云数据的点云包围盒的包围盒尺寸,在x方向、y方向及z方向之间的差异值大于差异阈值,则根据差异值为点云数据确定几何编码模式。
在一种实现方式中,编码码流中包括编码后的各个点云组的包围盒信息,任一点云组为目标点云组,编码码流是编码端对待编码的点云数据中各点进行编码得到的;处理单元1502用于根据点云数据的几何分布特性,确定点云数据的几何解码模式时,具体用于:
对编码的目标点云组的包围盒信息进行解析处理,以得到目标点云组的点云包围盒的包围盒尺寸;
若目标点云组的包围盒尺寸,在x方向、y方向及z方向之间差异值大于差异阈值,则对目标点云组在x方向、y方向及z方向上,分别设置不同的几何解码模式。
图21示出了本申请一个示例性实施例提供的一种计算机设备的结构示意图。请参见图21,该计算机设备包括处理器1601、通信接口1602以及计算机可读存储介质1603。其中,处理器1601、通信接口1602以及计算机可读存储介质1603可通过总线或者其它方式连接。其中,通信接口1602用于接收和发送数据。计算机可读存储介质1603可以存储在计算机设备的存储器中,计算机可读存储介质1603用于存储计算机程序,计算机程序包括程序指令,处理器1601用于执行计算机可读存储介质1603存储的程序指令。处理器1601(或称CPU(Central Processing Unit,中央处理器))是计算机设备的计算核心以及控制核心,其适于实现一条或多条指令,具体适于加载并执行一条或多条指令从而实现相应方法流程或相应功能。
本申请实施例还提供了一种计算机可读存储介质(Memory),计算机可读存储介质是计算机设备中的记忆设备,用于存放程序和数据。可以理解的是,此处的计算机可读存储介质 既可以包括计算机设备中的内置存储介质,当然也可以包括计算机设备所支持的扩展存储介质。计算机可读存储介质提供存储空间,该存储空间存储了计算机设备的处理系统。并且,在该存储空间中还存放了适于被处理器1601加载并执行的一条或多条的指令,这些指令可以是一个或多个的计算机程序(包括程序代码)。需要说明的是,此处的计算机可读存储介质可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器;可选的,还可以是至少一个位于远离前述处理器的计算机可读存储介质。
在一个实施例中,该计算机可读存储介质中存储有一条或多条指令;由处理器1601加载并执行计算机可读存储介质中存放的一条或多条指令,以实现上述点云编码方法实施例中的相应步骤;具体实现中,计算机可读存储介质中的一条或多条指令由处理器1601加载并执行如下步骤:
获取待编码的点云数据,点云数据被划分为L个点云组,L为大于或等于1的整数,每个点云组包含多个待编码的点;
为每个点云组确定起始点,每个点云组的起始点的数量均大于等于1;
基于每个点云组的起始点构建每个点云组的单链预测树;
根据每个点云组的单链预测树,对点云数据中的各个待编码的点进行编码。
本申请实施例还提供一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。终端的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述点云编码方法或点云解码方法。

Claims (47)

  1. 一种点云编码方法,由编码设备执行,包括:
    获取待编码的点云数据,所述点云数据是以点为单位的集合,所述点云数据被划分为L个点云组,L为大于等于1的整数,每个点云组包含多个待编码的点;
    为所述每个点云组确定起始点,所述每个点云组的起始点的数量均大于等于1;
    基于所述每个点云组的起始点构建所述每个点云组的单链预测树;
    根据所述每个点云组的单链预测树,对所述点云数据中的各个待编码的点进行编码。
  2. 如权利要求1所述的方法,其中,所述点云组的起始点的确定方式,包括以下任一种或多种:
    从点云组的点云包围盒的多个顶点中,选取起始点;
    从点云组的一个或多个第一特殊点中选取起始点,所述第一特殊点是指所述点云组中几何距离大于距离阈值的点;
    按照点云组中待编码的点的排列顺序,选取起始点。
  3. 如权利要求2所述的方法,其中,所述点云组的起始点的确定方式包括:从点云组的点云包围盒的多个顶点中,选取起始点;
    所述L个点云组中的任一个点云组为目标点云组,为所述目标点云组选取起始点,包括:
    确定所述目标点云组的点云包围盒;其中,所述目标点云组的点云包围盒包括:涵盖所述目标点云组中所有点的最小长方体、最小立方体或最小多面体;
    从所述目标点云组的点云包围盒的多个顶点中,按照选取规则选择P1个起始点,P1大于等于1;
    其中,所述选取规则包括以下至少一种:随机选择,按各顶点之间的几何距离关系选取,以及沿预设方向选取。
  4. 如权利要求2所述的方法,其中,所述点云组的起始点的确定方式包括:从点云组的一个或多个第一特殊点中选取起始点;
    所述L个点云组中的任一个点云组为目标点云组,为所述目标点云组选取起始点,包括:
    从所述目标点云组所包含的多个待编码的点中,确定一个或多个第一特殊点,所述第一特殊点包括以下至少一种:所述目标点云组的极大值点、极小值点及中位点;
    从所述极大值点、所述极小值点及所述中位点中,选取P2个起始点,P2大于等于1。
  5. 如权利要求2所述的方法,其中,所述点云组的起始点的确定方式包括:按照点云组中待编码的点的排列顺序,选取起始点;
    所述L个点云组中的任一个点云组为目标点云组,为所述目标点云组选取起始点,包括:
    按照所述目标点云组中的各个待编码的点的排列顺序,确定一个或多个第二特殊点;所述第二特殊点包括以下至少一种:排列顺序中的最首点,以及排列顺序中的最末点;
    从所述一个或多个第二特殊点中,选取P3个起始点,P3大于等于1。
  6. 如权利要求1所述的方法,其中,所述L个点云组中的任一个点云组为目标点云组,为所述目标点云组选取起始点,包括:
    确定所述目标点云组的第一起始点;其中,所述第一起始点的确定方式包括以下任一种:基于所述目标点云组的点云包围盒的多个顶点确定的,或者,从所述目标点云组的一个或多个第一特殊点中确定的,或者,按照所述目标点云组中待编码的点的排列顺序确定的;
    基于所述第一起始点与所述目标点云组中各点之间的几何位置关系,从所述目标点云组中各点中选取起始点。
  7. 如权利要求1所述的方法,其中,所述L个点云组中包括第m个点云组和第m+1个点云组;所述第m个点云组已选取一个或多个起始点;为所述第m+1个点云组选取起始点,包括:
    从所述第m个点云组的一个或多个起始点中,按照筛选规则为所述第m+1个点云组选取起始点;
    其中,所述筛选规则包括以下任一种:随机选取,或者,选取所述第m个点云组的一个或多个起始点中优先级最低的起始点。
  8. 如权利要求1所述的方法,其中,所述L个点云组中的任一个点云组为目标点云组,所述目标点云组的起始点至少包括:第一起始点和第二起始点;基于所述第一起始点和所述第二起始点,构建所述目标点云组的单链预测树,包括:
    将所述目标点云组中除起始点外的其他点作为候选点,添加至备选点集合;
    基于所述备选点集合、所述第一起始点以及所述第二起始点,构建所述目标点云组的单链预测树;
    其中,所述单链预测树的起始点为所述第一起始点,终止点为所述第二起始点。
  9. 如权利要求8所述的方法,其中,所述第一起始点的优先级大于所述第二起始点的优先级;所述基于所述备选点集合、所述第一起始点以及所述第二起始点,构建所述目标点云组的单链预测树,包括:
    基于所述第一起始点和所述备选点集合,构建所述目标点云组的单链预测树的第一分支链路,基于所述第二起始点和所述备选点集合,构建所述目标点云组的单链预测树的第二分支链路;
    将优先级高的所述第一分支链路的最末点,与优先级低的所述第二分支链路的最末点进行连接,得到所述目标点云组的单链预测树。
  10. 如权利要求9所述的方法,其中,所述基于所述第一起始点和所述备选点集合,构建所述目标点云组的单链预测树的第一分支链路,基于所述第二起始点和所述备选点集合,构建所述目标点云组的单链预测树的第二分支链路,包括:
    以优先级高的所述第一起始点为搜索起点,从所述备选点集合中搜索与所述第一起始点之间的几何距离最近的第一候选点;将所述第一候选点链接至以所述第一起始点为最首点的第一分支链路,基于所述第一候选点更新所述备选点集合;
    以及,以优先级低的所述第二起始点为搜索起点,从更新后的备选点集合中搜索与所述第二起始点之间的几何距离最近的第二候选点;将所述第二候选点链接至以所述第二起始点为最首点的第二分支链路,基于所述第二候选点再次更新所述更新后的备选点集合;
    重复上述步骤,直至备选点集合为空集,得到所述目标点云组的单链预测树的第一分支链路和第二分支链路。
  11. 如权利要求8所述的方法,其中,所述第一起始点的优先级大于所述第二起始点的优先级;所述基于所述备选点集合、所述第一起始点以及所述第二起始点,构建所述目标点云组的单链预测树,包括:
    以所述第一起始点为搜索起点,从所述备选点集合中搜索到搜索起点和所述第二起始点之间的距离加权值最小的第一候选点;将所述第一候选点链接至搜索起点,且根据所述第一候选点更新所述备选点集合;
    以所述第一候选点作为新的搜索起点,从更新后的备选点集合中搜索到与搜索起点和所述第二起始点之间的距离最小的第二候选点;将所述第二候选点链接至所述新的搜索起点,根据所述第一候选点更新所述备选点集合;
    以所述第二候选点作为新的搜索起点,继续进行候选点搜索,直到备选点集合为空集;
    将最后搜索到的候选点与所述第二起始点连接,得到所述目标点云组的单链预测树。
  12. 如权利要求1所述的方法,其中,所述获取待编码的点云数据之后,还包括:
    对所述点云数据包括的多个待编码的点进行排序,得到点云序列;
    按照所述点云序列中各点的排列顺序,将相邻目标数量的点划分至一个点云组,以得到L个点云组;
    其中,在划分得到第L-1个点云组时,若所述点云序列中剩余未划分的点的数量小于所 述目标数量,则将所述剩余未划分的点添加至第L个点云组。
  13. 如权利要求1所述的方法,其中,所述获取待编码的点云数据之后,还包括:
    对所述点云数据包括的多个待编码的点进行排序,得到点云序列;
    按照所述点云序列中各点的排列顺序,将相邻目标数量的点划分至一个点云组,以得到L个点云组;
    其中,在划分得到第L个点云组时,若所述点云序列中剩余未划分的点的数量小于所述目标数量,则将所述剩余未划分的点添加至所述第L个点云组。
  14. 如权利要求1、11或12所述的方法,其中,所述根据所述每个点云组的单链预测树,对所述点云数据中的各个待编码的点进行编码,包括:
    按照所述L个点云组的分组顺序,依次连接所述每个点云组的单链预测树,得到所述点云数据的目标预测树;
    基于所述目标预测树对所述点云数据中的各个待编码的点进行编码,得到编码码流;
    其中,所述目标预测树的起始点为所述L个点云组中第一个点云组的第一起始点,所述目标预测树的终止点为所述L个点云组中第L个点云组的终止点。
  15. 如权利要求14所述的方法,其中,所述L个点云组中包括第j个点云组和第j+1个点云组,j=1,2,…,L-1;所述按照所述L个点云组的分组顺序,依次连接所述每个点云组的单链预测树,得到所述点云数据的目标预测树,包括:
    将所述第j个点云组的单链预测树的最末点,与所述第j+1个点云组的单链预测树的最首点相连,以得到所述点云数据的目标预测树。
  16. 如权利要求14所述的方法,其中,所述基于所述目标预测树对所述点云数据中的各个待编码的点进行编码,得到编码码流,包括:
    确定所述点云数据的点云包围盒的包围盒信息,对所述包围盒信息进行编码;
    以及,获取所述目标预测树的几何编码模式,根据所述几何编码模式对所述点云数据中各待编码的点进行编码;
    根据编码后的包围盒信息和编码后的点云数据,得到所述编码码流。
  17. 如权利要求14所述的方法,其中,所述基于所述目标预测树对所述点云数据中的各个待编码的点进行编码,得到编码码流,包括:
    对所述目标预测树中起始点的起始点信息进行编码;所述目标预测树的起始点是指所述L个点云组中第一个点云组的第一起始点;
    以及,获取所述目标预测树的几何编码模式,根据所述几何编码模式对所述点云数据中各待编码的点进行编码;
    根据编码后的所述目标预测树中起始点的起始点信息,以及编码后的点云数据,得到所述编码码流。
  18. 如权利要求14所述的方法,其中,所述点云数据中第j个点云组的单链预测树的终止点,作为第j+1个点云组的单链预测树的第一起始点,j=1,2,…,L-1;所述基于所述目标预测树对所述点云数据中的各个待编码的点进行编码,得到编码码流,包括:
    对各个单链预测树中第一起始点的起始点信息,以及各个点云组的组信息,进行编码;
    以及,获取所述目标预测树的几何编码模式,根据所述几何编码模式对所述点云数据中各待编码的点进行编码;
    根据编码后的各个单链预测树中第一起始点的起始点信息,编码后的各个点云组的组信息,以及编码后的点云数据,得到所述编码码流。
  19. 如权利要求16-18任一项所述的方法,其中,所述根据所述几何编码模式对所述点云数据中各待编码的点进行编码,包括:
    根据目标预测树的几何编码模式,对所述点云数据中各点进行几何预测处理,得到所述点云数据中各点的预测几何信息;
    基于所述点云数据中各点的预测几何信息和真实几何信息,确定所述点云数据中各点的 预测残差信息;
    对所述点云数据中各点的预测残差信息进行编码,得到编码后的点云数据。
  20. 如权利要求19所述的方法,其中,所述点云数据中包括当前待编码的点,所述当前待编码的点是指所述目标预测树中除起始点之外的任一个待编码的点;
    根据所述目标预测树的几何编码模式,对所述当前待编码的点进行几何预测处理,得到所述当前待编码的点的预测几何信息的过程,包括:
    获取所述目标预测树中位于所述当前待编码的点之前,且相邻的单个前序点的真实几何信息,将所述前序点的真实几何信息,作为所述当前待编码的点的预测几何信息。
  21. 如权利要求19所述的方法,其中,所述点云数据中包括当前待编码的点,所述当前待编码的点是指所述目标预测树中除起始点之外的任一个待编码的点;
    根据所述目标预测树的几何编码模式,对所述当前待编码的点进行几何预测处理,得到所述当前待编码的点的预测几何信息的过程,包括:
    获取所述目标预测树中位于所述当前待编码的点之前,且相邻的多个前序点的真实几何信息,对所述多个前序点的真实几何信息进行融合,得到所述当前待编码的点的预测几何信息。
  22. 如权利要求16-18任一项所述的方法,其中,所述获取所述目标预测树的几何编码模式,包括:
    获取默认设置信息,根据默认设置信息为所述目标预测树设置默认的几何编码模式,所述默认设置信息是编码端与解码端协商设置的。
  23. 如权利要求16-18任一项所述的方法,其中,所述获取所述目标预测树的几何编码模式,包括:
    为所述点云数据中各个点云组设置相同的几何编码模式,所述几何编码模式的模式信息被写入参数集或编码码流。
  24. 如权利要求16-18任一项所述的方法,其中,所述获取所述目标预测树的几何编码模式,包括:
    为所述点云数据中各个点云组设置不同的几何编码模式,所述几何编码模式的模式信息被写入参数集或编码码流。
  25. 如权利要求16-18任一项所述的方法,其中,所述获取所述目标预测树的几何编码模式,包括:
    根据所述点云数据的几何分布特性,确定所述目标预测树的几何编码模式。
  26. 如权利要求16-18任一项所述的方法,其中,所述获取所述目标预测树的几何编码模式,包括:
    根据所述点云数据的距离统计特性,确定所述目标预测树的几何编码模式。
  27. 如权利要求25所述的方法,其中,所述根据所述点云数据的几何分布特性,确定所述目标预测树的几何编码模式,包括:
    根据所述点云数据中各点的真实几何信息,确定所述点云数据的点云包围盒的包围盒尺寸;
    若所述点云数据的点云包围盒的包围盒尺寸,在x方向、y方向及z方向之间的差异值大于差异阈值,则根据所述差异值为所述目标预测树确定几何编码模式。
  28. 如权利要求25所述的方法,其中,所述点云数据中的任一点云组为目标点云组,所述根据所述点云数据的几何分布特性,确定所述目标预测树的几何编码模式,包括:
    根据所述目标点云组中各点的真实几何信息,确定所述目标点云组的点云包围盒的包围盒尺寸;
    若所述目标点云组的包围盒尺寸,在x方向、y方向及z方向之间差异值大于差异阈值,则对所述目标点云组的单链预测树在x方向、y方向及z方向上,分别设置不同的几何编码模式。
  29. 一种点云解码方法,由解码设备执行,包括:
    获取待解码的点云数据,所述点云数据包括多个待解码的点;所述待解码的点云数据是编码端根据待编码的点云数据中每个点云组的单链预测树,对点云数据中各个待编码的点进行编码得到,所述每个点云组的单链预测树是基于每个点云组的起始点构建的,所述每个点云组的起始点的数量均大于等于1;
    对所述点云数据进行起始点解析,得到所述点云数据的起始点的重建几何信息;
    确定所述点云数据的几何解码模式,根据所述几何解码模式和所述起始点的重建几何信息,对所述点云数据中各点进行几何预测处理,得到所述点云数据中各点的预测几何信息;
    基于所述点云数据中各点的预测几何信息,对所述点云数据中各点进行几何解码,以确定所述点云数据中各点的重建几何信息。
  30. 如权利要求29所述的方法,其中,所述待解码的点云数据属于编码码流,所述编码码流中包括编码后的包围盒信息,所述编码码流是所述编码端对所述待编码的点云数据中各点进行编码得到的;所述对所述点云数据进行起始点解析,得到所述点云数据的起始点的重建几何信息,包括:
    对所述编码后的包围盒信息进行解析处理,以得到所述点云数据的点云包围盒的各个顶点的顶点信息;
    基于所述点云包围盒的各个顶点的顶点信息,确定所述点云数据的起始点的重建几何信息。
  31. 如权利要求29所述的方法,其中,所述待解码的点云数据属于编码码流,所述编码码流中包括编码后的点云数据的目标预测树中,起始点的起始点信息,所述编码码流是所述编码端对待编码的点云数据中各点进行编码得到的;所述目标预测树的起始点是指:L个点云组中第一个点云组的第一起始点,L为大于或等于1的整数,所述L个点云组是所述编码端对点云数据进行分组得到的;
    所述对所述点云数据进行起始点解析,得到所述点云数据的起始点的重建几何信息,包括:
    对所述编码后的点云数据的目标预测树中,起始点的起始点信息进行解析处理;
    将解析结果作为所述点云数据的起始点的重建几何信息。
  32. 如权利要求29所述的方法,其中,所述待解码的点云数据属于编码码流,所述编码码流中包括编码后的各个单链预测树中第一起始点的起始点信息,所述编码码流是所述编码端对待编码的点云数据中各点进行编码得到的;一个单链预测树对应一个点云组,点云组是编码端对点云数据进行分组得到的;
    所述对所述点云数据进行起始点解析,得到所述点云数据的起始点的重建几何信息,包括:
    对所述编码后的各个单链预测树中第一起始点的起始点信息,进行解析处理;
    将针对所述各个单链预测树中第一起始点的起始点信息的解析结果,作为相应点云组的起始点的重建几何信息。
  33. 如权利要求32所述的方法,其中,所述编码码流中包括编码后的每个点云组的组信息;点云组的组信息至少包括:点云组所包含的点的数量以及点云组的组标识;
    所述根据所述几何解码模式和所述起始点的重建几何信息,对所述点云数据中各点进行几何预测处理,得到所述点云数据中各点的预测几何信息,包括:
    对所述编码后的每个点云组的组信息进行解析处理,得到所述每个点云组的预测组信息;
    按照所述几何解码模式,根据所述每个点云组的预测组信息,以及所述每个点云组的起始点的重建几何信息,确定所述每个点云组中各点的预测几何信息,以得到所述点云数据中各点的预测几何信息。
  34. 如权利要求29所述的方法,其中,所述点云数据中包括当前待解码点,所述当前待解码点是指所述点云数据中除起始点之外的待解码的点;基于所述几何解码模式对所述当前待 解码点进行几何预测处理的过程,得到所述当前待解码点的预测几何信息的过程,包括:
    获取解码顺序中位于所述当前待解码点之前,且相邻的单个前序点的预测几何信息,将所述前序点的预测几何信息,作为所述当前待解码点的预测几何信息;
    其中,所述解码顺序是指:编码端对待编码的点云数据中各点进行编码的编码顺序。
  35. 如权利要求29所述的方法,其中,所述点云数据中包括当前待解码点,所述当前待解码点是指所述点云数据中除起始点之外的待解码的点;基于所述几何解码模式对所述当前待解码点进行几何预测处理的过程,得到所述当前待解码点的预测几何信息的过程,包括:
    获取解码顺序中位于所述当前待解码点之前,且相邻的多个前序点的预测几何信息,对所述多个前序点的预测几何信息进行融合,得到所述当前待解码点的预测几何信息;
    其中,所述解码顺序是指:编码端对待编码的点云数据中各点进行编码的编码顺序。
  36. 如权利要求29所述的方法,其中,所述确定所述点云数据的几何解码模式,包括:
    获取默认设置信息,根据所述默认设置信息为所述点云数据设置默认的几何解码模式,所述默认设置信息是编码端与解码端协商设置的。
  37. 如权利要求29所述的方法,其中,所述确定所述点云数据的几何解码模式,包括:
    从参数集或编码码流中解析模式信息,根据所述模式信息为所述点云数据设置几何解码信息。
  38. 如权利要求29所述的方法,其中,所述确定所述点云数据的几何解码模式,包括:
    从参数集或编码码流中解析模式信息,根据所述模式信息为所述点云数据中各个点云组设置不同的几何解码模式;点云组是编码端对点云数据分组得到的。
  39. 如权利要求29所述的方法,其中,所述确定所述点云数据的几何解码模式,包括:
    根据所述点云数据的几何分布特性,确定所述点云数据的几何解码模式。
  40. 如权利要求29所述的方法,其中,所述确定所述点云数据的几何解码模式,包括:
    根据所述点云数据的距离统计特性,确定所述点云数据的几何解码模式。
  41. 如权利要求39所述的方法,其中,编码码流中包括编码后的包围盒信息,所述编码码流是所述编码端对待编码的点云数据中各点进行编码得到的;所述根据所述点云数据的几何分布特性,确定所述点云数据的几何解码模式,包括:
    对所述编码的包围盒信息进行解析处理,以得到所述点云数据的点云包围盒的包围盒尺寸;
    若所述点云数据的点云包围盒的包围盒尺寸,在x方向、y方向及z方向之间的差异值大于差异阈值,则根据所述差异值为所述点云数据确定几何编码模式。
  42. 如权利要求39所述的方法,其中,编码码流中包括编码后的各个点云组的包围盒信息,任一点云组为目标点云组,所述编码码流是所述编码端对待编码的点云数据中各点进行编码得到的;所述根据所述点云数据的几何分布特性,确定所述点云数据的几何解码模式,包括:
    对编码的目标点云组的包围盒信息进行解析处理,以得到所述目标点云组的点云包围盒的包围盒尺寸;
    若所述目标点云组的包围盒尺寸,在x方向、y方向及z方向之间差异值大于差异阈值,则对所述目标点云组在x方向、y方向及z方向上,分别设置不同的几何解码模式。
  43. 一种点云编码装置,配置于编码设备中,包括:
    获取单元,用于获取待编码的点云数据,所述点云数据是以点为单位的集合,所述点云数据被划分为L个点云组,L为大于等于1的整数,每个点云组包含多个待编码的点;
    处理单元,用于为所述每个点云组确定起始点,所述每个点云组的起始点的数量均大于等于1;
    所述处理单元,还用于基于所述每个点云组的起始点构建所述每个点云组的单链预测树;
    所述处理单元,还用于根据所述每个点云组的单链预测树,对所述点云数据中的各个待编码的点进行编码。
  44. 一种点云解码装置,配置于解码设备中,包括:
    获取单元,用于获取待解码的点云数据,所述点云数据包括多个待解码的点;所述待解码的点云数据是编码端根据点云数据中每个点云组的单链预测树,对点云数据中各个待编码的点进行编码得到,所述每个点云组的单链预测树是基于每个点云组的起始点构建的,所述点云组的起始点的数量均大于1;
    处理单元,用于对所述点云数据进行起始点解析,得到所述点云数据的起始点的重建几何信息;
    所述处理单元,还用于确定所述点云数据的几何解码模式,根据所述几何解码模式和所述起始点的重建几何信息,对所述点云数据中各点进行几何预测处理,得到所述点云数据中各点的预测几何信息;
    所述处理单元,还用于基于所述点云数据中各点的预测几何信息,对所述点云数据中各点进行几何解码,以确定所述点云数据中各点的重建几何信息。
  45. 一种计算机设备,所述计算机设备包括:
    处理器,适于实现计算机程序;
    计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序适于由所述处理器加载并执行如权利要求1至28任一项所述的点云编码方法,或者如权利要求29至42任一项所述的点云解码方法。
  46. 一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序适于由处理器加载并执行如权利要求1至28任一项所述的点云编码方法,或者如权利要求29至42任一项所述的点云解码方法。
  47. 一种计算机程序产品,所述计算机程序产品包括计算机指令,所述计算机指令被处理器执行时实现如权利要求1至28任一项所述的点云编码方法,或者如权利要求29至42任一项所述的点云解码方法。
PCT/CN2023/079143 2022-06-17 2023-03-01 一种点云编码方法、点云解码方法及相关设备 WO2023241108A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202210690211.7 2022-06-17
CN202210690211.7A CN115102935B (zh) 2022-06-17 2022-06-17 一种点云编码方法、点云解码方法及相关设备

Publications (1)

Publication Number Publication Date
WO2023241108A1 true WO2023241108A1 (zh) 2023-12-21

Family

ID=83291053

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2023/079143 WO2023241108A1 (zh) 2022-06-17 2023-03-01 一种点云编码方法、点云解码方法及相关设备

Country Status (2)

Country Link
CN (2) CN115102935B (zh)
WO (1) WO2023241108A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115102935B (zh) * 2022-06-17 2024-02-09 腾讯科技(深圳)有限公司 一种点云编码方法、点云解码方法及相关设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021182937A1 (ko) * 2020-03-11 2021-09-16 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2022015006A1 (ko) * 2020-07-13 2022-01-20 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2022025552A1 (ko) * 2020-07-31 2022-02-03 엘지전자 주식회사 포인트 클라우드 데이터 전송 장치, 포인트 클라우드 데이터 전송 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
CN114598892A (zh) * 2020-12-07 2022-06-07 腾讯科技(深圳)有限公司 点云数据编码方法、解码方法、装置、设备及存储介质
CN115102935A (zh) * 2022-06-17 2022-09-23 腾讯科技(深圳)有限公司 一种点云编码方法、点云解码方法及相关设备

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019068259A1 (en) * 2017-10-02 2019-04-11 Huawei Technologies Co., Ltd. POINT CLOUD CODING
KR20220029595A (ko) * 2019-07-03 2022-03-08 광동 오포 모바일 텔레커뮤니케이션즈 코포레이션 리미티드 포인트 클라우드 인코딩과 디코딩 방법, 인코더, 디코더 및 컴퓨터 저장 매체
JPWO2021070952A1 (zh) * 2019-10-09 2021-04-15
CN114598891B (zh) * 2020-12-07 2023-05-26 腾讯科技(深圳)有限公司 点云数据编码方法、解码方法、点云数据处理方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021182937A1 (ko) * 2020-03-11 2021-09-16 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2022015006A1 (ko) * 2020-07-13 2022-01-20 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2022025552A1 (ko) * 2020-07-31 2022-02-03 엘지전자 주식회사 포인트 클라우드 데이터 전송 장치, 포인트 클라우드 데이터 전송 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
CN114598892A (zh) * 2020-12-07 2022-06-07 腾讯科技(深圳)有限公司 点云数据编码方法、解码方法、装置、设备及存储介质
CN115102935A (zh) * 2022-06-17 2022-09-23 腾讯科技(深圳)有限公司 一种点云编码方法、点云解码方法及相关设备

Also Published As

Publication number Publication date
CN115102935A (zh) 2022-09-23
CN115102935B (zh) 2024-02-09
CN117857516A (zh) 2024-04-09

Similar Documents

Publication Publication Date Title
WO2020186548A1 (zh) 点云编码和解码的方法、编码设备和解码设备
CN106776963B (zh) 轻量化的bim大数据在线可视化方法和系统
JP2022521680A (ja) ポイントクラウドのジオメトリ復号及び符号化のための暗示的な四分木又は二分木ジオメトリ分割
US11936846B2 (en) Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device
CN112287138B (zh) 一种城市信息模型的组织调度方法、装置和设备
WO2022121648A1 (zh) 点云数据编码方法、解码方法、设备、介质及程序产品
CN115379191B (zh) 一种点云解码方法、点云编码方法及相关设备
WO2023241108A1 (zh) 一种点云编码方法、点云解码方法及相关设备
WO2023241107A1 (zh) 点云处理方法、装置及计算机设备、存储介质
WO2022121649A1 (zh) 点云数据编码方法、解码方法、点云数据处理方法及装置、电子设备、计算机程序产品及计算机可读存储介质
WO2024037091A1 (zh) 一种点云处理方法、装置及计算机设备、存储介质
CN112256652B (zh) 一种三维点云属性压缩方法、系统及终端
WO2024124901A1 (zh) 点云处理方法、装置、设备、介质和程序产品
CN115100302A (zh) 点云处理方法、装置、设备以及介质
TWI815339B (zh) 基於點雲屬性預測的解碼方法、編碼方法、解碼器及編碼器、電子設備以及電腦可讀存儲介質
CN114116925A (zh) 一种时空数据的查询方法及相关装置
WO2024145910A1 (zh) 编解码方法、码流、编码器、解码器以及存储介质
WO2023023914A1 (zh) 帧内预测、编解码方法及装置、编解码器、设备、介质
US20240087176A1 (en) Point cloud decoding method and apparatus, point cloud encoding method and apparatus, computer device, computer-readable storage medium
CN115914650A (zh) 点云编解码方法、编码器、解码器及存储介质
WO2022188582A1 (zh) 点云中邻居点的选择方法、装置及编解码器
US20240037799A1 (en) Point cloud coding/decoding method and apparatus, device and storage medium
US20240135597A1 (en) Enhanced Edge Neighborhood for Coding Vertex Information
US20240233197A9 (en) Enhanced Edge Neighborhood for Coding Vertex Information
WO2023213074A1 (zh) 点云处理方法、装置、设备、存储介质及产品

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 23822680

Country of ref document: EP

Kind code of ref document: A1