基于宏块复杂度的视频隐写方法、系统及装置与流程

文档序号:22335721发布日期:2020-09-25 18:08阅读:108来源:国知局
基于宏块复杂度的视频隐写方法、系统及装置与流程

本发明属于图像信息隐藏技术领域,具体涉及一种基于宏块复杂度的视频隐写方法、系统及装置。



背景技术:

基于运动矢量的视频隐写算法被广泛的研究,利用运动矢量作为隐写载体的思想由kutter等人提出,通过直接修改运动矢量实现了一种视频水印方法。2006年,xu等人通过在具有较大幅值的运动矢量分量的最低有效位进行嵌入信息。aly通过研究发现,基于运动矢量幅值的选择策略并不能保证更小的失真,因此设计了一种与宏块预测误差直接相关的选择策略,选择具有较高预测误差的宏块的运动矢量并在最低有效位进行信息嵌入。后来,cao等人使用湿纸编码对运动估计过程进行扰动,提升了算法的安全性。进一步的在2015年研究中发现,在编码器端修改后的运动矢量在解码器仍然可能具有局部最优性,在此基础上,引入stc(syndrome-trelliscodes)和湿纸编码对运动矢量进行修改,并非绝对的局部最优。为了保证运动矢量的局部最优性,zhang等人在2015年提出了一种局部最优保持算法,将同时满足局部最优性并与最优运动矢量奇偶性相反的候选运动矢量作为隐写后的运动矢量,由于替换后的运动矢量在搜索范围内可能不满足全局最优,残差增大会导致比特增长明显。

中国专利cn105704489a针对宏块复杂度进行衡量,但是其并不能够完整的刻画重建块相邻像素之间的差异,另外其阈值的选择方式存在一定的缺陷,可能导致不能完整嵌入秘密信息。

现有的基于运动矢量的隐写算法,修改运动矢量会可能导致重建块在解码端不满足局部最优性,从而被基于局部最优性隐藏的隐写分析手段所检测,从而暴露隐蔽通信事实的存在,算法的安全性将大打折扣,因此如何选择合适的运动矢量进行信息嵌入并保证重建块在解码端仍然能够较好的保持运动矢量的局部最优性,对隐写算法的安全性起着至关重要的作用。



技术实现要素:

为了解决现有技术中存在的问题,本发明提供一种基于宏块复杂度的视频隐写方法,通过选择合适的运动矢量作为隐写载体,使得隐写视频宏块的运动矢量在解码端仍然保持其局部最优性。

为了实现上述目的,本发明采用的技术方案是,基于宏块复杂度的视频隐写方法,包括隐写过程和提取过程;

s1,首先对视频进行正常压缩,计算重建块的复杂度并统计,根据嵌入秘密信息长度确定隐写载体的嵌入阈值γ;

s2,根据s1所得嵌入阈值γ,对宏块的运动矢量进行隐写,嵌入秘密信息,然后根据隐写的运动矢量对宏块进行重建,得到隐写帧

s3,循环遍历s2所得隐写帧的重建块,并根据宏块复杂度公式计算隐写帧的重建块的复杂度,然后与嵌入阈值γ比较,如果小于嵌入阈值γ,则可以从隐写宏块的运动矢量的水平分量和垂直分量的最低有效位提取s2所述秘密信息,如果大于等于嵌入阈值γ,则跳过当前宏块;

s4,发送方通过重复s2,直至所有待嵌信息嵌入完毕,得到隐写视频;接收端对接收的隐写视频重复s3即可提取出秘密信息。

s1中,嵌入阈值γ是根据嵌入秘密消息长度k动态确定的:第一次正常压缩计算重建块的复杂度并统计复杂度出现的频次ni,复杂度为0-γ′之间的宏块的个数;引入一个冗余参数λ,对重建块的运动矢量的两个分量都嵌入1比特信息,待嵌入信息k比特,嵌入阈值γ定义为满足嵌入要求的最小复杂度:

s2中,选择复杂度低的宏块作为隐写的载体,对于大小为m×n的宏块设m≥n且m,n∈{4k|k=1,2,4},将宏块继续分成n=m/n个大小为n×n的图像块,将宏块的归一化复杂度公式定义为:

其中,hi表示使用n×n大小矩阵的hilbert空间填充曲线对第i个n×n的图像块进行像素扫描得到的像素序列,相邻两个像素之间的差值小于等于255,表示图像块相邻像素的差值之和,最大值为(n×n-1)×255。

s2的过程具体如下:

s21循环遍历当前帧的每一个宏块bm×n进行正常的运动估计和补偿计算出重建块通过宏块复杂度公式计算其复杂度;

s22,将s21复杂度与s1所得嵌入阈值γ比较,如果低于嵌入阈值γ,则对其运动矢量的两个分量分别进行隐写,然后根据隐写的运动矢量重新补偿当前宏块得到隐写后的重建块判断隐写后的重建块的复杂度与嵌入阈值γ,如果其复杂度仍低于嵌入阈值,则成功嵌入2比特秘密信息,无论成功嵌入与否都将隐写后的重建块写入隐写帧如果其复杂度不低于嵌入阈值,则回退2比特秘密信息;

s23,重复s21和s22直至所有宏块遍历完成。

视频在进行编码压缩时将视频帧分割成特定大小的宏块,即当前块;

在帧间预测编码时,当前块在参考帧中进行运动估计,通过率失真函数选择出与当前块失真代价最小的相同大小的宏块作为参考块,并根据当前块和参考块位置关系计算出运动矢量;

通过运动估计获得参考块后,将当前块与参考块相减得到残差块,残差块经过dct变换、量化、反量化以及逆dct变换得到量化残差;量化残差与参考块相加即可得到当前块的重建块。

对宏块进行隐写时采用随机lsb匹配隐写方法,设运动矢量构成的隐写载体为c,ck∈c为待嵌入隐秘信息的运动矢量分量值,φ为需要嵌入的隐秘信息,φk∈φ是需要被嵌入到ck的隐秘信息比特,为0,1随机序列,l(ck)为lsb位函数,携密运动矢量分量根据下式确定:

一种视频隐写系统,包括视频压缩与统计模块、视频隐写模块以及视频提取模块,视频压缩与统计模块用于对视频进行正常压缩,计算重建块的复杂度并统计,根据嵌入秘密信息长度确定隐写载体的嵌入阈值,视频隐写模块用于对宏块的运动矢量进行隐写,再嵌入秘密信息,然后根据隐写的运动矢量对宏块进行重建,得到隐写帧;视频提取模块用于循环遍历视频隐写模块所得隐写帧的重建块,并根据宏块复杂度公式计算隐写帧的重建块的复杂度,然后与视频压缩与统计模块所得嵌入阈值比较,如果小于嵌入阈值,从隐写宏块的运动矢量的水平分量和垂直分量的最低有效位提取隐写帧中的秘密信息,如果大于等于嵌入阈值,则跳过当前宏块。

一种视频隐写装置,包括处理器、存储器以及通信模块,存储器与处理器通过i/o接口连接,处理器的输出接口连接通信模块的输入接口,存储器用于存储视频信息以及计算机程序,所述计算及程序在处理器中运行时能执行本发明所述基于宏块复杂度的视频隐写方法,通信模块用于传输视频信息。

与现有技术相比,本发明至少具有以下有益效果:

本发明提供的基于宏块复杂的隐写算法,能明显保持运动矢量的局部最优性,通过分析指出对平滑的宏块进行运动矢量修改更容易保持其局部最优性,本发明所述方法能够很好的抵抗隐写分析,保证算法的安全性,根据嵌入信息大小,可以动态的选择嵌入阈值的大小,算法信息提取简单,可以进行高效的信息提取,无需对视频进行完全解码,隐写算法产生的隐写视频在客观不可见性上具有良好的表现,几乎无法区分原始视频和隐写视频,隐写算法不会造成明显的视频码率增加;通过验证,本发明所述方法在视觉质量、比特率控制以及抗隐写分析上都具有明显的优势;相比于复杂度较低的视频,本发明所述方法对复杂度较高的视频进行隐写,在性能上有所降低,而在实际的隐写算法中,为了不产生失真和降低被检测的风险,嵌入率比较低,从这个角度来说,本发明所述方法具有比较理想的实用性。

进一步的,本发明通过形式化的分析基于运动矢量的隐写算法对于视频的影响,指出选择平滑的宏块作为隐写载体可以有效保持运动矢量的局部最优性,同时有利于控制隐写算法的比特率增长,而后采用hilbert曲线来定义宏块复杂度,使用随机lsb匹配方法修改宏块复杂小于嵌入阈值的运动矢量,尽量保持其统计特性。

附图说明

图1为视频帧间预测编码流程图。

图2为hilbert空间填充曲线。

图3为隐写前后图像对比。

图4为500kbps压缩下aoso接受测试者曲线。

图5为1000kbps压缩下aoso接受测试者曲线。

具体实施方式

下面结合附图对本发明进行详细阐述。

如图1所示,为视频进行帧间压缩的流程图,视频在进行被划分成大小相同的宏块,而后对每一个宏块进行遍历,编码器会在参考帧中对当前块进行最佳匹配搜索并根据当前块的位置和最佳匹配块的位置的相对关系得到运动矢量,将当前块和最佳匹配块对应像素相减得到残差块,经过dct变化和量化后同参考帧信息和运动矢量一同写入压缩视频流,为了后续帧参考,经过反量化和逆dct变化,同最佳匹配快进行重构得到重构块。通过上述步骤便完成一个宏块的编码压缩过程。本发明第一次对视频进行正常的压缩并根据嵌入信息长度确定其嵌入阈值,再第二次进行压缩,如果宏块的重建块复杂度低于嵌入阈值则对其运动矢量进行随机lsb匹配进行信息的嵌入,如果根据隐写后的运动矢量对当前宏块进行重建后得到的重建跨复杂度仍然低于阈值,则当前块的运动矢量成功嵌入秘密信息;反之嵌入信息回退2比特。

基于宏块复杂度的视频隐写方法,包括以下步骤:

s1,首先对视频进行正常压缩,计算重建块的复杂度并统计,根据嵌入秘密信息长度确定隐写载体的嵌入阈值γ;嵌入阈值γ是根据嵌入秘密消息长度k动态确定的:第一次正常压缩计算重建块的复杂度并统计复杂度出现的频次ni,复杂度为0-γ′之间的宏块的个数;引入一个冗余参数λ,对重建块的运动矢量的两个分量都嵌入1比特信息,待嵌入信息k比特,嵌入阈值γ定义为满足嵌入要求的最小复杂度:

s2,根据s1所得嵌入阈值γ,对宏块的运动矢量进行隐写,再嵌入秘密信息,然后根据隐写的运动矢量对宏块进行重建,得到隐写帧;选择复杂度低的宏块作为隐写的载体,对于大小为m×n的宏块设m≥n且m,n∈{4k|k=1,2,4},将宏块继续分成n=m/n个大小为n×n的图像块,将宏块的归一化复杂度公式定义为:

其中,hi表示使用n×n大小矩阵的hilbert空间填充曲线对第i个n×n的图像块进行像素扫描得到的像素序列,相邻两个像素之间的差值小于等于255,表示图像块相邻像素的差值之和,最大值为(n×n-1)×255;

s21循环遍历当前帧的每一个宏块bm×n进行正常的运动估计和补偿计算出重建块通过宏块复杂度公式计算其复杂度;

s22,将s21复杂度与s1所得嵌入阈值γ比较,如果低于嵌入阈值γ,则对其运动矢量的两个分量分别进行隐写,然后根据隐写的运动矢量重新补偿当前宏块得到隐写后的重建块判断隐写后的重建块的复杂度与嵌入阈值γ,如果其复杂度仍低于嵌入阈值,则成功嵌入2比特秘密信息,无论成功嵌入与否都将隐写后的重建块写入隐写帧如果其复杂度不低于嵌入阈值,则回退2比特秘密信息;

s3,循环遍历s2所得隐写帧的重建块,并根据宏块复杂度公式计算隐写帧的重建块的复杂度,然后与嵌入阈值γ比较,如果小于嵌入阈值γ,从隐写宏块的运动矢量的水平分量和垂直分量的最低有效位提取s2所述秘密信息,如果大于等于嵌入阈值γ,则跳过当前宏块;

s4,发送方通过重复s2,直至所有待嵌信息嵌入完毕,得到隐写视频;接收端对接收的隐写视频重复s3即可提取出秘密信息。

对宏块进行隐写时采用随机lsb匹配隐写方法,设运动矢量构成的隐写载体为c,ck∈c为待嵌入隐秘信息的运动矢量分量值,φ为需要嵌入的隐秘信息,φk∈φ是需要被嵌入到ck的隐秘信息比特,为0,1随机序列,l(ck)为lsb位函数,携密运动矢量分量根据下式确定:

其中重建块的复杂度度量具体为,以图2所示的hilbert曲线对重建块像素进行扫描得到其像素向量,定义前后像素差值之和的归一化值表示为宏块复杂度。根据hilbert曲线得到的像素向量包含了4个方向的相关位置关系,可以很好的衡量像素间的异同程度。

视频编码标准有h.26x和mpegx,其编码框架比较相似,都包含帧内预测、帧间预测、变换与量化以及熵编码,本发明基于运动矢量为隐写载体进行,在视频流中,预测帧通过存储宏块的运动矢量和残差消除视频的时间冗余,如图1所示。下面给出相关概念和符号。

当前块视频在进行编码压缩时将视频帧分割成特定大小的宏块,记作bm×n={bi,j|0≤i<m,0≤j<n},是一个由m×n个像素组成的矩阵,m和n分别代表像当前块的像素宽和高。

参考块在帧间预测编码时,当前块bm×n在参考帧中进行运动估计,通过率失真函数选择出与当前块失真代价最小的相同大小的宏块作为参考块,记作并根据当前块和参考块位置关系计算出运动矢量(h,v)。

残差块通过运动估计获得参考块后,将当前块与参考块相减得到残差块,记作

量化残差残差块经过dct变换、量化、反量化、逆dct变换得到量化残差,记作

重构块量化残差与参考块相加即可得到当前块的重建块,记作由于量化和dct变换是有损压缩过程,得到的重建块一定程度上和当前块存在失真,称之为视频压缩失真,失真大小与量化系数和运动估计直接相关,重构块的重构过程可描述为下式:

本发明还提供一种视频隐写系统,包括视频压缩与统计模块、视频隐写模块以及视频提取模块,视频压缩与统计模块用于对视频进行正常压缩,计算重建块的复杂度并统计,根据嵌入秘密信息长度确定隐写载体的嵌入阈值,视频隐写模块用于对宏块的运动矢量进行隐写,再嵌入秘密信息,然后根据隐写的运动矢量对宏块进行重建,得到隐写帧;视频提取模块用于循环遍历视频隐写模块所得隐写帧的重建块,并根据宏块复杂度公式计算隐写帧的重建块的复杂度,然后与视频压缩与统计模块所得嵌入阈值比较,如果小于嵌入阈值,从隐写宏块的运动矢量的水平分量和垂直分量的最低有效位提取隐写帧中的秘密信息,如果大于等于嵌入阈值γ,则跳过当前宏块。

本发明提供一种视频隐写装置,包括处理器、存储器以及通信模块,存储器与处理器通过i/o接口连接,处理器的输出接口连接通信模块的输入接口,存储器用于存储视频信息以及计算机程序,所述计算及程序在处理器中运行时能执行本发明所述基于宏块复杂度的视频隐写方法,通信模块用于传输视频信息。

本发明基于xvid-1.3.2编解码mpeg-4视频进行实验验证和对比,预测帧宏块大小统一设置成16×16,对运动矢量进行信息嵌入,实验样本使用34段标准的yuvcif格式的视频序列。所有视频序列的第一帧为i帧,其余为p帧,默认编码比特率为1000kbps,以1/2像素精度进行运动估计,与4种基于运动矢量隐写的算法进行实验对比,包括xu、aly、cao以及amc。使用局部最优性特征aoso和相关性特征wang进行隐写分析实验。嵌入率er使用cmvr(corruptedmvratio,损坏的运动矢量比率)表示。

将复杂度低的宏块作为隐写载体有利于保持较高的视觉质量,选择出不同复杂度的视频进行不可见性测试,包括四个测试视频序列(highway、bridge、walk、husky)在嵌入率为0.5进行隐写,图3给出了四个视频序列的第90帧的隐写前后图像对比,隐写后的图像和原始图像难以区分,对于高复杂度视频husky而言,右下角水印发生了细微的变化,分析指出对平滑的宏块进行隐写理论上能够更好的保持运动矢量局部最优性;整体来看,隐写算法满足主观上的不可见性要求;

除了主观评价,表1给出了客观评价指标峰值信噪比psnr(peaksignaltonoiseratio)和结构相似性ssim(structuralsimilarity)对于隐写视频的评价结果,定义如下两个表达式:

其中max为图像的最大值255,mse(x,y)为图像x和y的均方误差,图像大小为h×w,则μx、σx和μy、σy分别为图像的均值和方差,σxy为协方差,c1和c2为常数。

表1中的测试序列平均复杂度依次为0.01438、0.01458、0.02633、0.08476,cmvr=0.5。对比算法和本发明所述方法都对psnr和ssim都产生了不同程度的影响,都有所下降。对复杂度不同的序列产生的影响有明显的区别,xu和aly影响最为明显,平均psnr分别下降0.31~0.95db、0.44~1.12db,平均ssim下降0.002~0.024、0.003~0.026。本发明所述方法对于复杂度低的视频,不论是psnr还是ssim指标上都优于对比算法,对于ssim的改变仅仅为0~0.002,psnr改变仅为0.008~0.16db。在复杂的视频中,psnr和ssim仅仅下降0.33db和0.011,远好于xu和aly。总体来看,无论是psnr还是ssim指标,本发明所述方法都能够取得很好的性能,对视频视觉质量几乎未造成失真。

表1

改变运动矢量会间接的改变残差块的能量,导致需要更多的比特来表示残差块,基于运动矢量的视频隐写通常会改变压缩视频的比特率,为了验证选择平滑的宏块进行运动矢量隐写会带来更小的比特增长,对隐写视频的比特率变化进行了评估,表2给出了不同算法在嵌入率cmvr=0.2条件下的比特率变化情况。对于平滑的视频序列,本发明所述方法比特增长控制在0.18%~0.47%,相比于xu和aly有显著的提高。相比于cao等人的算法,亦有所提升。可以看出,cao在对bridge进行隐写时,比特增长为3.94%;本发明所述方法和amc在比特率控制方面具有同等优势,对于纹理复杂的视频序列husky而言,在低嵌入率下比特率反而有所下降,其原因在于通过式衡量宏块复杂度更加准确,因此,出现了比特率降低的现象,总体说来,本发明所述方法在比特率控制上同样具有一定的优势。

表2

本发明进行了大量的隐写分析验证,通过在不同比特率br={500kbps、1000kbps}和不同嵌入率cmvr={0.1,0.2}对视频进行隐写,使用两种隐写分析特征对视频进行特征提取后进行分类,提取特征包括aoso局部最优性特征和wang相关性特征,使用libsvm工具箱对提取的特征进行分类,使用gaussian核对每一种比特率和嵌入率都进行单独的训练,随机选取17段cover视频和对应的stego视频特征进行训练,其余的17段cover视频和stego视频的特征用于测试。为了丰富训练的样本,将所有的cover视频的特征和stego视频的特征都用于训练分类。

如图4所示,aoso特征和wang特征的接收者操作特征曲线(receiveroperatingcharacteristiccurve,roc曲线)。横纵坐标代表伪阳率(falsepositiverate)和真阳率(truepositiverate)。彩色曲线偏离灰色曲线程度越大代表隐写后的视频更容易被检测,隐写算法抗隐写分析能力越弱。越接近灰色曲线表示隐写分析特征对隐写算法的检测精度越低。从roc曲线可以看出,固定比特率下对于同一种隐写分析特征,嵌入率越高隐写分析效果越好。可以看出,对于隐写分析局部最优性特征aoso而言,本发明所述方法的抗隐写分析能力最好,在比特率为500kbps和cmvr=0.1下,roc曲线靠近灰色曲线,具有很好的抗隐写分析效果。对于相关性特征wang而言,本发明所述方法和cao所述方法相当,略次于amc隐写算法。图5为1000kbps压缩下aoso接受测试者曲线,本文的方法仍然相比于对比方法具有更好的抗隐写分析性能。

为了定量刻画算法的抗隐写分析能力,表3给出了roc曲线下方的面积(areaunderthecurveofroc,aucroc)。auc值越大,代表隐写分析的准确率越高;从表格中可以看出,本发明所述方法抵抗aoso隐写特征分析的能力相比对比算法最优。cao抵抗wang隐写分析特征的能力最优,而本发明所述方法略次于cao算法,和amc持平。总的来看,无论是局部最优性特征还是相关性特征,本发明所述方法具有较好的抗隐写分析能力。

表3

为了保持运动矢量的局部最优性,本发明通过分析指出对平滑的宏块进行运动矢量修改更容易保持其局部最优性,通过引入hilbert曲线定义宏块复杂度,通过形式化的分析基于运动矢量的隐写算法对于视频的影响,指出选择平滑的宏块作为隐写载体可以有效保持运动矢量的局部最优性,同时有利于控制隐写算法的比特率增长,对满足复杂度阈值的运动矢量进行随机lsb匹配修改,尽量保持其统计特性,嵌入提取算法简单,通过实验对比,本发明所述方法能够很好的抵抗隐写分析,除此在外在比特率控制和视觉质量上也具有明显优势;视频编码和基于运动矢量的隐写算法,分析指出对平滑的宏块进行隐写理论上能够更好的保持运动矢量局部最优性;整体来看,隐写算法满足主观上的不可见性要求;比于复杂度较低的视频,本发明所述方法对复杂度较高的视频进行隐写,在性能上有所降低。而在实际的隐写算法中,为了不产生失真和降低被检测的风险,嵌入率比较低,从这个角度来说,本发明所述方法具有较好的实用性。在后续的工作中,将引入隐写编码wpc和stc来进一步提高算法的安全性和抗隐写分析能力,同时研究更好的策略保证运动矢量的相邻相关性。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1