基于边缘特征的最小化失真视频隐写平台设计
2020-05-16董子睿杨耀森冯小琴
董子睿, 李 博, 杨耀森, 孟 浩, 冯小琴
(1.中北大学仪器科学与动态测试教育部重点实验室,太原030051;2.北方自动控制技术研究所,太原030060)
0 引 言
在数据改变一切的时代,安全问题得到了人们的重视。隐写术作为一门关于信息隐藏的技巧与科学,不让除预期接收者之外的任何人知晓信息的传递事件和内容[1]。随着图像处理和编码技术的飞速进步,视频隐写术得到了极大的发展,尤其是在军事间谍方面更为显著[2]。
隐写技术的提升也带来了隐写分析的发展。在Steganalysis公布的隐写术破解名单中,重点分析其方案特征,普遍存在两个缺点:①失真量化不足,认为每个位置的同比嵌入会带来相同的影响,而忽略了图像的纹理特性;②过于重视隐写效率(包括信噪比、嵌入容量、比特率增加等),而忽略了隐写术安全性第一的本质[3]。因此,本文将着重塑造隐写方案的安全框架,包括引入最小化失真框架,将边缘特征融入代价函数的构造中以及选取合适的映射规则,实现最大化抗隐写分析能力,旨在设计出一种高效稳定的隐写平台。
1 隐写理论与流程
为了解决数字视频信号的庞大数据量给传输和存储带来的难题,H.264提供了当下最佳的解决方案:帧内预测压缩[4]解决了空域数据冗余问题;帧间预测压缩解决了时域数据冗余问题;整数离散余弦变换(DCT)[5]将空间上的相关性变为频域上无关的数据,然后进行量化处理[6]。而在这些编码过程中,人们又发现对于多种模式的编码选择也会产生冗余,这些冗余部分嵌入数据可以实现数据与原始载体一同在信道传输,达到隐秘传输的效果,隐写术便诞生了。
作为隐写信息的载密宿主,H264/AVC提供了4个隐写域[7]:① 帧内预测模式;② 运动向量;③ DCT系数直方图;④熵编码。考虑到嵌入数据量与嵌入难易度,本文选用基于帧内预测的隐写模式。在帧内预测模式中,一幅图像被分割为众多的4×4宏块(见图1),而每个宏块的预测有9个方向的参考,所以通过合适的算法及映射规则来修改4×4宏块(肉眼对图像信息的高频部分不是特别敏感,即4×4宏块编码的部分)的预测模式就可以实现加密数据的嵌入[8],具体的隐写流程如图2所示。
图1 帧内预测模式
图2 隐写流程图
2 算法改进
2.1 最小化失真框架
传统的隐写方案认为修改每个4×4预测块带来的影响相等,所以降低失真的方式是减少修改的次数。这种方式虽可有效降低视频失真度,但也会带来量化不足、分析数据较少的问题[9]。所以引入最小化失真框架不仅可以提供给整个隐写体系一个衡量的标准,更是一种抗隐写分析的最佳隐写方法:
式中:α是失真参数;m表示待嵌数据的bit数;n表示可嵌入元素的总数;ρk(ρ∈(0,∞))为第k个可嵌元素发生改变时产生的代价值,由代价函数给出;Pk是第k个嵌元素发生改变的概率,即产生代价值ρk的概率。
2.2 构造基于边缘特征的代价函数[10]
构造基于边缘特征的代价函数需要选择合适的基础模型,将边缘特征融入其中,这样可以实现更高的安全性,同时可获得较低码率的增长[8]。本文选择基于预测偏差的隐写方案作为基础框架,并在其上构建纹理边缘特性,实现边缘特征代价函数的构造。
2.2.1 预测偏差计算
X264编码器中4×4宏块提供9个方向的预测模式,计算预测块与原始块之间的绝对误差总和SAE,取最小值作为最佳预测模式,可以限制码率增长,
式中:mdi,t为第t个编码帧中第i个I4B;R 为最优预测模式;V为原始块的像素值总和。
在构造基于帧内预测的失真函数时,SAE的变化是影响抗隐写分析的关键因素。如果在帧内预测期间给出候选模式md′,则将SAE预测偏差(SPE)表示为:
SPE越小,表示重新选择的预测模式越适合修改,这也是校准分析中用来检测视频是否隐写的手段之一。
2.2.2 纹理边缘特征
在一种基于高维图像模型的隐写方案中曾提出一种在图像难以检测的纹理区以及边框区嵌入数据的方法,这种方法在统计模型分析时体现出较高的安全性。本文利用图像中像素偏差混乱区难以统计的特性,在预测模式中携带数据。对边缘纹理区做特征提取,如下式所示:
式中,NMTi,t(mdi,t)表示在第t 个关键帧中的第i 个预测块所在宏块中,第i预测块为mdi,t时的预测模式类型数目。
2.2.3 代价函数构造
构造基于边缘特征的代价函数如下式:
式中:n为4×4宏块数目;θ(0≤ θ≤1)为EDi造成的嵌入影响参数,值越大代表影响越大,其值大小主要取决于图像编码帧中纹理特性的复杂程度。
2.3 选取映射规则
文献[11]中提出一种基于边缘强度的快速模式判别算法,将边缘类型分为垂直、水平、45°、135°和无方向边缘,如图3所示。
图3 5类边缘类型
边缘检测过程基于空间域滤波技术[11],每个图像块被均匀地分为4个子块,计算每个子块的平均像素大小,形成一个2×2像素的图像。每个方向的边缘强度由相应的过滤操作得出,而边缘强度可由下式计算:
式中:an为第n 个子块的平均像素值;Sv、Sh、S45°、S135°和Snd表示4×4预测块的边缘强度(见图4),其最大值决定了4×4宏块的预测方向,模式0~4依次为Sv、Sh、Snd、S45°和S135°。为了避免预测方向造成的差异扩散,一般在映射规则中将偏差较小的分为1组,本文将帧内预测9种方向分为:Group0={3,7};Group1={4,5,6};Group2= {0,1,2,8}。
图4 5类边缘类型对应的滤波运算
3 硬件平台实现
本文选用TL8148-EVM作为实现硬件平台[12],硬件平台如图5所示。
图5 硬件原理图
视频编码选用嵌入式平台的x264开源库,先通过x264命令行程序调用libx264编码YUV为H.264码流,接着进入入口函数为main()。main()函数首先会调用parse()解析输入的参数,包括图像的长、宽、帧率等,然后调用encode()编码YUV数据,其中涉及到H.264 编码的详细流程[13],最后调用select_input()和select_output()完成输入文件格式和输出文件格式的设置。因此,本文在进入encode()编码器前加入中断,等待加密数据的同步信号,之后进行数据的隐写,具体编码流程如图6所示。
消息提取平台选用基于ffmpeg库的Windows系统,这样可以增加隐写平台的兼容性。从携密视频中获取预测编码关键帧I帧,根据映射规则解出含密组集作为含密向量,借用解码器提出秘密信息,以此重复直至整组视频提取完毕为止,具体流程如图7所示。
4 实验测试
本文测试环境在CPU为Intel i7.7700的PC搭建,操作系统为Windows 7,64位,分析工具采用Python库,测试使用视频从YUV Video Sequences公共视频网站下载,如图8所示,对下载的视频序列进行隐写,然后对载密视频进行隐写分析,并与相关隐写方案[10-11]进行对比实验。
图6 隐写编码流程图
图7 隐写解码流程图
图8 待嵌视频序列
4.1 安全性分析
本文安全性的构建主要基于帧内预测模式,选取隐写前后的预测模式序列,计算4×4宏块相关性数据(见图9)。
图9 隐写前后相关性对比图
4.2 编码效率分析
判断编码效率高低的一个重要标准就是比特率增量(Bit Rate Increase,BRI),其值越小证明算法效果越好。实验参数a设为0.25,对本文方案进行多次计算,取其平均值与文献[10-11]做对比(见图10)。
图10 比特率增长对比图
4.3 信噪比分析
信噪比(Peak Signal-to-Noise Ratio,PSNR)一般用来衡量隐写术的客观质量,NONE表示未经数据嵌入,越接近其值表明造成的影响越小,安全性越高。
4.4 准确性与平台效率对比
在Windows平台和嵌入式平台分别对选取的3个视频进行相同信息的隐写,隐写信息选择Linus Torvalds的一句话:Nobody actually creates perfect code the first time around,except me.But there’s only one of me.将上述密文存为txt文本并通过SD卡挂载到linux下,嵌入式平台测试图如图11所示。
表1 信噪比对比数据
图11 系统实测图
测试视频采用flower,YUV格式,共250帧,未压缩大小为36.2 MB。在PC-Windows下进行压缩编码不隐写耗时25.36 s,隐写耗时35.68 s;在ARM-Linux下编码不隐写耗时15.02 s,隐写耗时16.38 s,时间数据由平台自带毫米级定时器输出(在编码过程不进行软件程序层面的限时),隐写效率比为1∶10。
5 结 语
本文针对帧内预测隐写方案中未进行空间相关性建模的弊端,进行了相关算法的改进:引入最小化失真框架,提供整个方案一个失真衡量标准,迎合安全第一的隐写本质;着重构造基于边缘特征的代价函数,利用图像纹理特性来嵌入数据,减少对空间相关性的破坏;根据图像边缘强度来选择映射规则,减小预测偏差,提高嵌入效率。针对隐写平台单一化且操作复杂的缺点,将隐写过程移植到ARM-Linux平台进行,实现了更高的隐写效率,且随着Linux开源系统带来的各项软件技术飞速发展以及完美融入嵌入式平台,这种趋势显得更加明显,而本平台只作为一块敲门砖。最后通过对比实验证明:本文隐写方案在极大提高安全性的同时,编码效率以及主客观质量并未下降;本隐写平台CPU主频在低于Windows平台的条件下,隐写效率反超,约为10倍。