ISP API Tuning SOP


REVISION HISTORY

Revision No.
Description
Date
1.00 (API Ver 1.0)
  • Initial release
  • 10/26/2022

    1. 概述

    1.1. 模块说明

    ISP模块是对Video source输入的数据进行分析、处理,设定相关视频参数以及进行Camera的调整,以实现黑电平校正、镜头校正、3A、2D/3D降噪、CCM、Gamma等功能。

    1.2. 流程框图

    Figure 1:IQ Tuning – Flow Chart


    2. CALIBRATION

    2.1. OBC

    2.1.1. OBC基本原理

    在CMOS传感器采集信息的过程中,AD芯片的精度可能无法将很微弱的信号的一部分转换出来,因此需要在AD输入之前加上一个固定的偏移量,来让暗部细节完整保留,但是会损失一部分亮部细节。

    OBC模块就是通过校正的方式,来确定这个偏移量的具体值。(返回IQ Tuning Flow Chart)

    2.1.2. RAW图像抓取要求

    如果sensor没有提供OB参数,或者需要更加精确的OB参数,则需要客户进行黑电平校正。校正需要的RAW图像抓取步骤如下:

    1. 将镜头用镜头盖完全遮住,确保镜头不存在漏光现象,如果光圈可变,将设备光圈完全关闭,确保无光线进入。

    2. 需要抓取1X增益和最高倍增益的RAW图像进行校正(注:如果结果差距过大,需要多抓几组校正)。具体方法如下:将AE设置为M_Mode,设置ManualExposure中的SensorGain/ISPGain/US。到AEInfo模块下,查看AE是否写入正确。

    3. 使用API TOOL抓取RAW文件。

      Figure 2:遮黑画面异常范例

    2.1.3. OB校正步骤

    1. Plugin选单选择SStarCalibrationTool → CalibrationOBC

      Figure 3:Plugin选单 → SStarCalibrationTool → CalibrationOBC示意图

    2. 根据抓取的RAW的名字,设定对应的RAW信息

      Figure 4:设定RAW setting示意图

    3. Open Raw Image(注意文件夹名称不要出现中文),勾选Show OBC Table,点击CalOBGain

      Figure 5:CalOBGain示意图

    2.1.4. 校正结果分析

    Figure 6:CalibrationOBC结果示意图

    第0列即为校正结果,可以将结果填写到OB模块中,如果在各个增益下,校正结果差距在±50,即只需校正一组即可。

    2.2. ALSC

    2.2.1. ALSC基本原理

    Shading主要分为两种:Lens Shading 和Color Shading。

    Lens Shading:

    1. 由于镜头的光学特性,sensor边缘区域接收到的光线强度比中心小,造成的中心和四周亮度不均匀的现象(暗角)。

    2. 镜头主光线角度(chief ray angle,CRA)和sensor不匹配,导致sensor边缘区域接收的曝光不足。

    Color Shading:

    1. 由于镜头在边缘区域的入射角度不足,导致色彩偏差现象(色散),一般表现中心和四周颜色不一致。

    2. 由于不同光源或者不同色温的频谱不同,加上IR-cut的影响,导致色彩不均匀。

    所以,某些shading严重的镜头(包括Lens Shading和Color Shading),需要在做AWB之前进行shading校正。(返回IQ Tuning Flow Chart)

    2.2.2. RAW图像抓取要求

    1. 使用DNP灯箱,将镜头正对灯箱平面,保证光照均匀,如果没有DNP灯箱,使用毛玻璃盖住镜头,对准标准灯箱光源也可以。

    2. 设定灯箱亮度,或者调节AE target,画面中心亮度是最高亮度的70%左右(抓取RAW,用imageJ,框选中心部分查看亮度)。

    3. 抓取RAW数据。

    2.2.3. ALSC校正步骤

    1. Plugin选单选择SStarCalibrationTool → CalibrationALSC

      Figure 7:Plugin选单 → SStarCalibrationTool → CalibrationALSC示意图

    2. 根据抓取的RAW的名字,设定对应的RAW信息

      Figure 8:设定RAW setting示意图

    3. Open Raw Image(注意文件夹名称不要出现中文),勾选Show ALSC Table

      Figure 9:勾选Show ALSC Table示意图

    4. 设定对应的OBC参数,以及色温参数

      Figure 10:设定OBC参数与色温参数示意图

    5. 点击GenTable进行校正

    2.2.4. 校正结果分析

    Figure 11:CalibrationALSC结果示意图

    图像表示即为校正结果,选择对应的色温CT/CT Num,点击API Apply进行在线套用,再到ALSC模块,点击read page,将校正参数读到tool,进行保存。

    2.2.5. 注意事项

    记得Apply后,记得到ALSC页面read page,以免校正参数没有保存到。

    2.3. AWB

    2.3.1. AWB基本原理

    AWB校正,即根据sensor在数个标准光源下的白点特征,来计算出真实场景的(R/G、B/G)增益。(返回IQ Tuning Flow Chart)

    2.3.2. AWB校正步骤

    1. 将镜头对准标准灯箱内的灰墙或灰卡(使其占满整个画面)

    2. 设定需要校正的色温(D65/D50/TL84/CWF/U30/A具体根据灯箱情况决定使用)

    3. 确认已校正设定好OBC

    4. AE设定为Auto,调整AE target,让画面不要过曝

    5. Plugin选单选择AwbAnalyzerCombo

      Figure 12:Plugin选单 → AwbAnalyzerCombo示意图

    6. 选择要校正的色温范围,建议是2300K ~ 10000K

      Figure 13:设定色温范围示意图

    7. 拖动小红标或者小蓝表,使得落点全部落在对应的框中,尽量使得整条曲线比较smooth

      Figure 14:AwbAnalyzerCombo界面

    8. 调整多个色温,调整完毕点击Apply To Camera,套用到板端查看效果

    9. 到AWBCTCali模块中read page,再将参数保存

    2.3.3. 注意事项

    校正完,记得多场景测试AWB效果,依法校验调整框的大小,确保在各个环境下的稳定表现。

    2.4. CCM

    2.4.1. CCM基本原理

    CCM校正原理,是根据sensor拍摄各个色温下24色卡的实际颜色信息,再根据目标颜色信息,计算出3X3 CCM矩阵。使得相机输出的颜色表现符合我们的期望。(返回IQ Tuning Flow Chart)

    校正前请务必先决定好gamma,如果要校正成对比机的gamma,请参考Gamma Fitting

    2.4.2. RAW图像抓取要求

    1. 在标准灯箱中,将镜头对准24色卡,确保色卡位于画面中心,并且占整个画面50%~80%

    2. 设定灯箱色温,一般为D65/TL84/A

    3. 调整灯光亮度,或者调整AE target,使得抓取的raw第19格不过曝

    4. 使用apitool抓取raw数据

    2.4.3. CCM校正步骤

    1. Plugin选单选择CCM Analyer

      Figure 15:Plugin选单 → CCM Analyer示意图

    2. 设定对应的Raw信息

      Figure 16:设定RAW setting示意图

    3. Open Source 打开对应的RAW图,点击鼠标左键,拖动框选色块

      Figure 17:CCM Open Source示意图

    4. Open Target 选择目标色卡,在apitool → target_img有提供标准色卡

      Figure 18:CCM Open Target示意图

    5. 调整Component constraint

      Figure 19:CCM 倍率限制示意图

    6. 点击Calculate,进行校正计算

      Figure 20:CCM Calculate示意图

    7. 取消勾选Floating,选择插入的组别,将校正结果套用到机器

      Figure 21:CCM Apply示意图

    2.4.4. 校正结果分析

    Figure 22:CCM校正结果示意图

    黄色框:圆点为标准点,方点为机器落点,可以直观查看哪个颜色误差大小

    蓝色框:校正结果的CCM矩阵

    绿色框:每个色块的色彩误差值,值越小与标准色卡的差距就越小

    2.4.5. 注意事项

    在校正结果不是很理想的情况下,可以手动调整CCM矩阵参数,来达到想要的效果,通常由于镜头以及sensor的关系,有些模块单靠CCM很难完全校正准确,这时候可以选择HSV来细微的调整一些颜色表现。

    2.5. AE Exposure Table 设定

    不同的sensor及lens特性及能力皆不同,预设的AE exposure table 不见得适合目前的module,因此需要去检查,并将其修改为适合目前module的设定。

    2.5.1. 调整界面

    点选左方的AE项目,再点选ExpoTblEntry即可出现AE exposure table调整窗口。

    Figure 23:AE设定接口

    Figure 24:AE Exposure Table

    2.5.2. 参数说明

    NumOfExpoTblEntry:设定AE exposure table的数量。以Figure 23设5为例,AE exposure table就须填入5组设定。

    Table第一字段:镜头光圈值(Fn)x10。例如光圈1.6则填入16。

    Table第二字段:快门(usec)。

    Table第三字段:Total gain(1024 = x1 gain),也就是Sensor gain x ISP gain。

    Table第四字段:Sensor gain(1024 = x1 gain)。

    2.5.3. 设定项目

    1. 确认lens光圈值,将光圈值x10填入第一栏。

    2. 向客人询问maximum gain,填入倒数第一列的第三栏中。

    3. 若不使用ISP gain,直接将第三栏的值复制到第四栏中。

    3. GAMMA FITTING & COLOR CORRECTION

    不同的gamma和color对noise会有不同的影响,而且调整denoise时先套入gamma和color设定会比较方便观察,因此通常会先做gamma和color的调整,即便它们在PRETZEL的pipeline中是在denoise之后。

    3.1. Gamma Fitting

    Color fitting的结果容易受到亮度差异的影响,而亮度差异主要来自AE和gamma,因此在color fitting前务必先做gamma fitting。此步骤主要目的是将调整机台的gamma fit到与对比机的gamma接近。校正前请先确认dynamic range是full range。(返回IQ Tuning Flow Chart)

    3.1.1. 校正环境

    使用OECF chart,让光线均匀打在chart上,拍摄时让chart摆在画面中间,不要占满整个画面,否则容易受到shading的影响。

    Figure 25:拍摄画面范例

    3.1.2. 校正界面

    点选API tool上方Select Plugin,选择Gamma Fitting开启校正接口。

    Figure 26:Gamma Fitting界面

    3.1.3. 校正步骤

    1. 将环境架设好,首先拍摄调整机台与对比机台fitting所需的image。由于曝光会影响亮度,因此gamma fitting要在相同曝光的基准上会比较准确。要得到接近的曝光,最简单的方式就是拍摄时(调整机拍raw,对比机拍jpg)让OECF最亮色块尽量接近255但不要刚好255,因为我们不知道对比机gamma长什么样子,但通常gamma最亮点是不会变的,因此拿它来当基准会比拿其它点当基准要好。

      Figure 27:拍摄source及target画像示意图

    2. 读取source raw data的OECF patch值:

      选择界面工具列的Options,填入正确的raw information及OB (WB不需要设定),完成后选择OK。

      Figure 28:Raw Setting设定接口

      拖曳鼠标来框选OECF,确认每一个patch都有正确落在patch内即完成。

      Figure 29:框选OECF patch范例

    3. 读取target image的OECF patch值:

      和上述步骤相同,差别只是target是读取image档,省略了设定raw information的动作。

    4. 选择fitting的相关设定,取值方式建议使用patch values,fitting的方式建议使用Exponenitial。

      Figure 30:Gamma fitting设定建议

    5. 选择好后点选Match GMA执行gamma fitting,观察fitting出来的curve是否有异常,没有的话点选Save GMA储存gamma curve。最后检查储存出来的gamma curve头尾是在0和1023,若不是,请手动作修改。

      Figure 31:理想gamma curve要smooth且递增

    3.2. Color Correction

    此步骤主要目的是使调整机与对比机的颜色接近,调整主要包含两个部分:第一个也是最主要的部份是color matrix的fitting;另一个为HSV微调的部分,可依需求做局部颜色饱和度与色相的调整。Color matrix与HSV最多可支持16组色温的设定,填参数时务必按照规则,Index0到Index15代表色温由低到高。(返回IQ Tuning Flow Chart)

    3.2.1. CCM调整

    当使用tool将各色温灯源校正完成,需要手动将校正结果填入CCM对应的项目中。

    3.2.1.1. 调整界面

    Figure 32:CCM调整界面

    3.2.1.2. 参数说明

    ISOActEn : 在night mode是否自动将CCM设为unit matrix的开关,若有勾选,当遇到IQMode为Night时会将CCM自动切换为unit matrix。

    CCTthr :色温节点设定,需填入校正CCM时对应的色温值,CCM与HSV要套用哪组设定都会根据此CCTthr来决定,注意index小到大需要按照色温低到高的顺序填入,最多支持16组设定,没用到请设0。

    CCM : 各色温color matrix设定,需根据色温填入对应的color matrix,注意index小到大填入时需要按照色温低到高的顺序填入。新增每个Row的总合,如果不是1024代表有问题,请手动修改CCM。

    SATURATIONbyISO : Color matrix饱和度调整,程式会根据此设定将使用者定义的matrix与unit matrix做内插,值域0~100,设0表示使用unit matrix,设100表示使用使用者自订CCM。此参数是根据gain值做切换。

    3.2.2. HSV调整

    当CCM套入后仍有颜色希望微调,则可使用HSV来达成。HSV会将整个色域平均切成24等分,使用者可依需求调整个等分的色相及饱和度。HSV的参数与CCM相同,都是根据不同色温来做切换,不是根据gain。

    3.2.2.1. 调整界面

    Figure 33:HSV调整界面

    3.2.2.2. 参数说明

    HueLut : 可依需求局部调整色相,值域-64~64,0代表不改变。

    Figure 34:Hue调整界面

    SatLut : 可依需求局部调整饱和度,值域0~255,64代表不改变。

    Figure 35:Sat调整界面

    HueLut_ForUnitCCM : 搭配unit matrix的色相调整,值域-64~64,0代表不改变,参数切换是根据色温。

    SatLut_ForUnitCCM : 搭配unit matrix的色相调整,值域0~255,64代表不改变,参数切换是根据色温。

    GlobalSat :调整整体颜色的饱和度,值域0~255,64代表不改变,参数切换是根据gain。建议降饱和度时利用这里来降对noise level降低较有效,提高饱和度时则利用Saturation API来升比较不会增加noise level。

    3.3. Saturation调整

    根据亮度(Y)及饱和度(UV)做UV的调整,分为adjust uv by y及adjust uv by uv,主要是留一些颜色调整弹性在YUV domain上,且因为亮度与饱和度的独立性,可保持亮度恒定,又达到局部调整饱和度的效果。在传感器用到高曝光值的时候,也可适度降低暗处色躁。亦或根据使用者喜好调高或降低饱和度,使画面看起来更鲜艳或较柔和。(返回IQ Tuning Flow Chart)

    3.3.1. 调整界面

    在左侧菜单选择Saturation,接着在右侧主画面可找到Saturation界面。

    Figure 36:Saturation调整界面

    3.3.2. 参数说明

    Sat.AllStr : 整体饱和度的可变强度数值,值域范围:0 ~ 127(32=1x)

    Sat.ByYsft、Sat.BySsft : 根据Y/UV调整UV的X轴间距可以透过此调整,但有特殊限制:

    节点为2的幂次方并向上相加,例:Sat.ByYsft[5] = {3, 3, 5, 7, 7}

    第一点为0,第二点为0+23,第三点为0+23+23,第四点为0+23+23+25,以此类推

    则X轴间距点为:{0, 8, 16, 48, 176, 255},最后一点超过卡到255

    特殊限制为:X轴前四点总和小于255,最后一点一定要大于等于256

    例:Sat.ByYsft[5] = {8, 0, 0, 0, 0},第一点为0,第二点为0+2^8=256,则违反规则

    Sat.ByYLut、Sat.BySYLut : 节点的数值可以自由决定

    特殊应用:HDR效果开启后,高亮度会过于饱和,以此可以透过Sat.ByYLut/ Sat.BySLut将高亮度/高饱和度的UV向下压,让影像在HDR效果下更显自然。

    Figure 37:Sat.ByYsft[5] & Sat.ByYLut[6]

    Figure 38:Sat.BySsft[5] & Sat.BySLut[6]


    4. DENOISE & EDGE ENHANCEMENNT

    虽然板子连上API tool时会将iqfile中默认参数读回界面,但各IP开关与否并不会显示在接口上,若要完全从头开始调整一颗新sensor的画质,建议先去Enable Control界面bypass除了sharpness和之前调整完毕项目(OB、ALSC、Gamma、Color)以外的功能,了解一下这颗sensor尚未做任何denoise前的状况,例如解像力极限、是否有crosstalk或false color等等,之后再依需求开启对应的功能来调整,避免多余的功能影响画质表现。理论上sharpness也要bypass,但为了方便观察现象,建议还是开着,可先设为以下建议默认值:(高倍gain可把Over/UnderShootGain设小一些,让画面不要太离谱即可)。

    Figure 39:Sharpness建议默认值

    当调整高倍gain时,没有denoise又开sharpness画面会很脏,脏到无法辨识调整参数的效果,建议可在调NR3D前将Y.TF.STR开强,让画面定住,方便调整NR3D前的一些function。调整建议照ISO index顺序调整,此外,为避免参数内插影响判断,建议将AE设为Manual的SV mode,直接给定各节点的gain值来做调整,完整调好一个再跳下一个。调整画质前请将镜头擦干净且确实对到焦,RGB sensor要确认IR cut有盖上。

    4.1. Crosstalk & False Color调整

    调整denoise前先检查是否有fixed pattern、cross talk或false color等现象,有的话先调整,一来是因为这些功能本来就在denoise之前,二来是特殊现象就要用专门的功能才能有效处理,硬用denoise去消除这些现象容易造成画质损失。

    4.1.1. Crosstalk(Green Equal)

    这主要是lens与sensor搭配性的问题,当光线进入sensor上micro lens的角度太大,容易误接收到应该被邻近pixel接收的讯号,导致Gr、Gb差异变大,因此这现象较容易发生在画面角落,或是光线从某个特殊角度进入时。(返回IQ Tuning Flow Chart)

    4.1.1.1. 现象

    Figure 40:Crosstalk造成的迷宫纹现象

    4.1.1.2. 调整界面

    在左侧菜单选择BayerCompemsation,接着在右侧主画面可找到Crosstalk界面。

    Figure 41:Crosstalk调整界面

    4.1.1.3. 参数说明

    Strength : crosstalk强度值,值域0 ~ 31,越大效果越强。

    StrengthByY : 根据亮度调整crosstalk强度值,横轴越右边代表越亮,值域0 ~ 127,越大效果越强。值为64代表不做调整。

    Threshold : crosstalk threshold ratio值,值域0 ~ 255,越大作用范围越大。

    Offset : crosstalk threshold offset值,值域0 ~ 4095,越大作用范围越大。

    4.1.1.4. 调整步骤
    1. 将Offset设为0,Threshold设为128,Strength由0往上升,观察欲消除crosstalk的区域及欲保留的细节区,调整至crosstalk与细节保留都可接受即停止。

    2. 如需微调则再利用Threshold来做微调。

    3. 若暗处还是有很明显的crosstalk,再来拉大Offset。

    举例:CrossTalk Disable/Enable

    4.1.2. False Color

    由于demosaic时未考虑方向或方向判断错误导致错误的颜色产生,容易发生在画面高频区域或edge边缘。

    4.1.2.1. 现象

    画面高频处或edge边缘出现伪色。

    Figure 42:False Color现象

    4.1.2.2. 调整界面

    在左侧菜单选择BayerCompemsation,接着在右侧主画面可找到AntiFalseColor界面。

    Figure 43:False Color调整界面

    4.1.2.3. 参数说明

    FreqThrd : 频域阀值,值域0 ~ 255,越小越容易做false color。

    EdgeScoreThrd: Edge : 阀值,值域0 ~ 255,越大越容易做false color。

    ChromaThrdOfStrengthMax: 最大强度阀值,值域0 ~ 127,越大则moire区域愈容易被降饱和度。

    ChromaThrdOfStrengthMid : 中间强度阀值,值域0 ~ 127,越大则moire区域愈容易被降饱和度。

    ChromaThrdOfStrengthMin : 最小强度阀值,值域0 ~ 127,越大则moire区域愈容易被降饱和度。

    StrengthMid : 中间强度,值域0 ~ 7,越小则饱和度降愈少。

    StrengthMin : 最小强度,值域0 ~ 7,越小则饱和度降愈少。

    Figure 44:False Color Curve示意图

    4.1.2.4. 调整步骤
    IF (freq > FreqThrd && edgeScore < EdgeScoreThrd)
    
        isMoire = TRUE;
    
    ELSE
    
        isMoire = FALSE;
    

    Anti-False Color透过Frequency、Edge Score来分离出位于高频区的False Color,调整上我们可透过先将这两个条件放宽松只调降低的饱和度部分,然后逐步将Frequency、Edge、ChromaThrd三个条件的阀值都找出来。三个阀值都找出来后如效果还不够或副作用太强,我们再针对其中一或两项来修改阀值。

    1. 先将ChromaThrdOfStrengthMax 设最大,FreqThrd 设最小,EdgeScoreThrd设最大,ChromaThrdOfStrengthMid 以及 ChromaThrdOfStrengthMin设最小,此时画面应当是全黑白的。

    2. 将FreqThrd 调大到画面中除False Color 处外其他景物的颜色都基本恢复正常。优先确保能除到FalseColor,其他颜色景物基本正常即可。记下此时的FreqThrd。

    3. 再将FreqThrd设回0,这次改调小EdgeScoreThrd 到其他景物颜色都基本恢复正常,一样优先确保能除到FalseColor,其他颜色景物基本正常即可。记下此时的EdgeScoreThrd。

    4. FreqThrd 维持0,EdgeScoreThrd设回最大;调整ChromaThrdOfStrengthMax减少到其他景物都恢复正常色彩,又刚好可以把False Color 变灰的程度。如无法兼顾则优先确保其他景物的色彩正常。

    5. 调大ChromaThrdOfStrengthMid 让剩余的false Color 颜色变更淡,但一样要优先确保其他景物色彩正常

    6. 调大ChromaThrdOfStrengthMin 再继续处理剩余的false Color

    7. 调整上ChromaThrdOfStrengthMin 应大于ChromaThrdOfStrengthMid,而StrengthMid 应小于StrengthMin

    8. 将FreqThrd与EdgeScoreThrd 填入前面记下的值

    9. 如果周围景物还是能看到副作用,则设大FreqThrd 或设小EdgeScoreThrd来让周围景物恢复正常色彩。

    10. 如果在能去到False Color 的前提下调整FreqThrd或EdgeScoreThrd还是不能完全避开副作用,则FreqThrd 尽量小,EdgeScoreThrd尽量大后,开始调小ChromaThrdOfStrengthMax 或设大ChromaThrdOfStrengthMid 及ChromaThrdOfStrengthMin 直到没有看到副作用或影响程度可接受。

    补充:

    1. 开启FalseColor对较细的紫边稍微有帮助,若FalseColor开到最强紫边仍严重,可以再利用HSV针对紫色色相降低饱和度,但调整时须注意正常紫色物品的饱和度是否过低。

    2. False Color 的调整与Crosstalk 存在高度相依,建议先完成crosstalk 的调整后再进行anti-false color 的调整。

    3. ChromaThrdOfStrengthMax 与 ChromaThrdOfStrengthMid 是针对不同Chroma source 的阀值,所以两者在调整上无相依关系。但ChromaThrdOfStrengthMid 与ChromaThrdOfStrengthMin 则存在相依关系,ChromaThrdOfStrengthMid 设计上应大于ChromaThrdOfStrengthMin。

    4.1.3. PFC (Purple Fringing Compensation)

    4.1.3.1. 现象

    物体边界边缘出现紫色边缘。

    Figure 45:Purple fringing现象

    4.1.3.2. 调整界面

    在左侧菜单选择PFC,接着在右侧主画面可找到PFC界面。

    Figure 46:PFC调整界面

    Figure 47:PFC_EX调整界面

    4.1.3.3. 参数说明

    Strength : 去紫边的强度控制,值域0~255,值越大越强。

    UStrength : 去紫边作用在U channel的强度。值域0~63,值越大越强。

    VStrength : 去紫边作用在V channel的强度。值域0~63,值越大越强。

    StrengthByY : 紫边通常出现在较暗的地方,且周围是高亮区域,所以可针对不同亮度,给予不同去紫边的强度,横轴越右边代表亮度越大。值域0~255,值越大越强。

    FlatProtect : 平坦区的判断,避免大面积的紫色被判断为紫边,而做的保护。值域0~127,值越大越多地方不做PFC。

    SatByY : 高对比区的判断,紫边通常出现在对比较高的区域,所以使用SatByY[0]来判断对比的程度。值域025,值越大,代表侦测到的对比度需超过SatByY[0]才为高对比。SatByY[1]用来判断亮度饱和区的程度。值域025,值越大,代表越亮的地方越不做PFC。

    SarSrcSel : 判断高对比区时,可选用是否做NR的前处理。值域0~1,0代表不做NR,1代表有做NR,建议低照下可开启此功能。

    StrengthByContrast : 针对对比的程度,给予不同强度的PFC,横轴越右边代表对比越强。值域0~63,值越大PFC越强。

    DbgEn : 显示PFC的作用范围。值域0~1,1代表开启。

    GSkipEn : 对G Channel不做FPC的处理,以保护部分边缘损失的问题。值域0~1,1代表开启。

    SatMaskSel : 对比区判断的Mask大小选择。值域0~1,Mask 0范围较小,Mask 1范围较大。

    SatAmpEn : 对比区判断时,勾选此功能,可将增加判断对比度时的精确度。

    StrengthByHue : 根据不同的Hue,给予不同强度的PFC处理。

    4.1.3.4. 调整步骤
    1. 先决定SatAmpEn。

    2. 依据镜头表现,观察紫边的宽度,选择SatMaskSel的大小,若紫边较宽,可先选用较大的mask做补偿。

    3. 观察紫边所处的亮度区域、对比程度、紫边的颜色分布,来调整StrengthByY、SatByY、StrengthByContrast、StrengthByHue。

      i. StrengthByY: 观察紫边产生于哪个亮度下,给予较强的设定,通常较暗的地方,强度较强。

      ii. SatByY, StrengthByContrast: 观察紫边发生于哪种对比下,给予较强的设定,通常对比越高,强度越强。SatByY用来控制下图横轴的落点,StrengthByContrast用来控制下图纵轴。在低照下,对比度判断可能因为躁点而有点误差,可适当放宽SatByY[0],避免躁点被判断为高对比区。

      Figure 48:Contrast、Strength参数示意图

    4. 控制FlatProtect,来确保部分平坦区不会做到PFC的效果。

    5. 调整最终PFC强度,如有特别颜色需求,可分开调整Ustrength, Vstrength的强度。

    4.1.4. DEMOSAIC

    4.1.4.1. 现象

    增加画面解析度的同时减少方向误判与artifacts的产生。

    Figure 49:物体边缘出现的artifacts现象

    Figure 50:高频区方向判断错误

    4.1.4.2. 调整界面

    在左侧菜单选择BayerCompemsation,接着在右侧主画面可找到DeMosaic界面。

    Figure 51:DeMosaic调整界面

    4.1.4.3. 参数说明

    DirectionalThrd : 方向性内差或是无方向性内插的阀值,值域0 ~ 63,越大则愈多小细节模糊。

    EdgeSmoothThrdY : 依据亮度做smooth,值域0 ~ 255,越小则边缘愈不锐利,artifacts愈不易产生。

    EdgeSmoothThrdC : 依据saturation做smooth,值域0 ~ 127,越小则边缘愈不锐利,artifacts愈不易产生。

    4.2. DynamicDP & NRDespike调整

    如同前一节所说,peak noise基本上也算是一种特殊的noise,因此需要利用专门的功能去做消除或减弱的动作。建议在处理一般noise前先处理peak noise,这样可避免硬用其他denoise功能去处理peak noise而造成画质损失。有DynamicDP和NRSpikeNR两种功能可选择,可同时使用。

    4.2.1. DynamicDP (Dynamic Defective Pixel Correction)

    DPC处理peak noise的方式是将该点取代掉,因此效果较为明显。(返回IQ Tuning Flow Chart)

    4.2.1.1. 调整界面

    在左侧菜单选择BayerCompemsation,接着在右侧主画面可找到DynamicDP界面。

    Figure 52:DynamicDP调整界面

    4.2.1.2. 参数说明

    HotPixEn : 去除亮坏点开关。

    HotPixCompSlope : 判断是否为亮peak点的阀值,值域0 ~ 255,越大越不容易判断为亮peak点,越小越容易。

    DarkPixEn : 去除暗坏点开关。

    DarkPixCompSlope : 判断是否为暗peak点的阀值,值域0 ~ 255,越大越不容易判断为暗peak点,越小越容易。

    DPCTH : 本身与周围同通道的threshold,值域0 ~ 255,越大越不容易,越小越容易。

    BlendEn : blending开关。

    DiffLut : 依据DPC的结果和原始值的差异程度来做blending,值域0 ~ 1024,越大越容易取代。

    YLut : 依据亮度程度来做blending,值域0 ~ 1024,越大越容易取代。

    4.2.1.3. 调整步骤
    1. 先判断要开启HotPix或DarkPix。

    2. DPCTH是判断与同通道的差异,与PixCompSlope需同时成立才会进行坏点补偿

    3. 慢慢增加PixCompSlope至peak noise与细节保留都可接受时停止,完成调整。

    4. 开启BlendEn,再依照想混合的程度调整DiffLut和YLut,以挽救细节。

    4.2.2 DynamicDP Cluster

    DynamicDP会依照该点与周围点差异来判断是否为defect,DynamicDP cluster会考虑周围的点也刚好是defect的情况,先将周围的最亮(暗)点排除一些。
    

    4.2.2. DynamicDP Cluster

    DynamicDP会依照该点与周围点差异来判断是否为defect,DynamicDP cluster会考虑周围的点也刚好是defect的情况,先将周围的最亮(暗)点排除一些。

    4.2.2.1. 调整界面

    在左侧菜单选择BayerCompemsation,接着在右侧主画面可找到DynamicDP_Cluster界面。

    Figure 53:DynamicDP_Cluster调整界面

    4.2.2.2. 参数说明

    EdgeMode : Edge mode开关,对周围点换掉0~1点最亮点或最暗点。

    NeiDeltaTh : 周围8点与此8点平均值的差异阀值,会累计差异大于此阀值的各数(count)。

    NeiSmooth : 累计阀值,count小于此阀值会将最亮(暗)点做取代。

    SortEn : Sort mode总开关,将周围点做排序,希望取出最亮(暗)点符合以下条件,最亮(暗)点与次亮(暗)点的差异够大,且次亮(暗)点与第三亮(暗)点的差异够小,代表意思为周围只有一个点很亮(暗),其他点都很相似,所以替换掉该点。最多补偿个数为,周围点换掉02点最亮点和01点最暗点。

    SortRGGBEn : Sort各自channel开关。

    Sort1x3ModeEn : 1x3 mode开关。若与中心相邻两点为最亮点和次亮点,且次亮点和第三亮点差异大于SortLumaTblL,会将最亮两点用第三亮点取代。

    SortLumaTblL : 最亮点和次亮点阀值,可根据亮度调整,大于此值则取代。值设越大,最亮点需超过次亮点越多,才可能把最亮点替换掉,代表判断条件越严格。

    SortLumaTblD : 最暗点和次暗点阀值,可根据亮度调整,大于此值则取代。值设越大,最暗点需超过次暗点越多,才可能把最暗点替换掉,代表判断条件越严格。

    SortLumaTblS : 次亮(暗)点和第三亮(暗)点阀值,可根据亮度调整,小于此值则取代。值设越小,次亮点与第三亮点需越相似,才可能把最亮(暗)点替换掉,代表判断条件越严格。

    4.2.2.3. 调整步骤
    1. 若原有DynamicDP补不掉的defect,可以尝试开启EdgeMode或SortEn,开得越多,越容易补defect,但也更容易破坏细节。

    2. 建议Cluster可以开较宽松,即将抓出多数defect,再依照defect程度做blending。

    4.2.3. NRDeSpike

    NRDeSpike处理peak noise的方式是将该点与邻近点的median拉近,因此只能降弱,无法完全消除。(返回IQ Tuning Flow Chart)

    4.2.3.1. 调整界面

    在左侧菜单选择BayerDenoise,接着在右侧主画面可找到NRDeSpike界面。

    Figure 54:NRDeSpike调整界面

    4.2.3.2. 参数说明

    NRDeSpike同时用三种方式判断depeak的强度,取最弱的来当最终的强度。

    • < CenterNeighbor >

      Strength : CenterNeighbor方式的强度,值域0 ~ 5,越大越强。

      DiffGain : CenterNeighbor方式的Threshold,超过此值depeak强度会设最强,值域0 ~ 255,越小越容易使用最强的depeak强度。

      Figure 55:CenterNeighbor参数示意图

    • <CornerCross>

      Strength : CornerCross方式的强度,值域0 ~ 5,越大越强。

      DiffThd : CornerCross方式的Threshold,小于此值depeak强度会设最强,值域0 ~ 255,越大越容易使用最强 的depeak强度。

      Figure 56:CornerCross参数示意图

    • < MeanStd >

      Strength : MeanStd方式的强度,值域0 ~ 5,越大越强。

      DiffGain : MeanStd方式判断条件中的一个gain值,值域0 ~ 31,越大越容易使该pixel使用最强的depeak强度。

      Figure 57:MeanStd参数示意图

      BlendRatio : 总强度设定,值域0 ~ 15,越大会让peak越不明显。

      BlendLut : 选用median/mean的混合比例,值域0~2047,横轴为中心与周为差异程度,越右边差异越大,纵轴为混合比例,值越大,偏向median设定,值越小,偏向mean设定。

      StrengthByY : 根据不同亮度,给予不同强度,值域0~127,64为不调整,值越小越弱,越大越强。

    4.2.3.3. 调整步骤

    由于是拿三种方法强度最弱的来用,单独调整某个参数不见得可以看到效果,建议依照下面介绍的方式将各方式调到最好状态。

    1. 为了方便观察,先将BlendRatio设15。

    2. 找出各方法的最佳参数,调整某个方法时要将另外两个强度设到最强。

      以调整CenterNeighbor为例:

      1. 将CornerCross及MeanStd开到最强

        Strength.CornerCross = 5

        DiffThd.CornerCross = 255

        Strength.MeanStd = 5

        DiffGain.MeanStd = 31

      2. 将Strength.CenterNeighbor设0,DiffGain.CenterNeighbor由255慢慢下降,直到peak noise与细节维持达到可接受程度即停止。

      3. 调整好的参数另外记下来。

    3. 参考步骤2,将剩下两种方式调整好,之后将各自的最佳参数填回界面。

    4. 将BlendRatio慢慢下降至peak noise与细节可接受程度即完成调整。

    5. 由于Spike与DPC共用source input,所以坏点可能会混入spike的补偿结果上,此时可调整BlendLut,让spike结果偏向median的结果,来避掉坏点。若此问题不会发生,也可偏向mean结果来取得较平滑的结果。

    4.3. NR3D、NRLuma & NRChroma调整

    NR3D的功能强大,除了降低temporal noise之外,还能分别对于静态或动态区域调整NRLuma与Sharpness的强度,因此建议先从NR3D调起,有必要时再开启NRChroma。(返回IQ Tuning Flow Chart)

    4.3.1. NR3D ON

    主要用来降低temporal noise,包含Y & color noise,开强可以有效降低噪声,但side effect就是会出现残影,因此调整方向就是找出一个noise与残影都可接受的平衡点。

    4.3.1.1. 调整界面

    在左侧菜单选择Denoise,接着在右侧主画面可找到NR3D界面。

    Figure 58:NR3D调整界面

    Figure 59:NR3D_EX调整界面

    4.3.1.2. 参数说明

    <Spatial Domain Denoise, SF系列参数>

    请参考NRLuma, NRLuma_Adv, NRChroma, NRChroma_Adv

    <Temporal Domain Denoise, MD, TF系列参数>

    TF.LUT : 主要利用difference与motion信息来决定temporal denoise的强度,difference与motion小很有机会是静态区,反之则很有机会是动态区,值域0 ~ 4095。

    Figure 60:TF.LUT

    MD.Thd : motion阀值控制,值域0 ~ 255。值越大NR3D越强,Motion低于阀值的地方将被判断为静止,建议不要设超过10。

    MD.Gain : motion scale控制,值域0 ~ 10230。值越大motion information越小,NR3D越强。

    MD.ThdByY : motion阀值根据亮度控制,值域0 ~ 255。值越大NR3D越强。

    MD.GainByY : motion scale根据亮度控制,值域0 ~ 255。值越大motion information越小,NR3D越强。可针对特定noise 较强的亮度作加强,或对拖影有疑虑的亮度作减弱。

    TF.Str : NR3D强度,值域0 ~ 64。值越大NR3D越强。

    TF.StrEx : NR3D额外强度,值域0 ~ 64。值越大NR3D越强。

    M2S.LUT : 动态区转静态区NR3D强度控制,值域0 ~ 31。值越大NR3D越弱,NRLuma越强。建议动到静曲线变化不要太陡,否则移动物体和静止区中间过渡区会不自然。

    <Denoise by motion系列参数>

    Y.SF.BlendLUT : 根据motion信息调整NRLuma的强度,值域0 ~ 16。由左至右代表动到静,值越大NRLuma强度越强。

    Y.SF.BlendOffset : 决定写回3DNR参考帧,对于motion的部分,要补偿多少3dnr强度的控制,值域0~16,值越大,补偿的3dnr比例越多。

    <NR3D Alpha Blending Refine系列参数>

    AREn : 根据亮度与motion信息,限制NR3D强度,的开关,值域0 ~ 1。

    ARLumaTh : 当Luma < LumaTh[0],则NR3D强度不变,当Luma > LumaTh[1]时,NR3D强度为0,值域0 ~ 255。

    ARMotTh : 当motion < MotTh[0],则NR3D强度不变,当motion > MotTh[1]时,NR3D强度为0,值域0 ~ 255。

    <NR3D Purple False Color Compensation系列参数>

    当画面有做旋转时,开启此功能,来帮助NR3D判断紫边附近的motion,避免误判为动态而造成3dnr扰动。

    首先会以DiffTh, RatioConf,ContrastTh,来决定紫边的程度,若三种条件都认定为紫边,则可将紫边附近的motion,重新分配为较静止的状态。

    PREn : 辅助NR3D判断紫边的motion开关。

    PRDiffTh : 根据PFC补偿的结果,若该点PFC补偿 > PRDiffTh,则判断为紫边。值域0~4095,值越小,越容易判断为紫边。

    PRRatioConf :判断颜色是否与紫边相似。值域0~16,横轴为颜色相关性,越右边,越相似紫边,纵轴为紫边判断程度,值越大,越容易判断为紫边。

    PRContrastTh : 判断对比程度,高对比时,较有可能出现紫边。值域0~16,该区对比小于ContrastTh1,则不做处理,大于ContrastTh2,则判断为紫边。

    PRMotTh : 若紫边程度高,会以下面设定,来重新决定motion信息,若不为紫边,则motion信息维持不变。设定MotTh1,将此程度以下的motion认为误判信息,所以motion会重新分配为0,代表静止,而大于MotTh2以上,代表正常的motion,则维持不动。

    4.3.1.3. 调整步骤
    1. 首先针对静止画面调整NR3D 强度,降低画面noise跳动的程度。

      • 调整NR3D强度,目标是让画面整体看起来安定。建议TF.Str设63,将MD.Gain增加至画面变安定即停止。若MD.Gain需要设很大才能让画面安定,可以适时增加MD.Thd,但建议不要超过10。
    2. 接着针对物体移动过后区域NR3D强度变化做调整。

      • 主要调整M2S.LUT。M2S.LUT曲线不要设太陡,否则物体移动过后区域由糊到清楚的转换边界会很明显且不自然。

      • 可以基于建议值来做微调,如果比较不希望看见残影则需要设大一点的值,此时物体移动过后区域的NRLuma会越强且维持越久,NR3D越弱,看起来比较扰动;相反的如果希望物体移动后区域清楚一些,能接受一些残影,则将值设小一些,扰动会比较小但可能会有颗粒noise跑出来。

      • 建议值: {24, 18, 11, 8, 7, 7, 6, 6, 6, 5, 5, 5, 5, 4, 4, 4}

    3. 微调移动模糊与noise程度的平衡。

      • 调整Y.SF.BlendLUT,由左至右代表动态区到静态区域。将值慢慢加大至移动模糊与noise程度都能接受的程度。最后一个值建议固定在0才能维持静止画面的细节。建议同时搭配NRLuma的BlendRatio与FilterLevel做调整。

      • 针对移动过后的杂讯,除了根据motion调整NR2D强度外,也可调整Y.SF.BlendOffset,针对motion来补偿一点NR3D,以降低杂讯。且因为只会更新于NR3D的参考帧,所以不会影响到影像画面。

    4. 针对拖影严重的亮度,可利用MD.GainByY做微调。将对应亮度区域的值慢慢下降至拖影与noise都可接受的程度。

    5. 当gain越来越高,移动noise若都只靠NRLuma是不够的,此时可以修改TF.LUT,让曲线下降得更缓慢一些来增加移动区域NR3D的强度,但同时也须考虑拖影变严重的程度。最后一个值不用一定要设0,但若造成移动物体边缘出现粉红色拖影,可透过AREn的功能,限制较亮、较动的NR3D强度,以避免这种拖影发生。

    6. NR3D有一个额外的机制,可以让过完NR3D的结果往当前帧的结果靠近,但同时也会让NR3D的结果变扰动,若需要额外调整,可以使用Dummy_Ex/Dummy1来控制,请参考Dummy_Ex章节详细介绍。

    7. NR3D把motion信息像后级传递的方式,有两种模式,若需要额外调整,可以使用Dummy_Ex/Dummy3来控制,请参考Dummy_Ex章节详细介绍。

    4.3.2. NR3D OFF

    由于有些IC为了节省成本没有DRAM,因此没有NR3D只能使用其他denoise,以下为建议调整方式。

    4.3.2.1. 调整界面

    同4.3.1.1。

    4.3.2.2. 参数说明

    同4.3.1.2。

    4.3.2.3. 调整步骤

    确认Iqfile是使用3dnr off的版本

    3DNR界面中,只能调整spatial domain系列参数,包括 Y.SF.STR。

    NRLuma界面中,建议将Wei开到63(最大值),调整LumaX 和 LumaStrengthByY 。

    Despike调整方法与3DNR on相同。

    若还有需求,可以再调整剩下的denoise,调整方法与3DNR on相同。

    4.3.3. NRLuma

    4.3.3.1. 调整界面

    在左侧菜单选择Denoise,接着在右侧主画面可找到NRLuma界面

    Figure 61:NRLuma调整界面

    4.3.3.2. 参数说明

    Strength : NRLuma最终强度控制,值域0~63,值越大越强。

    GMaskSel : 选择Gaussian Filter size,值域0~1,0代表较小范围,1代表较大范围。

    SpfBlendLut : 使用Gaussian Filter(SPF)&Biliteral Filter做blending,若中心点与周围相似,可选用较多Gaussian结果,以取得较平滑效果,若差异较大,则选用Biliteral结果,以保留细节部分。横轴代表相似程度,越右边越相似,纵轴代表Gaussian blending强度,值域0 ~ 256,值越大blending越多。若要调整Bilteral filter强度,可以使用Dummy/Dummy1来控制,请参考Dummy章节详细介绍。

    4.3.3.3. 调整步骤

    基本上在调整NR3D时应该已经将spatial denoise强度调整到适当强度了,若有需要,可利用NRLuma再做微调即可。

    1. 调整SpfBlendLut来平衡噪声压抑跟细节保留。

    4.3.4. NRLuma_Adv

    4.3.4.1. 调整界面

    在左侧菜单选择Denoise,接着在右侧主画面可找到NRLuma_Adv界面

    Figure 62:NRLuma_Adv调整界面

    4.3.4.2. 参数说明

    DbgEn : 显示NRLuma_Adv所侦测到的Edge强度。

    Strength : NRLuma_Adv最终的强度控制,值域0~255,值越大越强。

    StrengthByY : 针对不同亮度,给予不同NR强度的控制,横轴越右边代表亮度越大。值域0~32,值越大越强,但初始值为0,代表不调整该亮度的强度,所以这边只能把强度作加强的动作。

    StrengthByMot : 针对不同motion,给予不同NR强度的控制,横轴越右边代表motion越小。值域0~32,值越大越强,但初始值为0,代表不调整该亮度的强度,所以这边只能把强度作加强的动作。

    EdgeTh : 控制Edge的判断,横轴越右边代表亮度越大。当Edge小于Th,认为是杂讯部分,做NR处理,超过Th则判断为Edge,Edge越强则NR越弱。值域0~16383,值越大,越不容易判断为Edge。

    EdgeGain : 控制Edge的判断,横轴越右边代表亮度越大。对大于Th的Edge,做Edge强度的控制,Edge越强则NR越弱,值域0~65535,值越大,Edge强度越强。

    StrengthByType : NR内部有两种filter,StrengthByType [0]为保留细节的filter强度,StrengthByType [1]为去躁效果较好,但会伤细节的filter强度,然后依据edge强度,来对这两种filter结果做blending。值越大NR效果越强。

    4.3.4.3. 调整步骤

    主要是针对NR3D与NRLuma的结果,再做微调使用。

    1. 调整EdgeTh, EdgeGain,决定哪些区域是Edge。

    2. StrengthByY, ByMot都先设为0,调整StrengthByType参数,控制Edge区与非Edge区,给予不同程度的NR强度。

    3. 根据不同的亮度,与motion程度,加强NR。

    4.3.5. NRChroma

    压抑画面中颜色的噪声。(返回IQ Tuning Flow Chart)

    4.3.5.1. 调整界面

    在左侧菜单选择Denoise,接着在右侧主画面可找到NRChroma界面。

    Figure 63:NRChroma调整界面

    4.3.5.2. 参数说明

    MatchRatio : 符合比例阀值,愈大愈强,值域0 ~ 31。

    UvTh : U/V 杂讯阀值,愈大愈强,值域0 ~ 256。

    StrengthByCEdge : 依据color edge控制NRChroma强度,愈大愈强,值域0 ~ 511。

    4.3.5.3. 调整步骤
    1. 调整MatchRatio和UvTh,可以观测到color noise会散开,过强会有色彩溢出的现象,调整到可接受的范围。

    2. 降低StrengthByCEdge,进一步压抑有色彩溢出的部分。

    4.3.6. NRChroma_Adv

    压抑画面中颜色的噪声。(返回IQ Tuning Flow Chart)

    4.3.6.1. 调整界面

    在左侧菜单选择Denoise,接着在右侧主画面可找到NRChroma_Adv界面。

    Figure 64:NRChroma_Adv调整界面

    4.3.6.2. 参数说明

    StrengthByY : 针对不同亮度,给予不同NR强度的控制,横轴越右边代表亮度越大。值域0 ~ 255,值越大越强。

    StrengthByYEdge : 使用Luma来侦测Edge程度,针对不同Edge,给予不同NR强度的控制,横轴越右边代表Edge越大。值域0 ~ 63,值越大越强。

    StrengthByCEdge : 使用Chroma来侦测Edge程度,针对不同Edge,给予不同NR强度的控制,横轴越右边代表Edge越大。值域0 ~ 255,值越大越强。

    MaxStrength : 控制Y/C差异小的区域,NR的强度。值域0 ~ 255,值越大越强。

    StaticLimitRatio : 控制静止区域,NR的强度。值域0 ~ 63,值越大越强。

    MotionClip : 针对移动区域,给予更多NR强度。值域0 ~ 255,值越大越强。

    MotionColorReduce : 针对移动区域,可降低饱和度。值域0 ~ 255,值越大饱和度降越多。

    MotionColorRecover : 针对移动区域,可根据MotionColorReduce所降低的饱和度,再把gain乘回来。值域0 ~ 255,值越大饱和度回复越多。

    PreStrength : 针对Chroma先做简单的去躁处理。值域0 ~ 128,值越大越强。

    4.3.6.3. 调整步骤
    1. MotionClip先设定为0。

    2. 观察静态区,调整MaxStrength, StaticLimitRatio,将NR调整到一个可接受的色躁范围。

    3. 观察动态区,调整MotionClip,将移动的部分,基于步骤一的NR强度,做加强的动作,若调整MotionClip程度不够强,可回去步骤一做强度的加强。

    4. 如有需要,可调整MotionColorReduce,针对移动的部分,做饱和度的压抑,这个动作可帮忙NRChroma_Adv更容易的移除色躁。若不希望影像看到移动区的饱和有下降,可调整MotionColorRecover将移动区的饱和再拉回来。

    4.4. Sharpness调整

    可根据不同条件控制锐化强度,例如不同亮度的锐化强度,与画面中心距离的锐化强度,黑边白边的锐化强度等等。(返回IQ Tuning Flow Chart)

    4.4.1. Sharpness

    4.4.1.1. 调整界面

    在左侧菜单选择Sharpness,接着在右侧主画面可找到Sharpness界面。

    Figure 65:Sharpnes调整界面

    Figure 66:Sharpnes_EX调整界面

    4.4.1.2. 参数说明

    OverShootGain : 白边的强度调整,值域0~255,越大强度越强。

    UnderShootGain : 黑边的强度调整,值域0~255,越大强度越强。

    以上两个若是增强太多可能会导致杂讯放大,这时可使用CorLut来抑制OverShootGain和UnderShootGain对于噪点的影响程度,但会损失细节。

    Figure 67:OverShootGain & UnderShootGain

    CorLut : 会根据亮度调整Edge输出。值域0~255,值越大,Edge越弱。

    SclLut : 会根据亮度调整Edge输出。值域0~255,值越大,Edge越强。

    EdgeKillLut : 根据Edge强度分成0255等份,共有六个节点可以调整Edge输出大小,第一格建议为0,避免躁点被Edge加强。值域01023,值越大,Edge越强。

    CornerReduce : 离画面中心点越远,降低锐化效果,镜头越周边,成像画值越差,降低锐化效果可改善边缘噪点设定最角落的sharpness强度,值域0~32,中心强度不会变,而中心到角落中间则会内插出相对应的强度。

    Figure 68:TextureCtrl.CorLUT

    Figure 69:SclLUT

    Figure 70:EdgeCtrl.OverShootGain & EdgeCtrl.UnderShootGain

    Figure 71:CornerReduce

    DirTh : 方向性判断的阀值,大于此阀值,使用有方向性滤波器强化边缘,好处是Edge较连续,坏处是小细节的edge被强化,图像不自然。

    SharpnessUD : 能增强无方向性的细节纹理,可用于提高发丝、草地等细小纹理清晰度,SharpnessUD[0]可针对高频做处理,SharpnessUD[1]可针对低频做处理。值域0~1023,值越大,Edge越强。

    SharpnessD : 可根据边缘方向加强锐化,整体增强图像边缘,但调的太强会导致锯齿状,SharpnessD[0]可针对高频做处理,SharpnessD[1]可针对低频做处理。值域0~1023,值越大,Edge越强。

    PreCorUD : 针对无方向性,做coring处理,PreCorUD[0]针对高频,PreCorUD[1]针对低频。值域0~63,值越大,Edge越弱。

    PreCorD : 针对方向性,做coring处理,PreCorD[0]针对高频,PreCorD[1]针对低频。值域0~63,值越大,Edge越弱。

    PreCorMotGain : 针对移动区域,基于PreCorUD, PreCorD的设定值,做加强coring的动作,值域0~255,值越大,移动区Edge越弱。

    LpfEdgeGainUD : 选择无方向性的高频、低频的输出比例控制,以SharpnessUD, PreCorUD, PreCorMotGain的结果,再做EdgeGain的控制。值域0~255,值越大,低频的强度越强,高频的强度越弱,值越小,低频的强度越弱,高频的强度越强。

    LpfEdgeGainD : 选择方向性的高频、低频的输出比例控制,以SharpnessD, PreCorD, PreCorMotGain的结果,再做EdgeGain的控制。值域0~255,值越大,低频的强度越强,高频的强度越弱,值越小,低频的强度越弱,高频的强度越强。

    WeakDetailEnhance : 针对弱纹理做加强Edge的动作。值域0~255,值越大,Edge越强。

    DetailTh : SharpnessUD阀值,可用于降低平坦区的edge。

    DetailMotOffset : 根据移动程度调整SharpnessUD

    DetailByY : 根据亮度调整SharpnessUD。

    OverShootLimit : 参考周围最亮点做调整,设0则edge上限为周围最亮点的Y值,也就是不会overshoot。

    UnderShootLimit : 参考周围最暗点做调整,设0则edge下限为周围最暗点的Y值,也就是不会undershoot。

    Figure 72:OverShootLimit & UnderShootLimt

    MotionGain : 根据移动程度,调整最终Edge,横轴代表移动程度,越右边代表越静止。值域0~255,值越大,Edge越强,值为128,代表不做调整。

    <Sharpness_EX>

    DbgEn : debug模式,只显示要补偿的edge于画面上。

    DirSel : SharpnessD的方向性判断,值为0代表,以各方向的最大值来代表方向,值为1代表,以简单的抗躁方法,判断出来的方向为主。

    DirOffA : SharpnessD与SharpnessUD,会根据方向的强弱,来决定两边blending的比例,而DirOffA参数,可将SharpnessUD的输出做加强的动作。值域0~255,值越高,非方向性edge越强。

    MaxRatio : 若线段不连续,可先调整DirTh,若帮助不大,再适当提升此参数。值域0~255,值越高, edge越强。

    LpfY : 对于CorLut, SclLut的横轴亮度,做LPF的处理,避免亮度因躁点跳动而使用到不同的Cor, Scl结果。值为0,代表关闭LPF,值为1,代表开启。

    SblLutY : SharpnessD的低频部分,会先经过Sobel滤波来判断强度,而此参数可根据不同亮度,调整不同的强度,横轴代表亮度,越右边代表越亮。值域0~255,值越高,判断到的强度越强。

    Sbl2LutY : SharpnessD的高频部分,会先经过Sobel滤波来判断强度,而此参数可根据不同亮度,调整不同的强度,横轴代表亮度,越右边代表越亮。值域0~255,值越高,判断到的强度越强。

    StrengthByHue : 根据Hue调整Sharpness,可针对特定颜色,加强或减弱edge程度,横轴为Hue,从0度~360度分为24等分,值越大,edge越强,值为64,代表不做调整。

    4.4.1.3. 调整步骤

    若按照前面的建议来调整,一开始的Sharpness初始参数应该维持如下:

    Figure 73:Sharpness建议预设值

    1. 先观察edge强的区域,调整OverShootGain和UnderShootGain至黑白边加强程度可接受即完成。

    2. 调整DirTh,尽量避免连续线段,上到UD方向的edge,而造成线段不连续。

    3. 观察平坦区是否有noise被sharpness加强,有的话可试著将高频与低频的PreCorUD、PreCorD加大来将那些地方排除,但要注意,设越大就代表越多地方加不到edge,也容易造成画面看起来模糊,因此调整同时也要注意是否有该加edge的地方被排除了。如果noise变化不容易观察了话也可以先放大OverShootGain和UnderShootGain到夸张的程度来方便coring的调整,但调整时就不用要求要把noise 100%去干净,因为后面再把OverShootGain和UnderShootGain设回正常值时一些小noise可能就看不到了。压低Edge Lut前面的节点也可以有类似的效果,但相对来说较难调整,除非对Edge Lut很熟,否则不建议调这里。

    4. 观察暗区是否有noise被sharpness加强,有的话可慢慢增加SclLut来压低暗区的Sharpness,抑制noise的产生。

    5. 观察画面角落是否因为ALSC的补正造成noise太大,有的话可降低CornerReduce来降低角落的sharpness强度。

    6. 调整SharpnessUD和SharpnessD来控制无方向与方向性的细节,再调高DetailTh,可以降低平坦区上到很强的SharpnessUD。若有需求,再调整DetailByY。

    7. 若有需要限制overshoot或是undershoot edge,可以调整OverShootLimit和UnderShootLimit。


    5. WDR

    Wide Dynamic Range (WDR)用于增宽动态范围,让同一个影像画面中,可以同时分办出亮部和暗部的细节。


    5.1. WDR

    属于local WDR,区域性的加强影像动态范围,调整WDR时建议使用此项。

    5.1.1. 调整界面

    在左侧菜单选择WDR即会出现WDR界面。

    Figure 74:WDR调整界面

    5.1.2. 参数说明

    BoxNum : 依sensor 长宽比例,提供2~4种size;可依据场景要关注的物体尺度大小进行调整, Box Num 愈多则Box与小,愈适合当画面中关注的物件较小的时候,不可by iso变动。

    PreEnhance : 亮区动态区间比例,值越大,亮区分配到的动态区间越大,值越小,暗区分配到的动态区间越大,值域1 ~ 6,2为默认值。另外新增11 ~ 15,依据2做调整,值越大暗处越亮,但整体越蒙。其他值皆无效。不建议by iso切换不同的曲线,因会导致闪烁问题。若开启GammaSyncEn,则PreEnhance会失效。

    AutoDetailEnhance : 拉亮拉暗处额外的细节加强,1:自动控制、0:手动控制。

    ManualDetailEnhance : 如果AutoDetailEnhance设0,就可手动控制拉亮拉暗处的细节加强程度,值域0 ~ 255,愈大细节加强愈强。

    DarkToneEnhance : 控制Global tone mapping,提供下列16条curve可供选择。数字愈大暗处会额外拉愈亮。(HDR mode中的16组与Linear mode 中的16组并不相同,HDR中06是一种拉亮模式,715之后是第二种拉亮模式)。不建议改iso更换设定,因为Curve切换时可能出现闪烁。替代方案为用固定GlobalDarkToneEnhance curve但可by iso修改WDRStrByY和Strength来达到期望的效果。

    Figure 75:预设的16条Global tone mapping (Linear)

    Figure 76:预设的16条Global tone mapping (HDR)

    WDRStrByY : 依据亮度控制WDR强度,值域0 ~ 255,越大WDR越强。

    Strength : WDR总体强度,值域0 ~ 255,越大WDR越强。

    Dark Limit / Bright Limit : 限制WDR的作用强度,值域0~255,亮暗分别控制。如不希望暗处拉亮太多可设大 DarkLimit 数值,不想亮处压太暗可设大BrightLimit。

    GammaSyncEn : WDR和Gamma连动开关,若disable,则会固定吃第0组Gamma Lut. Gamma/WDR 动态连动可得到较好的WDR效果,但如果有Gamma有by iso 切换时,Gamma变化时可能会出现闪烁,则此时此项建议设为disable。

    5.1.3. 调整步骤

    1. 建议先直接将WDR enable,观察预设效果是否足够。

    2. 如强度太强或太弱,可直接简单调整Strength。

    3. 如较关注的问题为暗处拉亮效果,可再搭配调整DarkToneEnhance。

    4. 其余再针对各别亮度的强度进一步调整WDRStrByY或Dark Limit / Bright Limit。

    5.2. WDRCurve

    用来取代WDR 中的Dark Tone Enhance Curve,提供自己修改曲线的功能。如启用WDRCurve API, 则原WDR API 中Dark Tone Enhance 内建的16组Curve,即失效改由WDRCurveAdv控制。不建议改iso更换设定,因为Curve切换时可能出现闪烁。 替代方案为用固定GlobalDarkToneEnhance curve但可by iso修改WDRStrByY and Strength来达到期望的效果。

    5.2.1. 调整界面

    在左侧菜单选择WDR即会出现WDRCurveAdv接口。

    Figure 77:WDRCuve调整界面

    5.2.2. 参数说明

    由Control专案,调整节点数目,用来产生曲线。

    5.2.3. 调整步骤

    调整曲线,来达到适当的亮暗区分布。


    5.3. Defog

    去雾功能,达到更好多对比感。

    5.3.1. 调整界面

    在左侧菜单点选WDR即会出现Defog接口。

    Figure 78:Defog调整界面

    5.3.2. 参数说明

    Strength : 设定对比度、亮度、灰度的可变强度数值,预设为50。

    5.3.3. 调整步骤

    调整Strength,来达到更好的对比感。


    6. DUMMY

    Dummy API是一个默认的接口,若有新增功能,都会透过此接口,以避免不断新增接口,或是影响原本的结构体。默认值皆为-1,则代表bypass此功能。若有开启Dummy API,保存bin档的时候,务必勾选InFile,方能保存参数。


    6.1. Dummy

    支持by iso调整。

    6.1.1. 调整界面

    在左侧菜单点选Dummy即会出现Dummy界面。

    Figure 79:Dummy调整界面

    6.1.2. 参数说明

    Dummy0 : 目前没作用,预设为-1,值域范围:-1 ~ 255。

    Dummy1 : NRLuma bilateral filter强度,Dummy1[0]为强度,值域范围:0 ~ 7, Dummy1[1~32]为权重表,横轴为与中心点的差异,差异越小则权重越大,值域范围:0 ~ 31。

    Dummy2 : 根据移动程度调整SharpnessUD,和Sharpness DetailMotOffset功能相同,但Sharpness DetailMotOffset只有一个值能调整,其他内部自动内差,而Dummy2能依据不同动静程度分别调整。若Dummy2有开启,则Sharpness DetailMotOffset自动失效,只有Dummy2[0~15]有作用,值域范围:0 ~ 255。

    Dummy3 : 目前没作用,预设为-1,值域范围:-1 ~ 255。

    Dummy4 : 目前没作用,预设为-1,值域范围:-1 ~ 255。


    6.2. Dummy_EX

    不支持by iso调整。

    6.2.1. 调整界面

    在左侧菜单点选Dummy即会出现Dummy_EX界面。

    Figure 80:Dummy_EX调整界面

    6.2.2. 参数说明

    Dummy0 : Shaprness中的EdgeKillLut横轴节点,用2的幂次方垒加,只有Dummy0[0~5] 有作用,值域范围:0 ~ 15。

    Dummy1 : 让过完3DNR的结果往当前帧的结果靠近,Dummy1[0]为开关,值域范围:0 ~ 1, Dummy1[1]为移动最大值,值越小越限制3DNR的结果往当前帧的结果靠近,值域范围:0 ~ 255,Dummy1[2]为移动阀值,若3DNR的结果和当前帧的差距小于此值,则此功能无作用,值域范围:0 ~ 255。

    Dummy2 : 目前没作用,预设为-1,值域范围:-1 ~ 255。

    Dummy3 : 3DNR把motion信息像后级传的方式,0代表直接依据当前帧和参考帧的差异,1代表多一个限制,在动到静的情况下,每帧motion信息至多变化1,也就是motion会变化的较慢,值域范围:0 ~ 1。

    Dummy4 : 目前没作用,预设为-1,值域范围:-1 ~ 255。


    7. TEMPERATURE SETTING

    当chip温度改变,IQ也可以做相对应调整,达到更好的效果。


    7.1. Temperature

    设定温度节点和对应的IQ设定。

    7.1.1. 调整界面

    在左侧菜单点选Temperature即会出现Temperature界面。

    Figure 81:Temperature调整界面

    7.1.2. 参数说明

    TemperatureLut : 温度节点,支持16个节点。

    ObcOffset : OBC偏移量,值越大扣越多,预设为0。

    DynamicDPRatio : DynamicDP强度变化比例,值越大越强,预设为50。

    CrosstalkRatio : Crosstalk强度变化比例,值越大越强,预设为50。

    NRDeSpikeRatio : NRDeSpike强度变化比例,值越大越强,预设为50。

    NR3DRatio : NR3D强度变化比例,依序对应到MD.Thd和MD.Gain,值越大越强,预设为50。

    NRLumaRatio : NRLuma强度变化比例,值越大越强,预设为50。

    SharpnessRatio : Sharpness强度变化比例,依序对应到OverShootGain和UnderShootGain,值越大越锐利,预设为50。

    SaturationRatio : Saturation强度变化比例,值越大越饱和,预设为50。

    ColorToneRatio : ColorTone强度变化比例,依序对应到R/G/B,值越大越饱和,预设为50。


    7.2. Temperature Info

    获取当前chip温度。

    7.2.1. 调整界面

    在左侧菜单点选Temperature即会出现TemperatureInfo界面。

    Figure 82:TemperatureInfo调整界面

    7.2.2. 参数说明

    Temperature :获取当前chip温度,只读。


    8. DAY NIGHT MODE DETECTION

    侦测环境亮度,一般会使用ALS(环境光传感器),根据得到的信息决定目前为Day或Night mode。这边我们提供了不须ALS侦测Day Night mode的功能,让用户可以自定义判断条件,并依据回传信息来做Day Night mode的切换。


    8.1. DayNightDetection

    Day/Night侦测API。使用者可分别设定Day to Night及Night to Day的判断条件,判断结果会在DayNightInfo中显示。

    8.1.1. 调整界面

    在左侧菜单点选Day/Night Mode即会出现DayNightDetection接口。

    Figure 83:DayNightDetection调整界面

    8.1.2. 参数说明

    Enable :功能开关。只有在打开时DayNightInfo的信息才有效。

    D2N_BvThd :用来判断是否要切为Night mode的BV阀值,当Current BV(BV in AEInfo)小于此阀值时,则DayNightInfo中的D2N会秀TRUE。值域:-1048576 ~ 1048576。

    N2D_VsbLtScoreThd :用来判断是否要切为Day mode的Score阀值,Score是由可见光与IR光比例所算出的一个分数,分数越高表示可见光成分越多。当目前Score (N2D_VsbLtScore in DayNightInfo)大于此阀值时,DayNightInfo中的D2N会秀TRUE。值域:0 ~ 2000。


    8.2. DayNightInfo

    显示当前Day Night侦测的结果。要注意此API只是显示侦测结果,用户仍须自行根据侦测结果做对应的动作,例如load Day bin或Night bin,IR灯的控制等等。

    8.2.1. 调整界面

    在左侧菜单点选Day/Night Mode即会出现DayNightInfo接口。

    Figure 84:DayNightDetection调整界面

    8.2.2. 参数说明

    D2N :目前是否需要转为Night mode的flag,秀1时表示目前环境亮度已达要切Night mode标准。注意此flag只有当目前在Day mode的状态下才具有参考意义。

    N2D :目前是否需要转为Day mode的flag,秀1时表示目前环境亮度已达要切Day mode标准。注意此flag只有当目前在Night mode的状态下才具有参考意义。

    N2D_VsbLtScore:显示目前可见光与IR光比例所算出的分数,分数越高代表环境中可见光的比例越高。使用者可以在认为该切回Day mode的环境下读取此值来决定N2D_VsbLtScoreThd该设多少。


    9. NIGHT MODE SETTING

    当环境亮度暗到一定程度,通常会打开IR灯,并将镜头的IR-Cut filter打开来增加进光量,这属于特殊状况,因此有些AE、AWB及IQ设定需要配合修改。由于有打IR灯,尽管是night mode也有可能使用到很低的gain值,因此不建议day mode与night mode共用同一个bin档,单靠ISO index值来区分,建议是day mode与night mode分开存成两个bin档,当系统判断要切换mode时再去load对应的bin档,下面会介绍当进入night mode时建议的一些对应设定来降低noise level。


    9.1. ColorToGray

    当IR-Cut filter打开颜色会变异常,因此通常会将画面由彩色转为灰阶。

    9.1.1. 调整界面

    在左侧菜单选择ColorToGray即会出现ColorToGray界面。

    Figure 85:ColorToGray调整界面

    9.1.2. 参数说明

    Enable :彩转灰功能开关。


    10. RGBIR SENSOR TUNING

    RGBIR senor 是一种特殊的sensor 型态,相较于一般的RGB Bayer sensor 多出IR pixel 用于感应红外光。而结构上少掉一般的IR Cut 而是搭配Dual Band filter在后端用软体来进行减IR的动作。所以如何设定减IR的比例来使影像达到和搭配IR Cut 时相同的正常色彩即是本段所要讨论的课题。


    10.1. RGBIR Ratio调整

    10.1.1. 调整界面

    在左侧菜单选择RGBIR即会出现RGBIR界面。

    Figure 86:RGBIR调整界面

    10.1.2. 参数说明

    IrPosType : 改变R,G,B,IR四种pixel在sensor上排列顺序的设定,值域0 ~ 7。

    RemovelEn : 启动软体减IR的功能

    Ratio_R : R通道减IR的比例表(由暗到亮),值域0 ~ 4095。

    Ratio_G : G通道减IR的比例表(由暗到亮),值域0 ~ 4095。

    Ratio_B : B通道减IR的比例表(由暗到亮),值域0 ~ 4095。

    10.1.3. 调整步骤

    1. RGBIR 的ratio 与OB 有连动,调整前请先校正OB

    2. 统一将Ratio_R, Ratio_G, Ratio_B的最后一个值设到64, 然后其余的值全部填4095, 观察一下此时的画面,如果颜色有偏差则在进行下一步(调整时建议拍摄24色Color Checker,可同时观察下方灰阶区是否有色偏,及上方颜色是否正确)

    3. 调整过程我们都保持Ratio table 的最后一个值为64不动,因为这是为了避免过曝区亮度反而下降或跑出异常色彩的控制参数,不属于正常感光区间的调整范围。

    4. 保持Ratio_R,Ratio_B的设定,调降Ratio_G的设定到2000(table由左至右都设相同的值2000,除了最后一个值不动一直维持64之外),此时画面应该会偏绿。

    5. 逐步调高Ratio_G的值,直到画面中灰阶的区域不再偏绿。

    6. 将Ratio_B设到2000, 此时画面会偏蓝,参照Ratio_G的作法,逐步调高Ratio_B的值到画面中灰阶的区域不偏蓝。

    7. 同Ratio_G及Ratio_B的做法,先降低数值然后再逐步调高,最后尽可能让颜色正确,灰阶不偏色。

    8. 如果有感觉特定颜色特定亮度存在色偏,则再去依照table由左至右依序为由暗到亮的控制规则,去调整特定亮度的raito。


    11. AE INTRODUCTION

    AE的目的在于透过收到的统计值将画面整体亮度控制在一个理想的状态。(返回IQ Tuning Flow Chart)


    11.1. AE调整

    11.1.1. 调整界面

    在左侧菜单选择AE即会出现AE调整界面。

    11.1.2. 参数说明

    • <AEState>

      AE State : AE状态控制选项,选择Normal AE会正常运作,选择Pause AE则会暂停在当时的状态,直到再次切回Normal才会继续运作。

    • <ManualExposure>

      FNx10 : 光圈值(F number) × 10 (ex: F1.8 18)。

      SensorGain : Sensor增益 (1024 = 1x) 。

      ISPGain : ISP数位增益 (1024 = 1x) 。

      US : 快门时间,单位为μs。

    • <AEConverge>

      ConvThdIn : 内收敛区间。当AE动作处于收敛过程中时,会将画面收敛到target +-内收敛区间范围内才停止。

      ConvThdOut : 外收敛区间。AE从稳态到再次开始进行收敛动作的启动门槛 (当前亮度在target +-外收敛区间的范围外)。

      ConvSpeedX : 收敛速度表X轴,对应到当前Cur Y的亮度。由左到右分别对应暗到亮,中间两隔底层会自动对应到当前AE target的位置,所以这两格不需要修改,预设是470。头尾两格默认是0以及2000。

      ConvSpeedY : 收敛速度表的Y轴。Cur Y对应到X轴后再找出对应的Y轴的收敛速度(比例)[0 ~ 1024],如果设置的数字过小则会感到AE反应速度缓慢甚至无法收敛,设得过大则亮度变化迅速,但从视频上看来会感觉有亮度闪烁的现象。

    • <AEStabilizer>

      此功能可降低AE受画面局部变化的影响而被触发,让画面亮度更稳定。

      Enable : 此功能开关。

      DiffThd : 判断目前画面与参考画面是否有变化的阀值,Y差异超过此阀值则判为有变化,小于此阀值则当作无变化。值域0~20(精度8bits),建议值为2。不建议设定太大,容易导致光线渐亮渐暗的情况下不够连续。

      Percent : 画面比例阀值,当AE在收敛的状况下,画面中被判断为有变化区域占全画面的比例小于此值,则AE维持不变。值域0~100,预设值为50。

    • <AEPlainTbl>

      NumOfExpoTblEntry : 曝光行程表的列(row)数。

      ExpoTblEntry : 曝光行程表。由左至右分别设置光圈(FNx10),快门(us),total gain,sensor gain,由上至下分别为由亮至暗。

    • <AEWinWeight>

      Weighting PAGEle ID:测光权重表ID。默认支持三种权重表:Average、Center、Spot。

      WindowWeighting :测光权重表。

    • <AELumaWeight>

      此功能适用调整AE受画面局部亮度的权重,让画面目标亮度有更佳适应性。

      Enable : 此功能开关。

      Luma Wgt Points Num : 亮度权重表的节点个数,值域:1 ~ 16。

      Luma Wgt : 设定亮度的权重。根据AE统计值MxN的亮度设定相对应权重,M x N = 16 x 16,值域:0 ~ 256,1x = 256。

      Wgt By Luma(x10) : 设定亮度数值(x10)的节点,值域:0 ~ 2550。

      SatCnt Points Num : 亮度饱和权重表的节点个数,值域:1 ~ 16。

      SatCnt Wgt : 设定Saturate Count的权重。根据AE统计值-MxN的亮度大于SatCnt Threshold数量设定相对应权重,M x N = 16 x 16,值域:0 ~ 256,1x = 256。

      Wgt By SatCnt : 设定Saturate Count数量的节点,值域:0 ~ 256。

      SatCnt Threshold : 设定Saturate count的阀值,当此数值调整越大表示亮区权重下降,值域:0 ~ 2550。

      建议使用步骤:

      1. 根据亮度区间(Luma Wgt)节点设定不同的Weight。

      2. 根据Saturate Count数量(SatCnt Wgt)节点给予不同的Weight。

      3. 调整SatCnt Threshold,决定多少亮度区域是要被列入SatCnt Threshold计数数值,当SatCnt Threshold计数数值越多表示权重要降低,反之权重则维持一倍。

    • <ExposureStrategy>

      此区作用为搭配AE target的设定,于浮动target时调整浮动target计算时在防过曝上的敏感度与强度

      Strategy : 曝光策略,可选择 AUTO/暗阶优先(低光补偿)/亮阶优先(强光抑制)。

      Weighting : 暗阶优先与亮阶优先的变化强度,weighting愈大愈强。

      UpperNum : 向上浮动target的节点个数。

      UpperY : 向上浮动的范围,如设0则等于关闭浮动target,将完全参考上面设的Target Offset 设定。

      UpperX : 向上浮动范围对应BV的节点。

      LowerNum : 向下浮动target的节点个数。

      LowerY : 向下浮动的范围,如设0则等于关闭浮动target,将完全参考上面设的Target Offset 设定。

      LowerX : 下浮动范围对应BV的节点。

      Strength : 浮动target时防过曝机制的敏感度,数字愈大愈敏感(拉暗)。

      Sensitivity : 浮动target时防过曝机制作用的强度,数字愈大愈暗。

      Note:浮动target为参考影像Histogram变化后自动计算的target。

    • <ExposureStrategyEx>

      新版曝光策略设定,可自行设计防过曝或过暗策略,AE会针对此策略去动态调整SceneTarget。

      Enable : 曝光策略开关,开启时ExposureStrategy会失效。

      Mode : 曝光策略模式,有Count Mode与Target Mode可做选择。

      选择Count Mode时,主要使用BT(DT)_ThdY以及BT(DT)_Percentx10。使用者可以指定在多少亮度以上(以下)的统计值占统计值总数量大约多少千分比。

      选择Target Mode时,主要使用BT(DT)_Percentx10及BT(DT)_Taergetx10。使用者可以指定最亮(最暗)多少千分比的统计值平均亮度要接近多少亮度。

      Priority : 曝光策略优先权设定,可选择暗阶优先(过暗抑制)/亮阶优先(过曝抑制)/HDR_Auto(自动模式)。批注:当切至HDR_Auto时,除了BT/DT相关参数设定外,可透过AEStrategyExAdv的参数微调。

      Figure 87:AE StrategyEx Count Mode & Bright Priority

      Figure 88:AE StrategyEx Target Mode & Bright Priority

      BT_NodeNum : Bright Tone相关参数的节点个数。

      BT_NodeBV : Bright Tone节点对应BV设定。

      BT_ThdY : Bright Tone亮度阀值设定,值域0 ~ 255。仅在Count Mode有用。

      BT_Percentx10 : Bright Tone千分比设定,值域0 ~ 1000。在Count Mode及Target Mode都有用。

      BT_TargetYx10 : Bright Tone目标平均亮度设定,值域0 ~ 2550。仅在Target Mode有用。

      BT_MaxOffsetDown : AE target向下浮动的范围,值域0 ~ 2550。如设0则等于关闭浮动target,将完全参考上面设的Target Offset设定。

      DT_NodeNum : Dark Tone相关参数的节点个数。

      DT_NodeBV : Dark Tone节点对应BV设定。

      DT_ ThdY : Dark Tone亮度阀值设定,值域0 ~ 255。仅在Count Mode有用。

      DT_ Percentx10 : Dark Tone千分比设定,值域0 ~ 1000。在Count Mode及Target Mode都有用。

      DT_ TargetYx10 : Dark Tone目标平均亮度设定,值域0 ~ 2550。仅在Target Mode有用。

      DT_ MaxOffsetUp : AE target向上浮动的范围,值域0 ~ 2550。如设0则等于关闭浮动target,将完全参考上面设的Target Offset设定。

      Figure 89:All LUTs share the same NodeNum & NodeBV

    • <ExposureStrategyExAdv>

      HDR Strength Weight 1 :调整暗阶优先或亮阶优先的权重数值,值域0~1024。

      当小于512时,值越小越偏重于亮阶优先(Bright Tone Priority)

      当大于512时,值越大越偏重于暗阶优先(Dark Tone Priority)

      HDR Strength Weight 2 :调整AE Target的权重数值,值域0~1024。

      当值等于0时,即AE Target权重无效,则画面亮度依照Weight1结果为主。

      当值大于0时,即AE Target权重越大,则画面亮度接近AE Target。

      建议使用步骤:

      1. 室外场景调整建议:若使用者希望整体户外降低亮度,可先调整HDR Strength weight 1 / 2 = 0 / 0的极限值,接着按照下列步骤调整:

        ExposureStrategyEx – DT Target(调小)/ Percent(调大),暗阶优先的权重比例降低(接近DT Target)

        ExposureStrategyEx – BT Target(调小)/ Percent(不变或略调小),亮阶优先的权重比例降低(降低亮度)

      2. 室内场景调整建议:若使用者预期提升整体室内亮度,可先调整HDR Strength weight 1 / 2 = 1024 / 0的极限值,接着按照下列步骤调整:

        ExposureStrategyEx – BT Target(调大)/ Percent(不变),亮阶优先的权重比例提升(接近BT Target)

        ExposureStrategyEx – DT Target(调大)/ Percent(不变或略调小),暗阶优先的权重比例提升(提升亮度)

      3. ExposureStrategyEx – DT/BT Target & Percentage决定好后,使用者最后可再透过HDR Strength weight 1 / 2调整喜好。

        建议用不同环境亮度(by BV)给予不同的目标亮度达到预期效果,也可保留用户调整弹性、喜好。

    • <AEStrategyExInfo>

      GMBlendRatio :Adaptive Gamma与一般Gamma(Gamma页面的Gamma设定)的混合比例,值域0~1024。根据最终SceneTarget、TargetOffset及最大BT_MaxOffsetDown、DT_MaxOffsetUp计算得来。当ratio小于512,则拿BTGamma与一般Gamma做混和,当ratio大于512,则拿DTGamma与一般Gamma做混和,当ratio等于512,则直接使用一般Gamma。请参考下图。

      Figure 90:How GNBlendRatio and AdaptiveGamma work

      UpperLimitTargetYx10 :目前AE target浮动上限。

      LowerLimitTargetYx10 :目前AE target浮动下限。

      BTCntPcentx10 :目前大于BT_ThdY的统计值数量占总统计值数量的千分比。

      DTCntPcentx10 :目前小于DT_ThdY的统计值数量占总统计值数量的千分比。

      BTYx10 :目前最亮前BT_Percentx10千分比统计值的平均亮度。

      DTYx10 :目前最暗前DT_Percentx10千分比统计值的平均亮度。

    • <AdaptiveGamma>

      此功能需搭配StrategyEx,让Gamma可以根据SceneTarget做动态的调整,以达到增加动态范围的效果。

      Enable : 此功能开关,关闭时直接使用一般Gamma。

      BTGamma : 当GMBlendRatio小于512,会根据GMBlendRatio来将BTGamma与一般Gamma做混和。

      DTGamma : 当GMBlendRatio大于512,会根据GMBlendRatio来将DTGamma与一般Gamma做混和。

    • <ExposureMode>

      Exposure Mode : AE状态控制选项,选择Auto为全自动曝光,AV_Mode为光圈先决,SV_Mode为增益先决,TV_Mode为快门先决,M_Mode为全手动。

    • <AETarget>

      Target Points Num : AE target 设置的节点个数(随不同环境亮度值(BV)提供设置不同的AE target) 。

      Target Offset : 各节点的AE target。

      Target BV : 各节点对应的BV值。

    • <EVComp>

      EVComp : +- ev 亮度补偿功能的分母。

      Grad : +- ev 亮度补偿功能的分子。

    • <ExposureLimit>

      MinShutter : 最小快门时间。

      MaxShutter : 最大快门时间。

      MinFNx10 : 最小光圈值(数字愈大光圈愈小) 。

      MaxFNx10 : 最大光圈值。

      MinSensorGain : 最小sensor增益。

      MinISPGain : 最小ISP数位增益。

      MaxSensorgain : 最大sensor增益。

      MaxISPGain : 最大ISP数位增益。

    • <Flicker>

      Flicker : 对应特定频率的抗闪设置。可选择Disable、50Hz、60Hz、Auto。

    • <FlickerEx>

      Enable : 启动/关闭新版侦测抗闪烁功能。当开启新版时,旧版就会失效。

      OpType : 侦测抗闪烁的工作模式,分别为Auto、Manual模式可选择。设为Auto时当侦测到需要切换Flicker模式 时,会自动切换。建议使用Auto。

      AmpSensitivity : 调整侦测抗闪烁的灵敏程度(数值愈大愈灵敏),值域范围1~100,建议默认值为70。

      ScoreThd : Auto模式下是否触发自动切换FlickerType的阀值,若Score小于此阀值,ValidTimes会加1,若大于此阀值,ValidTimes会被重置为0。值域范围1~100,建议设为50。

      RefreshCycles : 调整侦测抗闪烁计算分数之更新速率,此参数代表几个cycle更新一次Score,一个cycle通常约在4~7个frame。值域范围1 ~ 10,值越大Score越可靠,但花的时间越久,建议默认值为3。

      ValidTimesThd : Auto模式下,当ValidTimes到达ValidTimesThd,则算法会自动切换到另一个Flicker模式。值域范围1 ~ 10,值越大越不容易误判,但花的时间越久,建议默认值为2。

      Flicker : 侦测抗闪烁模式,模式分别为60Hz = 0、50Hz = 1。

    • <FlickerInfo>

      IsEffective : 取得当前侦测抗闪烁是否有效(1:有效值,0:无效值)。

      FlickerType : 取得当前侦测抗闪烁模式,模式分别为60Hz = 0、50Hz = 1。

      Score : 取得当前侦测抗闪烁有效模式的程度分数。如果分数较高,则判断为当前的抗闪烁速率模式。如果分数较低,则判断为另一种抗闪烁速率模式。

    • <RGBIR AE>

      Enable : 启动/关闭RGBIR AE。

      MaxYWithIR : 减IR前的亮区平均亮度容许之最大值。

      MinISPGainCompRatio : 透过ISP gain来进行raw亮度补偿的最大比例,数字愈小补偿的程度愈大。

    • <DebugLev>

      AE Debug Level : 设定AE Debug log的输出设定(0:disable、1:Exposure、2:Algo parameters、4:Algo statistics、32:API debug、64:Exposure-2)。

    • <AE HDR Ratio> – HDR mode only

      AE HDR Poionts Num : 设置HDR长短曝比例变化的节点个数。

      HDR Ratio : 设置HDR长短曝的曝光比例(1024 = 1x)。

      By Total Gain : HDR曝光比例依总增益变化的总增益横轴,建议使用默认值(默认值:1024, 2048, 4096, 8192...)。

      备注:此功能将于APIVer 1.13移除,其变量整合至< AE HDR Dynamic Ratio >数据结构内

    • <AEPlainShortTbl> – HDR mode only

      NumOfExpoTblEntry : 短曝光曝光行程表的列(row)数。

      ExpoTblEntry : 曝光行程表。由左至右分别设置光圈(FNx10)、快门(μs)、total gain、sensor gain,由上至下分别为由亮至暗。

    • <ManualShortExposure> – HDR mode only

      FNx10 :光圈值(F number) × 10(ex:F1.8 à 18)。

      SensorGain :Sensor增益(1024 = 1x)。

      ISPGain :ISP数位增益(1024 = 1x)。

      US :快门时间,单位为μs。

    • <AE HDR Dynamic Ratio>

      此功能Auto mode仅支援HDR mode, Linear mode则需设为Manual mode

      OpType : 设定HDR动态范围的工作模式,分别为Auto、Manual模式可选择。若设为Auto,则根据场景自动分析HDR动态范围数值。

      AE HDR Poionts Num : 设置HDR长、短曝比例变化的节点个数。(Manual mode only)

      HDR Ratio : 设置HDR长、短曝的曝光比例(1024 = 1x)。(Manual mode only)

      By Total Gain : HDR曝光比例依总增益变化的总增益横轴,建议使用默认值(默认值:1024, 2048, 4096, 8192...)。(Manual mode only)

      ExpoRatioSpeed : 设定HDR动态范围的收敛平滑速度,值域范围:1 ~ 1024。(Auto mode only)

      ExpoRatioTolerance : 设定HDR动态范围的收敛容许值,值域范围:0 ~ 1024。(Auto mode only)

      ExpoRatioMin : 设定HDR动态范围的最小值,值域范围:1024 ~ 65535。(Auto mode only)

      ExpoRatioMax : 设定HDR动态范围的最大值,值域范围:1024 ~ 65535。(Auto mode only)

      OpTypeShortExpoTab : 设定短曝曝光最大值的工作模式,分别为Auto、Manual模式可选择。若设为Auto,则短曝曝光最大值会根据sensor driver - short shutter max填入。

      ShortShutterMax : 当enOpTypeShortExpTab等于手动模式,则透过此参数设定短曝曝光最大值。

    • <AE HDR Dynamic Ratio Info>

      Exposure Ratio : 读取当前的HDR动态范围数值。

      IsChange : 读取当前的HDR动态范围是否改变状态,0:未改变状态、1:改变状态。


    12. AWB INTRODUCTION

    由于sensor上R、G、B pixel的感光特性不同,因此在不同光源下看到的灰阶会有色偏,AWB主要的目的就是希望自动找出一组Rgain、Bgain来做补偿,让画面中灰阶的地方R、G、B值尽量接近。(返回IQ Tuning Flow Chart)

    12.1. AWB调整

    AWB的统计值是将整张画面切成128×90个等分,每个等分都具有代表的R、G、B值,预设横轴有做取样来减少运算量,因此实际只有64×90个统计值。如果想查看某个场景的统计信息,可以开启AWB Analyzer插件,点击Update可更新为当时的统计信息,图表横周轴代表(R/G)×100,纵轴代表(B/G)×100,因此每个区块都能以本身的R、G、B值算出一组坐标,并将落点以绿点秀在窗口上,如Figure 91所示。

    Figure 91:利用AWB Analyzer分析统计信息

    12.1.1. 调整界面

    于左侧选单点选AWB即会出现AWB调整界面。

    Figure 92:AWB基本调整接口

    Figure 93:AWB Advance Mode调整界面

    Figure 94:AWB混光色偏校正设定接口

    Figure 95:CTMWB设定接口

    Figure 96:AWB Stabilizer设定接口

    Figure 97:AWB SpecialCase设定接口

    Figure 98:AWB StatisFilter设定接口

    12.1.2. 参数说明

    • <WBAttr>

      建议整参数

      AwbState : AWB状态控制选项,选择Normal时,AWB会正常运作,选择Pause时,AWB则会暂停在当时的状态,直到再次切回Normal才会继续运作。

      AwbMode : WB状态控制选项,选择Auto为AWB,选择Manual为MWB。

      sManual.R/GR/GB/Bgain : 当AwbMode选择Manual时,会直接套用这四个gain值,值域0 ~ 8191(1024为1倍)。

      Speed : AWB收敛速度控制,值域1 ~ 100,值越大越快收敛,预设为20。

      ConvInThd : 收敛区间大小控制,值域0 ~ 255,值越大越容易收敛,但容易与目标差距较大,设太小容易让AWB不稳定,预设建议值为32。

      ConvOutThd : 从收敛状态跳出重算白平衡的阀值控制,值域0 ~ 255,不建议设太大,否则当灯源有些变化时白平衡无法重新计算会导致色偏,预设建议值为64。

      eAlgType : 白平衡算法模式选择,共有以下四种模式:

      1. GrayWorld:以所有统计值来计算WB gain。

      2. Normal:以落点数最高的2 ~ 3个色温框内的统计值来计算WB gain。

      3. Balance:以所有落入有效色温框的统计值来计算WB gain。

      4. Focus WB gain计算会偏向单一色温为主。

      eAdvType : WBAttrEx功能开关,选择Advance时WBAttrEx才有作用,预设为Default不使用WBAttrEx。

      RG/BG Strength : R与B的一个global gain,会在最后算出来的R、B gain再乘上一个gain,值域0 ~ 255,128为1倍。

      MaxRgain/MaxBgain : 高色温R、B gain限制,值域0 ~ 8191。

      MinRgain/MinBgain : 低色温R、B gain限制,值域0 ~ 8191。

      LvWeight : 各环境亮度下色温权重设定,权重越大,计算R、B gain时该色温所占的比例越高,值域1~255。

      PreferR/Bratio : 各环境亮度下R、B ratio设定,此ratio会乘在目标R、B gain里,值域1 ~ 255。

      u2WpWeight : 判断成为参考白点的权重,权重越高越容易被选为参考白点,值域1~400,预设为100。

      Figure 99:bWpWeightEnable开关效果差异(左:开 / 右:关)

      WeightWin : 将画面区分为9x9个区域,可以分别给定每个区域的权重,权重越大白平衡越会偏向将该区域做灰。值域0 ~ 16。权重大小是相对的不是绝对的,也就是全部设1与全部设16基本上是相同的。当镜头是固定的,而且很明确知道画面中哪个区域是你希望拿来做白平衡或不希望做白平衡的,就可以利用此功能做调整。

    • <WBAttrEx>

      WBAttrEx系列参数需要在eAlgType设为Advance时才有作用,主要是让使用者可另外自定义几个特殊框,并选择是要加入还是排除落入这个特殊框的统计值,共有4组设定可供使用。

      ExtraLtEnable : 特殊色温框功能开关,需设为Enable特殊色温框才有作用。

      sLtInfo.WR/Bgain : 特殊色温框中心坐标所代表的R、B gain,值域0 ~ 8191,换算方式是开启AWB Analyzer分析统计值落点,将指针移到欲选择区域的中心查看坐标,假设Rx = 40、By = 60,先将坐标除以100(0.4, 0.6),再取倒数(1/0.4, 1/0.6),最后再乘上gain base 1024(WRgain = 2560、WBgain = 1706)即完成特殊框中心位置转换。

      sLtInfo.AreaSize : 特殊框的宽高,值域1 ~ 32,当设32时代表从中心往上下左右延伸16的范围。

      sLtInfo.bExclude : 特殊框模式选择,选择Include代表落入特殊框的统计值也会被拿来参考,选择Exclude代表落入特殊框的统计值将会被忽略。

    • <WBMultiLSAttr>

      此功能需要eAlgType选择Focus时才有作用。此时AWB的R、B gain会尽量以参考白点为主,此时若遇到混光场景,离参考白点远的一方色偏会相当明显,若希望色偏减弱一些则可开启此功能,但副作用是会让其他颜色色相有些改变。下面是开启此功能前后差异比较图。

      Figure 100:开启WBMultiLSAttr功能前后差异比较(上:关/下:开)

      Enable : 混光色偏校正功能开关。开启时色偏区域可获得改善,但AWB做灰区域颜色会有些色偏。

      Sensitive : 混光判断敏感度调整,值域1 ~ 10,值越大容易将场景判断为混光场景。

      CaliStrength : 混光色偏补正强度控制,值域0 ~ 100,100是1倍,也就是CaliCcm原始强度。

      CaliCcm_LowCT : 混光时,当AWB选择将高色温做灰,则会选择此CCM来减少低色温区偏色严重的问题。目前只开放第一和第三横列可调整。第二横列调整了不会有作用。此CCM强度主要套用在两混光光源分别是StartInd和EndInd时,实际套用的强度会根据两光源距离与StartInd和EndInd距离的比例来决定。

      CaliCcm_HighCT : 混光时,当AWB选择将低色温做灰,则会选择此CCM来减少高色温区偏色严重的问题。目前只开放第一和第三横列可调整。第二横列调整了不会有作用。第二横列调整了不会有作用。此CCM强度主要套用在两混光光源分别是StartInd和EndInd时,实际套用的强度会根据两光源距离与StartInd和EndInd距离的比例来决定。

      Figure 101:CaliCcm_LowCT界面

      调整CaliCcm建议,以CaliCcm_LowCT为例:

      1. 将灯箱开至D65(若有更接近StartIdx的灯源也可以用该灯源),让AWB将其作灰。

      2. 将AWB切至PAUSE。

      3. 将灯箱切至F(若有更接近EndIdx的灯源也可以用该灯源),调整CaliCcm_LowCT,调整时还要时常切回之前做灰的灯源看看正常颜色有没有偏的太离谱,调整到两边都可接受即完成。

    • <CTMWB>

      当WBAttr中的AwbMode选择CT Manual时才有效,使用者可以透过选择色温来套用对应的WB gain。

      ColorTemperature : 设定指定色温。值域1000 ~ 20000。

    • <AWBStabilizer>

      当环境稳定下,却发现AWB一直不断被trigger,导致画面颜色不断来回变化时,建议可以开启此功能来让AWB变化更稳定。

      Enable :AWB Stabilizer的开关。

      GlbGainThd :整体WB gain变化的阀值控制。当AWB在收敛状态要重新被trigger,除了满足原有的条件之外(ConvOutThd),还需要整体WB gain变化超出此阀值才会被重新trigger。值域0 ~ 512,建议此值设的与ConvOutThd相同或更小一些即可,默认值是64。

      CountThd :连续判定要重新trigger AWB的次数阀值。当此值为2则须连续三次满足重新trigger的条件才会重新触发AWB,否则AWB仍会维持在稳定状态。值域0 ~ 100。建议此值不需要设太高,因为会延迟AWB被触发的反应时间。默认值为2。

      ForceTriGainThd :为了避免环境光源色温瞬间大幅度变化时AWB反应时间因CountThd变慢,我们又定义了一个强制Trigger的gain阀值,只要当Gain变化满足重新trigger AWB的条件,且变化量大于此阀值,则会忽略CountThd直接trigger AWB。值域0 ~ 8191。默认值150。

    • <AWBSpecialCase>

      此功能提供用者使用三个条件定义case,并可决定case达成时AWB对应要的行为,用来提升特定场景AWB的准确性。总共可定义四种case,每种case的效果会迭加。

      CaseNum :欲定义的case数量,一组case设定就是针对一个特定场景。值域0 ~ 4,设0形同此API无效。

      Group1系列参数用来定义第一种条件。使用者可定义多个zone,算法会统计落入所有zone的AWB统计值数量占全统计值数量的百分比,查表得到Group1的达标率。

      Group1.ZoneNum :欲定义的zone数量,算法会分析落入所有zone的AWB统计值数量占全统计值数量的百分比。值域0 ~ 8,设0代表此条件无条件达成。

      Group1.CenterX :决定每个zone的中心点在R/G-B/G plane上的x坐标。值域0 ~ 1023。

      Group1.CenterY :决定每个zone的中心点在R/G-B/G plane上的y坐标。值域0 ~ 1023。

      Group1.Radius :决定每个zone的半径大小。值域0 ~ 20。

      Group1.CntLut.NodeNum :决定CntLut欲使用的节点数量。值域0 ~ 4。

      Group1.CntLut.X :决定CntLut节点x值,代表落入所有zone的统计值总数占统计值总数的百分比。算法会分析出Group1的统计值百分比来查此表,得到Group1条件达标率Group1.CntRatio。值域0 ~ 100。

      Group1.CntLut.Y :决定CntLut节点y值,代表ratio值。算法会分析出Group1的统计值百分比来查此表,得到Group1条件达标率Group1.CntRatio。值域0 ~ 100。

      Group2与Group1用法相同,相关说明可参考Group1,算法会根据Group2系列设定得到Group2的条件达标率Group2.CntRatio。

      BvLut让使用者多一个环境亮度的维度来定义特定场景,例如可用此条件区分户外白天和室内场景。算法会根据Bv值查表得到最终的亮度条件达标率BvRatio。

      BvLut.NodeNum :BvLut节点数量。值域0 ~ 4,设0代表此条件无条件达成。

      BvLut.X :决定BvLut节点x值,代表Bv。值域-81920 ~ 245760。

      BvLut.Y :决定BvLut节点y值,代表达标率。值域0 ~ 1024。

      每个case三种条件的达标率最终会整合成一个值,代表此case的达标率CaseRatio。

      Figure 102:CaseRatio计算

      此API提供了三种mode,使用者可选择当case达成时欲执行的动作,强度则会根据CaseRatio决定。

      Mode :case达成时的行为模式选择,值域0 ~ 2。

      0:WeightCtrl mode

      1:PreferCT mode

      2:PreferGain mode

      Weight :当Mode为0时有效,色温框会根据CaseRatio套用此weight设定。值域0 ~ 1024。

      Figure 103:Weight mode behavior

      PreferCT :当Mode为1时有效,原来的Target WB gain会根据CaseRatio与PreferCT对应的WB gain做混和成为新的Target WB gain。值域0 ~ 20000。

      PreferR/Bgain :当Mode为2时有效,原来的Target WB gain会根据CaseRatio与PreferR/Bgain做混和成为新的Target WB gain。值域0 ~ 8191。

    • <AWBStatisFilter>

      此功能可根据BV设定统计值有效亮度区间来排除过暗或过亮的统计值,避免AWB受到noise或过曝区域影响。

      NodeNum :设定lookup table节点数量。值域0 ~ 4,设0会使用预设有效亮度区间4 ~ 224。

      LutX_BV :设定lookup table的节点x坐标,也就是BV。值域-81920 ~ 245760。

      LutY_HighThd :设定lookup table的节点Y坐标,也就是最高亮度限制。统计值的RGB中只要任一值超过此限制,则该统计值即被忽略。值域0 ~ 255。

      LutY_LowThd :设定另一个lookup table的节点Y坐标,也就是最低亮度限制。统计值的RGB中只要任一值低于此限制,则该统计值即被忽略。值域0 ~ 255。注意LowThd要小于HighThd。

    • <DebugLev>

      AWB Debug Level : 设定AWBDebug log的输出设定。

      1:show simple algo paramaters

      2:always show detail algo parameters

      3:show detail algo parameters

      7:User Paramters

    12.2. AWBInfo

    • <AWBInfo>

      此界面可显示当下AWB相关信息,点选ReadPage可实时更新。

      Figure 104:AWBInfo以及AWBSpecialCaseInfo界面

      IsStable : 当下AWB是否在稳定状态。

      WB_Rgain : 当下WB所使用的R gain。

      WB_Grgain : 当下WB所使用的GR gain。

      WB_Gbgain : 当下WB所使用的GB gain。

      WB_Bgain : 当下WB所使用的B gain。

      WB_CT : 当下判断出的环境色温。

      此功能需要eAlgType选择Focus时,以下项目显示的值才有意义。

      WPInd : 当下的参考白点Index。

      MultiLS_Detected : 显示是否侦测出混光场景。

      MultiLS_FirstLSInd : 显示第一大混光光源index×2,要除以2才是实际的光源index,例如当index是8则实际是4,当index是9实际是4.5,若有.5表示此光源判断是落在4和5色温框之间。

      MultiLS_SecondLSInd : 显示第二大混光光源index×2,要除以2才是实际的光源index,例如当index是8则实际是4,当index是9实际是4.5,若有.5表示此光源判断是落在4和5色温框之间。

      Figure 105:MultiLS_FirstLSInd & MultiLS_SecondLSInd示意图

    • <AWBSpecialCaseInfo>

      此API可以让使用者了解SpecialCase API目前各项统计信息。

      Group1.Cnt : 显示各个case的Group1统计值落点总数。

      Group1.CntRatio : 显示各个case的Group1统计值落点总数查Group1.CntLut后得到的Ratio。值域0~100。

      Group2.Cnt : 显示各个case的Group2统计值落点总数。

      Group2.CntRatio : 显示各个case的Group2统计值落点总数查Group2.CntLut后得到的Ratio。值域0~100。

      BvRatio : 显示各个case 根据Bv查BvLut后得到的Ratio。值域0 ~ 1024。

      CaseRatio : 显示各个case将Group1.CntRatio、Group1.CntRatio及BvRatio整合后的Ratio。值域0 ~ 100。

      CaseWeight : 显示各个case透过CaseRatio得到的CaseWeight。若Mode选择不为0的case其CaseWeight会全是100,代表没有作用。

      SpecialWeight : 将四组CaseWeight整合起来最终成为一组SpecialWeight。

      SpecialR/Bgain : 显示各个case要与Target WB gain做混和的RB gain。


    13. AF INTRODUCTION

    AF的目的在于透过收到的统计值将画面对焦在一个理想的状态。(返回IQ Tuning Flow Chart)

    13.1. AF调整

    13.1.1. 调整界面

    于左侧选单点选AF即会出现AF调整界面。

    13.1.2. 参数说明

    • <AF_HWROIMODE>

      Mode :ROI模式控制选项,选择Normal可切为16组ROI,window size与位置可随意分割,选择Matrix可切为16*N组ROI,window size与位置稍有限制。

      VerticalBlockNumber :当Mode为Matrix时才有效果,可切为16*N组ROI(N = VerticalBlockNumber)。

    • <AF_HWWIN>

      Win :16组ROI坐标,依序为x_start、y_start、x_end、y_end。

    • <AF_HWFILTERATTR>

      IIR1 :IIR high滤波器系数。

      IIR1_Clip :IIR high滤波器系数的输入/输出限制。

      IIR2 :IIR low滤波器系数。

      IIR2_Clip :IIR low滤波器系数的输入/输出限制。

      IIR1_E1_En :IIR high串接第一级滤波器开关。

      IIR1_E1 :IIR high串接第一级滤波器系数。

      IIR1_E2_En :IIR high串接第二级滤波器开关。

      IIR1_E2 :IIR high串接第二级滤波器系数。

      IIR2_E1_En :IIR low串接第一级滤波器开关。

      IIR2_E1 :IIR low串接第一级滤波器系数。

      IIR2_E2_En :IIR low串接第二级滤波器开关。

      IIR2_E2 :IIR low串接第二级滤波器系数。

    • <AF_HWFILTERSQ>

      SobelYSatEn :Sobel滤波器Y阀值开关。

      SobelYThd :Sobel滤波器Y阀值,当SobelYSatEn为true时才有作用,亮度小于此值就会列入Sobel滤波器计算。

      IIRSquareAccEn :IIR滤波器增强控制开关。

      SobelSquareAccEn :Sobel滤波器增强控制开关。

      IIR1Thd :IIR high滤波器输阀值,输出前会再减去此值。

      IIR2Thd :IIR low滤波器输阀值,输出前会再减去此值。

      SobelHThd :Sobel H滤波器输阀值,输出前会再减去此值。

      SobelVThd :Sobel V滤波器输阀值,输出前会再减去此值。

      AFTblX :IIR/Sobel滤波器nonlinear mapping的横轴节点,以二的幂次方累加。

      AFTblY :IIR/Sobel滤波器nonlinear mapping的纵轴节点。

    • <AF_ATTR>

      State :状态控制选项,选择Norma会正常运作,选择Pause则会暂停在当时的状态,直到再次切回Normal才会继续运作。

      Mode :状态控制选项,选择Manual可以直接设定motor位置,选择Auto可以选择不同Algorithm来进行对焦。

      ManualMotorPos :当Mode为Manual时才有效果,直接设定motor位置。

      Algo :当Mode为Auto时才有效果,目前支持两种算法。 OneShot:将所有位置都走一遍,然后到统计值最大的位置。 Continuous:会动态侦测环境变动,若有变化,则会重新对焦。

    • <AF_MOTOR>

      MinMotorPos :Motor可移动到的最小位置。

      MaxMotorPos :Motor可移动到的最大位置。

      MinMotorStep :Motor在一帧的时间内,可移动的最小步伐。

      MaxMotorStep :Motor在一帧的时间内,可移动的最大步伐。

    • <AF_ACC_WEIGHT>

      WinNumX :X方向window总数

      WinNumY : Y方向window总数。

      EqualWinWgtEn :统计值等权重开关。

      WinWgt : 统计值权重表,只有在EqualWinWgtEn为false时才有效果。

      IIRHBlendEn : IIRH混合开关,并依照下列三个值来做混和。

      IIRHWgt_FirstBlendIIRL : IIRH最先跟IIRL做混合,此值为IIRH比例。

      IIRHWgt_SecondBlendSBLV : IIRH再次跟SobelV做混合,此值为IIRH比例。

      IIRHWgt_ThirdBlendSBLH : IIRH最后跟SobelH做混合,此值为IIRH比例。

    • <AF_ONESHOT> - 只有在Algo为OneShot时才有效果。

      AccSel :统计值种类。

      MotorStep :每一帧Motor的移动步伐。

    • <AF_CONTINUOUS_SCENE_CHANGE> - 只有在Algo为Continuous时才有效果。

      PreAcc系列:检查AF正在作动时,是否要重新对焦,依当前帧与前一帧的统计值差异来做判断。

      PreAccSel :AF统计值种类。

      PreAeAccDiffThOft :AE统计值(Luma)差异比例阀值。

      PreAeAccDiffThSlp :AE统计值(Luma)差异比例阀值额外斜率,依据motor step增大阀值。

      PreAeAccCntThOft :AE统计值(Luma)符合的window总数比例阀值。

      PreAeAccCntThSlp :AE统计值(Luma)符合的window总数比例阀值额外斜率,依据motor step来增大阀值。

      PreAfAccDiffThOft :AF统计值(PreAccSel)差异比例阀值。

      PreAfAccDiffThSlp :AF统计值(PreAccSel)差异比例阀值额外斜率,依据motor step增大阀值。

      PreAfAccCntThOft :AF统计值(PreAccSel)符合的window总数比例阀值。

      PreAfAccCntThSlp :AF统计值(PreAccSel)符合的window总数比例阀值额外斜率,依据motor step增大阀值。

      FocusAcc系列:检查AF停止时,是否要重新对焦,依当前帧与前一次对焦结束的统计值差异来做判断。

      FocusAccSel :AF统计值种类。

      FocusAeAccDiffTh :AE统计值(Luma)差异比例阀值。

      FocusAeAccCntTh :AE统计值(Luma)符合的window总数比例阀值。

      FocusAfAccDiffTh :AF统计值(FocusAccSel)差异比例阀值。

      FocusAfAccCntTh :AF统计值(FocusAccSel)符合的window总数比例阀值。

      StableCntTh :连续稳定帧数阀值,超过此值则判断为环境已经稳定,开始移动马达来进行对焦。

    • <AF_CONTINUOUS_SCENE_CHANGE> 计算说明

      AF触发分为2类:

      1. 检查AF正在作动时,是否要重新对焦:

        Pre AE Acc:比对目前帧与前一帧的AE统计值差异,range 0 ~ 99%。

        Pre AF Acc:比对目前帧与前一帧的AF统计值差异,range 0 ~ 99%。

        AE或AF任一项成立,触发对焦。

        另外,PreAcc系列拥有额外的Slp可以调整,目的是随着motor step大小做动态调整。

        Th计算为:Oft + motor step*Slp,此Th总和的range 0 ~ 99%。

      2. 检查AF停止时,是否要重新对焦:

        Focus AE Acc:比对目前帧与上次对焦帧的AE统计值差异,range 0 ~ 99%。

        Focus AF Acc:比对目前帧与上次对焦帧的AF统计值差异,range 0 ~ 99%。

        AE或AF任一项成立,触发对焦。

      Threshold分为两种,两种要同时成立才会触发:

      1. Diff Th:统计值差异百分比,大于此值时触发,range 0 ~ 99%。

      2. Cnt Th:window差异个数百分比,大于此值时触发,range 0 ~ 99%, 预设window数通常为16。

      例如,画面中有5个window的统计值差异超过30%变化,假设条件设定为:

      1. Diff Th = 25,Cnt Th = 30(相当4.8个window),此条件会触发。

      2. Diff Th = 25,Cnt Th = 35(相当5.6个window),此条件不会触发。

      因此,Th调越低,AF就越容易触发。

      调整上建议搭配u-art,开启AF debug level 16或128,可以看到统计值的变化。

    • <AF_CONTINUOUS_SEARCH_START> - 只有在Algo为Continuous时才有效果。

      SearchMotorStep :每一帧Motor的移动步伐。

      SearchMotorDirByPosTh :依据当前Motor位置来决定移动方向,若大于此值,则往位置较小处移动,反之亦然。

      SearchAccSel :统计值种类。

    • <AF_CONTINUOUS_SEARCH> - 只有在Algo为Continuous时才有效果。

      MinMaxAccRatioPeakThOft :最小最大统计值差异比例阀值,用来判断peak。

      MinMaxAccRatioPeakThSlp :最小最大统计值差异比例阀值斜率,可以依据经过总路径来降低阀值。

      AccDecCntPeakTh :统计值连续下降次数阀值,用来判断peak。

      NowFakeMaxAccRatioPeakTh :统计值下降比例阀值,用来判断peak。

      AccDecCntWrongDirTh :统计值连续下降次数阀值,用来判断是否走错方向。

      NowFakeMaxAccRatioWrongDirTh :统计值下降比例阀值,用来判断是否走错方向。

      Ps1. 判断peak条件为 if((MinMaxAccRatioPeakThOft, MinMaxAccRatioPeakThSlp) && (AccDecCntPeakTh || NowFakeMaxAccRatioPeakTh) )

      Ps2. 判断wrong direction 条件为 if(AccDecCntWrongDirTh || NowFakeMaxAccRatioWrongDirTh)

    • <AF_Adjust> - 只有在Algo为Continuous时才有效果。

      AFTable :记录VCM对焦位置。1→100cm位置、2→80cm位置、3→60cm位置、4→40cm位置、5→20cm对焦位置。

      调整步骤:

      1. 拿一张能在camera距离chart 100cm时,仍塞满对焦框的chart。

      2. Algo: Continuous → OneShot;

      AFOneShot: MotorStep设10(越小找的越细)。
      
      1. DebugLevel设1,看他Peak最后找到哪,并填入表格(位置越远,VCM位置数字越小)。

      SearchMotorStep_ADJ :根据AFTable调整AFContinuous_SearchStart:MotorStep速度(远到近,速度慢到快)。

      FocusAfAccCntTh_ADJ :根据AFTable调整AFContinuous_SceneChange:FocusAfAccCntTh(建议:远到近,条件逐渐放松)。

      FocusAfAccDiffTh_ADJ :根据AFTable调整AFContinuous_SceneChange:FocusAfAccDiffTh(建议:远到近,条件逐渐放松)。

      CheckMotionCnt :每隔多少Frame检查AF触发条件。

      Motion系列:用来检查画面是否静止,静止才会检查AF触发条件。

      MotionAeAccDiffTh :AE统计值(Luma)差异比例阀值。

      MotionAeAccCntTh :AE统计值(Luma)符合的window总数比例阀值。

      MotionAfAccDiffTh :AF统计值(PreAccSel)差异比例阀值。

      MotionAfAccCntTh :AF统计值(PreAccSel)符合的window总数比例阀值。

      WinWgt :触发权重表。

      UnStableCntTh :不检查几张不稳定画面的Frame。

      AEStableCntTh :连续检查几张AE稳定的Frame,才会做AF。

      AfAccDelay :统计值生效延迟使用。

    • <FDAF> - 只有在Algo为Continuous时才有效果。

      Enable :启用FDAF的开关。

      FDStableCntTh :检查连续多少稳定的框,才会做AF。

    • <AF_DetectFlatZone> - 只有在Algo为Continuous时才有效果。

      Enable :启用侦测平坦区的开关。

      FDStableCntTh :当SearchPeak过程中,统计值都小于这个Th,即判断为平坦区。

      MotorPos :当判断为平坦区,VCM移到的位置。

    • <DEBUG_LEV>

      可透过U-art印出相关debug log。

      Level 描述
      0 Disabled.
      1 FPS, current motor position.
      2 motor change flag, target motor position, window change flag.
      4 current motor position, all window acc value.
      8 current motor position, weight sum acc value.
      16 current motor position, AF_CONTINUOUS_SCENE_CHANGE acc log.
      32 AF_ONESHOT status.
      64 AF_CONTINUOUS status.
      128 AF_CONTINUOUS_SCENE_CHANGE flag.
      256 AF_CONTINUOUS_SEARCH acc min/max/ratio/IncCnt/DecCnt.
      512 AF_CONTINUOUS_SEARCH peak flag.
      1024 AF_CONTINUOUS_SEARCH no peak (search all range) flag.
      2048 AF_CONTINUOUS_SEARCH direction info.

    14. IQ TOOL接口联机功能操作

    14.1. IQ Tool接口联机功能操作步骤

    1. 设定EVB网路功能,于终端机输入下列指令

      #ifconfig eth0 hw ether 00:xx:xx:00:00:01
      
      #ifconfig eth0 up
      
      #udhcpc
      
      #mixer -n 1 -q
      

      其中-q表示开启 iqserver,IQTool才可以连线。

    2. 选择产品类型

      1. IP Camera

      2. Car Camera

    3. 输入 EVB 的IP 位址

    4. 选择Connection图示()即可以连线,图形变为()表示成功连线,即可以开始使用IQTool调整影像的参数;再选择()符号即会断线,图示变回(),设定步骤如下所示。

      Figure 106:IQ Tool接口联机设定


    15. IQ TOOL接口功能说明

    15.1. IQ Tool界面

    IQ Tool接口的左侧红色虚线框内是功能树状结构,以Figure 107为例,每一个树状节点都是一个API集合。点选左方节点后会动态产生右方页面,点选左方AE节点后在右方动态产生该节点下的API:ManualExposure,可在右方接口中对API进行实际调值操作。

    Figure 107:IQ Tool功能树形图

    15.2. 参数调校

    不同的API有不同种类的调参数功能,像是填入数值、下拉选单、取值、表单建立,根据各个API的初始设定,有些可以Read和Write,有些只能Read。

    调校参数类型:

    1. 数值:可透过以下三种方式修改值

      • 选择上下箭头调值

      • 直接在栏框内填值

      • 左右移动卷轴调整值

      数值型别会设定范围,根据不同的API初始设定Min以及Max值。以API为ManualExposure的情况下为例,FNx10最小值是10最大值是220。如果填小于10则会自动跳回10,如果填大于220则会自动跳回220。

      Figure 108:数值功能示意图

    2. 下拉选单:选择箭头后会出现下拉选单,即可选择不同的功能,以API AE - Flicker为例,Enable下拉选单可以选择Disable、60Hz或是50Hz。

      Figure 109:下拉选单功能示意图

    3. 读值:栏框内的值read only,不可以write,以API AWBInfo为例,可以读取WB_Rgain栏框内的值2130,但不可以write。

      Figure 110:读值显示于栏位示意图

    4. 表格:页面上有一个按钮,如下所看到的Edit Table按钮。

      Figure 111:选择Edit Table按钮可以弹出表格窗口

      选择按钮以后,弹出表格窗口,如下窗口内有表格,选择Read按钮以后可以读取板子内的值,选择Write按钮,可将值写入板子。

      Figure 112:表格窗口示意图

      若是表格Read only,API设定不允许写入板子则只会显示出Read button。

      Figure 113:Read only表格窗口示意图

    15.3. 读写数据

    可以读写所有API集合的资料,也可以读写目前页面所有的API资料,如下图,目前页面API为AE时,此时如果按下右上方的Read Page则会读取目前AE页面的所有data,如果按下右上方的Write Page,则会写入data到AE页面里。但是如果按下上方R ALL键则会读取所有API集合不只是AE的所有data,然后按下W ALL键则会写入data到所有API页面里,除了API集合为Gamma/Calibration的情况,其余的API皆会Auto Write data,Gamma必须自己手动选择Write Page 才会存入资料。读写资料图示详细说明参阅Table 1。

    Figure 114:读写数据接口示意图

    Table 1: 读写资料图示详细说明

    图示 功能 功能说明
    读取所有API集合页面的资料 按下R ALL按钮,即可读取所有API集合页面的资料。
    写入所有的资料到每个API集合页面 按下W ALL按钮,即可写入所有API集合页面 (不包括Calibration)的资料。
    读取目前页面资料 按下Read Page按钮,即可读取目前页面所有的API资料。
    将目前页面的资料写入到API 按下Write Page按钮,即可写入资料到目前页面所有的API。
    即时的将页面的资料写入到API 选中时,即开启AutoWrite功能。

    15.4. 保存Raw/YUV/JPG格式的图像

    连接上板子以后,可以透过选择红色虚线标注的按钮,获取撷取图像的四种格式。

    Figure 115:保存图像按钮接口示意图

    开始抓图像后会产生一个新的窗口显示进度,抓取成功会在下方显示讯息,如Figure 116。下方会显示图像保存路径,默认保存在程序所在的目录下的./Image中。

    Figure 116:保存图像成功示意图

    15.5. 新建、载入、保存页面参数

    使用IQ Tool调整的过程中可以随时保存页面参数到指定路径中,也可以加载已经保存的参数档,如Figure 117。

    Figure 117:新建、载入、保存页面参数示意图

    IQ Tool有提供自动存Bin File的功能,参数单位为分钟,0代表不自动储存,会储存在CvtXml这个文件夹下,如Figure 118,也会显示剩几秒就会存一次档,但如果操作期间有手动存,秒数会重来,如Figure 119。

    Figure 118:自动储存Bin File示意图

    Figure 119:显示距离下次存Bin File剩余时间

    存Apibin可存不需Api的功能,只要把相对应的InFile取消即可。

    Figure 120:InFile功能

    若遇到InFile是反白(如Figure 121),无法选取时,有需要将改API存进Apibin时,可将Api.xml中该API的FileMode改为W(如Figure 122)。

    Figure 121:InFile反白示意图

    Figure 122:Api.xml修改FileMode示意图

    1. 保存参数有两种格式,分别是Xml和Bin。

      • Xml格式:

        Xml主要用于保存工具的GUI界面 (包含界面参数数值)。

      • Bin格式:

        Bin只保存api参数,可以透过在应用层调用MI_ISP_API_CmdLoadBinFile(MI_U32 Channel, char* filepath, MI_U32 user_key) 自动载入api参数。

      • Magic Key:可以用来验证bin档是否与设备配对,Magic Key可以在Setting中设置。

        在bin的api参数之后会再附加相对应串口的Xml,为了达到Xml与api参数可以互相匹配的目的。

    2. 载入参数有三种格式,分别是Xml、Bin和Bin xml

      • Xml:

        Xml用于载入工具的GUI界面 (包含界面参数)。

      • Bin:

        Bin用于载入api参数。

      • Bin Xml:

        Bin Xml用于载入api参数和附加相对应串口的Xml。

    15.6. Gamma调值

    1. 选择Gamma树状节点,即在右方产生Gamma调值界面。

      Figure 123:Gamma调值界面

    2. Gamma 功能界面说明。

      Figure 124:Gamma功能界面说明

      Figure 125:Gamma存、读档格式示意图

    3. Gamma 功能介面详细说明,如Table 2。

      Table 2: Gamma功能界面详细说明

      Num Gamma界面功能图示 功能 详细说明
      1 控制R,G,B线 - 勾选Gamma Red以后,即可用鼠标控制red line,且看的到red line。
      - 如果没有勾选,则不可以控制,且看不到red line。
      - 勾选和不勾选Gamma Green,Gamma Blue 的功能相同。
      2 新增点,且自动产生曲线 利用上下小箭头(或在栏框内)输入x轴值以及y轴值,选择Set按钮后
      - 尚未存在控制点,曲线上新增(x,y)控制点且周围产生平滑曲线跟著移动。
      - 如果曲线该x轴已存在控制点,控制点变更至所输入的y值,周围产生平滑曲线。
      3 重新设定 清除R、G或B的线,还原初始值的设定 (bypass gamma)。
      4 检查控制点 如果有成功产生出控制点则显示为Yes,如果失败则显示No。
      5 载入和储存RGB pixel - Load:载入存有RGB pixel值的txt档,会自动产生RGB曲线。
      - Save:把目前设定好的RGB曲线pixel值存入txt档。
      - 档案设定格式为:R→G→B
      Header:0 (说明)
      pixel red : 1 ~ 256
      pixel green:257 ~ 512
      pixel blue :513 ~ 768
      6 鼠标控制页面 - 鼠标左键选择曲线可在曲线上新增点,移动控制点和辅助点会自动产生平滑曲线。
      - 鼠标右键选择控制点即可删除该控制点。
      7 控制选择项 - 选择Sync RGB格子,即可将R、G、B三条曲线合并成一条灰线,改变这条灰线可以同时对R、G、B三条曲线生效。
      - 左右拖动Section Bar可以设定曲线的控制点数量。
    4. Gamma曲线的调整方式:初始化在座标上可以看到RGB三条曲线。勾选Gamma Red、Gamma Green、Gamma Blue后可以利用鼠标控制十字符号移动点击控制曲线,如果点击的地方刚好三条曲线交叉重叠,优先顺序为Red、Green、Blue,先以R曲线为例可以按鼠标左键新增控制点,右键移除控制点,移动控制点可以改变曲线,控制点旁也会有两个辅助点,用来微调贝兹曲线。R、G、B各有有256个pixel值,参考下图。

      Figure 126:Gamma曲线调整示意图

    5. Gamma曲线Read Page 和Write Page

      • Read Page :即为get API,选择Read Page按钮,会取得曲线上的值到板子上。

      • Write Page :即为set API,会从板子上取值设定到曲线上,在API是Gamma的情况下,必须自己手动选择Write Page才会存入data,不会Auto Write,其他的API皆会自动AutoWrite,按钮如图Figure 127。

        Figure 127:Gamma Read and Write item

    15.7. Shading

    15.7.1. 调整界面

    点选Shading树状节点,即在右方产生ALSC接口,如Figure 128所示。

    Figure 128:Shading界面

    15.7.2. 参数说明

    Enable : ALSC API功能开关,0表示关闭、1表示启用,值域0 ~ 1。

    GridX : shading table的X方向大小,此平台预设为27,值域1 ~ 27。

    GridY : shading table的Y方向大小,此平台预设为17,值域1 ~ 17。

    CCTThr : 环境色温节点设定,此平台最多支持3组Shading校正,注意index小到大需要按照色温低到高的顺序填入,值域1 ~ 3。

    DeltaMode : 预设16种模式,纵轴表示每个模式、横轴表示X/Y方向每个格子的间格大小,在此平台为X=26、Y=16格间距,默认模式内的值越大则周围方格越小,值域0 ~ 15。

    DeltaModeAvdEn : 选择启动进阶模式开关,0表示关闭、1表示启用,值域0 ~ 1。当GridX/Y使用非此平台预设27x17时,必须进入此模式进行非等距方格设定。

    DeltaLutX : X轴间距,每个索引值(index)表示为一个block size(index = block size / 16),索引值只限填1,2,4,8,16,未使用则设为0,最多支援至72组,在此平台为26格间距。

    DeltaLutY : Y轴间距,每个索引值(index)表示为一个block size(index = block size / 16),索引值只限填1,2,4,8,16,未使用则设为0,最多支援至72组,在此平台为16格间距。

    R/G/B Gain Table : 点选R/G/B任意一个Table,会产生一个新的接口,在此平台上将画面分成一个27x17的矩阵,每个方格内的值表示这个位置的R/G/B分量需要乘上的权值,值域0 ~ 4095,如Figure 129所示。

    Figure 129:Shading 27×17 Table界面

    • <Auto ALSC Table Adjustment API>

      相近色温的光源中,频谱不一定相同(所谓的同色异谱),对于有些镜头模块来说,在同色异谱的光源下会有不同的color shading表现,对于该种镜头模块,用一组shading table无法在同色异谱的光源下得到好的补偿结果(Figure 130)。为此有了该自适应算法,能自动判断画面中是否存在color shading,藉由微调当前ALSC table内的shading table来降低color shading。此功能建议作完高/中/低色温的ALSC补偿后,若在同色异谱的光源下补偿不好,再开启此功能。

      Figure 130:上图为U30色温下套用A-light ALSC table,下图为透过自适应算法补偿的结果

      调整界面如下:

      Figure 131:Auto ALSC Adjustment调整界面

      参数介绍:

      Complex Thr : 值域0 ~ 65536,若搜寻范围内的区域,复杂度小于Complex Thr,则会被列入判定color shading的评估候选区域。

      Max Increase R Gain : 值域256 ~ 512,允许算法将ALSC table中R的最大拉升量,256为1倍。

      Max Decrease R Gain : 值域128 ~ 256,允许算法将ALSC table中R的最小降低量,256为1倍。

      Max Increase B Gain : 值域256 ~ 512,允许算法将ALSC table中B的最大拉升量,256为1倍。

      Max Decrease B Gain : 值域128 ~ 256,允许算法将ALSC table中B的最小降低量,256为1倍。

      注意:以上四个参数Increase/Decrease R/B Gain建议在灯箱内调适到适当的值,不建议太大或太小,以避免算法误判时画面偏色。

      Check Shading Range : 值域8 ~ 16,画面切分为水平垂直方向各32区域,该值代表从画面中心出发往外搜寻的范围,建议设置为该镜头模块明显有color shading的区域内。自适应算法是总和check range内的shading表现来决定是否要进行补偿,range设置太大,可能会造成纳入太多无明显shading的区域,影响整体评估结果。

      Uniform line TH : 值域8 ~ 128,画面中的候选区域(< Complex Thr)大于Uniform line count TH才会进行画面的shading评估,若一般场景容易出现算法误判,建议可以调高该参数,候选区域够多时才做运算。

      Ratio By BV : 在较低光源场景,可依照BV调降补偿量,该参数会直接在算法内部影改变Increase/Decrease R/B Gain。

      调整流程:

      1. 先在灯箱内进行2~3个不同色温的ALSC校正。校正完成后,切至同色异谱的光源,观察color shading出现的区域来设置Check Shading Range。

        Figure 132:Check Shading Range Parameter

      2. 确定完shading区域后,将Debug Level设置为1,此时Uart将打印画面中符合小于Complex Thr的区域编号以及该区域的R复杂度及B复杂度Figure 133,区域编号对应到画面的位子如Figure 134,此时可将Complex Thr渐渐调大,确保灯箱环境内有color shading的区域内都能被列入shading评估,且注意打印counter数量要大于Complex Scene counter该场景才会列入计算。

        Figure 133:Counter and Uniform Line Index

        Figure 134:Line index

      3. 确定完Complex Thr后,将Debug Level设置为2,此时uart会打印出画面整体的shading判定结果以及R,B gain的补偿量,若此时画面中间红旁边绿则R_ratio会小于256,则须逐步增加Max Increase RGain,允许算法将R分量拉升,调整Max Increase RGain直到R_ratio = 256为止,B分量也做相同的操作,反之亦然。Figure 135为实际补偿的log。

      4. Max Increase/Decrease RGain/BGain再依不同色温情况作微调,微调到适当的gain即可,设置的过大或过小都有可能在shading误判时让画面色偏。

      5. 为了节省算力,Debug Level = 2会显示出目前算法的状态,以下为对各个状态的叙述──

        SHADING_CHK:检查当前画面是否符合能补偿shading条件,进行shading检测及调整。

        NO_IMPROVE_PAUSE:进行了几轮的补偿R_ratio及B_ratio无法达到256,算法将停止检查并维持当前的补偿量,该状态是算法调整了ALSC table后,仍无法达到ratio256,或是补偿gain已达所设置的max。

        COMPLEX_PAUSE:当前画面不符合能进行补偿的条件(uniform line counter > Uniform line count TH),停止补偿。

        STABLE_PAUSE:进行了几轮的补偿,R_ratio及B_ratio达到256,暂停运算并维持当前的补偿量。

        Figure 135:The relation between ratio and gain

    15.8. Plugin

    IQ Tool提供了AF、AWB、CCM、GAMMA、ALSC五种插件以辅助IQ调试,如下Figure 136所示。

    Figure 136:Plugin下拉式选单界面

    15.8.1. AF Analyzer

    AF Analyzer为自动对焦校正分析外挂,主要用频率回应数值转换滤波器系数。

    15.8.1.1. 调整界面

    Figure 137:AF Analyzer 界面(Frequency Mode)

    Figure 138:AF Analyzer 界面(NonFrequency Mode)

    15.8.1.2. 参数说明
    • 步骤 (Step)

      1. 输入AF参数

        Frequency Mode:输入截止频率产生频率响应

        NonFrequency Mode: 输入AF Fliter系数产生频率响应

      2. 输出AF Filter系数

      3. 输出AF频率回应曲线

    • 输入参数栏位 (Input parameters)

      1. Bands lower :低频响应最小数值,值域范围0.001 ~ 1.000。

      2. Bands higher :高频响应最大数值,值域范围0.001 ~ 1.000。

      3. Display float 选项:enable → 显示AF系数,disable → 显示AF系数(二补码)。

      4. Normalizer X 选项:enable → 正规化X轴值域,disable → 未正规化X轴值域。

      5. Run 按钮 :计算Coefficient A0,A1,A2,B1,B2和畫AF頻率顯應曲線圖。

      6. Frequency Mode选项 :选择输入参数方法。

      7. Coefficient :NonFrequency Mode时输入各级AF Filter系数。

      8. IIR Stage :选择位在哪一级AF Filter。

        Frequency Mode:直接输入截止频率即可。

        NonFrequency Mode:要根据级数输入系数ex:第一级AF Filter选1对Coefficient输入系数,要再对第二级AF Filter输入系数IIR选2再对Coefficient输入一次系数etc.

    • 输出参数栏位 (Output parameters)

      1. AF Filter Coefficient : A0, A1, A2, B1, B2
    • 频率回应曲线 (Frequency response curve)

      1. X轴:取样点数量

      2. Y轴:频率数值 (db)

    15.8.2. AWB Analyzer Combo

    Awb Analyzer Combo为白平衡校正分析外挂,主要包含两个部分,分别是Statistics Analyzer与Raw Analyzer。其中Statistics Analyzer,使用者可利用它来调整色温曲线范围,而Raw Analyzer主要是让使用者能了解画面中各个位置的Awb统计值落点。

    15.8.2.1. 调整界面

    Figure 139:AWB Analyzer Combo界面

    15.8.2.2. 使用方式及参数说明
    1. 点功能选择:

      点击界面上方功能标签来切换。

    2. 统计值来源设定:

      点击界面上方menu列的File->Load Statistics会出现三种来源选择。

      From Live Stream:取得目前stream画面的统计值,IQTool需要先连线才使用此功能。若要更新画面统计值可选择右上方Update Live Statis按钮。

      From Raw Image:从拍摄好的raw image来取得统计值,选择此项目前请先透过menu列的Raw Format 来设定raw image的格式(Image Decompress设定方式可参考Raw Setting参数说明)。

      From Statistics Data:从之前存好的统计值档案来取得。

    3. 色温曲线范围来源设定:

      点击界面上方menu列的File->Load CTArea会出现两种来源选择。

      From Board:从连线的机台来取得,IQTool需要先连线才使用此功能。

      From CTArea Data:从之前存好的色温曲线范围档案来取得。

    4. 储存统计值:点击界面上方menu列的File->Save Statistics。

    5. 储存色温曲线范围:点击界面上方menu列的File->Save CTArea。

    6. 色温曲线范围调整:直接拖拽色温框上的位置控制点(三角形)及范围控制点(菱形)。

    7. 重置色温曲线范围:点击右上方Reset CTArea按钮。

    8. 有效色温曲线范围Index:透过右上方StartIdx和EndIdx设定。只有落在这区间色温框的统计值才会被拿去计算。

    9. 套用色温曲线范围:选择右上方Apply To Camera按钮。

      套用后记得回到IQTool界面选择AWBCTCali项目去做Read Page的动作(点Read Page前不要点到Write Page),这样在储存API bin file时才能将调整后的色温曲线范围存入。

    10. 移动&缩放显示raw image;在画面上按住鼠标左键可拖拽移动画面,滚动鼠标滚轮可进行画面缩放。

    11. 显示统计值分块:选择Show Statistics Blocks会在画面显示统计值分块。

    12. 选择统计值分块:双击鼠标左键可选择分块,左侧信息栏会固定显示该分块信息,此外还会在色温座标秀出该分块的落点位置(星型)。点击鼠标右键可取消选。

    13. 显示套用Final RBgain的图:选择Apply Final WB gain。

    15.8.3. CCM Analyzer

    此外挂程式工具使用于色彩校正。

    15.8.3.1. 调整界面

    Calculate CCM页面用于CCM校正,启动时会从Camera读取相关参考值,因此不能离线调试。另两个Page FineTuneMatrix属于微调功能。

    Figure 140:CCM Analyzer界面

    15.8.3.2. 使用方式及参数说明
    • 使用方法

      点击Source Image中的Set来设定 Raw Data的信息(Image Decompress设定方式可参考Raw Setting参数说明),点击open source打开保存的raw image,开启后会出现一个窗口显示出所选择的raw image,直接用鼠标在画面上拖曳让各色块都有正确被框选到,完成后点OK,Open Target打开标准的color checker图片,按上述步骤框选color checker。

      Figure 141:Load Raw Image窗口接口

    • 参数设定

      • Target Image:

        使用者可選用Default Target,有Xrite after 2014 / Xrite before 2014 / BabelColor Avg可选择。

        Figure 142:预设CC块M参考色

        使用者也可自定义Target,可以由bmp、txt汇入。

        Figure 143:自定义CCM参考色块

        Target Saturation可以让使用者设定最终校正的饱和度,预设为100(建议不改)。

        Figure 144:目标饱和度设定接口

      • Color Weight:

        可让使用者调整各色块的权重,权重越大者fitting的结果会越准确,预设都设为100。

        Figure 145:Color Weight设定界面

      • Component Constraint:

        使用者可根据需求针对某些成分做限制,例如设定0.5,则该成分fitting后的结果只能在-0.5到0.5之间。

        Figure 146:Component Constraint设定界面

      • Max Error Suppression:

        使用者可根据需求设定Max Error抑制,值域为0 ~ 100,值越大可以在抑制Max Error效果越强,但Avg Error会上升,建议设定50以下。

        Figure 147:Max Error抑制设定接口

      • 设定完成后选择calculate按钮,在窗口右侧会显示最终fit出的结果。

        Figure 148:CCM界面

      • 重复上述步骤fit出剩余色温的color matrix。

    15.8.4. Gamma Fitting Analyzer

    此插件工具使用于Gamma Fitting校正。

    15.8.4.1. 调整界面

    CDF_Orig :open source的CDF曲线。

    CDF_Ref :open target的CDF曲线。

    FitGMA :Fitting Gamma曲线。

    Figure 149:Gamma Fitting Analyzer界面

    15.8.4.2. 使用方式及参数说明
    • 使用方法

      1. 读取影像的Gamma 曲线,点击Options的Raw Setting初始设定(Image Decompress设定方式可参考Raw Setting参数说明)。

        Figure 150:开启Raw Setting界面

      2. 点击open source打开保存的raw image

      3. 点击open target打开标准的OECF Chart图片

      4. 按左键分别选取ROI,自动产生相对应的histogram

      5. 选择Gamma曲线类型,共有两种曲线计算方式,建议选择Exponential

        • Spline曲线

        • Exponential曲线

      6. 点击Match GMA按钮,产生Gamma曲线

      7. 点击Save GMA按钮,保存计算完的Gamma参数值。

    15.8.5. SStarCalibration Tool

    此插件工具使用于shading以及black level校正,功能和calibration tool相同

    15.8.5.1. CalibrationALSC调整界面

    Figure 151:CalibrationALSC界面

    15.8.5.2. CalibrationALSC使用方式及参数说明
    • 参数设定

      • Ratio Table:画面中心至角落补正强度ratio,值域0 ~ 255。

        可让使用者调整各色块的权重,权重越大者fitting的结果会越准确,预设都设为100。

      • OBC:目前sensor的OB值,單位為16-bit,值域0 ~ 65535。

      • GridX、GridY:shading table的大小。

      • Set Delta Format:非等距方格设定。

        1. Delta Mode:预设16种模式,值域0 ~ 15。设定方式可参考『Figure 160』及『Figure 161』。

        2. Delta Mode Advance Enable:选择启动进阶模式开关,0表示关闭、1表示启用,值域0 ~ 1。当GridX/Y使用非预设27x17时,必须进入此模式进行非等距方格设定。

        3. Delta X Lut:X轴间距,实际pixel数目为此值再乘16,只限填1,2,4,8,16,若未使用则填0。

        4. Delat Y Lut:Y轴间距,实际pixel数目为此值再乘16,只限填1,2,4,8,16,若未使用则填0。

      • CT:色温,值域1 ~ 20000。

      • CT Num :选择校正几组色温表数据,默认是校正3组色温表,值域1 ~ 3。

      • CT Index:选择目前要校正第几组table,最多支持3组,校正顺序不需依照0到2的顺序,但需要确保0到2的环境色温要由低到高并且不可一样。

      • Open Raw Image:选择Raw image路径。

      • Set Raw Format:设定Raw image相关参数。

      • Apply Demosaicing:将Raw image过简易的Demosaic。

      • Show Alsc Table:显示shading table。

      • Color:显示shading table的R/G/B gain。

      • GenTable:依照输入参数,产生shading table。

      • ApiApply:只会将目前CT Index的shading table下到API中。

      • CaliApply:依据目前CTNum的大小一次把所有参数传到板子。

      • Debug Log:可在GenTable和Apply时,看到debug log。

      • Keep Cali Data:load已产生的.data数据进来,使之前的结果能保留并继续校正。

      • Dump Data:产生校正结果的txt檔。

      • Load Cali Data:load已产生的.data,使之能用CaliApply,将那个.data的校正结果套上去。

      • Select Cali File:只有当Load Cali Data勾起时,才能点选,用来选择套到板子上的.data。

    • 使用方法

      根据是否勾Load Cali Data,有两种路线

      勾:

      1. 勾起Load Cali Data后,点选Select Cali Data,选择你要Apply的.data。

      2. 选择完所要的.data后,只能使用CaliApply。 此时Apply的校正参数并不会显示在我们的SStarCalibrationTool上。

      不勾:

      1. 点击Set Raw Format 来设定 raw image的信息,点击Open Raw Image打开raw image。可以勾选 Apply Demosaicing来看RGB image,这边只是简单的Demosaic功能,和实际的不同。每当如果是从Load Cali Data勾起变不勾时,都要重新点击Open Raw Image打开raw image。

      2. 设定产生shading table的参数,包含Ratio Table、OBC、GridX、GridY、Set Delta Format,再点击GenTable,即产生shading table。可以勾选Show Alsc Table来看shading table。当校正完第一组参数时,想保留结果继续校正,可勾选Keep Cali Data,但如果在校第二组参数时,CT Num的大小有被改变,那Keep Cali Data功能就会丧失。

      3. 设定下到板子的参数,包含CT、CT Index,再点击ApiApply或CaliApply,即生效。请务必到ALSC界面点Read,即可看到和CalibrationALSC相同的参数。每Apply完一次,GenTable、CaliApply以及ApiApply都会被反灰,此时上图红色框框部分设定有变动就可再重校正一次。

    15.8.5.3. CalibrationLSC调整界面

    Figure 152:CalibrationLSC界面

    15.8.5.4. CalibrationLSC使用方式及参数说明
    • 参数设定

      Ratio Table:画面中心至角落補正強度ratio,值域0 ~ 255。

      可让使用者调整各色块的权重,权重越大者fitting的结果越准确,预设为100。

      OBC:目前sensor的OB值,单位16-bit,值域0 ~ 65535。

      InputCenterX, InputCenterY:设定影像最亮中心点位置,值域范围:0~4095。

      CT:色温,值域1 ~ 20000。

      CT Num:选择目前要校正第几组table,最多支持3组,校正顺序不需依照0到2的顺序,但需要确保0到2的环境色温要由低到高并且不可一样。

      CT Index:最多支持3组色温,值域0 ~ 2,会根据CTNum的大小有连动。

      Open Raw Image:选择Raw image路径。

      Set Raw Format:设定Raw image相关参数。

      Apply Demosaicing:将Raw image过简易的Demosaic。

      Show LSC Table:显示shading table。

      GenTable:依照输入参数,产生shading table。

      ApiApply:只会将目前CT Index的shading table下到API中。

      CaliApply:依据目前CTNum的大小一次把所有参数传到板子。

      Debug:Log:可在GenTable和Apply时,看到debug log。

      Keep Cali Data:load已产生的.data数据进来,使之前的结果能保留并继续校正。

      Dump Data:产生校正结果的txt檔。

      Load Cali Data:load已产生的.data,使之能用CaliApply,将那个.data的校正结果套上去。

      Select Cali File:只有当Load Cali Data勾起时,才能点选,用来选择套到板子上的.data。

      Orientation:設定取樣点方向,由影像最亮的中心点至角落点。0 :upper-left、1 :upper-right、2 :lower-right、3 :lower-left

      Seg. Length:切割取样点的长度距离。

      AutoSearchCenter:选择自动侦测输入影像的最亮中心点位置,值域0 ~ 1,建议设1。

      LSCResult:Dump LSC结果影像。

      Ratio Table:是否使用Ratio Table的补偿值去校正,当这个打勾Ratio Table才可以变更。

      RatioThreshold:用来避免暗角补偿被过度补偿,值越大表示暗角补偿愈多、愈小则补偿愈少,暗角补偿愈多,會造成接近角落的正常的资料被过度补偿。当閥值愈小则补偿数值会根据当前最大索引值來找出补偿数值设为最大值,而最大索引值之後的索引值則維持最大补偿数值(不增加数值);反之阀值愈大则补偿数值愈大,Ratio Base = 100,值域0 ~ 25600。

    • 使用方法

      根据是否勾Load Cali Data,有两种路线

      勾:

      1. 勾起Load Cali Data后,点选Select Cali Data,选择你要Apply的.data。

      2. 选择完所要的.data后,只能使用CaliApply。此时Apply的校正参数并不会显示在我们的SStarCalibrationTool上。

      不勾:

      1. 点击Set Raw Format来设定raw image的信息,点击Open Raw Image打开raw image。可以勾选 Apply Demosaicing来看RGB image,这边只是简单的Demosaic功能,和实际的不同。每当如果是从Load Cali Data勾起变不勾时,都要重新点击Open Raw Image打开raw image。

      2. 设定产生shading table的参数,包含Ratio Table、OBC、InputCenterX、InputCenterY,再点击GenTable,即产生shading table。可以勾选Show LSC Table来看shading table。当校正完第一组参数时,想保留结果继续校正,可勾选Keep Cali Data,但如果在校第二组参数时,CT Num的大小有被改变,那Keep Cali Data功能就会丧失。

      3. 设定下到板子的参数,包含CT、CT Index,再点击ApiApply或CaliApply,即生效。请务必到LSC界面点Read,即可看到和CalibrationLSC相同的参数。每Apply完一次,GenTable、CaliApply以及ApiApply都会被反灰,此时上图红色框框部分设定有变动就可再重校正一次。

    15.8.5.5. CalibrationOBC调整界面

    Figure 153:CalibrationOBC界面

    15.8.5.6. CalibrationOBC使用方式及参数说明
    • 参数设定

      Open Raw Image:选择Raw image路径。

      Set Raw Format:设定Raw image相关参数。

      Apply Demosaicing:将Raw image过简易的Demosaic。

      Show OBC Table:显示OBC校正出来的table。

      CalOBGain:依照输入参数,产生校正黑电流的值。

      ApiApply:把校正结果套到板子上。

      CaliApply:把校正结过套到板子上。

      Debug Log:可在CalOBGain和Apply时,看到debug log。

      Keep Cali Data:load已产生的.data数据进来,使之前的结果能保留并继续校正。

      Dump Data:产生校正结果的txt檔。

      Load Cali Data:load已产生的.data,使之能用CaliApply,将那个.data的校正结果套上去。

      Select Cali File:只有当Load Cali Data勾起时,才能点选,用来选择套到板子上的.data。

      Weight Table:将画面均分为3×3区块,在计算OB时每个区块的权重,值域0 ~ 16,建议全部设1。

      AutoAssign:将OB值设给所有Gain,值域0 ~ 1,建议设1。

      Cali Gain Index:选择校正哪一组OB值,值域0 ~ 15。

      SetOBCParameters-Weight Table:显示Weight Table。

      Target:校正后希望残留的值,单位为16-bit,值域0 ~ 65535,建议设0。

    • 使用方法

      根据是否勾Load Cali Data,有两种路线

      勾:

      1. 勾起Load Cali Data后,点选Select Cali Data,选择你要Apply的.data。

      2. 选择完所要的.data后,只能使用CaliApply。此时Apply的校正参数并不会显示在我们的SStarCalibrationTool上。

      不勾:

      1. 点击Set Raw Format来设定raw image的信息,点击Open Raw Image打开raw image。可以勾选Apply Demosaicing来看RGB image,这边只是简单的Demosaic功能,和实际的不同。每当如果是从Load Cali Data勾起变不勾时,都要重新点击Open Raw Image打开raw image。

      2. 设定产生table的参数,包含Weight Table、Target、AutoAssign、Cali Gain Index,再点击CalOBGain,即产生校正table。可以勾选Show OBC Table来看校正table。当校正完第一组参数时,想保留结果继续校正,可勾选Keep Cali Data。

      3. 设定下到板子的参数,点击ApiApply或CaliApply,即生效。请务必到OBC界面点Read,即可看到和CalibrationOBC相同的参数。每Apply完一次,CalOBGain、CaliApply以及ApiApply都会被反灰,此时上图红色框框部分设定有变动就可再重校正一次。

    15.8.5.7. Raw Setting参数界面

    Figure 154:Raw Setting界面

    15.8.5.8. Raw Setting参数说明
    • Raw Format

      • Format:Raw image的RGB格式。

      • Bit Width(Input):Raw image输入位。

    • Raw Image Size

      • Width:Raw image的宽。

      • Height:Raw image的高。

    • Clip Image Size

      • Width:Raw image经过Clip后的宽。

      • Height:Raw image经过Clip后的高。

      • X:Raw image要从宽哪里去做Clip,要注意起始位置加上你所想要Clip的大小不能超过Raw image的大小。

      • Y:Raw image要从高哪里去做Clip,要注意起始位置加上你所想要Clip的大小不能超过Raw image的大小。

    • Image Decompress

      • Enable:是否打开Decompress功能(对应参数说明 [DECOMP_INFO] decomp_enable)。

      • Input Bits:被压缩后的位(对应参数说明 [DECOMP_INFO] decomp_input_bits)。

      • Output Bits:解压缩后的位(对应参数说明 [DECOMP_INFO] decomp_output_bits)。

      • Range:总共有四个区间需要设定。

      • Range0:设定第一个区间,0 ~ Range0(对应参数说明 [DECOMP_INFO] decomp_range0)。

      • Range1:设定第二个区间,Range0 ~ Range1(对应参数说明 [DECOMP_INFO] decomp_range1)。

      • Range2:设定第三个区间,Range1 ~ Range2(对应参数说明 [DECOMP_INFO] decomp_range2)。

      • Range3:第四个区间无须设定,Range2 ~

      • Node0:对应区间的offset(对应参数说明 [DECOMP_INFO] decomp_rangeX_f0)。

      • Node1:对应区间的shift(对应参数说明 [DECOMP_INFO] decomp_rangeX_f1)。

      • Node2:对应区间的基底(对应参数说明 [DECOMP_INFO] decomp_rangeX_f2)。


    16. CALIBRATION TOOL 1.0.14.0

    支援OBC、ALSC、LSC以及AWB产线校正,需额外使用offline的calibration tool。需确认计算机环境是否有安装Visual Studio 20xx可散发程序套件(Link:x86x64)。

    16.1. 校正流程

    在各情境下抓Raw,设定参数(修改*.ini),产生*.data,并将*.data刻录进去。

    16.1.1. 抓Raw方式

    16.1.2. 参数说明

    在calibration\SampleCode\Release\CalibrationInitialParameter.ini设定环境参数

    [RAW_INFO]

    1. filename :Raw名称。

      Raw data 命名规则是“filename” + “_” + “three numbers”

    2. frame_numbers :单次校正Raw个数,通常为1,除了SDC常会用多张校正。

    3. frame_start_index :Raw编号。

      • 若filename = "SDC"且frame_start_index = 1, 则在sample code里面的Raw必须命名为SDC_001。

      • 若需要3张Raw来校正,则filename = "SDC",frame_start_index = 2,frame_numbers = 3,则Raw必须命名为SDC_002、SDC_003、SDC_004。

    4. width :Raw image的width。

    5. height :Raw image的height。

    6. clip_x :Clip image的起始X座标,避免破坏Bayer Pattern排序,建议设置偶数。

    7. clip_y :Clip image的起始Y座标,避免破坏Bayer Pattern排序,建议设置偶数。

    8. clip_width :Clip image的widht,避免破坏Bayer Pattern排序,建议设置偶数。

    9. clip_height :Clip image的height,避免破坏Bayer Pattern排序,建议设置偶数。

    10. dump_clip_image :Dump clip image档案的开关,0表示关闭、1表示开启,预设为0。

    11. cfa_type :Bayer pattern的排序,即最左上角的色块。[0 = RGGB、1 = GRBG、2 = BGGR、3 = GBRG、4 = RGBGGIGI(R0)、5 = GBGRIGIG(G0)、6 = BGRGGIGI(B0)、7 = GRGBIGIG(G1)、8 = GIGIRGBG(G2)、9 = IGIGGBGR(I0)、10 = GIGIBGRG(G3)、11 = IGIGGRGB(I1)]

    12. source_type :选0为Raw,不建议修改。

    13. in_data_precision :输入Raw的精准度,预设为16。

    14. out_data_precision :输出*.data 的精准度,预设为16。

    15. cali_output_path :输出路径,不建议修改。

    [CALI_INFO]

    1. calibration_select :Calibration项目,AWB = 0、OBC = 1、SDC = 2、ALSC = 3、LSC = 4。

    2. load_calibration_data :Load *.data的开关。第一次校正时,必设为0,若要进行多次校正,从第二次校正开始,必须将此设为1,才会保存之前校正的资料,常用在OBC、ALSC、LSC、AWB、SDC。[此平台未支持SDC功能]

    3. load_calibration_data :Twinkie = 2、Pretzel = 3、Macaron = 4、Pudding = 5、Ispahan = 6、Ikayaki = 7、Muffin = 8、Maruko = 9、Opera = 10、Mercury5 = 16、Tiramisu = 17。

    [CALI_DB]

    1. cali_dump_data :Dump .txt的开关。选0,只会产生*.data;选1,除了产生*.data外,還会另外储存*.txt。

    2. cali_xxx_xxx_path :校正完的*.data路径,不建议修改。

    [DECOMP_INFO]

    1. decomp_enable :对Raw进行decompress的开关。

    2. decomp_input_bits :输入之Raw被压缩之后的实际bits数,须注意此时[RAW_INFO] in_data_precision须设定为16。

    以下为decompress参数:

    1. decomp_range0_f0 :f0r0

    2. decomp_range0_f1 :f1r0

    3. decomp_range0_f2 :f2r0

    4. decomp_range0 :r0

    5. decomp_range1_f0 :f0r1

    6. decomp_range1_f1 :f1r1

    7. decomp_range1_f2 :f2r1

    8. decomp_range1 :r1

    9. decomp_range2_f0 :f0r2

    10. decomp_range2_f1 :f1r2

    11. decomp_range2_f2 :f2r2

    12. decomp_range2 :r2

    13. decomp_range3_f0 :f0r3

    14. decomp_range3_f1 :f1r3

    15. decomp_range3_f2 :f2r3

    Decompress参考以下公式:

    (pixel - f0r0) ≪ f1r0 + f2r0, if pixel ≤ r0

    (pixel - f0r1) ≪ f1r1 + f2r1, if r0 < pixel ≤ r1

    (pixel - f0r2) ≪ f1r2 + f2r2, if r1 < pixel ≤ r2

    (pixel - f0r3) ≪ f1r3 + f2r3, if r2 < pixel

    [OBC] [ALSC] [LSC] [AWB] :后面章节详述介绍。

    16.1.3 产生 *.data

    Calibration Step:

    1. 在calibration\SampleCode\Release\image放入用來校正的Raw。

    2. 修改calibration\SampleCode\Release\CalibrationInitialParameter.ini。

      Figure 155:CalibrationInitialParameter.ini - RAW_INFO参数设定说明

    3. 执行calibration\SampleCode\Release\CalibrationRelease.exe。

      校正程序一开始会先检查执行路径目录,是否存在data and image资料夹 (自动产生)

      Figure 156:检查calibration所需的data文件夹是否存在

    4. 校正程式成功后,可在calibration\SampleCode\Release\data\cfg取得*.data。

      Figure 157:产生calibration所需的*.data档案

    16.1.4. 载入 *.data

    可使用MI_ISP_API_CmdLoadCaliData加载校正数据,详细请参考软件开发参考

    16.2. OBC调整

    校正sensor的black level。

    16.2.1. 校正环境

    校正环境为遮黑校正,须避免任何可能光源进入。遮黑时先观察串流画面是否有异常,无异常则进行下一步,若发现异常则暂停校正并立即反映,待问题解决再作后续动作。

    Figure 158:遮黑画面异常范例

    16.2.2. 参数说明

    AutoAssign :将 OB值设给所有Gain,值域0 ~ 1,建议设1。

    Target :校正后希望残留的值,单位为16-bit,值域0 ~ 65535,建议设0。

    Weight :将画面均分为3×3区块,在计算OB时每个区块的权重,值域0 ~ 16,建议全部设1。

    CaliGainIndex :依照ISO index来选填数值,值域0 ~ 15。

    16.2.3. 校正步骤

    1. 将total gain设为最小倍率,将画面遮黑抓Raw。

    2. 若为normal mode或是combine mode,则out_data_precision填16。

    3. 产生obc_cali.data,亦可产生dump_obc_data.txt看一下校正结果,再load obc_cali.data进去。

    4. 若为normal mode或是combinemode,则OB值会填到IQtool中OBC界面的blacklevel,单位为16 -bit。

    5. 若为HDR mode,长短曝要分开校正

      • 短曝校正:与normal mode相同,遮黑抓短曝Raw,且out_data_precision填16,产生obc_cali.data,再load obc_cali.data进去,则OB值会填到IQtool中OBC界面的blacklevel,单位为16-bit。

      • 长曝校正:遮黑抓长曝Raw,且out_data_precision填16,产生dump_obc_data.txt,再手动填入到IQtool中OBC界面的blacklevel_1,单位为16-bit。

      备注:

      A. Normal mode :表示为Linear mode(single frame) 和HDR mode(2 frames)。

      B. Combine mode :表示为Sensor端完成长、短曝光的合成影像包含影像数据压缩程序。

    16.2.4. 注意事项

    1. 假设遇到高倍gain与低倍gain的OB差异很大,需要为不同ISO index设定不同OB时,请直接利用AE手动设定各ISO index gain值遮黑拍Raw,产生dump_obc_data.txt,再手动填入到IQtool中OBC界面的blacklevel的Auto Mode 16个节点中。

    2. OBC校正完毕后,检查Gr/Gb数值是否一致,主要是可避免CrossTalk现象。

      建议手动调整取Gr = Min(Gr, Gb)、Gb = Min(Gr, Gb)。

    16.2.5 .data格式&大小

    Handle size :20 bytes

    Ctrl size :32 bytes

    Data size :128 bytes

    Total size :20 + 32 + 180 bytes

    16.3. ALSC调整

    不同的lens和sensor搭配会有不同的Y shading & color shading现象,因此当lens或sensor有更换就需要评估是否需要重新校正。

    ALSC校正会产生出R、G、B各一个27×17的table,针对画面不同区域给予不同的R、G、B gain,因此可同时改善Y shading & color shading,最多支援3种色温,不支援table内插。

    16.3.1. 校正环境

    均匀光源,最严谨的方法是使用Macbeth标准灯箱搭配diffuser来做校正,若没有diffuser就只能对灯箱中的灰墙,尽可能让光均匀去做校正。

    调整前务必确保OB和AWB色温曲线范围已校正且确实套用,用RGB sensor要确认IR cut有确实盖上。

    Figure 159:LSC / ALSC校正环境架设范例

    16.3.2. 参数说明

    TargetIndex : 选择目前要校正第几组table,最多支援3组,校正顺序不需依照0到2的顺序,但需要确保0到2的环境色温要由低到高即可。

    CCTNumber : 选择总共要校正几组色温表数据,默认是校正3组色温表,值域1 ~ 3。

    GridX/Y : Shading Table的大小,此平台预设为27x17。

    GridNumMax : Shading Table的最大table size,为一个定值,在此平台为27x17=459。

    Segment_Delta_Str_Mode: 预设16种模式,纵轴表示每个模式、横轴表示X/Y方向每个格子间距的大小,在此平台为X = 26、Y = 16格间距,默认模式内的值越大则周围方格越小,值域0 ~ 15。

    Figure 160:Delta_LUT_X默认16种模式分布

    Figure 161:Delta_LUT_Y预设16种模式分布

    ColorTemperature : 当前TargetIndex下的环境色温。

    OB_R/G/B_Value : 目前sensor的OB值,单位为16-bit,值域0 ~ 65535。

    RatioTable_R/G/B‘Num’ : 画面中心至角落补正强度ratio,值域0 ~ 255。

    备注:‘Num’表示数值编号,0代表画面中心位置,8代表四个角落位置。

    UnitGainResult : 选择是否产生1倍gain的Shading Table,0表示关闭、1表示启用,值域0 ~ 1。

    PortraitEnable : 对影像宽和高做检查,0表示关闭、1表示启用,值域0 ~ 1。

    Segment_Delta_Adv_Enable : 选择启动进阶模式开关,0表示关闭、1表示启用,值域0 ~ 1。当GridX/Y非此平台27x17时,须使用此进阶模式→非等距方格设定。

    Segment_Delta_LUT_X0~8 : X轴间距,每4个bit表示为一组索引值[index =(block size / 16) - 1],则实际pixel数目为(index + 1) x 16。索引值只限填1,2,4,8,16,未使用则设为0,最多支援至72组,在此平台为26格间距。

    Segment_Delta_LUT_Y0~8 : Y轴间距,每4个bit表示为一组索引值[index =(block size / 16) - 1],则实际pixel数目为(index + 1) x 16。索引值只限填1,2,4,8,16,未使用则设为0,最多支援至72组,在此平台为16格间距。

    16.3.3. 校正步骤

    1. 先決定要校正幾種燈源,將AE target设为1500左右拍去摄各色温Raw data,并确定raw data没有过曝,并将档案放至calibration tool的image文件夹中[备注:AE target data range = 10 ~ 2550]。

    2. 开启CalibrationInitialParameter.ini填入正确[RAW INFO](参考16.1.2)。

      • Raw data路径及格式。

      • in/out_data_precision设16。

      • calibrarion_select设4。

      • 当校正第一个色温时,load_calibration_data要设为0,当校正剩余色温时,load_calibration_data要设为1。

    3. 设定CalibrationInitialParameter.ini中[ALSC]校正参数(参考16.3.2)。

    4. 执行CalibrationRelease.exe产生alsc_cali.data。

    5. 重复2、3、4步骤将所有色温校正完毕产生最终alsc_cali.data。若校正时[CALI_DB]中的cali_dump_data有设为1,校正后会同时产生dump_alsc_data.txt,里面可以看到校正出来的shading table值。

    6. 需透过MI_ISP_API_CmdLoadCaliData这支API来套用alsc_cali.data。(详细请参考文档软件开发参考

    16.3.4. 调整界面

    于左侧选单点选Shading即会出现ALSC和ALSC_CTRL接口。

    Figure 162:ALSC和ALSC_CTRL调整界面

    16.3.5. 参数说明

    R Gain Table :ALSC R table,值域0 ~ 8191。

    G Gain Table :ALSC G table,值域0 ~ 8191。

    B Gain Table :ALSC B table,值域0 ~ 8191。

    R Ratio By CCT :ALSC table整体 R ratio值(128 = 1x),值域0 ~ 128。

    G Ratio By CCT :ALSC table整体 G ratio值(128 = 1x),值域0 ~ 128。

    B Ratio By CCT :ALSC table整体 B ratio值(128 = 1x),值域0 ~ 128。

    Points Num :Ratio by BV设置的节点个数(随不同环境亮度值(BV)提供设置不同的Ratio)。

    Ratio :各节点的Ratio值,027只扣chroma,28128扣chroma及luma。

    BV :各节点对应的BV值。

    16.3.6. 调整步骤

    1. 在不同BV下调整Ratio,通常在低BV的情况下会降Ratio,可以减轻因ALSC造成的外圈较脏。

    2. R/G/B Ratio By CCT预设为1x,若有需求再调整即可。

    16.3.7. 注意事项

    ALSC R/G/B Gain table 同时存在iqfile、alsc_cali.data,但API bin只能读写,并不会储存到API bin(因为size过大),因此每次开机都需要load alsc_cali.data。

    16.3.8. .data格式&大小

    Handle size :20 bytes

    Ctrl size :52 bytes

    Data size :4 + x bytes,x =(GridX*GridY*3*2 + 2*GridMax)/4的小数无条件进位值再乘4 GridMax = GridX or GridY较大的那一个

    Total size :20 + 52*cctNum +(4 + x)*cctNum bytes,cctNum = 校正的色温组数(1 ~ 3)

    16.4. LSC调整

    LSC校正会产生出R、G、B各一个32的table,针对画面不同区域给予不同的R、G、B gain,因此可同时改善Y shading,最多支援3种色温,不支援table内插。

    16.4.1. 校正环境

    同ALSC。

    16.4.2. 参数说明

    TargetIndex : 选择目前要校正第几组table,最多支援3组,校正顺序不需依照0到2的顺序,但需要确保0到2的环境色温要由低到高即可。

    CCTNumber : 选择校正几组色温表数据,默认是校正3组色温表,值域1 ~ 3。

    TableSize : Shading Table的大小,default为32。不建议修改此数值。

    LSCResult : Dump LSC结果影像。

    SegmentLength : 切割取样点的长度距离

    AutoCenter : 选择自动侦测输入影像的最亮中心点位置,值域0 ~ 1,建议设1。 若设为0,则使用下列InputOrientation and InputCenterX/Y手动设定。

    InputOrientation : 设定取样点方向,由影像最亮的中心点至角落点 0 :upper-left、1 :upper-right、2 :lower-right、3 :lower-left

    InputCenterX/Y : 设定影像最亮中心点位置,值域范围:0 ~ 4095。

    ColorTemperature : 当前TargetIndex下的环境色温。

    OB_R/G/B_Value : 目前sensor的OB值,单位为16-bit,值域0 ~ 65535。

    RatioTable_R/G/B’Num’ : 画面中心至角落补正强度ratio,值域0 ~ 255。 备注:’Num’表示数值编号,值域0 ~ 8。

    Ratio_Threshold : 用来避免暗角补偿被过度补偿,值愈大表示暗角补偿愈多、愈小则补偿愈少,暗角补偿愈多,会造成接近角落的正常的数据被过度补偿。当阀值愈小则补偿数值会根据当前最大索引值来找出补偿数值设为最大值,而最大索引值之后的索引值则维持最大补偿数值(不增加数值);反之阀值愈大则补偿数值愈大,Ratio Base = 100,值域0 ~ 25600。

    DebugLSCInfo : 仅适用于Debug mode,可提供相关错误讯息至SigmaStar进行问题分析使用,0表示关闭、1表示启用,值域0 ~ 1,建议设0。

    16.4.3. 校正步骤

    1. 同ALSC。

    2. 产生lsc_cali.data,亦可产生dump_lsc_data.txt或dump_lsc_result.raw看一下校正结果,再load lsc_cali.data进去,若无校正LSC时,此步骤可省略跳至下一项。

    16.4.4. 调整界面

    于左侧选单点选Shading即会出现LSC和LSC_CTRL界面。

    Figure 163:LSC和LSC_CTRL调整界面

    16.4.5. 参数说明

    R Gain Table :LSC R table,值域0 ~ 1023。

    G Gain Table :LSC G table,值域0 ~ 1023。

    B Gain Table :LSC B table,值域0 ~ 1023。

    R Ratio By CCT :LSC table整体R ratio值(128 = 1x),值域0 ~ 128。

    G Ratio By CCT :LSC table整体G ratio值(128 = 1x),值域0 ~ 128。

    B Ratio By CCT :LSC table整体B ratio值(128 = 1x),值域0 ~ 128。

    Points Num :Ratio by BV设置的节点个数(随不同环境亮度值(BV)提供设置不同的Ratio)。

    Ratio :各节点的Ratio值。

    BV :各节点对应的BV值。

    16.4.6. 调整步骤

    1. 在不同BV下调整Ratio,通常在低BV的情况下会降Ratio,可以减轻因LSC造成的外圈较脏。

    2. R/G/B Ratio By CCT预设为1x,若有需求再调整即可。

    3. 若有需求,可以直接调整R/G/B Gain table。

    16.4.7. 注意事项

    1. LSC R/G/B Gain table 同时存在iqfile、lsc_cali.data和API bin,会吃iqfile当默认值,若有API bin则会盖过iqfile,若有lsc_cali.data则会再盖过API bin。

    2. 正常流程会先load lsc_cali.data,这样会将LSC R/G/B Gain table储存在API bin,后续直接在API上调整,之后就不需要每次重新load lsc_cali.data。

    16.4.8. .data格式&大小

    Handle size :20 bytes。

    Ctrl size :60 bytes。

    Data size :8 + x bytes,x =(2 + TableSize * 3 * 2)/ 4的小数无条件进位值再乘4 。

    Total size :20 + 60 * + (8 + x) * cctNum bytes,cctNum = 校正的色温组数(1 ~ 3)。

    16.5. AWB调整

    用于产线校正,用来补偿各机台与Golden sample间的白平衡统计值差异。

    16.5.1. 校正环境

    灯箱中放置灰卡,让灰卡占满画面拍摄raw data。

    16.5.2. 参数说明

    HighLowCTMode :是否使用高低色温校正(旧版校正方式)。

    0表示OFF,校正Stitching建议使用此模式;

    1表示ON。

    CaliState :指定校正的模式(根据HighLowCTMode行为不同)。

    HighLowCTMode = 0

    0表示CALIB_GOLDEN;

    1表示CALIB。

    HighLowCTMode = 1

    0表示CALIB_GOLDEN_H;

    1表示CALIB_GOLDEN_L;

    2表示CALIB_H;

    3表示CALIB_L。

    BrightnessCaliMode :是否校正亮度(只有**HighLowCTMode = 0**有作用)。

    0表示OFF;

    1表示ON。

    CT :色温(只有**HighLowCTMode = 0**有作用),值域1000 ~ 10000。

    CaliNumber :校正色温总数(只有**HighLowCTMode = 1**有作用),最多支持2种色温,值域1 ~ 2。

    HighCT :高色温(只有**HighLowCTMode = 1**有作用),值域1000 ~ 10000。

    LowCT :低色温(只有**HighLowCTMode = 1**有作用),值域1000 ~ 10000。

    OB_R/GR/GB/B_Value :OB值设定,值域0 ~ 65535。

    16.5.3. 校正步骤

    HighLowCTMode = 0

    1. 分析多台机台AWB统计值落点,从中挑选出一台落点接近平均值的来当作golden sample。

    2. 校正时选择使用一种色温灯源去做校正,校正流程如下:

      1. 用golden sample与unit sample 拍摄raw data,并放至calibration tool的image文件夹中。

      2. 开启CalibrationInitialParameter.ini填入正确[RAW INFO](参考16.1.2)。

        • Golden sample raw data路径及格式。

        • in/out_data_precision设16。

        • calibrarion_select设2。

        • load_calibration_data设0。

      3. 设定CalibrationInitialParameter.ini中[AWB]校正参数(参考16.5.2)。

        • CaliState设0。

        • BrightnessCaliMode设0或1,依是否校正亮度决定。

        • CT设为校正灯源的色温值。

        • OB值设定,值域0 ~ 65535。

      4. 执行CalibrationRelease.exe在\data\cfg产生存有golden sample校正值的awb_cali.data,必须保存好此data直到校正结束。

      5. 开启CalibrationInitialParameter.ini填入正确[RAW INFO](参考16.1.2)。

        • Unit sample raw data路径及格式。

        • in/out_data_precision设16。

        • calibrarion_select设2。

        • load_calibration_data设1来保存之前校完的资料。

      6. 设定CalibrationInitialParameter.ini中[AWB]校正参数(参考16.5.2)。

        • CaliState设1。

        • BrightnessCaliMode设0或1,依是否校正亮度决定。

        • CT设为校正灯源的色温值。

        • OB值设定,值域0 ~ 65535。

      7. 执行CalibrationRelease.exe在\data\cfg产生最终的awb_cali.data,完成校正。若校正时[CALI_DB]中的cali_dump_data有设为1,校正后会同时产生dump_awb_data.txt,里面可以看到校正出来的值。

      8. 校正下一个unit sample时、只需load前一个unit sample校正出的awb_cali.data再执行State 1将前一个unit sample的校正结果覆盖掉即可。

      9. 需透过MI_S32 MI_ISP_API_CmdLoadCaliData这支API来套用awb_cali.data。(详细请参考文档软件开发参考

    HighLowCTMode = 1

    1. 分析多台机台AWB统计值落点,从中挑选出一台落点接近平均值的来当作golden sample。

    2. 校正时可选择使用一到两种色温灯源去做校正。

      A. 假设只用一种灯源做校正,校正流程如下:

      1. 用golden sample与unit sample拍摄raw data,并放至calibration tool的image文件夹中。

      2. 开启CalibrationInitialParameter.ini填入正确[RAW INFO](参考16.1.2)。

        • Golden sample raw data路径及格式。

        • in/out_data_precision设16。

        • calibrarion_select设2。

        • load_calibration_data设0。

      3. 设定CalibrationInitialParameter.ini中[AWB]校正参数(参考16.5.2)。

        • CaliState设0。

        • CaliNumber设1。

        • HighCT设为校正灯源的色温值。

        • OB值设定,值域0 ~ 65535。

      4. 执行CalibrationRelease.exe在\data\cfg产生存有golden sample校正值的awb_cali.data,必须保存好此data直到校正结束。

      5. 开启CalibrationInitialParameter.ini填入正确[RAW INFO](参考16.1.2)。

        • Unit sample raw data路径及格式。

        • in/out_data_precision设16。

        • calibrarion_select设2。

        • load_calibration_data设1来保存之前校完的资料。

      6. 设定CalibrationInitialParameter.ini中[AWB]校正参数(参考16.5.2)。

        • CaliState设2。

        • CaliNumber设1。

        • HighCT设为校正灯源的色温值。

        • OB值设定,值域0 ~ 65535。

      7. 执行CalibrationRelease.exe在\data\cfg产生最终的awb_cali.data,完成校正。若校正时[CALI_DB]中的cali_dump_data有设为1,校正后会同时产生dump_awb_data.txt,里面可以看到校正出来的值。

      8. 校正下一个unit sample时,只需load前一个unit sample校正出的awb_cali.data再执行State 2将前一个unit sample的校正结果覆盖掉即可。

      9. 需透过MI_S32 MI_ISP_API_CmdLoadCaliData这支API来套用awb_cali.data。(详细请参考文档软件开发参考

      B. 校正如果 使用两种灯源 做校正,校正流程如下:

      1. 用golden sample与unit sample拍摄两种色温的raw data,并放至calibration tool的image文件夹中。

      2. 开启CalibrationInitialParameter.ini填入正确[RAW INFO](参考16.1.2)。

        • Golden sample高色温raw data路径及格式。

        • in/out_data_precision设16。

        • calibrarion_select设2。

        • load_calibration_data设0。

      3. 设定CalibrationInitialParameter.ini中[AWB]校正参数(参考16.5.2)。

        • CaliState设0。

        • CaliNumber设2。

        • HighCT设为校正灯源的色温值。

        • OB值设定,值域0 ~ 65535。

      4. 执行CalibrationRelease.exe在\data\cfg产生存有golden sample高色温校正值的awb_cali.data,必须保存好此data直到校正结束。

      5. 开启CalibrationInitialParameter.ini填入正确[RAW INFO](参考16.1.2)。

        • Golden sample 低色温raw data路径 及格式。

        • in/out_data_precision设16。

        • calibrarion_select设2。

        • load_calibration_data设1。

      6. 设定CalibrationInitialParameter.ini中[AWB]校正参数(参考16.5.2)。

        • CaliState设1。

        • CaliNumber设2。

        • LowCT设为校正灯源的色温值。

        • OB值设定,值域0 ~ 65535。

      7. 执行CalibrationRelease.exe在\data\cfg产生存有golden sample高低色温校正值的awb_cali.data,必须保存好此data直到校正结束。

      8. 开启CalibrationInitialParameter.ini填入正确[RAW INFO](参考16.1.2)。

        • Unit sample高色温raw data路径及格 式。

        • in/out_data_precision设16。

        • calibrarion_select设2。

        • load_calibration_data设1来保存之前校完的资料。

      9. 设定CalibrationInitialParameter.ini中[AWB]校正参数(参考16.5.2)。

        • CaliState设2。

        • CaliNumber设2。

        • HighCT设为校正灯源的色温值。

        • OB值设定,值域0 ~ 65535。

      10. 执行CalibrationRelease.exe在\data\cfg产生存有golden sample高低色温校正值与unit sample高色温校正值的awb_cali.data,必须保存好此data直到校正结束。

      11. 开启CalibrationInitialParameter.ini填入正确[RAW INFO](参考16.1.2)。

        • Unit sample低色温raw data路径及格式。

        • in/out_data_precision设16。

        • calibrarion_select设2。

        • load_calibration_data设1来保存之前校完的资料。

      12. 设定CalibrationInitialParameter.ini中[AWB]校正参数(参考16.5.2)。

        • CaliState设3。

        • CaliNumber设2。

        • LowCT设为校正灯源的色温值。

        • OB值设定,值域0 ~ 65535。

      13. 执行CalibrationRelease.exe在\data\cfg产生最终的awb_cali.data,完成校正。若校正时[CALI_DB]中的cali_dump_data有设为1,校正后会同时产生dump_awb_data.txt,里面可以看到校正出来的值。

      14. 校正下一个unit sample时,只需load前一个unit sample校正出的awb_cali.data再执行State 2 & 3将前一个unit sample的校正结果覆盖掉即可。

      15. 需透过MI_ISP_API_CmdLoadCaliData这支API来套用awb_cali.data。(详细请参考文档软件开发参考

    16.5.4. .data格式&大小

    HighLowCTMode = 0

    Handle size :20 bytes

    Ctrl size :24 bytes

    Data size :12 bytes

    Total size :20 + 24 + 12 bytes

    HighLowCTMode = 1

    Handle size :20 bytes

    Ctrl size :28 bytes

    Data size :16 bytes

    Total size :20 + 28 + 16 bytes

    16.6. SDC调整

    坏点补偿,可以补偿黑点和白点。

    16.6.1. 校正环境

    遮黑抓Raw(同OB),照均匀光抓Raw(同ALSC)。

    16.6.2. 参数说明

    Item : 遮黑抓Raw校白点,则选0;照均匀光源抓Raw校黑点,则选1;混合前两种结果,则选2。

    MixerRatio : 校白点、黑点的比例,只有在Item = 2的时候才有效,100代表全部取Item = 0的结果、0表示全部取代Item = 1的结果。

    CaliImgNum : 校正的Raw个数,必须和frame_numbers相同。

    TableSize : 256。

    InvalidRatio : 设定滤除搜寻范围的比例值,值域0 ~ 100,建议设0。

    CaliFlag : 设定是否需要判断影像中的群聚坏点,0表示Disable、1表示Enable,值域0 ~ 1。(1.0.1.0之后的版本,此参数无效,算法Default ON)

    ValidValue : 输出参数,显示补偿坏点过后,画面中N+1的坏点pixel value,N表示补偿坏点数量值。

    ClusterAmount : 输出参数,计算判断为cluster的bad pixel point数量。

    TotalAmount : 输出参数,显示侦测出bad pixel point的总数。

    BadPixelTh : 设定判断为坏点条件,值域0 ~ 1000,设越大越难被判为坏点。(1.0.9.0之后的版本支持此功能)

    16.6.3. 校正步骤

    抓RAW校正坏点,可以只校正黑点或白点、或混和黑点、白点结果,主要一些注意设定如下。

    A. 校白点

    Step 1:Item = 0,load_calibration_data = 0;

    Step 2:Item = 2,load_calibration_data = 1,MixerRatio = 100。

    B. 校黑点

    Step 1:Item = 1,load_calibration_data = 0;

    Step 2:Item = 2,load_calibration_data = 1,MixerRatio = 0。

    C. 混和白跟黑点

    Step 1:Item = 0,load_calibration_data = 0;

    Step 2:Item = 1,load_calibration_data = 1;

    Step 3:Item = 2,load_calibration_data = 1,MixerRatio(根据要的比例自行调整)。

    若遮黑还是会看到白点,或是照均匀光还是会看到黑点,坏点依然没有被补偿,请反应给SigmaStar。

    16.6.4. .data格式&大小

    Handle size : 20 bytes

    Ctrl size : 44 bytes

    Data size : 6144 bytes

    Total size : 20 + 44 + 6144 bytes

    17. 与MACARON差异列表

    模块名称 差异功能 差异参数(删除) 差异参数(新增)
    HDR 新增鬼影补偿 u16SensorExpRatio
    bDynRatioEn
    u8CRefSel
    u16NoiseLevel[16]
    u16MotionTh
    u16MotionAdjLut[7]
    HDR Ex 新增鬼影补偿 新增API
    3DNR 新增可降低移动躁声的扰动 u16MdThd
    u8TfLut[16]
    u8YSfStr
    u8MdThd
    u16TfLut[16]
    u8YSfBlendOffset
    3DNR EX 新增紫边区域躁点处理 优化高亮度区的粉红色拖影 新增API
    Crosstalk 新增根据亮度调整强度 u8StrengthV2
    u16ThresholdV2
    u16ThresholdOffsetV2
    u8Strength
    u8Threshold
    u16Offset
    u8StrengthByY[15]
    NRDeSpike 新增可根据diff与亮度调整DPC强度 u16DiffGainCenterNeighbor
    u16DiffThdCornerCross
    u8DiffGainCenterNeighbor
    u8DiffThdCornerCross
    u16BlendLut[5]
    u8StrengthByY[15]
    NRLuma 优化前级YNR处理 bLumaAdjEn
    u8LumaX[9]
    u16LumaStrByY[10]
    u8Wei[20]
    u8Strength
    u8GMaskSel
    u16SpfBlendLut[2]
    NRLuma Adv 新增后级YNR处理 新增API
    NRChroma Adv 新增前级CNR处理 新增API
    Sharpness 优化Edge的高频区域 stEdgeCtrl
    stTextureCtrl
    u8EdgeKillLUT
    bDirEn
    u16SharpnessUD
    u16SharpnessD
    u16EdgeKillLUT
    u16SharpnessUD[2]
    u16SharpnessD[2]
    u8PreCorUD[2]
    u8PreCorD[2]
    u8PreCorMotGain
    u8LpfEdgeGainUD
    u8LpfEdgeGainD
    u8WeakDetailEnhance
    u8DetailMotOffset
    u8MotGain[16]
    Sharpness Ex 优化Edge的高频区域 新增API
    PFC 新增去紫边功能 新增API
    PFC Ex 新增去紫边功能 新增API