当前位置:首页 > 工业控制 > 电子设计自动化

摘 要: 根据离散小波变换原理的特点,提出了一种基于DWT域的数字水印算法,并用FPGA硬件实现其中关键部分的DWT变换。详细介绍了相关模块的设计和时序,并对整个系统进行了综合仿真,验证了设计的正确性。分析与仿真结果表明,与软件实现相比,用FPGA实现水印算法具有高速实时处理的优点。
关键词: DWT; 数字水印; FPGA

随着计算机网络和通信技术的飞速发展,数字媒体(包括数字图像、数字视频、数字音频)已得到了广泛的应用,随之而来的数字媒体的信息安全、知识产权保护和认证等问题也变得日益突出。数字水印作为传统加密方法的有效补充手段,是一种可以在开放的网络环境下保护版权和认证来源以及完整性的新技术[1]。
根据水印的实现过程,图像水印算法可分为空域算法和变换域算法。空域算法是通过直接改变原始图像的像素值来嵌入水印,通常具有较快的速度,但鲁棒性差,且水印容量也会受到限制;变换域算法是通过改变某些变换系数来嵌入水印,通常具有很好的鲁棒性和不可见性,其实现一般基于图像变换(如DCT、DFT、DWT等)。大多数水印算法采用软件实现,软件实现具有易于应用、升级和适应性较好等特点,但存在速度受限、难以满足实时处理的问题。而采用硬件实现则可以克服这些问题。本文基于上述考虑,利用FPGA设计了基于DWT(Discrete Wavelet Transform)域的数字水印算法,其中提升小波变换是该数字水印方案的关键单元之一,采用硬件描述语言Verilog HDL对算法进行描述,并用ModelSim完成了功能和时序仿真。
1 离散小波变换原理
1.1 Mallat算法及提升格式
1987 年,Mallat将计算机视觉领域的多分辨思想引入了小波分析,提出了多分辨分析MRA(Multi-resolution Analysis)的理论,并给出了数学描述和一种子带滤波器的离散小波变换与重构算法——Mallat算法。在图像处理领域,需要处理的通常是二维图形。因此,将Mallat算法扩展到二维空间, 适当地选取一组行和列变换正交的小波系数,对图像(或分解后的低频子图)分别进行行变换和列变换。然后,根据后续的具体应用对N次分解所得的图像在不同的分辨率下进行分析、处理或数据压缩。二维Mallat算法的结构如图1所示。

首先,用滤波器组g(n)和h(n)对图像的每一行信号进行滤波和2抽取,然后用相同的滤波器组对所得结果的每一列再次进行滤波和2抽取。这样,原始图像就被分解成为4个子带图像,分别表示为LL、LH、HL和HH。其中,LL为水平和垂直方向的低通信号;LH为水平方向低通,垂直方向高通;HL为水平方向高通,垂直方向低通;HH为水平和垂直方向的高通信号。
相对于Mallat算法而言,提升算法[2]是一种更快更有效的小波变换方法,标准的提升算法包含分裂(Split)、预测(Prediction)、更新(Update)三个步骤。分裂是将输入数据分为偶数序列和奇数序列两个部分;预测是用分裂的偶数序列预测奇数序列,得到的预测误差为变换的高频分量;更新是由预测误差来更新偶数序列,得到变换的低频分量。提升算法的结构框图如图2所示,其提升实现过程由式(1)和式(2)表示,其中滤波系数α=-1/2, β=1/4。

本文将采用5/3小波滤波器来实现小波变换。
1.2 边界处理
由于图像数据是有限长的,因此离散小波变换必须对图像数据进行边界延拓,在做小波提升算法时,同样需要对其边界数据进行延拓,以保证边缘数据的正确。基于资源消耗和功耗的考虑,这里采用内嵌对称延拓提升算法[3-4],将延拓的过程融合到提升变换过程中。精简后的内嵌延拓方式如图3所示,其中Xn表示图像数据,dn表示高频分量,cn表示低频分量。

2 数字水印方案的设计
基于小波的图像水印算法有很多,本文采用LSB方法[5]直接将水印信号嵌入到经过小波变换的子图中,这里所用到的水印信号是由线性移位寄存器产生的m序列。图像经过小波变换后,低频子带 LL 表示为 L(n),数字水印序列设为a(n),在低频子带中嵌入水印序列,算法如下:

其中α为常数,当水印序列为“1”时,对子带数据加α;当水印序列为“0”时,对子带数据减α。
整个设计过程的核心为提升小波变换的FPGA的实现。根据二维小波变换的特点,将总体设计分为水平一维DWT 单元、垂直一维DWT单元、外部存储单元和控制单元。总体设计框图如图4所示。

2.1 二维DWT单元
二维提升式小波变换可以分解为两个一维小波变换,先进行行方向的离散小波变换,再进行列方向离散小波变换,这样就可以完成二维提升式小波变换。在本设计中采用的是并行的二维提升离散小波变换,根据提升式小波变换的特点,当列变换处理完三行数据后,即可以进行行方向的变换。因此可以根据二维小波变换[6]这个特点,使用四行缓存来缓存列方向小波变换后的系数。在第三行缓存存满后就开始从左向右进行“行方向”小波变换。因为在进行行方向小波变换的同时,仍然在进行列方向的小波变换,所以需要第四行缓存继续缓存列方向变换得到的小波系数以避免数据的丢失。通过以上的处理,实现了并行的二维离散小波变换,极大地提高了小波变换的速度。在这整个架构包含了列方向小波变换模块及其控制模块、行方向小波变换模块及其控制模块,以及用于缓存一维小波系数的缓存组。其中列方向变换模块在列方向变换控制模块的控制下,从系统外部读入影像数据进行列方向小波变换处理,并根据列变换的控制信号将处理后得到的小波高、低频系数存储到系统内部缓存中。行方向变换模块在行方向变换控制模块的控制下,从缓存器中取出列方向小波变换处理后的小波系数,进行行方向小波变换处理,得到二维小波变换后的LL、LH、HL、HH小波系数,最后输出到系统外。
2.2 存储单元
在变换过程中,首先对图像数据进行行方向的一维提升式小波变换,将变换后的数据存放在存储器或临时寄存器中,行方向变换结束后,再对该存储器中的数据进行列方向变换。这里使用的是FIFO存储器。FIFO是一种先进先出的存储器,就好像一个单向管道,数据只能按照固定的方向从管道一头进来,再按照相同的方向从管道另一头出去,最先进来的数据必定最先出去。
2.3 控制单元
控制单元接收外部控制信号(芯片使能、数据时钟等),由内部计数器进行计时、产生水平一维DWT 单元、垂直一维 DWT 单元和存储单元的控制信号(模块使能、起始终止信号等),对外部数据或前一级的LL输出数据进行锁存、处理、缓冲、输出等操作。
3 实验结果
在整个电路设计过程中,采用Verilog HDL语言对二维小波变换结构进行了RTL设计,并且采用ModelSim仿真对设计进行验证,其结果与 Matlab仿真结果一致,说明二维提升小波变换结构的正确。图5为α=2时嵌入水印后的图片和算法仿真结果。由图可知,嵌入水印后对图的影响不大,基本不能被人的眼睛所感知。但当α>8时,图像质量还是有了一定的影响,这是因为LL子带包含了图像的主要信息。

本文实现了一种基于DWT域的数字水印算法,其中DWT变换算法的实现是该设计中数字水印方案的关键算法之一。采用ModelSim仿真对设计进行验证,其结果与Matlab仿真结果一致,说明了该设计的正确性。实验结果表明,该方案利用FPGA实现水印算法比用软件实现法速度更快,性能更稳定。
参考文献
[1] COX I J, MILLER M L, BLOOM J A.数字水印[M].王颖,黄志蓓,译.北京:电子工业出版社,2003.
[2] SWELDENS W. The lifting scheme: a construction of second generation wavelets [J]. SIAM J Math Anal, 1997,29(2):511-546.
[3] 乔世杰,王国裕.离散小波变换的VLSI实现[J].微电子学,2001,31(2):143-145.
[4] 张波. 基于提升小波变换的图像数字水印算法IP核的研究与设计[D]. 成都:西南交通大学,2009.
[5] 钟桦,张小华,焦李成. 数字水印与图像认证:算法及应用[M]. 西安:西安电子科技大学出版社,2006.
[6] 刘军伟. 基于FPGA的数字水印算法的设计和实现[D].成都:电子科技大学,2005.

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

随着科技的飞速进步,人工智能(AI)已经逐渐成为了引领新一轮科技革命和产业变革的核心驱动力。AI不仅在改变着我们的日常生活,还在推动各行各业的创新发展。展望未来,人工智能的发展将呈现出哪些趋势呢?本文将从技术、应用、伦理...

关键字: 人工智能 算法 AI技术

机器学习算法不会要求一个问题被 100%求解,取而代之的是把问题转化为最优化的问题,用不同的算法优化问题,从而比较得到尽量好的结果。

关键字: 机器学习 算法 最优化

据数据类型的不同,对一个问题的建模有不同的方式。在机器学习或者人工智能领域,人们首先会考虑算法的学习方式。在机器学习领域,有几种主要的学习方式。

关键字: 机器学习 人工智能 算法

NVIDIA 量子模拟平台将通过各大云提供商提供,帮助科学家推进量子计算和算法研究

关键字: 量子计算 算法 量子云

随着科技的飞速发展,人工智能(AI)已经成为当今科技研究的热点和前沿。AI的快速发展不仅带来了许多新的应用场景和商业模式,也在推动科技进步的同时,引发了一系列关于其未来发展方向和潜在影响的深入讨论。本文将对人工智能的科技...

关键字: 人工智能 AI技术 算法

机器学习算法:机器学习是一种让计算机通过学习数据和模式来改进自身算法的技术。这些算法包括监督学习、无监督学习和强化学习。

关键字: 人工智能 机器学习 算法

随着信息技术的快速发展,机器学习作为人工智能的核心技术之一,正逐渐渗透到各个领域,引领着一场前所未有的科技变革。在机器学习的实际应用中,有三大重点至关重要,它们分别是数据质量、算法选择与模型评估。本文将深入探讨这三大重点...

关键字: 机器学习 数据质量 算法

在人工智能的浪潮中,机器学习已逐渐成为推动科技进步的核心动力。机器学习技术的广泛应用,从图像识别到自然语言处理,从智能推荐到自动驾驶,都离不开其三个基本要素:数据、算法和模型。本文将深入探讨这三个基本要素在机器学习中的作...

关键字: 机器学习 算法 人工智能

随着信息技术的迅猛发展,机器学习作为人工智能的核心技术之一,已经深入到了各个领域,为我们的生活和工作带来了翻天覆地的变化。无论是智能语音助手、自动驾驶汽车,还是个性化推荐、疾病预测,这些令人惊叹的应用背后,都离不开机器学...

关键字: 机器学习 人工智能 算法

机器学习的方法是指利用统计学方法和算法让计算机自动学习模式和规律,并通过数据进行预测和决策的一门学科。机器学习的主要目标是让计算机能够从数据中自我学习,通过训练模型来提高自身的性能。机器学习的方法可以从高层次上分为监督学...

关键字: 机器学习 算法
关闭
关闭