基于gpu并行实现的快速运动估计方法

文档序号:7840061阅读:317来源:国知局
专利名称:基于gpu并行实现的快速运动估计方法
技术领域
本发明属于通信技术领域,涉及信源编码,是一种利用GPU快速完成视频压缩编码中运动估计的方法。
背景技术
目前,主流计算机中的处理器主要是中央处理器CPU和图形处理器GPU。受游戏市场和军事视景仿真需求的牵引,GPU性能提高速度很快。最近几年中,GPU的性能每一年就可以翻倍,大大超过了 CPU遵循摩尔定律(每18 M月性能翻倍)的发展速度。为了实现更逼真的图形效果,GPU支持越来越复杂的运算,其可编程性和功能都大大扩展。传统上,GPU只负责图形渲染,而大部分的处理都交给了 CPU。但随着CPU越来越难克服因提高时钟频率后的散热问题,转而运用增加运算核心的方法来进行加速。之前,GPU作为图形渲染专用的处理器,具有高度的并行特性,GPU也从单一的图形渲染设备转化为作为通用计算的协处理器。NVIDIA公司于2007年正式发布的CUDA(Compute Unified Device Architecture, 计算统一设备架构)是第一种不需要借助图形学API就可以使用类C语言进行通用计算的开发环境和软件体系。与以往的传统GPGPU开发方式相比,CUDA有十分显著的改进。在性能、成本和开发时间上较传统的CPU解决方案有显著优势,CUDA的推出在学术界和产业界引起了热烈反响。现在,CUDA已经在很多领域获得了广泛应用,并取得了丰硕的成果。随着CUDA的成熟与推广,以及GPU实现视频压缩编码有着天然的优势,国内外研究人员开始着手研究将视频压缩中的运动估计应用于CUDA环境中。在当前的各类视频编码标准中,运动估计(Motion Estimation,ME)是去除时间冗余最基础和最有效的方法,也是各类视频编码算法所普遍采用的核心技术。运动估计性能的优劣直接决定编码效率和重构视频质量, 一般而言,运动估计越准确,则补偿的残差图像所需表示比特就越少,编码效率就越高,在相同码率下的解码视频就具有更好的图像质量;另一方面,利用软件平台在CPU上实现的视频编码系统中,运动估计模块的时间损耗占整个编码的50%以上,甚至在对背景复杂、运动剧烈的视频序列编码中占到了 80%以上。所以能否在普通PC机上实现高分辨率视频的实时编码,运动估计能否快速、高效的实现是一个关键技术问题。目前,视频编码系统中块匹配运动估计方法分为全搜索方法与快速运动估计方法。1.全搜索(Full Search, FS)算法也称穷尽搜索法,是在搜索范围内全局计算每一个候选搜索点的SAD(i,j)值,并找出最小SAD值,其最小值在搜索域中对应坐标点即为最终运动矢量,全搜索算法是块匹配运动估计中精度最高的算法,但其计算复杂度高。为此,在NVIDIA公司提出 CUDA平台后,由 Wei-Nien Chen and Hsueh-Ming撰写的《H. ^4/AVC motion estimation implementation on compute unified device architeture(CUDA)》 公开了一种利用CUDA平台并行实现全搜索运动估计方法,通过他们的最终测试结果发现 这种利用CUDA平台并行实现全搜索运动估计相比于单纯依靠CPU实现来说,其速度上大约有10倍左右的加速比。其不足之处是虽然引入了并行处理,但全搜索算法未利用运动矢量分布特性来压缩搜索域中不必要的搜索点,使其耗时仍然不适合在普通PC机上实时编码高分辨率视频序列。2.针对全搜索算法的计算复杂度高,为此研究者们提出了一系列经典的快速运动估计算法,如由T. Koga等人提出的经典的三步搜索法、最早由S. Zhu和K. K Ma提出的菱形搜索算法、由C. Zhu, X. Lin和L. P. Chan于2002年提出的六边形搜索算法、还有最终纳入 H. ^4/AVC标准的UMHexagonS算法。这些通过采用适合于运动矢量分布特性的形状与大小的模板,并在搜索过程动态调整模板的两个参数来捕获全局最小点。如果把这些算法强制移植到GPU平台上,算法搜索模板(9点正方形,菱形、六边形、非对称十字)的不规整、模板中搜索点数不满足warp倍数、不同搜索模板的动态调整等问题,不利于线程的分配和存储器的访问优化,这些技术问题阻碍了其在GPU上的高效实现;部分快速算法,特别是混合算法,在计算过程中存在大量的逻辑判断,那么根据平台的执行模型,如果需要控制单个线程的行为,必须使用分支,这样做的后果是在函数的执行过程中产生大量的divergence (如果一个warp中的线程分别跳转到不同的分支,那么SM就需要把每一个分支的指令发射到每一个SP上,在有SP根据线程逻辑决定需不需要执行,执行时间将是执行多个分支所用时间之和,由此形成的现象叫divergence),这也会大大降低GPU的执行效率。全搜索方法的搜索精度高,但即使利用GPU作为协处理器在普通的PC机上实现, 其耗时量也很难让其投入到实时高分辨率场合的应用;而一些经典的快速运动估计,其在搜索域中需要运算的搜索点数相对于全搜索大大减少(UMHexagonS方法相对于全搜索方法能够节约90%以上的计算量),但这些算法却很难在GPU上高效实现。

发明内容
本发明的目的在于避免上述已有技术的不足,通过CUDA平台在GPU上实现搜索精度高、速度快的运动估计,从而解决在普通PC机上实现高分辨率视频序列的实时编码过程中,运动估计模块耗时巨大这一瓶颈问题。本发明的技术方案是一种基于GPU并行实现的快速运动估计方法,整个运动估计过程划分为整像素精度搜索与1/4像素精度搜索,且搜索过程中的每个步骤都采用一种局部全搜索思想;并将搜索域划分为背景域和运动域;执行步骤如下Al、利用局部全搜索以最大概率判定当前分割块是否属于背景域;A2、若当前分割块属于背景域,则结束整像素精度搜索,否则通过降低搜索域分辨率来提升搜索步长,执行低分辨率的局部整像素全搜索来捕捉最优运动矢量分布范围,即粗定位;属于运动域的分割块完成粗定位后,利用局部全搜索细化运动矢量分布范围,完成整像素精度的运动估计,即细定位;A3、利用高密度、高精度搜索模板细化运动矢量,完成1/4像素精度搜索,当前分割块的运动估计结束;搜索过程中采用了中止判别技术,即当前步的最小失真参考块达到设定匹配精度,则算法的整像素搜索过程结束;搜索过程中每一步的搜索点数都不发生变化。
所述的运动估计方法,具体执行步骤如下1)采用搜索点数为N2、搜索尺寸为NxN、步长为1个整像素的正方形模板,并以搜索域原点(0,0)为中心,执行一次局部整像素精度全搜索,并行计算出N2个搜索点处的SAD 值,
权利要求
1.一种基于GPU并行实现的快速运动估计方法,其特征在于整个运动估计过程划分为整像素精度搜索与1/4像素精度搜索,且搜索过程中的每个步骤都采用一种局部全搜索思想;并将搜索域划分为背景域和运动域;执行步骤如下Al、利用局部全搜索以最大概率判定当前分割块是否属于背景域;A2、若当前分割块属于背景域,则结束整像素精度搜索,否则通过降低搜索域分辨率来提升搜索步长,执行低分辨率的局部整像素全搜索来捕捉最优运动矢量分布范围,即粗定位;属于运动域的分割块在完成粗定位后,利用局部全搜索细化运动矢量分布范围,完成整像素精度的运动估计,即细定位;A3、利用高密度、高精度搜索模板细化运动矢量,完成1/4像素精度搜索,当前分割块的运动估计结束;搜索过程中采用了中止判别技术,即当前步的最小失真参考块达到设定匹配精度,则算法的整像素搜索过程结束;搜索过程中每一步的搜索点数都不发生变化。
2.根据权利要求1所述的运动估计方法,其特征在于,具体执行步骤如下1)采用搜索点数为N2、搜索尺寸为NxN、步长为1个整像素的正方形模板,并以搜索域原点(0,0)为中心,执行一次局部整像素精度全搜索,并行计算出N2个搜索点处的SAD值,
3.根据权利要求1所述的运动估计方法,其特征在于,上述运算步骤在GPU平台上并行执行。
全文摘要
本发明公开了一种基于GPU并行实现的快速运动估计方法。首先,利用局部全搜索以最大概率判定当前分割块是否属于背景域;然后,若当前分割块属于背景域,则结束整像素精度搜索,否则通过降低搜索域分辨率来提升搜索步长,执行低分辨率的局部整像素全搜索来捕捉最优运动矢量分布范围,即粗定位;属于运动域的分割块在完成粗定位后,利用局部全搜索细化运动矢量分布范围,完成整像素精度的运动估计,即细定位;最后,利用高密度、高精度搜索模板细化运动矢量,完成1/4像素精度搜索,并结束当前分割块的运动估计;搜索过程中采用了中止判别技术,即当前步的最小失真参考块达到设定匹配精度,则算法的整像素搜索过程结束;搜索过程中每一步的搜索点数都不会发生变化。
文档编号H04N7/26GK102547289SQ20121001333
公开日2012年7月4日 申请日期2012年1月17日 优先权日2012年1月17日
发明者刘炯, 吴宇红, 张岗山, 李建东, 赵林靖, 颜善 申请人:西安电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1