论文部分内容阅读
目前,螺旋锥束CT(Cone-Beam Computed Tomography)在医学影像领域内的关注程度越来越高,因为螺旋锥束CT在三维CT图像重建方面具有许多独特的优势。螺旋锥束CT图像重建的精确算法中最具代表性的是Katsevich算法,它可以对重建图像进行精确重建,但是该算法的重建公式复杂,同时该算法所需要的数据量非常大,从而导致了成像速度慢,成为该算法在实际推广应用中的瓶颈之一。本文是基于AVX(高级矢量扩展)指令集的C++语言,即在C++语言的基础之上增加了许多AVX指令集的新特性。本文的研究内容主要包括以下几个方面:1、对Katsevich算法成像中的各个步骤中数据的并行处理进行相关分析,并提出了并行化的设计方案,特别是对算法中的希尔伯特变换模块的并行化采用了FFT与IFFT的方案,在FFT的设计过程中为了数据的并行性,提出了基于混合基的方法和分裂基的方法相结合的方法来实现FFT运算,从而使得希尔伯特变换能够充分发挥AVX指令集的并行性。2、通过前面分析所得出的并行化设计方法,对Katsevich重建算法中的相关模块进行基于AVX指令集的设计与实现,特别是在设计与实现希尔伯特变换模块时,对16点的分裂基的FFT,通过优化旋转因子减少了内存的使用。3、完成了各个模块的仿真验证:首先通过对各个模块的运算数据的结果与课题事先完成基于C++的重建算法得到的数据进行对比验证;然后对生成的重建图像与基于C++的重建算法生成的图像进行了对比验证,最后对整个基于AVX指令集实现的重建算法进行速度测试。我们的基于AVX指令集的算法通过旋转360度获得的512×512×265的数据来重建一幅512×512的图像所使用的时间为16.4秒,该速度比纯C++实现的算法提高了3倍左右。