CN105045726B - 一种基于并行计算的图片操作方法及系统 - Google Patents

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

Info

Publication number
CN105045726B
CN105045726B CN201510484636.2A CN201510484636A CN105045726B CN 105045726 B CN105045726 B CN 105045726B CN 201510484636 A CN201510484636 A CN 201510484636A CN 105045726 B CN105045726 B CN 105045726B
Authority
CN
China
Prior art keywords
picture
parallel computation
buffer area
output
pixel
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
CN201510484636.2A
Other languages
English (en)
Other versions
CN105045726A (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.)
TCL Corp
Original Assignee
TCL Corp
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 TCL Corp filed Critical TCL Corp
Priority to CN201510484636.2A priority Critical patent/CN105045726B/zh
Publication of CN105045726A publication Critical patent/CN105045726A/zh
Application granted granted Critical
Publication of CN105045726B publication Critical patent/CN105045726B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Image Processing (AREA)

Abstract

本发明公开一种基于并行计算的图片操作方法及系统,其中,方法包括步骤:A、将统一格式的第一图片和第二图片的数据分别解析到相应的内存块中,第一图片和第二图片的分辨率均为mWidth*mHeight;B、创建与内存块一一对应的输入共享数据缓冲区,将每一内存块中的数据拷贝至对应的输入共享数据缓冲区中;C、创建输出共享数据缓冲区,作为并行计算的输出缓冲区;D、创建mHeight个线程,利用并行计算函数执行并行计算操作;E、将操作结果拷贝至CPU内存中,完成图片数据填充。本发明利用多个线程同时执行并行计算操作,即进行多线程的操作,所以相对于传统的单线程的操作,大大提高了操作效率,提高了开发速度。

Description

一种基于并行计算的图片操作方法及系统
技术领域
本发明涉及图片操作领域,尤其涉及一种基于并行计算的图片操作方法及系统。
背景技术
在应用开发过程中,经常会碰到图片的操作,比如用A图片做遮罩模板,用B图片做被遮罩模板,操作后得到的图片是A图片的形状,B图片的内容。
现有技术中,上述图片操作需要用户手动进行合并或者只是CPU进行单线程的操作,其操作效率低,不利于提高开发速度。
因此,现有技术还有待于改进和发展。
发明内容
鉴于上述现有技术的不足,本发明的目的在于提供一种基于并行计算的图片操作方法及系统,旨在解决现有的图片操作效率低的问题。
本发明的技术方案如下:
一种基于并行计算的图片操作方法,其中,包括步骤:
A、将统一格式的第一图片和第二图片的数据分别解析到相应的内存块中,第一图片和第二图片的分辨率均为mWidth*mHeight;
B、创建与内存块一一对应的输入共享数据缓冲区,将每一内存块中的数据拷贝至对应的输入共享数据缓冲区中;
C、创建输出共享数据缓冲区,作为并行计算的输出缓冲区;
D、创建mHeight个线程,利用并行计算函数执行并行计算操作;
E、将操作结果拷贝至CPU内存中,完成图片数据填充。
所述的基于并行计算的图片操作方法,其中,所述步骤B还包括:
拷贝完成后,释放各内存块中的数据。
所述的基于并行计算的图片操作方法,其中,所述步骤D具体包括:
D1、输入第一图片的数据、第二图片的数据、操作行数、单位像素大小至并行计算函数中;
D2、根据操作行数以及单位像素大小,计算出偏移位置;
D3、根据偏移位置和单位像素大小,分别依序从第一图片和第二图片的输入共享数据缓冲区读取一个像素值;
D4、对像素值进行异或操作,若结果为0,则使用透明黑色值初始化输出像素,若结果不为0,则取两个像素值中alpha值不为0的颜色值作为输出像素;
D5、将相应操作行数的输出像素写进输出共享数据缓冲区。
所述的基于并行计算的图片操作方法,其中,所述输出共享数据缓冲区的大小等于第二图片对应的输入共享数据缓冲区。
所述的基于并行计算的图片操作方法,其中,所述步骤E之后还包括:
F、释放掉在并行计算过程中产生的资源。
一种基于并行计算的图片操作系统,其中,包括:
解析模块,用于将统一格式的第一图片和第二图片的数据分别解析到相应的内存块中,第一图片和第二图片的分辨率均为mWidth*mHeight;
输入缓冲区创建模块,用于创建与内存块一一对应的输入共享数据缓冲区,将每一内存块中的数据拷贝至对应的输入共享数据缓冲区中;
输出缓冲区创建模块,用于创建输出共享数据缓冲区,作为并行计算的输出缓冲区;
并行计算模块,用于创建mHeight个线程,利用并行计算函数执行并行计算操作;
填充模块,用于将操作结果拷贝至CPU内存中,完成图片数据填充。
所述的基于并行计算的图片操作系统,其中,所述输入缓冲区创建模块还包括:
释放单元,用于拷贝完成后,释放各内存块中的数据。
所述的基于并行计算的图片操作系统,其中,所述并行计算模块具体包括:
输入单元,用于输入第一图片的数据、第二图片的数据、操作行数、单位像素大小至并行计算函数中;
计算单元,用于根据操作行数以及单位像素大小,计算出偏移位置;
读取单元,用于根据偏移位置和单位像素大小,分别依序从第一图片和第二图片的输入共享数据缓冲区读取一个像素值;
异或操作单元,用于对像素值进行异或操作,若结果为0,则使用透明黑色值初始化输出像素,若结果不为0,则取两个像素值中alpha值不为0的颜色值作为输出像素;
输出单元,用于将相应操作行数的输出像素写进输出共享数据缓冲区。
所述的基于并行计算的图片操作系统,其中,所述输出共享数据缓冲区的大小等于第二图片对应的输入共享数据缓冲区。
所述的基于并行计算的图片操作系统,其中,还包括:
释放模块,用于释放掉在并行计算过程中产生的资源。
有益效果:本发明利用多个线程同时执行并行计算操作,即进行多线程的操作,所以相对于传统的单线程的操作,大大提高了操作效率,提高了开发速度。
附图说明
图1为本发明一种基于并行计算的图片操作方法较佳实施例的流程图。
图2为本发明的方法中多线程并行计算操作的流程图。
图3为图1所示方法中步骤S104的具体流程图。
图4为本发明一种基于并行计算的图片操作系统较佳实施例的结构框图。
图5为图4所示系统中输入缓冲区创建模块的具体结构框图。
具体实施方式
本发明提供一种基于并行计算的图片操作方法及系统,为使本发明的目的、技术方案及效果更加清楚、明确,以下对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
请参阅图1,图1为本发明一种基于并行计算的图片操作方法较佳实施例的流程图,如图所示,其包括步骤:
S101、将统一格式的第一图片和第二图片的数据分别解析到相应的内存块中,第一图片和第二图片的分辨率均为mWidth*mHeight;
S102、创建与内存块一一对应的输入共享数据缓冲区,将每一内存块中的数据拷贝至对应的输入共享数据缓冲区中;
S103、创建输出共享数据缓冲区,作为并行计算的输出缓冲区;
S104、创建mHeight个线程,利用并行计算函数执行并行计算操作;
S105、将操作结果拷贝至CPU内存中,完成图片数据填充。
本发明实施例中,由于创建了多个线程,每个线程都能独立并行执行计算任务,所以相对于传统的单线程操作,大大提高了操作效率,提高了开发速度。
具体来讲,所述步骤S101中,第一图片和第二图片的格式需要统一,且分辨率也需统一,如果第一图片和第二图片的格式和分辨率不统一,则需要将二者格式和分辨率转换为一致。然后将第一图片和第二图片的数据分别解析到内存块mSrcData和mDstData中,第一图片和第二图片的分辨率均为mWidth*mHeight,单个像素大小为mPixSize。
在所述步骤S102中,首先根据内存块mSrcData和mDstData中的数据,利用并行计算语言系统创建两块对应的输入共享数据缓冲区,分别记为smSrcData和smDstData。例如利用OpenCL中利用接口clCreateBuffer创建出一块输入共享数据缓冲区。输入共享数据缓冲区其是供并行计算使用的,其实质是分配一片显存区域,以便于GPU进行并行计算时读入输入数据,并写入输出数据。
在创建输入共享数据缓冲区之后,需要利用并行计算语言系统接口,将mSrcData和mDstData中的数据分别拷贝到smSrcData和smDstData中。
拷贝完成后,即释放mSrcData和mDstData中的数据。
在所述步骤S103中,与步骤S102一样,需要利用并行计算语言系统创建输出共享数据缓冲区outData,作为并行计算的输出缓冲区。所述输出共享数据缓冲区的大小等于第二图片对应的输入共享数据缓冲区smDstData。
所述步骤S104中,利用并行计算模块来创建mHeight个线程,如图2所示,并执行并行计算操作,其中每个线程都各自独立执行并行计算操作。例如OpenCL使用clEnqueueNDRangeKernel函数执行此并行计算操作。
进一步,如图3所示,所述步骤S104具体包括:
S201、输入第一图片的数据、第二图片的数据、操作行数、单位像素大小至并行计算函数中;
并行计算函数所需的四个输入参数如下:
1、第一图片的数据,第一图片的数据可从smSrcData中获取; 2、第二图片的数据,第二图片的数据可从smDstData中获取; 3、操作行数,循环赋予mHeight个线程数值0~mHeight-1,记为nLine; 4、单位像素大小,单位像素大小为mPixSize。一行有mWidth个像素。
S202、根据操作行数以及单位像素大小,计算出偏移位置;
此步骤是根据第三个参数nLine和第四个参数mPixSize计算出偏移位置,偏移位置为nLine*mPixSize* mWidth;
S203、根据偏移位置和单位像素大小,分别依序从第一图片和第二图片的输入共享数据缓冲区读取一个像素值;
根据偏移位置和单位像素大小mPixSize,分别从第一图片和第二图片的输入共享数据缓冲区读取一个像素值,其是按照从0至(mWidth-1)的操作顺序取像素值的,取出的像素值分别记为srcPix和dstPix,分别取出第一图片和第二图片的一个像素值后,执行步骤S204;
S204、对像素值进行异或操作,若结果为0,则使用透明黑色值初始化输出像素,若结果不为0,则取两个像素值中alpha值不为0的颜色值作为输出像素;
先创建输出像素outPix,对srcPix和dstPix的alpha值进行异或操作,如果结果为0,则用透明黑色值初始化outPix;如果结果不为0,输出像素outPix取srcPix和dstPix中alpha值不为0的颜色值;当然本步骤还可使用其他的操作,来对图像像素值进行处理,合成第一图片和第二图片。
S205、将相应操作行数的输出像素写进输出共享数据缓冲区。
根据计算出的偏移位置以及单位像素大小mPixSize,按从0至(mWidth-1)的操作顺序将输出像素写进输出共享数据缓冲区outData,这样按从0至(mWidth-1)的操作顺序循环步骤S203至步骤S205,直至操作完相应操作行数。
在所述步骤S105中,利用并行计算语言系统将输出共享数据缓冲区的结果拷贝到CPU内存中,例如利用OpenCL中的clEnqueueReadBuffer接口进行拷贝,拷贝完成后即完成图片数据填充,最后释放掉在并行计算过程中产生的资源即可。
基于上述方法,本发明还提供一种基于并行计算的图片操作系统较佳实施例,如图4所示,其包括:
解析模块100,用于将统一格式的第一图片和第二图片的数据分别解析到相应的内存块中,第一图片和第二图片的分辨率均为mWidth*mHeight;
输入缓冲区创建模块200,用于创建与内存块一一对应的输入共享数据缓冲区,将每一内存块中的数据拷贝至对应的输入共享数据缓冲区中;
输出缓冲区创建模块300,用于创建输出共享数据缓冲区,作为并行计算的输出缓冲区;
并行计算模块400,用于创建mHeight个线程,利用并行计算函数执行并行计算操作;
填充模块500,用于将操作结果拷贝至CPU内存中,完成图片数据填充。
进一步,所述输入缓冲区创建模块200还包括:
释放单元,用于拷贝完成后,释放各内存块中的数据。
进一步,如图5所示,所述并行计算模块400具体包括:
输入单元410,用于输入第一图片的数据、第二图片的数据、操作行数、单位像素大小至并行计算函数中;
计算单元420,用于根据操作行数以及单位像素大小,计算出偏移位置;
读取单元430,用于根据偏移位置和单位像素大小,分别依序从第一图片和第二图片的输入共享数据缓冲区读取一个像素值;
异或操作单元440,用于对像素值进行异或操作,若结果为0,则使用透明黑色值初始化输出像素,若结果不为0,则取两个像素值中alpha值不为0的颜色值作为输出像素;
输出单元450,用于将相应操作行数的输出像素写进输出共享数据缓冲区。
进一步,所述输出共享数据缓冲区的大小等于第二图片对应的输入共享数据缓冲区。
进一步,所述系统还包括:
释放模块,用于释放掉在并行计算过程中产生的资源。
关于上述模块单元的技术细节在前面的方法中已有详述,故不再赘述。
应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。

Claims (8)

1.一种基于并行计算的图片操作方法,其特征在于,包括步骤:
A、将统一格式的第一图片和第二图片的数据分别解析到相应的内存块中,第一图片和第二图片的分辨率均为mWidth*mHeight;
B、创建与内存块一一对应的输入共享数据缓冲区,将每一内存块中的数据拷贝至对应的输入共享数据缓冲区中;
C、创建输出共享数据缓冲区,作为并行计算的输出缓冲区;
D、创建mHeight个线程,利用并行计算函数执行并行计算操作;
E、将操作结果拷贝至CPU内存中,完成图片数据填充;
所述步骤D具体包括:
D1、输入第一图片的数据、第二图片的数据、操作行数、单位像素大小至并行计算函数中;
D2、根据操作行数以及单位像素大小,计算出偏移位置;
D3、根据偏移位置和单位像素大小,分别依序从第一图片和第二图片的输入共享数据缓冲区读取一个像素值;
D4、对像素值进行异或操作,若结果为0,则使用透明黑色值初始化输出像素,若结果不为0,则取两个像素值中alpha值不为0的颜色值作为输出像素;
D5、将相应操作行数的输出像素写进输出共享数据缓冲区。
2.根据权利要求1所述的基于并行计算的图片操作方法,其特征在于,所述步骤B还包括:
拷贝完成后,释放各内存块中的数据。
3.根据权利要求1所述的基于并行计算的图片操作方法,其特征在于,所述输出共享数据缓冲区的大小等于第二图片对应的输入共享数据缓冲区的大小。
4.根据权利要求1所述的基于并行计算的图片操作方法,其特征在于,所述步骤E之后还包括:
F、释放掉在并行计算过程中产生的资源。
5.一种基于并行计算的图片操作系统,其特征在于,包括:
解析模块,用于将统一格式的第一图片和第二图片的数据分别解析到相应的内存块中,第一图片和第二图片的分辨率均为mWidth*mHeight;
输入缓冲区创建模块,用于创建与内存块一一对应的输入共享数据缓冲区,将每一内存块中的数据拷贝至对应的输入共享数据缓冲区中;
输出缓冲区创建模块,用于创建输出共享数据缓冲区,作为并行计算的输出缓冲区;
并行计算模块,用于创建mHeight个线程,利用并行计算函数执行并行计算操作;
填充模块,用于将操作结果拷贝至CPU内存中,完成图片数据填充;
所述并行计算模块具体包括:
输入单元,用于输入第一图片的数据、第二图片的数据、操作行数、单位像素大小至并行计算函数中;
计算单元,用于根据操作行数以及单位像素大小,计算出偏移位置;
读取单元,用于根据偏移位置和单位像素大小,分别依序从第一图片和第二图片的输入共享数据缓冲区读取一个像素值;
异或操作单元,用于对像素值进行异或操作,若结果为0,则使用透明黑色值初始化输出像素,若结果不为0,则取两个像素值中alpha值不为0的颜色值作为输出像素;
输出单元,用于将相应操作行数的输出像素写进输出共享数据缓冲区。
6.根据权利要求5所述的基于并行计算的图片操作系统,其特征在于,所述输入缓冲区创建模块还包括:
释放单元,用于拷贝完成后,释放各内存块中的数据。
7.根据权利要求5所述的基于并行计算的图片操作系统,其特征在于,所述输出共享数据缓冲区的大小等于第二图片对应的输入共享数据缓冲区的大小。
8.根据权利要求5所述的基于并行计算的图片操作系统,其特征在于,还包括:
释放模块,用于释放掉在并行计算过程中产生的资源。
CN201510484636.2A 2015-08-10 2015-08-10 一种基于并行计算的图片操作方法及系统 Expired - Fee Related CN105045726B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510484636.2A CN105045726B (zh) 2015-08-10 2015-08-10 一种基于并行计算的图片操作方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510484636.2A CN105045726B (zh) 2015-08-10 2015-08-10 一种基于并行计算的图片操作方法及系统

Publications (2)

Publication Number Publication Date
CN105045726A CN105045726A (zh) 2015-11-11
CN105045726B true CN105045726B (zh) 2019-10-11

Family

ID=54452289

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510484636.2A Expired - Fee Related CN105045726B (zh) 2015-08-10 2015-08-10 一种基于并行计算的图片操作方法及系统

Country Status (1)

Country Link
CN (1) CN105045726B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107545165B (zh) * 2017-08-16 2021-10-22 惠州Tcl移动通信有限公司 一种移动终端及其指纹图片处理方法、及存储介质
CN111047498B (zh) * 2019-11-18 2022-12-06 中国航空工业集团公司西安航空计算技术研究所 一种面向gpu硬件拷贝缓冲区算法的tlm微结构
CN110942418B (zh) * 2019-11-18 2023-06-13 中国航空工业集团公司西安航空计算技术研究所 一种基于glCopyPixels的GPU像素复制方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101114382A (zh) * 2006-05-22 2008-01-30 辉达公司 帧缓冲区合并
CN103136724A (zh) * 2011-11-30 2013-06-05 北大方正集团有限公司 加网方法和装置
CN103218174A (zh) * 2013-03-29 2013-07-24 航天恒星科技有限公司 一种用于遥感图像的io双缓存交互多核处理方法
CN103903292A (zh) * 2012-12-27 2014-07-02 北京新媒传信科技有限公司 一种实现头像编辑界面的方法和系统

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080074428A1 (en) * 2003-11-19 2008-03-27 Reuven Bakalash Method of rendering pixel-composited images for a graphics-based application running on a computing system embodying a multi-mode parallel graphics rendering system
US20130242186A1 (en) * 2012-03-14 2013-09-19 Samsung Electronics Co., Ltd. Image processing apparatus and control method thereof
US9454843B2 (en) * 2013-02-05 2016-09-27 Nvidia Corporation Modulated and blended anti-aliasing

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101114382A (zh) * 2006-05-22 2008-01-30 辉达公司 帧缓冲区合并
CN103136724A (zh) * 2011-11-30 2013-06-05 北大方正集团有限公司 加网方法和装置
CN103903292A (zh) * 2012-12-27 2014-07-02 北京新媒传信科技有限公司 一种实现头像编辑界面的方法和系统
CN103218174A (zh) * 2013-03-29 2013-07-24 航天恒星科技有限公司 一种用于遥感图像的io双缓存交互多核处理方法

Also Published As

Publication number Publication date
CN105045726A (zh) 2015-11-11

Similar Documents

Publication Publication Date Title
US10949944B2 (en) System and method for unified application programming interface and model
EP3420527B1 (en) Compiler techniques for mapping program code to a high performance, power efficient, programmable image processing hardware platform
CN107438861B (zh) 用于图像生成器的数据片生成器
CN105045726B (zh) 一种基于并行计算的图片操作方法及系统
CN105303506A (zh) 一种基于html5的数据并行处理方法及系统
JP6775088B2 (ja) 画像プロセッサランタイム効率を向上するためのプログラムコード変形
TWI712312B (zh) 影像處理器輸入輸出單元
CN101908216B (zh) 一种实现矢量字体的方法及装置
CN101783021B (zh) 实现gpu运算提高dr图像处理速度的方法
TWI745084B (zh) 用於影像處理器之巨型輸入/輸出單元
US20160093112A1 (en) Deep image identifiers
CN104240285A (zh) 利用vtf技术处理cpu大批量数据传入gpu的方法
CN102736552A (zh) 一种应用于plc开发的梯形图转换为语句表的方法
CN104463803A (zh) 一种消除图像锯齿的方法及装置
CN104182928A (zh) 矢量图形快速多边形填充方法
CN115082371B (zh) 图像融合方法、装置、移动终端设备及可读存储介质
CN102280098B (zh) 点阵字缩放的方法及系统
CN108572593A (zh) 跨平台卷积神经网络控制系统及方法、信息数据处理终端
CN103839217A (zh) 一种水印图片的实现方法
JP6840860B2 (ja) 画像処理装置、画像処理方法及びプログラム
CN105068803A (zh) 人机界面实现方法及装置
CN108776987A (zh) 一种基于屏幕空间的模型轮廓绘制方法
CN102521879A (zh) 一种2d转3d的方法
CN111857918A (zh) 2D桌面PorterDuff实现方法及装置
CN104778471B (zh) 一种基于gpu的多尺度空间特征提取方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for 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: 20191011