ISP API Tuning SOP
1. 概述¶
1.1. 模块说明¶
ISP模块是对Video source输入的数据进行分析、处理,设定相关视频参数以及进行Camera的调整,以实现黑电平校正、镜头校正、3A、2D/3D降噪、CCM、Gamma…等功能。
1.2. 流程框图¶
图1-1 IQ Tuning - 流程图
2. CALIBRATION¶
每颗sensor及lens特性不尽相同,当拿到一颗新sensor或lens时,首要动作就是针对其特性去做校正及参数设定,完成后才能去做后续的画质调整。接下来各节会依据校正流程做介绍,建议依照此流程来做调整。
2.1. AWB色温曲线范围调整¶
在pipeline中虽然AWB在shading校正之后,但shading校正需会要AWB根据统计资料推算出来的CCT值,且shading是否校正对AWB影响较小,因此建议先做AWB色温曲线范围的调整,等ALSC校正完后再回来检查AWB色温曲线范围是否需要微调。
2.1.1. 校正环境¶
使用Macbeth标准灯箱,灯箱内放置灰卡,让灰卡占满整个画面,若没有灰卡就直接利用灯箱内的灰墙来做分析。
调整前务必确保OB已校正且确实套用,用RGB sensor要确认IR cut有确实盖上。
2.1.2. 校正界面¶
选择API tool上方Select Plugin,选择Awb AnalyzerCombo开启调整工具界面。
图2-1 Plugin选择
图2-2 Awb Analyzer Combo界面
2.1.3. 接口说明¶
主窗口:
-
窗口中每个绿点就是一个统计资料。
-
共有10个色温框可供调整,每个色温框所代表的色温可参考右方CTAera的表格,蓝色框区域才是实际有效的色温曲线范围,未落入此区域的统计资料则不采用。用鼠标按住色温框的控制点进行拖拽可直接对色温框进行调整。
-
右上方会显示当下算出的RGain、BGain及色温(CT)。
-
File:共有四种选项:
-
载入统计值
-
载入色温曲线范围
-
储存统计值
-
储存色温曲线范围
-
-
RawFormat:开启Raw Image用的格式,当选择Raw Image为统计值来源之前需要先来此设定格式。
-
StartIdx:有效色温框的起始Index,建议值为2。
-
EndIdx:有效色温框的结束Index,建议值为7。
-
Update Live Statis:即时更新当下统计资料。
-
Reset CTArea:将色温框复原到板子目前套用的设定。
-
Apply to Camera:将色温框套用至板子上。
-
2.1.4. 校正步骤 & 套用¶
-
设定StartIdx和EndIdx来决定欲做AWB的色温范围,建议设定为StartIdx = 2 、EndIdx = 7,也就是当环境色温在2300K~10000K才会做AWB。
-
准备一台可量测色温的meter,量测欲调整灯源的实际色温。
-
点击Update Live Statis更新目前灯源的统计资料,接着点击File→Save Statistics储存统计资料。调整代表色温接近实际色温的色温框,色温框大小只要能涵盖大部分统计资料即可。此外要注意让右上方推算出的色温(CT)接近实际色温,不离谱即可。
图2-3 2800K灯源调整范例
-
切换不同色温的灯源,重复上述2、3步骤。由于灯箱灯源数量有限,可能无法涵盖整个色温曲线范围,因此没有统计资料可参考的色温框请自行参考调整过的色温框做色温曲线范围的smooth。
-
调整完成后,选择File→Save CTArea储存调整好的色温框,接着选择Apply to Camera即可套用到板子上,关闭Awb Analyzer Combo。回到API tool界面选择左侧AWBCTCali,再选择ReadPage将板子上的设定读回,最后选择上方File→Save→Bin file将AWB色温曲线设定存至API的bin档中。
2.1.5. 注意事项¶
灯箱的环境是AWB最基本要做好的,因此建议调整过程中储存各灯源统计资料,日后遇到实际场景需要微调色温曲线范围时,微调后可读回灯箱统计资料确认是否会影响灯箱环境的白平衡,不需要再重新架设灯箱环境,可节省时间。若对某个场景AWB有疑问,可以提供该场景的统计资料以及当时使用的色温框设定,方便相关人员进行分析。
2.2. AE Exposure Table 设定¶
不同的sensor及lens特性及能力皆不同,预设的AE exposure table不见得适合目前的module,因此需要去检查,并将其修改为适合目前module的设定。
2.2.1. 调整界面¶
选择左方的AE项目,再选择ExpoTblEntry即可出现AE exposure table调整窗口。
图2-4 AE设定界面
图2-5 AE Exposure Table
2.2.2. 参数说明¶
NumOfExpoTblEntry:设定AE exposure table的数量。以图2-4设5为例,AE exposure table就须填入5组设定。
Table第一字段:镜头光圈值(Fn)x10。例如光圈1.6则填入16。
Table第二字段:快门(usec)。
Table第三字段:Total gain(1024 = x1 gain),也就是Sensor gain x ISP gain。
Table第四字段:Sensor gain(1024 = x1 gain)。
2.2.3. 设定项目¶
-
确认lens光圈值,将光圈值x10填入第一栏。
-
向用户询问maximum gain,填入倒数第一列的第三栏中。
-
若不使用ISP gain,直接将第三栏的值复制到第四栏中。
3. GAMMA FITTING & COLOR CORRECTION¶
不同的gamma和color对noise会有不同的影响,而且调整denoise时先套入gamma和color设定会比较方便观察,因此通常会先做gamma和color的调整,即便它们在PRETZEL的pipeline中是在denoise之后。
3.1. Gamma Fitting¶
Color fitting的结果容易受到亮度差异的影响,而亮度差异主要来自AE和gamma,因此在color fitting前务必先做gamma fitting。此步骤主要目的是将调整机台的gamma fit到与对比机的gamma接近。校正前请先确认dynamic range是full range。
3.1.1. 校正环境¶
使用OECF chart,让光线均匀打在chart上,拍摄时让chart摆在画面中间,不要占满整个画面,否则容易受到shading的影响。
图3-1 拍摄画面范例
3.1.2. 校正界面¶
选择API tool上方Select Plugin,选择Gamma Fitting开启校正界面。
图3-2 Gamma Fitting界面
3.1.3. 校正步骤¶
-
将环境架设好,首先拍摄调整机台与对比机台fitting所需的image。由于曝光会影响亮度,因此gamma fitting要在相同曝光的基准上会比较准确。要得到接近的曝光,最简单的方式就是拍摄时(调整机拍raw,对比机拍jpg)让OECF最亮色块尽量接近255但不要刚好255,因为我们不知道对比机gamma长甚么样子,但通常gamma最亮点是不会变的,因此拿它来当基准会比拿其它点当基准要好。
图3-3 拍摄source及target画像示意图
-
读取source raw data的OECF patch值。
选择界面工具列的Options,填入正确的raw information及OB (WB不需要设定),完成后选择OK。
图3-4 Raw Setting设定界面
拖拽鼠标来框选OECF,确认每一个patch都有正确落在patch内即完成。
图3-5 框选OECFpatch范例
-
读取target image的OECF patch值。
和上述步骤相同,差别只是target是读取image档,省略了设定raw information的动作。
-
选择fitting的相关设定,取值方式建议使用patch values,fitting的方式建议使用Exponenitial。
图3-6 Gamma fitting设定建议
-
选择好后选择Match GMA执行gamma fitting,观察fitting出来的curve是否有异常,没有的话选择Save GMA储存gamma curve。最后检查储存出来的gamma curve头尾是在0和1023,若不是,请手动作修改。
图3-7 理想gamma curve要smooth且递增
3.2. Color Correction¶
此步骤主要目的是使调整机与对比机的颜色接近,调整主要包含两个部分:第一个也是最主要的部份是color matrix的fitting;另一个为HSV微调的部分,可依需求做局部颜色饱和度与色相的调整。Color matrix与HSV最多可支持16组色温的设定,填参数时务必按照规则,Index0到Index15代表色温由低到高。
3.2.1. CCM调整¶
当使用tool将各色温灯源校正完成,需要手动将校正结果填入CCM对应的项目中。
3.2.1.1. 调整界面
图3-8 CCM调整界面
3.2.1.2. 参数说明
ISOActEn : 在night mode是否自动将CCM设为unit matrix的开关,若有勾选,当遇到IQMode为\Night时会将CCM自动切换为unit matrix。
CCTthr :色温节点设定,需填入校正CCM时对应的色温值,CCM与HSV要套用哪组设定都会根据\此CCTthr来决定,注意index小到大需要按照色温低到高的顺序填入,最多支持16组设定,没用到请设0。
CCM : 各色温color matrix设定,需根据色温填入对应的color matrix,注意index小到大填入时\需要按照色温低到高的顺序填入。新增每个Row的总合,如果不是1024代表有问题,请手动修改CCM。
SATURATIONbyISO : Color matrix饱和度调整,程式会根据此设定将使用者定义的matrix与unit matrix做内插,值域0~100,设0表示使用unit matrix,设100表示使用使用者自订CCM。此参数是根据gain值做切换。
3.2.2. HSV调整¶
当CCM套入后仍有颜色希望微调,则可使用HSV来达成。HSV会将整个色域平均切成24等分,使用者可依需求调整个等分的色相及饱和度。HSV的参数与CCM相同,都是根据不同色温来做切换,不是根据gain。
3.2.2.1. 调整界面
图3-9 HSV调整界面
3.2.2.2. 参数说明
HueLut : 可依需求局部调整色相,值域-64~64,0代表不改变。
图3-10 Hue调整界面
SatLut : 可依需求局部调整饱和度,值域0~255,64代表不改变。
图3-11 Sat调整界面
HueLut_ForUnitCCM : 搭配unit matrix的色相调整,值域-64~64,0代表不改变,参数切换是根据色温。
SatLut_ForUnitCCM : 搭配unit matrix的色相调整,值域0~255,64代表不改变,参数切换是根据色温。
GlobalSat :调整整体颜色的饱和度,值域0~255,64代表不改变,参数切换是根据gain。建议降饱和度时利用这里来降对noise level降低较有效,提高饱和度时则利用Saturation API来升比较不会增加noise level。
3.3. Saturation调整¶
根据亮度(Y)及饱和度(UV)做UV的调整,分为adjust uv by y及adjust uv by uv,主要是留一些颜色调整弹性在YUV domain上,且因为亮度与饱和度的独立性,可保持亮度恒定,又达到局部调整饱和度的效果。在感测器用到高曝光值的时候,也可适度降低暗处色躁。亦或根据使用者喜好调高或降低饱和度,使画面看起来更鲜艳或较柔和。
3.3.1. 调整界面¶
在左侧菜单选择Saturation,接着在右侧主画面可找到Saturation界面。
图3-12 Saturation调整界面
3.3.2. 参数说明¶
Sat.AllStr : 整体饱和度的可变强度数值,值域范围:0 ~ 127 (32=1x)
Sat.ByYsft、Sat.BySsft :根据Y/UV调整UV的X轴间距可以透过此调整,但有特殊限制: 节点为2的幂次方并向上相加,例:Sat.ByYsft[5] = { 3, 3, 5, 7, 7}; 第一点为0,第二点为0+2^3,第三点为0+2^3+2^3,第四点为0+2^3+2^3+2^5,以此类推 则X轴间距点为:{ 0, 8, 16, 48, 176, 255},最后一点超过卡到255特殊限制为:X轴前四点总和小于255,最后一点一定要大于等于256。 例:Sat.ByYsft[5] = {8, 0, 0, 0, 0},第一点为0,第二点为0+2^8=256,则违反规则
Sat.ByYLut、Sat.BySYLut : 节点的数值可以自由决定。 特殊应用:HDR效果开启后,高亮度会过于饱和,以此可以透过Sat.ByYLut/ Sat.BySLut将高亮度/高饱和度的UV向下压,让影像在HDR效果下更显自然。
图3-13 Sat.ByYsft[5] & Sat.ByYLut[6]
图3-14 Sat.BySsft[5] & Sat.BySLut[6]
4. DENOISE & EDGE ENHANCEMENNT & SATURATION¶
虽然板子连上API tool时会将iqfile中预设参数读回界面,但各IP开关与否并不会显示在界面上,若要完全从头开始调整一颗新sensor的画质,建议先去Enable Control界面bypass除了sharpness和之前调整完毕专案(OB、ALSC、Gamma、Color)以外的功能,了解一下这颗sensor尚未做任何denoise前的状况,例如解像力极限、是否有crosstalk或false color等等,之后再依需求开启对应的功能来调整,避免多余的功能影响画质表现。理论上sharpness也要bypass,但为了方便观察现象,建议还是开著,可先设为以下建议预设值:(高倍gain可把Over/UnderShootGain设小一些,让画面不要太离谱即可)。
图4-1 Sharpness建议预设值
当调整高倍gain时,没有denoise又开sharpness画面会很脏,脏到无法辨识调整参数的效果,建议可在调NR3D前将Y.TF.STR开强,让画面定住,方便调整NR3D前的一些function。调整建议照ISO index顺序调整,此外,为避免参数内插影响判断,建议将AE设为Manual的SV mode,直接给定各节点的gain值来做调整,完整调好一个再跳下一个。调整画质前请将镜头擦干净且确实对到焦,RGB sensor要确认IR cut有盖上。
4.1. Crosstalk & False Color调整¶
调整denoise前先检查是否有fixed pattern、cross talk或false color等现象,有的话先调整,一来是因为这些功能本来就在denoise之前,二来是特殊现象就要用专门的功能才能有效处理,硬用denoise去消除这些现象容易造成画质损失。
4.1.1. Crosstalk (Green Equal)¶
这主要是lens与sensor搭配性的问题,当光线进入sensor上micro lens的角度太大,容易误接收到应该被邻近pixel接收的讯号,导致Gr、Gb差异变大,因此这现象较容易发生在画面角落,或是光线从某个特殊角度进入时画面出现迷宫纹。
4.1.1.1. 现象
图4-2 Crosstalk造成的迷宫纹现象
4.1.1.2. 调整界面
在左侧菜单选择BayerCompemsation,接着在右侧主画面可找到Crosstalk界面。
图4-3 Crosstalk调整界面
4.1.1.3. 参数说明
Strength : crosstalk强度值,值域0 ~ 31,越大效果越强。
StrengthByY : 根据亮度调整crosstalk强度值,横轴越右边代表越亮,值域0 ~ 127,越大效果越强。值为64代表不做调整。
Threshold : crosstalk threshold ratio值,值域0 ~ 255,越大作用范围越大。
Offset : crosstalk threshold offset值,值域0 ~ 4095,越大作用范围越大。
4.1.1.4. 调整步骤
-
将Offset设为0,Threshold设为128,Strength由0往上升,观察欲消除crosstalk的区域及欲保留的细节区,调整至crosstalk与细节保留都可接受即停止。
-
如需微调则再利用Threshold来做微调。
-
若暗处还是有很明显的crosstalk,再来拉大Offset。
4.1.2. False Color¶
由于demosaic时未考虑方向或方向判断错误导致错误的颜色产生,容易发生在画面高频区域或edge边缘。
4.1.2.1. 现象
画面高频处或edge边缘出现伪色。
图4-4 False Color现象
4.1.2.2. 调整界面
在左侧菜单选择BayerCompemsation,接着在右侧主画面可找到AntiFalseColor界面。
图4-5 False Color调整界面
4.1.2.3. 参数说明
FreqThrd : 频域阀值,值域0 ~ 255,越小越容易做false color。
EdgeScoreThrd: Edge : 阀值,值域0 ~ 255,越大越容易做false color。
ChromaThrdOfStrengthMax: 最大强度阀值,值域0 ~ 127,越大则moire区域愈容易被降饱和度。
ChromaThrdOfStrengthMid : 中间强度阀值,值域0 ~ 127,越大则moire区域愈容易被降饱和度。
ChromaThrdOfStrengthMin : 最小强度阀值,值域0 ~ 127,越大则moire区域愈容易被降饱和度。
StrengthMid : 中间强度,值域0 ~ 7,越小则饱和度降愈少。
StrengthMin : 最小强度,值域0 ~ 7,越小则饱和度降愈少。
图4-6 False Color Curve示意图
4.1.2.4. 调整步骤
IF (freq > FreqThrd && edgeScore < EdgeScoreThrd) isMoire = TRUE; ELSE isMoire = FALSE;
Anti-False Color 透过Frequency, Edge Score来分离出位于高频区的False Color, 调整上我们可透过先将这两个条件放宽松只调降低的饱和度部分,然后逐步将Frequency, Edge, ChromaThrd三个条件的阀值都找出来。
三个阀值都找出来后如效果还不够或副作用太强,我们在针对其中一或两项来修改阀值。
-
先将ChromaThrdOfStrengthMax 设最大,FreqThrd 设最小,EdgeScoreThrd设最大,ChromaThrdOfStrengthMid 以及 ChromaThrdOfStrengthMin设最小,此时画面应当是全黑白的。
-
将FreqThrd 调大到画面中除False Color 处外其他景物的颜色都基本恢复正常。优先确保能除到FalseColor,其他颜色景物基本正常即可。记下此时的FreqThrd。
-
再将FreqThrd设回0,这次改调小EdgeScoreThrd 到其他景物颜色都基本恢复正常,一样优先确保能除到FalseColor,其他颜色景物基本正常即可。记下此时的EdgeScoreThrd。
-
FreqThrd 维持0,EdgeScoreThrd设回最大;调整ChromaThrdOfStrengthMax减少到其他景物都恢复正常色彩,又刚好可以把False Color 变灰的程度。如无法兼顾则优先确保其他景物的色彩正常。
-
调大ChromaThrdOfStrengthMid 让剩余的false Color 颜色变更淡,但一样要优先确保其他景物色彩正常
-
调大ChromaThrdOfStrengthMin 再继续处理剩余的false Color
-
调整上ChromaThrdOfStrengthMin 应大于ChromaThrdOfStrengthMid,而StrengthMid 应小于StrengthMin
-
将FreqThrd与EdgeScoreThrd 填入前面记下的值
-
如果周围景物还是能看到副作用,则设大FreqThrd 或设小EdgeScoreThrd来让周围景物恢复正常色彩。
-
如果在能去到False Color 的前提下调整FreqThrd或EdgeScoreThrd还是不能完全避开副作用,则FreqThrd 尽量小,EdgeScoreThrd尽量大后,开始调小ChromaThrdOfStrengthMax 或设大ChromaThrdOfStrengthMid 及ChromaThrdOfStrengthMin 直到没有看到副作用或影响程度可接受。
补充:
-
开启FalseColor对较细的紫边稍微有帮助,若FalseColor开到最强紫边仍严重,可以再利用HSV针对紫色色相降低饱和度,但调整时须注意正常紫色物品的饱和度是否过低。
-
False Color 的调整与Crosstalk 存在高度相依,建议先完成crosstalk 的调整后再进行anti-false color 的调整。
-
ChromaThrdOfStrengthMax 与 ChromaThrdOfStrengthMid 是针对不同Chroma source 的阀值,所以两者在调整上无相依关系。但ChromaThrdOfStrengthMid 与ChromaThrdOfStrengthMin 则存在相依关系,ChromaThrdOfStrengthMid 设计上应大于ChromaThrdOfStrengthMin。
4.1.3. PFC (Purple Fringing Compensation)¶
4.1.3.1. 现象
物体边界边缘出现紫色边缘。
图4-7 Purple fringing现象
4.1.3.2. 调整界面
在左侧菜单选择PFC,接着在右侧主画面可找到PFC界面。
图4-8 PFC调整界面
图4-9 PFC_EX调整界面
4.1.3.3. 参数说明
Strength : 去紫边的强度控制,值域0~255,值越大越强。
UStrength : 去紫边作用在U channel的强度。值域0~63,值越大越强。
VStrength : 去紫边作用在V channel的强度。值域0~63,值越大越强。
StrengthByY : 紫边通常出现在较暗的地方,且周围是高亮区域,所以可针对不同亮度,给予不同去紫边的强度,横轴越右边代表亮度越大。值域0~255,值越大越强。
FlatProtect : 平坦区的判断,避免大面积的紫色被判断为紫边,而做的保护。值域0~127,值越大越多地方不做PFC。
SatByY : 高对比区的判断,紫边通常出现在对比较高的区域,所以使用SatByY[0]来判断对比的程度。值域0~25,值越大,代表侦测到的对比度需超过SatByY[0]才为高对比。SatByY[1]用来判断亮度饱和区的程度。值域0~25,值越大,代表越亮的地方越不做PFC。
SarSrcSel : 判断高对比区时,可选用是否做NR的前处理。值域0~1,0代表不做NR,1代表有做NR,建议低照下可开启此功能。
StrengthByContrast : 针对对比的程度,给予不同强度的PFC,横轴越右边代表对比越强。值域0~63,值越大PFC越强。
DbgEn : 显示PFC的作用范围。值域0~1,1代表开启。
GSkipEn : 对G Channel不做FPC的处理,以保护部分边缘损失的问题。值域0~1,1代表开启。
SatMaskSel : 对比区判断的Mask大小选择。值域0~1,Mask 0范围较小,Mask 1范围较大。
SatAmpEn : 对比区判断时,勾选此功能,可将增加判断对比度时的精确度。
StrengthByHue : 根据不同的Hue,给予不同强度的PFC处理。
4.1.3.4. 调整步骤
-
先决定SatAmpEn。
-
依据镜头表现,观察紫边的宽度,选择SatMaskSel的大小,若紫边较宽,可先选用较大的mask做补偿。
-
观察紫边所处的亮度区域、对比程度、紫边的颜色分布,来调整StrengthByY, SatByY, StrengthByContrast, StrengthByHue。
i. StrengthByY: 观察紫边产生于哪个亮度下,给予较强的设定,通常较暗的地方,强度较强。
ii. SatByY, StrengthByContrast: 观察紫边发生于哪种对比下,给予较强的设定,通常对比越高,强度越强。SatByY用来控制下图横轴的落点,StrengthByContrast用来控制下图纵轴。在低照下,对比度判断可能因为躁点而有点误差,可适当放宽SatByY[0],避免躁点被判断为高对比区。
图4-10 Contrast, Strength参数示意图
-
控制FlatProtect,来确保部分平坦区不会做到PFC的效果。
-
调整最终PFC强度,如有特别颜色需求,可分开调整Ustrength, Vstrength的强度。
4.1.4. DEMOSAIC¶
4.1.4.1. 现象
增加画面解析度的同时减少方向误判与artifacts的产生。
图4-11 物体边缘出现的artifacts现象
图4-12 高频区方向判断错误
4.1.4.2. 调整界面
在左侧菜单选择BayerCompemsation,接着在右侧主画面可找到DeMosaic界面。
图4-13 DeMosaic调整界面
4.1.4.3. 参数说明
DirectionalThrd : 方向性内差或是无方向性内插的阀值,值域0 ~ 63,越大则愈多小细节模糊。
EdgeSmoothThrdY : 依据亮度做smooth,值域0 ~ 255,越小则边缘愈不锐利,artifacts愈不易产生。
EdgeSmoothThrdC : 依据saturation做smooth,值域0 ~ 127,越小则边缘愈不锐利,artifacts愈不易产生。
4.2. DynamicDP & NRDespike调整¶
如同前一节所说,peak noise基本上也算是一种特殊的noise,因此需要利用专门的功能去做消除或减弱的动作。建议在处理一般noise前先处理peak noise,这样可避免硬用其他denoise功能去处理peak noise而造成画质损失。有DynamicDP和NRSpikeNR两种功能可选择,可同时使用。
4.2.1. DynamicDP (Dynamic Defective Pixel Correction)¶
DPC处理peak noise的方式是将该点取代掉,因此效果较为明显。
4.2.1.1. 调整界面
在左侧菜单选择BayerCompemsation,接着在右侧主画面可找到DynamicDP界面。
图4-14 DynamicDP调整界面
4.2.1.2. 参数说明
HotPixEn : 去除亮坏点开关。
HotPixCompSlope : 判断是否为亮peak点的阀值,值域0 ~ 255,越大越不容易判断为亮peak点,越小越容易。
DarkPixEn : 去除暗坏点开关。
DarkPixCompSlope : 判断是否为暗peak点的阀值,值域0 ~ 255,越大越不容易判断为暗peak点,越小越容易。
DPCTH : 本身与周围同通道的threshold,值域0 ~ 255,越大越不容易,越小越容易。
BlendEn : blending开关。
DiffLut : 依据DPC的结果和原始值的差异程度来做blending,值域0 ~ 1024,越大越容易取代。
YLut : 依据亮度程度来做blending,值域0 ~ 1024,越大越容易取代。
4.2.1.3. 调整步骤
-
先判断要开启HotPix或DarkPix。
-
DPCTH是判断与同通道的差异,与PixCompSlope需同时成立才会进行坏点补偿
-
慢慢增加PixCompSlope至peak noise与细节保留都可接受时停止,完成调整。
-
开启BlendEn,再依照想混合的程度调整DiffLut和YLut,以挽救细节。
4.2.2. DynamicDP Cluster¶
DynamicDP会依照该点与周围点差异来判断是否为defect,DynamicDP cluster会考虑周围的点也刚好是defect的情况,先将周围的最亮(暗)点排除一些。
4.2.2.1. 调整界面
在左侧菜单选择BayerCompemsation,接着在右侧主画面可找到DynamicDP_Cluster界面。
图4-15 DynamicDP_Cluster调整界面
4.2.2.2. 参数说明
EdgeMode : Edge mode开关,对周围点换掉0~1点最亮点或最暗点。
NeiDeltaTh : 中心点与周围8点的差异阀值,会累计差异大于此阀值的各数(count)。
NeiSmooth : 累计阀值,count小于此阀值会将最亮(暗)点做取代。
SortEn : Sort mode总开关,将周围点做排序,希望取出最亮(暗)点符合以下条件,最亮(暗)点与次亮(暗)点的差异够大,且次亮(暗)点与第三亮(暗)点的差异够小,代表意思为周围只有一个点很亮(暗),其他点都很相似,所以替换掉该点。最多补偿个数为,周围点换掉0~2点最亮点和0~1点最暗点。
SortRGGBEn : Sort各自channel开关。
Sort1x3ModeEn : 1x3 mode开关。若与中心相邻两点为最亮点和次亮点,且次亮点和第三亮点差异大于SortLumaTblS,会将最亮两点用第三亮点取代。
SortLumaTblL : 最亮点和次亮点阀值,可根据亮度调整,大于此值则取代。值设越大,最亮点需超过次亮点越多,才可能把最亮点替换掉,代表判断条件越严格。
SortLumaTblD : 最暗点和次暗点阀值,可根据亮度调整,大于此值则取代。值设越大,最暗点需超过次暗点越多,才可能把最暗点替换掉,代表判断条件越严格。
SortLumaTblS : 次亮(暗)点和第三亮(暗)点阀值,可根据亮度调整,小于此值则取代。值设越小,次亮点与第三亮点需越相似,才可能把最亮(暗)点替换掉,代表判断条件越严格。
4.2.2.3. 调整步骤
-
若原有DynamicDP补不掉的defect,可以尝试开启EdgeMode或SortEn,开得越多,越容易补defect,但也更容易破坏细节。
-
建议Cluster可以开较宽松,即将抓出多数defect,再依照defect程度做blending。
4.2.3. NRDeSpike¶
NRDeSpike处理peak noise的方式是将该点与邻近点的median拉近,因此只能降弱,无法完全消除。
4.2.3.1. 调整界面
在左侧菜单选择BayerDenoise,接着在右侧主画面可找到NRDeSpike界面。
图4-16 NRDeSpike调整界面
4.2.3.2. 参数说明
NRDeSpike同时用三种方式判断depeak的强度,取最弱的来当最终的强度。
-
< CenterNeighbor >
Strength : CenterNeighbor方式的强度,值域0 ~ 5,越大越强。
DiffGain : CenterNeighbor方式的Threshold,超过此值depeak强度会设最强,值域0 ~ 255,越小越容易使用最强的depeak强度。
图4-17 CenterNeighbor参数示意图
-
<CornerCross>
Strength : CornerCross方式的强度,值域0 ~ 5,越大越强。
DiffThd : CornerCross方式的Threshold,小于此值depeak强度会设最强,值域0 ~ 255,越大越容易使用最强 的depeak强度。
图4-18 CornerCross参数示意图
-
< MeanStd >
Strength : MeanStd方式的强度,值域0 ~ 5,越大越强。
DiffGain : MeanStd方式判断条件中的一个gain值,值域0 ~ 31,越大越容易使该pixel使用最强的depeak强度。
图4-19 MeanStd参数示意图
BlendRatio : 总强度设定,值域0 ~ 15,越大会让peak越不明显。
BlendLut : 选用median/mean的混合比例,值域0~2047,横轴为中心与周为差异程度,越右边差异越大,纵轴为混合比例,值越大,偏向median设定,值越小,偏向mean设定。
StrengthByY : 根据不同亮度,给予不同强度,值域0~127,64为不调整,值越小越弱,越大越强。
4.2.3.3. 调整步骤
由于是拿三种方法强度最弱的来用,单独调整某个参数不见得可以看到效果,建议依照下面介绍的方式将各方式调到最好状态。
-
为了方便观察,先将BlendRatio设15。
-
找出各方法的最佳参数,调整某个方法时要将另外两个强度设到最强。
以调整CenterNeighbor为例:
-
将CornerCross及MeanStd开到最强
Strength.CornerCross = 5
DiffThd.CornerCross = 255
Strength.MeanStd = 5
DiffGain.MeanStd = 31
-
将Strength.CenterNeighbor设0,DiffGain.CenterNeighbor由255慢慢下降,直到peak noise与细节维持达到可接受程度即停止。
-
调整好的参数另外记下来。
-
-
参考步骤2,将剩下两种方式调整好,之后将各自的最佳参数填回界面。
-
将BlendRatio慢慢下降至peak noise与细节可接受程度即完成调整。
-
由于Spike与DPC共用source input,所以坏点可能会混入spike的补偿结果上,此时可调整BlendLut,让spike结果偏向median的结果,来避掉坏点。若此问题不会发生,也可偏向mean结果来取得较平滑的结果。
4.3. NRD、NRLuma & NRChroma调整¶
NR3D的功能强大,除了降低temporal noise之外,还能分别对于静态或动态区域调整NRLuma与Sharpness的强度,因此建议先从NR3D调起,有必要时再开启NRChroma。
4.3.1. NR3D ON¶
主要用来降低temporal noise,包含Y & color noise,开强可以有效降低杂讯,但side effect就是会出现残影,因此调整方向就是找出一个noise与残影都可接受的平衡点。
4.3.1.1. 调整界面
在左侧菜单选择Denoise,接着在右侧主画面可找到NR3D界面。
图4-20 NR3D调整界面
图4-21 NR3D_EX调整界面
4.3.1.2. 参数说明
<Spatial Domain Denoise, SF系列参数>
请参考NRLuma, NRLuma_Adv, NRChroma, NRChroma_Adv
<Temporal Domain Denoise, MD, TF系列参数>
TF.LUT : 主要利用difference与motion信息来决定temporal denoise的强度,difference与motion小很有机会是静态区,反之则很有机会是动态区,值域0~ 4095。
图4-22 TF.LUT
MD.Thd : motion阀值控制,值域0 ~ 255。值越大NR3D越强,Motion低于阀值的地方将被判断为静止,建议不要设超过10。
MD.Gain : motion scale控制,值域0 ~ 10230。值越大motion information越小,NR3D越强。
MD.ThdByY : motion阀值根据亮度控制,值域0 ~ 255。值越大NR3D越强。
MD.GainByY : motion scale根据亮度控制,值域0 ~ 255。值越大motion information越小,NR3D越强。可针对特定noise 较强的亮度作加强,或对拖影有疑虑的亮度作减弱。
TF.Str : NR3D强度,值域0 ~ 64。值越大NR3D越强。
TF.StrEx : NR3D额外强度,值域0 ~ 64。值越大NR3D越强。
M2S.LUT : 动态区转静态区NR3D强度控制,值域0 ~ 31。值越大NR3D越弱,NRLuma越强。建议动到静曲线变化不要太陡,否则移动物体和静止区中间过渡区会不自然。
<Denoise by motion系列参数>
Y.SF.BlendLUT : 根据motion信息调整NRLuma的强度,值域0 ~ 16。由左至右代表动到静,值越大NRLuma强度越强。
Y.SF.BlendOffset : 决定写回3DNR参考帧,对于motion的部分,要补偿多少3dnr强度的控制,值域0~16,值越大,补偿的3dnr比例越多。
<NR3D Alpha Blending Refine系列参数>
AREn : 根据亮度与motion信息,限制NR3D强度,的开关,值域0 ~ 1。
ARLumaTh : 当Luma < LumaTh[0],则NR3D强度不变,当Luma > LumaTh[1]时,NR3D强度为0,值域0 ~ 255。
ARMotTh : 当motion < MotTh[0],则NR3D强度不变,当motion > MotTh[1]时,NR3D强度为0,值域0 ~ 255。
<NR3D Purple False Color Compensation系列参数>
当画面有做旋转时,开启此功能,来帮助NR3D判断紫边附近的motion,避免误判为动态而造成3dnr扰动。
首先会以DiffTh, RatioConf,ContrastTh,来决定紫边的程度,若三种条件都认定为紫边,则可将紫边附近的motion,重新分配为较静止的状态。
PREn : 辅助NR3D判断紫边的motion开关。
PRDiffTh : 根据PFC补偿的结果,若该点PFC补偿 > PRDiffTh,则判断为紫边。值域0~4095,值越小,越容易判断为紫边。
PRRatioConf :判断颜色是否与紫边相似。值域0~16,横轴为颜色相关性,越右边,越相似紫边,纵轴为紫边判断程度,值越大,越容易判断为紫边。
PRContrastTh : 判断对比程度,高对比时,较有可能出现紫边。值域0~16,该区对比小于ContrastTh1,则不做处理,大于ContrastTh2,则判断为紫边。
PRMotTh : 若紫边程度高,会以下面设定,来重新决定motion信息,若不为紫边,则motion信息维持不变。设定MotTh1,将此程度以下的motion认为误判信息,所以motion会重新分配为0,代表静止,而大于MotTh2以上,代表正常的motion,则维持不动。
4.3.1.3. 调整步骤
-
首先针对静止画面调整NR3D 强度,降低画面noise跳动的程度。
- 调整NR3D强度,目标是让画面整体看起来安定。建议TF.Str设63,将MD.Gain增加至画面变安定即停止。若MD.Gain需要设很大才能让画面安定,可以适时增加MD.Thd,但建议不要超过10。
-
接着针对物体移动过后区域NR3D强度变化做调整。
-
主要调整M2S.LUT。M2S.LUT曲线不要设太陡,否则物体移动过后区域由糊到清楚的转换边界会很明显且不自然。
-
可以基于建议值来做微调,如果比较不希望看见残影则需要设大一点的值,此时物体移动过后区域的NRLuma会越强且维持越久,NR3D越弱,看起来比较扰动;相反的如果希望物体移动后区域清楚一些,能接受一些残影,则将值设小一些,扰动会比较小但可能会有颗粒noise跑出来。
-
建议值: {24, 18, 11, 8, 7, 7, 6, 6, 6, 5, 5, 5, 5, 4, 4, 4}
-
-
微调移动模糊与noise程度的平衡。
-
调整Y.SF.BlendLUT,由左至右代表动态区到静态区域。将值慢慢加大至移动模糊与noise程度都能接受的程度。最后一个值建议固定在0才能维持静止画面的细节。建议同时搭配NRLuma的BlendRatio与FilterLevel做调整。
-
针对移动过后的杂讯,除了根据motion调整NR2D强度外,也可调整Y.SF.BlendOffset,针对motion来补偿一点NR3D,以降低杂讯。且因为只会更新于NR3D的参考帧,所以不会影响到影像画面。
-
-
针对拖影严重的亮度,可利用MD.GainByY做微调。将对应亮度区域的值慢慢下降至拖影与noise都可接受的程度。
-
当gain越来越高,移动noise若都只靠NRLuma是不够的,此时可以修改TF.LUT,让曲线下降得更缓慢一些来增加移动区域NR3D的强度,但同时也须考虑拖影变严重的程度。最后一个值不用一定要设0,但若造成移动物体边缘出现粉红色拖影,可透过AREn的功能,限制较亮、较动的NR3D强度,以避免这种拖影发生。
-
NR3D有一个额外的机制,可以让过完NR3D的结果往当前帧的结果靠近,但同时也会让NR3D的结果变扰动,若需要额外调整,可以使用Dummy_Ex/Dummy1来控制,请参考Dummy_Ex章节详细介绍。
-
NR3D把motion信息像后级传递的方式,有两种模式,若需要额外调整,可以使用Dummy_Ex/Dummy3来控制,请参考Dummy_Ex章节详细介绍。
4.3.2. NR3D OFF¶
由于有些IC为了节省成本没有DRAM,因此没有NR3D只能使用其他denoise,以下为建议调整方式。
4.3.2.1. 调整界面
同4.3.1.1。
4.3.2.2. 参数说明
同4.3.1.2。
4.3.2.3. 调整步骤
确认Iqfile是使用3dnr off的版本
3DNR界面中,只能调整spatial domain系列参数,包括 Y.SF.STR。
NRLuma界面中,建议将Wei开到63(最大值),调整LumaX 和 LumaStrengthByY 。
Despike调整方法与3DNR on相同。
若还有需求,可以再调整剩下的denosie,调整方法与3DNR on相同。
4.3.3. NRLuma¶
4.3.3.1. 调整界面
在左侧菜单选择Denoise,接着在右侧主画面可找到NRLuma界面
图4-23 NRLuma调整界面
4.3.3.2. 参数说明
Strength : NRLuma最终强度控制,值域0~63,值越大越强。
GMaskSel : 选择Gaussian Filter size,值域0~1,0代表较小范围,1代表较大范围。
SpfBlendLut : 使用Gaussian Filter(SPF)&Biliteral Filter做blending,若中心点与周围相似,可选用较多Gaussian结果,以取得较平滑效果,若差异较大,则选用Biliteral结果,以保留细节部分。横轴代表相似程度,越右边越相似,纵轴代表Gaussian blending强度,值域0 ~ 256,值越大blending越多。若要调整Bilteral filter强度,可以使用Dummy/Dummy1来控制,请参考Dummy章节详细介绍。
4.3.3.3. 调整步骤
基本上在调整NR3D时应该已经将spatial denoise强度调整到适当强度了,若有需要,可利用NRLuma再做微调即可。
- 调整SpfBlendLut来平衡杂讯压抑跟细节保留。
4.3.4. NRLuma_Adv¶
4.3.4.1. 调整界面
在左侧菜单选择Denoise,接着在右侧主画面可找到NRLuma_Adv界面
图4-24 NRLuma_Adv调整界面
4.3.4.2. 参数说明
DbgEn : 显示NRLuma_Adv所侦测到的Edge强度。
Strength : NRLuma_Adv最终的强度控制,值域0~255,值越大越强。
StrengthByY : 针对不同亮度,给予不同NR强度的控制,横轴越右边代表亮度越大。值域0~32,值越大越强,但初始值为0,代表不调整该亮度的强度,所以这边只能把强度作加强的动作。
StrengthByMot : 针对不同motion,给予不同NR强度的控制,横轴越右边代表motion越小。值域0~32,值越大越强,但初始值为0,代表不调整该亮度的强度,所以这边只能把强度作加强的动作。
EdgeTh : 控制Edge的判断,横轴越右边代表亮度越大。当Edge小于Th,认为是杂讯部分,做NR处理,超过Th则判断为Edge,Edge越强则NR越弱。值域0~16383,值越大,越不容易判断为Edge。
EdgeGain : 控制Edge的判断,横轴越右边代表亮度越大。对大于Th的Edge,做Edge强度的控制,Edge越强则NR越弱,值域0~65535,值越大,Edge强度越强。
StrengthByType : NR内部有两种filter,StrengthByType [0]为保留细节的filter强度,StrengthByType [1]为去躁效果较好,但会伤细节的filter强度,然后依据edge强度,来对这两种filter结果做blending。值越大NR效果越强。
4.3.4.3. 调整步骤
主要是针对NR3D与NRLuma的结果,再做微调使用。
-
调整EdgeTh, EdgeGain,决定哪些区域是Edge。
-
StrengthByY, ByMot都先设为0,调整StrengthByType参数,控制Edge区与非Edge区,给予不同程度的NR强度。
-
根据不同的亮度,与motion程度,加强NR。
4.3.5. NRChroma¶
压抑画面中颜色的噪声。
4.3.5.1. 调整界面
在左侧菜单选择Denoise,接着在右侧主画面可找到NRChroma界面。
图4-25 NRChroma调整界面
4.3.5.2. 参数说明
MatchRatio : 符合比例阀值,愈大愈强,值域0 ~ 31。
UvTh : U/V 杂讯阀值,愈大愈强,值域0 ~ 256。
StrengthByCEdge : 依据color edge控制NRChroma强度,愈大愈强,值域0 ~ 511。
4.3.5.3. 调整步骤
-
调整MatchRatio和UvTh,可以观测到color noise会散开,过强会有色彩溢出的现象,调整到可接受的范围。
-
降低StrengthByCEdge,进一步压抑有色彩溢出的部分。
4.3.6. NRChroma_Adv¶
压抑画面中颜色的噪声。
4.3.6.1. 调整界面
在左侧菜单选择Denoise,接着在右侧主画面可找到NRChroma_Adv界面。
图4-26 NRChroma_Adv调整界面
4.3.6.2. 参数说明
StrengthByY : 针对不同亮度,给予不同NR强度的控制,横轴越右边代表亮度越大。值域0~255,值越大越强。
StrengthByYEdge : 使用Luma来侦测Edge程度,针对不同Edge,给予不同NR强度的控制,横轴越右边代表Edge越大。值域0~63,值越大越强。
StrengthByCEdge : 使用Chroma来侦测Edge程度,针对不同Edge,给予不同NR强度的控制,横轴越右边代表Edge越大。值域0~255,值越大越强。
MaxStrength : 控制Y/C差异小的区域,NR的强度。值域0~255,值越大越强。
StaticLimitRatio : 控制静止区域,NR的强度。值域0~63,值越大越强。
MotionClip : 针对移动区域,给予更多NR强度。值域0~255,值越大越强。
MotionColorReduce : 针对移动区域,可降低饱和度。值域0~255,值越大饱和度降越多。
MotionColorRecover : 针对移动区域,可根据MotionColorReduce所降低的饱和度,再把gain乘回来。值域0~255,值越大饱和度回复越多。
PreStrength : 针对Chroma先做简单的去躁处理。值域0~128,值越大越强。
4.3.6.3. 调整步骤
-
MotionClip先设定为0。
-
观察静态区,调整MaxStrength, StaticLimitRatio,将NR调整到一个可接受的色躁范围。
-
观察动态区,调整MotionClip,将移动的部分,基于步骤一的NR强度,做加强的动作,若调整MotionClip程度不够强,可回去步骤一做强度的加强。
-
如有需要,可调整MotionColorReduce,针对移动的部分,做饱和度的压抑,这个动作可帮忙NRChroma_Adv更容易的移除色躁。若不希望影像看到移动区的饱和有下降,可调整MotionColorRecover将移动区的饱和再拉回来。
4.4. Sharpness调整¶
3DNR中调整Y.PK LUT主要是为了让动态区静态区有适合自己的锐化强度,至于其他区分条件的锐强度调整则由Sharpness完成,例如不同亮度的锐化强度,与画面中心距离的锐化强度,黑边白边的锐化强度等等。
4.4.1. Sharpness¶
4.4.1.1. 调整界面
在左侧菜单选择Sharpness,接着在右侧主画面可找到Sharpness界面。
图4-27 Sharpnes调整界面
图4-28 Sharpnes_EX调整界面
4.4.1.2. 参数说明
OverShootGain : 白边的强度调整,值域0~255,越大强度越强。
UnderShootGain : 黑边的强度调整,值域0~255,越大强度越强。
以上两个若是增强太多可能会导致杂讯放大,这时可使用CorLut来抑制OverShootGain和UnderShootGain对于噪点的影响程度,但会损失细节。
图4-29 OverShootGain & UnderShootGain
CorLut : 会根据亮度调整Edge输出。值域0~255,值越大,Edge越弱。
SclLut : 会根据亮度调整Edge输出。值域0~255,值越大,Edge越强。
EdgeKillLut : 根据Edge强度分成0~255等份,共有六个节点可以调整Edge输出大小,第一格建议为0,避免躁点被Edge加强。值域0~1023,值越大,Edge越强。
CornerReduce : 离画面中心点越远,降低锐化效果,镜头越周边,成像画值越差,降低锐化效果可改善边缘噪点设定最角落的sharpness强度,值域0~32,中心强度不会变,而中心到角落中间则会内插出相对应的强度。
图4-30 extureCtrl.CorLUT
图4-31 SclLUT
图4-32 EdgeCtrl.OverShootGain & EdgeCtrl.UnderShootGain
图4-33 CornerReduce
DirTh : 方向性判断的阀值,大于此阀值,使用有方向性滤波器强化边缘,好处是Edge较连续,坏处是小细节的edge被强化,图像不自然。
SharpnessUD : 能增强无方向性的细节纹理,可用于提高发丝、草地等细小纹理清晰度,SharpnessUD[0]可针对高频做处理,SharpnessUD[1]可针对低频做处理。值域0~1023,值越大,Edge越强。
SharpnessD : 可根据边缘方向加强锐化,整体增强图像边缘,但调的太强会导致锯齿状,SharpnessD[0]可针对高频做处理,SharpnessD[1]可针对低频做处理。值域0~1023,值越大,Edge越强。
PreCorUD : 针对无方向性,做coring处理,PreCorUD[0]针对高频,PreCorUD[1]针对低频。值域0~63,值越大,Edge越弱。
PreCorD : 针对方向性,做coring处理,PreCorD[0]针对高频,PreCorD[1]针对低频。值域0~63,值越大,Edge越弱。
PreCorMotGain : 针对移动区域,基于PreCorUD, PreCorD的设定值,做加强coring的动作,值域0~255,值越大,移动区Edge越弱。
LpfEdgeGainUD : 选择无方向性的高频、低频的输出比例控制,以SharpnessUD, PreCorUD, PreCorMotGain的结果,再做EdgeGain的控制。值域0~255,值越大,低频的强度越强,高频的强度越弱,值越小,低频的强度越弱,高频的强度越强。
LpfEdgeGainD : 选择方向性的高频、低频的输出比例控制,以SharpnessD, PreCorD, PreCorMotGain的结果,再做EdgeGain的控制。值域0~255,值越大,低频的强度越强,高频的强度越弱,值越小,低频的强度越弱,高频的强度越强。
WeakDetailEnhance : 针对弱纹理做加强Edge的动作。值域0~255,值越大,Edge越强。
DetailTh : SharpnessUD阀值,可用于降低平坦区的edge。
DetailMotOffset : 根据移动程度调整SharpnessUD
DetailByY : 根据亮度调整SharpnessUD。
OverShootLimit : 参考周围最亮点做调整,设0则edge上限为周围最亮点的Y值,也就是不会overshoot。
UnderShootLimit : 参考周围最暗点做调整,设0则edge下限为周围最暗点的Y值,也就是不会undershoot。
图4-34 OverShootLimit & UnderShootLimt
MotionGain : 根据移动程度,调整最终Edge,横轴代表移动程度,越右边代表越静止。值域0~255,值越大,Edge越强,值为128,代表不做调整。
<Sharpness_EX>
DbgEn : debug模式,只显示要补偿的edge于画面上。
DirSel : SharpnessD的方向性判断,值为0代表,以各方向的最大值来代表方向,值为1代表,以简单的抗躁方法,判断出来的方向为主。
DirOffA : SharpnessD与SharpnessUD,会根据方向的强弱,来决定两边blending的比例,而DirOffA参数,可将SharpnessUD的输出做加强的动作。值域0~255,值越高,非方向性edge越强。
MaxRatio : 若线段不连续,可先调整DirTh,若帮助不大,再适当提升此参数。值域0~255,值越高, edge越强。
LpfY : 对于CorLut, SclLut的横轴亮度,做LPF的处理,避免亮度因躁点跳动而使用到不同的Cor, Scl结果。值为0,代表关闭LPF,值为1,代表开启。
SblLutY : SharpnessD的低频部分,会先经过Sobel滤波来判断强度,而此参数可根据不同亮度,调整不同的强度,横轴代表亮度,越右边代表越亮。值域0~255,值越高,判断到的强度越强。
Sbl2LutY : SharpnessD的高频部分,会先经过Sobel滤波来判断强度,而此参数可根据不同亮度,调整不同的强度,横轴代表亮度,越右边代表越亮。值域0~255,值越高,判断到的强度越强。
StrengthByHue : 根据Hue调整Sharpness,可针对特定颜色,加强或减弱edge程度,横轴为Hue,从0度~360度分为24等分,值越大,edge越强,值为64,代表不做调整。
4.4.1.3. 调整步骤
若按照前面的建议来调整,一开始的Sharpness初始参数应该维持如下:
图4-35 Sharpness建议预设值
-
先观察edge强的区域,调整OverShootGain和UnderShootGain至黑白边加强程度可接受即完成。
-
调整DirTh,尽量避免连续线段,上到UD方向的edge,而造成线段不连续。
-
观察平坦区是否有noise被sharpness加强,有的话可试著将高频与低频的PreCorUD, PreCorD加大来将那些地方排除,但要注意,设越大就代表越多地方加不到edge,也容易造成画面看起来模糊,因此调整同时也要注意是否有该加edge的地方被排除了。如果noise变化不容易观察了话也可以先放大OverShootGain和UnderShootGain到夸张的程度来方便coring的调整,但调整时就不用要求要把noise 100%去干净,因为后面再把OverShootGain和UnderShootGain设回正常值时一些小noise可能就看不到了。压低Edge Lut前面的节点也可以有类似的效果,但相对来说较难调整,除非对Edge Lut很熟,否则不建议调这里。
-
观察暗区是否有noise被sharpness加强,有的话可慢慢增加SclLut来压低暗区的Sharpness,抑制noise的产生。
-
观察画面角落是否因为ALSC的补正造成noise太大,有的话可降低CornerReduce来降低角落的sharpness强度。
-
调整SharpnessUD和SharpnessD来控制无方向与方向性的细节,再调高DetailTh,可以降低平坦区上到很强的SharpnessUD。若有需求,再调整DetailByY。
-
若有需要限制overshoot或是undershoot edge,可以调整OverShootLimit和UnderShootLimit。
5. WDR¶
Wide Dynamic Range (WDR)用于增宽动态范围,让同一个影像画面中,可以同时分办出亮部和暗部的细节。
5.1. WDR¶
属于local WDR,区域性的加强影像动态范围,调整WDR时建议使用此项。
5.1.1. 调整界面¶
在左侧菜单选择WDR即会出现WDR界面。
图5-1 WDR调整界面
5.1.2. 参数说明¶
BoxNum : 依sensor 长宽比例,提供2~4种size;可依据场景要关注的物体尺度大小进行调整, Box Num 愈多则Box与小,愈适合当画面中关注的物件较小的时候,不可by iso变动。
PreEnhance : 亮区动态区间比例,值越大,亮区分配到的动态区间越大,值越小,暗区分配到的动态区间越大,值域1 ~ 6,2为默认值。另外新增11 ~ 15,依据2做调整,值越大暗处越亮,但整体越蒙。其他值皆无效。不建议by iso切换不同的曲线,因会导致闪烁问题。若开启GammaSyncEn,则PreEnhance会失效。
AutoDetailEnhance : 拉亮拉暗处额外的细节加强,1:自动控制、0:手动控制。
ManualDetailEnhance : 如果AutoDetailEnhance设0,就可手动控制拉亮拉暗处的细节加强程度,值域0 ~ 255,愈大细节加强愈强。
DarkToneEnhance : 控制Global tone mapping,提供下列16条curve可供选择。数字愈大暗处会额外拉愈亮。(HDR mode 中的16组与Linear mode 中的16组并不相同,HDR中0~6是一种拉亮模式,7~15 之后是第二种拉亮模式)\。 不建议改iso更换设定,因为Curve切换时可能出现闪烁。\ 替代方案为用固定GlobalDarkToneEnhance curve但可by iso修改WDRStrByY和Strength来达到期望的效果。
图5-2 预设的16条Global tone mapping (Linear)
图5-3 预设的16条Global tone mapping (HDR)
WDRStrByY : 依据亮度控制WDR强度,值域0 ~ 255,越大WDR越强。
Strength : WDR总体强度,值域0 ~ 255,越大WDR越强。
Dark Limit / Bright Limit : 限制WDR的作用强度,值域0~255,亮暗分别控制。如不希望暗处拉亮太多可设大 DarkLimit 数值,不想亮处压太暗可设大BrightLimit。
GammaSyncEn : WDR和Gamma连动开关,若disable,则会固定吃第0组Gamma Lut.\ Gamma/WDR 动态连动可得到较好的WDR效果,但如果有Gamma有by iso 切换时,Gamma变化时可能会出现闪烁,则此时此项建议设为disable。
5.1.3. 调整步骤¶
-
建议先直接将WDR enable,观察预设效果是否足够。
-
如强度太强或太弱,可直接简单调整Strength。
-
如较关注的问题为暗处拉亮效果,可再搭配调整DarkToneEnhance。
-
其余再针对各别亮度的强度进一步调整WDRStrByY或Dark Limit / Bright Limit。
5.2. WDRCurve¶
用来取代WDR 中的Dark Tone Enhance Curve,提供自己修改曲线的功能。如启用WDRCurve API, 则原WDR API 中Dark Tone Enhance 内建的16组Curve,即失效改由WDRCurveAdv控制。不建议改iso更换设定,因为Curve切换时可能出现闪烁。\ 替代方案为用固定GlobalDarkToneEnhance curve但可by iso修改WDRStrByY and Strength来达到期望的效果。
5.2.1. 调整界面¶
在左侧菜单选择WDR即会出现WDRCurveAdv接口。
图5-4 WDRCuve调整界面
5.2.2. 参数说明¶
由Control专案,调整节点数目,用来产生曲线。
5.2.3. 调整步骤¶
调整曲线,来达到适当的亮暗区分布。
5.3. Defog¶
去雾功能,达到更好多对比感。
5.3.1. 调整界面¶
在左侧菜单点选WDR即会出现Defog接口。
图5-5 Defog调整界面
5.3.2. 参数说明¶
Strength : 设定对比度、亮度、灰度的可变强度数值,预设为50。
5.3.3. 调整步骤¶
调整Strength,来达到更好的对比感。
6. DUMMY¶
Dummy API是一个默认的接口,若有新增功能,都会透过此接口,以避免不断新增接口,或是影响原本的结构体。默认值皆为-1,则代表bypass此功能。若有开启Dummy API,保存bin档的时候,务必勾选InFile,方能保存参数。
6.1. Dummy¶
支持by iso调整。
6.1.1. 调整界面¶
在左侧菜单点选Dummy即会出现Dummy界面。
图6-1 Dummy调整界面
6.1.2. 参数说明¶
Dummy0 : 目前没作用,预设为-1,值域范围:-1 ~ 255。
Dummy1 : NRLuma bilateral filter强度,Dummy1[0]为强度,值域范围:0 ~ 7, Dummy1[1~32]为权重表,横轴为与中心点的差异,差异越小则权重越大,值域范围:0 ~ 31。
Dummy2 : 根据移动程度调整SharpnessUD,和Sharpness DetailMotOffset功能相同,但Sharpness DetailMotOffset只有一个值能调整,其他内部自动内差,而Dummy2能依据不同动静程度分别调整。若Dummy2有开启,则Sharpness DetailMotOffset自动失效,只有Dummy2[0~15]有作用,值域范围:0 ~ 255。
Dummy3 : 目前没作用,预设为-1,值域范围:-1 ~ 255。
Dummy4 : 目前没作用,预设为-1,值域范围:-1 ~ 255。
6.2. Dummy_EX¶
不支持by iso调整。
6.2.1. 调整界面¶
在左侧菜单点选Dummy即会出现Dummy_EX界面。
图6-2:Dummy_EX调整界面
6.2.2. 参数说明¶
Dummy0 : Shaprness中的EdgeKillLut横轴节点,用2的幂次方垒加,只有Dummy0[0~5] 有作用,值域范围:0 ~ 15。
Dummy1 : 让过完3DNR的结果往当前帧的结果靠近,Dummy1[0]为开关,值域范围:0 ~ 1, Dummy1[1]为移动最大值,值越小越限制3DNR的结果往当前帧的结果靠近,值域范围:0 ~ 255,Dummy1[2]为移动阀值,若3DNR的结果和当前帧的差距小于此值,则此功能无作用,值域范围:0 ~ 255。
Dummy2 : 目前没作用,预设为-1,值域范围:-1 ~ 255。
Dummy3 : 3DNR把motion信息像后级传的方式,0代表直接依据当前帧和参考帧的差异,1代表多一个限制,在动到静的情况下,每帧motion信息至多变化1,也就是motion会变化的较慢,值域范围:0 ~ 1。
Dummy4 : 目前没作用,预设为-1,值域范围:-1 ~ 255。
7. TEMPERATURE SETTING¶
当chip温度改变,IQ也可以做相对应调整,达到更好的效果。
7.1. Temperature¶
设定温度节点和对应的IQ设定。
7.1.1. 调整界面¶
在左侧菜单点选Temperature即会出现Temperature界面。
图7-1 Temperature调整界面
7.1.2. 参数说明¶
TemperatureLut : 温度节点,支持16个节点。
ObcOffset : OBC偏移量,值越大扣越多,预设为0。
DynamicDPRatio : DynamicDP强度变化比例,值越大越强,预设为50。
CrosstalkRatio : Crosstalk强度变化比例,值越大越强,预设为50。
NRDeSpikeRatio : NRDeSpike强度变化比例,值越大越强,预设为50。
NR3DRatio : NR3D强度变化比例,依序对应到MD.Thd和MD.Gain,值越大越强,预设为50。
NRLumaRatio : NRLuma强度变化比例,值越大越强,预设为50。
SharpnessRatio : Sharpness强度变化比例,依序对应到OverShootGain和UnderShootGain,值越大越锐利,预设为50。
SaturationRatio : Saturation强度变化比例,值越大越饱和,预设为50。
ColorToneRatio : ColorTone强度变化比例,依序对应到R/G/B,值越大越饱和,预设为50。
7.2. Temperature Info¶
获取当前chip温度。
7.2.1. 调整界面¶
在左侧菜单点选Temperature即会出现TemperatureInfo界面。
图7-2 TemperatureInfo调整界面
7.2.2. 参数说明¶
Temperature :获取当前chip温度,只读。
8. DAY NIGHT MODE DETECTION¶
侦测环境亮度,一般会使用ALS(环境光传感器),根据得到的信息决定目前为Day或Night mode。这边我们提供了不须ALS侦测Day Night mode的功能,让用户可以自定义判断条件,并依据回传信息来做Day Night mode的切换。
8.1. DayNightDetection¶
Day/Night侦测API。使用者可分别设定Day to Night及Night to Day的判断条件,判断结果会在DayNightInfo中显示。
8.1.1. 调整界面¶
在左侧菜单点选Day/Night Mode即会出现DayNightDetection接口。
图8-1 DayNightDetection调整界面
8.1.2. 参数说明¶
Enable :功能开关。只有在打开时DayNightInfo的信息才有效。
D2N_BvThd :用来判断是否要切为Night mode的BV阀值,当Current BV(BV in AEInfo)小于此阀值时,则DayNightInfo中的D2N会秀TRUE。值域:-1048576 ~ 1048576。
N2D_VsbLtScoreThd :用来判断是否要切为Day mode的Score阀值,Score是由可见光与IR光比例所算出的一个分数,分数越高表示可见光成分越多。当目前Score (N2D_VsbLtScore in DayNightInfo)大于此阀值时,DayNightInfo中的D2N会秀TRUE。值域:0 ~ 2000。
8.2. DayNightInfo¶
显示当前Day Night侦测的结果。要注意此API只是显示侦测结果,用户仍须自行根据侦测结果做对应的动作,例如load Day bin或Night bin,IR灯的控制等等。
8.2.1. 调整界面¶
在左侧菜单点选Day/Night Mode即会出现DayNightInfo接口。
图8-2 DayNightDetection调整界面
8.2.2. 参数说明¶
D2N :目前是否需要转为Night mode的flag,秀1时表示目前环境亮度已达要切Night mode标准。注意此flag只有当目前在Day mode的状态下才具有参考意义。
N2D :目前是否需要转为Day mode的flag,秀1时表示目前环境亮度已达要切Day mode标准。注意此flag只有当目前在Night mode的状态下才具有参考意义。
N2D_VsbLtScore:显示目前可见光与IR光比例所算出的分数,分数越高代表环境中可见光的比例越高。使用者可以在认为该切回Day mode的环境下读取此值来决定N2D_VsbLtScoreThd该设多少。
9. NIGHT MODE SETTING¶
当环境亮度暗到一定程度,通常会打开IR灯,并将镜头的IR-Cut filter打开来增加进光量,这属于特殊状况,因此有些AE、AWB及IQ设定需要配合修改。由于有打IR灯,尽管是night mode也有可能使用到很低的gain值,因此不建议day mode与night mode共用同一个bin档,单靠ISO index值来区分,建议是day mode与night mode分开存成两个bin档,当系统判断要切换mode时再去load对应的bin档,下面会介绍当进入night mode时建议的一些对应设定来降低noise level。
9.1. ColorToGray¶
当IR-Cut filter打开颜色会变异常,因此通常会将画面由彩色转为灰阶。
9.1.1. 调整界面¶
在左侧菜单选择ColorToGray即会出现ColorToGray界面。
图9-1 ColorToGray调整界面
9.1.2. 参数说明¶
Enable :彩转灰功能开关。
10. RGBIR SENSOR TUNING¶
RGBIR senor 是一种特殊的sensor 型态,相较于一般的RGB Bayer sensor 多出IR pixel 用于感应红外光。而结构上少掉一般的IR Cut 而是搭配Dual Band filter在后端用软体来进行减IR的动作。所以如何设定减IR的比例来使影像达到和搭配IR Cut 时相同的正常色彩即是本段所要讨论的课题。
10.1. RGBIR Ratio调整¶
10.1.1. 调整界面¶
在左侧菜单选择RGBIR即会出现RGBIR界面。
图10-1 RGBIR调整界面
10.1.2. 参数说明¶
IrPosType : 改变R,G,B,IR四种pixel在sensor上排列顺序的设定,值域0 ~ 7。
RemovelEn : 启动软体减IR的功能
Ratio_R : R通道减IR的比例表(由暗到亮),值域0 ~ 4095。
Ratio_G : G通道减IR的比例表(由暗到亮),值域0 ~ 4095。
Ratio_B : B通道减IR的比例表(由暗到亮),值域0 ~ 4095。
10.1.3. 调整步骤¶
-
RGBIR 的ratio 与OB 有连动,调整前请先校正OB
-
统一将Ratio_R, Ratio_G, Ratio_B的最后一个值设到64, 然后其余的值全部填4095, 观察一下此时的画面,如果颜色有偏差则在进行下一步(调整时建议拍摄24色Color Checker,可同时观察下方灰阶区是否有色偏,及上方颜色是否正确)
-
调整过程我们都保持Ratio table 的最后一个值为64不动,因为这是为了避免过曝区亮度反而下降或跑出异常色彩的控制参数,不属于正常感光区间的调整范围。
-
保持Ratio_R,Ratio_B的设定,调降Ratio_G的设定到2000(table 由左至右都设相同的值2000,除了最后一个值不动一直维持64之外),此时画面应该会偏绿。
-
逐步调高Ratio_G的值,直到画面中灰阶的区域不再偏绿。
-
将Ratio_B设到2000, 此时画面会偏蓝,参照Ratio_G的作法,逐步调高Ratio_B的值到画面中灰阶的区域不偏蓝。
-
同Ratio_G及Ratio_B的做法,先降低数值然后再逐步调高,最后尽可能让颜色正确,灰阶不偏色。
-
如果有感觉特定颜色特定亮度存在色偏,则再去依照table由左至右依序为由暗到亮的控制规则,去调整特定亮度的raito。
11. AE INTRODUCTION¶
AE的目的在于透过收到的统计值将画面整体亮度控制在一个理想的状态。
11.1. AE调整¶
11.1.1. 调整界面¶
在左侧菜单选择AE即会出现AE调整界面。
11.1.2. 参数说明¶
-
<AEState>
AE State : AE状态控制选项,选择Normal AE会正常运作,选择Pause AE则会暂停在当时的状态,直到再次切回Normal才会继续运作。
-
<ManualExposure>
FNx10 : 光圈值(F number) × 10 (ex: F1.8 18)。
SensorGain : Sensor增益 (1024 = 1x) 。
ISPGain : ISP数位增益 (1024 = 1x) 。
US : 快门时间,单位为μs。
-
<AEConverge>
ConvThdIn : 内收敛区间。当AE动作处于收敛过程中时,会将画面收敛到target +-内收敛区间范围内才停止。
ConvThdOut : 外收敛区间。AE从稳态到再次开始进行收敛动作的启动门槛 (当前亮度在target +-外收敛区间的范围外)。
ConvSpeedX : 收敛速度表X轴,对应到当前Cur Y的亮度。由左到右分别对应暗到亮,中间两隔底层会自动对应到当前AE target的位置,所以这两格不需要修改,预设是470。头尾两格默认是0以及2000。
ConvSpeedY : 收敛速度表的Y轴。Cur Y对应到X轴后再找出对应的Y轴的收敛速度(比例)[0 ~ 1024],如果设置的数字过小则会感到AE反应速度缓慢甚至无法收敛,设得过大则亮度变化迅速,但从视频上看来会感觉有亮度闪烁的现象。
-
<AEStabilizer>
此功能可降低AE受画面局部变化的影响而被触发,让画面亮度更稳定。
Enable : 此功能开关。
DiffThd : 判断目前画面与参考画面是否有变化的阀值,Y差异超过此阀值则判为有变化,小于此阀值则当作无变化。值域0~20(精度8bits),建议值为2。不建议设定太大,容易导致光线渐亮渐暗的情况下不够连续。
Percent : 画面比例阀值,当AE在收敛的状况下,画面中被判断为有变化区域占全画面的比例小于此值,则AE维持不变。值域0~100,预设值为50。
-
<AEPlainTbl>
NumOfExpoTblEntry : 曝光行程表的列(row)数。
ExpoTblEntry : 曝光行程表。由左至右分别设置光圈(FNx10),快门(us),total gain,sensor gain,由上至下分别为由亮至暗。
-
<AEWinWeight>
Weighting PAGEle ID :测光权重表ID。默认支持三种权重表:Average、Center、Spot。
WindowWeighting :测光权重表。
-
<ExposureStrategy>
此区作用为搭配AE target的设定,于浮动target时调整浮动target计算时在防过曝上的敏感度与强度
Strategy : 曝光策略,可选择 AUTO / 暗阶优先(低光补偿) / 亮阶优先(强光抑制)。
Weighting : 暗阶优先与亮阶优先的变化强度,weighting愈大愈强。
UpperNum : 向上浮动target的节点个数。
UpperY : 向上浮动的范围,如设0则等于关闭浮动target,将完全参考上面设的Target Offset 设定。
UpperX : 向上浮动范围对应BV的节点。
LowerNum : 向下浮动target的节点个数。
LowerY : 向下浮动的范围,如设0则等于关闭浮动target,将完全参考上面设的Target Offset 设定。
LowerX : 向下浮动范围对应BV的节点。
Note : 浮动target 为参考影像Histogram 变化后自动计算的target。
Strength : 浮动target 时防过曝机制的敏感度,数字愈大愈敏感(拉暗)。
Sensitivity : 浮动target时防过曝机制作用的强度,数字愈大愈暗。
-
< ExposureStrategyEx >
新版曝光策略设定,可自行设计防过曝或过暗策略,AE会针对此策略去动态调整SceneTarget。
Enable : 曝光策略开关,开启时ExposureStrategy会失效。
Mode : 曝光策略模式,有Count Mode与Target Mode可做选择。 选择Count Mode时,主要使用BT(DT)_ThdY以及BT(DT)_Percentx10。使用者可以指定在多少亮度以上(以下)的统计值占统计值总数量大约多少千分比。 选择Target Mode时,主要使用BT(DT)_Percentx10及BT(DT)_Taergetx10。使用者可以指定最亮(最暗)多少千分比的统计值平均亮度要接近多少亮度。
Priority : 曝光策略优先权设定,可选择暗阶优先(过暗抑制)/亮阶优先(过曝抑制)。
图11-1 AE StrategyEx Count Mode & Bright Priority
图11-2 AE StrategyEx Target Mode & Bright Priority
BT_NodeNum : Bright Tone相关参数的节点个数。
BT_NodeBV : Bright Tone节点对应BV设定。
BT_ThdY : Bright Tone亮度阀值设定,值域0 ~ 255。仅在Count Mode有用。
BT_Percentx10 : Bright Tone千分比设定,值域0 ~ 1000。在Count Mode及Target Mode都有用。
BT_TargetYx10 : Bright Tone目标平均亮度设定,值域0 ~ 2550。仅在Target Mode有用。
BT_MaxOffsetDown : AE target向下浮动的范围,值域0 ~ 2550。如设0则等于关闭浮动target,将完全参考上面设的Target Offset设定。
DT_NodeNum : Dark Tone相关参数的节点个数。
DT_NodeBV : Dark Tone节点对应BV设定。
DT_ ThdY : Dark Tone亮度阀值设定,值域0 ~ 255。仅在Count Mode有用。
DT_ Percentx10 : Dark Tone千分比设定,值域0 ~ 1000。在Count Mode及Target Mode都有用。
DT_ TargetYx10 : Dark Tone目标平均亮度设定,值域0 ~ 2550。仅在Target Mode有用。
DT_ MaxOffsetUp : AE target向上浮动的范围,值域0 ~ 2550。如设0则等于关闭浮动target,将完全参考上面设的Target Offset设定。
图11-3 All LUTs share the same NodeNum & NodeBV
-
< AEStrategyExInfo >
GMBlendRatio :Adaptive Gamma与一般Gamma(Gamma页面的Gamma设定)的混合比例,值域0~1024。根据最终SceneTarget、TargetOffset及最大BT_MaxOffsetDown、DT_MaxOffsetUp计算得来。当ratio小于512,则拿BTGamma与一般Gamma做混和,当ratio大于512,则拿DTGamma与一般Gamma做混和,当ratio等于512,则直接使用一般Gamma。请参考下图。
图11-4 How GNBlendRatio and AdaptiveGamma work
UpperLimitTargetYx10 :目前AE target浮动上限。
LowerLimitTargetYx10 :目前AE target浮动下限。
BTCntPcentx10 :目前大于BT_ThdY的统计值数量占总统计值数量的千分比。
DTCntPcentx10 :目前小于DT_ThdY的统计值数量占总统计值数量的千分比。
BTYx10 :目前最亮前BT_Percentx10千分比统计值的平均亮度。
DTYx10 :目前最暗前DT_Percentx10千分比统计值的平均亮度。
-
< AdaptiveGamma >
此功能需搭配StrategyEx,让Gamma可以根据SceneTarget做动态的调整,以达到增加动态范围的效果。
Enable : 此功能开关,关闭时直接使用一般Gamma。
BTGamma : 当GMBlendRatio小于512,会根据GMBlendRatio来将BTGamma与一般Gamma做混和。
DTGamma : 当GMBlendRatio大于512,会根据GMBlendRatio来将DTGamma与一般Gamma做混和。
-
<ExposureMode>
Exposure Mode : AE状态控制选项,选择Auto为全自动曝光,AV_Mode为光圈先决,SV_Mode为增益先决,TV_Mode为快门先决,M_Mode为全手动。
-
<AETarget>
Target Points Num : AE target 设置的节点个数 (随不同环境亮度值(BV)提供设置不同的AE target) 。
Target Offset : 各节点的AE target。
Target BV : 各节点对应的BV值。
-
<EVComp>
EVComp : +- ev 亮度补偿功能的分母。
Grad : +- ev 亮度补偿功能的分子。
-
<ExposureLimit>
MinShutter : 最小快门时间。
MaxShutter : 最大快门时间。
MinFNx10 : 最小光圈值(数字愈大光圈愈小) 。
MaxFNx10 : 最大光圈值。
MinSensorGain : 最小sensor增益。
MinISPGain : 最小ISP数位增益。
MaxSensorgain : 最大sensor增益。
MaxISPGain : 最大ISP数位增益。
-
<Flicker>
Flicker : 对应特定频率的抗闪设置。可选择Disable、50Hz、60Hz、Auto。
- <FlickerEx>
Enable : 启动/关闭新版侦测抗闪烁功能。当开启新版时,旧版就会失效。
OpType : 侦测抗闪烁的工作模式,分别为Auto、Manual模式可选择。设为Auto时当侦测到需要切换Flicker模式 时,会自动切换。建议使用Auto。
AmpSensitivity : 调整侦测抗闪烁的灵敏程度(数值愈大愈灵敏),值域范围1~100,建议预设值为70。
ScoreThd : Auto模式下是否触发自动切换FlickerType的阀值,若Score小于此阀值,ValidTimes会加1,若大于此阀值,ValidTimes会被重置为0。值域范围1~100,建议预设值为50。
RefreshCycles : 调整侦测抗闪烁计算分数之更新速率,此参数代表几个cycle更新一次Score,一个cycle通常约在4~7个frame。值域范围1~10,值越大Score越可靠,但花的时间越久,建议预设值为3。
ValidTimesThd : Auto模式下,当ValidTimes到达ValidTimesThd,则演算法会自动切换到另一个Flicker模式。值域范围1~10,值越大越不容易误判,但花的时间越久,建议预设值为2。
Flicker : 侦测抗闪烁模式,模式分别为60Hz = 0、50Hz = 1。
-
<FlickerInfo>
IsEffective : 取得当前侦测抗闪烁是否有效(1:有效值,0:无效值)。
FlickerType : 取得当前侦测抗闪烁模式,模式分别为60Hz = 0、50Hz = 1。
Score : 取得当前侦测抗闪烁有效模式的程度分数。
→ 如果分数较高,则判断为当前的抗闪烁频率模式。
→ 如果分数较低,则判断为另一种抗闪烁频率模式。
-
<RGBIR AE>
Enable : 启动/关闭 RGBIR AE。
MaxYWithIR : 减IR前的亮区平均亮度容许之最大值。
MinISPGainCompRatio : 透过ISP gain 来进行raw亮度补偿的最大比例,数位愈小补偿的程度愈大。
-
<DebugLev>
AE Debug Level : 设定AE Debug log 的输出设定。(0: disable, 1: Exposure, 2: Algo parameters, 4: Algo statistics, 32: API debug, 64: Exposure-2)
<AE HDR Ratio> - HDR mode only
AE HDR Poionts Num: 设置HDR长短曝比例变化的节点个数
HDR Ratio: 设置HDR长短曝的曝光比例 (1024 = 1x)
By Total Gain: HDR曝光比例依总增益变化的总增益横轴,建议使用预设值 (预设值: 1024, 2048, 4096, 8192...)
<AEPlainShortTbl> - HDR mode only
NumOfExpoTblEntry: 短曝光曝光行程表的列(row)数。
ExpoTblEntry: 曝光行程表。由左至右分别设置光圈(FNx10),快门(us),total gain,sensor gain,由上至下分别为由亮至暗。.
<ManualShortExposure> - HDR mode only
FNx10: 光圈值(F number) × 10 (ex: F1.8 -> 18)。
SensorGain: Sensor增益 (1024 = 1x) 。
ISPGain: ISP数位增益 (1024 = 1x) 。
US: 快门时间,单位为μs。
12. AWB INTRODUCTION¶
由于sensor 上R、G、B pixel的感光特性不同,因此在不同光源下看到的灰阶会有色偏,AWB主要的目的就是希望自动找出一组Rgain、Bgain来做补偿,让画面中灰阶的地方R、G、B值尽量接近。
12.1. AWB调整¶
AWB的统计值是将整张画面切成128×90个等分,每个等分都具有代表的R、G、B值,预设横轴有做取样来减少运算量,因此实际只有64×90个统计值。如果想查看某个场景的统计信息,可以开启AWB Analyzer外挂程式,点击Update可更新为当时的统计信息,图表横周轴代表(R/G)×100,纵轴代表(B/G)×100,因此每个区块都能以本身的R、G、B值算出一组座标,并将落点以绿点秀在窗口上,如下所示。
图12-1 利用AWB Analyzer分析统计信息
12.1.1. 调整界面¶
在左侧菜单选择AWB即会出现AWB调整界面。
图12-2 AWB基本调整接口
图12-3 AWB Advance Mode调整界面
图12-4 AWB混光色偏校正设定接口
图12-5 CTMWB设定接口
图12-6 AWB Stabilizer设定接口
12.1.2. 参数说明¶
-
<WBAttr>
建议整参数
AwbState : AWB状态控制选项,选择Normal时,AWB会正常运作,选择Pause时,AWB则会暂停在当时的状态,直到再次切回Normal才会继续运作。
AwbMode : WB状态控制选项,选择Auto为AWB,选择Manual为MWB。 sManual.R/GR/GB/Bgain : 当AwbMode选择Manual时,会直接套用这四个gain值,值域0 ~ 8191(1024为1倍)。
Speed : AWB收敛速度控制,值域1 ~ 100,值越大越快收敛,预设为20。
ConvInThd : 收敛区间大小控制,值域0 ~ 255,值越大越容易收敛,但容易与目标差距较大,设太 小容易让AWB不稳定,预设建议值为32。
ConvOutThd : 从收敛状态跳出重算白平衡的阀值控制,值域0 ~ 255,不建议设太大,否则当灯源有些变化时白平衡无法重新计算会导致色偏,预设建议值为64。
eAlgType : 白平衡算法模式选择,共有以下四种模式:
-
GrayWorld:以所有统计值来计算WB gain。
-
Normal:以落点数最高的2 ~ 3个色温框内的统计值来计算WB gain。
-
Balance:以所有落入有效色温框的统计值来计算WB gain。
-
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。
图12-7 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会尽量以参考白点为主,此时若遇到混光场景,离参考白点远的一方色偏会相当明显,若希望色偏减弱一些则可开启此功能,但副作用是会让其他颜色色相有些改变。下面是开启此功能前后差异比较图。
图12-8 开启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距离的比例来决定。
图12-9 CaliCcm_LowCT界面
调整CaliCcm建议,以CaliCcm_LowCT为例:
-
将灯箱开至D65(若有更接近StartIdx的灯源也可以用该灯源), 让AWB将其作灰。
-
将AWB切至PAUSE。
-
将灯箱切至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。
-
<DebugLev>
AWB Debug Level : 设定AWBDebug log 的输出设定。 1:show simple algo paramaters ; 2:always show detail algo parameters; 3:show detail algo parameters; 7:User Paramters
12.2. AWBInfo¶
此界面可秀出当下AWB相关信息,选择ReadPage可即时更新。
图12-10 AWBInfo界面
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色温框之间。
图12-11 MultiLS_FirstLSInd & MultiLS_SecondLSInd示意图
13. AF INTRODUCTION¶
AF的目的在于透过收到的统计值将画面对焦在一个理想的状态。(返回IQ Tuning Flow Chart)
13.1. AF调整¶
13.1.1. 调整界面¶
在左侧菜单点选AF即会出现AF调整界面。
13.1.2. 参数说明¶
-
< AF_HWROIMODE>
Mode :ROI模式控制选项,选择Normal可切为16组ROI,window size与位置可随意分割,选择Matrix可切为16 * N组ROI,window size与位置稍有限制。
VerticalBlockNumber :当Mode为Matrix时才有效果,可切为16 * N组ROI (N = VerticalBlockNumber)。
-
< AF_HWWIN>
Win :16组ROI坐标,依序为x_start, y_start, x_end, y_end。
-
< AF_HWFILTERATTR>
IIR1 :IIR high滤波器系数。
IIR1_Clip :IIR high滤波器系数的输入/输出限制。
IIR2 :IIR low滤波器系数。
IIR2_Clip :IIR low滤波器系数的输入/输出限制。
IIR1_E1_En :IIR high串接第一级滤波器开关。
IIR1_E1 :IIR high串接第一级滤波器系数。
IIR1_E2_En :IIR high串接第二级滤波器开关。
IIR1_E2 :IIR high串接第二级滤波器系数。
IIR2_E1_En :IIR low串接第一级滤波器开关。
IIR2_E1 :IIR low串接第一级滤波器系数。
IIR2_E2_En :IIR low串接第二级滤波器开关。
IIR2_E2 :IIR low串接第二级滤波器系数。
-
< AF_HWFILTERSQ>
SobelYSatEn :Sobel滤波器Y阀值开关。
SobelYThd :Sobel滤波器Y阀值,当SobelYSatEn为true时才有作用,亮度小于此值就会列入Sobel滤波器计算。
IIRSquareAccEn :IIR滤波器增强控制开关。
SobelSquareAccEn :Sobel滤波器增强控制开关。
IIR1Thd :IIR high滤波器输阀值,输出前会再减去此值。
IIR2Thd :IIR low滤波器输阀值,输出前会再减去此值。
SobelHThd :Sobel H滤波器输阀值,输出前会再减去此值。
SobelVThd :Sobel V滤波器输阀值,输出前会再减去此值。
AFTblX :IIR/Sobel滤波器nonlinear mapping的横轴节点,以二的幂次方累加。
AFTblY :IIR/Sobel滤波器nonlinear mapping的纵轴节点。
-
< AF_ATTR>
State :状态控制选项,选择Norma会正常运作,选择Pause则会暂停在当时的状态,直到再次切回Normal才会继续运作。
Mode :状态控制选项,选择Manual可以直接设定motor位置,选择Auto可以选择不同Algorithm来进行对焦。
ManualMotorPos :当Mode为Manual时才有效果,直接设定motor位置。
Algo :当Mode为Auto时才有效果,目前支持两种算法。
OneShot:将所有位置都走一遍,然后到统计值最大的位置。
Continuous:会动态侦测环境变动,若有变化,则会重新对焦。
-
< AF_MOTOR>
MinMotorPos :Motor可移动到的最小位置。
MaxMotorPos :Motor可移动到的最大位置。
MinMotorStep :Motor在一帧的时间内,可移动的最小步伐。
MaxMotorStep :Motor在一帧的时间内,可移动的最大步伐。
-
< AF_ACC_WEIGHT>
WinNumX :X方向window总数
WinNumY : Y方向window总数。
EqualWinWgtEn :统计值等权重开关。
WinWgt : 统计值权重表,只有在EqualWinWgtEn为false时才有效果。
IIRHBlendEn : IIRH混合开关,并依照下列三个值来做混和。
IIRHWgt_FirstBlendIIRL : IIRH最先跟IIRL做混合,此值为IIRH比例。
IIRHWgt_SecondBlendSBLV : IIRH再次跟SobelV做混合,此值为IIRH比例。
IIRHWgt_ThirdBlendSBLH : IIRH最后跟SobelH做混合,此值为IIRH比例。 - < AF_ONESHOT> 只有在Algo为OneShot时才有效果。
AccSel :统计值种类。
MotorStep :每一帧Motor的移动步伐。
-
< AF_SCENE_CHANGE> 只有在Algo为Continuous时才有效果。
PreAccSel :统计值种类,依照跟前一帧统计值的差异来判断环境是否改变。
PreAeAccDiffThOft :统计值Luma差异比例阀值,会统计超过此阀值的总数。
PreAeAccDiffThSlp :统计值Luma差异比例阀值斜率,可以依据motor step来增大阀值。
PreAeAccCntThOft :统计值Luma总数比例阀值,若大于此阀值,则判断为不稳定。
PreAeAccCntThSlp :统计值Luma总数比例阀值斜率,可以依据motor step来增大阀值。
PreAfAccDiffThOft :统计值(PreAccSel)差异比例阀值,会统计超过此阀值的总数。
PreAfAccDiffThSlp :统计值(PreAccSel)差异比例阀值斜率,可以依据motor step来增大阀值。
PreAfAccCntThOft :统计值(PreAccSel)总数比例阀值,若大于此阀值,则判断为不稳定。
PreAfAccCntThSlp :统计值(PreAccSel)总数比例阀值斜率,可以依据motor step来增大阀值。
FocusAccSel :统计值种类,依照跟前一次收敛结束的统计值的差异来判断环境是否改变。
FocusAeAccDiffTh :统计值Luma差异比例阀值,会统计超过此阀值的总数。
FocusAeAccCntTh :统计值Luma总数比例阀值,若大于此阀值,则判断为不稳定。
FocusAfAccDiffTh :统计值(FocusAccSel)差异比例阀值,会统计超过此阀值的总数。
FocusAfAccCntTh :统计值(FocusAccSel)总数比例阀值,若大于此阀值,则判断为不稳定。
StableCntTh :连续稳定帧数阀值,超过此值则判断为环境已经稳定,开始移动马达来进行对焦。
-
< AF_SEARCH_START > 只有在Algo为Continuous时才有效果。
SearchMotorStep :每一帧Motor的移动步伐。
SearchMotorDirByPosTh :依据当前Motor位置来决定移动方向,若大于此值,则往位置较小处移动,反之亦然。
SearchAccSel :统计值种类。
-
< AF_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)
14. IQTOOL接口联机功能操¶
14.1. IQTool界面连线功能操作步骤¶
-
设定EVB网路功能,于终端机输入下列指令
#ifconfig eth0 hw ether 00:xx:xx:00:00:01 #ifconfig eth0 up #udhcpc #mixer -n 1 -q
其中-q表示开启 iqserver,IQTool才可以连线。
-
选择产品类型
-
IP Camera
-
Car Camera
-
-
输入 EVB 的IP 位址
-
选择Connection图示
()
即可以连线,图形变为
()
表示成功连线,即可以开始使用IQTool调整影像的
参数;再选择
()
符号即会断线,图示变回
()
设定步骤如下所示。
图14-1 IQTool接口联机设定
15. IQTOO接口功能说明¶
15.1. IQTool界面¶
IQTool界面的左侧红色虚线框内是功能树状结构,以下图为例,每一个树状节点都是一个API集合。选择左方节点后会动态产生右方页面,选择左方AE节点后在右方动态产生该节点下的API:ManualExposure,可在右方界面中对API进行实际调值操作。
图15-1 IQTool功能树状图
15.2. 参数调校¶
不同的API有不同种类的调参数功能,像是填入数值、下拉菜单、取值、表单建立,根据各个API的初始设定,有些可以Read和Write,有些只能Read。
调校参数类型:
-
数值:可透过以下三种方式修改值
-
选择上下箭头调值
-
直接在栏框内填值
-
左右移动卷轴调整值
数值型别会设定范围,根据不同的API初始设定Min以及Max值。以API为ManualExposure的情况下为例,FNx10最小值是10最大值是220。如果填小于10则会自动跳回10,如果填大于220则会自动跳回220。
图15-2 数值功能示意图
-
-
下拉菜单:选择箭头后会出现下拉菜单,即可选择不同的功能,以API AE - Flicker为例,Enable下拉菜单可以选择Disable、60Hz或是50Hz。
图15-3 下拉菜单功能示意图
-
读值:栏框内的值read only,不可以write,以API AWBInfo为例,可以读取WB_Rgain栏框内的值2130,但不可以write。
图15-4 读值显示于栏位示意图
-
表格:页面上有一个按钮,如下所看到的Edit Table按钮。
图15-5 选择Edit Table按钮可以弹出表格窗口
选择按钮以后,弹出表格窗口,如下窗口内有表格,选择Read按钮以后可以读取板子内的值,选择Write按钮,可将值写入板子。
图15-6 表格窗口示意图
若是表格Read only,API设定不允许写入板子则只会显示出Read button。
图15-7 Read only表格窗口示意图
15.3. 读写数据¶
可以读写所有API集合的资料,也可以读写目前页面所有的API资料,如下图,目前页面API为AE时,此时如果按下右上方的Read Page
则会读取目前AE页面的所有data,如果按下右上方的Write Page
,则会写入data到AE页面里。但是如果按下上方R ALL
键则会读取所有API集合不只是AE的所有data,然后按下W ALL
键则会写入data到所有API页面里,除了API集合为Gamma/Calibration的情况,其余的API皆会Auto Write data,Gamma必须自己手动选择Write Page
才会存入资料。读写资料图示详细说明参阅Table 1。
图15-8 读写资料界面示意图
Table 1: 读写资料图示详细说明
图示 | 功能 | 功能说明 |
---|---|---|
读取所有API集合页面的资料 | 按下R ALL按钮,即可读取所有API集合页面的资料。 | |
写入所有的资料到每个API集合页面 | 按下W ALL按钮,即可写入所有API集合页面 (不包括Calibration)的资料。 | |
读取目前页面资料 | 按下Read Page按钮,即可读取目前页面所有的API资料。 | |
将目前页面的资料写入到API | 按下Write Page按钮,即可写入资料到目前页面所有的API。 | |
即时的将页面的资料写入到API | 选中时,即开启AutoWrite功能。 |
15.4. 保存Raw/YUV/JPG格式的图像¶
连接上板子以后,可以透过选择红色虚线标注的按钮,获取撷取图像的四种格式。
图15-9 保存图像按钮界面示意图
开始抓图像后会产生一个新的窗口显示进度,抓取成公会在下方显示信息。下方会显示图像保存路径,预设保存在程式所在的目录下的./Image
中。
图15-10 保存图像成功示意图
15.5. 新建、载入、保存页面参数¶
使用IQ Tool调整的过程中可以随时保存页面参数到指定路径中,也可以载入已经保存的参数。
图15-11 新建、载入、保存页面参数示意图
IQTool有提供自动存Bin File的功能,参数单位为分钟,0代表不自动储存,会储存在CvtXml这个文件夹下,也会显示剩几秒就会存一次档,但如果操作期间有手动存,秒数会重来。
图15-12 自动储存Bin File示意图
图15-13 显示距离下次存Bin File剩余时间
存Apibin可存不需Api的功能,只要把相对应的InFile取消即可。
图15-14 InFile功能
-
保存参数有两种格式,分别是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参数可以互相匹配的目的。
-
-
载入参数有三种格式,分别是Xml、Bin和Bin xml
-
Xml:
Xml用于载入工具的GUI界面 (包含界面参数)。
-
Bin:
Bin用于载入api参数。
-
Bin Xml:
Bin Xml用于载入api参数和附加相对应串口的Xml。
-
15.6. Gamma调值¶
-
选择Gamma树状节点,即在右方产生Gamma调值界面。
图15-15 Gamma调值界面
-
Gamma 功能界面说明。
图15-16 Gamma功能界面说明
图15-17 Gamma存、读档格式示意图
-
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档。
- 档案设定格式为:R→G→B
Header:0 (说明)
pixel red : 1 ~ 256
pixel green:257 ~ 512
pixel blue :513 ~ 7686 鼠标控制页面 - 鼠标左键选择曲线可在曲线上新增点,移动控制点和辅助点会自动产生平滑曲线。
- 鼠标右键选择控制点即可删除该控制点。7 控制选择项 - 选择Sync RGB格子,即可将R、G、B三条曲线合并成一条灰线,改变这条灰线可以同时对R、G、B三条曲线生效。
- 左右拖动Section Bar可以设定曲线的控制点数量。 -
Gamma曲线的调整方式:初始化在座标上可以看到RGB三条曲线。勾选Gamma Red、Gamma Green、Gamma Blue后可以利用鼠标控制十字符号移动点击控制曲线,如果点击的地方刚好三条曲线交叉重叠,优先顺序为Red、Green、Blue,先以R曲线为例可以按鼠标左键新增控制点,右键移除控制点,移动控制点可以改变曲线,控制点旁也会有两个辅助点,用来微调贝兹曲线。R、G、B各有有256个pixel值,参考下图。
图15-18 Gamma曲线调整示意图
-
Gamma曲线Read Page 和Write Page
-
Read Page :即为get API,选择Read Page按钮,会取得曲线上的值到板子上。
-
Write Page :即为set API,会从板子上取值设定到曲线上,在API 是Gamma的情况下,必须自己手动选择Write Page才会存入data,不会Auto Write,其他的API皆会自动AutoWrite,按钮如图。
图15-19 Gamma Read and Write item
-
15.7. Shading¶
15.7.1. 调整界面¶
选择Shading树状节点,即在右方产生ALSC界面。
图15-20 Shading界面
15.7.2. 参数说明¶
Enable : ALSC API功能开关,0表示关闭、1表示启用,值域0 ~ 1。
GridX : shading table的X方向大小,此平台预设为27,值域1 ~ 27。
GridY : shading table的Y方向大小,此平台预设为17,值域1 ~ 17。
CCTThr : 环境色温节点设定,此平台最多支持3组Shading校正,注意index小到大需要按照色温低到高的顺序填入,值域1~ 3。
DeltaMode : 预设16种模式,纵轴表示每个模式、横轴表示X/Y方向每个格子的间格大小,在此平台为X=26, Y=16格间距,预设模式内的值越大则周围方格越小,值域0 ~ 15。
DeltaModeAvdEn : 选择启动进阶模式开关,0表示关闭、1表示启用,值域0 ~ 1。当GridX/Y使用非此平台预设27x17时,必须进入此模式进行非等距方格设定。。
DeltaLutX : X轴间距,每个索引值(index)表示为一个block size (index = block size / 16),索引值只限填1,2,4,8,16,未使用则设为0,最多支持至72组,在此平台为26格间距。
DeltaLutY : Y轴间距,每个索引值(index)表示为一个block size (index = block size / 16),索引值只限填1,2,4,8,16,未使用则设为0,最多支持至72组,在此平台为16格间距。
R/G/B Gain Table : 选择R/G/B任意一个Table,会产生一个新的界面,在此平台上将画面分成一个27x17的矩阵,每个方格内的值表示这个位置的R/G/B分量需要乘上的权值,值域0~ 4095。
图15-21 Shading 27×17 Table界面
15.8. Plugin¶
IQTool提供了AF、AWB、CCM、GAMMA、ALSC五种外挂程式以辅助IQ调试。
图15-22 Plugin下拉式菜单界面
15.8.1. AF Analyzer¶
AF Analyzer为自动对焦校正分析外挂,主要用频率回应数值转换滤波器系数。
15.8.1.1. 调整界面
图15-23 AF Analyzer 界面(Frequency Mode)
图15-24 AF Analyzer界面(NonFrequency Mode)
15.8.1.2. 参数说明
-
步骤 (Step)
-
输入AF参数
Frequency Mode:输入截止频率产生频率响应
NonFrequency Mode: 输入AF Fliter系数产生频率响应
-
输出AF Filter系数
-
输出AF频率回应曲线
-
-
输入参数栏位 (Input parameters)
-
Bands lower :低频响应最小数值,值域范围0.001 ~ 1.000。
-
Bands higher :高频响应最大数值,值域范围0.001 ~ 1.000。
-
Display float 选项:enable → 显示AF系数,disable → 显示AF系数(二补码)。
-
Normalizer X 选项:enable → 正规化X轴值域,disable → 未正规化X轴值域。
-
Run 按钮 :计算Coefficient A0,A1,A2,B1,B2和畫AF頻率顯應曲線圖。
-
Frequency Mode选项 :选择输入参数方法。
-
Coefficient :NonFrequency Mode时输入各级AF Filter系数。
-
IIR Stage :选择位在哪一级AF Filter。
Frequency Mode:直接输入截止频率即可。
NonFrequency Mode:要根据级数输入系数ex:第一级AF Filter选1对Coefficient输入系数,要再对第二级AF Filter输入系数IIR选2再对Coefficient输入一次系数etc.
-
-
输出参数栏位 (Output parameters)
- AF Filter Coefficient : A0, A1, A2, B1, B2
-
频率回应曲线 (Frequency response curve)
-
X轴:取样点数量
-
Y轴:频率数值 (db)
-
15.8.2. AWB Analyzer Combo¶
Awb Analyzer Combo为白平衡校正分析外挂,主要包含Statistics Analyzer与Raw Analyzer两个部分。其中Statistics Analyzer,使用者可利用它来调整色温曲线范围,而Raw Analyzer主要是让使用者能了解画面中各个位置的Awb统计值落点。
15.8.2.1. 调整界面
图15-25 AWB Analyzer Combo界面
15.8.2.2. 使用方式及参数说明
-
点功能选择:
点击界面上方功能标签来切换。
-
统计值来源设定:
点击界面上方menu列的File->Load Statistics会出现三种来源选择。
From Live Stream:取得目前stream画面的统计值,IQTool需要先连线才使用此功能。若要更新画面统计值可选择右上方Update Live Statis按钮。
From Raw Image:从拍摄好的raw image来取得统计值,选择此项目前请先透过menu列的Raw Format 来设定raw image的格式。
From Statistics Data:从之前存好的统计值档案来取得。
-
色温曲线范围来源设定:
点击界面上方menu列的File->Load CTArea会出现两种来源选择。
From Board:从连线的机台来取得,IQTool需要先连线才使用此功能。
From CTArea Data:从之前存好的色温曲线范围档案来取得。
-
储存统计值:点击界面上方menu列的File->Save Statistics。
-
储存色温曲线范围:点击界面上方menu列的File->Save CTArea。
-
色温曲线范围调整:直接拖拽色温框上的位置控制点(三角形)及范围控制点(菱形)。
-
重置色温曲线范围:点击右上方Reset CTArea按钮。
-
有效色温曲线范围Index:透过右上方StartIdx和EndIdx设定。只有落在这区间色温框的统计值才会被拿去计算。
-
套用色温曲线范围:选择右上方Apply To Camera按钮。
套用后记得回到IQTool界面选择AWBCTCali项目去做Read Page的动作(点Read Page前不要点到Write Page),这样在储存API bin file时才能将调整后的色温曲线范围存入。
-
移动&缩放显示raw image;在画面上按住鼠标左键可拖拽移动画面,滚动鼠标滚轮可进行画面缩放。
-
显示统计值分块:选择Show Statistics Blocks会在画面显示统计值分块。
-
选择统计值分块:双击鼠标左键可选择分块,左侧信息栏会固定显示该分块信息,此外还会在色温座标秀出该分块的落点位置(星型)。点击鼠标右键可取消选。
-
显示套用Final RBgain的图:选择Apply Final WB gain。
15.8.3. CCM Analyzer¶
此外挂程式工具使用于色彩校正。
15.8.3.1. 调整界面
Calculate CCM页面用于CCM校正,启动时会从Camera读取相关参考值,因此不能离线调试。另两个Page FineTuneMatrix属于微调功能。
图15-26 CCM Analyzer界面
15.8.3.2. 使用方式及参数说明
-
使用方法
点击Source Image中的Set来设定 Raw Data的信息,点击open source打开保存的raw image,开启后会出现一个窗口显示出所选择的raw image,直接用鼠标在画面上拖拽让各色块都有正确被框选到,完成后点OK,Open Target打开标准的color checker图片,按上述步骤框选color checker。
图15-27 Load Raw Image窗口
-
参数设定
-
Color Weight:
可让使用者调整各色块的权重,权重越大者fitting的结果会越准确,预设都设为100。
图15-28 Color Weight设定界面
-
Component Constraint:
使用者可根据需求针对某些成分做限制,例如设定0.5,则该成分fitting后的结果只能在-0.5到0.5之间。
图15-29 Component Constraint设定界面
-
设定完成后选择calculate按钮,在窗口右侧会显示最终fit出的结果。
图15-30 CCM界面
-
重复上述步骤fit出剩余色温的color matrix。
-
15.8.4. Gamma Fitting Analyzer¶
此外挂程式工具使用于Gamma Fitting校正。
15.8.4.1. 调整界面
CDF_Orig :open source的CDF曲线。
CDF_Ref :open target的CDF曲线。
FitGMA :Fitting Gamma曲线。
图15-31 Gamma Fitting Analyzer界面
15.8.4.2. 使用方式及参数说明
-
使用方法
-
读取影像的Gamma 曲线,点击Options的Raw Setting初始设定。
图15-32 开启Raw Setting界面
-
点击open source打开保存的raw image
-
点击open target打开标准的OECF Chart图片
-
按左键分别选取ROI,自动产生相对应的histogram
-
选择Gamma曲线类型,共有两种曲线计算方式,建议选择Exponential
-
Spline曲线
-
Exponential曲线
-
-
点击Match GMA按钮,产生Gamma曲线
-
点击Save GMA按钮,保存计算完的Gamma参数值。
-
15.8.5. SStarCalibration Tool¶
此插件工具使用于shading以及black level校正,功能和calibration tool相同
15.8.5.1. CalibrationALSC调整界面
图15-33 ALSC analyzer界面
15.8.5.2. CalibrationALSC使用方式及参数说明
-
参数设定
-
Ratio Table:画面中心至角落补正强度ratio,值域0 ~ 255。
可让使用者调整各色块的权重,权重越大者fitting的结果会越准确,预设都设为100。
-
OBC:目前sensor的OB值,单位为16bits,值域0 ~ 65535。
-
GridX, GridY:shading table的大小,预设为27x17。
-
Set Delta Format:非等距方格设定。
-
Delta Mode:预设16种模式,值域0 ~ 15。设定方式可参考图16-6和图16-7: Delta_LUT_Y预设16。
-
Delta Mode Advance Enable:选择启动进阶模式开关,0表示关闭、1表示启用,值域0 ~ 1。当GridX/Y使用非预设27x17时,必须进入此模式进行非等距方格设定。
-
Delta X Lut:X轴间距,实际pixel数目为此值再乘16,只限填1,2,4,8,16,若未使用则填0。
-
Delat Y Lut:Y轴间距,实际pixel数目为此值再乘16,只限填1,2,4,8,16,若未使用则填0。
-
-
CT:色温,值域1 ~ 20000。
-
CT Num :选择校正几组色温表数据,默认是校正3组色温表,值域1 ~ 3。
-
CT Index:选择目前要校正第几组table,最多支持3组,校正顺序不需依照0到2的顺序,但需要确保0到2的环境色温要由低到高并且不可一样。
-
Open Raw Image:选择Raw image路径。
-
Set Raw Format:设定Raw image相关参数。
-
Apply Demosaicing:将Raw image过简易的Demosaic。
-
Show Alsc Table:显示shading table。
-
Color:显示shading table的R/G/B gain。
-
GenTable:依照输入参数,产生shading table。
-
ApiApply:只会将目前CT Index的shading table下到API中。
-
CaliApply:依据目前CTNum的大小一次把所有参数传到板子。
-
Debug Log:可在GenTable和Apply时,看到debug log。
-
Keep Cali Data:load已产生的.data数据进来,使之前的结果能保留并继续校正。
-
Dump Data:产生校正结果的txt檔。
-
Load Cali Data:load已产生的.data,使之能用CaliApply,将那个.data的校正结果套上去。
-
Select Cali File:只有当Load Cali Data勾起时,才能点选,用来选择套到板子上的.data。
-
-
使用方法
根据是否勾Load Cali Data,有两种路线
勾:
-
勾起Load Cali Data后,点选Select Cali Data,选择你要Apply的.data。
-
选择完所要的.data后,只能使用CaliApply。 此时Apply的校正参数并不会显示在我们的SStarCalibrationTool上。
不勾:
-
点击Set Raw Format 来设定 raw image的信息,点击Open Raw Image打开raw image。可以勾选 Apply Demosaicing来看RGB image,这边只是简单的Demosaic功能,和实际的不同。每当如果是从Load Cali Data勾起变不勾时,都要重新点击Open Raw Image打开raw image。
-
设定产生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功能就会丧失。
-
设定下到板子的参数,包含CT、CT Index,再点击ApiApply或CaliApply,即生效。请务必到ALSC界面点Read,即可看到和CalibrationALSC相同的参数。每Apply完一次,GenTable、CaliApply以及ApiApply都会被反灰,此时上图红色框框部分设定有变动就可再重校正一次。
-
15.8.5.3. CalibrationLSC调整界面
图15-34 CalibrationLSC界面
15.8.5.4. CalibrationLSC使用方式及参数说明
-
参数设定
Ratio Table:画面中心至角落補正強度ratio,值域0 ~ 255。
可让使用者调整各色块的权重,权重越大者fitting的结果越准确,预设为100。
OBC:目前sensor的OB值,单位16-bit,值域0 ~ 65535。
InputCenterX, InputCenterY:设定影像最亮中心点位置,值域范围:0~4095。
CT:色温,值域1 ~ 20000。
CT Num:选择目前要校正第几组table,最多支持3组,校正顺序不需依照0到2的顺序,但需要确保0到2的环境色温要由低到高并且不可一样。
CT Index:最多支持3组色温,值域0 ~ 2,会根据CTNum的大小有连动。
Open Raw Image:选择Raw image路径。
Set Raw Format:设定Raw image相关参数。
Apply Demosaicing:将Raw image过简易的Demosaic。
Show LSC Table:显示shading table。
GenTable:依照输入参数,产生shading table。
ApiApply:只会将目前CT Index的shading table下到API中。
CaliApply:依据目前CTNum的大小一次把所有参数传到板子。
Debug:Log:可在GenTable和Apply时,看到debug log。
Keep Cali Data:load已产生的.data数据进来,使之前的结果能保留并继续校正。
Dump Data:产生校正结果的txt檔。
Load Cali Data:load已产生的.data,使之能用CaliApply,将那个.data的校正结果套上去。
Select Cali File:只有当Load Cali Data勾起时,才能点选,用来选择套到板子上的.data。
Orientation:設定取樣点方向,由影像最亮的中心点至角落点。 0 :upper-left、1 :upper-right、2 :lower-right、3 :lower-left
Seg. Length:切割取样点的长度距离。
AutoSearchCenter:选择自动侦测输入影像的最亮中心点位置,值域0 ~ 1,建议设1。
LSCResult:Dump LSC结果影像。
Ratio Table:是否使用Ratio Table的补偿值去校正,当这个打勾Ratio Table才可以变更。
RatioThreshold:用来避免暗角补偿被过度补偿,值越大表示暗角补偿愈多、愈小则补偿愈少,暗角补偿愈多,會造成接近角落的正常的资料被过度补偿。当閥值愈小则补偿数值会根据当前最大索引值來找出补偿数值设为最大值,而最大索引值之後的索引值則維持最大补偿数值(不增加数值);反之阀值愈大则补偿数值愈大,Ratio Base = 100,值域0 ~ 25600。
-
使用方法
根据是否勾Load Cali Data,有两种路线
勾:
-
勾起Load Cali Data后,点选Select Cali Data,选择你要Apply的.data。
-
选择完所要的.data后,只能使用CaliApply。此时Apply的校正参数并不会显示在我们的SStarCalibrationTool上。
不勾:
-
点击Set Raw Format来设定raw image的信息,点击Open Raw Image打开raw image。可以勾选 Apply Demosaicing来看RGB image,这边只是简单的Demosaic功能,和实际的不同。每当如果是从Load Cali Data勾起变不勾时,都要重新点击Open Raw Image打开raw image。
-
设定产生shading table的参数,包含Ratio Table、OBC、InputCenterX、InputCenterY,再点击GenTable,即产生shading table。可以勾选Show LSC Table来看shading table。当校正完第一组参数时,想保留结果继续校正,可勾选Keep Cali Data,但如果在校第二组参数时,CT Num的大小有被改变,那Keep Cali Data功能就会丧失。
-
设定下到板子的参数,包含CT、CT Index,再点击ApiApply或CaliApply,即生效。请务必到LSC界面点Read,即可看到和CalibrationLSC相同的参数。每Apply完一次,GenTable、CaliApply以及ApiApply都会被反灰,此时上图红色框框部分设定有变动就可再重校正一次。
-
15.8.5.5. CalibrationOBC调整界面
图15-35 CalibrationOBC界面
15.8.5.6. CalibrationOBC使用方式及参数说明
-
参数设定
Open Raw Image:选择Raw image路径。
Set Raw Format:设定Raw image相关参数。
Apply Demosaicing:将Raw image过简易的Demosaic。
Show OBC Table:显示OBC校正出来的table。
CalOBGain:依照输入参数,产生校正黑电流的值。
ApiApply:把校正结果套到板子上。
CaliApply:把校正结过套到板子上。
Debug Log:可在CalOBGain和Apply时,看到debug log。
Keep Cali Data:load已产生的.data数据进来,使之前的结果能保留并继续校正。
Dump Data:产生校正结果的txt檔。
Load Cali Data:load已产生的.data,使之能用CaliApply,将那个.data的校正结果套上去。
Select Cali File:只有当Load Cali Data勾起时,才能点选,用来选择套到板子上的.data。
Weight Table:将画面均分为3×3区块,在计算OB时每个区块的权重,值域0 ~ 16,建议全部设1。
AutoAssign:将OB值设给所有Gain,值域0 ~ 1,建议设1。
Cali Gain Index:选择校正哪一组OB值,值域0 ~ 15。
SetOBCParameters-Weight Table:显示Weight Table。
Target:校正后希望残留的值,单位为16-bit,值域0 ~ 65535,建议设0。
-
使用方法
根据是否勾Load Cali Data,有两种路线
勾:
-
勾起Load Cali Data后,点选Select Cali Data,选择你要Apply的.data。
-
选择完所要的.data后,只能使用CaliApply。此时Apply的校正参数并不会显示在我们的SStarCalibrationTool上。
不勾:
-
点击Set Raw Format来设定raw image的信息,点击Open Raw Image打开raw image。可以勾选Apply Demosaicing来看RGB image,这边只是简单的Demosaic功能,和实际的不同。每当如果是从Load Cali Data勾起变不勾时,都要重新点击Open Raw Image打开raw image。
-
设定产生table的参数,包含Weight Table、Target、AutoAssign、Cali Gain Index,再点击CalOBGain,即产生校正table。可以勾选Show OBC Table来看校正table。当校正完第一组参数时,想保留结果继续校正,可勾选Keep Cali Data。
-
设定下到板子的参数,点击ApiApply或CaliApply,即生效。请务必到OBC界面点Read,即可看到和CalibrationOBC相同的参数。每Apply完一次,CalOBGain、CaliApply以及ApiApply都会被反灰,此时上图红色框框部分设定有变动就可再重校正一次。
-
15.8.5.7. Raw Setting参数界面
图15-36 Raw Setting界面
15.8.5.8. Raw Setting参数说明
-
Raw Format
-
Format:Raw image的RGB格式。
-
Bit Width(Input):Raw image输入位。
-
-
Raw Image Size
-
Width:Raw image的宽。
-
Height:Raw image的高。
-
-
Clip Image Size
-
Width:Raw image经过Clip后的宽。
-
Height:Raw image经过Clip后的高。
-
X:Raw image要从宽哪里去做Clip,要注意起始位置加上你所想要Clip的大小不能超过Raw image的大小。
-
Y:Raw image要从高哪里去做Clip,要注意起始位置加上你所想要Clip的大小不能超过Raw image的大小。
-
-
Image Decompress
-
Enable:是否打开Decompress功能。
-
Input Bits:被压缩后的位。
-
Output Bits:解压缩后的位。
-
Range:总共有四个区间需要设定。
-
Range0:设定第一个区间,0 ~ Range0。
-
Range1:设定第二个区间,Range0 ~ Range1。
-
Range2:设定第三个区间,Range1 ~ Range2。
-
Range3:第四个区间无须设定,Range2 ~ ∞。
-
-
Node0:对应区间的offset。
-
Node1:对应区间的shift。
-
Node2:对应区间的基底。
-
16. CALIBRATION TOOL¶
支持OBC、ALSC、LSC以及AWB产线校正,需额外使用offline的calibration tool。需确认计算机环境是否有安装Visual Studio 20xx 可散发程序套件。 (下载链接: x86, x64).
16.1. 校正流程¶
在各情境下抓Raw,设定参数(修改*.ini),产生*.data,并将*.data烧录进去。
16.1.1. 抓Raw方式¶
16.1.2. 参数说明¶
在calibration\SampleCode\Release\CalibrationInitialParameter.ini设定环境参数
-
filename :Raw名称。
Raw data 命名规则是“filename” + “_” + “three numbers”
-
frame_numbers :单次校正Raw个数,通常为1,除了SDC常会用多张校正。
-
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。
-
-
width :Raw image的width。
-
height :Raw image的height。
-
clip_x :Clip image的起始X座标,避免破坏Bayer Pattern排序,建议设置偶数。
-
clip_y :Clip image的起始Y座标,避免破坏Bayer Pattern排序,建议设置偶数。
-
clip_width :Clip image的widht,避免破坏Bayer Pattern排序,建议设置偶数。
-
clip_height :Clip image的height,避免破坏Bayer Pattern排序,建议设置偶数。
-
dump_clip_image :Dump clip image档案的开关,0表示关闭、1表示开启,预设为0。
-
cfa_type :Bayer pattern的排序,即最左上角的色块。
0 = RGGB、1 = GRBG、2 = BGGR、3 = GBRG -
source_type :选0为Raw,不建议修改。
-
in_data_precision :输入Raw的精准度,预设为16。
-
out_data_precision :输出*.data 的精准度,预设为16。
-
cali_output_path :输出路径,不建议修改。
-
calibration_select :Calibration项目,AWB = 0、OBC = 1、SDC = 2、ALSC = 3、LSC = 4。
-
load_calibration_data :Load *.data的开关。第一次校正时,必设为0,若要进行多次校正,从第二次
校正开始,必须将此设为1,才会保存之前校正的资料,常用在OBC、ALSC、LSC、AWB、SDC。[此平台未支持SDC功能]
-
cali_dump_data :Dump .txt的开关。选0,只会产生*.data;选1,除了产生*.data外,还会另 外储存*.txt。
-
cali_xxx_xxx_path :校正完的*.data路径,不建议修改。
[OBC] [ALSC] [LSC] [AWB] :后面章节详述介绍。
16.1.3. 产生 *.data¶
Calibration Step:
-
在calibration\SampleCode\Release\image放入用来校正的Raw。
-
修改calibration\SampleCode\Release\CalibrationInitialParameter.ini。
图16-1 CalibrationInitialParameter.ini - RAW_INFO参数设定说明
-
执行calibration\SampleCode\Release\CalibrationRelease.exe。
-
校正程序一开始会先检查执行路径目录,是否存在data and image资料夹 (自动产生)
图16-2 检查calibration所需的data资料夹是否存在
-
校正程式成功后,可在calibration\SampleCode\Release\data\cfg取得*.data。
图16-3 产生calibration所需的*.data档案
16.1.4. 烧录 *.data¶
将*.data 放到DownloadTool_XXX\FactRes\,重新烧进去即可。
备注:请不要更改*.data档名。
16.2. OBC调整¶
校正sensor的black level。
16.2.1. 校正环境¶
校正环境为遮黑校正,须避免任何可能光源进入。遮黑时先观察串流画面是否有异常,无异常则进行下一步,若发现异常则暂停校正并立即反映,待问题解决再作后续动作。
图16-4 遮黑画面异常范例
16.2.2. 参数说明¶
AutoAssign :将 OB值设给所有Gain,值域0 ~ 1,建议设1。
Target :校正后希望残留的值,单位为16 bits,值域0 ~ 65535,建议设0。
Weight :将画面均分为3×3区块,在计算OB时每个区块的权重,值域0 ~ 16,建议全部设1。
CaliGain :依2的幂次方来填值,值域 2^{0} \times 1024\ \sim\ 2^{15} \times 1024。
16.2.3. 校正步骤¶
-
将total gain设为最小倍率,将画面遮黑抓Raw。
-
若为normal mode或是combine mode,则out_data_precision填16。
-
产生obc_cali.data,亦可产生dump_obc_data.txt看一下校正结果,再load obc_cali.data进去。
-
若为normal mode或是combine mode,则OB值会填到IQtool中OBC界面的blacklevel,单位为16 bits。
-
若为HDR mode,长短曝要分开校正
-
短曝校正:与normal mode相同,遮黑抓短曝Raw,且out_data_precision填16,产生obc_cali.data,再load obc_cali.data进去,则OB值会填到IQtool中OBC界面的blacklevel,单位为16 bits。
-
长曝校正:遮黑抓长曝Raw,且out_data_precision填16,产生dump_obc_data.txt,再手动填入到IQtool中OBC界面的blacklevel_1,单位为16 bits。
-
批注:
A. Normal mode :表示为Linear mode(single frame) 和HDR mode(2 frames)。
B. Combine mode :表示为Sensor端完成长、短曝光的合成影像包含影像数据压缩程序。
16.2.4. 注意事项¶
假设遇到高倍gain与低倍gain的OB差异很大,需要为不同ISO index设定不同OB时,请直接利用AE手动设定各ISO index gain值遮黑拍Raw,产生dump_obc_data.txt,再手动填入到IQtool中OBC界面的blacklevel的Auto Mode 16个节点中。
16.3. ALSC调整¶
不同的lens和sensor搭配会有不同的Y shading & color shading现象,因此当lens或sensor有更换就需要评估是否需要重新校正。
ALSC校正会产生出R、G、B各一个27×17的table,针对画面不同区域给予不同的R、G、B gain,因此可同时改善Y shading & color shading,最多支持3 种色温,不支持table内插。
16.3.1. 校正环境¶
均匀光源,最严谨的方法是使用Macbeth标准灯箱搭配diffuser来做校正,若没有diffuser就只能对灯箱中的灰墙,尽可能让光均匀去做校正。
调整前务必确保OB和AWB色温曲线范围已校正且确实套用,用RGB sensor要确认IR cut有确实盖上。
图16-5 LSC / ALSC校正环境架设范例
16.3.2. 参数说明¶
TargetIndex : 选择目前要校正第几组table,最多支持3组,校正顺序不需依照0到2的顺序,但需要确保0到2的环境色温要由低到高即可。
CCTNumber : 选择总共要校正几组色温表资料,预设是校正3组色温表,值域1 ~ 3。
GridX/Y : Shading Table的大小,此平台预设为27x17。
GridNumMax : Shading Table的最大table size,为一个定值,在此平台为27x17=459。
Segment_Delta_Str_Mode: 预设16种模式,纵轴表示每个模式、横轴表示X/Y方向每个格子间距的大小,在此平台为X = 26, Y = 16格间距,预设模式内的值越大则周围方格越小,值域0 ~ 15。
图16-6 Delta_LUT_X预设16种模式分布
图16-7 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,2,4,8,16,未使用则设为0,最多支持至72组,在此平台为26格间距。
Segment_Delta_LUT_Y0~8 : Y轴间距,每4个bit表示为一组索引值[index = (block size / 16) - 1],则实际pixel数目为(index + 1) x 16。索引值只限填1,2,4,8,16,未使用则设为0,最多支持至72组,在此平台为16格间距。
16.3.3. 校正步骤¶
-
先决定要校正几种灯源,将AE target设为1500左右拍去摄各色温Raw data,并确定raw data没有过曝,并将档案放至calibration tool的image资料夹中。[备注:AE target data range = 10 ~ 2550]
-
开启CalibrationInitialParameter.ini填入正确[RAW INFO]。(参考11.1.2)
-
Raw data路径及格式。
-
in/out_data_precision设16。
-
calibrarion_select设4。
-
当校正第一个色温时,load_calibration_data要设为0,当校正剩余色温时,load_calibration_data要设为1。
-
-
设定CalibrationInitialParameter.ini中[ALSC]校正参数。(参考11.3.2)
-
执行CalibrationRelease.exe产生alsc_cali.data。
-
重复2、3、4步骤将所有色温校正完毕产生最终alsc_cali.data。若校正时[CALI_DB]中的cali_dump_data有设为1,校正后会同时产生dump_alsc_data.txt,里面可以看到校正出来的shading table值。
-
需透过MI_ISP_API_CmdLoadCaliData这支API来套用alsc_cali.data。(详细请参考ISP软件开发参考)
16.3.4. 调整界面¶
在左侧选单点选Shading即会出现ALSC和ALSC_CTRL接口。
图16-8 ALSC和ALSC_CTRL调整界面
16.3.5. 参数说明¶
R Gain Table :ALSC R table,值域0 ~ 8191。
G Gain Table :ALSC G table,值域0 ~ 8191。
B Gain Table :ALSC B table,值域0 ~ 8191。
R Ratio By CCT :ALSC table整体 R ratio值(128 = 1x),值域0 ~ 128。
G Ratio By CCT :ALSC table整体 G ratio值(128 = 1x),值域0 ~ 128。
B Ratio By CCT :ALSC table整体 B ratio值(128 = 1x),值域0 ~ 128。
Points Num :Ratio by BV设置的节点个数(随不同环境亮度值(BV)提供设置不同的Ratio)。
Ratio :各节点的Ratio值,027只扣chroma,28128扣chroma及luma。
BV :各节点对应的BV值。
16.3.6. 调整步骤¶
-
在不同BV下调整Ratio,通常在低BV的情况下会降Ratio,可以减轻因ALSC造成的外圈较脏。
-
R/G/B Ratio By CCT预设为1x,若有需求再调整即可。
16.3.7. 注意事项¶
ALSC R/G/B Gain table 同时存在iqfile、alsc_cali.data,但api bin只能读写,并不会储存到api bin (因为size过大),因此每次开机都需要load alsc_cali.data。
16.3.8. .data格式&大小¶
Handle size :20 bytes。
Ctrl size :52 bytes。
Data size :4 + x bytes, x =(GridX * GridY * 3 * 2 + 2 * GridMax)/4的小数无条件进位值 再乘4 GridMax = GridX or GridY较大的那一个。
Total size :20 + 52 * cctNum +(4 + x) * cctNum bytes, cctNum=校正的色温组数(1~3)。
16.4. LSC调整¶
LSC校正会产生出R、G、B各一个32的table,针对画面不同区域给予不同的R、G、B gain,因此可同时改善Y shading,最多支持3 种色温,不支持table内插。
16.4.1. 校正环境¶
同ALSC。
16.4.2. 参数说明¶
TargetIndex : 选择目前要校正第几组table,最多支持3组,校正顺序不需依照0到2的顺序,但需要确保0到2的环境色温要由低到高即可。
CCTNumber : 选择校正几组色温表资料,预设是校正3组色温表,值域1 ~ 3。
TableSize : Shading Table的大小,default为32。不建议修改此数值。
LSCResult : Dump LSC结果影像。
SegmentLength : 切割取样点的长度距离
AutoCenter : 选择自动侦测输入影像的最亮中心点位置,值域0 ~ 1,建议设1。\ 若设为0,则使用下列InputOrientation and InputCenterX/Y手动设定。
InputOrientation : 设定取样点方向,由影像最亮的中心点至角落点\ 0 : upper-left、1 : upper-right、2 : lower-right、3 : lower-left
InputCenterX/Y : 设定影像最亮中心点位置,值域范围:0 ~ 4095。
ColorTemperature : 当前TargetIndex下的环境色温。
OB_R/G/B_Value : 目前sensor的OB值,单位为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。
16.4.3. 校正步骤¶
-
同ALSC。
-
产生lsc_cali.data,亦可产生dump_lsc_data.txt或dump_lsc_result.raw看一下校正结果,再load lsc_cali.data进去,若无校正LSC时,此步骤可省略跳至下一项。
16.4.4. 调整界面¶
在左侧菜单选择Shading即会出现LSC和LSC_CTRL界面。
图16-9 LSC和LSC_CTRL调整界面
16.4.5. 参数说明¶
R Gain Table :LSC R table,值域0~255。
G Gain Table :LSC G table,值域0~255。
B Gain Table :LSC B table,值域0~255。
R Ratio By CCT :LSC table整体 R ratio值 (128 = 1x),值域0~128。
G Ratio By CCT :LSC table整体 G ratio值 (128 = 1x),值域0~128。
B Ratio By CCT :LSC table整体 B ratio值 (128 = 1x),值域0~128。
Points Num :Ratio by BV设置的节点个数 (随不同环境亮度值(BV)提供设置不同的Ratio)。
Ratio :各节点的Ratio值。
BV :各节点对应的BV值。
16.4.6. 调整步骤¶
-
在不同BV下调整Ratio,通常在低BV的情况下会降Ratio,可以减轻因LSC造成的外圈较脏。
-
R/G/B Ratio By CCT预设为1x,若有需求再调整即可。
-
若有需求,可以直接调整R/G/B Gain table。
16.4.7. 注意事项¶
-
LSC R/G/B Gain table 同时存在iqfile、lsc_cali.data和api bin,会吃iqfile当预设值,若有api bin则会盖过iqfile,若有lsc_cali.data则会再盖过api bin。
-
正常流程会先load lsc_cali.data,这样会将LSC R/G/B Gain table储存在api bin,后续直接在api上调整,之后就不需要每次重新load lsc_cali.data。
16.4.8. .data格式&大小¶
Handle size :20 bytes。
Ctrl size :60 bytes。
Data size :8 + x bytes, x =(2 + TableSize * 3 * 2)/4的小数无条件进位值再乘4 。
Total size :20 + 60 * cctNum +(8 + x) * cctNum bytes, cctNum=校正的色温组数(1~3)。
16.5. AWB调整¶
用于产线校正,用来补偿各机台与Golden sample间的白平衡统计值差异。
16.5.1. 校正环境¶
灯箱中放置灰卡,让灰卡占满画面拍摄raw data。
16.5.2. 参数说明¶
CaliState :指定校正的模式。 0表示CALIB_GOLDEN_H;1表示CALIB_GOLDEN_L;2表示CALIB_H;3表示CALIB_L
CaliNumber :校正色温总数,最多支持2种色温,值域1 ~ 2。
HighCT :高色温,值域1000 ~ 10000。
LowCT :低色温,值域1000 ~ 10000。
OB_R/GR/GB/B_Value :OB值设定,值域0 ~ 65535。
16.5.3. 校正步骤¶
-
分析多台机台AWB统计值落点,从中挑选出一台落点接近平均值的来当作golden sample。
-
校正时可选择使用一到两种色温灯源去做校正。
-
假设只用一种灯源做校正,校正流程如下:
-
用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。
-
CaliNumber设1。
-
HighCT设为校正灯源的色温值。
-
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设2。
-
CaliNumber设1。
-
HighCT设为校正灯源的色温值。
-
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 2将前一个unit sample的校正结果覆盖掉即可。
-
需透过MI_S32 MI_ISP_API_CmdLoadCaliData这支API来套用awb_cali.data。(详细请参考ISP软件开发参考)
-
-
校正如果使用两种灯源做校正,校正流程如下:
-
用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。
-
CaliNumber设2。
-
HighCT设为校正灯源的色温值。
-
OB值设定,值域0 ~ 65535。
-
-
执行CalibrationRelease.exe在\data\cfg产生存有golden sample高色温校正值的awb_cali.data,必须保存好此data直到校正结束。
-
开启CalibrationInitialParameter.ini填入正确[RAW INFO]。(参考16.1.2)
-
Golden sample 低色温raw data路径及格式。
-
in/out_data_precision设16。
-
calibrarion_select设2。
-
load_calibration_data设1。
-
-
设定CalibrationInitialParameter.ini中[AWB]校正参数。(参考16.5.2)
-
CaliState设1。
-
CaliNumber设2。
-
LowCT设为校正灯源的色温值。
-
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设2。
-
CaliNumber设2。
-
HighCT设为校正灯源的色温值。
-
OB值设定,值域0 ~ 65535。
-
-
执行CalibrationRelease.exe在\data\cfg产生存有golden sample高低色温校正值与unit 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设3。
-
CaliNumber设2。
-
LowCT设为校正灯源的色温值。
-
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 2 & 3将前一个unit sample的校正结果覆盖掉即可。
-
需透过MI_ISP_API_CmdLoadCaliData这支API来套用awb_cali.data。(详细请参考ISP软件开发参考)
-
-
16.5.4. data格式&大小¶
Handle size :20 bytes。
Ctrl size :28 bytes。
Data size :16 bytes。
Total size :20 + 28 + 16 bytes。
16.6. SDC调整¶
坏点补偿,可以补偿黑点和白点。
16.6.1. 校正环境¶
遮黑抓Raw(同OB),照均匀光抓Raw(同ALSC)。
16.6.2. 参数说明¶
Item : 遮黑抓Raw校白点,则选0;照均匀光源抓Raw校黑点,则选1;混合前两种结果,则选2。
MixerRatio : 校白点、黑点的比例,只有在Item = 2的时候才有效,100代表全部取Item = 0的结果、0表示全部取代Item = 1的结果。
CaliImgNum : 校正的Raw个数,必须和frame_numbers相同。
InvalidRatio : 设定滤除搜寻范围的比例值,值域0 ~ 100。
CaliFlag : 设定是否需要判断影像中的群聚坏点,0表示Disable、1表示Enable,值域0 ~ 1。
ValidValue : 输出参数,显示补偿坏点过后,画面中N+1的坏点pixel value,N表示补偿坏点数量值。
ClusterAmount : 输出参数,当CaliFlag = 1时,计算影像中有多少cluster数量。
TotalAmount : 输出参数,显示校正pixel point的总数。
16.6.3. 校正步骤¶
-
抓Raw校正坏点,可以只校正黑点或白点、或混和黑点、白点结果。
-
产生sdc_cali.data,亦可产生dump_sdc_data.txt看一下校正结果,再load sdc_cali.data进去。
-
无法在IQtool上看到值。
-
若遮黑还是会看到白点,或是照均匀光还是会看到黑点,坏点依然没有被补偿,请反馈给SigmaStar。
16.6.4. .data格式&大小¶
Handle size : 20 bytes。
Ctrl size : 44 bytes。
Data size : 6144 bytes。
Total size : 20 + 44 + 6144 bytes。
17. 与MACARON差异列表¶
模块名称 | 差异功能 | 差异参数(删除) | 差异参数(新增) |
---|---|---|---|
HDR | 新增鬼影补偿 | u16SensorExpRatio bDynRatioEn u8CRefSel | u16NoiseLevel[16] u16MotionTh u16MotionAdjLut[7] |
HDR Ex | 新增鬼影补偿 | 新增API | |
3DNR | 新增可降低移动躁声的扰动 | u16MdThd u8TfLut[16] u8YSfStr | u8MdThd u16TfLut[16] u8YSfBlendOffset |
3DNR EX | 新增紫边区域躁点处理 优化高亮度区的粉红色拖影 | 新增API | |
Crosstalk | 新增根据亮度调整强度 | u8StrengthV2 u16ThresholdV2 u16ThresholdOffsetV2 | u8Strength u8Threshold u16Offset u8StrengthByY[15] |
NRDeSpike | 新增可根据diff与亮度调整DPC强度 | u16DiffGainCenterNeighbor u16DiffThdCornerCross | |
u8DiffGainCenterNeighbor u8DiffThdCornerCross u16BlendLut[5] u8StrengthByY[15] | |||
NRLuma | 优化前级YNR处理 | bLumaAdjEn u8LumaX[9] u16LumaStrByY[10] u8Wei[20] | u8Strength u8GMaskSel u16SpfBlendLut[2] |
NRLuma Adv | 新增后级YNR处理 | 新增API | |
NRChroma Adv | 新增前级CNR处理 | 新增API | |
Sharpness | 优化Edge的高频区域 | stEdgeCtrl stTextureCtrl u8EdgeKillLUT bDirEn u16SharpnessUD u16SharpnessD | u16EdgeKillLUT u16SharpnessUD[2] u16SharpnessD[2] u8PreCorUD[2] u8PreCorD[2] u8PreCorMotGain u8LpfEdgeGainUD u8LpfEdgeGainD u8WeakDetailEnhance u8DetailMotOffset u8MotGain[16] |
Sharpness Ex | 优化Edge的高频区域 | 新增API | |
PFC | 新增去紫边功能 | 新增API | |
PFC Ex | 新增去紫边功能 | 新增API |