SSブログ

OS X用GigE Visionカメラドライバ - その20 [OS X用GigE Vision]

海外営業を日本に呼んでの営業会議に出ろ、と言われたので今週付き合っていた。海外営業の連中にも工場の状態を見せるというので、出席者全員が安曇野のホテルに泊まったんだけど、冬場の山間部のリゾートホテルは客が我々以外誰もいない。営業の連中はどいつもいい歳してるくせに昼間はしゃべりっぱなし、夜は我が物顔でホテルで大騒ぎして、まるで中学生の修学旅行みたいだった。僕はというと、いくら暖房しても部屋が寒くて結局鼻風邪をひいてしまった。体調が悪い。

さて、というわけで、GEN<i>CAM規格の抄訳の続き。今日のところはキャッシュの話をするために、まず他のノードの値に依存するノードについて。前回の書き換え可能性の指定と一緒で、厳密に制御できるようにはなっているけど、それをどう実現するか(どうやって実装するか)というのは別の話というのが気になってしまう。もちろんXML(とスキーマ)ではよくある話だけど。

2.6  キャッシング

値の範囲や存在するかどうかや書き込み可能かどうかなどをチェックできるようにしたとき、普通はカメラに対する読み込みの連鎖を発生させる。しかし多くの値は頻繁には、あるいはまったく変更されず、従ってキャッシュできる。カメラ記述ファイルはキャッシュのコヒーレンシ保持のために必要な手段のすべてを含んでいる。

これを説明するためにもっと詳しい例を使わないといけない。図-9にカメラのイメージャ上の関心領域(Area of Interest)を示す。カメラはAOIの内部のデータだけを転送する。AOIはTop、Left、Width、Heightのパラメータで定義された長方形で示されている。
1010fig09.png
図-9にこれら四つのパラメータがレジスタで表されているところを示す。しかし、この簡単な構造ではどのパラメータも勝手な値をとれる訳ではないという事実を扱えない。画素の座標値は0から始まると仮定して、次のような制約がある。
0121eq01.png
この制限を考慮するには、それぞれのパラメータの最大値はSwissKnifeノードを使って計算しないといけない。最小値は固定である。その結果のGenApiノードのグラフを図-10に示す。
1010fig10.png
2番目のレイヤのIntegerノードが導入されて、最大値がIntSwissKnifeノードからとられていることに注意。イメージャがVGA(640x480)の解像度を持っているとして、TopMaxノードのXMLコードは次のようになる。
<IntSwissKnife Name="TopMax">
  <pVariable Name="CURHEIGHT">HeightReg</pVariable>
  <Formula>480-CURHEIGHT</Formula>
</IntSwissKnife>

nice!(0)  コメント(0)  トラックバック(0) 

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。