ODBTC

    科技2022-07-12  116

    1,水印的嵌入算法步骤,以及涉及的数值计算原理

    步骤1:对水印信息计算其位平面,通过处理之后,一个水印图像可以转换为8个位平面,即程序中的步骤为:

    步骤2:对水印图像进行随机置乱,

    这个步骤的功能,就是增加算法的抗干扰能力。

    步骤3:(注意,按你之前的要求,即你编码之后获得了图像的位平面,所以我们将水印的水平面信息进行嵌入)

    嵌入的计算公式如下所示:

    注意,这里我们嵌入的思路是在位平面的DCT变换域上进行,即在嵌入之后,先对位平面图像进行DCT变换域处理,嵌入之后,再做逆DCT变换,获得水印嵌入之后的效果。

    为了有效的计算DCT,许多算法被提出,一般DCT快速算法分为两种:间接算法和直接算法,两种算法都是集中在蝶型结构上,且目的都是为了减少乘法和加法的计算量。间接算法是利用DCT和DFT,DHT等正交变换之间的关系,用DFT或DHT快速算法来计算DCT。间接算法过程简单,主要工作是处理算法间的转换,因此往往需要加一些额外的操作步骤,由于将其他变换的快速算法应用在DCT中总有其自身的局限性,所以现在算法上已很少有人采用间接算法来计算DCT。直接算法包括DCT变换矩阵分解,递归算法两种技术,不同之处在于矩阵分解是利用稀疏矩阵分解法将变换矩阵分解,而递归算法是由较低阶DCT矩阵递归产生较高阶DCT矩阵,可以说递归算法是分解算法的逆算法,但递归算法较矩阵分解算法有良好的数值稳定性。

    四类DCT算法的引入是由于对DFT的分解和四种DWT的存在,因为DCT算法和DFT、DWT算法可以进行互相转换,因此借由DFT、DWT算法的不同形式,引入四类DCT算法。第I类DCT算法的定义是针对N-1阶,它是在第II类DCT算法提出后不久由王中德教授提出的,同样的也被应用于数字信号处理中,但是相比较第II类DCT算法,它所需要的计算量更少。第I类和第II类DCT算法非常相象,只是针对不同的输入情况。第III类DCT算法和第II类DCT算法的不同之处就是将k ,n互换,因此DCT-III可以看作是DCT-II的逆变换(再乘一个系数的话),这种变形通常被简单的称为逆离散余弦变换。一般的,第III类DCT算法的计算也都是考虑转换成第II类DCT的计算问题,从第II类快速DCT算法可以很直接地得到第III类DCT算法,但是对于多维的第III类DCT算法,由于其转化为第II类DCT需要大量预加法并且只有简单的计算结构,所以一般多维的第III类DCT算法利用多项式变换将其分解为一维变换,再利用对称性来减少所需的计算量。第IV类DCT算法有很多的优点。它的变换矩阵和逆变换矩阵完全相同,而且它的归一化因子对所有的都是相同的,因此在实际处理中,可以采用同一程序进行计算,大大节省了存储空间,因此,虽然它的应用没有第II类那么广泛,但是在一些信号处理的算法中也出现了。由于很多文献都提到了第II类DCT的快速算法,因此第IV类DCT的快速算法都是在第II类DCT的基础上推出的。从上我们可以看出,四类DCT算法都是以第II类DCT为基础和根据,其他算法都可以由第二类DCT算法推导出,因此现在大多的研究都是针对第II类DCT的快速算法。

    2,水印的提取步骤,以及涉及的数值计算原理

    产生和嵌入水印相同的置乱序列,即程序中的

    然后做DCT变换,然后将变换后的图像和置乱序列做相关运算,即

    根据相关计算结果,判决是否是水印区域,即

    从而完成位平面的水印提取操作。

    然后我们介绍一下通过程序进行仿真实验的分析:

     

    然后对于算法进行噪声共计,测试系统的稳定性。

    做噪声攻击,获得如下的仿真结果:

     

           从噪声攻击来看,当噪声大小大于0db的时候,算法基本可以获得较为稳定的水印提取效果。

    第二,做旋转攻击,即对图像进行小角度的倾斜旋转,然后进行水印提取,仿真结果如下:

    这里,旋转角度从0到90度进行测试,通过仿真结果可知,当旋转角度大于36度的时候,水印提取质量快速下降。

    但在实际中,图像的倾斜角度一般都是10度以内的,所以该算法具备一定的抗旋转能量。

     

    最后对图像的压缩比进行攻击测试:

    分别进行压缩图像,压缩大小为12.5%,25%,50%,100%。获得如上的仿真结果,从仿真效果可知,算法对压缩攻击具有较强的抗干扰能力

    Processed: 0.009, SQL: 8