SurfaceTextureとシェーダを使って遊んでみる

7,841 views
7,652 views

Published on

ABC2012 Springで発表したLTのスライドです。

0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
7,841
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
21
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • SurfaceTextureとシェーダを使って遊んでみる

    1. 1. SurfaceTexture とシェーダを使って 遊んでみる
    2. 2. 自己紹介• 松本 達弥(まつもと たつや)• Twitter : @tmash06• 大学生→院生にジョブチェンジ(予定)• Androidの音声とか動画とかNDKを 弄ってます
    3. 3. 本日のお題SurfaceTexture
    4. 4. SurfaceTexture• カメラプレビュー映像や、 動画を再生しているMediaPlayerの 出力結果をOpenGL ESのテクスチャ として利用出来るクラス• Honeycomb以降で利用可能
    5. 5. OpenGL ES?• 3Dグラフィクス用API• 1.1と2.0の2つのバージョンが存在• 2.0は、GPU上で動作する フラグメントシェーダで、高速に画像 にエフェクトをかけることが可能
    6. 6. OpenGL ES?• OpenGL ESで、画像を表示するために は、RGB形式などで、GPUへ転送する 必要がある
    7. 7. カメラプレビュー・動画の転送 SurfaceTexture以前• 動画を再生している、MediaPlayerの再生結果は 取得不可能• カメラプレビューの場合、Camera.PreviewCallbackを 利用して取得(重い)• YUV420形式なので、RGBへ変換が必要(重い)• OpenGL ES 2.0のシェーダで処理するには、 テクスチャの転送が必要(重い)•全体的に重いし、面倒くさい
    8. 8. カメラプレビュー・動画の転送 SurfaceTextureを使うと• 動画・カメラプレビューどちらも可能• テクスチャの転送がいらない• RGBフォーマットなので、変換不要• 速い!
    9. 9. つまり動画・カメラプレビュー に対する、高速なエフェクト処理が 可能になる
    10. 10. なにが嬉しいの? 引用:アップル、「アップル — 新しいiPad — iPadに内蔵された驚くようなアプリケーション。」 、アップル、http://www.apple.com/jp/ipad/built-in-apps/、2012/3/22引用 iPadのPhoto Boothっぽいものが作れる (頑張れば・・・)
    11. 11. なにが嬉しいの? エッジ強調 リアルタイムな画像処理に利用出来る
    12. 12. なにが嬉しいの? opencv.jp、「opencv.jp - OpenCV: 物体検出(Object Detection)サンプルコード 」、 opencv.jp、http://opencv.jp/sample/object_detection.html、2012/3/23引用シェーダで物体認識とかも 出来るかも・・・?
    13. 13. 問題点• 動画の場合、エフェクト処理が重いと、 音と動画の同期が取れない! • タイムスタンプ情報で、なんとかできるかもしれない • ただし、ICS以降でしか取得APIがない• たまに、OpenGL ESのシェーダコードに 互換性問題がある• ちょっと不安定!!!(たまにOSごと再起動・・・)• Honeycomb以上でないと利用出来ない
    14. 14. android.media.effect• ICSから追加• 自分でシェーダコード書かなくても、 エフェクトをかけられる• 回転させたり・セピア色にしたり・・・• 手軽にやりたい人は、こちらのほうがいい
    15. 15. デモ:普通に動画を表示http://youtu.be/zHklYjZR4Dw
    16. 16. デモ:エフェクトをかけて 表示http://youtu.be/XAWOu5HcmnE エッジ強調フィルタを利用
    17. 17. おわりありがとうございました。

    ×