基于FPGA的女书文字切割技术的设计与应用
2011-10-16王文涛朱顺安
王文涛,王 建,朱顺安
(中南民族大学计算机科学学院,武汉430074)
基于FPGA的女书文字切割技术的设计与应用
王文涛,王 建,朱顺安
(中南民族大学计算机科学学院,武汉430074)
根据女书的结构,在FPGA平台上设计了文字图像切割系统,该系统采用双核架构的硬件平台,多进程的运算模块,实现了文字图像从CF卡读写,显示与切割的并行处理.经过实验应用表明:系统能达到不错的处理效果,并因其双核架构,大大提高了文字处理效率.
女书;现场可编程门阵列;紧凑式闪存卡;双核
女书,又叫“女字”,主要流传在湖南省江永县上江圩一带,它是一种特殊的表音文字,现已濒临灭绝.女书[1]是中华民族珍贵的古老文化遗产.当前,女书信息化的研究多限于算法层面,本文利用FPGA(现场可编程门阵列)技术设计了一个便携式女书信息化系统.FPGA具有极高并行度的信号处理引擎,提供高性能的信号处理能力.系统在Xilinx公司的FPGA开发板和嵌入式开发平台(EDK)上根据女书文字的特点通过图像处理算法设计实现女书图像采集、显示、处理、存储的综合应用.
1 女书图像切割算法
1.1 女书的特点及整体布局特征
女书字体呈右上高、左下低的“多”字形结构.从整体上看,女书是一种由左向右略有倾斜的长菱行文字,组合方式是左右错开排列,左在下,右在上,上下保持在斜菱型范围内,右上角一般是全字的最高点,左下角是全字的最低位置,它的行款方向是从上至下,自右向左,也有前一行从上到下,下一行接着从下到上的,也有的幅面是扇形的,大多行款是自右向左,由上而下,所有的女书都没有标点,排列整齐.女书的字行可分为2种:一种是竖直排列,多列并排,上下对齐,每列有五字或七字;另一种是扇型排列,多列分布为扇型,形成一定的扇面角.
1.2 女书文字切割算法
女书文字图像的切割算法主要根据女书的特点及整体布局来设计.对于采集来的女书图像如果是彩色图像则要先进行图像灰度化处理[2],按下式进行转换:
其中i,j是一个像素点在图像中的位置,R(i,j)是i,j所表示的像素点颜色的红色分量,同理G(i,j),B(i,j)分别表示绿色和蓝色分量,Gray(i,j)表示该点转换后的灰度级别.最后,只需将该像素点RGB分量值都设为Gray(i,j)即可.
遍历灰度化后的彩色图像和非彩色图像的图像数据信息,统计出其颜色等级及相应的像素个数,找到图像二值化的最佳阈值,对图像进行二值化处理.然后对处理好的图像进行行列投影,即将统计的每一行像素值的和保存在*(Row bit+i)中、每一列像素值的和保存在*(L ine bit+j)中,i,j是一个像素点在图像中的位置.对*Row bit和*L ine-bit中的数据进行处理找到切割点,并将切割点根据女书文字的特点进行修正得到新的切割点并保存下来.最后根据得到的切割点对图像进行切割、显示、保存下来.其算法流程图如图1.
图1 女书文字切割算法流程图Fig.1 Flow diagram of segmentation algorithm of NüShu characters
2 系统设计
2.1 硬件部分
本设计使用的是Xilinx公司的V irtex-Ⅱ Pro开发板[3],用其配套的嵌入式开发环境EDK(Embedded Development Kit)[4,5]来完成系统的设计的.
其架构采用双核处理器[6]并行处理数据,以追求高效、快速的效果,图2为本设计的硬件框图.
图2 硬件框图Fig.2 Hardware block diagram
在硬件设计中,使用了两个PowerPC硬核处理器分别挂在PLB总线上,PowerPC-0处理器用于从CF卡中取出待切割图像,并用上述女书文字切割算法处理女书图像,由于图像数据量大所以把图像数据信息存入DDR SDRAM 中;PowerPC-1处理器用于根据PowerPC-0处理器处理图像得到的切割点,将切割后的图像保存至CF卡.PowerPC -0处理器使用了5个BRAM(BlockRAM),除plb-bram -if -cntlr-0-bram用来保存PowerPC-0处理器下的软件源代码外;pixelData-bram用来暂存从CF卡中读取的图像数据信息的一行的像素值,这样做是因为每一幅图像的分辨率也许不同,有的大有的小,而如果使用malloc函数为每一行的像素申请空间,若图像的分辨率较大,它的行像素较多则会溢出,所以为了使本设计的使用更广泛,单独用一个32 KB BRAM 来存储图像数据信息的每一行的像素值;tagRGBQUAD-bram用于暂存非真彩色图像的颜色表数据信息,其大小为64 KB;v-remb-bram用来暂存经过图像处理算法处理后得到的待切割点,其大小为16 KB;hrembbram用来暂存经过图像处理算法处理后得到的行切割点,其大小为16 KB.PowerPC-1处理器使用了一个BRAM,plb -bram -if-cntlr-1-bram用来保存PowerPC-1处理器下的软件源代码.此外,PowerPC -0处理器与PowerPC-1处理器共享两个BRAM,Share-v -bram -if -cntlr -1-bram用来暂存经PowerPC- 0处理器处理得到的待切割女书图像的列切割点,Share- h- bram- if- cntlr -1-bram用来暂存经PowerPC-0处理器处理得到的待切割女书图像的行切割点.
两个PowerPC处理器共享挂在OPB总线上的资源,OPB总线上有4个IP核,UART RS232用作应用程序的标准输入输出;SystemACE配置方案有2种方式:SystemACE CF(CompactFlash)卡控制器和SystemACE SC(Soft Controller)软件控制器,在本设计中使用SystemACE CF方式,用于控制FPGA对CF卡的读写操作;PushButtons _5Bit为本设计使用的Xilinx V IRTEX_II PRO开发板上的按钮,用来切换图片在V GA的显示;opb_mutex IP核在两个处理器上为软件共享资源(无论它们是片上资源还是片外资源)的访问进行仲裁.PLB总线与OPB总线通过PLBtoOPB Bridge总线桥连接方便处理器对外设的访问.在本设计中还使用了plb -tft-cntlr -refv1-00-d IP核,用于将图像数据信息在V GA中显示出来.
2.2 软件部分
2.2.1 PowerPC0处理器下的程序算法
PowerPC-0处理器下的程序算法流程如图3所示,PowerPC-0处理器主要处理从CF卡中读取图像并将图像保存至DDR中、用女书文字切割算法处理图像数据信息并将得到的一行或一列的切割点的值暂存入PowerPC -0处理器和PowerPC-1处理器的共享BRAM 以及将处理后的图像数据信息保存至DDR中并使图像在V GA中显示出来.
2.3.2 PowerPC-1处理器下的程序算法
PowerPC-1处理器下的程序算法流程如图4所示,PowerPC-1处理器主要处理从CF卡读取图像,根据共享BRAM 中的切割点信息生成新的图像并保存至CF卡中,同时清空共享BRAM 中的信息使得下次赋值过程不会受到干扰.
2.3.3 双核调度算法
PowerPC -0处理器和PowerPC-1处理器都对共享BRAM 进行了读写操作,都对CF卡进行了读写操作,以及使用了UART串口用于应用程序的标准输入输出,这些资源我们称其为“临界资源”,程序中涉及到临界资源的代码成为“临界区”.所以如果不加以控制,则程序在进入临界区时就会发生冲突.在本设计中,使用共享BRAM 进行双核通讯,使用opbmutex IP核对当两个处理器的程序进入临界区时进行仲裁.
图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 在本设计的使用
共享BRAM 是用来暂存女书图像行切割点和列切割点的数值及切割点的个数,PowerPC -0处理器将经过处理得到的行列切割点的个数及行列切割点的值暂存入共享BRAM 中,PowerPC -1处理器从共享BRAM 中读取切割点,在程序中使用方法如下:-BA SEADDR;
在两个处理器下的程序内,分别定义两个指针,指针分别指向两个共享BRAM 的基地址,当在程序中用到时,只需对指针进行操作就可以将要保存的信息存入共享BRAM 中.
(2)opb-mutex IP核在本设计中的仲裁作用
opb-mutex IP核可以使两个处理器同时访问共享资源时同步化,它可以提供自定义数目的互斥锁及写锁方式.当两个处理器的任意一个程序进入临界区时,在程序中可如下使用.
例:两个处理器共同访问CF卡,程序段如下:
PowerPC-0处理器访问CF卡时,
#defineMU TEXNUM 0//宏定义互斥锁个数为0
XM utex mutex;//定义类型为XM utex的全局变量
图5 双核并行处理流程图Fig.5 Dual-core parallel processing flow diagram
在各函数中代码如下:
对CF卡的读写操作;NUM);
PowerPC-1处理器访问CF卡时处理如上.
XM utex-Lock的函数原形为: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参数为指向XM utex的指针,Xuint8M utexN umber为互斥锁的数目,其大小为:0-(InstancePtr-> N umM utex-1).当两个处理器同时访问共享资源时,执行XM utex- Lock操作,允许一个处理器访问共享资源同时加锁,这时另一个处理器XM utex -Lock操作,由于互斥锁已被加锁所以将处于等待状态,直到上一个处理器访问共享资源结束并执行XM utex- U nlock之后再访问共享资源.在本设计中双核并行处理流程图如图5.
3 实验与分析
在测试与验证中,我们将待切割的女书图像存入CF卡中,将在EDK下建好的工程生成bit流并通过JTA G线下载到Xilinx V IRTEX-II PRO开发板,在显示器查看输出的结果,通过按up、down按钮切换图像.效果如图6.
图6 效果图Fig.6 Result figure
图6分别为待切割女书图像,经过图像处理后,系统将切好的文字按照原图片的位置在显示器中显示出来,切割后的女书文字以其在图像中的行列编号为文件名存入CF卡中,如图7所示.
通过对20多张图片的测试结果,系统对能被人眼看出的文字分割正确率达95%,对文字格式比较规范的分割正确率接近100%,测试结果令人满意.在同类系统中,数据输入输出环节是个十分耗时的过程,而在本系统中采用了双核并行处理的系统架构使效率提高了1.5倍.
图7 CF卡文件存储Fig.7 Files storage of CF card
由于本系统采用的是通过对二值化图像像素点的统计来判断笔划的,所以对书写比较规整的图像处理效果优秀,对于一些书写不整齐、字与字之间有交叉的效果就不太理想了.这个缺陷可以通过连通图法来改进,但这就需要用到女书文字的数据库,将成为一个很巨大的工程.
4 结束语
用嵌入式技术将女书信息化对女书的研究发展有很大的推动作用,FPGA内部资源丰富,功能强大,可以满足众多需求,并能高效、快速地处理图像信息.用FPGA技术实现女书信息化,有广阔的发展前景.
[1] 王江晴,万 晨.周边方向贡献度在脱机手写女书特征提取中的应用[J].中南民族大学学报:自然科学版,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可编程逻辑器件应用与系统设计[M].北京:电子工业出版社,2008:84-102.
[4] 刘 岚,黄秋元,陈 适.FPGA应用技术基础教程[M].北京:电子工业出版社,2009:151-177.
[5] 杨强浩.基于EDK的FPGA嵌入式系统开发[M].北京:机械工业出版社,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-),男,博士,副教授,研究方向:图像处理、嵌入式与网络技术,E-mail:wangw t@mail.scuec.edu.cn
中南民族大学中央高校基本科研业务费专项资金项目(CZY10011);中南民族大学大学生科研创新基金项目(KYCX100405Z)