画像の取りこみスピード vega 2005.01〜
工事中ですが少しずつ
気流の乱れ対策で、デジタルフィルターを使う場合は、画像を取りこむスピードが問題になります。
速ければ短時間に輝度グラフが安定しゾーン位置の輝度比較が出来るからです。
又自動測定ではデジタルフィルターを使う為、全体の測定時間に影響を受けます。
実際に単位時間あたりに取りこめるフレーム数をカウントしてみました。 新しい発見がありました。
諸般の事情で、全て同じ条件で比較はしていませんが、進むべき方向は見えてきました。
(1) VideoCap.ocx を使用した場合
QCAMFTは、下記の方法で画像を取りこんでします。
@ EditCopy() というメソッドを使用してプレビュー画像をクリップボードにコピーする
A
クリップボーから、VBの画像エリアにコピーする
プレビューレートは、VideoCapで指定可能で十分多くしておかなければなりません。
サンプルプログラムで、10秒あたり取りこめた数は
処 理 | Previewプロパティ | フレーム数/10Sec | カメラ | 備考 | |
@とA | True | CM-01 | WindowsXP | ||
@のみ | True | CM-01 | WindowsXP | ||
Aのみ | True | 28 | CM-01 | WindowsXP | |
@ | False | 52 | CM-01 | WindowsXP | |
繰り返しは、VBのタイマー処理で行ています。
パソコンは、2世代(3世代か?)前のパソコンです。
・ クリップボードコピーはネックになっていない。
・ PreviewプロパティをOFFにしても画像は取りこめるが、こちらの方が速い。
・ プレビューのレートを変更してもサンプルプログラムでのレートは変化なし
画像を取りこむだけなのに、このスピードではやはり残念です。
(2) 画面から画像を取りこむ場合
この方法は、bitbltというAPIを使用する方法です。
サンプルプログラムを作り測定しました。
@ 画像のコピー
A 輝度グラフの描画
処 理 | タイマー間隔 | フレーム数/10Sec | カメラ | 備考 | |
@ | 100ms | 100 | CM-01 | WindowsXP | |
@とA | 100ms | 65 | CM-01 | WindowsXP | |
@ | 10ms | 977 | CM-01 | WindowsXP | |
@とA | 10ms | 160 | CM-01 | WindowsXP | |
@ | 10ms | 180 | なし | Windows98 | |
繰り返しは、(1)と同じくVBのタイマー処理で行ています。
・ 同じプログラムでWin98とWinXPでスピードが全く違います。しかもWin98の方がマシンスピードは
少し速い。 メモリは同じ。
XPでは、ほとんど時間がかかっていない事になります。追加する処理を工夫すれば、ポンコツマシン
でもかなり速くできそうです。でも遅いマシンは、カメラのプレビューがコマ落ちしますので、そこそこ
マシンパワーは必要です。
XPではCPUの負荷をみてもほとんど負荷になっていません。
輝度グラフの描画は負荷になりスピードが落ちます。でも自動測定なら不要ですから、スピードアップできます。
今後
上記を見る限り、画面からの取りこみ以外ないでしょう。XPなら10フレーム/secでの自動測定も可能かもしれません。
QCAMFT(上記Win98の環境)で数えてみると、通常の処理で8フレーム/sec程度でした。
自動測定で無人で測定する場合はグラフ表示など不要なので省略すれば、10フレーム/sec程度は可能の様です。