3G视频传输中码率自适应调整算法

2012-08-15 11:37林志勇叶桦孙晓洁仰燕兰
关键词:包率码率延时

林志勇 叶桦 孙晓洁 仰燕兰

(东南大学自动化学院,南京 210096)(东南大学复杂工程系统测量与控制教育部重点实验室,南京 210096)

随着网络技术和嵌入式技术的迅猛发展,网络视频监控已经得到了广泛的应用,而基于3G网络的视频监控系统在难以架设有线电缆的地方更是有着巨大的优势.但3G网络很不稳定,不同的时段、不同的地理位置,带宽会相差很大,所以系统需要进行流量控制.为了保证视频的实时性,视频数据一般采用UDP协议进行数据传输,但UDP协议并不提供流量控制或者拥塞控制,所以必须根据当前网络状况来自适应调整视频的码率.

在数据的传输过程中,造成网络状况改变进而影响视频质量主要分为以下2种情况:①3G网络信号强度发生变化或者网络负载发生变化,如监控终端移动到3G信号比较弱的地方,3G网络使用者增多,这些都会减小3G网络有效带宽.如果3G网络带宽减小,而视频码率不变的话,视频码率就会超出网络的负载能力,进而造成丢包甚至网络拥塞.因此,就需要根据网络状况来调整码率.② 在监控终端中,产生的数据并不会立即发送出去,需要先存储在环形缓存中,这样视频数据就只能暂时存储在终端,等待发送,所以数据的发送并不是均匀的.如果在一段时间内CPU比较忙,很多数据就会堆积在监控终端,在接下来的一段时间内需要发送的数据就会急剧增加.另外,在动态码率下,画面变化产生的平均数据量要大于画面静止时产生的平均数据量,即监控终端产生的数据量很不均衡.这样造成的后果是,虽然平均码率没有超过网络带宽,但某一时间段的发送速率已经超过了网络带宽,因此就会造成丢包甚至拥塞.在查阅的文献中,还没有提出此问题,都默认发送速率是均匀的,但实验表明,在终端均匀发送数据是很难实现的.

基于上述原因,在视频传输过程中,必须根据网络状况来自适应调整码率.关于网络状况的判定,现在已经提出了很多方法,主要是根据包丢失相关标志量和时间相关标志量.文献[1-2]根据丢包率来估算网络带宽.文献[3-4]根据时间相关标志量来估算网络带宽.但这两种方法都有局限性,文献[5]对这两种方法进行了比较:包丢失相关标志量有滞后性,不能及时反映网络状况,时间相关标志量计算复杂,实现难度比较大,容易产生较大误差,算法大多局限于仿真.关于码率的调整,一般采用加性增乘性减(AIMD)算法或改进算法来调整码率.

针对上述情况,本文结合丢包率和视频延时两个标志量来判断网络状况,并采用改进的AIMD算法来计算新的码率.实验结果表明,视频延时具有很好的预测作用,无论是3G网络质量变差还是数据发送不均匀,都能在视频延时中体现出来,因此可以有效地调整视频码率,可以在一定程度上预防丢包和拥塞.在码率波动和丢包率两方面相比于RTT都有一定的优势.

1 视频监控系统介绍

整个视频监控系统由三部分组成:监控终端、服务器和客户端.监控终端把采集到的视频数据经过服务器转发给客户端,客户端通过服务器把Qos信息反馈给监控终端.监控终端根据客户端的反馈信息计算新的码率值.

1.1 系统结构

监控终端是基于海思Hi3512的嵌入式系统,基于Linux2.6.14内核.Hi3512是海思半导体推出的一款基于ARM9处理器内核以及视频硬件加速引擎的高性能通信媒体处理器,具有H.264硬件编解码功能.服务器程序运行在联通服务器上.监控终端通过联通3G网络和服务器传输数据,客户端通过联通3G或有线宽带和服务器通信.监控终端和客户端运行后,首先需要登陆服务器.监控终端登陆服务器后,服务器会向所有的在线客户端发送此终端登陆的消息.客户端登陆服务器后,服务器把所有已登陆的终端信息发送给客户端.因此,每一个客户端都可以看到所有在线的终端,并请求终端的视频.系统结构如图1所示.

图1 系统结构图

1.2 数据传输模型

监控终端采集视频数据,经过H.264编码,存储在环形缓存里等待发送.如果视频帧数据大于MTU(最大传送单元),还需要进行分包处理,把视频帧分割成大约1 K的数据包,在客户端进行重新组合.为了保证视频的实时性,传输层采用UDP协议,但UDP协议本身并不提供任何网络状况信息和流量控制机制,所以为了获得网络状况等相关信息,需要在视频数据前加上一个特殊的信息包头,包括终端号、数据包序列号、时间戳.在客户端,首先对信息包头进行处理,根据这些信息判断网络状况.另外,视频帧在终端被分割成多个数据包,所以还需要标示出数据包所属视频帧的相关信息,包括视频帧序列号、视频帧被分割的数据包总数和数据包在视频帧中的位置.客户端据此信息把数据包重新组合成视频帧进行解码.整个视频数据包的格式如图2所示.

客户端根据丢包率和视频延时判断当前网络状况.客户端根据视频数据包中的数据包序列号字段计算丢包率,根据时间戳字段计算视频延时,结合两者判断当前网络状况,并给监控终端发送反馈信息报.反馈信息包的格式如图2所示.

图2 视频数据包和反馈信息包

监控终端通过服务器给客户端发送视频数据,客户端通过视频数据包前面的信息包头判断网络状况,并把网络状况通过反馈信息报反馈给终端,终端根据网络状况计算新的码率.综上所述,整个系统的数据传输模型如图3所示.

图3 数据传输模型

2 码率调控策略

系统控制策略主要是根据网络状况来自适应调整视频码率.首先根据丢包率和视频延时来判断当前网络状况,把网络状况分为空闲、轻载、满载、过载和拥塞5个等级.根据改进的AIMD算法来计算新的码率.为了保证视频图像质量,在减小码率的同时,减小帧率.

2.1 网络状况判定

网络状况的判定主要有两种方式:基于包丢失相关标志量和基于时间相关标志量两种方式[5].基于包丢失标志量的计算方式目前比较成熟,可靠性好,运算复杂度低,容易实现.目前大多数算法都采用丢包率来判断网络状况[1-2,6].但丢包率有滞后性,当网络出现丢包时,再来调整就已经有点迟了.基于时间标志量的计算能更好地反映网络状况,在一定程度上能预测网络质量的变化.文献[3]提出了基于RTT(往返时延)的网络判定方法,在控制的实时性、网络状态的震荡抑制等方面均有明显的改善.文献[4]提出了基于时延抖动的判定方法,能在丢包之前预先判断网络变化,但实验基于局域网仿真,无法真实反映网络状况.文献[7-8]结合丢包率和RTT两种标志量判断网络状况,可以有效提高码流的平稳性,但实验也是仅基于局域网环境.基于此,本文利用包丢失标志量和时间标志量综合使用丢包率和视频延时判断网络状况.

2.1.1 丢包率

为了计算丢包率,需要知道预计接收包的数目和已经接收包的数目,这可以根据数据包前面的信息包头中数据包序列号字段得出.为了防止丢包率出现较大的随机波动,采用加权平均算法来计算丢包率.把两次码率调整的时间间隔平均分为p段,设每一段的丢包率为 λi,i=1,2,…,p,则加权平均后的丢包率为

由于丢包率有滞后性,所以根据丢包率的变化趋势来预测下一时间段的丢包率.对p段的相邻丢包率差值也做加权平均处理,设相邻时间段丢包率的差值为 vi=λi+1-λi,i=1,2,…,p-1,则加权平均后的相邻时间段的丢包率差值为

结合加权平均后的丢包率和丢包率差值,预测下一时间段的丢包率为

使用预测得到的丢包率可以在一定程度上避免丢包率的滞后性.

2.1.2 视频延时

视频延时是指视频数据自产生到客户端接收时的时间差值(不包括解码的时间).在监控终端,视频帧分包后,并不会立即发送出去,而是存储在环形缓存里等待发送.数据包到达服务器后,也不会立即发送到客户端,也是存储在环形缓存里等待发送.所以,视频延时是多个因素造成的,包括处理延时,传输延时和等待延时(在缓存中堆积的时间).码率过高,网络质量变差,CPU繁忙,都会增大视频延时.视频延时太大,说明视频码率太高,系统来不及处理,可能现在还没有丢包,但很快就会丢包甚至拥塞.

在视频数据包的时间戳字段中填入视频帧的产生时间,由于绝对时间需要的字节数太多,所以使用相对时间,即时间戳字段保存的是视频帧产生时相对于终端开始运行时的时间差.设终端开始运行时的时间为Tdb,视频帧产生的时间为Tde,则时间戳字段保存的是时间差为

在客户端计算的也是相对于终端开始运行时的时间差,但客户端并不知道终端开始运行的时间,所以终端开始运行时首先登陆服务器,服务器开始计时,同时给所有在线的客户端发送一个通知,客户端接收到此通知后开始计时.设客户端开始计时时间为Tcb,客户端接收到完整视频帧时的时间为Tce,时间差为

如果客户端登陆晚于终端登陆,则还需要在服务器上的计时时间.设服务器开始计时时间为Tsb,客户端登陆服务器的时间为Tse,该时间差为

结合式(4)、(5)和(6),可以得到视频帧自产生到客户端接收到该视频帧的时间差为

如果客户端登陆比终端登陆较早,则Tsd=0,否则大于0.这样计算出的延时只和相对时间有关,不涉及到绝对时间,所以即使终端服务器和客户端各自的时钟不一样也不会影响结果.视频延时的计算过程如图4所示.

图4 视频延时计算示意图

和丢包率相同,也采用加权平均算法来求取两次码率调整间的平均视频延时,并根据变化趋势来预测下一时间段的视频延时,使用预测的视频延时来判断网络状况.

2.1.3 网络状况定义

根据丢包率和视频延时两个标志量,把当前网络状况分为5类:空闲(网络带宽使用很少)、轻载(网络带宽没有充分利用)、满载(网络处于正常传输状态)、过载(即将发生拥塞)和拥塞.5种网络状况按如下方法判定:①空闲.没有丢包,视频延时极小,λloss<λ0,Tdelay<t0.② 轻载.丢包极少,视频延时很小,λloss<λ1,Tdelay<t1.③ 满载.偶尔有丢包,视频延时适中,λloss<λ2,Tdelay<t2.④ 过载:丢包频繁,视频延时较大,λloss< λ3,Tdelay< t3.⑤ 拥塞.丢包严重或视频延时很大,λloss≥λ4或 Tdelay≥t4.

2.2 码率调整

2.2.1 改进的AIMD算法

码率调整是实现系统平稳性、TCP友好性的关键.基于试探的码率调整是比较常用的方法.这种方法的基本思想是:轻载时,试探性增加码率使其接近有效带宽;拥塞时,则立即降低码率,缓解拥塞.目前,一般采用加性增乘性减(AIMD)算法或这种算法的改进算法来调节码率[5,9-10].AIMD 算法一般表示为

式中,α≥0,0≤β <1,ν(t-1)和 ν(t)分别表示t-1和t时刻的码率;α和β可以是常数,也可以是变常数.常数加增长和常数乘减少方法计算简单,实现起来比较容易,但码率波动太大.文献[4,11-12]采用了变常数加增长和变常数乘减少的方法,可以有效解决码率波动大的问题,但计算较为复杂.为了同时解决码率波动和计算复杂度的问题,对AIMD算法进行如下改进:

在前面已经把网络状况分为空闲、轻载、满载、过载和拥塞5个等级.针对这5种网络状况,对码率进行调整.基本原则是:① 拥塞,采用乘减少的方式迅速减小码率.②过载,采用常数减少的方式减小码率.③ 满载,保持码率不变.④ 轻载,采用常数加增长的方式慢慢增大码率.⑤ 空闲,采用常数加增长的方式快速增大码率.调整策略如下式所示:

2.2.2 多客户端

如果有多个客户端同时请求一个终端视频,则每一个终端计算出来的网络状况可能并不相同,因为每一个客户端和服务器之间的网络带宽是不一样的.这时有两个办法来计算终端的码率:①按最差的网络状况来计算码率;②对多个客户端的网络状况求取平均值.第1种计算方法有时候会不太合理,如果一个客户端的网络状况太差,所有的客户端也只能得到较低的码率.这里采用第2种方法,用1~5五个整数来代表5种网络状况.设同时请求该终端视频的客户端数为n,5种网络状况的客户端数分别为 ni,i=1,2,…,5,则得到的平均网络状况为

式中,[ ]为取整符号.终端根据此平均网络状况来计算新的码率值.

2.3 帧率调整

帧率并不影响视频流的大小,所以调整帧率并不能改善网络拥塞状况.但帧率影响视频的清晰度,在码率一定的情况下,帧率越小,单个的视频帧越清晰.所以在减小码率时,为了保证视频帧的清晰度,就不得不降低帧率.设帧率为fr,码率为br,按照码率计算帧率:

式(11)表示当码率在b1和b2之间变化时,帧率在f1和f2之间线性变化.

3 结果及分析

基于上述算法,对系统进行了测试.服务器程序运行在某市联通服务器上,监控终端和客户端都通过联通3G网络和服务器传输数据.为了有效观察算法效果,选择3G网络比较繁忙的时间段,并用文献[3,6]介绍的算法与本文提出的算法进行对比.

首先对文献[3]提出的基于RTT的自适应控制算法所进行测试.结果发现,在3G网络环境下,基于该算法得到的码率波动太大,而且码率恢复需要的时间较长.另外,该算法把最小RTT作为一个常数,但最小RTT是一个根据网络质量变化的变量.所以,该算法对于3G这种网络质量频繁变化的场合并不适用.

图5是根据文献[6]提出的自适应流量控制算法和本文提出的算法所得到的码率变化曲线对比.

图5 码率变化曲线对比

文献[6]使用RTT和丢包率来调整码率,本文使用视频延时和丢包率来调整码率.图6是根据两种算法所得到的丢包率对比,表1是详细数据对比.

表1 两种算法数据对比

从图5、图6和表1可以看出,在3G网络环境下,本文提出的算法在码率波动和丢包率两方面都要优于文献[6]提出的算法.视频延时和RTT的主要区别在于RTT并不包括视频数据包在终端和服务器的等待延时和处理延时.由于视频延时加入了等待延时和处理延时,因此,视频延时对于网络质量变化反应较为“迟钝”,而RTT更为“敏感”,但很多时候,由于3G网络的不稳定,3G网络并不是真正的拥塞,只是发生了短暂的网络质量波动.因此,在这种情况下,RTT的“敏感”反而会加大码率的波动进而造成更多的丢包.另外,过多的视频数据包在终端和服务器等待是引发网络质量变化的一个重要因素,而视频延时可以反映出在终端和服务器等待的数据包数量,如果等待的数据包过多,视频延时就会增大,从而可以提前减小码率以防丢包或者拥塞,而RTT则不能.

图6 丢包率对比

无论网络质量变差还是系统太过繁忙来不及处理,都会加大视频延时,前者增大数据包传输延时,后者增大处理延时和等待延时.不论哪一种原因造成的视频延时,都说明当前码率超出了系统的处理能力,所以当视频延时增大时就要减小码率.而RTT则只能反映出网络质量变差,并不能反映出等待延时和处理延时.

4 结语

本文针对基于3G网络的视频监控系统提出了一种码率自适应调整算法。在深入分析现有码率调控策略的缺陷后,提出了一种结合丢包率和视频延时两个特征量来判断网路状况,并根据改进的AIMD算法来调整码率的自适应调整算法。理论分析和实验结果表明,相比现有算法,在3G网络下,采用本文介绍的视频延时和丢包率来调整码率的方法,码率波动和丢包率都得到了很大的改善。

References)

[1]王正君,王友钊.基于RTCP的闭环码率调控和流量整型策略[J].计算机科学,2011,38(7):100-102.Wang Zhengjun,Wang Youzhao.Strategy of closedloop rate control and traffic shaping based on RTCP[J].Computer Science,2011,38(7):100-102.

[2]程万祥,张轶博,雷振明.平稳的RTP自适应算法[J].齐齐哈尔大学学报,2002,18(1):45-48.Cheng Wanxiang,Zhang Yibo,Lei Zhenming.A modified RTP adaptive arithmetic[J].Journal of Qiqihar U-niversity,2002,18(1):45-48.(in Chinese)

[3]朱利,周俊辉,郑守淇,等.基于RTT的自适应控制拥塞研究[J].计算机学报,2000,23(7):705-710.Zhu Li,Zhou Junhui,Zheng Shouqi,et al.Research on adaptive congestion control based on RTT[J].Chinese J Computers,2000,23(7):705-710.(in Chinese)

[4]万正道,杨永超.基于RTP的实时多媒体数据网络传输拥塞控制策略[J].自动化技术与应用,2010,29(7):44-46.Wan Zhengdao,Yang Yongchao.The congestion control strategy of real-time multimedia data transmitting over the network[J].Techniques of Automation and Application,2010,29(7):44-46.(in Chinese)

[5]于溯,盛彦瑾,黄凯,等.RTP自适应传输控制算法的研究[J].计算机工程与科学,2005,27(11):52-56.Yu Su,Sheng Yanjan,Huang Kai,et al.Research on the algorithm of RTP adaptive transmission control[J].Computer Engineering & Science,2005,27(11):52-56.(in Chinese)

[6]Tos Uras,Ayav Tolga.Adaptive RTP rate control method[C]//Computer Software and Applications Conference Workshops.Munich,Germany,2011:7-12.

[7]蒋建国,苏兆品,李援,等.RTP/RTCP自适应流量控制算法[J].电子学报,2006,34(9):1659-1662.Jiang Jianguo,Su Zhaopin,Li Yuan,et al.Adaptive flow control algorithm for RTP/RTCP[J].Acta Electronic Sinica,2006,34(9):1659-1662.(in Chinese)

[8]Schiopu P,Apetrechioaie B,Mateescu L.High resolution video acquisition and transmission system,using DSP[C]//IEEE 17th International Symposium for Design and Technology in Electronic Packaging.Timisoara,2011:273-276.

[9]巴洪涛,陈耀武,周蓉.监控系统中实时视频流码率动态调整机制的研究[J].计算机科学,2010,37(4):296-298.Ba Hongtao,Chen Yaowu,Zhou Rong.Studis on dynamic adjustment mechanism of real-time video streaming on surveillance system[J].Computer Science,2010,37(4):296-298.(in Chinese)

[10]Sivabalakrishna M,Manjula D.Analysis of decision feedback using RTCP for multimedia streaming over3G[C]//Proceedings of the International Conference on Computer and CommunicationEngineering.KualaLumpur,Malaysia,2008:1023-1026.

[11]El-Marakby Randa.Enhanced Qos for real-time multimedia delivery over the wireless link using RFID technology[C]//IEEE International Symposium on Signal Processing and Information Technology.Vancouver,BC,USA,2006:728-734.

[12]Huang Yih,Xu Genwen,Huang Leijun.Adaptive AIMD rate control for smooth multimedia streaming[C]//Proceedings of Computer Communications and Networks.Fairfax,VA,2003:171-177.

猜你喜欢
包率码率延时
支持向量机的船舶网络丢包率预测数学模型
一种基于喷泉码的异构网络发包算法*
电磁线叠包率控制工艺研究
一种基于HEVC 和AVC 改进的码率控制算法
基于FPGA的多码率卷积编码器设计与实现
基于级联步进延时的顺序等效采样方法及实现
日光灯断电关闭及自动延时开关设计
基于状态机的视频码率自适应算法
TCN 协议分析装置丢包率研究
Two-dimensional Eulerian-Lagrangian Modeling of Shocks on an Electronic Package Embedded in a Projectile with Ultra-high Acceleration