具体实施方式
在以下本发明的详细描述中,参考附图,附图形成了本发明的一部分,并作为可实践本发明的一个具体示例的说明而示出。可以理解,可在不脱离本发明的范围的情况下使用其它实施例并作出结构改变。
I.
介绍
数字多媒体数据的非法复制和分发已经成为一个普遍的问题,导致知识产权的所有者的收入的损失。提高被抓获的风险的一种方法是使用以购买者来唯一地标识包含数字多媒体数据的产品的副本的加指纹技术。然而,现有的加指纹技术在可标识的合作者的数量上有严重的限制。另外,这些技术通常使用加指纹代码,而这些代码很难实现。此外,现有的加指纹技术对估算攻击很脆弱,这类攻击实际上可消除指纹。
本发明揭示的去同步加指纹方法和系统能够标识比现有技术至少多一个数量级的合作者。此外,该方法和系统在不使用加指纹代码的情况下实现这一效果。尽管可对去同步加指纹系统和方法使用代码,然而它们并非所需。另外,通过使用随机地改变随机选择的去同步区域的宽度的一种新的随机去同步过程,使去同步加指纹方法和系统能够防估算攻击。然后,对数字多媒体数据的每一副本在嵌入区域中嵌入指纹,这些嵌入区域可以与去同步区域相同或不同。通过增加可被标识的合作者的数量,并通过令该技术能够防估算攻击,该去同步加指纹方法和系统担当一种对非法复制的强大威慑。
II.
综述
图1所示是本发明所揭示的去同步加指纹系统和方法的一个示例性实现的框图。应当注意,图1仅是可在其中实现并使用去同步加指纹系统和方法的若干方式之一。
该去同步加指纹系统和方法在数字多媒体数据(如,图像、视频或音频)上操作。一般而言,去同步加指纹系统和方法有两部分。第一部分是使用去同步加指纹系统和方法以在数字多媒体产品(如,电影或音频录音)的每一副本中嵌入唯一的信息。该唯一的信息被分类,使得该产品的副本与特定的人(如产品副本的购买者)相关联。第二部分涉及分析产品的非法副本(例如,法庭分析)以确定这些人中的哪些一起合作来生产该非法副本。
在图1所示的示例性实现中,数字多媒体产品是电影。更具体地,如图1所示,去同步加指纹系统和方法100用于处理电影105的主副本。如后文所详细描述的,去同步加指纹系统和方法100使用一主密钥110和多个机密密钥115。在这一示例性实现中,机密密钥的数量是N。在处理之后,去同步加指纹系统和方法的输出是电影105的N个副本。具体地,去同步加指纹系统和方法100产生加指纹的电影副本(1)120、加指纹的电影副本(2)125和加指纹的电影副本(3)130等等,直到加指纹的电影副本(N)135。每一加指纹的副本具有一个对应的机密密钥115。与该加指纹的电影副本相关联的机密密钥允许该密钥的持有者访问包含在该电影副本内的唯一信息。
然后以某一方式分发每一加指纹的电影副本。通常,分发包括出售。然而,其它类型的分发也是可能的,如为某一其它目的分发到客户,如审阅、评估等等。在图1所示的示例性实现中,分发通过某人购买电影的加指纹的副本来完成。具体地,第一购买者(B(1))购买加指纹的电影副本(1)120,第二购买者(B(2))145购买加指纹的电影副本(2)125,第三购买者(B(3))150购买加指纹的电影副本(3)130,等等,使得第N个购买者(B(N))155购买加指纹的电影副本(N)135。保存每一购买者以及它们所购买的电影的副本数量的记录。
电影的非法副本160通常通过若干购买者的合作来制作,如图1中由箭头165所示的。然而,参与合作的购买者的身份在这一点上是未知的。去同步加指纹系统和方法100用于处理该非法电影副本160并标识合作者。
非法电影副本160由去同步加指纹系统和方法100通过尝试机密密钥115的每一个来处理。如果机密密钥115打开嵌入在非法电影副本160中的一部分信息,则与该密钥相关联的购买者被认为是涉及制作非法电影副本160的合作者。在图1所示的该示例性实现中,购买者B(6)165、B(7)170和B(9)175被标识为涉及制作非法电影副本160。然后采取适当的法律行动来阻止其他人合作制造非法副本(如,监禁有罪的各方180)。
应当注意,去同步加指纹系统和方法100可标识远比所示的三个更多的合作者。实际上,去同步加指纹系统和方法100的一个优点是它能够标识非常大量的合作者。然而,为简化目的,在本示例性实现中仅示出三个。
III.
操作概述
现在讨论图1所示的去同步加指纹系统和方法100的操作。图2所示是图1所示的去同步加指纹系统的通用操作的通用流程图。去同步加指纹方法通过获取原始数字多媒体产品(框200)并制作副本(框210)来开始。对每一副本分配一个不同且唯一的机密密钥以及与该密钥相关联的唯一信息(框220)。例如,该唯一信息可以是副本的号码。
然后通过使用去同步嵌入过程嵌入机密密钥和关联的唯一信息来对每一副本加指纹(框230)。然后分发所得的去同步加指纹的副本(框240)。例如,可将副本销售给公众或可用于出租。
副本的某些持有者稍后可合作来生产非法副本。例如,可使用每一合作者的副本的一小部分来生产单个非法副本。这通常涉及大量的合作者。一般而言,其思想是大量合作者的每一个都被标识为合作者是较不可能的。
非法副本由去同步加指纹方法获取(250)并处理。该方法检测并提取非法副本中嵌入的指纹(框260)。嵌入的指纹使用去同步加指纹检测和提取过程以及机密密钥来检测和提取。去同步加指纹检测和提取过程确定并标识参与非法副本的制作的合作者。
IV.
操作细节
图3所示是图2所示的去同步加指纹方法的去同步嵌入过程的操作的通用流程图。一般而言,去同步嵌入过程执行两个功能。首先,该过程将唯一的信息在随机嵌入位置上嵌入到多媒体产品的副本中。其次,该过程在不同的去同步位置随机地将不同的副本彼此去同步(使用主密钥)。在一个实施例中,嵌入区域和去同步区域是相同的位置。可选地,嵌入区域可与去同步区域在相同的位置上。
参考图3,去同步嵌入过程首先获取多媒体产品的副本(框300)。下一步,随机地选择多媒体产品副本的嵌入区域和去同步区域(框310)。嵌入区域是多媒体产品副本中嵌入指纹的位置。去同步区域是应用随机宽度变化的区域。这些随机宽度变化以高概率对每一用户是不同的。如果多媒体产品是电影,则较佳地,嵌入区域不是单个帧或场景。可选地,嵌入区域可以是包含若干帧的单个场景。如果多媒体产品是音频录音,则嵌入区域可以是音频剪辑或包含音频录音的一部分的音频片段。类似的自变量也可应用到去同步区域。通常,要嵌入指纹的音频剪辑比整个录音要短得多。
嵌入和去同步区域的数量可随机选择或由用户选择。此外,媒体内容的感知特征在该选择中也是重要的。通常,由于感知和安全原因,不期望在低活动的区域(或几乎没有平均信息量的区域)中嵌入标记。自然地,这影响所选择的区域的数量的选择。即使有大量的高活动区域(在安全性和健壮性方面适合标记嵌入),然而嵌入区域的数量的选择是置信度和费用之间的权衡。较多数量的嵌入区域意味着较多数量的指纹和较高的置信度,但是较大的费用。另一方面,较少数量的嵌入区域意味着较少数量的指纹和较小的置信度,以及会错过的较多数量的合作者。然而,它也意味着检测和提取指纹中的较少费用。
对每一去同步区域执行随机去同步(框320)。随机去同步是用于令去同步加指纹方法对估算攻击安全的去同步加指纹方法的一个新特征。加指纹的一个问题是如果有大量的产品副本,并且如果用大量的密钥来对统一场景加指纹时所引发的共谋攻击类。作为示例,攻击者可取得该场景的所有帧,并计算所有帧的平均值(被称为估算攻击,因为攻击者正在形成原始的未加标记的内容的估算)。可选地,攻击者可从不同的副本中选择并粘贴不同的部分,由此形成一个新副本(被称为复制和粘贴攻击)。这些类型的攻击(假定它们被正确地执行)一般将毁掉所有的指纹。
为反击这些类型的攻击(如,估算攻击,复制和粘贴攻击等等),去同步加指纹方法使用随机去同步来随机地改变场景所包含的帧的数量。注意,为能够应用共谋攻击,一个重要的先决条件是所有客户副本应当被“对齐”。在应用伪随机去同步之后,场景中所包含的帧的数量在电影的副本之间变化。这些数量对每一用户伪随机地选择,并且因此,它们以高概率对每一用户是不同的。该技术被应用到随机选择的区域,称为去同步区域。对去同步加指纹方法唯一的去同步技术减轻了攻击者擦除指纹的概率。由此,电影的第一场景的副本1可包含28个帧,而副本2可包含32个帧。这严重地限制了潜在攻击者应用共谋攻击的能力。这是由于该方法令同步所有的副本并对其求平均值变得很困难。此外,更多副本意味着更难同步这些副本并将它们放在一起以发动估算攻击。
下一步,在每一嵌入区域中嵌入信息(框330)。一般而言,去同步区域和嵌入区域不必要相同,但是它们可能重叠。例如,嵌入信息可以是多媒体产品的副本号码。最后,输出多媒体产品的去同步加指纹的副本(框340)。
图4是更详细地示出了图3所示的去同步嵌入过程的操作的详细流程图。创建多媒体产品的副本(框400)。下一步,使用主密钥来随机地选择多媒体产品副本内的去同步区域(框410)。同样,使用主密钥和散列函数来随机地选择嵌入区域(框420)。然后对每一嵌入区域找出并储存散列值(框430)。
随机去同步过程包括随机地改变去同步区域的宽度,以去同步产品副本。该随机去同步过程包括使用主密钥来对每一去同步区域随机地计算新宽度,并相应地改变宽度(框440)。在每一嵌入区域中嵌入副本信息(框450)。另外,在每一嵌入区域中嵌入一机密且唯一的密钥(框460)。最后,输出去同步加指纹的产品副本(框470)。
图5所示是图2所示的去同步加指纹方法的检测和提取过程的操作的通用流程图。该过程通过获取原始多媒体产品的非法副本来开始(框500)。下一步,计算非法副本的散列值(510)。然后从计算的散列值确定嵌入区域(框520)。
然后对每一机密密钥在每一嵌入区域上执行水印检测过程(框530)。由此,对每一嵌入区域尝试每一机密密钥。这减轻了对加指纹代码或其它类型的代码的需求。以计算为代价,使用该过程可跟踪到比当前可用的更多的共谋。可选地,可选择随机数量的密钥来向非法副本尝试。这减少了计算费用,但具有错过某些合作者的风险。
然后检测与特定机密密钥相关联的标识信息(框540)。例如,该标识可以是产品副本的购买者的名字或地址。一旦检测到标识信息,提取该信息,并将其与合作者相关联来获取合作者信息(框550)。然后可构造合作者列表(框560)。
V.
示例性操作环境
去同步加指纹系统和方法100被设计成在计算环境并在计算设备上操作。现在讨论可在其中操作去同步加指纹系统和方法100的计算环境。以下讨论旨在提供可在其中实现去同步加指纹系统和方法100的合适的计算环境的简要、通用描述。
图1示出了适合在其中实现图1所示的去同步加指纹系统和方法100的计算系统环境的一个示例。计算系统环境600仅为合适的计算环境的一个示例,并非暗示对本发明的使用范围或功能的局限。也不应将计算环境600解释为对示例性操作环境600中示出的任一组件或其组合具有依赖或需求。
去同步加指纹系统和方法100可以使用众多其它通用或专用计算系统环境或配置来操作。适合使用去同步加指纹系统和方法的众所周知的计算系统、环境和/或配置包括但不限于:个人计算机、服务器计算机、诸如蜂窝电话和PDA等手持式、膝上或移动计算机或通信设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费者电子设备、网络PC、小型机、大型机、包括任一上述系统或设备的分布式计算环境等等。
去同步加指纹系统和方法100可在诸如由计算机执行的程序模块等计算机可执行指令的一般上下文环境中描述。一般而言,程序模块包括例程、程序、对象、组件、数据结构等等,执行特定的任务或实现特定的抽象数据类型。去同步加指纹系统和方法100也可以在分布式计算环境中实践,其中,任务由通过通信网络连接的远程处理设备来执行。在分布式计算环境中,程序模块可以位于本地和远程存储器存储设备中。参考图6,用于实现去同步加指纹系统和方法100的示例系统包括计算机610形式的通用计算装置。
计算机610的组件可包括但不限于,处理单元620、系统存储器630以及将包括系统存储器的各类系统组件耦合至处理单元620的系统总线621。系统总线621可以是若干种总线结构类型的任一种,包括存储器总线或存储器控制器、外围总线以及使用各类总线体系结构的局部总线。作为示例而非局限,这类体系结构包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强ISA(EISA)总线、视频电子技术标准协会(VESA)局部总线以及外围部件互连(PCI)总线,也称为Mezzanine总线。
计算机610通常包括各种计算机可读媒质。计算机可读媒质可以是可由计算机610访问的任一可用媒质,包括易失和非易失媒质、可移动和不可移动媒质。作为示例而非局限,计算机可读媒质包括计算机存储媒质和通信媒质。计算机存储媒质包括以用于储存诸如计算机可读指令、数据结构、程序模块或其它数据等信息的任一方法或技术实现的易失和非易失,可移动和不可移动媒质。
计算机存储媒质包括但不限于,RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光盘存储、磁盒、磁带、磁盘存储或其它磁存储设备、或可以用来储存所期望的信息并可由计算机610访问的任一其它媒质。通信媒质通常在诸如载波或其它传输机制的已调制数据信号中包含计算机可读指令、数据结构、程序模块或其它数据,并包括任一信息传送媒质。
注意,术语“已调制数据信号”指以对信号中的信息进行编码的方式设置或改变其一个或多个特征的信号。作为示例而非局限,通信媒质包括有线媒质,如有线网络或直接连线连接,以及无线媒质,如声学、RF、红外和其它无线媒质。上述任一的组合也应当包括在计算机可读媒质的范围之内。
系统存储器630包括以易失和/或非易失存储器形式的计算机存储媒质,如只读存储器(ROM)631和随机存取存储器(RAM)632。基本输入/输出系统633(BIOS)包括如在启动时帮助在计算机610内的元件之间传输信息的基本例程,通常储存在ROM 631中。RAM 632通常包含处理单元620立即可访问或者当前正在操作的数据和/或程序模块。作为示例而非局限,图6示出了操作系统634、应用程序635、其它程序模块636和程序数据637。
计算机610也可包括其它可移动/不可移动、易失/非易失计算机存储媒质。仅作示例,图6示出了对不可移动、非易失磁媒质进行读写的硬盘驱动器641、对可移动、非易失磁盘652进行读写的磁盘驱动器651以及对可移动、非易失光盘656,如CD ROM或其它光媒质进行读写的光盘驱动器655。
可以在示例性操作环境中使用的其它可移动/不可移动、易失/非易失计算机存储媒质包括但不限于,磁带盒、闪存卡、数字多功能盘、数字视频带、固态RAM、固态ROM等等。硬盘驱动器641通常通过不可移动存储器接口,如接口640连接到系统总线621,磁盘驱动器651和光盘驱动器655通常通过可移动存储器接口,如接口650连接到系统总线121。
图6讨论并示出的驱动器及其关联的计算机存储媒质为计算机610提供了计算机可读指令、数据结构、程序模块和其它数据的存储。例如,在图6中,示出硬盘驱动器641储存操作系统644、应用程序645、其它程序模块646和程序数据647。注意,这些组件可以与操作系统634、应用程序635、其它程序模块636和程序数据637相同,也可以与它们不同。这里对操作系统644、应用程序645、其它程序模块646和程序数据647给予不同的标号来说明至少它们是不同的副本。用户可以通过输入设备,如键盘662和定位设备661(通常指鼠标、跟踪球或触摸板)向计算机610输入命令和信息。
其它输入设备(未示出)可包括麦克风、操纵杆、游戏垫、圆盘式卫星天线、扫描仪、无线电接收器或电视或广播视频接收器等等。这些和其它输入设备通常通过耦合至系统总线621的用户输入接口660连接至处理单元620,但是也可以通过其它接口和总线结构连接,如并行端口、游戏端口或通用串行总线(USB)。监视器691或其它类型的显示设备也通过接口,如视频接口690连接至系统总线621。除监视器之外,计算机也可包括其它外围输出设备,如扬声器697和打印机696,通过输出外围接口695连接。
计算机620可以在使用到一个或多个远程计算机,如远程计算机680的逻辑连接的网络化环境中操作。远程计算机680可以是个人计算机、服务器、路由器、网络PC、对等设备或其它公用网络节点,并通常包括许多或所有上述与计算机610相关的元件,尽管在图6中仅示出了存储器存储设备681。图6描述的逻辑连接包括局域网(LAN)671和广域网(WAN)673,但也可包括其它网络。这类网络环境常见于办公室、企业范围计算机网络、内联网以及因特网。
当在LAN网络环境中使用时,计算机610通过网络接口或适配器670连接至LAN 671。当在WAN网络环境中使用时,计算机可包括调制解调器672或其它装置,用于通过WAN 673,如因特网建立通信。调制解调器672可以是内置或外置的,通过用户输入接口660或其它合适的机制连接至系统总线621。在网络化环境中,描述的与计算机610相关的程序模块或其部分可储存在远程存储器存储设备中。作为示例,图6示出了远程应用程序685驻留在存储器设备681上。可以理解,示出的网络连接是示例性的,也可以使用在计算机之间建立通信的其它装置。
IV.
系统组件
图1所示的去同步加指纹系统包括允许系统100唯一地标记多媒体产品的副本,并稍后标识涉及该产品的非法副本的生产的合作者的若干程序模块。一般而言,系统100包括一嵌入特征和一检测及提取特征。现在讨论这些特征的每一个的程序模块。
图7所示是图1所示的去同步加指纹系统100的细节的框图。系统100本质上具有两个功能,如由虚线所示的:(a)指纹的去同步嵌入;以及(b)指纹的检测和提取。具体地,对于嵌入功能,原始数字多媒体产品700(如,电影或音频录音)被输入到去同步加指纹系统100。位于去同步加指纹系统100中的嵌入模块710用于处理产品700,使得产品700的去同步加指纹的副本720被创建。
对于检测和提取功能,由去同步加指纹系统100获取并分析产品700的非法副本730。位于去同步加指纹系统100中的检测和提取模块740用于检测嵌入的指纹并提取指纹中的信息。该信息允许唯一地标识涉及非法副本730的生产的合作。去同步加指纹系统100然后可以创建合作者列表750。
图8所示是图7所示的嵌入模块710的细节的框图。具体地,嵌入模块710包括复制模块800、嵌入区域选择器810、去同步区域选择器820、随机去同步模块830和嵌入模块840。复制模块800用于产生原始数字多媒体产品700的多个副本。这些副本的每一个由嵌入模块840处理。嵌入区域选择器810随机地选择每一副本中会发生指纹嵌入的区域。类似地,去同步区域选择器820随机地选择每一副本向其应用使用宽度改变的随机去同步的区域。在某些实施例中,嵌入区域选择器810和去同步区域选择器820也选择嵌入和去同步区域的数量,
随机去同步模块830随机地选择每一去同步区域的宽度。这意味着去同步区域的宽度会在产品700的不同副本之间有些许不同。宽度意味着帧的数量(如果产品700是电影)或音频片段的时间长度(如果产品700是音频录音)。嵌入模块840在每一嵌入区域中嵌入指纹,以产生产品700的去同步加指纹的副本720。
图9所示是图7所示的检测和提取模块740的细节的框图。检测和提取模块740包括散列值提取器900、嵌入区域确定模块910、指纹检测器920和合作者提取模块930。散列值提取器900分析非法副本730并提取散列值。嵌入区域确定模块910使用提取的散列值,并将它们与原始信号的嵌入区域的散列值相比较,来确定副本730内嵌入区域的位置。指纹检测器920搜索每一嵌入区域中的指纹。使用每一机密密钥来检测指纹。合作者提取模块930基于用于检测指纹的机密密钥提取关于合作者的信息。如果使用某一机密密钥检测到了指纹,则使用与该密钥相关联的唯一信息来标识涉及非法副本730的生产的合作者。由于通常有大量的合作者,生成参与非法副本730的制作的合作者的列表。
VII.
工作示例
为更彻底地理解本发明所揭示的去同步加指纹系统和方法,提出一个示例性工作示例的操作细节。应当注意,该工作示例仅为可在其中实现去同步加指纹系统和方法的一种方法。在该工作示例中,去同步加指纹系统和方法被应用到流多媒体对象。
去同步加指纹系统和方法可用于音频和视频应用。一般而言,向每一用户分配一不同的密钥。嵌入特征包括向所选择的区域应用伪随机变换。伪随机变换的密钥是用户专用的。这些区域通过一安全多媒体散列函数来选择。检测和提取特征包括用户的密钥空间中的硬算搜索。如果密钥之一足够“相似”,则声明该用户涉及非法副本的生产。
符号表示
设给定的多媒体信号包括单独的“对象”s
1、s
2、…、s
M,其中,M是对象的总数。例如,在视频应用中,帧可被作为对象来处理,M可表示视频中帧的总数。可选地,在音频应用中,固定长度的时间块可被作为对象来处理,M可表示这些时间块的总数。设N是顾客(或购买者)的总数。因此,期望产生多媒体信号的N个不同的副本。设K
i是用户i的机密密钥,1≤i≤N。设K是机密主密钥,它不同于
散列函数
假定存在一散列函数,
hK(·)
它在以下对象上操作,
{si}
并且其范围为
{0,1}L。
该散列函数是一伪随机操作符,它由机密密钥K随机化。
设d(·,·)表示规范化的汉明距离(Hamming distance)(由输出散列值的长度L规范化)。假定:
1.hK(si)对每一给定的i近似在{0,1}L上均匀分布。
2.Pr[d(hK(si),hK(sj))≥T1]≈1,其中,si和sj是感知上不同的对象。
3.Pr[d(hK(si),hK(si′))≤T0]≈1,其中,si和si′是感知上近似相同的对象。
注意,在上述标准中,概率空间在不同的密钥上定义。为大多数实际目的,0<T0<T1<0.5,并且T0和T1足够远。
对象组的加水印
在这一工作示例中,使用以下伪随机水印嵌入函数,
WKi(·),
它至多在R个对象上操作。这里,Ki是用于加水印的伪随机数生成器的密钥。给定1≤r≤R个对象,即s1,...,sr-1,sr,水印嵌入函数产生r个对象,
作为密钥Ki的函数。对象
感知上类似于
在这一上下文中,水印嵌入函数可被看作是一伪随机变换,由机密密钥来索引。此外,本工作示例假定一对应的水印检测器函数
DKi(·),
它在与嵌入器函数相同数量的对象上操作。检测器函数的域是{0,1},其中,1表示用密钥Ki对水印的存在的判定;0表示相反。假定检测器函数可靠地操作,即,
对Ki≠Kq,并且
流多媒体的标记嵌入
用户i(1≤i≤N)的标记嵌入函数给定如下:
1.选择P个不同的位置,由主密钥K随机化。设t1,t2,...,tP表示这些位置,其中
tj∈{1,2,...,N},1≤j≤P。
2.找出并储存散列值
对于每一位置tj,考虑以下宽度的环绕其的邻域
2Δj+1,
由此,找出区域
j,tj-Δj,tj-Δj+1,...,tj+Δj-1,tj+Δj,1≤j≤P。
这里,选择
伪随机地使用主密钥K,使得对所有的
j,2Δj+1≤R,
并且对所有的j≠k,区域j不与区域k重叠。
4.对于每一1≤j≤P,用
替换
其中,K
i是用户i的机密密钥。
流多媒体的解码
设解码器的输入是由对象x1,x2,...,xM′构成的多媒体信号。注意,一般而言,可令
M′≠M。
工作示例中使用的检测和提取(或解码)过程包括:
1.对于所有的1≤j≤M′,计算接收信号hK(xj)的散列值。
2.对于每一1≤j≤M′,执行以下步骤:
(a)如果存在tK,1≤K≤P,使得
则前进到下一步骤。
(b)对于所有的Ki,1≤i≤N,在环绕tK的宽度为2Δk+1的范围上运行一水印检测算法:计算
(c)对于每一1≤i≤N,如果di=1,声明用户i的标记在接收的输入中找到。
VIII.
对数字视频的改进的基于图像散列的时间同步算法
在前一节的工作示例中,提出了去同步加指纹系统和方法的一种通用算法描述。在该工作示例的标记嵌入算法的步骤2和解码算法的步骤2(a)中,采用了单个散列值以匹配标记嵌入位置。然而,实际上,这并不总是足够的。具体地,对于数字视频,单个图像帧的散列值通常不足以足够准确地找出嵌入位置。由此,在本节中,提出一种基于散列的区域匹配技术的改进的变化。该技术使用多个散列值而非单个散列值。
在本节中,讨论限定在数字视频上,并且使用了一种应用到单个视频帧(单个图像)的健壮的图像散列函数。然而,应当注意,本方法可清晰地扩展到数字音频信号的帧集合。参考图9,在本节中提出的基于散列的区域匹配技术的改进变化可应用到嵌入区域确定模块910。
所关心的是,实际上嵌入标记的视频会遭受在检测或解码时导致时间同步问题的变化。通常,时间攻击在这一类中。具体地,改变视频沿时间轴的内容顺序的任一种恶意攻击(如,场景插入、改变和交换、时间抽取和内插、以及移位)对解码器是潜在有问题的。此外,即使在非恶意的情况下,在娱乐业中,可能为了各种目的而剪切或粘贴视频,或者在视频中插入商业广告。因此,原始视频中的嵌入标记的区域在接收视频中可能不在同一时间位置上。在这一情况下,在接收器处找出嵌入标记的位置并不是个小问题。为克服这一问题,本节中提出的基于散列的区域匹配技术的改进变化通过使用健壮图像散列函数来确定嵌入标记的位置,从而实现了数字视频中的时间同步。
该技术假定健壮图像散列函数的输出在水印嵌入和可接受攻击(换言之,保留感知的质量的攻击)的情况下都是不变的。为完整性目的,现在定义本节的命符号表示。应当注意,本节中的符号表示与VII节中的符号表示是不同的。
符号表示
加粗的小写字母表示帧,下标表示集合或矢量中的元素的索引。设N是感兴趣的原始视频中的帧的总数,{s1,s2,...sN}和{x1,x2,...xN}表示原始和嵌入标记的视频帧。设NN是受攻击的视频(输入到解码器)中的帧的总数,{y1,y2,...yNN}表示受攻击的视频。注意,一般而言,N不等于NN。换言之,受攻击的视频的长度可能不同于原始和嵌入标记的视频的长度。设M为嵌入区域(即,嵌入了指纹的区域)的总数。设h(·)和d(·,·)分别表示健壮图像散列函数(适用于该基于散列的区域匹配技术,且其规范在VII节中给出)以及两个二进制输入之间的汉明距离。设td(·,·)表示给定视频的任意两个帧之间的时间距离(具有方向信息),如,td(sm,sn)=n-m。
编码和解码
在嵌入器端,对于每一标记嵌入区域j(1<=j<=M),选择K帧来表示该区域的时间位置。这些代表性帧在本节中使用的术语中被称为“极点”,并由{pjk}表示,其中,j(对应地为k)对应于标记嵌入区域(对应于该区域内的极点的索引),1<=j<=M,1<=k<=K。很明显,{pjk}的集合是{s1,s2,...sN}的子集。这里,将不讨论给定区域j如何选择{pjk}。然而,一般而言,作为经验法则,应当选择在标记嵌入区域中近似均匀分布的极点,以准确地表示该区域。设{ajk}是{pjk}的散列值,即,对于所有的j,k,ajk=h(pjk)。散列值{ajk}被作为边缘信息发送到接收器。换言之,假定接收器(或解码器)具有{ajk}的较佳知识。
对每一嵌入区域j,散列值{ajk}用于将接收器“锁定”到受攻击的视频{yi}中的当前位置。为完成该任务,必须考虑以下过程,其中ε和α是与用户相关的参数:
1.找出{b1,b2,...,bNN},其中,bi=h(yi),1<=i<=NN。
2.对于每一极点pjk,从{yi}形成感知相似性集Fjk,其中,Fjk={yi|d(bi,ajk)<α,1<=i<=N}。
3.对于每一标记嵌入区域j,形成集合Gj,它包括相似性集Fjk中所有的“时间适合”的K元组:Gj={(gj1,gj2,...,gjk||td(gjk,gj,k+1)-td(pjk,pj,k+1)|<ε,gjk∈Fjk,1<=k<K}。
4.通过散列函数在感知相似性意义上找出嵌入区域j的优化的K元组
其中,在Gj的所有元素上实现最小化。
5.K元组(gj1 *,gj2 *,...,gjk *)确定{yi}中第j个嵌入区域。
备注
注意,通过使用直接过程,步骤3和4采用了O(K∏k=1 K|Fjk|)操作。原因是可能K元组的总数是∏k=1 K|Fjk|(即,K中的指数),并且对于每一K元组,该方法需要执行O(K)操作以找出其感知相似性意义上的最优匹配(换言之,到原始散列值的汉明距离)。然而,在这些操作中有冗余,因为存在具有其散列值之间的汉明距离不需要被重新计算的公共元素的K元组。由此,联合地解步骤3和4的计算上更有效的方法可通过使用动态编程来应用。
伪代码
提出以下伪代码,通过使用动态编程示出基本思想。这对任一j,替换上述的步骤3和4。此外,设Fjk={gjkl},其中,l索引每一集合元素的顺序。
I.将mindist初始化至一非常大的数字,并且k=1,l=1。
II.while 1<=l<=Fjk,do
II.I.初始化k元组的path,使得如果m≠k且path(k)=qjkl,则path(m)=0,其中,path(k)是path的第k个条目。
II.II.初始化dist=(ajk,h(path(k))),VALIDITY=GOOD。
II.III.应用函数FINDOPTPATH(path,dist,k+1,l,VALIDITY),在后文定义。
II.IV.将l递增1,到步骤II.I。
函数FINDOPTPATH(path,dist,k+1,l,VALIDITY)
I.初始化ll=1。
II.while ll=|Fjk|do
II.I.计算timedist=|td(path(k-1),qj,k,ll)-td(pj,k-1,pjk)|。
II.II.if(k<K)and(timedist>ε),
II.II.I.设VALIDITY=BAD。
II.II.II.应用函数FINDOPTPATH(path,dist,K,ll,VALIDITY)。
II.III.else if(k<K)and(timedist<=ε),
II.III.I.设path(k)=qj,k,ll,且将dist递增d(ajk,h(path(k)))。
II.III.I.应用函数FINDOPTPATH(path,dist,k+1,ll,VALIDITY)
II.IV.else if(k=K)and(dist<mindist)and(VALIDITY=GOOD),设mindist=dist,且minpath=path。
II.V.将l递增1,到步骤II.I。
为说明和描述的目的提出了本发明的以上描述。它并非穷尽或将本发明限于所揭示的精确形式。鉴于上述教导,许多修改和变化都是可能的。本发明的范围并非由本发明的详细描述来限制,而是由所附权利要求书来限制。