OpenCVのアクセラレータを作りこんでしまう前に、OpenCVのソースコードが改造できるぐらいいぢれものなのかを確認してみた。
一番、知りたいのはallocの部分だ。
流れ的には次のような感じを想定している。
・cvCreateImage
↓
・imageDataの部分だけ、ドライバ経由でCMAから割り当て
さて、これがどこに実装されているか・・・
alloc.cだった。
ソースコードも見てみると、わかりやすい。
ちなみに次のような順でfastAllocでmallocされる。
cvCreateImage
└cvCreateData
└cvAlloc(imageDataのalloc)
└cv::fastAlloc
じゃぁ、imageDataのcvAllocを改造するようにすればいいんだね。
ただ、ここを改造してしまうと全ての画像データをCMAで持たなくてはいけなくなるなぁ。
実際にどれぐらい使用するか測ってもいないうちから容量を心配するのはナンセンスか・・・