G.729语音编码算法研究及其DSP实现

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。


ห้องสมุดไป่ตู้I。
_T
I于芰收比待况


RAM
FLASH

64K—l 6
2 5 6—1 6

图3硬件设计框图
3.3 DSP的软件实现 语音编解码程序完成G.729算法,即语音的
编码和解码。语音编码程序主要由以下5个子模块 组成:(1)完成采样语音的预处理、线性预测分析 和LPC到LSP的转换;(2)完成LSP的量化;(3) 生成内插后的线性预测编码系数,计算加权语音 和搜索开环基音延迟;(4)完成闭环分数延时搜索 和自适应码本搜索;(5)完成更新码本搜索和滤波 存储器的更新。语音解码是编码的逆过程,主要 由以下2个子模块组成:子模块1实现帧系数的恢 复,每帧进行一次;子模块2包括子帧系数的恢 复、语音的合成和后置滤波,每次计算两次。
由于G.729算法的计算量和需要存储的数据量非常 波。定标操作将输入的语音信号除以2以减少定点
大,一般的单片机难以实现。DSP具有运算功能强 运算中出现溢出的可能性。高通滤波器为一个二
大,性价比较高的优点,能够把G.729算法应用于 阶零极点滤波器,用于滤除小于或等于140Hz的
实际系统。r兀生产的DSP芯片具有结构简单、体积 信号,以去除直流分量和低频分量的干扰。可以
37
万方数据
G.729语音编码算法研究及其DSP实现
语音的误差知觉加权最小为准则。激励信号通过 LPC系数构造的合成滤波器后生成重构信号,再与 输入信号相减得到残差信号。残差信号经由LPC 系数构造的误差加权滤波器(知觉加权滤波器)处 理,反馈回控制回路,以加权残差信号均方差最 小的原则确定激励信号及增益。激励参数(固定码 本和自适应码本参数)每5 ms子帧(40个样点)计 算一次。量化的和未量化的LP滤波系数用于第二 子帧,而在第一子帧使用内插(Interpolated)LP系 数,每帧利用感觉加权信号10 ms帧估计一次开环 基音延时。基音分析模块通过自相关分析计算出 基音周期来搜索出自适应码本,确定最佳自适应 码本矢量,得到语音模型中具有准周期特性的激 励信号。然后再搜索固定码本,根据最小化加权 均方差的准则确定最佳固定码本矢量,得到语音 模型中的随机激励信号。根据两者确定自适应码 本矢量和固定码本矢量的增益以找到最佳激励。
电子科技2007年第1期(总第208期)
G.729语音编码算法研究及其DSP实现
王 浔,韦 琦
(哈尔滨理工大学电气与电子工程学院,黑龙江哈尔滨150040)
摘要 简单介绍G.729编解码算法原理,介绍如何用TMS320VC5402 DSP实现该算法。给出硬件的实现 框图并提出了一些在软件设计中的优化方法及技巧。结合实验结果并对其进行了分析。
增益加权后相加组成的激励信号通过LP合成滤波 器重建语音信号。重建语音还要通过一个改善合 成语音质量的后处理过程,包括基于长时和短时 合成滤波器的自适应后滤波以及高通滤波与定标。 总体框图见图2。
图2 CS—ACELP解码器的原理图
3算法的实现方案
3.1 n腮320、,c5402性能介绍 TMS320VC5402是Ⅱ公司推出的高性能16位
小、功耗低和较多外围电路接El等优点,考虑到 将两个操作合而为一,只要将滤波器系数的分子
G.729算法是基于定点实现的,以及性价比等其他
部分除以2即可。这样所得到的滤波器为:
…、0.463 /-/L“J(”z7J=———————6—3—7—1—8————0. ——9—27——2—417——0—5—z“ ——+—0—.——46—3——6—3了7——18—z—“~ 1—1.905 9465z“+0.91 1 402 4z“
和低延迟的语音编码算法。ITU—T于1996年提出 2.1 编码部分
了G.729算法心],在8kHz采样频率的条件下,实
编码原理框图见图1。编码器的输入是16bit
现了较好地综合语音质量和较短的延迟,广泛应 的线性PCM语音信号,对该信号进行编码之前要
用于多媒体终端协议H.323和IP电话等通信领域。 进行两个预处理操作:(1)信号定标(2)高通滤
定点DSP。其主要特点如下:采用改进的哈佛结 构;高度并行性;64kByte数据寻址空间,1MByte 程序寻址空问;带有专用硬件逻辑的CPU、片外 外设;片内存储器包括4kByte的ROM和16kByte 的DARAM,高度专业化的指令系统;2个高速、 全双工多通道缓冲串口McBSP,可以进行全双工 通信,具有双缓冲的发送和三缓冲的接收数据存 储器,允许连续的数据流,具有独立的接收与发 送的帧同步和时钟信号,可以与工业标准的编/解 码器、模拟接口芯片AICs以及其他串行A/D、D/ A芯片接口;支持IEEE 1149.1—1990(JATG)标 准;先进的Ic工艺;具有降低功耗和提高抗核辐 射能力的新的静电设计方法等。 3.2硬件设计框图
万方数据
电子科技/2007年01月15日39
G.729语音编码算法研究及其DSP实现
(4)充分利用DSP芯片中的溢出自动保护功 能。G.729的c语言程序中,几乎所有的计算之后 都要进行溢出处理,严重影响了代码的效率,可 以去除不必要的溢出处理,对必须进行的溢出处 理,通过对DSP溢出标志位OVM的灵活运用,使 DSP自动地对结果地溢出进行保护,可以有效地消 除原来溢出处理地软件开销,提高程序地运行 效率。
系统的原理框图如图3所示。选择Ⅱ公司的 TMS320VC5402定点DSP芯片作为主处理器,由于 其内部存储资源有限,为了满足G.729编解码器 对存储空间的要求,外扩了64kByte的RAM核 256kByte的FLASH ROM,其中RAM选择Cypress 公司的CY7C1021V,注意用于存放程序运行时的 代码和数据,FLASH ROM选择AMD公司的 AM29LV400B,用于存放Bootloader程序,实现系 统上电后的自举加载功能;在A/D、D/A转换模 块中选用,I'I公司的TLC320AD50C,该芯片具有 A/D,D/A两个通道,实现原始语音信号A/D转 换和解码之后重构语音信号的D/A转换;DSP与
38 Electronic Sci.&Tbc}∥Jan.15.2007
万方数据
G.729语音编码算法研究及其DSP实现
外围器件的编解码逻辑和复位信号通过CPLD产 生,CPLD采用MAX7000系列的EPM7128SLC84— 15,主要实现系统复位、译码和信号控制等功能; UART选择异步通信转换芯片TLl6C550和RS232 电平驱动器芯片MAX232,实现数据的并串相互转
关键词语音编码;G.729协议;CS—ACELP;TMS320VC5402 中图分类号TN253
The Research on G.729 Speech Code Algorithm and its Application in DSP
Wang Xun,Wei Qi (Electrical&Electronic Engineering College,Harbin Univ.of Tech.,Harbin 150040,China)
收稿日期:2006-06-09 作者简介:王浔(1980一),男,硕士研究生。研究方向: DSP在音频中的应用。韦 琦(1972一),男,副教授。研究 方向:DSP在音视频中的应用。
编码器对每10ms的信号帧进行一次线性预测(LP) 分析,计算LP滤波器系数,再把系数转换为线谱 对(LSP)并用两段18 bit矢量量化。然后用合成A —B—s方法搜索激励信号,且以原始语音与合成
在DSP软件调试和代码优化过程中,采用了 1rI公司的集成开发环境TMS320C5000 CCS,在完 成了大量汇编级优化的基础上,提出了一些有效 的优化方法和编程技巧:
(1)将基本运算函数用汇编指令或TI优化过 的标准程序实现。G.729标准中定义的许多基本运 算函数,使用频率非常高,占用绝大部分的运算 量。在优化时,简单的函数可以直接用一句或几 句汇编指令实现,如:加减法、移位、取反、两 个16位数相乘等都可以直接用一句汇编指令实现, 较复杂一点的运算。
(5)循环的优化。’C54x中提高了高效的重复 操作指令RPI'、RPTZ和RPTB,其中R门和RPTZ 用于重复执行紧随其后的单条指令,可以是多周 期指令,RPTB将重复操作的范围扩大到任意长度 的循环回路,且循环开销为0,使用这些指令可以 实现有效的优化。
上述过程得到的线性预测编码信息(LPC)、矢 量增益、自适应码本矢量和固定码本矢量就构成 了全部的G.729编码参数,以10ms为一帧,每帧 80bit发往解码器的接收端。
国淼
图1 CS—ACELP编码器的编码原理框图 2.2解码部分
解码器从接收到的码流中恢复出每帧的参数, 包括LSP系数,两个子帧的分数基音延迟、固定 码本矢量及自适应和固定码本增益。LSP系数经插 值后转换成两个子帧各自的LP滤波器系数。对每 个子帧,自适应码本矢量和算术码本矢量分别经
Abstract This paper briefly introduces the encoding and decoding principle of the G.729 algorithm,on

the basis of which it describes how to use TMS320VC5402 to implement the G.729 algorithm.Emphasis is put on the realizing picture of hardware structure.Some optimization methods and skills for software design are dis— cussed.Finally,the experimental result is given and analyzed.
Keywords speech coding;G.729 protocol;CS—ACELP;TMS320VC5402

,.

因素,选用耵的定点DSP产品TMS320VC5402。3’41
…。至塞苎苎氅翌墼¨:弯要竺熙2 。
““
迫切需要能够实现高的合成语音质量、低误码率
来实现G.729算法。
G.729算…法…的…编…解。码…原一理
(2)单周期乘累加指令MAC的有效使用。 G.729算法中相乘后累加运算出现的频率非常高,
在编码程序中使用了35 905次,共需要22 272 168 个指令周期,占整个编码程序计算量的一半,对 其优化将会大大降低总的计算。c编译器生成的汇 编代码,对乘累加的实现一般先用MPY指令将两 个数相乘,再利用ADD指令将结果累加,这样会 因指令的繁多而增加运算时间,同时原来的程序 中还采用函数调用的形式,使完成一次乘累加平 均需要545个指令周期。汇编优化时可充分利用单 周期乘累加指令MAC,使系统在一个指令周期内 完成乘加操作。另外,乘累加运算往往出现在循 环的内部,如果再结合’C54x提供的双操作数间接 寻址指令,可以在一个指令周期内,同时取两个 操作数,并且相乘累加,将大大减少指令数,提 高程序效率。例如,在计算卷积的代码中,当N 较大时,使用指令MAC木AR2+,木AR3+,A, 优化效果将非常明显。
换,每帧编码之后的参数,经过UART转换为串行 数据,通过串行口发送,同时由串行口接收的比 特流,经过UART转换为并行数据,进行译码,重 构语音信号。上述芯片均可工作在省电模式,降 低了整个系统的功耗。
H卜_叫T.,。,、。;n卜-—叫串行口I lTLC320AD50
TMS320V C5402
重构语音输出l
(3)使用内部函数。c编译器可以识别一些实 现基本运算的内部函数,如饱和加、饱和减、归 一化等,这些内部函数由汇编语句构成,编译时c 编译器将这些内部函数用对应的汇编语句代替。 这些函数的调用和普通c函数调用一样,在G.729 的c程序中,只需在文件的开头用#include“in. trindefs.h”代替#include“basic一0p.h”,就可以将 文件basic一叩.C从工程中去掉,从而实现对basic 一叩.C中许多基本运算函数的优化,简单有效。
相关文档
最新文档