专利名称:一种二维矩阵匹配方法及电路的制作方法
—种二维矩阵匹配方法及电路技术领域
本发明属于矩阵匹配技术领域,具体涉及一种二维矩阵匹配方法及电路。
背景技术:
在图像处理、模式识别和信息搜索等众多领域,都需要应用二维矩阵的匹配运算。 常用的匹配运算包括绝对差、均方差和积相关等方法,在实际中会根据具体应用,从精度、 效率和通用性三个方面衡量以选择较优的算法·。虽然匹配算法有所不同,但归根结底都是两个二维矩阵对应点的遍历计算,即作为目标的小矩阵与包含所有待匹配数据的大矩阵中所有和上述小矩阵大小相同的子矩阵之间的相关性计算。
现有的匹配方法中,需要预先开辟出一个二维小矩阵、一个二维大矩阵和一个与小矩阵大小相同的二维运算缓存区,每一次匹配运算都需要从大矩阵中截出与小矩阵同样大小的子矩阵放入运算缓存区,数据的抽取控制非常复杂,如图1所示。实现上述匹配方法的电路中,因为二维存储空间由多个一维内存构造而成,在硬件实现中,每构造一个一维内存,即使内存容量很小(通常小于1K),都要独占一个块内存(4K以上),浪费了大量宝贵的块内存资源;因为每一次匹配运算都需要从大矩阵内存中截出与小矩阵同样大小的子矩阵放入运算缓存区,导致需要较多的时钟周期才能完成相应的操作,降低了运算速度。发明内容
本发明需要解决的技术问题是现有二维矩阵匹配方法需要设置运算缓存区,抽取控制过于复杂;现有二维矩阵匹配电路浪费大量块内存资源。
本发明的技术方案如下所述
一种二维矩阵匹配方法,包括以下步骤
步骤1.构建小矩阵存储模块;步骤2.构建大矩阵存储模块,其包括大矩阵存储模块A和大矩阵存储模块B ;步骤3.小矩阵存储模块与大矩阵存储模块A进行匹配;步骤4.整合匹配结果,完成匹配运算。
其具体步骤如下所述
步骤1.构建小矩阵存储模块
小矩阵存储模块为mXn 二维存储矩阵,用于存储I mXn#目标数据;
步骤2.构建大矩阵存储模块
大矩阵存储模块用于存储待匹配的所有数据,其包括两个子存储模块大矩阵存储模块A和大矩阵存储模块B ;其中,大矩阵存储模块A为mXN 二维存储矩阵,初始时刻用于存储第I (mXN)#待匹配数据;大矩阵存储模块B为一维存储矩阵用于存储第 (mXN+1) (Μ X N) #待匹配数据;
步骤3.小矩阵存储模块与大矩阵存储模块A进行匹配
步骤3.1.第I次匹配
步骤3.1.1.第I次匹配中,小矩阵存储模块与大矩阵存储模块A中和小矩阵存储模块同样大小的所有子矩阵进行匹配运算;
步骤3. 1.2.大矩阵存储模块A进行数据替换,替换方式为取出大矩阵存储模块 B的前N个数据覆盖大矩阵存储模块A的第I行数据;
步骤3.1. 3.进行步骤3.1. 2的同时,小矩阵存储模块进行行变换;变换方式为 上一行数据移动至下一行,第m行数据移动至第I行;
步骤3. 2.第i次匹配(i > I):
步骤3. 2.1.小矩阵存储模块与大矩阵存储模块A中和小矩阵存储模块同样大小的所有子矩阵进行匹配运算;
步骤3. 2. 2.判断大矩阵存储模块B是否还有未被取出的数据如果大矩阵存储模块B没有未被取出的数据,则跳过步骤3中的剩余步骤,直接进行步骤4 ;如果大矩阵存储模块B有未被取出的数据,则对大矩阵存储模块A进行数据替换;替换方式为取出大矩阵存储模块B未被取出过的数据中的前N个数据,覆盖大矩阵存储模块A前一次被替换的数据所在行的下一行数据,若前一次被替换的数据所在行为第m行,则覆盖大矩阵存储模块A 经前一次数据替换后的第I行数据;
步骤3. 2. 3.进行步骤3. 2. 2的同时,小矩阵存储模块进行行变换;变换方式为 上一行数据移动至下一行,第m行数据移动至第I行;
步骤4.整合匹配结果,完成匹配运算。
一种用于上述二维矩阵匹配方法的二维矩阵匹配电路,其包括小矩阵存储模块控制电路和大矩阵存储模块控制电路,大矩阵存储模块控制电路包括大矩阵存储模块A控制电路和大矩阵存储模块B控制电路。
小矩阵存储模块控制电路包括m个块内存和m个二选一电路,分别标识为I m# 块内存和I m# 二选一电路,块内存和二选一电路交互排列,串联成闭合回路i#块内存的输入为i# 二选一电路的输出,i#块内存的输出与初始数据共同作为(i+1)# 二选一电路的两路 输入(I < i < m) ;m#块内存的输入为m# 二选一电路的输出块内存的输出与初始数据共同作为1# 二选一电路的两路输入;上述块内存均采用统一的读、写时钟,读、写地址,和读使能信号;每个块内存设有独立的写使能信号。
大矩阵存储模块B控制电路为一块内存,其输入为二维矩阵匹配方法中大矩阵存储模块B所存储的待匹配数据,输出与大矩阵存储模块A控制电路相连接;所述块内存设有独立的读、写地址和读、写使能信号。
大矩阵存储模块A控制电路包括m个块内存和m个二选一电路,分别标识为I m#块内存和I m# 二选一电路,i# 二选一电路(I彡i彡m)的一路输入为大矩阵存储模块B控制电路块内存的输出,另一路输入为二维矩阵匹配方法中大矩阵存储模块A初始时刻未经数据替换前第i行的目标数据;i# 二选一电路的输出为i#块内存;大矩阵存储模块 A控制电路的所有块内存均采用统一的读、写时钟,读、写地址,和读使能信号,大矩阵存储模块A控制电路的每个块内存设有独立的写使能信号。
本发明的有益效果为
(I)本发明的二维矩阵匹配方法无需建立运算缓冲区,简化了数据抽取过程;
(2)由于无需建立运算缓冲区,本发明的二维矩阵匹配电路仅需要在构造小矩阵存储模块和大矩阵存储模块A时使用,且大矩阵存储模块A无需包含所有数据,这种设计减少了块内存的使用量,极大减少了块内存资源的浪费;
(3)不需要对大矩阵中指定的数据进行抽取和转存操作,在运算过程中,只需要按行将数据不断从大矩阵存储模块B中搬到大矩阵存储模块A中即可满足运算要求,大幅度提高了运算速度。
图1为现有二维矩阵匹配方法示意图2为本发明的二维矩阵匹配方法示意图3为本发明的二维矩阵匹配方法大矩阵存储模块数据替换过程;
图4为本发明的二维矩阵匹配方法小矩阵存储模块行行转换过程;
图5为本发明的二维矩阵匹配电路中小矩阵存储模块电路;
图6为本发明的二维矩阵匹配电路中大矩阵存储模块电路。
具体实施方式
下面结合附图和实施例对本发明的二维矩阵匹配方法及电路进行介绍。
设目标的数据数量为mX η个,所有待匹配的数据数量为MXN个,其中M>m,N>Πο
本发明的二维矩阵匹配方法具体包括以下步骤
步骤1.构建小矩阵存储模块
如图2所示,构造一个可保存η个元素的一维存储向量,复制m个上述存储向量, 共同构成一个mXn大小的二维存储矩阵,S卩小矩阵存储模块,用于存储I mXn#目标数据。
步骤2.构建大矩阵存储模块
如图2所示,大矩阵存储模块用于存储待匹配的所有数据,其包括两个子存储模块大矩阵存储模块A和大矩阵存储模块B。其中,构造一个可保存N个元素的一维存储向量,复制m个上述存储向量,共同构成一个mXN大小的二维存储矩阵,即大矩阵存储模块A, 初始时刻用于存储第I (mXN)#待匹配数据;构建一维存储矩阵,即大矩阵存储模块B, 用于存储第(mXN+1) (MXN)#待匹配数据。
步骤3.小矩阵存储模块与大矩阵存储模块A进行匹配
小矩阵存储模块和大矩阵存储模块A行数相同,可以完成一次行遍历匹配运算, 即小矩阵与大矩阵A相对应的行的数据之间进行匹配。
步骤3.1.第I次行遍历匹配
步骤3.1.1.第I次匹配中,小矩阵存储模块与大矩阵存储模块A中和小矩阵存储模块同样大小的所有子矩阵进行匹配运算。
步骤3.1. 2.上述遍历匹配完成后,大矩阵存储模块A进行数据替换。替换方式为 取出大矩阵存储模块B的前N个数据,即第(mXN+1) (mXN+N)#待匹配数据,覆盖大矩阵存储模块A的第I行数据。
步骤3.1. 3.进行步骤3.1. 2的同时,小矩阵存储模块进行行变换。变换方式为 上一行数据移动至下一行,第m行数据移动至第I行。
步骤3. 2.第i次匹配(i > I)
步骤3. 2.1.小矩阵存储模块与大矩阵存储模块A中和小矩阵存储模块同样大小的所有子矩阵进行匹配运算。
步骤3. 2. 2.判断大矩阵存储模块B是否还有未被取出的数据如果大矩阵存储模块B没有未被取出的数据,即所有数据都已取出过,则跳过步骤3中的剩余步骤,直接进行步骤4 ;如果大矩阵存储模块B有未被取出的数据,则对大矩阵存储模块A进行数据替换。 替换方式为如图3所示,取出大矩阵存储模块B未被取出过的数据中的前N个数据,即第 ((m+1-l)XN+l) ((m+i)XN)#待匹配数据,覆盖大矩阵存储模块A前一次被替换的数据所在行的下一行数据,若前一次被替换的数据所在行为第m行,则覆盖大矩阵存储模块A经前一次数据替换后的第I行数据。
步骤3. 2. 3.进行步骤3. 2. 2的同时,小矩阵存储模块进行行变换。变换方式为 如图4所示,上一行数据移动至下一行,第m行数据移动至第I行。
举例来说,进行第2次匹配时,小矩阵存储模块经第一次行变换后数据,与大矩阵存储模块A经第I次数据替换后的、和小矩阵存储模块同样大小的所有子矩阵的数据,进行遍历匹配。然后判断大矩阵存储模块B是否还有未被取出的数据如果大矩阵存储模块B 没有未被取出的数据,即所有数据都已取出过,则跳过步骤3中的剩余步骤,直接进行步骤 4 ;如果大矩阵存储模块B有未被取出的数据,则对大矩阵存储模块A进行数据替换。替换方式为取出大矩阵存储模块B未被取出过的数据中的前N个数据,即第((m+l)XN+l) ((m+1) X N+N)#待匹配数据,覆盖大矩阵存储模块A的第2行数据。此时大矩阵存储模块A 的前两行数据为第(mXN+1) ((m+1) XN+N)#待匹配数据,其余行(3 m行)数据为第 (2N+1) (mXN)#待匹配数据。小矩阵存储模块进行行变换 第I行数据移动至第2行, 第2行数据移动至第3行,…,第(m-Ι)数据移动至第m行,第m行数据移动至第I行。
进行第(m+1)次匹配时,小矩阵存储模块经第m次行变换后的数据,与大矩阵存储模块A经第m次数据替换后的、和小矩阵存储模块同样大小的所有子矩阵的数据,进行遍历匹配。然后判断大矩阵存储模块B是否还有未被取出的数据如果大矩阵存储模块B没有未被取出的数据,即所有数据都已取出过,则跳过步骤3中的剩余步骤,直接进行步骤4 ;如果大矩阵存储模块B有未被取出的数据,则对大矩阵存储模块A进行数据替换。替换方式为 取出大矩阵存储模块B未被取出过的数据中的前N个数据,即第(2mXN+l) (2mXN+N)# 待匹配数据,覆盖大矩阵存储模块A的第I行数据。此时大矩阵存储模块A的第一行数据为第(2mXN+l) (2mXN+N)#待匹配数据,其余行(2 m行)数据为第(mXN+N+1) (mXN+mXN)#待匹配数据。小矩阵存储模块进行行变换第I行数据移动至第2行,第2行数据移动至第3行,…,第(m-Ι)数据移动至第m行,第m行数据移动至第I行。
步骤4.
整合匹配结果,完成匹配运算。所述整合方法为本领域技术人员公知常识。
实现本发明二维矩阵匹配方法的二维矩阵匹配电路如下所述
如图5所示,小矩阵存储模块控制电路包括m个块内存和m个二选一电路,分别标识为I m#块内存和I m#二选一电路,块内存和二选一电路交互排列,串联成闭合回路 i#块内存的输入为i# 二选一电路的输出,i#块内存的输出与初始数据共同作为(i+1)# 二选一电路的两路输入(I < i < m) ;m#块内存的输入为m# 二选一电路的输出块内存的输出与初始数据共同作为1# 二选一电路的两路输入。所述初始数据为二维矩阵匹配方法中小矩阵存储模块初始时刻未经行行变换前第i行的目标数据。上述每个块内存均用于存储上述二维矩阵匹配方法中小矩阵存储模块相应行的目标数据,其采用统一的读、写时钟, 读、写地址,和读使能信号。每个块内存设有独立的写使能信号。
小矩阵存储模块控制电路工作过程如下所述初始时刻,i#块内存通过i# 二选一电路输入初始数据,即上述匹配方法中第((1-l)Xn+l) (iXn)#目标数据,此时各块内存的写使能信号按照目标数据的行序依次置高;当小矩阵存储模块进行行变换时,i#块内存通过i# 二选一电路输入前一个块内存的数据,即2#块内存被输入1#块内存的数据,3# 块内存被输入2#块内存的数据,…,m#块内存被输入(m-1)#块内存的数据,1#块内存被输入m#块内存的数据,此时各块内存的写使能信号均置高。
如图6所示,大矩阵存储模块控制电路由两部分组成大矩阵存储模块A控制电路和大矩阵存储模块B控制电路。
大矩阵存储模块B控制电路为一块内存,其输入为二维矩阵匹配方法中大矩阵存储模块B所存储的第(mXN+1) (MXN)#待匹配数据,输出与大矩阵存储模块A控制电路相连接。所述块内存设有独立的读、写地址和读、写使能信号,其存储容量要足以满足存储上述匹配方法中第(mXN+1) (MXN)#待匹配数据的要求。
大矩阵存储模块A控制电路包括m个块内存和m个二选一电路,分别标识为I m#块内存和I m# 二选一电路。i# 二选一电路(I彡i彡m)的一路输入为大矩阵存储模块B控制电路块内存的输出,另一路输入为二维矩阵匹配方法中大矩阵存储模块A初始时刻未经数据替换前第i行的目标数据二选一电路的输出为i#块内存。上述每个块内存均用于存储上述二维矩阵匹配方法中大矩阵存储模块A相应行的待匹配数据,其采用统一的读、写时钟,读、写地址,和读使能信号。每个块内存设有独立的写使能信号。
大矩阵存储模块控制电路工作过程如下所述初始时刻,大矩阵存储模块A控制电路的i#块内存通过i# 二选一电路输入大矩阵存储模块A初始时刻未经数据替换前第i 行的待匹配数据,即上述匹配方法中第((1-l)XN+l) (iXN)#待匹配数据,此时大矩阵存储模块A控制电路的各块内存的写使能信号按照数据的行序依次置高,大矩阵存储模块 B控制电路的块内存输入第(mXN+1) (MXN)#待匹配数据;当大矩阵存储模块A进行第i次数据替换时(I < i < m),i#块内存通过i# 二选一电路输入大矩阵存储模块B控制电路中的第((m+1-l)XN+l) ((m+i)XN)#待匹配数据,以替换该块内存原有的数据, 此时只有i#块内存的写使能信号置高;当大矩阵存储模块A进行第i次数据替换时(i > m),大矩阵存储模块A控制电路前一次被替换数据的块内存的下一块内存数据被替换为第 ((m+1-1) XN+1) ((m+i) XN)#待匹配数据,直至大矩阵存储模块B控制电路的块内存中存储的待匹配数据均被取出。
所述小矩阵存储模块控制电路与大矩阵存储模块控制电路结合现有技术中的运算匹配模块共同完成二维矩阵匹配,其工作流程为
(I)初始化系统与所有控制变量,包括小矩阵存储模块、大矩阵存储模块A和大矩阵存储模块B的读写使能信号、读写地址等;
(2)初始数据写入,遵照内存硬件写入逻辑分别将目标数据按照m行Xn列写入小矩阵存储模块、将部分待匹配数据按照m行XN列写入大矩阵存储模块A ;
(3)将剩余的待匹配数据按照先后顺序依次写入大矩阵存储模块B中,并同时给 出Ready信号,启动匹配运算模块;
(4)匹配运算模块完成一行的遍历运算,需要新的运算数据,发出ReqUeSt_Line信号;
(5)大矩阵存储模块B从指定地址偏移开始读出数据,覆盖大矩阵存储模块A中指 定行,每次完成大矩阵存储模块B的数据读取和大矩阵存储模块A的数据覆盖后,记录当前 大矩阵存储模块B的地址偏移和大矩阵存储模块A的覆盖行,用于下次变换;
(6)小矩阵存储模块所有块内存读、写使能置1,读、写地址按时钟周期自增,完成 行序变换;
(7)完成上述第(5)和第(6)步骤后,再次给出Ready信号,直至完成所有数据的 遍历。
权利要求
1.一种二维矩阵匹配方法,其特征在于包括以下步骤 步骤1.构建小矩阵存储模块; 步骤2.构建大矩阵存储模块,其包括大矩阵存储模块A和大矩阵存储模块B ; 步骤3.小矩阵存储模块与大矩阵存储模块A进行匹配; 步骤4.整合匹配结果,完成匹配运算。
2.根据权利要求1所述的二维矩阵匹配方法,其特征在于各步骤具体包括以下步骤 步骤1.构建小矩阵存储模块 小矩阵存储模块为mXn 二维存储矩阵,用于存储I mXn#目标数据; 步骤2.构建大矩阵存储模块 大矩阵存储模块用于存储待匹配的所有数据,其包括两个子存储模块大矩阵存储模块A和大矩阵存储模块B ;其中,大矩阵存储模块ASmXN 二维存储矩阵,初始时刻用于存储第I (mXN)#待匹配数据;大矩阵存储模块B为一维存储矩阵用于存储第(mXN+1) (MXN)#待匹配数据; 步骤3.小矩阵存储模块与大矩阵存储模块A进行匹配 步骤3.1.第I次匹配 步骤3.1.1.第I次匹配中,小矩阵存储模块与大矩阵存储模块A中和小矩阵存储模块同样大小的所有子矩阵进行匹配运算; 步骤3.1. 2.大矩阵存储模块A进行数据替换,替换方式为取出大矩阵存储模块B的前N个数据覆盖大矩阵存储模块A的第I行数据; 步骤3.1. 3.进行步骤3.1. 2的同时,小矩阵存储模块进行行变换;变换方式为上一行数据移动至下一行,第m行数据移动至第I行; 步骤3. 2.第i次匹配(i > I): 步骤3. 2.1.小矩阵存储模块与大矩阵存储模块A中和小矩阵存储模块同样大小的所有子矩阵进行匹配运算; 步骤3. 2. 2.判断大矩阵存储模块B是否还有未被取出的数据如果大矩阵存储模块B没有未被取出的数据,则跳过步骤3中的剩余步骤,直接进行步骤4 ;如果大矩阵存储模块B有未被取出的数据,则对大矩阵存储模块A进行数据替换;替换方式为取出大矩阵存储模块B未被取出过的数据中的前N个数据,覆盖大矩阵存储模块A前一次被替换的数据所在行的下一行数据,若前一次被替换的数据所在行为第m行,则覆盖大矩阵存储模块A经前一次数据替换后的第I行数据; 步骤3. 2. 3.进行步骤3. 2. 2的同时,小矩阵存储模块进行行变换;变换方式为上一行数据移动至下一行,第m行数据移动至第I行; 步骤4.整合匹配结果,完成匹配运算。
3.—种权利要求1或2所述的二维矩阵匹配方法的二维矩阵匹配电路,其特征在于其包括小矩阵存储模块控制电路和大矩阵存储模块控制电路,大矩阵存储模块控制电路包括大矩阵存储模块A控制电路和大矩阵存储模块B控制电路。
4.根据权利3所述的二维矩阵匹配电路,其特征在于 小矩阵存储模块控制电路包括m个块内存和m个二选一电路,分别标识为I m#块内存和I m# 二选一电路,块内存和二选一电路交互排列,串联成闭合回路i#块内存的输入为i# 二选一电路的输出,i#块内存的输出与初始数据共同作为(i+1)# 二选一电路的两路输入(I彡i <m) ;m#块内存的输入为m# 二选一电路的输出,m#块内存的输出与初始数据共同作为1# 二选一电路的两路输入;上述块内存均采用统一的读、写时钟,读、写地址,和读使能信号;每个块内存设有独立的写使能信号。
5.根据权利要求3或4所述的二维矩阵匹配电路,其特征在于 大矩阵存储模块B控制电路为一块内存,其输入为二维矩阵匹配方法中大矩阵存储模块B所存储的待匹配数据,输出与大矩阵存储模块A控制电路相连接;所述块内存设有独立的读、写地址和读、写使能信号。
6.根据权利要求5所述的二维矩阵匹配电路,其特征在于 大矩阵存储模块A控制电路包括m个块内存和m个二选一电路,分别标识为I m#块内存和I m# 二选一电路,i# 二选一电路(I彡i彡m)的一路输入为大矩阵存储模块B控制电路块内存的输出,另一路输入为二维矩阵匹配方法中大矩阵存储模块A初始时刻未经数据替换前第i行的目标数据;i# 二选一电路的输出为i#块内存;大矩阵存储模块A控制电路的所有块内存均采用统一的读、写时钟,读、写地址,和读使能信号,大矩阵存储模块A控制电路的每个块内存设有独立的写使能信号。
全文摘要
本发明属于矩阵匹配技术领域,具体涉及一种二维矩阵匹配方法及电路。本发明的二维矩阵匹配方法步骤为构建小矩阵存储模块,构建包括大矩阵存储模块A和大矩阵存储模块B的大矩阵存储模块,小矩阵存储模块与大矩阵存储模块A进行匹配,整合匹配结果,完成匹配运算。本发明的二维矩阵匹配电路包括小矩阵存储模块控制电路和大矩阵存储模块控制电路,大矩阵存储模块控制电路包括大矩阵存储模块A控制电路和大矩阵存储模块B控制电路。本发明解决的技术问题是现有二维矩阵匹配方法需要设置运算缓存区,抽取控制过于复杂;现有二维矩阵匹配电路浪费大量块内存资源。本发明取得了简化数据抽取过程、减少块内存资源浪费的有益效果。
文档编号G06F17/16GK102999476SQ20111026652
公开日2013年3月27日 申请日期2011年9月9日 优先权日2011年9月9日
发明者王可, 曾永红, 叶旭鸣 申请人:中国航天科工集团第三研究院第八三五七研究所