Graphics Reference
In-Depth Information
5
VI
Non-separable 2D, 3D, and 4D
Filtering with CUDA
Anders Eklund and Paul Dufort
5.1 Introduction
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
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
×
256
×
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
×
64
×
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
×
512
×
445
×
×
11
×
11
×
11 coecients to a dataset of size 512
×
512
20, for example, requires approximately 375,000 billion multiply-
add 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].
×
445
×
 
 
Search WWH ::




Custom Search