技术领域 本发明涉及管理数字媒体的方法和装置。 背景技术 通信系统可以协助信息的传输,包括专有(proprietary)信息,例如电影、视频和音 乐。因此,已经开发出多种安全技术来保护这些专有信息。安全技术的改进可以为使用通 信系统来分发专有信息提供更好的控制。 发明内容 本发明公开了使用加水印和加指纹技术来管理数字媒体的方法和装置。 根据本发明的一个方面,提供了一种装置,包括:消息编码器,该编码器用消息对 来自数字对象的帧进行编码,以形成嵌入帧,所述消息包括用于完成加指纹操作的程序指 令。 根据本发明的另一个方面,提供了一种装置,包括:消息解码器,该解码器从代表 数字对象的嵌入帧中解码出消息,所述消息包括用于完成加指纹操作的程序指令。 根据本发明的又一个方面,提供了一种系统,包括:内容编码器,其编码数字对象, 以形成内容信息的帧;连接到所述内容编码器的消息编码器,所述消息编码器用消息来编 码所述帧,以形成嵌入帧,所述消息包括用于完成加指纹操作的程序指令;和连接到所述 消息编码器的发射器,所述发射器发送所述嵌入帧。 根据本发明的再一个方面,提供了一种方法,包括:接收来自数字对象的帧;接收 具有用于完成加指纹操作的程序指令的消息;以及用所述消息来编码所述帧。 根据本发明的再又一个方面,提供了一种制品,包括其上存储指令的介质,所述指令 在由处理器执行时可实现:接收来自数字对象的帧,接收具有用于完成加指纹操作的程序 指令的消息,并且用所述消息来编码所述帧。 附图说明 图1图示了系统100的框图。 图2图示了安全管理模块108的框图。 图3图示了编程逻辑300。 图4图示了编程逻辑400。 具体实施方式 图1图示了系统100的框图。系统100例如可以包括具有多个节点的通信系统。节点 可以包括在系统100中具有唯一地址的任何物理或逻辑实体。节点的例子可以包括但不一 定限于计算机、服务器、工作站、膝上型计算机、手持设备、移动电话、个人数字助理、 路由器、交换机、桥、集线器、网关、无线接入点等。唯一地址例如包括网络地址(例如 因特网协议(IP)地址)、设备地址(例如媒体访问控制(MAC)地址)等。实施方案在 该上下文中并不受限。 系统100的节点可以被布置来传送多种类型的信息,例如媒体信息和控制信息。媒体 信息可以指代表面向用户的内容的任何数据,例如语音信息、视频信息、音频信息、文本 信息、字母数字符号、图形、图像等。控制信息可以指代表面向自动化系统的命令、指令 或控制字的任何数据。例如,控制信息可被用于路由媒体信息穿过系统,或者指示节点以 预定的方式处理媒体信息。 系统100的节点可以根据一种或多种协议来传送媒体和控制信息。协议可以包括预先 定义的一组规则或指令,它们控制节点如何在彼此之间传送信息。所述协议可以根据由标 准组织发布的一种或多种协议标准来定义,所述标准组织例如是因特网工程任务组 (IETF)、国际电信同盟(ITU)、电子电气工程师协会(IEEE)等。例如,系统100可 以根据一种或多种因特网协议来运行。 系统100可以被实现为有线通信系统、无线通信系统或两者的组合。虽然可以示例性 地使用一种具体的通信介质来图示系统100,但是可以理解,可以使用任何类型的通信媒 体和相关科技来实现这里所讨论的原理和技术。实施方案在该上下文中并不受限。 当被实现为有线系统时,系统100可以包括被布置为在一种或多种有线通信介质上传 送信息的一个或多个节点。有线通信介质的例子可以包括导线、线缆、印刷电路板(PCB)、 背板、交换结构、半导体材料、双绞线、同轴电缆、光纤等。通信介质可以使用输入/输 出(I/O)适配器与节点相连。I/O适配器可以被布置为利用任何适合的技术来运行,以便 使用一组预期的通信协议、服务或操作程序来控制节点之间的信息信号。I/O适配器还可 以包括适当的物理连接器,用于连接I/O适配器与对应的通信介质。I/O适配器的例子可 以包括网络接口,网络接口卡(NIC)、盘控制器、视频控制器、音频控制器等。实施方 案在该上下文中并不受限。 当被实现为无线系统时,系统100可以包括一个或多个无线节点,这些节点被布置为 通过一种或多种类型的无线通信介质来传送信息。无线通信介质的一个例子可以包括无线 频谱例如射频(RF)频谱的一部分。无线节点可以包括适于在指定的无线谱上传送信息信 号的组件和接口,例如一个或多个天线、无线发射器/接收器(“收发器”)、放大器、滤波 器、控制逻辑等。天线的例子可以包括内部天线、全向天线、单极天线、偶极天线、端馈 天线、圆极化天线、微带天线、分集天线、双天线、天线阵列等。实施方案在该上下文中 并不受限。 再次参考图1,系统100可以包括通过网络104连接的节点102和106。虽然图1中 示出的是具有某种拓扑的有限数目的节点,但是可以理解,系统100可以包括具有给定实 现方式所期望的任何类型拓扑的或多或少的节点。实施方案在该上下文中并不受限。 在一个实施方案中,系统100可以包括节点102和106。节点102和106可以包括被 布置为发射或接收前述媒体信息的任何节点。媒体信息可以包括音频信息、视频信息或者 音频/视频信息的组合。音频信息的例子可以包括音乐、歌曲、语音等。视频信息的例子 可以包括电影、视频、图形、图像、字母数字符号等。实施方案在该上下文中并不受限。 在一个实施方案中,例如,节点102可以包括内容服务器,其具有音频信息、视频信 息或音频/视频信息组合的数据库。例如,内容服务器102可以包括视频点播(VOD)或 音乐点播(MOD)服务器,其分别具有电影和歌曲的数据库。可替换地,内容服务器102 可以被实现为电视广播分发源、有线分发源、卫星分发源以及能够提供音频信息、视频信 息或音频/视频信息组合的其他网络源的一部分。实施方案在该上下文中并不受限。 在一个实施方案中,例如,节点106可以包括客户端设备,该设备访问内容服务器102 所存储的媒体信息。客户端设备的例子可以包括具有处理系统的任何设备,例如计算机、 个人数字助理、机顶盒、蜂窝电话、视频接收机、音频接收机等。实施方案在该上下文中 并不受限。 内容服务器102可以根据任意数量的音频和视频标准,经由网络104将媒体信息传送 到客户端设备106。例如,可以使用根据由国际标准化组织/国际电工委员会(ISO/IEC) 定义的运动图像专家组(MPEG)系列标准的一种或多种技术来压缩或编码电影或视频。 虽然示例性地使用MPEG系列标准来图示说明一些实施方案,但是可以理解,任意数量 的视频和/或音频编码技术都是可以使用的,并且仍落入实施方案的范围内。实施方案在 该上下文中并不受限。 在一个实施方案中,系统100可以包括网络104。网络104可以包括被布置为在系统 100的各个节点之间传送信息的任意类型的网络。例如,网络104可以包括分组交换网络 或电路交换网络,例如局域网(LAN)或广域网(WAN),公共交换电话网(PSTN), 无线网络例如蜂窝电话网络或卫星网络,或者它们的任意组合。网络104可以根据任意数 量的不同数据通信协议来传送信息,例如一种或多种以太网协议、一种或多种因特网协议 例如传输控制协议(TCP)因特网协议(IP)、无线接入协议(WAP)等。实施方案在该 上下文中并不受限。 在一个实施方案中,节点102和106还可以分别包括元件108a和108b。元件108例 如可以包括安全管理模块(SMM)108。SMM108可以代表节点来管理安全性操作。更具 体地说,SMM108可以被布置为使用某些“指纹”和“水印”技术来控制媒体信息的所有权和 分发。在一个实施方案中,例如,SMM108可以以动态方式使用指纹和水印技术的组合 来增强对媒体信息的分发的控制。 在一般的操作中,系统100可被用于传输信息,包括诸如电影、视频、音乐等的专有 信息。因此,需要安全性技术来保护这些专有信息。这样的安全性技术一般被分类为两大 组,即,拷贝保护和所有权保护。拷贝保护试图寻求办法来限制获取受版权保护的材料, 和/或禁止拷贝过程本身。拷贝保护的例子可以包括各种加密技术,例如加密数字TV广播, 通过使用许可服务器向受版权保护的软件提供访问控制,以及介质(例如压缩盘或数字多 用途盘)上的技术性拷贝保护机制。另一方面,所有权保护试图将所有权信息与数字对象 关联起来,例如将所有权信息插入数字对象中。所有权信息的例子可以包括版权信息、许 可信息、原始所有者的名称和联系信息、购买者或者被许可人的名称和联系信息、分发实 体、分发渠道、以及与具体的数字对象相关联的其他任何信息。无论何时对数字对象的所 有权发生疑问,都可以从数字对象中提取所有权信息,并用来识别拥有权利的所有权。这 可以改进对内容分发的控制和管理,还允许追踪任何未经授权的拷贝。在拷贝保护似乎难 以实施的情况下,基于加水印和加指纹技术,连同强密码术的版权保护协议对于控制数字 媒体的分发而言,正变得愈发可行。 加水印可以指以下技术,即,将数字水印嵌入数字对象内,而对于观看人而言不会引 起数字对象中可观测的质量损失。数字水印例如可以包括被插入数字图像(例如音频或视 频文件)中的、具有某种比特模式的消息。所述消息可以包括各种类型的信息,例如所有 权信息或指纹执行代码,下面将会更详细地讨论。与印刷水印不同的是,印刷水印希望在 一定程度上是可见的,但是数字水印被设计为不可见的,或者在音频剪辑的情况下是听不 见的。此外,代表水印的实际比特应当以无法识别及操纵的方式被分散在整个文件中。此 外,数字水印应当具有足够的鲁棒性,使得它可以经受文件的正常变化,例如源于有损压 缩算法的缩减。加水印操作试图使数字水印看起来象噪声一样,即,无论怎样存在于大多 数数字文件中的随机数据。加水印有时还可以被称为“数据嵌入”和“信息隐藏”。实施方案 在该上下文中并不受限。 加指纹可以指使用来自数字对象自身的数据来唯一识别该数字对象的技术。数字对象 例如可以包括视频文件或音频文件。例如假设数字对象是音频文件。音频加指纹技术可以 基于对音频自身的声学特性分析,为音频文件生成唯一的指纹。每个音频指纹都是唯一的, 并且可被用来精确地识别音轨(track),无论关联的文本标识符是否存在或准确。例如, 通过解释人类可以听到的音频信息,数字化的歌曲可以被识别出歌曲标题、艺术家名称或 其他相关信息是否准确或可以获得。音频加指纹操作从音频文件中提取相对大量的声学特 征,以创建唯一的音频指纹。每个指纹都是不同的,并且高精度地唯一标识出特定的音频 文件。一旦音频指纹被创建,它就可被用于搜索数据库,将音频指纹与音频文件相匹配, 并将音频文件匹配到某些所有权信息。类似的操作可被执行来创建视频文件的视频指纹。 实施方案在该上下文中并不受限。 传统的加水印和加指纹技术单独拿出来,出于某些原因都不能令人满意。例如,加水 印技术可以包括鲁棒性数据隐藏工具,但不一定象使用加指纹技术一样唯一地标识数字对 象本身。此外,音频和视频指纹一般比数字水印消耗更少的带宽。然而,加指纹技术可能 在它们可向个人传达的信息种类方面受到限制。例如,音频指纹可能无法发送与音频文件 自身无关的消息。此外,加水印和加指纹技术可能是相当静态的,这是因为实现给定技术 所需的编码器和解码器如果没有昂贵的、可能比较复杂的升级操作,将很难进行修改。 这里的实施方案试图解决这些及其他问题。在一个实施方案中,例如,SMM108可 以被布置为使用一种或多种加水印技术将消息嵌入数字对象。所述消息可以包括程序指令 等多种。程序指令可以包括计算机代码段,这些代码段包括预定义的计算机语言中的字、 值和符号,当这些代码段根据预定义的方式或语法放在一起时,引发处理器执行某些操作。 指令可以包括任何适当类型的代码,例如源代码、编译后的代码、解释后的代码、可执行 代码、静态代码、动态代码等。可以使用任何高级、低级、面向对象的、可视的(visual)、 经过编译的和/或经过解释的编程语言来实现所述指令,例如C、C++、Java、BASIC、Perl、 Matlab、Visual BASIC、汇编语言、机器码等。实施方案在该上下文中并不受限。 在一个实施方案中,消息可以包括实现一个或多个音频或视频加指纹操作或技术的程 序指令。例如,消息可以包括经过编译后形成可执行代码(“加指纹可执行代码”)的程序 指令。指纹可执行代码可被用来基于一组在内容购买或获取时由内容服务器102阐明的规 则,实施权利管理策略或者在内容被发送到客户端设备106之前由内容服务器102设置的 某种观看标准。与典型的静态水印不同,内容服务器102可以动态地改变实施策略和相应 的操作,以通过更新与水印一同嵌入的指纹可执行代码来完成这一任务。不必修改客户端 设备106所实现的水印解码器,就可以实现这一切。而且,观看策略和权利管理策略的变 化被嵌入在指纹可执行代码中。例如,可以使用Java字节码或者可以在客户端设备106 内解释并执行的某些其他可执行原语来实现所述代码。实施方案在该上下文中并不受限。 图2图示了SMM108的部分框图。如参考图1所描述的那样,SMM108可以分别代 表内容服务器102和客户端设备106的SMM108a-b。如图2所示,SMM108可以包括多 个元件,例如处理器202、存储器204、内容编码器/解码器(“编解码器”)206、消息编解 码器208和网络接口210,所有元件都是经由总线212连接的。一些元件可以使用例如一 个或多个电路、组件、寄存器、处理器、软件子例程或者它们的组合来实现。虽然图2示 出了有限数量的元件,但是可以理解,根据给定实现方式的需要,在SMM108中可以使 用更多或更少的元件。实施方案在该上下文中并不受限。 在一个实施方案中,SMM108可以包括处理器202。处理器202可以实现为通用处理 器,例如Intel公司制造的处理器。处理器202还可以包括专用处理器,例如控制器、微 控制器、嵌入式处理器、数字信号处理器(DSP)、网络处理器、I/O处理器等。实施方 案在该上下文中并不受限。 在一个实施方案中,SMM108可以包括存储器204。存储器204可以包括任何机器可 访问介质。机器可访问介质的一些例子可以包括但不一定限于只读存储器(ROM)、随 机访问存储器(RAM)、动态RAM(DRAM)、双DRAM(DDRAM)、同步RAM(SRAM)、 可编程ROM、可擦除可编程ROM、电可擦除可编程ROM、闪存、聚合物存储器(例如 铁电聚合物存储器)、相变存储器、磁盘(例如软盘和硬盘)、光盘(例如CD-ROM和 DVD)等。实施方案在该上下文中并不受限。 在一个实施方案中,SMM108可以包括网络接口210。网络接口210可以包括可被布 置为以任何适当的技术运行,以便使用一组预期的通信协议、服务或操作程序,控制经由 网络104在节点102和106之间的信息信号的任何有线或无线网络接口。例如,当被实现 为有线系统的一部分时,网络接口210可以被布置为根据一种或多种以太网协议(例如快 速以太网或吉比特以太网协议)、一种或多种因特网协议(例如传输控制协议(TCP)/因特 网协议(IP))等来运行。网络接口210还可以包括与网络104的相应通信介质相连接的适 当的物理连接器。当被实现为无线系统的一部分时,可以使用具有天线的无线收发器来实 现网络接口210,其中收发器被布置为根据一种或多种无线协议来运行,例如802.11、 802.16、WAP等。实施方案在该上下文中并不受限。 在一个实施方案中,SMM108可以包括内容编解码器206。取决于给定的系统,内容 编解码器206可以被实现为音频编解码器和/或视频编解码器。在发射侧和接收侧一般使 用相同或相似的特征来实现内容编解码器206,以确保由发射节点发送的编码数据可以由 接收节点正确地接收及解码。实施方案在该上下文中并不受限。 在一个实施方案中,例如,内容编解码器206可以包括根据一种或多种音频编码技术 来编码和解码音频文件的音频编解码器。音频编码技术的例子可以包括杜比数字(Dolby Digital)、MPEG-1、MPEG-1层3(MP3)、MPEG-2、线性脉冲码调制(LPCM)、数 字剧院系统(DTS)、视窗媒体音频(WMA)等。实施方案在该上下文中并不受限。 内容编解码器206还可以包括根据一种或多种视频编码技术来编码和解码视频文件 的视频编解码器。视频编码技术的例子可以包括一系列MPEG标准中的一种,例如 MPEG-1、MPEG-2、MPEG-4、MPEG-7、MPEG-21等。另一个例子可以包括视窗媒体视 频(WMV)。实施方案在该上下文中并不受限。 内容编解码器206也可以被实现为音频和视频编解码器的组合。这对于电影特别有 用。音频编解码器可被用于编码电影中的音频信息,视频编解码器可被用于编码电影中的 视频信息。例如,MPEG系列的标准可以同时提供音频和视频编解码器,以支持这样的实 现方式。 在一个实施方案中,SMM108可以包括消息编解码器208。消息编解码器208可以包 括将消息嵌入从内容编解码器206接收的一个或多个视频帧的消息编码器。消息编解码器 208例如可以从存储器204或一个不同的设备接收消息。消息编解码器208可以用所述消 息对一个或多个视频帧进行编码,以形成嵌入后的视频帧。消息编解码器208还可以包括 消息解码器,用于在接收侧解码嵌入后的视频帧或者从中提取消息。 所述消息可以包括静态信息或动态信息。动态信息可以包括程序指令,例如加指纹可 执行代码。静态信息例如可以包括所有权信息。静态信息还可以包括由加指纹可执行代码 在执行期间使用的数据或元数据,或者专门管理用于加指纹可执行代码的应用的其他信 息。元数据可以包括描述其他数据的数据。例如,元数据可以描述一组具体的数据是如何, 何时又是由谁来收集的,以及该数据是如何被格式化的。元数据例如可被用来理解存储在 数据仓库、基于XML的应用等当中的信息。实施方案在该上下文中并不受限。 在一个实施方案中,消息编解码器208可以包括指纹数据提取器(FDE)214。FDE214 可以被布置为从数字比特流(例如进入的音频/视频流)中提取水印。FDE214可以使用内 容服务器102用来插入水印的特定技术来提取水印。FDE214可以将提取出的水印分解成 静态信息和动态信息。静态信息例如可以包括所有权信息或者用于动态信息的静态元数 据。动态信息例如可以包括加指纹可执行代码。 在一个实施方案中,消息编解码器208可以包括指纹执行应用(FEA)216。一旦FDE 214接收并验证整个加指纹可执行代码,FDE214就可以调用FEA216开始执行所接收的 加指纹可执行代码。FEA216可以管理并控制加指纹可执行代码的执行。如果程序指令是 以未编译形式而发送的,那么FEA216例如可以包括适当的软件编译器,以将程序指令编 译成适当的可执行形式。可以使用指定供消息编解码器208使用的专用处理器、对SMM 108可用的处理器(例如处理器202)或者客户端106可以访问的任何其他处理器来执行 加指纹可执行代码。实施方案在该上下文中并不受限。 通过将动态信息(例如指纹可执行代码)嵌入在水印中,由FEA216管理并由处理器 202执行的加水印操作可以随时间改变。为了这样发生,改变事件可以与嵌入的描述符一 起被单独包括为程序元数据。在接收器处,FDE214可以使用相关联的元数据,从压缩视 频中提取更新后的加指纹可执行代码。FEA216可以使用更新后的加指纹可执行代码来计 算适当的音频或视频指纹。计算出的指纹块可以经由IP反向通道(例如,网络104)被返 回内容服务器102,以供内容服务器102分析。按照这一方式,优质内容在网络中的重放 可以由内容服务器102来管理并跟踪。 如上所述,执行环境、嵌入描述符和/或策略都可以在任何给定的会话期间被改变。 程序元数据将接收器处的重构约定为可在服务器侧设置的预想行为。例如,程序元数据可 以包括权利对象(RO)。RO可以包括一组策略。这些策略可以被嵌入为执行环境的一部 分,或者与之分离。RO例如可以包括事件描述符,其指示了正则表达式的求值,正则表 达式用于确定动作以及所期望的动作规范。RO例如可被用于实施具体的观看策略。例如, 如果反向通道被禁止,或者如果检测到未授权的重放,则FEA216可以禁止或者以其他方 式阻止对数字对象的进一步重放、观看或拷贝。 更具体地说,音频和/或视频加指纹执行环境可以包括用于捕获音频和/或视频内容的 主要特性的轻量数据结构和策略库。策略库例如可以使用三元组(triplet)来实现。三元 组可以包括用于<事件>、<规则>和<动作>的值。结果是正在重放的音频和/或视频的紧凑 签名。策略可以帮助确保数字对象的重放或观看是经过授权的,同时指纹计算生成被用来 测量定性和定量消耗度量的签名。例如,对于经许可的设备、付费订户、用于报告指纹的 工作反向通道的存在等,观看都是允许的。如果压缩后的音频/视频比特在没有正确授权 的情况下被传输到另一个正在观看的设备,那么视频例如可能被修改为看起来失真。 用加指纹可执行代码实现的给定策略定义可以根据给定的服务提供者或系统设计约 束而不同。加指纹可执行代码所执行的操作类型的例子可以包括在允许重放之前查询后端 服务器,以获得在已授权设备上的内容使用的过去历史。另一个例子可以包括让加指纹可 执行代码在生成为访问加密数字对象(例如音频或视频文件)所需的加密密钥中起到积极 的作用。指纹执行代码可以被布置为检验用户的证书,使用专有协议与后端服务器通信, 计算任何需要的密钥,以及向它们提供播放器应用。可以理解,这些操作仅是以示例的方 式提供的。加指纹执行代码可以包括给定的实现方式所需求的任何类型的加指纹操作。 除了消息具有动态信息以包括音频和/或视频加指纹执行环境外,嵌入消息还可以包 括数字签名。客户端设备106可以使用经过数字签名的嵌入消息,在FEA216开始执行对 应的程序指令之前验证可执行代码的真实性。例如,FDE214可以使用位置元数据从流式 内容中提取消息。FEA216可以验证数字签名以证明消息的真实性。然后FEA216可以开 始指纹可执行代码的执行。 可以使用任意数量的数据隐藏技术将消息嵌入内容流中。例如,消息编解码器208可 以使用加水印技术将消息嵌入视频帧。加水印也可以被称为隐写术(steganography)。隐 写术是一种以隐藏信息存在性的方式来编码秘密信息的行为。在数字隐写术中,由一个比 特流所代表的消息可以被嵌入掩护媒体(cover)或宿主媒体(host)中。掩护媒体或宿主 媒体是消息被嵌入其中并且用于隐藏消息存在的媒体,例如数字图像。这也可以被称为消 息包装。掩护媒体和消息不必具有同构的结构。 消息编解码器208可以将消息嵌入一个或多个视频帧,以形成嵌入后的视频帧。嵌入 后的视频帧可以被统一称为“匿隐图像(stego-image)”。匿隐图像应当就象在偶然检查和分 析下的掩护图像。 另外,消息编解码器208可以将密码技术与隐写技术结合起来,以添加额外的安全层。 在密码术中,改变消息的结构,使其变得没有意义并且无法理解,除非可以获得解密密钥。 密码术并不试图伪装或隐藏已编码的消息。相反,隐写术不改变秘密消息的结构,但是将 它隐藏在掩护媒体之下。通过使用密码术来加密消息,然后使用消息隐藏术来隐藏加密后 的消息,就有可能组合这两种技术。所得到的匿隐图像可以被传输,而不会泄露秘密信息 正被交换。此外,即使攻击者想要破解隐写技术并且从匿隐图像中检测出消息,他仍然需 要密码解码密钥来解密经过加密的消息。例如,消息编解码器208可以在形成匿隐图像时 采用“匿隐密钥”。只有知道相应的解码密钥的接收者才能够从用匿隐密钥编码的匿隐图像 中提取消息。如果原先在编码操作中使用了匿隐密钥,则从匿隐图像中恢复消息一般只需 要匿隐图像本身以及相应的解码密钥。原始掩护图像可能需要,也可能不需要。实施方案 在该上下文中并不受限。 选择用于消息编解码器208的具体加水印技术可以根据多种因素而不同,例如隐藏容 量、感知透明度、鲁棒性、篡改抵抗力以及其他特性。隐藏容量可以指相对于掩护媒体的 大小,可被隐藏的信息的大小。较大的隐藏容量允许使用较小的掩护媒体用于具有固定大 小的消息,因而减少了传输匿隐图像所需的带宽。感知透明度可以指对于掩护媒体所容许 的退化量。用于在掩护媒体中隐藏消息的操作可能需要某种噪声调制或掩护图像的失真。 嵌入的发生应当不伴有大幅度的退化或者掩护媒体的感知质量的损失。为了版权保护在嵌 入的水印中保持感知透明度可能是特别重要的,因为应当维护原始作品的质量和完整性。 鲁棒性可以指如果匿隐图像经受变换的话,例如线性和非线性滤波、随机噪声的添加、锐 化或模糊化、缩放和旋转、裁剪或抽选(decimation)、有损压缩、从数字到模拟形式的 转换以及随后转换回数字形式等,此时嵌入数据保持原样的能力。鲁棒性可能在版权保护 水印中特别重要,因为盗版者将试图过滤并破坏嵌入在匿隐图像中的任何水印。篡改抵抗 力可以指一旦消息被嵌入在匿隐图像中,攻击者要想更改或伪造该消息(例如盗版者用声 称具有合法所有权的版权标记来取代原有的版权标记)的难度。要求很高鲁棒性的应用通 常也要求很强程度的篡改抵抗力。在版权保护应用中,因为版权保持有效很多年,而水印 即使在盗版者试图使用在未来数十年间发展起来的计算技术来修改它时,也必须保持抵抗 力,所以实现良好的篡改抵抗力可能是很难的。要考虑的其他特性可以包括编码和解码的 计算复杂度、当多个盗版者一起来识别并破坏标记时对共谋攻击的抵抗力,等等。实施方 案在该上下文中并不受限。 消息编解码器208可以使用几种不同技术之一,将代表消息的比特流嵌入图像掩护 中。例如,消息编解码器208可以使用最低有效位(LSB)嵌入、变换技术、以及采用感 知掩蔽的技术。然而,实施方案在该上下文中并不受限。 在LSB嵌入中,数字图像可以由色彩和强度值的矩阵构成。在典型的灰度级图像中, 例如,使用8比特/像素。在典型的全彩图像中,具有24比特/像素,每个色彩分量具有8 比特。复杂性最低的技术以确定性的顺序将消息的各个比特直接嵌入到掩护图像的最低有 效位平面中。调制最低有效位不产生人类可感知的差别,因为变化的幅度相对较小。其他 技术试图在消息插入到掩护图像中之前或期间,用伪随机噪声序列来“处理”所述消息。然 而,LSB编码对于匿隐图像的任何种类滤波或操纵都是极为敏感的。对匿隐图像的缩放、 旋转、修剪、噪声添加或有损压缩都很有可能破坏消息。此外,攻击者有可能通过清除(零 化)整个LSB平面而去除所述消息,而在修改后的匿隐图像的感知质量上却几乎没有什 么变化。 另一类技术通过调制变换域中的系数来执行数据嵌入。变换域的例子可以包括离散余 弦变换(DCT)、离散傅立叶变换、小波变换等。变换技术可以针对有损压缩提供极好的 鲁棒性,因为它们就是设计来抗衡或者说利用流行的有损压缩算法的方法。基于变换的嵌 入操作的例子可以包括基于消息的位以及在量化期间的舍入误差来调制匿隐图像的DCT 系数。基于变换的隐写术一般还为缩放和旋转或修剪提供了更强的鲁棒性,这取决于具体 变换的不变性质。 在一般操作中,假如客户端设备106向内容服务器102请求视频文件,那么内容服务 器102的SMM108a可以接收该请求,并且内容编解码器206可以根据视频压缩技术,例 如MPEG-1或MPEG-2来编码或压缩来自所请求的视频文件的视频帧。消息编解码器208 可以接收具有静态元数据和加指纹可执行代码的消息。消息编解码器208可以用消息对来 自内容编解码器206的视频帧进行编码,以形成嵌入后的视频帧。网络接口210可以经由 网络104将嵌入后的视频帧发送到客户端设备106。客户端设备106的SMM108b可以开 始经由网络接口210接收嵌入后的视频帧。内容编解码器206可以解码或解压缩所接收的 视频帧,并将解码后的视频帧传递到消息编解码器208。消息编解码器208的FDE214可 以从嵌入后的视频帧中提取并验证静态信息和加指纹可执行代码。FDE214可以将验证后 的静态信息和加指纹可执行代码直接发送到FEA216,或者可替换地,发送到存储器204。 在后面的情形中,FDE214可以向FEA216发送消息或信号,以指示静态信息以及加指纹 可执行代码已经被接收、验证,并且准备执行。FEA216例如可以使用客户端设备106的 处理器202,发起加指纹可执行代码的执行。加指纹可执行代码可以执行音频和/或视频操 作,以实现一组给定的策略,例如安全性策略、RO策略等。 参考以下附图及相关实施例来进一步描述以上系统和子系统的操作。这些附图中的一 些可以包括编程逻辑。虽然这里给出的附图可以包括某种具体的编程逻辑,但是可以理解, 该编程逻辑仅仅提供了可以如何实现这里所描述的总体功能的实施例。此外,给定的编程 逻辑不一定要按给出的顺序来执行,除非另外指出。另外,可以由硬件单元、处理器所执 行的软件单元、或者它们的组合来实现给定的编程逻辑。实施方案在该上下文中并不受限。 图3图示了编程逻辑300。编程逻辑300可以代表由这里所描述的一个或多个系统所 执行的操作,所述系统例如是内容服务器102的SMM108a。如在编程逻辑300中所示, 可以在框302处接收来自数字对象的帧。在框304处可以接收消息,其具有完成加指纹操 作的程序指令。在框306处可以用所述消息来编码所述帧。 图4图示了编程逻辑400。编程逻辑400可以代表由这里描述的一个或多个系统执行 的操作,所述系统例如是客户端设备106的SMM108b。如编程逻辑400所示,可以在框 402处接收嵌入后的视频帧。嵌入后的视频帧例如可以从内容服务器102接收。在框404 处可以从所述帧中提取带有程序指令的消息。在框406处可以执行所述程序指令,以完成 加指纹操作。 在一个实施方案中,例如,数字对象可以包括音频信息或视频信息。音频或视频信息 可以作为文件被存储在例如存储器204中,或者可以包括来自某一设备的流式或“实时”信 息,所述设备例如是数码相机/录像机(“可携式摄像机”)、电视广播分发源、有线分发源、 卫星分发源以及其他能够提供音频信息、视频信息或音频/视频信息的组合的网络源。实 施方案在该上下文中并不受限。 在一个实施方案中,例如,帧可以是由一种或多种MPEG标准定义的音频帧或视频 帧。例如,视频帧可以包括具有Y分量的I帧。在此情况下,可以通过为每个视频帧的Y 分量选择DCT系数而完成编码。所述选择操作可以包括将DCT系数与用于每个I帧的平 均交流系数进行比较,如果它的值大于平均交流系数,则选择该DCT系数。所选择的DCT 系数可以被修改为包括一个消息值,例如0或1。 在一个实施方案中,嵌入后的视频帧可以被接收。可以由所接收的嵌入后视频帧来解 码消息。可以通过从用于每个嵌入后视频帧的Y分量的DCT系数中取回消息值,从而完 成所述解码操作。 可以以示例的方式更好地理解上述系统及相关编程逻辑的操作。假设客户端设备106 向内容服务器102请求视频文件。内容编解码器206可以根据由ISO/IEC定义的一系列 MPEG标准中的一个标准来编码视频信号。例如,内容解码器206可以被布置为根据 MPEG-1和/或MPEG-2来编码视频信号。 MPEG视频压缩的基本理念是去除视频帧内的空间冗余以及视频帧之间的时间冗余。 基于DCT的压缩被用于减小空间冗余。运动补偿被用于开发时间冗余。视频帧中的图像 在小的时间间隔内通常不会变化很多。运动补偿的理念就是基于在时间上靠近某一视频帧 的其他视频帧来编码该视频帧。 视频流可以包括一个序列的视频帧。每个帧是一幅静止图像。视频播放器通常以接近 每秒30帧(例如,23.976,24,25,29.97和30帧)的速率一帧接一帧地进行显示。帧被 数字化为标准的红绿蓝(RGB)格式,每个像素24比特,红、绿、蓝分别对应8比特。 MPEG-1算法对在YUV色彩空间(Y Cr Cb)上表示的图像进行运算。如果一幅图像被存 储为RGB格式,那么它必须首先被转换成YUV格式。在YUV格式中,图像也用每像素 24比特来表示,8比特用于亮度信息(Y),分别有8比特用于两个色度信息U和V。YUV 格式被二次抽样。所有的亮度信息被保留。然而,色度信息在水平和垂直两个方向上被二 次抽样2∶1。因此,每个像素分别有2比特的U和V信息。这种二次抽样并不会严重影响 质量,因为眼睛对亮度信息比对色度信息更加敏感。二次抽样是有损步骤。24比特的RGB 信息因此被减少为12比特的YUV信息,这自动给出了2∶1压缩。 帧被分割成16×16个像素宏块。每个宏块由四个8×8的亮度块和两个8×8的色度块(1U 和1V)组成。宏块是用于运动补偿压缩的单元。而块被用于DCT压缩。帧可以被编码为 三种类型:帧内(I帧)、前向预测帧(P帧)和双向预测帧(B帧)。I帧被编码为单幅 图像,不参考任何过去帧和未来帧。首先使用DCT将块从空域转换到频域,这将信号分 隔到独立的频带。大多数频率信息位于得到的8×8块的左上角。在这之后,数据被量化。 量化可以被认为是基本忽视了低阶位。量化是整个压缩操作中除了二次抽样以外唯一的有 损部分。得到的数据随后按之字型(zig-zag)排序被行程编码(run-length encode),以优 化压缩。这种之字型排序通过利用以下事实而产生了更长行程的零,所述事实是当编码器 从8×8块的左上角朝着右下角呈之字型前进时,应当几乎没有什么高频信息。位于块的左 上角的系数(被称为DC系数)一般相对于前一块的DC系数来编码,这有时被称为“DCPM 编码”。P帧相对于过去参考帧来编码。参考帧是P帧或I帧。过去参考帧是指最近的前一 参考帧。P帧中的每个宏块被编码为I宏块或P宏块。I宏块就像I帧中的宏块一样进行编 码。P宏块被编码为过去参考帧的16×16区域,加上误差项。为了指定参考帧的16×16区 域,运动向量被包括进来。运动向量(0,0)意味着该16×16区域与正被编码的宏块位于相同 的位置上。其他运动向量都是相对于该位置的。运动向量可以包括半像素值,在此情形中 像素被求平均。使用DCT、量化和行程编码对误差项进行编码。宏块也可以被跳过,这等 同于一个(0,0)向量和全0误差项。B帧相对于过去参考帧、未来参考帧、或者这两种帧来 编码。未来参考帧是最靠近的后面参考帧(I或P)。对B帧的编码类似于P帧,除了运 动向量可以参考未来参考帧中的区域之外。对于使用过去和未来参考帧两者的宏块而言, 两个16×16区域被求平均。 再次参考所述实施例,内容解码器206可以根据MPEG标准将视频信号压缩成视频 帧。消息编解码器208可以从内容解码器206接收压缩视频帧。消息编解码器208还可以 接收来自存储器204的消息。该消息例如可以包括用Java写的音频或视频指纹生成源代 码,其被编译为字节码(*.class)并被映射到线性比特流。在执行时刻,比特流在客户端 设备106上由SMM108b的消息编解码器208拆包并执行。 为了避免匿隐图像的色彩失真,消息编解码器208可以只选择在用于携带隐藏消息的 MPEG-2图片组(GOP)结构中的前导I帧的Y分量。此外,消息编解码器208可以跳过 或忽略例如在I帧中的类型P和B宏块中其运动向量或量化系数大于阈值的那些I帧。可 以通过修改其值大于I帧的平均交流(AC)系数的DCT系数,将消息嵌入所选择的I帧 中。这可以减小嵌入操作所引起的感知失真。消息编解码器208可以通过将所选择的AC 分量的值改变为最近的偶数值,嵌入来自消息比特流的比特“1”。消息编解码器208可以 通过将所选择的AC分量的值改变为最近的奇数值,嵌入来自消息比特流的比特“0”。然 后可以使用可变长度编码将调制后的AC分量编码回去。 值得注意的是,用于消息编解码器208及相应提取操作的计算成本可以足够低,足以 被实现为传统的编解码器外围的包装器(wrapper)。目标执行可以是在编解码器内核周 围的内务(housekeeping)处理器(例如XScale处理器)上,或者在灵活的控制元件(例 如VSparc)上。由于对GOP的前导I帧的选择,所以调制后的比特流约少于10%的部分 可以不同于未经调制的对应部分。 客户端设备106的SMM108b可以开始经由网络接口21接收嵌入后的视频帧。内容 编解码器206可以从嵌入后的视频帧中取回消息。内容编解码器206可以将该消息发送到 存储器204,以存储该消息。处理器202可以执行来自所述消息的程序指令,以完成后续 的音频指纹操作。 根据具体的目标应用,针对给定的系统所实现的具体音频或视频指纹操作可以有所不 同。例如,假设用于观看具体的视频内容的权利管理策略是使只有经许可的设备和付费订 户才允许观看内容。如果压缩后的音频/视频比特被非法传输到另一个正在观看的设备, 那么当视频被解压缩并观看时,它看起来一定是失真的。为了实施这一策略,内容服务器 102的SMM108a的消息编解码器208可以将一些动态失真实际施加于压缩视频。用于校 正失真的算法可以被嵌入指纹可执行代码中。另外,指纹可执行代码能够通过检测来自客 户端设备106的标识符,并在校正视频中的失真之前向内容服务器102验证该标识符,从 而来验证用于客户端设备106的用户的证书。 假设在客户端设备106处的消息编解码器208从接收的视频或音频中提取消息,并将 该消息交给其执行环境模块。执行模块从水印内部提取指纹执行代码,验证它的完整性, 并开始执行该代码。指纹执行代码可以解析先前由内容服务器102嵌入的指纹元数据,并 提取需要由客户端设备106来验证的用户证书。指纹执行代码可以通过查询某个预计在许 可客户端设备上的硬件组件,来检验客户端设备106上的用户标识符。所述代码还可以使 得Java或其他运行时执行环境请求用户输入个人身份号(PIN)或密码。指纹执行代码可 选地可以通过可用的反向通道(例如到内容服务器102的IP连接)向内容服务器102验 证用户的证书,或者将结果与原先包括在水印内的用户证书进行比较。一旦由内容服务器 102设置的策略得到验证,指纹执行代码就可以通过与客户端设备106内的消息编解码器 208交互作用,来重新排序压缩视频的某些系数,或者采用其他技术来修正在内容服务器 102处引入的失真。 指纹操作的其他实施例可以包括指纹执行代码用从客户端设备106查询出的用户标 识符(例如网络MAC地址)来更新压缩内容中的消息,以跟踪那条具体的内容已被传输 到哪里并被观看。这将允许内容所有者通过检查嵌入的消息来识别与具体内容的观看相关 联的历史。在另一个实施例中,指纹执行代码还可以在生成为观看一条加密视频所需的密 钥中起到积极的作用。在此情形中,客户端设备106上的播放器应用可以提取并运行指纹 执行代码,以便获得为解码并观看内容所需的密钥。指纹执行代码可以验证用户的证书, 使用专有协议与内容服务器102通信,计算密钥并将它们提供给播放器应用。实施方案在 该上下文中并不受限。 这里阐述了很多具体的细节,以提供对实施方案的完整理解。然而,本领域的技术人 员将会理解,没有这些具体的细节也可以实现所述实施方案。此外,没有详细描述公知的 操作、组件和电路,以免模糊了实施方案。可以意识到,这里公开的特定的结构和功能细 节可以是代表性的,不必限制实施方案的范围。 值得注意的是,提及“一个实施方案”或“实施方案”意味着结合该实施方案所描述的具 体特征、结构或特性被包括在至少一个实施方案中。短语“在一个实施方案中”在说明书不 同地方的出现不一定是指同一个实施方案。 一些实施方案可以使用根据多种因素而变的体系结构来实现,这些因素例如是期望的 计算速率、功率电平、容热性、处理周期预算、输入数据率、输出数据率、存储器资源、 数据总线速度以及其他性能约束。例如,实施方案可以使用由通用或专用处理器执行的软 件来实现。在另一个实施例中,实施方案可以被实现为专用硬件,例如电路、专用集成电 路(ASIC)、可编程逻辑器件(PLD)或数字信号处理器(DSP)等。在另外一个实施例 中,实施方案可以通过已编程的通用计算机组件和定制硬件组件的组合来实现。实施方案 在该上下文中并不受限。 一些实施方案例如可以使用存储指令或一组指令的机器可读介质或制品来实现,所述 指令在被机器执行时,可以使得该机器根据所述实施方案完成方法和/或操作。这样的机 器例如可以包括任何适合的处理平台、计算平台、计算设备、处理设备、计算系统、处理 系统、计算机、处理器等,并且可以使用硬件和/或软件的任何适当组合来实现。机器可 读介质或制品例如可以包括任何适当类型的存储器单元、存储器器件、存储器制品、存储 器介质、存储设备、存储制品、存储介质和/或存储单元,例如存储器、可移动或不可移 动的介质、可擦除或不可擦除的介质、可写或可重写的介质、数字或模拟介质、硬盘、软 盘、压缩盘只读存储器(CD-ROM)、压缩盘可记录(CD-R)、压缩盘可重写(CD-RW)、 光盘、磁介质、各种类型的数字多用途盘(DVD)、磁带、卡带等。指令可以包括任何适 当类型的代码,例如源代码、编译后的代码、解释后的代码、可执行代码、静态代码、动 态代码等。可以使用任何高级、低级、面向对象的、可视的(visual)、经过编译的和/或 经过解释的编程语言来实现所述指令,例如C、C++、Java、BASIC、Perl、Matlab、Visual BASIC、汇编语言、机器码等。实施方案在该上下文中并不受限。 除非另行特别指出,可以理解,诸如“处理”、“计算”、“运算”、“确定”等术语指的是 计算机或计算系统、或类似的电子计算设备将该计算系统的寄存器和/或存储器内被表示 为物理量(例如,电量)的数据操纵和/或变换成在该计算系统的存储器、寄存器或其他 这样的信息存储、传输或显示设备内被类似表示为物理量的其他数据的动作和/或过程。 实施方案在该上下文中并不受限。 虽然这里已经图示说明了多个实施方案的某些特征,但是本领域的技术人员将会实现 很多修改、替换、改变和等同物。因此可以理解的是,所附权利要求书想要覆盖落入所述 实施方案的真实精神之内的所有这样的修改和改变。