一种基于层间预测的视频水印嵌入及提取方法与流程

文档序号:15925267发布日期:2018-11-14 01:04阅读:167来源:国知局

本发明涉及一种视频水印嵌入及提取方法,尤其是涉及一种基于层间预测的视频水印嵌入及提取方法。

背景技术

现如今,数字化信息时代早已到来,多媒体技术发展迅速,能否有效保护互联网的信息安全以及维护数字化产品的版权现已变成研究者们研究的热点之一。日常生活中使用的数字视频绝大多数都是经过压缩编码处理的,视频终端的多样化使视频可伸缩编码也成为一种新的需求。因此,针对mepg-4中h.264的可扩展部分-可伸缩编码(scalablevideocode,svc)的视频的数字水印技术也成为了当前研究的一大趋势。目前已有的h.264/svc水印算法中,基于编解码框架本身的水印算法成果较少,传统的视频水印的实现算法都借鉴于图像算法,直接将图像水印算法移植到视频水印中去,缺点是经过视频编解码处理后,可能会造成部分水印信息的丢失,同时需要独立编写算法处理。同时已有成果中其多数算法在鲁棒性差,即便微小的攻击都会使得水印遭受破坏,导致提取失败或提取的水印与原始水印相比较相似程度低。



技术实现要素:

本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种保证水印信息完整、具有强鲁棒性的基于层间预测的水印嵌入及提取方法。

本发明的目的可以通过以下技术方案来实现:

一种基于层间预测的视频水印嵌入及提取方法,该方法包括以下步骤:

s1:获取原始视频序列及水印图像,对水印图像进行预处理。

s2:采用基于h.264/svc编码器所引入的层间预测模块对原始视频序列嵌入水印图像。具体步骤包括:

21)将原始视频序列输入h.264/svc编码器的帧内预测模块,选择预测残差最小的帧内模块作为候选的帧内模式编码;

22)对输入的原始视频序列进行判断,若输入的原始视频序列是i帧,则对预测得到的残差信号进行变换和量化,并对量化后的系数进行编码,生成重建图像,将重建图像作为后续帧编码的参考图像,若输入的原始视频序列是p帧或b帧,则对原始视频序列的当前图像进行运动估计,基于h.264/svc编码器所引入的层间预测模块获取帧间编码模式,并从候选的帧内模式编码与帧间编码模式中选择当前宏块的最佳编码模式后,对残差进行变换和量化。

本发明采用强制选择编码过程中以何种层间预测方式进行的方法,利用了二值化的水印指定层间预测。具体包括以下内容:

221)将原始视频序列进行下采样,获取两个不同分辨率的视频序列;

222)将原始视频序列作为增强层,将下采样后的分辨率最低的视频序列作为基本层输入编码器;

223)对水印图像进行置乱,并对置乱后的水印图像进行二值化,获取二值序列;

224)对视频进行编码,判断当前宏块是否在基本层,若是,则进行下一步,否则,不进行处理;

225)利用二值序列设置自适应的值,若二值序列为1,则当前宏块采用层间预测,选择帧间编码模式,若二值序列为0,当前宏块选择默认编码方式。

23)选取最佳编码模式后,在编码过程中嵌入水印。

优选地,采用arnold方法对水印图像进行置乱。

s3:获取视频解码端的当前帧间编码模式,根据当前帧间编码模式进行水印提取。具体包括以下步骤:

31)将含有水印信息的视频序列输入按嵌入水印的方式进行下采样后输入编码端;

32)对视频进行解码,并判断当前宏块是否属于基本层,若是,则执行下一步,否则,不进行处理;

33)对输入的视频序列进行空间层的解码操作;

34)获取当前帧间编码模式,将解码结果保存至一个新的二值序列中;

35)将二值序列通过变换和反置乱提取水印信息,进而获取提取的水印图像。

优选地,采用arnold方法将二值序列进行反置乱。

与现有技术相比,本发明具有以下优点:

一、本发明方法在水印嵌入时将水印信息进行了编码端的下采样、基本层编码、上采样、增强层编码,使水印信息与帧图像编码端的编码一致,解决了现有水印嵌入算法在嵌入水印后经过视频编解码处理,造成部分水印信息的丢失的问题;

二、本发明方法在视频编码时进行水印嵌入,该方式不会产生错误的累积效应,此外,水印嵌入算法只与视频帧图像宏块数量有关而与视频质量无关,因此对于针对视频质量攻击,算法具有很好的抵抗性,水印信息可以被完整的提取出来,提取的水印的nc值均大于0.877,针对不同量化步长的重量化、噪声攻击等视频质量攻击都具有很好的鲁棒性,可满足不同攻击提取的水印信息要求;

三、本发明方法在水印的提取过程中无需原始图像的参与,实现了盲检测,提高了水印提取的效率。

附图说明

图1为单层视频序列水印嵌入的流程示意图;

图2为本发明方法中水印嵌入的原理示意图;

图3为初始水印图像;

图4为水印嵌入前进行变换置乱的水印图像;

图5为本发明方法中水印提取的原理示意图;

图6为本发明实施例中一个gop的帧图像添加水印和未添加水印的psnr比较图;

图7为本发明实施例中不同攻击情况下提取的水印图像,其中,图7(a)为未受攻击情况的水印图像,图7(b)为抗重量化攻击情况下,qp步长为20所提取的水印图像,图7(c)为抗重量化攻击情况下,qp步长为24所提取的水印图像,图7(d)为抗重量化攻击情况下,qp步长为32所提取的水印图像,图7(e)为抗重量化攻击情况下,qp步长为36所提取的水印图像,图7(f)为高斯噪声攻击情况下所提取的水印图像,图7(g)为椒盐噪声攻击情况下所提取的水印图像,图7(h)为旋转攻击情况下,且旋转度数为10度所提取的水印图像,图7(i)为剪切攻击情况下,且剪切大小为1/16所提取的水印图像,图7(j)为缩放攻击情况下,且缩放大小为10度所提取的水印图像。

具体实施方式

下面结合附图和具体实施例对本发明进行详细说明。

本发明涉及一种基于层间预测的视频水印嵌入及提取方法,该方法基于h.264/svc编解码框架所引入的层间预测模块,该方法包括以下步骤:

步骤一、获取水印图像,对水印图像进行预处理。

步骤二、在视频编码时嵌入水印。

采用基于h.264/svc编码器所引入的层间预测模块进行水印的嵌入。h.264有帧内(intra)和帧间(inter)两种编码模式。输入的视频序列都要经过帧内预测模块,选择预测残差最小的帧内模作为候选的帧内模式编码。如果输入的是i帧,则对预测得到的残差信号进行变换和量化,再对量化后的系数进行编码、滤波后生成重建图像,用作后续帧编码的参考图像,参考图像经过运动补偿后从候选帧内和帧间中选择该宏块的最佳编码模式。如果输入的帧是p帧或者b帧,则需要对当前图像进行运动估计来选择最佳的帧间编码模式,然后从候选帧内和帧间中选择该宏块的最佳编码模式,之后对残差进行变换和量化。本发明采用强制选择编码过程中以何种层间预测方式进行的方法,利用了二值化的水印指定层间预测,首先将层级设为2,当前层在宏块及通过一个率失真优化框架自适应选择层间预测技术。此时,利用二值化的水印信息强制设置自适应的值,即当前宏块是否采用层间预测,如图1所示。

水印嵌入算法如图2所示,在编码端处理宏块时,针对帧间编码模式,默认为不进行帧间编码模式处理,当水印信息为0时,当前宏块按默认方式不选择编码帧间编码模式;当水印为1时,强制当前宏块选择使用帧间编码模式。

本实施例水印嵌入使用的水印图像如图3所示,水印嵌入之前,利用arnold变换技术对水印信息进行了加密,增强水印的保密性。一般地,在水印预处理阶段运用arnold变换置乱的水印图像,在后处理阶段需要快速的进行复原。图4是arnold变换置乱预处理之后的水印图像。本发明方法将水印嵌入时域基本层t0。同时,h.264/svc编码中标示不同的空间层。分辨率最低的为基本层,上一层的增强层依次为递增。一般实验所采用的的视频序列,经过下采样后,下层的长宽为上层的2倍,下一层宏块的数量是上层的4倍。

水印嵌入算法具体包括以下步骤:

step1:将原始视频序列通过下采样工具downconvert进行采样操作分别得到两个不同分辨的视频序列。

step2:将原始视频序列作为增强层,下采样的视频序列作为基本层输入编码器。

step3:将经过arnold置乱之后的水印图像二值化生成由0、1表示二值序列。

step4:编码时只考虑基本层,并判断当前宏块属于哪个空间层。

step5:设置jsvm参数,将水印二值序列按图2所示,利用二值化的水印信息强制设置自适应的值,即当前宏块是否采用层间预测,将水印信息嵌入编码过程中。

步骤三、在视频解码端提取水印。

水印的提取过程是水印嵌入算法的逆过程,具体流程可参见图5。在解码端处理宏块时,判断当前宏块是否进行帧间编码。若当前宏块进行了帧间编码,获取水印信息值(二值序列)为1;若当前宏块未进行帧间编码,获取水印信息值为0。

水印提取具体包括以下步骤:

step1:将含有水印信息的视频序列输入按嵌入水印的方式下采样之后输入编码端。

step2:解码时只考虑基本层,并判断当前宏块属于哪个空间层。

step3:设置jsvm参数,对输入的视频序列仅进行空间层的解码操作。

step4:解码时获取当前帧间编码模式,将结果保存至一个新的二值序列中。

step5:将二值序列通过变换和arnold反置乱,提取出水印信息。

通常采用峰值信噪比(psnr)来衡量水印的不可见性,psnr越大,嵌入水印的不可见性越好;用归一化相关系数(nc)衡量被水印攻击后的鲁棒性,nc越大,水印鲁棒性越好。

其中,i(i,j)表示原图像;i′(i,j)表示的是嵌入水印后的图像,m×n表示图像大小。w(i,j)是原始水印;w′(i,j)是提取的水印。

为证明本发明方法的有效性,本实施例在h.264/svc的参考软件jsvm9.19.7上进行了实验,同时使用matlab2016a对水印图像进行预处理,并对提取之后的图像复原以及水印图像进行nc值计算。在encode.cfg配置文件中设置只有空间可分级的部分。将层级设为2,将帧率设为30,gop序列的大小设为1,其他编码参数使用默认值。空间上分为两层输入,增强层视频序列为分辨率大小为352*288的yuv格式视频,将视频序列经过downconvert下采样工具得到分辨率大小为276*144视频序列作为基本层的输入,增强层帧图像宏块数量为396,基本层帧图像宏块数量为99。当interlayerpred的值设为1时,即使用层间预测,编解码结果如表1所示,当interlayerpred的值设为0时,即不使用层间预测编码,编码结果如表2所示。表2中d表示空域可伸缩:是指将视频流分解成表示不同分辨率的信息。t表示时域可伸缩:是指允许单一码流支持多帧率的技术。q表示质量可伸缩:是指将像素值分解成不同级别。(0,0,0)(1,0,0)表示在空域下的实验。

表1使用层间预测的编解码结果

表2不使用层间预测的编解码结果

从表1、表2可以看出,当使用层间预测时,增强层的编码效率有了明显的提高。

选择图3尺寸为52*52的水印图像作为增强层的嵌入水印,通过本发明方法将水印嵌入到原始视频序列中。实验中,一个gop序列(图像组,groupofpicture)是由连续的8帧图像组成(实验内容gop组以第一帧为i帧,其余7帧为p帧),可使用psnr值来比较一个gop下相同帧的图像差异。视频序列一个gop的帧图像psnr如图6所示。针对gop中的p帧,帧间预测编码至少基于前面的一个参考帧进行,因此会使p帧图像质量有一定的下降。而对i帧编码时仅利用当前帧内的信息,因此i帧图像质量的影响会很小。

为了测试水印的抗攻击性,实验测试了重量化攻击、噪声攻击、几何攻击、丢帧对提取的水印信息的影响。实验使用嵌入水印信息的视频序列作为测试序列,水印嵌入时量化步长为28。因利用本发明方法的水印是在h.264/svc编码标准下嵌入的,且水印嵌入与视频帧图像压缩数据无关,只与层间预测模式也就是帧图像的宏块数量有关,所以本发明方法能够有效的抵抗针对视频序列的质量攻击。实验使用了高斯噪声(标准差为0.01)和椒盐噪声(噪声密度为0.02)对视频序列图像进行攻击。针对视频序列帧图像宏块数量可能会发生变化的影响,实验做了旋转、剪切、缩放的几何攻击。其中,旋转攻击情况下的旋转度数为10度;剪切攻击情况的剪切大小为1/16;缩放攻击情况下的缩放大小为10度。

各个攻击下视频序列帧中提取的水印信息如图7(a)~图7(j)所示。各个攻击下视频序列帧中提取的水印nc值如表3所示。

表3攻击后水印提取的实验结果

从图7(a)~图7(e)及表3可以看出,重量化步长越小,视频质量越好,但水印信息都可以完整的提取出来,结果验证了本发明方法针对不同量化步长的重压缩具有很好的鲁棒性。针对噪声攻击,从图7(f)~图7(g)及表3可以看出水印信息也可以被完整的提取出来,证明了本发明方法具有较好的抵抗噪声的能力。对视频序列进行旋转攻击时,帧图像宏块数量会发生变化;剪切攻击时,帧图像丢失一部分宏块,水印信息也会随之丢失一部分;缩放变换时,会导致视频帧图像重新分块,宏块的数量随着缩放的比例增多或者减少。从图7(h)~图7(i)及表3所示,此时水印信息虽然无法被完全提取出来,但是仍然可以提取出部分信息。水印nc值均在0.877以上,说明了本发明方法能够抵抗一定程度的几何攻击。针对丢帧攻击,因为水印信息的嵌入在基于p帧的层间预测编码模式,因此p帧的丢失使大部分水印信息丢失,水印信息无法完整的提取出来。

本发明采用通过选择编码过程中以何种层间预测方式进行,利用二值化的水印指定层间预测,从而将水印信息嵌入到视频序列中。本发明利用了h.264/svc编码器所引入的层间预测模块,从视频序列质量psnr值的计算证明了水印信息的嵌入对于整个视频序列并无明显的影响,验证了该算法的有效性。在提取水印时,不需要原始水印图像,实现了盲检测性。由于水印嵌入算法只与视频帧图像宏块数量有关而与视频质量无关,因此对于针对视频质量攻击,算法具有很好的抵抗性,水印信息可以被完整的提取出来。通过仿真实验可以看出本发明水印算法针对不同量化步长的重量化、噪声攻击等视频质量攻击都具有很好的鲁棒性。经过不同攻击提取的水印信息均可满足要求,证明了本发明方法的良好性能。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的工作人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

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