ISP算法 | Demosaic(一)

Demosaic的中文名为“去马赛克”,是ISP中的刚需模块,它把图像从raw域转换到了rgb域,是raw到rgb域的分水岭。

一. 为什么需要demosaic

组成彩色图像的三原色是RGB,所以Sensor(传感器)在采集图像的时候,需要R、G、B三个颜色的滤镜分别采集R、G、B三个分量的图像,然后再把三个分量的信息合成彩色图像。为了保证每一个像素点都对齐,要求三块滤镜必须对齐,这样的设备着实不太好制造,此外这种设计还会增加Sensor的体积,放在数码相机上不太合适。

于是柯达公司的科学家Bryce Bayer发明了Bayer模式,在彩色图像传感器表面覆盖一层彩色滤波阵列(Color Filter Arrays, CFA)对输入光进行采样,每个像素只要一个颜色的分量,这样原来的三块滤镜就缩减成了一块滤镜,解决了上面的那些问题。一个RGGB格式的CFA如下图1(a)所示,因为自然界中绿色占比较大,所以给G分配了两个位置,经过CFA采样的图像是一个灰度图,如图1(b)所示,现实中使用的raw图就是(b)图这种样子,为了方便理解,把每个通道的颜色标记出来则如图1(c)所示,即每一个pixel只采样了一个颜色,其排列模式和CFA相同。

 

de6e79bb0f2c94d0607ae8c90fe515b7.jpeg

图1 Bayer模式示意图

因此Bayer模式是以发明它的科学家的名字命名的,它还有一个常用的名字叫做Demosaic,中文名为“去马赛克”,倒不是采集的图像中真的有马赛克,而是采集出的图像有类似马赛克的效果,比如图1(b)所示,因此得名“demosaic”。

bayer有4种模式,RGGB、BGGR、GBRG和GRBG,如果一幅图像是bayer模式的,通常会被称为“raw”图,意思为原始图像,凡是在bayer模式上进行处理的图像都被划到了图像的RAW域。

把bayer模式的图像插值成RGB图像的过程就是demosaic,demosaic也是RAW域和RGB域的分界点,只要经过demosaic插值,后续就是RGB域了,还是以Lena图为例,demosaic前的图像RGB每个通道都有缺少的像素(如下图2所示),demosaic后的RGB三通道都是完整的(如下图3所示)。

 

1aa774cae7e2e47713ed56bc170b2584.jpeg

图2 demosaic前的三通道

 

 

4d935589f42f05d2546709941c07e154.jpeg

标图3 demosaic后的三通道题

 

二. demosaic的原理

Demosaic的原理就是插值,先把bayer图的各分量单独拉出来看一下各颜色通道的规律,以图4这个RGGB格式的为例(其它三种模式同理),G分量的信息更多,只需要插值一半的数据,R和B是一样的,需要插值其它3/4的数据。

 

01893ec5073597dc7d84bcf97bebba7b.jpeg

图4 RGB三分量规律

 

先看插值工作量更大的R和B分量,以R通道为例,插值位置又可以分成中心点、水平方向和垂直方向三种插值位置,如下图5所示。对于R和B分量来说,不同位置上能利用的已知像素信息是固定的,比如要插值中心点像素,不可能用左右两边已知的R数据,只能使用四个角上的R数据,水平和垂直方向也是同理。

 

e9979b3e0ebac2c175c522ab83217d85.jpeg

图5 R分量的三种插值位置

 

对于G分量来说,情况会有些不一样,G需要插值的数据比R和B少了一半,对于每个缺少的像素,既可以用四个角上的G数据,也可以用水平或者是垂直方向的G数据,如下图6所示,因此G的插值方式会更加灵活一些。

 

010357835d7dbb63967bc077d54adfee.jpeg

图6 G分量的三种插值位置

 

所以demosaic的基本思路就是用各通道已知的像素点计算出缺失的像素点,但是直接插值的效果肯定是不够好的,这就需要用到色差恒定理论,色差就是色度信号(R和B分量)与亮度信号(G分量)的差,在图像很小的范围内,当前像素的色差与其周围点的色差是一样的,即:

                                       eq?R%28i%2Cj%29-G%28i%2Cj%29%3DR%28i%2Cj+1%29-G%28i%2Cj+1%29                    (1)

 

三. demosaic的基本思路

1. G通道优先:由于RGB三分量的数量比是1:2:1,显然G分量有更多的已知像素可以使用,所以一般demosaic算法都是先插值G通道,以G通道为基准再插值另外两个分量。

2. 插值的时候要按照梯度方向插值:这样插值出的图像边界是平滑的,不会出现很多锯齿状。

3. 按梯度方向使用色差恒定原理,这里展开解释一下为什么要这么做,以R分量为例(如图7a所示),现在要插值B11位置上的R11,假设G分量是已经插值好的(如图7b所示),此时B11位置的R11数据有R00、R02、R20和R22共4个方向的色差恒定可选,该选择哪一个?还是全都用上?答案是选择最符合边界方向的那个。

 

951e43801cdfd2752bbdb7380e81f5eb.jpeg

图7 色差恒定原理的多种选择

 

四. demosaic的常见问题

1. 拉链效应又被称为锯齿效应:出现这种情况是因为在一幅图像颜色跨度特别大的区域或者在两种景物相交的边缘,对数据进行处理时没有选择周围色彩比较相近平滑的像素信息,而是继续沿着突变的区域进行颜色的插值重建,这就导致计算出的颜色数值发生错误,像素点的颜色会变模糊或者颜色会溢出。双线性的颜色插值算法就是一个典型的案例。

2. 伪彩色又被称为虚假颜色,常常是因为输出图像上有的像素点的颜色是伪造的,他们不反应场景真实的颜色。这种情况大多数由于颜色插值是对局部像素信息做平均出错或者图像没有按照预定的期望重合导致的。这种失真现象经常在色彩的轮廓处出现。中值滤波是减少这种情况发生的一项成熟的非线性平滑技术,它将每一个像素点的灰度值设置成其周围邻域某一窗口内的所有像素点灰度值的中值,如此处理的目的是为了在保护图像轮廓的同时去除其上的噪声。

3. 摩尔纹常常是出现在一些重复性很高且排列紧密的纹路之间。例如,在密布的栏杆、服饰上的条纹以及各种有密集纹路的图像中。这些图像经过去马赛克处理后常常会出现莫名其妙的水波样条纹,这些条纹就被称为摩尔纹。摩尔纹的产生是差拍原理的一种表现,从数学上讲,两个频率接近的等幅正弦波叠加,合成信号的幅度将按照两个频率之差变化。在颜色插值重建的过程中有时会出现摩尔纹,尤其是在密集的纹理区域。观察 bayer 格式的图像我们可以看到,R、G、B 三种相同颜色的像素点在行,列两个方向上都是间隔一个像素点,如果待重建的图像中物体的维度等于一个像素点的宽度,根据 bayer 格式的色彩滤波阵列的亚采样特性,颜色插值重建极有可能会计算出有误的颜色数据,从而出现摩尔纹。一般为降低插值重建后图像中的摩尔纹出现的概率,将低通滤波器配置在彩色滤波阵列之前,目的是为了滤除掉图像中较高空间频率部分,通过降低图像锐度的方法来减少摩尔纹的发生概率。

4. 紫边现象:紫边现象是说因为光学系统的色差引起的在高光与低光交界的地方出现的错误色边,这种紫色的边缘并不是所摄景物本身的颜色,属于一种图像局部的色彩错误。紫边现象主要有两种,一种是图像在进行去马赛克操作时,因为用彩色滤波阵列获取的 raw 数据中总是绿色的像素多于红、蓝像素的,因此重建的绿色信息相对更加精确,而红、蓝像素信息的插值重建常常会发生混叠,最终导致处理后的图像出现紫边现象。还有一种是过曝导致的紫边现象,这种情况通常是数码成像系统的通病,一般在拍摄逆光或者高反差效果的景物时,呈现的图像在画面较暗区域常常会有一圈紫色的边缘,这种紫边现象会影响图像的质量。

关于demosaic的具体算法和效果将在下一篇呈现。

 

  • 20
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值