为图像并行运算电路提供数据的多像素拼接方法和系统与流程

文档序号:19378309发布日期:2019-12-11 00:06阅读:251来源:国知局
为图像并行运算电路提供数据的多像素拼接方法和系统与流程

本发明属于图像处理技术领域,更具体地,涉及一种为图像并行运算电路提供数据的多像素拼接方法和系统。



背景技术:

在图像处理领域,对图像进行形态学滤波、腐蚀、膨胀、标记、直方图统计等运算,往往是通过逐像素处理图像来完成,简单且易于实现。但是随着图像面积越来越大,逐像素处理图像的方式将会变得越来越耗时,在实时性要求高的场合很难适用。因此,采用多像素并行的方式处理图像,即在一个时钟周期对图像中的多个像素完成运算。

一些图像运算,例如形态学滤波、腐蚀、膨胀、标记等,需要保证输入图像像素空间位置的连续性。通常情况下,图像像素是连续输入的,通过逐像素的方式处理图像,无需考虑图像的连续性问题。但是通过多像素并行的方式处理图像时,当前时钟周期要处理的多个像素在空间位置关系上存在不确定性,即可能属于同一行,也可能属于不同行,这就给对输入图像像素空间位置具有连续性要求的图像运算,例如形态学滤波、腐蚀、膨胀、标记等,带来很大的麻烦。因此,需要对并行输入的多个像素做预处理,保证预处理后的像素在空间位置关系上的连续性,然后再进行图像并行运算。

预处理过程实质上就是多像素拼接的过程,目前在硬件实现方面,不同大小的图像,多像素拼接的过程也不一样,因此需要针对不同大小的图像,设计不同的多像素拼接电路,适用性差;要使图像并行运算电路适用不同大小的图像,就需要设计多个预处理电路来满足要求,导致电路面积非常庞大。同时,多像素拼接过程还与图像并行运算电路的并行度有关,针对某一图像并行运算电路的并行度设计的多像素拼接电路,很难扩展到具有不同并行度要求的其他图像并行运算电路。

由此可见,现有多像素拼接方法存在适用性差、电路面积庞大且可扩展性差的问题。



技术实现要素:

针对现有技术的缺陷,本发明的目的在于一种为图像并行运算电路提供数据的多像素拼接方法和系统,旨在解决现有多像素拼接方法存在适用性差、电路面积庞大且可扩展性差的问题。

为实现上述目的,本发明一方面提供了一种为图像并行运算电路提供数据的多像素拼接方法,包括:

(1)输入图像单位数据;

将m×n大小的输入图像逐行逐列以连续的s个像素作为一个输入图像单位数据并行输入;其中,m为输入图像行数,n为输入图像列数,s表示图像并行运算电路的并行度;

(2)输出图像单位数据;

以每行连续的s个像素作为一个输出图像单位数据并行输出。

进一步地,步骤(1)中所述s个像素在空间位置上属于所述输入图像的同一行或不同行。

进一步地,所述方法还包括:当每行的最后r个像素不足s个时,对输出图像单位数据不足位填充像素p;其中r为n除以s的余数,r=0,1,2,…,s-1。

进一步地,所述像素p为固定值的像素或所述输入图像中设定位置的像素。

进一步地,步骤(2)所述输出图像单位数据,具体包括:

(2.1)输出第m行的非最后一个图像单位数据;

将前一个输入图像单位数据中的s-sm个像素和当前输入图像单位数据中sm个像素拼接,得到第m行的非最后一个图像单位数据;其中,m={0,…,m-1},sm=1,2,3,…,s;

(2.2)输出第m行的最后一个图像单位数据;

当s>=sm+r时,将前一个输入图像单位数据中r个像素和s-r个像素p拼接,得到第m行的最后一个图像单位数据,同时暂停输入图像单位数据,并保持前一个输入图像单位数据不变;

当s<sm+r时,将前一个输入图像单位数据中s-sm个像素、当前输入图像单位数据中r+sm-s个像素和s-r个像素p拼接,得到第m行的最后一个图像单位数据;

(2.3)输出第m+1行图像单位数据;

当s>=sm+r时,令sm+1=sm+r,重复执行步骤(2.1)、(2.2)得到第m+1行输出图像单位数据;其中,sm+1=1,2,3,…,s;

当s<sm+r时,令sm+1=r+sm-s,重复执行步骤(2.1)、(2.2)得到第m+1行输出图像单位数据。

本发明另一方面提供了一种为图像并行运算电路提供数据的多像素拼接系统,包括:数据输入模块和数据拼接模块;

所述数据输入模块,用于将m×n大小的输入图像逐行逐列以连续的s个像素作为一个输入图像单位数据并行输入;其中,m为输入图像行数,n为输入图像列数,s表示图像并行运算电路的并行度;

所述数据拼接模块,用于以每行连续的s个像素作为一个输出图像单位数据并行输出。

进一步地,所述s个像素在空间位置上属于所述输入图像的同一行或不同行。

进一步地,所述系统还包括填充模块;所述填充模块,用于在每行的最后r个像素不足s个时,对输出图像单位数据不足位填充像素p;其中r为n除以s的余数,r=0,1,2,…,s-1。

进一步地,所述像素p为固定值的像素或所述输入图像中设定位置的像素。

进一步地,所述数据拼接模块包括统一的拼接过程状态机;

所述拼接过程状态机在输出第m行的非最后一个图像单位数据时,处于第一状态,将前一个输入图像单位数据中的s-sm个像素和当前输入图像单位数据中sm个像素拼接,得到第m行的非最后一个图像单位数据;其中,m={0,…,m-1},sm=1,2,3,…,s;

所述拼接过程状态机在输出第m行的最后一个图像单位数据时,处于第一状态,当s>=sm+r,将前一个输入图像单位数据中r个像素和s-r个像素p拼接,得到第m行的最后一个图像单位数据,同时暂停输入图像单位数据,并保持前一个输入图像单位数据不变;当s<sm+r,将前一个输入图像单位数据中s-sm个像素、当前输入图像单位数据中r+sm-s个像素和s-r个像素p拼接,得到第m行的最后一个图像单位数据;

所述拼接过程状态机在输出第m+1行输出图像单位数据时,处于第二状态,此状态下sm+1的值由以下判断得到:当s>=sm+r,令sm+1=sm+r;当s<sm+r,令sm+1=r+sm-s;所述第二状态执行与所述第一状态相同的操作,得到第m+1行输出图像单位数据;其中,sm+1=1,2,3,…,s。

通过本发明所构思的以上技术方案,与现有技术相比,能够取得以下

有益效果:

(1)本发明针对不同大小图像的拼接过程,提出了统一的拼接方法,能够适用不同大小的图像,适用性强,且无需对不同大小的图像设计多个预处理电路,从而有效减小了电路面积。

(2)本发明的多像素拼接方法,可根据不同图像并行运算电路并行度s的要求,设计相应的多像素拼接系统,其中数据拼接模块采用了统一的状态机实现,具有统一的状态转移公式,对于不同大小图像和不同的并行度s均可配置,可扩展性强。

附图说明

图1是本发明提供的一种用于为图像并行运算电路提供数据的多像素拼接方法流程图。

图2(a)是输入图像单位数据格式;

图2(b)是输出图像单位数据格式;

图3(a)是当s>=sm+r时,第m行输出图像单位数据的拼接过程;

图3(b)是当s<sm+r时,第m行输出图像单位数据的拼接过程;

图4是本发明提供的一种用于为图像并行运算电路提供数据的多像素拼接系统结构图。

图5是一种适用不同大小图像拼接过程的统一拼接过程状态机。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

如图1所示,本发明的第一个实施例提供了一种为图像并行运算电路提供数据的多像素拼接方法,包括:

(1)输入图像单位数据;

将m×n大小的输入图像逐行逐列以连续的s个像素作为一个输入图像单位数据并行输入;其中,m为输入图像行数,n为输入图像列数;

具体地,如图2(a)所示,s个像素的空间位置关系具有不确定性,即s个像素可能属于同一行,也可能属于不同行,s表示图像并行运算电路的并行度。

(2)输出图像单位数据;

以每行连续的s个像素作为一个输出图像单位数据并行输出。

具体地,如图2(b)所示,当每行的最后r个像素不足s个时,对输出图像单位数据不足位填充像素p,经过拼接输出图像单位数据中s个像素在空间位置关系上属于同一行连续的s个像素。

其中,r为n除以s的余数,r=0,1,2,…,s-1,像素p为固定值的像素或所述输入图像中设定位置的像素,根据图像并行运算电路需求设置。

进一步地,步骤(2)具体包括:

(2.1)输出第m行的非最后一个图像单位数据;

将前一个输入图像单位数据中的s-sm个像素和当前输入图像单位数据中sm个像素拼接,得到第m行的非最后一个图像单位数据;其中,m表示图像的行数,m={0,…,m-1},sm=1,2,3,…,s;

(2.2)输出第m行的最后一个图像单位数据;

如图3(a)所示,当s>=sm+r时,将前一个输入图像单位数据中r个像素和s-r个像素p拼接,得到第m行的最后一个图像单位数据,同时暂停输入图像单位数据,并保持前一个输入图像单位数据不变;

如图3(b)所示,当s<sm+r时,将前一个输入图像单位数据中s-sm个像素、当前输入图像单位数据中r+sm-s个像素和s-r个像素p拼接,得到第m行的最后一个图像单位数据;

(2.3)输出第m+1行图像单位数据;

当s>=sm+r时,令sm+1=sm+r,重复执行步骤(2.1)、(2.2)得到第m+1行输出图像单位数据;其中,sm+1=1,2,3,…,s;

当s<sm+r时,令sm+1=r+sm-s,重复执行步骤(2.1)、(2.2)得到第m+1行输出图像单位数据。

从数据拼接步骤(2.1)(2.2)(2.3)可以看出:同一行的输出图像单位数据的拼接过程相同;当s唯一确定时,具有相同s的不同行的非最后一个输出图像单位数据拼接过程相同。

如图4所示,本发明的第二个实施例提供了一种为图像并行运算电路提供数据的多像素拼接系统,包括:数据输入模块和数据拼接模块;

数据输入模块,用于将m×n大小的输入图像逐行逐列以连续的s个像素作为一个输入图像单位数据并行输入;其中,m为输入图像行数,n为输入图像列数,s表示图像并行运算电路的并行度;数据拼接模块,用于以每行连续的s个像素作为一个输出图像单位数据并行输出。输入的s个像素的空间位置关系具有不确定性,即s个像素可能属于同一行,也可能属于不同行。上述系统还可包括填充模块;填充模块,用于在每行的最后r个像素不足s个时,对输出图像单位数据不足位填充像素p;其中r为n除以s的余数,像素p为固定值的像素或输入图像中设定位置的像素。

具体地,所述数据拼接模块包括统一的拼接过程状态机;

拼接过程状态机在输出第m行的非最后一个图像单位数据时,处于第一状态,将前一个输入图像单位数据中的s-sm个像素和当前输入图像单位数据中sm个像素拼接,得到第m行的非最后一个图像单位数据;其中,m={0,…,m-1},sm=1,2,3,…,s;

拼接过程状态机在输出第m行的最后一个图像单位数据时,处于第一状态,当s>=sm+r,将前一个输入图像单位数据中r个像素和s-r个像素p拼接,得到第m行的最后一个图像单位数据,同时暂停输入图像单位数据,并保持前一个输入图像单位数据不变;当s<sm+r,将前一个输入图像单位数据中s-sm个像素、当前输入图像单位数据中r+sm-s个像素和s-r个像素p拼接,得到第m行的最后一个图像单位数据;

拼接过程状态机在输出第m+1行输出图像单位数据时,处于第二状态,此状态下sm+1的值由以下判断得到,当s>=sm+r,令sm+1=sm+r;当s<sm+r,令sm+1=r+sm-s;第一状态执行与第二状态相同的操作,得到第m+1行输出图像单位数据;其中,sm+1=1,2,3,…,s。

如图5所示,本发明第三个实施例提供了一种适用不同大小图像拼接过程的统一拼接过程状态机,图中start表示启动一帧图像的拼接过程,row_end表示一行的输出图像单位数据拼接完毕,状态机中各个状态执行如下操作:

根据s将拼接过程划分为s个状态:p1、p2、…ps(对应s=1,2,3,…,s),s个状态构成完整的拼接过程状态机,当前状态psm下,当一行的最后一个输出图像数据拼接完成时,跳转到下一个状态psm+1,sm+1的计算公式,即状态转移公式为:

其中,mod(sm+r,s)表示sm+r除以s的余数。并且,当r和s一定时,sm=sm+s;

在最后一行图像数据的最后一个输出图像数据拼接完成,则从拼接过程状态机跳出,完成当前图像的拼接。

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

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