发明名称 基于FPGA的CT图像重建硬件加速方法
摘要 本发明涉及一种基于FPGA的CT图像重建硬件加速方法;通过如下步骤实现:步骤1、上位PC机将探测器采集的投影数据传入FPGA中的PCI-E通信模块,PCI-E通信模块接收的投影数据通过总线转换模块进入预处理模块中,预处理模块对接收的投影数据依次进行加权和滤波计算;步骤2、DDR2控制模块将经过加权和滤波预处理的投影数据写入DDR2SDRAM外部存储器中,系统控制模块针对每次重建的区域通过DDR2控制模块从DDR2SDRAM外部存储器中取出相应的数据,再送入反投影模块中进行反投影计算,反投影模块计算后的数据再传回上位PC机;本发明提供了一种计算速度快的基于FPGA的CT图像重建硬件加速方法。
申请公布号 CN102567944B 申请公布日期 2013.10.30
申请号 CN201210061660.1 申请日期 2012.03.09
申请人 中国人民解放军信息工程大学 发明人 闫镔;张瀚铭;刘拥军;李磊;潘冬存;王超;张峰;邓靖飞
分类号 G06T1/20(2006.01)I 主分类号 G06T1/20(2006.01)I
代理机构 郑州大通专利商标代理有限公司 41111 代理人 陈大通
主权项 一种基于FPGA的CT图像重建硬件加速方法,其特征是:含有上位PC机、FPGA和DDR2SDRAM外部存储器,FPGA中含有PCI‑E通信模块、总线转换模块、预处理模块、DDR2控制模块、反投影模块和系统控制模块,系统控制模块控制PCI‑E通信模块、总线转换模块、预处理模块、DDR2控制模块和反投影模块的工作,通过如下步骤实现CT图像重建硬件加速:步骤1、上位PC机将探测器采集的投影数据通过PCI‑E接口传入FPGA中的PCI‑E通信模块,PCI‑E通信模块接收的投影数据通过总线转换模块进入预处理模块中,预处理模块对接收的投影数据依次进行加权和滤波计算;步骤2、DDR2控制模块将经过预处理模块加权和滤波预处理的投影数据写入DDR2SDRAM外部存储器中,系统控制模块针对每次重建的区域通过DDR2控制模块从DDR2SDRAM外部存储器中取出相应的数据,然后送入反投影模块中进行反投影计算,反投影模块计算后的数据再依次通过DDR2控制模块、总线转换模块、PCI‑E通信模块和PCI‑E接口后传回上位PC机;反投影计算采用了基于编号查找表的数据预取方法,基于编号查找表的数据预取的步骤为:步骤2.1、对投影数据按纵轴进行分块,总分块数目为N,每块对应一个编号i,i=1,2,...N;再对重建区域进行分块,总分块数目为M,每块对应一个编号j,j=1,2,...M;N和M均为大于等于1的自然数;步骤2.2、计算每块重建区域对应的投影数据范围,该范围对应的编号为istart~iend,其中,1≤istart≤iend≤N;建立查找表A,以编号j作为该查找表A的地址,将编号为j的重建区域对应的投影数据编号的开始值istart和终止值iend存入查找表A中地址为j的空间中;步骤2.3、在反投影计算时,将投影数据先根据要重建的区域从DDR2SDRAM外部存储器预取到FPGA的内部缓存中,该内部缓存分为P个部分,每个部分对应一个编号x,x=1,2,...P,且内部缓存的每部分和内部缓存对应的投影数据的每块大小相同;建立编号查找表B,将编号为x的内部缓存 中对应的投影数据编号kx存入查找表B中地址为x的空间中,其中,1≤kx≤N,查找表B内存储的编号的集合为W={kx,x=1,2,...P};P为大于等于1的自然数;步骤2.4、当重建第一块区域时,从DDR2SDRAM外部存储器中取出相应的投影数据存入FPGA的内部缓存中,而重建第一块区域以后的区域时,先根据当前重建区域的编号j寻址查找表A得到投影数据编号的范围起始值istart和iend,对比查找表B中存储的投影数据编号集合W,将查找表B中缺少的编号对应的投影数据从DDR2SDRAM外部存储器中取出,存入FPGA的内部缓存中已不在当前范围的编号对应的数据空间中,同时用当前的投影数据编号i’替代查找表B中原先的编号kn的数值;然后,FPGA对从DDR2SDRAM外部存储器读到FPGA内部缓存中的数据进行反投影处理;编号kn在W中却不在istart~iend内,1≤n≤P,1≤kn≤N;FPGA在进行FDK算法计算时,加权和滤波计算在投影数据传输的过程中通过流水方式实现;反投影计算时采用了按分度并行流水计算和分块重建的方法:按不同的旋转分度将背投影分解为多个线程并行处理,各线程计算结束后再进行归约计算,求得重建数据;各线程在反投影计算时沿旋转轴方向将待重建区域分成若干块,重建其中一块时仅从DDR2SDRAM外部存储器取出对应的投影数据进行重建操作。
地址 450002 河南省郑州市金水区俭学街7号