«上一篇 下一篇»
  计算机工程  2021, Vol. 47 Issue (1): 123-128, 138  DOI: 10.19678/j.issn.1000-3428.0056619
0

引用本文  

余恒, 王让定, 严迪群, 等. 基于采样值排序的音频可逆隐写算法[J]. 计算机工程, 2021, 47(1), 123-128, 138. DOI: 10.19678/j.issn.1000-3428.0056619.
YU Heng, WANG Rangding, YAN Diqun, et al. Reversible Audio Steganography Algorithm Based on Sample Value Ordering[J]. Computer Engineering, 2021, 47(1), 123-128, 138. DOI: 10.19678/j.issn.1000-3428.0056619.

基金项目

国家自然科学基金(U1736215,61672302,61901237);浙江省自然科学基金(LY17F020010,LY20F020010);浙江省移动网应用技术重点实验室开放基金(F2018001)

作者简介

余恒(1995-), 男, 硕士研究生, 主研方向为信息安全、音频信息隐藏技术;
王让定, 教授、博士; 严迪群, 副教授、博士;
张雪垣, 硕士研究生

文章历史

收稿日期:2019-11-18
修回日期:2019-12-28
基于采样值排序的音频可逆隐写算法
余恒 , 王让定 , 严迪群 , 张雪垣     
宁波大学 信息科学与工程学院, 浙江 宁波 315211
摘要:针对已有音频可逆隐写算法失真较大的问题,提出一种基于采样值排序的改进音频可逆信息隐写算法。将音频采样值序列划分为固定大小的采样块,对采样块内部的采样值进行升序排列。计算每个采样块的复杂度,根据复杂度确定采样块是否能够用于嵌密。对于能够嵌密的块,通过其复杂度等级确定最优预测采样值,将该采样值与其他采样值相减得到预测误差,依据预测误差值的大小决定执行嵌密操作或移位操作。在EBU-SQAM标准测试集上的实验结果表明,在相同嵌入容量的条件下,相较于DE算法和PEE算法,该算法的SNR值较高,具有高保真的特性。
关键词采样值排序    隐写算法    音频    复杂度等级    嵌密操作    
Reversible Audio Steganography Algorithm Based on Sample Value Ordering
YU Heng , WANG Rangding , YAN Diqun , ZHANG Xueyuan     
Faculty of Electrical Engineering and Computer Science, Ningbo University, Ningbo, Zhejiang 315211, China
Abstract: To address the large distortion suffered by the existing reversible audio steganography algorithms, this paper proposes an improved reversible audio steganography algorithm based on Sample Value Ordering(SVO).In the algorithm, the complexity of each sample block is calculated, which determines whether the sample block can be used for embedding.As for the to-be-embedded blocks, the optimal predicted sample value is determined by its complexity level, and the prediction error is obtained from the optimal predicted sample value minus other sample values.Based on the prediction error value, perform the embedding or shift operation.The experimental results on the EBU-SQAM standard test set show that the Signal-to-Noise Ratio(SNR) value of the proposed algorithm is significantly improved compared with DE, PEE and other algorithms under the same embedding capacity.It also has higher fidelity.
Key words: Sample Value Ordering(SVO)    steganography algorithm    audio    complexity level    embedding operation    
0 概述

信息隐藏是指在人的感官无法察觉的情况下,将秘密信息嵌入到各种数字媒体中,如图像、音频和视频等。在嵌密结束后,传统信息隐藏载体会产生不可逆的失真,这被称为不可逆信息隐藏,在一些特殊场合,这种失真是不被允许的[1]。为了解决该问题,研究人员提出了可逆信息隐藏技术[2],其特点是在秘密信息被提取完毕后,原始载体能够被完整恢复并且没有任何失真,这种特性使得该技术在一些如图像处理、对抗样本等[3]重要领域有着广阔的应用前景。

2003年,TIAN等人[4]提出一种基于差值扩展(Difference Expansion,DE)的可逆信息隐藏方法,其首先对连续的2个像素值做差,然后将差值转化成二进制形式,最后将密信比特追加到二进制差值的最低位上。该方法操作简单,但是相邻像素之间的差值在扩展之后失真较大。THODI等人[5]在DE的基础上,提出利用预测误差来替代相邻像素的差值进行扩展嵌密的方法,实验结果表明,预测误差扩展(Prediction Error Expansion,PEE)相较DE具有更低的失真,因此,PEE引起了研究人员的广泛关注[6-7]

上述方法的本质都是借助差值、预测误差等进行扩展嵌密,对载体的修改较大,在解决失真问题上的效果较直方图移位(Histograms Shift,HS)方法差。TSAI[8]将预测误差与HS相结合,在增加一部分嵌密容量的前提下有效降低了失真。OU等人[9]又在TSAI的基础上利用多个直方图修改(Multiple Histograms Modification,MHM)来进行嵌密,弥补了TSAI在嵌密容量上的不足。2013年,LI等人[10]提出一种像素值排序(Pixel Value Ordering,PVO)的可逆隐写框架,其将一副图像分成若干个固定大小的像素块,然后对像素块中的像素值进行排序,通过第二大(小)值来预测最大(小)值,最后将密信嵌入到预测误差值为“1”或“-1”的像素值中。由于该框架只对载体进行了少量修改,因此隐写后的载体具有高保真的特点。PENG等人[11]在PVO的基础上提出改进的像素值排序(IPVO),其增加预测误差“0”作为嵌密条件,有效提高了嵌密容量。WENG等人[12]对像素块内的预测机制进行研究,增加了像素块内生成的预测误差个数,提高了块内像素的利用率。

目前,关于可逆隐写的研究工作大多集中在图像领域[13-15],而较少关注以音频为载体的可逆隐写算法。严迪群等人[16]将DE框架应用在音频载体上,证实了DE框架的通用性。WANG[17]结合音频的特点,提出一种基于改进的预测误差扩展和直方图移位的新型可逆音频水印方案,与严迪群等人方法相比,其进一步提高了嵌密容量与信噪比。XIANG[18]将音频时域采样值按照位置的奇、偶分成2个集合,提出一种复杂的非因果预测算法来计算预测误差,然后将密信以扩展的方式嵌入到预测误差中,该方法的预测性能是目前较优的。文献[19]在XIANG算法的基础上对容量控制进行优化,在高嵌入率的情况下其性能得到一定提升。

当前关于音频可逆隐写的研究大都围绕PEE[20-21]展开,限制这类算法性能提升的主要因素包括预测精度和嵌密机制2个。尽管XIANG将预测精度提升到了一个新高度,但是其仍然利用预测误差的二进制扩展进行嵌密,这种方法对载体的修改幅度较大,难以获得高保真的嵌密效果。

本文提出一种针对音频载体的PVO可逆隐写算法。将音频时域序列分成若干个大小相同的采样块,利用音频时域相关的特点对每个采样块的复杂度进行评估,根据复杂度来确定采样块是否能够进行嵌密。此外,由于采样块的大小直接影响嵌密效率,本文进一步利用采样块的复杂度来确定最优预测采样值,以此提高采样块的嵌密效率。

1 基于IPVO的可逆隐写算法

PENG等人[11]提出的基于IPVO的可逆隐写算法,将载体图像划分为若干个大小为n的非重叠像素块,并将这些像素块内的像素值按照升序进行排列,得到一个有序集合$ \left\{ {{x_{\sigma \left( 1 \right)}}, {x_{\sigma \left( 2 \right)}}, \cdots , {x_{\sigma \left( n \right)}}} \right\} $。其中,$ {x_{\sigma \left( 1 \right)}} \le {x_{\sigma \left( 2 \right)}} \le \cdots \le {x_{\sigma \left( n \right)}} $ xσ(i)表示有序集合中的第i个像素值,σ(i)表示xσ(i)在原始像素块中的位置。

将像素值xσ(2)xσ(n-1)作为预测像素值,分别用来预测xσ(1)xσ(n)的大小。对于xσ(1),通过式(1)得到预测误差PEmin

$ {\rm{P}}{{\rm{E}}_{\min }} = {x_s} - {x_t} $ (1)

其中:

$ \left\{ \begin{array}{l} s = \min \left( {\sigma \left( 1 \right), \sigma \left( 2 \right)} \right)\\ t = \max \left( {\sigma \left( 1 \right), \sigma \left( 2 \right)} \right) \end{array} \right. $ (2)

然后利用式(3)将密信比特b∈{0,1}嵌入到预测误差中得到$ {\rm{P}}{{\rm{E'}}_{\min }} $

$ {\rm{P}}{{{\rm{E'}}}_{\min }} = \left\{ \begin{array}{l} {\rm{P}}{{\rm{E}}_{\min }} + {\rm{b, P}}{{\rm{E}}_{\min }} = 1\\ {\rm{P}}{{\rm{E}}_{\min }} + 1, {\rm{P}}{{\rm{E}}_{\min }} > 1\\ {\rm{P}}{{\rm{E}}_{\min }} - {\rm{b, P}}{{\rm{E}}_{\min }} = 0\\ {\rm{P}}{{\rm{E}}_{\min }} - 1, {\rm{P}}{{\rm{E}}_{\min }} < 0 \end{array} \right. $ (3)

再利用式(4)得到xσ(1)的预测值$ {x'_{\sigma \left( 1 \right)}} $

$ \begin{array}{l} {x'_{\sigma \left( 1 \right)}} = {x_{\sigma \left( 2 \right)}} - \left| {{\rm{P}}{{{\rm{E'}}}_{\min }}} \right| = \\ \;\;\;\;\;\;\;\;\;\left\{ \begin{array}{l} {x_{\sigma \left( 1 \right)}} - b{\rm{, P}}{{\rm{E}}_{\min }} = 1\\ {x_{\sigma \left( 1 \right)}} - 1, {\rm{P}}{{\rm{E}}_{\min }} > 1\\ {x_{\sigma \left( 1 \right)}} - b, {\rm{P}}{{\rm{E}}_{\min }} = 0\\ {x_{\sigma \left( 1 \right)}} - 1, {\rm{P}}{{\rm{E}}_{\min }} < 0 \end{array} \right. \end{array} $ (4)

最后得到含密像素块Y=(y1y2,…,yn),其中,$ {y_{\sigma \left( 1 \right)}} = {x'_{\sigma \left( 1 \right)}} $,对于任意iσ(1),yi=xi

在解密端,首先根据式(5)计算出$ {\rm{P}}{{\rm{E'}}_{\min }} $

$ {\rm{P}}{{{\rm{E'}}}_{\min }} = {{x'}_s} - {{x'}_t} $ (5)

其中,st的计算方法与嵌密时一致。然后根据得到的$ {\rm{P}}{{\rm{E'}}_{\min }} $$ {x'_{\sigma \left( 1 \right)}} $xσ(1)进行恢复:

$ {x_{\sigma \left( 1 \right)}} = \left\{ {\begin{array}{*{20}{l}} {{{x'}_{\sigma \left( 1 \right)}} + {\rm{P}}{{{\rm{E'}}}_{\min }} - 1, {\rm{P}}{{{\rm{E'}}}_{\min }} \in \left\{ {1, 2} \right\}}\\ {{{x'}_{\sigma \left( 1 \right)}} + 1, {\rm{P}}{{{\rm{E'}}}_{\min }} > 2}\\ {{{x'}_{\sigma \left( 1 \right)}} - {\rm{P}}{{{\rm{E'}}}_{\min }}, {\rm{P}}{{{\rm{E'}}}_{\min }} \in \left\{ { - 1, 0} \right\}}\\ {{{x'}_{\sigma \left( 1 \right)}} + 1, {\rm{P}}{{{\rm{E'}}}_{\min }} < - 1} \end{array}} \right. $ (6)

同时提取出嵌入的密信比特b

$ b = \left\{ {\begin{array}{*{20}{l}} {{\rm{P}}{{{\rm{E'}}}_{\min }} - 1, {\rm{P}}{{{\rm{E'}}}_{\min }} \in \left\{ {1, 2} \right\}}\\ { - {\rm{P}}{{{\rm{E'}}}_{\min }}, {\rm{P}}{{{\rm{E'}}}_{\min }} \in \left\{ { - 1, 0} \right\}} \end{array}} \right. $ (7)

与最小值xσ(1)的嵌密操作相似,通过式(8)将xσ(n)修改为$ {x'_{\sigma \left( n \right)}} $从而对最大值xσ(n)进行嵌密:

$ {{x'}_{\sigma \left( n \right)}} = \left\{ {\begin{array}{*{20}{l}} {{x_{\sigma \left( n \right)}} + b, {\rm{P}}{{\rm{E}}_{{\rm{max}}}} = 1}\\ {{x_{\sigma \left( n \right)}} + 1, {\rm{P}}{{\rm{E}}_{{\rm{max}}}} > 1}\\ {{x_{\sigma \left( n \right)}} + b, {\rm{P}}{{\rm{E}}_{{\rm{max}}}} = 0}\\ {{x_{\sigma \left( n \right)}} + 1, {\rm{P}}{{\rm{E}}_{{\rm{max}}}} < 0} \end{array}} \right. $ (8)

其中:

$ {\rm{P}}{{\rm{E}}_{\max }} = {x_u} - {x_v} $ (9)
$ \left\{ {\begin{array}{*{20}{l}} {u = {\rm{min}}\left( {\sigma \left( n \right), \sigma \left( {n - 1} \right)} \right)}\\ {v = {\rm{max}}\left( {\sigma \left( n \right), \sigma \left( {n - 1} \right)} \right)} \end{array}} \right. $ (10)

在解密端,首先计算出含密的预测误差$ {\rm{P}}{{{\rm{E'}}}_{\max }} $

$ {\rm{P}}{{{\rm{E'}}}_{\max}} = {{x'}_u} - {{x'}_v} $ (11)

其中,uv的计算方式与嵌密时一致。然后根据得到的$ {\rm{P}}{{{\rm{E'}}}_{\max }} $$ {{x'}_{\sigma \left( n \right)}} $xσ(n)进行恢复:

$ {x_{\sigma \left( n \right)}} = \left\{ {\begin{array}{*{20}{l}} {{{x'}_{\sigma \left( n \right)}} - {\rm{P}}{{{\rm{E'}}}_{\max}} + 1, {\rm{P}}{{{\rm{E'}}}_{\max}} \in \left\{ {1, 2} \right\}}\\ {{{x'}_{\sigma \left( n \right)}} - 1, {\rm{P}}{{{\rm{E'}}}_{\max}} > 2}\\ {{{x'}_{\sigma \left( n \right)}} + {\rm{P}}{{{\rm{E'}}}_{\max}}, {\rm{P}}{{{\rm{E'}}}_{\max}} \in \left\{ { - 1, 0} \right\}}\\ {{{x'}_{\sigma \left( n \right)}} - 1, {\rm{P}}{{{\rm{E'}}}_{\max}} < - 1} \end{array}} \right. $ (12)

同时提取出嵌入的密信比特b

$ b = \left\{ {\begin{array}{*{20}{l}} {{\rm{P}}{{{\rm{E'}}}_{\max}} - 1, {\rm{P}}{{{\rm{E'}}}_{\max}} \in \left\{ {1, 2} \right\}}\\ { - {\rm{P}}{{{\rm{E'}}}_{\max}}, {\rm{P}}{{{\rm{E'}}}_{\max}} \in \left\{ { - 1, 0} \right\}} \end{array}} \right. $ (13)

PENG等人根据排序后的相邻像素具有高度相关的特性,利用第二小(大)的像素去预测最小(大)的像素。将密信比特嵌入到符合条件的预测误差中,对于不符合要求的预测误差,通过加1或者减1来进行移位,以此保证解密的正确性。该方法对载体的修改较少,符合高保真的要求。然而,当分块大小n增大时,其仅预测最小(大)值可能会对其他像素值造成浪费。本文对此进行改进,并将该方法应用于音频载体上。

2 音频可逆隐写算法

本文引入采样块复杂度的概念,对采样块复杂度等级进行评估,得出最优预测采样值,利用最优预测采样值实现采样块的高效利用。

2.1 采样块复杂度

一些无损格式的音频采样值范围通常较大,在对音频载体进行分块后,如果不对采样块加以区分,会造成不必要的失真。因此,本文引入采样块复杂度Δ来衡量一个采样块内部采样值的变化幅度。首先利用事先设定的复杂度阈值Cz将采样块分成复杂块(Δ>Cz)与平滑块(ΔCz),然后在进行嵌密操作时,对平滑块进行嵌密,对复杂块直接跳过。

实际上,音频的采样值是时域相关的,一个采样值的大小与其前后的采样值之间有着高度相关性。因此,本文通过与采样块相邻的前一个采样值xp与后一个采样值xq来计算该采样块复杂度。在给定密信长度的情况下,通过设定不同的阈值Cz可将密信自适应地嵌在不同的位置上。

2.2 最优预测采样值

对于一个大小为n的有序采样块$ X = \left\{ {{x_{\sigma \left( 1 \right)}}, {x_{\sigma \left( 2 \right)}}, \cdots , {x_{\sigma \left( n \right)}}} \right\} $,当n=3时,用于预测的采样值被唯一确定,此时采样块的嵌密效率也最高,即由3个采样值组成的采样块在理想状态下最多能嵌入两位密信。当n的值逐渐增大时,按照传统的方式选取用于预测的2个采样值,位于这2个采样值之间的采样值会被浪费,这样显然不合理。为此,本文设计一种确定最优预测采样值的机制,从而充分利用块内所有可能嵌密的采样值。

首先,将采样块的复杂度分为T个等级,1≤Tm,其中,$ m = \left\lfloor {\left( {n - 1} \right)/2} \right\rfloor , \left\lfloor \cdot \right\rfloor $表示向下取整。对于平滑块,满足条件$ \left( {T - k} \right) \times \frac{{{C_z}}}{T} \le \mathit{\Delta} \le \left( {T - k + 1} \right) \times \frac{{{C_z}}}{T} $k即为该块的实际复杂度等级,最优预测采样值为$ {x_{\sigma \left( {k + 1} \right)}}与 {x_{\sigma \left( {n - k} \right)}} $,其中,k∈[1,T]。通过$ {x_{\sigma \left( {k + 1} \right)}} $来预测比其小的所有采样值$ \left\{ {{x_{\sigma \left( 1 \right)}}, {x_{\sigma \left( 2 \right)}}, \cdots , {x_{\sigma \left( k \right)}}} \right\} $,通过$ {x_{\sigma \left( {n - k} \right)}} $来预测比其大的所有采样值$\left\{ {{x_{\sigma \left( {n - k + 1} \right)}}, {x_{\sigma \left( {n - k + 2} \right)}}, \cdots , {x_{\sigma \left( n \right)}}} \right\} $。当T确定时,$ \left\{ {{x_{\sigma \left( {T + 2} \right)}}, {x_{\sigma \left( {T + 3} \right)}}, \cdots , {x_{\sigma \left( {n - T - 1} \right)}}} \right\} $在嵌密前后保持不变,将其记作xin。最后,将2.1节的xpxqxin相结合以计算采样块的复杂度:

$ \mathit{\Delta} = \sqrt {\frac{{{{({x_p} - \mu )}^2} + {{({x_q} - \mu )}^2} + {{({x_{{\rm{in}}}} - \mu )}^2}}}{{n - 2T}}} $ (14)

其中,μ表示xpxqxin的均值。

3 算法描述 3.1 嵌密算法

嵌密算法描述如下:

输入   长度为N的音频载体S,长度为h的密信比特

输出   一段含密音频S'

步骤1  对音频载体S={x1x2,…,xN}按照大小为n进行分块,得到采样块$ {S_i} = \left\{ {{x_{i + n \cdot \left( {i - 1} \right) + 1}}, {x_{i + n \cdot \left( {i - 1} \right) + 2}}, \cdots , {x_{i + n \cdot i}}} \right\} $,其中,$ {x_{i + n \cdot \left( {i - 1} \right)}}、{x_{i + n \cdot i + 1}} $分别表示与子块Si相邻的前一个采样值、后一个采样值,$ 1 \le i \le \left\lfloor {\frac{{N - 1}}{{n + 1}}} \right\rfloor $

步骤2  依次遍历所有采样块,对当前子块的采样值按照升序排列,得到有序的采样块$ {X_i} = \left\{ {{x_{\sigma \left( 1 \right)}}, {x_{\sigma \left( 2 \right)}}, \cdots , {x_{\sigma \left( n \right)}}} \right\} $,其中,$ {x_{\sigma \left( 1 \right)}} \le {x_{\sigma \left( 2 \right)}} \le \cdots \le {x_{\sigma \left( n \right)}}, \sigma \left( i \right) $表示xσ(i)在原始采样块Si中的位置。

步骤3  通过给定的复杂度等级T,得到子块内部用于计算复杂度的采样值$,将其与步骤1得到的$ {x_{i + n \cdot \left( {i - 1} \right)}}、{x_{i + n \cdot i + 1}} $相结合,通过式(14)来计算Si的复杂度Δ

步骤4  利用预先设定的复杂度阈值Cz对当前子块Si进行判断,如果Δ>Cz,说明当前子块Si属于复杂块,不做任何操作并将该采样块的采样值按照原始顺序放回S中,然后转到步骤2;如果ΔCz,说明该块属于平滑块,进入步骤5。

步骤5  由2.2节得到最优预测采样值$ {x_{\sigma \left( {k + 1} \right)}}与 {x_{\sigma \left( {n - k} \right)}} $,利用式(1)、式(9)来预测$ \left\{ {{x_{\sigma \left( 1 \right)}}, {x_{\sigma \left( 2 \right)}}, \cdots , {x_{\sigma \left( k \right)}}} \right\} $$ \left\{ {{x_{\sigma \left( {n - k + 1} \right)}}, {x_{\sigma \left( {n - k + 2} \right)}}, \cdots , {x_{\sigma \left( n \right)}}} \right\} $,得到k个PEmink个PEmax,最后通过式(4)、式(8)将密信嵌入载体中。

步骤6  判断密信是否嵌入完毕,如果还有密信未嵌入,则转到步骤2;如果密信嵌入完毕,进入步骤7。

步骤7  嵌密结束,得到含密音频S'

3.2 辅助信息

在嵌密过程中,由于采样值发生了改变,因此可能会产生溢出问题。为了解决该问题,本文建立一个位置映射图LM来标记可能产生溢出的采样块。16 bit量化的音频采样值范围在[-32 768,32 767]之间,因此,如果当前块内有采样值等于-32 768或者32 767,则令LM(i)=1;反之,LM(i)=0。在嵌密结束后,将得到的位置映射表LM进行无损压缩得到Ls。实际上,当分块大小确定后,LM的大小也被唯一确定。将压缩后的位置图Ls与分块大小n、复杂度阈值Cz、密信长度h、辅助信息结束标志EG依次连接组合成辅助信息$ \mathcal{L} $,将$ \mathcal{L} $以LSB替换的方式嵌入音频的开头部分。同时,为了保证可逆,把被$ \mathcal{L} $替换的部分与密信一起嵌入载体中。辅助信息的各部分所占比特大小如表 1所示。

下载CSV 表 1 辅助信息各部分所占比特大小 Table 1 Bit size of each part of auxiliary information 
3.3 密信提取与载体恢复

在接收到含密音频后,根据辅助信息结束标志EG提取出开头部分的辅助信息,依次得到位置映射表Ls、分块大小n、密信长度h,再将Ls解压缩得到原始的LM。解密过程具体如下:

输入  含密音频S'

输出  原始音频S,长度为h的密信

步骤1  对含密音频载体S'按照大小为n进行分块,得到采样块${{S'}_i} = \left\{ {{{x'}_{i + n \cdot \left( {i - 1} \right) + 1}}, {{x'}_{i + n \cdot \left( {i - 1} \right) + 2}}, \cdots , {{x'}_{i + n \cdot i}}} \right\} $,其中,$ {{x'}_{i + n \cdot \left( {i - 1} \right)}}、{{x'}_{i + n \cdot i + 1}} $分别表示与子块S'1相邻的前一个采样值、后一个采样值,$ 1 \le i \le \left\lfloor {\frac{{N - 1}}{{n + 1}}} \right\rfloor $

步骤2  依次遍历所有采样块,对当前块S'i的采样值按照升序排列,得到有序的采样块$ {{X'}_i} = \left\{ {{{x'}_{\sigma \left( 1 \right)}}, {{x'}_{\sigma \left( 2 \right)}}, \cdots , {{x'}_{\sigma \left( n \right)}}} \right\} $,其中,${{x'}_{\sigma \left( 1 \right)}} \le {{x'}_{\sigma \left( 2 \right)}} \le \cdots \le {{x'}_{\sigma \left( n \right)}} $σ(i)表示$ {{x'}_{\sigma \left( i \right)}} $在原始采样块S'i中的位置。

步骤3  通过给定的复杂度等级T,得到采样块内部用于计算复杂度的采样值$ \left\{ {{{x'}_{\sigma \left( {T + 2} \right)}}, {{x'}_{\sigma \left( {T + 3} \right)}}, \cdots , {{x'}_{\sigma \left( {n - T - 1} \right)}}} \right\} $,将其与步骤1得到的$ {{x'}_{i + n \cdot \left( {i - 1} \right)}}、{{x'}_{i + n \cdot i + 1}} $相结合,通过式(14)来计算采样块S'i的复杂度Δ'。由于用于计算复杂度的采样值在嵌密前后保持不变,因此Δ=Δ',从而保证了在解密时不会发生差错。

步骤4  利用预先设定的复杂度阈值Cz对当前子块S'i进行判断。如果Δ'>Cz,说明当前子块S'i属于复杂块,不做任何操作并将该采样块的采样值按照原始顺序放回S'中,然后转到步骤2;如果Δ'Cz,说明该块属于平滑块,进入步骤5。

步骤5  由2.2节得到最优预测采样值$ {{x'}_{\sigma \left( {k + 1} \right)}}与 {{x'}_{\sigma \left( {n - k} \right)}} $,利用式(5)、式(11)来预测$ \left\{ {{{x'}_{\sigma \left( 1 \right)}}, {{x'}_{\sigma \left( 2 \right)}}, \cdots , {{x'}_{\sigma \left( k \right)}}} \right\} $$ \left\{ {{{x'}_{\sigma \left( {n - k + 1} \right)}}, {{x'}_{\sigma \left( {n - k + 2} \right)}}, \cdots , {{x'}_{\sigma \left( n \right)}}} \right\} $,得到k个PE'mink个PE'max,最后通过式(7)、式(13)提取密信,利用式(6)、式(12)恢复载体。

步骤6  判断密信是否提取完毕,如果提取完毕,则进入步骤7;否则,转到步骤2。

步骤7  解密结束,得到长度为h的密信。

在解密后,根据辅助信息结束标志EG,将提取出的密信分成2个部分,前一部分是原始载体头部的一段LSB序列,将其进行替换得到完整的原始载体,后一部分即为密信。

4 实验结果与分析 4.1 实验设置

分块大小直接影响算法的性能,本文将分块大小n设置为{3,4,…,11},选取信噪比(SNR)值最高的分块大小用作最终嵌密。实验采用的载体为公开的EBU-SQAM标准音频测试集[22],其包括70段长度不一的音频序列。其中,(1、2)为噪音信号,(3~7)为人工信号,(8~43)为单一乐器音乐,(44~48)为纯人声音乐,(49~54)为人的语音,(55~60)为独奏乐,(61~64)为声乐与管弦乐,(65~68)为管弦乐,(69、70)为流行音乐。采样率为44.1 kHz,量化位数为16 bit。

为了简化操作,统一将载体设置为单声道。密信是随机生成的0和1,共分为50 000 bit、100 000 bit 2种长度。对比算法采用音频领域较具代表性的DE[16]和PEE[18]2种算法,在Matlab R2018a仿真软件上进行实验。

4.2 评价指标

SNR与客观差异等级(ODG)常被用来评价隐写后的音频质量。SNR的单位是分贝(dB),其值越高,代表隐写后音频的失真越小、质量越高。SNR的计算公式为:

$ {\rm{SNR}} = 10{\rm{lg}}\left( {\frac{{\sum\limits_{n = 0}^{N - 1} {{x^2}\left( n \right)} }}{{\sum\limits_{n = 0}^{N - 1} {{{\left[ {\overline x \left( n \right) - x\left( n \right)} \right]}^2}} }}} \right) $ (15)

其中,x(n)表示含密音频,x(n)表示原始音频,N表示采样点个数。

ODG是一种音频质量客观评价指标,将参考信号和测试信号分别经过心理声学模型处理后,通过感知模型对参考信号与测试信号之间的声学特征差异进行综合评估,得到一个评价分数,即为ODG。ODG的取值范围一般在[-4, 0]之间,值越大表示音频的感知质量越高。

4.3 结果分析

隐写前后的音频波形在视觉上已无法分辨,原始音频波形如图 1所示,隐写后的波形(50 000 bit)如图 2所示,隐写前后音频波形的差值如图 3所示。

Download:
图 1 原始音频波形 Fig. 1 Original audio waveform
Download:
图 2 隐写后的音频波形 Fig. 2 Audio waveform after steganography
Download:
图 3 隐写前后音频波形的差值 Fig. 3 The difference of audio waveform before and after steganography

图 1图 2进行对比可以看出,隐写前后音频在波形图上没有明显变化。从图 3可以看出,本文方法对采样值的修改幅度在[-1, 1]之间,对载体的影响很小。为了进一步验证算法的优越性,将不同长度密信下的SNR值与ODG值进行对比,结果如表 2~表 5所示,其中,最优结果加粗表示。

下载CSV 表 2 密信长度为50 000 bit时的平均SNR值 Table 2 The average SNR value when the secret message length is 50 000 bit
下载CSV 表 3 密信长度为50 000 bit时的平均ODG值 Table 3 The average ODG value when the secret message length is 50 000 bit
下载CSV 表 4 密信长度为100 000 bit时的平均SNR值 Table 4 The average SNR value when the secret message length is 100 000 bit
下载CSV 表 5 密信长度为100 000 bit时的平均ODG值 Table 5 The average ODG value when the secret message length is 100 000 bit

表 2表 4可以看出,当密信长度为50 000 bit时,本文算法的平均SNR值相比DE算法、PEE算法分别提高了46.28 dB、6.62 dB;当密信长度增加到100 000 bit时,本文算法的平均SNR值相比DE算法、PEE算法分别提高了48.10 dB、6.20 dB。对于9种不同的音频,经过本文算法隐写后的SNR值都有了明显提高,验证了本文算法具有高保真的特性。

表 3表 5可以看出,当密信长度为50 000 bit时,本文算法的平均ODG值相比DE算法、PEE算法分别提高了0.479、0.002;当密信长度达到100 000 bit时,本文算法的平均ODG值相比DE算法、PEE算法分别提高了0.595、0.001。对于数据集中的9种音频,本文算法的ODG值均能保持一个良好的水平,并且整体上较对比算法有一定幅度的提高。

通过上述对SNR与ODG 2个指标的综合分析可以得出:本文算法能够很好地保证音频的感知质量,且对于不同种类的音频具有一定的普适性,在保真度上优于现有的DE算法、PEE算法。

5 结束语

DE、PEE等隐写算法将密信比特以二进制位扩展的方式嵌入到预测误差值中,对载体的修改幅度较大。为此,本文提出一种基于SVO的音频可逆信息隐写算法,该算法对采样值的修改幅度在[-1, 1]之间,具有高保真的特点。同时,本文算法引入采样块复杂度的概念,根据采样块的复杂度实现密信的自适应嵌入。实验结果表明,相对DE算法和PEE算法,该算法的SNR值和ODG值较高。在嵌密过程中,采样块的大小固定不变,这在一定程度上影响了算法的嵌密容量,因此,设计更合理的分块策略以提高嵌密容量将是下一步的研究方向。

参考文献
[1]
SHI Yunqing, LI Xiaolong, ZHANG Xinpeng, et al. Reversible data hiding:advances in the past two decades[J]. IEEE Access, 2016, 4: 3210-3237. DOI:10.1109/ACCESS.2016.2573308
[2]
SHI Y Q, ANSARI N, SU W, et al. Reversible data hiding[J]. IEEE Transactions on Circuits and Systems for Video Technology, 2006, 16(3): 354-362. DOI:10.1109/TCSVT.2006.869964
[3]
HOU Dongdong, ZHANG Weiming, LIU Jiayang, et al.Emerging applications of reversible data hiding[C]//Proceedings of the 2nd International Conference on Image and Graphics Processing.New York, USA: ACM Press, 2019: 105-109.
[4]
TIAN Jun. Reversible data embedding using a difference expansion[J]. IEEE Transactions on Circuits and Systems for Video Technology, 2003, 13(8): 890-896. DOI:10.1109/TCSVT.2003.815962
[5]
THODI D M, RODRIGUEZ J J. Expansion embedding techniques for reversible watermarking[J]. IEEE Transactions on Image Processing, 2007, 16(3): 721-730. DOI:10.1109/TIP.2006.891046
[6]
NEDELCU T, IORDACHE R, COLTUC D.Three stages prediction-error expansion reversible watermarking[C]//Proceedings of European Signal Processing Conference.Washington D.C., USA: IEEE Press, 2014: 2455-2459.
[7]
MEHTA J H, KELKAR V.Comparison of reversible watermarking using prediction error expansion and prediction error expansion considering region of interest for medical images[C]//Proceedings of International Conference for Convergence in Technology.Washington D.C., USA: IEEE Press, 2017: 766-770.
[8]
TSAI P, HU Y C, YEH H L. Reversible image hiding scheme using predictive coding and histogram shifting[J]. Signal Process, 2009, 89(6): 1129-1143. DOI:10.1016/j.sigpro.2008.12.017
[9]
OU Bo, ZHAO Yao. High capacity reversible data hiding based on multiple histograms modification[J]. IEEE Transactions on Circuits and Systems for Video Technology, 2020, 30(8): 2329-2342. DOI:10.1109/TCSVT.2019.2921812
[10]
LI Xiaolong, LI Jian, LI Bin, et al. High-fidelity reversible data hiding scheme based on pixel-value-ordering and prediction-error expansion[J]. Signal Processing, 2013, 93(1): 198-205. DOI:10.1016/j.sigpro.2012.07.025
[11]
PENG Fei, LI Xiaolong, YANG Bin. Improved PVO-based reversible data hiding[J]. Digital Signal Processing, 2014, 25: 255-265. DOI:10.1016/j.dsp.2013.11.002
[12]
WENG Shaowei, SHI Yunqing, HONG Wen, et al. Dynamic improved pixel value ordering reversible data hiding[J]. Information Sciences, 2019, 489: 136-154. DOI:10.1016/j.ins.2019.03.032
[13]
HE Wenguang, XIONG Gangqiang, WENG Shaowei, et al. Reversible data hiding using multi-pass pixel-value-ordering and pairwise prediction-error expansion[J]. Information Sciences, 2018, 467: 784-799. DOI:10.1016/j.ins.2018.04.088
[14]
WU Haorui, LI Xiaolong, ZHAO Yao, et al. Improved reversible data hiding based on PVO and adaptive pairwise embedding[J]. Real Time Image Processing, 2019, 16: 685-695. DOI:10.1007/s11554-019-00867-w
[15]
WANG Weiqing, YE Junyong, WANG Tongqing, et al. A high capacity reversible data hiding scheme based on right-left shift[J]. Signal Processing, 2018, 150: 102-115. DOI:10.1016/j.sigpro.2018.04.008
[16]
YAN Diqun, WANG Rangding. Audio lossless information hiding algorithm based on difference expansion[J]. Computer Engineering and Applications, 2008, 44(9): 98-100. (in Chinese)
严迪群, 王让定. 基于差值扩展的音频无损信息隐藏算法[J]. 计算机工程与应用, 2008, 44(9): 98-100. DOI:10.3778/j.issn.1002-8331.2008.09.029
[17]
WANG Fei, XIE Zhaoxin, CHEN Zuo.High capacity reversible watermarking for audio by histogram shifting and predicted error expansion[EB/OL].[2019-10-10].https://www.hindawi.com/journals/tswj/2014/656251/.
[18]
XIANG Shijun, LI Zihao.Reversible audio data hiding algorithm using noncausal prediction of alterable orders[EB/OL].[2019-10-10].https://asmp-eurasipjournals.springeropen.com/track/pdf/10.1186/s13636-017-0101-9.
[19]
BOBEICA A, DRAGOI I C, CACIULA I, et al.Capacity control for prediction error expansion based audio reversible data hiding[C]//Proceedings of International Conference on System Theory, Control and Computing.Washington D.C., USA: IEEE Press, 2018: 810-815.
[20]
NISHIMURA A.Reversible audio data hiding using linear prediction and error expansion[C]//Proceedings of International Conference on Intelligent Information Hiding and Multimedia Signal Processing.Washington D.C., USA: IEEE Press, 2011: 318-321.
[21]
CHOI K, PUN C, CHEN C L P. Application of a generalized difference expansion based reversible audio data hiding algorithm[J]. Multimedia Tools and Applications, 2013, 74: 1961-1982.
[22]
EBU committee: sound quality assessment material recordings for subjective tests[EB/OL].[2019-10-10].https://tech.ebu.ch/publications/sqamcd.