ISP Pipeline 功耗模型:像素处理流水线拆解
做 ISP 功耗优化,第一件事不是上手调代码。
你得先搞清楚——电都烧在哪儿了?
我个人习惯,拿到一个 ISP 设计,先画一张流水线拆解图。把每个模块的功耗占比测出来,再根据场景(预览、拍照、录像)去分析差异。这样后面做优化,才知道刀往哪儿砍。
ISP 像素处理流水线拆解
一个典型的 ISP Pipeline,从 Sensor 拿到 RAW 数据,到最终输出 YUV 或 JPEG,中间经过十几个模块。我把它分成三大阶段:
- 前端预处理:BLC(黑电平校正)、DPC(坏点校正)、AWB Gain(白平衡增益)、Demosaic(去马赛克)
- 中端核心处理:CCM(色彩校正矩阵)、Gamma(伽马校正)、LSC(镜头阴影校正)、WNR(亮度降噪)、CNR(色彩降噪)
- 后端输出处理:Sharpen(锐化)、Scale(缩放)、Tone Mapping(色调映射)、YUV 转换、JPEG 编码
每个模块的硬件实现,说白了就是一堆 line buffer + 乘加器 + 查找表。功耗主要来自三部分:
- 数据搬运——DDR 读写、SRAM 读写、Line Buffer 刷新
- 计算单元——乘法器、加法器、比较器、LUT 查表
- 控制逻辑——状态机、寄存器配置、中断处理
我在项目中遇到过,有些团队一上来就优化计算单元,结果发现数据搬运占了 60% 的功耗。白忙活。
核心观点:ISP 功耗优化的第一原则——先看数据流,再看计算流。数据少搬一次,比省几个乘法器管用得多。
各模块功耗占比分析
下面这张表,是我基于一个 4K@60fps 的 ISP 设计实测数据整理的。不同分辨率、帧率下比例会有浮动,但大方向差不多。
| 模块 | 功耗占比 | 主要功耗来源 | 优化空间 |
|---|---|---|---|
| Demosaic | 18% - 22% | 方向插值 + 边缘检测 | 中 |
| 降噪 (WNR+CNR) | 15% - 20% | 多级滤波 + 权重计算 | 高 |
| LSC | 8% - 12% | 网格查表 + 双线性插值 | 低 |
| CCM + Gamma | 6% - 10% | 3x3 矩阵乘 + LUT | 中 |
| Sharpen | 5% - 8% | 高通滤波 + 增益 | 中 |
| Scale | 4% - 7% | Line Buffer + 系数计算 | 高 |
| JPEG 编码 | 10% - 15% | DCT + 熵编码 | 低 |
| 其他 (BLC/DPC/AWB等) | 10% - 15% | 查表 + 简单运算 | 低 |
你想想看,Demosaic 和降噪两个模块加起来就占了将近 40%。这俩是 ISP 的功耗大头,也是优化的主战场。
我曾经在一个项目中,把降噪模块的滤波窗口从 9x9 砍到 5x5,功耗降了 8%,画质损失肉眼几乎看不出来。嗯,这种 trade-off 值得做。
经验之谈:降噪模块的功耗和滤波窗口大小呈平方关系。窗口从 7x7 扩大到 9x9,功耗增加约 65%。但画质提升可能只有 5%。每次改窗口前,先问自己——这 5% 的画质提升,用户真的看得出来吗?
典型场景功耗差异:预览 vs 拍照 vs 录像
同一个 ISP,在不同场景下功耗差异巨大。我见过有人拿拍照场景的功耗数据去优化录像模式,结果方向全错了。
先看三个场景的核心差异:
- 预览:分辨率低(通常是 1080p 或 720p),帧率 30fps,不需要 JPEG 编码,降噪可以轻量级
- 拍照:全分辨率(比如 48MP),单帧处理,需要 JPEG 编码,降噪和锐化可以重一些
- 录像:分辨率 4K 或 1080p,帧率 30/60fps,需要持续编码,降噪要平衡画质和功耗
下面这张 SVG 图,把三个场景的流水线差异画出来了:
从功耗数据来看,三个场景的差异非常明显:
| 场景 | 典型分辨率 | 帧率 | 相对功耗 | 功耗热点 |
|---|---|---|---|---|
| 预览 | 1080p | 30fps | 1x (基准) | 降噪 + 缩放 |
| 拍照 | 48MP | 单帧 | 3x - 5x | 降噪 + JPEG 编码 |
| 录像 | 4K | 60fps | 2x - 3x | 降噪 + 视频编码 |
注意:拍照场景虽然单帧功耗最高,但因为不是持续运行,平均功耗反而可能低于录像。录像场景的持续高帧率才是真正的功耗杀手——发热、降频、掉帧,一条龙服务。
我做过一个项目,录像时 ISP 功耗超标,团队一开始去优化 JPEG 编码器。我说别急,录像又不用 JPEG。后来发现是降噪模块在 4K@60fps 下跑满了,滤波窗口从 7x7 降到 5x5,功耗直接降了 15%。
说白了,场景化优化才是 ISP 功耗设计的正确姿势。预览、拍照、录像,三个场景三套策略,不能一把抓。