当前位置: 首页 > 专利查询>中山大学专利>正文

一种基于GPU的运动估计方法技术

技术编号:9977379 阅读:285 留言:0更新日期:2014-04-28 19:59
本发明专利技术公开了一种基于GPU的运动估计方法,具体流程为:CPU将图像数据送入GPU,然后计算N×N块的SAD,合成2N×2N的CU块中其他模式PU块的SAD值,求得各PU块的最佳SAD,GPU将图像的各PU块的最佳SAD传回CPU,CPU根据CU的尺寸更新当前N×N?PU块的SAD信息,将得到帧间预测最佳划分模式以及最小cost和运动矢量。通过本发明专利技术方法能够加速运动估计运算效率,提高编码速度。

【技术实现步骤摘要】
一种基于GPU的运动估计方法
本专利技术涉及视频编码
,尤其涉及一种基于GPU的运动估计方法。
技术介绍
随着人们对视频压缩标准的要求不断提高,从2010年开始,ISO/IEC与ITU-T开始联合在全球征集下一代视频压缩标准的提案,该视频标准命名为HEVC(HighefficiencyVideoCoding),同时建立了其测试模型HM。新标准已于2013年发布,它的目标是在相同视频质量(PSNR)下码率降低到H.264的40%-50%左右,这将使高清视频传输对带宽的要求进一步降低。不过HEVC的优越性能均是以增加编解码的复杂度的代价获得的,与H.264相比,HEVC的复杂度达到前者的3倍以上。因此为了实时应用,如何加速视频编码器成为问题的关键。在现阶段,为了加速视频编解码器,人们采用了CPU的SSE等多媒体指令集、FPGA硬件电路以及DSP芯片等方法进行编解码器加速的研究,获得了相对理想的加速效果。不过这些方法都增加了PC机的成本,同时其性能提升也有很大的瓶颈。1999年NVIDIA公司发布了第一颗GPU的图形处理芯片Geforce256,其强大的浮点计算能力以及优异的并行计算能力从发布开始就受到了业界的关注。同时随着GPU的不断发展,GPU的应用已不仅仅局限于图形显示,它在通用计算方面也展现了极大的潜力。在国内外,已经有些公司以及研究机构开始将GPU应用于其专业领域,如航空、生物、气象、金融等等,并且都取得了很好的效果。特别是对于一些数据量大、平行性比较好的项目取得了高达几十倍的加速,应GPU加速将大大缩短项目的研发周期,同时也将带来相当大的经济效益。当前,不论是H.264/AVC还是AVS都将GPU并行作为编解码加速的一个研究热点,并且都取得了良好的成果。很多基于CUDA的视频处理软件,如Badaboom和Mediacoder的应用也有效证明了GPU并行的可行性。
技术实现思路
本专利技术的目的是为了克服现有技术的缺陷,提供一种基于GPU的运动估计方法,该方法通过借助于CUDA与GPU的结合来选择最佳的SAD,从而提高加速运动估计运算效率,具体流程为:CPU将图像数据送入GPU,然后计算N×N块的SAD,合成2N×2N的CU块中其他模式PU块的SAD值,求得各PU块的最佳SAD,GPU将图像的各PU块的最佳SAD传回CPU,CPU根据CU的尺寸更新当前N×NPU块的SAD信息,将得到帧间预测最佳划分模式以及最小cost和运动矢量。优选地,该方法的递归方向与HM中的递归方向相反,这是因为只有求得当前CU更深一层的CU块的运动估计信息时才能够更新当前N×NPU块的SAD信息。优选地,计算N×N块的SAD时,将当前帧数据以及参考帧传入到设备端,即GPU中,并且使用纹理内存进行绑定。优选地,该方法使用了归约合并的方法分别对各PU块的搜索范围窗口中的SAD进行比较,得到每种块模式下最小SAD的运动矢量,即该块模式下的最佳运动矢量。优选地,当CU块已经是最小深度的CU块时不需要对N×NPU的SAD进行更新。优选地,CU块尺寸越大,网格中的块个数也就越少,加速比显著增加。本专利技术技术方案带来的有益效果:本专利技术为了加速运动估计运算效率,提出了基于GPU的运动估计方法,通过借助于CUDA与GPU的结合来选择最佳的SAD,从而加速运动估计运算效率,提高编码效率。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。图1是本专利技术的实施例中CU块中PU块的合成树图;图2是本专利技术的实施例中SAD搜索范围内的归约合并图;图3是本专利技术的实施例中最佳PU划分方式比较图;图4是本专利技术的基于GPU的运动估计方法流程图;图5是本专利技术的CU块运动估计CPU算法与GPU算法加速比比较图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。运动估计即搜索窗边内寻找与当前块最匹配的数据块,这样就存在着如何判断两个块是否匹配的问题,所以必须定义一个匹配准则,常用的匹配方法有最小均方差(MSE)、最小平均绝对值误差(MAD)、阈值差别计数(NTD)以及常用的绝对差值和(SAD)。得到整个搜索范围的SAD后,必须对所有的SAD进行选择,得到一个最佳的SAD。本专利技术提出了一种基于GPU的运动估计方法,该方法通过借助于CUDA与GPU的结合来选择最佳的SAD,从而加速运动估计运算效率,提高编码效率。由于HEVC编码采用递归的方法进行编码,所以编码器也将采用递归的方法对64×64到8×8的CU块进行运动估计。不过需要注意的是,该算法的递归方向应该与HM中的递归方向相反,这是因为只有求得当前CU更深一层的CU块的运动估计信息时才能够更新当前N×NPU块的SAD信息。下面将以8×8的CU块为例说明算法的流程。Step1先计算图像中所有4×4块的SAD值;将当前帧数据以及参考帧传入到设备端,即GPU中,并且使用纹理内存进行绑定。调用Kerne_SAD函数计算4×4块的SAD值,其中kernel_SAD的网格(Grid)维度为dim3(Width/N,Height/N,1),网格中block的线程维度为dim3(2×Search_Range,2×Search_Range,1),其中Search_Range为运动估计的搜索范围,Width和Height分别为图像的宽度与高度。Step2合成其它PU块的SAD值;在CU块的尺寸大小为8时,此时为最小编码树深度,PU块的模式有4×4、4×8、8×4和8×8。在上面一步中求得了所有4×4块的SAD,其它块的合并过程如图1所示。两个横向的4×4的SAD值合并成一个8×4的SAD,两个纵向的4×4的SAD值合并成一个4×8的SAD,最后将两个4×8的SAD值合并成一个8×8的SAD值。Step3求得各模式PU块的搜索范围内的最小SAD值;在算法中,本文使用了归约合并的方法分别对4×4、4×8、8×4以及8×8四种PU块的搜索范围窗口中的SAD进行比较,得到每种块模式下最小SAD的运动矢量,即该块模式下的最佳MV。下面将对该过程进行说明,假设搜索范围为8,则搜索点的数目达到了256,其归约合并过程如图2所示。先对256个SAD对半划分,得到128组,进行两两比较得到128个相对最小的SAD。依次类推,再将128进行对半分为64组,比较得到32个最小的SAD,总共经过7次归约合并就可得到该搜索范围内的最佳运动矢量。Step4CPU处理过程;CPU的处理过程包括更新当前N×NPU块的最佳SAD信息以及选择帧间预测最佳划分模式,同时得到最小cost和相应的运动矢量。对于8×8CU运动估计,求出4种PU块的搜索范围内的最小SAD以及最佳运动矢量以后,因为该CU块已经是最小深度的CU块了,所以不需要对N×NP本文档来自技高网
...
一种基于GPU的运动估计方法

【技术保护点】

【技术特征摘要】
1.一种基于GPU的运动估计方法,其特征在于,该方法通过借助于CUDA与GPU的结合来选择最佳的SAD,从而提高加速运动估计运算效率,具体流程为:首先,CPU将图像数据送入GPU,计算N×N块的SAD,利用两个横向的N×N的SAD值合并成一个2N×N的SAD,利用两个纵向的N×N的SAD值合并成一个N×2N的SAD,将两个N×2N的SAD值合并成一个2N×2N的SAD;然后,使用归约合并的方法分别对N×N、N×2N、2N×N以及2N×2N四种PU块的搜索范围窗口中的SAD进行比较,得到每种块模式下最小SAD的运动矢量,即该块模式下的最佳MV;最...

【专利技术属性】
技术研发人员:梁凡刘海军
申请(专利权)人:中山大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1