リアルタイムビデオフレーム加工

高価なカメラのレンズをデジタル処理で補うというアイデアはごく一般的なようですが、そういったレンズや各社のフィルターが本格的なプロ仕様だとしたら、例えばiPhoneなんかではそれを擬似的に、しかも個人の嗜好に合わせて組み合わせたりできるようになります。

今でも相当な数のカメラアプリがあるようですが、どれも撮ってから加工というステップで、Photoshopなんかのソフトの簡易版みたいになっていますが、中にはレンズのように、加工された世界が覗けた方が便利なものも多いと思います。

iPhone4でテストしたところ、こうしたリアルタイムビデオフレーム加工で十分な性能を発揮できそうなことが分かりました。例えば中サイズの画質(480x320)でグレーやセピア、ぼかしといったフィルターは、60fps近い性能を発揮できます。

この鍵はiPhone4(iPhone 3GS)に搭載されているPowerVRというGPUで、OpenGL ES2.0のFragment Shaderをそうしたフィルターとして組み合わせて使用します。自由にすり替えたり重ねたり、自在にカスタマイズできます。

私はカメラファンではないのですが、GPUなんかには詳しいので、近いうちにそうしたリアルタイムビデオフレーム加工サンプルを公開したいと思います。特にビデオフレーム取得スレッドと描画フレームの同期、それからビデオデータのフォーマットや方向変換、フィルターを重ねる仕組みなんかは相当コアな技術者でないと難しいと思いますので。Fragment Shader(フィルター)は自分で描かなくてはダメですが、まあなんとかなるでしょう。