APP下载

一种用于版权保护的压缩域视频水印算法

2013-06-10高宝建王玉洁郝露微

计算机工程 2013年6期
关键词:游程码流码字

邢 玲,高宝建,王玉洁,郝露微

(西北大学信息科学与技术学院,西安 710127)

1 概述

在新一代的光存储技术发展的过程中,一个令内容提供商和光存储产业制造商感到困难的问题就是未经授权拷贝与盗版工业,其造成的经济损失甚至使得蓝光数字多功能光盘(Digital Versatile Disc,DVD)和数字光存储格式的蓝色光束光碟(High Definition-DVD,HD-DVD)两大阵营的产品推出被迟滞[1]。如何控制并合理地使用多媒体产品,即版权保护成为下一代媒体发行的关键问题。电影厂商美国沃尔特迪斯尼、华纳兄弟娱乐、IBM、微软等8 家公司联合成立的“AACS LA(AACS Licensing Administrator)”联盟定制了“高级内容访问控制系统”(Advanced Access Content System,AACS)相关标准,其安全基础是高级加密标准(Advanced Encryption Standard,AES)算法加密技术(视频内容加密),但是如何对盗版行为进行追踪是该版权管理系统必须面对的问题。作为一种有效处理盗版追踪版权保护方法,数字水印技术已经成为数字版权保护领域的一个研究热点[2]。

视频水印可以分为原始视频水印和压缩域视频水印。原始视频水印是直接对未压缩的视频数据进行处理,与视频编码格式无关。此类方案较多,嵌入方法简单,但是会增加视频的数据比特率,抗攻击能力差,不能抵抗常规的视频处理和攻击,而且还会降低视频质量,另外,对于已经压缩过的视频,要先解码嵌入水印后再重新压缩编码,处理相对复杂[3]。压缩域视频水印在嵌入时要考虑mpeg 编码标准,压缩域水印算法选择的主要嵌入载体有离散余弦变换(Discrete Cosine Transform,DCT)系数、运动矢量和码流信息。在DCT 系数中嵌入水印[4],是目前研究最多的技术,可以借鉴图像DCT 水印的成果,这方面技术也最成熟,文献[4]算法嵌入的信息有较强的鲁棒性,但是水印容量较小而且需要仔细选择截止系数c 的值,计算较复杂;在运动矢量中嵌入水印[5],通过修改mpeg 编码视频流的运动向量来嵌入水印,文献[5]算法不会增加编码复杂度,但是会造成视频质量明显下降;在可变长编码域嵌入水印[6],相对于解码过程所需的时间,水印检测所需的时间可以忽略不计,实时性较好,但是该类算法需要考虑水印的抗再压缩性能。

由于视频数据本身信息含量大,通常在存储、传输过程中必须要对视频数据进行编码压缩,考虑到数字水印嵌入提取的实时性,需要将水印嵌入算法与压缩过程结合。本文以mpeg-2 为例,提出了一种在压缩过程中嵌入水印的算法。

2 算法及性能分析

2.1 mpeg-2 标准

本文算法结合mpeg-2 压缩过程,为此,先简单地描述mpeg-2 视频压缩标准中视频码流的组织格式。在语法上MPEG-2 视频流是分层表示的,其每一层包含一个或多个子层,如图1 所示。一般而言,一个视频序列是由多个图像组组成(Group of Picture,GOP),图像组包含连续的视频帧,如I 帧、B 帧、P 帧,一般的视频码流为16 帧成一个GOP组,其结构以IBBPBBPBBPBBPBBP 为主。每一视频帧又分为多个切片(slice)和宏块(macro-block)。最低层是块层(block-layer),一个宏块由亮度和色差块组成,在色度格式为4:2:0 的MPEG-2 视频流中,另一个宏块中包括4 个亮度块(Y0,Y1,Y2,Y3)和2 个色差块(Cb,Cr)[7-8]。

图1 mpeg-2 视频流分层语法表示

在宏块层中,视频帧图像8×8 的像素块经过量化后用64 个量化的DCT 系数表示。量化后的64 个DCT 系数,大部分系数为0,特别是空域中高频部分更是基本为0。随后,经过图2 所示的可变长编码器,这些DCT 系数将采用游程长度编码进行编码处理,将非零的AC 系数按“之”字形扫描并用一个二元组表示为(r,l),二元组中r 是当前系数之前的零的个数,l 表示当前系数值。最后在位域中,对元组(r,l)进行熵编码得到变长码码字。每一块的结尾的码字是块结束(EOB,End of Block)标志。由元组(r,l)构成部分被称为变长码域,最终结果编码为二进制数据流[9]。

图2 编码器工作流程

2.2 水印嵌入与提取算法

2.2.1 水印嵌入算法

算法选择在图像组I 帧的色度块中嵌入水印,以保证水印的安全性、实时性以及不可见性。水印采用大小为m×n的有意义二值图像W。具体算法原理如图3 所示。

图3 水印嵌入流程

水印的嵌入过程如下:

(1)将二值图像w 作为水印信号,原始水印信号变为一维信号,并与混沌序列进行异或运算,将水印加密;顺序读取原始视频,判断当前帧是否为I 帧,如果是,则读入水印准备进行嵌入,否则就进行标准的mpeg-2 压缩过程。

(2)将I 帧划分为若干宏块,根据密钥 k1选择要嵌入水印的宏块。

(3)如果当前块是要嵌入水印的块,在进行色度块5 游程编码结束后嵌入水印,否则就根据mpeg-2 标准对宏块进行处理。

(4)在游程编码结束后,找到结束符(00)(即EOB),根据密钥 k2,从结束符前面的6 个位置中选取一个位置嵌入水印,如果水印w= 0,判断要嵌入位置的游程码是否为(01),是则继续后面的处理,否则插入(01),如果水印w= 1,判断要嵌入位置的游程码是否为(0 -1),是则继续后面的处理,否则插入(0 -1)。插入位置的原游程码及后面的游程码依次往后移。

(5)插入水印的游程编码进行霍夫曼编码。

(6)重复以上过程直到水印全部嵌入。

2.2.2 水印提取算法

该算法可以在游程解码过程中提取水印,也可以在码流中根据头文件判断出I 帧,并根据密钥K1和K2直接在码流中提取水印,实现水印的随机检测。游程解码过程提取的水印流程如图4 所示。

图4 游程解码过程提取的水印流程

从游程解码过程中提取水印过程如下:

(1)读入码流,进行霍夫曼解码,判断当前是不是I 帧的数据,如果是,准备提取水印,否则根据mpeg-2 标准解码。

(2)根据密钥K1,判断对应块的游程编码是否含有水印,如果是,在游程码中提取水印,否则根据mpeg-2 标准解码。

(3)根据密钥K2,判断游程码中插入水印的位置,提取出嵌入水印的游程码,如为(01),则w=0 ;如果为(0 -1),则w=1 。

(4)对提取出水印的块的游程码进行解码。

(5)继续读入码流,直到视频解码完毕。

(6)用与发送端相同的混沌序列与提取出来的一维信号进行异或运行,对水印解密并恢复水印图像。

从码流中提取水印的过程如下:

(1)读入码流,根据头文件判断当前是不是I 帧数据,如果是,准备提取水印,否则根据mpeg-2 标准解码。

(2)根据密钥K1,判断对应块的码流中是否含有水印,如果是,在码流中提取水印,否则根据mpeg-2 标准解码。

(3)根据密钥K2,判断水印在码流中嵌入的位置,提取嵌入水印的码字,如果为“100”则w=0 ;如果为“101”,则w=1 。以mpeg-2 标准的Table B 为例,假设水印嵌入在游程编码结束符前面3 位,码流为…001011000100000011000110 找到块结束码0110,取结束码前17 位码(除去Escape 码,最长码字为17 位),对照标准码表中的码字,判断出00001100 为一个标准码字,再读取17 位码,判断出0100 为一个码字,然后取前面三位码字“100”,得知水印w=0 。

(4)对提取出水印的码流进行解码。

(5)继续读入码流,直到视频解码完毕。

(6)用与发送端相同的混沌序列与提取出来的一维信号进行异或运行,对水印解密并恢复水印图像。

从码流上提取水印的流程如图5 所示。

图5 从码流上提取水印的流程

2.3 性能分析

性能分析过程如下:

(1)与视频编码标准相结合,可以兼容现有的视频处理设备。数字电视、DVD 播放机和摄像机、数字视频摄像机等消费类电子产品都含有视频编解码模块,使得该算法可以直接应用于现有视频处理设备。

(2)对码率的影响。该算法只选择I 帧的部分块嵌入水印,首先判断要嵌入位置的游程码是否刚好对应当前要嵌入的水印,如果符合则不插入额外的游程码,如果不符合才进行插入,并且插入的游程码进行霍夫曼码编码时,是长度最短的码字,仅3 位,所以相对于整个视频,其对压缩后的数据量影响很小,即对码率影响很小。

(3)抗再压缩能力。设8×8块进行DCT 变换后为block (i,j)(1≤i≤8,1≤j≤8),量化矩阵为quant(i,j)(1≤i≤8,1≤j≤8),量化参数为scale,量化后的系数为 coef (i,j)(1≤i≤8,1≤j≤8),根据mpeg-2 标准中的量化定义:

根据式(1),对应的block (i,j)变为 block′(x,y):

视频重新压缩时,采用不同的量化参数scale′:

该算法在游程编码过程中,在特定位置插入不同游程码,从而实现水印的嵌入。在进行再压缩编码时,如果采用的量化参数小于原压缩视频量化参数的2 倍,那么插入的游程码不会因为量化过程而抹掉,水印能继续保持在视频中,具有抗再压缩的能力。

该算法与视频编码标准相结合,可在游程编码过程中低复杂度地嵌入水印,并对码率影响较小;水印能够抵抗再压缩攻击,保留在盗版的视频中;嵌入位置的选择空间大,增加了算法的安全性。因此,根据该算法嵌入的水印可以较安全的保留在盗版视频中,通过提取的水印识别视频的版权所有者或进行非法盗版者,达到版权保护的目的。

3 实验结果及分析

本文实验用Matlab 为仿真工具,版本号为7.8.0.347。载体视频共100 帧,每帧为240×320 像素,帧率为25 fps,图像组(GOP)结构为“IBBPBBPBBPBB”,在mpeg-2 过程中进行霍夫曼编码时采用Table B。原始水印图像为二值图像,大小为60×40 像素。

3.1 不可见性

为了验证水印的不可见性,假设视频帧的每个宏块中都嵌入水印,且水印全部嵌入到游程编码结束符(0 0)前的第6 个位置,这样水印对视频的质量影响最大。

由图6 从人眼的主观视觉来看,嵌入水印后的视频与原始压缩视频没有区别;目前最常用的客观评价办法就是计算水印嵌入前后视频帧的峰值信噪比PSNR[10]:

图6 嵌入水印前后视频帧对比(240×320 像素)

选择嵌入水印的视频帧计算PSNR,由表1 可知,PSNR都在40 dB以上,而PSNR平均值达到44.1 dB,当PSNR≥30时,人眼就不能感觉到视频中存在水印[11],认为视频质量较好。

表1 含水印视频帧与原视频帧的PSNR值 dB

表1 的数据是在采用对视频质量影响最大的嵌入情况下实验得到的,由此可见该算法水印的不可见性较好。

图7 是原始水印与正确提取出来的水印信号对比,图8是原始水印与加密后水印信号对比,由图8 可知,提取出来的信号不用混沌序列解密,得到的是噪声信号,不能得知水印的真正意义。

图7 原始水印和提取出的水印(40×60 像素)

图8 原始水印和未解密的水印(40×60 像素)

3.2 码率保持特性

算法的码率保持特性用嵌入水印前后编码每个图像组(GOP)所用的比特数的相对变化率来评价[12]。相对变化率=(水印嵌入后编码视频所用比特数-水印嵌入前编码视频所用比特数)/水印嵌入前编码视频所用比特数。由表2 可以看出,随着量化参数增大,相对变化率也增大,但是在量化参数为36 时,相对变化率才达到0.141%,基本可以忽略,满足码率稳定的要求。

表2 改变量化参数时码率的相对变化率(%)

3.3 抗再压缩性

为了客观评价所提取的水印序列,采用归一化相关系数来衡量原始水印w 和提取的水印′w 的相似度[13]定义为:

其中,ρ 的取值在0~1 之间,ρ =1 代表嵌入的水印信息全部被正确检测出来。ρ 的值越大,受攻击后的变化越小,代表水印的鲁棒性越强。

表3 为嵌入水印时量化参数分别为5、10、15、20、25 的视频经过不同量化参数再编码后,从I 帧提取的水印相似度。由表3 可见,经过再编码后,如果量化参数小于原量化参数2 倍时,可完全正确的提取水印,而当量化参数大于等于原来量化参数2 倍时,提取的水印才开始出现误码。

表3 含水印视频经再压缩后提取的水印与原始水印的相似度

而在盗版行业,盗版视频为了保证视频的质量,再压缩时量化参数一般不会大于原视频的量化参数,因此,水印可以抵抗再压缩攻击保留在盗版的视频中,可以实现盗版追踪。

4 结束语

本文提出一种应用于版权保护的压缩域视频水印算法。在游程编码过程中,根据要嵌入的水印插入对应的游程码,在解码视频的过程中,根据与水印对应的码表,读取水印。实验结果表明,该算法实现简单,具有良好的码率保持特性和抗再压缩能力,嵌入的水印能够保存在盗版的视频中,通过在盗版视频中提取的水印,可以有效地识别视频的版权所有者或非法盗版者,达到版权保护的目的。该算法是基于游程编码技术进行水印的嵌入和提取,因此,其同样可以应用到H.264、AVS 等运用了游程编码技术的视频压缩算法中。

[1]Bloom J A,Cox I J,Kalker T,et al. Copy Protection for DVD Video[J]. Proceedings of the IEEE,1999,87(7): 1267-1276.

[2]刘 军. 光盘版权保护系统若干关键问题的研究[D]. 武汉:华中科技大学,2009.

[3]曹军梅,张 震. 视频水印技术分析及其在电视版权保护中的应用[J]. 嵌入式系统应用,2006,22(4): 7-10.

[4]Langelaar G. Optimal Differential Energy Watermarking of DCT Encoded Images and Video[J]. IEEE Transactions on Image Processing,2001,10(1): 148-158.

[5]Jordan F,Kutter M,Ebrahimi T. Proposal of a Watermarking Technique for Hiding/Retrieving Data in Compressed and Decompressed Video[EB/OL]. (2010-12-05). http://academic.research.microsoft.com/Publication/3620504/proposal-of-a-wa termarking-technique-for-hiding-retrieving-data-in-compressedand-decompressed-video.

[6]Langelaar G C,Lagendijk R L,Biemond J. Real-time Labeling Methods for MPEG Compressed Video[J]. Journal of Visual Communication and Image Representation,1998,9(4): 256-270.

[7]杨高波,杜青松. MATLAB 图像/视频处理应用及实例[M].北京: 电子工业出版社,2010.

[8]Jack K. 视频技术手册[M]. 5 版. 杨 征,译. 北京: 人民邮电出版社,2009.

[9]陈 运,周 亮,陈 新. 信息论与编码[M]. 北京: 电子工业出版社,2006.

[10] Olsson S,Stroppiana M,Baina J. Objective Methods for Assessment of Video Quality: State of the Art[J]. IEEE Transactions on Broadcasting,1997,43(4): 487-495.

[11] 柏 潇,高宝建,雷蓓蓓,等. 基于LDPC 码的块均值视频水印算法[C]//2011 年青年通信国际会议论文集. 珠海:[出版者不详],2011.

[12] 马丽红,谢中华,刘小燕. 视频数据隐藏的差分能量调制新算法[J]. 中国图象图形学报,2010,15(1): 37-44.

[13] 孙文静. 基于能量差比率的DEW 视频水印算法[J]. 计算机科学,2010,37(5): 271-273.

猜你喜欢

游程码流码字
分布式码流实时监控与录制系统的设计与实现
数字电视TS码流协议简要分析
中国羽毛球组合郑思维/黄雅琼连续得失分规律研究
改进型相对游程长度编码方法
放 下
数据链系统中软扩频码的优选及应用
放下
RPT方法在多元游程检验中的应用
一种比较ASN.1码流差异的方法
基于梯度的CCSDS压缩码流控制算法研究