Parallel implementations of structural similarity based no-reference image quality assessment

Abstract Automatic assessment of image quality has become increasingly important in numerous applications that utilize digital images. This is usually accomplished with no-reference image quality assessment (NR-IQA) techniques that use structural similarity (SSIM) index as a quality indicator. NR-IQA is computationally intensive because it generally involves image convolution and other time-consuming computations. A typical SSIM-based NR-IQA includes four computational operations: color to grayscale conversion, Gaussian blur, computation of image gradients with an 8-direction Sobel operator, and computation of SSIM indices of local windows in the image. Parallel computing using multi-core CPUs or many-core GPUs is often used to accelerate intensive computational problems. This research presents the design of three parallel implementations of SSIM-based NR-IQA methods to accelerate the computations. The first two utilize NVIDIA CUDA to implement all the operations as CUDA kernels, while the third uses Microsoft's Parallel Patterns Library to calculate mean similarity indices of local windows in the image. Experimental results showed that significant speedup can be achieved against the sequential method using all three methods, but it is more practical to use texture memory to perform the last task (similarity computation) because of its substantial enhancement in performance and its ease of scheduling when processing multiple images.