2009年4月29日水曜日

UEMCLIP(mU-law EMbedded Coder for Low-delay IP communication)

G.711との相互運用性を考慮しつつ、より高音質な通信にも利用できることを目的に作られた音声コーデック。ITU-TのG.711.1[RFC5391]に準拠している。G.711で扱える音域が300Hz~3.4kHzなのに対し、UEMCLIPでは最大で50Hz~7kHzという広い音域を扱うことができるため、より高音質な音声表現が可能となる。

概要

UEMCLIPの策定背景は、現在の電話の音声コーデックとして広く普及しているG.711との互換性を保ちつつ、より高音質な通信を可能にしたい、という思想に由来します。例えば高音質なコーデックと言えばG.722がありますが、G.711とG.722は互換性がありませんので、相互に運用しようとすると、それぞれをトランスコーダがいちいちエンコード/デコードする(=トランスコードする)必要があり、それがトランスコーダへの大きな負荷となります。一方UEMCLIPはG.711のデータを内包していますので、トランスコーダではそのデータを取り出すだけでG.711にしか対応していない端末とも通信できます。トランスコーダの負荷も小さくなります。

上記の仕組みはITU-TのG.711.1で提唱されていて、UEMCLIPはそれに準拠するようにNTT(と他5社)が提案したコーデックです。以下のサイトが詳しいのでそちらを参照してください。

UEMCLIP

UEMCLIP(ユーエムクリップ)とは"mU-law EMbedded Coder for Low-delay IP communication"の略称です。ITU-T G.711として広く利用されている電話音声符号化の標準方式を拡張し、高音質な広帯域音声での通信を可能にする符号化方式で、VoIP等の音声通信アプリケーションや多地点での音声会議用途を目的として、NTT研究所で開発された技術です。

UEMCLIPには複数のmodeが定義されていて、サポートするサンプリング周波数やビットストリームによって使い分けます。また、複数のmodeを動的に切り替えることもできます。サポートするmodeはSDPの中で指定します(下記の「使い方」参照)。

使い方

上記のページの「Download」のところに「RTP payload format」があるんですが、見事にリンク切れしています(2009/5/17現在)。以下のページにVersion06がありますのでそちらを参照してください。この仕様は定期的に更新されているようです。

UEMCLIPのパラメータ
パラメータ名説明
メディアタイプaudio
メディアサブタイプUEMCLIP
必須パラメータ
Rateサンプリングレートは8000、16000のどちらかを指定します[MUST]。以下の表「UEMCLIPのmode一覧」にmode毎の指定可能サンプリング周波数を掲載しています。なお、a行のrtpmapで指定したサンプリング周波数よりも大きい周波数にしか対応していないmodeは指定できません。「Section 6.2.1 Mode specification」参照。
オプションパラメータ
ptime20の倍数でなければなりません[MUST]。デフォルトは20(ms)です。
maxptimeフレーム長(20ms)の倍数(RFC4566の定義より)
modeビットストリームの形式を指定します。modeは0~5の数字で定義されていますが、2と5は将来のために予約されているので、実際には0,1,3,4が指定可能です。詳しくは以下の表「UEMCLIPのmode一覧」に示しています。「Section 2 Media Format Background」を参照。
UEMCLIPのmode一覧
modeサンプリング周波数G.711低帯域拡張部広帯域拡張部
08kHz/16kHz
18kHz/
2将来32kHzに対応したときのために予約
38kHz/16kHz
416kHz
5将来32kHzに対応したときのために予約

使用例

サンプリング周波数16000に対応する全mode(0, 1, 3, 4)をオファーする場合、modeは優先順位の高い順に並べる。
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 96
a=rtpmap:96 UEMCLIP/16000/1
a=fmtp:96 mode=4,1,3,0
上記のオファーに対して、mode=0,1のみをセッション内で切り替えるアンサーを出す場合。なお、もしmode=0とした場合は、1に切り替えることはできません。
v=0
o=lena 549947322 549947322 IN IP4 anshost.example.org
s=-
c=IN IP4 anshost.example.org
t=0 0
m=audio 5004 RTP/AVP 96
a=rtpmap:96 UEMCLIP/16000/1
a=fmtp:96 mode=1,0
オファーが、mode=4と0を許容できることをアンサー側に示したいが、動的に切り替えたくはない場合。この場合、アンサーにはUEMCLIPペイロードを1つだけ含めることが推奨されています(RECOMMENDED)
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 96 97
a=rtpmap:96 UEMCLIP/16000/1
a=fmtp:96 mode=4
a=rtpmap:97 UEMCLIP/16000/1
a=fmtp:97 mode=1

0 件のコメント:

コメントを投稿