一种视频码流错误隐藏方法

文档序号:7869208阅读:390来源:国知局
专利名称:一种视频码流错误隐藏方法
技术领域
本发明涉及视频编码和图像处理领域,尤其涉及一种视频码流错误隐藏方法。
背景技术
现代视频编码标准采用混合编码框架,用了一系列技术来达到高效率的视频编码,包括帧内预测、帧间预测、变换、量化和熵编码等。帧间预测使用基于块的运动矢量来消除图像间的冗余;帧内预测使用空间预测模式来消除图像内的冗余。再通过对预测残差进行变换和量化消除图像内的视觉冗余。最后,运动矢量、预测模式、量化参数和变换系数用熵编码进行压缩。
压缩后的视频经过信道进行传输后,方在接收方进行解码。与其他通信信道相比, 无线信道是最为复杂的一种,各种问题都可能发生。信号有干扰和衰落的影响,再加上移动终端本身的运动,使得无线信道多变且难以控制,发生比特错误和传输包丢失错误等是难以避免的。这样,再加上移动带宽的限制,视频在移动无线网络中传输,对系统的容错能力提出了更高的要求,不仅需要能够检测并处理随时可能出现的错误,而且要求保障系统错误恢复的实时性和高效性。
目前被广泛用到的视频容错技术,包括灵活的宏块组织方式(FM0)、编码端增加冗余信息、解码端进行错误隐藏等。
当视频序列中,一帧中的某些宏块丢失时,需要对这些宏块中的每个像素点进行恢复。很多方法是基于图像的空间特性(如纹理、边缘),利用这些特性在丢失宏块所在图像帧内部进行像素点恢复。这些方法对于视频帧的空间特性要求较高,对于平滑区域或者纹理明显的区域较为适用,适合于采用帧内编码方式的视频帧;而对于更一般的情况如有运动物品的视频序列,在出现较大块丢失时则无法恢复出丢失的信息。发明内容
本发明解决的技术问题在于如何利用运动矢量预测及块边界匹配思想,在解码端对视频码流进行错误隐藏。
本发明提供了一种视频码流错误隐藏方法,该方法包括如下步骤
将每一个宏块划分成4个8*8的块;
取得与受损宏块相邻的上方的2个8*8块、下方的2个8*8块、左侧的2个8*8块、 右侧的2个8*8块以及与受损宏块临近的其它8*8块,将这N个8*8块的运动矢量和O值运动矢量作为受损宏块的参考运动矢量,其中N>=8 ;
对于受损宏块中的每个8*8块,如果有参考运动矢量可用,则按照一定规则从中选择一个作为该8*8块运动矢量的重构值;如果参考运动矢量都不可用,则用其它方式来重构该8*8块的运动矢量;
对于受损宏块中的每个8*8块,利用重构的运动矢量在其参考帧中取得该块的重构值。
作为本发明的进ー步改进,从參考运动矢量中选择的方法为,对于受损宏块中的ー个8*8块,根据每个參考运动矢量在其对应參考帧中取出ー个预测块,考察与受损8*8块相邻的两个完好8*8块与该预测块的边界匹配程度,选择能够使得边界匹配程度最好的运
动矢量。作为本发明的进ー步改进,边界匹配程度的衡量标准是,预测块与相邻的两个完好8*8块的邻接边界像素点的SAD。作为本发明的进ー步改进,如果与受损8*8块相邻的两个完好8*8块都不存在,则采用各个參考运动矢量的平均值来重构该受损8*8块的运动矢量。作为本发明的进ー步改进,如果參考运动矢量都不存在,则选用前ー帧中对应位置8*8块的运动矢量来重构当前受损8*8块的运动矢量。 本发明的有益效果是由于利用了视频的空间、时间相关性,尤其对运动矢量的选择给出了有效的新方法,算法简单、复杂度低,能够保证在移动应用中的实时性,同时,能在很大程度恢复出丢失或出错的视频信息。


当结合附图考虑时,通过參照下面的详细描述,能够更完整更好地理解本发明以及容易得知其中许多伴随的优点,但此处所说明的附图用来提供对本发明的进ー步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定,其中图I为P帧宏块丢失边界匹配示意图。
具体实施例方式以下參照图I对本发明的实施例进行说明。当一帧视频图像中发生块丢失或出错时,不仅利用视频序列的时间相关性,从已经解码的相邻帧中通过运动补偿获得丢失块的预测值,同时利用丢失块与相邻块的空间相关性,采用块边界匹配的方法来选择最优的运动矢量。对于每个丢失宏块,考虑其中的每个8*8块。获得与该宏块相邻的八个8*8块的运动矢量和O值运动矢量,将其作为丢失宏块中8*8块的运动矢量的候选。最优的运动矢量通过块边界匹配的方式来得到,即考察丢失块外边界像素点与用某个候选运动矢量得到的恢复块内边界像素点的差异,使得差异最小的运动矢量为最终选定的运动矢量。利用这个运动矢量来获得当前8*8块的恢复快。实施例方法对于当前丢失宏块中的每个8*8块,分别找其运动矢量。对于这每个8*8块,都考察与当前丢失宏块相邻的八个8*8块。每个相邻8*8块对应一个运动矢量,再加上O值运动矢量,这样就有9个运动矢量可以使用(如果某相邻块为intra块或者不存在,则其运动矢量不可用,相应总共可用的运动矢量数量减一)。利用这9个运动矢量,在相应的參考帧中得到9个预测块,分别用这9个预测块邻接相邻块的16个像素点与相邻的两个8*8块中邻接丢失块的16个像素点求SAD,找出使得SAD最小的预测块及其相应的运动矢量。用该预测块来恢复丢失块。如图I,中间区域表不丢失的宏块,其中标号为0、1、2、3的正方形表不该丢失宏块内的4个8*8块。四周区域分别表不丢失宏块的相邻8*8块,分别标号为al、a2、bl、b2、 Cl、c2、dl、d2。这8个8*8块的运动矢量将被用作候选运动矢量。
对0、1、2、3正方形表示的四个丢失块分别进行恢复。以O号丢失块的恢复为例进行说明。
考察8个邻接的8*8块,即正方形表示的al、a2、bl、b2、cl、c2、dl、d2块。分别用这个8个块的运动矢量对丢失的O号块在各个邻接块相应的参考帧中找到8个预测块, 再用O值运动矢量在O号参考帧中找到一个预测块,这样总共可以得到9个预测块。对每个预测块,将其填充到O号丢失块的位置,那么它将有两个邻接块a2和bl块。考察预测块与这两个邻接块相邻的16对像素点的SAD,即差值绝对值的和。这样9个预测块,就找到 9个SAD,从中找出最小的SAD,并找出相应的预测块及运动矢量。用该预测块恢复丢失的O 号块。
如果O号丢失块的邻接块不存在,即图中a2块和bl块不存在(a2、bl超出图像边界,或者已丢失仍未恢复),那么对应的像素点就不存在,SAD将无法计算。此时,直接将各个相邻8*8块的运动矢量求平均得到丢失块的运动矢量,再用此运动矢量进行恢复。
如上所述,对本发明的实施例进行了详细地说明,但是只要实质上没有脱离本发明的发明点及效果可以有很多的变形,这对本领域的技术人员来说是显而易见的。因此,这样的变形例也全部包含在本发明的保护范围之内。
权利要求
1.一种视频序列错误隐藏的方法,该方法包括如下步骤, a)将每一个宏块划分成4个8*8的块; b)取得与受损宏块相邻的上方的2个8*8块、下方的2个8*8块、左侧的2个8*8块、右侧的2个8*8块以及与受损宏块临近的其它8*8块,将这N个8*8块的运动矢量和O值运动矢量作为受损宏块的参考运动矢量,其中N>=8 ; c)对于受损宏块中的每个8*8块,如果有参考运动矢量可用,则按照一定规则从中选择一个作为该8*8块运动矢量的重构值;如果参考运动矢量都不可用,则用其它方式来重构该8*8块的运动矢量; d)对于受损宏块中的每个8*8块,利用重构的运动矢量在其参考帧中取得该块的重构值。
2.按照权利要求一所述的视频序列错误隐藏的方法,其特征在于 从参考运动矢量中选择的方法为,对于受损宏块中的一个8*8块,根据每个参考运动矢量在其对应参考帧中取出一个预测块,考察与受损8*8块相邻的两个8*8块与该预测块的边界匹配程度,选择能够使得边界匹配程度最好的运动矢量。
3.按照权利要求二所述的视频序列错误隐藏的方法,其特征在于 边界匹配程度的衡量标准是,预测块与相邻的两个完好8*8块的邻接边界像素点的SAD。
4.按照权利要求二所述的视频序列错误隐藏的方法,其特征在于 如果与受损8*8块相邻的两个8*8块都不存在,则采用各个参考运动矢量的平均值来重构该受损8*8块的运动矢量。
5.按照权利要求一所述的视频序列错误隐藏的方法,其特征在于 如果参考运动矢量都不存在,则选用前一帧中对应位置8*8块的运动矢量来重构当前受损8*8块的运动矢量。
全文摘要
本发明提供了一种视频码流错误隐藏方法,包括利用视频序列的时间和空间相关性,恢复视频信息。本发明可用于视频码流宏块级的错误恢复。
文档编号H04N7/26GK102984525SQ20121055179
公开日2013年3月20日 申请日期2012年12月18日 优先权日2012年12月18日
发明者马思伟, 赵琛, 高文 申请人:北京大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1