i.MX6ボードを用いたWebRTC P2Pコミュニケーション
ブラウザやモバイルアプリは簡単なAPIを介したオーディオ/ビデオのリアルタイム コミュニケーション (Audio & Video RTC)にWebRTCが使用されており、WebRTCコンポーネントはこの目的を最大限に果たすために最適化されています。
アイウェーブはi.Mx6 Q7 開発プラットフォームを使用して WebRTCベースのP2P(ピア・ツー・ピア)オーディオ/ビデオコミュニケーションを開発しました。
コミュニケーションにはFireFoxウエブ ブラウザ 及びビルトインされているWebRTC を使用しました。
WebRTCのアーキテクチャ:
アイウェーブのi.Mx6 Q7プラットフォームは最大1 GHz /coreで動作するクアッドコアのプロセッサを持っています。
i.MX6 CPUはマルチメディア用高性能処理製品の一つであるマルチメディア アプリケーション プロセッサを備えたNXP(フリースケール)の最新CPUで、電力消費が最小になるよう最適化されています。
アイウェーブのi.Mx6 Q7プラットフォームは、大容量ストレージとブートデバイスのどちらにも使用できる
4GB のeMMC を備えた64ビットの1GB RAM をサポートしています。
また、i.Mx6 Q7はi.Mx6 CPUと、SOMの外付けGigabit Ethernet PHYに接続されたEthernetポートをサポートしています。
アイウェーブのアプリケーションはクライアントとサーバの二つのコンポーネントで構成されています。
P2Pコミュニケーションは、二つのクライアント間で実行されます。
サーバは、クライアントの登録及び2つのクライアントが通信するのに必要な設定を維持するのに使われます。
設定後、サーバにはコミュニケーション上の役割はありません。
クライアントアプリケーション:
クライアント アプリケーションは、2つのクライアント間でオーディオ/ビデオを運搬するためのWebRTC を使った非常に簡単なウエブ アプリケーションです。
このアプリケーションは、一方のクライアントから他方のクライアントに”ダイアル“しビデオコール(オーディオ付き)が可能です。
このアプリケーションは、二つのクライアント間でのみ動作し、Firefox ブラウザを使って動きます。
サーバ:
サーバは二つのクライアントの最初の接続の仲立ちをします。
クライアント間の接続が確立されるとこれらのコミュニケーションはP2Pモードで継続します:
ビデオデータは全くサーバを経由しません。
WebRTC P2P コミュニケーションの処理動作
オーディオコーデック:
WebRTCサポートのオーディオ コーデックは、OPUSコーデックです。
OPUSコーデックは一定及び可変のビットレートをサポートし、6 kbit/s~510 kbit/sのエンコーディング、
2.5 ms~60 msのフレーム サイズ及び8 kHz (4 kHzバンド幅)~48 kHzのサンプリング レートをサポートします。
WebRTC のアコースティックエコーキャンセラーは、アクティブ マイクロフォンの音声から生じるアコースティック エコーを除去します。
ノイズリダクション コンポーネントは、VoIPで見られるある種のバックグラウンド ノイズを除去します。
ビデオコーデック:
WebRTCサポートのビデオ コーデックは、VP8です。
VP8ビデオコーデックはローレイテンシー設計でありRTCに適しています。
WebRTCはビデオ用のダイナミック ビデオ ジッター バッファーを備えており、ジッターの影響及び全般ビデオ品質のパケットロスを見えないようにします。
イメージ エンハンスメントはカメラ撮影画像のビデオノイズを除去します。
WebRTCコール: WebRTC P2P オーディオ/ビデオ コミュニケーション画面
ベネフィット:
・ WebRTCはFirefoxブラウザの中にインビルト
・ ビデオ/オーディオ ストリーミングの向上.
・ VP8ビデオコーデック及びOPUSオーディオコーデックは、パケットロス無しで低データ転送が可能.
・ WebRTCベースの P2P コミュニケーションはプラグインやソフトウエアのインストール無しでFirefox
ブラウザからラン可能
・ ローカル ネットワークでオーディオ/ビデオ ストリーミングが可能