Method and device for encoding and decoding three-dimensional data points

By performing multiple mixed divisions of octave, quad-tree and binary trees under the column coordinate system until the range values ​​in each direction reach the minimum accuracy, the problem of low encoding efficiency of three-dimensional data points in the prior art is solved, and the More efficient encoding and decoding process.

CN112384955BActive Publication Date: 2025-02-18SZ DJI TECH CO LTD +1
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN201980039756.8
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2019-06-11
Publication Date
2025-02-18
Estimated Expiration
2039-06-11

AI Technical Summary

Technical Problem

The encoding efficiency of the three-dimensional data point encoding method in the prior art is not high, resulting in a large storage and transmission bandwidth occupancy.

Method used

By determining the maximum range value of the initial block of the three-dimensional data point under the column coordinate system, and performing multiple mixed divisions of oct, quad and binary trees until the range value in each direction reaches the minimum accuracy, to reduce the number of divisions and improve the encoding and decoding efficiency.

Benefits of technology

By reducing the number of divisions, the length of the coded code stream is reduced, the encoding efficiency and compression efficiency are improved, and the problem of low encoding efficiency in the prior art is effectively solved.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN112384955B_ABST
    Figure CN112384955B_ABST
Patent Text Reader

Abstract

The embodiment of the present invention provides a method and device for encoding and decoding three-dimensional data points, which determines the maximum value of the range value of the initial block of the three-dimensional data points to be encoded in the radial distance direction, the azimuth direction and the height direction according to the position coordinates of the three-dimensional data points to be encoded, performs at least one octree division on the initial block to obtain multiple first-class sub-blocks, performs at least one quadtree division and / or binary tree division on at least one first-class sub-block in the first-class sub-blocks, and encodes the three-dimensional data points to be encoded according to the division result of the initial block. Since the range values ​​in the three directions of the initial block constructed to divide the distribution of the three-dimensional data points in space are different, the number of divisions in which the range values ​​in the three directions reach the minimum precision is different during the division process. When the direction reaches the minimum precision, quadtree division or binary tree division is then used for division until the range values ​​in the three directions reach the minimum precision, thereby reducing the number of divisions and improving the encoding and decoding efficiency.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The embodiments of the present invention relate to the field of image processing technology, and in particular to a method and device for encoding three-dimensional data points. Background Art

[0002] Point cloud is a representation of a 3D object or scene. It is composed of a set of discrete 3D data points that are irregularly distributed in space and express the spatial structure and surface properties of the 3D object or scene. In order to accurately reflect the information in space, the number of discrete 3D data points required is huge. In order to reduce the space occupied by 3D data point storage and the bandwidth occupied during transmission, the 3D data points need to be encoded and compressed.

[0003] In the prior art, the position coordinates of each three-dimensional data point are quantized according to the difference between the maximum and minimum values ​​of the position coordinates of the three-dimensional data point in the three axes and the quantization accuracy determined according to the input parameters, and the position coordinates of the input three-dimensional data point are converted into integer coordinates greater than or equal to zero. The maximum value of the maximum values ​​of the position coordinates in the three directions is selected, and the side length of the cube when initializing the octree partitioning is determined according to the selected maximum value. The side length must be an integer power of 2 and is greater than or equal to and closest to the selected maximum value. After the side length of the cube in the octree partitioning process is initialized, the octree partitioning encoding is performed, and the three-dimensional data point is encoded according to the partitioning result of the cube.

[0004] However, the encoding efficiency is not high using the encoding method in the prior art. Summary of the invention

[0005] The embodiment of the present invention provides a method and device for encoding and decoding three-dimensional data points to improve encoding and decoding efficiency.

[0006] In a first aspect, an embodiment of the present invention provides a method for encoding three-dimensional data points, comprising:

[0007] Determine the maximum value of the range value of the initial block of the three-dimensional data points to be encoded in the radial distance direction, the azimuth direction and the height direction according to the position coordinates of the three-dimensional data points to be encoded in the cylindrical coordinate system;

[0008] Performing at least one octree partition on the initial block to obtain a plurality of first-category sub-blocks;

[0009] Performing at least one quadtree partitioning and / or binary tree partitioning on at least one first-category sub-block among the first-category sub-blocks;

[0010] The three-dimensional data points to be encoded are encoded according to the division result of the initial block.

[0011] In a second aspect, an embodiment of the present invention provides a three-dimensional data point decoding method, comprising:

[0012] Get the code stream;

[0013] Determine the maximum value of the range value of the initial block in the radial distance direction, the azimuth direction and the height direction according to the code stream;

[0014] constructing an initial block according to the maximum value of the range values ​​of the initial block in the radial distance direction, the azimuth direction and the height direction;

[0015] Performing at least one octree division on the initial block to obtain a plurality of first-category sub-blocks;

[0016] Performing at least one quadtree and / or binary tree division on at least one first-category sub-block among the first-category sub-blocks;

[0017] According to the positions of the sub-blocks obtained by the division, the position coordinates of the three-dimensional data points to be decoded are obtained.

[0018] In a third aspect, an embodiment of the present invention provides a three-dimensional data point encoding device, including:

[0019] A processor, configured to determine the maximum value of the range value of the initial block of the three-dimensional data points to be encoded in the radial distance direction, the azimuth direction and the height direction according to the position coordinates of the three-dimensional data points to be encoded in the cylindrical coordinate system;

[0020] A processor, configured to perform at least one octree partitioning on the initial block to obtain a plurality of first-category sub-blocks;

[0021] a processor, configured to perform at least one quadtree partitioning and / or binary tree partitioning on at least one first-category sub-block in the first-category sub-blocks;

[0022] A processor, configured to encode the three-dimensional data points to be encoded according to the division result of the initial block;

[0023] The memory is used to store the encoded bit stream.

[0024] In a fourth aspect, an embodiment of the present invention provides a three-dimensional data point decoding device, comprising:

[0025] A processor, used to obtain a bit stream;

[0026] The processor is further used to determine the maximum value of the range value of the initial block in the radial distance direction, the azimuth direction and the height direction according to the code stream;

[0027] The processor is further configured to construct an initial block according to the maximum value of the range values ​​of the initial block in the radial distance direction, the azimuth direction and the altitude direction;

[0028] The processor is further configured to perform at least one octree partition on the initial block to obtain a plurality of first-category sub-blocks;

[0029] The processor is further configured to perform at least one quadtree and / or binary tree partitioning on at least one first-category sub-block in the first-category sub-blocks;

[0030] The processor is also used to obtain the position coordinates of the three-dimensional data points to be decoded according to the positions of the sub-blocks obtained by division;

[0031] The memory is used to store the position coordinates of the three-dimensional data points to be decoded.

[0032] In a fifth aspect, an embodiment of the present invention provides an encoder, comprising: a memory, a processor, and a program stored in the memory and executable on the processor, wherein the processor implements the three-dimensional data point encoding method described in the first aspect when executing the program.

[0033] In a sixth aspect, an embodiment of the present invention provides a decoder, comprising: a memory, a processor, and a program stored in the memory and executable on the processor, wherein the processor implements the three-dimensional data point decoding method described in the second aspect when executing the program.

[0034] The coding and decoding method and device of the three-dimensional data point provided by the embodiment of the present invention determines the maximum value of the range value of the initial block of the three-dimensional data point to be coded in the radial distance direction, the azimuth direction and the height direction according to the position coordinates of the three-dimensional data point to be coded in the cylindrical coordinate system, performs at least one octree division on the initial block to obtain multiple first-class sub-blocks, performs at least one quadtree division and / or binary tree division on at least one first-class sub-block in the first-class sub-block, and encodes the three-dimensional data point to be coded according to the division result of the initial block. Since the range values ​​in the three directions of the initial block constructed for dividing the distribution of the spatial three-dimensional data points are different, the number of divisions in which the range values ​​in the three directions reach the minimum precision is different during the division process. When the direction reaches the minimum precision, quadtree division or binary tree division is then used for division until the range values ​​in the three directions reach the minimum precision, thereby reducing the number of divisions and improving the coding and decoding efficiency. BRIEF DESCRIPTION OF THE DRAWINGS

[0035] In order to more clearly illustrate the technical solutions of the embodiments of the present invention, the following briefly introduces the drawings required for use in the embodiments or the description of the prior art. Obviously, the drawings described below are some embodiments of the present invention. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying any creative work.

[0036] Figure 1A schematic diagram of a cylindrical coordinate system provided by an embodiment of the present invention;

[0037] Figure 2 A schematic flow chart of a method for encoding three-dimensional data points is provided for an embodiment of the present invention;

[0038] Figure 3a A schematic diagram of a cylinder is provided for an embodiment of the present invention;

[0039] Figure 3b A schematic diagram of a fan-shaped column is provided for an embodiment of the present invention;

[0040] Figure 4 A schematic diagram of a division process provided by an embodiment of the present invention;

[0041] Figure 5 A schematic flow chart of a method for encoding three-dimensional data points is provided for an embodiment of the present invention;

[0042] Figure 6 A schematic flow chart of a method for encoding three-dimensional data points is provided for an embodiment of the present invention;

[0043] Figure 7 A schematic flow chart of a method for encoding three-dimensional data points is provided for an embodiment of the present invention;

[0044] Figure 8 A schematic flow chart of a method for encoding three-dimensional data points is provided for an embodiment of the present invention;

[0045] Fig. 9 A schematic flow chart of a method for decoding a three-dimensional data point is provided for an embodiment of the present invention;

[0046] Fig.10 A schematic diagram of the structure of a three-dimensional data point encoding device provided by an embodiment of the present invention;

[0047] Fig.11 A schematic structural diagram of a three-dimensional data point decoding device provided by an embodiment of the present invention. DETAILED DESCRIPTION

[0048] In order to make the purpose, technical solution and advantages of the embodiments of the present invention clearer, the technical solution in the embodiments of the present invention will be clearly and completely described below in conjunction with the drawings in the embodiments of the present invention. Obviously, the described embodiments are part of the embodiments of the present invention, not all of the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of the present invention.

[0049] It should be noted that when a component is said to be "fixed to" another component, it can be directly on the other component or there can be a central component. When a component is said to be "connected to" another component, it can be directly connected to the other component or there can be a central component at the same time.

[0050] Unless otherwise defined, all technical and scientific terms used herein have the same meaning as those commonly understood by those skilled in the art of the present invention. The terms used herein in the specification of the present invention are only for the purpose of describing specific embodiments and are not intended to limit the present invention. The term "and / or" used herein includes any and all combinations of one or more related listed items.

[0051] Some embodiments of the present invention are described in detail below in conjunction with the accompanying drawings. In the absence of conflict, the following embodiments and features in the embodiments can be combined with each other.

[0052] The embodiments of the present invention are mainly aimed at the scenario where the value ranges of the position coordinates of three-dimensional data points of certain point clouds are different in three directions.

[0053] The embodiment of the present application encodes or decodes the position coordinates of the three-dimensional data points of the point cloud in the cylindrical coordinate system, wherein the schematic diagram of the cylindrical coordinate system is as follows: Figure 1 As shown, Figure 1 Schematic diagram of a cylindrical coordinate system provided by an embodiment of the present invention, in which radial distance, height and azimuth are used to describe the position coordinates of a three-dimensional data point of a point cloud. Assume that the position coordinates of point P in the cylindrical coordinate system are (r, , z), then the radial distance r ≥ 0 represents the straight-line distance from point P to the z-axis, and the azimuth It represents the angle between the projection line of the line from the origin to point P on the xoy plane and the positive semi-axis of the x-axis. The height z is equal to the z in the rectangular coordinate system.

[0054] In various embodiments of the present invention, the minimum precision in each direction refers to the range value in each direction of the sub-block obtained after the division. The minimum precision in each direction can be preset before encoding, and the minimum precision in each direction can be the same or different.

[0055] In each embodiment of the present invention, for the convenience of description, the sub-blocks obtained by performing any octree division are called first-category sub-blocks, the sub-blocks obtained by performing any quadtree division are called second-category sub-blocks, and the sub-blocks obtained by performing any binary tree division are called third-category sub-blocks.

[0056] The three directions of the three-dimensional data points described in the embodiments of the present invention refer to the radial distance direction, the azimuth direction and the height direction; the three directions of the initial blocks described also refer to the radial distance direction, the azimuth direction and the height direction.

[0057] Figure 2 A schematic diagram of a flow chart of a method for encoding a three-dimensional data point is provided for an embodiment of the present invention. Figure 2 As shown, the method of this embodiment is as follows:

[0058] S101: Determine the maximum value of the range value of the initial block of the three-dimensional data points to be encoded in the radial distance direction, the azimuth direction and the height direction according to the position coordinates of the three-dimensional data points to be encoded in the cylindrical coordinate system.

[0059] A possible implementation:

[0060] The position coordinates of the three-dimensional data points to be encoded are quantized; based on the quantized position coordinates of the three-dimensional data points, the minimum and maximum values ​​of the position coordinates of the three-dimensional data points in three directions are obtained, and based on the minimum and maximum values ​​in the three directions, the maximum value of the range values ​​of the position coordinates of the three-dimensional data points in the three directions is determined; based on the maximum value of the range values ​​of the position coordinates of the three-dimensional data points in the three directions, the maximum value of the range values ​​of the initial block of the three-dimensional data points to be encoded in the three directions is determined.

[0061] Optionally, in each direction, the value closest to the maximum value of the range value among the values ​​raised to the integer power of 2 that is greater than or equal to the maximum value of the range value of the position coordinates of the three-dimensional data point is obtained as the maximum value of the range value of the initial block in the direction.

[0062] Among them, one possible implementation is:

[0063] Optionally, quantizing the position coordinates of the three-dimensional data point to be encoded in the cylindrical coordinate system includes at least one of the following operations:

[0064] quantizing the radial distance of the position coordinates of the three-dimensional data according to a quantization step in the radial distance direction;

[0065] quantizing the azimuth of the position coordinates of the three-dimensional data according to a quantization step in the azimuth direction;

[0066] The height of the position coordinates of the three-dimensional data is quantized according to a quantization step size in the height direction.

[0067] Optionally, according to Quantifying the radial distance of the position coordinates of the three-dimensional data points; and / or, according to Quantify the azimuth of the position coordinates of the three-dimensional data points; and / or, according to Quantify the height of the position coordinates of the three-dimensional data point; wherein, r i Represents the value of the radial distance of the i-th 3D data point before quantization, r Δ Indicates the quantization step size in the radial distance direction, Represents the quantized value of the radial distance of the i-th three-dimensional data point, Represents the value of the azimuth angle of the i-th three-dimensional data point before quantization, Indicates the quantization step size of the azimuth direction, Represents the quantized value of the azimuth of the i-th three-dimensional data point, z i represents the value of the height of the i-th three-dimensional data point before quantization, z Δ Indicates the quantization step size in the height direction, Represents the highly quantized value of the i-th three-dimensional data point. Round(x) indicates that the Round function returns a value that is rounded to the specified number of decimal places.

[0068] With this quantization approach, the initial block may be a fan-shaped column.

[0069] Another possible implementation:

[0070] Quantizing the position coordinates of the three-dimensional data point to be encoded in the cylindrical coordinate system includes at least one of the following operations:

[0071] quantizing the radial distance of the position coordinates according to the quantization step size in the radial distance direction and the minimum value in the radial distance direction;

[0072] quantizing the azimuth of the position coordinates according to the quantization step size in the azimuth direction and the minimum value in the azimuth direction;

[0073] quantizing the height of the position coordinates according to the quantization step size in the height direction and the minimum value in the height direction;

[0074] Optionally, according to quantify the radial distance of the position coordinates; and / or, according to Quantify the azimuth of the position coordinates; and / or, according to Quantify the height of the position coordinates; where r i Represents the value of the radial distance of the i-th 3D data point before quantization, r min Represents the minimum value of the three-dimensional data point before quantization in the radial distance direction, r Δ Indicates the quantization step size in the radial distance direction, Represents the quantized value of the radial distance of the i-th three-dimensional data point, Represents the value of the azimuth angle of the i-th three-dimensional data point before quantization, Represents the minimum value of the three-dimensional data point before quantization in the azimuth direction, Indicates the quantization step size of the azimuth direction, Represents the quantized value of the azimuth of the i-th three-dimensional data point, z i represents the value of the height of the i-th three-dimensional data point before quantization, z min Represents the minimum value of all three-dimensional data points before quantization in the height direction, z Δ Indicates the quantization step size in the height direction, Represents the highly quantized value of the i-th three-dimensional data point. Round(x) indicates that the Round function returns a value that is rounded to the specified number of decimal places.

[0075] With this quantization method, the minimum value in each direction is 0, and the initial block may be a cylinder or a fan. Figure 3a As shown, the fan-shaped column is Figure 3b shown.

[0076] Optionally, the initial block can cover all or part of the three-dimensional data points of the point cloud.

[0077] Optionally, the initial block is a part of a cylinder, for example, it can be a sector-shaped cylinder or a cylinder.

[0078] Optionally, the center of the column is the location of a three-dimensional data point acquisition device, wherein the three-dimensional data point acquisition device may be a laser radar, an optoelectronic radar or a laser scanner.

[0079] S102: Perform at least one octree partition on the initial block to obtain a plurality of first-category sub-blocks.

[0080] The initial block is divided into octrees at least once, and eight sub-blocks are obtained each time. Each division is performed on the sub-block containing the position coordinates of the three-dimensional data points obtained in the previous division, until the range value of one direction or two directions of the sub-block obtained by the division reaches the minimum precision.

[0081] Optionally, octree division may be performed according to the coordinates of the center points of the first type of sub-blocks obtained in the previous division.

[0082] S103: Perform at least one quadtree division and / or binary tree division on at least one first-category sub-block in the first-category sub-blocks.

[0083] The range values ​​of the three directions of the initial block are different, and the division methods are also different, including but not limited to the following possible situations:

[0084] One possible situation is: when the maximum values ​​of the range values ​​of the initial block in the three directions are not equal, after the octree division is completed, quadtree division and binary tree division are also performed.

[0085] Another possible situation is that: the maximum values ​​of the range values ​​in two directions of the initial block are equal, and the maximum values ​​of the equal range values ​​are greater than the maximum value of the range value in another direction, then after the octree division is completed, only the quadtree division is performed and then ends.

[0086] Another possible situation is that: the maximum values ​​of the range values ​​in two directions of the initial block are equal, and the maximum values ​​of the equal range values ​​are smaller than the maximum value of the range value in another direction, then after the octree division is completed, only the binary tree division is performed and then ends.

[0087] S104: Encoding the three-dimensional data points to be encoded according to the division result of the initial block.

[0088] Optionally, the method further includes: encoding the number of three-dimensional data points in a sub-block containing the three-dimensional data points.

[0089] When a sub-block contains one three-dimensional data point, it is represented by encoding 0, and when a sub-block contains N three-dimensional data points, it is represented by encoding 1 first and then encoding N-1.

[0090] Optionally, the binary code stream describing the initial block division result is sent to the arithmetic coding engine for arithmetic coding; then the number of corresponding three-dimensional data points in each sub-block is encoded, and the binarized code stream is sent to the arithmetic coding engine for arithmetic coding, thereby completing the encoding of the position coordinates.

[0091] In this embodiment, the maximum value of the range value of the initial block of the three-dimensional data point to be encoded in the radial distance direction, the azimuth direction and the height direction is determined according to the position coordinates of the three-dimensional data point to be encoded, the initial block is divided into an octree at least once to obtain multiple first-class sub-blocks, at least one of the first-class sub-blocks is divided into a quadtree and / or a binary tree at least once, and the three-dimensional data point to be encoded is encoded according to the division result of the initial block. Since the range values ​​in the three directions of the initial block constructed to divide the distribution of the three-dimensional data points in space are different, the number of divisions in which the range values ​​in the three directions reach the minimum precision is different during the division process. When the direction reaches the minimum precision, the quadtree division or the binary tree division is then used for division until the range values ​​in the three directions reach the minimum precision, thereby reducing the number of divisions and improving the encoding and decoding efficiency.

[0092] In the above embodiment, a schematic diagram of the division of an octree can be as follows: Figure 3b As shown, you can follow Figure 4 The order shown is divided layer by layer.

[0093] Figure 5 A schematic diagram of a flow chart of a method for encoding a three-dimensional data point is provided for an embodiment of the present invention. Figure 5 is Figure 2 On the basis of the embodiment shown, when the maximum values ​​of the range values ​​in the three directions of the initial block are not equal, a possible implementation of S103 is described, and the method of this embodiment is as follows:

[0094] S1031a: Perform at least one quadtree division on at least one first-category sub-block in the first-category sub-block to obtain multiple second-category sub-blocks, until the range values ​​of the second-category sub-blocks in two directions reach minimum precision.

[0095] A possible implementation:

[0096] Determine a first-category target sub-block in the first-category sub-block. Optionally, the first-category target sub-block may refer to a sub-block in the first-category sub-block whose range value in one direction reaches the minimum precision and contains three-dimensional data points. Perform at least one quadtree partition on the first-category target sub-block.

[0097] Specifically, the first-category target sub-block is divided into quadtrees at least once, and four second-category sub-blocks are obtained each time. Each division is performed on the second-category sub-block containing the position coordinates of the three-dimensional data points obtained in the previous division, until the range values ​​of the second-category sub-blocks in two directions obtained by the division reach the minimum precision.

[0098] Optionally, quadtree division may be performed according to the coordinates of the center points of the first type of target sub-blocks obtained in the previous division.

[0099] A possible quadtree partitioning method:

[0100] If the range value in the radial distance direction reaches the minimum accuracy, the coordinates of the center point of the first type of target sub-block are The coordinate value range of the first second-type sub-block is: z≤z mid , the coordinate value range of the second second-type sub-block is: z≤z mid , the coordinate value range of the third second-type sub-block is: z>z mid , the coordinate value range of the fourth second-type sub-block is: z>z mid .

[0101] If the range value in the azimuth direction reaches the minimum accuracy, the coordinates of the center point of the first type of target sub-block are (r mid, z mid ); The coordinate value range of the first second-type sub-block is: r≤r mid , z≤z mid , the coordinate value range of the second type of sub-block is: r≤r mid , z>z mid , the coordinate value range of the third second-type sub-block is: r>r mid , z≤z mid , the coordinate value range of the fourth second-type sub-block is: r>r mid , z>z mid .

[0102] If the range value in the height direction reaches the minimum precision, the coordinates of the center point of the first type of target sub-block are The coordinate value range of the first second-type sub-block is r≤r mid , The coordinate value range of the second type of sub-block is: r≤r mid , The coordinate value range of the third second-type sub-block is: r>r mid , The coordinate value range of the fourth second-type sub-block is: r>r mid ,

[0103] S1032a: Perform at least one binary tree division on at least one second-category sub-block in the second-category sub-block to obtain a plurality of third-category sub-blocks, until range values ​​of the third-category sub-blocks in three directions reach minimum precision.

[0104] A possible implementation:

[0105] Determine a second type of target sub-block in the second type of sub-block. Optionally, the second type of target sub-block may refer to a sub-block whose range value in two directions reaches the minimum precision and contains three-dimensional data points. Perform at least one binary tree partition on the second type of target sub-block.

[0106] Specifically, the second-category target sub-block is divided into a binary tree at least once, and two third-category sub-blocks are obtained each time. Each division is performed on the sub-block containing the position coordinates of the three-dimensional data points obtained in the previous division, until the range values ​​of the three directions of the divided third-category sub-blocks all reach the minimum precision.

[0107] A possible way to partition a binary tree:

[0108] If the range values ​​in the radial distance direction and the azimuth direction reach the minimum accuracy, the coordinates of the center point of the third type of sub-block are (z mid ), the coordinate value range of the first third-type sub-block is: z≤zmid , the coordinate value range of the second third-type sub-block is: z>z mid .

[0109] If the range values ​​in the radial distance direction and the height direction reach the minimum accuracy, the coordinates of the center point of the third type of sub-block are The coordinate value range of the first third-category sub-block is: The coordinate value range of the second third-type sub-block is:

[0110] If the range values ​​in the azimuth and altitude directions reach the minimum precision, the coordinates of the center point of the third type of sub-block are (r mid ), the coordinate value range of the first third-type sub-block is: r≤r mid , the coordinate value range of the second third-type sub-block is: r>r mid .

[0111] In this embodiment, the maximum value of the range value of the three directions of the initial block of the three-dimensional data point to be encoded is determined according to the position coordinates of the three-dimensional data point to be encoded, the initial block is divided into an octree at least once to obtain a plurality of first-category sub-blocks, at least one of the first-category sub-blocks is divided into a quadtree at least once to obtain a second-category sub-block, until the range value of the two directions of the second-category sub-block reaches the minimum precision, at least one of the second-category sub-blocks is divided into a binary tree at least once to obtain a third-category sub-block, until the range value of the three directions of the third-category sub-block reaches the minimum precision, and the three-dimensional data point to be encoded is encoded according to the division result of the initial block, that is, when the range values ​​of the three directions of the initial block are not equal, a mixed division method of octree, quadtree and binary tree is adopted to divide the initial block constructed for dividing the distribution of the spatial three-dimensional data points, thereby reducing the number of divisions and improving the encoding efficiency. The reduction in the number of divisions will reduce the length of the encoded code stream accordingly, thereby more effectively compressing the position coordinates of the three-dimensional data points. When encoding, different bit lengths can be used for encoding according to the division method, which can further reduce the length of the encoded code stream and further improve the encoding efficiency and compression efficiency.

[0112] Figure 6 A schematic diagram of a flow chart of a method for encoding a three-dimensional data point is provided for an embodiment of the present invention. Figure 6 is Figure 2 On the basis of the embodiment shown, when the maximum values ​​of the range values ​​in two directions of the initial block are equal, and the maximum values ​​of the equal range values ​​are greater than the maximum value of the range value in another direction, another possible implementation of S103 is described, and the method of this embodiment is as follows:

[0113] S103b: Perform at least one quadtree division on at least one first-category sub-block in the first-category sub-block to obtain a plurality of second-category sub-blocks, until range values ​​of the second-category sub-blocks in three directions reach minimum precision.

[0114] A possible implementation manner is: determining a first-category target sub-block in the first-category sub-block. Optionally, the first-category target sub-block may refer to a sub-block whose range value in one direction reaches the minimum precision and contains three-dimensional data points. Perform at least one quadtree partition on the first-category target sub-block.

[0115] The first type of target sub-block is divided into quadtrees, and four sub-blocks are obtained each time. Each division is performed on the second type of sub-block containing the position coordinates of the three-dimensional data points obtained in the previous division, until the range values ​​of the three directions of the second type of sub-blocks obtained by the division reach the minimum accuracy.

[0116] Optionally, octree division may be performed according to the coordinates of the center points of the first type of target sub-blocks obtained in the previous division.

[0117] A possible quadtree partitioning method:

[0118] If the range value in the radial distance direction reaches the minimum accuracy, the coordinates of the center point of the first type of target sub-block are The coordinate value range of the first second-type sub-block is: z≤z mid , the coordinate value range of the second second-type sub-block is: z≤z mid , the coordinate value range of the third second-type sub-block is: z>z mid , the coordinate value range of the fourth second-type sub-block is: z>z mid .

[0119] If the range value in the azimuth direction reaches the minimum accuracy, the coordinates of the center point of the first type of target sub-block are (r mid , z mid ); The coordinate value range of the first second-type sub-block is: r≤r mid , z≤z mid , the coordinate value range of the second type of sub-block is: r≤r mid , z>z mid , the coordinate value range of the third second-type sub-block is: r>r mid , z≤z mid , the coordinate value range of the fourth second-type sub-block is: r>r mid , z>z mid .

[0120] If the range value in the height direction reaches the minimum precision, the coordinates of the center point of the first type of target sub-block are The coordinate value range of the first second-type sub-block is r≤r mid , The coordinate value range of the second type of sub-block is: r≤r mid , The coordinate value range of the third second-type sub-block is: r>r mid , The coordinate value range of the fourth second-type sub-block is: r>r mid ,

[0121] In this embodiment, according to the position coordinates of the three-dimensional data points to be encoded, the maximum value of the range value of the three directions of the initial block of the three-dimensional data points to be encoded is determined, the initial block is divided into octrees at least once to obtain multiple first-class sub-blocks, at least one of the first-class sub-blocks is divided into quadtrees at least once to obtain multiple second-class sub-blocks, until the range values ​​of the three directions of the second-class sub-blocks reach the minimum precision, and the three-dimensional data points to be encoded are encoded according to the division result of the initial block, that is, for the scenario where the range values ​​of the two directions of the initial block are equal, and the equal range values ​​are greater than the range value of the other direction, the initial block constructed for dividing the distribution of the three-dimensional data points in space is divided by a mixed division method of octrees and quadtrees, thereby reducing the number of divisions and improving the encoding efficiency. The reduction in the number of divisions reduces the length of the encoding code stream accordingly, thereby more effectively compressing the position coordinates of the three-dimensional data points. When encoding, different bit lengths can be used for encoding according to the division method, which can further reduce the length of the encoding code stream and further improve the encoding efficiency and compression efficiency.

[0122] Figure 7 A schematic diagram of a flow chart of a method for encoding a three-dimensional data point is provided for an embodiment of the present invention. Figure 7 is Figure 2 On the basis of the embodiment shown, when the maximum values ​​of the range values ​​in two directions of the initial block are equal, and the maximum value of the equal range values ​​is less than the maximum value of the range value in another direction; another possible implementation of S103 is described, and the method of this embodiment is as follows:

[0123] S103c: performing at least one binary tree partition on at least one first-category sub-block in the first-category sub-block to obtain a plurality of third-category sub-blocks, until range values ​​of the third-category sub-blocks in three directions reach minimum precision.

[0124] A possible implementation:

[0125] Determine a first type of target sub-block in the first type of sub-block. Optionally, the first type of target sub-block may refer to a sub-block whose range values ​​in two directions reach minimum precision and contains three-dimensional data points; perform at least one binary tree partition on the first type of target sub-block.

[0126] The first type of target sub-block is divided into a binary tree, and two sub-blocks are obtained each time. Each division is performed on the third type of sub-block containing the position coordinates of the three-dimensional data points obtained in the previous division, until the range values ​​of the three directions of the divided third type of sub-blocks all reach the minimum accuracy.

[0127] A possible way to partition a binary tree:

[0128] If the range values ​​in the radial distance direction and the azimuth direction reach the minimum accuracy, the coordinates of the center point of the third type of sub-block are (z mid ), the coordinate value range of the first third-type sub-block is: z≤z mid , the coordinate value range of the second third-type sub-block is: z>z mid .

[0129] If the range values ​​in the radial distance direction and the height direction reach the minimum accuracy, the coordinates of the center point of the third type of sub-block are The coordinate value range of the first third-category sub-block is: The coordinate value range of the second third-type sub-block is:

[0130] If the range values ​​in the azimuth and altitude directions reach the minimum precision, the coordinates of the center point of the third type of sub-block are (r mid ), the coordinate value range of the first third-type sub-block is: r≤r mid , the coordinate value range of the second third-type sub-block is: r>r mid .

[0131] In this embodiment, according to the position coordinates of the three-dimensional data points to be encoded, the maximum value of the range value of the three directions of the initial block of the three-dimensional data points to be encoded is determined, the initial block is divided into an octree at least once to obtain a plurality of first-class sub-blocks, at least one of the first-class sub-blocks is divided into a binary tree at least once to obtain a plurality of third-class sub-blocks, until the range value of the three directions of the third-class sub-block reaches the minimum precision, and the three-dimensional data points to be encoded are encoded according to the division result of the initial block, that is, for the scenario where the maximum values ​​of the range values ​​of the two directions of the initial block are equal, and the maximum value of the equal range values ​​is less than the maximum value of the range value of the other direction, the initial block constructed for dividing the distribution of the three-dimensional data points in space is divided by a mixed division method of an octree and a binary tree, thereby reducing the number of divisions and improving the encoding efficiency. The reduction in the number of divisions reduces the length of the encoding code stream accordingly, thereby more effectively compressing the position coordinates of the three-dimensional data points. When encoding, different bit lengths can be used for encoding according to the division method, which can further reduce the length of the encoding code stream and further improve the encoding efficiency and compression efficiency.

[0132] Figure 8 A schematic diagram of a flow chart of a method for encoding a three-dimensional data point is provided for an embodiment of the present invention. Figure 8 is Figure 2-Figure 7 Based on any of the illustrated embodiments, a possible implementation of S104 is described as follows: Figure 8 As shown:

[0133] S104': Encode each division situation in sequence according to the division order and the three-dimensional data points contained in the sub-blocks obtained in each division.

[0134] A possible implementation method is: obtaining a code stream corresponding to each division according to whether the sub-block obtained from each division contains three-dimensional data points; and encoding the code stream corresponding to each division in sequence according to the division order.

[0135] The step of obtaining a code stream corresponding to each division according to the three-dimensional data points contained in the sub-blocks obtained by each division includes:

[0136] According to the three-dimensional data points contained in the sub-blocks obtained by each division, the bit stream corresponding to each sub-block is obtained, each sub-block corresponds to one bit, and the bit value of the sub-block containing the three-dimensional data point is different from that of the sub-block not containing the three-dimensional data point; according to the bit value corresponding to the sub-block, the code stream corresponding to each division is generated. The bit value corresponding to the sub-block obtained by each division is obtained, and the code stream corresponding to each division is generated according to the bit values ​​corresponding to all sub-blocks.

[0137] The number of bits of the code stream corresponding to each division can be fixedly represented by 8 bits, or can be determined according to the number of divided sub-blocks. For example, each octree division obtains eight sub-blocks, and the code stream corresponding to each octree division is identified by 8 bits. Each quadtree division obtains four sub-blocks, and the code stream corresponding to each quadtree division is identified by 4 bits. Each binary tree division obtains two sub-blocks, and the code stream corresponding to each binary tree division is identified by 2 bits.

[0138] When each division corresponds to a fixed code stream identified by 8 bits:

[0139] According to the bit values ​​corresponding to the sub-blocks, a code stream corresponding to each division is generated. A possible implementation method is as follows:

[0140] If octree division is performed, the bit values ​​of the 8 bits are determined according to the three-dimensional data points contained in the eight sub-blocks obtained by the division; if quadtree division is performed, the bit values ​​of 4 of the 8 bits are determined according to the three-dimensional data points contained in the four sub-blocks obtained by the division, and the bit values ​​of the remaining 4 bits are the same as the bit values ​​of the sub-blocks that do not contain the three-dimensional data points; if binary tree division is performed, the bit values ​​of 2 of the 8 bits are determined according to the three-dimensional data points contained in the two sub-blocks obtained by the division, and the bit values ​​of the remaining 6 bits are the same as the bit values ​​of the sub-blocks that do not contain the three-dimensional data points.

[0141] The number of bits of the code stream corresponding to each division is determined according to the number of sub-blocks divided:

[0142] According to the bit values ​​corresponding to the sub-blocks, a code stream corresponding to each division is generated. A possible implementation method is as follows:

[0143] If octree division is performed, the code stream corresponding to each division is 8 bits, and the bit values ​​of the 8 bits are determined according to the three-dimensional data points contained in the eight sub-blocks obtained by the division;

[0144] If quadtree division is performed, and the code stream corresponding to each division is 4 bits, the bit values ​​of the 4 bits are determined according to the three-dimensional data points contained in the four sub-blocks obtained by the division;

[0145] If binary tree division is performed, and the code stream corresponding to each division is 2 bits, the bit values ​​of the 2 bits are determined according to the three-dimensional data points contained in the two sub-blocks obtained by the division.

[0146] The bit value corresponding to the sub-block containing the three-dimensional data point is 1, and the bit value corresponding to the sub-block not containing the three-dimensional data point is 0. Alternatively, the bit value corresponding to the sub-block containing the three-dimensional data point is 0, and the bit value corresponding to the sub-block not containing the three-dimensional data point is 1, which is not limited in the embodiment of the present invention.

[0147] Optionally, the method further includes: when the range value in one direction or two directions of the sub-blocks obtained by division reaches the minimum precision, encoding a first identifier, the first identifier is used to indicate a change in the division method, the division method being octree division, quadtree division or binary tree division, so that the decoding end determines the change in the division method according to the first identifier.

[0148] When the range value of one direction of the sub-block obtained by octree division reaches the minimum precision or the range values ​​of two directions reach the minimum precision at the same time, the first identifier is 8 bits, and the bit values ​​of the 8 bits are consistent with the bit values ​​corresponding to the sub-blocks that do not contain three-dimensional data points. For example, if the bit value corresponding to the sub-block containing three-dimensional data points is 1, and the bit value corresponding to the sub-block that does not contain point cloud three-dimensional data points is 0; then the first identifier is 00000000. For another example, if the bit value corresponding to the sub-block containing point cloud three-dimensional data points is 0, and the bit value corresponding to the sub-block that does not contain point cloud three-dimensional data points is 1; then the first identifier is 11111111.

[0149] When the range values ​​of the two directions of the sub-block obtained by quadtree division reach the minimum precision, the first identifier is 4 bits, and the bit values ​​of the 4 bits are consistent with the bit values ​​corresponding to the sub-blocks that do not contain three-dimensional data points. If the bit value corresponding to the sub-block containing point cloud three-dimensional data points is 1, and the bit value corresponding to the sub-block that does not contain point cloud three-dimensional data points is 0; then the first identifier is 0000; if the bit value corresponding to the sub-block containing three-dimensional data points is 0, and the bit value corresponding to the sub-block that does not contain point cloud three-dimensional data points is 1; then the first identifier is 1111.

[0150] For example, when the range value in one direction reaches the minimum precision first, the first identifier is 00000000, and when the range value in another direction reaches the minimum precision, the first identifier is 0000.

[0151] or,

[0152] When the range values ​​in two directions reach the minimum precision at the same time, the first identifier is 00000000.

[0153] or,

[0154] When the range value in one direction reaches the minimum precision first, the first identifier is 00000000.

[0155] Optionally, after the first identifier, the following is also included:

[0156] A second identifier is encoded, and the second identifier is used to indicate a direction in which the minimum precision is reached or a direction in which the minimum precision is not reached. Optionally, the second identifier is 3 bits or 2 bits. So that the decoding end determines which direction of the range value reaches the minimum precision and which direction of the range value does not reach the minimum precision according to the second identifier, thereby determining the direction of quadtree partitioning or binary tree partitioning.

[0157] For example: if the range values ​​in three directions reach the minimum precision in sequence, when the range value in one direction reaches the minimum precision first, the second identifier is three bits, which is 000, 001 or 010; the 000, 001 and 010 correspond to one direction respectively, indicating that the range value in the corresponding direction reaches the minimum precision, and when the range value in another direction reaches the minimum precision, the second identifier is two bits, which is 00 or 01; the 00 and 01 correspond to one of the remaining two directions respectively.

[0158] or,

[0159] If the range value in one direction reaches the minimum precision first, and the range values ​​in the remaining two directions reach the minimum precision at the same time, when the range value in one direction reaches the minimum precision first, a second identifier is represented by three bits, and the second identifier is 000, 001 or 010; the 000, 001 and 010 correspond to the range value in one direction respectively, indicating that the range value in the corresponding direction reaches the minimum precision.

[0160] or,

[0161] If the range values ​​in two directions reach the minimum precision first and the range value in the other direction reaches the minimum precision later, when the range values ​​in two directions reach the minimum precision first, the second identifier is represented by three bits, and the second identifier is 100, 101 or 110; the 100, 101 or 110 corresponds to one direction respectively, indicating that the range value in the corresponding direction has not reached the minimum precision.

[0162] Alternatively, three bits are used to represent three directions in sequence, for example, radial distance direction, azimuth direction and altitude direction in sequence. When the range value of a certain direction reaches the minimum precision, the bit position that reaches the minimum precision is 1, and the bit position that does not reach the minimum precision is 0; for example, if the radial distance direction reaches the minimum precision first, it is 100; if the azimuth direction reaches the minimum precision first, it is 010; if the altitude direction reaches the minimum precision first, it is 001; when both the radial distance direction and the azimuth direction reach the minimum precision, it is 110; when both the radial distance direction and the altitude direction reach the minimum precision, it is 101; when both the azimuth direction and the altitude direction reach the minimum precision, it is 011. Alternatively, the bit position that reaches the minimum precision is 0, and the bit position that does not reach the minimum precision is 1; for example: the radial distance direction reaches the minimum precision first, then it is 011; the azimuth direction reaches the minimum precision first, then it is 101; the altitude direction reaches the minimum precision first, then it is 110; when both the radial distance and azimuth directions reach the minimum precision, then it is 001, when both the radial distance and altitude directions reach the minimum precision, then it is 010, and when both the azimuth and altitude directions reach the minimum precision, then it is 100. The correspondence between the three bits and the three directions is not limited in the embodiment of the present invention, and any adjustment can be made.

[0163] Optionally, it also includes: encoding a third identifier, wherein the third identifier is used to indicate the end of division, for example: when the edge in the last direction reaches the minimum precision, encoding 2 bits 00 indicates the end of division; for another example: when the last two directions reach the minimum precision at the same time, encoding 4 bits 0000 and two bits 10, or encoding 4 bits 0000 and two bits 11. The embodiment of the present invention does not impose any limitation on this, as long as the end of division can be distinguished.

[0164] Optionally, the method further includes: encoding data for constructing an initial block at the decoding end in the information header, including but not limited to the following possible implementations:

[0165] Among them, one possible implementation is:

[0166] Encoding the quantized minimum value and the quantized maximum value of the position coordinates of the three-dimensional data point to be encoded in three directions;

[0167] or,

[0168] Encode the minimum value and the maximum value before quantization of the position coordinates of the three-dimensional data point to be encoded in three directions;

[0169] or,

[0170] Encode the minimum value before quantization and the maximum value after quantization of the position coordinates of the three-dimensional data point to be encoded in three directions;

[0171] or,

[0172] The minimum value after quantization and the maximum value before quantization of the position coordinates of the three-dimensional data point to be encoded in three directions are encoded.

[0173] Another possible implementation:

[0174] Encoding the maximum of the quantized minimum value and the quantized maximum value of the position coordinates of the three-dimensional data point to be encoded in three directions;

[0175] or,

[0176] Encoding the minimum value before quantization and the maximum value after quantization of the position coordinates of the three-dimensional data point to be encoded in three directions;

[0177] or,

[0178] Encoding the maximum value of the minimum value after quantization and the maximum value before quantization of the position coordinates of the three-dimensional data point to be encoded in three directions;

[0179] or,

[0180] The minimum value before quantization and the maximum value before quantization of the position coordinates of the three-dimensional data point to be encoded in three directions are encoded.

[0181] Another possible implementation:

[0182] Encode the minimum value of the quantized minimum value and the minimum value of the quantized maximum value of the position coordinates of the three-dimensional data point to be encoded in three directions;

[0183] or,

[0184] Encode the minimum value of the position coordinates of the three-dimensional data point to be encoded in three directions before quantization and the minimum value of the maximum value after quantization;

[0185] or,

[0186] Encode the minimum value of the position coordinates of the three-dimensional data point to be encoded in three directions after quantization and the minimum value of the maximum value before quantization;

[0187] or,

[0188] The minimum value of the position coordinates of the three-dimensional data point to be encoded in three directions before quantization and the minimum value of the maximum value before quantization are encoded.

[0189] Optionally, in an embodiment of the present invention, the initial block is divided into an octree at least once according to the center point coordinates; and at least one first-category sub-block in the first-category sub-block is divided into a quadtree and / or a binary tree at least once according to the center point coordinates.

[0190] The coordinates of the center point can be obtained as follows:

[0191] According to the maximum and minimum values ​​of the blocks to be divided each time in the radial distance direction, the coordinate value of the center point in the radial distance direction is obtained;

[0192] The coordinate value of the center point in the azimuth direction is obtained according to the maximum and minimum values ​​of the blocks to be divided each time in the azimuth direction.

[0193] According to the maximum and minimum values ​​of the blocks to be divided in the height direction each time, the coordinate value of the center point in the height direction is obtained.

[0194] Optionally, you can Obtain the coordinate value of the center point in the radial distance direction; and / or, and / or, according to Get the coordinate value of the center point in the azimuth direction according to Get the coordinate value of the center point in the height direction; where, is the coordinate value of the center point, r min is the minimum value of the block to be divided in the radial direction, r max is the maximum value of the block to be divided in the radial distance direction, is the minimum value of the block to be divided in the azimuth direction, is the maximum value of the block to be divided in the azimuth direction, z min is the minimum value of the block to be divided in the height direction, z max It is the maximum value of the block to be divided in the height direction.

[0195] Fig. 9 A schematic diagram of a process flow of a method for decoding a three-dimensional data point is provided for an embodiment of the present invention. Fig. 9 As shown, the method of this embodiment is as follows:

[0196] S901: Obtain code stream.

[0197] S902: Determine the maximum value of the range value of the initial block in the radial distance direction, the azimuth direction and the height direction according to the code stream.

[0198] The range values ​​of the three directions of the initial block may be equal or different.

[0199] Optionally, according to the code stream, a quantized minimum value and a quantized maximum value of the position coordinates in three directions are obtained;

[0200] According to the minimum value and the maximum value of the quantized position coordinates in the three directions, the maximum value of the range values ​​of the position coordinates in the radial distance direction, the azimuth direction and the height direction is obtained;

[0201] According to the maximum value of the range value of the position coordinate in the radial distance direction, the azimuth direction and the height direction, the maximum value of the range value of the initial block in the radial distance direction, the azimuth direction and the height direction is obtained.

[0202] Among them, a possible implementation method of obtaining the maximum value of the range value of the initial block in the three directions according to the maximum value of the range value of the position coordinate in the three directions is:

[0203] In each direction, a value closest to the maximum value of the range value among values ​​that are greater than or equal to the integer power of 2 of the maximum value of the range value of the position coordinate is obtained, which is the maximum value of the range value of the initial block in the direction.

[0204] Wherein, according to the bit stream, obtaining the quantized minimum value and the quantized maximum value of the position coordinates in three directions includes but is not limited to the following possible implementation methods:

[0205] The range values ​​of the three directions of the initial block constructed according to the following possible implementations are different. One possible implementation is: directly obtaining the quantized minimum value and the quantized maximum value of the position coordinates in the three directions according to the bit stream.

[0206] Another possible implementation manner is: obtaining, according to the code stream, the minimum value of the position coordinates before quantization and the maximum value after quantization in the three directions.

[0207] The minimum value of the position coordinate after quantization in the three directions is obtained according to the minimum value of the position coordinate before quantization in the three directions and the quantization step lengths in the three directions.

[0208] Another possible implementation manner is: obtaining, according to the code stream, the minimum value after quantization and the maximum value before quantization of the position coordinates in the three directions.

[0209] According to the maximum values ​​of the position coordinates before quantization in the three directions and the quantization step sizes in the three directions, the maximum values ​​of the position coordinates after quantization in the three directions are obtained.

[0210] The range values ​​of the three directions of the initial block constructed according to the following possible implementations are the same.

[0211] A possible implementation manner is: obtaining, according to the bit stream, a maximum value of the minimum value before quantization and the maximum value after quantization of the position coordinates in three directions;

[0212] According to the minimum value of the position coordinates before quantization in the three directions and the quantization step lengths in the three directions, the minimum value after quantization in the three directions is obtained;

[0213] Determine the maximum value of the quantized maximum value as the maximum value of the quantized values ​​in the three directions.

[0214] Another possible implementation manner is: obtaining, according to the bit stream, a minimum value of the minimum value before quantization and the maximum value after quantization of the position coordinates in three directions;

[0215] According to the minimum value of the position coordinates before quantization in the three directions and the quantization step lengths in the three directions, the minimum value after quantization in the three directions is obtained;

[0216] Determine the minimum value of the quantized maximum value as the quantized maximum value in the three directions.

[0217] Another possible implementation is:

[0218] According to the code stream, the maximum value of the quantized minimum value and the quantized maximum value of the position coordinate in three directions is obtained.

[0219] Determine the maximum value of the quantized maximum value as the maximum value of the quantized values ​​in the three directions.

[0220] Another possible implementation is:

[0221] According to the code stream, the minimum value of the quantized minimum value and the minimum value of the quantized maximum value of the position coordinate in three directions is obtained.

[0222] Determine the minimum value of the quantized maximum value as the quantized maximum value in the three directions.

[0223] Another possible implementation is:

[0224] According to the code stream, the maximum value of the minimum value before quantization and the maximum value before quantization of the position coordinate in three directions is obtained.

[0225] According to the minimum value of the position coordinates before quantization in the three directions and the quantization step lengths in the three directions, the minimum value after quantization in the three directions is obtained.

[0226] The maximum value of the maximum value after quantization is obtained according to the maximum value of the maximum value before quantization and the quantization step size.

[0227] Determine the maximum value of the quantized maximum value as the maximum value of the quantized values ​​in the three directions.

[0228] Another possible implementation is:

[0229] According to the code stream, the minimum value of the minimum value before quantization and the minimum value of the maximum value before quantization of the position coordinate in three directions are obtained.

[0230] According to the minimum value of the position coordinates before quantization in the three directions and the quantization step lengths in the three directions, the minimum value after quantization in the three directions is obtained.

[0231] The minimum value of the maximum value after quantization is obtained according to the minimum value of the maximum value before quantization and the quantization step size.

[0232] Determine the minimum value of the quantized maximum value as the quantized maximum value in the three directions.

[0233] Another possible implementation is:

[0234] According to the code stream, the maximum value of the minimum value after quantization and the maximum value before quantization of the position coordinate in three directions is obtained.

[0235] The maximum value of the maximum value after quantization is obtained according to the maximum value of the maximum value before quantization and the quantization step size.

[0236] Determine the maximum value of the quantized maximum value as the maximum value of the quantized values ​​in the three directions.

[0237] Another possible implementation is:

[0238] According to the code stream, the minimum value of the minimum value after quantization and the maximum value before quantization of the position coordinate in three directions is obtained.

[0239] The minimum value of the maximum value after quantization is obtained according to the minimum value of the maximum value before quantization and the quantization step size.

[0240] Determine the minimum value of the quantized maximum value as the quantized maximum value in the three directions.

[0241] S903: Divide the initial block into an octree at least once to obtain a plurality of first-category sub-blocks.

[0242] The initial block is divided into an octree at least once to obtain a plurality of first-category sub-blocks. Specifically, for a detailed description of the octree division method, refer to the relevant description of the encoding end, which will not be repeated here.

[0243] S904: Perform at least one quadtree and / or binary tree division on at least one first-category sub-block in the first-category sub-blocks.

[0244] A possible implementation:

[0245] When the maximum values ​​of the range values ​​in three directions of the initial block are not equal;

[0246] The performing at least one quadtree division and / or binary tree division on at least one first-category sub-block in the first-category sub-blocks comprises:

[0247] At least one first-category sub-block in the first-category sub-block is divided into quadtrees at least once to obtain a plurality of second-category sub-blocks, until range values ​​of the second-category sub-blocks in two directions reach minimum precision.

[0248] Perform at least one binary tree division on at least one of the second-category sub-blocks to obtain a plurality of third-category sub-blocks, until range values ​​of the third-category sub-blocks in three directions reach minimum precision.

[0249] Optionally, a first type of target sub-block is determined according to the bit value corresponding to the first type of sub-block, and optionally, the bit value of the first type of target sub-block indicates that the sub-block contains three-dimensional data points; the first type of target sub-block is divided into quadtrees at least once. A second type of target sub-block is determined according to the bit value corresponding to the second type of sub-block, and the bit value of the second type of target sub-block indicates that the sub-block contains three-dimensional data points; the second type of target sub-block is divided into binary trees at least once.

[0250] For example: in the first-class sub-block of the last layer obtained by octree division, the bit value of 1 indicates that the first-class sub-block contains three-dimensional data points, and the first-class sub-block with the bit value of 1 is determined to be the first-class target sub-block, or the bit value of 0 indicates that the first-class sub-block contains three-dimensional data points, and the first-class sub-block with the bit value of 0 is determined to be the first-class target sub-block.

[0251] Optionally, the first identifier is used to indicate a change in partitioning mode, and the decoding end may determine the change in partitioning mode according to the first identifier, and the partitioning modes include octree partitioning, quadtree partitioning, and binary tree partitioning. In this implementation, the first identifier indicates a change from octree partitioning to quadtree partitioning, and from quadtree partitioning to binary tree partitioning.

[0252] Optionally, the second identifier is used to indicate the direction in which the minimum precision is reached or the direction in which the minimum precision is not reached. The decoding end can determine, based on the second identifier, which direction the range value reaches the minimum precision, along which two directions the quadtree division is performed, and which two directions the range values ​​reach the minimum precision, and along which direction the binary tree division is performed. Alternatively, based on the second identifier, determine which two directions the range values ​​do not reach the minimum precision, along which two directions the quadtree division is performed, which direction the range value does not reach the minimum precision, and along which direction the binary tree division is performed.

[0253] For the specific division method of the quadtree and the binary tree, please refer to the relevant description of the encoding end, which will not be repeated here.

[0254] Another possible implementation:

[0255] When the maximum values ​​of the range values ​​in two directions of the initial block are equal, and the maximum values ​​of the equal range values ​​are greater than the maximum value of the range value in the other direction.

[0256] The performing at least one quadtree division and / or binary tree division on at least one first-category sub-block in the first-category sub-blocks comprises:

[0257] At least one first-category sub-block in the first-category sub-block is divided into quadtrees at least once to obtain a plurality of second-category sub-blocks, until range values ​​of the second-category sub-blocks in three directions reach minimum precision.

[0258] Optionally, the first identifier is used to indicate a change in partitioning mode, and the decoding end may determine the change in partitioning mode according to the first identifier, and the partitioning modes include octree partitioning, quadtree partitioning, and binary tree partitioning. In this implementation, the decoding end determines that the octree partitioning is changed to quadtree partitioning according to the first identifier.

[0259] Optionally, the second identifier is used to indicate the direction that reaches the minimum precision or the direction that does not reach the minimum precision, and the decoding end determines which direction's range value reaches the minimum precision based on the second identifier, and along which two directions the quadtree partitioning is performed. Alternatively, the second identifier determines which two directions' range values ​​do not reach the minimum precision, and along which two directions the quadtree partitioning is performed.

[0260] For the specific division method of the quadtree, please refer to the relevant description of the encoding end, which will not be repeated here.

[0261] Another possible implementation:

[0262] When the maximum values ​​of the range values ​​in two directions of the initial block are equal, and the maximum values ​​of the equal range values ​​are smaller than the maximum value of the range value in the other direction.

[0263] The performing at least one quadtree division and / or binary tree division on at least one first-category sub-block in the first-category sub-blocks comprises:

[0264] At least one first-category sub-block in the first-category sub-block is divided into a binary tree at least once to obtain a plurality of third-category sub-blocks, until range values ​​of the third-category sub-blocks in three directions reach minimum precision.

[0265] Optionally, the first identifier is used to indicate a change in partitioning mode, and the decoding end may determine the change in partitioning mode according to the first identifier, and the partitioning modes include octree partitioning, quadtree partitioning, and binary tree partitioning. In this implementation, the decoding end determines that the octree partitioning is changed to binary tree partitioning according to the first identifier.

[0266] Optionally, the second identifier is used to indicate the direction in which the minimum precision is reached or the direction in which the minimum precision is not reached. The decoding end determines, based on the second identifier, which two directions of range values ​​simultaneously reach the minimum precision and along which direction the binary tree division is performed, or, based on the second identifier, determines which direction of range value does not reach the minimum precision and along which direction the binary tree division is performed.

[0267] Optionally, the decoding end determines the end of the division according to the third identifier.

[0268] For the specific division method of the binary tree, please refer to the relevant description of the encoding end, which will not be repeated here.

[0269] Optionally, when the range values ​​of the three directions of the initial block are the same, a possible implementation manner is to determine whether to perform quadtree division or binary tree division according to the first identifier and the second identifier; and to determine the end of the division according to the third identifier.

[0270] For example: during the octree partitioning process, after decoding the eight bits of the first identifier 00000000, it indicates that the partitioning method has been changed, and then the three bits of the second identifier are decoded as 000, 001 or 010; the 000, 001 and 010 respectively correspond to the range value of one direction, and the range value of the corresponding direction is determined to reach the minimum precision according to the second identifier, and quadtree partitioning is performed. During the quadtree partitioning process, after decoding the four bits of the first identifier 0000, it indicates that the partitioning method has been changed, and then the two bits of the second identifier are decoded as 00 or 01; the 00 and 01 respectively correspond to one of the remaining two directions, and the range value of one of the remaining two directions corresponding to the direction is determined to reach the minimum precision according to the second identifier, and binary tree partitioning is performed.

[0271] Another example:

[0272] During the octree partitioning process, when the eight bits of the first identifier 00000000 are decoded, it indicates that the partitioning mode is switched, and then the three bits of the second identifier are decoded, and the second identifier is 000, 001 or 010; the 000, 001 and 010 correspond to the range value of a direction respectively, indicating that the range value of the corresponding direction reaches the minimum precision. According to the second identifier, it is determined that the range value of the corresponding direction reaches the minimum precision, and quadtree partitioning is performed. During the quadtree partitioning process, when the third identifier 000010 or 000011 is decoded, the partitioning is completed.

[0273] or,

[0274] During the octree partitioning process, when the eight bits of the first identifier 00000000 are decoded, it indicates that the partitioning mode is switched, and then the three bits of the second identifier are decoded, and the second identifier is 100, 101 or 110; the 100, 101 and 110 correspond to a direction respectively, indicating that the range value of the corresponding direction has not reached the minimum precision. That is, the range values ​​of the other two directions reach the minimum precision at the same time, and binary tree partitioning is performed. During the binary tree partitioning process, when the third identifier 00 is decoded, the partitioning is completed.

[0275] Alternatively, during the octree partitioning process, after decoding the eight bits of the first identifier 00000000, it indicates that the partitioning method has been changed, and then the three bits of the second identifier are decoded, and the second identifier is 100, 010, 001, 110, 101 or 011. According to the value of the direction corresponding to the bit, it is determined whether the range value of the direction reaches the minimum precision. For example, the first bit, the second bit and the third bit represent the radial distance direction, the azimuth direction and the altitude direction respectively, and the bit position that reaches the minimum precision is 1, and the bit position that does not reach the minimum precision is 0; for example: 100 indicates that the radial distance direction reaches the minimum precision first; 010 indicates that the azimuth direction reaches the minimum precision first; 001 indicates that the altitude direction reaches the minimum precision first; 110 indicates that both the radial distance direction and the azimuth direction reach the minimum precision, 101 indicates that both the radial distance direction and the altitude direction reach the minimum precision, and 011 indicates that both the azimuth direction and the altitude direction reach the minimum precision. Alternatively, the bit position that reaches the minimum precision is set to 0, and the bit position that does not reach the minimum precision is set to 1; for example: 011 indicates that the radial distance direction reaches the minimum precision first; 101 indicates that the azimuth direction reaches the minimum precision first; 110 indicates that the altitude direction reaches the minimum precision first; 001 indicates that both the radial distance direction and the azimuth direction reach the minimum precision, 010 indicates that both the radial distance direction and the altitude direction reach the minimum precision, and 100 indicates that both the azimuth direction and the altitude direction reach the minimum precision. The correspondence between the three bits and the three directions is not limited in the embodiment of the present invention, and any adjustment can be made.

[0276] The third identifier is used to indicate the end of the division, for example: after binary tree division, decoding to two bits 00 indicates the end of the division, and for another example: after quadtree division, decoding to 4 bits 0000 and two bits 10, or decoding to 4 bits 0000 and two bits 11 indicates the end of the division.

[0277] S905: Obtain the position coordinates of the three-dimensional data points to be decoded according to the positions of the sub-blocks obtained by division.

[0278] Optionally, the quantized position coordinates of the three-dimensional data points to be encoded are obtained according to the positions of the sub-blocks obtained by division; and the quantized position coordinates are inversely quantized to obtain the position coordinates of the three-dimensional data points before quantization.

[0279] A possible implementation:

[0280] When the range values ​​of the three directions of the initial block constructed to divide the distribution of the three-dimensional data points in space are different, the coordinate values ​​of the positions of all the three-dimensional data points before quantization can be obtained by performing inverse quantization on the decoded quantized coordinate values ​​in the opposite way to the encoding end.

[0281] Another possible implementation:

[0282] When the initial block constructed to divide the distribution of the three-dimensional data points in space is determined based on the maximum of the quantized minimum value and the quantized maximum value of the position coordinates in three directions, optionally, the quantized position coordinates of the three-dimensional data points to be encoded are obtained based on the position of the sub-blocks obtained by division and the ratio of the range values ​​in the three directions of the sub-blocks obtained by division.

[0283] Optionally, the first position coordinates of the three-dimensional data point to be encoded are obtained according to the positions of the sub-blocks obtained by division; the ratios of the minimum value of the range values ​​in the three directions of the sub-blocks finally obtained by division to the range values ​​in the remaining two directions are obtained; and the coordinate values ​​of each coordinate in the remaining two directions are multiplied by the ratios of the directions.

[0284] Then, the decoded quantized coordinate values ​​are inversely quantized in the opposite way to that at the encoding end to obtain the actual position coordinate values ​​of all three-dimensional data points.

[0285] Another possible implementation:

[0286] When the initial block constructed to divide the distribution of the three-dimensional data points in space is determined according to the minimum value of the quantized minimum value and the minimum value of the quantized maximum value of the position coordinates in three directions, optionally, the quantized position coordinates of the three-dimensional data points to be encoded are obtained according to the position of the sub-block obtained by the division and the ratio of the range values ​​of the three directions of the sub-block obtained by the division.

[0287] Optionally, the first position coordinates of the three-dimensional data point to be encoded are obtained according to the positions of the sub-blocks obtained by division; the ratios of the maximum values ​​of the range values ​​in the three directions of the sub-blocks obtained by the division and the range values ​​in the remaining two directions are obtained; and the coordinate values ​​of each coordinate in the remaining two directions are multiplied by the ratios corresponding to the directions.

[0288] Then, the decoded quantized coordinate values ​​are inversely quantized in the opposite way to that at the encoding end to obtain the actual position coordinate values ​​of all three-dimensional data points.

[0289] Optionally, the quantized position coordinates are inversely quantized.

[0290] A possible implementation method includes at least one of the following operations:

[0291] The radial distance of the position coordinates of the three-dimensional data is inversely quantized according to the quantization step size in the radial distance direction.

[0292] The azimuth of the position coordinates of the three-dimensional data is inversely quantized according to the quantization step size in the azimuth direction.

[0293] The height of the position coordinates of the three-dimensional data is inversely quantized according to the quantization step size in the height direction.

[0294] Optionally, you can Inversely quantize the radial distance of the position coordinates of the three-dimensional data; according to Inversely quantize the azimuth of the position coordinates of the three-dimensional data; according to Inversely quantize the height of the position coordinates of the three-dimensional data; i Represents the inverse quantized value of the radial distance of the i-th three-dimensional data point, r Δ Indicates the quantization step size in the radial distance direction, Represents the quantized value of the radial distance of the i-th three-dimensional data point, Represents the inverse quantized value of the azimuth angle of the i-th three-dimensional data point, Indicates the quantization step size of the azimuth direction, Represents the quantized value of the azimuth of the i-th three-dimensional data point, z i Represents the inverse quantized value of the height of the i-th three-dimensional data point, z Δ Indicates the quantization step size in the height direction, Represents the highly quantized value of the i-th three-dimensional data point.

[0295] Another possible implementation method includes at least one of the following operations:

[0296] De-quantizing the radial distance of the position coordinates of the three-dimensional data according to the quantization step in the radial distance direction and the minimum value of the three-dimensional data point before quantization in the radial distance direction;

[0297] The height of the position coordinates of the three-dimensional data is inversely quantized according to the quantization step size in the height direction and the minimum value of the three-dimensional data point before quantization in the height direction.

[0298] The azimuth of the position coordinates of the three-dimensional data is inversely quantized according to the quantization step size in the azimuth direction and the minimum value of the three-dimensional data point before quantization in the azimuth direction.

[0299] Optionally, you can Inversely quantize the radial distance of the position coordinates of the three-dimensional data; according to Inversely quantize the azimuth of the position coordinates of the three-dimensional data; according to Inversely quantize the height of the position coordinates of the three-dimensional data; wherein, r i Represents the inverse quantized value of the radial distance of the i-th three-dimensional data point, r min Represents the minimum value of all three-dimensional data points before quantization in the radial distance direction, r Δ Indicates the quantization step size in the radial distance direction, Represents the quantized value of the radial distance of the i-th three-dimensional data point, Represents the inverse quantized value of the azimuth angle of the i-th three-dimensional data point, Represents the minimum value of the three-dimensional data point before quantization in the azimuth direction, Indicates the quantization step size of the azimuth direction, Represents the quantized value of the azimuth of the i-th three-dimensional data point, z i Represents the inverse quantized value of the height of the i-th three-dimensional data point, z min Represents the minimum value of the three-dimensional data point before quantization in the height direction, z Δ Indicates the quantization step size in the height direction, Represents the highly quantized value of the i-th three-dimensional data point. Round(x) indicates that the Round function returns a value that is rounded to the specified number of decimal places.

[0300] Optionally, it also includes: decoding the number of three-dimensional data points in a sub-block containing three-dimensional data points. When the decoding is 0, it indicates that the corresponding sub-block contains 1 three-dimensional data point. When the decoding is 1, it indicates that the corresponding sub-block contains more than 1 three-dimensional data point. Then, decoding the subsequent bits. If the decoded value is N, it is determined that the number of three-dimensional data points contained is N+1.

[0301] In this embodiment, a code stream is obtained through a decoding end, and according to the code stream, the maximum value of the range value of the initial block in the radial distance direction, the azimuth direction and the height direction is determined; the initial block is constructed according to the maximum value of the range value of the initial block in the radial distance direction, the azimuth direction and the height direction; or, the initial block is constructed according to the minimum value and the maximum value of the initial block in the radial distance direction, the azimuth direction and the height direction; the initial block is divided into an octree at least once to obtain a plurality of first-class sub-blocks; at least one of the first-class sub-blocks is divided into a quadtree and / or a binary tree at least once; and the position coordinates of the three-dimensional data point to be decoded are obtained according to the position of the sub-block obtained by the division. Since a mixed division of octree, quadtree and binary tree, or a mixed division of octree and quadtree, or a mixed division of octree and binary tree is performed, the number of divisions is reduced and the decoding code efficiency is improved.

[0302] Optionally, in each of the above embodiments, the encoding end further includes: attribute encoding, wherein the attribute encoding is performed separately from the encoding of the position coordinates, and the attribute encoding includes but is not limited to the following possible implementations:

[0303] A possible implementation method is to perform level of detail (LOD) encoding in the order of position coordinate encoding.

[0304] Another possible implementation method is to directly binarize the attribute values ​​corresponding to the sequence of the position coordinates after encoding, and send the binary code stream obtained after binarization to the arithmetic coding engine for arithmetic coding, thereby completing the encoding of the attribute values.

[0305] Accordingly, the decoding end further includes: attribute decoding, wherein the attribute decoding is performed separately from the decoding of the position coordinates, and the attribute decoding includes but is not limited to the following possible implementations:

[0306] One possible implementation is to perform LOD layered decoding in the order of position coordinate encoding. Another possible implementation is to decode the binarized attribute values ​​in the order of position coordinate encoding, and then perform inverse binarization to obtain the corresponding attribute values.

[0307] Fig.10A schematic structural diagram of a three-dimensional data point encoding device provided in an embodiment of the present invention, the device of this embodiment includes: a processor 1001 and a memory 1002, the memory stores a program that can be run on the processor, and the processor implements the following operations when executing the program: according to the position coordinates of the three-dimensional data point to be encoded in the cylindrical coordinate system, determining the maximum value of the range value of the initial block of the three-dimensional data point to be encoded in the radial distance direction, the azimuth direction and the height direction; performing at least one octree division on the initial block to obtain multiple first-class sub-blocks; performing at least one quadtree division and / or binary tree division on at least one first-class sub-block of the first-class sub-block; and encoding the three-dimensional data point to be encoded according to the division result of the initial block.

[0308] Optionally,

[0309] When the maximum values ​​of the range values ​​in three directions of the initial block are not equal;

[0310] The processor 1001 is specifically configured to perform at least one quadtree division on at least one first-category sub-block in the first-category sub-block to obtain a plurality of second-category sub-blocks, until range values ​​in two directions of the second-category sub-blocks reach a minimum precision;

[0311] Perform at least one binary tree division on at least one of the second-category sub-blocks to obtain a plurality of third-category sub-blocks, until range values ​​of the third-category sub-blocks in three directions reach minimum precision.

[0312] Optionally,

[0313] The maximum values ​​of the range values ​​in two directions of the initial block are equal, and the maximum value of the equal range values ​​is greater than the maximum value of the range value in the other direction;

[0314] The processor 1001 is specifically configured to perform at least one quadtree division on at least one first-category sub-block in the first-category sub-block to obtain multiple second-category sub-blocks, until range values ​​of the second-category sub-blocks in three directions reach minimum precision.

[0315] Optionally,

[0316] When the maximum values ​​of the range values ​​in two directions of the initial block are equal, and the maximum value of the equal range values ​​is smaller than the maximum value of the range value in the other direction;

[0317] The processor 1001 is specifically configured to perform at least one binary tree division on at least one first-category sub-block in the first-category sub-block to obtain multiple third-category sub-blocks, until range values ​​of the third-category sub-blocks in three directions reach minimum precision.

[0318] Optionally,

[0319] The processor 1001 is specifically configured to determine a first-type target sub-block in the first-type sub-block, wherein a range value in one direction of the first-type target sub-block reaches a minimum precision and the first-type target sub-block contains a three-dimensional data point;

[0320] Performing at least one quadtree division on the first-category target sub-blocks;

[0321] Determine a second-type target sub-block in the second-type sub-block, wherein the range values ​​of the second-type target sub-block in two directions reach the minimum precision and the second-type target sub-block contains a three-dimensional data point;

[0322] The second-type target sub-blocks are partitioned into a binary tree at least once.

[0323] Optionally,

[0324] The processor 1001 is specifically configured to determine a first-type target sub-block in the first-type sub-block, wherein a range value in one direction of the first-type target sub-block reaches a minimum precision and the first-type target sub-block contains a three-dimensional data point;

[0325] The first-category target sub-blocks are divided into quadtrees at least once.

[0326] Optionally,

[0327] The processor 1001 is specifically configured to determine a first-type target sub-block in the first-type sub-block, wherein the range values ​​of the first-type target sub-block in two directions reach the minimum precision and the first-type target sub-block contains a three-dimensional data point;

[0328] The first-category target sub-blocks are partitioned into a binary tree at least once.

[0329] Optionally,

[0330] The processor 1001 is specifically configured to encode each division situation in sequence according to the division order and the three-dimensional data points contained in the sub-blocks obtained in each division.

[0331] Optionally,

[0332] The processor 1001 is specifically configured to obtain a code stream corresponding to each division according to whether the sub-block obtained by each division contains three-dimensional data points;

[0333] According to the division order, the code stream corresponding to each division is encoded in sequence.

[0334] Optionally,

[0335] The processor 1001 is specifically configured to obtain a bit stream corresponding to each sub-block according to the three-dimensional data points contained in the sub-blocks obtained by each division, wherein each sub-block corresponds to one bit, and the bit value of the sub-block containing the three-dimensional data point is different from that of the sub-block not containing the three-dimensional data point;

[0336] A code stream corresponding to each division is generated according to the bit values ​​corresponding to the sub-blocks.

[0337] The bit values ​​corresponding to the sub-blocks obtained in each division are obtained, and the code stream corresponding to each division is generated according to the bit values ​​corresponding to all the sub-blocks.

[0338] Optionally,

[0339] The code stream corresponding to each division contains 8 bits;

[0340] The processor 1001 is specifically configured to determine the bit values ​​of the 8 bits according to the three-dimensional data points contained in the eight sub-blocks obtained by the division if the octree division is performed;

[0341] If quadtree division is performed, the bit values ​​of 4 bits among the 8 bits are determined according to the three-dimensional data points contained in the four sub-blocks obtained by the division, and the bit values ​​of the remaining 4 bits are the same as the bit values ​​of the sub-blocks that do not contain the three-dimensional data points;

[0342] If binary tree partitioning is performed, the bit values ​​of 2 bits among the 8 bits are determined according to the 3D data points contained in the two sub-blocks obtained by the partitioning, and the bit values ​​of the remaining 6 bits are the same as the bit values ​​of the sub-block that does not contain the 3D data points.

[0343] Optionally,

[0344] The processor 1001 is specifically configured to determine the bit values ​​of the 8 bits according to the three-dimensional data points contained in the eight sub-blocks obtained by the octree division, if the bit stream corresponding to each division is 8 bits;

[0345] If quadtree division is performed, and the code stream corresponding to each division is 4 bits, the bit values ​​of the 4 bits are determined according to the three-dimensional data points contained in the four sub-blocks obtained by the division;

[0346] If binary tree division is performed, and the code stream corresponding to each division is 2 bits, the bit values ​​of the 2 bits are determined according to the three-dimensional data points contained in the two sub-blocks obtained by the division.

[0347] Optionally,

[0348] The bit value corresponding to the sub-block containing the three-dimensional data point is 0, and the bit value corresponding to the sub-block not containing the three-dimensional data point is 1;

[0349] or,

[0350] The bit value corresponding to the sub-block containing the three-dimensional data point is 1, and the bit value corresponding to the sub-block not containing the three-dimensional data point is 0.

[0351] Optionally,

[0352] The processor 1001 is also used to encode a first identifier when the range value in one direction or two directions of the divided sub-block reaches the minimum precision, and the first identifier is used to indicate a change in the division method, and the division method is octree division, quadtree division or binary tree division.

[0353] Optionally,

[0354] When the range value of a sub-block obtained by performing the octree division in one direction reaches the minimum precision or the range values ​​in two directions reach the minimum precision at the same time, the first identifier is 8 bits, and the bit values ​​of the 8 bits are consistent with the bit values ​​corresponding to the sub-block that does not contain the three-dimensional data point;

[0355] When the range values ​​in two directions of the sub-block obtained by quadtree division reach the minimum precision, the first identifier is 4 bits, and the bit values ​​of the 4 bits are consistent with the bit values ​​corresponding to the sub-block that does not contain the three-dimensional data point.

[0356] Optionally,

[0357] The processor 1001 is further configured to encode a second identifier, where the second identifier is used to indicate a direction in which the range value reaches the minimum precision or a direction in which the range value does not reach the minimum precision.

[0358] Optionally,

[0359] The second identifier is 3 bits or 2 bits.

[0360] Optionally,

[0361] The processor 1001 is further configured to encode a third identifier, where the third identifier is used to indicate the end of partitioning.

[0362] Optionally,

[0363] The processor 1001 is specifically used to quantify the position coordinates of the three-dimensional data points to be encoded in the cylindrical coordinate system;

[0364] According to the quantized position coordinates of the three-dimensional data points, the maximum value of the range values ​​of the position coordinates of the three-dimensional data points in three directions is obtained;

[0365] According to the maximum values ​​of the range values ​​of the position coordinates of the three-dimensional data points in three directions, the maximum values ​​of the range values ​​in the radial distance direction, the azimuth direction and the height direction of the initial block of the three-dimensional data points to be encoded are determined.

[0366] Optionally,

[0367] The processor 1001 is specifically used to obtain, in each direction, a value that is closest to the maximum value of the range value among values ​​that are greater than or equal to the integer power of 2 of the maximum value of the range value of the position coordinates of the three-dimensional data point, as the maximum value of the range value of the initial block in the direction.

[0368] Optionally,

[0369] The processor 1001 is specifically configured to quantize the radial distance of the position coordinates of the three-dimensional data according to a quantization step in the radial distance direction;

[0370] quantizing the azimuth of the position coordinates of the three-dimensional data according to a quantization step in the azimuth direction;

[0371] The height of the position coordinates of the three-dimensional data is quantized according to a quantization step size in the height direction.

[0372] Optionally,

[0373] The processor 1001 is specifically configured to quantize the radial distance of the position coordinate according to the quantization step size in the radial distance direction and the minimum value in the radial distance direction;

[0374] quantizing the azimuth of the position coordinates according to the quantization step size in the azimuth direction and the minimum value in the azimuth direction;

[0375] The height of the position coordinate is quantized according to the quantization step size in the height direction and the minimum value in the height direction.

[0376] Optionally,

[0377] The processor 1001 is further used to encode the quantized minimum value and the quantized maximum value of the position coordinates of the three-dimensional data point to be encoded in three directions;

[0378] or,

[0379] Encode the minimum value and the maximum value before quantization of the position coordinates of the three-dimensional data point to be encoded in three directions;

[0380] or,

[0381] Encode the minimum value before quantization and the maximum value after quantization of the position coordinates of the three-dimensional data point to be encoded in three directions;

[0382] or,

[0383] The minimum value after quantization and the maximum value before quantization of the position coordinates of the three-dimensional data point to be encoded in three directions are encoded.

[0384] Optionally,

[0385] The processor 1001 is further configured to encode the maximum of the quantized minimum value and the quantized maximum value of the position coordinates of the three-dimensional data point to be encoded in three directions;

[0386] or,

[0387] Encoding the minimum value before quantization and the maximum value after quantization of the position coordinates of the three-dimensional data point to be encoded in three directions;

[0388] or,

[0389] Encoding the maximum value of the minimum value after quantization and the maximum value before quantization of the position coordinates of the three-dimensional data point to be encoded in three directions;

[0390] or,

[0391] The minimum value before quantization and the maximum value before quantization of the position coordinates of the three-dimensional data point to be encoded in three directions are encoded.

[0392] Optionally,

[0393] The processor 1001 is further used to encode the minimum value of the quantized minimum value and the minimum value of the quantized maximum value of the position coordinates of the three-dimensional data point to be encoded in three directions;

[0394] or,

[0395] Encode the minimum value of the position coordinates of the three-dimensional data point to be encoded in three directions before quantization and the minimum value of the maximum value after quantization;

[0396] or,

[0397] Encode the minimum value of the position coordinates of the three-dimensional data point to be encoded in three directions after quantization and the minimum value of the maximum value before quantization;

[0398] or,

[0399] The minimum value of the position coordinates of the three-dimensional data point to be encoded in three directions before quantization and the minimum value of the maximum value before quantization are encoded.

[0400] Optionally,

[0401] The processor 1001 is specifically configured to perform at least one octree partitioning on the initial block according to the center point coordinates;

[0402] At least one of the first-category sub-blocks is subjected to at least one quadtree division and / or binary tree division according to the center point coordinates.

[0403] Optionally,

[0404] The processor 1001 is further configured to obtain the coordinates of the center point.

[0405] Optionally,

[0406] The processor 1001 is specifically configured to obtain the coordinate value of the center point in the radial distance direction according to the maximum value and the minimum value of the block to be divided each time in the radial distance direction;

[0407] According to the maximum and minimum values ​​of the blocks to be divided in the height direction each time, the coordinate value of the center point in the height direction is obtained;

[0408] The coordinate value of the center point in the azimuth direction is obtained according to the maximum and minimum values ​​of the blocks to be divided each time in the azimuth direction.

[0409] Optionally,

[0410] The processor 1001 is further configured to encode the number of three-dimensional data points in a sub-block containing three-dimensional data points.

[0411] Optionally,

[0412] When a sub-block contains 1 three-dimensional data point, the code is 0; when a sub-block contains N three-dimensional data points, the codes are 1 and N-1.

[0413] Optionally,

[0414] The initial block is a portion of a cylinder.

[0415] Optionally,

[0416] The center of the cylinder is the location of the three-dimensional data point acquisition device.

[0417] Optionally,

[0418] The three-dimensional data point acquisition device is a laser radar, a photoelectric radar or a laser scanner.

[0419] The device of this embodiment can be used to perform Figure 2-Figure 8 The technical solution of any of the method embodiments shown has similar implementation principles and technical effects, which will not be repeated here.

[0420] Fig.11A schematic structural diagram of a decoding device for three-dimensional data points provided in an embodiment of the present invention, the device of this embodiment includes: a processor 1101, a memory 1102, the memory stores a program that can be run on the processor, and the processor implements the following operations when executing the program: obtaining a code stream; determining the maximum value of the range value of the initial block in the radial distance direction, the azimuth direction and the height direction according to the code stream; constructing an initial block according to the maximum value of the range value of the initial block in the radial distance direction, the azimuth direction and the height direction; performing at least one octree division on the initial block to obtain multiple first-category sub-blocks; performing at least one quadtree and / or binary tree division on at least one first-category sub-block in the first-category sub-block; and obtaining the position coordinates of the three-dimensional data point to be decoded according to the position of the sub-block obtained by the division.

[0421] Optionally,

[0422] When the maximum values ​​of the range values ​​in three directions of the initial block are not equal;

[0423] The processor 1101 is specifically configured to perform at least one quadtree division on at least one first-category sub-block in the first-category sub-block to obtain a plurality of second-category sub-blocks, until range values ​​in two directions of the second-category sub-blocks reach a minimum precision;

[0424] Perform at least one binary tree division on at least one of the second-category sub-blocks to obtain a plurality of third-category sub-blocks, until range values ​​of the third-category sub-blocks in three directions reach minimum precision.

[0425] Optionally,

[0426] When the maximum values ​​of the range values ​​in two directions of the initial block are equal, and the maximum value of the equal range values ​​is greater than the maximum value of the range value in the other direction;

[0427] The processor 1101 is specifically configured to perform at least one quadtree division on at least one first-category sub-block in the first-category sub-blocks to obtain multiple second-category sub-blocks, until range values ​​of the second-category sub-blocks in three directions reach minimum precision.

[0428] Optionally,

[0429] When the maximum values ​​of the range values ​​in two directions of the initial block are equal, and the maximum value of the equal range values ​​is smaller than the maximum value of the range value in the other direction;

[0430] The processor 1101 is specifically configured to perform at least one binary tree division on at least one first-category sub-block in the first-category sub-block to obtain multiple third-category sub-blocks, until range values ​​of the third-category sub-blocks in three directions reach minimum precision.

[0431] Optionally,

[0432] The processor 1101 is specifically configured to determine, according to the bit value corresponding to the first-type sub-block, a first-type target sub-block in the first-type sub-block, wherein a range value in one direction of the first-type target sub-block reaches a minimum precision and the first-type target sub-block contains a three-dimensional data point;

[0433] Performing at least one quadtree division on the first-category target sub-blocks;

[0434] Determine, according to the bit values ​​corresponding to the second-type sub-blocks, a second-type target sub-block in the second-type sub-blocks, wherein the range values ​​of the second-type target sub-blocks in two directions reach the minimum precision and the second-type target sub-blocks contain three-dimensional data points;

[0435] The second-type target sub-blocks are partitioned into a binary tree at least once.

[0436] Optionally,

[0437] The processor 1101 is specifically configured to determine, according to the bit value of the first-type sub-block, a first-type target sub-block in the first-type sub-block, wherein a range value in one direction of the first-type target sub-block reaches a minimum precision and the first-type target sub-block contains a three-dimensional data point;

[0438] The first-category target sub-blocks are divided into quadtrees at least once.

[0439] Optionally,

[0440] The processor 1101 is specifically configured to determine, according to the bit values ​​corresponding to the first-type sub-blocks, a first-type target sub-block in the first-type sub-blocks, where the range values ​​of the first-type target sub-blocks in two directions reach the minimum precision and the first-type target sub-blocks contain three-dimensional data points;

[0441] The first-category target sub-blocks are partitioned into a binary tree at least once.

[0442] Optionally,

[0443] The processor 1101 is further configured to decode a first identifier, where the first identifier is used to indicate a change in a partitioning method, where the partitioning method is octree partitioning, quadtree partitioning, or binary tree partitioning;

[0444] A change partitioning method is determined according to the first identifier.

[0445] Optionally,

[0446] The processor 1101 is further configured to decode a second identifier, where the second identifier is used to indicate a direction that has reached the minimum precision or a direction that has not reached the minimum precision;

[0447] According to the second identifier, a direction that reaches the minimum accuracy or a direction that does not reach the minimum accuracy is determined.

[0448] Optionally,

[0449] The processor 1101 is further configured to decode a third identifier, where the third identifier is used to indicate the end of the partitioning;

[0450] The end of the division is determined according to the third identifier.

[0451] Optionally,

[0452] When the maximum values ​​of the range values ​​in three directions of the initial block are all equal;

[0453] The processor 1101 is specifically configured to determine to perform quadtree partitioning or binary tree partitioning according to the first identifier and the second identifier;

[0454] The end of the partition is determined based on the third identifier.

[0455] Optionally,

[0456] The processor 1101 is specifically used to obtain the quantized minimum value and the quantized maximum value of the position coordinates in three directions according to the bit stream;

[0457] According to the minimum value and the maximum value of the quantized position coordinates in the three directions, the maximum value of the range values ​​of the position coordinates in the radial distance direction, the azimuth direction and the height direction is obtained;

[0458] According to the maximum value of the range value of the position coordinate in the radial distance direction, the azimuth direction and the height direction, the maximum value of the range value of the initial block in the radial distance direction, the azimuth direction and the height direction is obtained.

[0459] Optionally,

[0460] The processor 1101 is specifically configured to obtain, in each direction, a value that is closest to the maximum value of the range value among values ​​that are an integer power of 2 that is greater than or equal to the maximum value of the range value of the position coordinate, as the maximum value of the range value of the initial block in the direction.

[0461] Optionally,

[0462] The processor 1101 is specifically configured to obtain, according to the bit stream, a minimum value and a maximum value of the position coordinate before quantization in the three directions;

[0463] The minimum value and the maximum value of the position coordinates in the three directions after quantization are obtained according to the minimum value and the maximum value before quantization of the position coordinates in the three directions and the quantization step lengths in the three directions.

[0464] Optionally,

[0465] The processor 1101 is specifically configured to obtain, according to the bit stream, a minimum value of the position coordinate before quantization and a maximum value after quantization in the three directions;

[0466] The minimum value of the position coordinate after quantization in the three directions is obtained according to the minimum value of the position coordinate before quantization in the three directions and the quantization step lengths in the three directions.

[0467] Optionally,

[0468] The processor 1101 is specifically configured to obtain, according to the bit stream, a minimum value after quantization and a maximum value before quantization of the position coordinates in the three directions;

[0469] According to the maximum values ​​of the position coordinates before quantization in the three directions and the quantization step sizes in the three directions, the maximum values ​​of the position coordinates after quantization in the three directions are obtained.

[0470] Optionally,

[0471] The processor 1101 is specifically configured to obtain, according to the bit stream, a maximum value of a minimum value before quantization and a maximum value after quantization of the position coordinates in three directions;

[0472] According to the minimum value of the position coordinates before quantization in the three directions and the quantization step lengths in the three directions, the minimum value after quantization in the three directions is obtained;

[0473] Determine the maximum value of the quantized maximum value as the maximum value of the quantized values ​​in the three directions.

[0474] Optionally,

[0475] The processor 1101 is specifically configured to obtain, according to the bit stream, a minimum value of a minimum value before quantization and a minimum value of a maximum value after quantization of the position coordinates in three directions;

[0476] According to the minimum value of the position coordinates before quantization in the three directions and the quantization step lengths in the three directions, the minimum value after quantization in the three directions is obtained;

[0477] Determine the minimum value of the quantized maximum value as the quantized maximum value in the three directions.

[0478] Optionally,

[0479] The processor 1101 is specifically configured to obtain, according to the bit stream, a maximum value of a quantized minimum value and a quantized maximum value of the position coordinate in three directions;

[0480] Determine the maximum value of the quantized maximum value as the maximum value of the quantized values ​​in the three directions.

[0481] Optionally,

[0482] The processor 1101 is specifically configured to obtain, according to the bit stream, a minimum value of a quantized minimum value and a minimum value of a quantized maximum value of the position coordinate in three directions;

[0483] Determine the minimum value of the quantized maximum value as the quantized maximum value in the three directions.

[0484] Optionally,

[0485] The processor 1101 is specifically configured to obtain, according to the bit stream, a maximum value of a minimum value before quantization and a maximum value before quantization of the position coordinates in three directions;

[0486] According to the minimum value of the position coordinates before quantization in the three directions and the quantization step lengths in the three directions, the minimum value after quantization in the three directions is obtained;

[0487] Obtaining a maximum value of a maximum value after quantization according to a maximum value of the maximum value before quantization and a quantization step size;

[0488] Determine the maximum value of the quantized maximum value as the maximum value of the quantized values ​​in the three directions.

[0489] Optionally,

[0490] The processor 1101 is specifically configured to obtain, according to the bit stream, a minimum value of a minimum value of the position coordinate before quantization and a minimum value of a maximum value before quantization in three directions;

[0491] According to the minimum value of the position coordinates before quantization in the three directions and the quantization step lengths in the three directions, the minimum value after quantization in the three directions is obtained;

[0492] Obtaining a minimum value of the maximum value after quantization according to the minimum value of the maximum value before quantization and the quantization step size;

[0493] Determine the minimum value of the quantized maximum value as the quantized maximum value in the three directions.

[0494] Optionally,

[0495] The processor 1101 is specifically configured to obtain, according to the bit stream, a maximum value of a minimum value after quantization and a maximum value before quantization of the position coordinate in three directions;

[0496] Obtaining a maximum value of a maximum value after quantization according to a maximum value of the maximum value before quantization and a quantization step size;

[0497] Determine the maximum value of the quantized maximum value as the maximum value of the quantized values ​​in the three directions.

[0498] Optionally,

[0499] The processor 1101 is specifically configured to obtain, according to the bit stream, a minimum value of a quantized minimum value of the position coordinate in three directions and a minimum value of a maximum value before quantization;

[0500] Obtaining a minimum value of the maximum value after quantization according to the minimum value of the maximum value before quantization and the quantization step size;

[0501] Determine the minimum value of the quantized maximum value as the quantized maximum value in the three directions.

[0502] Optionally,

[0503] The processor 1101 is specifically configured to obtain the position coordinates of the three-dimensional data point to be encoded according to the position of the sub-block obtained by division and the ratio of the range values ​​of the three directions of the sub-block finally obtained by division.

[0504] Optionally,

[0505] The processor 1101 is specifically configured to obtain first position coordinates of a to-be-encoded three-dimensional data point according to positions of the sub-blocks obtained by division;

[0506] Obtaining the ratio of the minimum value of the range values ​​in the three directions of the sub-block finally obtained by the division to the range values ​​in the remaining two directions;

[0507] The coordinate values ​​of each coordinate in the remaining two directions are multiplied by the ratio of the directions.

[0508] Optionally,

[0509] The processor 1101 is specifically configured to obtain first position coordinates of a to-be-encoded three-dimensional data point according to positions of the sub-blocks obtained by division;

[0510] Obtaining the ratios of the maximum values ​​of the range values ​​in the three directions of the sub-blocks finally obtained by the division to the range values ​​in the remaining two directions;

[0511] The coordinate values ​​of each coordinate in the remaining two directions are multiplied by the ratios corresponding to the directions.

[0512] Optionally,

[0513] The processor 1101 is further configured to decode the number of three-dimensional data points in a sub-block containing three-dimensional data points.

[0514] Optionally,

[0515] The processor 1101 is specifically configured to perform at least one octree division on the initial block according to the center point coordinates;

[0516] At least one of the first-category sub-blocks is subjected to at least one quadtree division and / or binary tree division according to the center point coordinates.

[0517] Optionally,

[0518] The processor 1101 is further configured to obtain the coordinates of the center point.

[0519] Optionally,

[0520] The processor 1101 is specifically configured to obtain the coordinate value of the center point in the radial distance direction according to the maximum value and the minimum value of the block to be divided each time in the radial distance direction;

[0521] According to the maximum and minimum values ​​of the blocks to be divided each time in the azimuth direction, the coordinate value of the center point in the azimuth direction is obtained;

[0522] According to the maximum and minimum values ​​of the blocks to be divided in the height direction each time, the coordinate value of the center point in the height direction is obtained.

[0523] Optionally,

[0524] The processor 1101 is specifically configured to obtain quantized position coordinates of the three-dimensional data points to be encoded according to the positions of the sub-blocks obtained by division;

[0525] The quantized position coordinates are inversely quantized to obtain the position coordinates of the three-dimensional data points before quantization.

[0526] Optionally,

[0527] The processor 1101 is specifically configured to inversely quantize the radial distance of the position coordinates of the three-dimensional data according to the quantization step size in the radial distance direction;

[0528] De-quantizing the azimuth of the position coordinates of the three-dimensional data according to the quantization step size in the azimuth direction;

[0529] The height of the position coordinates of the three-dimensional data is inversely quantized according to the quantization step size in the height direction.

[0530] Optionally,

[0531] The processor 1101 is specifically configured to inversely quantize the radial distance of the position coordinates of the three-dimensional data according to the quantization step in the radial distance direction and the minimum value of the three-dimensional data point before quantization in the radial distance direction;

[0532] De-quantizing the azimuth of the position coordinates of the three-dimensional data according to the quantization step size in the azimuth direction and the minimum value of the three-dimensional data point before quantization in the azimuth direction;

[0533] The height of the position coordinates of the three-dimensional data is inversely quantized according to the quantization step size in the height direction and the minimum value of the three-dimensional data point before quantization in the height direction.

[0534] Optionally,

[0535] The initial block is a portion of a cylinder.

[0536] Optionally,

[0537] The center of the cylinder is the location of the three-dimensional data point acquisition device.

[0538] Optionally,

[0539] The three-dimensional data point acquisition device is a laser radar, a photoelectric radar or a laser scanner.

[0540] The device of this embodiment can be used to perform Fig. 9 The technical solution of the method embodiment shown has similar implementation principles and technical effects, which will not be repeated here.

[0541] In some examples, the three-dimensional data point mentioned above may be any three-dimensional data point in the point cloud data acquired by the ranging device. The ranging device may be an electronic device such as a laser radar or a laser ranging device. In one embodiment, the ranging device is used to sense external environmental information, such as distance information, orientation information, reflection intensity information, speed information, etc. of an environmental target. A three-dimensional data point may include at least one of the external environmental information measured by the ranging device.

[0542] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of the present invention, rather than to limit it. Although the present invention has been described in detail with reference to the aforementioned embodiments, those skilled in the art should understand that they can still modify the technical solutions described in the aforementioned embodiments, or replace some or all of the technical features therein with equivalents. However, these modifications or replacements do not cause the essence of the corresponding technical solutions to deviate from the scope of the technical solutions of the embodiments of the present invention.

Claims

1. A method for encoding three-dimensional data points, characterized in that: include: Determine, according to the position coordinates of the three-dimensional data points to be encoded in the cylindrical coordinate system, the maximum value of the range values ​​of the initial block of the three-dimensional data points to be encoded in the radial distance direction, the azimuth direction and the height direction, wherein the maximum value of the range values ​​in the radial distance direction, the azimuth direction and the height direction is used to determine the range of the initial block; Performing at least one octree partition on the initial block to obtain a plurality of first-category sub-blocks; Performing at least one quadtree partitioning and / or binary tree partitioning on at least one first-category sub-block among the first-category sub-blocks; The three-dimensional data points to be encoded are encoded according to the division result of the initial block.

2. The method according to claim 1, characterized in that When the maximum values ​​of the range values ​​in three directions of the initial block are not equal; The performing at least one quadtree division and / or binary tree division on at least one first-category sub-block in the first-category sub-blocks comprises: Perform at least one quadtree division on at least one first-category sub-block of the first-category sub-blocks to obtain a plurality of second-category sub-blocks, until range values ​​of the second-category sub-blocks in two directions reach minimum precision; Perform at least one binary tree division on at least one of the second-category sub-blocks to obtain a plurality of third-category sub-blocks, until range values ​​of the third-category sub-blocks in three directions reach minimum precision.

3. The method according to claim 1, characterized in that When the maximum values ​​of the range values ​​in two directions of the initial block are equal, and the maximum value of the equal range values ​​is greater than the maximum value of the range value in the other direction; The performing at least one quadtree division and / or binary tree division on at least one first-category sub-block in the first-category sub-blocks comprises: At least one first-category sub-block in the first-category sub-block is divided into quadtrees at least once to obtain a plurality of second-category sub-blocks, until range values ​​of the second-category sub-blocks in three directions reach minimum precision.

4. The method according to claim 1, characterized in that: When the maximum values ​​of the range values ​​in two directions of the initial block are equal, and the maximum value of the equal range values ​​is smaller than the maximum value of the range value in the other direction; The performing at least one quadtree division and / or binary tree division on at least one first-category sub-block in the first-category sub-blocks comprises: At least one first-category sub-block in the first-category sub-block is divided into a binary tree at least once to obtain a plurality of third-category sub-blocks, until range values ​​of the third-category sub-blocks in three directions reach minimum precision.

5. The method according to claim 2, characterized in that: The performing at least one quadtree division on at least one first-category sub-block in the first-category sub-blocks comprises: Determine a first-category target sub-block in the first-category sub-block, wherein a range value in one direction of the first-category target sub-block reaches a minimum precision and the first-category target sub-block contains a three-dimensional data point; Performing at least one quadtree division on the first-category target sub-blocks; The performing at least one binary tree division on at least one second-type sub-block in the second-type sub-blocks comprises: Determine a second-type target sub-block in the second-type sub-block, wherein the range values ​​of the second-type target sub-block in two directions reach the minimum precision and the second-type target sub-block contains a three-dimensional data point; The second-type target sub-blocks are partitioned into a binary tree at least once.

6. The method according to claim 3, characterized in that The performing at least one quadtree division on at least one first-category sub-block in the first-category sub-blocks comprises: Determine a first-category target sub-block in the first-category sub-block, wherein a range value in one direction of the first-category target sub-block reaches a minimum precision and the first-category target sub-block contains a three-dimensional data point; The first-category target sub-blocks are divided into quadtrees at least once.

7. The method according to claim 4, characterized in that The performing at least one binary tree division on at least one first-category sub-block in the first-category sub-blocks comprises: Determine a first-category target sub-block in the first-category sub-block, wherein range values ​​of the first-category target sub-block in two directions reach minimum precision and the first-category target sub-block contains three-dimensional data points; The first-category target sub-blocks are partitioned into a binary tree at least once.

8. The method according to any one of claims 1 to 7, characterized in that: The step of encoding the to-be-encoded three-dimensional data points according to the division result of the initial block comprises: According to the division order and the three-dimensional data points contained in the sub-blocks obtained in each division, each division situation is encoded in turn.

9. The method according to claim 8, characterized in that The encoding of each division situation in sequence according to the division order and the three-dimensional data points contained in the sub-blocks obtained by each division includes: According to the situation that the sub-blocks obtained by each division contain three-dimensional data points, a code stream corresponding to each division is obtained; According to the division order, the code stream corresponding to each division is encoded in sequence.

10. The method according to claim 9, characterized in that The step of obtaining a code stream corresponding to each division according to the three-dimensional data points contained in the sub-blocks obtained by each division includes: According to the three-dimensional data points contained in the sub-blocks obtained by each division, a bit stream corresponding to each sub-block is obtained, each sub-block corresponds to one bit, and the bit value of the sub-block containing the three-dimensional data point is different from that of the sub-block not containing the three-dimensional data point; Generating a code stream corresponding to each division according to the bit values ​​corresponding to the sub-blocks; The bit values ​​corresponding to the sub-blocks obtained in each division are obtained, and the code stream corresponding to each division is generated according to the bit values ​​corresponding to all the sub-blocks.

11. The method according to claim 10, characterized in that The code stream corresponding to each division contains 8 bits; Generating the code stream corresponding to each division according to the bit value corresponding to the sub-block includes at least one of the following operations: If octree partitioning is performed, the bit values ​​of the 8 bits are determined according to the three-dimensional data points contained in the eight sub-blocks obtained by the partitioning; If quadtree division is performed, the bit values ​​of 4 bits among the 8 bits are determined according to the three-dimensional data points contained in the four sub-blocks obtained by the division, and the bit values ​​of the remaining 4 bits are the same as the bit values ​​of the sub-blocks that do not contain the three-dimensional data points; If binary tree partitioning is performed, the bit values ​​of 2 bits among the 8 bits are determined according to the 3D data points contained in the two sub-blocks obtained by the partitioning, and the bit values ​​of the remaining 6 bits are the same as the bit values ​​of the sub-block that does not contain the 3D data points.

12. The method according to claim 10, characterized in that Generating the code stream corresponding to each division according to the bit value corresponding to the sub-block includes at least one of the following operations: If octree division is performed, the code stream corresponding to each division is 8 bits, and the bit values ​​of the 8 bits are determined according to the three-dimensional data points contained in the eight sub-blocks obtained by the division; If quadtree division is performed, and the code stream corresponding to each division is 4 bits, the bit values ​​of the 4 bits are determined according to the three-dimensional data points contained in the four sub-blocks obtained by the division; If binary tree division is performed, and the code stream corresponding to each division is 2 bits, the bit values ​​of the 2 bits are determined according to the three-dimensional data points contained in the two sub-blocks obtained by the division.

13. The method according to claim 11 or 12, characterized in that: The bit value corresponding to the sub-block containing the three-dimensional data point is 0, and the bit value corresponding to the sub-block not containing the three-dimensional data point is 1; or, The bit value corresponding to the sub-block containing the three-dimensional data point is 1, and the bit value corresponding to the sub-block not containing the three-dimensional data point is 0.

14. The method according to claim 12, characterized in that The method further comprises: When the range value in one direction or two directions of the divided sub-block reaches the minimum precision, a first identifier is encoded, and the first identifier is used to indicate a change in the division method, and the division method is octree division, quadtree division or binary tree division.

15. The method according to claim 14, characterized in that When the range value of a sub-block obtained by performing the octree division in one direction reaches the minimum precision or the range values ​​in two directions reach the minimum precision at the same time, the first identifier is 8 bits, and the bit values ​​of the 8 bits are consistent with the bit values ​​corresponding to the sub-block that does not contain the three-dimensional data point; When the range values ​​in two directions of the sub-block obtained by quadtree division reach the minimum precision, the first identifier is 4 bits, and the bit values ​​of the 4 bits are consistent with the bit values ​​corresponding to the sub-block that does not contain the three-dimensional data point.

16. The method according to claim 14, characterized in that After encoding the first identifier, the method further includes: A second identifier is encoded, the second identifier being used to indicate a direction in which the range value reaches the minimum precision or a direction in which the minimum precision is not reached.

17. The method according to claim 16, characterized in that The second identifier is 3 bits or 2 bits.

18. The method according to any one of claims 14 to 17, characterized in that: Also includes: A third identifier is encoded, the third identifier being used to indicate the end of the partition.

19. The method according to any one of claims 1 to 7, characterized in that: The step of determining the maximum value of the range values ​​of the initial block of the three-dimensional data points to be encoded in the radial distance direction, the azimuth direction and the height direction according to the position coordinates of the three-dimensional data points to be encoded in the cylindrical coordinate system comprises: Quantify the position coordinates of the three-dimensional data points to be encoded in the cylindrical coordinate system; According to the quantized position coordinates of the three-dimensional data points, the maximum value of the range values ​​of the position coordinates of the three-dimensional data points in three directions is obtained; According to the maximum values ​​of the range values ​​of the position coordinates of the three-dimensional data points in three directions, the maximum values ​​of the range values ​​in the radial distance direction, the azimuth direction and the height direction of the initial block of the three-dimensional data points to be encoded are determined.

20. The method according to claim 19, characterized in that The step of determining the maximum values ​​of the range values ​​in the radial distance direction, the azimuth direction, and the height direction of the initial block of the three-dimensional data points to be encoded according to the maximum values ​​of the range values ​​of the position coordinates of the three-dimensional data points in the three directions comprises: In each direction, the value closest to the maximum value of the range value among the values ​​that are greater than or equal to the integer power of 2 of the maximum value of the range value of the position coordinates of the three-dimensional data point is obtained, which is the maximum value of the range value of the initial block in the direction.

21. The method according to claim 19, characterized in that The quantizing of the position coordinates of the three-dimensional data points to be encoded in the cylindrical coordinate system includes at least one of the following operations: quantizing the radial distance of the position coordinates of the three-dimensional data according to a quantization step in the radial distance direction; quantizing the azimuth of the position coordinates of the three-dimensional data according to a quantization step in the azimuth direction; The height of the position coordinates of the three-dimensional data is quantized according to a quantization step size in the height direction.

22. The method according to claim 19, characterized in that The quantizing of the position coordinates of the three-dimensional data points to be encoded in the cylindrical coordinate system includes at least one of the following operations: quantizing the radial distance of the position coordinates according to the quantization step size in the radial distance direction and the minimum value in the radial distance direction; quantizing the azimuth of the position coordinates according to the quantization step size in the azimuth direction and the minimum value in the azimuth direction; The height of the position coordinate is quantized according to the quantization step size in the height direction and the minimum value in the height direction.

23. The method according to any one of claims 1 to 7, characterized in that: Also includes: Encoding the quantized minimum value and the quantized maximum value of the position coordinates of the three-dimensional data point to be encoded in three directions; or, Encode the minimum value and the maximum value before quantization of the position coordinates of the three-dimensional data point to be encoded in three directions; or, Encode the minimum value before quantization and the maximum value after quantization of the position coordinates of the three-dimensional data point to be encoded in three directions; or, The minimum value after quantization and the maximum value before quantization of the position coordinates of the three-dimensional data point to be encoded in three directions are encoded.

24. The method according to any one of claims 17, characterized in that: Also includes: Encoding the maximum of the quantized minimum value and the quantized maximum value of the position coordinates of the three-dimensional data point to be encoded in three directions; or, Encoding the minimum value before quantization and the maximum value after quantization of the position coordinates of the three-dimensional data point to be encoded in three directions; or, Encoding the maximum value of the minimum value after quantization and the maximum value before quantization of the position coordinates of the three-dimensional data point to be encoded in three directions; or, The minimum value before quantization and the maximum value before quantization of the position coordinates of the three-dimensional data point to be encoded in three directions are encoded.

25. The method according to any one of claims 1 to 7, characterized in that: Also includes: Encode the minimum value of the quantized minimum value and the minimum value of the quantized maximum value of the position coordinates of the three-dimensional data point to be encoded in three directions; or, Encode the minimum value of the position coordinates of the three-dimensional data point to be encoded in three directions before quantization and the minimum value of the maximum value after quantization; or, Encode the minimum value of the position coordinates of the three-dimensional data point to be encoded in three directions after quantization and the minimum value of the maximum value before quantization; or, The minimum value of the position coordinates of the three-dimensional data point to be encoded in three directions before quantization and the minimum value of the maximum value before quantization are encoded.

26. The method according to any one of claims 1 to 7, characterized in that: The performing at least one octree partitioning on the initial block comprises: Perform at least one octree partition on the initial block according to the center point coordinates; The performing at least one quadtree division and / or binary tree division on at least one first-category sub-block in the first-category sub-blocks comprises: At least one of the first-category sub-blocks is subjected to at least one quadtree division and / or binary tree division according to the center point coordinates.

27. The method according to claim 26, characterized in that The method further comprises: Get the center point coordinates.

28. The method according to claim 27, characterized in that The obtaining of the center point coordinates includes at least one of the following: According to the maximum and minimum values ​​of the blocks to be divided each time in the radial distance direction, the coordinate value of the center point in the radial distance direction is obtained; According to the maximum and minimum values ​​of the blocks to be divided each time in the azimuth direction, the coordinate value of the center point in the azimuth direction is obtained; The coordinate value of the center point in the height direction is obtained according to the maximum and minimum values ​​of the blocks to be divided each time in the height direction.

29. The method according to any one of claims 1 to 7, characterized in that: Also includes: Encodes the number of 3D data points in the sub-block containing the 3D data points.

30. The method according to claim 29, characterized in that When a sub-block contains 1 three-dimensional data point, the code is 0; when a sub-block contains N three-dimensional data points, the codes are 1 and N-1.

31. The method according to any one of claims 1 to 7, characterized in that: The initial block is a portion of a column.

32. The method according to claim 31, characterized in that The column includes a circular cylinder, and / or the center of the column is the position of a three-dimensional data point acquisition device.

33. The method according to claim 32, characterized in that The three-dimensional data point acquisition device is a laser radar, a photoelectric radar or a laser scanner.

34. A three-dimensional data point decoding method, characterized in that: include: Get the code stream; Determine the maximum value of the range value of the initial block in the radial distance direction, the azimuth direction and the height direction according to the code stream; constructing an initial block according to the maximum values ​​of the range values ​​of the initial block in the radial distance direction, the azimuth direction and the height direction, wherein the maximum values ​​of the range values ​​in the radial distance direction, the azimuth direction and the height direction are used to determine the range of the initial block; Dividing the initial block into an octree at least once to obtain a plurality of first-category sub-blocks; Performing at least one quadtree and / or binary tree division on at least one first-category sub-block among the first-category sub-blocks; According to the positions of the sub-blocks obtained by the division, the position coordinates of the three-dimensional data points to be decoded are obtained.

35. The method according to claim 34, characterized in that When the maximum values ​​of the range values ​​in three directions of the initial block are not equal; The performing at least one quadtree division and / or binary tree division on at least one first-category sub-block in the first-category sub-blocks comprises: Perform at least one quadtree division on at least one first-category sub-block of the first-category sub-blocks to obtain a plurality of second-category sub-blocks, until range values ​​of the second-category sub-blocks in two directions reach minimum precision; Perform at least one binary tree division on at least one of the second-category sub-blocks to obtain a plurality of third-category sub-blocks, until range values ​​of the third-category sub-blocks in three directions reach minimum precision.

36. The method according to claim 34, characterized in that When the maximum values ​​of the range values ​​in two directions of the initial block are equal, and the maximum value of the equal range values ​​is greater than the maximum value of the range value in the other direction; The performing at least one quadtree division and / or binary tree division on at least one first-category sub-block in the first-category sub-blocks comprises: At least one first-category sub-block in the first-category sub-block is divided into quadtrees at least once to obtain a plurality of second-category sub-blocks, until range values ​​of the second-category sub-blocks in three directions reach minimum precision.

37. The method according to claim 34, characterized in that When the maximum values ​​of the range values ​​in two directions of the initial block are equal, and the maximum value of the equal range values ​​is smaller than the maximum value of the range value in the other direction; The performing at least one quadtree division and / or binary tree division on at least one first-category sub-block in the first-category sub-blocks comprises: At least one first-category sub-block in the first-category sub-block is divided into a binary tree at least once to obtain a plurality of third-category sub-blocks, until range values ​​of the third-category sub-blocks in three directions reach minimum precision.

38. The method according to claim 35, characterized in that The performing at least one quadtree division on at least one first-category sub-block in the first-category sub-blocks comprises: Determine, according to the bit value corresponding to the first-type sub-block, a first-type target sub-block in the first-type sub-block, wherein a range value in one direction of the first-type target sub-block reaches a minimum precision and the first-type target sub-block contains a three-dimensional data point; Performing at least one quadtree division on the first-category target sub-blocks; The performing at least one binary tree division on at least one second-type sub-block in the second-type sub-blocks comprises: Determine, according to the bit values ​​corresponding to the second-type sub-blocks, a second-type target sub-block in the second-type sub-blocks, wherein the range values ​​of the second-type target sub-blocks in two directions reach the minimum precision and the second-type target sub-blocks contain three-dimensional data points; The second-type target sub-blocks are partitioned into a binary tree at least once.

39. The method according to claim 36, characterized in that The performing at least one quadtree division on at least one first-category sub-block in the first-category sub-blocks comprises: Determine, according to the bit value of the first-type sub-block, a first-type target sub-block in the first-type sub-block, wherein a range value in one direction of the first-type target sub-block reaches a minimum precision and the first-type target sub-block contains a three-dimensional data point; The first-category target sub-blocks are divided into quadtrees at least once.

40. The method according to claim 37, characterized in that The performing at least one binary tree division on at least one first-category sub-block in the first-category sub-blocks comprises: Determine, according to the bit values ​​corresponding to the first-type sub-blocks, a first-type target sub-block in the first-type sub-blocks, wherein the range values ​​of the first-type target sub-blocks in two directions reach the minimum precision and the first-type target sub-blocks contain three-dimensional data points; The first-category target sub-blocks are partitioned into a binary tree at least once.

41. The method according to any one of claims 34 to 40, characterized in that: Also includes: Decoding a first identifier, where the first identifier is used to indicate a change in a partitioning mode, where the partitioning mode is an octree partitioning, a quadtree partitioning, or a binary tree partitioning; A change partitioning method is determined according to the first identifier.

42. The method according to any one of claims 34 to 40, characterized in that: Also includes: decoding a second identifier, the second identifier being used to indicate a direction in which the minimum precision is reached or a direction in which the minimum precision is not reached; According to the second identifier, a direction that reaches the minimum accuracy or a direction that does not reach the minimum accuracy is determined.

43. The method according to any one of claims 34 to 40, characterized in that: Also includes: decoding a third identifier, wherein the third identifier is used to indicate the end of partitioning; The end of the division is determined according to the third identifier.

44. The method according to claim 34, characterized in that When the maximum values ​​of the range values ​​in three directions of the initial block are all equal; The performing at least one quadtree and / or binary tree division on at least one first-category sub-block in the first-category sub-blocks comprises: Determine whether to perform quadtree division or binary tree division according to the first identifier and the second identifier; The end of the partition is determined based on the third identifier.

45. The method according to any one of claims 34 to 40, characterized in that The step of determining the maximum value of the range value of the initial block in the radial distance direction, the azimuth direction and the height direction according to the code stream includes: According to the code stream, obtaining the quantized minimum value and the quantized maximum value of the position coordinates in three directions; According to the minimum value and the maximum value of the quantized position coordinates in the three directions, the maximum value of the range values ​​of the position coordinates in the radial distance direction, the azimuth direction and the height direction is obtained; According to the maximum value of the range value of the position coordinate in the radial distance direction, the azimuth direction and the height direction, the maximum value of the range value of the initial block in the radial distance direction, the azimuth direction and the height direction is obtained.

46. ​​The method according to claim 45, characterized in that The obtaining, according to the maximum value of the range values ​​of the position coordinates in the radial distance direction, the azimuth direction and the height direction, the maximum value of the range values ​​of the initial block in the radial distance direction, the azimuth direction and the height direction comprises: In each direction, a value closest to the maximum value of the range value among values ​​that are greater than or equal to the integer power of 2 of the maximum value of the range value of the position coordinate is obtained, which is the maximum value of the range value of the initial block in the direction.

47. The method according to claim 46, characterized in that The step of obtaining the quantized minimum value and the quantized maximum value of the position coordinates in three directions according to the bit stream includes: According to the bit stream, obtaining the minimum value and the maximum value of the position coordinate before quantization in the three directions; The minimum value and the maximum value of the position coordinates in the three directions after quantization are obtained according to the minimum value and the maximum value before quantization of the position coordinates in the three directions and the quantization step lengths in the three directions.

48. The method according to claim 46, characterized in that The step of obtaining the quantized minimum value and the quantized maximum value of the position coordinates in three directions according to the bit stream includes: According to the bit stream, obtaining the minimum value of the position coordinate before quantization and the maximum value after quantization in the three directions; The minimum value of the position coordinate after quantization in the three directions is obtained according to the minimum value of the position coordinate before quantization in the three directions and the quantization step lengths in the three directions.

49. The method according to claim 46, characterized in that The step of obtaining the quantized minimum value and the quantized maximum value of the position coordinates in three directions according to the bit stream includes: According to the bit stream, obtaining the minimum value of the position coordinate after quantization and the maximum value before quantization in the three directions; According to the maximum values ​​of the position coordinates before quantization in the three directions and the quantization step sizes in the three directions, the maximum values ​​of the position coordinates after quantization in the three directions are obtained.

50. The method of claim 46, wherein: The step of obtaining the quantized minimum value and the quantized maximum value of the position coordinates in three directions according to the bit stream includes: According to the bit stream, obtaining the maximum value of the minimum value before quantization and the maximum value after quantization of the position coordinates in three directions; According to the minimum value of the position coordinates before quantization in the three directions and the quantization step lengths in the three directions, the minimum value after quantization in the three directions is obtained; Determine the maximum value of the quantized maximum value as the maximum value of the quantized values ​​in the three directions.

51. The method according to claim 46, characterized in that The step of obtaining the quantized minimum value and the quantized maximum value of the position coordinates in three directions according to the bit stream includes: According to the bit stream, obtaining the minimum value of the minimum value before quantization and the minimum value of the maximum value after quantization of the position coordinates in three directions; According to the minimum value of the position coordinates before quantization in the three directions and the quantization step lengths in the three directions, the minimum value after quantization in the three directions is obtained; Determine the minimum value of the quantized maximum value as the quantized maximum value in the three directions.

52. The method according to claim 46, characterized in that The step of obtaining the quantized minimum value and the quantized maximum value of the position coordinates in three directions according to the bit stream includes: According to the bit stream, obtaining the maximum value of the quantized minimum value and the quantized maximum value of the position coordinate in three directions; Determine the maximum value of the quantized maximum value as the maximum value of the quantized values ​​in the three directions.

53. The method according to claim 46, characterized in that The step of obtaining the quantized minimum value and the quantized maximum value of the position coordinates in three directions according to the bit stream includes: According to the bit stream, obtaining a minimum value of a quantized minimum value and a minimum value of a quantized maximum value of the position coordinate in three directions; Determine the minimum value of the quantized maximum value as the quantized maximum value in the three directions.

54. The method according to claim 46, characterized in that The step of obtaining the quantized minimum value and the quantized maximum value of the position coordinates in three directions according to the bit stream includes: According to the bit stream, obtaining the maximum value of the minimum value before quantization and the maximum value before quantization of the position coordinate in three directions; According to the minimum value of the position coordinates before quantization in the three directions and the quantization step lengths in the three directions, the minimum value after quantization in the three directions is obtained; Obtaining a maximum value of a maximum value after quantization according to a maximum value of the maximum value before quantization and a quantization step size; Determine the maximum value of the quantized maximum value as the maximum value of the quantized values ​​in the three directions.

55. The method according to claim 46, characterized in that The step of obtaining the quantized minimum value and the quantized maximum value of the position coordinates in three directions according to the bit stream includes: According to the bit stream, obtaining the minimum value of the minimum value before quantization and the minimum value of the maximum value before quantization of the position coordinate in three directions; According to the minimum value of the position coordinates before quantization in the three directions and the quantization step lengths in the three directions, the minimum value after quantization in the three directions is obtained; Obtaining a minimum value of the maximum value after quantization according to the minimum value of the maximum value before quantization and the quantization step size; Determine the minimum value of the quantized maximum value as the quantized maximum value in the three directions.

56. The method of claim 46, wherein: The step of obtaining the quantized minimum value and the quantized maximum value of the position coordinates in three directions according to the bit stream includes: According to the bit stream, obtaining the maximum value of the minimum value after quantization and the maximum value before quantization of the position coordinate in three directions; Obtaining a maximum value of a maximum value after quantization according to a maximum value of the maximum value before quantization and a quantization step size; Determine the maximum value of the quantized maximum value as the maximum value of the quantized values ​​in the three directions.

57. The method according to claim 46, characterized in that The step of obtaining the quantized minimum value and the quantized maximum value of the position coordinates in three directions according to the bit stream includes: According to the bit stream, obtaining the minimum value of the minimum value after quantization and the maximum value before quantization of the position coordinate in three directions; Obtaining a minimum value of the maximum value after quantization according to the minimum value of the maximum value before quantization and the quantization step size; Determine the minimum value of the quantized maximum value as the quantized maximum value in the three directions.

58. The method according to any one of claims 50 to 57, characterized in that The step of obtaining the position coordinates of the three-dimensional data points to be decoded according to the positions of the sub-blocks obtained by the division includes: The position coordinates of the three-dimensional data point to be encoded are obtained according to the position of the sub-block obtained by division and the ratio of the range values ​​of the three directions of the sub-block finally obtained by division.

59. The method according to claim 58, characterized in that The step of obtaining the position coordinates of the three-dimensional data point to be encoded according to the position of the sub-block obtained by the division and the ratio of the range values ​​of the three directions of the sub-block obtained by the division includes: Obtaining first position coordinates of the three-dimensional data point to be encoded according to the positions of the sub-blocks obtained by the division; Obtaining the ratio of the minimum value of the range values ​​in the three directions of the sub-block finally obtained by the division to the range values ​​in the remaining two directions; The coordinate values ​​of each coordinate in the remaining two directions are multiplied by the ratio of the directions.

60. The method of claim 58, wherein: The step of obtaining the position coordinates of the three-dimensional data point to be encoded according to the position of the sub-block obtained by the division and the ratio of the range values ​​of the three directions of the sub-block obtained by the division includes: Obtaining first position coordinates of the three-dimensional data point to be encoded according to the positions of the sub-blocks obtained by the division; Obtaining the ratios of the maximum value of the range values ​​in the three directions of the sub-block finally obtained by the division to the range values ​​in the remaining two directions; The coordinate values ​​of each coordinate in the remaining two directions are multiplied by the ratios corresponding to the directions.

61. The method according to any one of claims 34 to 40, characterized in that Also includes: Decode the number of 3D data points in the sub-block containing the 3D data points.

62. The method according to any one of claims 34 to 40, characterized in that The performing at least one octree partitioning on the initial block comprises: Perform at least one octree partition on the initial block according to the center point coordinates; The performing at least one quadtree division and / or binary tree division on at least one first-category sub-block in the first-category sub-blocks comprises: At least one of the first-category sub-blocks is subjected to at least one quadtree division and / or binary tree division according to the center point coordinates.

63. The method according to claim 62, characterized in that The method further comprises: Get the center point coordinates.

64. The method according to claim 63, characterized in that The obtaining of the center point coordinates includes at least one of the following: According to the maximum and minimum values ​​of the blocks to be divided each time in the radial distance direction, the coordinate value of the center point in the radial distance direction is obtained; According to the maximum and minimum values ​​of the blocks to be divided each time in the azimuth direction, the coordinate value of the center point in the azimuth direction is obtained; The coordinate value of the center point in the height direction is obtained according to the maximum and minimum values ​​of the blocks to be divided each time in the height direction.

65. The method of claim 34, wherein: The step of obtaining the position coordinates of the three-dimensional data points to be encoded according to the positions of the sub-blocks obtained by the division includes: According to the positions of the sub-blocks obtained by the division, the quantized position coordinates of the three-dimensional data points to be encoded are obtained; The quantized position coordinates are inversely quantized to obtain the position coordinates of the three-dimensional data points before quantization.

66. The method according to claim 65, characterized in that The inverse quantization of the quantized position coordinates includes at least one of the following operations: Inversely quantize the radial distance of the position coordinates of the three-dimensional data according to the quantization step size in the radial distance direction; De-quantizing the azimuth of the position coordinates of the three-dimensional data according to the quantization step size in the azimuth direction; The height of the position coordinates of the three-dimensional data is inversely quantized according to the quantization step size in the height direction.

67. The method according to claim 66, characterized in that The inverse quantization of the quantized position coordinates includes at least one of the following operations: De-quantizing the radial distance of the position coordinates of the three-dimensional data according to the quantization step in the radial distance direction and the minimum value of the three-dimensional data point before quantization in the radial distance direction; De-quantizing the azimuth of the position coordinates of the three-dimensional data according to the quantization step size in the azimuth direction and the minimum value of the three-dimensional data point before quantization in the azimuth direction; The height of the position coordinates of the three-dimensional data is inversely quantized according to the quantization step size in the height direction and the minimum value of the three-dimensional data point before quantization in the height direction.

68. The method according to any one of claims 34 to 40, characterized in that The initial block is a portion of a column.

69. The method according to claim 68, characterized in that The column includes a circular cylinder, and / or the center of the column is the position of a three-dimensional data point acquisition device.

70. The method according to claim 69, characterized in that The three-dimensional data point acquisition device is a laser radar, a photoelectric radar or a laser scanner.

71. An encoder, characterized in that include: A memory and a processor, wherein the memory stores a program that can be run on the processor, and when the processor executes the program, the three-dimensional data point encoding method described in any one of claims 1-33 is implemented.

72. A decoder, characterized in that include: A memory and a processor, wherein the memory stores a program that can be run on the processor, and when the processor executes the program, the three-dimensional data point decoding method described in any one of claims 34-70 is implemented.

Citation Information

Patent Citations

  • Method for encoding and method for decoding a lut and corresponding devices

    CN105230019A

  • Information processing device and method

    WO2019012975A1