GPU optimizations to accelerate an image enhancement algorithm
摘要
The quality of images captured in challenging environmental conditions, such as nighttime or low illumination, is often compromised. Low-light images captured in non-uniform illumination environments contain a compressed dynamic range that can be improved to expose more detail and information. Many enhancement algorithms exist for low-light or dark images, but some are computationally intensive, making them difficult to use in real-time scenarios. Unsharp masking is a popular algorithm that enhances details and edges in images. For example, an algorithm incorporates local and global enhancements, including color space conversions from RGB to HSV and back, unsharp masking, and histogram equalization. However, runtime profiling revealed that unsharp masking is computationally expensive, taking up to 75% of the runtime. To address this issue, the unsharp masking steps were implemented on GPU hardware using a straightforward method, with each thread computing a single output to leverage its parallelization power. Subsequently, we analyzed the runtime and identified optimal optimization combinations that leverage shared memory, registers, and changing thread workloads to enhance communication efficiency within the GPU. For a filter size