半透明嵌入式水印的制作方法

文档序号:17728200发布日期:2019-05-22 02:39阅读:259来源:国知局
本说明书一般涉及用于生成和恢复水印图像的技术。水印图像用于修改未知的源图像,例如在电子文档中作为第三方内容呈现的源图像。在诸如互联网或其他网络的联网环境中,第一方内容提供商可以提供用于在电子文档中呈现的信息,例如网页或应用界面。文档可以包括由第一方内容提供商提供的第一方内容和由第三方内容提供商提供的第三方内容。可以使用各种技术将第三方内容添加到电子文档中。一些文档包括标签,该标签指示在其上呈现文档的客户端计算机直接从第三方内容提供商请求第三方内容项。其他文档包括指示客户端计算机调用中间服务的标签,该中间服务与多个第三方内容提供商合作,以从一个或多个第三方内容提供商返回所选择的第三方内容项。在一些情况下,第三方内容项被动态地选择以用于在电子文档中呈现,并且为文档的给定的服务而选择的特定第三方内容项可能不同于为同一文档的其他服务而选择的第三方内容项。技术实现要素:本说明书描述了用于生成水印图像以补充源图像的系统、方法、设备和其他技术,该源图像作为例如电子文档中的第三方内容而被显示。在其他方面,本说明书描述了用于恢复经编码的源图像中编码的信息的系统、方法、设备和其他技术,该经编码的源图像示出了覆盖在源图像上的半透明水印。在一些实施方式中,系统使用从经编码的源图像恢复的信息来识别源图像的提供商、源图像的其他特征或关于源图像的特定印记(impression)的上下文。半透明水印图像可以由包括一个或多个处理器的水印图像生成器生成。水印图像可以包括第一组编码像素和第二组编码像素,第一组编码像素中的每一个被分配第一透明度值,第二组编码像素中的每一个被分配第二透明度值,第二透明度级别不同于第一透明度级别。编码像素可以分布在一组空白像素之间,使得每个编码像素与水印图像中的一个或多个空白像素相邻,具体地,与水印图像中的至少两个空白像素相邻。这里,每个空白像素可以被分配第二透明度值。更具体地,将第一透明度值分配给水印图像中的第一像素可以包括将水印图像中的第一像素的透明度级别设置为小于100%透明,并且将第二透明度值分配给水印图像中的第二像素可以包括将水印图像中的第二像素的透明度级别设置为100%透明度。水印图像生成器可以通过在一组空白像素之间间隔该组编码像素来生成水印图像,使得水印图像中的每个编码像素与水印图像中的一个或多个空白像素相邻,具体地,与水印图像中的至少两个空白像素相邻。根据一个实施例,在该组空白像素之间分布编码像素可以包括:(i)创建具有m行像素和n列像素的初始水印画布,其中初始水印画布中的每个像素是空白像素;以及(ii)对于初始水印画布中的每第k行,将像素从编码图像的对应行映射到初始水印画布的各个行中的每第l像素。例如,如果编码图像具有i行像素和j列像素,则将编码像素分布在该组空白像素之间可以包括:(i)创建具有i行像素和2j列像素的初始水印画布,其中初始水印画布中的每个像素是空白像素;(ii)对于初始水印画布中的每第二行,将像素从编码图像的对应行映射到初始水印画布的该行中的每第二像素;以及(iii)对于初始水印画布中的每隔一行(everyotherrow),将像素从编码图像的对应行映射到初始水印画布的该行中的每第二像素,并将像素在初始水印画布中移位一列。为了从经编码的源图像恢复这样的水印图像,一个或多个计算机的系统可以选择该经编码的源图像的部分(该部分具有与水印图像的尺寸匹配的尺寸),然后可以针对水印图像中的每个编码像素,基于所选择的经编码的源图像的部分中对应的像素的值与所选择的经编码的源图像的部分中的一个或多个其他像素的值的比较,具体地,与所选择的经编码的源图像的部分中的至少两个其他像素的值的比较,来确定该编码像素的二进制值。该一个或多个其他像素可以是该编码像素的相邻像素,该编码像素的二进制值将被确定。这里,相邻像素通常是与编码像素相邻的任何像素,例如直接在编码像素的上方、下方或左侧或右侧。通常,比较还可以考虑编码像素的第二最近(next-nearest)相邻(像素)或编码像素的指定周围的其他像素。针对经编码的源图像中对应于水印图像中编码像素的每个像素,确定编码像素的二进制值可以包括确定经编码的源图像中对应的像素的颜色是否与对应的像素的至少阈值数量的相邻像素的颜色匹配。例如,如果经编码的源图像中的第一编码像素的颜色与第一编码像素的至少阈值数量的相邻像素的颜色相匹配,则作为响应,将第一二进制值分配给恢复的水印图像中的第一像素;并且如果确定经编码的源图像中的第二编码像素的颜色与第二编码像素的至少阈值数量的相邻像素的颜色不匹配,则作为响应,将第二二进制值分配给恢复的水印图像中的第二像素。在某些情况下,这里描述的主题的一些实施方式可以实现以下优点中的一个或多个。首先,系统可以生成水印图像以增强任意源图像,即使在创建水印图像时源图像是未知的。因为水印图像可以覆盖在源图像上以便在远离系统的客户端计算机处呈现给用户,所以在水印图像被发送到客户端计算机之前,系统不需要直接获得或修改源图像。第二,该系统可以恢复水印图像,或者可以恢复从中导出水印图像的编码图像,即使没有源图像的先验知识,从而使得系统能够在不知道任意图像来自何处的情况下解码任意图像。第三,水印图像可以是基本透明的,以便当在源图像上渲染(render)水印图像时,用户察觉不到该水印图像,从而水印图像不会降低源图像的感知视觉质量。第四,通过将水印图像与在其上显示水印图像的源图像分离,可以减少生成水印图像所需的时间量和计算开销。例如,这里公开的系统和技术可以独立于源图像生成水印图像(这可以用比修改源图像更少的处理资源和/或更少的时间来执行),而不是直接修改复杂的源图像来添加水印(这可能需要大量的时间和处理资源)。通过依赖单独的客户端计算机将水印图像混合在源图像上,该系统可以响应于来自客户端计算机的请求而减少提供水印图像的等待时间,同时还减少了响应请求所涉及的计算周期的数量,因为服务器系统不需要在传送源图像之前混合水印图像和源图像。第五,该系统可以生成二进制水印图像,或者具有相对较少颜色或透明度选项的其他水印图像,以保持紧凑的文件大小,该文件大小允许图像通过网络有效地发送到客户端计算机,而其他水印图像可能大得多以容纳。附图说明图1描绘了网络环境的框图,该网络环境利用水印图像来增强提供给客户端计算机的电子文档,该水印图像被布置用于在文档中呈现的一个或多个源图像上显示。图2是示例环境的框图,其中第三方内容被分发以与电子文档一起呈现。图3a-图3j示出了用于生成水印图像和从经编码的源图像恢复水印图像或相关图像的示例技术。图4是用于使用半透明水印图像来增强提供给客户端计算机的文档中呈现的源图像的示例过程的流程图。图5是用于根据编码图像生成水印图像的示例过程的流程图。图6是用于使用源图像和水印图像渲染经编码的源图像的示例过程的流程图。图7是用于从经编码的源图像生成恢复图像的示例过程的流程图。图8是计算机系统的示意图,该计算机系统可用于执行与本文描述的计算机实施的方法、系统、设备和其他技术相关联而描述的操作。具体实施方式图1描绘了网络环境100的框图,网络环境100生成水印图像以显示在提供给客户端计算机104的电子文档中呈现的源图像上。环境100包括服务器系统102、客户端计算机104和用于一个或多个源图像提供商106a-n的计算系统。服务器系统102、客户端计算机104和源图像提供商106a-n通过诸如互联网或局域网(localareanetwork,lan)的一个或多个网络连接。一般来说,客户端计算机104被配置为生成对电子文档的请求并将其发送到服务器系统102。基于来自客户端计算机104的请求,服务器系统102生成返回到客户端计算机104的响应(例如,电子文档)。给定的响应可以包括被配置为显示给客户端计算机104的用户的所选择的源图像128a,其中源图像128a由源图像提供商106a-n中的一个来提供。服务器系统102可以用半透明水印图像126来增强提供给客户端计算机104的响应,该半透明水印图像126被布置用于在客户端计算机104处的响应文档的呈现中、在源图像128上显示。客户端计算机104可以是向一个或多个人类用户呈现图像和其他内容的任何类型的计算设备。客户端计算机104可以包括向服务器系统102发出请求并从服务器系统102接收响应的应用(诸如web浏览器应用)。应用可以运行来自服务器系统102的响应(诸如网页代码或其他类型的文档文件),以将该响应呈现给客户端计算机104的一个或多个用户。在一些实施方式中,客户端计算机104包括电子显示设备(例如,lcd或led屏幕、crt监视器、头戴式虚拟现实显示器、头戴式混合现实显示器),或者耦合到电子显示设备,其中该电子显示设备向客户端计算机104的一个或多个用户显示来自所呈现的响应的内容。所显示的内容可以包括所选择的源图像128a和以基本透明的方式显示在所选择的源图像128a之上的水印图像126。在一些实施方式中,客户端计算机104是笔记本计算机、智能手机、平板计算机、台式计算机、智能手表或其他可穿戴设备。在一些实施方式中,在对客户端计算机104的响应中提供的源图像128是第三方内容项,例如,该第三方内容项不在响应的第一方内容提供商提供的内容中。例如,如果响应是网页,则网页的创建者可以包括空隙(slot),该空隙被配置为由来自第三方内容提供商的源图像填充,该第三方内容提供商不同于网页的创建者(例如,图像储存库的提供商)。在另一示例中,第一方内容提供商可以直接链接到第三方源图像128。客户端计算机104可以直接从用于源图像提供者106a-n中的一个的对应的计算系统请求源图像128,或者经由中间服务(诸如由服务器系统102或另一服务器系统提供的服务)间接请求源图像128。服务器系统102被配置为用电子文档和半透明水印图像126响应来自客户端计算机104的请求,该半透明水印图像126将在电子文档中、在源图像128a上显示。服务器系统102可以被实施为一个或多个位置中的一个或多个计算机。服务器系统102可以包括前端子系统108、图像生成子系统110、响应格式化器(formatter)116、图像分析和解码器模块118以及响应记录数据库120中的一个或多个。组件108-120中的每一个被配置为执行本文描述的各个操作。例如,与每个组件108-120相关联的操作可以由存储在一个或多个计算机可读存储设备上的存储器中的指令来定义,并且这些操作可以在当指令由服务器系统102的一个或多个处理器运行时执行。尽管这里通过示例的方式将一些操作描述为由组件108-120中的特定一个来执行,但是在其他实施方式中,组件108-120中的两个或更多个的一些或全部操作可以被合并,并由单个组件代替执行。在又一实施方式中,组件108-120中的任何一个的操作可以在两个或更多个组件之间划分。服务器系统102可以被配置为执行过程400、500和700以及图3a-图3i所示的技术。过程400、500和700的操作以及其他技术将在下面参考图3a-图3i、图4、图5和图7进一步详细描述。服务器系统102及其组件108-120的概述如下,随后将参考图3a-图3i和图4、图5和图7进一步详细描述这些组件所执行的操作和其他技术。前端子系统108提供用于通过一个或多个网络进行通信的接口。前端子系统108从客户端计算机104接收请求,并将对请求的响应以及与请求相关联的任何内容(诸如水印图像,以及可选地,源图像)一起发送到客户端计算机104。前端子系统108还可以与源图像提供商106a-n的计算系统通信,例如,以获得源图像128a来提供给客户端计算机104。前端子系统108还可以与服务器系统102的组件112-120中的每一个通信,并包括用于协调它们之间的活动的控制器。为了便于通过网络与设备通信,前端系统可以包括有线(例如,金属或光学)通信接口、无线通信接口或有线和无线通信接口的组合,这些接口使得前端子系统能够连接到活动的通信网络。图像生成子系统110被配置为根据输入数据生成图像。具体地,图像生成子系统110包括编码输入生成器112和水印图像生成器114。编码输入生成器112处理明文数据项122以生成对明文数据项122进行编码的编码图像124。明文数据项122可以是能够在编码输入生成器112的约束内被编码的任何数据。例如,明文数据项122可以是最大长度为n个字符的文本样本,因为编码图像124的大小可能能够为仅达到n个字符的预定义最大长度的文本样本提供无损编码。在一些实施方式中,明文数据项122是唯一地标识客户端计算机104和服务器系统102之间的网络会话的会话标识符,在该网络会话期间,对来自客户端计算机104的请求提供响应。在一些实施方式中,明文数据项122包括或引用源图像数据,该源图像数据标识提供给客户端计算机104的特定源图像128a或与源图像128a相关联的信息(例如,指示源图像提供商106a-n中的哪个提供了提供给客户端计算机104的特定源图像128a的信息)。在一些实施方式中,响应记录数据库120存储将关于针对特定请求而提供的响应的详细信息相关联的数据,以便使得可经由由明文数据项122表示的会话标识符来访问该详细信息。响应记录数据库120还可以将会话标识符与源图像数据相关联,从而使得可以通过使用由明文数据项122表示的会话标识符查询数据库120来访问源图像数据。然后,用户可以使用来自明文数据项122的会话标识符来识别例如针对请求哪个源图像128a-n被提供给客户端计算机104。编码图像124是对明文数据项122进行编码的图像。在一些实施方式中,编码图像124是表示明文数据项122的矩阵型条形码。合适的矩阵型条形码的一个示例是快速响应码(quickresponsecode,qr码)。编码图像124可以具有按照像素的行数和列数来表示的预定义的大小。编码图像124中的每个像素可以对数据的二进制位进行编码,其中每个位的值由不同的颜色表示。例如,对二进制值“1”进行编码的像素可以是黑色的,而对二进制值“0”进行编码的像素可以是白色的。在一些实施方式中,编码图像124的最小编码单元实际上可以大于单个像素。但是为了这里描述的示例,最小编码单元被假设为单个像素。然而,应当理解,这里描述的技术可以扩展到最小编码单元是一组多个像素的实施方式,例如2×2或3×3像素网格。图像生成器子系统110还包括水印图像生成器114。水印图像生成器114被配置为处理编码图像124以生成半透明水印图像126。半透明水印图像126从编码图像124导出,并且还对明文数据项122进行编码。然而,可以从编码图像124的透明度、颜色、编码像素的布置和/或其他特征来改变水印图像126的透明度、颜色、编码像素的布置和/或其他特征。例如,虽然编码图像124可以是均匀不透明的,并且由彼此紧密排列的编码像素组成,但是水印图像126可以包括一些完全透明的像素和一些部分透明的像素。此外,水印图像126中的编码像素可以彼此隔开,使得每个编码像素被未编码像素(即,“空白”像素)包围。可以执行编码图像124到水印图像126的变换,使得在水印图像126被覆盖并合并在背景源图像128a上之后,可以例如通过重建编码图像124或水印图像126来恢复编码信息。参考过程500(图5)和图3a-图3e,将更全面地讨论水印图像生成器114如何从编码图像124创建水印图像126的细节。响应格式化器116被配置为响应于客户端对电子文档的请求,生成返回到客户端计算机104的响应。响应可以包括一个或多个内容项,包括第一方内容项和第三方内容项,它们共同形成电子文档(诸如网页、应用界面、pdf、演示幻灯片或电子表格)。在一些实施方式中,响应包括指定如何布置和显示各种内容项的主文档。诸如超文本标记语言(hypertextmarkuplanguage,html)页面的主文档可以是指要在文档的呈现中显示的第一方内容项和第三方内容项。在一些实施方式中,响应格式化器116被配置为向主文档添加计算机代码,该计算机代码指示客户端计算机104在运行响应时在源图像128a上显示水印图像126的一个或多个实例,例如,向源图像128a添加人类用户基本察觉不到的水印。因为水印图像126具有完全和部分透明的像素,所以渲染电子文档的客户端计算机104处的应用可以执行混合技术,以根据水印图像126的指定透明度将水印图像126覆盖在源图像128a上。例如,响应格式化器116可以添加代码,该代码引导客户端计算机104在电子文档的第三方内容空隙中将源图像128a显示为背景图像,并将水印图像126的一个或多个实例作为前景图像显示在源图像128a上。服务器系统102还包括图像分析和解码器模块118。图像分析和解码器模块118被配置为从经编码的源图像130恢复明文数据项122的编码表示。经编码的源图像是由客户端计算机104在源图像128a上渲染水印图像126而产生的图像。即使水印图像126与源图像128a分离,由图像分析和解码器模块118处理的经编码的源图像130也可以是示出混合在源图像128a上的水印图像126的合并图像。例如,响应于对电子文档的请求,客户端计算机104的用户可能从源图像提供者106a-n中的一个接收不适当或不相关的源图像128a。用户可以拍摄经编码的源图像130的屏幕截图,并将该屏幕截图发送到服务器系统102进行分析,例如查询源图像128a的来源。因为屏幕截图示出了被水印图像126覆盖的原始源图像128a,所以图像分析和解码器模块118可以处理屏幕截图以恢复明文数据项122的编码表示,该明文数据项122反过来又可以被解码以恢复明文数据项122自身。系统102然后可以将恢复的明文数据项122用于各种目的,例如,查询响应记录数据库120以查找关于源图像128a及其来源的详细信息,或者关于其中源图像128a被提供给客户端计算机104的特定客户端会话的其他信息。图像分析和解码器模块118生成的明文数据项122的编码表示可以是例如恢复的水印图像126或恢复的编码图像124。下面参考图7描述关于由图像分析和解码器模块118执行以恢复明文数据项122的编码表示的操作的附加细节。图2是示例环境200的框图,其中第三方内容被分发以与电子文档一起呈现。示例环境200包括网络202,诸如局域网(lan)、广域网(wideareanetwork,wan)、因特网或其组合。网络202连接电子文档服务器204、用户设备206、第三方内容服务器208和第三方内容分发系统210(也称为内容分发系统)。示例环境200可以包括许多不同的电子文档服务器204、用户设备206(例如,客户端计算机)和第三方内容服务器208。用户设备206是能够通过网络202请求和接收资源(例如,电子文档)的电子设备。示例用户设备206包括个人计算机、移动通信设备和可以通过网络202发送和接收数据的其他设备。用户设备206通常包括用户应用(诸如web浏览器),以便于通过网络202发送和接收数据,但是由用户设备206运行的本机应用也可以便于通过网络202发送和接收数据。电子文档是在用户设备206处呈现一组内容的数据。电子文档的示例包括网页、文字处理文档、便携式文档格式(portabledocumentformat,pdf)文档、图像、视频、搜索结果页面和馈送源。本机应用(例如,“应用”),诸如安装在移动设备、平板计算机或桌面计算设备上的应用,也是电子文档的示例。电子文档可以由电子文档服务器204提供给用户设备206。例如,电子文档服务器204可以包括托管(host)发布者网站的服务器。在该示例中,用户设备206可以发起对给定发布者网页的请求,并且托管给定发布者网页的电子服务器204可以通过发送启动在用户设备206处呈现给定网页的机器可运行指令来响应该请求。在另一示例中,电子文档服务器204可以包括应用服务器,用户设备206可以从该应用服务器下载应用。在该示例中,用户设备206可以下载在用户设备206安装应用所需的文件,然后在本地运行下载的应用。电子文档可以包括各种内容。例如,电子文档可以包括在电子文档自身内和/或不随时间变化的静态内容(例如,文本或其他指定内容)。电子文档还可以包括动态内容,该动态内容可能会随着时间的推移或基于每个请求而变化。例如,给定电子文档的发布者可以维持用于填充电子文档的部分的数据源。在该示例中,给定电子文档可以包括标签或脚本,当用户设备206处理(例如,渲染或运行)给定电子文档时,该标签或脚本使得用户设备206从数据源请求内容。用户设备206将从数据源获得的内容集成到给定电子文档的呈现中,以创建包括从数据源获得的内容的复合电子文档。在一些情况下,给定的电子文档可以包括引用第三方内容分发系统210的第三方标签或第三方脚本。在这些情况下,当用户设备206处理给定电子文档时,用户设备206运行第三方标签或第三方脚本。第三方标签或第三方脚本的运行将用户设备206配置为生成对第三方内容的请求212,该请求通过网络202发送到第三方内容分发系统210。例如,第三方标签或第三方脚本可以使用户设备206能够生成包括报头和有效载荷数据的分组化数据请求。请求212可以包括数据,诸如向其请求第三方内容的服务器的名称(或网络位置)、请求设备(例如,用户设备206)的名称(或网络位置)和/或第三方内容分发系统210可以用来选择响应于请求而提供的第三方内容的信息。请求212由用户设备206通过网络202(例如,电信网络)发送到第三方内容分发系统210的服务器。请求212可以包括指定电子文档和可以呈现第三方内容的位置的特性的数据。例如,指定对将在其中呈现第三方内容的电子文档(例如,网页)的引用(例如,统一资源定位器(uniformresourcelocator,url))、可用来呈现第三方内容的电子文档的可用位置(例如,第三方内容空隙)、可用位置的大小、电子文档的呈现内的可用位置的定位和/或适合在位置中呈现的媒体类型的数据可以被提供给内容分发系统210。类似地,指定与电子文档相关联的关键字(“文档关键字”)或由电子文档引用的实体(例如,人、地点或事物)的数据也可以被包括在请求212中(例如,作为有效载荷数据),并被提供给内容分发系统210,以便于识别适合与电子文档一起呈现的第三方内容项。第三方内容可以由一个或多个文件(例如,数字存储的文件)来表示,这些文件使得处理一个或多个文件的计算设备生成第三方内容的可感知的(例如,视觉的)实例。在一些实施方式中,第三方内容存储在图像文件、文本文件或其他文件中,该其他文件使得计算设备(例如,移动设备、平板设备、可穿戴设备)呈现第三方内容的视觉可感知的实例。第三方内容可以包括任何信息,包括风景图像、文本图像和包括广告信息的图像。请求212还可以包括与其他信息相关的数据,该其他信息诸如用户已经提供的信息、指示提交请求的状态或区域的地理信息、或者提供其中第三方内容将被显示的环境的上下文的其他信息(例如,第三方内容将被显示的设备的类型,诸如移动设备或平板设备)。指定用户设备206的特性的数据也可以在请求212中提供,诸如标识用户设备206的型号、用户设备206的配置、或者电子文档呈现在其上的电子显示器(例如,触摸屏或桌面监视器)的大小(例如,物理大小或分辨率)的信息。可以例如通过分组化网络发送请求212,并且请求212自身可以被格式化为具有报头和有效载荷数据的分组化数据。报头可以指定分组的目的地,有效载荷数据可以包括上面讨论的任何信息。第三方内容分发系统210响应于接收到请求212和/或使用包括在请求212中的信息来选择将与给定电子文档一起呈现的第三方内容。在一些实施方式中,在不到一秒钟内选择第三方内容,以避免因延迟选择第三方内容而导致的错误。例如,在响应于请求212而提供第三方内容的延迟可能导致用户设备206处的页面加载错误,或者导致电子文档的部分即使在用户设备206处呈现电子文档的其他部分之后仍未被填充。而且,随着向用户设备206提供第三方内容的延迟增加,当第三方内容时,电子文档更有可能不再呈现在用户设备206上,从而对用户对电子文档的体验产生负面影响。此外,例如,如果当提供第三方内容时,电子文档不再在用户设备206处呈现,则提供第三方内容的延迟可能导致第三方内容的失败递送。在一些实施方式中,第三方内容分发系统210在分布式计算系统中实施,该分布式计算系统包括例如服务器和一组多个计算设备214,该组多个计算设备响应于请求212互连并识别和分发第三方内容。该组多个计算设备214一起操作以从数百万个可用第三方内容(3pc1-x)的全集中识别适合在电子文档中呈现的一组第三方内容。例如,可以在第三方全集数据库216中索引数百万个可用的第三方内容。每个第三方内容索引条目可以引用对应的第三方内容和/或包括限制对应的第三方内容的分发的分发参数(dp1-dpx)(例如选择标准)。在一些实施方式中,特定第三方内容的分发参数(例如,选择标准)可以包括分发关键字,其中为了使第三方内容适合被呈现,这些关键字必须匹配(例如,通过请求212中指定的术语或电子文档)。分发参数还可以要求请求212包括指定特定地理区域(例如,国家或州)的信息和/或指定请求212来自特定类型的用户设备(例如,移动设备或平板设备)的信息,以便第三方内容适合被呈现。分发参数还可以指定用于分发特定第三方内容的出价和/或预算。适合的第三方内容的识别可以被分段成多个任务217a-217c,然后在该组多个计算设备214内的计算设备之间分配这些任务。例如,该组214中的不同计算设备可以各自分析第三方全集数据库216的不同部分,以识别具有与请求212中包括的信息相匹配的分发参数的各种第三方内容。在一些实施方式中,该组214中的每个给定计算设备可以分析不同的数据维度(或一组维度),并将分析结果(res2-res3)218a-218c传递回第三方内容分发系统210。例如,由该组中的每个计算设备提供的结果218a-218c可以标识响应于该请求而适合分发的第三方内容的子集和/或具有某些分发参数或属性的第三方内容的子集。第三方内容分发系统210聚集从该组多个计算设备214接收的结果218a-218c,并使用与聚集结果相关联的信息来选择将响应于请求212而提供的第三方内容的一个或多个实例。例如,第三方内容分发系统210可以基于一个或多个内容评估过程的结果来选择一组获胜(winning)的第三方内容,如下文进一步详细讨论的。反过来,第三方内容分发系统210可以通过网络202生成并发送回复数据220(例如,表示回复的数字数据),该回复数据220使得用户设备206能够将该组获胜的第三方内容集成到给定的电子文档中,使得该组获胜的第三方内容和电子文档的内容一起呈现在用户设备206的显示器上。在一些实施方式中,响应于请求212而提供的获胜的第三方内容是将用水印增强的源图像。系统210可以生成水印图像,并且配置电子文档,以便当在用户设备206处呈现文档时,将水印图像覆盖在源图像上。在一些实施方式中,用户设备206运行包括在回复数据220中的指令,该指令配置并使用户设备206能够从一个或多个第三方内容服务器获得该组获胜的第三方内容。例如,回复数据220中的指令可以包括网络位置(例如,统一资源定位器(url))和脚本,该脚本使得用户设备206向第三方内容服务器208发送第三方请求(third-partyrequest,3pr)221,以从第三方内容服务器208获得给定的获胜的第三方内容。响应于该请求,第三方内容服务器208将向用户设备206发送第三方数据(third-partydata,tp数据)222,该第三方数据使得给定的获胜的第三方内容被合并到电子文档中并呈现在用户设备206上。内容分发系统210可以利用一个或多个评估过程来针对每个给定请求(例如,基于与该请求相对应的数据)识别和选择一组获胜的第三方内容。在一些实施方式中,评估过程不仅需要确定选择哪个第三方内容与电子文档一起呈现,还需要确定将动态地(例如,基于每个请求)应用于所选择的第三方内容的格式类型,以及需要确定当所选择的第三方内容与所应用的格式一起呈现时将为所选择的第三方内容的呈现支付的价格。图3a-图3i示出了用于生成对明文数据进行编码的水印图像以及用于恢复明文数据的编码表示的示例技术。下面分别参考图4-图7的过程400-700的描述来进一步详细讨论图3a-图3i中的每一个。图4是用于使用半透明水印图像来增强在提供给客户端计算机的电子文档中呈现的源图像的示例过程400的流程图。过程400可以由一个或多个计算机的系统(例如服务器系统102)执行。在一些实施方式中,过程400开始于阶段402,其中系统接收明文数据(例如明文数据项122)。明文数据通常是能够在诸如qr码的编码图像中编码的任何数据。在一些实施方式中,明文数据是会话标识符,该会话标识符唯一地标识客户端计算机和系统之间的逻辑会话,或者标识响应于来自客户端计算机的请求而提供的电子文档。在一些实施方式中,明文数据包括或引用源图像数据,该源图像数据标识提供给客户端计算机的特定源图像或与源图像相关联的信息。在阶段404,系统的编码输入生成器(例如编码输入生成器112)根据明文数据生成编码图像。编码图像是对明文数据进行编码的图像。在一些实施方式中,编码图像是表示明文数据的矩阵型条形码。合适的矩阵型条形码的一个示例是快速响应码(qr码)。编码图像可以具有按照像素的行数和列数来表示的预定义的大小。编码图像中的每个像素可以对数据的二进制位进行编码,其中每个位的值由不同的颜色表示。例如,对二进制值“1”进行编码的像素可以是黑色的,而对二进制值“0”进行编码的像素可以是白色的。编码图像302的一个示例在图3a中示出。该示例中的编码图像302是具有三行像素和三列像素的矩阵型条形码(例如qr码)。当然,具有更多或更少的行和列的像素的其他大小的编码图像也是可能的。在编码图像302中,一些像素具有第一二进制颜色(firstbinarycolor),即黑色,而其他像素具有第二二进制颜色(secondbinarycolor),即白色。每个像素的颜色由颜色值定义。位于(行,列)坐标(1,2)、(3,1)和(3,3)的像素例如是白色的,而编码图像302中的其他像素是黑色的。另外,每个像素可以具有指示像素的透明度级别的透明度值(也称为“α”值)。透明度值可以归一化为范围[0,1],其中值“0”表示完全透明,值“1”表示完全不透明(不透明),介于“0”和“1”之间的中间值表示部分透明。在一些实施方式中,编码图像302是完全不透明的,使得编码图像302的每个像素具有“1”的透明度值。然后,图像渲染应用可以使用透明度值来确定当前景图像覆盖在背景图像上时产生的像素的合成颜色。例如,在一些混合过程中,如果背景像素的颜色值为“bgrgb”,并且前景像素的颜色值为“fgrgb”,具有归一化到范围[0,1]的、值为“fga”的透明度(α)值,则最终被渲染用于向用户显示的合成像素将具有为fgrgb*fga+bgrgb*(1–fga)的颜色值。如果“fga”的值为零,则公式缩写为bgrgb*(1–fga)。例如,图3f示出了示例背景图像312(例如,源图像),其中每个像素具有由符号cnrgb标识的颜色值。图3g示出了经编码的源图像314,该经编码的源图像314已经使用前述段落中描述的混合技术将水印图像310(前景图像)覆盖在源图像312(背景图像)上来生成,其中经编码的源图像314中的某些编码像素的颜色是来自水印图像310的部分透明前景像素和来自源图像312的对应的背景像素颜色的混合。应该注意,图3g所示的颜色值和表达式假设前景水印图像中的阴影像素是黑色的,因此该像素的前景rgb值是(0,0,0)。因此,由将前景水印图像和背景源图像进行混合而产生的合成像素的完整表达式从“fgrgb*fga+bgrgb*(1–fga)”减少到简单的“bgrgb*(1-fga)。”因此,如果水印图像中的前景像素具有颜色(0,0,0)和透明度值ba,并且背景像素的颜色是cnrgb,则该像素的合成颜色值由表达式cnrgb*(1-ba)定义。如果来自水印图像的前景像素具有颜色(0,0,0)和透明度值0,并且背景像素的颜色为cnrgb,则该像素的合成颜色值为cnrgb。在阶段406,系统的水印图像生成器(例如水印图像生成器114)生成水印图像。水印图像是半透明图像,其包括具有两个或更多个不同的透明度级别的像素以对明文数据项进行编码。对于双级别透明(bi-leveltransparency),水印图像可以由具有第一透明度级别(例如,部分透明)的第一组像素和具有第二透明度级别(例如,完全透明)的第二组像素组成。第一组像素可以是编码像素,每个编码像素表示来自编码图像的具有第一颜色值(诸如黑色)的各个像素。第二组像素可以包括两个像素子集,即编码像素和空白像素。尽管第二子集中的编码像素和空白像素可以共享相同的透明度级别,但是只有编码像素子集表示来自编码图像的具有第二颜色值的像素(诸如白色)。空白像素不表示来自编码图像的任何像素,而是散布在第一像素组和第二像素组的编码像素之间,以便于从经编码的源图像恢复信息,该经编码的源图像可以随后由于水印图像覆盖在背景图像上而产生。在一些实施方式中,系统根据图5的流程图中描绘的示例过程500来执行阶段404。过程500是用于根据编码图像生成水印图像的过程。过程500可以由一个或多个计算机的系统(例如,服务器系统102)执行,并且具体地由水印图像生成器(例如,水印图像生成器114)执行。在阶段502,水印图像生成器识别编码图像,诸如编码图像302。可选地,在阶段504,水印图像生成器将编码图像归一化。将编码图像归一化可涉及将编码图像中所有像素或一些像素的各个颜色值和透明度值映射到预定义的颜色和/或透明度值。例如,如果在原始编码图像中,在图像中编码的二进制值通过像素颜色来区分,则在归一化的编码图像中,在归一化图像中编码的二进制值可以通过像素透明度来区分。图3b和图3c描绘了对编码图像进行归一化的一个示例。具体地,图3b示出了原始编码图像302的示例表示304,其中黑色像素都具有颜色值brgb并且具有透明度值ba,白色像素都具有颜色值wrgb并且具有透明度值wa。在一些实施方式中,wa和ba是相同的。图3c示出了归一化的编码图像306,其中像素的颜色和透明度已经被变换,使得黑白像素被分配公共颜色brgb,但是通过黑白像素的透明度来对其进行区分。对黑色像素分配透明度值ba,而对白色像素分配透明度值“0”,即,完全透明。再次参考图5,在阶段506,水印图像生成器生成初始水印画布。在一些实施方式中,初始水印画布是具有预定义大小的初始图像,并且为水印图像的创建提供了起点。如图3d所示,初始水印画布的示例是画布308。画布308具有与归一化的编码图像306相同的行数,但是具有为归一化编码图像306的列数的两倍的列数。另外,初始水印画布308中的所有像素都是具有相同颜色和透明度级别的空白像素。空白像素是不对来自编码图像的信息进行编码并且不对应于编码图像中的任何像素的像素。在一些实施方式中,空白像素具有与归一化的编码图像306中的第二组像素相同的透明度。例如,画布308中的空白像素是完全透明的,如每个像素的各个括号(颜色值,透明度值)中的后一个值所指示。在阶段508,水印图像生成器使用归一化的编码图像将编码像素添加到初始水印画布以创建最终水印图像。编码像素是水印图像中与空白像素相比确实对来自编码图像的信息进行编码的像素。水印图像中的每个编码像素对应于归一化的编码图像中的一个像素。在一些实施方式中,通过用来自归一化的编码图像的编码像素替换初始水印画布中的空白像素来生成最终水印图像。例如,初始水印画布中的给定空白像素可以是完全透明的。如果该像素被制成编码像素,则对该像素分配来自归一化的编码图像中的对应像素的透明度。在一些情况下,如果来自归一化的编码图像的对应像素是完全透明的,则该像素可以保持完全透明。在其他情况下,如果来自归一化的编码图像的对应像素是部分透明的,则水印像素的透明度可以被调整为部分透明。图3e示出了水印图像生成器基于归一化的编码图像306从初始水印画布308生成的水印图像310的一个示例。水印图像310中具有图案化背景的每个像素表示编码像素。水印图像310中具有非图案化白色背景的每个像素表示空白像素。如水印图像310所示,编码像素分布在空白像素之间,使得每个编码像素在顶部、底部、左侧和/或右侧与至少两个空白像素相邻。通常,水印图像生成器在水印图像中分布编码像素,使得每个编码像素直接与至少一个、两个、三个、四个或更多个空白像素相邻。如下文进一步描述的,这种布置可以允许稍后从已经被水印图像增强的源图像恢复编码信息,而不需要源图像的先验知识。在图3e的示例中,水印图像生成器已经通过从归一化的编码图像中的像素的布置开始,将空白像素直接插入奇数行中的每个编码像素的右侧,并将空白像素直接插入偶数行中的每个编码像素的左侧,从而将偶数行中的编码像素相对于奇数行中的编码像素移动一个像素,来分布水印图像中的编码像素。效果是对编码像素进行交错,并用空白像素包围它们,如最终水印图像310所示。因此,在最终水印图像310中,仅有的不完全透明的像素是对应于原始编码图像302中的黑色像素的编码像素。更一般地,水印图像310中对应于原始编码图像302中的第一二进制颜色的像素的编码像素可以被分配第一透明度级别,而不同的第二透明度级别可以被分配给空白像素和对应于来自原始编码图像302的第二二进制颜色的像素的编码像素两者。在一些实施方式中,水印图像生成器可以使用其他技术将编码像素从归一化的编码图像306映射到最终水印图像310。水印图像生成器可以使用映射模板,该映射模板将水印图像310中编码像素的位置与归一化的编码图像306中的像素位置相关联。归一化的编码图像306中的每个像素可以映射到水印图像310中的像素。在一些实施方式中,系统还可以使用映射模板来执行根据经编码的源图像的编码像素的反向映射,以便从经编码的源图像重建水印图像310或编码图像302。映射模板可以识别水印图像310中编码像素的任何布置(例如,以任何顺序),只要每个编码像素与一个或多个空白像素直接相邻。返回参考图4,在阶段408,系统在响应记录数据库(例如响应记录数据库120)中生成条目。响应记录数据库包含日志,该日志存储关于在一段时间内发送到与服务器系统通信的一个或多个客户端计算机的每个响应或其他电子文档(例如,未响应特定请求的推送电子文档)的信息。每个响应可以与客户端会话相关联,这可能需要给定客户端计算机和服务器系统之间的一个或多个请求-响应交互。在一些实施方式中,响应记录数据库中的给定条目包括会话id、响应id和源图像数据。会话id唯一地标识服务器-客户端网络会话,响应id唯一地标识在给定会话期间提供给客户端计算机的响应,并且源图像数据标识关于针对特定会话或响应发送给客户端计算机的源图像的信息。会话id、响应id或两者可以形成在编码图像和水印图像中编码的明文数据,使得系统稍后可以使用覆盖在源图像上的水印来恢复会话id、响应id或两者,并且查找与会话id和/或响应id相关联的适当的源图像数据。在阶段410,服务器系统向客户端计算机提供电子文档。电子文档可以包括计算机代码,当由客户端计算机运行时,该计算机代码使得客户端计算机请求并获得源图像和水印图像。此外,计算机代码可以包括用于客户端计算机在渲染电子文档以用于呈现给用户时将水印图像覆盖在源图像上的指令。例如,在图6中描绘了用于在客户端计算机上渲染经编码的源图像的示例过程600。过程600可以由一个或多个计算设备(例如客户端计算机104)来执行。在一些实施方式中,过程600由安装在客户端计算机上的应用(诸如web浏览应用)执行。在阶段602,客户端计算机从服务器系统或另一计算系统接收源图像。在阶段604,客户端计算机从服务器系统接收水印图像,以及包含用于水印图像显示在源图像上的前景中的指令的电子文档。在阶段606,客户端计算机渲染电子文档,包括在源图像上显示水印图像。当水印覆盖在源图像上时显示的结果图像被称为经编码的源图像。在一些实施方式中,客户端计算机使用混合技术来遮挡源图像中被水印图像中的部分透明像素覆盖的像素。混合技术可以包括,例如,对于覆盖背景源图像中像素的水印图像中的每个像素,通过使用分配给水印图像像素的透明度值、相对于背景源图像像素的颜色来加权水印图像像素的颜色,来确定要显示的合成/混合颜色。在一些实施方式中,水印图像比源图像小,因为它比源图像具有更少的像素行和/或列。为了给整个源图像加水印,客户端计算机可以在源图像上平铺水印图像的多个实例。作为示例,图3h示出了示例源图像316。图3i示出了基于qr码302的示例水印图像318。图3j示出了经编码的源图像320,其中水印图像318已经在源图像316上平铺多次。在阶段412,在将电子文档和水印图像提供给客户端计算机之后,服务器系统随后接收在客户端计算机处渲染的经编码的源图像。在阶段414,服务器系统的解码器模块(例如图像分析和解码器模块118)处理经编码的源图像以恢复明文数据的编码表示。在一些实施方式中,解码涉及从经编码的源图像生成恢复图像。恢复图像可以是例如水印图像、编码图像、归一化的编码图像或可以从中读取明文数据的另一图像。图7描绘了用于从经编码的源图像生成恢复图像的示例过程700。过程700可以由一个或多个计算机的系统来执行,例如,服务器系统102的图像分析和解码器模块118。在阶段702,解码器模块接收经编码的源图像。例如,客户端计算机的用户可能被呈现在电子文档中的不适当或不相关的源图像。用户可以拍摄经编码的源图像的屏幕截图,并将该屏幕截图发送到服务器系统进行分析,例如查询源图像的来源。在一些情况下,客户端计算机可以将水印图像的多个副本平铺在源图像上,以渲染经编码的源图像。解码器模块可能只需要与单个覆盖的水印图像相对应的经编码的源图像的部分。因此,在阶段704,解码器模块选择与单个覆盖的水印图像相对应的经编码的源图像的部分。服务器系统可以知道水印图像的大小/维度,并选择与已知大小匹配的经编码的源图像的部分。在一些实施方式中,服务器系统选择已知与水印图像的一个完整实例相对应的经编码的源图像的部分,例如,从经编码的源图像的左上角向下并向右延伸的部分。在其他实施方式中,服务器系统可以“搜寻”经编码的源图像的适当部分,该部分包含已经覆盖在经编码的源图像中的单个但完整的水印图像。例如,解码器模块可以在任意位置选择一部分,基于所选择的部分生成恢复图像,然后验证恢复图像是否对有效的明文数据进行编码。如果恢复图像没有对有效的明文数据进行编码,则解码器模块选择在经编码的源图像的不同位置处的另一部分,基于新选择的部分来生成恢复图像,并验证恢复图像是否对有效明文数据进行编码。解码器模块可以继续搜索,直到选择了在解码时产生有效明文数据的部分。在阶段706,解码器模块使用所选择的经编码的源图像的部分生成恢复图像。生成恢复图像可以涉及对所选择的经编码的源图像的部分中的每个编码像素执行阶段708-712中表示的操作。经编码的源图像可以包括编码像素和空白像素两者。编码像素携带编码信息,并对应于水印图像中的编码像素。空白像素不携带编码信息,并对应于水印图像中的空白像素。解码器模块使用映射模板,该映射模板标识水印图像中编码像素的布置,以区分编码像素和空白像素。因为经编码的源图像是通过在原始源图像上覆盖部分透明的水印图像来创建的,所以所选择的经编码的源图像的部分中的每个像素的颜色基于来自原始源图像的背景像素的颜色、来自水印图像的前景像素的颜色以及水印图像中前景像素的透明度级别。在一些实施方式中,空白像素和覆盖的水印图像中对应于第二二进制值的编码像素的部分(例如,表示原始编码图像中的白色像素的像素)的透明度级别可以是“0”,即完全透明。当水印图像覆盖在源图像上时,水印图像中对应于第一二进制值的剩余编码像素(例如,表示原始编码图像中的黑色像素的像素)的透明度级别可以稍微大于零,以便稍微使各个背景源图像像素的颜色变暗(例如,变暗用户察觉不到的量)。在这些或类似的条件下,并且通过应用源图像中任何给定像素的颜色与其相邻像素的颜色在指定容限(tolerance)内相匹配的假设,解码器模块可以根据操作708-712通过确定所选择的经编码的源图像的部分中的每个编码像素的编码值来生成恢复图像。特别地,在阶段708,解码器模块识别颜色值,该颜色值指示所选择的经编码的源图像的部分中的给定编码像素的颜色。在阶段710,解码器模块识别与给定编码像素相邻的空白像素的各个颜色值。相邻像素通常是与编码像素相邻的任何像素,例如直接在编码像素的上方、下方或左侧或右侧。在阶段712,解码器模块使用编码像素及其相邻像素的所识别的颜色值对所选择的经编码的源图像的部分中的给定编码像素进行解码。因为假设源图像中的每个像素的颜色值与其相邻像素的颜色值在指定容限内相匹配,所以可以通过将编码像素的颜色值与其相邻像素中的一个或多个相邻像素的颜色值进行比较来确定编码像素的解码值。如果编码像素的颜色值与相邻像素的颜色值在指定容限内相匹配,则假设编码像素没有被覆盖的水印图像中的半透明像素变暗,并且编码像素被解码以表示第二二进制值(例如,表示原始编码图像中的“白色”像素的值)。如果编码像素的颜色值与相邻像素的颜色值在指定容限内不匹配,则认为编码像素被覆盖的水印图像中的半透明像素变暗,并且编码像素被解码以表示第一二进制值(例如,表示原始编码图像中的“黑色”像素的值)。可替换地,解码器模块可以将来自经编码的源图像的相邻像素的颜色值乘以(1–ba),其中ba是分配给水印图像中具有第一二进制值的编码像素(例如,“黑色”像素)的归一化的透明度值,并且其中brgb由值(0,0,0)表示。如果在乘以(1–ba)之后,相邻像素的结果颜色值与编码像素的颜色值在指定容限内相匹配,则编码像素被解码以表示第一二进制值(例如,表示原始编码图像中的“黑色”像素的值),因为匹配指示编码像素在混合过程中也变暗了(1–ba)。作为另一替换,编码像素及其相邻像素的颜色可以被提供作为机器学习模型的输入,该机器学习模型已经被训练为基于编码像素及其相邻像素的颜色而将编码像素分类为对第一二进制值或第二二进制值进行编码。在一些情况下,如果编码像素不满足将被解码为第一二进制值或第二二进制值的匹配标准,则解码器模块可以任意地将第一二进制值或第二二进制解码值分配给该像素。在阶段712期间,解码器模块可采用各种技术从经编码的源图像确定给定编码像素的解码值。在一些实施方式中,解码器模块使用匹配技术,该匹配技术涉及确定与大多数相邻像素的颜色值的匹配。如果编码像素的大多数相邻像素的颜色与编码像素的颜色在指定容限内相匹配,则编码像素被解码以表示第二二进制值(例如,表示原始编码图像中的“白色”像素的值)。如果乘以了(1–ba)后的大多数相邻像素的颜色与编码像素的颜色在指定容限内相匹配,则编码像素被解码以表示第一二进制值(例如,表示原始编码图像中的“黑色”像素的值)。如果对于第一二进制值或第二二进制值没有确定匹配,则编码像素可以被任意解码为第一二进制值或第二二进制值。在其他实施方式中,解码器模块使用匹配技术,该匹配技术涉及确定相邻像素之间的平均颜色值,并将相邻像素的平均颜色值与目标编码像素的颜色值进行比较。指定容限可以例如是0%、1%、2%、3%、4%或5%。当该容限为0%时,解码器模块可能需要编码像素和相邻像素之间颜色值的精确匹配。解码器模块重复操作708-712以解码所选择的经编码的源图像的部分中的每个编码像素,并且可以进一步使用适当的映射模板来基于像素的解码值生成恢复图像,诸如原始编码图像的重建或水印图像。在一些实施方式中,解码器模块针对经编码的源图像的多个所选择的部分中的每一个来重复阶段704和706,并组合来自每个所选择的部分的解码结果。每个所选择的部分对应于叠加在源图像上的水印图像的不同实例,从而对解码结果增加了冗余,并且潜在地增加了解码结果的可靠性。最后,回到图4,在阶段416,服务器系统使用解码信息来恢复明文数据。系统将明文数据用于各种目的。在一些实施方式中,明文数据表示会话id或响应id。服务器系统可以使用会话id或响应id查询响应记录数据库,以查找源图像数据,并确定例如提供源图像的特定的内容提供商。图8是计算机系统800的示意图。根据一些实施方式,系统800可用于执行与先前描述的任何计算机实施的方法、系统、设备和其他技术相关联地描述的操作。系统800旨在包括各种形式的数字计算机,诸如膝上型计算机、台式计算机、工作站、个人数字助理、服务器、刀片服务器、大型机和其他适当的计算机。系统800还可以包括移动设备,诸如个人数字助理、蜂窝电话、智能手机和其他类似的计算设备。另外,该系统可以包括便携式存储介质,诸如通用串行总线(universalserialbus,usb)闪存驱动器。例如,usb闪存驱动器可以存储操作系统和其他应用。usb闪存驱动器可以包括输入/输出组件,诸如可以插入到另一计算设备的usb端口中的无线发送器或usb连接器。系统800包括处理器810、存储器820、存储设备830和输入/输出设备840。组件810、820、830和840中的每一个使用系统总线850互连。处理器810能够处理用于在系统800内运行的指令。处理器可以使用多种体系结构中的任何一种来设计。例如,处理器810可以是复杂指令集计算机(complexinstructionsetcomputers,cisc)处理器、精简指令集计算机(reducedinstructionsetcomputer,risc)处理器或最小指令集计算机(minimalinstructionsetcomputer,misc)处理器。在一些实施方式中,处理器810是单线程处理器。在另一实施方式中,处理器810是多线程处理器。处理器810能够处理存储在存储器820中或存储设备830上的指令,以在输入/输出设备840上显示用户界面的图形信息。存储器820存储系统800内的信息。在一个实施方式中,存储器820是计算机可读介质。在一个实施方式中,存储器820是易失性存储器单元。在另一实施方式中,存储器820是非易失性存储器单元。存储设备830能够为系统400提供大容量存储。在一个实施方式中,存储设备830是计算机可读介质。在各种不同的实施方式中,存储设备830可以是软盘设备、硬盘设备、光盘设备或磁带设备。输入/输出设备840为系统400提供输入/输出操作。在一个实施方式现中,输入/输出设备840包括键盘和/或定点设备。在另一实施方式中,输入/输出设备840包括用于显示图形用户界面的显示单元。所描述的特征可以在数字电子电路中实施,或者在计算机硬件、固件、软件中实施,或者在它们的组合中实施。该装置可以在有形地包含在信息载体中的计算机程序产品中实施,例如,在机器可读存储设备中实施,以由可编程处理器运行;并且方法步骤可以由运行指令程序的可编程处理器来执行,以通过对输入数据进行操作并生成输出来执行所描述的实施的功能。所描述的特征可以有利地在一个或多个计算机程序中实施,所述计算机程序可在可编程系统上运行,所述可编程系统包括至少一个可编程处理器,所述可编程处理器被耦合以从数据存储系统、至少一个输入设备和至少一个输出设备接收数据和指令,并将数据和指令发送到数据存储系统、至少一个输入设备和至少一个输出设备。计算机程序是一组指令,可以在计算机中直接或间接用于执行某项活动或产生某种结果。计算机程序可以以任何形式的编程语言编写,包括编译或解释语言,并且可以以任何形式部署,包括作为独立程序、或者作为模块、组件、子例程,或者适合在计算环境中使用的其他单元。例如,用于运行指令程序的适合的处理器包括通用微处理器和专用微处理器,以及任何类型的计算机的单独处理器或多个处理器中的一个。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于运行指令的处理器和用于存储指令和数据的一个或多个存储器。通常,计算机还将包括用于存储数据文件的一个或多个大容量存储设备,或者可操作地耦合以与之通信;这种设备包括磁盘(诸如内部硬盘和可移动磁盘)、磁光盘和光盘。适于有形地包含计算机程序指令和数据的存储设备包括所有形式的非易失性存储器,例如包括半导体存储设备(诸如eprom、eeprom和闪存设备)、磁盘(诸如内部硬盘和可移动磁盘)、磁光盘以及光盘和dvd光盘。处理器和存储器可以由专用集成电路(application-specificintegratedcircuits,asic)补充或并入其中。为了提供与用户的交互,这些特征可以在具有显示设备的计算机上实施,该显示设备诸如阴极射线管crt或用于向用户显示信息的液晶显示器lcd监视器,以及用户通过其可以向计算机提供输入的键盘和指向设备(诸如鼠标或轨迹球)。另外,这些活动可以经由触摸屏平板显示器和其他适当的机制来实施。这些特征可以在计算机系统中实现,该计算机系统包括后端组件(诸如数据服务器),或者包括中间件组件(诸如应用服务器或互联网服务器),或者包括前端组件(诸如具有图形用户界面或互联网浏览器)的客户端计算机,或者它们的任意组合。系统的组件可以通过任何形式或介质的数字数据通信连接,例如通过通信网络连接。通信网络的示例包括局域网(“lan”)、广域网(“wan”)、对等网络(具有自组织或静态成员)、电网计算基础设施和互联网。计算机系统可以包括客户端和服务器。客户端和服务器通常彼此远离,并且通常通过网络进行交互,诸如通过所描述的该网络。客户机和服务器的关系是通过在各个计算机上运行的、并且彼此之间具有客户机-服务器关系的计算机程序而产生的。虽然本说明书包含许多具体的实施细节,但这些细节不应被解释为对任何发明或可能被请求保护的范围的限制,而应被解释为对特定发明的特定实施方式而特有的特征的描述。在分开实施方式的上下文中在本说明书中描述的某些特征还能够在单个实施方式中组合实施。相反,在单个实施方式的上下文中描述的各种特征还能够在多个实施方式中分开地实施或者在任何合适的子组合中实施。而且,虽然特征可能在上面被描述为出现在某些组合中并且甚至一开始就被请求按这样进行保护,但是来自请求保护的组合的一个或多个特征在一些情况下能够从该组合中被删除,并且请求保护的组合可以专注于子组合或者子组合的变化。类似地,虽然操作在附图中被按照特定的次序描述,但是这不应该被理解为要求按照所示出的特定次序来执行或者按照相继次序执行这样的操作、或者要求执行所有示出的操作,以便实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施方式中的各种系统组件的分离不应被理解为在所有实施方式中都需要这种分离,并且应该理解,所描述的程序组件和系统通常可以集成在单个软件产品中或者封装到多个软件产品中。因此,已经描述了主题的特定实施方式。其他实施方式在下面的权利要求的范围内。在一些情况下,权利要求中列举的动作可以以不同的顺序执行,并且仍然实现期望的结果。另外,附图中描述的过程不一定需要所示的特定顺序或依次的顺序来实现期望的结果。在某些实施方式中,多任务和并行处理可能是有利的。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1