内容转载于知乎。
文章作者 刘斯宁是一位Camera技术大佬,做相机图像相关技术的,有兴趣可以关注一下。
前言
摄像机用来成像的感光元件叫做image sensor或imager。CMOS Image Sensor (CIS) 最早是美国喷气推进实验室(Jet Propulsion Laboratory, JPL)的一个研究项目,Dr. Eric Fossum 是业界公认的CIS技术发明人。
1992年,Dr. Eric R. Fossum 在美国加州Pasadena(帕萨迪纳)的喷气推进实验室工作,负责NASA一些雄心勃勃的太空探测器的建造和运行。那一年NASA向员工们发出了一个颇为有趣的要求 ——“更快,更好,更便宜”。作为JPL图像传感器研究的负责人,Fossum 负责重新发明NASA太空船上的巨型相机。当时在数码摄影市场上已经应用了CCD技术,但是CCD需要消耗大量的能量和相当多的支持芯片。Fossum 团队发现,如果能够消除在成像阵列中反复转移电荷的需要,那么这两个问题都将解决,于是就诞生了CMOS有源像素传感器。下图是JPL 首个CMOS APS 芯片,只有28x28个像素,像素尺寸40umx40um,诞生于1993年4月。APS 是Active Pixel Sensor (主动像素传感器)的缩写。


CMOS sensor 的本质是自带像素的相机芯片("camera-on-chip"),每个像素都可以进行自己的电荷转换,从而显着减少产生图像所需要的能量和支持电路。此外,CMOS传感器采用与大多数微处理器和存储器芯片相同的材料和技术制造,使其更容易制造并且最具成本效益。
CMOS的确“更快,更好,更便宜”,但是NASA的反响却并不乐观。Fossum 说“人们完全投入了CCD阵营,不相信这可以做到,甚至都没兴趣听一听。”但是Fossum 不是一个轻易屈服的人,在四处寻求投资无果之后,1995年Fossum 和他的妻子以及一位JPL同事Sabrina Kemeny 用自有资金创办了Photobit 公司。

一年后Fossum 离开了JPL全职加入Photobit,并邀请到了Georgia Tech 新博士毕业生Dr. Michael Kaplinsky 也加入Photobit 继续推进CMOS sensor 设计,这样一干就是5年,其中的艰辛想必也是不堪回首。最终Photobit 于2001年被美光半导体(Micron Technology)收购,成为了美光的CMOS业务部门,Michael 担任美光SoC Group 经理,主导了MT2000 (200万像素CMOS sensor)和的后续300万、500万像素sensor的开发并取得了商业成功。
在美光收购之前的2000年,Fossum 邀请了另一位高人Dr. Junichi Nakamura 加入了Photobit。Dr. Nakamura 毕业于东京大学,在奥林巴斯从事光学工作,并于1993~1996年间在JPL 做访问学者参与CMOS sensor 的设计开发。这位仁兄后来去了日本美光,并出版了一本非常不错的专著,建议从事camera 行业的同仁都该买一本惠存。

2003年Dr. Michael Kaplinsky和一位美光同事Dr. Vladimir Berezin 预见到高清CMOS sensor 的时代已经到来,他们必须做点什么,于是他们成立了Arecont Vision公司开始开发高清安防摄像机,Dr. Berezin 拿出了自己大部分积蓄,而Dr. Kaplinsky 向银行抵押了自己的唯一住房以换取40万美金的创业贷款,当这笔钱还剩下4000块的时候,Kaplinsky 和 Berezin 需要决定公司是准备两个月后关门,还是用这笔钱去Las Vegas参加世界安防展,去那里碰碰运气找找客户,如果找不到也就认命了。显然Kaplinsky 和Berezin 赌对了,在经历了种种磨难之后终于通过展会找到了第一笔订单,公司也迎来了转机和接下来蒸蒸日上的发展。Kaplinsky 于2006年底邀请到了Purdue 新毕业生Mr Sining Liu(也就是笔者)加入Arecont Vision 从事CMOS高清摄像机的开发,使笔者有机会亲身历证了世界安防行业的繁荣伴随着中国安防的崛起和外企的逐渐衰落。在曾经属于AV 的时代,笔者交付的camera 跟随米军部署在伊拉克战场最前线,跟随SpaceX Dragon 货运飞船进入了太空,也曾在东方大国的国庆阅兵仪式中默默服役。
由于发展理念上的分歧,Fossum 后来离开了美光,携巨款去南加州大学过起了安稳的教授生活,凭借历史上的贡献还能时不时获个伊丽莎白女王奖。美光的Pasadena office最终全部关闭,其CMOS部门于2008年独立出来成为了Aptina,后来又在2014年被ON Semiconductor 收购。美光的Pasadena office关闭后催生了一批camera相关的创业公司,有的做高速camera,有的做运动camera,有的做手机camera,有的做安防camera,虽然各有各的艰辛,但也各有各的乐趣。Pasadena是一个特别美丽的城市,笔者周末开车闲逛时也会经常路过JPL,总会想起这段历史。。。
P.S. 据史料记载,1936年时,加州理工大学的五个学生在宿舍里制作火箭燃料,结果发生了爆炸,把宿舍墙炸出了一个洞。令人不可思议的是,学校竟然没有收缴他们的作案工具,而是把他们赶到了郊外的一块河谷上让他们在那里继续做实验,于是他们就用学校的资助在河谷上建了一个火箭实验基地,这就是JPL的前身。那五个学生中就有“中国导弹之父”钱学森。
1 CMOS Sensor 原理
1.1 简介
CMOS 是英文Complementary Metal Oxide Semicondutor 的缩写,这是一种主流的半导体工艺,具有功耗低、速度快的优点,被广泛地用于制造CPU、存储器和各种数字逻辑芯片。基于CMOS 工艺设计的图像传感器叫做CMOS Image Sensor (CIS),与通用的半导体工艺尤其是存储器工艺相似度达到90%以上。
CMOS技术的主要特点是成对地使用PMOS和NMOS两种晶体管,PMOS负责拉高,NMOS负责拉低,两者配合可以实现数字信号的快速切换,这就是Complementary的具体含义。下图以最基本的反相器为例说明了CMOS技术的基本原理。

传统的 CMOS 数字电路使用'0'和'1'两种逻辑电压控制晶体管的Gate从而控制晶体管的电流流动,CMOS sensor 则是让光子直接进入晶体管内部生成电流,光信号的强弱直接决定了电流的大小。这是CMOS sensor与CMOS 数字逻辑的主要区别之处。
CMOS sensor 通常由像敏单元阵列、行驱动器、列驱动器、时序控制逻辑、AD转换器、数据总线输出接口、控制接口等几部分组成。这几部分功能通常都被集成在同一块硅片上,其工作过程一般可分为复位、光电转换、积分、读出几部分,如下所示。


英文中的camera 实际上包含了两类产品,一种是以拍摄静态图片为主的digital still camera,中文叫做相机,比如各种单反相机和微单类产品。


另一类是以拍摄连续视频为主的video camera,中文叫做摄像机,比如各种安防监控摄像头(video surveillance camera/CCTV security camera),运动DV,家用camcorder,以及录制影视节目用的电影摄像机(cinema camera)。





用于手机的camera则有一点特别,拍照和拍视频两种功能使用都比较频繁。

行车记录仪和流媒体后视镜属于车载camera产品,也是近年来增长比较快的市场。

在所有这些camera 产品中,CMOS sensor 是当之无愧的核心元件,它位于镜头和图像信号处理器(ISP)之间,把光信号转换成ISP能够处理的数字信号(电信号)。CMOS sensor 与镜头、ISP一起构成了camera 的灵魂,决定了camera 的核心价值。

当人们选购camera产品时,可能第一关注的就是分辨率指标,这个指标也是很多普通消费者唯一能够理解的技术指标。比如某手机支持1200万像素摄像头,它背后的意义是该手机可能使用SONY IMX378 sensor,该sensor在抓拍静态照片时输出分辨率为4056x3040的完整尺寸图像,而拍照之前的预览视频则一般默认是1920x1080的FHD高清图像。
有些眼尖的读者已经注意到这个问题了,为什么抓拍和预览时图像分辨率会不同?原因并不复杂,第一是省电,处理1200万像素的预览视频消耗的能量基本上是200万像素的6倍,手机的电量会迅速耗光;第二是成本,能够处理1200万像素预览视频的ISP复杂度更高,芯片面积更大,价格也更贵。第三是没有必要,因为手机屏幕的主流才刚刚达到200万像素,更高的分辨率没有实际意义。基于以上原因,手机在抓拍和预览时需要进行模式切换,而每次切换模式需要为sensor和ISP重新配置大量的寄存器参数,一般会有2万个左右,所以在切换瞬间预览视频会短暂黑屏,而实际抓拍到的图像与预览图像会存在一个明显的时间延迟。这个延迟会给用户造成不少困扰,比如会使家长们在抓拍小孩的表情时遇到一定的技术困难,会错过很多生活中的精彩瞬间。
在印刷行业中,描述一幅图像的质量通常会使用“像素密度”的概念,一种常用的定义是PPI(pixel per inch)或DPI(dot per inch),即每英寸长度上(1in=25.4mm)打印多少个像素点。Photoshop软件中默认的标准像素密度是72dpi,高质量标准是300dpi。
下面的例子说明了不同像素密度对应的图像质量效果。

一张A4 纸的尺寸是210mm×297mm,即8.27inx11.69in。当以72dpi质量打印图像时,图像的分辨率至少需要是595×842, 当以300dpi质量打印时,图像的分辨率至少需要是2480×3508。
在我国一般采用国际单位体系,因此像素密度通常用PPM(pixels per meter)单位。在安防行业中,人们一般将图像质量从高到低分为5个等级,每个等级可以满足一定的应用需求,即
- Identification:图像质量优秀,图像中提供了充足的细节,可以完全确定目标的身份,并排除其它可能性

- Recognition: 图像质量良好,图像提供的细节足以断定图像中的目标是否与真实人物(或参考照片)属于同一人物

- Classification:图像质量一般,图像提供的细节仅能帮助分辨体貌特征,如男女、高矮、颜色等,但不能断定全部细节

- Detection:图像质量差,仅能勉强分辨图像中是否存在关注的目标

- Useless:图像质量太差,不能说明任何问题
下图说明的是人脸识别场景涉及的图像质量等级

下图说明的是车牌识别场景涉及的图像质量等级

下图依次说明了像素密度从大到小时图像质量的变化情况。



1.2 光电转换
目前大部分的sensor都是以硅为感光材料制造的,硅材料的光谱响应如下图所示。

从图中可以看到,硅材料的光谱响应在波长1000nm的红外光附近达到峰值,在400nm的蓝光处只有峰值的15%左右,因此硅材料用于蓝光检测其实不算特别理想。在实际CIS产品中,特别是在暗光环境下,蓝色像素往往贡献了主要的噪声来源,成为影响图像质量的主要因素。从上图中可以看到,裸硅在可见光波段的光电转换效率大约是峰值的20%~60%,与入射光的波长有关。
Sensor感光的基本单元叫做“像点”,英文是photosite,每个sensor上承载了几百万甚至更多的像点,它们整齐、规律地排成一个阵列,构成sensor的像敏区。当可见光通过镜头入射到像点并被光敏区吸收后会有一定概率激发出电子,这个过程叫做光电转换,如下图所示。


光子激发出电子的概率也称为量子效率,由光激发产生的电子叫做光生电子或光电子。光子激发出电子会被像点下方的电场捕获并囚禁起来备用,如下图所示。这个电场的专业名称叫做“势阱”,后面会有专门讨论。

像点的作用可以类比成一个盛水的小桶,它可以在一定范围内记录其捕获的光电子数,如果入射的光子太少则可能什么都记录不到,如果入射的光子太多则只能记录其所能容纳的最大值,多余的光电子由于无处安置只能就地释放,就像水桶盛满之后再继续接水就会溢出一样。溢出的自由电子会被专门的机制捕获并排空。像点曝光的过程,非常类似下图所示的用很多小桶接雨水的过程。

1.3 像点微观结构
一个像点的解剖结构如下图所示。

从图中可以看到,一个像点主要由五部分功能构成
- 硅感光区,捕获光子,激发光生电子
- 势阱,用电场捕获、存储光生电子
- 电路,将电荷数量变换为电压信号,以及复位、选择、读出逻辑
- 滤光膜,选择性透过三种波长中的一种
- 微透镜,将入射光线会聚到感光区
1.4 Bayer Filter
为了能够区分颜色,人们在硅感光区上面设计了一层滤光膜,每个像素上方的滤光膜可以透过红、绿、蓝三种波长中的一种,而过滤掉另外两种,如下图所示。


像点之所以叫像点而不叫像素正式因为这了原因,一个严格意义上的像素,即pixel,是一个具备红、绿、蓝三个颜色分量的组合体,能够表达RGB空间中的一个点。而sensor上的一个像点只能表达三种颜色中的一个,所以在sensor范畴内并不存在严格意义上的像素概念。但是很多情况下人们并不刻意区分像素和像点在概念上的差别,经常会用像素来指代像点,一般也不会引起歧义。
所有的像点按照一定格式紧密排成一个阵列,构成sensor的像敏区,即color imaging array。像点阵列的微观效果如下图所示。

其中感光膜的布局叫做Bayer Mosaic Color Filter Arrary,通常简写为Bayer CFA或CFA。
早期的工艺微透镜之间是存在无效区域的,为了提高光能量的利用率,人们会努力扩大微透镜的有效面积,最终实现了无缝的透镜的阵列。

索尼的Power HAD CCD 技术在Hyper HAD 技术基础上缩小了微透镜间距,进一步提升了像素感光能力。

Bayer格式图片是伊士曼·柯达公司科学家Bryce Bayer发明的,拜耳阵列被广泛运用与数字图像处理领域。

不同的sensor可能设计成不同的布局方式,下面是几种常见的布局


下面是光线通过微透镜和Bayer阵列会聚到硅势阱激发出光生电子这一物理过程的示意图。需要说明的是光生电子本身是没有颜色概念的,此图中把电子的颜色只是为了说明该电子与所属像点的关系。

Bayer格式的数据一般称为RAW格式,需要用一定的算法变换成人们熟悉的RGB格式。

从RAW 数据计算RGB 数据的过程在数学上是一种不适定问题(ill-posed problem),理论上有无穷多种方法,因此与其说是一种科学,不如说是一种艺术。
下面介绍一种最简单的方法。这个方法考虑3x3范围内的9个像素,为简单起见只考虑两种情形,即中心像素为红色和绿色,其它情形同理。


上述过程常称为Bayer Demosaic,或者Debayer,经过此操作之后,每个像素就包含了3个完整的颜色分量,如下图所示。


上述各种Bayer格式的共同特点是接受一种颜色而拒绝两种颜色,因此理论上可以近似认为光能量损失了2/3,这是非常可惜的。为了提高光能量的利用率,人们提出了RYYB的pattern,这是基于CMY三基色的CFA pattern,Cyan是青色(Red的补色),Magenta是品红(Green的补色),Yellow是黄色(Blue的补色)。目前这种特殊的Bayer pattern已经在华为P30系列和荣耀20手机上实现了量产。据华为终端手机产品线总裁何刚透露,为了保证RYYB阵列在调色方面的准确性,华为付出了整整3年的时间。

1.5 成像与读出
Sensor成像的过程可以比喻成用水桶接水的过程,如下图所示。在这个比喻中,雨水即相当于光子,每个水桶即相当于一个像点,水桶收集雨水的过程即相当于像点的曝光过程。当收集到合适数量的雨水后,会有专门的工序统计每一个水桶收集到多少雨水,然后将桶倒空,重新开始下一次收集。

像点记录光信号以及信号读出的原理和计算机内存的工作原理非常相似。sensor 会使用一个行选信号(Row Select)和一个列选信号(Column Select)来选中一个存储单元(Pixel),被选中的存储单元与输出放大器联通,将其存储的电荷数转换成电压值输出到阵列外部。下图说明了这个过程。

像素读出的基本过程是
- 每个像素内置一个电荷/电压放大器(Charge/Voltage Converter, CVC),将像素势阱中电荷的数量转换成电压信号
- 读出逻辑选中某一行,该行所有像素的电荷/电压放大器的输出信号与列输出信号联通
- 读出逻辑继续选中某一列,该列信号与可编程输出放大器(Output Amplifier)联通,被选中的像素的电压信号被放大一定倍数
- 放大后的电压信号经ADC转换器后变成数字信号,在sensor 内部经过一定的ISP处理,最后通过一定的接口协议(如MIPI)输出到外部

1.6 卷帘曝光(rolling shutter)
CMOS sensor 的典型曝光方式称为卷帘曝光(rolling shutter),其曝光过程涉及两个控制信号,即
- 一个reset 信号负责将某一行像素清零,使其从零开始积累电荷
- 一个read 信号负责选择某一行,导致该行被读出
这两个信号的工作时序是reset 信号在先,read 信号在后,之间相差一个恒定的间隔,这个间隔在空间上看是两个信号前后相差固定的行数,在时间上看是一行像素被清零后,等待固定的时间后即被读出。
一行像素在遇到reset 信号之前处于“自由曝光”的状态,在遇到reset 之后开始“受控曝光”,在遇到read 信号之后又恢复到“自由曝光”状态,如下图所示。

下图显示了一个像素的曝光过程。
- 一个曝光过程从RESET开始,RESET信号保持一段时间后像素清零,恢复高电压
- 像素自由积分,时间取决于用户设置的曝光时间
- 像素采样,准备读出

Rolling shutter 在空间和时间上的关系如下图所示。


显然,sensor read 信号与 reset 信号之间的时间间隔就是每个像素能够积累光信号的时间,也就是人们所熟知的“曝光时间(exposure time)”,在技术领域则更多会使用“积分时间(integration time)”这个术语,它一般是以行为单位的一个量,能够精确地反映像素曝光过程的物理本质和实现原理。
熟悉摄影的人都会知道,如果被拍摄的物体在相对摄像机运动,则需要使用比较短的曝光时间,否则画面就会出现运动模糊,这是因为在曝光过程中物体不断从一个像素位置转移到另一个像素位置,物体运动速度越快,运动模糊越严重,如下图所示。

在下图的例子中,由于弹琴的手在不停地移动位置,所以在很多像素上都会留下一点曝光的痕迹,却没有任何一个像素上停留足够久的时间。
