首页> 中国专利> 一种在DSP上实现先进音频编码算法的内存优化方法

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

摘要

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

著录项

  • 公开/公告号CN101968771A

    专利类型发明专利

  • 公开/公告日2011-02-09

    原文格式PDF

  • 申请/专利权人 北京航空航天大学;

    申请/专利号CN201010285731.7

  • 发明设计人 毛峡;李硕;

    申请日2010-09-16

  • 分类号G06F12/02;G10L19/00;

  • 代理机构

  • 代理人

  • 地址 100191 北京市海淀区学院路37号

  • 入库时间 2023-12-18 01:48:00

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2013-11-06

    未缴年费专利权终止 IPC(主分类):G06F12/02 授权公告日:20120523 终止日期:20120916 申请日:20100916

    专利权的终止

  • 2012-05-23

    授权

    授权

  • 2011-03-23

    实质审查的生效 IPC(主分类):G06F12/02 申请日:20100916

    实质审查的生效

  • 2011-02-09

    公开

    公开

说明书

技术领域

本发明涉及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:编码程序的栈底位置。 

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号