一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于块运动估计和运动补偿的点云几何帧间预测方法与流程

2022-02-25 22:12:21 来源:中国专利 TAG:


1.本发明属于点云数据处理技术领域,具体涉及一种基于块运动估计和运动补偿的点云几何帧间预测方法。


背景技术:

2.点云帧间预测一直是点云编解码领域中的技术难点,由于点云不具有固定的空间结构,因此难以像传统视频编解码一样直观地获得规则的块结构。且点云空间分布上的稀疏性和灵活性,也为基于块划分的运动估计和运动补偿带来较大难度。
3.目前现有的点云帧间预测框架主要包括一下几种:
4.基于占用码异或操作的预测方法:该方法将当前帧和预测帧占用码进行异或操作后得到两帧几何信息残差,再对残差进行编码,但这种方法无法捕捉点云对象时序上的运动信息,当物体运动幅度较大时,得到的占用码残差也较大。
5.基于映射的预测方法:该方法先将三维点云映射到多角度的二维平面上,得到多张二维图像,再使用已有的视频编码工具进行压缩,此种方法较依赖于映射方式的优劣,且此类基于映射的压缩方式主要针对三维人物物体表面扫描类数据集,针对激光雷达扫描地图这类稀疏数据集,帧间预测效果有限。
6.基于块划分的帧间预测方法:该方法首先直接对点云进行块划分,再从参考帧中搜索误差最小的匹配块作为预测块,利用预测块提高当前块编码效率。针对预测块的使用,目前有两种方式,一种为直接用预测块替代当前块,并计算预测残差,最后编码得到的残差系数。但由于点云空间分布的稀疏性,往往得到预测块的残差系数仍然较大,若选择不编码残差以节省码字,则无法实现无损压缩。第二种为利用预测块的几何占用信息,作为上下文提升当前块熵编码效率,目前mpeg点云专题组提出的探索平台em13中即为此类预测方式,但其仅支持对立方体状包围盒进行八叉树划分,因此设定的包围盒范围过大,导致引入过多空块,同时存在运动估计复杂度过高等缺陷。


技术实现要素:

7.为了克服上述现有技术的不足,在考虑计算复杂度的条件下,进一步改善点云属性的压缩性能,本发明提供一种基于块运动估计和运动补偿的点云几何帧间预测方法,结合点云四叉树和二叉树划分技术,支持对非立方体包围盒进行块划分,大大减少了空块造成的码字浪费。同时结合kd树和迭代最近点算法进行块匹配计算,在保证压缩率的条件下,大幅降低了运动估计的计算时间复杂度;此外本发明简化了帧间上下文模型,通过与帧内上下文模型的融合,在不增加上下文数量的情况下,对熵编码效率有显著提高。
8.本发明的一种基于块运动估计和运动补偿的点云几何帧间预测方法,包括如下步骤:1) 为了保证待编码帧和参考帧的节点具有一一对应的关系,需为待编码帧和参考帧设定相同的包围盒作为树划分的根节点。确定包围盒后,对待编码帧和参考帧同步进行树划分;2)设定预测起始单元ptu的大小ptu size,若当前节点尺寸等于设定预测块大小时,则
认为当前块为预测单元,针对当前节点在参考帧中的特定窗口范围内查找匹配块,误差最小的匹配块即为得到的预测块;3)利用预测块的占用信息,作为上下文帮助编码当前块的占用信息,提高熵编码效率。
9.优选的,在上述云几何帧间预测方法中,步骤1)中参考帧和当前帧包围盒的计算方式,有且不限于以下两种方案:第一种方式为统计整个序列所有帧,计算可包含所有帧的最小包围盒作为当前整个序列统一的包围盒;第二种方式为仅在参考帧和当前帧中计算包围盒大小,取最大包围盒尺寸作为当前待帧编码过程中树划分的根节点。
10.优选的,在上述云几何帧间预测方法中,步骤1)中树划分的操作,根据不同的包围盒特征,可结合八叉树、四叉树、二叉树等划分方式,以适应非立方体的包围盒,减少空块占用比例。
11.在上述云几何帧间预测方法中,步骤2)中,若树划分为八叉树模式,则当前节点为立方体,判断其边长等于ptu size即可;若树划分为四叉树或二叉树模式,则当前节点为长方体,判断其最短边长等于ptu size,即认为当前块为预测起始单元。
12.优选的,在上述云几何帧间预测方法中,步骤2)中,对于一个预测单元pu,我们定义一个搜索窗口搜索窗口w,窗口尺寸可根据数据集的不同分布特点和不同码率点设置,若点云分布较为离散,则设置较大窗口范围;若点云较为紧密,则可设置较小窗口尺寸。
13.优选的,在上述云几何帧间预测方法中,步骤2)中,匹配块的查找过程为,首先在得到的窗口局部参考点云中,通过icp算法找到最近似匹配块,即令拉格朗日代价最小,此处 icp算法做了相应简化,仅考虑平移变换,不考虑旋转变换,icp后得到的平移向量即为运动矢量。拉格朗日代价计算公式如下:
14.cost(mv)=dist(q(w,mv),b) λest(mv)
15.其中b为当前待编码块,w为搜索窗口,q为b经过运动矢量mv平移后找到的最近邻点集,est()估计编码mv所需码字,通过计算指数哥伦布编码所需码字得到,dist为块匹配损失函数,公式如下:
[0016][0017]
最终编码代价最小的mv对应的局部点集即为得到的最优预测块。
[0018]
优选的,在上述云几何帧间预测方法中,步骤2)中,上述查找匹配块时涉及到待编码块中每个点在窗口内的最近邻点的查找,通过建立kd树以加速此查找过程。
[0019]
优选的,在上述云几何帧间预测方法中,步骤3)中,对于上述过程中得到的预测块,我们将其与当前待编码块同步进行子块划分,分别得到预测块和当前块的占用码信息,对于每个子节点,其帧间预测上下文有2种:1)预测块中对应位置子节点被占用,2)以及预测块中对应位置子节点未被占用。对于每个子节点,在原始帧内上下文的基础上,额外增加一个上下文位,用于表示预测块中的对应位置是否被占用。
[0020]
优选的,在上述云几何帧间预测方法中,步骤3)中,若对应预测子节点被占用,则将其认为是强预测,预测置信度与帧内前7个邻居子节点均被占用相同,并将对应帧内上下文模式[1]中莫顿序前7个子节点占用码均置为1,若对应预测子节点未被占用,则保留原始帧内上下文信息。
[0021]
优选的,在上述云几何帧间预测方法中,步骤3)中,若对应预测子节点被占用,则
将其认为是强预测,预测置信度与帧内前3个邻居子节点均被占用相同,并将对应帧内上下文模式[1]中莫顿序前3个子节点占用码均置为1,若对应预测子节点未被占用,则保留原始帧内上下文信息。
[0022]
与现有技术相比,本发明主要有以下几点优势:
[0023]
(一)针对帧间预测,可支持非立方体的点云包围盒,以进一步降低空块的空间占比,减少码字浪费。
[0024]
(二)使用icp进行运动估计,使mv不局限于固定的搜索方向,可更精确的查找到最优匹配块,同时避免了复杂的运动矢量搜索过程。
[0025]
(三)帧间上下文方式二和三不会增加总体上下文数量,不会对硬件的实现带来额外负担。
附图说明
[0026]
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍。
[0027]
图1是本发明的基于块运动估计和运动补偿的点云几何帧间预测方法的帧间预测编码流程图。
[0028]
图2是本发明的基于块运动估计和运动补偿的点云几何帧间预测方法与现有方法的在压缩性能上的对比结果。
具体实施方式
[0029]
下面结合附图,通过实施例进一步描述本发明,但不以任何方式限制本发明的范围。
[0030]
本发明的基于块划分的点云几何帧间预测方法,利用块运动估计捕捉点云时序运动信息,并提高点云几何信息压缩性能;针对三维点云几何信息压缩,针对点云数据,利用前面已编码帧的空间占用信息,预测当前待编码块的几何占用信息,并作为上下文提高占用码熵编码效率,以提高点云几何信息压缩性能,方法包括如下步骤:
[0031]
1)点云输入:
[0032]
输入待编码帧的几何信息和作为参考帧的以编码帧。
[0033]
2)包围盒计算:
[0034]
为了保证待编码帧和参考帧的节点具有一一对应的关系,需为待编码帧和参考帧设定相同的包围盒作为树划分的根节点。确定包围盒后,对待编码帧和参考帧同步进行树划分。其中,参考帧和待编码帧的包围盒的计算方式,有且不限于以下两种方案:第一种方式为统计整个序列所有帧,计算可包含所有帧的最大包围盒尺寸作为当前整个序列统一的包围盒;第二种方式为仅在参考帧和当前帧中计算包围盒大小,取最大包围盒尺寸作为当前待帧编码过程中树划分的根节点。
[0035]
3)点云树划分:
[0036]
对得到的点云包围盒空间进行树划分,根据包围盒的不同形状,可结合使用八叉树、四叉树以及二叉树等树划分模式对点云进行空间分解,得到若干编码块。
[0037]
4)预测单元划分:
[0038]
引入类似于视频编码中预测块的概念,我们定义ptu(prediction tree unit)为起始预测块。一个ptu可继续通过八叉树划分为多个pu(prediction unit),根据编码代价决定是否进行进一步划分,划分后可得到pu树结构。pu即为预测基本单元,每个pu会计算一个运动矢量 mv,用于查找参考帧中最匹配的预测块。
[0039]
在步骤4)中,定义ptu尺寸为ptu_size,先对当前点云进行树划分,若节点最小边长等于ptu_size,则将当前节点视为ptu。ptu可通过八叉树划分得到pu树和多个pu,pu 树包含两个标志信息,split flags用于表示pu树每层节点是否进行进一步划分,若继续进行划分,occupied flags用于表示划分出的子节点的占用信息。每个pu会计算一个运动矢量mv,对于得到的pu树和mv进行编码,以使解码器也能够生成该预测块,并以和编码器相同的方式驱动算术熵编码器。
[0040]
5)运动估计和运动补偿:
[0041]
对于一个pu,我们在参考帧中定义一个搜索窗口w,在搜索窗口范围内,通过icp算法找到与当前带编码节点最近似,即使拉格朗日代价最小的匹配块,并得到对应的mv。最终代价最小的mv映射的局部点集即为最优预测块,若没有对应的运动估计和运动补偿出的预测块,则直接将参考帧中对应位置的节点作为预测块。
[0042]
在述步骤5)中,定义的窗口尺寸可根据数据集的不同分布特点和不同码率点设置,若点云分布较为离散,则设置较大窗口范围;若点云较为紧密,则可设置较小窗口尺寸。
[0043]
步骤5)中,icp算法做了相应简化,仅考虑平移变换,不考虑旋转变换,icp后得到的平移向量即为运动矢量。拉格朗日代价计算公式如下:
[0044]
cost(mv)=dist(q(w,mv),b) λest(mv)
ꢀꢀꢀꢀꢀꢀꢀ
(式1)
[0045]
其中b为当前待编码块,w为搜索窗口,q为b经过mv平移后找到的最近邻点集,est() 估计编码mv所需码字,通过计算指数哥伦布编码所需码字得到,dist为块匹配损失函数,公式如下:
[0046][0047]
同时,查找匹配块时涉及到待编码块中每个点在窗口内的最近邻点的查找,本发明通过建立kd树以加速此查找过程。
[0048]
6)基于帧间预测块的上下文熵编码
[0049]
利用步骤5)中得到的预测块的占用信息作为上下文,帮助编码当前节点的占用信息。本方案基于
[1]
中的点云帧内上下文熵编码工具,在其中添加帧间上下文信息,帮助进一步提高熵编码效率。
[0050]
在步骤6)中,对于步骤5)中得到的预测块,我们将其与当前待编码节点同步进行八叉树划分分别得到预测块和当前块的占用码信息,对于每个子节点,其帧间预测上下文情况有 2种:1)预测块中对应位置子节点被占用,2)以及预测块中对应位置子节点未被占用。从下述三种方式中选择一种来实现帧间上下文:第一种方式为对于每个子节点,在原始帧内上下文的基础上,额外增加一个上下文位,用于表示预测块中的对应位置是否被占用。第二种方式为若对应预测子节点被占用,则将其认为是强预测,预测置信度与帧内前7个邻居子节点均被占用相同,并将对应帧内上下文模式[1]中莫顿序前7个子节点占用码均置为1,若对应预测子节点未被占用,则保留原始帧内上下文信息。第三种方式为若对应预测子
节点被占用,则将其认为是强预测,预测置信度与帧内前3个邻居子节点均被占用相同,并将对应帧内上下文模式[1]中莫顿序前3个子节点占用码均置为1,若对应预测子节点未被占用,则保留原始帧内上下文信息。
[0051]
图1是本发明方法的流程框图,结合图1对本发明提供的基于块划分的点云几何帧间预测方法进行说明,本发明方法针对点云数据,利用前面已编码帧的空间占用信息,预测当前待编码块的几何占用信息,并作为上下文提高占用码熵编码效率,以提高点云几何信息压缩性能。
[0052]
如图2所示,以下针对avs点云压缩工作组中的官方点云数据集ford_01_avs_1mm序列,采用本发明方法进行点云几何信息无损压缩,具体实施步骤为:
[0053]
1.计算包围盒以作为空间八叉树划分根节点:
[0054]
此处以第一种包围盒计算方式为例,首先遍历整个序列,统计能够包含所有帧的最小包围盒,包围盒可由起点三维坐标和长宽高边长两组信息确定,以本序列为例,对应的包围盒信息为:起点xyz坐标值为(-115100,-115025,-44140),边长为(230239,230316,48208)。对于序列中的所有帧,树划分均以此包围盒作为根节点。
[0055]
2.以第一帧作为参考帧,编码第二帧为例,第一帧由于没有前向已编码帧,故采用全帧内编码。编码第二帧时,输入重构后的第一帧作为参考帧,以待编码帧为基准,对两帧点云空间进行同步的树划分操作,即可得到两个相同的树结构,每个树节点对应一个空间块区域,根据八叉树、四叉树或者二叉树划分模式,一个空间块可进一步分割为八个、四个或者两个子块空间,并用不同长度的占用码标识对应子块中是否有点,每层只对有点的节点进行进一步划分。
[0056]
3.设置ptu_size为4096,对于树划分出的子节点,若当前待编码节点最小边长大于4096,则直接将参考帧中对应位置的节点作为预测块。若点前节点最小边长等于4096,即将其认为预测起始单元,在参考帧中通过该运动估计查找误差最小的预测块。
[0057]
4.设置窗口大小ptu_size 2*512,即对于当前ptu的范围,在三个坐标方向上前后分别拓展512的长度。ptu可继续通过八叉树划分得到一个pu树结构和对应的多个pu,ptu 也可视为一个尺寸较大的pu,pu树包含两个标志信息,split flags用于表示pu树每层节点是否进行进一步划分,若继续进行划分,occupied flags用于表示划分出的子节点的占用信息。对于每个pu,首先计算其不做进一步划分时的编码代价,代价计算公式如下:
[0058]
cost(mv)=dist(q(w,mv),b) λest(mv)
[0059]
其中b为当前待编码块,w为搜索窗口,mv为当前节点在搜索窗口范围内,通过迭代最近点算法得到的最近似匹配块对应的运动矢量,q为b经过mv平移后找到的最近邻点集, est()估计编码mv所需码字,通过计算指数哥伦布编码所需码字得到,dist为块匹配损失函数,公式如下:
[0060][0061]
接着计算当前pu继续划分为8个子pu的编码代价,总编码代价由每个pu的代价累加得到:
[0062][0063]
通过比较cost(mv)和cost(pu tree)决定当前pu是否进行进一步划分,pu树的最大深度设置为2层。通过运动估计后,每个pu即可得到一个mv和对应的预测块,再进行运动补偿,即用该预测块替代掉参考帧中对应位置的节点,并编码相应的运动矢量和pu树结构信息,以使解码端也能生成相同的预测块。
[0064]
5.对于一个待编码pu,通过步骤3或步骤4得到预测块后,对预测块和pu进行进一步树划分,可得到对应的预测占用码,作为上下文帮助编码当前pu的占用信息。对于pu划分出的子节点,帧间预测上下文情况有2种:1)预测块中对应位置子节点被占用,2)以及预测块中对应位置子节点未被占用。从下述三种方式中选择一种来实现帧间上下文:第一种方式为对于每个子节点,在原始帧内上下文的基础上,额外增加一个上下文位,用于表示预测块中的对应位置是否被占用。第二种方式为若对应预测子节点被占用,则将其认为是强预测,预测置信度与帧内前7个邻居子节点均被占用相同,并将对应帧内上下文模式[1]中莫顿序前 7个子节点占用码均置为1,若对应预测子节点未被占用,则保留原始帧内上下文信息。第三种方式为若对应预测子节点被占用,则将其认为是强预测,预测置信度与帧内前3个邻居子节点均被占用相同,并将对应帧内上下文模式[1]中莫顿序前3个子节点占用码均置为1,若对应预测子节点未被占用,则保留原始帧内上下文信息。
[0065]
6.重复步骤2-5,即可得到当前帧空间占用码信息码流,以及运动矢量和pu树码流,即可完成对点云几何信息的编码。
[0066]
为了验证本发明的几何帧间预测压缩方法的效果,我们对上述ford_01_avs_1mm序列的前600帧进行量化步长为512的有损几何编码,除了第一帧使用全帧内预测,后续帧均使用帧间加帧内的预测模式,帧间上下文使用第2种方式,在压缩性能上与现有方法对比结果如图2所示。
[0067]
从图2可以看出,在相同的测试条件下,结合本发明的基于块划分的帧间预测工具后,在测试的点云多帧序列上,产生了稳定的性能增益。通过利用点云时序上的相关性,减少编码信息冗余,在各个码率点下,点云几何的压缩性能均得到改善。
[0068]
本发明的基于块运动估计和运动补偿的点云几何帧间预测方法,可用于实现点云的几何压缩。该方法首先对计算点云的包围盒信息,再进行八叉树或四叉树以及二叉树划分,当划分子节点尺寸达到设定的预测单元要求,则针对当前节点在参考帧中查找误差较小的对应预测块,最后利用预测块的几何占用信息,帮助提升当前节点的占用信息熵编码效率,
[0069]
需要注意的是,公布实施例的目的在于帮助进一步理解本发明,但是本领域的技术人员可以理解:在不脱离本发明及所附权利要求的精神和范围内,各种替换和修改都是可能的。因此,本发明不应局限于实施例所公开的内容,本发明要求保护的范围以权利要求书界定的范围为准。
[0070]
参考文献
[0071]
[1]avs点云组会议提案:ee11基于上下文的点云几何压缩,m5310,jun.2020。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献