一种图像编辑系统、方法及设备
技术领域
本发明涉及计算机技术领域,特别是涉及一种图像编辑系统、方法及设备。
背景技术
游戏制作过程中会涉及到对游戏场景中图像的编辑。现有技术中对图像进行编辑时,通常利用运行于CPU中的笔刷系统中用于实现不同编辑效果的笔刷,对图像进行编辑。
虽然应用上述运行于CPU中的笔刷系统能够实现对图像的编辑,但是由于CPU的架构是串行架构,导致图像编辑速度慢。
发明内容
本发明实施例的目的在于提供一种图像编辑系统、方法及设备,以实现加快图像编辑速度。具体技术方案如下:
本发明实施例提供了一种图像编辑系统,所述系统运行于GPU上,所述系统包括:操作子系统、计算着色器子系统和资源管理子系统;其中,
所述操作子系统,用于接收笔刷选取指令和笔刷参数,并向所述计算着色器子系统发送包含所述笔刷选取指令和笔刷参数的目标笔刷生成指令;在接收到第一图像编辑指令后,根据所述笔刷参数中包含的笔刷半径确定图像中的图像编辑区域,将所述图像编辑区域划分为至少两个子区域,向所述资源管理子系统请求编辑各个子区域所需的各个GPU资源,向所述计算着色器子系统发送利用所述目标笔刷对各个子区域进行编辑的第二图像编辑指令;
所述计算着色器子系统,用于接收所述目标笔刷生成指令,根据所述笔刷参数,对所述笔刷选取指令所指示笔刷的实现程序进行参数配置,运行配置参数后的实现程序,生成所述目标笔刷;在接收到所述第二图像编辑指令后,基于所述资源管理子系统分配的GPU资源,利用所述目标笔刷对各个子区域进行并行编辑;
所述资源管理子系统,用于分配编辑图像所需的GPU资源。
可选的,所述操作子系统,还用于在接收到对所述目标笔刷进行移动的第一移动指令后,向所述计算着色器子系统发送第二移动指令;
所述计算着色器子系统,还用于在接收到所述第二移动指令后,按照所述第二移动指令移动所述目标笔刷。
可选的,所述系统还包括:操作回滚子系统,
所述操作回滚子系统,用于记录所述计算着色器子系统在图像编辑过程中生成的数据;
所述操作子系统,还用于在接收到第一操作回滚指令后,向所述操作回滚子系统发送第二操作回滚指令;
所述操作回滚子系统,还用于在接收到所述第二操作回滚指令后,从所记录的数据中,确定所述第二操作回滚指令对应的数据,并将所确定的数据发送至所述计算着色器子系统;
所述计算着色器子系统,还用于根据所述操作回滚子系统发送的数据进行操作回滚。
可选的,所述计算着色器子系统具有数据交互接口;
所述计算着色器子系统,还用于通过所述数据交互接口与其他具有图像编辑功能的系统交互用于进行图像编辑的数据,以使其他具有图像编辑功能的系统利用所述计算着色器子系统生成的笔刷对图像进行编辑。
可选的,所述计算着色器子系统还具有CPU通信接口,
所述计算着色器子系统,还用于通过所述CPU通信接口与运行于CPU上的笔刷系统进行通信,调用所述运行于CPU上的笔刷系统中的笔刷程序。
本发明实施例还提供了一种图像编辑方法,应用于GPU,所述方法包括:
接收笔刷选取指令和笔刷参数;
根据所述笔刷参数,对所述笔刷选取指令所指示笔刷的实现程序进行参数配置,运行配置参数后的实现程序,生成目标笔刷;
在接收到第一图像编辑指令后,根据所述目标笔刷的半径确定图像中的图像编辑区域,将所述图像编辑区域划分为至少两个子区域;
获得编辑各个子区域所需的各个GPU资源,基于所获得的GPU资源,利用所述目标笔刷对各个子区域进行并行编辑。
可选的,所述方法还包括:
接收对所述目标笔刷进行移动的移动指令;
按照所述移动指令移动所述目标笔刷。
可选的,所述方法还包括:
记录对图像进行编辑的过程中生成的数据;
接收回滚指令;
从所记录的数据中,确定所述回滚指令对应的数据;
根据所确定的数据执行操作回滚。
本发明实施例还提供了一种电子设备,包括GPU、通信接口、存储器和通信总线,其中,GPU,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
GPU,用于执行存储器上所存放的程序时,实现上述任一所述的图像编辑方法。
本发明实施例还提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一所述的图像编辑方法。
本发明实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的图像编辑方法。
本发明实施例提供的图像编辑系统、方法及设备,可以在接收到笔刷选取指令和笔刷参数后,生成目标笔刷,并在利用目标笔刷对图像中的图像编辑区域进行编辑时,将图像编辑区域划分为至少两个子区域,基于GPU资源利用目标笔刷对各个子区域进行并行编辑。由于对图像进行编辑的过程中是基于GPU资源对图像进行并行编辑的,因而,相较于现有技术中利用运行于CPU中的笔刷系统对图像进行编辑的编辑效率更高。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种图像编辑系统的结构示意图;
图2为本发明实施例提供的一种图像编辑方法的流程示意图;
图3为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1,示出了本发明实施例提供的一种图像编辑系统,该系统运行于GPU上,系统包括:操作子系统100、计算着色器子系统200和资源管理子系统300;
操作子系统100,用于接收笔刷选取指令和笔刷参数,并向计算着色器子系统200发送包含笔刷选取指令和笔刷参数的目标笔刷生成指令;在接收到第一图像编辑指令后,根据笔刷参数中包含的笔刷半径确定图像中的图像编辑区域,将图像编辑区域划分为至少两个子区域,向资源管理子系统300请求编辑各个子区域所需的各个GPU资源,向计算着色器子系统200发送利用目标笔刷对各个子区域进行编辑的第二图像编辑指令。
一种实现方式中,由于图像是由像素点构成的,因此操作子系统100在对图像编辑区域进行划分的过程中,可以按照像素点将图像编辑区域划分为至少两个子区域,比如,以预先设定的16个像素点之间的距离为划分距离,将图像编辑区域沿水平方向和竖直方向等间距划分为多个子区域。
操作子系统100在将图像编辑区域划分为多个子区域之后,分别向资源管理子系统300请求编辑各个子区域所需的各个GPU资源,也就是每个子区域均对应有一个处理该子区域所需的GPU资源。
一种情况下,当GPU资源足够的情况下,也就是同时获得了编辑各个子区域所需的各个GPU资源的情况下,操作子系统100在向计算着色子系统200发送利用目标笔刷对各个子区域进行编辑的第二图像编辑指令时,可以将各个子区域的标识和与编辑各个子区域所需的GPU资源的标识发送至计算着色子系统200,每个子区域的标识对应一个GPU资源的标识,相应地,计算着色子系统200在接收到第二图像编辑指令后,利用各个GPU资源对各个子区域进行并行编辑;
另一种情况下,当GPU资源不足的情况下,也就是只获得编辑部分子区域所需的GPU资源的情况下,操作子系统100在向计算着色子系统200发送利用目标笔刷对各个子区域进行编辑的第二图像编辑指令时,可以先将已获得进行编辑时所需GPU资源的子区域的标识和各个GPU资源的标识发送给计算着色器子系统200,在计算着色器子系统200对已经获得进行编辑时所需的GPU资源的子区域并行编辑后,再次获得对剩余各个未编辑子区域进行编辑时所需的各个GPU资源,接着将获得的编辑剩余各个未编辑子区域所需的各个GPU资源的标识和各个剩余未编辑子区域的标识发送至计算着色器子系统200。
计算着色器子系统200,用于接收目标笔刷生成指令,根据笔刷参数,对笔刷选取指令所指示笔刷的实现程序进行参数配置,运行配置参数后的实现程序,生成目标笔刷;在接收到第二图像编辑指令后,基于资源管理子系统分配的GPU资源,利用目标笔刷对各个子区域进行并行编辑。
计算着色器子系统200中存储有各种笔刷的实现程序,具体的,可以存储有用于对图像中的地形进行雕刻处理的笔刷的实现程序、用于对图像中的地形进行平滑处理的笔刷的实现程序、用于对图像中的地形进行去噪声处理的笔刷的实现程序、用于对图像中的地形进行平整处理的笔刷的实现程序、用于对图像中的地形的高度进行平均处理的笔刷的实现程序、用于对图像中的地形生成侵蚀效果的笔刷的实现程序。
相应地,笔刷参数可以包括笔刷的透明度、笔刷的大小、用于确定对图像进行编辑的区域大小的笔刷半径、以及用于改变利用所选择笔刷对图像进行编辑能够实现的效果的参数,比如,选择用于对图像中的地形的高度进行平均处理的笔刷时设置每次对地图的高度进行处理时所改变的高度的大小;选择用于对图像中的地形进行雕刻处理的笔刷时设置每次雕刻的纹理的深度。
一种实现方式中,计算着色器子系统200可以为基于Compute Shader框架的子系统。
资源管理子系统300,用于分配编辑图像所需的GPU资源。
用户在对图像进行编辑的过程中,在利用目标笔刷对图像中的某一区域处理后,还可能需要利用目标笔刷对图像中的其他区域进行处理,因此,本发明实施例一种实现方式中,
操作子系统100,还可以用于在接收到对目标笔刷进行移动的第一移动指令后,向计算着色器子系统200发送第二移动指令;
计算着色器子系统200,还用于在接收到第二移动指令后,按照第二移动指令移动目标笔刷。
一种实现方式中,用户可以利用鼠标来拖动笔刷,相应地,操作子系统100实时检测鼠标的光标的移动轨迹,然后将实时检测到的光标的移动轨迹发送给计算着色器子系统200,计算着色器子系统200按照接收到的光标的移动轨迹移动笔刷。
用户在对图像进行编辑的过程中,用户在利用目标笔刷对图像进行编辑之后,可能对图像的编辑结果不满意,此时则需要返回利用目标笔刷对图形进行编辑之前的图像的状态,因此,本发明实施例一种实现方式中,所述系统还包括:操作回滚子系统400,
操作回滚子系统400,用于记录计算着色器子系统200在图像编辑过程中生成的数据;
操作子系统100,还用于在接收到第一操作回滚指令后,向操作回滚子系统400发送第二操作回滚指令;
操作回滚子系统400,还用于在接收到第二操作回滚指令后,从所记录的数据中,确定第二操作回滚指令对应的数据,并将所确定的数据发送至计算着色器子系统200;
计算着色器子系统200,还用于根据操作回滚子系统400发送的数据进行操作回滚。
一种实现方式中,操作回滚子系统400在记录计算着色器子系统200在图像编辑过程中生成的数据的过程中,可以将记录的数据发送至CPU,利用CPU将所记录的数据固化到磁盘中,当接收到操作子系统100发送的回滚指令后,从存储所记录的数据的磁盘中读取回滚指令对应的数据,将读取的数据发送计算着色器子系统200,计算着色器子系统200根据操作回滚子系统400发送的数据进行操作回滚。
比如,用户利用用于对图像中的地形生成侵蚀效果的笔刷对地形处理后,操作回滚子系统400记录对地形生成侵蚀效果的数据,当用户点击回滚按钮后,操作子系统100接收到回滚指令并向操作回滚子系统400发送操作回滚指令,操作回滚子系统400接收到操作回滚指令后,确定对地形生成侵蚀效果的数据,并将所确定的数据发送至计算着色器子系统200,计算着色器子系统200利用对地形生成侵蚀效果的数据进行操作回滚,以撤销对地形编辑后生成的侵蚀效果。
为了实现其他具有图像编辑功能的系统利用本发明实施例提供的图像编辑系统中的笔刷对图像进行编辑,本发明实施例一种实现方式中,计算着色器子系统200具有数据交互接口;
计算着色器子系统200,还用于通过数据交互接口与其他具有图像编辑功能的系统交互用于进行图像编辑的数据,以使其他具有图像编辑功能的系统利用计算着色器子系统生成的笔刷对图像进行编辑。
具体的,其他具有图像编辑功能的系统可以通过数据交互接口将需要使用的对地形进行雕刻处理笔刷的笔刷选取指令和笔刷参数发送给计算着色器子系统200,计算着色器子系统200在接收到笔刷选取指令和笔刷参数后,根据笔刷参数,对笔刷选取指令所指示第一笔刷的实现程序进行参数配置,运行参数配置后的实现程序,生成地形高度雕刻笔刷,然后将所生成的地形高度雕刻笔刷通过数据交互接口发送给其他具有图像编辑功能的系统,其他具有图像编辑功能的系统在接收到第一笔刷后,利用第一笔刷对图像进行处理。
为了实现本发明实施例提供的图像编辑系统兼容现有技术中运行于CPU上的笔刷系统,本发明实施例一种实现方式中,计算着色器子系统200还具有CPU通信接口,
计算着色器子系统200,还用于通过CPU通信接口与运行于CPU上的笔刷系统进行通信,调用运行于CPU上的笔刷系统中的笔刷程序。
具体的,计算着色器子系统200在需要调用运行于CPU上的笔刷系统中的笔刷程序时,可以通过CPU通信接口向CPU发送笔刷程序的调用指令,CPU在接收到调用指令后,将相应的笔刷程序发送给计算着色器子系统200。比如,向CPU发送调用对地形高度进行平滑处理笔刷对应的笔刷程序的调用指令,CPU在接收到调用指令后将对地形高度进行平滑处理笔刷的笔刷程序发送给计算着色器子系统200。
本发明实施例提供的各个方案中,图像编辑系统可以在接收到笔刷选取指令和笔刷参数后,生成目标笔刷,并在利用目标笔刷对图像中的图像编辑区域进行编辑时,将图像编辑区域划分为至少两个子区域,基于GPU资源利用目标笔刷对各个子区域进行并行编辑。由于对图像进行编辑时是基于GPU资源对图像进行并行编辑的,因而,相较于现有技术中利用运行于CPU中的笔刷系统对图像进行编辑的编辑效率更高。
参见图2,示出了本发明实施例提供的一种图像编辑方法,应用于GPU,该方法包括:
S500,接收笔刷选取指令和笔刷参数。
S510,根据笔刷参数,对笔刷选取指令所指示笔刷的实现程序进行参数配置,运行配置参数后的实现程序,生成目标笔刷。
S520,在接收到第一图像编辑指令后,根据目标笔刷的半径确定图像中的图像编辑区域,将图像编辑区域划分为至少两个子区域。
S530,获得编辑各个子区域所需的各个GPU资源,基于所获得的GPU资源,利用目标笔刷对各个子区域进行并行编辑。
用户在对图像进行编辑的过程中,在利用目标笔刷对图像中的某一区域处理后,还可能需要利用目标笔刷对图像中的其他区域进行处理,因此,本发明实施例一种实现方式中,所述方法还包括:接收对所述目标笔刷进行移动的移动指令;按照所述移动指令移动所述目标笔刷。
用户在对图像进行编辑的过程中,用户在利用目标笔刷对图像进行编辑之后,可能对图像的编辑结果不满意,此时则需要返回利用目标笔刷对图形进行编辑之前的图像的状态,因此,本发明实施例一种实现方式中,图像编辑方法还可以记录对图像进行编辑的过程中生成的数据;接收回滚指令;从所记录的数据中,确定回滚指令对应的数据;根据所确定的数据执行操作回滚。
本发明实施例提供的各个方案中,图像编辑方法可以在接收到笔刷选取指令和笔刷参数后,生成目标笔刷,并在利用目标笔刷对图像中的图像编辑区域进行编辑时,将图像编辑区域划分为至少两个子区域,基于GPU资源利用目标笔刷对各个子区域进行并行编辑。由于对图像进行编辑时是基于GPU资源对图像进行并行编辑的,因而,相较于现有技术中利用运行于CPU中的笔刷系统对图像进行编辑的编辑效率更高。
本发明实施例还提供了一种电子设备,如图3所示,包括GPU001、通信接口002、存储器003和通信总线004,其中,处理器001,通信接口002,存储器003通过通信总线004完成相互间的通信,
存储器003,用于存放计算机程序;
处理器001,用于执行存储器003上所存放的程序时,实现本发明实施例提供的图像编辑方法。
具体的,上述图像编辑方法,包括:
接收笔刷选取指令和笔刷参数;
根据所述笔刷参数,对所述笔刷选取指令所指示笔刷的实现程序进行参数配置,运行配置参数后的实现程序,生成目标笔刷;
在接收到第一图像编辑指令后,根据所述目标笔刷的半径确定图像中的图像编辑区域,将所述图像编辑区域划分为至少两个子区域;
获得编辑各个子区域所需的各个GPU资源,基于所获得的GPU资源,利用所述目标笔刷对各个子区域进行并行编辑。
需要说明的是,上述处理器001执行存储器003上所存放的程序实现图像编辑方法的其他实施例,与前述方法实施例部分提供的实施例相同,这里不再赘述。
本发明实施例提供的各个方案中,电子设备可以在接收到笔刷选取指令和笔刷参数后,生成目标笔刷,并在利用目标笔刷对图像中的图像编辑区域进行编辑时,将图像编辑区域划分为至少两个子区域,基于GPU资源利用目标笔刷对各个子区域进行并行编辑。由于对图像进行编辑时是基于GPU资源对图像进行并行编辑的,因而,相较于现有技术中利用运行于CPU中的笔刷系统对图像进行编辑的编辑效率更高。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,本发明实施例提供的图像编辑方法。
具体的,上述图像编辑方法,包括:
接收笔刷选取指令和笔刷参数;
根据所述笔刷参数,对所述笔刷选取指令所指示笔刷的实现程序进行参数配置,运行配置参数后的实现程序,生成目标笔刷;
在接收到第一图像编辑指令后,根据所述目标笔刷的半径确定图像中的图像编辑区域,将所述图像编辑区域划分为至少两个子区域;
获得编辑各个子区域所需的各个GPU资源,基于所获得的GPU资源,利用所述目标笔刷对各个子区域进行并行编辑。
需要说明的是,通过上述计算机可读存储介质实现图像编辑方法的其他实施例,与前述方法实施例部分提供的实施例相同,这里不再赘述。
本发明实施例提供的各个方案中,通过运行上述计算机可读存储介质中存储的指令,可以在接收到笔刷选取指令和笔刷参数后,生成目标笔刷,并在利用目标笔刷对图像中的图像编辑区域进行编辑时,将图像编辑区域划分为至少两个子区域,基于GPU资源利用目标笔刷对各个子区域进行并行编辑。由于对图像进行编辑时是基于GPU资源对图像进行并行编辑的,因而,相较于现有技术中利用运行于CPU中的笔刷系统对图像进行编辑的编辑效率更高。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,实现本发明实施例提供的图像编辑方法。
具体的,上述图像编辑方法,包括:
接收笔刷选取指令和笔刷参数;
根据所述笔刷参数,对所述笔刷选取指令所指示笔刷的实现程序进行参数配置,运行配置参数后的实现程序,生成目标笔刷;
在接收到第一图像编辑指令后,根据所述目标笔刷的半径确定图像中的图像编辑区域,将所述图像编辑区域划分为至少两个子区域;
获得编辑各个子区域所需的各个GPU资源,基于所获得的GPU资源,利用所述目标笔刷对各个子区域进行并行编辑。
需要说明的是,通过上述计算机程序产品实现图像编辑方法的其他实施例,与前述方法实施例部提供的实施例相同,这里不再赘述。
本发明实施例提供的各个方案中,通过运行上述包含指令的计算机程序产品,可以在接收到笔刷选取指令和笔刷参数后,生成目标笔刷,并在利用目标笔刷对图像中的图像编辑区域进行编辑时,将图像编辑区域划分为至少两个子区域,基于GPU资源利用目标笔刷对各个子区域进行并行编辑。由于对图像进行编辑时是基于GPU资源对图像进行并行编辑的,因而,相较于现有技术中利用运行于CPU中的笔刷系统对图像进行编辑的编辑效率更高。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于方法、电子设备、计算机可读存储介质以及计算机程序产品实施例而言,由于其基本相似于系统实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。