⛄一、简介

随着计算机和网络的飞速发展,人们的许多创作和成果都以数字形式进行存储和发布。然而,数字作品极易被非法拷贝、伪造和窜改,使得很多版权所有者不愿意利用网络公开其作品,从而阻碍其自身发展。目前,数字作品的版权保护不仅仅是立法问题,也是一个很重要的技术难题。从技术上看,数字媒体版权信息的嵌入和检测问题,是数字作品版权保护的两个关键问题,它综合了传统密码学的认证和鉴别问题的特点,又加入了稳健性要求。版权保护信息必须与被保护的数据密切结合,版权保护信息的鉴别过程必须具有了抗干扰能力,在这种情况下,数字水印技术应运而生。

  1. 数字水印技术概述

提到水印,人们都会想到钞票中的水印。钞票水印具有两条特性,首先,水印在通常情况下不可见,只有在特殊的观察条件下才可见(钞票中水印在光下可见)。其次,水印信息必须与载体对象相关(在这里表示纸币的真实性)。

1.1 数字水印技术的特性

可证明性:能够为受到版权保护的数字产品提供完全可靠的证据。

不可见性:即被嵌入水印信息的数字产品不会出现明显的质量下降,隐藏的数据不易被察觉;另外,不能用统计的方法恢复出水印。

鲁棒性:添加的数字水印必须对施加于宿主图象的攻击具有一定的免疫能力,不能因为对宿主图象的某种操作而导致水印信息丢失。

1.2 数字水印技术的应用

水印技术的应用极为广泛,主要有以下7种应用领域:广播监控、所有者识别、所有权验证、交易跟踪、内容真伪鉴别、拷贝控制以及设备控制。

  1. 理论基础

2.1 小波变换理论

自1986年以来,小波分析的理论、方法与应用的研究一直方兴未艾。作为一种数学工具,小波变换是对人们熟知的傅立叶变换和窗口傅立叶变换的一个重大突破,为信号分析、图像处理及其它非线性科学研究领域带来了革命性的影响。

人类视觉系统(HVS)的文理特性和照亮掩蔽特性表明,纹理越复杂,背景的亮度越亮,人类视觉对其轻微变化就越不敏感。大量的研究表明,人眼在处理图像信号时,将图像滤波成若干的子带信号,他们占据不同的频率范围,即图像在HVS中被认为是由不同频率范围的信息组成。其特征为:人眼对反映局部结构的边缘和轮廓不敏感;对低频信号,表现出较高的灵敏度。HVS在同一品大范围对不同方向纹理细节信号等表现出不同的灵敏度,这一特点与小波变换的多分辨率分析具有一定的相似性。小波变换是傅立叶变换的发展,是空间和频率的局部变换,它在频域和时域同时具有良好的局部化特征。小波变换在图像处理中的基本思想是把图像进行多分辨率分解成不同的空间和独立的频率带的子图像,然后对子图像的系数进行处理。

根据S. Mallat的塔式分解算法,图像经过小波变换后分解成四个子图:水平方向LH、垂直方向HL和对角线方向HH的中高频细节子图和低频逼近子图LL。低频部分还可以继续分解,产生三个高频带系列LHn、HLn、HHn(n=1,2,3)和一个低频带LL3(见图1)。

图1中的LL3表示小波变换分解级数决定的最大尺度、最小分辨率下对原始图像的最佳逼近,它的同级特征和原理图相似,图像大部分能量集中于此。高频带系列代表图像的边缘和纹理。

2.2 小波变换的应用

小波分析的应用领域十分广泛,它包括:数学领域的许多学科;信号分析、图象处理;量子力学、理论物理;军事电子对抗与武器的智能化;计算机分类与识别;音乐与语言的人工合成;医学成像与诊断;地震勘探数据处理;大型机械的故障诊断等方面;例如,在数学方面,它已用于数值分析、构造快速数值方法、曲线曲面构造、微分方程求解、控制论等。在信号分析方面的滤波、去噪声、压缩、传递等。在图象处理方面的图象压缩、分类、识别与诊断,去污等。在医学成像方面的减少B超、CT、核磁共振成像的时间,提高分辨率等。
⑴小波分析用于信号与图象压缩是小波分析应用的一个重要方面。它的特点是压缩比高,压缩速度快,压缩后能保持信号与图象的特征不变,且在传递中可以抗干扰。基于小波分析的压缩方法很多,比较成功的有小波包最好基方法,小波域纹理模型方法,小波变换零树压缩,小波变换向量压缩等。
⑵小波在信号分析中的应用也十分广泛。它可以用于边界的处理与滤波、时频分析、信噪分离与提取弱信号、求分形指数、信号的识别与诊断以及多尺度边缘检测等。
⑶在工程技术等方面的应用。包括计算机视觉、计算机图形学、曲线设计、湍流、远程宇宙的研究与生物医学方面。
从图像处理的角度看,小波变换存在以下几个优点:
⑴小波分解可以覆盖整个频域(提供了一个数学上完备的描述)
⑵小波变换通过选取合适的滤波器,可以极大的减小或去除所提取得不同特征之间的相关性
⑶小波变换具有“变焦”特性,在低频段可用高频率分辨率和低时间分辨率(宽分析窗口),在高频段,可用低频率分辨率和高时间分辨率(窄分析窗口)
⑷小波变换实现上有快速算法(Mallat小波分解算法)

3.DWT变换域数字水印技术

3.1数字水印嵌入技术

图像的水印技术根据水印嵌入的方式可以分为两类:时/空域技术(水印被直接嵌入在图像的亮度值中)和变换域技术(将图像做某种数学变换,然后水印被嵌入于变换系数中)。早期人们对水印的研究基本上是基于时空域的,算法相对简单,实时性较强,但在鲁棒性上不如变换域算法。目前变换域方法正日益普遍,有DCT、DWT、DFT变换域算法。

变换域算法的优点是:1、水印信息分布到空间域的所有像素上,有利于提高水印的不可见性。2、能方便的与HVS(人类视觉系统)的某些特性结合。3、很好的鲁棒性,对图像压缩、常用的图像滤波以及噪声均有一定的抵抗力。离散余弦变换是从图像空间到频率空间的全局变换,由于离散余弦变换的全局本质,在变换空间中任何一个数据的误差都会影响到图像中的每一个像素。利用小波变换把原始图像分解成多频段的图像,能适应人眼的视觉特性且使得水印的嵌入和检测可分多个层次进行,小波变换域数字水印方法见具有时空域方法和DCT变换域方法的优点。

在一系列信号处理后,如果观察者的主观感觉图像的变化不大,那么图像处理前后低、中频的小波系数的改变幅度同样有限,另外系数幅值改变的方向(变大或变小)在多数情况下也不同,因此,低、中频系数的平均改变幅度十分有限。

本算法选取部分低、中频系数并分成一定大小的系数块,通过量化系数块的平均值来嵌入水印序列。

3.1.1 选择系数

设X(m,n)是一幅大小为M*N灰度级为2“的灰度图像(1≤m≤M ,1≤n≤N),其中M,N,a为正整数。对X(m,n)进行l层(l为正整数)小波分解,得到3×l个细节图像和一个低频近似图像,用Xk,l(mi,nj)k=h,v ,d;l=1,2,…,l;mi=1,2,…,M/2l ;nj=1,2,…,N/2l 表示选择的小波系数,其中l表示分解的层次,k=h,v,d分别表示第l层水平、垂直和对角方向的子图像。考虑到量化低频子图可能产生较大失真,因此不在其中嵌入水印,而选择除低频外的中频系数[3]。

3.1.2 分块并计算每块的平均值

根据嵌入的信息量和对算法鲁棒性的要求,块越大,水印的鲁棒性越好,但嵌入的水印比特少。把XK,l (mi,nj)分成一定大小的块,用Block (s,t)表示XK,l (mi,nj)中大小为s×t的系数块,其中s=1,2,…,mi ,t=1,2,…,nj,b为正整数,代表该块的编号。其平均值为Ave =∑Block(s,t)/(s*t):其中 ∑Block 为块内系数幅值的累计和。

3.1.3 量化

水印序列w的嵌入是通过对Ave 的量化完成的,例如:量化成奇数代表嵌入“1”,量化成偶数相当于嵌入“0”。根据对鲁棒性和隐藏性的折中考虑,设量化间隔△l,l=1,2,…,l表示分解层数,对于低频的第l层,由于系数幅值极大,可以作较大间隔的量化,对第l-1,…,1层次作间隔逐渐减小的量化。

根据wi ={0,1}将Ave 量化到与之最近的奇、偶点。用Dat(i,j)表示Block 中的一个小波系数,量化后的该系数用Dat ′(i,j)表示,其中i=1,2,…,s;j=1,2,…,t。

设T=Ave/△l,Turdat=rem([T],2)其中[]表示四舍五入取整,rem 表示求[T] 除以2的余数。

若Turdat与wi相同,则量化的小波系数为

Dat′(i,j)=Dat(i,j)+[T]×△l-Ave

若Turdat与wi不同,小波系数按下列量化

Dat′(i,j)=Dat(i,j)+([T]+1)×△l–Ave,T≥[T]

Dat′(i,j)=Dat(i,j)+([T]-1)×△l –Ave,T<[T]

3.1.4 重构

使用相同的小波基,通过小波逆变换生成含有水印的图像,并将小波基、小波分解层数、选择的系数区域、分块方法、量化间隔、奇偶对应关系记录形成密钥[4]。

3.2 数字水印提取技术

水印的提取由嵌入方式来决定,它是嵌入方式的逆过程。首先对要检测的图像进行小波变换,根据密钥确定嵌入水印的位置,并对水印进行置乱处理的逆运算。可以通过计算归一化互相关函数Nc和峰值信噪比Rpsnr 来度量该水印算法的鲁棒性和透明性。

计算参数:(公式自己查找)

  1. 归一化互相关函数Nc

  2. 峰值信噪比Rpsnr

⛄二、部分源代码

clear all;
clc;
key=35;
%Arnold置换次数,作为密钥
Orignalmark=double(imread(‘suda64.bmp’)); %读入6464的水印图片
[wrow,wcol]=size(Orignalmark);
if wrow~=wcol
error(‘wrow~=wcol error’);
end
%— 测试密钥key是否超出范围---------
n=check_arnold(wrow);
if (key+1)>n
error(‘arnold key error’);
end
Arnoldw=arnold(Orignalmark,wrow,key); %对水印图像进行Arnold转化
[X,fs,bits]=wavread(‘laile.wav’); %读入音频文件
%X=imread(‘lena.bmp’);
figure;
subplot(2,1,1);
%imshow(X),title(‘原始图像’);
%X=double(X);
plot(X); %显示音频文件波形
title(‘原始音频信号’);
%sound(X,fs,bits);
%pause;
%水印嵌入--------------------------------------------------
[c,l]=wavedec(X,2,‘db4’); %用db4小波对读入的声音文件进行2级小波分解
ca2=appcoef(c,l,‘db4’,2); %提取2级小波分解的低频系数和高频系数
cd2=detcoef(c,l,2);
cd1=detcoef(c,l,1);
lca=length(ca2); %低频长度
blocksize=fix(lca/(wrow
wcol)); %每块的大小
water_vector=reshape(Arnoldw,1,wrowwcol); %将置乱后的水印转化为一维的
wlength=wrow
wcol; %水印的长度
a=0.25; %量化步长
j=1;
for i=1:wlength
Block=ca2(j:j+blocksize-1);
[U,S,V]=svd(double(Block));
cc=floor(S(1,1)/a);
if(Arnoldw(i)1) %嵌入奇数倍
if(mod(cc,2)0)
cc=cc+1;
end
S(1,1)=acc;
end
if(Arnoldw(i)==0) %嵌入偶数倍
if(mod(cc,2)==1)
cc=cc+1;
end
S(1,1)=a
cc;
end
Blockw=USV’; %SVD 逆变换还原
ca2(j:j+blocksize-1)=Blockw;
j=j+blocksize;
end
c1=[ca2’,cd2’,cd1’]';
MarkedX=waverec(c1,l,‘db4’);%b为量化嵌入水印后的音频数据
subplot(2,1,2);
plot(MarkedX);
%imshow(MarkedX),title(‘嵌入水印后图像’);
title(‘嵌入水印后音频’);
%sound(MarkedX,fs,bits);
wavwrite(MarkedX,fs,bits,‘Markedwave.wav’);
%imwrite(MarkedX,‘Markedwave.bmp’)
extractedmark=extract(MarkedX,wrow,wcol);
watermark=arnold(extractedmark,wrow,n-key);
figure;
subplot(121);
imshow(Orignalmark),title(‘原始水印’);
subplot(122);
imshow(watermark),title(‘提取水印’);
psnrvalue=psnr(Orignalmark,watermark)
Nc=nc(Orignalmark,watermark)
function wa=arnold(w,wrow,key)
wa=w;
for k=1:key
for x=1:wrow
for y=1:wrow
x1=x+y;
y1=x+2*y;
if x1>wrow
x1=mod(x1,wrow);
end
if y1>wrow
y1=mod(y1,wrow);
end
if x10
x1=wrow;
end
if y10
y1=wrow;
end
wa(x1,y1)=w(x,y);
end
end
w=wa;
end

⛄三、运行结果



⛄四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1]韩纪庆,张磊,郑铁然.语音信号处理(第3版)[M].清华大学出版社,2019.
[2]柳若边.深度学习:语音识别技术实践[M].清华大学出版社,2019.

3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除

【语音隐写】基小波变换算法求解水印嵌入提取【含Matlab源码 513期】相关推荐

  1. 【故障检测问题】基于matlab免疫算法求解故障检测问题【含Matlab源码 196期】

    一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[故障检测问题]基于matlab免疫算法求解故障检测问题[含Matlab源码 196期] 获取代码方式2: 通过订阅紫极神光博客付费专栏,凭 ...

  2. 【图像隐写】基于LSB+DWT+DCT三种算法实现图像和音频水印嵌入提取含Matlab源码

    1 简介 基于LSB+DWT+DCT三种算法实现图像和音频水印嵌入提取. 1.1 LSB算法 根据LSB算法简单易实现的特点,结合在图像置乱技术中很好特性的Arnold变换.利用变化产生影子图像.通过 ...

  3. 【定位问题】基于matlab chan算法、fang算法、taylor算法求解目标定位问题【含Matlab源码 2135期】

    ⛄一.chan+taylor算法移动基站无源定位简介 1 引言 随着无人机的普及,低空空域的安全问题受到人们的极大关注.针对该问题,本研究对"非合作型"无人机采用一种基于时差法的无 ...

  4. 【车间调度】鸟群算法求解车间调度问题【含Matlab源码 1395期】

    ⛄一.车间调度简介 1 车间调度定义 车间调度是指根据产品制造的合理需求分配加工车间顺序,从而达到合理利用产品制造资源.提高企业经济效益的目的.车间调度问题从数学上可以描述为有n个待加工的零件要在m台 ...

  5. 【优化算法】灰狼优化算法(GWO)【含Matlab源码 1305期】

    一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[优化算法]灰狼优化算法(GWO)[含Matlab源码 1305期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式2: 付费专栏优化 ...

  6. 【优化算法】改进的灰狼优化算法(IGWO)【含Matlab源码 1349期】

    一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[优化算法]改进的灰狼优化算法(IGWO)[含Matlab源码 1349期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式2: 付费 ...

  7. 【优化算法】多目标灰狼优化算法(MOGWO)【含Matlab源码 099期】

    一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[优化算法]多目标灰狼优化算法(MOGWO)[含Matlab源码 099期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式2: 付费 ...

  8. 【优化算法】改进的侏儒猫鼬优化算法(IDMO)【含Matlab源码 2314期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[优化算法]改进的侏儒猫鼬优化算法(IDMO)[含Matlab源码 2314期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式2: ...

  9. 【优化算法】象群游牧优化算法(EHO)【含Matlab源码 1080期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[优化算法]象群游牧优化算法(EHO)[含Matlab源码 1080期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式2: 付费专 ...

最新文章

  1. 如何识别架构方案是否合理
  2. 安卓手机可以用python编程软件-python可以编写手机应用吗
  3. FreeBSD配置防火墙开启SSH服务
  4. 如何做出受欢迎的字体排版风格?
  5. 使用jdk 自带的jarsigner 签名工具签名的apk 和android规范有区别
  6. C++socket编程(三):3.7 服务端回应send客户端数据
  7. 设置货币值中使用的小数位数
  8. 这三个博弈论新趋势,正深刻影响深度强化学习道翰天琼认知智能未来机器人接口API
  9. 小米图标大小设置方法_miui12如何设置图标大小
  10. 威联通nas怎么更换大硬盘_手把手教你威联通NAS怎么无损转移硬盘数据(TS-453Bmini)...
  11. 惠普打印机驱动下载安装后不能使用,驱动人生解决方案
  12. MySQL 全文索引 FULLTEXT INDEX
  13. c语言第三章课后作业答案,C语言第三章习题带答案
  14. 22湖南大学866数据结构真题(回忆版)
  15. 利用Java进行身份证正反面信息识别
  16. 12分钟入门python基础-计算机视觉方向
  17. 墨染の軍師(シオン) / 墨染(异时层火刀)
  18. 计算机水平意见,【要闻】我省从明年起基层评职称对外语和计算机水平不作要求...
  19. 数据结构 - 图的遍历
  20. STM32 ISP串口烧录 VB源码(二)关键代码

热门文章

  1. GP--大表分区管理(一)
  2. 使用纯js获取umi中Dva store,不使用connect
  3. 如何设置"运行sfc /scannow"时的系统盘目录
  4. zcmu 1376 天天跑酷
  5. 刺激却安全,普通人也能体验的方程式赛车
  6. [乡土民间故事_徐苟三传奇]第廿六回_孟老板三次遭戏弄
  7. [行业调研]区块链技术与行业发展简单调研笔记
  8. Mifare 卡非接数据通信流程
  9. Android版本 (1.0~12.0) 与API Level (SDK版本1~32) 对应表
  10. 任正非讲话:让听得见炮声的人来决策