IQ Q&A


Q1:isp数据流走向是怎样的?

【Macaron&Ispahan&Pudding&Tiramisu】

通常bayer pattern->RGB->YUV,sensor rawdata输入isp,isp吐出yuv data。

Q2:isp调试基本流程是怎样的?

【Macaron&Ispahan&Pudding&Tiramisu】

通常可以从以下四个维度:

第一维度,亮度,是人眼最敏感的图像感觉,合适的亮度对后面的调试帮助很大,亮度维度涉及的的模块基本就是AE。WDR、Gamma、shading也影响整体画面亮度。

第二维度,色彩,建议在AE确定后进行色彩调试,过高过低的亮度直接影响AWB和CCM的标定。这个维度通常涉及AWB,OBC,ColorCorrection,Saturation等。

第三维度,对比度维度,即说的通透性,对比度高,调整这个模块来让画面接近人的感官,通常主要是Gamma,GammaStyle,WDR等。

第四维度,细节与噪声维度,BayerCompensation,BayerDenoise,Denoise, sharpness等,前面维度的调试都会带出噪声,所以调整这个维度通常要去权衡前3个维度,也是涉及面最广的维度。

Q3:画面亮度不合适如何调试?

【Macaron&Ispahan&Pudding&Tiramisu】

查看AEInfo信息,点击Read Page按钮刷新AEInfo,得到当前画面的BV值,再进入AE->AETarget->Target BV得到当下环境所使用的Target Offset挡位,调节对应挡位的Target offset就可以调整AEtarget,数值越大,目标亮度越大。AEtarget值域为0~2000。

Q4:画面收敛频繁或者环境变化很大画面不收敛是什么导致的?

【Macaron&Ispahan&Pudding&Tiramisu】

通常来说是AE收敛区间调节过大或这过小导致的,AE->AEconverge模块的ConvThdIn和ConvThdOut需要调节到合适的值。AE收敛停止的条件是画面亮度达到target-ConvThdIn到target+ConvThdIn,而AE开始收敛的条件是画面亮度达到target-ConvThdOut到target+ConvThdOut。

Q5:画面AE收敛震荡,稳定不下来,是什么原因?

【Macaron&Ispahan&Pudding&Tiramisu】

AE->AEconverge模块的ConvThdIn要小于ConvThdOut,如果ConvThdOut大于ConvThdIn,则会导致收敛频繁收敛,稳定不下来的情况。

Q6:如何调节AE收敛速度(步长),收敛慢或者收敛过冲导致闪烁?

【Macaron&Ispahan&Pudding&Tiramisu】

AE->AEConverge模块,首先确认合适的ConvThdIn和ConvThdOut。

假如ConvSpeedX为{100,470,470,2000},ConvSpeedY为{900,200,200,800},如上图,通常ConvSpeedX使用默认即可。

计算方法:

暗到亮收敛,目前亮度100, 如果目标亮度是470, 那么收敛速度查表为900,下次收敛的亮度为425,计算方法:100 + (470 - 100) * 900 / 1024 = 425。

亮到暗收敛,目前亮度2000, 如果目标亮度是470, 那么收敛速度查表为800,下次收敛的亮度为804,计算方法:2000 - (2000 - 470) * 800 / 1024 = 804。

通常调节ConvSpeedY的第一和第四个参数,即可控制收敛步长。

Q7:画面亮度过曝,该如何调节?

【Macaron&Ispahan&Pudding&Tiramisu】

首先,先在Enable Control模块,把Gamma模块Disable,然后再观察画面,如果画面过曝减轻明显,那很可能是gamma强度调试太大导致,调整gamma曲线即可。但是如果画面还是过曝,进入AE模块,调低对应的Target Offset即可。

Q8:画面出现滚动的水波纹,该如何调整?

【Macaron&Ispahan&Pudding&Tiramisu】

水波纹形成的原因和sensor 的rolling曝光方式密切相关,如图: 50Hz光源下,shutter大于10ms的情况,每行的能量积分不同,出现明暗变化的情况,切每帧的起始高度不同,导致画面播放时明暗变化的滚动现象。


AE->Flicker和AE->FlickerEx可修复此问题,AE->Flicker选择对应频率即可,AE->FlickerEx选择auto即可完成自动选择。原理如上图,让shutter满足1/100s的整数倍,则不会出现flick。同理60hz,满足1/120s的整数倍。即最大曝光时间为(1/灯光频率/2)的整数倍即可。

如果shutter低于1/100s(1/120s),上诉两个模块都会无效,如下图说明:


此时需要设置对应sensor帧率,50hz设置25fps,60hz设置30fps,让每帧的起点同一高度,这样画面有明暗变化,但是无滚动现象。

Q9:为什么夜视(低照度补光)情况下,相机的收光一般怎么调整?

【Macaron&Ispahan&Pudding&Tiramisu】

AE->AEWinWeight调整对应的曝光权重,白天彩色Weighting PAGEle ID通常选择Average,夜视黑白建议选择Center模式,如果还需要更强的收光比如看清车牌,可选择spot模式,也可以根据需要调整Weighting的16x16具体数值。

Q10:曝光表如何设置?

【Macaron&Ispahan&Pudding&Tiramisu】

AE->AEPlainLongTb1是设置曝光表模块,可以通过此模块控制曝光优先级,曝光优先还是增益优先,sensor gain优先还是isp gain优先。如下,NumOfLongExpoTbIEntry为6的情况:

FN:F num,光圈值x10,填上对应的光圈值。

US:曝光时间,单位为us。

TG:total gain,总增益,x1024。

SG:sensor gain,sensor增益,x1024。

TG = SG * ispgain。

上面曝光表的意思为:光圈为1.8,从Index 0可以看出,US min为300us,TG min为1x,SG min为1x。

Index0到Index1,只有us从300增加到了14000,表明此时曝光策略为曝光优先。

Index1到Index2,TG和SG从1024增加到了2048,可计算出isp gain为1x,表明此时为增益优先,且使用SG。

Index2到Index3,表明曝光优先。

Index3到Index4,表明增益优先,使用SG。

Index4到Index5,表明增益优先,增益使用isp gain,ispgain可以使用到2x。

Table表里会去限制min shutter和max shutter,min total gain和max total gain,min sensor gain和max sensor gain,min isp gain 和max isp gain,所以AE->ExposureLimit里面的设置要对应,否则会影响到table表。

Q11:高光抑制背光补偿如何设置?

【Macaron&Ispahan&Pudding&Tiramisu】

AE->ExposureStrategy或者AE->ExposureStrategyEx,AE->ExposureStrategyEx开启AE->ExposureStrategy会失效。可自行设计防过曝或过暗策略,AE会针对此策略去动态调整SceneTarget。

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

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

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

Q12:画面亮度收敛震荡或者闪烁,如何排查问题点?

【Macaron&Ispahan&Pudding&Tiramisu】

可以从以下几个方面去分析查找问题:

  1. AE收敛速度是否调节过快导致过冲。可设置Manual AE来判断是否和AE有关系。
  2. WDR->Auto.GlobalDarkToneEnhance曲线选择是否跨度太大,这里的tonemapping曲线不会做插值,切曲线会看到明显的跳变。可以关闭WDR来判断是否和WDR有关系。
  3. sensor端gain和shutter的生效帧是否为同一帧,不同帧也会导致收敛闪烁。

Q13:HDR如何设置曝光比?

【Macaron&Ispahan&Pudding&Tiramisu】

首先确定使用的曝光比,填入HDR->AEHdrRatio,hdr ratio是by tatal gain,再确认sensor短曝帧最小曝光时间,设置好HDR->AEPlainShortTb1,再根据曝光比设置AE->AEPlainLongTb1,shutter需要满足曝光比,注意long shutter + short shutter < 1/fps,否则可能会出现曝光打不满的情况。

Q14:HDR出现局部工频干扰现象,是什么原因导致的,有什么办法优化吗?

【Macaron&Ispahan&Pudding&Tiramisu】

HDR 模式下由于短曝shutter 往往受限无法达到de-flicker 的最短物理限制,故短曝区在阴极射线管光源下常无可避免会出现Flicker 问题,此时建议只能调整fps 到与电源频率成倍数的fps 张数来让banding 问题定住而不滚动(ex: 60hz/30fps, 50hz/25fps),目前尚无法根除这个问题。

Q15:HDR长短曝融合区破碎状的闪动是什么原因导致的?

【Macaron&Ispahan&Pudding&Tiramisu】

此问题多由长、短曝张亮度不匹配所导致,建议可先check AE 中的HDR Ratio 与HDR API 中的SensorExpRatio 两边设定是否一致,或关闭Dynamic Ratio 的动态补偿机制让长、短曝合成完全只参考YwtTh1 及YwtTh2 的设定,并观察长、短曝交界处是否存在明显的边界,从而厘清是否确实有两张亮度不匹配的问题。调整合适的曝光比。

Q16:HDR融合区的鬼影现象要如何优化?

【Macaron&Ispahan&Pudding&Tiramisu】

尽量参考短曝影像为主,就可以让鬼影现象减弱。

  1. 可尝试降低MotionTh,尽量判断为动区,但如果调太小,则平坦区也会被判断成动区,进而使用短曝,会使画面较脏。

  2. 可尝试降低MotionAdjLut,让动区使用短曝的比例增加,但也会使画面较脏。

  3. 如果有需要依据亮度调整,再微调NosieLevel 即可。

Q17:HDR模式下室内/室外/背光人脸过暗的现象如何优化?

【Macaron&Ispahan&Pudding&Tiramisu】

  1. 将 PreEnhance 调至11~15,值越大暗处越亮,但整体越蒙。
  2. 调整WDRcruve,将暗处拉亮。
  3. 拉高 AE target,但可能会牺牲室外过曝区细节。
  4. BoxNum 不要设太多,虽然设大会让整体对比感较好,但相对暗的人脸会更暗。
  5. WDRStrByY 暗处不要调太小,如果有需要限制暗区拉亮程度,可以调整DarkLimit。

Q18:日夜切换出现绿帧红帧?

【Macaron&Ispahan&Pudding&Tiramisu】

通常彩色切黑白容易遇到红一帧的情况,这是ircut先切,导致红外灯影响画面偏红。而黑白切彩色容易遇到绿一帧的情况,这是先load bin,再切ircut,红外影响了AWB导致绿帧。通常是load bin,切ircut的顺序不对,顺序建议如下:

彩色切黑白,先彩转灰,再load bin,最后切ircut。

黑白切彩色,先切ircut,再load bin(这个过程会灰转彩)。

上述过程可以加sleep做延时来优化,因为AWB可能要几帧才能收敛正常。

Q19:怎么通过命令读取sensor 寄存器信息?

【Macaron&Ispahan&Pudding&Tiramisu】 在设备中找到i2c_read_write命令,如果没有的话可以在sdk中找到,放入到设备中。 运行命令./i2c_read_write,可得到如下提示。

例如:./i2c_read_write -b 1 -a 0x80 -f A8D8 -r 0x0d

-b:i2c设备号,通常是1。

-a:i2c地址,sensor driver code或者sensor datasheet里面都能找到。

-f:A是sensor寄存器地址的长度,通常是8bit或者16bit。D是sensor寄存器值得长度,通常长度也是8bit或者16bit。

-r:读寄存器。

-w:写寄存器,./i2c_read_write -b 1 -a 0x80 -f A8D8 -w “0x0d 0x12”。

Q20:HDR mode 长短曝gain为什么不一样?

【Macaron&Ispahan&Pudding&Tiramisu】

Sensordriver会设置ae_gain_ctrl_num和ae_shutter_ctrl_num,控制AE计算时gain/shutter分开计算还是用相同值。HDR mode有三种组合方式:

a. gain_ctrl = 1 shutter_ctrl = 2,share gain&separate shutter

b. gain_ctrl = 2 shutter_ctrl = 1,separate gain&share shutter(基本不使用)

c. gain_ctrl = 2 shutter_ctrl = 2,separate gain&separate shutter

第一种方式长短曝gain会用相同值,长短曝shutter比值随HDR ratio变化;第二种方式不建议使用,画质相较于其他两种方式会有损失;第三种方式AE会根据HDR ratio计算出长短曝的曝光总量(gain*shutter),再分别分配给gain/shutter,使用这种会出现长短曝gain不一样的情况。

Q21:修改AE曝光表为什么不生效?

【Macaron&Ispahan&Pudding&Tiramisu】

SensorDriver会限制sensor能达到的min/max gain/shutter,设置曝光表时min/max gain/shutter不能超过此限制,当设置值超出范围时,串口会有提示,红框为HW限制的mingain/maxgain/minshutter/maxshutter,蓝框为此次设置值。

Q22:AE info isStable和isReachBoundary如何判定?

【Macaron&Ispahan&Pudding&Tiramisu】

以下条件满足任意一条isStable为1:

a. WeightedY在(Target – conv.in, Target+conv.in)区间内,AE判断为收敛稳定;

b. Sensorgain*shutter*ispgain达到AE曝光表设置的min/max值,被认为达到边界值,无法继续增大或减小,isReachBoundary为1。(注意:是比较AEinfo中totalgain*shutter与曝光表设置的min/max totalgain*shutter,不是单独的gain/shutter,例如下图isReachBoundary也被判断为1)

Q23:如何打印AF 统计值打印?

【Macaron&Ispahan&Pudding&Tiramisu】

滤波器统计值如下:

Filter Bit & Chip Type Twinkie Pretzel Macaron/Pudding
IIR / Sobel 34 35 35
Luma 34 32 32
YSat 24 22 22

比如,IIR滤波器的统计值为35bit,结构体如下,用8bit*5*16来表示16组IIR滤波器的统计值。

//for Tiramisu
typedef struct{
    MI_U8 high_iir[5*16];
    MI_U8 low_iir[5*16];
    MI_U8 luma[4*16];
    MI_U8 sobel_v[5*16];
    MI_U8 sobel_h[5*16];
    MI_U8 ysat[3*16];
} AF_STATS_PARAM_t ;

所以可以参考以下的code获取AF统计值:

int i=0,x=0;
printf("\n\n");
//print row0 16wins
x=0;
for (i=0; i<16; i++){
    printf("[AF]win%d-%d iir0: 0x%02x%02x%02x%02x%02x,iir1:0x%02x%02x%02x%02x%02x, luma:0x%02x%02x%02x%02x, sobelh:0x%02x%02x%02x%02x%02x, sobelv:0x%02x%02x%02x%02x%02x ysat:0x%02x%02x%02x\n",
x, i,   
af_info->af_stats.stParaAPI[x].high_iir[4+i*5],af_info->af_stats.stParaAPI[x].high_iir[3+i*5],af_info->af_stats.stParaAPI[x].high_iir[2+i*5],af_info->af_stats.stParaAPI[x].high_iir[1+i*5],af_info->af_stats.stParaAPI[x].high_iir[0+i*5],          af_info->af_stats.stParaAPI[x].low_iir[4+i*5],af_info->af_stats.stParaAPI[x].low_iir[3+i*5],af_info->af_stats.stParaAPI[x].low_iir[2+i*5],af_info->af_stats.stParaAPI[x].low_iir[1+i*5],af_info->af_stats.stParaAPI[x].low_iir[0+i*5],
af_info->af_stats.stParaAPI[x].luma[3+i*4],af_info->af_stats.stParaAPI[x].luma[2+i*4],af_info->af_stats.stParaAPI[x].luma[1+i*4],af_info->af_stats.stParaAPI[x].luma[0+i*4],  af_info->af_stats.stParaAPI[x].sobel_h[4+i*5],af_info->af_stats.stParaAPI[x].sobel_h[3+i*5],af_info->af_stats.stParaAPI[x].sobel_h[2+i*5],af_info->af_stats.stParaAPI[x].sobel_h[1+i*5],af_info->af_stats.stParaAPI[x].sobel_h[0+i*5],
af_info->af_stats.stParaAPI[x].sobel_v[4+i*5],af_info->af_stats.stParaAPI[x].sobel_v[3+i*5],af_info->af_stats.stParaAPI[x].sobel_v[2+i*5],af_info->af_stats.stParaAPI[x].sobel_v[1+i*5],af_info->af_stats.stParaAPI[x].sobel_v[0+i*5],
af_info->af_stats.stParaAPI[x].ysat[2+i*3],af_info->af_stats.stParaAPI[x].ysat[1+i*3],af_info->af_stats.stParaAPI[x].ysat[0+i*3]
);
}

Q24:AF滤波器统计值MI_U8 high_iir[5*16]表示什么意思?

【Macaron&Ispahan&Pudding&Tiramisu】

比如Pudding chip,一个low_iir滤波器统计值为35bit,则如图表示,5*8bit为一个滤波器统计值,16表示16个win,如果没用满16个win,多余的win则不用管。

如上图是AF_ROI_MODE_NORMAL,16个win,则MI_U8 iir_1[5*16]中

Win0: iir_1[5*0+4]<<32 + iir_1[5*0+3]<<24 + iir_1[5*0+2]<<16 + iir_1[5*0+1]<<8 + iir_1[5*0]
Win1: iir_1[5*1+4]<<32 + iir_1[5*1+3]<<24 + iir_1[5*1+2]<<16 + iir_1[5*1+1]<<8 + iir_1[5*1]
Win2: iir_1[5*2+4]<<32 + iir_1[5*2+3]<<24 + iir_1[5*2+2]<<16 + iir_1[5*2+1]<<8 + iir_1[5*2]
…
Win15: iir_1[5*15+4]<<32 + iir_1[5*15+3]<<24 + iir_1[5*15+2]<<16 + iir_1[5*15+1]<<8 + iir_1[5*15]

注意:上面的取值做法需要用U64来保存数值,如果为了节省空间可以丢掉低8位,使用U32来保存。比如:

Win0: iir_1[5*0+4]<<24 + iir_1[5*0+3]<<26 + iir_1[5*0+2]<<8 + iir_1[5*0+1]

typedef struct{
    AF_STATS_PARAM_t stParaAPI[16];
} CusAFStats_t;

如上图是AF_ROI_MODE_MATRIX,10*10则有需要用到CusAFStats_t中的10 * MI_U8 iir_1[5*16]。

Win0-9:stParaAPI[0].win0-9
Win10-19:stParaAPI[1].win0-9
…
Win90-99:stParaAPI[9].win0-9

16*16的win同理。

Q25:AF win是怎么划分的?坐标该如何设置?

typedef struct AF_WINDOW_PARAM_s { MI_U32 u32StartX; /range : 0~1023/ MI_U32 u32StartY; /range : 0~1023/ MI_U32 u32EndX; /range : 0~1023/ MI_U32 u32EndY; /range : 0~1023/ } AF_WINDOW_PARAM_t;

【Macaron&Ispahan&Pudding&Tiramisu】

以Pudding为例:

AF ROI Mode有两种模式,AF_ROI_MODE_NORMAL和AF_ROI_MODE_MATRIX。

AF_ROI_MODE_NORMAL模式:

  • 最大支持16个win,AF ROI Index为0。
  • 各自window宽高设置上,可互相重迭。
  • y/x end > y/x start。
  • 可以理解为一个win窗口的左上坐标和右下坐标。

AF_ROI_MODE_MATRIX模式:

  • 最大支持16*16个win,AF ROI Index为1~16。
  • y/x end > y/x start。
  • StartX, EndX 就是代表纵轴window切割的位置,StrY, EndY 就是代表横轴切割的位置。

Q26:IQfile.bin 和 API.bin的区别?

【Macaron&Ispahan&Pudding&Tiramisu】

  1. Iqfile是图像的底层效果参数,包含所有的isp 参数,所有sensor共享;图像质量比较差,只是用于保证应用出图。Iqfile是应用运行过程,驱动自动去加载的。

  2. Apibin file是开出来给上层调试的图像效果的参数,是在底层iqfile.bin正确加载之后才能正常使用的参数,一般是针对sensor调出最佳的图像效果;需要应用主动调用MI_ISP_API_CmdLoadBinFile()加载。

Q27:加载api.bin的时候,会遇到AEPlainLongTbl 里面的数据被重置成iqflie.bin里面的数据,该如何处理?

【Macaron&Ispahan&Pudding&Tiramisu】

此时接上串口或者telnet,查看Log信息,根据打印可以得出是哪里受限制了, 改掉这个参数就可以了,如下图,最小快门HW限制的是22us但是实际写了11us,所以被重置,此时将数据写成22us就可解决。

Q28:为什么校正出来的shading左右或上下不一致?

【Macaron&Ispahan&Pudding&Tiramisu】

  1. 可能是个体模组的问题,需多抽样几个模组测试;

  2. 如果该模组出图不是全分辨率的状态,裁剪的时候如果不是中心对称裁剪,则会出现shading校正数据没有中心对称的现象,请确认裁剪方式判定。

Q29:为什么公园有黄色草地的地方,摄像机画面里草地的多少影响画面色调冷暖?

【Macaron&Ispahan&Pudding&Tiramisu】

黄色草地在awb 框里面的落点相当于实验室灯箱里TL84左右色温的落点位置,如果草地在画面里比较多,isp会认为此时色温较低,补更多的Bgain,所以画面会偏蓝暗淡。

延伸:摄像机画面里有大面积单色物体的时候,其落点在已经校正好的awb框里面则会影响正常的R/Bgain 补偿,此时如果剔除掉这些单色物体的落点而基本不影响实验室校正的awb落点则剔除掉以求得正确的awb结果,如果已经实质影响了实验室校正的awb落点,则使用LvWeight 找到大面积单色落点对应的色温使其权重减小,进而避免影响当前awb校正结果。

Q30:发现亮度和暗处灰色区域差异过大,过awb客观有些吃力,如何处理?

【Macaron&Ispahan&Pudding&Tiramisu】

通常过AWB客观即关注24色卡最下面一行灰阶部分即可。 灰阶属于饱和度低的区域,可以通过以下方法来保证灰阶RGB值差异变小。Saturation->Saturation->Sat.BySsft是根据原始饱和度来控制饱和度强度,左到右,饱和度增加,可以降低前面第一个的强度来保证灰阶RGB三色接近,也可以设置Saturation -> Saturation -> Sat.Coring的强度,来减弱饱和度,可以理解为减法,这样低饱和度区域就可以被减弱,就可以通过AWB客观。

Q31:在卤素灯或者其他有些光源的场景,awb落点离主色温框比较远怎么办?

【Macaron&Ispahan&Pudding&Tiramisu】

此种情况下,需使用awb advance 功能,额外虚拟加框,先在awb坐标系里面找到该落点的中心坐标,然后对该坐标除以100,取倒数,然后再乘以1024得到一个新的坐标数,x,y分别填入WBAttrEx/sl.tInfo[x].WRgian,WBAttrEx/sl.tInfo[x].WBgain里,sLtInfo[0].AreaSize是虚拟正方形框边长的一半,填入合适数值,sL.tInfo[0].bExclude选Include即表示增加虚拟框。

坐标计算如下:

nx = 1024*100/nRgain ny = 1024*100/nBgain nstart = Areasize%2(取余计算) noffset = Areasize/2 startx = nx – noffset – nstart endx = nx + noffset starty = ny + noffset + nstart endyy = ny - noffset

Q32:图像效果人脸偏红(黄)该如何处理?

【Macaron&Ispahan&Pudding&Tiramisu】

  1. CCM调试方向。

    人脸偏红(偏黄):肤色主要是对应Original Colorchecker中的7色块,7色块主要是由红色和绿色构成,其中红色大约占绿色的2倍,所以红色系参数对颜色影响占主因,调红色系参数会有更多的变化。

    7色块偏红就需要降低红色比重,即可将红色系中红色降低,也可增加红色系中绿色比重,或者减少红色系中蓝色比重,简洁表示:降低红中红,增加红中绿,减少红中蓝;偏黄就需要降低绿色比重,即可将红色系中红色增加,也可减少红色系中绿色比重,或者增加红色系中蓝色比重,简洁表示:增加红中红,降低红中绿,增加红中蓝。下图可近似理解CCM矩阵对应颜色的关系。

  2. HSV调试方向。

    人脸一般对应HSV中1点对应的颜色,偏红hue向上拉,偏黄hue向下拉。

Q33:人脸色噪声偏大,colorchecker某些色块噪声较大该如何处理?

【Macaron&Ispahan&Pudding&Tiramisu】

  1. CCM系数拉的过大,导致色噪严重,此时减弱系数,饱和度用Saturation item来拉。

  2. CCM和Saturation item没有把颜色还原调试到一个差不多的程度,然后主要用HSV来拉hue和sat,此时需要拉较大的值才能达到项目所需的客观标准或者主观效果,此时就特别容易带出彩噪等副作用。此时在CCM和sat 模块下将颜色还原到差不多的程度,然后hsv来微调。

Q34:低照度下发现紫色区域跳动如何处理?

【Ispahan&Pudding&Tiramisu】

此时可以尝试disable PFC item ,如果跳动消失,则说明是FPC模块导致,可以将PFC/Auto.SatSrcSel 值写1以及减弱FPC强度来解决。

Q35:低照度下如何保持色彩鲜艳且不会有太多彩色噪声?

【Ispahan&Pudding&Tiramisu】

首先我们可以调试Denoise->NRChroma_Adv,如果效果未达到要求,可以使用NRChroma,但是需要注意NRChroma强度太大会带来颜色晕开的问题。Macaron没有NRChroma_Adv模块,只能使用NRChroma。

如果色噪还是压不住,则可以考虑降低饱和度。饱和度里面有针对不同亮度和不同饱和度重调饱和度的功能,彩噪一般出现在暗处和低饱和度的地方,我们可以去将暗处和饱和度低的区域再降饱和度,coring 值对彩噪的去除效果也特别强,但是也容易对其他饱和度不是太高的颜色有影响。

Q36:如何提升室外高光绿植饱和度,且不太影响正常室内饱和度?

【Macaron&Ispahan&Pudding&Tiramisu】

将调试好的Saturation/Auto.Sat.AllStr 可以整体扩大一倍,然后Saturation/Auto.Sat.ByYlut值降至一半,此时和之前的调试好的Saturation item的效果一样,此时再去加大Saturation/Auto.sat.ByYlut里面5,6列高亮区间的饱和度来达到高亮区域饱和度提升的效果。

Q37:发现高亮处偏粉如何处理?

【Macaron&Ispahan&Pudding&Tiramisu】

有以下几种情况:

  1. 高亮处整个偏粉,sensor range 不足导致,请向sensor厂商沟通补足range。(注:太阳黑子也会出现此种现象)
  2. 高亮处边缘偏粉,与sensor响应特性有关,就是在blooming的时候,RGB信道某个信道饱和溢出后对其他通道的影响,然后通过isp平台处理就产生偏粉现象,请向sensor厂商沟通解决。
  3. Enable Colortrans item 可能会导致某些场景下高亮处边缘偏粉,取消Enable即可。

Q38:HDR mode下高亮偏粉红?

【Macaron&Ispahan&Pudding&Tiramisu】

HDR融合是曝光比精度问题会引入Dynratio,当数字增益低于1倍时,高亮区255会乘以一个小于1的数,会导致G低于255,后面AWB进行补偿,R和B进行了补偿,但是G没有,所以会导致发粉的现象,保证引入的Dynratio不要小于1可以规避这个问题。

Q39: Linear mode下运动高亮偏红,如何优化?

【Ispahan&Pudding&Tiramisu】

调整3DNR_Ex的AR模块。

  1. AREn设定开启。

  2. 调整ARMotTh。

    i. ARLumaTh0, 1都设最小值(0),剩下motion的条件有作用。

    ii. ARMotTh0, 1都设最大值(255)。

    iii. ARMotTh0, 1逐步设定较小的值(th0 = th1 <= 255),直到移动物体边缘刚好没有偏色。

    iv. 稍微减少ARMotTh0、增加ARMotTh1,让偏色/不偏色的变化和缓一点。

  3. 调整ARLumaTh。

    i. ARLumaTh0, 1都设最大值(255)。

    ii. ARLumaTh0, 1逐步设定较小的值(th0 = th1 <= 255),直到移动物体边缘刚好没有偏色。

    iii.稍微减少ARLumaTh0、增加ARLumaTh1,让偏色/不偏色的变化和缓一点。

Q40:低照度下出现锯齿纹,怎么调试?

【Ispahan&Pudding&Tiramisu】

Denoise->NR3D_EX->PREn开启,Denoise->NR3D_EX->PRMotTh调整为{1,5},即可优化这种现象。

Q41:PFC item是开启的状态,但是实际画面里紫边没有去除?

【Ispahan&Pudding&Tiramisu】

查看PFC_EX->StrenghtByHue里面紫色系颜色是否开有强度,此项容易忽略,要注意。

Q42:跑不到设置的AE target offset 的值如何分析?

【Macaron&Ispahan&Pudding&Tiramisu】

  1. EVComp 没有按照默认的值0去设置,此时就会导致此问题,改成0即可。
  2. AEStabilizer->DiffThd设置强度过大所致,合理设置此值或者disable此功能。

Q43:低照度下画面有很多白色条纹状噪声如何处理?

【Macaron&Ispahan&Pudding&Tiramisu】

  1. 此时VPE里面3Dnr level 设置的应该是1,将3Dnr level 设置成2 白色条纹状噪声即可消失。
  2. 将Denoise->NR3D->Auto.TFLut 里面前两列参数不要超过3800,白色条纹状噪声就会消失。

Q44:低照度下物体移动彩色背景有横纹该如何处理?

【Ispahan】

对于333/335/337接3M及以上sensor,有些参数需要按照以下来进行设定,不然可能会看到移动物体彩色背景有横纹现象,特别是NR_chroma_adv相关参数。

NRluma_adv参数:StrengthByMot设0。

NRchroma_adv参数:MotionColorReduce设0;StaticLimitRatio设63;MotionClip设0

Shrpness参数:PreCorMotGain设0;DetailMotOffset设0(或者这个设置0会比较影响静态edge,所以可以使用Dummy api->Dummy2将前16格设置128。);MotGain全设128。

Q45:低照度移动物体有绿色拖影如何处理?

【Macaron&Ispahan&Pudding&Tiramisu】

Denoise->Auto.TFLut最后几列参数过大会导致运动物体绿色拖影,要将此参数写小。

Q46:有点状细节的墙壁,墙壁上的点在跳动,如何调试?

【Macaron&Ispahan&Pudding&Tiramisu】

可能是DPC强度开的太大导致把点状细节的墙壁当成坏点处理,将DPC强度开小验证。

Q47:低照度环境整体风格如何调整为偏绿的讨喜风格?

【Macaron&Ispahan&Pudding&Tiramisu】

低照度下,野外场景大片绿色且天空亮度偏高,导致AWB框内白点较少,且较多的落点为天空,容易出现发紫发黄的情况,需要调整AWB框来剔除或者减少天空和绿色植物的点落在框内。

AWB调试准确之后,可以通过HSV 的HueLut来让偏黄色往绿色靠,增加SatLut对应绿色分量的大小亦可,注意Saturation模块里面Sat.ByYLut暗处强度不要开的太弱或者去色噪模块强度不要开的太强。如果暗处绿色拉不出,可增大ob里r和b的值。

Q48:黑白夜视参数调试的时候除了将uv颜色去掉,还应注意什么?

【Macaron&Ispahan&Pudding&Tiramisu】

黑白夜视效果调试的时候,除了需要把ColorToGray enable,还要将CCM还原成单位矩阵,否者会有很多噪声。AWB模块也建议如下设置,manual模式,R G B三原色的强度设置为1024。

Q49:调试完AWB框之后保存api.bin文件,之后加载api.bin文件发现之前校准的awb参数没有生效,是什么原因?

【Macaron&Ispahan&Pudding&Tiramisu】

拉完awb框,点击apply to camera,然后还要在AWBCTCali itme里面点击AWBCTCali->CtParams->Read 然后再Write page之后再保存api bin。

Q50:调试完图像效果保存api.bin,之后加载api.bin文件发现画面清晰度变的模糊许多?

【Macaron&Ispahan&Pudding&Tiramisu】

在保存api.bin的时候,Dummy->Dummy_EX前面的inFile需要自己勾选才能保存到api.bin文件里面,此项参数里包含锐化相关参数,如果没有保存到清晰度可能会发生变化。

Q51:加载api.bin报以下错误什么意思?

【Macaron&Ispahan&Pudding&Tiramisu】

客户所用的SDK版本和导入的IQ bin文件版本不匹配。

Q52:ALSC调试的时候,色温箱的亮度和色温一般是调多少?

【Macaron&Ispahan&Pudding&Tiramisu】

色温可以和CCM一样,设置低中高三个色温。AEtarget设置为1500,再抓取raw data进行校准。

Q53:calibration tool矫正出来的OBC值全为0是正常的吗?

【Macaron&Ispahan&Pudding&Tiramisu】

一般是calibration配置文件有错误导致的,请按照文档要求进行配置。

Q54:用手完全捂住镜头,画面为什么会偏紫?

【Macaron&Ispahan&Pudding&Tiramisu】 需要重新矫正该增益下的OBC值。OBC校准准确后遮黑画面是全黑的。

Q55:图像有颜色的高亮处(如火焰,信号灯等)发白,怎样能把原有的颜色体现出来?

【Macaron&Ispahan&Pudding&Tiramisu】

Bypass gamma、WDR,看看颜色是否出来,若没出来,减小AE target。

Q56:DVPsensor图像高亮处显示不正常,颜色异样?

【Macaron&Ispahan&Pudding&Tiramisu】

需要在sensor driver里面修改raw的bit位,sensor_dataprec。

Q57:图像红蓝颜色相反?

【Macaron&Ispahan&Pudding&Tiramisu】

修改sensor driver的BayerID。

Q58:ISP许多模块都有自动模式。文档描述数组值对不同增益情况的设定值,不知道哪里能看到这16个具体增益值?

【Macaron&Ispahan&Pudding&Tiramisu】

index16分别代表以下增益:index0:20;index1:2021;index2:2122;index3:22~2^3。以此类推。

Q59:早晨或者傍晚,相机室外场景图像整体偏蓝,该怎么调试?

【Macaron&Ispahan&Pudding&Tiramisu】

早晨太阳未升起或者傍晚太阳落山但是并没有天黑的两种场景,环境色温普遍很高,如果此时AWB框没有白点落在其中,就会出现偏蓝的情况,通常会拉动2号点让框吃到高色温的白点。

Q60:相机对着天空或者纯蓝出现偏黄的问题,该怎么调试?

【Macaron&Ispahan&Pudding&Tiramisu】

这种情况多半是蓝色落点落到了AWB框内,这些蓝点被当成白点拿去做白平衡,导致统计的蓝分量很高,要做白这些点,就会补很多的红分量,多补的这些红分量就会导致画面偏红。

调试方法:通常我们会使用27的色温框,即10000K2300K的色温范围,这时我们要尽量降低2号点的高度,让它靠近3号点,让框内的天空的落点减少,这样的画面会很明显恢复正常,但是要注意会不会出现59题出现的问题。

Q61:AWB模块的eAlgType有四种算法模式,这四者有什么区别呢?

【Ispahan&Pudding&Tiramisu】

  1. GrayWorld,灰度世界算法,整幅画面的点都拿去做白平衡,但是画面有大色块的场景会出现偏色。
  2. balance是符合条件的所有色温的白点,即框内所有的白点都用来做白平衡。高低色温落点对图像影响会很大。
  3. normal是符合条件的占比最大的几个相邻色温的白点去做白平衡。
  4. focus偏向于一种色温,只有色温变化比较大才会变化,多应用于混合色温场景。 建议用normal,适应性比较强。

Q62:色温变化比较快的时候,画面整体颜色收敛比较慢,该如何调试?

【Macaron&Ispahan&Pudding&Tiramisu】

可以加大AWB->Speed,同时AWB->ConvInThd和AWB->ConvOutThd不宜调试太小,且需要满足AWB->ConvInThd < AWB->ConvOutThd,不然容易出现AWB一直收敛的情况。

Q63:黑白转彩色AWB导致偏色,该如何调试?

【Macaron&Ispahan&Pudding&Tiramisu】

可以在黑转彩loadbin后将AWB->Speed加到最大,之后再还原到原来的speed。

Q64:AF滤波器统计值异常如下,是什么原因?

[AF]win8-0 iir0: 0x04d6b80000, iir1:0x0459c70000, luma:0x00000000, sobelh:0x0002834e00, sobelv:0x00019a2400 ysat:0x058e87 
[AF]win8-1 iir0: 0x02099c0000, iir1:0x024c1a0000, luma:0x00000000, sobelh:0x00017e4400, sobelv:0x0000a0db00 ysat:0xb1ec00 
[AF]win8-2 iir0: 0x047e030000, iir1:0x0406470000, luma:0x00000000, sobelh:0x00015c1500, sobelv:0x0000c4d300 ysat:0x5d0005 
[AF]win8-3 iir0: 0x054c860000, iir1:0x06224f0000, luma:0x00000000, sobelh:0x000125fc00, sobelv:0x00008d9900 ysat:0x000631 
[AF]win8-4 iir0: 0x05174e0000, iir1:0x0608b90000, luma:0x00000000, sobelh:0x0001832a00, sobelv:0x0000e65500 ysat:0x07aa4d 
[AF]win8-5 iir0: 0x0512c90000, iir1:0x0847490000, luma:0x0000b22e, sobelh:0x0001468400, sobelv:0x0000573a00 ysat:0xe57500

【Macaron&Ispahan&Pudding&Tiramisu】

目前所有chip的IIR统计值的有效位最大只有35bit,但是吐出的值达到72bit,且luma的统计值出现0的情况,遇到此类异常请检查cus3a的库 和sdk版本是否对齐。

Q65:AF 统计值在低照度场景出现FV更大,但是清晰度反而更低的情况,是什么原因?

【Macaron&Ispahan&Pudding&Tiramisu】

通常是开启sq模块设置了相关参数导致滤波器会增加过滤条件导致的FV值异常,或者是使用的滤波器系数有缺陷导致的,可以做以下测试:

  1. 关闭AFfilter_sq的设置看看结果如何,建议使用默认值即可。
  2. 使用sample code默认的滤波器系数测试。

Q66:夜视黑白模式高增益或者煲机时间长了后就出现发蒙的情况,如何解决?

【Macaron&Ispahan&Pudding&Tiramisu】

这种场景通常是高增益或者高温下sensor的暗电流比正常时大,需要调整OBC->BlackLevel四个通道的值,通常是需要填入更大的值。通常这类情况需要搭配高温逻辑来兼容正常场景和高温场景。

Q67:图像暗的地方不够暗,亮的地方不够亮,感觉data range不是0~255,是什么原因?

【Macaron&Ispahan&Pudding&Tiramisu】

检查Colortrans是否enable,默认关闭,data range为0~255,开启后data range会变小,比如16~235,可能暗处细节会提升,但是损失的对比度无法通过其它模块补偿。

Q68:data range该如何设定?

【Macaron&Ispahan&Pudding&Tiramisu】

BT601:16-235的设定:

Yoffset:64
Uoffset:0
Voffset:0
Matrix:66,129,25,986,950,112,112,930,1006

0-255的设定:

Yoffset:0
Uoffset:0
Voffset:0
Matrix: 77,150,29,981,939,128,128,917,1003

BT709:16-235的设定:

Yoffset:64
Uoffset:0
Voffset:0
Matrix:47,157,16,998,937,112,112,922,1014

0-255的设定:

Yoffset:0
Uoffset:0
Voffset:0
Matrix:54,183,18,995,925,128,128,908,1012

Q69:夜视黑白 R G B不相等,通常表现为偏绿,是什么原因?

【Macaron&Ispahan&Pudding&Tiramisu】

Colortrans的设置不对会导致黑白图像的R、G、B 3个分量不同而出现颜色的情况。

65,129,25,986,949,112,112,929,1005 RGB不相等

66,129,25,986,950,112,112,930,1006 RGB相等

Q70:画面整屏的噪声跳动,要如何调试?

【Macaron&Ispahan&Pudding&Tiramisu】

  1. 首先排查是硬件原因导致的画面扰动,比如sensor端AVDD不正常,DVP data和clk排线靠的太近产生的干扰等。

  2. Denoise->NR3D,建议先用manual模式调试出合适的值,再填到auto上,因为3D对去噪是非常重要的模块,且不同亮度下,不同增益下,噪声的剧烈程度差异很大,所需要使用的3D强度也不同,所以建议用auto模式。拉大MD.Thd和MD.gain,画面就会变安静,建议使用默认值。

Q71:如何消除高亮反差区边缘出现的紫边?

  1. 【Ispahan&Pudding&Tiramisu】PFC模块是专门用来消除高亮度反差区域的紫边的,通常开大PFC->Strength就能看到效果。但是需要注意PFC是否强度太大而影响正常紫色的颜色,太强会让紫边发黑。

  2. 【Macaron】早期没有PFC的chip,可以通过降低紫色饱和度来减弱紫边,减弱Color Correction->HSV->SatLut中的紫色分量。

Q72:index用来区分色温时,是参考哪里的色温设置?

【Macaron&Ispahan&Pudding&Tiramisu】

当调试颜色相关的模块,文档说明会说到index表示不同色温档,这里的色温档是参考Color Correction->CCM->CCTthr。

Q73:图像颜色不正常偏色,但是通过肉眼无法判断出是什么模块导致的,该怎么办?

【Macaron&Ispahan&Pudding&Tiramisu】

  1. 首先,遮黑镜头,通过api tool里面的color picker查看图像R、G、B三色分量是否为0,不为0则表示blc没有校准。

  2. 保证OBC值正确后,画面颜色仍然不正常,可以通过api tool里面的color picker查看灰阶区域的颜色的R、G、B三者分量是否相等,如果不相等且差异很大说明AWB做的不准,需要调整AWB色温框或者重新校准AWB。

  3. 如果OBC和AWB都校准了,那图像画面的灰阶部分应该就比较准了,不存在全画面的偏色,个别颜色的偏色则需要通过ccm模块去重新校准。

Q74:图像出现迷宫格的纹路,怎么办?

【Macaron&Ispahan&Pudding&Tiramisu】

形成的原因是sensor本身和使用的lens的CRA角度问题,导致当前pixel接受到了来自原本属于相邻pixel的光线,导致GR,GB不相等形成的迷宫格现象。加大BayerCompensation->Crosstalk模块的Strength即可以看到现象减弱或者消失。注意强度不宜太大,否则会吃掉细节。

Q75:高频区出现伪色彩要怎么去除?

形成原因是高频区demosaic方向性判断不对导致的伪彩。

【Macaron&Ispahan&Pudding】

调试方法:BayerCompensation->AntiFalseColor模块,可以参考以下的判断方法进行调试。

if( freq > FreqThrd && edgeScore < EdgeScoreThrd ) 
    isMoire = TRUE; 
else 
    isMoire = FALSE;

【Tiramisu】

加大BayerCompensation->AntiFalseColor->Strength的值。

Q76:白天室外大太阳下画面很扎眼,树叶发白,是什么原因?

【Macaron&Ispahan&Pudding&Tiramisu】

锐化的白边增强开的太强。降低Sharpness->Sharpness->OverShootGain。

Q77:物体边缘描边不够粗,立体感不强,该如何调试?

【Macaron&Ispahan&Pudding】

物体边缘属于大边缘SharpnessD,可以稍微降低Sharpness->Sharpness->DirTh的值,引入一些方向性边缘,增大Sharpness->Sharpness->SharpnessD的值,但是需要注意不要出现锯齿。

Q78:人物移动身上有很多噪声,该如何调试?

【Macaron&Ispahan&Pudding】

  1. Sharpness->Sharpness->MotGain减小前面动区强度。
  2. Sharpness->Sharpness->PreCorMotGain加大强度。
  3. Denoise->NR3D->Y.SF.BlendLut的前面动区可以稍微填小一点,让动区上一些3D来定住噪声,但是需要注意拖影情况。
  4. NRluma/NRluma_adv by motion的强度加大。

【Tiramisu】

  1. Sharpness->Sharpness->GainByMot和Sharpness->Sharpness->DetailGainUDByMot参数可以适当减弱。
  2. Sharpness->Sharpness->CorByMot前面动区加强。
  3. Denoise->NR3D->Y.SF.BlendLut的前面动区可以稍微填小一点,让动区上一些3D来定住噪声,但是需要注意拖影情况。
  4. Denoise_YNR的NRluma/NRluma_adv的强度加大。

Q79:移动物体后面跟着很多噪声,该如何调试?

【Macaron&Ispahan&Pudding】

  1. Denoise->NR3D->Y.SF.BlendLut加强过度区2D强度调大。
  2. Denoise->NRluma->Strength加大,Denoise->NRluma->SpfBlendLut加大。
  3. 判断sharpness是否开的太强。

【Tiramisu】

  1. Denoise_3DNR->NR3D->Y.SF.BlendLut加强过度区2D强度调大。
  2. Denoise_YUR->NRluma->Strength加大,Denoise->NRluma->kernelstr加大。
  3. 判断sharpness是否开的太强。

Q80:AWBinfo里的CT值和AWB Analyzer里的CT值有什么差异?为什么不一样?

【Macaron&Ispahan&Pudding&Tiramisu】

AWBinfo是经过AWB算法后计算出来的色温值,会随着eAlgType的算法选择而变化,而AWB Analyzer里的CT值是框内的落点统计的CT值(来自raw data统计所得)。

Q81:如何提升高频区的细节?比如草地小草的细节。

【Ispahan&Pudding】

  1. 先bypass DynamicDP、Crosstalk、NRDeSpike看下是否是这些模块吃掉了高频细节,如果bypass后,高频细节提升明显,则需要减弱对应的模块强度。
  2. Sharpness->Sharpness->DirTh设置为255,减小Sharpness->Sharpness->LpfEdgeGainUD的值。
  3. Sharpness->Sharpness->DetailTh减弱,Sharpness->Sharpness->DetailByY加大对应亮度下的强度,Sharpness->Sharpness->OverShootLimit和Sharpness->Sharpness->UnderShootLimit降低。

【Tiramisu】

  1. 同上。
  2. Sharpness->Sharpness->sharpnessUD加大H的强度,Sharpness->Sharpness->HighRatioUDByState加大H的强度,Sharpness->Sharpness->DirRatioByState的复杂区强度减弱。建议调试时,中频和高频参数都试下,可能有时候会吃到中频参数。

Q82:如何提升画面暗部的细节?

首先Bypass NRDeSpike、DynamicDP看看会不会是2d或者dpc把一些细节干掉了。然后可以从以下几个模块调试:

【Ispahan&Pudding】

  1. WDR->WDR->AutoDetailEnhance和WDR->WDR->ManualDetailEnhance,当使用auto时,manual失效,反之,auto设置为0时,manual启用。
  2. BayerDenoise->NRDdSpike->StrengthByY,左侧强度是否被增强?如果太大容易干掉暗处细节。
  3. Sharpness->Sharpness->CorLut、Sharpness->Sharpness->SclLut、Sharpness->Sharpness->DetailByY、这几个模块都是由暗到亮来调整。CorLut数值越大抑制细节强度越大锐化强度越小。SclLut、EdgeKillLut、DetailByY数值越大锐化强度越大。

【Tiramisu】

  1. 同上。
  2. 同上。
  3. Sharpness->Sharpness->CorByY暗区的强度减弱,Sharpness->Sharpness->SclByY暗区的强度可以加强,Sharpness->Sharpness->EdgeKillLut暗区的强度加强。

Q83:如何不通过增加AE target提升暗部亮度?

【Macaron&Ispahan&Pudding&Tiramisu】

  1. gamma拉高暗区的曲线。对亮度区域的选取比较粗略,较难调整。
  2. WDR强度增加,WDR->WDR->WDRStrByY前面几列为暗处WDR强度,可以稍微增加。建议使用这种方法。
  3. YUVgamma通常是高增益下为了拉升亮度才会使用这个模块,通常不建议使用。

Q84:调试一个新sensor,借鉴其他sensor的效果参数需要注意什么?

【Macaron&Ispahan&Pudding&Tiramisu】

通常调试一颗新sensor,在原厂没有提供参数的情况下,可以从sdk里拿同chip的其他sensor的api.xml作为基础模板进行调试,可大大加快调试进度。注意以下几点:

  1. linear模式参考linear模式参数,HDR参考HDR模式,不要用linear模式参数作为基本参数调试HDR效果。
  2. 选择感光相近的sensor的参数作为参考。
  3. AWB、CCM、OBC、sharding等和sensor差异相关的模块都需要重新校准。
  4. HDR模式注意根据hdr ratio修改AE table里面最大曝光时间。
  5. 注意版本差异,可通过xml对比进行参数移植。

Q85:如何判断图像异常是sensor端问题还是isp端问题?

【Macaron&Ispahan&Pudding&Tiramisu】

通过api tool的外挂软件,抓取raw data和yuv data,如果raw data异常了,说明sensor端有问题,如果raw data正常,yuv data异常,则大概率是ISP端有问题。

Q86:边缘坏点如何消除?

【Macaron&Ispahan&Pudding&Tiramisu】

DPC模块无法消除边缘坏点,需要sensor每边拓展两行数据,用于isp dpc消除边缘坏点,在isp后面的模块再裁剪拓展的数据行和列以满足需要的分辨率。DPC目前使用的5*5的filter进行处理。比如1920*1080需要拓展为1924*1084,vpe裁剪的起点为(2,2),裁剪分辨率为1920*1080即可。

Q87:大光圈镜头白天室外,大太阳的场景过曝,该如何解决?

【Macaron&Ispahan&Pudding&Tiramisu】

比如imx307等感光较好的sensor搭配比如F1.0、F1.2等大光圈,在白天室外大太阳的场景下,容易出现过曝的情况。通常是因为设置的最低shutter并没有为sensor最低曝光时间导致的。了解sensor最小曝光时间,填入AE->ExposureLimit->MinShutter和AE->AEPlainLongTbl->LongExpoTblEntry的Index0行的US列,再在过曝场景测试,应该就不存在过曝了。

Q88:HDR融合异常,比如车灯周围发黑(红色框处),该如何调试?

【Macaron&Ispahan&Pudding&Tiramisu】

针对车灯出现黑色异常区域的原因说明如下:

DOL HDR sensor(双帧融合HDR sensor)先吐长帧数据,再吐短帧数据,两帧之间有时间差,时间差为帧间隔加短帧曝光时间,所以运动状态下,运动物体在图像中的位置是发生了变化的,即长曝帧中运动物体和短曝帧中运动物体融合是不能完全对齐的。HDR算法要去考虑长帧短帧的融合比例进行融合,融合后的重影或者残影,我们称之为运动鬼影。

车灯场景如下图,长帧的车灯及车灯周围基本过曝,短帧的车灯及周围不过曝(下图红框部分,产生黑环的根源),如果短帧融合比例很大,融合后就出现黑环的现象。

可增加长帧融合比例来优化此现象。

整体思路是让动区判断多些,让后动区上更多的长曝。 Th1 Th2减小,测试影响不明显。 Noiselevel减小,判断动区越多。 MotionTh 减小,判断动区越多。 MotionAdjLut后面动区增大,动区上更多长曝修复车灯黑环问题。

融合图像异常的优化方法:由于DOL HDR,运动鬼影无法消除,只能通过调整长短帧的融合比例来满足实际效果要求。

优化后的效果:

Q89:数字宽动态(WDR)不存在融合鬼影,而真实宽动态(通常指DOL HDR)存在融合鬼影,为什么?

【Macaron&Ispahan&Pudding&Tiramisu】

WDR是单帧图像通过算法进行的动态范围加强,而HDR通常是长短帧两帧融合的动态范围加强,HDR的动态范围增强能力远大于WDR,但是运动状态下,长短帧之间存在时间差,运动物体所在的图像的坐标发生改变,所以融合时需要选择长短帧的融合比例来进行融合,故会产生鬼影现象,通常是根据具体需求来设置长短帧的融合比例。

Q90:如何保证不同的sensor效果风格类似?

【Macaron&Ispahan&Pudding&Tiramisu】

风格通常是主观判断,风格相近主要体现在色彩风格和对比度风格,这两个风格一致的话,第一眼的直观感受就是风格相近。通常保证亮度差异不大的情况下,色彩风格主要是指AWB的冷暖风格,ccm和saturation对颜色的增强效果。对比度风格,Gamma,WDR,GammaStyle模块使用相同的参数,即可保证对比度风格相近。

Q91:低照度下,开启WDR后,出现头发和人脸分层现象,会是什么原因?

【Macaron&Ispahan&Pudding&Tiramisu】

WDR强度开的较大,WDR->WDR->WDRStrByY的前面几个亮度强度的跨度很大,就会容易造成分层现象,特别是运动时亮暗差比较大的物体更加明显,减弱跨度差值即可减弱这种现象。

Q92:镜像或者翻转之后图像颜色异常?

【Macaron&Ispahan&Pudding&Tiramisu】

有的sensor mirror/flip之后需要设置对应的bayer ID,如果sensor端不支持设置bayer ID,则需要通过vif端去平移来满足合适的bayer ID。

Q93:为什么很亮的时候,ISPgain不为1x,反而大于1x?

【Macaron&Ispahan&Pudding&Tiramisu】

主要是为了弥补shutter精度不足的问题,属于正常情况。如果shutter 很小的时候,比如一个step是30,那下一个是60,这样亮度会跳两倍,为了避免它跳两倍,中间就补gain,比如30+1.5x gain,那就只会跳1.5x,上图是一个最刚好的状态,它准备要跳60,但是又不满60,所以这个时候gain就会来到最高点,接近2x但是不到2x,基本上这个补isp gain的行为不会出现超过2x的情况。

Q94:AWB做不灰的原因有哪些?

【Macaron&Ispahan&Pudding&Tiramisu】

  1. 色温框没有调整好。
  2. 某些颜色大量落入色温框中影响AWB计算结果。
  3. 饱和度太浓导致一些微误差被放大。
  4. OB不准导致线性度不佳。
  5. Color Shading太严重却没校正ALSC。

Q95:AWB收敛不稳定,一直在变色,可能的原因?

【Macaron&Ispahan&Pudding&Tiramisu】

  1. OB在飘。
  2. AWB统计值异常。
  3. 大部分落点在色温框之外, 因此落在色温框的统计点数量不够稳定让AWB震荡。

Q96:AE闪烁可能的原因?

【Macaron&Ispahan&Pudding&Tiramisu】

判断方法:手动AE,闪烁消失,则大概率为AE闪烁。

可能原因:

  1. sensor gain/ shuter 线性度异常。
  2. sensor gain/ shutter 生效未同步。
  3. 收敛速度太快导致overshoot/hunting。
  4. 收敛区间太小,导致AE无法进入stable。
  5. 50/60hz de-flicker未开或设错。
  6. 客户周期性的下某些AE API 改变AE行为。

Q97:WDR闪烁可能的原因?

【Macaron&Ispahan&Pudding&Tiramisu】

判断方法:Bypass WDR模块闪烁消失,则大概率为WDR闪烁。

可能原因:

  1. 未上连续AE。
  2. AE收敛速度太慢,导致前进步长小于sensor精度,亮度收敛过程出现阶梯而出现WDR闪。
  3. box number 随iso有切换。
  4. Dark Tone Enhance curve 随iso有切换。
  5. WDR 参数内插未开。 6、Gamma 随iso有切换。

Q98:HDR闪烁可能的原因?

【Macaron&Ispahan&Pudding&Tiramisu】

判断方法:

  1. linear没有;
  2. manual AE 和bypassWDR仍然出现,则大概率为HDR闪烁。

可能原因:

  1. 长短曝shutter 超过sensor 限制。
  2. 长短曝设定比例不对。
  3. 短曝区flicker问题。

Q99:低照度下,特别在点光源下AF统计值没有趋势,可以如何优化?

画面过暗(譬如灯光影响),导致细节统计不到。

【Macaron&Ispahan&Pudding】

使用MI_ISP_CUS3A_SetAFYParam将亮度提升,获取较暗的细节统计值。

【Tiramisu】

Tiramisu以后可使用MI_ISP_CUS3A_SetAFYMap代替。

Q100:shading暗角补不亮,会是什么原因?

【Macaron&Ispahan&Pudding&Tiramisu】

  1. 测试时WDR 是否有开? WDR 会导致暗角状况加剧。
  2. 校正时raw 是否为pure raw。(ex: MACARON 要记得关OBC / 3DNR/ BNR)
  3. 校正时填入Calibration tool 的OBC信息是否正确。
  4. 拍raw 时的AE target 是否过低。(建议值: 100@8bit (0~255))

Q101:HDR短曝偏色,会是什么原因?

【Macaron&Ispahan&Pudding&Tiramisu】

  1. 偏色原因多半是长短曝的主要色温不同。
  2. 目前HDRmode 下AWB 已同时考虑长曝和短曝两组统计值,理论上偏色问题应已较不明显。
  3. 修改AWB 加大高色温的weighting (短曝因为本身很暗,统计值数字很小,所以先天weighting会比较小)。
  4. 必要时也可直接降低稍微蓝色饱和度(常见为窗外偏蓝)。

Q102:HDR短曝反黑,会是什么原因?

【Macaron&Ispahan&Pudding&Tiramisu】

  1. sensor 长短曝亮度与HDR Ratio 设定可能不匹配。
  2. 关闭HDR dynamic ratio 及HDR by motion 避免干扰判断。
  3. 检查当前的sensor 长短曝曝光参数与 HDR API 中的HDR Ratio 设置是否匹配。
  4. 检查长短曝曝光参数是否有超过sensor 硬件限制。
  5. 调整HDR API 中的HDR Ratio 看状况是否改善,应可调至长短曝交界无明显渐变,但还是需理清sensor 长短曝两张raw亮度比例不如预期的原因。

Q103:低照度全彩和红外黑白模式下,高增益下的噪声如何消除?

【Macaron&Ispahan&Pudding&Tiramisu】

总体思路,3D上到即将会出现拖影或者有轻微可接受的拖影,再调节sharpness提升细节到噪声和细节比较均衡的状态,最后调整2D让画面干净,处理跟随噪声等,三者有联动,所以需要不停尝试来得到更优的参数。

Q104:额外的外挂程序调用isp api出现无效情况是什么原因?

【Macaron&Ispahan&Pudding&Tiramisu】

isp api需要在主进程中调用,不支持跨进程操作,支持单进程跨线程操作。需要跨进程操作建议客户自己将isp api封装成可跨进程的接口。