【摘要】 介绍了码激励线性预测(CEL P) 编码 的基本原理和新近推出的TM S 320 C54x 定点 DSP 芯片, 结合其指令特点探讨了TM S 320 C54x 在实现CELP 类语音编码方案时的一些有效的编 程方法。 关键词: 码激励线性预测, 语音编码, 数字信号 处理, TMS 320 C54x
1 引言 随着信息技术的发展, 作为主要通信方式之一 的话务通信不断向数字化方向发展, 为了提高通信 容量和质量, 对话音编码提出的要求也越来越高。 不仅要求低码率、低延迟, 而且要求有很高的话音 质量。先进的语音压缩编码的目标就是要在尽可能 低的比特率下, 最大限度地提取语音信号的特征信 息, 在接收端恢复尽可能清晰自然的语音。目前, 常 用的编码方法可分为波形编码、参数编码和混合编 码三种。 码激励线性预测(CEL P) 编码系采用合成分析 法(A nalysis- by- Syn thesis) 的语音编码, 是一种 典型的混合编码方案。在中低速率(4. 8~ 16kb?s) 能够给出高质量的合成语音, 且抗噪声和多次转接 性能好, 是目前语音编码算法中的主要选择。基于 CEL P 原理的编码方案有: 美国政府标准4. 8kb?s CEL P 声码器、E IA ?T IA 的8kb?s V SEL P 声码器、 Q ualcomm 公司的QCEL P 编码以及LD—CEL P G. 728 建议、CS—ACEL P G. 729 建议和双码率ACEL P?M P—MLQ G. 723. 1 建议等。然而计算复 杂和数据存储量大是CEL P 的固有缺陷, 随着语音 处理算法的日益复杂, 许多语音处理器的运算速度 需要达到10~ 20 M IPS (M illion In st ruct ion s per Second) , 一些从理论上讲性能优良的语音编码方 案在应用中还面临着诸如体积、成本、功耗等实际 问题。对于绝大多数的编解码算法而言, 编码远比 解码复杂, 是非对称的。因此, 语音编码算法的实时 实现一直是一个重要的研究课题。 超大规模集成电路(VL S I) 工艺的进步, 极大地 推动了DSP 技术的发展, 通用DSP 芯片性能价格 比的迅速提高为各种语音信号处理系统的实现铺 平了道路。TM S 320 C54x 是美国德州仪器公司 (Texas In st rum en t 公司) 新近推出的高性能16 位 定点DSP, 高性能、低功耗的特点使其成为各种无 线和有线通信系统的理想器件。 文章在介绍CEL P 类编码算法原理的基础上, 结合TM S 320 C54x 的特点, 提出了在实时实现语 音编解码时的一些有效的编程方法。 2 CELP 编译码算法的基本原理 CEL P 采取分帧技术进行编码, 帧长一般为20 ~ 30m s, 每一语音帧再被分成2~ 5 个子帧, 在每个 子帧内搜索最佳的码字矢量(简称码矢量) 作为激 励信号, CEL P 编码的流程如图1 所示。 模拟话音信号(带宽为300~ 3400 Hz) 经8kHz 采样后, 首先进行线性预测(L P) 分析, 去除语音的 相关性, 将语音信号表示为线性预测滤波器系数, 并由此构成编译码器中的合成滤波器。CEL P 在L P 声码器的基础上, 引进一定的波形准则, 采用了合 成分析和感觉加权矢量量化(VQ ) 技术, 通过合成 分析的搜索过程搜索到最佳矢量。码本中存储的每 一个码矢量都可以代替L P 余量信号作为可能的激 励信号源。激励由两部分码本组成, 分别模拟浊音 和清音。CEL P 一般用一个自适应码本中的码矢量 逼近语音的长时周期性(基音P itch) 结构; 用一个 固定的随机码本中的矢量来逼近语音的经过短时、 长时预测后的余量信号。CEL P 编码算法将预测误 差看作纠错信号, 将残余分成矢量, 然后通过两个 码本搜寻来找出最接近匹配的码矢量, 乘以各自的 最佳增益后相加, 代替L P 余量信号作为CEL P 激 励信号源来纠正线性预测模型中的不精确度。
最佳激励搜索是在感觉加权准则下使它产生 的合成语音尽量接近原始语音, 即将误差激励信号 输入P 阶(一般取P= 10)L P 合成滤波器1?A (z) , 得到合成语音信号S d (n) , S d (n) 与原始语音信号S (n) 的误差经过感觉加权滤波器w (z ) 后得到感觉 加权误差e (n)。CEL P 用感觉加权的最小平方预测 误差(M in im um Squared P redict ion Erro r, M SPE) 作为搜索最佳码矢量及其幅度的度量准则。此时使 感觉加权误差平方最小的码矢量就是最佳码矢量。 CEL P 编码器的计算量主要是对码本中最佳码 矢量及幅度的搜索。计算复杂度和合成语音的质量 取决于码本的大小。自适应码本和随机码本的搜索 过程本质上是一致的, 不同之处在于码本结构和目 标矢量的差别。为减少计算量, 一般采用两级码本 顺序搜索的方法。第一级自适应码本搜索的目标矢 量是加权L P 余量信号, 第二级随机码本搜索的目 标矢量是第一级搜索的目标矢量减去自适应码本 搜索得到的最佳码矢量激励合成加权滤波器的结 果。若设e0 为目标矢量, 则
式中u 在第一级搜索时为零矢量, 第二级搜索时为 经过幅度调整的自适应激励矢量: H 、W 为M ×M阶 方阵, 其中M 为子帧长度, H 的第j 行为L P 滤 波器截断的冲击响应h ( t- j ) ;W 的第j 行为感觉 加权滤波器截断的冲击响应W ( t- j ) ; S d 0 为L P 滤 波器的零输入响应。 若y i 为滤波后的矢量, 即y i= x iHW , 其中x i 为码矢量, 则与第i 个码矢量对应的误差平方和为
式中ri 表示第i 个码矢量的增益, 对于最佳码矢标 号op t 有
从码本中搜索最佳激励矢量的过程即为: 先由(3 ) 式求出最佳码矢标号op t, 再由文献〔1, 2〕中的
求出最佳增益。在接收端, 用存储的同样码本根据 接收到的激励矢量参数和L P 系数即可恢复相应的 语音信号。 3 TM S 320 C54x 的简介及编程 TM S 320 C54x 是T I 公司于90 年代中后期推 出的新一代定点低功耗DSP, 与C2x?C 5x 系列不 完全兼容, 但又有许多相似之处。其内部采用改进 的Harvard 结构, 程序空间和数据空间相对独立。 采用了多总线技术, 具有一条程序空间总线、三条 数据空间总线和四条地址空间总线, 使得一条指令 可以同时访问程序空间和数据空间, 具有高度并行 性。TM S 320 C54x 的结构特点有: ·40 位的算术逻辑单元, 包括一个40 位桶形 移位器和两个独立的累加器(ACC) ; ·17×17 位并行乘法器, 联接至一个专用的加 法器, 可作非流水的单周期乘法?累加运算(MAC) ; ·比较、选择和存储单元(CSSU ) ; ·两个地址发生器: 包括8 个辅助寄存器和两 个辅助寄存器算术单元; ·192K 字×16 位可寻址存储空间(64K 字程 序存储空间, 64K 字数据存储空间, 64K 字I?O 存 储空间)。 TM S 320 C54x 单指令周期为25n s, 最大运算 能力为40M IPS, 而且在一个指令周期内可完成两 次读操作和一次写操作。TM S 320 C54x 系列的指 令集中提供了并行指令, 能够在完成一次应用指令 的同时, 完成并行存储功能。 TM S 320 C54x 指令集特别适合数字信号处理 和其它大运算量的应用。指令集包括129 种指令, 由四大类指令组成: 算术运算, 逻辑运算, 程序控 制, 装入与存储指令。其中有特色的指令有: ·块存储器搬移指令, 更便于程序和数据管 理; ·32 位长操作数指令; ·同时读取2 操作数和3 操作数的指令; ·带并行存储和并行装入功能; ·条件存储指令; ·快速中断返回。 在CEL P 类的语音编码算法中, 由于需要一定 大小的码本以保证合成语音的质量, 存贮器资源的 配置以及运算的优化问题就显得相当重要, 这就需 要充分运用其指令集及开发工具。 TM S 320 C54x 的寻址方式共有7 种: 立即数 ( Imm ediate addressing) , 绝对寻址(A b so lu te ad2 dressing) , 累加器寻址(A ccum u lato r addressin2 g) , 直接寻址(D irect addressing) , 间接寻址( Indi2 rect addressing) , 存储器映像寄存器寻址(M emo ry - m apped register addressing ) , 堆找寻址(Stack addressing)。其中绝对寻址、直接寻址、间接寻址、 存储器映像寄存器寻址在编程中应用比较频繁。 一般情况, 应首先使用间接寻址和存储器映像 寄存器寻址, 这样便可通过采用这些寻址方式的指 令节省指令周期。在间接寻址的使用中, 有时又应 当首选双操作数寻址(Dual data- m emo ry operand addressing) 方式。双操作数寻址方式的实质, 是通 过空间上的多总线技术减少数据存取的占用时间。 例如, STL Src, SHFT , Xm em 与STL Src, SH IFT , Sm em〔其中Src、D st 分别表示源累加器 (sou rce accum u lato r) 以及目的累加器(dest inat ion accum uato r) ; SH IFT、SHFT 分别表示不同的移位; Xm em、Sm em 分别表示双操作数寻址方式和单操 作数寻址方式〕, 这两条指令的功能相近, 但选用双 操作数寻址方式比单操作数寻址方式可节省一个 指令周期, 而若能在一段循环指令中减少几个指令 周期, 则运算量就会明显降低。在使用直接寻址时, 一般用选取DP 寄存器的直接寻址(DP - Refer2 enced A ddressing) 方式。注意, 存贮器在这时被分 为512 页, 页内地址0~ 127, 这样一个确定的地址 由DP 值和指令的地址域两部分确定。因此, 在用选 取DP 的直接寻址方式时, 须设定DP 值。但由此引 出的问题是, 在设计CEL P 软件时, 需要许多子程 序来完成特定的功能, 而在每个子程序内均需设定 DP 值, 显得较为繁琐。TM S 320 C54x 汇编语言提 供了伪指令功能, 运用其中的. asg 伪指令可以较好 地解决这一问题。首先在一个文件中定义一定数量 的变量空间, 由主程序用. include 伪指令将此文件 包含后, 在各子程序的起始处使用. asg 将需要的变 量命名。因为伪指令不占用程序执行空间与时间, 这样就省去了在各程序中确定DP 值。另一方面, 不 同的子程序, 在不冲突的前提下可以通过的指令· asg 最大限度地重复使用变量, 节省变量空间。此 外, 还可用来传递参数变量。 充分利用TM S 320 C54x 的指令集, 调整某些 指令的执行顺序, 可以精简程序运行空间与时间。 例如, LD # K, Src、ADD Sm em , Src 与LD Sm em , Src、ADD # K, Src 的功能均为求Sm em 与常数K 的和, 但两组语句的存储空间相差一个字(wo rd) , 运行时间相差一个指令周期。另外, 延迟跳转(BD)、 延迟调用(CALLD) 与延迟循环指令(RPTBD) 的使 用也可节省程序指令周期。由于采用多总线技术, TM S 320 C54x 提供了许多单字单指令周期的并行 指令, 如并行装入与存储指令, 并行存储与乘指令, 并行存储与加?减指令, 适时地使用这些指令可提 高程序效率。TM S 320 C54x 的比较、选择和存储单 元(CSSU ) 是专门用于维特比(V iterb i) 操作的加? 比较?选择(A ?C ?S ) 硬件的。因此, TM S 320 C54x 的指令集中有一些单字单指令周期的32 位操作数 指令, 可以方便地用于运算精度要求较高的情况, 而指令集中的条件存储指令则非常适用于CEL P 的码本搜索运算。下面结合第2 节的介绍给出了码 本搜索部分的源程序及详细注释。 Start: STM # C,AR5, ; 设置C ( i) 地址指针 STM # G,AR2 ; 设置G( i) 地址指针 STM # Op t,AR3 ; 设置Op t 地址指针 STM # OPT,AR4 ; 设置IOPT 地址指针 ST # 0, 3 AR4 ; 初始化lag ST # 1, 3 AR3+ ; 初始化Gop t STM # N - 1,BRC ; 设定循环次数 RPTBD Srh End- 1 ; 延迟循环 ST # 0, 3 AR3- ; 初始化C2op t SQUR 3 AR5+ ,A ;A = C ( i) 3 C ( i) 循环开始处 M PYA 3 AR3+ ; B= C ( i) ^ 23 Gop t MA S 3 AR2+ , 3 AR3- ,B ; B= C ( i) ^ 23 Gop t - G( i) 3 C2op t, T= G( i) SRCCD 3 AR4,BGEQ ; 若(B≥0) , 则iop t= BRC STRCD 3 AR3+ ,BGEQ ; 若(B≥0) , 则Gop t= T SACCD A , 3 AR3- ,BGEQ ; 若(B≥0) , 则C2op t= A Srh End: RET ;AR4 指向最佳码矢标号, 循环结束, 子程序结束 END TM S 320 C54x 共有6 级流水线(p ipeline) , 使 程序能够并行执行, 但有时会产生流水线冲突问 题, 因而实际编程时在这种情况下需要调整指令顺 序, 甚至加入NO P 指令。 4 结束语 CEL P 算法是目前主要的语音编码方案, ITU - T SG16 正在讨论的几种4kb?s 的语音编码算法 均以CEL P 算法为基础, 如相位自适应基音同步更 新码激励线性预测(PA PS I- CEL P)、多离散脉冲 码激励线性预测(MDP- CEL P)、基音位置同步码 激励线性预测(PPS—CEL P) 等, 而它们的运算复杂 度有的已高达40M PS〔4〕。高效率地实现CEL P 核心 算法有助于各种基于CEL P 方案的编码算法的实 现。TM S 320 C54x 是新一代的高速低功耗定点 DSP, 其高效灵活的指令非常适合于复杂运算。充 分运用其指令, 可明显地提高效率。比较分析发现, 优化了的程序的运行时间与原先相比平均减少 20% , 并已成功地用于G. 729 汇编语言的优化方 面。由于TM S 320 系列DSP 的指令有许多相似之 处, 因此TM S 320 C54x 的编程方法对其它类型的 DSP 也有参考价值。 参 考 文 献 1 杨行俊, 迟惠生. 语音信号数字处理. 北京: 电子工业出 版社, 1995 2 Texas Inst ruments. TM S 320 DSP So luit ions CD - ROM. 1997 3 ITU - T. Recommendat ion G. 729- Coding of Speech at 8kb?s U sing Conjugate- St ructure A lgebraic- Code- Excited L inear- P redict ion (CS- ACEL P). 1996 4 H igh L evelDescrip t ion of the Q ualificat ion Test Results of N TT 4- kbit?s Speech Coder. Delayed Cont ribut ion D. 127 to Study Group 16, Q uest ion 12?16, Geneva. 1998 |
文章评论(0条评论)
登录后参与讨论