文章来源:https://blog.csdn.net/zhangbijun1230/article/details/80164486
一、Camera功耗分析和拆解
Q:如何判断camera功耗是否偏高?
A:camera功耗包含平台基础值、屏幕、模组、马达、feature、算法、camera app等部分,我们的camera在MTK原生的camera基础上做了硬件和软件的更改,硬件上手机厂商自己选材,如屏幕、camera模组等,软件上会添加新功能和算法(美颜,超像素等),功能增加会导致APP本身功耗和内存开销增加,每个部分都会有功耗的波动,整体数值加一起波动范围就会比较大。
总功耗=平台基础功耗+屏幕 +camera模组+马达+feature+算法+app
注:其他影响因素:整机系统功耗优化方案(如Lucid等);CPU和GPU频率是否限制;
1. 评判标准:
主要的评判标准是竞品机和用MTK原生值建立基准功耗;
1.1 竞品机:测试竞品在各个camera模式下的功耗值,对比差异;
1.2 基准功耗:即整理出平台基础值、硬件(屏幕、模组、马达)、软件(feature、算法、APP)功耗,进行累加,和测试的总功耗结果对比,找出功耗差异较大的项。
2. 功耗拆解:
2.1 简单的拆解和判断方法(测试完成):
测试排除功耗的差异主要集中在软件合入以及主要的耗电硬件,以下以XXX举例:
主要的功耗影响是屏幕和软件(APP、feature、算法);
软件功耗 = 正常模式预览模式下的总功耗 - 亮屏待机的功耗(包含平台功耗、屏幕功耗)
注:模组和马达功耗对整体的影响偏小,姑且先忽略
算法功耗 = 美颜预览总功耗(或者其他模式预览) - 正常模式预览功耗
注:以上的测试注意整机优化方案(lucid)的影响
根据以上公式 ,以XXX为例,
例子1:
XXX的数据如下:
在调整单反模式的VSDOF设置后,测试单反模式的数据如下:
XXX HiOS | |||
关闭AAL | 普通模式 | 单反模式 | 帧率 |
亮屏待机 | 322.17 | 相机:24 | |
预览 | 819.58 | 1204.91 |
软件功耗=正常模式预览模式下的总功耗 - 亮屏待机的功耗 = 819.58 – 322.17
算法功耗= 单反预览总功耗- 正常模式预览功耗 = 1204.9 –819.58
例子2:
如果在不同机器或者和原生版本对比时差异较大,如下所示,Hios版本和driver only版本的普通模式预览功耗差异较大,亮屏待机功耗相当,说明可能是feature合入导致功耗偏高了,就需要进一步的分析feature合入和硬件的功耗。
XXX HiOS | XXX_H571_driver only | 帧率 | |||
关闭AAL | 普通模式 | 单反模式 | 普通模式 | 单反模式 | |
亮屏待机 | 322.17 | 319.53 | 相机:24 | ||
单反预览 | 819.58 | 1204.91 | 755.09 | 1096.43 |
2.2 功耗硬件分解(研发完成):
通过上面的功耗分解大概的就能分解出功耗差异点,当与对比机对比的时候,在去除屏幕后的软件功耗(APP、feature、模组、马达)可能仍然比竞品机高,所以需要更进一步的分析模组和马达的功耗,
摄像头中有中三处工作电路:AF(马达)、AVDD、DVDD,硬件分解的时候一般会将算法和feature去除,而APP和平台基础功耗较小,得到如下:
Camera预览总功耗 = 屏幕 + AF(马达) + 模组(AVDD +DVDD)
注:马达在对焦的时候会不断的调整camera焦距,功耗波动较大,此处测试是在稳定的情况下的马达功耗
AF、AVDD 和 DVDD 两个电路的电流无法直接测试,需要在每个电路上单独进行飞线测试(预览功耗),然后和通过假电池对每个电路测试的结果(包含了AF和预览功耗)做差值;
版本:XXXd,VSDOF 开启 frontbinning,最大亮度,近景 | |||||||
关闭AAL | M1_AF | M1_AVDD | M1_DVDD | M2_AF | M2_AVDD | M2_DVDD | 帧率30fps |
home idle | 319.53 | 30 | |||||
原电压 | 2.807 | 2.797 | 1.1 | 2.807 | 2.796 | 0.997 | |
外灌电压 | 2.908 | 2.908 | 1.205 | 2.9 | 2.908 | 1.128 | |
原单反预览 | 1091.4 | 1095.99 | 1102.88 | 1068.73 | 1096.37 | 1078.15 | |
外灌单反预览 | 1075.25 | 1051.68 | 1075.29 | 1018.12 | 1054.35 | 1027.21 | |
差值 | 16.15 | 44.31 | 27.59 | 50.61 | 42.02 | 50.94 | 231.62 |
外灌电流 | 17 | 42 | 65 | 53 | 41 | 132 | |
Camera模组总耗流 | 164.86 | ||||||
马达耗流 | 66.76 |
版本:xxos,VSDOF 开启 frontbinning,最大亮度,近景 | |||||||
关闭AAL | M1_AF | M1_AVDD | M1_DVDD | M2_AF | M2_AVDD | M2_DVDD | 帧率30fps |
home idle | 322.17 | 30 | |||||
原电压 | 2.807 | 2.797 | 1.1 | 2.807 | 2.796 | 0.997 | |
外灌电压 | 2.918 | 2.918 | 1.233 | 2.918 | 2.918 | 1.124 | |
原单反预览 | 1211.33 | 1211.2 | 1214.16 | 1210.05 | 1217.53 | 1212.9 | |
外灌单反预览 | 1197.76 | 1172.47 | 1180.87 | 1155 | 1178.02 | 1156.15 | |
差值 | 13.57 | 38.73 | 33.29 | 55.05 | 39.51 | 56.75 | 236.9 |
外灌电流 | 18 | 41 | 89 | 51 | 41 | 140 | |
Camera模组总耗流 | 168.28 | ||||||
马达耗流 | 68.62 |
通过以上的分解,camera硬件相关的功耗都能弄清楚了,硬件的基础功耗确定后,再追层加上软件相关的功耗。
《Android Camera开发入门》、《Camx初认识》已经上架,可以点击了解 -> 小驰成长圈 |期待见证彼此的成长
觉得不错,点个赞呗