三網融合情況下,實時語音通信技術解決之道

隨著技術和標準的不斷成熟,伴隨著“三網合一”的大潮,VoIP可望成為下一代電信基礎設施結構的楊心,使未來各電信業務綜合統一在IP網絡上成為可能,導致數據的融合和未來電信市場的重組,并帶來新的經濟模式和價值鏈。


Internet在全世界范圍內的快速發展和語音信號處理技術的進步,促進了voP(IP網絡下的語音技術)業務的興起。由于VoIP務以傳統的Iternet為基本平臺,具有不可比擬的價格優勢,因此發展前景十分廣闊。

   我門通過設計的兩臺計算機間的語音通信軟件,實現了全雙上語音通信信。PC-PC的語音傳輸,需要麥克風、音響。聲卡等設備就可以通過IP網實現這種應 用。這種VoIP方案的顯著優點就是可以支持多媒體通信,主要適用于計算機用戶。其原理是利用電話軟件把送入話筒的聲音進行編碼壓縮、分組,變成IP數據 報,經Intemet網絡傳送;接收端利用軟件進行解碼,還原成原來的信號后送到揚聲器中。由于軟件所需要的設備較為簡單,尤其是隨著計算機的日益普及、 各種硬件設備不斷發展;局域網不斷增加;通信信道容量不斷增加;計算機CPU處理能力不斷增強;具有人工智能的可即插即用軟件代碼技術的出現等等,這些郡 為VoIP的發展提供了強有力的技術支持。

  在以上處理過程中,要用到一系列的網絡接口以及緩沖區來處理數據,但是當前還沒有一種固定的和通用的策略能夠完全解決VolP應用中的QoS問題。本文就存在的問題進行了分析,并給出了一組解決問題的策略。

  2.問題的提出

  (1)時延、抖動和丟包三者之間的關系

   從網絡的角度來看,時廷、抖動和丟包三省同時制約于網絡的運行狀況,當網絡的服務質量下降時,三者均迅速惡化,從終端處理的角度來看,時延。抖動和丟包 三者之間又相互影響,比如:在終端處理中,為/減小抖動帶來的影響,就要采用抗抖動緩沖區,這就引入了額外的時延;為了減小遲到的語音包數量,可以延遲語 音的回放,但也會引入額外的時延;為了采用丟包恢復技術,往往需要利用后續幀信息,這樣也就引入了一定的時延;如果抖動效應加強,勢必會引起遲到的語音包 數量增多。為了解決好話音質量出問題,就必須在這三者當中效蝦權衡。

  (2)緩沖區機制對語音實時傳輸性能的影響

   緩沖區機制對語音實時傳輸性能的影響也就是對語音從采樣到回放這一時間延遲的影響,特別是當為了滿足內存分配的需求而移動全局內存塊和拋棄可拋棄的內存 塊時,消耗的系統時間將對一些實時性操作產生嚴重影響,在語音實時通信中,用擴大內存的有效的頁面技術和磁盤交換技術將不再適用,因為這些語音數據塊不能 放在真正的主存中以滿足實時性要求,需要通過設計數據結構和信息列表實現優化的緩沖機制。

  同時緩沖機制對語音的連續性也有很大影響,如果定制的錄音緩沖區過小,就會使錄制的語音幀過小,從而使語音蠻得不連貫。對內存資源的過度占用將導致系統資源的不足。因此需要一種既高效利用內存,又盡量減少語音傳輸時延的緩沖區管理機制。

  (3)網絡分組信息的丟失

   分組丟失對語音質量有非常大的不良影響。當語音經過—個使用分組丟失作為手段來管理數據網絡阻塞的略由器的,這是很麻煩的。對于TCP的數據,端站簡單 地重新發送丟失的數據并降低它們的通信速率,緩解阻塞,保證數據正確性,而對于UDP協議的語音,沒有時間進行重新發送,所以VolP系統只能適應這種丟 失。除了由于中間網絡部件引起的分組丟失外,語音網絡中由于超出抖動緩沖區的可忍耐的到達延時也引起分組丟失。

  在分組被丟失的情況下, 如果語音分組丟失是隨機的、不相關的,當前的語音編碼器的聲碼器在分組丟失率小于10%的情況下,簡單的辦法是在丟失包的間隔處插入最后接收到的包,仍能 恢復出質量可接受的語音信號。當然,也可以設計出優化的緩沖區,從而前向糾錯以減少對語音質量的影響。

  3.網絡協議的選擇策略

   實時語音的特點:實時性要求高,且允許語音數據在一定的范圍內出錯;IP語音的特點:由于IPV4不能夠提供服務質量保證,所以丟包率和抖動是不可預知 的,并且把它們帶到了上層協議——IP/UDP中。TCP的特點:能提供面向連接的流傳輸,可靠性很高,但是會占用網絡較多的資源;UDP的特點:能提供 無連接的數據包傳輸,不可靠,對網絡的資源占用較少。

  由于TCP在傳輸數據前建立的是虛鏈路,它不能保證各個語音包在相等的時間內到達,即無法避免話音抖動現象。而且當網絡狀況不佳時,也無法避免丟失語音包,即使重傳也有可能無法滿足語音的實坷性。更有甚者,它的窗口技術也會造成較大的附加抖動。

   至于UDP,則有可能出現語音包的丟失、重復和失序(好在語音通信允許出錯),話音抖動現象也無法避(比TCP好),效率較TCP要高。但需要在應用層 增添排序、抗抖、抗重復和抗丟包等功能。所以,對于網絡時延較大的場合,一般選用UDP來傳輸語音包;而在網絡負載較小的場合,TCP更為方便。如圖分別 為TCPAJDP編程時序圖。

  隨著IPv6的成熟應用,不僅用于解決In-ternet網絡地址的危機,而且在解決Internet網 絡性能方面也有很大的突破;在4ESV中提供了對QoS的支持,在IPv6中定義了兩個參數;業務類別域和數據流標志位。業務類別域將IP包的優先級分為 16級,優先級分為兩類:0-7用于在網絡發生擁塞時通過減少數據包的發送速度來實現擁塞控制的業務;8-15用于一些實時性很強的業務,它在網絡擁塞時 不作任何減少流量的控制。對于那些需要特殊QoS的業務,可在IP數據包中設置相應的優先級,路由器根據IP包的優先級來處理數據。因此,voIP將得到 更好的應用。

  4.緩沖區的設計策略

  (1)發送端緩沖區的設計

   在語音發送端,語音采集時必須要申請緩沖區,而且這種緩沖區既用作語音信號的輸入,又用作語音幀的輸出。如果采用單一緩沖區機制,將有可能出現數據覆蓋 問題。數據發送操作中也存在此問題,實際應用必須通過實驗確定緩沖區的數目,既保證語音數據庫不丟失,又不會多用內存。

  決定發送緩沖區的數目的因素有兩個,一個是編碼緩沖區的數目;另一個是一個數據分組的發送的最長時間與一個數據分組的最短打包時間的比值,由于實際應用中,實時語音的傳送一般采用非連接的網絡傳輸協議,所以發送緩沖區的數目可以小于或者等于編碼緩沖區的數目。

   決定編碼緩沖區的數目的因素有兩個,一個是錄音緩沖區的數據目;另一個是一個數據分組的最長打包時間與一個數據分組的最短編碼時間的比值,如果這個比值 小于1,則對編碼緩沖區的數目沒有特殊要求,如果大于1,則要求有盡可能大的編碼緩沖區數目,但一般不要超過錄音緩沖區的數目,這是由語音數據的實時性和 連續性所決定的。

  (2)接收端緩沖區數目

  在語音接收端必須有一組接收緩沖區,理由有三:

  ①IP網絡阻塞狀況不穩定,數據到達有時十分集中,而接收數據又會花費一定的時間,太少的緩沖區會造成數據的丟失;

  ②由于IP網絡只提供一種盡力型服務,不可避免地造成分組丟失和亂序,如果不加以處理,必然會影響實時語音的效果。而處理這些情況都需要存儲空間,表現為一定數目的緩沖區;

  ③必須對接收到的數據進行后續的處理,而這些處理要產生一定的時延,如果只有一個接收緩沖區,有可能接收到的數據來不及得到處理就被覆蓋了。另外,與語音發送方相對應,在語音接收方需要解碼緩沖區和回放緩沖區。

  由于網絡延遲抖動的存在和語音應用天然的等時性要求,必須對語音回放設定一個回放延遲,即按照一定的時間間隔回放語音幀,這就需要有一定數目的緩沖區來存放等待回放的語音幀。

  (3)緩沖區的大小

   錄音時,緩沖區大小的選擇也是一個關鍵性的問題。因為如果緩沖區過小,生成的語音幀也就會過小,語音的連續性遭到破壞,同時數據分組的有效數據率也會過 小,相對增加了網絡負擔。如果緩沖區過大,會在語音錄制時和其它處理時造成比較大的處理時延,還有可能造成發送的數據分組過大而導致某協議層的數據分割與 合并,形成很大的傳輸時延。所以錄音緩沖區要選擇合適的大小,必須在語音的連續性和時延之間進行平衡。

  編碼緩沖區的大小取決于錄音緩沖區的大小和所采用的編碼算法。實際應用中有可能采用不同的編碼算法,以適應多變的網絡傳輸狀況。緩沖區的大小要采用所需的最大值。

  計算方法如下:針對一個語音包,包長度=RTP頭+UDP頭+IP頭+Ethemet頭+有效載荷。

   其中RTP頭=96bit (12byte);UDP頭=64bit (8byte);IP頭=160bit(20byte);Ethernet頭=208bit(26byte)。所以,包長度= (96+64+160+208)十有效載荷=528bit+有效載荷。有效載荷=打包周期(秒)x每秒的比特數帶寬=包長度x每秒包數=(528/打包周 期)+每秒比特數因此,要根據不同的語音編解碼技術,設計不同的緩沖區: G.711,每秒比特數是64k G.729,每秒比特數是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)緩沖區的申請和釋放

   語音通信中對數據塊的使用是一次性的。在各個語音數據模塊中,一個數據塊只會在某個操作中作短暫緩存,處理之后,該數據塊對操作不再有任何意義。我們根 據實時語音數據的需要,充分利用內存硬件容量優勢,編制靜態數據鏈表,循環使用緩沖區,即在應用開始時申請所有緩沖區,將這些緩沖區排成循環隊列,用完一 個緩沖區就將其排到隊尾等待調用,等到整個應用結束時,一次性釋放所有緩沖區。

  5.結束語

  隨著技術和標準的不斷成熟,伴隨著“三網合一”的大潮,VoIP可望成為下一代電信基礎設施結構的楊心,使未來各電信業務綜合統一在IP網絡上成為可能,導致數據的融合和未來電信市場的重組,并帶來新的經濟模式和價值鏈。



本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/452922.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/452922.shtml
英文地址,請注明出處:http://en.pswp.cn/news/452922.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

ipv6相對于ipv4的改進

v更大的地址空間:16字節,128位v首部的簡化:只有7個固定域,撤消了有關分段的域和校驗和域,以便更快地處理分組,提高路由器的吞吐量縮短延時。v更好地支持選項:選項是有次序的,以便路由…

輕量高效的開源JavaScript插件和庫 【轉】

圖片布局輪播圖彈出層音頻視頻編輯器字符串表單存儲動畫時間其它加載器構建工具測試包管理器CDN圖片 baguetteBox.js - 是一個簡單易用的響應式圖像燈箱效果腳本。demoLightgallery.js - 是一個功能齊全的JavaScript圖像燈箱插件。demoviewerjs - 是一個圖像預覽插件。democrop…

Linux內核中的常用宏container_of其實很簡單【轉】

轉自:http://blog.csdn.net/npy_lp/article/details/7010752 開發平臺:Ubuntu11.04 編 譯器:gcc version 4.5.2 (Ubuntu/Linaro4.5.2-8ubuntu4) Container_of在Linux內核中是一個常用的宏,用于從包含在某個結構中的指針獲得結構本…

mysql concat例子_MYSQL中CONCAT詳解

concat()函數1. 功能:返回結果為連接參數產生的字符串。如有任何一個參數為NULL ,則返回值為 NULL。2. 語法concat(str1, str2,...)3. 例子案例一:mysql> select concat(蘋果,香蕉,梨子);------------------------------| CONCAT(蘋果,香蕉…

常見的狀態響應碼

200:請求正常,服務器正常的返回數據 301:永久重定向。比如在訪問www.jingdong.com的時候,會重定向到www.jd.com。 302:臨時重定向。比如在訪問一個需要登錄的界面時,而此時沒有登錄,那么就會重定…

軟件行業為什么那么多項目經理

記得聽誰說過,軟件行業的項目經理太濫了,二十幾歲的毛頭小伙子,動不動就是項目經理,手下沒幾個人,管的也沒幾個事,在其他行業,項目經理一般都是四五十歲的老頭子做,要聯系這&#xf…

ipv6的表示方法

v冒分十六進制表示法X:X:X:X:X:X:X:X 其中X表示地址中16位二進制數的十六進制值 例:FEDC:BA98:7654:3210:FEDC:BA98:7654:3210 v零壓縮法如其中有多個連續的零,則可用零壓縮法 如 :1080:0000:0000:0000:0008:0800:200C:417A 可寫成&am…

mysql php7安裝配置_centos7無網絡下安裝部署php7.1.33+mysql5.7.28+apache2.4.6-Go語言中文社區...

centos7無網絡下安裝部署php7.1.33mysql5.7.28apache2.4.6一、1、先ping www.baidu.com,root賬戶下,如果未聯網,創建目錄,把提前下載好的rpm包拷貝到rpm目錄下如圖:(如果沒有安裝包請查看我的另一篇教程下載這些安裝包…

webkit渲染

2019獨角獸企業重金招聘Python工程師標準>>> 參考鏈接 理解WebKit和Chromium 簡明魔法學院 Chrome軟件渲染 WebKit渲染基礎 Webkit 渲染基礎 Webkit不是瀏覽器,它是一個渲染引擎 軟件渲染 硬件渲染(GPU加速) 會觸發GPU加速的屬性 CSS3 3D transformation, trans…

element ui中dialog相關問題

一&#xff0c;今天需要在dialog里面引入另一個頁面&#xff0c;就是打開dialog顯示該頁面&#xff08;把頁面放到dialog中&#xff09;&#xff0c;引入的語句如下&#xff1a; <iframe src"view?pathrkdj_b" ></iframe> 二&#xff0c;使用table組件時…

數據結構與算法--4.使用堆棧模擬隊列

問題&#xff1a; 隊列的插入和刪除遵循先入先出的原則&#xff0c;而堆棧遵循后進先出的原則。用兩個堆棧模擬隊列&#xff0c;要求實現時不能分配超過O&#xff08;1&#xff09;的內存&#xff0c;時間復雜度必須是o&#xff08;m&#xff09;。 思路&#xff1a; 用兩個…

IT行業的你,在成本部門還是利潤部門

題外話&#xff1a;本文應該引起項目管理者和開發人員的思考&#xff1a;如何進行薪酬管理&#xff1f;如何規劃職業生涯&#xff1f; 生在IT行業&#xff0c;發現周圍很多朋友對薪酬問題有疑問&#xff0c;因為這種不解&#xff0c;導致經常帶情緒&#xff0c;對工作、生活很…

ipv4到ipv6的過渡

v雙協議站&#xff1a;過渡時期&#xff0c;站點必須同時支持IPv4和IPv6v隧道技術&#xff1a;IPv6主機之間通信必須使用IPv4的隧道v首部轉換&#xff1a;用于發送方使用IPv6&#xff0c;而接收方使用IPv4

關于爬蟲中常見的兩個網頁解析工具的分析 —— lxml / xpath 與 bs4 / BeautifulSoup...

http://www.cnblogs.com/binye-typing/p/6656595.html 讀者可能會奇怪我標題怎么理成這個鬼樣子&#xff0c;主要是單單寫 lxml 與 bs4 這兩個 py 模塊名可能并不能一下引起大眾的注意&#xff0c;一般講到網頁解析技術&#xff0c;提到的關鍵詞更多的是 BeautifulSoup 和 xpat…

java如何去掉html標簽_Java后端去掉HTML標簽獲取純文本-Fun言

今天又對我的博客首頁進行了一次版本的更新&#xff0c;使其自適應屏幕&#xff0c;獲得更好的用戶體驗&#xff0c;然后就出現點小問題&#xff0c;那就是原來的摘要是人為添加的&#xff0c;有長有短&#xff0c;對自適應屏幕有影響&#xff0c;所以我們現在是截取文章的前20…

單/雙中括號與測試條件

測試命令 tesst[]內置命令[[]]bash中的關鍵字 單中括號 格式[#express1#op#express2#] 注意&#xff1a;   其中#代表括號不能省略   不能匹配模式   變量引用應用雙引號括起&#xff0c;尤其當變量引用有空格時   與或非形式-a –o -not   常量應用單/雙引號括起  …

暗時間--平凡與優秀間的距離

每個人都希望&#xff0c;在他所從事的領域很優秀&#xff0c;那么如何才能優秀呢&#xff1f;有人做過一個研究&#xff0c;說那些優秀的音樂家&#xff0c;在他們成名之前&#xff0c;已經訓練過10000小時。有人可能成功得早&#xff0c;如莫扎特16歲&#xff0c;有些可能需要…

IP分組

IP分組就是根據Ip地址來進行分組&#xff0c;目的可以是為了對不同 的地址組分配不同的帶寬&#xff08;限速&#xff09;配置地址組時&#xff0c;其輸入格式為A.B.C.D-A.B.C.E&#xff0c;例如&#xff1a;192.168.1.1-192.168.1.250

python3基礎3--數據類型--數據運算--表達式if -else-while-for

一、python3 數據類型 1.1 數字例如&#xff1a;1,2,3,4等1.2 int&#xff08;整型&#xff09; 在32位機器上&#xff0c;整數的位數為32位&#xff0c;取值范圍為-2**31&#xff5e;2**31-1&#xff0c;即-2147483648&#xff5e;2147483647在64位系統上&#xff0c;整數的位…

spark java教程_(Spark)學習進度十四(Spark之Java獨立應用編程)

環境如下:(更新了林子雨教程中不可使用的部分) Hadoop 2.6.0以上 java JDK 1.7以上 Spark 3.0.0-preview2 二、java獨立應用編程(在下載依賴jar包的過程中如遇到卡頓現象可以Ctrl+C停止下載,然后重新執行本條命令即可繼續下載相應的依賴jar包) 1、安裝maven ubuntu中沒有自帶…