2012年11月13日,83岁的柯达公司退休工程师布赖斯·拜尔(Bryce Bayer)离开了这个世界,永远离开了我们,离开了爱戴他的人们,而他在数字图像领域的杰出成就不应该就这样被淹没在历史的洪流里,所以,谨以2014年第一篇博文献给伟大的布赖斯·拜尔先生。
图像的历史
根据维基百科的记载,世界上的第一张照片是法国人约瑟夫·尼塞福尔·涅普斯于1826年拍摄完成。1825年时,涅普斯委托法国光学仪器商人夏尔·雪弗莱(Charles Chevalier)为他的暗箱(camera obscura)制作光学镜片,并于1826年(有说1827年)将其发明的感光材料放进暗箱,拍摄现存最早的照片。作品在其法国勃艮第的家里拍摄完成,通过其阁楼上的窗户拍摄,曝光时间超过8小时。
当年,他拍照时采用的感光剂是氯化银(silver chloride)。氯化银的一个非常重要的特性是当光线照射氯化银时,氯化银会分解成纯银和氯气,纯银在空气中很快氧化变成黑色。因此,底片颜色越深代表光线越强,颜色越浅代表光线越弱。黑白照片就是这样拍出来的。为了避免冲淡主题,如果想了解照片又是如何洗出来的盆友们,请点击[这里](http://zhishi.maigoo.com/7845.html)。
为了了解图像基础,我们首先需要一些额外知识来做铺垫和填充:图像的本质。不像声音,图像其实是我们人的视觉系统对外界的一种感受。 听着有点玄乎,还是让我们先从彩色图像说起吧!(因为黑白图像实在太简单了)
图像的本质
人类的视觉系统为什么能感知各种各样的颜色呢?这个问题最早可以追溯到18世纪,当时的Young(1809)和Helmholtz(1824)共同提出了人类视觉的三原色学说(也就是我们现在经常说提到的RGB色彩空间的鼻祖),他们认为即:人类的视网膜存在三种视锥细胞,分别含有对红、绿、蓝三种光线敏感的视色素,当一定波长的光线作用于视网膜时,以一定的比例使三种视锥细胞分别产生不同程度的兴奋,这样的信息传至中枢,就产生某一种颜色的感觉。
到了70年代,由于实验技术的进步,关于视网膜中有三种对不同波长光线特别敏感的视锥细胞的假说,已经被许多出色的实验所证实。例如:
①有人用不超过单个视锥直径的细小单色光束,逐个检查并绘制在体(最初实验是在金鱼和蝾螈等动物进行,以后是人)视锥细胞的光谱吸收曲线,发现所有绘制出来的曲线不外三种类型,分别代表了三类光谱吸收特性不同的视锥细胞,一类的吸收峰值在420nm处,一类在534nm处,一类在564nm处,差不多正好相当于蓝、绿、红三色光的波长。与上述视觉三原色学说的假设相符。
②用微电极记录单个视锥细胞感受器电位的方法,也得到了类似的结果,即不同单色光所引起的不同视锥细胞的超极化型感受器电位的大小也不同,峰值出现的情况也符合于三原色学说。
19世纪中期,英国物理学家麦克斯韦以视觉三原色作为前提和假设,提出红绿蓝作为基色,可以拍出彩色图片的论断。1861年,在麦克斯韦的指导下,人类的第一张彩色照片诞生了。拍摄采用的方法也非常简单,就是在镜头前分别用红丝带、绿丝带、蓝丝带过滤光线,曝光形成三张底片,然后用三部放映机向同一处投影这三张底片,每部放映机的镜头前都拧上对应颜色的镜头,它们的合成效果就是一张彩色照片。
然而,真正意义上的彩色胶卷其实是柯达公司1933年生产。虽然2013年柯达刚刚宣布破产,但也无法否认他曾在影像界的王者地位。
图像数字化的原理
第二次世界大战结束后,随着原子能技术、微电子、计算机、分子生物和遗传工程等领域的重大突破,标志着人类第三次科技革命的开始。随后的年代里,听到的最多的一个词就是“数字化”,到处都在谈数字化,就像当我们时下都说的“土豪”这个词。那时,如果你和人见面不聊点“e时代”的东西,还真不好意思。
很多人都可能不知道,图像领域数字化的理论基础是爱因斯坦的光电理论,通过图像传感器(image sensor)将光信号转换成电信号,然后再将模拟的电信号转换成数字信号来完成。**图像传感器本质上就是一个感光元件**,它与我们常见的太阳能电池有一些类似之处,**整块感光元件就是一个太阳能电池矩阵,每个像素点对应一个感光单位。** 当光照射到感光单元后,它会测量出光的强度然后产生一个相应的电信号,在经过模数转换电路A/D对电信号进行采样,紧接着是量化和编码并存储。这就是完成了图像的数字化。
然而,图像传感器有个非常大的缺陷:它只能感受光的强弱,无法感受光的波长。由于光的颜色是由波长决定的,所以图像传播器无法记录光的颜色值,也就是说,它只能拍黑白照片,这当然是无法容忍的。在前面麦克斯韦等人的影响下,人们开始尝试如何将彩色图片进行数字化。根据RGB三原色理论,一种解决办法就是照相机内置三个图像传感器,分别记录红、绿、蓝三种颜色,然后再将这三个值合并。这种方法能产生最准确的颜色信息,但是成本太高(现在很多高端大气上档次的人在追求这种模式,也已经有厂家推出了相应的设备,但价格非一般人能负担得起)。 1974年,柯达公司的工程师布赖斯·拜尔提出了一个全新方案,只用一块图像传感器,就解决了颜色的识别。他的做法是在图像传感器前面,设置一个滤光层(Color filter array),上面布满了滤光点,与下层的像素点逐一对应。也就是说,如果传感器是1600×1200个像素,那么它的上层就有1600×1200个滤光点。
每个感光单元就是一个像素,它前面的遮光片点只能允许通过红、绿、蓝之中的一种颜色,这意味着在它下层的像素点只可能有四种颜色:红、绿、蓝、黑(表示没有任何光通过),就像给每个像素点都“戴”了一个单色光的过滤眼镜一样。它的工作原理如下:
每个感光单元就像有刻度的小桶,光线就像雨一样洒在小桶里,小桶的容量越大,所能度量的雨的大小范围(图像的动态范围)就越大,桶的刻度越多(色彩位数越高)度量的精度就越高。
有些童鞋可能就纳闷了,既然每个像素点只能记录一种颜色,到底是如何拍出彩色图像的呢?所以说,感光元件上的滤光点的排列是有讲究的,这也是布赖斯·拜尔的智慧:每个绿点的四周,分布着2个红点、2个蓝点、4个绿点。这意味着,整体上,绿点的数量是其他两种颜色点的两倍。这是因为研究显示人眼对绿色最敏感,所以滤光层的绿点最多。
我们可以看到,每个滤光点周围有规律地分布其他颜色的滤光点,那么就有可能结合它们的值,判断出光线本来的颜色。以黄光为例,它由红光和绿光混合而成,那么通过滤光层以后,红点和绿点下面的像素都会有值,但是蓝点下面的像素没有值,因此看一个像素周围的颜色分布有红色和绿色,但是没有蓝色-就可以推测出来这个像素点的本来颜色应该是黄色。这个过程可以表示如下,而这种计算颜色的方法,就叫做”去马赛克”(demosaicing)法:
虽然,每个像素的颜色都是算出来的,并不是真正的值,但是由于计算的结果相当准确,因此这种做法得到广泛应用。目前,绝大部分的数码相机都采用它,来生成彩色数码照片。高级的数码相机,还提供未经算法处理的原始马赛克图像,这就是raw格式(raw image format)。为了纪念发明者布赖斯·拜尔,它被称作”拜尔模式”或”拜尔滤光法” (Bayer filter)。
数码相机成像原理
OK,有了以上知识的普及和扫盲,下面让我们看一下数码相机的成像过程和原理,其实前面已经提到一点。
前面我们提到的那个感光元件,是数码相机或数码录像机的核心部件,目前业界有两种感光介质:
一种是CCD,是英文 Charge Coupled Device (即电荷耦合器件)的缩写,是一种特殊的半导体器件,也是用来采集信号的一种感应元件,技术要求很高,全世界只有 6 家公司掌握了 CCD研制的核心技术,成品率较低,成本较高。
另一种是CMOS,全称是Complementary Metal-Oxide-Semiconductor(即互补金属氧化物半导体),它在微处理器和闪存等半导体技术上占有重要的地位,也是一种可用来感受光线变化的半导体,其组成元素主要是硅和锗,通过CMOS上带负电和带正电的晶体管来实现基本功能。这两个互补效应所产生的电流即可被处理芯片记录和解读成影像。
无论是CCD还是CMOS,其作用和地位都是完成光信号到电信号的转换。两者之争也是数码界一个亘古以来就很久远的话题,2009以前还是CCD的天下,2009年之后(标志性事件就是2008年索尼发布了背照式CMOS,代号Exmor R),CMOS一下子又火了,CCD逐渐沦落。随着技术、生产工艺、科技的进步,说不定哪天CCD又把CMOS甩开八百里开外,这个谁也说不准,我们就不搅和到这场口水战里了。这里大家只要知道在数码录制设备里,CCD和CMOS都是感光元器件,完成光电信号的转换对我们来说就OK了。
以前传统相机拍照时,光线通过镜头汇聚,再通过按动快门打开快门门帘让汇聚光投射到胶片上来成像,相机机身只充当了一个暗箱的作用。数码相机的原理和其类似,数码相机肯定也有镜头,通过镜头的光线不像传统相机那样直接投射到胶片,而是直接投射到上面我们提到的感光元件的光敏单元上,这些感光器由半导体元件构成,由数字相机的内置智能控制装置对入射光线进行分析处理,并自动调整合适的焦距、暴光时间、色度、白平衡等参数,然后将这些数据传送给模/数转换器ADC(Analog Digital Converter),ADC最后把这些电子模拟信号转换成数字信号。如果这个时候直接对数字信号进行存储,就是所谓的图像的Raw格式,照片的质量比普通的高,而且能在后期电脑上进行几乎无损的一些参数调整。严格意义上来说,Raw不应该算是一种图像格式,它仅仅是一个数据包而已。Raw仅仅是将数码相机图像传感器(CCD)感光产生的电信号数字化之后的采样值忠实地记录下来打包直接保存,并未进行任何计算和压缩,具有独特的设备相关性。它所记录的不是图像点的色彩、亮度信息,而是感光芯片的感光记录,是落在每个感光单元上的光线的多少,至于这个点处于什么位置,这个位置上是什么颜色的滤色片,需要根据芯片的型号来定义。
目前,大多数数码相机的图像感光器的量化位一般都是12bit或14bit,就是说每个感光单元的感光信息用 12 或 14 位的二进制数字记录下来,对于 12 位的器件,每个点的亮度可以有2^12=4096 级的梯度区别,14 位的器件每个点的亮度可以有 2^14=16384 级的梯度区别,而一般JPEG 格式只能记录 24 位的 RGB 位图(尽管实际是以 YCbCr 色彩空间模型来记录,但图像处理、显示软件打开这些图像时,以及屏幕显示这些图片时,仍然要转换为 RGB分量),但每个点 24位的数据要记录 R、G、B 三种颜色,分解到一种颜色就只能有 8 位了,最终能记录的亮度梯度就只有256 级了。数码相机早期还有一种格式,现在用的比较少,那就是TIFF 格式。虽然TIFF可记录 48 位(每个色彩 16 位)的图像信息,可以不丢失色彩位,但那样文件体积将变得十分庞大,而且多出的数据位只能用空白数据来填补,浪费存储资源。色彩位的差别直接关系到图像的动态范围和色彩饱和度,一旦保存为低色彩位的图像文件,将有相当量的感光信息被舍弃,这些舍弃的信息将无法找回。 另外,无论拍摄时采用 TIFF还是 JPEG,都是相机利用内部的图像处理芯片预先将数据计算过的,这个计算过程中就要用到相机的白平衡设置、色彩空间设置、曝光补偿设置等等,万一这些设置不准确,计算所产生的图像就会偏色或者曝光不准,一旦这种错误比较严重,信息损失过多,会导致照片报废。然而,JPEG图像格式是目前大众化数码相机缺省的图像保存格式。
总结
好了,本文如果还有人没看明白,我只能很遗憾的说我已经尽了自己最大的努力,力争用最简单的文字来表述复杂的概念和理论,剩下的就只能靠每个人的修为了。最后,我再将数码相机成像的整个过程总结一下:
从镜头进来的光线,投射到数码相机感光元件的很多个微小光敏感光单元上,每个感光单元以电信号的形式记录下照射到它上面的光的强度,然后通过DSP芯片的运算,将电信号通过预先内置在芯片里设定好的算法计算成符合现实标准的数码图像文件并加以存储,最后我们后期就可以编辑、修改、或者通过网络来传输图像了。
后记
最后,如果有朋友选购数码相机时,看到一个数码相机声称其最高像素是2040万,但它标注的分辨率却为5184×3888=2015万像素,你也不能说人家在忽悠咱们。因为人家也没说2040万像素都拿来成像,这也符合相关标准。在你选择不同的拍照质量时,分辨率当然会降下来,用高分辨率的镜头拍出低分辨率的数字图像?你认为是怎么实现的呢?其似乎也不难,对于这种需求当今大多数相机都是通过主控芯片让感光器件“遮挡”部分感光单元,只让另一部分感光单元接受光照即可实现。关于图像质量的问题,每个感光单元的比特位直接决定了图像最终的表现亮度和色彩的性能,反映到图像上就是每个像素点所占的bit数,或者说字节数。
以上便是我对数字图像入门知识的一点简单的记录和分享,毕竟不是专业搞图像的,欢迎各位路过的专业达人、高人、达人、大虾们指点拍砖。