基于帧间DCT系数相关性的视频水印嵌入和提取方法及系统

文档序号:26057475发布日期:2021-07-27 15:36阅读:125来源:国知局
基于帧间DCT系数相关性的视频水印嵌入和提取方法及系统

本发明属于数字视频水印领域,具体涉及基于帧间离散余弦变换(discretecosinetransform,dct)系数相关性的视频水印嵌入和提取方法及系统。



背景技术:

本部分的陈述仅仅是提供了与本公开相关的背景技术信息,不必然构成在先技术。

随着互联网和多媒体技术的发展,视频与人们的生活越来越紧密,同时,视频获取方式的拓宽使得视频的盗版问题也越来越严重。为保护视频版权,视频水印技术通过将版权信息(即水印)以不可见的形式嵌入视频中,在发生版权纠纷时,提取视频中的水印证明版权所有。然而,目前的视频水印在不可感知性和鲁棒性方面仍有不足,性能有待进一步提高。

dct有良好的能量集中性和计算复杂度低的快速算法,被广泛应用于视频水印中,目前的基于dct的视频水印大多都是将视频分成的单独帧看作图像,基于帧内的特征修改其dct系数嵌入水印。

h.j.ko,c.t.huang,g.horng,s.j.wang,2019年在informationscience上发表的论文“robustandblindimagewatermarkingindctdomainusinginter-blockcoefficientcorrelation”和s.a.parah,j.a.sheikh,n.a.loan,2016年在digitalsignalprocessing上发表的论文“robustandblindwatermarkingtechniqueindctdomainusinginter-blockcoefficientdifferencing”提出了基于块间系数相关性的水印方法。然而,对于视频而言,视频帧间的系数相关性高于块间的系数相关性,现有方法没有有效地利用视频的相关性。因此,如何利用视频的相关性嵌入水印,是提升视频水印的不可感知性和鲁棒性所需解决的问题之一。



技术实现要素:

为克服上述现有技术的不足,本发明为了提高视频水印的不可感知性和鲁棒性,利用视频本身存在的相关性,提供了基于帧间dct系数相关性的视频水印嵌入和提取方法,通过修改或判定相邻两帧中前一帧的dct系数实现嵌入或提取水印。

为实现上述目的,本发明的一个或多个实施例提供了如下技术方案:

本公开的第一方面,提供基于帧间dct系数相关性的视频水印嵌入和提取方法,包括:

视频水印嵌入方法,步骤为:

读取原始宿主视频,从原始宿主视频中提取出原始宿主视频的亮度分量;

将亮度分量的每一帧分为互不重叠的图像块,计算所有帧的运动块比率,提取嵌入帧和参考帧;

对当前嵌入帧及其参考帧的图像块进行dct变换,计算嵌入帧和参考帧的同一位置dct块中的系数差,调制系数差,在所有嵌入帧中嵌入水印图像,得到含水印帧;

将所有含水印帧和其他不含水印的视频帧拼接,得到含水印视频;

视频水印提取方法,步骤为:

读取含水印视频,从中提取出含水印亮度分量;

根据含水印帧的位置,提取出含水印帧和参考帧;

对含水印帧及其参考帧的图像块进行dct变换,根据含水印帧和参考帧的同一位置dct块中的系数差,得到水印图像,使用投票策略得到最终的水印图像。

进一步的技术方案,所述将亮度分量的每一帧分为互不重叠的图像块,计算所有帧的运动块比率,提取嵌入帧和参考帧,具体为:

水平扫描当前帧和下一帧的每个图像块,计算当前帧图像块与下一帧同位置图像块的欧氏距离;

通过欧氏距离信息,计算所有帧的运动块比率;

如果当前帧的运动块比率同时小于上一帧的运动块比率、下一帧的运动块比率和预设的运动帧阈值,则当前帧为低运动帧,即嵌入帧,同时,下一帧为参考帧。

进一步的技术方案,所述嵌入帧和参考帧的同一位置dct块中的同一位置系数差为:

d=c(u,v)-c′(u,v),1≤u,v≤h

其中,c为嵌入dct块,即实际根据待嵌入的水印比特是“0”或“1”而调制修改系数的dct块;c′为参考dct块,不修改,c(u,v)和c′(u,v)是相邻两帧的dct块c和c′的第u行、第v列的系数,h为块的尺寸。

进一步的技术方案,所述调制系数差,具体为:

选择修改嵌入块的低频位置,将系数差调制到指定的大小范围,具体过程如下:

嵌入水印w=1时:

若d<2t+e&&d≥3t/2,则循环赋值c(u,v)=c(u,v)+pm,直到d≥2t+e;若d<3t/2&&d>t-e,则循环赋值c(u,v)=c(u,v)-pm,直到d≤t-e;若d<e&&d≥-t/2,则循环赋值c(u,v)=c(u,v)+pm,直到d≥e;若d<-t/2&&d>-t-e,则循环赋值c(u,v)=c(u,v)-pm,直到d≤-t-e;若d<-2t+e,则循环赋值c(u,v)=c(u,v)+pm,直到d≥-2t+e;

嵌入水印w=0时:

若d>2t-e,则循环赋值c(u,v)=c(u,v)-pm,直到d≤2t-e;若d<t+e&&d≥t/2,则循环赋值c(u,v)=c(u,v)+pm,直到d≥t+e;若d<t/2&&d>-e,则循环赋值c(u,v)=c(u,v)-pm,直到d≤-e;若d<-t+e&&d≥-3t/2,则循环赋值c(u,v)=c(u,v)+pm,直到d≥-t+e;若d<-3t/2&&d>-2t-e,则循环赋值c(u,v)=c(u,v)-pm,直到d≤-2t-e。

嵌入过程中的pm为循环过程中的修改参数:

其中,v为尺度变量,ml为当前系数块扫描的低频交流系数绝对值的和,cdc为当前块的直流系数,fmb为运动块标志,t为判决阈值,e为嵌入因子。

进一步的技术方案,所述计算当前帧图像块与下一帧同位置图像块的欧氏距离,具体为:

其中,bi,j,k表示第i行、第j列、第k帧的h×h图像块,h为图像块的尺寸,为图像块bi,j,k的第m行、第n列的元素,范围1≤i≤m/8,1≤j≤n/8,2≤k≤k-1,为bi,j,k的均值,为bi,j,k+1的均值。

进一步的技术方案,所述通过欧氏距离信息,计算所有帧的运动块比率,具体为:

运动块比率即每帧中运动块个数与每帧总块数的比值:

其中,s(·)是一个关于运动块阈值t1的阈值函数:

其中,s(i,j,k)=1表示将当前块看作运动块,否则看作非运动块。

进一步的技术方案,对于待嵌入的水印图像,使用arnold置乱对二值水印图像进行预处理,将同一幅水印图像重复嵌入到多个嵌入帧中,每个嵌入帧中嵌入的水印图像随机采用不同的置乱次数;

所述嵌入帧在视频中的位置信息被保存为密钥1,不同嵌入帧置乱的次数信息被保存为密钥2。

本公开第二方面提供了基于帧间dct系数相关性的视频水印嵌入和提取系统,包括:

视频水印嵌入单元,被配置为:

读取原始宿主视频,从原始宿主视频中提取出原始宿主视频的亮度分量;

将亮度分量的每一帧分为互不重叠的图像块,计算所有帧的运动块比率,提取嵌入帧和参考帧;

对当前嵌入帧及其参考帧的图像块进行dct变换,计算嵌入帧和参考帧的同一位置dct块中的系数差,调制系数差,在所有嵌入帧中嵌入水印图像,得到含水印帧;

将所有含水印帧和其他不含水印的视频帧拼接,得到含水印视频;

视频水印提取单元,被配置为:

视频水印提取方法,步骤为:

读取含水印视频,从中提取出含水印亮度分量;

根据含水印帧的位置,提取出含水印帧和参考帧;

对含水印帧及其参考帧的图像块进行dct变换,根据含水印帧和参考帧的同一位置dct块中的系数差,得到水印图像,使用投票策略得到最终的水印图像。

本公开第三方面提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如本公开第一方面所述的基于帧间dct系数相关性的视频水印嵌入和提取方法的步骤。

本公开第四方面一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本公开第一方面所述的基于帧间dct系数相关性的视频水印嵌入和提取方法的步骤。

以上一个或多个技术方案存在以下有益效果:

1.本公开技术方案通过修改或判定相邻两帧中前一帧的dct系数实现嵌入或提取水印,用于有效地利用视频的相关性,基于视频帧间的相关性,利用相邻低运动帧系数的差值相对稳定的性质,比现有的基于块相关的水印方法具有更好的不可感知性和鲁棒性,可有效保护视频的版权。

2.本公开技术方案基于帧间系数相关性的系数差d的计算方法,两个系数的相关性使得系数差d的普遍值较小,可减少对dct系数的调制强度,提高不可感知性,同时,其相关性使得d的大小较为稳定,鲁棒性较好。

附图说明

构成本发明的一部分的说明书附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。

图1是本公开实施例子一种基于帧间dct系数相关性的视频水印嵌入和提取方法的流程示意图;

图2是本公开实施例子中基于帧间系数相关性的系数差d的计算方法;

图3是本公开实施例子中系数差d的调制方法;

图4是本公开实施例子中实验所用的测试视频与测试水印图像;

图5是本公开实施例子中作为主观效果展示的经过攻击后的含水印视频的第一帧及提取出的水印。

具体实施方式

应该指出,以下详细说明都是示例性的,旨在对本发明提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本发明所属技术领域的普通技术人员通常理解的相同含义。

需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本发明的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。

在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。

实施例一

本实施例一公开了基于帧间dct系数相关性的视频水印嵌入和提取方法,本实施例子的目的是:通过修改或判定相邻两帧中前一帧的dct系数实现嵌入或提取水印,用于有效地利用视频的相关性。

图1示出了本发明实施例子中基于帧间dct系数相关性的视频水印嵌入和提取方法的流程图。如图1所示,其上半部分s1示出了视频水印嵌入方法的主要流程图,如图1所示,视频水印的嵌入步骤包括:

步骤s11:读取原始宿主视频,从原始宿主视频中提取出原始宿主视频的亮度分量,作为水印嵌入的载体;

读取分辨率大小为m×n、长度为k帧的yuv原始宿主视频v,其中yuv,分为三个分量,“y”表示亮度,也就是灰度值;而“u”和“v”表示的则是色度,作用是描述影像色彩及饱和度,用于指定像素的颜色;从中提取出原始宿主视频v的亮度分量vy作为水印嵌入的载体,视频的y分量比u和v分量包含更多的信息,有更多的冗余可用于嵌入水印。

步骤s12:基于提取的水印嵌入的亮度分量,将亮度分量的每一帧分为互不重叠的图像块,计算所有帧的运动块比率,提取嵌入帧与参考帧。

步骤s13:对于待嵌入的水印图像,使用arnold置乱对水印图像进行预处理。

由于在本实施例中每个8×8块中嵌入1个水印比特,因此待嵌入水印的视频的大小为m×n时,水印图像的大小为(m/8)×(n/8)。由于arnold置乱只适用于方阵,因此在实施过程中,分别对水印图像的左边方形部分和右边方形部分依次进行置乱,两次置乱时使用相同的置乱次数,水印图像中间部分会有交叉。本发明为了提高水印对多种攻击的鲁棒性,将同一幅水印图像重复嵌入到多个嵌入帧中,每个嵌入帧中嵌入的水印图像随机采用不同的置乱次数(随机的范围在一个置乱周期内),不同嵌入帧置乱的次数信息被保存为密钥2,用于水印提取后的恢复。

步骤s14:对当前嵌入帧及其参考帧的图像块进行dct变换,依次计算嵌入帧和参考帧的同一位置dct块中的系数差,调制系数差,将系数差调制到指定的大小范围,将在所有嵌入帧中嵌入水印;

采用dct变换是因为它是图像近似最优变换,且计算复杂度较低,适用于水印技术。

步骤s15:在所有嵌入帧中嵌入水印之前,嵌入了相同的预处理后的水印图像,并将所有含水印帧和其他不含水印的视频帧拼接,得到含水印视频。

所有嵌入帧嵌入相同的水印图像,但每次嵌入前,水印图像使用不同的密钥进行置乱加密。嵌入完成后,将含水印图像的亮度y分量vyw与u、v分量重组,并将所有含水印帧和其他不含水印的视频帧拼接,得到含水印视频。

如图1所示,其下半部分s2示出了视频水印提取方法的主要流程图,如图1所示,视频水印的提取具体步骤包括:

步骤s21:读取分辨率大小为m×n、长度为k帧的yuv含水印视频,从中提取出含水印亮度分量vy′用于水印提取。

步骤s22:根据密钥1中含水印帧的位置,提取出含水印帧和参考帧。

步骤s23:对含水印帧及其参考帧进行dct变换,依次计算含水印帧和参考帧的同一位置dct块中的同一位置系数差,根据系数差的大小,将系数差调制到指定的大小范围,提取水印;

对于每个子块,根据d的大小,即d处于的以图3中虚线所隔开的位置,提取水印。

具体过程如下:

若d>2t||d<t&&d>0||d<-t&&d>-2t,则提取水印w′=1;

若d<2t&&d>t||d<0&&d>-t||d<-2t,则提取水印w′=0。

在当前含水印帧重复步骤s23,提取一帧的全部水印比特;

步骤s24:然后对当前帧所提取的水印根据密钥2中的置乱次数进行逆arnold置乱,得到一幅完整的水印图像。

步骤s25:重复步骤s23至s24,得到全部水印帧提取出的多幅水印图像,然后使用投票策略得到最终水印图像,设从总计l个含水印帧中第l帧提取的水印图像为wl,则最终的水印图像wf为:

其中r[·]为取整函数,l表示提取的水印图像的数量。

下面对上述方法步骤进行详细说明:

对于步骤s12,所述将亮度分量的每一帧分为互不重叠的图像块,计算所有帧的运动块比率,提取嵌入帧与参考帧,具体包括如下步骤:

步骤s121:将亮度分量vy的每一帧分为互不重叠的h×h大小的图像块,水平扫描当前帧(第k帧)与下一帧(第k+1帧)的每个图像块,计算当前帧图像块bi,j,k,与其下一帧同位置图像块bi,j,k+1的欧氏距离:

其中,bi,j,k表示视频第i行、第j列、第k帧的h×h图像块,为图像块bi,j,k的第m行、第n列的元素,范围1≤i≤m/h,1≤j≤n/h,2≤k≤k-1,其中m为视频帧宽度,n为视频帧高度,k为视频总帧数,特别地,为减少视频亮度变化的影响,bi,j,k和bi,j,k+1分别减去其均值范围1≤k≤k-1的原因是视频的第一帧(最后一帧)没有上一帧(下一帧)。

优选的,本实施例中,h×h为8×8。

步骤s122:通过计算得到的欧氏距离信息,进一步计算所有帧的运动块比率,运动块比率即每帧中运动块个数与每帧总块数的比值:

其中,s(·)是一个关于运动块阈值t1的阈值函数:

其中,s(i,j,k)=1表示将当前块看作运动块,否则看作非运动块。

优选的,本实例中,设t1=80。

步骤s123:如果第k帧(当前帧)的运动块比率同时小于第k-1帧(上一帧)的运动块比率第k+1帧(下一帧)的运动块比率和预设的运动帧阈值t2,则当前帧为低运动帧,即嵌入帧,同时,下一帧为参考帧。

本实例中,对于长度为k帧的视频,通过多次调节t2的大小,提取k/10帧作为嵌入帧,嵌入帧在视频中的位置信息被保存为密钥1,用于水印提取。

本实施例步骤s121-s123的低运动帧的提取方法,旨在提取相关性更高的嵌入帧与参考帧,便于后续更好地利用视频的帧间相关性嵌入水印。

对于步骤s14中,所述对当前嵌入帧及其参考帧的图像块进行dct变换,依次计算嵌入帧和参考帧的同一位置dct块中的同一位置系数的差值,调制系数差,在所有嵌入帧中嵌入水印,具体包括如下步骤:

步骤s141:为了依次在h×h图像块中嵌入1个水印比特,依次计算嵌入帧和参考帧的同一位置dct块c和c′中的同一位置系数的差值,选择低频位置嵌入水印;

d=c(u,v)-c′(u,v),1≤u,v≤h

其中,c(u,v)和c′(u,v)是相邻两帧的dct块c和c′的第u行、第v列的系数,二者有一定的相关性。c为嵌入块,即实际根据待嵌入的水印比特是“0”或“1”而调制修改系数的dct块;c′为参考块,不做修改。嵌入位置(u,v)的不同会影响水印的不可感知性和鲁棒性。由于低频系数更加稳定,因此对本实例选择低频位置嵌入水印,优选的,选择(2,2)作为低频位置。

为便于理解,图2展示了本实施例中基于帧间系数相关性的系数差d的计算方法。由于相邻帧的图像内容相似,存在较强的相关性,因此相同位置的两个系数差d的普遍值较小,调制d嵌入水印可减少对dct系数的调制强度,提高不可感知性;同时,其相关性使得d的大小较为稳定,鲁棒性较好。

步骤s142:通过修改嵌入块的低频位置c(u,v),将系数差d调制到指定的大小范围,以嵌入水印比特,图3示出了系数差d的调制方法,如图3所示,若d处于以实线隔开的无阴影区域,则调制到阴影区域;若d处于阴影区域,则无需修改。帧间相关性使得大多数系数差值接近0,但是仍存在部分系数差值较大的块,因此设置多嵌入区域可防止dct系数进行过大的修改,减少对视觉质量的影响。

在本实例中,判决阈值t=80,嵌入因子e=12。

具体过程如下:

嵌入水印w=1时:

若d<2t+e&&d≥3t/2,则循环赋值c(u,v)=c(u,v)+pm,直到d≥2t+e;若d<3t/2&&d>t-e,则循环赋值c(u,v)=c(u,v)-pm,直到d≤t-e;若d<e&&d≥-t/2,则循环赋值c(u,v)=c(u,v)+pm,直到d≥e;若d<-t/2&&d>-t-e,则循环赋值c(u,v)=c(u,v)-pm,直到d≤-t-e;若d<-2t+e,则循环赋值c(u,v)=c(u,v)+pm,直到d≥-2t+e。

嵌入水印w=0时:

若d>2t-e,则循环赋值c(u,v)=c(u,v)-pm,直到d≤2t-e;若d<t+e&&d≥t/2,则循环赋值c(u,v)=c(u,v)+pm,直到d≥t+e;若d<t/2&&d>-e,则循环赋值c(u,v)=c(u,v)-pm,直到d≤-e;若d<-t+e&&d≥-3t/2,则循环赋值c(u,v)=c(u,v)+pm,直到d≥-t+e;若d<-3t/2&&d>-2t-e,则循环赋值c(u,v)=c(u,v)-pm,直到d≤-2t-e。

嵌入过程中的pm为循环过程中的修改参数:

其中,v为尺度变量,本实例中设置为0.05,ml为当前h×h系数块前9个zigzag扫描的低频交流(alternatingcurrent,ac)系数绝对值的和,cdc为当前块的直流(directcurrent,dc)系数。fmb为运动块标志,根据步骤s122的判断准则,若当前块为运动块,则fmb=1,否则为fmb=2。

步骤s143:重复步骤s141和步骤s142,在当前嵌入帧所有块中嵌入水印比特,并进行逆dct,完成对一帧的嵌入,得到含水印帧;

步骤s144:重复步骤s143,在所有嵌入帧中嵌入水印。

本实施例按照图1基于帧间dct系数相关性的视频水印嵌入和提取方法,选用如图4(a)所示的大小为为832×480的标准测试视频“basketballdrill”的前300帧作为宿主视频,并用图4(b)所示的大小为104×60的二值图像“sdu”作为水印图像验证水印方法的性能。

本实施例分别用将如图4(b)所示的二值图像“sdu”所示的水印分别以ko、parah等人的方法和基于帧间dct系数相关性方法嵌入到如图4(a)所示的宿主视频中,得到峰值信噪比(peaksignal-to-noiseratio,psnr)分别为42.4915db(ko等人)、42.4590db(parah等人)和44.0610db(基于帧间dct系数相关性方法),结果表明本发明水印具有良好的不可感知性。

表1展示了分别以3种方法嵌入水印并经过不同攻击后得到的含水印视频中提取的水印图像及水印的误码率(biterrorratio,ber),其中在提取经过缩放、旋转等几何攻击后的视频中的水印时,将其缩放、旋转为原始的大小和角度。

表1:不同水印方法的水印ber比较。

由表1可见,本实施基于帧间dct系数相关性方法比现有的方法具有更高的鲁棒性。为更直观地展示本发明水印方法的效果,如图5所示为本实施中经过攻击后的含水印视频的第一帧及提取出的水印,可见在经过不同攻击后,水印仍清晰可见,可以较好地实现水印的作用。

本实施例基于视频帧间的相关性,利用相邻低运动帧系数的差值相对稳定的性质,提出了一种视频水印方法,比现有的基于块相关的水印方法具有更好的不可感知性和鲁棒性,可有效保护视频的版权。

实施例二:

本说明书实施方式提供了基于帧间dct系数相关性的视频水印嵌入和提取系统,通过以下技术方案实现:

包括:

视频水印嵌入单元,被配置为:

读取原始宿主视频,从原始宿主视频中提取出原始宿主视频的亮度分量;

基于提取的水印嵌入的亮度分量,将亮度分量的每一帧分为图像块,计算所有帧的运动块比率,比较当前帧的运动块比率、上一帧的运动块比率、下一帧的运动块比率和预设的运动帧阈值,提取嵌入帧与参考帧;

对当前嵌入帧及其参考帧的图像块进行dct变换,依次计算嵌入帧和参考帧的同一位置dct块中的同一位置系数差,调制嵌入帧dct系数调整系数差,在当前嵌入帧所有图像块中嵌入水印比特,并进行逆dct,得到含水印帧;

将待嵌入的水印图像,使用arnold置乱对水印图像进行预处理;

在含水印帧中嵌入相同的预处理后的水印图像,并将所有含水印帧和其他不含水印的视频帧拼接,得到含水印视频;

视频水印提取单元,被配置为:

读取含水印视频,从中提取出含水印亮度视频;

根据含水印帧的位置,提取出含水印帧和参考帧;

对含水印帧及其参考帧进行dct变换,依次计算含水印帧和参考帧的同一位置dct块中的系数差,根据系数差的大小,提取一帧的水印比特;

对当前帧所提取的水印根据置乱次数进行逆arnold置乱,得到一幅完整的水印图像,使用投票策略得到最终的水印图像。

实施例三:

本公开实施例三提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如本公开实施例一所述的基于帧间dct系数相关性的视频水印嵌入和提取方法的步骤。

实施例四:

本公开实施例四提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本公开实施例一所述的基于帧间dct系数相关性的视频水印嵌入和提取方法的步骤。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1