论文部分内容阅读
随着互联网产业的快速发展和计算机硬件性能的不断提升,基于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的集成化程度的提高而变得越来越具有可行性,尤其是在嵌入式设备上。