C/C++ device drivers to program/operate HPMIS.
Medical imaging is classified into different modalities such as ultrasound, X-ray, computed tomography (CT), positron emission tomography (PET), magnetic resonance imaging (MRI), single-photon emission tomography (SPECT), nuclear medicine (NM), mammography, and fluoroscopy. Medical imaging includes various imaging diagnostic and treatment techniques and methods to model the human body, and therefore, performs an essential role to improve the health care of the community. Medical imaging, scans (such as X-Ray, CT, etc.) are essential in a variety of medical health-care environments. With the enhanced health-care management and increase in availability of medical imaging equipment, the number of global imaging-based systems is growing. Effective, safe, and high-quality imaging is essential for the medical decision-making. In this chapter, we proposed a medical imaging-based high-performance hardware architecture and software programming toolkit called high-performance medical imaging system (HPMIS). The HPMIS can perform medical image registration, storage, and processing in hardware with the support of C/C++ function calls. The system is easy to program and gives high performance to different medical imaging applications.
- visual processing system
- image processing
- embedded computer vision
In medical imaging, high-performance graphics systems are being used for early diagnosing, planning treatment, and observing the problems. The medical imaging system plays an important role in disease diagnostic time and cost. Therefore, to manage the industry demands, the medical health-care industry is looking for high-performance imaging system that can predict and identify the disease in an early stage without the support of an expert. As the performance of these devices grows, application-specific and high-performance hardware are required to run complicated/complex medical applications.
Precisely managing the medical information from multiple imaging equipment, processing them, and then displaying the result using various visual approaches give more detailed knowledge of understanding a disease state. The visual presentation performs multiple alignments and registration techniques using the complex and multi-dimensional images. The arrangement and registration of complex medical images having sparse data and control flow is a hard process. A medical imaging machine (e.g. radiological imaging) consumes 75% of processing time while aligning and registering, whereas a CT scan aligns images having a sample space of three-dimension with the reasonable isotropic resolution. These complex imaging applications have to follow anatomical and pathological structures while performing image acquisition, which demands efficient high-performance imaging hardware.
Medical imaging system uses different processing hardware such as reduced instruction set computer (RISC), application-specific instruction set processor (ASIP), single instruction multiple data (SIMD) processor, graphical processing units (GPUs), and field programmable gate arrays (FPGAs) [1, 2]. GPUs architecture uses advance vector processor architecture with dedicated memory and multiple stream multiprocessor (SM) having SIMD. The processing cores perform floating point operations. This high-end computing capability allows medical imaging applications to render complex medical images. In the past years, the GPU programming tools are grown and become competent in solving complex medical algorithm. On the other side, the performance of GPUs processing cores also increased, which allows medical imaging applications to give better results while diagnosing a problem.
Medical imaging is consistently held to be one of the most important advances in the history of medicine and has become an integral part of the diagnosis and treatment of patients around the globe. The medical statistic [3, 4] confirms that the early stage disease prediction, for example, breast, colorectal and lung cancers, etc., can save lives. This demands an improvement in diagnosis of the disease and screening techniques that generate high class, multidimensional images. With the development of medical imaging technology, the complexity of images also increased. It needs a high-performance computing architecture for real environment application processing. Existing medical imaging processing architectures face different issues and limitations related to hardware and software. Therefore, an efficient, scalable, and easily programmable high-performance medical imaging hardware architecture is required to solve complex imaging problems.
In this chapter, we proposed a high-performance medical imaging system (HPMIS) for medical applications. The proposed system works as a standalone device that processes images taken from different medical imaging equipment in real time. The HPMIS architecture is a standalone heterogeneous system, which can perform image registration, storage, and processing in real-time environment. A software programming model is also proposed, which facilitates the medical scientists to write their imaging application without going into details of hardware. The proposed system is efficient in terms of performance and consumes low power due to the best utilization of hardware-software approach.
2. Related work
Imaging applications for clinical methods and pathology study need high performance and efficiency. Several image processing environments and processing architectures exist for the medical imaging application, but to the best of our information, a programmable and high-performance scalable processing system is required for medical imaging applications.
Ibanez et al.  designed an open-source medical imaging toolkit called the Insight Toolkit (ITK). The developed toolkit supports a number of platforms and gives programmers with an extended C++ framework of software tools for image understanding.
Schroeder et al.  developed an open-source Visualization ToolKit (VTK) for three-dimensional processing and visualization. VTK toolkit assists C++ libraries and algorithms for different parallel processing technologies and provides an interface to integrate with different databases.
Wolf et al.  introduced Medical Imaging Interaction Toolkit (MITK) that assists to program medical image-based clinical software. The MITK gives an application programming framework that links with the ITK and the VTK libraries. The proposed HPMIS provides a medical imaging programming model, which supports data registration, memory management, and processing in hardware, and is easy to program. The HPMIS programming model is scalable for different architectures having reduced instruction set computing (RISC) multi-processors, application specific hardware cores, and vector processors.
Bakalash et al.  suggested the MediCube system for 3D medical imaging. The system gives the reconstruction and visualization of three-dimension complex medical images. The processing system of the MediCube uses a RISC processor that performs the parallel processing for real-time voxel representation, whereas the HPMIS handles 3D medical imaging using a specialized local memory system and uses reconfigurable processing cores to process the incoming data. Bluetechnix  Black camera boards use specialized DSP processors and provide excellent image processing abilities at the expense of power, price, and complexity. Lee et al.  proposed a SONY DSP processing-based system.
Jinghong et al.  proposed image processing system having heterogeneous (DSP and FPGA) processing cores. The HPMIS uses FPGA accelerators for high-speed data acquisition from single or multiple sensors. The HPMIS processing architecture uses multi-processor core architecture, each core using 32-bit RISC instruction set architecture (ISA) is integrated with the design for programmability, average performance, and low-cost systems.
Pratx et al.  proposed a method for processing line-projection tasks to process the PET image reconstruction. The proposed method uses Nvidia processing cores and the CUDA programming model. Owens et al.  addressed the implementation of RISC processors on GPU cores-based processing system architecture. The authors showed the value of GPU for the tremendous compute capacity that reproduces the CT images and presents them on screen.
Jiang et al.  suggested processing of 3D discrete transformation using hardware accelerator. The proposed system decreases the size of the accelerators lookup tables. The accelerators are developed in hardware description language and examined on Xilinx Virtex-E FPGA board.
Coric et al.  displayed a CT-based parallel beam back-projection algorithm and tested on FPGA-based hardware architecture. The FPGA-based system obtains the speedups up to 100× against the software running on a 1 GHz Pentium.
Tassadaq et al. proposed programmable graphics controller [16, 17] for low-cost and low-power graphics system. The system takes two-dimensional images to process applications. Tassadaq et al.  also have proposed a visual processing system called ViPS for medical applications. The ViPS uses multiple RISC, vector processor, and multiple FPGA-based hardware accelerators. The ViPS gives a high performance by using advanced hardware architectural support such as registration system, memory system, and processing system.
3. High-performance medical imaging system
Imaging has become an essential tool in modern medicine science. Numerous powerful platforms to register, store, analyze, and process medical imaging applications have appeared in recent years. However, these systems are developed for a specific imaging application problem [19, 20, 21] and do not support generalized problems , which includes an indigenous system that could be customized according to the local needs. Moreover, the cost of such systems is on higher side that contributes to the increase in expenses of each scan. This results in discouraging patients, who could not afford these high costs and therefore compromise on their health. Also, in many medical imaging systems such as MRI, temporal resolution has been reported to be a major concern, which causes discomfort to patients with severe illness/pain as they have to be motionless for a longer period of time. In this chapter, a high-performance medical imaging system (HPMIS) is proposed that registers stores and processes complex and multi-dimensional medical imaging application in real-time. The high-performance medical imaging system provides a user-friendly programming environment and high-performance architecture to perform imaging data acquisition, registration, storage, analysis, and performs segmentation, filtering, and recognition for complex real-time complex and multidimensional medical images or videos. The proposed system is highly reliable concerning cost, performance, and power. High-performance medical imaging system architecture (shown in Figure 1) is implemented and tested on advanced heterogeneous multi-core and GPU-based systems.
The proposed high-performance medical imaging system (HPMIS) has five sub systems: registration system, memory system, processing system, programming toolkit, and test applications.
3.1. Registration system
The registration system (RS) deals with a number of medical imaging devices with various interfaces. The RS supports multidimensional and scattered graphics data. The RS manages X-ray radiography, ultrasonic images, etc. and complex images such as MRI, CT, etc. The RS utilizes a RISC core and FPGA accelerator to access data from medical imaging devices. The RISC core is employed to obtain medical images having a complex structure, whereas the FPGA core is used to gather data having fixed data flow patterns. The registration system aligns images reasonably isotropic resolution and do not distort or deform the anatomical and pathological structures of images. The system is designed for navigation and visualization of multimodality and multidimensional images for 2D/3D, 4D Cardiac-CT and 5D Cardiac-PET-CT displays. The registration system supports all DICOM Files (mono-frame, multi-frames), the MRI/CT multi-frame format, JPEG Lossy, Lossless, LS and 2000, RLE, Monochrome1, Monochrome2, RGB, YBR, Planar and Palettes. The system supports 32-bit pixel resolution and is directly linked with memory system.
3.2. Memory system
The HPMIS memory system uses three types of memories: the program memory, the specialized medical memory, and the main memory. The HPMIS program memory utilizes the memory access descriptors [APMC][PPMC][PMC] that contain the knowledge of imaging data registration, data transfers, storage device, and processing cores. The descriptors provide the medical imaging programmer to choose a processing core for image processing and explain the complicated image structure.
3.2.1. High-performance specialized imaging memory
The HPMIS high-performance specialized imaging memory (shown in Figure 2) is directly connected to the processing system and provides single cycle data access. The high-performance specialized imaging memory holds the complex medical image data pattern to speed up the data transfer accesses. The high-performance specialized imaging memory has parameterizable and programmable 3D memory structure. Depending upon the available on-chip memory, the high-performance specialized medical memory can be organized into multiple frames. To exploit parallelism better, the frames of high-performance specialized medical memory are arranged physically into a multi-dimensional (1D/2D/3D) architecture to map the kernel access pattern on the high-performance specialized imaging memory.
3.2.2. Main memory
The slowest type of memory in the HPMIS architecture is main memory and is accessible by the whole system. The main memory has SDRAM, SD/SDHC memories, etc. interfaces to read/write data.
3.2.3. Permanent memory
The permanent memory of high-performance medical imaging system is used to store dense and large size of medical images in a nonvolatile memory permanently.
3.3. Processing system
The processing system is used to perform image processing on images stored in memory system. The medical application-specific hardware accelerator, vector processor, and the multi RISC processor cores are used in the HPMIS processing system.
The HPMIS Medical Application Programming Model (MAPM) helps medical application programmers to develop applications without acknowledging hardware arrangements and details. The MAPM uses image processing functions for image segmentation, reconstruction, features extraction, and computation; and it also provides memory management and registration task and separate task for visualization. The MAPM presents various function calls, which include medical imaging flow, control, and processing. The MAPM data transfer tasks help disordered, random, strider 1D, 2D, 3D, and automated blocking for image/video transfer processes and move data between the medical imaging devices and the HPMIS memory system. The HPMIS MAPM intelligently pipeline, overlap, and parallelize image processing tasks based on hardware processing and memory resources. Table 1 presents functions that are used to develop the applications for the HPMIS architecture. The HPMIS incorporates 100 function calls for medical applications. The application calls are written in C/C++. The function allows the programmer to execute the function on RISC or Vector processors.
3.5. Test applications
To validate the HPMIS system, different medical applications are executed. The medical applications includes segmentation, K-mean clustering, object detection, object recognition, features extraction, 3D-Stereo filtering, ultrasonic image reconstruction, time domain filtering, frequency domain filtering, alpha blending, and Iris-based disease recognition.
The high-performance medical imaging system is tested with the test applications discussed in Section 3.5. The results show that HPMIS-based architecture draws low power and gives high performance for the test applications. While executing test application on multi-RISC and FPGA cores of HPMIS, the results show that the HPMIS FPGA-cores improve the application performance 2.4 times compared to multi-core RISC system. The HPMIS performs real-time complex images reconstruction at higher rate.
In this chapter, we have introduced and developed a high-performance medical imaging system (HPMIS) for medical imaging applications. The HPMIS has the capability to register multi-dimensional, complex, and high-resolution images, and processes the application on different heterogeneous multi-core processors. The HPMIS system gives efficient imaging access from multiple medical equipment. The HPMIS provides a medical programming environment that includes different function calls for the development of medical imaging application. The programming environment provides the data structure to present medical images or videos.