2. 网络与信息安全武警部队重点实验室 陕西 西安 710086
2. Network and Information Security Key Laboratory of PAP, Xi′an 710086, China
不同于加密算法,隐写技术是将要隐藏的秘密信息通过公开的信道、载体进行传输,即便被截获也很难被攻击者发掘其中的秘密信息[1].作为较新的视频编码标准,H.264具有高压缩效率和传输可靠性.它还是网络上应用最广泛的压缩标准.许多视频网站的第一压缩方式就是H.264[2].帧内预测是H.264较以往压缩算法的最根本的不同之处,随着对压缩编码研究的逐渐深入,基于帧内预测修改的视频隐写算法已经取得了一定发展.文献[3]提出了一种有效的视频信息隐藏算法,由密钥确定嵌入位置模板,根据密文信息与帧内预测之间的嵌入规则达到隐蔽通信的目的,但测试序列之间的差异较大,所以算法不具有普适性.文献[4-5]在文献[3]的基础上通过结合矩阵编码技术,保证修改帧内预测模式时具有较高的嵌入效率.文献[6-7]提出了两种基于H.264帧内预测模式修改的视频信息隐藏算法,算法通过判断参考像素的亮度值来选择嵌入区域,然后对预测模式进行调制以实现秘密信息的嵌入.实验结果表明,信息可以进行盲提取,并且算法能很好地保持视频感知质量的同时对视频流的比特率影响较小,但选择嵌入区域的方法准确性较低.文献[8]基于HEVC的新技术,提出了一个方案嵌入隐藏信息的亮度块的预测模式.利用秘密信息本身作为密钥来选择嵌入位置,破坏了嵌入顺序,但算法的修改率很高.
本文提出一种有效高安全性的视频信息隐藏算法,可用于隐蔽通信.首先,将待嵌入视频流通过改进的局部二值模式计算方法判断其上的块是否可以用于嵌入,然后再判断待嵌入块的帧内预测模式,此时,将混沌序列处理后的秘密信息结合本文提出的修改规则,尽可能少地改变帧内预测模式以达到隐蔽通信的目的.
1 基础知识 1.1 帧内预测不同于以前的编码标准,H.264在帧间预测的基础上引入了一种新的预测模式:帧内预测.用编码后的宏块预测当前宏块的像素值,再对预测过程中产生的误差进行编码并作为最终数据.图 1为该4×4预测块示意图,字母a~p是需要进行预测的当前亮度块中的像素,字母A~M是已经编码且已重建的邻近像素,可用来预测[9-10].图 2表示了9种不同预测方向.
![]() |
图 1 编码块临近像素编号示意图 Figure 1 Diagram of current block and the adjacent pixel |
![]() |
图 2 9种不同预测方向 Figure 2 Nine different predictions |
Logistic映射是一个非线性的混沌方程式[11],映射为:
$ {x_{n + 1}} = \lambda \cdot {x_n} \cdot \left( {1{\rm{- }}{x_n}} \right){\rm{, }}\;0 < \lambda \le 4, {x_n} \in \left[{0, 1} \right]{\rm{, }} $ | (1) |
式中λ为分支参数.当λ确定后,任意初值x0∈[0, 1]都可以迭代出一个确定的序列x1, x2, …, xn, …,混沌系统随着λ的不同而呈现不同的特性,最终达到混沌状态.
一般的,隐藏的秘密信息均为二进制序列,为了保证映射后的混沌序列与秘密信息计算方便,本文将混沌序列通过下式变换成为二进制序列,
$ x\left( i \right) = \left\{ \begin{array}{l} 0, \;\;\;\;{x_i} < \alpha \cdot {x_{{\rm{avg}}}}\\ {\rm{1, }}\;\;\;\;{\rm{ }}{x_i} > \alpha \cdot {x_{{\rm{avg}}}} \end{array} \right., $ | (2) |
其中:
文献[12]在2002年提出了一种新的描述分块纹理特征的方法:局部二值模式(local binary pattern,LBP).LBP算法的主要思想就是比较像素值的大小,得到二进制码来反映局部纹理特征.如图 3所示,算法定义在3×3窗口中,将中心点的像素值与相邻8个像素值进行比较,将小于中心值像素的点标记为0,反之则标记为1.比较完毕后,以左上角值为起点,顺时针组成的8位二进制数的值即为LBP值,例中,LBP值为11000100.
![]() |
图 3 LBP算法示意图 Figure 3 The sketch of LBP method |
经过分析,上述LBP算法未能将块中全部的像素值利用,实际计算过程中,存在一定的差异,所以文献[8]将LBP算法进行改进,以保证像素利用值的最大化,此时产生8个LBP值,并求其均值,以此时得到的均值作为最终的LBP值.如图 4所示,对于一个4×4的亮度块来说,将3×3模板在4×4块内顺时针方向滑动,得到4个LBP值,计算其标准差值d为
$ d = \sqrt {\frac{1}{4}\sum\limits_{i = 0}^3 {{{(LB{P_i}-x)}^2}} } .\; $ | (3) |
![]() |
图 4 3×3模板在4×4亮度块中的滑动示意图 Figure 4 The flowing sketch of LBP method |
其中:LBPi为模板滑动到第i个3×3块时的LBP值;x为4个LBP值的均值.
通过式(3)可以得到LBP的标准差,根据分析,纹理较为复杂的地方标准差也较大.设置一个LBP标准差的阈值T,高于阈值T的区域即为纹理复杂度较高的区域,适于嵌入.
2.2 嵌入算法Step 1 对秘密信息进行预处理,得到秘密信息流M.本文先对秘密信息进行预处理,方法如下.
通过公式(2)将Logistics映射已经产生了大量的数字序列变换为二进制序列,并且为了保证密文随机的效果,本文选择500位以后的序列进行操作(500为任意取得数,为了保证混沌序列在此刻之后保持混沌状态,也可作为一个密钥).将秘密信息转化为二进制序列,进行如下操作,fi=mi⊕pi, 式中:mi为原始秘密信息;fi为处理后的序列;pi为对应的Logistics映射序列.此时,处理后的秘密信息具有安全性高、随机性高的特点.并将每两位秘密信息分为一组.
Step 2 遍历全部的视频I帧,通过改进的LBP算法选择帧内4×4分块,并记录其帧内预测方式.
Step 3 将每3个4×4分块分为一组,将其记录为C1,C2,C3.此时定义F1(x1),F1(x2),F1(x3)分别为C1,C2,C3的最优帧内预测模式,即当前的预测模式.若F1(x1)与F1(x2)奇偶性相同,则t1=0,否则,t1=1;若F1(x2)与F1(x3)奇偶性相同,则t2=0,否则,t2=1.
Step 4 嵌入秘密信息.每组内有两位秘密信息s1,s2,此时嵌入秘密信息时,只需建立对应的映射关系
![]() |
表 1 隐写修改规则表 Table 1 Embedding rules |
修改帧内预测模式公式为
$ sub\_mode = {\rm{arg}}\;[\mathop {{\rm{min}}}\limits_{{m_j}} J({m_j}, {\lambda _{MODE}})]{\rm{, }}{m_j} \in S, $ | (5) |
$ S = \{ IMODE\left| {IMODE{\rm{mod}}\;2 \ne cur\_mode{\rm{\;mod}}\;2\}, \;} \right. $ | (6) |
其中:sub_mode为替换的帧内预测模式;cur_mode为当前的帧内预测模式;J(·, ·)为Lagrangian率失真优化模型,公式为J(S, I|λ)=D(S, I)+λ×R(S, I).λ是Lagrangian率失真模型中的参数;D(S, I)与R(S, I)分别表示输出的码流失真度及比特率,码流为采用编码模式I对样本S进行编码时的输出[12].
Step 5 重复Step 4,直至秘密信息嵌入完毕.
2.3 提取算法Step 1 从传递的码流中恢复出视频序列,遍历视频序列的I帧,通过LBP算法选择出嵌入块,并记录其帧内预测方式.
Step 2 每3个4×4分块作为一组,并将其记录为C′1,C′2,C′3.此时定义F′1(x1),F′1(x2),F′1(x3)分别为C′1,C′2,C′3的当前预测模式.
Step 3 提取秘密信息,提取规则如表 2所示.
![]() |
表 2 提取规则表 Table 2 Extracting rules |
Step 4 重复Step 3,直至秘密信息提取完毕.
Step 5根据Logistics序列的初值以及λ产生随机序列,根据式(2)将其转化为二进制序列,并从500位以后作为本文的随机序列.然后,将Step 4提取的秘密信息与产生混沌序列进行异或处理,处理公式为mi=fi⊕pi,式中:mi为原始秘密信息;fi为Step 4提取出的秘密信息;pi为对应的logistics二进制序列.
3 实验结果及分析本文以X.264为实验平台,编程环境为MS VS 2008及Matlab 2012.实验计算机为Core i5处理器,内存为3.0 GB RAM.实验所用视频格式包括QCIF(176×144)的Grandma、Salesman、Soccer、Miss-america、Coastguard以及Carphone,以及CIF(352×288)的Stefan、Paris、Mobile、Foreman、News以及BigBuckBunny.视频序列每隔15帧编码一个I帧.
3.1 不可感知性分析 3.1.1 主观分析图 5对比了隐写前后对应帧亮度分量.由图 5可知,本文算法具有较好的视觉不可见性,从直观视觉上无法分辨隐写后对视频造成的影响,保证了隐写不可见性的实现.
![]() |
图 5 视频序列隐写前后帧亮度分量比较 Figure 5 The comparison between the original and embedding ones |
一般地,评判图像质量好坏采用峰值信噪比(peak signal noise ratio,PSNR)作为标准.
图 6所示为本文算法与文献[5]算法在嵌入秘密信息后测试序列的亮度分量PSNR值的对比.
![]() |
图 6 本文算法与文献[5]在隐写后帧亮度分量PSNR比较 Figure 6 The comparison embedded of PSNR valuebetween our algorithm and reference [5] |
从图 6可以看出,隐写后的视频序列PSNR值对比文献[5]算法,大部分视频下降较少,平均下降约0.987 5 dB,即本文算法优于文献[5]算法.
3.2 隐写容量分析隐写容量是判断隐写算法优劣的关键.本文中,通过改变帧内4×4块的预测模式来进行隐写,由2.2节可以得到,每3个帧内预测块可以隐藏2 bits,所以我们就可以将隐写容量表示为Ec=(B×1/3)×2, 其中:Ec是算法的隐写容量;B为帧内4×4块的个数.
本文算法的隐写容量根据视频序列的帧大小及细节区域的不同而不同.比如,具有更多纹理特征的视频具有更多的隐写容量.同样,具有更大的帧大小也具有更多的隐写容量.
3.3 安全性分析文献[13]提出一种针对以视频为载体隐写的隐写检测算法,算法检测效果明显,本文用其作为检验算法是否安全的指标.将经过本文算法隐写后的视频序列通过文献[13]提取其特征值,并且输入进训练好的分类器中,经过判断,得到其是否隐写.测试过程中,每组视频序列个数为300,嵌入率为满嵌,即修改所有能被嵌入的帧内4×4块.从表 3可以看出,对本文算法隐写分析时,假正率(false positive rate,FPR)与假负率(false negative rate,FNR)均较高,即本算法安全性较好.
![]() |
表 3 对本文算法进行隐写分析的结果 Table 3 The results of steganalysis of embedding video sequence |
比特率增量(bit rate increase,BRI)计算公式为BRI=
![]() |
图 7 比特率分析 Figure 7 The analysis of bit rate |
由图 7可以看出用本文算法嵌入秘密信息,前后比特率变化较小,平均涨幅约为1%,小于文献[5]算法涨幅的1.32%,证明本文算法效果较好.
3.5 修改率分析隐写后嵌入其中秘密信息与修改载体位数之间的比值表示载体的修改率,定义为α=β/γ, 其中:α代表修改率;β代表修改的块的个数;γ代表嵌入的比特数.
文中,隐藏2 bits秘密信息仅需修改一个帧内预测模式,所以β=1,且γ=2,即修改率最高仅为1/2,嵌入效率最低为2.当嵌入容量相同时,文献[8]需要修改与秘密信息个数相同的帧内预测块,本文算法仅需修改一半秘密信息个数的帧内预测块,所以本文算法具有较高的嵌入效率.
4 结语帧内预测又是H.264/AVC编码标准特有的技术,本文通过修改调制块的帧内预测模式提出了一种新的视频隐写算法.首先将秘密信息与Logistics映射产生的混沌序列进行处理,从而得到安全性较高的秘密信息,然后用LBP算法选择合适的嵌入区域,接着判断调制块组的帧内预测模式,最后根据两比特密文的大小来修改调制组的帧内预测模式的奇偶性.实验结果表明,本文算法具有较好的视觉不可见性以及较高的嵌入效率,并且具有较低的比特率增加量.
[1] |
HEGDE R, JAGADEESHA S. An optimal modified matrix encoding technique for secret writing in MPEG video using ECC[J]. Computer standards & interfaces, 2016, 48: 173-182. ( ![]() |
[2] |
RICHARDSON I E. H. 264 and MPEG-4 video compression: video coding for next-generation multimedia[M]. New York: John Wiley & Sons, 2004.
( ![]() |
[3] |
胡洋, 张春田, 苏育挺. 基于H.264/AVC的视频信息隐藏算法[J]. 电子学报, 2008, 36(4): 690-694. ( ![]() |
[4] |
YANG G, LI J, HE Y. An information hiding algorithm based on intra-prediction modes and matrix coding for H.264/AVC video stream[J]. AEU-international journal of electronics and communications, 2011, 65(4): 331-337. DOI:10.1016/j.aeue.2010.03.011 ( ![]() |
[5] |
尹秋来, 王宏霞, 赵杨. 一种基于预测模式的H. 264视频信息隐藏算法[J]. 光电子·激光, 2012, 23(11): 2194-2199. ( ![]() |
[6] |
XU D W, WANG R D, WANG J C. Prediction mode modulated data-hiding algorithm for H.264/AVC[J]. Journal of real-time image processing, 2012, 7(4): 205-214. DOI:10.1007/s11554-010-0175-4 ( ![]() |
[7] |
徐达文, 王让定. 一种基于预测模式的H.264/AVC视频信息隐藏改进算法[J]. 光电工程, 2011, 38(11): 93-99. DOI:10.3969/j.issn.1003-501X.2011.11.017 ( ![]() |
[8] |
王家骥, 王让定, 李伟, 等. 一种基于帧内预测模式的HEVC视频信息隐藏算法[J]. 光电子·激光, 2014, 25(8): 1578-1585. ( ![]() |
[9] |
SULLIVAN G J, WIEGAND T. Rate-distortion optimization for video compression[J]. Signal processing magazine, IEEE, 1998, 15(6): 74-90. DOI:10.1109/79.733497 ( ![]() |
[10] |
MUHIT A A, PICKERING M R, FRATER M R, et al. Video coding using elastic motion model and larger blocks[J]. IEEE transactions on circuits & systems for video technology, 2010, 20(5): 661-672. ( ![]() |
[11] |
王静, 蒋国平. 一种超混沌图像加密算法的安全性分析及其改进[J]. 物理学报, 2011, 60(6): 83-93. ( ![]() |
[12] |
OJALA T, PIETIKAINEN M, MAENPAA T. Gray scale and rotation invariant texture classification with local binary patterns[J]. IEEE transactions on pattern analysis & machine intelligence, 2002, 24(7): 971-987. ( ![]() |
[13] |
BUDHIA U, KUNDUR D, ZOURNTOS T. Digital video steganalysis exploiting statistical visibility in the temporal domain[J]. IEEE transactions on information forensics & security, 2006, 1(4): 502-516. ( ![]() |