基于运动速度的视频水印算法
)
基于运动速度的视频水印算法
分类:IT
作者:张立和 米晓莉 孔祥维 字数:4567
来源:计算机应用研究 第4期
摘要:在运动矢量的基础上提出运动速度概念,并提出一种基于运动速度的压缩域视频流水印算法,给出相关检测性能分析。实验表明,该算法具有很强的鲁棒性,能抵抗一些格式上的变换。
关键词:视频水印; 运动矢量; 运动速度 中图分类号:tp391文献标志码:a
文章编号:1001-3695(2007)04-0187-03 0引言
随着高清晰度电视(hdtv)、视频点播(vod)等多媒体技术的迅速发展,在人们可以便捷地从网上获得自己喜欢的视频节目的同时,视频的非法盗版和复制也变得越来越容易了。因此,数字水印这种新兴数字产品版权保护技术在视频中的应用成为近年来学术界和商业界关注的焦点。
现有的视频水印技术从嵌入策略上可以分为三类:①将水印信息直接嵌入到原始视频图像序列中,然后进行视频编码,如空域直扩方法[1]和小波域视频对象分解方法[2]。虽然这类方法可以将静态图像水印算法移植过来,但是经过视频编码处理后,会造成部分水印信息丢失,为水印的提取和检测带来不便,而且其运算量大、效率低。因此这类方法在视频水印应用中的生命力不强。②在视频编码器中嵌入水印。如基于运动分析方法[3]。这类方法一般是通过修改dct系数,并且结合人类视觉特性,可得到较好的视频质量和较强的水印抗攻击能力,而且不会增加数据比特率。③把水印信息嵌入到视频压缩码流中。其最大特点是不需要完全解码和再编码[4~6],提高了水印嵌入和提取的效率。本文提出一种基于运动信息的第三类水印算法。运动信息(如运动矢量)关系到视频画面的时间连续性和平滑性,是视频压缩重点保护对象,数据压缩损失小,适合水印隐藏。但是在视频格式转换这种常见的视频处理过程中,由于编码结构gop中i、p、b帧数量及间隔的不同会导致预测的运动矢量发生较大变化。如果水印信息直接嵌入到压缩流的运动矢量中,很难抵抗格式转换攻击。在视频编码过程中,要保持视频运动画面的时间连续性,视频经过重新编解码后,在相同的帧间时间间隔内,宏块运动矢量应该基本保持不变,也就是宏块运动速度不变。因此,本文在运动速度概念的基础上,提出了一种压缩域视频流水印算法。这里运动速度是指运动矢量与参考帧时间间隔的比值。 1速度图概念
在基于帧编码的mpeg2中,每帧图像被划分为若干个16×16大小的宏块,运动矢量是描述帧中宏块运动的参量。在宏块相应位置处置以宏块运动速度而得到的图称为速度图。如图1所示,方格代表宏块,v(x,y)表示宏块(x,y)的运动速度。 2水印嵌入算法 2.1嵌入宏块的确定
假设用n(x,y)表示宏块(x,y)的临近宏块运动速度集合,n(x,y)决定(x,y)的变化。为了
不发生干扰,宏块(x,y)不应包含在任何其他嵌入位置的临近宏块集合之内。这样,如果视频图像有m×n个宏块,n(x,y)选取以(x,y)为中心的(2r+1)×(2s+1)矩形块,那么最多可嵌入宏块总数为
其中,符号[]表示高斯取整。 如果n(x,y)选取3×3的方块,则
水印嵌入时,既要考虑水印的鲁棒性,又要顾及水印嵌入量。n(x,y)的选择是一个很重要的问题。由于视频运动的多样性,使得速度图中运动速度取值的分布变化情况也呈现多样性。理想的解决方法是n(x,y)的大小随速度图中运动速度区域变化情况呈自适应变化。本文从水印容量上考虑,n(x,y)取3×3方块的固定大小,如图2所示。 2.2嵌入规则 3水印相关检测 3.1比特提取
求出p帧所对应的运动速度图。根据水印嵌入时所选定的n(x,y),在速度图中水印嵌入宏块处(x,y)作出如下判断,得出一个三值序列:
用w′(l)和w(l)分别表示提取出的水印序列和原来嵌入的水印序列。w′(l)∈{0,-1,1}、w(l)∈{-1,1},序列长度为n。
计算其中,∑n-1l=0w′(l)×w′(l)表示序列w′(l)中非零元素的个数。 3.2水印判定
设视频序列中p帧的数目为h个,所有的p帧依次作以上的检测,分别得到g0,g1,…,gh-1,计算平均值:
确定一个阈值tg,如果g≥tg,判定水印存在;如果g0;没有水印存在时,g=0。这是在统计意义下得出的结论。考虑到实际,结论如下:如果g非常接近0,说明视频中没有水印;否则,认为有水印。具体判断尺度需通过实验的方法来确定。 4实验仿真
实验选取352×288的视频流(http://www.mpeg2.de/video/streams),长度为450帧,编码比特率为1.5 mbps,gop包含15帧,i/p帧距离为3。攻击方法有格式转换和重新编/解码等。下面给出table tennis、mobile calendar、flower garden的实验结果。 水印不可感知性测试实验方案:对四种不同码率的table tennis、mobile calendar、flower garden视频嵌入水印信息,计算携带水印视频解码后生成的图像序列平均峰值信噪比。结果如表1所示。
经过大量实验发现,当嵌入了水印且以相同密钥检测水印时得到的g>0.1,而未嵌入水印或嵌入了水印但不是以同一密钥检测水印时得到的g值绝大部分小于0.01。为此,确定阈值tg=0.05。
水印鲁棒性测试实验方案:将携带水印的视频解码,按照编码参数i/p frame distance /frames in gop=6/30进行编码,提取水印时再将视频按照参数i/p frame distance /frames in gop=3/15重新编码,然后提取。将提取出的水印与100个随机水印(其中第50个水印为实际嵌入的水印)进行相关检测,计算g。实验结果如图4所示。可以看出,提取的水印与实际嵌入的水印相关程度最大,也就是g最大,而且远大于其他99水印的相关结果。
格式转换攻击测试方案:将加入水印的mpeg2视频转换成avi格式,检测水印时再恢复成mpeg2格式,然后进行相关检测,计算g。实验对100段视频作了这项测试,结果是相关检测值g>>tg,表明水印仍然能够被检测出来。表2给出其中三段视频的实验结果,分别计算了未嵌入水印时和嵌入水印后并经过格式转换攻击两种情况下的相关检测值g。 视频g值条件
嵌入水印时未嵌入水印时
由于此水印算法嵌入时改变的是运动矢量,不涉及到视频帧的具体内容,一些常用的图像处理不影响水印的检测,除非它引起了运动矢量很大的改变(而这样也必然引起了视频质量的明显下降)。 5结束语
文中提出的算法是通过改变视频序列帧中宏块运动速度的大小来嵌入水印。由于运动矢量反映的是帧中的某种空间信息,运动速度则反映的是帧中的某种空时信息,可以认为该算法是一种基于空时的水印嵌入方案。
mpeg2从本质上说是一种基于分块的运动预测与补偿的视频压缩方案。该水印算法正是针对mpeg2的这一特点提出的,它不能直接适用于基于对象的mpeg4格式的视频。但是在mpeg4中的对象纹理编码依然是一个基于分块的运动预测与补偿。所以,该水印算法经过适当修改也可用于mpeg4格式的视频。
本文中所涉及到的图表、注解、公式等内容请以pdf格式阅读原文。
因篇幅问题不能全部显示,请点此查看更多更全内容