信息处理装置、用于控制信息处理装置的方法、和程序的制作方法

文档序号:6426601阅读:194来源:国知局
专利名称:信息处理装置、用于控制信息处理装置的方法、和程序的制作方法
技术领域
本发明涉及被配置来处理图像的信息处理装置,用于控制该信息处理装置的方法,和程序。
背景技术
近年来,通用计算机硬件的增强性能和高功能性使得以前只有专用硬件才能够实现的图像处理,通过使用通用计算机硬件即可实现。在计算机硬件中,具体而言,CPU和用作主存储器的存储器展示出极高的速度,并且因此,可以在经济的令人满意的时间段中执行针对大容量图像数据的各种复杂特效处理。通过引入GPU(图形处理单元)可以以更高的速度来执行图像处理,GPU是被设计来专用于并行算术处理的算术处理设备。通过GPU进行的并行算术处理特别是在部分处理的算术结果不影响整个处理的处理(诸如图像处理)中展示出增强的性能。GPU的并行算术处理是通过包括如下处理的机制来实现的向多个算术单元发出相同指令并且由各个算术单元独立地执行相同指令。相比较而言,在CPU中,不同的指令被发出给多个算术单元并且算术单元分别执行不同的指令。因此,CPU适合顺序处理。此外,近年来,已知了 GPGPU(图形处理单元上的通用计算)的技术领域,其使得 GPU不仅能够执行图像处理,还能够用于其它数值处理。日本专利申请早期公开第2008-513890号(第0027段)(以下称为专利文件1) 记载了 CPU和GPU处理一个工作单元的情况中的负荷分散。具体而言,GPU并行地计算多个光线与在至少一个图形对象处交界的一组表面的相交,而CPU计算这多个光线中的至少一些光线与图形对象的相交。然而,专利文件1没有记载图像处理被分散到CPU和GPU来被执行,没有记载考虑到CPU和GPU的负荷的状态等来选择最优图像处理主体。如上所述,近年来,CPU的高速事实上使能图像处理中足够的响应。即,由CPU和 GPU分担和执行过去只依赖于GPU的图像处理,作为结果,增大了以比只由GPU执行时更高的速度来执行图像处理的可能性。此外,即使CPU和GPU从规格的角度以最高速度分担执行图像处理,但根据CPU和GPU的负荷状态以及它们的存储器的使用状态,GPU本身就可以以比CPU和GPU分担图像处理的情况中更高的速度来执行图像处理。如上所述,从速度的角度来看,由CPU和GPU分担执行图像处理并不总是最优的。

发明内容
根据上述情形,希望提供能够灵活地使用CPU和GPU并且高效地执行图像处理的信息处理装置、用于控制信息处理装置的方法以及程序。根据本公开一个实施例,提供了一种信息处理装置,该装置包括第一处理单元, 该第一处理单元能够处理图像;第二处理单元,该第二处理单元能够针对分割图像的每个单位并行地处理图像;以及控制器部件,该控制器部件被配置为进行控制以选择第一处理单元、第二处理单元或第一处理单元和第二处理单元两者来作为处理图像的一个或多个主体,在第一处理单元和第二处理单元两者被选择的情况下,将图像分割成第一区域和第二区域,并且将通过分割获得的第一区域的图像的处理和通过分割获得的第二区域的图像的处理分别指派给第一处理单元和第二处理单元来执行。根据本公开的实施例,第一处理单元、第二处理单元或第一处理单元和第二处理单元两者被选择作为处理图像的一个或多个主体。因此,根据各个处理单元的负荷的状态、 图像处理条件等,图像处理可以被高效地执行。控制器部件被配置为在处理整个图像的情况中,选择第一处理单元和第二处理单元两者来作为处理图像的多个主体。有关图像处理的负荷与将要处理的像素数,即图像的面积,成比例。因此,在处理整个图像的情况中,通过利用第一处理单元和第二处理单元两者,图像处理可以以更高的速度被执行。控制器部件被配置为确定第一区域的面积和第二区域的面积,使得第一处理单元处理第一区域所用的第一处理时间等于或近似等于第二处理单元处理第二区域所用的第二处理时间。因此,各个区域的处理在相同或近似相同的定时被完成。结果,图像处理可以以最高速度被完成。此外,根据本公开实施例的信息处理装置还可以包括第一存储器,第一存储器用于由第一处理单元对图像的处理;以及第二存储器,第二存储器用于由第二处理单元对图像的处理,其中控制器部件被配置为计算在假定第一区域的图像的处理和第二区域的图像的处理被分别指派给第一处理单元和第二处理单元执行的情形下的第二存储器的预测使用量,并且在计算出的第二存储器的预测使用量达到阈值的情况中,修改第一区域的所确定面积和第二区域的所确定面积,以使得预测使用量落在第二存储器中允许第二处理单元使用的容量内。因此,在考虑了用于第二处理单元对图像的处理的第二存储器的使用状态时,图像的处理优选地被指派给相应处理单元执行。控制器部件可被配置为在第二存储器的预测使用量没有超过第二存储器的容量的情况中,获得第一处理单元的利用率,并且在利用率没行达到阈值的情况中,将第一区域的图像的处理和第二区域的图像的处理分别指派给被选作主体的第一处理单元和第二处理单元来执行。因此,在考虑了第一处理单元的利用率时,图像的处理优选地被指派给相应处理单元执行。控制器部件可被配置为在处理图像的一部分的情况下,计算在假定由第一处理单元处理图像的一部分的情形下的预测处理时间和在假定由第二处理单元处理图像的一部分的情形下的预测处理时间,并且选择预测处理时间较小的处理单元来作为处理图像的一部分的主体。控制器部件可以被配置为在第二处理单元被选作主体的情况中,计算在假定由第二处理单元处理图像的一部分的情形下的第二存储器的预测使用量,并且在第二存储器的计算预测使用量没有达到阈值的情况中,使得第二处理单元处理图像的一部分。因此,在考虑了用于第二处理单元对图像的处理的第二存储器的使用状态时,第二处理单元可以处理该图像的一部分。此外,控制器部件可以被配置为在第一处理单元被选作主体的情况中,获得第一处理单元的利用率,以及在利用率没有达到阈值的情况中,使得第一处理单元处理图像的一部分。因此,在考虑了第一处理单元的利用率时,第一处理单元可以处理该图像的该部分。根据本公开另一实施例,提供一种用于控制信息处理装置的方法,信息处理装置包括能够处理图像的第一处理单元和能够针对分割图像的每个单位并行地处理图像的第二处理单元,该方法包括由控制器部件选择第一处理单元、第二处理单元或第一处理单元和第二处理单元两者来作为处理图像的一个或多个主体,在第一处理单元和第二处理单元两者都被选择的情况中,将图像分割成第一区域和第二区域,并且将通过分割获得的第一区域的图像的处理和通过分割获得的第二区域的图像的处理分别指派给第一处理单元和第二处理单元来执行。根据本公开另一实施例,提供了一种使得计算机动作的程序,该计算机包括能够处理图像的第一处理单元和能够针对分割图像的每个单位并行地处理图像的第二处理单元,该程序使得计算机用作控制器部件,控制器部件被配置为进行控制以选择第一处理单元、第二处理单元或第一处理单元和第二处理单元两者来作为处理图像的一个或多个主体,在第一处理单元和第二处理单元两者被选择的情况下,将图像分割成第一区域和第二区域,并且将通过分割获得的第一区域的图像的处理和通过分割获得的第二区域的图像的处理分别指派给第一处理单元和第二处理单元来执行。如上所述,根据本公开的实施例,通过灵活地使用CPU和GPU,图像处理被高效地执行。根据下面对如附图所示的本公开的最佳模式实施例的详细描述,本公开的这些和其它目的、特征和优点将变得更显而易见。


图1是根据本公开一个实施例的信息处理装置的结构的示图;图2是示出图1的信息处理装置中的图像处理程序的执行模式的示图;图3是示出特效程序集合的结构的示图;图4是示出GPU程序的动作的示例的示图;图5是说明由CPU/GPU控制程序进行的图像的区域的分割的示图;图6是示出CPU/GPU控制程序的控制的示图;图7是示出特效程序选择激活部件的结构的框图;图8是示出特效程序选择激活部件的动作的过程的流程图;图9是示出根据本公开第二实施例的特效程序选择激活部件的结构的框图;以及图10是示出图9的特效程序选择激活部件的动作的过程的流程图。
具体实施例方式以下,将参考附图来描述本公开的实施例。(第一实施例)(信息处理装置)本实施例涉及在装载了 CPU(中央处理单元)和GPU(图形处理单元)的计算机中执行图像处理程序从而例如对图像数据执行诸如特效处理之类的图像处理的信息处理装置。
图1是示出根据本公开一个实施例的信息处理装置的结构的示图。如图1中所示,信息处理装置10包括CPU单元11、GPU单元12、存储设备13、显示接口单元14、操作接口单元15和将它们彼此相连的总线17。CPU单元11包括CPU 111(第一处理单元)和存储器(以下称为“CPU存储器112”) (第一存储器),并且执行存储在CPU存储器112中的用于CPU的图像处理程序,从而执行 CPU存储器112中有关各种算术处理的指令。CPU单元11解释用户从连接到操作接口单元 15的操作输入设备18输入的命令,从而将它们反映到图像处理程序的动作中。此外,CPU 单元11可以基于用户等的命令来从存储设备13读取图像数据,将图像数据存储在设置在 CPU存储器112中的图像缓冲器中,并且对图像数据执行诸如特效之类的处理。图像缓冲器中的图像数据被提供给显示接口单元14,经历描绘处理从而成为以像素为单位的可视数据,并被输出给显示设备19。此外,CPU单元11可以基于用户等的命令来将编辑后的图像数据写入存储设备13中的图像缓冲器中。GPU单元12包括GPU 121 (第二处理单元)和存储器(以下称为“GPU存储器122”) (第二存储器),并且可以执行存储在GPU存储器122中的用于GPU的图像处理程序,从而并行地执行GPU存储器122中的图像处理。在CPU单元11的控制下,GPU单元12可以将从存储设备13读出的图像数据存储在被设置在GPU存储器122中的图像缓冲器中,并且从而针对诸如分割图像等的线程之类的每个单位来对图像数据并行地执行诸如特效之类的处理。图像缓冲器中的图像数据被提供给显示接口单元14,经历描绘处理从而成为以像素为单位的可见数据,并且被输出给显示设备19。此外,GPU单元12可以例如基于CPU单元 11等的命令来将编辑后的图像数据写入存储设备13中的图像缓冲器中。显示接口单元14是与显示设备19的接口,从CPU单元11和/或GPU单元12接收图像数据来执行描绘处理,并且将描绘数据提供给显示设备19。显示接口单元14的处理可以由设置在显示接口单元14中的专用GPU(未示出)执行,或者可以由例如以上提到的 GPU 121 执行。操作接口单元15是与操作输入设备18的接口,将由用户从操作输入设备18输入的数据和命令提供给CPU 111,等等。存储设备13存储未被编辑的和编辑后的图像数据。此外,存储设备13还存储图像处理程序。存储在存储设备13中的图像处理程序包括用于CPU 111的程序和用于GPU 121的程序。用于CPU 111的程序从存储设备13被装载到CPU单元11的CPU存储器112 中,并且由CPU 111执行。此外,用于GPU 121的程序从存储设备13被装载到GPU单元12 的GPU存储器122中,并且由GPU 121执行。(图像处理程序的结构和执行模式)图2是示出本实施例的信息处理装置10中的图像处理程序的执行模式的示图。如图2中所示,图像处理程序的执行模式包括I/O程序21以及连接到I/O程序21的一个或多个特效插件程序22。这里,这一个或多个特效插件程序22分别对应于用户任意选择的种类的特效。I/O程序21是控制图像数据的输入/输出的程序。更具体而言,I/O程序21从图 1的存储设备13读出图像数据,并且将其转送到相连接的特效插件程序22。I/O程序21从特效插件程序22接收经历了特效处理的图像数据,并且将其写回到存储设备13或将其通过显示接口单元14输出至显示设备19。分别对应于用户任意选择的种类的特效的一个或多个特效插件程序22被串联连接到I/O程序21。具体而言,最上游的特效插件程序22从I/O程序21接收图像数据来执行特效处理,并且将结果转送至位于其下游侧的一级的特效插件程序22。除最上游的特效插入程序和最下游的特效插入程序以外的特效插件程序22从位于其上游侧一级的特效插件程序22接收图像数据来执行特效处理,并且将结果转送给位于其下游侧一级的特效插件程序22。最下游的特效插件程序22从位于其上游侧一级的特效插件程序22接收图像数据来执行特效处理,并且将结果转送至I/O程序21。如上所述,根据本实施例,图像数据在特效插件程序22之间被直接地转送。可替换地,图像数据可以经由I/O程序21在邻接的特效插件程序22之间被转送。同时,存储设备13存储分别用于各种特效的特效程序集合M。如图3中所示,每个特效程序集合M包括使得CPU 111对图像数据执行特效处理的CPU程序M1,使得GPU 121执行特效处理的GPU程序M2,以及进行控制来将特效处理的执行指派给CPU 111和 GPU 121来执行处理的CPU/GPU控制程序对3。在不用将它们相互区分开的情形下,CPU程序Ml、GPU程序242和CPU/GPU控制程序M3中的每一个都称为“特效程序”。CPU程序241是使得CPU 111对图像数据执行特效处理的程序。更具特而言,CPU 程序241包括这样的过程,例如(1)从I/O程序21或所连接的上游侧一级的特效插件程序22接收CPU存储器112 中的图像缓冲器,( 使得CPU 111执行特效处理,(3)将特效处理的结果写入图像缓冲器中,以及(4)将图像缓冲器转送至所连接的下游侧一级的特效插件程序22或将其返回给 I/O程序21。GPU程序242是使得GPU 121对图像数据执行特效处理的程序。更具体而言,GPU 程序242包括这样的过程,例如(1)将来自CPU存储器112的图像数据存储在GPU存储器122中或从所连接的上游侧一级的特效插件程序22接收GPU存储器122中的图像缓冲器,(2)使得GPU 121执行特效处理,(3)将特效处理的结果写入图像缓冲器中,以及(4)将图像缓冲器转送给相连接的上游侧一级的特效插件程序22,或将GPU存储器122中的图像数据转送至CPU存储器112。此外,GPU程序242可以不被设计为仅通过GPU 121来完成特效处理,而是可以如图4中所示,被设计为补充地请求CPU 111来执行部分计算并将计算结果从CPU存储器112 存储到GPU存储器122中。其具体示例包括滤波处理,诸如散焦(defocusing)。GPU 121 在简单的乘加运算被大量执行的处理中施展高速性能,而在诸如条件分支之类的顺序处理中不能施展高速性能。例如,散焦处理包括生成用于散焦的滤波器和在图像上卷积滤波器这两级处理。生成用于散焦的滤波器需要少量(最多大约几百抽头(tap))的乘加运算,但是需要许多依赖于诸如虹膜(iris)的形状和角度之类的参数的条件分支。在这样的散焦处理中,在CPU 111生成滤波器并且GPU 121在图像上卷积滤波器的情况中,GPU 121施展高速性能并且可以提高处理效率。同时,例如,由于无条件分支的滤波处理(诸如对像素执行均勻加权的移动平均滤波处理)不需要滤波器生成,所以GPU121通过自身完成处理。如上所述,GPU程序242可以被设计为使得GPU121通过自身完成处理,或GPU 121被请求执行顺序计算处理的一部分。CPU/GPU控制程序243是将用户选择的特效处理的执行指派给CPUl 11和GPU 121 的特效程序。例如,如图5和图6中所示,CPU/GPU控制程序243将图像分割成两个区域, 并且将有关区域的信息分别提供给CPU程序241和GPU程序M2,以使得针对分割的区域的计算分别被指派给CPU 111和GPU 121。此外,CPU/GPU控制程序M3同步CPU 111和GPU 121的相应处理结果并且将它们进行耦合来生成用于全画面的处理结果。再参考图2,特效程序选择激活部件23 (控制器部件)是这样的程序,其使得CPU ill根据预定算法进行作用来从与用户所选择的种类的特效相对应的特效程序集合M中调用至少一个特效程序,并且将它们作为以上提到的特效插件程序22连接到I/O程序21。S卩,在图2的图像处理程序的执行模式中,首先,I/O程序21从存储设备13读出由用户选择的图像数据。接着,特效程序选择激活部件23根据预定算法从与由用户选择的特效相对应的特效程序集合M中调用至少一个特效程序,并且将它们作为特效插件程序22 连接到I/O程序21。因此,连接到I/O程序21的一个或多个特效插件程序22对图像数据执行特效处理。经历了特效处理的图像数据被I/O程序21输出给显示接口单元14,并且被显示在显示设备19上作为可视图像。此外,I/O程序21根据用户的命令将经历了特效处理的图像数据写回到存储设备13中。(特效程序选择激活部件23)接着,将详细描述特效程序选择激活部件23。图7是示出特效程序选择激活部件23的结构的框图。如图7中所示,特效程序选择激活部件23包括全画面处理判定部件231、处理面积计算部件232、CPU处理时间预测部件233、GPU处理时间预测部件234、CPU处理时间保存部件235、GPU处理时间保存部件236、处理面积分配计算部件237、程序确定部件238、负荷确定部件239、负荷信息更新部件239A和程序读出部件239B。全画面处理判定部件231,基于由用户选择的特效的种类、指定处理目标区域的信息的有无等,来判断特效处理是针对图像数据的全部像素的处理还是针对其一部分的处理。处理面积计算部件232计算将要经历特效的处理区域的面积(=处理像素数)。CPU处理时间保存部件235针对多种特效保存用于一个像素的CPU处理时间段 (先前通过试验测得)。GPU处理时间保存部件236针对多种特效保存用于一个像素的GPU处理时间段 (先前通过试验测得)。CPU处理时间预测部件233在对部分图像数据执行特效处理的情况中被使用。CPU 处理时间预测部件233,通过使用由CPU处理时间保存部件235保存的CPU处理时间,计算 CPU 111执行特效处理所必需的时间来作为“CPU预测处理时间”。GPU处理时间预测部件234在对部分图像数据执行特效处理的情况中被使用。GPU 处理时间预测部件234,通过使用由GPU处理时间保存部件236保存的GPU处理时间,计算GPU 121执行特效处理所必需的时间来作为“GPU预测处理时间”。程序确定部件238基于由CPU处理时间预测部件233计算的CPU预测处理时间和由GPU处理时间预测部件234计算的GPU预测处理时间,确定特效程序集合M中的CPU程序241和GPU程序M2中的一者作为连接到I/O程序21的候选。此外,程序确定部件238 在全画面处理判定部件231判定针对图像数据的全部像素进行特效处理的情况下,确定特效程序集合M中的相应特效程序作为连接到I/O程序21的候选。处理面积分配计算部件237在特效程序集合M被确定为连接到I/O程序21的候选的情况中被使用。处理面积分配计算部件237在对一条图像数据的特效处理被特效程序集合M中的CPU/GPU控制程序243指派给CPU 111和GPU 121来执行的情况下,计算各个处理面积的最优比率,并且将有关信息通知给CPU/GPU控制程序M3。负荷信息更新部件239A基于特效程序与I/O程序21的连接状态来管理作为负荷信息的CPU 111和GPU 121的利用率以及GPU存储器122的使用量。负荷确定部件239通过使用由负荷信息更新部件239A管理的负荷信息,来预测在假定特效程序被连接的情形下的有关CPU单元11和GPU单元12的每个的负荷信息。此外, 负荷确定部件239基于预测结果,请求程序确定部件238再次检查连接候选的选择结果,或者将连接候选的选择结果按原样通知给程序读出部件239B。程序读出部件239B基于从负荷确定部件239提供的有关连接候选的信息,从存储设备13读出与由用户选择的种类的特效相对应的特效程序集合M中的至少部分程序,并且将程序作为特效插件程序22连接到I/O程序21。(特效程序选择激活部件23的动作)接着,将描述特效程序选择激活部件23的动作。图8是示出特效程序选择激活部件23的动作的过程的流程图。注意,将按以下顺序描述动作。1.确定特效程序作为连接候选时的动作2.在GPU程序242被选作连接候选的情况中的动作3.在CPU程序241被确定为连接候选之后的动作4.在特效程序集合M被确定为连接候选的情况中的动作(1、确定特效程序作为连接候选时的动作)首先,将描述在确定特效程序作为连接到I/O程序21的候选时的动作。全画面处理判定部件231判定用户所选择的特效是针对图像的全部像素的处理还是针对图像的部分的处理(步骤S101)。这里,将描述在特效被应用于图像的一部分的情况之后的动作(步骤S101,否)。 此情况中,CPU 111和GPU 121中每一个的处理时间如下这样被预测。首先,处理面积计算部件232计算处理面积(=处理像素数)(步骤S102)。接着,CPU处理时间预测部件233,基于由CPU处理时间保存部件235保存的CPU 处理时间和在步骤S102中计算出的处理像素数并且通过使用以下表达式(1),来计算CPU 111执行特效处理所必需的时间作为“CPU预测处理时间”(步骤S103)。CPU预测处理时间=(用于一个像素的CPU处理时间)X (处理像素数)……(1)接着,GPU处理时间预测部件234,基于由GPU处理时间保存部件236保存的GPU处理时间和在步骤S102中计算出的处理像素数并且通过使用以下表达式O),来计算GPU 121执行特效处理所必需的时间作为“GPU预测处理时间”(步骤S104)。GPU预测处理时间=(CPU和GPU之间的转送时间)+ (用于一个像素的GPU处理时间X处理像素数)……O)由CPU处理时间保存部件235和GPU处理时间保存部件236中的每一个保存的用于一个像素的处理时间是预先针对所有种类的特效通过试验测得并被存储的信息。此外, 用于一个像素的处理时间可以通过如下方式获得将用于一个像素的处理分割成算术指令 (包括加减乘除的4种算术运算,装载/存储,条件分支指令,移位运算和逻辑运算),并且基于指令的数目以及CPU 111和GPU 121的运算频率的数目来进行近似计算。此外,关于表达式⑵中的“CPU和GPU之间的转送时间”,针对将被处理的所有图像的大小和格式的 "CPU和GPU之间的转送时间”可以被预先测得并被存储,并且结果可被用来计算GPU预测处理时间。此外,“CPU和GPU之间的转送时间”也可以基于CPU和GPU之间的总线17的带宽以及图像的数据量来计算。注意,在实际的图像处理计算中,在精度方面,除了 “用于一个像素的算术时间X 处理像素数”以外,还存在“用于递增像素的算术时间”、“用于确定将被处理的像素和不被处理的像素的条件分支的算术时间”等等。然而,由于如上所述那样计算出的CPU预测处理时间和GPU预测处理时间在占用算术时间的比率方面是支配性的,所以CPU预测处理时间和GPU预测处理时间可能是近似值。接着,程序确定部件238,基于CPU预测处理时间和GPU预测处理时间,来确定CPU 程序Ml或GPU程序242作为连接候选。具体而言,程序确定部件238将预测处理时间较小的特效程序确定为连接候选。例如,在GPU预测处理时间小于CPU预测处理时间的情况中 (步骤S105,是),程序确定部件238将GPU程序242确定为连接候选(步骤S106)。相比较而言,在GPU预测处理时间等于或长于CPU预测处理时间的情况中(步骤S105中,否), 程序确定部件238将CPU程序241确定为连接候选(步骤Sl 12)。同时,GPU预测处理时间小于CPU预测处理时间的情况的示例包括例如对占据图像的绝大部分的区域均勻地应用数百抽头的乘加运算的特效处理。这是因为GPU 121能够设置用于每个像素的线程并且并行执行处理。相比较而言,在对作为图像的一小部分的区域应用特效的情况中,GPU 121可能不能充分施展其特性。此外,实际上,GPU 121的处理时间不仅包括算术时间还包括图像数据在CPU和GPU之间的转送时间。因此,例如,在GPU 121对具有相对大的尺寸(诸如4096 X 2160(像素))的图像的一小部分执行算术量小的处理(诸如色彩变换)的情况中,图像数据的转送时间占据整个处理时间的比率增大,从而处理可能消耗比CPU 111执行特效处理的情况更多的时间。回到动作的描述,已经描述了直到从CPU程序241和GPU程序M2中确定作为连接候选的特效程序的动作。然而,此时,特效程序实际上还没有作为特效插件程序22被连接到I/O程序21。此后,基于假定被确定为连接候选的特效程序被连接到I/O程序21情形下的CPU单元11和GPU单元12上的负荷的状态,负荷确定部件239判定特效程序的连接是否被允许。接着,将描述此动作。(2、在GPU程序242被选作连接候选的情况中的动作)首先,将描述在步骤S106中GPU程序242被选作连接候选的情况。
负荷确定部件239计算在假定GPU程序242被连接到I/O程序21的情形下的GPU 存储器122的预测使用量(以下,称为“GPU存储器预测使用量”)。GPU存储器预测使用量通过使用例如以下表达式C3)被计算出(步骤S107)。GPU存储器预测使用量=(用于已连接特效的存储器总量)+ (用于附加特效的图像存储器的数目)X (图像存储器大小)……(3)负荷确定部件239判断所获得的GPU存储器预测使用量是否达到预定阈值(步骤 S108)。这里,GPU存储器预测使用量的阈值是用来确定GPU存储器122的耗竭状态的预定值。在GPU存储器预测使用量没有达到预定阈值的情况中(步骤S108,是),负荷确定部件239请求程序读出部件239B读出被程序确定部件238确定为连接候选的GPU程序 242 0接收到该请求时,程序读出部件239B请求负荷信息更新部件239A更新由于GPU程序 242的添加引起的负荷信息。响应于该请求,负荷信息更新部件239A更新有关GPU存储器 122的负荷信息(使用量)(步骤S109)。此后,程序读出部件239B从存储设备13读出被程序确定部件238确定为连接候选的GPU程序M2,并且将GPU程序242作为特效插件程序 22连接到I/O程序21 (步骤Sl 10)。此外,在步骤S108的判定中GPU存储器预测使用量达到预定阈值的情况中(步骤S108,否),负荷确定部件239将作为连接候选的特效程序从GPU程序242改为CPU程序 Ml (在步骤Slll中为否的情况中)。作为随后的动作,考虑在假定连接候选被改为CPU程序Ml的情形下的CPU 111的利用率,负荷确定部件239判断CPU程序Ml的连接是否被允许。注意,由于此动作的细节与在步骤S112中CPU程序241被选作连接候选的情况之后的动作类似,因此,稍后再进行描述。此外,在GPU存储器预测使用量等于或大于预定阈值 (步骤S108,否)并且已经确定CPU程序Ml的连接不被允许(步骤S111,是)的情况中, 负荷确定部件239将作为连接候选的特效程序从GPU程序242改为特效程序集合M。由于随后的动作与在步骤S116中特效程序集合M被选作连接候选的情况之后的动作(稍后描述)类似,所以将在稍后进行描述。(3、在CPU程序241被确定为连接候选之后的动作)接着,将描述在步骤S112中CPU程序241被确定为连接候选的情况。负荷确定部件239获得CPU 111的当前利用率(步骤S113)。CPUlll的利用率可以通过使用例如被实现在信息处理装置中的OS (操作系统)的CPU利用率监控功能等来获得。负荷确定部件239判断CPU 111的利用率是否达到预定阈值(步骤S114)。CPU利用率的阈值是考虑了信息处理装置的整体动作的效率、稳定性等的基于设计的预定值。在 CPU 111的利用率没有达到预定阈值的情况中(步骤S114,是),负荷确定部件239请求程序读出部件239B读出被程序确定部件238确定为连接候选的CPU程序Ml。接收到该请求,程序读出部件239B从存储设备13读出被程序确定部件238确定为连接候选的CPU程序M1,并且将CPU程序241作为特效插件程序22连接到I/O程序21 (步骤S110)。在CPU 111的利用率达到预定阈值(步骤S114,否)并且已经确定GPU程序242 的连接不被允许(步骤S115,是)的情况中,负荷确定部件239向图形用户界面部件(未示出)通知用于告知特效程序的添加不被允许的特效添加不被允许代码(步骤S124)。图形用户界面部件是这样的程序,其接受用户通过显示设备19 (图1)的显示进行的作为处理目标的图像数据的选择、应用于图像数据的特效的选择、各种参数的输入等,并将对它们的答复返回给用户,等等。接收到来自负荷确定部件239的特效添加不被允许代码,图形用户界面部件通过显示设备19(图1)的画面向用户通知用户选择的特效的添加不被允许。此外, 在此情况中,负荷确定部件239要求程序读出部件239B不要发出读出特效程序的请求,从而特效程序不被新连接到I/O程序21,并且处理完成。此外,在步骤S114的判定中CPU 111的利用率达到预定阈值(步骤S114,否)并且未确定GPU程序M2的连接不被允许(步骤S115,否)的情况中,处理继续到步骤S106, 并且连接候选从CPU程序241被改变为GPU程序M2。随后的动作如上所述。(4、在特效程序集合M被确定为连接候选的情况中的动作)接着,将描述全画面处理判定部件231在步骤SlOl中判定特效处理被应用于图像的所有像素的情况(步骤S101,是)。在此情况中,全画面处理判定部件231指示程序确定部件238将与用户所选择的特效相对应的特效程序集合M (CPU程序Ml、GPU程序242和 CPU/GPU控制程序对幻确定为连接候选(步骤Sl 16)。接着,全画面处理判定部件231激活处理面积分配计算部件237。处理面积分配计算部件237分别向CPU 111和GPU 121分配处理面积,使得CPU 111和GPU 121分担要执行的特效处理(步骤S117)。具体而言,处理面积如下这样被分配。在以下描述中,分配给 CPU 111的处理面积称为“CPU处理面积”,并且分配给GPU 121的处理面积称为“GPU处理而积”。处理面积分配计算部件237请求CPU处理时间预测部件233和GPU处理时间预测部件234分别计算CPU预测处理时间和GOU预测处理时间。根据该请求,CPU处理时间预测部件233通过使用表达式(1),基于由CPU处理时间保存部件235保存的CPU处理时间以及图像的总像素数,来计算CPU预测处理时间。类似地,GPU处理时间预测部件234通过使用表达式O),基于由GPU处理时间保存部件236保存的GPU处理时间以及图像的总像素数, 来计算GPU预测处理时间。处理面积分配计算部件237获得分别由CPU处理时间预测部件233和GPU处理时间预测部件234计算出的CPU预测处理时间和GPU预测处理时间彼此近似相等的比率。 处理面积分配计算部件237将整个处理面积(总像素数)按照所获得的比率指派给CPU 处理面积和GPU处理面积,并且将有关各个处理面积的信息保存为处理面积分配信息(步骤S117)。由处理面积分配计算部件237保存的处理面积分配信息稍后将被程序读出部件 239B从存储设备13读出,并且被通知给连接到I/O程序21的CPU/GPU控制程序M3。在处理面积分配计算部件237保存有关CPU处理面积和GPU处理画积的分配信息之后,基于假定被确定为连接候选的特效程序集合M被连接的情形下的CPU 111的利用率,负荷确定部件239判断特效程序集合M的连接是否被允许。接着,将描述此动作。负荷确定部件239计算在假定特效程序集合M中的GPU程序242被连接到I/O 程序21的情形下的GPU存储器预测使用量。GPU存储器预测使用量通过以下表达式(4)被计算(步骤Sl 18)。GPU存储器预测使用量=(用于已连接特效的存储器总量)+ (用于附加特效的图像存储器的数目)χ (GPU处理面积)/ (全画面面积)……
接着,负荷确定部件239判断所计算出的GPU存储器预测使用量是否达到预定阈值(步骤S119)。在GPU存储器预测使用量没有达到预定阈值的情况中(步骤S119,是), 与步骤S113类似,负荷确定部件239获得CPU 111的利用率(步骤S120)。随后,与步骤 S114类似,负荷确定部件239判断CPU 111的利用率是否达到预定阈值(步骤S121)。在CPU 111的利用率没有达到预定阈值的情况中(步骤S121,是),负荷确定部件 239判定特效程序集合M的连接被允许,并且请求程序读出部件239B读出特效程序集合 24。根据该请求,程序读出部件239B从存储设备13读出特效程序集合M,并且将特效程序集合M作为特效插件程序22连接到I/O程序21 (步骤S110)。此后,连接到I/O程序21 的CPU/GPU控制程序243被通知由处理面积分配计算部件237保存的分配信息。因此,CPU 111和GPU 121分担执行用户所选择的特效处理的环境被构建。接着,将描述在步骤S119中GPU存储器预测使用量达到预定阈值的情况(步骤 Sl 19,否)。在此情况中,返回步骤Sl 17,处理面积分配计算部件237修改CPU处理面积和 GPU处理面积的分配(步骤S117)。分配如下这样被修改。首先,处理面积分配计算部件237通过使用以下表达式( 来计算GPU处理面积的修正值。GPU处理面积的修正值=((允许GPU使用的存储器总量)_ (用于已连接特效的存储器总量))/(用于一个像素的存储器使用量)……(5)此外,处理面积分配计算部件237从全画面面积中减去GPU处理面积的修正值从而获得作为CPU处理面积的修正值的结果。此后,负荷确定部件239通过使用GPU处理面积的修正值和以上提到的表达式(4) 来计算在假定特效程序集合M中的GPU程序242被连接到I/O程序21的情形下的GPU存储器预测使用量(步骤S118)。负荷确定部件239判断作为结果获得的GPU存储器预测使用量是否达到预定阈值(步骤S119)。在GPU存储器预测使用量达到阈值(步骤S119,否) 并且CPU处理面积和GPU处理面积的分配已被修改(步骤S122,是)的情况中,负荷确定部件239向图形用户界面部件(未示出)通知用于告知特效程序的连接不被允许的特效添加不被允许代码(步骤SlM)。随后的动作与以上的类似。如上所述,根据本实施例,在特效被应用于图像的所有像素,即,最大负荷的特效处理被执行的情况中,包括CPU程序Ml、GPU程序242和CPU/GPU控制程序243的特效程序集合M被连接到I/O程序21。结果,CPU 111和GPU 121分担执行对整个图像的特效处理。因此,可以提高相对于图像的所有像素的特效处理的速度。此外,根据本实施例,在特效被应用于作为图像的一部分的区域的情况中,程序确定部件238从CPU程序241和GPU程序242中选择预测处理时间较小的特效程序来作为连接候选,从而特效处理可以更快地被执行。此外,根据本实施例,在GPU程序242被选作连接候选的情况中,负荷确定部件239 计算在假定GPU程序242被连接的情形下的GPU存储器预测使用量,并且判断其是否达到预定阈值。在其没有达到阈值的情况中,GPU程序242作为特效插件程序22被原样连接到 I/O程序21。此外,在其达到阈值的情况中,连接候选被改为CPU程序Ml。此外,负荷确定部件239判断CPU利用率是否达到预定阈值,并且在其没有达到阈值的情况中,将CPU程序 241作为特效插件程序22连接到I/O程序21。作为以上的结果,在GPU存储器的耗尽的状态中,可以以高的几率保证特效处理的执行。此外,根据本实施例,在CPU程序241被确定为连接候选的情况中,负荷确定部件 239计算在假定CPU程序241被连接的情形下的CPU利用率,并且判断其是否达到预定阈值。在其没有达到阈值的情况中,CPU程序241作为特效插件程序22被原样连接到I/O程序21。此外,在其达到阈值的情况中,连接候选被改为GPU程序M2。此外,负荷确定部件 239判断GPU存储器预测使用量是否达到预定阈值,并且在其没有达到阈值的情况中将GPU 程序242作为特效插件程序22连接到I/O程序21。作为以上的结果,即使在CPU利用率太高而不能执行特效处理的情况中,也可以以高的几率保证特效处理的执行。此外,根据本实施例,在特效程序集合M被确定为连接候选的情况中,整个处理面积(总像素数)以CPU预测处理时间和GPU预测处理时间彼此近似相等的比率,被指派给CPU处理面积和GPU处理面积。因此,CPU单元111和GPU 121可以在它们的能力内近似地以最高速度来执行特效处理。此外,根据本实施例,在假定被确定为连接候选的特效程序集合M被连接的情形下的GPU存储器预测使用量达到阈值的情况中,处理面积分配计算部件237将CPU处理面积和GPU处理面积的分配修改为考虑了 GPU存储器的空余量的值。因此,在GPU存储器122 的空余量太小而不能执行特效处理的状态中,CPU 111和GPU 121可以分担特效处理来高速地执行特效处理。(第二实施例)在以上提到的第一实施例,CPU预测处理时间是基于由CPU处理时间保存部件235 保存的CPU处理时间以及处理像素数获得的,GPU预测处理时间是基于由GPU处理时间保存部件236保存的GPU处理时间以及处理像素数获得的,并且预测处理时间较小的特效程序被确定为连接候选。在第二实施例中,基于对CPU程序241和GPU程序M2的特效处理时间的测量结果,使能较高速度的特效程序被确定为连接候选。图9是示出根据第二实施例的特效程序选择激活部件23a的结构。图10是示出特效程序选择激活部件23a的动作的过程的流程图。在特效程序选择激活部件23a中,CPU处理时间预测部件233a在特效处理被应用于部分图像数据的情况中,从存储设备13中读出CPU程序M1,并且实际地测量CPU程序 241的处理时间。同时,GPU处理时间预测部件23 在特效处理被应用于部分图像数据的情况中,从存储设备13读出GPU程序M2,并且测量GPU程序M2的处理时间。这里,CPU 处理时间预测部件233a和GPU处理时间预测部件23 可以通过对由I/O程序21提供的实际图像数据执行特效处理来测量处理时间,而不必使用实际的图像数据。即,可以与存储在CPU存储器112和GPU存储器122中的数据无关地来计算处理时间。程序确定部件238将CPU程序241和GPU程序242中处理时间(如上所述那样计算出的)较小的特效程序确定为连接候选。其它结构和动作与第一实施例的那些类似。根据此结构,也可以获得与第一实施例的那些类似的效果。注意,本公开不限于如上所述的实施例,而是可以在本公开的技术思想的范围内进行各种修改。本公开包含与2010年6月18日向日本专利局提交的日本在先专利申请JP2010-139719中所公开的主题有关的主题,该申请的全部内容通过引用结合于此。
本领域技术人员应当理解,根据设计要求和其它因素可以进行各种修改、组合、子组合和更改,只要它们在所附权利要求及其等同物的范围内即可。
权利要求
1.一种信息处理装置,包括第一处理单元,所述第一处理单元能够处理图像;第二处理单元,所述第二处理单元能够针对分割所述图像的每个单位并行地处理所述图像;以及控制器部件,所述控制器部件被配置为进行控制以选择所述第一处理单元、所述第二处理单元或所述第一处理单元和所述第二处理单元两者来作为处理所述图像的一个或多个主体,在所述第一处理单元和所述第二处理单元两者被选择的情况下,将所述图像分割成第一区域和第二区域,并且将通过分割获得的所述第一区域的图像的处理和通过分割获得的所述第二区域的图像的处理分别指派给所述第一处理单元和所述第二处理单元来执行。
2.根据权利要求1所述的信息处理装置,其中所述控制器部件被配置为在处理整个图像的情况下,选择所述第一处理单元和所述第二处理单元两者作为处理所述图像的所述主体。
3.根据权利要求2所述的信息处理装置,其中所述控制器部件被配置为确定所述第一区域的面积和所述第二区域的面积,使得所述第一处理单元处理所述第一区域所用的第一处理时间等于或近似等于所述第二处理单元处理所述第二区域所用的第二处理时间。
4.根据权利要求3所述的信息处理装置,还包括第一存储器,所述第一存储器用于由所述第一处理单元对所述图像的处理;以及第二存储器,所述第二存储器用于由所述第二处理单元对所述图像的处理,其中所述控制器部件被配置为计算在假定所述第一区域的图像的处理和所述第二区域的图像的处理分别被指派给所述第一处理单元和所述第二处理单元执行的情形下的所述第二存储器的预测使用量,并且在计算出的所述第二存储器的预测使用量达到阈值的情况下,修改所述第一区域的所确定面积和所述第二区域的所确定面积,以使得所述预测使用量落在所述第二存储器中允许所述第二处理单元使用的容量内。
5.根据权利要求4所述的信息处理装置,其中所述控制器部件被配置为在所述第二存储器的预测使用量没有超过所述第二存储器的所述容量的情况下,获得所述第一处理单元的利用率,并且在所述利用率没有达到阈值的情况下,将所述第一区域的图像的处理和所述第二区域的图像的处理分别指派给被选作所述主体的所述第一处理单元和所述第二处理单元来执行。
6.根据权利要求5所述的信息处理装置,其中所述控制器部件被配置为在处理所述图像的一部分的情况下,计算在假定由所述第一处理单元处理所述图像的所述一部分的情形下的预测处理时间和在假定由所述第二处理单元处理所述图像的所述一部分的情形下的预测处理时间,并且选择预测处理时间较小的处理单元来作为处理所述图像的所述一部分的主体。
7.根据权利要求6所述的信息处理装置,其中所述控制器部件被配置为在所述第二处理单元被选作所述主体的情况下,计算在假定由所述第二处理单元处理所述图像的所述一部分的情形下的所述第二存储器的预测使用量,并且在所述第二存储器的计算预测使用量没有达到所述阈值的情况下,使得所述第二处理单元处理所述图像的所述一部分。
8.根据权利要求7所述的信息处理装置,其中所述控制器部件被配置为在所述第一处理单元被选作所述主体的情况下,获得所述第一处理单元的利用率,以及在所述利用率没有达到阈值的情况下,使得所述第一处理单元处理所述图像的所述一部分。
9.根据权利要求1所述的信息处理装置,其中所述控制器部件包括所述第一处理单元,通过所述控制器部件中的程序使得所述第一处理单元用作所述控制器部件。
10.一种用于控制信息处理装置的方法,所述信息处理装置包括能够处理图像的第一处理单元和能够针对分割所述图像的每个单位并行地处理所述图像的第二处理单元,该方法包括由控制器部件选择所述第一处理单元、所述第二处理单元或所述第一处理单元和所述第二处理单元两者来作为处理所述图像的一个或多个主体;在所述第一处理单元和所述第二处理单元两者被选择的情况下,将所述图像分割成第一区域和第二区域;并且将通过分割获得的所述第一区域的图像的处理和通过分割获得的所述第二区域的图像的处理分别指派给所述第一处理单元和所述第二处理单元来执行。
11.一种使得计算机动作的程序,所述计算机包括能够处理图像的第一处理单元和能够针对分割所述图像的每个单位并行地处理所述图像的第二处理单元,所述程序使得所述计算机用作控制器部件,所述控制器部件被配置为进行控制以选择所述第一处理单元、所述第二处理单元或所述第一处理单元和所述第二处理单元两者来作为处理所述图像的一个或多个主体,在所述第一处理单元和所述第二处理单元两者被选择的情况下,将所述图像分割成第一区域和第二区域,并且将通过分割获得的所述第一区域的图像的处理和通过分割获得的所述第二区域的图像的处理分别指派给所述第一处理单元和所述第二处理单元来执行。
全文摘要
本发明公开了信息处理装置、用于控制信息处理装置的方法、和程序。提供了一种信息处理装置,其包括第一处理单元,其能够处理图像;第二处理单元,其能够针对分割图像的每个单位并行地处理图像;以及控制器部件,其被配置为进行控制来选择第一处理单元、第二处理单元或第一处理单元和第二处理单元两者来作为处理该图像的一个或多个主体,在第一处理单元和第二处理单元两者被选择的情况中,将图像分割成第一区域和第二区域,并且将通过分割获得的第一区域的图像的处理和通过分割获得的第二区域的图像的处理分别指派给第一处理单元和第二处理单元来执行。
文档编号G06T1/20GK102289782SQ20111016527
公开日2011年12月21日 申请日期2011年6月13日 优先权日2010年6月18日
发明者白木寿一 申请人:索尼公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1