基于GPU的运动估计算法优化的探究
2018-04-02
(山东师范大学 山东 济南 250300)
视频在人们的日常生活中扮演着越来越重要的娱乐角色。同时人们对视频清晰度的要求也越来越高,那么视频的存储容量也变的越来越大。如今,移动设备的广泛使用,视频的实时性传输的要求也在提高,现有的传输技术还满足不了大容量视频实时性传输的要求。于是对视频的压缩变得尤为重要。
一、引言
H.264视频编码标准比以前的标准提出了更多的技术,编码效率大为提升。提出宏块的划分概念,使得在运动估计搜索之后能够的到更精确的运动矢量,提高帧间预测的精度。虽然这种方法能够更加精确的预测运动矢量,但相应的每个子块的计算复杂度也大为增加,如果我们利用串行的方法解决这个问题将耗费很长的时间,尤其对清晰度比较高的视频。即使在现有的CPU的技术之上,计算所耗费的时间仍然是巨大的不能够满足视频实时性压缩编码的要求。GPU(Graphics Processing Unit)图形处理器,最初的目的是用来处理CPU送来的图形元素,正确显示在图形输出设备上。主要承担输出显示图形的任务,且对于从事专业图形设计以及处理的人员来说性能好、效率高的显卡就显得尤为重要。近年来,在实际应用中程序的并行性带来的便利及高效受到大家的追捧、青睐。而且随着GPU的发展GPU强大的通用计算计算能力越来越受到人们的注意。尤其,英伟达公司开发的计算统一设备架构(CUDA)在GPU上的使用,充分利用了并行计算的思想,不仅在图像处理方面展现了强大的性能,在通用计算方面也取得了很大进展。如果利用GPU去实现运动估计将会带来显著的效益,而且很多学者也把精力放在了这一方面而且也都在此方面做出了进一步的创新。
二、运动估计
(一)搜索算法和运动估计准则的分类
为了提高视频编码效率大多数学者在搜索算法方面做的工作是比较多的。根据搜索点数可以将其分为两大类,一类是全搜索,另一类是快速搜索。全搜索又分为无遗漏法(Exhaustive Search Algorithm)、继承排除法(SEA)、多层继承排除法(MSEA)等,快速搜索又分为钻石搜索、三步搜索、新三步搜索、四步搜索、新四步搜索、矢量场自适应法(MVFAST)、非对称十字型多层次六边形格点法(UMHexagonS)等等。根据搜索方式又可分为逐行扫描和隔行扫描,光栅搜索,螺旋搜索,两点搜索等。全搜索是要搜索所有的像素点因而工作量非常大,通常只是把它作为一种比较。在的运动估计的研究中,更多的学者更喜欢快速搜索,不仅可以提高压缩性能而且可以实际应用。
运动估计提取图像信息运动过程的方式有三种:基于像素、基于像素区域、基于像素块。基于像素块的运动表示方法同时考虑了运动估计的精度和复杂度,它是基于像素的运动表示和基于区域的运动表示的一个折中,所以基于块的运动表示法是目前最常采用的方法。
(二)运动估计的研究现状
运动估计在整个视频压缩过程中的耗时是最长的一部分,因此成为视频压缩中最重要的一部分,对运动估计的优化也显得格外的重要。大量的研究者已经对此部分从不同的方面做出了非常大的贡献。
1.从硬件方面的创新
也有一部分工作者致力于硬件方面的改进使其达到更高的并行性以期望达到更高的视频压缩码率。比如,Huong Ho等人提出了多帧分级运动估计(MFHME)电路的架构设计和FPGA实现,为了实现低计算复杂度,基于分层结构设计电路并且使用预先计算的查找表来提供平方像素差异。实现结果表明,该电路能够在55MHz的时钟频率下支持从30帧/秒到60帧/秒的高清视频(1080P格式)的帧速率上变换。Abdulkadir Akin等人提出了降低块匹配(BM)ME硬件功耗的比较预测(CP)技术。CP技术降低了BM ME硬件执行的绝对差分操作的功耗。CP技术可以很容易地在所有BM ME硬件中使用。在XC2VP30-7 FPGA上,该硬件的平均动态功耗降低了2.2%,峰值信噪比(PSNR)降低了9.3%,PSNR损失降低了0.04%。
2.CPU和GPU的协同并行
合理的在GPU和CPU上合理地分配并行任务,使用快速搜索算法加快视频编码速度。王等人提出了基于多核CPU和多核GPU平台的HEVC编码器并行加速可变块尺寸运动估计的策略,将运动估计任务合理的分配到CPU和GPU上又采用了跨波阵面用于CPU上的线程和GPU上的线程之间的有效同步。虽然压缩性能有所下降,但是视频编码效率大为提升。萧等人也提出了CPU和GPU共同加速编码的思想。他们首先在GPU上实现一个快速算法,此算法可以避免由于缺少运动矢量预测器而导致的编码效率损失。其次,在CPU上提出一种快速算法充分利用GPU结果而没有任何编码效率损失。
3.基于自适应搜索范围的快速运动估计算法
沈燕飞等人提出了一种自适应的快速全搜索运动估计算法。算法是在连续消除算法和多阶连续消除算法的基础上实现的。王泉等人提出了一种使用具有方向偏向性搜索模板和基于预测模式自适应选择运动估计方案的EPZS(enhanced predictive zonal search)改进算法。其中利用了H.264编码标准中的多参考帧、多预测模式属性。Sangmin Kim等人也提出了自适应搜索范围决策加速运动估计的思想,其中又结合了Lee等人的所采用的分层绝对差异和方法,使得在GPU中的并行运动估计计算量减少,加快了运动估计。
4.减少并行计算量
Lee等人提出了一种高度并行可变块大小的全局搜索运动估计算法,通过根据数据量和数据依赖性的同时采用并行减少的方法增加线程的利用率来加快运动估计。Sangmin Kim等人在自适应搜索方法的基础上也采用了对GPU中的并行运动估计计算量减少的方法,提高视频编码效率。
此外还有的研究者在数据的重用、整数像素搜索和分数像素搜索、优化内存以及对寄存器的合理使用、和对某一搜索算法改进等多方面做出了大量的工作。
三、各种方法的比较
以上各种方法的结果是没有可比较性的。而我们主要比较的是实现环境,方法的简单、复杂及优劣,研究方法是适应于学术的研究还是适应生活实际中的应用。虽然对于每一种运动估计方法都不一样,但每一种方法的实现又不是孤立存在的,每种方法里也都包含着其他方法所使用的一些技术或者某种方法。这对我们研究的启发就是在以后的研究当中可以在别人的研究结果基础上做出进一步的优化。
四、结论
通过对以前研究者在运动估计的优化研究方面所使用的方法的简单归类和整理,可以看出他们使用的方法不同,即使方法一样但不同的角度去优化得出的结果也不同。给我们的启示就是在对运动估计的研究中有多种方法可以使用,每种方法都有自己的特点,要合理的选择适合自己的某种方法进行研究。本篇文章的目的就是为了方便自己学习,同时也希望能够帮助那些刚接触运动估计的研究者。最后自己给自己的建议就是要理解运动估计搜索算法,掌握CDDA的使用。为下一步的学习做好基础。
[1]沈燕飞,黄晁,李锦涛,严权锋.“一种自适应的快速全搜索运动估计算法”.中国图象图形学报,V01.8(A),spec.2003.
[2]王泉,程嘉利.“一种面向H.264/AVC的运动估计算法”中国图象图形学报,V01.13,No.6 2008.