分布式图形处理的制作方法

文档序号:9383405阅读:492来源:国知局
分布式图形处理的制作方法
【专利说明】分布式图形处理
【背景技术】
[0001] 这一般地涉及图形处理。
[0002] 在某些情况下,将图形处理任务从本地设备卸载到远程服务器是有利的。例如,可 以将图形处理从具有有限的处理能力的本地设备卸载到云。另外,可以在对等布置中将图 形处理任务从一个设备卸载到其他设备。
[0003] 远程图形处理的质量常常取决于客户端与远程设备之间的连接。如果连接停止 (down),则将由于遗漏的图形数据而掉帧。这可能在网络降级时或者当远程服务器关闭或 在网络之外时发生。
【附图说明】
[0004] 相对于以下各图来描述某些实施例: 图1示出了根据本发明的一个实施例的图像的分解; 图2示出了根据本发明的一个实施例的图像恢复; 图3是本发明的一个实施例的示意性描述; 图4是客户端上的用于本发明的一个实施例的流程图; 图5是用于远程设备的服务器上的用于本发明的一个实施例的流程图; 图6是用于一个实施例的系统描述;以及 图7是一个实施例的前正视图(front elevational view)。
【具体实施方式】
[0005] 根据某些实施例,可以通过将原始高分辨率图形数据处理并行化成在远程设备上 处理的多个较低分辨率图形数据来改进远程图形处理的稳定性。如果某些远程连接停止, 则客户端图形应用仍可以从结果得到的图像的其余部分以较低的清晰度生成最终屏幕图 像,以确保不掉帧。
[0006] 可在提及的客户端中提供分组分派代理和分组恢复代理。分组分派代理将应用程 序接口(API)的原始图像相关数据分解成多个低分辨率图像。每个远程设备对低分辨率图 像数据执行图形应用程序接口调用。然后,将结果得到的图像发送回到分组恢复代理以生 成最终屏幕显示。原始图像相关数据的分解可以是原料(raw) RGB数据、协调数据、阿尔法 混合或旋转的分解。
[0007] 参考图1,客户端上的分组分派代理拦截客户端上的图形API调用并向服务 器或远程设备集群发送图形调用。用于做这些的典型技术涉及到DirectFB voodoo和 VirtualGL。在发送出图形API调用之前,分组分派代理将图像相关数据分解,并将该数据 分类到多个(例如四个)单独的远程设备。否则,其可将已分解图像分类到任何数目的可用 远程设备中。然后分片地向远程服务器发送原始图像数据。
[0008] 如图1中所示,可以将单元(cell)的6X6阵列分解成四个3X3阵列,每个被发 送到不同的远程服务器或远程设备以用于独立处理。该三乘三阵列的每个可选自规则间隔 的像素位置。
[0009] 然后每个远程服务器只须处理用于四个单元中的每一个的原始数据即可。如果一 个单元丢失,则仍可以从其余的三个服务器甚至以较低的分辨率来重构原始图像。
[0010] 客户端上的分组恢复代理从由远程服务器集群发送的结果得到的图像生成最终 图像。在分布式图形处理中,所有API调用可在服务器上执行。然后将结果得到的图像 发送回到客户端以用于再现。这是根据使用VirtualGL的实施例。这是来自分组分派 (distpatch)代理的相反过程。
[0011] 如图2中所示,将四个结果得到的图像重组成原始图像。
[0012] 如果到服务器的任何连接断开,则分组恢复代理基于其他图像的相邻像素来恢复 丢失的图像数据。例如,如果服务器1停机,则图像1的结果的估计可以基于来自来自其他 三个服务器的相邻像素的值的平均,其在这种情况下为图像2、3和4。该清晰度可能有些较 低,但是在某些情况下,可避免掉帧。
[0013] 参考图3,客户端12可以是系统或片上系统(S0C),其通过网络24与同多个远程 服务器28中的每一个相关联的分布式处理代理26对接,所述多个远程服务器28定义服务 器集群,在这种情况下编号为1至4,其也可以是芯片上系统。该客户端包括存储器14,其 存储图形应用、分组分派代理20以及分组恢复代理22。将最终图像18从分组恢复代理22 传递到图形应用。将原始图像16从图形应用传递到分组分派代理。
[0014] 在使用OpenGL的示例中,图形应用在客户端上启动。分组分派代理拦截API调用, 诸如gIDrawPixels,以将图像数据分解并将多个已分解图像分派到远程服务器。除图像数 据之外,分组分派代理可以改变诸如协调和大小之类的相关数据。分布式处理代理26处理 来自客户端的API调用以在服务器上执行API调用。当gIFinish或eglSwapBuffer被调 用时,分布式处理代理将结果得到的图像发送到客户端且特别是分组恢复代理22。当如描 述的那样将图像分裂成四路时,在服务器上接收到的图像数据的大小一般地是原始大小的 四分之一。当然,还可完成其他分裂。
[0015] 分组恢复代理22从远程服务器接收结果得到的图像并生成最终图像。如果一个 连接停止,则可基于来自可以在其他结果得到的图像中找到的相邻像素的值的内插来恢复 丢失的结果得到的图像。
[0016] 例如,如果结果图像1出故障,则可以用以下伪代码将其恢复:
[0017] 然后图形应用14将最终图像再现到客户端的屏幕。作为示例,本地客户端可以是 移动平板电脑,并且远程设备可以是云。本地客户端的其他示例包括平板电脑或其他移动 设备。
[0018] 因此,参考图4和5,示出了两个流程以便图示客户端30上的代码与服务器36上 的代码之间的交互。虽然想象了基于软件的环境,但还可用固件和/或硬件来实现图4和 5中所示的序列。在软件和固件实施例中,可通过存储在诸如磁、光或半导体存储之类的一 个或多个非临时计算机可读介质中的计算机执行指令来实现序列。
[0019] 首先参考图4,客户端序列30通过启动图形应用开始,如在框32中所指示的。分 组分派代理拦截API调用以将图像分解并分派到远程服务器,如在框34中所指示的。如用 短划线所示,流程然后移动至服务器36,其接收API调用,如在框38中所指示的,服务器集 群在分布式服务器中执行API调用并且将结果发送回到客户端,如在框40中所指示的。如 短划线所指示的,流程返回至客户端30,在那里,分组恢复代理从服务器接收结果得到的图 像,并且然后组装完整的图像,如在框42中所指示的。
[0020] 菱形44处的检查确定是否从所有服务器接收到所有图像数据。如果是这样,则如 在框46中所指示的那样再现最终图像。否则,使用内插、平均或其他技术来恢复丢失图像, 如在框48中所指示的,并且在框46处再现最终图像。
[0021] 图6图示出系统700的实施例。在实施例中,系统700可以是介质系统,虽然系统 700不限于此背景。例如,可将系统700结合到个人计算机(PC)、膝上型计算机、超级膝上 型计算机、平板电脑、触控板、便携式计算机、手持式计算机、掌上型计算机、个人数字助理 (PDA)、蜂窝式电话、组合蜂窝式电话/PDA、电视、智能设备(例如,智能电话、智能平板电脑 或智能电视)、移动互联网设备(MID)、消息收发设备、数据通信设备等。
[0022] 在实施例中,系统700包括被耦合到显示器720的平台702。平台702可从内容设 备接收内容,内容设备诸如一个或多个内容服务设备730或一个或多个内容递送设备740 或其他类似内容源。可使用包括一个或多个导航特征的导航控制器750来与例如平台702 和/或显示器720相交互。下面更详细地描述这些部件中的每一个。
[0023] 在实施例中,平台702可包括芯片组705、处理器710、存储器712、储存器714、图 形子系统715、应用716、全球定位系统(GPS) 721、照相机723和/或无线电718的任何组 合。芯片组705可提供在处理器710、存储器712、储存器714、图形子系统715、应用716和 /或无线电718之间的互通信。例如,芯片组705可包括能够提供与储存器714的互通信的 存储适配器(未描述)。
[0024] 另外,平台702可包括操作系统770。到处理器772的接口可对接操作系统和处理 器 710〇
[0025] 可提供固件790以实现诸如启动序列之类的功能。可提供用以使得固件能够从平 台702外面更新的更新模块。例如,更新模块可包括用以确定对更新的尝试是否可信并识 别固件790的最近更新以促进何时需要更新的确定的代码。
[0026] 在某些实施例中,可通过外部电源对平台702供电。在某些情况下,平
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1