USB Video Classについて
制御方法
ディスクリプタを2つにわける
-ターミナル
入出力関連の機能を示す。ここで入力、出力ターミナルと言った場合、デバイス側からの言い方(INエンドポイントは出力ターミナル)となる。絞り、ズームなどはこっちに入る(らしい)
-ユニット
画像処理の機能を示す。色調、コントラストなど。ユニットの種類は以下
ビデオ属性の制御
ベンダ定義機能
ターミナルのルーティングを制御
ハード機能
カメラがUVCのどの制御(機能)に対応しているかが、結局制御の要になりそう。
画像形式も然り
そこで、「USBviewer」でみると、ターミナル、ユニット部でこんな表示があった。
===>Camera Input Terminal Data
bmControls : 0x2A 0x00 0x02
D00 = 0 no - Scanning Mode
D01 = 1 yes - Auto-Exposure Mode
D02 = 0 no - Auto-Exposure Priority
D03 = 1 yes - Exposure Time (Absolute)
D04 = 0 no - Exposure Time (Relative)
D05 = 1 yes - Focus (Absolute)
D06 = 0 no - Focus (Relative)
D07 = 0 no - Iris (Absolute)
D08 = 0 no - Iris (Relative)
D09 = 0 no - Zoom (Absolute)
D10 = 0 no - Zoom (Relative)
D11 = 0 no - Pan (Absolute)
D12 = 0 no - Pan (Relative)
D13 = 0 no - Roll (Absolute)
D14 = 0 no - Roll (Relative)
D15 = 0 no - Tilt (Absolute)
D16 = 0 no - Tilt (Relative)
D17 = 1 yes - Focus Auto
D18 = 0 no - Reserved
D19 = 0 no - Reserved
D20 = 0 no - Reserved
D21 = 0 no - Reserved
D22 = 0 no - Reserved
D23 = 0 no - Reserved
===>Video Control Processing Unit Descriptor<===
bmControls : 0x7B 0x16
D00 = 1 yes - Brightness
D01 = 1 yes - Contrast
D02 = 0 no - Hue
D03 = 1 yes - Saturation
D04 = 1 yes - Sharpness
D05 = 1 yes - Gamma
D06 = 1 yes - White Balance Temperature
D07 = 0 no - White Balance Component
D08 = 0 no - Backlight Compensation
D09 = 1 yes - Gain
D10 = 1 yes - Power Line Frequency
D11 = 0 no - Hue, Auto
D12 = 1 yes - White Balance Temperature, Auto
D13 = 0 no - White Balance Component, Auto
D14 = 0 no - Digital Multiplier
D15 = 0 no - Digital Multiplier Limit
某社のカメラでの情報。対応機能がディスクリプタとして取得できる。
これにより、制御できる機能を考える必要あり。特に、コントラスト(Contrast)、明るさ(Brightness)は重要だなあ
制御方法
どうやらDirectX経由らしい(今更)。
そのなかで「DirectShow」という機能が動画カメラ制御みたい。
ソース
linux上で扱うなら”V4L2”というモジュール(ソース)を使うといいみたい
※予想も含んでいるので嘘もいっぱいです。
!
最終更新:2011年03月22日 19:38