均衡特征的动态视频水印算法
2021-02-22郑秋梅杨亚男王风华曹学文
郑秋梅, 杨亚男, 王风华, 林 超, 曹学文
(中国石油大学(华东)a. 计算机科学与技术学院, b. 信息化建设处, c. 储运与建筑工程学院, 山东青岛266580)
互联网、计算机技术的快速发展给图像、音频、视频等多媒体作品带来版权保护和认证等问题,水印技术作为知识产权保护和认证的一种有效方式,得到了广泛的应用。不可见性、 鲁棒性以及水印嵌入容量是数字水印相互制约、相互矛盾的3个要素[1],如何兼顾水印技术的各个方面一直是水印领域研究的热点和难点。
近年来,国内外学者对数字图像水印技术的研究已日趋成熟,但视频水印技术还处于研究阶段。Shukla等[2]提取场景变化的关键帧,将水印嵌入在三级离散小波变换(DWT)的低频子带中,实验结果表明,该方法水印不可见性好,但水印嵌入容量有待提升,并且水印嵌入位置一直固定在视频帧的低频子带中,对抗各种攻击的鲁棒性还有很大的提升空间。马婷等[3]提出一种基于非下采样轮廓变换(NSCT)-DWT-奇异值分解(SVD)的多重数字水印算法,该算法利用NSCT对宿主图像进行分解,然后将分解后的与原载体图像大小相同的低频子带进行DWT和SVD,最后将水印信息叠加到奇异值矩阵,实验结果表明,该算法在保证水印不可见的基础上,对抵抗压缩、滤波、剪切攻击有很好的鲁棒性。虽然经过NSCT变换后获得的所有分量均和原始图像大小相同,但是DWT的应用使得低频子带大小变为原图像的1/22n(n为分解级数),制约了水印嵌入容量,并且水印嵌入位置是固定的。Ramkumar等[4]提出一种基于SVD和离散平稳小波变换(DSWT)的视频水印算法,将水印以加性准则嵌入到场景变换帧,DSWT的引入在确保不可见性的基础上保证了水印容量,但是抗压缩攻击能力不足,并且水印嵌入位置是静态的,鲁棒性有待提升。包宋建等[5]设计一种DWT-Schur分解结合的盲视频水印算法,实验结果表明,该方法对抵抗噪声攻击和视频攻击具有较好的鲁棒性,但水印嵌入位置是固定的。Narasimhulu等[6]利用NSCT和SVD同时分解原始视频帧和水印图像,利用加性准则将水印信息嵌入到原始视频的每一帧,结果表明,该方法在一定程度上均衡了水印的不可见性和嵌入容量,但水印在每一视频帧的嵌入位置是一样的,当受到剪切、旋转等攻击时鲁棒性较差。王运兰[7]提出一种基于极限学习机的DWT域视频水印算法,具有较好的水印不可见性,并且可有效抵抗多种攻击,但水印嵌入容量太小,水印嵌入位置一直固定在视频帧的五级DWT变换的低频子带中。上述研究在水印不可见性、鲁棒性、水印嵌入容量等方面均进行了探讨,但未使三者达到平衡,并且水印嵌入位置都是静态的。
本文中综合考虑水印不可见性、鲁棒性、水印嵌入容量3个特征,提出一种均衡特征的动态视频水印方法,应用NSCT、 离散余弦变换(DCT)以及DSWT等变换以满足水印的不可见性和嵌入容量要求,更好地隐藏水印嵌入位置,增强水印的鲁棒性。
1 相关理论
1.1 NSCT
da Cunha等[8]于2006年提出NSCT,由非下采样金字塔滤波器(NSP)和非下采样方向滤波器组(NSDFB) 2级滤波组成,非下采样方向滤波器组结构如图1所示。NSP采用金字塔式分解来保证多尺度特性,NSDFB为NSCT提供方向性,这2组滤波器都是双通道滤波器组,去除了上、 下采样,确保了平移不变性,有效抵抗水印算法受平移、旋转等攻击的影响,并且变换获得的所有分量均与原始图像有相同的大小,从而可以获得更多的水印嵌入系数,保证了水印嵌入量,因此,在数字水印算法的应用中非下采样轮廓变换不仅具有抵抗平移、旋转等攻击的优势,还保证了水印嵌入量。
图1 非下采样轮廓变换滤波器组结构
1.2 DCT
DCT因具有鲁棒性强、隐蔽性好的特点而广泛应用于数字水印技术中[9]。该方法具有很强的能量压缩和去相关能力,与数字图像的联合图像专家组(JPEG)压缩标准相适应,可以增强水印抵抗JPEG压缩能力。式(1)给出了二维DCT的数学方程,设图像的分辨率为N×N,则DCT定义为
(1)
1.3 DSWT
DSWT为图像处理提供了一种有效的数值解[10],近几年在数字水印领域得到了广泛的应用。DSWT在每个分解级别上对滤波器进行上采样,具有良好的线性表达效果,使得信号重建后更平滑,相对于传统DWT变换, DSWT抵抗噪声、滤波攻击更加出色。此外,由于DWT在对信号滤波后不进行下采样,而是在每2个滤波器系数间插入0来实现滤波器的延展,因此所得到的近似系数和细节系数的长度与原始信号相同,从而保证了水印信息的嵌入量。若给定二维逼近图像信号f(t),则DSWT公式为
(2)
式中:cj+1、dj+1分别为近似系数和细节系数;Hj、Gj分别为第j级尺度的低通和高通滤波器组;cj为第j级尺度的近似系数; *为卷积操作。
综上所述,NSCT具有良好抗平移、旋转等攻击的性能,DCT具有良好的水印不可见性,并且集中了图像的大部分能量,使水印能有效对抗压缩攻击,结合DSWT提高抗噪声、滤波攻击的能力,同时采用NSCT与DSWT以确保水印嵌入信息量,满足水印不可见性、鲁棒性和水印嵌入容量。对于视频水印来说,水印的嵌入位置也是尤其重要的,一旦攻击者确定水印嵌入位置,水印信息将无法保护,因此需要一种新的嵌入方法来增强水印的鲁棒性。
2 水印的嵌入与提取
本文中提出一种均衡特征的动态视频水印算法,更好地隐藏水印嵌入位置,增强水印的鲁棒性。在水印嵌入时,首先对视频序列分帧,提取出关键帧,将关键帧红绿蓝(RGB)颜色空间转换为灰度颜色空间,结合NSCT、DCT以及DSWT各自的优良特性,对关键帧应用NSCT-DCT-DSWT技术,得到与原图像大小相同的低频子带。在低频子带随机选择水印嵌入位置,以加强水印的安全性,将同样应用NSCT-DCT-DSWT技术的水印图像以加性准则自适应嵌入关键帧低频子带,重构含水印信息的低频分量,通过DCT逆变换和NSCT逆变换得到含水印信息的关键帧,最后将灰度空间转换为RGB颜色空间。该算法同时兼顾了水印不可见性、鲁棒性和嵌入容量,并且水印提取为水印嵌入的逆过程。
2.1 嵌入块的随机选择
为了增强水印的鲁棒性,本文中提出随机动态视频水印算法。在水印嵌入过程中,在视频帧低频子带上执行基于私钥key_bloc的伪随机生成器(PRG), 以便定义嵌入块(具有相同大小的水印)的随机坐标, 使得水印嵌入在视频帧的位置具有随机性,有效地增加了攻击者提取水印的难度,增强了水印的鲁棒性。在提取过程中, 通过密钥找到嵌入块,执行水印提取算法,具体过程如图2所示。PRG基于“蓄水池抽样(reservoid sampling)”算法[11],key_bloc作为密钥保存, 没有该密钥将无法准确定位到水印嵌入位置,进一步加强了水印的鲁棒性。
(a)嵌入过程
2.2 水印嵌入算法
设原始视频帧图像分辨率为M, 水印图像分辨率为W, 水印嵌入方法如图3所示, 具体嵌入步骤如下。
步骤1视频的帧与帧之间存在大量的信息冗余,若在每一帧都嵌入水印,不仅会导致空间复杂度增大,而且攻击者可以通过临近帧之间信息的累加,进一步破坏水印,使得水印的鲁棒性大幅降低。本文中采用颜色直方图差值法[12],从宿主视频序列提取若干关键帧图像,设关键帧数为Yk(其中k为帧编号),作为密钥保存。
步骤2读取关键帧图像和水印图像,将提取的关键帧图像从RGB颜色空间转换为灰度颜色空间。对灰度关键帧图像和水印图像运用3层NSCT(即为fNSCT(M,3),fNSCT(W,3)),得到1个低频子带(LM,LW)和8个高频子带(D1M,D2M,…,D8M;D1W,D2W,…,D8W),记为
[LM,[D1M,D2M,…,D8M]]=fNSCT(M,3),
[LW,[D1W,D2W,…,D8W]]=fNSCT(W,3)。
NSCT—非下采样轮廓变换; DCT—离散余弦变换; DSWT—离散平稳小波变换; RGB—红绿蓝。
步骤3选择包含大量图像能量的低频子带,进行DCT,得到fDCT,记
DM=fDCT(LM) ,
DW=fDCT(LW) 。
步骤4将低频子带DM和DW进行3级DSWT,得到fDSWT(DM,3)、fDSWT(DW,3),1个低频子带A和3个高频子带H、V、D分别记为
[MA,MH,MV,MD]=fDSWT(DM,3) ,
[WA,WH,WV,WD]=fDSWT(DW,3) 。
步骤5为了更好地隐藏水印嵌入位置,提高水印的安全性,应用2.1节中所述算法选择嵌入块(具有与水印相同的分辨率)的随机坐标,key_bloc作为密钥保存。
步骤6将低频子带的水印信息叠加到选定的嵌入块低频子带系数中,记为
式中α为水印嵌入强度因子。
因为本文中提出的算法的水印嵌入区域是随机选择的,即嵌入区域的纹理特征是变化的,所以固定的嵌入强度不能适应于所有的嵌入区域。基于此,应自适应选择嵌入因子,使得嵌入强度随图像局部特征的变化而变化。本算法根据嵌入块的噪声可见函数fNV值[13]自适应确定出不同嵌入块的水印嵌入因子。噪声可见函数为
(3)
通过使用噪声可见函数,水印嵌入强度为
α=(1-fNV)β,
(4)
式中β为调节水印不可见性的参数。
步骤10将含水印的关键帧图像颜色空间转换回RGB颜色空间。
步骤11对每个关键帧图像重复步骤2—10,得到所有含水印的关键帧图像。最后,将宿主视频中的关键帧图像替换为相应的含水印的关键帧图像,得到含水印的视频序列。
2.3 水印提取算法
水印提取是水印嵌入的逆过程,具体步骤如下。
步骤1根据密钥Yk选出含有水印信息关键帧图像。
步骤2将提取的含有水印信息关键帧图像从RGB颜色空间转换为灰度颜色空间。
步骤3对含水印的关键帧分别进行3层NSCT,得到1个低频子带和8个高频子带,记为
步骤8对步骤7得到的水印信息WA与水印嵌入步骤4中水印的高频子带进行DSWT逆变换,记为
DW=fIDSWT(WA,WH,WV,WD)。
步骤9将DW通过DCT逆变换对系数进行重构,记为
LW=fIDCT(DW)。
步骤10对步骤9得到的重构系数LW连同水印嵌入算法步骤2中的高频子带进行非下采样轮廓逆变换,提取出水印图像,记为
W=fINSCT[LW,[D1W,D2W,…,D8W]]。
在水印提取时,通过密钥Yk选出含水印的关键帧,并通过密钥key_bloc找到水印嵌入位置进行水印提取,没有这2个密钥将无法准确定位到水印嵌入位置,也就无法提取出水印信息,进一步加强了水印的鲁棒性。
3 结果与分析
本文中选用分辨率为352像素×288像素的视频流“包工头(Foreman)”(视频1)和“沉默不语(Silent)”(视频2)作为测试视频,如图4(a)、 (b)所示,水印图像选用分辨率为128像素×128像素的狒狒面部灰度图像,如图4(c)所示。算法中的非下采样轮廓变换的NSPFB和NSDFB滤波器类型分别为maxflat和pkva,DSWT采用Haar型小波基函数。以下将通过实验验证该数字水印算法的可行性和有效性。
3.1 不可见性实验和分析
采用峰值信噪比(PSNR)作为衡量水印透明性的评判标准[14]。通过计算嵌入水印所有关键帧PSNR平均值favg_PSNR,检验嵌入水印帧的视觉质量。所有关键帧PSNR平均值为
(5)
(6)
(7)
式中:Yk为视频序列关键帧的总数量;I(i,j)、I′(i,j)分别为原始视频帧图像和含水印的视频帧图像在(i,j)处的像素值;m、n为图像行、列值。一般情况下,PSNR大于35 dB时,认为无法觉察到视频图像失真。经式(6)计算,本文中提出的算法与文献[15-19]中含水印的视频帧平均峰值信噪比见表1。依照本文中提出的算法,对关键帧完成水印的嵌入与提取,嵌入水印后的视频帧见图5。
表1 不同算法嵌入水印的平均峰值信噪比
从表1中可以看出,文献[15]中算法的平均峰值信噪比为50 dB左右,而本文中提出的算法嵌入水印后的平均峰值信噪比为46 dB左右,在所列方法中位居第二。虽然本文中提出算法的不可见性逊色于文献[15]中算法的,但是也满足了人类视觉要求,有较好的不可见性。另外,本文中提出的算法采用NSCT与DSWT变换,在同等规则下能够在原始载体图像中嵌入更多的水印信息量,图像在感观上仍未受到影响。
3.2 鲁棒性实验和分析
采用原始图像与提取水印后图像两者之间的标准化互相关系数(NC)客观评价本文中提出算法的鲁棒性[20],NC值ρ的计算公式为
(8)
式中:W(i,j)、W′(i,j)分别为原始水印和提取水印图像在(i,j)处的像素值;X、Y分别为水印图像的宽度和高度。
从式(8)中可以看出,NC值越大,水印失真越小, 水印鲁棒性越好。 图6所示为视频1、 2在未受
到任何攻击下提取出的水印图像,对应的NC值均大于0.999 0。
为了验证本文中提出的水印算法的鲁棒性,对嵌入水印的2段视频分别进行空间域的加噪、滤波、压缩、旋转、剪切和时间域的帧丢失、帧置换、帧平均等攻击,并给出相应的实验结果。
3.2.1 空间域攻击
表2所示为本文中提出的算法和文献[15-19]中的算法在遭受常见空间域攻击下提取出的水印NC值。 从表中可以看出, 本文中提出的算法在抵抗常见的空间域攻击NC值均达大于0.98,普遍优于文献[15-19]中的算法。 为了获得更直观的效果, 给出2段视频在遭受空间域攻击后所提取出水印的部分结果, 如表3所示。 从表中可以看出, DSWT的引入使得本文中提出的算法抵抗各种噪声攻击具有很好的鲁棒性; DCT具有出色的能量压缩和去相关能力, 使得本文中提出的算法抵抗JPEG压缩攻击具有很好的鲁棒性, 即使压缩质量因子降到30, 仍然能够提取较清晰的水印图像。 面对较难抵抗的旋转攻击, 本文中提出的算法在视频1旋转30°的NC值为0.986 0, 旋转60°的NC值仍达到了0.984 6, 表现出了较好的鲁棒性。 这是因为NSCT低频子带系数代表原元素与其邻域系数间的关系, 经旋转攻击后元素间关系改变较小, 所以遭受旋转攻击后性能不会下降很多。 总的来看, 无论从表2中的实验数据还是从表3中的水印效果图像来看, 本文中提出的算法对空间域攻击具有很好的鲁棒性。
3.2.2 时间域攻击
为了验证本文中提出的算法对于时间域攻击的鲁棒性,对2段嵌入水印后的视频分别进行帧丢失、帧置换和帧平均等攻击, 实验结果如表4所示。 视频序列存在很多冗余数据,而本文中的水印信息是嵌入在关键帧的随机块中,每个水印图像在视频帧中的位置是不一样的,删除部分帧或者进行若干帧置换,不会显著影响视觉效果,NC值保持在0.98以上。从表中可以看出,本文中提出的算法性能优于文献[15-19]中的算法性能,对时间域攻击具有良好的鲁棒性。
表2 空间域攻击下提取水印图像的标准化互相关系数
表3 空间域攻击后提取的水印图像
3.3 水印嵌入载荷实验和分析
水印有效载荷公式为
(9)
式中N′、N分别为关键帧数和视频帧总数。 表5所示为本文中提出的算法与文献[15-19]中的算法的水印嵌入载荷的比较结果。 从表中可以看出, 在水印嵌入量方面, 本文中提出的算法明显优于文献[15-19]中的算法。 NSCT、 DSWT是冗余变换,经NSCT-DCT-DSWT变换后, 各子带图像与原始图像大小一致, 可供嵌入水印的子带系数都比小波域多。 文献[15]中的水印图像分辨率为128像素×128像素, 载体图像分辨率为1 024像素×1 024像素, 水印有效载荷为0.015 6比特/像素; 文献[16]中的水印图像分辨率为32像素×32像素, 视频帧分辨率为352像素×288 像素, 水印有效载荷为0.010 1比特/像素; 文献[18]中的水印图像分辨率是49像素×56像素,视频帧分辨率为144像素×176像素,
表5 不同算法的水印嵌入容量比较
水印有效载荷为0.108 3比特/像素。本文中提出的算法在保证良好的水印不可见性和鲁棒性的前提下,可以嵌入分辨率为128像素×128像素的灰度水印图像,水印图像大小是文献[16]、 [19]中算法的16倍,水印有效载荷为0.161 6比特/像素,相比文献[15-19]中的算法分别提升了0.146 0、 0.151 5、 0.104 1、 0.053 3、 0.099 1比特/像素,水印嵌入容量大幅度提升。
4 结语
本文中提出一种均衡特征的动态视频水印算法。 该算法结合NSCT、 DCT以及DSWT这3种变换的优点以保证水印的不可见性、 鲁棒性以及水印嵌入容量。 在水印嵌入过程中, 水印嵌入到视频关键帧的随机块, 这种随机嵌入方法更好地隐藏了水印嵌入位置, 从而能够加强水印的鲁棒性。 实验结果表明, 该算法在保证水印不可见和水印嵌入量的前提下, 在抵抗空间域攻击和时间域攻击方面都有很好的鲁棒性, 对数字产品的版权保护具有促进作用。