テクノロジーの詳細

PCIe拡張カードを使用したSee3CAMにおけるUSB 3.0最大帯域幅の活用

USB 3.0 SuperSpeedカメラの厳しい現実は、理論上の性能が常に得られるわけではないという点にあります。実際、公称の5Gbpsという帯域幅も、条件によっては一部の場合にしか達成できないことがあります。それでは、e-con Systemsが設計したUSBカメラ「See3CAM」製品ラインを活用して、どのように最大帯域幅を引き出すことができるのかを見ていきましょう。

多くの人は USB 3.0 SuperSpeedカメラ という表記を見ると、公称の最大帯域幅である5Gbpsが当然そのまま利用できるものと考えがちです。しかし実際には、表示されている性能がそのまま得られるとは限りません。理論上の5Gbpsという帯域幅は、その速度でデータを転送し、受信側で単にデータを破棄するだけの場合にのみ成立することもあります。したがって、USB 3.0で実際に得られる性能は、それが使用される最終アプリケーションの種類によって異なります。本稿では、USB 3.0規格に準拠したUSB Video Class(UVC)デバイス、特にe-con SystemsのSee3CAM製品ラインに焦点を当てます。まずは、よくある誤解を解いておきましょう。公称されている最大帯域幅はUSBポートごとの値ではなく、USBホストコントローラーごとの値です。一般的なPCには複数のUSBポートやハブがあり、それらは内部的に単一のホストコントローラーに接続されています。そのため、実際の帯域幅はそれらのポート間で共有されることになります。

では、理論上の帯域幅に実際に影響を与える要素は何でしょうか。また、最終的にどの程度の性能が得られるのでしょうか。その答えは、USBカメラが接続される以下の3つの主要コンポーネントにあります。

  1. ホストコントローラー
  2. ストリーミングアプリケーション
  3. ディスプレイドライバー

これらの各要素が相互に影響し合い、最終的な実効帯域幅を決定します。

USBカメラから取得したデータは最終的にディスプレイへ表示されるため、ストリーミングに使用するアプリケーションおよびディスプレイドライバーがUSB 3.0の転送速度に対応していなければ、最大帯域幅を活用することはできません。e-con Systemsのストリーミングアプリケーション e-CAMView と一般的なIntel HD Graphicsを使用した場合、実用上の最大帯域幅はおよそ2Gbps程度/秒となります。

実際の帯域幅の制限とその要因が見えてきたところで、PCの帯域幅を最適化し、最大限のパフォーマンスを引き出す方法についてご説明します。以下に、最適化のポイントをいくつかご紹介します。

  • IntelやRenesasなどの標準的なUSBホストコントローラーを使用

    市販されているすべてのUSBホストコントローラーが、USB 3.0に対して最適化されているわけではありません。USB 3.0対応をしていても、IntelやRenesasのホストコントローラーと同等の性能基準を満たしていない低価格製品も存在します。

  • 標準的なサードパーティ製ではなく、最適化されたストリーミングアプリケーションを使用

    高性能なストリーミングアプリケーションは、最新かつ最適化されたソフトウェアコンポーネントを採用することで、より高い処理効率を実現します。e-CAMViewのようなアプリケーションは、最新のWindowsアプリケーションレイヤーを活用するために定期的にアップデートされており、一般的なサードパーティ製ストリーミングアプリケーションと比較して、より優れたパフォーマンスを発揮します。

  • ハイエンドストリーミング用途に適したグラフィックカードを使用

    Intel HD Graphicsなどの標準的なグラフィックドライバーは、YUVなどの非圧縮フォーマットによる1080p/60fpsといった一般的なストリーミング用途には十分対応可能です。しかし、より高解像度・高フレームレート、あるいは複数ストリーム処理などの高負荷なアプリケーションでは、専用の高性能グラフィックカードの導入が望まれます。

  • 単一ではなく複数のホストコントローラーインターフェースを使用

    これは帯域幅最適化において、最も重要かつ効果の高いポイントです。前述のとおり、USB 3.0の帯域幅は単一のホストコントローラーに接続された複数ポート間で共有されます。多くのPCでは、マザーボード上のUSB 3.0ポートが同一ホストコントローラーに接続されているため、実効帯域幅はポート間で分割されます。この制限を回避する有効な方法の一つが、各USB 3.0ポートに専用のホストコントローラーを搭載したマルチホストPCIe拡張カードを使用することです。この構成により、PCIeカード上の各ポートでUSB 3.0の帯域幅を最大限に活用することが可能になります。

以下は、各種マザーボードで動作確認済みのマルチホストPCIe拡張カードです。なお重要な点として、使用するマザーボードはPCIe第2世代以上に対応し、かつx4(4レーン)以上の動作速度をサポートしている必要があります。

  1. Startech PEXUSB3S44V
  2. IOI Tech U3X4-PCIE4XE111

以下のマザーボードでは、4系統の1080p/60fps 非圧縮UYVYストリーム(各約1.9Gbps)を同時にストリーミングし、e-CAMViewを使用してディスプレイにレンダリングするテストを実施しました。

  1. Intel® Desktop Board DB85FL (Intel HD graphics 搭載)
  2. GigaByte GA-B85M-D3H (Intel HD graphics 搭載)
  3. GigaByte GA-990FXA-UD3 R5 (NVIDIA GeForce GTX 960 搭載)

PCIe第2世代以上かつx4(4レーン)以上の速度をサポートしているその他のマザーボードでも、同様の動作が期待できます。※注:テストは、Windows 7、Windows 8.1(e-CAMView使用)、およびUbuntu 14.04 OSes(e-con提供のGUVCView使用)で実施しました。

結論として、See3CAMでUSB 3.0の帯域幅を最大限に引き出すには、前述の構成を採用することを推奨します。また、UYVY形式(約1.9Gbps)による1080p/60fpsの単一ストリームといった一般的なストリーミング用途、あるいは同程度の帯域幅要件であれば、特別なハードウェアは必要ありません。Intel HD Graphicsを搭載した単一のUSB 3.0ホスト環境で十分対応可能です。

Related posts

Leave a Comment