一种模板可配置N像素并行灰度形态学滤波IP模块和方法与流程

文档序号:20068213发布日期:2020-03-06 08:46阅读:157来源:国知局
一种模板可配置N像素并行灰度形态学滤波IP模块和方法与流程

本发明属于图像处理技术领域,更具体地,涉及一种模板可配置n像素并行灰度形态学滤波ip模块和方法。



背景技术:

图像预处理是目标检测与识别中的必要环节,灰度形态学滤波是图像预处理中的重要步骤,具有广泛的应用需求和场景。在自动目标识别与跟踪等嵌入式图像处理系统中,往往需要对图像进行灰度形态学滤波来实现平滑图像、凸显图像中感兴趣区域、描绘图像不同区域间的边界等图像预处理功能。在精确制导系统中,为了达到准确识别建筑物的目的,需要多次调用灰度形态学滤波对图像进行背景抑制,去除图像中比结构元素小的不感兴趣区域。且随着飞行器与建筑物之间距离的变化,需要完成灰度形态学滤波的原始图像大小和所需的结构元素大小也会随之改变。

灰度形态学滤波是对与结构元素重合的图像像素执行取灰度差的极小值或取灰度和的极大值操作。做取极值操作后,得到的一个新像素,结构元素中心的坐标就是新像素的坐标,滤波操作的结果是这个新像素的灰度值。使用滤波器中心的访问待处理图像的所有像素,才可以得到灰度形态学腐蚀/膨胀滤波后的图像,连续两次调用灰度形态学腐蚀/膨胀运算才能得到灰度形态学开/闭运算的结果。因此,随着结构元素和待处理图像的增大,实现灰度形态学滤波过程的复杂度和运算负荷随之增加。对于一幅大小为512×640图像,使用tms320c6455型号的dsp实现结构元素大小为81×81的二维形态学腐蚀/膨胀操作,共需约10.7×108次比较运算,耗时约101ms,实现结构元素大小为81×81的二维形态学开/闭操作,共需约21.5×108次比较运算,耗时约202ms,而实验室的嵌入式图像处理系统要求20ms内完成对大小为512*640图像的所有操作包括:采集原始图像,向fpga写入原始图像,灰度形态学滤波,直方图统计,标记、特征计算、相似性判断等与连通区域有关运算,图像差分和高斯滤波运算,连通域特征值计算与分析,特征数据融合,单目标跟踪和输出结果。因此,在cpu或dsp上使用软件编程的方式难以满足嵌入式图像处理系统的实时性要求。目前一般采用硬件加速模块,利用硬件并行性的优势,获得比软件更高的处理速度,以满足嵌入式图像处理系统对灰度形态学滤波模块的实时性要求。

对图像进行二维形态学滤波,需要根据结构元素大小,生成二维工作窗口作为邻域,且在此邻域内完成取灰度差的极小值或取灰度和的极大值的操作。在硬件实现时,随着结构元素大小和待处理图像尺寸大小的增加,所需要的硬件资源和运行时间随之增加。因此,在实时性要求高且硬件资源有限的嵌入式图像处理系统,如航空航天、无人驾驶、精确制导等系统无法适用。



技术实现要素:

针对现有技术灰度形态学滤波时结构元素的增加导致硬件资源消耗大和运行时间长的问题,本发明提供了一种模板可配置n像素并行灰度形态学滤波ip模块和方法,其目的在于实现多像素并行滤波,提高处理速度,减少冗余计算,降低硬件资源开销。

为实现上述目的,按照本发明的第一方面,提供了一种模板可配置n像素并行灰度形态学滤波ip模块,所述模板为平坦对称结构元素,可配置结构元素大小m的最大值为m,所述ip模块包括:

行解析电路,用于在所述ip模块配置为行运算时,对每帧图像数据进行解析,每个时钟周期向并行运算电路输出n个相邻的行像素;

列转置电路,用于在所述ip模块配置为列运算时,对每帧图像数据进行解析,每个时钟周期向并行运算电路输出n个相邻的列像素;

数据拼接电路,用于当图像行列数不是n的整数倍时,对图像进行扩展,以保证送入并行运算电路的n个相邻像素属于同一行/列;

并行运算电路包括:移位寄存器、窗口生成电路和极值运算电路;

移位寄存器,用来缓存经行解析电路和列转置电路解析输出的图像数据;

窗口生成电路,用于在n像素并行滤波时,根据当前配置的结构元素大小、所述ip模块工作方式,从移位寄存器中取缓存的图像数据,可共用图像数据按顺序填充至1×(m+n-1)一维工作窗口的wn~wm位置处,不可共用图像数据按顺序填充至1×(m+n-1)一维工作窗口的剩余位置;

极值运算电路,用于在n像素并行滤波时,根据所述ip模块工作方式,取一维工作窗口各位置像素中的极小值/极大值,得到n像素并行灰度形态学滤波结果。

具体地,所述列转置电路包括:n块简单双端口ram,存储图像数据所需ram的深度为经行处理后图像行数除以n和数据右移电路,其解析过程如下:

(1)图像数据读入,n块ram初始写地址为0,图像数据采用顺序切换的方式每个周期向一块ram写入数据,图像数据写入第n块ram后,写地址加1,继续将图像数据写入n块ram的对应地址,直至n块ram都处于满状态,暂停图像数据读入;

(2)图像数据读出,n块ram初始读地址为0,若每个ram都处于满状态,则从n块简单双端口ram中每次并行读出n个数据,否则当图像数据写入第n块ram后,并行读出n个数据;

(3)在解析第1列n个相邻像素时,数据右移电路将简单双端口的输出数据右移0位,在解析第2列n个相邻像素时,数据右移电路将简单双端口的输出数据右移w位,随着解析像素列数的增加,右移的位数依次加w,直至解析出第列像素,简单双端口ram的满状态结束,其中,w为数据位宽;

(4)判断所有像素是否解析完毕,若是,结束,否则,进入步骤(1)。

具体地,一维工作窗口的填充方式具体如下:

当(n-1)≤m≤m时,将可共用数据填充至一维工作窗口wn~wm位置处,当重用数据不够填充wn~wm位置处时,窗口剩余位置填充2w-1或者0值,腐蚀运算时填充2w-1,膨胀运算时填充0,其余数据按顺序填充w1~wm+n-1位置处;

当1≤m<(n-1)时,一维工作窗口wm+1~wm位置处填充2w-1或者0,腐蚀运算填充2w-1,膨胀运算时填充0,其余数据按顺序填充w1~wm+n-1位置处。

具体地,极值运算电路包括:1个(m-n+1)输入极值运算电路、n个(n-1)输入极值运算电路和1个(n+1)输入极值运算电路;一维工作窗口填充完毕后,取固定位置的数据送入对应的极值运算电路,具体如下:

当(n-1)≤m≤m时,将一维工作窗口中wn~wm位置的数据送入(m-n+1)输入极值运算电路,得到极值y,n个(n-1)输入的极值运算电路的输入数据分别为w1~wn-1位置的数据得到极值y1,w2~wn-1和wm+1位置的数据得到极值y2,一直到wm+1~wm+n-1得到极值yn,再将y分别和y1,y2,…,yn比较,便可得到n像素并行的处理结果;

当1≤m<(n-1)时,将一维工作窗口中wn~wm位置的数据送入(m-n+1)输入求极值运算电路得到极值y,n个(n-1)输入的极值运算电路的输入数据分别为w1~wm,剩余值输入0或2w-1,腐蚀运算输入2w-1,膨胀运算时输入0,得到极值y1,w2~wm和wm+1位置的数据,剩余值输入0或2w-1,腐蚀运算输入2w-1,膨胀运算时输入0,得到极值y2,一直到wm-m+1~wm+n-1,剩余值输入0或2w-1,腐蚀运算输入2w-1,膨胀运算时输入0,得到极值yn,再将y分别和y1,y2,…,yn比较,得到n像素并行的处理结果。

具体地,在配置为不同结构元素大小时,极值运算电路共用一个(m-n+1)输入极值运算电路。

为实现上述目的,按照本发明的第二方面,提供了一种模板可配置n像素并行灰度形态学滤波方法,该方法包括以下步骤:

s1.当图像行列数不是n的整数倍时,对图像进行扩展,以保证行运算/列运算时输出的n个相邻像素属于同一行/列;

s2.当配置为行运算时,对每帧图像数据进行解析,每个时钟周期输出并缓存n个相邻的行像素;当配置为列运算时,对每帧图像数据进行解析,每个时钟周期输出并缓存n个相邻的列像素;

s3.在n像素并行滤波时,根据当前配置的结构元素大小、工作方式,取出缓存的图像数据,可共用图像数据按顺序填充至1×(m+n-1)一维工作窗口的wn~wm位置处,不可共用图像数据按顺序填充至1×(m+n-1)一维工作窗口的剩余位置,其中,m为可配置结构元素大小m的最大值;

s4.在n像素并行滤波时,根据所述工作方式,取一维工作窗口各位置像素中的极小值/极大值,得到n像素并行灰度形态学滤波结果。

具体地,所述当配置为列运算时,对每帧图像数据进行解析,每个时钟周期输出并缓存n个相邻的列像素,具体如下:

(1)图像数据读入,n块ram初始写地址为0,图像数据采用顺序切换的方式每个周期向一块ram写入数据,图像数据写入第n块ram后,写地址加1,继续将图像数据写入n块ram的对应地址,直至n块ram都处于满状态,暂停图像数据读入;

(2)图像数据读出,n块ram初始读地址为0,若每个ram都处于满状态,则从n块简单双端口ram中每次并行读出n个数据,否则当图像数据写入第n块ram后,并行读出n个数据;

(3)在解析第1列n个相邻像素时,数据右移电路将简单双端口的输出数据右移0位,在解析第2列n个相邻像素时,数据右移电路将简单双端口的输出数据右移w位,随着解析像素列数的增加,右移的位数依次加w,直至解析出第列像素,简单双端口ram的满状态结束,其中,w为数据位宽;

(4)判断所有像素是否解析完毕,若是,结束,否则,进入步骤(1)。

具体地,一维工作窗口的填充方式具体如下:

当(n-1)≤m≤m时,将可共用数据填充至一维工作窗口wn~wm位置处,当重用数据不够填充wn~wm位置处时,窗口剩余位置填充2w-1或者0值,腐蚀运算时填充2w-1,膨胀运算时填充0,其余数据按顺序填充w1~wm+n-1位置处;

当1≤m<(n-1)时,一维工作窗口wm+1~wm位置处填充2w-1或者0,腐蚀运算填充2w-1,膨胀运算时填充0,其余数据按顺序填充w1~wm+n-1位置处。

具体地,所述根据所述工作方式,取一维工作窗口各位置像素中的极小值/极大值,得到n像素并行灰度形态学滤波结果,具体如下:

当(n-1)≤m≤m时,将一维工作窗口中wn~wm位置的数据送入(m-n+1)输入极值运算电路,得到极值y,n个(n-1)输入的极值运算电路的输入数据分别为w1~wn-1位置的数据得到极值y1,w2~wn-1和wm+1位置的数据得到极值y2,一直到wm+1~wm+n-1得到极值yn,再将y分别和y1,y2,…,yn比较,便可得到n像素并行的处理结果;

当1≤m<(n-1)时,将一维工作窗口中wn~wm位置的数据送入(m-n+1)输入求极值运算电路得到极值y,n个(n-1)输入的极值运算电路的输入数据分别为w1~wm,剩余值输入0或2w-1,腐蚀运算输入2w-1,膨胀运算时输入0,得到极值y1,w2~wm和wm+1位置的数据,剩余值输入0或2w-1,腐蚀运算输入2w-1,膨胀运算时输入0,得到极值y2,一直到wm-m+1~wm+n-1,剩余值输入0或2w-1,腐蚀运算输入2w-1,膨胀运算时输入0,得到极值yn,再将y分别和y1,y2,…,yn比较,得到n像素并行的处理结果。

具体地,在配置为不同结构元素大小时,极值运算电路共用一个(m-n+1)输入极值运算电路。

总体而言,通过本发明所构思的以上技术方案,能够取得以下有益效果:

(1)本发明在大模板并行灰度形态学滤波ip在配置为列运算时,通过列转置电路完成对图像帧数据的解析,以实现每个周期向运算单元提供n个相邻列像素来支持运算单元并行化,从而提高数据通过率,减少耗时。

(2)本发明中一维工作窗口采用特定填充方式,可共用图像数据按顺序填充至1×(m+n-1)一维工作窗口的wn~wm位置处,不可共用图像数据按顺序填充至1×(m+n-1)一维工作窗口的剩余位置,能够充分利用可共用图像数据,减少冗余计算,降低运算资源消耗。

(3)本发明ip在配置为不同结构元素大小时,极值运算电路都共用一个(m-n+1)输入极值电路的运算结果,减少了运算资源消耗。

(4)调用本发明设计的大模板并行灰度形态学滤波ip模块实现二维形态学滤波,可减少大模板滤波时二维窗口生成对存储资源的消耗,从而降低存储资源消耗。

附图说明

图1为本发明实施例提供的一种模板可配置n像素并行灰度形态学滤波ip模块整体框图;

图2为本发明实施例提供的列转置电路结构框图;

图3为本发明实施例提供的并行运算电路结构框图;

图4为本发明实施例提供的相邻8像素并行可重用数据分析图;

图5为本发明实施例提供的一维灰度形态学滤波实现二维腐蚀运算的示意图;

图6为本发明实施例提供的一维灰度形态学滤波实现二维开运算的示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。

首先,对本发明涉及的术语和各变量进行解释:

m:可配置结构元素大小。

m:可配置结构元素大小的最大值,为不大于图像行列数的奇数。

n:并行像素总数。

w:图像数据位宽。

a*b:原始图像大小为a行b列。

m*n:二维形态学滤波结构元素大小。

ip模块:知识产权(intellectualproperty,ip)模块。

针对ip实现必须降低存储资源消耗这一要求,设计了用一维形态学滤波实现二维形态学滤波的方案以减少大模板滤波时二维窗口生成对存储资源的消耗,对于一维形态学滤波列运算时的数据解析方式提出了要求,设计了列转置电路以达到每个周期像运算电路提供8个相邻的列像素。针对ip必须提高时钟工作频率以满足系统对系统的实时性要求这一问题,通过挖掘大模板形态学滤波过程中运算电路的可重用性,充分开发形态学滤波的并行性,提高了灰度形态学滤波ip的数据通过率。ip在配置为不同结构元素大小时,极值运算电路都相同且共用一个74输入极值电路,减少了运算资源消耗。

如图1所示,本发明提出一种模板可配置n像素并行灰度形态学滤波ip模块,所述模板为平坦对称结构元素,可配置结构元素大小m的最大值为m,所述ip模块包括:

行解析电路,用于在所述ip模块配置为行运算时,对每帧图像数据进行解析,每个时钟周期向并行运算电路输出n个相邻的行像素。

列转置电路,用于在所述ip模块配置为列运算时,对每帧图像数据进行解析,每个时钟周期向并行运算电路输出n个相邻的列像素。

数据拼接电路,用于当图像行列数不是n的整数倍时,对图像进行扩展,以保证送入并行运算电路的n个相邻像素属于同一行/列。

并行运算电路包括:移位寄存器、窗口生成电路和极值运算电路。

移位寄存器,用来缓存经行解析电路和列转置电路解析输出的图像数据。

窗口生成电路,用于在n像素并行滤波时,根据当前配置的结构元素大小、所述ip模块工作方式,从移位寄存器中取缓存的图像数据,可共用图像数据按顺序填充至1×(m+n-1)一维工作窗口的wn~wm位置处,不可共用图像数据按顺序填充至1×(m+n-1)一维工作窗口的剩余位置。

极值运算电路,用于在n像素并行滤波时,根据所述ip模块工作方式,取一维工作窗口各位置像素中的极小值/极大值,得到n像素并行灰度形态学滤波结果。

为了使灰度形态学滤波算法得到较好的结果,灰度形态学滤波运算中结构元素的选择应该满足两个条件:一是,结构元素在几何上不应该比原图像复杂,且结构元素有界。二是,结构元素的子集应当是凸性子集。本发明支持的形态学结构元素为:值为1的矩形结构元素,属平坦结构,最大为81×81。

行解析电路中,行运算为行腐蚀或行膨胀;列转置电路中,列运算为列腐蚀或列膨胀。ip模块工作方式为腐蚀或膨胀。

如图2所示,所述列转置电路包括:n块简单双端口ram,存储图像数据所需ram的深度为经行处理后图像行数除以n和数据右移电路,其解析过程如下:

(1)图像数据读入,n块ram初始写地址为0,图像数据采用顺序切换的方式每个周期向一块ram写入数据,图像数据写入第n块ram后,写地址加1,继续将图像数据写入n块ram的对应地址,直至n块ram都处于满状态,暂停图像数据读入。

(2)图像数据读出,n块ram初始读地址为0,若每个ram都处于满状态,则从n块简单双端口ram中每次并行读出n个数据,否则当图像数据写入第n块ram后,并行读出n个数据。

(3)在解析第1列n个相邻像素时,数据右移电路将简单双端口的输出数据右移0位,在解析第2列n个相邻像素时,数据右移电路将简单双端口的输出数据右移w位,随着解析像素列数的增加,右移的位数依次加w,直至解析出第列像素,简单双端口ram的满状态结束,其中,w为数据位宽。

本实施例中,n=8。若数据位宽w为8,则每帧数据包含32个像素即32列像素。同一列8个并行像素如图中像素1~像素8,取右移电路输出结果的第0位~第7位得到。在解析第1列8个相邻像素时,数据右移电路将简单双端口的输出数据右移0位。在解析第2列8个相邻像素时,数据右移电路将简单双端口的输出数据右移8位。随着解析像素列数的增加,右移的位数依次加8,直至解析第32列像素,简单双端口的满状态结束。

若数据位宽w为16,则每帧数据包含16个像素即16列像素。同一列8个并行像素如图中像素1~像素8,取右移电路输出结果的第0位~第15位得到。在解析第1列8个相邻像素时,数据右移电路将简单双端口的输出数据右移0位。在解析第2列8个相邻像素时,数据右移电路将简单双端口的输出数据右移16位。随着解析像素列数的增加,右移的位数依次加16,直至解析第16列像素,简单双端口的满状态结束。

(4)判断所有像素是否解析完毕,若是,结束,否则,进入步骤(1)。

简单双端口的满状态结束后继续从数据fifo中读取数据,如此循环,直至所用像素解析完毕。

如图3所示,并行运算电路包括:移位寄存器、窗口生成电路和极值运算电路。并行运算电路的作用是通过充分重复利用极值运算电路运算结果,来提高大模板并行灰度形态学滤波ip电路的数据通过率。

移位寄存器,用来缓存经行解析电路和列转置电路解析输出的图像数据。

窗口生成电路,用于在n像素并行滤波时,根据当前配置的结构元素大小、所述ip模块工作方式,从移位寄存器中取缓存的图像数据,可共用图像数据按顺序填充至1×(m+n-1)一维工作窗口的wn~wm位置处,不可共用图像数据按顺序填充至1×(m+n-1)一维工作窗口的剩余位置。

如图4所示,当结构元素大小m满足(n-1)<m<m时,一维工作窗口中n~m位置处的像素是可以重复利用的。当结构元素大小m满足1≤m≤(n-1)时,n像素并行滤波时,一维工作窗口中无可重复利用的图像像素。因此,为了能够充分利用可重用图像数据,减少冗余计算,降低运算资源消耗,本发明采用特定方式填充一维工作窗口,结构元素大小m可任意配置为1到81内的任意值。

一维工作窗口的填充方式具体如下:

当(n-1)≤m≤m时,将可共用数据填充至一维工作窗口wn~wm位置处,当重用数据不够填充wn~wm位置处时,窗口剩余位置填充2w-1或者0值,腐蚀运算时填充2w-1,膨胀运算时填充0,其余数据按顺序填充w1~wm+n-1位置处。

当1≤m<(n-1)时,一维工作窗口wm+1~wm位置处填充2w-1或者0,腐蚀运算填充2w-1,膨胀运算时填充0,其余数据按顺序填充w1~wm+n-1位置处。

极值运算电路,用于在n像素并行滤波时,根据所述ip模块工作方式,取一维工作窗口各位置像素中的极小值/极大值,得到n像素并行灰度形态学滤波结果。

极值运算电路包括:1个(m-n+1)输入极值运算电路、n个(n-1)输入极值运算电路和1个(n+1)输入极值运算电路。其中,(n-1)输入极值电路用于处理不同像素在一维窗口中非共用数据的极值,(m-n+1)输入极值电路用处理不同像素在可共用数据中的极值,(n+1)输入极值电路用于得到不同像素的一维滤波结果。一维工作窗口填充完毕后,取固定位置的数据送入对应的极值运算电路,具体如下:

当(n-1)≤m≤m时,将一维工作窗口中wn~wm位置的数据送入(m-(n-1))输入极值运算电路,得到极值y,n个(n-1)输入的极值运算电路的输入数据分别为w1~wn-1位置的数据得到极值y1,w2~wn-1和wm+1位置的数据得到极值y2,一直到wm+1~wm+n-1得到极值yn。再将y分别和y1,y2,…,yn比较,便可得到n像素并行的处理结果。

当1≤m<(n-1)时,将一维工作窗口中wn~wm位置的数据送入(m-(n-1))输入求极值运算电路得到极值y,n个(n-1)输入的极值运算电路的输入数据分别为w1~wm,剩余值输入0或2w-1,腐蚀运算输入2w-1,膨胀运算时输入0,得到极值y1,w2~wm和wm+1位置的数据,剩余值输入0或2w-1,腐蚀运算输入2w-1,膨胀运算时输入0,得到极值y2,一直到wm-m+1~wm+n-1,剩余值输入0或2w-1,腐蚀运算输入2w-1,膨胀运算时输入0,得到极值yn,再将y分别和y1,y2,…,yn比较,便可得到n像素并行的处理结果。

优选地,ip在配置为不同结构元素大小时,极值运算电路都相同且共用一个(m-(n-1))输入极值运算电路,可减少运算资源消耗。

本实施例中,n=8,m=81。当结构元素大小m≥7时,取一维工作窗口8~81位置的像素送入74输入极值运算电路,取1~7、2~7和82、3~7和82~83、4~7和82~84、5~7和82~85、6~7和82~86、7和82~87、82~88位置处的像素数据分别送入8个7输入极值运算电路,再将9个极值运算电路的输出结果送入9输入极值运算电路,得到并行运算结果。

当结构元素大小m=3时,取一维工作窗口8~81位置的像素送入74输入极值运算电路,取1~7位置处的像素、2~7和82位置处的像素、3~7和82~83位置处的像素、4~7和82~84位置处的像素、5~7和83~85位置处的像素外加一个额外像素(腐蚀为255,膨胀为0)、6~7和84~86位置处的像素外加两个额外像素(腐蚀为255,膨胀为0)、7和85~87位置处的像素外加三个个额外像素(腐蚀为255,膨胀为0)、86~88位置处的像素外加四个额外像素(腐蚀为255,膨胀为0)分别送入8个7输入极值运算电路,再将9个极值运算电路的输出结果送入9输入极值运算电路,得到并行运算结果。

当结构元素大小3<m<7时,取一维工作窗口8~81位置的像素送入74输入极值运算电路,取1~7位置处的像素、2~7和82位置处的像素、3~7和82到83位置处的像素、4~7和82~84位置处的像素、5~7和82~85位置处的像素、6~7和82~86位置处的像素、7和83~87位置处的像素外加一个额外像素(腐蚀为255,膨胀为0)、84~88位置处的像素外加两个额外像素(腐蚀为255,膨胀为0)分别送入8个7输入极值运算电路。再将9个极值运算电路的输出结果送入9输入极值运算电路,得到并行运算结果。

灰度形态学的腐蚀或者膨胀实现过程是,以结构元素b(m,n)为滤波模板,其中,m为形态学滤波窗口行数,n为列数。以b的原点为中心,访问待处理图像f的每个像素,每个像素的腐蚀结果/膨胀结果由与结构元素b重合区域的像素的极小值(对应腐蚀)或者极大值(对应膨胀)决定。

本发明采用独立模块单独调用的硬件加速方案,各个模块之间相对独立,不进行直接通信,而是嵌入式图像处理系统将图像按帧加载至中心存储器,根据不同的应用场景,通过dsp发送指令控制中央控制单元调用不同的模块构成不同的处理流程,具有非常高的灵活性,同时在单独调用模块时中央控制器能够为模块提供高带宽的输入数据,可以发挥某个模块的处理速度优势。

设计的大模板并行灰度形态学滤波ip应能对尺寸最大为512×640的灰度图像,进行结构元素大小最大为81×81的灰度形态学滤波,灰度像素位宽为8bit或者16bit,且可处理图像行列大小和结构元素大小应支持可配置,即在512×640以内的其他行列大小的图像和81×81以内的其结构元素大小应该也能进行计算。ip时钟频率达到150mhz以上。

中心存储器每个时钟周期向各个功能ip按帧(一帧256bit)提供高带宽的图像数据,各个功能ip的处理结果也按帧写回中心存储器。优选地,运算结果由输出数据拼接电路拼接为256bit的输出数据通过输出fifo输出到总线。

当原灰度像素图像一行的数据位宽(b×w)不是256的整数倍时,中心存储器中的某些帧数据中包含的像素不属于同一行,需对行运算的处理结果进行输出结果数据拼接完成行对齐的操作,即使一帧数据的每个像素都属于同一行。经输出数据拼接,若行处理时原始图像像素位宽为8,则图像列数会被扩展为32的整数倍;若原始图像像素位宽为16,则图像列数会被扩展为16的整数倍。

进一步地,调用本发明设计的大模板并行灰度形态学滤波ip模块需先做行运算,再做列运算,以实现二维形态学滤波,减少大模板滤波时二维窗口生成对存储资源的消耗,从而降低存储资源消耗。

如图5所示,一维灰度形态学滤波实现二维腐蚀运算时,为了得到二维腐蚀运算的处理结果,需要依次对图像完成结构元素大小为n的行腐蚀、结构元素大小为m列腐蚀,此时得到滤波后的图像大小为n×m,与原图像相比行列转置,还需调用一次ip,此时配置为结构元素大小为1,工作方式为列腐蚀。因此,完成二维形态学腐蚀/膨胀共需调用三次大模板并行灰度形态学滤波ip。

如图6所示,一维灰度形态学滤波实现二维开运算时,为了得到二维开运算的滤波结果,需要依次对图像完成结构元素大小为n的行腐蚀、结构元素大小为m的列腐蚀、结构元素大小为m的行膨胀、结构元素大小为n的列膨胀。因此,完成二维形态学开/闭运算共需调用四次并行灰度形态学滤波ip。

ip电路的数据通过率计算方式如下所示:

ip数据通过率=图像像素的总个数/ip处理一幅图像的总时间。

表1

从表1可知,在150mhz工作时钟频率下调用大模板并行灰度形态学滤波ip,对一幅大小为256×320的图像实现一维灰度形态学腐蚀/膨胀时,数据通过率为986mpx/s,即每秒钟处理986×106个像素,实现二维灰度形态学腐蚀/膨胀时,数据通过率为328.6mpx/s,即每秒钟处理328.6×106个像素,实现二维灰度形态学开运算或闭运算时,数据通过率为246.5mpx/s,即每秒钟处理246.5×106个像素。对一幅大小为512×640的图像实现一维灰度形态学腐蚀/膨胀时,数据通过率为984mpx/s,即每秒钟处理984×106个像素,实现二维灰度形态学腐蚀/膨胀时,数据通过率为328mpx/s,即每秒钟处理328×106个像素,实现二维灰度形态学开运算或闭运算时,数据通过率为246mpx/s,即每秒钟处理246×106个像素。大模板并行灰度形态学滤波ip在完成大模板灰度形态学滤波时具有较高的数据通过率。

表2

由表2可知,通过与mukherjee,debasish等人提出的力法利gibsonrm等人提出的方法中的灰度形态学滤波实现方案的对比,本发明的灰度形态学滤波实现方案可以支持最大为81×81的结构元素,在运算速度上有较大提高且功耗较低。

本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1