赞
踩
“ 最近有读者提问,问有没有关于ISP模块之间的影响总结,由于其刚接触 ISP,会发现调试过程中调试某一个模块,同时有其他模块会受影响,可能会感觉有点困扰。所以本文大概整理一下关于 ISP 中各个模块的调试顺序,及相互影响,希望可以给大家调试过程中,提供一些思路。”
1、首先肯定要了解你所调试的平台,知道每个模块的具体功能是什么,针对具体问题,可以知道是要动哪个模块的参数。
2、其次是要了解整个ISP pipeline(可以找平台厂提供 isp 的 spec),知道每个模块的处理顺序,你才能知道哪个模块在前,哪个模块在后,当你调在前的模块,肯定是会影响到后面的模块。
如上是一个比较简单的 ISP pipeline,各家平台会有些差异,但其实大概的流程原理都是差不多的,可能会多些小的功能模块,及做一些数据转换处理,比如raw域去噪前,因为raw数据比较暗,可能会加一条曲线把暗部调亮一点,有助于去噪的处理。
简单过一下如上的流程图,可以分为3个模块来看,sensor 出来的是 bayer 格式的raw 数据,中间经过黑电平矫正(blc),去除暗电流、镜头阴影矫正(lsc),去掉边缘暗角及color shading、接着经过坏点矫正(dpc),去除sensor中的动静态坏点。
再经过 Demosaic 处理后,输出RGB格式的数据,接着会经过时/空域的去噪处理、白平衡(awb)、颜色矩阵矫正(ccm)、gamma的处理,后面会转换成YUV格式的数据输出,再经过自动曝光(ae)、降彩噪(CNR)、锐化等的处理,最后经过编码输出显示出来。
3、基于上面的理解后,可以总结出来,整个isp的调试模块大致可以分为如下几类:
a、亮度/对比度相关的模块,如 gamma、ltm、gtm、aeb、色彩相关模块,如 ccm、awb、gamma、blcc、清晰度相关模块,如 ae、lsc、2d/3d nr、demosaic、dpc
基本的一个调试流程是,先做模组的特征化标定(blc、lsc、Noise profile、gamma、awb、ccm、cac),得到一组标定参数后,再基于这组静态参数去做在线的调试,所以必须得确保标定的参数是准确的,否则后面调试肯定是会出问题的。另外关于调试流程也可以参考这篇文章:ISP调试流程概述
在线动态参数的调整,一般先调整AE,因为AE决定你当前的增益,我们是按增益来调节每档的参数的,接着是可以是亮度相关模块的调整,主要是关注高亮及暗部的效果,增加可见性,但暗部拉亮后,噪声有时也会变明显。画面通透感的要求,主要就是提高对比度,使暗处更黑,亮处更亮来实现,但要注意平衡暗部的细节损失。
接着可以是降噪和清晰度模块的调试,降噪过大肯定是会对清晰度有损失,调试时是需要平衡的, 还有调试时要注意是raw域还是yuv域的处理(如果是raw域锐化或去噪过大,可能就会放大噪声或者损失清晰度,你后续yuv域的去噪或锐化就做不出来了),另外清晰度不够时,要思考是否是 demosaic 模块细节没做出来,或者raw域去噪太强,导致细节损失了,而不是一味的去调整锐化强度。
色彩相关的模块可以单独去调影响不大,但ccm调整的过饱和时,会出现色噪。一般整体的偏色都是白平衡偏了,图像中某个颜色不对可以调整ccm,一般情况下不建议手动去调整ccm,因为这肯定是会影响到其他颜色的。另外gamma的调整会对颜色有影响(具体为啥会有影响,我后续文章会在具体总结)。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。