作者:David Katz, Tomasz Lukasiak, Rick Gentile, and Wayne Meyer
互聯網協議語音(VoIP)的時代已經到來,它將電話和數據通信結合在一起,提供通過低成本互聯網鏈路流式傳輸的分組語音和傳真數據。從電路交換到分組交換網絡的過渡,現在正以驚人的速度繼續,正在鼓勵遠遠超出簡單語音傳輸的應用,擁抱其他形式的數據,并允許它們都通過相同的基礎設施傳輸。
嵌入式系統設計人員面臨的VoIP挑戰是選擇一種經濟高效、易于部署且性能可擴展的處理解決方案。“最佳點”嵌入式解決方案方法是使用一個平臺進行設計,該平臺可以實現低通道數的基本VoIP解決方案,同時保留足夠的增值功能和服務容量,如視頻,音樂,成像和系統控制。下面的討論表明,ADI公司的Blackfin處理器系列提供了如此有吸引力的解決方案。
什么是網絡電話?
當今的語音網絡(如公用電話交換網 (PSTN))利用數字交換技術在呼叫者和接收者之間建立專用鏈路。雖然此連接僅提供有限的帶寬,但它確實提供了可接受的質量級別,而沒有復雜編碼算法的負擔。
VoIP替代方案使用互聯網協議(IP)通過互聯網或專用網絡發送數字化語音流量。IP 數據包由包含控制標頭和數據有效負載的數字序列組成。標頭提供數據包的網絡導航信息,有效負載包含壓縮的語音數據。
雖然電路交換電話處理整個消息,但基于VoIP的數據傳輸是基于分組的,因此數據塊被分組(分成傳輸單元),壓縮并通過網絡發送,并最終在指定的接收端重新組裝。關鍵是發射器和接收器之間不需要專用鏈路。
數據包化非常適合通過網絡傳輸數據(例如,JPEG 文件或電子郵件),因為傳遞屬于非時間關鍵型“盡力而為”類別。網絡通過同一介質有效地從多個來源移動數據。然而,對于語音應用,“盡力而為”是不夠的,因為數據包通過網絡時的可變長度延遲會降低接收端解碼音頻信號的質量。出于這個原因,VoIP協議通過QoS(服務質量)技術,專注于管理網絡帶寬,以防止延遲降低語音質量。
打包語音數據涉及將標頭和尾部信息添加到數據塊。必須減少數據包開銷(此過程引入的額外時間和數據),以最大程度地減少增加的延遲(通過系統的時間延遲)。因此,該過程必須在最小化傳輸延遲和最有效地使用網絡帶寬之間取得平衡 - 較小的大小允許更頻繁地發送數據包,而較大的數據包需要更長的時間來組成。另一方面,較大的數據包將標頭和尾部信息分攤到較大的語音數據塊中,因此它們比較小的數據包更有效地使用網絡帶寬。
就其性質而言,網絡導致數據傳輸速率變化很大。這種變化稱為抖動,通過緩沖數據包足夠長的時間來消除,以確保最慢的數據包及時到達,以便以正確的順序進行解碼。當然,較大的抖動緩沖區會導致更多的整體系統延遲。
如上所述,延遲表示通過 IP 系統的時間延遲。單向延遲是從說出單詞到呼叫另一端的人聽到它的時間。往返延遲只是兩個單向延遲的總和。延遲值越低,對話聽起來越自然。對于北美的 PSTN 電話系統,往返延遲小于 150 毫秒。
對于 VoIP 系統,長達 200 毫秒的單向延遲被認為是可以接受的。VoIP系統中延遲的最大因素是呼叫兩端的網絡和網關。語音編解碼器(編碼器-解碼器)會增加一些延遲,但相比之下,延遲通常很小(<20 毫秒)。
當語音網絡應用中的延遲很大時,主要挑戰是消除回聲并消除重疊。回聲消除直接影響感知質量;當往返延遲超過 50 毫秒時,這一點變得很重要。當單向延遲超過 200 毫秒時,語音重疊成為一個問題。
由于語音對話期間經過的大部分時間都是“死區時間”(在此期間沒有說話人說話),因此編解碼器通過在這些間隔內不傳輸任何數據來利用這種靜音。這種“靜音壓縮”技術檢測語音活動,并在沒有語音活動時停止傳輸數據,而是產生“舒適”噪聲,以確保在沒有人說話時線路不會顯得死機。
在標準 PSTN 電話系統中,由于各種原因,可能會發生降低感知質量的回聲。最常見的兩個原因是電路交換網絡中的阻抗不匹配(“線路回聲”)和電話中麥克風和揚聲器之間的聲學耦合(“聲學回聲”)。當網絡中存在兩線到四線轉換時(例如,將模擬信號轉換為T1系統),線路回波很常見。
由于VoIP系統可以鏈接到PSTN,因此它們必須能夠處理線路回聲,而IP電話也可能成為聲學回聲的受害者。回聲消除器可以優化為在線回聲、聲學回聲或兩者兼而有之。取消的有效性直接取決于所用算法的質量。
回聲消除器的一個重要參數是它運行的數據包的長度。簡而言之,回聲消除器保留已傳輸信號的副本。在信號發送后的給定時間內,它試圖從返回的反射信號中關聯和減去傳輸的信號 - 當然,該信號的幅度會延遲和減小。為了實現有效的取消,通常使用標準相關窗口大小(例如,32 ms、64 ms 或 128 ms)就足夠了,但可能需要更大的大小。
新興和當前基于 VoIP 的應用
由于高速網絡作為一個整體(而不是專用通道)用作傳輸機制,因此VoIP系統的一個主要優點是每個通信會話的成本較低。此外,VoIP呼叫使網絡運營商能夠避免與電路交換電話網絡相關的大多數互連費用;完成VoIP電話呼叫所需的額外基礎設施很少,因為它使用家庭或企業個人計算機(PC)已經存在的現有網絡。降低成本的另一個原因是數據網絡運營商通常沒有使用所有可用帶寬,因此額外的VoIP服務目前會產生無關緊要的額外成本開銷負擔。
VoIP用戶傾向于認為他們的連接是“免費的”,因為他們可以在世界任何地方撥打電話,只要他們愿意,每分鐘只需幾美分。雖然他們也每月向互聯網服務提供商支付費用,但可以通過數據和語音服務攤銷。
除了相對于電路交換域的低成本之外,IP服務的許多新功能也變得可用。例如,PSTN 上的傳入電話呼叫可以自動重新路由到用戶的 VoIP 電話,只要它連接到網絡節點即可。與支持全球的手機相比,這種安排具有明顯的優勢,因為不涉及漫游費用——從VoIP的角度來看,最終用戶的位置無關緊要;它只是被視為另一個網絡連接點。這在無線局域網 (LAN) 可用的情況下特別有用;支持 IEEE-Standard-802.11 的 VoIP 聽筒允許在全球 Wi-Fi 熱點進行對話,而無需擔心不匹配的通信基礎設施和傳輸標準。
到目前為止,與IP語音相關的所有討論也擴展到其他形式的基于數據的通信。畢竟,一旦數據被數字化和打包,內容的性質就無關緊要了,只要它以足夠的帶寬進行適當的編碼和解碼。正因為如此,VoIP基礎設施促進了一組全新的網絡實時應用程序,例如:
視頻會議
遠程視頻監控
模擬電話適配器
組 播
即時通訊
賭博
電子白板
仔細觀察VoIP系統
圖 1 顯示了 VoIP 系統的關鍵組件:信令過程、編碼器/解碼器、傳輸機制和交換網關。
圖1.(a) 簡化可能的IP電話網絡連接的表示。(b) 端點之間的信令和傳輸流。
信令過程涉及創建、維護和終止節點之間的連接。
為了降低網絡帶寬要求,音頻和視頻在傳輸前進行編碼,在接收時進行解碼。此壓縮和轉換過程受音頻和視頻流的各種編解碼器標準的控制。
壓縮的數據包在由一個或多個傳輸協議控制的網絡中移動。交換網關確保數據包集在目標上可與另一個基于 IP 的系統或 PSTN 系統互操作。在最終目的地,數據包集被解碼并轉換回音頻/視頻信號,此時它通過接收器的揚聲器和/或顯示單元播放。
OSI(開放系統互連)七層模型(圖 2)指定了一個網絡框架。如果通信會話有兩方,則每一方生成的數據從頂部開始,通過各層進行任何所需的配置和處理,最后傳遞到物理層以進行跨介質傳輸。在目的地,處理以相反的方向進行,直到數據包最終重新組裝并將數據提供給第二個用戶。
會話控制:H.323 與 SIP
VoIP 系統中的第一個要求是會話控制協議,用于建立狀態和定位用戶,以及設置、修改和終止會話。目前有兩種廣泛使用的協議。從歷史上看,這些協議中的第一個是H.323*,但SIP(會話初始協議)正迅速成為主要標準。讓我們來看看每個角色所扮演的角色。
國際電信聯盟(ITU)H.323
H.323是國際電聯最初為實時多媒體(語音和視頻)會議和補充數據傳輸而開發的標準。它已迅速發展以滿足VoIP網絡的要求。從技術上講,它是許多必需和可選的網絡和媒體編解碼器標準的容器。H.323 的連接信令部分由 H.225 協議處理,而特征協商由 H.245 支持。
SIP(會話初始協議)
SIP 由 IETF(互聯網工程任務組)根據 RFC 3261 定義。它是專門為 IP 電話和其他互聯網服務開發的,盡管它在許多方面與 H.323 重疊,但它通常被認為是一種更簡化的解決方案。
SIP與SDP(會話描述協議)一起使用,用于用戶發現;它提供功能協商和呼叫管理。SDP 本質上是一種描述會話公告和邀請期間流媒體初始化參數的格式。SIP/SDP 對有點類似于 H.225 標準中設置的 H.245/H.323 協議。
SIP 可用于只有兩個端點且沒有服務器基礎結構的系統。但是,在公共網絡中,使用特殊的代理和注冊器服務器來建立連接。在這樣的設置中,每個客戶端都向服務器注冊自己,以便調用方可以從 Internet 上的任何地方找到它。
傳輸層協議
上述信令協議負責配置網絡中的多媒體會話。建立連接后,將利用一個或多個數據傳輸協議(如 UDP 或 TCP)建立網絡節點之間的媒體流。
UDP(用戶數據報協議)
UDP 是一種網絡協議,僅涵蓋廣播出的數據包。沒有確認另一端已收到數據包。由于無法保證交付,因此當網絡上存在峰值負載時,語音傳輸將無法很好地單獨使用 UDP。這就是為什么媒體傳輸協議(如 RTP)通常運行在 UDP 之上的原因。
TCP(傳輸控制協議)
TCP 使用客戶端/服務器通信模型。客戶端請求(并由網絡中的另一臺計算機(服務器)提供服務。每個客戶端請求都是單獨處理的,與之前的任何請求無關。這可確保“空閑”網絡路徑可供其他通道使用。
TCP創建較小的數據包,這些數據包可以通過Internet傳輸并由呼叫另一端的TCP層接收,以便數據包被“重新組裝”回原始消息。IP 層解釋每個數據包的地址字段,使其到達正確的目的地。
與UDP不同,TCP確實保證在接收端完全接收數據包。但是,它通過允許數據包重新傳輸來實現這一點,這會增加對實時數據沒有幫助的延遲。對于語音,由于重新傳輸而導致的延遲數據包與丟失的數據包一樣糟糕。由于這一特性,TCP通常不被認為是實時流媒體傳輸的合適傳輸。
圖 2 顯示了 TCP/IP 因特網模型及其相關協議如何與 OSI 模型的各個層進行比較和利用。
圖2.開放系統互連和 TCP/IP 模型。
媒體傳輸
如上所述,直接通過傳輸協議發送媒體數據對于實時通信不是很有效。因此,媒體傳輸層通常負責以有效的方式處理此數據。
RTP(實時傳輸協議)
RTP提供實時分組音視頻數據的投遞服務。這是通過 IP 網絡傳輸實時數據的標準方式。該協議駐留在 UDP 之上,以最大限度地減少數據包標頭開銷,但需要付出代價;不保證可靠性或數據包排序。與 TCP 相比,RTP 的可靠性較低,但它在數據包傳輸方面的延遲更少,因為它的數據包標頭開銷比 TCP 小得多(圖 3)。
圖3.RTP 幀的標頭結構和有效負載。
為了保持給定的 QoS 級別,RTP 對發送的每個數據包使用時間戳、序列號和傳遞確認。它還支持許多糾錯方案以提高健壯性,以及一些用于加密數據包的基本安全選項。
圖 4 比較了 UDP、RTP 和 TCP 的性能和可靠性。
圖4.性能與可靠性。
RTCP (RTP 控制協議)
RTCP 是一種補充協議,用于傳達控制信息,例如發送和丟失的數據包數、抖動、延遲和端點描述。它對于管理會話時基和分析 RTP 流的 QoS 最有用。它還可以為 RTP 數據包的有限重傳提供反向通道。
媒體編解碼器
VoIP堆棧的頂部是處理正在傳輸的實際媒體的協議。可能有相當多的音頻和視頻編解碼器可以饋送到媒體傳輸層。最常見的示例可以在本文最后一頁的側邊欄中找到。
許多因素有助于確定編解碼器的理想程度,包括它如何有效地利用可用系統帶寬、如何處理數據包丟失以及與之相關的成本,包括知識產權版稅。
黑鰭金槍魚VoIP抵押品
與利用兩個處理器內核提供VoIP功能的傳統VoIP嵌入式解決方案不同,Blackfin處理器在統一內核架構中提供融合解決方案,允許語音和視頻信號處理與RISC MCU處理同時進行,以處理網絡和用戶界面需求。這種在單個融合處理器上提供完整 VoIP 功能的獨特能力提供了統一的軟件開發環境、更快的系統調試和部署以及更低的整體系統成本。
例如,ADSP-BF537 Blackfin處理器系列為VoIP部署提供了必要的集成度和性能,并且功耗更低。它具有多個集成串行端口(用于無縫連接到音頻模數 (A/D) 和數模 (D/A) 轉換器)、外部內存控制器、用于 LCD 或視頻編碼器/解碼器連接的并行外設接口 (PPI) 以及 10/100BaseT 以太網 MAC。如有必要,可以通過外部存儲器接口容納第二個以太網 MAC。
完整的通信通道(包括語音和網絡堆棧)使用的處理帶寬不到 75 MIPS。ADSP-BF537性能高達600 MHz,在多媒體壓縮或解壓縮等功能變得必要的情況下,VoIP產品組合中有足夠的可用處理器“馬力”。相比之下,競爭的專用VoIP選擇通常性能有限,并且很少或根本沒有添加功能或差異化的能力。
對于VoIP應用,基于Blackfin的設計以高質量、低通道數的VoIP解決方案為目標,其處理余量以適應音樂、視頻和圖像傳輸等附加功能,以及整體系統控制。以下是可用的VoIP產品示例,從開源解決方案到大批量OEM參考設計:
黑鰭金槍魚/林音
Blackfin VoIP系統可以使用基于μClinux的開源軟件進行設計,μClinux是流行的GNU/Linux操作系統的嵌入式版本。一個這樣的通用公共許可證(GPL許可)IP電話包,稱為Linphone,基于SIP套件,已被移植到Blackfin處理器的μClinux,允許Blackfin參考設計與任何SIP兼容端點進行通信。在具有適當 SIP 服務器和網關基礎結構的公共網絡中,此系統甚至可用于連接到 PSTN 節點上的電話。對于語音編碼和解碼,Linphone目前的Blackfin實現支持:G.711(A-law和m-law),GSM(全球移動通信系統)和Speex音頻壓縮格式。
Blackfin Linphone參考設計中使用的主要組件包括:
Linux TCP/IP 網絡堆棧:包括必要的傳輸和控制協議,如 TCP 和 UDP。
Linphone:主要的VoIP應用程序,包括基于Blackfin的G.711和GSM編解碼器實現。它包括用于臺式 PC 的圖形用戶界面 (GUI) 和用于非圖形嵌入式系統的簡單命令行應用程序。
oRTP:為Linphone開發并在LGPL許可證下發布的RTP堆棧的實現。
oSIP:根據 LGPL 許可證發布的 SIP 協議的線程安全實現。
Speex:Speex編解碼器的開源參考實現。對定點 Speex 實現的特定于 Blackfin 的優化已反饋到主線代碼分支。
Unicoi Systems 基于 Blackfin 的融合語音網關
Fusion 語音網關(圖 5)是 Unicoi Systems 的完整語音網關/終端適配器參考設計。憑借在單核Blackfin處理器上運行的路由器功能和功能齊全的SIP電話,Fusion語音網關允許終端適配器快速上市。
圖5.Unicoi Systems的基于Blackfin的Fusion Voice Gateway。
Fusion語音網關具有強大的功能,包括G.168回聲消除和多個G.7xx語音編解碼器。Fusion 參考設計還結合了互聯網路由器、4 端口以太網交換機和 VoIP 網關功能,包括功能齊全的電話和路由器功能。
Unicoi Systems 基于 Blackfin 的融合 IP 電話
Unicoi Systems的Fusion IP電話是一個完整的軟件/芯片解決方案,提供了一個功能齊全的平臺,支持當前和新興的IP電話標準,并具有產品差異化的擴展能力。
Fusion IP 電話參考設計可降低 BOM 成本,并降低通常與開發 IP 電話相關的時間和復雜性。該參考設計軟件圍繞ADSP-BF536設計,提供構建基本或高級IP電話所需的關鍵處理(例如實時操作系統、呼叫管理器、語音算法、全雙工免提電話的回聲消除)、通信協議(TCP/IPv4/v6、SIP、RTP等)和外設功能(LCD和鍵盤控制器等)。
黑鰭金槍魚網絡語音參考設計
ADI公司黑鰭金槍魚布拉沃唰唰??網絡電話和可視電話參考設計是完整的系統解決方案,適用于構建功能豐富、高性能、低成本 VoIP 桌面電話、可視電話和電話適配器的 OEM。這些設計包括用于VoIP應用的全套軟件,全部由一套全面的應用程序接口(API)控制,用于定制和控制核心系統功能。
對于音頻,這些設計支持多種 G.7xx 音頻編解碼器、符合 G.168 標準的網絡回聲消除和聲學回聲消除,以提高音頻清晰度。或者,設計中可以包含RF收發器,以提供無線音頻功能。這些設計支持符合 H.323 和 SIP 標準的軟件堆棧。
在視頻方面,BRAVO 寬帶音頻/視頻通信參考設計(圖 6)提供高達 30 幀/秒的通用中間格式 (CIF) 彩色視頻,包括支持 ITU 標準的 H.263 和 H.264 視頻編解碼器、畫中畫、帶疊加的高分辨率圖形、Alpha 和色度鍵控以及防閃爍濾波。
圖6.Blackfin BRAVO 寬帶音頻/視頻通信參考設計,功能圖。
結論
顯然,VoIP技術有可能徹底改變人們的溝通方式 - 無論他們是在家里還是在工作中,插入或不受束縛,支持視頻還是只是普通的音頻思維。Blackfin處理器的強大功能和多功能性,與各種標準配合使用,將使VoIP在嵌入式環境中越來越普遍,在許多尚未體驗到這項令人興奮的技術優勢的市場創造增值功能。
*確切地說,會話控制和啟動的任務位于 H.225.0 和 H.245 域中,它們是 H.323 傘形協議的一部分。
媒體編解碼器標準
音頻編解碼器
G.711
G.1988 于 711 年推出,是在 64 kbps 信道上編碼電話音頻的國際標準,是此處介紹的選項中最簡單的標準。G.711 中唯一使用的壓縮是壓縮(使用 m 定律或 A 定律標準),它將每個數據樣本壓縮為 8 位字,產生 64 kbps 的輸出比特率。H.323標準規定G.711必須作為語音通信的基線。
G.723.1
G.723.1 是一種基于代數代碼激勵線性預測 (ACELP) 的雙比特率編解碼器,于 1996 年發布,面向 VoIP 應用。G.723.1 的編碼時間范圍為 30 毫秒。每個幀可以編碼為 20 字節或 24 字節,從而分別轉換為 5.3 kbps 或 6.3 kbps 流。通過語音活動檢測和舒適噪聲生成,可以有效降低比特率。該編解碼器對網絡缺陷(如丟失幀和位錯誤)具有良好的免疫力。G.723.1適用于視頻會議應用,如多媒體通信國際標準H.324系列所述。
G.729
1996 年發布的另一種語音編解碼器是低延遲 G.729 音頻數據壓縮算法,該算法將語音劃分為 10 毫秒的幀。它使用一種稱為共軛結構ACELP(CS-ACELP)的算法。G.729 將通過 16 ms 幀以 8 kHz 采樣的 10 位信號壓縮為 8 kbps 的標準比特率,但它也支持 6.4 kbps 和 11.8 kbps 速率。此外,它還支持語音活動檢測和舒適噪音生成。
全球通用系統
GSM語音編解碼器在世界各地的手機系統中都有使用。這些標準的管理機構是歐洲電信標準協會(ETSI)。自第一個GSM全速率(GSM-FR)以來,該領域的標準已經發展。該標準使用稱為常規脈沖激勵線性預測編碼器(RPELPC)的CELP變體。輸入語音信號分為 20 毫秒幀。每幀編碼為 260 位,從而產生 13 kbps 的總比特率。免費的GSM-FR實現在某些限制下可用。
斯皮克斯
Speex是一種專為語音編解碼器設計的開源/自由軟件音頻壓縮格式,由 Xiph.org 發布,目標是成為完全無專利的語音解決方案。與許多其他語音編解碼器一樣,Speex基于帶有殘留編碼的CELP。它可以將 8 kHz、16 kHz 和 32 kHz 線性 PCM 信號編碼為 2 kbps 至 44 kbps 的比特率。Speex 可靈活應對網絡錯誤,并支持語音活動檢測。除了允許可變比特率外,Speex還具有立體聲編碼的獨特功能。源代碼可從 Speex.org 獲得,其中包括窄帶壓縮的匯編級優化,以及基于Blackfin的回聲消除器。
視頻編解碼器
H.261
該標準于1990年開發,是第一個廣泛使用的視頻編解碼器。它引入了將幀分割成16×16個“宏塊”的想法,這些宏塊在幀之間跟蹤以建立運動補償向量。它主要針對ISDN線路上的視頻會議應用(p × 64 kbps,其中p范圍為1至30)。輸入幀通常為 CIF(352 × 288),每秒 30 幀 (fps),輸出壓縮幀占用 64 kbps 至 128 kbps,分辨率為 10 fps。雖然今天仍在使用,但它在很大程度上已被H.263取代。盡管如此,H.323 指定 H.261 必須作為視頻通信的基線存在。
H.263
此編解碼器在視頻會議中無處不在,在所有比特率下都優于 H.261。輸入源通常是四分之一通用中間格式 (QCIF) (176 × 144) 或 30 fps 的 CIF,輸出比特率在 28 fps 時可以小于 8.10 kbps,性能與 H.261 相同。因此,H.261需要ISDN(綜合業務數字網絡)線路,而H.263可以使用普通電話線。H.263 用于視頻電話和網絡監控等終端市場,并且在基于 IP 的應用中很受歡迎。
審核編輯:郭婷
-
處理器
+關注
關注
68文章
19178瀏覽量
229201 -
嵌入式
+關注
關注
5072文章
19026瀏覽量
303523 -
計算機
+關注
關注
19文章
7430瀏覽量
87733
發布評論請先 登錄
相關推薦
評論