はじめに
Arduinoのメモリが足らないので、なんとか取得するデータサイズを小さくできないかと、いろいろと調べてみました。
で、GroveのカメラがほぼほぼOV528なのですが、結局のところ、すべてを実装しているわけではなく、どうやらサブセットみたいだぞということで、その違いをまとめてみました。
なお、Grovrのシリアルカメラの情報はこちら、OV528に関してはこちらを参照してください。
Initial(AA01h)
Color Setting
こんな感じで、いろいろと設定できそうなのですが、
試してみた結果がこちら。
意味 | 設定値 | 結果 |
---|---|---|
2-bit Gray-Scale | 01h | JPEG(24-bit Color)で出力 |
4-bit Gray-Scale | 02h | JPEG(24-bit Color)で出力 |
8-bit Gray-Scale | 03h | JPEG(24-bit Color)で出力 |
2-bit Color | 05h | JPEG(24-bit Color)で出力 |
16-bit Color | 06h | JPEG(24-bit Color)で出力 |
JPEG | 07h | JPEG(24-bit Color)で出力 |
すべてJPEG(24-bit Color)で出力されます。
Preview Resolution
一応、以下の2種類が設定できるようなのですが、
結果としては、「Preview」自体が有効にならなかったため、確認できず...
JPEG Resolution
OV528は4つ指定できる様になっていますが、
Groveの方では「Resolution: 640480, 320240, 160*120」となってました。
結果としては、予想通りでした。
意味 | 設定値 | 結果 |
---|---|---|
80*64 | 01h | 320*240で出力 |
160*128 | 03h | 160*120で出力 |
320*240 | 05h | 320*240で出力 |
640*480 | 07h | 640*480で出力 |
「03h」のときは「160128」ではなく「160120」なのが要注意です。
Get Picture(AA04h)
Get Setting
OV528では3種類指定できるようです。
一応、どれを設定してもエラーにはならないのですが、動きとしてはどれを設定しても同じで、「Snapshot」または「JPEG Preview Picture」っぽいです。
(どちらなのかは判断つきませんでした)
ちなみに、戻りの「Data(AA0Ah)」ではちゃんと設定した「Data Type」で返ってきます。
Snapshot(AA05h)
Snapshot Setting
設定としては、圧縮/非圧縮があるのですが、
取得したデータは圧縮されていました。
まとめ
結局、Groveのシリアルカメラのところに書かれてあるままでした。
余談
JPEGの画像サイズとチャンネル数は、以下で調べられます。
- マーカー「0xFFC0」を探す
- 3バイト読み飛ばす
- 2バイト→縦のサイズ
- 2バイト→横のサイズ
- 1バイト→チャンネル数(3なら通常24bit RGB)