数显金属探测器及数字视频水印和相关理论基础_第1页
数显金属探测器及数字视频水印和相关理论基础_第2页
数显金属探测器及数字视频水印和相关理论基础_第3页
数显金属探测器及数字视频水印和相关理论基础_第4页
数显金属探测器及数字视频水印和相关理论基础_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

河北科技大学硕士学位论文第1章绪论基于扩频的DCT视频水印方案水印信息嵌入到视频流I帧的色度的DCT的直流系数中,大大减少了运算的复杂度,提高了实时性。由于水印嵌入到DCT的直流系数中,所以在保证视频效果不失真的前提下,水印具有很强的鲁棒性。4.1视频水印算法在MPEG视频中,由于视频的I帧上色度的离散余弦变换DCT的直流系数DC是一个始终在视频流中存在而且很鲁棒的参数,我们将水印信息经m序列调制后加入到I帧的色度DCT的直流系数中,这样水印信息在不影响视频效果的情况下一般是难以去除的,所以鲁棒性是足够的,这里我们采用了扩频的方法,以方便有效的检测水印,另外有效的抵抗各种攻击及干扰。下面分别给出水印嵌入和提取的算法:4.1.1视频水印的嵌入算法本方案将视频码流部分解码后,再将水印信息经m序列调制后嵌入到视频I帧的色度DCT的直流系数中。水印的嵌入过程分为以下三步:第一步:产生一个含有整数{-1,1}的PN序列,此图案与I画面有相同维数。用水印信号的信息位调制伪随机噪声图案得到扩频水印信号,并乘上一个大小合适的伸缩因子,再将扩频水印信号做DCT变换。第三步:将压缩的视频流中I画面做DCT变换提取系数。第三步:把每块水印信号的DCT直流分流加到与I画面相同位置的块的DCT直流分量上。扩展频谱的方法就是说将水印信息位通过一个伪随机的扩展序列的调制来入到大量的视频I帧上色度DCT的直流系数DC中。具体见下面公式:Dct(x,y)=Dct(x,y)+Ai*WiDct1(x,y)表示己经嵌入水印的I帧上色度DC丁的直流系数DC值;Dct(x,y)表示该块的色度分量DCT直流系数一原始视频的I帧上色度DCT的直流系数DC值;Ai表示为了考虑掩蔽效果而用来调整水印强度所使用的系数;Wi表示水印信号的值,Wi=Bi*Pi4.1.2视频水印的提取算法水印提取为水印嵌入的逆过程,步骤如下:(1)对含水印的视频码流进行部分解码,得到I帧色度分量DCT变换后的系数矩阵;(2)将上一步得到的每个块的直流系数与修改前的直流系数进行比较,从而确定水印信号的像素值,若Dct1(x,y)>Dct(x,y)则:mark(n)=1(3)重复步骤(2)直至所有水印信号全部取出;(4)将提取出的“水印”进行T-m次TA变换恢复到原水印图像。4.2DCT视频水印的实现方案相关程序4.2.1视频水印的嵌入我们首先对MPEG-2视频流进行部分解码并得到I帧上的色度DCT的直流系数,我们每隔20个DCT的直流系数加入一次水印,来修改DC的值,见如下代码:functiono=func_add_sy(fragment,data,len,s,atten,pn0,pn1)[row,col]=size(s);if(row>col)s=s';endi=1;n=len;o=s;len=length(pn0);fori=1:nst=(i-1)*fragment+1;ed=i*fragment;tmp=dct(s(st:ed));atten1=atten*max(abs(tmp));Ifdata(i)==1tmp(base:fragment)=tmp(base:fragment)+atten1*pn1;elsetmp(base:fragment)=tmp(base:fragment)+atten1*pn0;end完成上述操作后,我们将修改后的DC值写入视频码流中,另外我们完成一个水印信息嵌入后,我们将从下一个I帧重复嵌入该水印信息。4.2.2视频水印的提取我们首先对I帧上的色度DCT的直流系数DC进行计数,因为我们每隔20个DCT的直流西数DC加入一次水印,所以提取时也每隔20个直流系数DC来进行提取,见如下代码:functionout=func_del_sy(fragment,in,len,pn0,pn1)[row,col]=size(in);if(row>col)in=in';endout=[];len_pn=length(pn0);base=fragment-len_pn+1;fori=1:lenst=(i-1)*fragment+1;ed=i*fragment;p=dct(in(st:ed));t0=sum(p(base:fragment).*pn0);t1=sum(p(base:fragment).*pn1);ift1>t0out(i)=1;elseout(i)=0;4.3基于扩频的DCT视频水印算法抗攻击性仿真实验分析(1)缩小放大攻击本节对基于DCT变换域的水印嵌入提取算法缩小放大2倍进行攻击测试,最后提取水印,并分析视频每一帧提取水印和原水印的误差。这个部分对应的MATLAB代码如下:xx1=imresize(image_marked,2,'bicubic');xx2=imresize(xx1,1/2,'bicubic');out=xx2;其仿真结果如下:图4-1DCT数字视频水印受缩小放大2倍攻击后仿真结果从图中仿真结果可知,可以获得水印信息收到一定的影响,且每一帧的水印误差还是比较大的。(2)放大缩小攻击本节基于DCT变换域的水印嵌入提取算法进行放大缩小2倍攻击测试,最后对提取水印,并分析视频每一帧提取水印和原始水印的误差。这个部分对应的MATLAB代码如下:xx1=imresize(image_marked,0.5,'bicubic');xx2=imresize(xx1,2,'bicubic');out=xx2;其仿真结果如下:图4-2DCT数字视频水印受放大缩小2倍攻击后仿真结果从图仿真结果可知,这种算法在此类攻击的影响比较大。(3)噪声攻击本节对基于DCT变换域的水印嵌入提取算法进行噪声攻击测试,最后对视频提取水印,并分析视频每一帧提取水印和原始水印的误差。这个部分对应的MATLAB代码如下:out=imnoise(uint8(round(real(image_marked))),'salt&pepper',0.005);其仿真结果如下:图4-3DCT数字视频水印受缩小放大2倍攻击后仿真结果从图中仿真结果可知,此方案在此类攻击下收到一定的影响。(4)裁剪攻击本节对基于DCT变换域的水印嵌入提取算法进行裁剪攻击测试,最后对视频提取水印,并分析视频每一帧提取水印和原始水印的误差。这个部分对应的MATLAB代码如下:fori=128-44:128+45forj=128-45:128+44image_marked(i,j)=0;endendout=double(image_marked);其仿真结果如下:图4-4DCT数字视频水印受裁剪攻击后仿真结果从图仿真结果可知,此方案在此类攻击下收到一定的影响。4.4本章小结 本章尝试提出了基于扩频的DCT视频水印设计方案,详细归纳了视频水印的嵌入算法和视频水印的提取算法,并同时完成了视频水印嵌入的实现和视频水印提取的实现。最后进行攻击实验的仿真,对后一章的自适应方案提供了对比实验。第5章基于扩频的自适应视频水印方案5.1概述结合视频效果对水印嵌入进行自适应的设计,本文又提出了基于扩频的自适应视频水印方案。算法同时考虑帧内和帧间的信息,根据运动信息和区域复杂度对原始视频的图像块进行分类。在每帧图片内分为的图像块按其是否包含细信息来进行分类;同时考虑人眼对于静止物体和运动物体不同的视觉特性,在相邻帧间进行运动检测将图像块分为慢速运动区域和快速运动区域两类。通过这两层检测机制,选择既包含细节信息、又属于快速运动区域的图像块来嵌入水印,这样使得水印嵌入的位置自适应于人类视觉系统和视频信号的特性。5.2基于扩频的自适应数字视频水印算法在视频水印的嵌入位置上,我们选择I帧来进行水印的嵌入。这是由于在MPEG-2视频中,由于视频的I帧上色度的离散余弦变换DCT的直流系数DC是一个始终在视频流中存在而且很鲁棒的参数,我们将水印信息经PN序列调制后加入到I帧的DCT的直流系数中,这样的水印信息具有足够的鲁棒性,并具有较强的抗干扰性。因此它的作用与静态图像相当,可以用静态图像的技术对其进行分析。MPEG-2视频编码的B帧和P帧使用了运动补偿,它仅仅保存了块的运动向量,因此它的压缩比大大提高了,但也造成了B帧和P帧的数据偏小,若在这两帧中嵌入水印,当采用不同的算法时,它所计算得到的运动向量也不同,因此可能无法恢复带有水印信号的像素。所以一般选择I帧作为水印嵌入的位置,并使用静态图像的技术对其进行分析。结合视频效果对水印嵌入进行自适应的设计。5.2.1实现自主区域的选择图5-1水印嵌入区域的自适应实现过程视频序列的每一帧分成8*8的图像块,人眼对于那些包含高细节信息并且沿时间轴变化较快的图像块中所产生的失真并不敏感,因此可以在这些图像块中嵌入水印,其过程如下所示:首先进行分块:假设一段视频由w帧组成,每一帧的大小为m*n,K令表示视频中的第i帧,其中i=0,1,…,w-1。首先,将当前帧图像Ki分割成互不重叠的大小为8*8的图像块Xij,这里Xij表示第i帧中的第j个图像块,其中j=0,1,…,(m*n)。对每一个图像块进行DCT变换,并假设得到DCT系数块Xij。通过这个步骤将每一帧图像转换为j个8*8DCT系数块。然后按能量进行分类:将DCT系数根据其能量大小进行排序,然后根据DCT交流系数能量的大小对图像块进行分类,。对每一个DCT系数块Xij,如果能量值小于预先给定的阈值,那么相应的图像块被划分为低细节区域;如果能量值大于预先给定的阈值,相应图像块被划分为高细节区域。通过这个步骤,将DCT系数分成低细节区域和高细节区域两个类别。接下来考虑到帧间的信息:进行帧间运动检测,将当前帧DCT系数块与相邻帧中对应DCT系数块进行比较。为了简单起见,这里只参考前一帧的图像信息。计算当前帧和前一帧图像经过分块DCT变换后相应直流系数的差值,如果相应直流系数差值小于预先设置的阈值,当前帧图像块被划分为慢速运动区域;如果相应直流系数差值大于预先设置的阈值,当前帧图像块被划分为快速运动区域。通过这个步骤,将每一帧视频区域划分为分成快速运动区域和慢速运动区域两个类别。经过以上处理将区域中同时满足高细节信息特点和沿时间轴变化较快特点的图像信息块进行水印嵌入操作。5.2.2视频水印嵌入算法在以一帧图像为例,将水印嵌入到原始视频中的亮度分量。其基本步骤如下所示:首先对图像块进行分解,从而得到8个位平面信息。然后根据位平面对图像的影响大小以及水印信息的鲁棒性进行位平面的选择并进行水印的嵌入操作。接下位置较低的位平面容易受到各种攻击的干扰,而位置较高的位平面则会在一定程度上影响视频的视觉效果。5.2.3视频水印提取算法针对嵌入水印的视频图像,在帧内利用如下的式子进行检测,分析图像块中是否包含细节信息,即:(5-1)首先将公式计算得到的结果与阈值进行比较,由此得到的图像块进行位面的分解接着进行相关检测。如果相关运算的结果大于等于阈值,则表示检测到水印存在。同样的将相应的位平面保存起来,用于第二步水印提取。最后同步信号的嵌入,在实际中,攻击者可能通过插入或去除一帧图像来改变视频序列的长度,或者通过帧重组来改变视频序列的顺序,这些都对不需要原始视频参与的水印检测算法提出更高的要求。因此,通过嵌入同步信号可以提高检测效果。5.3自适应视频水印算法抗攻击性仿真实验分析水印嵌入与提取的方案设计在前面已经说明,将置乱后的水印图像嵌入原始宿主视频截图中,嵌入后的效果图以及提取的水印信息如图5-2所示,此图为提取的第一个I帧图。其中原始视频像素分辨率为352*288,嵌入与提取的时间分别为0.12秒和0.073秒,嵌入强度为0.25。并从不可见性、鲁棒性等性能评估标准对此算法进行了分析。其MATLAB仿真结果如下所示:图5-2嵌入与提取仿真图5.3.1不同水印强度抗攻击能力分析为了获得最优的水印强度,在不影响原视频视觉效果和图像质量的前提下,设置合适的水印强度,使其具有较好的抗攻击能力。下面通过MATLAB对不同水印强度进行分析,分别对水印强度为1,0.1,0.01,0.001,0.0001等强度进行对比分析。图5-3嵌入水印强度为1图5-3为嵌入水印强度为1的仿真结果,从该仿真结果可知,当水印强度较大的时候,提取水印质量最好,而原始视频的图像质量值PSNR仅为29.7442,大大影响了视频的视觉效果。图5-4嵌入水印强度为0.1图5-4为嵌入水印强度为0.1的仿真结果,从该仿真结果可知,当水印强度较大的时候,提取水印质量最好,而原始视频的图像质量值PSNR为37.8152,大大影响了视频的视觉效果。图5-5嵌入水印强度为0.01图5-5为嵌入水印强度为0.01的仿真结果,从该仿真结果可知,当水印强度较小的时候,提取水印质量最好,且原始视频的图像质量值PSNR可达59.6110,不仅保证了图像水印提取效果,而且使得图像在嵌入水印后依旧存在较好的视觉效果。图5-6嵌入水印强度为0.001图5-6为嵌入水印强度为0.001的仿真结果,从该仿真结果可知,当水印强度较小的时候,提取水印存在部分干扰点,而原始视频的图像质量值PSNR可达到无限大,虽然在一定程度上保证了视频在嵌入水印后的质量,但是其提取的水印存在一定的干扰。图5-7嵌入水印强度为0.0005图5-7为嵌入水印强度为0.0005的仿真结果,从该仿真结果可知,当水印强度较小的时候,提取水印存在部分干扰点,而原始视频的图像质量值PSNR可达到无限大,虽然在一定程度上保证了视频在嵌入水印后的质量,但是其提取的水印存在一定的干扰。图5-8嵌入水印强度为0.0001图5-8为嵌入水印强度为0.0001的仿真结果,从该仿真结果可知,当水印强度较小的时候,提取水印存在部分干扰点,而原始视频的图像质量值PSNR可达到无限大,虽然在一定程度上保证了视频在嵌入水印后的质量,但是其提取的水印完全被淹没在干扰中。综合上述仿真结果可知,当设置幅度较大的水印的时候,嵌入水印会很大程度上干扰原视频的视觉效果,如图5-3仿真结果所示,其嵌入水印后,基本无法观察到原始的视频图像。而当水印的幅度较小的时候,水印的抗攻击性能将大大减弱,如图5-7所示,嵌入水印后的视频质量接近原始的视频质量,但是由于水印信息强度太弱,在水印提取过程中,受到了一定程度的干扰。而在图5-8所示,虽然嵌入水印后的视频质量接近原始的视频质量,但是由于水印信息强度太弱,在水印提取过程中,其基本无法提取到有效的水印信息。图5-5和图5-6的仿真结果表明,在不影响原视频视觉效果和图像质量的前提下,水印效果具有较好的抗攻击能力,在图5-7的仿真结果中,视频嵌入水印后,略有水印扩频序列的干扰,但总体上不影响视频的视觉效果,在图5-6的仿真结果中,基本观测不到水印扩频序列的干扰。因此,设置水印强度在0.0005~0.001之间最为合适,具体参数可根据实际需求进行选择。进一步,这里通过设置不同攻击强度的水印,分别对视频效果质量和提取水印的质量进行仿真分析,获得如下的仿真结果:图5-9不同水印前度对视频质量的影响图5-10不同水印前度对视频质量的影响从上面的两个仿真结果可知,随着水印强度的增加,视频质量越来越差,而提取的水印误差则越来越小。从这两个仿真图可知,水印强度在0.001左右,可以有效提取水印,且不影响视频的视觉效果。5.3.2鲁棒性和抗攻击性分析本实验主要对比基于DCT变换域的水印嵌入提取算法,针对上述的多种攻击类型进行对比仿真分析,分别对缩小放大攻击,放大缩小攻击,滤波攻击,裁剪攻击进行MATLAB仿真分析。(1)缩小放大攻击本节对该算法进行缩小放大2倍进行攻击测试,最后提取水印,并分析视频每一帧提取水印和原水印的误差。这个部分对应的MATLAB代码如下:xx1=imresize(image_marked,2,'bicubic');xx2=imresize(xx1,1/2,'bicubic');out=xx2;其仿真结果如下:图5-11自适应数字视频水印受缩小放大攻击后仿真结果从图5-11的仿真结果可知,自适应视频水印算法,经过缩小放大攻击可以获得较为清晰的水印信息,且每一帧的水印误差较小。上图右图为视频每一帧的水印提取误差,通过对比可知而本文算法误差最小。(2)放大缩小攻击本节对该算法进行放大缩小2倍攻击测试,最后对提取水印,并分析视频每一帧提取水印和原始水印的误差。这个部分对应的MATLAB代码如下:xx1=imresize(image_marked,0.5,'bicubic');xx2=imresize(xx1,2,'bicubic');out=xx2;其仿真结果如下:图5-12自适应数字视频水印受放大缩小攻击后仿真结果从图5-12的仿真结果可知,自适应视频水印算法,对比DCT视频水印算法可以获得较为清晰的水印信息,且每一帧的水印误差较小。上图右图为视频每一帧的水印提取误差,通过对比可知,自适应视频水印算法误差最小。(3)噪声攻击本节对该算法进行噪声攻击测试,最后对视频提取水印,并分析视频每一帧提取水印和原始水印的误差。这个部分对应的MATLAB代码如下:out=imnoise(uint8(round(real(image_marked))),'salt&pepper',0.005);其仿真结果如下:图5-13自适应数字视频水印受噪声攻击后仿真结果从图5-13的仿真结果可知,自适应视频水印算法可以获得较为清晰的水印信息,且每一帧的水印误差较小。上图右图为视频每一帧的水印提取误差,通过对比可知,自适应视频水印算法误差最小。(4)裁剪攻击本节对该算法进行裁剪攻击测试,最后对视频提取水印,并分析

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论