ISP API Tuning SOP


REVISION HISTORY

Revision No.
Description
Date
1.0 (API Ver. 1.0)
  • Initial release
  • 12/20/2023
    1.1 (API Ver. 1.0)
  • Added AEConvergeSpeedEX API
  • 01/04/2024
    1.2 (API Ver. 1.0)
  • Added FDAWB and FDAWBInfo API
  • Added FWST Strategy API
  • 01/04/2024
    1.3 (API Ver. 1.0)
  • Added Hue API
  • Added AlscAdj API
  • Updated Dummy API
  • Updated Dummy EX API
  • 01/17/2024
    1.4 (API Ver. 1.0)
  • Updated Dummy EX API
  • 02/05/2024
    1.5 (API Ver. 1.0)
  • Updated description of Sharpness and SharpnessEx
  • 02/19/2024
    1.6 (API Ver. 1.0)
  • Added FDAE API
  • Added FDAE_EX API
  • Added FDAF API
  • Added AF_Adjust API
  • Added AF_Adjust_II API
  • Added AF_Adjust_III API
  • Added AF_BackUpPosition API
  • Added AF_Offset API
  • Added FDAF API
  • Added AF_DetectFlatZone API
  • Added AF_StartVCMPos API
  • 05/14/2024
    1.7 (API Ver. 1.0)
  • Revised FDAE_EX API
  • 05/20/2024
    1.8 (API Ver. 1.0)
  • Added description of scene mode API
  • 05/31/2024
    1.9 (API Ver. 1.0)
  • Revised description of FDAE_EX API
  • 06/20/2024
    1.10 (API Ver. 1.0)
  • Update AF_Adjust_III API
  • 06/21/2024
    1.11 (API Ver. 1.0)
  • Revised description of FDAE_EX API
  • 06/26/2024

    CALIBRATION


    OBC

    OBC基本原理

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

    RAW图像抓取要求

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

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

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

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

    遮黑画面异常范例

    OB校正步骤

    1. Plugin选单选择SStarCalibrationTool → CalibrationOBC

      Plugin选单 --> SStarCalibrationTool --> CalibrationOBC示意图

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

      设定RAWsetting示意图

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

      CalOBGain示意图

    校正结果分析

    CalibrationOBC结果示意图

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


    ALSC

    ALSC基本原理

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

    Lens Shading:

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

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

    Color Shading:

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

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

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

    RAW图像抓取要求

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

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

    3. 抓取RAW数据。

    ALSC校正步骤

    1. Plugin选单选择SStarCalibrationTool → CalibrationALSC

      Plugin选单 --> SStarCalibrationTool --> CalibrationALSC示意图

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

      设定RAW setting示意图

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

      勾选Show ALSC Table示意图

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

      设定OBC参数与色温参数示意图

    5. 点击GenTable进行校正

    校正结果分析

    CalibrationALSC结果示意图

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

    注意事项

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


    AWB

    AWB基本原理

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

    AWB校正步骤

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

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

    3. 确认已校正设定好OBC

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

    5. Plugin选单选择AwbAnalyzerCombo

      Plugin选单 --> AwbAnalyzerCombo示意图

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

      设定色温范围示意图

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

      AwbAnalyzerCombo界面

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

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

    注意事项

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


    CCM

    CCM基本原理

    CCM校正原理,是根据sensor拍摄各个色温下24色卡的实际颜色信息,再根据目标颜色信息,计算出3X3 CCM矩阵,使得相机输出的颜色表现符合我们的期望。校正前请务必先决定好gamma,如果要校正成对比机的gamma,请参考Gamma Fitting。详细使用说明请参阅CCM Analyzer plugin

    RAW图像抓取要求

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

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

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

    4. 使用API Tool抓取raw数据

    CCM校正步骤

    1. Plugin选单选择CCM Analyer

      Plugin选单 --> CCM Analyer示意图

    2. 设定对应的Raw信息

      设定RAW setting示意图

    3. Open Source 打开对应的欲校正的影像来源,目前可以支持RAW/BMP两种文件格式

      • RAW: 如果打开的文件格式为.raw的话,在校正前会扣除OB(会自动从BleckLevel的Manual数值取得),并乘上正确的WB gain(从下方6个灰色patch算出),后续校正过程中会套上Gamma Curve(会自动从Gamma中的Manual Gamma曲线取得)。

      • BMP: 如果打开的档案是.bmp,则只有校正过程会被套用Gamma Curve。因此使用bmp作为校正来源,需要确保此.bmp檔是在 CCM前(不含CCM)的模块有被开启、CCM后(含CCM)的模块有被关闭并确认colortrans有对齐拨放器 的情况下拍得。此外如果是.bmp档不需理会raw setting的参数。

      开启影像来源后,点击左键,拖曳框选欲校正的色块即可。

      CCM Open Source示意图

    4. Open Target 可以指定每个色块欲校正的目标色彩。目前有几组Default Target可供选择,或者用户可以Customer Target自定义目标色块。

      Default Target : 有以下几种目标色彩可供选择

      • SkypeCertification : 微软Skype video specification校正色块目标,可参考https://learn.microsoft.com/en-us/SkypeForBusiness/certification/test-spec?redirectedfrom=MSDN。(预设)

      • XRite after 2014 : XRite根据2014年11月前统计出的目标校正色块。

      • XRite before 2014 : XRite根据2014年11月后统计出的目标校正色块,可参考https://www.xrite.com/service-support/new_color_specifications_for_colorchecker_sg_and_classic_charts

      • BabelColor Avg: BabelColor根据30张色卡平均出来的目标校正色块,可参考https://babelcolor.com/tutorials.htm。

      Customer Target : 可以照用户需求自行定义目标色块。在apitool=>taget_image下有提供预设色卡(同SkypeCertification)。

      Target Saturation : 可以设定要校正到目标色卡饱和度的几%,建议调整上下限为80%~120%。

      CCM Open Target示意图

    5. 调整Component constraint

      CCM倍率限制示意图

    6. 设定校正参数及目标函数,如下图。

      CCM校正参数设定示意图

      • 黄色框 : 设定目标函数为delta C或delta E,其中delta C只考虑色域误差,delta E会多考虑亮度误差。

      • 红色框 : 设定目标函数使用CIE 76或CIE 2000定义的color difference。

      • 绿色框 : 抑制Max Error参数,预设为10,可在0~100间调整。调整后可以Trade off Avg Error以及Max Error,但调太大会牺牲Avg Error,建议设置在50以内。

      • 蓝色框 : 校正算法选择,勾选的话会使用较精准但较慢的算法,取消勾选则会使用较不精准但较快的算法。

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

      CCM Calculate示意图

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

      CCM Apply示意图

    校正结果分析

    CCM校正结果示意图

    校正结果分析界面如上图。

    • 红色框:显示当前校正结果,目标函数对应先前设定的参数。

    • 黄色框:在Lab色彩空间上显示目标色卡颜色落点及校正后颜色落点,圆点为目标色卡颜色落点,方点为机器落点,可以可视化颜色误差大小。

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

    • 绿色框:每个色块的色彩误差值,值越小与标准色卡的差距就越小。可以查看当前校正结果以及各种目标函数组合计算出的结果,组合如下,CIE2000 deltaC、CIE2000 deltaE、CIE76 delta C及CIE 76 delta E。

    注意事项

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


    AE Exposure Table 设定

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

    调整界面

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

    AE设定接口

    AE Exposure Table

    参数说明

    NumOfExpoTblEntry:设定AE exposure table的数量。以AE设定接口设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)。

    设定项目

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

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

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

    3DNR

    3DNR基本原理

    3DNR校正是用来评估Sensor的在各种sensor gain中不同亮度的噪音程度。Linear mode校正前需要先确保OBC已经被校正并套用。HDR mode校正前需要先确保OBC以及AWB色温框已经被校正并套用。

    RAW图像抓取要求

    校正场景可以为灯箱Dynamic Range Chart或普通实验室暗房场景(需要尽量复杂确保各种颜色亮度出现)。

    3DNR校正场景,左图为Dynamic Range Chart,右图为一般实验室场景

    校正3DNR需要根据sensor gain校正,并校正到最大会使用的sensor gain。Index的对应为index 0代表1024、index1代表2048、index2代表4096,以此类推。

    1. 拍摄校正raw图前,要先设定欲校正的index。使用Manual AE将ISPGain设定为1024,SensorGain设定为 欲校正的倍率 。调整灯光及Shutter 使画面不过曝或其他不正常曝光

    2. 画面曝光调整完成后可以先拍摄2张raw检查校正条件是否达标,具体要求可以参考确认校正资料是否合格

    3. 抓取60张同场景raw图作为校正数据,抓取时需要保持环境场景不变(无运动物体、无亮度变化),抓取Raw图时要依照gain index放到文件夹下,例如index0、index1……(名字自定义)。

    4. 建议从index0(SensorGain=1024)开始校正,后续 SensorGain每增加一倍,Shutter或光源就减半 ,例如:先校正index0(SensorGain=1024)时,US=14000校正条件达标,当要校正index1(SensorGain=2048)时,则US=7000或光源强度调弱一半,便可确保校正条件维持达标。

    校正设定及步骤

    校正工具

    需要IQTool v2.0.124以上,并使用插件SStar3DNRCalibration

    选择3DNR校正工具选单

    校正接口设定说明

    校正参数设定接口

    1. Set Raw Format:设定raw的分辨率、宽、高及Bayer pattern等等信息。

    2. Folder:输入raw的文件夹路径,文件夹中的raw档皆为同一Gain Index的档案。

    3. Assign Gain Index:要校正的Gain Index,需要从0开始填,若有一段Gain Index区间要校正为同一个值,可用横杠连接,例如Gain index 0到6要校正为一样的值可写做0-6。最终要填到gain index 15。

    4. OB Gain Index:校正的OB档位,会从OBC模块去读取对应档位的OBC参数。

    5. Frame:校正的raw数量,建议60张。

    6. OB/Dummy Mode:只读的OBC及dummyEx dummy3参数

    7. HDR Mode:勾选后可以支持HDR长曝校正,并且字段中会出现,各档位WB Gain供填入。

    8. Dump Data勾选可以产生对应校正txt 文件,可以用来参考校正结果是否正常,Debug Log勾选有弹窗提醒。

    校正步骤

    校正完成显示接口

    Step 1. 校正前按照前述章节搜集校正raw档,并依照Gain index区分文件夹。 Linear mode 要先确认BlackLevel已经正确校正并套用及Dummy_EX中的Dummy3已经正确设定。 HDR mode 要先确认BlackLevel_P1已经正确校正并套用。

    Step 2. 根据接口说明设定Raw信息及各文件位校正信息,并点击Generate,等待底下进度条跑完即完成校正。

    Step 3. 校正完成后接口显示如下,点击文件夹字段下方直方图会显示该校正数据于 每个颜色通道及亮度区间的数量直方图 ,并且会在IQ Tool的data/cfg下产生ne_cali.data,最终可以用来加载版端。如果Dump Data有被勾选会产生dump_ne_data_WIDTHxHEIGHT_gain0#.txt,例如: gain00代表index0,gain01代表index1。

    确认校正数据是否合格

    正常的校正数据范例

    从左到右为暗到亮,越暗的场景左边点数越多,需确认每个亮度下RGB三个通道都有对应的count数。(除了前2个亮度count数可以比较低,尽量保证其他亮度count数大于50)

    正常校正数据

    不合格的校正数据范例

    如下图显示点数几乎集中在暗部,亮部几乎没有点数,因此校正数据不合格。如果发生此情形请先依序检查 校正模式(HDR/Linear Dummy Mode)、OB设定以及Raw场景曝光情况

    异常校正数据

    校正结果的套用

    临时套用

    校正结束后可以用接口上工具套用校正数据,以供验证效果。步骤为勾选Load Cali Data,便可点选Select Cali选择校正产生的ne_cali.data,最后点击CalibApply即可套用。但需要注意这种套用方式重新启动,效果不会生效。

    接口工具套用校正数据示意图

    开机生效套用

    如果要开机时就生效需要将ne_cali.data文件放入板端,并调用MI_ISP_CmdLoadCaliData来套用ne_cali.data。

    检查校正参数套用是否生效

    点击套用或调用MI_ISP_API_CmdLoadCaliData后,串口会显示如下图Log,说明校正数据套用成功。

    校正套用成功串口Log文字

    3DNR校正后需要重新调整的参数

    3DNR套用校正后,所有参数都要调回默认, 只需要调整md.thd/md.gain,默认为64/400

    其他参数建议调整如下:

    • md.thdByY/md.GainByY全部调回64,可视情况微调。

    • M2S.Lut还原默认,不建议调整。

    • MotshpBlendLut还原默认,可视情况调整。

    • TF.lut还原默认,不建议调整。

    • MotHistDelayByDiff还原默认,不建议调整。

    • Dummy.dummy2全改64。

    校正效果验证

    3DNR校正被正确套用后,Debug motion map会在静态场景会比没校正均匀。

    • 校正前,如果没调整md.thdByY/md.GainByY则debug motion map如下,呈现各种亮度的动静判断不均匀。

      校正前debug motion map

    • 校正后,即便不大幅度调整md.thdByY/md.GainByY,debug motion map如下呈现各种亮度动静判断均匀。

      校正后debug motion map

    注意事项

    1. 场景亮度分布需要相对均匀,不要有过曝或明显曝光不足情况。

    2. OBC或者Dummy_EX dummy3如果有改动,则需要重新打开SStar 3DNR Calibration工具才能生效。

    3. Raw的存放路径要根据ISO文件位分开在不同的文件夹下存放,工具会读取该文件夹路径。

    Linear mode

    1. Dummy Mode需要从Dummy_EX的Dummy3去设置,3DNR校正工具会从参数中去获取。

    2. OBC的校正数值会从BlackLevel中去获取。

      • 当OBC中OpType选择为auto时,则3DNR校正工具会根据字段中的OB Gain Index来Load对应OB值
      • 当OBC中OpType选择为manual时,则3DNR校正工具会直接使用manual中的OB参数。

    HDR mode

    1. HDR mode的3DNR校正只支持长曝校正,因此根据HDR混合情况,后续需要调整亮区的md.thdByY/md.GainByY。

    2. 校正时只需要勾选HDR mode并填如WB R/B Gain即可,其他步骤皆跟Linear mode相同。

    3. 校正时OBC 是用BlackLevel_P1(长曝OB)去拿。

    4. 校正时色温框需要被正确校正,因此色温框有改动时,HDR mode的3DNR视情况需要重新校正。


    GAMMA FITTING & COLOR CORRECTION


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


    Gamma Fitting

    Color fitting的结果容易受到亮度差异的影响,而亮度差异主要来自AE和gamma,因此在color fitting前务必先做gamma fitting。此步骤主要目的是将调整机台的gamma fit到与对比机的gamma接近。校正前请先确认dynamic range是full range,可以看histogram是否有到最大/最小值。

    校正环境

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

    拍摄画面范例

    校正界面

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

    Gamma Fitting界面

    校正步骤

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

      拍摄source及target画像示意图

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

      点选接口工具栏的Options,填入正确的raw information及OB(WB不需要设定),完成后点选OK。

      补充:OB的单位是12bit,最大值只有255,后续会修正为单位是16bit,最大值是65535。

      Raw Setting设定接口

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

      框选OECF patch范例

    3. 读取target image的OECF patch值:

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

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

      Gamma fitting设定建议

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

      理想gamma curve要smooth且递增


    Color Correction

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

    CCM调整

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

    调整界面

    CCM调整界面

    参数说明

    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的总合,SUM0/SUM 1/SUM 2分别代表第1 / 2 / 3列的总合,read就会自动更新,如果不是1024代表有问题,请手动修改CCM。

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

    HSV调整

    当CCM套入后仍有颜色希望微调,则可使用HSV来达成。HSV API在Souffle改为采用HSY色彩空间,会将整个色域切成36分区,其中肤色切分的较细方便使用者对肤色进行细部调整。使用者可依需求调整不同色相及饱和度及亮度对于其他分量作细调。HSV使用auto mode时,请务必确认Index是依据什么来切换,带有_ByIso后缀词的参数是依据gain来切换,而无后缀词是依据色温(这边的色温节点和CCM相同,由CCM来控制)来切换。

    Hue的36区块切分方式如下:

    HSV Hue切分方式

    调整界面

    HSV调整界面

    参数说明

    HueByHueLut : 可依需求局部调整色相,将360度色相分为36份,分别控制每个色相旋转角度。值域范围:-127 ~ 127。(0为不调整),参数切换是根据色温。

    HueBySatLut : 可依需求局部调整色相,将饱和度等分为9份,分别控制每个等分饱和度的色相旋转角度,由左至右为饱和度由小到大。值域范围:0 ~ 255。(128 = 1x),参数切换是根据色温。

    HueByYLut : 可依需求局部调整色相,将亮度等分为9份,分别控制每个等分亮度的色相旋转角度,由左至右为由暗到亮。值域范围:0 ~ 255。(128 = 1x),参数切换是根据色温。

    SatByHueLut : 可依需求局部调整饱和度,将360度色相分为36份,分别控制每个色相的饱和度。值域范围:0 ~ 255。(128 = 1x),参数切换是根据色温。

    SatBySatLut : 可依需求局部调整饱和度,分别控制每个等分饱和度的饱和度增减,由左至右为饱和度由小到大。值域范围:-511 ~ 511(0为不调整),参数切换是根据色温。

    SatByYLut : 可依需求局部调整饱和度,将亮度等分为9份,由左至右为由暗到亮,分别控制每个等分亮度的饱和度增减。值域范围:0 ~ 255(128 = 1x),参数切换是根据色温。

    SatBySYLut : 可依需求局部调整饱和度,将亮度与饱和度的乘积(S*Y)等分为9份,由左至右为亮度与饱和度的乘积(S*Y)由小到大,分别控制每个等分乘积的饱和度增减。值域范围:-511 ~ 511(0为不调整),参数切换是根据色温。

    YByHueLut : 可依需求局部调亮度,将360度色相分为36份,分别控制每个色相的亮度。值域范围:值域范围:-511 ~ 511(0为不调整),参数切换是根据色温。

    YBySatLut : 可依需求局部调亮度,将饱和度等分为9份,分别控制每个等分饱和度的亮度增减,由左至右为饱和度由小到大。值域范围:0 ~ 255(128 = 1x),参数切换是根据色温。

    YByYLut : 可依需求局部调亮度,将亮度等分为9份,分别控制每个等分亮度的亮度增减,由左至右为由暗到亮。值域范围:0 ~ 255(128 = 1x),参数切换是根据色温。

    VibranceEn : 自然饱和度功能开关。开启后此模块内与饱和度相关的控制皆会失效。取而代之的是韧体内部内定的饱和度相关调整曲线,可再增加饱和度的同时保持肤色饱和度少量改变。

    GrayProtectStrength : 灰色物颜色保护强度。值域范围:0 ~ 63。接近灰色物体可利用此参数来确保色相,饱和度,以及亮度不被调整。

    GrayProtectTh : 定义灰色物体的阈值。值域范围:0 ~ 1023。数值越大越容易被定义为灰色物,可利用此参数来确保色相,饱和度,以及亮度不被调整。

    DebugMode : 除错模式。值域范围:0 ~ 4可分别显示画面中特定的1.色相,2.饱和度,3.亮度,以及4.亮度与饱和度的乘积。

    注意事项: H与Y的调整都是基于Hue的调整量,再针对ByS以及ByY做调整。换句话说,若HbyH的调整量为0,那么HbyS以及HbyY则失效。若YbyH的调整量为0,那么YbyS以及YbyY则失效。

    调整步骤

    在做完CCM后,若对于画面中的色相(H),饱和度(S),亮度(Y)作微调。

    1. 若要微调 色相(H): 可根据特定的色相(HueByHueLut),特定的饱和度(HueBySatLut)以及特定的亮度(HueByYLut)进行微调,若不知想调整的区块坐落于哪个index则可使用DebugMode来进行查找。

    2. 若要微调 饱和度(S): 可根据特定的色相(SatByHueLut),特定的饱和度(SatBySatLut),特定的亮度(SatByYLut)进行微调,以及特定的饱和度与亮度乘积(SatBySYLut),若不知想调整的区块坐落于哪个index则可使用DebugMode来进行查找。

    3. 若要微调 亮度(Y): 可根据特定的色相(YByHueLut),特定的饱和度(YBySatLut),以及特定的亮度(YByYLut)进行微调,若不知想调整的区块坐落于哪个index则可使用DebugMode来进行查找。

    Debug mode使用方式,建议先将HSV设置为Manual Mode

    想查找特定区域的HUE,可将Debug mode设置为1,接着使用Manual.HueByHueLut_ByIso设置为下表:

    HUE Debug Map

    想查找特定区域的SAT,可将Debug mode设置为2,接着使用Manual.HueBySatLut_ByIso设置为下表:

    HSY Saturation Debug Map

    想查找特定区域的Y,可将Debug mode设置为3,接着使用Manual.HueByYLut_ByIso设置为下表:

    HSY Y Debug Map

    想查找特定区域的S与Y乘积,可将Debug mode设置为4,接着使用Manual.SatBySYLut_ByIso设置为下表:

    HSY SY Debug Map

    饱和度与亮度乘积(SatBySYLut)功能通常用于高亮度高饱和区域,可将该区域的饱和度降低,来达到还原高饱和区域的细节,效果图如下:

    基于SY 减少饱和度

    灰色区域保护功能,通常会希望能拉高饱和度且保持灰度区域不被增加饱和,此时可以使用GrayProtectTh参数来定义灰,若MAX(R,G,B) – MIN(R,G,B)小于定义的TH则会启动该功能,配合上GrayProtectStrength,若设置为63则可保证该区块经过HSY模块后HSY的值都不被调整。

    灰色区域保持色相,饱和度,亮度不改变

    若想调整整体饱和度但又不想将肤色拉太饱和,则可以使用VibranceEn开关,此开关开启后,原先调整饱和度的参数将失效,取而代之的是韧体内部预设的设置。以下为自然饱和度开启的结果。

    开启自然饱和度

    HUE调整

    可以调整整体HUE的角度。

    调整界面

    HSV调整界面

    参数说明

    Lev : 可以调整整体HUE的角度,+1为顺时针+2度,-1为顺时针-2度。值域范围:0 ~ 100。(50为不调整)


    DataRange调整

    根据视讯输出格式来调整对应的RGB to YUV转换矩阵。

    若未开启Colortrans以及ColortransEX功能,系统内默认值为BT601 limit。

    调整界面

    于左侧选单点选Colortrans,接着在右侧主画面可找到Colortrans以及ColortransEX接口。

    Colortrans以及ColortransEX

    参数说明

    < Colortrans >

    Enable : 开启自定义色彩转换矩阵功能。

    Colortrans.Y.Ofst : 调整Y偏差值。10-bit domain,值域范围:0 ~ 2047,负数以2的补码表示,等同于±1023。

    Colortrans.U.Ofst : 调整U偏差值。10-bit domain,值域范围:0 ~ 2047,负数以2的补码表示,等同于±1023。

    Colortrans.V.Ofst : 调整V偏差值。10-bit domain,值域范围:0 ~ 2047,负数以2的补码表示,等同于±1023。

    Colortrans.Matrix : 调整RGB-YUV矩阵,值域范围:0 ~ 1023,1倍为256,负数以2的补码表示,等同于±1.996。

    对于YUV_OFST,Matrix[9],负数以2的补码表示。

    UV偏差值,在矩阵相乘后,已经预设加上128。

    下面例子为,将YUV转为16 ~ 235的值域范围

    Y = (0.257 * R) + (0.504 * G) + (0.098 * B) + 16
    Cb = -(0.148 * R) - (0.291 * G) + (0.439 * B) + 128
    Cr = (0.439 * R) - (0.368 * G) - (0.071 * B) + 128
    
    Matrix[9] = {66, 129, 25, 986, 950, 112, 112, 930, 1006}
    Y_OFST = 64
    U_OFST = 0 (预设已加上128 * 4,所以填0)
    V_OFST = 0 (预设已加上128 * 4,所以填0)
    

    < ColortransEX >

    Enable : 开启变更色彩转换矩阵功能,若ColortransEX Enable开启,Colortrans参数则失效。

    Type : 共六种转换矩阵可以选择,分别为BT601 limit、BT601 full、BT709 limit、BT709 full、BT2020 limit以及BT2020 full。


    Saturation调整

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

    调整界面

    于左侧选单点选Saturation,接着在右侧主画面可找到Saturation接口。

    Saturation调整界面

    参数说明

    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 : 节点的数值可以自由决定

    Sat.Coring : UV做同减的动作,建议使用Sat.BySYLut即可。

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


    Sat.ByYsft[5] & Sat.ByYLut[6]

    Sat.BySsft[5] & Sat.BySLut[6]

    DENOISE & EDGE ENHANCEMENNT


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

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

    此外,在高倍增益的情况下噪声较大,过完WB Gain之后,R和B Channel的噪声会再被放大,导致画面暗处偏紫。在该情况下,可优先考虑多扣R和B Channel的OBC方式来做校正。此外也可以将暗处2DNR强度增强(DPC,NRDeSpike)来压低躁声,减少躁声被放大。


    Crosstalk & False Color调整

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

    Crosstalk(Green Equal)

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

    现象

    画面出现迷宫纹:

    Crosstalk造成的迷宫纹现象

    调整界面

    于左侧选单点选BayerCompensation,接着在右侧主画面可找到Crosstalk接口

    Crosstalk调整界面

    参数说明

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

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

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

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

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

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

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

    False Color

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

    现象

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

    False Color现象

    调整界面

    于左侧选单点选BayerCompensation,接着在右侧主画面可找到AntiFalseColor接口。

    False Color调整界面

    参数说明

    DbgEn : Debug模式,值域范围:0 ~ 1,影像越亮则去伪彩强度越强。此debug模式和Demosiac的debug模式会有冲突,以最后呼叫的API为主。

    ColorSpaceSel : 去伪彩模式,值域范围:0 ~ 1,0代表在RGB domain做灰,对齐G通道的值,1代表在yuv domain做灰,不会影响到亮度。

    Preserve : 边缘保护强度,值域范围:0 ~ 7,值越大则边缘区域越不容易被判断成moire区域,去伪彩强度越弱。

    Strength : 整体强度,值域范围:0 ~ 31,值越大则moire区域愈容易被降饱和度,去伪彩强度越强。

    调整步骤
    1. 将Strength设最大值,使用debug模式去观察moire区域是否符合预期,再调整Preserve,最后再调降Strength。

    2. 切换ColorSpaceSel,观察不同做法的效果如何。

    补充:

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

    2. False Color的调整与Crosstalk存在高度相依(过强的Crosstalk会导致伪彩严重,进而导致后级的False Color无法将伪彩去干净),建议先完成Crosstalk的调整后再进行anti-false color的调整。

    3. 由于BayerCompensation接口的write page会先呼叫False Color,再呼叫Demosaic,所以debug模式会以Demosaic为主,如果需要看False Color的debug模式,再呼叫一次False Color即可。

    PFC(Purple Fringing Compensation)

    现象

    主要是由色散现象造成,通常会在亮暗交界处出现紫色边缘。

    Purple fringing现象

    调整界面

    于左侧选单点选PFC,接着在右侧主画面可找到PFC接口。

    PFC调整界面

    参数说明

    DbgEn : 显示PFC/BLCC的作用范围。值域0 ~ 8,各数值表示如下:

    value output
    0 Debug off
    1 PFC ByHue strength
    2 PFC ByY strength
    3 PFC ByContrast strength
    4 BLCC ByHue strength
    5 BLCC ByY strength
    6 BLCC ByContrast strength
    7 PFC final strength
    8 PFC/BLCC final strength

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

    UStrength : PFC/BLCC作用在U channel的强度。值域0 ~ 255,值越大越强。

    VStrength : PFC/BLCC作用在V channel的强度。值域0 ~ 255,值越大越强。

    UStrengthLimit : PFC/BLCC作用在U channel的强度上限。值域0 ~ 63。

    VStrengthLimit : PFC/BLCC作用在V channel的强度上限。值域0 ~ 63。

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

    PFCByHue : 根据不同的Hue,给予不同强度的PFC处理。值域0 ~ 255,值越大PFC越强。

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

    BLCCByY : 背光颜色 (Backlit Color) 通常出现在较暗的地方,且周围是高亮区域,所以可针对不同亮度,给予不同BLCC的强度,横轴越右边代表亮度越大。值域0 ~ 4095,值越大越强。

    BLCCByHue : 根据不同的Hue,给予不同强度的BLCC处理。值域0 ~ 255,值越大BLCC越强。

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

    ByYSft : PFCByY/BLCCByY的横轴节点,以二的幂次方累加,值域范围:1 ~ 15。

    ByContrastSft : PFCByContrast/BLCCByContrast的横轴节点,以二的幂次方累加,值域范围:1 ~ 11。

    Hue颜色表示

    ByHue各index颜色分布

    调整步骤
    1. 依据镜头表现,观察紫边的宽度,选择MaskSel的大小,若紫边较宽,可先选用较大的mask做补偿。

    2. 观察紫边所处的颜色分布、亮度区域、对比程度,来调整PFCByHue、PFCByY,以及PFCByContrast。

    3. 观察背光颜色所处的颜色分布、亮度区域、对比程度,来调整BLCCByHue、BLCCByY,以及BLCCByContrast。

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

    DEMOSAIC

    现象

    增加画面分辨率的同时减少方向误判与artifacts的产生。

    物体边缘出现的artifacts现象

    高频区方向判断错误

    调整界面

    于左侧选单点选BayerCompensation,接着在右侧主画面可找到DeMosaic接口。

    DeMosaic调整界面

    参数说明

    DbgMode : Debug模式,值域范围:0 ~ 2,1代表方向判断影像,红/蓝/绿/黑色区域分别对应到垂直/水平/细节区域/无向性区域,2代表non-smooth影像,只有开启SmoEn才会有效果,影像越亮代表越不会被抹平,影像越黑代表越会被抹平。此debug模式和FalseColor的debug模式会有冲突,以最后呼叫的API为主。

    Demosaic方向判断流程

    GradientTh : 方向性区域判断阀值,值域范围:0 ~ 63,值越大则越少区域被判断成方向性区域,可能导致细节模糊和拉链状artifacts,值太小则会使细节区变少。

    bDetailIntpEn : 辅助高频区域开关,值域范围:0 ~ 1。

    u8BRatio : 辅助高频区域判断,值越大高频区域越有方向性,值域范围:0 ~ 15。

    SmoEn : 抹平功能开关,值域范围:0 ~ 1。

    SmoRange : 抹平范围,值域范围:0 ~ 7,值越大则越多区域被抹平。

    SmoStrength : 抹平强度,值域范围:0 ~ 255,值越大则抹平的强度越强。

    u8VarThX[8] : u8VarThY的亮度节点,以二的幂次方累加,值域范围:0 ~ 7,可以根据不同亮度区间改变可调整的范围大小。

    u8VarThY[8] : 无向性区域判断阀值(IsoTh),值域范围:0 ~ 255,值越大则越多区域被判断成无向性区域,可能导致细节模糊和拉链状artifacts。

    调整步骤
    1. 关闭抹平功能(SmoEn设0)。

    2. 将DbgMode设1,观察方向判断是否符合预期,再微调u8VarThY和GradientTh来区分无方向/有方向/细节区。

    3. 如有需求,再尝试开启抹平功能,抹平一些因为Demosaic造成差值错误的区域,可以同时将DbgMode设2,观察抹平区域和强度是否符合预期。

    补充:

    1. 建议先使用默认值即可。若有调整需求,建议调整幅度不要太大,除非很确定适用于各种场景。

    2. 请不要将抹平功能当成NR,除非其他模块都调不动,再来微调此模块。


    DynamicDP & NRDespike调整

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

    DynamicDP(Dynamic Defective Pixel Correction)

    DPC处理peak noise的方式是将该点取代掉,因此效果较为明显。

    受限于sensor的制造工艺,对于几百万像素的sensor,不可能做到所有的像素都是完好的,尤其是对于低成本的sensor来说,坏点数为100或者1000ppm(parts per million,百万分之一)是正常的。

    若sensor中存在坏点,经过图像的插值(如demosaic)和滤波过程,坏点的尺寸会变大(坏点扩散),而且由于色彩校正和串扰补偿,坏点处颜色的强度和饱和度也会明显提高,因此需要在插值等过程之前对坏点进行校正。

    调整界面

    于左侧选单点选BayerCompensation,接着在右侧主画面可找到DynamicDP接口。

    DynamicDP调整界面

    参数说明

    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,越大越容易取代。

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

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

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

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

    DynamicDP Cluster

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

    调整界面

    于左侧选单点选BayerCompensation,接着在右侧主画面可找到DynamicDP_Cluster接口。

    DynamicDP_Cluster调整界面

    参数说明

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

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

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

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

    SortRGGBEn : Sort mode各自channel开关,可以指定特定channel做或是不做坏点替换。

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

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

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

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

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

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

    NRDeSpike

    NRDeSpike处理peak noise的方式是将该点与邻近点的mean/median拉近,因此只能降弱,无法完全消除。

    调整界面

    于左侧选单点选BayerDenoise,接着在右侧主画面可找到NRDeSpike接口。

    NRDeSpike调整界面

    参数说明

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

    < CenterNeighbor >

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

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

    CenterNeighbor参数示意图

    < CornerCross >

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

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

    CornerCross参数示意图

    < MeanStd >

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

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

    MeanStd参数示意图

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

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

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

    调整步骤

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

    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. 调整好的参数另外记下来。

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

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

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


    NR3D、NRLuma_Adv & NRChroma调整

    NR3D的功能强大,除了降低temporal noise之外,还能提供静态或动态区域的信息给NRLuma_Adv做为参考,因此建议先从NR3D调起。

    NR3D ON

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

    调整界面

    于左侧选单点选Denoise_3DNR,接着在右侧主画面可找到NR3D接口。

    NR3D调整界面

    参数说明

    DbgEn :Debug模式,值域0 ~ 1。影像颜色越黑则代表越被判断成动区。

    < Spatial Domain Denoise、SF系列参数 >

    这边的控制,请参考NRLuma_Adv、NRChroma_Adv、NRChroma_Pre

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

    TF.StrY : 控制消除Y noise的temporal denoise 强度,值域0 ~ 127,值越大denoise强度越强,建议不要设超过64,超过64移动物体容易产生拖影。

    TF.StrC : 控制消除color noise的temporal denoise 强度,值域0 ~ 127,值越大denoise强度越强,建议不要设超过16,超过16移动物体容易产生颜色拖曳。

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

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

    MotEdgeRefineStr : 抑制移动物体前缘被判定为动态区的强度。值域0 ~ 1023,越大移动物体前缘越不容易被判定为动态区,但须同时注意避免造成严重拖影。

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

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

    MD.ThdByMot : motion阀值根据motion控制,值域0 ~ 63。值越大NR3D越强。

    MD.GainByMot : motion scale根据motion控制,值域0 ~ 48。值越大motion information越小,NR3D越强。

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

    TF.LUT : 主要利用difference与motion信息来决定temporal denoise的强度,difference与motion小很有机会是静态区,反之则很有机会是动态区。Temporal denoise强度共有0 ~ 15共16阶,此TF.LUT值由左至右分别控制强度14 ~ 0的x轴坐标,因此table里面的值会是递增的,值域0 ~ 255,默认值:{24, 25, 26, 27, 28, 30, 32, 33, 36, 38, 42, 46, 51, 59, 73}。

    TF.LUT

    < Denoise by motion系列参数 >

    MotShpBlendLut : 根据motion信息调整混和sharpness branch的权重,值域0 ~ 64。由左至右代表动到静,值越大混合权重越大,用来降低动态区域的shrapness强度。注意shrapness branch的实际shrapness强度需以Sharpness API中的BranchStrength控制。

    MotHistDelayByDiff : Motion信息延迟时间,值域范围:0 ~ 7。横轴为当前帧和前一帧的motion信息差异,纵轴为motion信息往后级传的额外延迟时间,值越大则延迟越久,希望静态的motion信息有延迟,让运动过后的区域的motion信息持续久一些,在3DNR还未收敛前,让后级的2DNR能保持在较强的强度(动区通常强度较强)久一些。

    ShdMotSensitivity : 针对移动阴影区域的motion敏感度,越大代表对motion侦测越敏感,2DNR较强,3DNR较弱,越小代表对motion侦测越不敏感,2DNR较弱,3DNR较强。

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

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

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

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

      • 建议值:{0, 2048, 2731, 3072, 3277, 3413, 3511, 3584, 3686, 3803, 3910, 3988, 4020, 4048, 4061, 4069}

    3. 微调动区sharpness与noise程度的平衡。

      • 调整MotShpBlendLut,由左至右代表动态区到静态区域。将值慢慢加大至动区shrapness与noise程度都能接受的程度。建议同时搭配Sharpness的BranchStrength与BranchGainByStd做调整。
    4. 针对拖影严重的亮度,可利用MD.GainByY做微调。将对应亮度区域的值慢慢下降至拖影与noise都可接受的程度。

    5. 当gain越来越高,移动noise若都只靠MotShpBlendLut是不够的,此时可以修改TF.LUT,让曲线下降得更缓慢一些来增加移动区域NR3D的强度,但同时也须考虑拖影变严重的程度。

    NR3D OFF

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

    调整界面

    同NR3D ON调整界面

    参数说明

    同NR3D ON参数说明

    调整步骤

    确认Iqfile是使用3dnr off的版本,系统NRLevel设置应为0,Despike调整方法与3DNR on相同。若还有需求,可以再调整剩下的denosie,调整方法与3DNR on相同。若无法处理太扰动的noise建议可以降弱Sharpness,且善用NRLuma_Adv的debug map,利用EdgeTHByLuma将平坦区域与细节及明显边界区域分开来,在平坦区域用较强的SF2,可以得到较好的noise表现。需注意:因3DNR被设置为关闭,此时ISP无法提供画面的motion信息,其他模块中有用到byMotion机制的参数,皆会使用index 1(最动),在调整上需注意。

    NRLuma_Adv

    NRLuma_Adv主要用来降低spatial noise,透过调整NRLuma_Adv中< Edge区域划分参数 >,能将画面分为平坦区以及Edge区域,再透过< NR Strength相关参数 >来各别调整平坦区以及Edge区域的denoise强度,其中< Edge区域划分参数 >以及< NR Strength相关参数 >,皆可针对动静区域再做进一步的调控。

    调整界面

    于左侧选单点选Denoise_YNR,接着在右侧主画面可找到NRLuma_Adv接口

    NRLuma_Adv调整界面

    参数说明

    < Edge区域划分参数 >

    DbgMode : Debug模式,值域范围:0 ~ 2,1为edge判断的模式,影像越亮代表越被判断成edge区,影像越暗则代表越被判断成non-edge区,这边只做Luma处理,影像颜色没有意义。2为defect detection的模式,可以观察白点defect出现的地方。

    HotPixCnt : 亮点补偿个数,值域范围:0 ~ 7,决定需要补偿的坏点(亮点)数,值越大需要补偿的坏点(亮点)越多,NR强度越强,建议值为1。

    DarkPixCnt : 暗点补偿个数,值域范围:0 ~ 7,决定需要补偿的坏点(暗点)数,值越大需要补偿的坏点(暗点)越多,NR强度越强,建议值为1。

    HotPix : 亮点补偿阀值,值域范围:0 ~ 255,四个值决定阀值曲线(亮点的程度)。当前像素与周围像素点差值小于第一个阀值则不为坏点,而差值大于第四个阀值时就会判定为坏点(亮点),使用较强的Noise reduction,中间两个阀值则是作为要混合多少Noise reduction的依据。

    DarkPix : 暗点补偿阀值,值域范围:0 ~ 255,四个值决定阀值曲线,当前像素与周围像素点差值小于第一个阀值则不为坏点,而差值大于第四个阀值时就会判定为坏点(暗点),使用较强的Noise reduction,中间两个阀值则是作为要混合多少Noise reduction的依据。。

    EdegThByLuma :根据亮度调节Edge阀值,值域范围:0 ~ 8191,横轴为亮度,越右边越偏亮。可以搭配DbgMode调整,观察edge分布是否合理。

    LumaSft : EdegThByLuma的亮度节点,值域范围:0 ~ 8,可以根据不同亮度区间改变可调整的范围大小。

    EdegThByMot : 根据motion调节L1 Edge阀值,值域范围:0 ~ 255,横轴为motion程度,越右边越静。小于L1 Edge阀值的部分将被划分为平坦区域,可以搭配DbgMode调整,观察edge分布是否合理。

    EdegThByMot1 :根据motion调节L2 Edge阀值,值域范围:0 ~ 255,横轴为motion程度,越右边越静。大于L1 Edge+L2 Edge阀值的部分将被划分为Edge区域,可以搭配DbgMode调整,观察edge分布是否合理。

    EdgeThByRadius_Sft : 调整EdgeThByRadius与中心点距离的尺度大小,值域范围:0 ~ 7,可以根据不同距离区间调整尺度大小。

    EdgeThByRadius : 根据与中心点距离调节Edge阀值,值域范围:0 ~ 255,横轴为与中心点的距离大小,越右边离中心点越远。

    < NR Strength参数 >

    SF1_Str : edge区的NR强度,值域范围:0 ~ 127,可以按照Debug模式来观察何处edge区来调整NR大小。

    SF2_Str : 平坦或是移动区域的NR强度,值域范围:0 ~ 127,可以按照Debug模式来观察何处是平坦或是动区来调整NR大小。

    SF3_KerStr : 有方向性的去躁参数,与中心点差异的横移量,值域范围:0 ~ 9,值越大则去躁效果越强。

    SF3_KerWei : 有方向性的去躁参数,混合权重表,值域范围:0 ~ 63,横轴为与中心点的差异,越右边差异越大;纵轴为权重,正常情况下,差异越小则权重设越大。

    SF3_StrByLuma : 有方向性的去躁参数,依据亮度调整强度,值域范围:0 ~ 127,横轴为亮度,越右边越偏亮。

    SF3_StrByMot : 有方向性的去躁参数,依据motion去混合mean filter的结果,值域范围:0 ~ 127,横轴为motion,越右边越偏静,纵轴为混合mean filter结果的比例,由于mean filter过强,因此不建议设太大。

    SF3_StrByHue :有方向性的去躁参数,依据hue调整强度,值域范围:0 ~ 127,横轴为hue(同HSV)。

    SF3_StrByHue_SatTh1 : 有方向性的去躁参数,依据saturation调整强度,值域范围:0 ~ 127,当saturation小于SF3_StrByHue_SatTh1,则SF3_StrByHue失效,也就是强度的调整不受到饱和度太低的hue影响,当saturation大于SF3_StrByHue_SatTh2,则完全依照SF3_StrByHue调整强度,过度区则线性变化。

    SF3_StrByHue_SatTh2 :有方向性的去躁参数,依据saturation调整强度,值域范围:0 ~ 127,当saturation小于SF3_StrByHue_SatTh1,则StrengthByHue失效,也就是强度的调整不受到饱和度太低的hue影响,当saturation大于SF3_StrByHue_SatTh2,则完全依照SF3_StrByHue调整强度,过度区则线性变化。

    SF3_StrByDir_Sft : 调整SF3_StrByDir边缘状态(edge state)的尺度大小,值域范围:0 ~ 7。

    SF3_StrByDir :有方向性的去躁参数,依据边缘状态(edge state)调整强度,值域范围:0 ~ 127。

    SF4_KerStr : 无方向性的去躁参数,与中心点差异的横移量,值域范围:0 ~ 9,值越大则去躁效果越强。

    SF4_KerWei : 无方向性的去躁参数,混合权重表,值域范围:0 ~ 63,横轴为与中心点的差异,越右边差异越大;纵轴为权重,正常情况下,差异越小则权重设越大。

    SF4_StrByLuma : 无方向性的去躁参数,依据亮度调整强度,值域范围:0 ~ 127,横轴为亮度,越右边越偏亮。

    SF4_StrByMot : 无方向性的去躁参数,依据motion去混合mean filter的结果,值域范围:0 ~ 127,横轴为motion,越右边越偏静,纵轴为混合mean filter结果的比例,由于mean filter过强,因此不建议设太大。

    Strength : 整体强度,值域范围:0 ~ 256,Strength1为edge区的强度,Strength2为平坦与移动区的强度,值越大则NR越强。最终强度是以Strength为基础,再加上StrengthByMot和StrengthByLuma的控制,因此建议不要将Strength设到最强,否则StrengthByMot和StrengthByLuma就失效了。

    StrengthByMot : 依据motion调整强度,值域范围:0 ~ 64,横轴为motion,越右边越偏静。

    StrengthByLuma : 依据亮度调整强度,值域范围:0 ~ 64,横轴为亮度,越右边越亮。

    CombinationRatio :weak-edge区(DbgMode灰色)使用无方向性和有方向性的去躁参数混合比例,值越大有方向性的去躁参数比例越多,值越小无方向性的去躁参数比例越多,值域范围:0 ~ 255。

    调整步骤
    1. 先将DbgMode设为1,调整EdgeTh相关的参数来区分edge区和non-edge区。

    2. 将Strength(Strength1、Strength2)调到最大,并将SF4的参数调到最弱。

    3. 调整SF1_str与SF2_str的强度是否可以符合预期。

    4. 调整SF3 by y/mot,如果觉得强度不符合预期可以再调(SF3_Kerstr、SF3_KerWei)。

    5. 若仍有无法消除的躁点或是有方向性的纹路可以将SF4打开。

    6. 调整SF4 by mot,如果觉得强度不符合预期可以在调(SF3_Kerstr、SF3_KerWei)。

    7. 如果有针对特殊需求可以在调整SF3_StrByHue、SF3_StrByRadius。

    8. 将DbgMode设为2,观察坏点位置,来调整defect detection参数(HotPixCnt、DarkPixCnt、HotPix、DarkPix)。

    9. 调整整体强度,可以针对亮度与motion去做混和。

    10. 开关NRLuma_Adv来确认前后效果差异,而后继续调sharpness或是其他NR的参数。

    NRChroma_Adv

    压抑画面中颜色的噪声。

    调整界面

    于左侧选单点选Denoise_CNR,接着在右侧主画面可找到NRChroma_Adv接口。

    NRChroma_Adv调整界面

    参数说明

    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,值越大越强。

    StrengthByMot : 依据motion调整NR的强度,横轴为motion,越右边越偏静。值域0 ~ 63,值越大越强。

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

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

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

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

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

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

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

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

    NRChroma_Pre

    压抑画面中颜色的噪声。

    调整界面

    于左侧选单点选Denoise_CNR,接着在右侧主画面可找到NRChroma_Pre接口。

    NRChroma_Pre调整界面

    参数说明

    DbgEn : Debug模式,值域范围:0 ~ 1,使用前务必将Strength设为最大值256,影像的U/V信道值越小代表越使用mean filter结果,U/V通道值越大代表越使用median filter结果。

    Strength : 整体强度,值域范围:0 ~ 256,值越大则NR效果越强。

    MotionEnhance : 动态区域加强程度,值域范围:0 ~ 127,第一格为Y信道加强幅度,第二格为U/V信道加强幅度,值越大则动态区域NR效果越强。

    MaskGenTh : U/V通道阀值,用于产生mask,并在此mask内做NR,值域范围:0 ~ 1023,值越大则mask越大,NR效果越强。

    MeanFilterTh : Y/U/V通道阀值,用于控制mean filter强度,值域范围:0 ~ 1023,第一格为Y通道阀值,第二格为U/V通道阀值,只有当mask内的差值小于此阀值才会被纳入做mean filter,值越大则NR效果越强。

    MedianFilterTh : Y/U/V通道阀值,用于控制median filter强度,值域范围:0 ~ 1023,第一格为Y通道阀值,第二格为U/V通道阀值,只有当mask内的差值小于此阀值才会被纳入做median filter,值越大则NR效果越强。

    BlendTh : 混合阀值,值域范围:0 ~ 1023,当mask内的U/V通道最大差值小于BlendTh,则使用mean filter的结果,值越大则越偏向使用mean filter的结果。

    BlendGap : 混合区间,值域范围:0 ~ 15,当mask内的U/V通道最大差值大于BlendTh+2^BlendGap,则使用median filter的结果,值越大则越偏向使用mean filter的结果。

    调整步骤
    1. 将Strength设最大。

    2. 将BlendTh设1023,观察mean filter的效果,如有需求再调整MeanFilterTh和MaskGenTh。

    3. 将BlendTh和BlendGap都设0,观察median filter的效果,如有需求再调整MedianFilterTh和MaskGenTh。

    4. 调整BlendTh和BlendGap,适当分配mean filter和median filter范围,可搭配Debug模式以方便观察。

    5. 观察动态区色噪,再微调MotionEnhance。

    6. 调整Strength,减轻色溢。


    Sharpness调整

    调整锐化强度调整,例如不同亮度的锐化强度,黑边白边的锐化强度,动静态的锐化强度等等。SOUFFLE一共有两个Sharpness调整模块,分别为Sharpness以及SharpnessEX。

    Sharpness流程图

    SharpnessEX流程图

    Sharpness

    调整界面

    于左侧选单点选Sharpness,接着在右侧主画面可找到Sharpness & SharpnessEx接口。

    Sharpness调整界面

    Sharpness_EX调整界面

    参数说明

    < Sharpness >

    DbgEn :Debug模式,值域范围:0 ~ 1。灰色代表没上edge,白/黑色分别代表白/黑边。

    SharpnessUD :无向性edge的强度,用于提高发丝和草地等细小纹理清晰度,值域范围:0 ~ 127。横轴依序为高频/中频/中低频,纵轴为无向性edge的强度增益,值越大则edge越强。

    SharpnessD :方向性edge的强度,用于增强图像边缘,但调的太强会导致锯齿状,值域范围:0 ~ 127。横轴依序为高频/中频/中低频,纵轴为方向性edge的强度增益,值越大则edge越强。

    [名词解释] Edge state : 算法会估算出每个像素边缘状态的分数,来判断单纯边缘区和复杂区,值越小则越偏向单纯边缘区,使用者可以透过更改StateByGain及StateByOffset来调整算法估算出的Edge State。StateByGain及StateByOffset参数中都各有Filter0及Filter1两组调整分数的机制,调整后的分数用途略有不同。

    Filter0:用于区分有向及无向性的边缘(StateByGain越大越偏向DratioByState的左边,StateByOffset越大越偏向DratioByState的右边)。

    Filter1:用于区分单纯边缘区和复杂区,作为D/UDWeibyState中Static[0] Motion[0]及Static[1] Motion[1] Blending的依据(StateByGain越大越偏向使用Static[1] Motion [1],StateByOffset越大越偏向使用Static[0] Motion [0])。

    StateByGain :依据增益量调整滤波器得到边缘数值,增益量越小表示保留较多复杂区/平坦区,值域范围:0 ~ 31。

    StateByOffset :依据位移量调整滤波器得到边缘数值,位移量越大表示保留较多复杂区/平坦区,值域范围:0 ~ 255。

    StdvByY :依据亮度调整标准偏差的增益,值域范围:0 ~ 255。横轴为亮度,越右边越偏亮,纵轴为调整标准偏差的增益(64 = 1x),值越大则标准偏差越大。

    StdvByMot :依据motion调整标准偏差的增益,值域范围:0 ~ 63。横轴为motion,越右边越偏静,纵轴为调整标准偏差的增益(16 = 1x),值越大则标准偏差越大。

    UDWeiByState :依据state调整无向性边缘的中低频/中频/高频edge混合比例,值域范围:0 ~ 256。横轴由左至右依序为静态纹理细节区(Static[0])、静态边缘区(Static[1])、动态纹理细节区(Motion[0])、动态边缘区(Motion[1]),纵轴为混合比例的权重数值,当权重值等于0时,则偏向中低频edge、当权重值等于256时,则偏向高频edge。

    DWeiByState :依据state调整方向性边缘的中低频/中频/高频edge混合比例,值域范围:0 ~ 256。横轴由左至右依序为静态纹理细节区(Static[0])、静态边缘区(Static[1])、动态纹理细节区(Motion[0])、动态边缘区(Motion[1]),纵轴为混合比例的权重数值,当权重值等于0时,则偏向中低频edge、当权重值等于256时,则偏向高频edge。

    UDWeiByMot :依据motion调整无向性的频段,值域范围:0 ~ 256。横轴为motion由动至静,越右边越偏静,纵轴为调整频段权重,值越大则越偏向静态边缘频段

    DWeiByMot :依据motion调整方向性的频段,值域范围:0 ~ 256。横轴为motion由动至静,越右边越偏静,纵轴为调整频段权重,值越大则越偏向静态边缘频段。

    UDGainByStd :依据标准偏差调整无向性的增益,值域范围:0 ~ 255。横轴为经过StdvByY和StdvByMot处理过的标准偏差,越右边标准偏差越大,纵轴为edge增益(64 = 1x),值越大则edge越强。

    DGainByStd :依据标准偏差调整方向性的增益,值域范围:0 ~ 255。横轴为经过StdvByY和StdvByMot处理过的标准偏差,越右边标准偏差越大,纵轴为edge增益(64 = 1x),值越大则edge越强。

    UDEdgeKillLutUp :根据edge强度调整无向性白边的edge强度,值域范围:0 ~ 1023。横轴为输入edge,纵轴为输出edge,值越大则edge越强。

    UDEdgeKillLutDown :根据edge强度调整无向性黑边的edge强度,值域范围:0 ~ 1023。横轴为输入edge,纵轴为输出edge,值越大则edge越强。

    DEdgeKillLutUp :根据edge强度调整方向性白边的edge强度,值域范围:0 ~ 1023。横轴为输入edge,纵轴为输出edge,值越大则edge越强。

    DEdgeKillLutDown :根据edge强度调整方向性黑边的edge强度,值域范围:0 ~ 1023。横轴为输入edge,纵轴为输出edge,值越大则edge越强。

    DRatioByState :设定不同的Edge state要用多少无向性与方向性edge的混合比例表,值域范围:0 ~ 256。横轴为Edge state,越左边越偏单边缘区,越右边越偏复杂区/平坦区,纵轴为混合无向性与方向性edge,值越大则越偏向方向性edge。

    EdgeGain :整体增益调整,值域范围:0 ~ 1023。Edge增益(128 = 1x),值越大edge强度越强。

    GainByStd :依据标准偏差调整整体增益,值域范围:0 ~ 255。横轴为经过StdvByY和StdvByMot处理过的标准偏差,越右边标准偏差越大,纵轴为edge增益(64 = 1x),值越大则edge越强。通常平坦区的标准偏差较小,因此可以降低标准偏差小的区域的edge,让平坦区更平顺。也可以用来降低运动的edge,若将StdvByMot的前几格降低,则GainByStd就会查到前几格,使得运动区降低edge。总共有七个节点,如有需要改变横轴节点,可调整GainByStdSft。

    GainByStdSft :GainByStd的横轴节点,值域范围:0 ~ 15。有七个断点,横轴依序为0、2GainByStdSft[0]、2GainByStdSft[0] + 2GainByStdSft[1]、2GainByStdSft[0] + 2^GainByStdSft[1] + 2^GainByStdSft[2]、...等等,纵轴依序为GainByStd[0]、GainByStd[1]、GainByStd[2] ...等等。如需调整,建议用Excel画出原本的曲线,调整GainByStdSft将想要细调的区间切细后,找到对应的GainByStd,确认效果和先前一致后,再调整GainByStd。

    CorByY :依据亮度调整coring,值域范围:0 ~ 255。横轴为亮度,越右边越偏亮,纵轴为coring 值,值越大则edge越弱。

    SclByY :依据亮度调整edge增益,值域范围:0 ~ 255。横轴为亮度,越右边越偏亮,纵轴为edge增益(64 = 1x),值越大则edge越强。

    GainByMot :依据motion调整最终edge增益,值域范围:0 ~ 255。横轴为motion由动至静,越右边越偏静,纵轴为edge增益(128 = 1x),值越大则edge越强。

    < Dering >

    SOUFFLE新增Dering系列参数,当前像素要做边缘强化时,会考虑周遭像素的状况来加以限制Edge的输出,Edge的变化量只能比周遭第N亮/暗(DerRmNRCnt)的点拉升/降低多少,降低或拉升的量则可以根据不同亮度来设置。如下图所示,CurrentY为当前像素亮度值,Edge为经过边缘强化后的数值,UpBound(DerOver/UnderShootLimitByY)为限制加强的上/下界,而最终又可以透过GainByMot来根据动静区域来给定不同的限制,out edge为最终输出。

    顺序:DerOver/UnderShootLimitByY -> DerOver/UnderShootGain -> DerGainByMot

    Dering示意图

    DerRmNRCnt :排除与周遭像素差异第N暗的点(DerRmNRCnt[0])、排除与周遭像素差异第N亮的点(DerRmNRCnt[1])作为edge增强的参考亮度,值域范围:0 ~ 6。

    DerOverShootGain :白边的强度调整,值域范围:0 ~ 255。横轴为edge程度由左至右为平坦到边缘,纵轴为edge增益,值越大则白边强度越强。

    DerUnderShootGain :黑边的强度调整,值域范围:0 ~ 255。横轴为edge程度由左至右为平坦到边缘,纵轴为edge增益,值越大则黑边强度越强。

    DerGainByMot :根据motion调整edge强度,值域范围:0 ~ 255,横轴为motion,越右边越偏静,纵轴为edge强度(64 = 1x),值越大则edge越强。

    DerOverShootLimitByY :依据亮度调整白边的强度,值域范围:0 ~ 1023。横轴为亮度,越右边越偏亮,纵轴为edge强度,值越大代表保留较多白边强度。

    DerUnderShootLimitByY :依据亮度调整黑边的强度,值域范围:0 ~ 1023。横轴为亮度,越右边越偏亮,纵轴为edge强度,值越大代表保留较多黑边强度。

    StrengthByHue :根据hue调整edge强度,值域范围:0 ~ 255。横轴为hue(同HSV),纵轴为edge增益(64 = 1x),值越大则edge越强,实际效果受到StrengthBySat影响。

    StrengthBySat :根据saturation调整edge强度,值域范围:0 ~ 127。横轴为saturation,当saturation小于StrengthBySat[0],则StrengthByHue失效,也就是edge强度的调整不受到饱和度太低的hue影响,当saturation大于StrengthBySat[1],则完全依据StrengthByHue调整edge强度,过度区则线性变化。

    BranchStrength :输出Sharpness强度,用于3DNR – MotShpBlendLut,值域范围:0 ~ 255。Edge强度(64 = 1x),值越大则edge越强。

    BranchGainByStd :依据标准偏差调整增益,值域范围:0 ~ 255。横轴为经过StdvByY和StdvByMot处理过的标准偏差,越右边标准偏差越大,纵轴为Edge增益(128 = 1x),值越大则edge越强。

    ROIEn :ROI模式开关,值域范围:0 ~ 1。

    ROIStr :8个ROI的Sharpness强度,值域范围:0 ~ 255。

    < Sharpness_EX >

    DbgEn :Debug模式,值域范围:0 ~ 1。灰色代表没上edge,白/黑色分别代表白/黑边。

    Sharpness :无向性edge的强度,用于提高发丝和草地等细小纹理清晰度,值域范围:0 ~ 127。横轴依序为高频/中频,纵轴为无向性edge的强度增益,值越大则edge越强。

    StateByGain :依据增益量调整滤波器得到边缘数值,增益量越小表示保留较多复杂区/平坦区,值域范围:0 ~ 31。横轴为滤波器得到边缘数值,数值越小判断成复杂区/平坦区、数值越大判断成单纯边缘区。

    StateByOffset :依据位移量调整滤波器得到边缘数值,位移量越大表示保留较多复杂区/平坦区,值域范围:0 ~ 255。横轴为滤波器得到边缘数值,数值越小判断成复杂区/平坦区、数值越大判断成单纯边缘区。

    StdvByY :依据亮度调整标准偏差的增益,值域范围:0 ~ 255。横轴为亮度,越右边越偏亮,纵轴为调整标准偏差的增益(64 = 1x),值越大则标准偏差越大。

    StdvByMot :依据motion调整标准偏差的增益,值域范围:0 ~ 63。横轴为motion,越右边越偏静,纵轴为调整标准偏差的增益(16 = 1x),值越大则标准偏差越大。

    WeiByState :依据state调整无向性边缘的中频/高频edge混合比例,值域范围:0 ~ 128。横轴由左至右依序为静态纹理细节区(Static[0])、静态边缘区(Static[1])、动态纹理细节区(Motion[0])、动态边缘区(Motion[1]),纵轴为混合比例的权重数值,当权重值等于0时,则偏向中频edge、当权重值等于128时,则偏向高频edge。

    WeiByMot :依据motion调整无向性的权重,值域范围:0 ~ 256。横轴为motion由动至静,越右边越偏静,纵轴为调整无向性的权重,值越大则越偏向静态state。

    EdgeGain :整体增益调整,值域范围:0 ~ 1023。Edge增益(128 = 1x),值越大edge强度越强。

    GainByStd :依据标准偏差调整整体增益,值域范围:0 ~ 255。横轴为经过StdvByY和StdvByMot处理过的标准偏差,越右边标准偏差越大,纵轴为edge增益(64=1 x),值越大则edge越强。通常平坦区的标准偏差较小,因此可以降低标准偏差小的区域的edge,让平坦区更平顺。也可以用来降低运动的edge,若将StdvByMot的前几格降低,则GainByStd就会查到前几格,使得运动区降低edge。总共有七个节点,如有需要改变横轴节点,可调整GainByStdSft。

    GainByStdSft :GainByStd的横轴节点,值域范围:0 ~ 15。有七个断点,横轴依序为0、2GainByStdSft[0]、2GainByStdSft[0] + 2GainByStdSft[1]、2GainByStdSft[0] + 2^GainByStdSft[1] + 2^GainByStdSft[2]、...等等,纵轴依序为GainByStd[0]、GainByStd[1]、GainByStd[2] ...等等。如需调整,建议用Excel画出原本的曲线,调整GainByStdSft将想要细调的区间切细后,找到对应的GainByStd,确认效果和先前一致后,再调整GainByStd。

    CorByY :依据亮度调整coring,值域范围:0 ~ 255。横轴为亮度,越右边越偏亮,纵轴为coring 值,值越大则edge越弱。

    SclByY :依据亮度调整edge增益,值域范围:0 ~ 255。横轴为亮度,越右边越偏亮,纵轴为edge增益(64 = 1x),值越大则edge越强。

    GainByMot :依据motion调整最终edge增益,值域范围:0 ~ 255。横轴为motion由动至静,越右边越偏静,纵轴为edge增益(128 = 1x),值越大则edge越强。

    DerOverShootGain :白边的强度调整,值域范围:0 ~ 255。横轴为edge程度由左至右为平坦到边缘,纵轴为edge增益,值越大则白边强度越强。

    DerUnderShootGain :黑边的强度调整,值域范围:0 ~ 255。横轴为edge程度由左至右为平坦到边缘,纵轴为edge增益,值越大则黑边强度越强。

    DerGainByMot :根据motion调整edge强度,值域范围:0 ~ 255,横轴为motion,越右边越偏静,纵轴为edge强度(64 = 1x),值越大则edge越强。

    DerOverShootLimitByY :依据亮度调整白边的强度,值域范围:0 ~ 1023。横轴为亮度,越右边越偏亮,纵轴为edge强度,值越大代表保留较多白边强度。

    DerUnderShootLimitByY :依据亮度调整黑边的强度,值域范围:0 ~ 1023。横轴为亮度,越右边越偏亮,纵轴为edge强度,值越大代表保留较多黑边强度。

    EdgeKillLutUp :根据edge强度调整白边的edge强度,值域范围:0 ~ 1023。横轴为输入edge,纵轴为输出edge,值越大则edge越强。

    EdgeKillLutDown :根据edge强度调整黑边的edge强度,值域范围:0 ~ 1023。横轴为输入edge,纵轴为输出edge,值越大则edge越强。

    EdgeKillLutSft :EdgeKillLutUp/Down的横轴节点,值域范围:0 ~ 15。

    StrenghtByHue :根据hue调整edge强度,值域范围:0 ~ 255。横轴为hue(同HSV),纵轴为edge增益(64 = 1x),值越大则edge越强,实际效果受到StrengthBySat影响。

    StrenghtBySat :根据saturation调整edge强度,值域范围:0 ~ 127。横轴为saturation,当saturation小于StrengthBySat[0],则StrengthByHue失效,也就是edge强度的调整不受到饱和度太低的hue影响,当saturation大于StrengthBySat[1],则完全依据StrengthByHue调整edge强度,过度区则线性变化。

    ROIEn :ROI模式开关,值域范围:0 ~ 1。

    ROIStr :8个ROI的Sharpness EX强度,值域范围:0 ~ 255。

    调整步骤
    1. 观察整体edge强度,初步调整EdgeGain、OverShootGain、UnderShootGain到适当强度即可。

    2. 分别调整高频、中频edge效果,D/UDEdgeKillLutUp/Down。

    3. 若平坦区域出现突刺点,可依照突刺点出现区域的亮度,利用DerOver/UnderShootLimitByY来限制Edge的强度,建议Over/Under在同一格亮度设置一样。再低照度的环境下也可用DerRmNRCnt来排除亮暗点,因为排除掉了第N亮/暗的参考点,会增强Dering的效果,来达到抑制平坦区域Noise被Sharpness增强。

    4. 若有移动后的Noise 产生,建议可以调整DerGainByMot,由动到静降低DerGainByMot,增强Dering的效果。

    5. SOUFFLE新增了一条EE(Edge Enhance)branch,可经由调整BranchStrength,BranchGainByStd来调控输出至EE branch的图像,而EE branch可经由3DNR(MotShpBlendLut)来决定由动到静要混合多少EE branch的结果。

    6. 最后Sharpness Ex为另一套完整的Edge Enhance模块,但较参数较Sharpness模块少,此模块通常用于增强Sharpness拉完后还想要再加强的部分,如较大的Edge。


    WDR


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

    WDR对暗处亮度的提升非常明显,可以提升暗处的细节,但是在调试中会影响到亮度维度和对比度维度,过强的WDR强度也会拉出噪声。另外,WDR会对高动态范围进行压缩处理(HDR合成的图像的动态范围一般很大),让高动态的场景可以在低动态范围的屏幕上不会显示异常。


    WDR

    使用block-based local histogram equalization的方式,加强区域性的影像动态范围。模块分为主路GlobalTone与旁路Curve1,使用者可用Strength以及WDRStrByY两个参数来调控WDR的强弱。

    WDR流程图

    调整界面

    于左侧选单点选WDR即会出现WDR接口。

    WDR调整界面

    参数说明

    GlobalDarkToneEnhance :控制post global tone mapping,提供下列16条curve可供选择,值域范围:0 ~ 15。数字越大则暗处会拉越亮。

    预设的16条Post Global Tone Mapping

    WDRStrByY : 依据亮度控制WDR blending强度,值域范围:0 ~ 4095,横轴为不同亮度区间,越右边越亮,纵轴为WDR blending强度,值越大则blending越多主路的结果,WDR效果越强,blending WDR Curve1越少。

    WDRStrByYSft : WDRStrByY的横轴节点,值域范围:1 ~ 15。

    WDRStrByYOft : WDRStrByY的Offset,值域范围:0 ~ 4095。

    Strength : WDR blending整体强度,值域范围:0 ~ 255,值越大则blending越多主路的结果,WDR效果越强,blending WDR Curve1越少。

    DarkLimit : 限制WDR在暗处作用的强度,值域范围:0 ~ 255,值越大则暗处WDR越弱。

    BrightLimit : 限制WDR在亮处作用的强度,值域范围:0 ~ 255,值越大则亮处WDR越弱。

    DeSatSrcSel : 去色彩功能的亮度来源,值域范围:0 ~ 3,0代表过完Curve1的亮度,1代表过完global tone的亮度,2代表未经过WDR处理前的亮度,3代表经过DeSatBlendV处理后的亮度,建议使用1。

    DeSatYMode : 去色彩功能的亮度模式选择,值域范围:0 ~ 1,0代表YCbCr模式,1代表RGB模式。

    DeSatCrEn : 去色彩功能的独立设定Cr色域开关,值域范围:0 ~ 1,0为Cr色域不独立设定(DeSatCrLut无效),Cr使用与Cb相同设定,1为Cr色域独立设定。

    DeSatCbLut : 依据亮度调整Cb色域去色彩功能的程度,值域范围:0 ~ 255,横轴为亮度,越右边越偏亮,纵轴为色彩增益(128 = 1x),值越小则去色彩越强,影像越偏灰。

    DeSatCrLut : 依据亮度调整Cr色域去色彩功能的程度,值域范围:0 ~ 255,横轴为亮度,越右边越偏亮,纵轴为色彩增益(128 = 1x),值越小则去色彩越强,影像越偏灰。

    DeSatSft : DeSatCbLut/ DeSatCrLut的横轴节点,值域范围:1 ~ 15。

    DeSatOft : DeSatCbLut/ DeSatCrLut的Offset,值域范围:0 ~ 4095。

    DeSatBlendV : 去色彩功能的Y亮度值与HSV的V亮度值混合的强度,值越大V亮度值混合越多,DeSatSrcSel设为3才有作用,值域范围:0 ~ 255。

    调整步骤

    1. 建议先直接将WDR enable,观察预设效果是否足够,优先根据场景选择WDR_LTM中的BoxNum。

      关注室内外对比时,可以加大Coarse.BoxNum值,Coarse.ToneMapStr及LevelStrength,建议Coarse.BoxNum选择4,Coarse.ToneMapStr设255,LevelStrength设255。

      关注细小细节时,可以加大Fine.BoxNum值及Fine.ToneMapStr,但是如果需要兼容全场景,建议Fine.BoxNum选择3,Fine.ToneMapStr设128。

    2. 如强度太强或太弱,可直接简单调整WDR Strength及WDR_LTM LocalStrength,通常不易太大,特别是低照度场景,降低WDR强度,后面通过RGBgamma或者Ygamma去提升亮度而减弱拉出来的噪声。

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

    4. 其余再针对各别亮度的强度进一步调整WDRStrByY,建议左边的暗处强度减弱,这样不容易拉出噪声,同时不会损失对比度。通常暗部和亮部的强度会减弱来保证对比度。注意,gamma、defog等模块都会影响到对比度。

    5. DarkLimit或BrightLimit,针对一些特殊场景,希望暗处不要拉亮或者亮处不要拉亮,可调试这两个参数,但是注意,有效值(245 ~ 255此区间效果才明显)的影响较大,调试的时候主要要微调。

    6. 若有因为WDR太强而导致高增益处出现色偏,可以调整de-saturation功能。

    7. 若有因为WDR太强而导致噪声,可以调整WDR_NR,但NR会伤细节,不建议开太强。


    WDR_LTM

    LTM即为Local Tone Mapping,此功能可用来针对局部对比加强效果作调整。其中参数分为Coarse与Fine两种,Coarse代表分析画面时会参考区域范围较大,反之Fine代表分析画面时参考区域范围较小。效果图如下,其中由左至右分别为LTM关闭、打开Coarse ToneMapStr以及打开Fine ToneMapStr(其余的ISP参数皆相同),可以看到左图没有LTM,影像输出为GlobalTone拉亮的结果,对比度较差;中间图片因为Coarse参考区域较大,将大范围的对比度拉开;而右图因Fine参考范围较小,除了对比变好以外,在细节部分也能有所提升。LTM最终效果为Coarse及Fine的效果迭加,依照使用需求适度调整,并非越强越好,Fine ToneMapStr虽能提升对比及细节但同时会拉起躁声。由于Local Tone的运作是参考范围内(box)的内容物,在大背光的情况下若LTM开太强有可能导致人脸被压黑,或是光晕(Halo)。

    WDR_LTM效果图

    调整界面

    于左侧选单点选WDR即会出现WDR_LTM接口。

    WDR_LTM调整界面

    参数说明

    DbgEn : Debug模式,显示LTM作用的区域与强度,值域范围:0 ~ 1。

    Coarse.BoxNum : 提供4种size,可依据场景要关注的物体尺度大小进行调整,Box Num越大则box size越小,越适合当画面中关注的对象较小的时候,不可by ISO变动。Coarse对应的box size > Medium对应的box size > Fine对应的box size。建议Coarse.BoxNum选择4。

    Medium.BoxNum : 提供4种size,可依据场景要关注的物体尺度大小进行调整,Box Num越大则box size越小,越适合当画面中关注的对象较小的时候,不可by ISO变动。Coarse对应的box size > Medium对应的box size > Fine对应的box size。建议Medium.BoxNum选择4。

    Fine.BoxNum : 提供5种size,可依据场景要关注的物体尺度大小进行调整,Box Num越大则box size越小,越适合当画面中关注的对象较小的时候,不可by ISO变动。Coarse对应的box size > Medium对应的box size > Fine对应的box size。建议Fine.BoxNum选择3。

    LocalStrength : Local tone mapping kernel强度,值域范围:0 ~ 255,值越大越强。

    LevelStrength : Level强度。值域范围:0 ~ 255。值越大亮暗区contrast加强效果越强。

    LocalDetailEnhance : Local细节增强,值域范围:0 ~ 4,值越大越强。

    Coarse.FltCoef : 提供5种filter size,值越大local contrast加强效果越明显,但物体边缘越容易出现光晕。

    Coarse.ToneMapStr : Coarse local tone mapping强度。值域范围:1 ~ 255。值越大local contrast加强效果越明显,但物体边缘越容易出现光晕。

    Fine.FltCoef : 提供5种filter size,值越大local contrast加强效果越明显,但物体边缘越容易出现光晕。

    Fine.ToneMapStr : Fine local tone mapping强度。值域范围:1 ~ 255。值越大local contrast加强效果越明显,但物体边缘越容易出现光晕。

    调整步骤

    请参考WDR调整步骤


    WDR_NR

    此功能可用来针对噪声被加强的部分作降噪。

    调整界面

    于左侧选单点选WDR即会出现WDR_NR接口。

    WDR_NR调整界面

    参数说明

    Strength :WDR降噪强度控制。值域范围:0 ~ 255。

    NrStr_Mot :根据motion程度去调整降噪强度,横轴由左到右为由动到静。值域范围:0 ~ 255。

    NrSlp :定义两种降噪强度,3代表较强的降噪强度,2代表较弱的降噪强度。值域范围:2 ~ 3。

    NoiseLevelLut_X :NoiseLevelLut_Y的横轴节点,值域范围:0 ~ 255。

    NoiseLevelLut_Y :根据亮度控制,小于此阀值判断为噪声,值越大降噪越强。值域范围:0 ~ 65535,横轴由左至右为由暗到亮。

    NoiseLevel_Mot :根据motion程度对降噪阀值做倍率调整,横轴由左到右为由动到静。 值域范围:0 ~ 255。16为1倍。

    VND_Nos_Mot :根据motion程度对VND_Thd做倍率调整。值域范围:0 ~ 255。16为1倍。

    VND_Sft :VND_Thd,VND_Gain的横轴节点,以二的幂次方累加,值域范围:1 ~ 11。

    VND_Thd :根据亮度控制VND降噪阀值,大于此阀值判断为噪声,值越小降噪越强,值域范围:0 ~ 4095,横轴由左至右为由暗到亮。

    VND_Gain :根据亮度控制VND降噪程度,值越大降噪越强,值域范围:0 ~ 4095,横轴由左至右为由暗到亮。

    VND_ByPass :VND功能开关。1为VND关闭,0为VND开启。

    调整步骤

    请参考WDR调整步骤


    WDRCurve

    WDR进阶参数。

    调整界面

    于左侧选单点选WDRCurve即会出现WDRCurveFull接口。

    WDRCurveFull调整界面

    参数说明

    共有Global Tone、Curve1以及Curve2三曲线可调整,其中Global Tone可依照使用需求透过GlobalToneSft来调整不等距的亮度区间,而Curve1以及Curve2则为等距的亮度区间。

    GlobalToneSft : 从Global tone分页中,点击「Set Shift」按钮即可调整Global tone的横轴节点,值域范围:3 ~ 15,有31个节点,x轴依序为0、2GlobalToneSft[0]、2GlobalToneSft[0]+2GlobalToneSft[1]、2GlobalToneSft[0]+2GlobalToneSft[1]+2GlobalToneSft[2] ...,y轴依序为GlobalToneLut[0]、GlobalToneLut[1]、GlobalToneLut[2] ...,此外,y轴的最后一个节点有特殊设计,若x轴的最后一个节点小于65535,则y轴的最后一个节点为GlobalToneLut[31],若x轴的最后一个节点大于65535,则y轴的最后一个节点为GlobalToneLut[30]+GlobalToneLut[31],主要是为了让global tone能完全使用所有动态区间,也就是解决最后一个节点不一定刚好落在(x, y) = (65535, 4095)的问题,假设x轴的最后一个节点超过65535,那y轴也要超过4095,才能让此节点和前一个节点的线段刚好通过(x, y) = (65535, 4095)。如需调整,建议用excel画出原本的曲线,调整GlobalToneSft将想要细调的区间切细后,找到对应的GlobalToneLut,确认效果和先前一致后,再调整GlobalToneLut。

    GlobalToneLut : Global tone的纵轴节点,值域范围:0 ~ 4095。最后一个节点有特殊设计。

    Curve1 : 前级亮度调整曲线,值域范围:0 ~ 4095。横轴为输入亮度,纵轴为输出亮度,值越大则「没有经过直方图均衡化处理的影像」越亮。输出结果会依据Strength和WDRStrByY的比例来混合经过直方图均衡化处理的结果,剩下的比例会混合经过Curve1处理的结果。

    Curve2 : 后级亮度调整曲线,值域范围:0 ~ 4095。横轴为输入亮度,纵轴为输出亮度,值越大则最终影像越亮。功能和DarkToneEnhance相同。

    调整步骤

    依需求调整Global tone、Curve1和Curve2,如果觉得暗处很暗,可以将Curve2暗处拉亮一些。


    Defog

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

    调整界面

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

    Defog调整界面

    参数说明

    StrengthByY : 依据亮度控制去雾强度,值域范围:0 ~ 4095。

    StrengthByYSft : StrengthByY的横轴节点,以二的幂次方累加,值域范围:1 ~ 11。

    ATMColor : 去雾的雾气颜色,RGB 12bit数值,值域范围:0 ~ 4095。

    调整步骤

    调整Strength,来达到更好的对比感。建议作为去雾功能接口,优先使用WDR。


    Convert WDR Curve

    依据动态对比倍率,调整WDR Curve。

    WDRAlignHDRtoLDR

    无。

    调整界面

    于左侧选单点选WDR即会出现WDRAlignHDRtoLDR接口。

    WDRAlignHDRtoLDR调整界面

    参数说明

    Enable : WDR Curve AlignHDRtoLDR API开关。

    HDR Ratio : HDR Ratio 数值,值域范围 : 1024 ~ 65535 (1x = 1024)。

    Complete Flag : 显示转换WDRAlignHDRtoLDR的状况旗标(仅限读取),值域范围:0 ~ 1。

    WDRCurve2[33] : 调整WDR后级亮度调整曲线,值域范围:0 ~ 4095。

    WDRCurveShift[31] : WDR Curve的横轴节点, 值域范围: 3 ~ 15。

    WDR Compensate Strength Points Num : 设置WDR Compensate Strength的节点个数。

    WDR Compensate Strength : 设置WDR Compensate Strength的强度,值越大表示整体越偏亮;值越小表示整体越偏暗,值域范围:1 ~ 255 (默认值为1x = 128)。

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

    WDR Improve DR Strength Points Num:设置WDR Improve DR Strength的节点个数。

    WDR Improve DR Strength:设置WDR Improve DR Strength的强度,值越大表示亮区动态范围越好;值越小表示亮区动态范围越差,值域范围:0 ~ 100。

    WDR Improve DR Strength By HDR Ratio:设置HDR长短曝的曝光比例(1024 = 1x)。

    WDRCurve[32] : 产生输出的WDR Curve,值域范围:0 ~ 4095。

    调整步骤

    无。

    WDRAlignLDRtoHDR

    无。

    调整界面

    于左侧选单点选WDR即会出现WDRAlignLDRtoHDR接口。

    WDRAlignLDRtoHDR调整界面

    参数说明

    Enable : WDR Curve AlignLDRtoHDR API开关。

    HDR Ratio : HDR Ratio 数值,值域范围 : 1024 ~ 65535 (1x = 1024)。

    Smooth Strength : 此参数微调一组改善强度,值域范围 : 0 ~ 5 (此建议可填str = 3)。

    Complete Flag : 显示转换WDRAlignLDRtoHDR的状况旗标(仅限读取),值域范围:0 ~ 1。

    WDRCurve2[33] : 调整WDR后级亮度调整曲线,值域范围:0 ~ 4095。

    HDR / Linear AvgYx10 : 填入HDR、LDR目标亮度,值域范围:1 ~ 2550。

    WDRCurveShift[31] : WDR Curve的横轴节点, 值域范围: 3 ~ 15。

    HDRFCurve[32] : 填入HDR使用的WDR Curve,值域范围:0 ~ 4095。

    LinearFCurve[32] : 产生输出的WDR Curve,值域范围:0 ~ 4095。

    调整步骤

    无。


    DUMMY


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


    Dummy

    支持by iso调整。

    调整界面

    于左侧选单点选Dummy即会出现Dummy接口。

    Dummy调整界面

    参数说明

    Dummy0 : 预设为-1,值域范围:-1 ~ 255。

    Dummy1 : 预设为-1,值域范围:-1 ~ 255。

    Dummy2 : Dummy2[0]默认值-1为关闭3DNR静态区域增强功能,若设置为64以上,则开启此功能,设置的愈大能改善静态区扰动,但纯色的移动物体可能变得更穿透,建议高倍增益下再打开此功能,配合3DNR debug mode从64开始往上调整,调整至静态区扰动有减少即可。Dummy2[1-3]为WDR LTM中coarse coef的微调功能,Dummy2[1 / 2 / 3]分别为低/中/高度区coef微调控制,16为1x,数字越大越强,需注意Dummy2[1]越大暗区越容易死黑,Dummy2[3]越大亮区越容易死白。预设为-1,值域范围:-1 ~ 255。

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

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

    Dummy2调整界面

    调整步骤

    无。


    Dummy_EX

    不支持by iso调整。

    调整界面

    于左侧选单点选Dummy即会出现Dummy_EX接口。

    Dummy_EX调整界面

    参数说明

    Dummy0 : Dummy0[2]为HDR mode任意混合比设置,设置为0为全短曝光输出,256为全长曝光输出,128为长短曝光1:1输出。需注意该功能会无视HDR blending(Yth、MotAdj1 / 2 / 3、MoLuBlend)的设置,强制以固定比例的长短曝光混合输出。Dummy0[3]为强制3DNR重新收敛开关,设置一次非-1的值3DNR会重新收敛一次。Dummy0[4 / 5 / 6]为Sharpness低中高频滤波器重新分配的功能,Dummy0[4 / 5 / 6]分别为设置底层的高/中/中低频滤波,设置为-1为不重新分配,设置为0 / 1 / 2分别为赋予其高/中/中低频滤波器。预设为-1,值域范围:-1 ~ 255。

    Dummy1 : Dummy1[0]为关闭WDR亮度补偿功能,需注意此功能仅供特殊用途非必要勿开启。Dummy1[1]为Sharpness Debug Map功能选择,-1 / 1 / 2 / 3分别为原DebugMap/StdMap/EdgeStateMap以及D/UD Map。Dummy1[2]为SharpnessEX Debug Map功能选择,-1 / 1 / 2分别为原DebugMap/StdMap/EdgeStateMap,预设为-1,值域范围:-1 ~ 255。

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

    Dummy3 : 调整扣OBC的位置,设为2后会将OBC的位置往后移,有助于Bayer NR以及3DNR的动静判断,需注意该功能无法根据增益开关,且开启此功能后3DNR MdTh/GainbyY的数值必须重新调整。预设为-1,值域范围:-1 ~ 255。

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

    调整步骤

    无。


    TEMPERATURE SETTING


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


    Temperature

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

    调整界面

    于左侧选单点选Temperature即会出现Temperature接口。

    Temperature调整界面

    参数说明

    TemperatureLut : 温度节点,支持16个节点,值域范围:0 ~ 255。

    ObcOffset : OBC偏移量,会迭加到原本的OBC,值越大则OBC越大,预设为0。

    DynamicDPRatio : DynamicDP强度变化比例,会作用到DPCTH,值越大则NR效果越强,预设为50。

    CrosstalkRatio : Crosstalk强度变化比例,会乘到Strength,值越大则NR效果越强,预设为50。

    NRDeSpikeRatio : NRDeSpike强度变化比例,会乘到BlendRatio,值越大则NR效果越强,预设为50。

    NR3DRatio : NR3D强度变化比例,依序会乘到MD.Thd和MD.Gain,值越大则NR效果越强,预设为50。

    NRLumaRatio : NRLuma_Adv强度变化比例,会乘到Strength,值越大则NR效果越强,预设为50。

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

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

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


    Temperature Info

    获取当前chip温度。

    调整界面

    于左侧选单点选Temperature即会出现TemperatureInfo接口。

    TemperatureInfo调整界面

    参数说明

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


    DAY NIGHT MODE DETECTION


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


    DayNightDetection

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

    调整界面

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

    DayNightDetection调整界面

    参数说明

    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。


    DayNightInfo

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

    调整界面

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

    DayNightDetection调整界面

    参数说明

    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该设多少。


    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。


    ColorToGray

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

    调整界面

    于左侧选单点选ColorToGray即会出现ColorToGray接口。

    ColorToGray调整界面

    参数说明

    Enable :彩转灰功能开关,相当于将Saturation设为0。


    RGBIR SENSOR TUNING


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


    RGBIR Ratio调整

    调整界面

    于左侧选单点选RGBIR即会出现RGBIR接口。

    RGBIR调整界面

    参数说明

    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。

    调整步骤

    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由左至右依序为由暗到亮的控制规则,去调整特定亮度的ratio。


    YUV Path IQ Description


    若使用YUV data输入,则只有部分API能使用,请参阅「SStar_SOUFFLE_ISP_软件开发参考」。


    AE INTRODUCTION


    AE的目的在于透过收到的统计值,计算出适当的光圈值/sensor增益/ISP数字增益/快门时间,使的统计值接近目标亮度,将画面整体亮度控制在一个理想的状态,又统计值取值位置在Gamma之前,因此建议的目标亮度约为470(AE亮度单位为8bit*10,值域0 ~ 2550)。


    AE调整

    调整界面

    于左侧选单点选AE即会出现AE调整接口。

    参数说明

    < AEState >

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

    < AETarget >

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

    Target Offset : 各节点的AE target。

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

    < 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反应速度缓慢甚至无法收敛,设得过大则亮度变化迅速,但从视频上看来会感觉有亮度闪烁的现象。

    < AEConvergeSpeedEx >

    当AEConvergeSpeedEx开启,AEConverge即会失效。

    Enable : 开关AEConvergeSpeedEx。

    ConvSpeedX : 收敛速度表X轴,对应到当前Cur Y的亮度。由左到右分别对应暗到亮。

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

    < EVComp >

    EVComp : +– ev 亮度补偿功能的分子,若为正值则会使AE target变高,反之则变低。

    Grad : +– ev 亮度补偿功能的分母。

    < AEWinWeight >

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

    WindowWeighting :测光权重表。权重表的有效范围为左上角16*16。

    < 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。

    建议使用步骤:

    在此功能关闭时,不同亮阶的AE统计值区块皆使用相同的权重来做整体画面的加总。开启此功能后,可以依照场景不同(藉由SatCnt Threshold/Wgt By SatCnt/SatCnt Wgt定义场景)来使用不同的亮阶权重表(藉由Luma Wgt/Wgt By Luma(x10))。

    1. 定义亮阶权重表(LumaWgtTable)如下图,横轴为Wgt By Luma (x10),纵轴为Luma Wgt。

      LumaWgtTable

    2. 定义Saturate数量权重表如下图,横轴为Wgt By SatCnt,纵轴为SatCnt Wgt。

      AE Saturation Count Table

    3. 设定SatCnt Threhold,决定多少亮度以上的区域要累加SatCnt计数值。

      以上图Saturation count table为例,若当前场景SatCnt数量够多(>205),AE采用LumaWgtTable,反之若数量太少(<25),表示该场景不启用LumaWgtTable的功能。

    < 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。

    < PowerLine Flicker >

    Enable : 启动/关闭PowerLine Flicker。

    Ratio : 调整PowerLine的补偿倍率,值域范围:0 ~ 1024(128 = 1x)。

    < 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 : 曝光策略优先权设定,可选择暗阶优先(过暗抑制)/亮阶优先(过曝抑制)。

    AE StrategyEx Count Mode & Bright Priority

    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 taregt向下浮动的范围,值域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 taregt向上浮动的范围,值域0 ~ 2550。如设0则等于关闭浮动target,将完全参考上面设的Target Offset 设定。

    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。

    < AdaptiveGamma >

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

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

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

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

    < DebugLev >

    AE Debug Level : 设定AE Debug log 的输出设定。

    0 : disable

    1 : Exposure

    2 : Algo parameters

    4 : Algo statistics

    32 : API debug

    64 : Exposure-2

    AEParam调整

    调整界面

    于左侧选单点选AE即会出现AEParam调整接口。

    参数说明

    < ExposureMode >

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

    < ExposureTableMode >

    OpType : AE曝光行程表模式选项,选择Auto为自动生成曝光行程表,Manual为手动填入曝光行程表。适用于AEPlainTbl、AEPlainShortTbl。

    < AEPlainTbl >

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

    ExpoTblEntry : 曝光行程表。由左至右分别设置光圈(FN×10),快门(us),total gain,sensor gain,由上至下分别为由亮至暗。有一些限制,在相邻两列中,每次只能变化其中一个值,且shutter/gain需要符合sensor的限制,若超过限制则无法写入参数并会打印讯息。

    < ManualExposure >

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

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

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

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

    < AEPlainShortTbl> – HDR (2Frame) mode only

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

    ExpoTblEntry : 曝光行程表。由左至右分别设置光圈(FNx10),快门(μs),total gain,sensor gain,由上至下分别为由亮至暗。限制同ExpoTblEntry,且长短曝曝光行程表同一列要刚好差HDR Ratio的倍率。

    < ManualShortExposure> – HDR (2Frame) mode only

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

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

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

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

    < ExposureLimit >

    MinShutter : 最小快门时间。

    MaxShutter : 最大快门时间。

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

    MaxFNx10 : 最大光圈值。

    MinSensorGain : 最小sensor增益。

    MinISPGain : 最小ISP数字增益。

    MaxSensorgain : 最大sensor增益。

    MaxISPGain : 最大ISP数字增益。

    AEDynamicRatio调整

    调整界面

    于左侧选单点选AE即会出现AEDynamicRatio调整接口。

    参数说明

    < HDR ML Dynamic Ratio >

    OpType : HDR Dynamic Ratio的工作模式,分别为Auto、Manual模式可选择。设为Auto会自动依据场景动态范围计算出HDR ratio。设为Manual会依据ExpoRatio LUT查出对应HDR ratio。

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

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

    By Total Gain : HDR曝光比例依总增益(默认值:1024、2048、4096、8192 ...)。

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

    HDR Ratio Offset : 设置HDR曝光改变比例上/下限值依HDR Raio,避免变化剧烈导致画面闪烁。需依据每颗Sensor进行微调此参数,数值越大则HDR Ratio变化越快;数值越小则HDR Ratio变化越慢。

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

    ExpoRatio Sensitive : 调整HDR比例的灵敏度,数值越小表示越动态范数值越小,值域范围:1 ~ 99。

    ExpoRatio Tolerance : 调整HDR比例的收敛条件,数值越小表示越容易收敛,值域范围:1 ~ 100。

    Expo Ratio Points Num : 设置HDR比例变化的节点个数

    Expo Ratio Min : 设置HDR比例的最小值(1024 = 1x)。

    Expo Ratio Max : 设置HDR比例的最大值(1024 = 1x)。

    Expo Ratio By BV : 设置HDR比例最小/最大值依BV数值。

    OpTypeShortExpTab : 短曝曝光最大值的工作模式,分别为Auto、Manual模式可选择。设为Auto可取得sensor driver短曝曝光的最大数值。设为Manual可自行设定短曝曝光的最大数值。

    Short Shutter Max : 设置短曝曝光最大的数值。

    FDAE调整

    调整界面

    于左侧选单点选AE即会出现FDAE调整接口。

    参数说明

    < FDAE >

    Enable : 启动/关闭FDAE。

    FaceTarget : 人脸目标亮度。

    FaceTolerance : 人脸亮度的收敛区间。

    Speed : 人脸收敛速度。(目前无效)

    FaceChangePcnt : FDAE跳出收敛区间的人脸亮度变化量。

    EnvChangePcnt : FDAE跳出收敛区间的环境变化量。

    Upper : 调整人脸亮度变化的上限。

    Lower : 调整人脸亮度变化的下限。

    FDAE_EX_OLD调整

    调整界面

    于左侧选单点选AE即会出现FDAE_EX_OLD调整接口。

    参数说明

    < FDAE_EX_OLD >

    DetectEnvChangeRatio : FDAE跳出收敛区间的环境变化量。

    DetectOverExposureDiff : 定义人脸亮度过曝值。

    DetectBlackDiff : 定义人脸亮度偏暗值。

    ConvSpeedX : 人脸亮度收敛速度表X轴,对应到当前人脸的亮度。由左到右分别对应暗到亮,中间两格底层会自动对应到当前人脸目标亮度的位置,所以这两格不需要修改。头尾两格默认是10以及1000。

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

    UnStableArea : 设置人脸框较不稳定区域,在这定义外的区域,即代表不稳定,在这定义内的区域,即代表稳定,依序为StartX、StartY、EndX、EndY。

    StableXTh_UnStableArea : 人脸框在不稳定区域,要判X方向稳定的Th,值越大越容易判为稳定。

    StableYTh_UnStableArea : 人脸框在不稳定区域,要判Y方向稳定的Th,值越大越容易判为稳定。

    StableXTh : 人脸框在稳定区域,要判X方向稳定的Th,值越大越容易判为稳定。

    StableYTh : 人脸框在稳定区域,要判Y方向稳定的Th,值越大越容易判为稳定。

    StableAreaTh : 判断人脸框是否稳定,值越大越容易判为稳定。

    StableCntTh : 设置连续判为稳定的次数,满足此Th,才会进行人脸亮度调整。

    FaceToNoFaceSpeed : 从有人脸的AETarget切换到没人脸的AETarget速度,值越大,切换速度越快。

    CompensationArea : 设置人脸目标亮度需补偿的区域,大于此Th代表需补偿。

    CompensationRatio : 设置人脸目标亮度需补偿的大小,值越大代表需补偿越多。

    ExcludeFaceRatio : 判为人脸的Th,值越大,越容易判为人脸。

    FDAE_EX调整

    调整界面

    于左侧选单点选AE即会出现FDAE_EX调整接口。

    参数说明

    < FDAE_EX >

    Enable : 启动/关闭FDAE_Ex功能。

    bEnDbgMsg : 启动/关闭FDAE_Ex除错信息。

    bIgnoreAFStable : 启动/关闭忽略AF稳定状态。

    FDCalCycleNum : 设定人脸侦测每几帧执行一次FDAE_Ex。

    FDStableCountThr : 设定有人脸连续侦测几次后执行FDAE_Ex。

    FDUnstableCountThr : 设定无人脸连续侦测几次后执行Non-FDAE_Ex。

    FDFastTriggerCountThr : 设定快速触发FDAE_Ex机制。

    FDLumaNodeNum : 设定人脸亮度的节点个数。

    FDLumaTarget[MI_ISP_AE_LUT_16] : 设定人脸亮度的目标值。 MI_ISP_AE_LUT_16 = 16。

    FDLumaTolerance[MI_ISP_AE_LUT_16] : 设定人脸亮度的收敛区间。 MI_ISP_AE_LUT_16 = 16。

    FDSceneTargetMin[MI_ISP_AE_LUT_16] : 设定人脸目标的最小值。 MI_ISP_AE_LUT_16 = 16。

    FDSceneTargetMax[MI_ISP_AE_LUT_16] : 设定人脸目标的最大值。 MI_ISP_AE_LUT_16 = 16。

    FDLumaNodeBV[MI_ISP_AE_LUT_16] : 设定人脸亮度依BV数值。 MI_ISP_AE_LUT_16 = 16。

    AEInfo

    接口说明

    于左侧选单点选AEInfo即会出现AEInfo相关信息,点选ReadPage可实时更新。

    参数说明

    < AEInfo > – read only

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

    isReachBoundary : 当下AE是否达到曝光表最小/最大的临界范围。

    FNumber : 当下AE长曝光圈数值。

    SensorGain : 当下AE长曝Sensor增益数值。

    ISPGain : 当下AE长曝ISP数位增益数值。

    Shutter : 当下AE长曝快门时间数值。

    Fnumber_S : 当下AE短曝光圈数值(如果是HDR - 2frame模式,此参数才有效)。

    SensorGain_S : 当下AE短曝Sensor增益数值(如果是HDR - 2frame模式,此参数才有效)。

    ISPGain_S : 当下AE短曝ISP数字增益数值(如果是HDR - 2frame模式,此参数才有效)。

    Shutter_S : 当下AE短曝快门时间数值(如果是HDR - 2frame模式,此参数才有效)。

    WeightedYx10 : 当下AE取得统计值和Weight Table加权平均的亮度数值。

    AverageYx10 : 当下AE取得统计值平均亮度数值。

    Histogram : 当下AE取得共128 bins的直方图统计资料。

    LVx10 : 当下AE根据APEX公式计算得到light value(LV)。

    BV : 当下AE根据APEX公式计算得到brightness value(BV)。

    SceneTargetx10 : 当下AE根据BV查表得到目标亮度数值。

    AEInfo界面

    < FlickerInfo > – read only

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

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

    Score : 取得当前侦测抗闪烁有效模式的程度分数。

    如果分数较高,则判断为当前的抗闪烁速率模式。

    如果分数较低,则判断为另一种抗闪烁速率模式。

    < AEStrategyExInfo > – read only

    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。请参考下图。

    How GNBlendRatio and AdaptiveGamma work

    UpperLimitTargetYx10 :目前AE target浮动上限。

    LowerLimitTargetYx10 :目前AE target浮动下限。

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

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

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

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

    < PowerLine Flicker Info > – read only

    Direction : 判断当前shutter由暗变亮或者亮变暗的作用状态,值域范围:-1 ~ 1。当Direction = 1表示此功能生效;当Direction = -1或0表示此功能无生效。

    IsEffective : 显示此功能是否进入工作区间,值域范围:0 ~ 1。0表示PowerLine function无做动;1表示PowerLine function有做动。

    PreShutter :记录前一次的曝光时间数值。

    < HDR DynamicRatioInfo > – read only

    ML - Exposure Ratio : 当下Exposure Ratio数值。

    ML - IsChange : 当下Exposure Ratio是否已变化完成,0表示已变化稳定,1表示正在变化。

    < AE VerInfo > - read only

    ReleaseDate : 打印AE FW更新日期。

    ReportID : 打印AE FW反馈问题的数值编号,default:0。

    Major : 打印AE FW主要版本编号。

    Minor : 打印AE FW次要版本编号。

    TestVer : 打印AE FW测试版本编号,default:0。


    AWB INTRODUCTION


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


    AWB调整

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

    利用AWB Analyzer分析统计信息

    调整界面

    于左侧选单点选AWB即会出现AWB调整接口。

    AWB基本调整接口

    AWB Advance Mode调整界面

    AWB混光色偏校正设定接口

    CTMWB设定接口

    AWBStatisFilter设定接口

    AWBStatisNr设定接口

    AWB Stabilizer设定接口

    FDAWB设定接口

    FWST Strategy

    参数说明

    < 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。

    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会尽量以参考白点为主,此时若遇到混光场景,离参考白点远的一方色偏会相当明显,若希望色偏减弱一些则可开启此功能,但副作用是会让其他颜色色相有些改变。下面是开启此功能前后差异比较图。

    开启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距离的比例来决定。

    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。

    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。

    Blending

    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。

    < AWBStatisNr >

    此功能可根据BV设定统计值有效亮度区间针对统计值做滤波,避免AWB受到noise影响。

    NodeNum :设定lookup table节点数量。值域0 ~ 4,设0会使用预设的滤波强度SfLvl = 0, TfLvl = 0。

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

    LutY_SfLvl :设定lookup table的节点空间域滤波的强度。值域0 ~ 4。

    LutY_TfLvl :设定lookup table的节点时间域滤波的强度。值域0 ~ 63。

    < FDAWB >

    此功能能让白平衡算法利用人脸侦测的信息,增加白平衡及肤色的准确性及稳定性。使用前须先确认已支持人脸侦测功能,若没有支持人脸侦测功能此API是无效的。

    Enable:FDAWB算法开关。开启FDAWB功能,建议搭配AWB Blance AlgType使用,增加稳定性。

    Mode:FDAWB算法模式选择。目前提供两种算法: 1. Refer To Skin:此模式会根据人脸信息的分析结果,锁定最有可能的白点范围去做白平衡。 2. Assign Skin Color: 此模式会将人脸的统计值落点(白平衡前),强制移到使用者设定的肤色落点(白平衡后)位置。

    SkinAreaNum:用户设定不同色温的肤色区域数量。值域0~8。注意不管选择哪种模式,此SkinArea的设定是必定要填的,否则FDAWB将无法分析人脸信息。

    SkinAreaCntThd:人脸信息的稳定阀值。此阀值代表当人脸出现时,需要连续几次人脸信息都是有效的,FDAWB才会认为该信息是有效的,FDAWB才会开始动作;当人脸消失时,需要连续几次人脸信息都是无效的,FDAWB才会认为该信息是无效的,FDAWB才会停止。值域:0 ~ 255,值越大会越稳定,但会延迟FDAWB开始或结束动作的时间,应根据使用者需求设定适合的大小。

    SkinAreaCT:对应各自定义肤色区域的色温。此色温只是为了让使用者标示该肤色index是对应哪个色温环境,并无实际作用。设定上也没有任何规则,不一定要从小到大或从大到小。值域0 ~ 20000。

    SkinAreaCenterX/Y:对应各个自定义肤色区域的中心坐标(R/G-B/G plane)。值域:0 ~ 255。

    SkinAreaRadius:对应各个自定义肤色区域的半径。值域:0 ~ 255。

    SkipAreaRadius:根据分析出的人脸落点排除肤色区域的半径。值域:0 ~ 255。

    UnStbCntThd:避免Skin index在不同值间来回变化的阀值。当从目前的Skin index要切换到另一个index,需要连续几次侦测出来的Skin index都不等于现在的index才会做切换,否则会一直维持使用目前的index。值域0 ~ 255,值越大越能增加稳定性,但当环境色温变化后需要延迟更久才会反应。

    GrayNum:每个肤色index需要使用几个对应的灰阶区域。值域:0 ~ 10。注意此灰阶区域只有在选择Refer To Skin模式才有作用。

    GrayCenterX/Y:设定每个灰阶区域的中心坐标。根据GrayNum填入对应组数的坐标。值域:0 ~ 255。

    GrayRadius:设定每个灰阶区域的半径。灰阶区域是可以重迭的,因此当想要设定一个非圆形区域时,可以利用多个区域去达成。值域:0 ~ 255。

    AssignSkinX/Y:设定人脸信息的目标坐标。值域:0 ~ 255。当选择Assign Skin Color模式时,会强制将人脸落点移到此目标坐标,建议可以在不同色温下去确认color checker patch 2肤色套用正确WB gain的落点来协助标定此坐标,再根据实际状况去作微调。此外,选择Refer To Skin模式时,若有勾选FwstWbFromSkin,当遇到统计值不足的而无法计算白平衡的状况,会改用Assign Skin Color来做白平衡。

    FwstWbFromSkin:当统计值不足时,是否要使用Assign Skin Color模式去计算白平衡的开关。此机制需搭配FWST Strategy API的设定,可参考该API的说明。

    < FWST Strategy >

    AlgType:用来决定当统计值不足时的行为,共有Keep、MixPreferGain及MixGrayWorld三种选择。

    CntThd:最小有效统计值数量的阀值。当统计值数量小于此值,AWB无法计算。此时使用的WB gain会根据AlgType的选择而有所不同。值域:0 ~ 5000。 1. Keep:维持在前次有足够统计值时得到的WB gain。 2. MixPreferGain:根据PreferCT设定色温算出的WB Gain。 3. MixGrayWorld:使用GrayWorld算法算出的WB gain。

    SmoothWidth:当算法选择MixPreferGain和MixGrayWorld,或是FDAWB中FwstWbFromSkin有开启且作用时,当统计值数量在CntThd到CntThd + SmoothWidth间,AWB会根据选择的AlgoType拿不同的WB gain与AWB算出的target WB gain做混和,混和方式请参考下图。注意当FwstWbFromSkin有开启且作用时,拥有最高优先级。值域:0 ~ 5000。

    u32PreferCT:eAlgType选择MixPreferGain时会使用,使用者可以决定当统计值不足时要使用哪个色温的WB gain。值域:0 ~ 20000。

    FWST Strategy示意图

    < AWB VerInfo > – read only

    ReleaseDate : 打印AWB FW更新日期。

    ReportID : 打印AWB FW反馈问题的数值编号,default:0。

    Major : 打印AWB FW主要版本编号。

    Minor : 打印AWB FW次要版本编号。

    TestVer : 打印AWB FW测试版本编号,default:0。

    < DebugLev >

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

    1: Show simple algo paramaters

    2: Always show detail algo parameters

    3: Show detail algo parameters

    7: User Parameters


    AWBInfo

    此接口可秀出当下AWB相关信息,点选ReadPage可实时更新。

    AWBInfo接口以及AWBSpecialCaseInfo接口 FDAWBInfo界面

    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色温框之间。

    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。

    < FDAWBInfo >

    使用者可以透过此API来读取当下FDAWB的相关信息。

    FaceNum:透过人脸侦测功能得到的人脸数量,目前只支持一个人脸。若此值为0表示没有支持人脸侦测功能或是有支持人脸侦测功能但没侦测到人脸。

    FaceCor:对应AWB 128x90个统计值的人脸坐标,四个值依序为人脸框起始点X坐标、起始点Y坐标、结束点X坐标、结束点Y坐标。

    Effective:表示目前FDAWB是否有作动。

    EffectiveCnt:显示连续几次人脸信息是有效的,最高只会到SkinAreaCntThd+1。

    FaceAvgX/Y:根据人脸信息分析出的人脸落点坐标(R/G-B/G plane)。

    FaceSkinInd:根据人脸信息分析出的用户定义肤色index。

    FaceTarR/Bgain:根据人脸信息以及AssignSkinX/Y得到的目标WB gain。


    AF INTRODUCTION


    AF的目的在于透过收到的统计值将画面对焦在一个理想的状态。详细使用可参考AE_AWB_AF_interface文檔。


    AF调整

    调整界面

    于左侧选单点选AF即会出现AF调整接口。

    参数说明

    < AF_HWWIN >

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

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

    Win :16组ROI坐标,依序为x_start、y_start、x_end、y_end。注意:Normal模式的window的宽高可重迭,matrix模式的window宽可重迭,高不可重迭。

    < 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阀值开关。

    SobelYSatSrc :Sobel滤波器Y来源选择。

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

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

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

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

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

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

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

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

    AFTbl1Y :高频IIR/Sobel滤波器nonlinear mapping的纵轴节点。

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

    AFTbl2Y :低频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(越小找的越细)。

    3. DebugLevel设1,看Peak最后找到哪,并填入表格(位置越远,VCM位置数字越小)。

      填入表格的数字要经过换算,换算公式如下:

      (MaxMotorPos – 量测得到的数值) / (MaxMotorPos - MinMotorPos)。

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

    SearchMotorStep_ADJ示意图

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

    SearchMotorStep_ADJ示意图

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

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

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

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

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

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

    TriggerWinWgt :触发权重表。

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

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

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

    < AF_ADJUST_II > 只有在Algo为Continuous时才有效果。

    VariationTh :判断为平坦区的Th,越大越容易判为平坦区。

    FocusAfAccCntTh_ByGain :FocusAfAccCntTh可以随着Total Gain调整,越大越增加原本条件。

    FocusAfAccDiffTh_ByGain :FocusAfAccDiffTh可以随着Total Gain调整,越大越增加原本条件。

    DetectFlatTh :判断为侦测到平坦区的Th,越大越容易侦测到平坦区。

    FlatStep :平坦区移动的步伐。

    AddStep :步伐动态变化决定一次增加的量。

    DecStep :步伐动态变化决定一次减少的量。

    LocalMotionAfTh :没开启FDAF时,AF统计值侦测是否有Motion,越小越容易判为Motion。

    LocalMotionAeTh :没开启FDAF时,AE统计值侦测是否有Motion,越小越容易判为Motion。

    LocalBlurDetectAfTh : AF统计值判断Af是否触发,越小越容易触发。(FDAF开启时,并侦测到人脸,不参考此项)

    LocalBlurDetectAeTh : AE统计值判断Af是否触发,越小越容易触发。(FDAF开启时,并侦测到人脸,不参考此项)

    AvoidAccJumpTh :避免统计值跳动,干扰找焦点,越大效果越强。

    AvoidFlatTh :避免误判为平坦区,越小效果越强。

    < AF_ADJUST_III > 只有在Algo为Continuous时才有效果。

    FDAccSel :FDAF开启并有认到人脸时,选择找焦点的统计值种类。

    NoFDAccSel :FDAF没开启或有开启但没认到人脸时,选择找焦点的统计值种类。

    SearchLowLuxAccSel :低照度时,选择找焦点的统计值种类。

    BlendLowLuxFilterTh :决定从多少SensorGain要开始混低照度选择的统计值。

    PretectTh_Low :设一个保护区间,不要因为LocalBlurDetectAfTh触发AF。

    PretectTh_High :设一个保护区间,不要因为LocalBlurDetectAfThUp触发AF。

    StableAWBTh :根据AWB统计值,判断环境是否稳定,越大越容易判为稳定。

    CompensationRatio : FDAF开启时,用来补偿人脸在画面中间跟在画面旁边,得到的人脸统计值落差。

    SearchParamScaleUp :低照度时,能放大判断为焦点的条件。

    LocalBlurDetectAfThUp : AF统计值判断Af是否触发,越小越容易触发。(FDAF开启时,并侦测到人脸,不参考此项)

    LocalStableAfTh :根据AF统计值,判断环境是否稳定,越大越容易判为稳定。

    LocalStableAeTh :根据Ae统计值,判断环境是否稳定,越大越容易判为稳定。

    FaceToNoFaceCntTh :当FDAF开启,有人脸到没人脸状态,可以忽略的次数,越大忽略越多。

    < AF_BackUpPosition > 只有在Algo为Continuous时才有效果。

    Enable : FDAF开启并有认到人脸时,没人脸到有人脸时,VCM会先移动到上次有人脸时对焦到的位置。

    Step :设定VCM移动到上次有人脸时对到焦的位置的步伐。

    < AF_Offset > 只有在Algo为Continuous时才有效果。

    Enable :开关AF找到焦点后,是否把焦点做一个位移。

    Offset :决定焦点位移的量。

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

    Enable :启用FDAF的开关。

    LegacyAF :没人脸时,中心对焦位置。

    FDStableArea :设定FD框稳定范围。

    FDSensitivity :根据人脸大小,设定FDAF灵敏度,越大越灵敏。

    FDYSensitivity :根据人脸亮度,设定FDAF灵敏度,越小越灵敏。

    FDReTriggerSensitivity :判断是否需要重新对焦,越小越容易重新对焦。

    FDStableCntTh :等待FD框稳定时间,越大越久。

    FDAreaStableTh :判断人脸框面积是否稳定,越大越容易判为稳定。

    FDAccStableTh :判断人脸框统计值是否稳定,越大越容易判为稳定。

    FDYStableTh :判断人脸框亮度是否稳定,越大越容易判为稳定。

    FDCoorXInStableTh :判断FD框在稳定范围内是否稳定,越大越容易判为稳定。

    FDCoorYInStableTh :判断FD框在稳定范围内是否稳定,越大越容易判为稳定。

    FDCoorXOutStableTh :判断FD框在不稳定范围内是否稳定,越大越容易判为稳定。

    FDCoorYOutStableTh :判断FD框在不稳定范围内是否稳定,越大越容易判为稳定。

    PreFDAccStableTh :判断AF在做动时,是否需要重新对焦,越大越容易重新对焦。

    PreFDMotionStableTh :判断AF在做动时,是否需要重新对焦,越大越容易重新对焦。

    PreFDYStableTh :判断AF在做动时,是否需要重新对焦,越小越容易重新对焦。

    PreFDAreaDetectMotion :判断AF在做动时,是否需要重新对焦,越小越容易重新对焦。

    PreFDCoorDetectMotion :判断AF在做动时,是否需要重新对焦,越小越容易重新对焦。

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

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

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

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

    < AF_StartVCMPos > 只有在Algo为Continuous时才有效果。

    Mode :决定开机默认VCM推到的位置,0:MinPos、1:MaxPos、2:客制化。

    Pos :Mode = Customize时,决定移动到的位置。

    < AF VerInfo > – read only

    ReleaseDate : 打印AF FW更新日期。

    ReportID : 打印AF FW反馈问题的数值编号,default:0。

    Major : 打印AF FW主要版本编号。

    Minor : 打印AF FW次要版本编号。

    TestVer : 打印AF FW测试版本编号,default:0。

    < DEBUG_LEV >

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

    Level 描述
    0 disable
    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

    IQ TOOL接口联机功能操作


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

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

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

      其中-q表示开启 iqserver,IQ Tool才可以联机。

    2. 选择产品类型: 1. IP Camera; 2. Car Camera

    3. 输入EVB的IP地址

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

      IQ Tool接口联机设定


    IQ TOOL接口功能说明


    IQ Tool界面

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

    IQ Tool功能树形图


    参数调校

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

    调校参数类型:

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

      • 点选上下箭头调值

      • 直接在栏框内填值

      • 左右移动滚动条调整值

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

      数值功能示意图

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

      下拉选单功能示意图

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

      读值显示于字段示意图

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

      点选Edit Table按钮可以弹出表格窗口接口

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

      表格窗口接口示意图

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

      Read only表格窗口示意图


    读写数据

    可以读写所有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。

    读写数据接口示意图

    Table 1:读写数据图标详细说明

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

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

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

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

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

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


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

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

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

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

    自动储存Bin File示意图

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

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

    InFile功能

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

    InFile反白示意图

    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。


    Gamma调值

    1. 点选Gamma树状节点,即在右方产生Gamma调值接口。

      Gamma调值界面

    2. Gamma 功能接口说明。

      Gamma功能接口说明

      Gamma存、读档格式示意图

    3. Gamma 功能接口详细说明,如Table 2。

      Table 2:Gamma功能接口详细说明

      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檔。如Figure 130
      - 档案设定格式为: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值,参考下图。

      Gamma曲线调整示意图

    5. Gamma曲线Read Page和Write Page:

      • Read Page :即为get API,点选Read Page按钮,会取得当前生效的曲线。

      • Write Page :即为set API,会将目前UI接口的曲线设到硬件,在API是Gamma的情况下,必须自己手动点选Write Page才会存入data,不会Auto Write,其他的API皆会自动AutoWrite,按钮如下图。

        Gamma Read and Write item


    Shading

    调整界面

    点选Shading树状节点,即在右方产生ALSC接口。

    Shading界面

    参数说明

    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。

    DeltaModeAdvEn : 选择启动进阶模式开关,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。

    Shading 27×17 Table界面

    Auto ALSC Table Adjustment API

    相近色温的光源中,频谱不一定相同(所谓的同色异谱),对于有些镜头模块来说,在同色异谱的光源下会有不同的color shading表现,对于该种镜头模块,用一组shading table无法在同色异谱的光源下得到好的补偿结果(如下图)。为此有了该自适应算法,能自动判断画面中是否存在color shading,藉由微调当前ALSC table内的shading table来降低color shading。此功能建议作完高/中/低色温的ALSC补偿后,若在同色异谱的光源下补偿不好,再开启此功能。

    图左U30色温下套用A-light ALSC table,图右为透过自适应算法补偿的结果

    调整界面

    Auto ALSC Adjustment调整界面

    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。

    Auto ALSC Adjustment调整流程

    先在灯箱内进行2~3个不同色温的ALSC校正。校正完成后,切至同色异谱的光源,观察color shading出现的区域来设置Check Shading Range(位置之讯如下图)。

    Check Shading Range Parameter

    Counter and Uniform Line Index

    确定完shading区域后,将Debug Level设置为1,此时Uart将打印画面中符合小于Complex Thr的区域编号以及该区域的R复杂度及B复杂度如上图,区域编号对应到画面的位子如下图,此时可将Complex Thr渐渐调大,确保灯箱环境内有color shading的区域内都能被列入shading评估,且注意打印counter数量要大于Complex Scene counter该场景才会列入计算。

    Line index

    确定完Complex Thr后,将Debug Level设置为2,此时uart会打印出画面整体的shading判定结果以及R,B gain的补偿量,若此时画面中间红旁边绿则R_ratio会小于256,则须逐步增加Max Increase RGain,允许算法将R分量拉升,调整Max Increase RGain直到R_ratio = 256为止,B分量也做相同的操作,反之亦然。下图为实际补偿的log。

    Max Increase/Decrease RGain/BGain再依不同色温情况作微调,微调到适当的gain即可,设置的过大或过小都有可能在shading误判时让画面色偏。

    为了节省算力,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,暂停运算并维持当前的补偿量。

    The relation between ratio and gain


    Plugin

    IQ Tool提供了AF、AWB、CCM、GAMMA、ALSC五种插件以辅助IQ调试,如下图所示。

    Plugin下拉式选单界面

    AF Analyzer

    AF Analyzer为自动对焦校正分析外挂,主要用频率响应数值转换滤波器系数。

    调整界面

    AF Analyzer 界面(Frequency Mode)

    AF Analyzer 界面(NonFrequency Mode)

    参数说明
    • 步骤(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:根据级数输入系数。例如:第一级AF Filter选1,对Coefficient输入系数,要再对第二级AF Filter输入系数IIR选2,再对Coefficient输入一次系数。

    • 输出参数字段(Output parameters)

      1. AF Filter Coefficient:A0、A1、A2、B1、B2
    • 频率响应曲线(Frequency response curve)

      1. X轴:取样点数量

      2. Y轴:频率数值(db)

    AWB Analyzer Combo

    Awb Analyzer Combo为白平衡校正分析外挂,主要包含两个部分,分别是Statistics Analyzer与Raw Analyzer。其中Statistics Analyzer,使用者可利用它来调整色温曲线范围,而Raw Analyzer主要是让使用者能了解画面中各个位置的AWB统计值落点。

    调整界面

    AWB Analyzer Combo界面

    使用方式及参数说明
    1. 点功能选择:

      点击接口上方功能卷标来切换。

    2. 统计值来源设定:

      点击接口上方menu列的File → Load Statistics会出现三种来源选择。

      From Live Stream:取得目前stream画面的统计值,IQ Tool需要先联机才使用此功能。若要更新画面统计值可点选右上方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:从联机的机台来取得,IQ Tool需要先联机才使用此功能。

      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按钮。

      套用后记得回到IQ Tool接口点选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。

    CCM Analyzer

    此插件工具使用于色彩校正。

    调整界面

    Calculate CCM页面用于CCM校正,启动时会从Camera读取相关参考值,因此不能脱机调试。另两个Page FineTuneMatrix属于微调功能,如下图所示。

    CCM Analyzer界面

    使用方式及参数说明
    • 使用方法

      点击Source Image中的Set来设定RAW Data的信息(Image Decompress设定方式可参考Raw Setting参数说明),点击open source打开保存的RAW image,开启后会出现一个窗口显示出所选择的RAW image,直接用鼠标在画面上拖曳让各色块都有正确被框选到,完成后点OK,Open Target打开标准的color checker图片,按上述步骤框选color checker。

      Load Raw Image窗口接口

    • 参数设定

      • Target Image

        使用者可选用Default Target,有SkypeCertification/ Xrite after 2014/ Xrite before 2014/ BabelColor Avg可选择。

        预设CCM参考色块

        使用者也可自定义Target,可以由bmp、txt汇入。

        自定义CCM参考色块

        Target Saturation可以让使用者设定最终校正的饱和度,预设为100(建议不改)。

        目标饱和度设定接口

      • Color Weight

        可让使用者调整各色块的权重,权重越大者fitting的结果会越准确,预设都设为100。

        Color Weight设定接口

      • Component Constraint

        使用者可根据需求针对某些成分做限制,例如设定0.5,则该成分fitting后的结果只能在-0.5到0.5之间。

        Component Constraint设定接口

      • Delta C/Delta E

        Delta E为LAB的方均差,Delta C则不考虑亮度,只考虑AB的方均差。

      • Max Error Suppression

        使用者可根据需求设定Max Error抑制,值域为0 ~ 100,值越大可以在抑制Max Error效果越强,但Avg Error会上升,建议设定50以下。

        Max Error抑制设定接口

      • 设定完成后点选calculate按钮,在窗口右侧会显示最终fit出的结果。

        CCM界面

      • 重复上述步骤fit出剩余色温的color matrix。

    Gamma Fitting Analyzer

    此插件工具使用于Gamma Fitting校正。

    调整界面

    CDF_Orig :open source的CDF曲线。

    CDF_Ref :open target的CDF曲线。

    FitGMA :Fitting Gamma曲线。

    Gamma Fitting Analyzer界面

    使用方式及参数说明
    • 使用方法

      1. 读取影像的Gamma 曲线,点击Options的Raw Setting初始设定(Image Decompress设定方式可参考Raw Setting参数说明)。

        开启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参数值。

    SStarCalibration Tool

    此插件工具使用于shading以及black level校正,功能和calibration tool相同

    CalibrationALSC调整界面

    CalibrationALSC界面

    CalibrationALSC使用方式及参数说明
    • 参数设定

      • Ratio Table:画面中心至角落补正强度ratio,值域0 ~ 255。

        可让使用者调整各色块的权重,权重越大者fitting的结果会越准确,预设都设为100。

      • OBC:目前sensor的OB值,单位为16bits,值域0 ~ 65535。

      • GridX、GridY:shading table的大小。

      • Set Delta Format:非等距方格设定。

        1. Delta Mode:默认16种模式,值域0 ~ 15。设定方式可参考『Delta_LUT_X默认16种模式分布』及『Delta_LUT_Y默认16种模式分布』。

        2. Delta Mode Advance Enable:选择启动进阶模式开关,0表示关闭、1表示启用,值域0 ~ 1。当GridX/Y使用非默认时,必须进入此模式进行非等距方格设定。

        3. Delta X Lut:X轴间距,实际pixel数目为此值再乘16,只限填1、2、4、8、16,未使用则填0。

        4. Delta 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,有两种路线

      (a)勾

      1. 勾起Load Cali Data后 点选Select Cali Data,选择你要Apply的.data。

      2. 选择完所要的.data后,只能使用CaliApply。

        此时Apply的校正参数并不会显示在我们的SStarCalibrationTool上。

      (b)不勾

      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都会被反灰,此时上图红色框框部分设定有变动就可再重校正一次。

    CalibrationLSC调整界面

    CalibrationLSC界面

    CalibrationLSC使用方式及参数说明
    • 参数设定

      • Ratio Table:画面中心至角落补正强度ratio,值域0 ~ 255。

        可让使用者调整各色块的权重,权重越大者fitting的结果会越准确,预设都设为100。

      • OBC:目前sensor的OB值,单位为16bits,值域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,有两种路线

      (a)勾

      1. 勾起Load Cali Data后 点选Select Cali Data,选择你要Apply的.data。

      2. 选择完所要的.data后,只能使用CaliApply。

      此时Apply的校正参数并不会显示在我们的SStarCalibrationTool上。

      (b)不勾

      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都会被反灰,此时上图红色框框部分设定有变动就可再重校正一次。

    CalibrationOBC调整界面

    CalibrationOBC界面

    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:校正后希望残留的值,单位为16bits,值域0 ~ 65535,建议设0。

    • 使用方法

      根据是否勾Load Cali Data,有两种路线

      (a)勾

      1. 勾起Load Cali Data后 点选Select Cali Data,选择你要Apply的.data。

      2. 选择完所要的.data后,只能使用CaliApply。

      此时Apply的校正参数并不会显示在我们的SStarCalibrationTool上。

      (b)不勾

      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都会被反灰,此时上图红色框框部分设定有变动就可再重校正一次。

    Raw Setting参数界面

    Raw Setting界面

    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)。


    CALIBRATION TOOL 1.0.33.0


    支持OBC、ALSC、LSC以及AWB产线校正,需额外使用offline的calibration tool。需确认计算机环境是否有安装Visual Studio 20xx可散发程序套件(Link:x86x64)。


    校正流程

    在各情境下抓RAW,设定参数(修改*.ini),产生*.data,并将*.data刻录进去。

    抓RAW方式

    参数说明

    在calibration\SampleCode\Release\CalibrationInitialParameter.ini设定环境参数

    [RAW_INFO]

    1. filename :RAW名称。

      • Raw data命名规则是“filename” + “_” + “three numbers”
    2. foldername :含有RAW文件文件夹路径。

      • 当不为空字符串,会从此文件夹路径搜寻所有的raw文件(不用按照filename的命名规则),并根据frame_numbers决定要用几张。

      • 当frame_number多于所搜寻到的raw档时会回报错误。

    3. frame_numbers :单次校正Raw个数,通常为1。

    4. 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。

    5. width :RAW image的width。

    6. height :RAW image的height。

    7. clip_x :Clip image的起始X坐标,避免破坏Bayer Pattern排序,建议设置偶数。

    8. clip_y :Clip image的起始Y坐标,避免破坏Bayer Pattern排序,建议设置偶数。

    9. clip_width :Clip image的widht,避免破坏Bayer Pattern排序,建议设置偶数。

    10. clip_height :Clip image的height,避免破坏Bayer Pattern排序,建议设置偶数。

    11. dump_clip_image :Dump clip image档案的开关,0表示关闭、1表示开启,预设为0。

    12. 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)]

    13. source_type :Raw的排列格式。

      • 选0为16 Bits aligned Raw (根据in/out_data_precision,左移或右移资料)。

      • 选4为12 Bits 紧密排列的Raw (不须理会in/out_data_precision,一率12 bits转16 bits)。

    14. in_data_precision :输入RAW的精准度,预设为16。

    15. out_data_precision :输出*.data 的精准度,预设为16。

    16. cali_output_path :输出路径,不建议修改。

    [CALI_INFO]

    1. calibration_select :Calibration项目,OBC = 1、AWB = 2、LSC = 3、ALSC = 4、NE = 7。

    2. load_calibration_data :Load *.data的开关。第一次校正时,必设为0,若要进行多次校正,从第二次校正开始,必须将此设为1,才会保存之前校正的数据,常用在OBC、ALSC、LSC、AWB。

    3. load_calibration_data :Twinkie = 2、Pretzel = 3、Macaron = 4、Pudding = 5、Ispahan = 6、Ikayaki = 7、Muffin=8、Maruko=9、Souffle=10、Mercury5 = 16、Tiramisu=17、Mochi=19。

    [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]:后面章节详述介绍。

    产生 *.data

    Calibration Step:

    1. 在calibration\SampleCode\Release\image放入用来校正的RAW。

    2. 修改calibration\SampleCode\Release\CalibrationInitialParameter.ini。

      CalibrationInitialParameter.ini - RAW_INFO参数设定说明

    3. 执行calibration\SampleCode\Release\CalibrationRelease.exe。

      校正程序一开始会先检查执行路径目录,是否存在data and image文件夹(自动产生)。

      Figure 155:检查calibration所需的data文件夹是否存在

    4. 校正程序成功后,可在calibration\SampleCode\Release\data\cfg取得*.data。

      产生calibration所需的*.data档案

    载入 *.data

    可使用MI_ISP_API_CmdLoadCaliData加载校正数据,详细请参考 ISP软件开发参考


    OBC调整

    校正sensor的black level。

    校正环境

    校正环境为遮黑校正,须避免任何可能光源进入。遮黑时先观察串流画面是否有异常,无异常则进行下一步,若发现异常则暂停校正并立即反映,待问题解决再作后续动作。

    遮黑画面异常范例

    参数说明

    AutoAssign :将OB值设给所有Gain,值域0 ~ 1,建议设1。

    Target :校正后希望残留的值,单位为16 bits,值域0 ~ 65535,建议设0。

    Weight :将画面均分为3×3区块,在计算OB时每个区块的权重,值域0 ~ 16,建议全部设1。

    CaliGainIndex :依照ISO index来选填数值,值域0 ~ 15。

    校正步骤

    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或是combine mode,则OB值会填到IQ Tool中OBC接口的blacklevel,单位为16 bits。

    5. 若为HDR mode,长短曝要分开校正

      • 短曝校正:与normal mode相同,遮黑抓短曝RAW,且out_data_precision填16,产生obc_cali.data,再load obc_cali.data进去,则OB值会填到IQ Tool中OBC接口的blacklevel,单位为16 bits。

      • 长曝校正:遮黑抓长曝Raw,且out_data_precision填16,产生dump_obc_data.txt,再手动填入到IQ Tool中OBC接口的blacklevel_1,单位为16 bits。

    批注:

    A. Normal mode :表示为Linear mode(single frame)和HDR mode(2 frames)。

    B. Combine mode :表示为Sensor端完成长、短曝光的合成影像包含影像数据压缩程序。

    注意事项

    假设遇到高倍gain与低倍gain的OB差异很大,需要为不同ISO index设定不同OB时,请直接利用AE手动设定各ISO index gain值遮黑拍RAW,产生dump_obc_data.txt,再手动填入到IQ Tool中OBC界面的blacklevel的Auto Mode 16个节点中。


    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内插。

    校正环境

    均匀光源,最严谨的方法是使用Macbeth标准灯箱搭配diffuser来做校正,若没有diffuser就只能对灯箱中的灰墙,尽可能让光均匀去做校正。

    调整前务必确保OB和AWB色温曲线范围已校正且确实套用,用RGB sensor要确认IR cut有确实盖上。

    LSC / ALSC校正环境架设范例

    参数说明

    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。

    Delta_LUT_X默认16种模式分布

    Delta_LUT_Y默认16种模式分布

    ColorTemperature : 当前TargetIndex下的环境色温。

    OB_R/G/B_Value : 目前sensor的OB值,单位为16bits,值域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、3、7、15,未使用则设为0,最多支持至72组,在此平台为26格间距。

    Segment_Delta_LUT_Y0~8 : Y轴间距,每4个bit表示为一组索引值[index = (block size/16) – 1],则实际pixel数目为 (index + 1) x 16。索引值只限填1、3、7、15,未使用则设为0,最多支持至72组,在此平台为16格间距。

    校正步骤

    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.4.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(详细请参考文档ISP软件开发参考)。

    调整界面

    于左侧选单点选Shading即会出现ALSC和ALSC_CTRL接口。

    ALSC和ALSC_CTRL调整界面

    参数说明

    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值。

    BV :各节点对应的BV值。

    调整步骤

    1. 在不同BV下调整Ratio,通常在低BV的情况下会降Ratio,可以减轻因ALSC造成的外圈较脏。

    2. R/G/B Ratio By CCT预设为1x,若有需求再调整即可。

    注意事项

    1. ALSC R/G/B Gain table 同时存在iqfile、alsc_cali.data和API bin,会吃iqfile当默认值,若有API bin则会盖过iqfile,若有alsc_cali.data则会再盖过API bin。

    2. 如果不做每个module逐一校正,只要套用同样的ALSC,load alsc_cali.data后可在IQ Tool读出ALSC R/G/B Gain table并储存在API bin,之后就不需要每次load alsc_cali.data。

    .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)。


    LSC调整

    LSC校正会产生出R、G、B各一个32的table,针对画面不同区域给予不同的R、G、B gain,因此可同时改善Y shading,最多支持3种色温,不支援table内插。

    校正环境

    同ALSC。

    参数说明

    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值,单位为16bits,值域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。

    校正步骤

    1. 同ALSC。

    2. 产生lsc_cali.data,亦可产生dump_lsc_data.txt或dump_lsc_result.raw看一下校正结果,再load lsc_cali.data进去,若无校正LSC时,此步骤可省略跳至下一项。

    调整界面

    于左侧选单点选Shading即会出现LSC和LSC_CTRL接口。

    LSC和LSC_CTRL调整界面

    参数说明

    CenterX : LSC中心点x值,值域0 ~ 4095。通常为影像中心点或最亮点的x值。

    CenterY : LSC中心点y值,值域0 ~ 4095。通常为影像中心点或最亮点的y值。

    RateX : x方向距离差的缩放比例,base为1024,值域0 ~ 2047。当前点x值和LSC中心点x值的差值,会再乘上此比例,再搭配y方向去计算和LSC中心点的距离。

    RateY : y方向距离差的缩放比例,base为1024,值域0 ~ 2047。当前点y值和LSC中心点y值的差值,会再乘上此比例,再搭配x方向去计算和LSC中心点的距离。

    Shift : 距离横移量,值域0 ~ 31。与中心点的距离会再向右shift此值,当作是index,再去查Gain Table。

    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值。

    调整步骤

    1. 在不同BV下调整Ratio,通常在低BV的情况下会降Ratio,可以减轻因LSC造成的外圈较脏。

    2. R/G/B Ratio By CCT预设为1x,若有需求再调整即可。

    注意事项

    1. LSC R/G/B Gain table 同时存在iqfile、lsc_cali.data和API bin,会吃iqfile当默认值,若有API bin则会盖过iqfile,若有lsc_cali.data则会再盖过API bin。

    2. 如果不做每个module逐一校正,只要套用同样的LSC,load lsc_cali.data后可在IQ Tool读出LSC R/G/B Gain table并储存在API bin,之后就不需要每次load lsc_cali.data。

    .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 * cctNum + (8 + x) * cctNum bytes,cctNum=校正的色温组数(1 ~ 3)。


    AWB调整

    用于产线校正,用来补偿各机台与Golden sample间的白平衡统计值差异。

    校正环境

    灯箱中放置灰卡或同ALSC拍摄均匀光源(建议),让灰卡或均匀光源占满画面拍摄raw data。

    此外拍摄raw data过程中需要保证不同sensor曝光量相同(Shutter Time、Sensor Gain、Digital Gain完全相同)。

    参数说明

    HighLowCTMode :是否使用高低色温校正(旧版校正方式)。0表示OFF(MUFFIN只支持OFF);1表示ON。

    CaliState :指定校正的模式。0表示CALIB_GOLDEN;1表示CALIB。

    BrightnessCaliMode :是否校正亮度。0表示OFF;1表示ON。

    CT :色温,值域1000 ~ 10000。

    OB_R/GR/GB/B_Value :OB值设定,值域0 ~ 65535。

    校正步骤

    1. 分析多台机台AWB统计值落点,从中挑选出一台落点接近平均值的来当作golden sample。

    2. 校正时选择使用一种色温灯源去做校正。

      2.1. 使用一种灯源做校正,校正流程如下:

      • 用golden sample与unit sample拍摄raw data,并放至calibration tool的image文件夹中。

      • 开启CalibrationInitialParameter.ini填入正确[RAW INFO](参考16.1.2)。

        • Golden sample raw data路径及格式。

        • in/out_data_precision设16。

        • calibrarion_select设2。

        • load_calibration_data设0。

      • 设定CalibrationInitialParameter.ini中[AWB]校正参数(参考16.5.2)。

        • CaliState设0。

        • BrightnessCaliMode设0或1,依是否校正亮度决定。

        • CT设为校正灯源的色温值。

        • OB值设定,值域0 ~ 65535。

      • 执行CalibrationRelease.exe在\data\cfg产生存有golden sample校正值的awb_cali.data,必须保存好此data直到校正结束。

      • 开启CalibrationInitialParameter.ini填入正确[RAW INFO](参考16.1.2)。

        • Unit sample raw data路径及格式。

        • in/out_data_precision设16。

        • calibrarion_select设2。

        • load_calibration_data设1来保存之前校完的资料。

      • 设定CalibrationInitialParameter.ini中[AWB]校正参数(参考16.5.2)。

        • CaliState设1。

        • BrightnessCaliMode设0或1,依是否校正亮度决定。

        • CT设为校正灯源的色温值。

        • OB值设定,值域0 ~ 65535。

      • 执行CalibrationRelease.exe在\data\cfg产生最终的awb_cali.data,完成校正。若校正时[CALI_DB]中的cali_dump_data有设为1,校正后会同时产生dump_awb_data.txt,里面可以看到校正出来的值。

      • 校正下一个unit sample时、只需load前一个unit sample校正出的awb_cali.data再执行State 1将前一个unit sample的校正结果覆盖掉即可。

      • 需透过MI_S32 MI_ISP_API_CmdLoadCaliData这支API来套用awb_cali.data。

        须注意MUFFIN在做白平衡补偿校正时只能使用E_SS_CALI_ITEM_AWB_EX。

        (详细请参考文档ISP软件开发参考)

    .data格式&大小

    Handle size :20 bytes。

    Ctrl size :24 bytes。

    Data size :12 bytes。

    Total size :20 + 24 + 12 bytes。


    NE调整

    分析 sensor 的 Noise 型态,设定 3DNR 运动判断之阀值。

    校正环境

    建议拍摄以下 Dynamic Range Chart,并确保画面中所有亮度分布均有出现。如果没有此图表也可以使用实验室场景校正,只是需要确保各种亮度均有出现。

    ITDR36 Chart

    实验室场景

    参数说明

    GainIndex :依照 ISO index 来选填数值,值域 0 ~ 15。

    Dummy_Mode :根据 Dummy_Ex 的 Dummy3 设定对应模式,值域-1 & 1~2。

    Auto_Assign :将 NE 值设给含 GainIndex 后的所有 Gain,值域 0 ~ 1,建议设 1。

    OB_R/GR/GB/B_Value :OB 值设定,值域 0 ~ 65535。

    校正步骤

    1. 将 sensor gain 设为欲校正的 ISO 值。

    2. 将 Dynamic Range Chart,放置于 D65 光源之前,调整光源亮度或 Shutter 至最亮 patch 不过曝,并做亮度分布确认。

      • 拍摄 2 张 Raw,并于 CalibrationInitialParameter.ini 设置 Raw data 路径格式。

      • 将 frame_number 设为 2。

      • 参考步骤 4~6 产生 dump_ne_data_WIDTHxHIGHT_gainXX.txt,如 Figure 172,Seg R/G/B Count 为由暗到亮每个节点区间亮度参考点数量,拍摄时应尽量确保每个节点区间都有参考点(当 Dummy_Mode 为 1 时前几个节点区间没有参考点属于正常现象)。

    3. 拍摄 N 个 frame 的 Raw,N 建议为 50 张。

    4. 开启 CalibrationInitialParameter.ini 填入正确[RAW INFO](参考 16.1.2)。

      • Raw data 路径及格式。

      • in/out_data_precision 设 16。

      • calibrarion_select 设 7。

      • frame_number 设 N。

    5. 根据 Dummy_Ex 的 Dummy3 设定对应 [NE] Dummy_Mode,并确认 OB 正确设定。

    6. 执行 CalibrationRelease.exe 产生 ne_cali.data。

      • 若校正时 [CALI_DB] 中 的 cali_dump_data 有设为 1 ,校正后会同时产生dump_ne_data_WIDTHxHIGHT_gainXX.txt,里面可以确认第 XX 个 Gain Index 校正时每个亮度区间的 Count 数。

      • 需透过 MI_ISP_API_CmdLoadCaliData 这支 API 来套用 ne_cali.data(详细请参考文档 SStar_MARUKO_ISP_软件开发参考)。

    7. 重复前面几个步骤,值到校正所有会用到的 ISO 范围。

      dump_ne_data_WIDTHxHEIGHT_gainXX.txt

    注意事项

    拍 Raw 时须注意避免 Chart 被晃动,并且须注意画面种无任何物体移动或灯源闪烁。


    SCENE MODE INTRODUCTION


    场景侦测算法提供背光(Back light)、顺光(Front light)、混光(Mixer light)三种模式,定期更新每个场景模式的分数(分数范围:0 - 100),根据分数进行场景决策,以决定目前的场景模式,使IQ、AE、AWB可以做相对应调整,达到更好的效果。


    SceneDecision API

    SceneDecision API 控制场景决策的参数。

    调整界面

    于左侧选单点选Scene即会出现SceneDecision接口。

    SceneDecision调整界面

    参数说明

    Enable : 场景决定的切换。如果设定为停用,将停用场景模式 IQ/AE/AWB 调整。值域范围:0 ~ 1。

    EffectiveThd : 场景模式最高分数大于该阈值,则场景模式有效。值域范围:0 ~ 100。

    ReliableThd : 第一和第二分数之间的差值大于此阈值且第一个分数大于EffectiveThd则将选择第一个场景模式。值域范围:0 ~ 100。

    DebounceThd : 如果现在选择场景模式,它将关闭,直到其分数低于(EffectiveThd – DebounceThd)。值域范围:0 ~ 100。备注 - DebounceThd 应小于 effectiveThd。


    SceneAdjustIQ API

    透过此API调整背光(Back light)、顺光(Front light)、混光(Mixer light)场景模式的IQ部分参数。

    调整界面

    于左侧选单点选Scene即会出现SceneAdjustIQ接口。

    SceneAdjustIQ调整界面

    参数说明

    Enable : 启闭场景模式IQ调适功能。如果设定为停用,将停用场景模式IQ调整。值域范围:0 ~ 1。

    ConvSpeed : IQ调整项的收敛速度从目前水平收敛到目标水平。值域范围:0 ~ 100。

    AdjItem : IQ支持选择9个参数。下面表格是各个索引值对应的参数。横轴参数 - 每项的IQ调整选择,最多支持8个IQ项目。值域范围:0 ~ 8。纵轴参数 - 场景侦测模式,目前支持背光、顺光、混光共3种场景模式,最多支持16个场景模式。

    Index Parameter Description
    0 ByPass 无调整参数。
    1 Denoise_Bayer 调整Bayer denoise的强度。
    2 Denoise_Y 调整Luma denoise的强度。
    3 Denoise_C 调整Chroma denoise的强度。
    4 Sharpness 调整Edge enhancement的强度。
    5 Saturation 调整Saturation的强度。
    6 Brightness 调整Brightness的强度。
    7 Contrast 调整Contrast的强度。
    8 Lightness 调整Lightness的强度。

    Level : 设定对应参数的调整等级,AdjItem未选择的参数等级将为100(Level数值100表示不调整)。值域范围:0 ~ 200。


    SceneAdjustAE API

    透过此API调整背光(Back light)、顺光(Front light)、混光(Mixer light)场景模式的AE部分参数。

    调整界面

    于左侧选单点选Scene即会出现SceneAdjustAE接口。

    SceneAdjustAE调整界面

    参数说明

    Enable : 启闭场景模式AE调适功能。如果设定为停用,将停用场景模式AE调整。值域范围:0 ~ 1。

    ConvSpeed : AE调整项的收敛速度从目前水平收敛到目标水平。值域范围:0 ~ 100。

    AdjItem : AE支持选择2个参数。下面表格是各个索引值对应的参数。横轴参数 - 每项的AE调整选择,最多支持8个AE项目。值域范围:0 ~ 1。纵轴参数 - 场景侦测模式,目前支持背光、顺光、混光共3种场景模式,最多支持16个场景模式。

    Index Parameter Description
    0 ByPass 无调整参数。
    1 Exposure 调整自动曝光的目标亮度。

    Level : 设定对应参数的调整等级,AdjItem未选择的参数等级将为100(Level数值100表示不调整)。值域范围:0 ~ 200。


    SceneAdjustAWB API

    透过此API调整背光(Back light)、顺光(Front light)、混光(Mixer light)场景模式的AWB部分参数。

    调整界面

    于左侧选单点选Scene即会出现SceneAdjustAWB接口。

    SceneAdjustAWB调整界面

    参数说明

    Enable : 启闭场景模式AWB调适功能。如果设定为停用,将停用场景模式AWB调整。值域范围:0 ~ 1。

    ConvSpeed : AWB调整项的收敛速度从目前水平收敛到目标水平。值域范围:0 ~ 100。

    AdjItem : AWB支持选择11个参数。下面表格是各个索引值对应的参数。横轴参数 - 每项的AWB调整选择,最多支持8个AWB项目。值域范围:0 ~ 10。纵轴参数 - 场景侦测模式,目前支持背光、顺光、混光共3种场景模式,最多支持16个场景模式。

    Index Parameter Description
    0 ByPass 无调整参数。
    1 20000K Weight 调整色温20000K的区域权重。
    2 15000K Weight 调整色温15000K的区域权重。
    3 10000K Weight 调整色温10000K的区域权重。
    4 6500K Weight 调整色温 6500K的区域权重。
    5 5000K Weight 调整色温 5000K的区域权重。
    6 4000K Weight 调整色温 4000K的区域权重。
    7 3000K Weight 调整色温 3000K的区域权重。
    8 2300K Weight 调整色温 2300K的区域权重。
    9 1500K Weight 调整色温 1500K的区域权重。
    10 1000K Weight 调整色温 1000K的区域权重。

    Level : 设定对应参数的调整等级,AdjItem未选择的参数等级将为100(Level数值100表示不调整)。值域范围:0 ~ 200。


    SceneInfo API

    透过此API获取目前场景模式以及目前所有IQ/AE/AWB等级的参数。

    调整界面

    于左侧选单点选Scene即会出现SceneInfo接口。

    SceneInfo调整界面

    参数说明

    SceneFlag :显示现在选择的场景模式。所选场景模式的旗标将变为1,只读。

    IQ_CurLevel :显示所有IQ参数的目前强度,100 表示不调整。值域范围:0 ~ 200,只读。

    AE_CurLevel :显示所有AE参数的目前强度,100 表示不调整。值域范围:0 ~ 200,只读。

    AWB_CurLevel :显示所有AWB参数的目前强度,100 表示不调整。值域范围:0 ~ 200,只读。


    与SOUFFLE差异列表


    模块名称 差异功能 差异参数(删除) 差异参数(新增)
    WDR_NR 新增VNDNosMot N/A VNDNosMot
    WDRCurveFull global tone/gamma/degamma曲线,由16bit下降到12bit All All
    HDR 不支持3frame HDR All All
    HDR_Ex 不支持3frame HDR All All
    ThermalIR IFORD移除ThermalIR模块 删除
    SDC IFORD移除SDC模块 删除
    FPN IFORD移除FPN模块 删除