同一套参数,同样的硬件,对着一个类似大面积单色的场景,在开发板上rtsp出流白平衡能够校正正常,而在拍照产品中不管怎么调试白平衡白区始终会在拍照保存的第五帧和第十六帧偏色验证。
拍照模式和rtsp出流视频模式下,主要的差别是在快起阶段。rtsp不用快起,而拍照模式会从小分辨率的binning模式转到大分辨率的normal模式。
分析:
对照拍照模式和rtsp出流模式的效果,大致能够定位问题出现在快起,小分辨率转大分辨率的阶段。小分辨率转到大分辨率的后,ISP驱动库内部会做一个逻辑:前七帧直接使用的是小分辨率binning模式的计算出来的白平衡增益,也就是说当前拍照模式第五帧和第十六帧偏色的场景,小分辨率计算的白平衡增益并不适用于大分辨率图像上。
为什么小分辨率binning模式计算的白平衡增益不能适用于大分辨图像呢?
有以下可能的原因:
- 如果小分辨率和大分辨率使用的是大分辨率的ISP参数,那么由于分辨率的不一样,小分辨率的LSC模块并不能直接使用大分辨率的LSC模块的参数。如果直接使用大窗的LSC参数,可能会影响小分辨率白平衡增益的计算和自动曝光计算的AE参数。因为白平衡的统计和RAW域的亮度统计都是在BLC、LSC之后统计的,如果小分辨率下的LSC参数不对,识别影响AWB/AE的计算,最终也将影响到大分辨率的图像效果;
- 小分辨binning模式和大分辨率normal模式,其R/G、B/G的白点落点在色温坐标系在会有一定差异。在某些场景下差异可能会比较明显。这种明显的差异导致了小分辨率收敛的白平衡增益不能直接用在大分辨率图像上。
- 大分辨率的白平衡收敛速度太慢,导致到七帧以后的第十六帧都还没达到收敛状态。