An Averaging filter is a commonly used filter in the field of image processing and is mainly used for removing any noise in a given image. A noise in an image is any presence of pixel values which doesn’t blend well with the actual content of photo like salt-pepper grains on an image. Averaging filter makes use of the concept that any given pixel value will not change drastically from its immediate neighbors. In other words, the current value of a pixel depends more on its immediate neighbors. Averaging filter size decides how many immediate neighbors are considered for the computation of the current pixel values. The most commonly used filter size is 3x3.
This sample has demonstrates how to increase the performance of Averaging filter using Intel(R) Cilk(TM) Plus. Both threading and SIMD solutions are explored in the performance tuning and their corresponding contributions in the speedup are evaluated.
Stencil computation is the basis for the Reverse Time Migration algorithm in seismic computing. The underlying mathematical problem is to solve the wave equation using a finite difference method. This sample computes a 3-D 25-point stencil. The computation contains 4 layer loops for each dimention and time duration. One methodology runs in straight scalar code, one using Intel® Cilk™ Plus
pragma simd to allow the code to vectorize, one using
cilk_spawn to include parallelization, and one with both.
- Page 1