三维数据点的编解码方法和装置与流程

文档序号:21368951发布日期:2020-07-04 04:44阅读:223来源:国知局
三维数据点的编解码方法和装置与流程

本发明实施例涉及图像处理技术领域,尤其涉及一种三维数据点的编码方法和装置。



背景技术:

点云是三维物体或场景的一种表现形式,是由空间中一组无规则分布、表达三维物体或场景空间结构和表面属性的离三维数据点集所构成。为了准确反映空间中的信息,所需离散三维数据点的数目是巨大的。为了减少三维数据点存储所占空间和传输时所占用的带宽,需要对三维数据点进行编码压缩处理。

现有技术中,根据三维数据点的位置坐标在三个轴的最大值、最小值之间的差值,以及根据输入参数确定的量化精度,对每个三维数据点的位置坐标进行量化,将输入的三维数据点的位置坐标转换为大于等于零的整数坐标。选择三个方向上的位置坐标的最大值的最大值,根据选择的最大值确定初始化八叉树划分时的立方体的边长。该边长一定为2的整数次幂且为大于等于并最接近选择的最大值。在初始化八叉树划分过程的立方体的边长后,进行八叉树划分编码,根据所述立方体的划分结果,编码三维数据点。

然而,采用现有技术的编码方法,编码效率不高。



技术实现要素:

本发明实施例提供一种三维数据点的编解码方法和装置,以提高编解码效率。

第一方面,本发明实施例提供一种三维数据点的编码方法,包括:

根据待编码的三维数据点在球坐标系下的位置坐标,确定所述待编码三维数据点的初始块在径向距离方向、天顶角方向、方位角方向的范围值的最大值;

对所述初始块进行至少一次八叉树划分,得到多个第一类子块;

对所述第一类子块中的至少一个第一类子块进行至少一次四叉树划分和/或二叉树划分;

根据所述初始块的划分结果,对所述待编码的三维数据点进行编码。

第二方面,本发明实施例提供一种三维数据点解码方法,包括:

获取码流;

根据所述码流,确定初始块在径向距离方向、天顶角方向和方位角方向的范围值的最大值;

根据所述初始块在径向距离方向、天顶角方向和方位角方向的范围值的最大值,构建初始块;

对所述初始块进行至少一次八叉树的划分,得到多个第一类子块;

对所述第一类子块中的至少一个第一类子块进行至少一次四叉树和/或二叉树划分;

根据划分得到的子块的位置,得到待解码三维数据点的位置坐标。

第三方面,本发明实施例提供一种三维数据点的编码装置,包括:

处理器,用于根据待编码的三维数据点在球坐标系下的位置坐标,确定所述待编码三维数据点的初始块在径向距离方向、天顶角方向、方位角方向的范围值的最大值;

处理器,用于对所述初始块进行至少一次八叉树划分,得到多个第一类子块;

处理器,用于对所述第一类子块中的至少一个第一类子块进行至少一次四叉树划分和/或二叉树划分;

处理器,用于根据所述初始块的划分结果,对所述待编码的三维数据点进行编码;

存储器,用于存储编码得到的码流。

第四方面,本发明实施例提供一种三维数据点解码装置,包括:

处理器,用于获取码流;

所述处理器还用于根据所述码流,确定初始块在径向距离方向、天顶角方向和方位角方向的范围值的最大值;

所述处理器还用于根据所述初始块在径向距离方向、天顶角方向和方位角方向的范围值的最大值,构建初始块;

所述处理器还用于对所述初始块进行至少一次八叉树的划分,得到多个第一类子块;

所述处理器还用于对所述第一类子块中的至少一个第一类子块进行至少一次四叉树和/或二叉树划分;

所述处理器还用于根据划分得到的子块的位置,得到待解码三维数据点的位置坐标;

存储器,用于存储待解码三维数据点的位置坐标。

第五方面,本发明实施例提供一种编码器,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的程序,所述处理器执行所述程序时实现第一方面所述的三维数据点编码方法。

第六方面,本发明实施例提供一种解码器,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的程序,所述处理器执行所述程序时实现第二方面所述的三维数据点解码方法。

本发明实施例提供的三维数据点的编解码方法和装置,通过根据待编码的三维数据点的位置坐标,确定所述待编码的三维数据点的初始块在径向距离方向、天顶角方向、方位角方向的范围值的最大值,对初始块进行至少一次八叉树划分,得到多个第一类子块,对第一类子块中的至少一个第一类子块进行至少一次四叉树划分和/或二叉树划分,根据所述初始块的划分结果对所述待编码的三维数据点进行编码。由于构建的用来划分空间三维数据点的分布的初始块的三个方向上的范围值不同,从而,在划分过程中,三个方向上的范围值到达最小精度的划分次数不同,当方向到达最小精度时,接着采用四叉树划分或者二叉树划分的方式进行划分,直到三个方向的范围值均到达最小精度,从而,减小划分次数,提高编解码效率。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的球坐标系的示意图;

图2为本发明实施例提供一种三维数据点的编码方法的流程示意图;

图2a为本发明实施例提供一种扇形块的示意图;

图2b为本发明实施例提供一种扇环形块的示意图;

图3为本发明实施例提供一种三维数据点的编码方法的流程示意图;

图4为本发明实施例提供一种三维数据点的编码方法的流程示意图;

图5为本发明实施例提供一种三维数据点的编码方法的流程示意图;

图6为本发明实施例提供一种三维数据点的编码方法的流程示意图;

图7为本发明实施例提供一种三维数据点的解码方法的流程示意图;

图8为本发明实施例提供的一种八叉树划分的示意图;

图9为本发明实施例提供的一种划分过程的示意图;

图10为本发明实施例提供的一种三维数据点的编码装置的结构示意图;

图11为本发明实施例提供的一种三维数据点的解码装置的结构示意图;

图12为本发明实施例提供的测距装置的结构示意图;

图13为本发明的测距装置采用同轴光路的一种实施例的示意图;

图14为测距装置200的一种扫描图案的示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

需要说明的是,当组件被称为“固定于”另一个组件,它可以直接在另一个组件上或者也可以存在居中的组件。当一个组件被认为是“连接”另一个组件,它可以是直接连接到另一个组件或者可能同时存在居中组件。

除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。本文所使用的术语“及/或”包括一个或多个相关的所列项目的任意的和所有的组合。

下面结合附图,对本发明的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。

本发明实施例主要针对某些点云的三维数据点的位置坐标在三个方向上的取值范围存在差异时的场景。

本申请实施例对点云的三维数据点在球坐标系下的位置坐标进行编码或者解码,其中,球坐标系的示意图如图1所示,图1为本发明实施例提供的球坐标系的示意图,在球坐标系中利用径向距离、天顶角和方位角来描述点云的三维数据点的位置坐标。假设p点在球坐标系下的位置坐标为那么,径向距离r≥0表示从原点到点p的直线距离,天顶角0≤θ≤π表示从原点到点p的连线与z轴正半轴的夹角值,方位角表示从原点到p点的连线在xoy平面的投影线与x轴正半轴的夹角值。

本发明各实施例中,各方向的最小精度是指划分结束时得到的子块的各方向的范围值,各方向的最小精度可以在进行编码前预先设定,各方向的最小精度可以相同,也可以不同。

本发明各实施例中,为了便于描述,将任意一次进行八叉树划分得到的子块称为第一类子块,将任意一次进行四叉树划分得到的子块称为第二类子块,将任意一次进行二叉树划分得到的子块称为第三类子块。

本发明各实施例中描述的三维数据点的三个方向指径向距离方向、天顶角方向和方位角方向;描述的初始块的三个方向也指径向距离方向、天顶角方向和方位角方向。

图2为本发明实施例提供一种三维数据点的编码方法的流程示意图,如图2所示,本实施例的方法如下:

s101:根据待编码的三维数据点在球坐标系下的位置坐标,确定所述待编码三维数据点的初始块在径向距离方向、天顶角方向、方位角方向的范围值的最大值。

一种可能的实现方式:

对待编码三维数据点的位置坐标进行量化;根据量化后的三维数据点的位置坐标,获取三维数据点的位置坐标在三个方向的最小值和最大值,根据三个方向的最小值和最大值,确定三维数据点的位置坐标在三个方向的范围值的最大值;根据所述三维数据点的位置坐标在三个方向的范围值的最大值,确定待编码三维数据点的初始块在三个方向的范围值的最大值。

可选地,在每个方向上,获取大于等于所述三维数据点的位置坐标的范围值的最大值的2的整数次幂的值中最接近所述范围值的最大值的值,为所述初始块在所述方向的范围值的最大值。

其中,一种可能的实现方式:

可选地,对待编码三维数据点在球坐标系下的位置坐标进行量化,包括以下至少一种操作:

根据径向距离方向的量化步长量化所述三维数据的位置坐标的径向距离;

根据天顶角方向的量化步长量化所述三维数据的位置坐标的天顶角;

根据方位角方向的量化步长量化所述三维数据的位置坐标的方位角。

可选地,根据量化所述三维数据点的位置坐标的径向距离;和/或,根据量化所述三维数据点的位置坐标的天顶角;和/或,根据量化所述三维数据点的位置坐标的方位角;其中,ri表示第i个三维数据点的径向距离量化前的值,rδ表示径向距离方向的量化步长,表示第i个三维数据点的径向距离量化后的值,θi表示第i个三维数据点的天顶角量化前的值,θδ表示天顶角方向的量化步长,表示第i个三维数据点的天顶角量化后的值,表示第i个三维数据点的方位角量化前的值,表示方位角方向的量化步长,表示第i个三维数据点的方位角量化后的值,round(x)表示round函数返回一个数值,该数值是按照指定的小数位数进行四舍五入运算的结果。

通过这种量化方式,初始块可能为扇形块,如图2a,也可能为扇环形块,如图2b。

另一种可能的实现方式:

对待编码三维数据点在球坐标系下的位置坐标进行量化,包括以下至少一种操作:

根据径向距离方向的量化步长以及径向距离方向的最小值,量化所述位置坐标的径向距离;

根据天顶角方向的量化步长以及天顶角方向的最小值,量化所述位置坐标的天顶角;

根据方位角方向的量化步长以及方位角方向的最小值,量化所述位置坐标的方位角。

可选地,根据量化所述位置坐标的径向距离;和/或,根据量化所述位置坐标的天顶角;和/或,根据量化所述位置坐标的方位角;其中,ri表示第i个三维数据点的径向距离量化前的值,rmin表示三维数据点在径向距离方向的量化前的最小值,rδ表示径向距离方向的量化步长,表示第i个三维数据点的径向距离量化后的值,θi表示第i个三维数据点的天顶角量化前的值,θmin表示所有三维数据点在天顶角方向的量化前的最小值,θδ表示天顶角方向的量化步长,表示第i个三维数据点的天顶角量化后的值,表示第i个三维数据点的方位角量化前的值,表示三维数据点在方位角方向的量化前的最小值,表示方位角方向的量化步长,表示第i个三维数据点的方位角量化后的值,round(x)表示round函数返回一个数值,该数值是按照指定的小数位数进行四舍五入运算的结果。

通过这种量化方式,各方向的最小值为0,初始块可能为扇形块,如图2a。

可选地,该初始块能够覆盖点云的所有三维数据点或者部分三维数据点。

可选地,初始块为球体的一部分,例如:可以为扇形块或者扇环块。

可选地,球体的中心为三维数据点采集设备的位置。其中,三维数据点采集设备可以是激光雷达、光电雷达或者激光扫描仪。

s102:对初始块进行至少一次八叉树划分,得到多个第一类子块。

将初始块进行至少一次八叉树划分,每次划分得到八个子块,每次划分是针对前一次划分得到的包含三维数据点的位置坐标的子块进行划分,直到划分得到的子块的一个方向或者两个方向的范围值到达最小精度。

可选地,可以根据前一次划分得到的第一类子块的中心点的坐标进行八叉树划分。

一种可能的划分方式:

假设前一个第一类子块的中心点的坐标为(rmid,θmid,),划分得到的八个子块对应的坐标范围内分别为:第一个子块的坐标取值范围为r≤rmid,θ≤θmid,第二个子块的坐标取值范围为r≤rmid,θ≤θmid,第三个子块的坐标取值范围为r≤rmid,θ>θmid,第四个子块的坐标取值范围为r≤rmid,θ>θmid,第五个子块的坐标取值范围为r>rmid,θ≤θmid,第六个子块的坐标取值范围为r>rmid,θ≤θmid,第七个子块的坐标取值范围为r>rmid,θ>θmid,第八个子块的坐标取值范围为r>rmid,θ>θmid,

其中,可以根据获取中心点在径向距离方向的坐标值;和/或,根据获取中心点在天顶角方向的坐标值;和/或,根据获取中心点在方位角方向的坐标值,其中,(rmid,θmid,)为中心点的坐标值,rmin为待划分块在径向距离方向的最小值,rmax为待划分块在径向距离方向的最大值,θmin为待划分块在天顶角方向的最小值,θmax为待划分块在天顶角方向的最大值,为待划分块在方位角方向的最小值,为待划分块在方位角方向的最大值。

s103:对所述第一类子块中的至少一个第一类子块进行至少一次四叉树划分和/或二叉树划分。

初始块三个方向的范围值情况不同,进行的划分方式也不相同,包括但不限于如下可能的情况:

一种可能的情况为:当所述初始块的三个方向的范围值的最大值均不相等,则在八叉树划分结束后,还要进行四叉树划分和二叉树划分。

另一种可能的情况为:所述初始块的两个方向的范围值的最大值相等,且所述相等的范围值的最大值大于另一个方向的范围值的最大值,则在八叉树划分结束后,只进行四叉树划分之后结束。

再一种可能的情况为:初始块的两个方向范围值的最大值相等,且所述相等的范围值的最大值小于另一个方向的范围值的最大值,则在八叉树划分结束后,只进行二叉树划分之后结束。

s104:根据所述初始块的划分结果,对所述待编码的三维数据点进行编码。

本实施例,通过根据待编码的三维数据点的位置坐标,确定所述待编码的三维数据点的初始块在径向距离方向、天顶角方向、方位角方向的范围值的最大值,对初始块进行至少一次八叉树划分,得到多个第一类子块,对第一类子块中的至少一个第一类子块进行至少一次四叉树划分和/或二叉树划分,根据所述初始块的划分结果对所述待编码的三维数据点进行编码。由于构建的用来划分空间三维数据点的分布的初始块的三个方向上的范围值不同,从而,在划分过程中,三个方向上的范围值到达最小精度的划分次数不同,当方向到达最小精度时,接着采用四叉树划分或者二叉树划分的方式进行划分,直到三个方向的范围值均到达最小精度,从而,减小划分次数,提高编解码效率。

图3为本发明实施例提供一种三维数据点的编码方法的流程示意图,图3是在图2所示实施例的基础上,当初始块的三个方向的范围值的最大值均不相等,s103的一种可能的实现方式的描述,本实施例的方法如下:

s1031a:对第一类子块中的至少一个第一类子块进行至少一次四叉树划分,得到多个第二类子块,直到所述第二类子块的两个方向的范围值到达最小精度。

一种可能的实现方式:

确定所述第一类子块中的第一类目标子块。可选地,所述第一类目标子块可以指的是所述第一类子块中在一个方向上的范围值到达最小精度且包含三维数据点的子块。对所述第一类目标子块进行至少一次四叉树划分。

具体地,将第一类目标子块进行至少一次四叉树划分,每次划分得到四个第二类子块,每次划分是针对前一次划分得到的包含三维数据点的位置坐标的第二类子块进行划分,直到划分得到的第二类子块的两个方向的范围值都达到最小精度,

可选地,可以根据前一次划分得到的第一类目标子块的中心点的坐标进行八叉树划分。

一种可能的四叉树划分方式:

若径向距离方向的范围值到达最小精度,所述第一类目标子块的中心点的坐标为(θmid,);第一个第二类子块的坐标取值范围为:θ≤θmid,第二个第二类子块的坐标取值范围为:θ≤θmid,第三个第二类子块的坐标取值范围为:θ>θmid,第四个第二类子块的坐标取值范围为:θ>θmid,

若天顶角方向的范围值到达最小精度,所述第一类目标子块的中心点的坐标为(rmid,);第一个第二类子块的坐标取值范围为r≤rmid,第二个第二类子块的坐标取值范围为:r≤rmid,第三个第二类子块的坐标取值范围为:r>rmid,第四个第二类子块的坐标取值范围为:r>rmid,

若方位角方向的范围值到达最小精度,第一类目标子块的中心点的坐标为(rmid,θmid);第一个第二类子块的坐标取值范围为:r≤rmid,θ≤θmid,第二个第二类子块的坐标取值范围为:r≤rmid,θ>θmid,第三个第二类子块的坐标取值范围为:r>rmid,θ≤θmid,第四个第二类子块的坐标取值范围为:r>rmid,θ>θmid。

s1032a:对第二类子块中的至少一个第二类子块进行至少一次二叉树划分,得到多个第三类子块,直到所述第三类子块的三个方向的范围值到达最小精度。

一种可能的实现方式:

确定所述第二类子块中的第二类目标子块。可选地,所述第二类目标子块可以指的是在两个方向的范围值到达最小精度且包含三维数据点的子块。对所述第二类目标子块进行至少一次二叉树划分。

具体地,将第二类目标子块进行至少一次二叉树划分,每次划分得到两个第三类子块,每次划分是针对前一次划分得到的包含三维数据点的位置坐标的子块进行的划分,直到划分得到的第三类子块的三个方向的范围值都达到最小精度。

一种可能的二叉树划分方式:

若径向距离方向和天顶角方向的范围值到达最小精度,所述第三类子块的中心点的坐标为第一个第三类子块的坐标取值范围为:第二个第三类子块的坐标取值范围为:

若径向距离方向和方位角方向的范围值到达最小精度,所述第三类子块的中心点的坐标为(θmid),第一个第三类子块的坐标取值范围为:θ≤θmid,第二个第三类子块的坐标取值范围为:θ>θmid;

若天顶角方向和方位角方向的范围值到达最小精度,所述第三类子块的中心点的坐标为(rmid),第一个第三类子块的坐标取值范围为:r≤rmid,第二个第三类子块的坐标取值范围为:r>rmid。

本实施例,通过根据待编码的三维数据点的位置坐标,确定所述待编码的三维数据点的初始块的三个方向的范围值的最大值,对初始块进行至少一次八叉树划分,得到多个第一类子块,对所述第一类子块中的至少一个第一类子块进行至少一次四叉树划分,得到第二类子块,直到所述第二类子块的两个方向的范围值到达最小精度,对所述第二类子块中的至少一个第二类子块进行至少一次二叉树划分,得到第三类子块,直到所述第三类子块的三个方向的范围值到达最小精度,根据所述初始块的划分结果对所述待编码的三维数据点进行编码,即针对初始块的三个方向的范围值均不相等时,采用八叉树、四叉树和二叉树混合的划分方式,对构建的用来划分空间三维数据点的分布的初始块进行划分,从而,减少了划分次数,提高了编码效率。划分次数的减少使得编码码流的长度相应的也会减少,从而,更有有效的压缩三位数据点的位置坐标,在进行编码时,还可以针对划分方式,采用不同的比特长度进行编码,可以进一步地减小编码码流的长度,进一步地提高编码效率和压缩效率。

图4为本发明实施例提供一种三维数据点的编码方法的流程示意图,图4是在图2所示实施例的基础上,当所述初始块的两个方向的范围值的最大值相等,且所述相等的范围值的最大值大于另一个方向的范围值的最大值,s103的另一种可能的实现方式的描述,本实施例的方法如下:

s103b:对第一类子块中的至少一个第一类子块进行至少一次四叉树划分,得到多个第二类子块,直到所述第二类子块的三个方向的范围值到达最小精度。

一种可能的实现方式:确定所述第一类子块中的第一类目标子块。可选的,所述第一类目标子块可以指的是在一个方向的范围值到达最小精度且包含三维数据点的子块。对所述第一类目标子块进行至少一次四叉树划分。

将第一类目标子块进行四叉树划分,每次划分得到四个子块,每次划分是针对前一次划分得到的包含三维数据点的位置坐标的第二类子块进行划分,直到划分得到的第二类子块的三个方向的范围值都达到最小精度。

可选地,可以根据前一次划分得到的第一类目标子块的中心点的坐标进行八叉树划分。

一种可能的四叉树划分方式:

若径向距离方向的范围值到达最小精度,所述第一类目标子块的中心点的坐标为(θmid,);第一个第二类子块的坐标取值范围为:θ≤θmid,第二个第二类子块的坐标取值范围为:θ≤θmid,第三个第二类子块的坐标取值范围为:θ>θmid,第四个第二类子块的坐标取值范围为:θ>θmid,

若天顶角方向的范围值到达最小精度,所述第一类目标子块的中心点的坐标为(rmid,);第一个第二类子块的坐标取值范围为r≤rmid,第二个第二类子块的坐标取值范围为:r≤rmid,第三个第二类子块的坐标取值范围为:r>rmid,第四个第二类子块的坐标取值范围为:r>rmid,

若方位角方向的范围值到达最小精度,第一类目标子块的中心点的坐标为(rmid,θmid);第一个第二类子块的坐标取值范围为:r≤rmid,θ≤θmid,第二个第二类子块的坐标取值范围为:r≤rmid,θ>θmid,第三个第二类子块的坐标取值范围为:r>rmid,θ≤θmid,第四个第二类子块的坐标取值范围为:r>rmid,θ>θmid。

本实施例,通过根据待编码的三维数据点的位置坐标,确定所述待编码的三维数据点的初始块的三个方向的范围值的最大值,对初始块进行至少一次八叉树划分,得到多个第一类子块,对所述第一类子块中的至少一个第一类子块进行至少一次四叉树划分,得到多个第二类子块,直到所述第二类子块的三个方向的范围值到达最小精度,根据所述初始块的划分结果对所述待编码的三维数据点进行编码,即针对初始块的两个方向的范围值相等,且所述相等的范围值大于另一个方向的范围值的场景,采用八叉树和四叉树混合的划分方式,对构建的用来划分空间三维数据点的分布的初始块进行划分,从而,减少了划分次数,提高了编码效率。划分次数的减少使得编码码流的长度相应的也会减少,从而,更有有效的压缩三位数据点的位置坐标,在进行编码时,还可以针对划分方式,采用不同的比特长度进行编码,可以进一步地减小编码码流的长度,进一步地提高编码效率和压缩效率。

图5为本发明实施例提供一种三维数据点的编码方法的流程示意图,图5是在图2所示实施例的基础上,当所述初始块的两个方向范围值的最大值相等,且所述相等的范围值的最大值小于另一个方向的范围值的最大值;s103的另一种可能的实现方式的描述,本实施例的方法如下:

s103c:对第一类子块中的至少一个第一类子块进行至少一次二叉树划分,得到多个第三类子块,直到第三类子块的三个方向的范围值到达最小精度。

一种可能的实现方式:

确定所述第一类子块中的第一类目标子块。可选地,所述第一类目标子块可以指的是两个方向的范围值到达最小精度且包含三维数据点的子块;对所述第一类目标子块进行至少一次二叉树划分。

将第一类目标子块进行二叉树划分,每次划分得到两个子块,每次划分是针对前一次划分得到的包含三维数据点的位置坐标的第三类子块进行划分,直到划分得到的第三类子块的三个方向的范围值都达到最小精度。

一种可能的二叉树划分方式:

若径向距离方向和天顶角方向的范围值到达最小精度,所述第三类子块的中心点的坐标为第一个第三类子块的坐标取值范围为:第二个第三类子块的坐标取值范围为:

若径向距离方向和方位角方向的范围值到达最小精度,所述第三类子块的中心点的坐标为(θmid),第一个第三类子块的坐标取值范围为:θ≤θmid,第二个第三类子块的坐标取值范围为:θ>θmid;

若天顶角方向和方位角方向的范围值到达最小精度,所述第三类子块的中心点的坐标为(rmid),第一个第三类子块的坐标取值范围为:r≤rmid,第二个第三类子块的坐标取值范围为:r>rmid。

本实施例,通过根据待编码的三维数据点的位置坐标,确定所述待编码的三维数据点的初始块的三个方向的范围值的最大值,对初始块进行至少一次八叉树划分,得到多个第一类子块,对所述第一类子块中的至少一个第一类子块进行至少一次二叉树划分,得到多个第三类子块,直到所述第三类子块的三个方向的范围值到达最小精度,根据所述初始块的划分结果对所述待编码的三维数据点进行编码,即针对初始块的两个方向范围值的最大值相等,且所述相等的范围值的最大值小于另一个方向的范围值的最大值的场景,采用八叉树和二叉树混合的划分方式,对构建的用来划分空间三维数据点的分布的初始块进行划分,从而,减少了划分次数,提高了编码效率。划分次数的减少使得编码码流的长度相应的也会减少,从而,更有有效的压缩三位数据点的位置坐标,在进行编码时,还可以针对划分方式,采用不同的比特长度进行编码,可以进一步地减小编码码流的长度,进一步地提高编码效率和压缩效率。

图6为本发明实施例提供一种三维数据点的编码方法的流程示意图,图6是在图2-图5任一所示实施例的基础上,对s104的一种可能的实现方式的描述,如图6所示:

s104’:根据划分次序以及每次划分得到的子块中包含的三维数据点情况,依次对每次划分情况进行编码。

一种可能的实现方式:根据每次划分得到的子块包含三维数据点的情况,得到每次划分对应的码流;根据划分次序,依次编码每次划分对应的码流。

其中,所述根据每次划分得到的子块包含的三维数据点的情况,得到每次划分对应的码流,包括:

根据每次划分得到的子块包含的三维数据点的情况,得到每个子块对应的比特流,每个子块对应一个比特,包含三维数据点的子块与未包含三维数据点的子块的比特值不同;根据所述子块对应的比特值,生成所述每次划分对应的码流。获取每次划分得到的子块对应的比特值,根据所有子块对应的比特值生成每次划分对应的码流。

每次划分对应的码流的比特位数可以固定的由8个比特表示,也可以根据划分的子块数确定,例如,每次八叉树划分得到八个子块,则每次八叉树划分对应的码流由8个比特标识,每次四叉树划分得到四个子块,则每次四叉树划分对应的码流由4个比特标识,每次二叉树划分得到两个子块,则每次二叉树划分对应的码流由2个比特标识。

当每次划分对应的码流固定的由8比特标识:

根据所述子块对应的比特值,生成所述每次划分对应的码流,一种可能的实现方式如下:

若进行八叉树划分,则根据划分得到的八个子块包含的三维数据点情况,确定所述8个比特的比特值;若进行四叉树划分,则根据划分得到的四个子块包含的三维数据点情况,确定所述8个比特中其中4个比特的比特值,其余4个比特的比特值与未包含三维数据点的子块的比特值相同;若进行二叉树划分,则根据划分得到的两个子块包含的三维数据点情况,确定所述8个比特中其中2个比特的比特值,其余6个比特的比特值与未包含三维数据点的子块的比特值相同。

当每次划分对应的码流的比特位数根据划分的子块数确定:

根据所述子块对应的比特值,生成所述每次划分对应的码流,一种可能的实现方式如下:

若进行八叉树划分,每次划分对应的码流为8比特,根据划分得到的八个子块包含的三维数据点情况,确定所述8个比特的比特值;

若进行四叉树划分,每次划分对应的码流为4比特,则根据划分得到的四个子块包含的三维数据点情况,确定所述4个比特的比特值;

若进行二叉树划分,每次划分对应的码流为2比特,则根据划分得到的两个子块包含的三维数据点情况,确定所述2个比特的比特值。

其中,包含三维数据点的子块对应的比特值为1,未包含三维数据点的子块对应的比特值为0。也可以是包含三维数据点的子块对应的比特值为0,未包含三维数据点的子块对应的比特值为1,对此,本发明实施例不做限制。

可选地,还包括:当划分得到的子块中一个方向或者两个方向的范围值到达最小精度,编码第一标识符,所述第一标识符用于指示变更划分方式,所述划分方式为八叉树划分、四叉树划分或者二叉树划分。以使解码端根据第一标识符确定变更划分方式。

当进行八叉树划分得到的子块的一个方向的范围值到达最小精度或者两个方向的范围值同时到达最小精度,所述第一标识符的为8比特,所述8比特的比特值均与未包含三维数据点的子块对应的比特值一致。例如,若包含三维数据点的子块对应的比特值为1,未包含点云三维数据点的子块对应的比特值为0;则第一标识符为00000000。又例如,若包含点云三维数据点的子块对应的比特值为0,未包含点云三维数据点的子块对应的比特值为1;则第一标识符为11111111。

当进行四叉树划分得到子块的两个方向的范围值到达最小精度,所述第一标识符为4比特,所述4比特的比特值均与未包含三维数据点的子块对应的比特值一致。若包含点云三维数据点的子块对应的比特值为1,未包含点三维数据点的子块对应的比特值为0;则第一标识符为0000;若包含三维数据点的子块对应的比特值为0,未包含点云三维数据点的子块对应的比特值为1;则第一标识符为1111。

例如:当一个方向的范围值先到达最小精度时,所述第一标识符为00000000,当再一个方向的范围值到达最小精度时,所述第一标识符为0000。

或者,

当两个方向的范围值先同时到达最小精度时,所述第一标识符为00000000。

或者,

当一个方向的范围值先到达最小精度时,所述第一标识符为00000000。

可选地,所述第一标识符之后,还包括:

编码第二标识符,所述第二标识符用于指示到达最小精度的方向或者未到达最小精度的方向。可选地,所述第二标识符为3比特或者2比特。以使解码端根据第二标识符确定哪个方向的范围值到达了最小精度,哪个方向的范围值未到达最小精度,从而,确定四叉树划分或者二叉树划分的方向。

例如:若三个方向的范围值依次到达最小精度,当一个方向的范围值先到达最小精度时,所述第二标识符为三比特,为000、001或者010;所述000、001和010分别对应一个方向,表示所对应的方向的范围值到达最小精度,当再一个方向的范围值到达最小精度时,所述第二标识符为两比特,为00或者01;所述00和01分别对应剩余两个方向中的一个方向;

或者,

若一个方向的范围值先到达最小精度,剩余两个方向的范围值后同时到达最小精度,当一个方向的范围值先到达最小精度时,通过三比特表示第二标识符,第二标识符为000、001或者010;所述000、001和010分别对应一个方向的范围值,表示所对应的方向的范围值到达最小精度;

或者,

若两个方向的范围值先到达最小精度,另一个方向的范围值后到达最小精度时,当两个方向的范围值先到达最小精度时,通过三比特表示第二标识符,第二标识符为100、101或者110;所述100、101或者110分别对应一个方向,表示所对应的方向的范围值未到达最小精度。

或者,用三个比特依次代表三个方向,例如:依次代表径向距离方向、天顶角方向和方位角方向,当某个方向的范围值到达最小精度,则将到达最小精度的比特位置为1,未到达最小精度的比特位置为0;例如:径向距离方向先到达最小精度则为100;天顶角方向先到达最小精度则为010;方位角方向先到达最小精度则为001;当径向距离方向和天顶角方向都到达最小精度则为110,当径向距离方向和方位角方向都到达最小精度则为101,当天顶角方向和方位角方向都到达最小精度则为011。或者,将到达最小精度的比特位置为0,未到达最小精度的比特位置为1;例如:径向距离方向先到达最小精度则为011;天顶角方向先到达最小精度则为101;方位角方向先到达最小精度则为110;当将向距离方向和天顶角方向都到达最小精度则为001,当径向距离和方位角方向都到达最小精度则为010,当天顶角方向和方位角方向都到达最小精度则为100。三个比特位与三个方向的对应关系,本发明实施例不作限制,可以做任一调整。

可选地,还包括:编码第三标识符,所述第三标识符用于指示划分结束,例如:最后一个方向的边到达最小精度,则编码2比特00表示划分结束;再例如:最后两条方向同时到达最小精度,则编码4比特0000和两比特10,或者,编码4比特0000和两比特11,对此,本发明实施例不做限制,只要能够区分划分结束即可。

可选地,还包括:编码包含三维数据点的子块中的三维数据点的数量。

其中,当子块中包含1个三维数据点,编码0表示,当子块中包含n个三维数据点,先编码1接着编码n-1表示。

可选地,还包括:在信息头中编码用于解码端构建初始块的数据,包括但不限于如下几种可能的实现方式:

其中,一种可能的实现方式:

对待编码三维数据点的位置坐标在三个方向的量化后的最小值、量化后的最大值进行编码;

或者,

对待编码三维数据点的位置坐标在三个方向的量化前的最小值、量化前的最大值进行编码;

或者,

对待编码三维数据点的位置坐标在三个方向的量化前的最小值、量化后的最大值进行编码;

或者,

对待编码三维数据点的位置坐标在三个方向的量化后的最小值、量化前的最大值进行编码。

另一种可能的实现方式:

对待编码三维数据点的位置坐标在三个方向的量化后的最小值、量化后的最大值的最大值进行编码;

或者,

对待编码三维数据点的位置坐标在三个方向的量化前的最小值、量化后的最大值的最大值进行编码;

或者,

对待编码三维数据点的位置坐标在三个方向的量化后的最小值、量化前的最大值的最大值进行编码;

或者,

对待编码三维数据点的位置坐标在三个方向的量化前的最小值、量化前的最大值的最大值进行编码。

再一种可能的实现方式:

对待编码三维数据点的位置坐标在三个方向的量化后的最小值、量化后的最大值的最小值进行编码;

或者,

对待编码三维数据点的位置坐标在三个方向的量化前的最小值、量化后的最大值的最小值进行编码;

或者,

对待编码三维数据点的位置坐标在三个方向的量化后的最小值、量化前的最大值的最小值进行编码;

或者,

对待编码三维数据点的位置坐标在三个方向的量化前的最小值、量化前的最大值的最小值进行编码。

可选地,本发明实施例中,根据中心点坐标对所述初始块进行至少一次八叉树划分;根据中心点坐标对所述第一类子块中的至少一个第一类子块进行至少一次四叉树划分和/或二叉树划分。

其中,中心点的坐标可以通过如下方式获取:

根据每次待划分的块在径向距离方向的最大值和最小值,获取中心点在径向距离方向的坐标值;

根据每次待划分的块在天顶角方向的最大值和最小值,获取中心点在天顶角方向的坐标值;

根据每次待划分的块在方位角方向的最大值和最小值,获取中心点在方位角方向的坐标值。

可选地,可以根据获取中心点在径向距离方向的坐标值;和/或,根据获取中心点在天顶角方向的坐标值;和/或,根据获取中心点在方位角方向的坐标值,其中,(rmid,θmid,)为中心点的坐标值,rmin为待划分块在径向距离方向的最小值,rmax为待划分块在径向距离方向的最大值,θmin为待划分块在天顶角方向的最小值,θmax为待划分块在天顶角方向的最大值,为待划分块在方位角方向的最小值,为待划分块在方位角方向的最大值。

图7为本发明实施例提供一种三维数据点的解码方法的流程示意图,如图7所示,本实施例的方法如下:

s701:获取码流。

s702:根据所述码流,确定初始块在径向距离方向、天顶角方向和方位角方向的范围值的最大值;

其中,初始块的三个方向的范围值可能相等也可能不等。

可选地,根据所述码流,得到位置坐标在三个方向的量化后的最小值和量化后的最大值;

根据所述位置坐标在三个方向量化后的最小值和量化后的最大值,得到所述位置坐标在径向距离方向、天顶角方向和方位角方向的范围值的最大值;

根据所述位置坐标在所述径向距离方向、天顶角方向和方位角方向的范围值的最大值,得到所述初始块在所述径向距离方向、天顶角方向和方位角方向的范围值的最大值。

其中,根据所述位置坐标在三个方向的范围值的最大值,得到所述初始块在所述三个方向的范围值的最大值的一种可能的实现方式:

在每个方向上,获取大于等于所述位置坐标的范围值的最大值的2的整数次幂的值中最接近所述范围值的最大值的值,为所述初始块在所述方向的范围值的最大值。

其中,根据所述码流,得到位置坐标在三个方向的量化后的最小值和量化后的最大值包括但不限于如下几种可能的实现方式:

根据如下几种可能的实现方式构建的初始块的三个方向的范围值不同,一种可能的实现方式为:根据所述码流,直接得到位置坐标在三个方向的量化后的最小值和量化后的最大值。

另一种可能的实现方式为:根据所述所述码流,得到位置坐标在所述三个方向的量化前的最小值和量化后的最大值;

根据所述位置坐标在所述三个方向的量化前的最小值,以及三个方向的量化步长,得到所述位置坐标在所述三个方向的量化后的最小值。

再一种可能的实现方式为:根据所述所述码流,得到位置坐标在所述三个方向的量化后的最小值和量化前的最大值;

根据所述位置坐标在所述三个方向的量化前的最大值,以及三个方向的量化步长,得到所述位置坐标在所述三个方向的量化后的最大值。

根据如下几种可能的实现方式构建的初始块的三个方向的范围值相同,

一种可能的实现方式为:根据所述码流,得到所述位置坐标在三个方向的量化前的最小值和量化后的最大值的最大值;

根据所述位置坐标在所述三个方向的量化前的最小值,以及三个方向的量化步长,得到三个方向量化后的最小值;

确定所述量化后的最大值的最大值为所述三个方向量化后的最大值。

另一种可能的实现方式为:根据所述码流,得到所述位置坐标在三个方向的量化前的最小值和量化后的最大值的最小值;

根据所述位置坐标在所述三个方向的量化前的最小值,以及三个方向的量化步长,得到三个方向量化后的最小值;

确定所述量化后的最大值的最小值为所述三个方向量化后的最大值。

再一种可能的实现方式为:

根据所述码流,得到所述位置坐标在三个方向的量化后的最小值和量化后的最大值的最大值;

确定所述量化后的最大值的最大值为所述三个方向量化后的最大值。

又一种可能的实现方式为:

根据所述码流,得到所述位置坐标在三个方向的量化后的最小值和量化后的最大值的最小值。

确定所述量化后的最大值的最小值为所述三个方向量化后的最大值。

又一种可能的实现方式为:

根据所述码流,得到所述位置坐标在三个方向的量化前的最小值和量化前的最大值的最大值;

根据所述位置坐标在所述三个方向的量化前的最小值,以及三个方向的量化步长,得到三个方向量化后的最小值;

根据所述量化前的最大值的最大值以及量化步长,得到量化后的最大值的最大值;

确定所述量化后的最大值的最大值为所述三个方向量化后的最大值。

又一种可能的实现方式为:

根据所述码流,得到所述位置坐标在三个方向的量化前的最小值和量化前的最大值的最小值;

根据所述位置坐标在所述三个方向的量化前的最小值,以及三个方向的量化步长,得到三个方向量化后的最小值;

根据所述量化前的最大值的最小值以及量化步长,得到量化后的最大值的最小值;

确定所述量化后的最大值的最小值为所述三个方向量化后的最大值。

又一种可能的实现方式为:

根据所述码流,得到所述位置坐标在三个方向的量化后的最小值和量化前的最大值的最大值;

根据所述量化前的最大值的最大值以及量化步长,得到量化后的最大值的最大值;

确定所述量化后的最大值的最大值为所述三个方向量化后的最大值。

又一种可能的实现方式为:

根据所述码流,得到所述位置坐标在三个方向的量化后的最小值和量化前的最大值的最小值;

根据所述量化前的最大值的最小值以及量化步长,得到量化后的最大值的最小值;

确定所述量化后的最大值的最小值为所述三个方向量化后的最大值。

s703:对所述初始块进行至少一次八叉树的划分,得到多个第一类子块。

对初始块进行至少一次八叉树的划分,得到多个第一类子块,具体地,八叉树的划分方式的详细描述参见编码端的相关描述,此处不再赘述。

s704:对所述第一类子块中的至少一个第一类子块进行至少一次四叉树和/或二叉树划分。

一种可能的实现方式:

当所述初始块的三个方向的范围值的最大值均不相等时;

所述对所述第一类子块中的至少一个第一类子块进行至少一次四叉树划分和/或二叉树划分,包括:

对所述第一类子块中的至少一个第一类子块进行至少一次四叉树划分,得到多个第二类子块,直到所述第二类子块的两个方向的范围值到达最小精度;

对所述第二类子块中的至少一个第二类子块进行至少一次二叉树划分,得到多个第三类子块,直到所述第三类子块的三个方向的范围值到达最小精度。

可选地,根据第一类子块对应的比特值,确定第一类目标子块,可选地,所述第一类目标子块的比特值表示所述子块内包含三维数据点;对所述第一类目标子块进行至少一次四叉树划分。根据第二类子块对应的比特值,确定第二类目标子块,所述第二类目标子块的比特值表示所述子块内包含三维数据点;对所述第二类目标子块进行至少一次二叉树划分。

例如:进行八叉树划分得到的最后一层的第一类子块中,比特值为1的表示该第一类子块中包含三维数据点,则确定比特值为1的第一类子块为第一类目标子块,或者,比特值为0的表示该第一类子块中包含三维数据点,则确定比特值为0的第一类子块为第一类目标子块。

可选地,第一标识符用于指示变更划分方式,解码端可以根据第一标识符确定变更划分方式,划分方式包括八叉树划分、四叉树划分和二叉树划分。在本实现方式中,第一标识符指示从八叉树划分变更为四叉树划分,由四叉树划分变更为二叉树划分。

可选地,第二标识符用于指示到达最小精度的方向或者未到达最小精度的方向,解码端可以根据第二标识符确定哪个方向的范围值到达最小精度,四叉树划分沿着哪两个方向进行划分,以及哪两个方向的范围值到达最小精度,二叉树划分沿着哪个方向进行划分,或者,根据第二标识符确定哪两个方向的范围值未到达最小精度,四叉树划分沿着哪两个方向进行划分,哪个方向的范围值未到达最小精度,二叉树划分沿着哪个方向进行划分。

四叉树和二叉树的具体划分方式,参见编码端的相关描述,此处不再赘述。

另一种可能的实现方式:

当所述初始块的两个方向的范围值的最大值相等,且所述相等的范围值的最大值大于另一个方向的范围值的最大值;

所述对所述第一类子块中的至少一个第一类子块进行至少一次四叉树划分和/或二叉树划分,包括:

对所述第一类子块中的至少一个第一类子块进行至少一次四叉树划分,得到多个第二类子块,直到所述第二类子块的三个方向的范围值到达最小精度。

可选地,第一标识符用于指示变更划分方式,解码端可以根据第一标识符确定变更划分方式,划分方式包括八叉树划分、四叉树划分和二叉树划分。本实现方式中,解码端根据第一标识符确定八叉树划分变更为四叉树划分。

可选地,第二标识符用于指示到达最小精度的方向或者未到达最小精度的方向,解码端根据第二标识符确定哪个方向的范围值到达最小精度,四叉树划分沿着哪两个方向进行划分。或者,根据第二标识符确定哪两个方向的范围值未到达最小精度,四叉树划分沿着哪两个方向进行划分。

四叉树的具体划分方式,参见编码端的相关描述,此处不再赘述。

再一种可能的实现方式:

当所述初始块的两个方向范围值的最大值相等,且所述相等的范围值的最大值小于另一个方向的范围值的最大值;

所述对所述第一类子块中的至少一个第一类子块进行至少一次四叉树划分和/或二叉树划分,包括:

对所述第一类子块中的至少一个第一类子块进行至少一次二叉树划分,得到多个第三类子块,直到所述第三类子块的三个方向的范围值到达最小精度。

可选地,第一标识符用于指示变更划分方式,解码端可以根据第一标识符确定变更划分方式,划分方式包括八叉树划分、四叉树划分和二叉树划分。本实现方式中,解码端根据第一标识符确定八叉树划分变更为二叉树划分。

可选地,第二标识符用于指示到达最小精度的方向或者未到达最小精度的方向,解码端根据第二标识符确定哪个两个方向的范围值同时到达最小精度,二叉树划分沿着哪个方向进行划分,或者,根据第二标识符确定哪个方向的范围值未到达最小精度,二叉树划分沿着哪个方向进行。

可选地,解码端根据第三标识符确定划分结束。

二叉树的具体划分方式,参见编码端的相关描述,此处不再赘述。

可选地,初始块的三个方向的范围值相同时,一种可能的实现方式,根据第一标识符和第二标识符确定进行四叉树划分或者二叉树划分;根据第三标识符确定划分结束。

例如:八叉树划分过程中,当解码到第一标识符八比特00000000之后,表示划分方式转换,再解码所述第二标识符的三比特,为000、001或者010;所述000、001和010分别对应一个方向的范围值,根据第二标识符确定所对应的方向的范围值到达最小精度,并进行四叉树划分,四叉树划分过程中,当解码到第一标识符四比特0000之后,表示划分方式转换,再解码第二标识符的两比特为00或者01;所述00和01分别对应剩余两个方向中的一个方向,根据第二标识符确定所对应的方向的剩余两个方向中的一个方向的范围值到达最小精度,进行二叉树划分。

再例如:

八叉树划分过程中,当解码到第一标识符八比特00000000之后,表示划分方式转换,再解码所述第二标识符的三比特,第二标识符为000、001或者010;所述000、001和010分别对应一个方向的范围值,表示所对应的方向的范围值到达最小精度。根据第二标识符确定所对应的方向的范围值到达最小精度,并进行四叉树划分,四叉树划分过程中,当解码到第三标识符000010或者000011,则划分结束。

或者,

八叉树划分过程中,当解码到第一标识符八比特00000000之后,表示划分方式转换,再解码所述第二标识符的三比特,第二标识符为100、101或者110;所述100、101和110分别对应一个方向,表示所对应的方向的范围值未到达最小精度。即另外两个方向的范围值同时先到达最小精度,进行二叉树划分。二叉树划分过程中,当解码到第三标识符00,则划分结束。

或者,八叉树划分过程中,当解码到第一标识符八比特00000000之后,表示划分方式转换,再解码所述第二标识符的三比特,第二标识符为100、010、001、110、101或者011,根据比特位对应的方向的值,确定该方向的范围值是否到达最小精度,例如:第一比特位、第二比特位和第三比特位,依次代表径向距离方向、天顶角方向和方位角方向,将到达最小精度的比特位置为1,未到达最小精度的比特位置为0;例如:100表示径向距离方向先到达最小精度;010表示天顶角方向先到达最小精度;001表示方位角方向先到达最小精度;110表示径向距离方向和天顶角方向都到达最小精度,101表示径向距离方向和方位角方向都到达最小精度,011表示天顶角方向和方位角方向都到达最小精度。或者,将到达最小精度的比特位置为0,未到达最小精度的比特位置为1;例如:011表示径向距离方向先到达最小精度;101表示天顶角方向先到达最小精度;110表示方位角方向先到达最小精度;001表示径向距离方向和天顶角方向都到达最小精度,010表示径向距离方向和方位角方向都到达最小精度,100表示天顶角方向和方位角方向都到达最小精度。三个比特位与三个方向的对应关系,本发明实施例不作限制,可以做任一调整。

所述第三标识符用于指示划分结束,例如:二叉树划分后解码到两比特00,则表示划分结束,再例如:四叉树划分后解码到4比特0000和两比特10,或者,解码到4比特0000和两比特11,则表示划分结束。

s705:根据划分得到的子块的位置,得到待解码三维数据点的位置坐标。

可选地,根据划分得到的子块的位置,得到待编码的三维数据点的量化后的位置坐标;对所述量化后的位置坐标进行逆量化,得到所述三维数据点的量化前的位置坐标。

一种可能的实现方式:

当构建的用来划分空间三维数据点的分布的初始块三个方向的范围值不相同时。对解码得到的量化后的坐标值进行与编码端相反的逆量化既可以得到所有三维数据点的量化前位置坐标值。

另一种可能的实现方式:

当构建的用来划分空间三维数据点的分布的初始块为根据位置坐标在三个方向的量化后的最小值和量化后的最大值的最大值确定的。可选地,根据划分得到的子块的位置以及划分到最后得到的子块的三个方向的范围值的比值,得到待编码三维数据点的量化后的位置坐标。

可选地,根据划分得到的子块的位置,得到待编码三维数据点的第一位置坐标;获取所述划分到最后得到的子块的三个方向的范围值中的最小值分别与其余两个方向的范围值的比值;每个坐标在所述其余两个方向的坐标值均乘以所述方向的比值。

然后,再对解码得到的量化后的坐标值进行与编码端相反的逆量化既可以得到所有三维数据点的实际位置坐标值。

再一种可能的实现方式:

当构建的用来划分空间三维数据点的分布的初始块为根据位置坐标在三个方向的量化后的最小值和量化后的最大值的最小值确定的。可选地,根据划分得到的子块的位置以及划分到最后得到的子块的三个方向的范围值的比值,得到待编码三维数据点量化后的位置坐标。

可选地,根据划分得到的子块的位置,得到待编码三维数据点的第一位置坐标;获取所述划分到最后得到的子块的三个方向的范围值中的最大值别与其余两个方向的范围值比值;每个坐标在所述其余两个方向的坐标值均乘以所述方向对应的比值。

然后,再对解码得到的量化后的坐标值进行与编码端相反的逆量化既可以得到所有三维数据点的实际位置坐标值。

可选地,对量化后的位置坐标进行逆量化,

一种可能的实现方式:包括下述至少一项操作:

根据径向距离方向的量化步长逆量化所述三维数据的位置坐标的径向距离;

根据天顶角方向的量化步长逆量化所述三维数据的位置坐标的天顶角;

根据方位角方向的量化步长逆量化所述三维数据的位置坐标的方位角。

可选地,可以根据逆量化所述三维数据的位置坐标的径向距离;根据逆量化所述三维数据的位置坐标的天顶角;根据逆量化所述三维数据的位置坐标的方位角;ri表示第i个三维数据点的径向距离逆量化后的值,rδ表示径向距离方向的量化步长,表示第i个三维数据点的径向距离量化后的值,θi表示第i个三维数据点的天顶角逆量化后的值,θδ表示天顶角方向的量化步长,表示第i个三维数据点的天顶角量化后的值,表示第i个三维数据点的方位角逆量化后的值,表示方位角方向的量化步长,表示第i个三维数据点的方位角量化后的值。

另一种可能的实现方式:包括下述至少一项操作:

根据径向距离方向的量化步长和三维数据点在径向距离方向的量化前的最小值,逆量化所述三维数据的位置坐标的径向距离;

根据天顶角方向的量化步长和三维数据点在天顶角方向的量化前的最小值,逆量化所述三维数据的位置坐标的天顶角;

根据方位角方向的量化步长和三维数据点在方位角方向的量化前的最小值,逆量化所述三维数据的位置坐标的方位角。

可选地,可以根据逆量化所述三维数据的位置坐标的径向距离;根据逆量化所述三维数据的位置坐标的天顶角;根据逆量化所述三维数据的位置坐标的方位角;其中,ri表示第i个三维数据点的径向距离逆量化后的值,rmin表示所有三维数据点在径向距离方向的量化前的最小值,rδ表示径向距离方向的量化步长,表示第i个三维数据点的径向距离量化后的值,θi表示第i个三维数据点的天顶角逆量化后的值,θmin表示三维数据点在天顶角方向的量化前的最小值,θδ表示天顶角方向的量化步长,表示第i个三维数据点的天顶角量化后的值,表示第i个三维数据点的方位角逆量化后的值,表示三维数据点在方位角方向的量化前的最小值,表示方位角方向的量化步长,表示第i个三维数据点的方位角量化后的值,round(x)表示round函数返回一个数值,该数值是按照指定的小数位数进行四舍五入运算的结果。

可选地,还包括:解码包含三维数据点的子块中的三位数据点的数量,当解码到0,表示对应的子块内包含1个三维数据点,当解码到1,表示对应的子块内包含大于1个三维数据点,接着解码后面的比特,若解码出的数值为n,则确定包含的三维数据点数为n+1个。

本实施例,通过解码端获取码流,根据所述码流,确定初始块在径向距离方向、天顶角方向和方位角方向的范围值的最大值;根据初始块在径向距离方向、天顶角方向和方位角方向的范围值的最大值,构建初始块;或者,根据初始块在径向距离方向、天顶角方向和方位角方向的最小值以及最大值,构建初始块;对初始块进行至少一次八叉树的划分,得到多个第一类子块;对第一类子块中的至少一个第一类子块进行至少一次四叉树和/或二叉树划分;根据划分得到的子块的位置,得到待解码三维数据点的位置坐标。由于是进行八叉树与四叉树、二叉树的混合划分,或者,八叉树与四叉树的混合划分,或者,八叉树与二叉树的混合划分,从而,减小划分次数,提高解码码效率。

本发明实施例还提供下面几个实施例,对本发明的技术方案进一步的说明:

一种实施例:

编码端:

对点云的三维数据点的在球坐标系下的位置坐标进行量化:

一种可能的实现方式:在所有点云的三维数据点中找出所有数据点中在径向距离、天顶角以及方位角三个方向上的最小值,以及三个方向上的最大值。

根据量化所述位置坐标的径向距离;和/或,根据量化所述位置坐标的天顶角;和/或,根据量化所述位置坐标的方位角;其中,ri表示第i个三维数据点的径向距离量化前的值,rmin表示三维数据点在径向距离方向的量化前的最小值,rδ表示径向距离方向的量化步长,表示第i个三维数据点的径向距离量化后的值,θi表示第i个三维数据点的天顶角量化前的值,θmin表示所有三维数据点在天顶角方向的量化前的最小值,θδ表示天顶角方向的量化步长,表示第i个三维数据点的天顶角量化后的值,表示第i个三维数据点的方位角量化前的值,表示三维数据点在方位角方向的量化前的最小值,表示方位角方向的量化步长,表示第i个三维数据点的方位角量化后的值,round(x)表示round函数返回一个数值,该数值是按照指定的小数位数进行四舍五入运算的结果。

对量化之后的位置坐标进行编码:

一种可能的实现方式:通过对球坐标系下的位置坐标进行划分编码来实现对位置坐标的压缩。在这里采用对球坐标系下的位置坐标在径向距离、天顶角以及方位角三个方向上进行划分编码。当三个方向上的范围值均小于最小精度时即结束划分过程。将描述每层每个子块的划分情况的二进制码流送入算术编码引擎中进行算术编码。接着编码每个子块中对应的点云的三维数据点的数目,将二值化之后的码流送入算术编码引擎中进行算术编码。从而完成对位置坐标的编码。

属性编码:

一种可能的实现方式:按照位置坐标编码后的顺序进行lod分层编码。

另一种可能的实现方式:按照位置坐标编码后的顺序对应的属性值直接进行二值化,将二值化后得到的二进制码流送入算术编码引擎中进行算术编码,从而完成对属性值的编码。

可选地,

一种可能的实现方式:对待编码三维数据点的位置坐标在三个方向的量化前的最小值、量化后的最大值进行编码,并写入信息头中,以供解码端使用。

或者,

对待编码三维数据点的位置坐标在三个方向的量化前的最小值、量化前的最大值进行编码,并写入信息头中,以供解码端使用。

解码端:

位置坐标解码:

对位置坐标码流解码的过程中,根据解码头信息中得到的所有数据点中在径向距离、天顶角以及方位角三个方向上的最大值,根据最大值初始化原始的解码划分过程的最大范围值。

划分过程的一种可能的实现方式:根据解码出的描述划分情况的码流信息进行划分,当三个方向上的范围值均小于最小精度时即结束划分过程。

解码点云的三维数据点的一种可能的实现方式:解码得到每个子块中对应的点云的三维数据点的数目。

逆量化过程的一种可能的实现方式:

根据逆量化所述三维数据的位置坐标的径向距离;根据逆量化所述三维数据的位置坐标的天顶角;根据逆量化所述三维数据的位置坐标的天顶角;其中,ri表示第i个三维数据点的径向距离逆量化后得到的值,rmin表示所有三维数据点在径向距离方向的量化前的最小值,rδ表示径向距离方向的量化步长,表示第i个三维数据点的径向距离量化后的值,θi表示第i个三维数据点的天顶角逆量化后得到的值,θmin表示三维数据点在天顶角方向的量化前的最小值,θδ表示天顶角方向的量化步长,表示第i个三维数据点的天顶角量化后的值,表示第i个三维数据点的方位角逆量化后得到的值,表示三维数据点在方位角方向的量化前的最小值,表示方位角方向的量化步长,表示第i个三维数据点的方位角量化后的值,round(x)表示round函数返回一个数值,该数值是按照指定的小数位数进行四舍五入运算的结果。

属性码流的解码:

与编码过程相对应,一种可能的实现方式,即按照位置坐标编码后的顺序进行lod分层解码。另一种可能的实现方式,按照位置坐标编码后的顺序对应解码出二值化之后的属性值,再进行逆二值化得到相应的属性值。

另一个实施例:

编码端:

对位置坐标进行量化:

一种可能的实现方式:在所有点云的三维数据点中找出所有三维数据点中在径向距离、天顶角以及方位角三个方向上的最小值,以及三个方向上的最大值。

根据量化所述位置坐标的径向距离;和/或,根据量化所述位置坐标的天顶角;和/或,根据量化所述位置坐标的方位角;其中,ri表示第i个三维数据点的径向距离量化前的值,rmin表示三维数据点在径向距离方向的量化前的最小值,rδ表示径向距离方向的量化步长,表示第i个三维数据点的径向距离量化后的值,θi表示第i个三维数据点的天顶角量化前的值,θmin表示所有三维数据点在天顶角方向的量化前的最小值,θδ表示天顶角方向的量化步长,表示第i个三维数据点的天顶角量化后的值,表示第i个三维数据点的方位角量化前的值,表示三维数据点在方位角方向的量化前的最小值,表示方位角方向的量化步长,表示第i个三维数据点的方位角量化后的值,round(x)表示round函数返回一个数值,该数值是按照指定的小数位数进行四舍五入运算的结果。

对量化之后的位置坐标进行编码:

一种可能的实现方式,采用球坐标系下的八叉树划分方案来进行位置坐标划分编码。具体的一次划分如图8所示。

在这里采用对球坐标系下的位置坐标在径向距离、天顶角以及方位角三个方向上进行划分编码。一种可能的实现方式,根据每个方向上的最大值进行初始化。经过量化后的值一定是介于0到round((max-min)/δ)之间,接着进行八叉树划分编码。每层八叉树的划分均利用当前块的中心点坐标进行子块划分,通过中心点将当前块划分成八个小的子块。可以根据获取中心点在径向距离方向的坐标值;和/或,根据获取中心点在天顶角方向的坐标值;和/或,根据获取中心点在方位角方向的坐标值,其中,(rmid,θmid,)为中心点的坐标值,rmin为待划分块在径向距离方向的最小值,rmax为待划分块在径向距离方向的最大值,θmin为待划分块在天顶角方向的最小值,θmax为待划分块在天顶角方向的最大值,为待划分块在方位角方向的最小值,为待划分块在方位角方向的最大值。

在八叉树划分过程中八个小的子块的坐标取值范围如下所示。第一个子块的坐标取值范围为r≤rmid,θ≤θmid,第二个子块的坐标取值范围为r≤rmid,θ≤θmid,第三个子块的坐标取值范围为r≤rmid,θ>θmid,第四个子块的坐标取值范围为r≤rmid,θ>θmid,第五个子块的坐标取值范围为r>rmid,θ≤θmid,第六个子块的坐标取值范围为r>rmid,θ≤θmid,第七个子块的坐标取值范围为r>rmid,θ>θmid,第八个子块的坐标取值范围为r>rmid,θ>θmid,

在八叉树划分编码过程中,依次判断当前块内包含的所有点云的三维数据点分别属于八个子块中的哪一个,当该块内包含的所有点云的三维数据点属于哪个子块均判定结束后,接着会用8bit来编码当前块对应子块划分的情况,若当前块内含有点云的三维数据点则对应的bit位会被置为1,否则会被置为0。例如当第三个子块内含有点云的三维数据点,第六子块内含有点云的三维数据点,其他子块内均不含有点云的三维数据点时,此时编码出来的8bit二进制码流为00100100。按照图9所示的顺序逐层进行划分。

在编码过程中,逐层逐块进行子块划分,并逐个编码每个块的划分情况。在编码过程中,由于每个方向上划分至最小精度所需的次数不一定相同,存在这样的情况,一个方向上的范围值先达到最小精度,两个方向上的范围值均达到最小精度,三个方向上的范围值同时达到最小精度。

下面分别进行说明。如果一个方向上的范围值先到达最小精度时,则在接下来的划分过程中,在这个方向上即不进行划分,该方向上的坐标取值均选择小于等于中值的那半边区间。以方位角方向上的范围值到达最小精度为例进行说明,这时的划分过程只存在四种可能,可能一:r≤rmid,θ≤θmid,可能二:r≤rmid,θ>θmid,可能三:r>rmid,θ≤θmid,可能四:r>rmid,θ>θmid,四种可能对应的描述八叉树划分的8bit数为x0x0x0x0,其中的x需要根据该块内是否含有点云的三维数据点与否来确定对应位为0或为1。若两个方向上的范围值均达到最小精度时,则这两个方向在接下来的划分过程中不进行划分,即这两个方向上的坐标取值均选择小于等于中值的那半边区间。以径向距离r和方位角两个方向上的范围值到达最小精度为例进行说明,这时的划分过程只存在两种可能,可能一:r≤rmid,θ≤θmid,可能二:r≤rmid,θ>θmid,两种可能对应的描述八叉树划分的8bit数为x0x00000,其中的x需要根据前面两个子块内含有点云的三维数据点与否来确定对应位为0或为1。若三个方向上的范围值均达到最小精度时,则这三个方向在接下来的划分过程中不进行划分,此时,树划分结构编码结束。

点云的三维数据点的数目的编码:

当当前叶子节点块内含有一个点云的三维数据点时,直接编码一个0进行表示。当当前叶子节点块内含有不止一个点云的三维数据点时,设当前叶子节点块内含有n个点云的三维数据点,此时会先编码一个1,接着编码数值(n-1)。依次将前面编码表示八叉树划分的二进制比特流逐byte送入算术编码引擎中进行算术编码,接着将表示叶子节点块内含有点云的三维数据点数目的二进制比特流送入算术编码引擎中进行算术编码。根据上述流程即可实现对点云数据中的位置坐标的编码。对属性信息的编码与前面相同,不在这里重复叙述。

可选地,

一种可能的实现方式:对待编码三维数据点的位置坐标在三个方向的量化前的最小值、量化后的最大值进行编码,并写入信息头中,以供解码端使用。

或者,

对待编码三维数据点的位置坐标在三个方向的量化前的最小值、量化前的最大值进行编码,并写入信息头中,以供解码端使用。

解码端:

位置坐标解码:

对位置坐标码流解码的过程中,根据解码头信息中得到的所有数据点中在径向距离、天顶角以及方位角三个方向上的最大值,根据最大值初始化原始的解码划分过程的最大范围值。

一种可能的实现方式:通过逐次解码8bit,来重建出编码时的树形结构。每层八叉树的划分均利用当前块的中心点的坐标进行子块划分,通过中心点将当前块划分成八个小的子块。设当前块的中心点坐标为(rmid,θmid,),第一个子块的坐标取值范围为r≤rmid,θ≤θmid,第二个子块的坐标取值范围为r≤rmid,θ≤θmid,第三个子块的坐标取值范围为r≤rmid,θ>θmid,第四个子块的坐标取值范围为r≤rmid,θ>θmid,第五个子块的坐标取值范围为r>rmid,θ≤θmid,第六个子块的坐标取值范围为r>rmid,θ≤θmid,第七个子块的坐标取值范围为r>rmid,θ>θmid,第八个子块的坐标取值范围为r>rmid,θ>θmid,这八个块依次对应8bit从高位至低位的每个bit。当对应位为1时即会对对应子块继续进行划分,对应位为0时即不会对对应子块再进一步进行划分。当划分的子块某个方向上的范围值达到最小精度时,则令其该方向上的中值等于当前块的达到最小精度方向对应的坐标值,其他方向不变继续进行划分。当划分的子块的三个方向上的范围值均达到最小精度时,即停止划分。

解码子块内的三维数据点的数目:

一种可能的实现方式:当解码出一个0时,则当前叶子节点块内仅含有一个点云的三维数据点。当解码出一个1时,则当前叶子节点块内含有不止一个点云的三维数据点,接着会解码数值(n-1),表示当前叶子节点块内含有n个点云的三维数据点,顺序解码位置坐标码流即可解码出所有的点云位置坐标。再对解码得到的位置坐标进行逆量化得到解码出的位置坐标。根据上述的方案即可实现对位置坐标码流的解码。对属性信息码流的解码与前面相同,不在这里重复叙述。

再一种实施例:

编码端:

对位置坐标进行量化:

在所有点云的三维数据点中找出所有数据点中在径向距离、天顶角以及方位角三个方向上的最小值,以及三个方向上的最大值。

一种可能的实现方式:在所有点云的三维数据点中找出所有三维数据点中在径向距离、天顶角以及方位角三个方向上的最小值,以及三个方向上的最大值。

根据量化所述位置坐标的径向距离;和/或,根据量化所述位置坐标的天顶角;和/或,根据量化所述位置坐标的方位角;其中,ri表示第i个三维数据点的径向距离量化前的值,rmin表示三维数据点在径向距离方向的量化前的最小值,rδ表示径向距离方向的量化步长,表示第i个三维数据点的径向距离量化后的值,θi表示第i个三维数据点的天顶角量化前的值,θmin表示所有三维数据点在天顶角方向的量化前的最小值,θδ表示天顶角方向的量化步长,表示第i个三维数据点的天顶角量化后的值,表示第i个三维数据点的方位角量化前的值,表示三维数据点在方位角方向的量化前的最小值,表示方位角方向的量化步长,表示第i个三维数据点的方位角量化后的值,round(x)表示round函数返回一个数值,该数值是按照指定的小数位数进行四舍五入运算的结果。

对量化之后的位置坐标进行编码:

一种可能的实现方式,采用球坐标系下的八叉树划分方案来进行位置坐标划分编码。具体的一次划分如图8所示。

一种可能的实现方式:根据每个方向上的最大值进行初始化。经过量化后的值一定是介于0到round((max-min)/δ)之间,接着进行八叉树划分编码。每层八叉树的划分均利用当前块的中心点坐标进行子块划分,通过中心点将当前块划分成八个小的子块。可以根据获取中心点在径向距离方向的坐标值;和/或,根据获取中心点在天顶角方向的坐标值;和/或,根据获取中心点在方位角方向的坐标值,其中,(rmid,θmid,)为中心点的坐标值,rmin为待划分块在径向距离方向的最小值,rmax为待划分块在径向距离方向的最大值,θmin为待划分块在天顶角方向的最小值,θmax为待划分块在天顶角方向的最大值,为待划分块在方位角方向的最小值,为待划分块在方位角方向的最大值。

在八叉树划分过程中八个小的子块的坐标取值范围如下所示。第一个子块的坐标取值范围为r≤rmid,θ≤θmid,第二个子块的坐标取值范围为r≤rmid,θ≤θmid,第三个子块的坐标取值范围为r≤rmid,θ>θmid,第四个子块的坐标取值范围为r≤rmid,θ>θmid,第五个子块的坐标取值范围为r>rmid,θ≤θmid,第六个子块的坐标取值范围为r>rmid,θ≤θmid,第七个子块的坐标取值范围为r>rmid,θ>θmid,第八个子块的坐标取值范围为r>rmid,θ>θmid,

在八叉树划分编码过程中,依次判断当前块内包含的所有点云的三维数据点分别属于八个子块中的哪一个,当该块内包含的所有点云的三维数据点属于哪个子块均判定结束后,接着会用8bit来编码当前块对应子块划分的情况,若当前块内含有点云的三维数据点则对应的bit位会被置为1,否则会被置为0。例如当第三个子块内含有点云的三维数据点,第六子块内含有点云的三维数据点,其他子块内均不含有点云的三维数据点时,此时编码出来的8bit二进制码流为00100100。按照图9所示的顺序逐层进行划分。

在编码过程中,逐层逐块进行子块划分,并逐个编码每个块的划分情况。在编码过程中,由于每个方向上划分至最小精度所需的次数不一定相同,存在这样的情况,一个方向上的范围值先达到最小精度,两个方向上的范围值均达到最小精度,三个方向上的范围值同时达到最小精度。

下面分别进行说明。如果一个方向上的范围值先到达最小精度时,则在接下来的划分过程中,在这个方向上即不进行划分,以剩下两个方向进行划分编码,此时树划分变为四叉树划分。以方位角方向上的范围值到达最小精度为例进行说明,这时的划分中心为(rmid,θmid),这时的划分过程只存在四种可能,第一个第二类子块的坐标取值范围为:r≤rmid,θ≤θmid,第二个第二类子块的坐标取值范围为:r≤rmid,θ>θmid,第三个第二类子块的坐标取值范围为:r>rmid,θ≤θmid,第四个第二类子块的坐标取值范围为:r>rmid,θ>θmid。这时只需要利用4bit即可描述当前的划分情况。例如当第一个块内含有点云的三维数据点,第四个块内含有点云的三维数据点,其他子块内均不含有点云的三维数据点时,此时编码出来的4bit二进制码流为1001。若两个方向上的范围值均达到最小精度时,则这两个方向在接下来的划分过程中不进行划分,以剩余的一个方向进行划分编码,此时树划分变为二叉树划分。以径向距离r和方位角两个方向上的范围值到达最小精度为例进行说明,这时的划分中心为(θmid),可能一:θ≤θmid,可能二:θ>θmid;这时只需要利用2bit即可描述当前的划分情况。例如当第一个块内含有点云的三维数据点,第二个块内不含有点云的三维数据点,此时编码出来的2bit二进制码流为10。若三个方向上的范围值均达到最小精度时,则这三个方向在接下来的划分过程中不进行划分,此时,树划分结构编码结束。

对子块内包含的三维数据点的数目进行编码:

当当前叶子节点块内含有一个点云的三维数据点时,直接编码一个0进行表示。当当前叶子节点块内含有不止一个点云的三维数据点时,设当前叶子节点块内含有n个点云的三维数据点,此时会先编码一个1,接着编码数值(n-1)。依次将前面编码表示八叉树划分的二进制比特流逐byte送入算术编码引擎中进行算术编码,接着将表示叶子节点块内含有点云的三维数据点数目的二进制比特流送入算术编码引擎中进行算术编码。根据上述流程即可实现对点云数据中的位置坐标的编码。对属性信息的编码与前面相同,不在这里重复叙述。

可选地,在信息头中编码如下信息以供解码端使用:

对待编码三维数据点的位置坐标在三个方向的量化前的最小值、量化后的最大值进行编码;

或者,

对待编码三维数据点的位置坐标在三个方向的量化前的最小值、量化前的最大值进行编码。

解码端:

初始化初始块:

一种可能的实现方式:根据解码头信息得到的位置坐标在三个方向上的量化后的最大值和最小值,根据这三个最大值和最小值分别确定初始化八叉树划分时的三个方向上的范围值。通过逐次解码8bit,来重建出编码时的树形结构。每层八叉树的划分均利用当前块的中心点的坐标进行子块划分,通过中心点将当前块划分成八个小的子块。设当前块的中心点坐标为(rmid,θmid,),在八叉树划分过程中八个小的子块的坐标取值范围如下所示。第一个子块的坐标取值范围为r≤rmid,θ≤θmid,第二个子块的坐标取值范围为r≤rmid,θ≤θmid,第三个子块的坐标取值范围为r≤rmid,θ>θmid,第四个子块的坐标取值范围为r≤rmid,θ>θmid,第五个子块的坐标取值范围为r>rmid,θ≤θmid,第六个子块的坐标取值范围为r>rmid,θ≤θmid,第七个子块的坐标取值范围为r>rmid,θ>θmid,第八个子块的坐标取值范围为r>rmid,θ>θmid,八个块依次对应8bit从高位至低位的每个bit。当对应位为1时即会对对应子块继续进行划分,对应位为0时即不会对对应子块再进一步进行划分。划分的子块某个方向上的范围值达到最小精度时,接下来每次解码4bit,每1bit对应四叉树划分中四个块中的一个,当对应位为1时即会对对应子块继续进行划分,对应位为0时即不会对对应子块再进一步进行划分。当划分的子块某两个方向上的范围值达到最小精度时,接下来每次解码2bit,每1bit对应二叉树划分中两个块中的一个,当对应位为1时即会对对应子块继续进行划分,对应为0时即不会对对应子块再进一步进行划分。当划分的子块三个方向上的范围值均到达最小精度时,即停止划分。接着解码对应最小子块内含有的点云的三维数据点的数目。当解码出一个0时,则当前叶子节点块内仅含有一个点云的三维数据点。当解码出一个1时,则当前叶子节点块内含有不止一个点云的三维数据点,接着会解码数值(n-1),表示当前叶子节点块内含有n个点云的三维数据点,顺序解码位置坐标码流即可解码出所有的点云位置坐标。再对解码得到的位置坐标进行逆量化得到解码出的位置坐标。根据上述的方案即可实现对位置坐标码流的解码。对属性信息码流的解码与前面相同,不在这里重复叙述。

又一个实施例:

编码端:

对位置坐标进行量化:

在所有点云的三维数据点中找出所有数据点中在径向距离、天顶角以及方位角三个方向上的最小值,以及三个方向上的最大值。

一种可能的实现方式:在所有点云的三维数据点中找出所有三维数据点中在径向距离、天顶角以及方位角三个方向上的最小值,以及三个方向上的最大值。

根据量化所述位置坐标的径向距离;和/或,根据量化所述位置坐标的天顶角;和/或,根据量化所述位置坐标的方位角;其中,ri表示第i个三维数据点的径向距离量化前的值,rmin表示三维数据点在径向距离方向的量化前的最小值,rδ表示径向距离方向的量化步长,表示第i个三维数据点的径向距离量化后的值,θi表示第i个三维数据点的天顶角量化前的值,θmin表示所有三维数据点在天顶角方向的量化前的最小值,θδ表示天顶角方向的量化步长,表示第i个三维数据点的天顶角量化后的值,表示第i个三维数据点的方位角量化前的值,表示三维数据点在方位角方向的量化前的最小值,表示方位角方向的量化步长,表示第i个三维数据点的方位角量化后的值,round(x)表示round函数返回一个数值,该数值是按照指定的小数位数进行四舍五入运算的结果。

对经过量化之后的位置坐标进行位置坐标编码:

一种可能的实现方式,采用球坐标系下的八叉树划分方案来进行位置坐标划分编码。具体的一次划分如图8所示。

一种可能的实现方式:首先根据每个方向上的最大值进行初始化。经过量化后的值一定是介于0到round((max-min)/δ)之间,接着进行球坐标系下的划分编码,每层均按照取中值的方法进行划分。由于并不能保证三个方向的范围值同时达到最小精度,下面对每种情况分别进行说明。

当三个方向的范围值均未达到最小精度时,每层八叉树的划分均利用当前块的中心点的坐标进行子块划分,通过中心点将当前块划分成八个小的子块。设当前块的中心点坐标为(rmid,θmid,),第一个子块的坐标取值范围为r≤rmid,θ≤θmid,第二个子块的坐标取值范围为r≤rmid,θ≤θmid,第三个子块的坐标取值范围为r≤rmid,θ>θmid,第四个子块的坐标取值范围为r≤rmid,θ>θmid,第五个子块的坐标取值范围为r>rmid,θ≤θmid,第六个子块的坐标取值范围为r>rmid,θ≤θmid,第七个子块的坐标取值范围为r>rmid,θ>θmid,第八个子块的坐标取值范围为r>rmid,θ>θmid,在八叉树划分编码过程中,依次判断当前块内包含的所有点云的三维数据点分别属于八个子块中的哪一个,当该块内包含的所有点云的三维数据点属于哪个子块均判定结束后,接着会用8bit来编码当前块对应子块划分的情况,若当前块内含有点云的三维数据点则对应的bit位会被置为1,否则会被置为0。例如当第三个子块内含有点云的三维数据点,第六子块内含有点云的三维数据点,其他子块内均不含有点云的三维数据点时,此时编码出来的8bit二进制码流为00100100。按照图14所示的顺序逐层进行划分。在编码过程中,逐层逐块进行子块划分,并逐个编码每个块的划分情况。

当一个方向的范围值先到达最小精度时,先编码8bit的0即00000000进行标识,接着编码3bit描述三个方向那个方向的范围值先到达最小精度。具体对应的关系为000表示径向距离方向r的范围值先到达最小精度,001表示天顶角θ方向的范围值先到达最小精度,010表示方位角方向的范围值先到达最小精度。接下来开始在范围值未到达最小精度的两个方向上进行四叉树划分编码。以方位角方向上的范围值到达最小精度为例进行说明,首先先编码3bit描述信息具体为010,这时的划分中心为(rmid,θmid)。这时的划分过程只存在四种可能,可能一:r≤rmid,θ≤θmid,可能二:r≤rmid,θ>θmid,可能三:r>rmid,θ≤θmid,可能四:r>rmid,θ>θmid。这时只需要利用4bit即可描述当前的划分情况。例如当第一个块内含有点云的三维数据点,第四个块内含有点云的三维数据点,其他子块内均不含有点云的三维数据点时,此时编码出来的4bit二进制码流为1001。接着,仍然按照逐层编码的顺序进行四叉树子块划分,并逐个编码每个块的划分情况。对接下来的达到最小精度存在两种情况,下面分别进行介绍。

①又一方向的范围值达到最小精度时,此时先编码4bit的0即0000进行标识,接着编码2bit描述剩余两个方向那个方向的范围值达到最小精度,具体对应的关系为00表示在剩余的两个方向中按径向距离r、天顶角θ以及方位角顺序靠前的一个方向,01表示在剩余的两个方向中按径向距离r、天顶角θ以及方位角顺序靠后的一个方向。下面具体举例,以方位角方向上的范围值先到达最小精度为例进行说明,当径向距离r方向上的范围值到达最小精度时,径向距离r方向为剩余两个方向径向距离r、天顶角θ中按照径向距离r、天顶角θ以及方位角顺序靠前的一个方向,所以利用编码2bit描述信息具体为00进行表示。接下来开始在未到达最小精度的一个方向上进行二叉树划分编码。这时的划分中心为(θmid)。这时的划分过程存在以下两种可能,可能一:r≤rmid,θ≤θmid,可能二:r≤rmid,θ>θmid;这时只需要利用2bit即可描述当前的划分情况。例如当第一个块内含有点云的三维数据点,第二个块内不含有点云的三维数据点,此时编码出来的2bit二进制码流为10。接着,仍然按照逐层编码的顺序进行二叉树子块划分,并逐个编码每个块的划分情况。至剩下一个方向也达到最小精度时,编码2bit的00即表示对块的划分编码结束。

②当剩余两个方向的范围值同时到达最小精度时,这时,组合上前面已经到达最小精度的方向,此时三个方向均已经到达最小精度。此时先编码4bit的0即0000进行标识,接着编码2bit标识具体为00对块的划分编码结束。

当两个方向的范围值先达到最小精度时,先编码8bit的0即00000000进行标识,接着编码3bit描述三个方向中剩余那个方向的范围值未达到最小精度。具体对应的关系为100表示径向距离r方向的范围值未到达最小精度,101表示天顶角θ方向的范围值未到达最小精度,110表示方位角方向的范围值未到达最小精度。接下来开始在未达到最小精度的一个方向进行二叉树划分编码。以径向距离r、天顶角θ两个方向先达到最小精度为例进行说明。首先编码3bit标识具体为110,这时的划分中心为这时的划分过程存在以下两种可能,可能一:r≤rmid,θ≤θmid,可能二:r≤rmid,θ≤θmid,这时只需要利用2bit即可描述当前的划分情况。例如当第一个块内含有点云的三维数据点,第二个块内不含有点云的三维数据点,此时编码出来的2bit二进制码流为10。接着,按照逐层编码的顺序进行二叉树子块划分,并逐个编码每个块的划分情况。至剩下一个方向也达到最小精度时,编码2bit的00即表示对块的划分编码结束。

当三条边同时达到最小精度时,先编码8bit的0即00000000进行标识,接着编码3bit编码标识具体为111,标识块的划分编码结束。

对子块内包含的点云的三维数据点的数目进行编码:

当当前叶子节点块内含有一个点云的三维数据点时,直接编码一个0进行表示。当当前叶子节点块内含有不止一个点云的三维数据点时,设当前叶子节点块内含有n个点云的三维数据点,此时会先编码一个1,接着编码数值(n-1)。依次将前面编码表示八叉树划分的二进制比特流逐byte送入算术编码引擎中进行算术编码,接着将表示叶子节点块内含有点云的三维数据点数目的二进制比特流送入算术编码引擎中进行算术编码。根据上述流程即可实现对点云数据中的位置坐标的编码。对属性信息的编码与前面相同,不在这里重复叙述。

解码端:

根据解码头信息中得到的位置坐标在三个方向上的最大值的最大值或者三个方向上的最大值的最小值,利用这个值初始化树划分时的块的范围值。一开始按照八叉树划分进行解码,逐次解码8bit,重建出编码时的树形结构。每层八叉树的划分均利用当前块的中心点的坐标(rmid,θmid,),进行子块划分,通过中心点将当前块划分为八个小的子块。得到子块划分后,根据解码出的8bit确定存在点云的三维数据点的子块。若子块对应的bit为1则说明该子块存在点云的三维数据点,会继续向下进行划分。若子块对应的bit为0则说明该子块不存在点云的三维数据点,不会继续向下进行划分。逐8bit进行算术解码,当解码到8bit的0即00000000时存在多种情况,下面分别进行说明。

在解码到8bit的0即00000000时,接着解码3bit,若解码到000,001,010时即说明后面转为了四叉划分,若解码到000则说明径向距离方向r的范围值先到达最小精度,若解码到001则说明天顶角θ方向的范围值先到达最小精度,若解码到010则说明方位角方向的范围值先到达最小精度。下面具体举例说明,在解码到8bit的0即00000000时,接着解码3bit,若解码到3bit描述信息具体为010,这时的划分中心为(rmid,θmid)。这时的划分过程只存在四种可能,分别为可能一:r≤rmid,θ≤θmid,可能二:r≤rmid,θ>θmid,可能三:r>rmid,θ≤θmid,可能四:r>rmid,θ>θmid。这时只需要利用4bit即可描述当前的划分情况。这时改为每次解码4bit,根据解码出的4bit确定存在点云的三维数据点的子块。若子块对应的bit为1则说明该子块存在点云的三维数据点,会继续向下进行划分。若子块对应的bit为0则说明该子块不存在点云的三维数据点,不会继续向下进行划分。逐4bit进行算术解码,当解码到4bit的0即0000时存在多种情况,下面分别进行说明。

①当解码到4bit的0即0000时,接着解码2bit,若解码到00,01时即表示在前面剩余的两个方向中有一个方向的范围值达到了最小精度,具体对应的关系为00表示在剩余的两个方向中按径向距离r、天顶角θ以及方位角顺序靠前的一个方向,01表示在剩余的两个方向中按径向距离r、天顶角θ以及方位角顺序靠后的一个方向。下面具体举例说明,以方位角方向上的范围值先到达最小精度为例进行说明,当解码到4bit的0即0000时,接着解码2bit,解码到00时,由于径向距离r方向为剩余两个方向径向距离r、天顶角θ中按照径向距离r、天顶角θ以及方位角顺序靠前的一个方向,则接下来转为二叉树划分,这时的划分中心为(θmid)。这时的划分过程存在以下两种可能,分别为可能一:r≤rmid,θ≤θmid,可能二:r≤rmid,θ>θmid;这时只需要利用2bit即可描述当前的划分情况。接下来每次解码2bit,根据解码出的2bit确定存在点云的三维数据点的子块。若子块对应的bit为1则说明该子块存在点云的三维数据点,会继续向下进行划分。若子块对应的bit为0则说明该子块不存在点云的三维数据点,不会继续向下进行划分。逐2bit进行算术解码,当解码出2bit的0即00时,表示块划分解码结束。

②当解码到4bit的0即0000时,接着解码2bit,若解码到11时,表明此时剩余两个方向的范围值也达到了最小精度,表示块划分解码结束。

在解码到8bit的0即00000000时,接着解码3bit,若解码到100,101,110时即说明后面转为了二叉划分,若解码到100表示径向距离r方向的范围值未到达最小精度,101表示天顶角θ方向的范围值未到达最小精度,110表示方位角方向的范围值未到达最小精度。说明接下来的码流是在未到达最小精度的方向上进行二叉树划分编码得到的码流。下面具体举例进行说明,在解码到8bit的0即00000000时,接着解码3bit描述信息具体为110时,这时仅有方位角方向的范围值未到达最小精度,这时的划分中心为划分过程中存在以下两种可能,分别为可能一:r≤rmid,θ≤θmid,可能二:r≤rmid,θ≤θmid,这时只需要利用2bit即可描述当前块的划分情况。这时改为每次解码2bit,根据解码出的2bit确定存在点云的三维数据点的子块。若子块对应的bit为1则说明该子块存在点云的三维数据点,会继续向下进行划分。若子块对应的bit为0则说明该子块不存在点云的三维数据点,不会继续向下进行划分。逐2bit进行算术解码,当解码到2bit的0即00时,表示块划分解码结束。

在解码到8bit的0即00000000时,接着解码3bit,若解码到111时即说明径向距离r、天顶角θ以及方位角三个方向上的范围值同时到达了最小精度,表明块划分解码结束。

在对块划分部分解码结束后,由于径向距离r、天顶角θ以及方位角三个方向上的最大范围值以及最小精度均不相等,所以需要根据最小精度进行比例缩放。设径向距离r方向上在划分过程中的最小精度为r′min,天顶角θ方向上在划分过程中的最小精度为θ′min以及方位角方向上在划分过程中的最小精度为则对径向距离r方向上的范围值按照进行比例缩放,其中rmin-l为比例缩放之前的径向距离r方向上最小精度,rl为比例缩放前的径向距离r方向上的坐标值,为比例缩放后的径向距离r方向上的坐标值。则对天顶角θ方向上的范围值按照进行比例缩放,其中θmin-l为比例缩放之前的天顶角θ方向上最小精度,θl为比例缩放前的天顶角θ方向上的坐标值,为比例缩放后的天顶角θ方向上的坐标值。则对方位角方向上的范围值按进行比例缩放,其中为比例缩放之前的方位角方向上最小精度,为比例缩放前的方位角方向上的坐标值,为比例缩放后的方位角方向上的坐标值。

对子块内包含的点云的三维数据点的数目进行编码:

当解码出一个0时,则当前叶子节点块内仅含有一个点云的三维数据点。当解码出一个1时,则当前叶子节点块内含有不止一个点云的三维数据点,接着会解码数值(n-1),表示当前叶子节点块内含有n个点云的三维数据点,顺序解码位置坐标码流即可解码出所有的点云位置坐标。再对解码得到的位置坐标进行逆量化得到解码出的位置坐标。根据上述的方案即可实现对位置坐标码流的解码。对属性信息码流的解码与前面相同,不在这里重复叙述。图10为本发明实施例提供的一种三维数据点的编码装置的结构示意图,本本实施例的装置包括:处理器1001和存储器1002,其中,

处理器1001用于根据待编码的三维数据点在球坐标系下的位置坐标,确定所述待编码三维数据点的初始块在径向距离方向、天顶角方向、方位角方向的范围值的最大值;

处理器,用于对所述初始块进行至少一次八叉树划分,得到多个第一类子块;

处理器1001,用于对所述第一类子块中的至少一个第一类子块进行至少一次四叉树划分和/或二叉树划分;

处理器1001,用于根据所述初始块的划分结果,对所述待编码的三维数据点进行编码;

存储器1002用于存储编码得到的码流。

可选地,

当所述初始块的三个方向的范围值的最大值均不相等时;

所述处理器1001具体用于对所述第一类子块中的至少一个第一类子块进行至少一次四叉树划分,得到多个第二类子块,直到所述第二类子块的两个方向的范围值到达最小精度;

对所述第二类子块中的至少一个第二类子块进行至少一次二叉树划分,得到多个第三类子块,直到所述第三类子块的三个方向的范围值到达最小精度。

可选地,

所述初始块的两个方向的范围值的最大值相等,且所述相等的范围值的最大值大于另一个方向的范围值的最大值;

所述处理器1001具体用于对所述第一类子块中的至少一个第一类子块进行至少一次四叉树划分,得到多个第二类子块,直到所述第二类子块的三个方向的范围值到达最小精度。

可选地,

当所述初始块的两个方向范围值的最大值相等,且所述相等的范围值的最大值小于另一个方向的范围值的最大值;

所述处理器1001具体用于对所述第一类子块中的至少一个第一类子块进行至少一次二叉树划分,得到多个第三类子块,直到所述第三类子块的三个方向的范围值到达最小精度。

可选地,

所述处理器1001具体用于确定所述第一类子块中的第一类目标子块,所述第一类目标子块的一个方向的范围值到达最小精度且所述第一类目标子块中包含三维数据点;

对所述第一类目标子块进行至少一次四叉树划分;

确定所述第二类子块中的第二类目标子块,所述第二类目标子块的两个方向的范围值到达最小精度且所述第二类目标子块中包含三维数据点;

对所述第二类目标子块进行至少一次二叉树划分。

可选地,

所述处理器1001具体用于确定所述第一类子块中的第一类目标子块,所述第一类目标子块的一个方向的范围值到达最小精度且所述第一类目标子块中包含三维数据点;

对所述第一类目标子块进行至少一次四叉树划分。

可选地,

所述处理器1001具体用于确定所述第一类子块中的第一类目标子块,所述第一类目标子块的两个方向的范围值到达最小精度且所述第一类目标子块中包含三维数据点;

对所述第一类目标子块进行至少一次二叉树划分。

可选地,

所述处理器1001具体用于根据划分次序以及每次划分得到的子块中包含的三维数据点情况,依次对每次划分情况进行编码。

可选地,

所述处理器1001具体用于根据每次划分得到的子块包含三维数据点的情况,得到每次划分对应的码流;

根据划分次序,依次编码每次划分对应的码流。

可选地,

所述处理器1001具体用于根据每次划分得到的子块包含的三维数据点的情况,得到每个子块对应的比特流,每个子块对应一个比特,包含三维数据点的子块与未包含三维数据点的子块的比特值不同;

根据所述子块对应的比特值,生成所述每次划分对应的码流。

获取每次划分得到的子块对应的比特值,根据所有子块对应的比特值生成每次划分对应的码流。

可选地,

所述每次划分对应的码流包含8比特;

所述处理器1001具体用于若进行八叉树划分,则根据划分得到的八个子块包含的三维数据点情况,确定所述8个比特的比特值;

若进行四叉树划分,则根据划分得到的四个子块包含的三维数据点情况,确定所述8个比特中其中4个比特的比特值,其余4个比特的比特值与未包含三维数据点的子块的比特值相同;

若进行二叉树划分,则根据划分得到的两个子块包含的三维数据点情况,确定所述8个比特中其中2个比特的比特值,其余6个比特的比特值与未包含三维数据点的子块的比特值相同。

可选地,

所述处理器1001具体用于若进行八叉树划分,每次划分对应的码流为8比特,根据划分得到的八个子块包含的三维数据点情况,确定所述8个比特的比特值;

若进行四叉树划分,每次划分对应的码流为4比特,则根据划分得到的四个子块包含的三维数据点情况,确定所述4个比特的比特值;

若进行二叉树划分,每次划分对应的码流为2比特,则根据划分得到的两个子块包含的三维数据点情况,确定所述2个比特的比特值。

可选地,

包含三维数据点的子块对应的比特值为0,未包含三维数据点的子块对应的比特值为1;

或者,

包含三维数据点的子块对应的比特值为1,未包含三维数据点的子块对应的比特值为0。

可选地,

所述处理器1001还用于当划分得到的子块中一个方向或者两个方向的范围值到达最小精度,编码第一标识符,所述第一标识符用于指示变更划分方式,所述划分方式为八叉树划分、四叉树划分或者二叉树划分。

可选地,

当进行八叉树划分得到的子块的一个方向的范围值到达最小精度或者两个方向的范围值同时到达最小精度,所述第一标识符的为8比特,所述8比特的比特值均与未包含三维数据点的子块对应的比特值一致;

当进行四叉树划分得到的子块的两个方向的范围值到达最小精度,所述第一标识符为4比特,所述4比特的比特值均与未包含三维数据点的子块对应的比特值一致。

可选地,

所述处理器1001还用于编码第二标识符,所述第二标识符用于指示范围值到达最小精度的方向或者未到达最小精度的方向。

可选地,

所述第二标识符为3比特或者2比特。

可选地,

所述处理器1001还用于编码第三标识符,所述第三标识符用于指示划分结束。

可选地,

所述处理器1001具体用于对待编码三维数据点在球坐标系下的位置坐标进行量化;

根据量化后的三维数据点的位置坐标,获取三维数据点的位置坐标在三个方向上的范围值的最大值;

根据所述三维数据点的位置坐标在三个方向上的范围值的最大值,确定待编码三维数据点的初始块的径向距离方向、天顶角方向和方位角方向的范围值的最大值。

可选地,

所述处理器1001具体用于在每个方向上,获取大于等于所述三维数据点的位置坐标的范围值的最大值的2的整数次幂的值中最接近所述范围值的最大值的值,为所述初始块在所述方向的范围值的最大值。

可选地,

所述处理器1001具体用于根据径向距离方向的量化步长量化所述三维数据的位置坐标的径向距离;

根据天顶角方向的量化步长量化所述三维数据的位置坐标的天顶角;

根据方位角方向的量化步长量化所述三维数据的位置坐标的方位角。

可选地,

所述处理器1001具体用于根据量化所述三维数据点的位置坐标的径向距离;

和/或,

根据量化所述三维数据点的位置坐标的天顶角;

和/或,

根据量化所述三维数据点的位置坐标的方位角;

其中,ri表示第i个三维数据点的径向距离量化前的值,rδ表示径向距离方向的量化步长,表示第i个三维数据点的径向距离量化后的值,θi表示第i个三维数据点的天顶角量化前的值,θδ表示天顶角方向的量化步长,表示第i个三维数据点的天顶角量化后的值,表示第i个三维数据点的方位角量化前的值,表示方位角方向的量化步长,表示第i个三维数据点的方位角量化后的值,round(x)表示round函数返回一个数值,该数值是按照指定的小数位数进行四舍五入运算的结果。

可选地,

所述处理器1001具体用于根据径向距离方向的量化步长以及径向距离方向的最小值,量化所述位置坐标的径向距离;

根据天顶角方向的量化步长以及天顶角方向的最小值,量化所述位置坐标的天顶角;

根据方位角方向的量化步长以及方位角方向的最小值,量化所述位置坐标的方位角。

可选地,

所述处理器1001具体用于根据量化所述位置坐标的径向距离;

和/或,

根据量化所述位置坐标的天顶角;

和/或,

根据量化所述位置坐标的方位角;

其中,ri表示第i个三维数据点的径向距离量化前的值,rmin表示三维数据点在径向距离方向的量化前的最小值,rδ表示径向距离方向的量化步长,表示第i个三维数据点的径向距离量化后的值,θi表示第i个三维数据点的天顶角量化前的值,θmin表示所有三维数据点在天顶角方向的量化前的最小值,θδ表示天顶角方向的量化步长,表示第i个三维数据点的天顶角量化后的值,表示第i个三维数据点的方位角量化前的值,表示三维数据点在方位角方向的量化前的最小值,表示方位角方向的量化步长,表示第i个三维数据点的方位角量化后的值,round(x)表示round函数返回一个数值,该数值是按照指定的小数位数进行四舍五入运算的结果。

可选地,

所述处理器1001还用于对待编码三维数据点的位置坐标在三个方向的量化后的最小值、量化后的最大值进行编码;

或者,

对待编码三维数据点的位置坐标在三个方向的量化前的最小值、量化前的最大值进行编码;

或者,

对待编码三维数据点的位置坐标在三个方向的量化前的最小值、量化后的最大值进行编码;

或者,

对待编码三维数据点的位置坐标在三个方向的量化后的最小值、量化前的最大值进行编码。

可选地,

所述处理器1001还用于对待编码三维数据点的位置坐标在三个方向的量化后的最小值、量化后的最大值的最大值进行编码;

或者,

对待编码三维数据点的位置坐标在三个方向的量化前的最小值、量化后的最大值的最大值进行编码;

或者,

对待编码三维数据点的位置坐标在三个方向的量化后的最小值、量化前的最大值的最大值进行编码;

或者,

对待编码三维数据点的位置坐标在三个方向的量化前的最小值、量化前的最大值的最大值进行编码。

可选地,

所述处理器1001还用于对待编码三维数据点的位置坐标在三个方向的量化后的最小值、量化后的最大值的最小值进行编码;

或者,

对待编码三维数据点的位置坐标在三个方向的量化前的最小值、量化后的最大值的最小值进行编码;

或者,

对待编码三维数据点的位置坐标在三个方向的量化后的最小值、量化前的最大值的最小值进行编码;

或者,

对待编码三维数据点的位置坐标在三个方向的量化前的最小值、量化前的最大值的最小值进行编码。

可选地,

所述处理器1001具体用于根据中心点坐标对所述初始块进行至少一次八叉树划分;

所述对所述第一类子块中的至少一个第一类子块进行至少一次四叉树划分和/或二叉树划分,包括:

根据中心点坐标对所述第一类子块中的至少一个第一类子块进行至少一次四叉树划分和/或二叉树划分。

可选地,

所述处理器1001还用于获取中心点坐标。

可选地,

所述处理器1001具体用于根据每次待划分的块在径向距离方向的最大值和最小值,获取中心点在径向距离方向的坐标值;

根据每次待划分的块在天顶角方向的最大值和最小值,获取中心点在天顶角方向的坐标值;

根据每次待划分的块在方位角方向的最大值和最小值,获取中心点在方位角方向的坐标值。

可选地,

所述处理器1001具体用于根据获取中心点在径向距离方向的坐标值;

和/或,

根据获取中心点在天顶角方向的坐标值;

和/或,

根据获取中心点在方位角方向的坐标值;

其中,(rmid,θmid,)为中心点的坐标值,rmin为待划分块在径向距离方向的最小值,rmax为待划分块在径向距离方向的最大值,θmin为待划分块在天顶角方向的最小值,θmax为待划分块在天顶角方向的最大值,为待划分块在方位角方向的最小值,为待划分块在方位角方向的最大值。

可选地,

所述处理器1001还用于编码包含三维数据点的子块中的三维数据点的数量。

可选地,

当子块中包含1个三维数据点,编码0,当子块中包含n个三维数据点,编码1和n-1。

可选地,

所述初始块为球体的一部分。

可选地,

所述球体的中心为三维数据点采集设备的位置。

可选地,

所述三维数据点采集设备为激光雷达、光电雷达或激光扫描仪。

本实施例的装置,对应地可用于执行图2-图6所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。

图11为本发明实施例提供的一种三维数据点的解码装置的结构示意图,本本实施例的装置包括:处理器1101和存储器1102,其中,

处理器11011101,用于获取码流;

所述处理器1101还用于根据所述码流,确定初始块在径向距离方向、天顶角方向和方位角方向的范围值的最大值;

所述处理器1101还用于根据所述初始块在径向距离方向、天顶角方向和方位角方向的范围值的最大值,构建初始块;

所述处理器1101还用于对所述初始块进行至少一次八叉树的划分,得到多个第一类子块;

所述处理器1101还用于对所述第一类子块中的至少一个第一类子块进行至少一次四叉树和/或二叉树划分;

所述处理器1101还用于根据划分得到的子块的位置,得到待解码三维数据点的位置坐标;

存储器1102用于存储待解码三维数据点的位置坐标。

可选地,

当所述初始块的三个方向的范围值的最大值均不相等时;

所述处理器1101具体用于对所述第一类子块中的至少一个第一类子块进行至少一次四叉树划分,得到多个第二类子块,直到所述第二类子块的两个方向的范围值到达最小精度;

对所述第二类子块中的至少一个第二类子块进行至少一次二叉树划分,得到多个第三类子块,直到所述第三类子块的三个方向的范围值到达最小精度。

可选地,

当所述初始块的两个方向的范围值的最大值相等,且所述相等的范围值的最大值大于另一个方向的范围值的最大值;

所述处理器1101具体用于对所述第一类子块中的至少一个第一类子块进行至少一次四叉树划分,得到多个第二类子块,直到所述第二类子块的三个方向的范围值到达最小精度。

可选地,

当所述初始块的两个方向范围值的最大值相等,且所述相等的范围值的最大值小于另一个方向的范围值的最大值;

所述处理器1101具体用于对所述第一类子块中的至少一个第一类子块进行至少一次二叉树划分,得到多个第三类子块,直到所述第三类子块的三个方向的范围值到达最小精度。

可选地,

所述处理器1101具体用于根据第一类子块对应的比特值,确定第一类子块中的第一类目标子块,所述第一类目标子块的一个方向的范围值到达最小精度且所述第一类目标子块中包含三维数据点;

对所述第一类目标子块进行至少一次四叉树划分;

根据第二类子块对应的比特值,确定所述第二类子块中的第二类目标子块,所述第二类目标子块的两个方向的范围值到达最小精度且所述第二类目标子块中包含三维数据点;

对所述第二类目标子块进行至少一次二叉树划分。

可选地,

所述处理器1101具体用于根据第一类子块的比特值,确定所述第一类子块中的第一类目标子块,所述第一类目标子块的一个方向的范围值到达最小精度且所述第一类目标子块中包含三维数据点;

对所述第一类目标子块进行至少一次四叉树划分。

可选地,

所述处理器1101具体用于根据第一类子块对应的比特值,确定所述第一类子块中的第一类目标子块,所述第一类目标子块的两个方向的范围值到达最小精度且所述第一类目标子块中包含三维数据点;

对所述第一类目标子块进行至少一次二叉树划分。

可选地,

所述处理器1101还用于解码第一标识符,所述第一标识符用于指示变更划分方式,所述划分方式为八叉树划分、四叉树划分或者二叉树划分;

根据所述第一标识符,确定变更划分方式。

可选地,

所述处理器1101还用于解码第二标识符,所述第二标识符用于指示到达最小精度的方向或者未到达最小精度的方向;

根据所述第二标识符,确定到达最小精度的方向或者未到达最小精度的方向。

可选地,

所述处理器1101还用于解码第三标识符,所述第三标识符用于指示划分结束;

根据所述第三标识符,确定划分结束。

可选地,

当所述初始块的三个方向的范围值的最大值均相等时;

所述处理器1101具体用于根据第一标识符和第二标识符确定进行四叉树划分或者二叉树划分;

根据第三标识符确定划分结束。

可选地,

其特征在于所述处理器1101具体用于根据所述码流,得到位置坐标在三个方向的量化后的最小值和量化后的最大值;

根据所述位置坐标在三个方向量化后的最小值和量化后的最大值,得到所述位置坐标在径向距离方向、天顶角方向和方位角方向的范围值的最大值;

根据所述位置坐标在所述径向距离方向、天顶角方向和方位角方向的范围值的最大值,得到所述初始块在所述径向距离方向、天顶角方向和方位角方向的范围值的最大值。

可选地,

所述处理器1101具体用于在每个方向上,获取大于等于所述位置坐标的范围值的最大值的2的整数次幂的值中最接近所述范围值的最大值的值,为所述初始块在所述方向的范围值的最大值。

可选地,

所述处理器1101具体用于根据所述所述码流,得到位置坐标在所述三个方向的量化前的最小值和量化前的最大值;

根据所述位置坐标在三个方向的量化前的最小值和量化前的最大值,以及三个方向的量化步长,得到所述位置坐标在三个方向的量化后的最小值和量化后的最大值。

可选地,

所述处理器1101具体用于根据所述所述码流,得到位置坐标在所述三个方向的量化前的最小值和量化后的最大值;

根据所述位置坐标在所述三个方向的量化前的最小值,以及三个方向的量化步长,得到所述位置坐标在所述三个方向的量化后的最小值。

可选地,

所述处理器1101具体用于根据所述所述码流,得到位置坐标在所述三个方向的量化后的最小值和量化前的最大值;

根据所述位置坐标在所述三个方向的量化前的最大值,以及三个方向的量化步长,得到所述位置坐标在所述三个方向的量化后的最大值。

可选地,

所述处理器1101具体用于根据所述码流,得到所述位置坐标在三个方向的量化前的最小值和量化后的最大值的最大值;

根据所述位置坐标在所述三个方向的量化前的最小值,以及三个方向的量化步长,得到三个方向量化后的最小值;

确定所述量化后的最大值的最大值为所述三个方向量化后的最大值。

可选地,

所述处理器1101具体用于根据所述码流,得到所述位置坐标在三个方向的量化前的最小值和量化后的最大值的最小值;

根据所述位置坐标在所述三个方向的量化前的最小值,以及三个方向的量化步长,得到三个方向量化后的最小值;

确定所述量化后的最大值的最小值为所述三个方向量化后的最大值。

可选地,

所述处理器1101具体用于根据所述码流,得到所述位置坐标在三个方向的量化后的最小值和量化后的最大值的最大值;

确定所述量化后的最大值的最大值为所述三个方向量化后的最大值。

可选地,

所述处理器1101具体用于根据所述码流,得到所述位置坐标在三个方向的量化后的最小值和量化后的最大值的最小值;

确定所述量化后的最大值的最小值为所述三个方向量化后的最大值。

可选地,

所述处理器1101具体用于根据所述码流,得到所述位置坐标在三个方向的量化前的最小值和量化前的最大值的最大值;

根据所述位置坐标在所述三个方向的量化前的最小值,以及三个方向的量化步长,得到三个方向量化后的最小值;

根据所述量化前的最大值的最大值以及量化步长,得到量化后的最大值的最大值;

确定所述量化后的最大值的最大值为所述三个方向量化后的最大值。

可选地,

所述处理器1101具体用于根据所述码流,得到所述位置坐标在三个方向的量化前的最小值和量化前的最大值的最小值;

根据所述位置坐标在所述三个方向的量化前的最小值,以及三个方向的量化步长,得到三个方向量化后的最小值;

根据所述量化前的最大值的最小值以及量化步长,得到量化后的最大值的最小值;

确定所述量化后的最大值的最小值为所述三个方向量化后的最大值。

可选地,

所述处理器1101具体用于根据所述码流,得到所述位置坐标在三个方向的量化后的最小值和量化前的最大值的最大值;

根据所述量化前的最大值的最大值以及量化步长,得到量化后的最大值的最大值;

确定所述量化后的最大值的最大值为所述三个方向量化后的最大值。

可选地,

所述处理器1101具体用于根据所述码流,得到所述位置坐标在三个方向的量化后的最小值和量化前的最大值的最小值;

根据所述量化前的最大值的最小值以及量化步长,得到量化后的最大值的最小值;

确定所述量化后的最大值的最小值为所述三个方向量化后的最大值。

可选地,

所述处理器1101具体用于根据划分得到的子块的位置以及划分到最后得到的子块的三个方向的范围值的比值,得到待编码三维数据点的位置坐标。

可选地,

所述处理器1101具体用于根据划分得到的子块的位置,得到待编码三维数据点的第一位置坐标;

获取所述划分到最后得到的子块的三个方向的范围值中的最小值分别与其余两个方向的范围值的比值;

每个坐标在所述其余两个方向的坐标值均乘以所述方向的比值。

可选地,

所述处理器1101具体用于根据划分得到的子块的位置,得到待编码三维数据点的第一位置坐标;

获取所述划分到最后得到的子块的三个方向的范围值中的最大值别与其余两个方向的范围值比值;

每个坐标在所述其余两个方向的坐标值均乘以所述方向对应的比值。

可选地,

所述处理器1101还用于解码包含三维数据点的子块中的三维数据点的数量。

可选地,

所述处理器1101具体用于根据中心点坐标对所述初始块进行至少一次八叉树划分;

根据中心点坐标对所述第一类子块中的至少一个第一类子块进行至少一次四叉树划分和/或二叉树划分。

可选地,

所述处理器1101还用于获取中心点坐标。

可选地,

所述处理器1101具体用于根据每次待划分的块在径向距离方向的最大值和最小值,获取中心点在径向距离方向的坐标值;

根据每次待划分的块在天顶角方向的最大值和最小值,获取中心点在天顶角方向的坐标值;

根据每次待划分的块在方位角方向的最大值和最小值,获取中心点在方位角方向的坐标值。

可选地,

所述处理器1101具体用于根据获取中心点在径向距离方向的坐标值;

和/或,

根据获取中心点在天顶角方向的坐标值;

和/或,

根据获取中心点在方位角方向的坐标值;

其中,(rmid,θmid,)为中心点的坐标值,rmin为待划分块在径向距离方向的最小值,rmax为待划分块在径向距离方向的最大值,θmin为待划分块在天顶角方向的最小值,θmax为待划分块在天顶角方向的最大值,为待划分块在方位角方向的最小值,为待划分块在方位角方向的最大值。

可选地,

所述处理器1101具体用于根据划分得到的子块的位置,得到待编码的三维数据点的量化后的位置坐标;

对所述量化后的位置坐标进行逆量化,得到所述三维数据点的量化前的位置坐标。

可选地,

所述处理器1101具体用于根据径向距离方向的量化步长逆量化所述三维数据的位置坐标的径向距离;

根据天顶角方向的量化步长逆量化所述三维数据的位置坐标的天顶角;

根据方位角方向的量化步长逆量化所述三维数据的位置坐标的方位角。

可选地,

所述处理器1101具体用于根据逆量化所述三维数据的位置坐标的径向距离;

和/或,

根据天顶角方向的量化步长逆量化所述三维数据的位置坐标的天顶角,包括:

根据逆量化所述三维数据的位置坐标的天顶角;

和/或,

根据逆量化所述三维数据的位置坐标的方位角;

其中,ri表示第i个三维数据点的径向距离逆量化后的值,rδ表示径向距离方向的量化步长,表示第i个三维数据点的径向距离量化后的值,θi表示第i个三维数据点的天顶角逆量化后的值,θδ表示天顶角方向的量化步长,表示第i个三维数据点的天顶角量化后的值,表示第i个三维数据点的方位角逆量化后的值,表示方位角方向的量化步长,表示第i个三维数据点的方位角量化后的值。

可选地,

所述处理器1101具体用于根据径向距离方向的量化步长和三维数据点在径向距离方向的量化前的最小值,逆量化所述三维数据的位置坐标的径向距离;

根据天顶角方向的量化步长和三维数据点在天顶角方向的量化前的最小值,逆量化所述三维数据的位置坐标的天顶角;

根据方位角方向的量化步长和三维数据点在方位角方向的量化前的最小值,逆量化所述三维数据的位置坐标的方位角。

可选地,

所述处理器1101具体用于根据逆量化所述三维数据的位置坐标的径向距离;

和/或,

根据逆量化所述三维数据的位置坐标的天顶角;

和/或,

根据逆量化所述三维数据的位置坐标的方位角;

其中,ri表示第i个三维数据点的径向距离逆量化后的值,rmin表示所有三维数据点在径向距离方向的量化前的最小值,rδ表示径向距离方向的量化步长,表示第i个三维数据点的径向距离量化后的值,θi表示第i个三维数据点的天顶角逆量化后的值,θmin表示三维数据点在天顶角方向的量化前的最小值,θδ表示天顶角方向的量化步长,表示第i个三维数据点的天顶角量化后的值,表示第i个三维数据点的方位角逆量化后的值,表示三维数据点在方位角方向的量化前的最小值,表示方位角方向的量化步长,表示第i个三维数据点的方位角量化后的值,round(x)表示round函数返回一个数值,该数值是按照指定的小数位数进行四舍五入运算的结果。

可选地,

所述初始块为球体的一部分。

可选地,

所述球体的中心为三维数据点采集设备的位置。

可选地,

所述三维数据点采集设备为激光雷达、光电雷达或激光扫描仪。

本实施例的装置,对应地可用于执行图7所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。

本发明实施例还提供一种编码器,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的程序,所述处理器执行所述程序时实现图2-图6任一所述的三维数据点编码方法。

本发明实施例还提供一种解码器,其特征在于,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的程序,所述处理器执行所述程序时实现图7所述的三维数据点解码方法。

一些示例中,上文中的三维数据点可以是测距装置所获取到的点云数据中的任意一个三维数据点。其中,该测距装置可以是激光雷达、激光测距设备等电子设备。在一种实施方式中,测距装置用于感测外部环境信息,例如,环境目标的距离信息、方位信息、反射强度信息、速度信息等。一个三维数据点可以包括测距装置所测到的外部环境信息中的至少一种。

一种实现方式中,测距装置可以通过测量测距装置和探测物之间光传播的时间,即光飞行时间(time-of-flight,tof),来探测探测物到测距装置的距离。或者,测距装置也可以通过其他技术来探测探测物到测距装置的距离,例如基于相位移动(phaseshift)测量的测距方法,或者基于频率移动(frequencyshift)测量的测距方法,在此不做限制。

为了便于理解,以下将结合图12所示的测距装置100对产生本文中提到的三维数据点的测距装置举例描述。

如图12所示,测距装置100可以包括发射电路110、接收电路120、采样电路130和运算电路140。

发射电路110可以发射光脉冲序列(例如激光脉冲序列)。接收电路120可以接收经过被探测物反射的光脉冲序列,并对该光脉冲序列进行光电转换,以得到电信号,再对电信号进行处理之后可以输出给采样电路130。采样电路130可以对电信号进行采样,以获取采样结果。运算电路140可以基于采样电路130的采样结果,以确定测距装置100与被探测物之间的距离。

可选地,该测距装置100还可以包括控制电路150,该控制电路150可以实现对其他电路的控制,例如,可以控制各个电路的工作时间和/或对各个电路进行参数设置等。

应理解,虽然图12示出的测距装置中包括一个发射电路、一个接收电路、一个采样电路和一个运算电路,用于出射一路光束进行探测,但是本申请实施例并不限于此,发射电路、接收电路、采样电路、运算电路中的任一种电路的数量也可以是至少两个,用于沿相同方向或分别沿不同方向出射至少两路光束;其中,该至少两束光路可以是同时出射,也可以是分别在不同时刻出射。一个示例中,该至少两个发射电路中的发光芯片封装在同一个模块中。例如,每个发射电路包括一个激光发射芯片,该至少两个发射电路中的激光发射芯片中的die封装到一起,容置在同一个封装空间中。

一些实现方式中,除了图12所示的电路,测距装置100还可以包括扫描模块160,用于将发射电路出射的至少一路激光脉冲序列改变传播方向出射。

其中,可以将包括发射电路110、接收电路120、采样电路130和运算电路140的模块,或者,包括发射电路110、接收电路120、采样电路130、运算电路140和控制电路150的模块称为测距模块,该测距模块150可以独立于其他模块,例如,扫描模块160。

测距装置中可以采用同轴光路,也即测距装置出射的光束和经反射回来的光束在测距装置内共用至少部分光路。例如,发射电路出射的至少一路激光脉冲序列经扫描模块改变传播方向出射后,经探测物反射回来的激光脉冲序列经过扫描模块后入射至接收电路。或者,测距装置也可以采用异轴光路,也即测距装置出射的光束和经反射回来的光束在测距装置内分别沿不同的光路传输。图13示出了本发明的测距装置采用同轴光路的一种实施例的示意图。

测距装置200包括测距模块201,测距模块210包括发射器203(可以包括上述的发射电路)、准直元件204、探测器205(可以包括上述的接收电路、采样电路和运算电路)和光路改变元件206。测距模块210用于发射光束,且接收回光,将回光转换为电信号。其中,发射器203可以用于发射光脉冲序列。在一个实施例中,发射器203可以发射激光脉冲序列。可选的,发射器203发射出的激光束为波长在可见光范围之外的窄带宽光束。准直元件204设置于发射器的出射光路上,用于准直从发射器203发出的光束,将发射器203发出的光束准直为平行光出射至扫描模块。准直元件还用于会聚经探测物反射的回光的至少一部分。该准直元件204可以是准直透镜或者是其他能够准直光束的元件。

在图13所示实施例中,通过光路改变元件206来将测距装置内的发射光路和接收光路在准直元件104之前合并,使得发射光路和接收光路可以共用同一个准直元件,使得光路更加紧凑。在其他的一些实现方式中,也可以是发射器103和探测器105分别使用各自的准直元件,将光路改变元件206设置在准直元件之后的光路上。

在图13所示实施例中,由于发射器103出射的光束的光束孔径较小,测距装置所接收到的回光的光束孔径较大,所以光路改变元件可以采用小面积的反射镜来将发射光路和接收光路合并。在其他的一些实现方式中,光路改变元件也可以采用带通孔的反射镜,其中该通孔用于透射发射器203的出射光,反射镜用于将回光反射至探测器205。这样可以减小采用小反射镜的情况中小反射镜的支架会对回光的遮挡。

在图13所示实施例中,光路改变元件偏离了准直元件204的光轴。在其他的一些实现方式中,光路改变元件也可以位于准直元件204的光轴上。

测距装置200还包括扫描模块202。扫描模块202放置于测距模块201的出射光路上,扫描模块102用于改变经准直元件204出射的准直光束219的传输方向并投射至外界环境,并将回光投射至准直元件204。回光经准直元件104汇聚到探测器105上。

在一个实施例中,扫描模块202可以包括至少一个光学元件,用于改变光束的传播路径,其中,该光学元件可以通过对光束进行反射、折射、衍射等等方式来改变光束传播路径。例如,扫描模块202包括透镜、反射镜、棱镜、振镜、光栅、液晶、光学相控阵(opticalphasedarray)或上述光学元件的任意组合。一个示例中,至少部分光学元件是运动的,例如通过驱动模块来驱动该至少部分光学元件进行运动,该运动的光学元件可以在不同时刻将光束反射、折射或衍射至不同的方向。在一些实施例中,扫描模块202的多个光学元件可以绕共同的轴209旋转或振动,每个旋转或振动的光学元件用于不断改变入射光束的传播方向。在一个实施例中,扫描模块202的多个光学元件可以以不同的转速旋转,或以不同的速度振动。在另一个实施例中,扫描模块202的至少部分光学元件可以以基本相同的转速旋转。在一些实施例中,扫描模块的多个光学元件也可以是绕不同的轴旋转。在一些实施例中,扫描模块的多个光学元件也可以是以相同的方向旋转,或以不同的方向旋转;或者沿相同的方向振动,或者沿不同的方向振动,在此不作限制。

在一个实施例中,扫描模块202包括第一光学元件214和与第一光学元件214连接的驱动器216,驱动器216用于驱动第一光学元件214绕转动轴209转动,使第一光学元件214改变准直光束219的方向。第一光学元件214将准直光束219投射至不同的方向。在一个实施例中,准直光束219经第一光学元件改变后的方向与转动轴109的夹角随着第一光学元件214的转动而变化。在一个实施例中,第一光学元件214包括相对的非平行的一对表面,准直光束219穿过该对表面。在一个实施例中,第一光学元件214包括厚度沿至少一个径向变化的棱镜。在一个实施例中,第一光学元件114包括楔角棱镜,对准直光束119进行折射。

在一个实施例中,扫描模块202还包括第二光学元件215,第二光学元件215绕转动轴209转动,第二光学元件215的转动速度与第一光学元件214的转动速度不同。第二光学元件215用于改变第一光学元件214投射的光束的方向。在一个实施例中,第二光学元件115与另一驱动器217连接,驱动器117驱动第二光学元件215转动。第一光学元件214和第二光学元件215可以由相同或不同的驱动器驱动,使第一光学元件214和第二光学元件215的转速和/或转向不同,从而将准直光束219投射至外界空间不同的方向,可以扫描较大的空间范围。在一个实施例中,控制器218控制驱动器216和217,分别驱动第一光学元件214和第二光学元件215。第一光学元件214和第二光学元件215的转速可以根据实际应用中预期扫描的区域和样式确定。驱动器216和217可以包括电机或其他驱动器。

在一个实施例中,第二光学元件115包括相对的非平行的一对表面,光束穿过该对表面。在一个实施例中,第二光学元件115包括厚度沿至少一个径向变化的棱镜。在一个实施例中,第二光学元件115包括楔角棱镜。

一个实施例中,扫描模块102还包括第三光学元件(图未示)和用于驱动第三光学元件运动的驱动器。可选地,该第三光学元件包括相对的非平行的一对表面,光束穿过该对表面。在一个实施例中,第三光学元件包括厚度沿至少一个径向变化的棱镜。在一个实施例中,第三光学元件包括楔角棱镜。第一、第二和第三光学元件中的至少两个光学元件以不同的转速和/或转向转动。

扫描模块202中的各光学元件旋转可以将光投射至不同的方向,例如方向211和213,如此对测距装置200周围的空间进行扫描。如图14所示,图13为测距装置200的一种扫描图案的示意图。可以理解的是,扫描模块内的光学元件的速度变化时,扫描图案也会随之变化。

当扫描模块202投射出的光211打到探测物201时,一部分光被探测物201沿与投射的光211相反的方向反射至测距装置200。探测物201反射的回光212经过扫描模块202后入射至准直元件204。

探测器205与发射器203放置于准直元件204的同一侧,探测器205用于将穿过准直元件204的至少部分回光转换为电信号。

一个实施例中,各光学元件上镀有增透膜。可选的,增透膜的厚度与发射器103发射出的光束的波长相等或接近,能够增加透射光束的强度。

一个实施例中,测距装置中位于光束传播路径上的一个元件表面上镀有滤光层,或者在光束传播路径上设置有滤光器,用于至少透射发射器所出射的光束所在波段,反射其他波段,以减少环境光给接收器带来的噪音。

在一些实施例中,发射器203可以包括激光二极管,通过激光二极管发射纳秒级别的激光脉冲。进一步地,可以确定激光脉冲接收时间,例如,通过探测电信号脉冲的上升沿时间和/或下降沿时间确定激光脉冲接收时间。如此,测距装置200可以利用脉冲接收时间信息和脉冲发出时间信息计算tof,从而确定探测物201到测距装置200的距离。

测距装置200探测到的距离和方位可以用于遥感、避障、测绘、建模、导航等。在一种实施方式中,本发明实施方式的测距装置可应用于移动平台,测距装置可安装在移动平台的平台本体。具有测距装置的移动平台可对外部环境进行测量,例如,测量移动平台与障碍物的距离用于避障等用途,和对外部环境进行二维或三维的测绘。在某些实施方式中,移动平台包括无人飞行器、汽车、遥控车、机器人、相机中的至少一种。当测距装置应用于无人飞行器时,平台本体为无人飞行器的机身。当测距装置应用于汽车时,平台本体为汽车的车身。该汽车可以是自动驾驶汽车或者半自动驾驶汽车,在此不做限制。当测距装置应用于遥控车时,平台本体为遥控车的车身。当测距装置应用于机器人时,平台本体为机器人。当测距装置应用于相机时,平台本体为相机本身。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1