ISP-Demosaic

简介:个人学习分享,如有错误,欢迎批评指正。

一、背景介绍

CCD (电荷耦合)和CMOS (互补金属氧化物半导体)作为当前运用最广泛的两种相机光电转换传感器,负责将进入镜头的光信号转化为模拟电信号。感光元件在表面受到光线照射时,每个感光单位会将电荷反映在组件上把光转换为电荷,所有的感光单位所产生的信号加在一起就构成了一幅完整的画面,但是单纯的感光元件只能感知光强而不能感知色彩。

人眼由于视网膜上含有三种不同感光色素的锥状细胞,分别对红、蓝、绿光刺激敏感。三种锥细胞所发生的色觉冲动,由三条不同的神经通路上传到视觉中枢的不同部位产生不同的色觉。因此借鉴三原色的原理采用光学元件将不同色彩的光波长分量分别提取出来让每个感光单位分别去接收,就可以得到彩色的数字图像。

传感器"看到"的 vs 人眼看到的

当前市场上的各种彩色数字相机可以根据传感器是一个还是三个来划分:其中三传感器技术通过用分割光的颜色分量,让每个传感器分别接受三原色中一个特定原色的颜色刺激,然后将三个接收信号的结果叠加。

两种三传感器架构

第一种三传感器过两个镀有特殊膜层的二向色分光棱镜将入射平行光的三原色分量分离,分别由三个传感器接收。第二种三传感器利用多层CMOS技术基于嵌入在硅衬底上的三层叠加的感光点,由于不同波长的光穿透硅的深度不同,三原色可以被不同层的CMOS所接收。虽然三传感器技术可以产生高质量的图像,但传感器本身以及光学设备都需要很高的制造成本,因此这种解决方案普及性很低。

为了克服成本限制,1976年Bayer公司提出了一种至今仍然广泛采用的解决方案,通过在单个CMOS或者CCD上覆盖颜色滤光阵列(CFA),每个感光单位对应的滤光片只对三原色中特定的一个波长的光线进行过滤。

在CFA(Color Filter Arrays)排布中,为了获取彩色图像,每个感光单位上需要通过demosaic估算缺失颜色的分量(如R滤光像素位置需要估算G和B的分量),CFA根据不同的需求主要有如下几种排列格式:

  • (a) 垂直条纹排列格式采用RGB主频的CFA交替叠加,这种分布对于交错的电视视频信号非常适用。
  • (b) Bayer阵列作为最常用的CFA形式,考虑到人眼对绿色分量更为敏感,在2X2的单元中采用一个R、一个B和2个G分量组成。拜耳阵列不可避免的导致了获得的数码图像出现"伪色"、"摩尔纹"等现象,降低了图像分辨率。但是拜耳阵列简单的结构与成熟的工艺让它堆起像素来十分容易,因此拜耳阵列是当前应用最成熟也最广泛的CFA模式。
  • © 伪随机排列时受到人眼生理学的启发,模仿人眼视网膜的锥细胞排布,它的不规则性实现了对被观察场景中的亮度空间变化敏感性和感知不同颜色能力的折衷。
  • (d) 互补三原色的CFA排布拥有比RGB排布更高的光谱敏感性和带宽,对于噪声环境时比较有意义。然而CMY光谱灵敏度函数的强相互叠加使得转换为RGB原色的效果不理想,大部分应用于电视。
  • (e) RGBW排列是将传统RGBG排列上两个绿色像素的其中一个替换为无色(White)的像素,本质来讲,RGBW阵列也属于"拜耳阵列"的一种变种,毕竟这种方式也同样需要经过"猜色"的过程。但这意味着CMOS能够接收更多的外来光线。也就是说RGBW阵列能够有效提升暗光环境以及夜景的效果。然而,拜耳阵列最大的问题:摩尔纹以及伪色却没有得到解决。此外因为减少了1/4的颜色感知,RGBW阵列成像对比度和饱和度有明显的不足。
  • (f) burtoni这种排列格式作为一种复杂的镶嵌形式可以有效提高模拟信号的质量,但是容易产生弱混叠伪影。

二、demosaic的概念

1. 什么是去马赛克

去马赛克,又叫 CFA 插值彩色滤波阵列重建 ,是 ISP 中把 传感器输出的单通道 Bayer RAW 数据 恢复为 每个像素都有完整 RGB 三通道值 的过程。

因为绝大多数图像传感器前面都覆盖了 Color Filter Array, CFA ,每个像素位置只能采到一种颜色分量,而不能同时采到完整的 R、G、B。

因此,传感器原始输出并不是彩色图像,而是一个"每个像素只知道一个颜色值"的马赛克图。ISP 必须通过邻域推断,把缺失的两个颜色通道补出来,这一步就是去马赛克。

2. 为什么需要去马赛克

2.1 传感器的物理限制

CMOS/CCD 的单个感光单元本质上只记录光强,不直接区分颜色。为了获取颜色信息,需要在像素上覆盖不同颜色的滤光片,例如:

  • 红色滤光片(R)
  • 绿色滤光片(G)
  • 蓝色滤光片(B)
    最经典的是 Bayer Pattern,其基本排布为:
c 复制代码
R G R G
G B G B
R G R G
G B G B

其中绿色像素数量是红蓝的两倍,这是因为人眼对亮度最敏感,而亮度信息主要由绿色通道贡献。

2.2 RAW 图像不是最终彩色图像

例如某个 Bayer RAW 中:

  • R 位置只有 R 值
  • G 位置只有 G 值
  • B 位置只有 B 值
    那如果你想得到最终的 RGB 图像,就必须在每个位置补全另外两个缺失通道。
    例如在一个 R 像素点上:
  • 已知:R
  • 未知:G、B
    去马赛克要做的就是估计: ( R , G , B ) (R, G, B) (R,G,B)

3. 去马赛克在 ISP 流程中的位置

在典型 RAW ISP 流程中,去马赛克一般位于较前的位置,常见顺序大致如下:

  1. Black Level Correction(黑电平校正)
  2. Dead Pixel Correction(坏点校正)
  3. Lens Shading Correction(镜头阴影校正)
  4. Bayer Noise Reduction(RAW 域降噪)
  5. White Balance(白平衡)
  6. Demosaicing(去马赛克)
  7. Color Correction Matrix(颜色校正)
  8. Gamma / Tone Mapping
  9. Sharpening / NR / Local Contrast 等后处理

实际芯片中顺序可能有细微变化,但去马赛克一般在 RAW 域处理之后、RGB 域处理之前。

4. 去马赛克的本质

从数学上看,去马赛克本质上是一个 缺失数据插值问题,但它并不是普通的线性插值,因为图像具有:

  • 边缘
  • 纹理
  • 颜色相关性
  • 噪声
  • 高频细节

所以去马赛克要解决两个核心矛盾:

4.1 既要补全颜色,又要保边缘

如果只做简单平均,会导致:

  • 边缘模糊
  • 细节变软

4.2 既要减少伪色,又要保纹理

如果插值方向错了,或者高频区域处理不好,就会出现:

  • zipper artifact(拉链伪影)
  • false color(伪色)
  • moiré(摩尔纹)
  • 边缘彩边

因此,优秀的去马赛克算法,核心目标就是:

  • 尽量准确估计缺失颜色
  • 尽量顺着真实边缘方向插值
  • 尽量抑制伪色和拉链效应
  • 尽量保持纹理和清晰度

5. 光谱相关性

同样以垂直边缘为例,在原始图像RGB分量的过渡保持一致,可以初步表明三个颜色的通道是具有相关性的。

为了证明相关性的观点,对于自然图像2002年Gunturk用低通滤波器和高通滤波器构造一个二维滤波器,将每个颜色分量分解为行滤波和列滤波的四个子带:

  • (LL) : 行列均为低通滤波。
  • (LH) : 行为低通,列为高通。
  • (HL) : 行为高通,列为低通。
  • (HH) : 行列均为高通滤波。

对于每个颜色平面得到的子带,分别代表低频、水平高频、垂直高频、对角高频。分别计算各子带红绿、蓝绿分量的相关系数,在对20幅自然图像的计算发现即使是低频的相关性也大于0.8,高频相关性系数全部大于0.9,充分说明了颜色之间是具有强相关性的。

对于光谱相关性的运用当前文献主要提出两点假设:第一种是色差恒定 ,第二种是色比恒定

基于Lambertian模型,不管照明分布如何,Lambertian表面在所有的表面方向上接收并发散所有的入射照明,结果是每一个方向上都能看到相同数量的能量,因此相机拍摄到物体的一点的光强度随着相机位置在一定变化范围内保持不变。设p为物体反射率、N为物体法线、L为入射光角度,那么三原色的反射强度可以表示为:

色差恒定认为在一定范围内入射光和法线是比较接近的,因此可以认为在一定范围内的相邻点像素之间符合R-G或者B-G是相等的,由此产生了色差恒定的假设。

而由于反射率是常数,因此也可以认为在一定范围内的相邻点像素之间符合R/G或者B/G是相等的,由此产生了色比恒定的假设。

色差的运算简单且容易实现。而色比在G通道接近0时误差较大,色差不存在这类问题,因此绝大多数颜色插值算法中使用了色差恒定的假设。

6. 空间相关性

一幅彩色图像各个像素的邻域可以看做一组同性区域,每个像素的颜色分量具有相似性。等同于插值的思想,在估计每个像素位置缺失的分量时可以利用邻域的像素值,然而对于图像边缘部分由于颜色成分局部快速变化容易产生错误插值。因此通常在demosaic中会结合空间相关性和光谱相关性通过两步处理:

(1) 首先基于绿色分量的密集数据以及可以代表待估计图像的亮度,利用空间相关性插值绿色分量。

(2) 然后再根据光谱相关性对红色和蓝色分量进行估计,同化为色度。

需要注意的时第一步通常也会考虑利用光谱相关性提高绿色平面的插值质量。

三、算法研究现状

与其他图像处理任务类似,demosaic算法主要分为传统算法和深度学习算法。

3.1 传统算法

传统算法中有着大量应用的主流算法包括基础插值法、边缘判别法、残差插值法,另外如频域法、基于统计的方法、后处理方法也有相关研究。

对比2000-2017年的各种demosaic传统算法的CPSNR,残差插值(RI)的一系列算法客观指标处于领先的地位
(1)基础插值法

最基本的基础插值法中,第一类方法主要通过在三个独立的R/G/B通道上根据邻域信息进行插值,然后将插值后的三通道结果叠加。典型的方法为最近邻插值、双线性插值,以及基于多项式和基函数的双三次线性插值、双三次B样条插值等,这类方法只考虑了空间相关性,有明显的模糊、伪彩色、拉链效应等缺陷。

第二类方法在第一类方法的基础上额外考虑了光谱相关性,首先通过双线性插值法重建得到G通道,然后基于色差恒定或色比恒定的假设重建R/B通道。第二类方法较第一类方法在客观指标上有一定提升,但是在边缘处的模糊、伪彩色、拉链效应等缺陷并没有明显改善。

代表:

  • Nearest Neighbor
  • Bilinear Interpolation
  • Bicubic Interpolation

特点

  • 简单
  • 速度快
  • 效果一般

适用

  • 低端硬件
  • 实时性极强的场景
  • 作为基础模块或 fallback

(2) 边缘判别法

基础插值demosaic算法存在明显的模糊、伪彩色、拉链效应,尤其是在边缘部分。这是因为在对G通道插值时边缘两侧的像素均匀采样,导致不同成分的分量混叠。边缘判别法通过指定策略判断边缘的方向去控制插值时的邻域采样选择,对伪彩色、拉链效应有着明显改善。

该类方法将G通道看作亮度成分, R/B通道看成色度成分,认为G通道的采样是R/B通道的两倍能代表图像中大部分高频信息,R/B通道作为色度成分变化比较缓慢,因此通常先在双线性插值的基础上利用各种边缘判别方法得到插值方向对G通道进行重建,然后再利用色差或者色比恒定的假设重建R/B通道。

比较经典的边缘判别方法有:梯度矫正线性插值法、边缘敏感性法、二阶微分边缘插值、亚当-哈密尔顿自适应梯度法、局部协方差法、自适应边缘权重法、自适应相似度选边插值(AHD)、梯度无阈值法(GBTF)等。

代表思想:

  • Hamilton-Adams
  • Gradient-based interpolation
  • Edge-directed interpolation

特点

  • 通过梯度判断插值方向
  • 兼顾清晰度和伪影控制
  • 是很多传统 ISP 的核心基础

优点

  • 边缘保留较好
  • 复杂度适中
  • 硬件可实现性强

缺点

  • 对噪声敏感
  • 复杂纹理下仍可能误判

(3) 残差插值法

大部分边缘判别法中有价值的研究内容主要集中在1990~2010年,其中如AHD、GBTF有着不错的重建效果,只存在轻微主观上的重建错误。在边缘判别法的基础上为了更进一步降低传统色差插值误差,从2010年开始研究人员又发现验证了残差插值具有更小的误差,能够产生较好的重建效果,逐步提出了基于残差插值的demosaic方法。该算法以GBTF方法的框架为基础,将残差插值代替色差插值来实现马赛克图像的重建,其中残差是指最初采样到的像素值与初步估计值之间的差值。

根据时间线的残差插值法有:残差插值、拉普拉斯残差插值、迭代残差插值、自适应残差插值等方法。

(4)频域法

基于频率分析的demosaic基本原则是使用bayer图像的频率表示信号。在空间频域中,这样的CFA图像可以表示为一个基于绿色分量的亮度信号和两个基于R/B分量色度信号的组合,这三个信号都被很好地局域化。因此适当的频率选择允许估计每一个这些信号,从中可以得到demosaic图像。主要的频域方法有:频域选择法、联合空间和频域分析法、小波变换法。

代表思想:

  • 局部多项式拟合
  • 拉普拉斯校正
  • 频域分析
  • 区域自适应滤波

思路

通过更高阶的局部模型估计真实图像结构,而不是简单均值。

优点

  • 细节恢复更好
  • 复杂纹理能力更强

缺点

  • 计算复杂
  • 参数调节困难
  • 硬件实现成本高

(5) 基于统计的方法

这类方法主要基于概率统计论以及相似块分类处理等方法,如利用最大似然估计、贝叶斯最大后验概率、马尔可夫随机场等数学定理进行建模,以及类似raisr的模板匹配法、局部协方差法。这类算法在时间开销上较大,实时应用型较差,此处暂时不多做介绍。

(6) 后处理

demosaic中后处理算法主要为估计色彩校正,一旦在每个像素处估计出两个缺失的分量,通常需要进行颜色校正的后处理步骤来去除马赛克图像中的伪影。为了去除假颜色,一种经典的方法是加强三个估计颜色成分之间的光谱相关性,这样的目标可以首先通过中值过滤来达到。

另外如交替投影法认为在自然彩色图像的高频区域像素级具有较强的光谱相关性,通过增加估计的R、G和B分量平面之间高频信息的相关性,同时保留CFA图像数据,利用两个凸约束集来实现这两个目标,并在凸约束集上交替投影估计数据。基于滤波器组方法将每个R、G和B平面分解为四个频率子带。滤波器组是一组通带滤波器,它将输入信号分解成几个子带,每个子带在特定的频率子带中携带原始信号信息。相反,在滤波器组中信号可以通过子带的重组进行重构。该算法以初始估计图像为起点,因此它可以被认为是一种复杂的改进方案。

2000-2017年传统算法的效果对比(图例来源论文:Adaptive Residual Interpolation for Color and Multispectral Image Demosaicking)

3.2 深度学习算法

由于深度学习中的卷积神经网络能够有效提取图像的浅层、深层特征以及结构信息,已经在图像超分辨率、去噪、去模糊等视觉处理任务中取得 令人满意的结果。近年来,基于深度学习的demosaic方法发展较快,其利用大量数据集进行网络训练,不断地学习马赛克图像和原始图像之间的映射关系,从而获得精度较高、泛化能力较强的图像重建模型。研究发现,与传统方法相比,基于深度学习的去马赛克方法重建图像质量得到进一步提升,在主观评价和客观评价指标上都更接近原始图像,在多种应用领域已逐步替代传统方法。

按照去马赛克任务的独立性,基于深度学习的方法可大致分为独立去马赛克任务和联合其他视觉任务的去马赛克任务:

独立去马赛克方法中部分方法分几步重建:一类方法通过建立参数学习的深度网络,然后利用学习到的参数在传统demosaic模型下进行图像重建。另一类方法是端到端网络, 即针对给定的bayer图像直接输出重建图像。

联合demosaic任务,主要考虑bayer阵列图像的采样率低、噪声明显等特征,因此已提出了大量去噪和demosaic联合方法,以及图像超分辨率和demosaic的联合处理方法。

优点

  • 可学习复杂纹理和通道相关性
  • 高频区域恢复更好
  • 可联合去噪、超分、去伪色等任务

缺点

  • 算力和存储开销大
  • 泛化性依赖训练数据
  • 工业 ISP 芯片中纯神经网络方案还受功耗、延迟、鲁棒性约束

在手机影像中,更常见的是:

  • 传统可解释算法为主
  • 局部模块加学习方法辅助
  • 或在更后面的 RGB 域做 AI 增强

四、最基础的去马赛克:双线性插值

最简单的去马赛克算法是 Bilinear Interpolation。

1. 思想

对于某个像素位置缺失的颜色,用周围同色像素做平均。

例如在 R 位置估计 G:

bash 复制代码
  G
G R G
  G

则:
G ^ ( i , j ) = G ( i − 1 , j ) + G ( i + 1 , j ) + G ( i , j − 1 ) + G ( i , j + 1 ) 4 \hat{G}(i,j)=\frac{G(i-1,j)+G(i+1,j)+G(i,j-1)+G(i,j+1)}{4} G^(i,j)=4G(i−1,j)+G(i+1,j)+G(i,j−1)+G(i,j+1)

在 R 位置估计 B:

bash 复制代码
B   B
  R
B   B

则:
B ^ ( i , j ) = B ( i − 1 , j − 1 ) + B ( i − 1 , j + 1 ) + B ( i + 1 , j − 1 ) + B ( i + 1 , j + 1 ) 4 \hat{B}(i,j)=\frac{B(i-1,j-1)+B(i-1,j+1)+B(i+1,j-1)+B(i+1,j+1)}{4} B^(i,j)=4B(i−1,j−1)+B(i−1,j+1)+B(i+1,j−1)+B(i+1,j+1)

其他位置同理。

2. 优点

  • 计算非常简单
  • 硬件实现容易
  • 速度快
  • 功耗低

3. 缺点

  • 边缘模糊明显
  • 高频细节恢复差
  • 拉链伪影明显
  • 伪色严重

所以双线性插值更像是"教学入门算法",在现代高质量 ISP 中通常不会单独使用。

以一个简单的双线性插值为例,图(a)为一幅图像提取的垂直边缘部分,在经过稀疏采样得到CFA形式(b),经过双线性插值对RGB三通道插值后得到(d)(e)(f),三通道分量进行叠加得到还原彩色图像©,可以看到在G通道的插值中边缘产生的错误导致最终估计的彩色图像出现伪彩色和锯齿。因此可以看到要提高demosaic的最终效果,必须遵循一定的先验自然规律。

五、经典策略

1. 边缘感知去马赛克

为了解决双线性插值"跨边缘平均"的问题,后续发展出了 Edge-Aware Demosaicing。

核心思想是:

不在所有方向都平均,而是先判断局部边缘方向,再沿着纹理更平滑的方向插值。

1. 为什么要判断方向

假设图像中有一条垂直边缘:

  • 左边亮
  • 右边暗
    如果你横向平均,会把边缘两边的颜色混起来,导致边缘发虚,甚至出现彩边。
    因此,更合理的方法是沿着边缘方向插值,而不是穿过边缘插值。

2. 基本做法

对于待估计的 G 通道,先比较横向和纵向梯度:

横向变化:
D h = ∣ X ( i , j − 1 ) − X ( i , j + 1 ) ∣ D_h = |X(i,j-1)-X(i,j+1)| Dh=∣X(i,j−1)−X(i,j+1)∣

纵向变化:
D v = ∣ X ( i − 1 , j ) − X ( i + 1 , j ) ∣ D_v = |X(i-1,j)-X(i+1,j)| Dv=∣X(i−1,j)−X(i+1,j)∣

其中 X X X可取邻域亮度或同色差分信息。

然后:

  • D_h \< D_v,说明水平方向更平滑,优先横向插值
  • 若 D v < D h D_v < D_h Dv<Dh,说明垂直方向更平滑,优先纵向插值
  • 若接近,则两者加权融合
    例如:
    G ^ ( i , j ) = { G ( i , j − 1 ) + G ( i , j + 1 ) 2 , D h < D v G ( i − 1 , j ) + G ( i + 1 , j ) 2 , D v < D h G ( i , j − 1 ) + G ( i , j + 1 ) + G ( i − 1 , j ) + G ( i + 1 , j ) 4 , otherwise \hat{G}(i,j)= \begin{cases} \frac{G(i,j-1)+G(i,j+1)}{2}, & D_h < D_v \\ \frac{G(i-1,j)+G(i+1,j)}{2}, & D_v < D_h \\ \frac{G(i,j-1)+G(i,j+1)+G(i-1,j)+G(i+1,j)}{4}, & \text{otherwise} \end{cases} G^(i,j)=⎩ ⎨ ⎧2G(i,j−1)+G(i,j+1),2G(i−1,j)+G(i+1,j),4G(i,j−1)+G(i,j+1)+G(i−1,j)+G(i+1,j),Dh<DvDv<Dhotherwise

3. 特点

这种方法相较双线性插值有明显提升:

  • 边缘更清晰
  • 拉链伪影减少
  • 伪色降低

但问题是:

  • 梯度估计容易受噪声干扰
  • 纹理复杂区域方向判断不稳定
  • 对重复细纹理仍容易出错

2. 绿色通道优先重建

大部分经典去马赛克算法的一个重要思想是:

先重建 G 通道,再重建 R/B 通道。

2.1 为什么优先恢复 G

原因主要有三个:
(1)G 采样更密

Bayer 中 G 数量是 R/B 的两倍,所以 G 通道空间采样更充分。
(2)G 与亮度关系最强

图像边缘和结构信息大多体现在亮度上,而亮度主要和 G 密切相关。
(3)先恢复结构,再补颜色更稳定

先把"图像骨架"恢复出来,再利用颜色差分去恢复 R/B,通常更不容易出伪色。

2.2 颜色差分思想

与其直接插值 R、B,不如插值色差:
R − G , B − G R-G,\quad B-G R−G,B−G

原因是色差场通常比原始颜色更平滑。

例如先得到 G ^ \hat{G} G^,再估计:
R − G ^ \widehat{R-G} R−G

则可恢复:
R ^ = G ^ + R − G ^ \hat{R} = \hat{G} + \widehat{R-G} R^=G^+R−G

同理:
B ^ = G ^ + B − G ^ \hat{B} = \hat{G} + \widehat{B-G} B^=G^+B−G

这样做比直接插值 R 或 B 更稳定,也更符合自然图像的统计规律。

3. Hamilton-Adams 类思想

这是传统去马赛克里非常经典的一类思路,值得单独讲一下。

它的核心是:用局部一阶梯度和二阶变化来判断方向,并用修正项提高 G 插值精度

例如在 R 点估计 G 时,不仅看横纵两侧 G 的均值,还加入 R 通道自身的二阶差分补偿:

横向候选:
G h = G ( i , j − 1 ) + G ( i , j + 1 ) 2 + 2 R ( i , j ) − R ( i , j − 2 ) − R ( i , j + 2 ) 4 G_h = \frac{G(i,j-1)+G(i,j+1)}{2} + \frac{2R(i,j)-R(i,j-2)-R(i,j+2)}{4} Gh=2G(i,j−1)+G(i,j+1)+42R(i,j)−R(i,j−2)−R(i,j+2)

纵向候选:
G v = G ( i − 1 , j ) + G ( i + 1 , j ) 2 + 2 R ( i , j ) − R ( i − 2 , j ) − R ( i + 2 , j ) 4 G_v = \frac{G(i-1,j)+G(i+1,j)}{2} + \frac{2R(i,j)-R(i-2,j)-R(i+2,j)}{4} Gv=2G(i−1,j)+G(i+1,j)+42R(i,j)−R(i−2,j)−R(i+2,j)

再根据横纵方向代价选择 G h G_h Gh 或 G v G_v Gv。

这种做法比单纯平均更聪明,因为它引入了当前通道的局部结构补偿。

4. 为什么 RAW 域降噪和去马赛克强相关

在 ISP 中,去马赛克和降噪通常密不可分。

4.1 噪声会误导方向判断

边缘感知算法依赖局部梯度,但噪声会制造"假边缘",导致插值方向选错。

4.2 去马赛克会放大彩噪

若 Bayer 噪声直接被插值扩散,会转变成明显的彩色噪声和伪色。

4.3 所以工业上常见两种策略

策略 A:先降噪,再去马赛克

优点是方向判断更稳定。

缺点是过强降噪会损伤细节。

策略 B:联合设计降噪与去马赛克

把两者一起考虑,效果往往更优,但复杂度更高。

现代手机 ISP 中,这两者往往是联合调优的,而不是完全独立。

5. 一个更完整的传统去马赛克流程

工业上一个相对典型的传统去马赛克思路,常常不是单一步,而是多阶段:

1. 先做 RAW 预处理

包括:

  • 黑电平校正
  • 坏点修复
  • 镜头阴影校正
  • Bayer 域降噪

因为如果噪声太大,后面的方向判断会不稳定。

2. 插值绿色通道

使用梯度/边缘感知策略优先恢复 G。

例如:

  • 在 R/B 点上估计 G
  • 根据横纵方向变化决定插值方向
  • 用拉普拉斯修正提升准确度

3. 恢复 R-G、B-G 色差

在 G 已知后,估计色差图:
R − G , B − G R-G,\quad B-G R−G,B−G

这些色差通常更平滑,便于插值。

4. 计算完整 RGB
R = G + ( R − G ) , B = G + ( B − G ) R = G + (R-G), \quad B = G + (B-G) R=G+(R−G),B=G+(B−G)

5. 后处理抑制伪影

包括:

  • false color suppression
  • zipper removal
  • edge refinement
  • chroma smoothing

六、手机 ISP 中常见的去马赛克伪影及调试方法

在手机 ISP 里,去马赛克问题本质上不是"能不能补全 RGB",而是"在噪声、锐化、白平衡、HDR、多帧融合、Quad Bayer 结构共同作用下,怎么避免把错误颜色和错误边缘放大出来"。Sony 对 Quad Bayer 的官方说明也强调了高感与高分辨率之间需要通过阵列转换(remosaic)来切换;Basler 的 Bayer 文档则明确指出,不同去马赛克算法在 zipper、false color 和噪声敏感性之间存在明显取舍。

1. 最常见的伪影有哪些

手机 ISP 里最常见、最需要盯的去马赛克伪影,通常有五类:拉链伪影(zipper)、伪色(false color)、摩尔纹(moiré)、彩边/色边(color fringing)、细节发糊或方向性错误。Basler 的官方 Bayer 文档给出的对比非常典型:最近邻会更容易出强伪色,5×5 双线性会出现明显 zipper,而简单 3×3 线性插值则边缘会偏模糊;Laroche 类边缘敏感算法能减少 zipper 和 false color,但在噪声 RAW 上又可能受噪声影响。

2. 拉链伪影(zipper artifact)

2.1 现象

它通常出现在高对比边缘附近,表现为边缘两侧出现交替明暗或交替颜色的小锯齿,像"拉链齿"一样。直边、斜边、黑白对比边缘最容易暴露这个问题。Basler 文档直接把 zipper 作为评价不同 Bayer 去马赛克算法的重要主观指标之一。

2.2 本质原因

本质上是跨边缘插值造成的。算法没有沿着真实边缘方向补值,而是把边缘两侧本来不该混合的样本做了平均,导致绿通道或者色差通道在边缘两边来回跳变。尤其在 Bayer 中,G 通道常被优先重建,一旦 G 的方向判断错了,后面的 R-G、B-G 插值也会跟着错。Laroche 类算法之所以强调先做绿色通道的方向敏感插值,就是为了尽量减少这种边缘错插。

2.3 在手机上更容易被放大的原因

手机链路里,去马赛克之后通常还会经历锐化、局部对比度增强、饱和度提升。如果 demosaic 阶段已经有轻微 zipper,后面的 sharpen 会把它进一步"雕刻"出来,肉眼会觉得边缘毛刺更明显。这个问题在高频纹理、文本边缘、逆光建筑边界上尤其容易被看到。Sony 和 Samsung 都强调 remosaic 需要在高频细节上有更强处理能力,原因也在于这种后续链路会放大早期插值错误。

2.4 调试方法

工程上调 zipper,核心不是"把插值做得更锐",而是先把方向判断做稳 。常见办法有四个。

第一,增强横向/纵向梯度判别的置信度门限 ,不要在噪声区轻易做强方向选择。

第二,在 G 重建阶段加入二阶差分或 Laplace 修正 ,但修正强度要受噪声水平控制,否则会把噪声当细节。

第三,对边缘附近的色差通道加约束或限幅 ,避免 R-G、B-G 在边界处过冲。

第四,降低后续锐化对该区域的增益,因为很多"看起来像 demosaic 问题"的现象,实际上是 demosaic 缺陷被 sharpen 放大。Basler 的例子已经显示,不同 edge-sensitive 方法在人工测试图和 noisy RAW 上表现并不相同,所以调试必须分"无噪测试图"和"真实噪声 RAW"两套看。

3. 伪色(false color)

3.1 现象

本来是灰边、黑白纹理、细金属纹、百叶窗、纺织纹理,结果恢复出来带紫边、绿边、彩虹纹,或者局部出现不应有的彩色像素。Basler 文档明确指出:最近邻更容易产生强 false color,某些边缘敏感或 Laplace 型方法在曲边、斜边上也可能出现较多 false color。

3.2 本质原因

伪色本质上是三个通道重建不一致。最常见路径是:

  • G 估计有误;
  • R-G、B-G 色差插值不稳定;
  • 高频结构被误判成颜色变化。

在自然图像里,亮度高频通常强于色度高频,所以工程上常用"先恢复亮度结构,再恢复色差"的思路。若色差通道在高频区域变化过大,往往就会出现假颜色。Laroche 类算法减少 false color 的一个重要原因,就是先尽量把绿色通道结构做稳。

3.3 手机场景下的高发位置

手机里最容易出伪色的场景往往不是普通人像,而是:

  • 远处楼宇窗格
  • 栅栏、纱窗、衣物细纹
  • LCD/LED 屏幕
  • 重复细线条
  • 高反差黑白图案

这些都容易让 CFA 采样不足,引发高频混叠,再在 demosaic 后变成彩色条纹。Samsung 在 Tetrapixel/Tetracell 的公开说明里特别强调,明亮环境下需要通过 remosaic 重新映射成传统 RGB/Bayer 排列以获得高分辨率细节,实际上就是在努力恢复这些高频信息。

3.4 调试方法

调伪色通常比调 zipper 更强调色差约束 。工程上常用这些方法:

一是对 R-G、B-G 做低通或边缘一致性限制,让色差比亮度更平滑。

二是对高频区启用 false-color suppression ,例如当局部亮度频率很高但色差变化异常时,压制色差信号。

三是把 AWB 增益 纳入调试,因为白平衡会放大某个颜色通道的误差,尤其是高增益蓝通道在低照度下最容易把轻微伪色放大。

四是检查 CCM 和 saturation ,因为很多伪色在 RAW 域只是一点点,经过颜色矩阵和饱和度增强后会变得非常明显。

Basler 给出的算法比较说明了一个现实:减少 zipper 的方法不一定同时最小化 false color,所以工程上常常是多目标折中。

4. 摩尔纹(moiré)

4.1 现象

重复纹理区域出现彩色波纹、周期性条纹、网格抖动,尤其在织物、建筑立面、屏幕、百叶窗上最明显。

4.2 本质原因

这本质上是采样混叠,严格说不全是去马赛克"制造"的,而是场景频率已经超过传感器采样能力,demosaic 只是把混叠"显色化"了。Quad Bayer/Tetrapixel 这类结构因为明亮场景下会走 remosaic,重建难度比普通 Bayer 更高,因此对高频周期纹理更敏感。Sony 在官方页面里明确提到,亮光下要通过 remosaic 把 Quad Bayer 恢复到普通 Bayer 结构;而其 2025 年 QQBC 方案又特别强调 AI remosaicing 对高频细节和文字的恢复能力,说明高频重建一直是 remosaic 的难点。

4.3 调试方法

摩尔纹不能只靠一个"去马赛克参数"解决。工程上更常见的是:

  • 在高频规则纹理检测后,切换到更保守的色差恢复策略;
  • 对色度高频做更强抑制,而尽量保留亮度高频;
  • 结合后级的 moiré suppression;
  • 在 remosaic 模式下引入更强的结构先验或学习型重建。
    如果场景已经是硬件采样极限,再怎么调也只能"减轻",很难完全消失。

5. 彩边 / 色边(color fringing)

5.1 现象

高反差边缘两侧出现紫边、绿边,用户常把它和色差混为一谈。

5.2 需要先区分来源

手机里彩边不一定全是 demosaic 问题,至少有三种来源:

  • 光学色差;
  • 去马赛克通道重建失配;
  • sharpen / local contrast 对单通道过度增强。

因此调试时第一步不是直接改 demosaic,而是要先判断:RAW 里有没有、demosaic 后有没有、sharpen 后是否明显加重。只有在 RAW 本身没有明显色边、demosaic 后开始出现,才优先怀疑 CFA 重建。这个区分非常关键。Sony、Samsung 都把 remosaic 放在传感器或算法核心位置,就是因为一旦阵列转换阶段颜色恢复不稳,后级很容易出现这类边缘色偏。

5.3 调试方法

常见手段是:

  • 限制边缘附近色差梯度;
  • 对 chroma sharpen 单独降强度;
  • 在高对比边缘对 R/B 做 edge-aligned correction;
  • 区分光学紫边和 demosaic 伪色,不要混调。

6. 细节发糊、方向性错误

6.1 现象

看起来没明显伪色,也没明显 zipper,但细节就是"糊""肉""没纹理",或者某个方向清晰、另一个方向发虚。

6.2 本质原因

这通常是算法过于保守。为了压伪色和拉链,很多实现会在复杂纹理区做过强平均,导致真正的高频结构被抹掉。Basler 的文档就指出,简单 3×3 双线性方法会让所有边缘都显得模糊。

6.3 调试方法

这里要注意:

  • 不能一味加 sharpen,因为 sharpen 只会增强已有频率,不能恢复丢掉的采样信息;
  • 更有效的是提升边缘/纹理分类质量,在平坦区保守、纹理区适度激进
  • 对 Quad Bayer remosaic,明亮场景下要特别加强高频重建,否则高像素模式看起来会"分辨率数字很高,真实纹理不够实"。Sony 2025 年 QQBC 官方说明特别提到 AI remosaicing 对细图案和文字细节有改进,正说明"高像素不等于高细节",重建算法决定了最后能不能把高频拿回来。

7.手机 ISP 里怎么系统调试去马赛克

真正工程调试时,我建议你按下面这条链路来定位,而不是上来就改插值核。

1. 先判断问题是不是 demosaic 真因

手机里很多问题看起来像去马赛克,实际可能是:

  • Bayer NR 把局部方向破坏了;
  • AWB 增益过大把某色通道噪声放大;
  • CCM 让轻微色偏变得明显;
  • Sharpen 把轻微锯齿放大成 zipper;
  • HDR 融合或多帧对齐在边缘带来颜色错位。

所以最稳妥的做法是看三份图:
RAW 可视化图 → demosaic 后未锐化图 → 最终输出图。

只有这样才能判断问题是"源于插值",还是"被后级放大"。这也是为什么很多厂商会把 remosaic 放到 sensor 或 ISP 前级去尽早完成,以便后续链路基于更稳定的 RGB/Bayer 结构工作。

2. 场景要分开测

至少分这四类:

  • 黑白斜边、Siemens star、zone plate:看 zipper 和方向性
  • 重复纹理、布料、栅栏:看 false color 和 moiré
  • 低照度灰卡/暗纹理:看噪声下方向判断稳不稳
  • 高对比自然场景:看彩边和后级放大效应
    Basler 文档明确提醒:一种算法在人工测试图上最好,不等于在 noisy Bayer RAW 上最好,所以测试图和真实场景一定要结合。

3. 参数不要只看一帧,要看整条链路稳定性

手机 ISP 调参最怕"某一帧很好看,切场景就炸"。所以 demosaic 参数最好按以下维度联动:

  • ISO / gain
  • CCT / AWB 增益
  • HDR / non-HDR
  • 单帧 / 多帧
  • 普通 Bayer / Quad Bayer binning / remosaic

尤其在 Quad Bayer 传感器上,不同模式下最优参数通常不是一套。Sony 官方就说明了 Quad Bayer 在低照时会做 4 邻近像素加和,而在明亮环境下要 remosaic 回普通 Bayer 结构,这两种模式对噪声和高频细节的约束完全不同。

七、常见评价指标

demosaic的理想效果是通过CFA阵列采集的信号生成一个尽可能接近原始图像的估计颜色图像,通常原始图像并不容易获得,一个比较经典的评价方法流程如下:

(1) 用三传感器提供的原始彩色图像作为原始图像。

(2) 对CFA图像进行demosaic处理,得到一副估计的彩色图像。

(3) 对比原始和估计的彩色图像的差异,通过评价方法确定demosaic算法性能。

在学术领域中,实际原始图像的获取主要采用柯达数据集生成bayer masaic图像制作验证集数据对。原因是柯达数据集是由传统的胶片图像数字化后得到的,由于颜色相关性较高,通过分析颜色的相关性可以得到较有说服力的的结果。

1. 客观指标

与传统图像质量的客观评价标准类似,demosaic的常用客观评价仍然是对原始图像 I 和算法估计图像 I' 进行像素级比较来评价保真度,对于artifact并没有敏感的反映。

  • PSNR
  • SSIM
  • CIE color error
  • zipper / false color 专项指标

2. 主观视觉指标

在一定的采样频率下对各种频率的信号进行采样,采样的的信号是没有办法恢复的和原始信号一模一样的,因此就目前的算法来说demosaic主要会造成以下四类artifact:

(1) 模糊 (Blurring Artifact):插值可以看成一个滤波的过程,对于图像边缘纹理这类高频信息的滤波会导致细节丢失导致图像模糊。

(2) 拉链效应 (Zipper Effect): 在图像从低频跳到高频时, 插值不是沿着边缘而是穿过边缘, 边缘部分会产生模糊和颜色溢出。插值后在水平或垂直方向上出现有一些像素点有规律的间隔分布。

(3) 伪彩色 (False Colors): 估计图像于原始图像在一些像素位置的颜色成分出现较大差异,是图像重合失调和不适当的邻域平均所致, 但是这种差异并没有特定的几何结构,主要出现在色彩的轮廓处区域。

(4) 混叠 (aliasing):插值算法容易在图像中引入低频模式。

以Kodak数据集的img18为例,在双线性插值的算法下多种问题共同存在。

八、总结

一个比较直观的理解方式是:

传感器只给了你一张"彩色信息缺了三分之二"的 RAW 图,去马赛克就是根据邻域结构、边缘方向、颜色相关性,把每个像素缺失的颜色补回来。

它既不是单纯的平均,也不是单纯的滤波,而是一个兼顾:

  • 采样理论
  • 图像统计
  • 颜色相关性
  • 边缘结构
  • 噪声鲁棒性
  • 工程实时性

的核心 ISP 算法。

可以概括为:
去马赛克是 ISP 中将 CFA 采样得到的单色马赛克 RAW 恢复为完整 RGB 图像的关键步骤,其核心在于利用空间邻域、边缘方向和通道相关性对缺失颜色进行自适应估计,并在细节保持、伪色抑制和实时实现之间取得平衡

参考文献:
【去马赛克专题】从bayer到rgb:ISP中的demosaic技术


结~~~

相关推荐
m0_730115112 小时前
C++中的装饰器模式实战
开发语言·c++·算法
我真会写代码2 小时前
深入浅出图像处理原理:OpenCV基础与YOLO实战,从入门到落地
图像处理·人工智能
m0_743470372 小时前
C++中的适配器模式
开发语言·c++·算法
英俊潇洒美少年2 小时前
react 18 的fiber算法
前端·算法·react.js
Oueii2 小时前
模板代码模块化设计
开发语言·c++·算法
m0_730115112 小时前
C++与Rust交互编程
开发语言·c++·算法
jay神2 小时前
基于 YOLOv8 的交通违规检测系统
人工智能·算法·yolo·目标检测·计算机视觉
旖-旎2 小时前
前缀和(连续数组)(7)
c++·算法·leetcode·前缀和·哈希算法
Allen_LVyingbo2 小时前
“拓扑量子计算被证伪”科学纠偏事件分析
算法·搜索引擎·全文检索·动态规划·创业创新·量子计算