本文提出了一种基于AMR语音编解码算法的新VoIP系统,该系统可以根据网络信道质量的好坏来自适应地选择一种最佳的传输速率,从而使得合成后的语音质量有了更加良好的QoS保障。通过NS-2平台下的仿真,实验结果表明:新VoIP系统在网络延时和数据包丢失率方面均要明显优于采用G.729算法的传统VoIP系统。
1 NS-2和AMR相关技术
1.1 NS-2网络模拟器
NS-2(Network Simulator,version 2)是由加州大学伯克利分校开发的面向对象的、离散事件驱动的网络模拟器,主要用于解决网络研究方面的问题,目前NS-2可以用于模拟各种不同的通信网络。它功能强大,模块丰富,已经实现的主要模块有:网络传输协议(如TCP和UDP),业务源流量产生器(如FTP、Telnet、Web、CBR和VBR),路由队列管理机制(如Droptail、FQ、RED和CBQ),路由算法(如Dijkstra),无线网络WLAN、移动IP、卫星通信网络模块、多播协议以及一些MAC子层协议等。
NS-2使用了被称为分裂对象模型的开发机制,采用C++和OTcl两种开发语言进行开发,它们之间采用TclCL进行自动连接和映射。NS-2的模拟可分为2个层次,其中第一个层次是基于OTcl的模拟,主要利用NS-2现有的网络元素来实现模拟,因此无需对NS-2本身做任何修改,只需要编写一个完整的OTcl脚本程序即可;另外一个层次是基于C++和OTcl的模拟,该层次中没有所需的网络元素,因此需要对NS-2进行扩展,添加所需要的网络元素。一般来说,NS-2的模拟需要与Nam﹙Network animater﹚配合使用。Nam是基于Tcl/Tk的动画演示工具,以把模拟的过程用可视化的方式呈现出来[2]。
1.2 AMR自适应技术的介绍
自适应多速率语音编码(AMR)有8种信源编码模式,2种信道模式(即全速率信道模式和半速率信道模式)以及不同信道模式下所对应的不同信道编码模式。其中,全速率信道模式下所对应的信道编码模式为8种,半速率信道模式下所对应的信道编码模式为6种,每种信道编码模式都有一种信源编码模式与之相对应。此外为了降低算法的复杂度,8种信源编码模式均采用ACELP(Algebraic Code Excited Linear Prediction)模型,不同的只是参量的量化码本和量化比特数。在移动通信中,当信道模式固定后,通过测量归一化的载(载波信号)干(干扰信号)比来估计当前信道的质量,度量级别为4个级别,分别为很差、差、好、很好。如果当前信道质量估计为较好或者好,则降低信道编码速率、提高信源编码速率,以此来提高重构后的语音质量;如果当前信道质量估计为差或者较差,则提高信道编码速率、降低信源编码速率,以此来保障通话质量。所以高模式下的信源编码(如MR122),虽然可以提供优良的语音可懂度和自然度,但是抗噪能力差;而低模式下的信源编码(如MR475),由于多数比特被用作信道编码,因此具有很强的纠错能力,但是重构后的语音质量不佳[3]。
2 AMR算法下的VoIP系统
VoIP传输的基本过程可分为4种:PC-PC模型、PC-Phone模型、Phone-PC模型和Phone-Phone模型[4]。本文中仿真的是Phone-Phone模型,具体过程如图1所示。在该模型中,语音的传输过程可以拆分为2个阶段。第一个阶段,语音数据通过UDP协议打包从源点pc0-T开始发送,通过网关gk0、gk1转发,将语音数据包转发到目的地点pc0-R,从而实现节点0~5之间的语音数据通信;第二个阶段,语音数据通过UDP协议打包从源点pc1-T开始发送,通过网关gk1和gk0转发,将语音数据包转发到目的地点pc1-R,从而实现节点6~1之间的语音数据通信。2个阶段连续的传输过程构成了VoIP中语音数据的基本传输过程。此外,为了更加真实地模拟网络资源的变化,设置了一个pc到pc的网络数据量的传输过程。该过程为:网络数据通过TCP协议打包从源点pc2-T开始发送,通过网关gk0和gk1转发,将网络数据包转发到目的地点pc2-R,从而实现节点2~7之间的网络数据的传输。通过设置不同的网络
数据流量可以来模拟当前网络信道质量的好坏,从而为选择不同的AMR信源编码模式做准备。
为了检测网络拥塞下新VoIP系统的性能,需要对上述语音模型的一些参数进行调整:(1)公共交换网(PSTN)传输带宽的设定。节点0~3之间的链路是用来模拟PSTN的,而PSTN中最大的语音传输速率(无损语音编码方案G.711)为64 Kb/s,因此为了体现带宽资源的宝贵性,设置此链路的传输带宽为64 Kb,同理节点1~3之间、节点5~4之间、节点6~4之间的传输带宽也设为64 Kb;(2)Internet网传输带宽的设定。节点3~4之间的链路是用来模拟Internet网的,由于Internet网中传输数据量往往很大,而分配给每个用户之间的传输带宽是有限的,因此为了体现网络带宽的有限性,设置此链路的传输带宽为1 Mb。同理节点2~3之间、节点4~7之间的传输带宽也设为1 Mb;(3)当前网络信道质量的度量。为了度量当前网络信道质量,选取衡量VoIP系统性能的参数如时延、抖动、数据包丢失率等来作为衡量当前信道质量的参数。在本实验中,选取的是在一定时间内的语音数据丢包率,其计算公式为:λ=Sd/SRTT,式中Sd为固定时间内丢失的语音包数目,SRTT为固定时间内发送的语音包数目[4];(4)AMR信源编码模式的选择。由于AMR有8种信源编码模式,且8种信源编码模式均是基于ACELP模型,各个模式下重构后的语音MOS值相差也不大,但是AMR总的代码量却很大,所以综合衡量起来,可以根据不同的语音数据包丢失率来自适应地选取其中的3种,即:MR122、MR74、MR475[3]。选择标准为:当λ≤1%时,选取MR122模式;当1%<λ≤3%时,选取MR74模式;当λ>3%时,选取MR475模式;初始信源编码模式为MR122。
3 实验结果与分析
新VoIP系统在NS-2平台下的运行情况如图2所示。在该运行模型中,节点2~7之间流量的大小代表了网关节点3~4之间链路的状况。即当节点2~7之间传送的网络数据很大时(>1 Mb),则认为节点3~4之间的链路发生了拥塞状况;当节点2~7之间传送的数据量较小时(<1 Mb),则认为不会发生拥塞状况。节点0~6是语音数据包的发送节点,且具有根据网络质量来自适应地调整语音发送速率的功能,其中初始发送速率为12.2 Kb/s;数据包的发送用NS-2自带的Pareto分布流量产生器,这主要是考虑到话音激活检测技术(VAD)对IP话音的影响[2]。
此外,为了更加方便和有效地分析实验数据,需要对上述VoIP模型进行简化处理,简化后的VoIP传输模型如图3所示。其中节点2为网关,节点3既是网关也是所有网络数据的接收节点;节点0为语音数据包的发送节点,节点1为网络数据量的发送节点。
图4为采用不同语音算法的网络数据的时延图和丢包率图。
[1] [2] 下一页