#灵感# raw图质量是camera tuning 的第一步,当排查一些图像质量问题时,总要抓raw 分析一下。罗列一些遇到的问题和解决方案。
目录
最终输出的YUV 饱和度也低,增加ISP 饱和度设置却改善有限。D65 光下颜色正常。
解决:发现没有安装红外滤光片,A 光的红外光影响了raw。正常用于白天的camera设备,都需要安装滤光片,滤除650nm 以上的红外光。
校准出的lsc,明显大于其它角。且和光源无关系。
读pixel 值,发现这几个像素值被固定写死,可能是sensor的一些配置值或者ISP的标记值。
解决:修改起始点,移掉这一行。
输出的YUV 全屏紫色,bypass ISP 模块,无实质性改善。抓raw 发现raw很紫。
??
解决:sensor的 first pixel 读取bayer pattern不合适,需要移位一下,换个bayer pattern顺序。
?需要修改sensor 的window location的起始位置。
异常条中没有有效信息,不随环境改变而改变。
解决:sensor 的输出修改为”多出8行8列“。原因:可能ISP 有设置x,y的起始位置,如果分辨率是1920*1080,sensor的输出也只设置为1920 * 1080, 则ISP的起始位会导致有效分辨率不够,?就出现异常的空白像素条。
视频画面,在黑白交接的地方出现闪烁和图像移位情况。
分析:sensor长短帧配置是没问题的,曝光行有十几倍的差距。
解决:改了硬件的一个寄存器的值,之前的短帧被长帧替换掉了。
抖动可能和帧率、带宽有关系。
raw 理论上 12bit = 0xfff 。但 实际的max luminance = 0xffc,
分析 raw其实是10bit, 因为不足12bit ,在低2位补00成12bit,就是0xffc。
raw输出12/10-bit , 表示输出的一个像素点有12bit、10bit数据.
解决:
将原来的localBufTmp[i] = localBuf[i] >> 2;改为localBufTmp[i] = ((localBuf[i] >> 2) & 0x03FF);
右移两位,去掉低位补的00。把高位多余的数据屏蔽掉,变成10bit 对应的 1111 1111 11=0x3ff.
另外,如果图像出现圈圈儿:是因为看图工具设置的raw bit 和实际raw的bit 不匹配,所以出现断层。
使用常规横屏,画面却变成了竖屏? 且明显有个角畸变严重。抓取的raw 是正常的。
?
解决:video 的输出配置有问题。重新设置layer out 尺寸。