李莹
(陕西工业职业技术学院信息工程学院,陕西咸阳712000)
摘要:为了将视频水印技术应用于实时流媒体的安全传输,设计并实现了一个实时流媒体数字水印系统。该系统基于客户机/服务器(C/S)架构,采用模块化的思路进行设计,服务器端支持以数字形式输入的视频流,客户端可以在解码播放的同时实时提取出数字水印信息。为了满足流媒体的实时、安全传输,提出了一种改进的水印算法,该算法计算每段码流中所有可变长度码(VLC)对应的游程累积和,当累积和大于30时修改该段码流中最后一个VLC的值。最后将该算法与经典的差分能量水印(DEW)算法在鲁棒性、不可感知性、水印容量和计算复杂性等方面进行了对比,结果表明提出的算法优势明显。
教育期刊网 http://www.jyqkw.com
关键词 :流媒体;数字水印;动态图像专家组;性能评价
中图分类号:TN919.6?34;TP309.2 文献标识码:A 文章编号:1004?373X(2015)15?0045?05
收稿日期:2015?03?06
0 引言
流媒体是指通过网络传播,能在本地终端播放,具有实时特征的媒体内容编码数据流,原理是把连续的音频信息经过压缩处理放到互联网上,用户首先在网络上定位资源,然后建立专门的流媒体传输通道进行信息的传输[1]。流媒体的出现大大方便了人们的生活和学习,但也随之带来非法拷贝、作品侵权等严重问题。数字水印技术是指将信息嵌入数字载体(如多媒体信息流、文档等)中,既不影响原载体的使用,也使其不易修改[2]。由于数字水印技术可以在开放的网络环境下保护流媒体信息的版权和完整,因此该技术也得到了快速发展。
国内外学者对流媒体数字水印技术开展了大量研究,Liu等人使用水印方法进行视频保护[3],水印在嵌入前需进行场景检测,能处理丢帧、帧交换、噪声等问题。Biswas等人提出自适应地向视频压缩域中添加水印的算法[4],该算法可以随压缩域被解码而自适应地调整。Ye等人提出一种自适应的视频水印方案[5],通过块分类的方法选择合适的嵌入位置,该算法充分考虑了编码时量化步长的变化,在一定程度上能满足实时的应用需求。虽然针对流媒体数字水印技术的研究较多,但由于流媒体技术融合了服务器配置、并发访问控制、智能缓存、传输协议、音频信息处理、媒体数据处理等技术,需要解决的技术问题非常多[6]。水印技术也要满足安全、鲁棒、隐蔽等要求[7],目前常用的算法都存在一定缺陷。为了解决这两个问题,本文设计并实现了一个实时流媒体数字水印系统,并提出一种快速水印算法,通过与经典的DEW 算法对比,证明本算法的优势明显。结果表明本系统设计合理、性能良好。
1 基于MPEG?4实时流媒体数字水印系统的设计
进行实时流媒体数字水印技术研究时,需要一套完整的实时流媒体系统作为基础,在此基础上研究有效的水印算法。实时流媒体数字水印系统的实现主要考虑系统设计、服务器端设计和客户端设计三部分内容。
1.1 系统设计
系统设计主要包括系统架构选择、编码标准选择和网络传输协议选择三部分内容。对于系统架构,实时流媒体系统的常用架构是C/S模式和P2P模式,由于本文的实时流媒体系统主要用于局域网内,并且需要一个明确的媒体源提供者角色,而且并发访问用户的数量也有限,因此使用C/S 架构。对于编码标准,目前常用的编码格式是H.264,MPEG?2和MPEG?4,由于MPEG?4包含对象编码、图像分层处理等先进技术,在编码质量和计算复杂性上具有很好的平衡,因此本文采用MPEG?4格式。对于网络传输协议,考虑到成本、传输层的稳定性,并参考目前的成熟框架,本文使用应用层的RTP/RTSP协议作为实时流媒体系统的网络传输协议。
1.2 服务器端设计
基于C/S模式的实时流媒体数字水印系统中,服务器端处于核心地位,服务器端包含了五个子模块:数据采集模块、MPEG?4编码器模块、数字水印嵌入模块、流媒体服务器模块和控制中心。其中,数据采集模块用于实时捕获图像数据,并对数据进行压缩编码和缓存。MPEG?4 编码器模块用于对数据采集模块缓存的图像序列进行压缩编码,输出为MPEG?4码流。数字水印嵌入模块负责完成水印嵌入功能,本文的数字水印算法将在第2节详细介绍。流媒体服务器模块负责储存已有的MPEG?4视频文件,并向用户提供连接和传输服务。控制中心主要通过对服务器端运行时的实时数据进行分析,动态地调整相关参数,以保证服务器端高效稳定运行。
1.3 客户端设计
客户端部署在普通PC机上,主要包括:网络连接模块、数字水印信息提取模块、视频解码与视频播放模块和控制中心四个子模块。其中,网络连接模块的作用是将用户的点播需求转化为流媒体应用规范的连接请求,并向服务器发出请求,请求通过后维护网络连接、接收视频数据。数字水印信息提取模块的作用是,只有在正确提取数字水印的前提下才允许用户对视频数据进行解码播放。视频解码与视频播放模块能够对复合ISO标准的MPEG?4 视频文件与视频流进行解码。控制中心的功能是与用户操作进行交互,将用户的操作指令转化为访问请求,再通过网络连接模块通知服务器端。
2 改进的实时流媒体数字水印快速算法
目前常用的流媒体数字水印算法主要有基于离散余弦变换(DCT)系数修改的算法[8]、差分能量水印算法(DEW)[9]和基于VLC 修改的算法[10]三种。但基于DCT系数修改的算法和DEW 算法都有计算复杂、难以保证实时性、水印容量低的缺点,不适合应用在实时流媒体中。基于VLC修改的算法虽然适合应用在实时流媒体中,但该算法比较固定且容易被破解。因此本节参考基于VLC 修改的算法,提出一种基于VLC 修改且结合码流填充的水印算法。
2.1 数字水印算法的基本概念
研究数字水印算法时,需要涉及最低有效位(LSB)替换方法和填充方法。LSB 替换方法是指对于要处理的码流对象,将其最低有效位使用水印信息进行替换。LSB替换方法在视频处理领域得到了广泛应用,其快速简单的思想满足流媒体对实时性的要求。
当一帧数据被编码完成,需要写入码流时,需要采用填充的方法对其进行后处理,包括加入供解码用的符号位、修改码流片段头部信息、长度补齐、设定块结束符等动作。在当前的视频编码中,填充主要分为补充填充、修改填充、补充与修改结合三种。
2.2 改进的数字水印算法原理
视频数据源是空间域的图像,在编码过程中经颜色空间转换和DCT 变换后,其对应的频域为8×8 DCT 矩阵。频域中的DCT矩阵再经过量化、熵编码、算术编码等步骤,对应到码流中的VLC,码流生成的基本过程如图1所示。
水印嵌入算法将MPEG?4码流按片段进行划分,每一个码流片段最多嵌入1 b 水印信息。如果当前处理的码流片段没有被算法选中,则不进行处理。首先使用密钥生成伪随机序列,作为水印嵌入的调制模板,执行嵌入时水印信息按照模板逐比特进行嵌入。嵌入水印之后,还要保证码流不变。
水印提取算法与嵌入算法类似,首先通过密钥生成伪随机序列,然后定位码流片段,最后将码流片段中包含的水印信息提取出。提取水印时同样需要对码流片段的描述信息进行分析,以保证水印的正确提取。
2.2.1 水印嵌入
水印嵌入算法分为调制水印信息和嵌入数字水印两个步骤。对于调制水印信息,使用伪随机序列对水印信息进行调制时,需要参考当前MPEG?4码流中的码流片段数量,以此作为随机数的生成空间大小,再以水印信息的长度(即比特数)作为生成空间的种子数。这样做的好处是:当MPEG?4码流中码流片段的数目大于水印信息长度时,能够比较均匀地将水印信息嵌入至整个码流中,保证信息分布的随机性。
对于嵌入数字水印,嵌入算法的思想如下:
(1)将数字水印信息序列化,方便逐位处理。
(2)根据水印调制得到的序列,在视频码流缓存中查找嵌入位置所处的码流片段。
(3)比较执行LSB 嵌入之后的码流长度L1 和原始码流长度L0,如果L1 < L0,则使用填充的方式在码流后填零值;如果L1 > L0,则撤销之前的LSB嵌入操作;如果L1 = L0,则保存LSB嵌入后的码流;当码流中所有块都被处理完成后,得到新的MPEG?4码流。
2.2.2 水印提取
水印提取分为生成调制模板和提取数字水印两个步骤。其中,生成调制模板与水印嵌入时使用伪随机序列调制相同。提取数字水印的思想如下:
(1)输入待解码的视频码流,首先对当前码流片段进行VLC解码;
(2)计算码流片段中最后一个VLC的游程累积和,记为i;
(3)比较i 和阈值c,如果i > c,则使用LSB 方法提取VLC的最低有效位;如果i ? c,则重新计算最后一个VLC的游程累积和,并重新比较i 和c,直到码流中所有块都被处理完毕。
2.2.3 本文算法嵌入阈值的选择
视频的质量和水印的不可感知性由水印嵌入前后对应帧的峰值信噪比(PSNR)衡量,PSNR 值越大,进行比较的画面越接近。本文的LSB替换方法希望尽可能作用于高频信号对应的系数,所以算法选择码流片段最后一个VLC进行LSB替换。本文算法通过设置一个阈值c,用来作为码流片段最后一个VLC是否能够被LSB替换的判断阈值。当最后一个VLC的游程累积和大于c 时,可以对VLC进行LSB替换。
如果c 值太大(如大于50),码流片段中可能没有VLC与之对应,导致水印容量很小;如果c 值太小(如小于20),会造成视频质量大幅下降,破坏水印的不可感知性。本文基于人类视觉系统(HVS)模型,通过大量实验,对MPEG?4视频流进行了分析和统计,MPEG?4视频流进行LSB嵌入前后对应帧的PSNR平均值,如图2所示。由图2可以看出,随着c 值增大,PSNR逐渐上升。c 值在[15,32]之间时,PSNR变化剧烈,c 值超过32后,PSNR变化平缓,因此建议c 的取值范围为[30,35],本文取30。
3 系统性能评价
本节对开发的实时流媒体数字水印系统的性能进行评价,包括对水印系统的流媒体实时性能评价和对水印算法的性能进行评价。其中,水印算法的评价又分为鲁棒性、不可感知性、水印容量和计算复杂性四部分。为了进行对比,设置了两种场景,场景1的服务器与客户端位于同一个局域网内,场景2的服务器与客户端位于不同局域网内。
3.1 流媒体实时性评价
衡量流媒体性能的主要指标是系统的实时性能,主要包括初始连接时间、数据传输延时和客户端接收数据包的时间分布三个因素。
3.1.1 初始连接时间
初始连接时间是指从客户端发出连接请求,到第一帧视频数据传输至客户端花费的时间,初始连接时间反映了服务器端的资源查找和调度效率。在两种场景下对初始连接时间分别测试20次取平均值,场景1的初始连接时间为2.7 s,场景2的初始连接时间为18.6 s,说明服务器与客户端位于同一个局域网时初始连接时间更短。
3.1.2 数据传输延时
数据传输延时是指在服务器端编码的一帧数据从编码完成,到被客户端接收解码播放所花费的时间,数据传输延时体现了流媒体网络传输的稳定性。同样在两种场景下对数据传输延时分别测试20次取平均值,场景1 的数据传输延时为11.7 s,场景2 的数据传输延时为26.6 s,同样慢于场景1,这表明流媒体系统的服务器端在合理的配置下提供了稳定的传输性能。
3.1.3 客户端接收数据包的时间分布
由于网络传输存在抖动,会导致客户端接收数据包时出现不稳定的现象,即某个时间段内收到的数据包多,某个时间段内收到的很少,影响了客户端观看视频的连贯性。测试时,客户端从建立连接传输图像后开始,对连续60 s内收到数据包的收包时间戳进行记录,分析这连续60 s内收包时间戳在时间上的一维分布,从而判断网络的抖动程度,分布均匀说明抖动轻微。从记录开始,每1 s为一个区间,统计落在区间内的时间戳数量,如图3所示。由图3可以看出,场景1的抖动较小,这是因为网络性能较好,数据传输更稳定,丢包率也较低。
3.2 数字水印算法性能评价
对水印算法的评价从鲁棒性、不可感知性、水印容量和计算复杂性四部分展开。为了直观表达,测试时将本文算法与经典的DEW算法进行对比。
3.2.1 鲁棒性评价
鲁棒性体现了水印算法的安全性,本节的测试通过对水印被正确提取的概率分析水印的鲁棒性。测试时,在服务器端设置水印信息为“Welcome to the System”,测试进行10次嵌入和提取,测试结果取平均值,结果如表1所示。
由表1 可以看出,DEW 算法有较小的提取错误概率,而本文算法达到了零误码率,这表明本文算法可以满足正确提取的要求。
3.2.2 不可感知性评价
对于流媒体视频数字水印,不可感知性是指水印嵌入前后流媒体视频的改变程度,改变越大,水印对视频数据的修改越多,画面纹理、亮度、色彩改变的程度也越大,更容易被察觉。感知度评价又可分为客观评价和主观评价。
(1)客观评价
客观评价比较的是一段视频序列在嵌入水印前后的PSNR,对比时数据源使用一段时长5 min的MPEG?4视频流。测试时从该视频流的第100帧开始,记录并计算连续35帧数据在嵌入水印前后对比的PSNR,如图4所示。其中,嵌入阈值均设为30。
由图4可以看出,本文算法的不可感知性优于DEW算法,这是由于DEW算法修改了更多的DCT系数,将子区域中大于阈值的DCT系数全部置为0,因此视觉质量较低。
(2)主观评价
主观评价的做法是:多人次对嵌入了水印的视频流通过肉眼观察其播放质量。以第120帧的画面为例,对比如图5所示。
由图5可以看出,由于使用了相同的MPEG?4视频编码器,且两种算法都是小幅修改了视频的码流,因此视频质量都比较好,通过肉眼难以看出差别。
3.2.3 水印容量评价
测试对象选择一个320×240分辨率的MPEG?4视频文件,编码码率为4 Mb/s。测试时平均20帧/s视频,记录其中每帧的水印容量,测试得本文算法的水印容量为132 B,DEW 算法的水印容量为7 B。按实时流媒体中每秒15 帧计算,本文算法的水印容量为16 Kb/s,而DEW 算法的水印容量为0.85 Kb/s。因此,本文算法的水印容量远大于DEW算法的水印容量。
3.2.4 计算复杂性评价
计算复杂性的评价方法是:计算平均一帧视频数据进行水印嵌入时花费的嵌入时间,看其占平均每帧编码花费的时间比例。两种算法的对比结果如图6所示。
由图6看出,本文算法的水印嵌入耗时占编码耗时的9.3%,而DEW 算法的水印嵌入耗时占编码耗时的12.4%。本文算法的计算复杂性小于DEW算法,因此更容易满足实时性要求。
4 结论
本文设计并实现了一个基于MPEG?4 的实时流媒体数字水印系统,并提出了基于VLC 修改和码流填充方法的实时流媒体数字水印算法,最后从鲁棒性、不可感知性、水印容量和计算复杂性四个角度出发,将本文算法与经典的DEW 算法进行对比,结果表明本文的算法更适合用于对实时性和水印容量要求较高的场合。
教育期刊网 http://www.jyqkw.com
参考文献
[1] 田晖,卢璥,陈永红.流媒体信息隐藏的安全性界定及安全容量模型[J].郑州轻工业学院学报:自然科学版,2012,27(3):5?10.
[2] 宋苏宇,何振,吕书林.一种基于Arnold和量化的DCT域盲水印算法[J].郑州轻工业学院学报:自然科学版,2011,26(5):48?52.
[3] LIU Y,WANG D L,ZHAO J Y. Video watermarking based on scene detection and 3D DFT [C]// Proceedings of 2007 the 5th IEEE International Conference on Circuits, Signals and Systems. Canada:IEEE,2007:124?130.
[4] BISWAS S,DAS S R,PETRIU E M. An adaptive compressed MPEG?2 video watermarking scheme [J]. IEEE Transactions on Instrumentation and Measurement,2005,54(5):1853?1861.
[5] YE D P,ZOU C F,DAI Y W,et al. A new adaptive water?marking for real?time MPEG videos [J]. Applied Mathematics and Computation,2007,185(2):907?918.
[6] 谢舒婷,张珍.基于XACML流媒体服务器的Web访问控制模型[J].计算机技术与发展,2010,20(9):136?139.
[7] 梁强,邱志宏,张爱科.基于水印技术的隐蔽通信算法设计[J].计算机工程与科学,2010,32(8):32?35.
[8] 王宏霞,何晨,丁科.采用均值量化的DCT域数字水印[J].计算机辅助设计与图形学学报,2004,16(8):1134?1139.
[9] 文志强,朱文球,胡永祥.基于离散小波变换的差分能量水印技术[J].计算机应用与软件,2013,30(6):25?28.
[10] LANGELAAR G C,LAGENDIJK R L,BIEMOND J. Real?time labeling of MPEG?2 compressed video [J]. Journal of Vi?sual Communication and Image Representation,1998,9(4):256?270.
作者简介:李莹(1980—),女,陕西蓝田人,硕士,讲师。主要研究方向为计算机应用、图形图像处理、数字水印等。