本文介绍了图像信号处理流程,包括传感器捕获光信号、ISO和RAW格式图像处理流程、去马赛克、降噪、白平衡和色彩空间变换、调色、重新缩放图像、色彩空间转换、图像压缩以及零延时拍照技术等环节。文章详细解释了每个步骤的作用和原理,帮助读者更好地理解一张照片的诞生。
文章中提到了CMOS作为传感器,不同相机有不同的画幅,如APS-C画幅、全画幅等,画幅越大,成像质量越好。
实际上当取景器开始预览时,相机便开始不断缓存快照,实现零延时。
本文是图像信号处理流程的一个总体的介绍,以便更好理解一张照片究竟是如何诞生的,实际的技术要复杂很多。
现在的相机多使用CMOS作为传感器,不同的相机有不同的画幅,如常见的APS-C画幅、全画幅等。
总的来说画幅越大,即
传感器尺寸
越大,最终的成像质量会越好,因为可以捕捉到更多的
光信号
。
常见的彩色图像格式是RGB三通道的,但是最
开始的光信号采集却不是每个像素都会采集RGB三个像素的信息
,这样做会有成本以及空间的问题,而是收集三种不同光的Sensor成拜尔阵列分布,后续再通过插值等手段去恢复。
CFA
的作用是过滤其他光线,使得我们需要的红、绿、蓝三种波段的光才能进入传感器。
但是不同的CFA(color filter array)过滤后,最终相机对于不同波段的光的敏感度曲线也是有差别的。
Sensor最终的值是光强和曝光时间的
线性函数
,结合前面的人眼的敏感曲线,这个阶段其实是对真实世界的光辐射的一个捕捉,并没有结合人眼特性去处理。
这个时候的图像也不是电子设备可以显示的常见色彩空间,需要后续进行转换,直接显示RAW-RGB会非常奇怪。
玩摄影的知道ISO代表感光度,值越高相机对光线敏感度越高,暗光下需要调高ISO,但是随之而来的是噪点会变明显。
但是其实相机捕捉到的实际光信号是不会因ISO变化而改变的,受限于光圈大小和Sensor曝光时间(快门时间),调整ISO本质上是调整传感器对得到的光信号的放大倍数,而在放大这个信号的同时,噪声也被放大了,就出现了前面提到的现象。
像素强度(Pixel "intensity")是个绝对值,主要取决于:
暗电流
矫正(Black Level Correction)与光学暗区(Optical black
)
即使没有光照,电路中也会存在噪声电流等。所以传感器会有一块光学暗区(OB)去捕捉没有光线时候采集到的信号,然后再用实际捕捉到的信号减去OB的信号,以减少噪声。
缺陷像素遮盖(Defective pixel mask)
传感器的可能存在一些有缺陷的相机,一般由相机厂商完成,通过插值等方法去处理。
平场矫正(Flat-field correction)
由于镜头、传感器位置等原因,会导致传感器最终捕捉到的不同区域的光强并不平均(有点类似一些镜头拍出来会有暗角),需要人为对对应的区域做补偿或者抑制。
即前面提到的,由于CMOS的RGB采集像素是分布不均匀的,需要通过插值去进行补偿
,使得最终得到的每个Pixel
都有RGB三个通道的值。
文章里提到了两个插值方法,即简单的平均插值,或根据与周围像素的相似度去分配权限求加权平均去插值。但是发展到今天实际上的技术应该要复杂很多,就不赘述了。
另外现在的很多传感器其实也不再采用拜尔阵列,而是有其他不同的排布方式。
接下来会根据噪点的大小去采
取不同程度的降噪处理,噪声越大采取的算法越激进,但是这个过程中其实会丢失很多信息与细节(例如手机由于传感器比较小,往往需要更激进的降噪算法)。
-
由于光子自身量子性质产生的噪声,这部分是与成像系统无关的,服从
泊松分布
;
-
传感器和电路系统自身的噪声,如暗电流等,服从正态分布;
而增益g又进一步放大了这个噪声(即IOS),所以一般ISO越高需要采取更加激进的降噪算法。
文中提到了一个简单的降噪算法,现在采用的技术会更复杂,但是思路值得借鉴。
5. 白平衡(White-balance)和色彩空间变换(White-balance)
这个部分需要把raw—RGB转换到一个通用色彩空间,以供后续处理,文章以CIE XYZ为例,但是实际上常用ProPhoto RGB。
白平衡
-
第一个阶段即需要通过白平衡去矫正原来的raw-RGB的值。
首先要得到Sensor对于光照环境的RGB值,然后用这个对角矩阵变换,就可以得到白平衡之后的颜色。
这里最关键的其实就是如何去得到这个白平衡设置值,这个值可以根据经验以及环境光照的色温去手动设置,也可以借助成像设备的自动白平衡算法去计算得到,但是这个就对白平衡算法的要求比较高,目前还有很多人在研究。
而白平衡中最关键的就是我们要知道哪里是图片中白色区域或者灰色区域,文章提到了两个简单的算法:
第一种就是“Gray world”算法,假设平均光谱的值是灰色,图像的平均应该具有相同的能量,即R=G=B,基于这个假设将图像的平均作为灰色。
第二种方法假设高光点是光源的一个镜面反射,那么就可以以R,G,B的最大值去估计光源的颜色。
同样实际上的白平衡算法会更加的复杂,这里只是个基础的传统处理方法。
色彩空间转换
-
第二个阶段是将raw-RGB映射变换到CIE XYZ色彩空间。
相机厂商会先去标定两个极值下(CCT 2500K与CCT 6500K)的CST矩阵,后续的在这个范围内的色温就可以通过这两个标定好的极值去做插值得到,就像这里的4300K。所以这个阶段的变换矩阵也同样需要上阶段估算出环境色温。
6. 调色(Color manipulation)
基本工作完成后,在这个阶段对色彩进行调整或者风格化处
理,使得最终的成像看起来更漂亮。
不同相机厂商成像风格的差异应该也主要在这个阶段产生,不同厂商有不同厂商的色彩科学。
一般来说通过LUT(3D Look up table)和1D的曲线进行调整,摄影后期LR或者PS调色的色调曲线应该也是在进行这一步一样的工作。