论文部分内容阅读
在带宽资源日渐珍贵的情况下,低速率语音编码技术由于其占用较少的频带资源成为语音编码领域一个重要的研究方向。其中混合激励线性预测编码(Mixed Excitation Linear Prediction,MELP)算法凭借其出色的性能在众多低速率编码算法中脱颖而出,被用作美国联邦政府在2.4Kbps速率下的标准算法,在低速率语音编码领域中占有重要的地位。当将编码算法应用于实际时,实现平台的合适与否,对其能否高效应用有着重要的影响。目前,多数研究者会选择数字信号处理器(Digital Signal Processor,DSP)以及现场可编程门阵列(Field Programmable Gate Array,FPGA)作为低速率语音编码技术实现的平台。其中,FPGA由于其灵活性以及丰富的内嵌资源在语音编码的研究中扮演着越来越重要的角色。众多FPGA开发板中,Xilinx公司推出的ZedBoard以其较低的功耗、内嵌软核以及完备的外设越来越受到研究者的青睐。本文的研究目标就是在ZedBoard开发板上高效的实现一个低速率语音编码系统。由于低速率语音编码算法运算复杂度较高,往往不容易满足实时性。而FPGA本身的并行计算可以节约大量的时间,在资源的分配上也具有极大的灵活性,使得它很适合进行复杂算法的实现。在众多低速率语音编码算法中,本文选择性能较好、复杂度较高的MELP算法作为研究对象。在满足算法实时性要求的基础上降低资源的占用率,用较少的资源去完成整个MELP编码系统。本文首先对MELP编码算法的原理、流程进行了深入的学习,并对该算法进行简单的模块划分。接下来对FPGA以及ZedBoard的开发流程、设计思想和优化方法进行了研究,结合FPGA的开发特点,有针对性的对MELP编码算法进行算法优化和更加细致的模块划分。紧接着使用Vivado高层次综合工具(High-Level Synthesis,HLS)自底向上依次实现各个模块。在实现的过程中,有针对性的修改算法,在不影响最终结果的前提下减少运算量,并借助HLS工具进行适当的并行计算对算法进行加速,最终在时间和资源消耗上达到一个平衡点。在将各个模块进行顶层连接时,提出了相似逻辑与最小计算单元复用两种方案,通过尽可能的复用底层运算单元,再次降低对硬件资源的占用,提高运算单元的使用率。结合硬件描述语言(Hardware Description Language,HDL)实现的底层数模转换芯片的驱动,实现了一个资源占用率低,速度快的MELP编码系统。本文最终在ZedBoard上高效地实现了低速率语音编码算法中的MELP编码器算法。MELP算法中的线性预测计算单元、矢量量化单元以及滤波器等,可以移植到其它的低速率语音编码算法中,具有一定的通用性。相比传统的DSP、FPGA+软核实现手段,本文通过HLS方法实现的编码器,由于更加接近底层而具有更高的资源利用率,消耗的资源更少。同时本文提出的模块间优化方法有一定的通用性,可以应用在类似的高层次综合设计中。