王文濤,王 建,朱順安
(中南民族大學(xué)計(jì)算機(jī)科學(xué)學(xué)院,武漢430074)
基于FPGA的女書文字切割技術(shù)的設(shè)計(jì)與應(yīng)用
王文濤,王 建,朱順安
(中南民族大學(xué)計(jì)算機(jī)科學(xué)學(xué)院,武漢430074)
根據(jù)女書的結(jié)構(gòu),在FPGA平臺(tái)上設(shè)計(jì)了文字圖像切割系統(tǒng),該系統(tǒng)采用雙核架構(gòu)的硬件平臺(tái),多進(jìn)程的運(yùn)算模塊,實(shí)現(xiàn)了文字圖像從CF卡讀寫,顯示與切割的并行處理.經(jīng)過實(shí)驗(yàn)應(yīng)用表明:系統(tǒng)能達(dá)到不錯(cuò)的處理效果,并因其雙核架構(gòu),大大提高了文字處理效率.
女書;現(xiàn)場(chǎng)可編程門陣列;緊湊式閃存卡;雙核
女書,又叫“女字”,主要流傳在湖南省江永縣上江圩一帶,它是一種特殊的表音文字,現(xiàn)已瀕臨滅絕.女書[1]是中華民族珍貴的古老文化遺產(chǎn).當(dāng)前,女書信息化的研究多限于算法層面,本文利用FPGA(現(xiàn)場(chǎng)可編程門陣列)技術(shù)設(shè)計(jì)了一個(gè)便攜式女書信息化系統(tǒng).FPGA具有極高并行度的信號(hào)處理引擎,提供高性能的信號(hào)處理能力.系統(tǒng)在Xilinx公司的FPGA開發(fā)板和嵌入式開發(fā)平臺(tái)(EDK)上根據(jù)女書文字的特點(diǎn)通過圖像處理算法設(shè)計(jì)實(shí)現(xiàn)女書圖像采集、顯示、處理、存儲(chǔ)的綜合應(yīng)用.
女書字體呈右上高、左下低的“多”字形結(jié)構(gòu).從整體上看,女書是一種由左向右略有傾斜的長菱行文字,組合方式是左右錯(cuò)開排列,左在下,右在上,上下保持在斜菱型范圍內(nèi),右上角一般是全字的最高點(diǎn),左下角是全字的最低位置,它的行款方向是從上至下,自右向左,也有前一行從上到下,下一行接著從下到上的,也有的幅面是扇形的,大多行款是自右向左,由上而下,所有的女書都沒有標(biāo)點(diǎn),排列整齊.女書的字行可分為2種:一種是豎直排列,多列并排,上下對(duì)齊,每列有五字或七字;另一種是扇型排列,多列分布為扇型,形成一定的扇面角.
女書文字圖像的切割算法主要根據(jù)女書的特點(diǎn)及整體布局來設(shè)計(jì).對(duì)于采集來的女書圖像如果是彩色圖像則要先進(jìn)行圖像灰度化處理[2],按下式進(jìn)行轉(zhuǎn)換:
其中i,j是一個(gè)像素點(diǎn)在圖像中的位置,R(i,j)是i,j所表示的像素點(diǎn)顏色的紅色分量,同理G(i,j),B(i,j)分別表示綠色和藍(lán)色分量,Gray(i,j)表示該點(diǎn)轉(zhuǎn)換后的灰度級(jí)別.最后,只需將該像素點(diǎn)RGB分量值都設(shè)為Gray(i,j)即可.
遍歷灰度化后的彩色圖像和非彩色圖像的圖像數(shù)據(jù)信息,統(tǒng)計(jì)出其顏色等級(jí)及相應(yīng)的像素個(gè)數(shù),找到圖像二值化的最佳閾值,對(duì)圖像進(jìn)行二值化處理.然后對(duì)處理好的圖像進(jìn)行行列投影,即將統(tǒng)計(jì)的每一行像素值的和保存在*(Row bit+i)中、每一列像素值的和保存在*(L ine bit+j)中,i,j是一個(gè)像素點(diǎn)在圖像中的位置.對(duì)*Row bit和*L ine-bit中的數(shù)據(jù)進(jìn)行處理找到切割點(diǎn),并將切割點(diǎn)根據(jù)女書文字的特點(diǎn)進(jìn)行修正得到新的切割點(diǎn)并保存下來.最后根據(jù)得到的切割點(diǎn)對(duì)圖像進(jìn)行切割、顯示、保存下來.其算法流程圖如圖1.
圖1 女書文字切割算法流程圖Fig.1 Flow diagram of segmentation algorithm of NüShu characters
本設(shè)計(jì)使用的是Xilinx公司的V irtex-Ⅱ Pro開發(fā)板[3],用其配套的嵌入式開發(fā)環(huán)境EDK(Embedded Development Kit)[4,5]來完成系統(tǒng)的設(shè)計(jì)的.
其架構(gòu)采用雙核處理器[6]并行處理數(shù)據(jù),以追求高效、快速的效果,圖2為本設(shè)計(jì)的硬件框圖.
圖2 硬件框圖Fig.2 Hardware block diagram
在硬件設(shè)計(jì)中,使用了兩個(gè)PowerPC硬核處理器分別掛在PLB總線上,PowerPC-0處理器用于從CF卡中取出待切割圖像,并用上述女書文字切割算法處理女書圖像,由于圖像數(shù)據(jù)量大所以把圖像數(shù)據(jù)信息存入DDR SDRAM 中;PowerPC-1處理器用于根據(jù)PowerPC-0處理器處理圖像得到的切割點(diǎn),將切割后的圖像保存至CF卡.PowerPC -0處理器使用了5個(gè)BRAM(BlockRAM),除plb-bram -if -cntlr-0-bram用來保存PowerPC-0處理器下的軟件源代碼外;pixelData-bram用來暫存從CF卡中讀取的圖像數(shù)據(jù)信息的一行的像素值,這樣做是因?yàn)槊恳环鶊D像的分辨率也許不同,有的大有的小,而如果使用malloc函數(shù)為每一行的像素申請(qǐng)空間,若圖像的分辨率較大,它的行像素較多則會(huì)溢出,所以為了使本設(shè)計(jì)的使用更廣泛,單獨(dú)用一個(gè)32 KB BRAM 來存儲(chǔ)圖像數(shù)據(jù)信息的每一行的像素值;tagRGBQUAD-bram用于暫存非真彩色圖像的顏色表數(shù)據(jù)信息,其大小為64 KB;v-remb-bram用來暫存經(jīng)過圖像處理算法處理后得到的待切割點(diǎn),其大小為16 KB;hrembbram用來暫存經(jīng)過圖像處理算法處理后得到的行切割點(diǎn),其大小為16 KB.PowerPC-1處理器使用了一個(gè)BRAM,plb -bram -if-cntlr-1-bram用來保存PowerPC-1處理器下的軟件源代碼.此外,PowerPC -0處理器與PowerPC-1處理器共享兩個(gè)BRAM,Share-v -bram -if -cntlr -1-bram用來暫存經(jīng)PowerPC- 0處理器處理得到的待切割女書圖像的列切割點(diǎn),Share- h- bram- if- cntlr -1-bram用來暫存經(jīng)PowerPC-0處理器處理得到的待切割女書圖像的行切割點(diǎn).
兩個(gè)PowerPC處理器共享掛在OPB總線上的資源,OPB總線上有4個(gè)IP核,UART RS232用作應(yīng)用程序的標(biāo)準(zhǔn)輸入輸出;SystemACE配置方案有2種方式:SystemACE CF(CompactFlash)卡控制器和SystemACE SC(Soft Controller)軟件控制器,在本設(shè)計(jì)中使用SystemACE CF方式,用于控制FPGA對(duì)CF卡的讀寫操作;PushButtons _5Bit為本設(shè)計(jì)使用的Xilinx V IRTEX_II PRO開發(fā)板上的按鈕,用來切換圖片在V GA的顯示;opb_mutex IP核在兩個(gè)處理器上為軟件共享資源(無論它們是片上資源還是片外資源)的訪問進(jìn)行仲裁.PLB總線與OPB總線通過PLBtoOPB Bridge總線橋連接方便處理器對(duì)外設(shè)的訪問.在本設(shè)計(jì)中還使用了plb -tft-cntlr -refv1-00-d IP核,用于將圖像數(shù)據(jù)信息在V GA中顯示出來.
2.2.1 PowerPC0處理器下的程序算法
PowerPC-0處理器下的程序算法流程如圖3所示,PowerPC-0處理器主要處理從CF卡中讀取圖像并將圖像保存至DDR中、用女書文字切割算法處理圖像數(shù)據(jù)信息并將得到的一行或一列的切割點(diǎn)的值暫存入PowerPC -0處理器和PowerPC-1處理器的共享BRAM 以及將處理后的圖像數(shù)據(jù)信息保存至DDR中并使圖像在V GA中顯示出來.
2.3.2 PowerPC-1處理器下的程序算法
PowerPC-1處理器下的程序算法流程如圖4所示,PowerPC-1處理器主要處理從CF卡讀取圖像,根據(jù)共享BRAM 中的切割點(diǎn)信息生成新的圖像并保存至CF卡中,同時(shí)清空共享BRAM 中的信息使得下次賦值過程不會(huì)受到干擾.
2.3.3 雙核調(diào)度算法
PowerPC -0處理器和PowerPC-1處理器都對(duì)共享BRAM 進(jìn)行了讀寫操作,都對(duì)CF卡進(jìn)行了讀寫操作,以及使用了UART串口用于應(yīng)用程序的標(biāo)準(zhǔn)輸入輸出,這些資源我們稱其為“臨界資源”,程序中涉及到臨界資源的代碼成為“臨界區(qū)”.所以如果不加以控制,則程序在進(jìn)入臨界區(qū)時(shí)就會(huì)發(fā)生沖突.在本設(shè)計(jì)中,使用共享BRAM 進(jìn)行雙核通訊,使用opbmutex IP核對(duì)當(dāng)兩個(gè)處理器的程序進(jìn)入臨界區(qū)時(shí)進(jìn)行仲裁.
圖3 PowerPC -0處理器下的程序流程圖Fig.3 Program flow diagram for the process of PowerPC -0
圖4 PowerPC-1處理器下的程序流程圖Fig.4 Program flow diagram for the process of PowerPC-1
(1)共享BRAM 在本設(shè)計(jì)的使用
共享BRAM 是用來暫存女書圖像行切割點(diǎn)和列切割點(diǎn)的數(shù)值及切割點(diǎn)的個(gè)數(shù),PowerPC -0處理器將經(jīng)過處理得到的行列切割點(diǎn)的個(gè)數(shù)及行列切割點(diǎn)的值暫存入共享BRAM 中,PowerPC -1處理器從共享BRAM 中讀取切割點(diǎn),在程序中使用方法如下:-BA SEADDR;
在兩個(gè)處理器下的程序內(nèi),分別定義兩個(gè)指針,指針分別指向兩個(gè)共享BRAM 的基地址,當(dāng)在程序中用到時(shí),只需對(duì)指針進(jìn)行操作就可以將要保存的信息存入共享BRAM 中.
(2)opb-mutex IP核在本設(shè)計(jì)中的仲裁作用
opb-mutex IP核可以使兩個(gè)處理器同時(shí)訪問共享資源時(shí)同步化,它可以提供自定義數(shù)目的互斥鎖及寫鎖方式.當(dāng)兩個(gè)處理器的任意一個(gè)程序進(jìn)入臨界區(qū)時(shí),在程序中可如下使用.
例:兩個(gè)處理器共同訪問CF卡,程序段如下:
PowerPC-0處理器訪問CF卡時(shí),
#defineMU TEXNUM 0//宏定義互斥鎖個(gè)數(shù)為0
XM utex mutex;//定義類型為XM utex的全局變量
圖5 雙核并行處理流程圖Fig.5 Dual-core parallel processing flow diagram
在各函數(shù)中代碼如下:
對(duì)CF卡的讀寫操作;NUM);
PowerPC-1處理器訪問CF卡時(shí)處理如上.
XM utex-Lock的函數(shù)原形為:XStatus XM utex-Lock(XM utex* InstancePtr,Xuint8 M utexN umber),其功能是將互斥鎖鎖定在互斥鎖裝置中,直到互斥鎖完全鎖定.XStatus XM utex-U nlock(XM utex* InstancePtr,Xuint8 M utexN umber);在互斥鎖裝置中解開互斥鎖.XM utex* InstancePtr參數(shù)為指向XM utex的指針,Xuint8M utexN umber為互斥鎖的數(shù)目,其大小為:0-(InstancePtr-> N umM utex-1).當(dāng)兩個(gè)處理器同時(shí)訪問共享資源時(shí),執(zhí)行XM utex- Lock操作,允許一個(gè)處理器訪問共享資源同時(shí)加鎖,這時(shí)另一個(gè)處理器XM utex -Lock操作,由于互斥鎖已被加鎖所以將處于等待狀態(tài),直到上一個(gè)處理器訪問共享資源結(jié)束并執(zhí)行XM utex- U nlock之后再訪問共享資源.在本設(shè)計(jì)中雙核并行處理流程圖如圖5.
在測(cè)試與驗(yàn)證中,我們將待切割的女書圖像存入CF卡中,將在EDK下建好的工程生成bit流并通過JTA G線下載到Xilinx V IRTEX-II PRO開發(fā)板,在顯示器查看輸出的結(jié)果,通過按up、down按鈕切換圖像.效果如圖6.
圖6 效果圖Fig.6 Result figure
圖6分別為待切割女書圖像,經(jīng)過圖像處理后,系統(tǒng)將切好的文字按照原圖片的位置在顯示器中顯示出來,切割后的女書文字以其在圖像中的行列編號(hào)為文件名存入CF卡中,如圖7所示.
通過對(duì)20多張圖片的測(cè)試結(jié)果,系統(tǒng)對(duì)能被人眼看出的文字分割正確率達(dá)95%,對(duì)文字格式比較規(guī)范的分割正確率接近100%,測(cè)試結(jié)果令人滿意.在同類系統(tǒng)中,數(shù)據(jù)輸入輸出環(huán)節(jié)是個(gè)十分耗時(shí)的過程,而在本系統(tǒng)中采用了雙核并行處理的系統(tǒng)架構(gòu)使效率提高了1.5倍.
圖7 CF卡文件存儲(chǔ)Fig.7 Files storage of CF card
由于本系統(tǒng)采用的是通過對(duì)二值化圖像像素點(diǎn)的統(tǒng)計(jì)來判斷筆劃的,所以對(duì)書寫比較規(guī)整的圖像處理效果優(yōu)秀,對(duì)于一些書寫不整齊、字與字之間有交叉的效果就不太理想了.這個(gè)缺陷可以通過連通圖法來改進(jìn),但這就需要用到女書文字的數(shù)據(jù)庫,將成為一個(gè)很巨大的工程.
用嵌入式技術(shù)將女書信息化對(duì)女書的研究發(fā)展有很大的推動(dòng)作用,FPGA內(nèi)部資源豐富,功能強(qiáng)大,可以滿足眾多需求,并能高效、快速地處理圖像信息.用FPGA技術(shù)實(shí)現(xiàn)女書信息化,有廣闊的發(fā)展前景.
[1] 王江晴,萬 晨.周邊方向貢獻(xiàn)度在脫機(jī)手寫女書特征提取中的應(yīng)用[J].中南民族大學(xué)學(xué)報(bào):自然科學(xué)版,2010,29(3):65-67.
[2] W ang Guohui,Guan Yong.Designing of V GA character string display module base on FPGA[J].I UCE,2009,12(3):499-502.
[3] 孫 航,胡靈博.Xilinx可編程邏輯器件應(yīng)用與系統(tǒng)設(shè)計(jì)[M].北京:電子工業(yè)出版社,2008:84-102.
[4] 劉 嵐,黃秋元,陳 適.FPGA應(yīng)用技術(shù)基礎(chǔ)教程[M].北京:電子工業(yè)出版社,2009:151-177.
[5] 楊強(qiáng)浩.基于EDK的FPGA嵌入式系統(tǒng)開發(fā)[M].北京:機(jī)械工業(yè)出版社,2007:55-77.
[6] Zhang Bo,Zhang Gang.Research on dual-processor sharing pair ofsymmetric DRAM [J].IC ICTA,2009,501(3):138-141.
Design and Application of Segmentation Technology of NüShu Characters Based on FPGA
W ang W entao,W ang J ian,Zhu S hun′an
(College of Computer Science,South-CentralU niversity of N ationalities,W uhan 430074,China)
A ccording to the structure of NüShu characters,we design a system on the FPGA platform to cut the images of NüShu characters.The system applies the hardware platform of dual-core architecture and multiprocess computing modules. It realizes the processing of reading or w riting images from CF card,display and segmentation of characters at the same t ime.A ctual applications prove that the system can effectively segment Nü Shu characters by using parallel processing.
NüShu characters;FPGA;CF card;dual-core
TP391
A
1672-4321(2011)01-0096-05
2011-02-22
王文濤(1967-),男,博士,副教授,研究方向:圖像處理、嵌入式與網(wǎng)絡(luò)技術(shù),E-mail:wangw t@mail.scuec.edu.cn
中南民族大學(xué)中央高?;究蒲袠I(yè)務(wù)費(fèi)專項(xiàng)資金項(xiàng)目(CZY10011);中南民族大學(xué)大學(xué)生科研創(chuàng)新基金項(xiàng)目(KYCX100405Z)