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

文档序号:7896497阅读:628来源:国知局
专利名称:基于流媒体非关键帧的数字水印嵌入和提取的方法
技术领域
本发明涉及的是一种信息安全技术领域的方法,具体是一种用于FLV(FLASH VIDEO)格式的基于流媒体非关键帧的数字水印嵌入和提取的方法。
背景技术
互联网的迅猛发展和普及为流媒体业务发展提供了强大市场动力,使其日益流 行,广泛应用于多媒体新闻发布、在线直播、网络广告、视频点播等互联网信息服务的方方 面面。多媒体技术的飞速发展以及摄像器材的普及也使普通人可以通过家用摄像机、摄像 头、视频手机等设备拍摄喜爱的内容,并发布到视频网站。流媒体技术的应用为网络信息交 流带来了革命性的变化,对人们的工作和生活产生了深远的影响。流媒体的传输方式不同于传统的多媒体文件,它是将整个多媒体文件经过特殊的 处理,压缩成为一个个压缩包,由视频服务器向用户计算机连续、实时地传送。在采用流式 传输方式的系统中,用户不必下载整个多媒体视频文件,而只需经过几秒或几十秒的启动 延时即可动态、连续地接受流媒体视频文件,并在用户计算机上利用解压设备对多媒体文 件解压后进行观看。然而目前视频网站缺乏足够的监管和自律,盗版、拼接、篡改视频比比皆是。为了 解决网络视频的版权争议问题,各类专利技术应运而生,提出许多针对网络视频片断的版 权归属问题的解决方案。流媒体的数字水印解决方案需要充分考虑到流媒体的流式传播的特点,在保持保 真性的基础上尽量提高下载、播放效率。但是现有的数字水印技术在流媒体应用方面尚有 缺陷,所以此领域仍有很大的发展空间。经过对现有技术的检索发现,中国专利文献号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 值上来实现数字水印的嵌入。上述现有技术能在一定程度上实现信息隐藏,但上述方法涉及到更改流媒体的视 频帧结构或进行视频编码,实现效率与计算复杂度有所欠缺。针对流媒体的使用特点,保持 保真度的同时提高数字水印的嵌入与提取效率是对流媒体视频信息隐藏技术的挑战。

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


图1是本发明嵌入步骤流程图。图2是本发明提取步骤流程图。
具体实施例方式下面对本发明的实施例作详细说明,本实施例在以本发明技术方案为前提下进行 实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施 例。本实施例基于H. 263编码的FLV视频流媒体进行实施,涉及一种基于流媒体非关 键帧的数字水印嵌入方法,首先基于数字水印内容根据H. 263编码结构特点生成隐藏数据 块,然后对FLV格式文件结构进行分析并确定水印待嵌入的额外信息位置,最后将隐藏数 据块嵌入额外信息位置并生成具有数字水印的FLV格式流媒体。所述的H. 263编码符合H. 263标准的规范,其额外信息位由不定数量的PSUPP结 构与PEI结构组成。PSUPP结构包含4比特的功能位与4比特的数据位,而PEI指示后续 的是否存在更多的额外信息。并且,PSUPP结构4比特的功能位共可以组成16个功能关键 字,其中4个关键字保留。所述的生成隐藏数据块是指首先利用散列函数将待隐藏信息m生成散列值H,该 散列值H用于待隐藏信息的认证;然后将H添加在m后面生成合成信息M ;再在合成信息M前添加可识别标签R形成编码前的待隐藏数据块W’,可识别标签标签头的格式包含标签 起始标志(01111110)与合成信息长度;接着将编码前的待隐藏数据块W’文本结束位置补 零,使补零后的字节总数为4的倍数,再将编码前的待隐藏数据块W’分割成4比特长度的
数据单元组{D1;D2......DJ5Di为四个字节,k =字节总数/4,在每块数据单元前增加特定
的保留功能关键字F(OOOl)与PEI (最后一位为0,其余位为1),形成编码后的数据单元组
{F+Di+PEI,F+D2+PEI......F+Dk+PEI},最后将编码后的数据单元组依次连接形成编码后的
待隐藏数据块W。所述的FLV格式文件结构符合FLV标准的规范,包含File Header与File Body 两部分。FileBody由Tag结构组成,其中块Tag包含iTag Header与iTag Data结构。Tag Header结构可以方便地读取Tag类型、Tag帧类型、数据区长度等信息,而Tag Data包含额 外信息位。所述的额外信息位置是指从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,......,
PkJ,K1 e
,且K1 < Kw。通常K1 = 1,因此去掉PK1_1;则得到额外信息位置对应的 帧序列 UPk2+ Pk3-I'......,Ρκη-J。所述的将隐藏数据块嵌入额外信息位置是指读取FLV格式文件并依次找到待嵌 入位置Pn,η = K1-I,实施嵌入若该Tag结构Tag Data部分的额外信息位置无内容,则将 编码后的待隐藏数据块W直接嵌入;反之,将原有额外信息内容附在编码后的待隐藏数据 块W后再整体嵌入。重复此操作直至所有待嵌入位置嵌入完毕,获得含隐藏信息FLV格式 文件,完成嵌入步骤。本实施例涉及上述FLV格式流媒体的数字水印提取方法,通过读取FLV格式文件 并获得水印嵌入位置后,从FLV格式文件中提取获得合成信息,最后根据H. 263编码将合成 信息中分离得到数字水印后进行完整性比较,实现提取。所述的获得水印嵌入位置是指分析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,......,PfflaJ,max为FLV格式文件中视频数据Tag的总数
目。其中,记录标注的关键帧序列为{PK1,PK2,......, PlinI, K1 e
,且K1 < Kw。通
常K1 = 1,因此去掉I31^1,则水印嵌入位置的帧序列为L{PK2_1; PK3_i;......,Plin^1I。所述的提取获得合成信息是指读取FLV格式文件中的水印嵌入位置的帧序 号Pn,η = K1-I, η表示FLV格式文件中视频数据Tag的顺序号,当水印嵌入位置有内容,则读取该内容Xn,根据H. 263编码,该内容可以依次分割为数据单元组{F+Di+PEI,
F+D2+PEI......F+Dk+PEI},其中F为保留功能关键字(0001),PEI最后一位为0,其余位为
1,Di为四个字节,k =字节总数/9 ;去掉保留功能关键字F与PEI即可得到4比特长度的
数据单元组{D1;D2......DJ,连接数据单元组可得编码前内容V n,然后查找该内容X’ n文
本开始位置是否为可识别标签R,若是,则根据可识别标签R中的数据总长度取出可识别标 签R后的合成信息Mn。所述的分离得到数字水印是指从合成信息Mn中分离数字水印内容散列值 Hn,对数字水印内容mn进行散列运算并得到散列值H’ n。所述的完整性比较是指将FLV格式文件中的数字水印内容mn的散列值H’n与Hn 进行比对,当两者一致则当前合成信息所对应的视频片段未被修改,当所有合成信息均通 过完整性比较时,则判断该FLV格式文件未遭受破坏或更改。该实施例中采用的基于FLV流媒体的数字水印关键帧前嵌入和提取的方法主要 是针对H. 263编码的FLV格式视频。该格式视频中含有的特定的结构,包括FLV格式的Tag 数据块和H. 263编码图象层的填塞位的特殊结构等都是该方法提出的重要因素。在采用上述方法进行隐藏信息的嵌入和提取时,无需转换编码,实时性非常高,可 以实现下载视频的同时进行隐藏信息的嵌入工作,也能实现在播放视频的同时进行隐藏信 息的检测工作。由于在本实施例嵌入隐藏信息的位置特殊,隐藏信息的添加会影响视频实际的画 面质量和音频效果。但由于本方法嵌入隐藏信息的位置位于视频关键帧之前,故隐藏信息 对视频的影响会被关键帧的刷新弥补。通过实施例证明,保真性极高。在上述提到的嵌入隐藏信息的方法,隐藏信息在多个嵌入位置有冗余,有助于在 数据遭受剪辑、替换、修改等有意或无意的攻击情况下读取隐藏信息,具有一定鲁棒性。通 常情况下,相邻两关键帧之间间隔时间较短(小于1分钟),因此在数据遭到微小切割的情 况下(大于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,……,PmaJ,其中max为FLV格式文件中视频数据Tag的总数目,记录标注的关键帧序列为{PK1,ΡΚ2,......,PJjK1 e
,且K1 < KwjK1 = 1,去掉I31^1得到额外信息位置对应的帧序列L{PK2_1;Pr3-1 ‘......,Ρκη-J。
5.根据权利要求1所述的基于流媒体非关键帧的数字水印嵌入方法,其特征是,所述 的将隐藏数据块嵌入额外信息位置是指读取FLV格式文件并依次找到待嵌入位置Ρη,η = K1-I,实施嵌入若该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,......,PfflaJ,其中maX为FLV格式文件中视频数据Tag的总数目,记录标注的关键帧序列为{PK1,PK2,......,PJjK1 e
,且 K1 < K1^K1 = 1,去掉 I3ki-JIJ水印嵌入位置的帧序列为L{PK2_1; Pk3^1 ,......,Plin-J。
8.根据权利要求6所述的FLV格式流媒体的数字水印提取方法,其特征是,所述的提取 获得合成信息是指读取FLV格式文件中的水印嵌入位置的帧序号Pn,η = K1-I, η表示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格式文件未遭受破坏或更改。
全文摘要
一种信息安全技术领域的基于流媒体非关键帧的数字水印嵌入和提取的方法,首先基于数字水印内容生成隐藏数据块,然后对FLV格式文件进行分析并确定水印待嵌入的额外信息位置,最后将隐藏数据块嵌入额外信息位置并生成具有数字水印的FLV格式流媒体。接收端通过读取FLV格式文件并获得水印嵌入位置后,从FLV格式文件中提取获得合成信息,最后将合成信息中分离得到数字水印后进行完整性比较,实现提取。本发明在视频被切分的情况下(大于1分钟的切分),仍然可完成微水印标签的获取与鉴别,具有一定的抗攻击能力。
文档编号H04N21/8358GK102123327SQ20101060105
公开日2011年7月13日 申请日期2010年12月23日 优先权日2010年12月23日
发明者孙锬锋, 徐澜, 李良祯, 王琬, 程东阳, 蒋兴浩, 顾昕彪 申请人:上海交通大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1