一种图像处理方法及装置制造方法及图纸

技术编号:37509065 阅读:12 留言:0更新日期:2023-05-07 09:48
本发明专利技术提供了一种图像处理方法及装置,方法包括在当前算子需要执行计算时,确定当前算子对应的图像数据作为目标图像数据,判断目标图像数据是否建立有包括CPU中存储各图像数据地址的标识与GPU的内存中为图像数据预备存储地址的标识的映射关系,若判断结果为是,则基于映射关系,从所述GPU的内存中查找到存储的所述目标图像数据,以使所述GPU对拷贝的所述目标图像数据进行处理。本发明专利技术提供的方法解决了图像处理时因频繁申请和释放内存导致处理过程较为繁琐的问题,简化了图像处理的流程,避免了GPU内存的碎片化,可节省大量的计算时间,极大的提高了图像处理的计算效率,实现方便简单,同时提高了内存的重复使用率。同时提高了内存的重复使用率。同时提高了内存的重复使用率。

【技术实现步骤摘要】
一种图像处理方法及装置


[0001]本专利技术属于图像处理
,具体涉及一种图像处理方法及装置。

技术介绍

[0002]近年来,以NVIDIA Tesla为代表的异构芯片逐渐被引入到通用计算领域中。最初的图形处理器GPU就是用来处理大规模的并行计算,并且GPU的并行处理能力在不断的上升。
[0003]GPU将更多的晶体管用于执行单元,而非像CPU那样用作复杂的数据缓存和指令控制。由于GPU具有超强的浮点计算能力,除了在传统领域如用于游戏的图形显示等应用以外,GPU越来越多地应用在科学计算领域上,并且逐渐进入高性能计算的主流。
[0004]CUDA(Compute Unified Device Architecture,统一计算设备架构)是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的高性能计算问题。CUDA编程是在C语言上的基础上对C语言的扩展,不再需要借助于图形学API,CUDA开发人员只需要在C语言的基础上从CPU过度到GPU上,CUDA提供了简单、容易的GPU开发工具,因此对于开发者来说,CUDA的开发门槛大大降低了。
[0005]CUDA编程采用了异构体系结构的模式,CPU作为主机,GPU作为CPU的协处理器,CPU与GPU协同工作,CPU负责逻辑性强的事务处理和串行计算,GPU负责高度并行化的计算任务,CPU与GPU共同完成加速任务。
[0006]当前在GPU上的计算图像方式,在实现连续处理多幅图像时有较为繁琐的缺点。此外,因为频繁的申请内存和释放内存,会导致图像处理的效率较低,内存空间容易产生较多的内存碎片,影响存储效率。

技术实现思路

[0007]为了克服上述现有技术的缺陷,本专利技术提出了一种图像处理方法,所述方法包括:
[0008]在当前算子需要执行计算时,确定当前算子对应的图像数据作为目标图像数据;
[0009]判断所述目标图像数据是否建立有映射关系;其中,所述映射关系中包括CPU中存储各所述图像数据地址的标识与GPU的内存中为所述图像数据预备存储地址的标识;
[0010]若判断结果为是,则基于所述映射关系,从所述GPU的内存中查找到存储的所述目标图像数据,以使所述GPU对拷贝的所述目标图像数据进行处理。
[0011]具体地,若所述目标图像数据未建立有映射关系,则基于所述目标图像数据建立映射关系,并基于所述映射关系,从所述CPU中拷贝所述目标图像数据到所述GPU的内存中对应所述目标图像数据存储地址的标识的区域以建立映射关系,并执行“使所述GPU对所述目标图像数据进行处理”的操作。
[0012]优选地,所述映射关系中还包括所述图像数据的大小,所述GPU预分配有一块存储空间用于存储所述目标图像的数据,所述存储空间的容积大于所有需要处理的所述目标图像数据的大小。
[0013]进一步地,所述方法还包括:
[0014]在所述GPU对所述目标图像数据进行处理前,从所述存储空间中按序分配空间,以保存因处理所述目标图像而生成的中间数据和/或处理所述目标图像得到的结果,并基于所述中间数据和/或所述结果建立相应的映射关系。
[0015]优选地,若对所述GPU对所述目标图像数据进行处理生成的所述中间数据为不需要拷贝给所述CPU的临时数据,基于所述中间数据建立的所述映射关系中所述CPU中存储所述中间数据地址的标识设置为空。
[0016]具体地,所述GPU的内存中为所述图像数据预备存储地址的标识设置为所述存储空间未使用部分的首地址,所述方法还包括:
[0017]在每次建立映射关系后,将所述预备存储地址的标识设置为所述存储空间中当前未使用部分的首地址。
[0018]优选地,所述方法还包括:
[0019]在所述GPU对所述目标图像数据的处理完成后,判断生成的所述中间数据是否需要保存;
[0020]若所述中间数据不需要保存,对所述存储空间中存储所述中间数据的内存进行回收。
[0021]进一步地,所述“对所述存储空间中存储所述中间数据的内存进行回收”包括:
[0022]将所述GPU的内存中为所述预备存储地址的标识设置为所述存储空间已分配的上一块空间的尾地址,并将分配给存储所述中间数据的空间计入所述存储空间中的当前未使用部分。
[0023]可选地,所述标识包括指针。
[0024]本专利技术还提出了一种图像处理装置,用于实现如前文所述的图像处理方法,所述装置包括:
[0025]确定模块,用于在当前算子需要执行计算时,确定当前算子对应的图像数据作为目标图像数据;
[0026]建立模块,用于基于所述目标图像数据建立映射关系;其中,所述映射关系中包括CPU中存储各所述图像数据地址的标识与GPU的内存中为所述图像数据预备存储地址的标识;
[0027]拷贝模块,用于基于所述映射关系,从所述CPU中拷贝所述目标图像数据到所述GPU的内存中对应所述目标图像数据存储地址的标识的区域;
[0028]判断模块,用于判断所述目标图像数据是否建立有所述映射关系;
[0029]查找模块,用于基于所述映射关系从所述GPU的内存中查找到存储的所述目标图像数据;
[0030]处理模块,用于使所述GPU对所述目标图像数据进行处理。
[0031]本专利技术至少具有以下有益效果:
[0032]本专利技术提出的方法通过CPU与GPU的内存映射方式解决了图像处理情况中的操作繁琐的问题,可以节省大量的计算时间,极大的提高了计算效率,有效利用了GPU的内存空间,提高了重复使用率,并且在连续处理多幅图像、多算子连续调用的情况下具有更加明显的效果;
[0033]在此基础上,本专利技术还提出了对计算产生的临时数据进行回收的方法,进一步达到了节省内存空间,使内存空间重复利用的目的。
[0034]以此,本专利技术提供了一种图像处理方法及装置,本专利技术提供的方法解决了图像处理时因频繁申请和释放内存导致处理过程较为繁琐的问题,简化了图像处理的流程,避免了GPU内存的碎片化,可节省大量的计算时间,极大的提高了图像处理的计算效率,实现方便简单,同时提高了内存的重复使用率。
附图说明
[0035]为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0036]图1为实施例1提出的一种图像处理方法的整体流程示意图;
[0037]图2为映射关系表的示意图;
[0038]图3为通过映射关系表展示回收中间数据方式的示意图;
[0039]图4为实施例2提出的一种图像处理装置的模块结构示意图。
[0040]附图标记:
[0041]1‑
确定模块;2

判断模块;3

建立模块;4
...

【技术保护点】

【技术特征摘要】
1.一种图像处理方法,其特征在于,所述方法包括:在当前算子需要执行计算时,确定当前算子对应的图像数据作为目标图像数据;判断所述目标图像数据是否建立有映射关系;其中,所述映射关系中包括CPU中存储各所述图像数据地址的标识与GPU的内存中为所述图像数据预备存储地址的标识;若判断结果为是,则基于所述映射关系从所述GPU的内存中查找到存储的所述目标图像数据,以使所述GPU对所述目标图像数据进行处理。2.根据权利要求1所述的图像处理方法,其特征在于,若所述目标图像数据未建立有映射关系,则基于所述目标图像数据建立映射关系,并基于所述映射关系,从所述CPU中拷贝所述目标图像数据到所述GPU的内存中对应所述目标图像数据存储地址的标识的区域以建立映射关系,并执行“使所述GPU对所述目标图像数据进行处理”的操作。3.根据权利要求1或2所述的图像处理方法,其特征在于,所述映射关系中还包括所述图像数据的大小,所述GPU预分配有一块存储空间用于存储所述目标图像的数据,所述存储空间的容积大于所有需要处理的所述目标图像数据的大小。4.根据权利要求3所述的图像处理方法,其特征在于,所述方法还包括:在所述GPU对所述目标图像数据进行处理前,从所述存储空间中按序分配空间,以保存因处理所述目标图像而生成的中间数据和/或处理所述目标图像得到的结果,并基于所述中间数据和/或所述结果建立相应的映射关系。5.根据权利要求4所述的图像处理方法,其特征在于,若对所述GPU对所述目标图像数据进行处理生成的所述中间数据为不需要拷贝给所述CPU的临时数据,基于所述中间数据建立的所述映射关系中所述CPU中存储所述中间数据地址的标识设置为空。6.根据权利要求3所述的图像处理方法,其特征在于,...

【专利技术属性】
技术研发人员:凌云陈永
申请(专利权)人:杭州加速科技有限公司
类型:发明
国别省市:

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

1