一种应用于3dtv与ftv系统的深度图编码压缩方法

文档序号:7687633阅读:185来源:国知局
专利名称:一种应用于3dtv与ftv系统的深度图编码压缩方法
技术领域
本发明涉及一种立体与多视点视频信号的处理技术,尤其是涉及一种应用于3DTV与FTV系统的深度图编码压缩方法。

背景技术
3DTV(three Dimensional Television,三维电视)和FTV(Free-viewpoint Television,自由视点电视)是具有先进的视觉媒体模式的三维视频系统,含有传统的二维视频系统所没有的视觉功能。3DTV能够较好地反应出场景的深度信息,而FTV可以很好地满足用户从任意角度选择和操作视听对象。联合视频专家组(JVT,Joint Video Team)组织提出了MVD(multi-view video plus depth)结构,即采用N个视点视频结合N个视点的深度信息来表达场景的三维信息以支持面向用户端虚拟视点绘制的三维视频系统。在MVD结构中,每幅视点图像都含有相对应的深度图,深度图所代表的是场景到摄像机(相机)成像平面的距离信息,它将实际深度值量化到
之间,获得代表深度信息的灰度图。深度图并不能直接用于显示,而是作为虚拟视点绘制的参数使用。在虚拟视点绘制过程中,通过深度图以及该深度图对应的视点图像就可以绘制出相邻近的虚拟视点图像。但MVD结构极大地增加了传输的数据量,从而给传输带宽带来了极大的压力。
为解决上述技术问题,相关研究人员提出了很多应用于3DTV与FTV系统的深度图编码压缩方法,如深度图序列的压缩方法,这种压缩方法主要将深度图作为视频序列,采用类似视频编码的方法对其进行压缩,由于这种方法既利用了深度图序列的空间相关性,又利用了深度图序列的时间相关性,使得该方法获得了较好的压缩性能,给传输带宽减轻了压力,但由此也造成编码复杂度的增加,大大降低了深度图的编码速度。


发明内容
本发明所要解决的技术问题是提供一种应用于3DTV与FTV系统的深度图编码压缩方法,使得在保证压缩重建后的深度图的精度的同时,提高深度图的编码速度。
本发明解决上述技术问题所采用的技术方案为一种应用于3DTV与FTV系统的深度图编码压缩方法,在3DTV与FTV系统中,虚拟视点绘制的输入包括视点图像和与所述的视点图像对应的深度图,利用所述的深度图的边缘信息和所述的视点图像的运动信息,将所述的深度图划分为静止的非边缘区域、运动对象内部非边缘区域以及边缘区域,在所述的视点图像编码完成之后进行所述的深度图编码,在所述的深度图编码过程中,利用所述的视点图像编码后确定的宏块编码模式和运动矢量,结合所述的深度图的三种区域,实现所述的深度图的快速编码,具体步骤为 a.将深度图分割成多个具有相同尺寸的宏块,将此类宏块记为BlockD,并根据每个宏块BlockD的纹理特征,判断该宏块BlockD是否位于边缘区域,当该宏块位于边缘区域时,将该宏块BlockD标记为A类区域; b.计算深度图对应的视点图像与该视点图像的参考图像之间的二值化帧差图像,该二值化帧差图像由运动像素和静止像素组成;将该二值化帧差图像以与所述的深度图宏块分割相同的方式分割成多个宏块,将此类宏块记为BlockF,判断二值化帧差图像中的宏块BlockF中是否存在运动像素,当存在时,将与该宏块BlockF对应的深度图中的宏块BlockD标记为B类区域; c.对深度图进行编码,在编码过程中根据视点图像编码后确定的宏块编码模式和运动矢量以及A类区域和B类区域的信息快速确定深度图的宏块编码模式。
所述的步骤a的具体过程为a-①对输入的待编码深度图进行边缘检测,得到深度图的二值化边缘图像,该二值化边缘图像由边缘像素和非边缘像素组成;a-②按公知的H.264编码标准方式将深度图分割成多个具有相同尺寸的宏块,将此类宏块记为BlockD,并将深度图的二值化边缘图像以与所述的深度图宏块分割相同的方式分割成多个宏块,将此类宏块记为BlockE;a-③定义当前正在处理的深度图的二值化边缘图像中的宏块BlockE为当前宏块BlockE,判断深度图的二值化边缘图像中的当前宏块BlockE中是否存在边缘像素,当存在时,确定深度图中与该当前宏块BlockE对应的宏块BlockD位于边缘区域,将该宏块BlockD标记为A类区域。
所述的步骤a的具体过程为a-①按公知的H.264编码标准方式将深度图分割成多个具有相同尺寸的宏块,将此类宏块记为BlockD;a-②定义当前正在处理的深度图中的宏块BlockD为当前宏块BlockD,计算当前宏块BlockD中包含的所有像素的背离值E,判断计算得到的背离值E是否大于设定的阈值,当背离值E大于设定的阈值时,确定当前宏块BlockD位于边缘区域,并将该当前宏块BlockD标记为A类区域。
所述的深度图中的宏块BlockD、所述的深度图的二值化边缘图像中的宏块BlockE及所述的深度图对应的视点图像与该视点图像的参考图像之间的二值化帧差图像中的宏块BlockF的尺寸均为m×n,所述的m×n为16×16、16×8、8×16、8×8、8×4、4×8、4×4中的任一种,令所述的深度图、所述的深度图的二值化边缘图像及所述的深度图对应的视点图像与该视点图像的参考图像之间的二值化帧差图像的尺寸为M×N,则所述的深度图、所述的深度图的二值化边缘图像及所述的深度图对应的视点图像与该视点图像的参考图像之间的二值化帧差图像各自包含的宏块的个数为(M/m)×(N/n)。
所述的背离值E通过计算公式中的任一个计算公式计算得到,其中,dx,y为深度图中的当前宏块BlockD中坐标为(x,y)的像素的像素值,d为深度图中的当前宏块BlockD中包含的所有像素的像素值的均值,其值为m×n为深度图中的当前宏块BlockD的尺寸,m×n为16×16、16×8、8×16、8×8、8×4、4×8、4×4中的任一种。
所述的设定的阈值为E±σ,其中,E和σ分别为深度图中包含的所有宏块BlockD的背离值E构成的集合{E}的均值和标准差。
所述的步骤c的具体过程为在编码过程中将深度图记为D,深度图D中标记为A类区域的所有宏块BlockD构成的集合记为DA,深度图D中标记为B类区域的所有宏块BlockD构成的集合记为DB;定义当前正在处理的深度图中的宏块BlockD为当前宏块BlockD;若BlockD∈(D-(DA∪DB)),并且与深度图D对应的视点图像中与当前宏块BlockD对应的宏块的宏块编码模式为Skip模式且该宏块的运动矢量为0,则当前宏块BlockD的宏块编码模式采用Skip模式;若BlockD∈(DB-(DA∩DB)),采用H.264的率失真优化技术RDO遍历Skip、intra4×4和intra16×16三种宏块编码模式,从这三种宏块编码模式中确定最佳宏块编码模式作为当前宏块BlockD的宏块编码模式;若上述两类条件均不满足,则采用H.264的率失真优化技术RDO遍历H.264的所有宏块编码模式,从所有宏块编码模式中确定最佳宏块编码模式作为当前宏块BlockD的宏块编码模式。
与现有技术相比,本发明的优点在于利用深度图的边缘信息和视点图像的运动信息,将深度图划分为静止的非边缘区域、运动对象内部非边缘区域以及边缘区域,通过在视点图像编码完成之后进行深度图编码,并在深度图编码过程中利用视点图像编码后确定的宏块编码模式和运动矢量,结合上述的深度图的三种区域分类,使得在深度图编码过程中能够在保证编码质量的前提下减少静止的非边缘区域以及运动对象内部非边缘区域的宏块编码模式搜索范围,从而达到降低深度图编码复杂度,提高深度图编码速度的目的。



图1为测试序列“breakdancers”的彩色视点图像; 图2为图1所示的彩色视点图像对应的深度图; 图3为测试序列“breakdancers”的另一幅彩色视点图像,图1所示的彩色视点图像为图3所示的彩色视点图像的参考图像; 图4为通过图1所示的彩色图像和图3所示的彩色图像计算得到的二值化帧差图像; 图5a为利用未经压缩的深度图进行虚拟视点绘制得到的虚拟视点图像; 图5b为利用经现有的直接采用H.264编码标准方式对深度图编码压缩后获得的重建深度图进行虚拟视点绘制得到的虚拟视点图像; 图5c为利用经本发明方法对深度图编码压缩后获得的重建深度图进行虚拟视点绘制得到的虚拟视点图像。
图6为现有的直接采用H.264编码标准方式和采用本发明方法分别对深度图进行编码压缩后,在运动估计时间、编码总时间和码率上的比较图。

具体实施例方式 以下结合附图实施例对本发明作进一步详细描述。
一种应用于3DTV与FTV系统的深度图编码压缩方法,在3DTV与FTV系统中,虚拟视点绘制的输入包括视点图像和与视点图像对应的深度图,视点图像用I表示,深度图用D表示。利用深度图D的边缘信息和视点图像I的运动信息,将深度图D划分为静止的非边缘区域、运动对象内部非边缘区域以及边缘区域;通过在视点图像I编码完成之后进行深度图D的编码,并在深度图D编码过程中利用视点图像I编码后确定的宏块编码模式和运动矢量,结合上述的深度图D的三种区域分类,实现深度图D的快速编码。
这里,视点图像I可以为彩色视点图像,也可以为灰度视点图像;在视点图像I的编码过程中,可以采用H.264的率失真优化技术RDO(Rate-Distortion Optimization)遍历H.264的所有宏块编码模式,或采用已有的基于H.264的快速视频编码方法遍历H.264的部分最有可能的宏块编码模式,为视点图像I中的每个宏块确定其自身的最佳宏块编码模式。
本发明的应用于3DTV与FTV系统的深度图编码压缩方法包括以下步骤 1)、对输入的待编码深度图D进行边缘检测与分析,得到深度图D的二值化边缘图像E,该二值化边缘图像E由边缘像素和非边缘像素组成,令边缘像素的像素值为1,非边缘像素的像素值为0;按公知的H.264编码标准方式将深度图D分割成多个具有相同尺寸的宏块,将此类宏块记为BlockD,并将深度图D的二值化边缘图像E以与深度图宏块分割相同的方式分割成多个宏块,将此类宏块记为BlockE,深度图中的宏块BlockD、深度图的二值化边缘图像中的宏块BlockE的尺寸均为m×n,m×n可以为16×16、16×8、8×16、8×8、8×4、4×8、4×4中的任一种,令深度图D、深度图D的二值化边缘图像E的尺寸为M×N,则深度图D、深度图D的二值化边缘图像E各自包含的宏块的个数均为(M/m)×(N/n);定义当前正在处理的二值化边缘图像E中的宏块BlockE为当前宏块BlockE,判断深度图D的二值化边缘图像E中的当前宏块BlockE中是否存在边缘像素(即像素值为1的像素),当存在时,确定深度图D中与该当前宏块BlockE对应的宏块BlockD位于边缘区域,将该宏块BlockD标记为A类区域。
该步骤中的边缘检测可以采用任意公知的成熟的边缘检测算法,例如Sobel算子、Prewitt算子、Roberts算子、Canny算子等。
2)、计算深度图D对应的视点图像I与该视点图像I的参考图像Ir之间的二值化帧差图像F,该二值化帧差图像F为|I-Ir|二值化后的结果,该二值化帧差图像F由运动像素和静止像素组成,运动像素为帧差变化较大的像素,其值为1;静止像素为帧差变化较小的像素,其值为0。视点图像I的参考图像Ir即指在视点图像I的基于H.264编码过程中参考图像Ir为视点图像I的参考帧。将该二值化帧差图像F以与深度图D宏块分割相同的方式分割成多个宏块,将此类宏块记为BlockF,判断二值化帧差图像F中的宏块BlockF中是否存在运动像素,当存在时,将与该宏块BlockF对应的深度图D中的宏块BlockD标记为B类区域。
该步骤中二值化帧差图像F中的宏块BlockF的尺寸与深度图D中的宏块尺寸相同,均为m×n,m×n可以为16×16、16×8、8×16、8×8、8×4、4×8、4×4中的任一种,令深度图D、二值化帧差图像F的尺寸为M×N,则深度图D、二值化帧差图像F各自包含的宏块的个数均为(M/m)×(N/n)。
3)、基于H.264编码器对深度图进行编码,在编码过程中将深度图D中标记为A类区域的所有宏块BlockD构成的集合记为DA,深度图D中标记为B类区域的所有宏块BlockD构成的集合记为DB;定义当前正在处理的深度图中的宏块BlockD为当前宏块BlockD;若BlockD∈(D-(DA∪DB)),即该当前宏块BlockD位于静止的非边缘区域,则进一步判断与深度图D对应的视点图像I中与当前宏块BlockD对应的宏块的宏块编码模块是否为Skip模式且运动矢量是否为0,当视点图像I中对应的宏块的宏块编码模式为Skip模式、运动矢量为0时,则当前宏块BlockD的宏块编码模式也采用Skip模式;若BlockD∈(DB-(DA∩DB)),即该当前宏块BlockD位于运动对象内部非边缘区域,则采用H.264的率失真优化技术RDO遍历Skip、intra4×4和intra16×16三种宏块编码模式,从这三种宏块编码模式中确定最佳宏块编码模式作为当前宏块BlockD的宏块编码模式;当上述两个条件均不满足时,即该当前宏块BlockD位于边缘区域,则采用H.264的率失真优化技术RDO遍历H.264的所有宏块编码模式,从所有宏块编码模式中确定最佳宏块编码模式作为当前宏块BlockD的宏块编码模式,以保证深度图D的边缘区域的编码精度。此处,符号“∈”为属于符号,符号“∪”为并集符号,符号“∩”为交集符号,符号“-”为差集符号。
该步骤中对位于深度图的不同区域内的宏块BlockD采用不同的宏块编码模式搜索策略,使得在深度图编码过程中能够在保证编码质量的前提下减少静止的非边缘区域以及运动对象内部非边缘区域的宏块编码模式搜索范围,从而达到提高深度图的编码速度的目的。
在本实施例中的步骤1)也可以采用其他方法对深度图中的每个BlockD宏块进行标记,下面将给出另一种标记宏块的方法,其具体过程为按公知的H.264编码标准方式将深度图D分割成多个具有相同尺寸的宏块BlockD;定义当前正在处理的深度图中的宏块BlockD为当前宏块BlockD,计算当前宏块BlockD中包含的所有像素的背离值E,判断计算得到的背离值E是否大于设定的阈值,当背离值E大于设定的阈值时,表明该当前宏块BlockD内深度值变化较大,可以确定该当前宏块BlockD位于边缘区域,因此将该当前宏块BlockD标记为A类区域。在该过程中每个宏块BlockD包含有m×n个像素;宏块BlockD中包含的所有像素的背离值E可以采用以下五种计算方式中的一种计算得到,或者或者或者或者其中,dx,y为深度图中的当前宏块BlockD中坐标为(x,y)的像素的像素值,d为深度图中的当前宏块BlockD中包含的所有像素的像素值的均值,其值为m×n为深度图中的当前宏块BlockD的尺寸。在该过程中,设定的阈值由深度图D中包含的所有宏块BlockD的背离值E构成的集合{E}的均值E和标准差σ决定,设定的阈值可以表述为E±σ。
深度图与传统视频不同,深度图不能直接用于最终显示,而是作为虚拟视点绘制的输入参数使用。因此,一个深度图编码压缩方法的性能的好差,应该从最终绘制的虚拟视点的质量来评价。图1给出了本实施例测试序列“breakdancers”的彩色视点图像;图2为图1所示的彩色视点图像对应的深度图;图3为测试序列“breakdancers”的另一幅彩色视点图像,图1所示的彩色视点图像为图3所示的彩色视点图像的参考图像;图4为通过图1所示的彩色图像和图3所示的彩色图像计算得到的二值化帧差图像。图5a给出了利用未经压缩的深度图进行虚拟视点绘制得到的虚拟视点图像,图5b和图5c分别给出了利用经现有的直接采用H.264编码标准方式和本发明方法对深度图编码压缩后获得的重建深度图进行虚拟视点绘制得到的虚拟视点图像。从图5b和图5c中可以看出得到的两幅虚拟视点图像质量基本相当。但现有的直接采用H.264编码标准方式和采用本发明方法分别对深度图进行编码压缩后,在运动估计时间、编码总时间以及平均每编码一个P帧所耗费的码率相差很多,如图6所示,图6中的结果是在初始量化参数QP为28时编码深度图得出的,从图6中可以看出本发明方法节省了大量的运动估计时间、编码总时间以及平均每编码一个P帧所耗费的码率,从而提高了深度图的编码速度。
权利要求
1.一种应用于3DTV与FTV系统的深度图编码压缩方法,其特征在于在3DTV与FTV系统中,虚拟视点绘制的输入包括视点图像和与所述的视点图像对应的深度图,利用所述的深度图的边缘信息和所述的视点图像的运动信息,将所述的深度图划分为静止的非边缘区域、运动对象内部非边缘区域以及边缘区域,在所述的视点图像编码完成之后进行所述的深度图编码,在所述的深度图编码过程中,利用所述的视点图像编码后确定的宏块编码模式和运动矢量,结合所述的深度图的三种区域,实现所述的深度图的快速编码,具体步骤为
a.将深度图分割成多个具有相同尺寸的宏块,将此类宏块记为BlockD,并根据每个宏块BlockD的纹理特征,判断该宏块BlockD是否位于边缘区域,当该宏块位于边缘区域时,将该宏块BlockD标记为A类区域;
b.计算深度图对应的视点图像与该视点图像的参考图像之间的二值化帧差图像,该二值化帧差图像由运动像素和静止像素组成;将该二值化帧差图像以与所述的深度图宏块分割相同的方式分割成多个宏块,将此类宏块记为BlockF,判断二值化帧差图像中的宏块BlockF中是否存在运动像素,当存在时,将与该宏块BlockF对应的深度图中的宏块BlockD标记为B类区域;
c.对深度图进行编码,在编码过程中根据视点图像编码后确定的宏块编码模式和运动矢量以及A类区域和B类区域的信息快速确定深度图的宏块编码模式。
2.根据权利要求1所述的一种应用于3DTV与FTV系统的深度图编码压缩方法,其特征在于所述的步骤a的具体过程为a-①对输入的待编码深度图进行边缘检测,得到深度图的二值化边缘图像,该二值化边缘图像由边缘像素和非边缘像素组成;a-②按公知的H.264编码标准方式将深度图分割成多个具有相同尺寸的宏块,将此类宏块记为BlockD,并将深度图的二值化边缘图像以与所述的深度图宏块分割相同的方式分割成多个宏块,将此类宏块记为BlockE;a-③定义当前正在处理的深度图的二值化边缘图像中的宏块BlockE为当前宏块BlockE,判断深度图的二值化边缘图像中的当前宏块BlockE中是否存在边缘像素,当存在时,确定深度图中与该当前宏块BlockE对应的宏块BlockD位于边缘区域,将该宏块BlockD标记为A类区域。
3.根据权利要求1所述的一种应用于3DTV与FTV系统的深度图编码压缩方法,其特征在于所述的步骤a的具体过程为a-①按公知的H.264编码标准方式将深度图分割成多个具有相同尺寸的宏块,将此类宏块记为BlockD;a-②定义当前正在处理的深度图中的宏块BlockD为当前宏块BlockD,计算当前宏块BlockD中包含的所有像素的背离值E,判断计算得到的背离值E是否大于设定的阈值,当背离值E大于设定的阈值时,确定当前宏块BlockD位于边缘区域,并将该当前宏块BlockD标记为A类区域。
4.根据权利要求2或3所述的一种应用于3DTV与FTV系统的深度图编码压缩方法,其特征在于所述的深度图中的宏块BlockD、所述的深度图的二值化边缘图像中的宏块BlockE及所述的深度图对应的视点图像与该视点图像的参考图像之间的二值化帧差图像中的宏块BlockF的尺寸均为m×n,所述的m×n为16×16、16×8、8×16、8×8、8×4、4×8、4×4中的任一种,令所述的深度图、所述的深度图的二值化边缘图像及所述的深度图对应的视点图像与该视点图像的参考图像之间的二值化帧差图像的尺寸为M×N,则所述的深度图、所述的深度图的二值化边缘图像及所述的深度图对应的视点图像与该视点图像的参考图像之间的二值化帧差图像各自包含的宏块的个数为(M/m)×(N/n)。
5.根据权利要求3所述的一种应用于3DTV与FTV系统的深度图编码压缩方法,其特征在于所述的背离值E通过计算公式中的任一个计算公式计算得到,其中,dx,y为深度图中的当前宏块BlockD中坐标为(x,y)的像素的像素值,d为深度图中的当前宏块BlockD中包含的所有像素的像素值的均值,其值为m×n为深度图中的当前宏块BlockD的尺寸,m×n为16×16、16×8、8×16、8×8、8×4、4×8、4×4中的任一种。
6.根据权利要求3所述的一种应用于3DTV与FTV系统的深度图编码压缩方法,其特征在于所述的设定的阈值为E±σ,其中,E和σ分别为深度图中包含的所有宏块BlockD的背离值E构成的集合{E}的均值和标准差。
7.根据权利要求1所述的一种应用于3DTV与FTV系统的深度图编码压缩方法,其特征在于所述的步骤c的具体过程为在编码过程中将深度图记为D,深度图D中标记为A类区域的所有宏块BlockD构成的集合记为DA,深度图D中标记为B类区域的所有宏块BlockD构成的集合记为DB;定义当前正在处理的深度图中的宏块BlockD为当前宏块BlockD;若BlockD∈(D-(DA∪DB)),并且与深度图D对应的视点图像中与当前宏块BlockD对应的宏块的宏块编码模式为Skip模式且该宏块的运动矢量为0,则当前宏块BlockD的宏块编码模式采用Skip模式;若BlockD∈(DB-(DA∩DB)),采用H.264的率失真优化技术RDO遍历Skip、intra4×4和intra16×16三种宏块编码模式,从这三种宏块编码模式中确定最佳宏块编码模式作为当前宏块BlockD的宏块编码模式;若上述两类条件均不满足,则采用H.264的率失真优化技术RDO遍历H.264的所有宏块编码模式,从所有宏块编码模式中确定最佳宏块编码模式作为当前宏块BlockD的宏块编码模式。
全文摘要
本发明公开了一种应用于3DTV与FTV系统的深度图编码压缩方法,利用深度图的边缘信息和视点图像的运动信息,将深度图划分为静止的非边缘区域、运动对象内部非边缘区域以及边缘区域,通过在视点图像编码完成之后进行深度图编码,并在深度图编码过程中利用视点图像编码后确定的宏块编码模式和运动矢量,结合上述的深度图的三种区域分类,使得在深度图编码过程中能够在保证编码质量的前提下减少静止的非边缘区域以及运动对象内部非边缘区域的宏块编码模式搜索范围,从而达到降低深度图编码复杂度,提高深度图编码速度的目的。
文档编号H04N7/26GK101374243SQ20081006374
公开日2009年2月25日 申请日期2008年7月29日 优先权日2008年7月29日
发明者蒋刚毅, 梅 郁, 波 朱 申请人:宁波大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1