Global IP Sound's codec (1) iLBC
Global IP Soundが提供しているcodecについての情報を、和訳してみました。
- http://www.globalipsound.com/solutions/solutions_Codecs.php
- http://www.globalipsound.com/solutions/solutions_whiteprs.php?newsID=13
iLBC*1
- サンプリングレートは8kHz
- 13.3kbps(30ms/frame)と15.2kbps(20ms/frame)で機能する
- 低ビットレート向けcodec
- ナローバンド向け
- パケットロスに強い
- G.729、G.723.1よりも品質がいい
- 他の低ビットレートコーデックよりもパケットロスに強い
- ダイアルアップ接続に適している
- IETFによりRFC3951、RFC3952として標準化されている
- CableLabsによって設計されている
- ソースコードはANSI Cで提供されている(http://www.ilbcfreeware.org)
- 無料だが、浮動小数点バージョンのみ
- GIPS社は固定小数点でDSPつきバージョンを提供している
浮動小数点での計算は、固定小数点の計算よりも時間がかかるものです。*2GIPS社は高速化された固定小数点バージョンを持っている模様。
iLBCはGlobal IP Soundだけが提供しているものではないが、同社によってNet EQなどのモジュールをくっつけると、さらに通話品質を高めることが出来ますよ、ということかな。
Global IP Sound's Solutions (1) NetEQ
- ジッタバッファ、パケットロス隠蔽モジュールである
- ジッタバッファによる遅延を30〜80msに出来る
- automatically provides a solution to the clock drift problem present in VoIP hardware*1
- codecに依存しない
- IP電話システムで遅延を抑えながらも音声品質の劇的な改良を見込める
ジッタバッファというのは、ネットワークの不安定さからくるゆらぎの影響を受けないで済むようにするためのバッファです。これがないと、つまりジッタバッファがないと、ネットワークの不安定さに直接影響されてしまうため、音声の途切れが出てきたりします。ジッタバッファを用意すると、多少の遅延を覚悟すれば、音声の途切れを解決出来ます。Windows Media Playerなんかでストリーミング映像を見るときに、再生されるまで「〜%」と出てバッファリングが行われますが、あれはジッタバッファに対してなんですね。ジッタバッファが用意している分だけ映像をダウンロードしている訳です。
パケットロス隠蔽は、パケットがロストしたときの「穴」を埋める技術です。これがしっかりしていないと、パケットロスが発生した際に無音の時間が発生することになります*2。人間はどのようにすれば不自然さを感じないのか、といった観点からの研究・実装が行われているみたいです。
ジッタバッファやパケットロス隠蔽について興味のある方は、マスタリングTCP/IP RTP編をご覧下さい。
技術を形成する要因を考える(1)
SkypeやGoogle Talkの凄さの本質となっている技術は何なのかを調べているときに、以下の記事に目が止まりました。(ここで、違いを考えるわけではないのであしからず。)
The 1st entry - Ajaxにみる、実践的なメソッドの効用 - Speed Feed [ITmedia オルタナティブ・ブログ]
日本を代表する医学者の一人、野口英世は、天才的な技術を持った人だったそうです。それは、驚異的に速い実験技術です。さまざまな病原菌の入ったビーカーや試験管の中身を混ぜたり分離したりして、その反応を記録する。当然その組み合わせは無数に近いわけで、それを何度も何度も繰り返すことによって得た結果を検証していく、ひたすら地道に繰り返す。これによって正しい回答を導きだすわけです。
野口英世の技術は、実験を繰り返す、ということに尽きるようです。野口英世についてはこちらでいくらか知ることが出来ます。*1
上で引用した文章を、Googleに適用してみます。
世界を代表する企業の一つであるGoogleは、天才的な技術を持った人たちが集まっていたそうです。それは、驚異的に速い実験技術です。さまざまなコンテンツが溢れるインターネットの中身を混ぜたり分離したりして、その反応を記録する。当然その組み合わせは無数に近いわけで、それを何度も何度も繰り返すことによって得た結果を検証していく、ひたすら地道に繰り返す。これによって正しい回答を導き出すわけです。
通常の検索をはじめ、Map、Alert、Talk、AdSense、AdWords、News、Local、Desktop Search・・・など実に様々な実験をしています(派手ですが)。*2
・・・なんかとてつもなく中身のないまとめになるんですが、実験、「やってみること」は大事だなぁ、と再確認した次第です。