一种基于并行计算的图片操作方法及系统的制作方法_2

文档序号:9326812阅读:来源:国知局
xSize。一行有mWidth个像素。
[0032]S202、根据操作行数以及单位像素大小,计算出偏移位置;
此步骤是根据第三个参数nLine和第四个参数mPixSize计算出偏移位置,偏移位置为nLine^mPixSize^ mffidth ; 5203、根据偏移位置和单位像素大小,分别依序从第一图片和第二图片的输入共享数据缓冲区读取一个像素值;
根据偏移位置和单位像素大小mPixSize,分别从第一图片和第二图片的输入共享数据缓冲区读取一个像素值,其是按照从O至(mWidth-Ι)的操作顺序取像素值的,取出的像素值分别记为srcPix和dstPix,分别取出第一图片和第二图片的一个像素值后,执行步骤S204 ;
5204、对像素值进行异或操作,若结果为O,则使用透明黑色值初始化输出像素,若结果不为O,则取两个像素值中alpha值不为O的颜色值作为输出像素;
先创建输出像素outPixJ# srcPix和dstPix的alpha值进行异或操作,如果结果为0,则用透明黑色值初始化outPix ;如果结果不为0,输出像素outPix取srcPix和dstPix中alpha值不为O的颜色值;当然本步骤还可使用其他的操作,来对图像像素值进行处理,合成第一图片和第二图片。
[0033]S205、将相应操作行数的输出像素写进输出共享数据缓冲区。
[0034]根据计算出的偏移位置以及单位像素大小mPixSize,按从O至(mWidth_l)的操作顺序将输出像素写进输出共享数据缓冲区outData,这样按从O至(mWidth-Ι)的操作顺序循环步骤S203至步骤S205,直至操作完相应操作行数。
[0035]在所述步骤S105中,利用并行计算语言系统将输出共享数据缓冲区的结果拷贝到CPU内存中,例如利用OpenCL中的ClEnqueueReadBuffer接口进行拷贝,拷贝完成后即完成图片数据填充,最后释放掉在并行计算过程中产生的资源即可。
[0036]基于上述方法,本发明还提供一种基于并行计算的图片操作系统较佳实施例,如图4所示,其包括:
解析模块100,用于将统一格式的第一图片和第二图片的数据分别解析到相应的内存块中,第一图片和第二图片的分辨率均为mWidth*mHeight ;
输入缓冲区创建模块200,用于创建与内存块--对应的输入共享数据缓冲区,将每一内存块中的数据拷贝至对应的输入共享数据缓冲区中;
输出缓冲区创建模块300,用于创建输出共享数据缓冲区,作为并行计算的输出缓冲区;
并行计算模块400,用于创建mHeight个线程,利用并行计算函数执行并行计算操作; 填充模块500,用于将操作结果拷贝至CPU内存中,完成图片数据填充。
[0037]进一步,所述输入缓冲区创建模块200还包括:
释放单元,用于拷贝完成后,释放各内存块中的数据。
[0038]进一步,如图5所示,所述并行计算模块400具体包括:
输入单元410,用于输入第一图片的数据、第二图片的数据、操作行数、单位像素大小至并行计算函数中;
计算单元420,用于根据操作行数以及单位像素大小,计算出偏移位置;
读取单元430,用于根据偏移位置和单位像素大小,分别依序从第一图片和第二图片的输入共享数据缓冲区读取一个像素值;
异或操作单元440,用于对像素值进行异或操作,若结果为0,则使用透明黑色值初始化输出像素,若结果不为0,则取两个像素值中alpha值不为O的颜色值作为输出像素; 输出单元450,用于将相应操作行数的输出像素写进输出共享数据缓冲区。
[0039]进一步,所述输出共享数据缓冲区的大小等于第二图片对应的输入共享数据缓冲区。
[0040]进一步,所述系统还包括:
释放模块,用于释放掉在并行计算过程中产生的资源。
[0041]关于上述模块单元的技术细节在前面的方法中已有详述,故不再赘述。
[0042]应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。
【主权项】
1.一种基于并行计算的图片操作方法,其特征在于,包括步骤: A、将统一格式的第一图片和第二图片的数据分别解析到相应的内存块中,第一图片和第二图片的分辨率均为mWidth*mHeight ;B、创建与内存块--对应的输入共享数据缓冲区,将每一内存块中的数据拷贝至对应的输入共享数据缓冲区中; C、创建输出共享数据缓冲区,作为并行计算的输出缓冲区; D、创建mHeight个线程,利用并行计算函数执行并行计算操作; E、将操作结果拷贝至CPU内存中,完成图片数据填充。2.根据权利要求1所述的基于并行计算的图片操作方法,其特征在于,所述步骤B还包括: 拷贝完成后,释放各内存块中的数据。3.根据权利要求1所述的基于并行计算的图片操作方法,其特征在于,所述步骤D具体包括: D1、输入第一图片的数据、第二图片的数据、操作行数、单位像素大小至并行计算函数中; D2、根据操作行数以及单位像素大小,计算出偏移位置; D3、根据偏移位置和单位像素大小,分别依序从第一图片和第二图片的输入共享数据缓冲区读取一个像素值; D4、对像素值进行异或操作,若结果为O,则使用透明黑色值初始化输出像素,若结果不为O,则取两个像素值中alpha值不为O的颜色值作为输出像素; D5、将相应操作行数的输出像素写进输出共享数据缓冲区。4.根据权利要求1所述的基于并行计算的图片操作方法,其特征在于,所述输出共享数据缓冲区的大小等于第二图片对应的输入共享数据缓冲区。5.根据权利要求1所述的基于并行计算的图片操作方法,其特征在于,所述步骤E之后还包括: F、释放掉在并行计算过程中产生的资源。6.一种基于并行计算的图片操作系统,其特征在于,包括: 解析模块,用于将统一格式的第一图片和第二图片的数据分别解析到相应的内存块中,第一图片和第二图片的分辨率均为mWidth*mHeight ;输入缓冲区创建模块,用于创建与内存块--对应的输入共享数据缓冲区,将每一内存块中的数据拷贝至对应的输入共享数据缓冲区中; 输出缓冲区创建模块,用于创建输出共享数据缓冲区,作为并行计算的输出缓冲区; 并行计算模块,用于创建mHeight个线程,利用并行计算函数执行并行计算操作; 填充模块,用于将操作结果拷贝至CPU内存中,完成图片数据填充。7.根据权利要求6所述的基于并行计算的图片操作系统,其特征在于,所述输入缓冲区创建模块还包括: 释放单元,用于拷贝完成后,释放各内存块中的数据。8.根据权利要求6所述的基于并行计算的图片操作系统,其特征在于,所述并行计算模块具体包括: 输入单元,用于输入第一图片的数据、第二图片的数据、操作行数、单位像素大小至并行计算函数中; 计算单元,用于根据操作行数以及单位像素大小,计算出偏移位置; 读取单元,用于根据偏移位置和单位像素大小,分别依序从第一图片和第二图片的输入共享数据缓冲区读取一个像素值; 异或操作单元,用于对像素值进行异或操作,若结果为O,则使用透明黑色值初始化输出像素,若结果不为O,则取两个像素值中alpha值不为O的颜色值作为输出像素; 输出单元,用于将相应操作行数的输出像素写进输出共享数据缓冲区。9.根据权利要求6所述的基于并行计算的图片操作系统,其特征在于,所述输出共享数据缓冲区的大小等于第二图片对应的输入共享数据缓冲区。10.根据权利要求6所述的基于并行计算的图片操作系统,其特征在于,还包括: 释放模块,用于释放掉在并行计算过程中产生的资源。
【专利摘要】本发明公开一种基于并行计算的图片操作方法及系统,其中,方法包括步骤:A、将统一格式的第一图片和第二图片的数据分别解析到相应的内存块中,第一图片和第二图片的分辨率均为mWidth*mHeight;B、创建与内存块一一对应的输入共享数据缓冲区,将每一内存块中的数据拷贝至对应的输入共享数据缓冲区中;C、创建输出共享数据缓冲区,作为并行计算的输出缓冲区;D、创建mHeight个线程,利用并行计算函数执行并行计算操作;E、将操作结果拷贝至CPU内存中,完成图片数据填充。本发明利用多个线程同时执行并行计算操作,即进行多线程的操作,所以相对于传统的单线程的操作,大大提高了操作效率,提高了开发速度。
【IPC分类】G06F3/06, G06F12/08
【公开号】CN105045726
【申请号】CN201510484636
【发明人】秦龙龙, 卢伟超
【申请人】Tcl集团股份有限公司
【公开日】2015年11月11日
【申请日】2015年8月10日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1