CN103747262B - 一种基于gpu的运动估计方法 - Google Patents

一种基于gpu的运动估计方法 Download PDF

Info

Publication number
CN103747262B
CN103747262B CN201410009541.0A CN201410009541A CN103747262B CN 103747262 B CN103747262 B CN 103747262B CN 201410009541 A CN201410009541 A CN 201410009541A CN 103747262 B CN103747262 B CN 103747262B
Authority
CN
China
Prior art keywords
sad
blocks
gpu
cpu
optimal
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201410009541.0A
Other languages
English (en)
Other versions
CN103747262A (zh
Inventor
梁凡
刘海军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sun Yat Sen University
Original Assignee
Sun Yat Sen University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sun Yat Sen University filed Critical Sun Yat Sen University
Priority to CN201410009541.0A priority Critical patent/CN103747262B/zh
Publication of CN103747262A publication Critical patent/CN103747262A/zh
Application granted granted Critical
Publication of CN103747262B publication Critical patent/CN103747262B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

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

Description

一种基于GPU的运动估计方法
技术领域
本发明涉及视频编码技术领域,尤其涉及一种基于GPU的运动估计方法。
背景技术
随着人们对视频压缩标准的要求不断提高,从2010年开始,ISO/IEC与ITU-T开始联合在全球征集下一代视频压缩标准的提案,该视频标准命名为HEVC(High efficiencyVideo Coding),同时建立了其测试模型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×N PU块的SAD信息,将得到帧间预测最佳划分模式以及最小cost和运动矢量。
优选地,该方法的递归方向与HM中的递归方向相反,这是因为只有求得当前CU更深一层的CU块的运动估计信息时才能够更新当前N×N PU块的SAD信息。
优选地,计算N×N块的SAD时,将当前帧数据以及参考帧传入到设备端,即GPU中,并且使用纹理内存进行绑定。
优选地,该方法使用了归约合并的方法分别对各PU块的搜索范围窗口中的SAD进行比较,得到每种块模式下最小SAD的运动矢量,即该块模式下的最佳运动矢量。
优选地,当CU块已经是最小深度的CU块时不需要对N×N PU的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×N PU块的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×N PU块的最佳SAD信息以及选择帧间预测最佳划分模式,同时得到最小cost和相应的运动矢量。对于8×8CU运动估计,求出4种PU块的搜索范围内的最小SAD以及最佳运动矢量以后,因为该CU块已经是最小深度的CU块了,所以不需要对N×N PU的SAD进行更新。接下来直接对PU块的四种划分模式进行比较以得到CU块的最佳PU划分方式。具体如图5所示,其中4×8模式SAD值是两个4×8块SAD值之和,同样8x4模式SAD值是两个8×4块SAD之和,最后4×4模式SAD值是4个4×4块SAD值相加。然后对这四种模式SAD进行比较,得到一个最佳的预测块(PU)划分方式以及最佳运动矢量(MV)。
对于其他尺寸的CU块的运动估计,所不同的是,该CU块的kernel_SAD函数的网格维度变为dim3(Width/N,Height/N,1),对16×16CU块来说,其尺寸就为dim3(Width/8,Height/8,1);同时,对于其他大于8×8的CU块来说,CPU处理过程必须先更新N×N PU块的SAD信息。下面以16×16CU块为简单说明,16×16CU块的PU块有4种的分块模式为16×16、16×8、8×16以及8×8,在计算比较16×16CU块的划分过程中,先更新8×8块的信息。在比较过程中,16×16块中四个8×8分块采用的SAD值为8×8的多种划分模式比较得到的最小SAD值。处理完16×16CU块后,则将信息传递回编码器。这里信息包括整幅图像中所有16×16CU和8×8CU的划分方式以及其相应的最小SAD值。
本发明方法的总流程如图4所示,具体为:CPU将图像数据送入GPU,然后计算N×N块的SAD,合成2N×2N的CU块中其他模式PU块的SAD值,求得各PU块的最佳SAD,GPU将图像的各PU块的最佳SAD传回CPU,CPU根据CU的尺寸更新当前N×N PU块的SAD信息,将得到帧间预测最佳划分模式以及最小cost和运动矢量。
基于GPU的运动估计算法在以下的环境中进行了测试:CPU:CoreTMi7-26003.40GHz;内存16.0GB;显卡:NVIDIA GeForce GTX460(1024MB显存);***windows7sp1+Microsoft visual studio2010;CUDA工具:CUDA driver4.1、CUDA toolkit4.1和CUDASDK4.1for windows7。
图5是各尺寸CU以及各视频尺寸CPU运动估计方法与GPU运动估计方法加速比对比图。从图5中可以看出,GPU算法与CPU算法的加速比随着序列尺寸的增加而递增。而图像中,CU块尺寸越大,那么网格(grid)中的块个数也就越少,加速比显著增加。
以上对本发明实施例所提供的一种基于GPU的运动估计方法进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (4)

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;
最后,GPU将图像的各PU块的最佳SAD传回CPU,CPU采用递归方式与HM中的递归方向相反的方式,并根据CU的尺寸更新当前N×N PU块的SAD信息,将得到帧间预测最佳划分模式以及最小cost和运动矢量。
2.根据权利要求1所述的方法,其特征在于,计算N×N块的SAD时,将当前帧数据以及参考帧传入到设备端,即GPU中,并且使用纹理内存进行绑定。
3.根据权利要求1所述的方法,其特征在于,当CU块已经是最小深度的CU块时不需要对N×N PU的SAD进行更新。
4.根据权利要求1所述的方法,其特征在于,CU块尺寸越大,网格中的块个数也就越少,加速比显著增加。
CN201410009541.0A 2014-01-08 2014-01-08 一种基于gpu的运动估计方法 Expired - Fee Related CN103747262B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410009541.0A CN103747262B (zh) 2014-01-08 2014-01-08 一种基于gpu的运动估计方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410009541.0A CN103747262B (zh) 2014-01-08 2014-01-08 一种基于gpu的运动估计方法

Publications (2)

Publication Number Publication Date
CN103747262A CN103747262A (zh) 2014-04-23
CN103747262B true CN103747262B (zh) 2017-10-10

Family

ID=50504245

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410009541.0A Expired - Fee Related CN103747262B (zh) 2014-01-08 2014-01-08 一种基于gpu的运动估计方法

Country Status (1)

Country Link
CN (1) CN103747262B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104125466B (zh) * 2014-07-10 2017-10-10 中山大学 一种基于gpu的hevc并行解码方法
CN104159123B (zh) * 2014-08-11 2017-04-12 哈尔滨工业大学深圳研究生院 一种适合于硬件实现的hevc运动估计方法
CN104994394B (zh) * 2015-05-04 2018-08-07 北京大学 编码器运动估算方法及装置
CN105245896A (zh) * 2015-10-09 2016-01-13 传线网络科技(上海)有限公司 Hevc并行运动补偿方法及装置
CN106878737B (zh) * 2017-03-02 2019-10-08 西安电子科技大学 高效视频编码中的运动估计加速方法
CN107135392B (zh) * 2017-04-21 2019-12-10 西安电子科技大学 基于异步模式的hevc运动搜索并行方法
CN109618165A (zh) * 2019-01-07 2019-04-12 郑州云海信息技术有限公司 一种图像解码方法、***及主机和图像处理***
CN110913231B (zh) * 2019-12-12 2023-05-30 西安邮电大学 一种纹理图整数运动估计并行实现方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8542732B1 (en) * 2008-12-23 2013-09-24 Elemental Technologies, Inc. Video encoder using GPU
CN102647588B (zh) * 2011-02-17 2014-09-24 北京大学深圳研究生院 一种用于分层搜索运动估计的gpu加速方法
CN102547289B (zh) * 2012-01-17 2015-01-28 西安电子科技大学 基于gpu并行实现的快速运动估计方法

Also Published As

Publication number Publication date
CN103747262A (zh) 2014-04-23

Similar Documents

Publication Publication Date Title
CN103747262B (zh) 一种基于gpu的运动估计方法
CN101267556B (zh) 快速运动估计方法及视频编解码方法
CN107135392B (zh) 基于异步模式的hevc运动搜索并行方法
CN104539949B (zh) Hevc屏幕编码中基于边缘方向的快速分块的方法及装置
CN104067619A (zh) 视频解码器、视频编码器、视频解码方法以及视频编码方法
CN107277506B (zh) 基于自适应运动矢量精度的运动矢量精度选择方法及装置
CN106604035B (zh) 一种用于视频编码和压缩的运动估计的方法
CN102801976A (zh) 基于三维小波视频编码的帧间块模式选择方法
CN109640097B (zh) 自适应因子的视频仿射运动估计方法
CN109495743A (zh) 一种基于异构多处理平台的并行化视频编码方法
CN103414896B (zh) 一种基于多核实现的运动估计方法
CN104284186A (zh) 一种适用于hevc标准帧内预测模式判决过程的快速算法
CN105245896A (zh) Hevc并行运动补偿方法及装置
Muruganandham et al. Adaptive fractal image compression using PSO
CN105282557B (zh) 一种预测运动矢量的h.264快速运动估计方法
CN101980536A (zh) 一种基于对象和分形的多目立体视频压缩编解码方法
Gao et al. A novel integer-pixel motion estimation algorithm based on quadratic prediction
CN1317898C (zh) 一种视频编解码过程中进行运动估计搜索计算的方法
CN105007494B (zh) 一种3d视频深度图像的帧内楔形分割模式选择方法
Lee et al. 3D motion estimation algorithm in 3D video coding
CN102263952B (zh) 一种基于对象的快速双目立体视频分形压缩与解压缩方法
CN102263954B (zh) 一种基于对象的快速分形视频压缩与解压缩方法
KR102007377B1 (ko) 고성능 hevc 부호기를 위한 움직임 추정 시스템 및 방법
Vu et al. An efficient dynamic multiple-candidate motion vector approach for GPU-based hierarchical motion estimation
CN1568009A (zh) 用于视频编码的运动矢量预测方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20171010

Termination date: 20210108