2. Camera硬件功耗拆解:Sensor、ISP、DSP、CPU、GPU、Memory各模块功耗占比

上一章我们聊了整机功耗的宏观视角,这一章咱们把镜头拉近,看看Camera这条Pipeline里,每个硬件模块到底吃了多少电。

我入行那会儿,第一次做功耗拆解,拿着电流钳测了半天,发现Sensor的功耗居然比ISP还高,当时挺意外的。后来才明白,不同场景下,功耗的“主角”是会换的。

2.1 功耗拆解的整体框架

一个典型的拍照或录像流程,数据流是这样的:

Camera 数据流与功耗模块 Sensor ISP DSP CPU GPU Memory CPU 负责控制与调度 GPU 负责图形与部分计算 Memory 是全局数据中转

说白了,光从Sensor进来,经过ISP处理,再到DSP/CPU/GPU做算法,最后数据在Memory里倒腾。每个环节都在耗电,但比例天差地别。

2.2 各模块功耗占比详解

我整理了一份典型场景下的功耗占比表。注意,这是基于某款主流旗舰芯片的数据,不同平台会有浮动,但趋势是一致的。

硬件模块 预览 (30fps) 拍照 (单帧) 录像 (1080p30) 录像 (4K60)
Sensor 25% - 35% 15% - 20% 30% - 40% 35% - 45%
ISP 20% - 25% 25% - 30% 20% - 25% 20% - 25%
DSP 10% - 15% 15% - 20% 10% - 15% 10% - 15%
CPU 10% - 15% 20% - 25% 10% - 15% 5% - 10%
GPU 5% - 10% 5% - 10% 5% - 10% 5% - 10%
Memory 10% - 15% 10% - 15% 10% - 15% 10% - 15%

关键发现:Sensor和ISP是的功耗大户,两者加起来通常超过50%。CPU在拍照后处理阶段会短暂飙升,但录像时反而占比下降,因为硬件编解码和ISP接管了大部分工作。

2.3 Sensor:光与电的转换代价

Sensor的功耗主要来自三部分:像素阵列的读出、模拟前端(AFE)的转换、以及MIPI接口的传输。

  • 像素读出:分辨率越高、帧率越快,读出功耗越大。4K60比1080p30的读出功耗高出2-3倍。
  • 模拟前端:ADC转换的功耗,跟位深和增益有关。HDR多帧合成时,ADC会反复工作,功耗明显上升。
  • MIPI传输:数据量越大,MIPI Lane的功耗越高。4K60需要4条Lane跑在1.5Gbps以上,功耗不容小觑。

我记得有一次,客户反馈预览时手机发热严重。一查,发现Sensor的MIPI频率配高了,降一档后温度直接降了3度。嗯,细节决定成败。

2.4 ISP:图像处理的电力黑洞

ISP是专门为图像处理设计的硬件,但它并不省电。为什么?因为它要处理的数据量太大了。

一个典型的ISP Pipeline包含:Bayer处理、去马赛克、白平衡、色彩校正、Gamma、降噪、锐化、缩放……每一步都是像素级的运算。

我的经验:ISP的功耗跟“处理精度”强相关。同样是降噪,3x3的卷积核和5x5的卷积核,功耗能差30%。在项目初期,我建议先跑一遍ISP的功耗profiling,找到瓶颈再优化。

2.5 DSP与CPU:算法落地的选择

DSP和CPU都负责算法执行,但定位不同。

  • DSP:专为信号处理设计,能效比高。适合跑固定的、计算密集型的算法,比如FFT、卷积、矩阵运算。
  • CPU:通用性强,但能效比低。适合跑控制逻辑、复杂分支、以及不规则的算法。

我见过不少团队,把本该跑在DSP上的算法扔给CPU,结果功耗直接翻倍。你想想看,CPU的大核跑一个100ms的算法,跟DSP跑同样的算法,功耗差距可能达到3-5倍。

避坑指南:我曾经在一个项目中,把AI降噪算法跑在CPU上,结果手机烫得拿不住。后来迁移到DSP,功耗降了60%,帧率还提升了。所以,算法落地的第一原则:能用硬件加速的,绝不用CPU。

2.6 GPU与Memory:被忽视的隐性消耗

GPU在Camera中的角色,主要是图形渲染和部分通用计算。比如,预览画面的叠加、滤镜的实时渲染、以及部分AI模型的推理。

GPU的功耗特点是“突发性高”。平时可能只占5%,但一旦开启美颜或AR特效,功耗能瞬间飙到20%以上。

Memory的功耗则比较“稳定”。Camera Pipeline需要大量的buffer来存帧数据,比如raw图、YUV图、显示帧。这些buffer在DDR里进进出出,每读一次、写一次,都在耗电。

我个人的习惯是,在Memory功耗优化上,优先关注“带宽”而不是“容量”。很多时候,减少一次不必要的内存拷贝,比省掉几MB的buffer更有效。

2.7 场景化功耗分布:为什么不能只看单模块

上面我们拆了每个模块,但实际项目中,功耗是场景驱动的。同一个模块,在不同场景下,功耗占比可能完全不一样。

举个例子:

  • 普通预览:Sensor和ISP占大头,CPU几乎在睡觉。
  • HDR拍照:Sensor连续读出多帧,ISP做合成,CPU做后处理,三者同时高负载。
  • 4K录像:Sensor和ISP持续工作,但CPU反而轻松了,因为编码由硬件VPU负责。
  • 夜景模式:CPU和DSP开始发力,因为多帧降噪和AI增强算法都在这里跑。

所以,做功耗优化时,一定要先明确目标场景。你不能拿着预览的功耗数据,去优化录像的发热问题——那会南辕北辙。

2.8 本章小结

这一章我们把Camera的硬件功耗拆了个遍。Sensor和ISP是常驻的功耗大户,DSP和CPU是算法落地的关键选择,GPU和Memory则是容易被忽略的隐性消耗。

记住一句话:没有的功耗占比,只有场景下的最优平衡。