数字图像水印设计报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(1)
,其中 。(2)
对于8点的DCT/IDCT,直接按照以上公式需要64次乘法和63次加法才能完成,因此需要采取方法减少乘法运算的次数,从而简化运算。
N 的二维DCT与IDCT的定义如下所示:
(3)
(4)
其中 是原始数据, 是各频率分量的大小 ,

可知二维DCT/IDCT的矩阵形式为
(5)
Baidu Nhomakorabea(6)
其中C为带余弦基本函数的变换系数矩阵, 为 的转置。由式子(3)和(5)可以看出,二维DCT变换式可分离的,它可以分解为串联的两次一维变换,即:
传统的数字水印加载更多的是在算法上进行改进,通常由软件来实现。但如果软件未能封装好或者代码外泄仍旧会被破解,同时基于PC机的软件是顶层应用软件,因而在运行时是通过调用操作系统指令进行的,因而速度缓慢,特别是进行频域变换时更是如此。而基于SOPC的硬件系统将解决这个问题。首先,部分数字水印算法的封装是硬件封装,只能从外部看到效果而无法深入了解内容;部分算法已经硬件化,通过Verilog语言实现;Nios中的软件更是无法取出,因而谈不上破解。其次硬件远比软件要快,比如进行DCT变换。Nios其根据配置的硬件来调用指令因而速度比普通的单片机都要快,比PC机更有优势。
2010 ALTERA杯SOPC专题竞赛
作品设计报告
参赛作品: 数字图像水印
参赛学校:华中科技大学
参赛学生:付小虎 糜健 何星
***************
2010年8月27日
华中科技大学电工与电子科技创新中心
参赛作品原创性声明
本人郑重声明:所呈交的参赛作品及报告,是本人和队友独立进行研究工作所取得的成果。除文中已经注明引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写过的作品成果,不侵犯任何第三方的知识产权或其他权利。本人完全意识到本声明的法律结果由本人承担。
参赛队员签名:
日期:年月日
摘要:
本作品通过给图片添加数字水印来声明数字版权。PC机通过USB接口将图片传给FPGA,NIOS软核读取图片信息并添加水印,然后传回PC机。利用matlab综合各种数字水印算法在鲁棒性、不可见性、安全性及兼容性上的优劣,本系统采用DCT域水印。系统由上位机软件、USB传输模块、2维DCT变换模块和NIOS水印加载控制模块四部分组成。设计关键在于如何提高系统处理速度和硬件逻辑的效率。该系统能够快速完成水印加载任务,并且加载的水印具有鲁棒性好、不可见、不易破解的特征,在数字版权领域有极大的应用潜力。
(7)
(8)
写成矩阵形式为: 。
其中Z为中间乘积矩阵(Z的列等于X行的一维DCT输出)。因此,在做二维DCT变换时,可以应用两次一维DCT变换来计算,即先沿X的行进行一维DCT计算获得Z,再沿着Z的转置的行进行一维DCT运算,就可以得到二维变换结果Y。
对于8点的一维DCT变换Z=CX,其展开式如下(9)所示:
在该算法中,每个8*8图像块可以被嵌入一水印信息点。因而在图像像素必须大于64倍的水印图像像素。黑白的水印图像可认为是二值图像,每个像素点只有两种值0或1。通常并不是直接将这个像素值直接赋值给2维DCT变换后的图像,而是判断这个值是0还是1,然后根据这个值做出两个中频点的改变,以此记录信息。通常改变是修改相应的幅度谱值(相对幅度谱值)。
图1DCT域水印嵌入算法流程图
如图1,原始图像按照其像素大小进行子块划分,从而提取出特定的一批8 图像数据块进行水印添加操作,然后在编写的DCT硬件逻辑中完成二维DCT变换;为了提高水印的保密性,首先要对水印图像进行Arnold置乱操作;通过密钥生成一个伪随机序列来决定添加水印的位置,进一步提高了水印抗破解的能力。如此,在每一个过程中都进行一定程度的置乱,可以使水印图像完全隐藏、分布在整个图片中,加大破解水印的难度。
2.2
2.2.1
DCT变换即离散余弦变换,它是一种正交变换方法,常被认为是对语音和图像信号进行变换的最佳方法。一个8 的自然图像块 ,经过二维DCT变换后变成8 的变换系数 ,其主要能量将集中于左上角的低频部分,而较小的高频分量通过量化(采用比低频分量量化更大的值量化)将变为长的连零,这是通常基于二维DCT变换的图像压缩标准的基本思想。此时虽然丢失了一些高频信息,但由于人眼对高频信息相对不敏感,因此这样处理后的图像仍然能保持高的图像质量。如果在低频区域嵌入水印(相邻的两个图像块的分量一个变大一个变小),虽然包含了更多的信息,抗压缩、鲁棒性更好、抗几何变换,但变换后的图像失真严重。如果在高频分量重嵌入水印,由于其包含的信息少,在压缩等变换时会被略去,故而受破坏严重,抗干扰能力差、鲁棒性差。本方案中采用中频区域作为嵌入水印区域。
数字水印技术就是通过一定的算法将一些标志性的信息直接嵌入到多媒体内容中,但不影响多媒体内容的价值和使用,并且不能被人的知觉系统察觉或者注意到,只有通过专用的检测器与阅读器才能提取。图像作为多媒体最基本的载体,其数字水印加载与检测算法成为一个研究的热点。
目前图像水印算法以逐步成熟,其算法主要有空间域、离散傅里叶变换域(FFT)、离散余弦变换域(DCT)、离散小波变换域(DWT)等方法,后三种都是频域算法。空域算法不需要进行频域变换,因而其水印加载、提取速度快,但是由于是直接加载在空域中,因而一般是可见的,易破解,抗干扰能力差。在变换域中嵌入的水印信号能量可以分布到空域的所有像素上,有利于保证水印的不可见性;可以更方便地将人类视觉系统(HVS)的某些特性结合到水印算法中;可与国际数据压缩标准兼容,从而实现压缩域内的水印编码等。变化域算法的最大特点是鲁棒性比空域算法好,尤其对滤波、量化和压缩攻击等。本系统将采用基于DCT域水印算法,它与JPEG压缩的特性兼容。因而有效地改善了水印对有损压缩的鲁棒性。
通过对水印图像中每个像素点的坐标进行Arnold变换,并把对应的像素信息移植过来,便生成了一幅新的图像。原始水印图像经Arnold变换隐藏了自身的信息。同时Arnold变换具有周期性,因而是可逆的,使得提取成为可能。
2.2.3
DCT变换存在与信号较为匹配的独立变换矩阵,被发现具有很多种快速算法。设X(n)为原序列,Y(k)为DCT域序列,N点一维DCT/IDCT的定义如下所示:
其中 (9)
再通过观察发现,系数矩阵C具有特殊的对称性,上述公式可分解为2个4 的矩阵乘的形式,从而使运算量减半,化简如式(10)和(11)所示:
(10)
(11)
同理可以得到简化了的一维IDCT变换的计算公式,如下式所示:
(12)
(13)
由于FPGA非常擅于处理并行数据流,特别是如式子(10)、(11)、(12)、(13)所示的变换矩阵的形式,其中有很多乘法运算的结果可以重复利用,如此可以大大提高运算的效率;Cyclone III系列的FPGA含有15,000多个LE,内含高速的乘法器和加法器,并且拥有大量的高速存储器,可以满足数据处理过程中的数据暂存问题。此外,各并行数据流之间是对称的,可以同时得出各路一维DCT/IDCT的结果。
关键词:数字水印DCT USBNIOS
1
随着网络状况的改进,多媒体信息的传递变得越来越频繁。如今人们足不出户就可以从互联网上获得图像、音频、视频等数字作品。与此同时,借助先进的多媒体软件,盗版者可以随意地对原作进行复制篡改,并通过网络等其他途径迅速传播。这就带来了一个问题,怎样保护作品的知识产权不受侵犯?数字媒体的安全问题成为了制约数字化进程的重要瓶颈。由此出现了信息隐藏的一个新的研究方向——数字水印技术。
图2一维DCT变换基本单元
完成一维DCT/IDCT变换后,在此基础上通过行列分解的方法实现二维DCT/IDCT,具有数据流规则、结构简单的特点,适合FPGA的实现。 图3二维DCT/IDCT模块图
如图3为二维DCT/IDCT处理核的模块图。其主要部分为一维的DCT/IDCT处理单元、八个双端口RAM,另外还有一个2选1的多路选择器,一个1:2线数据分配器以及存储控制逻辑。当进行二维DCT变换时,输入数据为8bit的像素值,输出数据为12bit的带符号数;当进行二维IDCT变换时,输入数据为12bit的带符号数,输出数据为8bit的像素值。
本系统即使用SOPC来实现DCT变换域水印添加算法,通过USB协议与PC端软件进行通信及图像传输。图像水印的检测由matlab实现。
2
2.1
用户通过操作上位机软件来选择图片并打开,同时调用USB驱动将图片传送至FPGA,传送时间可在1s内完成。FT245芯片作为USB转FIFO芯片,速度能达到1Mbyte/s。Nios使用DMA将图片数据从FIFO中读到SDRAM中,然后调用内存和控制硬件模块进行水印加载,加载完成后传回上位机,整个过程可在3s内完成。嵌入水印的图片在视觉上与原始图片没有差别,但能够通过matlab程序从中提取出水印图像。并且这种水印能抵挡住JPEG压缩、图像的线性变换及涂鸦等操作的“攻击”。
为了判断嵌入水印图像的失真度,除了采用肉眼观察外,较为科学的方法是采用峰值信噪比(PSNR)。设原始图像为 ,嵌入水印后的图像为 ,计算公式如下所示:
2.2.2
为进一步增加随机性,需要将n*n=L的二值水印图像信息进行置乱预处理。其中置乱采用Arnold变换来进行。
如果利用Arnold变换对图像进行置乱,那么可以令图像的像素坐标为(x,y)其中
由变换矩阵的形式,可以得出基本值Y1的运算框图如2所示。输入的数据首先进行加减法运算,得出(10)和(11)所示的结构。然后进行乘法,最后完成加减法,得出一维DCT变换的结果。将乘数a、b、c、d、e、f、g左移8位变为定点数,内部运算采用20位的乘加结构,使运算精度大大提高。结构图虽然看起来好像很庞大,但是很多都是并行地各路运算单元所公用的,如前面的加减逻辑。还有一些数的变换矩阵的系数是一样的,这样就可以减少乘法的次数。
Digital Image Watermarking System
Abstract:Thissystem is to add a watermark ina picture in DCT domain throughSystem-on-a-Programmable-Chip.USB conveys picture from software in PC to FPGA. NIOS reads the RAM where the picture is stored and adds a watermarkthen gives it back.Considering theRobustness, complexity, invisibility, security and compatibility,this system choses the algorithm of watermarking in DCT domain.The system includes the softwarein PC, the USB Transmission part, the control part and Two-dimensional DCT transform part.The key ishow to enhance the system processing speed ,soDCT tranform part is made in hardware not software and FPGA communicates with PC throngh USB. In a word this system is able to do watremarking addtion mission fastly,at the same time,difficult to crack and not visible in the picture.
由于现实生活中彩色图像比较常见,它含有的图像信息量大,故本系统研究对.bmp格式的彩色图片添加水印。BMP格式的图像采用RGB颜色空间,根据人眼对其中蓝色分量变化不敏感的特性,已有的图像水印算法是通过修改蓝色分量来隐藏水印信息。但是,对RGB真彩色图像进行JPEG有损压缩后,红、蓝分量的能量损失较大,在这两个分量中嵌入的水印信息容易丢失,很难再提取出来,从而降低了水印的鲁棒性。通过matlab仿真,综合人体视觉系统与水印的鲁棒性,最后选择在绿色分量的DCT中频系数中嵌入水印,可使算法具有较好的透明性与抗攻击性,尤其是对JPEG压缩攻击的性能较好。图1为算法流程。
相关文档
最新文档