AWB
1. 白点数太少¶
当白点的count数小于20的时候,AWB不会重新收敛来计算,补的WBgain是上一次收敛的,知道count数超过20,就会重新收敛计算。
2. AWB analayer中算出来的R gain 和b gain 和tool 中AWB info中的有什么不一样?¶
两种算的地方不一样,AWB info是AWB algo中算出来的(包括一些策略)AWB analayer单纯的是,根据落入色温框中的白点计算出来。
3. 两边算出来的WB gain 以及CT 不一样?¶
因为开了bWpWeightEnable,AWB行为会变,会选边站做AWB,那个是AWB algo算出来的。AWB anlayer那个show出来的是单落点到色温框算出来的。
4. AWB statistics 划分¶
ISP statistics data为128x90,然后进行subsample,演算法取样成32x18,每个block包含4x5个statistics data。
5. 关于AWB模块中tolerance参数的理解¶
-
当前环境算出的awb gain1 - target awb gain < tolerance,则将当前环境算出的awb gain1作用于整个画面;
当算出来的current wb gain处在上图红色标出来的区间,就说明已经收敛好了,此时的current wb gain就会最终WB 需要补的gain
-
当前环境算出的awb gain1 - target awb gain > tolerance,则awb算法基于awb gain1再重新算出一组awb gain2,如果awb gain2 - target awb gain < tolerance,则将当前环境算出的awb gain2作用于整个画面;
是的,这个过程就是收敛的过程。
6. 如何确定当前环境的target awb gain是多少?在工具哪里可以查看?¶
这个是在算法算出来的,然后上一次收敛稳定的wb gain去追它。
7. 关于Rgain、Bgain的差异¶
-
AWB Analyzer中算出来的Rgain、Bgain是根据白区落点算出来的,那么AE Info中的Rgain、Bgain与AWB Analyzer中算出来的Rgain、Bgain有差异的原因只因为u2WpWeight、LvWeight、PreferR/Bratio、tolerance这4个参数影响的吗?
是的,但不会完全一致。
-
如果bWpWeightEnable参数设为0,LvWeight的值全部为100,PreferR/Bratio的值全部为100,然后tolerance设为1,那么AE Info中的Rgain、Bgain与AWB Analyzer中算出来的Rgain、Bgain是不是应该一致?
是的,趋于一致
8. log中参数的具体说明¶
对图中log每个参数的具体作用说明,比如进制,在AWB哪一步生效,对下一步有何影响以及哪些参数是和工具中有关系的。
-
Wpen =01
开启wpweight功能;
-
Wp =03
说明当前最多的白点在3色温框中,即6500k;
-
LT[00-09]的count /weight
亮度环境LV=84的时候,1000k到20000k的白点count数以及weight,此weight是count和lvweight以及过wpweight的结果;
-
Wpwt[00-09] wpweight /ChkWpWeight
1000k到20000K的weight 以及过wpweight 之后重新分配的weigh;
-
DynWt[00-09]
algo内自建的dynamic weight,一个当前的,一个是目标的。主要是为了smooth过去;
-
NoFound:00000
多余,没有实际作用;
-
Total
总的count 数;
-
Speed
收敛速度;
-
Conv
30;
-
Convout
62;
-
Rg1; Bg1
AWB_GAIN_NORMAL时的wb gain,如果不考虑以下条件,此时的wb gain和AWB_GAIN_MIX_2时的WB gain一样。
if( handle->sLightCount[handle->uLightSecond].u4Weight > 0 && handle->uLightFirst > 0 && handle->uLightFirst < (handle->uLightNum - 1) && ( ( handle->uLightThird == (handle->uLightFirst + 1) && handle->uLightSecond == (handle->uLightFirst - 1) ) || ( handle->uLightThird == (handle->uLightFirst - 1) && handle->uLightSecond == (handle->uLightFirst + 1) ) ) )
以上是考虑取前三大,前第一大的在中间位置,且色温框是连续的。比如:色温框 4 ,5, 6,5必须是落点数最大的一个。且4,5,6是连续的色温框。满足条件都的WB gain 就是前三大色温框算出来的wb gain.
-
Rg2; Bg2
没有在用,当初设计是色温框的比较,然后保存第几大的wb gain;
-
Rg3; Bg3
额外框的WB gain;
-
Rg4; Bg4
AWB_GAIN_MIX_2,只考虑前两大色温框的WB gain;
-
CurrRg; CurrBg
当前收敛的wb gain;
-
ApplyRg; ApplyBg
收敛稳定后的wb gain;
-
TRg; TBg
重新收敛要追的wb gain;
-
1st
第一大落点;
-
2nd
第二大落点;
-
3rd
第三大落点;
9. DynamicWeightCurve是怎么影响gain的计算?是在统计落点加权吗?¶
双色温的计算:
如果wpweightEnable开启来,会根据wpweight重新算出每个色温框的白点count数,然后sorting,找到count数最大的色温框, 以它为中心自建出一个dynamic weight 且这个色温框的权重比其它色温框大很多,权重大,自然拿这个框的点来算WB gain就多,来达到选边站的效果。