首页 专利交易 科技果 科技人才 科技服务 国际服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

一种基于自适应预测编码的加密图像可逆信息隐藏方法 

买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!

申请/专利权人:辽宁师范大学

摘要:本发明公开一种基于自适应预测编码的加密图像可逆信息隐藏方法,是基于不同特征计算纹理复杂度对图像块进行分类,针对不同类型块的像素相关性差距较大,对不同的块运用不同的压缩算法;利用自适应权重预测法,缩小原像素值和预测值之间的差距,提高压缩效率,以此增加嵌入容量。平滑块根据不同的预测误差,使用不同的像素级压缩方法,纹理块采用了优化自适应权重预测的块级压缩方法,给秘密信息的嵌入提供了足够的空间。本发明具有压缩效率高、嵌入容量大、完全可逆、安全性及不可见性好等优点。

主权项:1.一种基于自适应预测编码的加密图像可逆信息隐藏方法,依次按照如下步骤进行:步骤1.将图像按照纹理度划分为平滑块和纹理块;步骤2.对平滑块根据不同的预测误差进行像素差值压缩或像素位平面压缩;步骤3.对纹理块进行优化自适应权重预测的块级压缩;步骤4.分别对平滑快和纹理块进行信息嵌入,再将嵌入后的块还原形成载密块,最后将所有载密块组合形成载密图像;步骤5.使用拥有的密钥进行图像恢复或和信息提取;所述步骤1具体如下:步骤1.1将图像img_origin分为4*4的块;步骤1.2计算图像img_origin子块纹理度:步骤1.2.1依据公式1计算子块能量值: 其中g代表的是灰度共生矩阵,d,θ是两个灰度之间的距离和方向,k表示子块的大小;步骤1.2.2依据公式2计算子块的熵; 步骤1.2.3依据公式3计算子块对比度; 步骤1.2.4通过均方误差给所有子块的能量、熵和对比度三个特征值分配不同权重,并计算最终特征值J、H、D;步骤1.2.5对三个最终特征参数分配权值w1,w2,w3,计算纹理复杂度f,其中w1,w2,w3由全局优化算法确定;f=w1×J+w2×H+w3×D4步骤1.3用矩阵map_block存储每个块的分类信息,纹理块为1,平滑块为0;所述步骤2具体如下:步骤2.1确定坐标为{1,2,2,4,3,1,4,3}的像素为参考像素{p1,p2,p3,p4};步骤2.2通过每个预处理像素点与参考像素的欧几里得距离计算权重{w1,w2,w3,w4};步骤2.3根据公式5,计算每个像素值对应的预测值pr; 步骤2.4将每一个参考像素与周围相邻的三个预处理像素组成一个单元;步骤2.5在一个单元内,如公式6-7将预处理像素值p和对应位置的预测像素值pr相减,得到的差值的绝对值dif_a,设置标志位mark_s,如果三个dif_a都小于8,那么mark_s为1,否则为0;dif_ai,j=pi,j-pri,j|6 步骤2.6如果mark_s为1,则进行像素差值压缩法,如果mark_s为0,则进行像素位平面压缩法;所述像素差值压缩法按照如下步骤进行:步骤2.6.1.1根据单元内三个预处理像素的差值绝对值dif_a按照公式8计算对应的正负属性dif_t; 步骤2.6.1.2通过哈夫曼编码,经过优化,根据所有mark_s为1的单元的差值数量统计,按频次从高到低的顺序,依次用01-00011来代替,形成哈夫曼压缩替换表;步骤2.6.1.3创建一个24bit的空序列;步骤2.6.1.4序列的第一位表示平滑块中的压缩类型,像素差值压缩法填充为1;步骤2.6.1.5查找预处理像素差值dif_a与哈夫曼压缩替换表所对应的标签,将标签依次填充到序列第一位之后;步骤2.6.1.6序列的剩余部分为压缩后的可嵌入空间;步骤2.6.1.7预处理像素的正负属性dif_t当作辅助信息img_water_c进行存储;所述像素位平面压缩法按照如下步骤进行:步骤2.6.2.1将单元内四个像素ph用8位二进制表示,如公式9: 步骤2.6.2.2将四个像素从最高有效位MSB到最低有效位LSB进行对比,寻找相同的位数,用sim_num表示不同位数的数量;步骤2.6.2.3创建一个24bit的空序列;步骤2.6.2.4序列的第一位表示平滑块中的压缩类型,像素位平面压缩法填充为0;步骤2.6.2.5将sim_num用3位二进制数表示,填充到序列的第二位到第四位;步骤2.6.2.6将三个预处理像素的不相同位,如公式10,依次填充到序列的第四位之后;dif_ph={ph,t|t=sim_num,…,8}10步骤2.6.2.7序列的剩余部分为压缩后的可嵌入空间;步骤2.6.2.8将溢出的数据当作辅助信息img_water_w进行存储;步骤2.6.3在以坐标1,2为参考像素的单元中,24bit序列第一位存放的是块类型标记,平滑块标记为0,纹理块标记为1;步骤2.7将24bit的序列三等分,转化为十进制后,分配给单元中的三个预处理像素;步骤2.8最终将四个单元拼合后,组成可嵌入块;所述步骤3具体如下:步骤3.1画一条从上到下和一条从左到右的线;步骤3.2通过两条线将块划分为n个区域,计算每个区域中的均方差,再求和得到msen;步骤3.3将所有块的msen求和得到mse_all;步骤3.4重复步骤3.1-3.3,通过划定不同的两条线,可以得到多个不同的mse_all;步骤3.5从众多mse_all中选取最小值,并将对应的两条线line1,line2的坐标当作辅助信息img_water_l存储;步骤3.6用line1,line2将纹理块划分为多个区域;步骤3.7确定坐标为{1,2,2,4,3,1,4,3}的像素为参考像素{p1,p2,p3,p4};步骤3.8通过像素点与参考像素的欧几里得距离,计算权重{w1,w2,w3,w4};步骤3.9在同一个区域中,如果有多个参考像素,就增加对应参考像素的权重值,如果没有参考像素,就对权重不做改变,最后更新权重为{w1′,w2′,w3′,w4′};步骤3.10根据公式11,计算每个像素值对应的预测值pr′; 步骤3.11将预处理像素值和预测像素值做差,存储到矩阵block中,参考像素值不变,存储到对应位置,如公式12; 步骤3.12把矩阵block用8个位平面block_b表示,如公式13所示; 步骤3.13在最高有效位MSB的位平面中,从左至右,从上到下,填充索引信息;步骤3.13.1位置1,1表示块类型标记,纹理块标记为1;步骤3.13.2位置1,2,1,4,2,2表示嵌入层数,通过判断block_b的每一个位平面,除参考像素位置和索引信息位置外,是否都为0,用sim_layer表示都为0的位平面个数,即可嵌入层数;步骤3.13.3创建一个块可嵌层数替换表;步骤3.13.4根据块可嵌层数替换表,寻找sim_layer对应的标记,并填充至位置1,2,1,4,2,2;步骤3.13.5在可嵌入层数中,剩余空间为可嵌入空间;步骤3.14通过公式14,将像素值做差后的正负属性dif_t′当作辅助信息img_water_c存储起来; 步骤3.15当可嵌入层数为0时,将原位置1,1,1,2,1,4,2,2的数当作辅助信息img_water_w存储起来;步骤3.16将8个位平面转化为用十进制表示的可嵌入块;步骤3.17图像块间置乱;3.17.1令Z1=para_1,a=para_2,利用ICMIC映射如公式15生成随机序列Z,para_1和para_2作为密钥kb保存; 步骤3.17.2取随机序列前128*128位,对其排序,得到位置索引序列Zf;步骤3.17.3将所有可嵌入块转换为一维序列Zb,按照位置索引序列进行位置置乱,形成置乱后的序列Za,如公式16所示;ZaZfi=Zbii=1,2,…,128×12816步骤3.18将所有可嵌入块一维序列转换为可嵌入图像;所述步骤4具体如下:步骤4.1用18位二进制数img_water_c_len表示辅助信息img_water_c的长度,用15位二进制数img_water_w_len表示辅助信息img_water_w的长度;步骤4.2将可嵌入图像划分为4*4的块;步骤4.3识别块中左上角的像素最高有效位,如果为1,此块为纹理块,反之为平滑块;步骤4.4平滑块嵌入步骤4.4.1确定坐标为{1,2,2,4,3,1,4,3}的参考像素{p1,p2,p3,p4};步骤4.4.2将每一个参考像素与周围相邻的三个预处理像素组成一个单元;步骤4.4.3将单元中的三个预处理像素转化为二进制拼接起来,形成24bit的序列;步骤4.4.4识别序列的第一位数,如果是1,表明此单元是差值压缩;步骤4.4.4.1通过哈夫曼压缩替换表,识别序列从第二位开始的三个对应标记,计算三位标记的总位数num_mark;步骤4.4.4.2通过公式17计算,序列的剩余空间长度re_d_len为待嵌入空间;re_d_len=24-1-num_mark17步骤4.4.5序列的第一位数,如果是0,表明此单元是位平面压缩;步骤4.4.5.1通过序列的第二至四位,转化为十进制mark_p;步骤4.4.5.2通过公式18计算,序列的剩余空间长度re_p_len,如果re_p_len小于0,那么表示不可嵌入,反之为待嵌入空间;re_p_len=24-1-3-8-mark_p*318步骤4.5纹理块嵌入步骤4.5.1确定坐标为{1,2,2,4,3,1,4,3}的参考像素{p1,p2,p3,p4};步骤4.5.2纹理块block用8个位平面block_b表示,如公式13所示;步骤4.5.3判断最高有效位平面的位置1,2,1,4,2,2,将他们组合起来形成十进制数mark_sim;步骤4.5.4通过mark_sim判断可嵌入的层数,在可嵌入层数中,除去索引信息和参考像素以外的空间,作为待嵌入空间;步骤4.6将辅助信息的长度嵌入到待嵌入空间中,之后再将辅助信息嵌入;步骤4.7辅助信息嵌入完成后,将图像块还原,形成可嵌入秘密信息块;步骤4.8图像隐藏者按照步骤4.1-步骤4.5,得到待嵌入空间;步骤4.9获取18位和15位的辅助信息长度;步骤4.10将秘密信息使用流密码加密;步骤4.10.1令Z0=para_3,a=para_4,利用ICMIC映射如公式15生成随机序列,para_3和para_4作为密钥ke保存;步骤4.10.2生成的随机序列为小数,通过公式19将随机序列转换为二进制表示; 步骤4.10.3再将二进制随机序列与秘密信息进行按位异或,最后形成加密后的秘密信息;步骤4.11计算秘密信息的长度,将其添加到秘密信息的头部;步骤4.12嵌入秘密信息,计算此时待嵌入空间索引位置是否超过了辅助信息长度,如果超过,则进行嵌入,否则跳过;步骤4.13将嵌入后的块还原,形成载密块;步骤4.14将所有载密块组合,形成载密图像;所述步骤5具体如下:步骤5.1图像接收者拥有密钥ke步骤5.1.1平滑块提取信息步骤5.1.1.1确定坐标为{1,2,2,4,3,1,4,3}的参考像素{p1,p2,p3,p4};步骤5.1.1.2将每一个参考像素与周围相邻的三个预处理像素组成一个单元;步骤5.1.1.3将单元中的三个预处理像素转化为二进制拼接起来,形成24bit的序列;步骤5.1.1.4识别序列的第一位数,如果是1,表明此单元是差值压缩;步骤5.1.1.4.1通过哈夫曼压缩替换表,识别序列从第二位开始的三个对应标记,计算三位标记的总位数num_mark;步骤5.1.1.4.2通过公式17计算,提取长度为re_d_len的序列剩余空间信息;步骤5.1.1.5序列的第一位数,如果是0,表明此单元是位平面压缩;步骤5.1.1.5.1通过序列的第二至四位,转化为十进制mark_p;步骤5.1.1.5.2通过公式18计算,取长度为re_p_len的序列剩余空间信息,如果re_p_len小于0,则跳过,反之提取嵌入信息;步骤5.1.2纹理块提取信息步骤5.1.2.1确定坐标为{1,2,2,4,3,1,4,3}的参考像素{p1,p2,p3,p4};步骤5.1.2.2纹理块block用8个位平面block_b表示,如公式13所示;步骤5.1.2.3判断最高有效位平面的位置1,2,1,4,2,2,将他们组合起来形成十进制数mark_sim;步骤5.1.2.4通过mark_sim判断嵌入信息的层数,在嵌入信息层数中,除去索引信息和参考像素以外的空间,都是嵌入的信息,将其提取出来;步骤5.1.3辅助信息提取步骤5.1.3.1提取前12位的交叉线坐标信息;步骤5.1.3.2提取13-30位的正负属性长度img_water_c_len,并从31位开始提取正负属性辅助信息;步骤5.1.3.3提取32+img_water_c_len-46+img_water_c_len位的溢出信息长度img_water_w_len,紧接着提取溢出信息;步骤5.1.4提取信息中除去辅助信息,取秘密信息长度,再提取秘密信息;步骤5.1.5将秘密信息使用流密码解密;步骤5.1.5.1将密钥ke带入到公式15中,利用ICMIC映射生成随机序列;步骤5.1.5.2通过公式19将随机序列转换为二进制表示;步骤5.1.5.3再将二进制随机序列与秘密信息进行按位异或,最后形成解密后的秘密信息;步骤5.2图像接收者拥有密钥kb步骤5.2.1根据步骤5.1.3,提取辅助信息;步骤5.2.2平滑块还原步骤5.2.2.1确定坐标为{1,2,2,4,3,1,4,3}的参考像素{p1,p2,p3,p4};步骤5.2.2.2将每一个参考像素与周围相邻的三个预处理像素组成一个单元;步骤5.2.2.3将单元中的三个预处理像素转化为二进制拼接起来,形成24bit的序列;步骤5.2.2.4识别序列的第一位数,如果是1,表明此单元是差值压缩;步骤5.2.2.4.1通过哈夫曼压缩替换表,识别序列从第二位开始的三个对应标记{mark_t1,mark_t2,mark_t3},并提取三个标记对应的差值difn;步骤5.2.2.4.2通过像素点与参考像素的欧几里得距离,计算权重{w1,w2,w3,w4};步骤5.2.2.4.3根据公式5,计算每个像素值对应的预测值pr;步骤5.2.2.4.4从img_water_c中提取正负属性e,如公式20所示; 步骤5.2.2.4.5在一个单元内,将e与差值difn相乘,再与预测像素值pr相加,最后得到原始像素值p′n,如公式21所示:pn′=e×difn+prn=1,2,321步骤5.2.2.5识别序列的第一位数,如果是0,表明此单元是位平面压缩;步骤5.2.2.5.1通过序列的第二至四位,转化为十进制mark_p;步骤5.2.2.5.2如果mark_p等于0,则从第五位开始,每次取长度为8二进制数,分别赋值到{num_p1,num_p2},剩余序列赋值到num_p3;步骤5.2.2.5.3如果是以坐标1,2为参考像素的单元,便从辅助信息img_water_w中提取5位,反之从辅助信息img_water_w中提取4位补充到num_p3后;步骤5.2.2.5.4如果mark_p等于1,则从第五位开始,每次取长度为7二进制数,分别赋值到{num_p1,num_p2},剩余序列赋值到num_p3;步骤5.2.2.5.5如果是以坐标1,2为参考像素的单元,便从辅助信息img_water_w中提取1位,反之从辅助信息img_water_w中提取2位补充到num_p3后;步骤5.2.2.5.6将参考像素第一位分别赋值到num_pn的头部;步骤5.2.2.5.7如果mark_p大于1,则从第五位开始,每次取长度为8-mark_p二进制数,分别赋值到{num_p1,num_p2},剩余序列赋值到num_p3;步骤5.2.2.5.8将参考像素前mark_p位分别赋值到num_pn的头部;步骤5.2.2.5.9将num_pn转换成十进制,形成原始像素值p′n;步骤5.2.3纹理块还原步骤5.2.3.1确定坐标为{1,2,2,4,3,1,4,3}的参考像素{p1,p2,p3,p4};步骤5.2.3.2将辅助信息中两条线坐标提取出,形成line1,line2;步骤5.2.3.3将纹理块用line1,line2划分为多个区域;步骤5.2.3.4通过像素点与参考像素的欧几里得距离,计算权重{w1,w2,w3,w4};步骤5.2.3.5在同一个区域中,如果有多个参考像素,就增加对应参考像素的权重值,如果没有参考像素,就对权重不做改变,最后更新权重为{w1′,w2′,w3′,w4′};步骤5.2.3.6根据通过公式11,计算每个像素值对应的预测值pr′;步骤5.2.3.7纹理块block用8个位平面block_b表示;步骤5.2.3.8取第一个位平面位置为1,2,1,4,2,2的数,将他们组合起来与块可嵌层数替换表进行对比,得出相应的嵌入层数mark_sim;步骤5.2.3.9将前mark_sim个位平面中,除去参考像素以外的空间,都填充0;步骤5.2.3.10如果mark_sim为0,提取辅助信息img_water_w前4位,替换掉block_b中第一位平面位置1,1,1,2,1,4,2,2的值;步骤5.2.3.11再将8位平面转换成十进制矩阵block′;步骤5.2.3.12从辅助信息img_water_c中提取正负属性e,如公式20;步骤5.2.3.13通过公式22,得到原始块block_s; 步骤5.2.4将所有块转换成一维序列;步骤5.2.5将密钥kb带入到公式15中,利用ICMIC映射生成随机序列Z;步骤5.2.6取随机序列前128*128位,对其排序,得到位置索引序列Zf;步骤5.2.7将所有还原块转换为一维序列Za,按照位置索引序列进行逆置乱,形成还原后的序列Zb,如公式23所示;ZbZfi=Zaii=1,2,…,128×12823步骤5.2.8将所有还原块一维序列转换为还原图像;步骤5.3图像接收者拥有密钥kb和ke步骤5.3.1按照步骤5.1和步骤5.2,提取秘密信息及还原图像。

全文数据:

权利要求:

百度查询: 辽宁师范大学 一种基于自适应预测编码的加密图像可逆信息隐藏方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。