APP下载

利用粒子群和蛙跳混合优化的DCT 盲水印算法

2021-01-22唐晗陈留洋

科学技术创新 2021年3期

唐晗 陈留洋

(1、吉首大学信息科学与工程学院,湖南 吉首416000 2、洛阳师范学院国土与旅游学院,河南 洛阳471934)

1 预备知识

1.1 粒子群简介

粒子群算法是把群体中的粒子都看成是随机的解,然后多次重复计算找出最优解。由下面的算法公式,可以来更新此时的飞行速度和位置:

上式中i=1,2,…,N;N 是这个群体中粒子的总和;vi是粒子速度;r 的取值范围是(0,1);xi表示粒子此刻的位置;均为学习因子。

1.2 蛙跳算法

蛙跳中适应度值(位置)的计算公式如下:

蛙跳步长更新:

位置更新:

Smax≥Si≥2Smax,上式rand()的取值范围是[0,1],k=1,2,…,n;Smax 表示最大步长。通过计算后得到的解要优于之前的解,那么就用计算后得到的解去代替最差的个体。并且全局最优解Pg可以通过式(3)和式(4)求得。

2 水印的嵌入和提取

2.1 水印预处理

为了实现提高水印信息安全性与鲁棒性的目的,进行Arnold 置乱操作。对于数字图像,Arnold 置乱操作的数字公式为:

以式(5)输出的结果作为再一次Arnold 置乱的初始值,图像经多次置乱后会变得“杂乱无序”。嵌入的信息就不容易被检测到,即使嵌入的水印被攻击者所得到,水印的实际内容也不可能被知道。

2.2 水印嵌入的步骤

设载体图像的规格为256×256,水印图像32×32,通过混合粒子群算法与蛙跳算法,在原载体图的DCT 变换系数中寻找最优值作为水印的嵌入位置,操作如下:

Step1 对原水印图像进行操作,见2.1;

Step2 读入原载体图像,把原载体图像分为1024 个小块(按规律编号:1~1024),每个小块为8×8,对小块进行DCT 变换,共得DCT 变换系数64×64 个。将小块的DCT 变换得到的AC系数的位置编号分别按Zigzag 顺序的2~64 的整数来表示。……

登录APP查看全文