相机成像 - ISP之RAW域处理

在之前的文章中,知道了如何从镜头最终变成一张图片 - Camera 模组结构介绍

但是整个图像的效果质量是什么原理,图像效果才是一个电子消费者更为关注的部分。

在当前各个手机厂家的相机有着自己突出的特点,有的色彩艳丽,有的夜景效果好,有的超强的变焦功能。这些优势大部分都是在一个叫做"ISP"的模块中处理完成。

但是ISP是什么,如何将镜头的光线变成一张富有艺术感的照片,今天把ISP这个图像处理环节隆重介绍给大家。

ISP基本概念 

ISP(Image Signal Processor),图像信号处理器。ISP是负责接收感光元件的原始光信号数据进行处理,它是整个拍照、录像中图像质量的重要环节。

流程具体如图所示,我们就围绕这个图来把ISP中每个部分的处理给大家介绍一下。

拍摄图像整个流程可以理解为:外界景物的光线透过镜头Lens将光信号投射到CMOS上,转变为模拟电信号,经过A/D转换后变为数字图像信号,再将数字信号通过MIPI协议将数据传输,在ISP进行多种处理方式(BLC、LSC...),最终将图像输出到手机用于显示或者保存。

ISP是和硬件强相关的图像处理模块,可以看出来图像数据在ISP内部经历了两次颜色空间变换,分别在最初的RAW域、中间的RGB域、最终的YUV域处理完成。其中RAW、RGB、YUV是什么概念,分别介绍一下。

RAW域(RAW Domain),英文意思是原始的,也就是刚从sensor输出的图,最开始的没有任何处理的原始数据。

从sensor出来的图通过cmos上透红色、 透绿色和透蓝色的滤镜阵列单元(该图可以查看 镜头成像原理大揭秘 的cmos介绍部分)分别接收红(Red)、 绿(Green)、 蓝(Blue)三个分量的信息,将三个分量最终合成一个彩色信息。

但是人眼对绿色分量(Green)更敏感,因此Bayer格式的RAW数据包含了2个G、1个R和1个B,一般格式有GBRG、GRBG、BGGR、RGGB多种。

RGB域(RGB Domain),表示的是色彩的三原色,红色、绿色、蓝色三原色模型对人眼的刺激最敏感,因此使用RGB模型,更能接近人眼的显示。

YUV域(YUV Domain),就是Y分量、U分量、V分量三个分量的组合模型,Y分量表示亮度,U分量(蓝色投影)和 V分量(红色投影),人眼也是对Y亮度分量更敏感。YUV色彩模型源于RGB模型,两者有固定的数学关系。

Y = 0.299 * R + 0.587 * G + 0.114 * B;U = -0.169 * R - 0.331 * G + 0.5 * B;V = 0.5 *R - 0.419 * G - 0.081 * B;

ISP流程 

ISP是在不同域中进行图像处理,我们按序依次介绍每个部分的作用。

BLC(Black Level Compensation) 黑电平补偿 

黑电平本身的定义是黑色的最低值,也就是说sensor感光为零的时候输出的值就是黑电平。

它产生的问题还是由于硬件问题,首先是sensor器件会受到外界影响产生暗电流,导致输出不是绝对的0,影响真实的电平值;另一个方面是模拟信号转数字信号时,存在精度问题,可能无法区分出很小的电平值。

一般补偿方法就是在现有基础上减去一个值,这个值可以使用像素区前几行不感光的区域平均值作为校正值,进行补偿。

由于BLC的存在,导致图像信息不是线性数据,因此需要放在ISP处理的最前端,直接进行补偿后,以便后续数据通过处理变成线性数据。

            

LSC(Lens Shading Correction) 镜头矫正 

由于镜头对于光学折射不均匀导致的镜头周围出现阴影的现象。一般表现为四角偏暗或者四角偏色的情况。

镜头矫正LSC的方法是将整个图片分为16*16或者128*128的方块,求取每个交点的增益,利用双线性插值方法进行二次项矫正或者四次项矫正拟合再获取到每个像素的增益。

简单来说就是根据算法获取像素的亮度增益值,再给四角的像素进行补偿。

DPC(Defective Pixel Correction) 坏点矫正 

坏点一般是由于制造工艺的问题造成的,它是指某个像素点与周围像素有较大的差异。一般是在全黑的环境下出现白点或者高亮的环境下出现黑点。

坏点矫正通常两种方法:

一个是静态矫正,通过sensor厂商的后期标定,将坏点建立像素链表进行修复,也就是OTP方式,但是无法长期使用,日后容易出现问题。

另一种方式就是动态矫正,通过算法对每个点进行计算是否坏点,再通过算法进行矫正,算法核心是通过周围正确的像素点对坏点进行插值滤波。

NR(Noise Reduction) 降噪 

学过图像处理的同学都知道,sensor在输出图像的时候就会带有一些噪声,比如温度变高,环境变暗,传输过程中都会产生各种噪声。

原始RAW图经过ISP处理后,对图像本身的噪声会引入一些新的噪声,或者对原有噪声进行了放大。特别是LSC中,会对图像每个部分都会乘一个增益,在四角区域的增益值更大,导致噪声也会随着变大,更加明显。

在RAW域做降噪会比后期YUV域降噪更好,因为在sensor刚出图的原始数据中噪声的形态还未产生过多的非线性变化,这个时期去做降噪有更好的效果,并且也更容易处理。

因此在RAW域的降噪是整个ISP流程中主力的降噪节点,在ISP的前端进行降噪处理是比较合适的选择。

毕竟“防火要从源头掐灭”,就是这个道理。

降噪方法可以在空域(spatial  domain)、频域(frequency  domain)上进行。随着人工智能技术的发展也出现了基于深度学习的一些降噪算法,效果很可观,但是在ISP中算力无法满足深度学习的要求,并且ISP更重要的是实时的图像流,因此目前ISP主流仍然还是传统的滤波算法。

其中,NLM滤波和BM3D算法是利用块匹配,根据图像的相似特性,在一个滤波窗口进行计算。优点在于平滑性和边缘性更好,目前公认效果最好的降噪算法,但是计算量和资源消耗比较大。

华为的麒麟990中的降噪算法就是BM3D,手机端使用这种算法还是很强,降噪效果很好,不愧是当时的龙头。

AWB(Auto White Balance) 自动白平衡 

自动白平衡顾名思义,就是白色在任何色温下保持白色。

引入这个模块是由于人眼具有色彩恒常性,就是说人眼感知物体的颜色不会因为色温产生变化。

但是sensor并没有人眼这么强大,sensor在不同色温下白色会呈现出不同的颜色,例如晴朗的天空(高色温)下会偏蓝,烛光(低色温)下会偏红。

为了模拟人眼的成像效果,保证任何色温场景下都是白色,引入了AWB这个模块。

色温是一个什么概念?

是表示光线中包含颜色成分的一个计量单位,计量单位为“K”(开尔文)。用黑体在从绝对零度(-273℃)逐渐加温后呈现的颜色,由黑变红,转黄,发白,最后发出蓝色光。

当前AWB主要使用的方法是灰度世界法,完美反射法。

灰度世界法:在任何一个图像中,只要色彩足够变化,它的RGB三个分量的值会趋于相等,也就是灰色。因此,它会根据每个颜色通道的平均值来得到一个增益值,对每个像素都使用这个增益值进行校正。

完美反射法:利用图片中最亮的点,也就是RGB值最大的点,计算得到增益值,再对每个像素都使用这个增益值进行校正。


如上,ISP在RAW域中处理的流程就基本介绍完了,整个链路的顺序也不一定完全按照图中所述,不同厂家有自己的设计风格和理念,ISP处理流程也不尽相同。

我们只需要的是掌握每个模块的工作原理即可,剩下的RGB域、YUV域的处理流程做了什么,每个部分有什么作用。

欲知后事如何,且听下回分解!

更多技术文章,全网首发公众号“摸鱼IT”,希望大家关注、转发、点赞!

猜你喜欢

转载自blog.csdn.net/qrx941017/article/details/131572157