一种基于视频压缩域的深度图推理算法

文档序号:10555924阅读:226来源:国知局
一种基于视频压缩域的深度图推理算法
【专利摘要】本发明公开了一种基于视频压缩域的深度图推理算法,其通过对压缩域中的帧内宏块和帧间宏块分别进行处理,得到了更加完整而准确的运动信息,进而通过运动补偿和上采样双边滤波推理得到深度图,可以实现图像质量与推理速度的平衡。与普通基于像素域的深度图推理算法相比,本发明算法由于利用了压缩域的信息,所占用时间是基于像素域算法时间的60%左右,并且深度图质量也与像素域推理产生的深度图质量相当;与基于块的运动补偿法相比,本发明算法生成的深度图质量PSNR值有1~3dB的提升,主观上也能明显察觉到比基于块的运动补偿法生成的深度图具有更加平滑的效果,为2D到3D视频转换打下良好的基础。
【专利说明】
一种基于视频压缩域的深度图推理算法
技术领域
[0001]本发明属于三维视频生成技术领域,具体涉及一种基于视频压缩域的深度图推理 算法。
【背景技术】
[0002] 人类在自然界中看到的是真实的3D世界,人类所能感知到的周围环境是也是3D 的,因此,能够在屏幕上再现这种真实的3D场景一直是人类梦寐以求的理想。就目前的3D发 展状况而言,3D内容的极度匮乏是造成3D视频产业成长一个主要障碍。为了解决这一问题, 首先需要了解人类对3D视频的感应机理。人眼的3D视觉是通过双眼间的视网膜视差来感知 对象的距离即深度信息的,而目前的3D设备正是利用了人眼双目视觉系统的这一感知特 点,通过分别给左右眼以对应的平面图像,根据几何成像关系,这两幅图像中不同深度位置 的对象在图像间具有不同大小的视差,然后在大脑中完成视觉场景中对象间相对深度的感 知重建,这样人眼就可以获得具有深度感知的立体视觉效果。为了生成3D视频,目前比较普 遍的做法是采用基于深度图的绘制(depth image-based rendering,DIBR)方法来生成具 有视差的左右视点图像。因此如何利用原有的2D视频得到对应的深度图是2D到3D的转换领 域一个非常重要的研究方向。
[0003] 目前,深度图生成算法主要分成两大类:全自动算法和半自动算法。全自动算法在 2D到3D转换过程中不需要人工参与,直接利用2D视频所提供的信息和深度线索估计视频帧 的深度。该类方法在很多场景下可以获得比较好的深度图,但对于一些特殊的景物(如悬挂 的物体等)还是不能正确获得它的深度。因此,为了获得转换速度和转换效果的平衡,目前 很多研究更倾向于略有人工参与的半自动的转换方式。半自动方法首先将整段视频分成关 键帧和非关键帧,并对关键帧采用人工参与方式赋予比较精确的深度值,对于非关键帧则 采用深度推理方式得到相应的深度图。其中,直接对已有深度图进行推理或滤波的方法主 要包括基于块的运动补偿法,双向KLT跟踪算法,基于块的运动估计结合三边滤波器,基于 扫描线的推理滤波,Graph Cut与Random Walks相结合的推理等。半自动方法中由于有了人 工的参与可以有效的避免前期很多自动算法造成的物体前后位置误判,因而可以获得更加 准确的深度图。但是目前大部分算法都是基于像素域进行的,这在实际应用中会消耗大量 的计算资源。并且,目前很多视频都是用压缩方式进行存储的,如果在压缩域就可以对视频 内容进行分析和处理可以大大提升处理速度,并且压缩视频数据都是以块为基本单位,所 需要处理的数据量仅是像素域的1/64(基于8X8块)或1/16(基于4X4块)。因此,需要在保 证深度图质量的前提下尽可能利用压缩域中隐含的信息对2D视频进行分析处理,就可以达 到深度图生成效率与质量的平衡。

【发明内容】

[0004] 针对现有技术所存在的上述技术局限,本发明提供了一种基于视频压缩域的深度 图推理算法,可以获得平滑而可靠的深度图像,并且具有更好的深度图像质量,为2D到30视 频转换打下良好的基础。
[0005] -种基于视频压缩域的深度图推理算法,包括如下步骤:
[0006] (1)对视频中非关键帧的码流进行解码,以还原得到非关键帧的图像信息和编码 信息;
[0007] (2)选择性地对非关键帧中的帧内编码宏块进行运动估计,得到帧内编码宏块的 运动矢量;
[0008] (3)对非关键帧中的帧间编码宏块的运动矢量进行修正;
[0009] (4)对于当前非关键帧的任一像素点i,通过以下公式计算该像素点i的深度值:
[0010]
[0011] 其中:Dh(i)为当前非关键帧中像素点i的深度值,D1(J)为当前非关键帧低分辨率 深度图中像素点j的深度值,当前非关键帧低分辨率深度图中每一像素点即对应当前非关 键帧中一 4X4大小的编码块,S为以像素点i所属编码块在当前非关键帧低分辨率深度图中 对应的像素点h为中心的星形像素点集合,该星形像素点集合包含像素点h以及当前非关 键帧低分辨率深度图中以像素点i 1为中心距离为r从上下左右四个方向上扩展得到的4r个 像素点,r为大于1的自然数;w(i,j)为像素点i与像素点j的权重系数;深度值D 1(J)的表达 式如下:
[0012]
[0013] 其中为前一帧深度图中像素点q的深度值,Ω为前一帧中左上顶点坐标为 (jx X 4+mvx( j )-2,jy X 4+mvy( j )-2)右下顶点坐标为(jx X 4+mvx( j )+1,jy X 4+mvy (j )+1)的矩 形区块,jx和jy分别为像素点j在当前非关键帧低分辨率深度图中的横纵坐标,mv x(j)和mvy (j)分别为像素点j在当前非关键帧中对应编码块的运动矢量在水平和垂直方向上的分量。
[0014] 所述的步骤(2)中选择性地对非关键帧中的帧内编码宏块进行运动估计,其选择 标准如下:对于非关键帧中的任一帧内编码宏块,取该帧内编码宏块周围四个宏块的运动 矢量中的最大值,若该最大值大于一定阈值,则对该帧内编码宏块进行运动估计,否则不对 其进行运动估计。
[0015] 所述的步骤(2)中根据以下算式对帧内编码宏块进行运动估计:
[0016]
[0017] 其中:(mVx,mVy)为帧内编码宏块的运动矢量,其中mVx和 mvj别为该运动矢量在 水平和垂直方向上的分量,IMB表不帧内编码宏块,p表不帧内编码宏块IMB中的任一像素 点,Px和Py分别为像素点P在当前非关键帧中的横纵坐标,Vx和Vy分别当前非关键帧相对前 一帧在水平和垂直方向上的偏置量,dec(p x,py)为当前非关键帧中像素点P的亮度值,de。 (Px+vx,Py+Vy )表示前一帧中横坐标为pX+VX纵坐标为Py+Vy的像素点的亮度值。
[0018]所述的步骤(3)中对非关键帧中的帧间编码宏块的运动矢量进行修正,具体过程 如下:
[0019] 3.1将非关键帧分割成多个4X4大小的残差块,每个残差块继承其所在宏块的运 动矢量;
[0020] 3.2计算帧间编码宏块中每个残差块的能量值;
[0021 ] 3.3按照整帧从左往右从上往下的顺序对逐个对非关键帧中归属于帧间编码宏块 的所有残差块的运动矢量进行修正;
[0022] 3.4按照整帧从右往左从下往上的顺序对逐个对非关键帧中归属于帧间编码宏块 的所有残差块的运动矢量再次进行修正。
[0023] 所述的步骤3.2中对于帧间编码宏块中的任一残差块,通过以下公式计算其能量 值:
[0024] EN= I DC I + I ACoi I +1 ACio I +1 ACn
[0025] 其中:EN为残差块的能量值,对于帧间编码宏块经熵解码后得到对应该残差块的 DCT(离散余弦变换)系数矩阵,DC、ACQ1、AC1Q和AC11分别为该DCT系数矩阵中左上角的四个 DCT系数。
[0026] 所述的步骤3.3中当残差块同时满足以下三个条件时,将其运动矢量置为0;
[0027] A ·其能量值为0;
[0028] B.其左边残差块的当前运动矢量为0;
[0029] C.其当前运动矢量小于一定阈值。
[0030]所述的步骤3.4中当残差块同时满足以下三个条件时,将其运动矢量置为0;
[0031] A ·其能量值为0;
[0032] B.其右边残差块的当前运动矢量为0;
[0033] C.其当前运动矢量小于一定阈值。
[0034]所述权重系数w(i, j)的计算表达如下:
[0035] 若像素点j在当前非关键帧中对应编码块所属的宏块为Skip编码宏块,则w(i,j) =1 ;
[0036] 若像素点j在当前非关键帧中对应编码块所属的宏块为帧间编码宏块,则:
[0037] w(i, j)=GSo.i(desh(i)-desi( j))
[0038] 若像素点j在当前非关键帧中对应编码块所属的宏块为帧内编码宏块,则:
[0039] w(i,j)=GSo.2(desh(i)_desi( j))
[0040] 其中:GSo.K)和GSo.2()表示均值为0方差值分别为0.1和0.2的高斯函数,desh(i) 为当前非关键帧中像素点i的亮度值,deS1(j)像素点j在当前非关键帧中对应编码块的像 素平均亮度值。
[0041] 本发明利用直接从压缩域中获取的信息来进行深度图推理的算法,通过对压缩域 中的帧内宏块和帧间宏块分别进行处理,得到了更加完整而准确的运动信息,进而通过运 动补偿和上采样双边滤波推理得到深度图,可以实现图像质量与推理速度的平衡。与普通 基于像素域的深度图推理算法相比,本发明深度图推理算法由于利用了压缩域的信息,所 占用时间是基于像素域算法时间的60%左右,并且深度图质量也与像素域推理产生的深度 图质量相当;与基于块的运动补偿法相比,本发明深度图推理算法生成的深度图质量PSNR (峰值信噪比)值有1~3dB的提升,主观上也能明显察觉到比基于块的运动补偿法生成的深 度图具有更加平滑的效果,为2D到3D视频转换打下良好的基础。
【附图说明】
[0042]图1为本发明深度图推理算法的步骤流程示意图。
【具体实施方式】
[0043] 为了更为具体地描述本发明,下面结合附图及【具体实施方式】对本发明的技术方案 进行详细说明。
[0044] 如图1所示,本发明基于视频压缩域的深度图推理算法包括如下步骤:
[0045] (1)帧内编码宏块的处理。
[0046] 在视频编码过程中,一般采用基于率失真的策略来进行模式选择,进而确定某一 个宏块采用何种类型来进行编码。当帧内模式具有比帧间模式更小的率失真时,编码器将 对该宏块采用帧内模式来进行编码,此时该宏块的运动矢量信息部分将不会保存,而被设 置为0。因此,为了获得该类型宏块的运动信息,我们需要采用运动估计来预测这些帧内宏 块的运动矢量。和编码过程一样,运动矢量的获得也是通过最小化解码帧中的宏块和前一 帧中各块差的绝对值而得到的,如下式所示:
[0047]
[0048] 其中:nffi(k)为第k个帧内宏块,(《vf1 )是第k个帧内宏块计算得到的运动矢 量。绝对差值函数absdif f (X, y, vx, Vy)由下式所定义:
[0049] absdiff = | dec(t)(x,y)-dec(t_1)(x+vx,y+vy)
[0050] 其中:dec(t)为t时刻的解码帧亮度分量。VjPvy是在一定水平和垂直预设搜索范围 的偏置。如果该帧中存在过多的帧内编码宏块,那么运算时间将会由于运动搜索的复杂性 而大大增加。为了减少帧内宏块的运动估计计算量,我们采用下式来决定是否对帧内宏块 米用运动估计策略。
[0051]
[0052] 其中:MEFlag(k)代表第k个帧内编码宏块是否需要进行运动估计, 是该帧内宏块周围宏块中运动矢量的最大值。TH是一个预先设定的阈值,可以采用该帧所 有运动矢量的中值来确定。
[0053]这样,对帧内宏块进行运动估计的比例可以大大降低,可以有效节省计算资源。 [0054] (2)帧间编码宏块的处理。
[0055] 通过观察分析可知,并非所有的运动矢量都代表宏块真正的运动信息。为了得到 更可靠而准确的运动信息,首先,我们通过基于块能量的零运动矢量判别机制来消除平滑 区域内的不可靠运动矢量。帧间编码宏块经过熵解码后得到残差块的DCT系数信息,利用该 信息可以获得每个4 X 4残差块的能量大小,该能量值En4x4(i,j)可以通过下式进行计算:
[0056] En4X4(i,j)=|DC(i,j)| + |ACoi(i,j)| + |ACio(i,j)| + |ACn(i,j)
[0057] 其中:00(^)4〇)1(^)4(:1()(^)4(:11(^)分别是第(^)个残差块的左上角 DCT系数。DC系数是DCT变换中最重要的系数,它可以代表整个残差块的总体平均能量值。其 他三个系数ACoi、ACio、ACii分别代表残差块水平分量、垂直分量和对角线分量的能量值。这 四个系数可以代表4X4残差块的能量大小。当该块处于平滑区域时,该能量通常为0。
[0058]接下来,采用两步滤波处理来对每个块的运动矢量进行滤波。第一步将每一个原 始的运动矢量按照从上到下从左到右的顺序进行滤波处理,当该块满足以下三个条件时, 该块的运动矢量将被置为0。
[0059] 条件1:该块的能量大小Emx4(i,j)为0;
[0060] 条件2:该块左边块的运动矢量为0;
[0061]条件3:该块的运动矢量值小于一定阈值。该阈值的设定有两种方式,一种采用该 帧中所有块运动矢量的平均值,另一种采用用户自定义的值。
[0062]第二步仍然采用与第一步相似的方法进行滤波处理,区别在于处理的顺序变为从 下到上从右到左。相应的条件2换为该块右边块的运动矢量为0。通过这两步滤波可以将大 部分平滑区域的运动矢量置为0,大大提高了后续处理的准确度。
[0063] (3)深度图的赋值和推理。
[0064] 本实施方式中非关键帧的深度图可以经过帧内编码宏块处理和帧间编码宏块处 理得到的完整可靠的运动矢量来获得。不同分块的运动矢量都被直接映射到其覆盖的4 X 4 块中,然后我们就可以利用每个4X4块的运动矢量推理得到一个缩小为原始图像大小1/16 的深度图,水平和垂直方向长度分别为原始帧大小的1/4。该低分辨率深度图像的每个点的 深度值都采用运动补偿的方法从前一帧的深度图中获得,如下式所示:
[0065]
[0066] 其中:马为t时刻的低分辨率深度图,1^为卜1时刻的原始高分辨率深度图,z和q 分别为像素位置值。Ω是像素 z的范围,该范围可以通过q点位置和其对应的运动矢量值进 行计算。例如,q的坐标为(qx,qy),q点整像素的运动矢量为(mv x,mvy),那么Ω的范围将是从 左上角坐标(qx X 4+mvx-2,qy X 4+mvy-2)到右下角坐标为(qx X 4+mvx+1,qy X 4+mvy+1)这样一 个矩形区域。
[0067] 然后,为了获得与原始图像大小一样的深度图像,我们采用一个自适应上采样双 边滤波器对上式得到的深度图进行滤波处理,处理算法如下式所示:
[0068]
[0069] 其中:S是滤波器模板,可以选择不同的模板类型。在本实施方式中,我们选择半径 为5的星形模板作为滤波器。w(p,q)是权重系数,可以由下式计算得到:
[0070]
[0071] 其中:函数r是一个均值为0,具有不同方差Oii的高斯函数。在滤波过程中,我们针 对不同的宏块编码类型采用不同的滤波强度。如果宏块是帧间编码类型,高斯函数的方差 值设为ο. I;如果宏块是帧内编码类型,那么高斯函数的方差值设为ο. 2。更高的方差值有助 于增加该像素深度值对周围像素深度值的影响。如果宏块类型为SKIP模式,我们不对其进 行滤波处理。Ih是高分辨率图像的亮度值,I 1是低分辨率图像的亮度值。
[0072] 每一个P帧(非关键帧)的深度图都利用前一帧的深度图和本帧的运动信息和宏块 信息进行推理,最终将得到整个视频序列的深度图。
[0073] 由此可见,本发明利用直接从压缩域中获取的信息来进行深度图推理的算法,通 过对压缩域中的帧内宏块和帧间宏块分别进行处理,得到了更加完整而准确的运动信息, 进而通过运动补偿和上采样双边滤波推理得到深度图。实验结果表明本发明算法可以获得 图像质量与推理速度的平衡,为2D到3D视频转换打下良好的基础。
[0074] 上述的对实施例的描述是为便于本技术领域的普通技术人员能理解和应用本发 明。熟悉本领域技术的人员显然可以容易地对上述实施例做出各种修改,并把在此说明的 一般原理应用到其他实施例中而不必经过创造性的劳动。因此,本发明不限于上述实施例, 本领域技术人员根据本发明的揭示,对于本发明做出的改进和修改都应该在本发明的保护 范围之内。
【主权项】
1. 一种基于视频压缩域的深度图推理算法,包括如下步骤: (1) 对视频中非关键帖的码流进行解码,W还原得到非关键帖的图像信息和编码信息; (2) 选择性地对非关键帖中的帖内编码宏块进行运动估计,得到帖内编码宏块的运动 矢量; (3) 对非关键帖中的帖间编码宏块的运动矢量进行修正; (4) 对于当前非关键帖的任一像素点i,通过W下公式计算该像素点i的深度值:其中:Dh(i)为当前非关键帖中像素点i的深度值,Di(j)为当前非关键帖低分辨率深度 图中像素点j的深度值,当前非关键帖低分辨率深度图中每一像素点即对应当前非关键帖 中一4X4大小的编码块,S为W像素点i所属编码块在当前非关键帖低分辨率深度图中对应 的像素点ii为中屯、的星形像素点集合,该星形像素点集合包含像素点iiW及当前非关键帖 低分辨率深度图中W像素点ii为中屯、距离为r从上下左右四个方向上扩展得到的4r个像素 点,r为大于1的自然数;w(i,j)为像素点i与像素点j的权重系数;深度值化(j)的表达式如 下:其中:DlO/)为前一帖深度阁中像素点q的深度值,Q为前一帖中左上顶点坐标为(jxX 4+mvx( j )-2,jy X 4+mvy( j )-2)右下顶点坐标为(jx X 4+mvx( j )+1,jy X 4+mvy( j )+1)的矩形区 块Jx和jy分别为像素点j在当前非关键帖低分辨率深度图中的横纵坐标,mvx(j)和mvy(j) 分别为像素点j在当前非关键帖中对应编码块的运动矢量在水平和垂直方向上的分量。2. 根据权利要求1所述的深度图推理算法,其特征在于:所述的步骤(2)中选择性地对 非关键帖中的帖内编码宏块进行运动估计,其选择标准如下:对于非关键帖中的任一帖内 编码宏块,取该帖内编码宏块周围四个宏块的运动矢量中的最大值,若该最大值大于一定 阔值,则对该帖内编码宏块进行运动估计,否则不对其进行运动估计。3. 根据权利要求1所述的深度图推理算法,其特征在于:所述的步骤(2)中根据W下算 式对帧历编招告化讲行坛云化A.其中:(mvx,mvy)为帖内编码宏块的运动矢量,其中mvx和mvy分别为该运动矢量在水平和 垂直方向上的分量,IMB表示帖内编码宏块,P表示帖内编码宏块IMB中的任一像素点,Px和Py 分别为像素点P在当前非关键帖中的横纵坐标,Vx和Vy分别当前非关键帖相对前一帖在水平 和垂直方向上的偏置量,deC(Px,Py)为当前非关键帖中像素点P的亮度值,deC*(Px+Vx,Py+ Vy)表示前一帖中横坐标为Px+vx纵坐标为Py+vy的像素点的亮度值。4. 根据权利要求1所述的深度图推理算法,其特征在于:所述的步骤(3)中对非关键帖 中的帖间编码宏块的运动矢量进行修正,具体过程如下: 3.1将非关键帖分割成多个4 X 4大小的残差块,每个残差块继承其所在宏块的运动矢 量; 3.2计算帖间编码宏块中每个残差块的能量值; 3.3按照整帖从左往右从上往下的顺序对逐个对非关键帖中归属于帖间编码宏块的 所有残差块的运动矢量进行修正; 3.4按照整帖从右往左从下往上的顺序对逐个对非关键帖中归属于帖间编码宏块的 所有残差块的运动矢量再次进行修正。5. 根据权利要求4所述的深度图推理算法,其特征在于:所述的步骤3.2中对于帖间编 码宏块中的任一残差块,通过W下公式计算其能量值: EN= |DC|+ IACoi 1 + 1 ACio I+ IACii 其中:EN为残差块的能量值,对于帖间编码宏块经赌解码后得到对应该残差块的DCT系 数矩阵,DC、ACoi、ACio和ACn分别为该DCT系数矩阵中左上角的四个DCT系数。6. 根据权利要求4所述的深度图推理算法,其特征在于:所述的步骤3.3中当残差块同 时满足W下=个条件时,将其运动矢量置为0; A. 其能量值为0; B. 其左边残差块的当前运动矢量为0; C. 其当前运动矢量小于一定阔值。7. 根据权利要求4所述的深度图推理算法,其特征在于:所述的步骤3.4中当残差块同 时满足W下=个条件时,将其运动矢量置为0; A. 其能量值为0; B. 其右边残差块的当前运动矢量为0; C. 其当前运动矢量小于一定阔值。8. 根据权利要求1所述的深度图推理算法,其特征在于:所述权重系数w(i,j)的计算表 达如下: 若像素点j在当前非关键帖中对应编码块所属的宏块为化ip编码宏块,则w( i,j ) = 1; 若像素点j在当前非关键帖中对应编码块所属的宏块为帖间编码宏块,则: w(i, j)=GSo.i(desh(i)-desi( j)) 若像素点j在当前非关键帖中对应编码块所属的宏块为帖内编码宏块,则: w(i,j)=GSo'2(desh(i)-desi( j)) 其中:GSo.iO和GS0.2O表示均值为0方差值分别为0.巧日0.2的高斯函数,desh(i)为当前 非关键帖中像素点i的亮度值,desi(j)像素点j在当前非关键帖中对应编码块的像素平均 亮度值。
【文档编号】H04N13/02GK105915886SQ201610299323
【公开日】2016年8月31日
【申请日】2016年5月6日
【发明人】冯杰, 马汉杰
【申请人】杭州码全信息科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1