文章目录
-
- [1. 常见的图像色彩空间](#1. 常见的图像色彩空间)
-
- [Bayer Pattern(阵列格式)](#Bayer Pattern(阵列格式))
- RGB (三原色光模式)
- YUV (亮度与色度分离空间)
- [2. 常见的色彩空间转换](#2. 常见的色彩空间转换)
-
- [Bayer (RAW) 转 RGB](#Bayer (RAW) 转 RGB)
- [RGB 转 YUV](#RGB 转 YUV)
- [Bayer 转YUV](#Bayer 转YUV)
- [YUV 转 RAW (Bayer)](#YUV 转 RAW (Bayer))
- [3. openISP Pipeline](#3. openISP Pipeline)
-
- [openISP 数据流](#openISP 数据流)
- 案例:森云星光相机带来全新isp技术
OpenISP是一个开源的图像信号处理器(ISP)项目,这里我们可以在github直接搜索openISP就可以下载了.它内部采用软件子模块的方式,对象从RAW,RGB,YUV等各个色彩空间的转换操作,过程包含DPC,BLC,CC等等,
后续每个子模块的功能,后面专门抽时间研究原理和功能.
在介绍openISP之前先来认识一些色彩空间以及他们之间是如何转换的, 后续openISP都是在这些色彩空间转换的.
1. 常见的图像色彩空间
Bayer Pattern(阵列格式)
- 原理:
Bayer 是 RAW 数据最常用的一种色彩滤波阵列(CFA)排列方式。由于传感器本身只能感知光强不能感知颜色,因此覆盖一层滤色片。最常见的是 RGGB 排列(红-绿-绿-蓝),因为人眼对绿色最敏感,所以绿色像素数量是红蓝的两倍。 - 常用位宽:
8位(BayerRG8)、10位(BayerRG10)、12位(BayerRG12)。 - 特点:
每个像素只包含单通道信息,看起来像打了马赛克,必须经过"去马赛克(Demosaic)"算法插值才能还原真实色彩。
如下图可以看到左上角的4个像素分别为RGGB,那么就说这款sensor的bayer pattern是rggb

最常用的 4 种标准 Bayer 排列如下所示:
rggb: R Gr bggr: B Gb gbrg: Gb B grbg: Gr R
Gb B Gr R R Gr B Gb
当然你可能还听过,ideal RAW, MIPI RAW等这些图像格式
- Ideal RAW: 这是高通平台专属的一种图象格式, 这种格式不仅包含了图像传感器(Sensor)直接输出的原始 Bayer 数据,还打包了拍摄该帧图像时的关键元数据(Metadata),例如传感器增益、曝光时间、镜头参数以及当时的 3A(自动曝光、自动白平衡、自动对焦)状态等. 有了这些信息后,算法工程师和 Camera 工程师可以通过 IDEAL 工具加载这些 RAW 文件,在 PC 端离线模拟 ISP 的处理管线(Pipeline),从而对 CCM(色彩校正矩阵)、LSC(镜头阴影校正)、Gamma、AWB 等模块进行参数调整和验证,而无需每次都连接真机进行实机拍摄。
- MIPI RAW: 它就是正常的RAW格式的图像,通过MIPI传输.
除了上面的一些bayer格式,同时你可能也听过QCFA和binning这2个名词.
- Binning Mode(4合1)
在弱光条件(暗态)或预览模式下,传感器会启动此模式。它将四个相邻的、颜色相同的像素合并为一个"超级像素(Super Pixel)"。例如,一个 16MP(1600万像素)的传感器会转换为 4MP(400万像素)输出。这种"4 in 1"的设计相当于将四个像素的光照集中在一起,从而大幅提升图像的信噪比,使暗光下的照片更加明亮、清晰,同时也能加快图像处理速度。

- Non-binning Mode(QCFA)
QCFA 的全称是 Quadra Color Filter Array(四合一色彩滤波阵列). 如果是QCFA的图像传输到平台端是不能直接用于处理的,需要将图像转换成正常的bayer域的图像,这就要用到remosaic算法了,就是把图像通过软件或硬件转换成正常的RGGB,BGGR等图像格式了.后续博文会介绍这一块. 下图即为QCFA图像经过remosaic处理后的效果对比.

- XCFA:
上面说的QCFA是2x2,即4合1的senor,其实还有3x3,4x4的格式. QCFA是XCFA的一个子集. 原理都是一样的,这里就不多说了.
RGB (三原色光模式)
- 原理:
RGB 是一种真彩色空间,每个像素都包含完整的红®、绿(G)、蓝(B)三个通道的强度值。从 Bayer 转换到 RGB 的核心步骤就是 Demosaic(去马赛克),即通过插值算法(如双线性插值、梯度校正插值等)根据相邻像素推算出缺失的两个颜色值。 - 常用位宽:
RGB888(每通道8位,共24位)、RGB565(R占5位,G占6位,B占5位,共16位)。 - 特点:
这是显示器等输出设备的最终显示格式,色彩信息完整,但数据量庞大,不适合直接用于视频传输和存储。
YUV (亮度与色度分离空间)
- 原理:
YUV 将图像的亮度(Y)和色度(U、V)分离。因为人眼对亮度极其敏感,对色彩细节不敏感,所以可以在保持主观视觉质量的前提下,对 U、V 分量进行二次采样(如 4:2:2、4:2:0),从而大幅压缩数据量。 - 常用位宽:
通常为 8位(每个分量8位)。 - 特点:
是视频存储、传输和编解码(如 JPEG, MPEG, H.264)的绝对主流格式。
格式转换流程与例子
2. 常见的色彩空间转换
Bayer (RAW) 转 RGB
- 转换原理:Demosaic(去马赛克)。
- 举例:
假设 Bayer 阵列中某个像素是 G,它只有绿色通道值。算法会提取它上下两个 R 像素的平均值作为它的 R 值,提取左右两个 B 像素的平均值作为它的 B 值,从而补全该像素的 RGB 三元组。
RGB 转 YUV
- 转换原理:
通过矩阵运算将 RGB 色彩空间映射到 YUV 空间,随后通常伴随色度下采样(Chroma Subsampling)。 - 举例:
使用 BT.601 标准转换矩阵,将 RGB888 转换为 YUV420。转换后,每 4 个像素共享一组 UV 色度信息,数据体积相比 RGB 减少了约一半。
Bayer 转YUV
Bayer (RAW) 数据转换为 YUV 数据并不是一个直接的数学映射,而是一个复杂的、多步骤的图像处理流水线(ISP Pipeline)。由于 Bayer 数据是单通道的原始光强信息,而 YUV 是亮度与色度分离的色彩空间,转换过程必须经过中间的色彩空间(通常是 RGB).在上面的2个小部分也是这样介绍的,RAW->RGB, RGB->YUV.
YUV 转 RAW (Bayer)
- 转换原理:
这是一个不可逆的过程。因为 YUV 已经经过了有损压缩和色彩空间转换,丢失了原始的传感器光子计数信息。如果强行需要 RAW 数据,只能通过算法模拟(如 YUV 转回 RGB,再逆向插值模拟 Bayer 阵列),或者绕过 ISP 直接从传感器硬件获取。
所以从上面的颜色转换也能看出正常的图像处理流程如下:
传感器捕获光子 ➔ RAW (Bayer) ➔ Demosaic/ISP处理 ➔ RGB ➔ 矩阵转换/色度下采样 ➔ YUV ➔ 编码压缩 ➔ 视频/图片文件。
3. openISP Pipeline
openISP 数据流
下图是openISP的pipeline流程, 图中标明了处理的色彩空间,这里就不详细说明, 后续博文会扒开来说. 相比较下面一个案例的pipeline, openISP少了几个子模块, 后面也会抽几个研究下原理.
RAW (uint16, Bayer)
│
▼
[DPC] 坏点校正 ------ Bayer 域预处理
│
▼
[BLC] 黑电平补偿 ------ Bayer 域预处理
│
▼
[AAF] 抗混叠滤波 ------ Bayer 域平滑
│
▼
[AWB] 白平衡增益 ------ Bayer 域色彩校正
│
▼
[CNF] 色度噪声滤波 ------ Bayer 域降噪
│
▼
[CFA] 去马赛克 ------ RAW → RGB
│
▼
[CCM] 色彩校正矩阵 ------ RGB 色彩校正
│
▼
[GC] Gamma 校正 ------ RGB 色调映射
│
▼
[CSC] 色彩空间转换 ------ RGB → YUV
│
├──[NLM] 非局部均值降噪(Y 通道)
│ ↓
├──[BNF] 双边滤波(Y 通道)
│ ↓
├──[EE] 边缘增强(Y 通道)→ edgemap
│ ↓
├──[FCS] 假彩色抑制(UV 通道,需要 edgemap)
│
▼
[HSC] 色调/饱和度控制 ------ UV 通道后处理
│
▼
[BCC] 亮度/对比度控制 ------ Y 通道后处理
│
▼
YUV 输出 (uint8)
案例:森云星光相机带来全新isp技术

第一阶段:RAW域处理(黄色虚线框内)
这一阶段主要处理传感器输出的原始Bayer数据。
- SENSOR IF:Sensor Interface,传感器接口。负责接收来自图像传感器的原始数据,并进行初步的格式转换或同步。这个一般是CSI(MIPI)
- LDC:Lens Distortion Correction,镜头畸变校正。用于修正由于镜头光学特性导致的图像几何失真(如桶形或枕形畸变)。
- BLC:Black Level Correction,黑电平校正。消除传感器暗电流引起的底噪,将图像的黑色基准对齐到零。
- DPC:Defect Pixel Correction,坏点校正。检测并修复传感器上的死点、热点等异常像素。
RNR:Raw Noise Reduction,RAW域降噪。在去马赛克之前对原始数据进行降噪处理,以减少后续处理中的噪声放大。 - 3A:Auto Exposure / Auto White Balance / Auto Focus,自动曝光/自动白平衡/自动对焦。这是ISP的核心控制算法,负责统计图像信息并反馈控制传感器参数。
- CFI:Color Filter Interpolation,色彩滤镜插值(也常称为Demosaic或去马赛克)。将Bayer格式的RAW数据转换为每个像素都包含RGB三通道的完整图像。
第二阶段:RGB域处理(黑色虚线框内)
这一阶段处理已经还原为RGB色彩的图像数据。
- TMAP:Tone Mapping,色调映射。主要用于高动态范围(HDR)图像,将宽动态范围的亮度压缩到显示设备可呈现的范围内,保留亮部和暗部细节。
- CCM:Color Correction Matrix,色彩校正矩阵。修正传感器光谱响应与人眼视觉标准之间的差异,使颜色还原更准确。
第三阶段:YUV域处理(紫色虚线框内)
图像从RGB空间转换到YUV(亮度+色度)空间后进行的处理,便于分离亮度和色彩进行独立优化。
- CSC:Color Space Conversion,色彩空间转换。此处指从RGB转换到YUV空间。
- EE:Edge Enhancement,边缘增强(锐化)。提升图像的边缘对比度,使画面看起来更清晰。
- NR2D:2D Noise Reduction,二维降噪。在YUV域进一步去除图像噪声,通常比RAW域降噪更注重纹理保护。
- GAMMA:Gamma Correction,伽马校正。对图像亮度进行非线性变换,以匹配人眼的视觉感知特性或显示设备的输出曲线。
- CA:Chromatic Aberration Correction,色差校正。修正镜头引起的紫边或绿边等轴向/横向色差问题。
- BA:Brightness Adjustment / Banding Artifact Removal,亮度调整或条纹伪影去除。具体含义视厂商定义而定,通常涉及局部亮度优化或去除频闪条纹。
第四阶段:最终输出(左下角黑色虚线框内)
- CSC:Color Space Conversion,色彩空间转换。此处指从YUV转回RGB空间(或者是转为特定的输出格式)。
- SA:Saturation Adjustment,饱和度调整。对图像的色彩鲜艳度进行最终调节。
- GMSL Camera:Gigabit Multimedia Serial Link Camera。这代表处理完成后的数据通过GMSL高速串行接口输出给外部设备或存储。