1. ISP基础概念

大家好,我是老周。在图像处理这行摸爬滚打了十几年,从早期的 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,再到后端。

相机系统数据流:ISP 在中间 镜头 + 传感器 ADC 转换 ISP 处理 编码 / 显示 关键说明: • Sensor 输出的是 RAW(Bayer 格式)数据,每个像素只有一种颜色分量。 • ISP 输入 RAW,输出 YUV/RGB。中间经过几十个硬件模块流水线处理。 • 编码器只认 YUV,所以 ISP 输出 YUV 是主流。

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 ISP Pipeline 简化流程 RAW 输入 BLC LSC DPC Demosaic AWB CCM Gamma NR Sharpen YUV 输出 RK ISP Pipeline 特点: • 硬件流水线:每个模块都是独立硬件,数据流单向、无阻塞。 • 可旁路:调试时可以跳过某个模块,快速定位问题。 • 多级 NR:RK 通常有 2~3 级去噪,分别处理低频和高频噪声。 • 在线调参:RK Tuning Tool 支持实时修改参数,所见即所得。

我个人习惯,拿到一块新的 RK 芯片,第一件事就是跑一遍默认的 Pipeline,看看每个模块的输出效果。这样能快速了解芯片的“脾气”。比如,默认的 NR 强度是不是太大?CCM 的饱和度是不是偏高?这些心里有数了,后面调优才能有的放矢。

小技巧: 在 RK Tuning Tool 里,你可以同时打开多个模块的开关,对比开启前后的差异。我经常把 NR 和 Sharpen 一起调,因为这两个模块是“冤家”——NR 去噪会损失细节,Sharpen 增强细节又会放大噪声。找到平衡点,才是调优的关键。