去除网络视频播放马赛克现象的容错方法

文档序号:7686140阅读:449来源:国知局
专利名称:去除网络视频播放马赛克现象的容错方法
技术领域
本发明涉及计算机多媒体技术的视频播放容错技术,特别涉及一种去除网络视频播放马赛克现象的容错方法。
背景技术
网络点播是网络中常用的技术手段,但是网络点播的节目内容受到网络环境的影响会造成种种错误,从而使用户端显示不清楚,尤其是容易出现马赛克现象。例如,网络传输中可能存在的数据丢包以及延时到达会对网络点播造成影响,在点播过程中用户拖动进度条也会造成链路中断,使播放器的显示设备丢失,解码器解码失败以及播放器的数据帧出错会影响网络点播的视频效果。
根据MPEG的定义,帧分为IDR帧,B帧和P帧。其中,IDR帧是关键帧,采用基准帧模式,只提供帧内压縮,即把帧图像压縮到IDR帧时,仅仅考虑了帧内的图像。IDR帧压縮不能除去帧间冗余度。帧内压縮基于离散余弦变换,类似于JPEG和H. 261图像中使用离散余弦变换的压縮标准。IDR帧压縮可以得到6:1比而不产生任何可觉察的模糊现象。B帧为双向帧间编码。它从前面和后面的IDR帧或P帧中提取数据。B帧基于当前帧与前一帧和后一帧图像之间的差别进行压縮。B帧压縮可以达到200:1压縮比,其文件尺寸一般为IDR帧压縮尺寸的15%,不到P帧压縮尺寸的一半。P帧采用了前向预测,即P帧是根据前面的P帧或I帧预测得来的。P帧采用预测编码,利用相邻帧的一般统计信息进行预测。也就是说,它考虑运动特性,提供帧间编码。P帧预测当前帧与前面最近的IDR帧或P帧的差别。
当视频是以H. 264编码的ASF文件格式时,由于H. 264具有灵活宏块次序,通过设置宏块次序映射来任意地指配宏块到不同的片组,但是这种灵活宏块次序模式打乱了原宏块顺序,降低了编码效率,增加了延时,但是增强了抗误码的性能。当一个片组的数据丢失时可以用另一个片组的数据进行错误掩盖。尽管有的编码器,如X264的一帧就是一个片,但它依然能用相邻帧作错误掩盖.使用错误掩盖的容错技术最主要的不适是倒引起马赛克现象,这会很大影响用户体验。

发明内容
本发明所要解决的技术问题是提供一种去除网络视频播放马赛克现象的容错方法,可以在视频解码还原上实现优化的滤波,避免黑屏及马赛克现象,较好的满足用户的体验需求。
为解决上述技术问题,本发明一种去除网络视频播放马赛克现象的容错方法的技术方案是,包括以下步骤
第一步,检测到客户播放端的缓冲区中的数据帧有错误;
第二步,判断数据帧出错的类别,如果数据帧出现链路中断的错误则重建过滤器链路,并设置需要同步标志,如果数据帧出现数据不同步或者解码失败的错误则直接设置需要同步标志;
第三步,判断后继的数据帧是否包含同步标志,若不包含同步标志,则进行正常的播放流程,若包含同步标志,则判断后继的数据帧是不是IDR帧;
第四步,如果后继的数据帧是IDR帧,则清空客户播放端的缓冲区中
的数据帧,清除需要同步标志,并进行正常的播放流程,如果后继的数据
帧不是IDR帧,则丢弃该数据帧,读取下一个数据帧,并判断该下一个数据帧是不是IDR帧,并重复第四步。
本发明通过对客户播放端缓冲区数据的检测,当检测到有出错帧或者丢失帧时,丢弃后继的非IDR帧,直到出现新的IDR帧,这样有效的去除马赛克现象。


下面结合附图和实施例对本发明作进一步详细的说明
图l为本发明流程示意图2为本发明客户播放端缓冲区数据示意图。
具体实施例方式
如图1所示,在采用基于DirectShow (DirectShow是微软公司提供的一套在Windows平台上进行流媒体处理的开发包,它支持多媒体流的捕捉和回放。)机制的播放器播放网络视频时,需要对数据帧进行判断处理,首先检测客户播放端的缓冲区中的数据帧是否有错误,如果没有错误,则进行正常的播放程序,如果检测到客户播放端的缓冲区中的数据帧有错误,并判断其出错的类别。
在判断数据帧出错类别时, 一般分为以下三种错误类别a,数据帧出现链路中断错误;b,解码器解码失败;c,数据帧的数据不同步。当用户拖动进度条或者出现丢包时,数据帧出现链路中断错误,需要重建过滤器链路,并在播放数据帧上设置需要同步标志;当出现解码器解码失败的错误时,意味着数据可能出错,这是需要将这个数据帧丢弃,并且需要直接
在数据帧上设置需要同步标志;当出现数据帧的数据不同步的错误时,则在数据帧上设置需要同步标志。若没有出现数据帧错误时,则不在数据帧上设置需要同步标志。
检测数据帧上是否设置了需要同步标志,如果若不包含同步标志,则进行正常的播放流程,若包含同步标志,则判断后继的数据帧是不是IDR帧。在本发明中,IDR设置为50至100帧编码一次,本发明中一个IDR帧刷新序列也可以取80帧。
在本发明中,客户播放端的缓冲区至少存有20秒的播放数据,并且,如图2所示,客户播放端的缓冲区的数据包括IDR帧和P帧。其中,IDR帧为即时刷新的I帧,IDR帧之后的图像不会再以IDR帧之前的图像为参考,它采用基准帧模式,只提供帧内压縮,P帧为前向参考帧,在编解码时要以前面的帧来作参考,它考虑运动特性,提供帧间编码。图2中的P1帧、P2帧和P3帧为出错帧或者丢失帧,如果播放这些帧,会引起马赛克现象,因此,本发明将该帧丢弃,判断后继的数据帧是不是IDR帧。
如果后继的数据帧是IDR帧,则清空客户播放端的缓冲区中的数据帧,去除需要同步标志,并进行正常的播放流程,如果后继的数据帧不是IDR帧,则丢弃该数据帧,读取下一个数据帧,并判断该下一个数据帧是不是IDR帧,并重复第四歩。本发明通过对客户播放端缓冲区的数据进行检测,及时发现数据帧的 错误,并对数据帧出现的各种错误做相应的处理,丢弃后继的非IDR帧并
播放新的IDR帧,实现去除网络视频马赛克现象的技术目标。
权利要求
1. 一种去除网络视频播放马赛克现象的容错方法,其特征在于,包括以下步骤第一步,检测到客户播放端的缓冲区中的数据帧有错误;第二步,判断数据帧出错的类别,如果数据帧出现链路中断的错误则重建过滤器链路,并设置需要同步标志,如果数据帧出现数据不同步或者解码失败的错误则直接设置需要同步标志;第三步,判断后继的数据帧是否包含同步标志,若不包含同步标志,则进行正常的播放流程,若包含同步标志,则判断后继的数据帧是不是IDR帧;第四步,如果后继的数据帧是IDR帧,则清空客户播放端的缓冲区中的数据帧,清除需要同步标志,并进行正常的播放流程,如果后继的数据帧不是IDR帧,则丢弃该数据帧,读取下一个数据帧,并判断该下一个数据帧是不是IDR帧,并重复第四步。
2. 根据权利要求1所述的一种去除网络视频播放马赛克现象的容错方法,其特征在于,客户播放端的缓冲区至少存有20秒的播放数据。
3. 根据权利要求1所述的一种去除网络视频播放马赛克现象的容错方法,其特征在于,客户播放端的缓冲区的数据包括IDR帧和P帧。
4. 根据权利要求1所述的一种去除网络视频播放马赛克现象的容错方法,其特征在于,所述的IDR设置为50至100帧编码一次。
5. 根据权利要求4所述的一种去除网络视频播放马赛克现象的容错方法,其特征在于,所述的IDR设置为80帧编码一次。
全文摘要
本发明公开了一种去除网络视频播放马赛克现象的容错方法,包括以下步骤1.检测到客户播放端的缓冲区中的数据帧有错误;2.判断数据帧出错的类别,并作出相应的措施;3.判断后继的数据帧是否包含同步标志,若包含同步标志,则判断后继的数据帧是不是IDR帧;4.若后继的数据帧是IDR帧,则清空客户播放端的缓冲区中的数据帧,去除需要同步标志,并进行正常的播放流程,如果后继的数据帧不是IDR帧,则丢弃该数据帧,读取下一个数据帧,并判断该下一个数据帧是不是IDR帧,并重复第四步。本发明通过对客户播放端缓冲区数据的检测,当检测到有出错帧或者丢失帧时,丢弃后继的非IDR帧,有效的去除马赛克现象。
文档编号H04N7/66GK101547369SQ20081004319
公开日2009年9月30日 申请日期2008年3月26日 优先权日2008年3月26日
发明者李海良, 宇 王, 陈明灿 申请人:盛大计算机(上海)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1