基于矢量直方图迁移的视频加密域可逆隐写方案

2019-07-31 12:14钮可张硕杨晓元
计算机应用 2019年3期
关键词:直方图矢量密钥

钮可 张硕 杨晓元

摘 要:针对压缩域视频隐藏算法嵌入容量低、不可见性差的问题,提出了一种H.264/AVC加密域的可逆隐写方案。 首先由嵌入容量和載体大小决定参考帧间隔参数,并根据需要决定是否对载体进行加密;然后,根据待嵌视频帧数生成嵌入密钥;最后通过压缩视频中矢量直方图迁移,实现运动矢量上的可逆信息嵌入。所提方案通过指定解码参考帧,克服了由于运动矢量修改而造成的失真累加效应。所提方案兼容基于运动矢量的视频加密算法, 视频的解密和信息提取分别依赖解密密钥和嵌入密钥,两者之间相互分离,在视频密文域或者解密后的明文域中均能提取信息并无损恢复视频载体。信息的安全性依赖于嵌入密钥,密钥长度可以根据需要控制,最大长度等于可嵌入信息的帧数。实验表明该方案计算复杂度低,安全度高,并可以根据嵌入负载调整容量和不可见性,与BCH码可逆嵌入方案相比PSNR值提高3~5dB,平均嵌入容量增加5~10倍。

关键词:可逆视频隐藏;加密域视频; H.264/AVC编码; 矢量直方图迁移; 参考帧修改

中图分类号: TP391.41

文献标志码:A

文章编号:1001-9081(2019)03-0756-07

Abstract: Aiming at the problem of low embedding capacity and poor invisibility in compressed domain video hiding algorithm, a reversible steganography scheme for H.264/AVC encryption domain was proposed. Firstly, the reference frame interval parameter was determined by the embedded capacity and the carrier size, and whether the cover was encrypted was determined by the need. Then, an embedded key was generated according to the number of video frames to be embedded. Finally, the reversible information embedding on motion vector was realized by the vector histogram shifting in the compressed video. The proposed scheme overcame the distortion accumulation effect due to motion vector modification by specifying a decoding reference frame and is compatible with motion vector-based video encryption algorithms. Video decryption and information extraction depend on the decryption key and the embedded key respectively, which are separated from each other. The information can be extracted in the video ciphertext domain or the decrypted plaintext domain and has no influence on video cover recovery. As security of the information depends on the embedded key, the length of the key can be controlled as needed with the maximum length equal to the number of frames in which the information can be embedded. Experimental results show that the proposed scheme has low computational complexity and high security, and can adjust capacity and invisibility according to embedded load. Compared with BCH code reversible embedding scheme, the PSNR (Peak Signal-to-Noise Ratio) value increases by 3 to 5dB and the average embedded capacity increases by 5 to 10 times.

Key words: reversible video hiding; encryption domain video; H.264/AVC coding; vector histogram shifting; reference frame modification

0 引言

近年来数字产品的版权保护和内容认证已经越来越得到重视,信息隐藏技术通过嵌入在载体中的特殊信息提供了一种区别于传统密码技术的数字媒体保护手段。信息的嵌入虽然对视觉质量影响不大,但在大多数情况下都会使得载体损失一部分数据,信息提取后载体无法完全恢复。在某些特殊应用中如医学、军事、司法等领域,数字载体的轻微失真都有可能引起误判,因此载体数据任何不可逆的损失都是不允许的[1]。 可逆数据隐藏(Reversible Data Hiding, RDH)技术能够在嵌入的信息被提取之后完全恢复载体的原始数据而不造成任何数据的损失[2],是信息隐藏领域一个活跃的研究方向。自从第一个可逆隐藏算法1997年被提出用于图像认证以后[3],各种可逆隐藏技术得到了广泛应用,从图像认证[3-4]、医学图像处理[5]、计算机辅助设计中矢量图恢复[6]到云中数据着色[7]等。大量的可逆隐藏方案[8]被提出,在这些方案中基于差值扩展(Difference Expansion, DE)[9]和直方图迁移(Histogram Shifting, HS)[10]的可逆隐藏原理成为最有代表性的两种,推动了可逆隐写技术的向前发展,现有很多可逆方案都是这两者的基础上设计的[8]。目前大多数可逆隐藏算法都是以数字图像为载体,在图像的空间域或者压缩域通过可逆隐藏技术嵌入信息。但是随着网络和计算机技术的不断发展,数字视频无论是在离线还是在线环境中都已成为一种常用的媒体数据 [11],设计以数字视频为载体的可逆隐藏方案具有重要的价值。

H.264(H.264/AVC)视频编码标准具有较高的压缩效率适合于视频数据网络传输等特点,目前已經被广泛使用,因此以H.264视频为载体的可逆隐藏方案引起了研究者的广泛关注[11-13]。文献[11]中利用 HS技术,将数据用BCH(Bose-Chaudhuri-Hocquenghem)码编码,然后嵌入到I帧4×4数据块的离散余弦变换(Discrete Cosine Transform, DCT)系数中,该算法更加关注于鲁棒性方面的性能。文献[12]中为了提高隐藏容量,在满足条件的4×4亮度块中随机选择2个DCT系数,然后通过二维的直方图修改来嵌入信息,在不可见性一定的情况下获得了较大的隐藏容量。文献[13]提出了在运动补偿后通过帧间数据插值误差扩展来嵌入信息,这种方式在获得高隐藏容量的同时视频失真很小。但上述这些可逆隐藏算法都是在视频压缩域的DCT系数中嵌入的,没有利用到运动矢量。由于H.264压缩标准支持更灵活和更小的分块(从16×16到4×4),与以往的视频压缩标准相比具有更多的运动矢量;同时H.264压缩标准中亮度分量和色度分量分别采用1/4和1/8精度的运动估计,使得匹配更加精确,但运动矢量修改引起的失真会不断扩散到后继帧,对视频质量影响很大。因此在H.264视频中,运动矢量是一个理想的可逆隐藏调制点,但同时保持在大隐藏容量下的高视觉质量也是一个难点。本文利用直方图迁移技术,提出了一种在运动矢量加密域上嵌入信息的可逆隐藏算法。算法具有较高的容量和不可见性,并兼容于现有的视频加密方案。

1 理论框架

1.1 运动补偿和运动矢量

运动矢量表征了视频序列中前后两帧的相对运动位置,是视频压缩编码中的重要组成部分。H.264与早期的压缩标准相比支持不同块尺寸及更精细子像素的运动矢量(亮度分量为1/4像素精度)。压缩中每个宏块可以被划分成四种模式,分别为16×16、16×8、8×16和8×8,如果宏块划分为8×8模式,每个8×8亚宏块又可以划分成四种模式,分别为8×8、8×4、4×8和4×4[14],每个块单独进行运动估计,包含一个运动矢量。

表1分别为取150帧Quarter Common Intermediate Format (QCIF,176×144)格式的YUV视频序列对其中的亮度分量采用MPEG2和基本档次的H.264压缩编码后运动矢量的数量统计。表中mvx,mvy表示运动矢量的水平分量和垂直分量,编码过程中均采用第一帧为I帧,其余帧均为P帧的模式,其中I帧为帧内编码帧,P帧为前向预测帧。从中可以看出,H.264编码方案包含更多的运动矢量,并且运动矢量的数量是随着视频内容不同而变化的,视频纹理越丰富,则分块越多,所对应的运动矢量也越多。如果将运动矢量作为调制点来嵌入信息则纹理复杂,细节丰富,运动速度快的H.264压缩视频能够获得更高的隐藏容量。

1.2 运动矢量直方图迁移

根据1.1节分析H.264压缩码流中具有更多的运动矢量,因此与以往标准相比更加适合将运动矢量作为可逆隐藏的嵌入位置。Ni等[10]提出了一种直方图迁移(HS)的可逆隐藏方案并获得了广泛的应用。基于HS技术的大量可逆隐藏方案被提出,从空间域扩展到变换域,从图像载体扩展到视频载体,算法的性能和速度也不断得以提升 [11-13,15-17]。由于修改运动矢量不仅会影响当前数据块解码,其引起的错误还会不断扩散到后继的解码过程中最终使得视频失真严重,因此上述算法都是基于视频内容直方图迁移实现信息嵌入,没有利用到运动矢量直方图。对于绝大多数视频而言,0矢量占据了大部分,一般都是矢量直方图的峰值。随着运动矢量幅值的增加,其数量呈减小趋势。图1(a)和图1(b)分别为foreman视频片段经过MPEG2和H.264编码后的矢量直方图。由于H.264支持亮度分量1/4像素精度的运动矢量,因此比MPEG2矢量直方图平缓,但总的来说大部分运动矢量幅值(H.264为矢量幅值的4倍)都集中在0和±1上。如将视频的运动矢量直方图按照文献[10]的算法寻找峰值和零值点后进行搬移,修改的运动矢量值过多会引起视频的极大失真。对图1(a)和(b)进行比较,H.264中直方图分布相对平缓,±1占据较大比重。综合考虑隐藏容量和不可见性,将4倍矢量值为±1的点作为运动矢量嵌入位置。

为进一步加大隐藏容量可以再选择多层矢量直方图迁移来嵌入信息[17],参照文献[10]的算法进行直方图搬移并嵌入信息,以水平分量为例,如式(1)所示。式中mvx和mvx′分别为修改前后的水平分量, b为待嵌入的二进制比特信息,b∈{0,1}。

图1(c)为foreman视频片段搬移后的直方图,嵌入容量主要取决于±1点运动矢量的数量。视频纹理越复杂,运动速度越快,则±1点运动矢量的数量相对比较多,嵌入容量越大。

1.3 参考帧变换

通过搬移矢量直方图±1位置的方法,能够避免运动矢量中比重最大的0矢量改变,有效减小内容失真,但H.264压缩方案中,当前帧解码后将成为后续帧的解码参考,这种情况下会造成错误的不断累积,在使用第一帧为I帧其余均为P帧的编码模式下随着帧数的增多视频的质量会急剧下降,如图2(a)和图2(b)分别为foreman和news两段视频PSNR值下降情况。H.264中已编码图像存储在编解码器的解码帧缓冲区中(Decode Frame Buffer, DPB),并有相应的参考图像列表供间宏块运动补偿预测使用[18]。与以往的标准中使用单一参考帧不同,它采用了多参考帧预测技术,允许从多达15帧里面选择1帧或者2帧作为参考进行预测。为防止由于运动矢量修改而导致的错误累加,本文方案利用参考帧的可选择特性,不在某些特定帧中嵌入信息,即保持运动矢量值不变。将这些特定帧作为后续若干帧编解码的参考帧,这样就截断了错误的积累。通过指定特定参考帧使得误差只限制在嵌入信息的帧内,有效控制了视频的质量。图3为参考帧改变前后示意图,图3(a)为正常情况下的编码,图3(b)为每4帧共用1参考帧编解码。

图4展示每隔4帧选择一特定参考帧,在其余帧的水平和垂直分量中分别嵌入信息,对其解码后视频的峰值信噪比(Peak Signal-to-Noise Ratio, PSNR)与原视频的PSNR值。从图中可以看出,采用误差累积控制方法后视频的PSNR值比直接修改运动矢量有大幅度的提高。由于运动速度快、纹理复杂的视频具有更多的±1矢量,嵌入信息后运动矢量改变较多,视频质量下降速度快,因此相比于运动速度慢纹理简单的视频平均PSNR值低,这与图4相吻合。即图4(a) 的foreman视频平均PSNR要高于图4(b) 的news视频。

2 加密域可逆隐藏方案

2.1 方案框架

本文提出的视频隐藏方案在变换参考帧的H.264视频码流中嵌入信息,嵌入信息后的视频能够正常解密和播放。可以根据嵌入密钥在明文域或密文域中提取信息并且无损恢复视频,方案框架如图5所示。变换参考帧的H.264码流可以通过原始视频编码得到,也可以将已有的H.264视频解码后采用无损H.264编码方法[19]得到。

2.2 视频加密

视频数据的加密需要考虑到算法效率和压缩标准的兼容性,加密后的视频有解密密钥时能够正常解码播放[20]。视频加密无法像传统的方案那样对全部数据进行加密,通常情况下选择部分数据加密,以兼顾安全性和计算效率。

对H.264视频的加密有三种方式,既压缩前加密、压缩过程中加密和压缩后的码流加密。其中最常见的是压缩过程中的加密,其方法又主要分为几类:帧内预测模式加密、帧间预测模式加密、运动矢量及差值的加密、对数据块采用非标准的变换方式替代标准的DCT对数据加密、DCT系数加密、改变熵编码时的扫描顺序加密、对基于上下文的可变长编码(Context-Adaptive Variable-Length Coding, CAVLC)和基于上下文的二进制算术编码(Context-based Adaptive Binary Arithmetic Coding, CABAC)中部分码字的加密[21]。

本文所提方案是通过修改运动矢量直方图进行信息嵌入的,因此采用加密H.264视频中运动矢量的方法来验证加密对算法的影响。编码标准中是将运动矢量差值进行指数哥伦布编码(Exp-Golomb),该码元结构为[M zeros prefix] [1] [Offset],其中M是分組的编号,1是分隔符,Offset是组内的偏移量。表2为运动矢量差(Motion Vector Difference, MVD)所对应的Exp-Golomb码字,从表2中可以看出,符号相反的矢量差其编码后码字长度一致。为不增加视频压缩后的码率以及满足格式兼容需求,采用改变运动矢量符号来实现加密[22],如式(2)所示其中mvd是运动矢量差,Key_enc为加密密钥。

2.3 信息嵌入

步骤1 算法是在确定参考帧的H.264压缩视频中嵌入信息,因此要对视频进行预处理。预处理有两种方式:1)对原始YUV视频根据要求的视频质量进行H.264编码。2)对获取的H.264码流进行解码后进行无损H.264编码。编码过程中估算嵌入容量C将其与待嵌入的比特数B相互比较,确定参考帧间隔K的大小。如果mod(i,k)=0则fi为参考帧, fi+1到fi+k帧参考fi帧进行编码。根据需要确定是否将视频采用2.2节中方法进行加密。

步骤4 对嵌入信息的矢量编码,形成含密的H.264码流。

2.4 信息提取和视频恢复

3 实验结果及分析

实验采用文献[23-24]中的Matlab H.264编解码器进行仿真。载体视频可以是H.264视频解码再经无损压缩后得到,也可以是YUV视频序列按要求编码后得到。由于经无损H.264压缩后视频码率受到无损压缩算法的影响[19],为测试本文所提算法的性能将YUV视频序列直接压缩得到待嵌信息的H.264载体视频。实验中取CITY_qcif、 news_qcif、carphone_qcif、mobile_qcif、foreman_qcif、container、salesman、coastguard等共8段QCIF格式视频(176×144),每段视频取150帧,所有视频均采用2.2节描述的加密方式进行运动矢量符号加密,carphone视频加密前后如图6所示,图6(a)为原始帧,图6(b)为运动矢量加密帧。

对每帧的亮度分量进行操作,除第1帧为I帧外其余均为P帧模式,量化参数( Quantizer Parameter, QP)为27,采用Matlab进行仿真。嵌入信息为0,1序列,嵌入密钥Key为长度等于P帧帧数的伪随机0,1序列,参考帧间隔为K。隐藏容量如表3所示,可以看出本文所提算法取不同K值时的容量和文献[11]相比有显著提高。

视频解密后的质量如图7所示,图7(a)是解密后的视频,图7(b)是解密并提取信息后的恢复视频。

K值越大嵌入信息越多,但视频帧质量越差。视频的PSNR值如图8所示,图8(a)的 carphone视频和图8(b)的foreman视频在不同参考帧间隔及不嵌入信息时每帧的PSNR值,随着参考帧的周期而变化,通过指定参考帧可以有效地消除运动矢量的错误累积效应,与文献[11]相比不可见性有所提升。表4为用本文算法在不同参考帧间隔下嵌入信息和用文献[11]嵌入信息后视频的平均PSNR值,从中可以看出运动速度快、纹理丰富的视频由于其包含更多符合条件的运动矢量而修改量大,PSNR值下降多,如coastguard、mobile;反之则PSNR值下降少,如container、salesman。

嵌入信息的安全性由嵌入密钥控制,只有拥有正确嵌入密钥才能提取信息和恢复视频。图9展示了解密后视频提取信息后的PSNR值,图9(a)和图9(b)为分别为用正确密钥和不正确密钥提取信息并恢复视频后每一帧的PSNR值,可以看出只有密钥正确才能够完全恢复视频。表5为解密视频用正确密钥和非正确密钥在不同参考帧间隔情况下恢复视频的平均PSNR值,无正确密钥时恢复的视频PSNR值显著降低,而采用正确密钥时视频能完全恢复,微小的PSNR值误差是由视频编码器本身引入的,不影响视频质量。

猜你喜欢
直方图矢量密钥
幻中邂逅之金色密钥
幻中邂逅之金色密钥
用直方图控制画面影调
物理矢量和标量学习中需要厘清的几个问题
力的矢量性的一个例子
BitLocker密钥恢复二三事
例析频率分布直方图
中考频数分布直方图题型展示
三角形法则在动态平衡问题中的应用
矢量三角形法则在物理解题中的应用