论文部分内容阅读
近年来通信技术、存储技术及处理器技术发展迅速,通信方式已发展成为视频音频通信方式,人们对图像质量的要求也日益升高。H.264视频编解码标准是新一代视频压缩编码国际标准,采用了包括帧内、帧间预测、整形变换和量化、熵编码和环路滤波等一系列先进技术,保证了预测的准确性,提高了解码图像质量,但同时也增加了时间复杂度。GPU和多核CPU的出现意味着主流处理器芯片已进入了并行时代,且其并行性还会不断扩展。这就需要开发出可透明地扩展并行性的应用软件。CUDA就是在这样的背景下应运而生的,CUDA是一种并行编程模型和软件环境,专用于解决可表示为数据并行计算的问题。因此如何利用CUDA多线程来降低H.264的时间复杂度,提高编码效率是本文的研究重点。本文以H.264视频编码标准的JM16.0模型中采用的环路滤波算法为研究对象,研究了边缘滤波强度的计算方法,分析了先垂直后水平的滤波顺序,发现环路滤波算法复杂且有规律的计算特性符合CUDA应用条件,在此基础上本文提出将滤波强度计算和亮度滤波两个步骤做了并行设计和实现,设计重点在于线程完成工作的定义和如何根据算法组织线程以更符合实际图像的格式需求,同时也能发挥CUDA的并行优势。帧间预测是H.264视频编解码的关键技术之一,本文在研究了JM86编程模型的帧间预测算法所采用的全局搜索法、分数像素搜索、快速搜索法等运动估计算法后,分析了各种算法匹配结果的优劣和时间复杂度,因全局搜索的计算量最大且规律性较强,所以本文提出了在CUDA上实现全局搜索的并行,降低了算法的时间复杂度。设计的重点是最大限度的实现搜索过程的并行,把一帧内的宏块SAD计算同时移植到GPU的CUDA平台上并行计算,从而降低CPU负荷,让CPU去处理其他响应。实现并行算法的环境选择Linux操作系统和GTX260+的显卡,以得到精确的编码时间和较高的并行效果。本文通过将以上两个并行设计的算法在此环境中实现,并且以不同大小的测试用例进行测试,测试结果表明,本文提出的并行处理算法优化了环路滤波和帧间预测两种算法。