CN111028126B - 一种gpu图像处理卷积过滤的实现方法 - Google Patents
一种gpu图像处理卷积过滤的实现方法 Download PDFInfo
- Publication number
- CN111028126B CN111028126B CN201911125530.8A CN201911125530A CN111028126B CN 111028126 B CN111028126 B CN 111028126B CN 201911125530 A CN201911125530 A CN 201911125530A CN 111028126 B CN111028126 B CN 111028126B
- Authority
- CN
- China
- Prior art keywords
- convolution
- height
- convolution kernel
- pixel
- ddr
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/15—Correlation function computation including computation of convolution operations
- G06F17/153—Multidimensional correlation or convolution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Computational Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Image Processing (AREA)
Abstract
本发明涉及计算机图形学技术领域,尤其涉及一种GPU图像处理卷积过滤的实现方法,卷积是一种像素过滤器,用像素本身以及邻近像素的加权平均值来替换这个像素。本发明提供了一种GPU图像处理卷积过滤的实现方法,该方法包括如下步骤:1)加载卷积核:2)卷积参数初始化:3)卷积数据存储:4)卷积过滤计算:5)余行卷积过滤。本发明解决了GPU图像处理卷积过滤的问题,包括在有限的DDR存储,和不同的卷积模式情况下,原始数据存储与卷积操作时取数据的计算地址的策略,输出行数的统一,以及最后由于非缩减模式卷积模式导致遗留卷积核高度/2的余行处理,实现了GPU的卷积核加载、像素数据与卷积核算子的卷积过滤功能。
Description
技术领域
本发明属于计算机图形学技术领域,涉及一种GPU图像处理卷积过滤的实现方法。
背景技术
在图形处理器芯片(下简称GPU)设计中,卷积过滤是图像处理中一个重要功能,OpenGL API定义了加载卷积核的函数,包括glConvolutionFilter*D()、glCopyConvolutionFilter*D()、glSeparableFilter2D(),卷积核是卷积计算的算子。OpenGL API定义的glTexImage*D、glTexSubImage*D、glCopyTexImage*D、glCopyTexSubImage*D、glDrawPixels、glCopyPixels,glReadPixels是在卷积使能的情况下会进行卷积计算的函数。OpenGL API还定义了三种卷积模式,这些都是必须要支持的功能。卷积过滤计算的因子包括了卷积核算子、纹理或者像素矩形的原始像素数据。如何在有限的DDR存储,和不同的卷积模式情况下,将原始数据存储与卷积操作时取数据的地址配合正确,并且输出行数的统一,以及最后由于非缩减模式卷积模式导致遗留的余行数据未处理,这都是需要解决的技术问题。
发明内容
本发明目的是提供一种GPU图像处理卷积过滤的实现方法。
本发明的技术解决方案是:
提供了一种GPU图像处理卷积过滤的实现方法,该方法包括如下步骤:
1)加载卷积核:
2)卷积参数初始化:
3)卷积数据存储:
4)卷积过滤计算:
5)余行卷积过滤。
进一步的,所述步骤1)包括:
1.1)卷积核参数预处理:
首先从加载卷积核命令获取卷积核的像素格式、数据类型、内部格式以及宽高,
然后对像素格式、数据类型以及内部格式进行预处理,根据卷积模式以及卷积核的输入宽高,重置卷积核宽高以及宽高的一半;
1.2)加载卷积算子:
将按照像素格式和数据类型、内部格式对卷积算子进行转换后写入对应卷积目标的卷积核;
如果是分立卷积核,进行矩阵乘后写入分立卷积核;
加载进卷积核的数据就是卷积算子。
进一步的,所述步骤2)包括:
初始化原始像素写DDR的初始地址和DDR已存储数据的行数都为卷积核高度/2,已完成图像处理行数为0;
如果卷积模式是缩减模式,卷积输出图像宽高等于原始宽高减卷积核宽高加1;
如果是非缩减模式,卷积输出图像宽高等于原始输入宽高。
进一步的,所述步骤3)包括:
3.1)存储基址和行数统计:
卷积数据是逐像素输入存储,
当输入像素是图像的新一行但非第一行时,存储像素的DDR基址加1;否则基址保持不变;
当DDR基址大于卷积核高度时,DDR基址减卷积核高度后为新的DDR基址;
当像素存储满一行后,DDR已存储数据的行数加1。
3.2)计算DDR地址:
计算当前像素存储DDR的地址=DDR基址+偏移
其中,DDR基址是由步骤3.1)计算得到;
偏移=(输入像素在当前行图像的序号+卷积核宽度/2)*4;
根据DDR地址,将原始像素数据写入DDR;
3.3)判断满足卷积条件:
最后,判断步骤3.1)计算得到的DDR已存储数据的行数,
如果等于卷积核高度,对已存储数据的行数自减,设置存储像素行数满足卷积条件为true,表示可以DDR中的像素数据可以进行卷积过滤计算;
如果存储行数还不够卷积核高度,那么继续存储像素数据,重复步骤3)。
进一步的,所述步骤4)包括:
4.1)获取边框常量颜色:
首先获取卷积模式为GL_CONSTANT_BORDER时设置的边框常量颜色;
4.2)计算取卷积数据起始地址:
计算取卷积数据的起始地址=存储数据时最新一行DDR基址+1,
如果起始地址大于卷积核高度,起始地址减卷积核高度为新的起始地址,即DDR中现存数据中最早的原始行;
4.3)计算选取原始数据的地址:
每个像素卷积计算以当前像素为中心,选取卷积核宽度*高度的原始像素个数,与卷积核相对应,对于当前像素卷积需要的每个卷积算子对应的每个原始像素,
先初始化替换标志为false,然后计算存储在DDR的坐标(x,y);
其中,x=当前像素位置+卷积算子的列数,
y=取卷积数据的起始地址+卷子算子的行数,
如果y结果大于卷积核高度,那么y=y-卷积核高度;
4.4)坐标的边界处理:
对于在边界上的像素,需要根据卷积模式进行特殊处理:
左边界判断:
如果x坐标小于卷积核宽度/2,x=卷积核宽度/2,边界替换标志为true;
右边界判断:
如果x坐标大于原始图像宽度+卷积核宽度/2-1,x=原始图像宽度+卷积核宽度/2-1,边界替换标志为true;
下边界判断:
如果卷积完成行数小于卷积核高度/2,并且当前卷积算子行数小于卷积核高度/2,y=卷积核高度/2,边界替换标志为true;
上边界判断:
如果卷积完成行数大于原始图像高度-卷积核高度/2-1,并且当前卷积算子行数大于卷积核高度/2,y=起始地址+卷积核高度/2,如果y大于卷积核高度,那么y=y-卷积核高度,边界替换标志为true;
4.5)原始数据取值:
如果卷积模式为GL_CONSTANT_BORDER并且边界标志为true,原始像素采用边框常量颜色,否则根据原始像素坐标(x,y)在DDR中读取原始像素;
因为即使在卷积模式为GL_REPLICATE_BORDER且为边界情况时,上述对边界处理已将地址指向边界地址;
4.6)卷积计算:
从步骤1)加载的卷积核中取出当前位置的卷积算子,将卷积算子与原始像素相乘,并且相乘结果与上次结果进行累加;
当一整行像素都卷积完成后,进入步骤3)开始新一行数据的存储。
进一步的,所述步骤5)包括:
通过判断卷积完成行数是否达到卷积输出图像高度,如果已达到卷积完成行数,则图像处理卷积过滤结束;
未达到卷积完成行数,是因为在为非缩减模式时,会有卷积核高度/2的余行还在DDR中,需要利用边界像素或者边框常量颜色再进行卷积过滤计算,
则重新进入步骤4)开始剩余行的卷积过滤计算,直到完成所有的卷积行数。
本发明的有益效果:
本发明解决了GPU图像处理卷积过滤的问题,包括在有限的DDR存储,和不同的卷积模式情况下,原始数据存储与卷积操作时取数据的计算地址的策略,输出行数的统一,以及最后由于非缩减模式卷积模式导致遗留卷积核高度/2的余行处理。正确的实现了GPU的卷积核加载、像素数据与卷积核算子的卷积过滤功能。
附图说明
图1为本发明提供的GPU图像处理卷积过滤的实现方法的流程简图;
图2为本发明的加载卷积核算法流程图;
图3为本发明的卷积数据存储与卷积过滤计算算法流程图;
具体实施方式
下面结合附图和具体实施例,对本发明的技术方案进行清楚、完整地表述。显然,所表述的实施例仅是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提所获得的所有其他实施例,都属于本发明的保护范围。
本发明提供了一种GPU图像处理卷积过滤的实现方法,提供了一种GPU图像处理卷积过滤的实现方法,该方法包括如下步骤:
1)加载卷积核:
1.1)卷积核参数预处理:
首先从加载卷积核命令获取卷积核的像素格式、数据类型、内部格式以及宽高,
然后对像素格式、数据类型以及内部格式进行预处理,根据卷积模式以及卷积核的输入宽高,重置卷积核宽高以及宽高的一半;
1.2)加载卷积算子:
将按照像素格式和数据类型、内部格式对卷积算子进行转换后写入对应卷积目标的卷积核;
如果是分立卷积核,进行矩阵乘后写入分立卷积核;
加载进卷积核的数据就是卷积算子;
2)卷积参数初始化:
初始化原始像素写DDR的初始地址和DDR已存储数据的行数都为卷积核高度/2,已完成图像处理行数为0;
如果卷积模式是缩减模式,卷积输出图像宽高等于原始宽高减卷积核宽高加1;
如果是非缩减模式,卷积输出图像宽高等于原始输入宽高;
3)卷积数据存储:
3.1)存储基址和行数统计:
卷积数据是逐像素输入存储,
当输入像素是图像的新一行但非第一行时,存储像素的DDR基址加1;否则基址保持不变;
当DDR基址大于卷积核高度时,DDR基址减卷积核高度后为新的DDR基址;
当像素存储满一行后,DDR已存储数据的行数加1。
3.2)计算DDR地址:
计算当前像素存储DDR的地址=DDR基址+偏移
其中,DDR基址是由步骤3.1)计算得到;
偏移=(输入像素在当前行图像的序号+卷积核宽度/2)*4;
根据DDR地址,将原始像素数据写入DDR;
3.3)判断满足卷积条件:
最后,判断步骤3.1)计算得到的DDR已存储数据的行数,
如果等于卷积核高度,对已存储数据的行数自减,设置存储像素行数满足卷积条件为true,表示可以DDR中的像素数据可以进行卷积过滤计算;
如果存储行数还不够卷积核高度,那么继续存储像素数据,重复步骤3);
4)卷积过滤计算:
4.1)获取边框常量颜色:
首先获取卷积模式为GL_CONSTANT_BORDER时设置的边框常量颜色;
4.2)计算取卷积数据起始地址:
计算取卷积数据的起始地址=存储数据时最新一行DDR基址+1,
如果起始地址大于卷积核高度,起始地址减卷积核高度为新的起始地址,即DDR中现存数据中最早的原始行;
4.3)计算选取原始数据的地址:
每个像素卷积计算以当前像素为中心,选取卷积核宽度*高度的原始像素个数,与卷积核相对应,对于当前像素卷积需要的每个卷积算子对应的每个原始像素,
先初始化替换标志为false,然后计算存储在DDR的坐标(x,y);
其中,x=当前像素位置+卷积算子的列数,
y=取卷积数据的起始地址+卷子算子的行数,
如果y结果大于卷积核高度,那么y=y-卷积核高度;
4.4)坐标的边界处理:
对于在边界上的像素,需要根据卷积模式进行特殊处理:
左边界判断:
如果x坐标小于卷积核宽度/2,x=卷积核宽度/2,边界替换标志为true;
右边界判断:
如果x坐标大于原始图像宽度+卷积核宽度/2-1,x=原始图像宽度+卷积核宽度/2-1,边界替换标志为true;
下边界判断:
如果卷积完成行数小于卷积核高度/2,并且当前卷积算子行数小于卷积核高度/2,y=卷积核高度/2,边界替换标志为true;
上边界判断:
如果卷积完成行数大于原始图像高度-卷积核高度/2-1,并且当前卷积算子行数大于卷积核高度/2,y=起始地址+卷积核高度/2,如果y大于卷积核高度,那么y=y-卷积核高度,边界替换标志为true;
4.5)原始数据取值:
如果卷积模式为GL_CONSTANT_BORDER并且边界标志为true,原始像素采用边框常量颜色,否则根据原始像素坐标(x,y)在DDR中读取原始像素;
4.6)卷积计算:
从步骤1)加载的卷积核中取出当前位置的卷积算子,将卷积算子与原始像素相乘,并且相乘结果与上次结果进行累加;
当一整行像素都卷积完成后,进入步骤3)开始新一行数据的存储;
5)余行卷积过滤。
通过判断卷积完成行数是否达到卷积输出图像高度,如果已达到卷积完成行数,则图像处理卷积过滤结束;
则重新进入步骤4)开始剩余行的卷积过滤计算,直到完成所有的卷积行数。
实施例:
下面结合附图1-3对本发明做进一步详细描述;
一种GPU图像处理卷积过滤的实现方法,提供了一种GPU图像处理卷积过滤的实现方法,该方法包括如下步骤:
1)加载卷积核:
1.1)卷积核参数预处理:
首先从加载卷积核命令获取卷积核的像素格式、数据类型、内部格式以及宽高,
然后对像素格式、数据类型以及内部格式进行预处理,如果卷积模式为GL_REDUCE,原始卷积核宽高的一半为0;否则,根据输入的宽高计算原始卷积核宽高的一半,
如果卷积核宽高有一维为0,设置卷积核宽高都为1,卷积核宽高的一半都为0,否则,设置卷积核宽高为输入的宽高,卷积核宽高的一半为原始卷积核宽高的一半。
1.2)加载卷积算子:
将按照像素格式和数据类型、内部格式对卷积算子进行转换后写入对应卷积目标的卷积核;
如果是分立卷积核,进行矩阵乘后写入分立卷积核;
加载进卷积核的数据就是卷积算子;
2)卷积参数初始化:
初始化原始像素写DDR的初始地址和DDR已存储数据的行数都为卷积核高度/2;
如果卷积模式是缩减模式,卷积输出图像宽高等于原始宽高减卷积核宽高加1;
如果是非缩减模式,卷积输出图像宽高等于原始输入宽高;
初始化已完成图像处理行数为0;
3)卷积数据存储:
3.1)存储基址和行数统计:
卷积数据是逐像素输入存储,
当输入像素是图像的新一行但非第一行时,存储像素的DDR基址加1;否则基址保持不变;
当DDR基址大于卷积核高度时,DDR基址减卷积核高度后为新的DDR基址;
当像素存储满一行后,DDR已存储数据的行数加1。
3.2)计算DDR地址:
计算当前像素存储DDR的地址=DDR基址+偏移
其中,DDR基址是由步骤3.1)计算得到;
偏移=(输入像素在当前行图像的序号+卷积核宽度/2)*4;
根据DDR地址,将原始像素数据写入DDR;
3.3)判断满足卷积条件:
最后,判断步骤3.1)计算得到的DDR已存储数据的行数,
如果等于卷积核高度,对已存储数据的行数自减,设置存储像素行数满足卷积条件为true,表示可以DDR中的像素数据可以进行卷积过滤计算;
如果存储行数还不够卷积核高度,那么继续存储像素数据,重复步骤3);
4)卷积过滤计算:
4.1)获取边框常量颜色:
首先获取卷积模式为GL_CONSTANT_BORDER时设置的边框常量颜色;
4.2)计算取卷积数据起始地址:
计算取卷积数据的起始地址=存储数据时最新一行DDR基址+1,
如果起始地址大于卷积核高度,起始地址减卷积核高度为新的起始地址,即DDR中现存数据中最早的原始行;
4.3)计算选取原始数据的地址:
每个像素卷积计算以当前像素为中心,选取卷积核宽度*高度的原始像素个数,与卷积核相对应,对于当前像素卷积需要的每个卷积算子对应的每个原始像素,
先初始化替换标志为false,然后计算存储在DDR的坐标(x,y);
其中,x=当前像素位置+卷积算子的列数,
y=取卷积数据的起始地址+卷子算子的行数,
如果y结果大于卷积核高度,那么y=y-卷积核高度;
4.4)坐标的边界处理:
对于在边界上的像素,需要根据卷积模式进行特殊处理:
左边界判断:
如果x坐标小于卷积核宽度/2,x=卷积核宽度/2,边界替换标志为true;
右边界判断:
如果x坐标大于原始图像宽度+卷积核宽度/2-1,x=原始图像宽度+卷积核宽度/2-1,边界替换标志为true;
下边界判断:
如果卷积完成行数小于卷积核高度/2,并且当前卷积算子行数小于卷积核高度/2,y=卷积核高度/2,边界替换标志为true;
上边界判断:
如果卷积完成行数大于原始图像高度-卷积核高度/2-1,并且当前卷积算子行数大于卷积核高度/2,y=起始地址+卷积核高度/2,如果y大于卷积核高度,那么y=y-卷积核高度,边界替换标志为true;
4.5)原始数据取值:
如果卷积模式为GL_CONSTANT_BORDER并且边界标志为true,原始像素采用边框常量颜色,否则根据原始像素坐标(x,y)在DDR中读取原始像素;
4.6)卷积计算:
从步骤1)加载的卷积核中取出当前位置的卷积算子,将卷积算子与原始像素相乘,并且相乘结果与上次结果进行累加;
当一整行像素都卷积完成后,进入步骤3)开始新一行数据的存储;
5)余行卷积过滤。
通过判断卷积完成行数是否达到卷积输出图像高度,如果已达到卷积完成行数,则图像处理卷积过滤结束;
则重新进入步骤4)开始剩余行的卷积过滤计算,直到完成所有的卷积行数。
Claims (5)
1.一种GPU图像处理卷积过滤的实现方法,其特征在于:所述方法包括如下步骤:
1)加载卷积核:
2)卷积参数初始化:
3)卷积数据存储:
4)卷积过滤计算:
5)余行卷积过滤,
所述步骤4)包括:
4.1) 获取边框常量颜色:
首先获取卷积模式为GL_CONSTANT_BORDER时设置的边框常量颜色;
4.2) 计算取卷积数据起始地址:
计算取卷积数据的起始地址=存储数据时最新一行DDR基址+1,
如果起始地址大于卷积核高度,起始地址减卷积核高度为新的起始地址,即DDR中现存数据中最早的原始行;
4.3)计算选取原始数据的地址:
每个像素卷积计算以当前像素为中心,选取卷积核宽度*高度的原始像素个数,与卷积核相对应,对于当前像素卷积需要的每个卷积算子对应的每个原始像素,
先初始化替换标志为false,然后计算存储在DDR的坐标(x,y);
其中,x=当前像素位置+卷积算子的列数,
y=取卷积数据的起始地址+卷子算子的行数,
如果y结果大于卷积核高度,那么y=y-卷积核高度;
4.4)坐标的边界处理:
对于在边界上的像素,需要根据卷积模式进行特殊处理:
左边界判断:
如果x坐标小于卷积核宽度/2,x=卷积核宽度/2,边界替换标志为true;
右边界判断:
如果x坐标大于原始图像宽度+卷积核宽度/2-1,x=原始图像宽度+卷积核宽度/2-1,边界替换标志为true;
下边界判断:
如果卷积完成行数小于卷积核高度/2,并且当前卷积算子行数小于卷积核高度/2,y=卷积核高度/2,边界替换标志为true;
上边界判断:
如果卷积完成行数大于原始图像高度-卷积核高度/2-1,并且当前卷积算子行数大于卷积核高度/2,y=起始地址+卷积核高度/2,如果y大于卷积核高度,那么y=y-卷积核高度,边界替换标志为true;
4.5)原始数据取值:
如果卷积模式为GL_CONSTANT_BORDER并且边界标志为true,原始像素采用边框常量颜色,否则根据原始像素坐标(x,y)在DDR中读取原始像素;
4.6)卷积计算:
从步骤1)加载的卷积核中取出当前位置的卷积算子,将卷积算子与原始像素相乘,并且相乘结果与上次结果进行累加;
当一整行像素都卷积完成后,进入步骤3)开始新一行数据的存储。
2.根据权利要求1所述的GPU图像处理卷积过滤的实现方法,其特征在于:所述步骤1)包括:
1.1)卷积核参数预处理:
首先从加载卷积核命令获取卷积核的像素格式、数据类型、内部格式以及宽高,
然后对像素格式、数据类型以及内部格式进行预处理,根据卷积模式以及卷积核的输入宽高,重置卷积核宽高及宽高的一半;
1.2) 加载卷积算子:
将按照像素格式和数据类型、内部格式对卷积算子进行转换后写入对应卷积目标的卷积核;
如果是分立卷积核,进行矩阵乘后写入分立卷积核;
加载进卷积核的数据就是卷积算子。
3.根据权利要求1所述的GPU图像处理卷积过滤的实现方法,其特征在于:所述步骤2)包括:
初始化原始像素写DDR的初始地址和DDR已存储数据的行数都为卷积核高度/2,已完成图像处理行数为0;
如果卷积模式是缩减模式,卷积输出图像宽高等于原始宽高减卷积核宽高加1;
如果是非缩减模式,卷积输出图像宽高等于原始输入宽高。
4.根据权利要求1所述的GPU图像处理卷积过滤的实现方法,其特征在于:所述步骤3)包括:
3.1)存储基址和行数统计:
卷积数据是逐像素输入存储,
当输入像素是图像的新一行但非第一行时,存储像素的DDR基址加1;否则基址保持不变;
当DDR基址大于卷积核高度时,DDR基址减卷积核高度后为新的DDR基址;
当像素存储满一行后,DDR已存储数据的行数加1;
3.2)计算DDR地址:
计算当前像素存储DDR的地址=DDR基址+偏移
其中,DDR基址是由步骤3.1)计算得到;
偏移=(输入像素在当前行图像的序号+卷积核宽度/2)*4;
根据DDR地址,将原始像素数据写入DDR;
3.3)判断满足卷积条件:
最后,判断步骤3.1)计算得到的DDR已存储数据的行数,
如果等于卷积核高度,对已存储数据的行数自减,设置存储像素行数满足卷积条件为true,表示DDR中的像素数据可以进行卷积过滤计算;
如果存储行数还不够卷积核高度,那么继续存储像素数据,重复步骤3)。
5.根据权利要求1所述的GPU图像处理卷积过滤的实现方法,其特征在于:所述步骤5)包括:
通过判断卷积完成行数是否达到卷积输出图像高度,如果已达到卷积输出图像高度,则图像处理卷积过滤结束;
否则重新进入步骤4)开始剩余行的卷积过滤计算,直到完成所有的卷积行数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911125530.8A CN111028126B (zh) | 2019-11-18 | 2019-11-18 | 一种gpu图像处理卷积过滤的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911125530.8A CN111028126B (zh) | 2019-11-18 | 2019-11-18 | 一种gpu图像处理卷积过滤的实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111028126A CN111028126A (zh) | 2020-04-17 |
CN111028126B true CN111028126B (zh) | 2023-06-30 |
Family
ID=70200351
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911125530.8A Active CN111028126B (zh) | 2019-11-18 | 2019-11-18 | 一种gpu图像处理卷积过滤的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111028126B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112395092B (zh) * | 2020-11-30 | 2023-06-02 | 清华大学 | 数据处理方法及人工智能处理器 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106779060A (zh) * | 2017-02-09 | 2017-05-31 | 武汉魅瞳科技有限公司 | 一种适于硬件设计实现的深度卷积神经网络的计算方法 |
CN107886466A (zh) * | 2017-11-24 | 2018-04-06 | 中国航空工业集团公司西安航空计算技术研究所 | 一种图形处理器图像处理单元体系结构 |
CN109086244A (zh) * | 2018-07-11 | 2018-12-25 | 中国人民解放军国防科技大学 | 一种基于向量处理器的矩阵卷积向量化实现方法 |
CN110009644A (zh) * | 2019-03-26 | 2019-07-12 | 深兰科技(上海)有限公司 | 一种特征图行像素分段的方法和装置 |
CN110263923A (zh) * | 2019-08-12 | 2019-09-20 | 上海燧原智能科技有限公司 | 张量卷积计算方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10699160B2 (en) * | 2017-08-23 | 2020-06-30 | Samsung Electronics Co., Ltd. | Neural network method and apparatus |
-
2019
- 2019-11-18 CN CN201911125530.8A patent/CN111028126B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106779060A (zh) * | 2017-02-09 | 2017-05-31 | 武汉魅瞳科技有限公司 | 一种适于硬件设计实现的深度卷积神经网络的计算方法 |
CN107886466A (zh) * | 2017-11-24 | 2018-04-06 | 中国航空工业集团公司西安航空计算技术研究所 | 一种图形处理器图像处理单元体系结构 |
CN109086244A (zh) * | 2018-07-11 | 2018-12-25 | 中国人民解放军国防科技大学 | 一种基于向量处理器的矩阵卷积向量化实现方法 |
CN110009644A (zh) * | 2019-03-26 | 2019-07-12 | 深兰科技(上海)有限公司 | 一种特征图行像素分段的方法和装置 |
CN110263923A (zh) * | 2019-08-12 | 2019-09-20 | 上海燧原智能科技有限公司 | 张量卷积计算方法及系统 |
Non-Patent Citations (1)
Title |
---|
郝关鸿 ; 王莉珍 ; .基于GPU的连续卷积算法.计算机与网络.2011,(12),39-42. * |
Also Published As
Publication number | Publication date |
---|---|
CN111028126A (zh) | 2020-04-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106339196B (zh) | DeMura表的数据压缩、解压缩方法及Mura补偿方法 | |
US9514563B2 (en) | Graphics processing systems | |
US11887218B2 (en) | Image optimization method, apparatus, device and storage medium | |
JP6800656B2 (ja) | 演算回路、その制御方法及びプログラム | |
CN111028126B (zh) | 一种gpu图像处理卷积过滤的实现方法 | |
US10733782B2 (en) | Graphics processing systems | |
JP5785256B2 (ja) | テキストレンダリングのためのルックアップテーブル | |
US8355580B2 (en) | Method and system for generating boundary in the process of rasterizing vector graphic as well as method for producing the system | |
CN115942128A (zh) | 一种基于异构平台的isp系统设计与实现方法 | |
CN115909353A (zh) | 一种图像二值化处理方法和装置 | |
US20210056915A1 (en) | Multi-frame-history pixel drive compensation | |
CN111338627B (zh) | 前端网页主题颜色调节方法及装置 | |
US20230343269A1 (en) | Temperature-Based Pixel Drive Compensation | |
US8982134B2 (en) | Area-based dependency chain analysis of shaders and command stream | |
CN115082345A (zh) | 图像阴影去除方法、装置、计算机设备和存储介质 | |
US20200118244A1 (en) | Data processing systems | |
CN114820370A (zh) | 墨水屏设备的图片转换方法、电子设备及存储介质 | |
CN118043842A (zh) | 一种渲染格式选择方法及其相关设备 | |
CN112862905B (zh) | 图像处理方法、装置、存储介质及计算机设备 | |
CN111080507B (zh) | 一种面向gpu硬件图像处理卷积过滤系统的tlm微结构 | |
CN111768422B (zh) | 边缘检测的处理方法、装置、设备及存储介质 | |
CN111028140B (zh) | 一种gpu像素矩形缩放翻转的实现方法 | |
CN111821690B (zh) | 优化ui图集利用率的方法、装置及可读介质 | |
CN112330563B (zh) | 图像处理控制方法、装置、电子设备及可读存储介质 | |
CN111028127B (zh) | 一种gpu子纹理替换存储方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | 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 |