基于DCT数字水印算法的Matlab实现源代码.doc

基于DCT数字水印算法的Matlab实现源代码.doc

ID:51801884

大小:40.50 KB

页数:4页

时间:2020-03-15

基于DCT数字水印算法的Matlab实现源代码.doc_第1页
基于DCT数字水印算法的Matlab实现源代码.doc_第2页
基于DCT数字水印算法的Matlab实现源代码.doc_第3页
基于DCT数字水印算法的Matlab实现源代码.doc_第4页
资源描述:

《基于DCT数字水印算法的Matlab实现源代码.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、MATLAB产品族可以用来进行以下各种工作:  ●数值分析  ●数值和符号计算  ●工程与科学绘图  ●控制系统的设计与仿真  ●数字图像处理技术  ●数字信号处理技术  ●通讯系统设计与仿真  MATLAB在通讯系统设计与仿真的应用  ●财务与金融工程  MATLAB的应用范围非常广,包括信号和图像处理、通讯、控制系统设计、测试和测量、财务建模和分析以及计算生物学等众多应用领域。附加的工具箱(单独提供的专用MATLAB函数集)扩展了MATLAB环境,以解决这些应用领域内特定类型的问题。压缩域算法  基于JPEG、MPEG标准的压缩域数字水印系

2、统不仅节省了大量的完全解码和重新编码过程,而且在数字电视广播及VOD(VideoonDemand)中有很大的实用价值。相应地,水印检测与提取也可直接在压缩域数据中进行。下面介绍一种针对MPEG-2压缩视频数据流的数字水印方案。虽然MPEG-2数据流语法允许把用户数据加到数据流中,但是这种方案并不适合数字水印技术,因为用户数据可以简单地从数据流中去掉,同时,在MPEG-2编码视频数据流中增加用户数据会加大位率,使之不适于固定带宽的应用,所以关键是如何把水印信号加到数据信号中,即加入到表示视频帧的数据流中。对于输入的MPEG-2数据流而言,它可分为

3、数据头信息、运动向量(用于运动补偿)和DCT编码信号块3部分,在方案中只有MPEG-2数据流最后一部分数据被改变,其原理是,首先对DCT编码数据块中每一输入的Huffman码进行解码和逆量化,以得到当前数据块的一个DCT系数;其次,把相应水印信号块的变换系数与之相加,从而得到水印叠加的DCT系数,再重新进行量化和Huffman编码,最后对新的Huffman码字的位数n1与原来的无水印系数的码字n0进行比较,只在n1不大于n0的时候,才能传输水印码字,否则传输原码字,这就保证了不增加视频数据流位率。该方法有一个问题值得考虑,即水印信号的引入是一种

4、引起降质的误差信号,而基于运动补偿的编码方案会将一个误差扩散和累积起来,为解决此问题,该算法采取了漂移补偿的方案来抵消因水印信号的引入所引起的视觉变形。NEC算法  该算法由NEC实验室的Cox等人提出,该算法在数字水印算法中占有重要地位,其实现方法是,首先以密钥为种子来产生伪随机序列,该序列具有高斯N(0,1)分布,密钥一般由作者的标识码和图像的哈希值组成,其次对图像做DCT变换,最后用伪随机高斯序列来调制(叠加)该图像除直流(DC)分量外的1000个最大的DCT系数。该算法具有较强的鲁棒性、安全性、透明性等。由于采用特殊的密钥,因此可防止I

5、BM攻击,而且该算法还提出了增强水印鲁棒性和抗攻击算法的重要原则,即水印信号应该嵌入源数据中对人感觉最重要的部分,这种水印信号由独立同分布随机实数序列构成,且该实数序列应该具有高斯分布N(0,1)的特征。生理模型算法  人的生理模型包括人类视HVS(HumanVisualSystem)和人类听觉系统HAS。该模型不仅被多媒体数据压缩系统利用,同样可以供数字水印系统利用。利用视觉模型的基本思想均是利用从视觉模型导出的JND(JustNoticeableDifference)描述来确定在图像的各个部分所能容忍的数字水印信号的最大强度,从而能避免破坏

6、视觉质量。也就是说,利用视觉模型来确定与图像相关的调制掩模,然后再利用其来插入水印。这一方法同时具有好的透明性和强健性。M=256;%原图像长度N=32;%水印图像长度K=8;I=zeros(M,M);II=zeros(K,K);B=zeros(M,M);Idct=zeros(K,K);D=zeros(M,M);%读取原图像I=imread('33.png');subplot(2,2,1);%显示原图像imshow(I);title('原图像');%产生水印序列randn('seed',10);mark=randn(1024,1);subplo

7、t(2,2,2);plot(mark);title('水印序列');%嵌入水印T=1;form=1:Nforn=1:Nx=(m-1)*K+1;y=(n-1)*K+1;II=I(x:x+K-1,y:y+K-1);%将原图分成8*8的子块Idct=dct2(II);%对子块进行DCT变换ifx==1&y==1alfa=0.002;elsealfa=0;endB=Idct*(1+alfa*mark(T));%嵌入水印Bidct=idct2(B);%进行DCT反变换I(x:x+K-1,y:y+K-1)=Bidct;T=T+1;endendsubplot

8、(2,2,3);imshow(I);%显示嵌入水印后的图像title('tu');imwrite(I,'嵌入后的图像.bmp');%进行相关性比较fi

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。