一种用于aac音频编码的dvfs方法

文档序号:2827258阅读:377来源:国知局
一种用于aac音频编码的dvfs方法
【专利摘要】本发明公开了一种用于AAC音频编码的DVFS方法,适用于具有CPU调频调压机制的嵌入式设备,包括如下步骤:(一)读取音频流及编码规格信息;(二)分阶段数据编码;(三)调频调压机制实现。本发明通过获取音频流信息中的采样率、采样大小、声道数以及采用的AAC编码规格确定AAC编码的整体复杂度,同时利用AAC编码的负载变化特性,在编码过程中根据CPU实时负载动态调节CPU频率和电压。从而达到降低功耗的目的。
【专利说明】—种用于AAC音频编码的DVFS方法
【技术领域】
[0001]本发明涉及嵌入式系统下AAC音频编码技术,具体涉及一种用于AAC音频编码的DVFS方法。
【背景技术】
[0002]嵌入式设备,尤其是电池供电的设备,对功耗问题十分敏感。在嵌入式CPU快速发展的今天,越来越强的CPU性能也带来了功耗问题。在嵌入式SOC功耗中,CPU的功耗占据了较大比例,较高的CPU功耗不仅使得嵌入式设备的待机时间下降,更为严重的是,电路中较大的电流使得CPU的稳定性和寿命降低。因此,新一代的高性能SOC芯片,很多都具有动态调节CPU频率和电压的功能。根据CPU功耗计算公式E=CV2fT,在满足性能要求的前提下,动态调节CPU的频率和电压(Dynamic voltage and frequency scaling)成为了降低CPU功耗的一种有效手段。
[0003]AAC编码(Advanced Audio Coding)是一种专为声音数据设计的文件压缩格式,与Mp3不同,它采用了全新的算法进行编码,更加高效,具有更高的“性价比”。AAC可以支持多达48个音轨,15个低频(LFE)音轨,5.1多声道支持,更高的采样率(最高可达96kHz,音频CD为44.1kHz)和更高的采样精度(支持8bit、16bit、24bit、32bit,音频CD为16bit)以及有多种语言的兼容能力,更高的解码效率,一般来说,AAC可以在对比MP3文件缩小30%的前提下提供更好的音质。
[0004]传统的Linux操作系统已经有DVFS的策略模型,但是这些策略仅仅是从CPU的占用率出发,根据CPU占用率设置多个调频阈值和调频间隔,每隔一段时间,查看CPU的占用率,根据是否到达阈值决定进行是否进行升频或降频操作。这种的DVFS策略的调频调压精度和速度不高,没有从应用的角度考虑,对于特定的AAC编码应用来说过于粗犷,不能够达到准确,快速调频调压的目的,因此,需要针对AAC音频编码的特点,定制一套适用的DVFS方法,以进一步降低CPU功耗。

【发明内容】

[0005]发明目的:为有效降低在嵌入式平台下,CPU在运行AAC编码应用时的功耗,本发明提供一种用于AAC音频编码的DVFS方法。
[0006]技术方案:为了实现上述目的,本发明采用的技术方案为:
[0007]一种用于AAC音频编码的DVFS方法,包括如下步骤:
[0008](一)读取音频流及编码规格信息;
[0009](二)分阶段数据编码;
[0010](三)调频调压机制实现。
[0011]所述步骤(一)读取音频流及编码规格信息包括:获取音频流的采样频率rate、采样位数bits、声道数channels,确定AAC编码器的编码规格,目前,AAC编码器主要使用LC(Low Complexity)和Main两种编码规格。[0012]所述步骤(二)分阶段数据编码包括窗口选择之前和窗口选择之后两个阶段:所述窗口选择之前阶段根据获取的音频流信息和编码规格预测所需要的CPU频率以及对应电压;所述窗口选择之后阶段根据获取的音频流信息、编码规格和窗口类型预测所需要的CPU频率以及对应电压。
[0013]在确定采用的编码规格之后,编码复杂度与数据量大小成正比,窗口选择之前阶段所需要的CPU频率Freq与采样频率rate、采样位数bits、声道数channels成正比,将编码规格作为影响因子X,即窗口选择之前阶段所需要的CPU频率Freq=XXrate XbitsX channels ;窗口选择之后阶段所需要的CPU频率Freq与采样频率rate、采样位数bits、声道数channels成正比,采用的编码规格做为影响因子Y、窗口类型作为影响因子W,即窗口选择之后阶段所需要的频率Freq=XXWXrateXbitsXchannels。
[0014]窗口选择之后阶段中窗口类型包括长窗和短窗,AAC编码器在编码过程中会对输入音频的波动性进行分析,对于稳态信号,使用长窗进行编码,以获取更高的压缩比,对于暂态信号,使用短窗进行编码,以去除回声效应,在使用长窗进行编码的时候,CPU的负载更高,所需频率更大。
[0015]获得CPU频率Freq之后,通过查询CPU的频率-电压对应表可以获得CPU运行在该频率下所需要的CPU电压V。
[0016]所述步骤(三)通过应用层、驱动层和硬件层实现;应用层运行AAC编码应用,在DVFS决策点预测下一阶段频率,通过驱动层操作硬件层进行调频调压。
[0017]应用层将每一帧编码过程的开始和进行窗口选择作为每一帧编码DVFS的决策点,在每一个DVFS决策点使用分阶段数据编码计算得到的下一阶段所需要的CPU频率,并且将所需频率通过ioctl函数传递给驱动层;驱动层为硬件层驱动,负责对硬件层的访问和控制,并且向应用层提供调频调压的接口函数;硬件层负责调频调压的实现。
[0018]所述硬件层包括一个电源管理芯片(PMIC),通过电源管理芯片(PMIC)可以迅速调节CPU的频率和电压。
[0019]有益效果:本发明从应用角度出发,在进行频率选择时考虑音频流信息中的采样率、采样大小、声道数流信息、编码规格、窗口类型等影响因素确定AAC编码的整体复杂度,是针对特定AAC音频编码应用提出的细粒度DVFS方案,同时利用AAC编码的负载变化特性,在每一帧的编码过程中,在一帧编码的开始和窗口选择之后,设置两个DVFS决策点,分阶段预测负载,在编码过程中根据CPU实时负载动态调节CPU频率和电压,能够显著降低CPU在运行AAC编码应用时的功耗。
[0020]与传统的根据CPU占用率进行DVFS的方法相比,本方法具有如下优势:
[0021]1、调频调压更为及时,传统DVFS方法在检测到CPU占用率超过或低于阈值时进行调频,而检测CPU占用率的时间间隔一般为20ms?50ms,而对于采样率为44kHz的音频数据,一帧数据的编码时间为22ms,因此该DVFS方法在用于AAC音频编码时,无法做到帧内和帧间的及时调频调压,而本发明在一帧的开始和窗口选择之后,分别设置两个DVFS决策点,从而达到及时调频调压的目的。
[0022]2、调频调压更为准确,传统的DVFS方法根据CPU占用率来确定使用频率,但AAC编码不仅有CPU的运算负载,也有大量的数据访存操作,因此仅以某一时刻的CPU占用率来确定所使用的CPU频率不够准确,而本发明提出的DVFS方法充分考虑了影响AAC编码负载的多种因素,且在帧间和帧内均设置了一个DVFS决策点,使得调频调压更为准确。
[0023]综上所述,对于AAC编码应用,与传统的DVFS方案相比,本发明所提出的DVFS方案调频调压更加及时和准确。采用本发明提供的DVFS方法可以将AAC编码的CPU功耗降低 10% ?15%。
【专利附图】

【附图说明】
[0024]图1为AAC编码流程图;
[0025]图2为调频调压机制实现的系统软硬件结构示意图;
[0026]图3为频率-电压对应表,本图以ARM9为例;
[0027]图4为频率选择方式;
[0028]图5为AAC编码的DVFS方法实现流程图。
【具体实施方式】
[0029]下面结合附图进一步解释本发明。
[0030]用于AAC编码的DVFS方法,其实现过程主要包括:读取音频流及编码规格信息、分阶段数据编码、调频调压机制实现。
[0031]读取音频流及编码规格信息:在进行数据编码编码之前,AAC编码器获取原始WAV或PCM音频流的信息,信息包括:采样频率rate、采样位数bits、声道数channels ;并确定采用何种编码规格(profile),目前,AAC编码器主要使用LC (Low Complexity)和Main两种编码规格。
[0032]分阶段数据编码:如图1所示的AAC编码的主要流程,包括:读取音频流信息、确定编码参数、分配缓冲区、心理模型预测、窗口类型选择、MDCT变换、瞬时噪声整形、量化、编码。AAC编码分为两个阶段,其中,窗口类型选择之前为第一阶段,在确定采用的编码规格之后,编码复杂度与数据量大小成正比,因此该阶段所需要的CPU频率与采样频率、采样位数、声道数成正比,将编码规格作为影响因子X,那么第一阶段所需要的CPU频率Freq=XXrateXbitsX channels ;窗口类型选择之后为第二阶段,AAC编码器在编码过程中会对输入音频的波动性进行分析,对于稳态信号,使用长窗进行编码,以获取更高的压缩t匕,对于暂态信号,使用短窗进行编码,以去除回声效应,在使用长窗进行编码的时候,CPU的负载更高,所需频率更大,因此将编码规格做为影响因子Y,窗口类型作为影响因子W,第二阶段所需要的频率 Freq=XXWXrateXbitsX channels。
[0033]通过上述分阶段数据编码获得下一阶段所需要的CPU频率,这个频率被称为理想频率,通常情况下,这个理想频率不是图3所示的频率-电压对应表中支持的CPU频率,CPU可以工作在多个频率下,不同的频率对于最小供电电压的要求也不同,一般来说,CPU频率越大,所需要的供电电压也越大。
[0034]调频调压机制实现部分:如图2所示,通过应用层、驱动层、硬件层的配合实现调频调压机制。其中应用层运行AAC编码应用,并且在每一帧的开始和窗口类型选择处设置两个DVFS决策点;驱动层向上为应用层提供调频调压的接口函数,向下访问和控制硬件层;硬件层一般为一个电源管理芯片(PMIC),通过电源管理芯片(PMIC)可以迅速调节CPU的频率和电压。[0035]应用层将每一帧编码过程的开始和进行窗口选择作为每一帧编码DVFS的决策点,在每一个DVFS决策点使用分阶段数据编码计算得到的下一阶段所需要的CPU频率,此时计算所得的频率为理想频率Freqideal,其通常介于表中对应的上一个频率Freqhigh和下一个频率Freqlw之间,本发明提出的方法是让CPU先运行在Freqhigh,到达Switch point之后,CPU运行在Freqlmt,直到当前阶段的任务结束,具体实现过程如图4所示,CPU运行当前任务的总时间是T,在到达Switch point之前的时间是Tl, Switch point之后直到任务结束的时间是T2,贝U通过以下方程式可以确定Switch point:Freqideal X T=FreqhighX Tl+Freq1otXT2,T=T1+T2。通过图4所示的频率选择方法在图3所示的频率-电压对应表中选择对应频率,并且将所需频率通过ioctl函数传递给驱动层。驱动层为电源管理芯片(PMIC)驱动,负责对电源管理芯片(PMIC)的访问和控制,并且向应用层提供调频调压的接口函数,具体的调频调压操作由电源管理芯片(PMIC)芯片完成。
[0036]本发明完整的实现流程如图5所示:首先,在进行编码之前,获取音频流信息(采样频率、采样位数,声道数)和编码规格信息(LC或Main);在每一帧编码的开始设置一个决策点,根据获取的音频流信息和编码规格信息确定AAC编码第一阶段所需要的CPU频率,并按照图4所示的频率选择方式进行频率选择;在窗口类型选择之后,AAC编码进入第二阶段,此阶段根据获取的音频流信息、编码规格信息和窗口类型信息确定所需要的CPU频率,并按照图4所示的频率选择方式进行频率选择;AAC编码第二阶段结束之后,一帧的编码过程结束,AAC编码器读取下一帧,并重复上述过程。
[0037]以上所述仅是本发明的优选实施方式,应当指出:对于本【技术领域】的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
【权利要求】
1.一种用于AAC音频编码的DVFS方法,其特征在于,包括如下步骤: (一)读取音频流信息及编码规格信息; (二)分阶段数据编码; (三)调频调压机制实现。
2.根据权利要求1所述的用于AAC音频编码的DVFS方法,其特征在于,所述步骤(一)读取音频流的信息为获取音频流的采样频率rate、采样位数bits和声道数channels,所述编码规格的信息为AAC编码器的编码规格。
3.根据权利要求2所述的用于AAC音频编码的DVFS方法,其特征在于:所述AAC编码器的编码规格包括LC和Main。
4.根据权利要求1所述的用于AAC音频编码的DVFS方法,其特征在于:所述步骤(二)分阶段数据编码包括窗口选择之前和窗口选择之后两个阶段:所述窗口选择之前阶段根据获取的音频流信息和编码规格预测所需要的CPU频率以及对应电压;所述窗口选择之后阶段根据获取的音频流信息、编码规格和窗口类型预测所需要的CPU频率以及对应电压。
5.根据权利要求4所述的用于AAC音频编码的DVFS方法,其特征在于:所述窗口选择之前阶段所需要的CPU频率Freq与采样频率rate、采样位数bits、声道数channels成正比,采用的编码规格作为影响因子X,即窗口选择之前阶段所需要的CPU频率Freq=XXrate Xbits X channels ;窗口选择之后阶段所需要的CPU频率Freq,采用的编码规格作为影响因子Y、窗口类型作为影响因子W,即窗口选择之后阶段所需要的频率Freq=X XWX rate XbitsX channe I s。
6.根据权利要求5所述的用于AAC音频编码的DVFS方法,其特征在于:所述窗口选择之后阶段中窗口类型包括长窗和短窗,AAC编码器在编码过程中会对输入音频的波动性进行分析,对于稳态信号,使用长窗进行编码;对于暂态信号,使用短窗进行编码。
7.根据权利要求5所述的用于AAC音频编码的DVFS方法,其特征在于:获得CPU频率Freq之后,通过查询CPU的频率-电压对应表获得CPU运行在该频率下所需要的CPU电压V。
8.根据权利要求1所述的用于AAC音频编码的DVFS方法,其特征在于:所述步骤(三)通过应用层、驱动层和硬件层实现;应用层运行AAC编码应用,在DVFS决策点预测下一阶段频率,通过驱动层操作硬件层进行调频调压。
9.根据权利要求8所述的的用于AAC音频编码的DVFS方法,其特征在于:所述应用层将每一帧编码过程的开始和进行窗口选择作为每一帧编码DVFS的决策点,在每一个DVFS决策点使用分阶段数据编码计算得到的下一阶段所需要的CPU频率,并且将所需频率通过ioctl函数传递给驱动层;驱动层为硬件层驱动,负责对硬件层的访问和控制,并且向应用层提供调频调压的接口函数;硬件层负责调频调压的实现。
10.根据权利要求8或9所述的的用于AAC音频编码的DVFS方法,其特征在于:所述硬件层包括一个用于调节CPU的频率和电压电源的管理芯片。
【文档编号】G10L19/03GK103794218SQ201410039578
【公开日】2014年5月14日 申请日期:2014年1月27日 优先权日:2014年1月27日
【发明者】黄少珉, 周杰, 戚隆宁, 林潇航, 左红明, 王功 申请人:东南大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1