基于运动矢量的H.264信息隐藏算法

2014-06-05 09:50苏育挺张新龙张承乾
关键词:菱形矢量容量

苏育挺,张新龙,张承乾,张 静

(天津大学电子信息工程学院,天津 300072)

基于运动矢量的H.264信息隐藏算法

苏育挺,张新龙,张承乾,张 静

(天津大学电子信息工程学院,天津 300072)

提出了一种基于H.264的视频信息隐藏算法.该算法引入菱形编码,通过轻微调制运动矢量实现信息的嵌入过程.菱形编码不仅可以有效减少运动矢量修改率,同时可以提高嵌入容量.在嵌入过程为减少信息嵌入对码率和视频图像质量的影响,选择纹理复杂区域和较大运动矢量为嵌入点.实验结果表明,该算法在确保良好视频质量的条件下,可以满足大容量信息嵌入的要求,对压缩码率的影响较小.

运动矢量;H.264;菱形编码;嵌入容量;信息隐藏

近年来多媒体技术的快速发展及互联网的普及给人们带来种种便利,同时也频频发生多媒体信息的非法利用问题,因此网络环境下的信息安全问题日益突出.信息隐藏技术作为解决信息安全问题的一种重要手段在20世纪末迅速发展起来,一方面它有助于解决和防止数字化信息被篡改、仿造、盗版和攻击,另一方面可以作为传递特定信息的附加信道.多媒体信息隐藏技术的研究和应用中,以数字视频为宿主媒体的情况非常广泛.H.264作为新一代的视频压缩编码标准,有着优异的压缩性能和视频质量,因此在网络视频、高清数字电视、视频实时通信等领域都得到了广泛的应用.现有的针对H.264/AVC的信息嵌入方法主要包括基于量化或未量化的整数变换系数实现信息嵌入[1-3],基于帧内预测模式进行信息隐藏[4]和利用运动向量进行信息嵌入[5-7].

Kutter等[5]首先提出了利用运动矢量实现信息隐藏的方法,他们通过轻微地调整运动矢量的奇偶性使之满足奇数运动矢量代表1,偶数运动矢量代表0,从而实现信息隐藏.但是这种算法在嵌入过程中忽略了运动矢量改变所带来的影响,导致载密视频的输出码率明显增大,所以文献[6-9]在此基础上提出了各种改进算法,他们或者选择幅值较大的运动矢量,或者选择相角较小的运动矢量,或者通过判断运动矢量的相角来选择需要修改的分量,或者通过修改H.264运动矢量1/4像素值搜索位置的奇偶性来进行信息隐藏.总而言之,这些改进算法都在一定程度上减弱了对视频码率的影响,但也正是由于他们有选择地判断和修改运动矢量,导致算法的嵌入容量也随之降低.

为了实现输出码率和嵌入容量的权衡,本文引入菱形编码,通过菱形编码对运动矢量进行调制,既可以改善码率显著增加的缺点,又保证了有很好的嵌入容量.

1 H.264的帧间预测编码

H.264帧间预测不同于以往编码标准的地方在于扩大了块尺寸范围(16×16~4×4),采用了亚像素运动矢量(亮度成分采用1/4像素精度,色度成分采用1/8像素精度)[10]以及使用了多参考帧.

H.264编码中,每个宏块(16×16像素)可以按以下4种方式进行分割:1个16×16,或2个16×8,或2个8×16,或4个8×8.而8×8的模式还可以进一步分割:1个8×8,或2个8×4,或2个4×8,或4个4×4,如图1所示.这种分割方式提高了宏块之间的关联性,减少了预测之后的残差数据.

图1 宏块及子宏块分割Fig.1 Partitions of macroblock and sub-macroblock

H.264/AVC编码器通过最小化Lagrangian代价函数来实现对每一个宏块分割模式的选择.当前宏块的最优分割模式应当使得编码后的Lagrangian代价函数值modeJ最小.

式中:λmode为Lagrangian参数;Drec(Sk,Ik|Q)为编码后比特流的比特率,即码率;Rrec(Sk,Ik|Q)为编码后失真度;Sk表示第k个宏块;Ik为相应宏块的编码模式;Q为量化值[11].

H.264帧间编码宏块或者子宏块都是由参考帧中相同尺寸的区域预测得到的,它们都有一个独立的运动矢量,这些运动矢量和分割的模式一起被编码传输到比特流中.对于大的分割尺寸而言,模式选择和分割类型只需要少量的比特,但是运动补偿残差在细节区域的能量将非常高.而对小尺寸分割而言,运动残差补偿能量较低,但是表示运动矢量和分割类型则需要大量的比特.因此,大的分割尺寸适合平坦区域,而小的分割尺寸则多适用于细节区域.

2 基于运动矢量的信息隐藏算法

本文提出了一种通过菱形编码来调制运动矢量的大容量信息隐藏算法.隐藏算法和压缩编码过程相结合,具体算法流程如图2所示,对于P帧和B帧编码宏块,首先通过优化Lagrangian代价函数选择宏块分割类型,对每个子宏块分别进行运动估计,得到运动矢量,同时选出适合隐藏信息的运动矢量,然后通过菱形编码对运动矢量做轻微地调制,在菱形编码的同时实现了信息的嵌入.最后,利用修改后的运动矢量进行运动补偿,将残差信号进行编码传输.

图2 基于菱形编码的信息隐藏方案Fig.2Information hiding scheme based on diamond coding

2.1 菱形编码

通过菱形编码,能够实现在一个向量中隐藏一个2k2+2k+1进制的数,其中k为菱形编码参数.

假设(a, b)、(p, q)是两个向量,k是一个正整数值.集合Sk(p, q)代表所有到向量(p, q)的距离不大于k的向量(a, b)的集合,即

Sk中的每个向量都被称为向量(p, q)的邻域向量.图3给出了k=1和k=2时Sk的情况.

图3 菱形编码模型Fig.3 Model of diamond coding

Sk代表集合Sk中元素的数目,计算式为

式中:S1=5;S2=13.

菱形编码通过引入一个菱形函数来计算向量(p, q)的菱形特征值(DCV).计算方法为

其中l=Sk.菱形特征值有两个重要的特点:①向量(p, q)的菱形特征值属于{0,1,2,…,l-1};②集合Sk(p, q)中任意两个向量的菱形特征值都互不相同.假设Ek代表要嵌入的l进制数值,则Ek必定属于{0,1,2,,1}l-….因此,菱形特征值(,)f p q和kE之间的模距离可以定义为

根据式(4),对于每个参数k,都可以构建一个距离模型kD.在图4中列出了几个典型的kD.

图4 距离模型Fig.4 Model of distance

根据dk选择对应的邻域向量(p′, q′)使之来替换原始向量(p, q).邻域向量(p′, q′)也是集合Sk(p, q)中的一员,并且(p′, q′)的菱形特征值正好等于嵌入信息Ek.因此可以通过式(5)来正确地提取隐藏信息值.

由式(1)可知,在集合Sk中到向量(p, q)的最远距离即为k,因此菱形编码算法能保证在嵌入信息Ek时,向量(p, q)的失真不会超过k.H.264对运动矢量采用1/4像素精度,所以本算法的最大失真为k/4像素.由于隐藏信息可以转换成l=2k2+2k+1进制的数,所以参数k既决定了嵌入容量,又决定了运动矢量的修改程度,而运动矢量的改变对码率有直接影响.由以上分析可知,k值越大,隐藏容量越大,对运动矢量的修改程度也越大,对视频质量和码率的影响也越来越大,因此参数k的选择应该根据需要在嵌入容量和码率之间权衡判断.为保证隐藏操作对视频码流的影响较小,本文选择了k=1和k=2的情况进行讨论.

2.2 信息隐藏点的选取

运动矢量是隐藏信息的一个很好的载体,但是并不是所有的运动矢量都适合进行信息隐藏[6].如果对运动矢量不加以筛选就进行信息隐藏,一方面会导致码率增加比较大,另一方面会导致重建视频画面出现一定程度的视觉失真[6-7],所以本文采用了一种宏块分割类型与运动矢量阈值相结合的方式来选择信息隐藏点.根据人眼视觉系统在时间域上的掩蔽效应,人眼对运动剧烈区域的轻微失真不敏感,本算法采用在大的分割尺寸中选择大的运动矢量阈值,在小的分割尺寸中选择相对较小的阈值,如式(6)所示.只有运动矢量VM的水平分量VXM和垂直分量VYM的幅值都大于阈值的时候,才能作为候选运动矢量,如式(7)所示.一般情况下,阈值越大,隐藏信息的不可见性越好,但是嵌入容量也相应地降低.相反,阈值越小,隐藏信息的不可见性越差,但是嵌入容量会增加.所以可以根据实际嵌入容量的需要来选取不同的阈值.由于跳过的块(Skipped)中没有运动残差(MVD),只有预测运动矢量,如果在其中隐藏信息,隐藏信息不会被编码传输,从而造成隐藏信息的丢失,所以在跳过的块中不进行信息隐藏.

式中T0、T1、T2为根据不同宏块类型设定的不同阈值,且T0>T1>T2,在大量实验的基础上,本文选取T0、T1、T2分别为4、3、2.

式中MVX和MVY为运动矢量MV的水平和垂直分量的绝对值.

2.3 信息嵌入过程

(1) 计算选定运动矢量的菱形特征值f.

(2) 将隐藏信息的二进制序列转换成l进制数Ek.

(3) 计算菱形特征值与隐藏信息值的模距离dk.

(4) 在模距离模型中搜索使f( MV′X,MV′Y)=dk的新的运动矢量(MV′X,MV′Y),并检查MV′X和MV′Y的幅值是不是同时满足大于设定的阈值.如果是,用它替换原来的运动矢量并进行编码传输;如果不是,保留嵌入信息,留待下一个运动矢量再次嵌入.

(5) 检查嵌入信息是否嵌入完毕,如果不是,返回步骤(1)继续嵌入,否则继续进行编码.

2.4 信息提取过程在解码端,可以获取宏块类型和相应的运动矢量. (1) 判断宏块类型并根据式(6)和式(7)判断相应的阈值.

(2) 计算该宏块或者子宏块的运动矢量.

(3) 检查VXM′和VYM′是否同时满足大于设定的阈值.如果不满足,跳过该宏块或者子宏块,选择下一个宏块.否则通过式(10)计算该运动矢量的菱形特征值,也就是隐藏信息的l进制数值.

(4) 将计算得到的l进制数值转换成二进制序列,就是原始隐藏信息.

(5) 计算下一个宏块的运动矢量,直到所有隐藏信息全部提取完毕.

3 实验结果分析比较

本算法在JM17.2[12]上实现了信息的隐藏和提取过程.文中对11组标准序列进行了测试,这些序列既包含画面运动剧烈序列,也包含画面运动缓慢序列.隐藏信息是经过置乱加密的伪随机序列,即{0,1}.表1为编码器的一些基本参数.

表1 编码器的基本参数Tab.1 Basic parameters of encoder

图5分别列出了原始视频、本算法、文献[8](MVCA)和文献[9](MEQP)算法嵌入信息后的视频图像,从主观视觉上完全无法察觉视频有信息隐藏的痕迹.

图6给出了Stefan序列(0T、1T、2T分别为4、3、2)以及在增大运动矢量阈值(0T、1T、2T分别为5、4、3)的情况下每帧的信噪比(PSNR).从中可以看出本算法对PSNR的影响很小,两种情况下最大分别为0.037%和0.162%.表2列出了原始视频、本算法、MVCA和MEQP算法亮度通道的PSNR变化情况,从中可以看出本算法对PSNR的影响都十分有限,对峰值信噪比的影响在k=1时最大为0.045,3%,k=2时最大为0.177,6%,个别视频还出现了PSNR增加的情况.这就说明本算法在视频内容的修改上无论是从主观视觉还是从客观分析都有一个很好的性能,对保持隐藏信息的不可见性有一个很好的保证.3种算法在对PSNR的影响方面不相伯仲.

图5 视频第15帧主观比较Fig.5 Visual comparison of the 15th frame

图6 Stefan序列亮度分量信噪比Fig.6 Luma PSNR of Stefan video

表2 PSNR的比较Tab.2 Comparison of PSNR

但是本算法的优势在于有较大的信息容量.表3为本算法与MVCA和MEQP算法在信息嵌入容量方面的比较结果.从表中可以看出本算法的嵌入容量远远大于MVCA和MEQP,且随着k值的增加,信息容量也不断增加.同时视频内容对信息容量也有着一定的影响,在视频序列的画面运动比较剧烈的情况下(如Stefan序列),本算法在k=1时嵌入容量(18,620,bit)接近MVCA(9,444,bit)和MEQP (9,538,bit)效果的2倍.而在视频序列画面运动缓慢的情况下(如Waterfall序列),本算法(878,bit)也要优于MVCA(604,bit)和MEQP(657,bit).因此,视频内容运动越剧烈,嵌入容量越大,相反嵌入容量越小.这是因为在画面运动剧烈的视频中运动矢量的幅值较大,包含更多的信息隐藏点,有利于信息隐藏;而在画面运动缓慢的视频序列中跳过的块比较多,不利于实现信息的隐藏.

表3 信息容量的比较Tab.3 Comparison of information capacity

此外,本算法对输出比特率的影响也是可以接受的.图7为Stefan序列(0T、1T、2T分别为4、3、2)以及在增大运动矢量阈值(0T、1T、2T分别为5、4、3)的情况下每帧的比特率,从中可以发现在8~22帧之间比特率比较高,这是因为这几帧正是视频内容中运动剧烈的时候,对运动矢量修改量有所增加,从而导致了输出比特率的升高.表4列出了原始视频以及3种算法的输出比特率的情况.由于3种算法均采用的是修改运动矢量的方法来进行信息隐藏,所以皆会导致输出比特率有一定的增加,但都保持在一个合理的范围之内.Mobile序列在本算法k=1时比特率的增加为4.463%,虽然比MVCA的1.399%和MEQP的2.140%要高,但是从表3可知其嵌入容量却是MVCA和MEQP的2倍多,在保证大容量嵌入的同时,控制比特率在可接受的范围之内.

图7 Stefan序列比特率Fig.7 Bitrate of Stefan video

表4 比特率的比较Tab.4 Comparison of Bitrate

从图5~图7以及表2~表4分析得出本算法不会造成视频图像质量的感知失真.同时通过比较图7(a)和7(b)还可以发现随着运动矢量阈值的增大,本算法对Stefan序列比特率的影响由原来的3.323%降到1.832%,但嵌入容量也会相应下降.不过相比于MVCA(13,203,bit)和MEQP(12,993,bit),在增大运动矢量阈值(0T、1T、2T分别为5、4、3)时本算法的(17,878,bit)还是有优势的.

4 结 语

本文提供了一种基于运动矢量的H.264视频的信息隐藏和盲提取算法.本算法通过对不同宏块类型赋予不同的阈值来进行信息隐藏点的选择,同时引入菱形编码,减少运动矢量修改率,提高嵌入容量.实验结果表明本算法在提高了嵌入容量的同时又保证了视频质量和隐藏信息的不可见性.

[1] Shahabuddin S,Iqbal R,Shirmohammadi S,et al. Compressed-domain temporal adaptation-resilient watermarking for H.264 video authentication[C]// IEEE International Conference on Multimedia and Expo,2009. ICME 2009. New York,USA,2009:1752-1755.

[2] Mansouri A,Aznaveh A,Torkamani-Azar F,et al. A low complexity video watermarking in H. 264 compressed domain[J]. IEEE Trans on Information Forensics and Security,2010,5(4):649-657.

[3] Zhang Jing,Ho A,Qiu Gang,et al. Robust video watermarking of H.264/AVC[J]. IEEE Trans on Circuits and Systems,2007,54(2):205-209.

[4] 胡 洋,张春田,苏育挺. 基于H. 264/AVC的视频信息隐藏算法[J]. 电子学报,2008,36(4):690-694.

Hu Yang,Zhang Chuntian,Su Yuting. Information hiding algorithm based on H.264/AVC video[J]. Chinese Journal of Electronics,2008,36(4):690-694(in Chinese).

[5] Kutter M,Jordan F,Ebrahimi T. Proposal of a Watermarking Technique for Hiding/Retrieving,Data in Compressed and Decompressed Video[R]. Technical Report M2281,ISO/IEC Document,JTCI/SC29/WG11,1997.

[6] Fang Dingyu,Chang Longwen. Data hiding for digital video with phase of motion vector[C]// Proceedings of IEEE International Symposium on Circuits and Systems. Island,Kos,2006:1422-1425.

[7] Wu Guozheng. Motion vector and mode selection based fragile video watermarking algorithm[C]// 2011 IEEE International Conference on Anti-Counterfeiting,Security and Identification(ASID). Xiamen,China,2011:73-76.

[8] Xu Changyong,Ping Xijian,Zhang Tao. Steganography in compressed video stream[C]// Proceedings of the First International Conference on Innovative Computing,Information and Control,ICICIC’06. Beijing,China,2006:269-272.

[9] Xu Dawen,Zhu Hongliu,Wang Rangding. Information hiding algorithm for H.264 based on the motion estimation of quarter-pixel[C]// IEEE 2nd International Conference on Future Computer and Communication. Wuhan,China,2010:423-427.

[10] Sampath K Bavipati,Su Xiao. Secure compressed domain watermarking for H.264 video[C]//Seventh International Conference on Information Technology. Las Vegas,NV,USA,2010:387-391.

[11] 侯春萍,倪春亚,侯永宏. 基于EWF的H.264视频流UEP传输方案[J]. 天津大学学报,2012,43(4):309-314.

Hou Chunping,Ni Chunya,Hou Yonghong. Unequal error protection transmission scheme for H. 264 video streams based on EWF[J]. Journal of Tianjin University,2012,43(4):309-314(in Chinese).

[12] H.264/AVC Joint Model 17. 2(JM-17. 2)[EB/OL]. http://iphone. hhi. de,2011-05-03.

(责任编辑:金顺爱)

Steganography Algorithm Based on Motion Vectors of H.264

Su Yuting,Zhang Xinlong,Zhang Chengqian,Zhang Jing
(School of Electronic Information Engineering,Tianjin University,Tianjin 300072,China)

A steganography algorithm based on motion vectors of H.264 is proposed in this paper. The algorithm introduces the diamond coding to achieve information hiding by a slight modulation of motion vectors. The diamond coding can not only effectively reduce the modification rate of motion vectors but also improve the embedding capacity. In the embedding process, in order to reduce the effects of information embedding on bit rate and video image quality, regions with complex textures and larger motion vectors are selected as the embedded points. Experimental results show that the algorithm ensures good video quality and large embedding capacity, with little effects on bit rate.

motion vectors;H.264;diamond encoding;embedding capacity;video steganography

TN919

A

0493-2137(2014)01-0067-07

10.11784/tdxbz201204059

2012-04-26;

2012-09-20.

国家自然科学基金资助项目(61170239);天津大学自主创新基金资助项目.

苏育挺(1972— ),男,教授,ytsu@tju.edu.cn.

张承乾,zhangcqj@tju.edu.cn.

猜你喜欢
菱形矢量容量
改进的菱形解相位法在相位展开中的应用
一种适用于高轨空间的GNSS矢量跟踪方案设计
矢量三角形法的应用
水瓶的容量
小桶装水
基于矢量最优估计的稳健测向方法
三角形法则在动态平衡问题中的应用
鼹鼠牌游乐场
菱形数独2则
菱形数独2则