论文部分内容阅读
随着信息技术的快速发展,人们对信息的需求也随之增长,而视频信息因其直观的特点而被广泛采用,目前已经有多种针对视频压缩的国际标准,其中最新的视频标准是H.264/AVC视频压缩标准,该标准因其具有较高的压缩率而得到广泛的应用。然而,H.264/AVC视频标准的编码复杂度也是目前最高的,其编码结构除了继承传统的编码模块,还增加了很多新的模块,从而大幅度增加了运算量。因此,H.264/AVC研究的重点是如何加速编码的速度。以往的视频标准在运动估计时只采用1-2种大小的宏块,而H.264/AVC采用多种尺寸的宏块,从而使运动估计在其编码中所占运算量的比例进一步增加。因此,需要采用有效的结构或方法实现运动估计算法,从而加快编码速率。随着GPU(Graphic Processing Unit,图形处理器)的快速发展,越来越多的可并行处理的密集型运算被移植到GPU上。本文利用该平台,实现运动估计的并行处理,其创新点包括以下几个方面:(1)给出运动估计全搜索的并行实现算法。根据GPU多线程构架的特点,将每个宏块的运动估计运算放在256个线程中运行,可得到1024个8×8宏块的SAD值,并将这些SAD值组合成16×16等宏块的SAD值,最后进行并行搜索,得到最小SAD值。实验结果表明基于GPU的并行运动估计能较有效地提高编码速度。(2)给出了整数DCT(离散余弦变换)变换的并行实现算法。该算法仍利用GPU的多线程特点,对残差矩阵进行两次并行矩阵乘,而并行矩阵乘的关键是利用4×4个线程计算所对应的变换系数,其中只采用加法、减法和移位操作。实验表明该并行整数DCT变换算法相比基于CPU的整数DCT变换算法较有优势。为了进一步验证基于GPU进行并行编码的性能,本文搭建了基于X264开源编码器的实验平台,首先在X264编码器中配置可以编译CUDA代码的运行环境,然后将修改X264中的串行数据处理模式改为适合GPU处理的并行处理模式,再利用本文提出的运动估计并行算法改写X264中的相关代码,最后利用生成的执行文件对视频序列进行试验。试验结果表明利用GPU进行并行编码的运算速度是CPU上的1.5倍,且图像质量有所提高。综上所述:通过对H.264/AVC视频标准和GPU并行处理的深入分析,为提高编码的速度,提出了基于CUDA平台的并行运动估计算法和并行整数DCT变换算法,解决了H.264/AVC视频标准在编码高分辨率图像时的部分耗时问题。实验表明本文提出的并行运动估计算法和并行整数变换算法达到预期设计要求,所构建的H.264系统在一定程度上可实现视频的实时编码。