一种同时利用cpu和gpu进行图像处理的加速方法

文档序号:6635587阅读:1232来源:国知局
一种同时利用cpu和gpu进行图像处理的加速方法
【专利摘要】本发明公开了一种同时利用CPU和GPU进行图像处理的加速方法,其通过预先对基础算法进行CPU硬件测试和GPU硬件测试并设置所述基础算法的CPU硬件处理值和GPU硬件处理值,然后对待处理图像进行算法确认和基础算法分解,根据分解后的基础算法所对应的CPU硬件处理值和GPU硬件处理值选择所需的CPU硬件或GPU硬件分别对待处理图像进行分解的基础算法处理,最后对分解的基础算法处理进行合成处理,得到结果图像;从而使同一组图像处理的算法根据其特点分别在CPU和GPU进行计算,并最终进行效果合成,对CPU和GPU各自的优势进行有机结合,使图像处理后的效果更佳,并且算法的效率更高,执行速度更快。
【专利说明】—种同时利用CPU和GPU进行图像处理的加速方法

【技术领域】
[0001]本发明涉及一种图像处理方法,特别是一种同时利用CPU和GPU进行图像处理的加速方法。

【背景技术】
[0002]随着用户对于图像处理方面的要求不断超出CPU的计算能力,CPU处理能力也不断强大,但在进入3D时代后,人们发现庞大的3D图像处理数据计算使得CPU越来越不堪重荷,并且远远超出其计算能力。随着图形计算需求日益增多,作为计算机的显示芯片也飞速发展。随后人们发现显示芯片的计算能力也无法满足快速增长的图形计算需求时,图形,图像计算等计算的功能被脱离出来单独成为一块芯片设计,这就是现在的图形计算处理器-GPU(Graphics Processing Unit),也就是显卡。
[0003]GPU以其高速的浮点运算能力迅速地吸引了人们的眼球,并且在向量计算方面能够获得比CPU高出十倍的计算效率,GPU并行计算的能力更是强大,它内部具有快速存储系统,此外,GPU的硬件设计能够管理数千个并行线程,这数千个线程全部由GPU创建和管理而不需要开发人员进行任何编程与管理。然而,如此强大的计算能力是具有针对性的,如Z-buffering、纹理映射与光照计算等,这类计算都是针对大量的平行数据,运算的数据量大,但是运算的类型却并不复杂,还具有类似性,计算性强但是逻辑性不强。而CPU是设计用来处理通用任务的处理、加工、运算以及系统核心控制等工作,CPU的微架构是为高效率处理数据相关性不大的计算类、复杂繁琐的非计算类等工作而优化的。所以目前CPU和GPU还在自己的轨道上各司其职,人们都只是简单地利用单纯的CPU硬件或者GPU硬件进行算法的处理,或者只是通过CPU读取图像,再通过GPU进行算法的并行处理,无法将两者进行很好的结合。


【发明内容】

[0004]本发明为解决上述问题,提供了一种同时利用CPU和GPU进行图像处理的加速方法,从而使得算法的效率更高,执行速度更快。
[0005]为实现上述目的,本发明采用的技术方案为:
[0006]一种同时利用CPU和GPU进行图像处理的加速方法,其特征在于,包括以下步骤:
[0007]10.对基础算法进行CPU硬件测试和GPU硬件测试;
[0008]20.根据所述硬件测试的测试结果,设置所述基础算法的CPU硬件处理值和GPU硬件处理值;
[0009]30.加载待处理图像,并对待处理图像进行算法确认和基础算法分解;
[0010]40.根据分解后的基础算法所对应的CPU硬件处理值和GPU硬件处理值选择所需的CPU硬件或GPU硬件分别对待处理图像进行分解的基础算法处理;
[0011]50.对分解的基础算法处理进行合成处理,得到结果图像。
[0012]优选的,所述的步骤20中设置基础算法的CPU硬件处理值和GPU硬件处理值,该CPU硬件处理值和GPU硬件处理值相加的和为I。
[0013]优选的,所述的步骤40中根据分解后的基础算法所对应的CPU硬件处理值和GPU硬件处理值选择所需的CPU硬件或GPU硬件,主要是根据所述基础算法的CPU硬件处理值和GPU硬件处理值,将处理值高的硬件作为该基础算法的默认硬件,并自动选择该默认硬件作为当前基础算法处理的硬件。
[0014]优选的,所述的步骤40中根据分解后的基础算法所对应的CPU硬件处理值和GPU硬件处理值选择所需的CPU硬件或GPU硬件,主要是根据所述基础算法的CPU硬件处理值和GPU硬件处理值,手动设置所有基础算法使用的硬件类型以及基础算法的运行顺序。
[0015]优选的,所述的分解后的基础算法之间是相互独立的,以便分别在CPU硬件上或在GPU硬件上进行基础算法处理。
[0016]本发明的有益效果是:
[0017]本发明的一种同时利用CPU和GPU进行图像处理的加速方法,其通过预先对基础算法进行CPU硬件测试和GPU硬件测试并设置所述基础算法的CPU硬件处理值和GPU硬件处理值,然后对待处理图像进行算法确认和基础算法分解,根据分解后的基础算法所对应的CPU硬件处理值和GPU硬件处理值选择所需的CPU硬件或GPU硬件分别对待处理图像进行分解的基础算法处理,最后对分解的基础算法处理进行合成处理,得到结果图像;从而使同一组图像处理的算法根据其特点分别在CPU和GPU进行计算,并最终进行效果合成,对CPU和GPU各自的优势进行有机结合,使图像处理后的效果更佳,并且算法的效率更高,执行速度更快。

【专利附图】

【附图说明】
[0018]此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0019]图1为本发明一种同时利用CPU和GPU进行图像处理的加速方法的流程简图。

【具体实施方式】
[0020]为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚、明白,以下结合附图及实施例对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
[0021]如图1所示,本发明的一种同时利用CPU和GPU进行图像处理的加速方法,其包括以下步骤:
[0022]10.对基础算法进行CPU硬件测试和GPU硬件测试;
[0023]20.根据所述硬件测试的测试结果,设置所述基础算法的CPU硬件处理值和GPU硬件处理值;
[0024]30.加载待处理图像,并对待处理图像进行算法确认和基础算法分解;
[0025]40.根据分解后的基础算法所对应的CPU硬件处理值和GPU硬件处理值选择所需的CPU硬件或GPU硬件分别对待处理图像进行分解的基础算法处理;
[0026]50.对分解的基础算法处理进行合成处理,得到结果图像。
[0027]所述的步骤20中设置基础算法的CPU硬件处理值和GPU硬件处理值,该CPU硬件处理值和GPU硬件处理值相加的和为I ;例如基础算法A,CPU处理值0.3,GPU处理值0.7,则表示该算法再GPU上处理的性能比在CPU上更快,快的倍数在2倍左右;当然,CPU硬件处理值和GPU硬件处理值相加的和也可以是10或100或1000,与上述实施例是类似的。
[0028]所述的步骤40中根据分解后的基础算法所对应的CPU硬件处理值和GPU硬件处理值选择所需的CPU硬件或GPU硬件,主要是根据所述基础算法的CPU硬件处理值和GPU硬件处理值,将处理值高的硬件作为该基础算法的默认硬件,并自动选择该默认硬件作为当前基础算法处理的硬件;或者是根据所述基础算法的CPU硬件处理值和GPU硬件处理值,手动设置所有基础算法使用的硬件类型以及基础算法的运行顺序。
[0029]所述的分解后的基础算法之间是相互独立的,以便分别在CPU硬件上或在GPU硬件上进行基础算法处理;例如美容算法,涉及到人脸识别,皮肤识别,模糊处理,合成处理等相互独立的基础算法,我们预先得知模糊处理适合在GPU上执行,人脸识别和皮肤识别适合在CPU上执行,而且这两个算法之间都是独立的,没有相关性的,因此我们可以分别使用CPU和GPU进行算法处理,最后再进行合成处理得到结果图像。
[0030]本发明主要是利用算法的适用性以及相关性预先设置最佳适合的程度,从而使算法在被使用时,能够快速地使用最佳的硬件进行处理;从而使同一组图像处理的算法根据其特点分别在CPU和GPU进行计算,并最终进行效果合成,对CPU和GPU各自的优势进行有机结合,使图像处理后的效果更佳,并且算法的效率更高,执行速度更快,适用于各种图像的快速处理。
[0031]上述说明示出并描述了本发明的优选实施例,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文发明构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。
【权利要求】
1.一种同时利用CPU和GPU进行图像处理的加速方法,其特征在于,包括以下步骤: 10.对基础算法进行CPU硬件测试和GPU硬件测试; 20.根据所述硬件测试的测试结果,设置所述基础算法的CPU硬件处理值和GPU硬件处理值; 30.加载待处理图像,并对待处理图像进行算法确认和基础算法分解; 40.根据分解后的基础算法所对应的CPU硬件处理值和GPU硬件处理值选择所需的CPU硬件或GPU硬件分别对待处理图像进行分解的基础算法处理; 50.对分解的基础算法处理进行合成处理,得到结果图像。
2.根据权利要求1所述的一种同时利用CPU和GPU进行图像处理的加速方法,其特征在于:所述的步骤20中设置基础算法的CPU硬件处理值和GPU硬件处理值,该CPU硬件处理值和GPU硬件处理值相加的和为I。
3.根据权利要求1所述的一种同时利用CPU和GPU进行图像处理的加速方法,其特征在于:所述的步骤40中根据分解后的基础算法所对应的CPU硬件处理值和GPU硬件处理值选择所需的CPU硬件或GPU硬件,主要是根据所述基础算法的CPU硬件处理值和GPU硬件处理值,将处理值高的硬件作为该基础算法的默认硬件,并自动选择该默认硬件作为当前基础算法处理的硬件。
4.根据权利要求1所述的一种同时利用CPU和GPU进行图像处理的加速方法,其特征在于:所述的步骤40中根据分解后的基础算法所对应的CPU硬件处理值和GPU硬件处理值选择所需的CPU硬件或GPU硬件,主要是根据所述基础算法的CPU硬件处理值和GPU硬件处理值,手动设置所有基础算法使用的硬件类型以及基础算法的运行顺序。
5.根据权利要求1所述的一种同时利用CPU和GPU进行图像处理的加速方法,其特征在于:所述的分解后的基础算法之间是相互独立的,以便分别在CPU硬件上或在GPU硬件上进行基础算法处理。
【文档编号】G06T1/20GK104331858SQ201410682812
【公开日】2015年2月4日 申请日期:2014年11月24日 优先权日:2014年11月24日
【发明者】张伟, 傅松林, 王黎凌, 李志阳 申请人:厦门美图之家科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1