ITU-T G.711
PCM (Pulse Code Modulation:パルス符号変調)と呼ばれます。 非圧縮のリニアPCMに対して対数圧伸PCMと呼ばれる事もあります。 ISDN回線で通話を行う時の音声コーデックがG.711です。 アナログ回線でも交換機の間の通信は全てデジタル化されており,そこで使われているのがG.711です。 「G.711 = 従来の電話音声」と考えて間違いありません。 G.711にはμ-lawとA-lawという2つの方式が含まれており,日本の電話で使用されているのはμ-lawです。
原理
対数的に振幅の大きな信号ほど荒い量子化をする事により情報量を圧縮します。 人間の聴覚は大きな音の歪にはあまり敏感ではない事を利用しています。
入出力
サンプル単位の処理になります。 エンコーダもデコーダもμ-law/A-lawの選択を指定する必要があります。 符号データにμ-law/A-lawの識別情報は含まれていません。 μ-lawの音声データは14ビット精度ですが,フルスケール(-8192~8191)は使用出来ないので注意が必要です。
(図8)G.711の入出力
音声データのフォーマット
- 14ビット・リニアPCM,-8159~8159の値(μ-law)
- 13ビット・リニアPCM,-4096~4095の値(A-law)
符号データのフォーマット
- 8ビット/サンプル
RTPプロトコル
ペイロード・タイプはμ-lawが「0」,A-lawが「8」です。 RTPでは20msec以上のパケット送出間隔が推奨されていますので, 1パケットを160サンプル以上の符号データで構成するようにします。
入手方法
G.711のCソースコードはITU-T G.191「Software tools for speech and audio coding standardization」に含まれています。
G.711の拡張機能
G.711は本来サンプル単位の処理を行うコーデックですが,VoIPのように複数サンプルをパケット化して使用するための拡張が行われています。 Appendix Iはパケット・ロス対策のための拡張です。デコーダにおいて過去に再生した音声データをバッファに蓄積し, パケット・ロスが発生した時にバッファのデータを使用して音声を合成します。 Appendix IIではVAD/DTX/CNGを使用する場合の背景雑音のレベルや周波数特性の符号化方法が規定されています。 ただし勧告にはVAD/DTX/CNGは含まれていないので別途用意する必要があります。 これらの拡張はG.726でも使用可能です。