论文部分内容阅读
近年来,GPU(Graphic Processing Unit)并行加速技术成为解决高复杂度计算问题的重要手段,特别是2007年NVIDIA公司的CUDA(Compute Unified Device Architecture)平台推出后,对多个领域的复杂计算问题取得了明显的加速效果。与多核CPU相比,GPU在指令集、缓存机制以及控制逻辑上相对简单,更适合细粒度的大规模并行处理。另一方面,随着高清电视等应用的普及,视频处理与压缩面临着新的高计算复杂度等问题,利用GPU加速这些计算成为实现实时视频处理与压缩的重要手段。针对GPU体系结构特点,研究典型视频处理与压缩算法的并行化方法,具有较高的应用价值。
本文针对图像插值和运动估计两种典型算法,研究了GPU加速所面临的数据依赖性、并行粒度选取、GPU内存数据组织、CPU与GPU间的带宽瓶颈等问题。主要工作包括以下两个方面:
(1)提出和实现了基于GPU的Tanner图图像插值的快速与并行算法。基于Tanner图的算法是一种高性能的图像插值算法,但存在计算复杂度高、难以实现高清实时处理的问题。本文通过挖掘算法的冗余计算,并结合GPU并行架构的特点,实现了图像块和像素两级并行处理。同时,在Tanner图的迭代过程中引入双缓冲机制,从而避免了两次迭代间的重复数据拷贝。实验表明,基于GPU的并行算法取得了较高的加速比,同时保持了算法的原有性能。
(2)针对混合编码框架中的运动估计模块,实现了基于GPU的并行算法。运动估计一直是混合编码框架中的计算“热点”(hotspot),由于存在宏块间的运动向量预测依赖,给并行计算带来一定困难。本文在宏块级和SAD级实现了并行处理,同时利用时间方向的运动向量预测降低相邻宏块间的计算依赖,进一步提高了算法的并行度。在GPU平台上的实验表明该并行算法对全搜索运动估计具有显著的加速效果。
本文针对图像插值和运动估计两种典型算法提出的GPU并行实现方法,对于其它类似算法的并行化也具有借鉴意义。