Using the CPU and GPU for real-time video enhancement on a mobile computer

Real-time video enhancement is generally achieved using costly specialized hardware that have specific functions and outputs. Commercial off-the-shelf hardware, such as desktop computers with Graphics Processing Units (GPUs), are also commonly used as cost effective solutions for real-time video processing. In the past, the limitations in computer hardware meant that real-time video enhancement was mainly done on desktop GPUs with minimal use of the Central Processing Unit (CPU). These algorithms were simple and easily parallelizable in nature, which enabled them to achieve real-time performance. However, complex enhancement algorithms also require the sequential processing of data and this cannot be easily achieved in real-time on a GPU. In this paper, the current advances in mobile CPU and GPU hardware are used to implement video enhancement algorithms in a new way on a mobile computer. Both the CPU and GPU are used effectively to achieve realtime performance for complex image enhancement algorithms that require both sequential and parallel processing operations. Results are presented for histogram equalization, local adaptive histogram equalization, contrast enhancement using tone mapping and exposure fusion of multiple 8-bit grey scale videos of size up to 1600×1200 pixels.