美文网首页简友广场
Camera2与AE自动测光

Camera2与AE自动测光

作者: yongbaoqiji | 来源:发表于2023-11-28 14:07 被阅读0次

1. 自动曝光

我们所看到的物体,其实是这个物体上反射出来的光并进入我们眼睛并在我们眼中成像。同理,相机要拍出照片,也需要接收这个反射光。相比下人眼是可以通过瞳孔自动调节进光量的,而相机需要依赖我们专门的模块去控制相机进光量,通过对拍摄画面环境光的测量,调整相机参数使得画面正确曝光,进而采集的图像亮度合适,避免过曝或过暗。

AE(Auto Exposure)即自动曝光,自动曝光的是为了使感光器件获得合适的曝光量,曝光量是指光线强度乘以光线到达sensor所作用的时间,曝光量以E表示,单位勒克斯(Lux)。

曝光强度的控制要素可以简化理解为如下:

曝光强度 = 曝光时间 * 光圈大小 * ISO感光度

其中,ISO包含了sensor的增益(模拟增益和数字增益)和数字ISP数字增益,数字增益的调节容易引入量化噪声。

相机AE过程是可以看作一个伺服系统,主要调控对象一般是光圈、sensor积分时间、sensor增益、ISP数字增益这四个参数。下图简单示意了相机自动曝光过程,本质上就是一基于负反馈的闭环控制系统,如下图所示,

图1

自动曝光流程:

  • 首先通过测光,统计当前画面亮度。常用测光方法有:平均测光、中央点测光、多点测光、局部测光、分区式测光、ROI等。
  • 根据统计到的亮度计算是否落在目标值范围,如果超出,触发AE算法根据差异采取光圈/快门/增益优先之一的策略,对上面提到三要素按照查表的步长对相机进行迭代控制。
  • 待调控后继续统计新的图像亮度,继续重复开始步骤,直到收敛到目标区间内。
图2

sensor的曝光时间和增益通常是非连续的,依赖从sensor 寄存器中直接读取,因此,很可能调控输出的值与AE算法输出的目标参数并不相同。如下图,是曝光时间优先策略,按照步长进行调节收敛,

图3

同时当计算出正确参数后,一般并不会让其立刻在下一帧图像就生效。这是因为如果增益变化较大,图像就会产生闪烁。通常人们更喜欢画面平滑过渡,因此每帧图像的增益变化不宜过大。需要通过平滑方法,使其缓慢地向新参数过渡。用数学公式描述就是:

g(n)= (1-s) * g(n-1) +s * target

其中,g(n)代表当前的亮度,g(n-1)为上一次亮度,target为目标亮度,s为调节率。

2. Camera2自动曝光

2.1 Camera2 AE测光CaptureRequest请求

(1) AE支持的模式

CONTROL_AE_MODE用于设置自动测光模式。

CONTROL_AE_MODE 说明
CONTROL_AE_MODE_OFF 手动曝光,通过CaptureRequest.SENSOR_EXPOSURE_TIME, CaptureRequest.SENSOR_SENSITIVITY, CaptureRequest.SENSOR_FRAME_DURATION控制曝光
CONTROL_AE_MODE_ON 自动曝光模式,手动参数会被覆盖
CONTROL_AE_MODE_ON_AUTO_FLASH 自动曝光模式,暗环境下会控制闪光灯打闪
CONTROL_AE_MODE_ON_ALWAYS_FLASH 自动曝光模式,闪光灯常开
CONTROL_AE_MODE_ON_AUTO_FLASH_REDEYE 自动曝光模式,消除红眼
CCONTROL_AE_MODE_ON_EXTERNAL_FLASHF 通知Camera外部闪光灯已经打开

(2) Camera2采集前测光

CONTROL_AE_PRECAPTURE_TRIGGER用于拍照前触发一次测光行为。

CONTROL_AE_STATE 说明
CONTROL_AE_PRECAPTURE_TRIGGER_IDLE 没有触发AE preCapture
CONTROL_AE_PRECAPTURE_TRIGGER_START 触发AE preCapture测光操作
CONTROL_AE_PRECAPTURE_TRIGGER_CANCEL 取消AE preCapture测光,回到AE初始状态

(3) Camera2曝光补偿

CONTROL_AE_EXPOSURE_COMPENSATION设置曝光补偿调节图像亮度。

  1. 补偿值依赖:
  • CameraCharacteristics.CONTROL_AE_COMPENSATION_RANGE
  • CameraCharacteristics.CONTROL_AE_COMPENSATION_STEP

其中Range为空时表示不支持。

  1. 曝光值(Ev)范围:
    Ev=Range * Step
  2. 只有在android.control.aeMode != OFF时才生效。
  3. 修改曝光补偿后,AE算法可能需要重新收敛,多帧后才能完成曝光补偿动作

(4) Camera2曝光锁定

CONTROL_AE_LOCK用于标识是否将AE参数锁定在参数上。

  1. 需要读取CameraCharacteristics.CONTROL_AE_LOCK_AVAILABLE判断是否支持。
  2. 该动作不能锁住曝光补偿CaptureRequest.CONTROL_AE_EXPOSURE_COMPENSATION
  3. 该动作不能锁住Flash。
  4. AE Lock后,AE preCapture trigger START/CANCEL是没有效果的。

(5) Camera2自动测光区域

CONTROL_AE_REGIONS用于标识自动曝光一串区域列表。

  1. android.control.maxRegionsAe为0代表不支持。
  2. 测光区域有权重参数,权重必须在[0,1000]以内,而且代表的是这个区域中每个像素的权重。
    更大权重的mertring area比较小的区域有更多影响。
  3. android.scaler.cropRegion区域外的设置会无效。
  4. 当预览画面与cropRegion比例不一致时,AE regions需要按照裁剪后的区域重新计算。
  5. 从API 30开始activeArraySize坐标系代表zoom缩放后的区域,而不是缩放前原始的区域,意味着相同的AE regions在不同缩放比例下代表不同大小的区域。

(6) Camera2手动测光灵敏度

SENSOR_SENSITIVITY用于标识ISO/灵敏度。

  1. 通过CameraCharacteristics.SENSOR_INFO_SENSITIVITY_RANGE 进行范围查询。
  2. 只有在CaptureRequest.CONTROL_AE_MODE 或者 CaptureRequest.CONTROL_MODE为OFF时才有效。

(7) Camera2手动测光时长

SENSOR_EXPOSURE_TIME用于标识快门/曝光时间。

  1. 通过 CameraCharacteristics.SENSOR_INFO_EXPOSURE_TIME_RANGE查询范围。
  2. 只有在CaptureRequest.CONTROL_AE_MODE 或者 CaptureRequest.CONTROL_MODE为OFF时才有效。
2.2 Camera2 AE状态
CONTROL_AE_STATE 说明
CONTROL_AE_STATE_INACTIVE AE算法未激活状态,每次切换AE模式/CONTROL_MODE/CONTROL_SCENE_MODE时,AE状态都会重置到CONTROL_AE_STATE_INACTIVE,CaptureResult中不一定能看到这种状态
CONTROL_AE_STATE_SEARCHING AE算法正在调整曝光参数收敛过程中,CaptureResult中不一定能看到这种状态
CONTROL_AE_STATE_CONVERGED AE算法收敛完成
CONTROL_AE_STATE_LOCKED 当前的AE参数被锁住了,由CONTROL_AE_LOCK来控制的
CONTROL_AE_STATE_FLASH_REQUIRED AE算法已收敛,拍照时最好打开闪光灯以获得更好的图像亮度
CONTROL_AE_STATE_PRECAPTURE AE算法进入precapture状态,可以将CONTROL_AE_PRECAPTURE_TRIGGER设置为START来触发

参考文献:

[1]3A+ISP之AE篇

[2]Understanding Auto Exposure Control

喜欢本文的话,帮忙点个赞吧

相关文章

  • Android Camera2 实现触摸对焦功能(Touch t

    之前在 Android Camera2 简介 这篇文章中简单介绍了下 Camera2 中 AF/AE 对焦区域如何...

  • day39.娅萌.学习日常

    今天看了一些关于测光的视频,了解了测光的种类与方式,也知道了 canon相机的测光方式有:评价测光,局部测光,点测...

  • 如何在摄影里面掌握测光技巧与测光的原理?及相机里的测光模式

    如何在摄影里面掌握测光技巧与测光的原理?及相机里的测光模式 测光技巧主要是仔对测光模式的运用及以及测光的具体操作方...

  • 测光与曝光

    测光与曝光 测光是:对准被拍摄对象,半按快门,读出快门光圈值的过程就叫测光 什么是测光,为什么要测光 那么为什么要...

  • 合适的曝光

    对主体测光,(除了自动测光,可能还需要手动调整光圈和曝光时间,当然也可以用曝光补偿),然后锁定曝光结果,重新构图,...

  • 摄像头成像3A算法及控制技术

    3A技术即自动对焦(AF)、自动曝光(AE)和自动白平衡(AWB)。3A数字成像技术利用了AF自动对焦算法、AE自...

  • 婚礼剪辑与调色第八课

    婚庆视频自动剪辑和完美互动 课程要点: 利用AE脚本进行视频自动剪辑及镜头自动分层。 pr和AE完美结合,实现完美...

  • 怎么拍剪影照片

    相机设置1.不要对主体进行测光,而是对明亮的背景半按快门测光。将相机对准天空中明亮的区域,然后按下自动曝光锁定按钮...

  • 色温与白平衡

    最近在看曝光自学手册,书里前面讲了色温,无感。后面又看了测光模式,平均测光、局部测光、中心测光、点测光等。晚上出去...

  • 对焦与测光

    1对焦 对焦就是实现画面景深(关于景深可参考此篇:相机主要术语)的控制,也就是你想让画面的景深落在哪个距离范围内。...

网友评论

    本文标题:Camera2与AE自动测光

    本文链接:https://www.haomeiwen.com/subject/ajozwdtx.html