文章信息
- 李栋, 钮可, 杨晓元
- LI Dong, NIU Ke, YANG Xiaoyuan
- 基于残差三维直方图调整的H.264可逆信息隐藏
- Three-Dimensional Histogram Modification Based on Residual Block for Reversible Data Embedding into Stereo H.264 Video
- 武汉大学学报(理学版), 2018, 64(2): 127-132
- Journal of Wuhan University(Natural Science Edition), 2018, 64(2): 127-132
- http://dx.doi.org/10.14188/j.1671-8836.2018.02.005
-
文章历史
- 收稿日期:2017-08-09

可逆信息隐藏(RDE), 是指提取端在正确提取隐藏信息的同时, 能够无损地恢复原始图像[1].此类技术可广泛用于对载体质量要求较高的如医疗、法律等场合.数字视频相对于数字图像具有容量大、冗余多、通信质量高、稳健性强等优点, 因此研究基于视频的隐写方法已成为新的热点之一[2]. H.264具有很高的压缩比, 并且由于视频质量高, 适合网络传输而得到了广泛应用.H.264的技术要点在于, 采用了更多的帧内预测模式.为了提高编码效率与压缩率, H.264仍然对宏块的预测值与实际值的差值进行编码, 它提供了9种模式进行4×4块的预测.在帧间预测上, H.264支持更多的参考帧, 提高了视频质量.在运动估计上, H.264可以达到1/4或者1/8像素精度, 使得残差更小, 降低了码率.同时H.264还采用了基于整数的离散余弦变换(DCT), 进一步减小了量化误差, 提高了计算速度.
任何RDE算法都应该满足大嵌入容量和低失真的要求, 而实际上这两方面一般情况下是相互矛盾的, 往往大嵌入容量意味着较高的失真.因此需根据实际情况来进行算法的设计, 在嵌入容量和失真之间取得一个平衡.针对H.264视频的RDE, 研究人员提出了许多方法.在这些算法中, 差值扩展(DE)与直方图调整(HM)较为流行, 已经被广泛应用于可逆信息隐藏算法. Chung等人[3]利用H.264的量化离散余弦变换(QDCT,quantized discrete Cosine transformation)呈拉普拉斯分布的特点, 构造了一种帧内错误隐藏(error concealment)的方法.Coltuc [4]针对基于预测差值扩展的可逆水印设计了一个低失真的整数变换, 通过使用一个简单的线性预测器, 将扩展后的预测差值隐藏在了当前像素及其预测像素中, 这种隐写算法能将水印引入的失真降到最低. Vleeschouwer等人[5]提出了双射变换的循环解译算法, 能满足可逆水印的各种质量与功能性要求.An等人[6]提出了一种小波域统计直方图平移的算法, 能够提高水印鲁棒性, 并降低计算复杂度.
HM是一种利用直方图调整来实现信息可逆嵌入的方法.传统的基于HM的RDE算法, 在对载体进行加一减一的操作时, 最多嵌入1 bit的信息.Zhao等人[7]提出了一种二维HM可逆算法, 以较小的失真获得了较高的嵌入容量, 本文在其基础上, 将算法扩展到三维(3DHM).
1 二维直方图调整(2DHM)算法 1.1 基本原理QDCT系数分布如表 1所示[7].从表中可以看出, 0值系数占了绝大多数, 表明QDCT系数直方图非常尖锐, 亦即如果把信息嵌入到QDCT中的0值系数中就可以获得较高的嵌入容量.
| 视频序列 | QDCT系数值 | ||||||||||||
| -6 | -5 | -4 | -3 | -2 | -1 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | |
| Akko & Kayo | 0 | 0 | 0 | 0.01 | 0.07 | 1.53 | 96.86 | 1.41 | 0.10 | 0.01 | 0 | 0 | 0 |
| Ballroom | 0 | 0.01 | 0.02 | 0.07 | 0.30 | 2.87 | 93.27 | 2.94 | 0.38 | 0.1 | 0.03 | 0.01 | 0 |
| Crowd | 0 | 0.01 | 0.04 | 0.11 | 0.45 | 4.05 | 90.64 | 3.97 | 0.52 | 0.14 | 0.05 | 0.02 | 0.01 |
| Exit | 0 | 0 | 0.02 | 0.06 | 0.24 | 2.10 | 95.1 | 2.15 | 0.24 | 0.05 | 0.03 | 0.01 | 0 |
| Flamenco | 0 | 0 | 0.01 | 0.04 | 0.2 | 2.44 | 94.52 | 2.51 | 0.24 | 0.04 | 0.01 | 0 | 0 |
| Objects | 0 | 0.05 | 0.14 | 0.34 | 1.12 | 6.57 | 82.87 | 7.21 | 1.11 | 0.32 | 0.18 | 0.06 | 0.02 |
| Race | 0.01 | 0.02 | 0.05 | 0.11 | 0.5 | 4.25 | 89.62 | 4.76 | 0.52 | 0.11 | 0.04 | 0.02 | 0.01 |
| Rena | 0 | 0 | 0 | 0 | 0 | 0.35 | 99.39 | 0.25 | 0 | 0 | 0 | 0 | 0 |
| Vassar | 0 | 0 | 0.01 | 0.03 | 0.23 | 3.15 | 93.13 | 3.14 | 0.26 | 0.04 | 0.01 | 0 | 0 |
如图 1所示[7], 4×4亮度块经过Z字形扫描, 形成的序列按照频率从低到高排列.其中, Y0称为直流(DC)系数, Y1, Y2, …, Y5为低频域交流(AC)系数, Y6, Y7, …, Y15为高频域交流系数.块的大部分能量都集中在直流分量和低频域, 高频域只含有少部分能量.把信息嵌入到高频域对视频质量影响较小, 而把信息嵌入到低频域可以获得更好的鲁棒性.实际使用中, 可根据不同要求进行嵌入域的选择.
|
| 图 1 Z字形扫描 Figure 1 Zig scan |
根据Ou等人[8]的HM算法, 可通过平移一维系数直方图来嵌入信息.嵌入算法如下所示
|
其中Ys1是4×4亮度块中第s1个QDCT系数, Y′s1则是目标系数, mi∈{0, 1}是待嵌入信息, 当QDCT系数是0或-1可嵌入1 bit信息.
嵌入算法过程如图 2.
|
| 图 2 HM嵌入算法 Figure 2 HM embedding algorithm |
信息的提取则是相反过程:
a) 若Y′s1=0或-1, 则说明原始系数Ys1=Y′s1, 且提取隐藏的信息比特为mi=0.
b) 若Y′s1=1, 则说明原始系数Ys1=Y′s1-1, 且提取隐藏的信息比特为mi=1.
c) 若Y′s1= -2, 则说明原始系数Ys1=Y′s1+1, 且提取隐藏的信息比特为mi=1.
d) 若Y′s1>1, 则说明未隐藏信息, 且Ys1=Y′s1-1.
e) 若Y′s1 < -2, 则说明未隐藏信息, 且Ys1=Y′s1+1.
由以上算法可以知道, 算法的嵌入容量取决于QDCT系数中值为0, -1的数量.
1.3 2DHM算法Zhao等[7]提出了一种算法, 该算法能够充分利用两个QDCT系数之间的相关关系, 使得与其他基于HM的算法[9]相比, 在嵌入效率和失真表现上有了进一步提高, 其算法描述如下:
a) 从进行完量化离散余弦变换(QDCT)的视频序列中随机选择4×4亮度块;
b) 从上述4×4块中随机选择两个系数组成QDCT系数对(Ys1, Ys2);
c) 根据系数对所在的集合, 对系数对进行调整, 以嵌入信息.
详细算法可参考文献[7].
2 三维直方图调整(3DHM)算法经过研究发现, 文献[7]中的算法(下文均简称2DHM算法)在嵌入容量上仍有提升空间.在2DHM算法中, 当(Ys1, Ys2)=0, 0时, 嵌入过程可描述如下:
|
由于QDCT系数中绝大多数为0值系数, 2DHM中以两个QDCT系数为一个单元进行嵌入, 只有在待嵌入信息为000, 001的时候可以达到最大嵌入效率, 即QDCT系数对中的系数改变1, 可以嵌入3bit信息.信息位是三比特的概率只有1/4, 而有3/4的概率仅出现两个比特.如果扩展到三维后, 即以3个QDCT系数为一个单元进行信息嵌入, 则会有3/4的概率在系数改变1时, 能够嵌入3个比特的信息, 因而可以达到更高的嵌入效率.
2.1 3DHM算法从进行完QDCT变换的4×4块的交流系数中随机选择3个系数, 组成一个系数对(Ys1, Ys2, Ys3), 其中Ys1, Ys2, Ys3分别是选出的QDCT系数.将系数对划分成25个集合, 这些集合的划分是不重合的, 根据随机选择的系数对所在的集合进行系数调整, 就可在调整过程中嵌入信息.
集合划分如下:
|
根据随机选择的系数对(Ys1, Ys2, Ys3)所在的集合进行相应系数调整, 其过程中便可嵌入信息.原始系数对记为(Ys1, Ys2, Ys3), 经过调整后的目标系数对记为(Y′s1, Y′s2, Y′s3), 待嵌入数据记为mimi+1mi+2, 代表等待嵌入的第i, i+1, i+2个比特数据.具体算法如下:
a) 若(Ys1, Ys2, Ys3)∈A1, 则
|
|
b) 若(Ys1, Ys2, Ys3)∈A2, 则
|
c) 若(Ys1, Ys2, Ys3)∈A3, 则
|
d) 若(Ys1, Ys2, Ys3)∈A4, 则
|
e) 若(Ys1, Ys2, Ys3)∈A5, 则
|
f) 若(Ys1, Ys2, Ys3)∈A10, 则
|
g) 若(Ys1, Ys2, Ys3)∈A11, 则
|
h) 若(Ys1, Ys2, Ys3)∈A16, 则
|
i) 若(Ys1, Ys2, Ys3)∈A17, 则
|
j) 当(Ys1, Ys2, Ys3)∈A6…A9, A12…A15, A18…A25时, 不嵌入信息, 只进行系数的调整:
|
对算法进行分析, 嵌入容量记为EC, 经过计算, 可以得到:
|
嵌入引起的失真记为ED, 则有:
|
嵌入过程如图 3所示.
|
| 图 3 信息嵌入流程图 Figure 3 Data embedding flow chart |
a) 对明文进行加密处理, 得到待嵌入数据.
b) 对原始视频进行熵解码, 得到所有的块.
c) 使用种子S得到随机序列, 随机选择可嵌入块, 在选择可嵌入块时, 可以将每个4×4块的直流系数作为阈值来控制嵌入强度, 而种子可通过事先使用RSA等公钥加密方式传递给接收方.对于未被选择的块, 则直接进行熵编码.
d) 从块中随机选择3个QDCT系数作为嵌入单元, 根据3DHM算法进行信息嵌入.得到载密块.
e) 将载密块与未嵌入信息的块进行熵编码, 得到载密视频.
信息提取过程如图 4所示.接收方利用私钥解密得到种子S, 对载密视频进行熵解码, 并选择出嵌入了信息的块, 根据图 4所示过程进行信息的提取.由于对系数单元所属的集合的划分是不重叠的, 而且QDCT系数的调整也是单向不重叠的, 这就表明该嵌入算法是可逆的.
|
| 图 4 信息提取流程图 Figure 4 Data extracting flow chart |
上文提到, 可以将4×4块的直流系数作为阈值来控制嵌入强度.阈值记为U, 直流系数为Y0.实际操作中, 可以根据需要设置不同的U值.当U=0时, 表明对所有的块均进行嵌入, 这是满嵌的情况; 当所要嵌入的信息量不大时, 可以将U设置不为0, 这样仅选取部分块进行嵌入.为方便起见, U=1.通过这种方式, 就可以在保证嵌入容量的条件下最大限度提高载密视频的质量.实验环境如表 2所示.
| 软件环境 | Matlab R2016b | |
| CPU | i5-4590 3.3 GHz | |
| 硬件环境 | RAM | 8 GB DDR3 1600 MHz |
| GPU | GTX960 |
实验中, 嵌入100帧, 计算平均嵌入容量,平均PSNR值,编码100帧P帧所用时间,2DHM与3DHM结果见表 3.
| 视频序列 | 3DHM | 2DHM | |||||
| 容量 /bit |
PSNR /dB |
耗时 /s |
容量 /bit |
PSNR /dB |
耗时 /s |
||
| bridge-far | 332.7 | 39.51 | 287.6 | 298.7 | 35.92 | 292.6 | |
| foreman | 1 120 | 38.62 | 310.2 | 1 033 | 38.63 | 320.3 | |
| city | 895.2 | 38.61 | 296.4 | 807.4 | 38.63 | 306.8 | |
| bridge-close | 504.7 | 37.69 | 302.3 | 461.7 | 37.71 | 327.5 | |
| coastguard | 1 103 | 36.99 | 330.2 | 1 017 | 37.00 | 326.6 | |
从表 3中可以看出, 3DHM算法相比2DHM算法在嵌入容量上有明显提升.两种嵌入算法的PSNR相近, 说明3DHM在提升嵌入容量的同时并没有牺牲失真表现, 同时嵌入更多信息所花费的时间代价也与2DHM相当.
图 5~7是利用2DHM, 3DHM算法进行的仿真实验, 从视频中选取了阈值U=1时的原始帧, 使用2DHM, 3DHM嵌入信息后的帧.
|
| 图 5 bridge-close Figure 5 bridge-close |
|
| 图 6 coastguard Figure 6 coastguard |
|
| 图 7 bridge-far Figure 7 bridge-far |
各组中图像从左至右依次为, 原始帧、2DHM帧、3DHM帧.可以看出, 嵌入信息后, 相对于原始帧, 并未产生明显的失真, 嵌入效果符合不可见性的要求, 同时, 3DHM算法相比于2DHM, 在嵌入容量上有了较大提升, 而对视频质量并无明显影响, 说明3DHM算法具有一定的实用性, 并且在嵌入效率上优于2DHM算法.
经过计算, 3DHM算法相比2DHM, 在平均PSNR下降不到0.1%的情况下, 将嵌入容量最多提升了11.4%(bridge-far), 同时耗时并没有显著增加.而且从仿真结果来看, 3DHM算法对视频质量影响较小, 证明3DHM相比2DHM有一定的改进.
4 结论本论文在传统HM算法和改进的2DHM算法基础上, 提出了3DHM可逆隐藏方案并实现, 通过实验证明, 新方案计算速度快, 在保持视频较低失真的情况下大幅提升了嵌入容量.
该算法理论上仍可以向多维扩展, 使得嵌入容量进一步扩大,如Tian [10]提出的差值扩展算法也可以利用本文所提出的原理进行多维扩展.
| [1] |
熊志勇, 王江晴. 基于差值直方图平移的彩色图像可逆信息隐藏[J]. 四川大学学报(工程科学版), 2011, 43(3). XIONG Z Y, WANG J Q. Reversible information hiding for color images based on difference histogram shifting[J]. Journal of Sichuan University (Engineering Science Edition), 2011, 43(3). DOI:10.15916/j.jsuese.2011.03.020 |
| [2] |
张英男, 张敏情, 钮可. 基于灰色关联分析的H.264/AVC视频隐写算法[J]. 武汉大学学报(理学版), 2014, 60(6): 524-530. ZHAN Y N, ZHAN M Q, NIU K. A novel information hiding algorithm based on grey relational analysis for H.264/AVC[J]. Journal of Wuhan University (Natural Science Edition), 2014, 60(6): 524-530. |
| [3] |
CHUNG K L, HUANG Y H, CHANG P C, et al. Reversible data hiding-based approach for intra-frame error concealment in H.264/AVC[J]. IEEE Trans Circuits Syst Video Technol, 2010, 20(11): 1643-1647. DOI:10.1109/TCSVT.2010.2077577 |
| [4] |
COLTUC D. Low distortion transform for reversiblewatermarking[J]. IEEE Trans Image Process, 2012, 21(1): 412-417. DOI:10.1109/TIP.2011.2162424 |
| [5] |
de VLEESCHOUWER C, DELAIGLE JF, MACQ B. Circular interpretation of bijective transformations in lossless watermarking for media asset management[J]. IEEE Trans Multimedia, 2003, 5(1): 97-105. DOI:10.1109/TMM.2003.809729 |
| [6] |
AN L L, GAO X B, LI X L, et al. Robust reversible watermarking via clustering and enhanced pixel-wise masking[J]. IEEE Trans Image Process, 2012, 21(8): 3598-3611. DOI:10.1109/TIP.2012.2191564 |
| [7] |
ZHAO J, LI Z T, FENG B. A novel two-dimensional histogram modification for reversible data embedding into stereo H.264 video[J]. Multimed Tools Appl, 2016, 75: 59559-5980. |
| [8] |
OU B, LI X L, ZHAO Y, et al. Pairwise prediction-error expansion for efficient reversible data hiding[J]. IEEE Trans Image Process, 2013, 22(12): 5010-5021. DOI:10.1109/TIP.2013.2281422 |
| [9] |
MA X J, LI Z T, TU H, et al. A data hiding algorithm for H.264/AVC video streams without intra frame distortion drift[J]. IEEE Trans Circuits Syst Video Technol, 2010, 20(10): 1320-1330. DOI:10.1109/TCSVT.2010.2070950 |
| [10] |
TIAN J. Reversible data embedding using a difference expansion[J]. IEEE Trans Circuits Syst Video Technol, 2003, 13(8): 890-896. DOI:10.1109/TCSVT.2003.815962 |
2018, Vol. 64

