360视频质量评估标准:WS-PSNR,S-PSNR,CPP-PSNR

来源:互联网 发布:监控显示网络不可达 编辑:程序博客网 时间:2024/05/16 02:01

为了符合当前的视频编码标准,360视频采集后需要投影为2D图像进行编码,而观看时需要将2D图像投影为球形视频,实际用户看到的是球形视频。考虑球形视频的特点,会存在关注区域的问题,直接使用PSNR对2D图像进行评估是不准确的。

目前360Lib中,采纳了WS-PSNR,S-PSNR,CPP-PSNR作为360视频的客观质量评估标准,其中S-PSNR分为S-PSNR-I和S-PSNR-NN。

首先来看下360视频评估系统框架:
这里写图片描述
可以看到WS-PSNR无法进行跨视频格式评估,其参考图像与测试图像必须是使用相同投影格式得到的2D图像。而S-PSNR和CPP-PSNR可以进行跨视频格式评估。
在最新的JVET会议中,修改了该框架(JVET-H1030):
这里写图片描述

不再采用S-PSNR-I,采用的评估标准如下:
这里写图片描述

1. WS-PSNR

参考:JVET-D0040,JVET-F1003
代码分析见http://blog.csdn.net/lin453701006/article/details/78170429
WS-PSNR(Weighted to Spherically uniform PSNR)与另外两种不同,它不需要将2D图像投影到球上,而是通过加权的方式直接计算PSNR。

1.1 WS-PSNR公式推导

假设投影后的2D图像尺寸为MxN,加权均方误差如下:
这里写图片描述
其中y(i,j)和y’(i,j)为参考和测试图像像素值。w(i,j)为权重计算。
由WMSE求WS-PSNR:
这里写图片描述
其中MAXI是图像最大灰度级。

1.2 权重w(i,j)

因为WS-PSNR直接基于投影后的2D图像计算,因此其权重w(i,j)与投影格式有关。这也是其缺点所在:无法进行跨投影格式评估。下面来看下常见投影格式ERP和CMP的权重w(i,j):

1.ERP
这里写图片描述
下面是其权重分布图,越亮的区域权重越大:
这里写图片描述

2.CMP
CMP是由多个面组成的,而每个面的权重分布实际是相同的:
这里写图片描述
假设立方体的面分辨率为AxA,则r=A/2为半径,d(i,j)^2=(i+0.5-A/2)^2+(j+0.5-A/2)^2为像素点(i,j)到面中心的距离。
对于compact CMP3x2,其权重分布图如下,越亮的区域权重越大:
这里写图片描述

1.3 优缺点

WS-PSNR是目前评估标准中最为合理的一个了。

优点:
1.直接在2D图像上计算,计算复杂度低,最适配2D视频编码框架。
2.2D参考图像和测试图像的所有点都可以1对1的找到对应关系,可以加入到RDO中。
3.不需要投影变换,不使用插值滤波器,避免了插值带来的误差。
4.不受频率影响,可以平等的计算所有频率下的失真。

缺点:
WS-PSNR无法进行跨格式评估。

2.S-PSNR

S-PSNR(Spherical PSNR)本质上是通过球上的固定均匀采样点来计算PSNR。

2.1 S-PSNR计算过程

其计算过程可以分为两部分:
1.对于球上一点s(事先确定的),通过3D-2D投影找到参考图像和测试图像上的对应点r和t点,计算r和t之间的误差。
2.计算所有s点对应的误差,累加得到S-PSNR。在360Lib中使用了655362个s点。
这里写图片描述
在计算过程中,s在参考图像和测试图像上的对应点s’,可能位于亚像素位置,无法直接找到对应的整像素点r和t。根据是否使用插值滤波器进行了划分:S-PSNR-NN为了避免使用插值滤波器引入失真,会直接进行取整操作,找离s’最近的整像素点;而S-PSNR-I使用插值滤波器来计算亚像素位置的像素值。
S-PSNR-NN代码部分见http://blog.csdn.net/lin453701006/article/details/78173707。

JVET最新会议提出的测试条件JVET-H1030中,已经不再使用S-PSNR-I了。可能原因就在于S-PSNR-I使用了插值,这不能正确的反映原始图像的质量。

2.2 优缺点

优点:
可以进行跨格式质量评估。相比WS-PSNR,S-PSNR是在可视球域上进行计算,更能反映实际看到的失真情况。

缺点:
1.S-PSNR使用了655362个采样点,数量有限,对于4K序列分辨率为3840x1920(共7372800像素),仅使用了8.9%的像素进行失真计算。
2.S-PSNR-I使用了插值,造成失真计算不准确,在最新的JVET会议中已不再采用S-PSNR-I。
3.相对于WS-PSNR,计算复杂度高很多,且无法直接加入RDO。

3. CPP-PSNR

参考:JVET D0027
代码分析见http://blog.csdn.net/lin453701006/article/details/78119537
CPP-PSNR就是投影到CPP格式计算PSNR。

3.1 CPP-PSNR计算过程

主要涉及格式转换和CPP格式下有效图像区域的计算,这里不详细说明了。
CPP格式详见:http://blog.csdn.net/lin453701006/article/details/70272591

3.2 优缺点

优点:
在JVET D0027中提到,S-PSNR是基于有限点进行评估,WS-PSNR无法进行跨投影格式评估。CPP-PSNR克服了这两个问题,考虑了视频中所有点,且可以实现跨投影格式的评估。

缺点:
1.CPP-PSNR需要首先进行格式转换,因此需要插值,造成失真计算不准确,且无法正确评估高频失真。
2.计算复杂度高,无法加入RDO。

原创粉丝点击