徐潇审 姜宏旭 肖朝升
(北京航空航天大学 计算机学院,北京100191)
随着遥感技术的飞速发展及空间传感器分辨率的不断提高,遥感数据量成倍增加,已达到Gbit级甚至更高的计量单位;此外,遥感设备在空间环境温度、气压、宇宙射线等因素的影响下,故障率较高.针对上述应用条件,遥感图像压缩处理系统应具备高效处理、可靠运行、高速通信3个基本要求.目前实现图像压缩的硬件处理系统可分为3类:①采用全定制专用集成电路(ASIC,Application Specific Integrated Circuit),它对算法进行单独硬件处理,具有外部RAM和外围接口,能获得良好的处理效果,满足高速通信的要求,现有图像处理ASIC芯片(如AD公司的ADV212)得到了很好的应用[1],但无军品级和宇航级,可靠性方面存在隐患,不适合用于遥感设备;②采用通用数字信号处理(DSP,DigitalSignal Processing),DSP具有先进的哈佛和流水结构,适于计算的乘加单元和优化的内部结构设计,使其得到了优异的处理性能,是遥感压缩中较好的解决方案[2],但由于 DSP外围接口性能的限制,DSP间的数据交互以及任务分配协调困难,难以满足高速通信的要求;③采用半定制现场可编程门阵列(FPGA,Field-Programmable Gate Array),FPGA相当于可编程ASIC,又比DSP内部资源丰富,可以达到较大的数据吞吐量,且保密性好,适合于遥感压缩设备,但现有的FPGA方案[3-4]多为特定的结构,只解决了中低数据量的快速压缩,无法满足海量遥感图像的高速压缩应用要求.
因此,本文提出一种基于多FPGA的压缩处理器结构,包括 4片 Virtex-5 FPGA和 2片Spartan-3 FPGA,针对该结构分别给出了高并行压缩处理机制、容错性设计以及高速通信策略.并将此结构应用于遥感图像高速压缩系统中,压缩性能达到1.6 Gbit/s以上.
海量遥感图像压缩任务需采用高速高保真的压缩算法.压缩算法应尽可能地保持图像细节,保证弱小目标不丢失,同时应结构简单、易于硬件流水和并行处理,具体采用基于小波变换和基于上下文的位平面预测编码并算术编码的压缩算法[5].该算法一方面利用基于小波域中纹理失真敏感性模型的视觉量化方法,不均匀量化各频带各系数块,提升了恢复图像的主观质量;另一方面通过改进位平面预测模型,利用系数块内及块间的多维相关性,进一步提升了熵编码的效率.因此,在高倍压缩条件下与JPEG2000相比,该算法能够实现目标无畸变、无明显失真、小目标不丢失,能将PSNR值提高0.5~0.7 dB.另外,由于采用了定点化的小波变换和无乘操作的熵编码,该算法仅有简单的整数运算和移位操作,压缩速度快、易于数字逻辑电路高速实现.
基于上述算法的遥感图像压缩任务从功能上可划分为数据获取、压缩处理和码流输出3个模块,压缩处理模块又可分为小波变换、量化、预测、位平面编码和算术编码5个单元,如图1所示.
由图1可得知,该遥感图像压缩任务具有2个特点:①3个模块的处理任务是串行执行,模块间耦合性弱;②压缩处理模块执行步骤复杂,各单元间数据关联性强,通信重叠性高.
图1 海量遥感图像压缩处理任务的处理流程
针对上述特点,考虑到单个FPGA处理器难以完成海量遥感图像高速压缩的实际情况,较优的方案是采用多FPGA并行压缩.在多FPGA处理器的连接方式方面,经典的并行结构包括网孔、线形、树形、星形等,每种结构适配于不同种类的压缩算法.网孔结构[3](如图2a所示)具有较好的扩展性,任务并行度高,但遥感图像压缩3个任务模块耦合性弱,特别是图像获取和码流输出2部分很难进行任务划分,只能由单个FPGA处理,采用此结构会造成任务分配不均衡,出现并行等待现象;而线形结构[4](如图2b所示)中,多处理器单元针对性强,模块化高,资源可有效利用,从而达到良好的加速效果,但是难以满足遥感图像压缩处理模块内数据关联性强、通信重叠性高的特点,若采用此结构会加大芯片级的通信开销,通信路径长,降低压缩处理效率.
图2 多FPGA并行计算体系结构
结合网孔结构并行度高和线形结构针对性强的共同特点,设计了一种混合式的多FPGA处理器结构,如图2c所示.共由6片FPGA组成,其中图像获取、压缩处理和码流组织3个处理单元线形连接,适合压缩任务中模块间耦合性弱的特点;并将压缩处理单元设计为网孔结构,采用4片同构FPGA,每片同构FPGA执行整个压缩处理算法,使各单元在FPGA片内直接通信,解决了压缩任务中压缩处理模块内各单元间数据关联性强的问题,4片FPGA并行实现对海量遥感数据的高速压缩.为了便于描述,码流获取FPGA简称为A1,码流组织FPGA简称为A2,4片处理FPGA统称为 FPGA-P,分别简称为 P1,P2,P3,P4.
混合式处理器结构的解决方案满足了遥感图像压缩任务模块间耦合性弱及压缩处理模块内关联性强的特点,但是要实现海量数据的高速可靠压缩,仍需在软件层考虑多处理器的高并行调度机制;在硬件层考虑结构间的容错性设计;在通信接口层考虑海量数据的高速通信策略.针对以上3方面内容,分别逐一介绍.
使用多处理器的目的是为了获取高并行,如何将海量数据压缩任务分配到多处理器并行处理并合理回收是高并行压缩处理机制的设计难点.
高并行的关键就是让并行处理器达到负载均衡,针对混合式多FPGA的结构特点,较优的负载均衡策略是让4片同构FPGA运行相同的压缩算法,同时处理相同的数据量,所以需要对遥感图像进行平均分配;为了保证解压后图像拼接的正确性,压缩后码流的输出顺序还必须与压缩前数据拆分顺序一致.为此给出了高并行压缩处理的两条规则:数据的均衡分发和码流的规则回收.
遥感数据均衡分发流程如图3所示,A1作为数据分发处理器来实现数据的分发调度以及传输功能.图像数据进入A1之后,存入数据缓存中,数据划分模块按照一定的策略对图像数据进行块大小平均划分,任务调度模块接着对划分后的数据块顺次调度,并通知总线控制器将数据传送至FPGA-P进行压缩处理.
图3 数据均衡分发与顺序回收示意图
码流的顺序回收由A2完成.在此过程中,4片FPGA-P是按照异步方式将码流传入A2,但传入时钟初始时刻并不确定,因此在A2内采用FPGA内嵌异步软先入先出队列(FIFO,First Input First Output)的机制来进行数据回收,实现4路数据的时钟锁相功能;另外,对于固定尺寸的图像块而言,遥感压缩算法的处理速度略有不同,高频信息丰富的图像处理速度稍快[5],为了保证并行同步性,任务监听机通过监听FIFO内的数据量来判断4片FPGA-P的运行情况,并通过反馈信号通知A1中数据调度模块,对数据分发时序进行微调,实现整个过程的闭环;最后,路选根据当前任务的完成情况,按照顺序将码流依次输出,这样便形成了基于软FIFO的闭环回收机制.
此并行机制针对混合式多FPGA处理器的结构特点,将数据进行平均分配,发挥同构FPGA的资源利用率,提高并行效率;基于异步软FIFO的回收机制保证了码流回收的同步性和一致性,使整个压缩处理过程具有高效并行性.
在混合式多 FPGA处理器中,具有 6片FPGA,FPGA间具有多条通信链路,连接相对复杂,在结构容错性设计中,应充分分析其可能故障情况,保证系统可靠性.
FPGA-P作为处理器结构中的主处理器,其故障模型有2种:一种是处理器故障(本文只讨论处理器完全失效,且FPGA重构程序不能恢复正常性能的情况),另一种是链路故障.当处理器出现故障时,需要考虑的是删除故障结点,并保证其它结点正常工作;当链路出现故障时,应设计冗余链路,保证数据的传输通路.
根据以上2点考虑,将4个FPGA-P的连接设计为独立链路来解决链路故障问题,并将FPGA-P间设计为全连通的连接方式,用以链路故障后的桥接通信.用无向图模型表示多处理器的连接方式,如图4所示.设图 G=(V(G),E(G))表示多处理器互连网络,V(G)表示处理器集,称为结点集,E(G)表示通信链路集,称为边集.处理器单元称为结点,而通信链路称为边.
图4 多FPGA处理器级联抽象图模型
采用确定性方法[6]通过网络拓扑结构的连通度评价多处理器系统的容错性.对于一个特定的多处理器互连网络,用G表示,假定其连通度为k(G),则该多处理器互连网络最多可以允许k(G)-1个处理器发生故障,此时互连网络的连通性仍然可以保证.如图4所示,用k(G)表示图G的连通度,则k(G)=4.由于4个FPGA-P结点都与 A1,A2结点连通,所以,任意删除某个FPGA-P结点,仍然可以保持系统连通性,其代价是系统性能降低.例如删除图4中的P1,P2和P3三个结点,结点 A1,P4,A2依然保持连通,其连通度k(G)=1,系统处理性能为原有性能的1/4,可以保证对较慢速率或部分图像数据的压缩处理.另外,由于FPGA-P结点间两两相连,若删除与A1或A2相连的某条边,其对应结点可以利用其它节点作为通信桥接来保证其连通性,此时FPGA-P结点正常工作,处理性能基本没有变化.
结构容错性设计同时解决了处理器故障和链路故障两个问题,使系统在正常工作的同时尽量保证处理性能,提高了系统可靠性.
在遥感图像高速压缩过程中,FPGA需要对数据进行频繁的组织、搬运和计算,只靠有限的片内空间无法满足海量数据的处理要求,必需借助片外存储器来实现.这便引出了FPGA高速通信的2个设计难点:FPGA与外部存储器的高速通信方式以及FPGA之间的高速通信接口.
利用片外存储器进行通信的方式有2种:共享存储系统和分布式存储系统.共享存储系统是指多片FPGA共用一套总线和共用外部存储器,分时使用存储器,系统虽然节约了成本和功耗,但是难以实现多FPGA与存储器的频繁通信,导致通信等待,造成性能下降;分布式存储系统是指每个FPGA具有独立的总线和存储器,存储器服务于指定FPGA,较大程度的发挥了存储性能.因此,针对遥感图像高速压缩中频繁通信的特点,对6片FPGA分别采用独立外部存储芯片DDR2 SDRAM以提高通信效率.
在FPGA间的通信方面,必须有灵活高效的通信接口才能满足海量数据的高并行压缩,容错性设计中的链路桥接设计致使每条链路至少达到两或多路的数据通信要求.目前常用的TTL电平并行总线技术由于总线间串扰和外部干扰,限制了实际的传输速率和可靠性;而低电压差分信号(LVDS,Low-Voltage Differential Signaling)串行总线技术采用3.5mA的恒流源模式驱动信号发送,保证了信号稳定性,具有传输速度快、抗干扰能力强的特点,单路 LVDS信号最高传输速率可达400 Mbit/s,更适合高速链路通信;另外,Xilinx公司所推出的RocketIO技术[7]采用两对差分对来实现Gbit级的速度传输,在满足通信性能的同时,还保证了PCB布线规模.因此,采用LVDS串行总线和RocketIO技术共同实现FPGA间高速数据通信,其连接方式如图5所示.
图5 FPGA间通信接口示意
考虑遥感图像压缩任务的处理规模和成本,采用两片Xilinx公司一般性能的Spartan-3 FPGA分别实现图像获取与码流组织2个任务,采用4片Xilinx公司高性能的Virtex-5 FPGA实现高速压缩任务.其中,Spartan-3与 Virtex-5之间采用LVDS的传输方式,4路总线相互独立,互不影响,每路采用8对串行差分对总线,按照150 MHz时钟计算,每路速率可达到1.2 Gbit/s(150 MHz×8 bit);4片Virtex-5之间采用全连通的RocketIO连接方式,两两之间具有一组RocketIO通道,可以进行全双工的串行差分传输,通信速率达到1.25 Gbit/s.
各FPGA独立DDR2存储器的设计满足了压缩处理器与外存频繁通信的要求,FPGA间2种通信接口均可达到1 Gbit/s以上的通信速率,保证了海量遥感图像压缩中的高速数据通信.
设计专用的遥感图像发送卡,模拟遥感相机的数据格式对以多FPGA实现的硬件系统进行测试,采用基于小波变换和基于上下文的位平面预测编码并算术编码的压缩算法,压缩倍率16∶1,图6是测试图像与解压图像片段的对比结果.
通过与压缩算法的软件实现进行比较,硬件系统的压缩结果与软件结果完全一致,恢复图像相比原图无视觉失真,不同的测试图像计算平均PSNR(峰值信噪比)值在33 dB以上.
图6 测试图像与解压图像
测试压缩处理单元中4片Virtex-5 FPGA的并行性能.使用1片Virtex-5对16 Gbit大小的遥感测试图像进行压缩,记录压缩耗时为37.24 s,同时使用4片Virtex-5对相同的测试数据进行压缩,记录压缩耗时为 9.96s,根据 Amdahl[8]定律得出:4个Virtex-5的并行处理加速比Sp=T1/Tp=37.24/9.96=3.74倍,平均每个Virtex-5的并行效率Eff=Sp/p=93.5%.
对以多FPGA实现的硬件系统进行整体压缩性能测试.通过遥感图像发送卡发送不同数据量的遥感图像测试数据,分别记录压缩处理时间,得出整体压缩性能,测试结果如表1所示.可见,不同数据量的遥感图像测试用例,其压缩时间与数据量成正比关系,系统的整体压缩性能稳定在1.6 Gbit/s以上.
表1 整体压缩性能测试结果
使用确定性方法在理论上分析多FPGA处理器结构容错性能,具体见本文2.3节,本节通过实验测量的方法评测系统容错性指标.根据故障模型的不同,设计压缩处理单元中FPGA(FPGA-P)结点失效和链路失效2种用例,测试遥感压缩系统数据吞吐率,如表2所示.
表2 系统容错性测试结果
由表2可见,结点失效后系统可以正常工作,但性能与正常处理器的个数成正比;根据2.4节可知,每条链路的传输速率为1.2 Gbit/s,所以当失效3条之后处理性能下降较大,而链路在失效2条之内时,整体性能较为稳定.本文所设计的多FPGA处理器同时支持处理器故障和链路故障的容错,系统可靠性强.
本文设计了一种适用于海量遥感图像高速压缩的多FPGA处理器结构,根据遥感图像压缩任务中模块间松耦合和模块内强关联的特点,采用6片FPGA芯片,给出数据均衡分发和基于FIFO的闭环回收机制,实现了处理器结构的容错性设计,利用外部存储方式提高了通信效率,并通过LVDS与RocketIO两种连接方式保证数据传输吞吐量.应用测试结果表明:同构FPGA的并行效率达93.5%,压缩处理板可达1.6 Gbit/s以上的处理速率,恢复图像质量好,并具有较高的可靠性.
References)
[1]Hu H.A real-time high resolution image compression system based on ADV212[C]//2009 IEEE International Conference on Image and Signal Processing(CISP).Piscataway,NJ:IEEE Inc,2010:1-4
[2]葛宝珊,李波.基于多DSP的遥感图像压缩系统[J].计算机工程与设计,2007,28(21):5139-5140,5155 Ge Baoshan,Li Bo.Remote sensing image compression system based on multi-DSP[J].Chinese JournalofComputer Engineering and Design,2007,28(21):5139-5140,5155(in Chinese)
[3] Tao Qu,Cong Tang,Zhang Yuyu.The design and implementation of the core algorithm of embedded real-time image compression technology[J].Journal of Key Engineering Materials,2011,480/481:1618-1622
[4]熊君君,王贞松.星载SAR实时成像处理器的FPGA实现[J].电子学报,2005,33(6):1070-1072 Xiong Junjun,Wang Zhensong.The FPGA design of on board SAR real time imaging processor[J].Chinese Journal of Acta Electronica Sinica,2005,33(6):1070-1072(in Chinese)
[5]文义红.面向遥感图像压缩的视觉量化与位平面编码的算法研究[D].北京:北京航空航天大学计算机学院,2011 Wen Yihong.The study of visual quantization an bit-plane coding algorithms for remote-sensor image[D].Beijing:School of Computer Science and Technology,Beijing University of Aeronautics and Astronautics,2011(in Chinese)
[6] Bouriciusw G.Reliability modeling for fault to lerant computers[J].IEEE Tranctions on Computers,1971,C-20:1306-1311
[7] Virtex-5 family overview[DB/OL].San Jose:Xilinx Inc,2009[2009-02-06].http://www.xilinx.com/support
[8] Saripalli V.Exploiting heterogeneity for energy efficiency in chip multiprocessors[J].Emerging and Selected Topics in Circuits and Systems,IEEE Journal on,2011,1(2):109-119