GPGPU based image segmentation livewire algorithm implementation. - Daniel Lélis Baggio (2007)
This thesis presents a Graphic Processing Unit (GPU) implementation of the Livewire algorithm, instead of using traditional architectures, like the CPU. The GPU is a Single Instruction Multiple Data (SIMD) architecture. The algorithm is divided in three phases: Sobel or Laplacian filter convolution, image modeling as a grid graph and solving the non-negative weighted edges single source shortest path problem. In order to calculate the shortest path, a parallel approach is made through the development of an adapted version of the D-stepping algorithm for GPUs. Although originally designed for applications highly focused on rendering, GPGPU (General Purpose Computing on Graphic Processing Units) researchers have shown that the huge processing power available on GPUs as well as the recent advent of a programmable pipeline have made of them an attractive option for low cost high performance platforms. Even though the implementation has used CUDA API, several other approaches are analyzed, like the Cell processor, other graphic APIs and languages, such as Cg, OpenGL, RapidMind, and Brook. Results show that intense speedups are seen in image filtering algorithms. On the other hand, D-stepping algorithm was constrained from achieving higher performance than CPU implementation. This thesis makes available an open-source image segmentation GPU based application, which can be used as example for future GPU algorithm implementations at http://code.google.com/p/gpuwire/.