第34讲 AE手动曝光 - Android Camera2 API

本讲是Android Camera专题系列的第34讲,我们介绍Android Camera2 API专题的AE手动曝光,包括如下内容:

  1. ISO/Gain控制
  2. Exposure Time曝光时间控制
  3. Frame Duration控制

视频在线观看:

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

ISO/Gain 控制

Static Metadata

CameraCharacteristics 说明
SENSOR_INFO_SENSITIVITY_RANGE 1.当前Camera sensor Gain可调整的范围
2.Min<=100, Max >=800
3.在Hardware Level为FULL的Camera设备上,必须包含该Metadata
SENSOR_MAX_ANALOG_SENSITIVITY 1.当前Camera sensor支持的最大模拟Gain
2.当设置的SENSOR_SENSITIVITY小于等于该值时,全部用模拟Gain,大于该值时会通过数字Gain来填
3.在Hardware Level为FULL的Camera设备上,必须包含该Metadata
CONTROL_POST_RAW_SENSITIVITY_BOOST_RANGE 1.当前ISP Gain可调整的范围
2.如果当前设备不支持RAW format buffer的输出,该值为null
3.如果当前设备支持RAW format buffer的输出,则必须填该值,如果不支持调整ISP Gain,该range会填成[100, 100]

CaptureRequest

CaptureRequest 说明
SENSOR_SENSITIVITY 1.设置给Sensor的Gain(增益)大小,这里的Gain值符合标准ISO 12232:2006
2.这里的Gain是Total Gain,可能会被Camera HAL拆成模拟Gain和数字Gain设置给Sensor
3.设置的值HAL不一定刚好能用,也就是可能会有精度误差,Camera HAL最找一个不大于目标值且与目标值最接近的设置给Sensor
4.手动AE模式下生效,自动AE该值会被AE算法的结果覆盖
5.在支持postRawSensitivityBoost的设备上,图像最终的Gain是SENSOR_SENSITIVITY乘以postRawSensitivityBoost
CONTROL_POST_RAW_SENSITIVITY_BOOST 1.该值表示Camera sensor输出RAW图给ISP后,ISP在YUV/JPEG图像上额外应用的Gain值,对RAW format buffer没有影响
2.设置的值HAL不一定刚好能用,也就是可能会有精度误差,Camera HAL最找一个不大于目标值且与目标值最接近的值进行设置
3.手动AE模式下生效,自动AE该值会被AE算法的结果覆盖
4.图像最终被应用的Gain值
YUV/JPEG:SENSOR_SENSITIVITY * CONTROL_POST_RAW_SENSITIVITY_BOOST
RAW:SENSOR_SENSITIVITY

CaptureResult

CaptureResult 说明
SENSOR_SENSITIVITY 实际生效的Sensor Gain,自动AE时这个值会填当前正在使用的
CONTROL_POST_RAW_SENSITIVITY_BOOST 实际生效的ISP Gain,自动AE时这个值会填当前正在使用的

Exposure time曝光时间控制

参数 说明
CameraCharacteristics#SENSOR_INFO_EXPOSURE_TIME_RANGE 1.Camera sensor曝光时间可调整的范围,单位是NS
2.Min <= 100 us
3.在Hardware Level为FULL的Camera设备上,Max >= 100ms
CaptureRequest#SENSOR_EXPOSURE_TIME 1.曝光时间,也就是每个像素暴露在光线下的时间,单位NS
2.手动AE模式下生效,自动AE该值会被AE算法的结果覆盖
CaptureResult#SENSOR_EXPOSURE_TIME 实际生效的曝光时间

Frame Duration控制

参数 说明
CameraCharacteristics#
SENSOR_INFO_MAX_FRAME_DURATION
1.当前Sensor支持的最大Frame Duration,单位是NS, 也就是能输出的最小帧率
2.最小的Frame Duration跟size和format有关,需要从这里获取StreamConfigurationMap.getOutputMinFrameDuration(int, Size)
CaptureRequest#
SENSOR_FRAME_DURATION
1.相邻两帧曝光开始的时间间隔,单位是NS
2.手动AE模式下生效,自动AE该值会被AE算法的结果覆盖
CaptureResult#
SENSOR_FRAME_DURATION
实际生效的Frame Duration
赞(4)
未经允许不得转载:极客笔记 » 第34讲 AE手动曝光

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
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介绍