0


保姆级高通AEC9调试指南(看完可解决80%AE相关问题)

Initial Tuning

默认ISO 100相当于1倍gain,有的2倍,可自行设置。

在这里插入图片描述

Exposure table

Vertical Blanking Time=1/max_fps/FrameLengthLinesverticaloffset10^9
首行曝光时间=1/max_fps/FrameLengthLinesminlinecount10^9
相关参数在客户给的sensor.XML文件中有
Eg:Max fps=30 FrameLengthLines=2492 veticaloffset=6 minliencout=1
Vertical Blanking Time=1/30/2492610^9=80256
首行曝光时间=1/30/2492110^9=13408

在这里插入图片描述

最后一个IncremenPriority设置为Gain,其他都是Exp Time(避免极暗环境下存在拖影)

首行曝光时间得到之后
后面的index gain依次按照1/2/4/8/16/32/64进行配置 在硬件条件差别不大的情况下
曝光时间参照对比机进行 拍摄不同iso段 查看详细信息得到帧率,曝光时间=1/帧率
即可得到调试机的曝光时间(单位为:ns,1s=10^9ns)

Luma target

AEC Triger配置:
默认情况下,Chromatix工具生成两个触发点,三个区域。
测试TL84 400lux条件光源下的照度指数:lux_index_400
Trigger[0].start=lux_index_400-100
Trigger[0].end=lux_index_400-60
Trigger[1].start=lux_index_400+90
Trigger[1].end=lux_index_400+160
eg:lux_index_400=267

Trigger[0].start=lux_index_400-100=167
Trigger[0].end=lux_index_400-60=207
Trigger[1].start=lux_index_400+90=357
Trigger[1].end=lux_index_400+160=427

luma Target:55-50 52-45 40-25

Bright & Dark Regions

(这个地方一般不用)
在这里插入图片描述

根据设置的bright和dark region的范围,对bright和dark区域,要么做一个丢弃,要么做一个权重的重新分配。
一般camera HAL会下发center weighted的配置,tuning参数无法控制。
一张图片会划分成很多个像素格,在这张图片中找到对应的像素点所在的像素格,和它的weight表去做一个乘积,然后得到最终的一个权重,来调整它的亮度

Histogram(重点)

  1. 在初始调试时,首先 ADRC 和dark boost的关闭的。 尤其是前摄,可以不开ADRC,直接用histogram条件亮度。 Dark boost用ISP dgain补的亮度,噪声会很多,去噪会去不掉。在这里插入图片描述
  2. ISP gain 可以根据AE table设置结果,平台来动态计算ISP GAIN的值。
  3. 主要调试下面这6个值。在这里插入图片描述

Safe target
——used to control the luma of main part of image.

1.Safe target的计算:
(1)先计算
Bright_low_target ,Bright_high_target ,Dark_low_target,Dark_high_target
在这里插入图片描述

(2)按照大小排序,取中间两个值作为low_target,hight_target

(3)按照大小排序low_target,hight_target,Reference_Target,取中间值作为safe_target

(4)排序MinTargetAdjRatioreference_Target,MaxTargetAdjRatioreference_Target
和(3)中所得的safe_Target进行比较,选择中间的数值作为最终的safe_Target

2.safe_target调试思路:

Safe target控制图片主要亮度,target越大,画面越亮,但是会受到MaxTargetAdjRatio[1,2],MinTargetAdjRatio[0.6,1]的限制。
AdjRatio=target/luma,AdjRatio会被限制在MaxTargetAdjRatio,MinTargetAdjRatio之间

目的:画面整体变亮

则要Safe target变大,倒过来回退到1中的(4)

因为MinTargetAdjRatio<MaxTargetAdjRatio,
所以有以下三种情况:
Safe_target<MinTargetAdjRatioreference_Target<MaxTargetAdjRatioreference_Target
MinTargetAdjRatioreference_Target<MaxTargetAdjRatioreference_Target<Safe_target
MinTargetAdjRatioreference_Target<Safe_target<MaxTargetAdjRatioreference_Target

最简单直接的方法就是增加中间的那个值:
MinTargetAdjRatioreference_Target,
MaxTargetAdjRatio
reference_Target,
Safe_target

对于前面两种情况,可增加MinTargetAdjRatio,MaxTargetAdjRatio(reference_Target在图片信息中无法修改)
最后这种情况需要回退到1中的(3),根据low_target,safe_target,hight_target的排序中间值,增加对应的
hist_sat_low_ref,hist_sat_high_ref,hist_dark_low_ref,hist_dark_high_ref从而达到增加final_safe_Target的目的。

以上都是基于你调试的中间值没有超过右边的最大值
例子:Safe_target<MinTargetAdjRatioreference_Target<MaxTargetAdjRatioreference_Target
当你增加MinTargetAdjRatioreference_Target的时候,会不会有超过MaxTargetAdjRatioreference_Target的情况发生呢?
答案是必然的

当原本的中间值超过右边的值的时候,右边的值即为最终的safe_target,这就是我们接下来要讲的间接调试。
思路:对于1(4)中的排序,可以增加左边最小值直到最小值超过中间值,从而互换了最小值和中间值的位置
例子:Safe_target<MinTargetAdjRatioreference_Target<MaxTargetAdjRatio*reference_Target
这个时候我们增加Safe_target,直到safe_target大于MinTargetAdjRatio*reference_Target,
这个时候的排序是:MinTargetAdjRatio*reference_Target<Safe_target<MaxTargetAdjRatio*reference_Target
之前的final_safe_target==MinTargetAdjRatio*reference_Target
现在final_safe_target==Safe_target
而Safe_target>MinTargetAdjRatio
reference_Target

所以达到了通过增加safe_target,从而增加整体亮度的目的!

3 总结:
根据1(4)中的公式:
例子:Safe_target<MinTargetAdjRatioreference_Target<MaxTargetAdjRatioreference_Target
要增加亮度:
(1)可以增加中间值(中间值不超过右边最大值的情况下)
(2)增加中间值超过右边最大值(中间值超过右边最大值,从而导致原来的右边最大值取代中间值)
(3)增加左边最小值超过中间值(左边最小值增加后取代原来的中间值)
最终目的都是增加final_safe_target
降低亮度同理!

Short target
——used to suppress the luma of high bright area of image,
and calculate sensor exposure info.Smaller target, less the over-exposure area.

1.Short Target的计算:

short target=safe target

If (adrc_enable==0)

short target==safe target

Else if

Bright_low_Target <Bright_high_Target
Short Target=min(Bright_high_Target ,Safe_Target)
Else if
Bright_low_Target <Bright_high_Target
Bright_low_Target=Bright_high_Target
Short Target=min(Bright_low_Target ,Safe_Target)

Adrcgain1=safe_Target/Max(1,short_Target)
Adrcgain=Min(adrcgain1,Maxdrcgain)
Short_Target=safe_target/Max(1,adrcgain)

2.调试思路:

Short Target主要控制图片中的高光区域,高光压制可以通过降低short target来操作。

目的:高光压制,即降低short target

(1)adrc_enable==0时 short target=safe target
可以通过降低safe target的方法来,具体可以参考safe target上面

(2)adrc_enable!==0

Adrcgain1=safe_Target/Max(1,short_Target)
Adrcgain=Min(adrcgain1,Maxdrcgain)
Short_Target=safe_target/Max(1,adrcgain)

降低safe_target或者提高adrcgain

Bright_high_Target
Bright_low_Target
Safe_Target
选择最小的值作为short_Target

可根据公式直接把最小值调小,当然也可以间接调试另外两个大的,使得比最小值更小(影响较大,不建议间接)

减小hist_sat_low_ref或者hist_sat_high_ref
再然后就是减小safe target了 (看实际情况)

Long target
—— used to control dark boost. Bigger target, less too-dark area.

1.Long Target的计算:

Long_Target=safe_Target

if(Adrc_enable=1&&Dark_boost_enable=1&&Dark_low_target>safe_target&&Adrc_gain<Maxdrcgain)

Long_Target=safe_Target

Else

Darkboost=Min(MaxDarkboostgain,Dark_low_Target/safe_target,MaxDRCgain/adrcgain)

Long target=darkboost*safe_target

2.调试思路:
Long target主要控制图片中的暗部,long target越大,暗处提升越高,作用就是提升暗部。

目的:暗处提升,即增加long target

(1)直接提升safe target
(2)提升darkboost
因为
Darkboost=Min(MaxDarkboostgain,Dark_low_Target/safe_target,MaxDRCgain/adrcgain)
可以根据实际情况DMaxDarkboostgain提高,
或者根据Dark_low_Target/safe_target提高Dark_low_Target,降低safe_target,
或者根据MaxDRCgain/adrcgain提高MaxDRCgain,降低adrcgain

取决于最小值

Short_taget,safe_target,long_target之间的关系
在这里插入图片描述

DRC Gain=Safe/Short(Max DRC Gain 可以控制亮度比例 DRC 越大,short越小,高光压制越强烈,画面越暗)
Dark boost Gain=Long/Safe
Sensitivity Ratio=Long/Short

Extreme color
在这里插入图片描述

Enable Extrm Clr:开关
Thres Luma low:如果Exstrme color区域的亮度小于该值,则该区域是Extrme Color的权重较小。
Thres Luma Hight:如果Exstrme color区域的亮度大于该值,则该区域是Extrme Color的权重较小。

Color stats pct low:每帧图像中极端颜色的最小百分比
Color stats pct hight:每帧图像中极端颜色的最大百分比

Adj_ratio:

极端色改亮度,可以考虑打开extreme color。在主观测试的时候,可以在实验室搭建红绿蓝三色背景布来调整。
在这里插入图片描述

每个lux trigger范围下,都对应三个channel Adj ratio,R/G/B。值越小,压制效果越明显
比如,拍摄绿植,G分量很多,就可以通过减小G分量,来改变它的亮度。还是通过改变target的方式来调整的。

若是extreme color被触发了,则target adjustment中三个参数的值不会都是1。会取个最小值做最终权重的计算。

Lux-based safe target:设置的luma target。

Color-based safe target: 若是触发了extreme color 计算,则得出的基于histogram计算和extreme color计算得出的target。

Three items in extreme percentages and target adjustments: 0: red, 1: green, 2: blue.
Final adjust ratio = min(adjust[0], adjust[1], adjust[2]).
Color-based safe target = lux-based safe target * final adjust ratio = 52 * 0.9981506 = 51.90384(base on this example exif info).
History-base target: 通过histogram计算出来的target。

Final target: 基于按照luma target,histogram target,Color-based safe target顺序,最后算出来的target。

Three items, 0: short, 1: long, 2: safe.
Final targets[i] = histogram-based targets[i] * (color-based safe target / lux-based safe target), i = 0/1/2.

在这里插入图片描述

Flash

在这里插入图片描述

1.Flash一般要修改曝光表,若是对预闪要求很高的情况下。
2.Flash target,若是打开的话,在打开flash打开的情况下,就不会去调luma target,而是调用flash target。
在这里插入图片描述

3.smart flash:3A > AEC > Flash > Flash Mtr > Smart Flash,可以用来调整闪光灯过曝。

在这里插入图片描述

Smart_flash_est_strength:
用于控制 AEC ROI 估算将在多大程度上对焦前景物体,值越大越关注前景。

在这里插入图片描述

左边smart flash0 右边smart flash10

Sat_prevention_Strength:值越大,越防止过曝

在这里插入图片描述

4.FD flash :在开着闪光灯,并且有人脸的时候,会针对人脸重新做个调整。
在这里插入图片描述

enableFDFlash:FD闪光灯开关
LED Face Weight:人脸权重
FD Flash FrameCount :
如果为使 FD 在预闪光期间运行而提供了额外
延迟,调整此参数可控制帧增量大小。需考虑
FD 进程在当前平台上的性能以及扩展预闪光
序列对用户体验的影响程度。

FD Flash LumaTarget:
增大/减小亮度目标可分别使人脸变亮/变暗。

5.Flash lux trigger,闪光灯触发条件,满足条件才会打闪,否则不会打闪。
在这里插入图片描述

6.CCT Tables,[0]:预闪,[1]:主闪。针对预闪和主闪去改电流值,加大的话,会增加功耗。

Face
![在这里插入图片描述](https://img-blog.csdnimg.cn/ee277484a3ef473c8b5983a524aedf78.png

Enable Face ROI:启用人脸区域
Enable lux face target一般不打开,不打开的情况下,主要调试Face weight ,Face size。
在这里插入图片描述

Face Size:人脸区域大小范围 size越大,人脸权重越大,越亮

左边size0.2-0.3 右边size0.8-0.9
在这里插入图片描述

Face Weight:权重越大,画面越亮。

Enable lux face target一般不打开,打开了之后,face会依据lux face target进行划分。
也就是会根据lux index 区间调试ace luma target, Face Weight,Face Size,

在这里插入图片描述

Lux Face luma Target: Enable lux face target打开之后,根据lux face进行triger,face luma target设置,
在这里插入图片描述

Face luma weight lux index trigger:根据lux face进行trigger,weight设置
在这里插入图片描述

Face size weight lux index trigger:根据lux face进行trigger,size设置
在这里插入图片描述

专门针对逆光场景:
Backlit Weight Adj Settings:start越大 画面越亮;Thres Back Lit Luma Ratio:逆光场景调整比率,越大越亮

在这里插入图片描述

  1. 在拍摄视频的时候,忽然遇到人脸,但是很快又灭了,导致人脸会有个震荡。这个时候可以把stat update delay time Enter 加大一些。让人脸保持的时间长一些。

GTM(global tone mapping)

GTM会影响全局的值。GTM一般不动,影响比较大。主要就是调试下面两个框
在这里插入图片描述

LTM(local tone mapping)

LTM也是分为室内,室外,暗处

LTM Strength: LTM 强度,不建议开大,开大的话,副作用很大。
可能会有闪烁,色泽溢出,来回跳变。所以这块强度不建议太大。
Lowlight情况下,开的很大的话,会引起红噪问题。

Dark Boost:提升暗处细节。

Bright Suppress: 抑制高亮,但是通常室外的高亮通过LTM的bright suppress,抑制的力度是很小的。还是要通过ADRC去调试。
在这里插入图片描述

点击region data,Lce Strength可以用来调节黑色字体的对比度。
其他参数基本上是不动的。
LTM需要在histogram调试完毕之后,再调试。

在这里插入图片描述

TMC
在这里插入图片描述

只有当historgram 调试的差不多时候,才会去调试TMC。

HDR:

HDR点检:需要关闭AE高级模块以及关闭 LTM img Process 。如果HDR出问题,首先查看HDR dump,若输入图没有问题,输出图合成有问题,转给算法分析。

HDR合成算法:通过EV- EV0 EV+的顺序合成,用EV-帧压制高光,EV+帧提亮暗处,达成正常的曝光。
在这里插入图片描述

参数EVvalue,EV table。
备注:

1.EV table不需要根据stepsPerEV和minEVValue去计算,保留默认参数即可。

6
-2
2

0.25 0.2806 0.315 0.3536 0.3969 0.4454 0.5 0.5612 0.6299 0.7071 0.7937 0.8909 1 1.1225 1.2599 1.4142 1.5874 1.7818 2 2.2449 2.5198 2.8284 3.1748 3.5636 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

2.EV table需要根据stepsPerEV和minEVValue去计算,计算公式如下:

比如stepsPerEV为6,minEVValue为-4,maxEVValue为4,则EV范围为[EV-24,EV+24]
EVCompTableElements[0]=2(EV-24/6)=2(-24/6)=0.0625。
EVCompTableElements[48]= 2^(24/6)=16
如果EVCompTableElements 的值实际不匹配,会出现HDR拍照完成后预览整体画面暗下来。

ADRC

ADRC可防止图像背景过度曝光,而不会导致整个图像变暗。
使用100%GTM可提升对比度,但是导致褪色,使用100%LTM可导致部分区域对比度下降但色彩效果更佳。
一般GTM 2,LTM 8
在这里插入图片描述

边缘增强可增强边界局部对比度,从而增强图像的清晰度,CPP硬件中的ASF模块使用高通滤波器增强边缘,平滑处理可应用到非纹理区域来抑制噪声。
ASF逻辑模块包含新的ASF结构,其中包括用于检测边缘和实现锐化的独立组件ASF模块使用基于边缘定向的锐化,由四个边缘检测器、四个定向锐化滤波器以及一个对称锐化滤波器,边缘定向结果决定使用哪个锐化滤波。


本文转载自: https://blog.csdn.net/VinagerJoe/article/details/126848224
版权归原作者 Vinegar � 所有, 如有侵权,请联系我们删除。

“保姆级高通AEC9调试指南(看完可解决80%AE相关问题)”的评论:

还没有评论