G.711 音声コーデックについて

みなさん、こんにちは。
今回はVoIPの音声コーデックの1つとして使用されている G.711について記載します。
目次
G.711とは
音声信号のサンプリング(標本化)、量子化、符号化を行い、そのデータ(RTPデータ)をIP通信する技術を「VoIP(Voice Over Internet Protocol)」といいます。
以前のブログ( RTP/RTCPとは?【第1回】概要編 ~IP電話を支える基礎技術について~)で、VoIPアプリケーションについて記載していますので、そちらもご参照ください。
G.711は、そのサンプリング(標本化)、量子化、符号化についての規格で、正式にはITU-T G.711といいます。
ITU(International Telecommunication Union)は、国際電気通信連合という組織です。ITU-TはITU組織の電気通信標準化部門で、通信網の技術・運用方法に関する国際標準の策定や、技術的な検討を行い、策定された国際標準を勧告(Recommendation)として公表しています。ITU-T G.711はその一つです。
ITU-T G.711の概要について
ITU-T G.711規格を簡単に述べると、以下の通りです。
- サンプリングレート(標本化周波数)は8000Hzで、周波数偏差は±50ppm
- 8ビット/サンプル(標本化)での符号化
- A-law(13ビット符号付き線形PCMの1標本を対数的に8ビットに符号化)とμ-law(14ビット符号付き線形PCMの1標本を対数的に8ビットに符号化)の2つのアルゴリズムが規定されている(日本ではμ-lawが採用されている)
サンプリング(標本化)
サンプリングレート(標本化周波数)は、なぜ8000Hzと決められたのでしょうか。
それは標本化定理(詳細は他文献やインターネットのサイトなど参考)に沿ったものと言えます。
標本化定理は、「アナログ信号をデジタル信号へと変換する際に、元の信号に忠実であるためにはどの程度の間隔でサンプリング(標本化)するべきか」を示す定理です。
この定理によれば、元の信号の最大周波数を2倍以上にした周波数で標本化すれば元の波形に再構成されることを示す、とされています。
一般電話は300Hz~3400Hzの周波数帯域です。最大の3400Hzの2倍は6800Hzで、6800Hz < 8000Hzとなります。
ちなみに、携帯電話の4G、5Gで採用されているVoLTEでの周波数帯域は50Hz~14.4KHzです。
図1. サンプリング(標本化)について
量子化
量子化とは、サンプリング(標本化)の処理で計測されたアナログ値を離散的なデジタル値に変換する処理です。
G.711 のμ-lawアルゴリズムは、“14ビット符号付き線形PCMの1標本を対数的に8ビットに符号化”と述べました。14ビットのうち 1ビットは符号(正負)で使われ残りの13ビットで離散値を表し、範囲は +8159 ~ -8159 となります。
(13bitのフルレンジは、8191 まで表せますが、8159 までしか使用しません。)
図2. 量子化について
図3は、離散値の増加幅とインターバル数を表し、それをグラフ化したものです。(正の数の場合のみです。負の数は正の数と逆になります。)
|
|
図3. 離散値の増加幅とインターバル数におけるグラフ
符号化
符号化はエンコードともいい、G.711(μ-lawアルゴリズム)での符号化は、量子化処理で求めた14ビットの離散値を8ビットの数値へ変換(コード化)することです。符号化の反対は復号化(デコード)と呼び、8ビットの数値を14ビットの値へ変換します。
図4. 符号化について
以下の表は、離散値に対してのエンコード値、8ビット符号(D7-D0)に対しての離散値を表します。
例として、離散値が+2100の場合は表で番号7にあたります。
エンコード値のMSB 4ビットは 番号-1 の反転ですので 7-1 を反転した 1001 となります。LSB 4ビットはインターバルで表されます。番号7の場合、増加幅は128で16インターバル(区間)の直線で表されます。2100 は2015から2043の間に当たりますので、LSB 4ビットは1111 となります。よって、+2100 は 10011111 というエンコード値になります。
表1 離散値に対してのエンコード値 8ビット符号(D7-D0)に対しての離散値
パケット化(Packetization)
符号化されたデータをIPネットワークへ送信するためにRTPでパケット化します。
パケット周期は通常20ms(ペイロードサイズ160Bytes[160サンプル])が使用されていますが、5ms(40Bytes)、10ms(80Bytes)、30ms(240Bytes)、40ms(320Bytes)なども仕様として定義されています。
図5. パケット化(Packetization)について
おわりに
いかがでしたでしょうか。
G.711は、長い歴史を持ちながらも、今でも多くの場面で使われている音声符号化方式です。そのシンプルさと高品質な音声伝送のおかげで、いろいろな音声通信アプリケーションで活躍しています。これからも音声通信技術が進化していく中で、G.711の重要性は変わらないでしょう。
音声通信の基礎技術としてG.711を理解することで、より良い音声通信環境を作る手助けになります。
VoIP関連のDSP、システム・オン・チップ(SoC)などに関する情報は以下よりご確認ください。