基于TMS320C6455的实时语音CVSD编码

2013-08-22 01:35刘伟王旭
科技视界 2013年23期
关键词:译码差值斜率

刘伟王旭

(电子科技大学成都学院 通信系,四川 成都 611731)

0 序言

连续斜率增量调制 (Continuously Variable Slope Delta modulation)语音编码技术最早由Greefkes和Riemens于1972年提出。与固定增量编码相比,CVSD具有跟踪信号变化快慢而改变量阶的特点。擅长处理丢失和被损坏的语音采样,即使误码率达到4%,CVSD译码语音质量任然可以接受[1]。CML公司的CMX649专用芯片可以实现ADM和CVSD编码,但在灵活性和可扩展性方面软件实现更具优势。TMS320C6455是TI公司推出的一款高性能专注于通信信号处理的芯片,该芯片的处理能力能够实现CVSD编译码的实时工作。

1 CVSD工作原理

1.1 CVSD 编码原理

和固定增量调制编码DM类似CVSD编码器对输入数字语音信号的幅度变化量进行编码,与之不同的是在CVSD编码中,信号差值量阶Delta不再是常值,而是随输入信号的斜率变化而变化,连阶判断逻辑用来捕获信号的斜率变化。输入语音信号x(n)与预测信号x1(n)相减得到差值信号d(n),此差值信号经过一位量化器得到编码输出c(n),同时该差值信号作为连阶判断逻辑的当前输入进行连阶判断,其判断结果控制当前编码c(n)与当前预测信号共构建下一时刻预测信号 x1(n)。

图1 CVSD编码原理图

图中:D(n)=X(n)-X1(n),为当前输入与预测信号的差值。为CVSD编码输出。

连阶判断逻辑常以最新3次或者4次编码输出值作为判断依据,在本项目中采用3次连码判断,判断逻辑为:

1.2 CVSD 译码原理

译码过程是编码过程的逆过程,接收码字首先进行连阶逻辑判断,根据判断结果调整量化阶距delta,同时接收码字根据最新的量化阶距进行逆量化,获得差值信号d1(n),d1(n)与预测信号叠加获得当前的译码信号,经进一步的低通滤波输出译码语音信号。

图2 CVSD译码原理图

图中除最终输出信号与编码输入对应外,其余信号都加上上标,指示信道干扰对传输码字的影响。各变量的计算方式与编码环节类似,通常语音信号能量大部分分布在300~3400Hz频带范围,低通滤波器用于滤除带外信道噪声,高频量化和过载噪声等,高频噪声对语音音质的影响较大。

2 CVSD性能仿真

在CVSD仿真评估中量阶参数的选取会直接影响到语音译码的输出性能,由于于心信号可以看做单音正弦信号叠加,正弦波形在零点时变化率达到最大而在峰值时变化率最小。连码逻辑的判决结果可视为信号斜率变化快慢的参考,出现连码时,采取较大量阶以跟踪较快的信号变化,非连码时采用较小的量阶减小颗粒噪声[2]。

图3 不同量阶对CVSD编码性能

根据以上原则,选取适当的量阶参数对一段真实语音信号进行MATLAB仿真,由图中时域波形可以看出,解码后的语音信号能较好的恢复原始语音信号。

图4 语音CVSD编码仿真波形图

3 TMS320C6455软件实现及优化

3.1 CVSD 软件设计

C6000芯片内部的运算功能单元达到2组共8个,芯片的并行化程度非常高,完全由人手工编写汇编程序代码反而很难有效分配资源,发挥处理器并行处理的优势[3]。在实际项目中常采用C语言进行软件开发,其中CVSD编译码部分的处理流程如图所示。

图5 CVSD编码软件流程图

3.2 代码优化

在C6000系列芯片应用程序开发中,CCS开发环境提供了多种工具控制从代码输入,编译,优化,下载的全过程。其中Profile工具对当前代码的运行性能进行全面的评估,既可以对应用程序全局运行时间进行测试,也可以针对单个函数函数甚至函数内部的循环块LOOP进行cycle数的统计。所有的Cycle数统计结果可以直接通过Profile下的Viewer工具直接查看分析,也可以另存为.csv文件进行离线分析[4]。

表1 Profile统计结果

从表1可以看出,编译码函数在优化前后消耗的cycle数差异较大,优化后均降低到优化前的40%以下,根据系统容量的设计需要,可进一步采用内联指令进行代码级的优化。滤波函数调用TI的信号处理库函数,该函数已经由TI采用内联指令进行优化,在实际系统中只需要进行参数配置即可。

4 结束语

将一段音乐经由TMS320C6455芯片进行CVSD编码并解码播放,对比编码前后的语音质量发现,即使加入干扰噪声CVSD编码在压缩文件信息量的同时仍然获得较好语音。基于6455芯片的CVSD语音编码实现可以大大改善超短波地空电台的话音传输质量,提高了其抗误码能力和保密性能,对超短波地空通信装备的发展和现有地空通信抗予扰电台的技术改造将有着重要推动作用。S

[1]李欣,臧笛,罗程.CVSD编码/译码器在语音系统中的应用[J].电子与自动化,1999.

[2]黄富贵,骞俊,张静.CVSD的算法仿真及实现[J].桂林电子工业学院学报.2003,5(23):5-8.

[3]张旭,陈阵,吴月珠.基于 DSP 的 CVSD 语音编解码[J].微处理机,2001(4):52-54.

[4]汪安民.DSP 嵌入式系统开发典型案例[M].北京:人民邮电出版社,2007.

猜你喜欢
译码差值斜率
基于校正搜索宽度的极化码译码算法研究
差值法巧求刚体转动惯量
物理图像斜率的变化探讨
枳壳及其炮制品色差值与化学成分的相关性
求斜率型分式的取值范围
基于子孔径斜率离散采样的波前重构
从霍尔的编码译码理论看弹幕的译码
MMC-MTDC输电系统新型直流电压斜率控制策略
LDPC 码改进高速译码算法
基于区域最大值与平均值差值的动态背光调整