GPU engine enhances ultrasound-detected brain motion calculations
May 01, 2009
Advanced GPU processing can help calculate ultrasound data faster than state-of-the-art DSPs.
In a recent study, researchers at Seattle-based Spencer Technologies needed a high-performance processing engine to calculate Doppler shift signals generated from ultrasound reflections and used to examine tissue pulsations in the brain. By implementing Jacket software to offload MATLAB computations that would normally occur on the CPU to a more powerful Graphics Processing Unit (GPU), the research team observed brain displacement across a 7 cm depth range with sampling density that far surpassed previous benchmarks.
Doppler ultrasound is a medical ultrasound modality for observing motion along an axis emanating from an ultrasound probe or in a planar region scanned by such a probe. Although Doppler ultrasound is generally used to examine blood flow, it can also be used to detect tissue micropulsations. Such tissue pulsations originate from low-velocity blood perfusion, which is cyclical and synchronous with each heart beat. Investigators have reported sensitivity to motion at the submicron level. Understanding these cerebral tissue pulsations might help identify bleeding or ischemia (lack of blood flow) in the brain.
Measuring tissue displacement
Scientists often use a transducer to emit and detect high-frequency sound waves. A high-voltage transmit pulse is applied to the piezoelectric crystal inside the transducer to generate a short burst of ultrasonic energy. As this ultrasonic pulse propagates in tissue, it encounters interfaces between different tissue structures. At these junctions, some of the energy in the ultrasonic pulse is reflected as an echo, and some continues to propagate deeper into the tissue. Each wave component’s relative magnitude is a function of the degree of acoustic impedance mismatch between tissues. Tissue regions with similar compositions have a low degree of mismatch, thus allowing more of the ultrasonic pulse to penetrate deeper.
In this study, we used a 2 MHz ultrasound to examine the brain. This frequency is low enough to penetrate the skull yet high enough to provide easily detected echoes from blood flow and tissue. The wavelength (λ) at 2 MHz is about 0.8 mm, which is more than an order of magnitude larger than the tissue motions we have observed. Identifying phase changes over time allows tissue motion to be detected at the micron level with this wavelength. A phase change of π results in a displacement through the Doppler sample volume of λ/4, or about 0.2 mm. Angular measurements with resolutions of π/1,000 can be easily accomplished, resulting in displacement resolution at or below a micron.
The system used in this application operates with a 2 MHz carrier frequency and an eight-cycle transmit burst emitted at a pulse-repetition frequency of 6.25 kHz. The transmit burst size results in an axial resolution (sample volume) of about 3 mm. Axial resolution should not be confused with the angular resolution for displacement calculation discussed in the previous paragraph. As the ultrasound pulse propagates in the tissue, it tracks the motion of scatterers. It is important that the sample volume size not be mismatched with the size of independently moving tissue elements; otherwise, multiple moving tissue elements might result in a net displacement of zero. Also, large tissue excursions in a small sample volume will produce uncertainty due to decorrelation of scatterers across a group of ultrasound pulses.
The Doppler shift signal for each pulse-repetition period is obtained by amplifying the received echoes and digitizing them at 32 MSps with a 16-bit A/D converter and then demodulating and decimating in an off-the-shelf DSP card (TigerSHARC engine). Each pulse period thereby starts as 5,120 echo samples and is transformed into 320 demodulated IQ values evenly spaced at 0.4 mm intervals (that is, λ/2 of the carrier). These 320 IQ values are then resampled into 64 IQ samples that stratify a range in depth from 20 to 90 mm in 1.1 mm intervals. In this fashion, a complex Doppler shift signal is sampled at 6.250 kHz at each gate depth.
Local brain motion for each of the 64 gates is calculated in MATLAB via Jacket using an NVIDIA GTX 280 graphics card with Jacket’s gsingle data type. Displacement is derived from the unwrapped, instantaneous phase of the IQ signal calculated using Equation 1. Equation 2 captures the relationship between phase and displacement.
The 16 gates shown in Figure 1 span a range from 20 to 90 mm away from the probe in 4.5 mm intervals. These gates are a subset of the 64 sample gates, which are each processed into displacement waveforms. All of the displacement waveforms in Figure 1 share a common x-axis, which represents time in seconds. The y-axis shows the magnitude of the local displacements for each curve in microns.
The upper left-hand corner of Figure 1 shows the Marc 600 head frame holding a transducer (a) securely placed on the temporal acoustic window into the brain. The transducer is shown adjacent to the MRI image of a typical brain with an overlaid depiction of the major anterior arterial paths adjacent to the ultrasound beam’s path. The arteries branching from the Circle of Willis include the Right Middle Cerebral Artery (RMCA), the Right Anterior Cerebral Artery (RACA), the Left Anterior Cerebral Artery (LACA), and the Left Middle Cerebral Artery (LMCA). The right-hand side shows displacement waveforms (in microns at the y-axis) versus time (in seconds at the x-axis) for Doppler gates placed 20 to 90 mm away from the probe.
These brain displacement plots have a strong heart-cycle presence. The curves also show displacement values as low as 20 microns for total excursions measured between end diastole and a time shortly after peak systole. (Note that the heart relaxes during diastole and pumps during systole.) With each heart cycle the brain generally displaces in one direction beginning at the onset of systole and moves back in the opposite direction starting toward the end of systole. Looking across all depths for any given time shows both positive and negative displacement values with varying magnitudes, indicating heterogeneity of tissue motion over the heart cycle.
A foundation for calculation performance
With 1 GB of on-chip RAM and 240 processing cores, the GTX 280 GPU used in this study was capable of handling 1,000 GFLOPS. For this application, we divided the data into 64 Doppler gates by 2 second data matrices, resulting in an input matrix of 64 x 12,800 complex data values. Displacement was calculated (using Equations 1 and 2) both in the CPU using MATLAB and the GPU using Jacket for comparison. The timing measurements reported were averaged over 50 trials.
On average, the GPU calculated displacement in 51.50 milliseconds, while the CPU performed the calculations in 621.5 milliseconds. With its highly parallel architecture, the GPU outperformed the CPU by a factor of 12. Teasing apart the GPU timing measurements further revealed that memory transfers between the CPU and GPU took 41 milliseconds (80 percent of the total time), while the actual calculations only took 10.5 milliseconds (20 percent of the total time).
After experiencing positive results using Jacket and GPU technology, we anticipate that this software will form a foundation for calculation performance that far exceeds state-of-the-art DSP performance. This feature is essential for processing tissue micropulsations as a function of depth in real time, which is a basic objective of our research. We also expect that using Jacket software will improve our ability to design and test algorithms in an efficient fashion and help lower development costs.
Asanka S. Dewaraja is a student researcher at Spencer Technologies. Her research interests include biomedical signal processing with an emphasis on ultrasound. She has BS and MS degrees in Bioengineering from the University of Washington and is currently pursuing a PhD.
Travis M. Rothlisberger is an engineer at Spencer Technologies. His interests include Doppler ultrasound, embedded systems, and programmable logic. He received his BS in Computer Engineering from the University of Washington.
Robert S. Giansiracusa is an engineer at Spencer Technologies. His interests include signal processing and hardware design. He received his BSEE from the University of California, Berkley and an MSEE from MIT.
Steven M. Swedenburg is an engineer at Spencer Technologies. He has more than 30 years of experience as an electronic hardware design engineer working for companies from garage start-ups to Fortune 500s. His expertise includes rapid design and implementation of cutting-edge circuitry and hardware in dynamic markets.
Gene A. Saxon is an engineer at Spencer Technologies. His research interests include Doppler ultrasound and graphical user interfaces. He received a BS/MS degree in Mechanical Engineering from the University of Bristol, United Kingdom, and an MS in Medical Engineering from the University of Washington.
Mark A. Moehring is VP of product development at Spencer Technologies. His interests include biomedical applications of stochastic signal processing, with an emphasis in physiological measurements using ultrasound. He received a BS in Physics from Harvey Mudd College and MS and PhD degrees in Electrical Engineering from the University of Washington. He is the chair of the Seattle Chapter of the IEEE Engineering in Medicine and Biology Society.