はじめに
このドキュメントでは、Voice over IP(VoIP)を使用する場合に帯域幅を変更または節約するための音声コーデック帯域幅の計算および機能について説明します。
背景説明
パケット ボイス ネットワークを構築する際に考慮すべき最も重要な要素の 1 つとして、適切なキャパシティ計画が挙げられます。音声品質の高いパケット音声ネットワークの設計やトラブルシューティングを行う際には、キャパシティプランニングにおける帯域幅の計算が重要な要素になります。
注:このドキュメントの補足として、TAC Voice Bandwidth Codec Calculator(登録ユーザ専用)ツールを使用できます。このツールは、パケット ボイス コールに必要な帯域幅の計算方法に関する情報を提供します。一部ツールについては、ゲスト登録のお客様にはアクセスできない場合がありますことを、ご了承ください。
VoIP:コール単位の帯域幅
計算では、次のプロトコルヘッダーの使用を想定しています。
-
IP(20 バイト)/ User Datagram Protocol(UDP)(8 バイト)/ Real-Time Transport Protocol(RTP)(12 バイト)のヘッダー用に 40 バイト。
-
Compressed Real-Time Protocol(cRTP)は、IP/UDP/RTPヘッダーを2または4バイトに減らします(cRTPはイーサネットでは使用できません)。
-
Multilink Point-to-Point Protocol(MP)または Frame Relay Forum(FRF; フレームリレー フォーラム).12 のレイヤ 2(L2)ヘッダー用に 6 バイト。
-
MP およびフレームリレー フレームにおけるフレームの終わりを示すフラグ用に 1 バイト。
-
イーサネット L2 ヘッダー用に 18 バイト(フレーム チェック シーケンス(FCS)または巡回冗長検査(CRC)用の 4 バイトを含む)。
注:この表には、Cisco Call ManagerまたはCisco IOS®ソフトウェアH.323ゲートウェイのデフォルトのボイスペイロードサイズの計算のみが含まれています。異なる音声ペイロードサイズおよび Voice over Frame Relay(VoFR)、Voice over ATM(VoATM)などの他のプロトコルの計算には、TAC 音声コーデック帯域幅カルキュレータ(登録ユーザ専用)ツールを使用してください。
コーデック情報 |
帯域幅の計算 |
コーデック ビット レート(Kbps) |
コーデック サンプル サイズ(バイト) |
コーデック サンプル間隔(ミリ秒) |
平均オピニオン評点(MOS) |
ボイス ペイロード サイズ(バイト) |
ボイス ペイロード サイズ(ミリ秒) |
Packets Per Second(PPS) |
帯域幅 MP または FRF.12(Kbps) |
cRTP 使用時の帯域幅 MP または FRF.12(Kbps) |
帯域幅イーサネット(Kbps) |
G.711(64 Kbps) |
80 バイト |
10 ms |
4.1 |
160 バイト |
20 ms |
50 |
82.8 Kbps |
67.6 Kbps |
87.2 Kbps |
G.729(8 Kbps) |
10 バイト |
10 ms |
3.92 |
20 バイト |
20 ms |
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 ms |
50 |
50.8 Kbps |
35.6 Kbps |
55.2 Kbps |
G.726(24 Kbps) |
15 バイト |
5 ミリ秒 |
|
|
20 ms |
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 ms |
4.13 |
160 バイト |
20 ms |
50 |
82.8 Kbps |
67.6 Kbps |
87.2 Kbps |
ilbc_mode_20(15.2 Kbps) |
38 バイト |
20 ms |
適用外 |
38 バイト |
20 ms |
50 |
34.0 Kbps |
18.8 Kbps |
38.4 Kbps |
ilbc_mode_30(13.33 Kbps) |
50 バイト |
30 ミリ秒 |
適用外 |
50 バイト |
30 ミリ秒 |
33.3 |
25.867 Kbps |
15.73 Kbps |
28.8 Kbps |
用語の説明
コーデック ビット レート(Kbps) |
これは、音声コールを配信するために送信する必要がある、コーデックに基づいた 1 秒あたりのビット数です。(コーデック ビット レート = コーデック サンプル サイズ / コーデック サンプル間隔) |
コーデック サンプル サイズ(バイト) |
コーデックに基づいた、コーデック サンプル間隔ごとにデジタル シグナル プロセッサ(DSP)によってキャプチャされるバイト数。たとえば、10 ミリ秒のサンプル間隔で動作する G.729 コーダは、ビットレート 8 Kbps ではサンプルごとに 10 バイト(80 ビット)に相当します。(コーデック ビット レート = コーデック サンプル サイズ / コーデック サンプル間隔) |
コーデック サンプル間隔(ミリ秒) |
コーデックが動作するサンプル間隔。たとえば、10 ミリ秒のサンプル間隔で動作する G.729 コーダは、ビットレート 8 Kbps ではサンプルごとに 10 バイト(80 ビット)に相当します。(コーデック ビット レート = コーデック サンプル サイズ / コーデック サンプル間隔) |
平均オピニオン評点(MOS) |
MOS は、電話接続の音声品質の評価に使用されるシステムです。MOS では、多種多様な聞き手が 1(悪い)から 5(非常によい)の尺度でボイス サンプルの品質を判断します。コーデックの MOS はスコアを平均化することで得られます。 |
ボイス ペイロード サイズ(バイト) |
パケットに埋め込まれるバイト(またはビット)数。ボイス ペイロード サイズは、コーデック サンプル サイズの倍数でなければなりません。たとえば、G.729 パケットでは、10、20、30、40、50、または 60 バイトのボイス ペイロード サイズを使用できます。 |
ボイス ペイロード サイズ(ミリ秒) |
ボイス ペイロード サイズは、コーデック サンプルで表すこともできます。たとえば、20ミリ秒(2つの10ミリ秒コーデックサンプル)のG.729ボイスペイロードサイズは、20バイト[(20バイト*
/ (20ミリ秒) = 8 Kbps ] |
PPS |
コーデック ビット レートを配信するために秒あたりに送信する必要のあるパケット数。たとえば、パケットあたりのボイス ペイロード サイズが 20 バイト(160 ビット)の G.729 コールの場合、毎秒 50 パケットを送信する必要があります [50 pps =(8 Kbps)/(160 ビット/パケット)]。 |
帯域幅の計算式
次の計算が使用されます。
計算例
たとえば、cRTP、MP、およびデフォルトの 20 バイトの音声ペイロードを使用した G.729 コール(8 Kbps コーデックビットレート)に必要な帯域幅は、次のように求められます。
-
合計パケット サイズ(バイト)=(MP ヘッダー 6 バイト)+(圧縮された IP/UDP/RTP ヘッダー 2 バイト)+(ボイス ペイロード 20 バイト)= 28 バイト
-
合計パケット サイズ(ビット)=(28 バイト)X 8 ビット/バイト = 224 ビット
-
PPS =(8 Kbps コーデック ビット レート)/(160 ビット)= 50 pps
注:160ビット= 20バイト(デフォルトのボイスペイロード)* 8ビット/バイト
-
コール単位の帯域幅 = ボイス パケット サイズ(224 ビット)* 50 pps = 11.2 Kbps
Cisco Call ManagerおよびCisco IOSゲートウェイでのボイスペイロードサイズの設定
パケットごとのボイスペイロードサイズは、Cisco Call ManagerおよびCisco IOSゲートウェイで設定できます。
注:Cisco IOSゲートウェイがCisco Call ManagerでMedia Gateway Control Protocol(MGCP)ゲートウェイとして設定されている場合、すべてのコーデック情報(コーデックタイプ、ペイロードサイズ、音声アクティビティ検出など)はCisco CallManagerによって制御されます。
Cisco Call Managerでは、パケットごとのボイスペイロードサイズはシステム全体で設定可能です。この属性は、次の3つのサービスパラメータを使用して、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)のサンプルで設定されます。次の表では、コーデックに基づいて、一部のミリ秒単位のサンプルをバイト単位の実際のペイロードサイズにマッピングしています。
コーデック |
ボイス ペイロード サイズ(ミリ秒) |
ボイス ペイロード サイズ(バイト) |
注釈 |
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で、VoIPパケットのボイスペイロードサイズ(バイト単位)をCLIで変更できる機能が追加されました。新しいコマンドの構文を次に示します。
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帯域幅が減少し、全体的な遅延が増加します。次に、この例を示します。
-
ボイスペイロードサイズが20バイト(20ミリ秒)のG.729コール:(40バイトのIP/UDP/RTPヘッダー+ 20バイトのボイスペイロード)* 8ビット/バイト* 50 pps = 24 Kbps
-
ボイスペイロードサイズが40バイト(40ミリ秒)のG.729コール:(40バイトのIP/UDP/RTPヘッダー+ 40バイトのボイスペイロード)* 8ビット/バイト* 25 pps = 16 Kbps
注:
- この計算では、L2ヘッダーは考慮されません。
- 次の計算は、ペイロードサイズが倍増する場合、必要な PPS の数が半分に削減されることを示しています。
- 国際電気通信連合電気通信標準化部門(ITU-T)G.114 仕様で定義されているように、音声の片方向の全体的な遅延には 150 ミリ秒が推奨されています。プライベートネットワークの場合、200 ミリ秒は妥当な目標であり、最大でも 250 ミリ秒にする必要があります。
音声アクティビティ検出
回線交換ボイス ネットワークでは、会話の中に無音部分がどれくらいあるかにかかわらず、64 Kbps の固定帯域幅リンクをすべてのボイス コールが使用します。VoIP ネットワークでは、すべての会話および無音部分がパケット化されます。音声アクティビティ検出(VAD)を使用することで、無音のパケットを抑制できます。
VAD を使用すると、24 を超えるコール量の平均として、一定期間、最大 35 % の帯域幅を節約できます。この節約は、個々のボイス コールや特定の測定時には認識されません。ネットワーク設計や帯域幅管理を目的にしている場合は、VAD を考慮に入れないでください(特に、同時に伝送される音声コールが 24 未満のリンクの場合)。VAD は、保留音やファックスなど、さまざまな機能によって無効になります。ネットワークのすべての帯域幅がボイス コールの伝送用に設計されている場合、VAD によって節約された帯域幅は、すべてデータ アプリケーションが使用できます。
VAD には、Comfort Noise Generation(CNG; コンフォート ノイズ生成)も備わっています。無音をコールの切断と誤って認識する可能性があるため、CNGはローカルで生成されるホワイトノイズを提供し、コールが通常は両方の通話者に接続されているように見えます。G.729 Annex-BおよびG.723.1 Annex-Aには統合VAD機能が含まれていますが、それ以外は、それぞれG.729およびG.723.1と同様に実行します。
Cisco Call Managerでは、次のサービスパラメータを使用してVADを有効にできます(デフォルトでは無効)。
-
SilenceSuppressionSystemWide:このパラメータは、すべてのSkinnyエンドポイント(Cisco IP PhoneおよびSkinnyゲートウェイなど)のVAD設定を選択します。
-
SilenceSuppressionWithGateways:このパラメータは、すべての MGCP ゲートウェイの VAD 設定を選択します。H.323 ゲートウェイには影響を及ぼしません。H.323 ゲートウェイでは、ゲートウェイで VAD を無効にしておく必要があります。
これらのサービスパラメータは、Cisco Call Manager Administration(Service > Service Parameters > select_server > Cisco CallManager)にあります。
RTP:ヘッダー圧縮または圧縮されたRTP(cRTP)
すべてのVoIPパケットは、音声サンプルとIP/UDP/RTPヘッダーの2つのコンポーネントで構成されています。音声サンプルはデジタルシグナルプロセッサ(DSP)によって圧縮され、使用するコーデックによってサイズは変わりますが、各ヘッダーの長さは常に 40 バイトです。デフォルトの G.729 コールのボイス サンプルが 20 バイトである点と比べると、これらのヘッダーは非常に大きなオーバーヘッドになります。cRTP を使用すると、これらのヘッダーを 2 または 4 バイトに圧縮できます。この圧縮により、VoIP の帯域幅を大幅に節約できます。たとえば、デフォルトの G.729 VoIP コールは cRTP なしの場合 24 Kb を消費しますが、cRTP を有効にすると 12 Kb しか消費しません。
cRTP では VoIP コールをリンクごとに圧縮するため、IP リンクの両端で cRTP を設定する必要があります。
Cisco IOS ソフトウェアリリース 12.0.5T 以前では、cRTP がプロセス交換されるため、CPU のパフォーマンスによって cRTP ソリューションの拡張性が大幅に制限されます。Cisco IOS ソフトウェア リリース 12.0.7T~12.1.2T で導入された cRTP パフォーマンスのさまざまな改良により、これらの問題のほとんどは解決されています。これは、履歴の概要です。
-
Cisco IOS ソフトウェア リリース 12.0.5T 以前では、cRTP はプロセス交換されます。
-
Cisco IOSソフトウェアリリース12.0.7T以降、12.1.1Tでは、cRTPに対するファーストスイッチングとCisco Express Forwarding(CEF)スイッチングのサポートが導入されました。
-
Cisco IOS ソフトウェア リリース 12.1.2T で、アルゴリズムによってパフォーマンスが改善されました。
cRTPをファーストスイッチングパスに移動すると、VoIPゲートウェイおよび中間ルータが処理できるRTPセッション(VoIPコール)の数が大幅に増加します。
圧縮のヒューリスティック
RTP には独自のパケットヘッダーはありませんが、ヒューリスティックを使用することで、RTP ストリーム(cRTP 用)と UDP ストリーム(cUDP 用)を区別できます。現時点では、圧縮する RTP パケットの検出に使用される実際のヒューリスティックは次のとおりです。
関連情報