Board logo

标题: 基于PXA255的VoIP语音传输系统研究 [打印本页]

作者: forsuccess    时间: 2013-7-18 22:32     标题: 基于PXA255的VoIP语音传输系统研究

VoIP是基于Internet的新型数字化传输技术,是IP网上通过TCP/IP协议实现的一种电话应用技术。这种应用包括PC对PC、PC对电话、电话对电话等连接方式,其业务主要包括语音业务、E-mail、实时电话、实时传真等多种形式。与传统电话相比,IP电话的优点主要是节省带宽、通话费用低、易于开发增值业务、体系结构开放,有利于多种通信方式的统一。对VoIP技术的研究主要围绕改善IP电话服务质量来进行,尤其是使用先进的硬件技术、可靠的实时传输技术和能随着网络状况自适应调整速率的低速率语音编码技术等研究及工程热点。
研究与实现基于嵌入式处理器的VoIP语音传输系统,可集成嵌入式系统、网络通讯、多媒体和语音处理等应用领域内的前沿技术,将嵌入式系统的高性能、低功耗、网络通讯的低成本特性融合于一体,经过进一步完善后可以取代固定电话,并发展可视电话等信息终端,可以实现电话网、广播电视网与Internet网的整合,具有很大的经济和技术优势。

1 PXA255嵌入式处理器
本文研究与设计的嵌入式IP数字语音系统将在以太网环境中工作。与目前大多数基于PC的IP电话终端相比,选择嵌入式IP电话终端具有如下优势:
(1)嵌入式硬件平台可以进行裁减和定制,因而可以大幅降低IP电话终端成本;
(2)可以定制嵌入式软件平台,容易升级,实时性好,而基于PC机的IP电话占用资源多,操作系统复杂,容易死机;
(3)嵌入式IP电话终端功耗低,可以使用电池进行供电,因而系统具有小型化、便携的特点,这是PC所无法比拟的。
PXA255处理器是Intel公司带ARM核的多媒体处理器。PXA255处理器的内部功能模块框图见图1所示。


PXA255处理器具有如下特色:核心频率支持100~400MHz;多种系统存储器接口;外设资源非常丰富:有PCMCIA/Compact Flash卡控制引脚、LCD控制器、全功能UART、USB客户端、AC97控制器、15个灵活的GPIO引脚等。

2 VoIP的嵌入式Linux环境构建
嵌入式IP吾音终端使用的嵌入式Linux平台可分为三个层次:应用软件层次、Linux内核层次和设备驱动层次。其中平台无关部分包括:Linux实时内核、文件系统、应用软件等部分;平台相关部分包括:硬件驱动的改造和启动过程改造,我们需要针对不同平台进行代码改造,
编写各种驱动。由图2可知,Linux对各种设备的操作都是以文件的形式进行的。


基于RTP协议的语音实时网络传输软件,位于Linux网络结构的Socket应用层,如图3所示。在嵌入式Linux平台上利用Socket系统函数实现语音传输的RTP应用。在具体编程时,Linux平台上可供选用的语言有C、C++等。在这里我们也采用C语言,并采用编译器Arm-Linux-Gcc。
语音处理的音频库函数使用OSS(Open Sound System)。


嵌入式IP终端系统软件界面采用QT/Embed编程。利用qte的界面编程辅助工具QT Designer能很方便地实现界面规划布局。由于是可视化编程,能很好地控制界面布局、效果,操作方便。QT Designer生成的界面文件是以XML语言编写的.ui文件,通过QT附带的工具UIC,能让*.ui文件生成*.h和*.cpp的文件格式。使用QTDesigner大大降低了编程的工作量,并且能得到所见即所得的图形效果。

3 语音编解码器选型
对语音信号,有许多压缩算法和标准。这些编码算法可按照编码系统码率大小、输入信号频带宽度、所采用的编码技术等方面进行分类。编码系统优劣的评价主要体现在编解码系统的性能指标上,一个编解码器系统有输出声音的质量、编码速率、复杂度、迟延和容错性
等性能指标。
(1)编码速率。编码速率指的是编码器对输入声音经过压缩后每秒的比特数,即压缩后的传码率。这是编码系统的一个十分重要的指标。降低比特率而维持较高的解码声音质量,是语音和音频信号压缩编码的主要任务和主要目标。对电话级别的语音带宽而言,通常认为比特率超过16kb/s的为高速编码,而速率在8~16kb/s范围的为中速率编码,速率在8kb/s以下的为低速率编码。
(2)输出声音的质量。输出声音的质量是指经过编码系统再经过接收方的解码后恢复出的声音质量。衡量输出声音质量主要有二个指标:客观质量和主观质量。客观质量法易测量,但往往不能精确反映语音质量。由于声音的最终接收者是人,所以主观法更能反映声音质量的真正好坏,但它测试不易,费时费力。
(3)复杂度。在传统电话应用中,很少使用压缩,是因为压缩算法的复杂度太大,算法执行时间长,算法的延迟也一起带入到通信系统中。随着技术的进步,芯片处理速度越来越快。现在工程上一般采用单片数字信号处理器DSP芯片来实时实现语音编解码。语音编解码算法的复杂度可由算法所需的计算量、存储量、硬件尺寸、消耗功率及价格来衡量。
(4)时延。时延指完成编解码算法所需的时间。对于语音编解码器来说,时延也是一个非常重要的指标,如果时延太大,听起来很不舒服。对于时延,不同的应用场合有不同规定,如对长话网不加回波抑制的单向编解码时延不得大于10ms。对可视电话则放松到不超过500ms。对VOIP语音系统的时延要求不超过300ms。
(5)容错能力或鲁棒性。容错能力指编解码系统抗误差、线路噪声等各种干扰的能力。
表1对几种编码器的比特率、主观平均意见分法(MOS)、复杂度(以G.711为基准)和时延(帧大小)做了比较。


本系统选用GSM 06.10语音标准算法,该算法在1988年被确定为数字移动通信的语音编码标准,其编码速率为13kb/s,算法简单,运算量小,语音质量高,接近32kb/s的ADPCM(ITU-G.712)。

4 IP语音实时传输系统设计
本文采用Intel公司推出的PXA255处理器,该芯片专用于网络和多媒体。其最高工作频率可达400MHz,并带内存管理单元MMU和DSP协处理器,可方便与高清晰的彩色LCD接口,同时该芯片可扩展连接AC97音频芯片CS4201、高性能网络接口芯片LANC9196,可方便移植嵌入式Linux和图形界面等。 基于PXA255处理器的IP语音系统用方案具有如下优势:将先进的硬件技术和软件技术有机融合,充分利用PXA255和Linux的强大功能,克服了传统的基于单片机功能不足和基于PC的非实时性的缺点,具有实时性、低成本、小型化、专用化和高可靠性的优点,能让IP数字语音终端系统具有更好的可扩展性和可移植性,与ARM7或DSP的方案相比,在技术上同样具有一定优越性。
系统设计硬件框图见图4所示。


系统设计语音流程框图见图5。



5 系统测试
将两个语音终端连接到局域网,分别设置其IP地址为192.168.0.100、192.168.0.101。整个软件的运行过程:在语音传输之前,首先由网络连接(通话双方的呼叫连接)模块进行呼叫连接,呼叫连接建立后,双方就可以进行接下来的语音通话,实现语音传输。
在送话方即发起会话的一方:语音首先通过麦克风进入系统,在语音录入与播放功能模块内进行录音,然后进入语音数据压缩、解压模块进行压缩,压缩后的语音数据打包后,以语音数据包的方式发送。
在受话方即接收会话的一方:通过网络传输过来的语音数据拆包后,首先进入语音数据缓存模块进行缓存,这种缓存方式可以保证语音回放连续和不失真,然后进入语音数据压缩与解压模块对其进行解压。经过语音解压缩过程以后,语音数据送入语音录入与播放功能模块内,通过扬声器进行播放,最终还原成语音。
测试过程中,我们使用RTP工具集rtptools-1.18中的rtpplay、rtpdump、rtpsend等命令截取语音实时传输模块在网络中的语音包,观察其RTP和RTCP报文,分析网络的当前状况等。网络的当前状况与语音传输延迟有很强的正相关性。网络状况好,传输延迟小,网络状况不好,传输延迟增大。
语音延时测试方法:因为语音传输的延迟时间在1s以内,用秒表或其他外设来测量,误差大、精度不高,所以我们基于软件的方式测量。通过在RTP工具集中设置一个计时器,计算时间差,记录端到端的语音延时。最后求平均值,延时数据见表2。测试分8组,每组10到40个延迟数据不等,表中数据为每组的延迟平均值。


8组的所有测试数据有210个,所有测试数据的平均延时计算过程:
(283*10+258*10+269*20+266*20+257*30+275*30+268*40+286*50)/210=271.86ms。
由计算可知,平均延时约为272ms。满足本文第三节中VoIP语音时延的上限300ms的要求。

6 小结
论文研究了IP语音传输系统的总体架构,实现了一个基于PXA255处理器的嵌入式IP电话终端硬件平台,为该平台建立了一个优化的嵌入式Linux环境,并研究基于GSM 06.10的语音编解码实现,设计了一个IP语音实时传输系统,实现了IP语音的网络实时传输功能,通过系统测试,语音时延符合工程要求,具有较好的实时性。




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0