基于块的离散余弦变换

2024-08-03

基于块的离散余弦变换(精选7篇)

基于块的离散余弦变换 篇1

摘要:本文论述了DCT系数的选取原理和方法, 介绍了HVS三个主要特性在DCT域水印上的数学模型。讨论了基于HVS特性的图像自适应DCT水印算法。利用HVS模型根据图像局部特征实现水印自适应地嵌入。

关键词:DCT,水印,HVS,算法

0 引言

基于离散余弦变换 (Discrete Cosine Transform, DCT) 的数字水印根据对宿主图像的计算方法不同, 分有两类:一类是直接对整幅图像进行DCT计算, 选取合适频段的系数来嵌入水印;另一类是, 首先将整幅图像分成若干小块, 对每一小块分别进行DCT计算, 再在每一块中选取合适频段的系数, 将水印信息分散嵌入到所选取的系数中。这种方法称为分块DCT。下面我们主要针对分块DCT具体进行分析和论述, 并在此基础上, 讨论一种基于人类视觉特性的DCT数字水印设计方案与实现技术。

1 基于DCT变换域的数字水印模型

由于数字图像经DCT变换后以频率的形式表现出来, 如果直接对频率分量系数作修改以嵌入水印后再进行反变换, 即可得到含有水印的图像, 这样一来大大提高了数字水印的鲁棒性, 使得基于DCT变换域的数字水印理论与技术得到了较为广泛地应用。

数字水印的检测系统用来检测待检图像是否含有水印, 其输出是一个二值判断信息, 通常用l个bit来表示, 如“1”表示含水印, “0”表示不含水印。如果从待检图像中检测到水印, 则进一步提取出水印, 进行水印解码, 恢复原来嵌入到图像中的水印信息。

在许多实际应用中, 通常只需要证明图像中是否含有水印, 并不进行水印的提取。水印的解码方式与水印嵌入时采用的编码方法密切相关, 不同的编码方法采用不同的解码方法。图1是基于DCT变换域的水印检测与提取过程图。

如图1所示, DCT域水印的检测和提取过程, 将待测图像Y进行DCT运算;然后按着嵌入水印时选取的DCT系数, 选取其含有水印的系数, 进行水印提取;然后利用水印检测方法判断水印是否存在。如果水印检测器输出结果显示水印存在, 则根据需要可以用水印解码器, 对提取的水印进行解码, 恢复水印。

2 人类视觉系统感知模型

医学研究表明, 人类视觉系统 (Human Vision System, HVS) 类似于一个光学系统, 但不是普通意义上的光学系统, 它受到神经系统模型的调节。

研究HVS对于图像的感知特点, 建立HVS数学模型, 对于提高数字水印的不可感知性和鲁棒性具有重要意义。许多数字水印方法应用了HVS模型, 嵌入图像自适应水印, 对于减小水印对图像的影响, 增强鲁棒性, 取得了较好的效果。目前出现的很多水印算法都利用了HVS的特性来限制水印嵌入的位置和强度, 试图达到最大的嵌入强度和最好的视觉不可见性。

而对人类视觉影响最大的图像因素就是背景照度、背景纹理和信号频率, 而这三点决定了对比度门限值, 只要迭加的信号低于对比度门限, 视觉系统就无法感觉到信号的存在。因此应对这三个要素进行建模。

3 基于HVS的DCT域数字水印方案

下面我们结合HVS特性, 设计一个数字水印算法, 此算法采用通用加性水印模型:

设计一个图像自适应水印方法, 设计更优的水印嵌入强度, 即使其结合图像对HVS产生影响的三个主要因素, 确定H V S掩蔽因子, 进而根据图像局部纹理特性的不同而变化, 尽可能根据不同区域的特性加大水印嵌入强度, 增加鲁棒性的同时, 保证良好的透明性。

3.1 确定HVS掩蔽特性因子

下面我们具体说明HVS特性因子的确定方法。

3.1.1 背景照度掩蔽因子的确定

我们知道, 图像DCT系数的DC分量代表了图像的平均亮度, 因此块DCT的DC分量就代表了这一块图像的平均亮度。块DC分量是块DCT系数矩阵的第一个元素, 即ck (1, 1) 是第k块的DC分量, 用Lk表示。

令第k块的背景照度掩蔽因子是第k块的DC分量与整幅图像所有图像块的DC分量的平均值之比:

其中, 是所有图像块的DC分量的平均值, 表示整幅图像的平均亮度, 用下式计算:

从式 (1) 我们可以看出, 当图像块的亮度大于平均亮度时, 背景照度屏蔽因子的值就大于1, 否则小于1:

3.1.2 频率掩蔽因子的确定

令频率掩蔽因子是本块的频率掩蔽与全图所有块的频率掩蔽的平均值之比:

其中, 是平均频率掩蔽, 由下式计算:

从式 (4) 我们可以看出, 当图像块的频率掩蔽大于平均频率掩蔽时, 频率掩蔽因子的值就大于1, 否则小于1。

3.1.3 纹理掩蔽因子的确定

确定一个图像的纹理是否复杂, 我们可以对其进行边缘检测, 显然边缘多的图像区域纹理就复杂, 可嵌入的水印强度就大。我们利用边缘检测算子, 对整幅宿主图像进行边缘提取, 然后计算每一个8×8块的区域内位于边缘上的像素点个数。每块图像中含有的像素点的多少反映了这块图像的纹理复杂度。

纹理掩蔽因子就是本块的纹理复杂度与平均纹理复杂度之比, 即边缘点个数与平均边缘点个数之比:

其中, Pe, k表示第k块的位于边缘上的像素点个数, 表示平均边缘像素点个数, 其值由下式计算得出:

其中, Pe表示整幅图像位于边缘上的像素点的个数。

从式 (6) 我们可以看出, 当图像块的纹理复杂度大于平均纹理复杂度时, 纹理掩蔽因子的值就大于1, 否则小于1。

由以上三个HVS掩蔽因子的确定方法可以看出, 水印嵌入模型是根据图像局部特征自适应地嵌入水印的。对于纹理复杂, 高亮度, 高频率的区域嵌入水印强度就大, 反之嵌入强度小。

3.2 水印嵌入模型

对大小为M×N的宿主图像S进行8×8的块DCT变换, 则S被分成Bnum块:

对每一块从中频段取出系数ck (i, j) , 嵌入水印信号。其中, k表示第k个大小为8×8的DCT块, k∈{1, 2, …, Bnum}。 (i, j) 表示第k块的第个DCT系数, i, j=1, 2, …, 64。我们在中频域选取 (i, j) 。

图像自适应水印嵌入模型用下式表示:

其中分别为三个HVS特性因子:背景照度掩蔽因子、频率掩蔽因子和纹理掩蔽因子是常数, 表示平均的水印嵌入强度因子。

3.3 水印嵌入步骤

(1) 将宿主图像分成8×8的块, 每一块都进行DCT变换, 得到与宿主图像相同尺寸的DCT域系数矩阵:

(2) 对每个8×8的DCT系数矩阵, 按照上节所述, 计算HVS三个掩蔽因子:

(3) 我们用密钥生成长度为Nw的Guassian白噪声作为水印信号:

(4) 将每个8×8的DCT系数矩阵, 从每一块的中频段取出个系数:

(5) 按照下式嵌入水印:

(6) 用得到的新的DCT系数对原来位置的DCT系数进行置换。

(7) 对新的DCT系数矩阵进行DCT反变换, 得到了嵌入水印信号的图像X。

3.4 水印检测步骤

由于我们用Guassian白噪声作为水印嵌入到DCT系数中, 因此我们直接用相关检测法检测水印。

(1) 对含水印图像进行8×8的块DCT变换。

(2) 对每一块的DCT系数进行“之”字型排列, 从我们己知的嵌入位置取出可能含有水印的系数将所有提取出的系数, 按顺序组成新的系数序列:

(3) 用密钥生成水印信号:W~N (0, 1) 。

4) 利用相关法检测水印。

前面说过, 考虑到水印的鲁棒性和安全性, 水印信息一般首先被调制成伪随机序列, 然后再嵌入到宿主图像中。根据概率论可知, 两个互不相关的随机序列的相关系数 (或称为标准协方差) 为0, 如果是线性相关的, 则相关系数大于0, 最大相关系数为1。根据这一原理, 我们可以通过计算提取出的水印序列与原水印序列的相关系数来判断水印是否存在。

4 实验结果

实验中用标准Lena灰度图像作为宿主图像, 如图2所示。用另一幅文字图片作为水印, 格式为JPEG, 如图3所示。可宿主图像的每一个8×8DCT系数的中频段选取16个系数嵌入水印。图4为嵌入水印后的图像, 可见视觉效果很好。图5为水印检测后的输出结果。

5 结束语

本文对DCT域的数字水印进行了较为深入的探讨, 详细论述了DCT系数的选取原理和方法, 介绍了HVS三个主要特性在DCT域水印上的数学模型, 并在此基础上, 讨论了基于HVS特性的图像自适应DCT水印算法, 利用HVS模型根据图像局部特征实现水印自适应地嵌入。试验结果证明这种方法对于图像压缩、噪声攻击、直方图攻击和中值滤波等常见的攻击或图像处理具有很好的鲁棒性。

参考文献

[1]赵春晖, 王小辉, 孙兵.基于分块DCT变换的HVS模型加权数字水印算法[J].应用科技.2001.

[2]Chih-Wei Tang Hsueh-Ming Hang.A Feature-based Robust Digital Image Watermarking Scheme[J].IEEE Transactions on Sig-nal Processing.2003.

[3]Adnan M.Alattar Eugene T.L in Mehmet Utku Celik, DigitalWatermarking of Low Bit-Rate Advanced Simp leProfile MPEG-4Comp ressed Video.IEEE Transactions on Circuits and Systems forVideo Technology.2003.

[4]王方, 林泓.基于DCT变换的彩色图像数字水印嵌入算法研究[J].软件导刊.2007.

基于离散余弦变换的图像压缩研究 篇2

图像压缩编码技术可以追溯到1948年提出的电视信号数字化,到今天已经有50年的历史了。20世纪50年代和60年代的图像压缩技术由于受到电路技术等制约,仅仅停留在预测编码、亚采样以及内插复原等技术的研究上,还很不成熟。自80年代后期以来,由于小波变换理论、分形理论、人工神经网络理论、视觉仿真理论的建立,人们开始突破传统的信源编码理论,例如不再假设图像是平稳的随机场。图像压缩编码向着更高的压缩比和更好的压缩质量的道路前进,进入了一个崭新的、欣欣向荣的大发展时期。

1 图像的编码表示

本质上说,图像压缩就是对要处理的图像源数据用一定的规则进行变换和组合,从而达到以尽可能少的代码(符号)来表示尽可能多的数据信息的目的。压缩通过编码来实现,所以,一般把此项处理称为压缩编码。从信息论的角度来看,压缩就是去掉信息中的冗余,即保留不确定的信息,去掉确定的信息,也就是用一种更接近信息本质的描述来代替原有冗余的描述。这个本质的东西就是信息量。

在数字图像压缩中,有三种基本的数据冗余:像素相关冗余、编码冗余、心理视觉冗余。如果能减少或者消除其中的一种或多种冗余,就能取得数据压缩的效果。无损压缩也称冗余度压缩方法,利用数据的统计冗余进行压缩,具体来说就是解码图像应与压缩编码前的数据严格相同,没有失真,从数学上讲是一种可逆运算。有损压缩方法也称为信息量压缩方法,利用了人类视觉或听觉对图像或声音中某些频率成分不敏感的特性,允许压缩过程中损失一定的信息,所损失的部分对理解原始图像的影响较小,却换来了大得多的压缩比。

2 离散余弦变换理论基础

在图像处理的广泛领域中,傅里叶变换起着非常重要的作用,包括图像增强、图像分析、图像复原和图像压缩等。在图像数据的数字处理中常用的是二维离散傅里叶变换,它能把空间域的图像转变到频域上进行研究,从而很容易地了解到图像各空间频域成分,进行相应处理。在计算机上使用的傅里叶变换通常都是离散形式的,使用离散傅里叶变换的根本原因有:第一,DFT的输入、输出均为离散形式的,有利于计算机处理;第二,计算机DFT存在快速算法——快速傅里叶变换。

离散余弦(Discrete cosine Transform,DCT)是与傅里叶变换相关的一种变换,它类似于离散傅里叶变换,但是只使用实数,相当于一个长度大概是它两倍的离散傅里叶变换。通常所说的离散余弦变换指的就是这种。它的逆通常相应地被称为反离散余弦变换、逆离散余弦变换或者IDCT。任何连续的实对称函数的傅里叶变换中都只含余弦项,因此余弦变换与傅里叶变换一样有明确的物理量意义。因此经常被图像处理使用,用于对图像进行有损数据压缩。这是由于离散余弦变换具有很强的“能量集中”特性:大多数的自然信号的能量都集中在离散余弦变换后的低频部分,而且当信号具有接近马尔可夫过程的统计特性时,离散余弦变换的去相关性接近于K-L变换(Karhunen-Loève变换),它具有最优的去相关性性能。

3 使用离散余弦变换进行图像压缩

离散余弦变换是先将整体图像分成N×N像素块,然后对N×N像素块逐一进行离散余弦变换。由于大多数图像的高频分量较小,相应于图像高频成分的系数经常为零,加上人眼对高频成分的失真不太敏感,所以可用更粗的量化,因此传送变换系数所用的数码率要大大小于传送图像像素所用的数码率。到达接收端后,再通过反离散余弦变换回到样值,虽然会有一定的失真,但人眼是可以接受的。

M×N维矩阵A=(ajk)的离散余弦变换定义为:

buv=cucvj=0Μ-1k=0Ν-1ajkcos(2j+1)uπ2Μcos(2k+1)vπ2Μ

其中,cu,cv由下式确定:

cu={1Ν,u=02Ν,1uΝ-1cv={1Ν,v=02Ν,1vΝ-1

其离散余弦变换为:

ajk=j=0Μ-1k=0Ν-1cucvbuvcos(2j+1)uπ2Μcos(2k+1)vπ2Μ

利用离散余弦变换进行图像压缩技术的计算机过程为:首先从原始图像中读取出利用数字矩阵表示的RGB图像数据,为了编写出可操作性较强程序一般将该矩阵分为16×16或者8×8的小方阵,以每个小方阵为单位,进行离散余弦变换,变换完毕后每个方阵的低频部分就集中到了矩阵的左上角,而高频部分就集中到了右下角,而它的低频部分代表了图像的大部分信息,相比之下高频部分就显得不是特别重要了,此时可以根据实际需要或对压缩比的要求来决定对右下角高频部分舍弃的程度。

N代表像素数,一般N=8,8×8的二维数据块经离散余弦变换后变成8×8个变换系数,这些系数都有明确的物理意义:u代表水平像素号,v代表垂直像素号。当u=0,v=0时,F(0,0)是原64个样值的平均,相当于直流分量,随着u,v值的增加,相应系数分别代表逐步增加的水平空间频率分量和垂直空间频率分量的大小。

输入图像首先被分成8×8的图像子块,然后对每个图像子块计算二维离散余弦变换。离散余弦变换的系数经过量化,编码并传输;在读取图像时,解码出离散余弦变换系数,进行二维离散余弦逆变换,最后将子块放到图像中。Matlab图像处理工具箱中提供的二维DCT变换及DCT反变换函数。DCT2实现图像的二维离散余弦变换,其语法格式为:B=DCT2(A),B表示返回图像A的二维离散余弦变换值,其大小与A相同,且各元素为离散余弦变换的系数B(i,j)。通常情况下,一副图像并不会正好就是8的倍数,这样在边角就会出现非方阵的矩阵,此时使用B=DCT2(A,m,n)。Matlab对于此处理规则是如果mn比图像A大,在对图像进行二维离散余弦变换之前,先将图像A补零至m×n;如果mn比图像A小,则进行变换之前,将图像A剪切。IDCT2可以实现图像的二维离散余弦反变换,其语法格式为:B=IDCT2(A);B=IDCT2(A,m,n)。对于非方阵的处理规则同上。

图1是Matlab自带的用离散余弦变换(DCT)进行压缩的实例截图,从图中可以看出,DCT技术很好地还原了图像,而其达到了比较高的压缩比。其中的Original Trees Image代表了原始图像,Reconstructed Image代表了压缩后的图像。可以看出,有一定的失真但不明显,后面的Error Image代表了原图像和压缩图像之间的误差,大体可以看出一些轮廓。Matlab采用了8×8的小方阵进行DCT变换。

上面采用的是灰度图,下面采用Windows XP自带的彩色图片进行离散余弦变换,如图2所示,采用较高的压缩比,失真较为明显。

4 离散余弦变换算法的改进

二维离散余弦变换的常规算法是行列法,对于计算N×N的矩阵,需要计算2N个一维的向量,为了更有效地计算二维,有学者提出了一种直接作用于二维数据集的快速算法,该算法对于计算N×N的矩阵,只需计算N个一维向量,因此可以有效地减少计算时间,所需乘法次数只是常规算法的50%。目前国内外学术界关于如何加快DCT变换的研究进行的比较多,成熟的算法还有快速哈特莱变换(也就是离散哈特莱变换的快速算法)、快速余弦变换、快速沃尔什-哈达玛变换、快速数论变换、快速多项式变换等。

5 结 论

离散余弦变换具有算法简单,易于硬件实现等优点,从而广泛应用于图像压缩领域。然而,它在低比特率条件下的方块效应成了不容忽视的瓶颈缺陷。原因就在于离散余弦变换处理的图像是分块进行的,块与块边界两边的像素相关性不能去掉,从而形成了明显的方块边界。若将DCT变换与其他编码方法如小波变换、分形等相结合,将会得到更好的效果。

摘要:图像压缩是数据压缩技术在数字图像上的应用,其目的是减少图像数据中的冗余信息,从而用更加高效的格式存储和传输数据。图像压缩可以是有损数据压缩也可以是无损数据压缩。这里所研究的是有损压缩技术,对于此类技术,变换编码是最常用的方法,如离散余弦变换(DCT)或者小波变换这样的傅里叶相关变换,然后进行量化和用熵编码法压缩。

关键词:图像压缩,离散余弦变换,傅里叶变换,熵编码

参考文献

[1]郑戟明,曹玉茹.基于Matlab的图像压缩处理及其实现[J].微计算机信息,2010(10):143-144.

[2]练华,宋宝瑞.基于小波变换的分形图像编码[J].上海交通大学学报,2004,38(4):637-640.

[3]吴崇明.基于Matlab的系统分析与设计:小波变换[M].西安:西安电子科技大学出版社,2000.

[4]姚庆栋.图像编码基础[M].北京:清华大学出版社,2006.

[5]闫敬文.数字图像处理技术与图像图形学基本教程[M].北京:科学出版社,2002.

[6]黄伟,龚沛曾.图像压缩中的几种编码方法[J].计算机应用研究,2003,20(8):67-69.

[7]周晓光.极化SAR图像分类方法研究[D].长沙:国防科学技术大学,2008.

[8]杨旭东,王万良.基于改进的MSE准则的小波图像压缩[J].计算机辅助设计与图形学学报,2003,15(4):402-409.

基于块的离散余弦变换 篇3

数字水印采用技术隐藏保护了重要的信息和文件。它通常采用类似扩频图像技术来隐藏信息。一般基于常用的有DCT变换、DWT变换、DFT变换。文章基于DCT算法进行验证, 对水印系统中图像进行质量评价。

离散余弦变换简称DCT, 傅立叶变换简化方法之一。基于DCT域的数字水印算法, 根据对宿主图像进行DCT方法计算, 分为两大类, 一类是直接对整幅图像进行DCT计算, 选取合适频段的系数, 嵌入水印。另一类是先将整幅图像分成n块, 分别对每一块进行DCT计算, 并在每一块中选取合适频段的系数, 将水印信息分散嵌入到每一块所选取的DCT系数中。

在这里采用的分块DCT算法。原始图像按8×8分成互不重叠的子块。首先计算每一个子块的方差值, 选择方差值最大的前n块, 然后依据系统密钥进行DCT变换, 选取每一块中频系数的随机序列, 最后通过子块的DCT逆变换生成含水印的图像。水印的提取是上述过程的逆过程。该算法的嵌入流程图如1所示, 水印提取过程如图2所示。

文章采用MATLAB软件进行仿真, 选择的原始图像为512×512的256等级的灰度标准图像。将水印嵌入原始图像再提取之后, 为了评价所得到图像质量, 使用峰值信噪比来衡量两幅数字图像之间的数值差别:

原始图像嵌入水印后, 峰值信噪比为39.01, 如图3 (1) 所示, 图像具有良好的不可见性, 得到了较好的主观视觉效果。然后对加入水印的图像进行水印提取, 得到水印图像如图3 (2) 所示, 提取的水印图像与原始水印图像几乎没有差异。

最后对该算法产生的含水印图像进行了一系列攻击实验。

(1) 噪声攻击。在这里对图像分别进行高斯噪声攻击和椒盐噪声攻击, 得到提取水印与原水印的相关度分别为0.9721、0.9845, 提取的结果如图4所示。

(2) 左上角四分之一剪切。对图像进行四分之一剪切后, 得到提取水印和原水印的相关度为0.8221。水印提取的结果如图5所示。

通过MATLAB软件仿真结果可见, 基于DCT域的数字水印算法在文件保护上发挥着很好的作用, 该算法具有较好的提取效果, 具有一定的抵抗能力, 能在信息保护领域发挥重要的作用。

摘要:数字水印技术在所有权保护、认证、指纹、拷贝控制、访问控制和广播监控方面都有重要的应用。本项目将研究方向锁定在变换域上, 提出了新的解决方案。

关键词:数字水印,余弦变换,噪声攻击

参考文献

[1]孙圣和, 陆哲明, 牛夏牧.数字水印技术及应用[M].科学出版社, 2004.

[2]王丙锡, 陈琦, 邓峰森.数字水印技术[M].西安电子科技大学出版社, 2003.

基于块的离散余弦变换 篇4

离散余弦变换(Discrete Cosine Transform,简称DCT)常被认为是对语音和图像信号进行变换的最佳方法。为了工程上实现的需要,国内外许多学者花费了很大精力去寻找或改进DCT的快速算法。由于近年来DSP的发展,加上专用集成电路设计上的优势,这就牢固地确立DCT在目前图像编码中的重要地位,成为H.261、JPEG、MPEG等国际上公用的编码标准的重要环节[1]。MATLAB是由美国Math-Works公司推出的用于数值计算和图形处理的科学计算软件,它集数值分析、矩阵计算、信号处理和图形显示多种功能于一体,构成了一个方便的界面友好的用户环境[2]。MATLAB中的图像处理工具箱是许多基于MATLAB技术计算环境的函数包的集合图形功能完备,本文主要讨论了DCT变换方法,并讨论了应用MATLAB中的图像处理工具箱中的相关函数和命令来实现离散余弦变换的信号压缩算法的仿真。

2 DCT变换及在matlab中的实现

DCT是一种与傅立叶变换紧密相关的数学运算。在傅立叶级数展开式中,如果被展开的函数是实偶函数,那么其傅立叶级数中只包含余弦项,再将其离散化可导出余弦变换,因此称之为离散余弦变换。下面主要以二维变换为例介绍DCT变换。

2.1 离散余弦变换(DCT)正反变换公式

正变换公式:

式中:

反变换公式:

式中:x,y为空间域采样值;u,v为频率域采样值。其中f(x,y)是空间域二维向量之元素,F(u,v)是变换系数阵列元素。在二维离散余弦变换中,通常数字图像用像素方阵表示,即M=N[3],在这种情况下,二维离散余弦的正反变换可简化为

式中

2.2 在MATLAB仿真中的实现

主要是采用二维DCT变换的矩阵式定义来实现的,矩阵式定义可以表示为

其中[f(x,y)]是空间数据阵列,[F(u,v)]是变换系数阵列,[A]是变换矩阵,[A]T是[A]的转置[4]。

3 实验研究

离散余弦变换DCT的MATLAB实现方法,基于FFT的快速算法,这是通过MATLAB工具箱提供的dct和idct函数实现的,二维DCT变换和逆变换指令为dct2和idct2[5]。

1)对一语音信号进行压缩处理的matlab实现程序如下:

得到原始信号、原始信号的DCT变换波形、经过压缩后的DCT波形以及通过压缩后的DCT波形重建的信号波形如图1。

可以看出,当波形数据做DCT变换后压缩到原数据的12.94%左右时,根据压缩信号重建的时域波形存在失真,但在工程上这样的失真是允许的。在一定失真度指标下,通过DCT变换可以使数据得到很大程度的压缩。

2)对一图像进行压缩处理的matlab实现程序如下[6]:

程序结果如下:

图像进行离散余弦变换后的结果矩阵如图2所示,显示DCT的结果中能量大部分集中在左上角。

根据矩阵左上角部分数据就可以重建图像,不同门限下的压缩率是不同的,对应的原始图像、重建图像如图3所示。

4 结束语

DCT具有很好的能量压缩性能,而且DCT变换是实数变换,便于工程实现,重建信号失真较小,压缩质量令人满意。DCT在本文中用MATLAB来实现离散余弦变换的信号压缩,具有方法简单、速度快、误差小的优点,免去了大量矩阵计算。

参考文献

[1]徐明远,邵玉斌.MATLAB仿真在通信与电子工程中的应用[M].西安:西安电子科技大学出版社,2005:267-268.

[2]孙兆林.MATLAB6.x图像处理[M].北京:清华大学出版社,2002:163-164.

[3]贾永红.计算机图像处理与分析[M].武汉:武汉大学出版社,2001:201-203.

[4]朱秀昌,刘峰,胡栋.数字图像处理与图像通信[M].北京:北京邮电大学出版社,2002:154-155.

[5]飞思科技产品研发中心.MATLAB6.5辅助图像处理[M].北京:电子工业出版社,2003:72-73.

基于块的离散余弦变换 篇5

数字视频水印是指将一个数据信息嵌入到视频媒体中, 该嵌入信息使视频媒体的所有者建立对视频的所有权。目前已提出的数字视频水印算法根据水印嵌入位置的不同可分为基于原始视频的水印方法和基于压缩视频的水印方法[2,3]。Haitsma提出了通过调制每一帧的平均亮度, 按帧嵌入水印信息的水印算法[4], 该算法可以较好地抵抗空间同步失真, 但其抗有损压缩的能力较弱。Niu等人提出的沿时间轴嵌入的水印可以抵抗一定频率的丢帧攻击, 同时对于有损压缩的抵抗力也较好[5], 但该算法对于选择水印嵌入点过于复杂。文献[6]提出在帧的亮度分量中固定位置嵌入标志水印, 再选取若干图像块在DCT直流系数中嵌入水印的方法。文献[7]提出一种基于HVS的DCT域稳健视频水印算法, 该算法对丢帧、加噪等攻击具有较强的鲁棒性。另外, Shang等人提出了一种用于MPEG压缩视频的可逆水印算法, 通过选取合适的DCT系数来提高水印的不可见性, 并标记DCT系数的修改用于无损还原原始视频[8]。文献[9]提出了一种在H.264压缩视频中嵌入灰度图像的水印算法, 水印嵌入通过修改4×4 DCT对角线系数的符号来实现。

数字视频水印的特点在于:视频的信息量庞大, 提取水印不应该用到原始视频信息, 即视频水印应实现盲提取;另外, 原始视频在传输和存储前往往要经过压缩编码, 因此视频水印必须能够抵抗主流的压缩处理或其他各类攻击。将水印嵌入到原始视频的方法比较多, 但缺点是算法往往比较复杂, 而且对于已压缩的视频, 需要先进行解码, 然后嵌入水印后再重新编码;压缩视频水印方法的复杂度较低, 容易满足实时性要求, 但是很难做到对各种针对视频的攻击都具有较好的鲁棒性。作为视频的所有者, 在拥有未压缩的视频的情况下, 要使水印能够抵抗各种格式的压缩以及其他常见的针对视频的攻击, 应该选择在未压缩的视频中嵌入水印。

1 算法相关理论

1.1 算法流程

本文从降低运算复杂度的角度出发, 提出了一种基于帧DCT变换的视频水印算法。该方法通过计算视频帧不同位置的嵌入强度来平衡水印不可见性和鲁棒性之间的关系, 在视频帧亮度分量分块DCT系数中嵌入经预处理后的水印信息, 并且采用多次嵌入等措施增强水印的鲁棒性。其嵌入和提取的流程如图1所示。

1.2 水印嵌入强度选择

在视频帧中嵌入水印信息时, 提高嵌入强度有利于增强水印鲁棒性, 但是与此同时势必会造成视觉质量的下降。为了平衡水印嵌入对视频质量的影响和鲁棒性之间的关系, 有必要针对视频帧的不同位置选择不同的嵌入强度。

1) 基于纹理的嵌入强度

视频帧8×8分块DCT变换后的交流分量可以用来反映视频帧的纹理平滑程度。设每帧的第k个分块DCT变换后的63个交流分量和值为ACk, 则该值越大表明分块的纹理越复杂。基于纹理的嵌入强度q1与分块的纹理复杂度有关, 其值已由实验确定。q1取值与ACk的关系如表1所示。

2) 基于边缘的嵌入强度

对视频帧进行边缘检测, 当分块处于明显的边缘时, 可以认为其纹理也比较复杂, 人眼对其不敏感, 可以加大该分块的嵌入强度。设Edge是分块中处于边缘的像素数量, Edge∈{0, 1, …, 64}, 则基于边缘的嵌入强度q2按式 (1) 取值

3) 基于亮度的嵌入强度

当视频帧分块的亮度较大时, 人眼对其不敏感, 可以加大嵌入强度。设第k个分块的DCT变换后对应的直流分量为DCk, 可用其反映第k个分块的平均亮度的强弱。则基于亮度的嵌入强度q3为

式中:h是视频帧亮度分量所有分块DC系数的平均值。

最后, 总的水印嵌入强度为

视频通常是以25 f/s (帧/秒) 的速率进行播放的。在1 s的时间内, 播放了25帧画面相似的图像, 所以相邻帧之间的差异并不明显。计算出视频的第1帧各分块的嵌入强度之后, 其后一定范围内的帧都可以参照此嵌入强度, 而不用对嵌入强度重新计算, 这样就大大减少了算法的复杂度。对于画面快速运动的视频, 则可以对不同邻域的帧重新计算新的嵌入强度, 使嵌入强度的选择更加准确。

1.3 水印的嵌入与强化

人类视觉系统 (HVS) 对图像的低频分量比高频分量敏感, 因此在视频帧的高频分量嵌入水印比在低频分量嵌入能达到更好的视觉效果。但是在高频分量嵌入的水印鲁棒性较差。因此, 考虑在视频帧的中频分量中嵌入水印。

在实际应用中, 为了节约传输带宽和存储空间, 原始视频往往要经压缩后才会送入信道传输。此外, 视频在传输过程中也面临各种噪声的干扰, 导致在接收端接收的视频出现各种失真。因此, 是否抗压缩和其他各类攻击是衡量水印实用价值的重要指标。为了使嵌入的水印能够具有较高的鲁棒性, 本文采取了多次嵌入的措施。在第1次水印嵌入完成后, 未嵌入水印的邻近视频帧使用相同的方法将水印重复嵌入2次。在水印提取时, 当相同位置的提取水印值不同时, 取多次提取结果中出现次数较多的值。

1.4 水印嵌入与提取质量的客观评价

PSNR (峰值信噪比) 是一个衡量噪声对图像质量影响的常用指标, 可用其衡量视频中的每一帧相对原始视频帧的客观差异, 其定义为

式中:M和N是载体视频帧的长和高;Iij是原始视频帧的像素值;I'ij是含水印视频帧的像素值。当PSNR≥30 d B时, 可认为水印具有较好的不可见性。

NC (归一化相关系数) 是一个用来衡量提取的水印信息和原始水印信息相似程度的常用指标, 其定义为

式中:wij为原始水印值;w'ij为提取的水印值;i和j为水印图像中像素的坐标。当NC=1时, 认为实现了水印的完全提取。

2 视频水印算法

2.1 水印预处理

水印通常是版权信息, 为了保护其不受破坏和减小水印嵌入对原始宿主信号能量的改变, 有必要在嵌入前对水印进行预处理, 使水印的像素值分布趋于均衡化和随机化, 从而提高其安全性。

设水印为正方形的二值图像, 对其进行如下预处理:

1) 利用一个密钥种子key来生成置乱矩阵A, A中元素为伪随机的0, 1构成。

2) 将二值水印W与置乱矩阵A相异或得到置乱水印

式中:⊕表示异或运算。

2.2 水印嵌入算法

1) 按下式计算视频每帧的嵌入量

式中:p为视频每帧可嵌入比特数;m和n分别是视频帧的高度和宽度;为下取整。

2) 将预处理后的水印转换为一维数组, 设其长度为l, 并将其每隔p比特划分一段, 最后一段不足p比特的位置补0, 将得到的个子段的一维数组转换为子矩阵。为上取整。

3) 按1.2节描述的方法计算每一分块的嵌入强度, 构成嵌入强度矩阵Q。

4) 对视频每帧做8×8分块DCT, 将水印的第i个子矩阵与第i个视频帧的亮度分量对应。按式 (8) 得到g, 再同时令d (4, 5) 和d (5, 4) 等于g, d (x, y) 为对应视频帧亮度分量每一分块DCT系数, x, y∈{1, 2, …, 8}, 表示系数坐标。

式中:a= (d (1, 8) +d (2, 7) +d (3, 6) +d (6, 3) +d (7, 2) +d (8, 1) ) /6;为的第i个子水印;。

5) 将嵌入了水印后的视频帧做8×8分块逆DCT。

6) 重复步骤4) ~5) , 将水印再嵌入到未嵌水印视频帧中2次, 以增强水印的鲁棒性, 最终得到含水印视频。

2.3 水印提取算法

1) 在水印嵌入帧做8×8分块DCT。

2) 在每一帧中按式 (9) 所示规则提取水印信息

式中:a'= (d' (1, 8) +d' (2, 7) +d' (3, 6) +d' (6, 3) +d' (7, 2) +d' (8, 1) ) /6;为提取的第i子段水印;。

3) 对未提取帧重复步骤2) ~3) , 得到第2次和第3次提取的水印信息, 然后按相同位置的值由多次出现值确定的原则, 得到分段子水印。

4) 将一维化后, 按水印嵌入时的顺序组成完整的一维数组, 再将其二维化, 最后做水印预处理逆运算, 得到提取的水印W'。

3 仿真实验与分析

本文采用了3个QCIF格式的原始视频 (Foreman, News和Coastguard) 作为宿主。利用上述算法完成了水印信息的预处理、嵌入和提取实验, 并在含水印视频的峰值信噪比和算法鲁棒性方面做了相关实验分析工作。

3.1 水印预处理实验

实验采用的水印信息如图2a所示, 为一标有“版权所有”字样的二值图像。结合图2和表2可知, 在对水印做预处理前, 水印图像中白色像素值 (1值) 明显多于黑色像素值 (0值) , 这容易引起视频帧能量的改变, 引起攻击者的注意。预处理之后水印图像已被置乱, 0值点和1值点的百分比已经相当接近, 具有较好的随机分布性质, 增强了水印的安全性。

%

3.2 水印的嵌入与提取实验

将水印信息嵌入到3个原始视频中, 每个视频分别需要33帧来完成水印的嵌入。如图3所示, 图3a~图3c为3个原始视频的第10帧, 图3d为待嵌入的水印信息, 图3e~3g为3个含水印视频的第10帧, 可以看出它们都具有较好的不可见性, 其峰值信噪比分别为38.371 5 d B, 37.161 8 d B和38.610 9 d B, 图3h为提取的水印信息。从3个含水印视频中均能实现水印信息的完全提取, NC都为1.000 0。

3个视频含水印帧的平均峰值信噪比如表3所示。可以看出, 嵌入水印后平均峰值信噪比都在30 d B以上, 具有较好的不可见性。

3.3 水印的鲁棒性测试

对含水印视频进行各类攻击, 然后将提取的水印与原始水印比较, 通过计算其NC值来对算法的鲁棒性做出评价。本实验分别对3个含水印视频进行丢帧、帧平均、帧重组、亮度提升、亮度减弱和H.264压缩编码等攻击, 得出提取水印的NC值如表4所示。由此可知本文算法对于各类攻击具有较强的鲁棒性。各类攻击方法具体如下:

1) 丢帧, 每10帧丢失1帧;

2) 帧平均, 每5帧中随机抽取1帧F, 与它相邻的两帧 (F-1, F+1) 求平均, 用平均帧F'代替原始帧F;

3) 帧重组, 每10帧中随机调换两帧;

4) 亮度提升, 将视频的亮度分量整体提升15%;

5) 加噪, 在视频帧中加入椒盐噪声;

6) H.264压缩, 将含水印视频进行H.264压缩编码后再解码重建视频, 平均码率控制在25 kbyte/s。

将本文算法与文献[6]算法和文献[7]算法做鲁棒性比较实验, 实验中宿主统一采用Foreman, 结果如表5所示。可以看出, 本文算法抗丢帧、加噪攻击的能力优于文献[6]算法和文献[7]算法, 抗H.264压缩的能力优于文献[7]算法。

4 结论

本文结合了数字图像和视频的相关理论, 根据人眼对视频帧不同区域的敏感性大小选择了不同的嵌入强度, 提出一种在视频帧亮度分量分块DCT系数中嵌入水印的算法。实验表明本算法具有较好的不可见性和较强的鲁棒性, 在数字视频版权保护方面具有较广阔的应用前景。

参考文献

[1]COX I, MILLER M, BLOOM J.Digital watermarking[M].San Francisco:Elsevier Science, 2002.

[2]唐松生, 董颖.数字视频水印技术综述[J].计算机安全, 2007 (9) :31-33.

[3]SIMITOPOULOS D, TSAFTARIS S, BOULGOURIS N, et al.Compresseddomain video watermarking of MPEG streams[C]//Proc.2002 IEEE International Conference on Multimedia and Expo.[S.l.]:IEEE Press, 2002:569-572.

[4]HAITSMA J, KALKER T.A watermarking scheme for digital cinema[C]//Proc.2001 International Conference on Image Processing.New York:IEEE Press, 2001:487-489.

[5]NIU X, SCHMUCKER M, BUSCH C.Video watermarking resisting to rotation, scaling, and translation[C]//Proc.SPIE Security Watermarking of Multimedia Contents IV.San Jose:SPIE, 2002:512-519.

[6]高琦, 李人厚, 刘连山.基于帧间相关性的盲视频数字水印算法[J].通信学报, 2006, 27 (6) :43-48.

[7]谢斌, 任克强, 肖玲玲.一种基于HVS的DCT域稳健视频水印算法[J].电视技术, 2011, 35 (9) :30-32.

[8]SHANG Y.A new invertible data hiding in compressed videos or images[C]//Proc.the 3rd International Conference on Natural Computation.Washington DC, USA:IEEE Computer Society, 2007:576-580.

基于块的离散余弦变换 篇6

关键词:DCT,版权保护,版权通知,Canny算子,自适应

0 引 言

计算机技术的飞速发展以及信息媒体的数字化,极大地提高了信息表达的效率和准确性,但是数字产品的版权保护成为迫切需要解决的实际问题。数字水印技术作为信息隐藏技术领域的一个重要分支,在如今的计算机、自动化、信息等领域有着广阔的应用前景。人们可以在数字载体中嵌入数字、序列号、文字、图像标志等版权信息,这些信息能起到较好的版权保护、信息隐藏、数据文件的真伪鉴别等作用。根据水印的可见性,分为可见水印和不可见水印。可见水印是肉眼可以看见的,不可见水印指将水印信号嵌入到数字图像、音频或视频中,虽然表面上很难发觉到这些数字作品的变化,但是如果发生版权纠纷时,即可从这些数字作品中提取水印,来证明数字作品的版权,而其与可见水印相比应用更加广泛。

1 数字水印算法综述

基于DCT域的数字水印算法[1],根据对宿主图像DCT的计算方法分为两大类: 一类是直接对整幅图像进行DCT计算,选取合适频段的系数,嵌入水印。另一类是,首先将整幅图像分成块,对每一块分别进行DCT计算,在每一块中选取合适频段的系数,并将水印信息分散嵌入到每一块所选取的DCT系数中[2,3]。

二维离散余弦变换不但能够将图像的主要能量集中到低中频系数上,而且使得引起图像的块效应达到最小,能够实现能量集中和计算复杂性的良好折中。离散余弦变换的实变换特性,良好的能量压缩能力和解相关能力,可以通过快速算法计算等优点使其在数字水印嵌入算法的研究中具有强大的吸引力。

本文提出的水印算法如图1所示。对于灰度图像,可见水印的嵌入和不可见水印图像都是在其DCT域中进行的。根据canny算子计算出宿主图像的边缘信息并结合其纹理、亮度等信息自适应地嵌入可见水印。而不可见水印的嵌入[4]同样利用了上述宿主图像的信息,在选取了合适的位置后实现自适应嵌入。在提取不可见水印的过程中,根据不可见水印嵌入时用到的密钥提取水印信息,然后将提取出的信息与原始水印信息作对比,即可判断出可疑图像中是否含有不可见水印。

2 可见水印嵌入算法

2. 1 嵌入准则

取大小为M×N的灰度图像Igrey为原始宿主图像和大小为P×Q的二值图像W为可见水印图像。首先在宿主图像中选取水印图像大小的区域作为嵌入区域,该部分图像取为I并分成互不重叠的8×8子块I( k) ( k = 0,1,…) ,然后对各个子块进行DCT变换得到IDCT( k) 。数字水印算法中最常见的水印嵌入准则有线性加法、乘法和量化索引调制。考虑到可见水印的特性,本文中采用线性加法嵌入准则,公式为:

其中,IijDCT( k) 和WijDCT( k) 分别表示宿主图像和水印图像的第k子块的DCT系数; I'ij( k) 表示水印嵌入后图像的第k子块的DCT系数; λk是子块k的嵌入系数。

因此,该算法的关键在于λk的设计。要取得合适的λk,必须要结合人类视觉系统( HVS) 特性。算法的目标为既要满足可见水印细节部分可见的要求,又可自适应地根据宿主图像特性嵌入水印,在提高水印的鲁棒性和安全性同时,还要保证不降低宿主图像的质量。水印算法如图1所示。

2. 2 嵌入系数

从人类视觉系统HVS的特点出发,为保证不降低宿主图像的质量和可见水印细节部分的可见性,对原始宿主图像各个分块进行分析。在此前提下,有三个主要方面决定了嵌入系数λk。具体来说,这三个方面可做如下表述:

( 1) 图像亮度的影响。原始图像的背景亮度越强,则人眼对其中的像素改变就不敏感,这使得水印的可见性不强,应该加强水印嵌入的强度。反之,如果原始图像背景亮度较弱,则应该降低水印嵌入的强度以保证原始图像的质量。对原始宿主图像进行分块DCT变换,得到8×8的系数矩阵。根据DCT变换的特点,经变换后各个子块的能量集中到直流分量中。而直流分量代表了子块的亮度信息,该值越大,子块的背景亮度越强,则嵌入系数就应该越大。

( 2) 边缘信息的影响。图像的边缘信息可以用来衡量图像的复杂度和对比度,边缘点密度高,则说明其对比度高,且图像复杂,在这些区域往往包含有重要信息。本算法中用canny算子对原始宿主图像的各个分块进行边缘检测,根据边缘点密度信息决定嵌入的强度。

( 3) 纹理强度的影响。在图像中纹理较强的区域,人的视觉系统对图像的失真和噪声的敏感度较低,故视觉门限明显高于其他区域。对于纹理强度,可以用灰度值方差来衡量。所以计算各个子块的平均灰度值,进而求得各个子块的灰度值方差,再由灰度值方差决定嵌入的强度。

若以L( k) 表示各个子块的亮度的归一化值,E( k) 表示各个子块的边缘密度的归一化值,T( k) 表示各个子块的纹理强度的归一化值。数学表示为:

其中,l( k) 为各个子图像块的亮度值,lmin和lmax分别表示子块中亮度最大和最小的值; e( k) 为各个子块的边缘密度值,emin和emax分别表示图像块中边缘密度最大和最小边缘密度值; t( k) 为各个子块的纹理强度值,tmin和tmax分别表示图像块中纹理强度最大和最小的值。

λk是由L( k) 、E( k) 、T( k) 这三者共同影响的,对其进行加权,即可得到λk,计算表达式为:

式中,wl是归一化亮度值的权值,we是归一化边缘密度值的权值,两者的和应当小于1,可以通过实验求得; L( k) 、E( k) 、T( k) 则可由式( 2) - ( 4) 得到。

2. 3 嵌入步骤

在嵌入可见水印之前,首先在宿主图像中选取和水印图像同样大小的区域并取为I,把选择的区域I和水印图像W分成互不重叠的8×8子块I( k) 、W( k) ,然后分别对各个子块进行DCT变换得到IDCT( k) 、WDCT( k) 。然后计算得到各个子块的嵌入系数λk,再根据式( 1) 得到嵌入水印后的各个子块的DCT系数,最后对各个子块进行IDCT变换获取嵌入水印的图像。

3 不可见水印的嵌入和提取算法

3. 1 嵌入准则

对于不可见水印的嵌入,重点要考虑的是保证其不可见性和鲁棒性。鉴于对这两个性质的要求,本文提出了一种自适应的嵌入算法。为了既满足水印图像的不可感知性,又满足对各种攻击的鲁棒性。根据离散余弦变换后的参数特性,低频系数具有较大的值,决定了图像的质量和视觉效果,而高频系数较易被低通滤波去掉,稳定性不好,所以选择中频分量并用加密的不可见数字水印序列对其进行调制[5]。

3. 2 加密算法

为了提高水印图像应对各种攻击的鲁棒性,首先对其进行加密处理。加密后的二值水印图像类似于随机二值序列,隐蔽性好,不易被察觉,同时,有助于提高水印系统的安全性。通过图像加密,如果攻击者没有加密的密钥,水印也很难被正确地检测出来。

目前水印加密技术有很多种,主要有Arnold变换、幻方、Hilbert曲线、混沌映射等。而Arnold变换和混沌映射是最常用的两种方法。本文中采用混沌映射中的Logistic映射法,其定义形式如下:

初始值选为0 < S0< 1,这样一来得到的序列S的取值范围是单极性的,且0 < Si< 1。一般的μ取值选为接近4的实数。为了将生成的实数序列S转化成二值序列,可以采用设置阈值的方法。

3. 3 嵌入过程

嵌入之前,首先由水印图像生成混沌水印。文章提出了一种改进的自适应算法[6,7,8],首先将原始宿主图像分成8×8的互不重叠的子块,然后对各个子块进行DCT变换,选取每一块图像子块DCT变换后的( 3,3) 和( 4,4) 位置作为具体的水印信息嵌入位。选择要嵌入水印信息的DCT中频系数P01: ( 3,3) ,P02: ( 4,4) ,计算其周围的六个DCT系数P1: ( 3,2) ; P2: ( 3,4) ; P3: ( 3,4) ; P4: ( 4,3) ; P5: ( 4,5) ; P6: ( 5,4) ,并计算这六个系数的均值

嵌入时,在每一块图像块中嵌入一位水印信息,选取加密后的水印的比特位W。首先对各个分块进行DCT变换,在每一个8×8系数矩阵中选取上文提到的六个系数,并计算相应的均值Ave再比较该值和P01、P02的大小。如果W = 1且Ave在P01、P02之间,则不用修改DCT系数,否则修改P01或者P02,使Ave的值介于P01、P02之间,即P( P01或者P02) =Ave±α; 如果W = 0且Ave在p01、P02之间,则通过修改P01或者P02,P( P01或者P02) = Ave±α,使Ave值要么大于P01和P02或者小于P01和P02。否则不用修改DCT系数。嵌入水印后再进行DCT变换得到包含水印的原始图像。

每个子块的嵌入强度α是自适应的,在嵌入可见水印的时候已经讨论了亮度和纹理的影响,而在嵌入不可见水印时也同样需要将两者考虑在内。所以令:

如上文所述,L( k) 表示各个子块的亮度的归一化值,T( k) 表示各个子块的纹理强度的归一化值,α( k) 是各个子块的不可见水印嵌入系数。

3. 4 提取过程

水印的提取过程和嵌入过程相反[9],首先对包含水印的图像进行分块DCT变换。然后得到六个系数值并计算得到其对应的均值Ave。比较P01、P02与Ave的大小,以Ave介于P01和P02之间代表信息“1”,其他的情况代表信息“0”。将“1”、“0”序列排成一维序列S,根据二维水印的大小转换为二维水印S'进而对S'进行解密,便可以恢复出水印图像。

4 实验与结果分析

选取512×512大小的灰度lena图像为原始宿主图像,128×128大小的二值图像为可见水印图像,64×64大小的二值图像为不可见水印图像。

4. 1 可见水印实验结果

实验结果如图2所示。

将可见水印嵌在宿主图像的右下角,得到下图的嵌入水印的lena图像。分别绘制嵌入前和嵌入后的灰度直方图便于做出对比,如图3所示。

可以看出,直方图分布变化不大,且更加平滑集中,说明水印和原图的统计特性较一致,攻击者若想破坏或移走可见水印,又不损坏原图的使用质量是很困难的。

4. 2 不可见水印实验结果

分别用原始密钥μ = 3. 99,S0= 0. 1,T = 0. 5对水印图像进行logistic加密。不可见水印嵌入时,嵌入强度α越大,抗噪声能力越强,但不可感知性就越差。嵌入提取的仿真实验结果如图4所示。

为验证算法的鲁棒性和可靠性,对嵌入水印后的图像进行攻击实验[10]。如JPEG压缩、噪声干扰、滤波、剪切等。在各种攻击后提取出来的水印图像如图5所示。

如图5所示,该算法在攻击试验下仍能够恢复出水印。在性能上,算法面对JPEG压缩和均值滤波下的鲁棒性较好,但是在高斯噪声和椒盐噪声的干扰下恢复的效果较差。

5 结束语

基于块的离散余弦变换 篇7

为了达到此目标, 该文在频率域变换时使用了轻量、高速的加密算法。常对多媒体内容进行两种变换: 离散余弦变换 ( DCT) [4,5]和小波变换[6], 加密算法可应用在量化过程操作之后。这样, 首先完成变换操作, 然后将变换系数量化, 最终完成加密操作[7]。另一种方法是在熵编码部分进行加密。为了系统安全, 最常用的编码方法是使用哈夫曼编码对量化的DCT系数进行编码, 利用密钥更改哈夫曼编码的位[8]。部分加密一般用于增加加密速度, 减少加密计算量。在这种方式中, 优先对更重要的数据进行加密。同时考虑到多媒体内容中广泛使用到压缩过程, 所以部分加密常用在压缩过程当中。例如, 在小波变换域中使用JPEG2000编码, 仅仅是主要的和主子带能够被加密[9]。文献[10, 11]分别介绍了一种不同的小波变换域中的部分加密方法, 其中主子带优先级更高, 所以对更多的位平面进行了加密。

针对多媒体应用, 基于部分加密的三项基本原则和对抗部分加密攻击, 提出了一种基于使用轻量级流算法的DCT余弦转换多媒体内容加密算法, 并将其与文献[12]中使用的A5 /1和W7流密码进行了比较。流密码由伪随机密钥序列构建而成, 然后通过“异或”运算将该序列与原始文本结合起来。 总体上, 当数据传输速率和误码率较高时流密码系统的性能较为合适[13]。实验结果验证了所提算法的有效性及安全方面的可靠性。

1相关工作

1. 1 DCT变换

离散余弦变换是一种常用在多媒体压缩中的变换。它是一种计算不太复杂的正交变换, 其反变换能够很容易计算出。对于相关性较高的图像数据而言, DCT提供了一种有效压实法同时具有可分性[14]。根据等式 ( 1) 所示的二维条件, DCT对N × N的像素块 ( X) 进行操作, 其输出为包含N × N像素块的块集合 ( Y) 。

式 ( 1) 中, Y是一组N × N系数, 表示变换域中的数据。针对每个N的可能值定义了一组波形 ( 通常, N = 8, 因此有64个波形) 。每个系数可视作为每个基础模式或波形的权重, 通过将相应权重得到的波形相加, 可将原始数据恢复。

1. 2著名的针对部分加密方案的攻击

通常使用三种类型的攻击: 密码攻击、替换攻击和基于质量替换的统计性攻击来破解部分加密结构[15]。

密码攻击方法是用攻击来破解密码, 就与暴力破解, 线性攻击和差分攻击类似。

替换攻击通过尝试将被加密数据替换为未加密数据或其他数据从而恢复原始图像, 从而破解多媒体加密算法。

假设原始多媒体数据为P, 其包含两个部分X和Y。其中, X被加密为Z, 而Y是未加密数据。因此, 密文C如下。

式 (2) 中, E () 是加密算法, K是算法密钥。替换攻击的意思是根据仅已知的Z和Y, 生成新的密码文本C', 如下定义。

式 ( 3) 中, G ( Z, Y) 是借助Z或Y获得新X的方法, 称其为X。

根据上面的讨论, 替换攻击可以分成两种类型, 直接替换和基于相关性的替换。

( 1) 直接替换是指将一些被加密数据替换成其他数据, 从而在仅知道加密媒体内容的情况下重建普通媒体内容, 这种情况下, X'= G ( Z) , 其中, 不包含未加密参数Y。

( 2) 基于相关性的替换与直接替换相似, 区别在于前者将一些被加密数据替换为未加密数据。这种情况下, X'= G ( Y) , 其中需要通过未加密参数Y生成X'。

基于质量改进的统计模型是一种降低被加密图像质量的方法, 可以通过统计模型在仅知道加密图像的情况下得到图像的感性认识。在这种攻击中, 攻击者研究某个特殊元素的概率或在不知道算法密钥的条件下预测明文和密文之间的关系。换句话说, 大体上该方法就是为暴力破解减小搜索空间。 原始图像和被加密图像之间较小的关系或没有关系表明了加密算法对统计攻击的抵抗。

1. 3设计部分加密的三个基本原则

原则1: 为了对抗部分加密结构中已知的明文攻击, 必须在设计方案中使用一种高度安全的算法。

原则2: 为了对抗纯文本密码攻击和基于相关性的攻击, 在部分加密结构的设计中, 加密参数应当独立于未加密参数。如果加密参数可被未加密参数替换, 通过纯文本攻击就可以得到纯文本, 因此, 应当精确地选择加密参数。

原则3: 为了提高密钥的灵敏度且对抗密码攻击, 包括直接替换和统计性攻击, 在部分加密的设计中, 需要对高敏感度的参数进行加密。

2流加密算法提出

如前面所说, 流加密算法为实时应用所青睐, 为了提高安全性, 其密钥的生成与AES块算法中密钥的生成方法相似。该算法中, 将明文划分成不同部分, 应用流加密算法对每个部分进行加密。每个部分中, 加密算法使用一个独立的密钥, 该加密机制中, 密钥由块密码 ( 例如, AES) 保护。BE ( m, K) 针对信息m使用密码K的块密码加密算法, SE ( P, keyi) 表示针对信息P使用密码Keyi的流密码加密算法。该算法首先将每个部分的密码生成为Keyi= BE ( m, K) , 然后对于明文P1, P2, …, Pt, 密文将以C1, C2, …, Ct的形式呈现, 每个部分的密文形式为Ci= SE ( Keyi, M1) 。

令F为如下函数:

式 ( 4) 中, Keyi为128位密码, 对于32位ki, Keyi= k1k2k3k4, x是32位字符串,  是按位异或运算, + 和 × 是232模加运算和模乘运算。为了对原始文本的每32位进行加密, 该算法的步骤如下。

步骤1: 通过块算法AES生成128位的密码序列, 所以对于32位的ki, Keyi= k1k2k3k4。

值得注意的是, 这个128位的密码会由AES算法更新, 用它们加密原始文本的每32位。

步骤2: 通过式 ( 4) 提出的函数, Ai值如下获得。

式 ( 5) 中, 式 ( 4) 中的X被C1 -1 P1 -1替代, P1 -1和C1 -1分别等价于32位的之前的明文和密文, 此外, 如上所述,  是按位异或运算。

步骤3: 再次由式 ( 4) 的函数获得Bi值。

在该步骤中, 式 ( 4) 中的X被Ai P1 -2替换, P1 -2等于前面两种情况下的32位原始文本, 同样, Ai可由步骤2中式 ( 5) 得到。

步骤4: 第三次, 由式 ( 4) , 得到。

在式 ( 7) 中, 式 ( 4) 中的X值等价于Bi C1 -2, C1 -2等价于前面两种情况下的32位密文, Bi从步骤3中的式 ( 6) 得到。

步骤5: 在这一步中, 根据下面的等式, 获得32位密文。

式 ( 8) 中Pi值等价于32位明文, Di值是从步骤4中得到的。

所有的步骤2 ~ 5可以总结如下:

在步骤2 ~ 4中, C0, C-1, p0和p-1可以视作等价于k1- k4。

解密过程与加密过程类似, 仅仅是将式 ( 8) 中Pi和Ci的位置进行调换, 如下:

需要说明的是, 解密过程中的Di值是使用与加密过程相同的明文和密文计算得到的。

3 DCT变换加密方案提出

实际上在量化之后大约75% 的AC系数都等于零, 因此原始系数 ( 低频率的系数) 的非零概率更大, 仅对25% 的AC原始系数进行了加密。此外, 考虑到使用了流密码, 密码序列与原始文本进行逻辑异或运算, 因此任何系数可由密码序列长度的多位密码加密。为此, 考虑安全性和性能速度, 在不同情况下选择出两种优化情况, 选择时考虑了一些重要参数, 包括:

(1) 获得可接受直方图和相关性的统计图表。

(2) 使用最小位数的密码进行加密。

( 3) 获得加密图像和解密图像的可接受的信噪比。

( 4) 考虑1. 3节提到的原则, 同时抵抗1. 2节所述的攻击。

( 5) 针对DCT变换系数的一些基本要素使用更多位数的密码, 因为这些系数的值比其余系数更大。

3. 1加密方案的第一种模式

在这种情况中, DC系数有7位密码, AC系数的前四个中每个有5位密码, 接下来11位系数有4位密码且逻辑上变为异或运算, 结果如图1所示, 被加密图像分别有很高的感知安全性和视觉安全性。

3. 2加密方案的第二种模式

在这种情况中, DC系数有7位密码, AC系数的前四个中每个有6位密码, 接下来11位系数有5位密码且逻辑上变为异或运算。结果如图2所示, 被加密图像有很高的感知安全性和视觉安全性。

4算法评估

4. 1峰值信噪比分析

PSNR表示图像的峰值信噪比, 由式 ( 11) 给出。

式 ( 11) 中, MSE是均方根误差, 由式 ( 12) 表示。

式 ( 12) 中, P ( x, y) 和C ( x, y) 分别表示原始图像的灰度和被加密图像在X行Y列的灰度, 它们都有H × W个像素点, 灰度为L。

被加密图像的PSNR低值表示无加密密钥情况下将加密图像恢复成原始图像的差异。表1给出了不同模式下三种算法的结果, 表2给出了针对不同加密图像的结果。值得注意的是, 所采用的图像来自于USC-SIPI图像数据库, 网址http: / /sipi. usc. edu / database。

从表1可以看出, 运用所提出的算法时加密图像的PNSR值与运用A5 /1和W7加密算法类似, 根据表1和表2, DC系数加密模式下加密图像的PSNR大于其他3种情况, 表明该模式抵抗密码攻击的能力较其他几种模式更弱。

此外, 提出的加密方案中两种模式下加密图像的PSNR很接近于无变换情况下的PSNR值, 表明提出的两种模式中对AC和DC系数进行加密适用于多媒体内容加密。

4. 2针对部分加密攻击的安全性

4. 2. 1抵抗替换攻击的安全性

基于相关性的替换攻击, 使用编码和解码参数发掘编码参数, 使得编码图像可理解, 根据原则2, 如果编码和解码参数相关性较小, 就可以证实提出的方案安全性较高。因此, 在加密DC系数的方案中实行直接替换攻击, 对DC系数为零的位重设编码位, 然后实行基于相关性的替换攻击, 且用第一个AC系数取代DC编码系数, 就可以得到如图3所示的一些结果。正如观察到的, 加密DC系数方案针对替换攻击的安全性较弱。但是针对提出的加密DC系数和AC系数的两种模式而言, 因为编码系数和加密系数几乎没有相关性 ( 相关性等于零) , 替换攻击不再有效 ( 根据原则2和原则4) 。图4中, 可以看到直接替换攻击的结果以及针对提出的DC系数和AC系数加密的两种模式实行基于相关性替换攻击的结果。根据这张图, 替换攻击不再有效。此外, 因为位平面是在无变换的情况下进行编码的, 替换攻击在这种情况下不再有效。

4. 2. 2抵抗统计性攻击的安全性

使用统计性攻击可预测原始图像和加密图像两者之间的关系, 同样为显示两者的数量关系还绘制了直方图和两者的相关性图表。此外, 根据原则3, 如果对高敏感度的主要参数编码, 出现统计性攻击的概率将会降低。关于文中的DC和AC系数加密的两种模式, 因为已对敏感参数进行了编码 ( DCT变换中的敏感系数和重要系数) , 所以统计性攻击无效。下面绘制的直方图和相关性图符合该观点。

为防止信息泄露和侵略性攻击, 必须确保原始图像和加密图像没有统计的相似性。直方图分析表示了图像中像素的分布, 其使用像素亮度的每个量绘制观测值。图5显示了原始图像和加密图像的直方图。可以看到, 加密DC和AC系数的两种模式的直方图和原始图像的直方图没有统计相关性。因此, 根据该图可知统计性攻击无效, 且可知仅第二种模式的直方图比第一种模式平滑。此外, 考虑无变换模式下的直方图均匀分布, 可总结提出的算法针对统计性攻击是安全的。

4. 3性能评估

对于实时处理系统, 除了安全性问题, 加密算法的速度同样是很重要的, 为阐述实现密码系统的效率, 必须针对已研究的密码系统进行清晰的比较。 实验在配置为Intel酷睿双核2. 10处理器、2 G内存、Windows7操作系统的计算机上进行, 针对256 × 256的灰度图像, 使用MATLAB7. 0实现所提加密算法的编码, 并在有DCT变换的不同模式下和无变换情况下进行了加密分析, 表3所示为不同加密模式下运用三种不同的算法加密的耗时情况比较, 表4所示为所提算法在不同的模式下加密不同图像得到的耗时情况。

从表3可以看出, 提出的流密码算法比A5 /1和W7算法更快, 同时在无变换模式下提出的加密算法的耗时与其他两种算法大不相同, 因此, 提出的算法比A5 /1和W7算法更适用于实时多媒体应用系统。

综合表3和表4可知, 无变换加密模式下的算法执行时间明显多于DC系数加密模式下、DC和AC系数加密的两种模式下的算法执行时间。提出的两种模式下取得的平均时间仅为1. 6s, 如果使用配置更好的机器, 可以得到更短的耗时, 由此可见, 提出的两种模式可应用于实时多媒体应用系统。

5结束语

如前文所述, 多媒体数据和普通数据的区别同步化以及前者数据的体积较大。如果想要使用密码系统来保证这种信息的安全, 就需要额外的计算量。 所以, 需要权衡安全性和同步的必要性。为了实现这些目的, 提出了一种简单、轻量的流密码算法, 同时基于3种基本原则和对抗部分密码攻击 ( 如密码攻击, 替换攻击和统计性攻击) , 借助流密码算法提出了两种选择DCT变换系数的加密方法的设计方案。通过功能性分析可知, 提出算法的安全性与A5 / 1和W7算法相似, 而前者的执行时间比后两者都快。 此外, 通过安全性分析可知, 提出的基于DCT变换系数的部分加密算法, 其安全性可与无变换加密模式相当, 而且其实现速度比后者快几倍。总体上, 如果使用所提出的基于DCT变化系数的部分加密算法, 可以获得足够的安全等级和合适的执行速度, 可满足于要求快速计算的实时多媒体应用。

未来会将所提算法应用到其他数据集上, 进行大量的实验, 在提高加密算法安全性的同时, 进一步降低算法的耗时, 以更好地适用于实时加密系统。

摘要:针对实时安全系统中多媒体内容加密时由于数据量较大而导致计算开销非常大的问题, 为了综合考虑安全性及实时性, 提出了基于使用轻量级流算法的DCT余弦转换多媒体内容加密算法。首先提出了一种轻量、快速的加密算法, 通过将明文划分成不同部分并且使用流加密算法对信息的每个部分分别进行加密;然后, 基于设计部分加密方案的三项基本原则和对抗部分加密攻击, 提出了两种DCT变换系数的部分加密方案;最后, 通过峰值信噪比对部分加密攻击的安全性和性能的分析评估了所提算法的有效性及可靠性。分析结果表明, 相比A5/1和W7两种较为先进的流密码算法及另外两种加密模式 (DC系数加密和无变换加密) , 提出的流加密算法和两种DCT加密方案更加适用于要求高速计算和足够安全的多媒体实时安全系统。

上一篇:英语长难句下一篇:实用分类