音视频-LV01-01-bayer格式

本文主要是bayer格式图像的相关笔记,若笔记中有错误或者不合适的地方,欢迎批评指正😃。

点击查看使用工具及版本
Windows windows11
Ubuntu Ubuntu16.04的64位版本
VMware® Workstation 16 Pro 16.2.3 build-19376536
点击查看本文参考资料
  • 通用
参考方向 参考原文
相机拍出彩色照片的原理为什么数码相机可以拍出彩色照片? - 阮一峰的网络日志 (ruanyifeng.com)
点击查看相关文件下载
------

这篇文章主要还是参考了阮一峰的《为什么数码相机可以拍出彩色照片?》,写的很好,推荐看原文。

一、照片的起源

1.黑白照片

1825年,法国人涅普斯(Joseph Nicéphore Nièpce),拍出历史上第一张照片。他采用的感光剂是氯化银(silver chloride)。当光线照射氯化银,后者会分解成纯银和氯气,银金属颗粒呈现黑色。因此,底片颜色越深代表光线越强,颜色越浅代表光线越弱,黑白照片就是这样拍出来。

img

2.彩色照片产生

19世纪中期,人们发现,人眼的圆锥细胞对三种颜色:红、绿、蓝特别敏感。伟大的英国物理学家麦克斯韦因此假设,红绿蓝作为基色,可以拍出彩色照片。

img

1861年,在麦克斯韦的指导下,人类的第一张彩色照片诞生了。采用的方法是在镜头前,分别用红丝带、绿丝带、蓝丝带过滤光线,曝光形成三张底片,然后用三部放映机向同一处投影这三张底片,每部放映机的镜头前都拧上对应颜色的镜头,它们的合成效果就是一张彩照。

img

而真正意义上的彩色胶卷,1933年诞生于柯达公司,底片之上依次有三个感光层,分别对红、绿、蓝三种颜色进行曝光,最后叠加形成一张彩色底片。

3.图像传感器的诞生

img

二战后,计算机诞生,科学家发现图像可以用数字形式表示。如果将光信号转变成电信号,就可以直接拍出数码照片。这意味着,照相机不再需要胶卷,而是需要一个图像传感器(image sensor)。

img

图像传感器将光线转化成电流,光线越亮,电流的数值就越大;光线越暗,电流的数值就越小。所以,如果用0到255的范围,表示光线的亮度,最亮的光线是白光,数值是十六进制的FF,最暗的光线是黑光(没有光),数值是十六进制的00。

img

图像传感器的表面,分成若干个捕捉点,每个点都会产生一个数值,表示该点感受到的光线亮度,这就叫做”像素”。像素越多,图像细节就越丰富。如果一台相机的像素是1600x1200,就说明图像传感器横向有1600个捕捉点,纵向有1200个,合计192万个。

4.缺陷与解决方案

img

但是,图像传感器有一个很严重的缺陷:它只能感受光的强弱,无法感受光的波长。由于光的颜色由波长决定,所以图像传播器无法记录颜色,也就是说,它只能拍黑白照片,这肯定是不能接受的。

img

一种解决方案是照相机内置三个图像传感器,分别记录红、绿、蓝三种颜色,然后再将这三个值合并。这种方法能产生最准确的颜色信息,但是成本太高,无法投入实用。

img

5.滤光层的出现

1974年,柯达公司的工程师布赖斯·拜尔提出了一个全新方案,只用一块图像传感器,就解决了颜色的识别。他的做法是在图像传感器前面,设置一个滤光层(Color filter array),上面布满了滤光点,与下层的像素一一对应。也就是说,如果传感器是1600x1200像素,那么它的上层就有1600x1200个滤光点。

img

每个滤光点只能通过红、绿、蓝之中的一种颜色,这意味着在它下层的像素点只可能有四种颜色:红、绿、蓝、黑(表示没有任何光通过)。

img

不同颜色的滤光点的排列是有规律的:每个绿点的四周,分布着2个红点、2个蓝点、4个绿点。这意味着,整体上,绿点的数量是其他两种颜色点的两倍。这是因为研究显示人眼对绿色最敏感,所以滤光层的绿点最多。

img

接下来的问题就是,如果一个像素只可能有四种颜色,那么怎么能拍出彩色照片呢?这就是布赖斯·拜尔聪明的地方,前面说了,每个滤光点周围有规律地分布其他颜色的滤光点,那么就有可能结合它们的值,判断出光线本来的颜色。以黄光为例,它由红光和绿光混合而成,那么通过滤光层以后,红点和绿点下面的像素都会有值,但是蓝点下面的像素没有值,因此看一个像素周围的颜色分布,有红色和绿色,但是没有蓝色,这样就可以推测出来这个像素点的本来颜色应该是黄色。

img

这种计算颜色的方法,就叫做“去马赛克”(demosaicing)。一般采用插值的方法进行色彩还原,经典的算法有:2x2邻域复制插值法、3x3邻域双线性插值法和5x5邻域高质量插值法。上图的下半部分是图像传感器生成的”马赛克”图像,所有的像素只有红、绿、蓝、黑四种颜色;上半部分是”去马赛克”后的效果,这是用算法处理的结果。

6.广泛应用

img

虽然,每个像素的颜色都是算出来的,并不是真正的值,但是由于计算的结果相当准确,因此这种做法得到广泛应用。目前,绝大部分的数码相机都采用它,来生成彩色数码照片。高级的数码相机,还提供未经算法处理的原始马赛克图像,这就是raw格式(raw image format)。为了纪念发明者布赖斯·拜尔,它被称作”拜尔模式”或“拜尔滤光法” (Bayer filter)。

二、bayer格式

1.格式简介

经过上边的了解,再来看一看Bayer格式是什么,图片源自拜耳阵列,拜耳阵列是CCD或CMOS传感器拍摄彩色图像的主要技术之一。拜耳阵列是由伊士曼·柯达公司科学家Bryce Bayer发明的,被广泛运用数字图像。

Bayer格式是相机内部的原始图片, 一般后缀名为.raw,有时候也会称这种格式为RAW 格式的,RAW全称是 RAW Image Format,在编程中称之为原始。 RAW文件几乎是未经过处理而直接从CCD或CMOS上得到的信息。

下图为bayer色彩滤波阵列,由一半的G,1/4的R,1/4的B组成。

img

2.图像传感器硬件

图像传感器的结构如下所示,每一个感光像素之间都有金属隔离层,光纤通过显微镜头,在色彩滤波器过滤之后,投射到相应的漏洞式硅的感光元件上。

img

当Image Sensor往外逐行输出数据时,像素的序列为GRGRGR…/BGBGBG…(顺序RGB)。这样阵列Sensor设计,使得RGB传感器减少到了全色传感器的1/3,如下所示。

img

3.四种格式

img

在Bayer颜色滤波阵列中,RGB三色的感光单元不是平均分布。基于人眼对绿色比较敏感,绿色(G)占50%,红色(R)和蓝色(B)各占25%。根据彩色滤波阵列的排列不同,Bayer彩色图像可分为BGGR、GBRG、GRBG和RGGB四种格式。

三、MIPI简介

有的时候我们会看到MIPI接口,这是啥呢?MIPI(移动行业处理器接口)是Mobile Industry Processor Interface的缩写。MIPI是MIPI联盟发起的为移动应用处理器制定的开放标准,目的是把手机内部的接口如摄像头、显示屏接口、射频/基带接口等标准化,从而减少手机设计的复杂程度和增加设计灵活性。其中CSI(Camera Serial Interface)规定摄像头接口。

img img