本发明涉及可逆隐藏最优编码和隐写技术领域,尤其涉及一种基于最优编码的可逆隐写方法。
背景技术:
隐写术的主要目的是用图像、音频、视频等载体掩盖秘密消息,实现隐蔽通信。信号中相关性弱、难以模型化的区域(如图像的纹理复杂区域)更适合修改,因为在这样的区域内修改嵌入信息是难以被检测到的,而相关性强的区域内嵌入信息则易被检测到。这促使隐写术自适应地优先修改失真小(难检测)的区域。相应地,隐写编码技术也向自适应方向发展。针对这种需求,filler等提出了实用的最小化失真隐写编码,被称为stc。stc编码出现以后,隐写术的研究就集中在了如何设计合理的失真函数。
“隐蔽存储”区别于传统的存储方式,这种技术将秘密文件隐藏在自然文件如自然图像之中,使得秘密文件不可察觉。我们称这些自然的载体文件为隐蔽的存储空间。而“隐蔽存储”这一应用自然要求隐写术具有可逆性,从而使得隐蔽存储空间可以被重复利用,易于扩展和维护。
可逆隐藏能够在提取消息后无损重构载体。可逆隐藏主要用于军事、医学和司法等敏感图像的完整性认证或标注,在这些应用中图像很敏感,轻微的修改也是被禁止的。目前主流的可逆隐藏方法都由两部分构成。第一步,生成一条适合压缩(即熵尽量小)的序列作为载体;第二步,在保持可逆的条件下,以尽量小的失真在载体序列中嵌入消息。主要的嵌入方法是修改载体序列的直方图。
可逆隐藏的第二步是以给定的嵌入率在误差序列上嵌入消息,并希望嵌入过程引入的失真尽量小,这是一个特殊的率失真问题。kalker等得到了可逆隐藏的率失真界的表达式。自然地,研究者希望寻找能达到率失真界的嵌入方法,即最优编码。之前的工作已经给出了一种可证明最优的嵌入方法即:递归编码。为实现最优嵌入,递归编码需要利用载体到载密之间的最优转移概率。
当前可逆隐藏应用中,关于图像质量的评价指标主要是采用峰值信噪比,所以失真定义采用均方失真。这种失真定义与载体元素的位置无关,只与修改幅度有关,可以用一个失真矩阵描述。目前的最优编码也只适用于这种简单的失真形式。因为修改模式很特殊,传统可逆隐藏的隐蔽性(抗检测能力)非常弱。最近,hong等人尝试将可逆隐藏与自适应隐写相结合,通过随机预测模式设计了一种隐藏方法,该方法实现了可逆性,并在一定程度上具有隐写术的抗检测能力。为简便,我们把具有可逆性的隐写术称为“可逆隐写”,这是可逆隐藏的重要发展趋势之一。若在可逆隐藏过程中引入隐写失真(即抗检测性),就需要定义位置相关的自适应失真,再计算载体到载密的最优转移概率,根据转移概率利用递归编码实现可逆的隐写。
虽然,hong等人的方法是最新的可逆隐写方法之一,他们也最早提出了可逆隐写的概念;然而,其缺陷是并没有为修改像素定义准确的修改失真,只是笼统地优先修改复杂区域像素以增强其抗检测性。
技术实现要素:
本发明的目的是提供基于最优编码的可逆隐写方法,可以提高安全性。
本发明的目的是通过以下技术方案实现的:
一种基于最优编码的可逆隐写方法,包括:
产生原始载体序列,再采用预定方式将其处理为复合载体序列,并构建复合载体序列的失真矩阵;
利用预留像素个数以及原始秘密信息长度计算出嵌入率;
结合嵌入率、复合载体序列的分布概率,以及失真矩阵首先计算出最优的边缘概率,再根据求得的边缘概率、复合载体序列的分布概率以及失真矩阵来计算最优的转移概率矩阵;
利用最优的转移概率矩阵对复合载体序列执行递归编码,从而可逆地并且最小化失真将待嵌入信息嵌入到复合载体序列中得到载密序列。
由上述本发明提供的技术方案可以看出,本技术方案借鉴了隐写领域的失真模型,为可逆隐藏的载体定义准确的修改失真,再使用可逆隐藏领域中最优的编码技术最小化失真地完成信息嵌入,从而实现更高的安全性。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。
图1为本发明实施例提供的基于最优编码的可逆隐写方法的流程图;
图2为本发明实施例提供的将其余像素分为圈叉两部分像素的示意图;
图3为本发明实施例提供的三个子序列被拼接成一个复合序列的示意图;
图4为本发明实施例提供的本发明方案与现有技术的比较实验结果。
具体实施方式
下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。
图1为本发明实施例提供的基于最优编码的可逆隐写方法的流程图。如图1所示,其主要包括:
步骤11、产生原始载体序列,再采用预定方式将其处理为复合载体序列,并构建复合载体序列的失真矩阵。
本步骤主要过程如下:
1、产生原始载体序列。
预留lres个像素用来嵌入恢复嵌入信息和原始载体所必须的辅助信息;预留像素的最低比特位与秘密信息一起被视为待嵌入信息。
由图像中其余像素(也即除了预留像素以外的像素)产生载体序列:将其余像素分为圈叉两部分,每次信息嵌入只选择圈像素或者叉像素作为载体像素,再计算每个载体像素的预测误差ei,j,并定义失真;
预测误差ei,j计算公式如下:
其中,u,v表示像素,其下标i、j分别对应像素的行、列号;
示例性的,如图2所示,其余像素分为圈叉两部分,以叉像素嵌入为例,根据圈像素以上述方法计算出每个叉像素ui,j的预测误差ei,j,并给其定义失真权重ci,j,失真权重与ui,j周边区域的叉像素有关,可以是复杂度,或者其他各类隐写特征。
选取载体像素的预测误差组成原始载体序列,记为x={x1,x2,...,xn},xj∈{0,1,...,m},j=1,2,...,n,原始载体序列对应的失真用cset={c1,c2,..,cn}表示。
2、处理为复合载体序列。
将cset={c1,c2,..,cn}分为k类,对应地原始载体序列x也被分为k类,原始载体序列x中每一类子序列用xi表示。以di(x,y)表示将子序列xi中每个元素x修改成y的失真,其中y∈{0,1,...,n},di(x,y)为第i类失真的代表,可以为序列xi中各元素的失真均值等,i=1,2,...,k;
将子序列xi沿着横轴平移,使得相邻子序列的直方图之间没有交叉,同时又没有任何间隙;一般而言xi的平移步长oxi=(i-1)*m。如图3所示,三个子序列被拼接成一个复合序列。子序列xi平移以后得到子序列
3、构建复合载体序列的失真矩阵。
对于复合的载体序列xc,构建复合载体序列的失真矩阵为:
其中:
上式中n对应y的取值范围。
步骤12、利用预留像素个数以及原始秘密信息长度计算出嵌入率。
计算公式如下;
其中,lres为预留像素个数,l为原始秘密信息长度,n为载体序列的元素数量。
步骤13、结合嵌入率、复合载体序列的分布概率,以及失真矩阵首先计算出最优的边缘概率,再根据求得的边缘概率、复合载体序列的分布概率以及失真矩阵计算最优的转移概率矩阵。
本领域技术人员可以理解,计算最优的边缘概率以及最优的转移概率矩阵可以通过常规方法来实现。
步骤14、利用最优的转移概率矩阵对复合载体序列执行递归编码,从而可逆地并且最小化失真将待嵌入信息嵌入到复合载体序列中得到载密序列。
本发明实施例中,利用最优的转移概率矩阵对复合载体序列
之后,将最终的的载密序列y返回到图像像素,将恢复嵌入信息和原始载体序列所必须的辅助信息,嵌入预留像素的最低比特位,得到载密图像。
另外,本发明实施例还提供载密图像的恢复方式,相当于前述步骤的逆向过程,其步骤如下:
从预留像素的最低比特位提取出恢复嵌入信息和原始载体序列所必须的辅助信息,包括:复合载体序列的直方图,原始秘密信息长度l,预留像素个数lres,以及超出0~255范围的溢出像素冗余;
将超出0~255范围的溢出像素冗余加回到载密像素上,再计算载密像素的预测误差和失真;根据失真将载密序列y分为k类子序列,每类子序列yi平移(i-1)*n得到
根据分为k类的失真定义失真矩阵:
根据复合载体序列的直方图计算出复合概率
根据最优的转移概率矩阵,对复合的载密序列yc进行解码,得到复合载体序列xc,秘密信息和预留像素的最低比特位;
复合载体序列xc中的每类子序列
原始载体序列返回到图像像素,通过预留像素的最低比特位重构出预留像素,从而载体和信息都能够无损提取。
另一方面,本发明实施例还将上述方案与现有技术共同进行了实验,实验结果如图4所示,其中,矩形节点所连接的曲线为本发明上述方案的实验结果(即最上段的曲线),可以看到效果明显优于现有技术。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例可以通过软件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,上述实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。