專利名稱:信息處理裝置、用于控制信息處理裝置的方法、和程序的制作方法
技術領域:
本發(fā)明涉及被配置來處理圖像的信息處理裝置,用于控制該信息處理裝置的方法,和程序。
背景技術:
近年來,通用計算機硬件的增強性能和高功能性使得以前只有專用硬件才能夠實現(xiàn)的圖像處理,通過使用通用計算機硬件即可實現(xiàn)。在計算機硬件中,具體而言,CPU和用作主存儲器的存儲器展示出極高的速度,并且因此,可以在經濟的令人滿意的時間段中執(zhí)行針對大容量圖像數據的各種復雜特效處理。通過引入GPU(圖形處理單元)可以以更高的速度來執(zhí)行圖像處理,GPU是被設計來專用于并行算術處理的算術處理設備。通過GPU進行的并行算術處理特別是在部分處理的算術結果不影響整個處理的處理(諸如圖像處理)中展示出增強的性能。GPU的并行算術處理是通過包括如下處理的機制來實現(xiàn)的向多個算術單元發(fā)出相同指令并且由各個算術單元獨立地執(zhí)行相同指令。相比較而言,在CPU中,不同的指令被發(fā)出給多個算術單元并且算術單元分別執(zhí)行不同的指令。因此,CPU適合順序處理。此外,近年來,已知了 GPGPU(圖形處理單元上的通用計算)的技術領域,其使得 GPU不僅能夠執(zhí)行圖像處理,還能夠用于其它數值處理。日本專利申請早期公開第2008-513890號(第0027段)(以下稱為專利文件1) 記載了 CPU和GPU處理一個工作單元的情況中的負荷分散。具體而言,GPU并行地計算多個光線與在至少一個圖形對象處交界的一組表面的相交,而CPU計算這多個光線中的至少一些光線與圖形對象的相交。然而,專利文件1沒有記載圖像處理被分散到CPU和GPU來被執(zhí)行,沒有記載考慮到CPU和GPU的負荷的狀態(tài)等來選擇最優(yōu)圖像處理主體。如上所述,近年來,CPU的高速事實上使能圖像處理中足夠的響應。即,由CPU和 GPU分擔和執(zhí)行過去只依賴于GPU的圖像處理,作為結果,增大了以比只由GPU執(zhí)行時更高的速度來執(zhí)行圖像處理的可能性。此外,即使CPU和GPU從規(guī)格的角度以最高速度分擔執(zhí)行圖像處理,但根據CPU和GPU的負荷狀態(tài)以及它們的存儲器的使用狀態(tài),GPU本身就可以以比CPU和GPU分擔圖像處理的情況中更高的速度來執(zhí)行圖像處理。如上所述,從速度的角度來看,由CPU和GPU分擔執(zhí)行圖像處理并不總是最優(yōu)的。
發(fā)明內容
根據上述情形,希望提供能夠靈活地使用CPU和GPU并且高效地執(zhí)行圖像處理的信息處理裝置、用于控制信息處理裝置的方法以及程序。根據本公開一個實施例,提供了一種信息處理裝置,該裝置包括第一處理單元, 該第一處理單元能夠處理圖像;第二處理單元,該第二處理單元能夠針對分割圖像的每個單位并行地處理圖像;以及控制器部件,該控制器部件被配置為進行控制以選擇第一處理單元、第二處理單元或第一處理單元和第二處理單元兩者來作為處理圖像的一個或多個主體,在第一處理單元和第二處理單元兩者被選擇的情況下,將圖像分割成第一區(qū)域和第二區(qū)域,并且將通過分割獲得的第一區(qū)域的圖像的處理和通過分割獲得的第二區(qū)域的圖像的處理分別指派給第一處理單元和第二處理單元來執(zhí)行。根據本公開的實施例,第一處理單元、第二處理單元或第一處理單元和第二處理單元兩者被選擇作為處理圖像的一個或多個主體。因此,根據各個處理單元的負荷的狀態(tài)、 圖像處理條件等,圖像處理可以被高效地執(zhí)行。控制器部件被配置為在處理整個圖像的情況中,選擇第一處理單元和第二處理單元兩者來作為處理圖像的多個主體。有關圖像處理的負荷與將要處理的像素數,即圖像的面積,成比例。因此,在處理整個圖像的情況中,通過利用第一處理單元和第二處理單元兩者,圖像處理可以以更高的速度被執(zhí)行??刂破鞑考慌渲脼榇_定第一區(qū)域的面積和第二區(qū)域的面積,使得第一處理單元處理第一區(qū)域所用的第一處理時間等于或近似等于第二處理單元處理第二區(qū)域所用的第二處理時間。因此,各個區(qū)域的處理在相同或近似相同的定時被完成。結果,圖像處理可以以最高速度被完成。此外,根據本公開實施例的信息處理裝置還可以包括第一存儲器,第一存儲器用于由第一處理單元對圖像的處理;以及第二存儲器,第二存儲器用于由第二處理單元對圖像的處理,其中控制器部件被配置為計算在假定第一區(qū)域的圖像的處理和第二區(qū)域的圖像的處理被分別指派給第一處理單元和第二處理單元執(zhí)行的情形下的第二存儲器的預測使用量,并且在計算出的第二存儲器的預測使用量達到閾值的情況中,修改第一區(qū)域的所確定面積和第二區(qū)域的所確定面積,以使得預測使用量落在第二存儲器中允許第二處理單元使用的容量內。因此,在考慮了用于第二處理單元對圖像的處理的第二存儲器的使用狀態(tài)時,圖像的處理優(yōu)選地被指派給相應處理單元執(zhí)行??刂破鞑考杀慌渲脼樵诘诙鎯ζ鞯念A測使用量沒有超過第二存儲器的容量的情況中,獲得第一處理單元的利用率,并且在利用率沒行達到閾值的情況中,將第一區(qū)域的圖像的處理和第二區(qū)域的圖像的處理分別指派給被選作主體的第一處理單元和第二處理單元來執(zhí)行。因此,在考慮了第一處理單元的利用率時,圖像的處理優(yōu)選地被指派給相應處理單元執(zhí)行??刂破鞑考杀慌渲脼樵谔幚韴D像的一部分的情況下,計算在假定由第一處理單元處理圖像的一部分的情形下的預測處理時間和在假定由第二處理單元處理圖像的一部分的情形下的預測處理時間,并且選擇預測處理時間較小的處理單元來作為處理圖像的一部分的主體??刂破鞑考梢员慌渲脼樵诘诙幚韱卧贿x作主體的情況中,計算在假定由第二處理單元處理圖像的一部分的情形下的第二存儲器的預測使用量,并且在第二存儲器的計算預測使用量沒有達到閾值的情況中,使得第二處理單元處理圖像的一部分。因此,在考慮了用于第二處理單元對圖像的處理的第二存儲器的使用狀態(tài)時,第二處理單元可以處理該圖像的一部分。此外,控制器部件可以被配置為在第一處理單元被選作主體的情況中,獲得第一處理單元的利用率,以及在利用率沒有達到閾值的情況中,使得第一處理單元處理圖像的一部分。因此,在考慮了第一處理單元的利用率時,第一處理單元可以處理該圖像的該部分。根據本公開另一實施例,提供一種用于控制信息處理裝置的方法,信息處理裝置包括能夠處理圖像的第一處理單元和能夠針對分割圖像的每個單位并行地處理圖像的第二處理單元,該方法包括由控制器部件選擇第一處理單元、第二處理單元或第一處理單元和第二處理單元兩者來作為處理圖像的一個或多個主體,在第一處理單元和第二處理單元兩者都被選擇的情況中,將圖像分割成第一區(qū)域和第二區(qū)域,并且將通過分割獲得的第一區(qū)域的圖像的處理和通過分割獲得的第二區(qū)域的圖像的處理分別指派給第一處理單元和第二處理單元來執(zhí)行。根據本公開另一實施例,提供了一種使得計算機動作的程序,該計算機包括能夠處理圖像的第一處理單元和能夠針對分割圖像的每個單位并行地處理圖像的第二處理單元,該程序使得計算機用作控制器部件,控制器部件被配置為進行控制以選擇第一處理單元、第二處理單元或第一處理單元和第二處理單元兩者來作為處理圖像的一個或多個主體,在第一處理單元和第二處理單元兩者被選擇的情況下,將圖像分割成第一區(qū)域和第二區(qū)域,并且將通過分割獲得的第一區(qū)域的圖像的處理和通過分割獲得的第二區(qū)域的圖像的處理分別指派給第一處理單元和第二處理單元來執(zhí)行。如上所述,根據本公開的實施例,通過靈活地使用CPU和GPU,圖像處理被高效地執(zhí)行。根據下面對如附圖所示的本公開的最佳模式實施例的詳細描述,本公開的這些和其它目的、特征和優(yōu)點將變得更顯而易見。
圖1是根據本公開一個實施例的信息處理裝置的結構的示圖;圖2是示出圖1的信息處理裝置中的圖像處理程序的執(zhí)行模式的示圖;圖3是示出特效程序集合的結構的示圖;圖4是示出GPU程序的動作的示例的示圖;圖5是說明由CPU/GPU控制程序進行的圖像的區(qū)域的分割的示圖;圖6是示出CPU/GPU控制程序的控制的示圖;圖7是示出特效程序選擇激活部件的結構的框圖;圖8是示出特效程序選擇激活部件的動作的過程的流程圖;圖9是示出根據本公開第二實施例的特效程序選擇激活部件的結構的框圖;以及圖10是示出圖9的特效程序選擇激活部件的動作的過程的流程圖。
具體實施例方式以下,將參考附圖來描述本公開的實施例。(第一實施例)(信息處理裝置)本實施例涉及在裝載了 CPU(中央處理單元)和GPU(圖形處理單元)的計算機中執(zhí)行圖像處理程序從而例如對圖像數據執(zhí)行諸如特效處理之類的圖像處理的信息處理裝置。
圖1是示出根據本公開一個實施例的信息處理裝置的結構的示圖。如圖1中所示,信息處理裝置10包括CPU單元11、GPU單元12、存儲設備13、顯示接口單元14、操作接口單元15和將它們彼此相連的總線17。CPU單元11包括CPU 111(第一處理單元)和存儲器(以下稱為“CPU存儲器112”) (第一存儲器),并且執(zhí)行存儲在CPU存儲器112中的用于CPU的圖像處理程序,從而執(zhí)行 CPU存儲器112中有關各種算術處理的指令。CPU單元11解釋用戶從連接到操作接口單元 15的操作輸入設備18輸入的命令,從而將它們反映到圖像處理程序的動作中。此外,CPU 單元11可以基于用戶等的命令來從存儲設備13讀取圖像數據,將圖像數據存儲在設置在 CPU存儲器112中的圖像緩沖器中,并且對圖像數據執(zhí)行諸如特效之類的處理。圖像緩沖器中的圖像數據被提供給顯示接口單元14,經歷描繪處理從而成為以像素為單位的可視數據,并被輸出給顯示設備19。此外,CPU單元11可以基于用戶等的命令來將編輯后的圖像數據寫入存儲設備13中的圖像緩沖器中。GPU單元12包括GPU 121 (第二處理單元)和存儲器(以下稱為“GPU存儲器122”) (第二存儲器),并且可以執(zhí)行存儲在GPU存儲器122中的用于GPU的圖像處理程序,從而并行地執(zhí)行GPU存儲器122中的圖像處理。在CPU單元11的控制下,GPU單元12可以將從存儲設備13讀出的圖像數據存儲在被設置在GPU存儲器122中的圖像緩沖器中,并且從而針對諸如分割圖像等的線程之類的每個單位來對圖像數據并行地執(zhí)行諸如特效之類的處理。圖像緩沖器中的圖像數據被提供給顯示接口單元14,經歷描繪處理從而成為以像素為單位的可見數據,并且被輸出給顯示設備19。此外,GPU單元12可以例如基于CPU單元 11等的命令來將編輯后的圖像數據寫入存儲設備13中的圖像緩沖器中。顯示接口單元14是與顯示設備19的接口,從CPU單元11和/或GPU單元12接收圖像數據來執(zhí)行描繪處理,并且將描繪數據提供給顯示設備19。顯示接口單元14的處理可以由設置在顯示接口單元14中的專用GPU(未示出)執(zhí)行,或者可以由例如以上提到的 GPU 121 執(zhí)行。操作接口單元15是與操作輸入設備18的接口,將由用戶從操作輸入設備18輸入的數據和命令提供給CPU 111,等等。存儲設備13存儲未被編輯的和編輯后的圖像數據。此外,存儲設備13還存儲圖像處理程序。存儲在存儲設備13中的圖像處理程序包括用于CPU 111的程序和用于GPU 121的程序。用于CPU 111的程序從存儲設備13被裝載到CPU單元11的CPU存儲器112 中,并且由CPU 111執(zhí)行。此外,用于GPU 121的程序從存儲設備13被裝載到GPU單元12 的GPU存儲器122中,并且由GPU 121執(zhí)行。(圖像處理程序的結構和執(zhí)行模式)圖2是示出本實施例的信息處理裝置10中的圖像處理程序的執(zhí)行模式的示圖。如圖2中所示,圖像處理程序的執(zhí)行模式包括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被串聯(lián)連接到I/O程序21。具體而言,最上游的特效插件程序22從I/O程序21接收圖像數據來執(zhí)行特效處理,并且將結果轉送至位于其下游側的一級的特效插件程序22。除最上游的特效插入程序和最下游的特效插入程序以外的特效插件程序22從位于其上游側一級的特效插件程序22接收圖像數據來執(zhí)行特效處理,并且將結果轉送給位于其下游側一級的特效插件程序22。最下游的特效插件程序22從位于其上游側一級的特效插件程序22接收圖像數據來執(zhí)行特效處理,并且將結果轉送至I/O程序21。如上所述,根據本實施例,圖像數據在特效插件程序22之間被直接地轉送??商鎿Q地,圖像數據可以經由I/O程序21在鄰接的特效插件程序22之間被轉送。同時,存儲設備13存儲分別用于各種特效的特效程序集合M。如圖3中所示,每個特效程序集合M包括使得CPU 111對圖像數據執(zhí)行特效處理的CPU程序M1,使得GPU 121執(zhí)行特效處理的GPU程序M2,以及進行控制來將特效處理的執(zhí)行指派給CPU 111和 GPU 121來執(zhí)行處理的CPU/GPU控制程序對3。在不用將它們相互區(qū)分開的情形下,CPU程序Ml、GPU程序242和CPU/GPU控制程序M3中的每一個都稱為“特效程序”。CPU程序241是使得CPU 111對圖像數據執(zhí)行特效處理的程序。更具特而言,CPU 程序241包括這樣的過程,例如(1)從I/O程序21或所連接的上游側一級的特效插件程序22接收CPU存儲器112 中的圖像緩沖器,( 使得CPU 111執(zhí)行特效處理,(3)將特效處理的結果寫入圖像緩沖器中,以及(4)將圖像緩沖器轉送至所連接的下游側一級的特效插件程序22或將其返回給 I/O程序21。GPU程序242是使得GPU 121對圖像數據執(zhí)行特效處理的程序。更具體而言,GPU 程序242包括這樣的過程,例如(1)將來自CPU存儲器112的圖像數據存儲在GPU存儲器122中或從所連接的上游側一級的特效插件程序22接收GPU存儲器122中的圖像緩沖器,(2)使得GPU 121執(zhí)行特效處理,(3)將特效處理的結果寫入圖像緩沖器中,以及(4)將圖像緩沖器轉送給相連接的上游側一級的特效插件程序22,或將GPU存儲器122中的圖像數據轉送至CPU存儲器112。此外,GPU程序242可以不被設計為僅通過GPU 121來完成特效處理,而是可以如圖4中所示,被設計為補充地請求CPU 111來執(zhí)行部分計算并將計算結果從CPU存儲器112 存儲到GPU存儲器122中。其具體示例包括濾波處理,諸如散焦(defocusing)。GPU 121 在簡單的乘加運算被大量執(zhí)行的處理中施展高速性能,而在諸如條件分支之類的順序處理中不能施展高速性能。例如,散焦處理包括生成用于散焦的濾波器和在圖像上卷積濾波器這兩級處理。生成用于散焦的濾波器需要少量(最多大約幾百抽頭(tap))的乘加運算,但是需要許多依賴于諸如虹膜(iris)的形狀和角度之類的參數的條件分支。在這樣的散焦處理中,在CPU 111生成濾波器并且GPU 121在圖像上卷積濾波器的情況中,GPU 121施展高速性能并且可以提高處理效率。同時,例如,由于無條件分支的濾波處理(諸如對像素執(zhí)行均勻加權的移動平均濾波處理)不需要濾波器生成,所以GPU121通過自身完成處理。如上所述,GPU程序242可以被設計為使得GPU121通過自身完成處理,或GPU 121被請求執(zhí)行順序計算處理的一部分。CPU/GPU控制程序243是將用戶選擇的特效處理的執(zhí)行指派給CPUl 11和GPU 121 的特效程序。例如,如圖5和圖6中所示,CPU/GPU控制程序243將圖像分割成兩個區(qū)域, 并且將有關區(qū)域的信息分別提供給CPU程序241和GPU程序M2,以使得針對分割的區(qū)域的計算分別被指派給CPU 111和GPU 121。此外,CPU/GPU控制程序M3同步CPU 111和GPU 121的相應處理結果并且將它們進行耦合來生成用于全畫面的處理結果。再參考圖2,特效程序選擇激活部件23 (控制器部件)是這樣的程序,其使得CPU ill根據預定算法進行作用來從與用戶所選擇的種類的特效相對應的特效程序集合M中調用至少一個特效程序,并且將它們作為以上提到的特效插件程序22連接到I/O程序21。S卩,在圖2的圖像處理程序的執(zhí)行模式中,首先,I/O程序21從存儲設備13讀出由用戶選擇的圖像數據。接著,特效程序選擇激活部件23根據預定算法從與由用戶選擇的特效相對應的特效程序集合M中調用至少一個特效程序,并且將它們作為特效插件程序22 連接到I/O程序21。因此,連接到I/O程序21的一個或多個特效插件程序22對圖像數據執(zhí)行特效處理。經歷了特效處理的圖像數據被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,基于由用戶選擇的特效的種類、指定處理目標區(qū)域的信息的有無等,來判斷特效處理是針對圖像數據的全部像素的處理還是針對其一部分的處理。處理面積計算部件232計算將要經歷特效的處理區(qū)域的面積(=處理像素數)。CPU處理時間保存部件235針對多種特效保存用于一個像素的CPU處理時間段 (先前通過試驗測得)。GPU處理時間保存部件236針對多種特效保存用于一個像素的GPU處理時間段 (先前通過試驗測得)。CPU處理時間預測部件233在對部分圖像數據執(zhí)行特效處理的情況中被使用。CPU 處理時間預測部件233,通過使用由CPU處理時間保存部件235保存的CPU處理時間,計算 CPU 111執(zhí)行特效處理所必需的時間來作為“CPU預測處理時間”。GPU處理時間預測部件234在對部分圖像數據執(zhí)行特效處理的情況中被使用。GPU 處理時間預測部件234,通過使用由GPU處理時間保存部件236保存的GPU處理時間,計算GPU 121執(zhí)行特效處理所必需的時間來作為“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來執(zhí)行的情況下,計算各個處理面積的最優(yōu)比率,并且將有關信息通知給CPU/GPU控制程序M3。負荷信息更新部件239A基于特效程序與I/O程序21的連接狀態(tài)來管理作為負荷信息的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執(zhí)行特效處理所必需的時間作為“CPU預測處理時間”(步驟S103)。CPU預測處理時間=(用于一個像素的CPU處理時間)X (處理像素數)……(1)接著,GPU處理時間預測部件234,基于由GPU處理時間保存部件236保存的GPU處理時間和在步驟S102中計算出的處理像素數并且通過使用以下表達式O),來計算GPU 121執(zhí)行特效處理所必需的時間作為“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預測處理時間的情況的示例包括例如對占據圖像的絕大部分的區(qū)域均勻地應用數百抽頭的乘加運算的特效處理。這是因為GPU 121能夠設置用于每個像素的線程并且并行執(zhí)行處理。相比較而言,在對作為圖像的一小部分的區(qū)域應用特效的情況中,GPU 121可能不能充分施展其特性。此外,實際上,GPU 121的處理時間不僅包括算術時間還包括圖像數據在CPU和GPU之間的轉送時間。因此,例如,在GPU 121對具有相對大的尺寸(諸如4096 X 2160(像素))的圖像的一小部分執(zhí)行算術量小的處理(諸如色彩變換)的情況中,圖像數據的轉送時間占據整個處理時間的比率增大,從而處理可能消耗比CPU 111執(zhí)行特效處理的情況更多的時間?;氐絼幼鞯拿枋?,已經描述了直到從CPU程序241和GPU程序M2中確定作為連接候選的特效程序的動作。然而,此時,特效程序實際上還沒有作為特效插件程序22被連接到I/O程序21。此后,基于假定被確定為連接候選的特效程序被連接到I/O程序21情形下的CPU單元11和GPU單元12上的負荷的狀態(tài),負荷確定部件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的耗竭狀態(tài)的預定值。在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的連接是否被允許。注意,由于此動作的細節(jié)與在步驟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的利用率可以通過使用例如被實現(xiàn)在信息處理裝置中的OS (操作系統(tǒng))的CPU利用率監(jiān)控功能等來獲得。負荷確定部件239判斷CPU 111的利用率是否達到預定閾值(步驟S114)。CPU利用率的閾值是考慮了信息處理裝置的整體動作的效率、穩(wěn)定性等的基于設計的預定值。在 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不要發(fā)出讀出特效程序的請求,從而特效程序不被新連接到I/O程序21,并且處理完成。此外,在步驟S114的判定中CPU 111的利用率達到預定閾值(步驟S114,否)并且未確定GPU程序M2的連接不被允許(步驟S115,否)的情況中,處理繼續(xù)到步驟S106, 并且連接候選從CPU程序241被改變?yōu)镚PU程序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分擔要執(zhí)行的特效處理(步驟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分擔執(zhí)行用戶所選擇的特效處理的環(huán)境被構建。接著,將描述在步驟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)。隨后的動作與以上的類似。如上所述,根據本實施例,在特效被應用于圖像的所有像素,即,最大負荷的特效處理被執(zhí)行的情況中,包括CPU程序Ml、GPU程序242和CPU/GPU控制程序243的特效程序集合M被連接到I/O程序21。結果,CPU 111和GPU 121分擔執(zhí)行對整個圖像的特效處理。因此,可以提高相對于圖像的所有像素的特效處理的速度。此外,根據本實施例,在特效被應用于作為圖像的一部分的區(qū)域的情況中,程序確定部件238從CPU程序241和GPU程序242中選擇預測處理時間較小的特效程序來作為連接候選,從而特效處理可以更快地被執(zhí)行。此外,根據本實施例,在GPU程序242被選作連接候選的情況中,負荷確定部件239 計算在假定GPU程序242被連接的情形下的GPU存儲器預測使用量,并且判斷其是否達到預定閾值。在其沒有達到閾值的情況中,GPU程序242作為特效插件程序22被原樣連接到 I/O程序21。此外,在其達到閾值的情況中,連接候選被改為CPU程序Ml。此外,負荷確定部件239判斷CPU利用率是否達到預定閾值,并且在其沒有達到閾值的情況中,將CPU程序 241作為特效插件程序22連接到I/O程序21。作為以上的結果,在GPU存儲器的耗盡的狀態(tài)中,可以以高的幾率保證特效處理的執(zhí)行。此外,根據本實施例,在CPU程序241被確定為連接候選的情況中,負荷確定部件 239計算在假定CPU程序241被連接的情形下的CPU利用率,并且判斷其是否達到預定閾值。在其沒有達到閾值的情況中,CPU程序241作為特效插件程序22被原樣連接到I/O程序21。此外,在其達到閾值的情況中,連接候選被改為GPU程序M2。此外,負荷確定部件 239判斷GPU存儲器預測使用量是否達到預定閾值,并且在其沒有達到閾值的情況中將GPU 程序242作為特效插件程序22連接到I/O程序21。作為以上的結果,即使在CPU利用率太高而不能執(zhí)行特效處理的情況中,也可以以高的幾率保證特效處理的執(zhí)行。此外,根據本實施例,在特效程序集合M被確定為連接候選的情況中,整個處理面積(總像素數)以CPU預測處理時間和GPU預測處理時間彼此近似相等的比率,被指派給CPU處理面積和GPU處理面積。因此,CPU單元111和GPU 121可以在它們的能力內近似地以最高速度來執(zhí)行特效處理。此外,根據本實施例,在假定被確定為連接候選的特效程序集合M被連接的情形下的GPU存儲器預測使用量達到閾值的情況中,處理面積分配計算部件237將CPU處理面積和GPU處理面積的分配修改為考慮了 GPU存儲器的空余量的值。因此,在GPU存儲器122 的空余量太小而不能執(zhí)行特效處理的狀態(tài)中,CPU 111和GPU 121可以分擔特效處理來高速地執(zhí)行特效處理。(第二實施例)在以上提到的第一實施例,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提供的實際圖像數據執(zhí)行特效處理來測量處理時間,而不必使用實際的圖像數據。即,可以與存儲在CPU存儲器112和GPU存儲器122中的數據無關地來計算處理時間。程序確定部件238將CPU程序241和GPU程序242中處理時間(如上所述那樣計算出的)較小的特效程序確定為連接候選。其它結構和動作與第一實施例的那些類似。根據此結構,也可以獲得與第一實施例的那些類似的效果。注意,本公開不限于如上所述的實施例,而是可以在本公開的技術思想的范圍內進行各種修改。本公開包含與2010年6月18日向日本專利局提交的日本在先專利申請JP2010-139719中所公開的主題有關的主題,該申請的全部內容通過引用結合于此。
本領域技術人員應當理解,根據設計要求和其它因素可以進行各種修改、組合、子組合和更改,只要它們在所附權利要求及其等同物的范圍內即可。
權利要求
1.一種信息處理裝置,包括第一處理單元,所述第一處理單元能夠處理圖像;第二處理單元,所述第二處理單元能夠針對分割所述圖像的每個單位并行地處理所述圖像;以及控制器部件,所述控制器部件被配置為進行控制以選擇所述第一處理單元、所述第二處理單元或所述第一處理單元和所述第二處理單元兩者來作為處理所述圖像的一個或多個主體,在所述第一處理單元和所述第二處理單元兩者被選擇的情況下,將所述圖像分割成第一區(qū)域和第二區(qū)域,并且將通過分割獲得的所述第一區(qū)域的圖像的處理和通過分割獲得的所述第二區(qū)域的圖像的處理分別指派給所述第一處理單元和所述第二處理單元來執(zhí)行。
2.根據權利要求1所述的信息處理裝置,其中所述控制器部件被配置為在處理整個圖像的情況下,選擇所述第一處理單元和所述第二處理單元兩者作為處理所述圖像的所述主體。
3.根據權利要求2所述的信息處理裝置,其中所述控制器部件被配置為確定所述第一區(qū)域的面積和所述第二區(qū)域的面積,使得所述第一處理單元處理所述第一區(qū)域所用的第一處理時間等于或近似等于所述第二處理單元處理所述第二區(qū)域所用的第二處理時間。
4.根據權利要求3所述的信息處理裝置,還包括第一存儲器,所述第一存儲器用于由所述第一處理單元對所述圖像的處理;以及第二存儲器,所述第二存儲器用于由所述第二處理單元對所述圖像的處理,其中所述控制器部件被配置為計算在假定所述第一區(qū)域的圖像的處理和所述第二區(qū)域的圖像的處理分別被指派給所述第一處理單元和所述第二處理單元執(zhí)行的情形下的所述第二存儲器的預測使用量,并且在計算出的所述第二存儲器的預測使用量達到閾值的情況下,修改所述第一區(qū)域的所確定面積和所述第二區(qū)域的所確定面積,以使得所述預測使用量落在所述第二存儲器中允許所述第二處理單元使用的容量內。
5.根據權利要求4所述的信息處理裝置,其中所述控制器部件被配置為在所述第二存儲器的預測使用量沒有超過所述第二存儲器的所述容量的情況下,獲得所述第一處理單元的利用率,并且在所述利用率沒有達到閾值的情況下,將所述第一區(qū)域的圖像的處理和所述第二區(qū)域的圖像的處理分別指派給被選作所述主體的所述第一處理單元和所述第二處理單元來執(zhí)行。
6.根據權利要求5所述的信息處理裝置,其中所述控制器部件被配置為在處理所述圖像的一部分的情況下,計算在假定由所述第一處理單元處理所述圖像的所述一部分的情形下的預測處理時間和在假定由所述第二處理單元處理所述圖像的所述一部分的情形下的預測處理時間,并且選擇預測處理時間較小的處理單元來作為處理所述圖像的所述一部分的主體。
7.根據權利要求6所述的信息處理裝置,其中所述控制器部件被配置為在所述第二處理單元被選作所述主體的情況下,計算在假定由所述第二處理單元處理所述圖像的所述一部分的情形下的所述第二存儲器的預測使用量,并且在所述第二存儲器的計算預測使用量沒有達到所述閾值的情況下,使得所述第二處理單元處理所述圖像的所述一部分。
8.根據權利要求7所述的信息處理裝置,其中所述控制器部件被配置為在所述第一處理單元被選作所述主體的情況下,獲得所述第一處理單元的利用率,以及在所述利用率沒有達到閾值的情況下,使得所述第一處理單元處理所述圖像的所述一部分。
9.根據權利要求1所述的信息處理裝置,其中所述控制器部件包括所述第一處理單元,通過所述控制器部件中的程序使得所述第一處理單元用作所述控制器部件。
10.一種用于控制信息處理裝置的方法,所述信息處理裝置包括能夠處理圖像的第一處理單元和能夠針對分割所述圖像的每個單位并行地處理所述圖像的第二處理單元,該方法包括由控制器部件選擇所述第一處理單元、所述第二處理單元或所述第一處理單元和所述第二處理單元兩者來作為處理所述圖像的一個或多個主體;在所述第一處理單元和所述第二處理單元兩者被選擇的情況下,將所述圖像分割成第一區(qū)域和第二區(qū)域;并且將通過分割獲得的所述第一區(qū)域的圖像的處理和通過分割獲得的所述第二區(qū)域的圖像的處理分別指派給所述第一處理單元和所述第二處理單元來執(zhí)行。
11.一種使得計算機動作的程序,所述計算機包括能夠處理圖像的第一處理單元和能夠針對分割所述圖像的每個單位并行地處理所述圖像的第二處理單元,所述程序使得所述計算機用作控制器部件,所述控制器部件被配置為進行控制以選擇所述第一處理單元、所述第二處理單元或所述第一處理單元和所述第二處理單元兩者來作為處理所述圖像的一個或多個主體,在所述第一處理單元和所述第二處理單元兩者被選擇的情況下,將所述圖像分割成第一區(qū)域和第二區(qū)域,并且將通過分割獲得的所述第一區(qū)域的圖像的處理和通過分割獲得的所述第二區(qū)域的圖像的處理分別指派給所述第一處理單元和所述第二處理單元來執(zhí)行。
全文摘要
本發(fā)明公開了信息處理裝置、用于控制信息處理裝置的方法、和程序。提供了一種信息處理裝置,其包括第一處理單元,其能夠處理圖像;第二處理單元,其能夠針對分割圖像的每個單位并行地處理圖像;以及控制器部件,其被配置為進行控制來選擇第一處理單元、第二處理單元或第一處理單元和第二處理單元兩者來作為處理該圖像的一個或多個主體,在第一處理單元和第二處理單元兩者被選擇的情況中,將圖像分割成第一區(qū)域和第二區(qū)域,并且將通過分割獲得的第一區(qū)域的圖像的處理和通過分割獲得的第二區(qū)域的圖像的處理分別指派給第一處理單元和第二處理單元來執(zhí)行。
文檔編號G06T1/20GK102289782SQ20111016527
公開日2011年12月21日 申請日期2011年6月13日 優(yōu)先權日2010年6月18日
發(fā)明者白木壽一 申請人:索尼公司