所谓HDR,是英文High-Dynamic Range的缩写,意为“高动态范围”。
关于数码照片的动态范围
千万不要以为动态范围(Dynamic Range)是数码相机特有的一个参数,更不要认为有了CG才有了动态范围的概念,严格来说,动态范围是一个信息工程学概念,存在于任何信号采集、处理与记录的过程中。如果抛开摄影的艺术价值不谈,单就其科学性而言,摄影的过程就是一个光信号采集与记录的过程,与录音机记录声音是一个道理,同样存在数据采集、数据处理、数据记录的过程。
动态范围不能简单理解为最大信号与最小信号之间的范围,而是最大“不失真”信号与噪声信号的比值。具体到数码相机而言,决定动态范围大小的环节有三个,首先是图像传感器(CCD/CMOS)采集光信号时的动态范围,表现为可记录的最亮与最暗信号间的差值范围;然后是A/D转换的动态范围,表现为进行数码采样时的数据位,8bit、12bit、14bit还是16bit等,数据位越高,生成数码信号的动态范围越大;最后是文件记录时的动态范围,是24bit真彩色还是48bit真彩色。
如果原始信号没有足够的动态范围,A/D转换精度再高也无济于事,而如果A/D转换精度不足,图像传感器的丰富信号还是要丢失很多。最终数码照片的动态范围是取决于三个环节中最小的那一个,由于我们最终得到的照片是经过A/D转换之后的记录,之前图像传感器本身的动态范围是多少已经无从考察,所以,A/D转换的过程对于动态范围的大小至关重要。
关于数码图像处理的A/D转换
要深入理解数码照片动态范围的概念,不能不先说一下数码成像过程中的A/D转换问题。
数码感光元件的基本单位—像素(感光二极管)可以把光子转换为电子,电子信号由电荷电压转换器转换成电压,然后由A/D转换器——ADC(Analog to Digital Converter,模数转换器)采样,把模拟的电压信号转换成数字信号。由于在电脑中采用一系列由0和1组成的二进制代码来记录色彩和灰度,这组代码的位数就决定了能表示的色彩和灰度的数量。
一个1位的ADC仅仅能够记录两种色彩,白和黑。(2^1=2,二进制上为黑色“0” 和白色“1”)。当ADC采用8位记录色彩灰度信息时,我们将得到256(2^8=256)种不同的明暗梯度,而这仅仅是一条色彩通道,当我们考虑这个像素最终产生的是3条色彩通道的图像,我们就得到了256x256x256=16777216种色彩组合,也就是我们常说的24位色(每通道8位,3条通道一共24位),也就是所谓的真彩色。
ADC的作用就是把连续变化的大小不同的电压信号,根据一定的精度划分成一系列不连续的梯度,并以二进制的数字方式记录下来。当采样的精度不高时,也就是能够分辨的电压差比较大时,得到的灰度梯度数量会比较少,画面也会不够连续。
当灰度过渡达到256级时,我们已经不能分辨出相邻两个不同灰度之间的差异(实际上对于最下面一个灰度条,每个灰度还是大约两个像素的竖条),而成为连续过渡变化的,这是我们的眼睛能够分辨的极限。
“真HDR”和“伪HDR”
明白了A/D转换的位数问题,回过头来再谈HDR就比较明白了。
大家注意到,在本文开头,在谈到HDR照片时我用了“所谓”两个字,因为A/D转换和图像文件的数据位已经限定了数码照片动态范围的大小,对于只能记录24位图像信息的JPEG格式图像文件而言,是不可能有更“高动态范围”的,真正的HDR只存在于RAW文件和高数据位的TIFF文件,以及专有格式文件之中。
依目前的技术指标,计算机显卡在表示图象的时候是用8bit(256)级或16bit(65536)处理图像的,即使有所谓的HDR图像,也无法通过显示器呈现出与普通照片的区别。CG技术的HDR是以直接对应的方式记录亮度信息,记录了图片环境中的照明信息,因此我们可以使用这种图象来“照亮”场景,在“生成”图像的时候加入亮度信息,而HDR照片,事实上是凡是以JPG文件形式出现的,应该都说是一种“伪HDR”,只不过是将原来超出照片动态范围,被丢弃的那部分信息,映射叠加到8bit的范围之内而已。
而对于彩色的图像,每一个色彩都是由红绿蓝三种色调按照不同的比例混合而成,因此需要记录红绿蓝三个通道的灰度值。在24位色的情况下,(255,0,0)代表的就是饱和的纯红色,因为红色通道数值为255,而蓝绿色通道都为0,同理(0,255,0)为饱和的纯绿色,(0,0,255)为饱和的纯蓝色,而中间的色调都介于(0,0,0)黑色和(255,255,255)白色之间。这样得到的就是前面提到的1千6百多万的色彩组合,也是我们眼睛能够分辨的极限,这样的画面我们将不会发觉有不连续的banding出现,也就是所谓的真彩色。
一般消费级别的数码相机都配备了8位的ADC,也就是可以产生每通道256种灰度梯度。而高级一些的数码单反相机,由于配备了更精确以及动态范围更大的感光元件,能够记录更多的高光、暗部和中间色调的细微色调变化,因此为了配合能够记录的微小电压差异,常常选用10位(1024级/通道)甚至12位(4096级/通道)的ADC以精确的区分色调过渡。这些信息可以由RAW等格式记录下来,方便后期的进一步处理,而JPEG格式由于仅支持8位/通道的数据格式,显然无法记录全部的影调过渡信息,将丢失层次。
事实上在数码相机出现之前,风光摄影们早就在利用技术手段创造“伪HDR”照片了,“作伪”的手段就是渐变灰滤镜。直到今天,许多风光摄影仍随身携带渐变灰滤镜,如果现场光线的光比过大,超出了胶片或数码相机可记录的动态范围,摄影师就用渐变灰滤镜来压暗亮度过高的部位,使其细节能够被相机所记录。现在所谓的HDR只不过用数码技术代替了渐变灰滤镜而已。