给数据对象加入指纹的制作方法

文档序号:7724794阅读:264来源:国知局
专利名称:给数据对象加入指纹的制作方法
技术领域
本发明涉及一种给数据对象加入指纹的计算机实现的方法、给数据对象加入指纹
的服务器系统、从数据对象中提取指纹值的计算机实现的方法以及从加入了指纹的数据对 象中提取指纹值的客户机系统。
背景技术
数字水印标记是将数字信息嵌入数据对象中从而使数据对象可以被识别的处理。 例如,数字对象是数据文件、视频文件、音频文件、文件目录或流数据。如果数据对象被复 制,那么在副本中也带有水印。在可见水印标记中,信息在画面或者视频中是可见的。通常, 该信息是识别媒体所有者的文字或标识。在不可见水印标记中,信息作为水印数据添加到 数据对象,但不同的是,它不会被察觉到。不可见水印标记通常用于意图防止或阻止数据对 象的未经授权的复制的版权保护系统中。 当将水印序列添加到数据对象时,该水印序列被称为指纹。在美国专利7, 058, 809 和欧洲专利申请08100123. 2中描述了这样的指纹的例子。由水印序列构成的指纹必须易 于检测才有用。如果从哪里寻找各个水印数据或指纹从哪里开始和结束的线索很少,则从 数据对象中提取形成指纹的水印数据就很成问题。此外,同值水印数据的序列中的水印数 据难以计数,并且在不定的位置处(可能用不定的密度)以及未清楚指示水印数据的精确 位置地嵌入水印的水印标记技术使得此任务更加困难。 这就需要一种改进的方法和系统,用于给数据对象加入指纹以及从数据对象中提 取指纹以允许生成和验证加入了指纹的数据对象。

发明内容
本发明的目的在于提供一种给数据对象加入指纹以及从数据对象中提取指纹的 改进的方法和系统。 根据本定明的一方面,提供了一种用于给数据对象加入指纹以提供加入了指纹的 数据对象的计算机实现的方法。数据对象通常是视频文件,但也可以是任何其它类型的数 据。所述方法包括检测数据对象内的一个或多个边界位置的步骤。所述边界位置定义了可 将数据对象分割而不会向数据对象引入失真的精确字节位置。在视频文件的情况下,边界 位置通常与当播放视频文件时文件中的会发生拼接但不会引起赝象的点对准。该方法还包 括在边界位置分割所述数据对象从而获得两个或更多个部分的步骤。该方法还包括在所述 部分中嵌入第一水印数据以获得第一加入了水印的部分,以及在所述部分中嵌入第二水印 数据以获得第二加入了水印的部分的步骤。任何已知的水印标记技术都可以用于在一个部 分中嵌入水印。该方法还包括组合第一加入了水印的部分以获得所述数据对象的第一变 体,以及组合第二加入了水印的部分以获得所述数据对象的第二变体的步骤。该方法还包 括获得包括水印标识符序列的指纹值的步骤。水印标识符具有值和位置。所述值表示第一 或第二变体。所述位置表示第一或第二变体内的加入了水印的部分。该方法还包括根据指纹值分别组合第一和第二变体的第一和第二加入了水印的部分,以提供加入了指纹的数 据对象的步骤。水印数据对于每个部分和变体是唯一的。 根据本发明的一方面,提供了一种用于给数据对象加入指纹以提供加入了指纹的 数据对象的服务器系统。所述数据对象通常为视频文件,但也可为其它任何类型的数据。所 述服务器系统包括变体生成器、水印嵌入器和部分选择器。所述变体生成器被配置为使用 检测器检测所述数据对象内的一个或多个边界位置。所述边界位置定义了可将数据对象分 割而不会向数据对象引入失真的精确字节位置。在视频文件的情况下,边界位置通常与当 播放视频文件时文件中的会发生拼接但不会引起赝象的点对准。所述变体生成器还被配置 为使用分割器在边界位置分割所述数据对象以获得两个或更多个部分。所述变体生成器还 被配置为将所述部分发送至所述水印嵌入器,并从所述水印嵌入器接收第一加入了水印的 部分和第二加入了水印的部分。所述水印嵌入器被配置为在所述部分中嵌入第一水印数据 以获得第一加入了水印的部分,以及在所述部分中嵌入第二水印数据以获得第二加入了水 印的数据。任何已知的水印标记技术都可被用于在一个部分中嵌入水印。所述变体生成器 还被配置为使用组合器组合所述第一加入了水印的部分以获得所述数据对象的第一变体, 以及组合所述第二加入了水印的部分以获得所述数据对象的第二变体。所述部分选择器被 配置为获得指纹值。所述指纹值包括水印标识符的序列。所述水印标识符具有值和位置。 该值表示第一或第二变体,该位置表示第一或第二变体内的含水印部分。所述部分选择器 还被配置为使用组合器根据所述指纹值分别组合第一和第二变体的第一和第二加入了水 印的部分,以提供加入了指纹的数据对象。所述部分选择器使用的组合器可以与所述变体 生成器使用的组合器不同。水印提供器被配置为向每个部分和变体提供唯一的水印数据。
可以产生数据对象的副本,并分割第一副本(或原始副本)以获得要加入第一水 印数据的各部分,并分割第二副本以获得要加入第二水印数据的各部分。作为另一选择,分 割数据对象之后获得的各部分被复制,所述部分的第一副本(或原始副本)被加入第一水 印数据,所述部分的第二副本被加入第二水印数据。作为又一选择,分割数据对象之后获得 的每个部分都被使用两次,即,第一次用于生成第一加入了水印的部分,第二次用于生成第 二加入了水印的部分。 这样,可以生成加入了指纹的数据对象,其中通过在每个变体的每个部分中嵌入 已知的水印数据,嵌入在加入了指纹的数据对象中的水印数据(包括指纹的开始和结束) 能够被识别。另外,通过使用所述边界位置,实现了使数据对象易于被加入指纹,而不会向 数据对象引入赝象或其它可由人察觉的失真。 权利要求2和7的实施例有利地在元数据中存储所述边界位置。因此,元数据可
以用于确定所述变体中的加入了水印的部分要在何处被组合或者被复用。 权利要求3和8的实施例有利地使得加入了指纹的数据对象能够用密码保护。 权利要求4和9的实施例有利地使得能够在部分的边界内添加数据,优选地为广
告数据。 权利要求5和9的实施例有利地使得能够在部分的边界之外添加数据,优选地为 广告数据。 根据本发明的一方面,提供了一种用于从加入了指纹的数据对象中提取指纹值的 计算机实现的方法。通常,该方法在客户机系统中执行,该客户机系统接收来自使用前述方法生成加入了指纹的数据对象的服务器系统的加入了指纹的数据对象。该方法包括从加入 了指纹的数据对象中提取水印数据序列的步骤。该方法还包括获得在生成加入了指纹的数 据对象时使用的所有部分和变体的水印数据的步骤。该方法还包括在水印数据序列中定位 和识别所获得的水印数据以获得指纹值的步骤。 根据本发明的一方面,提供了一种用于从加入了指纹的数据对象中提取指纹值的 客户机系统。通常,该客户机系统从上述的服务器系统接收加入了指纹的数据对象。客户 机系统包括与指纹检测器连接的水印检测器。所述水印检测器被配置为从所述加入了指纹 的数据对象中提取水印数据序列。所述指纹检测器被配置为获得在生成加入了指纹的数据 对象时使用的所有部分和变体的水印数据。所述指纹检测器还被配置为在水印数据序列中 定位和识别所获得的水印数据,以获得指纹值。 这样,可以容易地从加入了指纹的数据对象中获得指纹值。可将获得的指纹值例
如与用于生成所述加入了指纹的数据对象的原始指纹值进行比较。获得的指纹值和原始指
纹值之间的差表示出所述加入了指纹的数据对象的损坏或更改。基于所述差,依靠已知的
所有片段和变体的所有水印数据,例如能够得出哪些片段已被损坏或更改。 权利要求12的实施例有利地使得能够从用密码保护的加入了指纹的数据对象中
提取指纹值。 在下文中,将更详细地描述本发明的实施例。但是,应该明白,这些实施例不应被 解释为对于本发明的保护范围的限制。
的示例性实施例来详细解释本发明的各方面,在附图中 个示例性实施例的数据对象的变体的格式; 个示例性实施例的加入了指纹的数据对象; -个示例性实施例的用于给数据对象加入指纹的简化服务器


将参照在附图中示出
图l示出本发明的一
图2示出本发明的一
图3示出本发明的一 系统; 图4示出本发明的一个示例性实施例的用于从数据对象中提取指纹值的简化客 户机系统; 图5示出本发明的-
图6示出本发明的-纹值的方法的步骤。
-个示例性实施例的用于给数据对象加入指纹的方法的步骤; -个示例性实施例的用于从加入了指纹的数据对象中提取指
具体实施例方式
变体是诸如文件或文件目录的数据对象的替代形式。不同点在于文件包含不同的 水印的变体被用不同的密钥加密,并且/或者可能包含不同的广告数据,诸如在文件的某 些点处的广告视频,但是变体在其它方面相同。文件变体具有相同的名称和长度,目录变体 具有相同的目录名、文件名和文件长度。通常,变体可以用从0开始、增量为1、直至例如255 的最大值的正整数标识,即,变体O,变体1,......,变体255。 在图1中示出了本发明的一个示例性实施例的数据对象的变体的格式。这里使用 了下述符号
7
k二复用边界位置; U =未加水印的部分,或加入了 "不关心"水印值; Sxy =按序列号y在变体x中加入了优选唯一的水印数据的部分; c =指纹前(pre-fingerprint)部分U的大小,大小=M单位,M > = 0 ; b =加入了水印的部分的大小,大小=N单位,N > 0 ; f =水印间(inter-watermark)部分的大小,大小=L单位,L > = 0 ; e =指纹间(inter-fingerprint)部分的大小,大小=Q单位,Q > = 0 ; d =加入了指纹的数据对象的大小,大小=PN+(P-1)L单位(如果所有b的长度相
等且所有f的长度相等),其中P =加入了水印的部分的数目。 所述指纹前部分、水印间部分和指纹间部分如果被使用的话,是不存在水印或指 纹信息的区域。这些区域是放置例如广告的有用地点,因为如果广告被移除,则对指纹没有 影响。如果使用指纹前部分,则此部分包括第三数据对象,优选地为广告数据。如果使用水 印间部分,则此部分包括第四数据对象,优选地为广告数据。如果使用指纹间部分,则此部 分包括第五数据对象,优选地为广告数据。 所述复用边界位置k是变体将被组合或复用在一起的位置。它们与文件中会发生 拼接而不会引起赝象的点对准。针对MPEG格式,这对应于开放GOP (Group Of Pictures,图 片组)边界。 一般地,如果所述数据对象被加密,则它们也与加密密钥变化边界对准。对于 不同的系统,复用边界k之间的c、b、f、e和d的度量单位可以不同。复用边界k之间的度 量单位例如为GOP、帧、加密密钥变化、或者对于文件类型或系统适当的其它单位。
从数据对象的多个变体,生成加入了指纹的数据对象。所述加入了指纹的数据对 象由来自多个变体的加入了水印的部分Sxy组成,可能包括水印间部分U。可选地,指纹前部 分U在所述加入了指纹的数据对象之前,或者指纹间部分U在所述加入了指纹的数据对象 之后。所述加入了指纹的数据对象由从两个或更多个变体中选择的部分的组成形成。最终 的指纹是一个n基(base-n)整数,其中n是变体的数目。在图2中示出了由两个变体0和 1的组合形成的4位、2基的加入了指纹的数据对象的示例。在图2中,指纹值等于101100, 从而从来自变体1的第一加入了水印的部分(即S^)、来自变体0的第二加入了水印的部 分(即S。》、来自变体1的第三加入了水印的部分(即SJ、来自变体1的第四加入了水印 的部分(即Sj、来自变体0的第五加入了水印的部分(即S。》、来自变体0的第六加入了 水印的部分(即S。5),生成加入了指纹的数据对象。 用于为部分Sxy加入水印的水印数据优选地对于每个Sxy部分不同,并且对于每个 变体不同。这样,因为即使在变体被组合之后连续的位来自于同一个变体,连续的位也总是 具有不同的水印值,所以指纹的水印被划界。所述指纹前部分、水印间部分和指纹间部分未 加入水印或加入了 "不关心"的水印值,因而对指纹没有影响。 使用任何已知的水印技术将水印数据加入部分Sxy。例如,所述水印数据是被不可 见地加入到部分Sxy的整数值。例如,针对上述每个变体具有6个加入了水印的部分的2变 体系统,所述水印数据可以随机但是唯一地被生成SOO的水印数据=3948372, S01的水印 数据=438828, S02的水印数据=121, S03的水印数据=992370, S04的水印数据=4236, S05的水印数据=8,S10的水印数据=5372, Sll的水印数据=43,S12的水印数据=3713, S13的水印数据=68838, S14的水印数据=9257, S15的水印数据=62275。作为另一选
8择,预先定义水印数据,或者代替随机生成而以其它方式获得水印数据。 每个加入了水印的部分的宽度b通常大致相等,但是可以使宽度b有所不同。可 以使一个加入了水印的部分更长,例如以在该部分内容纳附加广告视频。在后者这种情况 下,该部分的宽度一般为通常部分的宽度加上广告的宽度。通常,广告数据本身不被加入水 印,但是可以被加入水印,而且对指纹值或加入了指纹的数据对象的整个指纹没有影响。
在图3中示出了用于给数据对象A加入指纹的简化服务器系统。服务器系统的比 如处理器、存储器、数据总线和输入/输出接口的已知元件未示出。通常,组件是由软件实 现的,但是也可以由硬件实现。变体生成器1使用水印嵌入器2以及包括变体的数目和每个 变体中的每个部分的水印数据的输入数据B,以获得变体C和元数据D。作为变体生成器1 的一部分或者实现为单独的模块的检测器、分割器和组合器被分别用于检测边界位置k以 及分割数据对象A。所述元数据包括复用边界位置k,并且可能包括M、N、L和Q的值。可选 地,加密器4使用适当的加密密钥G对一个或多个部分或完整的变体进行加密。部分选择 器3,依据元数据中的复用边界位置k,使用所提供的指纹值E从各变体中选择部分Sxy的序 列,并将它们组合以形成一个完整的加入了指纹的数据对象F。作为部分选择器3的一部分 或者实现为单独的模块的组合器被用于组合来自各变体的部分Sxy。对于该任务,部分选择 器3可以使用所述变体生成器1的组合器。 在图4中示出了用于从加入了指纹的数据对象F中提取指纹值的简化客户机系 统。服务器系统的诸如处理器、存存储、数据总线和输入/输出接口的已知单元没有示出。 如果所述加入了指纹的数据对象F包含加密部分,解密器7首先使用解密密钥K对所述加 入了指纹的数据对象F进行解密。然后,水印检测器5从所述数据对象提取水印数据的序 列H。指纹检测器6获得在生成加入了指纹的数据对象F时使用的所有部分和变体的水印 数据I。例如,该水印数据I被存储在存储器(未示出)中,或者从图3的服务器系统接收。 所述指纹检测器6使用所述水印数据I定位和识别水印的序列H中的每个水印数据。结 果应该为原始指纹值E,除非数据对象已被更改或损坏。在后者的情况下,获得更改的指纹 值。当比校更改的指纹值和原始指纹值E时,可以得出哪些加入了水印的部分S,y被替换或 丢失。根据上面提供的例子,所述指纹检测器应得出水印数据的序列H为5372、438828、 3713、68838、4236、8,该序列与指纹值E(即101100)相对应。 在图5中,示出了用于给数据对象A加入指纹的方法的步骤。在步骤101中,在数 据对象A中检测复用边界位置k。在步骤102中,在检测到的边界位置k处将数据对象A分 割,以限定数据对象的要加入水印的部分。在步骤103,将水印数据嵌入在所述部分中以获 得加入了水印的部分Sxy。所述加入了水印的部分Sxy在步骤104中被组合以获得所述数据 对象的变体。 可以产生数据对象的副本,并且分割第一副本(或原始副本)以获得要加入第一 水印数据的各部分,并分割第二副本以获得要加入第二水印数据的各部分。作为另一选择, 分割数据对象之后获得的各部分被复制,所述部分的第一副本(或原始副本)被加入第一 水印数据,所述部分的第二副本被加入第二水印数据。作为又一选择,分割数据对象之后获 得的每个部分都被使用两次,即,第一次用于生成第一加入了水印的部分,第二次用于生成 第二加入了水印的部分。 步骤103和104被重复,直至获得了所有变体C、由输入数据B定义的变体的数目。步骤105中,生成包括边界位置k的元数据D。在步骤106中,获得包括水印标识符序列的 指纹值E,其中每个水印标识符标识了当组合两个或更多个变体时使用哪个变体,并且水印 标识符序列与表示加入了指纹的数据对象F的来自两个或更多个变体C的加入了水印的部 分S,y的序列相对应。这种指纹值E的示例为如上所述的值101100。在步骤107中,根据 指纹值E组合所述变体C,以生成加入了指纹的数据对象F。元数据D在此被用来确定要在 哪里组合来自变体C的加入了水印的部分Sxy。 在图6中,示出了用于从加入了指纹的数据对象F中提取指纹值E的方法的步骤。 在步骤201中,从加入了指纹的数据对象F中提取水印数据的序列H。在步骤202中,获得 当生成所述加入了指纹的数据对象F时使用的所有部分和变体的水印数据I。在步骤203 中,在水印数据的序列H中定位和识别获得的水印数据I,以获得所述指纹值E。根据上面 给出的例子,将水印数据的序列H即5372、438828、3713、68838、4236、8识别为指纹值E,即 101100。
权利要求
一种用于给数据对象(A)加入指纹以提供加入了指纹的数据对象(F)的计算机实现的方法,包括以下步骤检测(101)数据对象(A)中的一个或多个边界位置(k);在所述边界位置(k)处将数据对象(A)分割(102)以获得两个或更多个部分;在各部分中嵌入(103)第一水印数据以获得第一加入了水印的部分;组合(104)各第一加入了水印的部分以获得所述数据对象(A)的第一变体;在各部分中嵌入(103)第二水印数据以获得第二加入了水印的部分;组合(104)各第二加入了水印的部分以获得所述数据对象(A)的第二变体;获得(106)包括水印标识符的序列的指纹值(E),所述水印标识符具有值和位置,所述值表示第一或第二变体,所述位置表示在第一或第二变体内的加入了水印的部分;以及根据指纹值(E)分别组合(107)第一和第二变体的第一和第二加入了水印的部分,以提供加入了指纹的数据对象(F),其中所述水印数据对于每个部分和变体是唯一的。
2. 如权利要求l所述的方法,还包括生成(105)包括所述边界位置(k)的元数据(D) 的步骤,并且其中元数据(D)被用于确定要在哪里组合第一和第二加入了水印的部分。
3. 如权利要求1或2所述的方法,还包括对第一和第二加入了水印的部分中的一个或 多个进行加密的步骤。
4. 如任意一个前述的权利要求所述的方法,还包括步骤将优选地为广告数据的第二 数据对象添加到第一和第二加入了水印的部分中的至少一个或多个。
5. 如权利要求2和权利要求3至4中任意一个所述的方法,其中组合(107)各加入了 水印的部分的步骤包括下列步骤中的一个或多个在第一和第二变体中的至少一个的第一个加入了水印的部分之前,添加优选地为广告 数据的第三数据对象;在第一和第二变体中的至少一个的加入了水印的部分之间,添加优选地为广告数据的第四数据对象;在第一和第二变体中的至少一个的最后一个加入了水印的部分之后,添加优选地为广 告数据的第五数据对象; 并且还包括步骤使用所述元数据(D)中的下述指示中的一个或多个来确定第三数据对象、第四数据对 象和第五数据对象中的至少一个要被包括在所述加入了指纹的数据对象(F)中的何处第 三数据对象的长度(c);第四数据对象的长度(f);第五数据对象的长度(e)。
6. —种用于给数据对象(A)加入指纹以提供加入了指纹的数据对象(F)的服务器系 统,包括变体生成器(1)、水印嵌入器(2)和部分选择器(3),其中所述变体生成器(1)被配置为使用检测器在所述数据对象(A)中检测一个或多个边界 位置(k),使用分割器在所述边界位置(k)处分割所述数据对象(A)以获得两个或更多个部 分,将各部分发送至所述水印嵌入器(2),从所述水印嵌入器(2)接收第一加入了水印的部 分和第二加入了水印的部分,使用组合器组合第一加入了水印的部分以获得数据对象(A) 的第一变体并且组合第二加入了水印的部分以获得数据对象(A)的第二变体;所述水印嵌入器(2)被配置为在各部分中嵌入第一水印数据以获得第一加入了水印的部分并且在各部分中嵌入第二水印数据以获得第二加入了水印的部分;所述部分选择器(3)被配置为获得包括水印标识符的序列的指纹值(E),所述水印标识符具有值和位置,所述值表示第一或第二变体,所述位置表示在第一或第二变体内的加入了水印的部分;并且所述部分生成器(3)被配置为使用组合器根据指纹值(E)分别组合第一和第二变体的第一和第二加入了水印的部分,以提供加入了指纹的数据对象(F),其中水印提供器被配置成为每个部分和变体提供唯一的水印数据。
7. 如权利要求6所述的服务器系统,其中,所述变体生成器还被配置为生成包括所述 边界位置(k)的元数据(D),并且所述部分选择器(3)利用元数据(D)确定要在哪里组合第 一和第二加入了水印的部分。
8. 如权利要求6或7所述的服务器系统,还包括被配置为对第一和第二加入了水印的 部分中的一个或多个进行加密的加密器(4)。
9. 如权利要求6至8中任意一个所述的服务器系统,其中所述变体生成器(1)还被配 置为将优选地为广告数据的第二数据对象添加到第一和第二加入了水印的部分中的一个 或多个。
10. 如权利要求7和权利要求8至9中任意一个所述的服务器系统,其中所述变体生成 器(1)还被配置为添加以下数据对象中的至少一个在第一和第二变体的第一个加入了水印的部分之前,添加优选地为广告数据的第三数 据对象;在第一和第二变体的各加入了水印的部分之间,添加优选地为广告数据的第四数据对象;在第一和第二变体的最后一个加入了水印的部分之后,添加优选地为广告数据的第五 数据对象;其中,所述变体生成器被配置为使用所述元数据(D)中的下述指示中的一个或多个来 确定第三数据对象、第四数据对象和第五数据对象中的至少一个要被包括在所述加入了指 纹的数据对象(F)中的何处第三数据对象的长度(C);第四数据对象的长度(f);第五数 据对象的长度(e)。
11. 一种用于从使用根据权利要求1至5中任意一个的方法生成的加入了指纹的数据 对象(F)中提取指纹值(E)的计算机实现的方法,包括以下步骤从加入了指纹的数据对象(F)中提取(201)水印数据的序列;获得(202)或者具有在生成所述加入了指纹的数据对象(F)时使用的所有部分和变体 的可用水印数据(I);在所述水印数据的序列中定位和识别(203)所获得的水印数据(I)以获得指纹值(E)。
12. 如权利要求11所述的方法,还包括在提取所述水印数据的序列之前对所述加入了 指纹的数据对象(F)进行解密的步骤。
13. —种用于从使用根据权利要求6至10中任意一个的系统生成的加入了指纹的数据 对象(F)中提取指纹值(E)的客户机系统,包括与指纹检测器(6)连接的水印检测器(5), 其中所述水印检测器(5)被配置为从所述加入了指纹的数据对象(F)中提取水印数据的序列;并且所述指纹检测器(6)被配置为获得或者具有在生成所述加入了指纹的数据对象(F)时 使用的所有部分和变体的可用水印数据(I),并在所述水印数据的序列中定位和识别所获 得的水印数据(I),以获得所述指纹值(E)。
全文摘要
本发明涉及给数据对象加入指纹。本发明提供了一种用于在服务器系统处给数据对象加入指纹的方法和系统以及一种用于在客户机系统处从所述数据对象中提取指纹的方法和系统。数据对象的各部分被加入已知的水印数据以生成所述数据对象的第一和第二变体,由此所述部分的边界被可选池保存为元数据。利用该元数据,通过从各变体得到各部分,将第一和第二变体组合以生成加入了指纹的数据对象。从该加入了指纹的数据对象中,可以再次提取出所述水印数据。
文档编号H04N7/24GK101790065SQ20091100013
公开日2010年7月28日 申请日期2009年12月30日 优先权日2008年12月30日
发明者J·博伊德, P·马科特 申请人:耶德托存取公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1