專利名稱:一種基于并行比特流處理器的二值圖像模板匹配系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于圖像處理技術(shù)領(lǐng)域,更具體地,涉及一種基于并行比特流處理器的二值圖像模板匹配系統(tǒng)。
背景技術(shù):
實時圖像處理技術(shù)在民用、工業(yè)、國防方面的應(yīng)用非常廣泛。實時圖像處理涉及到大量的數(shù)據(jù)運算,通常需要很高的計算速度、很大的存儲容量和很寬的傳輸帶寬,用傳統(tǒng)的通用處理器處理負(fù)荷很重,開銷很大。因此,采用硬件方法進(jìn)行加速處理可以大大提高圖像處理的實時性。
目前,對于實現(xiàn)模板匹配圖像加速主要有3種方案傳統(tǒng)的模板匹配方法、FPGA+DSP平臺進(jìn)行圖像處理方法、純FPGA圖像處理方法。傳統(tǒng)模板匹配方法,對于一幅NXM 二值圖像,以及aXb模板數(shù)據(jù),其模板匹配的過程類似于對圖像的一種遍歷,匹配區(qū)域在圖像上按行從行首逐點平移至行尾,再從下一行首開始,如此循環(huán)直至匹配區(qū)域遍歷整幅圖像。每次遍歷時要將觀測圖像與模板圖像逐字節(jié)或字(二值像素構(gòu)成的字節(jié)或字)進(jìn)行比較得到匹配結(jié)果。匹配計算涉及4重循環(huán),計算量大,且匹配過程需要進(jìn)行按位運算,圖像處理的實時性相對較弱。FPGA+DSP平臺進(jìn)行圖像處理的方法。FPGA+DSP平臺進(jìn)行圖像處理,其將FPGA用于圖像的采集、存儲和傳輸,DSP用來處理數(shù)據(jù)。針對這種平臺,DSP在架構(gòu)上必須做特別的優(yōu)化以實現(xiàn)模板匹配。系統(tǒng)結(jié)構(gòu)復(fù)雜、成本高、靈活性差。純FPGA圖像處理的方法。FPGA圖像處理充分利用FPGA的并行性特性針對特定的算法進(jìn)行圖像加速,對存儲系統(tǒng)要求高,同時對FPGA的容量也有一定的要求。為此本發(fā)明充分挖掘FPGA并行性,并且結(jié)合流水線技術(shù)和流媒體技術(shù)原理將其應(yīng)用于圖像的模板匹配。
發(fā)明內(nèi)容
針對現(xiàn)有技術(shù)的缺陷,本發(fā)明的目的在于提供一種基于并行比特流處理器的FPGA的模板匹配系統(tǒng),其利用多個比特流處理器并行地進(jìn)行匹配處理,有效地提高了圖像匹配的速度,滿足實時性,克服了傳統(tǒng)模板匹配方法速度慢、只能串行處理、實時性差等缺陷,同時在滿足實時性的前提下,降低了系統(tǒng)的成本,簡化了系統(tǒng)的結(jié)構(gòu),縮短了開發(fā)周期,降低系統(tǒng)存儲的開銷,減少了 FPGA的資源消耗,同時系統(tǒng)中采用狀態(tài)機控制比特流處理器的工作方式,顯得靈活。為實現(xiàn)上述目的,本發(fā)明提供了一種基于并行比特流處理器的二值圖像模板匹配系統(tǒng),包括并行控制器、圖像隨機存取存儲器、模板隨機存取存儲器、匹配綜合模塊、比特流處理器組、狀態(tài)控制器組、第一復(fù)用器、第二復(fù)用器、以及第三復(fù)用器,并行控制器用于根據(jù)系統(tǒng)的時鐘信號的前八個時鐘周期產(chǎn)生圖像數(shù)據(jù)和模板數(shù)據(jù)的地址信號、選擇信號sel、狀態(tài)控制器復(fù)位信號SC_Rst、以及狀態(tài)控制器復(fù)位選擇信號Rst_sel,圖像隨機存取存儲器用于獲取并存儲用戶的圖像數(shù)據(jù),并根據(jù)并行控制器的地址數(shù)據(jù)將圖像數(shù)據(jù)傳送到第三復(fù)用器,模板隨機存取存儲器用于獲取并存儲用戶的模板數(shù)據(jù),并根據(jù)并行控制器的地址數(shù)據(jù)將模板數(shù)據(jù)傳送到第二復(fù)用器,第二復(fù)用器用于根據(jù)并行控制器的選擇信號sel將模板數(shù)據(jù)發(fā)送給對應(yīng)的比特流處理器,第三復(fù)用器用于根據(jù)并行控制器的選擇信號sel將圖像數(shù)據(jù)發(fā)送給對應(yīng)的比特流處理器,第一復(fù)用器用于根據(jù)狀態(tài)控制器復(fù)位選擇信號Rst_sel將狀態(tài)控制器復(fù)位信號SC_Rst發(fā)送到對應(yīng)的狀態(tài)控制器,狀態(tài)控制器組用于根據(jù)狀態(tài)控制器復(fù)位信號SC_Rst產(chǎn)生第一狀態(tài)編碼信號Si,并將第一狀態(tài)編碼信號Si發(fā)送到比特流處理器組,比特流處理器組用于根據(jù)第一狀態(tài)編碼信號Si存儲圖像數(shù)據(jù)和模板數(shù)據(jù),并在存儲完成后發(fā)送狀態(tài)請求到狀態(tài)控制器組,狀態(tài)控制器組還用于根據(jù)狀態(tài)請求產(chǎn)生第二狀態(tài)編碼信號s2,并將第二狀態(tài)編碼信號s2發(fā)送到比特流處理器組,比特流處理器組還用于根據(jù)第二狀態(tài)編碼信號s2處理圖像數(shù)據(jù)和模板數(shù)據(jù),將圖像數(shù)據(jù)和模板數(shù)據(jù)的處理結(jié)果Res和結(jié)果有效信號傳送到匹配綜合模塊,在處理完成后產(chǎn)生數(shù)據(jù)請求信號,并將數(shù)據(jù)請求信號傳送到并行控制器,并行控制器還用于在系統(tǒng)的時鐘信號的前八個時鐘周期之后,根據(jù)數(shù)據(jù)請求信號組Res_PC產(chǎn)生圖像數(shù)據(jù)的地址和狀態(tài)控制器復(fù)位信號SC_Rst,匹配綜合 模塊用于在比特流處理器組發(fā)送了處理結(jié)果Res和結(jié)果有效信號后產(chǎn)生成功反饋信號M,并將成功反饋信號M傳送到狀態(tài)控制器組。比特流處理器組中比特流處理器的數(shù)量為8個,狀態(tài)控制器組中狀態(tài)控制器的數(shù)量為8個。匹配綜合模塊包括第一比特流處理器匹配結(jié)果緩沖子模塊、第二比特流處理器匹配結(jié)果緩沖子模塊、第三比特流處理器匹配結(jié)果緩沖子模塊、第四比特流處理器匹配結(jié)果緩沖子模塊、第五比特流處理器匹配結(jié)果緩沖子模塊、第六比特流處理器匹配結(jié)果緩沖子模塊、第七比特流處理器匹配結(jié)果緩沖子模塊、第八比特流處理器匹配結(jié)果緩沖子模塊、匹配成功信號生成子模塊、復(fù)位信號生成子模塊、匹配次數(shù)生成子模塊,第一比特流處理器匹配結(jié)果緩沖子模塊至第八比特流處理器匹配結(jié)果緩沖單元子模塊用于分別緩存來自比特流處理器組輸出的行匹配結(jié)果,匹配成功信號生成子模塊用于在檢測到第一比特流處理器匹配結(jié)果緩沖子模塊至第八比特流處理器匹配結(jié)果緩沖子模塊都不為空時,立即從第一比特流處理器匹配結(jié)果緩沖子模塊至第八比特流處理器匹配結(jié)果緩沖子模塊中讀出一次匹配的結(jié)果,若檢測到匹配結(jié)果為“FF”,即每行都匹配成功,則匹配成功信號生成子模塊將生成的匹配成功信號M輸出至狀態(tài)控制器組輸出,若檢測到匹配結(jié)果不為“FF”,則繼續(xù)從第一比特流處理器匹配結(jié)果緩沖子模塊至第八比特流處理器匹配結(jié)果緩沖子模塊中讀取匹配結(jié)果直到檢測到匹配結(jié)果為“FF”,即匹配成功,復(fù)位信號生成子模塊用于在檢測到第一比特流處理器匹配結(jié)果緩沖子模塊至第八比特流處理器匹配結(jié)果緩沖子模塊至少有一個為滿,則輸出系統(tǒng)復(fù)位信號,使系統(tǒng)復(fù)位,匹配次數(shù)生成子模塊用于在系統(tǒng)時鐘的上升沿時,檢測第一比特流處理器匹配結(jié)果緩沖子模塊至第八比特流處理器匹配結(jié)果緩沖子模塊是否都不為空,若是則進(jìn)行加一,從而記錄下匹配次數(shù),當(dāng)匹配成功時輸出匹配次數(shù)。通過本發(fā)明所構(gòu)思的以上技術(shù)方案,與現(xiàn)有技術(shù)相比,本發(fā)明具有以下的有益效果(I)采用現(xiàn)代FPGA技術(shù),實現(xiàn)硬件對二值圖像的模板匹配,大大地提高了圖像處理的速度;
(2)采用并行技術(shù),8個比特流處理器同時處理圖像的8行,且比特流處理器的操作全部是由與、或、非門三種基本邏輯實現(xiàn),沒有用到算術(shù)邏輯單元(Arithmetic LogicUnit,簡稱 ALU);(3)比特流處理器在處理態(tài)(〃01〃)態(tài)以三級流水的方式處理圖像數(shù)據(jù),分別是運算地址(計數(shù)器實現(xiàn))、獲取數(shù)據(jù)、處理并輸出結(jié)果。大大提高了系統(tǒng)的吞吐率和資源的利用率;(4)比特流處理器以流的方式處理圖像數(shù)據(jù)。每處理完一個數(shù)據(jù)并不是把數(shù)據(jù)給丟棄而是丟棄其中的一位。假設(shè),一個16位的圖像數(shù)據(jù)和8位模板數(shù)據(jù),那么比特流處理數(shù)據(jù)的方式為[15,8]、[14,7]、……[7,0];(5)以共享圖像隨機存取存儲器的方式,按分時(一個系統(tǒng)時鐘)的方式依次啟動8個bit流處理器,降低系統(tǒng)存儲的開銷,實現(xiàn)多個比特流處理器的并行;(6)狀態(tài)器模塊產(chǎn)生四種不同的狀態(tài)初始態(tài)(〃00〃)、處理態(tài)(〃01〃)、取數(shù)態(tài) (〃10〃)、停止態(tài)(〃11〃)。比特流處理器根據(jù)這四種不同的狀態(tài)執(zhí)行相應(yīng)的操作;(7)集成度高、性能穩(wěn)定、成本低廉、性價比極高。
圖I是本發(fā)明基于并行比特流處理器的二值圖像模板匹配系統(tǒng)的原理圖。圖2是本發(fā)明并行控制器模塊的原理圖。圖3是本發(fā)明比特流處理器模塊的原理圖。圖4是本發(fā)明狀態(tài)控制器模塊的原理圖。圖5是本發(fā)明匹配綜合模塊的原理圖。
具體實施例方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。如圖I所示,本發(fā)明基于并行比特流處理器的二值圖像模板匹配系統(tǒng)包括并行控制器I、圖像隨機存取存儲器2、模板隨機存取存儲器3、匹配綜合模塊4、比特流處理器組5、狀態(tài)控制器組6、第一復(fù)用器7、第二復(fù)用器8、以及第三復(fù)用器9。在本發(fā)明中,比特流處理器組5中比特流處理器的數(shù)量為8個,狀態(tài)控制器組6中狀態(tài)控制器的數(shù)量為8個。并行控制器I用于根據(jù)系統(tǒng)時鐘信號的前八個時鐘周期產(chǎn)生圖像數(shù)據(jù)和模板數(shù)據(jù)的地址信號、選擇信號sel、狀態(tài)控制器復(fù)位信號SC_Rst、以及狀態(tài)控制器復(fù)位選擇信號Rst_sel。如圖2所示,并行控制器I的原理圖。并行控制器包含以下主要子模塊狀態(tài)機初始化子模塊101、狀態(tài)機復(fù)位信號生成子模塊102、第八列地址生成子模塊103、第八行地址生成子模塊104、第七列地址生成子模塊105、第七行地址生成子模塊106、第六列地址生成子模塊107、第六行地址生成子模塊108、第五列地址生成子模塊109、第五行地址生成子模塊110、第四列地址生成子模塊111、第四行地址生成子模塊112、第三列地址生成子模塊113、第三行地址生成子模塊114、第二列地址生成子模塊115、第二行地址生成子模塊116、第一列地址生成子模塊117、第一行地址生成子模塊118、行地址多路復(fù)用器子模塊119、列地址多路復(fù)用器子模塊120、譯碼器子模塊121。并行控制器在復(fù)位之后的8個時鐘周期內(nèi),狀態(tài)機初始化子模塊101生成了相應(yīng)的狀態(tài)機的選通信號Rst_sel,同時輸出信號rst到狀態(tài)機復(fù)位信號生成子模塊102 ;在每個時鐘周期的上升沿,狀態(tài)機初始化子模塊101中的計數(shù)器進(jìn)行加一操作,輸出的Rst_sel信號從“000”變到“111”,從而分別選通8個狀態(tài)控制器中的I個,同時狀態(tài)機初始化子模塊101中的觸發(fā)器的輸出即rst信號,一直保持高電平直到計數(shù)器在第8個時鐘周期到來后溢出,從而導(dǎo)致rst變?yōu)榈碗娖健顟B(tài)機復(fù)位信號生成子模塊102由一些或門電路構(gòu)成,其輸入信號包括兩部分,一是來自狀態(tài)機初始化子模塊101的rst信號,二是來自行尾信號Coi,I ( i ( 8,輸出信號為狀態(tài)機的復(fù)位信號SC_Rst ;當(dāng)rst、Col到Co8信號中有一個信號為高電平,那么SC_Rst信號為高電平,從而復(fù)位選通的狀態(tài)控制器,并行控制器復(fù)位之后的8個時鐘周期內(nèi)SC_Rst信號一直為高電平,從而也就復(fù)位了選通的狀態(tài)控制器,之后如果有相應(yīng)的行尾信號有效則也復(fù)位對應(yīng)的狀態(tài)控制器。當(dāng)復(fù)位之后的8個時鐘周期過后,并行控制器等待比特流處理器的數(shù)據(jù)請求信號,即檢測信號Res_PCi是否有效,其中I彡i彡8,代表8個比特流處理器的數(shù)據(jù)請求信號;例如Res_PC7信號有效時,即比特流處理器7有數(shù)據(jù)請求,第七列地址生成子模塊105中列地址計數(shù)器Col7進(jìn)行加一操作,從而輸出列地址信號c7,若計數(shù)器在前一個時鐘周期的值為 “1111”,即列地址已為全‘1’,代表到了行尾,那么此時計數(shù)器將溢出,輸出行尾信號Co7,Co7通過與門輸出從而使能第七行地址生成子模塊106中的行地址觸發(fā)器Row7,在時鐘的作用下從而使行地址r7加一,同時復(fù)位列地址計數(shù)器,輸出的列地址信號c7為全‘0’,同理當(dāng) Res_PC6,Res_PC5, Res_PC4, Res_PC3, Res_PC2, Res_PCl 信號有效時,相應(yīng)的子模塊產(chǎn)生對應(yīng)比特流處理器所需的數(shù)據(jù)的行、列地址;當(dāng)Res_PC 8信號有效時,第八列地址生成子模塊103產(chǎn)生了列地址c8,如果已達(dá)到行尾,即CoS信號有效時,使能相應(yīng)的行地址計數(shù)器,行地址計數(shù)器進(jìn)行加以操作,如果前一時刻行地址r8已為“11111111”,即表示圖像數(shù)據(jù)的最后一行,那么代表圖像數(shù)據(jù)已處理完畢,此時行地址計數(shù)器RowS將產(chǎn)生溢出信號,通過與門,使得Get_End信號有效,代表圖像數(shù)據(jù)處理完畢。行地址多路復(fù)用器子模塊119、列地址多路復(fù)用器子模塊120分別根據(jù)請求信號組Res_PC,即由8個比特流處理器的數(shù)據(jù)請求信號合成的信號組,從而輸出相應(yīng)的行、列地址。譯碼器子模塊121是一個譯碼器,根據(jù)請求信號組Res_PC,輸出相應(yīng)的選通信號Sel,從而保證從ram取出的圖像數(shù)據(jù)能正確的輸入到相應(yīng)的比特流處理器。圖像隨機存取存儲器2用于獲取并存儲用戶的圖像數(shù)據(jù),并根據(jù)并行控制器I的地址數(shù)據(jù)將圖像數(shù)據(jù)傳送到第三復(fù)用器9。模板隨機存取存儲器3用于獲取并存儲用戶的模板數(shù)據(jù),并根據(jù)并行控制器I的地址數(shù)據(jù)將模板數(shù)據(jù)傳送到第二復(fù)用器8。第二復(fù)用器8用于根據(jù)并行控制器I的選擇信號sel將模板數(shù)據(jù)發(fā)送給對應(yīng)的比特流處理器5。第三復(fù)用器9用于根據(jù)并行控制器I的選擇信號sel將圖像數(shù)據(jù)發(fā)送給對應(yīng)的比特流處理器5。第一復(fù)用器7用于根據(jù)狀態(tài)控制器復(fù)位選擇信號Rst_sel將狀態(tài)控制器復(fù)位信號SC_Rst發(fā)送到對應(yīng)的狀態(tài)控制器6。狀態(tài)控制器組6用于根據(jù)狀態(tài)控制器復(fù)位信號SC_Rst產(chǎn)生第一狀態(tài)編碼信號s I,并將第一狀態(tài)編碼信號Si發(fā)送到比特流處理器組5。狀態(tài)控制器組6的原理圖如圖4,其包括組合邏輯電路子模塊601和狀態(tài)寄存器子模塊602。當(dāng)系統(tǒng)復(fù)位信號reset有效時,即為高電平時,通過組合邏輯電路子模塊601,狀態(tài)控制器組6輸出的狀態(tài)編碼為“11”,即表示停機態(tài);當(dāng)并行控制器I輸出的狀態(tài)控制器的復(fù)位信號SC_Rst有效時,狀態(tài)控制器組6輸出的狀態(tài)編碼為“00”,即表示初始態(tài),此后狀態(tài)控制器組6等待比特流處理器組5的狀態(tài)請求;當(dāng)狀態(tài)控制器檢測到匹配成功信號M或匹配結(jié)束信號Get_End有效時,表示模板匹配已完成,狀態(tài)控制器輸出狀態(tài)編碼“11”,即表示停機態(tài);若信號M、Get_End都無效,當(dāng)狀態(tài)請求信號res_SC有效時,表示比特流處理器組5發(fā)出了狀態(tài)請求,此時狀態(tài)控制器根據(jù)狀態(tài)寄存器子模塊602保存之前輸出的狀態(tài)編碼信號S0’、SI’,從而決定本時鐘周期應(yīng)該發(fā)出的狀態(tài)編碼信號S0、S1 ;若S0,SI,= “00”,則SOSl= “01”,即從初始態(tài)變?yōu)樘幚響B(tài);若S0’SI’ = “01”,則 SOSl= “10”,即從處理態(tài)變?yōu)槿?shù)態(tài);若 S0’SI’ = “10”,則 SOSl= “01”,即從取數(shù)態(tài)變?yōu)樘幚響B(tài);若S0’ SI’ = “11”,則SOSl= “11”,即停機狀態(tài)保持不變。比特流處理器組5用于根據(jù)第一狀態(tài)編碼信號Si存儲圖像數(shù)據(jù)和模板數(shù)據(jù),并在存儲完成后發(fā)送狀態(tài)請求到狀態(tài)控制器組6,其原理圖如圖3所示,其包括以下幾個子模 塊串入/并出移位寄存器組子模塊501、匹配處理子模塊502、狀態(tài)控制信號生成子模塊503、下標(biāo)運算子模塊504、匹配結(jié)果輸出使能信號生成子模塊505。當(dāng)狀態(tài)編碼信號S0、S1有效時,S0、SI通過狀態(tài)控制信號生成子模塊503,輸出存在四種可能組合,即“00”,“01”,“10”,“11”,分別對應(yīng)初始態(tài)Si,處理態(tài)s2,取數(shù)態(tài)s3,停機態(tài)s4。當(dāng)處于初始狀態(tài)Si時,比特流處理器將輸入的圖像數(shù)據(jù)、模板數(shù)據(jù)分別送到串入/并出移位寄存器組子模塊501中緩沖數(shù)組buff_p和緩沖數(shù)組buff_t*,置此時的下標(biāo)i為15,同時向狀態(tài)控制器組6發(fā)送狀態(tài)請求信號rep_SC ;當(dāng)狀態(tài)控制器組6接受到狀態(tài)請求信號后,輸出狀態(tài)編碼“01”,那么在下一個時鐘周期到來時比特流處理器組5狀態(tài)變?yōu)閟2態(tài),進(jìn)行模板匹配操作,同時匹配結(jié)果輸出使能信號生成子模塊505使res_c信號有效;匹配處理子模塊502的輸入為buff_t[7. . 0]、buff_p[i. . i_7],若此時的下標(biāo)i大于或等于7,則這兩組輸入信號先進(jìn)行異或操作,再進(jìn)行或非操作,所得結(jié)果即為匹配結(jié)果res,因reS_c有效,信號res輸出到匹配綜合模塊4,同時子模塊d使下標(biāo)i減一;子模塊d完成下標(biāo)i的更新操作,在一個時鐘周期內(nèi)檢測i是否等于7’若等于7則向并行控制器I發(fā)送數(shù)據(jù)請求信號res_PC ;若小于7則向狀態(tài)控制器發(fā)送狀態(tài)請求信號ap_SC,接著比特流處理器組5接受下一個狀態(tài)編碼“10”,比特流處理器組5狀態(tài)變?yōu)閟3態(tài),串入/并出移位寄存器組子模塊501使緩沖數(shù)組buff_p左移16位,并將輸入的圖像數(shù)據(jù)p放到低16位,同時下標(biāo)運算子模塊504將i更新為23,并向狀態(tài)控制器發(fā)送狀態(tài)請求信號ap_SC,比特流處理器組5準(zhǔn)備接受下一個狀態(tài)編碼“01”,再次進(jìn)行匹配操作。狀態(tài)控制器組6還用于根據(jù)狀態(tài)請求產(chǎn)生第二狀態(tài)編碼信號s2,并將第二狀態(tài)編碼信號s2發(fā)送到比特流處理器組5。比特流處理器組5還用于根據(jù)第二狀態(tài)編碼信號s2處理圖像數(shù)據(jù)和模板數(shù)據(jù),將圖像數(shù)據(jù)和模板數(shù)據(jù)的處理結(jié)果Res和結(jié)果有效信號傳送到匹配綜合模塊4,在處理完成后產(chǎn)生數(shù)據(jù)請求信號,并將數(shù)據(jù)請求信號傳送到并行控制器。并行控制器I還用于在系統(tǒng)的時鐘信號的前八個時鐘周期之后,根據(jù)數(shù)據(jù)請求信號組Res_PC產(chǎn)生圖像數(shù)據(jù)的地址和狀態(tài)控制器復(fù)位信號SC_Rst (用于處理器換行)。
匹配綜合模塊4用于在所有的比特流處理器組5都發(fā)送了處理結(jié)果Res和結(jié)果有效信號后產(chǎn)生成功反饋信號M,并將成功反饋信號M傳送到狀態(tài)控制器組6,其原理圖如圖4所示,其包括以下子模塊第一比特流處理器匹配結(jié)果緩沖子模塊401、第二比特流處理器匹配結(jié)果緩沖子模塊402、第三比特流處理器匹配結(jié)果緩沖子模塊403、第四比特流處理器匹配結(jié)果緩沖子模塊404、第五比特流處理器匹配結(jié)果緩沖子模塊405、第六比特流處理器匹配結(jié)果緩沖子模塊406、第七比特流處理器匹配結(jié)果緩沖子模塊407、第八比特流處理器匹配結(jié)果緩沖子模塊408、匹配成功信號生成子模塊409、復(fù)位信號生成子模塊410、匹配次數(shù)生成子模塊411。第一比特流處理器匹配結(jié)果緩沖子模塊401至第八比特流處理器匹配結(jié)果緩沖單元子模塊408分別緩存來自8個比特流處理器輸出的行匹配結(jié)果;當(dāng)匹配成功信號生成子模塊409檢測到第一比特流處理器匹配結(jié)果緩沖子模塊401至第八比特流處理器匹配結(jié)果緩沖子模塊408都不為空時,立即從第一比特流處理器匹配結(jié)果緩沖子模塊401至第八比特流處理器匹配結(jié)果緩沖子模塊408中讀出一次匹配的結(jié)果,若檢測到匹配結(jié)果為“FF”,即每行都匹配成功,則匹配成功信號生成子模塊409將生成的匹配成功信 號M輸出至狀態(tài)控制器組6輸出;若檢測到匹配結(jié)果不為“FF”,則繼續(xù)從第一比特流處理器匹配結(jié)果緩沖子模塊401至第八比特流處理器匹配結(jié)果緩沖子模塊408中讀取匹配結(jié)果直到檢測到匹配結(jié)果為“FF”,即匹配成功;當(dāng)復(fù)位信號生成子模塊410檢測到第一比特流處理器匹配結(jié)果緩沖子模塊401至第八比特流處理器匹配結(jié)果緩沖子模塊408中至少有一個為滿時,則輸出系統(tǒng)復(fù)位信號,使系統(tǒng)復(fù)位;匹配次數(shù)生成子模塊411在系統(tǒng)時鐘的上升沿時,檢測第一比特流處理器匹配結(jié)果緩沖子模塊401至第八比特流處理器匹配結(jié)果緩沖子模塊408是否都不為空,若是則進(jìn)行加一,從而記錄下匹配次數(shù),當(dāng)匹配成功時輸出匹配次數(shù)。以下介紹的是本發(fā)明基于并行比特流處理器的二值圖像模板匹配系統(tǒng)的工作原理。系統(tǒng)中,同一個比特流處理器在處理圖像隨機存取存儲器2中一行數(shù)據(jù)的流程是類似的,例如,比特流處理器組5中的第一個比特流處理器需要依次處理圖像隨機存取存儲器2中第I行數(shù)據(jù)、第2行數(shù)據(jù)、第3行數(shù)據(jù)、第4行數(shù)據(jù)……第249行(圖像隨機存取存儲器2的行數(shù)為256行,模板隨機存取存儲器3的行數(shù)為8行)數(shù)據(jù),只要知道比特流處理器組5中的第一個比特流處理器處理圖像隨機存取存儲器2中第I行數(shù)據(jù)的流程,那么就可以用類推的方式得出處理第2行、第3行……第249行數(shù)據(jù)的流程。比特流處理器組5中的第一個比特流處理器處理圖像隨機存取存儲器2中第I行數(shù)據(jù)的流程如下在第I個時鐘T內(nèi),并行控制器I將狀態(tài)控制器復(fù)位信號SC_Rst、狀態(tài)控制器復(fù)位選擇信號Rst_sel發(fā)送給第一復(fù)用器7,將選擇信號sel發(fā)送到第二復(fù)用器8和第三復(fù)用器9,同時將比特流處理器組5中第一個比特流處理器所需圖像數(shù)據(jù)的行、列地址,模板數(shù)據(jù)的行、列地址分別發(fā)送到對應(yīng)的圖像隨機存取存儲器2、模板隨機存取存儲器3,第一復(fù)用器7根據(jù)狀態(tài)控制器復(fù)位選擇信號Rst_sel,將狀態(tài)控制器復(fù)位信號SC_Rst發(fā)送到狀態(tài)控制器組6中第一個狀態(tài)控制器,狀態(tài)控制器組6中第一個狀態(tài)控制器進(jìn)行復(fù)位,輸出狀態(tài)編碼“00”,圖像隨機存取存儲器2將圖像數(shù)據(jù)發(fā)送到第三復(fù)用器9,第三復(fù)用器9根據(jù)選擇信號sel將圖像數(shù)據(jù)送至比特流處理器組5中第一個比特流處理器,模板隨機存取存儲器3將模板數(shù)據(jù)發(fā)送至第二復(fù)用器8,第二復(fù)用器8根據(jù)選擇信號sel將模板數(shù)據(jù)送至比特流處理器組5中第一個比特流處理器;
在第2個時鐘T內(nèi),比特流處理器組5中第一個比特流處理器接受狀態(tài)控制器組6中第一個狀態(tài)控制器輸出的狀態(tài)編碼“00”,進(jìn)入初始態(tài);在第3到第11個時鐘T內(nèi),比特流處理器組5中第一個比特流處理器進(jìn)行下述操作在第3個時鐘T內(nèi),比特流處理器組5中第一個比特流處理器接受狀態(tài)控制器組6中第一個狀態(tài)控制器輸出的狀態(tài)編碼“01”,進(jìn)入處理態(tài),即刻進(jìn)行匹配處理,在第4到第11個時鐘T內(nèi),比特流處理器組5中第一個比特流處理器一直進(jìn)行匹配處理,在第10個時鐘T內(nèi),比特流處理器組5中第一個比特流處理器還向并行控制器I發(fā)送數(shù)據(jù)請求信號,在第11個時鐘T內(nèi),比特流處理器組5中第一個比特流處理器還向狀態(tài)控制器組6中第一個狀態(tài)控制器發(fā)送狀態(tài)請求信號;在第12個時鐘T內(nèi),比特流處理器組5中第一個比特流處理器接受狀態(tài)控制器組6中第一個狀態(tài)控制器輸出的狀態(tài)編碼“10”,進(jìn)入取數(shù)態(tài);在第13到第28個時鐘T內(nèi),比特流處理器組5中第一個比特流處理器進(jìn)行下述 操作在第13到28個時鐘T內(nèi),比特流處理器組5中第一個比特流處理器一直進(jìn)行匹配處理,在第27個時鐘T內(nèi),比特流處理器組5中第一個比特流處理器還向并行控制器I發(fā)送數(shù)據(jù)請求信號,在第28個時鐘T內(nèi),比特流處理器組5中第一個比特流處理器還向狀態(tài)控制器組6中第一個狀態(tài)控制器發(fā)送狀態(tài)請求信號;在第29到第45個時鐘T內(nèi),比特流處理器組5中第一個比特流處理器的處理流程與第12到第28個時鐘T內(nèi)的處理流程類似,即在第29個時鐘T內(nèi),比特流處理器組5中第一個比特流處理器接受狀態(tài)控制器組6中第一個狀態(tài)控制器輸出的狀態(tài)編碼“10”,進(jìn)入取數(shù)態(tài),在第30到45個時鐘T內(nèi),比特流處理器組5中第一個比特流處理器一直進(jìn)行匹配處理,在第44個時鐘T內(nèi),比特流處理器組5中第一個比特流處理器還向并行控制器I發(fā)送數(shù)據(jù)請求信號,在第45個時鐘T內(nèi),比特流處理器組5中第一個比特流處理器還向狀態(tài)控制器組6中第一個狀態(tài)控制器發(fā)送狀態(tài)請求信號;在第46到第62個時鐘T內(nèi)、第63到第79個時鐘T內(nèi)、第80到第96個時鐘T內(nèi)、第97到第113個時鐘T內(nèi)、第114到第130個時鐘T內(nèi)、第131到第147個時鐘T內(nèi)、第148到第164個時鐘T內(nèi)、第165到第181個時鐘T內(nèi)、第182到第198個時鐘T內(nèi)、第199到第215個時鐘T內(nèi)、第216到第232個時鐘T內(nèi)、第233到第249個時鐘T內(nèi)、第250到第256個時鐘T內(nèi),這些階段中的每一個階段比特流處理器組5中第一個比特流處理器的處理流程與第12到第28個時鐘T內(nèi)這一階段比特流處理器組5中第一個比特流處理器的處理流程類似;其中需要說明的是,從第11到第256個時鐘T的過程中,匹配綜合模塊4持續(xù)檢測圖像隨機存取存儲器2中的數(shù)據(jù)和模板隨機存取存儲器3中的模板是否匹配,如果匹配成功,則向狀態(tài)控制器組6中的第一個狀態(tài)控制器發(fā)送匹配成功信號,然后狀態(tài)控制器組6中的第一個狀態(tài)控制器向比特流處理器組5中的第一個比特流處理器發(fā)送狀態(tài)編碼“11“,則比特流處理器組5中第一個比特流處理器在下一個時鐘周期停止工作,如果匹配不成功,則第一個比特流處理器繼續(xù)按照上述過程工作;在第257個時鐘T內(nèi),并行控制器I將狀態(tài)控制器復(fù)位信號SC_Rst、狀態(tài)控制器復(fù)位選擇信號Rst_sel發(fā)送給第一復(fù)用器7,將選擇信號sel發(fā)送到第二復(fù)用器8和第三復(fù)用器9,同時將比特流處理器組5中第一個比特流處理器所需圖像數(shù)據(jù)的行、列地址,模板數(shù)據(jù)的行、列地址分別發(fā)送到對應(yīng)的圖像隨機存取存儲器2、模板隨機存取存儲器3,第一個狀態(tài)控制器向比特流處理器組5中的第一個比特流處理器開始處理第2行數(shù)據(jù),重復(fù)執(zhí)行以上2T-256T的操作。系統(tǒng)中比特流處理器組5中每一個比特流處理器處理每行數(shù)據(jù)采用的方法和流程是一樣的,只是第i+1個比特流處理器滯后第i個處理器一個時鐘周期,其中l(wèi)〈=i〈=7。比特流處理器組5中的第二個比特流處理器需要依次處理圖像隨機存取存儲器2中第2行數(shù)據(jù)、第3行數(shù)據(jù)、第4行數(shù)據(jù)、第5行數(shù)據(jù)……第250行數(shù)據(jù),比特流處理器組5中的第三個比特流處理器需要依次處理圖像隨機存取存儲器2中第3行數(shù)據(jù)、第4行數(shù)據(jù)、第5行數(shù)據(jù)、第6行數(shù)據(jù)……第251行數(shù)據(jù),比特流處理器組5中的第四個比特流處理器需要依次處理圖像隨機存取存儲器2中第4行數(shù)據(jù)、第5行數(shù)據(jù)、第6行數(shù)據(jù)、第7行數(shù)據(jù)……第252行數(shù)據(jù),比特流處理器組5中的第五個比特流處理器需要依次處理圖像隨機存取存儲器2中第5行數(shù)據(jù)、第6行數(shù)據(jù)、第7行數(shù)據(jù)、第8行數(shù)據(jù)……第253行數(shù)據(jù),比特流處理器組5中的第六個比特流處理器需要依次處理圖像隨機存取存儲器2中第6行數(shù)據(jù)、第7行數(shù)據(jù)、第8行數(shù)據(jù)、第9行數(shù)據(jù)……第254行數(shù)據(jù),比特流處理器組5中的第七個比特流處理器需要 依次處理圖像隨機存取存儲器2中第7行數(shù)據(jù)、第8行數(shù)據(jù)、第9行數(shù)據(jù)、第10行數(shù)據(jù)……第255行數(shù)據(jù),比特流處理器組5中的第八個比特流處理器需要依次處理圖像隨機存取存儲器2中第8行數(shù)據(jù)、第9行數(shù)據(jù)、第10行數(shù)據(jù)、第11行數(shù)據(jù)……第256行數(shù)據(jù)。比特流處理器組5中的第二個比特流處理器滯后比特流處理器組5中的第一個比特流處理器一個時鐘周期,其在第2到257個時鐘T內(nèi),處理圖像隨機存取存儲器2中第2行數(shù)據(jù),其處理流程與比特流處理器組5中的第一個比特流處理器在第I到256個時鐘T內(nèi)處理圖像隨機存取存儲器2中第I行數(shù)據(jù)的流程類似,接著比特流處理器組5中的第二個比特流處理器處理下行數(shù)據(jù),采用類推的方式可以得知比特流處理器組5中其他比特流處理器處理其他數(shù)據(jù)的流程。本領(lǐng)域的技術(shù)人員容易理解,以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。
權(quán)利要求
1.一種基于并行比特流處理器的二值圖像模板匹配系統(tǒng),其特征在于, 包括并行控制器、圖像隨機存取存儲器、模板隨機存取存儲器、匹配綜合模塊、比特流處理器組、狀態(tài)控制器組、第一復(fù)用器、第二復(fù)用器、以及第三復(fù)用器; 所述并行控制器用于根據(jù)系統(tǒng)時鐘信號的前八個時鐘周期產(chǎn)生圖像數(shù)據(jù)和模板數(shù)據(jù)的地址信號、選擇信號sel、狀態(tài)控制器復(fù)位信號SC_Rst、以及狀態(tài)控制器復(fù)位選擇信號Rst_sel ; 所述圖像隨機存取存儲器用于獲取并存儲用戶的圖像數(shù)據(jù),并根據(jù)所述并行控制器的地址數(shù)據(jù)將所述圖像數(shù)據(jù)傳送到所述第三復(fù)用器; 所述模板隨機存取存儲器用于獲取并存儲用戶的模板數(shù)據(jù),并根據(jù)所述并行控制器的地址數(shù)據(jù)將所述模板數(shù)據(jù)傳送到所述第二復(fù)用器; 所述第二復(fù)用器用于根據(jù)所述并行控制器的選擇信號sel將所述模板數(shù)據(jù)發(fā)送給對應(yīng)的比特流處理器; 所述第三復(fù)用器用于根據(jù)所述并行控制器的選擇信號sel將所述圖像數(shù)據(jù)發(fā)送給對應(yīng)的比特流處理器; 所述第一復(fù)用器用于根據(jù)所述狀態(tài)控制器復(fù)位選擇信號Rst_sel將所述狀態(tài)控制器復(fù)位信號SC_Rst發(fā)送到對應(yīng)的狀態(tài)控制器; 所述狀態(tài)控制器組用于所述根據(jù)狀態(tài)控制器復(fù)位信號SC_Rst產(chǎn)生第一狀態(tài)編碼信號Si,并將所述第一狀態(tài)編碼信號Si發(fā)送到所述比特流處理器組; 所述比特流處理器組用于根據(jù)所述第一狀態(tài)編碼信號Si存儲圖像數(shù)據(jù)和模板數(shù)據(jù),并在存儲完成后發(fā)送狀態(tài)請求到所述狀態(tài)控制器組; 所述狀態(tài)控制器組還用于根據(jù)狀態(tài)請求產(chǎn)生第二狀態(tài)編碼信號s2,并將所述第二狀態(tài)編碼信號s2發(fā)送到比特流處理器組; 所述比特流處理器組還用于根據(jù)所述第二狀態(tài)編碼信號s2處理所述圖像數(shù)據(jù)和模板數(shù)據(jù),將圖像數(shù)據(jù)和模板數(shù)據(jù)的處理結(jié)果Res和結(jié)果有效信號傳送到所述匹配綜合模塊,在處理完成后產(chǎn)生數(shù)據(jù)請求信號,并將數(shù)據(jù)請求信號傳送到所述并行控制器; 所述并行控制器還用于在系統(tǒng)的時鐘信號的前八個時鐘周期之后,根據(jù)所述數(shù)據(jù)請求信號組Res_PC產(chǎn)生圖像數(shù)據(jù)的地址和狀態(tài)控制器復(fù)位信號SC_Rst ; 所述匹配綜合模塊用于在所述比特流處理器組發(fā)送了處理結(jié)果Res和結(jié)果有效信號后產(chǎn)生成功反饋信號M,并將所述成功反饋信號M傳送到所述狀態(tài)控制器組。
2.根據(jù)權(quán)利要求I所述的二值圖像模板匹配系統(tǒng),其特征在于,所述比特流處理器組中比特流處理器的數(shù)量為8個,狀態(tài)控制器組中狀態(tài)控制器的數(shù)量為8個。
3.根據(jù)權(quán)利要求I所述的二值圖像模板匹配系統(tǒng),其特征在于, 所述匹配綜合模塊包括第一比特流處理器匹配結(jié)果緩沖子模塊、第二比特流處理器匹配結(jié)果緩沖子模塊、第三比特流處理器匹配結(jié)果緩沖子模塊、第四比特流處理器匹配結(jié)果緩沖子模塊、第五比特流處理器匹配結(jié)果緩沖子模塊、第六比特流處理器匹配結(jié)果緩沖子模塊、第七比特流處理器匹配結(jié)果緩沖子模塊、第八比特流處理器匹配結(jié)果緩沖子模塊、匹配成功信號生成子模塊、復(fù)位信號生成子模塊、匹配次數(shù)生成子模塊; 所述第一比特流處理器匹配結(jié)果緩沖子模塊至所述第八比特流處理器匹配結(jié)果緩沖單元子模塊用于分別緩存來自所述比特流處理器組輸出的行匹配結(jié)果;所述匹配成功信號生成子模塊用于在檢測到所述第一比特流處理器匹配結(jié)果緩沖子模塊至所述第八比特流處理器匹配結(jié)果緩沖子模塊都不為空時,立即從所述第一比特流處理器匹配結(jié)果緩沖子模塊至所述第八比特流處理器匹配結(jié)果緩沖子模塊中讀出一次匹配的結(jié)果,若檢測到匹配結(jié)果為“FF”,即每行都匹配成功,則所述匹配成功信號生成子模塊將生成的匹配成功信號M輸出至狀態(tài)控制器組,若檢測到匹配結(jié)果不為“FF”,則繼續(xù)從所述第一比特流處理器匹配結(jié)果緩沖子模塊至所述第八比特流處理器匹配結(jié)果緩沖子模塊中讀取匹配結(jié)果直到檢測到匹配結(jié)果為“FF”,即匹配成功; 所述復(fù)位信號生成子模塊用于在檢測到所述第一比特流處理器匹配結(jié)果緩沖子模塊至所述第八比特流處理器匹配結(jié)果緩沖子模塊至少有一個為滿,則輸出系統(tǒng)復(fù)位信號,使系統(tǒng)復(fù)位; 所述匹配次數(shù)生成子模塊用于在系統(tǒng)時鐘的上升沿時,檢測所述第一比特流處理器匹配結(jié)果緩沖子模塊至所述第八比特流處理器匹配結(jié)果緩沖子模塊是否都不為空,若是則進(jìn)行加一,從而記錄下匹配次數(shù),當(dāng)匹配成功時輸出匹配次數(shù)。
全文摘要
本發(fā)明公開了一種基于并行比特流處理器的二值圖像模板匹配系統(tǒng),包括并行控制器、圖像隨機存取存儲器、模板隨機存取存儲器、匹配綜合模塊、比特流處理器組、狀態(tài)控制器組、第一復(fù)用器、第二復(fù)用器以及第三復(fù)用器,并行控制器用于根據(jù)系統(tǒng)時鐘信號的前八個時鐘周期產(chǎn)生圖像數(shù)據(jù)和模板數(shù)據(jù)的地址信號、選擇信號、狀態(tài)控制器復(fù)位信號以及狀態(tài)控制器復(fù)位選擇信號,圖像隨機存取存儲器用于獲取并存儲用戶的圖像數(shù)據(jù),并根據(jù)并行控制器的地址數(shù)據(jù)將圖像數(shù)據(jù)傳送到第三復(fù)用器,模板隨機存取存儲器用于獲取并存儲用戶的模板數(shù)據(jù)。本發(fā)明有效的提高了圖像匹配的速度,滿足實時性,克服了傳統(tǒng)模板匹配方法速度慢、只能串行處理、實時性差等缺陷。
文檔編號H04N21/234GK102802038SQ20121026022
公開日2012年11月28日 申請日期2012年7月25日 優(yōu)先權(quán)日2012年7月25日
發(fā)明者李開, 曹計昌, 李小偉, 陳炎, 柳俊, 陳禮安, 陳奕鴻, 紀(jì)坤 申請人:華中科技大學(xué)