一种音频可逆隐写方法、秘密信息提取及载体音频恢复方法
技术领域
本发明涉及音频隐写领域,特别涉及一种音频可逆隐写方法、秘密信息提取及载体音频恢复方法。
背景技术
信息隐藏是一种利用人的感知冗余特性,将秘密信息嵌入数字媒体中实现秘密通信的技术。常见的信息隐藏技术有LSB、F5、STC等,然而这些方法对载体的修改是不可逆的,这在一些重要场景中是不被允许的,例如军事、医疗等。为了保护原始载体的完整性,可逆信息隐藏(reversible data hiding,RDH)技术被提出。除了用于保密通信外,可逆信息隐藏技术还能用于生成可逆对抗样本、可逆视觉转换以及可逆图像处理等领域。
目前现有的可逆信息隐藏技术主要分为四类:差值扩展(difference expansion,DE),直方图平移(histogramshifting,HS),像素值排序(pixel value ordering,PVO)以及双图像(dual-image)。Tian等人最早提出DE方法,对两个相邻的像素值进行做差,将秘密信息通过扩展的方式嵌在差值中。这种方法实现简单,但是失真较大。Thodi等人在DE的基础上,提出利用预测误差来替代相邻像素的差值进行扩展嵌密,实验证明预测误差扩展(prediction error expansion,,PEE)相比于DE有着更低的失真,于是后面的许多工作都开始转向PEE。这些方法的本质都是借助差值、预测误差等进行扩展嵌密,对载体的修改较大,在失真表现上不如直方图移位(histograms shift,HS)的方法。Tsai把预测误差与HS相结合,在牺牲一部分嵌密容量的前提下有效地降低了失真。Ou等人又在Tsai的基础上利用多个直方图修改(multiple histograms modification,MHM)来进行嵌密,弥补了Tsai在嵌密容量上的不足。2013年,Li等人提出一种像素值排序(pixel value ordering,PVO)的可逆隐写框架。它将一副图像分成若干个固定大小的像素块,然后对像素块中的像素值进行排序,通过第二大(小)值来预测最大(小)值,最后将密信嵌入到预测误差值为“1”或“-1”的像素值当中。由于只对载体进行了轻微的修改,因此隐写后的载体具有高保真的特点。Peng等人在PVO的基础上提出改进的像素值排序(IPVO),增加预测误差“0”作为嵌密条件,有效提高了嵌密容量。
通过上述讨论不难发现,传统的单一载体可逆信息隐藏技术面临着嵌入容量低或失真大的问题。于是,Chang等人在2007年提出了一种双图像的RDH方法,该方法实现了大容量并保证了良好的图像质量。通过一个特殊设计的矩阵,将两个五进制的秘密数字分别嵌入到两个隐写图像中。他们的方案可以实现大约1bpp(bit per pixel,bpp)的嵌入率,并且提供了高质量的隐写图像,平均PSNR值为45dB。由于一个五进制数字可以表示二比特的秘密信息,而一个九进制的数字可以表示三比特的秘密信息。2013年,Chang等人用九进制的密信代替了五进制的密信,这使得嵌入率达到1.5bpp。同时,两张隐写图的质量保持在39dB左右。2015年,Qin等人提出了一种基于EMD(modified direction)的RDH方案,利用两张隐秘图实现高容量可逆数据隐藏。该算法的嵌入率略高于1bpp。然而,这两张隐写图像的质量是不对称的。
现有的双载体RDH方法都集中在图像领域,在实际应用场景中,两张相似的图像极易引起他人的怀疑。而音频具有双通道的自然特性,不会引起隐写分析者的注意,因此更适合应用于双载体RDH。但是目前并没有相关的研究工作,因此需要进一步改进。
发明内容
本发明所要解决的第一个技术问题是针对现有技术的现状,提供一种嵌密容量大且在相同的嵌入率下,具有较好的失真度和较好的音频质量的音频可逆隐写方法。
本发明所要解决的第二个技术问题是针对现有技术的现状,提供一种秘密信息提取方法,该方法能对采用上述音频可逆隐写方法生成的双声道音频中提取出秘密信息。
本发明所要解决的第三个技术问题是针对现有技术的现状,提供一种载体音频恢复方法,该方法能对采用上述音频可逆隐写方法生成的双声道音频中恢复出载体音频,
本发明解决上述第一个技术问题所采用的技术方案为:一种音频可逆隐写方法,其特征在于:用于将秘密信息嵌入到载体音频中,包括以下步骤:
步骤1、将载体音频的采样值大小转换至[0,2Q-1]之间,得到音频X,其中,X={x1,x2...,xN},x1为音频X中的第1个采样值,x2为音频X中的第2个采样值,xN为音频X中的第N个采样值,N为音频X中的采样值总个数;Q为音频X的量化位数;
步骤2、生成矩阵M,矩阵M中任一位置(i,j)上对应的数值M(i,j)的计算公式为:M(i,j)=(i+3*j)mod 9;
其中,i∈[0,2Q-1],j∈[0,2Q-1];mod为取余运算;
步骤3、将二进制的秘密信息转换成九进制的秘密信息D,并提取出九进制的秘密信息D中的每一位数值,D=D1D2...Dk,其中,D1为九进制的秘密信息D中的第一位数值,D2为九进制的秘密信息D中的第二位数值,Dk为九进制的秘密信息D中的第k位数值,k为九进制的秘密信息D中数值的总位数;
步骤4、依次将九进制的秘密信息D中的每一位数值嵌入到音频X的任意两个相邻的采样值中,并生成每一位秘密信息嵌入后得到的左声道音频和右声道音频中对应位置的采样值,其中,左声道音频和右声道音频的采样个数均为N;具体步骤为:
步骤4-1、从音频X中任意取出某两个相邻的采样值xq和xq+1,并以这两个采样值xq和xq+1生成第一位数值D1嵌入后得到左声道音频和右声道音频中第q个采样值和第q+1个采样值;其中,q∈[1,N-1];
其中,生成第一位数值D1嵌入后得到的左声道音频中对应位置的采样值方法为:判断矩阵M中的M(xq,xq+1)是否等于D1,如是,得到的左声道音频中第q个采样值和第q+1个采样值分别为xq和xq+1;如否,则在以M(xq,xq+1)为中心的3*3方格内寻找等于D1的M(a1,a2),且得到的左声道音频中第q个采样值和第q+1个采样值分别为a1和a2;
生成第一位数值D1嵌入后得到的右声道音频中对应位置的采样值方法为:计算c=((M(xq,xq+1)+D1)mod9),并在M(xq,xq+1)为中心的3*3方格内寻找等于c的M(h1,h2),则得到的右声道音频中第q个采样值和第q+1个采样值分别为h1和h2;
步骤4-2、在音频X中任意取出两个相邻的采样值xp和xp+1,其中,p≠q且p≠q+1,采用与步骤4-1中相同的方法,生成第e位数值De嵌入后得到左声道音频和右声道音频中第p个采样值和第p+1个采样值;其中,e∈[2,k];
步骤4-3、使用步骤4-2中相同的方法,依次生成每一位秘密信息嵌入后得到的左声道音频和右声道音频中对应位置的采样值;
步骤5、将音频X中未进行秘密信息嵌入的采样值作为左声道音频Yl中对应位置的采样值,并将其与步骤4中有秘密信息嵌入后生成的左声道音频中的采样值共同组成最终的左声道音频Yl;同样的,将音频X中未进行秘密信息嵌入的采样值作为右声道音频Yr中对应位置的采样值,并将其与步骤4中有秘密信息嵌入后生成的右声道音频中的采样值共同组成最终的右声道音频Yr;
步骤6、将步骤5中得到的左声道音频Yl和右声道音频Yr合并成为双声道音频Y,其中,Y=[Yl,Yr]。
本发明解决上述第二个技术问题所采用的技术方案为:一种秘密信息提取方法,其特征在于:用于从使用上述音频可逆隐写方法生成的双声道音频Y中提取出左声道音频Yl,并从左声道音频Yl提取出秘密信息,具体包括以下步骤:
步骤1、使用音频隐写方法中相同的矩阵M,从左声道音频Yl中提取出音频隐写方法中第一位秘密信息嵌入时选定的第q个采样值和第q+1个采样值,其采样值对应为x′q和x′q+1,则从左声道音频Yl提取出的第一位秘密信息D′1计算公式为:D′1=M(x′q,x′q+1);
步骤2、根据每一位秘密信息嵌入时选定的两相邻的采样值,并采用与步骤1中相同的方法,依次从左声道音频Yl中提取每一位秘密信息;
步骤3、将步骤2中提取出的每一位秘密信息按照从前往后的顺序依次组成秘密信息D′,其中D′=D′1D′2...D′k,D′2为从左声道音频Yl提取出的第二位秘密信息,D′k为从左声道音频Yl提取出的第k位秘密信息;
步骤4、将该秘密信息D′转换成二进制的秘密信息,该二进制的秘密信息即对应为原始秘密信息。
本发明解决上述第三个技术问题所采用的技术方案为:一种载体音频恢复方法,其特征在于:用于从使用上述音频可逆隐写方法生成的双声道音频Y中提取出右声道音频Yr,并从右声道音频Yr中恢复出载体音频,具体包括以下步骤:
步骤1、使用音频隐写方法中相同的矩阵M,并从右声道音频中Yr提取出音频隐写方法中第一位秘密信息嵌入时选定的第q个采样值和第q+1个采样值,其采样值对应为x″q和x″q+1,并计算d=M(x″q,x″q+1);
步骤2、判断步骤1中的d是否大于等于上述提取出的第一位秘密信息D′1,如是,则以该M(x″q,x″q+1)为中心的3*3方格内寻找等于d-D′1的M(b1,b2),则恢复出的音频X′中第q个采样值和第q+1个采样值分别为b1和b2;如否,则以该M(x″q,x″q+1)为中心的3*3方格内寻找等于d+9-D′1的M(c1,c2),则恢复出的音频X′中第q个采样值和第q+1个采样值分别为c1和c2;
步骤3、根据每一位秘密信息嵌入时选定的两相邻的采样值,并采用与步骤1和步骤2中相同的方法,依次从右声道音频Yr中恢复出音频X′中有秘密信息嵌入的采样值;
步骤4、将右声道音频Yr中未进行秘密信息嵌入的采样值作为音频X′中对应位置的采样值,并将步骤3中恢复出的有秘密信息嵌入的音频X′采样值共同组成音频X′;
步骤5、对音频X′的采样值范围进行转换,即得到载体音频。
与现有技术相比,本发明的优点在于:通过将二进制秘密信息转换成九进制的秘密信息,提高了秘密信息的嵌入容量,另外利用任意3*3的方格内都包含0到8之间的数字矩阵将九进制的秘密信息中的每一位数值嵌入到单通道音频中,生成左声道音频和右声道音频,并合并成为双通道音频,人耳无法区分原始的单声道音频和双声道音频,因此该方法的隐写性能更佳,且在相同的嵌入率下,该方法具有较低的失真度和较好的音频质量。
附图说明
图1为本发明实施例中音频可逆隐写方法、秘密信息提取及载体音频恢复方法的原理框图。
具体实施方式
以下结合附图实施例对本发明作进一步详细描述。
如图1所示,一种音频可逆隐写方法,用于将秘密信息嵌入到载体音频中,包括以下步骤:
步骤1、将载体音频的采样值大小转换至[0,2Q-1]之间,得到音频X,其中,X={x1,x2...,xN},x1为音频X中的第1个采样值,x2为音频X中的第2个采样值,xN为音频X中的第N个采样值,N为音频X中的采样值总个数;Q为音频X的量化位数;
步骤2、生成矩阵M,矩阵M中任一位置(i,j)上对应的数值M(i,j)的计算公式为:M(i,j)=(i+3*j)mod 9;
其中,i∈[0,2Q-1],j∈[0,2Q-1];mod为取余运算;
步骤3、将二进制的秘密信息转换成九进制的秘密信息D,并提取出九进制的秘密信息D中的每一位数值,D=D1D2...Dk,其中,D1为九进制的秘密信息D中的第一位数值,D2为九进制的秘密信息D中的第二位数值,Dk为九进制的秘密信息D中的第k位数值,k为九进制的秘密信息D中数值的总位数;
步骤4、依次将九进制的秘密信息D中的每一位数值嵌入到音频X的任意两个相邻的采样值中,并生成每一位秘密信息嵌入后得到的左声道音频和右声道音频中对应位置的采样值,其中,左声道音频和右声道音频的采样个数均为N;具体步骤为:
步骤4-1、从音频X中任意取出某两个相邻的采样值xq和xq+1,并以这两个采样值xq和xq+1生成第一位数值D1嵌入后得到左声道音频和右声道音频中第q个采样值和第q+1个采样值;其中,q∈[1,N-1];
其中,生成第一位数值D1嵌入后得到的左声道音频中对应位置的采样值方法为:判断矩阵M中的M(xq,xq+1)是否等于D1,如是,得到的左声道音频中第q个采样值和第q+1个采样值分别为xq和xq+1;如否,则在以M(xq,xq+1)为中心的3*3方格内寻找等于D1的M(a1,a2),且得到的左声道音频中第q个采样值和第q+1个采样值分别为a1和a2;
生成第一位数值D1嵌入后得到的右声道音频中对应位置的采样值方法为:计算c=((M(xq,xq+1)+D1)mod9),并在M(xq,xq+1)为中心的3*3方格内寻找等于c的M(h1,h2),则得到的右声道音频中第q个采样值和第q+1个采样值分别为h1和h2;
步骤4-2、在音频X中任意取出两个相邻的采样值xp和xp+1,其中,p≠q且p≠ q+1,采用与步骤4-1中相同的方法,生成第e位数值De嵌入后得到左声道音频和右声道音频中第p个采样值和第p+1个采样值;其中,e∈[2,k];
步骤4-3、使用步骤4-2中相同的方法,依次生成每一位秘密信息嵌入后得到的左声道音频和右声道音频中对应位置的采样值;
步骤5、将音频X中未进行秘密信息嵌入的采样值作为左声道音频Yl中对应位置的采样值,并将其与步骤4中有秘密信息嵌入后生成的左声道音频中的采样值共同组成最终的左声道音频Yl;同样的,将音频X中未进行秘密信息嵌入的采样值作为右声道音频Yr中对应位置的采样值,并将其与步骤4中有秘密信息嵌入后生成的右声道音频中的采样值共同组成最终的右声道音频Yr;
步骤6、将步骤5中得到的左声道音频Yl和右声道音频Yr合并成为双声道音频Y,其中,Y=[Yl,Yr]。
在每一位九进制的秘密信息嵌入过程中,以步骤4-1中为例进行说明,当矩阵M中的M(xq,xq+1)不等于D1时,则需要以M(xq,xq+1)为中心的3*3方格内寻找等于D1的M(a1,a2),此时为了能保证一定会出现以M(xq,xq+1)为中心的3*3方格,因此从音频X中任意取出某两个相邻的采样值xq和xq+1,该xq不能为0或2Q-1,xq+1也不能为0或2Q-1;因此在任一位秘密信息嵌入过程中选取的两个相邻的采样值均不能为0和2Q-1。
秘密信息提取方法作为上述音频可逆隐写方法的逆过程,在秘密信息提取过程中需要事先传递每一位秘密信息嵌入时选定的采样值位置以及音频隐写时使用的矩阵M,根据该采样值即可反向从生成的双声道音频中提取出秘密信息,具体方法如下:
一种秘密信息提取方法,用于从使用上述音频可逆隐写方法生成的双声道音频Y中提取出左声道音频Yl,并从左声道音频Yl提取出秘密信息,具体包括以下步骤:
步骤1、使用音频隐写方法中相同的矩阵M,从左声道音频Yl中提取出音频隐写方法中第一位秘密信息嵌入时选定的第q个采样值和第q+1个采样值,其采样值对应为x′q和x′q+1,则从左声道音频Yl提取出的第一位秘密信息D′1计算公式为:D′1=M(x′q,x′q+1);
步骤2、根据每一位秘密信息嵌入时选定的两相邻的采样值,并采用与步骤1中相同的方法,依次从左声道音频Yl中提取每一位秘密信息;
步骤3、将步骤2中提取出的每一位秘密信息按照从前往后的顺序依次组成秘密信息D′,其中D′=D′1D′2...D′k,D′2为从左声道音频Yl提取出的第二位秘密信息,D′k为从左声道音频Yl提取出的第k位秘密信息;
步骤4、将该秘密信息D′转换成二进制的秘密信息,该二进制的秘密信息即对应为原始秘密信息。
同样的,一种载体音频恢复方法,用于从使用上述音频可逆隐写方法生成的双声道音频Y中提取出右声道音频Yr,并从右声道音频Yr中恢复出载体音频,具体包括以下步骤:
步骤1、使用音频隐写方法中相同的矩阵M,从右声道音频中Yr提取出音频隐写方法中第一位秘密信息嵌入时选定的第q个采样值和第q+1个采样值,其采样值对应为x″q和x″q+1,并计算d=M(x″q,x″q+1);
步骤2、判断步骤1中的d是否大于等于上述方法中提取出的第一位秘密信息D′1,如是,则以该M(x″q,x″q+1)为中心的3*3方格内寻找等于d-D′1的M(b1,b2),则恢复出的音频X′中第q个采样值和第q+1个采样值分别为b1和b2;如否,则以该M(x″q,x″q+1)为中心的3*3方格内寻找等于d+9-D′1的M(c1,c2),则恢复出的音频X′中第q个采样值和第q+1个采样值分别为c1和c2;
步骤3、根据每一位秘密信息嵌入时选定的两相邻的采样值,并采用与步骤1和步骤2中相同的方法,依次从右声道音频Yr中恢复出音频X′中有秘密信息嵌入的采样值;
步骤4、将右声道音频Yr中未进行秘密信息嵌入的采样值作为音频X′中对应位置的采样值,并将步骤3中恢复出的有秘密信息嵌入的音频X′采样值共同组成音频X′;
步骤5、对音频X′的采样值范围进行转换,即得到载体音频。
由于上述秘密信息提取和载体音频恢复方法中均需要事先传递每一位秘密信息嵌入时选定的采样值位置,因此为了使该方法更加简单和更加方便操作,也可以采用以下方案:选取音频X中的x1和x2进行九进制的秘密信息D中的第一位数值嵌入,并选取音频X中的x3和x4进行九进制的秘密信息D中的第二位数值嵌入;选取音频X中的x5和x6进行九进制的秘密信息D中的第三位数值嵌入;依次采用接下来的采样值进行每一位秘密信息的嵌入,这种方法的秘密信息嵌入时使用的采样值位置为固定的,因此在秘密信息提取时则无需传递每一位秘密信息嵌入时选定的采样值位置。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。