G.729语音编码算法在TriMedia TM1300 DSP上的实现

摘要:介绍了ITU语音编码算法G.729的原理和TM1300 DSP处理器的特性,描述了G.729算法在TM1300上的优化、实现。

    摘要:介绍了ITU语音编码算法G.729的原理和TM1300 DSP处理器的特性,描述了G.729算法在TM1300上的优化、实现。

    关键词:G.729, CS-ACELP,TM1300,VLIW,并行。

    一、G.729编码器介绍

    G.729是国际电信联盟(ITU,International Telecommunication Union)于1996年推出的采用共轭结构-代数码激励线性预测(CS-ACELP, Conjugate-Structure Algebraic-Code- Excited Linear-Predication)技术的具有8kbit/s码率的语音编码算法建议,该算法是以语音编码方案中的码激励线性预测(CELP,Code Excited Linear Predication)技术为基础提出的,其原理如图1所示。

    G.729是一种单声道语音信号的压缩编码算法,模拟信号经过话带滤波器后,按8KHz的频率采样并转换成16bit的线性PCM信号(即128kbit/s的码流),这就是图中所示的G.729编码器的输入语音信号。G.729编码器以10ms的输入帧(80个采样点)为单位进行编码。G.729编码器的输出为8kbit/s的码流,因此其压缩比高达16:1。而经G.729解码器还原后的声音质量却达到了相当高的水准,其主观平均得分(MOS,Mean Opinion Score)在4分以上(MOS最高得分为5分),属于良好级别,人的耳朵几乎察觉不到声音有失真的情况,音质与码率为64kbit/s的G.711编码标准相近,而占用的带宽仅为G.711的1/8。另外G.729编码算法的延时较小,在15ms左右。

    虽然G.729具有较低的码率、较高的还原音质和较小的延时等优点,但是由于其存在算法复杂度大和数据存储量大的固有缺陷,在早期并没有得到广泛的实际应用。后来随着超大规模集成电路VSLI工艺的进步,极大地推动数字信号处理器(DSP)技术的发展,各大厂商纷纷推出了各具特色的高性能DSP,也大大降低了实现G.729语音编码算法的成本。目前,G.729已经广泛应用于诸如IP电话、会议电视、数字音视频监控等领域。 
 
    二、Trimedia TM1300处理器

    TM1300处理器是Philips公司推出的一款32位性能优良的多媒体处理芯片,特别针对数字视频和音频应用进行了优化,集成了视频输入/输出接口、音频输入/输出接口、IIC接口、PCI接口、SDRAM控制器等外围设备接口,极大地简化了外围电路的设计,提高了系统的稳定性、可靠性,降低了系统的总体成本。因此TM1300处理器在音视频处理卡、多媒体嵌入式设备中得到了广泛的应用。

    TM1300处理器超强的的多媒体处理性能得益于其核心CPU、多媒体操作指令集和存储器体系结构的设计。TM1300的核心是32位的超长指令字结构(VLIW,Very-Long Instruction Word)的处理器,内部有11种共27个执行单元,在每一个时钟周期内最多可以同时安排5个执行单元进行5个操作,如图2所示。



G.729语音编码算法在TriMedia TM1300 DSP上的实现
图2 TM1300的指令 


    TM1300有一整套专门针对多媒体运算的DSP操作指令,每一个操作可以执行多个算术运算,比如操作UIFIR8UU(a,b)包括4个乘法运算和1个加法运算,这使TM1300具有强大的多媒体数据处理能力。而这些DSP操作指令都可以在C程序中直接调用,大大方便了编程。TM1300处理器内部含有128个通用寄存器,这些寄存器不是分段的,所有操作都能使用这些寄存器。TM1300使用32位线性寻址,寻址能力达到4GB,同时为了解决高速VLIW CPU和低速外存SDRAM之间的数据交换瓶颈,TM1300内部集成了16KB的高速数据缓存和32KB的高速指令缓存(CACHE),以确保VLIW CPU的全速运行。TM1300的二进制运行代码以压缩的格式存放在SDRAM和指令CACHE中,压缩的代码一方面可以提高指令CACHE的命中率,另一方面可以减少指令CACHE与SDRAM之间的数据交换。指令CACHE中有一个专门的指令解压机构,它负责解压缩指令并以224位的数据位宽向VLIW CPU提供指令。而其数据CACHE是双端口的,其数据位宽达64位,并且VLIW CPU与缓存之间是以CPU的运行频率交换数据的。

    TM1300处理器的音频输入单元(AI)外接A/D转换器,支持1个或2个声道的音频输入采样,每个采样点可以设为8位或16位,可以工作在主模式或从模式,支持标准立体声IIS格式和左对齐格式,采样的数据通过双DMA通道直接存放在SDRAM中,通过中断方式通知CPU,减轻了CPU的负担。
 
    三、G.729在TM1300上的优化、实现

    国际电信联盟ITU在推出G.729编解码器算法的建议的同时,给出了G.729算法的一种软件参考实现,也给出了一组测试向量,用以验证软件的正确性。该软件采用移植性较好的ANSI C语言编写的,因此可以在许多硬件平台上编译、运行。但是由于软件采用的是16位定点运算,而且没有针对任何硬件平台做任何优化,也没有考虑并行运算,所以要充分发挥32位的TM1300 CPU的强劲性能,降低实现成本,必须经过大量的优化工作。代码优化过程是一个不断调整改造程序、利用测试向量验证正确性和查看系统资源消耗(主要指CPU占用率和所需内存)的过程,我们主要做了下列优化工作。

    1、参考软件采用的是16位定点运算,而TM1300是32位的处理器,因此我们把2个16位的音频采样数据合成一个32位的数据,把绝大部分程序改造成32位定点运算的程序。

    2、参考软件中包含了一组用函数实现的基本操作,包括16位加法、减法、乘法、取饱和、左移、右移等函数,从程序运行的角度看,这些基本函数效率十分低,而且不利于提高程序的并行度。我们利用TM1300的DSP操作指令把大部分这种函数改成单操作指令。如原来的16位加法函数:

            Word16 add(Word16 var1,Word16 var2)
            {
            Word16 var_out;
            Word32 L_somme;
            L_somme = (Word32) var1 + var2;
            var_out = sature(L_somme);
            return(var_out);

    其中sature()又是‘取饱和’函数,把32位带符号整数转换成16位带符号整数。利用TM1300的DSP操作指令,我们把它改成下面这样一个宏定义:

    #define add(var1, var2) ((Word16)DSPIDUALADD((var1), (var2)))

    3、充分利用TM1300的128个通用寄存器,函数的临时变量尽量不要使用数组,而是直接用单个整数,因为TM1300编译器把数组编译成内存方式的变量,而单个整数的临时变量则用寄存器来保存,这样不但提高了运行速度,也有利于提高数据CACHE的命中率。

    4、通过调整程序的流程来尽量提高程序的并行度,特别是耗时的函数,如改变循环的次数、步长等。TM1300的软件开发工具SDE中包含有测试函数并行度的工具,可以查看单个函数的并行度。我们知道TM1300的最高并行度为5,即1个时钟周期执行5个操作,经过我们的优化,G.729编码器的几个重点函数的并行度达到了4.2以上。

    5、在C语言程序中,直接调用TM1300的汇编指令,特别是针对多媒体运算的DSP操作,尽量选用能并行执行的操作。

    6、充分使用TM1300的2个高速缓存:指令CACHE和数据CACHE,提高CACHE的命中率。对于程序,在不影响并行度的前提下,使程序尽量小,避免程序的大范围跳转,这样可以提高指令CACHE的效率;TM1300的数据CACHE是以64字节为单位的,即每次从SDRAM读入数据或把数据调出数据CACHE,至少是64个字节,因此在许多地方,我们对数据的存放位置进行了重新调整,使读入CACHE的数据能被CPU充分利用。

    通过上述优化措施,我们花比较低的代价在TM1300 DSP上实现了G.729编码器算法。在DSP主频为175MHZ、SDRAM频率为140MHZ的TM1300硬件平台上,G.729编码器完成实时语音编码的CPU占用率为8%左右,并且通过了所有测试向量的验证。

    参考文献

    1、ITU-T Recommendation G.729, Coding of Speech At 8 kbit/s Using Conjugate-Structure Algebraic-Code-Excited Linear-Prediction(CS-ACELP)

    2、TriMedia TM1300 DataBook


 

G.729语音编码算法在TriMedia TM1300 DSP上的实现

该文观点仅代表作者,本站仅提供信息存储空间服务,转载请注明出处。若需了解详细的安防行业方案,或有其它建议反馈,欢迎联系我们

(0)
小安小安

相关推荐

  • 视频监控带火网络存储与EPON

    视频监控的网络化,呈现出“分布式处理+集中式管理”发展趋势。从视频监控系统的架构来看,随着前端视频收集设备数量的迅速增长以及网络复杂程度的加深,越来越多的视频图像处理功能向前端转移,这极大带动了相关设备、视频收集设备、视频图像处理软件,网络布线技术和存储技术的发展。

    2024年1月31日
  • 巴铁最大城市卡拉奇“智慧警车”装备来自清新互联

    通过对警车标准化改装,将警灯、云台、警用电子设备一体化,能对车辆周边人、车等关键信息进行采集,通过智能分析、比对技术,对人车信息甄别和核验。可视应急、智慧调度、融合互联互通,可有效提升警车实战能力以及预防犯罪和恐怖袭击能力。

    2024年2月23日 资讯
  • 二维码食品追溯“互联网+食品”背后的“马太效应”

    当“互联网+”成为驱动经济转型升级和创新发展的动力源泉时,作为关系国计民生的食品行业,必然迎来“互联网+食品”的全新变革,而二维码食品溯源作为这一变革大潮中的主流模式,将对整个食品行业进行互联网化改造。

    2024年2月8日
  • 凉州:建设智慧安防小区 打造平安幸福家园

    智慧安防小区建设是市域社会治理的重要内容,更是惠及广大人民群众的民生工程。 随着智慧人脸识别系统的提示音响起,门禁闸口自动打开,居民顺利进入小区。近日,记者在凉州区恒昌华府小区门口看到,小区门禁系统以“人脸”代替“门禁卡”,与后台人脸模板进行比对,确认是小区住户或工作人员才会开门,整个过程只需2至3秒。

    2024年3月3日
  • Assa Abloy技术公司推出指纹识别阅读器

    AssaAbloy识别技术公司(ITG)是RFID领域产品与服务的领先提供商,最近推出了一种将触摸式灵巧卡片技术与指纹识别相结合的新型迷你密钥(OMNIKEY)灵巧卡片阅读器。

    2024年2月4日
  • 数字技术新天地 智慧养老正当时

    5月17日是世界电信和信息社会日,今年的主题是“面向老年人和实现健康老龄化的数字技术”。

    2024年2月8日