libparallelproj docs¶
libparallelproj is a high-performance library for 3D forward and backward projection, supporting both CUDA and non-CUDA builds with a minimal Python interface.
The library implements the Joseph 3D ray-driven projection algorithm [Jos82] with support for:
Non-TOF projections: Standard forward and back projection
TOF sinogram projections: Time-Of-Flight sinogram-based projections
TOF listmode projections: Time-Of-Flight listmode (event-by-event) projections
github repository: https://github.com/KUL-recon-lab/libparallelproj
Important
Key Features:
C API: Direct support for host arrays, CUDA managed arrays, and device arrays, enabling seamless integration with different memory models
Python API: Direct support for Python Array API compliant frameworks (e.g., NumPy, CuPy, PyTorch in CPU or GPU mode), providing flexibility and easy adoption
Important
If you are using libparallelproj, we highly recommend reading and appreciate citing our publication [ST23]
Schramm, K. Thielemans: “PARALLELPROJ - An open-source framework for fast calculation of projections in tomography”, Front. Nucl. Med., Volume 3 - 2023, doi: 10.3389/fnume.2023.1324562, link to paper, link to arxiv version
Note
libparallelproj and parallelproj-core` are minimal APIs for the core projection operations, and do not include higher-level reconstruction algorithms or utilities. However, they can be easily integrated into existing reconstruction frameworks.
Content¶
References¶
Peter Joseph. An Improved Algorithm for Reprojecting Rays Through Pixel Images. IEEE Transactions on Medical Imaging, 1(3):192–196, 1982. doi:10.1109/TMI.1982.4307572.
Georg Schramm and Kris Thielemans. Parallelproj—an open-source framework for fast calculation of projections in tomography. Frontiers in Nuclear Medicine, 2023. doi:10.3389/fnume.2023.1324562.