SSIM Introduction
SSIM 是2004年提出来的,原始论文在这里。SSIM相较PSNR更符合人眼的主观感觉,因此在很多图片视频任务中广泛使用,包括压缩,降噪等等。本文简单介绍下SSIM公式,并根据论文On the Mathematical Properties of the SSIM对SSIM做了分析,最后总结了如何在编码器中针对SSIM来做优化。
SSIM简介
SSIM的计算公式如下:
\[ S(x, y) = f(l(x, y), c(x, y), s(x, y)) \]
其中l(x, y)代表x, y对于mean的相似度,c(x, y)代表的contrast的对比度,s(x, y)代表的是结构的相似度;他们的计算方式分别如下
\[ l(x, y)=\frac {2\mu_x \mu_y + C_1} {\mu_x^2 + \mu_y^2 + C_1} \]
其中\(\mu_x\), \(\mu_y\) 分别为块的均值;其中\(\mu_x\), \(\mu_y\)相差越大,\(l(x, y)\)就越小;
而对比度相似度c(x, y)的计算方式与l(x, y)的相似,具体如下
\[ c(x, y) = \frac{2\sigma_x\sigma_y + C_2}{\sigma_x^2+\sigma_y^2 + C_2} \]
结构相似度s(x, y)无法表示成一个数,作者是把他转换成归一化的向量,然后计算下余弦相似度:
\[ s(x, y) = \frac{\sigma_{xy} + C_3}{\sigma_x\sigma_y + C_3} \]
其中\(\sigma_{xy}\)为x, y的covariance,expected value of the product of their deriations from there individual expected values. 计算方式为
\[ \sigma_{xy} = \frac{1}{N-1}\sum_{i=1}^N(x_i - \mu_x)(y_i - \mu_y) \]
也就是两个相对于均值一起变动的节奏或者波形是否一致。可以考虑一维的情况,协方差在计算的时候会减去均值。
如果\(C_3 = C_2/2\),最终的SSIM的公式为
\[ SSIM(x, y) = \frac{(2\mu_x\mu_y + C1)(2\sigma_{xy} + C_2)}{(\mu_x^2 + \mu_y^2 + C_1)(\sigma_x^2 + \sigma_y^2 + C_2)} \]
因此SSIM(x, y) 小于1, 大于-1;
On the Mathematical Properties of the SSIM
作者首先把SSIM分成两部分,
\[ S_1(x,y) = l(x,y) = \frac{2\mu_x\mu_y + C_1}{\mu_x^2 + \mu_y^2 + C_1} \\ S_2(x,y) = \frac{2\sigma_{xy} + C_2}{\sigma_x^2 + \sigma_y^2 + C_2} \]
然后使用\(d_1 = \sqrt{1 - S_1}\)和\(d_2 = \sqrt{1 - S_2}\)作为normalized metrics; 作者先证明了NRMSE是一个metrics,然后说明\(d_1\)和\(d_2\)是NRMSE的一种。NRMSE的定义如下
\[ NRMSE(x,y,c) = \frac{||x-y||_2}{\sqrt{||x||_2 + ||y||_2 + c}} \]
之后通过构建\(D_2 := ||d(x,y)||_2 = \sqrt{2 - S_1(x,y) - S_2(x, y)}\)来表示一个距离,\(||d(x,y)||_2\)是\(\sqrt{1-SSIM(x,y)}\)的低阶近似。
在图片或者视频的很多处理中,大部分时候mean都是保持一致的,因此SSIM中的\(c(x,y)\)和\(s(x,y)\)更加重要。作者也通过计算SSIM和\(D_2\)的相关性,可以看出图像的均值相差不大的情况下,SSIM和其他\(D_2\)的相关性是很高的,大于0.967;
如何针对SSIM做优化
从以上分析可以看到,SSIM可以近似表示为\(d_2\),\(d_2\)可以理解为相对损失,因此相同的SSIM分数下,复杂的块,也就是\(\sigma_x\) 更大的块,可以允许有更大的损失。也可以把SSIM理解为weighted MSE,加权的因子是\(\frac{1}{\sigma_x}\),因此简单的块有更大的权重。在图片或视频压缩中,可以针对简单区域分配更多的比特从而优化SSIM的表现。