頭と尻尾はくれてやる!

パソコンおやじのiPhoneアプリ・サイト作成・運営日記


iPhoneカメラ入力画像を60FPSで画像処理したいが

iPhoneのカメラ入力画像に対してGPUで画像処理ってどうやるんだろう?と思って試してたんだけどさ。

過去の流れでCADisplayLink使ってフラグを立てて、そのフラグが立ってる時に
- (void)captureOutput:(AVCaptureOutput *)captureOutput didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer fromConnection:(AVCaptureConnection *)connection
メソッド内で画像を得る、みたいな流れでやっていたんだけどどういうわけかiPhone 5sでも最大30FPSくらいしかいかない。

その程度なの?CADisplayLinkが悪いのかな?と思ってCADisplayLinkを使わないでさっきのメソッド内から直接画像処理用のメソッドをコールするように変更してみたけど、やっぱり30FPS程度。

CADisplayLinkを使わず画像処理

CADisplayLinkはデフォで60FPSみたいだし、OpenGLの描画でも60FPSくらい出てたのに。

いろいろ調べてみたところ、どうやらiPhoneのカメラ画像の取得間隔を設定するのがAVCaptureDeviceクラスの
activeVideoMaxFrameDurationってのがあってこれを設定すればいいのか!と思ったんだけど最高でも30FPSまでしか設定できないんだわ、、、

どうすればいいんだろうなあ?

<< Bulletで物体が衝突せずにすり抜ける  TopPage  Bulletで穴を作る >>

コメント


管理者にだけ表示を許可する
 

トラックバック

トラックバックURL
http://ringsbell.blog117.fc2.com/tb.php/921-be17ba43




Copyright ©頭と尻尾はくれてやる!. Powered by FC2 Blog. Template by eriraha.

FC2Ad