2009年7月3日金曜日

PCMU(G.711 mu-law) / PCMA(G.711 A-law)

PCMU/PCMAは言わずと知れた一般的なIP電話のコーデックです。G.711 u-lawとも呼ばれます。RFC4856のSection 2.1.18にSDPでの指定方法が登録されています。一方PCMAはPCMUよりダイナミックレンジが若干狭いようです。Wikipediaによれば規定により、1カ国でもA-lawを使う国があれば、国際接続ではA-lawが使われるそうです。PCMAはRFC4856のSection 2.1.17にSDPについて記述があります。

概要

G.711の仕様書は以下にあります。

G.711のサンプリングは8000Hzで1サンプル1バイトですので、64kbpsになることが一般的です。

PCMUもPCMAもG.711の1つですが、PCMUはmu-lawアルゴリズムを、PCMAはA-lawアルゴリズムを使用する、という違いがあります。

(RFC3551) 4.5.14 PCMA and PCMU (拙訳)

PCMAとPCMUはITU-Tの勧告でG.711と規定されている。オーディオデータは対数スケーリング(logarithmic scaling)後にサンプル毎に8bitでエンコードされる。PCMUはmu-lawスケーリングを、PCMAはA-lawスケーリングを意味している。詳細な記述はJayantとNollによって提供されている。[15] 各G.711オクテットはRTPパケット内に整列(octet-aligned)されるべきである(SHALL)。各G.711オクテットの符号ビットはRTPパケット内のオクテットの最上位ビットに一致するべきである(SHALL)(つまり、G.711のサンプル数の推測はホストマシン上でオクテットとして扱われ、符号ビットはホストマシンのフォーマットによって定義される、オクテットの最上位ビットとすべきである)。G.711の56kb/sと48kb/sモードはRTPへは適用されない。PCMAとPCMUは常に8ビットでサンプリングされ、転送されなければならないからである(MUST)。

使い方

PCMU/PCMAのパラメータ
パラメータ名説明
メディアタイプ audio
メディアサブタイプ PCMU PCMA
必須パラメータ
rateRTPタイムスタンプのクロックレートで、これはサンプリングレートに一致します。一般的には8000ですが他のレートが指定されることもあります。仕様上も「名目上1秒間に8000サンプル。誤差は±50ppmまで」と言っているだけで、制限については書かれていません。チャンネル数を2ch(=ステレオ)にする場合は、サンプリングレートを2倍(16000)にします。こうすることで、左右交互にデータがインタリーブされ、8000Hzの音が左右から出るのと同じ効果が得られます。
オプションパラメータ
channels 何本のオーディオストリームが使用されるかを示します。デフォルトは1、ステレオは2です。それ以外も指定可能です。インタリーブは1バイトサンプルされる毎に実施されます。チャンネル順序はRFC3551で規定されています。「チャンネル数毎のチャンネル順序」にRFC3551からの抜粋を示します。
ptime RFC4566参照
maxptime RFC4566参照
チャンネル数毎のチャンネル順序
チャンネル数記述チャンネル
2stereol r
3 l r c
4 l c r S
5 FlFrFcSlSr
6 l lcc r rcS
凡例
l left
r right
c center
S surround
F front
R rear

使用例

サンプリング周波数8000のPCMUとPCMAでコーデックネゴシエーションするオファーをする場合。
v=0
o=john 51050101 51050101 IN IP4 offhost.example.com
s=-
c=IN IP4 offhost.example.com
t=0 0
m=audio 5004 RTP/AVP 0 8
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
サンプリング周波数16000でPCMUのステレオ(2チャンネル)をオファーをする場合。アンサーでこのオファーに同意した場合、左右から8000Hzでサンプリングされた音声が流れます。
v=0
o=john 51050101 51050101 IN IP4 offhost.example.com
s=-
c=IN IP4 offhost.example.com
t=0 0
m=audio 5004 RTP/AVP 0
a=rtpmap:0 PCMU/16000/2

0 件のコメント:

コメントを投稿