专利名称:管理数字媒体的技术的制作方法
背景技术:
通信系统可帮助信息的传送,其中包括诸如电影、视频和音乐等的专有信息。因此,已经开发安全技术来保护这种专有信息。安全技术的改进可采用通信系统提供对专有信息的分发的更大控制。
图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。SMM 108可代表节点来管理安全操作。更具体来说,SMM 108可设置成采用某些“指纹”和“水印”技术来控制媒体信息的所有权和分发。在一个实施例中,例如,SMM 108可采用指纹和水印技术的组合以动态方式来增加对媒体信息的分发的控制。
在一般操作中,系统100可用来传送信息,包括诸如电影、视频和音乐等的专有信息。因此,可能需要安全技术来保护这种专有信息。这种安全技术通常被分类为两个一般分组,即复制保护和所有权保护。复制保护尝试发现限制对版权保护材料的访问和/或禁止复制过程本身的方式。复制保护的实例可包括各种加密技术,例如加密数字电视广播、通过使用许可服务器来提供对版权保护软件的访问控制、以及对媒体(例如光盘或数字多功能光盘)的技术复制保护机制。另一方面,所有权保护尝试把所有权信息与数字对象关联,例如把所有权信息插入数字对象。所有权信息的实例可包括版权信息、许可信息、原始所有者的名称和联络信息、购买者或被许可者的名称和联络信息、分发实体、分发渠道以及与特定数字对象关联的其它任何信息。每当数字对象的所有权被怀疑时,所有权信息可从数字对象中被提取,并且可用来识别合法所有者。这可产生内容分发的改进控制和管理,以及允许跟踪任何未经授权的副本。在复制保护似乎难以实现的情况中,基于水印和指纹技术的版权保护协议与极强的密码术一起正成为控制数字媒体的分发的更可行方式。
水印可表示用于把数字水印嵌入数字对象而没有导致观众对数字对象中可发觉的质量损失的技术。数字水印例如可包括具有被插入数字图像、如音频或视频文件中的位模式的消息。该消息可包括各种类型的信息,例如所有权信息或指纹执行代码,下面进行更详细论述。与确定为在某种程度上可见的印刷水印不同,数字水印设计为不可见的或者在音频剪辑的情况中为听不见的。此外,表示水印的实际位应当以它们无法被识别和操作的方式分散在整个文件上。此外,数字水印应当足够健壮,使得它可经受对文件的正常改变,例如从有损压缩算法的还原。水印尝试使数字水印表现为噪声,即以任何方式在大多数数字文件中存在的随机数据。水印有时又可称作“数据嵌入”和“信息隐藏”。实施例不限于这个上下文。
指令可表示用于采用来自数字对象本身的数据唯一标识数字对象的技术。数字对象例如可包括视频文件或音频文件。例如,假定数字对象是音频文件。音频指纹技术可根据音频本身的声音属性的分析来生成音频文件的唯一指纹。各音频指纹是唯一的,并且可用来准确地识别音轨,而与任何关联文本标识符是否存在或者是否准确无关。例如,通过解释人类可听见的音频信息可识别数字化歌曲,而不管歌曲标题、艺术家名称或其它相关信息是否准确或可用。音频指纹从音频文件中提取较大数量的声音特征,以便创建唯一的音频指纹。各指纹是不同的,并且以高准确性来唯一识别特定的音频文件。一旦音频指纹被创建,则可用来搜索把音频指纹与音频文件匹配以及把音频文件匹配某个所有权信息的数据库。可执行类似的操作来创建视频文件的视频指纹。实施例不限于这个上下文。
单独采用的传统水印和指纹技术由于许多原因是令人不满意的。例如,水印技术可包括健壮的数据隐藏工具,但不一定如同指纹技术那样唯一识别数字对象本身。此外,音频和视频指纹通常比数字水印消耗更少带宽。但是,指纹技术可能受限于它们可传送给人们的信息的类型。例如,音频指纹可能无法发送不是与音频文件本身相关的消息。此外,水印和指纹技术可能是相当静态的,因为没有昂贵并且可能复杂的升级操作,实现给定技术所需的编码器和解码器就可能难以修改。
实施例设法解决这些问题及其它问题。在一个实施例中,例如,SMM 108可设置成采用一个或多个水印技术把消息嵌入数字对象中。消息其中还可包括程序指令。程序指令可包括包含来自预定计算机语言的字、值和符号的计算机代码段、它们在按照预定方式或语法组合在一起时使处理器执行某些操作。指令可包括任何适当类型的代码,例如源代码、编译代码、解释代码、可执行代码、静态代码、动态代码等。指令可采用任何适当的高级、低级、面向对象、可视、编译和/或解释编程语言来实现,例如C、C++、Java、BASIC、Perl、Matlab、Pascal、Visual BASIC、汇编语言、机器代码等。实施例不限于这个上下文。
在一个实施例中,消息可包括程序指令以实现一个或多个音频或视频指纹操作或技术。例如,消息可包括经过编译以形成可执行代码(“指纹可执行代码”)的程序指令。指纹可执行代码可用于根据在内容购买或访问时由内容服务器102阐述的一组规则来实施在内容被发送到客户机装置106之前已经由内容服务器102设置的版权管理策略或者某种查看标准。与典型的静态水印不同,内容服务器102可通过更新与水印一起被嵌入的指纹可执行代码,来动态改变实施策略以及实现它的相应操作。可出现这种情况而不需修改客户机装置106实现的水印解码器。相反,对查看策略和版权管理策略的更改被嵌入指纹可执行代码中。例如,代码可采用Java字节代码或者可在客户机装置106中解释和执行的其它某些可执行原语来实现。实施例不限于这个上下文。
图2说明SMM 108的部分框图。SMM 108可分别表示内容服务器102和客户机装置106的SMM 108a-b,如参照图1所述。如图2所示,SMM 108可包括多个部件,例如处理器202、存储器204、内容编码器/解码器(“编解码器”)206、消息编解码器208和网络接口210,它们都经由总线212连接。某些部件例如可采用一个或多个电路、组件、寄存器、处理器、软件子例程或者它们的任何组合来实现。虽然图2表示有限数量的部件,但是可以理解,根据给定实现的需要,或多或少的部件可用于SMM 108中。实施例不限于这个上下文。
在一个实施例中,SMM 108可包括处理器202。处理器202可作为通用处理器来实现,例如由Intel公司制造的处理器。处理器202还可包括专用处理器,例如控制器、微处理器、嵌入式处理器、数字信号处理器(DSP)、网络处理器、I/O处理器等。实施例不限于这个上下文。
在一个实施例中,SMM 108可包括存储器204。存储器204可包括任何机器可读媒体。机器可读媒体的一些实例包括但不一定限于只读存储器(ROM)、随机存取存储器(RAM)、动态RAM(DRAM)、双倍DRAM(DDRAM)、同步RAM(SRAM)、可编程ROM、可擦可编程ROM、电可擦可编程ROM、闪存、例如铁电聚合物存储器的聚合物存储器、奥氏(Ovonic)存储器、磁盘(例如软盘和硬盘驱动器)、光盘(例如CD-ROM和DVD)等。实施例不限于这个上下文。
在一个实施例中,SMM 108可包括网络接口210。网络接口210可包括任何有线或无线网络接口,该接口可设置成利用任何适当的技术进行工作,用于采用一组期望的通信协议、服务或操作程序来控制节点102和106之间经由网络104的信息信号。例如,当作为有线系统的一部分实现时,网络接口210可设置成按照例如快速以太网或千兆位以太网等的一个或多个以太网协议、例如传输控制协议(TCP)/因特网协议(IP)等的一个或多个因特网协议等进行操作。网络接口210还可包括与网络104的相应通信媒体连接的适当物理连接器。当作为无线系统的一部分实现时,网络接口210可采用具有天线的无线收发器来实现,其中的收发器设置成按照例如802.11、802.16、WAP等的一个或多个无线协议进行操作。实施例不限于这个上下文。
在一个实施例中,SMM 108可包括内容编解码器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系列标准可提供音频和视频两种编解码器,以便支持这样一种实现。
在一个实施例中,SMM 108可包括消息编解码器208。消息编解码器208可包括把消息嵌入从内容编解码器206所接收的一个或多个视频帧的消息编码器。消息编解码器208例如可接收来自存储器204或者不同装置的消息。消息编解码器208可采用消息对一个或多个视频帧进行编码,以便形成嵌入视频帧。消息编解码器208还可包括在接收侧对来自嵌入视频帧的消息进行解码或者从嵌入视频帧中提取消息的消息解码器。
消息可包括静态信息或动态信息。动态信息可包括程序指令,例如指纹可执行代码。静态信息例如可包括所有权信息。静态信息还可包括指纹可执行代码在运行期间使用的数据或元数据或者针对管理指纹可执行代码的应用的其它信息。元数据可包括描述其它数据的数据。例如,元数据可描述怎样、什么时间、由谁来收集特定的数据组以及怎样格式化数据。元数据例如可用来理解数据仓库、基于XML应用等中存储的信息。实施例不限于这个上下文。
在一个实施例中,消息编解码器208可包括指纹数据提取器(FDE)214。FDE 214可设置成从数据位流、如入局音频/可视流中提取水印。FED 214可采用由内容服务器102所实现的特定技术来提取水印,以便插入水印。FED 214可把已提取水印分解为静态信息和动态信息。静态信息例如可包括所有权信息或者动态信息的静态元数据。动态信息例如可包括指纹可执行代码。
在一个实施例中,消息编解码器208可包括指纹执行应用(FEA)216。一旦FED 214接收并验证整个指纹可执行代码,FED 214可调节FEA 216以便开始执行所接收指纹可执行代码。FEA 216可管理和控制指纹可执行代码的执行。例如,在程序指令以未编译形式发送的情况中,FEA 216可包括适当的软件编译器,以便把程序指令编译为适当的可执行形式。指纹可执行代码可采用分配给消息编解码器108使用的专用处理器、例如处理器202等的SMM 108可用的处理器、或者客户机106可访问的其它任何处理器来执行。实施例不限于这个上下文。
通过把动态信息、如指纹可执行代码嵌入水印,由FEA216管理并由处理器202执行的指纹操作可随时间改变。为了出现这种情况,变更事件可作为程序元数据与嵌入描述符一起单独被包含。在接收器上,FDE 214可采用关联元数据从压缩视频中提取已更新指纹可执行代码。FEA 216可采用已更新指纹可执行代码来计算适当的音频或视频指纹。已计算的指纹块可经由IP反向信道(例如网络104)返回给内容服务器102,以便由内容服务器102进行分析。这样,网络中的额外内容的回放可由内容服务器102来管理和跟踪。
如上所述,运行环境、嵌入描述符和/或策略可在任何给定会话期间改变。程序元数据把接收器上的重构与可在服务器侧设置的预计行为绑定。例如,程序元数据可包括版权对象(RO)。RO可包括策略组。这些策略可作为执行环境的一部分或者与其分开嵌入。RO例如可包括表明常规表达式的估算的事件描述符、确定动作的常规表达式以及预期动作规定。RO例如可用来实施特定的查看策略。例如,如果反向信道被禁用,或者如果检测到未授权回放,则FEA 216可禁用或者以其它方式禁止数字对象的进一步回放、查看或复制。
更具体来说,音频和/或视频指纹执行环境可包括策略库和轻型数据结构来捕捉音频和/或视频内容的关键特性。策略库例如可采用三元组来实现。三元组可包括<事件>、<规则>和<动作>的值。结果是被回放的音频和/或视频的紧致签名。策略可帮助确保数字对象的回放或查看经过授权,而指纹计算则生成用来测量定性和定量消耗量度的签名。例如,对于许可装置、付费订户、存在上报指纹的工作反向信道等允许查看。如果压缩音频/视频位未经适当授权而传送到另一个查看装置,则视频例如可修改为表现失真。
采用指纹可执行代码实现的给定策略定义可按照给定服务提供商或系统设计限制来改变。由指纹可执行代码执行的操作的类型的一个实例可包括在允许回放之前查询后端服务器以获得在已授权装置上的内容使用的过去历史记录。另一个实例可包括让指纹可执行代码执行生成访问加密数字对象、如音频或视频文件所需的任何密钥方面的主动任务。指纹执行代码可设置成验证用户的证书、采用专有协议与后端服务器通信、计算任何所需密钥并将它们提供给播放器应用。可以理解,这些操作仅作为实例提供。指纹执行代码可包括给定实现所需的任何类型的指纹操作。
除了具有动态信息以包括音频和/或视频指纹执行环境的消息之外,嵌入消息还可包括数字签名。客户机装置106可在FEA216开始执行相应程序指令之前采用数字签署的嵌入消息来验证可执行的可靠性。例如,FDE 214可采用位置元数据从流内容中提取消息。FEA 216可验证数字签名以鉴别消息。然后,FEA 216可开始执行指纹可执行代码。
消息可采用任何数量的数据隐藏技术被嵌入内容流中。例如,消息编解码器208可采用水印技术把消息嵌入视频帧。水印又可称作隐写术。隐写术是以隐藏信息的存在的方式对保密信息编码的实践。在数字隐写术中,位流所表示的消息可被嵌入掩体或主体。掩体或主体是消息被嵌入其中并用于隐藏消息的存在的媒介,例如数字图像。这又可称作消息包装。掩体和消息不一定需要具有均质结构。
消息编解码器208可把消息嵌入一个或多个视频帧,以便形成嵌入视频帧。嵌入视频帧可统称为“伪装图像”。伪装图像应当与不定期检查和分析的掩体图像相似。
另外,消息编解码器208可把密码技术与隐写技术结合以增加附加的安全层。在密码术中,消息的结构被改变为使它呈现无意义和不可理解的,除非解密密钥是可用的。密码术没有尝试伪装或隐藏编码消息。作为对比,隐写术不改变保密消息的结构,但将它隐藏在掩体内。能够通过采用密码术加密消息、然后采用隐写术隐藏已加密消息,来组合这些技术。所得伪装图像可被传送,而没有暴露正在交换保密信息。此外,即使攻击者将破解隐写技术并从伪装图像中检测到消息,但他仍然需要加密解码密钥对已加密消息进行译码。例如,消息编解码器208可在形成伪装图像时采用“伪装密钥”。只有了解相应解码密钥的接收方才能够从采用伪装密钥进行编码的伪装图像中提取消息。如果伪装密钥在编码操作中被使用,则从伪装图像中恢复消息通常仅需要伪装图像本身以及相应解码密钥。可能需要或者可能不需要原始掩体图像。实施例不限于这个上下文。
对于消息编解码器208所选的具体水印技术可根据多个因素而改变,例如隐藏容量、感知透明度、健壮性、防篡改以及其它特性。隐藏容量可表示相对掩体的大小可隐藏的信息的大小。对于固定大小的消息,较大隐藏容量允许使用较小的掩体,因而减少传送伪装图像所需的带宽。感知透明度可表示掩体容许的退化量。把消息隐藏在掩体中的操作可能需要掩体图像的某种噪声调制或失真。嵌入应当在没有掩体的感知质量的明显退化或损失的情况下进行。在版权保护的嵌入水印中保留感知透明度可能特别重要,因为应当保持原始作品的质量和完整性。健壮性可表示嵌入数据在伪装图像经过例如线性和非线性滤波、随机噪声的添加、锐化或模糊、缩放和旋转、修剪或抽取、有损压缩、从数字到模拟形式的转换然后再恢复到数字形式等的变化时保持完整的能力。健壮性在版权保护水印方面可能特别重要,因为盗版者将试图过滤和破坏伪装图像中嵌入的任何水印。防篡改可表示攻击者改变或伪造已嵌入伪装图像中的消息、例如盗版者用要求法律所有权的标志替换版权标记的难度。要求高健壮性的应用通常还要求极强的防篡改等级。在版权保护应用中,实现优良的防篡改可能是困难的,因为版权在许多年是有效的,并且即使盗版者试图采用未来数十年的计算技术进行修改时,水印也必须保持防篡改。要考虑的其它特性可包括编码和解码的计算复杂度、对多个盗版者共同设法识别和破坏标记的合谋攻击的抵抗力等。实施例不限于这个上下文。
消息编解码器208可采用若干不同的技术之一把表示消息的位流嵌入图像掩体中。例如,消息编解码器208可采用最低有效位(LSB)嵌入、变换技术以及利用感知掩蔽的技术。但是,实施例不限于这个上下文。
在LSB嵌入中,数字图像可由颜色和强度值的矩阵组成。例如,在一种典型的灰度级图像中,采用8位/像素。在一种典型的全色图像中,有24位/像素,其中的8位分配给各颜色成分。最低复杂度的技术以确定顺序把消息的位直接嵌入掩体图像的最低有效位平面。调制最低有效位的步骤不产生人类可感知的差异,因为变化的幅度较小。其它技术在插入到掩体图像之前或期间设法“处理”具有伪随机噪声序列的消息。但是,LSB编码对伪装图像的任何种类的过滤或处理极为敏感。对伪装图像的缩放、旋转、修剪、噪声添加或者有损压缩极可能破坏该消息。此外,攻击者可能通过以修改伪装图像的感知质量的极小变化移去(调零)整个LSB平面,来移去消息。
另一类技术通过调制变换域中的系数来执行数据嵌入。变换域的实例可包括离散余弦变换(DCT)、离散傅立叶变换、小波变换等。变换技术可提供相对于有损压缩的优越健壮性,因为它们设计成阻止或利用流行的有损压缩算法的方法。基于变换的嵌入的一个实例可包括根据消息的位和量化期间的舍入误差来调制伪装图像的DCT系数。根据特定变换的不变属性,基于变换的隐写术通常还提供对于缩放和旋转或修剪的增加的健壮性。
在一般操作中,假定客户机装置106从内容服务器102请求视频文件。内容服务器102的SMM 108a可接收该请求,以及内容编解码器206可开始按照视频压缩技术、如MPEG-1或MPEG-2对来自所请求视频文件的视频帧进行编码或压缩。消息编解码器208可接收具有静态元数据和指纹可执行代码的消息。消息编解码器208可采用消息对来自内容编解码器206的视频帧进行编码,以便形成嵌入视频帧。网络接口210可经由网络104向客户机装置106发送嵌入视频帧。客户机装置106的SMM 108b可开始经由网络接口210接收嵌入视频帧。内容编解码器206可对已接收视频帧进行解码或解压缩,并把已解码视频帧传递给消息编解码器208。消息编解码器208的FDE214可从嵌入视频帧中提取静态信息和指纹可执行代码并对其进行验证。FDE 214可直接向FEA 216或存储器204发送已验证静态信息和指纹可执行代码。在后一种情况中,FDE 214可向FEA 216发送消息或信号,以表明静态信息和指纹可执行代码已经被接收、验证,并且准备执行。FEA 216可发起例如采用客户机装置106的处理器202对指纹可执行代码的执行。指纹可执行代码可执行音频和/或视频操作,以便实现给定的策略组,例如安全策略、RO策略等。
上述系统和子系统的操作可参照以下附图和所附实例进一步描述。附图的一部分可包括编程逻辑。虽然本文提供的这些附图可能包括具体编程逻辑,但是可以理解,编程逻辑只提供可如何实现本文所述的一般功能性的一个实例。此外,若没有说明,给定编程逻辑不一定需要按照所提供的顺序来执行。另外,给定编程逻辑可通过硬件部件、处理器执行的软件部件或者它们的任何组合来实现。实施例不限于这个上下文。
图3说明编程逻辑300。编程逻辑300可表示由本文所述的一个或多个系统、如内容服务器102的SMM 108a所执行的操作。如编程逻辑300中所示,在框302接收来自数字对象的帧。在框304可接收具有执行指纹操作的程序指令的消息。在框306,可采用消息对帧编码。
图4说明编程逻辑400。编程逻辑400可表示由本文所述的一个或多个系统、如客户机装置106的SMM 108b所执行的操作。如编程逻辑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。因此,U和V信息的每个像素各有2位。这种二次取样没有显著影响质量,因为眼睛对于亮度比对于色度信息更为敏感。二次取样是有损步骤。因此,24位RGB信息减少到12位YUV信息,它自动提供2∶1压缩。
帧被分为16×16像素宏块。各宏块由四个8×8亮度块和两个8×8色度块(1U和1V)组成。宏块是运动补偿压缩的单元。块用于DCT压缩。帧可通过三种类型来编码帧内(I帧)、前向预测帧(P帧)以及双向预测帧(B帧)。I帧被编码为单个图像,其中没有对任何过去或未来帧的参考。块首先采用DCT从空间域变换到频域,它把信号分离为独立的频带。大部分频率信息处于所得8×8块的左上角。此后,对数据量化。量化可被认为基本上忽略低阶位。量化是除了二次取样之外的整个压缩操作的唯一有损部分。然后按照“之”形顺序对所得数据进行行程长度编码,以便优化压缩。这种“之”形顺序通过利用以下事实来产生更长行程的零值当编码器以“之”形从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)向量和全零误差项。B帧相对于过去参考帧、未来参考帧或者两种帧来编码。未来参考帧是最接近的后续参考帧(I或P)。B帧的编码与P帧相似,但是运动向量可表示未来参考帧中的区域。对于采用过去和未来两种参考帧的宏块,两个16×16区域被平均。
同样参照该实例,内容解码器206可按照MPEG标准把视频信号压缩成视频帧。消息编解码器208可接收来自内容解码器206的压缩视频帧。消息编解码器208还可接收来自存储器204的消息。消息例如可包括以Java编写的音频或视频指纹生成源代码,它被编译成字节代码(*.class)并映射到线性位流。在执行点上,位流在客户机装置106上由SMM 108b的消息编解码器208拆包并执行。
为了避免伪装图像可能的颜色失真,消息编解码器208可能仅选择MPEG-2图像组(GOP)结构中的引导I帧的Y分量来携带隐藏消息。此外,消息编解码器208可跳过或省略具有大于门限值的运动向量或量化系数的那些I帧,例如在I帧的类型P和B宏块中。通过修改具有大于I帧的平均交流(AC)系数的值的DCT系数,可把消息嵌入所选I帧中。这可减小嵌入操作引起的感知失真。通过把所选AC分量的值改变为最接近的偶数,消息编解码器208可从消息位流嵌入位“1”。通过把所选AC分量的值改变为最接近的奇数,消息编解码器208可从消息位流嵌入位“0”。调制AC分量则可采用可变长编码来重新编码。
值得注意,消息编解码器208的计算成本和相应的提取可能足够低到实现为传统编解码器周围的包装。目标执行可能在内务处理处理器、如XScale处理器上或者在编解码器核心周围的灵活控制部件、如VSparc上进行。由于GOP的引导I帧的选择,少于大约10%的调制位流可能不同于未调制对应部分。
客户机装置106的SMM 108b可开始经由网络接口210接收嵌入视频帧。内容编解码器206可从嵌入视频帧中检索消息。内容编解码器206可向存储器204发送消息以便存储消息。处理器202可运行来自消息的程序指令以执行后续音频指纹操作。
对于给定系统所实现的具体音频或视频指纹操作根据具体目标应用可能不同。例如,假定用于查看特定视频内容的版权管理策略是使得只有已许可装置和付费订户才允许查看内容。如果压缩音频/视频位非法传送到另一个查看装置上,则视频必须在被解压缩和查看时表现失真。为了实施这个策略,内容服务器102的SMM 108a的消息编解码器208实际上可对压缩视频施加某种动态失真。用于校正失真的算法可嵌入指纹可执行代码中。另外,通过检测来自客户机装置106的标识符,并在校正视频的失真之前向内容服务器102对该标识符进行验证,指纹可执行代码能够验证客户机装置106的用户的证书。
假定装置106上的消息编解码器208从所接收视频或音频中提取消息,并把消息提供到其执行环境模块。执行模块从水印中提取指纹执行代码,验证它的完整性,并开始执行该代码。指纹执行代码可解析由内容服务器102嵌入的指纹元数据,并提取需要由客户机装置验证的用户的证书。通过查询预计在已许可客户机装置上的某个硬件组件,指纹执行代码可在客户机装置106上检查用户的标识符。代码也可使Java或其它例程执行环境要求用户输入个人标识号(PIN)或密码。指纹执行代码可以可选地通过可用反向信道、例如到内容服务器102的IP连接向内容服务器102验证用户的证书,或者把结果与包含在水印中的用户证书进行比较。一旦已经验证由内容服务器102设置的策略,指纹执行代码可对压缩视频的某些系数重新排序,或者通过与客户机装置106中的消息编解码器208交互,应用其它技术来修复在内容服务器102上引入的失真。
指纹操作的其它实例可包括指纹执行代码采用从容户机装置106中所查询的用户标识符、如网络MAC地址来更新压缩内容中的消息,以便跟踪具体内容段被传送和查看的位置。这允许内容所有者通过检查嵌入消息来识别与特定内容的查看关联的历史记录。在另一个实例中,指纹执行代码还可在生成查看加密视频段所需的密钥方面起主动作用。在这种情况中,客户机装置106上的播放器应用可提取并运行指纹执行代码,以便接收对内容进行解扰和查看所需的密钥。指纹执行代码可验证用户的证书、采用专有协议与内容服务器102通信、计算密钥并将它们提供给播放器应用。实施例不限于这个上下文。
本文阐述了许多具体细节,以便提供对实施例的透彻了解。然而,本领域的技术人员会理解,没有这些具体细节,也可以实施实施例。在其它情况下,没有详细描述众所周知的操作、组件和电路,以免影响对实施例的理解。可以理解,本文公开的具体结构和功能细节会是代表性的,并不一定限制实施例的范围。
还值得注意,“一个实施例”或“实施例”的任何提法表示结合该实施例所述的具体特征、结构或特性包含在至少一个实施例中。词组“在一个实施例中”在本说明的各个位置中的出现不一定都表示同一个实施例。
一些实施例可采用可能根据诸如预期计算速率、功率电平、热容差、处理周期预算、输入数据速率、输出数据速率、存储器资源、数据总线速度以及其它性能限制之类的任何数量的因素改变的体系结构来实现。例如,一个实施例可采用由通用或专用处理器所执行的软件来实现。在另一个实例中,一个实施例可作为诸如电路、专用集成电路(ASIC)、可编程逻辑装置(PLD)或数字信号处理器(DSP)等的专用硬件来实现。在又一个实例中,一个实施例可通过编程通用计算机组件和定制硬件组件的任何组合来实现。实施例不限于这个上下文。
本发明的某些实施例例如可采用可存储指令或指令集的机器可读媒体或产品来实现,其中的指令或指令集在由机器运行时可使机器执行根据实施例的方法和/或操作。这样一种机器例如可包括任何适当的处理平台、计算平台、计算装置、处理装置、计算系统、处理系统、计算机、处理器等,并且可采用硬件和/或软件的任何适当组合来实现。机器可读媒体或产品例如可包括任何适当类型的存储单元、存储器装置、存储器产品、存储器媒体、存储装置、存储产品、存储媒体和/或存储单元,例如存储器、可移动或不可移动媒体、可擦除或不可擦除媒体、可写或可重写媒体、数字或模拟媒体、硬盘驱动器、软盘、光盘只读存储器(CD-ROM)、可记录光盘(CD-R)、可重写光盘(CD-RW)、光盘、磁媒体、各种类型的数字多功能盘(DVD)、带子、盒式带等。指令可包括任何适当类型的代码,例如源代码、编译代码、解释代码、可执行代码、静态代码、动态代码等。指令可采用任何适当的高级、低级、面向对象、可视、编译和/或解释编程语言来实现,例如C、C++、Java、BASIC、Perl、Matlab、Pascal、Visual BASIC、汇编语言、机器代码等。实施例不限于这个上下文。
若没有明确说明,可以理解,诸如“处理”、“计算”、“确定”之类的术语表示计算机或计算系统或者类似的电子计算装置的动作和/或过程,其中所述计算机或计算系统或者类似的电子计算装置处理表示为计算系统的寄存器和/或存储器中的物理量(如电子)的数据和/或将其转换为类似地表示为计算系统的存储器、寄存器或者这种信息存储装置、传送或显示装置中的物理量的其它数据。实施例不限于这个上下文。
虽然如本文所述说明了实施例的某些特征,但本领域的技术人员现在会想到多种修改、替换、变更以及等效方案。因此要理解,所附权利要求书意在涵盖落入实施例的真实精神之内的所有这类修改和变更。
权利要求
1.一种设备,包括消息编码器,采用消息对来自数字对象的帧进行编码以便形成嵌入帧,所述消息包括执行指纹操作的程序指令。
2.如权利要求1所述的设备,其中,所述消息编码器把所述消息嵌入所述帧中作为数字水印。
3.如权利要求1所述的设备,其中,所述数字对象包括音频信息,以及所述帧包括音频帧。
4.如权利要求1所述的设备,其中,所述数字对象包括视频信息,以及所述帧包括视频帧。
5.如权利要求1所述的设备,其中,所述消息包括数字签名。
6.如权利要求1所述的设备,其中,所述消息包括表示将通过所述程序指令来实施的一组策略的静态元数据。
7.一种设备,包括消息解码器,对来自表示数字对象的嵌入帧的消息进行解码,所述消息包括执行指纹操作的程序指令。
8.如权利要求7所述的设备,其中,所述消息解码器包括指纹数据提取器和指纹执行应用,所述指纹数据提取器从所述嵌入帧中提取具有所述程序指令的所述消息,以及所述指纹执行应用管理执行所述指纹操作的所述程序指令的运行。
9.如权利要求7所述的设备,其中,所述消息包括所述嵌入帧中的数字水印。
10.如权利要求7所述的设备,其中,所述数字对象包括音频信息,还包括执行所述程序指令以生成所述音频信息的音频指纹的处理器。
11.如权利要求7所述的设备,其中,所述数字对象包括视频信息,还包括执行所述程序指令以生成所述视频信息的视频指纹的处理器。
12.如权利要求7所述的设备,其中,所述消息包括数字签名。
13.如权利要求7所述的设备,其中,所述消息包括表示将通过所述程序指令来实施的一组策略的静态元数据。
14.一种系统,包括内容编码器,对数字对象编码以形成内容信息的帧;连接到所述内容编码器的消息编码器,所述消息编码器采用消息对所述帧进行编码以便形成嵌入帧,所述消息包括执行指纹操作的程序指令;以及连接到所述消息编码器的发射器,所述发射器发送所述嵌入帧。
15.如权利要求14所述的系统,其中,还包括连接到发射器的天线。
16.如权利要求14所述的系统,其中,所述数字对象包括音频信息或视频信息。
17.如权利要求14所述的系统,其中,所述消息编码器把所述消息嵌入所述帧中作为数字水印。
18.如权利要求14所述的系统,包括接收器,接收嵌入帧;以及连接到所述接收器的消息解码器,所述消息解码器包括指纹数据提取器和指纹执行应用,所述指纹数据提取器从所述嵌入帧中提取具有所述程序指令的所述消息,以及所述指纹执行应用管理执行所述指纹操作的所述程序指令的运行。
19.如权利要求18所述的系统,其中,所述数字对象包括音频信息,还包括执行所述程序指令以生成所述音频信息的音频指纹的处理器。
20.如权利要求18所述的系统,其中,所述数字对象包括视频信息,还包括执行所述程序指令以生成所述视频信息的视频指纹的处理器。
21.一种方法,包括接收来自数字对象的帧;接收具有执行指纹操作的程序指令的消息;以及采用所述消息对所述帧进行编码。
22.如权利要求21所述的方法,包括采用所述消息对所述帧进行编码作为数字水印。
23.如权利要求21所述的方法,包括生成所述数字水印的数字签名。
24.如权利要求21所述的方法,还包括接收所述嵌入帧;从所述嵌入帧中提取具有所述程序指令的所述消息;以及运行所述程序指令以执行所述指纹操作。
25.如权利要求24所述的方法,其中,所述数字对象包括音频信息,以及运行所述程序指令的步骤生成所述音频信息的音频指纹。
26.如权利要求24所述的方法,其中,所述数字对象包括视频信息,以及运行所述程序指令的步骤生成所述视频信息的视频指纹。
27.一种包括存储指令的媒体的产品,所述指令由处理器运行时可操作用于接收来自数字对象的帧,接收具有执行指纹操作的程序指令的消息,以及采用所述消息对所述帧进行编码。
28.如权利要求27所述的产品,还存储在由处理器运行时可操作用于采用所述消息对所述帧进行编码作为数字水印的指令。
29.如权利要求27所述的产品,还存储在由处理器运行时可操作用于接收所述嵌入帧、从所述嵌入帧中提取具有所述程序指令的所述消息以及运行所述程序指令以执行所述指纹操作的指令。
30.如权利要求29所述的产品,还存储在由处理器运行时可操作用于运行所述程序指令以生成音频指纹或视频指纹的指令。
全文摘要
描述了采用水印和指纹技术来管理数字媒体的方法及设备。
文档编号G06T1/00GK101044506SQ200580035496
公开日2007年9月26日 申请日期2005年11月10日 优先权日2004年11月17日
发明者D·巴特, R·尼奥吉 申请人:英特尔公司