ITU-T G.726
ADPCM (Adaptive Differential Pulse Code Modulation:適応差分パルス符号変調)と呼ばれます。 G.726では音声データ入出力としてG.711符号データが使用されます。そのためG.711で通話をしているネットワークの途中をG.726で置き換え, 部分的にビットレートを節約する事が簡単にできます。一般的に音声コーデックはエンコードとデコード処理を繰り返すと音声品質が劣化しますが, G.726の場合は2回以上繰り返しても全く劣化しません。したがってG.711の通話系の複数箇所にG.726を挿入しても1回分の劣化しか発生しません。 G.726 Annex Aでは音声データとしてリニアPCMを使用する方法を規定しています。
原理
エンコーダは過去の出力信号から入力信号を予測し,予測した入力信号と実際の入力信号との差分情報だけを伝送します。 デコーダは過去の出力から予測した入力信号に,エンコーダから送られた差分情報を加える事により音声を再生します。 予測を行う部分では適応処理が行われています。ビットレートの違いは差分情報の量子化ビット数の違いです。
入出力
サンプル単位の処理になります。 エンコーダもデコーダもビットレートを指定する必要があります。符号データにはビットレートの情報は含まれていません。
(図9)G.726の入出力
音声データのフォーマット
- G.711符合データ(μ-lawまたはA-law)
- 14ビット・リニアPCM(G.726 Annex A)
符号データのフォーマット
- 5ビット/サンプル(40kbit/s)
- 4ビット/サンプル(32kbit/s)
- 3ビット/サンプル(24kbit/s)
- 2ビット/サンプル(16kbit/s)
RTPプロトコル
定められたペイロード・タイプの番号はありません。ペイロード・タイプはシグナリングの過程で動的に割り当てられます。 1サンプルの符号データは2~5ビットと半端な長さなので, RTPで通信を行うためにはオクテット(8ビット)単位になるように複数サンプルをまとめる必要があります。(図10) さらにパケット送出間隔は20msec以上が推奨されていますので,160サンプル以上の符号データを1つのパケットにまとめます。
(図10)G.726符合データ
(クリックすると大きい画像を開きます。)
A,B,C・・・はそれぞれ1サンプルの符号データです。
()内の数字は各符号データのビット番号です。(0がLSB)
入手方法
G.726のCソースコードはITU-T G.191「Software tools for speech and audio coding standardization」に含まれています。