一种基于TMC3点云编码器的颜色属性编码方法与流程

文档序号:16687782发布日期:2019-01-22 18:30阅读:298来源:国知局
一种基于TMC3点云编码器的颜色属性编码方法与流程

本发明涉及一种基于tmc3点云编码器的颜色属性编码方法,属于图像处理技术领域。



背景技术:

三维点云数据已经开始普及到各个领域,例如,虚拟/增强现实、机器人、地理信息系统、医学领域等。随着三维点云数据的发展和三维点云数据扫描设备(比如激光雷达,kinect体感相机)的基准度和速率的不断提升,人们可以准确地获取物体表面的大量点云数据,往往一个场景下的点云数据就可以包括几十万个点。数量如此庞大的点云数据也给计算机的存储和传输带来了挑战。因此,对三维点云数据的压缩也就成为一个热点问题。

对于三维点云数据来说,在压缩领域,目前主要处理它的位置信息(x,y,z)和颜色信息(r,g,b)。对于位置信息的压缩,一般是用基于八叉树的编码方式来减少空间冗余。对于颜色信息的压缩,则可以通过三维到二维的映射关系,先把点云的颜色属性映射到二维空间,然后用二维的图像压缩方式进行压缩,也可以直接在三维数据上通过dct变换,图变换等方式进行压缩。

近几年,为了促进三维点云数据压缩技术的标准化,mpeg(movingpicturesexpertsgroup)提出了基于点云库(pointcloudlibrary)的多帧点云编码器。之后,在2017年mpeg又提出了3种新的点云压缩方案,分别称为tmc1、tmc2、tmc3。其中,tmc3编码器通过对三维点云的位置信息进行八叉树编码;同时,根据八叉树编码后的位置信息对颜色信息进行预测,再通过与原始颜色信息进行做差的方式来编码颜色信息,从而达到很好的编码效果。

在颜色信息编码上,tmc3通过kd-tree首先找到每个点的k个临近点,通过计算当前点与k个临近点的颜色信息得到当前点的颜色预测值,随后把颜色预测值与真实值进行差分算数编码,进而完成对颜色信息的处理。通过对比试验发现,tmc3编码器在用基于八叉树的位置信息进行颜色预测的过程中,每次都是采用八叉树包围盒内位置坐标值最小的点作为预测起始点。由于属性信息是用差分编码进行,所以第一个预测点的选取对差分编码的性能尤为重要,即tmc3这种选取预测起始点的方式不是很有效。



技术实现要素:

针对现有技术中tmc3编码器存在的非最佳预测起始点的不足,本发明提供了一种基于tmc3点云编码器的颜色属性编码方法;

术语解释:

1、八叉树(octree):若不为空树的话,树中任一节点的子节点恰好只会有八个,或零个,也就是子节点不会有0与8以外的数目。

2、kd-tree,k-d树(k-dimensional树的简称),是一种分割k维数据空间的数据结构。主要应用于多维空间关键数据的搜索(如:范围搜索和最近邻搜索)。

本发明的技术方案为:

一种基于tmc3点云编码器的颜色属性编码方法,运行于所述tmc3点云编码器,所述tmc3点云编码器包括编码端与解码端,所述编码端连接所述解码端,包括步骤如下:

a、在编码端执行步骤(1)至(7),包括:

(1)量化点云的位置信息;

(2)去重合点,将重复的点删除;由于不同的位置信息在量化后可能会对应相同的量化结果。因此,需要去重操作,将重复的点删除。

(3)对量化去重后的点云的位置信息进行八叉树位置信息编码;

(4)确定量化后颜色信息;

(5)确定质心点,找到步骤(3)经过八叉树位置信息编码后的点云的质心点pcentroid;注意该质心位置不一定存在数据点。在经过八叉树编码后的点云中,通过kd-tree搜索找到距离质心点pcentroid最近的点pc,并把点pc作为lod生成过程中的初始预测点,质心点pcentroid的计算公式如式(ⅰ)所示:

式(ⅰ)中,为量化后(或原始)点的位置信息,n为量化后的点云个数(或原始点云个数);

(6)生成lod(levelofdetail,细节层);lod生成的过程其实是点云根据欧式距离的一次重新排序过程。在lod生成的过程中,把点pc作为lod生成过程中的初始点,在lod生成过程中,每个层(level)通过使用者设定的不同大小的点到点的空间距离dl重新排序点,l=0…l-1,同时必须满足dl+1<dl并且dl-1=0;

(7)基于lod的颜色信息预测与差值编码,得到压缩后的码流;

b、在解码端执行步骤(8)至(12),包括:

(8)解析码流,并解码出经过八叉树编码的位置信息;

(9)计算整个点云的质心pcentroid_res,如式(ⅱ)所示:

式(ⅱ)中,m为解码出的点云总数,为经过八叉树结构解码出的每个点的位置信息;并利用kd-tree找到解码出的点云中距离计算得到的质心pcentroid_res最近的那个点pc;

(10)生成lod;每个层(level)通过使用者设定的不同大小的点到点的空间距离dl重新排序点,l=0…l-1,同时必须满足dl+1<dl并且dl-1=0;

(11)生成颜色信息

(12)解析码流,在编码端只有第一个点的颜色信息是被完全编码的,其他点都编码的颜色信息的差值。所以,在解码的时候,先解出第一个点的颜色信息,根据步骤(2)lod生成过程的预测,根据解码出的颜色差值,按照lod的顺序渐进式地解码出所有点的颜色信息,从而得到压缩后的点云,解码结束。

进一步优选的,所述步骤(1)中,量化点云的位置信息,包括:

a、导入点云数据,同时找到整个点云数据中位置信息(x,y,z)三个分量最小的分量,组成最小点:xmin=(min(xi),min(yi),min(zi)),i=0…n-1,(xi,yi,zi)表示第i个点的位置信息,n是点的个数;

b、被量化的点云数据由式(ⅲ)得到:

式(ⅲ)中,s表示量化步长,xi表示每个要被量化的点云数据,xmin是步骤①中找到的全局最小点,表示被量化后的点。

进一步优选的,所述步骤(3)中,八叉树位置信息编码,包括:

c、根据三维坐标系建立一个立方体包围盒b用来包住整个点云数据,立方体包围盒b的最小值为(0,0,0),最大值(2n,2n,2n),3是满足式(ⅳ)的最小整数值,

式(ⅳ)中,i=0…n-1;是指yi被量化后的点,是指zi被量化后的点;

d、根据建立好的立方体包围盒b,用八叉树结构进行空间划分,每划分一次,每个立方体被划分成8个小立方体,同时,用1记录有数据点小立方体,用0记录空的小立方体,有数据点小立方体被继续划分,直至划分到每个小立方体内最多只有一个点时,停止划分。

进一步优选的,所述步骤(4)中,确定量化后颜色信息,包括:

e、由于位置信息量化后,无法确定量化后的位置信息对应的原始颜色信息,因此需要进行颜色的确定,并使其与量化前的误差最小。定义原始点云数据为xi,i=0…n-1,量化后的点云数据为i1=0…nrec-1,n表示原始点的数量,nrec表示量化后点的个数;

f、对于量化后的点云数据为通过对原始点云建立kd-tree,把作为kd-tree的查询点找到在原始点云中距离它最近的点其颜色属性是

g、对量化后的点云数据建立kd-tree,把原始点云中个每个点xi作为查询点,找到距离查询点最近的量化后的点,这时找到的点的个数可能是0个,可能1个,也可能是多个,找到的点的个数用集合来表示:h(i)是集合中点的数目,h∈{1,…,h(i)},是找到的最近点;

h、如果集合为空,那么量化后点云的颜色属性就是如果集合非空,那么根据式(ⅴ)计算出一个虚的颜色属性值

式(ⅴ)中,是集合中点的颜色属性值;

最终量化后点的颜色信息由式(ⅵ)得出:

式(ⅵ)中,权重值w通过把上式中的带入最小损失函数c(i)并使c(i)的值最小而得到,c(i)的计算公式如式(ⅶ)所示:

进一步优选的,所述步骤(6)中,生成lod,包括:

i、把所有的点标记为未遍历的点,定义一个集合v,该集合内存储被遍历过的点,在算法开始的时候,v是空集;

j、把点pc作为v中的初始点,在之后的遍历中,如果当前点被遍历,并且当前点到集合v中的点的距离大于当前level设定的dl,那么,该点加入到集合v中,以后就不再遍历该点;否则,就不加入集合中,等待下一个层的遍历;

k、一直执行步骤j,直至所有点都被加入到集合v中。

进一步优选的,所述步骤(7)中,基于lod的颜色信息预测与差值编码,包括:

l、根据lod的顺序进行颜色信息预测,编码和解码端都是渐进式的,只有当前已编码过的点才能被用来预测。假设当前需要预测颜色的点是预测过程根据在lod的位置,在已经编码的lod中用欧氏距离找到的k个最近邻的集合预测的颜色信息如式(ⅷ)所示:

式(ⅷ)中,为每个近邻的颜色属性值,δj为每个近邻到的距离;

m、对步骤(4)中量化后点的颜色信息与预测出来的颜色的差值进行编码;最终编码的颜色差值信号为:9i为步骤(4)得到的颜色属性,为预测的颜色信息;

n、把得到的颜色差值进行算术编码。

进一步优选的,所述步骤(10)中,生成lod,包括:

①把所有的点标记为未遍历的点,定义一个集合v,该集合内存储被遍历过的点,在算法开始的时候,v是空集;

②把pc作为v中的初始点,在之后的遍历中,如果当前点被遍历,并且当前点到集合v中的点的距离大于当前level设定的dl,那么,该点就加入到集合v中,以后就不再遍历该点;否则,就不加入集合中,等待下一个层(level)的遍历;

③一直执行步骤②,直至所有点都被加入到集合v中。

本发明的有益效果为:

本发明利用质心的色度信息更有可能接近于整体的颜色信息的特性,通过把点云质心当做tmc3编码器初始预测点,在点云失真相同的情况下,获得了更低的编码码率,使得解码端可以在更小的存储空间下得到与原始tmc3编码器同样的解码效果。

附图说明

图1是本发明在编码端的流程示意图;

图2是本发明在解码端的流程示意图;

图3是质心提取示意图;

图4(a)是本发明点云序列andrew进行编码得到的与tmc3原始编码器率失真曲线比较示意图;

图4(b)是本发明对点云序列soldier_vox10_0690进行编码得到的与tmc3原始编码器率失真曲线比较示意图。

具体实施方式

下面结合说明书附图和实施例对本发明作进一步限定,但不限于此。

实施例

一种基于tmc3点云编码器的颜色属性编码方法,运行于所述tmc3点云编码器,所述tmc3点云编码器包括编码端与解码端,所述编码端连接所述解码端,包括步骤如下:

a、在编码端执行步骤(1)至(7),如图1所示,包括:

(1)量化点云的位置信息;,包括:

a、导入点云数据,同时找到整个点云数据中位置信息(x,y,z)三个分量最小的分量,组成最小点:xmin=(min(xi),min(yi),min(zi)),i=0…n-1,(xi,yi,zi)表示第i个点的位置信息,n是点的个数;

b、被量化的点云数据由式(ⅲ)得到:

式(ⅲ)中,s表示量化步长,xi表示每个要被量化的点云数据,xmin是步骤①中找到的全局最小点,表示被量化后的点。

(2)去重合点,将重复的点删除;由于不同的位置信息在量化后可能会对应相同的量化结果。因此,需要去重操作,将重复的点删除。

(3)对量化去重后的点云的位置信息进行八叉树位置信息编码;包括:

c、根据三维坐标系建立一个立方体包围盒b用来包住整个点云数据,立方体包围盒b的最小值为(0,0,0),最大值(2n,2n,2n),3是满足式(ⅳ)的最小整数值,

式(ⅳ)中,i=0…n-1;是指yi被量化后的点,是指zi被量化后的点;

d、根据建立好的立方体包围盒b,用八叉树结构进行空间划分,每划分一次,每个立方体被划分成8个小立方体,同时,用1记录有数据点小立方体,用0记录空的小立方体,有数据点小立方体被继续划分,直至划分到每个小立方体内最多只有一个点时,停止划分。

(4)确定量化后颜色信息;包括:

e、由于位置信息量化后,无法确定量化后的位置信息对应的原始颜色信息,因此需要进行颜色的确定,并使其与量化前的误差最小。定义原始点云数据为xi,i=0…n-1,量化后的点云数据为i1=0…nrec-1,n表示原始点的数量,nrec表示量化后点的个数;

f、对于量化后的点云数据为通过对原始点云建立kd-tree,把作为kd-tree的查询点找到在原始点云中距离它最近的点其颜色属性是

g、对量化后的点云数据建立kd-tree,把原始点云中个每个点xi作为查询点,找到距离查询点最近的量化后的点,这时找到的点的个数可能是0个,可能1个,也可能是多个,找到的点的个数用集合来表示:h(i)是集合中点的数目,h∈{1,…,h(i)},是找到的最近点;

h、如果集合为空,那么量化后点云的颜色属性就是如果集合非空,那么根据式(ⅴ)计算出一个虚的颜色属性值

式(ⅴ)中,是集合中点的颜色属性值;

最终量化后点的颜色信息由式(ⅵ)得出:

式(ⅵ)中,权重值w通过把上式中的带入最小损失函数c(i)并使c(i)的值最小而得到,c(i)的计算公式如式(ⅶ)所示:

(5)确定质心点,如图3所示,找到步骤(3)经过八叉树位置信息编码后的点云的质心点pcentroid;注意该质心位置不一定存在数据点。在经过八叉树编码后的点云中,通过kd-tree搜索找到距离质心点pcentroid最近的点pc,并把点pc作为lod生成过程中的初始预测点,质心点pcentroid的计算公式如式(ⅰ)所示:

式(ⅰ)中,为量化后(或原始)点的位置信息,n为量化后的点云个数(或原始点云个数);

(6)生成lod(levelofdetail,细节层);lod生成的过程其实是点云根据欧式距离的一次重新排序过程。在lod生成的过程中,把点pc作为lod生成过程中的初始点,在lod生成过程中,每个层(level)通过使用者设定的不同大小的点到点的空间距离dl重新排序点,l=0…l-1,同时必须满足dl+1<dl并且dl-1=0;包括:

i、把所有的点标记为未遍历的点,定义一个集合v,该集合内存储被遍历过的点,在算法开始的时候,v是空集;

j、把点pc作为v中的初始点,在之后的遍历中,如果当前点被遍历,并且当前点到集合v中的点的距离大于当前level设定的dl,那么,该点加入到集合v中,以后就不再遍历该点;否则,就不加入集合中,等待下一个层的遍历;

k、一直执行步骤j,直至所有点都被加入到集合v中。

(7)基于lod的颜色信息预测与差值编码,得到压缩后的码流;包括:

l、根据lod的顺序进行颜色信息预测,编码和解码端都是渐进式的,只有当前已编码过的点才能被用来预测。假设当前需要预测颜色的点是预测过程根据在lod的位置,在已经编码的lod中用欧氏距离找到的k个最近邻的集合预测的颜色信息如式(ⅷ)所示:

式(ⅷ)中,为每个近邻的颜色属性值,δj为每个近邻到的距离;

m、对步骤(4)中量化后点的颜色信息与预测出来的颜色的差值进行编码;最终编码的颜色差值信号为:9i为步骤(4)得到的颜色属性,为预测的颜色信息;

n、把得到的颜色差值进行算术编码。

b、在解码端执行步骤(8)至(12),如图2所示,包括:

(8)解析码流,并解码出经过八叉树编码的位置信息;

(9)计算整个点云的质心pcentroid_res,如式(ⅱ)所示:

式(ⅱ)中,m为解码出的点云总数,为经过八叉树结构解码出的每个点的位置信息;并利用kd-tree找到解码出的点云中距离计算得到的质心pcentroid_res最近的那个点pc;

(10)生成lod;每个层(level)通过使用者设定的不同大小的点到点的空间距离dl重新排序点,l=0…l-1,同时必须满足dl+1<dl并且dl-1=0;包括:

①把所有的点标记为未遍历的点,定义一个集合v,该集合内存储被遍历过的点,在算法开始的时候,v是空集;

②把pc作为v中的初始点,在之后的遍历中,如果当前点被遍历,并且当前点到集合v中的点的距离大于当前level设定的dl,那么,该点就加入到集合v中,以后就不再遍历该点;否则,就不加入集合中,等待下一个层(level)的遍历;

③一直执行步骤②,直至所有点都被加入到集合v中。

(11)生成颜色信息

(12)解析码流,在编码端只有第一个点的颜色信息是被完全编码的,其他点都编码的颜色信息的差值。所以,在解码的时候,先解出第一个点的颜色信息,根据步骤(2)lod生成过程的预测,根据解码出的颜色差值,按照lod的顺序渐进式地解码出所有点的颜色信息,从而得到压缩后的点云,解码结束。

本实施例还测试了在不同的量化参数的条件下,采用本发明编码后颜色信息码率和重建视频的客观质量psnr。4(a)、图4(b)比较了本发明和原始tmc3编码器对颜色信息编码后的率失真曲线。图4(a)是点云序列andrew进行编码的实验结果,图4(b)是对点云序列soldier_vox10_0690进行编码的实验结果。如图4(a)、图4(b)所示,对点云序列andrew而言,编码码率平均下降1.80%,对点云序列soldier_vox10_0690而言,编码码率平均下降0.63%。由图4(a)、图4(b)可见,与原始tmc3编码器相比,在重建视频的客观质量相同的条件下,本发明的编码码率更低,说明本发明提高了对点云序列的编码效率。

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