High-Integrated IP Camera SoC Processor ISP API Tuning SOP
1. CALIBRATION¶
每颗sensor及lens特性不尽相同,当拿到一颗新sensor或lens时,首要动作就是针对其特性去做校正及参数设定,完成后才能去做后续的画质调整。接下来各节会依据校正流程做介绍,建议依照此流程来做调整。
1.1. AWB色温曲线范围调整¶
在pipeline中虽然AWB在shading校正之后,但shading校正需会要AWB根据统计资料推算出来的CCT值,且shading是否校正对AWB影响较小,因此建议先做AWB色温曲线范围的调整,等ALSC校正完后再回来检查AWB色温曲线范围是否需要微调。
1.1.1. 校正环境¶
使用Macbeth标准灯箱,灯箱内放置灰卡,让灰卡占满整个画面,若没有灰卡就直接利用灯箱内的灰墙来做分析。
调整前务必确保OB已校正且确实套用,用RGB sensor要确认IR cut有确实盖上。
1.1.2. 校正介面¶
点选API tool上方Select Plugin,选择Awb AnalyzerCombo开启调整工具介面。
Figure 1: Plugin选单
Figure 2: Awb Analyzer Combo介面
1.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:将色温框套用至板子上。
1.1.4. 校正步骤 & 套用¶
-
设定StartIdx和EndIdx来决定欲做AWB的色温范围,建议设定为StartIdx = 2、EndIdx = 7,也就是当环境色温在2300K~10000K才会做AWB。
-
准备一台可量测色温的meter,量测欲调整灯源的实际色温。
-
点击Update Live Statis更新目前灯源的统计资料,接著点击File→Save Statistics储存统计资料。调整代表色温接近实际色温的色温框,色温框大小只要能涵盖大部分统计资料即可。此外要注意让右上方推算出的色温(CT)接近实际色温,不离谱即可。
Figure 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档中。
1.1.5. 注意事项¶
灯箱的环境是AWB最基本要做好的,因此建议调整过程中储存各灯源统计资料,日后遇到实际场景需要微调色温曲线范围时,微调后可读回灯箱统计资料确认是否会影响灯箱环境的白平衡,不需要再重新架设灯箱环境,可节省时间。若对某个场景AWB有疑问,可以提供该场景的统计资料以及当时使用的色温框设定,方便相关人员进行分析。
1.2. AE Exposure Table 设定¶
不同的sensor及lens特性及能力皆不同,预设的AE exposure table 不见得适合目前的module,因此需要去检查,并将其修改为适合目前module的设定。
1.2.1. 调整介面¶
点选左方的AE项目,再点选ExpoTblEntry即可出现AE exposure table调整视窗。
Figure 4: AE设定介面
Figure 5: AE Exposure Table
1.2.2. 参数说明¶
NumOfExpoTblEntry:设定AE exposure table的数量。以Figure 5设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.2.3. 设定项目¶
-
确认lens光圈值,将光圈值x10填入第一栏。
-
向客人询问maximum gain,填入倒数第一列的第三栏中。
-
若不使用ISP gain,直接将第三栏的值复制到第四栏中。
2. GAMMA FITTING & COLOR CORRECTION¶
不同的gamma和color对noise会有不同的影响,而且调整denoise时先套入gamma和color设定会比较方
便观察,因此通常会先做gamma和color的调整,即便它们在PRETZEL的pipeline中是在denoise之后。
2.1. Gamma Fitting¶
Color fitting的结果容易受到亮度差异的影响,而亮度差异主要来自AE和gamma,因此在color fitting前务必先做gamma fitting。此步骤主要目的是将调整机台的gamma fit到与对比机的gamma接近。校正前请先确认dynamic range是full range。
2.1.1. 校正环境¶
使用OECF chart,让光线均匀打在chart上,拍摄时让chart摆在画面中间,不要占满整个画面,否则容易受到shading的影响。
Figure 6: 拍摄画面范例
2.1.2. 校正介面¶
点选API tool上方Select Plugin,选择Gamma Fitting开启校正介面。
Figure 7: Gamma Fitting介面
2.1.3. 校正步骤¶
-
将环境架设好,首先拍摄调整机台与对比机台fitting所需的image。由于曝光会影响亮度,因此gamma fitting要在相同曝光的基准上会比较准确。要得到接近的曝光,最简单的方式就是拍摄时(调整机拍raw,对比机拍jpg)让OECF最亮色块尽量接近255但不要刚好255,因为我们不知道对比机gamma长甚么样子,但通常gamma最亮点是不会变的,因此拿它来当基准会比拿其它点当基准要好。
Figure 8: 拍摄source及target画像示意图
-
读取source raw data的OECF patch值:
点选介面工具列的Options,填入正确的raw information及OB (WB不需要设定),完成后点选OK。
Figure 9: Raw Setting设定介面
拖曳滑鼠来框选OECF,确认每一个patch都有正确落在patch内即完成。
Figure 10: 框选OECFpatch范例
-
读取target image的OECF patch值:
和上述步骤相同,差别只是target是读取image档,省略了设定raw information的动作。
-
选择fitting的相关设定,取值方式建议使用patch values,fitting的方式建议使用Exponenitial。
Figure 11: Gamma fitting设定建议
-
选择好后点选Match GMA执行gamma fitting,观察fitting出来的curve是否有异常,没有的话点选Save GMA储存gamma curve。最后检查储存出来的gamma curve头尾是在0和1023,若不是,请手动作修改。
Figure 12: 理想gamma curve要smooth且递增
2.2. Color Correction¶
此步骤主要目的是使调整机与对比机的颜色接近,调整主要包含两个部分:第一个也是最主要的部份是color matrix的fitting;另一个为HSV微调的部分,可依需求做局部颜色饱和度与色相的调整。Color matrix与HSV最多可支援16组色温的设定,填参数时务必按照规则,Index0到Index15代表色温由低到高。
2.2.1. CCM调整¶
当使用tool将各色温灯源校正完成,需要手动将校正结果填入CCM对应的专案中。
2.2.1.1. 调整介面
Figure 13: CCM调整介面
2.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值做切换。
2.2.2. HSV调整¶
当CCM套入后仍有颜色希望微调,则可使用HSV来达成。HSV会将整个色域平均切成24等分,使用者可依需求调整个等分的色相及饱和度。HSV的参数与CCM相同,都是根据不同色温来做切换,不是根据gain。
2.2.2.1. 调整介面
Figure 14: HSV调整介面
2.2.2.2. 参数说明
HueLut : 可依需求局部调整色相,值域-64~64,0代表不改变。
![](mymedia/pudding/image16.jpg) <span id="_Toc37176118" class="anchor"></span>Figure 15: Hue调整介面
SatLut : 可依需求局部调整饱和度,值域0~255,64代表不改变。
![](./mymedia/pudding/image17.jpg) <span id="_Toc37176119" class="anchor"></span>Figure 16: 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。
2.3. Saturation调整¶
根据亮度(Y)及饱和度(UV)做UV的调整,分为adjust uv by y及adjust uv by uv,主要是留一些颜色调整弹性在YUV domain上,且因为亮度与饱和度的独立性,可保持亮度恒定,又达到局部调整饱和度的效果。在感测器用到高曝光值的时候,也可适度降低暗处色躁。亦或根据使用者喜好调高或降低饱和度,使画面看起来更鲜艳或较柔和。
2.3.1. 调整介面¶
于左侧选单点选Saturation,接著在右侧主画面可找到Saturation介面。
Figure 17: Saturation调整介面
2.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效果下更显自然。
Figure 18: Sat.ByYsft[5] & Sat.ByYLut[6]
Figure 19: Sat.BySsft[5] & Sat.BySLut[6]
3. 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设小一些,让画面不要太离谱即可)。
Figure 20: Sharpness建议预设值
当调整高倍gain时,没有denoise又开sharpness画面会很脏,脏到无法辨识调整参数的效果,建议可在调NR3D前将Y.TF.STR开强,让画面定住,方便调整NR3D前的一些function。调整建议照ISO index顺序调整,此外,为避免参数内插影响判断,建议将AE设为Manual的SV mode,直接给定各节点的gain值来做调整,完整调好一个再跳下一个。调整画质前请将镜头擦干净且确实对到焦,RGB sensor要确认IR cut有盖上。
3.1. Crosstalk & False Color调整¶
调整denoise前先检查是否有fixed pattern、cross talk或false color等现象,有的话先调整,一来是因为这些功能本来就在denoise之前,二来是特殊现象就要用专门的功能才能有效处理,硬用denoise去消除这些现象容易造成画质损失。
3.1.1. Crosstalk (Green Equal)¶
这主要是lens与sensor搭配性的问题,当光线进入sensor上micro lens的角度太大,容易误接收到应该被邻近pixel接收的讯号,导致Gr、Gb差异变大,因此这现象较容易发生在画面角落,或是光线从某个特殊角度进入时。
3.1.1.1. 现象
画面出现迷宫纹
Figure 21: Crosstalk造成的迷宫纹现象
3.1.1.2. 调整介面
于左侧选单点选BayerCompemsation,接著在右侧主画面可找到Crosstalk介面
Figure 22: Crosstalk调整介面
3.1.1.3. 参数说明
Strength : crosstalk强度值,值域0 ~ 31,越大效果越强。
StrengthByY : 根据亮度调整crosstalk强度值,横轴越右边代表越亮,值域0 ~ 127,越大效果越强。值为64代表不做调整。
Threshold : crosstalk threshold ratio值,值域0 ~ 255,越大作用范围越大。
Offset : crosstalk threshold offset值,值域0 ~ 4095,越大作用范围越大。
3.1.1.4. 调整步骤
-
将Offset设为0,Threshold设为128,Strength由0往上升,观察欲消除crosstalk的区域及欲保留的细节区,调整至crosstalk与细节保留都可接受即停止。
-
如需微调则再利用Threshold来做微调。
-
若暗处还是有很明显的crosstalk,再来拉大Offset。
3.1.2. False Color¶
由于demosaic时未考虑方向或方向判断错误导致错误的颜色产生,容易发生在画面高频区域或edge边缘。
3.1.2.1. 现象
画面高频处或edge边缘出现伪色。
Figure 23: False Color现象
3.1.2.2. 调整介面
于左侧选单点选BayerCompemsation,接著在右侧主画面可找到AntiFalseColor介面。
Figure 24: False Color调整介面
3.1.2.3. 参数说明
FreqThrd : 频域阀值,值域0 ~ 255,越小越容易做false color。
EdgeScoreThrd: Edge : 阀值,值域0 ~ 255,越大越容易做false color。
ChromaThrdOfStrengthMax: 最大强度阀值,值域0 ~ 127,越大则moire区域愈容易被降饱和度。
ChromaThrdOfStrengthMid : 中间强度阀值,值域0 ~ 127,越大则moire区域愈容易被降饱和度。
ChromaThrdOfStrengthMin : 最小强度阀值,值域0 ~ 127,越大则moire区域愈容易被降饱和度。
StrengthMid : 中间强度,值域0 ~ 7,越小则饱和度降愈少。
StrengthMin : 最小强度,值域0 ~ 7,越小则饱和度降愈少。
Figure 25: False Color Curve示意图
3.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 设计上应大于。
3.1.3. PFC (Purple Fringing Compensation)¶
3.1.3.1. 现象
物体边界边缘出现紫色边缘。
3.1.3.2. 调整介面
于左侧选单点选PFC,接著在右侧主画面可找到PFC介面。
3.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处理。
3.1.3.4. 调整步骤
-
先决定SatAmpEn。
-
依据镜头表现,观察紫边的宽度,选择SatMaskSel的大小,若紫边较宽,可先选用较大的mask做补偿。
-
观察紫边所处的亮度区域、对比程度、紫边的颜色分布,来调整StrengthByY, SatByY, StrengthByContrast, StrengthByHue。
i. StrengthByY: 观察紫边产生于哪个亮度下,给予较强的设定,通常较暗的地方,强度较强。
ii. SatByY, StrengthByContrast: 观察紫边发生于哪种对比下,给予较强的设定,通常对比越高,强度越强。SatByY用来控制下图横轴的落点,StrengthByContrast用来控制下图纵轴。在低照下,对比度判断可能因为躁点而有点误差,可适当放宽SatByY[0],避免躁点被判断为高对比区。
Figure 29 Contrast, Strength参数示意图
-
控制FlatProtect,来确保部分平坦区不会做到PFC的效果。
-
调整最终PFC强度,如有特别颜色需求,可分开调整Ustrength, Vstrength的强度。
3.1.4. DEMOSAIC¶
3.1.4.1. 现象
增加画面解析度的同时减少方向误判与artifacts的产生。
Figure 30: 物体边缘出现的artifacts现象
Figure 31: 高频区方向判断错误
3.1.4.2. 调整介面
于左侧选单点选BayerCompemsation,接著在右侧主画面可找到DeMosaic介面。
Figure 32: DeMosaic调整介面
3.1.4.3. 参数说明
DirectionalThrd : 方向性内差或是无方向性内插的阀值,值域0 ~ 63,越大则愈多小细节模糊。
EdgeSmoothThrdY : 依据亮度做smooth,值域0 ~ 255,越小则边缘愈不锐利,artifacts愈不易产生。
EdgeSmoothThrdC : 依据saturation做smooth,值域0 ~ 127,越小则边缘愈不锐利,artifacts愈不易产生。
3.2. DynamicDP & NRDespike调整¶
如同前一节所说,peak noise基本上也算是一种特殊的noise,因此需要利用专门的功能去做消除或减弱的动作。建议在处理一般noise前先处理peak noise,这样可避免硬用其他denoise功能去处理peak noise而造成画质损失。有DynamicDP和NRSpikeNR两种功能可选择,可同时使用。
3.2.1. DynamicDP (Dynamic Defective Pixel Correction)¶
DPC处理peak noise的方式是将该点取代掉,因此效果较为明显。
3.2.1.1. 调整介面
于左侧选单点选BayerCompemsation,接著在右侧主画面可找到DynamicDP介面。
Figure 33: DynamicDP调整介面
3.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,越大越容易取代。
3.2.1.3. 调整步骤
-
先判断要开启HotPix或DarkPix。
-
DPCTH是判断与同通道的差异,与PixCompSlope需同时成立才会进行坏点补偿
-
慢慢增加PixCompSlope至peak noise与细节保留都可接受时停止,完成调整。
-
开启BlendEn,再依照想混合的程度调整DiffLut和YLut,以挽救细节。
3.2.2. DynamicDP Cluster¶
DynamicDP会依照该点与周围点差异来判断是否为defect,DynamicDP cluster会考虑周围的点也刚好是defect的情况,先将周围的最亮(暗)点排除一些。
3.2.2.1. 调整介面
于左侧选单点选BayerCompemsation,接著在右侧主画面可找到DynamicDP_Cluster介面。
Figure 34: DynamicDP_Cluster调整介面
3.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 : 次亮(暗)点和第三亮(暗)点阀值,可根据亮度调整,小于此值则取代。值设越小,次亮点与第三亮点需越相似,才可能把最亮(暗)点替换掉,代表判断条件越严格。
3.2.2.3. 调整步骤
-
若原有DynamicDP补不掉的defect,可以尝试开启EdgeMode或SortEn,开得越多,越容易补defect,但也更容易破坏细节。
-
建议Cluster可以开较宽松,即将抓出多数defect,再依照defect程度做blending。
3.2.3. NRDeSpike¶
NRDeSpike处理peak noise的方式是将该点与邻近点的median拉近,因此只能降弱,无法完全消除。
3.2.3.1. 调整介面
于左侧选单点选BayerDenoise,接著在右侧主画面可找到NRDeSpike介面。
Figure 35: NRDeSpike调整介面
3.2.3.2. 参数说明
NRDeSpike同时用三种方式判断depeak的强度,取最弱的来当最终的强度。
-
< CenterNeighbor >
Strength : CenterNeighbor方式的强度,值域0 ~ 5,越大越强。
DiffGain : CenterNeighbor方式的Threshold,超过此值depeak强度会设最强,值域0 ~ 255,越小越容易使用最强的depeak强度。
Figure 36: CenterNeighbor参数示意图
-
<CornerCross>
Strength : CornerCross方式的强度,值域0 ~ 5,越大越强。
DiffThd : CornerCross方式的Threshold,小于此值depeak强度会设最强,值域0 ~ 255,越大越容易使用最强 的depeak强度。
Figure 37: CornerCross参数示意图
-
< MeanStd >
Strength : MeanStd方式的强度,值域0 ~ 5,越大越强。
DiffGain : MeanStd方式判断条件中的一个gain值,值域0 ~ 31,越大越容易使该pixel使用最强的depeak强度。
Figure 38: MeanStd参数示意图
BlendRatio : 总强度设定,值域0 ~ 15,越大会让peak越不明显。
BlendLut : 选用median/mean的混合比例,值域0~2047,横轴为中心与周为差异程度,越右边差异越大,纵轴为混合比例,值越大,偏向median设定,值越小,偏向mean设定。
StrengthByY : 根据不同亮度,给予不同强度,值域0~127,64为不调整,值越小越弱,越大越强。
3.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结果来取得较平滑的结果。
3.3. NRD、NRLuma & NRChroma调整¶
NR3D的功能强大,除了降低temporal noise之外,还能分别对于静态或动态区域调整NRLuma与Sharpness的强度,因此建议先从NR3D调起,有必要时再开启NRChroma。
3.3.1. NRD ON¶
主要用来降低temporal noise,包含Y & color noise,开强可以有效降低杂讯,但side effect就是会出现残影,因此调整方向就是找出一个noise与残影都可接受的平衡点。
3.3.1.1. 调整介面
于左侧选单点选Denoise,接著在右侧主画面可找到NR3D介面。
Figure 39: NR3D调整介面
Figure 40: NR3D_EX调整介面
3.3.1.2. 参数说明
<Spatial Domain Denoise, SF系列参数>
这边的控制,请参考NRLuma, NRLuma_Adv, NRChroma, NRChroma_Adv
<Temporal Domain Denoise, MD, TF系列参数>
TF.LUT : 主要利用difference与motion资讯来决定temporal denoise的强度,difference与motion小很有机会是静态区,反之则很有机会是动态区,值域0 ~ 4095。
Figure 41: 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,则维持不动。
3.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强度,以避免这种拖影发生。
3.3.2. NRD OFF¶
由于有些IC为了节省成本没有DRAM,因此没有NR3D只能使用其他denoise,以下为建议调整方式。
3.3.2.1. 调整介面
同3.3.1.1。
3.3.2.2. 参数说明
同3.3.1.2。
3.3.2.3. 调整步骤
确认Iqfile是使用3dnr off的版本
3DNR介面中,只能调整spatial domain系列参数,包括 Y.SF.STR。
NRLuma介面中,建议将Wei开到63(最大值),调整LumaX 和 LumaStrengthByY 。
Despike调整方法与3DNR on相同。
若还有需求,可以再调整剩下的denosie,调整方法与3DNR on相同。
3.3.3. NRLuma¶
3.3.3.1. 调整介面
于左侧选单点选Denoise,接著在右侧主画面可找到NRLuma介面
Figure 42: NRLuma调整介面
3.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越多。
3.3.3.3. 调整步骤
基本上在调整NR3D时应该已经将spatial denoise强度调整到适当强度了,若有需要,可利用NRLuma再做微调即可。
1. 调整SpfBlendLut来平衡杂讯压抑跟细节保留。
3.3.4. NRLuma_Adv¶
3.3.4.1. 调整介面
于左侧选单点选Denoise,接著在右侧主画面可找到NRLuma_Adv介面
Figure 43: NRLuma_Adv调整介面
3.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效果越强。
3.3.4.3. 调整步骤
主要是针对NR3D与NRLuma的结果,再做微调使用。
1. 调整EdgeTh, EdgeGain,决定哪些区域是Edge。
2. StrengthByY, ByMot都先设为0,调整StrengthByType参数,控制Edge区与非Edge区,给予不同程度的NR强度。
3. 根据不同的亮度,与motion程度,加强NR。
3.3.5. NRChroma¶
压抑画面中颜色的杂讯
3.3.5.1. 调整介面
于左侧选单点选Denoise,接著在右侧主画面可找到NRChroma介面。
Figure 44: NRChroma调整介面
3.3.5.2. 参数说明
MatchRatio : 符合比例阀值,愈大愈强,值域0 ~ 31。
UvTh : U/V 杂讯阀值,愈大愈强,值域0 ~ 256。
StrengthByCEdge : 依据color edge控制NRChroma强度,愈大愈强,值域0 ~ 511。
3.3.5.3. 调整步骤
1. 调整MatchRatio和UvTh,可以观测到color noise会散开,过强会有色彩溢出的现象,调整到可接受的范围。
2. 降低StrengthByCEdge,进一步压抑有色彩溢出的部分。
3.3.6. NRChroma_Adv¶
压抑画面中颜色的杂讯
3.3.6.1. 调整介面
于左侧选单点选Denoise,接著在右侧主画面可找到NRChroma_Adv介面。
Figure 45: NRChroma_Adv调整介面
3.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,值越大越强。
3.3.6.3. 调整步骤
-
MotionClip先设定为0。
-
观察静态区,调整MaxStrength, StaticLimitRatio,将NR调整到一个可接受的色躁范围。
-
观察动态区,调整MotionClip,将移动的部分,基于步骤一的NR强度,做加强的动作,若调整MotionClip程度不够强,可回去步骤一做强度的加强。
-
如有需要,可调整MotionColorReduce,针对移动的部分,做饱和度的压抑,这个动作可帮忙NRChroma_Adv更容易的移除色躁。若不希望影像看到移动区的饱和有下降,可调整MotionColorRecover将移动区的饱和再拉回来。
3.4. Sharpness调整¶
3DNR中调整Y.PK LUT主要是为了让动态区静态区有适合自己的锐化强度,至于其他区分条件的锐强度调整则由Sharpness完成,例如不同亮度的锐化强度,与画面中心距离的锐化强度,黑边白边的锐化强度等等。
3.4.1. Sharpness¶
3.4.1.1. 调整介面
于左侧选单点选Sharpness,接著在右侧主画面可找到Sharpness介面。
Figure 46: Sharpnes调整介面
Figure 47: Sharpnes_EX调整介面
3.4.1.2. 参数说明
OverShootGain : 白边的强度调整,值域0~255,越大强度越强。
UnderShootGain : 黑边的强度调整,值域0~255,越大强度越强。
以上两个若是增强太多可能会导致杂讯放大,这时可使用CorLut来抑制OverShootGain和UnderShootGain对于噪点的影响程度,但会损失细节。
Figure 48: 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,中心强度不会变,而中心到角落中间则会内插出相对应的强度。
Figure 49: extureCtrl.CorLUT
Figure 50: SclLUT
Figure 51: EdgeCtrl.OverShootGain & EdgeCtrl.UnderShootGain
Figure 52: CornerReduce
DirTh : 方向性判断的阀值,大于此阀值,使用有方向性滤波器强化边缘,好处是Edge较连续,坏处是小细节的edge被强化,图像不自然。
SharpnessUD : 能增强无方向性的细节纹理,可用于提高发丝、草地等细小纹理清晰度,SharpnessUD[0]可针对高频做处理,SharpnessUD[1]可针对低频做处理。值域0~1023,值越大,Edge越强。
SharpnessD : 可根据边缘方向加强锐化,整体增强图像边缘,但调的太强会导致锯齿状,SharpnessD[0]可针对高频做处理,SharpnessD[1]可针对低频做处理。值域0~1023,值越大,Edge越强。
PreCorUD : 针对无方向性,做coring处理,PreCorUD[0]针对高频,PreCorUD[1]针对低频。值域0~63,值越大,Edge越弱。
PreCorD : 针对方向性,做coring处理,PreCorD[0]针对高频,PreCorD[1]针对低频。值域0~63,值越大,Edge越弱。
PreCorMotGain : 针对移动区域,基于PreCorUD, PreCorD的设定值,做加强coring的动作,值域0~255,值越大,移动区Edge越弱。
LpfEdgeGainUD : 选择无方向性的高频、低频的输出比例控制,以SharpnessUD, PreCorUD, PreCorMotGain的结果,再做EdgeGain的控制。值域0~255,值越大,低频的强度越强,高频的强度越弱,值越小,低频的强度越弱,高频的强度越强。
LpfEdgeGainD : 选择方向性的高频、低频的输出比例控制,以SharpnessD, PreCorD, PreCorMotGain的结果,再做EdgeGain的控制。值域0~255,值越大,低频的强度越强,高频的强度越弱,值越小,低频的强度越弱,高频的强度越强。
WeakDetailEnhance : 针对弱纹理做加强Edge的动作。值域0~255,值越大,Edge越强。
DetailTh : SharpnessUD阀值,可用于降低平坦区的edge。
DetailMotOffset : 根据移动程度调整SharpnessUD
DetailByY : 根据亮度调整SharpnessUD。
OverShootLimit : 参考周围最亮点做调整,设0则edge上限为周围最亮点的Y值,也就是不会overshoot。
UnderShootLimit : 参考周围最暗点做调整,设0则edge下限为周围最暗点的Y值,也就是不会undershoot。
Figure 53: 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,代表不做调整。
3.4.1.3. 调整步骤
若按照前面的建议来调整,一开始的Sharpness初始参数应该维持如下:
Figure 54: 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。
4. WDR¶
Wide Dynamic Range (WDR)用于增宽动态范围,让同一个影像画面中,可以同时分办出亮部和暗部的细节。
4.1. WDR¶
属于local WDR,区域性的加强影像动态范围,调整WDR时建议使用此项。
4.1.1. 调整介面¶
于左侧选单点选WDR即会出现WDR介面。
Figure 55: WDR调整介面
4.1.2. 参数说明¶
BoxNum : 依sensor 长宽比例,提供2~4种size;可依据场景要关注的物体尺度大小进行调整, Box Num 愈多则Box与小,愈适合当画面中关注的物件较小的时候,不可by iso变动。
PreEnhance : 亮区动态区间比例,值越大,亮区分配到的动态区间越大,值越小,暗区分配到的动态区间越大,值域0~6,0为预设值,不可by iso变动,且GammaSyncEn=1时会失效。
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来达到期望的效果。
Figure 56: 预设的16条Global tone mapping (Linear)
Figure 57: 预设的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。
4.1.3. 调整步骤¶
-
建议先直接将WDR enable,观察预设效果是否足够。
-
如强度太强或太弱,可直接简单调整Strength。
-
如较关注的问题为暗处拉亮效果,可再搭配调整DarkToneEnhance。
-
其余再针对各别亮度的强度进一步调整WDRStrByY或Dark Limit / Bright Limit。
4.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来达到期望的效果。
4.2.1. 调整介面¶
于左侧选单点选WDR即会出现WDRCurveAdv介面。
Figure 58: WDRCuve调整介面
4.2.2. 参数说明¶
由Control专案,调整节点数目,用来产生曲线。
4.2.3. 调整步骤¶
调整曲线,来达到适当的亮暗区分布。
5. 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。
5.1. ColorToGray¶
当IR-Cut filter打开颜色会变异常,因此通常会将画面由彩色转为灰阶。
5.1.1. 调整介面¶
于左侧选单点选ColorToGray即会出现ColorToGray介面。
Figure 59: ColorToGray调整介面
5.1.2. 参数说明¶
Enable :彩转灰功能开关。
6. RGBIR SENSOR TUNING¶
RGBIR senor 是一种特殊的sensor 型态,相较于一般的RGB Bayer sensor 多出IR pixel 用于感应红外光。而结构上少掉一般的IR Cut 而是搭配Dual Band filter在后端用软体来进行减IR的动作。所以如何设定减IR的比例来使影像达到和搭配IR Cut 时相同的正常色彩即是本段所要讨论的课题。
6.1. RGBIR Ratio调整¶
6.1.1. 调整介面¶
于左侧选单点选RGBIR即会出现RGBIR介面。
Figure 60: RGBIR调整介面
6.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。
6.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。
7. AE INTRODUCTION¶
AE的目的在于透过收到的统计值将画面整体亮度控制在一个理想的状态。
7.1. AE调整¶
7.1.1. 调整介面¶
于左侧选单点选AE即会出现AE调整介面。
7.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时防过曝机制作用的强度,数字愈大愈暗。
-
<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。
8. AWB INTRODUCTION¶
由于sensor 上R、G、B pixel的感光特性不同,因此在不同光源下看到的灰阶会有色偏,AWB主要的目的就是希望自动找出一组Rgain、Bgain来做补偿,让画面中灰阶的地方R、G、B值尽量接近。
8.1. AWB调整¶
AWB的统计值是将整张画面切成128×90个等分,每个等分都具有代表的R、G、B值,预设横轴有做取样来减少运算量,因此实际只有64×90个统计值。如果想查看某个场景的统计资讯,可以开启AWB Analyzer外挂程式,点击Update可更新为当时的统计资讯,图表横周轴代表(R/G)×100,纵轴代表(B/G)×100,因此每个区块都能以本身的R、G、B值算出一组座标,并将落点以绿点秀在窗口上,如Figure 61所示。
Figure 61: 利用AWB Analyzer分析统计资讯
8.1.1. 调整介面¶
于左侧选单点选AWB即会出现AWB调整介面。
Figure 62: AWB基本调整介面
Figure 63: AWB Advance Mode调整介面
Figure 64: AWB混光色偏校正设定介面
8.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: AWB algorithm type selection. There are four types to choose from:
1. GrayWorld: Use all AWB statistics to calculate the WB gain.
2. Normal: Use the AWB statistics located at the first two or three CT blocks having the highest count to calculate the WB gain.
3. Balance: Use the AWB satatistics located at all effective CT blocks to calculate the WB gain.
4. Focus: WB gain calculation will focus on single color temperature.
eAdvType: WBAttrEx function enable/disable. WBAttrEx functions only when Advance is chosen. The default is WBAttrEx off.
RG/BG Strength : R与B的一个global gain,会在最后算出来的R、B gain再乘上一个gain,值域0~255, 128为1倍。
MaxRgain/MaxBgain : 高色温R、B gain限制,值域0~8191。
MinRgain/MinBgain : 低色温R、B gain限制,值域0~8191。
LvWeight : 各环境亮度下色温权重设定,权重越大,计算R、B gain时该色温所占的比例越高, 值域1~255。
PreferR/Bratio : 各环境亮度下R、B ratio设定,此ratio会乘在目标R、B gain里,值域1~255。
u2WpWeight : 判断成为参考白点的权重,权重越高越容易被选为参考白点,值域1~400,预设为100。
Figure 65: bWpWeightEnable开关效果差异 (左:开 / 右:关)
WeightWin : 将画面区分为9x9个区域,可以分别给定每个区域的权重,权重越大白平衡越会偏向将该区域做灰。值域0~16。权重大小是相对的不是绝对的,也就是全部设1与全部设16基本上是相同的。当镜头是固定的,而且很明确知道画面中哪个区域是你希望拿来做白平衡或不希望做白平衡的,就可以利用此功能做调整。
-
<WBAttrEx>
WBAttrEx系列参数需要在eAlgType设为Advance时才有作用,主要是让使用者可另外自订几个特殊框,并选择是要加入还是排除落入这个特殊框的统计值,共有4组设定可供使用。
ExtraLtEnable : 特殊色温框功能开关,需设为Enable特殊色温框才有作用。
sLtInfo.WR/Bgain : 特殊色温框中心座标所代表的R、B gain,值域0 ~ 8191,换算方式是开启AWB Analyzer分析统计值落点,将指标移到欲选择区域的中心查看座标,假设Rx = 40、By = 60,先将座标除以100 (0.4, 0.6),再取倒数(1/0.4, 1/0.6),最后再乘上gain base 1024 (WRgain = 2560, WBgain = 1706)即完成特殊框中心位置转换。
sLtInfo.AreaSize : 特殊框的宽高,值域1 ~ 32,当设32时代表从中心往上下左右延伸16的范围。
sLtInfo.bExclude : 特殊框模式选择,选择Include代表落入特殊框的统计值也会被拿来参考,选择Exclude代表落入特殊框的统计值将会被忽略。
-
<WBMultiLSAttr>
此功能需要eAlgType选择Focus时才有作用。此时AWB的R、B gain会尽量以参考白点为主,此时若遇到混光场景,离参考白点远的一方色偏会相当明显,若希望色偏减弱一些则可开启此功能,但副作用是会让其他颜色色相有些改变。下面是开启此功能前后差异比较图。
Figure 66: 开启WBMultiLSAttr功能前后差异比较 (左:关 / 右:开)
Enable : 混光色偏校正功能开关。开启时色偏区域可获得改善,但AWB做灰区域颜色会有些色偏。
Sensitive : 混光判断敏感度调整,值域1~10,值越大容易将场景判断为混光场景。
CaliStrength : 混光色偏补正强度控制,值域0~100,100是1倍,也就是CaliCcm原始强度。
CaliCcm_LowCT : 混光时, 当AWB选择将高色温做灰, 则会选择此CCM来减少低色温区偏色严重的问题。目前只开放第一和第三横列可调整。第二横列调整了不会有作用。此CCM强度主要套用在两混光光源分别是StartInd和EndInd时,实际套用的强度会根据两光源距离与StartInd和EndInd距离的比例来决定。
CaliCcm_HighCT : 混光时, 当AWB选择将低色温做灰, 则会选择此CCM来减少高色温区偏色严重的问题。目前只开放第一和第三横列可调整。第二横列调整了不会有作用。第二横列调整了不会有作用。此CCM强度主要套用在两混光光源分别是StartInd和EndInd时,实际套用的强度会根据两光源距离与StartInd和EndInd距离的比例来决定。
Figure 67: CaliCcm_LowCT介面
调整CaliCcm建议,以CaliCcm_LowCT为例:
-
将灯箱开至D65(若有更接近StartIdx的灯源也可以用该灯源), 让AWB将其作灰。
-
将AWB切至PAUSE。
-
将灯箱切至F(若有更接近EndIdx的灯源也可以用该灯源),调整CaliCcm_LowCT,调整时还要时常切回之前做灰的灯源看看正常颜色有没有偏的太离谱,调整到两边都可接受即完成。
-
-
<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)
8.2. AWBInfo¶
此介面可秀出当下AWB相关资讯,点选ReadPage可即时更新。
Figure 68: 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色温框之间。
Figure 69: MultiLS_FirstLSInd & MultiLS_SecondLSInd示意图
9. IQTool介面连线功能操作¶
9.1. IQTool介面连线功能操作步骤¶
-
设定EVB网路功能,于终端机输入下列指令
#ifconfig eth0 hw ether 00:xx:xx:00:00:01 #ifconfig eth0 up #udhcpc #mixer -n 1 -q
其中-q表示开启 iqserver,IQTool才可以连线。
-
选择产品类型 1. IP Camera、2. Car Camera
-
输入 EVB 的IP 位址
-
点选Connection图示
()
即可以连线,图形变为
()
表示成功连线,即可以开始使用IQTool调整影像的
参数;再点选
()
符号即会断线,图示变回
()
设定步骤如下列Figure 70所示。
Figure 70: IQTool介面连线设定
10. IQTOOL介面功能说明¶
10.1. IQTool介面¶
IQTool介面的左侧红色虚线框内是功能树状结构,以Figure 71为例,每一个树状节点都是一个API集合。点选左方节点后会动态产生右方页面,点选左方AE节点后在右方动态产生该节点下的API:ManualExposure,可在右方介面中对API进行实际调值操作。
Figure 71: IQTool功能树状图
10.2. 参数调校¶
不同的API有不同种类的调参数功能,像是填入数值、下拉选单、取值、表单建立,根据各个API的初始设定,有些可以Read和Write,有些只能Read。
调校参数类型:
-
数值:可透过以下三种方式修改值
-
点选上下箭头调值
-
直接在栏框内填值
-
左右移动卷轴调整值
数数值型别会设定范围,根据不同的API初始设定Min以及Max值。以API为ManualExposure的情况下为例,FNx10最小值是10最大值是220。如果填小于10则会自动跳回10,如果填大于220则会自动跳回220,如Figure 72。
Figure 72: 数值功能示意图
-
-
下拉选单:点选箭头后会出现下拉选单,即可点选不同的功能,以API AE - Flicker为例(如Figure 73),Enable下拉选单可以选择Disable、60Hz或是50Hz。
Figure 73: 下拉选单功能示意图
-
读值:栏框内的值read only,不可以write,以API AWBInfo为例(如Figure 74),可以读取WB_Rgain栏框内的值2130,但不可以write。
Figure 74: 读值显示于栏位示意图
-
表格:页面上有一个按钮,如Figure 75所看到的Edit Table按钮。
Figure 75: 点选Edit Table按钮可以弹出表格视窗介面
点选按钮以后,弹出表格视窗,如Figure 76视窗内有表格,点选Read按钮以后可以读取板子内的值,点选Write按钮,可将值写入板子。
Figure 76: 表格视窗介面示意图
若是表格Read only,API设定不允许写入板子则只会显示出Read button(如Figure77)。
Figure 77: Read only表格视窗示意图
10.3. 读写数据¶
可以读写所有API集合的资料,也可以读写目前页面所有的API资料,如Figure 78目前页面API为AE时,此时如果按下右上方的Read Page则会读取目前AE页面的所有data,如果按下右上方的Write Page,则会写入data到AE页面里。但是如果按下上方R ALL键则会读取所有API集合不只是AE的所有data,然后按下W ALL键则会写入data到所有API页面里,除了API集合为Gamma/Calibration的情况,其余的API皆会Auto Write data,Gamma必须自己手动点选Write Page 才会存入资料。小图示的详细说明参阅Table 1。
Figure 78: 读写资料介面示意图
Table 1: 读写资料图示详细说明
图示 功能 功能说明
读取所有API集合页面的资料 按下R ALL按钮,即可读取所有API集合页面的资料。 写入所有的资料到每个API集合页面 按下W ALL按钮,即可写入所有API集合页面 (不包括Calibration)的资料。 读取目前页面资料 按下Read Page按钮,即可读取目前页面所有的API资料。 将目前页面的资料写入到API 按下Write Page按钮,即可写入资料到目前页面所有的API。 即时的将页面的资料写入到API 选中时,即开启AutoWrite功能。
10.4. 保存Raw/YUV/JPG格式的图像¶
连接上板子以后,可以透过点选红色虚线标注的按钮,获取撷取图像的四种格式,如Figure 79。
Figure 79: 保存图像按钮介面示意图
开始抓图像后会产生一个新的视窗显示进度,抓取成公会在下方显示讯息,如Figure 80。下方会显示图像保存路径,预设保存在程式所在的目录下的./Image中。
Figure 80: 保存图像成功示意图
10.5. 新建、载入、保存页面参数¶
使用IQ Tool调整的过程中可以随时保存页面参数到指定路径中,也可以载入已经保存的参数档,如Figure 81。
Figure 81: 新建、载入、保存页面参数示意图
-
保存参数有两种格式,分别是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。
10.6. Gamma调值¶
-
点选Gamma树状节点,即在右方产生Gamma调值介面,如Figure 82。
Figure 82: Gamma调值介面
-
Gamma 功能介面说明,参考Figure 83。
Figure 83: Gamma功能介面说明
Figure 84: 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档。如Figure 84 - 档案设定格式为: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可以设定曲线的控制点数量。 |
-
Gamma曲线的调整方式:初始化在座标上可以看到RGB三条曲线。勾选Gamma Red、Gamma Green、Gamma Blue后可以利用滑鼠控制十字符号移动点击控制曲线,如果点击的地方刚好三条曲线交叉重叠,优先顺序为Red、Green、Blue,先以R曲线为例可以按滑鼠左键新增控制点,右键移除控制点,移动控制点可以改变曲线,控制点旁也会有两个辅助点,用来微调贝兹曲线。R、G、B各有有256个pixel值,参考Figure 85。
Figure 85: 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,按钮如图Figure 86。
Figure 86: Gamma Read and Write item
-
10.7. Shading¶
10.7.1. 调整介面¶
点选Shading树状节点,即在右方产生ALSC介面,如Figure 87所示。
Figure 87: Shading介面
10.7.2. 参数说明¶
Enable : ALSC API功能开关,0表示关闭、1表示启用,值域0 ~ 1。
GridX : shading table的X方向大小,此平台预设为27,值域1 ~ 27。
GridY : shading table的Y方向大小,此平台预设为17,值域1 ~ 17。
CCTThr : 环境色温节点设定,此平台最多支援3组Shading校正,注意index小到大需要按照色温低到高的顺序填入,值域1 ~ 3。
DeltaMode : 预设16种模式,纵轴表示每个模式、横轴表示X/Y方向每个格子的间格大小,在此平台为X=26, Y=16格间距,预设模式内的值越大则周围方格越小,值域0 ~ 15。
DeltaModeAvdEn : 选择启动进阶模式开关,0表示关闭、1表示启用,值域0 ~ 1。当GridX/Y使用非此平台预设27x17时,必须进入此模式进行非等距方格设定。。
DeltaLutX : X轴间距,每个索引值(index)表示为一个block size (index = block size / 16),索引值只限填1,2,4,8,16,未使用则设为0,最多支援至72组,在此平台为26格间距。
DeltaLutY : Y轴间距,每个索引值(index)表示为一个block size (index = block size / 16),索引值只限填1,2,4,8,16,未使用则设为0,最多支援至72组,在此平台为16格间距。
R/G/B Gain Table : 点选R/G/B任意一个Table,会产生一个新的介面,在此平台上将画面分成一个27x17的矩阵,每个方格内的值表示这个位置的R/G/B分量需要乘上的权值,值域0 ~ 4095,如 Figure 88所示。
Figure 88: Shading 27×17 Table介面
10.8. Plugin¶
IQTool提供了AF、AWB、CCM、GAMMA、ALSC五种外挂程式以辅助IQ调试,如下Figure 89所示。
Figure 89: Plugin下拉式选单介面
10.8.1. AF Analyzer¶
AF Analyzer为自动对焦校正分析外挂,主要用频率回应数值转换滤波器系数。
10.8.1.1. 调整介面
Figure 90: AF Analyzer 介面(Frequency Mode)
Figure 91:AF Analyzer 介面(NonFrequency Mode)
10.8.1.2. 参数说明
-
步骤 (Step)
- Step1 :输入AF参数
˙Frequency Mode:输入截止频率产生频率响应
˙NonFrequency Mode: 输入AF Fliter系数产生频率响应
-
Step2 :输出AF Filter系数
-
Step3 :输出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)
-
10.8.2. AWB Analyzer Combo¶
Awb Analyzer Combo为白平衡校正分析外挂,主要包含两个部分,分别是Statistics Analyzer与Raw Analyzer。其中Statistics Analyzer,使用者可利用它来调整色温曲线范围,而Raw Analyzer主要是让使用者能了解画面中各个位置的Awb统计值落点。
10.8.2.1. 调整介面
Figure 92: AWB Analyzer Combo介面
10.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。
10.8.3. CCM Analyzer¶
此外挂程式工具使用于色彩校正。
10.8.3.1. 调整介面
Calculate CCM页面用于CCM校正,启动时会从Camera读取相关参考值,因此不能离线调试。另两个Page FineTuneMatrix属于微调功能,如Figure 93。
Figure 93: CCM Analyzer介面
10.8.3.2. 使用方式及参数说明
-
使用方法
点击Source Image中的Set来设定 Raw Data的信息,点击open source打开保存的raw image,开启后会出现一个视窗显示出所选择的raw image,直接用滑鼠在画面上拖曳让各色块都有正确被框选到,完成后点OK,Open Target打开标准的color checker图片,按上述步骤框选color checker。
Figure 94: Load Raw Image视窗介面
-
参数设定
-
Color Weight:
可让使用者调整各色块的权重,权重越大者fitting的结果会越准确,预设都设为100。
Figure 95: Color Weight设定介面
-
-
Component Constraint:
使用者可根据需求针对某些成分做限制,例如设定0.5,则该成分fitting后的结果只能在-0.5到0.5之间。
Figure 96: Component Constraint设定介面
-
设定完成后点选calculate按钮,在视窗右侧会显示最终fit出的结果。
Figure 97: CCM介面
-
重复上述步骤fit出剩余色温的color matrix。
10.8.4. Gamma Fitting Analyzer¶
此外挂程式工具使用于Gamma Fitting校正。
10.8.4.1. 调整介面
CDF_Orig :open source的CDF曲线。
CDF_Ref :open target的CDF曲线。
FitGMA :Fitting Gamma曲线。
Figure 98: Gamma Fitting Analyzer介面
10.8.4.2. 使用方式及参数说明
-
使用方法
-
读取影像的Gamma 曲线,点击Options的Raw Setting初始设定。
Figure 99:开启Raw Setting介面
-
点击open source打开保存的raw image
-
点击open target打开标准的OECF Chart图片
-
按左键分别选取ROI,自动产生相对应的histogram
-
选择Gamma曲线类型,共有两种曲线计算方式,建议选择Exponential
-
Spline曲线
-
Exponential曲线
-
-
点击Match GMA按钮,产生Gamma曲线
-
点击Save GMA按钮,保存计算完的Gamma参数值。
10.8.5. ALSC Analyzer¶
此外挂程式工具使用于shading校正,功能和calibration tool相同。
10.8.5.1. 调整介面
如Figure 100。
Figure 100: ALSC analyzer介面
10.8.5.2. 使用方式及参数说明
-
参数设定
- 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。设定方式可参考『Figure 106』及『Figure 107: 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。
-
Auto Index:Auto mode index,会依据此index把色温和shading table填到api中,最多支援3组色温,值域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。
-
Apply:将shading table下到api中。
-
Debug:可在GenTable和Apply时,看到debug log。
-
使用方法
-
点击Set Raw Format来设定raw image的信息,点击Open Raw Image 打开raw image。
可以勾选Apply Demosaicing来看RGB image,这边只是简单的Demosiac功能,和实际的不同。
-
设定产生shading table的参数,包含Ratio Table, OBC, GirdX, GridY, Set Delta Format,再点击GenTable,即产生shading table。
可以勾选Show Alsc Table来看shading table。
-
设定下到api的参数,包含CT, AutoIndex,再点击Apply,即生效。
请务必到ALSC介面点Read,即可看到和analyzer相同的参数,如果没有做这个步骤,则shading table 不会保存在api中。
11. CALIBRATION TOOL¶
支援OBC、ALSC、LSC以及AWB产线校正,需额外使用offline的calibration tool。[此平台未支援SDC功能]
11.1. 校正流程¶
在各情境下抓Raw,设定参数(修改*.ini),产生*.data,并将*.data烧录进去。
11.1.1. 抓Raw方式¶
11.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] :后面章节详述介绍。
11.1.3. 产生 *.data¶
Calibration Step:
-
在calibration\SampleCode\Release\image放入用来校正的Raw。
-
修改calibration\SampleCode\Release\CalibrationInitialParameter.ini。
Figure 101: CalibrationInitialParameter.ini - RAW_INFO参数设定说明
-
执行calibration\SampleCode\Release\CalibrationRelease.exe。
-
校正程序一开始会先检查执行路径目录,是否存在data and image资料夹 (自动产生)
Figure 102: 检查calibration所需的data资料夹是否存在
-
校正程式成功后,可在calibration\SampleCode\Release\data\cfg取得*.data。
Figure 103: 产生calibration所需的*.data档案
11.1.4. 烧录 *.data¶
将*.data 放到DownloadTool_XXX\FactRes\,重新烧进去即可。
备注:请不要更改*.data档名。
11.2. OBC调整¶
校正sensor的black level。
11.2.1. 校正环境¶
校正环境为遮黑校正,须避免任何可能光源进入。遮黑时先观察串流画面是否有异常,无异常则进行下一步,若发现异常则暂停校正并立即反映,待问题解决再作后续动作。
Figure 104: 遮黑画面异常范例
11.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。
11.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填12,产生dump_obc_data.txt,再手动填入到IQtool中OBC介面的blacklevel_1,单位为12 bits。
-
11.2.4. 注意事项¶
假设遇到高倍gain与低倍gain的OB差异很大,需要为不同ISO index设定不同OB时,请直接利用AE手动设定各ISO index gain值遮黑拍Raw,产生dump_obc_data.txt,再手动填入到IQtool中OBC介面的blacklevel的Auto Mode 16个节点中。
11.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内插。
11.3.1. 校正环境¶
均匀光源,最严谨的方法是使用Macbeth标准灯箱搭配diffuser来做校正,若没有diffuser就只能对灯箱中的灰墙,尽可能让光均匀去做校正。
调整前务必确保OB和AWB色温曲线范围已校正且确实套用,用RGB sensor要确认IR cut有确实盖上。
Figure 105: LSC / ALSC校正环境架设范例
11.3.2. 参数说明¶
TargetIndex : 选择目前要校正第几组table,最多支援3组,校正顺序不需依照0到2的顺序,但需要确保0到2的环境色温要由低到高即可。
CCTNumber : 选择总共要校正几组色温表资料,预设是校正3组色温表,值域1 ~ 3。
GridX/Y : Shading Table的大小,此平台预设为27x17。
GridNumMax : Shading Table的最大table size,为一个定值,在此平台为27x17=459。
Segment_Delta_Str_Mode: 预设16种模式,纵轴表示每个模式、横轴表示X/Y方向每个格子间距的大小,在此平台为X = 26, Y = 16格间距,预设模式内的值越大则周围方格越小,值域0 ~ 15。
Figure 106: Delta_LUT_X预设16种模式分布
Figure 107: 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格间距。
11.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。(详细请参考文档SStar_pudding/_ISP_软体发展参考)
11.3.4. 调整介面¶
于左侧选单点选Shading即会出现ALSC_CTRL介面。
Figure 108: ALSC_CTRL调整介面
11.3.5. 参数说明¶
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值。
11.3.6. 调整步骤¶
-
在不同BV下调整Ratio,通常在低BV的情况下会降Ratio,可以减轻因ALSC造成的外圈较脏。
-
R/G/B Ratio By CCT预设为1x,若有需求再调整即可。
11.3.7. 注意事项¶
- ALSC R/G/B Gain table 同时存在iqfile、alsc_cali.data,但api bin只能读写,并不会储存到api bin (因为size过大),因此每次开机都需要load alsc_cali.data。
11.4. LSC调整¶
-------
LSC校正会产生出R、G、B各一个32的table,针对画面不同区域给予不同的R、G、B gain,因此可同时改善Y shading,最多支援3 种色温,不支援table内插。
11.4.1. 校正环境¶
同ALSC。
11.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。
11.4.3. 校正步骤¶
-
同ALSC。
-
产生lsc_cali.data,亦可产生dump_lsc_data.txt或dump_lsc_result.raw看一下校正结果,再load lsc_cali.data进去,若无校正LSC时,此步骤可省略跳至下一项。
11.4.4. 调整介面¶
于左侧选单点选Shading即会出现LSC和LSC_CTRL介面。
Figure 109: LSC和LSC_CTRL调整介面
11.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值。
11.4.6. 调整步骤¶
-
在不同BV下调整Ratio,通常在低BV的情况下会降Ratio,可以减轻因LSC造成的外圈较脏。
-
R/G/B Ratio By CCT预设为1x,若有需求再调整即可。
-
若有需求,可以直接调整R/G/B Gain table。
11.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。
11.5. AWB调整¶
用于产线校正,用来补偿各机台与Golden sample间的白平衡统计值差异。
11.5.1. 校正环境¶
灯箱中放置灰卡,让灰卡占满画面拍摄raw data。
11.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。
11.5.3. 校正步骤¶
-
分析多台机台AWB统计值落点,从中挑选出一台落点接近平均值的来当作golden sample。
-
校正时可选择使用一到两种色温灯源去做校正。
- 假设只用一种灯源做校正,校正流程如下:
-
用golden sample与unit sample 拍摄raw data,并放至calibration tool的image资料夹中。
-
开启CalibrationInitialParameter.ini填入正确[RAW INFO]。(参考11.1.2)
-
Golden sample raw data路径及格式。
-
in/out_data_precision设16。
-
calibrarion_select设2。
-
load_calibration_data设0。
-
-
设定CalibrationInitialParameter.ini中[AWB]校正参数。(参考11.5.2)
-
CaliState设0。
-
CaliNumber设1。
-
HighCT设为校正灯源的色温值。
-
OB值设定,值域0 ~ 65535。
-
-
执行CalibrationRelease.exe在\data\cfg产生存有golden sample校正值的awb_cali.data,必须保存好此data直到校正结束。
-
开启CalibrationInitialParameter.ini填入正确[RAW INFO]。(参考11.1.2)
-
Unit sample raw data路径及格式。
-
in/out_data_precision设16。
-
calibrarion_select设2。
-
load_calibration_data设1来保存之前校完的资料。
-
-
设定CalibrationInitialParameter.ini中[AWB]校正参数。(参考11.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。(详细请参考文档SStar_pudding/_ISP_软体发展参考)
- 校正如果使用两种灯源做校正,校正流程如下:
-
用golden sample与unit sample 拍摄两种色温的raw data,并放至calibration tool的image资料夹中。
-
开启CalibrationInitialParameter.ini填入正确[RAW INFO]。(参考11.1.2)
-
Golden sample 高色温raw data路径及格式。
-
in/out_data_precision设16。
-
calibrarion_select设2。
-
load_calibration_data设0。
-
-
设定CalibrationInitialParameter.ini中[AWB]校正参数。(参考11.5.2)
-
CaliState设0。
-
CaliNumber设2。
-
HighCT设为校正灯源的色温值。
-
OB值设定,值域0 ~ 65535。
-
-
执行CalibrationRelease.exe在\data\cfg产生存有golden sample高色温校正值的awb_cali.data,必须保存好此data直到校正结束。
-
开启CalibrationInitialParameter.ini填入正确[RAW INFO]。(参考11.1.2)
-
Golden sample 低色温raw data路径及格式。
-
in/out_data_precision设16。
-
calibrarion_select设2。
-
load_calibration_data设1。
-
-
设定CalibrationInitialParameter.ini中[AWB]校正参数。(参考11.5.2)
-
CaliState设1。
-
CaliNumber设2。
-
LowCT设为校正灯源的色温值。
-
OB值设定,值域0 ~ 65535。
-
-
执行CalibrationRelease.exe在\data\cfg产生存有golden sample高低色温校正值的awb_cali.data,必须保存好此data直到校正结束。
-
开启CalibrationInitialParameter.ini填入正确[RAW INFO]。(参考11.1.2)
-
Unit sample 高色温raw data路径及格式。
-
in/out_data_precision设16。
-
calibrarion_select设2。
-
load_calibration_data设1来保存之前校完的资料。
-
-
设定CalibrationInitialParameter.ini中[AWB]校正参数。(参考11.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]。(参考11.1.2)
-
Unit sample 低色温raw data路径及格式。
-
in/out_data_precision设16。
-
calibrarion_select设2。
-
load_calibration_data设1来保存之前校完的资料。
-
-
设定CalibrationInitialParameter.ini中[AWB]校正参数。(参考11.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。(详细请参考文档SStar_PUDDING_ISP_软体发展参考)
12. 与MACARON差异列表¶
模组名称 | 差异功能 | 差异参数 (删除) | 差异参数 (新增) |
---|---|---|---|
HDR | 新增鬼影补偿 | u16SensorExpRatio | u16NoiseLevel[16] |
bDynRatioEn | u16MotionTh | ||
u8CRefSel | u16MotionAdjLut[7] | ||
HDR Ex | 新增鬼影补偿 | 新增API | |
3DNR | 新增可降低移动躁声的扰动 | u16MdThd | u8MdThd |
u8TfLut[16] | u16TfLut[16] | ||
u8YSfStr | u8YSfBlendOffset | ||
3DNR EX | 新增紫边区域躁点处理 | 新增API | |
优化高亮度区的粉红色拖影 | |||
Crosstalk | 新增根据亮度调整强度 | u8StrengthV2 | u8Strength |
u16ThresholdV2 | u8Threshold | ||
u16ThresholdOffsetV2 | u16Offset | ||
u8StrengthByY[15] | |||
NRDeSpike | 新增可根据diff与亮度调整DPC强度 | u16DiffGainCenterNeighbor | u8DiffGainCenterNeighbor |
u16DiffThdCornerCross | u8DiffThdCornerCross | ||
u16BlendLut[5] | |||
u8StrengthByY[15] | |||
NRLuma | 优化前级YNR处理 | bLumaAdjEn | u8Strength |
u8LumaX[9] | u8GMaskSel | ||
u16LumaStrByY[10] | u16SpfBlendLut[2] | ||
u8Wei[20] | |||
NRLuma Adv | 新增后级YNR处理 | 新增API | |
NRChroma Adv | 新增前级CNR处理 | 新增API | |
Sharpness | 优化Edge的高频区域 | stEdgeCtrl | u16EdgeKillLUT |
stTextureCtrl | u16SharpnessUD[2] | ||
u8EdgeKillLUT | u16SharpnessD[2] | ||
bDirEn | u8PreCorUD[2] | ||
u16SharpnessUD | u8PreCorD[2] | ||
u16SharpnessD | u8PreCorMotGain | ||
u8LpfEdgeGainUD | |||
u8LpfEdgeGainD | |||
u8WeakDetailEnhance | |||
u8DetailMotOffset | |||
u8MotGain[16] | |||
Sharpness Ex | 优化Edge的高频区域 | 新增API | |
PFC | 新增去紫边功能 | 新增API | |
PFC Ex | 新增去紫边功能 | 新增API |