一种音频可逆隐写方法和秘密信息提取方法与流程
本发明涉及音频加密领域,特别涉及一种音频可逆隐写方法和秘密信息提取方法。
背景技术:
信息隐藏就是在人的感官无法察觉情况下,将秘密信息嵌入到各种数字媒体中,如图像、音频、视频等。传统的信息隐藏在嵌密结束后,载体会产生不可逆的失真,这类方法统称为不可逆信息隐藏。在一些特殊场合,这种失真是不被允许的。为了解决这个问题,研究者们提出了可逆信息隐藏技术。它的特点是在密信提取完毕后,原始载体能够被完整恢复并且没有任何失真。
2003年,tian等人提出一种基于差值扩展(differenceexpansion,de)的可逆信息隐藏框架。该方法首先对连续的两个像素值做差,然后将差值转化成二进制形式,最后将密信比特追加到二进制差值的最低位上。这种方法操作简单,但是相邻像素之间的差值扩展之后失真较大。thodi等人在de的基础上,提出利用预测误差来替代相邻像素的差值进行扩展嵌密,实验证明预测误差扩展(predictionerrorexpansion,pee)相比于de有着更低的失真,于是后面的许多工作都开始转向pee。这些方法的本质都是借助差值、预测误差等进行扩展嵌密,对载体的修改较大,在失真表现上不如直方图移位(histogramsshift,hs)的方法。tsai把预测误差与hs相结合,在牺牲一部分嵌密容量的前提下有效地降低了失真。ou等人又在tsai的基础上利用多个直方图修改(multiplehistogramsmodification,mhm)来进行嵌密,弥补了ou在嵌密容量上的不足。2013年,li等人提出一种像素值排序(pixelvalueordering,pvo)的可逆隐写框架。它将一副图像分成若干个固定大小的像素块,然后对像素块中的像素值进行排序,通过第二大(小)值来预测最大(小)值,最后将密信嵌入到预测误差值为“1”或“-1”的像素值当中。由于只对载体进行了轻微的修改,因此隐写后的载体具有高保真的特点。peng等人在pvo的基础上提出改进的像素值排序(ipvo),增加预测误差“0”作为嵌密条件,有效提高了嵌密容量。weng等人则对像素块内的预测机制开展了研究,增加了像素块内生成的预测误差个数,提高了块内像素的利用率。
目前可逆隐写的研究工作大多集中在图像领域,以音频为载体的可逆隐写算法并不多。严等人首次将de框架应用在音频载体上,证实了de框架的通用性。wang结合音频的特点,提出一种基于改进的预测误差扩展(pee)和直方图移位(hs)的新型可逆音频水印方案。与严等人相比,进一步提高了嵌密容量与信噪比。xiang将音频时域采样值按照位置的奇、偶分成两个集合,提出一种复杂的非因果预测算法来计算预测误差,然后将密信以扩展的方式嵌入到预测误差中,这种方法的预测性能是目前最优的。于是有人在xiang的基础上对容量控制进行了优化,在高嵌入率的情况下性能有一定提升。综合来讲,目前音频可逆隐写的研究大都围绕着pee展开,而限制这类算法性能的因素主要有两点:一是预测精度,二是嵌密机制。尽管xiang把预测精度提升到了一个新的高度,但嵌密机制还是利用预测误差的二进制扩展进行嵌密,这种方法对载体的修改幅度是较大的,难以获得高保真的嵌密效果。且由于在图像隐写时常常采用将密信加载到预测误差值为0和1的像素值中,由于音频采样值的变化幅度会比图像更大,因此如果仅利用音频中预测误差值为0和1的采样值进行嵌密,此时会存在嵌密容量不够的问题,因此需要进一步改进。
技术实现要素:
本发明所要解决的第一种技术问题是针对现有技术的现状,提供一种在获得高保真的嵌密效果的同时提高了嵌密容量,且隐写效果更佳的音频可逆隐写方法。
本发明所要解决的第二种技术问题是针对现有技术的现状,提供一种采用上述可逆隐写方法的基础上的秘密信息提取方法。
本发明解决上述第一种技术问题所采用的技术方案为:一种音频可逆隐写方法,用于将秘密信息嵌入到长度为n的音频载体s中,得到含密音频s′;其中,s={x1,x2,...,xn},x1为音频载体s中的第1个采样值,x2为音频载体s中的第2个采样值,xn为音频载体s中的第n个采样值;其特征在于:包括以下步骤:
步骤1、将长度为n的音频载体s划分成长度为n的子块;其中,划分以后的音频载体s={x1,s1,xn+2,s2,x2n+3,...si...,xn},第i个子块的表达式si={xi+n*(i-1)+1,xi+n*(i-1)+2,...,xi+n*i},
步骤2、分别对每个子块中的采样值进行升序排列,得到升序子块;其中,第i个子块si对应的升序子块xi表达式为:xi={xσ(1),xσ(2),...,xσ(n)},xσ(1)≤xσ(2)≤...≤xσ(n);σ(i)为该升序子块xi中采样值xσ(i)对应在原子块si中的位置;σ(i)∈[1,n];
步骤3、根据预设的复杂等级t,t为正整数,得到第i个子块si对应的升序子块xi内部中用于计算复杂度的采样值集合{xσ(t+2),xσ(t+3),...xσ(n-t-1)},并计算得到第i个升序子块xi的复杂度δ,计算公式为:
其中,μ为xσ(t+2)xσ(t+3)...xσ(n-t-1)、xi+n*(i-1)和xi+n*i+1所有采样值对应的均值;
步骤4、判断步骤3中计算得到的第i个升序子块xi的复杂度δ是否大于预设的阈值v,如是,则当前升序子块xi为复杂块,将音频载体s中第i个子块si的采样值继续维持原值,并转入步骤9;如否,则当前升序子块xi为平滑块,并转入步骤5;i的初始值为1;
步骤5、通过计算出满足以下公式的实际复杂等级k,k为正整数;
步骤6、分别计算最优预测采样值xσ(k+1)与{xσ(1),xσ(2)...xσ(k)}中每个采样值之间的误差,得到k个预测误差pemin;并分别计算最优预测采样值xσ(n-k)与{xσ(n-k+1),xσ(n-k+2)...xσ(n)}中每个采样值之间的误差,得到k个预测误差pemax;
步骤7、判断步骤3中当前升序子块xi的复杂度δ是否大于
如否,则对{xσ(1),xσ(2)...xσ(k)}中与最优预测采样值xσ(k+1)之间预测误差值为0和1的采样值以及{xσ(n-k+1),xσ(n-k+2)...xσ(n)}中与xσ(n-k)之间预测误差值为0和1的采样值进行嵌密操作,并对预测误差值小于0或大于1的采样值进行移位操作,并将嵌密操作和移位操作后得到的新采样值替换原采样值,得到{xσ(1),xσ(2)...xσ(k)}对应的新采样值{x′σ(1),x′σ(2)...x′σ(k)}以及{xσ(n-k+1),xσ(n-k+2)...xσ(n)}对应的新采样值{x′σ(n-k+1),x′σ(n-k+2)...x′σ(n)};并转入步骤8;其中,嵌密操作和移位操作的计算公式为:
步骤8、将步骤7中得到的{x′σ(1),x′σ(2)...x′σ(k)}和{x′σ(n-k+1),x′σ(n-k+2)...x′σ(n)}以及当前子块si中的{xσ(k+1),xσ(k+2)...xσ(n-k)}分别按照当前子块si的原始顺序替代音频载体s中第i个si子块中对应位置的采样值;
步骤9、判断此时的秘密信息是否全部嵌入完成,如是,则转入到步骤10;如否,则使i=i+1,并转至步骤4中,继续对下一子块进行嵌密判断;
步骤10、音频载体s中的子块经过上述步骤4或步骤8的替换后得到新的音频载体,得到的新的音频载体即为嵌入有秘密信息的含密音频s′。
具体的,所述步骤6中pemin的计算公式为:
pemin=xs-xt
pemax的计算公式为:
pe=x-xmaxuv
作为改进,所述步骤7中数值d确定的方法为:首先,预设d的取值范围为[dmin,dmax],再统计步骤6中k个预测误差pemin和k个预测误差pemax中预测误差值分别为dmin至dmax中每个整数对应的数量,并将数量最大的值对应的预测误差值作为d。
本发明解决上述第二种技术问题所采用的技术方案为:一种秘密信息提取方法,用于将秘密信息从含密音频s′中提取出来,其中,s′={x′1,x′2...,x′n},x′1为含密音频s′中的第1个采样值,x′2为含密音频s′中的第2个采样值,x′n为含密音频s′中的第n个采样值;其特征在于:包括以下步骤:
步骤1、将含密音频s′划分成长度为n的采样块,每个采样块的长度与音频隐写时每个子块的长度相同,其中,划分以后的含密音频s′={x′1,s′1,x′n+2,s′2,x′2n+3,...s′i...,x′n},第i个采样块的表达式s′i={x′i+n*(i-1)+1,x′i+n*(i-1)+2...,x′i+n*i},
步骤2、分别对每个采样块中的采样值进行升序排列,得到升序采样块;其中,第i个采样块s′i对应的升序采样块x′i表达式为:x′i={x′σ(1),x′σ(2),...,x′σ(n)},x′σ(1)≤x′σ(2)≤...≤x′σ(n);σ(i)为该升序采样块x′i中采样值x′σ(i)对应在原采样块s′i中的位置;σ′(i)∈[1,n];
步骤3、根据预设与音频隐写时相同的复杂等级t,得到第i个采样块s′i对应的升序采样块x′i内部中用于计算复杂度的采样值集合{x′σ(t+2),x′σ(t+3),...x′σ(n-t-1)},并计算得到第i个采样块x′i的复杂度δ′,计算公式为:
其中,μ′为x′σ(t+2),x′σ(t+3)...x′σ(n-t-1)、x′i+n*(i-1)和x′i+n*i+1所有采样值对应的均值;
步骤4、判断步骤3中计算得到的第i个采样块x′i的复杂度δ′是否大于与音频隐写时相同的预设阈值v,如是,则当前升序采样块x′i为复杂块,将含密音频s′中第i个采样块s′i的采样值继续维持原值,并转入步骤8;如否,则当前升序采样块x′i为平滑块,并转入步骤5;i的初始值为1;
步骤5、使用与音频隐写时相同的实际复杂等级k,得到当前升序采样块x′i的最优预测采样值x′σ(k+1)和x′σ(n-k);
步骤6、分别计算最优预测采样值x′σ(k+1)与{x′σ(1),x′σ(2)...x′σ(k)}中每个采样值之间的误差,得到k个预测误差pe′min;并分别计算最优预测采样值x′σ(n-k)与{x′σ(n-k+1),x′σ(n-k+2)...x′σ(n)}中每个采样值之间的误差,得到k个预测误差pe′max;
步骤7、判断步骤3中当前升序采样块x′i的复杂度δ′是否大于
b=pe′min-d,ifpe′min∈{d,d+1}
b=pe′max-d,ifpe′max∈{d,d+1};
如否,则对{x′σ(1),x′σ(2)...x′σ(k)}中与最优预测采样值x′σ(k+1)之间预测误差值为-1、0、1和2的采样值以及{x′σ(n-k+1),x′σ(n-k+2)...x′σ(n)}中与x′σ(n-k)之间预测误差值为-1、0、1和2的采样值进行秘密信息提取,其中,d为与音频隐写时相同的取值;提取出秘密信息b计算公式为:
步骤8、判断此时的秘密信息是否全部提取完毕,如是,则转入到步骤9;如否,则使i=i+1,并转至步骤4中;
步骤9、将每个采样块中提取出的秘密信息按照采样块的先后顺序组成完整的秘密信息,即得到从含密音频s′中提取出来的秘密信息。
与现有技术相比,本发明的优点在于:根据不同种类的音频特点确定出预测误差值d,并对预测误差值为d的采样块进行嵌密,因此该方法能明显提高嵌密容量,且通过自适应确定预测误差值d从而对相似度较高的采样值进行秘密信息嵌入,使该隐写方法具有更好的隐写效果。
具体实施方式
以下结合实施例对本发明作进一步详细描述。
一种音频可逆隐写方法,用于将秘密信息嵌入到长度为n的音频载体s中,得到含密音频s′;其中,s={x1,x2,...,xn},x1为音频载体s中的第1个采样值,x2为音频载体s中的第2个采样值,xn为音频载体s中的第n个采样值;n为自然数,包括以下步骤:
步骤1、将长度为n的音频载体s划分成长度为n的子块;其中,划分以后的音频载体s={x1,s1,xn+2,s2,x2n+3,...si...,xn},第i个子块的表达式si={xi+n*(i-1)+1,xi+n*(i-1)+2,...,xi+n*i},
步骤2、分别对每个子块中的采样值进行升序排列,得到升序子块;其中,第i个子块si对应的升序子块xi表达式为:xi={xσ(1),xσ(2),...,xσ(n)},xσ(1)≤xσ(2)≤...≤xσ(n);σ(i)为该升序子块xi中采样值xσ(i)对应在原子块si中的位置;σ(i)∈[1,n];
步骤3、根据预设的复杂等级t,t为正整数,得到第i个子块si对应的升序子块xi内部中用于计算复杂度的采样值集合{xσ(t+2),xσ(t+3),...xσ(n-t-1)},并计算得到第i个升序子块xi的复杂度δ,计算公式为:
其中,μ为xσ(t+2)xσ(t+3)...xσ(n-t-1)、xi+n*(i-1)和xi+n*i+1所有采样值对应的均值;
复杂等级t的取值范围为:
步骤4、判断步骤3中计算得到的第i个升序子块xi的复杂度δ是否大于预设的阈值v,如是,则当前升序子块xi为复杂块,将音频载体s中第i个子块si的采样值继续维持原值,并转入步骤9;如否,则当前升序子块xi为平滑块,并转入步骤5;i的初始值为1;
步骤5、通过计算出满足以下公式的实际复杂等级k,k为正整数;
中的最优预测采样值xσ(k+1)和xσ(n-k);k∈[1,t];
步骤6、分别计算最优预测采样值xσ(k+1)与{xσ(1),xσ(2)...xσ(k)}中每个采样值之间的误差,得到k个预测误差pemin;并分别计算最优预测采样值xσ(n-k)与{xσ(n-k+1),xσ(n-k+2)...xσ(n)}中每个采样值之间的误差,得到k个预测误差pemax;
pemin的计算公式为:
pemin=xs-xt
pemax的计算公式为:
pe=x-xmaxuv
步骤7、判断步骤3中当前升序子块xi的复杂度δ是否大于
如否,则对{xσ(1),xσ(2)...xσ(k)}中与最优预测采样值xσ(k+1)之间预测误差值为0和1的采样值以及{xσ(n-k+1),xσ(n-k+2)...xσ(n)}中与xσ(n-k)之间预测误差值为0和1的采样值进行嵌密操作,并对预测误差值小于0或大于1的采样值进行移位操作,并将嵌密操作和移位操作后得到的新采样值替换原采样值,得到{xσ(1),xσ(2)...xσ(k)}对应的新采样值{x′σ(1),x′σ(2)...x′σ(k)}以及{xσ(n-k+1),xσ(n-k+2)...xσ(n)}对应的新采样值{x′σ(n-k+1),x′σ(n-k+2)...x′σ(n)};并转入步骤8;其中,嵌密操作和移位操作的计算公式为:
在本方案中,数值d确定的方法为:首先,预设d的取值范围为[dmin,dmax],再统计步骤6中k个预测误差pemin和k个预测误差pemax中预测误差值分别为dmin至dmax中每个整数对应的总数量,并将总数量最大的值对应的预测误差值作为d。
在本实施例中,由于不同种类的音频特点不同,设定数值d的取值范围为:[2,5],则分别统计预测误差值为2,3,4,5的数量,则将数量最大的那个预测误差值即为d;
其中,上述对预测误差值为0和1的采样值进行嵌密操作的公式是引用论文:feipeng,xiaolongli,binyang,improvedpvo-basedreversibledatahiding,digitalsignalprocessing2014;
上述嵌密操作和移位操作得到x′σ(q)的计算公式具体推导步骤为:q∈[1,k];
将秘密信息的比特b∈{0,1}嵌入到预测误差pemin中,得到pe′min;
同样的,上述嵌密操作和移位操作得到x′σ(q)的计算公式具体推导步骤为:q∈[n-k+1,n]
将秘密信息的比特b∈{0,1}嵌入到预测误差pemax中,得到pe′max;
步骤8、将步骤7中得到的{x′σ(1),x′σ(2)...x′σ(k)}和{x′σ(n-k+1),x′σ(n-k+2)...x′σ(n)}以及当前子块si中的{xσ(k+1),xσ(k+2)...xσ(n-k)}分别按照当前子块si的原始顺序替代音频载体s中第i个si子块中对应位置的采样值;
步骤9、判断此时的秘密信息是否全部嵌入完成,如是,则转入到步骤10;如否,则使i=i+1,并转至步骤4中,继续对下一子块进行嵌密判断;
步骤10、音频载体s中的子块经过上述步骤4或步骤8的替换后得到新的音频载体,得到的新的音频载体即为嵌入有秘密信息的含密音频s′。
在嵌密过程中,由于采样值发生了修改,因此可能会产生溢出问题。为了解决这个问题,我们建立一个位置映射表lm来标记那些可能产生溢出的采样块,由于16bit量化的音频采样值范围在[-32768,32767]之间,因此,如果当前块内有采样值等于-32768或者32767,那么令lm(i)=1,反之lm(i)=0;在嵌密结束后,将得到的位置映射表lm进行无损压缩得到ls。实际上,当分块大小确定以后,lm的大小也被唯一确定。将压缩后的位置图ls与分块大小n、复杂度阈值v、密信长度n、辅助信息结束标志eos依次连接组合成辅助信息l,将辅助信息l以lsb替换的方式嵌入音频的开头部分。同时为了保证可逆,把被辅助信息l替换的部分与密信一起嵌入载体中。
秘密信息提取方法作为隐写方法的逆过程,为了从采用上述可逆隐写方法加密的音频中提取出秘密信息,因此接收到含密音频后,根据辅助信息结束标志eos将开头部分的辅助信息提取出来。这样就依次得到了位置映射表ls、分块大小n、密信长度n,再将ls解压缩得到原始的位置映射表lm;上述隐写方法对应的秘密信息提取方法用于将秘密信息从含密音频s′中提取出来,其中,s′={x′1,x′2...,x′n},x′1为含密音频s′中的第1个采样值,x′2为含密音频s′中的第2个采样值,x′n为含密音频s′中的第n个采样值;包括以下步骤:
步骤1、将含密音频s′划分成长度为n的采样块,每个采样块的长度与音频隐写时每个子块的长度相同,其中,划分以后的含密音频s′={x′1,s′1,x′n+2,s′2,x′2n+3,...s′i...,x′n},第i个采样块的表达式s′i={x′i+n*(i-1)+1,x′i+n*(i-1)+2...,x′i+n*i},
步骤2、分别对每个采样块中的采样值进行升序排列,得到升序采样块;其中,第i个采样块s′i对应的升序采样块x′i表达式为:x′i={x′σ(1),x′σ(2),...,x′σ(n)},x′σ(1)≤x′σ(2)≤...≤x′σ(n);σ(i)为该升序采样块x′i中采样值x′σ(i)对应在原采样块s′i中的位置;σ′(i)∈[1,n];
步骤3、根据预设与音频隐写时相同的复杂等级t,得到第i个采样块s′i对应的升序采样块x′i内部中用于计算复杂度的采样值集合{x′σ(t+2),x′σ(t+3),...x′σ(n-t-1)},并计算得到第i个采样块x′i的复杂度δ′,计算公式为:
其中,μ′为x′σ(t+2),x′σ(t+3)...x′σ(n-t-1)、x′i+n*(i-1)和x′i+n*i+1所有采样值对应的均值;
由于用于计算复杂度的采样值在嵌密前后是保持不变的,因此δ=δ′,保证了在解密时不会发生差错;
步骤4、判断步骤3中计算得到的第i个采样块x′i的复杂度δ′是否大于与音频隐写时相同的预设阈值v,如是,则当前升序采样块x′i为复杂块,将含密音频s′中第i个采样块s′i的采样值继续维持原值,并转入步骤8;如否,则当前升序采样块x′i为平滑块,并转入步骤5;i的初始值为1;
步骤5、使用与音频隐写时相同的实际复杂等级k,得到当前升序采样块x′i的最优预测采样值x′σ(k+1)和x′σ(n-k);
步骤6、分别计算最优预测采样值x′σ(k+1)与{x′σ(1),x′σ(2)...x′σ(k)}中每个采样值之间的误差,得到k个预测误差pe′min;并分别计算最优预测采样值x′σ(n-k)与{x′σ(n-k+1),x′σ(n-k+2)...x′σ(n)}中每个采样值之间的误差,得到k个预测误差pe′max;
步骤7、判断步骤3中当前升序采样块x′i的复杂度δ′是否大于
b=pe′min-d,ifpe′min∈{d,d+1}
b=pe′max-d,ifpe′max∈{d,d+1};
如否,则对{x′σ(1),x′σ(2)...x′σ(k)}中与最优预测采样值x′σ(k+1)之间预测误差值为-1、0、1和2的采样值以及{x′σ(n-k+1),x′σ(n-k+2)...x′σ(n)}中与x′σ(n-k)之间预测误差值为-1、0、1和2的采样值进行秘密信息提取,其中,d为与音频隐写时相同的取值;提取出秘密信息b计算公式为:
步骤8、判断此时的秘密信息是否全部提取完毕,如是,则转入到步骤9;如否,则使i=i+1,并转至步骤4中;
步骤9、将每个采样块中提取出的秘密信息按照采样块的先后顺序组成完整的秘密信息,即得到从含密音频s′中提取出来的秘密信息。
上述只是描述在含密音频中提取出秘密信息的过程,当然,在秘密信息提取的过程中也可以从含密音频s′中恢复出音频载体,在秘密信息提取方法的步骤7中对预测误差值为d和d+1的采样值进行秘密信息提取时相应的恢复出音频载体,计算公式为:
当对预测误差值为-1、0、1和2的采样值进行秘密信息提取时相应的恢复出音频载体,计算公式为:
本发明中将密信比特嵌入到符合条件的预测误差中,对不符合要求的预测误差,通过加一或者减一来进行移位,以此保证解密的正确性。因此这种方法对音频载体的修改是轻微的,符合高保真的特点,能保证音频的感知质量;另外,通过在所有预测误差值中将数量最大值设定为预测误差值d,因此该方法中对相似度较高的采样值进行秘密信息嵌入,从而在提高嵌密容量的同时也提高了隐写效果。
起点商标作为专业知识产权交易平台,可以帮助大家解决很多问题,如果大家想要了解更多知产交易信息请点击 【在线咨询】或添加微信 【19522093243】与客服一对一沟通,为大家解决相关问题。
此文章来源于网络,如有侵权,请联系删除