CN102307304B - 基于图像分割的立体视频右图像整帧丢失的错误隐藏方法 - Google Patents
基于图像分割的立体视频右图像整帧丢失的错误隐藏方法 Download PDFInfo
- Publication number
- CN102307304B CN102307304B CN 201110275077 CN201110275077A CN102307304B CN 102307304 B CN102307304 B CN 102307304B CN 201110275077 CN201110275077 CN 201110275077 CN 201110275077 A CN201110275077 A CN 201110275077A CN 102307304 B CN102307304 B CN 102307304B
- Authority
- CN
- China
- Prior art keywords
- frame
- pixel
- viewpoint
- constantly
- macro block
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明提供一种基于图像分割的立体视频右图像整帧丢失的错误隐藏方法,属于视频图像处理领域,包括将丢失帧以宏块为单位划分为背景区域和运动区域、运动矢量反向投影调整区域的划分、找到右视点t-1时刻帧中的像素在左视点t-1时刻帧中的对应像素、分模式自适应隐藏前景区域的宏块和填补空洞。本发明提供一种基于图像分割的立体视频右图像整帧丢失的错误隐藏方法,以较低的计算复杂度准确地分割图像的前景背景,以不同方法隐藏图像的背景、运动复杂区域和运动规则区域,具有广泛的适用性;保持了重建图像物体的完整性,并尽可能减少不规则运动对图像质量的影响,且物体的边缘和纹理处也有较好的隐藏效果。
Description
技术领域
本发明属于视频图像处理领域,具体涉及一种基于图像分割的立体视频右图像整帧丢失的错误隐藏方法。
背景技术
多视点视频作为一种具有立体感和交互操作功能的新型数字媒体,是未来视频发展的重要方向。人类在自然条件下感知到的图像都是对三维物体的反映,传统的单视点二维视频不能真实再现自然场景,无法满足人类原始的视觉习惯。基于多视点视频处理的立体视频(Stereoscopic Video)技术与人脑立体视觉的产生原理相符合,能带给人们更加真实的视觉体验。多视点立体视频是由摄像机阵列中的各个相机从不同角度拍摄同一场景得到的一组视频信号,可以广泛应用于任意视点视频/电视、3D电视、交融式会议电视、远程医学诊疗、虚拟现实以及视频监视系统等多种正在兴起的多媒体业务。与单视点视频相比,立体视频数据量非常巨大,若不采取高效的压缩编码算法必将制约其广泛应用。
目前,主流的多视点立体视频编码方法是基于H.264/AVC的,不但要消减每个视点视频的时间、空间冗余信息,还要考虑多视点的特性去除视点间的冗余信息。当前编码帧除利用自身视点中已编码帧做参考帧外,还可利用其它视点中的已编码帧作为参考图像。文献(“S.Li,M.Yu,G.Jiang,et al.Approaches to H.264-based Stereoscopic Video Coding”)提出的双目视差结构是最基本的,也是目前应用最多的立体视频编码结构。如图1所示,左视点采用基于H.264等标准的IPPP编码结构,右视点各图像块以两种方式的预测:一种是基于右视点本身先前帧的运动补偿预测(MCP Motion Compensation Prediction)方式;另一种是基于左视点同时刻帧的视差补偿预测(DCP Disparity Compensation Prediction)方式。最后从中选择预测误差较小的一种作为该图像块的最终编码方式。这种编码结构兼顾了视点间和视点内部的相关性,能够得到比较理想的压缩效果。国际视频标准化组织正致力于对立体视频编码的研究和标准化。
在视频数据传输的过程中,由于信道中的丢包与误码等现象,解码端接收到的视频数据往往有错误或者不完整。这会导致解码图像出现不同程度的失真。另外,常用的视频压缩方法中大多采用了预测编码和变长编码,这使得视频数据对传输错误更加敏感,一个比特错误可能会导致解码图像严重失真,甚至影响后续帧的解码。另外,在低码率下,常将整帧打为一包,丢包会导致视频当前帧图像整帧丢失、质量严重恶化。对于立体视频,整帧丢失将严重影响立体视频的成像效果。为了解决这一问题,即在整帧丢失的情况下仍能得到较高质量的立体视频,需采用错误隐藏(EC Error concealment)技术对丢失帧恢复。错误隐藏的基本思想是在解码端利用图像的时间域、空间域或视间域的冗余信息恢复受损区域,掩盖和减少出现的错误,使其视觉效果接近原来的效果。
关于网络环境下的立体视频传输抗差错问题,已经有部分研究结果。立体视频左图像整帧丢失可以采用单视点的错误隐藏方法,所以对于立体视频主要研究右图像的错误隐藏方法。大多数错误隐藏方法是针对部分宏块丢失或条带丢失的情况,利用时域和空域的相关性及周围正确解码宏块的运动矢量(MV Motion Vector)或视差矢量(DV Disparity Vector)来恢复图像。
文献(“S.Knorr,C.Clemens,M.Kunter and T.Sikora.Robust Concealment forErroneous Block Bursts in Stereoscopic Images”)中,作者提出了一种使用投影变换模型的差错掩盖算法,首先通过Harris角点检测找到丢失块周围区域的特征点,根据极线几何关系在右图像中找到对应的特征点,再利用投影映射填补丢失块。但该方法复杂度较大,不适用于实时应用。在文献(“X.Xiang,D.Zhao,Q.Wang,et al.A Novel Error ConcealmentMethod for Stereoscopic Video Coding”)中,作者提出了一种基于视间相关性和重叠块运动视差补偿的多视点视频编码错误隐藏技术。首先应用块匹配准则选取周围块的运动矢量(MVMotion Vector)或视差矢量(DV Disparity Vector)中的最优矢量构建最优候选块,分配最大权值;然后将侯选替代块的每个像素的灰度值加权平均得到一个新的替代块。用加权叠加错误隐藏方法恢复的图像能减轻块效应,但会影响图像的细节、纹理。在文献(“C.T.E.R.Hewage,S.Worrall,S.Dogan,and A.M.Kondoz.Frame Concealment Algorithm forStereoscopic Video Using Motion Vector Sharing”)中,作者针对于双视加深度结构的立体视频采用深度图中对应宏块的MV来修复。实际上深度图的MV和彩色视频图的MV只是近似相等,该方法并没有深入挖掘彩色视频图和深度图的联系。
以上是针对立体视频宏块级的错误隐藏方法,若立体视频出现整帧丢失时采用宏块级的错误隐藏方法,由于错误宏块周围不存在正确解码的宏块而失效。的运动信息可以利用。目前,立体视频整帧丢失的错误隐藏算法也有一些成果。文献(“L.Pang,M.Yu,G.Jiang,W.Liu,and Z.Jiang.Relativity analysis-based error concealment algorithm for entireframe loss of stereo video”)提出了基于视频相关性分析的时间域和空间域立体视频错误隐藏算法。然而,对于左视图中被遮挡的物体,其隐藏效果不理想。在文献(“C.Bilen,A.Aksay,and G.B.Akar.Two novel methods for full frame loss concealment in stereovideo”)中,作者提出了以图像块和以像素为单位两种隐藏算法,利用前一时刻正确解码帧的视差矢量和运动矢量来恢复当前丢失帧。在文献(“S.Liu,Y.Chen,Y.K.Wang,M.Gabbouj,M.M.Hannuksela,H.Q.Li.Frame loss error concealment for multiview video coding”)中,作者提出了利用其它视点的运动信息隐藏丢失图像的多视点视频的错误隐藏算法。在文献(“Y.Chen,C.Cai,and K.-K.Ma.Stereoscopic video error concealment for missingframe recovery using disparity-based frame difference projection”)中,作者提出了一种基于视差矢量的帧差投影法,通过投影左视点图像的时域帧差来修复右图像。该算法对视差估计的准确度要求高,当视差估计或帧差投影出现偏差时隐藏效果不佳。在文献(“TY.Chung,S Sull,C.S.Kim.Frame Loss Concealment for Stereoscopic Video Based onInter-view Similarity of Motion and Intensity Difference”)中,作者提出了利用视点间运动和强度变化相似性的立体视频整帧错误隐藏方法。该方法的错误隐藏效果相比上述方法有一定提高,但重建图像的背景和物体边缘处易出现噪声。
综上所述,由于立体视频的特殊性,不能照搬传统单视点视频传输抗差错技术。重建图像中错误区域的像素值需要利用空间相关性、时间相关性和视点间相关性。对于图像中运动情况不同的各个区域,以上的三种相关性强弱程度是不同的:对于纹理规则及像素值无变化或变化很小的区域,空间相关性更强;对于静止的区域或运动轨迹规则、简单的区域,时间相关性更强;对于深度较小的前景等区域,视点间相关性更强。如何确定错误区域中哪种相关性占主导地位,如何利用这种相关性恢复视频图像是立体视频错误隐藏技术的难点。因此,需要一种对物体边缘、细节也有较好隐藏效果,复杂度适中的立体视频右图像整帧丢失的错误隐藏算法。
发明内容
针对现有技术中存在的问题,本发明提出了一种基于图像分割的立体视频右图像整帧丢失的错误隐藏方法,基于图像前景背景分割以不同方法分别隐藏丢失右图像的前景和背景,恢复错误传输的图像,提高立体视频的质量。
本发明提出的基于图像分割的立体视频右图像整帧丢失的错误隐藏方法,包括以下几个步骤:
步骤一:将丢失帧以宏块为单位划分为背景区域和运动区域:
如果立体视频右视点t时刻帧Fr,t丢失,已正确解码的相邻时刻的右视点t-1时刻帧Fr,t-1、左视点t-1时刻帧Fl,t-1和左视点t时刻帧F1,t将被用于恢复右视点t时刻帧Fr,t,根据立体视频的时间和空间相关性,利用右视点t时刻帧丢失帧的先前帧t-1时刻帧Fr,t-1进行区域划分,将丢失帧划分为背景区域和前景区域,具体为:
(1)左视点t-1时刻帧Fl,t-1和右视点t-2时刻帧Fr,t-2分别与右视点t-1时刻帧Fr,t-1的每个4×4子块的对应像素点做差值,分别取绝对误差和SAD,右视点t-1时刻帧Fr,t-1的每个4×4子块均得到两个绝对误差和SAD值,分别为SADv和SADt:
其中,SADv表示不同视点同一时刻的两帧SAD值,SADt表示同一视点不同时刻的两帧SAD值,Fr,t-1(x,y)表示右视点t-1时刻帧Fr,t-1坐标为(x,y)像素点的灰度值,Fl,t-1(x,y)表示左视点t-1时刻帧Fl,t-1坐标为(x,y)像素点的灰度值,Fr,t-2(x,y)表示右视点t-2时刻的帧Fr,t-2坐标为(x,y)像素点的灰度值,(x0,y0)为4×4子块第一行左边第一个像素的坐标,m取0~3的整数,n取0~3的整数,用m、n遍历4×4子块内的每一个像素,(x0+m,y0+n)表示4×4子块每一个像素的坐标;
(2)每个宏块中的16个4×4子块,比较每个子块对应的不同视点同一时刻的两帧SAD值SADv和同一视点不同时刻的两帧SAD值SADt大小。若宏块中有一个子块的SADv≤SADt,则该宏块属于前景区域;否则,该宏块属于背景区域;
(3)重复步骤(1)、(2),直至计算完最后一个宏块,将一帧图像的整个区域划分为前景区域和背景区域;
步骤二:运动矢量反向投影调整区域的划分:
调整步骤一中丢失帧的区域划分,根据时域的相关性,先得到步骤一中划分后属于前景区域边缘的每个宏块的运动矢量,如果宏块采用视差补偿预测或帧内预测方法,其运动矢量通过用周围相邻宏块的运动矢量预测或对该宏块做运动估计来得到。将t-1时刻帧Fr,t-1某一前景区域边缘的宏块的运动矢量反向投影到右视点t时刻帧Fr,t,t时刻帧Fr,t的背景区域的宏块中有被该投影的前景区域的宏块覆盖的,将这些宏块标记为属于前景区域的宏块,采用相同的方法完成对前景区域边缘的每个宏块的运动矢量的反向投影。
丢失帧已划分为背景区域和前景区域,其中背景区域利用前一时刻帧图像信息进行替代补偿,前景区域利用视点间或视点内的相关性来恢复,在步骤三到步骤六说明。
步骤三:找到右视点t-1时刻帧Fr,t-1中的像素在左视点t-1时刻帧Fl,t-1中的对应像素:
从右视点t-1时刻帧Fr,t-1到左视点t-1时刻帧Fl,t-1的视差估计采用全搜索的方法获得,右视点t-1时刻帧Fr,t-1中像素的视差矢量为DVt-1,以最小化SAD为匹配准则进行视差估计:
DVx表示DVt-1的水平分量;DVy表示DVt-1的垂直分量,B表示3×3像素块,(x,y)表示区域B中像素的坐标,视差估计之后用3×3中值滤波器滤除不规则的视差矢量,当且仅当3×3窗口的中心为9个像素里视差矢量最大或最小值时异常值被滤除,采用3×3窗口的中心像素的视差矢量被替换为这9个像素视差矢量的中值,否则保留该像素原视差矢量不变;右视点t-1时刻帧Fr,t-1中的非遮挡像素通过视差矢量找到在左视点t-1时刻帧Fl,t-1中的对应像素;
步骤四:分模式自适应隐藏前景区域的宏块:
经步骤三完成的前景区域的非遮挡像素做视差估计找到在左视点的对应像素后,再进行分模式自适应隐藏,前景区域利用视差信息和时间域的运动信息进行修复;若一个宏块内的每个像素的视差矢量分布在均值视差矢量DV附近的4个像素宽度的区间里,则该宏块用视差矢量的均值视差矢量DV以4×4子块为单元恢复:
Fr,t(x,y)=Fl,t(x+DVx,y+DVy)
Fl,t(x,y)表示左视点t时刻帧Fl,t坐标为(x,y)像素点的灰度值,否则的话,该宏块可能位于前景物体的边缘或者其运动复杂不适合以4×4子块为单元恢复,将左视点t时刻帧Fl,t的运动矢量投影到右视点t时刻帧Fr,t来重建丢失帧Fr,t的每个像素;当前时刻左右视点对应的同一运动像素相对前一时刻的运动矢量近似相等:
MVr,t(x,y)=MV1,t(x+DVx,y+DVy)其中,MVr,t(x,y)表示右视点t时刻帧Fr,t中坐标为(x,y)的像素点的运动矢量,右视点t时刻帧Fr,t中坐标为(x,y)的像素点在左视点Fl,t中对应像素的坐标为(x+DVx,y+DVy),MVl,t(x+DVx,y+DVy)表示左视点帧Fl,t中坐标为(x+DVx,y+DVy)的像素点的运动矢量;
如果左视点的对应像素属于帧内预测宏块,MV1,t用周围相邻宏块的运动矢量预测或对该宏块做运动估计来得到;运动估计时,周围宏块的运动矢量作为搜索的起始点,搜索采用最小SAD匹配准则,B表示3×3像素块:
然后前景区域的像素按下述公式隐藏,得到前景区域的像素:
Fr,t(x,y)=Fr,t-1(x+MVx,y+MVy)
步骤五:填补空洞:
上述方法用视差矢量和运动矢量隐藏丢失帧后,由于遮挡会有未隐藏的空洞区域;当空洞区域大于2×2像素时,中值滤波器不能填补,以零矢量从时域上前一时刻帧拷贝;
步骤六:时域亮度分量的变化补偿:
左视点t-1时刻帧Fl,t-1和左视点t时刻帧Fl,t两帧的时域帧差用下述公式来表示:
ΔFl,t-1→t(x,y)=Fl,t(x,y)-Fl,t-1(x,y)
其中ΔFl,t-1→t(x,y)表示左视点t时刻帧Fl,t和左视点t-1时刻帧Fl,t-1每个像素灰度的差值;Fl,t(x,y)表示左视点t-1时刻Fl,t坐标为(x,y)像素的灰度值;
丢失的右视点帧的时域帧差:ΔFr,t-1→t(x,y)=ΔFl,t-1→t(x+DVx,y+DVy)
ΔFr,t-1→t(x,y)表示右视点t时刻帧Fr,t和右视点t-1时刻帧Fr,t-1每个像素灰度的差值;右视点帧t时刻Fr,t中坐标为(x,y)的像素点在左视点Fl,t中对应像素的坐标为(x+DVx,y+DVy);ΔFl,t-1→t(x+DVx,y+DVy)表示表示左视点t时刻帧Fl,t中坐标为(x+DVx,y+DVy)的像素点和t-1时刻帧Fl,t-1对应像素灰度的差值,得到丢失帧前景区域每个像素的时域帧差,将其加至步骤五得到的前景区域错误隐藏图像上:
Fr,t(x-MVx,y-MVy)=Fr,t-1(x,y)+ΔFr,t-1→t(x,y)
然后再用中值滤波器除噪,得到丢失帧Fr,t的重建图像。
本发明的优点在于:
(1)本发明提供一种基于图像分割的立体视频右图像整帧丢失的错误隐藏方法,以较低的计算复杂度准确地分割图像的前景背景;
(2)本发明提供一种基于图像分割的立体视频右图像整帧丢失的错误隐藏方法,以不同方法隐藏图像的背景、运动复杂区域和运动规则区域,具有广泛的适用性;
(3)本发明提供一种基于图像分割的立体视频右图像整帧丢失的错误隐藏方法,对前景宏块自适应地以像素精度或4×4子块单元隐藏,降低了运算量;
(4)本发明提供一种基于图像分割的立体视频右图像整帧丢失的错误隐藏方法,保持了重建图像物体的完整性,并尽可能减少不规则运动对图像质量的影响;
(5)本发明提供一种基于图像分割的立体视频右图像整帧丢失的错误隐藏方法,物体的边缘和纹理处也有较好的隐藏效果。
附图说明
图1:本发明提供一种基于图像分割的立体视频右图像整帧丢失的错误隐藏方法的流程图;
图2:本发明中立体视频双目视差预测编码结构的示意图;
图3:本发明中运动矢量反向投影调整区域的划分的示意图;
图4:本发明中测试序列“IU”经运动矢量反向投影的前景背景分割示意图;
图5:本发明中立体视频时间域和视点间相关性分析示意图;
图6-A:“IU”序列右视点第17帧原始序列;
图6-B:采用对比方法对图6-A进行错误隐藏后的效果图;
图6-C:采用本发明提出的错误隐藏方法对图6-A进行错误隐藏后的效果图;
图7-A:“Akko&Kayo”序列右视点第18帧原始序列;
图7-B:采用对比方法对图7-A进行错误隐藏后的效果图;
图7-C:采用本发明提出的错误隐藏方法对图7-A进行错误隐藏后的效果图。
具体实施方式
下面将结合附图对本发明作进一步的详细说明。
本发明提供一种基于图像分割的立体视频右图像整帧丢失的错误隐藏方法,如图1所示,包括以下几个步骤:
步骤一:将丢失帧以宏块为单位划分为背景区域和运动区域:
如果立体视频右视点t时刻帧Fr,t丢失,已正确解码的相邻时刻的右视点t-1时刻帧Fr,t-1、左视点t-1时刻帧F1,t-1和左视点t时刻帧F1,t将被用于恢复右视点t时刻帧Fr,t。根据立体视频的时间和空间相关性,先利用右视点t时刻帧Fr,t的先前帧t-1时刻帧Fr,t-1进行区域划分,将丢失帧划分为背景区域和前景区域,再用步骤二的方法调整区域划分。区域划分的目标不是将当前图像以像素级的准确度分割为前景区域和背景区域,而是识别出时域上发生运动的宏块,便于以不同方式进行错误隐藏。如图2所示,左视点采用基于H.264等标准的IPPP编码结构,右视点的各图像块以两种方式进行预测:一种是基于右视点本身先前帧的运动补偿预测(MCP Motion Compensation Prediction)方式;另一种是基于左视点同时刻帧的视差补偿预测(DCP Disparity Compensation Prediction)方式。最后从中选择预测误差较小的一种作为该图像块的最终编码方式。这种编码结构兼顾了视点间和视点内部的相关性,能够得到比较理想的压缩效果。
为了以较高的准确性和较低的复杂度来划分宏块,具体的方法如下:
(1)左视点t-1时刻帧Fl,t-1和右视点t-2时刻帧Fr,t-2分别与右视点t-1时刻帧Fr,t-1的每个4×4子块的对应像素点做差值,分别取绝对误差和(SAD Sum of Absolute Difference),右视点t-1时刻帧Fr,t-1的每个4×4子块均得到两个绝对误差和SAD值,分别为SADv和SADt:
其中,角标v表示视点view,SADv表示不同视点同一时刻的两帧SAD值,角标t表示时间time,SADt表示同一视点不同时刻的两帧SAD值,Fr,t-1(x,y)表示右视点t-1时刻帧Fr,t-1坐标为(x,y)像素点的灰度值,Fl,t-1(x,y)表示左视点t-1时刻帧Fl,t-1坐标为(x,y)像素点的灰度值,Fr,t-2(x,y)表示右视点t-2时刻的帧Fr,t-2坐标为(x,y)像素点的灰度值。(x0,y0)为4×4子块第一行左边第一个像素的坐标。m取0~3的整数,n取0~3的整数,用m、n遍历4×4子块内的每一个像素,(x0+m,y0+n)表示4×4子块每一个像素的坐标。
(2)每个宏块中的16个4×4子块,比较每个子块对应的不同视点同一时刻的两帧SAD值SADv和同一视点不同时刻的两帧SAD值SADt大小。若宏块中有一个子块的SADv≤SADt,说明此宏块在时间域上的运动较大,则该宏块属于前景区域;否则,该宏块属于背景区域。
(3)重复步骤(1)、(2),直至计算完最后一个宏块,将一帧图像的整个区域被划分为前景区域和背景区域。
步骤二:运动矢量反向投影调整区域的划分:
考虑到物体的运动,采用如图3所示的方法来调整步骤一中丢失帧区域的划分,以保证分割的准确性。根据时域的相关性,MVt-1≈MVt,MVt-1表示t-1时刻帧Fr,t-1中某一宏块的运动矢量,MVt表示t时刻帧Fr,t中对应宏块的运动矢量。先得到步骤一中划分后属于前景区域边缘每个宏块的运动矢量,如果宏块采用视差补偿预测或帧内预测方法,其运动矢量可以通过用周围相邻宏块的运动矢量预测或对该宏块做运动估计来得到,运动估计是视频压缩编码的核心技术,所谓运动估计就是在参考帧(参考帧是与当前帧相关性较强的任意已编码帧)中找到当前帧中每个块的对应位置的过程。运动估计得到的当前帧与参考帧对应块间的位移矢量就是运动矢量,一般由水平和垂直分量组成,运动估计的主要目的是高效准确地获得运动矢量。t-1时刻帧Fr,t-1的某一前景区域边缘的宏块的运动矢量反向投影到右视点t时刻帧Fr,t,t时刻帧Fr,t的背景区域的宏块中有被该投影的前景区域的宏块覆盖的,将这些宏块标记为属于前景区域的宏块,采用相同的方法完成对前景区域边缘的每个宏块的运动矢量的反向投影。图3所示,1-9表示一幅图像前景区域边缘某处相邻的9个宏块,其中浅灰色宏块1、2、4、5属于前景区域,其余白色宏块3、6、7、8、9属于背景区域。下面以宏块5为例说明调整方法。将宏块5的运动矢量MVt-1反向投影到右视点t时刻帧Fr,t,则背景区域的宏块6、8、9被投影的宏块5覆盖上,所以将宏块6、8、9也标记为属于前景区域的宏块。如图4所示的测试序列“IU”经运动矢量反向投影前后的区域划分效果,前景宏块用灰色来标记。完成对前景区域边缘的每个宏块的运动矢量的反向投影。
丢失帧已划分为背景区域和前景区域,其中背景区域利用前一时刻帧图像信息进行替代补偿,前景区域利用视点间或视点内的相关性来恢复,在步骤三到步骤六详细说明。
步骤三:找到右视点t-1时刻帧Fr,t-1中的像素在左视点t-1时刻帧Fl,t-1中的对应像素:
从右视点t-1时刻帧Fr,t-1到左视点t-1时刻帧Fl,t-1的视差估计采用全搜索的方法获得。根据极线准则,右视点t-1时刻帧Fr,t-1的像素(xr,yr)和左视点t-1时刻帧Fl,t-1的像素(xl,yl)在t-1时刻应位于一对极线上。对于平行放置的相机系统,极线重合,同一物体在左右视点的纵坐标yl≈yr。其中(xl,yl)、(xr,yr)分别是同一物体在左视点、右视点图像帧里的坐标,角标l表示左视点,角标r表示右视点。
右视点t-1时刻帧Fr,t-1中像素的视差矢量为DVt-1。以最小化SAD为匹配准则进行视差估计:
DVx表示DVt-1的水平分量,搜索范围是[-36,36];DVy表示DVt-1的垂直分量,搜索范围是[-4,4],B表示3×3像素块,(x,y)表示区域B中像素的坐标。为了减小计算量,可根据周围相邻像素的视差矢量选取搜索的初始点。视差估计之后用3×3中值滤波器滤除不规则的视差矢量DV,当且仅当3×3窗口的中心为9个像素视差矢量的最大或最小值时异常值被滤除,采用3×3窗口的中心像素的DV被替换为这9个像素DV的中值,否则保留该像素原DV不变。右视点t-1时刻帧Fr,t-1中的非遮挡像素可以通过视差矢量找到在左视点t-1时刻帧Fl,t-1中的对应像素(非遮挡像素),遮挡像素在步骤五中处理。
步骤四:根据步骤三中得到的视差矢量的分布情况分模式自适应隐藏前景区域的宏块:
经步骤三完成的前景区域的非遮挡像素做视差估计找到在左视点的对应像素后,再进行分模式自适应隐藏。前景区域利用视差信息和时间域的运动信息进行修复。由于左视点和右视点从不同视角来表示同一物体,所以它们经历了相同的运动。
为了保持重建图像物体的完整性并且减少不规则运动对图像质量的影响,以两种模式自适应选择隐藏前景区域。若一个宏块内的每个像素的视差矢量分布在均值视差矢量DV附近的4个像素宽度的区间里,则该宏块用视差矢量的均值视差矢量DV以4×4子块为单元恢复:
Fr,t(x,y)=Fl,t(x+DVx,y+DVy)
Fl,t(x,y)表示左视点t时刻帧Fl,t坐标为(x,y)像素点的灰度值;否则的话,该宏块位于前景物体的边缘或者其运动复杂不适合以4×4子块为单元恢复。这种情况下,将左视点t时刻帧Fl,t的运动矢量投影到右视点t时刻帧Fr,t来重建丢失帧Fr,t的每个像素。视点间及时域的相关性如图5所示,图中P、P’、Q、Q’四个点分别表示同一个物体在t时刻和t-1时刻以及左右视点中的位置。具体来说,P点表示该物体在右视点t-1时刻的位置,P’点表示该物体在左视点t-1时刻的位置,Q点表示该物体在右视点t时刻的位置,Q’点表示该物体在左视点t时刻的位置。由于这四个点表示同一个物体,因此它们的灰度值近似相等,即四者存在相关性。右视点t时刻帧Fr,t中的像素Q与前一时刻帧Fr,t-1中的对应像素P通过运动矢量MVr相匹配,右视点t时刻帧Fr,t-1中的像素P与左视点t-1时刻帧Fl,t-1中的对应像素P’通过视差矢量DVt-1相匹配,左视点t时刻帧Fl,t中的像素Q’与前一时刻帧Fl,t-1中的对应像素P’通过运动矢量MV1相匹配,右视点t时刻帧Fr,t中的像素Q与左视点t时刻帧Fl,t中的像素Q’通过视差矢量DVt相匹配。假设物体做平移运动且不发生形变,则可以推断出,当前时刻左右视点对应的同一运动像素相对前一时刻的运动矢量近似相等:
MVr,t(x,y)=MV1,t(x+DVx,y+DVy)
其中,MVr,t(x,y)表示右视点t时刻帧Fr,t中坐标为(x,y)的像素点的运动矢量,右视点t时刻帧Fr,t中坐标为(x,y)的像素点在左视点Fl,t中对应像素的坐标为(x+DVx,y+DVy),MVl,t(x+DVx,y+DVy)表示左视点帧Fl,t中坐标为(x+DVx,y+DVy)的像素点的运动矢量。
如果左视点的对应像素属于帧内预测宏块,那么MV1,t由周围宏块的运动矢量或运动估计来获得。运动估计时,周围宏块的运动矢量作为搜索的起始点,以减少运算量,搜索采用最小SAD匹配准则,搜索区域[-8,8]×[-8,8],B表示3×3像素块
然后前景区域的像素按下述公式隐藏,得到前景区域的像素。
Fr,t(x,y)=Fr,t-1(x+MVx,y+MVy)
步骤五:填补空洞:
上述方法用视差矢量和运动矢量隐藏丢失帧后,由于遮挡会有未隐藏的空洞区域。空洞是指由于左右视点的拍摄角度不同,右视点的物体由于在左视点被遮挡(“即该物体在右视点可见,在左视不可见”),所以不能通过左视点修复。一部分空洞可由3×3的中值滤波器来填补。当空洞区域大于2×2像素时,中值滤波器不能填补,以零矢量从时域上前一时刻帧拷贝。
步骤六:时域亮度分量的变化补偿:
左视点t-1时刻帧Fl,t-1和左视点t时刻帧Fl,t两帧的时域帧差(这里只考虑亮度分量)用下述公式来表示:
ΔFl,t-1→t(x,y)=Fl,t(x,y)-Fl,t-1(x,y)
其中ΔFl,t-1→t(x,y)表示左视点t时刻帧Fl,t和左视点t-1时刻帧Fl,t-1每个像素灰度的差值;Fl,t(x,y)表示左视点t-1时刻Fl,t坐标为(x,y)像素的灰度值。
左视点和右视点从不同视角来表示同一物体,所以它们经历了相同的运动而且有几乎相同的时域帧差。因此,根据DVt-1≈DVt,DVt-1表示t-1时刻帧Fr,t-1中某一宏块的视差矢量,DVt表示t时刻帧Fr,t中对应宏块的视差矢量,丢失的右视点帧的时域帧差可由左视点按照下述公式来推测出:
ΔFr,t-1→t(x,y)=ΔFl,t-1→t(x+DVx,y+DVy)
ΔFr,t-1→t(x,y)表示右视点t时刻帧Fr,t和右视点t-1时刻帧Fr,t-1每个像素灰度的差值;右视点帧t时刻Fr,t中坐标为(x,y)的像素点在左视点Fl,t中对应像素的坐标为(x+DVx,y+DVy);ΔFl,t-1→t(x+DVx,y+DVy)表示表示左视点t时刻帧Fl,t中坐标为(x+DVx,y+DVy)的像素点和t-1时刻帧Fl,t-1对应像素灰度的差值。由上式可得到丢失帧前景区域每个像素的时域帧差,将其加至步骤五得到的前景区域错误隐藏图像上:
Fr,t(x-MVx,y-MVy)=Fr,t-1(x,y)+ΔFr,t-1→t(x,y)
然后再用中值滤波器除噪,即可得到丢失帧Fr,t的重建图像。
选择了2个双目结构的立体视频做测试序列,序列“IU”(大小为320×240,帧率30帧/秒,取前100帧)和序列“Akko&Kayo”(大小为640×480,帧率30帧/秒,取前160帧)。采用H.264测试模型JM17.2的立体档次双目视差结构对测试序列编码,一帧打为一包。其中,左视点1个I帧后接9个P帧,右视点均为P帧。参考帧数为5,量化参数QP选择28、32、36,丢包率(PLR Packet Loss Rate)为5%。
如图6-A、图6-B和图6-C所示的“IU”序列右视点第17帧原始序列(34.90dB)、采用对比方法(文献:TY.Chung,S Sull,C.S.Kim.Frame Loss Concealment for StereoscopicVideo Based on Inter-view Simi larity of Motion and Intensity Difference中的方法)隐藏后的效果图(27.10dB)和采用本发明提出方法隐藏后的效果图(28.75dB),可以看出,本发明提出的方法对于人脸周围区域的隐藏效果有明显的提高。如图7-A、图7-B和图7-C所示的“Akko&Kayo”序列右视点第18帧原始序列(37.18dB)、采用对比方法隐藏后的效果图(30.20dB)和采用本发明提出的方法隐藏后的效果图(32.36dB),可以看出本发明提出的错误隐藏方法无论是在前景还是背景都有很高的主观效果,客观质量也胜过对比方法。
Claims (1)
1.一种基于图像分割的立体视频右图像整帧丢失的错误隐藏方法,其特征在于:包括以下几个步骤:
步骤一:将丢失帧以宏块为单位划分为背景区域和运动区域:
如果立体视频右视点t时刻帧Fr,t丢失,已正确解码的相邻时刻的右视点t-1时刻帧Fr,t-1、左视点t-1时刻帧F1,t-1和左视点t时刻帧F1,t将被用于恢复右视点t时刻帧Fr,t,根据立体视频的时间和空间相关性,利用右视点t时刻帧丢失帧的先前帧t-1时刻帧Fr,t-1进行区域划分,将丢失帧划分为背景区域和前景区域,具体为:
(1)左视点t-1时刻帧Fl,t-1和右视点t-2时刻帧Fr,t-2分别与右视点t-1时刻帧Fr,t-1的每个4×4子块的对应像素点做差值,分别取绝对误差和SAD,右视点t-1时刻帧Fr,t-1的每个4×4子块均得到两个绝对误差和SAD值,分别为SADv和SADt:
其中,SADv表示不同视点同一时刻的两帧SAD值,SADt表示同一视点不同时刻的两帧SAD值,Fr,t-1(x,y)表示右视点t-1时刻帧Fr,t-1坐标为(x,y)像素点的灰度值,Fl,t-1(x,y)表示左视点t-1时刻帧Fl,t-1坐标为(x,y)像素点的灰度值,Fr,t-2(x,y)表示右视点t-2时刻的帧Fr,t-2坐标为(x,y)像素点的灰度值,(x0,y0)为4×4子块第一行左边第一个像素的坐标,m取0~3的整数,n取0~3的整数,用m、n遍历4×4子块内的每一个像素,(x0+m,y0+n)表示4×4子块每一个像素的坐标;
(2)每个宏块中的16个4×4子块,比较每个子块对应的同一视点不同时刻的两帧SAD值SADv和同一视点不同时刻的两帧SAD值SADt大小,若宏块中有一个子块的SADv≤SADt,则该宏块属于前景区域;否则,该宏块属于背景区域;
(3)重复步骤(1)、(2),直至计算完最后一个宏块,将一帧图像的整个区域被划分为前景区域和背景区域;
步骤二:运动矢量反向投影调整区域的划分:
调整步骤一中丢失帧的区域划分,根据时域的相关性,先得到步骤一中划分后属于前景区域边缘的每个宏块的运动矢量,如果宏块采用视差补偿预测或帧内预测方法,其运动矢量通过用周围相邻宏块的运动矢量预测或对该宏块做运动估计来得到,将t-1时刻帧Fr,t-1某一前景区域边缘的宏块的运动矢量反向投影到右视点t时刻帧Fr,t,t时刻帧Fr,t的背景区域的宏块中有被该投影的前景区域的宏块覆盖的,将这些宏块标记为属于前景区域的宏块;采用相同的方法完成前景区域边缘的每一个宏块的运动矢量的反向投影;
丢失帧已划分为背景区域和前景区域,其中背景区域利用前一时刻帧图像信息进行替代补偿,前景区域利用视点间或视点内的相关性来恢复,在步骤三到步骤六说明;
步骤三:找到右视点t-1时刻帧Fr,t-1中的像素在左视点t-1时刻帧Fl,t-1中的对应像素:
从右视点t-1时刻帧Fr,t-1到左视点t-1时刻帧Fl,t-1的视差估计采用全搜索的方法获得,右视点t-1时刻帧Fr,t-1中像素的视差矢量为DVt-1,以最小化SAD为匹配准则进行视差估计:
DVx表示DVt-1的水平分量;DVy表示DVt-1的垂直分量,B表示3×3像素块,(x,y)表示区域B中像素的坐标,视差估计之后用3×3中值滤波器滤除不规则的视差矢量,当且仅当3×3窗口的中心为9个像素里视差矢量最大或最小值时异常值被滤除,采用3×3窗口的中心像素的视差矢量被替换为这9个像素视差矢量的中值,否则保留该像素原视差矢量不变;右视点t-1时刻帧Fr,t-1中的非遮挡像素通过视差矢量找到在左视点t-1时刻帧Fl,t-1中的对应像素;
步骤四:分模式自适应隐藏前景区域的宏块:
经步骤三完成的前景区域的非遮挡像素做视差估计找到在左视点的对应像素后,再进行分模式自适应隐藏,前景区域利用视差信息和时间域的运动信息进行修复;若一个宏块内的每个像素的视差矢量分布在均值视差矢量DV附近的4个像素宽度的区间里,则该宏块用视差矢量的均值视差矢量DV以4×4子块为单元恢复:
Fr,t(x,y)=Fl,t(x+DVx,y+DVy)
Fl,t(x,y)表示左视点t时刻帧Fl,t坐标为(x,y)像素点的灰度值,否则的话,该宏块可能位于前景物体的边缘或者其运动复杂不适合以4×4子块为单元恢复,将左视点t时刻帧Fl,t的运动矢量投影到右视点t时刻帧Fr,t来重建丢失帧Fr,t的每个像素;当前时刻左右视点对应的同一运动像素相对前一时刻的运动矢量近似相等:
MVr,t(x,y)=MV1,t(x+DVx,y+DVy)
其中,MVr,t(x,y)表示右视点t时刻帧Fr,t中坐标为(x,y)的像素点的运动矢量,右视点t时刻帧Fr,t中坐标为(x,y)的像素点在左视点Fl,t中对应像素的坐标为(x+DVx,y+DVy),MVl,t(x+DVx,y+DVy)表示左视点帧Fl,t中坐标为(x+DVx,y+DVy)的像素点的运动矢量;
如果左视点的对应像素属于帧内预测宏块,MV1,t用周围相邻宏块的运动矢量预测或对该宏块做运动估计来得到;运动估计时,周围宏块的运动矢量作为搜索的起始点,搜索采用最小SAD匹配准则,B表示3×3像素块:
然后前景区域的像素按下述公式隐藏,得到前景区域的像素:
Fr,t(x,y)=Fr,t-1(x+MVx,y+MVy)
步骤五:填补空洞:
上述方法用视差矢量和运动矢量隐藏丢失帧后,由于遮挡会有未隐藏的空洞区域;当空洞区域大于2×2像素时,中值滤波器不能填补,以零矢量从时域上前一时刻帧拷贝;
步骤六:时域亮度分量的变化补偿:
左视点t-1时刻帧Fl,t-1和左视点t时刻帧Fl,t两帧的时域帧差用下述公式来表示:
ΔFl,t-1→t(x,y)=Fl,t(x,y)-Fl,t-1(x,y)
其中ΔFl,t-1→t(x,y)表示左视点t时刻帧Fl,t和左视点t-1时刻帧Fl,t-1每个像素灰度的差值;Fl,t(x,y)表示左视点t-1时刻Fl,t坐标为(x,y)像素的灰度值;
丢失的右视点帧的时域帧差:ΔFr,t-1→t(x,y)=ΔFl,t-1→t(x+DVx,y+DVy)
ΔFr,t-1→t(x,y)表示右视点t时刻帧Fr,t和右视点t-1时刻帧Fr,t-1每个像素灰度的差值;右视点帧t时刻Fr,t中坐标为(x,y)的像素点在左视点Fl,t中对应像素的坐标为(x+DVx,y+DVy);ΔFl,t-1→t(x+DVx,y+DVy)表示左视点t时刻帧Fl,t中坐标为(x+DVx,y+DVy)的像素点和t-1时刻帧Fl,t-1对应像素灰度的差值,得到丢失帧前景区域每个像素的时域帧差,将其加至步骤五得到的前景区域错误隐藏图像上:
Fr,t(x-MVx,y-MVy)=Fr,t-1(x,y)+ΔFr,t-1→t(x,y)
然后再用中值滤波器除噪,得到丢失帧Fr,t的重建图像。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110275077 CN102307304B (zh) | 2011-09-16 | 2011-09-16 | 基于图像分割的立体视频右图像整帧丢失的错误隐藏方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110275077 CN102307304B (zh) | 2011-09-16 | 2011-09-16 | 基于图像分割的立体视频右图像整帧丢失的错误隐藏方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102307304A CN102307304A (zh) | 2012-01-04 |
CN102307304B true CN102307304B (zh) | 2013-04-03 |
Family
ID=45381101
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201110275077 Expired - Fee Related CN102307304B (zh) | 2011-09-16 | 2011-09-16 | 基于图像分割的立体视频右图像整帧丢失的错误隐藏方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102307304B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102595145B (zh) * | 2012-03-13 | 2014-08-06 | 宁波大学 | 一种立体视频整帧丢失错误隐藏方法 |
CN102611895A (zh) * | 2012-03-15 | 2012-07-25 | 天津大学 | 基于多视点立体视频的时、空域错误掩盖方法 |
CN103167291B (zh) * | 2013-03-08 | 2016-04-27 | 宁波大学 | 一种基于结构相似度的立体视频整帧丢失错误隐藏方法 |
CN103220533A (zh) * | 2013-03-29 | 2013-07-24 | 宁波大学 | 一种立体视频宏块丢失错误隐藏方法 |
CN103237226B (zh) * | 2013-04-07 | 2016-08-03 | 宁波大学 | 一种立体视频宏块丢失错误隐藏方法 |
WO2014166063A1 (en) * | 2013-04-09 | 2014-10-16 | Mediatek Inc. | Default vector for disparity vector derivation for 3d video coding |
CN103248911B (zh) * | 2013-05-20 | 2015-11-04 | 山东大学 | 多视点视频中基于空时结合的虚拟视点绘制方法 |
CN104602028B (zh) * | 2015-01-19 | 2017-09-29 | 宁波大学 | 一种立体视频b帧整帧丢失错误隐藏方法 |
CN105992012B (zh) * | 2015-02-17 | 2020-09-15 | 中兴通讯股份有限公司 | 一种错误隐藏的方法和装置 |
CN106875414B (zh) * | 2016-12-22 | 2019-07-09 | 国网浙江省电力公司杭州供电公司 | 一种基于视觉质量感知模型的运动目标检测方法 |
CN106791773B (zh) * | 2016-12-30 | 2018-06-01 | 浙江工业大学 | 一种基于深度图像的新视点合成方法 |
CN109922349B (zh) * | 2019-02-01 | 2021-02-19 | 杭州电子科技大学 | 基于视差矢量外推的立体视频右视点b帧错误隐藏方法 |
CN111083502B (zh) * | 2019-11-04 | 2021-06-08 | 杭州电子科技大学 | 一种基于块编码特性的3d视频错误隐藏方法 |
CN117390206B (zh) * | 2023-10-26 | 2024-07-19 | 杭州食方科技有限公司 | 生鲜图像存储方法、装置、电子设备和计算机可读介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100215428B1 (ko) * | 1995-01-23 | 1999-08-16 | 윤종용 | B픽처의에러은폐방법 |
US6549674B1 (en) * | 2000-10-12 | 2003-04-15 | Picsurf, Inc. | Image compression based on tiled wavelet-like transform using edge and non-edge filters |
US7260269B2 (en) * | 2002-08-28 | 2007-08-21 | Seiko Epson Corporation | Image recovery using thresholding and direct linear solvers |
KR100736041B1 (ko) * | 2005-06-30 | 2007-07-06 | 삼성전자주식회사 | 에러 은닉 방법 및 장치 |
-
2011
- 2011-09-16 CN CN 201110275077 patent/CN102307304B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN102307304A (zh) | 2012-01-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102307304B (zh) | 基于图像分割的立体视频右图像整帧丢失的错误隐藏方法 | |
CN102055982B (zh) | 三维视频编解码方法及装置 | |
US8116557B2 (en) | 3D image processing apparatus and method | |
CN106210722B (zh) | 基于hevc的分层深度视频残差层数据的编码方法 | |
CN102595145B (zh) | 一种立体视频整帧丢失错误隐藏方法 | |
CN102510500A (zh) | 一种基于深度信息的多视点立体视频错误隐藏方法 | |
JPH10191396A (ja) | 中間視点画像生成方法および視差推定方法および画像伝送方法 | |
WO2012099438A2 (en) | Method of adaptive frame prediction for multiview video sequence coding | |
EP2491722A2 (en) | Depth map generation techniques for conversion of 2d video data to 3d video data | |
CN104602028B (zh) | 一种立体视频b帧整帧丢失错误隐藏方法 | |
CN105306954B (zh) | 一种基于视差最小可察觉误差模型的感知立体视频编码 | |
CN102801995B (zh) | 一种基于模板匹配的多视点视频运动和视差矢量预测方法 | |
CN102438147B (zh) | 帧内同步立体视频多参考帧模式视间预测编码及解码方法 | |
CN100581265C (zh) | 一种多视点视频的处理方法 | |
CN101166271A (zh) | 一种多视点视频编码中的视点差估计/补偿方法 | |
Pourazad et al. | Generating the depth map from the motion information of H. 264-encoded 2D video sequence | |
CN104506871B (zh) | 一种基于hevc的3d视频快速编码方法 | |
CN102325254B (zh) | 一种立体视频的编、解码方法及装置 | |
CN102917233A (zh) | 空间遥操作环境下立体视频编码优化方法 | |
CN108668135B (zh) | 一种基于人眼感知的立体视频b帧错误隐藏方法 | |
Iyer et al. | Multiview video coding using depth based 3D warping | |
CN103856782A (zh) | 基于多视点视频整帧丢失的自适应错误掩盖方法 | |
CN103167291B (zh) | 一种基于结构相似度的立体视频整帧丢失错误隐藏方法 | |
CN103702120B (zh) | 一种合成视点主观失真估计方法 | |
CN103220533A (zh) | 一种立体视频宏块丢失错误隐藏方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130403 Termination date: 20130916 |