Android USBカメラの研究

Android UVC Camera Android3.1以降ではUSBホスト機能が搭載可能となり、USBデバイス(USBメモリ、USBマウス等)が接続可能となりました。さらにAndroid端末のLTE等高速通信対応に伴い、特にUSBカメラへの接続が注目されています。しかし、USBカメラの接続には多くの課題があります。インフィニテグラ株式会社では、Android(特に4.0以降)向けUSBカメラの研究開発を推進しています。

Android4.0のUSBホスト機能には、Isochronous転送・USBビデオ転送機能(UVC等)に問題があります。Android端末でUSBカメラ動画を再生するにはこれら問題を解決しなくてはなりません。以下方式の実装に成功しました。

方式名(転送方式) 概要
完全アプリ方式
(Isochronou/Bulk)
アプリ層のみでIsochronous転送に対応させ、さらにUVC等ビデオ転送機能もアプリ層のみで実装することに成功しました。ただし、アーキテクチャ上の理由から使用可能なAndroid端末とUSBカメラの機種は限られます。
USBカメラ開発方式
(Bulk)
Bulk転送カメラにすることで、AndroidがIsochronous転送に対応できない問題を回避しました。さらに、UVC等ビデオ転送機能をアプリ層のみで実装することで、Androidカーネルをカスタマイズすることなく、市販のAndroid端末でUSBカメラ動画を再生します。ただし、単純にBulk・UVC対応USBカメラならAndroid端末に接続可能ではなく、様々なノウハウが必要です。
Android改造方式
(Isochronous)
AndroidカーネルをカスタマイズすることでIsochronous転送とUVC規格に対応させます。市販のUSBカメラをそのまま使用できます。

各方式の提供や応用については、こちらをご覧ください。

完全アプリ方式(市販Android端末と市販USBカメラの接続、Google Playで公開中

Android OSはIsochronous転送に対応していないため、Root権・ROM改造をせずに、Isochronous転送USBカメラ(市販されるほぼ全てのUSBカメラ)を接続することは不可能と言われていました。しかしインフィニテグラ株式会社では、Androidソースコードの解析、FPGAを用いた接続評価、各種計測器を用いたUSB通信解析等を行い、弊社独自技術を適用することで、Android端末のRoot権・ROM改造を行うことなく、アプリのみでIsochronous転送に対応させることに成功しました。

このアプリはGoogle Playで公開しています。

  • Android端末(Nexus7)と、市販USBカメラ(Logicool社製 C270)接続時の外観

Android端末(Nexus7)と、市販USBカメラ(Logicool社製 C270)接続時の外観

USBカメラ開発方式(市販Android端末とBulk転送対応USBカメラの接続)

Bulk転送対応カメラはほとんど流通していません。本方式にあたって、弊社ではBulk転送カメラを開発しました。Androidカーネルは一切カスタマイズすることなく、以下2つの方法によるUSBカメラ動画像をAndroid端末で表示することに成功しました。

方式名 デバイスクラス USB転送タイプ ビデオフォーマット
Bulk UVC方式 UVC Bulk転送 非圧縮、Motion JPEG
ベンダ固有方式 ベンダ固有 Bulk転送 非圧縮

この研究成果を用いた、Bulk・UVC・非圧縮方式によるAndroid USBカメラ開発キット”AndCam-Kit F1″を開発しました(販売終了)。APIを用いることで、USBカメラ画像の表示・画像解析・録画・配信といったAndroidアプリを手軽に開発することが出来ます。

  • Android端末(Nexus7)と、AndCam-Kit F1 接続時の外観

Android改造方式(カスタマイズAndroid端末と市販USBカメラの接続)

一般的な市販USBカメラはIsochronous転送・UVC方式です。Androidカーネルをカスタマイズすることで、これらUSBカメラをAndroid端末に接続できます。インフィニテグラ株式会社では、この方法にも成功しています。

Android UVC(Isochronous) Stack

  • カスタマイズAndroid端末(Galaxy Nexus SC-04D, Android4.0.4)と、市販USBカメラ接続時の外観

カスタマイズAndroid端末(Galaxy)と市販USBカメラ接続時の外観