一种用于实时体积视频流传输的压缩方法

文档序号:33016243发布日期:2023-01-20 15:56阅读:38来源:国知局
一种用于实时体积视频流传输的压缩方法

1.本发明涉及计算机视频编码领域,尤其是一种用于实时体积视频流传输的压缩方法。


背景技术:

2.在虚拟现实与增强现实(vr/ar)的应用中,由点云视频帧构成的体积视频具有广泛的发展前景。体积视频因为允许用户以六自由度方式进行观看,所以可以为用户提供沉浸式的体验。体积视频的每一帧都是由3d点云构成的,点云中的每个点一般包含三维坐标《x,y,z》、rgb颜色与其他可选的属性。为了获得足够的真实性,体积视频通常要满足至少30fps的帧率和每一帧包含上百万点的条件,因此传输体积视频需要以gbps为单位的带宽,大大超出目前网络的上限。
3.为了传输体积视频,需要对其进行编码压缩。目前的主流方案分为两个类型,一种是二维投影压缩方案,另一种是三维空间树结构压缩方案,但是这两种方案都存在一定的问题。二维压缩方案需要将点云投影形成二维图像,通过现存的二维编码器进行编解码,最后还需要将二维图像重建为三维点云。这种方案虽然具有较高的压缩率,但是投影与重建的过程复杂度很高,运算时间较长,不能满足实时传输的需求,并且由于技术原因,不能根据用户视角的变化提前将视锥外与被遮挡的点云去除,造成资源的浪费。三维压缩方案使用八叉树等空间结构对点云进行压缩,压缩率较低,得到的视频流不能满足当前商业互联网带宽的限制。所以说,目前仍不存在一种方案可以在实时流传输的场景之下使编码过后的体积视频流码率满足商用互联网带宽需求,同时具有自适应用户视锥裁剪功能。


技术实现要素:

4.为了克服现有技术中存在的上述问题,本发明提出一种用于实时体积视频流传输的压缩方法。
5.本发明解决其技术问题所采用的技术方案是:一种用于实时体积视频流传输的压缩方法,包括如下步骤:
6.步骤1,聚类分割与动作补偿阶段:对参考帧聚类分割,与预测帧做点云注册的运动补偿,得到点云片组;
7.步骤2,共同点云片生成阶段:对步骤1形成的点云片组,生成共同点云片,并进行颜色插值和颜色冗余去除;
8.步骤3,压缩编码阶段:对步骤2生成的共同点云片,进行不可见点云片去除,剩余的数据进行压缩,形成体积视频码流;
9.步骤4,并行解码阶段:客户端对步骤3产生的体积视频码流进行解码,使用cpu多线程技术加速解码过程。
10.上述的一种用于实时体积视频流传输的压缩方法,所述步骤1具体包括:
11.步骤1.1,将给定的体积视频以固定的长度分组,每一组称为一个gop,每个gop由
一个参考帧和若干预测帧构成;
12.步骤1.2,依据点云密度安排聚类中心,将预测帧分割为若干点数接近的点云片;
13.步骤1.3,对每个预测帧与参考帧之间进行点云注册,点云注册算法选取迭代最近邻点法(icp),首先对预测帧相对于参考帧做全局注册,得到最佳变换矩阵记为mg,再将上一步中参考帧分割出的点云片相对于变换后的预测帧做局部注册,得到局部最佳变换矩阵m
p
,记录变换后的点云片和对应变换矩阵m
pm′g;
14.步骤1.4,对预测帧的每一个点,计算该点应该归属的点云片组,片组编号l的计算方式为:
[0015][0016]
其中,是第l个针对于第n个预测帧变换的参考帧点云片,p是当前被计算归属的预测帧点,p

是属于的点。
[0017]
上述的一种用于实时体积视频流传输的压缩方法,所述步骤2具体包括:
[0018]
步骤2.1,对于步骤(1)中生成的点云片组,计算每个预测帧点云片与参考帧点云片之间的均方误差mse(pn),计算方法如下:
[0019][0020]
其中,p0是参考帧点云片,pn是预测帧点云片,p和q是任意输入的两个点云,p是属于点云p的点,q是属于点云q的点;
[0021]
步骤2.2,在点云片组上构建共同的八叉树,在八叉树的节点上使用k均值聚类生成共同点云片;
[0022]
步骤2.3,共同点云片参照点云片组中的片进行颜色插值,每个片都将生成一份颜色信息,颜色信息插值方法如下:
[0023][0024]
其中,ccn是当前点颜色插值之后的结果,是第n片中j近邻点的颜色信息,wj是与该近邻点距离的倒数,w是所有权重之和;
[0025]
步骤2.4,对共同点云片的不同帧颜色信息,参考帧保留原始数据,预测帧保留与参考帧颜色信息的差值,称为颜色残差。
[0026]
上述的一种用于实时体积视频流传输的压缩方法,所述步骤3具体包括:
[0027]
步骤3.1,根据客户端获取的用户视角信息,通过视锥体裁剪与遮挡去除算法剔除所有用户不可见的共同点云片;
[0028]
步骤3.2,对用户可见的共同点云片建立八叉树,舍弃掉分辨率为1的层之下的信息,将八叉树节点用单字节数据表示,对八叉树依照层序遍历使用熵编码算法进行编码;
[0029]
步骤3.3,对共同点云片的颜色信息,使用raht编码算法编码参考帧颜色信息与预测帧颜色信息残差。
[0030]
步骤3.4,对步骤2.1中均方误差mse大于一定阈值的片,单独编码,在这个片上单独建立八叉树,使用熵编码算法压缩几何信息,raht算法压缩颜色信息。
[0031]
上述的一种用于实时体积视频流传输的压缩方法,所述步骤4具体包括:
[0032]
步骤4.1,客户端解码器在收到视频码流之后,首先解码共同点云片,使用熵编码器的解码器将八叉树字节流解码,恢复八叉树的空间结构并从叶子结点恢复点云中点的几何坐标;
[0033]
步骤4.2,客户端解码器使用raht解码点云片的颜色信息,将预测帧的颜色差值还原为颜色信息;
[0034]
步骤4.3,对步骤3.4中单独编码的点云片,按照预测帧点云片的模式通过步骤4.1与步骤4.2进行解码。
[0035]
本发明的有益效果是:
[0036]
(1)本发明构建了一种可以用于实时传输的体积视频流传输压缩框架;
[0037]
(2)本发明通过利用一种共同点云片实现了不同点云帧之间的时序冗余压缩,充分提高了三维压缩方法的压缩率;
[0038]
(3)本发明通过消除共同点云片之间的依赖关系,适应cpu多线程技术的需要,最终提高了解码速度,达到了实时传输的要求。
附图说明
[0039]
下面结合附图和实施例对本发明进一步说明。
[0040]
图1为本发明编码器流程图;
[0041]
图2为本发明解码器流程图。
具体实施方式
[0042]
为使本领域技术人员更好的理解本发明的技术方案,下面结合附图和具体实施方式对本发明作详细说明。
[0043]
本发明提供了一种用于实时体积视频流传输的压缩方法,如图1所示,该方法使用聚类分割与动作补偿将点云帧组分为点云片组,通过构建共同点云片提取点云片组的共同特征进行压缩编码,充分利用了点云帧时间上的相似性与冗余,提高了压缩率。如图2所示,该方法通过打破点云片之间的依赖关系,满足cpu多线程技术的需求,充分利用计算资源实现了实时解码。
[0044]
具体实施如下:
[0045]
(1)聚类分割与动作补偿阶段:
[0046]
(1.1)聚类分割阶段:将体积视频分成若干点云帧组,每一组第一帧为参考帧,其余为预测帧。对参考帧依据密度确定聚类中心进行聚类分割,生成点云片。
[0047]
(1.2)动作补偿阶段:使用icp算法对每个预测帧相对于参考帧做两阶段动作补偿。首先对预测帧相对于参考帧做全局注册,得到最佳变换矩阵记为mg,再将上一步中参考帧分割出的点云片相对于变换后的预测帧做局部注册,得到局部最佳变换矩阵m
p
,记录变换后的点云片和对应变换矩阵m
pm′g。
[0048]
(1.3)点云片组生成阶段:对预测帧的每一个点,根据相对于上一步骤中得到的变换点云片的最近距离确定归属的点云片组,对预测帧的每一个点,计算该点应该归属的点云片组,片组编号l的计算方式为:
[0049][0050]
其中,是第l个针对于第n个预测帧变换的参考帧点云片,p是当前被计算归属的预测帧点,p

是属于的点。通过以上方式将预测帧也分割为点云片,并与参考帧点云片组成点云片组。
[0051]
(2)共同点云片生成阶段:
[0052]
(2.1)编码方式决定阶段:计算点云片之间的均方误差,计算方法如下:
[0053][0054]
其中,p0是参考帧点云片,pn是预测帧点云片,p和q是任意输入的两个点云,p是属于点云p的点,q是属于点云q的点,均方误差大于一定阈值的预测帧点云片将被单独进行编码。
[0055]
(2.2)共同点云片生成阶段:在点云片组上构建共同八叉树,在八叉树节点上使用k-均值聚类生成共同点云片。
[0056]
(2.3)颜色插值阶段:共同点云片参照点云片组中的片的颜色信息进行插值,插值权重与点之间距离成反比关系,每个片都将生成一份颜色信息,颜色信息插值方法如下:
[0057][0058]
其中,ccn是当前点颜色插值之后的结果,是第n片中j近邻点的颜色信息,wj是与该近邻点距离的倒数,w是所有权重之和;
[0059]
(2.4)颜色补偿阶段:对共同点云片的不同帧颜色信息,预测帧保留与参考帧颜色信息的残差,参考帧保留原始信息。
[0060]
(3)压缩编码阶段:
[0061]
(3.1)不可见点云片裁剪阶段:根据客户端获取的用户视角信息,通过视锥体裁剪与遮挡去除算法剔除所有用户不可见的共同点云片。
[0062]
(3.2)共同点云片几何压缩阶段:对用户可见的共同点云片建立八叉树,舍弃掉分辨率为1的层之下的信息,每个节点用一个八位二进制数表示,层序遍历八叉树,使用熵编码算法压缩。
[0063]
(3.3)共同点云片颜色压缩阶段:对共同点云片的颜色信息,使用raht算法对参考帧颜色信息与预测帧颜色信息残差进行压缩。
[0064]
(3.4)点云片单独压缩阶段:对(2.1)中筛选出来的均方误差过大的点云片,单独编码,在这个片上单独建立八叉树,使用熵编码算法压缩几何信息,raht算法压缩颜色信息
[0065]
(4)并行解码阶段:
[0066]
(4.1)几何信息解码阶段:使用cpu多线程技术,每个线程负责解码一个共同点云片或单独点云片,首先将八叉树字节流解熵编码,随后恢复八叉树结构,从叶子节点重建点的几何坐标。
[0067]
(4.2)颜色信息解码阶段:使用cpu多线程技术,每个线程负责解码一组颜色信息,参考帧与单独点云片的颜色信息使用raht进行解码,预测帧的颜色信息在raht解码过后将
颜色残差恢复为原始信息。
[0068]
(4.3)对(3.4)中单独编码的点云片,按照预测帧点云片的模式通过(4.1)及(4.2)进行解码。
[0069]
(4.4)由于点云片之间没有依赖关系,以上步骤均可使用cpu多线程方法进行优化,每个线程解码一个点云片。随后将解码的点云片输入渲染设备进行渲染。
[0070]
该算法通过聚类分割、动作补偿与共同点云片实现体积视频的高效编解码,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实例中实现。因此,本发明将不会被限制于本文所示的这些实例中,而是符合与本文所公开的原理和新颖特点相一致的最宽的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1