跟着计算机网络和通讯技能的飞速发展,数字媒体(包括数字图画、数字视频、数字音频)已得到了广泛的运用,随之而来的数字媒体的信息安全、知识产权维护和认证等问题也变得日益突出。数字水印作为传统加密办法的有用弥补手法,是一种能够在敞开的网络环境下维护版权和认证来历以及完整性的新技能[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完结水印算法比用软件完结法速度更快,功能更安稳。