This paper describes the design and implementation of SAPPHIRE - a novel middleware and software development kit for stream programing on a heterogeneous system of multi-core multi-CPUs with optional hardware accelerators such as graphics processing unit (GPU). A stream program consists of a set of tasks where the same tasks are repeated over multiple iterations of data (e.g., video frames). Examples of such programs are video analysis applications for computer-aided diagnosis and computer-assisted surgeries. Our design goal is to reduce the implementation efforts and ease collaborative software development of stream programs while supporting efficient execution of the programs on the target hardware. To validate the toolkit, we implemented EM-Automated-RT software with the toolkit and reported our experience. EM-Automated-RT performs real-time video analysis for quality of a colonoscopy procedure and provides visual feedback to assist the endoscopist to achieve optimal inspection of the colon during the procedure. The software has been deployed in a hospital setting to conduct a clinical trial.
Bibliographical noteFunding Information:
This work was supported in part by the National Science Foundation Grant No. IIP-0956847, EndoMetric Corporation, and Mayo Clinic in Rochester, MN. Findings, opinions, and conclusions expressed in this paper do not necessarily reflect the view of the funding agencies.
- Medical video analysis
- Multi-core multi CPUs
- Software development kit
- Stream programs