论文部分内容阅读
视频帧率上变换算法(Frame Rate Up-conversion Algotirhm)作为一种常见的图像后处理算法,旨在通过技术手段将低帧率的视频转换为高帧率的视频,有着广阔的应用的场景。3DRS算法是一种基于块的帧率上变换算法,利用了相邻块之间的时间和空间相关性,在降低运算量的同时提升了效果。但是,基于块的算法在运动物体的边界会出现模糊,并且内插时存在块效应。为此,不少研究者提出了基于光流法的帧率上变换算法。但是光流法在改善效果的同时,也带来了计算复杂度的提升。目前,GPU通用并行计算平台的兴起,为加速图像处理算法提供了一种全新的并行化思路。本文基于CUDA并行计算架构,提出了一种高度并行化的帧率上变换算法,并且研究了该算法在CUDA上的并行实现和优化技术。首先,本文提出了适合在GPU平台实现的帧率上变换算法,该算法主要可以分为运动估计、运动矢量后处理和运动补偿插帧三个部分。运动估计部分借鉴了Patch Match的并行传播模式,并针对帧率上变换算法做出了相应的改进,同时提出了自相似块的概念来提高运动估计算法的效果。运动矢量后处理部分提出了基于前后运动矢量场的一致性和自相似块的信息来克服遮蔽问题的方法。运动补偿内插部分将前后向运动矢量场转换为双向运动矢量场进行内插。此外,针对高分辨率视频的特点提出了分层运动估计的方案,大大降低了算法在高分辨率视频上的运算量。其次,本文研究了上述算法在GPU平台上的实现和优化策略。在GPU平台上,选择了在CUDA计算架构下进行实现和优化。针对算法的各个部分,详尽阐述了线程的合理配置方式,内存的高效利用方法,以充分利用GPU提供的硬件资源。对于算法中的一些细节问题,利用了在GPU上可以高效运行的算法来实现,比如归约和奇偶排序等。在实验部分对比了本算法CUDA实现版本与CPU实现版本的运行速度,实现了接近46倍的加速比,证明了优化策略的有效性。在实验部分,将本文算法和基于块以及基于光流的算法在低分辨率视频下的内插效果进行了对比,本文算法在优于传统的基于块的算法的同时,接近基于光流法算法的内插效果。除了比较算法的内插效果,本文还比较了各个算法在高分辨率视频下的运行速度,本文算法相比光流算法速度优势明显。而本文算法的分层估计版本,相比于原算法,在处理高分辨率视频时仅损失部分效果的情况下,明显降低了运算复杂度,实现了速度和性能的最佳平衡。