EDN China > 设计实例 > 消费电子设计 > 音频处理 > 正文
? 2016博客大赛-不限主题,寻找电子导师,大奖升级??

语音编解码算法G.723.1在DSP上的优化

哈尔滨工业大学 王伟 黄俊恒?? 2010年06月10日 ?? 收藏0

?  (1)编写连接命令文件.cmd

  明确了系统的程序和数据映射地址后,编写连接器命令文件将部分调用次数较多的函数、堆栈段、数据段放入内存:cmd文件内容如下:

  一 L\evmdm642_echocfg.cmd //连接CCS提供的连接命令文件

  SECTIONS

  {

  .tahles>SDRAM

  .cinit>ISRAM?? //将变量初值表放入内存

  . far >SDRAM

  .const>ISRAM //将常数段放入内存

  .pinit>SDRAM

  . tin >SDRAM

  .text>SDRAM

  .test >ISRAM

  }

  一 levmdm642bsl.lib //连接库文件

  一levmdm642_edma_aic23.164??? //连接驱动程序的库文件

  一lc6xlx_edma_mcasp.J64?? //连接串口McASP的库文件

  其中.test是笔者在C程序内用#pragma CODE_SECTION或DATA_SECTION自定义的段。

  (2)高速缓冲寄存器 Cache的使用

  Cache即高速缓存,是位于CPU和片内存储器之间的规模小速度快的存储器。Cache的工作原理是保存CPU中最常用的数据。当Cache中保存着CPU要读写的数据时,CPU直接访问Cache。由于Cache的速度与CPU相当,CPU能在零等待状态下迅速地实现数据存取。只有在Cache中不舍有CPU所需的数据时CPU才去访问片内存储器。因此Cache的有效利用对整个程序速度的提高有着举足轻重的作用。在主函数中加入以下代码,使Cache使能:

  CACHE_clean? (CACHE_L2ALL,0,0};? //清除Cache内原有内容

  CACHE_setL2Mode? (CACHE_64KCACHE);? //设置Cache的大小为64K

  CACHE_enableCaching? (CACHE_EMIFA_CE00);? //Cache使能

  添加以上代玛后,测试速度由原来的20帧/s提高到了400帧/s。提高了将近20倍。

  5 结束语

  本文详缁分绍了G.723.1标准的DSP代码优化工作,重点描述了代码优化的方法和本课题的创新点.对于算法中的一些函数提出了独创性改写方法。基于线性汇编的优化以及Cache的有效利用使本课题的工作取得了显著成果,在没有降低音质的情况下,实现了DSP的语音实时编解码。

  本文作者创新点:在对G.723.1的优化中,针对TMS320DM 642 DSP系列芯片提出了一些有价值的新方法。例如:编写连接命令文件.cmd和高速缓冲寄存器Cache的使用。这些创新点在不同程度上提高了代码的优化速度和执行效率,在语音编解码的DSP实时实现中起到了关键性作用。


上一页123下一页
?? ?? ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
?? ??

语音? 编解码? DSP?

相关文章

我来评论
美国的游客
美国的游客 ??? (您将以游客身份发表,请登录 | 注册)
?
有问题请反馈