  In this paper, we present an OpenCL-based heterogeneous implementation of a
computer vision algorithm -- image inpainting-based object removal algorithm --
on mobile devices. To take advantage of the computation power of the mobile
processor, the algorithm workflow is partitioned between the CPU and the GPU
based on the profiling results on mobile devices, so that the
computationally-intensive kernels are accelerated by the mobile GPGPU
(general-purpose computing using graphics processing units). By exploring the
implementation trade-offs and utilizing the proposed optimization strategies at
different levels including algorithm optimization, parallelism optimization,
and memory access optimization, we significantly speed up the algorithm with
the CPU-GPU heterogeneous implementation, while preserving the quality of the
output images. Experimental results show that heterogeneous computing based on
GPGPU co-processing can significantly speed up the computer vision algorithms
and makes them practical on real-world mobile devices.
