CELP语音编码与TMS320C54x.doc_第1页
CELP语音编码与TMS320C54x.doc_第2页
CELP语音编码与TMS320C54x.doc_第3页
CELP语音编码与TMS320C54x.doc_第4页
CELP语音编码与TMS320C54x.doc_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

电声技术 AUDIO ENGINEERING 1999年第12期No.121999CELP语音编码与TMS320C54x李镐炜, 黄芝平, 王跃科【摘 要】介绍了码激励线性预测(CELP)编码的基本原理和新近推出的TMS320C54x定点DSP芯片,结合其指令特点探讨了TMS320C54x在实现CELP类语音编码方案的一些有效的编程方法。【关键词】 码激励线性预测; 语音编码; 数字信号处理; TMS320C54x【Abstract】 The fundamentals of code-excited linear prediction(CELP) speech coding as wall as the novel fixed-point DSP TMS320C54x are presented Combined with the distinctive instruction set of TMS320C54x, some effective programming methods applied in the implementation of CELP class coders ard discussed【Key words】 codeexcited linear predictionCELP speech coding; digital signal processing; TMS320C54xe1概述随着信息技术的发展,作为通信主要方式之一的话务通信不断向数字化方向发展,为了提高通信容量和质量,对话音编码提出的要求也越来越高。不仅要求低码率、低延迟,而且要求有很高的话音质量。先进的语音压缩编码的目标就是要在尽可能低的比特率下,最大限度的提取语音信号的特征信息,在接收端恢复尽可能清晰自然的语音。目前,常用的编码方法可分为波形编码、参数编码和混合编码三种。码激励线性预测(CELP)编码是采用合成分析法(Analysis-By-Synthesis)的语音编码,是一种典型的混合编码方案。在中低速率(4816 kbs)能够给出高质量的合成语音,而且抗噪声和多次转接性能好,是目前语音编码算法中的主要选择。基于CELP原理的编码方案有:美国政府标准48 kbs CELP声码器、EIATIA的8 kbs VSELP声码器、Qualcomm公司的QCELP编码以及LDCELP G728建议、CSACELP G729建议和双码率ACELPMPMLQG7231建议等。然而计算复杂和数据存储量大是CELP的固有缺陷,随着语音处理算法的日益复杂,许多语音处理器的运算速度需要达到1020MIPS(Million Istructions Per Second),一些理论上性能优良的语音编码方案在应用中还面临着诸如体积、成本、功耗等实际问题。对于绝大多数的编解码算法而言,编码远比解码复杂,是非对称的。因此,语音编码算法的实时实现一直是一个重要的研究课题。超大规模集成电路(VLSI)工艺的进步,极大地推动了DSP技术的发展,通用DSP芯片性能价格比的迅速提高为各种语音信号处理系统的实现铺平了道路。TMS320C54x是美国德州仪器公司(Texas Instrument公司)新近推出的高性能16位定点DSP,高性能、低功耗的特点使其成为各种无线和有线通信系统的理想器件。下文在介绍CELP类编码算法原理的基础上,结合TMS320C54x的特点,提出了在实时实现语音编解码时的一些有效的编程方法。2CELP编译码算法基本原理CELP采取分帧技术进行编码,帧长一般为2030 ms,每一语音帧再被分成25个子帧,在每个子帧内搜索最佳的码字矢量(简称码矢量)作为激励信号,CELP编码的流程如图1所示。图1 CELP编码流程图模拟话音信号(带宽为3003 400 Hz)经8 kHz采样后,首先进行线性预测(LP)分析,去除语音的相关性,将语音信号表示为线性预测滤波器系数,并由此构成编译码器中的合成滤波器。CELP在LP声码器的基础上,引进一定的波形准则,采用了合成分析和感觉加权矢量量化(VQ)技术,通过合成分析的搜索过程搜索到最佳矢量。码本中存储的每一个码矢量都可以代替LP余量信号作为可能的激励信号源。激励由两部分码本组成,分别模拟浊音和清音。CELP一般用一个自适应码本中的码矢量逼近语音的长时周期性(基音Pitch)结构:用一个固定的随机码本中的码矢量来逼近语音经过短时、长时预测后的余量信号。CELP编码算法将预测误差看作纠错信号,将残余分成矢量,然后通过两个码本搜寻来找出最接近匹配的码矢量,乘以各自的最佳增益后相加,代替LP余量信号作为CELP激励信号源来纠正线性预测模型中的不精确度。最佳激励搜索是在感觉加权准则下使它产生的合成语音尽量接近原始语音,即将误差激励信号输入P阶(一般取P10)LP合成滤波器1A(z),得到合成语音信号(n),(n)与原始语音s(n)的误差经过感觉加权滤波器w(z)后得到感觉加权误差e(n)。CELP用感觉加权的最小平方预测误差(Minimum Squared Prediction Error,MSPE)作为搜索最佳码矢量及其幅度的度量准则。此时使感觉加权误差平方最小的码矢量就是最佳码矢量。CELP编码器的计算量主要是对码本中最佳码矢量及幅度的搜索。计算复杂度和合成语音的质量取决于码本的大小。自适应码本和随机码本的搜索过程在本质上是一致的,不同之处在于码本结构和目标矢量的差别。为减少计算量,一般采用两级码本顺序搜索的方法。第一级自适应码本搜索的目标矢量是加权LP余量信号,第二级随机码本搜索的目标矢量是第一级搜索的目标矢量减去自适应码本搜索得到的最佳码矢量激励合成加权滤波器的结果。若设e0为目标矢量,则e0(s0)WuHW1。式中u在第一级搜索时为零矢量,第二级搜索时为经过幅度调整的自适应激励矢量:H,W为MM阶方阵,其中M为子帧长度,H的第j行为LP滤波器截断的冲击响应h(tj),W的第j行为感觉加权滤波器截断的冲击响应w(tj);0为LP滤波器的零输入响应。若yi为滤波后的码矢量,即yixiHW,其中xi为码矢量,则与第i个码矢量对应的误差平方和为2式中i表示第i个码矢量的增益,对于最佳码矢标号opt有12(C2iGi)(C2optGopt)(*)其中从码本中搜索最佳激励矢量的过程即为:由(*)式求出最佳码矢标号opt,再由12optCoptGopt求出最佳增益。在接收端,用存储的同样的码本根据接收到激励矢量的参数和LP系数即可恢复出相应的语音信号。3TMS320C54x简介及编程TMS320C54x是TI公司于90年代中后期推出的新一代定点低功耗DSP,与C2xC5x系列不完全兼容,但又有许多相似之处。其内部采用改进的Harvard结构,程序空间和数据空间相对独立。采用了多总线技术,具有1条程序空间总线、3条数据空间总线和4条地址空间总线,使得1条指令可以同时访问程序空间和数据空间,具有高度并行性。TMS320C54x的结构特点有:.40位的算术逻辑单元,包括一个40位桶形移位器和两个独立的累加器(ACC);.1717位并行乘法器,联接至一个专用的加法器,可作非流水的单周期乘法累加运算(MAC);.比较、选择和存储单元(CSSU);.两个地址发生器:包括8个辅助寄存器和两个辅助寄存器算术单元;.192 kB16位可寻址存储空间(64 kB程序存储空间,64 kB数据存储空间,64 kB IO存储空间)。TMS320C54x单指令周期为25 ns,最大运算能力为40 MIPS。而且在一个指令周期内可完成两次读操作和一次写操作。在TMS320C54x系列的指令集中提供了并行指令,能够在完成一次应用指令的同时,完成并行存储功能。TMS320C54x指令集特别适合数字信号处理和其它大运算量的应用。指令集包括129种指令,由四大类指令组成:算术运算,逻辑运算,程序控制,装入与存储指令。其中有特色的指令有:.块存储器搬移指令,更便于程序和数据管理;.32位长操作数指令;.同时读取2操作数和3操作数的指令;.带并行存储和并行装入功能;.条件存储指令;.快速中断返回。在CELP类的语音编码算法中,由于需要一定大小的码本以保证合成语音的质量,存储器资源的配置以及运算的优化问题就显得相当重要,这就需要充分运用其指令集及开发工具。TMS320C54x的寻址方式共有7种:立即数(Immediate addressing),绝对寻址(Absolute addressing),累加器寻址(Accumulator addressing),直接寻址(Direct addressing),间接寻址(Indirect addressing),存储器映像寄存器寻址(Memory-mapped register addressing)以及堆栈寻址(Stack addressing)。其中绝对寻址、直接寻址、间接寻址、存储器映像寄存器寻址在编程中应用比较频繁。一般情况,应首先使用间接寻址和存储器映像寄存器寻址,这样便可通过采用这些寻址方式的指令节省指令周期。在间接寻址的使用中,有时又应当首选双操作数寻址(Dual datamemory operand addressing)方式。双操作数寻址方式的实质是通过空间上的多总线技术,减少数据存取的占用时间。例如STLSrc,SHFT,Xmem与STLSrc,SHIFT,Smem(其中Src,Dst分别表示源累加器source accumulator和目的累加器destination accumulator;SHIFT,SHFT分别表示不同的移位;Xmem,Smem分别表示双操作数寻址方式和单操作数寻址方式),这两条指令的功能相近,但选用双操作数寻址方式比单操作数寻址方式可节省一个指令周期,而若能在一段循环指令中减少几个指令周期,则运算量就会有明显的降低。在使用直接寻址时,一般用选取DP寄存器的直接寻址(DPReferenced Addressing)方式。需要注意的是,存储器在这时被分为512页,页内地址0127,这样一个确定的地址由DP值和指令的地址域两部分确定。因此,在用选取DP的直接寻址方式时,须设定DP值。但由此引出的问题是,在设计CELP软件时,需要许多子程序来完成特定的功能,而在每个子程序内均需设定DP值,显得较为繁琐。TMS320C54x汇编语言提供了伪指令功能,运用其中的asg伪指令可以较好解决这一问题。首先在一个文件中定义一定数量的变量空间,由主程序用include伪指令将此文件包含后,在各子程序的起始处使用asg将需要的变量命名。因为伪指令不占用程序执行空间与时间,这样就省去了在各子程序中确定DP值。另一方面,不同的子程序,在不冲突的前提下可以通过伪指令asg最大限度的重要使用变量,节省变量空间。此外,还可用来传递参数变量。充分利用TMS320C54x的指令集,调整某些指令的执行顺序,可以精简程序运行空间与时间。例如,LDK,Src; ADD Smem,Src与LD Smem,Src; ADDK,Src的功能均为求Smem与常数K的和,但两组语句的存储空间相差一个字(word),运行时间相差一个指令周期。另外延迟跳转(BD)、延迟调用(CALLD)与延迟循环指令(RPTBD)的使用也可节省程序指令周期。由于采用了多总线技术,TMS320C54x提供了许多单字单指令周期的并行指令,如并行装入与存储指令,并行存储与乘指令,并行存储与加减指令,适时地使用这些指令可提高程序效率。TMS320C54x的比较、选择和存储单元(CSSU)是专用于维特比(Viterbi)操作的加比较选择(ACS)硬件。因此,TMS320C54x的指令集中有一些单字单指令周期的32位操作数指令,可以方便的用于运算精度要求较高的情况,而指令集中的条件存储指令则非常适用于CELP的码本搜索运算。下面结合在第2节的介绍给出了码本搜索部分的源程序及详细注释。Start:STMC,AR5 ;设置C(i)地址指针STMG,AR2 ;设置G(i)地址指针STMOpt,AR3 ;设置Opt地址指针STMIOPT,AR4 ;设置IOPT地址指针ST 0,*AR4 ;初始化lagST 1,*AR3 ;初始化GoptSTM N1,BRC ;设定循环次数RPTBDSrhEnd-1 ;延迟循环ST0,*AR3- ;初始化C2optSQUR*AR5,A ;AC(i)*C(i)循环开始处MPYA*AR3 ;BC(i)2*GoptMAS*AR2,*AR3-,B ;BC(i)2Gopt-G(i)*C2opt,TG(i)SRCCD*AR4,BGEQ ;若(B0)则ioptBRCSTRCD*AR3,BGEQ ;若(B0)则GoptTSACCDA,*AR3,BGEQ ;若(B0)则C2optASrhEng:RET ;AR4指向最佳码矢标号,循环结束 子程序结束ENDTMS320C54x共有6级流水线(pipeline),使程序能够并行执行,但有时会产生流水线冲突问题,因而实际编程时在这种情况下需要调整指令顺序,甚至加入NOP指令以避免流水线冲突问题。4结束语CELP算法是目前主要的语音编码方案,ITUTSG16正在讨论的几种4kbs语音编码算法均以CELP算法为基础,如相位自适应基音同步更新码激励线性预测(PAPSICELP)、多离散脉冲码激励线性预测(MDPCELP)、基音位置同步码激励线性预测(PPSCELP)等,而它们的运算复杂度

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论