基于GPGPU的SILK语音Codec优化

基于GPGPU的SILK语音Codec优化

论文摘要

随着互联网产业的快速发展和计算机硬件性能的不断提升,基于GPU(图形处理单元)的通用加速计算成为业内开始研究的一大热点。最近推出的OpenCL(开放式计算语言)语言标准,可以在CPU、GPU和其它处理器上进行通用目的的并行编程,使软件开发者可以更加方便高效的使用这些异构处理平台。这也使得降低CPU计算负载,提高程序的执行效率成为可能,尤其是对于实时应用显得更加重要。尽管GPU通用加速计算多是以处理图形图像为主,但对于其他诸如语音编解码等应用则还未有广泛的研究。这是因为在音频处理算法上牵涉到的计算量并不足够大,而GPU所涉及的运算往往是高密度计算,例如,稠密线性代数等。本论文的主要目的是探讨在GPU上对语音信号进行处理,通过GPU与CPU的协同计算,将运算从CPU上转移至GPU上,从而降低CPU的计算负载,并提高整个编码器的编码效率。这个研究将基于目前现有的开源代码库SILK编解码器展开,SILK编解码器是Skype公司向硬件制造商和第三方开发人员提供免版税认证(RF)的宽带音频编码器。该编码器不仅可以提供实时的伸缩性以适应网络质量的下降,而且可以在比以前网络占用量小50%的情况下提供超宽带的音频信号,即使丢包水平达到10%依然可以稳定维持24KHz采样的通话音质。因此,能够在低带宽的环境中提供优质的通话质量,渐渐成为该编码器越来越被广泛关注和应用的重要原因。该论文通过对数据压缩部分的线性预测系数的处理过程(包括:LPC系数求解,LPC转化为LSF以及LSF的量化等几个方面)进行OpenCL版本的代码实现,对实验结果进行性能评估,并对实际当中CPU和GPU之间的负载平衡策略进行详细讨论。通过一系列相关的性能测试和数据分析,最终选择出一个比较合理的优化方案,从而证明:在CPU+GPU的异构架构下,尽管OpenCL版本的测试程序存在一定缺陷,但在程序整体的运行过程中,仍然表现出,GPGPU通用加速计算使SILK编解码器编码效率有所提高。本论文中提出的优化措施可能并不常见,但希望随着CPU与GPU的集成化程度的提高而变得越来越具有可行性,尤其是在嵌入式设备上。

论文目录

  • 摘要
  • ABSTRACT
  • 第一章 绪论
  • 1.1 课题背景和研究意义
  • 1.2 国内外研究现状
  • 1.2.1 语音编解码技术的发展
  • 1.2.2 GPGPU 技术的发展
  • 1.3 论文主要工作及章节安排
  • 第二章 通用加速计算与SILK 编解码器原理
  • 2.1 GPU 并行计算
  • 2.1.1 并行计算概述
  • 2.1.2 GPGPU 计算
  • 2.1.2.1 着色程序
  • 2.1.2.2 与着色无关的可扩展性编程
  • 2.2 OpenCL
  • 2.2.1 OpenCL 标准
  • 2.2.2 嵌入式设备上的OpenCL
  • 2.2.3 OpenCL 语言模型
  • 2.2.3.1 平台模型
  • 2.2.3.2 执行模型
  • 2.2.3.3 内存模型
  • 2.3 OpenCL 编程步骤
  • 2.4 负载平衡
  • 2.4.1 负载平衡的历史
  • 2.4.2 传统的负载平衡技术
  • 2.4.3 GPU 上的负载平衡
  • 2.4.4 自动可调的GPU 算法
  • 2.5 SILK 编解码器
  • 2.5.1 SILK 编解码器的控制参数
  • 2.5.2 SILK 编码器
  • 2.5.3 SILK 解码器
  • 2.6 本章小结
  • 第三章 基于OpenCL 的SILK 编码器中LPC 处理的实现
  • 3.1 LPC 处理的OpenCL 版本
  • 3.1.1 实现框架
  • 3.1.2 测试框架
  • 3.1.3 实现流程
  • 3.2 基于OpenCL 的LPC 处理的优化
  • 3.2.1 帧的并行化
  • 3.2.2 独立计算部分
  • 3.2.3 增加计算负载
  • 3.2.3.1 增加输入帧的长度
  • 3.2.3.2 并行处理多个文件块
  • 3.2.4 协处理功能实现
  • 3.2.4.1 CPU 上的OpenCL
  • 3.2.4.2 LPC 处理的OpenCL 版本的协处理实现
  • 3.2.5 任务并行
  • 3.2.6 内核函数的优化
  • 3.2.6.1 数据传输优化
  • 3.2.6.2 内存访问优化
  • 3.2.6.3 控制流优化
  • 3.2.6.4 使用OpenCL 的内建数学函数
  • 3.2.7 OpenCL 内核函数矩阵运算的优化过程
  • 3.3 OpenCL 版本的内核函数功能
  • 3.4 本章小结
  • 第四章 性能测试与评估
  • 4.1 测试平台与开发环境
  • 4.2 GPGPU 平台时延
  • 4.3 测试数据
  • 4.4 结果总结
  • 4.5 本章小结
  • 第五章 总结与展望
  • 5.1 总结
  • 5.2 展望
  • 5.2.1 进一步优化OpenCL 的执行方案
  • 5.2.2 大规模并行音频处理
  • 5.2.3 使代码能够更好地集成于库中
  • 5.2.4 将SILK 其他部分的代码用OpenCL 实现
  • 5.2.5 在嵌入式设备上运行
  • 5.3 结束语
  • 致谢
  • 参考文献
  • 相关论文文献

    标签:;  ;  ;  ;  

    基于GPGPU的SILK语音Codec优化
    下载Doc文档

    猜你喜欢