![]() |
|
||||||||||||||
| . 网站首页 . 新闻 . 新品 . 方案 . 专访 . 活动 . DSP . EDA . 评测 . 技术文库 . 会员区 . 商城 . 服务导航 . 邮购 . 资源 . 社区 . | ||
|
||
|
|||||||||||
| 一种基于FPGA实现层析重建的加速方法 | |||||||||||
作者:朱彦华,… 文章来源:现代电子技术 点击数: 更新时间:2008-9-5 ![]() |
|||||||||||
|
朱彦华,刘仲寿,张志敏,常方飞 (南昌航空大学 自动化学院 无损检测教育部重点实验室 江西 南昌 330063) 1 引 言 发射光谱层析技术(Emission,Spectral Tomography,EST)是结合发射光谱测量和光学层析技术(Optical Computed Tomography,OCT)的一种不干扰待测场分布的新型诊断测量技术,他在热物理量测试、等离子体诊断等领域具有广泛的应用前景,是机械、冶金、航空航天等领域不可缺少的检测技术。为了顺应工业技术的需求,现在层析技术在向实时化方向发展。然而,由于EST技术一直都是以密集的数字信号处理为基础的,其运算量是非常庞大,因此,让通用计算机来做三维流场重建工作是比较困难的。而FPGA(现场可编程辑程逻辑阵列)技术经过十几年的发展,正日趋成熟,目前在他与市场磨合的过程中,他的优势越来越明显,可以预测,在不久的将来他必将在工业技术上占据重要地位,并且他有个突出的优点就是可以实现并行处理,即速度快,效率高,用他来实现发射光谱层析技术,是向实时化迈进的一个有效方法。本文就基于FPGA实现SIRT算法展开讨论,首先对运算量进行估计,然后对数据进行分析,发现数据量庞大且均为浮点数,这给运算的实时性带来严峻的挑战,本文就此提出了一种加速FPGA实现实时层析的一种方法,该法将从数学的角度考虑数据的特点,同时考虑到FPGA所具有的特点,并将二者有机结合,达到加速运算的效果。整个设计在QuartusⅡ5.1软件平台上进行。 2 SIRT算法介绍 SIRT算法迭代格式:
其中P是测量数据,WT是投影矩阵W的转置,λ为松弛因子,F是重建量。由公式可见,SIRT算法迭代格式简单并且因为每个像素的校正值实际是通过该像素的所有射线和的误差值之累加,而不是只与一条射线有关,由于每一像素的校正值是所有过该像素射线的共同贡献,一些随机误差被平均掉了,这也是SIRT能有效地抑制测量数据中噪声的根本原因。 分析SIRT算法,估算进行一次迭代所需的计算量。如果三维图像精度是26×26 pels,对于一层图像的重建他要求采集系统送入4×26 pels的数据,这一组数据算法中称为测量矩阵p。另外算法中提及的投影矩阵W和WT维数分别为104×676和676×104,重建图像f为一个676×1的矩阵。共需要104×676+676×104+104×676+676即211 588次浮点乘法运算,103×676+675×104+103×676即209 456次浮点加法运算和104次浮点减法运算。 在此没有计算松弛因子的影响所带来的计算量,假设松弛驰因子为1,通过对运算量的估算,可以预见将产生相当庞大的数据量,这给运算的实时性带来严峻挑战。必须想办法来加速,才有可能实现实时处理。因为在迭代公式中,W,P,F均为矩阵,故可从数学运算的角度来改善运算速度。 3 矩阵分块原理 假设有下面两个矩阵a和b,需要完成a?b的操作。
按照前面的分块思想,a矩阵和b矩阵分块之后为如下子矩阵:
假设a?b的结果等于c,那么c用ax,ay,bx和by表示如下:
因此,原本需要求的a?b就可以变为求ax?bx和ay?by,在FPGA中ax?bx和ay?by是可以并行处理的而且之后求他们的和的运算也是可以并行处理的,所以矩阵分块之后系统的处理速度会成倍提高,在对更高处理速度需求的情况下还可以将矩阵分成更多的块以并行处理。 4 矩阵分块在实现SIRT算法中的应用 为此在实现两矩阵相乘运算的时候,我们为矩阵分块,分2路或4路或更多路数并行处理,加快运算速度。根据SIRT算法的特点和矩阵分块原理,显然分的路数越多,处理速度就越快,但由于分的路数越多,分配的硬件逻辑资源也将会越多,普通计算机在系统设计中会难以应付,因此这里打算将每个矩阵分成2路并行处理。分块为:
根据以上论述,即可把W,WT,F,P均存放于双口Ram中,在各自的地址控制器控制下,输出的两路数据同时参与运算。根据FPGA的并行运算优势,我们来估算一下速度的改善,假设F和W各有10个数据,若直接相乘并累加则需要10个时钟脉冲,若采用矩阵分块方法并结合FPGA的并行运算优势,每路各分5个数据,每路同时在第5个时钟脉冲结束就得出结果,最终结果为两路所得结果的和,这样还需1个时钟脉冲,在不考虑延时的情况下,只需6个时钟脉冲就可得出结果,这样速度将得到近一倍的提高。可以想到在数据量庞大的情况下,速度确实可以提高一倍。 对于WT,W,F和P的地址控制器,可以由Verilog编程生成。由于篇幅所限,在此不再赘述。 在此,只讨论W*F的实现以及所占用的资源问题,其他的矩阵相乘与此类似。 若直接相乘,流程如图1所示。
通过编译,占用资源情况如图2所示。
通过编译,分块法占用资源如图4所示。 由以上流程图及编译资源报告图可见,虽然矩阵分块使速度得到很大提高,但却多用了一个乘法器,一个加法器和一个累加器,这样就会在一定程度上增加硬件成本。但由于实时层析重建对速度要求很高,故可以牺牲一部分硬件资源来换取速度的提升,这也是“面积换速度”的具体体现,采用矩阵分块是提高运算速度的一个有效方法。
5 结 语 本文提出的分块矩阵在FPGA实现发射光谱层析重建上的应用,把矩阵分块理论的数学原理和FPGA的并行运算优势有机结合,使得像发射光谱层析这样密集的数字信号处理在FPGA上实现时,在硬件资源不变的情况下,有效提升运算速度,不仅使发射光谱层析(EST)技术向实时化更近了一步,同时也为在FPGA上实现其他数据量庞大的数字信号处理时速度的提升和资源的优化给出启示,即在硬件资源有限的情况下,可以充分利用数学理论并结合硬件资源现有的优势实现设计的目标 |
|||||||||||
| 欢迎点击进入:TI德州中文网 (国内唯一针对TI应用的中文技术网站) 文章录入:admin 责任编辑:admin | |||||||||||
| 【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 | |||||||||||
| 最新热点 | 最新推荐 | 相关文章 | ||
| 没有相关文章 |
| 网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!) |
| | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 网站公告 | 管理登录 | | |||
|
|