Accelerating Image Processing Pipeline on Mobile Devices Using GPU
Permanent address of the item is
Majority of current mobile devices include a camera. To meet the form-factor and price requirements, the camera is typically built from inexpensive components which causes defects such as noise, dead pixels and distortions. An acceptable image quality is achieved by processing algorithms which together form an image processing pipeline. Hardware implementations typically offer the best performance and the lowest power consumption, but software implementations can be used to cut costs and maximize the flexibility of the system. However, software implementations may be too ineffective and cause overheating. One alternative to pure hardware and software implementations is the GPU. In this thesis, a generic framework for GPU-based image processing is implemented. The framework simplifies algorithm implementation and organization significantly, and hides some hardware limitations that current mobile GPUs have. The framework is evaluated by implementing an image processing pipeline which consists of seven typical algorithms, and by comparing its performance, memory consumption, power consumption and heat generation to an equivalent CPU implementation. This thesis also discusses optimizations that can be done for the GPU implementation especially on mobile devices. The experiments show that the GPU implementation is able to process images over 40% faster than a multi-threaded CPU implementation. Biggest performance gains were seen in algorithms that were computationally heavy. The GPU is also able to process the same image with much less power consumption. On the other hand, the GPU proved to produce more heat in the test device. With the tested pipeline, also memory consumption was higher than with an optimized CPU implementation.