1、问题背景
最近在调试一个安卓带屏的项目(类似平板),屏上带个camera;
在抓raw图做标定时,发现raw图是做了flip的,如下图所示:
对于此问题该如何去分析,怎么去处理呢?这是本文要总结的内容。
2、问题分析
在处理问题前,首先得先明确两点规则:
1)要明确关于24色卡的拍摄规则,24色卡是一个标准色卡,包括图像分析软件,标定工具都是基于标准色卡去做的,
所以模组做calibration时,拍出来的raw图像必须是正的,且不能有镜像和翻转(如下图所示),
要和24色卡色块的顺序保持一致,这样才能通过标定工具去做 ccm、awb的标定。
同样的用 imatest 软件分析拍摄的24色卡图,也是要满足拍摄的图要和24色卡色块的顺序保持一致,否则软件就分析不了。
2)sensor mirror/filp 是硬件设计时,用来保证和设计成像方向保持一致的,不能作为功能去使用。
当已经做完calibration后,如果再通过 sensor去做 mirror/filp,sensor 读取位置变了,bayer格式变了 ,
对于一些要依赖calibration数据的模块来说,数据是会有差异的,比如 shading,demosaic,会影响最后的成像效果。
明确如上规则后,基于当前问题该如何去处理呢?
1)首先要先确认模组在产品上具体的安装位置、安装方向,固定好模组正确的物理位置;
2)如果物理位置固定好后,sensor 出图是倒的,或是镜像的,这时可修改sensor 寄存器,去做mirror/filp, 要保证拍摄24色卡时,和24色卡色块的顺序保持一致;
如下是sensor datasheet 中关于mirror/filp的说明,他是基于前一个状态去做调整的,比如第二个镜像F是基于原始图像来做的,第三个翻转F是基于第二个镜像F来做的,
之前没细看过,一直以为mirror/filp都是基于原始图像来做的。
如下是改了sensor setting,做了flip后的结果,但是否一定要做呢?其实把模组反过来拍,也能保证输出的24色卡图像是正确的;
这个也要考虑具体的产品形态,要能保证整机的情况下,可以拍正常的raw图出来,便于后续需要raw分析问题。
如果是小的类似IPC的枪机、摇头机、门铃问题就不大,但我现在的整机,是一个20几寸的显示屏,还带悬挂移动底座的,这肯定是不方便反过来固定的。
3)再去通过isp、或者其他后处理模块去做mirror、flip ,这样可以做到可控,不会影响 tuning 的效果。
3、问题总结
1)做 mirror/flip 前先确定摄像头模组的具体物理位置;
2)要保证sensor 输出是正的,可以通过sensor 去做 mirror/flip,保证输出要和24色卡色块顺序保持一致;
3)有 mirror/flip 的功能需求时,必须要通过isp、或者其他后处理模块去做,否则会影响tuning的效果。