ページ

2012年6月2日土曜日

OpusとCodec2

早いもので、もう6月ですね。もうすぐ暑い日々が続くと思うと、今からウンザリしてしまいます:-( 去年に続いて電力不足が予想されてますしね。夏の間だけでも何とかならないものでしょうかね……。なんて暗い書き出しですが明るい話題を一つ。

最近、ハマっている「FUSION IP-Phone SMART」ですが、これは「SIP」と呼ばれる仕組みを使った電話システムです。とか、偉そうに書いてますが全然詳しくはないです。まぁ自分のメモがわりに書いているので、内容が間違っていても怒らないで下さいね:-( 

話を続けます。以前も書きましたが現在の所、FUSION IP-Phone SMARTで使われている音声コーデックは「Speex」「iLBC」「GSM」「G.711」「G.722」の5つみたいです。SIP自体はどのコーデックを使うか迄は規定されていないようですが、基本的にはG711が使われているようです。ちなみにG.711は、μ-law(北米・日本で使用)およびA-law(欧州その他で使用)の二つあるそうです。日本だと前者のμ-lawですね。

私がUbuntuで使用している「SFLPhone」だと、GSMが13.0 kbpsと最もビットレートが低く、次いでSpeex(8KHz)が24 kbps、同じくSpeex(16kHz)が42 kbps、PCMU(G.711 μ-law)が64 kbpsと表示されています。基本的にはビットレートが低い方がインターネット回線の負荷が低いので、遅延等が発生しにくくなると思います。その分、音声の明瞭さが失われているのでクリアな通話が出来なくなるという事でもあるのですが。

実際、GSMはかなり音質は悪いです。ただ、通話というのは音質よりも遅延の方が悪影響が出ますので、実際に使用する分にはビットレートが低いほうが有利だと個人的には思います。まぁ光レベルの安定した回線ならば、わざわざ音質を犠牲にしてまで、コーデックを気にする必要もないとは思いますけどね。

個人的にオススメなコーデックはSpeexの16kHzなんですが、出来ればもっと良いコーデックも使いたいなというのも本心です。例えばG.729とか。一応、Asteriskにも対応しているのですが、基本的に有料なコーデックですのでSIPクライアントの対応もそれ程多くないです。そこで出てくるのが「Opus」という新しいコーデックです。

このブログを以前から見ている人なら、聞き覚えがあるかも知れませんが、このOpusというコーデックはSkypeで使われている「Silk」というコーデックと、Ogg Vorbis等で有名な「Xiph.Org」が開発中の「CELT」を掛け合わせた、いわば夢の万能コーデックなんですね。このコーデックはVoIPからMP3で行われているようなオーディオストリーミング迄カバーすると言われています。しかも、オープンソースですので、G.729のように有料という訳でもないですし。まぁ現在だとG.729も無料で使える場合もあるみたいですが。

このOpusですが、長い開発期間を経て、ようやく実用化されそうな段階まで来ているみたいです。実際にFirefoxの最新版では既に実装されているそうですし。まぁOpusの開発者(Speexの開発者でもある人)が、現在はMozillaで働いているので当たり前と言えば、当たり前なんですけど:-P ただSilkのCPUの使用率がG.729のおよそ3倍らしいのが多少気になります。まぁ最近のハードウェアの機能向上は目覚しいものがあるので、大した問題にはならないと思いますけどね。

#Picasa
Opusのグラフ。低遅延ではG.729に匹敵しつつ、MP3のようなオーディオクオリティもカバー:-P

そんな感じで、来年辺りには実際に使われてきそうな感じのOpusですが、実はもう一つ気になっている音声コーデックがあったりします。それが、タイトルにも書いた「Codec2」です。名称からしてかなりストレートな感じですが、このCodec2というのは、Opusよりも更に低いビットレートでの利用が可能なコーデックなようです。

GSMで13kbps、G.729で8kbps、Opusですら最低で6kbpsと言われていますが、このCodec2は何と1.2と2.4kbpsがターゲットらしいです。しかも、将来的には最低値を1.0kbpsにするかもしれないとの事! 凄いですね。人間の声に特化しているとはいえ、2.4kbpsで通話が可能とは……。まぁその分、通話品質はOpus等と比べて下がってしまいますけども。

ちなみにこのCodec2は当初の目的として、アマチュア無線向けの音声コーデックをプロプライエタリなモノからリプレイスするモノとして開発が進められていたようです。最近になってSIPトランキングも使用例として挙げられるようになっているそうですが。って、SIP トランキング自体よく判ってませんけど:-( SIPクライアント向けじゃなくて、サーバーで使うのかな? 変換用? よく判りません。

最低で1.2kbpsで使えるといっても、SIPだと、どうしてもオーバーヘッド(0.8kbpsくらい?)が発生するので、Codec2の開発者としては、あまりSIPクライアント向けではないと解説しているようですが、実際にSIPクライアント向けのコーデックとして期待している人達もいるようです。この辺り、まだ全然調べていないので適当ですが:-(

ちょっと長くなってしまったので、今日はここ迄にしておきます。中途半端で申し訳ないです。あ、一応最後に付け足しておくと「FUSION IP-Phone SMART」の推奨アプリになっている「Chiffon(シフォン)」の開発元の中の人も、Codec2に関心があるようで、公式メーリングリストに投稿しているようです。もしかしたら、ChiffonでCodec2が使えるようになる日が来るのかも知れませんね:-P

#YouTube
Opus, the Swiss Army Knife of Audio Codecs - Jean-Marc Valin - YouTube
http://youtu.be/iaAD71h9gDU



Codec 2 - Open Source Speech Coding at 2400 bit/s and Below - David Rowe - YouTube
http://youtu.be/KsywWf8dQgU



#外部リンク
Opus Audio Codec
http://opus-codec.org/

[Phoronix] Opus Audio: Pairing Skype's SILC With CELT
http://www.phoronix.com/scan.php?page=news_item&px=MTExMDI

FirefoxのOpusサポート
https://bugzilla.mozilla.org/show_bug.cgi?id=674225

Codec2 - Next-Generation Digital Voice for Amateur Radio
http://codec2.org/

Codec 2 « Rowetel
http://www.rowetel.com/blog/?page_id=452

Asteriskは既にCELTとSilkに対応中?
Asterisk 10 Codecs and Audio Formats - Asterisk Project - Asterisk Project Wiki
https://wiki.asterisk.org/wiki/display/AST/Asterisk+10+Codecs+and+Audio+Formats

Asterisk Codec 2 support
https://freetel.svn.sourceforge.net/svnroot/freetel/codec2-dev/asterisk/README

SourceForge.net: Free Telephony Project: freetel-codec2
http://sourceforge.net/mailarchive/forum.php?thread_name=4FC725F2.2030200%40souldsp.jp&forum_name=freetel-codec2

csipsimpleも?
Issue 597 - csipsimple - Codec 2 support - SIP application for Android devices - Google Project Hosting
http://code.google.com/p/csipsimple/issues/detail?id=597

#内部リンク
BLOG.MINAWA.NET: CELT + SILK = Opus
http://blog.minawa.net/2011/01/celt-silk-opus.html

BLOG.MINAWA.NET: Opus Codecのウェブサイトが出来てた
http://blog.minawa.net/2011/02/opus-codec.html

BLOG.MINAWA.NET: MPEGがロイヤリティフリーのビデオコーデックを計画中?
http://blog.minawa.net/2011/02/mpeg.html

BLOG.MINAWA.NET: GoogleがOpusをテスト中?
http://blog.minawa.net/2011/08/googleopus.html

BLOG.MINAWA.NET: OpusのWebRTC入りは確実?
http://blog.minawa.net/2011/09/opuswebrtc.html

0 件のコメント:

コメントを投稿