林翔宇 陈耀武
(浙江大学数字技术及仪器研究所,浙江杭州310027)
网络化和终端智能化代表当今视频行业的发展趋势.由于网络带宽和存储设备的限制,视频压缩技术有着广泛的应用.但是视频在压缩、传输和储存的过程中会引入各种失真,导致质量下降,因此对其进行质量评价显得日益重要.到目前为止,在各种主客观视频质量评价方法中,人类对这些失真视频的主观质量评价依然被认为是最精确的方法[1].但是,这个过程消耗大量的人力和时间,不适合大规模实际应用.因此,视频客观质量评价成为一个重要的研究课题[2-6].根据对原始视频及相关信息的依赖程度,视频客观质量评价可以分为3种:全参考、部分参考和无参考.在全参考和部分参考评价过程中,原始视频及相关信息的传输会占用额外的带宽,增加计算量,相比之下,无参考质量评价方法具有更好的灵活性和适应性,有着更广泛的应用价值.
传统的无参考客观质量评价方法在像素域计算失真视频与原始视频的相似度,评估各种失真效应对视频质量带来的影响.Naccari等[2]在宏块级计算错误隐藏造成的失真,结合运动补偿的影响得出视频客观质量评价;Yang等[3]通过统计相邻两帧视频之间相同位置像素的差异,结合人类视觉系统特性来计算视频客观质量.这些方法都取得了较好的精确度,但是其计算复杂度较高,很难满足实时应用需求.近年来,压缩域视频客观质量评价也取得了一些成果.Lee等[4]利用码流中提取的量化系数和滤波系数计算视频客观质量;Ichigaya等[5]通过量化后的离散余弦变换系数来估算视频的PSNR值,从而得出客观质量;Yang等[6]通过估算视频空域和时域的复杂度,结合量化系数来计算视频客观质量,同时也考虑了丢包的影响.压缩域质量评价方法具有计算复杂度低的优点,但是无法精确评估一些常见的失真效应,如块效应、模糊效应等对视频质量带来的影响,评价结果的精确度还有待提高.
为了提高无参考视频质量评价的精确度,同时降低计算复杂度,文中提出了一种基于双域的无参考视频质量评价算法.首先,视频接收端在解码的同时,从码流中提取编码信息,在压缩域用较低的计算复杂度实现对视频质量的初步评定,得出视频相似度;然后,用Sobel算子对重建的视频进行边缘检测,将视频分为边缘区域和非边缘区域,在此基础上进行模糊效应和块效应评估,得出视频失真度;最后结合视频相似度和失真度计算视频客观质量.
在视频压缩过程中,量化是导致视频质量下降的主要原因.许多空域和时域的信息由于量化而损失,从而引入了一些失真效应.由于传输带宽的限制,大多数视频相关的应用中必须把编码后的码率控制在一定范围之内,如何恰当地分配有限的码流也是影响视频质量的一个重要因素.文中提出的算法从这两个方面来计算压缩域视频相似度.
压缩视频的失真程度随着压缩过程中使用的量化参数的增大而增强,但是即使使用相同的量化参数,不同内容的视频表现出来的失真程度也不一样.为了分析压缩后视频质量与量化参数之间的关系,选取了4个具有不同特点的视频,选用1到51之间的13个量化参数进行压缩,并用文献[7]中推荐的方法对这些压缩视频进行主观质量评价.主观质量评价值M与量化参数QP之间的关系如图1所示.其中,M的取值范围为[0,100],M越大代表视频质量越差.
从图1中可以发现,M和QP呈近似指数关系.但是4条曲线不完全一致,原因正是视频内容差异引起的失真程度不同.综合这些因素,M和QP之间存在如下关系:
图1 视频的主观质量与量化系数之间的关系Fig.1 Relationship between video subjective quality and quantization parameter
式中,C为视频内容复杂度,p与量化参数相关,f代表其他影响视频质量的因素,是权重值.为了更直观地反映式(1)的数学特性,用拟合得到的C、p、和f生成一条参考曲线,如图1中虚线所示,它的形状与另外4条曲线非常相似.
一般来说,运动剧烈、纹理复杂的视频,用相同的量化参数压缩后的失真程度更严重.但是,要精确计算视频内容的运动剧烈度和纹理复杂度非常困难.在相同的压缩比率下,内容复杂的视频压缩后往往得到更高的码率,因此,可以用压缩比率和码率的乘积来反映视频内容的复杂度.压缩比率与量化过程中的量化步长成正比,而量化步长与量化参数有直接联系,量化参数每增加6,量化步长就增加一倍[8].综合以上信息,一段视频(n帧)的内容复杂度Cn可以表示为
式中,Bn为n帧视频总共消耗的码流,w和h分别代表视频的宽度和高度,q是这n帧视频压缩时用到的平均量化参数.在此基础上,结合式(1)可以得出量化影响因子FQ为
式中,a1、a2和a3是取值大于零的权重系数.
码率控制的目标是将有限的码流分配到合适的区域,得到最佳的视频质量.图2展示了采用两种不同的码率控制算法得到的压缩视频截图.这两帧视频消耗的码流基本相同,但左图具有更好的主观质量.图3是图2中压缩视频的码流分配图,以16× 16宏块为单位,用不同的灰度代表每个宏块消耗的码流,黑色代表较少的码流,白色代表较多的码流.从图3中可以看出,采用基于感兴趣区域的码率控制算法将码流集中到某几块区域内,这符合前面提到的码率控制算法的目标:合理分配码流以提高视频质量.另外,采用其他多种不同的码率控制算法的实验结果都表明,一帧视频内码流分配的均匀程度与视频的质量有一定联系,将有限的码流集中分配到最合适的位置有利于提高视频质量.因此,文中的算法用帧内每个宏块消耗码流值的方差DB来反映码流分配的集中程度,以此评估码流分配对视频客观质量的影响.
图2 不同的码率控制算法得到的压缩视频截图Fig.2 Screenshots of videos compressed with different rate control algorithms
图3 码流分配图Fig.3 Bit allocation maps
考虑到任何码率控制算法都不能完全确保把码流分配到合适的区域,码流分配的准确性CRC也对视频质量起到一定影响.计算CRC包括以下3步:
(1)计算该帧视频中每个宏块消耗的平均码流.统计采用帧间预测方式编码,并且消耗码流超过平均值的宏块个数NB.
(2)逐个判断这些宏块的重要性,确定其是否值得消耗超过平均数的码流.根据人类视觉系统特性,人眼对视频中的运动信息非常敏感[9],因此,可以根据每个宏块的运动矢量来判定该宏块是否被人眼所关注.首先,统计该帧视频中所有宏块的水平和垂直运动矢量平均值,并计算其方差(Dx,Dy);然后计算每个宏块的水平和垂直运动矢量与相应方向平均值的差值(Δx,Δy);最后,根据以上信息判断每个宏块的重要性IM.统计IM为1的宏块个数NI.IM计算方法如下:
式中,T1为常数阈值.
(3)计算重要宏块占所有消耗码流超过平均数宏块的百分比,即码流分配准确性CRC:
码流分配影响因子FB的计算公式如下:
式中,DB为每个宏块消耗码流值的方差.
文中的算法中,在压缩域用视频相似度QS来初步评估视频客观质量,QS越大代表视频质量越好.QS的计算公式如下:
式中:b1和b2是取值大于零的权重系数.
视频在压缩、传输和存储的过程中会引入各种失真效应,它们是引起视频质量下降的重要因素.在这些失真效应中,人眼对块效应和模糊效应较为敏感,文中算法从这两个方面来计算像素域视频失真度.
块效应一般出现在基于离散余弦变换(DCT)的压缩算法中,粗糙的量化过程也会加剧块效应.不同宏块受DCT和量化的影响不一样,细节损失也有差异,因此,在宏块的边界往往会有明显的不连续,形成块效应失真.另外,根据人类视觉系统特性,人眼对视频中纹理较为简单的区域内的块效应更为敏感[10].根据以上分析,文中设计了一种快速块效应评估算法,分别从水平和垂直方向计算宏块边缘块效应失真程度.下面以水平方向为例介绍该算法的实现过程.
如图4所示,白色和灰色的方块分别代表宏块A和B.首先,计算宏块边界像素点差值SB、宏块内部像素点差值SI和平均差值SI_AVG:
式中,i∈[0,15].
图4 相邻宏块间像素分布Fig.4 Distribution of pixels between adjacent macroblocks
然后,根据宏块边缘和内部像素差异,计算边缘跳变度J.由于量化过程是以宏块为单位进行的,相邻的宏块可以采用不同的量化参数,因此,宏块边缘像素间的差异往往比内部像素间的差异更大,而随着差异的增大,宏块边缘之间的不连续跳变越明显.J的计算方法如下:
同时,结合人类视觉系统特性,对不同区域的块效应失真度加以不同的权重.如果用精确的纹理检测算法划分纹理简单和复杂区域,计算复杂度非常高.文中采用一种相对简单的算法,首先用Sobel算子进行边缘检测,将所有像素点分为边缘区域和非边缘区域,基于此给出不同的权重w,用来修正边缘跳变度.然后取所有宏块边缘像素点对应的边缘跳变度的平均值,作为该宏块边缘水平块效应失真度DBLOCK_H,
w按下式计算:
式中,w1和w2是取值大于零的权重系数.
最后,统计该帧视频中每个宏块DBLOCK_H值的平均值DBLOCK_H_AVG.用相同的方法计算垂直方向的块效应失真度平均值 DBLOCK_V_AVG.块效应失真度DBLOCK即为水平和垂直失真度的平均值,DBLOCK越大,代表块效应越严重.
模糊效应是一种常见的视频失真效应.引起模糊效应的原因有多种:原始视频采集时失焦、拍摄场景相对于镜头的快速运动、以及在视频压缩过程中高频信息的损失等.从主观视觉上看,模糊效应主要体现在视频中物体边缘附近细节退化、锐利程度下降,如图5所示.物体边缘上的像素点如果受到模糊效应的影响,一般都会有最大的局部梯度值[11].因此,文中的算法通过复用前文提到的Sobel边缘检测的结果,对每一个位于物体边缘的像素点检测其梯度方向的边缘锐利度S,以此来评估视频受到模糊效应影响的失真程度.
图5 清晰和模糊图片的对比Fig.5 Comparison of clear and blur pictures
Sobel算子在检测物体边缘的同时,还可以算出边缘像素点的梯度方向θ.梯度方向可能是0°到360°的任意值,为了降低运算复杂度,将梯度方向分为8种,如图6(a)所示:θ∈{0°,45°,90°,135°,180°,225°,270°,315°}.任何梯度方向都近似归为上述8种方向中最接近的一种,并沿此方向计算S.S越小,表明模糊效应越严重.下面以315°方向为例介绍S的计算方法.
图6 边缘锐利度计算示意图Fig.6 Diagram of calculation of edge sharpness
从图5可以看出,模糊图像的边缘是一个渐变的过程,渐变的速率越慢,模糊效应越严重.Wang等[12]提出一种图像边缘锐利度检测算法,先计算图像边缘周围的像素点与边缘上像素点的灰度差值,然后用这个差值与它们之间距离的比值来估算图像边缘灰度的渐变速度.在此基础上,文中的算法在梯度方向上选取4个点,用它们的平均渐变速度来计算S:
式中,I(j,j)的位置如图6(b)所示,其中灰色的I(0,0)点为位于物体边缘上的像素点.
统计整帧视频中每个边缘像素点对应的S值,取其平均值为该帧的模糊效应失真度DBLUR.
文中的算法中,在像素域用视频失真度QD来修正在压缩域得到的初步视频客观质量,QD越大代表失真越严重,视频质量越差.QD的计算公式如下:
式中,c1和c2是取值大于零的权重系数.
传统的视频客观质量评价方法一般先计算每一帧视频的质量,然后取其均值代表整个序列的质量.然而人眼对视频的质量评价是一个连续的过程,帧与帧之间包含的信息也应考虑在内.一般情况下,一段时间内视频每一帧都具有相似的内容特征,因此,文中算法将某一段时间内的整个序列作为整体,给出客观质量评价.
在实际操作中,每t秒进行一次视频客观质量评价,也就是将总共长度为t秒的一段视频作为一个整体进行客观质量评价,其中,t的大小可以根据不同的应用场合做相应调整.同时,在每一帧视频内进行场景切换检测,当检测到场景切换时,马上开始新一次的客观质量评价.文中的算法根据从码流中提取的编码信息,用一帧中帧内预测模式的宏块占总共宏块的百分比作为特征指标来检测场景切换,当这个值超过阈值 T2时,则认为有场景切换发生.
最后,结合压缩域视频相似度和像素域视频失真度,给出视频客观质量QM.为了与视频主观评价结果有相同的取值范围和数值单调性,QM修正为如下公式:
式中,d1和d2是常数,作用是将QM的取值范围限制到[0,100],0代表质量最好,100代表质量最差.
文中选用LIVE Video Quality Database来评估算法的效果[7,13].LIVE数据库包含10个代表不同特征自然场景的序列,150个受到不同失真影响的视频.文中的实验过程分为以下4步.
(1)通过训练得到所有公式中用到的权重系数和阈值.考虑到现实场景的多样性,训练中在LIVE数据库之外选择了4个不同特点的视频序列:Into tree、Stockholm、Amazon和Vidyo.
用JM 17.0对这4个序列进行压缩,并对压缩视频进行主客观评价,然后通过训练得到所有公式中用到的权重系数和阈值,如表1所示.
表1 权重系数和阈值Table 1 Weights and thresholds
在训练中发现:当待评价视频的量化参数小于20时,a1和a3起到决定性作用,其他参数的影响基本可以忽略,这说明此时视频的块效应和模糊效应产生的影响不明显;当量化参数大于20时,a1和a3仍然起到关键作用,同时c1和c2也对结果产生一定影响,而且随着量化参数增大,它们的影响也随之增大,表明视频的块效应和模糊效应加剧.
(2)基于LIVE数据库的实验.首先用文中算法对LIVE数据库中全部40个H.264/AVC压缩的视频进行客观质量评价.然后,为了比较客观评价结果与数据库中提供的各个待评价视频对应的主观评价的一致性,用多参数非线性方程[14](式(16))对主客观评价进行拟合,使经过非线性转换后的客观评价估计值DMOSP与客观质量QM的关系近似线性,方便对评价的单调性和精确性进行比较.最后,根据文献[7]的建议,分别用Spearman等级相关系数(SROCC)和Pearson线性相关系数(LCC)来衡量该算法的单调性和精确性.测试结果与文献[7]中列出的10种客观质量评价方法作对比.
式中,β1、β2、β3、β4为该方程中4个待定的参数,通过Matlab曲线拟合得到.
(3)基于JM压缩视频的实验.LIVE数据库的视频都是用相同编码器配置压缩的,编码器配置为:帧内16×16、8×8、4×4预测模式,帧间16×16、16×8、8×16、8×8、skip和4×4子模式,帧级码率控制,CABAC熵编码,I帧间隔16.
考虑到算法的通用性,另外用JM 17.0根据10种不同的配置,对每个序列进行压缩,共得到100个压缩视频.每一种配置都对上文描述的编码器配置做了唯一一处修改,如表2所示.用文献[7]中推荐的方法对这100个压缩视频进行主观质量评价,再用文中算法和两种常用的开源客观质量评价方法PSNR和SSIM[15]计算它们的客观质量,最后计算SROCC和LCC,并比较测试结果.
表2 编码器配置改动Table 2 The modification of encoder configuration
(4)基于全部压缩视频的实验.对前面提到的一共140个视频的主客观质量进行评价,计算SROCC和LCC,并与PSNR和SSIM的结果对比.
基于LIVE数据库中的测试视频、JM压缩视频和全部140个视频的测试结果散点图分别如图7所示.图中曲线为多参数非线性方程拟合得到的曲线.表3-5分别是根据上述结果计算得到的SROCC和LCC.
从表3的比较中可以看出,文中的算法在单调性和精确性方面要优于文献[7]中列出的10种客观质量评价方法.表4和5的结果说明,在通用性实验中,文中的算法优于另两种常用的开源算法.同时,对文中算法的计算复杂度进行评估,结果如表6所示.测试环境是:3 GHz CPU,2 GB内存.由表6可见,文中的算法完全可以满足实时应用需求.另外,文中实验选用的视频内容包括人物、动植物、建筑、机械、电影和自然环境等,包含不同的纹理复杂度和运动幅度,涵盖了常见的视频场景.在此基础上文中的算法取得了理想的结果,表现出良好的普适性.
图7 基于不同测试对象的实验结果散点图Fig.7 Scatter of experimental results based on different test objects
表3 基于LIVE数据库的实验结果Table 3 Experiment results based on LIVE database
表4 基于JM压缩视频的实验结果Table 4 Experiment results based on JM encoded videos
表5 基于全部压缩视频的实验结果Table 5 Experiment results based on combined test videos
表6 计算复杂度Table 6 Computation complesity
文中提出了一种基于双域的无参考视频质量评价算法.在压缩域,利用从码流中提取的编码信息,结合视频内容复杂度计算视频相似度;在像素域,结合人类视觉系统特性,计算视频失真度;最后综合这两者得出视频客观质量.该算法利用视频压缩过程中产生的编码信息,用较低的计算复杂度初步评定视频质量,然后通过计算块效应和模糊效应失真给视频质量带来的影响作为补充,给出完整的视频客观质量.在评价过程中,充分考虑人类视觉系统特性的影响.实验结果表明,该算法不仅具有很好的精确度,同时拥有较低的计算复杂度,完全满足实时应用需求.
[1] ITU-R BT.500-8,Methodology for the subjective assessment of the quality of television pictures[S].
[2] Naccari M,Tagliasacchi M,Tubaro S.No-reference video quality monitoring for H.264/AVC coded video[J].IEEE Transactions on Multimedia,2009,11(5):932-946.
[3] Yang F,Wan S,Chang Y,et al.A novel objective no-reference metric for digital video quality assessment[J].IEEE Signal Processing Letters,2005,12(10):685-688.
[4] Lee S,Jung K,Sim D.Real-time objective quality assessment based on coding parameters extracted from H.264/ AVC bitstream[J].IEEE Transactions on Consumer Electronic,2010,56(2):1071-1078.
[5] Ichigaya A,Kurozumi M,Hara N,et al.A method of estimating coding PSNR using quantized DCT coefficients[J].IEEE Transactions on Circuits System for Video Technology,2006,16(2):251-259.
[6] Yang F,Wang S,Xie Q,et al.No-reference quality assessment for networked video via primary analysis of bit stream[J].IEEE Transactions on Circuits System for Video Technology,2010,20(11):1544-1554.
[7] Seshadrinathan K,Soundararajan R,Bovik A C,et al.A subjective study to evaluate video quality assessment algorithms[C]∥Human Vision and Electronic Imaging XV.San Jose:SPIE,2010.
[8] ISO/IEC 14496-10,Advanced video coding[S].
[9] Seshadrinathan K,Bovik A C.Motion tuned spatio-temporal quality assessment of natural videos[J].IEEE Transactions on Image Processing,2010,19(2):335-350.
[10] Wang A,Jiang G,Wang X,et al.New no-reference blocking artifacts metric based on human visual system[C]∥International Conference on Wireless Communications and Signal Processing.Nanjing:IEEE,2009:595-599.
[11] Wu S,Lin W,Xie S.Blind blur assessment for visionbased applications[J].Journal of Visual Communication and Image Representation,2009,20(4):231-241.
[12] Wang X,Tian B,Liang C,et al.Blind image quality assessment for measuring image blur[C]∥Proceedings of International Congress on Image and Signal Processing.Sanya:IEEE,2008:467-470.
[13] Seshadrinathan K,Soundararajan R,Bovik A C,et al.Study of subjective and objective quality assessment of video[J].IEEE Transactions on Image Processing,2010,19(6):1427-1441.
[14] Sheikh H R,Sabir M F,Bovik A C.A statistical evaluation of recent full reference image quality assessment algorithms[J].IEEE Transactions on Image Processing,2006,15(11):3440-3451.
[15] Wang Z,Lu L,Bovik A C.Video quality assessment based on structural distortion measurement[C]∥International Conference on Image Processing.Rochester: IEEE,2002:121-132.