当前位置:首页 > 电源 > 数字电源
[导读]摘要:对G.729语音编解码算法的原理进行了简要分析,并提出了一种基于DSP芯片TMS320VC5510的语音编解码算法的实现方法。针对算法特征及体系结构的特点,提出了一些有效的优化措施。实验结果表明,运算复杂度大大降低

摘要:对G.729语音编解码算法的原理进行了简要分析,并提出了一种基于DSP芯片TMS320VC5510的语音编解码算法的实现方法。针对算法特征及体系结构的特点,提出了一些有效的优化措施。实验结果表明,运算复杂度大大降低,且在语音的编解码压缩过程中具有很好的重建效果。

关键词:TMS320VC5510;语音编解码;G.729算法;优化

1 G.729算法介绍

由于G.729的算法复杂度较高,ITU提出了G.729的简化版本G.729A,作为G.729的附录Annex A。后来为了进一步提高压缩率,增加了G.729B,即G.729 AnnexB。在G.729B中,主要使用了VAD和CNG技术,使得语音通信中的静音部分进一步压缩。

1.1 G.729A

1.1.1 G.729A编码器

G.729A编码器的框图如图1所示。G.729A编码器由预处理、线性预测分析和量化内插、知觉加权、基音分析、脉冲响应的计算、目标信号的计算、自适应码本搜索、同定码本结构和搜索、增益量化以及参数编码等模块组成。

模拟语音信号经过话路带通滤波和8 kHz采样之后,量化成16位的PCM信号进入编码器,然后根据预处理后的输入信号进行线性预测分析,得到线性预测系数,即线性预测编码LPC(Linear Prediction Code)信息,利用该系数即可构造合成滤波器。激励信号经合成滤波器后生成重构信号,与输入信号相减后得到残差信号。该残差信号经误差加权滤波器处理,根据听觉感受改变频谱,反馈到控制回路,根据使加权残差信号均方差最小的原则确定激励信号及其增益。误差加权滤波器也是根据预测分析所得的LPC信息构造的。

基音分析模块通过自相关分析推得基音周期,据此信息搜素自适应码本,确定最佳自适应码本矢量,得到语音中具有准周期特性的激励;然后再搜素固定码本,根据最小化加权均方差(Mcan Square Error,MSE)的准则确定最佳固定码本矢量,得到语音模型的随机激励信号;最后再确定两个码本矢量的增益Gc和Gp,采用具有共匀框结构的两级码书进行矢量量化。上述过程确定的线性预测编码信息、自适应码本矢量、固定码本矢量和矢量增益构成完整的G.729声码器编码器参数。所有这些参数均以码本索引的形式发往接收端。

1.1.2 G.729A解码器

G.729A解码器结构框图如图2所示。首先从接收到码流中提取参数序号,解码这些序号得10 ms语音帧对应的编码参数。这些参数是线谱对LSP参数、两个分数基音延时、两个固定码本矢量与两组自适应和固定码本增益、每子帧LSP参数被内插并转换为LP(Linear Prediction)滤波器系数,然后以每5 ms子帧为单位合成语音,合成步骤如下:

①自适码本应和固定码本分别乘以各自的增益加起来构成激励。

②激励LP合成滤波器重构语音。

③重构语音信号经过后置处理,包括长时后置滤波、短时合成滤波和高通滤波。最后输出语音信号。

1.2 G.729B

G.729B是对G.729A的进一步优化,其最主要的机制是静音压缩。静音压缩主要涉及两个机制:VAD(Voice Activity Detection)和CNG(Comfort Noise Generation)。VAD主要是用于编码器,用来决定当前帧是否静音;而CNG则主要用于解码器,产生让人耳感觉舒服的噪声。

1.2.1 VAD机制

VAD算法每隔10 ms做一次判决。首先,VAD会从输入帧中提取参数,这些参数包括全带能量、低频带能量、过零率和某个频域参数。在静音段,这些参数的长时平均值随着背景噪声的性质而发生改变。每进来一帧,就要计算当前帧的参数与其长时平均值的差。根据这些差值参数,VAD可以得到初始的判决结果,最后对初始结果进行平滑,得到最终的判决结果。

1.2.2 CNG机制

舒适噪声是用伪白噪声激励内插后的LPC滤波器产生的,就跟解码器对解码后的激励进行滤波产生活动话音一样。激励水平和LPC滤波器是从前一个SID信息中获取的。子帧内插LPC滤波器是用SID的LSP参数作为当前的LSP,然后和前一帧的LSP作内插得到的,与活动帧一样。伪白噪声ex(n)是由跟活动话音同样类型的激励cx1(n)和高斯白噪声激励ex2(n)相加而产生的。G.729激励ex1(n)是由一个小增益的自适应激励和ACELP固定激励组成的,这改善了活动和非活动话音帧之间的跳变。白噪声ex2(n)的引入是为了产生一个更接近于白噪声的信号。在非活动话音期间,因为编码端和解码端需要保持同步,所以激励在两边都要产生。

首先,我们定义目标激励增益Gt为当前帧t合成激励必须要达到的平均能量的平方根。Gt是用下面的平滑公式计算得到的,其中GSID是解码后的SID增益。

每帧的80个样本分成两个长度为40个样本的子帧。对于每一个子帧,CNG激励样本是用下面的算法合成的:

①从间隔[40,103]中随机选择一个基音延迟。

②根据G.729 ACELP码结构随机选择网格、脉冲符号和位置来构建子帧的固定码本矢量。

③计算单位增益的自适应激励信号,记作ea(n),n=0~39;选择的子帧固定激励被记作ef(n),n=0~39。

④与活动帧一样,伪白噪声ex(n)是由跟活动话音同样类型的激励ex1(n)和高斯白噪声激励ex2(n)相加而产生的。G.729激励ex1(n)是由一个小增益的自适应激励和ACELP固定激励组成的,这改善了活动和非活动话音帧之间的跳变。高斯白噪声ex2(n)的引入是为了产生一个更接近于白噪声的信号。在非活动话音期间,因为编码端和解码端需要保持同步,所以激励在两边都要产生。

[!--empirenews.page--]

即:

1.3 G.729A+B比特流结构

G.729A的比特流结构如表1所列。

由于G.729B引入了VAD和CNG,与G.729A相比码流结构增加了SID(Silence Insettion Descrtptor),其中带有静音的信息。SID的码流结构如表2所列。

2 基于DSP的系统实现方案

2.1 硬件平台设计

TMS320VC5510是一款16位定点数字信号处理器,具有较高的操作灵活性和运行速度;同等条件下其内核的功耗仅为54系列DSP的1/3,而且具有更高的代码执行效率,其指令也与54系列的相互兼容,可以很方便地进行代码的移植,它的最高数字信号的处理能力为200 MIPS,能够很好地满足本平台对运算的要求。本系统基于多片DSP处理器,实现多路话音的G.729(以下将G.729A+B简称为G.729)编解码,同时DSP通过HPI接口与上位机进行通信,并接受上位机的控制,DSP的PCM数据由FPGA进行协调,比特流数据的收发可以由FPGA进行协调或由HPI接口进行操作。整个系统的硬件平台如图3所示。

本设计首先将上位机来的IP包进行解包,再进行G.729编码到PCM编码的转换,得到的PCM信号送往FPGA内的TDM交换矩阵做时隙交换或实现会议功能,再将需要输出的PCM信号作编码转换,封装成IP包后发往上位机。

[!--empirenews.page--]

2.2 系统软件设计

本设计中McBSP0口接收数据处理,主要进行话音编码,并将编码比特流从HPI接口送出,HPI接口接收数据处理,主要进行话音解码,并将解码后的PCM数据从McBSP0口送出。软件系统为了保证McBSP0和HPI接口接收数据的正常处理,还需实现一些辅助功能模块包括:系统初始化模块、支持系统在线配置的模块以及系统收发数据的同步检测模块。系统软件流程如图4所示。

2.2.1 编码过程

G.729编码器的流程如图5所示。首先,编码器会初始化,主要是初始化各缓冲区;然后编码器对输入的原始语音信号进行预处理,包括高通滤波和幅度减半。其中,高通滤波的截止频率为140 Hz,它是一个二阶的零极点滤波器,目的是要去除输入信号中的低频十扰。对输入信号进行预处理以后,编码器开始编码,这是通过调用汇编函数Coder_ld8a实现的;编码产生的参数使用函数prm2bits转化为比特流,送到信道里传输。

2.2.2 解码过程

G.729解码器流程如图6所示。与编码器类似,解码器首先要进行初始化,特别是初始化缓冲区;接着解码器从输入码流中提取参数;由于码流在信道的传输过程中可能发牛错误,所以从码流中提取得到参数后应该进行奇偶校验,以确定参数是正确的;通过了奇偶校验后,解码器正式开始解码,这是通过调用汇编函数Decod_ld8a实现的;解码重建语音信号后,还应该进行后滤波和后处理。其中,后处理起高通滤波和幅度翻倍的作用。

3 系统编解码算法性能测试

编解码算法性能包括两方面:运算量和存储要求。要达到高性能,不仅要运算量低,而且存储器使用也要少。表3和表4分别列出了编解码器的运算量和存储器使用情况。

[!--empirenews.page--]

为了验证编解码器是否正确,采用了如下测试程序进行验证:

结语

本设计中基于TMS320VC5510的语音编解码系统整体运算量为45 MIPS,传输速率8 kb/s,压缩比为16/1,合成语音的质量主观评价分MOS分达4.0。此系统工作稳定可靠,有较高的实用价值。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭