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参数的理解

  1. 当前环境算出的awb gain1 - target awb gain < tolerance,则将当前环境算出的awb gain1作用于整个画面;

    当算出来的current wb gain处在上图红色标出来的区间,就说明已经收敛好了,此时的current wb gain就会最终WB 需要补的gain

  2. 当前环境算出的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的差异

  1. AWB Analyzer中算出来的Rgain、Bgain是根据白区落点算出来的,那么AE Info中的Rgain、Bgain与AWB Analyzer中算出来的Rgain、Bgain有差异的原因只因为u2WpWeight、LvWeight、PreferR/Bratio、tolerance这4个参数影响的吗?

    是的,但不会完全一致。

  2. 如果bWpWeightEnable参数设为0,LvWeight的值全部为100,PreferR/Bratio的值全部为100,然后tolerance设为1,那么AE Info中的Rgain、Bgain与AWB Analyzer中算出来的Rgain、Bgain是不是应该一致?

    是的,趋于一致


8. log中参数的具体说明

对图中log每个参数的具体作用说明,比如进制,在AWB哪一步生效,对下一步有何影响以及哪些参数是和工具中有关系的。

  1. Wpen =01

    开启wpweight功能;

  2. Wp =03

    说明当前最多的白点在3色温框中,即6500k;

  3. LT[00-09]的count /weight

    亮度环境LV=84的时候,1000k到20000k的白点count数以及weight,此weight是count和lvweight以及过wpweight的结果;

  4. Wpwt[00-09] wpweight /ChkWpWeight

    1000k到20000K的weight 以及过wpweight 之后重新分配的weigh;

  5. DynWt[00-09]

    algo内自建的dynamic weight,一个当前的,一个是目标的。主要是为了smooth过去;

  6. NoFound:00000

    多余,没有实际作用;

  7. Total

    总的count 数;

  8. Speed

    收敛速度;

  9. Conv

    30;

  10. Convout

    62;

  11. 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.

  12. Rg2; Bg2

    没有在用,当初设计是色温框的比较,然后保存第几大的wb gain;

  13. Rg3; Bg3

    额外框的WB gain;

  14. Rg4; Bg4

    AWB_GAIN_MIX_2,只考虑前两大色温框的WB gain;

  15. CurrRg; CurrBg

    当前收敛的wb gain;

  16. ApplyRg; ApplyBg

    收敛稳定后的wb gain;

  17. TRg; TBg

    重新收敛要追的wb gain;

  18. 1st

    第一大落点;

  19. 2nd

    第二大落点;

  20. 3rd

第三大落点;


9. DynamicWeightCurve是怎么影响gain的计算?是在统计落点加权吗?

双色温的计算:

如果wpweightEnable开启来,会根据wpweight重新算出每个色温框的白点count数,然后sorting,找到count数最大的色温框, 以它为中心自建出一个dynamic weight 且这个色温框的权重比其它色温框大很多,权重大,自然拿这个框的点来算WB gain就多,来达到选边站的效果。