冯和平 李翠翠 宋杰
摘要: 数字水印是一种数字产品版权保护技术,它可以标识作者等版权保护信息和认证信息,可以监视被保护数据的传播,鉴别真伪,解决版权纠纷,因此它一出现即成为热点问题。文章主要针对数字水印技术在视频版权保护中的应用情况,提出了一种实用的用于视频水印的算法,并给出了Matlab仿真结果。实验证明,该视频水印方案能够抵抗多种干扰和攻击,具有良好的稳定性、鲁棒性和防篡改性。
Abstract: Digital watermarking is a digital copyright protection technology. It can be identified by information such as copyright protection and authentication information, can monitor the spread of the protected data, can distinguish authenticity and resolve copyright disputes, so it emerged as a hot issue. This paper aimed at the application of digital watermarking technology in video copyright protection, proposed a practical algorithm for video watermarking, DCT and IDCT transform in the algorithm can be achieved by logic circuits in the FPGA development platform,and gave the Matlab simulation results. Experiments show that the video watermarking scheme resistant to a variety of interference and attacks, has good stability, robustness and tamper-resistant nature.
关键词: 数字水印;视频;仿真;DCT变换
Key words: watermarking;video;simulation;DCT transform
中图分类号:TP309.2 文献标识码:A 文章编号:1006-4311(2018)14-0151-02
视频水印是针对数字视频载体的主客观的时间和空间冗余加入信息,不会影响视频的质量,还能达到保护版权和内容完整性检验目的的水印技术,视频水印不但具有一般水印技术的特征,而且还有一些特殊的要求,可概括为:不可见性:视频嵌入水印后不影响视频画面的质量,从而确保视频数据的商业价值;稳健性:视频水印应该能够抵抗各种无意或故意的攻击包括帧平均、帧丢弃、帧交换等专门针对视频水印的攻击;安全性:视频水印中的信息应是安全的,保证不能被轻易的被篡改或伪造,未经授权的用户无法正确地检测、提取或移除水印;与视频编码标准相结合:在原始视频中嵌入水印必须考虑视频编码标准,不然嵌入的水印有可能在编码过程中消失。
本设计采用空间域和变换域相结合的水印算法即在原始视频的DCT变换域中进行水印的嵌入和提取,且本设计将按块进行频域变换和将视频流看成静态图像的序列两种方式相结合再利用图像水印技术进行水印处理技术进行水印的嵌入和提取,所以鲁棒性和不可感知性有了较大的改善。
视频水印同一般水印一样分为两部分:水印的嵌入、水印的检测和提取。水印的嵌入就是将水印信息按照事先约定好的位置嵌入到原始数据中。如图1所示。
水印信号检测和提取是指按照水印嵌入思想判断某一数据中是否含有指定的水印信号并提取出水印信号的过程。因为保存所有的原始视频是比较困难的,因此检测模型采用盲检测即不需要原始参照视频,模型如图2所示。
视频是由一系列连续的静止图像在时间域构成的序列,因此静止图像水印技术可以直接运用于视频水印之中,本设计就是在静止图像水印技术基础上提出的一种新的盲视频水印方案,该方案是在DCT变换域中嵌入和提取水印,但运算量大,只有实时性要求不太高时才能满足视频媒体实时处理的要求,为此又设计了两个硬件模块:DCT变换和IDCT变换,从而提高了视频处理的实时性。视频文件的嵌入和提取流程图如图3。
2.1 水印的嵌入算法
将一幅真彩色图片作为水印信息嵌入到视频流中,具体方法如下:首先将水印图片的RGB值分解成为24个矩阵,再从0和1中任意选一个标志位,这样就有同样大小的25个矩阵作为水印信息,25个矩阵中的数有0和1组成,为了保证水印的不可感知性和减小计算所带来的误差,假设M是二值矩阵,大小为M1×M2,则M={m(i,j),0≤i 其次将原始视频(25帧/s)中每帧真彩色图片的RGB值重新组合生成一个同帧图片矩阵大小相等的新矩阵,把新矩阵分成8×8的小块进行DCT变换,变换后再将相应的水印信息嵌入到8×8小块预定的位置上,以便提高水印的鲁棒性和不可感知性,其中25n(n>=1)帧作为标志帧。嵌入后再将8×8小块进行DCT反变换即IDCT变换还原到原始视频中。
嵌入算法的Matlab仿真结果如图4。
水印嵌入过程中DCT和IDCT变换运算量大,用软件实现会占用大量CPU资源,运算时间过长,因此将DCT和IDCT变换硬件模块化,以自定义指令的方式与Avalon总线连接,实现各个模块的协调工作,从而提高了处理效率。DCT硬件模块利用Verilog HDL语言及结构图的方式编写,该模块直接与Avalon总线连接,实现8×8二维矩阵的离散余弦变换。利用软件以64个数为一个单位顺序写入该模块,再将计算结果顺序输出。IDCT硬件模块也是利用Verilog HDL语言及结构图的方式编写,直接与Avalon总线连接,实现8×8二维矩阵的离散余弦反变换,利用软件以64个數为一组顺序写入该模块,再将计算结果顺序输出。
2.2 水印的检测算法
本检测算法采用盲提取,具体思路如下:根据嵌入算法将嵌入水印后视频中每帧真彩色图片的RGB值重新组合生成含有水印信息的新矩阵,把新矩阵分成8×8的小块进行DCT变换,再从嵌入位置提取出水印信息,提取过程中要设定一个阀值h/2,若提取的值大于h/2则将其变为1否则变为0,这样就可以得到25个水印信息矩阵,且第25个矩阵是标示矩阵起到一个标志的作用。最后按照水印图片的分解方法重新组合即可得到要提取的水印图片。原水印和在不同强度下提取水印效果图如图5(a)、(b)、(c)、(d)、(e)、(f)和(g)所示。将原视频流进行两种方式篡改,一种是椒盐处理,另一种是双线性插值旋转处理,分别提取水印的效果图和处理后的视频效果图如图5(h)、(i)、(j)和(k)。由提取实验结果可知:水印像素点的强度h=52即可达到最佳效果。
文章设计实现了基于DCT变换的数字视频水印嵌入和提取方案,使用DCT变换,不会增加视频流的数据比特率。由Matlab仿真结果可知:该方案不影响原内容的价值和使用,具有较好的鲁棒性和不可见性,且该方案的提取算法能够检测到视频数据是否被篡改,具有一定的防篡改性,给攻击者增加了一些去除水印的难度。
[1]Rotation T Pun.Scal and translation invariant spread spectrum digital image watermarking.Signal Processing,1998,66(3): 303-317.
[2]Bors A. Image watermarking using block site selection and D.C.T domain constraints.Optics Express,1998,3(12):512-523.
[3]孙圣和,陆哲明,牛夏牧,等.数字水印技术及应用[M].北京:科学出版社,2004:578.
[4]孙悦,孙洪,姚天任.多媒体水印技术的研究进展与应用[J].系统工程与电子技术,2003,25(6):772-776.
[5]王炳锡,陈琦,邓峰森.数字水印技术[M].西安:电子科技大学出版社,2003.