第39讲 通过ZoomRatio控制Zoom缩放 - Android Camera2 API

本讲是Android Camera专题系列的第39讲,我们介绍Android Camera2 API专题的通过Zoom Ratio控制Zoom缩放,包括如下内容:

  1. 为什么要在API Level 30引入Zoom Ratio来控制Zoom
  2. 通过Zoom Ratio控制Zoom
    • Zoom Ratio与Crop Region同时使用说明
    • Zoom Ratio对3A Region的影响
    • Zoom Ratio对Physical Camera影响

视频在线观看:

加入知识星球与更多Camera同学交流
– 星球名称:深入浅出Android Camera
– 星球ID: 17296815

为什么要在API Level 30引入Zoom Ratio来控制Zoom

  1. Crop Region都是整数,Zoom精度控制不够

    • 相比android.scaler.cropRegion控制Zoom,Zoom Ratio方式的精度更高
  2. Crop Region无法缩小到1倍以下

    • 通过Zoom Ratio可以Zoom到1倍以下(超广角Camera),android.scaler.cropRegion无法做到

但,Zoom Ratio仍然有他的缺点

  • 只能做CENTER_ONLY的Zoom,不支持FREEFORM的Zoom

  • 当使用Zoom Ratio来控制Zoom时,都是基于中心点不变的方式来Zoom,不支持FREEDOM方式进行Zoom。即使设置了FREEDOM的crop region也会被Camera Framework覆盖掉

Zoom Ratio与Crop Region同时使用说明

CaptureRequest#CONTROL_ZOOM_RATIO:App可以通过该Metadata以更简单的方式来控制Zoom,这里的Zoom包含了光学变焦和数字变焦

这里的光学变焦如何理解

  • 在Android手机上,可能会同时存在多个不同焦距的镜头,比如长焦Camera、广角Camera,超广角Camera

  • 使用Logical multi-cam时,当在这些Camera间切换时能产生不同的Zoom效果,这里的Zoom被认为是光学变焦

Zoom Ratio与Crop Region同时使用说明

  • 假设camera device的active array size为(2000,1500)
    • Active array size: 2000x1500 (3 MP, 4:3 aspect ratio)
    • Output stream #1: 640x480 (VGA, 4:3 aspect ratio)
    • Output stream #2: 1280x720 (720p, 16:9 aspect ratio)

Case #1: 4:3 crop region with 2.0x zoom ratio

  • Zoomed field of view: 1/4 of original field of view

  • Crop region: Rect(0, 0, 2000, 1500) // (left, top, right, bottom) (post zoom)

Case #1: 4:3 crop region with 2.0x zoom ratio

  • 640x480 stream source area: (0, 0, 2000, 1500) (与 crop region相等)

  • 1280x720 stream source area: (0, 187, 2000, 1312) (垂直裁剪)

Case #2: 16:9 crop region with 2.0x zoom

  • Zoomed field of view: 1/4 of original field of view

  • Crop region: Rect(0, 187, 2000, 1312)

Case #2: 16:9 crop region with 2.0x zoom

  • 640x480 stream source area: (250, 187, 1750, 1312) (水平裁剪)

  • 1280x720 stream source area: (0, 187, 2000, 1312) (与 crop region相等)

Case #3: 1:1 crop region with 0.5x zoom out to ultrawide lens

  • Zoomed field of view: 4x of original field of view (switched from wide lens to ultrawide lens)

  • Crop region: Rect(250, 0, 1750, 1500)

Case #3: 1:1 crop region with 0.5x zoom out to ultrawide lens

  • 640x480 stream source area: (250, 187, 1750, 1312) (垂直裁剪)

  • 1280x720 stream source area: (250, 328, 1750, 1172) (垂直裁剪)

从这些例子可以看出:

1.cropregion的坐标系统现在变成了有效的后变焦FOV3AFace看到的也是有效的后变焦FOV

2.在CaptureRequest中设置Zoom Ratio后,CaptureResult中,ZoomRatio表示Camera设备实际调整的倍数,Crop Region表示在Camera设备Zoom的基础上额外加上的Zoom倍数。

Zoom Ratio对3A Region的影响

举例:App想放大2倍,预览size为640x480,App想设置左上角1/4为3A ROI,有下面两种实现方式:

  • zoomRatio = 2.0, scaler.cropRegion = (0, 0, 2000, 1500)

    • android.control.aeRegions 需要设置为 (0, 0, 1000, 750)
  • zoomRatio = 1.0 (default), scaler.cropRegion = (500, 375, 1500, 1125)

    • android.control.aeRegions 需要设置为(500, 375, 1000, 750)

Zoom Ratio对Physical Camera影响

Zoom Ratio只会设置给Logical muti-camera,对Physical Camera不起作用.

赞(2)
未经允许不得转载:极客笔记 » 第39讲 通过ZoomRatio控制Zoom缩放

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
Android Camera2参考
Android Camera2参考概述
Android Camera2参数参考
Android Camera2参数参考概述
Android Camera2指南
Android Camera2指南概述
Android Camera HAL开发
Android Camera HAL开发概述
Android Camera2 API
第2讲 Android Camera 架构介绍第3讲 Camera2 API 概述第4讲 Open和Close Camera流程第5讲 GeekCamera2介绍第6讲 Open和Close Camera代码实现第7讲 Hardware Level详解第8讲 AVAILABLE_CAPABILITIES详解第9讲 StreamConfigurationMap详解一第10讲 StreamConfigurationMap详解二第11讲 StreamConfigurationMap实战一第12讲 StreamConfigurationMap实战二第13讲 为什么需要OutputConfiguration第14讲 OutputConfiguration API详解第15讲 Surface Sharing实战第16讲 Deferred Surface实战第17讲 Reprocessable Capture Session详解一第18讲 Reprocessable Capture Session详解二第19讲 App如何实现ZSL功能第20讲 SessionConfiguration详解第21讲 createCaptureSession详解第22讲 SessionParameter实战第23讲 CaptureRequest详解第24讲 如何操作VendorTag第25讲 获取Physical Camera数据流第26讲 CameraCaptureSession详解第27讲 CameraCaptureSession.CaptureCallback详解第28讲 GeekCamera2连拍实战第29讲 SlowMotion实战第30讲 CaptureResult详解第31讲 AE自动曝光 Part 1第32讲 AE自动曝光 Part 2第33讲 AE自动曝光实战第34讲 AE手动曝光第35讲 AE手动曝光实战第36讲 Flash闪光灯控制第37讲 拍照打闪实战第38讲 通过CropRegion控制Zoom缩放第39讲 通过ZoomRatio控制Zoom缩放第40讲 Digital Zoom缩放实战第41讲 Touch AE实战第42讲 AF自动对焦第43讲 AF自动对焦 第二部分第44讲 AF自动对焦实战第45讲 手动对焦实战第46讲 AWB自动白平衡第47讲 AWB自动白平衡实战第48讲 FD人脸检测第49讲 Android13 Camera2 New APIs介绍