ISP(图像信号处理)之Bayer Raw 简介

ISP(图像信号处理)之Bayer Raw 简介浏览很多博客之后从各个博主处得到的全方位理解,一一列出来,用于从不同方向理解Bayer。

拜耳阵列是实现CCD 或CMOS 传感器拍摄彩色图像的主要技术之一。它是一个4×4阵列,由8个绿色、4个蓝色和4个红色像素组成,在将灰度图形转换为彩色图片时会以2×2矩阵进行9次运算,最后生成一幅彩色图形。

RAW DATA,可以理解为:RAW图像就是CMOS或者CCD图像感应器将捕捉到的光源信号转化为数字信号的原始数据,是无损的,包含了物体原始的颜色信息等。RAW数据格式一般采用的是Bayer排列方式,通过滤波光片,产生彩色滤波阵列(CFA),鉴于人眼对绿色波段的色彩比较敏感,Bayer数据格式中包含了50%的绿色信息,以及各25%的红色和蓝色信息。

  Bayer排列格式有以下4种:

  1.| R | G |  2.| B | G |   3.| G | R |   4.| G | B |

    | G | B |    | G | R |     | B | G |     | R | G |

    在ISP处理模块的第一部分,就是需要对CFA DATA进行去噪操作。普通的去噪方式针对Bayer数据格式是不合适的,需要进行变换后才能进行处理。
————————————————
版权声明:本文为CSDN博主「清风徐行」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u013626386/article/details/47783677

转一篇介绍很详细的文章

https://blog.csdn.net/bingqingsuimeng/article/details/61917513

1 图像bayer格式介绍

  bayer格式图片是伊士曼·柯达公司科学家Bryce Bayer发明的,Bryce Bayer所发明的拜耳阵列被广泛运用数字图像。

  对于彩色图像,需要采集多种最基本的颜色,如rgb三种颜色,最简单的方法就是用滤镜的方法,红色的滤镜透过红色的波长,绿色的滤镜透过绿色的波长,蓝色的滤镜透过蓝色的波长。如果要采集rgb三个基本色,则需要三块滤镜,这样价格昂贵,且不好制造,因为三块滤镜都必须保证每一个像素点都对齐。当用bayer格式的时候,很好的解决了这个问题。bayer 格式图片在一块滤镜上设置的不同的颜色,通过分析人眼对颜色的感知发现,人眼对绿色比较敏感,所以一般bayer格式的图片绿色格式的像素是是r和g像素的和。

  另外,Bayer格式是相机内部的原始图片, 一般后缀名为.raw。很多软件都可以查看, 比如PS。我们相机拍照下来存储在存储卡上的.jpeg或其它格式的图片, 都是从.raw格式转化过来的。如下图,为bayer色彩滤波阵列,由一半的G,1/4的R,1/4的B组成。

                      

Bayer数据,其一般格式为:
奇数扫描行输出 RGRG……
偶数扫描行输出 GBGB……

  根据人眼对彩色的响应带宽不高的大面积着色特点,每个像素没有必要同时输出3种颜色。因此,数据采样时,

奇数扫描行的第1,2,3,4,…象素分别采样和输出R,G,R,G,…数据;

偶数扫描行的第1,2,3,4,…象素分别采样和输出G,B,G,B,…数据。

在实际处理时,每个象素的R,G,B信号由象素本身输出的某一种颜色信号和相邻象素输出的其他颜色信号构成。这种采样方式在基本不降低图像质量的同时,可以将采样频率降低60%以上。

 

2 bayer格式图像传感器硬件

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

           

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

                        

3 bayer格式插值红蓝算法实现

  每一个像素仅仅包括了光谱的一部分,必须通过插值来实现每个像素的RGB值。为了从Bayer格式得到每个像素的RGB格式,我们需要通过插值填补缺失的2个色彩。插值的方法有很多(包括领域、线性、3*3等),速度与质量权衡,最好的线性插值补偿算法。其中算法如下: 

  R和B通过线性领域插值,但这有四种不同的分布,如下图所示: 

                   

                                       (a)                                   (b)

                   

                         (c)                                   (d)

  在(a)与(b)中,R和B分别取邻域的平均值。

  在(c)与(d)中,取领域的4个B或R的均值作为中间像素的B值。 

4 bayer格式插值绿算法实现

             

                          (c)                                                        (d)

  由于人眼对绿光反应最敏感,对紫光和红光则反应较弱,因此为了达到更好的画质,需要对G特殊照顾。在上述(c)与(d)中,扩展开来就是上图的(e)与(f)中间像素G的取值,者也有一定的算法要求,不同的算法效果上会有差异。经过相关的研究,

  (e)中间像素G值的算法如下: 

                   

  (f)中间像素G值的算法如下:

                         

  CMOS摄像头这部分转换是在内部用ADC或者ISP完成的,生产商为了降低成本必然会使得图像失真。当然用外部处理器来实现转换,如果处理器的速度足够NB,能够胜任像素的操作,用上面的算法来进行转换,皆大欢喜。不过上述算法将直接成倍提高了算法的复杂度,速度上将会有所限制。因此为了速度的提成,可以直接通过来4领域G取均值来中间像素的G值,将会降低一倍的速率,而在性能上差之甚微,算法如下: 

                   

  如果能够通过损失图像的额质量,来达到更快的速度,还可以取G1、G2的均值来实现,但是这样的做法会导致边沿以及跳变部分的失真。 

为了对上述过程有一个感性的理解,又看到下面这个很有意思的文章,加深理解,感谢小编的脑洞,让学习不再枯燥

      下面摘自蜂鸟网(写的挺有意思):原文地址

 

2012年末,一位对世界,特别是对蜂鸟网所有网友的生活,产生巨大影响的老人,进入了天堂,他的名字叫布莱斯·拜尔(Bryce Bayer)。

拜尔在天堂遇见了上帝。
上帝:拜尔,你这个骗子!看看你在下面做的好事,现在还有脸来见我?
拜尔:我的主啊,我是您忠实的信徒,我怎么会是骗子呢?
上帝:你在下面发明了个什么“拜尔阵列”,这玩意儿几乎垄断了人类的数码相机行业,这是你干的吗?!
拜尔:是啊,我的主。我发明了这种传感器,让数码摄影技术在人类中得到了普及,这难道不是干了个大好事吗?
上帝:普及数码摄影技术当然是好事,但关键是,你的传感器偷工减料啊!我在创世纪的时候,说要有光,于是就有了光,我创造的光里面包含了红、绿、蓝三种基本色。
但是你的传感器里面根本就没有完整记录我这三种颜色,你每个像素只记下了一种颜色的亮度值,然后通过后期处理(=PS?)软件,胡乱猜出像素里另两个基本色,再弄出图像来糊弄人,一张照片里只有1/3的色彩是真实的,这还不算骗子啊你!
拜尔:我的主啊,您看我一脸老实相,会是骗子吗!我的传感器这么干,是有苦衷的啊!您得听我慢慢道来。
上帝:好,那你说吧。要是说得有道理,能说服我,特别是能说服蜂鸟网上的网友,那才能让你进入名人堂。否则的话,你还得回到人间去,自己去收拾你的烂摊子。

拜尔手臂一挥,上帝面前出现了一个大屏幕,结合着屏幕上的图文,拜尔开上给上帝解释起来。
拜尔:那是上个世纪的70年代,我在柯达公司从事科研工作,其中一个重要课题,就是怎么样才能将影像转换成数字信号储存下来。我们都是凡人啊,凡人没有您那样无边法力,所以我们的光电传感器只能够记录光的强度,而无法分辨光的颜色,即使是现在21世纪了,依然是这样。

但是凡人也是贪心的,我们不满足于只能拍黑白数码照片,只能在有限的条件下想尽办法,去尽可能的获得色彩。我绞尽了脑汁,要想办法解决颜色的记录问题,直到有一天我的小狗菲儿帮我解决了这个问题。
上帝:你的狗?
拜尔:是的,我的小狗狗菲儿。这天它嘴里咬着一件东西,跑到我面前,是一个黄色滤镜。就是我以前拍黑白照片时常用的那种滤镜,黄色的滤镜可以滤除或减小红、蓝光对照片的影响。
看到这个滤镜,我脑中顿时灵光一闪,如果我在每个像素上分别装上这三种滤镜,不就能得到三种光的亮度了吗,然后一合成,色彩就重现了!上帝啊,难道不是您指示我的小狗来帮助我的吗?

上帝:咳咳,嗯,这倒是我干的……
拜尔:但是,我们凡人做不到。我们的元器件制造水平达不到这个要求。我们无法轻易地在一个像素里造进去三个滤镜和感光元件。即使勉强能做到,这个成本也不是绝大多数人能够承受的。无法商业化的东西,对于我们商业化的公司而言,没有现实价值。
在随后的日子里,我又尝试了各种方法,最后,发明了一种基于单个颜色微小滤镜的影像传感器系统,就是现在被人们称为“拜尔阵列”的传感器系统。

这只用一块图像传感器,就解决了颜色的识别。做法是在图像传感器前面,设置一个滤光层(Color filter array),上面布满了一个个滤光点,与下层的像素一一对应。
每个滤光点只能通过红、绿、蓝之中的一种颜色,这意味着在它下层的像素点只可能有三种颜色:红、绿、蓝,或者什么也没有(黑)。
不同颜色的滤光点的排列是有规律的:每个绿点的四周,分布着2个红点、2个蓝点、4个绿点。这意味着,整体上,绿点的数量是其他两种颜色点的两倍。这是因为研究显示人眼对绿色最敏感,所以滤光层的绿点最多。

每个摄影者在完成光圈、快门、对焦设置等前期工作后,按下快门,于是光线经过镜头,被传感器上的为滤镜分解成一个个单色的光,由传感器记录下每个点的光强度数值,这就得到了RAW数据。
把RAW的灰度值转换成图像,是这样的:

有人会对这样的照片感到满意吗?显然人心是不满足的!于是后期工作开始了,后期就由计算机软件来进行处理,可以是全自动(相机直出),也可以是人工参与(操纵后期软件)。
上帝:慢着慢着,难道不经过后期处理的RAW,就只有这样的黑白马赛克吗?
拜尔:是的您那,没有计算机系统的后期处理,您最多就只能看到这个黑白马赛克,没有完整的图像!
如果我们对它微处理一下,把每个像素对应点的颜色加上后,也可以是这样的:

计算机进行后期处理的第一步就是猜色,也叫去马赛克。
如果一个像素只可能有三种颜色,那么怎么能拍出彩色照片呢?前面说了,每个滤光点周围有“规律”地分布其他颜色的滤光点,那么就有可能结合它们的值,判断出光线本来的颜色。以黄光为例,它由红光和绿光混合而成,那么通过滤光层以后,红点和绿点下面的像素都会有值,但是蓝点下面的像素没有值,因此看一个像素周围的颜色分布----有红色和绿色,但是没有蓝色----就可以推测出来这个像素点的本来颜色应该是黄色。

在得到每个像素的RGB颜色后,后期软件还要加入白平衡矫正、gamma校正,并应用风格曲线、降噪锐化设置等参数,这些参数多数可以人为去设定,这个参数设定的过程,就是俗称的ps,准确地讲就是人工地后期处理。
处理完后最后生成一幅位图,可以用TIFF、JPG等位图格式保存在磁盘上。
上帝:不对,不对!你说是要完成后期处理后才能看到图像,但是多数相机都有实时取景模式,我都没拍呢,哪来的后期!还有我看到我们天国摄协里也在玩LR什么的,这不是在做后期调整前就看到图了?还是看着图一点一点地调呢!这你怎么解释?
拜尔:我的主啊,人类是很狡猾的!实时取景和LR等软件里给先你看到的图像,都是先用它内部默认的后期参数进行粗略后处理,先糊弄一下人眼,满足一下心理。当你全部后期参数设置完后,这不还有一个“导出”的过程吗?这才是真正在进行完整全面的图像后处理呢!
上帝:我的上帝啊!哦,也就是我的我啊!弄出个照片还有这么多花花肠子!
拜尔:在您还未赐予我们人类全色彩的感光器件前,我也是没办法才想出这么个主意,通过计算去猜测颜色的啊!
上帝:那后来不是有个适马公司搞出个叫FOVEON X3的全色彩图像传感器吗?有了这个怎么还在用你的老拜尔?
拜尔:我的主啊,FOVEON X3的全色彩传感器是好,但是一来有专利权的限制,难以推广,二来也是由于技术水平限制,这个FOVEON X3传感器在高感光度下的表现实在是不行,所以多数厂家还是在沿用我的老拜尔阵列。
哦,还有一家富士公司,改进了我拜尔阵列的颜色滤镜的排列方式,也取得了很好的效果。据说佳能公司也有了全色彩的传感器专利。不知道今后那天,我的老拜尔阵列也会和我一起进入天堂,存入天堂博物馆了。

上帝:这样看来,你非但不是骗子,而且还对人类进步起到了很大作用。你可以进入天国名人堂了。
拜尔:但是现在下面还有很多玩摄影的人搞不懂前期和后期的关系,原因是他们以前根本不知道我这拜尔阵列的工作原理,给他们做科普他们心里也老不情愿。
上帝:那好办,先把你讲的内容放在蜂鸟上,让大伙学习,对了别忘记通知版主设精、置顶。要是还没有效果,就把那些不愿意搞明白你拜尔阵列原理的所谓摄影人全抓上来,在我天国办个学习班,关起来让他们好好学……

你可能感兴趣的:(Bayer,ISP)