1.自动曝光原理
自动曝光就是相机根据光线条件自动确定曝光量。
从控制过程上分,可分为光圈优先、快门优先、混合优先、程序控制、预定模式几种。
顾名思义,光圈优先就是,先确定使用的光圈,相机根据计算出的曝光量确定合适的快门速度,这种方式适用于需要预定景深或者配合闪光灯调配光比的场合;速度优先就是先确定快门速度,让相机选择合适的光圈大小,适用于拍摄动体;混合优先是弥补单一优先的不足而先确定光圈或快门的范围,再由相机确定曝光组合;程序控制是让相机按照预先编定的控制程序曝光;预定模式,是生产厂家根据几种常见的光线条件,预设了比较合理的曝光参数供拍摄时选择,一般有:夜景、风光、人像、运动等几种。
下图是用从1.3秒到15秒的时间分别对同一个夜景进行拍摄,时间过短了称为欠曝,时间过长了称为过曝。不过曝光时间只是影响曝光强度的因素之一,后续会提到。早期的曝光时间都需要手动设置,专业摄影师通常会用测光表来计算当前场景下所需的曝光强度。
曝光强度 = 曝光时间 * 光圈大小 * ISO,手机上的光圈是固定的,所以只需考虑曝光时间和ISO(也就是Gain值的一种表示,这里的Gain又分为Analog Gain,Digital Gain以及ISP Gain,细节不做展开,读者只需要知道ISO指的就是信号增益大小)。而手机上的自动曝光就是让相机根据当前的图像信息自动配置曝光大小,也就是曝光时间和ISO的值。
2.光圈 感光度 快门速度
Aperture:光圈
一般光圈都是固定的
ISO: 感光度
ISO描述的是相机里面的感光元件对光线的敏感程度,数值越大敏感程度越高,数值越小画面的质量越好。所以在光线充足的情况下,我会尽量先将ISO设置到相对较小的数值,在光线较差的情况下,比如夜间,比如光线不好的室内,ISO值可以适当地增加。
Shutter Speed: 快门速度(决定曝光时间)
快门,顾名思义,它是一扇门,从镜头中央打开之后,把光线放进相机里,由前面提到的感光元件来接收。所以快门打开的时间越长,放进来的光线越多,那么照片给人的感觉会更加的明亮,反之,则更加地晦暗一些。
3.N段式统计法
N段式统计法是一种在手机ISP上使用的方法,前文说过手机sensor的光圈是固定的(这里只考虑单摄像头场景),因此可调的参数只有曝光时间和ISO。在手机上这两个参数的调节各有利弊。
调节ISO最主要的副作用就是会同时增强噪点,如果把暗光下的图片放大多倍,噪点就会非常明显;通常是优先调节曝光时间,但是曝光时间也有个上限,必须要在33ms内完成才能保证每秒30fps的预览帧率。
因此N段指的就是ISO的不同段,优先保证ISO较小的情况下调节曝光时间,当曝光时间到极大值仍不能满足时再将ISO调大一级再重新调整曝光时间。
综上所述,整个自动曝光过程就是如下图循环,不断逼近理想值的过程。
4.tuning调优中AE相关问题
关于高通CAMX架构下的AE调试的总结_阿塔西的博客-CSDN博客
小白入门isp之AE_云-天河的博客-CSDN博客_ae收敛
ISP调试中与AE相关的问题_一只特立独行的zhu..的博客-CSDN博客
5.Camera HAL中AE算法
AE 算法会计算当前图像亮度,并与 AE param 中的阈值进行比较,从而控制 sensor 选择更合适的快门组合。而计算亮度最重要的是配置合适的计算区域。
曝光表:定义了放大倍数和曝光时间。
例如对于 {256, 1} 这一组,代表 gain = 1.0,line_count = 1.
曝光表通过 exp_index 建立索引,exp_index 越大,代表使用的 gain 和 line_count 越大,也意味着环境亮度越低。
exp_index 与 lux_index 不同,当 target_luma = cur_luma 时,
exp_index = lux_index
测光区域:即定义如何计算当前图像的亮度。
目标亮度 :
AE target:即 ISP 希望 sensor 输出的图片达到的亮度,对于第一次进相机,ISP 检测到当前帧的亮度 cur_luma 低于目标亮度 target_luma,就会增大 exp_index 获取新的 gain & line_count 进行重新曝光,直到 cur_luma 和 target_luma 相当
总结:
在AE自动曝光算法中,曝光强度 = 曝光时间 * 光圈大小 * ISO,一般光圈是固定的,剩下就是调节曝光时间和iso的值,一般参数的下发都是在APP的请求流程中下发,通常优先调节曝光时间(APP下发的),当曝光时间到极大值任然不能满足再调节iso,当曝光时间固定了,会调节iso来调节亮度。