• 最近在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进行算法方面的仿真来加深自己对知识的理解.

  • 相关阅读:
    在未排序的数组中找到第 k 个最大的元素
    区域和检索
    控制台画图程序(可更换笔刷版本)
    循环中的scanf处理了换行符怎么破
    strlen获取字符数组为什么是255
    宽字符输出中文,Devc++解决方法
    区间取最小值最大值-位值和
    模拟鼠标键盘-封装函数
    scanf("%d",a[i]+j)为什么不加取地址符号
    scanf需要多输入一行是什么问题
  • 原文地址:https://www.cnblogs.com/wzgpeter/p/1787772.html
Copyright © 2020-2023  润新知