您的位置: turnitin查重官网> 经济 >> 产业经济学 >水印数字图像水印算法快速实现技巧

水印数字图像水印算法快速实现技巧

收藏本文 2024-04-10 点赞:23794 浏览:107390 作者:网友投稿原创标记本站原创

摘 要:数字水印技术作为数字多媒体作品版权保护和认证的重要手段,近几年来发展得很快。本文着重研究水印算法的快速实现。第一步提出一种基于图像盲水印算法:首先对原始图像进行分块处理,然后通过在分块Hadamard变换域中修改中频系数来嵌入水印,最后得出具有一定使用价值的结论。实验结果表明,算法对常用的图像处理如JPEG压缩、加噪、滤波等攻击具有较好的鲁棒性。第二步,在前人的研究基础上,实现GPU来执行快速Hadamard变换和反变换。实验结果表明,在Visual C++下利用GPU执行Hadamard变换在一定条件下比CPU更快,实验用显卡性能越强,实验效果越好。
关键词:数字水印;Hadamard变换;快速算法;GPU
0 引言
数字水印技术作为数字多媒体作品版权保护和认证的重要手段,近几年来发展得很快。数字水印技术是在数字媒体中嵌入特定信息的一种技术,根据所嵌入的载体不同,可分为图像水印、音频水印、视频水印等;根据嵌入位置不同,可分为空域水印和变换域水印[2-4];而按检测过程,又可分为盲水印和非盲水印。其中用于版权保护的数字水印一般要求具有:鲁棒性、不可见性和安全性。目前,数字水印算法研究的重点是鲁棒性,应用最多的是变换域算法,包括DFT、DCT[3]和DWT[4],经过国内外专家的多年研究、改进,基于变换域的数字水印算法具有较强的鲁棒性,但还是在一定程度上忽略对算法速度的关注,有些算法鲁棒性很高,但处理速度较慢,在小图像中嵌入水印的时间也可能要1分钟。而实际的应用图像往往非常大,有一些应用甚至有实时性的要求,计算工作量大,操作复杂的算法就存在实际应用推广价值低的问题,因此非常有必要研究快速的数字水印算法。哈达玛变换(Hadamard Tranorm,下文简称HT)的变换矩阵的元素取值最多只有两种,即{1,-1},所以有速度快、容易用硬件实现的优点。本研究首先提出了一种利用HT的快速数字图像盲水印算法。其次,利用最新的GPU技术,通过GPU执行快速Hadamard变换和反变换,仿真实验表明,在Visual C++下GPU上执行Hadamard变换在一定条件下比CPU更快,对于处理高像素图像,速度优势更明显。

1 快速数字图像盲水印算法原理

1.1 图像的Hadamard变换

相比DFT、DCT和DWT等变换,HT的主要优点在于计算复杂度低,速度快,容易用硬件实现。二维HT已经在图像处理和图像压缩领域得到广泛的应用。令X代表源图像,Y代表经过变换后的图像,二维HT定义如下:
式(1)中Hn代表一个N×N的HT矩阵,N=2n, n=1,2,3…,其元素值取为+1或-1。
N阶的HT矩阵可以由n-1阶矩阵使用Kronecker积 来实现,具体如下:

1.2 预处理算法

1.2.1 原始水印置乱

首先,为了增加鲁棒性,先对原始水印图像w重复四次,也就是2×2居中平铺,设原始二值水印图像w大小为m×m,令m*=2m,预处理后,得到m*×m*大小的w*。然后对水印图像进行置乱加密处理以消除图像像素之间的相关性。本研究采用一种计算简单、容易实现的置乱方法。设二值水印图像大小为m×m,具体的置乱方法为:
1)先生成一个1到m*×m*的序列,根据密钥key进行置乱,得到随机序列P;
2)设该序列的第n个元素是Pn,令:n=k*m*+l;Pn=i*m*+j;
3)交换像素位置:将原始水印的像素(i,j)放到新位置(k,l),即完成水印的置乱处理。
其次,本文用两个0、1组成的互补序列分别表示二值水印图像中的像素值0和1。令L为序列长度,这两个序列分别定义为:

1.2.2 原始图像预处理

首先将原始图像分割成大小相等的子图像块,若子图像块尺寸选为4×4大小,虽然计算速度快,但因图像子块可变换的系数较少,会导致水印信息的嵌入量较少;若子图像块尺寸选为16×16大小,图像子块可变换的系数增多了,相应的计算工作量也增大了。所以经过权重考虑,选择将原始灰度图I进行8×8不重叠分块,然后对每一子块进行HT。

1.3 水印嵌入和提取算法

1.3.1 嵌入算法

设原始灰度图像I大小为M×N,原始图像经过分块处理后,得到(M/8)×(N/8)个8×8的图像子块。由上一步得原始水印图像预处理后,得到m*×m*的置乱图像。然后对选中的子块进行HT,得到系数矩阵HBk,j=HT(Bk),其中k表示第k个子块,j表示第j个系数,其取值为1到64。对图像块按ZigZag顺序读取出HBk,j中的第22到36共15个中频系数,得到序列pi。依次嵌入上面得到的置乱图像像素值wi所对应的序列,具体嵌入准则定义如下:
其中L是序列的长度,本文中取15,pi'是修改过的中频系数值。
最后对每个分块进行Hada

学位论文www.udooo.com

mard反变换,最终得到含水印图像。

1.3.2 提取算法

本研究的提取算法是盲水印算法,即在水印提取时不需要原始图像,只需要知道嵌入过程中的置乱水印密钥key。具体的提取步骤是:
1)含水印图像处理。先对水印的图像进行8×8不重叠分块,并对每个子块进行HT,得到系数矩阵。
2)水印的提取。按ZigZag读取顺序提取出每个8×8子块系数矩阵中嵌入位置对应的15个中频系数组成新的一维序列pi,j。分别求pi,j与代表水印像素值0和1的序列w0,i和w1,i的相关系数值C(0)和C(1),公式如下:
比较C(0)和C(1)的大小以确定第j块嵌入的像素值是0还是1:
3)水印反置乱。将提取出的水印信息利用密钥key进行反变换,得到新的二维矩阵wi*。由原始水印的预处理步骤可知,wi*其实含有4个m×m大小水印。运用多数原则,为每个对应的像素统计像素值为1的个数,将像素统计值大于2的像素值取为1。即可得到原始水印信息。

1.4 实验结果

为了消除主观因素的影响,体现版权保护的公正性,除通过视觉来进行判定外,本文使用峰值信噪比(PSNR)评价嵌入水印后彩像与原始彩像间的差别,并采用归一化的相关系数NC(NC取值为0到1,NC=1时表示完全一致,NC值越高表示相似度越高)定量分析了提取的水印与原始水印的相似度。实验结果是基于Matlab 7平台下仿真得到。下面以512×512的标准Lena灰度图像作为原始图像,32×32的二值图像作为原始水印。由图1可以看出,本文的算法具有较好的不可见性,水印可以完整提取出来。
(a)原始图像(b)原始水印 (c)含水印图像(d)提取的水印图像
图1 数字水印嵌入和提取结果

1.4.1 鲁棒性测试

本节主要测试本文算法抗常用攻击的鲁棒性,实验结果如表1所示。
从表1可以看出,本研究算法鲁棒性令人满意,同时嵌入和提取算法运行速度分别不到3秒。

2 基于GPU的Hadamard变换研究

图形处理器(Graphics Processing Unit,简称GPU)开发之初是单纯的为图形处理怎么写作的。2003年开始GPU在通用计算的应用也越来越广泛[5]。国内外文献研究表明,基于GPU运行的图像处理过程开销比软件运行的小,因此在GPU上运行的水印算法也会比在软件上运行的算法更快速、更实时、更少的开销[6]。本节中提出一种方法实现GPU来处理水印算法中的核心变换——Hadamard变换,以进一步提高基于Hadamard变换的数字图像水印算法的实现速度。

2.1 GPU实现步骤

国内外文献显示GPU上实现FFT的方法,显卡厂商NVidia推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题,其1.1版就提供了数学运算库——CUFFT (离散快速傅立叶变换),但还没发现过有文献提到在GPU上实现FHT。本文通过FFT和FHT的蝶形图可以看出,两者的实现有很多相似之处,通过比较Visual C++上FFT和FHT的实现代码,可以发现两者间最主要的区别在于FFT中每级蝶形图中输入序列中对应的两个元素间要先乘上一个加权系数W 再进行加减操作,用公式表示如下:
令W[i]等于1,则cos(angle)=1,sin(angle)=0,可以得到angle=0。换言之,在FFT编程代码基础上做如上处理,运算结果中的实数部分就是FHT的结果。类似的,对于GPU上的FFT实现,理论上也可以通过以上处理,得到FHT的运算结果。针对文献[7]的FFT的GPU实现算法,在其着色语言和OpenGL渲染部分做针对性的处理。实验证明,方法是可行的,原本存储FFT变换结果的实数部分的输出数组中,现在得到的是FHT结果。

2.2 GPU实现快速Hadamard变换与CPU实现快速Hadamard变换比较

实验平台主要如下:处理器为Inter Core(TM)2 E6300 双核 1.86GHz,内存大小为1GB,显卡采用NVidia GeForce 7950GT,显卡内存大小为512MB,整个实验是基于OpenGL来做的,使用的编程工具是Visual C++ 6.0。

2.1 GPU和CPU计算结果比较

GPU的计算结果和CPU的计算结果如表2所示,表2的数据取自实验一中Lena灰度图经过CPU-FHT变换和GPU-FHT变换后的实验数据中的最后5个数据用于对比。第一行数据是在CPU-FHT中得到的数据,第二行数据是在GPU-FHT得到的数据。
从表2中数据可以看出GPU实现快速Hadamard变换与CPU实现快速Hadamard变换数据在小数点后6位这样的精度情况下仍然是一致的,说明该方法是完全可行的。

2.2 GPU和CPU运行效率比较

由表3可得,数据量比较小时,CPU运算速度比GPU快,CPU的运算时间几乎都为0,当数据量大到一定程度(大于256 256),CPU运算时间就和输入数据量成正比倍数上升,而GPU的时间相对增长较慢,其优势就显现出来。数据量大于524288字节时,GPU的运算速度就比CPU快了。实验结果和国内外文献研究和GPU特性吻合,说明该方法是完全可行的。如果实验采用更高端显卡、大容量内存,那实验效果会更好,更明显。
3 结论
本论文主要探讨有关Hadamard变换域上的数字图像水印技术,以及快速实现方法,为此笔者作如下总结:(1)首先提出了一种基于分块Hadamard变换的数字图像盲水印算法,通过在分块Hadamard变换域中修改中频系数来嵌入水印。实验结果表明,该算法对常用的图像处理如JPEG压缩、加噪、剪切和滤波等攻击具有较好的鲁棒性。同时运算速度也令人满意,即使用大图像,其速度也不会明显增加,能基本满足实时性要求。总之,从理论和实验结果均证明了该算法是有效、可靠安全的。(2)在前人研究基础上实现了GPU上的FHT,仿真实验表明,在图像非常大的情况下,利用GPU实现FHT,运算效率可以比CPU高。今后的研究应该主要集中在充分考虑人类视觉系统(HVS)、结合图像置乱技术、利用图像特征来嵌入水印,提高鲁棒性。目前的算法主要考虑鲁棒性,忽略对算法运算速度的考虑,这使水印技术在实时性系统的应用中受到局限,今后应该进一步应用计算简单的结构和变换(比如HT),或利用GPU在图像处理方面计算快的特点,来提高算法的运算速度。随着GPU性能的不断

源于:论文模板www.udooo.com

提高,利用GPU技术将是实现实时性水印的一个可行方法。国内外专家已经着手在这方面进行研究,相信这将是今后一大研究方向,使数字水印的应用更加广泛。
参考文献:
BENDER W. Techniques for data hiding[J].IBM Systems Journal,1996,35(3&4):313-336.
Chi-Man Pun.A Novel DFT-based Digital Watermarking System for Images[C].The 8th International Conference on Signal Processing, 2006:16-20.
[3] 黄继武,YUN Q.SHI,姚若河.基于块分类的自适应图象水印算法[J].中国图象图形学报,1999,4(8):640-643.
[4] KASHYAP N,SINHA G R. Image watermarking using 3-level discrete welet tranorm (DWT) [J].International Journal of Modern Education and Computer Science,2012,4(3):50-56.
[5] 吴恩华.图形处理器用于通用计算的技术、现状及其挑战.软件学报.2004,15(10):1493-1504.
[6] Wang JQ.Exploiting the GPU power for intensivegeometric and imaging data computation[MPhil Thesis].Chinese University of Hong Kong,2004.
[7] Govindaraju,N.K,0Larsen, S,Gray, J,Manocha, D.A Memory Model for Scientific Algorithms on Graphics Processors[C].Supercomputing Conference 200

6. SC '02006:6-1

本文为浙江传媒学院校级课题“数字图像水印算法的快速实现研究”(编号:ZC11XJ044)的结题成果。

copyright 2003-2024 Copyright©2020 Powered by 网络信息技术有限公司 备案号: 粤2017400971号