APP下载

基于TCP友好速率控制和错误隐藏的H.264视频传输

2010-10-27张海朝潘永辉王亚涛

通信技术 2010年2期
关键词:宏块解码矢量

张海朝, 潘永辉, 王亚涛

(河南科技大学 电子信息工程学院,河南 洛阳 471003)

0 引言

随着Internet的迅速发展和网络带宽的不断提高,基于网络的实时视频应用越来越多。如何保证传输质量是一个很关键的问题。当把视频放到网络上传输时,它主要包括了编码、传输、解码三部分。只有综合考虑这三部分,才能保证视频应用的质量。目前的图像压缩标准中,H.264是最新发布的视频压缩标准,它有着更高的压缩比,并且具有与编码层相对独立的NAL(网络层),使得H.264具有良好的网络“友好性”,能适应各种网络的传输。但目前视频网络传输常采用UDP传输协议,而UDP协议缺乏端到端的拥塞控制机制。为了能和TCP数据流公平地竞争带宽,避免引起长时间的、严重的网络拥塞,视频流应该不仅具有TCP友好性,而且拥有平滑的传输速率[1-2]。但是在尽力而为的网络中,丢包能够显著地降低视频的回放质量。因此,视频传输还应该对丢包问题做出处理。因此,本文以H.264视频为研究对象,结合TCP友好速率控制算法和差错控制机制建立提出了一个集成拥塞控制的端到端视频传输框架,经实验证明,该框架在不同的网络状况下,均能收到较好的效果。

1 视频传输框架

由于H.264压缩编码算法使用运动估值和运动补偿技术,一旦有分组丢失存在,不仅影响当前解码图像,而且会影响后续解码图像,即误码扩散,而时延和时延抖动对实时视频通信的恢复图像质量也会造成影响。实际上,在传输系统中,若将一个端到端传输系统作为整体来考察,由各个部分共同对抗网络传输差错,以合理地满足用户对于视觉质量、实时性等各个不同方面的QoS要求。因此,本文在结合了容错编码、打包策略、拥塞控制、差错掩盖等算法的基础上,提出了如图1所示的端到端视频传输框架结构。

图1 端到端视频传输框架

1.1 容错编码及错误掩盖算法

由于H.264协议充分考虑了IP网络的特性,并在视频编码层和网络提取层中提供了多种容错工具,以适应IP网络尽力而为的特点,因此可减轻诸如带宽波动、延时、丢包所带来的不良影响[3]。为了抑制空间错误蔓延,一帧图像被Slice工具将分割成局部的独立编码单元。同时,任意宏块顺序的引入可以使解码端以更高概率得到丢失区域周围的正确信息,这将有助于解码端的错误掩盖算法的应用,因此可将一部分对抗传输差错的任务分至编、解码端,而无需加以各类增加时延的强保护信道码算法。

在解码端,提出了一种基于紧邻帧参考的加权边界匹配算法来进行错误隐藏,本算法的前提是假设视频图像压缩只采用前向运动补偿预测技术,即只有I帧和P帧,每个宏块只有一个运动矢量,在此条件下,运用改进后的算法对运动矢量做进一步优化,从而实现对错误块的隐藏,有效改善了传统边界匹配算法在物体边缘处由于DCT系数剧烈变化而产生较大匹配误差的缺陷[4]。算法主要分为两个步骤,当发现某一宏块发生错误时,首先确定候选运动矢量集,根据改进的边界匹配原则得到最佳运动矢量,从而确定边缘变化最小的宏块。将该方法推广到紧邻帧参考环境下,可得到多个候选宏块,对所有候选宏块进行加权平均,将得到的宏块替代受损的宏块.在本文中,设第n帧某宏块受损, fn表示第n帧,表示预测帧, Mn(x, y)表示当前受损宏块,(x, y)表示该宏块在当前 fn中的位置,宏块Mn运动矢量为 DMn(x, y),CMn(x, y)表示候选运动矢量集,则边界匹配最佳运动矢量,即最小SAD的运动矢量为:

其中,Du、Dd、Dd、Dr分别代表与上边、下边、左边、右边的相邻宏块的像素差值的平方和,其计算方式如下:

而ωu、ωd、ωl、ωr为分别表示当前受损宏块与邻域宏块各边界匹配误差的权重,其取值方法如下:

其中,D()表示统计方差,COV(.)表示协方差。

在连续宏块丢失的情况下,受损块的空间相邻宏块也将受到影响,不能提供可靠的运动矢量。这时在紧邻帧参考环境下,参考帧中预测矢量的引入,对丢失运动矢量的正确恢复有着重要的意义。

1.2 打包策略

H.264的编码结构在算法概念上分为两层:视频编码层(VCL)和网络适配层(NAL),VCL提供高效率的视频压缩功能;NAL负责网络的适配,及对不同的网络要有不同的适应能力,如以恰当的方式对数据进行打包的传送,其码流结构对网络适应性强,增加了纠错能力,能够很好地适应IP网络的应用。H.264标准还加强了对误码和丢包的处理,提高了抗误码能力;对不同的业务灵活采取相应的时延限制。由此可见,基于NAL的设计,H.264视频非常适合在RTP/UDP/IP网络上传输。NAL层对H.264进行RTP的打包过程是比较简单的,它符合RFC1889中定义的通用规则。RTP净荷包含NAL预备的编码数据,对于RTP净荷的头部没有作特殊的规定。H.264的RTP净荷规则中的设计要求可以归纳如下:具有较低的开销。因此MTU的大小设计在100字节到64千字节为佳;无需解开包中携带的比特流,就能区分该RTP包的重要性和次要性;净荷规则在无需解开比特流的情况下,就能够检测出由于误码所造成的解码;能够支持NAL单元重组,在一个RTP包中传送多个NAL单元。通过NAL单元分割和NAL单元重组来实现H.264基于RTP的网络传输。

2 TCP友好的速率控制机制

视频传输中引入TCP友好速率控制机制的主要目的是和TCP数据流公平地竞争带宽.RFC3448中所给出的TFRC(TCP Friendly Rate Control)规定,在相同的网络条件下,如果一个非TCP数据流的长期吞吐量没有超过同期TCP数据流的吞吐量,则可被认为是TCP友好的。因此,速率控制机制中视频流的发送速率的上限应该是同期TCP数据流的发送速率,即可以使用TCP速率公式来计算TCP友好的视频流的发送速率。TCP速率公式如下:式中,S是数据包的大小。计算发送速率X,需要知道数据包的往返时间R,TCP超时重传时间t_RTO以及丢包事件率p。通过实验我们发现TFRC在调整视频流的发送速率时波动比较大,容易造成接收端在播放视频时产生抖动现象。为此我们提出一种改进的TFRC机制--延迟预警算法[5],通过在发送端增加一个延迟预警信号来感知网络的延迟,然后在发送速率公式中增加一个平滑因子来平滑发送速率的波动,通过仿真验证了所提出算法的有效性。

3 实验结果及分析

采用 H.264参考软件 JM86实现算法,测试序列为Container和Foreman,采用FMO交织模式,测试帧为100帧,编码模式IPPP,打包格式采取 RTP/IP/UDP,丢包位置随机。IP信道误码测试根据 ITU推荐的典型平均丢包率为 3%、5%、10%、20%的Error Pattem文件来模拟实现。由此得到的两个视频序列在时域直接替代法,边界匹配算法以及本文算法这三种不同算法条件下的峰值信噪比。

在Container序列中,如图2所示。

图2 container重建峰值信噪比

随着有视频信号错误率的增加,本文算法性能有提高但不是十分显著,而且与时域直接替代算法以及边界匹配算法的重建图像峰值信噪比曲线基本重合,说明对运动幅度很小的平移运动,三者性能基本相同。但是在视频信号运动较大、背景变化和抖动明显的Foreman序列中,得到的重建图像峰值信噪比高出很多,而且随着错误率的增加,本算法的性能优势越来越明显,如图3所示。这说明本文的改进算法不论在视频信号运动幅度平缓还是剧烈的环境下,较之两种传统的差错掩盖算法在性能上均有提高,尤其在视频信号运动较大且信号错误率较高的情况下性能优势更为明显,能有效地抑制边界视频差错的扩散,取得较好的差错隐藏效果。

图3 foreman重建峰值信噪比

4 结语

针对目前视频传输需求的日益增大以及带宽资源不足的现状,使得视频压缩流在丢包网络中的传输问题成为了当前的研究热点。本文通过整个端到端系统中,包括编码器、拥塞控制以及解码器错误掩盖等各个机制的协同合作,将抗差错传输的任务分至每一个步骤,大大提高了视频传输的鲁棒性。

[1]Floyd S, Handley M, Padhye J, et al.RFC3448, Tcp Friendly Rate control[S].IETF,January 2003.http://www.ietf.org/rfc/rfc3448.txt.

[2]张军胜,孙沛,万毅.一种抗抖动的鲁棒性速率自适应算法[J].通信技术,2008,41(09):6-8.

[3]Wenger S.H.264/AVC Over IP[J].IEEE Transactions on Circuits and Systems for Video Technology,2000,13(07):645-656.

[4]李晓,刘立柱.MPEG-2视频解码器中的错误隐藏方法研究[J].通信技术,2008,41(03):52-53.

[5]潘永辉,张海朝.延迟预警在TFRC拥塞控制中的应用[J].计算机工程,2009,35(14):114-116.

猜你喜欢

宏块解码矢量
《解码万吨站》
矢量三角形法的应用
解码eUCP2.0
NAD C368解码/放大器一体机
Quad(国都)Vena解码/放大器一体机
基于矢量最优估计的稳健测向方法
三角形法则在动态平衡问题中的应用
基于选择特征宏块的快速视频稳像
基于宏块合并的H.264模式选择算法
色料减色混合色矢量计算