2. 性能指标定义:帧率、延迟、功耗、带宽、内存占用
做端侧AI ISP优化,第一件事不是调代码,而是把指标对齐。
我见过太多团队,一上来就怼帧率,结果功耗炸了,带宽爆了,最后项目延期。说白了,性能优化是个系统工程,你得先知道你要优化什么。
这一章,我把五个核心指标掰开揉碎了讲。每个指标我都会告诉你:它是什么、怎么测、以及我在项目中踩过的坑。
2.1 帧率(FPS)
帧率,就是每秒能处理多少张图像。单位是fps(frames per second)。
对于AI ISP来说,帧率直接决定了你的系统能不能跑实时。比如视频通话要30fps,行车记录仪要60fps,慢动作可能要240fps。
单帧处理时间(ms)= 1000 / FPS
比如30fps,每帧只有33.3ms的处理窗口。
我个人习惯,在项目初期先定一个目标帧率,然后反推每帧的预算时间。这个预算要分给:Sensor出图、ISP Pipeline、AI推理、后处理、显示输出。
2.2 延迟(Latency)
延迟和帧率是两码事。很多人搞混。
帧率是吞吐量,延迟是响应时间。举个例子:你按快门到看到照片,中间隔了多久?那就是延迟。
在AI ISP里,延迟通常指:从Sensor曝光开始,到最终图像输出到显示器的总时间。
我建议把延迟拆成三段来看:
- Sensor延迟: 曝光时间 + 读出时间
- 处理延迟: ISP Pipeline + AI推理 + 后处理
- 传输延迟: 数据从DDR到显示接口的时间
2.3 功耗(Power)
端侧设备最要命的指标,没有之一。
手机、无人机、AR眼镜,电池就那么点。AI ISP如果功耗压不住,性能再强也没用。
功耗通常分三块:
| 功耗类型 | 典型占比 | 说明 |
|---|---|---|
| 计算功耗 | 40%~60% | NPU、DSP、CPU跑AI和ISP算法 |
| 内存功耗 | 20%~30% | DDR读写,带宽越大功耗越高 |
| Sensor/显示 | 10%~20% | Sensor曝光、MIPI传输、屏幕刷新 |
我个人习惯,在芯片选型阶段就拉一个功耗预算表。比如:整机功耗限制2W,AI ISP最多分到800mW。然后每个模块再往下分。
2.4 带宽(Bandwidth)
带宽,就是数据搬运的速度。单位是GB/s。
AI ISP里,带宽往往比算力更容易成为瓶颈。为什么?因为图像数据太大了。
算一笔账:
4K分辨率:3840 × 2160 ≈ 8.3M像素
每个像素:10bit RAW ≈ 1.25字节
一帧数据:8.3M × 1.25 ≈ 10.4 MB
30fps带宽:10.4 MB × 30 ≈ 312 MB/s
这只是RAW数据,还没算AI中间特征图、后处理缓存...
你想想看,如果DDR带宽只有3.2GB/s(LPDDR4典型值),光搬数据就占了10%,再加上AI模型权重、中间结果、系统其他任务...很容易就爆了。
2.5 内存占用(Memory Footprint)
内存占用,就是你的AI ISP模型和中间结果占了多少DDR空间。
端侧设备的内存很金贵。手机可能分给ISP的只有几十MB,IoT设备可能总共才128MB。
内存占用主要来自三部分:
- 模型权重: 神经网络参数,INT8量化后一般几MB到几十MB
- 特征图缓存: 推理过程中的中间结果,这个往往是大头
- 图像缓冲区: 多帧输入、输出、后处理临时空间
2.6 五个指标的关系
这五个指标不是孤立的。它们互相影响,甚至互相矛盾。
我画了一张关系图,你看一眼就明白了:
你看,这五个指标就像五个手指,攥在一起才有力。但想同时优化所有指标?不可能。你得根据产品需求做取舍。
比如:
- 手机拍照: 优先保证画质和延迟,功耗可以放宽(反正用户拍一张就完事)
- 无人机图传: 优先保证帧率和功耗,画质可以降一点
- AR眼镜: 延迟和功耗是命门,帧率可以降到24fps
2.7 本章小结
五个指标,说多不多,说少不少。但每个指标背后,都有一堆坑等着你。
记住一句话:没有完美的指标,只有合适的取舍。