您当前的位置:五五电子网电子知识单片机-工控设备DSP/FPGA技术应用TMS320C6201实现多路ITU-TG728语音编码标准 正文
应用TMS320C6201实现多路ITU-TG728语音编码标准

应用TMS320C6201实现多路ITU-TG728语音编码标准

点击数:7382 次   录入时间:03-04 11:57:07   整理:http://www.55dianzi.com   DSP/FPGA技术

    在TMS320C6201优化G.728代码过程中,主要应用了以下技巧:

    (1)资源分配的技巧

    C6201的8个功能单元能并行处理,因此在一个算法中用得最多的那个运算单元会构成瓶颈。最常发生的是内存访问瓶颈,循环展开是有效的解决方法。充分利用数据宽度,将半字(16bit)访问改用字(32bit)访问就是简单而又有效的循环展开技术。

    循环展开是提高资源利用率的主要方法,但它所引起的代码空间膨胀也是惊人的。在编程时,必须在程序空间和程序速度这一对矛盾中作出合适的折衷。

    (2) 数据关联性简化的技巧

    数据关联性是并行编程中的最大障碍,有两种典型情况:

    ① 存在循环反馈路径

    此种路径常见于递归算法中。当下一次的循环中必须读取上一次循环中产生的数据,就形成了一条循环反馈路径。由于反馈路径不可能消除,唯一的方法是尽量缩短它,减少不可并行的操作。

    ② 生存期过长

    当变量生存期过长时,软件流水化会导致误操作。有两种解决方法:一是循环展开,因为循环展开会增加循环核心周期数;二是用MV指令增加一个中间变量,使原变量的生存期由两个变量共同承担。

    (3) 解决存储空间冲突的技巧

    此冲突是引起C6201执行速度急剧下降的主要原因,但在编程时却很容易被忽略。前面介绍的C6201的存储区结构,64Kbyte的片内数据空间分成四块,每一块在每个周期只能被访问一次,否则就会产生存储空间冲突。执行时,流水线会自动暂停一个周期。

    在调试、优化程序的过程中,随时观察有无流水线冲突,通过调整存储空间分配,可基本解决这一问题。

    3.4 实验结果

    表1给出了G.728编解码算法实时实现时所需的计算量和内存占用状况。在200MHz主频下,TMS320C6201芯片处理能力为200MCPS(Million Cycle per Second ,在最充分发挥并行潜力时,可达到1600MCPS(200×8=1600)。由表中可见,G.728算法实现编码需24.4MCPS,解码需14.3MCPS,程序空间和数据空间分别占用55.8Kbyte和11.4Kbyte,故单片C6201可实现四路G.728语音编解码。

    对编解码器还进行了实时处理语音性能的实验。以男生、女生、音乐等多种音源输入的实验表明,系统具有良好的适应性。非正式试听测试,恢复语音保留了较好的讲话人特征,具有较高的自然度和可懂度。

    ITU-T G.728标准在较低码率下实现了低延时、高质量的语音编解码,在公众通信网中有着广泛的应用。本文在新型TMS320C6201定点DSP芯片上设计了基于G.728的实时语音编解码系统。由于充分发挥了C6201强大的运算能力和系统接口能力,系统构造简单,运行效率高,单片C6201至少能实现四路G.728语音编解码。



上一页  [1] [2] 


本文关键字:语音  DSP/FPGA技术单片机-工控设备 - DSP/FPGA技术

《应用TMS320C6201实现多路ITU-TG728语音编码标准》相关文章>>>