三网融合情况下,实时语音通信技术解决之道
隨著技術和標準的不斷成熟,伴隨著“三網(wǎng)合一”的大潮,VoIP可望成為下一代電信基礎設施結構的楊心,使未來各電信業(yè)務綜合統(tǒng)一在IP網(wǎng)絡上成為可能,導致數(shù)據(jù)的融合和未來電信市場的重組,并帶來新的經(jīng)濟模式和價值鏈。
Internet在全世界范圍內的快速發(fā)展和語音信號處理技術的進步,促進了voP(IP網(wǎng)絡下的語音技術)業(yè)務的興起。由于VoIP務以傳統(tǒng)的Iternet為基本平臺,具有不可比擬的價格優(yōu)勢,因此發(fā)展前景十分廣闊。
我門通過設計的兩臺計算機間的語音通信軟件,實現(xiàn)了全雙上語音通信信。PC-PC的語音傳輸,需要麥克風、音響。聲卡等設備就可以通過IP網(wǎng)實現(xiàn)這種應 用。這種VoIP方案的顯著優(yōu)點就是可以支持多媒體通信,主要適用于計算機用戶。其原理是利用電話軟件把送入話筒的聲音進行編碼壓縮、分組,變成IP數(shù)據(jù) 報,經(jīng)Intemet網(wǎng)絡傳送;接收端利用軟件進行解碼,還原成原來的信號后送到揚聲器中。由于軟件所需要的設備較為簡單,尤其是隨著計算機的日益普及、 各種硬件設備不斷發(fā)展;局域網(wǎng)不斷增加;通信信道容量不斷增加;計算機CPU處理能力不斷增強;具有人工智能的可即插即用軟件代碼技術的出現(xiàn)等等,這些郡 為VoIP的發(fā)展提供了強有力的技術支持。
在以上處理過程中,要用到一系列的網(wǎng)絡接口以及緩沖區(qū)來處理數(shù)據(jù),但是當前還沒有一種固定的和通用的策略能夠完全解決VolP應用中的QoS問題。本文就存在的問題進行了分析,并給出了一組解決問題的策略。
2.問題的提出
(1)時延、抖動和丟包三者之間的關系
從網(wǎng)絡的角度來看,時廷、抖動和丟包三省同時制約于網(wǎng)絡的運行狀況,當網(wǎng)絡的服務質量下降時,三者均迅速惡化,從終端處理的角度來看,時延。抖動和丟包 三者之間又相互影響,比如:在終端處理中,為/減小抖動帶來的影響,就要采用抗抖動緩沖區(qū),這就引入了額外的時延;為了減小遲到的語音包數(shù)量,可以延遲語 音的回放,但也會引入額外的時延;為了采用丟包恢復技術,往往需要利用后續(xù)幀信息,這樣也就引入了一定的時延;如果抖動效應加強,勢必會引起遲到的語音包 數(shù)量增多。為了解決好話音質量出問題,就必須在這三者當中效蝦權衡。
(2)緩沖區(qū)機制對語音實時傳輸性能的影響
緩沖區(qū)機制對語音實時傳輸性能的影響也就是對語音從采樣到回放這一時間延遲的影響,特別是當為了滿足內存分配的需求而移動全局內存塊和拋棄可拋棄的內存 塊時,消耗的系統(tǒng)時間將對一些實時性操作產(chǎn)生嚴重影響,在語音實時通信中,用擴大內存的有效的頁面技術和磁盤交換技術將不再適用,因為這些語音數(shù)據(jù)塊不能 放在真正的主存中以滿足實時性要求,需要通過設計數(shù)據(jù)結構和信息列表實現(xiàn)優(yōu)化的緩沖機制。
同時緩沖機制對語音的連續(xù)性也有很大影響,如果定制的錄音緩沖區(qū)過小,就會使錄制的語音幀過小,從而使語音蠻得不連貫。對內存資源的過度占用將導致系統(tǒng)資源的不足。因此需要一種既高效利用內存,又盡量減少語音傳輸時延的緩沖區(qū)管理機制。
(3)網(wǎng)絡分組信息的丟失
分組丟失對語音質量有非常大的不良影響。當語音經(jīng)過—個使用分組丟失作為手段來管理數(shù)據(jù)網(wǎng)絡阻塞的略由器的,這是很麻煩的。對于TCP的數(shù)據(jù),端站簡單 地重新發(fā)送丟失的數(shù)據(jù)并降低它們的通信速率,緩解阻塞,保證數(shù)據(jù)正確性,而對于UDP協(xié)議的語音,沒有時間進行重新發(fā)送,所以VolP系統(tǒng)只能適應這種丟 失。除了由于中間網(wǎng)絡部件引起的分組丟失外,語音網(wǎng)絡中由于超出抖動緩沖區(qū)的可忍耐的到達延時也引起分組丟失。
在分組被丟失的情況下, 如果語音分組丟失是隨機的、不相關的,當前的語音編碼器的聲碼器在分組丟失率小于10%的情況下,簡單的辦法是在丟失包的間隔處插入最后接收到的包,仍能 恢復出質量可接受的語音信號。當然,也可以設計出優(yōu)化的緩沖區(qū),從而前向糾錯以減少對語音質量的影響。
3.網(wǎng)絡協(xié)議的選擇策略
實時語音的特點:實時性要求高,且允許語音數(shù)據(jù)在一定的范圍內出錯;IP語音的特點:由于IPV4不能夠提供服務質量保證,所以丟包率和抖動是不可預知 的,并且把它們帶到了上層協(xié)議——IP/UDP中。TCP的特點:能提供面向連接的流傳輸,可靠性很高,但是會占用網(wǎng)絡較多的資源;UDP的特點:能提供 無連接的數(shù)據(jù)包傳輸,不可靠,對網(wǎng)絡的資源占用較少。
由于TCP在傳輸數(shù)據(jù)前建立的是虛鏈路,它不能保證各個語音包在相等的時間內到達,即無法避免話音抖動現(xiàn)象。而且當網(wǎng)絡狀況不佳時,也無法避免丟失語音包,即使重傳也有可能無法滿足語音的實坷性。更有甚者,它的窗口技術也會造成較大的附加抖動。
至于UDP,則有可能出現(xiàn)語音包的丟失、重復和失序(好在語音通信允許出錯),話音抖動現(xiàn)象也無法避(比TCP好),效率較TCP要高。但需要在應用層 增添排序、抗抖、抗重復和抗丟包等功能。所以,對于網(wǎng)絡時延較大的場合,一般選用UDP來傳輸語音包;而在網(wǎng)絡負載較小的場合,TCP更為方便。如圖分別 為TCPAJDP編程時序圖。
隨著IPv6的成熟應用,不僅用于解決In-ternet網(wǎng)絡地址的危機,而且在解決Internet網(wǎng) 絡性能方面也有很大的突破;在4ESV中提供了對QoS的支持,在IPv6中定義了兩個參數(shù);業(yè)務類別域和數(shù)據(jù)流標志位。業(yè)務類別域將IP包的優(yōu)先級分為 16級,優(yōu)先級分為兩類:0-7用于在網(wǎng)絡發(fā)生擁塞時通過減少數(shù)據(jù)包的發(fā)送速度來實現(xiàn)擁塞控制的業(yè)務;8-15用于一些實時性很強的業(yè)務,它在網(wǎng)絡擁塞時 不作任何減少流量的控制。對于那些需要特殊QoS的業(yè)務,可在IP數(shù)據(jù)包中設置相應的優(yōu)先級,路由器根據(jù)IP包的優(yōu)先級來處理數(shù)據(jù)。因此,voIP將得到 更好的應用。
4.緩沖區(qū)的設計策略
(1)發(fā)送端緩沖區(qū)的設計
在語音發(fā)送端,語音采集時必須要申請緩沖區(qū),而且這種緩沖區(qū)既用作語音信號的輸入,又用作語音幀的輸出。如果采用單一緩沖區(qū)機制,將有可能出現(xiàn)數(shù)據(jù)覆蓋 問題。數(shù)據(jù)發(fā)送操作中也存在此問題,實際應用必須通過實驗確定緩沖區(qū)的數(shù)目,既保證語音數(shù)據(jù)庫不丟失,又不會多用內存。
決定發(fā)送緩沖區(qū)的數(shù)目的因素有兩個,一個是編碼緩沖區(qū)的數(shù)目;另一個是一個數(shù)據(jù)分組的發(fā)送的最長時間與一個數(shù)據(jù)分組的最短打包時間的比值,由于實際應用中,實時語音的傳送一般采用非連接的網(wǎng)絡傳輸協(xié)議,所以發(fā)送緩沖區(qū)的數(shù)目可以小于或者等于編碼緩沖區(qū)的數(shù)目。
決定編碼緩沖區(qū)的數(shù)目的因素有兩個,一個是錄音緩沖區(qū)的數(shù)據(jù)目;另一個是一個數(shù)據(jù)分組的最長打包時間與一個數(shù)據(jù)分組的最短編碼時間的比值,如果這個比值 小于1,則對編碼緩沖區(qū)的數(shù)目沒有特殊要求,如果大于1,則要求有盡可能大的編碼緩沖區(qū)數(shù)目,但一般不要超過錄音緩沖區(qū)的數(shù)目,這是由語音數(shù)據(jù)的實時性和 連續(xù)性所決定的。
(2)接收端緩沖區(qū)數(shù)目
在語音接收端必須有一組接收緩沖區(qū),理由有三:
①IP網(wǎng)絡阻塞狀況不穩(wěn)定,數(shù)據(jù)到達有時十分集中,而接收數(shù)據(jù)又會花費一定的時間,太少的緩沖區(qū)會造成數(shù)據(jù)的丟失;
②由于IP網(wǎng)絡只提供一種盡力型服務,不可避免地造成分組丟失和亂序,如果不加以處理,必然會影響實時語音的效果。而處理這些情況都需要存儲空間,表現(xiàn)為一定數(shù)目的緩沖區(qū);
③必須對接收到的數(shù)據(jù)進行后續(xù)的處理,而這些處理要產(chǎn)生一定的時延,如果只有一個接收緩沖區(qū),有可能接收到的數(shù)據(jù)來不及得到處理就被覆蓋了。另外,與語音發(fā)送方相對應,在語音接收方需要解碼緩沖區(qū)和回放緩沖區(qū)。
由于網(wǎng)絡延遲抖動的存在和語音應用天然的等時性要求,必須對語音回放設定一個回放延遲,即按照一定的時間間隔回放語音幀,這就需要有一定數(shù)目的緩沖區(qū)來存放等待回放的語音幀。
(3)緩沖區(qū)的大小
錄音時,緩沖區(qū)大小的選擇也是一個關鍵性的問題。因為如果緩沖區(qū)過小,生成的語音幀也就會過小,語音的連續(xù)性遭到破壞,同時數(shù)據(jù)分組的有效數(shù)據(jù)率也會過 小,相對增加了網(wǎng)絡負擔。如果緩沖區(qū)過大,會在語音錄制時和其它處理時造成比較大的處理時延,還有可能造成發(fā)送的數(shù)據(jù)分組過大而導致某協(xié)議層的數(shù)據(jù)分割與 合并,形成很大的傳輸時延。所以錄音緩沖區(qū)要選擇合適的大小,必須在語音的連續(xù)性和時延之間進行平衡。
編碼緩沖區(qū)的大小取決于錄音緩沖區(qū)的大小和所采用的編碼算法。實際應用中有可能采用不同的編碼算法,以適應多變的網(wǎng)絡傳輸狀況。緩沖區(qū)的大小要采用所需的最大值。
計算方法如下:針對一個語音包,包長度=RTP頭+UDP頭+IP頭+Ethemet頭+有效載荷。
其中RTP頭=96bit (12byte);UDP頭=64bit (8byte);IP頭=160bit(20byte);Ethernet頭=208bit(26byte)。所以,包長度= (96+64+160+208)十有效載荷=528bit+有效載荷。有效載荷=打包周期(秒)x每秒的比特數(shù)帶寬=包長度x每秒包數(shù)=(528/打包周 期)+每秒比特數(shù)因此,要根據(jù)不同的語音編解碼技術,設計不同的緩沖區(qū): G.711,每秒比特數(shù)是64k G.729,每秒比特數(shù)是8k G.723,兩種,一種是5.3k,另一種是6.3k G.711, 20ms打包,帶寬為(528/20+64)kbit/s G.711,30ms打包,帶寬為(528/30+64)kbit/s G.729,20ms打包,帶寬為(528/20+8)kbit/s G.723, 5.3k, 30ms打包,帶寬為(528/30+5.3)kbit/s
(4)緩沖區(qū)的申請和釋放
語音通信中對數(shù)據(jù)塊的使用是一次性的。在各個語音數(shù)據(jù)模塊中,一個數(shù)據(jù)塊只會在某個操作中作短暫緩存,處理之后,該數(shù)據(jù)塊對操作不再有任何意義。我們根 據(jù)實時語音數(shù)據(jù)的需要,充分利用內存硬件容量優(yōu)勢,編制靜態(tài)數(shù)據(jù)鏈表,循環(huán)使用緩沖區(qū),即在應用開始時申請所有緩沖區(qū),將這些緩沖區(qū)排成循環(huán)隊列,用完一 個緩沖區(qū)就將其排到隊尾等待調用,等到整個應用結束時,一次性釋放所有緩沖區(qū)。
5.結束語
隨著技術和標準的不斷成熟,伴隨著“三網(wǎng)合一”的大潮,VoIP可望成為下一代電信基礎設施結構的楊心,使未來各電信業(yè)務綜合統(tǒng)一在IP網(wǎng)絡上成為可能,導致數(shù)據(jù)的融合和未來電信市場的重組,并帶來新的經(jīng)濟模式和價值鏈。
總結
以上是生活随笔為你收集整理的三网融合情况下,实时语音通信技术解决之道的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c++中sscanf的用法
- 下一篇: wince ./configure