抗语音分组丢失的自适应传输调整算法的实现

2013-11-30 05:01王亚光刘一伟张文杰李云龙
计算机工程与设计 2013年1期
关键词:包率传输速率报文

王亚光,刘一伟,张文杰,李云龙

(1.南开大学信息技术科学学院 计算机科学与信息安全系,天津300071;2.北京大学 数学科学学院数学系,北京100871)

0 引 言

实时语音在传输过程中,由于网络带宽的限制、分组原因、网络状况恶化或者路径选择等问题都会造成语音分组[1]的丢失,即丢包现象[2]。丢包率一旦过大,通话质量就会受到严重的影响。尽管现在有很多优秀的算法能够对丢包后的语音数据进行处理和恢复[3],其恢复结果在低丢包率的情况下也表现得很理想,但是在高丢包率的情况下,这些算法的效果并不是很好,其根本原因是采用丢包恢复算法对提高语音质量是一种治标不治本的策略。对此,本文提出了一种在实时语音传输过程中抗分组丢失的自适应传输调整算法,在实际语音通信系统中加载该算法的运行,结果表明该算法通过调整语音传输速率减少了抗语音分组的丢失。

1 算法设计

抗语音分组丢失自适应传输调整算法分为图1所示的3个部分:反馈信息量化模块、网络状态判定模块和传输速率调整模块,其中虚线部分表示自适应功能部分。

图1 抗分组丢失的自适应传输调整过程

其中,反馈信息量化模块的功能是对反馈的网络状态信息的计算,是根据RTCP[4]承载的反馈信息来计算反映当前网络状况的一些特征值。网络状况判断模块是根据上一步的量化结果来分析当前网络所处的状态或变化趋势,并对网络状态做出判定,接着将判定结果交给传输速率调整模块。传输速率调整模块根据判定的网络状态结果重新计算语音传输速率,然后再将新的传输速率通知语音编码压缩模块,语音编码压缩模块根据新的传输速率调整压缩后的语音发送速率以适应当前网络状况。下面分别介绍这3个方面的实现方案。

1.1 反馈信息的量化

对反馈的网络状态信息进行量化是利用RTCP报文的RR分组中的丢包率字段值来进行计算的。本文解析工作是从接收端反馈回来的RTCP的控制报文RR中的丢包率字段值获取语音数据包的丢失率,如果RR报文中有多个同源标识符SSRC且同一时间的报告块,那么以丢失率最大的那个SSRC报告块作为对象来获取量化所需要的丢失率参数。对获取的丢失率再通过一个平滑器(也称低通滤波器)[5]进行平滑处理。平滑后的结果就是量化结果,是判定网络状态的依据。其平滑计算公式为

式中:Pn——待求的预测值,即丢包率量化值。Pn-1——Tn时刻的丢包率量化值。Pback——Tn时刻RTCP报文中的丢包率。B——常量,称b为平滑算子,且0<b<1。

由公式得出:当网络发生拥塞时,数据包丢失率Pback的值会长时间较大,Pn会逐渐增大而接近Pback。当网络由拥塞变为轻载状态时,Pback的值会转变成一个很小的值,如持续时间较长,则Pn会逐渐变小而接近Pback。

通过平滑器来实现网络状态量化的这种自适应过程跟平滑算子b有很大的关系。这是因为b能过滤掉很大的随机波动,如果b的取值太小,则它对丢包率的反映就会较慢。如果b取值太大,则它对丢包率的反映就会过度敏感,有可能造成语音传输速率的震荡调节。因此,合理取得b值尤为重要。通过不断改变b的值,可以获得多组Pn值,且每组Pn与一个b值相对应,通过对每组Pn接近Pback的平滑效果分析,b取0.3时平滑效果表现最佳。

1.2 网络状态的判定

本文将网络状态分为3个区间:网络轻载(UNLOAD-ED)、网络满载(LOADED)和网络拥塞(CONGEST)。对于语音品质,低于200ms的时延和4%的丢包率,是可接受的范围;时延在200~400ms,丢包率在4%~8%之间时,是一个边缘范围,可满足部分用户的要求;当时延超过400ms,丢包率超过8%时,则不能满足语音会话的需求。引入两个阀值Lu和Lc来划分3个区间,以分别表示网络所处的网络轻载、网络满载和网络拥塞3种状态,从而当前网络所处的状态。本文取Lu=4%、Lc=8%将网络划分为3个状态区间,如图2所示。

图2 网络状态划分

由式(1)求得的网络状态量化值Pn跟阀值进行比较,则可以判断出当前的网络状态,例如:Pn<Lu:网络轻载;Lu<Pn<Lc:网络满载;Pn>Lc:网络拥塞。

1.3 传输速率的调整

调整传输速率的作用是根据网络状态调整语音的传输速率,不能通过急剧增加或急剧减小的方式调整语音传输速率,快速的速率调整会造成语音剧烈的震荡,从而影响接收端的语音效果。通常在调节过程中应采用慢增慢减的调节方式[6],以一种平滑的方式调整速率,这样接收端的语音就具有良好的稳定性。

为实现根据网络状态[7]来调节语音的发送速率,本文引入模型TCP拥塞控制算法[8-9]AIMD(additive increase and multiplicative decrease),以控制网络流量。该算法的主要思想是:当网络中出现分组丢失时,发送窗口中数据量将以乘积方式减少,否则就简单地增加一个数据包的发送量。本文对AIMD算法中加性因子a与乘性因子b进行改进,从而使其能以一种慢增慢减的方式来调整语音的传输速率。AIMD算法中流量控制的数学表达式如下

其中,Z(t+1)——t+1时刻的发送速度;Z(t)——t时刻的发送速度;a——加性因子,a≥1;b——乘性因子,0≤b≤1;r——t时刻报文丢失率;TH——报文丢失门限值。

式(2)表明AIMD算法是根据报文丢失率作为调节传输速率的依据,当报文丢失r小于门限值TH时,发送速度或带宽就在原有的基础上线性增加a(a≥1),一旦r超过门限值TH时,发送速度或带宽将乘积减少b(0≤b≤1)。

但并不能直接用AIMD算法来调节语音传输速度,这是因为AIMD在进行流量拥塞控制过程中为了更好地体现竞争网络带宽的公平性,一般取a和b的值为1和1/2。也就是说,一旦出现分组数据丢失,AIMD将利用乘积方式将带宽减半。但对语音传输速率而言,在语音分组丢失后如果语音传输速率直接减半,将会造成传输速率的震荡调节,直接导致接收端语音数据产生强烈抖动。为此,本文以RR报文中的丢失率为传输速率的调整依据,而参数a和b无法自适应地与报文丢失率建立联系,这就必须对式(2)进行改进:利用报文丢失率作为参考依据引进一个预测值K,利用K消掉参数a和b。而预测值K可以通过RR报文中的丢失率平滑后的结果Pn和抖动量J求得。

(1)抖动量的获取

在计算抖动量[10]之前,先计算接收端两个RTP语音数据包之间的相对传输时间D。设有两个RTP语音数据包Rj和Ri,T1表示包Rj的RTP时间戳,T2表示包Rj的到达时间,T3表示包Ri的RTP时间戳,T4表示包Ri的到达时间。Rj包的单向延时可表示为T2-T1;Ri包的单向延时可表示为T4-T3;那么相对传输时间差D可表示为

每当从一个特定的信源接收到RTP包时,通过下面递推公式得到抖动量J

D(i,i-1)为包i和前一个包i-1的差值。这是一个最佳一阶估计量,而且增益参数1/16在实现了较好的降噪比的同时,又维持了合适的收敛速度。这个抖动量J在发送RTCP的RR报文时,将填入RR报文的Inter arrival jitter字段中。当RR分组到达发送端时,抖动量J将被预测参数量K引用。

接收端通过RTCP协议进行自动计算Pn的语音分组丢失率,且与抖动量一起通过RR报文传给发送端。

(2)预测量K的计算

预测量K通过下式求得

式中:Lmax——实时语音流传输时允许的最大丢包率;Jmax——实时语音流传输时允许的最大间隔抖动;Pn、J——当前丢包率平滑的网络状态量化值和抖动量;λ1、λ2——Pn、J的预测权重,其中0<λ1<1,0<λ2<1,且λ1+λ2=1。其中λ1和λ2参数可以根据网络背景情况进行设定,在网络物理环境好、网络拓扑结构并不复杂的情况下,可以适当地增加Pn的预测权重,即取λ1>λ2;在网络物理环境复杂多变、网络中间节点多的情况下,可以适当地增加J的预测权重,即取λ1<λ2。

通过反映当前网络状态的预测值K来预测语音的发送速度,能减少因网络状态带来的语音分组丢失。在式(3)中引入预测量K,式(4)中增加乘积可得到根据网络状况来调整语音传输速率的模型式(6)

式中:Z(0)——初始时刻的语音数据的发送速度;和式中的2和积式中的1/2为修正值,目的是使得语音传输速率平稳,避免因传输速率震荡调节而产生较大的语音抖动。e表示进行速率增长和减少的阈值,依据第二阶段判断网络状态模块的量化值Pn,通过e=Pn/Lmax归化到区间[0.1,0.5]之间,具体的归化方式利用下面的公式

归化的目的是使得阀值e与网络状态值Pn建立一种联系,让阀值e来反映网络状态的变化情况。当公式中e=Pn/Lmax小于0.1时,一律归化到最低门限0.1,表明网络绝对处于轻载状态,这时预测量K是一个比0.1小的值,速率将会慢慢增加;当e=Pn/Lmax大于或等于0.1小于或等于0.5时,速率的调节视K而定,如果预测量K小于e表明网络处在一个轻载或满载初期状态,可以适当地增加传输速率,如果预测量K大于e表明网络处在一个满载向拥塞的过度时期,这时速率将会慢慢减少;当e=Pn/Lmax大于0.5时,一律归化到最高门限0.5,表明网络已经有拥塞趋势或处于严重拥塞状态,预测量K将是一个比e大的数,这时速率将会慢慢减少。

整个速率调节过程通过预测量K能自适应地根据网络状态门限(Threshold)阀值e进行速率调整,修正值的引进可以使速率调整以一种慢增慢减的方式进行。

2 算法的实验评估

抗语音分组丢失的自适应传输调整算法在应用到实时语音传输通信中之前,必须对该算法进行抗语音分组丢失的性能测试。为此自行搭建如图3所示的拓扑结构的网络环境。

图3 网络拓扑模式

在同等条件下,以网络轻载、满载、拥塞3种网络状况为背景,在相同的一段时间内,分别统计在每种网络状态中加载该算法前后两种情况下RR报文中的分组丢失率。通过对每种网络状态阶段中算法加载前后丢失率的分析,来评估该算法的性能。

实验前,先设定算法中的参数b设为0.3,Lmax为0.12,Jmax为0.08s,权重 w1、w2分别设置为0.6和0.4,语音初始传输速度为8kb/s。接着对网络状态的3个阶段进行实验,统计每个阶段算法加载前后语音分组丢失率的比例,其中实验时间为30s,RTCP的RR报文平均每2s从接收端向发送端反馈一次,因此可以获得15组语音报文丢失数据。通过对这15组数据进行分析,在同等时间段内、相同条件下该算法表现出来了抗分组丢失的性能优势。

(1)网络轻载状态下的比较情况:在实验过程中使网络处在网络轻载状态。则发现,在没有加载该算法时,15组数据基本上全为零,这意味着在语音传输过程中没有分组丢失,且语音清晰,延时非常小。同样,在加载了该算法的条件下,15组数据也基本上全为0,语音效果与未加载时一样。因此,在网络轻载状态下,抗语音分组丢失的自适应传输调整算法无法表现出其优越性,这是因为足够的网络带宽能保证语音分组的丢失率下降。

(2)网络满载状态下的比较情况:通过向网络中加入一定的数据流来消耗网络带宽,使网络状态处在一个满载状态,然后启动语音通信,在相同时间段内,分别统计算法加载前后RR报文中语音分组的丢失率(即丢包率),各15组数据。其丢包率随时间的分布如图4所示。

图4 满载状态丢包率比较

在图4中,蓝色的菱形代表没有加载算法时丢包率随时间的分布规律,红色方块代表加载该算法时丢包率随时间的分布规律。从图中可以看出,在网络满载状态阶段,两种情况下语音的丢包率基本上都是维持在1%~4%之间,但从总体上来分析,红色反映的丢包率要略微低于蓝色反映的丢包率,出现这种结果是因为在预测量K与门限值e的作用下,算法将自适应地调节传输速率来自适应网络的变化。因此,在网络满载状态、速率调整门限比较低的情况下,该算法能在一定程度上起到抗语音分组丢失的作用。

(3)拥塞状态下的比较情况:通过利用大量数据流消耗网络带宽,并人为持续地在语音通信过程中制造网络拥塞状态,分别收集应用算法前后的丢包率随时间分布规律如图5所示。

图5 拥塞状态下丢包率比较

语音通信过程中,丢包率在4%~8%之间,是一个过渡区域,处于这个过度区域时语音有比较大的延时,但语音信号还能辨认,交互双方还能继续进行;丢包率超过8%时,语音信号将变得不清晰,且延时非常厉害,这种情况下交互双方将无法再继续。在图5中,红色代表的丢包率明显低于蓝色代表的丢包率。其中,没有应用算法时丢包率基本处于8%~12%,应用后丢包率基本维持在8%以下。很明显,在网络拥塞状况下,该算法具有更强的抗语音分组丢失能力。

通过上述实验,抗语音分组丢失的自适应传输调整算法能依据网络的状况变化相应地调整传输速率来减少语音分组的丢失,提高语音的传输质量。尤其是在网络状况恶化、拥塞严重的时候其表现的抗分组丢失性能更加明显和突出。

3 结束语

为提高语音的传输质量,从根本上改善语音分组丢失状况,本文提出了抗语音分组丢失的自适应传输调整算法,其基本思想是发送端利用接收端反馈回来的RTCP控制报文中RR分组的丢失率值,通过量化处理,把量化结果作为判别网络状况依据,然后再根据网络状况,引进预测值K,通过改进AMID(和式增加乘积减少)算法来调整语音的传输速率,使传输速率自适应网络的状况变化。通过对该算法进行实验评估,能在一定程度上起到抗语音分组丢失的效果。

[1]Qi Wang.A full-distributed architecture for PoC application in data packet voice communication[C]//Beijing,China:Com-puter and Information Technology,2011:231-237.

[2]Lam R Y W.Analysis of a polling protocol for packet voice transport over IEEE 802.11wireless LANs[C]//Vancouver,BC:VTC Spring,Dept of Electr & Comput Eng,British Columbia Univ,2008:1641-1645.

[3]Miralavi S R.Packet loss replacement in voip using a recursive low-order autoregressive model-based speech[C]//Tehran,Iran:Systems,Signals and Devices(SSD),Sch of Sci & Eng,Sharif Univ of Technol,2011(8):1-4.

[4]Shahbazi S.A new design for improvement of scalable-RTCP[C]//ICFCC,Dept of Electr Electron & Syst Eng Univ,2009:594-598.

[5]Mukherjee S.Linear phase low pass FIR filter design using improved particle swarm optimization[C]//Durgapur,India:Research and Development(SCOReD),Dept of Electron & Commun Eng,Nat Inst of Technol,2011:358-363.

[6]Vinh Tran-Quang.A transmission range adjustment algorithm to avoid energy holes in wireless sensor networks[C]//Saitama,Japan:APSITT,Grad Sch of Eng,Shibaura Inst of Technol,2010(8):1-6.

[7]Capasso A.Network state indicators in flexibility evaluation for operational planning in electricity market[C]//Rome,Italy:PowerTech,Dept of Electr Eng,Univ of Rome La Sapienza,IEEE Bucharest,2009:1-6.

[8] Wei Wei.Target tracking with packet delays and losses-QoI amid latencies and missing data[C]//Amherst,MA,USA:Pervasive Computing and Communications Workshops,Dept of Comput Sci,Univ of Massachusetts,2010(8):93-98.

[9]Nishiyama H.Wireless loss-tolerant congestion control protocol based on dynamic aimd theory[J].Wireless Communications,2010,17(2):7-14.

[10]Aly A O.Graduation project implementation of hardware digital DCT based image coder[C]//Radio Science Confe rence.Cairo,Egypt:German Univ in Cairo,2009:1-2.

猜你喜欢
包率传输速率报文
基于J1939 协议多包报文的时序研究及应用
支持向量机的船舶网络丢包率预测数学模型
一种基于喷泉码的异构网络发包算法*
电磁线叠包率控制工艺研究
CTCS-2级报文数据管理需求分析和实现
三星利用5G毫米波 实现创纪录传输速率
浅析反驳类报文要点
夏季滨海湿地互花米草植物甲烷传输研究
数据传输速率
ATS与列车通信报文分析