文献标识码: A
文章编号: 0258-7998(2012)01-0133-03
2003年3月发布的H.264是目前最新的视频编码标准。它采用了1/8精度的运动估计、4×4整数变换、CAVLC和CABAC等新技术,使得压缩效率和图像播放质量有了显著提高。与以往标准相比,在相同率失真的条件下,编码效率提高了50%左右。H.264应用范围非常广阔,包括视频会议、可视电话、会议电视等即时通信,以及数字电视广播、数字存储、流媒体等方面。
随着视频应用的日益广泛,视频的安全性变得越来越重要。基于以往的标准,人们研究了许多加密算法:有用传统密码技术进行全部加密的方法,如DES算法、CSC算法和VEA算法,这类算法虽然有较高的安全性并且不改变压缩比,但是计算复杂度很高;有对DCT系数进行加密的方法,如分段置乱算法,这类算法虽然有较低的计算复杂度,但是安全性低于全部加密的算法,压缩比也有所改变;有在熵编码过程中进行加密的方法,如多状态索引方法,这类算法虽然计算复杂度低,对压缩比的影响较小,但在已知明文攻击情况下是不安全的。上述方法各有优缺点,而且大多针对MPEG标准,因此研究适合H.264特点的安全加密技术成为目前研究的热点。
针对现有视频加密算法的不足,本文提出一种基于H.264的可感知加密算法。
1 加密数据元素的分析与选取
对H.264编码宏块语义层进行分析,决定提取帧内预测模式字(Intra Prediction Mode)、运动向量差值(Motion Vector Differ_ence)和残差系数(Residual Coefficient)三类定长语法元素(fix-length code)进行加密操作[1]。
1.1 帧内预测模式字
根据每个宏块所属片组的不同,每一个宏块都有几种编码预测模式。但帧内预测编码是所有片组编码类型中都支持的。对亮度像素块而言,存在有Intra_4×4, Intra_8×8、Intra_16×16三种预测模式。Intra_4×4模式下有9种预测模式,适用于对图像细节部分进行编码,Intra_16×16有4种预测模式,适用于对平坦区域进行图像编码[2]。
采用Intra_4×4的编码模式字进行加密操作。每一个4×4块都是通过上方和左方像素预测而来,如图1所示,a-p为待预测像素,它利用相邻块中已经解码的A-Q像素来进行预测。对每一个4×4块,总共有9种模式供选择[2],其中除了DC模式,另外8种预测模式的方向也在图1中。
Intra_4×4的编码预测模式总共有9种预测模式,至少需要4个bit位来进行编码。在H.264的标准中,利用一个“prev_ Intra_4×4_pred_mode”字段来排除一种预测方式,用另外3个bit位来表示余下的8种预测模式。因此,只对后3个bit位进行加密扰乱,这样的加密过程中,不会影响到其他字段,也不会产生额外的码流。
1.2 运动向量差值
如图2所示,在P帧或B帧中,每个宏块(16×16像素)可以有4种方式来进行分割:16×16、8×16、16×8、8×8。如图2(d)是采用8×8模式,分为4个子宏块(8×8像素)。每个字宏块可以进一步进行分割:8×8、4×8、8×4、4×4。
每一个分区或者子宏块都有一个单独的运动向量MV(Motion Vector),用于引用前面参考帧的对应区域来对当前块进行预测编码。每个预测区的MV都需要相当数目的比特位来进行编码。为了进一步减少比特数,可以利用邻近的MV之间的相关性进行预测编码。后一个MV可由前面已经编码的MV预测得到,只需要对它们的差值MVD(Motion Vector Difference)进行编码。在H.264中,MVD值是采用指数哥伦布(Exp-Golomb)进行编码的,这是一种变长编码[3]。
本文只对MVD的符号位进行加密,对于每一个MVD值,只需要对一个bit位进行加密操作。
1.3 残差系数
在H.264中,残差块系数通过CAVLC和CABAC进行编码[4]。在进行CAVLC编码的过程中,涉及到以下几个语义字段[2]:非零系数数目(Total Coeffs)、拖尾系数数目(TrailingOnes)、非零系数幅值(Level)以及最后一个非零系数前零的个数(TotalZero)和每个非零系数前零的个数(RunBefore)。 经过分析,只有TrailingOnes和Level的符号位是属于定长字段[6],因此提取这两个字段的符号位进行加密操作。如图3所示。
2 算法设计
分别引入三个不同的控制参数P1、P1、P3对预测模式字IPM、运动向量MVD和残差系数Residual Coefficient的加密强度进行控制[1],具体方案为:以P1、P2的概率分别对IPM、MVD进行加密,当P1、P2从0到1进行变化时,相应地进行不加密到完全加密;以P3对Residual Coefficients 系数符号位进行不加密到完全加密控制。
下面是算法的具体伪代码描述:
While( syntax element)
{
Switch(syntax element_type)
{
Case: IPM read 3bits from pseudo random sequence;
new_mode=original_mode XOR 3_bits;
break;
Case:MVD Read 1bits from pseudo random sequence;
new_sign=original_sign XOR 1_bits;
break;
Case:DCT coefficients for each none zero coefficients
read 1 bits from pseudo random sequence;
new_sign=original_sign XOR 1_bits;
break;
}
scan for next syntax element;
}
3 仿真结果与分析
3.1 实验环境
实验测试条件:H.264/AVC标准,JM10.2版本,以IPPP方式进行编码,I帧刷新率为10,帧率为30 F/s,2 GB内存,Intel T5670处理器,并用VS2008完成对JM10.2代码的调试。实验中采用CIF格式的352288的foreman作为视频序列。
3.2 加密效果分析
单独加密IPM字段,只是对亮度信息进行加密,如图4中人脸和轮廓信息清晰可见;单独进行MVD加密的过程中,如图5中,I帧图像完全不受任何影响,B、P帧的I bock也完全不受影响,关键信息很容易泄露。单独对残差系数进行加密,如图6,与IPM一样,图像的轮廓信息没有很好的隐藏。另外,从对抗解密攻击能力上来看,单独对一种加密元素进行分析加密空间更小,也更容易实施破解。因此,在视觉安全性要求比较高的场合,应该联合对所有三种元素进行加密,从图7可以看到,随着加密强度不断提高,视频图像可感知性不断下降,在最强的加密强度下,整幅图像完全被扰乱有很高的视觉安全性。各种方汉加密后PSNR值如表1所示。
3.3安全性分析
在加密方案中,保持视频格式的语义兼容性,加密操作并不改变相关字段的长度。攻击者会很自然地通过单独猜解每个字段元素的值来进行Cipher-only Attacks[7]。
3.4 性能分析
一个加密算法的计算复杂度主要取决于它要进行加密的数据量。本文加密的数据量主要包括IPM、MVD和残差系数。在一个宏块中,IPM和MVD符号位,还有Residual Coefficient的符号位需要加密,因此,要加密的数据量同整个视频数据相比,只占很小的部分。所采用的加密操作也仅仅是对相关的bit位进行“异或”操作,所需的系统开销极小,基本上不会对编解码带来影响。
本文研究了一种在H.264编码下进行Perceptual Encryption的方法,通过对语法元素的分析和编码方式的研究,选取了IPM、MVD和Residual Coefficient这三种定长字段的元素进行加密。通过引入概率参数来对每种类型的字段加密强度进行控制,分析加密不同元素所带来的视频加密效果。实验结果表明,单独加密其中任何一种元素,都能对图像带来很大的干扰。但要获得很好的安全性,必须联合加密三种元素。这种加密方案具有很好的安全性和实时性,而且不会带来额外的码流,保持了视频的压缩比不变,并且可以调整不同的加密强度,适用于各种应用的需求。
参考文献
[1] 刘萧.基于H.264编码的视频加密研究[D].杭州:浙江大学计算机科学与技术学院,2010:18-29.
[2] 毕厚杰. 新一代视频压缩编码标准: H.264/AVC[M]. 北京:人民邮电出版社,2005.
[3] 李晓举,冯战申,胡友情.基于H.264 CAVLC熵编码的视频加密方案[J].计算机工程与应用,2009,45(34):114-117.
[4] 包先雨,蒋建国,袁炜,等.H.264/AVC标准中基于CABAC的数字视频加密研究[J].通信学报,2007,28(6):24-29.
[5] QAO L,NAHRSTEDT K. A new algorithm for MPEG video encryption[C]. In:Proceeding of the Frist International Conference on Imaging Science,Systems and Technology(CISST’ 97),LasVegas,Nevada,1997:21-29.
[6] LIAN S G,LIU Z, REN Z. Secure advanced video coding based on selection algorithms[J]. IEEE Transactions on Consumer Electronics,2006,52(2):621-629.
[7] 李晓举,忽海娜,刘丽.一种基于H.264CABAC的视频加密方案[J].电信科学,2010,26(7):80-83.