Medical imaging modalities come in a wide variety of shapes and sizes. Regardless of size, from multi-ton, multi-kilowatt MRI machines to battery powered handheld ultrasound units, all modalities require processing of the original images (or input signal) to create diagnostically useful images. The speed of the image processing must be compatible with the workflow around the modality. In regular X-ray imaging, a few seconds of processing time per image may be an accepted industry standard. Whereas fluoroscopy requires real-time video performance, meaning that the processing of individual images (frames) must be performed within tens of milliseconds. The image processing requirements together with design restrictions such as power consumption and size, make selecting the hardware platform for image processing a critical decision.
Fortunately, there are many types of hardware platforms with a wide variety of characteristics available for image processing in the market today. Consider these five options when selecting the best hardware platform for your imaging modalities.
- Application Specific Integrated Circuits (ASIC) have been successfully used for building highly dense systems manufactured in large volumes.
- Field Programmable Gate Arrays (FPGA) work well with prototypes and systems deployed in smaller quantities. They offer a high processing density and more flexibility than ASICs.
- Digital Signal Processors (DSP), traditionally designed for the telecommunications industry, are frequently used in medical systems mainly because of their performance and system on chip approach.
- Modern General Purpose Processors (GPP) are high-performing, versatile platforms which make them very attractive for the implementation of medical applications.
- Graphics Processing Units (GPU) efficiently process images which has grown their position as a reliable and useful product in the medical imaging market.
Application Specific Integrated Circuits (ASIC) are special chips where the desired program has been “burned” into the silicon. This process completes the chip’s composition and program changes will require the ASIC to be re-engineered. Since their manufacturing process is essentially equivalent to the one used for processors, ASICs can be clocked at high frequencies making them good candidates for extreme performance and optimal efficiency.
Instead of implementing the exact desired program on a chip as done with ASICs, Field Programmable Gate Arrays (FPGA) are built from a very large number of elementary components (e.g. logic blocks, RAM, multipliers) placed on a dense programmable interconnect grid. Hence, the craft of reaching high performance and high efficiency lies within the selection of an FPGA layout that best matches the requirements of the program. FPGAs can be re-programmed at will but are limited to executing only one program at a time. Unique, versatile and unlike any other device, the usage of the pins can be decided at any time which makes FPGAs adaptable devices for interfacing arbitrary peripherals. FPGA chips can be clocked at high frequencies; however, the actual rate at which the program will run largely depends on its level of optimization. If properly optimized, FGPAs can be known for a strong performance to cost ratio.
Known as modern special purpose processors, Digital Signal Processors (DSP) can have impressive price-performance ratios if managed properly. The internal architecture of their cores is rather simple so performance optimization largely relies on the skills of the compilers and engineers working with the processor. Their major strength is their architecture. DSPs can hold most common peripherals directly on the chip, such as Ethernet, PCIe, and USB. DSPs can also easily interface simple devices such as memory without additional “glue.” The design of DSP based motherboards can be extremely simple and cheap.
General purpose processors (GPP) have the highest level of versatility and can be utilized in a large variety of tasks ranging from gaming to scientific computing. Their performance takes its roots in several different factors, one of which is their high frequency rates. Modern GPPs are usually built around multicore architectures, each core holding multiple, highly efficient and functional units. In order to keep those functional units as busy as possible, GPPs also include acceleration hardware such as large caches, dynamic instruction reordering and sophisticated branch prediction units. These mechanisms make GPPs less sensitive to the level of optimization of the programs and therefore largely decreases the engineering effort needed to achieve high performance levels.
Graphics Processing Units (GPU) were initially designed for manipulating computer graphics and for showing images on a computer display. Since graphics operations are rather simple and require lots of memory accesses, GPUs are built around a large number of elementary processors and a very fast memory hierarchy. Each processor works independently on a subset of the total data to be processed (such as an image). In recent years, GPUs have become frequently used for a variety of general computational tasks such as general purpose image processing. Several programming frameworks such as CUDA, OpenCL and DirectCompute support high-level programming of such operations.
The table gives an overview of the characteristics of each of the previously mentioned hardware platforms.
The many parameters vary in multiple magnitudes between the different hardware platforms. Furthermore, even if their theoretical performance may be comparable, their architecture may be more or less well suited for handling a given part of the processing pipeline. Using one single acceleration device type may lead to compromises that jeopardize the image quality and/or the performance. It is thus very important for modality developers to choose the right combination of hardware platforms. In future articles we will elaborate on the selection of such platforms for various common modality-related image processing tasks.