3. RK ISP Pipeline详解:从RAW到YUV的完整流程
瑞芯微RK平台的ISP(图像信号处理器)Pipeline是一条高度可配置的硬件处理链路,其核心任务是将Sensor输出的RAW拜耳数据,经过一系列数字信号处理模块,最终转换为高质量的YUV图像数据。理解这条Pipeline的每个环节,是进行ISP调优的基础。
3.1 整体流程概览
下图展示了RK ISP Pipeline从RAW输入到YUV输出的标准数据流。数据依次经过黑电平校正、去噪、去马赛克、色彩校正、Gamma校正、锐化等关键模块。
3.2 各模块功能详解
3.2.1 BLC(黑电平校正)
BLC是ISP Pipeline的第一个处理环节。由于Sensor在无光照条件下仍会产生一个基础的电信号(黑电平),BLC通过减去一个固定的偏移量,将黑电平归零,确保暗部细节的准确性。
- 输入: RAW数据
- 输出: 校正后的RAW数据
- 关键参数: 黑电平偏移值(通常为64或128,取决于Sensor位数)
3.2.2 LSC(镜头阴影校正)
由于镜头的光学特性,图像边缘的亮度通常会低于中心区域(亮度阴影),且可能出现颜色偏差(色阴影)。LSC通过一个二维增益网格,对每个像素点进行增益补偿,使画面亮度均匀。
- 输入: RAW数据
- 输出: 亮度均匀的RAW数据
- 关键参数: 增益网格(Mesh)大小、各通道增益系数
3.2.3 AWB(自动白平衡)
AWB模块负责在不同色温的光源下,将白色物体还原为白色。它通过统计图像中R、G、B通道的响应,计算出R/G和B/G的比值,并据此调整各通道的增益,使图像色温归一化。
- 输入: RAW数据
- 输出: 白平衡校正后的RAW数据
- 关键参数: R/G增益、B/G增益、色温区间
3.2.4 CCM(色彩校正矩阵)
由于Sensor的光谱响应与人眼视觉系统存在差异,CCM通过一个3x3的矩阵,将Sensor的RGB色彩空间映射到标准色彩空间(如sRGB),以还原真实色彩。
| 模块 | 输入 | 输出 | 核心作用 |
|---|---|---|---|
| BLC | RAW | RAW | 消除暗电流噪声 |
| LSC | RAW | RAW | 补偿镜头阴影 |
| AWB | RAW | RAW | 还原白色平衡 |
| CCM | RGB | RGB | 色彩空间转换 |
| Gamma | RGB | RGB | 亮度非线性映射 |
| Denoise | RGB/YUV | RGB/YUV | 降低噪声 |
| Sharpen | YUV | YUV | 增强边缘细节 |
3.2.5 Gamma校正
Gamma校正是一种非线性亮度映射,用于补偿显示设备的非线性响应,同时优化人眼对暗部细节的感知。它通过一个查找表(LUT)将线性亮度值映射为非线性输出。
// Gamma校正的典型数学表达
// 输入:线性亮度值 L_in (0.0 ~ 1.0)
// 输出:校正后亮度值 L_out
// Gamma值通常为 2.2
L_out = pow(L_in, 1.0 / gamma_value);
3.2.6 Denoise(去噪)
去噪模块是图像质量的关键。RK ISP通常提供多种去噪策略,包括空域去噪(如双边滤波)和时域去噪(多帧融合)。调优时需要在去噪强度与细节保留之间找到平衡。
- 空域去噪: 对单帧图像进行滤波,适合静态场景。
- 时域去噪: 利用前后帧信息进行降噪,适合低照度场景,但可能引入运动拖影。
3.2.7 Sharpen(锐化)
锐化模块通过增强图像的高频分量(边缘和纹理),提升视觉清晰度。RK ISP的锐化通常基于非锐化掩模(Unsharp Masking)算法,通过提取原图的高频信息并叠加回原图实现。
// 非锐化掩模锐化流程
// 1. 对原图进行高斯模糊,得到低频图
// 2. 原图减去低频图,得到高频分量(边缘)
// 3. 将高频分量乘以增益系数后,加回原图
sharpened_image = original_image + gain * (original_image - blurred_image);
3.3 模块间的依赖关系与调优顺序
ISP Pipeline的模块之间存在强依赖关系。例如,CCM的校正效果依赖于AWB的准确性;Denoise的强度会影响Sharpen的效果。因此,调优必须遵循一定的顺序:
- 基础校正: 先调BLC和LSC,确保亮度和颜色均匀。
- 色彩还原: 再调AWB和CCM,确保色彩准确。
- 亮度映射: 然后调Gamma,优化整体对比度。
- 噪声与细节: 最后调Denoise和Sharpen,在噪声和清晰度之间取得平衡。