Denoising is an important process before applying other postprocessing techniques on medical images. To obtain better quality images many denoising approaches have been introduced. Gaussian filter is a spatial domain filter, which is proper to deblur and to remove noise from images. Since the Gaussian filter modifies the input signal by convolution with a Gaussian function it is a computationally intensive algorithm. Hence to enhance the performance of the algorithm, it is better to perform two 1-D convolution operations instead of one 2-D convolution operation and then parallelize it. In this paper in order to increase the performance of 1-D convolution operation, we exploit both Data- and Thread-Level Parallelism using parallel programming models such as Intrinsic Programming Model, Compiler’s Automatic Vectorization and Open Multi-Processing. The experimental results were shown that the performance of our implementations is much higher than other approaches. Performance improvements of Multi-threaded version of all implementations are significantly improved compared to single-core implementations, and a speedup of 52.33x obtained over the optimal scalar implementation.
Keywords: Gaussian Filter, 1-D Convolution, Single Instruction MultipleData, Data-level Parallelism, Thread-level Parallelism