基于流媒体非关键帧的数字水印嵌入和提取的方法转让专利

申请号 : CN201010601057.9

文献号 : CN102123327A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 孙锬锋蒋兴浩徐澜李良祯顾昕彪程东阳王琬

申请人 : 上海交通大学

摘要 :

一种信息安全技术领域的基于流媒体非关键帧的数字水印嵌入和提取的方法,首先基于数字水印内容生成隐藏数据块,然后对FLV格式文件进行分析并确定水印待嵌入的额外信息位置,最后将隐藏数据块嵌入额外信息位置并生成具有数字水印的FLV格式流媒体。接收端通过读取FLV格式文件并获得水印嵌入位置后,从FLV格式文件中提取获得合成信息,最后将合成信息中分离得到数字水印后进行完整性比较,实现提取。本发明在视频被切分的情况下(大于1分钟的切分),仍然可完成微水印标签的获取与鉴别,具有一定的抗攻击能力。

权利要求 :

1.一种基于流媒体非关键帧的数字水印嵌入方法,其特征在于,首先基于数字水印内容生成隐藏数据块,然后对FLV格式文件进行分析并确定水印待嵌入的额外信息位置,最后将隐藏数据块嵌入额外信息位置并生成具有数字水印的FLV格式流媒体。

2.根据权利要求1所述的基于流媒体非关键帧的数字水印嵌入方法,其特征是,所述的生成隐藏数据块是指:首先利用散列函数将待隐藏信息m生成散列值H,该散列值H用于待隐藏信息的认证;然后将H添加在m后面生成合成信息M;再在合成信息M前添加可识别标签R,可识别标签长度固定,包含用于识别的标签头以及数据总长度;最后生成待隐藏数据块W。

3.根据权利要求1所述的基于流媒体非关键帧的数字水印嵌入方法,其特征是,所述的FLV格式文件结构符合FLV标准的规范,包含File Header 与File Body两部分,File Body由Tag结构组成,其中:块Tag包含Tag Header 与Tag Data结构,Tag Header结构可以方便地读取Tag类型、Tag帧类型、数据区长度等信息,而Tag Data包含额外信息位。

4.根据权利要求1所述的基于流媒体非关键帧的数字水印嵌入方法,其特征是,所述的额外信息位置是指:从File Body框架中依次读取Tag结构,根据Tag Header框架判断:当该Tag类型为视频数据,则记录该Tag结构偏离File Body框架开始位置的字节总数Pi,i表示FLV格式文件中视频数据Tag的顺序号;

当该Tag帧类型为关键帧,则标注该位置Pi;

根据该Tag数据区长度计算下一Tag开始的位置Pi+1,并且读取下一Tag结构并重复上述判断,直至整个FLV格式文件分析完毕并获得Tag位置序列{P1,P2,......,Pmax},其中:max为FLV格式文件中视频数据Tag的总数目,记录标注的关键帧序列为{PK1,PK2,......,PKn},Kl∈[0,max],且Kl<Kl+1,K1=1,去掉PK1-1得到额外信息位置对应的帧序列L{PK2-1,PK3-1,......,PKn-1}。

5.根据权利要求1所述的基于流媒体非关键帧的数字水印嵌入方法,其特征是,所述的将隐藏数据块嵌入额外信息位置是指:读取FLV格式文件并依次找到待嵌入位置Pn,n=Kl-1,实施嵌入:若该Tag结构Tag Data部分的额外信息位置无内容,则将待隐藏数据块W直接嵌入;反之,将原有额外信息内容附在待隐藏数据块W后再整体嵌入,重复此操作直至所有待嵌入位置嵌入完毕,获得含隐藏信息FLV格式文件,完成嵌入步骤。

6.一种根据上述任一权利要求所述FLV格式流媒体的数字水印提取方法,其特征在于,通过读取FLV格式文件并获得水印嵌入位置后,从FLV格式文件中提取获得合成信息,最后将合成信息中分离得到数字水印后进行完整性比较,实现提取。

7.根据权利要求6所述的FLV格式流媒体的数字水印提取方法,其特征是,所述的获得水印嵌入位置是指:分析FLV格式文件的File Header框架,得到File Body框架的开始字节数,依次读取Tag结构:分析当前Tag的Tag Header框架,若该Tag类型为视频数据,则记录该Tag偏离File Body框架开始位置的字节总数Pi,i表示FLV格式文件中视频数据Tag的顺序号,若该Tag帧类型为关键帧,则标注该位置Pi;根据该Tag数据区长度计算下一Tag开始的位置Pi+1,并且读取下一Tag结构直至整个FLV格式文件分析完毕;遍历Tag位置序列{P1,P2,......,Pmax},其中:max为FLV格式文件中视频数据Tag的总数目,记录标注的关键帧序列为{PK1,PK2,......,PKn},Kl∈[0,max],且Kl<Kl+1,K1=1,去掉PK1-1则水印嵌入位置的帧序列为L{PK2-1,PK3-1,......,PKn-1}。

8.根据权利要求6所述的FLV格式流媒体的数字水印提取方法,其特征是,所述的提取获得合成信息是指:读取FLV格式文件中的水印嵌入位置的帧序号Pn,n=Kl-1,n表示FLV格式文件中视频数据Tag的顺序号,当水印嵌入位置有内容,则读取该内容Xn;然后查找该内容Xn文本开始位置是否为可识别标签R,若是,则根据可识别标签R中的数据总长度取出可识别标签R后的合成信息Mn。

9.根据权利要求6所述的FLV格式流媒体的数字水印提取方法,其特征是,所述的分离得到数字水印是指:从合成信息Mn中分离数字水印内容mn和散列值Hn,对数字水印内容mn进行散列运算并得到散列值H’n。

10.根据权利要求6所述的FLV格式流媒体的数字水印提取方法,其特征是,所述的完整性比较是指:将FLV格式文件中的数字水印内容mn的散列值H’n与Hn进行比对,当两者一致则当前合成信息所对应的视频片段未被修改,当所有合成信息均通过完整性比较时,则判断该FLV格式文件未遭受破坏或更改。

说明书 :

基于流媒体非关键帧的数字水印嵌入和提取的方法

技术领域

[0001] 本发明涉及的是一种信息安全技术领域的方法,具体是一种用于FLV(FLASH VIDEO)格式的基于流媒体非关键帧的数字水印嵌入和提取的方法。

背景技术

[0002] 互联网的迅猛发展和普及为流媒体业务发展提供了强大市场动力,使其日益流行,广泛应用于多媒体新闻发布、在线直播、网络广告、视频点播等互联网信息服务的方方面面。多媒体技术的飞速发展以及摄像器材的普及也使普通人可以通过家用摄像机、摄像头、视频手机等设备拍摄喜爱的内容,并发布到视频网站。流媒体技术的应用为网络信息交流带来了革命性的变化,对人们的工作和生活产生了深远的影响。
[0003] 流媒体的传输方式不同于传统的多媒体文件,它是将整个多媒体文件经过特殊的处理,压缩成为一个个压缩包,由视频服务器向用户计算机连续、实时地传送。在采用流式传输方式的系统中,用户不必下载整个多媒体视频文件,而只需经过几秒或几十秒的启动延时即可动态、连续地接受流媒体视频文件,并在用户计算机上利用解压设备对多媒体文件解压后进行观看。
[0004] 然而目前视频网站缺乏足够的监管和自律,盗版、拼接、篡改视频比比皆是。为了解决网络视频的版权争议问题,各类专利技术应运而生,提出许多针对网络视频片断的版权归属问题的解决方案。
[0005] 流媒体的数字水印解决方案需要充分考虑到流媒体的流式传播的特点,在保持保真性的基础上尽量提高下载、播放效率。但是现有的数字水印技术在流媒体应用方面尚有缺陷,所以此领域仍有很大的发展空间。
[0006] 经过对现有技术的检索发现,中国专利文献号CN101022550,公开日2007-8-22记载了一种“流媒体的数字水印信息嵌入方法”,该技术采用将隐藏信息模拟成视频流媒体的视频帧的方式来隐藏信息;中国专利文献号CN101198045,公开日2008-6-11,记载了一种“流媒体数字水印系统”,该技术在视频编码过程中加入数字水印,采用实时地将数字水印嵌入与视频数据的压缩编码相结合的方式实现信息的隐藏技术。Mrs Neeta Deshpande等2010年在ICSPS会议上发表文章《Robust DCT based Video Watermarking algorithms for Assorted Watermarks》,将DCT变换应用到流媒体水印的实时嵌入与检测方法,该方法在将流媒体视频帧的图像RGB值分别进行DCT变换,并按比例叠加到原视频帧图像的RGB值上来实现数字水印的嵌入。
[0007] 上述现有技术能在一定程度上实现信息隐藏,但上述方法涉及到更改流媒体的视频帧结构或进行视频编码,实现效率与计算复杂度有所欠缺。针对流媒体的使用特点,保持保真度的同时提高数字水印的嵌入与提取效率是对流媒体视频信息隐藏技术的挑战。

发明内容

[0008] 本发明针对现有技术存在的上述不足,提供一种基于流媒体非关键帧的数字水印嵌入和提取的方法,通过在某些特定的关键帧之前的非关键帧加入水印,采用微水印标签实现视频流媒体多处位置嵌入水印信息,当视频被切分的情况下(大于1分钟的切分),仍然可完成微水印标签的获取与鉴别,具有一定的抗攻击能力。
[0009] 本发明是通过以下技术方案实现的:
[0010] 本发明涉及一种基于流媒体非关键帧的数字水印嵌入方法,首先基于数字水印内容生成隐藏数据块,然后对FLV格式文件结构进行分析并确定水印待嵌入的额外信息位置,最后将隐藏数据块嵌入额外信息位置并生成具有数字水印的FLV格式流媒体。
[0011] 所述的生成隐藏数据块是指:首先利用散列函数将待隐藏信息m生成散列值H,该散列值H用于待隐藏信息的认证;然后将H添加在m后面生成合成信息M;再在合成信息M前添加可识别标签R,可识别标签长度固定,包含用于识别的标签头以及数据总长度;最后生成待隐藏数据块W。
[0012] 所述的FLV格式文件结构符合FLV标准的规范,包含File Header与File Body两部分。FileBody由Tag结构组成,其中:块Tag包含Tag Header与Tag Data结构。Tag Header结构可以方便地读取Tag类型、Tag帧类型、数据区长度等信息,而Tag Data包含额外信息位。
[0013] 所述的额外信息位置是指:从File Body框架中依次读取Tag结构,根据Tag Header框架判断:
[0014] 当该Tag类型为视频数据,则记录该Tag结构偏离File Body框架开始位置的字节总数Pi,i表示FLV格式文件中视频数据Tag的顺序号;
[0015] 当该Tag帧类型为关键帧,则标注该位置Pi;
[0016] 根据该Tag数据区长度计算下一Tag开始的位置Pi+1,并且读取下一Tag结构并重复上述判断,直至整个FLV格式文件分析完毕并获得Tag位置序列{P1,P2,......,Pmax},max为FLV格式文件中视频数据Tag的总数目。其中,记录标注的关键帧序列为{PK1,PK2,......,PKn},Kl∈[0,max],且Ki<Ki+1。通常K1=1,因此去掉PK1-1,则得到额外信息位置对应的帧序列L{PK2-1,PK3-1,......,PKn-1}。
[0017] 所述的将隐藏数据块嵌入额外信息位置是指:读取FLV格式文件并依次找到待嵌入位置Pn,n=Kl-1,实施嵌入:若该Tag结构Tag Data部分的额外信息位置无内容,则将待隐藏数据块W直接嵌入;反之,将原有额外信息内容附在待隐藏数据块W后再整体嵌入。重复此操作直至所有待嵌入位置嵌入完毕,获得含隐藏信息FLV格式文件,完成嵌入步骤[0018] 本发明涉及上述FLV格式流媒体的数字水印提取方法,通过读取FLV格式文件并获得水印嵌入位置后,从FLV格式文件中提取获得合成信息,最后将合成信息中分离得到数字水印后进行完整性比较,实现提取。
[0019] 所述的获得水印嵌入位置是指:分析FLV格式文件的File Header框架,得到File Body框架的开始字节数,依次读取Tag结构:分析当前Tag的Tag Header框架,若该Tag类型为视频数据,则记录该Tag偏离File Body框架开始位置的字节总数Pi,i表示FLV格式文件中视频数据Tag的顺序号,若该Tag帧类型为关键帧,则标注该位置Pi;根据该Tag数据区长度计算下一Tag开始的位置Pi+1,并且读取下一Tag结构直至整个FLV格式文件分析完毕;遍历Tag位置序列{P1,P2,......,Pmax},max为FLV格式文件中视频数据Tag的总数目。其中,记录标注的关键帧序列为{PK1,PK2,......,PKn},Kl∈[0,max],且Kl<Kl+1。通常K1=1,因此去掉PK1-1,则水印嵌入位置的帧序列为L{PK2-1,PK3-1,......,PKn-1}。
[0020] 所述的提取获得合成信息是指:读取FLV格式文件中的水印嵌入位置的帧序号Pn,n=Kl-1,n表示FLV格式文件中视频数据Tag的顺序号,当水印嵌入位置有内容,则读取该内容Xn;然后查找该内容Xn文本开始位置是否为可识别标签R,若是,则根据可识别标签R中的数据总长度取出可识别标签R后的合成信息Mn
[0021] 所述的分离得到数字水印是指:从合成信息Mn中分离数字水印内容mn和散列值Hn,对数字水印内容mn进行散列运算并得到散列值H’n。
[0022] 所述的完整性比较是指:将FLV格式文件中的数字水印内容mn的散列值H’n与Hn进行比对,当两者一致则当前合成信息所对应的视频片段未被修改,当所有合成信息均通过完整性比较时,则判断该FLV格式文件未遭受破坏或更改。
[0023] 本发明的嵌入方法就是在关键帧前构造含有隐藏信息的非关键帧。按照上述规范构造符合规范标准的嵌入数据,将数字水印写入到特定关键帧前一个非关键帧的额外信息位置,以达到隐藏信息的目的;在文件中的多个关键帧前一个非关键帧处含有数字水印的信息,这样可防止视频遭受帧置乱、帧丢失、帧替换等攻击,增强健壮性;由于数字水印加入在特定关键帧前一个非关键帧,关键帧对画面的重新刷新可以抵消数字水印对非关键帧质量的影响,视频保真性极高;由于使用的是压缩域嵌入方法,在不解码的前提下加入水印,因此嵌入和提取效率极高,可实现对视频信息隐藏的实时性操作;通常情况下,视频流媒体的相邻两关键帧之间间隔时间较短(小于1分钟),因此此算法具备微水印标签的获取与鉴别特点;数字水印编码方式比较灵活,利于后期算法及数据的改进工作,具有移植性与扩展性。

附图说明

[0024] 图1是本发明嵌入步骤流程图。
[0025] 图2是本发明提取步骤流程图。

具体实施方式

[0026] 下面对本发明的实施例作详细说明,本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
[0027] 本实施例基于H.263编码的FLV视频流媒体进行实施,涉及一种基于流媒体非关键帧的数字水印嵌入方法,首先基于数字水印内容根据H.263编码结构特点生成隐藏数据块,然后对FLV格式文件结构进行分析并确定水印待嵌入的额外信息位置,最后将隐藏数据块嵌入额外信息位置并生成具有数字水印的FLV格式流媒体。
[0028] 所述的H.263编码符合H.263标准的规范,其额外信息位由不定数量的PSUPP结构与PEI结构组成。PSUPP结构包含4比特的功能位与4比特的数据位,而PEI指示后续的是否存在更多的额外信息。并且,PSUPP结构4比特的功能位共可以组成16个功能关键字,其中4个关键字保留。
[0029] 所述的生成隐藏数据块是指:首先利用散列函数将待隐藏信息m生成散列值H,该散列值H用于待隐藏信息的认证;然后将H添加在m后面生成合成信息M;再在合成信息M前添加可识别标签R形成编码前的待隐藏数据块W’,可识别标签标签头的格式包含标签起始标志(01111110)与合成信息长度;接着将编码前的待隐藏数据块W’文本结束位置补零,使补零后的字节总数为4的倍数,再将编码前的待隐藏数据块W’分割成4比特长度的数据单元组{D1,D2......Dk},Di为四个字节,k=字节总数/4,在每块数据单元前增加特定的保留功能关键字F(0001)与PEI(最后一位为0,其余位为1),形成编码后的数据单元组{F+D1+PEI,F+D2+PEI......F+Dk+PEI},最后将编码后的数据单元组依次连接形成编码后的待隐藏数据块W。
[0030] 所述的FLV格式文件结构符合FLV标准的规范,包含File Header 与File Body两部分。FileBody由Tag结构组成,其中:块Tag包含Tag Header与Tag Data结构。Tag Header结构可以方便地读取Tag类型、Tag帧类型、数据区长度等信息,而Tag Data包含额外信息位。
[0031] 所述的额外信息位置是指:从File Body框架中依次读取Tag结构,根据Tag Header框架判断:
[0032] 当该Tag类型为视频数据,则记录该Tag结构偏离File Body框架开始位置的字节总数Pi,i表示FLV格式文件中视频数据Tag的顺序号;
[0033] 当该Tag帧类型为关键帧,则标注该位置Pi;
[0034] 据该Tag数据区长度计算下一Tag开始的位置Pi+1,并且读取下一Tag结构并重复上述判断,直至整个FLV格式文件分析完毕并获得Tag位置序列{P1,P2,......,Pmax},max为FLV格式文件中视频数据Tag的总数目。其中,记录标注的关键帧序列为{PK1,PK2,......,PKn},Kl∈[0,max],且Kl<Kl+1。通常K1=1,因此去掉PK1-1,则得到额外信息位置对应的帧序列L{PK2-1,PK3-1,......,PKn-1}。
[0035] 所述的将隐藏数据块嵌入额外信息位置是指:读取FLV格式文件并依次找到待嵌入位置Pn,n=Kl-1,实施嵌入:若该Tag结构Tag Data部分的额外信息位置无内容,则将编码后的待隐藏数据块W直接嵌入;反之,将原有额外信息内容附在编码后的待隐藏数据块W后再整体嵌入。重复此操作直至所有待嵌入位置嵌入完毕,获得含隐藏信息FLV格式文件,完成嵌入步骤。
[0036] 本实施例涉及上述FLV格式流媒体的数字水印提取方法,通过读取FLV格式文件并获得水印嵌入位置后,从FLV格式文件中提取获得合成信息,最后根据H.263编码将合成信息中分离得到数字水印后进行完整性比较,实现提取。
[0037] 所述的获得水印嵌入位置是指:分析FLV格式文件的File Header框架,得到File Body框架的开始字节数,依次读取Tag结构:分析当前Tag的Tag Header框架,若该Tag类型为视频数据,则记录该Tag偏离File Body框架开始位置的字节总数Pi,i表示FLV格式文件中视频数据Tag的顺序号,若该Tag帧类型为关键帧,则标注该位置Pi;根据该Tag数据区长度计算下一Tag开始的位置Pi+1,并且读取下一Tag结构直至整个FLV格式文件分析完毕;遍历Tag位置序列{P1,P2,......,Pmax},max为FLV格式文件中视频数据Tag的总数目。其中,记录标注的关键帧序列为{PK1,PK2,......,PKn},Kl∈[0,max],且Kl<Kl+1。通常K1=1,因此去掉PK1-1,则水印嵌入位置的帧序列为L{PK2-1,PK3-1,......,PKn-1}。
[0038] 所述的提取获得合成信息是指:读取FLV格式文件中的水印嵌入位置的帧序号Pn,n=Kl-1,n表示FLV格式文件中视频数据Tag的顺序号,当水印嵌入位置有内容,则读取该内容Xn,根据H.263编码,该内容可以依次分割为数据单元组{F+D1+PEI,F+D2+PEI......F+Dk+PEI},其中F为保留功能关键字(0001),PEI最后一位为0,其余位为1,Di为四个字节,k=字节总数/9;去掉保留功能关键字F与PEI即可得到4比特长度的数据单元组{D1,D2......Dn},连接数据单元组可得编码前内容X’n,然后查找该内容X’n文本开始位置是否为可识别标签R,若是,则根据可识别标签R中的数据总长度取出可识别标签R后的合成信息Mn。
[0039] 所述的分离得到数字水印是指:从合成信息Mn中分离数字水印内容mn和散列值Hn,对数字水印内容mn进行散列运算并得到散列值H’n。
[0040] 所述的完整性比较是指:将FLV格式文件中的数字水印内容mn的散列值H’n与Hn进行比对,当两者一致则当前合成信息所对应的视频片段未被修改,当所有合成信息均通过完整性比较时,则判断该FLV格式文件未遭受破坏或更改。
[0041] 该实施例中采用的基于FLV流媒体的数字水印关键帧前嵌入和提取的方法主要是针对H.263编码的FLV格式视频。该格式视频中含有的特定的结构,包括FLV格式的Tag数据块和H.263编码图象层的填塞位的特殊结构等都是该方法提出的重要因素。
[0042] 在采用上述方法进行隐藏信息的嵌入和提取时,无需转换编码,实时性非常高,可以实现下载视频的同时进行隐藏信息的嵌入工作,也能实现在播放视频的同时进行隐藏信息的检测工作。
[0043] 由于在本实施例嵌入隐藏信息的位置特殊,隐藏信息的添加会影响视频实际的画面质量和音频效果。但由于本方法嵌入隐藏信息的位置位于视频关键帧之前,故隐藏信息对视频的影响会被关键帧的刷新弥补。通过实施例证明,保真性极高。
[0044] 在上述提到的嵌入隐藏信息的方法,隐藏信息在多个嵌入位置有冗余,有助于在数据遭受剪辑、替换、修改等有意或无意的攻击情况下读取隐藏信息,具有一定鲁棒性。通常情况下,相邻两关键帧之间间隔时间较短(小于1分钟),因此在数据遭到微小切割的情况下(大于1分钟),该方法也能检测出隐藏信息。
[0045] 在对隐藏信息进行构造时,对原始隐藏数据进行了散列运算,同时传输散列后的数据,有助于信息接受方对隐藏信息的完整性进行检测。
[0046] 由于隐藏信息的嵌入位置并没有特殊的空间要求,该方法可扩展性较强,可以根据具体的需要采用不同的编码。
[0047] 采用本实施例的方法进行隐藏信息的嵌入,新生成的含隐藏信息的视频没有画质与音质的失真,从视觉和听觉效果上无法区分嵌入隐藏信息前后的差异性;该实施例嵌入效率极高,可以实现文件同步传输同步嵌入;该实施例中采用的嵌入提取隐藏信息的方法可以在视频遭受微小切割的情况下提取隐藏信息。