1 拍照成像流程(专业词汇单位)
Camera理论基础和工作原理
光线通过镜头Lens进入摄像头内部,然后经过IR Filter过滤红外光,最后到达sensor(传感器),senor分为按照材质可以分为CMOS和CCD两种,可以将光学信号转换为电信号,再通过内部的ADC电路转换为数字信号,然后传输给DSP(如果有的话,如果没有则以DVP的方式传送数据到基带芯片baseband,此时的数据格式Raw Data,后面进行加工处理,转换成RGB、YUV等格式输出。
ISP,Image Signal Processor,图像信号处理器;
DSP,Data Signal Processor,数字信号处理器;
ISP,Image Sensor Processor(图像传感器处理器);
ISP(Image Sensor Processor)包含DSP,DSP包含ISP(Image Signal Processor)。
图像处理芯片 DSP:它的作用是将感光芯片获得的数据及时地快速地传递到中央处理器并刷新感光芯片,进入DSP的数据是RAW Data,采集到的原始数据。如果集成了DSP,则RAW Data会经过AWB、color matrix、lens shading、gamma、sharpness、AE和de-noise处理,最终输出YUV或者RGB格式的数据。
ISP一般用来处理Image Sensor(图像传感器)的输出数据,如进行:AEC(自动曝光控制)、AGC(自动增益控制)、AWB(自动白平衡)、色彩校正、Gamma校正、祛除坏点、Auto Black Level、Auto White Level 等等功能的处理。(这里认为ISP是一类特殊的处理图像信号的DSP)。
2 RAW数据处理流程:
‘ 传感器输出的RAW数据是原始的数据,即传感器直接记录的、与照度成线性关系的第一手数据。
整个RAW数据到显示在我们面前的数据需要经过下面主要的几个步骤:
1 线性处理:出于节省数据存储空间的目的,一些厂商(例如尼康和索尼)的 Raw Data 并不完全与像素点上的照度呈线性关系,而是会在编码上做一些处理,比如非线性压缩等,因此我们得到可能不是线性图像(例如Nikon cameras,反之Canon cameras,),如果不是线性数据,则自己归一化处理就行。
如果采用DNG(RAW格式统一转换的一个软件),则需要自己进行线性处理,此时,如果该厂商的图像进行了压缩,则对应得到的meta info含有LinearizationTable,我们需要处理一些,反之没有,如果采用Dcraw(一个专门处理RAW数据的开源工具),-4表示已经进行线性处理了,当然如果没有非线性压缩,图像还是存在偏移和尺度缩放的问题,还是需要进行线性化处理。( DNG会将Raw数据的结构统一)
- 2 白平衡:对 RGB 三通道乘上不同的增益系数,以补偿因为三种滤波片具有不同光谱灵敏度带来的影响,因此我们通常将 G 通道的增益系数固定为1,仅仅考虑 R 和 B 的系数。关于这两个系数具体数值应该取多少,则取决于相机的型号以及拍摄时使用的白平衡参数。实际上,在相机的白平衡设置里选择不同场景,就是在调整这两个增益系数。如果想还原为拍摄时使用的白平衡设置,可以在 Dcraw 中使用 –i -v 参数,这时屏幕上会显示出当时所使用的 R、B 通道的增益系数。
- 2 去马赛克:Raw来自图像传感器的原始数据显然包含了关于场景的信息,但人眼无法从本质上识别它,原始传感器数据通常以颜色过滤器阵列的形式出现,每个只包含关于单个颜色通道的信息:红色、绿色还是蓝色,因此Raw每一个单像素不能保持可观测光的三维特性,因此通过去马赛克得到每一个位置上的RGB(传感器上的RGB空间)。拜耳阵列是常见的颜色过滤器阵列,一般有BGGR,RGGB,GBRG,GRGB等排列模式,Bayer RGB是属于 RGB RAW data的,但是 RGB RAW data不一定是bayer pattern,通过插值算法(也就是去马赛克)得到每一个像素点的RGB值,最终得到一个RGB三通道的图像。
- 3 颜色空间转换:可感知颜色的维数为3。sRGB 和 AdobeRGB:设备无关的色彩空间,通过白平衡和去马赛克,我们得到了一个RGB图像,但是这个RGB不是电脑显示器所期望的。Dcraw 先将相机相关的 RGB 空间转换至 XYZ 空间,然后再从 XYZ 转换到 sRGB 作为输出。在 MATLAB 中我们将这两个步骤合二为一。下面我将与相机相关的 RGB 色彩空间称作 Camera。对于大部分相机,我们可以得到从 XYZ 空间到相机相关空间的变换关系,即已知 XYZ-to-Camera。而作为两种绝对色彩空间,sRGB-to-XYZ 也是固定的。因此我们必须获得适合自己相机的转换关系。dcraw.c 中的
adobe_coeff
函数下可以找到大量相机的转换关系。 - 4 亮度校正与伽马校正(Brightness and Gamma Correction)
对于大部分处于研究目的的图像处理流程,这一步不建议执行。在这一步之前,我们得到的图像仍然是与拍摄场景呈线性的,要想正常被看见,需要进行伽马校正得到非线性的数据,以及进行亮度校正,方便看见。