投稿者 tel | 2010年8月14日

画像処理プログラミング – 処理時間の計測

画像処理プログラミングをする上で処理速度は非常に気になる部分なので処理時間を計測するクラスを用意しておく。

VC++2010で時間を計測する関数としてはいくつかあるが、今回はQueryPerformanceCounter関数を使う。他の関数だと数ミリ秒単位でしか計ることができないので、もっとも分解能が高いと思われるこの関数を使う。リアルタイムの画像処理をする場合カメラのフレームレートなどにもよるけど1回の処理は33msとかそのくらいに抑えないといけないので画像処理のここのモジュールはマイクロ秒単位でパフォーマンスを計測したい。以下コード。

#include <windows.h>

class Timer {
private:
 LARGE_INTEGER freq, begin, end;
public:
 Timer() {
 QueryPerformanceFrequency(&freq);
 }
 ~Timer() {};

 // 時間計測開始
 void Start() {
 QueryPerformanceCounter(&begin);
 }

 // 時間計測終了
 double Stop() {
 QueryPerformanceCounter(&end);
 return ((double)(end.QuadPart - begin.QuadPart) / freq.QuadPart);
 }

 // リセット
 void Reset() {
 begin.QuadPart = 0;
 end.QuadPart = 0;
 }
};

使うときはwindows.hをインクルードする必要がある。LARGE_INTEGR型は64bitの整数型Startで計測開始して、Stopで計測終了する。


Responses

  1. […] 時間の計測は前に作った時間計測のクラスを使う。 […]


コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

カテゴリー

%d人のブロガーが「いいね」をつけました。