一种基于边界梯度的视频流容错方法技术

技术编号:3587058 阅读:171 留言:0更新日期:2012-04-11 18:40
本发明专利技术提出了一种基于边界梯度的视频流容错方法。该方法将视频流分为序列、帧、宏块三个级别,根据各个级别中语法元素的特点,采取了不同的容错策略,对序列级和帧级要根据特定的应用环境进行容错,宏块级容错则通过采用有效的错误限制、综合码流语义及边界梯度的错误检测与自适应的错误隐藏技术三个步骤来进行。实验结果表明,使用本视频流容错方法后,解码器恢复图像的主客观质量也都有显著提高。

【技术实现步骤摘要】

本专利技术涉及一种视频流容错方法,尤其涉及一种基于边界梯度的视 频流容错方法,属于数字音视频编解码
技术背景人们对多媒体业务的需求正在与日俱增。但是,现有网络的服务质量(QoS) —直得不到有效保障,所传送的多媒体数据流误码率很高,严 重影响了视频图像的传送质量。这无疑会影响多媒体业务的进一步开展。 在现有的网络架构下,仅仅依靠网络传输技术来提高视频传输质量的余 地并不大,因此有必要通过改善视频通信系统的容错算法,使之能够克 服传输信道的高比特误码率,获得较好的QoS保证。目前,视频编解码国际标准对数字视频流定义了一整套严格的语法, 解码端的任务就是根据视频流的语法及语义还原出图像序列。以MPEG-4 为例,其视频流在语法上分为视觉对象序列、视觉对象、序列、帧、宏 块、块六个级别。但受限于对象提取技术以及对编码器复杂程度的考虑, 在实际应用中通常将帧作为一个视觉对象进行编码,因此通常的MPEG-4 视频流如图l所示,只包含序列、图像、宏块和块四个级别,对MPEG-4 视频流的容错处理也分别按这几个级别进行。序列、帧和宏块这三个级别的语法元素出错误对解码过程造成的影 响各不相同。保证序列层语法元素的语义正确性是解码器正常工作的前 提, 一旦发生错误,将导致解码器严重出错甚至无法工作,尤其是序列 起始码出现的错误。帧层中语法元素的错误只会影响到能否成功解码该 帧,不会影响下一帧解码。但在基于预测的视频编码中,如果该帧不能 正确解码,其错误会直接影响其下一帧图像,并一直扩散下去,直至延 续到下一个序列层开始处。上述两个级别语法元素错误可以归结为语义 层错误,解码器自身的解码算法并不能发现此类错误,必须通过人工干 预才可发现。而宏块级错误既有解码算法不能发现的语义错误,也有其 可以发现的语法错误。并且宏块级视频流占整个视频流的绝大部分,所 以宏块级容错相当重要。在现有技术中,解码端的错误隐藏技术主要是利用正确接收到的信 息来估计或恢复由于误码而产生错误的数据,可以有效解决信道误码带来的视频质量下降问题,是解码端最常使用的容错方法。
技术实现思路
本专利技术的目的是提供一种基于边界梯度运算的视频流容错方法。该 方法利用视频流本身的特点,可以实现有针对性的错误检测,解决误码 带来的图像质量畸变问题。为实现上述的专利技术目的,本专利技术采用下述技术方案,对视频流进行分层容错处理, 其特征在于-在宏块一级,首先根据宏块的边界梯度比变化判别某一宏块是否发 生了错误,然后,对出错的帧内编码帧宏块进行基于时域相关性的错误 隐藏处理,对出错的帧间编码帧宏块采用基于空域相关性的错误隐藏处理。其中,如果某一宏块分别与其上方、下方和左方宏块的边界梯度比 中,任何两个超过指定阈值,则判定该宏块发生了错误。所述对出错的帧内编码帧宏块进行错误隐藏为采用基于最小均方差 的插值方法对于出错的帧内宏块分别进行水平和垂直方向上的处理。所述对出错的帧间编码帧宏块进行错误隐藏处理包括如下步骤(1) 判断运动矢量解码有无错误;(2) 如果运动矢量解码没有错误,直接将运动矢量指示的参考帧中 的宏块复制到待隐藏块中;(3) 如果运动矢量出现了误码,首先根据块匹配准则在几个候选运 动矢量中选取最优运动矢量,然后将这个运动矢量作为待隐藏块的运动 矢量进行运动补偿,得到待隐藏宏块。本专利技术所提供的视频流容错方法首先通过错误限制方法将帧层错误 限制在一定范围内,接着根据宏块层语法元素的语义及宏块间的相关性, 提取出能够检测出宏块错误的检测点;最后对检出错误的宏块进行错误 隐藏,从而完成宏块层容错。有关实验结果表明,本专利技术所提供的视频 流容错方法具有较好的通用性,恢复图像的主客观质量也有显著提高。 附图说明下面通过附图和具体实施方式对本专利技术作进一步的说明。图1为通用的MPEG-4视频流的内部结构示意图; 图2为宏块边界处的梯度示意图。图3为coastguard第30帧的正常情况下三个边界梯度比。 图4为coastguard第30帧产生错误后三个边界的梯度比。 图5显示了对出错的宏块采用插值的办法来进行处理的示意图。 图6显示了针对三种不同测试序列的解码图像的PSNR值变化曲线。具体实施方式本专利技术所提供的视频流容错方法的基本思路是对视频流进行分层 容错处理,在序列和帧一级,利用编码端插入的再同步标记进行错误限 制;在宏块一级,综合利用码流语义与宏块间的相关性特点进行错误检 测,对于检测出错误的宏块,按Intra(帧内编码)和Inter(帧间编码)编码类 型分别相应处理。由于宏块编码方式不同,决定了针对两者的错误修复 方式也具有不同特点,通常分别采用基于空域相关性的错误隐藏与基于时域相关性的错误隐藏,自适应进行地错误隐藏。从前述对对宏块层的错误分析可以看出,宏块层语法元素错误会造 成整个码流混乱,如果不加以限制,会扩散下去,不但导致本帧解码错 误,还可能损坏下一帧的起始码,产生丢帧。因此,需将错误局限在尽 量小的范围内以限制其传播。本专利技术提出的解决办法是通过在编码输 出码流中插入再同步标记,将码流分割成若干个分割块。若某分割块出 现误码,其错误不会蔓延到下一个分割块,这样就把错误限制在了两个 同步标记之间,有效地限制了错误传播范围。对于分割块大小的选取,也是需要重点考虑的因素。可以将整帧所 有宏块作为一个分割块,这样所需添加的冗余信息就少,但错误限制效 果不好,某一个宏块出现了误码会导致该帧内所有后续宏块解码错误。 如果以每一宏块为一个分割块,错误限制效果最好,可将错误限制在宏 块内部,但引入的冗余信息过多,额外占用大量带宽,导致传输效率降 低。综合考虑限制效果和冗余信息对图像质量的影响,本专利技术以一行宏 块为分割单位,在每行宏块的开始处加入再同步信息。下面具体介绍本专利技术所提供的基于边界梯度的视频流容错方法的具 体步骤1.错误检测准确的错误检测是进行错误纠正的前提。现有的检错方法普遍存在 冗余信息大、检错效率较低的缺点。本专利技术充分利用视频流本身的特点, 提供有针对性的错误检测。通常,视频流序列级及帧级中的语法元素均为定长码,并且对于特 定的应用环境,其语法元素具有固定的取值。这些语法元素不会随视频 内容发生变化,解码端利用该约定来对视频流检错,当发现语法元素的 取值不符合约定时,则可判断此处发生了错误。宏块级语法元素大部分 为变长码,其取值随视频内容的不同而变化,无法根据特定的应用环境 来进行误码检测,但可以利用算术解码的自检错能力检测误码。另外, 还可以根据解码原理进行一些额外的错误检测,例如每个块的系数个数不会超过64、运动矢量不会超过搜索窗口所限定的范围等等。利用算术解码的自检错能力只能检测出少量的语法元素错误,如果码字出现了误码但是其取值却处于正确的范围,算术解码是检测不出这 种错误的。因此还需利用视频本身的相关性,即图像在大部分区域较为 平坦,具有较强相关性的特点,空间上相邻的象素值的差别非常小。通 常情况下,宏块边界处的象素值变化是平缓的,即对应位置的象素差值 应很小。在由于误码而产生错误后,错误宏块的恢复象素值会发生突变, 即在边界处出现跳变。因此,本专利技术利用这一特点建立模型考察当前宏 块是否发生了突变,如果突变超过一定阈值,则判定该宏块出现了错误本文档来自技高网
...

【技术保护点】
一种基于边界梯度的视频流容错方法,对视频流进行分层容错处理,其特征在于:在宏块一级,首先根据宏块的边界梯度比变化判别某一宏块是否发生了错误,然后,对出错的帧内编码帧宏块进行基于时域相关性的错误隐藏处理,对出错的帧间编码帧宏块采用基于空域相关性的错误隐藏处理。

【技术特征摘要】
1.一种基于边界梯度的视频流容错方法,对视频流进行分层容错处理,其特征在于在宏块一级,首先根据宏块的边界梯度比变化判别某一宏块是否发生了错误,然后,对出错的帧内编码帧宏块进行基于时域相关性的错误隐藏处理,对出错的帧间编码帧宏块采用基于空域相关性的错误隐藏处理。2. 如权利要求1所述的基于边界梯度的视频流容错方法,其特征在于如果某一宏块分别与其上方、下方和左方宏块的边界梯度比中,任 何两个超过指定阈值,则判定该宏块发生了错误。3. 如权利要求1所述的基于边界梯度的视频流容错方法,其特征在于所述对出错的帧...

【专利技术属性】
技术研发人员:李波姜东胡海苗
申请(专利权)人:北京航空航天大学
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1