CN111080507B - 一种面向gpu硬件图像处理卷积过滤系统的tlm微结构 - Google Patents
一种面向gpu硬件图像处理卷积过滤系统的tlm微结构 Download PDFInfo
- Publication number
- CN111080507B CN111080507B CN201911125547.3A CN201911125547A CN111080507B CN 111080507 B CN111080507 B CN 111080507B CN 201911125547 A CN201911125547 A CN 201911125547A CN 111080507 B CN111080507 B CN 111080507B
- Authority
- CN
- China
- Prior art keywords
- convolution
- pixel
- module
- address
- 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
- 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
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)
- Computing Systems (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Image Processing (AREA)
Abstract
本发明涉及计算机硬件建模技术领域,尤其涉及一种面向GPU硬件图像处理卷积过滤系统的TLM微结构。该面向GPU硬件图像处理卷积过滤算法的TLM微结构包括加载卷积核、卷积参数初始化、卷积数据存储、卷积过滤计算以及卷积后像素收集。本发明实现了基于TLM模型的图像处理卷积过滤算法的功能和实现结构,解决了面向GPU硬件子纹理替换TLM微结构的存储算法功能验证的问题,有效的加快RTL设计开发。
Description
技术领域
本发明涉及计算机硬件建模技术领域,尤其涉及一种面向GPU硬件图像处理卷积过滤系统的TLM微结构。
背景技术
在图形处理器芯片(下简称GPU)设计与开发中,算法的正确性和高效性是决定GPU功能和性能的重要因素。卷积过滤是图像处理中一个重要功能,GPU硬件实现卷积功能需要综合考虑OpenGL API支持的卷积模式、卷积核、被卷积数据,以及硬件架构限制的DDR存储空间、原始数据存储与卷积操作时取数据地址的配合、不同卷积模式下的输出统一等问题。但是,GPU芯片在使用RTL实现上述算法细节时硬件逻辑规模巨大,很难在RTL阶段验证到并debug。因此需要在RTL设计之前,尽可能早的对算法进行验证,为RTL设计提供参考依据。
发明内容
基于背景技术中存在的问题,本发明提供的一种面向GPU硬件图像处理卷积过滤系统的TLM微结构,能够解决RTL仿真图像处理卷积过滤算法的正确性以及高效性,能够协助RTL提前对图像处理卷积过滤算法的硬件微结构在TLM模型上进行功能验证。
本发明的技术解决方案是:
本发明提供了一种面向GPU硬件图像处理卷积过滤系统的TLM微结构,包括了卷积核加载模块1、参数初始化模块2、卷积数据存储模块3、卷积过滤模块4以及像素收集模块5;
所述卷积核加载模块1用于将加载卷积核命令携带或拷贝的数据按照命令中设置的像素类型、数据格式、内部格式转换后写入卷积核,并且根据卷积模式计算卷积核的宽高及宽高的一半;
所述参数初始化模块2用于初始化原始像素写DDR的初始地址、DDR已存储数据的行数、已完成图像处理行数,并根据卷积模式、原始图像宽高计算卷积过滤后输出图像宽高;
所述卷积数据存储模块3用于将纹理或者像素矩形命令中的像素存储到DDR中,直到存储像素行数满足卷积条件,即达到卷积核的高度;
所述卷积过滤模块4用于计算被卷积数据的取值地址和根据卷积模式进行的边界处理,根据上述计算结果进行被卷积像素的取值,将此值与卷积核加载模块1加载的卷积核算子进行卷积过滤计算,完成一行像素的卷积过滤;
所述像素收集模块5用于收集一行像素卷积完成的计算结果;
所述卷积过滤模块4包括地址计算子模块41、地址边界处理子模块42、像素取值子模块43、卷积计算子模块44;
所述地址计算子模块41用于计算原始像素读取DDR的地址;
所述地址边界处理子模块42用于对上述计算的原始像素地址进行修正或者置边界替换标志位;
所述像素取值子模块43用于根据卷积模式和边界替换标志位判断原始像素是取边框常量颜色还是从上述像素地址进行原始像素的读取;
所述卷积计算子模块44用于根据卷积核加载模块1发送的卷积算子,像素取值子模块43发送的原始像素,进行卷积计算。
进一步的,所述卷积核加载模块1将收到的加载卷积核命令、卷积模式,经过卷积核参数处理以及加载卷积算子后,将卷积核宽高及宽高的一半通过TLM接口发送给参数初始化模块2,并将卷积算子通过TLM接口发送给卷积过滤模块4。
进一步的,所述参数初始化模块2将收到的纹理或者像素矩形命令、卷积模式、卷积核加载模块1发送的卷积核宽高及宽高的一半,用于初始化原始像素写DDR的初始地址、DDR已存储数据的行数,然后将原始图像宽高、DDR的初始地址、DDR已存储数行数、原始像素、卷积模式、卷积核宽高及宽高的一半通过TLM接口发送给卷积数据存储模块3。
进一步的,所述卷积数据存储模块3将收到的参数初始化2发送的原始图像宽高、DDR的初始地址、DDR已存储数行数、原始像素、卷积模式、卷积核宽高及宽高的一半,用于将原始像素存储到DDR中,直到存储像素行数满足卷积条件,开始进行一行像素的卷积过滤计算;
以及在存储完成原始图像的最后一行后,根据卷积模式判断是否还有卷积核高度一半的行数未完成卷积过滤计算,将一行的像素卷积序号、DDR的初始地址、卷积核宽高的一半、像素行号通过TLM接口发送给卷积过滤模块4。
进一步的,所述卷积过滤模块4将收到的卷积模式、边框常量颜色,卷积核加载模块1发送的卷积算子,卷积数据存储模块3发送的卷积像素序号、DDR的初始地址、卷积核宽高的一半、像素行号,用于读取DDR中的像素或边框常量颜色,将读取的值与卷积核的算子进行卷积过滤计算,将计算结果通过TLM接口发送给像素收集模块5。
进一步的,所述地址计算子模块41接收到卷积数据存储模块3发送的卷积像素序号、DDR的初始地址,计算原始像素读取DDR的地址,并将原始像素地址发送给地址边界处理子模块42。
进一步的,所述地址边界处理子模块42接收到卷积模式,卷积数据存储模块3发送的卷积像素序号、卷积核宽高的一半、像素行号,地址计算子模块41发送的原始像素地址,根据以上信息对原始像素的地址修正或者置边界替换标志位;并将修正后的原始像素地址和边界替换标志位发送给像素取值子模块43。
进一步的,所述像素取值子模块43接收到卷积模式、边框常量颜色、地址边界处理子模块42发送的修正后的原始像素地址和边界替换标志位,根据卷积模式和边界替换标志位判断原始像素是取边框常量颜色还是从DDR读取像素,根据修正后的原始像素地址进行原始像素的读取;并将原始像素发送给卷积计算子模块44。
进一步的,所述卷积计算子模块44接收到卷积核加载模块1发送的卷积算子,像素取值子模块43发送的原始像素,进行卷积计算,并将卷积后像素发送给像素收集模块5。
进一步的,所述像素收集模块5将收到的卷积过滤模块4发送的卷积后像素进行收集,得到一行像素卷积完成的计算结果。
本发明的有益效果:
本发明实现了基于TLM模型的图像处理卷积过滤算法功能和实现结构,解决了面向GPU硬件图像处理卷积过滤算法功能验证的问题,解决了GPU硬件实现卷积功能需要面对的DDR存储空间有限、原始数据存储与卷积操作时取数据地址的配合、不同卷积模式下的输出统一等问题,有效的加快了RTL设计开发。
附图说明
图1为本发明图像处理卷积过滤算法的硬件TLM微结构框图;
具体实施方式
下面结合附图和具体实施例,对本发明的技术方案进行清楚、完整地表述。显然,所表述的实施例仅是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提所获得的所有其他实施例,都属于本发明的保护范围。
本发明提供了一种面向GPU硬件图像处理卷积过滤系统的TLM微结构,本发明提供了一种面向GPU硬件图像处理卷积过滤系统的TLM微结构,
包括了卷积核加载模块1、参数初始化模块2、卷积数据存储模块3、卷积过滤模块4以及像素收集模块5;
所述卷积核加载模块1用于将加载卷积核命令携带或拷贝的数据按照命令中设置的像素类型、数据格式、内部格式转换后写入卷积核,并且根据卷积模式计算卷积核的宽高及宽高的一半;
所述参数初始化模块2用于初始化原始像素写DDR的初始地址、DDR已存储数据的行数、已完成图像处理行数,并根据卷积模式、原始图像宽高计算卷积过滤后输出图像宽高;
所述卷积数据存储模块3用于将纹理或者像素矩形命令中的像素存储到DDR中,直到存储像素行数满足卷积条件,即达到卷积核的高度;
所述卷积过滤模块4用于计算被卷积数据的取值地址和根据卷积模式进行的边界处理,根据上述计算结果进行被卷积像素的取值,将此值与卷积核加载模块1加载的卷积核算子进行卷积过滤计算,完成一行像素的卷积过滤;
所述像素收集模块5用于收集一行像素卷积完成的计算结果;
所述卷积过滤模块4包括地址计算子模块41、地址边界处理子模块42、像素取值子模块43、卷积计算子模块44;
所述地址计算子模块41用于计算原始像素读取DDR的地址;
所述地址边界处理子模块42用于对上述计算的原始像素地址进行修正或者置边界替换标志位;
所述像素取值子模块43用于根据卷积模式和边界替换标志位判断原始像素是取边框常量颜色还是从上述像素地址进行原始像素的读取;
所述卷积计算子模块44用于根据卷积核加载模块1发送的卷积算子,像素取值子模块43发送的原始像素,进行卷积计算。
所述卷积核加载模块1将收到的加载卷积核命令、卷积模式,经过卷积核参数处理以及加载卷积算子后,将卷积核宽高及宽高的一半通过TLM接口发送给参数初始化模块2,并将卷积算子通过TLM接口发送给卷积过滤模块4。
所述参数初始化模块2将收到的纹理或者像素矩形命令、卷积模式、卷积核加载模块1发送的卷积核宽高及宽高的一半,用于初始化原始像素写DDR的初始地址、DDR已存储数据的行数,然后将原始图像宽高、DDR的初始地址、DDR已存储数行数、原始像素、卷积模式、卷积核宽高及宽高的一半通过TLM接口发送给卷积数据存储模块3。
所述卷积数据存储模块3将收到的参数初始化2发送的原始图像宽高、DDR的初始地址、DDR已存储数行数、原始像素、卷积模式、卷积核宽高及宽高的一半,用于将原始像素存储到DDR中,直到存储像素行数满足卷积条件,开始进行一行像素的卷积过滤计算;
以及在存储完成原始图像的最后一行后,根据卷积模式判断是否还有卷积核高度一半的行数未完成卷积过滤计算,将一行的像素卷积序号、DDR的初始地址、卷积核宽高的一半、像素行号通过TLM接口发送给卷积过滤模块4。
所述卷积过滤模块4将收到的卷积模式、边框常量颜色,卷积核加载模块1发送的卷积算子,卷积数据存储模块3发送的卷积像素序号、DDR的初始地址、卷积核宽高的一半、像素行号,用于读取DDR中的像素或边框常量颜色,将读取的值与卷积核的算子进行卷积过滤计算,将计算结果通过TLM接口发送给像素收集模块5。
所述地址计算子模块41接收到卷积数据存储模块3发送的卷积像素序号、DDR的初始地址,计算原始像素读取DDR的地址,并将原始像素地址发送给地址边界处理子模块42。
所述地址边界处理子模块42接收到卷积模式,卷积数据存储模块3发送的卷积像素序号、卷积核宽高的一半、像素行号,地址计算子模块41发送的原始像素地址,根据以上信息对原始像素的地址修正或者置边界替换标志位;并将修正后的原始像素地址和边界替换标志位发送给像素取值子模块43。
所述像素取值子模块43接收到卷积模式、边框常量颜色、地址边界处理子模块42发送的修正后的原始像素地址和边界替换标志位,根据卷积模式和边界替换标志位判断原始像素是取边框常量颜色还是从DDR读取像素,根据修正后的原始像素地址进行原始像素的读取;并将原始像素发送给卷积计算子模块44。
所述卷积计算子模块44接收到卷积核加载模块1发送的卷积算子,像素取值子模块43发送的原始像素,进行卷积计算,并将卷积后像素发送给像素收集模块5。
所述像素收集模块5将收到的卷积过滤模块4发送的卷积后像素进行收集,得到一行像素卷积完成的计算结果。
一种面向GPU硬件图像处理卷积过滤系统的TLM微结构,包括以下步骤:
1)加载卷积核:
首先从加载卷积核命令获取卷积核的像素格式、数据类型、内部格式以及宽高,然后对像素格式、数据类型以及内部格式进行预处理,根据卷积模式以及卷积核的输入宽高,重置卷积核宽高以及宽高的一半。最后将按照像素格式和数据类型、内部格式对卷积算子进行转换后写入对应卷积目标的卷积核;如果是分立卷积核,进行矩阵乘后写入分立卷积核。
2)卷积参数初始化:
初始化原始像素写DDR的初始地址和DDR已存储数据的行数都为卷积核高度/2。
3)卷积数据存储:
如果输入像素是否是新一行图像但非第一行,存储像素的DDR基址加1;如果DDR基址大于卷积核高度,DDR基址减卷积核高度后为新的DDR基址;当像素存储满一行后,DDR已存储数据的行数加1。然后计算当前像素存储DDR的地址=DDR基址+偏移(偏移=(输入像素在当前行图像的序号+卷积核宽度/2)*4),根据DDR地址,将原始像素数据写入DDR。最后,判断DDR已存储数据的行数,如果等于卷积核高度,对已存储数据的行数自减,表示可以DDR中的像素数据可以进行卷积过滤计算。当存储完成原始图像的最后一行后,根据卷积模式判断是否还有卷积核高度一半的行数未完成卷积过滤计算。
4)卷积过滤计算
4.1)计算读取原始像素地址:
以当前像素为中心,卷积核宽度、高度的原始像素都需要计算地址。计算取卷积数据的起始地址=存储数据时最新一行DDR基址+1,如果起始地址大于卷积核高度,起始地址减卷积核高度为新的起始地址,即DDR中现存数据中最早的原始行。每个像素存储在DDR的坐标:x=当前像素位置+卷积算子的列数,y=取卷积数据的起始地址+卷子算子的行数,如果y结果大于卷积核高度,那么y=y-卷积核高度。
4.2)原始像素地址边界处理:
对于在边界上的像素,需要根据卷积模式进行特殊处理。左边界判断,如果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.3)原始像素取值:
如果卷积模式为GL_CONSTANT_BORDER并且边界标志为true,原始像素采用边框常量颜色,否则根据原始像素坐标(x,y)在DDR中读取原始像素,因为即使在卷积模式为GL_REPLICATE_BORDER且为边界情况时,上述对边界处理已将地址指向边界地址。
4.4)卷积计算:
从卷积核中取出当前位置的卷积算子,将卷积算子与原始像素相乘,并且相乘结果与上次结果进行累加。
5)卷积后像素收集
收集完成一行像素后将卷积后一行像素发送给下个单元。
实施例:
下面结合附图对本发明做进一步详细描述,请参阅图1。
一种面向GPU硬件图像处理卷积过滤系统的TLM微结构,
包括了卷积核加载模块1、参数初始化模块2、卷积数据存储模块3、卷积过滤模块4以及像素收集模块5;
所述卷积核加载模块1用于将加载卷积核命令携带或拷贝的数据按照命令中设置的像素类型、数据格式、内部格式转换后写入卷积核,并且根据卷积模式计算卷积核的宽高及宽高的一半;
所述参数初始化模块2用于初始化原始像素写DDR的初始地址、DDR已存储数据的行数、已完成图像处理行数,并根据卷积模式、原始图像宽高计算卷积过滤后输出图像宽高;
所述卷积数据存储模块3用于将纹理或者像素矩形命令中的像素存储到DDR中,直到存储像素行数满足卷积条件,即达到卷积核的高度;
所述卷积过滤模块4用于计算被卷积数据的取值地址和根据卷积模式进行的边界处理,根据上述计算结果进行被卷积像素的取值,将此值与卷积核加载模块1加载的卷积核算子进行卷积过滤计算,完成一行像素的卷积过滤;
所述像素收集模块5用于收集一行像素卷积完成的计算结果;
所述卷积过滤模块4包括地址计算子模块41、地址边界处理子模块42、像素取值子模块43、卷积计算子模块44;
所述地址计算子模块41用于计算原始像素读取DDR的地址;
所述地址边界处理子模块42用于对上述计算的原始像素地址进行修正或者置边界替换标志位;
所述像素取值子模块43用于根据卷积模式和边界替换标志位判断原始像素是取边框常量颜色还是从上述像素地址进行原始像素的读取;
所述卷积计算子模块44用于根据卷积核加载模块1发送的卷积算子,像素取值子模块43发送的原始像素,进行卷积计算。
进一步的,所述卷积核加载模块1将收到的加载卷积核命令、卷积模式,经过卷积核参数处理以及加载卷积算子后,将卷积核宽高及宽高的一半通过TLM接口发送给参数初始化模块2,并将卷积算子通过TLM接口发送给卷积过滤模块4。
进一步的,所述参数初始化模块2将收到的纹理或者像素矩形命令、卷积模式、卷积核加载模块1发送的卷积核宽高及宽高的一半,用于初始化原始像素写DDR的初始地址、DDR已存储数据的行数,然后将原始图像宽高、DDR的初始地址、DDR已存储数行数、原始像素、卷积模式、卷积核宽高及宽高的一半通过TLM接口发送给卷积数据存储模块3。
进一步的,所述卷积数据存储模块3将收到的参数初始化2发送的原始图像宽高、DDR的初始地址、DDR已存储数行数、原始像素、卷积模式、卷积核宽高及宽高的一半,用于将原始像素存储到DDR中,直到存储像素行数满足卷积条件,开始进行一行像素的卷积过滤计算;
以及在存储完成原始图像的最后一行后,根据卷积模式判断是否还有卷积核高度一半的行数未完成卷积过滤计算,将一行的像素卷积序号、DDR的初始地址、卷积核宽高的一半、像素行号通过TLM接口发送给卷积过滤模块4。
进一步的,所述卷积过滤模块4将收到的卷积模式、边框常量颜色,卷积核加载模块1发送的卷积算子,卷积数据存储模块3发送的卷积像素序号、DDR的初始地址、卷积核宽高的一半、像素行号,用于读取DDR中的像素或边框常量颜色,将读取的值与卷积核的算子进行卷积过滤计算,将计算结果通过TLM接口发送给像素收集模块5。
进一步的,所述地址计算子模块41接收到卷积数据存储模块3发送的卷积像素序号、DDR的初始地址,计算原始像素读取DDR的地址,并将原始像素地址发送给地址边界处理子模块42。
进一步的,所述地址边界处理子模块42接收到卷积模式,卷积数据存储模块3发送的卷积像素序号、卷积核宽高的一半、像素行号,地址计算子模块41发送的原始像素地址,根据以上信息对原始像素的地址修正或者置边界替换标志位;并将修正后的原始像素地址和边界替换标志位发送给像素取值子模块43。
进一步的,所述像素取值子模块43接收到卷积模式、边框常量颜色、地址边界处理子模块42发送的修正后的原始像素地址和边界替换标志位,根据卷积模式和边界替换标志位判断原始像素是取边框常量颜色还是从DDR读取像素,根据修正后的原始像素地址进行原始像素的读取;并将原始像素发送给卷积计算子模块44。
进一步的,所述卷积计算子模块44接收到卷积核加载模块1发送的卷积算子,像素取值子模块43发送的原始像素,进行卷积计算,并将卷积后像素发送给像素收集模块5。
进一步的,所述像素收集模块5将收到的卷积过滤模块4发送的卷积后像素进行收集,得到一行像素卷积完成的计算结果。
一种基于上述TLM微结构的卷积过滤,包括以下步骤:
步骤1、加载卷积核,首先从加载卷积核命令获取卷积核的像素格式、数据类型、内部格式以及宽高,然后对像素格式、数据类型以及内部格式进行预处理,根据卷积模式以及卷积核的输入宽高,重置卷积核宽高以及宽高的一半。最后将按照像素格式和数据类型、内部格式对卷积算子进行转换后写入对应卷积目标的卷积核;如果是分立卷积核,进行矩阵乘后写入分立卷积核。
步骤2、卷积参数初始化,初始化原始像素写DDR的初始地址和DDR已存储数据的行数都为卷积核高度/2。
步骤3、卷积数据存储,如果输入像素是否是新一行图像但非第一行,存储像素的DDR基址加1;如果DDR基址大于卷积核高度,DDR基址减卷积核高度后为新的DDR基址;当像素存储满一行后,DDR已存储数据的行数加1。然后计算当前像素存储DDR的地址=DDR基址+偏移(偏移=(输入像素在当前行图像的序号+卷积核宽度/2)*4),根据DDR地址,将原始像素数据写入DDR。最后,判断DDR已存储数据的行数,如果等于卷积核高度,对已存储数据的行数自减,表示可以DDR中的像素数据可以进行卷积过滤计算。当存储完成原始图像的最后一行后,根据卷积模式判断是否还有卷积核高度一半的行数未完成卷积过滤计算。
步骤4、卷积过滤计算,首先,计算读取原始像素地址,以当前像素为中心,卷积核宽度、高度的原始像素都需要计算地址。计算取卷积数据的起始地址=存储数据时最新一行DDR基址+1,如果起始地址大于卷积核高度,起始地址减卷积核高度为新的起始地址,即DDR中现存数据中最早的原始行。每个像素存储在DDR的坐标:x=当前像素位置+卷积算子的列数,y=取卷积数据的起始地址+卷子算子的行数,如果y结果大于卷积核高度,那么y=y-卷积核高度。然后,对原始像素地址边界处理,对于在边界上的像素,需要根据卷积模式进行特殊处理。左边界判断,如果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。之后,进行原始像素取值,如果卷积模式为GL_CONSTANT_BORDER并且边界标志为true,原始像素采用边框常量颜色,否则根据原始像素坐标(x,y)在DDR中读取原始像素,因为即使在卷积模式为GL_REPLICATE_BORDER且为边界情况时,上述对边界处理已将地址指向边界地址。最后,进行卷积计算,从卷积核中取出当前位置的卷积算子,将卷积算子与原始像素相乘,并且相乘结果与上次结果进行累加。
步骤5、卷积后像素收集,收集完成一行像素后将卷积后一行像素发送给下个单元。
Claims (10)
1.一种面向GPU硬件图像处理卷积过滤系统的TLM微结构,其特征在于:包括了卷积核加载模块1、参数初始化模块2、卷积数据存储模块3、卷积过滤模块4以及像素收集模块5;
所述卷积核加载模块1用于将加载卷积核命令携带或拷贝的数据按照命令中设置的像素类型、数据格式、内部格式转换后写入卷积核,并且根据卷积模式计算卷积核的宽高及宽高的一半;
所述参数初始化模块2用于初始化原始像素写DDR的初始地址、DDR已存储数据的行数、已完成图像处理行数,并根据卷积模式、原始图像宽高计算卷积过滤后输出图像宽高;
所述卷积数据存储模块3用于将纹理或者像素矩形命令中的像素存储到DDR中,直到存储像素行数满足卷积条件,即达到卷积核的高度;
所述卷积过滤模块4用于计算被卷积数据的取值地址和根据卷积模式进行的边界处理,根据上述计算结果进行被卷积像素的取值,将此值与卷积核加载模块1加载的卷积核算子进行卷积过滤计算,完成一行像素的卷积过滤;
所述像素收集模块5用于收集一行像素卷积完成的计算结果;
所述卷积过滤模块4包括地址计算子模块41、地址边界处理子模块42、像素取值子模块43、卷积计算子模块44;
所述地址计算子模块41用于计算原始像素读取DDR的地址;
所述地址边界处理子模块42用于对上述计算的原始像素地址进行修正或者置边界替换标志位;
所述像素取值子模块43用于根据卷积模式和边界替换标志位判断原始像素是取边框常量颜色还是从上述像素地址进行原始像素的读取;
所述卷积计算子模块44用于根据卷积核加载模块1发送的卷积算子,像素取值子模块43发送的原始像素,进行卷积计算。
2.根据权利要求1所述的一种面向GPU硬件图像处理卷积过滤系统的TLM微结构,其特征在于,所述卷积核加载模块1将收到的加载卷积核命令、卷积模式,经过卷积核参数处理以及加载卷积算子后,将卷积核宽高及宽高的一半通过TLM接口发送给参数初始化模块2,并将卷积算子通过TLM接口发送给卷积过滤模块4。
3.根据权利要求1所述的一种面向GPU硬件图像处理卷积过滤系统的TLM微结构,其特征在于,所述参数初始化模块2将收到的纹理或者像素矩形命令、卷积模式、卷积核加载模块1发送的卷积核宽高及宽高的一半,用于初始化原始像素写DDR的初始地址、DDR已存储数据的行数,然后将原始图像宽高、DDR的初始地址、DDR已存储数行数、原始像素、卷积模式、卷积核宽高及宽高的一半通过TLM接口发送给卷积数据存储模块3。
4.根据权利要求1所述的一种面向GPU硬件图像处理卷积过滤系统的TLM微结构,其特征在于,所述卷积数据存储模块3将收到的参数初始化2发送的原始图像宽高、DDR的初始地址、DDR已存储数行数、原始像素、卷积模式、卷积核宽高及宽高的一半,用于将原始像素存储到DDR中,直到存储像素行数满足卷积条件,开始进行一行像素的卷积过滤计算;
以及在存储完成原始图像的最后一行后,根据卷积模式判断是否还有卷积核高度一半的行数未完成卷积过滤计算,将一行的像素卷积序号、DDR的初始地址、卷积核宽高的一半、像素行号通过TLM接口发送给卷积过滤模块4。
5.根据权利要求1所述的一种面向GPU硬件图像处理卷积过滤系统的TLM微结构,其特征在于,所述卷积过滤模块4将收到的卷积模式、边框常量颜色,卷积核加载模块1发送的卷积算子,卷积数据存储模块3发送的卷积像素序号、DDR的初始地址、卷积核宽高的一半、像素行号,用于读取DDR中的像素或边框常量颜色,将读取的值与卷积核的算子进行卷积过滤计算,将计算结果通过TLM接口发送给像素收集模块5。
6.根据权利要求1所述的一种面向GPU硬件图像处理卷积过滤系统的TLM微结构,其特征在于,所述地址计算子模块41接收到卷积数据存储模块3发送的卷积像素序号、DDR的初始地址,计算原始像素读取DDR的地址,并将原始像素地址发送给地址边界处理子模块42。
7.根据权利要求1所述的一种面向GPU硬件图像处理卷积过滤系统的TLM微结构,其特征在于,所述地址边界处理子模块42接收到卷积模式,卷积数据存储模块3发送的卷积像素序号、卷积核宽高的一半、像素行号,地址计算子模块41发送的原始像素地址,根据以上信息对原始像素的地址修正或者置边界替换标志位;并将修正后的原始像素地址和边界替换标志位发送给像素取值子模块43。
8.根据权利要求1所述的一种面向GPU硬件图像处理卷积过滤系统的TLM微结构,其特征在于,所述像素取值子模块43接收到卷积模式、边框常量颜色、地址边界处理子模块42发送的修正后的原始像素地址和边界替换标志位,根据卷积模式和边界替换标志位判断原始像素是取边框常量颜色还是从DDR读取像素,根据修正后的原始像素地址进行原始像素的读取;并将原始像素发送给卷积计算子模块44。
9.根据权利要求1所述的一种面向GPU硬件图像处理卷积过滤系统的TLM微结构,其特征在于,所述卷积计算子模块44接收到卷积核加载模块1发送的卷积算子,像素取值子模块43发送的原始像素,进行卷积计算,并将卷积后像素发送给像素收集模块5。
10.根据权利要求1所述的一种面向GPU硬件图像处理卷积过滤系统的TLM微结构,其特征在于,所述像素收集模块5将收到的卷积过滤模块4发送的卷积后像素进行收集,得到一行像素卷积完成的计算结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911125547.3A CN111080507B (zh) | 2019-11-18 | 2019-11-18 | 一种面向gpu硬件图像处理卷积过滤系统的tlm微结构 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911125547.3A CN111080507B (zh) | 2019-11-18 | 2019-11-18 | 一种面向gpu硬件图像处理卷积过滤系统的tlm微结构 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111080507A CN111080507A (zh) | 2020-04-28 |
CN111080507B true CN111080507B (zh) | 2022-12-06 |
Family
ID=70311206
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911125547.3A Active CN111080507B (zh) | 2019-11-18 | 2019-11-18 | 一种面向gpu硬件图像处理卷积过滤系统的tlm微结构 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111080507B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107886466A (zh) * | 2017-11-24 | 2018-04-06 | 中国航空工业集团公司西安航空计算技术研究所 | 一种图形处理器图像处理单元体系结构 |
CN108681984A (zh) * | 2018-07-26 | 2018-10-19 | 珠海市微半导体有限公司 | 一种3*3卷积算法的加速电路 |
CN208766715U (zh) * | 2018-07-26 | 2019-04-19 | 珠海市一微半导体有限公司 | 3*3卷积算法的加速电路 |
CN110009644A (zh) * | 2019-03-26 | 2019-07-12 | 深兰科技(上海)有限公司 | 一种特征图行像素分段的方法和装置 |
-
2019
- 2019-11-18 CN CN201911125547.3A patent/CN111080507B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107886466A (zh) * | 2017-11-24 | 2018-04-06 | 中国航空工业集团公司西安航空计算技术研究所 | 一种图形处理器图像处理单元体系结构 |
CN108681984A (zh) * | 2018-07-26 | 2018-10-19 | 珠海市微半导体有限公司 | 一种3*3卷积算法的加速电路 |
CN208766715U (zh) * | 2018-07-26 | 2019-04-19 | 珠海市一微半导体有限公司 | 3*3卷积算法的加速电路 |
CN110009644A (zh) * | 2019-03-26 | 2019-07-12 | 深兰科技(上海)有限公司 | 一种特征图行像素分段的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111080507A (zh) | 2020-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111815755B (zh) | 虚拟物体被遮挡的区域确定方法、装置及终端设备 | |
US7765500B2 (en) | Automated generation of theoretical performance analysis based upon workload and design configuration | |
CN108122266B (zh) | 一种缓存骨骼动画渲染纹理的方法、装置和存储介质 | |
CN109615685B (zh) | 基于uml面向gpu纹理贴图的硬件视图模型的纹理执行装置及方法 | |
CN107220930A (zh) | 鱼眼图像处理方法、计算机装置及计算机可读存储介质 | |
CN104299241A (zh) | 基于 Hadoop 的遥感图像显著性目标检测方法及系统 | |
CN113256755B (zh) | 图像的渲染方法、智能终端以及存储装置 | |
CN111080507B (zh) | 一种面向gpu硬件图像处理卷积过滤系统的tlm微结构 | |
CN116681959B (zh) | 基于机器学习的锋线识别方法、装置、存储介质及终端 | |
CN110038302B (zh) | 基于Unity3D的网格生成方法及装置 | |
CN111047504A (zh) | 一种基于SystemC的GPU子图像处理的TLM微结构 | |
CN109614086B (zh) | 基于SystemC和TLM模型的GPU纹理缓冲区数据存储硬件及存储装置 | |
CN111507891A (zh) | 基于cuda的数字图像几何变换方法、装置、设备及介质 | |
CN112233159B (zh) | 纹理处理方法及装置 | |
CN111028126B (zh) | 一种gpu图像处理卷积过滤的实现方法 | |
CN116127802A (zh) | 3d视景展示cae仿真结果的方法、装置及系统 | |
CN112652056B (zh) | 一种3d信息展示方法及装置 | |
CN111242832B (zh) | 基于SystemC的GPU纹理贴图周期精确联合仿真装置及方法 | |
CN111080508B (zh) | 一种基于dma的gpu子图像处理方法 | |
CN112837256B (zh) | 一种用于Harris角点检测的电路系统及检测方法 | |
CN114372928A (zh) | 一种数据处理方法、装置及电子设备 | |
CN112686992A (zh) | 用于智慧城市occ树的几何图形视锥体实现方法、装置及存储介质 | |
CN112634431A (zh) | 一种三维纹理贴图转化成三维点云的方法及装置 | |
CN112348962A (zh) | 模型构件点选方法、装置、计算机设备和存储介质 | |
CN111552755A (zh) | 三维地名标注的绘制方法、装置、设备及存储介质 |
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 |