Tag分类
通过对CaptureRequest的分类,我们会发现request有
- COLOR_ 色彩校正相关的Tag
- CONTROL_ 控制3A,CropRegin,Zoom相关的Tag,CONTROLL_主要是控制开关或者一些模式的选择
- LENS_ 镜片属性相关的TAG(光圈)
- SCALER_ 边焦相关的TAG,主要是响应用户操作设置的一些区域值
- SENSOR_ sensor是一种半导体芯片,有两种类型:CCD 和 CMOS,手机使用的是CMOS, 图像传感器相关的TAG主要负责选择sensor的提供的各种处理的模式,一般是提供专业模式的操作,会覆盖算法自动的处理
- STATISTICS_ 统计分析相关功能的Tag,例如面部和运动识别
- TONEMAP_ 色调相关的转换Tag
CaptureRequest#black_level_lock
首先理解:黑电平补偿 (black level compensation)
BLC(BlackLevel Correction)------黑电平校正
底电流, Black Level
也叫暗电流,意思是说环境全黑的时候的电流。是用来定义图像数据为 0 时对应的信号电平。
由于暗电流的影响, 传感器出来的实际原始数据并不是我们需要的黑平衡( 数据不为0) 。 所以,为减少暗电流对图像信号的影响,可以采用的有效的方法是从已获得的图像信号中减去参考暗电流信号。一般情况下, 在传感器中,实际像素要比有效像素多, 像素区头几行作为不感光区( 实际上, 这部分区域也做了 RGB 的 color filter) , 用于自动黑电平校正, 其平均值作为校正值, 然后在下面区域的像素都减去此矫正值, 那么就可以将黑电平矫正过来了。
通常来说,黑电平补偿值会在请求过程中会保持锁定,除非请求中的其他参数影响要求黑点平补偿值改变才会关闭锁定(例如曝光时间 exposure time)
CaptureRequest#color_correction_aberration_mode
色差是由于不同波长的光在离开透镜后不能聚焦在同一点上
除了再镜头设计时通过采用具有相同色散特性而方向相反的不同光学材料组成成对的镜片组等手段来控制色差,在ISP过程中也能处理色差,对于横向色差,通常在图像全局上进项校正,将红绿蓝三 个颜色通道调整到相同的放大倍数,一般通过标定三个颜色平面的增益来修正,为了控制标定表格的存储空间,通常只标定MxN个关键点,任意位置处的像素增益可以使用相邻四个标定关键点通过双线性插值的方法动态计算得到。这对于固定的光学镜头比较有效,但是对变焦镜头则难以适用。
可以在请求中设置色差校正的模式,通常有以下的模式
- `[OFF] 关闭校正
- `[FAST] 快速模式,通常API1模式运行的设备执行快速模式
- `[HIGH_QUALITY] 高质量模式,这个模式会对降低抓帧的速率
CaptureRequest#COLOR_CORRECTION_MODE
设置控制选择如何将图像数据从传感器色彩(bayer阵列)转换为线性sRGB颜色的模式。
- `[TRANSFORM_MATRIX]
- `[FAST]
- `[HIGH_QUALITY]
CaptureRequest#COLOR_CORRECTION_GAINS
对白平衡模式的bayer色彩进行增益,通常值范围是1.0~3.0
AWB白平衡基本知识梳理
CaptureRequest#CONTROL_AE_ANTIBANDING_MODE
相机设备的自动曝光算法的防止出现亮条纹带补偿所需的设置,主要是应对绝对固定照明频繁的光源,
通常来说,现在的相机设备都支持自动模式,如果自动模式不可用,可以按照电压频率设置。
- [OFF]
- [50HZ]
- [60HZ]
- [AUTO]
CaptureRequest#CONTROL_AE_EXPOSURE_COMPENSATION
调整自动曝光(AE)目标图像亮度,也就是常说的EV值
在曝光补偿值改变的情况下,相机设备可能需要几帧才能达到新请求的曝光目标。在那段时间里,CaptureResult#CONTROL_AE_STATE将处于搜索状态。一旦达到了新的曝光目标,CaptureResult#CONTROL_AE_STATE将从搜索更改为聚合、锁定(如果启用了AE锁定),或需要闪光灯(如果场景太暗,无法进行静止捕捉)。
CaptureRequest#CONTROL_AE_LOCK
自动曝光(AE)当前是否锁定为其最新计算值。
当设置为true(打开)时,AE算法将锁定到其最新参数,并且在锁定设置为false(关闭)之前不会更改曝光设置。
请注意,即使在AE被锁定时,如果CaptureRequest#CONTROL_AE_MODE设置ON_AUTO_FLASH / ON_ALWAYS_FLASH / ON_AUTO_FLASH_REDEYE.,也可能会触发闪光灯。
当CaptureRequest#CONTROL_AE_EXPOSURE_COMPENSATION已更改,即使AE锁已打开,相机设备仍将调整其曝光值。
CaptureRequest#CONTROL_AE_MODE
相机设备自动曝光例行程序所需的模式。这个Tag关联CaptureRequest.CONTROL_AE_PRECAPTURE_TRIGGER和CaptureRequest.CONTROL_AF_TRIGGER,当设置任何ON_模式之后,应用设置的CaptureRequest#SENSOR_EXPOSURE_TIME(曝光时间), CaptureRequest#SENSOR_SENSITIVITY(ISO感光度),
CaptureRequest#SENSOR_FRAME_DURATION(帧间隔时间)都会被自动曝光程序覆盖。
这个设置仅仅在CaptureRequest#CONTROL_MODE为AUTO模式下才有效。
CaptureRequest#CONTROL_AE_PRECAPTURE_TRIGGER
相机设备在处理该请求时是否会触发预拍摄测光序列。
通常设置为空闲,或者根本不会设置请求中。当包含并设置为START时,相机设备将触发自动曝光(AE)预曝光测光序列。
在启动高质量静态捕捉之前,应触发预捕捉序列,以便做出最终测光决定,并在启用闪光灯时触发预捕捉闪光脉冲,以估计场景亮度和所需的最终捕捉闪光功率
- [IDLE]
- [START]
- [CANCEL]
CaptureRequest#CONTROL_AE_REGIONS
用于自动曝光调整的计量区域列表。通过计量区域的程序计算AE的补偿策略。
最大的支持数量由CameraCharacteristics#CONTROL_MAX_REGIONS_AE属性说明,如果是0,则这个Tag不可用,否则这个属性一直存在。
CaptureRequest#CONTROL_AE_TARGET_FPS_RANGE
自动曝光例行程序可以调整捕获帧速率以保持良好曝光的范围。
这个tag仅在自动曝光模式可用,其他设置CaptureRequest#SENSOR_EXPOSURE_TIME和CaptureRequest#SENSOR_FRAME_DURATION的手动场景不可用
CaptureRequest#CONTROL_AF_MODE
控制自动对焦(AF)当前是否启用,以及设置什么自动对焦模式。
CaptureRequest#CONTROL_AF_REGIONS
AF对焦设置的关注区域列表,支持的最大个数由CameraCharacteristics#CONTROL_MAX_REGIONS_AF决定
CaptureRequest#CONTROL_AF_TRIGGER
设置是否为当前的request请求触发AF(自动对焦),通常这个值设置是IDLE状态,或者在请求中不下发这个tag
当包含并设置为START时,相机设备将触发自动对焦算法。如果禁用自动对焦,则此触发器无效。
当设置为CANCEL时,相机设备将取消任何活动触发器,并返回其初始AF状态。
可以通过CaptureResult#CONTROL_AF_STATE获取AF的状态,从而了解在不同的AF Mode下 trigger到底引发了AF什么状态变化。
CaptureRequest#CONTROL_AWB_LOCK
自动白平衡(AWB)当前是否锁定为其最新计算值。
功能层面上和CaptureRequest#CONTROL_AE_LOCK类似,都是用于锁定当前的请求最新的计算值。
当设置为true(打开)时,AWB算法将锁定到其最新参数,并且在锁定设置为false(关闭)之前不会更改颜色平衡设置。
这里有一个问题,就是请求是在队列排队中处理,因此一个Lock请求真正被处理的时候,并不是对应返回的最新的CaptureResult的设置,并且在CaptureResult返回的时候,AWB还未被锁定, 因此AWB还在不同的更新设置。
如果应用在自动切换的手动的时候为了防止AWB变化引起的闪烁,可以通过
1、开启AWB自动模式
2、下发lock awb请求
3、等待第一次lock awb的结果返回(CaptureResult?hl=en#CONTROL_AWB_LOCK)
4、从result中拷贝所有的设置到request中,设置manual模式(CONTROL_AF_MODE_OFF)
5、提交请求,运行manual手动模式
网友评论