ABSTRACT

Filtering is an important step in many image processing applications such as image denoising (where the goal is to suppress noise, see Figure 5.1), image registration (where the goal is to align two images or volumes, see Figure 5.2), and image segmentation (where the goal is to extract certain parts of an image or volume, see Figure 5.3). In medical imaging, the datasets generated are often 3D or 4D and contain a large number of samples, making filtering a computationally demanding operation. A high-resolution magnetic resonance (MR) scan of a human head normally contains on the order of 256× 256× 200 voxels (a voxel is the 3D equivalent of a pixel). Functional magnetic resonance imaging (fMRI) is used for studying brain function, and the generated 4D datasets can easily contain 300 volumes over time with 64 × 64 × 30 voxels each. Ultrasound machines are increasingly affordable and can output volume data at 20-30 Hz. Computed tomography (CT) scanners can yield even higher spatial resolution than MR scanners, at the cost of ionizing radiation. A 4D CT dataset of a beating heart can be of the size 512× 512× 445× 20 samples [Eklund et al. 11]. Reducing the amount of radiation in CT leads to higher noise levels, but this can be remedied by applying image denoising algorithms. However, to apply 11 non-separable denoising filters with 11 × 11 × 11 × 11 coefficients to a dataset of size 512 × 512 × 445 × 20, for example, requires approximately 375,000 billion multiplyadd operations using a convolution approach. Fortunately, graphics processing units (GPUs) can now easily be used to speed up a large variety of parallel operations [Owens et al. 07].