1.基于MV-HEVC框架的立体视频B帧错误隐藏方法,其特征在于:该方法首先对立体视频中的丢失块类型进行划分,将丢失块划分为静止块和运动块,然后对不同的丢失块类型采用不同的恢复方式,静止块选择直接拷贝的方式,对运动块选择运动或视差补偿的恢复方式;具体步骤是:步骤1、根据图像丢失块像素点的坐标,获取前向参考帧中的同位块B1和后向参考帧中的同位块B2;
步骤2、取两个同位块的绝对差值的均值与阈值比较,具体如下:
其中,(x,y)表示丢失块的左上角坐标位置,(i,j)表示丢失块中像素点相对于坐标(x,y)的坐标偏移量,B1(x+i,y+j,t-n)代表(t-n)时刻的参考帧中的同位块中一个像素点的像素值,B2(x+i,y+j,t+n)代表(t+n)时刻的参考帧中的同位块中一个像素点的像素值,(t-n)时刻的参考帧即为前向参考帧、(t+n)时刻的参考帧即为后向参考帧;M代表丢失块的尺寸大小,M=64,n为帧时间间隔,n=1、2、3、4、5、6,T为静止块与运动块划分阈值,T=8~15;
步骤3、如果判断丢失块的类型为静止块,采用直接拷贝的方式恢复丢失块,就是将前向参考帧中的同位块B1或后向参考帧中的同位块B2填补图像中的当前丢失块位置;
如果判断丢失块的类型为运动块,采用矢量补偿的方法进行错误隐藏,即对丢失块进行填补;所述的矢量包括运动矢量和视差矢量。
2.如权利要求1所述的基于MV-HEVC框架的立体视频B帧错误隐藏方法,其特征在于:所述的矢量补偿的具体方法是:步骤(1)将丢失块划分成2n个编码单元:
a.确定一个丢失块中的各个编码单元深度值,具体是:
将一个正方形的丢失块划分为四个正方形的基本处理单元,丢失块的大小为64×64,则一个基本处理单元的大小为32×32;
一个丢失块的周围为八个大小是64×64的正方形的编码块,记为周围块;将每个周围块划分为四个正方形的子编码块,每个子编码块的大小为32×32;
每个基本处理单元的周围为另外三个基本处理单元,以及三个编码块中的五个子编码块;选择相接的三个子编码块作为该基本处理单元的相邻块,三个相邻块分别属于三个编码块;
建立每个基本处理单元的深度信息集:
{depth_max1,depth_min1;depth_max2,depth_min2;depth_max3,depth_min3};
其中depth_maxi,depth_mini为一个相邻块的最大深度值和最小深度值;
每个深度信息集中选择的最大深度值depthmax和最小深度值depthmin,计算深度差值D=depthmax-depthmin;如果D=0,将depthmin作为当前基本处理单元的深度值;如果D=1,将depthmax作为当前基本处理单元的深度值;如果D≥1,将(depthmin+1)作为当前基本处理单元的深度值;
b.根据当前基本处理单元的深度值大小划分该基本处理单元的编码单元的个数及尺寸大小:深度值为1时,编码单元为该基本处理单元,大小为32×32;
深度值为2时,该基本处理单元为四个正方形的编码单元,每个编码单元的大小为16×
16;
深度值为3时,该基本处理单元为十六个正方形的编码单元,每个编码单元的大小为8×8;
步骤(2)建立候选运动/视差矢量集:
c.将每个编码单元左上、上、右上、左、左下的5个矢量块的运动矢量/视差矢量加入候选矢量集;其中左上、上为两个相邻的矢量块,左、左下两个相邻的矢量块;每个矢量块大小为4×4;
d.将零运动矢量加入候选矢量集,零运动矢量选择的参考帧为前向参考帧和后向参考帧;
e.将全局视差矢量gdv加入候选矢量集,形成候选运动/视差矢量集;其中全局视差矢量计算如下:其中,C为前向参考帧中属于运动块,且该运动块的参考帧为视点间参考帧的8×8块的个数,dvi为该块的视差矢量;
步骤(3)根据重建块与周边块的纹理连续性Dtexture和像素连续性Dvbs-bma计算匹配度DCMA:DCMA=wbDvbs-bma+wtDtexture;
其中,Dvbs-bma为重建块与周边块的像素连续性,Dtexture为重建块与周边块的纹理连续性,wb、wt为权重因子,其中wb+wt=1,wb取值范围在[0.35~0.5];
所述的重建块为编码单元的编码块根据运动/视差矢量偏移后的编码块;
所述的周边块为与编码单元大小相同的,且分别与编码单元四边相接的编码块;
步骤(4)利用匹配度DCMA选择最优运动矢量/视差矢量,对编码单元进行恢复;
对每个编码单元的候选运动/视差矢量集中每个运动/视差矢量计算DCMA,并将最小的DCMA-min与阈值T1进行比较:DCMA-min≤T1时,使用DCMA-min对应的运动/视差矢量对丢失块进行重建,即将运动/视差矢量对应的重建块填充丢失块位置;DCMA-min>T1时,T1=2~3,使用运动矢量插值方法获取的运动矢量vI进行恢复,即将运动矢量vI对应的重建块填充丢失块位置;
运动矢量插值方法如下:
其中,i为T,B,L,R,分别代表上,下,左,右四个周边块,vi表示编号为i的周边块的运动/视差矢量,flagi编号为i的周边块是否为零运动矢量块,如果是,flagi=0,否则为1;s为flagi=1的个数,d1,d2,d3,d4分别表示上方,右方,下方,左方到丢失块之间的4×4的个数。
3.如权利要求2所述的基于MV-HEVC框架的立体视频B帧错误隐藏方法,其特征在于:所述的重建块与周边块的纹理连续性Dtexture计算方法如下:其中, 分别为重建块与上、下、左和右周边块四个边
界的像素方差,定义如下:
其中,N为编码单元的大小,μi表示周边块的像素平均值, μ′i表示重建块的像素平均值, i={T,B,L,R};(u,v)和(u′,v′)分别代表周围块和重建块在左上点的坐标,W和H代表块的宽和高;对于上方和下方的周边块:W=N,H=
2;对于左方和右方的周边块:W=2,H=N。
4.如权利要求2所述的基于MV-HEVC框架的立体视频B帧错误隐藏方法,其特征在于:所述的重建块与周边块的像素连续性Dvbs-bma计算方法如下:其中, 分别代表周边块和重建块沿着上,下,左,右
四个边界的绝对差值,vk为候选运动/视差矢量集中第k个运动/视差矢量;其中wi为权重因子,i={T,B,L,R},各分量的计算公式如下:其中,N为编码单元的大小,fc(·,·,t)为当前帧t、空间坐标位置为(·,·)的像素值,fr(·,·,t±l)为时域参考帧(t±l)、空间坐标位置为(·,·)的像素值。