[0047] 下面结合附图,对本发明提出的方案的具体实施方案作进一步详细描述。
[0048] 如图1所示,在本发明的一个较佳实施例中,提供了一种基于多元线性回归的SMVQ压缩数据隐藏方法,其具体步骤如下:
[0049] S1:把作为训练集的若干张灰度图分别分割成p×q大小的不重叠的像素块,根据LBG算法得到大小为N的VQ编码簿,同时以每个像素块第一行和第一列的p+q‑1个边缘像素为自变量,其他p×q‑(p+q‑1)个像素为因变量,通过多元回归计算出每一个因变量关于其余p+q‑1个自变量的关系矩阵B。
[0050] 为了便于叙述,本发明中定义像素块中的像素序号从1开始,从上到下、从左往右递增,即第一行像素的序号依次为1,2,…q,第二行像素的序号依次为q+1,q+2,…,2q,……,最后一行像素的序号依次为(p‑1)×q+1,(p‑1)×q+2,…p×q。
[0051] 本步骤中关系矩阵B计算方法下:
[0052] y1=b0+b1x11+b2x12+…+bnx1n
[0053] y2=b0+b1x21+b2x22+…+bnx2n
[0054]
[0055] ym=b0+b1xm1+b2xm2+…+bnxmn
[0056]
[0057] Y=XB
[0058] B=(X‑1X)‑1X‑1Y
[0059] 其中:m是分割成的像素块总数;xij是第i个像素块中第j个自变量位置的像素值,n=p+q‑1;bi是回归方程中第j个自变量的系数。本实施例中,设置p×q=4×4,因此,j=1,2,3,4,5,9,13。yi表示第i个像素块中需要计算关系矩阵的位置的像素值,不同位置的像素具有不同的关系矩阵。比如我们要计算像素块中第6个位置的像素的关系矩阵B6,那么yi就是训练集中第i个像素块第6个位置的像素。
[0060] S2:将待嵌入秘密数据的原始灰度图像A分割成p×q大小的不重叠的像素块。本实施例中,设置p×q=4×4。
[0061] S3:根据SMVQ压缩编码得到图像A的第一行和第一列的像素块的编码和其余像素块At的边缘像素,再基于每个像素块At的p+q‑1个边缘像素,通过所述关系矩阵B预测出像素块At中其他p×q‑(p+q‑1)个位置的像素值。
[0062] 本步骤中,如图2所示,当前像素块记为At,L表示当前像素块At左边的像素块,U表示当前像素块At上方的像素块。此时L和U中的像素值是已知的,因此可以直接得出任一像素块At的p+q‑1个边缘像素。对于4×4的像素块而言,具体计算方法如下:
[0063]
[0064] 其中:xi表示当前像素块At中第i个像素值,Li表示当前像素块At左边的像素块中第i个像素值,Ui表示当前像素块At上方的像素块中第i个像素值。
[0065] 需注意的是,预测每个像素yi所采用的关系矩阵B均为S1中针对同一位置像素回归得到的关系矩阵B,呈一一对应关系。比如我们要预测像素块中第6个位置的像素,那么就需要采用对应的关系矩阵B6。
[0066] 针对图像A中的每个像素块At,按照从左到右、从上到下的像素块扫描顺序,分别对每个像素块执行S4~S5,进行秘密信息嵌入。所谓从上到下,从左到右,其含义是对于剩余的像素块,从最左侧一列块开始,从上到下依次选择最上方的像素块进行信息嵌入,当该列的所有块处理完毕后,选择左侧第二列像素块进行信息嵌入,依次进行。步骤S4~S5的信息嵌入过程如下:
[0067] S4:用第t块像素块At预测出的像素和它的边缘像素组成的向量X作为SCB的第一个项目,再用该向量X在所述VQ编码簿中寻找M‑1个距离最近的码字一并作为SCB的项目,构成具有M个项目的SCB。
[0068] 本步骤中,向量X与VQ编码簿中码字的距离D计算公式如下:
[0069]
[0070] 其中:X=(x′1,x′2,…,x′k)表示向量,Y′={Y′1,Y′2,…,Y′M}是VQ编码簿;VQ编码簿中的第l个码字表示为Y′l=(Y′l1,Y′l2,…,Y′lk),k=p×q。
[0071] S5:对SCB中的每个项目,分别计算其与像素块At的真实像素之间的距离d,本步骤中距离d计算公式如下:
[0072]
[0073] 其中:x=(x1,x2,…,xk)是像素块At的真实像素,xv表示像素块At中的第v个像素值,Y={Y1,Y2,…,YM}表示含有M个项目的SCB;SCB中的第l个项目表示为Yl=(Yl1,Yl2,…,Ylk),k=p×q。
[0074] 本实施例中,设置N=128,256,512和1024,M=16。
[0075] 当获得距离d后,将其与预设的阈值T进行对比,根据对比结果执行如下操作:
[0076] 如果SCB中存在一个项目与像素块At的真实像素之间的距离d≤T,则该像素块不出轨。若像素块不出轨则继续判断如下:若SCB的所有项目中,距离d最小的是SCB的第一个项目,则不用任何索引值来代表At,在索引表SITable中该像素块位置直接嵌入log2N bit的秘密数据,设定像素标记Flag(t)=10;若SCB的所有项目中,距离d最小的是SCB中的一个码字,则在索引表SITable中该像素块位置使用该码字的索引值来代表At,并在索引值后连接(log2N‑log2M)bit的秘密数据,设定像素标记Flag(t)=11。
[0077] 如果SCB中不存在一个项目和像素块的真实像素之间的距离d>T,则该像素块出轨,在索引表SITable中该像素块位置采用VQ算法的编码,不进行秘密数据的嵌入,并设定像素标记Flag(t)=00。
[0078] 当N=256,M=16时嵌入过程的流程图如图3所示,一般采用高四位存放索引值。当前像素块编码完成后,按光栅扫描顺序读取下一个像素块并进行上述隐藏过程直至所有索引处理完毕。
[0079] S6:遍历完图像A中的每个像素块At后,将个像素块的像素标记Flag(t)按序组成标识图Flag,将Flag和索引表SITable一并发送给接收端。
[0080] 根据S5的步骤可知,在索引表SITable中,其索引值与标识图Flag一一对应:
[0081] 若像素块的Flag(t)=00,则索引表SITable中该像素块对应的编码结果为VQ索引;
[0082] 若像素块的Flag(t)=10,则索引表SITable中该像素块对应的编码结果为log2N bit秘密信息;
[0083] 若像素块的Flag(t)=11,则索引表SITable中该像素块对应的编码结果为码字的索引值‖(log2N‑log2M)bit秘密信息,其中“‖”表示连接符。
[0084] S7:当接收端收到发送端发送的标识图Flag和索引表SITable后,根据Flag(t)的值,按照前述S5中的信息嵌入规则依次提取索引表SITable中嵌入的秘密信息,将各像素块中嵌入的秘密信息按序拼接后,即可得到嵌入的完整秘密信息后。然后,再基于标识图Flag和索引表SITable,结合VQ编码簿即可还原出图像A。具体的还原过程与现有技术类似,不再赘述。
[0085] 由此可见,本发明提出了一种基于多元线性回归的SMVQ压缩数据隐藏方法,在该方法中本发明使用边匹配向量量化(SMVQ)算法得到各像素块的边缘像素,然后利用像素之间的相关性用多元线性回归预测出像素块中的其他像素,然后使用像素块中的所有像素匹配M‑1个码字构建状态码本SCB。在不出轨的情况下,如果线性回归预测出的像素比较接近真实像素,那么该像素块就可以不使用索引值来表示;否则就和SMVQ算法的规则一致。如果像素块出轨,则匹配与像素块最相近的主码本的码字,用VQ索引来替代该像素块。对于每个像素块,所提出的方案把多元线性回归算法和SMVQ算法相结合,从而能够更加精确的匹配码字或者直接得到更接近真实像素的预测值。
[0086] 为了进一步展示本发明的技术效果,下面给出上述方法在实际案例中的具体应用结果。
[0087] 实施例
[0088] 本实施例基于上述方法进行实验,具体实施步骤如上所述,不再赘述。下面仅展示实验结果。在所有实验中,本发明使用图4中的9张灰度图作为测试图像,大小为512×512。为了评估所提出方案的性能,本发明比较了所提方案与相关作品的比特率(BR),嵌入率(ER),嵌入效率(EE)和峰值信噪比(PSNR)。
[0089] 阈值T的数值对于所提出方案的性能有着极大的影响。阈值T最佳的取值会使得恢复图像具有最大的PSNR(码本大小为N=1024的除外)。当码本大小为N=1024时,本发明选择在一定BR的前提下具有最大的PSNR的T值作为最佳的取值。表1显示了图4中测试图像的最佳阈值T的取值,其码本大小为N=128、256、512和1024。因为每个图像中的像素信息是不同的,所以每个测试图像的最佳阈值T也会有所不同。为了方便本发明的实验,我们发现当N=128、256、512和1024,T=2000、800、400和800时,本发明可以使得大多数图像获得最佳的PSNR。
[0090] 表1:图4中各个测试图像的最佳阈值T
[0091]
[0092] 表2、3、4和5比较了本方案和相关工作的所有码本大小的PBR。PBR计算公式为(|CS|‑|S|)/(H×W),即没有嵌入任何秘密信息时的压缩率。当VQ主码本大小为N=128、256、512和1024时,对于最佳阈值T=2000、800、400和800,提出的方案的PBR分别是0.251、0.307、0.376和0.374bpp。这些数据低于相关作品的PBR。因此,本发明得出的结论是,由于该方法的平均PBR最低,而最佳阈值T的选择集中在PSNR上,因此该方案可以在保持一定图像质量的同时提高图像的压缩性能。
[0093] 表2:当N=128时各个方案的PBRs
[0094]
[0095] 表3:当N=256时各个方案的PBRs
[0096]
[0097] 表4:当N=512时各个方案的PBRs
[0098]
[0099] 表5:当N=1024时各个方案的PBRs
[0100]
[0101] 由于本发明阈值T最佳的取值会使得恢复图像具有最大的PSNR(码本大小为N=1024的除外),而不是生成最低的PBR。所以图5比较了当主码本大小N=256,SCB大小M=16时,图4的测试图像在不同阈值T下的PSNR和PBR。实验结果表明,当阈值T小于最佳阈值T时,图像的PSNR会随着T的变大而有所增加,在最佳阈值T处达到最大值,接着当阈值T大于最佳阈值T时,图像的PSNR反而会随着T的变大而降低;而图像的PBR则是随着T的变大而降低。由此本发明可以得出结论,当本发明以牺牲一些PSNR为代价,所提出的方案能够进一步提高图像的压缩性能。
[0102] 为了更好地与相关工作形成对比,本发明比较了当嵌入的秘密信息量分别为5000,10000,15000,20000比特时,本发明的方案与其他方案的压缩率。也就是说,如果提议的方案可以在隐藏与相关工作相同数量的秘密比特的同时还保持较低的BR,那么就说明所提的方案比其他方法具有更好的嵌入能力。即,对于相同的ER,所提出的方案还可以嵌入比相关工作更多的秘密比特。图6和图7比较了在具有相同ER的条件下,所提议方案和相关工作的平均BR和EE。其中现有技术中的相关工作具体做法参见如下文献:
[0103] [13]Lin,C.‑C.,Liu,X.‑L.,&Yuan,S.‑M.(2015).Reversible data hiding for VQ‑compressed images based on search‑order coding and state‑codebook mapping.Information Sciences,293,314–326.https://doi.org/10.1016/j.ins.2014.08.057
[0104] [15]Wang,L.,Pan,Z.,&Zhu,R.(2017a).A novel reversible data hiding scheme by introducing current state codebook and prediction strategy for joint neighboring coding.Multimedia Tools and Applications,76(24),26153–26176.https://doi.org/10.1007/s11042‑016‑4000‑3
[0105] [16]Wang,L.,Pan,Z.,&Zhu,R.(2017b).Anovel reversible data hiding scheme using SMVQ prediction index and multi‑layer embedding.Multimedia Tools and Applications,76(24),26225–26248.https://doi.org/10.1007/s11042‑016‑4108‑5[0106] 结果表明,所提出的方案具有比相关作品更低的平均BR和更高的EE。把这些观察结果与图5的结果相结合,本发明可以得出结论,本发明的方案提高了相关作品的嵌入能力,如果愿意牺牲一些PSNR的话,提出的方案还能获得更高的嵌入能力。
[0107] 以上所述的实施例只是本发明的一种较佳的方案,然其并非用以限制本发明。有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型。因此凡采取等同替换或等效变换的方式所获得的技术方案,均落在本发明的保护范围内。