簡介
本檔案介紹使用IP語音(VoIP)時語音編解碼器頻寬的計算以及修改或節省頻寬的功能。
背景資訊
構建資料包語音網路時,需要考慮的最重要因素之一是進行適當的容量規劃。在容量規劃中,頻寬計算是設計和排除資料包語音網路故障時需要考慮的一個重要因素,以便獲得良好的語音品質。
注意:作為本文檔的補充,您可以使用TAC Voice Bandwidth Codec Calculator(僅限註冊客戶)工具。此工具提供有關如何計算資料包語音呼叫所需的頻寬的資訊。
VoIP — 每呼叫頻寬
在計算中使用以下協定報頭假設:
-
40位元組用於IP(20位元組)/使用者資料包通訊協定(UDP)(8位元組)/即時傳輸通訊協定(RTP)(12位元組)標頭。
-
壓縮即時通訊協定 (cRTP) 會將 IP/UDP/RTP 標頭減少為 2 或 4 個位元組(無法透過乙太網路使用 cRTP)。
-
多重連結點對點通訊協定(MP)或訊框中繼論壇(FRF)的6位元組。12第2層(L2)標頭。
-
1個位元組,用於MP幀和幀中繼幀上的幀尾標誌。
-
18位元組的乙太網路L2標頭,包括4位元組的訊框檢查序列(FCS)或循環備援檢查(CRC)。
註:此表僅包含Cisco Call Manager或Cisco IOS® Software H.323網關中預設語音負載大小的計算。如需進行其他計算(包括不同的語音負載大小和其他通訊協定,例如透過訊框中繼傳輸的語音(VoFR)和ATM傳輸的語音(VoATM)),請使用TAC語音訊寬編解碼器計算器(僅限註冊客戶)工具。
編解碼器資訊 |
頻寬計算 |
編解碼器和位元率(Kbps) |
編解碼器樣本大小(位元組) |
編解碼器取樣間隔(毫秒) |
平均意見得分(MOS) |
語音負載大小(位元組) |
語音負載大小(毫秒) |
每秒資料包數(PPS) |
頻寬MP或FRF.12(Kbps) |
帶cRTP MP或FRF.12(Kbps)的頻寬 |
頻寬乙太網路(Kbps) |
G.711(64 Kbps) |
80 位元組 |
10毫秒 |
4.1 |
160 位元組 |
20毫秒 |
50 |
82.8 Kbps |
67.6 Kbps |
87.2 Kbps |
G.729(8 Kbps) |
10 位元組 |
10毫秒 |
3.92 |
20 位元組 |
20毫秒 |
50 |
26.8 Kbps |
11.6 Kbps |
31.2 Kbps |
G.723.1(6.3 Kbps) |
24 位元組 |
30毫秒 |
3.9 |
24 位元組 |
30毫秒 |
33.3 |
18.9 Kbps |
8.8 Kbps |
21.9 Kbps |
G.723.1(5.3 Kbps) |
20 位元組 |
30毫秒 |
3.8 |
20 位元組 |
30毫秒 |
33.3 |
17.9 Kbps |
7.7 Kbps |
20.8 Kbps |
G.726(32 Kbps) |
20 位元組 |
5毫秒 |
3.85 |
80 位元組 |
20毫秒 |
50 |
50.8 Kbps |
35.6 Kbps |
55.2 Kbps |
G.726(24 Kbps) |
15 位元組 |
5毫秒 |
|
|
20毫秒 |
50 |
42.8 Kbps |
27.6 Kbps |
47.2 Kbps |
G.728(16 Kbps) |
10 位元組 |
5毫秒 |
3.61 |
60 位元組 |
30毫秒 |
33.3 |
28.5 Kbps |
18.4 Kbps |
31.5 Kbps |
G722_64k (64 Kbps) |
80 位元組 |
10毫秒 |
4.13 |
160 位元組 |
20毫秒 |
50 |
82.8 Kbps |
67.6 Kbps |
87.2 Kbps |
ilbc_mode_20(15.2Kbps) |
38 位元組 |
20毫秒 |
不適用 |
38 位元組 |
20毫秒 |
50 |
34.0 Kbps |
18.8 Kbps |
38.4 Kbps |
ilbc_mode_30(13.33Kbps) |
50 位元組 |
30毫秒 |
不適用 |
50 位元組 |
30毫秒 |
33.3 |
25.867 Kbps |
15.73 Kbps |
28.8 Kbps |
術語解釋
編解碼器位元率(Kbps) |
根據編解碼器,這是為了傳送語音呼叫而每秒需要傳輸的位數。(編解碼器位元率=編解碼器取樣大小/編解碼器取樣間隔)。 |
編解碼器樣本大小(位元組) |
根據編解碼器,這是數位訊號處理器(DSP)在每個編解碼器取樣間隔捕獲的位元組數。例如,G.729編碼器以10毫秒的取樣間隔運行,相當於每個取樣10位元組(80位),位元率為8 Kbps。(編解碼器位元率=編解碼器取樣大小/編解碼器取樣間隔)。 |
編解碼器取樣間隔(毫秒) |
這是編解碼器操作的取樣間隔。例如,G.729編碼器以10毫秒的取樣間隔運行,相當於每個取樣10位元組(80位),位元率為8 Kbps。(編解碼器位元率=編解碼器取樣大小/編解碼器取樣間隔)。 |
平均意見得分(MOS) |
MOS是一種用於對電話連線的語音品質進行分級的系統。使用MOS時,各種聽眾可以從1(差)到5(優秀)的評分等級來判斷語音樣本的品質。對分數取平均值以便為編解碼器提供MOS。 |
語音負載大小(位元組) |
語音負載大小表示填充到資料包中的位元組(或位)數。語音負載大小必須是編解碼器樣本大小的倍數。例如,G.729資料包可以使用10、20、30、40、50或60位元組的語音負載大小。 |
語音負載大小(毫秒) |
語音負載大小也可以用編解碼器樣本來表示。例如,20毫秒(兩個10毫秒編解碼器示例)的G.729語音負載代表20位元組[(20位元組*)的語音負載
/(20毫秒)= 8 Kbps ] |
PPS |
PPS表示為了傳送編解碼器位元率而需要每秒傳輸的資料包數。例如,對於語音負載大小為每資料包20位元組(160位)的G.729呼叫,需要每秒傳輸50個資料包[50 pps =(8 Kbps)/(每資料包160位)] |
頻寬計算公式
使用以下計算:
示例計算
例如,使用cRTP、MP和預設的20位元組語音負載的G.729呼叫所需的頻寬(8 Kbps編解碼器位元率)為:
-
總資料包大小(位元組)=(6位元組的MP報頭)+(2位元組的壓縮IP/UDP/RTP報頭)+(20位元組的語音負載)= 28位元組
-
總資料包大小(位)=(28位元組)*每位元組8位= 224位
-
PPS =(8 Kbps編解碼器位元率)/(160位元)= 50 pps
註:160位= 20位元組(預設語音負載)x 8位/位元組
-
每個呼叫的頻寬=語音資料包大小(224位)* 50 pps = 11.2 Kbps
在Cisco Call Manager和Cisco IOS網關中配置語音負載大小
可以在Cisco Call Manager和Cisco IOS網關中配置每個資料包的語音負載大小。
註:如果Cisco IOS網關在Cisco Call Manager中配置為媒體網關控制協定(MGCP)網關,則所有編解碼器資訊(編解碼器型別、負載大小、語音活動檢測等)都由Cisco CallManager控制。
在Cisco Call Manager中,每個資料包的語音負載大小可在系統範圍內配置。此屬性在Cisco Call Manager Administration(Service > Service Parameters > select_server > Cisco Call Manager)中使用以下三個服務引數設定:
-
PreferredG711MillisecondPacketSize -(預設設定:20毫秒。可用設定:10、20和30毫秒)
-
PreferredG729MillisecondPacketSize -(預設設定:20毫秒。可用設定:10、20、30、40、50和60毫秒。)
-
PreferredG723MillisecondPacketSize -(預設設定:30毫秒。可用設定:30和60毫秒)
在Cisco Call Manager中,語音負載大小是以毫秒(ms)取樣為單位配置的。根據編解碼器,此表將某些ms示例對映到實際負載大小(以位元組為單位)。
編解碼器 |
語音負載大小(毫秒) |
語音負載大小(位元組) |
意見 |
G.711 |
20毫秒(預設) |
160 位元組 |
請注意,編解碼器位元率始終保持不變。例如: G.711編解碼器= [240位元組* 8(位/位元組)] / 30毫秒= 64 Kbps |
30毫秒 |
240 位元組 |
G.729 |
20毫秒(預設) |
20 位元組 |
30毫秒 |
30 位元組 |
G.723 |
30毫秒(預設) |
|
|
在Cisco IOS閘道器中,Cisco IOS軟體版本12.0(5)T新增了一項功能,允許透過CLI變更VoIP封包的語音負載大小(以位元組為單位)。新命令語法如下:
Cisco-Router(config-dial-peer)#codec g729r8 bytes ?
Each codec sample produces 10 bytes of voice payload.
Valid sizes are:
10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120,
130, 140, 150, 160, 170, 180, 190, 200, 210, 220, 230
Any other value within the range will be rounded down to nearest valid size.
<10-230> Choose a voice payload size from the list above
更改語音負載大小的影響
每個資料包的編解碼器樣本數是決定VoIP呼叫頻寬和延遲的另一個因素。編解碼器定義樣本的大小,但放置到資料包中的樣本總數會影響每秒傳送的資料包數量。
當您增加語音負載大小時,VoIP頻寬會減少,總延遲會增加。以下範例說明此情況:
附註:
- 此計算中未考慮L2標頭。
— 計算表明,當負載大小加倍,每秒需要的資料包數隨後被減半。
— 根據國際電信聯盟電信標準化部門(ITU-T)G.114規範的定義,建議的語音單向總延遲為150毫秒。對於專用網路,200毫秒是一個合理的目標,250毫秒必須是最大值。
語音活動檢測
通過電路交換語音網路,所有語音呼叫都使用64 Kbps的固定頻寬鏈路,無論通話量是語音還是靜音。使用VoIP網路時,所有會話和靜默都將被封包。使用語音活動檢測(VAD),可以抑制靜默資料包。
隨著時間的推移,平均超過24次呼叫的流量中,VAD可節省高達35%的頻寬。不會在每次單個語音呼叫或任何特定點測量上實現節約。出於網路設計和頻寬工程的目的,不得考慮VAD,尤其是對於同時承載少於24個語音呼叫的鏈路。各種功能(例如通話等待音樂和傳真)使VAD無效。當網路設計為具有全部語音呼叫頻寬時,VAD提供的所有節省都可用於資料應用。
VAD還提供舒適雜訊產生(CNG)。由於您可以將靜音誤認為已斷開的呼叫,因此CNG會提供本地生成的白雜訊,以便該呼叫看起來正常連線到雙方。G.729 Annex-B和G.723.1 Annex-A包含整合的VAD功能,但除此之外分別執行與G.729和G.723.1相同的功能。
在Cisco Call Manager中,可以使用以下服務引數啟用(預設情況下禁用)VAD:
您可以在Cisco Call Manager Administration(Service > Service Parameters > select_server > Cisco CallManager)下找到這些服務引數。
RTP標頭壓縮或壓縮RTP(cRTP)
所有VoIP資料包都由兩個元件組成:語音示例和IP/UDP/RTP報頭。雖然語音樣本是由數位訊號處理器(DSP)壓縮的,並且大小可根據使用的編解碼器而變化,但這些報頭的長度是恆定的40位元組。與預設G.729呼叫中的20位元組語音取樣相比,這些報頭會構成相當大量的開銷。使用cRTP時,這些報頭可以壓縮為兩個或四個位元組。此壓縮可顯著節省VoIP頻寬。例如,預設的G.729 VoIP呼叫在沒有cRTP的情況下會消耗24 Kb,但在啟用cRTP的情況下只消耗12 Kb。
由於cRTP逐條鏈路壓縮VoIP呼叫,因此需要為cRTP配置IP鏈路的兩端。
在Cisco IOS軟體版本12.0.5T及更早版本中,cRTP是處理序交換,這嚴重限制了cRTP解決方案的CPU效能的可擴充性。大多數問題都通過Cisco IOS軟體版本12.0.7T至12.1.2T中引入的各種cRTP效能改進而得到解決。這是歷史概要。
-
cRTP在Cisco IOS軟體版本12.0.5T及更低版本中是程式交換的。
-
在Cisco IOS軟體版本12.0.7T和12.1.1T中,引入了對cRTP的快速交換和Cisco快速轉送 — 交換支援。
-
在Cisco IOS軟體版本12.1.2T中,引入了演演算法效能提升。
當您將cRTP移動到快速交換路徑中時,會顯著增加VoIP網關和中間路由器可以處理的RTP會話(VoIP呼叫)數量。
壓縮啟發式
由於RTP本身沒有不同的資料包報頭,因此使用啟發式方法將RTP流(用於cRTP)與UDP流(cUDP)區分開來。目前用於檢測用於壓縮的RTP資料包的確切啟發式是:
相關資訊