张立,周凡,胡银丰
1.浙江大学数字技术及仪器研究所,杭州 310027
2.海军驻杭州地区军事代表室,杭州 310012
◎理论研究、研发设计◎
面向高速数码印花机的实时图像数据转置方法
张立1,周凡1,胡银丰2
1.浙江大学数字技术及仪器研究所,杭州 310027
2.海军驻杭州地区军事代表室,杭州 310012
针对PC无法实时按位转置大量图像数据而限制了数码印花机输出带宽和喷印速度的问题,设计了基于PowerPC处理器和Virtex-5系列FPGA的高速数据处理系统,运用FPGA实现了高效转置运算。为FPGA例化三个独立的DDR2控制器,通过控制器间的协同工作提高系统输出带宽;设计按位转置单元,将图像数据分块转置,利用DDR2控制器的突发传输高效地读写数据。性能测试结果表明FPGA的输出带宽高达327 Mb/s,数码印花机的喷印速度达249 m2/h,相比PC处理系统,在同等条件下性能提升明显。
数码印花;图像数据转置;实时;喷印速度;现场可编程门阵列(FPGA)
数码印花技术是随着计算机技术不断发展而逐渐形成的一种集机械、计算机电子信息技术为一体的高新技术产品,是将花样图案通过数字形式输入到计算机,通过计算机印花分色描稿系统编辑处理[1],再由印染专用RIP软件控制喷墨印花系统,将专用色料直接喷印到织物上,形成所需图案[2]。与传统印花相比,数码印花具有免制版、低耗能、低污染[3]、高精度、短周期、个性化等显著优势[4]。
2000年之前数码印花技术得到初步发展,印花分辨率为360~720 dot/inch,但喷印速度低于10 m2/h[5]。2003年ITMA(International Textile Machinery Association,国际纺织机械展览会)上,处于国际技术领先地位的意大利Reggiani公司推出了DreAM型数码印花机。DreAM在600 dot/inch×600 dot/inch分辨率、6色喷印时,速度达150 m2/h[6]。美国DuPont公司推出的Artistri 2020,在360 dot/inch×360 dot/inch分辨率、8色喷印时,速度达45 m2/h;荷兰Stork公司的Sapphire在同等条件下的喷印速度为32 m2/h[7]。2008年国内技术领先的宏华数码公司推出了DBP-1600型数码印花机。此机型在360 dot/inch× 360 dot/inch分辨率、8色喷印时,速度仅27.6 m2/h。2010年之前国内数码印花机的喷印速度普遍在20~50 m2/h[8]。
2009年及以前的数码印花机大多采用PC来处理图像数据。在此类数码印花机中,PC执行的任务主要分为两个部分。第一部分是图像处理类,包括图像分色、色域空间转换、rip软件栅格化、按位转置以及传输等[9]。原始的彩色图像经分色、色域转换、栅格化后得到各基色的点阵图像。点阵图像中的像素均为1 bit数据,1表示喷印该基色,0表示不喷印。按位转置处理是指在点阵图像送往喷头前,对其进行矩阵转置。由于矩阵中的元素均为1 bit数据,故称作按位转置。PC所执行任务的第二部分是系统控制类,包括喷印缺陷检测结果处理[10],与运动控制子系统和喷头控制子系统通讯以实现精确喷印等[11]。除了点阵图像按位转置,PC处理的其他事务也消耗了大量的资源,严重影响了转置运算的速度。另外,通用处理器一次运算的位宽为32 bit或64 bit,在对大量1 bit数据进行转置运算时,其效率十分低下。这两个因素致使PC只能工作在预先转置、暂时存储、按需读出的不连续模式,无法实时地转置和传输图像数据。因而以往采用此类PC处理系统的数码印花机的输出带宽和喷印速度也受到限制,其最高喷印速度不超过150 m2/h[12]。
为解决上述问题,本文提出一种基于嵌入式处理器和高性能FPGA的方案。该系统使用高性能FPGA代替PC完成点阵图像的按位转置运算,充分发挥现场可编程门阵列使用灵活、并行处理能力强的特点,实现了图像数据的实时转置和输出。本系统的输出带宽可达327 Mb/s,等同于3台配置了主频1.8 GHz酷睿处理器的PC机的处理性能。以本系统为核心的高速数码印花机在600 dot/inch×600 dot/inch分辨率、8色喷印时,速度可达249 m2/h。相比以往采用PC处理系统的数码印花机,在同等条件下其性能提升明显。
导带式数码印花机喷头喷印的过程如图1所示,假设待喷印的基色图像为8×8的点阵(每一个像素点是1 bit数据)。喷头的喷嘴一般按列向分布,图1中的喷头有4个喷嘴。喷头按图中所示方向自左向右运动一次后,喷印出一个4×8的点阵。喷头喷印的数据依次为{(P1,1)(P2,1)(P3,1)(P4,1)}、{(P1,2)(P2,2)(P3,2)(P4,2)}、…。若将原始图像按喷头宽度划分为若干图像行(此例中为两个4×8的点阵),可见数据处理系统送给喷头的数据不是按图像行的水平方向依次输出,而是按图像行的垂直方向依次输出。因此,数据处理系统需要分图像行对原始图像进行转置。
图1 喷头喷印示意图
如图2所示,本系统采用嵌入式PowerPC处理器和Virtex-5系列FPGA完成图像数据转置。Virtex-5系列FPGA的1x RapidIO 1.0接口的传输带宽高达3.125 Gb/s[13],可以满足图像数据传输需求。上位机PC将待喷印的原始图像划分为若干图像行,压缩后通过千兆以太网发送给PowerPC。PowerPC接收图像行,解压后通过1x RapidIO 1.0高速串行接口发送给FPGA。FPGA对图像行进行转置,完成后发送到输出端口。
图2 系统结构框图
每个图像行最大为200 MB,PowerPC外接512 MB DDR2 SDRAM,用以缓存2行图像。PC下发给Power-PC以及PowerPC转发给FPGA的图像行是按水平方向传输的,而FPGA需要按垂直方向输出图像行。可见FPGA必须接收一个完整的图像行后,才能对该图像行进行转置和输出。因此,若要实现FPGA连续输出已转置的图像行,FPGA必须同时处理至少两个图像行。即接收一个图像行的同时,转置输出另一个图像行。在保证输出连续的前提下,为获得更高的输出带宽,本设计使FPGA同时处理三个图像行。为FPGA例化三个独立的DDR2控制器,每个控制器外接256 MB DDR2 SDRAM,每个DDR2控制器对应一个图像行,发挥了FPGA接口丰富、使用灵活的优势。
FPGA的总体架构如图3所示,RapidIO控制器接收图像行,经过输入分配器依次送入三个缓存DDR2,每个DDR2只存储一个完整的图像行。为提高DDR2控制器的读写效率,将图像行先划分为特定大小的图像块,再依次传输图像块到各DDR2对应的转置器进行转置。最后,输出分配器依次输出三个DDR2里转置完毕的图像行到输出端口。输入分配器写入DDR2和输出分配器读取DDR2的次序均为DDR2_1、DDR2_2、DDR2_3、再循环。
图3 FPGA总体架构图
各DDR2控制器的工作过程均分为三个阶段:第一阶段为连续写入一行图像,第二阶段为分块转置图像行,第三阶段为读出已转置图像行。设三个阶段对应的数据处理带宽分别为νwrite、νrotate和νread。三个DDR2控制器协同工作的过程如图4所示,且系统的带宽瓶颈在分块转置阶段(即νrotate<νwrite且νrotate<νread)。由图4可见,要使系统达到稳定的输出带宽νread,必须满足以下两个条件:
图4 三个DDR2控制器协同工作流程图
FPGA以图像行为单位转置待喷印的图像数据。为高效率地读写DDR2,将图像行划分为64 bit×64 bit的块,使一次突发传输的位宽(DDR2控制器的数据位宽为16 bit,突发长度为4)等于图像块的长和宽,均为64 bit。再依次从DDR2读取图像块,送入FPGA内部进行转置,转置完成后存回原来的DDR2地址空间。因此,原始图像行的长和宽必须是64 bit的整数倍,若不是,则填0补足。图像行块划分和分块转置的示意图如图5所示,按水平坐标轴自左向右,图像行在DDR2中连续存储,存完一行像素再存下一行像素。
图5 图像行块划分和分块转置示意图
待全部图像块转置完毕,即可从DDR2读出转置后的图像行。设B表示一个已转置图像行里第i行、第j列的一个图像块,lk表示B的第k行,则DDR2的读取顺序可用伪代码表示为:
每输出一个lk都是一次突发传输。按此跳跃地址、突发传输的读取方式,输出的数据即为转置的图像行。
总之,DDR2中一行图像的转置处理分为连续写入、分块读取、分块写入、跳跃读出四个阶段。首先连续写入一个完整的图像行,再分块读取到FPGA内部的缓存作转置处理,然后将转置完毕的图像块回写到DDR2中的原地址空间,最后跳跃读出转置图像行。DDR2的工作状态如图6所示,本系统还支持旁路功能,若不需要转置,则直接连续读出图像行。
图6 DDR2控制器工作状态
FPGA以64 bit×64 bit的图像块为单位转置图像行,转置流程如图7所示。第一步从DDR2依次读取图像块的每一行写入缓存FIFO(位宽64 bit);第二步读取FIFO,依次写入寄存器R1、R2、…、R64(位宽均为64 bit);第三步同时左移一位R1~R64,将移出的最高位组合成一个64 bit的数据写入Block RAM;经过64次移位和组合,图像块数据全部写入Block RAM;下一步读取Block RAM写入缓存FIFO(位宽64 bit);最后读取FIFO写入DDR2原地址空间,图像块的转置操作完成。相对于通用处理器,此按位转置方法发挥了FPGA并行处理和逻辑运算能力强的优势。
图7 图像块转置流程
本系统三个DDR2控制器各自拥有独立的转置单元,故一共需要192个64 bit的寄存器。这种设计既消耗了大量的FPGA资源,又降低了效率,因为每次开始移位前需要等待64个时钟周期来从FIFO读取图像块到寄存器组。为节省资源,本设计里将图像块划分为4个16 bit×64 bit的子矩阵。对每个子矩阵依次进行移位和组合操作,因而只需16个64 bit的寄存器。为提高效率,又额外定义了16个64 bit的寄存器。使一组16×64 bit的寄存器在写入数据时,另一组在移位、组合。两组寄存器交替处于写入或移位组合的状态,保证待转置图像块数据写入、移位、组合操作的连续进行。
待图像块全部移位写入Block RAM,即可从Block RAM读出转置的图像块。若写入Block RAM的地址依次为0~255(64×64/16=256),则读取Block RAM的地址顺序如表1所示。回写DDR2时,需要将读取的16 bit数据拼接为64 bit数据。
表1 Block RAM跳跃读出地址顺序
为进一步提高效率,利用FPGA丰富的Block RAM资源,定义Block RAM的容量为2×256×16 bit。将Block RAM划分为两部分,分别为低256地址位和高256地址位。使一个Block RAM在写入时,另一个在读取。两部分Block RAM交替处于写入或读取的状态,保证已转置图像块数据写入、读取的连续进行。
图像数据写入带宽νwrite和转置带宽νrotate是衡量数据处理系统性能的关键指标。测试时,先在PC上生成随机图像数据,再经游程编码算法压缩后[14],通过千兆以太网发送给PowerPC,最后将PowerPC解压的图像数据通过RapidIO接口发送给FPGA。数据处理系统的具体参数如表2所示。
记录PowerPC的RapidIO接口发送完大小为St的图像数据所用的时间Tw,可计算出νwrite=St/Tw;使用Xilinx公司的EDA软件ISE 12.4的ChipScope工具,观测转置一个64 bit×64 bit图像块所用的时间Tr,可计算出νrotate=64×64/Tr。测试结果如表3所示。
表2 数据处理系统参数
表3 写入带宽νwrite和转置带宽νrotate测试
其中Sl表示一个图像行的大小,νread_p表示匀速区间的输出带宽,treversal表示匀变速区间的时长。测试时,数码印花机的相关参数如表4所示[15]。
表4 数码印花机参数
按表4中参数测试出数码印花机的喷印速度νprint高达249 m2/h。由于输出带宽一定时,νprint和喷印的分辨率以及基色数成反比,因此在同等条件下,采用本数据处理系统的数码印花机相对参考文献[6]中分辨率为600 dot/inch×600 dot/inch、6色喷印、最高印速为150 m2/h的DreAM型数码印花机,其性能提升了1.2倍;相对参考文献[12]中分辨率为360 dot/inch×360 dot/inch、8色喷印、印速不超过150 m2/h的各数码印花机,其性能提升了至少3.6倍。实际印花效果如图8所示。
图8 系统数码印花机的印花样图
本文提出了嵌入式PowerPC处理器结合Virtex-5系列高性能FPGA的方案,用以解决数码印花机中大量点阵图像数据的实时按位转置问题。为FPGA外扩出三个独立的DDR2控制器,通过控制器间的协同工作实现了系统输出带宽的最大化。设计出高效的按位转置单元,减小了转置带宽瓶颈的影响。划分出特定大小的图像块,实现了DDR2的高效读写。相比以往PC不连续地转置和输出图像数据,本系统实现了图像数据的实时转置和输出,极大地提高了数码印花机的输出带宽和喷印速度。实验结果显示在相同条件下,采用本系统的数码印花机的性能较PC处理系统显著提升。随着更高性能嵌入式众核处理器和FPGA的出现,本系统可以实现升级。通过进一步提高数据输出带宽,更大幅度地提高数码印花机的喷印速度。
[1]陈浩杰,王金乐.浅析数码印花技术[J].丝网印刷,2007(11):37-38.
[2]鲍璐.数码印花与传统印花[J].丝网印刷,2011(3):22-23.
[3]崔威.数码印花发展之路——数码印花行业的产业化[J].丝网印刷,2011(1):30-31.
[4]李明珠,张庆,余逸男.数码印花的现状及发展趋势[J].染料与染色,2011,48(6):33-34.
[5]凌蓉,陈松,蒲宗耀.纺织品数码喷墨印花技术及发展趋势[J].纺织科技进展,2012(3):2-3.
[6]方泓钊,侯有军,梁天祥.数码喷墨印花技术的研究现状及发展趋势[J].印染助剂,2011,28(9):6-7.
[7]Moser L S.ITMA2003 review:textile printing[J].Journal of Textile and Apparel,Technology and Management,2003,3(3):12-14.
[8]中国印染行业协会.中国数码喷墨印花产业现状与发展前景[J].纺织服装周刊,2012(5):30-31.
[9]Tyler D J.Textile digital printing technologies[J].Textile Progress,2005,37(4):22-24.
[10]Mei Shunqi,Xu Qiao,Zhang Zhiming,et al.The control system and data transferring format of digital printing device[C]//ICIMA 2010.Wuhan,China:IEEEComputer Society,2010:549-552.
[11]Dehghani A,Jahanshah F,Borman D,et al.Design and engineering challenges for digital ink-jet printing on textiles[J].International Journal of Clothing Science and Technology,2004,16(1):262-273.
[12]张运生.纺织品喷墨印花工艺分析[J].印染,2009,35(3):22-23.
[13]黄亮,刘福岩.基于RapidIO和存储映射的高速互联网络[J].计算机工程,2008,34(14):116-117.
[14]彭喜元,俞洋.基于变游程编码的测试数据压缩算法[J].电子学报,2007,35(2):197-201.
[15]Kyocera Corp.Inkjet printheads[EB/OL].[2012-09-12].http:// global.kyocera.com/prdct/tfc/pdf/07_08.pdf.
ZHANG Li1,ZHOU Fan1,HU Yinfeng2
1.Institute of Advanced Digital Technology and Instrument,Zhejiang University,Hangzhou 310027,China
2.The Navy Deputation in Residence of Hangzhou,Hangzhou 310012,China
In general,the output bandwidth and printing speed of digital inkjet printer are limited as PC isn’t capable of transposing large quantities of image data bit-by-bit in real-time.A new high-speed data processing system based on PowerPC processor and Virtex-5 series FPGA is proposed,and a high-efficiency transposition method is achieved by using FPGA. Three independent DDR2 controllers are instantiated inside FPGA and system output bandwidth is improved by the collaborative work among these controllers;bit-by-bit transposition unit is designed,image data is divided into small blocks and these blocks are efficiently read or written through burst transmission of DDR2 controllers.Performance testing results demonstrate that output bandwidth of FPGA is up to 327 Mb/s and printing speed of digital inkjet printer reaches 249 m2/h,which is much faster than PC processing system under the same conditions.
digital printing;image data transposition;real-time;printing speed;Field-Programmable Gate Array(FPGA)
A
TP334.8+8
10.3778/j.issn.1002-8331.1211-0202
ZHANG Li,ZHOU Fan,HU Yinfeng.Real-time image data transposition method for high-speed digital inkjet printer.Computer Engineering and Applications,2014,50(6):35-39.
国家科技支撑计划项目(No.2009BAF39B03)。
张立(1988—),男,硕士研究生,主要研究领域为嵌入式仪器系统设计;周凡(1978—),男,博士,副教授,主要研究领域为电子信息技术;胡银丰(1965—),男,高工,主要研究领域为嵌入式系统。E-mail:lizhang528@gmail.com
2012-11-19
2013-01-30
1002-8331(2014)06-0035-05
CNKI网络优先出版:2013-03-19,http://www.cnki.net/kcms/detail/11.2127.TP.20130319.1424.003.html