视频编码器评测

视频编码器领域一直有个比较复杂的问题:mpeg2、divx、xvid、mpeg4、vp8、vp9、x264、openh264、x265等等这一系列编码器到底哪个好?而对于同一种视频编码器,又包括了各种各样的参数配置,这些配置对视频编码器的影响又是怎样的?可以通过调整几种不同的维度的参数取值——视频内容、分辨率、编码器预设、码率来对视频编码器的性能进行评价和对比。

视频内容

在相同视频质量的前提下,画面内容复杂、运动剧烈,要求的码率较高;画面内容简单、景物静止,要求的码率较低。本系统中我们选择ITU- BT.1788标准中提出的时间复杂度(TI)和空间复杂度(SI)来分别衡量视频的复杂程度。
时间信息(TI)
TI反映了一个序列画面随着时间的变化而变化的程度。画面内容运动程度剧烈的序列通常会有较高的TI值。它的计算方法是求序列的每一帧与前一帧图像的帧差,然后对帧差图像计算标准差。选这些标准差中的最大值为TI。它的计算公式如下所示:


TI=maxtime{stdspace[Mn(i,j)]}



Mn(i,j)=Fn(i,j)−Fn−1(i,j)


空间信息(SI)


SI反映了一个序列画面的空间复杂程度。内容细节越多的序列通常会有较高的SI值。它的计算方法是对每一帧视频进行Sobel滤波,然后对滤波后图像计算标准差。选这些标准差中的最大值为SI。它的计算公式如下所示:



SI=maxtime{stdspace[Sobel(Fn)]}

分辨率

分辨率指的是视频的尺寸。例如常见的分辨率有3840x2160 (4K), 1920x1080 (HD), 1280x720 (720P), 640x360 (360P)等。

码率

码率是影响视频质量最主要的参数之一。其它条件形同的情况下,码率越大,视频质量越好。例如一个640x360的1Mbps的的视频的质量肯定好于一个640x360的500kbps的视频。但是不同分辨率的视频码率差别很大。例如我们很难断定一个1280x720的1Mbps的视频的质量是否高于一个640x360的500kbps的视频。

评价参数

评价参数用于在编码完成后统计编码的质量情况。评价参数可以分为两类:质量评价参数和速度评价参数。

质量评价参数

编码质量评价主要通过全参考视频质量评价算法实现。全参考视频质量评价算法通过比较编码前原始视频与编解码后受损视频获得视频质量的评价结果。最常见的全参考视频质量评价模型为PSNR和SSIM。
PSNR
PSNR(峰值信噪比)是使用最为广泛的视频质量评价方法。它的计算公式为:


PSNR=10lg(L2MSE)


其中L为图像灰度值范围,对于8bit位深的图像来说L=2^8-1=255;M*N图像块的MSE(均方误差)计算公式为:



MSE=1M∗N∑i=1M∑j=1n(xij−yij)2


PSNR取值通常在20-40之间,取值越大代表图像质量越好。尽管PSNR计算简单,但是由于没有考虑到人类视觉感知特性,所以其评价结果与主观感受往往相差较大。


SSIM


SSIM(结构相似度)是zhou wang等人提出的一种常见的视频质量评价方法。该方法考虑了人类视觉感知特性,综合考虑了亮度、对比度以及结构的影响。它的计算公式如下所示。



SSIM(x,y)=l(x,y)∗c(x,y)∗s(x,y)


其中l(x,y)为亮度比较函数,c(x,y)为对比度比较函数,s(x,y) 为结构比较函数。这三个函数的具体计算方法可以参考相关文献。


SSIM取值在0-1之间,取值越大代表图像质量越好。SSIM相对于PSNR来说更加符合人眼的主观感受,因此也是一种使用很广泛的视频质量评价方法。

速度评价参数

编码速度评价主要通过统计编码和解码的耗时(以毫秒为单位)来实现。