摘要:文章研究IP語音傳輸系統的總體架構,實現了一個基于PXA255處理器的嵌入式IP電話終端硬件平臺,為該平臺建立了一個優化的嵌入式Linux環境,并研究基于GSM 06.10語音編解碼實現,設計了一個IP語音實時傳輸系統,實現了IP語音的網絡實時傳輸功能。
0 引言
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語音的網絡實時傳輸功能,通過系統測試,語音時延符合工程要求,具有較好的實時性。