第34讲 Android Camera2 API AE手动曝光

本讲是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_RANGE1.当前Camera sensor Gain可调整的范围
2.Min<=100, Max >=800
3.在Hardware Level为FULL的Camera设备上,必须包含该Metadata
SENSOR_MAX_ANALOG_SENSITIVITY1.当前Camera sensor支持的最大模拟Gain
2.当设置的SENSOR_SENSITIVITY小于等于该值时,全部用模拟Gain,大于该值时会通过数字Gain来填
3.在Hardware Level为FULL的Camera设备上,必须包含该Metadata
CONTROL_POST_RAW_SENSITIVITY_BOOST_RANGE1.当前ISP Gain可调整的范围
2.如果当前设备不支持RAW format buffer的输出,该值为null
3.如果当前设备支持RAW format buffer的输出,则必须填该值,如果不支持调整ISP Gain,该range会填成[100, 100]

CaptureRequest

CaptureRequest说明
SENSOR_SENSITIVITY1.设置给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_BOOST1.该值表示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_RANGE1.Camera sensor曝光时间可调整的范围,单位是NS
2.Min <= 100 us
3.在Hardware Level为FULL的Camera设备上,Max >= 100ms
CaptureRequest#SENSOR_EXPOSURE_TIME1.曝光时间,也就是每个像素暴露在光线下的时间,单位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
  • 5
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

deepinout_camera

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值