科普驿站 第七十九期
科目:物理
难度:B1
讲师:不是树懒
目前市面上的数码相机(包括手机相机)的传感器绝大多数都采用CMOS(互补金属氧化物半导体)传感器,也有部分相机采用CCD传感器,但原理大致相同。
数码相机传感器由许多个整齐排列的像素组成,每一个像素都是一个容器,可以接受光线并将其转化成电荷储存在像素内。光线越强则转化的电荷越多。通过逐个统计每个像素里电荷的数量即可还原每个像素上的光线强弱,进而将图像记录下来。
打个比方,将一万个桶摆放成100行100列并向其以一定的模式洒水,当水滴落到桶口时会被冻成冰并掉入桶内。通过统计每个桶内冰的量即可还原洒水的模式。
然而传感器的记录过程总会产生误差,得到的数据不可能100%准确。就像麦克风录制的声音和原始的声音总会有差异一样,这图像的误差也被称作“噪声”。因为图像是由众多的像素点组成的,产生误差的像素点与背景相比会比较突兀,看起来就像是图像上的杂乱小点。因此也被称作“噪点”。
下图上的白色小点均为拍摄到的星星,背景则布满密密麻麻的噪点,使画面十分脏乱。那么,噪声主要是怎么产生的呢?怎么样减小噪声?
1.散粒噪声(shot noise)
在学习噪声之前,我们首先要了解信噪比(SNR, Signal-Noise Ratio)的概念。
信噪比,顾名思义,就是(相机传感器的电)信号与噪声强度的比值。信号强度越高,噪声强度越低,则信噪比越高;反之则越低。信噪比越高,信号的可辨识度越高,拿声音来做例子:当一个人的谈话声被噪音所干扰时,可以选择提高嗓门(增强信号)或者降低噪声的方式来让别人听得清楚。因此,想让噪点对画面的影响不那么严重,关键在于提升信噪比,也就是增强信号或者降低噪声信号。
第一种要介绍的噪声,是最常见的噪声:散粒噪声。有许多人可能有在夜晚环境下拍照画质降低的体验。画面中的颗粒感,主要原因就是散粒噪声的影响。(见图一)
散粒噪声的来源是光的量子特性。上一节中我们将传感器比作水桶组成的阵列,而光子就像淋在上面的水滴。当进光量少时,不同像素(桶)之间所得到的信号(水滴数)就会比较随机。假如我们试图均匀向每个桶中洒一滴水,当我们统计桶中水量时,有的桶中可能一滴水也没有,有的桶中有一滴水,有的桶中有两滴。这就带来了极大的随机性。而假如我们试图往每个桶中洒一千滴水,各个桶之间水量的差异也会不止一滴两滴,但基本上不可能存在空桶或者有两千滴水的桶。也就是说相差的水量(噪声强度)会变大,但因为总水量(信号强度)变大,所以相差的比例(信噪比)减小了。
简单来说,对散粒噪声而言,当进光量增加时,信号强度和噪声强度都会增加,但因为信号强度增加较快,所以信噪比会增加,画质就会变好。总的来说每增加n倍进光量,散粒噪声的影响就会下降√n倍。(见图二,同一张照片中亮处与暗处噪点影响不同)
增加进光量的方式主要有加大光圈(仅限可变光圈相机镜头)、增加曝光时间和增加目标亮度(如打灯)。增加感光度(iso)并不能增加进光量,在增加进光量的同时一般会降低iso值以防过度曝光,这也就是为什么很多人说高iso会降低画质,其实高iso只会限制画质上限,不会提高画质的下限。
手机相机会对噪点较高的照片进行算法涂抹,消除噪点的同时会牺牲清晰度,因此就算是手机,提升进光量也会提升画质(图3)
简单来说,想降低散粒噪声的影响,就尽可能用大光圈,延长曝光时间,或者用灯。但噪声不止散粒噪声一种,下期我们再来聊聊读取噪声。
2.读取噪声
为什么常说尼康/索尼拍风景好?为什么佳能动态范围频遭吐槽?为何提倡向右曝光?高iso竟能拯救画质?
在之前的科普中我们提到,相机传感器会将光子转化成电子储存在自己的像素中。在读取图像时像素里的电子会被转换成电流并经由放大电路对电流进行放大,而后读取电路会读取电流的强弱并将其转换成信号传给相机处理器(用水桶来做比喻的话就是把里面的水翻几倍再分配个人去统计水量),在CMOS中每个像素均有一个放大-读取电路(每个桶都有人负责统计水量)。因为每个放大-读取电路不可能做到完全一致,且读取过程中对CMOS通电时会导致无可避免的干扰,所以在放大-读取过程中会引入新的误差,由此所造成的噪声即被称为读取噪声(两个装有500滴水的水桶可能会因为测量过程中的原因,统计时被数成493滴和504滴水)。
读取噪声的强弱是传感器的固有属性,受进光量影响不大。十年前的佳能传感器因为各种原因,读取噪声相对于索尼传感器而言一直居高不下,索尼的最新几代dual gain传感器更是将读取噪声降到了几乎可以忽略的地步。不过随着技术的发展,各大厂商的最新几代传感器都能将读取噪声压制到常规使用时几乎不影响画质的地步。然而在天文摄影等极端条件下,还是不能忽视读取噪声。
如何降低读取噪声对画质的影响?就像我们在上一篇中所提,当信号强度增加而噪声强度不变(或噪声增加的速度不如信号增加的速度快)时信噪比会提升。因此当信号强度增加至n倍时读取噪声的影响就会变成原来的1/n,那么如何增加信号强度?除了增加进光量以外也可增加iso,因为改变iso是在读取之前对信号进行放大时,改变放大的比例(比如把500滴水翻十倍变成5000滴水再数,4993滴水和5004滴水之间的差异就会比483和504之间的差异小很多)。这也是以前佳能被人吐槽暗部全是噪点的原因,前几代佳能传感器的读取噪声过高,近年来有所改善。
上一篇中我们提到iso会影响画质的上限,因为iso越高越容易过曝,最大通光量就越少。但当通光量远远达不到过曝的程度时,提高iso对读取噪声的压制就变得明显了。这就是为什么有些摄影教程中会提倡向右曝光——在不过曝的情况下通过提高进光量或iso的方式尽可能充足曝光,这样得到的画质会比前期欠曝然后后期软件提亮的画质要好。
3. 热噪声
热噪声也被称为暗电流。
CMOS生产时每个像素之间都不可能做到完全一致,总会在电阻等各个方面存在微小的差异。有些像素比其他像素更容易吸引电荷,有些更容易损失电荷,也就产生了信号的不均匀,这就是热噪声。打个比方,有50只羊在山坡上,50只羊在山坡下,然后惊吓它们让它们随机乱跑,大部分情况下,当羊群停下来的时候 总是山坡下的羊更多。温度更高分子热运动越剧烈/时间越长,热噪声的影响越显著。拿羊来做比较的话就是羊跑得越欢、跑得时间越长,坡下的羊越多。
消除热噪声的方法主要有两种。第一种是拍摄并扣除暗场。
前面说到热噪声的来源是CMOS像素之间的差异和电荷随机运动导致的迁移,而每个CMOS的差异基本上可以说是一成不变,也就是说在温度相近、工作时间相同的情况下,热噪声的模式也是相似的。可以在没有光线到达CMOS的情况下用同样的温度与同样的曝光时间,近似还原出热噪声的模式,再将其从图像中扣除。实际应用中要拍摄不只一张而是几十上百张热噪声文件,以减少随机性。
还有另一种简单粗暴的方法就是直接给传感器降温,减少分子热运动。CCD相机因为功率较大发热严重,因此高端的CCD天文相机都采用半导体制冷元件来接降温。降温能显著降低热噪声的强度,专业天文台更是会使用液氮甚至液氦给感光元件降温。但自带制冷的天文相机一般都很贵。实际操作中的话可以冬天去黑龙江拍摄(不)或者淘宝上也有给相机用的外接制冷模块,但效果有限。
【本文为耀星会作者的原创作品,未经允许,禁止盗用、转载、篡改文章,否则耀星会和作者将追究版权责任。】