Method, system and storage medium for encoding and decoding position coordinates of point cloud data

文档序号:1191956 发布日期:2020-08-28 浏览:24次 中文

阅读说明:本技术 点云数据的位置坐标的编解码方法、系统和存储介质 (Method, system and storage medium for encoding and decoding position coordinates of point cloud data ) 是由 李璞 郑萧桢 张富 于 2019-06-03 设计创作,主要内容包括:本发明提供一种点云数据的位置坐标的编解码方法、系统和存储介质。所述编码方法包括:根据输入的点云数据的位置坐标,确定初始块的初始位置坐标;对初始块进行空间划分编码得到中间编码结果;对中间编码结果进行算术编码得到最终编码结果;其中,在对初始块进行空间划分编码的过程中,基于采集点云数据的采集设备的视野范围确定是否调整划分块的坐标范围。根据本发明实施例的点云数据的位置坐标的编解码方法和系统结合点云数据的采集设备在采集过程中的视野范围的取值范围来限定对位置坐标编解码过程中划分编解码过程的取值范围,可以较快减少一些一定不存在点云数据点的区域,从而减少编解码过程中的时间开销,提高编解码效率。(The invention provides a method, a system and a storage medium for encoding and decoding position coordinates of point cloud data. The encoding method comprises the following steps: determining an initial position coordinate of an initial block according to the position coordinate of the input point cloud data; carrying out space division coding on the initial block to obtain an intermediate coding result; carrying out arithmetic coding on the intermediate coding result to obtain a final coding result; in the process of carrying out space division coding on the initial block, whether the coordinate range of the division block is adjusted or not is determined based on the visual field range of the acquisition equipment for acquiring point cloud data. According to the method and the system for encoding and decoding the position coordinates of the point cloud data, provided by the embodiment of the invention, the value range of the position coordinate encoding and decoding process is limited by combining the value range of the visual field range of the point cloud data acquisition equipment in the acquisition process, and the value range of the encoding and decoding process is divided in the position coordinate encoding and decoding process, so that some areas without point cloud data points can be reduced quickly, the time overhead in the encoding and decoding process is reduced, and the encoding and decoding efficiency is improved.)

1. A method of encoding position coordinates of point cloud data, the method comprising:

determining an initial position coordinate of an initial block according to the position coordinate of the input point cloud data;

carrying out space division coding on the initial block to obtain an intermediate coding result; and

performing arithmetic coding on the intermediate coding result to obtain a final coding result;

and determining whether to adjust the coordinate range of the division blocks based on the visual field range of the acquisition equipment acquiring the point cloud data in the process of carrying out space division coding on the initial blocks.

2. The encoding method of claim 1, wherein determining whether to adjust a coordinate range of a partition based on a field of view range of an acquisition device that acquires the point cloud data comprises:

determining a coordinate range corresponding to the division block and having point cloud data under the limitation of the visual field range of the acquisition equipment as a visual field limiting coordinate range;

for at least one direction in the three-dimensional directions, comparing the value range of the visual field limited coordinate range in the direction with the value range of the original coordinate range of the division block in the direction;

determining whether to adjust a coordinate range of the divided block based on a result of the comparison.

3. The encoding method according to claim 2, wherein the determining whether to adjust the coordinate range of the divided block based on the result of the comparison comprises:

for at least one direction in the three-dimensional directions, when the value range of the view limited coordinate range in the direction and the value range of the original coordinate range in the direction have an intersection part, and the first new side length determined based on the intersection part is smaller than the original side length of the division block in the direction, the side length of the division block is adjusted to be the first new side length, and the coordinate range of the division block in the direction is adjusted based on the first new side length and the intersection part.

4. The encoding method according to claim 3, wherein the adjusting the coordinate range of the partition block in the direction based on the first new side length and the intersection portion comprises:

obtaining a new maximum value of the division block in the direction based on the minimum value of the original coordinate range in the intersection part in the direction and the first new side length, wherein the minimum value of the division block in the direction is kept unchanged; or

And subtracting the first new side length from the maximum value of the original coordinate range in the direction in the crossed part to obtain a new minimum value of the partition block in the direction, wherein the maximum value of the partition block in the direction is kept unchanged.

5. The encoding method according to claim 2, wherein the determining whether to adjust the coordinate range of the divided block based on the result of the comparison comprises:

and for at least one direction in the three-dimensional direction, when the value range of the view limited coordinate range in the direction falls into the value range of the original coordinate range in the direction, and the second new side length determined based on the view limited coordinate range is smaller than the original side length of the partition block in the direction, adjusting the side length of the partition block to be the second new side length, and adjusting the coordinate range of the partition block in the direction based on the second new side length and the view limited coordinate range.

6. The encoding method of claim 5, wherein the adjusting the coordinate range of the partition in the direction based on the second new side length and the view-defining coordinate range comprises:

obtaining a new maximum value of the division block in the direction based on the minimum value of the visual field limited coordinate range in the direction and the second new side length, and taking the minimum value of the visual field limited coordinate range in the direction as a new minimum value of the division block in the direction; or

And subtracting the second new side length from the maximum value of the view limited coordinate range in the direction to obtain a new minimum value of the division block in the direction, and taking the maximum value of the view limited coordinate range in the direction as a new maximum value of the division block in the direction.

7. The encoding method according to claim 2, wherein the determining, as the view-field-defining coordinate range, a coordinate range in which point cloud data exists under definition of a view field range of the acquisition apparatus, corresponding to the divided block, includes:

calculating the position coordinates of the mapping surface viewpoint center corresponding to each vertex based on the position coordinates of each vertex of the division blocks;

calculating the distance from the position coordinate of the mapping surface viewpoint center corresponding to each vertex to the equipment position coordinate of the acquisition equipment; and

determining a coordinate range corresponding to the dividing block and having point cloud data under the limitation of a visual field range of the acquisition equipment based on the distance from the position coordinate of the mapping surface viewpoint center corresponding to each vertex to the equipment position coordinate of the acquisition equipment;

the mapping surface viewpoint center corresponding to any vertex refers to a projection point from the vertex to a preset vector, the starting point of the preset vector is the device position coordinate obtained by preprocessing the position coordinate of the acquisition device, and the end point of the preset vector is the reference position coordinate obtained by preprocessing the position coordinate of a preset reference point in the visual field range of the acquisition device.

8. The encoding method according to any one of claims 1-7, characterized in that the encoding method further comprises:

when the partition blocks with the adjusted coordinate ranges are subjected to space partition coding, when the side lengths of the partition blocks in one or two directions in the three-dimensional directions reach a preset minimum side length, the direction reaching the preset minimum side length is not divided any more, and coding is still performed.

9. The encoding method according to claim 8, wherein when a side length of the partition block in one of the three-dimensional directions reaches a preset minimum side length, eight bits are used to encode space partition results in the remaining two directions that have not reached the preset minimum side length, wherein a value of a highest four-bit of the eight bits depends on whether point cloud data is included in sub-blocks partitioned by the partition block in the remaining two directions, and values of remaining four-bit of the eight bits are 0.

10. The encoding method according to claim 8, wherein when the side lengths of the partition block in two directions of the three-dimensional directions reach a preset minimum side length, the space partition result in the remaining one direction that has not reached the preset minimum side length is encoded using eight bits, wherein the values of the highest two bits of the eight bits depend on whether the sub-blocks obtained by partitioning the partition block in the remaining one direction contain point cloud data, and the values of the remaining six bits of the eight bits are 0.

11. The encoding method according to any one of claims 1-7, characterized in that the encoding method further comprises:

when the partition blocks with the adjusted coordinate ranges are subjected to space partition coding, when the side lengths of the partition blocks in one or two directions in the three-dimensional directions reach a preset minimum side length, the partition blocks are not divided and coded in the direction reaching the preset minimum side length.

12. The encoding method according to claim 11, wherein when a side length of the partition block in one of the three-dimensional directions reaches a preset minimum side length, the quadtree partition results in the remaining two directions that have not reached the preset minimum side length are encoded using four bits, wherein a value of the four bits depends on whether point cloud data is included in sub-blocks partitioned by the partition block in the remaining two directions.

13. The encoding method according to claim 11, wherein when the side lengths of the partition block in two of the three-dimensional directions reach a preset minimum side length, sampling two bits to encode the binary tree partition result in the remaining one direction that has not reached the preset minimum side length, wherein the value of the two bits depends on whether the sub-blocks partitioned by the partition block in the remaining one direction contain point cloud data.

14. The encoding method according to any one of claims 1-7, characterized in that the encoding method further comprises:

in the process of the space division encoding, when any subblock reaches a preset minimum side length in the three-dimensional direction, encoding the number of point cloud data contained in the subblock.

15. The encoding method according to any one of claims 1-7, characterized in that the encoding method further comprises:

in the process of space division encoding, when all the sub-blocks reach a preset minimum side length in the three-dimensional direction, sequentially encoding the number of point cloud data contained in each sub-block.

16. The encoding method according to claim 14 or 15, wherein encoding the number of point cloud data includes:

when the number of the point cloud data is 1, encoding 0 of 1 bit; and

when the number of the point cloud data is n, 1 of 1bit is coded, and then a numerical value (n-1) is coded, wherein n is a natural number larger than 1.

17. The encoding method according to any one of claims 1-7, characterized in that the encoding method further comprises:

and writing parameters related to the visual field range of the acquisition equipment into a code stream.

18. The encoding method of claim 7, further comprising:

preprocessing the position coordinates of the input point cloud data, and determining the initial position coordinates of the initial block based on the preprocessed position coordinates.

19. The encoding method of claim 18, wherein the preprocessing the position coordinates of the input point cloud data comprises: and quantizing the position coordinates of the input point cloud data.

20. The encoding method according to claim 19, wherein the device position coordinates of the capturing device are coordinates in which actual position coordinates of the capturing device are quantized, the reference position coordinates are coordinates in which actual position coordinates of the preset reference point within a visual field of the capturing device are quantized, and the actual position coordinates of the capturing device and the actual position coordinates of the preset reference point are quantized in the same manner as the position coordinates of the input point cloud data.

21. The encoding method according to claim 20, wherein the quantization precision adopted by the quantization mode is a preset fixed value.

22. The encoding method according to claim 20 or 21, wherein the quantization modes have quantization accuracies which are uniform in each of the three-dimensional directions.

23. A method of decoding position coordinates of point cloud data, the method comprising:

carrying out arithmetic decoding on the point cloud data position coordinate coding result to obtain an arithmetic decoding result;

carrying out space division decoding on the arithmetic decoding result to obtain an intermediate decoding result; and

carrying out inverse preprocessing on the intermediate decoding result to obtain the position coordinates of the point cloud data;

wherein, in the spatial division decoding process, a coordinate range of an initial block for spatial division is determined, and whether to adjust the coordinate range of the divided block is determined based on a field of view range of an acquisition apparatus that acquires the point cloud data.

24. The decoding method of claim 23, wherein the determining whether to adjust the coordinate range of the partition block based on a field of view range of an acquisition device that acquires the point cloud data comprises:

determining a coordinate range corresponding to the division block and having point cloud data under the limitation of the visual field range of the acquisition equipment as a visual field limiting coordinate range;

for at least one direction in the three-dimensional directions, comparing the value range of the visual field limited coordinate range in the direction with the value range of the original coordinate range of the division block in the direction;

determining whether to adjust a coordinate range of the divided block based on a result of the comparison.

25. The decoding method according to claim 24, wherein the determining whether to adjust the coordinate range of the partition based on the result of the comparison comprises:

for at least one direction in the three-dimensional directions, when the value range of the view limited coordinate range in the direction and the value range of the original coordinate range in the direction have an intersection part, and the first new side length determined based on the intersection part is smaller than the original side length of the division block in the direction, the side length of the division block is adjusted to be the first new side length, and the coordinate range of the division block in the direction is adjusted based on the first new side length and the intersection part.

26. The decoding method of claim 25, wherein the adjusting the coordinate range of the partition block in the direction based on the first new side length and the intersection portion comprises:

obtaining a new maximum value of the division block in the direction based on the minimum value of the original coordinate range in the intersection part in the direction and the first new side length, wherein the minimum value of the division block in the direction is kept unchanged; or

And subtracting the first new side length from the maximum value of the original coordinate range in the direction in the crossed part to obtain a new minimum value of the partition block in the direction, wherein the maximum value of the partition block in the direction is kept unchanged.

27. The decoding method according to claim 24, wherein the determining whether to adjust the coordinate range of the partition based on the result of the comparison comprises:

and for at least one direction in the three-dimensional direction, when the value range of the view limited coordinate range in the direction falls into the value range of the original coordinate range in the direction, and the second new side length determined based on the view limited coordinate range is smaller than the original side length of the partition block in the direction, adjusting the side length of the partition block to be the second new side length, and adjusting the coordinate range of the partition block in the direction based on the second new side length and the view limited coordinate range.

28. The decoding method of claim 27, wherein the adjusting the coordinate range of the partition in the direction based on the second new side length and the view-limited coordinate range comprises:

obtaining a new maximum value of the division block in the direction based on the minimum value of the visual field limited coordinate range in the direction and the second new side length, and taking the minimum value of the visual field limited coordinate range in the direction as a new minimum value of the division block in the direction; or

And subtracting the second new side length from the maximum value of the view limited coordinate range in the direction to obtain a new minimum value of the division block in the direction, and taking the maximum value of the view limited coordinate range in the direction as a new maximum value of the division block in the direction.

29. The decoding method according to claim 24, wherein the determining, as the view-field-defining coordinate range, a coordinate range in which point cloud data exists under definition of a view field range of the acquisition apparatus, corresponding to the divided block, includes:

calculating the position coordinates of the mapping surface viewpoint center corresponding to each vertex based on the position coordinates of each vertex of the division blocks;

calculating the distance from the position coordinate of the mapping surface viewpoint center corresponding to each vertex to the equipment position coordinate of the acquisition equipment; and

determining a coordinate range corresponding to the dividing block and having point cloud data under the limitation of a visual field range of the acquisition equipment based on the distance from the position coordinate of the mapping surface viewpoint center corresponding to each vertex to the equipment position coordinate of the acquisition equipment;

the mapping surface viewpoint center corresponding to any vertex refers to a projection point from the vertex to a preset vector, the starting point of the preset vector is the device position coordinate obtained by preprocessing the position coordinate of the acquisition device, and the end point of the preset vector is the reference position coordinate obtained by preprocessing the position coordinate of a preset reference point in the visual field range of the acquisition device.

30. The decoding method according to any of claims 23-29, further comprising:

when the partition block with the adjusted coordinate range is subjected to space partition decoding, 8 bits are decoded each time, the condition whether point cloud data points are contained in 8 sub-blocks of the partition block is obtained, and next-layer space partition decoding is carried out on the sub-blocks containing the point cloud data points.

31. The decoding method according to claim 30, wherein when the side length of the partition block in one of the three-dimensional directions reaches a preset minimum side length, eight bits are obtained according to the arithmetic decoding result, the value of the lowest four bits of the eight bits is 0, and it is determined whether the sub-blocks partitioned by the partition block in the remaining two directions that have not reached the preset minimum side length contain point cloud data according to the highest four bits of the eight bits.

32. The decoding method according to claim 30, wherein when the side lengths of the partition block in two of the three-dimensional directions reach a preset minimum side length, eight bits are obtained according to the arithmetic decoding result, the value of the lowest six bits of the eight bits is 0, and it is determined whether the sub-block partitioned in the remaining one direction that has not reached the preset minimum side length of the partition block contains point cloud data according to the highest two bits of the eight bits.

33. The decoding method according to any of claims 23-29, further comprising: when partition decoding the coordinate range adjusted partition block:

when the side lengths of the divided blocks in the three-dimensional direction do not reach the preset minimum side length, performing space division decoding on the divided blocks;

when the side length of the partition block in one direction of the three-dimensional directions reaches a preset minimum side length, performing quadtree partition decoding on the partition block; and

and when the side lengths of the division blocks in two directions in the three-dimensional direction reach a preset minimum side length, performing binary tree division decoding on the division blocks.

34. The decoding method of claim 33, wherein when a side length of the partition block in one of the three-dimensional directions reaches a preset minimum side length, four bits are obtained according to the arithmetic decoding result, and it is determined whether the partition block contains point cloud data in sub-blocks partitioned in the remaining two directions that have not reached the preset minimum side length according to the four bits.

35. The decoding method of claim 33, wherein when the side lengths of the partition block in two of the three-dimensional directions reach a preset minimum side length, two bits are obtained according to the arithmetic decoding result, and it is determined whether the sub-blocks divided by the partition block in the remaining one of the directions that have not reached the preset minimum side length contain point cloud data according to the two bits.

36. The decoding method according to any of claims 23-29, further comprising:

in the process of space division decoding, when any subblock reaches a preset minimum side length in a three-dimensional direction, decoding the number of point cloud data contained in the subblock.

37. The decoding method according to any of claims 23-29, further comprising:

in the process of space division decoding, when all the sub-blocks reach the preset minimum side length in the three-dimensional direction, the number of the point cloud data contained in each sub-block is decoded in sequence.

38. The decoding method according to claim 36 or 37, wherein decoding the number of point cloud data comprises:

when 0 of 1bit is decoded, the current subblock contains 1 point cloud data; and

when 1 of 1bit is decoded, the current sub-block contains more than 1 point cloud data, the numerical value (n-1) is decoded continuously, and n point cloud data contained in the current sub-block are obtained, wherein n is a natural number larger than 1.

39. The decoding method of claim 29, wherein the decoding method further comprises:

and decoding parameters related to the visual field range of the acquisition equipment from the code stream to determine the coordinate range of the initial block for space division.

40. The decoding method according to claim 39, wherein the parameter related to the field of view of the acquisition device is decoded from header information of the codestream.

41. The decoding method of claim 29, wherein said inverse pre-processing comprises inverse quantization.

42. The decoding method according to claim 41, wherein said device position coordinates of said pickup device are quantized coordinates of actual position coordinates of said pickup device, said reference position coordinates are quantized coordinates of actual position coordinates of said preset reference point within a visual field of said pickup device, and said quantization of said actual position coordinates of said pickup device and said quantization of said actual position coordinates of said preset reference point are both the same as an inverse process of said inverse quantization.

43. The decoding method according to claim 42, wherein the quantization precision adopted by the quantization mode is a preset fixed value.

44. The decoding method according to claim 42 or 43, wherein the quantization modes have the same quantization precision in each of the three-dimensional directions.

45. A system for encoding position coordinates of point cloud data, characterized in that the system comprises a storage device on which a computer program run by a processor is stored and a processor, which computer program, when executed by the processor, performs the method of encoding position coordinates of point cloud data according to any one of claims 1-22.

46. A system for decoding position coordinates of point cloud data, characterized in that the system comprises a storage device and a processor, the storage device having stored thereon a computer program for execution by the processor, the computer program, when executed by the processor, performing a method of decoding position coordinates of point cloud data according to any one of claims 23-44.

47. A storage medium, characterized in that the storage medium has stored thereon a computer program which, when running, executes a method of encoding position coordinates of point cloud data according to any one of claims 1 to 22.

48. A storage medium, characterized in that the storage medium has stored thereon a computer program which, when running, executes a method of decoding position coordinates of point cloud data according to any one of claims 23 to 44.

Technical Field

The present invention generally relates to the field of point cloud encoding technologies, and more particularly, to a method, a system, and a storage medium for encoding and decoding position coordinates of point cloud data.

Background

The point cloud is an expression form of a three-dimensional object or scene and is composed of a group of discrete point sets which are randomly distributed in space and express the space structure and surface attributes of the three-dimensional object or scene. In order to accurately reflect the information in space, the number of discrete points required is enormous. In order to reduce the bandwidth occupied by storing and transmitting the point cloud data, the point cloud data needs to be encoded and compressed.

In the process of point cloud data encoding and compressing, the method comprises the steps of encoding position coordinates and encoding attributes. The position coordinates are usually distributed in a discrete manner, and one point cloud data point corresponds to the position coordinates in three directions, so that the data volume of a group of point cloud data is usually very large, and therefore, the point cloud data, especially the position coordinates in the point cloud data, need to be encoded and compressed effectively.

The existing encoding compression of the position coordinates of the point cloud data is usually based on octree partition encoding, however, the side length is only reduced by half when the octree partition encoding is carried out each time, the method may cause that subblocks containing the point cloud data are not obtained by many times of partition, thereby increasing the redundant calculation in the encoding process to a certain extent, leading the encoding efficiency to be lower, and limiting the compression performance to a certain extent.

Disclosure of Invention

The present invention has been made to solve the above problems. The invention provides a coding and decoding scheme of position coordinates of point cloud data, which limits the value range of the position coordinate coding and decoding process by combining the value range of the field of view (FOV) of the point cloud data acquisition equipment in the acquisition process, and can quickly reduce certain areas without point cloud data points, thereby improving the coding and decoding efficiency and reducing the time overhead in the coding and decoding process. The following briefly describes a scheme for encoding and decoding position coordinates of point cloud data, and more details will be described in the following detailed description with reference to the drawings.

According to an aspect of the present invention, there is provided an encoding method of position coordinates of point cloud data, the encoding method including: determining an initial position coordinate of an initial block according to the position coordinate of the input point cloud data; carrying out space division coding on the initial block to obtain an intermediate coding result; and carrying out arithmetic coding on the intermediate coding result to obtain a final coding result; and determining whether to adjust the coordinate range of the division blocks based on the visual field range of the acquisition equipment acquiring the point cloud data in the process of carrying out space division coding on the initial blocks.

According to another aspect of the present invention, there is provided a method of decoding position coordinates of point cloud data, the method including: carrying out arithmetic decoding on the point cloud data position coordinate coding result to obtain an arithmetic decoding result; carrying out space division decoding on the arithmetic decoding result to obtain an intermediate decoding result; and carrying out inverse preprocessing on the intermediate decoding result to obtain the position coordinates of the point cloud data; wherein, in the spatial division decoding process, the coordinate range of the initial block for spatial division is determined based on the header information of the encoding result, and whether to adjust the coordinate range of the division block is determined based on the field of view range of the acquisition apparatus that acquires the point cloud data.

According to still another aspect of the present invention, there is provided an encoding system of position coordinates of point cloud data, the encoding system including a storage device and a processor, the storage device having stored thereon a computer program executed by the processor, the computer program, when executed by the processor, performing the method of encoding position coordinates of point cloud data according to any one of the above.

According to still another aspect of the present invention, there is provided a system for decoding position coordinates of point cloud data, the encoding system including a storage device and a processor, the storage device having stored thereon a computer program executed by the processor, the computer program, when executed by the processor, performing the method for decoding position coordinates of point cloud data according to any one of the above.

According to still another aspect of the present invention, there is provided a storage medium having stored thereon a computer program which, when executed, performs the method of encoding position coordinates of point cloud data as described in any one of the above.

According to still another aspect of the present invention, there is provided a storage medium having stored thereon a computer program which, when executed, performs the method of decoding position coordinates of point cloud data as described in any one of the above.

According to the method and the system for encoding and decoding the position coordinates of the point cloud data and the storage medium, the value range of the position coordinate encoding and decoding process is limited by combining the value range of the view field range of the point cloud data acquisition equipment in the acquisition process, and the value range of the encoding and decoding process is divided in the position coordinate encoding and decoding process, so that some areas without point cloud data points can be reduced quickly, the time overhead in the encoding and decoding process is reduced, and the encoding and decoding efficiency is improved.

Drawings

Fig. 1 shows a schematic flow diagram of a method of encoding position coordinates of point cloud data according to an embodiment of the invention;

FIG. 2 illustrates a schematic diagram of a point cloud data acquisition according to one embodiment of the invention;

FIG. 3 is a schematic diagram illustrating a method for solving coordinates of a viewpoint center of a mapping plane where a certain point is located according to an embodiment of the invention;

FIG. 4 illustrates a schematic diagram of a point cloud distribution range defined according to a field of view of an acquisition device, according to one embodiment of the invention;

FIG. 5 illustrates a schematic diagram of a point cloud data acquisition according to another embodiment of the present invention;

FIG. 6 shows a schematic diagram of a point cloud distribution range defined according to a field of view of an acquisition device according to another embodiment of the invention;

FIG. 7 is a diagram illustrating a tree partition encoding process according to an embodiment of the present invention;

FIG. 8 shows a schematic block diagram of an encoding system for location coordinates of point cloud data according to an embodiment of the invention;

FIG. 9 shows a schematic flow diagram of a method of decoding location coordinates of point cloud data according to an embodiment of the invention;

FIG. 10 shows a schematic block diagram of a system for decoding location coordinates of point cloud data according to an embodiment of the invention;

FIG. 11 shows a schematic block diagram of a ranging apparatus that can be used to acquire point cloud data in accordance with one embodiment of the invention;

FIG. 12 shows a schematic block diagram of a ranging apparatus that can be used to acquire point cloud data in accordance with another embodiment of the invention; and

FIG. 13 shows a schematic view of one scanning pattern of the ranging device shown in FIG. 12.

Detailed Description

In order to make the objects, technical solutions and advantages of the present invention more apparent, exemplary embodiments according to the present invention will be described in detail below with reference to the accompanying drawings. It is to be understood that the described embodiments are merely a subset of embodiments of the invention and not all embodiments of the invention, with the understanding that the invention is not limited to the example embodiments described herein. All other embodiments, which can be derived by a person skilled in the art from the embodiments of the invention described herein without inventive step, shall fall within the scope of protection of the invention.

In the following description, numerous specific details are set forth in order to provide a more thorough understanding of the present invention. It will be apparent, however, to one skilled in the art, that the present invention may be practiced without one or more of these specific details. In other instances, well-known features have not been described in order to avoid obscuring the invention.

It is to be understood that the present invention may be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the invention to those skilled in the art.

The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. As used herein, the singular forms "a", "an" and "the" are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms "comprises" and/or "comprising," when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof. As used herein, the term "and/or" includes any and all combinations of the associated listed items.

In order to provide a thorough understanding of the present invention, detailed steps and detailed structures will be set forth in the following description in order to explain the present invention. The following detailed description of the preferred embodiments of the invention, however, the invention is capable of other embodiments in addition to those detailed.

As described above, the current method for encoding position coordinates of point cloud data increases redundancy calculation in the encoding process to a certain extent, so that the encoding efficiency is low. Based on this, the present invention provides a coding and decoding scheme for position coordinates of point cloud data, and the coding and decoding scheme for position coordinates of point cloud data according to an embodiment of the present invention is described below with reference to the accompanying drawings.

Fig. 1 shows a schematic flow diagram of a method 100 for encoding position coordinates of point cloud data according to an embodiment of the invention. As shown in fig. 1, the method 100 for encoding position coordinates of point cloud data may include the steps of:

in step S110, an initial position coordinate of the initial block is determined according to the position coordinate of the input point cloud data.

In the embodiment of the present invention, a distance measuring device such as a laser scanner or a laser radar may be used to collect point cloud data for an object or a scene. Typically, the acquired point cloud data includes position coordinates in three dimensions. For example, the position coordinates of each point cloud data may be represented in a cartesian coordinate system, for example, as (x, y, z). In other examples, the position coordinates of each point cloud data may also be represented in other coordinate systems, such as a spherical coordinate system, a cylindrical coordinate system, and so on. For simplicity of description, various coordinates are described herein in the example of a cartesian coordinate system. In one embodiment, the position coordinates of the input point cloud data may be pre-processed first, which may include quantizing the position coordinates of the input point cloud data.

For example, the position coordinates of each point cloud data input may be quantized according to a difference between a maximum value and a minimum value of the position coordinates of the point cloud data input in each of three directions (e.g., x-axis direction, y-axis direction, and z-axis direction in the case of cartesian coordinate system) and according to an input quantization precision parameter to simplify an encoding operation of the position coordinates of the point cloud data. Wherein, the quantization precision may be a preset fixed value. Further, the quantization accuracy in each direction of the three-dimensional directions for the position coordinates of each point cloud data input can be kept uniform. For example, the position coordinates of the input point cloud data may be converted into integer coordinates equal to or greater than zero by quantization.

Further, after the position coordinates of all the point cloud data are quantized, repeated coordinate values may occur, and the repeated coordinate values may be subjected to a deduplication process. It should be noted that if the deduplication processing is performed here, when performing attribute encoding on the point cloud data, attribute conversion needs to be performed accordingly, and attributes corresponding to the repeated coordinates are merged. However, in the present invention, description is mainly made on a coding and decoding method of position coordinates of point cloud data, and thus attribute coding of point cloud data is not described in detail in the present invention.

In other embodiments, the preprocessing of the position coordinates of the input point cloud data may also include any other suitable operation, which is not limited by the present invention.

Based on the location coordinates of the pre-processed point cloud data, initial location coordinates of a first spatially divided block (which may be referred to herein as an initial block) may be determined. Of course, the initial position coordinates of the initial block for the spatial division encoding may be determined directly using the position coordinates of the input point cloud data as a basis. For example, the initial position coordinates of the initial block may be determined based on the maximum value among the maximum values of the position coordinates of the preprocessed point cloud data in the three directions. In the description herein, the spatial partitioning may include octree partitioning, quadtree partitioning, binary tree partitioning, and the like, and the specific partitioning may depend on the geometry of the partitioned block in the partitioning process. For example, when the initial block is usually a cube or a rectangular parallelepiped, the octree partition may be adopted first, and then the octree partition, the quadtree partition, the binary tree partition, or the like may be adopted after the coordinate range of the divided block is adjusted.

With continued reference to fig. 1, the subsequent steps of the method of encoding the position coordinates of the point cloud data according to an embodiment of the invention are described.

In step S120, the initial block is spatially divided and encoded to obtain an intermediate encoding result, wherein in the process of spatially dividing and encoding the initial block, whether to adjust a coordinate range of the divided block is determined based on a field range of an acquisition device that acquires the point cloud data.

In an embodiment of the present invention, a spatial partition code-based code is adopted for the position coordinates of the preprocessed point cloud data, wherein the spatial partition code may include at least one of an octree partition code, a quadtree partition code, and a binary tree partition code, which may depend on the geometry of the partitioned blocks in the partitioning process, which will be described later below.

In the conventional octree division coding, a side length (or referred to as a coordinate range) of a block (which may be referred to as an initial block) to be octree-divided for the first time is generally determined based on the position coordinates of the preprocessed point cloud data, and a value of the side length is generally a maximum value among maximum values of the position coordinates of the preprocessed point cloud data in three directions; the side length of the block (which may be referred to as a partition block) subjected to octree partitioning is usually half of the side length of the block in the previous layer (for example, the side length of the initial block is 16, the side length of the partition block in the first layer is 8, the side length of the partition block in the second layer is 4, and the like), and partitioning is performed until the block with the minimum side length (usually 1) is obtained, and this change in the side length in the process also means that the coordinate range of the block also conforms to a similar change rule.

Unlike conventional spatial division encoding, in the spatial division encoding-based encoding of position coordinates of preprocessed point cloud data of the present invention, the coordinate range (including the side length) of the initial block for spatial division is also determined based on the preprocessed position coordinates, but the coordinate range of each divided block for spatial division is not simply reduced by half in the stratigraphic layer, but it is determined whether to adjust (mainly, whether to reduce) the coordinate range of each divided block also based on the field of view range of the acquisition apparatus that acquires the point cloud data.

The space division encoding-based encoding of the position coordinates of the point cloud data proposed in some embodiments of the present invention is conceived based on the following concept: the traditional blocks for octree division are all cubes, but in practice, acquisition equipment (including laser radar, laser scanner and the like) for acquiring point cloud data basically emits laser from the center according to a specific rule and acquires a return value to realize the acquisition of the point cloud data, and generally, the acquisition equipment has a certain limitation of a visual field range, and under the limitation, the value range of position coordinates is not distributed according to the cubes, so that division coding is directly performed in the cubes, redundant calculation in the coding process is increased to a certain extent, and the compression performance is limited to a certain extent. Based on this, the space division coding-based coding of the position coordinates of the point cloud data provided by the invention determines whether the block coordinate range (side length) used for space division is too large or not and whether the point cloud data does not exist in a certain range of the block or not based on the visual field range of the acquisition equipment for acquiring the point cloud data before space division every time, and if so, adjusts the coordinate range (side length) of the block based on the visual field range of the acquisition equipment for acquiring the point cloud data, so that the side length of part of the block can be effectively reduced, the total number of division is reduced, on one hand, the bit of a code stream for describing division conditions is reduced, on the other hand, the complexity of division in the coding and decoding processes is also reduced, and thus, the time overhead in the coding and decoding processes can be reduced. In addition, since the initialized cube (i.e., the initial block) is determined according to the position coordinate distribution of all the point cloud points, and the value of the initialized cube is determined to be the smallest cube which can be selected and falls within the visual field range of the acquisition device, the pruning operation by using the visual field range of the acquisition device is not required in the first division, and therefore, whether the coordinate range needs to be adjusted based on the visual field range of the acquisition device is determined only for the divided blocks.

The encoding of the position coordinates of the preprocessed point cloud data based on the space division encoding proposed by the present invention is described in detail below.

First, the maximum value among the three maximum values is found from the maximum value of the position coordinates (hereinafter, simply referred to as position coordinates) of the preprocessed point cloud data in each of the three directions, and the side length of the initial block for initializing the spatial division is determined from the selected value. Typically, the starting block is a cuboid, or a cube, or a portion of a sphere, or a portion of a cylinder. Taking the initial block as a cube as an example, the side length of the initial block may be an integer power of 2 and equal to or greater than and closest to the selected value. It should be understood that the selected value may be written into header information of the bitstream file for use by the decoding end. Octree partition encoding may begin based on the determination of the side length of the initial block.

The partition of the octree uses the coordinate of the center point of the current block to partition the sub-blocks, and the current block is partitioned into eight small sub-blocks through the center point. Let the coordinate of the center point of the current cube block be (x)mid,ymid,zmid) Suppose that the minimum values in the three directions of the current block are x respectivelymin、ymin、zminThe maximum values of the current block in three directions are x respectivelymax、ymax、zmaxThen, the value ranges of the coordinates of the eight small sub-blocks in the octree division process are as follows: the first block has a coordinate value range of xmin≤x≤xmid,ymin≤y≤ymid,zmin≤z≤zmid(ii) a The second block has a coordinate value in the range of xmin≤x≤xmid,ymin≤y≤ymid,zmid≤z≤zmax(ii) a The coordinate value range of the third block is xmin≤x≤xmid,ymid≤y≤ymax,zmin≤z≤zmid(ii) a The coordinate value range of the fourth block is xmin≤x≤xmid,ymid≤y≤ymax,zmid≤z≤zmax(ii) a The coordinate value range of the fifth block is xmid≤x≤xmax,ymin≤y≤ymid,zmin≤z≤zmid(ii) a The coordinate value range of the sixth block is xmid≤x≤xmax,ymin≤y≤ymid,zmid≤z≤zmax(ii) a The coordinate value range of the seventh block is xmid≤x≤xmax,ymid≤y≤ymax,zmin≤z≤zmid(ii) a The coordinate value range of the eighth block is xmid≤x≤xmax,ymid≤y≤ymax,zmid≤z≤zmax. In the octree coding process, which one of eight sub-blocks all point cloud data points contained in the current block belong to is sequentially judged, and after the judgment on which sub-block all point cloud data points contained in the current block belong to is finished, the division condition of the sub-block corresponding to the current block can be coded by 8 bits (bit). If the current block contains the point cloud data point, the corresponding position is set to 1, otherwise, the corresponding position is set to 0. For example, when the third sub-block contains a point cloud data point, the sixth sub-block contains a point cloud data point, and none of the other sub-blocks contains a point cloud data point, the encoded 8-bit binary code stream is 00100100. The blocks containing the data points are then partitioned, and in embodiments of the invention, prior to partitioning any partitioned block, it may be determined whether the coordinate range of the partitioned block needs to be adjusted based on the field of view of the acquisition device acquiring the point cloud data.

Specifically, determining whether to adjust the coordinate range of the division block based on the field of view range of the acquisition device that acquires the point cloud data may include the steps of: determining a coordinate range corresponding to the divided block in which point cloud data exists under the limitation of the visual field range of the acquisition device (the coordinate range may be referred to as a visual field limitation coordinate range); for at least one direction in the three-dimensional directions, comparing the value range of the visual field limited coordinate range in the direction with the value range of the original coordinate range of the division block in the direction; determining whether to adjust a coordinate range of the divided block based on a result of the comparison.

In an embodiment of the present invention, each of the divided blocks may correspond to a view defining coordinate range, and the determining of the view defining coordinate range may include the steps of: calculating the position coordinates of the mapping surface viewpoint center corresponding to each vertex based on the position coordinates of each vertex of the division blocks; calculating the distance from the position coordinate of the mapping surface viewpoint center corresponding to each vertex to the equipment position coordinate of the acquisition equipment; determining a coordinate range corresponding to the dividing block and having point cloud data under the limitation of a visual field range of the acquisition equipment based on the distance from the position coordinate of the mapping surface viewpoint center corresponding to each vertex to the equipment position coordinate of the acquisition equipment; the mapping surface viewpoint center corresponding to any vertex refers to a projection point from the vertex to a preset vector, the starting point of the preset vector is the device position coordinate obtained by preprocessing the position coordinate of the acquisition device, and the end point of the preset vector is the reference position coordinate obtained by preprocessing the position coordinate of a preset reference point in the visual field range of the acquisition device. As previously described, the preprocessing may include a quantization operation. Based on this, the device position coordinates of the capturing device may be coordinates in which actual position coordinates of the capturing device are quantized, and the reference position coordinates may be coordinates in which actual position coordinates of the preset reference point within a visual field range of the capturing device are quantized. For example, the actual position coordinates of the capturing device and the actual position coordinates of the preset reference point may be quantized in the same manner as the position coordinates of the input point cloud data. The quantization precision adopted by the quantization mode can be a preset fixed value. In addition, the quantization accuracy of the quantization manner in each direction of the three-dimensional directions can be kept consistent.

In the embodiment of the invention, the view limiting coordinate range corresponding to any partition block is related to the acquisition equipment for acquiring the point cloud data and the view range thereof. The following describes an exemplary method for determining the view limit coordinate range corresponding to any of the divided blocks with reference to fig. 2 to 6. The following explanation takes the field of view of the point cloud data acquisition device as a cone. It is understood that the field of view of the point cloud data acquisition device may have other shapes, and is not limited.

Fig. 2 is a schematic diagram illustrating a point cloud data collection according to an embodiment of the present invention, and fig. 3 is a schematic diagram illustrating a method for solving coordinates of a view point center of a mapping plane where a certain point is located according to an embodiment of the present invention. As shown in fig. 2, the point O is the position of the acquisition device, from which the rays for acquiring the point cloud data all exit, and the position is usually the origin of coordinates in the unquantized coordinate system, and the coordinates of the position in the unquantized coordinate system are (x)o,yo,zo) Let the center position of the viewpoint of a certain reflecting surface be a point A shown in FIG. 2, and the corresponding coordinate be (x)A,yA,zA). If the linear distance from the point O to the reflecting surface is dist, the view Field (FOV) of the acquisition equipment in the horizontal and vertical directions can be determinedHAnd FOVV) The size of the reflection surface (represented by the length H in the horizontal direction and V in the vertical direction) was determined as shown in formulas 1 and 2.

The position coordinates of the point O and the point a are quantized in the same way as the quantized position coordinates. The specific process can be shown as formula 3, formula 4 and formula 5.

Wherein, x in the formulas 3, 4 and 5min、ymin、zminThe minimum values in three directions in the position coordinates of all point cloud data points are respectively, scale is the precision in quantization, and generally, the quantization precision in three directions can be set to be consistent. x, y and z are coordinate values of the position coordinate to be quantized in three directions respectively,

Figure BDA0002585554380000106

the coordinate values of the quantized position coordinates in three directions are respectively. According to the two points of the point O and the point A, the corresponding point in the coordinate system after quantization can be determined

Figure BDA0002585554380000107

And pointRespectively are

Figure BDA0002585554380000109

Andtherein, a point

Figure BDA00025855543800001011

The position may be referred to as the device position coordinates of the acquisition device, which are not the actual position coordinates of the acquisition device, but are quantized coordinates of the actual position coordinates.

As described above, the mapping surface view corresponding to each vertex of the divided block is calculated based on the position coordinates of each vertexAnd position coordinates of a point center, wherein a mapping surface viewpoint center corresponding to any vertex refers to a projection point from the vertex to a preset vector, a starting point of the preset vector is the device position coordinate obtained by preprocessing the position coordinates of the acquisition device, and an end point of the preset vector is a reference position coordinate obtained by preprocessing the position coordinates of a preset reference point in the visual field range of the acquisition device. In the example shown in fig. 2, the preset reference point is the point a, and the reference position coordinate obtained by the preprocessing of the position coordinate of the preset reference point is the pointPosition coordinates of

Figure BDA0002585554380000112

The starting point of the preset vector is a point

Figure BDA0002585554380000113

The end point of the preset vector is a point

Figure BDA0002585554380000114

The preset vector is the vector

Figure BDA0002585554380000115

Setting pointThe position coordinate of the vertex of one block in a certain space division process in a quantized coordinate system isThe position coordinates of the center of the viewpoint of the mapping surface corresponding to the vertex can be calculated as shown in fig. 3.

FIG. 3 illustrates solving for a point, according to an embodiment of the inventionAnd (5) schematic diagram of the coordinates of the center position of the viewpoint of the located mapping surface. As shown in fig. 3, dots

Figure BDA0002585554380000119

Is a point

Figure BDA00025855543800001110

Setting a slave point at the center of the view point of the mapping surface

Figure BDA00025855543800001111

Pointing pointVector ofCan find out

Figure BDA00025855543800001114

Is shown in equation 6, and then a vector can be found

Figure BDA00025855543800001115

The modulus value (as shown in equation 7) is based onAnd a vector

Figure BDA00025855543800001117

The modulus of (a) can be used to obtain a vector(as shown in equation 8), then the point can be foundAs shown in equation 9.

Figure BDA00025855543800001120

Position coordinate based on acquisition equipment point correspondsAnd the calculated point

Figure BDA00025855543800001125

Center of the view point of the located mapping surfacePosition coordinates of (2), i.e. can be found

Figure BDA00025855543800001127

And

Figure BDA00025855543800001128

the straight-line distance between these two points(as shown in equation 10).

Based on the method described in conjunction with fig. 2 and fig. 3, the position coordinates of the mapping surface viewpoint center corresponding to the position coordinates of any vertex of any partition block and the distance from the position coordinates of the mapping surface viewpoint center corresponding to the vertex to the device position coordinates of the acquisition device can be obtained. Based on the distance between the position coordinate of the mapping surface viewpoint center corresponding to each vertex of the division block and the device position coordinate of the acquisition device, the visual field range (FOV) of the acquisition device corresponding to the division block can be determinedHAnd FOVV) Under the limitation ofThe coordinate range of the point cloud data (i.e., the aforementioned view-defining coordinate range corresponding to the divided block) is as shown in fig. 4.

FIG. 4 shows a schematic diagram of a point cloud distribution range defined according to a field of view of an acquisition device according to an embodiment of the invention. As shown in FIG. 4, the minimum distance corresponds to the viewpoint center point

Figure BDA0002585554380000124

The maximum distance corresponds to the center point of the viewpoint

Figure BDA0002585554380000125

The point cloud data points contained in the current segment must fall within the rectangular frustum defined in fig. 4 according to the minimum distance, the maximum distance, and the field of view of the acquisition device. The coordinate range of the quadrangular frustum can be compared with the original coordinate range of the divided block currently used for space division to determine whether the coordinate range of the current divided block needs to be adjusted.

The following explanation takes the field of view of the acquisition device of the point cloud data as a cone as an example. It is understood that the field of view of the point cloud data acquisition device may have other shapes, and is not limited. A method for determining the range of the visual field limiting coordinates according to another embodiment of the present invention will be described with reference to fig. 5 and 6. Fig. 5 shows a schematic diagram of point cloud data acquisition according to another embodiment of the invention, and fig. 6 shows a schematic diagram of a point cloud distribution range defined according to a field of view of an acquisition device according to another embodiment of the invention. As shown in fig. 5, the point O is the position of the acquisition device, from which the rays for acquiring the point cloud data all exit, and the position is usually the origin of coordinates in the unquantized coordinate system, and the coordinates of the position in the unquantized coordinate system are (x)o,yo,zo) Let a viewpoint center position of a certain reflecting surface be a point A shown in FIG. 5, and the corresponding coordinate be (x)A,yA,zA). Assuming that the linear distance from the point O to the reflecting surface is dist, the size of the reflecting surface (expressed by the diameter D of the reflecting surface) can be obtained from the field of view (FOV) on the acquisition device, as shown in equation 11.

Figure BDA0002585554380000121

The position coordinates of the point O and the point a are quantized in the same way as the quantized position coordinates. The specific process can be shown as formula 3, formula 4 and formula 5. According to the two points of the point O and the point A, the corresponding point in the coordinate system after quantization can be determinedAnd point

Figure BDA0002585554380000123

Respectively areAndtherein, a pointThe position may be referred to as the device position coordinates of the acquisition device, which are not the actual position coordinates of the acquisition device, but are quantized coordinates of the actual position coordinates.

As described above, the position coordinates of the mapping surface viewpoint center corresponding to each vertex of the partition block are calculated based on the position coordinates of each vertex, where the mapping surface viewpoint center corresponding to any vertex refers to a projection point of the vertex onto a preset vector, the starting point of the preset vector is the device position coordinates obtained by preprocessing the position coordinates of the acquisition device, and the ending point of the preset vector is the reference position coordinates obtained by preprocessing the position coordinates of a preset reference point within the field range of the acquisition device. In the example shown in fig. 5, the preset reference point is the point a, and the reference position coordinate obtained by the preprocessing of the position coordinate of the preset reference point is the point

Figure BDA0002585554380000134

Position coordinates ofThe starting point of the preset vector is a point

Figure BDA0002585554380000136

The end point of the preset vector is a pointThe preset vector is the vectorSetting pointThe position coordinate of the vertex of one block in a certain space division process in a quantized coordinate system is

Figure BDA00025855543800001310

The position coordinates of the center of the viewpoint of the mapping surface corresponding to the vertex can be calculated as shown in fig. 3. Finally, according to the foregoing equations 6 to 10, the position coordinates of the mapping plane viewpoint center corresponding to the position coordinates of any vertex of any one of the divided blocks and the distance from the position coordinates of the mapping plane viewpoint center corresponding to the vertex to the device position coordinates of the acquisition device can be calculated. Based on the distance from the position coordinates of the mapping surface viewpoint center corresponding to each vertex of the divided block to the device position coordinates of the capturing device, the coordinate range corresponding to the divided block in which the point cloud data exists under the limitation of the field of view (FOV) of the capturing device (i.e., the aforementioned field of view limitation coordinate range corresponding to the divided block) can be determined, as shown in fig. 6.

As shown in FIG. 6, the minimum distance corresponds to the viewpoint center point

Figure BDA00025855543800001311

The maximum distance corresponds to the center point of the viewpoint

Figure BDA00025855543800001312

The point cloud data points contained in the current segment must fall within the truncated cone defined in fig. 4 according to the minimum distance, the maximum distance, and the field of view of the acquisition device. The coordinate range of the frustum may be compared with the original coordinate range of the divided block currently used for spatial division to determine whether the coordinate range of the currently divided block needs to be adjusted.

The above exemplarily shows the determination method of the view limiting coordinate range corresponding to any one of the divided blocks. It should be understood that this is only exemplary, and the determination of the view limiting coordinate range corresponding to any divided block may be in other methods according to the different view ranges of the acquisition devices.

The following illustrates how to determine whether to adjust the coordinate range of the divided block based on the comparison result of the value range of the view-defining coordinate range corresponding to the divided block and the original coordinate range of the divided block, and how to adjust the coordinate range of the divided block. It should be understood that the view-defining coordinate range corresponding to the division block and the original coordinate range of the division block each have a value range in the three-dimensional direction, and therefore, the comparison operation may be performed for at least one direction of the three-dimensional directions, and the value range of the compared coordinates of the direction may be adjusted if necessary. The following is described in detail with reference to one direction as an example, and it is understood that the operation in the other two directions is the same.

In one embodiment of the present invention, the determining whether to adjust the coordinate range of the divided block based on the result of the comparison may include: for at least one direction in the three-dimensional directions, when the value range of the view limited coordinate range in the direction and the value range of the original coordinate range in the direction have an intersection part, and the first new side length determined based on the intersection part is smaller than the original side length of the division block in the direction, the side length of the division block is adjusted to be the first new side length, and the coordinate range of the division block in the direction is adjusted based on the first new side length and the intersection part.

In this embodiment, the view-field-defining coordinate range corresponding to the divided block has an intersection with the original coordinate range of the divided block in a certain direction, that is, the following two cases: (1) the minimum value of the visual field limiting coordinate range in the direction is less than or equal to the minimum value of the original coordinate range in the direction, and the maximum value of the visual field limiting coordinate range in the direction is between the minimum value and the maximum value of the original coordinate range in the direction; (2) the minimum value of the visual field limiting coordinate range in the direction is between the minimum value and the maximum value of the original coordinate range in the direction, and the maximum value of the visual field limiting coordinate range in the direction is greater than or equal to the maximum value of the original coordinate range in the direction. Assuming that the minimum value of the original coordinate range in the direction is a1, the maximum value of the original coordinate range in the direction is B1, the minimum value of the view-limiting coordinate range in the direction is a2, and the maximum value of the view-limiting coordinate range in the direction is B2, the first case is a2 ≦ a1 and a1< B2< B1; the second case is A1< A2< B1 and B2 ≧ B1.

For the first case, the intersection may represent the interval [ a1, B2], and the first new edge length L1 may be determined based on the difference between the maximum and minimum values of the interval (i.e., B2-a 1). Illustratively, the first new edge length L1 may be an integer power of 2 that is greater than or equal to and closest to the difference. The first new side length L1 may be compared with the original side length L0 of the partition in the direction (i.e., B1-a1), when L1< L0, the side length of the partition may be adjusted from L0 to L1, and the coordinate range of the partition in the direction is adjusted based on L1 and the interval [ a1, B2 ]. For example, the minimum value a1 of the divided block in the direction may be added to the first new side length L1 to obtain a new maximum value B1 '(B1 ═ a1+ L1) of the divided block in the direction, that is, the adjusted side length of the divided block in the direction is L1, and the coordinate range in the direction is [ a1, B1' ].

For the second case, the intersection may represent the interval [ A2, B1], and the first new edge length L1' may be determined based on the difference between the maximum and minimum values of the interval (i.e., B1-A2). Illustratively, the first new edge length L1' may be an integer power of 2 that is greater than or equal to and closest to the difference. The first new side length L1 'may be compared with the original side length L0 of the partition in the direction (i.e., B1-a1), when L1' < L0, the side length of the partition may be adjusted from L0 to L1 ', and the coordinate range of the partition in the direction is adjusted based on L1' and the interval [ a2, B1 ]. For example, the maximum value B1 of the divided block in the direction may be subtracted by the second new side length L1 ' to obtain a new minimum value a1 ' of the divided block in the direction (a1 ═ B1-L1 '), that is, the adjusted side length of the divided block in the direction is L1 ', and the coordinate range in the direction is [ a1 ', B1 ].

In another embodiment of the present invention, the determining whether to adjust the coordinate range of the division block based on the result of the comparison may include: and for at least one direction in the three-dimensional direction, when the value range of the view limited coordinate range in the direction falls into the value range of the original coordinate range in the direction, and the second new side length determined based on the view limited coordinate range is smaller than the original side length of the partition block in the direction, adjusting the side length of the partition block to be the second new side length, and adjusting the coordinate range of the partition block in the direction based on the second new side length and the view limited coordinate range.

In this embodiment, the value range of the view-limiting coordinate range corresponding to the divided block in a certain direction falls within the value range of the original coordinate range of the divided block in the direction, that is, the minimum value of the view-limiting coordinate range in the direction is greater than the minimum value of the original coordinate range in the direction, and the maximum value of the view-limiting coordinate range in the direction is smaller than the maximum value of the original coordinate range in the direction. Still assuming that the minimum value of the original coordinate range in the direction is a1, the maximum value of the original coordinate range in the direction is B1, the minimum value of the field limiting coordinate range in the direction is a2, and the maximum value of the field limiting coordinate range in the direction is B2, the case in this embodiment is a2> a1 and B2< B1.

In this embodiment, the second new side length L2 may be determined based on the difference between the maximum and minimum values of the field of view defining coordinate range in that direction (i.e., B2-A2). Illustratively, the second new edge length L2 may be an integer power of 2 that is greater than or equal to and closest to the difference. The second new side length L2 may be compared with the original side length L0 of the partition block in the direction (i.e., B1-a1), when L2< L0, the side length of the partition block may be adjusted from L0 to L2, and the coordinate range of the partition block in the direction may be adjusted based on L2 and the range of values of the view-defining coordinate range in the direction [ a2, B2 ]. In one example, the minimum value a2 of the view limiting coordinate range in the direction may be added to the second new side length L2 to obtain a new maximum value B1 'of the divided block in the direction, and the minimum value a2 of the view limiting coordinate range in the direction is taken as a new minimum value a 1' of the divided block in the direction, so the adjusted coordinate range of the divided block in the direction is [ a1 ', B1' ], where a1 '═ a2, and B1' ═ a2+ L2. In another example, the maximum value B2 of the view-defining coordinate range in the direction minus the second new side length L2 may be used to obtain a new minimum value a1 'of the divided block in the direction, and the maximum value B2 of the view-defining coordinate range in the direction is used as a new maximum value B1' of the divided block in the direction, so that the adjusted coordinate range of the divided block in the direction is [ a1 ', B1' ], where a1 '═ B2-L2, and B1' ═ B2.

In other embodiments, for any one of the three-dimensional directions, when the value range of the division block in the direction falls within the value range of the view-limiting coordinate range in the direction, or the value range of the division block in the direction completely coincides with the value range of the view-limiting coordinate range in the direction, that is, the minimum value of the view-limiting coordinate range in the direction is less than or equal to the minimum value of the division block in the direction, and the maximum value of the view-limiting coordinate range in the direction is greater than or equal to the maximum value of the division block in the direction (taking the above example that the symbol is a2 ≦ a1 and B2 ≧ B1), it is said that the division block completely falls within the view range of the acquisition device in the direction, and there is no need to adjust the coordinate range of the division block in the direction.

In yet another embodiment, for any one of the three-dimensional directions, the value range of the division block in the direction and the value range of the view-defining coordinate range in the direction have no intersection at all, i.e. the maximum value of the view-defining coordinate range in the direction is smaller than the minimum value of the division block in the direction, and the minimum value of the view-defining coordinate range in the direction is larger than the maximum value of the division block in the direction (taking the notation in the above example, that is, B2< a1 and a2> B1), it is stated that the division block completely falls outside the view range of the acquisition apparatus in the direction, i.e. there are no point cloud data points within the division block. However, this does not occur in practice because the block in which the point cloud data points are present is only subject to the division encoding.

Specific details of determining whether and how to adjust the coordinate ranges of the division blocks based on the field of view of the acquisition device acquiring the point cloud data are exemplarily described above in connection with fig. 2 to 6. It will be appreciated by those skilled in the art that the above description is merely exemplary and that any other suitable manner may be employed to adjust the coordinate ranges of the segments based on the field of view of the acquisition device acquiring the point cloud data.

The following continues to describe a method of encoding position coordinates of point cloud data according to an embodiment of the present invention. The spatial partition encoding is continued after the block size in the block partition encoding process is adjusted according to the field of view of the acquisition device. In the encoding process, sub-block division is carried out layer by layer, and the division condition of each block is encoded one by one. During the encoding process, each layer may be divided according to a median method. And when the side lengths in the three directions do not reach the minimum side length, adopting octree division coding. The partition of each layer of octree utilizes the coordinates of the center point of the current block to divide the sub-blocks, and the current block is divided into eight small sub-blocks through the center point. Let the coordinate of the center point of the current cuboid block be (x)mid,ymid,zmid) Then, the value ranges of the coordinates of the eight small sub-blocks in the octree division process are as follows: the value range of the coordinates of the first block is x is less than or equal to xmid、y≤ymid、z≤zmid(ii) a The value range of the coordinates of the second block is x is less than or equal to xmid、y≤ymid、z>zmid(ii) a The value range of the coordinate of the third block is x is less than or equal to xmid、y>ymid、z≤zmid(ii) a The coordinate value range of the fourth block is x is less than or equal to xmid、y>ymid、z>zmid(ii) a The coordinate value range of the fifth block is x>xmid、y≤ymid、z≤zmid(ii) a The coordinate value range of the sixth block is x>xmid、y≤ymid、z>zmid(ii) a The coordinate value range of the seventh block is x>xmid、y>ymid、z≤zmid(ii) a The coordinate value range of the eighth block is x>xmid、y>ymid、z>zmid. In the octree coding process, sequentially judging which of eight sub-blocks all point cloud data points contained in a current block belong to respectively, after judging which sub-block all point cloud data points contained in the current block belong to, then coding the division condition of the sub-block corresponding to the current block by using 8 bits, if the current block contains the point cloud data points, setting the point cloud data points as 1 correspondingly, otherwise, setting the point cloud data points as 0 correspondingly. For example, when the third sub-block contains a point cloud data point, the sixth sub-block contains a point cloud data point, and none of the other sub-blocks contains a point cloud data point, the encoded 8-bit binary code stream is 00100100.

It is noted that, unlike the conventional octree partition coding scheme, according to an embodiment of the present invention, since the adjustment of the block size may be different at different positions, it may occur that the side lengths of the blocks within the same layer are not equal in size and that the side lengths in the three directions are also not equal within one block. Based on this, according to an embodiment of the present invention, two exemplary encoding methods are provided.

In an embodiment of the present invention, when performing spatial division encoding on a partition block with an adjusted coordinate range, when the side length of the partition block in one or two of three-dimensional directions reaches a preset minimum side length (which may generally be a value of 1), encoding is performed for the direction reaching the preset minimum side length without performing division.

In this embodiment, when the side length in one direction reaches the preset minimum side length first, then in the next division process, division is not performed in this direction, and the direction in which division is performed isThe values of the coordinates of (a) can be all selected to be less than or equal to the half interval of the median. Illustratively, when the side length of the partition block in one direction of the three-dimensional directions reaches a preset minimum side length, octree partition results in the remaining two directions which do not reach the preset minimum side length may be encoded by using eight bits, where a value of a highest four-bit of the eight bits depends on whether point cloud data is included in subblocks partitioned by the partition block in the remaining two directions, and values of remaining four-bit of the eight bits are 0. In the following, taking an example that the x-axis first reaches the preset minimum side length, the dividing process at this time has only four possibilities, which are respectively one: x is less than or equal to xmid、y≤ymid、z≤zmidAnd the possibility of two: x is less than or equal to xmid、y≤ymid、z>zmidAnd possibly three: x is less than or equal to xmid、y>ymid、z≤zmidAnd possibly four: x is less than or equal to xmid、y>ymid、z>zmid. The four possible corresponding 8-bit numbers describing the octree partition are xxxx 0000, where x is required to determine whether the corresponding bit is 0 or 1 according to whether the point cloud data points are contained in the previous four sub-blocks.

Similarly, if the side lengths in two directions reach the preset minimum side length, the two directions are not divided in the next division process, and the coordinate values in the two directions can both select the half interval less than or equal to the median. Illustratively, when the side lengths of the partition block in two directions of the three-dimensional directions reach a preset minimum side length, encoding the octree partition result in the remaining one direction which does not reach the preset minimum side length by using eight bits, wherein the value of the highest two bits of the eight bits depends on whether the subblocks partitioned by the partition block in the remaining one direction contain point cloud data, and the value of the remaining six bits of the eight bits is 0. In the following, taking an example that the length of the preset minimum edge is reached first in the two directions of the x axis and the y axis as an example, the dividing process at this time only has two possibilities, which are respectively one: x is less than or equal to xmid、y≤ymid、z≤zmidAnd the possibility of two: x is less than or equal to xmid、y≤ymid、z>zmid. Two possible corresponding 8bit numbers describing the octree partition are xx 000000, where x is needed to determine whether the corresponding bit is 0 or 1 according to whether the point cloud data points are contained in the previous two sub-blocks. And if the sides in the three directions all reach the reserved minimum side length, ending the tree division structure coding process.

In another embodiment of the present invention, when the partition block with the adjusted coordinate range is subjected to spatial partition encoding, when the side length of the partition block in one or two directions of the three-dimensional directions reaches a preset minimum side length, the direction reaching the preset minimum side length is not divided and is not encoded.

In this embodiment, when the side length in one direction first reaches the reserved minimum side length, then in the next division process, division encoding is performed in the remaining two directions, and the coordinates in the direction that has reached the reserved minimum side length do not participate in the next division encoding, at which time the tree division becomes the quadtree division. Illustratively, when the side length of the partition block in one direction of the three-dimensional directions reaches a preset minimum side length, the quadtree partition results in the remaining two directions which do not reach the preset minimum side length may be encoded by using four bits, where a value of the four bits depends on whether the sub-blocks obtained by partitioning the partition block in the remaining two directions contain point cloud data. The following description will be made by taking an example in which the x-axis reaches the minimum side length first, and the division center at this time is (y)mid,zmid) The following four possibilities exist in the partitioning process, one is possible: y is less than or equal to ymid、z≤zmidAnd the possibility of two: y is less than or equal to ymid、z>zmidAnd possibly three: y is>ymid、z≤zmidAnd possibly four: y is>ymid,z>zmid. At this time, only 4 bits are needed to describe the current division situation. For example, when the first block contains a point cloud data point, the fourth block contains a point cloud data point, and none of the other sub-blocks contains a point cloud data point, the encoded 4-bit binary code stream is 1001.

Similarly, if the length of a side in two directions reachesWhen the minimum side length is reserved, the division coding is carried out in the remaining direction in the next division process, the coordinate in the direction of reserving the minimum side length does not participate in the next division coding, and the tree division is changed into binary tree division. Illustratively, when the side lengths of the partition block in two directions of the three-dimensional directions reach a preset minimum side length, sampling two bits to encode a binary tree partition result of the remaining one direction which does not reach the preset minimum side length, wherein the value of the two bits depends on whether point cloud data is contained in sub-blocks obtained by partitioning the partition block in the remaining one direction. The following description will be made by taking an example in which the length of the reserved minimum side is reached first in both the x and y axes, and the division center at this time is (z)mid) In this case, the following two possibilities exist in the partitioning process, respectively one: z is less than or equal to zmidAnd possibly two: z is a radical of>zmid. At this time, only 2 bits are needed to describe the current division situation. For example, when the first block contains point cloud data points and the second block does not contain point cloud data points, the encoded 2-bit binary code stream is 10. And if the three edges reach the reserved minimum edge length, ending the tree division structure coding process.

The tree division encoding process after adjusting the coordinate range of the division block based on the visual field range of the acquisition apparatus that acquires the point cloud data is exemplarily described above. It will be appreciated by those skilled in the art that the above description is merely exemplary and that any other suitable manner may be employed to implement the tree partition encoding process for the partition blocks of the adjusted coordinate ranges.

The following continues to describe a method of encoding position coordinates of point cloud data according to an embodiment of the present invention. After the tree partition encoding process is finished, the number of point cloud points contained in each block which reaches the preset minimum side length in three directions needs to be encoded. It should be noted that, since the coordinate range values obtained when the different blocks are adjusted according to the field of view of the acquisition device may be different, the number of layers of the different blocks in all three directions up to the preset minimum side length may be different, as shown in fig. 7. Fig. 7 is a diagram illustrating a tree partition encoding process according to an embodiment of the present invention. In fig. 7, the right block in the mth layer has reached the preset minimum edge length in all three directions of the mth layer, and the left block in the mth layer still needs to be divided and encoded. For encoding the number of point cloud points contained in each block that reaches the minimum side length in three directions, according to an embodiment of the present invention, two exemplary encoding methods are provided.

In one embodiment of the invention, in the octree division encoding process, when any sub-block reaches a preset minimum side length in the three-dimensional direction, the number of point cloud data contained in the sub-block is encoded. In this embodiment, when the side length of a block in all three directions has reached a preset minimum side length, the number of point cloud points contained within the block is encoded immediately. When the block contains a point cloud data point, the 0 of a bit is directly coded for representing. When the block contains more than one point cloud data point, if the block contains n point cloud data points, a bit 1 is encoded first to represent it, and then a value (n-1) is encoded. The encoding process of the point cloud points in the block can be realized according to the flow.

In another embodiment of the present invention, in the process of spatial division encoding, when all sub-blocks reach a preset minimum side length in the three-dimensional direction, the number of point cloud data included in each sub-block is sequentially encoded. In this embodiment, when the side lengths of one block in three directions all reach the preset minimum side length, it is determined whether the current dividing process is completely finished. If there are still blocks to be divided, the current block is directly passed to the next layer until the whole division process is finished. And when the side lengths of all the blocks in the three directions reach the preset minimum side length, sequentially encoding the number of point cloud points contained in each block. For each block, when a point cloud data point is contained within the block, a bit's 0 is directly encoded to represent it. When the block contains more than one point cloud data point, it is assumed that the block contains n point cloud data points (where n is a natural number greater than 1), and at this time, a bit 1 is encoded first for representation, and then a numerical value (n-1) is encoded. The encoding process of the point cloud points in the block can be realized according to the flow.

Having exemplarily described the process of step S120 of the method 100 for encoding position coordinates of point cloud data according to an embodiment of the present invention, the following steps of the encoding method 100 are described with continued reference to fig. 1.

In step S130, arithmetic coding is performed on the intermediate coding result to obtain a final coding result.

In the embodiment of the present invention, the intermediate coding result is a coding result obtained by performing the octree partition coding described in step S120 on the preprocessed position coordinates, and is referred to as an intermediate coding result in order to distinguish from the final coding result of the position coordinates of the point cloud data. In the embodiment of the invention, the intermediate coding result (binary code stream) can be sent to an arithmetic coding engine for arithmetic coding, and the final coding result of the position coordinates of the point cloud data can be obtained.

Based on the above description, the method for encoding the position coordinates of the point cloud data according to the embodiment of the present invention defines the value ranges of the division encoding process in the position coordinate encoding process by combining the value ranges of the view ranges of the point cloud data acquisition devices in the acquisition process, and can reduce some areas where point cloud data points do not exist, thereby reducing the time overhead in the encoding process and improving the encoding efficiency.

The above exemplarily describes the encoding method of the position coordinates of the point cloud data according to the embodiment of the present invention. Illustratively, the method of encoding the position coordinates of point cloud data according to an embodiment of the present invention may be implemented in an apparatus, device or system having a memory and a processor. Illustratively, the method for encoding the position coordinates of the point cloud data according to the embodiment of the invention may further include writing parameters related to the field of view of the acquisition device into a code stream (e.g., header information of the code stream) for use by a decoding end. Of course, this step may not be included, but parameters related to the field of view of the capturing device are provided in advance at the decoding end for performing a method of decoding the position coordinates of the point cloud data according to an embodiment of the present invention, which will be described later below.

A system for encoding position coordinates of point cloud data according to an embodiment of the present invention is described below with reference to fig. 8. FIG. 8 shows a schematic block diagram of an encoding system 800 for location coordinates of point cloud data according to an embodiment of the invention. The system 800 for encoding positional coordinates of point cloud data includes a storage 810 and a processor 820.

The storage 810 stores therein a program for implementing the respective steps in the method of encoding the position coordinates of point cloud data according to the embodiment of the present invention. The processor 820 is used for operating a program stored in the storage device 810 to perform the corresponding steps of the above-described method for encoding the position coordinates of the point cloud data according to the embodiment of the present invention. For brevity, no further description is provided herein.

Furthermore, according to an embodiment of the present invention, there is also provided a storage medium on which program instructions are stored, which when executed by a computer or a processor, are used to execute the respective steps of the method of encoding position coordinates of point cloud data of an embodiment of the present invention. The storage medium may include, for example, a memory card of a smart phone, a storage component of a tablet computer, a hard disk of a personal computer, a Read Only Memory (ROM), an Erasable Programmable Read Only Memory (EPROM), a portable compact disc read only memory (CD-ROM), a USB memory, or any combination of the above storage media. The computer-readable storage medium may be any combination of one or more computer-readable storage media. In one embodiment, the computer program instructions may, when executed by a computer, perform the above-described method of encoding position coordinates of point cloud data according to an embodiment of the present invention. For brevity, no further description is provided herein.

According to another aspect of the invention, a method for decoding the position coordinates of the point cloud data is also provided. Since the method for decoding the position coordinates of the point cloud data according to the embodiment of the present invention corresponds to the method for encoding the position coordinates of the point cloud data according to the embodiment of the present invention, for brevity, some processes similar to or the same as the encoding process are not described in detail again.

FIG. 9 shows a schematic flow diagram of a method 900 for decoding location coordinates of point cloud data according to an embodiment of the invention. As shown in fig. 9, the method 900 for decoding the position coordinates of the point cloud data may include the steps of:

in step S910, arithmetic decoding is performed on the dot cloud data position coordinate encoding result to obtain an arithmetic decoding result.

In an embodiment of the present invention, step S910 corresponds to step S130 of the method 100 for encoding position coordinates of point cloud data according to an embodiment, in which the point cloud data position coordinate encoding result is subjected to the inverse process of arithmetic encoding, i.e., arithmetic decoding, resulting in an arithmetic decoding result.

In step S920, a spatial division decoding is performed on the arithmetic decoding result to obtain an intermediate decoding result, wherein in the spatial division decoding process, a coordinate range of an initial block for spatial division is determined, and whether to adjust the coordinate range of the division block is determined based on a field of view range of an acquisition device that acquires the point cloud data. Wherein parameters related to the field of view of the acquisition device can be decoded from the codestream to determine the coordinate range of the initial block for spatial partitioning. Further, the parameters related to the visual field range of the acquisition equipment are decoded from the head information of the code stream.

In an embodiment of the present invention, step S920 corresponds to step S120 of the method 100 for encoding position coordinates of point cloud data according to the embodiment, in which the arithmetic decoding result obtained in step S920 is subjected to decoding based on spatial division decoding. First, header information of the encoding result may be decoded to obtain a maximum value of position coordinates of the point cloud data among maximum values of each of three directions, and then a coordinate range (side length) of an initial block for spatial division may be determined based on the value. Based on the determination of the side length of the initial block, spatial partition decoding may begin. Similar to the encoding method 100, since the initialized cube (i.e., the initial block) is determined according to the position coordinate distribution of all the point cloud points, and the value of the initialized cube is determined to be the smallest cube that can be selected within the visual field range of the acquisition device, the pruning operation with the visual field range of the acquisition device is not required in the first division. It is determined only for the divided blocks whether the coordinate range thereof needs to be adjusted based on the field of view of the acquisition device.

The above decoding of the arithmetic decoding result based on the spatial division decoding proposed by the present invention is described in detail below.

Let the coordinate of the center point of the current cuboid block be (x)mid,ymid,zmid) The minimum values in three directions of the current block are x respectivelymin、ymin、zminThe maximum values of the current block in three directions are x respectivelymax、ymax、zmaxThen, the value ranges of the coordinates of the eight small sub-blocks in the octree division process are as follows. The first block has a coordinate value range of xmin≤x≤xmid、ymin≤y≤ymid、zmin≤z≤zmid(ii) a The second block has a coordinate value in the range of xmin≤x≤xmid、ymin≤y≤ymid、zmid≤z≤zmax(ii) a The coordinate value range of the third block is xmin≤x≤xmid、ymid≤y≤ymax、zmin≤z≤zmid(ii) a The coordinate value range of the fourth block is xmin≤x≤xmid、ymid≤y≤ymax、zmid≤z≤zmax(ii) a The coordinate value range of the fifth block is xmid≤x≤xmax、ymin≤y≤ymid、zmin≤z≤zmid(ii) a The coordinate value range of the sixth block is xmid≤x≤xmax、ymin≤y≤ymid、zmid≤z≤zmax(ii) a The coordinate value range of the seventh block is xmid≤x≤xmax、ymid≤y≤ymax、zmin≤z≤zmid(ii) a The coordinate value range of the eighth block is xmid≤x≤xmax,ymid≤y≤ymax,zmid≤z≤zmax. In the octree division decoding process, 8bit values are sequentially decoded to determine corresponding sub-blocksIf the current block contains the point cloud data point, the corresponding position is set to be 1, otherwise, the corresponding position is set to be 0. Therefore, if the 8-bit binary code stream bit 00100100100100 is decoded, it indicates that the third sub-block of the current block contains the point cloud data point, and the sixth sub-block contains the point cloud point, and the block containing the point cloud data point is continuously divided and decoded in the next layer dividing process. As described above, whether or not the coordinate range of the partition block to be subjected to spatial partition decoding needs to be adjusted based on the view range of the acquisition device needs to be determined, and whether or not the adjustment is determined and how the adjustment is similar to that in the encoding method 100 described with reference to fig. 1 to 6 are determined, and details are not repeated here for brevity.

The spatial partition decoding is continued after the block size in the block partition decoding process is adjusted according to the field of view of the acquisition device. In the decoding process, partition decoding reconstruction is carried out layer by layer, and the partition condition of each block is decoded one by one. Here, two exemplary decoding methods are provided according to embodiments of the present invention, corresponding to the encoding process.

In an embodiment of the present invention, when performing spatial partition decoding on a partition block whose coordinate range is adjusted, 8 bits are decoded each time, a condition whether a point cloud data point is contained in 8 sub-blocks of the partition block is obtained, and next-layer partition decoding is performed on a sub-block containing the point cloud data point in the sub-block. And in the same way, the division decoding process is ended until the side lengths of each block in the three directions all reach the minimum side length. Illustratively, when the side length of the partition block in one of the three-dimensional directions reaches a preset minimum side length, eight bits may be obtained according to the arithmetic decoding result, a value of a lowest four-bit of the eight bits is 0, and it is determined whether the sub-blocks obtained by partitioning the partition block in the remaining two directions that have not reached the preset minimum side length contain point cloud data according to a highest four-bit of the eight bits. And when the side lengths of the partition blocks in two directions in the three-dimensional direction reach a preset minimum side length, acquiring eight bits according to the arithmetic decoding result, wherein the value of the lowest six bits of the eight bits is 0, and determining whether the sub blocks obtained by partitioning the partition blocks in the remaining direction which does not reach the preset minimum side length contain point cloud data or not according to the highest two bits of the eight bits.

In another embodiment of the present invention, when the partition block with the adjusted coordinate range is partitioned and decoded, when the side lengths of the partition block in the three directions do not reach (i.e., are all greater than) the preset minimum side length, octree partition decoding needs to be performed, and the tree structure during encoding is reconstructed by decoding 8 bits. When the side length of the partition block in a certain direction reaches a preset minimum side length, decoding 4 bits, wherein each 1bit corresponds to one of four subblocks in the quadtree partition, when the corresponding bit is 1, the corresponding subblock is continuously divided, and when the corresponding bit is 0, the corresponding subblock is not further divided. When the side lengths of the divided blocks in a certain two directions reach the minimum side length, 2 bits are decoded next, each 1bit corresponds to one of two subblocks in the binary tree division, when the corresponding bit is 1, the corresponding subblock is continuously divided, and when the corresponding bit is 0, the corresponding subblock is not further divided. And ending the dividing and decoding process until the side lengths of the three directions of each block all reach the minimum side length. Illustratively, when the side length of the partition block in one of the three-dimensional directions reaches a preset minimum side length, four bits may be obtained according to the arithmetic decoding result, and it is determined whether the partition block includes point cloud data in sub-blocks partitioned in the remaining two directions that have not reached the preset minimum side length according to the four bits. And when the side lengths of the partition blocks in two directions in the three-dimensional direction reach a preset minimum side length, acquiring two bits according to the arithmetic decoding result, and determining whether the partition blocks contain point cloud data in sub blocks obtained by partitioning in the rest direction which does not reach the preset minimum side length according to the two bits.

After the tree partition decoding process is finished, the number of the point cloud points contained in each block which reaches the preset minimum side length in three directions needs to be decoded. Here, two exemplary decoding methods are provided according to embodiments of the present invention, corresponding to the encoding process.

In one embodiment of the invention, when any sub-block reaches a preset minimum side length in the three-dimensional direction, the number of point cloud data contained in the sub-block is decoded. In this embodiment, when the side length of a block in all three directions has reached a preset minimum side length, the number of point cloud points contained in the block is decoded immediately. When a 0 is decoded, then only one point cloud data point is contained within the block. When a1 is decoded, more than one point cloud data point is contained within the block, and then the value (n-1) is decoded, indicating that n point cloud data points are contained within the block (where n is a natural number greater than 1). And then, continuously carrying out partition decoding until the whole tree partition structure is reconstructed and the number of point cloud points contained in all blocks is decoded.

In another embodiment of the present invention, when all the sub-blocks reach the preset minimum side length in the three-dimensional direction, the number of the point cloud data included in each sub-block is sequentially decoded. In this embodiment, when the side lengths of a block in three directions have all reached the preset minimum side length, it is determined whether the current division process has been completely completed, and if there is still a block to be divided, the current block is directly transferred to the next layer until all the division processes have been completed. When the side lengths of all the blocks in the three directions reach the preset minimum side length, the number of point cloud points contained in each block is decoded in sequence. For any block containing point cloud points, when a 0 is decoded, only one point cloud data point is contained in the block; when a1 is decoded, more than one point cloud data point is contained within the block, followed by a value (n-1) indicating that n point cloud data points are contained within the block. And sequentially decoding the number of point cloud points contained in each block to obtain an intermediate decoding result of the point cloud data position coordinate encoding result.

In the embodiment of the present invention, the intermediate decoding result is a decoding result obtained by performing the spatial division decoding described in step S920 on the arithmetic decoding result, and is referred to as an intermediate decoding result in order to be distinguished from the final decoding result of the point cloud data position coordinate encoding result.

In step S930, inverse preprocessing is performed on the intermediate decoding result to obtain the position coordinates of the point cloud data.

In the embodiment of the present invention, step S930 corresponds to step S110 of the method 100 for encoding position coordinates of point cloud data according to the embodiment, in which the intermediate decoding result obtained in step S920 is subjected to inverse preprocessing (which may be inverse quantization, which is the inverse process of the quantization process described above, corresponding to step S110), so as to obtain a final decoding result, that is, the position coordinates of the point cloud data are obtained.

Based on the above description, the decoding method of the position coordinates of the point cloud data according to the embodiment of the present invention limits the value range of the position coordinates in the decoding process by combining the value range of the view range of the acquisition device of the point cloud data in the acquisition process, and can reduce some areas where point cloud data points do not exist, thereby reducing the time overhead in the decoding process and improving the decoding efficiency.

The above exemplarily describes the decoding method of the position coordinates of the point cloud data according to the embodiment of the present invention. Illustratively, the method of decoding the position coordinates of the point cloud data according to an embodiment of the present invention may be implemented in an apparatus, device or system having a memory and a processor.

A system for decoding the position coordinates of point cloud data according to an embodiment of the present invention is described below with reference to fig. 10. FIG. 10 shows a schematic block diagram of a system 1000 for decoding location coordinates of point cloud data in accordance with an embodiment of the invention. The system 1000 for decoding the position coordinates of the point cloud data includes a storage 1010 and a processor 1020.

Wherein the storage 1010 stores a program for implementing respective steps in the method of decoding the position coordinates of the point cloud data according to the embodiment of the present invention. The processor 1020 is configured to run a program stored in the storage 1010 to perform the corresponding steps of the method for decoding the position coordinates of the point cloud data according to the embodiment of the present invention. For brevity, no further description is provided herein.

Further, according to an embodiment of the present invention, there is also provided a storage medium on which program instructions for executing respective steps of the method for decoding position coordinates of point cloud data of an embodiment of the present invention are stored when the program instructions are executed by a computer or a processor. The storage medium may include, for example, a memory card of a smart phone, a storage component of a tablet computer, a hard disk of a personal computer, a Read Only Memory (ROM), an Erasable Programmable Read Only Memory (EPROM), a portable compact disc read only memory (CD-ROM), a USB memory, or any combination of the above storage media. The computer-readable storage medium may be any combination of one or more computer-readable storage media. In one embodiment, the computer program instructions may, when executed by a computer, perform the method of decoding the position coordinates of point cloud data according to an embodiment of the present invention described above. For brevity, no further description is provided herein.

In addition, according to the embodiment of the present invention, the above-mentioned collecting device for collecting point cloud data may be a distance measuring device such as a laser radar and a laser distance measuring device. In one embodiment, the ranging device is used to sense external environmental information, such as distance information, orientation information, reflected intensity information, velocity information, etc. of environmental targets. A point cloud point may include at least one of the external environmental information measured by the ranging device.

In one implementation, the ranging device may detect the distance of the probe to the ranging device by measuring the Time of Flight (TOF), which is the Time-of-Flight Time, of light traveling between the ranging device and the probe. Alternatively, the distance measuring device may detect the distance from the probe to the distance measuring device by other techniques, such as a distance measuring method based on phase shift (phase shift) measurement or a distance measuring method based on frequency shift (frequency shift) measurement, which is not limited herein.

For ease of understanding, the workflow of a ranging apparatus that generates the three-dimensional data points mentioned herein will be described below by way of example in connection with ranging apparatus 1100 shown in fig. 11.

As shown in fig. 11, ranging apparatus 1100 may include a transmit circuit 1110, a receive circuit 1120, a sampling circuit 1130, and an operation circuit 1140.

The transmit circuitry 1110 may transmit a sequence of light pulses (e.g., a sequence of laser pulses). The receiving circuit 1120 may receive the optical pulse sequence reflected by the detected object, perform photoelectric conversion on the optical pulse sequence to obtain an electrical signal, process the electrical signal, and output the electrical signal to the sampling circuit 1130. The sampling circuit 1130 may sample the electrical signal to obtain a sampling result. The arithmetic circuit 1140 may determine the distance between the distance measuring device 1100 and the detected object based on the sampling result of the sampling circuit 1130.

Optionally, the distance measuring apparatus 1100 may further include a control circuit 1150, and the control circuit 1150 may implement control of other circuits, for example, may control an operating time of each circuit and/or perform parameter setting on each circuit, and the like.

It should be understood that, although the distance measuring device shown in fig. 11 includes a transmitting circuit, a receiving circuit, a sampling circuit and an arithmetic circuit for emitting a light beam to detect, the embodiments of the present application are not limited thereto, and the number of any one of the transmitting circuit, the receiving circuit, the sampling circuit and the arithmetic circuit may be at least two, and the at least two light beams are emitted in the same direction or in different directions respectively; the at least two light paths may be emitted simultaneously or at different times. In one example, the light emitting chips in the at least two transmitting circuits are packaged in the same module. For example, each transmitting circuit comprises a laser emitting chip, and die of the laser emitting chips in the at least two transmitting circuits are packaged together and accommodated in the same packaging space.

In some implementations, in addition to the circuit shown in fig. 11, the distance measuring device 1100 may further include a scanning module (not shown in fig. 11) for changing the propagation direction of at least one laser pulse sequence emitted from the emitting circuit.

The module including the transmitting circuit 1110, the receiving circuit 1120, the sampling circuit 1130, and the operation circuit 1140, or the module including the transmitting circuit 1110, the receiving circuit 1120, the sampling circuit 1130, the operation circuit 1140, and the control circuit 1150 may be referred to as a ranging module, which may be independent of other modules, for example, a scanning module.

The distance measuring device can adopt a coaxial light path, namely the light beam emitted by the distance measuring device and the reflected light beam share at least part of the light path in the distance measuring device. For example, at least one path of laser pulse sequence emitted by the emitting circuit is emitted by the scanning module after the propagation direction is changed, and the laser pulse sequence reflected by the detector is emitted to the receiving circuit after passing through the scanning module. Alternatively, the distance measuring device may also adopt an off-axis optical path, that is, the light beam emitted by the distance measuring device and the reflected light beam are transmitted along different optical paths in the distance measuring device. FIG. 12 shows a schematic diagram of one embodiment of a distance measuring device of the present invention employing coaxial optical paths.

The ranging apparatus 1200 comprises a ranging module 1201, the ranging module 1201 comprising an emitter 1203 (which may comprise the transmitting circuitry described above), a collimating element 1204, a detector 1205 (which may comprise the receiving circuitry, sampling circuitry, and arithmetic circuitry described above), and a beam path altering element 1206. The distance measuring module 1201 is configured to emit a light beam, receive return light, and convert the return light into an electrical signal. Wherein the transmitter 1203 may be configured to transmit a sequence of light pulses. In one embodiment, the transmitter 1203 may transmit a sequence of laser pulses. Optionally, the laser beam emitted by the emitter 1203 is a narrow bandwidth beam with a wavelength outside the visible range. The collimating element 1204 is disposed on an emitting light path of the emitter, and is configured to collimate a light beam emitted from the emitter 1203, and collimate the light beam emitted from the emitter 1203 into parallel light to be emitted to the scanning module. The collimating element is also for converging at least a portion of the return light reflected by the detector. The collimating element 1204 may be a collimating lens or other element capable of collimating a beam of light.

In the embodiment shown in fig. 12, the transmitting and receiving optical paths within the distance measuring device are combined by the optical path changing element 1206 before the collimating element 1204, so that the transmitting and receiving optical paths can share the same collimating element, making the optical path more compact. In other implementations, the emitter 1203 and the detector 1205 may use respective collimating elements, and the optical path changing element 1206 may be disposed in the optical path after the collimating elements.

In the embodiment shown in fig. 12, since the beam aperture of the light beam emitted from the emitter 1203 is small and the beam aperture of the return light received by the distance measuring device is large, the optical path changing element can adopt a mirror with a small area to combine the emission optical path and the reception optical path. In other implementations, the optical path changing element may also be a mirror with a through hole for transmitting the outgoing light from the emitter 1203, and a mirror for reflecting the return light to the detector 1205. Therefore, the shielding of the bracket of the small reflector to the return light can be reduced in the case of adopting the small reflector.

The ranging apparatus 1200 also includes a scanning module 1202. The scanning module 1202 is disposed on the outgoing light path of the distance measuring module 1201, and the scanning module 1202 is configured to change the transmission direction of the collimated light beam 1219 outgoing from the collimating element 1204, project the collimated light beam to the external environment, and project the return light to the collimating element 1204. The return light is focused by a collimating element 1204 onto a detector 1205.

In one embodiment, the scanning module 1202 may include at least one optical element for altering the propagation path of the light beam, wherein the optical element may alter the propagation path of the light beam by reflecting, refracting, diffracting, etc., the light beam. For example, scanning module 1202 may include a lens, mirror, prism, galvanometer, grating, liquid crystal, optical phased Array (optical phased Array), or any combination thereof. In one example, at least a portion of the optical element is moved, for example, by a driving module, and the moved optical element can reflect, refract, or diffract the light beam to different directions at different times. In some embodiments, multiple optical elements of the scanning module 1202 may rotate or oscillate about a common axis 1209, with each rotating or oscillating optical element serving to constantly change the direction of propagation of an incident beam. In one embodiment, the multiple optical elements of the scanning module 1202 may rotate at different rotational speeds or oscillate at different speeds. In another embodiment, at least some of the optical elements of the scanning module 1202 may rotate at substantially the same rotational speed. In some embodiments, the multiple optical elements of the scanning module may also be rotated about different axes. In some embodiments, the multiple optical elements of the scanning module may also rotate in the same direction, or in different directions; or in the same direction, or in different directions, without limitation.

In one embodiment, the scanning module 1202 includes a first optical element 1214 and a driver 1216 coupled to the first optical element 1214, the driver 1216 being configured to rotate the first optical element 1214 about an axis of rotation 1209, causing the first optical element 1214 to redirect the collimated light beam 1219. The first optical element 1214 projects the collimated light beams 1219 into different directions. In one embodiment, the angle between the direction of collimated light beam 1219 as it is altered by the first optical element and the axis of rotation 1209 changes with the rotation of the first optical element 1214. In one embodiment, the first optical element 1214 includes a pair of opposing non-parallel surfaces through which the collimated light beam 1219 passes. In one embodiment, the first optical element 1214 includes prisms having a thickness that varies along at least one radial direction. In one embodiment, first optical element 1214 comprises a wedge angle prism that refracts collimated beam 1219.

In one embodiment, the scanning module 1202 further includes a second optical element 1215, the second optical element 1215 rotates about a rotational axis 1209, and the rotational speed of the second optical element 1215 is different from the rotational speed of the first optical element 1214. The second optical element 1215 is used to change the direction of the beam projected by the first optical element 1214. In one embodiment, the second optical element 1215 is coupled to another driver 1217, and the driver 1217 drives the second optical element 1215 to rotate. The first optical element 1214 and the second optical element 1215 may be driven by the same or different drivers, such that the rotational speed and/or steering of the first optical element 1214 and the second optical element 1215 may be different, such that the collimated light beams 1219 may be projected into different directions in ambient space, allowing a larger spatial range to be scanned. In one embodiment, controller 1218 controls drives 1216 and 1217 to drive first optical element 1214 and second optical element 1215, respectively. The rotational speed of the first optical element 1214 and the second optical element 1215 may be determined based on the area and pattern desired to be scanned in an actual application. The drives 1216 and 1217 may comprise motors or other drives.

In one embodiment, the second optical element 1215 includes a pair of opposed non-parallel surfaces through which the light beam passes. In one embodiment, second optical element 1215 includes prisms having a thickness that varies along at least one radial direction. In one embodiment, second optical element 1215 comprises a wedge angle prism.

In one embodiment, the scan module 1202 further includes a third optical element (not shown) and a driver for driving the third optical element to move. Optionally, the third optical element comprises a pair of opposed non-parallel surfaces through which the light beam passes. In one embodiment, the third optical element comprises a prism having a thickness that varies along at least one radial direction. In one embodiment, the third optical element comprises a wedge angle prism. At least two of the first, second and third optical elements rotate at different rotational speeds and/or rotational directions.

Rotation of the optical elements in scanning module 1202 may project light in different directions, such as directions 1211 and 1213, thus scanning the space around ranging device 1200. Fig. 13 is a schematic diagram of a scanning pattern of the distance measuring device 1200, as shown in fig. 3. It will be appreciated that as the speed of the optical elements within the scanning module changes, the scanning pattern will also change.

When the light 1211 projected by the scanning module 1202 hits the object 1210, a portion of the light is reflected by the object 1210 to the distance measuring device 1200 in a direction opposite to the direction of the projected light 1211. The return light 1212 reflected by the detector 1210 passes through the scanning module 1202 and is incident on the collimating element 1204.

A detector 1205 is positioned on the same side of the collimating element 1204 as the emitter 1203, the detector 1205 being operable to convert at least a portion of the return light passing through the collimating element 1204 into an electrical signal.

The distance and orientation detected by rangefinder 1200 may be used for remote sensing, obstacle avoidance, mapping, modeling, navigation, and the like. In one embodiment, the distance measuring device of the embodiment of the invention can be applied to a mobile platform, and the distance measuring device can be installed on a platform body of the mobile platform. The mobile platform with the distance measuring device can measure the external environment, for example, the distance between the mobile platform and an obstacle is measured for the purpose of avoiding the obstacle, and the external environment is mapped in two dimensions or three dimensions. In certain embodiments, the mobile platform comprises at least one of an unmanned aerial vehicle, an automobile, a remote control car, a robot, a camera. When the distance measuring device is applied to the unmanned aerial vehicle, the platform body is a fuselage of the unmanned aerial vehicle. When the distance measuring device is applied to an automobile, the platform body is the automobile body of the automobile. The vehicle may be an autonomous vehicle or a semi-autonomous vehicle, without limitation. When the distance measuring device is applied to the remote control car, the platform body is the car body of the remote control car. When the distance measuring device is applied to a robot, the platform body is the robot. When the distance measuring device is applied to a camera, the platform body is the camera itself.

The above exemplarily describes a coding and decoding method, a system, a storage medium, and an acquisition apparatus for acquiring point cloud data according to an embodiment of the present invention. Based on the above description, the method, the system and the storage medium for encoding and decoding the position coordinates of the point cloud data according to the embodiments of the present invention limit the value ranges of the position coordinates in the encoding and decoding process by combining the value ranges of the view ranges of the point cloud data acquisition devices in the acquisition process, so that some regions where point cloud data points do not exist can be reduced quickly, thereby reducing the time overhead in the encoding and decoding process and improving the encoding and decoding efficiency.

Although the illustrative embodiments have been described herein with reference to the accompanying drawings, it is to be understood that the foregoing illustrative embodiments are merely exemplary and are not intended to limit the scope of the invention thereto. Various changes and modifications may be effected therein by one of ordinary skill in the pertinent art without departing from the scope or spirit of the present invention. All such changes and modifications are intended to be included within the scope of the present invention as set forth in the appended claims.

Those of ordinary skill in the art will appreciate that the various illustrative elements and algorithm steps described in connection with the embodiments disclosed herein may be implemented as electronic hardware or combinations of computer software and electronic hardware. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the implementation. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present invention.

In the several embodiments provided in the present application, it should be understood that the disclosed apparatus and method may be implemented in other ways. For example, the above-described device embodiments are merely illustrative, and for example, the division of the units is only one logical functional division, and other divisions may be realized in practice, for example, a plurality of units or components may be combined or integrated into another device, or some features may be omitted, or not executed.

In the description provided herein, numerous specific details are set forth. It is understood, however, that embodiments of the invention may be practiced without these specific details. In some instances, well-known methods, structures and techniques have not been shown in detail in order not to obscure an understanding of this description.

Similarly, it should be appreciated that in the description of exemplary embodiments of the invention, various features of the invention are sometimes grouped together in a single embodiment, figure, or description thereof for the purpose of streamlining the invention and aiding in the understanding of one or more of the various inventive aspects. However, the method of the present invention should not be construed to reflect the intent: that the invention as claimed requires more features than are expressly recited in each claim. Rather, as the following claims reflect, inventive aspects lie in less than all features of a single disclosed embodiment. Thus, the claims following the detailed description are hereby expressly incorporated into this detailed description, with each claim standing on its own as a separate embodiment of this invention.

It will be understood by those skilled in the art that all of the features disclosed in this specification (including any accompanying claims, abstract and drawings), and all of the processes or elements of any method or apparatus so disclosed, may be combined in any combination, except combinations where such features are mutually exclusive. Each feature disclosed in this specification (including any accompanying claims, abstract and drawings) may be replaced by alternative features serving the same, equivalent or similar purpose, unless expressly stated otherwise.

Furthermore, those skilled in the art will appreciate that while some embodiments described herein include some features included in other embodiments, rather than other features, combinations of features of different embodiments are meant to be within the scope of the invention and form different embodiments. For example, in the claims, any of the claimed embodiments may be used in any combination.

The various component embodiments of the invention may be implemented in hardware, or in software modules running on one or more processors, or in a combination thereof. Those skilled in the art will appreciate that a microprocessor or Digital Signal Processor (DSP) may be used in practice to implement some or all of the functionality of some of the modules according to embodiments of the present invention. The present invention may also be embodied as apparatus programs (e.g., computer programs and computer program products) for performing a portion or all of the methods described herein. Such programs implementing the present invention may be stored on computer-readable media or may be in the form of one or more signals. Such a signal may be downloaded from an internet website or provided on a carrier signal or in any other form.

It should be noted that the above-mentioned embodiments illustrate rather than limit the invention, and that those skilled in the art will be able to design alternative embodiments without departing from the scope of the appended claims. In the claims, any reference signs placed between parentheses shall not be construed as limiting the claim. The invention may be implemented by means of hardware comprising several distinct elements, and by means of a suitably programmed computer. In the unit claims enumerating several means, several of these means may be embodied by one and the same item of hardware. The usage of the words first, second and third, etcetera do not indicate any ordering. These words may be interpreted as names.

The above description is only for the specific embodiment of the present invention or the description thereof, and the protection scope of the present invention is not limited thereto, and any person skilled in the art can easily conceive of the changes or substitutions within the technical scope of the present invention, and the changes or substitutions should be covered within the protection scope of the present invention. The protection scope of the present invention shall be subject to the protection scope of the claims.

35页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:用于生成物体的3D重建的方法和设备

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!