沈 婷, 孙锬锋, 蒋兴浩
(上海交通大学 电子信息与电气工程学院; 信息内容分析技术国家工程实验室,上海 200240)
近年来,数字视频已经成为我们日常生活中获取信息的一种重要来源.然而,视频编辑软件的不断进步使得用户可以轻易篡改数字视频,导致数字视频的完整性与真实性难以得到保证.进行视频篡改时,操作者必须先解码原始视频,对其篡改后再进行二次编码,所以一段被篡改的视频肯定经历过重压缩过程.视频双压缩检测时若发现为单次压缩,可认为该段视频为原始视频,反之则怀疑该段视频被篡改过.因此在被动取证领域中,视频双压缩检测技术具有重要的研究意义和实用价值.
自2006年以来,越来越多的学者致力于视频双重压缩检测技术研究,并提出了许多相关算法.Xu等[1]提出利用视频中量化离散余弦变换(DCT)系数分布特征进行MPEG-2编码标准视频的双压缩检测.He等[2]提出自适应去块效应滤波器法,Jiang等[3]提出马尔科夫统计模型法,均能有效检测MPEG-4编码标准的双压缩视频.针对H.264双重压缩视频的检测算法,Liao等[4]提出利用AC系数分布带来变化的方法,以及Su等[5]提出采用去块效应滤波器的方法.然而,上述算法只能检测两次压缩过程采用不同量化参数(QP)的双压缩视频.在实际应用场景中,篡改者可以从视频比特流中读取QP信息,在重压缩过程中使用相同值.当使用相同QP对单次压缩视频再次压缩时,压缩前后两者之间的差别将变得极其微小,进而导致上述算法失效[6].在图像重压缩检测领域,也存在类似问题,即两次压缩量化参数相同会导致重压缩痕迹十分微弱.Huang等[7]首次提出相同量化矩阵下JPEG图像的双压缩检测,发现随着压缩次数n的增加,第n次和第n+1次压缩的图片中不同JPEG系数的数量呈递减趋势.Yang等[8]利用误差块的统计性差异来检测相同量化矩阵下单次和双次JPEG压缩;Chen等[9]受此启发,提出采用P帧中的宏块模式(MBM)来进行相同量化因子下MPEG视频双压缩检测.Zhang等[10]受文献[7]中统计特性规律启发,提出比差集(RDS)统计方法,用于统计相邻两次压缩视频版本间同一I帧量化DCT系数变化情况,来检测H.264标准下相同QP的双压缩视频.目前,针对H.264相同QP双压缩检测的算法仍然较少,文献[10]的算法只考虑了量化DCT系数一种编码参数,其检测准确率会随着QP增大而明显下降.
针对以上问题,本文提出一种将I帧宏块帧内预测模式(IPMBM)与量化DCT系数相结合的双编码参数模型,用于检测相同QP的H.264双压缩视频.首先,引入I帧IPMBM的概念,该模式由宏块类型和预测模式两部分构成.文献[9]发现,当使用相同量化因子多次压缩MPEG视频后,视频P帧MBM变化的宏块数量具有收敛性.我们发现H.264视频中I帧IPMBM在使用相同QP多次压缩后的视频中其变化数量也有相同的收敛性.采用相同QP对视频实施多次压缩后,提取相邻两次压缩版本之间帧内预测模式发生改变的宏块数量及量化DCT系数发生变化的数量,将两者组合为分类特征,然后利用支持向量机(SVM)来分类判断视频是否经历相同QP的双压缩.本文的编码参数模型结合了两种不同的编码参数,取得了更为稳健的检测效果.最终实验表明,本文算法检测的平均准确率优于文献[10]中算法,且在QP值较大的情况下仍能保持较高的检测准确率.
本文首次提出一种新的双编码参数模型,包含两部分特征,分别为I帧IPMBM和I帧量化DCT系数,检测模型如图1所示.由于I帧在编码过程中先后涉及帧内预测和DCT两部分,而重压缩过程中的预测块是基于它上方和左方相邻块重构获得,所以编码器会在计算每一种宏块类型和帧内预测模式的组合方式后选取一种最佳方式.因此,即使是以相同QP值进行多次压缩时,也会导致当前块宏块类型和帧内预测模式发生变化,而量化DCT系数的变化则由预测过程以及进一步的量化(包括取整和截断)操作共同引起.重压缩过程会导致上述两种参数同时发生变化,且两者具有相同的统计变化规律.帧内预测模式和量化DCT系数属于两种不同的编码参数,将两者结合可提升对单双次压缩视频的辨别能力.因此,本文提出将IPMBM和量化DCT系数两者相结合的双编码参数模型,并采用机器学习的框架,将得到的新特征输入到SVM中进行分类,可以同时达到提高准确率和增强稳健性的效果.
图1 本文双压缩检测的通用模型Fig.1 The double compression detection model
根据宏块分成子块的方式,H.264中I帧亮度宏块类型有2种基本类型,分别是i16×16和i4×4,相对应的帧内预测模式分别有4种和9种.定义宏块类型和帧内预测模式两者组合为I帧宏块帧内预测模型,即
IPMBM(M)=[MtypeMpre]
(1)
若宏块类型和帧内预测模式两者均相同,则认为这两宏块具有相同IPMBM.当对一段视频采用同一QP值重复压缩时,如果经历了第n和n+1次压缩后处于同一位置处的宏块具有相同IPMBM,则此宏块在第n+1次压缩过程中处于稳定状态,反之状态不稳定.定义每帧I帧中所有不稳定宏块的平均数量如下:
(2)
式中:N表示该段视频中I帧的数量;Mn(i,x,y)则表示经历n次压缩的视频中处于帧号i位置处I帧(x,y)处的宏块,对应的指示函数为
(3)
式中:M1和M2为2个宏块.为了解决不同分辨率的稳健性,得到的Sn需要除以一帧中的宏块总数NT,因此特征向量F中特征元素Fn的具体计算方法如下:
Fn=Sn/NT
(4)
图2为从单次压缩的视频中提取的Fn的平均值,其中横坐标为Fn中的元素编号,即视频相同量化参数下经历的压缩次数n;纵坐标为Fn中的元素平均值.
由图2可见:随着n的增加,Fn值严格单调递减,因为稳定的块在下一次压缩中将不再改变.同时,F1值比较大(当QP<40时,F1>0.5),这是因为对于一个宏块而言,IPMBM有4+916种可能情况(1个i16×16宏块和1个i4×4宏块分别对应有4种和916种可能),并且宏块的帧内预测模式受其本身像素点和相邻两个宏块像素点共同影响.图中曲线后3点间连线的斜率比前2点间连线的斜率小很多,下降趋势变缓是因为在多次压缩过程中,像素和宏块帧内预测之间相互影响的趋势越来越稳定.
图2 不同QP下Fn(n=1,2,3,4,5)平均值的特征曲线Fig.2 Characteristic curves of the average Fn(n=1,2,3,4,5) with different QPs
图3为从单次压缩的视频中统计得出的量化DCT系数的变化率,横坐标代表压缩次数n,纵坐标代表I帧中量化DCT系数的变化率.
在给定的视频中获取比差集
(5)
由于该集合的大小等于一段视频中I帧数目,而I帧的数目是随着视频的大小而变化,因此采用一种方法来得到固定维数的特征,具体如下.
图3 不同QP下的特征曲线Fig.3 Characteristic curves of the with different QPs
图4 算法原理图Fig.4 Framework of the proposed algorithm
首先将集合H中的数据按升序排序,然后从集合中选取3个四分位置点处的值、第1个位置点的值以及集合H中所有元素的平均值,共5个数值组成5维特征.集合H按升序排序,故3个四分位置点的值可以反映出数值变化的趋势,四分位置点的计算方法如下:
(6)
式中:[X]表示对X采取四舍五入.因此四分位置点的值可以表示为:
(7)
提出一种基于I帧IPMBM和量化DCT系数两者相结合的统计特征,并且采用SVM进行分类,算法整体框架如图4所示.
算法详细流程共分为3个步骤,具体如下.
(3) 构造特征向量作为SVM的输入,表达式为F=[FnF′],n=1,2,…,K,利用训练集训练得到对应的检测模型后,便可进行相同QP下H.264的双压缩视频检测.其中:Fn由IPMBM特征统计得出,可根据式(4)计算;F′自RDS中根据式(6)和(7)得出的5维特征.根据实验结果,当K设定为5时可较好地平衡正确率和复杂度两者间关系.算法具体流程如图5所示.
图5 本文双重压缩检测算法细化流程图Fig.5 Scheme of the proposed double compression detection
实验中视频样本为常用的50段原始YUV序列,来自网站Xiph.org Video Test Media.为了增加样本数量,在实验过程中将所有原始YUV序列进行分割,以每100帧作为一段新的YUV序列,对于不满100帧的部分直接舍弃,如果原始YUV序列超过1000帧,则只使用前面的1000帧,最终生成132段通用影像传输格式(CIF)和78段标准化图像格式(QCIF)的新YUV序列.在H.264编码标准下以特定QP值对这些原始YUV序列编码,得到的视频作为双压缩检测实验的负样本.之后对所有负样本,以同一QP值进行二次压缩编码,作为相同QP值下实验的正样本.实验过程中正负样本被随机分配到训练集和测试集中,但同一段原始YUV分割出来的若干段新YUV序列经编码得到的视频将随机同时分配到训练集或同时分配到测试集.实验中采用FFMPEG编码器来压缩视频,其中图像组(GOP)长度固定为10,QP取值为1~51.选用基于径向基函数(RBF)核的非线性SVM分类器进行分类,通过5折交叉验证对超参数进行网格寻优.其中惩罚参数c的变化范围为[2-20,220],RBF核函数g的变化范围为[2-20,220].每个QP值的最终实验准确率通过计算30次5折交叉验证结果的平均值得出.实验中正负样本数量相等,因此利用准确率来衡量算法的性能,表达式为
AR=(TPR+TNR)/2
其中:TPR为真正类率;TNR为负正类率.表1为编码参数.
表1 本文算法视频编码参数设置表Tab.1 Parameters for the encoding sequences
目前,H.264视频相同量化参数双压缩检测算法很少,如Zhang等[10]采用基于量化DCT系数构建的特征向量,并结合SVM分类器进行检测.IPMBM为Chen等[9]文中MBM在H.264视频中的推广模型,可用于检测同量化参数情况下的H.264双压缩视频.上述两种算法代表了同量化参数双压缩检测的两类经典思想,本文与这两种算法进行了对比.
图6为QP=1~51共51种情况下双压缩检测的准确率,每个QP都对应210段正样本和210段负样本.总体而言,本文算法的平均准确率为 90.01%,比IPMBM算法提高了5%,比文献[10]中算法提高了 1.6%.
图6 算法准确率对比Fig.6 Comparative results with the algorithms
由图6可见:在QP<20时,本文算法和文献[10]的准确率基本持平,而IPMBM算法较低;当QP为20~30时,本文算法的准确率略低于文献[10], 而IPMBM准确率较低,基本呈一个直线下降的趋势,其原因可见图2中IPMBM部分的曲线,QP=20和QP=30这两条曲线相邻两点之间连线的下降趋势区别较小,区分度不明显,因而导致组合后的特征检测准确率与文献[10]相比反而有所下降;当QP>30时,本文算法的准确率明显优于文献[10],说明本文方法对量化程度不敏感,即使当QP>40时,检测准确率仍能保持在 74.5% 以上.图6显示基于IPMBM部分的特征在QP值较大时能起到有效检测的效果.原因可从图2和3中看出,当QP较大时,文献[10]中采用的特征前2点对应的纵坐标值下降趋势明显变缓,区分度明显下降;而基于IPMBM的曲线图中前2点对应的纵坐标值仍保持较大的下降趋势,且第1个点的值远大于第2个点.
随着QP的增大,3条曲线均呈一定的下降趋势,这是因为量化程度高会导致宏块和量化DCT系数更容易趋于稳定状态,这使特征中的每维数值更小,区分度也随之变小,因而判断准确率下降.同时可以看到当QP>31时,文献[10]中的算法准确率明显下降,而此时本文算法准确率下降比较缓慢,且保持一个较高的值.
IPMBM部分特征选取维数需考虑到准确率和复杂度两者的平衡关系,因此针对本文算法IPMBM部分选取特征维数参数为5(con5)的情况,设计了2个针对算法参数设定的对比实验,即维数分别为4和6(即con4和con6).表2列举了部分QP取值情况下3种设定不同参数值的实验的准确率,其中con4平均为 89.67%,con6平均为 89.86%,而本文算法为 90.01%.由此可见,IPMBM部分特征维数选取为5时性能更佳.
表2 不同维数在部分QP值时的准确率Tab.2 Acurracy with some QPs
基于I帧IPMBM和量化DCT系数相结合的双编码参数模型,提出一种H.264同量化参数双压缩检测算法.利用2种不同编码参数的收敛性构建分类特征;在特征提取过程中,通过对视频采用相同QP值压缩多次,分别对相邻两次压缩版本之间I帧中IPMBM和量化DCT系数不同的个数进行统计并组成特征,最后将特征结合SVM分类器来判断视频是否经历过双压缩.实验证实,本文算法能有效检测视频是否经历双重压缩,准确率比现有算法有所提升,且对不同分辨率有较强的稳健性.不足之处在于目前算法仅针对H.264编码标准,未考虑其他编码标准,且测试视频样本内容比较单一,因而下一步工作可考虑将该算法拓展到HEVC视频的双压缩检测并增加视频样本内容多样性.