论文部分内容阅读
在现今流行的视频压缩标准中,H.264/AVC因其优秀的编码压缩比和高图像质量受到了各界的广泛关注。但是,H.264的高计算复杂度也使其在高清上的应用受阻,现有的基于纯CPU的串行编码器无法实时处理高清码流,而ASIC的编码器灵活性较差,因此H.264编码效率已经成为其广泛应用的主要瓶颈。针对在纯CPU平台上H.264编码过程极其耗时这一问题,本文从传统的H.264编码框架出发,逐一分析在编码过程中存在并行化可能性的模块,提出了基于GPU的并行编码器模型PEM-BCUDA。经前期分析,传统H.264编码过程中的运动估计与运动补偿、帧内预测、变换和量化、环路滤波等模块在串行编码框架中计算量占比较大且包含并行因子,因此本文对各个并行处理单元进行单独分析,提炼出模块中的并行模型并将其映射到CUDA平台,评测各单元在新平台上的加速效果。随后文章展开模块综合分析,判断出其间的数据相关性和控制相关性,找出系统中阻碍编码加速的瓶颈,修改模块内部结构,使得整个系统更加贴合CUDA平台,从而达到最大化加速编码过程的目的。本文最后对上述提出的并行编码器模块及系统进行了详细测试,选用Nvidia公司的GT240和GTX260+作为硬件支持,以不同分辨率的YUV图像序列作为视频输入时,单个模块的相对加速比都很明显,其中环路滤波的加速比更是达到了60倍以上。考虑到系统在CPU和GPU之间存在数据交互并且PCI-E总线的传输能力相对GPU内部处理能力较弱这些特点,在进行完模块测试之后又进行了系统集成测试。实验数据表明,当各模块被集成到并行编码器模型PEM-BCUDA中时,加速的效果明显降低,最后在同等环境下加速比只有2.5左右,并且当输入为CIF或QCIF等低分辨率图像时加速比甚至小于1,这说明GPU带来的加速效果被PCI-E上的数据往返完全抵消,PCI-E的数据传输能力成为整个系统的瓶颈,因此如何克服这个瓶颈所带来的限制是下一步的研究重点。