渲染服务器、中央服务器、编码设备、控制方法、编码方法、程序以及记录媒体的制作方法
【专利摘要】在将附加有奇偶校验信息的数据写入将要检验的存储器中之后,编码设备从该存储器中读出数据,并且对该数据应用运行长度编码处理从而生成经编码数据。当编码设备是根据所写入数据的比特序列来生成经编码数据时,编码设备通过比较该比特序列与所附加的奇偶校验信息,从而检测比特翻转错误。
【专利说明】渲染服务器、中央服务器、编码设备、控制方法、编码方法、程序以及记录媒体
【技术领域】
[0001]本发明涉及一种渲染服务器、中央服务器、编码设备、控制方法、编码方法、程序以及记录媒体,尤其是涉及一种使用视频编码处理的GPU存储器检验方法。
【背景技术】
[0002]诸如个人计算机(PC)之类的具有网络连接功能的客户端装置已得到广泛应用。伴随这类装置的广泛应用,互联网的网络人口正在增长。最近面向网络用户开发了多种使用互联网的服务,并且还提供了诸如游戏之类的娱乐服务。
[0003]面向网络用户的服务之一是多用户在线网络游戏,如MMORPG (大型多人在线角色扮演游戏)。在多用户在线网络游戏中,用户将他/她所使用的客户端装置连接到提供游戏的服务器上,由此与使用连接到服务器上的另一客户端装置的另一用户进行对战游戏或组队游戏。
[0004]在一般的多用户在线网络游戏中,每个客户端装置将用于游戏渲染的必要数据发送到服务器,或从服务器接收这些数据。客户端装置使用所接收的用于渲染的必要数据来执行渲染处理,并且将生成的游戏画面呈现到连接到客户端装置的显示装置上,由此将游戏画面提供给用户。将用户通过操作输入接口而输入的信息发送至服务器,并且该信息用于服务器中的计算处理或被传输至连接到服务器上的另一客户端装置。
[0005]然而,一些使客户端装置执行渲染处理的网络游戏需要用户使用具有足够渲染性能的PC或专用游戏机。因此,网络游戏(一个内容)的用户数量取决于内容所需要的客户端装置性能。理所当然地,高性能的装置很贵,并且可拥有这种装置的用户数量也是有限的。也就是说,增加需要高渲染性能的游戏(例如,提供精美画面的游戏)的用户数量很困难。
[0006]然而,近年来,也有不依靠客户端装置处理能力(例如渲染性能)且用户可玩的游戏。在第2009/138878号国际公开中所述的游戏中,服务器获取在客户端装置中引起的操作的信息,并且将通过使用该信息执行渲染处理从而获得的游戏画面提供给客户端装置。
[0007]执行前述渲染处理的装置的渲染性能取决于包括在该装置内的GPU的处理性能。GPU的金融引进成本的变化不仅取决于该GPU的处理性能,而且还取决于包括在GPU内的GI3U存储器的可靠性。也就是说,当渲染服务器像第2009/138878号国际公开中一样来渲染将提供给客户端装置的画面时,渲染服务器的引进成本随着采用的GPU的存储器的可靠性提升而提高。相比之下,可使用包括可靠性较低的GPU存储器的GPU来实现成本的降低。在这种情况下,必须定期执行GPU存储器的错误检查处理。
[0008]然而,如第2009/138878号国际公开中所述,当GPU的存储器的存储器检查处理与GI^U主要的处理(例如,为每一帧画面提供的渲染处理)并行执行时,会导致计算量的增加,并且所提供的服务质量可能会降低。
【发明内容】
[0009]鉴于这样的常规问题提出了本发明。本发明提供一种渲染服务器、中央服务器、编码设备、控制方法、编码方法、程序以及记录媒体,其使用编码处理来执行高效的存储器检验。
[0010]本发明在其第一方面提供了一种用于输出经编码图像数据的渲染服务器,其包括:渲染构件,其用于使用GPU渲染图像;写入构件,其用于将由渲染构件所渲染的图像写入包括在GPU中的GPU存储器;以及编码构件,其用于从GPU存储器中读出由写入构件写入的图像,并且通过对该图像应用运行长度编码处理从而生成经编码图像数据,其中写入构件在将奇偶校验信息附加到图像的情况下将图像写入GPU存储器;并且当编码构件是根据从GPU存储器中读出的图像的比特序列来生成经编码图像数据时,编码构件通过比较比特序列与写入构件所附加的奇偶校验信息,从而检测比特翻转错误。
[0011]本发明在其第二方面提供了一种编码设备,其包括:写入构件,其用于将附加有奇偶校验信息的数据写入存储器;以及编码构件,其用于从存储器中读出由写入构件写入的数据,并且通过对该数据应用运行长度编码处理从而生成经编码数据,其中当编码构件是根据所写入数据的比特序列来生成经编码数据时,编码构件通过比较比特序列与所附加的奇偶校验信息,从而检测比特翻转错误。
[0012]以下对示例性实施例的说明将使本发明的其他特征变得显而易见(参照附图)。
【专利附图】
【附图说明】
[0013]图1所示为根据本发明的一个实施例的渲染系统的系统配置图;
[0014]图2所示为根据本发明的实施例的渲染服务器100的功能布置的框图;
[0015]图3所示为根据本发明的实施例的中央服务器200的功能布置的框图;
[0016]图4所示为根据本发明的实施例举例说明画面提供处理的流程图;以及
[0017]图5所示为根据本发明的实施例举例说明画面生成处理的流程图。
【具体实施方式】
[0018]下文将参照附图详细说明本发明的示例性实施例。请注意,将在下文中说明的一个实施例会阐明一个实例,其中本发明被应用于可接受一个或多个客户端装置的连接的中央服务器,以及可同时生成分别提供给该一个或多个客户端装置的画面的渲染服务器,该渲染服务器作为渲染系统的一个实例。然而,本发明适用于可同时生成提供给一个或多个客户端装置的画面(图像数据)的任意装置与系统。
[0019]假设由本说明书中的中央服务器提供给客户端装置的画面是执行游戏处理时生成的游戏画面。在渲染服务器为每一帧渲染画面后,对画面进行编码后将其提供给客户端装置。然而,本发明不仅限于游戏画面的生成。本发明可应用于向客户端装置提供经编码图像数据的任意设备。
[0020]<渲染系统的配置>
[0021]图1所示为根据本发明的一个实施例的渲染系统的系统配置图。
[0022]如图1所示,接受服务的客户端装置300a至300e与提供服务的中央服务器200通过网络400 (例如互联网)相连接。同样地,用于渲染将提供给客户端装置300的画面的渲染服务器100通过网络400连接到中央服务器200上。请注意,在以下说明中,“客户端装置300”表示客户端装置300a至300e中的任意一个,除非另作说明。
[0023]客户端装置300不仅限于PC、家用游戏机和便携式游戏机,而且还可以是,例如,移动电话、PDF和平板计算机等装置。在这个实施例的渲染系统中,渲染服务器100根据客户端装置处作出的操作输入来生成游戏画面,并且中央服务器200将生成的游戏画面分发给客户端装置300。因此,客户端装置300不必具有任何生成游戏画面所需的渲染功能。也就是说,客户端装置300可以是具有用于作出操作输入的用户接口以及显示画面的显示装置的装置,或是可连接有用户接口与显示装置的装置。此外,客户端装置可以是可对接收到的游戏画面进行解码并且可使用显示装置显示经解码的游戏画面的装置。
[0024]中央服务器200执行并管理游戏处理程序、向渲染服务器100发布渲染处理指令,并且与客户端装置300进行数据通信。更确切地说,中央服务器200执行与将要提供给客户端装置300的游戏相关的游戏处理程序。
[0025]中央服务器200管理(例如)每个客户端装置的用户所操作的角色在地图上的位置和方向以及将要提供给每个角色的事件等多条信息。之后,中央服务器200控制渲染服务器100根据所管理角色的状态生成游戏画面。例如,当每个已连接的客户端装置上由用户执行的操作输入的信息通过网络400输入至中央服务器200时,中央服务器200执行处理,从而将该信息反映到所管理角色的信息中。之后,中央服务器200基于角色的信息来决定与游戏画面相关的渲染参数,操作输入信息是被反映到该角色信息中,并且中央服务器200向包括在渲染服务器100中的任何一个GPU发出渲染指令。请注意,渲染参数包括相机(视点)的位置与方向以及包括在渲染范围内的渲染对象的信息。
[0026]渲染服务器100的作用是执行渲染处理。在这个实施例中,渲染服务器100具有四个GPU,这将在之后进行说明。渲染服务器100根据从中央服务器200接收的渲染指令来渲染游戏画面,并且将生成的游戏画面输出至中央服务器200。假设渲染服务器100能够同时生成多个游戏画面。渲染服务器100使用指定的GPU,并基于从中央服务器200接收的与游戏画面相关的渲染参数来执行游戏画面的渲染处理。
[0027]中央服务器200根据包括渲染对象的识别信息与详细信息的所传输的渲染指令,将从渲染服务器100接收的游戏画面作为经编码视频数据的一个帧的图像数据分发给对应的客户端装置。以此方式,这个实施例的渲染系统可根据在各客户端装置上执行的操作输入来生成游戏画面,并且可通过所述客户端装置的显示装置向用户提供游戏画面。
[0028]请注意,以下说明将在下面的假设条件下提出:这个实施例的渲染系统包括一个渲染服务器100与一个中央服务器200。然而,本发明不仅限于这样的特定实施例。例如,一个渲染服务器100可被分配给多个中央服务器200,或多个渲染服务器100可被分配给多个中央服务器200。
[0029]<渲染服务器100的布置>
[0030]图2所示为根据本发明的实施例的渲染服务器100的功能布置的框图。
[0031]CPUlOl控制包括在渲染服务器100中的相应块的操作。更确切地说,CPUlOl通过读出存储在(例如)R0M102或记录媒体104中的渲染处理的操作程序、将读出的程序抽取到RAM103上、并执行所抽取的程序,从而控制相应块的操作。
[0032]R0M102是(例如)可重写非易失性存储器。除了渲染处理的操作程序外,R0M102还存储其他操作程序和信息,如包括在渲染服务器100中的相应块的操作所需要的常量。[0033]RAM103是易失性存储器。RAM103不仅用作操作程序的抽取区域,而且还用作用于暂时存储中间数据及类似数据的存储区域,这些数据在包括于渲染服务器100中的相应块的操作过程中被输出。
[0034]记录媒体104是(例如)诸如HDD之类的记录装置,其可移除地连接到渲染服务器100上。在这个实施例中,假设记录媒体104存储用于在渲染处理中生成画面的以下数据:
[0035].模型数据
[0036].纹理数据
[0037].渲染程序
[0038].在渲染程序中用于计算的数据
[0039]通信单元113是包括在渲染服务器100中的通信接口。通信单元113与通过网络400连接的另一个装置(如中央服务器200)进行数据通信。当渲染服务器100传输数据时,通信单元113将数据转换成其自身与网络400或传输目标装置之间指定的数据传输格式,并且将数据传输至传输目标装置。此外,当渲染服务器100接收数据时,通信单元113将通过网络400接收的数据转换成渲染服务器100可读的任意数据格式,并且将经转换数据存储在(例如)RAM103中。
[0040]第一 GPU105、第二 GPU106、第三GPU107和第四GPU108在渲染处理中生成将要提供给客户端装置300的游戏画面。用作游戏画面的渲染区域的视频存储器(第一 VRAM109、第二 VRAM110、第三VRAM111和第四VRAM112)被连接到各个GPU上。各个GPU具有作为工作区域的GPU存储器。当各个GPU在已连接的VRAM上执行渲染时,将渲染对象抽取到GPU存储器上,并且之后将抽取的渲染对象渲染到对应的VRAM上。请注意,这个实施例的以下说明将在下面的假设条件下提出:一个视频存储器连接到一个GPU上。然而,本发明不仅限于这样的特定实施例。也就是说,每个GPU上可连接任意数目的视频存储器。
[0041]<中央服务器200的布置>
[0042]这个实施例的中央服务器200的功能布置将在下面进行说明。图3所示为根据本发明的实施例的中央服务器200的功能布置的框图。
[0043]中央CPU201控制包括在中央服务器200中的相应块的操作。更确切地说,中央CPU201通过读出存储在(例如)中央R0M202或中央记录媒体204中的游戏处理程序、将读出的程序抽取到中央RAM203上、并执行所抽取的程序,从而控制相应块的操作。
[0044]中央R0M202是(例如)可重写非易失性存储器。除了游戏处理程序外,中央R0M202还可存储其他程序。此外,中央R0M202还存储诸如包括在中央服务器200中的相应块的操作所需要的常量之类的信息。
[0045]中央RAM203是易失性存储器。中央RAM203不仅用作游戏处理程序的抽取区域,而且还用作用于暂时存储中间数据及类似数据的存储区域,这些数据在包括于中央服务器200中的相应块的操作过程中被输出。
[0046]中央记录媒体204是(例如)诸如HDD之类的记录装置,其可拆卸地连接到中央服务器200上。在这个实施例中,中央记录媒体204用作管理使用游戏的用户与客户端装置的数据库、管理游戏相关的多种类型的信息(这些信息是生成将要提供给已连接的客户端装置的游戏画面所需要的)的数据库,以及类似数据库。
[0047]中央通信单元205是包括在中央服务器200中的通信接口。中央通信单元205与通过网络400连接的渲染服务器100或客户端装置300进行数据通信。请注意,中央通信单元205根据通信单元113中的通信规范来转换数据格式。
[0048]<画面提供处理>
[0049]以下将参照图4所示的流程图来说明这个实施例的具有前述布置的中央服务器200的实际画面提供处理。当中央CPU201读出存储在(例如)中央R0M202中的对应的处理程序、将读出的程序抽取到中央RAM203上、并执行所抽取的程序时,可实施对应于该流程图的处理。
[0050]注意到,以下说明将在下面的假设条件下提出:该画面提供处理开始于(例如)各个客户端装置连接完成且向该客户端装置提供游戏所需要的准备处理完成时,并且为游戏的每一帧执行该画面提供处理。此外,以下说明将在下面的假设条件下提出:为简单起见,一个客户端装置300连接到中央服务器200。然而,本发明不仅限于这样的特定实施例。当和前述系统配置中一样,多个客户端装置300连接到中央服务器200时,可为相应客户端装置300执行该画面提供处理。
[0051]在步骤S401中,中央CPU201执行数据反映处理从而决定与将要提供给已连接的客户端装置300的游戏画面相关的渲染参数。数据反映处理用于反映在客户端装置上执行的输入(角色移动指令、相机移动指令、窗口显示指令等等)、渲染对象的状态变化以及类似信息,其中渲染对象的状态是由游戏处理所管理,接着数据反映处理指定将要提供给客户端装置的游戏画面的渲染内容。更确切地说,中央CPU201通过中央通信单元205接收在客户端装置300上执行的输入,并且更新用在前一帧游戏画面中的渲染参数。另一方面,渲染对象,其状态由游戏处理所管理,包括称为NPC (非玩家角色)的不作为任何用户操作目标的角色、诸如地形之类的背景对象,以及其类似物。渲染对象的状态根据经过的时间或用户操作目标角色的动作而改变。中央CPU201为前一帧更新与渲染对象相关的渲染参数,渲染对象的状态由游戏处理根据经过的时间以及在进行游戏处理时在客户端装置上执行的输入来管理。
[0052]在步骤S402中,中央CPU201从包括在渲染服务器100中并且能够执行渲染处理的GPU中决定用于渲染游戏画面的GPU。在这个实施例中,连接到中央服务器200上的渲染服务器100包括四个GPU,即,第一 GPU105、第二 GPU106、第三GPU107、和第四GPU108。中央CPU201决定包括在渲染服务器100中的四个GPU中的一个,以便生成将要提供给连接到中央服务器200上的每个客户端装置的游戏画面。用于渲染画面的GPU可从待选定的GPU中决定出,以便鉴于(例如)渲染对象的数目、所需的处理成本以及与同时发出的渲染请求对应的游戏画面的类似因素来分发负载。注意到,在这一步骤中,待选定的GPU根据渲染服务器100中的存储器检验结果而变化,稍后将说明这一点。
[0053]在步骤S403中,中央CPU201将渲染指令传输至在步骤S402中决定并且用于渲染游戏画面的GPU。更确切地说,中央CPU201将与当前帧的游戏画面相关的渲染参数以及渲染指令传送至中央通信单元205,这些渲染参数已在步骤S401中由游戏处理更新,并且中央CPU201控制中央通信单元205以将此些渲染参数传输至渲染服务器100。假设渲染指令包括指示用于渲染游戏画面的GPU的信息,以及客户端装置300的识别信息,游戏画面将被提供给该客户端装置。
[0054]在步骤S404中,中央CPU201确定是否从渲染服务器100接收将要提供给已连接的客户端装置300的游戏画面。更确切地说,中央CPU201检查中央通信单元205是否接收具有客户端装置300识别信息的游戏画面的数据,游戏画面将被提供给该客户端装置。假设在这个实施例中,由于对于游戏的每一帧都要将画面传输给客户端装置300,因此鉴于通信量的缩减,将要提供给客户端装置300的游戏画面是对应于经编码视频数据的一个帧的经编码图像数据。当中央通信单元205从渲染服务器100接收数据时,中央CPU201参考该信息的标头信息,来检查该数据是否是对应于将要提供给已连接的客户端装置300的游戏画面的经编码图像数据。如果中央CPU201确定接收到将要提供给已连接的客户端装置300的游戏画面,那么中央CPU201将使该过程继续进行到步骤S405 ;否则,中央CPU201重复这一步骤的过程。
[0055]在步骤S405中,中央CPU201将接收到的游戏画面传输至已连接的客户端装置300。更确切地说,中央CPU201将接收到的游戏画面传送至中央通信单元205,并且控制中央通信单元205以将游戏画面传输至已连接的客户端装置300。
[0056]在步骤S406中,中央CPU201对于第一 GPU105、第二 GPU106、第三GPU107、和第四GPU108中的任何一个,来确定GPU存储器的比特翻转错误被检测到的次数是否超过阈值。在这个实施例中,正如稍后将在画面生成处理中说明的,当各个GPU的GPU存储器中出现比特翻转错误时,渲染服务器100的CPUlOl向中央服务器200通知比特翻转错误的数目的信息以及引起该错误的GPU的识别信息。因此,中央CPU201在这一步骤中首先确定中央通信单元205是否从渲染服务器100接收了比特翻转错误数目的信息。如果确定已接收比特翻转错误数目的信息,那么中央CPU201进一步检查比特翻转错误数目是否超过阈值。假设阈值是一个预先设置的、确定GPU存储器可靠性是否下降所需的值,并且被存储在(例如)中央R0M202中。如果中央CPU201确定包括在渲染服务器100中的任一 GPU中的GPU存储器的比特翻转错误被检测到的次数超过阈值,那么中央CPU201将使该过程继续进行到步骤S407 ;否则,中央CPU201将结束这个画面提供处理。
[0057]在步骤S407中,中央CPU201将比特翻转错误的数目超过阈值的GPU排除在选择目标之外,对下一帧游戏画面渲染处理将被分配给所述选择目标。更确切地说,中央CPU201将逻辑信息与所述GPU的识别信息存储在中央R0M202中,该逻辑信息指示所述GPU被排除在选择目标之外,渲染将被分配给所述选择目标。当在步骤S402中选择游戏画面的渲染被分配到的GPU时,会参考此信息。
[0058]注意到,这个实施例的以下说明将在下面的假设条件下提出:中央CPU201通过检查比特翻转错误的数目是否超过阈值来判定GPU存储器的可靠性。然而,本发明不仅限于这样的特定实施例。中央CPU201可获取其中已经出现比特翻转错误的存储器地址分布的信息,并且可根据在预定地址范围内的比特翻转错误数目来评估GPU存储器的可靠性。
[0059]<画面生成处理>
[0060]以下将参照图5所示的流程图来详细说明根据这个实施例的在渲染服务器100中用于生成将提供给客户端装置的游戏画面(经编码图像数据)的画面生成处理。当CPUlOl读出储存在(例如)R0M102中的对应的处理程序、将读出的程序抽取到RAM103上、并执行所抽取的程序时,可实施对应于该流程图的处理。注意到,以下说明将在下面的假设条件下提出:该画面生成处理开始于(例如)CPU101判定通信单元113从中央服务器200接收游戏画面的渲染指令时。[0061]在步骤S501中,CPUlOl基于接收到的与游戏画面相关的渲染参数来渲染游戏画面。更确切地说,CPUlOl将由通信单元113接收的渲染指令以及渲染参数存储在RAM103中,这些渲染参数与渲染指令相关联并且与当前帧的游戏画面相关。然后,CPUlOl参考包括在渲染指令中并且指示用于渲染游戏画面的GPU的信息,并且控制由该信息指定的GPU(目标GPU)来渲染对应于连接到目标GPU的VRAM上的渲染参数的游戏画面。
[0062]在步骤S502中,CPUlOl控制目标GPU来对在步骤S501中在VRAM上渲染的游戏画面执行DCT (离散余弦变换)处理。更确切地说,目标GPU把游戏画面划分成各自具有预定数目的像素的块,并且对相应块执行DCT处理,由此将块转换成频域数据。转换到频域上的游戏画面被目标GPU量化,并且被写入目标GPU的GPU存储器中。此时,假设目标GPU将经量化数据写入GPU存储器中,与此同时将奇偶校验位(奇偶校验信息)附加到具有预定数据长度的每个比特序列上。注意到,这个实施例的以下说明将在下面的假设条件下提出:直接对游戏画面执行DCT处理。然而,如上所述,由于游戏画面是对应于经编码视频数据的一个帧的数据,因此可对从游戏画面生成的图像数据执行DCT处理。例如,当视频编码格式是MPEG格式时,目标GPU可在通过运动补偿精度从前一帧的游戏画面生成的图像数据与为当前帧所生成的游戏画面之间生成差值图像,并且可对该差值图像执行DCT处理。
[0063]在步骤S503中,CPUlOl对转换到频域上的游戏画面(经量化游戏画面)执行运行长度编码处理,从而生成最终将提供给客户端装置的游戏画面数据。此时,为了执行运行长度编码,CPUlOl从目标GPU的GPU存储器中读出经量化游戏画面,并将其存储在RAM103中。当比特翻转错误出现在GPU存储器中时,画面数据与存储在RAM103中的经量化游戏画面中的奇偶校验信息之间出现不一致性。
[0064]在另一方面,运行长度编码处理是通过检查连续数据的比特序列中的相同值的运行长度,而用于实现数据压缩。也就是说,在运行长度编码处理被应用于存储在RAM103中的经量化游戏画面时,CPUlOl可抓取(例如)奇偶校验位之间的数据序列中“I”的数量,原因是其指的是包括在预定数目的比特序列中的所有值。也就是说,在本发明中,CPUlOl使用在运行长度编码中的比特序列的布置的检查,来实现奇偶校验检查处理。
[0065]在这一步骤中,CPUlOl通过如上所述的运行长度编码处理,并且执行奇偶校验检查处理来检测与目标GPU的GPU存储器相关的比特翻转错误的出现,从而生成最终将提供的游戏画面的经编码数据。注意到,CPUlOl对与目标GPU的GPU存储器相关的比特翻转错误被检测到的次数进行计数。
[0066]在步骤S504中,CPUlOl将在步骤S503中生成的最终将提供的游戏画面的经编码数据,以及指示与目标GPU的GPU存储器相关的比特翻转错误被检测到的次数的信息,传送到通信单元113中,并且控制通信单元113来将其传输至中央服务器200。假设此时,传输最终将提供的游戏画面的经编码数据以及包括在渲染指令中的客户端装置300的识别信息,游戏画面将提供给该客户端装置300。此外,假设传输指示比特翻转错误被检测到的次数的信息以及GPU的识别信息,识别信息包括在渲染指令中并且用于渲染游戏画面。
[0067]以此方式,可使用编码处理来检测比特翻转错误的出现,而不用执行与GPU存储器相关联的任何专用检查程序。注意到,在这个实施例的以上说明中,附加有奇偶校验信息的经量化游戏画面被写入GPU存储器中。然而,要被写入GPU存储器中的数据不仅限于此。也就是说,在本发明的GPU存储器的错误检查处理中,只需要在对数据附加奇偶校验信息的同时将数据写入GPU存储器,紧接着应用运行长度编码。也就是说,本发明适用于若干方面,其中数据被应用于运行长度编码预处理,在对所应用的数据附加奇偶校验信息的同时将其写入GPU存储器,并且通过读出所述数据来执行运行长度编码。
[0068]注意到,这个实施例已经举例说明了 GPU存储器。然而,本发明并不仅限于GPU存储器,而且还适用于一般的存储器以作为所述存储器的错误检查方法。
[0069]这个实施例已经举例说明了包括多个GPU的渲染服务器。然而,本发明不仅限于这样的特定布置。例如,当多个各自具有一个GPU的渲染服务器连接到中央服务器时,中央服务器可将具有对应于比特翻转错误数目超过阈值的GPU的渲染服务器排除在那些用于渲染游戏画面的渲染服务器之外。或者,可将客户端装置300直接连接到渲染服务器100,而不布置任何中央服务器。在这种情况下,CPUlOl可检查比特翻转错误的数目是否超过阈值,并且可将超过阈值的GPU排除在用于渲染游戏画面的GPU的分配目标之外。
[0070]注意到,在上述实施例的说明中,当GPU存储器的比特翻转错误的数目超过阈值时,下一帧的游戏画面的渲染不会被分配给具有该GPU存储器的GPU。然而,GPU排除方法并不仅限于此。例如,比特翻转错误的数目超过阈值的次数可被进一步计数,并且当该次数变得不小于预定值时,可排除该GPU。或者,在服务器维护时间段中,可排除对应于比特翻转错误的数目超过阈值的GPU。
[0071]如上所述,这个实施例的编码设备可利用编码处理来执行高效的存储器检验。更确切地说,编码设备将附加有奇偶校验信息的数据写入将要被检验的存储器中,之后从该存储器中读出数据。编码设备接着通过对数据执行运行长度编码处理从而生成经编码数据。当编码设备是根据与所写入数据相关联的每个比特序列生成经编码数据时,比较该比特序列与所附加的奇偶校验信息,由此检测存储器的比特翻转错误。
[0072]以此方式,由于可在执行运行长度编码处理的同时检查存储器的可靠性,因此不用调度专用检查程序就可检测出可靠性差的存储器。此外,在前述实施例的渲染系统中,可实施高效自动容错。
[0073]其他实施例
[0074]尽管已经参考示例性实施例对本发明进行了说明,但了解到本发明并不仅限于所披露的示例性实施例。所附加权利要求书的范围应符合最广义的解释,以便涵盖所以这类修改以及等效的结构与功能。
[0075]本申请要求2011年11月7日提交的美国专利临时申请第61/556,554号以及2011年12月19日提交的日本专利申请第2011-277628号的权益,所述申请特此通过引用将其
全文结合在此。
【权利要求】
1.一种用于输出经编码图像数据的渲染服务器,其包括: 渲染构件,其用于使用GPU渲染图像; 写入构件,其用于将所述渲染构件所渲染的所述图像写入包括在所述GPU内的GPU存储器;以及 编码构件,其用于从所述GPU存储器中读出所述写入构件写入的所述图像,并且通过对所述图像应用运行长度编码处理从而生成所述经编码图像数据, 其中所述写入构件在将奇偶校验信息附加到所述图像的情况下将所述图像写入所述GPU存储器;并且 当所述编码构件是根据从所述GPU存储器中读出的所述图像的比特序列来生成所述经编码图像数据时,所述编码构件通过比较所述比特序列与所述写入构件所附加的所述奇偶校验信息,从而检测比特翻转错误。
2.根据权利要求1所述的服务器,其中所述写入构件在对所述图像应用编码预处理的情况下将所述渲染构件渲染的所述图像写入所述GPU存储器中。
3.根据权利要求2所述的服务器,其中所述编码预处理包括离散余弦变换处理。
4.根据权利要求1至3中任一权利要求所述的服务器,其中所述经编码图像数据是与经编码视频数据的一个帧相对应的数据。
5.根据权利要求1至4中任一权利要求所述的服务器,其进一步包括: 计数构件,其用于对所述编码构件检测出的比特翻转错误的数目进行计数;以及通知构件,其用于将由所述计数构`件计数的所检测出的比特翻转错误的所述数目,以及指示着在其中检测出了所述比特翻转错误的GPU的信息通知给外部设备。
6.一种中央服务器,其连接有根据权利要求5所述的一个或多个渲染服务器,所述中央服务器包括: 检测构件,其用于检测客户端装置的连接; 分配构件,其用于将经编码图像数据的生成分配给包括在所述一个或多个渲染服务器中的多个GPU中的任一 GPU,所述经编码图像数据将被提供给所述检测构件检测出的所述客户端装置;以及 传输构件,其用于从所述渲染服务器接收所述经编码图像数据,并且将所述经编码图像数据传输至所述客户端装置,所述渲染服务器包括被所述分配构件分配给已连接的所述客户端装置的所述GPU, 其中所述分配构件从包括所述GPU的所述渲染服务器接收与所述GPU相关联的检测出的比特翻转错误的数目,所述GPU被分配有所述经编码图像数据的生成;并且 当所述次数超过阈值时,所述分配构件将所述GPU排除在被分配有所述经编码图像数据的生成的所述多个GPU之外。
7.一种编码设备,其包括: 写入构件,用于将附加有奇偶校验信息的数据写入存储器;以及编码构件,其用于从所述存储器中读出所述写入构件写入的所述数据,以及通过对所述数据应用运行长度编码处理从而生成经编码数据, 其中当所述编码构件是根据所述写入数据的比特序列来生成所述经编码数据时,所述编码构件通过比较所述比特序列与所附加的所述奇偶校验信息,从而检测比特翻转错误。
8.—种对渲染服务器的控制方法,所述渲染服务器用于输出经编码图像数据,所述控制方法包括: 渲染步骤,其中所述渲染服务器的渲染构件使用GPU渲染图像; 写入步骤,其中所述渲染服务器的写入构件将在所述渲染步骤中渲染的所述图像写入包括在所述GPU中的GPU存储器;以及 编码步骤,其中所述渲染服务器的编码构件从所述GPU存储器中读出在所述写入步骤中写入的所述图像,并且通过对所述图像应用运行长度编码处理从而生成所述经编码图像数据, 其中在所述写入步骤中,所述写入构件在将奇偶校验信息附加到所述图像的情况下将所述图像写入所述GPU存储器;并且 当所述编码构件是根据在所述编码步骤中从所述GPU存储器中读出的所述图像的比特序列来生成所述经编码图像数据时,所述编码构件通过比较所述比特序列与在所述写入步骤中所附加的所述奇偶校验信息,从而检测比特翻转错误。
9.一种对中央服务器的控制方法,所述中央服务器连接有根据权利要求5所述的一个或多个渲染服务器,所述控制方法包括: 检测步骤,其中所述中央服务器的检测构件检测客户端装置的连接; 分配步骤,其中所述中央服务器的分配构件将经编码图像数据的生成分配给包括在所述一个或多个渲染服务器中的多个GPU中的任一 GPU,所述经编码图像数据将被提供给在所述检测步骤中检测出的所述客户端装置;以及 传输步骤,其中 所述中央服务器的传输构件从所述渲染服务器接收所述经编码图像数据,并且将所述经编码图像数据传输至所述客户端装置,所述渲染服务器包括在所述分配步骤中分配给已连接的所述客户端装置的所述GPU, 其中在所述分配步骤中,所述分配构件从包括所述GPU的所述渲染服务器接收与所述GPU相关联的检测出的比特翻转错误的数目,所述GPU被分配有所述经编码图像数据的生成,并且当所述次数超过阈值时,所述分配构件将所述GPU排除在被分配有所述经编码图像数据的生成的所述多个GPU之外。
10.一种编码方法,其包括: 写入步骤,其中写入构件将附加有奇偶校验信息的数据写入存储器;以及编码步骤,其中编码构件从所述存储器中读出在所述写入步骤中写入的所述数据,并且通过对所述数据应用运行长度编码处理从而生成经编码数据, 其中在所述编码步骤中,当所述编码构件是根据所述写入数据的比特序列来生成所述经编码数据时,所述编码构件通过比较所述比特序列与所附加的所述奇偶校验信息,从而检测比特翻转错误。
11.一种用于控制计算机使之起到根据权利要求1至5中任一权利要求所述的渲染服务器的相应构件的作用的程序。
12.—种计算机可读记录媒体,其记录用于控制计算机以起到根据权利要求1至5中任一权利要求所述的渲染服务器的相应构件的作用的程序。
13.一种用于控制计算机以起到根据权利要求6所述的中央服务器的相应构件的作用的程序。
14.一种计算机可读记录媒体,其记录用于控制计算机以起到根据权利要求6所述的中央服务器的相应构件的作用的程序。
15.一种用于控制计算机以起到根据权利要求7所述的编码设备的相应构件的作用的程序。
16.一种计算机可读记录媒体,其记录用于控制计算机以起到根据权利要求7所述的编码设备的相应构件的作用的程`序。
【文档编号】G06F12/16GK103874989SQ201280050441
【公开日】2014年6月18日 申请日期:2012年10月31日 优先权日:2011年11月7日
【发明者】岩崎哲史 申请人:史克威尔·艾尼克斯控股公司