一、图像bayer格式介绍
bayer格式图片是伊士曼·柯达公司科学家Bryce Bayer发明的,Bryce Bayer所发明的拜耳阵列被广泛运用数字图像.
RGB三原色是组成彩色图片的基本要素。最简单的采集方法就是通过对应的透镜去采集,红色的滤镜透过红色的波长,绿色的滤镜透过绿色的波长,蓝色的滤镜透过蓝色的波长。但是这样成本很高,且不好制造,因为三块滤镜都必须保证每一个像素点都对齐。
bayer 格式图片在一块滤镜上设置的不同的颜色,通过分析人眼对颜色的感知发现,人眼对绿色比较敏感,所以一般bayer格式的图片绿色格式的像素是是r和g像素的和。也就是类似与现在的ISP的工作原理,通过算法对RGB的原色进行补充,然后得更好的原色图。
如上图:绿色为红色和蓝色的和。
Bayer格式是相机内部的原始图片, 一般后缀名为.raw。很多软件都可以查看, 比如PS。我们相机拍照下来存储在存储卡上的.jpeg或其它格式的图片, 都是从.raw格式转化过来的。
Bayer数据,其一般格式为:
奇数扫描行输出 GRGR……
偶数扫描行输出 BGBG……
根据人眼对彩色的响应带宽不高的大面积着色特点,每个像素没有必要同时输出3种颜色。因此,数据采样时,
奇数扫描行的第1,2,3,4,…象素分别采样和输出G,R,G,R,…数据;
偶数扫描行的第1,2,3,4,…象素分别采样和输出B,G,B,G,…数据。
在实际处理时,每个象素的R,G,B信号由象素本身输出的某一种颜色信号和相邻象素输出的其他颜色信号构成。这种采样方式在基本不降低图像质量的同时,可以将采样频率降低60%以上。
二、bayer格式图像传感器硬件
图像传感器的结构如下所示,每一个感光像素之间都有金属隔离层,光纤通过显微镜头,在色彩滤波器过滤之后,投射到相应的漏洞式硅的感光元件上。
当Image Sensor往外逐行输出数据时,像素的序列为GRGRGR…/BGBGBG…(顺序RGB)。这样阵列的Sensor设计,使得RGB传感器减少到了全色传感器的1/3,如下所示。
三原色,绿色占比1/2 蓝色和红色分别为 1/4 1/4整体就是采集的三原色是原本的1/3.
三、bayer格式插值算法实现
3.1 插值红蓝算法
开始说过,我们采集RGB数据的时候,我们是采用统一种滤镜,在滤镜上添加不同的颜色来进行采集。为了得到每个像素点上的RGB元素,我们需要通过对采集的那种颜色来填补缺失的2个色彩。
由于人眼对绿光反应最敏感,对紫光和红光则反应较弱,因此为了达到更好的画质,需要对G特殊照顾。
(a) (b)
在(a)与(b)中,R和B分别取邻域的平均值。
( c) (d)
在(c)与(d)中,取领域的4个B或R的均值作为中间像素的B值。
3.1 插值绿算法
( e) (f)
上述(c)与(d)中,扩展开来就是上图的(e)与(f)中间像素G的取值
(e)中间像素G值的算法如下:
(f)中间像素G值的算法如下:
自己并没有看懂 G3+G4/2的这个操作。后续还需要去查看资料。
摄像头这部分转换是在内部用ADC或者ISP完成的,生产商为了降低成本必然会使得图像失真。当然用外部处理器来实现转换,如果处理器的速度足够NB,能够胜任像素的操作,用上面的算法来进行转换,皆大欢喜。不过上述算法将直接成倍提高了算法的复杂度,速度上将会有所限制。因此为了速度的提成,可以直接通过来4领域G取均值来中间像素的G值,将会降低一倍的速率,而在性能上差之甚微,算法如下:
参考博客:图像bayer格式介绍