LoginSignup
56
35

More than 3 years have passed since last update.

画質の客観評価(SNR, PSNR, SSIM)について

Posted at

はじめに

画質の評価方法には、主観評価(DSCQS法、DSIS法、ACR法、ACR-HR法)と客観評価(SNR, PSNR、SSIM)の2種類がある。ここでは、後者の客観評価についてまとめた。

  • 客観評価:圧縮符号化により生じた雑音をSNR, PSNR, SSIM等の手法で定量的に表す方法
  • 主観評価:画像を見た人が自分の感覚に基づいて評価値を決める方法

以下に示す式で、単位が[dB]の理由は、画像信号のダイナミックレンジ(信号の最小値と最大値の比率)が広いため。

SNRとは

SNR(Signal to Noise Ratio):信号と雑音の比(SNR大 ⇒ 雑音の影響小)。

圧縮符号化に伴って発生する雑音の評価値SNR(Signal to Noise Ratio)の定義は

SNR = 10\log_{10}\frac{s^2}{e^2} \quad [dB] \tag{1}\\
\Bigr( s^2: 原画像の信号分散、e^2:雑音電力 \Bigr)

なお、雑音電力$e^2$は、原画像と復号画像の差分二乗平均 MSE (Mean Squared Error)に等しく

e^2 = MSE = \frac{1}{N} \sum_i(x[i]-y[i])^2 \tag{2}\\
\Bigr( N:画素数、x[i],y[i]: 原画像および復号画像のi番目の画素位置における輝度値 \Bigr)

と表わされる。

PSNRとは

PSNR(Peak Signal to Noise Ratio):最大電力(Peak to Peakの輝度変化の二乗)と雑音の比率。PSNR大 ⇒ 画像の劣化少。客観評価尺度としてよく利用。

PSNRの定義は、輝度信号が8bit表現の場合、0 ~ 255の範囲で表現されるため、(1)式を s=255 として

PSNR = 10\log_{10} \frac{255^2}{e^2} \quad [dB] \tag{3}

動画像の場合、PSNRの評価値は、各フレームのPSNRの平均値。

特徴

  • PSNRが高い、すなわち、劣化の少ない画像の時 ⇒ PSNRと主観画質の相関が良い

  • PSNRが著しく低い、または、画面内で品質に偏り(局所的な劣化)がある場合 ⇒ PSNRと主観画質の相関が悪い時あり

いいかえれば、
PSNRの結果において、「画像全体で少し劣化」している時の値と「局所的に劣化」している時の値は、ほぼ同じになってしまう。しかし、主観評価では後者の方が悪いと感じてしまうことがある。

  • 動画像では各フレームのPSNRの平均値を評価値とするため、時間的な品質変動の大きい動画像の場合 ⇒ 評価値と主観画質の相関が悪い時あり

しかし、MSEは、MEPG-2, H.264などの主要な動画像符号化方式における「レート - 歪み最適化」の歪みの指標に用いられているため、符号化効率を図る用途としてもPSNRの有効性は高く、また複雑な計算がいらないため、PSNRは客観評価尺度としてよく使われている。

SSIMとは

PSNRは、必ずしも主観評価と一致すると限らない。そこで、提案されたのがSSIM(Structual SIMilarity)である。

PSNRとSSIMの違いは以下である。

  • PSNR:符号化とともに生じた雑音成分の知覚感度に基づく指標

  • SSIM:人間の画質劣化の知覚に画像構造の類似度が寄与するものとした指標

SSIMにおける画像構造の類似度は、原画像$x$及び復号画像$y$の輝度・コントラスト・構造の比較項の乗算から成る。

よって、SSIMの定義式は、$\alpha, \beta, \gamma$ を正の定数とすると

SSIM(x, y) = [l(x, y)]^\alpha \times [c(x, y)]^\beta \times [s(x, y)]^\gamma \tag{4} \\
\Bigr( l(x,y), c(x,y), s(x,y):輝度・コントラスト・構造の比較項 \Bigr)

なお、

l(x, y) = \frac{2\mu_x \mu_y + C_1}{\mu_x ^2 + \mu_y ^2 + C_1}, \quad c(x, y) = \frac{2\sigma_x \sigma_y + C_2}{\sigma_x ^2 + \sigma_y ^2 + C_2},
\quad s(x, y) = \frac{\sigma_{xy} + C_3}{\sigma_x \sigma_y + C_3} \tag{5} \\
\Bigr( \mu_x, \mu_y:輝度x[i], y[i]の平均値、\sigma_x, \sigma_y:x[i], y[i] の標準偏差、\sigma_{xy}:x[i]とy[i] の共分散 \Bigr)

また、$C_1, C_2$は、定数 $K_1,K_2<<1
$ とすると(論文では$K_1=0.01, K_3=0.03$としている)

C_1 = (K_1 L)^2, \quad C_2 = (K_2 L)^2, \quad C_3 = \frac{C_2}{2} \tag{6}\\
\Bigr( L:最大振幅(8bit表現なら L=255) \Bigr)

よって、(4)式は、論文同様、簡単のために$\alpha = \beta = \gamma = 1$ とすると

SSIM(x,y) = \frac{(2 \mu_x \mu_y + C_1)(2 \sigma_{xy} + C_2)}{(\mu_x ^2 + \mu_y ^2 + C_1)(\sigma_x ^2 + \sigma_y ^2 + C_2)} \tag{7}

と最終的になる。

また、実際に用いられるSSIMの評価値は、MSSIM(Mean SSIM)と呼ばれるものであり

MSSIM(x,y) = \frac{1}{M} \sum_{j=1}^{M} SSIM(x_j, y_j) \tag{8} \\
\Bigr( x_j,y_j:小領域の原画像・復号画像 \Bigr)

と表わされる。上式は、一枚の画像を小領域で分割し、小領域ごとに$SSIM(x_j, y_j)$を求め、それらを平均した値である。

特徴

  • SSIMと主観画質の相関が、PSNRよりも良い場合あり

  • SSIMの算出前に、ガウシアンフィルタをかけて平滑化するなどの前処理をする場合が多い

参考

56
35
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
56
35