CN106251291A - 利用OpenGL与OpenCL协作实现图像缩放的方法及系统 - Google Patents
利用OpenGL与OpenCL协作实现图像缩放的方法及系统 Download PDFInfo
- Publication number
- CN106251291A CN106251291A CN201610606040.XA CN201610606040A CN106251291A CN 106251291 A CN106251291 A CN 106251291A CN 201610606040 A CN201610606040 A CN 201610606040A CN 106251291 A CN106251291 A CN 106251291A
- Authority
- CN
- China
- Prior art keywords
- image
- opencl
- opengl
- scaling
- function
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 58
- 230000007613 environmental effect Effects 0.000 claims abstract description 29
- 238000007689 inspection Methods 0.000 claims description 3
- 238000001514 detection method Methods 0.000 claims description 2
- 230000000694 effects Effects 0.000 abstract 1
- 230000006870 function Effects 0.000 description 44
- 238000004364 calculation method Methods 0.000 description 4
- 238000007667 floating Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000010422 painting Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/40—Scaling of whole images or parts thereof, e.g. expanding or contracting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/40—Scaling of whole images or parts thereof, e.g. expanding or contracting
- G06T3/4023—Scaling of whole images or parts thereof, e.g. expanding or contracting based on decimating pixels or lines of pixels; based on inserting pixels or lines of pixels
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Editing Of Facsimile Originals (AREA)
- Image Processing (AREA)
Abstract
本发明公开了一种利用OpenGL与OpenCL协作实现图像缩放的方法及系统,涉及图像缩放技术领域。该图像缩放方法包括:在OpenCL设备中创建与OpenGL互操作的上下文环境;利用创建的上下文环境,根据需要缩放的图像的维度,分别从两个相应维度的OpenGL纹理中,创建出两个相应维度的OpenCL图像对象;创建的两个OpenCL图像对象中,一个代表输入的源图像,另一个代表目标图像;通过图像的双线性内插值算法,对创建的源图像进行缩放处理,并将处理后的结果写入到目标图像中;通过调用OpenGL中相应维度的绘制纹理接口,将缩放后的目标图像显示出来。本发明能在较高的效率下完成对较大分辨率图像的缩放处理,运算效率高、处理效果好。
Description
技术领域
本发明涉及图像缩放技术领域,具体来讲是一种利用OpenGL(Open GraphicsLibrary,开放图形库)与OpenCL(Open Computing Language,开放运算语言)协作实现图像缩放的方法及系统。
背景技术
如今,对图像进行放大或者缩小在图像处理中非常的频繁,从一般的视频播放器到一些专业的图像处理软件,可能都会对某些图像进行缩放处理。
但目前,对图像进行缩放处理的方法,一般多源于在CPU中利用某些算法,对图像进行处理,例如:中国公开的公告号为CN102567949A的《一种图像缩放处理方法及装置》。这种方法在处理一些小分辨率的图像或者计算机性能比较好的情况下,完成一次图像处理所需要的时间可能比较小。但是在处理分辨率非常大的图像或者计算机性能又一般的情况下,完成一次图像处理所需要的时间可能会集聚的增加,从而使得处理的效率非常的低下。
因此,如何在较高的效率下完成对较大分辨率图像的缩放处理是本领域亟待解决的问题。
发明内容
本发明的目的是为了克服上述背景技术的不足,提供一种利用OpenGL与OpenCL协作实现图像缩放的方法及系统,能在较高的效率下完成对较大分辨率图像的缩放处理。
为达到以上目的,本发明采取的技术方案是:提供一种利用OpenGL与OpenCL协作实现图像缩放的方法,该方法包括以下步骤:A、在OpenCL设备中创建与OpenGL互操作的上下文环境,转入步骤B;B、利用创建的上下文环境,根据需要缩放的图像的维度,分别从两个相应维度的OpenGL纹理中,创建出两个相应维度的OpenCL图像对象;创建的两个OpenCL图像对象中,一个代表输入的源图像,另一个代表目标图像,转入步骤C;C、通过图像的双线性内插值算法,对创建的源图像进行缩放处理,并将处理后的结果写入到目标图像中,转入步骤D;D、通过调用OpenGL中相应维度的绘制纹理接口,将缩放后的目标图像显示出来,结束。
在上述技术方案的基础上,在步骤A之前还包括OpenCL设备检测操作:查询当前的OpenCL设备是否支持与OpenGL的互操作扩展,若是,进入步骤A;否则,直接退出。
在上述技术方案的基础上,步骤A的具体流程为:A1、将OpenGL上下文获取函数的返回值赋值至OpenGL协作创建函数中对应的上下文字段中,转入步骤A2;A2、将OpenGL设备环境获取函数的返回值赋值至OpenGL协作创建函数中对应的设备字段中,转入步骤A3;A3、通过调用OpenCL的上下文环境创建函数,创建与OpenGL互操作的上下文。
在上述技术方案的基础上,步骤B中所述创建出两个相应维度的OpenCL图像对象时,是通过OpenCL中相应维度的图像创建函数实现的。
在上述技术方案的基础上,步骤C的具体流程为:C1、计算源图像与目标图像之间的宽比例fw和高比例fh,转入步骤C2;C2、针对目标图像的一个点(x,y),根据计算得到的fw和fh,计算出该 点(x,y)在源图像中的对应坐标(x0,y0);根据所述对应坐标(x0,y0)获取到点(x,y)在源图像中的邻近四个点的坐标(x1,y1)、(x1,y2)、(x2,y1)、(x2,y2),转入步骤C3;C3、根据邻近四个点的坐标(x1,y1)、(x1,y2)、(x2,y1)、(x2,y2),分别计算出这四个点所占的权重比值S1、S2、S3、S4,转入步骤C4;C4、根据S1、S2、S3、S4,计算出所述对应坐标(x0,y0)的像素值value(x0,y0),转入步骤C5;C5、通过OpenCL的像素值写入函数,将计算出的像素值value(x0,y0)写入到目标图像中,转入步骤C6;C6:重复步骤C2~C5,直至目标图像的所有点都处理完毕。
本发明还提供一种利用OpenGL与OpenCL协作实现图像缩放的系统,该系统包括上下文环境创建模块、图像对象创建模块、缩放处理模块和图像显示模块;所述上下文环境创建模块用于:在OpenCL设备中创建与OpenGL互操作的上下文环境;所述图像对象创建模块用于:利用创建的上下文环境,根据需要缩放的图像的维度,分别从两个相应维度的OpenGL纹理中,创建出两个相应维度的OpenCL图像对象;创建的两个OpenCL图像对象中,一个代表输入的源图像,另一个代表目标图像;所述缩放处理模块用于:通过图像的双线性内插值算法,对创建的源图像进行缩放处理,并将处理后的结果写入到目标图像中;所述图像显示模块用于:通过调用OpenGL中相应维度的绘制纹理接口,将缩放后的目标图像显示出来。
在上述技术方案的基础上,该系统还包括OpenCL设备检测模块,用于查询当前的OpenCL设备是否支持与OpenGL的互操作扩展。
在上述技术方案的基础上,所述上下文环境创建模块的具体工作流程为:将OpenGL上下文获取函数的返回值赋值至OpenGL协作创建函数中对应的上下文字段中;将OpenGL设备环境获取函数的返回 值赋值至OpenGL协作创建函数中对应的设备字段中;通过调用OpenCL的上下文环境创建函数,创建与OpenGL互操作的上下文。
在上述技术方案的基础上,所述图像对象创建模块创建出两个相应维度的OpenCL图像对象时,是通过OpenCL中相应维度的图像创建函数实现的。
在上述技术方案的基础上,所述缩放处理模块的具体工作流程为:计算源图像与目标图像之间的宽比例fw和高比例fh;针对目标图像的一个点(x,y),根据计算得到的fw和fh,计算出该点(x,y)在源图像中的对应坐标(x0,y0);根据所述对应坐标(x0,y0)获取到点(x,y)在源图像中的邻近四个点的坐标(x1,y1)、(x1,y2)、(x2,y1)、(x2,y2);根据邻近四个点的坐标(x1,y1)、(x1,y2)、(x2,y1)、(x2,y2),分别计算出这四个点所占的权重比值S1、S2、S3、S4;根据S1、S2、S3、S4,计算出所述对应坐标(x0,y0)的像素值value(x0,y0);通过OpenCL的像素值写入函数,将计算出的像素值value(x0,y0)写入到目标图像中;重复上述操作,直至目标图像的所有点都处理完毕。
本发明的有益效果在于:
与现有技术中通过CPU实现图像处理的方式相比,本发明利用OpenGL与OpenCL互操作的方法,在GPU上实现了对给定图像进行缩放处理的目的。在处理图像缩放时,采用的是图像的双线性内插值算法来对图像进行缩放处理,且该算法的处理过程是在OpenCL设备中通过相应函数执行的,因此,相对于在CPU中执行具有更高的运算效率。同时,也因为OpenCL与OpenGL进行协作,使得我们对OpenCL进行的图像输入与操作后的图像输出都来源于OpenGL的纹理,这样省去了大量的与主机进行图像像素传输方面的开销,进一步 的提高了算法的效率。
附图说明
图1为本发明实施例中利用OpenGL与OpenCL协作实现图像缩放的方法的流程图;
图2为本发明实施例中利用OpenGL与OpenCL协作实现图像缩放的系统的结构框图。
具体实施方式
下面结合附图及具体实施例对本发明作进一步的详细描述。
本发明是利用OpenGL与OpenCL的互操作的方法,在基于GPU(Graphic ProcessingUnit,图形处理器)的OpenCL设备中通过执行OpenCL的内核函数(OpenCL程序中带有kernel关键字的函数),来实现对给定图像进行缩放处理的目的。
其中,OpenGL(Open Graphics Library,开放图形库)是一个功能强大,调用方便的底层图形库,其定义了跨编程语言、跨平台的编程接口规格的专业的图形程序接口库,用于二维、三维图像。在OpenGL中,包含有多种OpenGL纹理:1D纹理、2D纹理、3D纹理(可简单理解成一维图像、二维图像、三维图像)。纹理包含了颜色数据、亮度数据和透明度数据,可以把纹理映射到由一组多边形构成的表面上形成图像。
另外,OpenCL设备是一种用于执行OpenCL内核函数的设备。其中,OpenCL是一个为异构平台(CPU,GPU或其他类型的处理器)编写程序的框架,由一种用于编写内核kernels的语言和一组用于定义并控制平台的API(Application Programming Interface,应用编程接口)组成。OpenCL的核心是OpenCL的上下文环境,上下文环境为 关联的设备、内存对象(例如,缓冲区和图像)以及命令队列(在上下文和各设备之间提供一个接口)提供容器,并驱动着应用程序与关联设备以及关联设备之间的通信。
基于上述技术原理,参见图1所示,本发明实施例提供一种利用OpenGL与OpenCL协作实现图像缩放的方法,包括以下步骤:
步骤S1:查询当前的OpenCL设备是否支持与OpenGL的互操作扩展(即查询当前OpenCL设备是否支持互操作函数cl_khr_gl_sharing),若是,转入步骤S2;否则,表明当前OpenCL设备不支持OpenGL与OpenCL的互操作,从而不能实现本发明的目的,则直接退出。
步骤S2:在OpenCL设备中创建与OpenGL互操作的上下文环境,转入步骤S3。
实际操作时,步骤S2具体包括以下操作:
步骤S201:在OpenCL设备的系统中,将OpenGL上下文获取函数wglGetCurrentContext(该函数用于获取当前OpenGL上下文环境的函数)的返回值赋值至OpenGL协作创建函数中对应的上下文字段(CL_GL_CONTEXT_KHR)中,转入步骤S202;
步骤S202:将OpenGL设备环境获取函数wglGetCurrentDC(该函数用于获取OpenGL当前的设备环境HDC)的返回值赋值至OpenGL协作创建函数中对应的设备字段(CL_WGL_HDC_KHR)中,转入步骤S203;
步骤S203:通过调用OpenCL的上下文环境创建函数clCreateContext(该函数用于创建对应设备的上下文环境),创建与OpenGL互操作的上下文。
步骤S3:利用创建的上下文环境,根据需要缩放的图像的维度 (如二维图像或三维图像),分别从两个相应维度的OpenGL纹理中(如OpenGL2D纹理或OpenGL3D纹理),创建出两个相应维度的OpenCL图像对象(如二维图像对象image2d_t或三维图像对象image3d_t);两个OpenCL图像对象中,一个代表输入的源图像,这个用来进行缩放;另一个代表目标图像,用来保存缩放后的图像,转入步骤S4。
其中,步骤S3中,创建出两个相应维度的OpenCL图像对象时,是通过OpenCL中的二维图像创建函数clCreateFromGLTexture2D或三维图像创建函数clCreateFromGLTexture3D来实现的。clCreateFromGLTexture2D函数用于从一个OpenGL的2D纹理中创建一个OpenCL的2D(二维)图像对象;clCreateFromGLTexture3D函数用于从一个OpenGL的3D纹理中创建一个OpenCL的3D(三维)图像对象,从而实现OpenCL和OpenGL对图像的互操作。
步骤S4:利用已编写好的OpenCL的内核函数,通过图像的双线性内插值算法,对创建的源图像进行缩放处理;并将处理后的结果写入到目标图像中,转入步骤S5。
具体来说,通过图像的双线性内插值算法,对创建的源图像进行缩放处理,并将处理后的结果写入到目标图像中,具体包括以下操作:
步骤S401:计算源图像与目标图像之间的宽比例fw和高比例fh,且计算结果用浮点数表示,转入步骤S402;
其中,宽比例fw的计算公式为:fw=(w0-1)/(w1-1),w0表示源图像的宽度,w1表示目标图像的宽度;高比例fh的计算公式为:fh=(h0-1)/(h1-1),h0表示源图像的高度,h1表示目标图像的高度。
步骤S402:针对目标图像的一个点(x,y),x为横坐标、y为纵坐标,根据计算得到的fw和fh,计算出该点(x,y)在源图像中 的对应坐标(x0,y0),且计算结果用浮点数表示;根据所述对应坐标(x0,y0)获取到点(x,y)在源图像中对应的邻近四个点的坐标(x1,y1)、(x1,y2)、(x2,y1)、(x2,y2),且坐标取整型,转入步骤S403;其中,
float x0=x*fw,float y0=y*fh,float表示结果取浮点数;
int x1=int(x0),int x2=x1+1,int y1=int(y0),int y2=y1+1,int表示结果取整型。
步骤S403:根据邻近四个点的坐标,分别计算出这四个点所占的权重比值S1、S2、S3、S4,且计算结果用浮点数表示,转入步骤S404;
其中,S1=(x0-x1)*(y0-y1);
S2=[1-(x0-x1)]*(y0-y1);
S3=[1-(x0-x1)]*[1-(y0-y1)];
S4=(x0-x1)*[1-(y0-y1)]。
步骤S404:根据S1、S2、S3、S4,计算出坐标(x0,y0)的像素值value(x0,y0),转入步骤S405;
具体来说,像素值value(x0,y0)的计算公式为:value(x0,y0)=value(x2,y2)*s1+value(x1,y2)*s2+value(x1,y1)*s3+value(x2,y1)*s4;其中value(x2,y2)、value(x1,y2)、value(x1,y1)、value(x2,y1)分别表示对应坐标处的源图像像素值,该像素值通过OpenCL内置的像素值获取函数read_imagef获取得到。
步骤S405:通过OpenCL内置的像素值写入函数write_imagef,将计算出的像素值value(x0,y0)写入到缩放后的目标图像中,转入步骤S406;
步骤S406:重复步骤S402~S405,直至目标图像的所有点都处 理完毕。
可以理解的是,图像的双线性内插值算法中,目标图像中新创造的像素值(即坐标值),是由源图像位置在它附近的2*2区域4个邻近像素的值,通过加权平均计算得出的。双线性内插值算法放大后的图像质量较高,不会出现像素值不连续的情况。
步骤S5:通过调用OpenGL中相应维度的绘制纹理接口(如绘制2D纹理的接口或绘制3D纹理的接口),将缩放后的目标图像显示出来,结束。
参见图2所示,本发明还提供了一种利用OpenGL与OpenCL协作实现图像缩放的系统,该系统包括上下文环境创建模块、图像对象创建模块、缩放处理模块和图像显示模块。
上下文环境创建模块用于:在OpenCL设备中创建与OpenGL互操作的上下文环境,具体工作流程为:将OpenGL上下文获取函数的返回值赋值至OpenGL协作创建函数中对应的上下文字段中;将OpenGL设备环境获取函数的返回值赋值至OpenGL协作创建函数中对应的设备字段中;通过调用OpenCL的上下文环境创建函数,创建与OpenGL互操作的上下文。
图像对象创建模块用于:利用创建的上下文环境,根据需要缩放的图像的维度,分别从两个相应维度的OpenGL纹理中,创建出两个相应维度的OpenCL图像对象(通过OpenCL中相应维度的图像创建函数实现);创建的两个OpenCL图像对象中,一个代表输入的源图像,另一个代表目标图像。
缩放处理模块用于:通过图像的双线性内插值算法,对创建的源图像进行缩放处理,并将处理后的结果写入到目标图像中。其具体工作流程为:计算源图像与目标图像之间的宽比例fw和高比例fh;针 对目标图像的一个点(x,y),根据计算得到的fw和fh,计算出该点(x,y)在源图像中的对应坐标(x0,y0);根据所述对应坐标(x0,y0)获取到点(x,y)在源图像中的邻近四个点的坐标(x1,y1)、(x1,y2)、(x2,y1)、(x2,y2);根据邻近四个点的坐标(x1,y1)、(x1,y2)、(x2,y1)、(x2,y2),分别计算出这四个点所占的权重比值S1、S2、S3、S4;根据S1、S2、S3、S4,计算出所述对应坐标(x0,y0)的像素值value(x0,y0);通过OpenCL的像素值写入函数,将计算出的像素值value(x0,y0)写入到目标图像中;重复上述操作,直至目标图像的所有点都处理完毕。
图像显示模块用于:通过调用OpenGL中相应维度的绘制纹理接口,将缩放后的目标图像显示出来。
进一步地,实际操作时,为了确保当前的OpenCL设备能支持与OpenGL的互操作,保证操作的有效性,因此,本发明的系统中还增设有OpenCL设备检测模块,该模块用于查询当前的OpenCL设备是否支持与OpenGL的互操作扩展,若支持,则调用其他功能模块进行图像缩放处理,若不支持,则退出操作。
需要说明的是:上述实施例提供的利用OpenGL与OpenCL协作实现图像缩放的系统在进行图像缩放时,仅以上述各功能模块的划分进行举例说明,实际应用中,可根据需要将上述功能分配由不同的功能模块完成,即将系统的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。
Claims (10)
1.一种利用OpenGL与OpenCL协作实现图像缩放的方法,其特征在于,该方法包括以下步骤:
A、在OpenCL设备中创建与OpenGL互操作的上下文环境,转入步骤B;
B、利用创建的上下文环境,根据需要缩放的图像的维度,分别从两个相应维度的OpenGL纹理中,创建出两个相应维度的OpenCL图像对象;创建的两个OpenCL图像对象中,一个代表输入的源图像,另一个代表目标图像,转入步骤C;
C、通过图像的双线性内插值算法,对创建的源图像进行缩放处理,并将处理后的结果写入到目标图像中,转入步骤D;
D、通过调用OpenGL中相应维度的绘制纹理接口,将缩放后的目标图像显示出来,结束。
2.如权利要求1所述的利用OpenGL与OpenCL协作实现图像缩放的方法,其特征在于:在步骤A之前还包括OpenCL设备检测操作:查询当前的OpenCL设备是否支持与OpenGL的互操作扩展,若是,进入步骤A;否则,直接退出。
3.如权利要求1所述的利用OpenGL与OpenCL协作实现图像缩放的方法,其特征在于,步骤A的具体流程为:
A1、将OpenGL上下文获取函数的返回值赋值至OpenGL协作创建函数中对应的上下文字段中,转入步骤A2;
A2、将OpenGL设备环境获取函数的返回值赋值至OpenGL协作创建函数中对应的设备字段中,转入步骤A3;
A3、通过调用OpenCL的上下文环境创建函数,创建与OpenGL互操作的上下文。
4.如权利要求1所述的利用OpenGL与OpenCL协作实现图像缩放的方法,其特征在于:步骤B中所述创建出两个相应维度的OpenCL图像对象时,是通过OpenCL中相应维度的图像创建函数实现的。
5.如权利要求1所述的利用OpenGL与OpenCL协作实现图像缩放的方法,其特征在于,步骤C的具体流程为:
C1、计算源图像与目标图像之间的宽比例fw和高比例fh,转入步骤C2;
C2、针对目标图像的一个点(x,y),根据计算得到的fw和fh,计算出该点(x,y)在源图像中的对应坐标(x0,y0);根据所述对应坐标(x0,y0)获取到点(x,y)在源图像中的邻近四个点的坐标(x1,y1)、(x1,y2)、(x2,y1)、(x2,y2),转入步骤C3;
C3、根据邻近四个点的坐标(x1,y1)、(x1,y2)、(x2,y1)、(x2,y2),分别计算出这四个点所占的权重比值S1、S2、S3、S4,转入步骤C4;
C4、根据S1、S2、S3、S4,计算出所述对应坐标(x0,y0)的像素值value(x0,y0),转入步骤C5;
C5、通过OpenCL的像素值写入函数,将计算出的像素值value(x0,y0)写入到目标图像中,转入步骤C6;
C6:重复步骤C2~C5,直至目标图像的所有点都处理完毕。
6.一种利用OpenGL与OpenCL协作实现图像缩放的系统,其特征在于:该系统包括上下文环境创建模块、图像对象创建模块、缩放处理模块和图像显示模块;
所述上下文环境创建模块用于:在OpenCL设备中创建与OpenGL互操作的上下文环境;
所述图像对象创建模块用于:利用创建的上下文环境,根据需要缩放的图像的维度,分别从两个相应维度的OpenGL纹理中,创建出两个相应维度的OpenCL图像对象;创建的两个OpenCL图像对象中,一个代表输入的源图像,另一个代表目标图像;
所述缩放处理模块用于:通过图像的双线性内插值算法,对创建的源图像进行缩放处理,并将处理后的结果写入到目标图像中;
所述图像显示模块用于:通过调用OpenGL中相应维度的绘制纹理接口,将缩放后的目标图像显示出来。
7.如权利要求6所述的利用OpenGL与OpenCL协作实现图像缩放的系统,其特征在于:该系统还包括OpenCL设备检测模块,用于查询当前的OpenCL设备是否支持与OpenGL的互操作扩展。
8.如权利要求6所述的利用OpenGL与OpenCL协作实现图像缩放的系统,其特征在于,所述上下文环境创建模块的具体工作流程为:将OpenGL上下文获取函数的返回值赋值至OpenGL协作创建函数中对应的上下文字段中;将OpenGL设备环境获取函数的返回值赋值至OpenGL协作创建函数中对应的设备字段中;通过调用OpenCL的上下文环境创建函数,创建与OpenGL互操作的上下文。
9.如权利要求6所述的利用OpenGL与OpenCL协作实现图像缩放的系统,其特征在于:所述图像对象创建模块创建出两个相应维度的OpenCL图像对象时,是通过OpenCL中相应维度的图像创建函数实现的。
10.如权利要求6所述的利用OpenGL与OpenCL协作实现图像缩放的系统,其特征在于,所述缩放处理模块的具体工作流程为:计算源图像与目标图像之间的宽比例fw和高比例fh;针对目标图像的一个点(x,y),根据计算得到的fw和fh,计算出该点(x,y)在源图像中的对应坐标(x0,y0);根据所述对应坐标(x0,y0)获取到点(x,y)在源图像中的邻近四个点的坐标(x1,y1)、(x1,y2)、(x2,y1)、(x2,y2);根据邻近四个点的坐标(x1,y1)、(x1,y2)、(x2,y1)、(x2,y2),分别计算出这四个点所占的权重比值S1、S2、S3、S4;根据S1、S2、S3、S4,计算出所述对应坐标(x0,y0)的像素值value(x0,y0);通过OpenCL的像素值写入函数,将计算出的像素值value(x0,y0)写入到目标图像中;重复上述操作,直至目标图像的所有点都处理完毕。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610606040.XA CN106251291A (zh) | 2016-07-28 | 2016-07-28 | 利用OpenGL与OpenCL协作实现图像缩放的方法及系统 |
PCT/CN2017/080778 WO2018018941A1 (zh) | 2016-07-28 | 2017-04-17 | 利用OpenGL与OpenCL协作实现图像缩放的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610606040.XA CN106251291A (zh) | 2016-07-28 | 2016-07-28 | 利用OpenGL与OpenCL协作实现图像缩放的方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106251291A true CN106251291A (zh) | 2016-12-21 |
Family
ID=57604684
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610606040.XA Pending CN106251291A (zh) | 2016-07-28 | 2016-07-28 | 利用OpenGL与OpenCL协作实现图像缩放的方法及系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN106251291A (zh) |
WO (1) | WO2018018941A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107422953A (zh) * | 2017-06-19 | 2017-12-01 | 南京巨鲨显示科技有限公司 | 一种用于医用显示器的图像局部突出缩放方法 |
WO2018018941A1 (zh) * | 2016-07-28 | 2018-02-01 | 武汉斗鱼网络科技有限公司 | 利用OpenGL与OpenCL协作实现图像缩放的方法及系统 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109872268B (zh) * | 2018-12-20 | 2022-09-16 | 中国电子科技集团公司第二十七研究所 | 一种高码速率遥感卫星原始数据实时快视方法 |
CN111722887A (zh) * | 2020-05-30 | 2020-09-29 | 南京恒歌零一信息科技有限公司 | 一种对海量散点数据的处理和显示的方法和系统 |
WO2022076361A1 (en) * | 2020-10-05 | 2022-04-14 | Thrive Bioscience, Inc. | Method and apparatus for displaying cultured cells |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103888771A (zh) * | 2013-12-30 | 2014-06-25 | 中山大学深圳研究院 | 基于gpgpu技术的并行视频图像处理方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10013732B2 (en) * | 2013-06-28 | 2018-07-03 | Lockheed Martin Corporation | Externally directed GPU data |
CN105303506B (zh) * | 2014-06-19 | 2018-10-26 | Tcl集团股份有限公司 | 一种基于html5的数据并行处理方法及系统 |
CN106251291A (zh) * | 2016-07-28 | 2016-12-21 | 武汉斗鱼网络科技有限公司 | 利用OpenGL与OpenCL协作实现图像缩放的方法及系统 |
-
2016
- 2016-07-28 CN CN201610606040.XA patent/CN106251291A/zh active Pending
-
2017
- 2017-04-17 WO PCT/CN2017/080778 patent/WO2018018941A1/zh active Application Filing
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103888771A (zh) * | 2013-12-30 | 2014-06-25 | 中山大学深圳研究院 | 基于gpgpu技术的并行视频图像处理方法 |
Non-Patent Citations (3)
Title |
---|
MATTHEW SCARPINO: "《OpenCL in action : How to accelerate graphics and computation》", 20 November 2011 * |
刘文志等: "《OpenCL异构并行计算原理、机制与优化实践》", 31 January 2016 * |
王森等: "基于双线性插值的图像缩放算法的研究与实现", 《计算机应用》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018018941A1 (zh) * | 2016-07-28 | 2018-02-01 | 武汉斗鱼网络科技有限公司 | 利用OpenGL与OpenCL协作实现图像缩放的方法及系统 |
CN107422953A (zh) * | 2017-06-19 | 2017-12-01 | 南京巨鲨显示科技有限公司 | 一种用于医用显示器的图像局部突出缩放方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2018018941A1 (zh) | 2018-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106251291A (zh) | 利用OpenGL与OpenCL协作实现图像缩放的方法及系统 | |
US10438396B2 (en) | Method for efficient construction of high resolution display buffers | |
KR101922482B1 (ko) | 다수의 렌더 타겟들 내에서 활성 컬러 샘플 카운트를 변경함으로써 스크린 위치에 의한 변화하는 유효 분해능 | |
JP6392370B2 (ja) | 様々なレンダリング及びラスタライゼーション・パラメータ下でビューポートを変化させるための、オブジェクトの効率的再レンダリング方法 | |
US20190362502A1 (en) | System and method for optical flow estimation | |
CN103677828B (zh) | 一种图层绘制方法、绘图引擎及终端设备 | |
TWI552109B (zh) | 一種使用誤差項之保守格柵化基元的方法、非暫時性電腦可讀儲存媒體及系統 | |
EP3180773B1 (en) | Bandwidth reduction using texture lookup by adaptive shading | |
JP2022078281A (ja) | 非正規直交グリッドへのテクスチャマッピングのためのグラデーションの調整 | |
CN106055294B (zh) | 一种图层合成优化方法和装置 | |
CN115330986B (zh) | 一种分块渲染模式图形处理方法及系统 | |
JP2023552538A (ja) | 画像処理方法及び装置、電子機器、記憶媒体ならびにコンピュータプログラム | |
US10403040B2 (en) | Vector graphics rendering techniques | |
US11302054B2 (en) | Varying effective resolution by screen location by changing active color sample count within multiple render targets | |
WO2023202367A1 (zh) | 图形处理器、系统、装置、设备及方法 | |
CN108288247A (zh) | 一种多核dsp平台上的实时图像细节增强方法 | |
CN108986212B (zh) | 一种基于裂缝消除的三维虚拟地形lod模型的生成方法 | |
CN113436307B (zh) | 基于osgEarth影像数据到UE4场景的映射算法 | |
CN108629734B (zh) | 图像几何变换方法、装置及终端 | |
CN103593822B (zh) | 对数据图像进行磨砂特效处理的方法和装置 | |
KR20220016774A (ko) | 작은 프리미티브들에 대한 셰이더 점유를 수행하는 방법 | |
US20210350606A9 (en) | Method for efficient construction of high resolution display buffers | |
CN113438485B (zh) | 图像编码方法、装置、电子设备和存储介质 | |
KR100801317B1 (ko) | 3차원 그래픽 처리를 위한 가변 버퍼 시스템 및 그 방법 | |
CN104331696A (zh) | 一种基于图形处理单元的图像特征快速提取方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20161221 |