一种多视点深度视频的编码方法

文档序号:7710047阅读:97来源:国知局
专利名称:一种多视点深度视频的编码方法
技术领域
本发明涉及一种视频信号的处理方法,尤其是涉及一种多视点深度视频的编码方法。

背景技术
随着信息采集技术、通信技术、信息处理技术的快速发展,使得人们可以利用自由视点视频系统自由地选择视点欣赏场景逐渐成为现实。自由视点视频系统在影视娱乐、教育、产品展示、医疗和安全监控等领域具有广阔的应用前景。自由视点视频是通过多相机系统进行捕获,各视点独立地接受来自同一场景的特定摄像点的视频,并通过虚拟视点图像绘制技术生成任意视点视频,这样人们就能欣赏到任意位置的视点图像。
虚拟视点图像绘制是自由视点视频的关键技术之一。传统的虚拟视点图像是通过采用两路彩色视频信号进行绘制的,这种虚拟视点图像的绘制方法,需要在网络上传输两路彩色视频信号。为了减小传输数据量,目前主流的基于深度图像的绘制方法采用参考视点的彩色图像及该视点的彩色图像所对应的深度图像绘制生成虚拟视点图像,这种方法只需要在网络上传输一个视点的彩色视频信号及对应的深度视频信号,由于深度视频信号为单色视频,并且更加平滑,所以只需要彩色视频信号20%左右的数量就能获得较好的编码质量,这样能减轻网路传输压力。但由于单路彩色视频信号及对应深度视频信号仅允许在较小的范围内进行交互式地自由切换视点,所以国际标准化组织JVT(JointVideo Team)提出了采用多路彩色视频信号及对应多路深度视频信号(Multi-view Viewplus Depth,MVD)来扩展自由视点视频的视频切换范围。
图1给出了用多路彩色视频信号及对应多路深度视频信号实现的自由视点视频系统的基本结构框图,其中包括采集、预处理、编码、传输、解码、虚拟视点图像绘制和显示等环节。在图1中,三个视点的彩色视频和对应的深度视频通过网络传输、解码就能绘制出任意视点的视频图像。基于深度图像的绘制方法由于将场景的深度信息引入到虚拟视点图像绘制中,从而大大减少了虚拟视点图像绘制所需的参考视点的数目,这样更加适合于表示和实现自由视点视频系统。
在多视点彩色视频和对应深度视频信号中,深度视频代表的是对应彩色视频场景到摄像机成像平面的距离信息,它将实际距离值量化到
。深度视频是多视点视频系统中非常重要的辅助信息,可以通过深度相机进行获取,也可以通过深度估计程序计算得到。由于深度相机价格昂贵,目前用于测试的深度视频大多通过深度估计软件而得到。为了推广应用和降低成本,用于虚拟视点图像绘制的深度信息不适合在接收端通过深度估计产生,需要在发送端通过采集或者估计然后编码传送给接收端,因此,深度视频的压缩编码对自由视点视频系统来说是非常关键的。
目前,自由视点视频系统框架中的多视点深度视频信号编码压缩方法中采用了分层B帧(HBP,Hierarchical B Pictures)预测编码结构。HBP除了采用运动估计消除时间上的冗余外,还采用了视差估计来消除视点间的相关性空间冗余,能够对多视点深度视频信号进行较好的压缩。HBP预测编码结构如图2所示,图2中GOP(group of pictures,图像组)长度为8,S0~S7表示8个视点,T0~T7为GOP的8个时刻,箭头表示帧间参考关系,如帧S1T4参考了帧S1T0、帧S1T8、帧S0T4和帧S2T4,其中帧S1T0和帧S1T8为时间参考帧,帧S0T4和帧S2T4为视点参考帧。
为了研究多视点视频编码,JVT提出了基于H.264编码标准的多视点视频编码校验模型JMVM|(Joint Multi-view Video Model)。该校验模型的参考软件,既可用于多视点彩色视频的编码,也可以用于多视点深度视频的编码。在JMVM中,对于每一个宏块,通过率失真优化技术求取率失真代价最小的宏块编码模式作为当前正在处理的宏块的宏块编码模式,以寻求较低的码率和更好的画面质量的平衡。如果当前正在处理的宏块所在帧为I帧,则编码器需搜索Intra16×16、Intra8×8和Intra4×4模式,从这三种宏块编码模式中找到具有率失真代价最小的宏块编码模式作为该宏块的最优宏块编码模式;如果当前正在处理的宏块所在帧为P帧或者B帧,则编码器将搜索多个参考帧的情况下还需依次搜索SKIP、Inter16×16、Inter16×8、Inter8×16、Inter8×8、Inter8×8Frext、Intra16×16、Intra8×8和Intra4×4模式,从这些宏块编码模式中找到具有率失真代价最小的宏块编码模式作为该宏块的最优宏块编码模式。率失真代价通过J(s,c,MODE|λMODE)=SSD(s,c,MODE|QP)+λMODER(s,c,MODE)计算得到。其中,MODE表示当前宏块的一种编码模式,J(s,c,MODE|λMODE)表示MODE模式下的率失真代价,s为原始的视频信号,c为采用MODE模式编码后的重构视频信号,λMODE为拉格朗日乘子,R(s,c,MODE)表示MODE模式下用来编码宏块头信息、视差矢量信息和所有DCT(Discrete Cosine Transform,离散余弦变换)系数的所有编码比特数,SSD(s,c,MODE|QP)为原始的视频信号和重构视频信号之间的平方差值和(SSD,Sum ofSquare Difference),SSD(s,c,MODE|QP)的值通过

计算得到,B1、B2分别为当前宏块的水平和垂直像素数,可以取值16、8或4,l=(lx,ly)T表示视差矢量,QP为量化参量,[i,j]表示像素的坐标,s[i,j]表示原始的视频信号中坐标为[i,j]的像素的像素值,c[i,j]表示重构视频信号中坐标为[i,j]的像素的像素值。在JMVM编码过程中,采用了对所有宏块编码模式进行搜索以得到最优宏块编码模式,这种方法可以获得较高的重建图像质量,但宏块编码模式全搜索的方法导致计算复杂度非常高。


发明内容
本发明所要解决的技术问题是提供一种在保证利用多视点深度视频绘制得到的虚拟视点视频的质量的前提下,能够降低多视点深度视频编码的计算复杂度,提高多视点深度视频编码的编码速度的多视点深度视频编码方法。
本发明解决上述技术问题所采用的技术方案为一种多视点深度视频的编码方法,该编码方法在基于H.264编码标准的多视点视频编码校验模型JMVM上,采用JVT推荐的分层B帧编码预测结构对多视点深度视频进行编码,在编码过程中对多视点深度视频中的所有B帧采用如下步骤进行编码 1)、定义当前正在处理的B帧为当前B帧,当前B帧的分辨率为M×N,对于当前B帧以16×16宏块为单位从左到右、从上到下依次对各个16×16宏块进行处理; 2)、将当前B帧中最左上角的16×16宏块作为当前处理的宏块; 3)、定义当前正在处理的宏块为当前宏块,计算当前宏块的偏离因子,记为δ,

其中,(x,y)表示当前宏块在当前B帧中以16×16宏块为单位的坐标位置,


(i,j)表示当前宏块中的像素点的坐标位置,r(i,j)表示当前宏块中坐标为(i,j)的像素点的亮度值,g(x,y)表示当前宏块中所有像素点的亮度值之和的平均值,
4)、判断当前宏块的偏离因子δ是否小于设定阈值,如果是,则将当前宏块标记为深度连续区域的宏块,编码器采用现有的H.264的率失真优化技术搜索SKIP、Intra8×8、Intra4×4和Inter16×16宏块编码模式,从这些宏块编码模式中选出率失真代价最小的宏块编码模式作为当前宏块的最优宏块编码模式,然后执行步骤6);否则,继续执行; 5)、将当前宏块标记为深度不连续区域的宏块,编码器采用现有的H.264的率失真优化技术搜索SKIP、Inter16×16、Inter16×8、Inter8×16、Inter8×8、Inter8×8Frext、Intra16×16、Intra8×8和Intra4×4宏块编码模式,从这些宏块编码模式中选出率失真代价最小的宏块编码模式作为当前宏块的最优宏块编码模式; 6)、编码器利用当前宏块的最优宏块编码模式对当宏块进行编码; 7)、将下一个待处理的16×16宏块作为当前宏块,重复执行步骤3)~7),直至当前B帧中的所有16×16宏块编码完毕,由所有标记为深度连续区域的宏块构成当前B帧的深度连续区域,由所有标记为深度不连续区域的宏块构成当前B帧的深度不连续区域。
所述的设定阈值为30。
与现有技术相比,本发明的优点在于通过计算多视点深度视频中所有B帧的各个宏块的偏离因子,根据偏离因子将B帧图像分成深度连续区域和深度不连续区域,对于深度连续区域中的各个宏块,编码器遍历较少的宏块编码模式,这样大大地减少了多视点深度视频中深度连续区域中各个宏块的宏块编码模式的搜索范围,从而达到降低多视点深度视频编码的计算复杂度,有效提高了多视点深度视频编码的编码速度,而对于对虚拟视点图像绘制影响较大的深度不连续区域中的各个宏块,编码器遍历所有宏块编码模式,由于采用所有宏块编码模式都搜索的方法而受到保护,因此本发明方法在提高编码速度的同时保证了虚拟视点图像绘制的质量。



图1为典型的自由视点视频系统的基本结构框图; 图2为JVT推荐的分层B帧编码预测结构的示意图; 图3为当前B帧中宏块的坐标位置及该宏块中的像素点的坐标位置示意图; 图4为对当前B帧进行编码的流程框图; 图5为传统的多视点深度视频宏块编码模式的搜索过程示意图; 图6为“Ballet”多视点深度视频的S0T8帧中的最优宏块编码模式的分布示意图; 图7a为各种宏块编码模式在“Ballet”的S0T8帧的深度连续区域中的分布比例示意图; 图7b为各种宏块编码模式在“Ballet”的S0T8帧的深度不连续区域中的分布比例示意图; 图8为深度不连续区域中深度值失真对虚拟视点图像绘制的影响示意图; 图9为“Leave Laptop”多视点深度视频的S7T8帧中各个宏块的偏离因子δ值; 图10a为“Leave Laptop”多视点深度视频的S7T8帧中的深度连续区域和深度不连续区域的示意图; 图10b为“Ballet”多视点深度视频S0T8帧中的深度连续区域和深度不连续区域的示意图; 图11a为“Leave Laptop”多视点深度视频的S8T8原始图像; 图11b为通过JMVM方法对多视点深度视频进行编码后绘制的“Leave Laptop”的S8T8虚拟视点图像; 图11c为通过本发明编码方法对多视点深度视频进行编码后绘制的“Leave Laptop”的S8T8虚拟视点图像。

具体实施例方式 以下结合附图实施例对本发明作进一步详细描述。
一种多视点深度视频的编码方法,该编码方法在基于H.264编码标准的多视点视频编码校验模型JMVM(Joint Multi-view Video Model)上,采用JVT(Joint Video Team,联合视频专家组)推荐的分层B帧(HBP,Hierarchical B Pictures)编码预测结构对多视点深度视频进行编码,分层B帧编码预测结构如图2所示。
在编码过程中对多视点深度视频中的所有I帧,以16×16宏块为单位从左到右、从上到下依次对各个16×16宏块进行处理,对于各个16×16宏块,编码器搜索Intra16×16、Intra8×8和Intra4×4模式,从这三种宏块编码模式中找到具有率失真代价最小的宏块编码模式作为各个16×16宏块各自的最优宏块编码模式;对多视点深度视频中的所有P帧,以16×16宏块为单位从左到右、从上到下依次对各个16×16宏块进行处理,对于各个16×16宏块,编码器搜索多个参考帧的情况下依次搜索SKIP、Inter16×16、Inter16×8、Inter8×16、Inter8×8、Inter8×8Frext、Intra16×16、Intra8×8和Intra4×4模式,从这些宏块编码模式中找到具有率失真代价最小的宏块编码模式作为各个16×16宏块各自的最优宏块编码模式;而对多视点深度视频中的所有B帧采用如下步骤进行编码,对当前正在处理的B帧的编码过程如图4所示。
1)、定义当前正在处理的B帧为当前B帧,当前B帧的分辨率为M×N,对于当前B帧以16×16宏块为单位从左到右、从上到下依次对各个16×16宏块进行处理。
2)、将当前B帧中最左上角的16×16宏块作为当前处理的宏块。
3)、定义当前正在处理的宏块为当前宏块,计算当前宏块的偏离因子,记为δ,

其中,(x,y)表示当前宏块在当前B帧中以16×16宏块为单位的坐标位置,


(i,j)表示当前宏块中的像素点的坐标位置,图3给出了当前B帧中某一宏块的坐标位置及该宏块中的像素点的坐标位置,r(i,j)表示当前宏块中坐标为(i,j)的像素点的亮度值,g(x,y)表示当前宏块中所有像素点的亮度值之和的平均值,
4)、判断当前宏块的偏离因子δ是否小于设定阈值,如果是,则将当前宏块标记为深度连续区域的宏块,编码器采用现有的H.264的率失真优化技术搜索SKIP、Intra8×8、Intra4×4和Inter16×16宏块编码模式,从这些宏块编码模式中选出率失真代价最小的宏块编码模式作为当前宏块的最优宏块编码模式,然后执行步骤6);否则,继续执行。
5)、将当前宏块标记为深度不连续区域的宏块,编码器采用现有的H.264的率失真优化技术搜索SKIP、Inter16×16、Inter16×8、Inter8×16、Inter8×8、Inter8×8Frext、Intra16×16、Intra8×8和Intra4×4宏块编码模式,从这些宏块编码模式中选出率失真代价最小的宏块编码模式作为当前宏块的最优宏块编码模式。
6)、编码器利用当前宏块的最优宏块编码模式对当宏块进行编码。
7)、将下一个待处理的16×16宏块作为当前宏块,重复执行步骤3)~7),直至当前B帧中的所有16×16宏块编码完毕,由所有标记为深度连续区域的宏块构成当前B帧的深度连续区域,由所有标记为深度不连续区域的宏块构成当前B帧的深度不连续区域。
图5给出了传统的多视点深度视频宏块编码模式的搜索过程,图5中每列像素点组成的竖线为一个宏块的宏块编码模式搜索过程,其中,黑色部分对应着最优宏块编码模式的搜索过程,使用这种搜索方式,将导致深度视频编码过程中存在大量的计算冗余。图6给出了测试序列“Ballet”多视点深度视频的S0T8帧中的最优宏块编码模式的分布,图6中白色实线边框所对应的宏块的最优宏块编码模式为SKIP模式,虚线边框所对应的宏块的最优宏块编码模式为Inter模式,黑色实线边框所对应的宏块的最优宏块编码模式为Intra模式。各种宏块编码模式在测试序列“Ballet”多视点深度视频的S0T8帧的深度连续区域中的分布比例如图7a所示,各种宏块编码模式在测试序列“Ballet”多视点深度视频的S0T8帧的深度不连续区域中的分布比例如图7b所示,从图7a和7b可知,在深度不连续区域,各种宏块编码模式所占比例较为均衡,而在深度连续区域,SKIP、Intra和Inter16×16宏块编码模式占了绝大部分的比例。此外,由于在多视点深度视频中,深度不连续区域往往是对象的边界,其对虚拟视点图像绘制的影响大于深度连续区域对虚拟视点图像绘制的影响。图8给出了多视点深度视频中深度不连续区域中深度值失真对虚拟视点图像绘制的影响,从图8中可以看出,虚拟视点图像绘制的质量随着失真的加大而快速下降,因此本发明方法为解决该问题,针对深度连续区域和深度不连续区域中的各个16×16宏块采用不同的宏块编码模式搜索范围,在保证了虚拟视点图像绘制质量的前提下,大大降低了多视点深度视频编码的计算复杂度,有效提高了多视点深度视频的编码速度。
在此具体实施例中,设定阈值为30,实际上设定阈值的大小是通过对多个多视点深度视频测试序列中各个宏块的偏离因子δ的统计分析确定的。图9为测试序列“LeaveLaptop”多视点深度视频的S7T8帧中各个宏块的偏离因子δ值,从图9中可以看出,偏离因子δ值能反映深度视频图像中各对象的轮廓。图10a中方格显示的宏块为测试序列“Leave Laptop”的S7T8帧中δ>30的宏块,即为深度不连续区域中的宏块,其余为δ<30的宏块,即为深度连续区域中的宏块;图10b中方格显示的宏块为测试序列“Ballet”的S7T8帧中δ>30的宏块,即为深度不连续区域中的宏块,其余为δ<30的宏块,即为深度连续区域中的宏块。这些δ>30的宏块所形成区域反应了深度视频中深度发生较大变化的区域,而这些区域往往是宏块编码模式分布较为复杂的区域,这些区域对虚拟视点图像绘制的影响最大。分析确定,阈值设置为30时可以较好地将多视点深度视频中的B帧图像划分成两个区域,即深度连续区域和深度不连续区域。对深度连续区域和深度不连续区域中的各个宏块,分别采用不同的宏块编码模式进行编码,在保持虚拟视点图像绘制质量前提下,大大提高了多视点深度视频的编码速度。
为了测试本发明编码方法的性能,采用了表1所列的测试环境,设定阈值取值30。在Intel Core2 Duo 3.0GHz,3.25GB内存的计算机上,对Microsoft提供的深度视频测试序列“Breakdancers”和“Ballet”,利用深度估计软件DERS3.0估计的深度视频HHI的“Book Arrival”、“Door Flowers”、“Leave Laptop”和“Alt Moabit”,Nagoya大学的“Champagne”、“Dog”和“Pantomime”,主要根据JVT提出的多视点视频公共的测试环境,测试了JMVM编码方法和本发明编码方法的性能。
表2给出了各个测试序列采用JMVM方法以及本发明编码方法进行多视点深度视频编码的编码速度提升的情况,与现有的JMVM方法相比,本发明编码方法的编码速度提高了3.91~11.33倍。
然后利用虚拟视点图像绘制软件VSRS3.0进行虚拟视点图像绘制,绘制方法为利用左视点和右边视点的彩色视频和对应深度视频绘制虚拟视点视频。其中各个测试序列的左右视点和虚拟视点如表3所列。图11a为“Leave Laptop”的S8T8原始图像,图11b为利用JMVM编码深度视频绘制的“Leave Laptop”的S8T8的虚拟图像,图11c为利用本发明编码方法编码深度视频绘制的“Leave Laptop”S8T8的虚拟图像。比较图11b和图11c,可以看出本发明方法编码深度视频绘制的虚拟视点图像的主观质量和JMVM编码方法编码深度视频绘制的虚拟视点图像基本相同。以图11a所示的原始图像为基准,可以计算出通过本发明方法编码深度视频绘制的虚拟视点图像和JMVM编码方法编码深度视频绘制的虚拟视点图像的PSNR(Peak Signal to Noise Ratio,峰值信噪比)。表4给出了本发明方法编码深度视频绘制的虚拟视点图像的PSNR减去JMVM编码方法编码深度视频绘制的虚拟视点图像的PSNR的结果,表4中ΔPSNRY,ΔPSNRU andΔPSNRV为YUV分量的PSNR差值,从表4中可以看出,本发明方法编码深度视频绘制的虚拟视点图像的PSNR和JMVM编码方法编码深度视频绘制的虚拟视点图像的PSNR基本一样。
表1测试环境列表

表2各深度视频序列采用本发明编码方法相对采用JMVM方法在不同的量化参数情况下的编码速度提升倍数
表3各测试序列左、右视点及虚拟视点选择
表4虚拟视点绘制图像PNSR差值(dB)

权利要求
1.一种多视点深度视频的编码方法,其特征在于该编码方法在基于H.264编码标准的多视点视频编码校验模型JMVM上,采用JVT推荐的分层B帧编码预测结构对多视点深度视频进行编码,在编码过程中对多视点深度视频中的所有B帧采用如下步骤进行编码
1)、定义当前正在处理的B帧为当前B帧,当前B帧的分辨率为M×N,对于当前B帧以16×16宏块为单位从左到右、从上到下依次对各个16×16宏块进行处理;
2)、将当前B帧中最左上角的16×16宏块作为当前处理的宏块;
3)、定义当前正在处理的宏块为当前宏块,计算当前宏块的偏离因子,记为δ,
其中,(x,y)表示当前宏块在当前B帧中以16×16宏块为单位的坐标位置,
(i,j)表示当前宏块中的像素点的坐标位置,r(i,j)表示当前宏块中坐标为(i,j)的像素点的亮度值,g(x,y)表示当前宏块中所有像素点的亮度值之和的平均值,
4)、判断当前宏块的偏离因子δ是否小于设定阈值,如果是,则将当前宏块标记为深度连续区域的宏块,编码器采用现有的H.264的率失真优化技术搜索SKIP、Intra8×8、Intra4×4和Inter16×16宏块编码模式,从这些宏块编码模式中选出率失真代价最小的宏块编码模式作为当前宏块的最优宏块编码模式,然后执行步骤6);否则,继续执行;
5)、将当前宏块标记为深度不连续区域的宏块,编码器采用现有的H.264的率失真优化技术搜索SKIP、Inter16×16、Inter16×8、Inter8×16、Inter8×8、Inter8×8Frext、Intra16×16、Intra8×8和Intra4×4宏块编码模式,从这些宏块编码模式中选出率失真代价最小的宏块编码模式作为当前宏块的最优宏块编码模式;
6)、编码器利用当前宏块的最优宏块编码模式对当宏块进行编码;
7)、将下一个待处理的16×16宏块作为当前宏块,重复执行步骤3)~7),直至当前B帧中的所有16×16宏块编码完毕,由所有标记为深度连续区域的宏块构成当前B帧的深度连续区域,由所有标记为深度不连续区域的宏块构成当前B帧的深度不连续区域。
2.根据权利要求1所述的一种多视点深度视频的编码方法,其特征在于所述的设定阈值为30。
全文摘要
本发明公开了一种多视点深度视频的编码方法,通过计算多视点深度视频中所有B帧的各个宏块的偏离因子,根据偏离因子将B帧图像分成深度连续区域和深度不连续区域,对于深度连续区域中的各个宏块,编码器遍历较少的宏块编码模式,这样大大地减少了多视点深度视频中深度连续区域中各个宏块的宏块编码模式的搜索范围,从而达到降低多视点深度视频编码的计算复杂度,有效提高了多视点深度视频编码的编码速度,而对于对虚拟视点图像绘制影响较大的深度不连续区域中的各个宏块,编码器遍历所有宏块编码模式,由于采用所有宏块编码模式都搜索的方法而受到保护,因此本发明方法在提高编码速度的同时保证了虚拟视点图像绘制的质量。
文档编号H04N7/26GK101729891SQ200910154138
公开日2010年6月9日 申请日期2009年11月5日 优先权日2009年11月5日
发明者彭宗举, 蒋刚毅, 郁梅 申请人:宁波大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1