一种在DSP上实现先进音频编码算法的内存优化方法技术

技术编号:4099972 阅读:263 留言:0更新日期:2012-04-11 18:40
本发明专利技术提出一种在DSP上实现先进音频编码算法的内存优化方法。包括使用直接内存访问机制实现数据及码流搬运;对编码过程中频繁编码结构体进行外部静态内存分配,并在编码函数中使用指针的形式调用该结构体以减少内存碎片的产生;在栈的内存分配过程中,先确定栈的使用深度,以此作为在DSP配置文件中给栈分配内存大小的依据。本发明专利技术不但节约了DSP系统内存的使用,而且提高了数据传输以及内存使用效率,使得先进音频编码算法在DSP有限的系统资源条件下得以实现。

【技术实现步骤摘要】

本专利技术涉及DSP音频编码领域,特别是涉及一种在DSP上实现先进音频编码算法 的内存优化方法。
技术介绍
先进音频编码算法(Advanced Audio Coding),简称为AAC,是ISO MPEG组织在 MPEG-2基础上发展起来的一种新一代感知音频压缩编码技术,该技术综合了多种主流音频 编码技术的优点,具有信号压缩比高,重建音质好,编码过程高度模块化和声道配置灵活等 特点。但在DSP实时音频编码应用领域,AAC始终没有取得领先地位,究其原因,一方面是 由于AAC编码算法本身的高复杂度,一方面是由于DSP系统资源有限导致AAC编码算法在 该系统上的实现存在困难。当前的优化方法主要是对AAC快速编码算法的研究,这些优化算法降低了 AAC编 码本身的复杂度,但并没有解决在DSP有限资源条件下充分实现AAC编码算法的问题。
技术实现思路
为了克服AAC编码算法在DSP系统上实现困难的缺点,本专利技术提出一种在DSP上 实现AAC音频编码的内存优化方法,使得AAC编码算法在DSP有限的系统资源条件下得以 实现。为了达到以上目的,本专利技术采用如下技术方案步骤一使用直接内存访问机制实现采样音频数据到AAC编码器的搬运,包括将 PCM音频码流以每帧1024个采样点的形式传输到DSP中进行AAC编码;步骤二对编码结构体进行外部静态内存分配,在编码函数中使用指针的形式调 用该结构体,编码结构体中应包含用户配置信息、心理声学模型配置信息、滤波器系数、窗 函数信息、频谱系数、量化模块信息。步骤三由于AAC编码过程中栈的大小相对于堆是相对可控的,于是在栈的内存 分配过程中,首先通过仿真测试的方法精确测量栈的使用深度,然后设定栈的大小以节约 内存资源,栈的计算式(1)所示Stack = addr (Stack_end)-min (Sp)(1)其中addr(StaCk_end)指测试得出的栈底地址,min (Sp)指指针的最小值即栈顶 地址。步骤四编码完成后,使用直接内存访问机制实现编码数据到下级设备的搬运,即 将AAC码流以帧的形式传输到下级设备中,帧的大小由下级设备与编码器约定。本专利技术的优点以及积极效果在于该内存优化方法减少了 DSP系统内存碎片的产 生概率,对栈的合理分配节约了内存的使用量,并提高了数据传输以及内存访问的效率,使 得AAC编码算法在DSP有限的系统资源条件下得以实现。附图说明图1是本专利技术中的AAC编码内存优化流程图;图2是本专利技术中的DSP与外围设备通信原理图;图3是本专利技术中的编码程序栈深度测试原理具体实施例方式本专利技术是一种在DSP上实现AAC音频编码的内存优化方法,为使本专利技术的目的、技 术方案和优点更加清楚,以下结合具体实例以及附图,对本专利技术的技术方案做进一步说明。 主要内容如下本专利技术流程如图1所示,以下分别就图1中101-104分四个步骤详细说明。步骤一如图2中201所示,将DSP(本例中为TI系列的C6727系列DSP)的EMIF 总线与外围设备(本例中为FPGA)相连,由外围设备控制音频PCM码流以1024个采样数据 为一帧的形式传输到DSP中,此过程中,使用DSP的直接内存访问机制以实现数据的高效传输。步骤二 如图1中的102所示,对于AAC编码中频繁使用的数据结构使用静态内存 分配代替动态内存分配。具体方法是对编码结构体进行外部静态内存分配,并在编码函数中使用指针的形 式调用该结构体,编码结构体中包含用户配置信息、心理声学模型配置信息、滤波器系数、 窗函数信息、频谱系数、量化模块信息。步骤三如图1中的103所示,在栈的内存分配过程中,首先通过仿真测试的方 法精确测量栈的使用深度,然后设定栈的大小以节约内存资源。本例中使用CCS(C6727 系列DSP开发平台)提供的HWI (硬件中断)对象的monitor,将其属性域配置为stack pointer (堆栈指针)来追踪系统的堆栈指针,monitor的统计模块可以精确的得出硬件中 断发生时指针指向的堆栈位置。如图3所示,栈的计算公式如下所示Stack = addr (Stack_end)-min (Sp)(1)其中addr(StaCk_end)指测试得出的栈底地址,min (Sp)指指针的最小值即栈顶 地址。步骤三编码完成后,如图2中202所示,使用直接内存访问机制实现编码数据到 下级设备的搬运,即将AAC码流以帧的形式传输到下级设备中,帧的大小由下级设备与编 码器约定以适应不同传输码率需要。说明书附图中出现的英文缩写,其含义如下DMA:直接内存访问EMIF =DSP配备的外部存储器接口 ;PCM:脉冲编码调制。Stack_end:编码程序的栈底位置。本文档来自技高网...

【技术保护点】
一种在DSP上实现先进音频编码算法的内存优化方法,其主要特征为:步骤一:使用直接内存访问机制实现音频数据到编码DSP的搬运;步骤二:对编码结构体进行外部静态内存分配,并在编码函数中使用指针的形式调用该结构体,该结构体包含用户配置信息、心理声学模型配置信息、滤波器系数、窗函数信息、频谱系数、量化模块信息;步骤三:在AAC编码程序栈的内存分配过程中,首先通过仿真测试的方法由式(1)得出栈的使用深度,然后设定栈的大小以节约内存资源;Stack=addr(Stack_end)-min(Sp) (1)步骤四:编码完成后,使用直接内存访问机制实现编码数据到下级设备的搬运。

【技术特征摘要】
一种在DSP上实现先进音频编码算法的内存优化方法,其主要特征为步骤一使用直接内存访问机制实现音频数据到编码DSP的搬运;步骤二对编码结构体进行外部静态内存分配,并在编码函数中使用指针的形式调用该结构体,该结构体包含用户配置信息、心理声学模型配置信息、滤波器系数、窗函数信息、频谱系数、量化模块信息;步骤三在AAC编码程序栈的内存分配过程中,首先通过仿真测试的方法由式(1)得出栈的使用深度,然后设定栈的大小以节约内存资源;Stack=addr(Stack_end) min(Sp)(1)步骤四编码完成后,使用直接内存访问机制实现编码数据到下级设备的搬运。2...

【专利技术属性】
技术研发人员:毛峡李硕
申请(专利权)人:北京航空航天大学
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利