最近在ST公司的STxp70的dsp平台上开发音频codec模块.

公司最近和ST公司有个DAB的项目, 需要将AACplus,BSAC,MPEG-lay2以及lay3的算法在该dsp平台上

进行优化.这个dsp平台比较的奇怪和TI的以及arm的core不太一样,它有一个基本core以及基本指令集,它的

扩展的一些数学指令集是通过增加一些extension库来实现的.不过优化后的效率还是比较令人满意的.

用的时候感觉同neon指令集似曾相识,

其实是不一样的, st的这个dsp对于SIMD方面的支持较少, 主要是对于数据精度上可以给用户以很大的支持.

有浮点寄存器组以及相应的指令集和宽度达到为64位的寄存器组以及相应的指令集.我想这些在一些对于音频效果

要求较高的场合可能有用处吧.

在开发的过程中碰到一些问题,但是都不是技术上的,发现老外的效率并不如想象中的那么高,常常一个问题的

提出到收到他们的回复,一个多星期都已经过去了. 因为这个浪费了我不少的时间.本来三个codec一共可能只要

两个月时间都可以搞定的,但是前期他们给的支持太少,文档又没有给全,导致优化完后,他们又发来一些新的

指令集的文档,又要使用新指令集重新进行优化.

其中MP1x标志是对于多媒体处理方面指令集的扩展;fpx标志是浮点指令扩展标志.

ST的该款dsp的v3版本支持program cache,data cache没有. internal program memory只有64kb,

internal data memory有160kb. 它的外部memory有高达26个cycle的延迟, 而经过测试它的p-cache

效果并不是非常理想. 不过该dsp的开发环境workbench中通过使用IPA标志可以较大的对code size进行压缩,

效果还是比较的理想. 并且提供对代码进行性能测试的工具与函数. 不过它的profiler工具总是无法在我自己的

机子上工作, 真是很郁闷.

 

感觉自己目前对于音频codec在应用方面的能力已经没有什么问题了,目前自己具备的经验包括:

1)浮点算法阶段需要的进行算法级优化的能力: FFT的优化(实序列方面), mdct方面的优化.

2)TI公司系列的汇编指令64系列,54以及55系列.

ARM公司v4,v5,v6,以及neon指令系列

以及最近搞的st公司的dsp汇编指令.

目前感觉新拿到一个core的manual可以保证在一个星期内熟悉指令集并进行开工优化.

其实个人感觉只要你懂了TI公司的C64的汇编优化方法,其他大部分的core的优化都应该问题不大.

因为他们的优化难度都不如TI的c64, 这是我的体会.

3)掌握了将算法从浮点转换到定点.

 

以下是以后要做的:

以后可能要多看看数字信号处理方面的书籍,如oppenham的书.

掌握基音搜索算法在speech领域.

掌握huffman编码方面的知识.

多多使用matlab进行算法方面的仿真来加深自己对知识的理解.

 

 

posted on 2010-07-29 12:30  hello dsp  阅读(678)  评论(0编辑  收藏  举报

导航