对于智能手机/手表等设备来说,续航能力/功耗是其重要的指标之一。要想有好的续航能力,一定要把主要应用场景下的功耗优化好。音乐播放就是主要的应用场景之一。本文就讲讲我开发的一款智能手表上音乐播放场景下是怎么做功耗优化的。
功耗优化一定程度上与硬件相关,因此先给出这款智能手表跟音乐播放相关的硬件框图,如图1。
图 1
这款智能手表的SoC为了降成本,把codec芯片和蓝牙芯片都集成到一起,即codec芯片和蓝牙芯片内置了。从上图看出,音乐播放涉及到3个core,分别是AP、ADSP和BTDM(BT Dual Mode,双模BT芯片),各个core之间通过IPC通信。AP上就是播放音乐的应用程序以及audio HAL等,来控制音乐的播放。ADSP上主要做音乐码流的解码以及音效等。ADSP以及内置的codec和SRAM组成了audio子系统。由于是手表,没有有线耳机,使用codec时声音只从扬声器出。当播放蓝牙音乐时就会涉及到BTDM,把SBC码流通过空口发给蓝牙耳机播放出来。
智能手表上音乐播放又分两种场景,一种是声音从扬声器出,一种是声音从蓝牙耳机出。不同场景下的data path是不一样的,功耗的优化方法也会有所差异。先给出这两种场景优化前的data path。
图2是声音从扬声器出的data path。
</