一种二维码水印加密并行化快速嵌入及提取方法

文档序号:10726327阅读:374来源:国知局
一种二维码水印加密并行化快速嵌入及提取方法
【专利摘要】本发明公开了一种二维码水印加密并行化快速嵌入以及提取方法,先对二维码的灰度图像进行二值化处理,两层交界处的行与行间像素值寻找嵌入行;在嵌入行中寻找深浅模块交界处为嵌入段,分别找到嵌入段的水印起始位和水印结束位,顺序提取水印信息的2bit大小的信息,按设定编码规则,改变水印起始位到水印结束位的每个像素RGB分量的最低位完成水印嵌入;水印的提取方法与嵌入方法类似,对二维码图像进行二值化预处理,找到水印嵌入位置,提取水印信息。该方法嵌入水印的二维码图像不仅具有较好的防伪验证功能而且适合以电子形式保存,并行化处理方法时间花销较传统串行算法节省1/3左右。
【专利说明】
一种二维码水印加密并行化快速嵌入及提取方法
技术领域
[0001] 本发明涉及一种水印嵌入及文件提取方法,尤其是涉及一种二维码水印加密并行 化快速嵌入及提取方法,属于数字水印技术领域。
【背景技术】
[0002] 传统的基于二维码的数字水印技术,一般是通过微调二维码的图形结构实现,往 往具有隐蔽性较差,不适合以电子形式保存的缺点。当前QR码是最常用的二维码之一,广泛 应用于电子票证、移动支付等领域,已经成为防伪保密技术的研究热点。
[0003] LSB(Least Singificant Bit)算法,意思是最不重要比特位,其原理是根据数字 图像可分为8个为平面图,上层的位平面反应的图像特征多,下层位平面反应的图像特征 少,改变最低位平面对原有图像的影响非常小,人眼往往不能觉察到细小的变化。在二维码 图像中,我们通过修改最低的几位,就能达到隐藏大量信息的目的。
[0004] 另一方面,当前多核CPU已经普遍应用在手机、个人PC机等日常生活中,如何充分 挖掘利用多核CPU的性能提高水印嵌入和提取的速度也具有重要意义。

【发明内容】

[0005] 本发明的目的是提供了一种二维码水印加密并行化快速嵌入及提取方法,使其适 合于并行化处理,进而通过充分挖掘多核CHJ的计算性能,提高算法的处理速度。
[0006] 本发明技术方案如下:一种二维码水印加密并行化快速嵌入方法,包括以下步骤: [0007] 1)遍历二维码图像的每两行像素,如果第一行像素的像素值不同于第二行像素的 像素值则第一行为可能嵌入水印行,进入步骤2);
[0008] 2)在可能嵌入水印行排除位置探测区的像素,并从第一像素点开始进行起始位判 断,所述起始位判断为:如果该像素点为黑色且满足条件a或者该像素点为黑色且满足条件 b,则纪录此像素坐标为水印起始位并进入步骤3),否则判断下一像素点,如果该可能嵌入 水印行不存在水印起始位则返回步骤1);
[0009] 3)从水印起始位的像素坐标的后一位开始进行结束位判断,所述结束位判断为: 如果对应像素点是黑色且满足条件c或者对应像素点是黑色且满足条件d,则纪录此像素坐 标为水印结束位并进入步骤4),否则判断下一像素点;
[0010] 4)顺序提取水印信息的固定长度信息,按设定编码规则,改变水印起始位到水印 结束位的每个像素RGB分量的最低位,并返回步骤2)从水印结束位对应像素点开始进行起 始位判断,直至所有水印信息嵌入完毕;
[0011]所述条件a:该像素点为黑色且左边和左下角像素点为黑色,下边像素点为白色; 条件b:该像素点为黑色且左边像素点为白色,下边像素点为白色;条件c:该像素点为黑色 且右边像素点和右下角像素点为黑色,下边像素点为白色;条件d:该像素点为黑色且右边 像素点为白色,下边像素点为白色。
[0012]进一步的,所述提取水印信息的固定长度信息是提取2bit大小的信息。
[0013] 优选的,所述设定编码规则为固定长度信息为00时,RGB分量的最低位为000;固定 长度信息为10时,RGB分量的最低位为100;固定长度信息为01时,RGB分量的最低位为001; 固定长度信息为11时,RGB分量的最低位为010。
[0014] -种二维码水印加密并行化快速提取方法,包括以下步骤:
[0015] 1)将嵌入水印的二维码图像分离成RGB分量图,遍历图像,读取连续的三行像素, 如果三行像素满足第二行像素的像素值和第三行像素的像素值相同,且第一行像素的像素 值和第二行像素、第三行像素的像素值都不同,则第一行为可能包含水印行,进入步骤2), 否则继续读取下面连续的三行像素查找可能包含水印行;
[0016] 2)在可能包含水印行,排除位置探测区域,并从第一像素点开始进行起始位判断, 所述起始位判断为:如果该像素点为黑色且满足条件a或者该像素点为黑色且满足条件b或 者该像素点为非黑非白且满足条件a或者该像素点为非黑非白且满足条件b,则纪录此像素 坐标为水印起始位并进入步骤3),否则判断下一像素点;
[0017] 3)从水印起始位的像素坐标的后一位开始进行结束位判断,所述结束位判断为: 如果该像素点为黑色且满足条件c或者该像素点为黑色且满足条件d或者该像素点为非黑 非白且满足条件c或者该像素点为非黑非白且满足条件d,则纪录此像素坐标为水印结束位 并进入步骤4),否则判断下一像素点;
[0018] 4)提取从水印起始位至水印结束位之间的每个像素的RGB分量的最后一位,按设 定编码规则,复原水印?目息;
[0019] 所述条件a:该像素点左边和左下角像素点为黑色,下边像素点为白色;条件b:该 像素点左边像素点为白色,下边像素点为白色;条件c:该像素点右边像素点和右下角像素 点为黑色,下边像素点为白色;条件d:该像素点右边像素点为白色,下边像素点为白色。
[0020] 优选的,所述设定编码规则为RGB分量的最低位为000时,对应水印的2bit大小信 息为00;RGB分量的最低位为100时,对应水印的2bit大小信息为10;RGB分量的最低位为001 时,对应水印的2bit大小信息为01;RGB分量的最低位为010时,对应水印的2bit大小信息为 11〇
[0021 ]进一步的,二维码水印加密并行化快速嵌入方法以及二维码水印加密并行化快速 提取方法采用Parallel/Loop或者Parallel Loop/Loop并行处理。
[0022] 本发明所提供的技术方案的优点在于:
[0023] a)该方法嵌入水印的二维码图像不仅具有较好的防伪验证功能而且适合以电子 形式保存。
[0024] b)该方法完全适合并行化处理,采用并行化处理方法进行嵌入水印或提取水印, 其时间花销与传统串行算法相比节省1/3左右。
[0025] c)能够广泛应用于电子票证、火车票验证、微信二维码以及移动支付等领域,对Q R码的信息容量没有要求。
【附图说明】
[0026]图1为同层模块示意图;
[0027]图2为水印嵌入/提取段示意图;
[0028]图3为符合条件a的像素点位置示意图;
[0029] 图4为符合条件b的像素点位置示意图;
[0030] 图5为符合条件c的像素点位置示意图;
[0031 ]图6为符合条件d的像素点位置示意图;
[0032] 图7并行方式Parallel/Loop示意图;
[0033] 图8并行方式Parallel Loop/Loop不意图;
[0034]图9为并行处理数据结构示意图;
[0035]图10为两种不同的并行方式连续处理N张图片所用时间折线图。
【具体实施方式】
[0036]下面结合实施例对本发明作进一步说明,但不作为对本发明的限定。
[0037]二维码水印加密并行化快速嵌入方法是这样的:首先读入一张QR二维码的图片, QR二维码的图像是由N*N个深色或者浅色的模块组成。在嵌入水印之前,先对二维码的灰度 图像进行二值化处理,处理过程是遍历每一个像素点,设定一个阈值,对于小于阈值的像 素,将其RGB分量都置0,也就是变成黑色,对于大于阈值的像素,将其RGB分量都置255,也就 是变成黑色。这样,原来的深色模块就为黑色,浅色模块就为白色。最后用RGB分量图构造成 一个三维数组图像。我们选择其中的黑色模块进行LSB修改,这样能减少人眼对图像发生的 变化产生明显的差异感。
[0038] 在二维码图像上按行排列时若连续若干行中,行与行间像素值相同,则这若干行 模块处于同一层,如图1,否则行与行处于不同层。上一层的下边界即为两层交界处,也就是 嵌入行。从深色、浅色模块组成上,深色模块处于上一层,浅色模块处于下一层,深浅模块交 界处是指深色模块下边界。两层交界处中的深浅模块交界处是嵌入段,如图2。在非位置探 测区域寻找具体嵌入位置包含两条规则:一是嵌入行处于两层交界处;二是嵌入行中深浅 模块交界处是为嵌入段。
[0039] 找到嵌入位置后嵌入水印,水印采用一组伪随机序列构成,在水印信息嵌入的过 程中,每次从序列中提取2bit大小的信息,然后根据表1编码方式来改变对应像素最低位的 值。其编码规则如下表所示。
[0041] 根据上述描述,二维码水印加密并行化快速嵌入方法,包括以下步骤:
[0042] 1)遍历二维码图像的每两行像素,如果第一行像素的像素值不同于第二行像素的 像素值则第一行为可能嵌入水印行,进入步骤2);
[0043] 2)在可能嵌入水印行排除位置探测区的像素,并从第一像素点开始进行起始位判 断,起始位判断为:如果该像素点为黑色且满足条件a或者该像素点为黑色且满足条件b,则 纪录此像素坐标为水印起始位并进入步骤3),否则判断下一像素点,如果该可能嵌入水印 行不存在水印起始位则返回步骤1)继续寻找其他可能嵌入水印行;
[0044] 条件a:如图3,该像素点左边和左下角像素点为黑色,下边像素点为白色;条件b: 如图4,该像素点左边像素点为白色,下边像素点为白色;
[0045] 3)从水印起始位的像素坐标的后一位开始进行结束位判断,结束位判断为:如果 对应像素点为黑色且满足条件c或者对应像素点是黑色且满足条件d,则纪录此像素坐标为 水印结束位并进入步骤4),否则判断下一像素点;
[0046] 条件c:如图5,该像素点右边像素点和右下角像素点为黑色,下边像素点为白色; 条件d:如图6,该像素点右边像素点为白色,下边像素点为白色;
[0047] 4)顺序提取水印信息的2bit大小的信息,按前述设定编码规则,改变水印起始位 到水印结束位的每个像素RGB分量的最低位,并返回步骤2)从水印结束位对应像素点开始 进行起始位判断,直至所有水印信息嵌入完毕。
[0048] 二维码水印加密并行化快速提取方法,包括以下步骤:
[0049] 1)将嵌入水印的二维码图像分离成RGB分量图,遍历图像,读取连续的三行像素, 如果三行像素满足第二行像素的像素值和第三行像素的像素值相同,且第一行像素的像素 值和第二行像素、第三行像素的像素值都不同,则第一行为可能包含水印行,进入步骤2), 否则继续读取下面连续的三行像素查找可能包含水印行;
[0050] 2)在可能包含水印行,排除位置探测区域,并从第一像素点开始进行起始位判断, 起始位判断为:如果该像素点为黑色且满足条件a或者该像素点为黑色且满足条件b或者 该像素点为非黑非白且满足条件a或者该像素点为非黑非白且满足条件b,则纪录此像素坐 标为水印起始位并进入步骤3),否则判断该可能包含水印行的下一像素点直到找到水印起 始位;
[0051] 条件a:如图3,该像素点左边和左下角像素点为黑色,下边像素点为白色;条件b: 如图4,该像素点左边像素点为白色,下边像素点为白色;
[0052] 3)从水印起始位的像素坐标的后一位开始进行结束位判断,结束位判断为:如果 该像素点为黑色且满足条件c或者该像素点为黑色且满足条件d或者该像素点为非黑非白 且满足条件c或者该像素点为非黑非白且满足条件d,则纪录此像素坐标为水印结束位并进 入步骤4),否则判断下一像素点直至找到水印结束位;
[0053]条件c:如图5,该像素点右边像素点和右下角像素点为黑色,下边像素点为白色; 条件d:如图6,该像素点右边像素点为白色,下边像素点为白色;
[0054] 4)提取从水印起始位至水印结束位之间的每个像素的RGB分量的最后一位,嵌入 水印时,每一段的水印都是相同的,但由于会受到噪声的影响,在提取的时候,只保留出现 频率最高的那个数据,按设定编码规则,复原水印信息。
[0055]上述二维码水印加密并行化快速嵌入以及提取方法的并行设计主要采用以下两 种方式
[0056] DParallel/Loop:如图7,将待处理数据分成四块各自分配给四个线程去完成寻 找提取段任务(S),然后以模块宽度为单元统计出总单元数η并均分给四个线程(即所谓负 载均衡)去完成提取水印任务(Ε)。
[0057] 2)Parallel Loop/Loop:如图8中数据结构示意图,s表示提取段起点列下标,e表 示提取段终止点列下标,η表示各提取段单元数。首先刷新单元数,假设共有k各提取段,则: Π2 = η2+ηι,Π3 = η3+η2,…,ni〇 = ni()+n9,nk = nk+n(k-1)。最后一个嵌入单元数即为嵌入单元数的 总和,如图9因为Π3= =ηι〇/4、η5= =2*(ηι〇/4)、Π9= =3*(m〇/4),所以有图中所示的将数据 分块均分给图8所示四个线程的负载均衡处理。(以4核CPU为例)。
【主权项】
1. 一种二维码水印加密并行化快速嵌入方法,其特征在于,包括以下步骤: 1) 遍历二维码图像的每两行像素,如果第一行像素的像素值不同于第二行像素的像素 值则第一行为可能嵌入水印行,进入步骤2); 2) 在可能嵌入水印行排除位置探测区的像素,并从第一像素点开始进行起始位判断, 所述起始位判断为:如果该像素点为黑色且满足条件a或者该像素点为黑色且满足条件b, 则纪录此像素坐标为水印起始位并进入步骤3),否则判断下一像素点,如果该可能嵌入水 印行不存在水印起始位则返回步骤1); 3) 从水印起始位的像素坐标的后一位开始进行结束位判断,所述结束位判断为:如果 对应像素点是黑色且满足条件c或者对应像素点是黑色且满足条件d,则纪录此像素坐标为 水印结束位并进入步骤4),否则判断下一像素点; 4) 顺序提取水印信息的固定长度信息,按设定编码规则,改变水印起始位到水印结束 位的每个像素 RGB分量的最低位,并返回步骤2)从水印结束位对应像素点开始进行起始位 判断,直至所有水印信息嵌入完毕; 所述条件a:该像素点左边和左下角像素点为黑色,下边像素点为白色;条件b:该像素 点左边像素点为白色,下边像素点为白色;条件c:该像素点右边像素点和右下角像素点为 黑色,下边像素点为白色;条件d:该像素点右边像素点为白色,下边像素点为白色。2. 根据权利要求1所述的二维码水印加密并行化快速嵌入方法,其特征在于,所述提取 水印信息的固定长度信息是提取2b i t大小的信息。3. 根据权利要求2所述的二维码水印加密并行化快速嵌入方法,其特征在于,所述设定 编码规则为固定长度信息为〇〇时,RGB分量的最低位为000;固定长度信息为10时,RGB分量 的最低位为100;固定长度信息为01时,RGB分量的最低位为001;固定长度信息为11时,RGB 分量的最低位为010。4. 一种二维码水印加密并行化快速提取方法,其特征在于,包括以下步骤: 1) 将嵌入水印的二维码图像分离成RGB分量图,遍历图像,读取连续的三行像素,如果 三行像素满足第二行像素的像素值和第三行像素的像素值相同,且第一行像素的像素值和 第二行像素、第三行像素的像素值都不同,则第一行为可能包含水印行,进入步骤2),否则 继续读取下面连续的三行像素查找可能包含水印行; 2) 在可能包含水印行,排除位置探测区域,并从第一像素点开始进行起始位判断,所述 起始位判断为:如果该像素点为黑色且满足条件a或者该像素点为黑色且满足条件b或者该 像素点为非黑非白且满足条件a或者该像素点为非黑非白且满足条件b,则纪录此像素坐标 为水印起始位并进入步骤3),否则判断下一像素点; 3) 从水印起始位的像素坐标的后一位开始进行结束位判断,所述结束位判断为:如果 该像素点为黑色且满足条件c或者该像素点为黑色且满足条件d或者该像素点为非黑非白 且满足条件c或者该像素点为非黑非白且满足条件d,则纪录此像素坐标为水印结束位并进 入步骤4),否则判断下一像素点; 4) 提取从水印起始位至水印结束位之间的每个像素的RGB分量的最后一位,按设定编 码规则,复原水印信息; 所述条件a:该像素点左边和左下角像素点为黑色,下边像素点为白色;条件b:该像素 点左边像素点为白色,下边像素点为白色;条件c:该像素点右边像素点和右下角像素点为 黑色,下边像素点为白色;条件d:该像素点右边像素点为白色,下边像素点为白色。5. 根据权利要求4所述的二维码水印加密并行化快速提取方法,其特征在于,所述设定 编码规则为RGB分量的最低位为000时,对应水印的2bit大小信息为00;RGB分量的最低位为 100时,对应水印的2bit大小信息为10;RGB分量的最低位为001时,对应水印的2bit大小信 息为01; RGB分量的最低位为010时,对应水印的2b i t大小信息为11。6. 根据权利要求1所述的二维码水印加密并行化快速嵌入方法,其特征在于,该方法采 用Parallel/Loop或者Parallel Loop/Loop并行处理。7. 根据权利要求4所述的二维码水印加密并行化快速提取方法,其特征在于,该方法采 用Parallel/Loop或者Parallel Loop/Loop并行处理。
【文档编号】G06T1/00GK106097239SQ201610415911
【公开日】2016年11月9日
【申请日】2016年6月15日 公开号201610415911.X, CN 106097239 A, CN 106097239A, CN 201610415911, CN-A-106097239, CN106097239 A, CN106097239A, CN201610415911, CN201610415911.X
【发明人】刘永俊, 秦立浩, 钱振江, 谢从华, 张明新, 王 义
【申请人】常熟理工学院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1