GPU Based Image Quality Assessment using Structural Similarity (SSIM) Index

GPU Based Image Quality Assessment using Structural Similarity (SSIM) Index

Mahesh Satish Khadtare (Pune University, Maharashtra, India)
DOI: 10.4018/978-1-4666-8853-7.ch013
OnDemand PDF Download:


This chapter deals with performance analysis of CUDA implementation of an image quality assessment tool based on structural similarity index (SSI). Since it had been initial created at the University of Texas in 2002, the Structural SIMilarity (SSIM) image assessment algorithm has become a valuable tool for still image and video processing analysis. SSIM provided a big giant over MSE (Mean Square Error) and PSNR (Peak Signal to Noise Ratio) techniques because it way more closely aligned with the results that would have been obtained with subjective testing. For objective image analysis, this new technique represents as significant advancement over SSIM as the advancement that SSIM provided over PSNR. The method is computationally intensive and this poses issues in places wherever real time quality assessment is desired. We tend to develop a CUDA implementation of this technique that offers a speedup of approximately 30 X on Nvidia GTX275 and 80 X on C2050 over Intel single core processor.
Chapter Preview


Structural Similarity Index Measurement (SSIM) is an image quality assessment method that compares a test image with a reference image to find similarities between the two images. This method is proposed as an improvement over traditional methods like PSNR and MSE, which have proved to be inconsistent with human visual system (HVS). A typical image quality assessment method is shown in Figure 1 (Zujovic et al., 2009).

Figure 1.

Flow diagram of image quality assessment

The SSIM metric is calculated by taking two NxN regions, x and y, of the two images respectively and computing the metric

(1) where

  • the variance of ;

  • the variance of ;

  • and two variables to stabilize the division with weak denominator;

  • is the dynamic range of the pixel-values (typically this is );

  • and by default.

The NxN regions are shifted around the image pixel by pixel to cover the whole image, and the final SSIM is obtained by summing up the SSIM of all the regions. The resultant SSIM index is a decimal value between -1 and 1, and value 1 is only reachable in the case of test image and reference image being identical. The typical size of the region is taken to be 8x8 or 16x16 (Singh et al., 2011).

Image quality assessment is an important step in many image restoration applications like image denoising, image deblurring and image in painting. It is also an important step in video codecs where a block based approach is followed for video compression.

It is obvious from the definition of SSIM that it is a computationally intensive method. However in many cases we may require a real time or a faster implementation. It is also obvious from the definition that SSIM computations of two different regions are independent of each other's and could be done in parallel. This kind of parallelism is well suited to GPU kind of architectures, where each stream multiprocessor (SM) works independent of other SM’s (Shrivastav et al., 2011).

In this chapter, we report performance evaluation of a CUDA implementation of the SSIM based image quality assessment tool. For this purpose we have done a C implementation on Intel single core processor, and a CUDA implementation on Nvidia GTX275 and C2050. We have compared both the implementations on a database of six images of various sizes, by taking region sizes to be 8x8 and 16x16 (Wang et al., 2004).

Complete Chapter List

Search this Book: