1. ISP 基础概念:什么是 ISP、它在相机系统中的位置、RK ISP Pipeline 概述
大家好,我是老周。在图像处理这行摸爬滚打了十几年,从早期的 CCD 传感器一路做到现在的手机多摄、车载摄像头。今天咱们开始聊 RK 平台的 ISP 调优,第一节课,先把地基打牢。
很多人一上来就问我:“老周,ISP 到底是个啥?” 说白了,ISP(Image Signal Processor,图像信号处理器) 就是相机的“大脑”。传感器(Sensor)只是把光信号转成电信号,出来的原始数据叫 RAW 图。这 RAW 图能直接用吗?不能。它偏色、有噪点、亮度不均匀、细节模糊…… 你想想看,要是手机拍出来的照片直接就是 RAW 的样子,估计没人愿意用。
ISP 干的事,就是把这块“璞玉”雕琢成“美玉”。它通过一系列硬件加速的算法模块,把 RAW 图处理成人眼看着舒服、机器能识别的图像。
一句话总结: Sensor 负责“看见”,ISP 负责“看懂”并“美化”。没有 ISP,Sensor 就是个瞎子。
1.1 ISP 在相机系统中的位置
咱们先看看 ISP 在整个相机系统里到底站在哪。我习惯把相机系统分成三块:光学前端、模拟/数字转换、图像处理与输出。
你拿手机拍一张照片,光线先穿过镜头(Lens),经过光圈控制进光量,然后打到传感器(Sensor)上。传感器上的每个像素点(Photosite)把光子转换成电子,再通过 ADC(模数转换器)变成数字信号。这时候出来的就是 RAW 数据。
RAW 数据直接进入 ISP。ISP 处理完后,输出 YUV 或 RGB 格式的图像,最后交给编码器(Encoder)压缩成 JPEG 或 H.264,或者直接送显存显示。
我在项目中遇到过一个问题:有人把 ISP 和 DSP 搞混了。DSP 是通用数字信号处理器,能跑各种算法;但 ISP 是专用的,它里面的模块(比如去噪、插值、色彩校正)都是硬件流水线,一帧数据进来,几个时钟周期就处理完了。你要是用 DSP 去跑同样的算法,功耗和延迟都受不了。
我的习惯: 看系统框图时,先找到 ISP 的位置。它一定在 Sensor 之后、编码器或显示之前。如果中间插了个 CPU 或 GPU 做图像处理,那基本是软件方案,性能会差一截。
下面这张图,是我自己画的 ISP 在相机系统中的位置。你看,数据流是单向的,从 Sensor 到 ISP,再到后端。
1.2 什么是 ISP Pipeline
Pipeline,中文叫“流水线”。ISP 不是一个大模块一把抓,而是把图像处理拆成几十个小步骤,每个步骤由专门的硬件单元完成。数据像流水一样,从上一个模块流到下一个模块。
为什么要用流水线?因为快。你想想看,如果一帧 4K 图像的数据量是 8MB,每秒 30 帧,那就是 240MB/s 的数据吞吐量。用软件逐帧处理,CPU 早冒烟了。硬件流水线可以做到每个时钟周期处理一个像素,延迟只有几微秒。
RK 的 ISP Pipeline 大致包含以下几个核心阶段:
| 阶段 | 模块 | 主要功能 |
|---|---|---|
| 1 | BLC(黑电平校正) | 消除传感器暗电流引起的固定偏置 |
| 2 | LSC(镜头阴影校正) | 补偿镜头边缘亮度衰减和色差 |
| 3 | DPC(坏点校正) | 检测并修复传感器上的死点、亮点 |
| 4 | Demosaic(去马赛克) | 将 Bayer 格式插值成 RGB 全彩图 |
| 5 | AWB(自动白平衡) | 校正色温偏差,让白色看起来是白的 |
| 6 | CCM(色彩校正矩阵) | 将传感器色彩空间映射到标准色彩空间 |
| 7 | Gamma(伽马校正) | 调整亮度响应曲线,适配显示设备 |
| 8 | NR(去噪) | 降低亮度噪点和色彩噪点 |
| 9 | Sharpen(锐化) | 增强边缘细节,提升清晰度 |
| 10 | YUV 输出 | 转换并输出最终图像 |
嗯,这里要注意:上面这个顺序是典型的 RK ISP 硬件流水线顺序。不同芯片、不同厂商可能会微调,但大体框架是一样的。我在调优时,经常需要从前到后逐个模块排查问题。比如画面偏绿,可能是 AWB 没调好,也可能是 CCM 矩阵系数不对。你得顺着 Pipeline 一步步查。
避坑指南: 我曾经在调一个项目时,发现画面边缘偏紫。我一开始以为是 LSC 没调好,折腾了两天。后来才发现是 Demosaic 模块的插值算法参数不对,导致边缘伪色。所以,不要只盯着一个模块看,要全局考虑 Pipeline 的上下游影响。
1.3 RK ISP Pipeline 概述
RK(瑞芯微)的 ISP 在安防、车载、消费电子领域用得非常多。它的 Pipeline 设计有几个特点:
- 模块化:每个模块可以独立使能、独立调参。你可以在调试时关掉某个模块,看它对图像的影响。
- 可配置性强:RK 提供了丰富的 tuning tool(调优工具),支持在线调参、实时预览。
- 多级去噪:RK ISP 通常包含 2-3 级去噪,分别处理不同频率的噪声。这在低光照场景下特别重要。
下面这张图,是我整理的 RK ISP Pipeline 的简化流程。你看,数据从 RAW 进来,经过一系列处理,最后输出 YUV。
我个人习惯,拿到一块新的 RK 芯片,第一件事就是跑一遍默认的 Pipeline,看看每个模块的输出效果。这样能快速了解芯片的“脾气”。比如,默认的 NR 强度是不是太大?CCM 的饱和度是不是偏高?这些心里有数了,后面调优才能有的放矢。
小技巧: 在 RK Tuning Tool 里,你可以同时打开多个模块的开关,对比开启前后的差异。我经常把 NR 和 Sharpen 一起调,因为这两个模块是“冤家”——NR 去噪会损失细节,Sharpen 增强细节又会放大噪声。找到平衡点,才是调优的关键。