摘 要 网络多媒体通信逐渐成为人们生活、工作以及其他应用中方便简洁的一种技术。网络音视频数据量相对于传统的信息(如文本,图片等)有更大的数据量,在网络传输中因网络硬件及其它因素造成的数据传输的不稳定。为了保证数据的实时可靠的传输,根据长时间开发音视频通信的经验,采用了一种从采集、编解码,到网络传输的相互配合的保证数据的实时可靠的传输的方法,称之为自适应多码流传输技术。
关键字 音视频 ;流媒体 ;缓冲 ;多码流
中图分类号: TP393.09 文献标识码:A文章编号:1671-489X(2007)07-0054-02
Adaptive Multi-Stream Web Transport and Control Technique in Multimedia Communication//He Yuhu, Zhou Shuyi
Abstract The internetmultimedia communication gradually becomes a convenient and concise technique in human’s life,work and other application.Because the audio-video multimedia data generallyis larger than traditional data such as text and picture , the data transmission on web mustn’t steady for net hardware unstable working and other fluctuate.To ensure multimedia data transmission on the real time and reliable way, a method could be adapt which comes my programming experience of the web audio-video communication, that is named self-adapt multi-rate transmission technique which ensures data’s real time and steady operating in coordination in the data collecting , encode-decode and net transmission .
Key wordAV, multimedia , buffer , multi-rate
Author’s address Beijing University of Technology, Beijing 100022
当前网络上应用到音视频媒体技术的软件数不胜数:如QQ视频聊天,MSN视频会议,Windows Media流媒体发布,还有其他的一些如flash流的网络音视频插件。正是因为音视频媒体给人以直观生动感觉信息,可以预言在将来的网络信息传播中音视频数据信息将占极大的一个比重。音视频信息不同于其他媒体信息,具有实时、可容错性的特点,因此面向非连接的UDP/IP协议成为网络传输中的首选。但是由于UDP/IP协议天生的不可靠性,以及目前网络通信条件的限制,在实际应用中常出现音视频不同步,视频不流畅,花频,音频噪音(如有规律的“嘟嘟”)等。针对这些问题,作者通过应用多码流与网络缓冲结合,并采用自适应负反馈调节,基本解决了以上问题,包括在网络状况比较差的64kb/s的modem上实现音视频数据的比较流畅的传输。
1 网络状况分析
在多媒体数据传输中,网络状况大致可以通过网络平均带宽、网络带宽抖动和网络噪声3方面来进行描述。网络平均带宽反映的是网络传输数据的最大承载量,无论是单点对单点,单点对多点,多点对多点的通信,其最终可简化到单点对单点的数据通信,两点间的平均带宽取决于网络线路及中间环节(路由器,交换机等)。平均带宽是一个相对恒定的数值。网络带宽抖动是由于中间环节在处理中转数据过程中造成的网络实际带宽随时间变化而不断变化的程度,此抖动往往与网络的跳数(中间的路由器和交换机的个数)成比例变化。而网络噪声是由多方面因素造成的,相对于网络带宽抖动,网络噪声没有规律且变化较快,波动也比较大。网络状况分析的这3个方面中,平均带宽是一个可测量(测两点间的带宽,可用不断增加的发送速率发送打戳的UDP包,接收方给出反馈即可测出),而其他两个量不可能测出,带宽抖动相对比较稳定,可以根据前面的数据估计,网络噪声随机性比较大。
根据网络状况分析的3方面的特点,给出相应的解决策略。
(1)如果平均带宽构成对多媒体数据传输的限制(平均带宽小于或者大致接近多媒体码流),则必须对音视频数据的码流进行调整。
(2) 根据网络抖动的情况,开辟适当大小的音视频接收缓冲区。
(3)对于网络噪声,采用立即增加缓冲和按需求申请重新发送的策略。
对于前两条,并非始终不变,而需要自适应变化。
2 自适应多码流
在通信前,对音视频码流进行一次估计:例如320×200采集大小,24位真彩,25帧/秒,H263压缩的视频(压缩比约50:1),8000Hz/秒,两字节采样点,双声道,G729压缩(压缩比16:1)。则音视频码流:L1=320*200*24*25/50+8000*16*2/16=784 kb/s 。
根据此数值对网络进行网速估计Vnet:分3步。
(1) 在1秒中发送784×1.2 /2=470 kb的UDP包群(乘1.2是安全系数),如果包群接近完全到达进行下一步;否则Vnet=470 kb/s , 跳出网速估计。
(2)在1秒中发送784×1.2 =940 kb的UDP包群(乘1.2是安全系数),如果包群接近完全到达进行下一步;否则Vnet=940 kb/s , 跳出网速估计。
(3)在1秒中发送784×1.2*2=1980 kb的UDP包群(乘1.2是安全系数),如果包群接近完全到达Vnet=1980 kb/s, 否则Vnet=784*1.2*1.5=1510 kb/s , 跳出网速估计。
跳出网速估计后,假如估计网速Vnet < 音视频码流L1, 根据实际情况降低音视频码流。有两种方法:①降低采集帧率 ;②提高压缩比。两种方法协同进行。如果对视频清晰程度有较高的要求,而视频晃动较小的情况下可以考虑着重降低采集帧率的方法,具体做法是在采集后的图像帧送到压缩器时丢弃。如果图像运动频繁,清晰度要求不太严格的情况下,着重考虑提高压缩比的方法,一般采用动态量化系数或者动态量化表的方法,去掉更多的图像细节以达到提高压缩比的目的。如果网速过低,这两种方法不足以达到要求时,没有办法,只要像Windows Media 流那样真正的多码流了:降低采样的个数,如176×144。
前面所说的估计网速Vnet并不是真实的网速,因此在实际传输过程中必须对Vnet进行修正,由于平均带宽是比较恒定数值,对Vnet的修正可以在比较长的时间段做分析。具体的做法是设置一个变量P代表前一分钟的丢包率,每一分钟对P检测,如果P大于某个数值则向发送方发送申请降低码流的控制信息,发送方根据实际情况降低码流;如果P小于某个数值,则发送网络状况良好,可以增加码流的控制信息,发送方根据实际情况增加或者不改变码流。P的值的算法在后面会介绍。
3 网络缓冲处理
由于网络抖动的存在,必须开辟网络接收缓冲区来减弱网络抖动造成的媒体数据信息传输的丢包现象。网络抖动一般呈波浪型,设网络带宽抖动由T表示,由实践观察得知,网络抖动一般在数秒钟的数量级出现,因此以5秒为一个观察间隔。在初始状态时不能预测网络抖动T的大小,就以估计网速Vnet的20%为初始值,以后在一定时间内自动调整。实际检测中,设置两个60×5=300长度的整型数组,分别表示音频和视频最近300秒的每秒钟的丢包数:L[300](下标从0到299),同时设置一个队头指针,指向最新点,当网络接收丢了若干包后在这个最新点的数值加上丢包数,队头指针由1秒定时器控制,每秒加一。每5秒设置一个网络抖动计时器,用来记录网络抖动的评估,取一个5秒钟的变量Lf表示5秒钟的丢包数,如果Lf大于某个数值,则网络带宽抖动由T需要增加,如果小于某个数值则网络带宽抖动由T需要减小。相应的,前面所说的估计网速Vnet也需要随时进行调整,设置一个一分钟的定时器,取变量Lm表示前一分钟的丢包数,根据Lm的取值对Vnet进行适当的调整。
4 网络噪声的处理
网络噪声出现比较随机,基本上没有比较好的理论上的评估方案,实际上对网络噪音的观察是通过临界带宽通信观察的数据。在网通512 kb/s的ADSL上做了一个实验:建立一个流量为500 kb/s的UDP连接,发送方每秒发送64个1 KB大小的包(即512kb),接收方设置1秒定时器,进行长时间的观察,记录如图:
如图,可以看到明显突起的部分是由网络噪声造成的丢包波动,时间维持长度大约在10秒的时间段。实际处理时,设置一个10秒的定时器,观察一秒前的丢包数,若丢包数大于某个数值,则认为有网络噪声,增加缓冲区到某个数值,如果丢包数小于某个数值则认为网络噪声停止,减小缓冲区个数。
5 结束语
对音视频网络数据的传输控制,有很多种方法,以上是作者在研究中分析总结自己实践中的一些经验,当然会有不足之处,希望以后的研究能够给予补充。
推荐访问: 流网 音视频 信中 自适应 传输