camera api 3.0を触ってみた

20
2014/07/30 1 Camera API 3.0 をををををを

Upload: masaki-otsuki

Post on 22-Nov-2014

939 views

Category:

Engineering


5 download

DESCRIPTION

Android L Developer Previewで公開されたCamera API 3.0を触ってみました。

TRANSCRIPT

Page 1: Camera API 3.0を触ってみた

2014/07/30 1

Camera API 3.0 を触ってみた

Page 2: Camera API 3.0を触ってみた

2014/07/30 22013/04/20 2

自己紹介• 名前:大槻 正樹• TwitterID:@nekomeshi312  こんなアイコンです→ 

• 仕事:某メーカ所属      ・・・毎日製品にならないような変な物作って遊んでいます。         ・・・仕事は Android とは特に関係のない Sunday Programmer です。         ・・・こんなアプリ作ってます

Page 3: Camera API 3.0を触ってみた

2014/07/30 3

L Developer Preview で新しい Camera API が公開されました

android.hardware.camera2

Page 4: Camera API 3.0を触ってみた

2014/07/30 4

何が新しい?

Page 5: Camera API 3.0を触ってみた

2014/07/30 5

android.hardware.camera2• フル解像度で 30fps での連写 (Burst mode) のサポート

     (JPEG は不可 )• フレーム間の撮影設定変更のサポート• RAW 画像撮影のサポート• Zero Shutter Lag, Movie Snapshot のサポート• その他カメラの細かな設定のサポート

Page 6: Camera API 3.0を触ってみた

2014/07/30 6

とにかく使ってみましょう

Page 7: Camera API 3.0を触ってみた

2014/07/30 7

android.hardware.camera2• フル解像度で 30fps での連写 (Burst mode) のサポート

     (JPEG は不可 )• フレーム間の撮影設定変更のサポート• RAW 画像撮影のサポート• Zero Shutter Lag, Movie Snapshot のサポート• その他カメラの細かな設定のサポート

Page 8: Camera API 3.0を触ってみた

2014/07/30 8

android.hardware.camera2• フル解像度で 30fps での連写 (Burst mode) のサポート

     (JPEG は不可 )• フレーム間の撮影設定変更のサポート• RAW 画像撮影のサポート• Zero Shutter Lag, Movie Snapshot のサポート• その他カメラの細かな設定のサポート

Page 9: Camera API 3.0を触ってみた

2014/07/30 9

従来の連写方法 1• Camera#setParameters()• Camera#startPreview()         とっても遅い• Camera#takePicture()を繰り返す

方法2• Camera#onPreviewFrame()      解像度はせいぜい

fullHD でプレビュー画像を取得する     途中で設定を変

更不可

Page 10: Camera API 3.0を触ってみた

2014/07/30 10

キャプチャ方法4通り• CameraCaptureSession#capture() ・・・一枚だけ撮影する• CameraCaptureSession#captureBurst()      ・・・撮影条件を変えながら複数枚撮影する• CameraCaptureSession#setRepeatingRequest()      ・・・同一条件で連続撮影する (Preview 用 )• CameraCaptureSession#setRepeatingBurst()      ・・・撮影条件を変えながら連続撮影する

(用途は? )

Page 11: Camera API 3.0を触ってみた

2014/07/30 11

• CameraCaptureSession#capture() ・・・一枚だけ撮影する• CameraCaptureSession#captureBurst()      ・・・撮影条件を変えながら複数枚撮影する

  この順番で撮影され、結果に他の撮影が挟まったりしないことが保証されている ←重要

List<CaptureRequest> requestList = new ArrayList<CaptureRequest>(); // 2段明るく撮影する設定を登録captureBuilder.set(CaptureRequest.CONTROL_AE_EXPOSURE_COMPENSATION, 6);requestList.add(captureBuilder.build());       // 標準の明るさで撮影する設定を登録captureBuilder.set(CaptureRequest.CONTROL_AE_EXPOSURE_COMPENSATION, 0);requestList.add(captureBuilder.build());       // 2段暗く撮影する設定を登録captureBuilder.set(CaptureRequest.CONTROL_AE_EXPOSURE_COMPENSATION, -6);requestList.add(captureBuilder.build());      // 登録された3種類の撮影を連続して実行session.captureBurst(requestList, captureListener, backgroundHandler);

Page 12: Camera API 3.0を触ってみた

2014/07/30 12

android.hardware.camera2• フル解像度で 30fps での連写 (Burst mode) のサポート

     (JPEG は不可 )• フレーム間の撮影設定変更のサポート• RAW 画像撮影のサポート• Zero Shutter Lag, Movie Snapshot のサポート• その他カメラの細かな設定のサポート

ImageFormat にRAW_SENSOR が追加Format は DNG らしい

Page 13: Camera API 3.0を触ってみた

2014/07/30 13

android.hardware.camera2• フル解像度で 30fps での連写 (Burst mode) のサポート

     (JPEG は不可 )• フレーム間の撮影設定変更のサポート• RAW 画像撮影のサポート• Zero Shutter Lag, Movie Snapshot のサポート• その他カメラの細かな設定のサポート

CameraDevice#createCaptureRequest (int templateType)

TEMPLATE_PREVIEWTEMPLATE_RECORDTEMPLATE_STILL_CAPTURETEMPLATE_VIDEO_SNAPSHOTTEMPLATE_ZERO_SHUTTER_LAGTEMPLATE_MANUAL

これを選んでCameraCaptureSession#capture()を呼べば良いらしいがうまくいかない

誰かおせーて orz…

Page 14: Camera API 3.0を触ってみた

2014/07/30 14

android.hardware.camera2• フル解像度で 30fps での連写 (Burst mode) のサポート

     (JPEG は不可 )• フレーム間の撮影設定変更のサポート• RAW 画像撮影のサポート• Zero Shutter Lag, Movie Snapshot のサポート• その他カメラの細かな設定のサポート

CameraMetadata class に定義されている例えば

NR の効き具合を変更したりとか

Page 15: Camera API 3.0を触ってみた

2014/07/30 15

Camera API 3.0• 実は Kitkat でも隠し API として実装されていた

http://urx.nu/anzT

Page 16: Camera API 3.0を触ってみた

            Camera API 2.0 はどこいった?

2014/07/30 16

Page 17: Camera API 3.0を触ってみた

幻の CameraAPI2.0

2014/07/30 17

http://urx.nu/apkH

Page 18: Camera API 3.0を触ってみた

2014/07/30 18

GoogleIO2014 での紹介

http://urx.nu/anzy 30 分あたりから誰かが書いたこれのメモ: http://urx.nu/anA5

Page 19: Camera API 3.0を触ってみた

2014/07/30 19

ソース今日のテストアプリのソースはこちらから

http://urx.nu/aob1

Google のサンプルアプリのソースはこちらから DL できます。

android-Camera2Basic     http://urx.nu/ao4R

android-Camera2Video    http://urx.nu/ao4T

Page 20: Camera API 3.0を触ってみた

2014/07/30 20

FIN