KEYWORDS: Ultrasonography, Data conversion, Data acquisition, Data processing, Algorithm development, Image processing, Associative arrays, Computing systems, Raster graphics, Imaging systems
To meet the computational requirements of mid-range and high-end programmable ultrasound systems, multiple processors are currently required. Algorithms optimized specifically for a single processor-based system may not perform well in a multiprocessor environment. They need to be efficiently remapped on multiple processors to take advantage of the increased computing power while minimizing the interprocessor data transfer and the latency between data acquisition and display. In this paper, we describe a multiprocessor-based implementation of scan conversion, a key processing task in an ultrasound system that geometrically transforms the acquired polar ultrasound data to Cartesian coordinates for display. The single processor-based scan conversion algorithm that was reported previously uses inverse mapping for geometric transformation, where the pixel values in the Cartesian display are determined from data in the polar domain. Inverse mapping requires access to a full frame of pre-scan-converted ultrasound data, which in a multiprocessor system can be located across multiple processors, thus requiring a significant amount of interprocessor data communications. Our modified scan conversion algorithm reduces the data movement by performing inverse-mapped scan conversion locally on the polar-domain data present in each processor's memory. Each processor handles a smaller amount of data, thus reducing the latency. The raster pixels generated by each processor are combined later. Interprocessor synchronization is used to ensure that each processor displays data belonging to the same frame. Data overlapping between processors avoids boundary artifacts between regions that are processed on different processors. Using four Hitachi/Equator Technologies' 300-MHz MAP-CA processors, scan conversion requires 5.6 ms for a 600x420 RGB frame, as compared to 14.6 ms using a single processor, and the latency is reduced by 33.3%. We believe that this type of parallel algorithms will facilitate the development and deployment of flexible multiprocessor-based ultrasound and other medical imaging systems.
Scan conversion is an important ultrasonic processing stage that maps the acquired polar coordinate data to Cartesian coordinates for display. This requires computationally expensive square root and arctangent calculations for geometric transformation. Previously, we developed an algorithm for implementing scan conversion for gray-scale images using pre-computed lookup tables. In a clinical setting, however, interactive changes of scan conversion parameters, e.g., zoom and sector angle, require these table to be recomputed often. In this paper, we describe a fast lookup table generation algorithm and its implementation on Hitachi/Equator's MAP-CA mediaprocessor architecture. In addition, we have extended the gray-scale scan conversion algorithm for color images, which requires interpolation between angular data. For a 600x420 output image, gray- scale scan conversion takes 12 ms while color scan conversion takes 20.3 ms on a 300 MHz MAP-CA. Interactive parameter changes take 102.5 ms for table regeneration. We believe that this high performance is an important step towards making software-based ultrasound programmable systems using mediaprocessors a reality. Such a system would provide more flexibility and improved cost/performance in the future than the existing hardwired solutions.
KEYWORDS: Software development, Computer programming, Computer architecture, Multimedia, Image processing, Associative arrays, Data processing, Digital signal processing, Data conversion, Binary data
The architecture of mediaprocessors has become increasingly sophisticated to accommodate the need for more performance in processing various media data. However, due to the inability of mediaprocessor compilers to fully detect the parallelism available in a program and maximize the utilization of the mediaprocessor's on-chip resources, C intrinsics, which are hints to the compiler on which assembly instructions to use, have been employed to achieve better performance. Nonetheless, these intrinsics are mediaprocessor-dependent, thus limiting the portability of mediaprocessor software. To help increase the portability of mediaprocessor software, we have developed a Mediaprocessor Programming Interface (MPI), which translates one set of C intrinsics into another. In many cases, the translated code for the target mediaprocessor has similar performance to the code developed with native intrinsics. We believe that the MPI can facilitate the reuse of mediaprocessor software as well as the development of mediaprocessor-independent software.
Access to the requested content is limited to institutions that have purchased or subscribe to SPIE eBooks.
You are receiving this notice because your organization may not have SPIE eBooks access.*
*Shibboleth/Open Athens users─please
sign in
to access your institution's subscriptions.
To obtain this item, you may purchase the complete book in print or electronic format on
SPIE.org.
INSTITUTIONAL Select your institution to access the SPIE Digital Library.
PERSONAL Sign in with your SPIE account to access your personal subscriptions or to use specific features such as save to my library, sign up for alerts, save searches, etc.