系列文章目录
前言
Noise, Dynamic Range and Bit Depth in Digital SLRs 翻译
https://homes.psd.uchicago.edu/~ejmartin/pix/20d/tests/noise/index.html
数字单反相机中的噪点、动态范围和位深
数字成像通过放置在相机光学元件焦平面上的传感器来记录视觉信息,以测量曝光期间收集的光线。传感器由像素阵列构成,每个像素的任务是收集到达传感器一小块区域内的光线。传感器及其像素收集光线的效率,以及它确定每个像素收集光量的准确性,对于记录图像的质量至关重要。入射光是摄影师希望相机能够忠实转录的信号;记录过程中的不准确会产生噪点,并扭曲所拍摄的场景。为了从数字成像中获得最佳性能,了解图像噪点的各种来源、数码相机中的各种设计选择如何影响这种噪点、摄影曝光中的选择如何有助于减少噪点,以及如何在拍摄后改善噪点的视觉效果,都是很有帮助的。
本文涉及以下主题:
数字成像中的噪声来源(本页)
a. 光子散粒噪声(Photon Shot Noise)
b. 读取噪声(Read Noise)
c. 模式噪声(Pattern Noise)
d. 热噪声(Thermal Noise)
e. 像素响应不均匀性(Pixel Response Non-uniformity)
f. 量化误差(Quantization Error)
测量噪声
读取噪声与散粒噪声
信噪比与曝光,以及动态范围(S/N Ratio vs. Exposure, and Dynamic Range)
读取噪声与ISO(Read Noise vs. ISO)
噪声的一些后果
噪声、动态范围和位深(Noise, Dynamic Range, and Bit Depth)
信噪比与曝光决策(S/N and Exposure Decisions)
大像素与小像素(BIG PIXELS vs. Small Pixels)
补充:传感器动态范围与相机动态范围(Sensor DR vs. Camera DR)
原始数据降噪的方面(Aspects of Noise Reduction on Raw Data)
本文在呈现噪声数据时,将基于原始数据的分析。直接测量原始数据很重要,不要将其转换为输出图像;原始数据的转换过程不仅会对原始值进行非线性转换,还会将附近像素的数据混合在一起,让人很难判断结果中有多少是由于原始图像数据造成的,又有多少是由于原始转换器处理造成的。本文分析所用软件工具有:dcraw,一款可免费使用的程序,允许读取原始数据并将其输出到数据文件,而无需进一步处理;IRIS,一款可免费使用的程序,包含许多天体摄影中使用的分析工具;ImageJ,另一款由美国国立卫生研究院维护的可免费使用的图像分析程序;以及Mathematica,一款通用型数学分析程序。
以下是本文中使用的一些专业术语(提供Wikipedia词条链接):
光子:光的量子;照亮表面(例如相机传感器)的光的强度与每秒撞击它的光子数成正比。
感光元件:像素的感光部分(传感器元件的缩写)。
模数转换器(ADC):一种将电压转换为数字的电子元件。
原始值:模数转换器输出的数字;原始值的测量单位称为模拟数字单位(ADU)或数据数(DN)。
增益:感光元件捕获的光子数与模拟数字单位(ADU)表示的原始值之间的转换系数。如果捕获的光子数为1000,原始值为100,则增益为10(1000个光子=100ADU×10个光子/ADU)。
标准差:噪声的度量——数据值围绕其平均值(也称为均值)的典型分布范围。
信噪比(S/N):所需信号与背景噪声量的比较;比率越高,噪声越不明显。
动态范围:最大可记录信号与最小可检测信号之间的比率。对我们来说,信号将是像素的照明水平。
位深(色调深度):用于记录像素照明水平的位数(二进制位数)。
黑帧:在装上镜头盖或机身盖的情况下拍摄的图像,其目的是在没有任何照明的情况下测量相机的噪声。
平方和相加:独立的噪声源通过它们的平方相加来得到总噪声的平方——由噪声N1、N2、N3组合产生的总噪声N为
N² = (N1)² + (N2)² + (N3)²
对于技术导向型读者,本文将呈现定量结果的数学推导;对于那些希望跳过这些技术插曲的读者,每次讨论结束时都将给出一个“总结”,说明结果带来的定性影响。
二、噪声的来源
数字图像噪声有几个典型来源:
2.1 光子散粒噪声
光子散粒噪声:光由称为光子的离散能量束组成——光越强,每秒照亮场景的光子数就越多。光子流将达到传感器给定区域的平均通量(每秒的数量);同时,该平均值周围也会有波动。支配这些波动的统计规律称为泊松统计,它相当普遍,在各种情况下都会遇到。有关详细信息和各种示例,请参见此维基百科词条。光子计数的波动在图像中表现为噪声——泊松噪声,也称为光子散粒噪声;图1显示了一个示例。“散粒噪声”一词来源于一个类比,即将构成光流的离散光子比作由霰弹枪射出的弹丸流(特别地,“shot”在这里并不表示“摄影图像”)。
图1 -佳能1D3相机(绿色通道)拍摄的天空图像中的光子散粒噪声。在右侧的直方图中,横坐标是原始电平(原始单位有时称为模拟数字单位ADU或数据数DN),纵坐标表示样本中具有该原始电平的像素数。通过计算两幅连续图像的差异来分离光子噪声;那么,任何单个像素的原始值之间的差异仅由泊松统计引起的光子计数的波动(除了来自读出噪声的较小贡献)造成。
噪声直方图本质上是一个高斯分布——一个标准的“钟形曲线”。这条钟形曲线的标准差就是钟的宽度。不同像素之间的光子计数波动是完全不相关的;就其空间变化而言,光子散粒噪声是白噪声(换句话说,它在所有空间频率上具有相同的强度);这意味着它具有均匀的椒盐外观,没有结构或模式。
遵循泊松统计的波动的一个重要特征是,它们的标准差——即典型计数中偏离平均值的典型波动——等于平均计数本身的平方根。也就是说,如果平均收集到10000个光子,那么偏离这个平均光子数的典型波动将是大约100——计数通常将在大约9900到10100之间变化。如果平均收集到100个光子,那么每次计数的变化将是+/-10。因此,随着信号增强,光子散粒噪声也会增强,但增速较慢;并且信噪比会随着收集到的光子数的平方根而增加。光照越强,散粒噪声越不明显;光照越弱,噪声越明显。
2.2 读出噪声
传感器读出噪声:感光元件(像素的感光部分)收集的光子会刺激电子的发射,每个捕获的光子对应一个电子。曝光后,累积的光电子会转换成一个与其数量成比例的电压;然后,这个电压会被放大,放大量与相机中设置的ISO增益成比例,并在模拟数字转换器(ADC)中进行数字化。代表所有像素光子计数的数字构成图像的原始数据(原始单位有时称为模拟数字单位ADU或数据数DN)。我们将这个数字称为像素的原始值。
在理想情况下,原始数据中记录的数字将与光子计数直接成正比。光子数与相应原始值之间的比例常数传统上(但不太恰当地)被称为传感器的增益(它实际上不是增益,而是光电子计数和原始值之间的转换系数)。由于每增加一倍ISO,给定曝光的原始值就会增加一倍,因此增益与ISO成反比——ISO增加一倍,增益就会减半,因为当ISO增加一倍时,捕获的相同数量的光子会转换成两倍大的原始值。
在现实世界中,原始电平并不能精确地反映光子计数。信号处理链中的每个电子电路元件——从感光元件读出、到ISO增益、再到数字化——都会遭受电压波动,导致原始值与理想的光子计数比例值产生偏差。由于信号处理电子元件导致的原始值波动构成了传感器的读出噪声。
图2 - ISO 800时1D3的读出噪声。噪声的直方图大致呈高斯分布。
平均值1024是由于佳能对原始数据应用了一个偏移量(见第2页)。
可以通过拍摄一幅“黑帧”图像来分离读出噪声,即在最高可用快门速度下,盖上镜头盖进行曝光;因此,没有光子被捕获,只剩下读取传感器时产生的电子噪声。
2.3 模式噪声
模式噪声:就空间变化而言,读出噪声并不完全是白噪声。仔细观察图2中的波动,会发现存在一维模式。因为人眼适应于感知模式,所以这种模式或条带噪声在视觉上可能比白噪声更明显,即使它对总噪声的贡献较小。模式噪声在较旧的型号(如佳能20D)中更为严重;见图3。
图3 - ISO 800时20D的模式噪声(1000x800像素裁剪)。固定模式噪声可以被去除。通过对16幅相同的黑帧图像进行平均,制作一个模板,并将其从图像中减去,大部分固定模式噪声就被去除了。将鼠标悬停在图像上即可查看结果。
在此示例中,模式噪声的残余可变分量主要由水平条带噪声组成。
模式噪声既可以具有固定分量(图像之间不会变化),也可以具有可变分量(虽然像素之间不是随机的,但图像之间并不相同)。图3显示了ISO 800时20D的读出噪声(盖上镜头盖曝光1/1000秒,为了可视化目的进行了色阶调整)。图中存在水平和垂直条带。通过平均16幅相同的黑帧图像来创建固定模式噪声模板;这样可以平均掉读出噪声的任何可变波动分量,主要留下固定分量。将固定模式噪声模板从读出噪声中减去的效果可以通过将鼠标悬停在图3中的图像上来查看。在此示例中,垂直条带基本上消失了,只留下一些水平方向的可变条带噪声,以及读出噪声的均匀(白色)分量;读出噪声直方图的宽度减小了约20%。这表明模式噪声在视觉上可能造成的干扰程度——尽管固定模式噪声只占总噪声的20%左右,但由于我们的感知适应于识别模式、发现边缘等,因此它相当明显。
2.4 热噪声
热噪声:感测元件中电子的热扰动可以释放出少量电子;这些热电子与光子(光)吸收所释放的电子无法区分,因此会导致原始数据所表示的光子计数失真。热电子以每单位时间相对恒定的速率释放,因此热噪声会随着曝光时间的增加而增加。图4给出了20D黑帧原始值标准差(左下角1000x1000像素裁剪)与曝光时间的关系图。
图4 - ISO 400时20D黑帧的热噪声。曝光时间为15秒时数据出现拐点,是因为最大像素原始电平达到4095(该相机的最大值),这表明标准差的增加主要是由于分布中的一些异常值。
在此特定样本中,噪声水平随曝光时间而上升,曝光时间超过15秒后,斜率减小。这种行为变化的原因是,标准差的增加主要是由于分布尾部的一些“热”像素;当这些像素的原始值达到4095(该相机的最大值)时,它们对标准差的贡献达到饱和,只有其他像素导致标准差(较慢地)上升。在同一图像(用于生成上述图表)的裁剪部分中,如果选择避开这些“热”像素,标准差上升的速度会更慢。
为了显示这些异常“热”像素数量的增长,图5用白色标出了两个不同曝光时间下,其值高于平均值四个或更多标准差的像素(在图4所用裁剪部分的四分之一区域中)。
图5 - 热像素是热噪声的主要来源。图中用白色标出的像素,其值高于平均值四个或更多标准差。左侧图像的曝光时间为15秒;右侧为30秒。
导致图像质量下降的另一种热效应是放大器辉光,这是由读出放大器发出的红外辐射(热)引起的。
图6 - 佳能20D相机612秒曝光下的放大器辉光(右下角)。
图6 - 佳能20D相机612秒曝光下的放大器辉光(右下角)。
对于一秒或更短时间的曝光,读出噪声相对恒定,热噪声对整体图像噪声的贡献可以忽略不计。在我们的讨论中将不再进一步考虑。
2.5 像素响应不均匀性(PRNU)
像素响应不均匀性(PRNU):传感器中的并非所有像素在捕获和计数光子时都具有完全相同的效率;即使没有读出噪声、光子噪声等,由于像素响应不均匀性或PRNU,原始计数仍然会存在变化。图7绘制了PRNU“噪声”随曝光量的变化。该图是通过分别测量光子散粒噪声和读出噪声的总和,并从一系列曝光中的总噪声中适当减去这些噪声而获得的;图7中绘制的是这种剩余噪声。关于PRNU测量的更完整解释,请参见第2页。
图7 - 佳能20D相机在ISO 100时,由像素响应不均匀性产生的噪声,作为原始值的函数。将鼠标悬停在上面,可与读出噪声和光子散粒噪声的总和进行比较。像素之间的响应波动约为0.6%。
PRNU“噪声”与曝光水平成正比增长——不同的像素记录的光子百分比不同,因此,PRNU对原始值标准差的贡献与曝光水平直接成正比。另一方面,光子散粒噪声随曝光量的平方根增长;而读出噪声与曝光水平无关。因此,如图7中鼠标悬停所示,在最高曝光水平下,PRNU最为重要。例如,在我的20D相机上,当ISO为100,原始值约为2500时(大致相当于最亮部分上方2/3的曝光值),PRNU等于光子散粒噪声和读出噪声的总和。在较低的曝光水平下,光子噪声是主要的贡献因素,直到进入深阴影区域,读出噪声才变得重要。
2.5 量化误差
量化误差:当传感器产生的模拟电压信号被数字化为原始值时,它会被四舍五入到附近的整数值。由于这种四舍五入,原始值会略微偏离实际信号;这种由数字化引入的误差称为量化误差,有时也称为量化噪声。实际上,它对噪声的贡献相当小。图8显示了量化对噪声直方图的影响。
图8 - 对含噪信号进行量化引入的误差相当小。左侧,噪声宽度为8个等级;右侧,量化步长增加到8个等级,但直方图的宽度增加了不到10%。
在0-255的范围内,向均匀的灰色背景添加了宽度为8个等级的噪声;然后将位深度截断,将等级压缩8倍,然后再扩展8倍。图像的左侧显示了增加量化步长之前的图像及其直方图;右侧,量化步长等于噪声剖面的原始宽度,直方图的标准差增加了不到10%。更一般地说,在典型图像中,舍入误差会因像素而异,取量化步长的正负一半之间的所有值。对一组均匀分布的输入值进行量化误差平均,将产生约量化步长0.3的平均量化误差。因此,在数字成像中,只要噪声超过量化步长,量化误差就可以忽略不计。