(57)【要約】【課題】実行する処理の負荷に応じて処理時間を短縮するよう並列処理を制御できる情報処理装置を実現する。【解決手段】スケジューラ３１１は、画像処理プログラム１６２内の画像解析モジュール２１、固定演算モジュール２２、及び変動演算モジュール２３のタスクを、実行順序に従って演算コア１１０へ割り当てる。負荷算出部３３は、画像解析モジュール２１による入力画像の解析が完了したことに応答して、この解析結果に基づいて画像処理プログラム１６２の処理負荷を算出する。負荷制御部３２は、算出された画像処理プログラム１６２の処理負荷がしきい値以上である場合、変動演算モジュール２３に対応するタスクを演算コア１１０に割り当てる処理を中断する。負荷制御部３２は、算出された画像処理プログラム１６２の処理負荷がしきい値以上でない場合、変動演算モジュール２３に対応するタスクを演算コア１１０に割り当てる処理を続行する。【選択図】図２
2011013852.tif 000002
【特許請求の範囲】
【請求項１】
複数の実行ユニットと、
動画像データの入力画像フレーム内の複数の画像データ部をそれぞれ解析するための複数の第１タスクと、前記複数の画像データ部それぞれの解析結果を用いて前記複数の画像データ部に対応する出力画像フレーム上の複数の出力画像データ部をそれぞれ生成する複数の第２タスクと、前記複数の出力画像データ部の画質をそれぞれ改善する複数の第３タスクとを、前記複数の第１タスクと前記複数の第２タスクと前記複数の第３タスクとの間の実行順序の関係に基づいて規定される順番で前記複数の実行ユニットに割り当てるスケジューラと、
前記複数の第１タスクによる前記複数の画像データ部の解析が完了した場合、前記複数の画像データ部の解析結果に基づき、前記複数の第３タスクの実行に要する処理負荷を算出する負荷算出手段と、
前記算出された処理負荷がしきい値よりも高い場合、前記複数の第３タスクを前記複数の実行ユニットに割り当てる処理を中断し、前記複数の第２タスクによって生成された出力画像フレームを出力し、前記算出された処理負荷が前記しきい値よりも高くない場合、前記複数の第３タスクを前記複数の実行ユニットに割り当てる処理を継続し、前記複数の第３タスクにより画質が改善された出力画像フレームを出力する負荷制御手段とを具備することを特徴とする情報処理装置。
【請求項２】
前記各第２タスクによって生成される出力画像データ部を第１バッファに格納し、前記各第３タスクにより画質が改善された出力画像データ部を第２バッファに格納するバッファリング手段をさらに具備することを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記負荷制御手段は、前記算出された処理負荷がしきい値よりも高い場合、前記複数の第３タスクを前記複数の実行ユニットに割り当てる処理を、前記動画像データの次の入力画像フレームの処理タイミングが到来するまでの期間中、停止することを特徴とする請求項１記載の情報処理装置。
【請求項４】
前記各第２タスクによって生成される出力画像データ部を第１バッファに格納し、前記各第３タスクにより画質が改善された出力画像データ部を第２バッファに格納するバッファリング手段をさらに具備し、
前記負荷制御手段は、前記算出された処理負荷が前記しきい値よりも高くない場合、前記第１バッファに格納されている前記各第２タスクによって生成される出力画像データ部を、前記第２バッファに格納されている前記各第３モジュールにより画質が改善された出力画像データ部を用いて書き換え、以降に前記各第３タスクによる処理が完了した場合、前記第１バッファへ処理結果を格納することを特徴とする請求項１記載の情報処理装置。
【請求項５】
前記複数の実行ユニットは、１つのプロセッサに内蔵される複数のプロセッサコアであることを特徴とする請求項１記載の情報処理装置。
【請求項６】
前記複数の実行ユニットは、複数のプロセッサであることを特徴とする請求項１記載の情報処理装置。
【請求項７】
複数の実行ユニットを用いて動画像データに対する画像処理を並列に実行する並列動作制御方法であって、
前記動画像データの入力画像フレームを構成する複数の画像データ部をそれぞれ解析するための複数の第１タスクと、前記複数の画像データ部それぞれの解析結果を用いて前記複数の画像データ部に対応する、出力画像フレーム上の複数の出力画像データ部をそれぞれ生成する複数の第２タスクと、前記複数の出力画像データ部の画質をそれぞれ改善する複数の第３タスクとを、前記複数の第１タスクと前記複数の第２タスクと前記複数の第３タスクとの間の実行順序の関係に基づいて規定される順番で前記複数の実行ユニットに割り当てるステップと、
前記複数の第１タスクによる前記複数の画像データ部の解析の完了に応答して、前記複数の第１タスクによる解析結果に基づき、前記複数の第３タスクの実行に要する処理負荷を算出するステップと、
前記算出された処理負荷がしきい値よりも高い場合、前記複数の第３タスクを前記複数の実行ユニットに割り当てる処理を中断し、前記複数の第２タスクによって生成された出力画像フレームを出力するステップと、
前記算出された処理負荷が前記しきい値よりも高くない場合、前記複数の第３タスクを前記複数の実行ユニットに割り当てる処理を継続し、前記複数の第３タスクにより画質が改善された出力画像フレームを出力するステップとを具備することを特徴とする並列動作制御方法。
【請求項８】
前記各第２タスクによって生成される出力画像データ部を第１バッファに格納し、前記各第３タスクにより画質が改善された出力画像データ部を第２バッファに格納するバッファリングステップをさらに具備することを特徴とする請求項７記載の並列動作制御方法。
【請求項９】
複数の実行ユニットを備えるコンピュータに動画像データに対する画像処理を並列に実行させるプログラムであって、
前記動画像データの入力画像フレームを構成する複数の画像データ部をそれぞれ解析するための複数の第１タスクと、前記複数の画像データ部それぞれの解析結果を用いて前記複数の画像データ部に対応する、出力画像フレーム上の複数の出力画像データ部をそれぞれ生成する複数の第２タスクと、前記複数の出力画像データ部の画質をそれぞれ改善する複数の第３タスクとを、前記複数の第１タスクと前記複数の第２タスクと前記複数の第３タスクとの間の実行順序の関係に基づいて規定される順番で前記複数の実行ユニットに割り当てる手順と、
前記複数の第１タスクによる前記複数の画像データ部の解析の完了に応答して、前記複数の第１タスクによる解析結果に基づき、前記複数の第３タスクの実行に要する処理負荷を算出する手順と、
前記算出された処理負荷がしきい値よりも高い場合、前記複数の第３タスクを前記複数の実行ユニットに割り当てる処理を中断し、前記複数の第２タスクによって生成された出力画像フレームを出力する手順と、
前記算出された処理負荷が前記しきい値よりも高くない場合、前記複数の第３タスクを前記複数の実行ユニットに割り当てる処理を継続し、前記複数の第３タスクにより画質が改善された出力画像フレームを出力する手順とを前記コンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、並列処理を実行する情報処理装置及び同装置に適用される並列動作制御方法に関する。
【背景技術】
【０００２】
近年、複数のプロセッサやマルチコアプロセッサを搭載したパーソナルコンピュータが普及している。このようなパーソナルコンピュータでは、マルチスレッドで動作するプログラムのスレッドを別々のプロセッサ（プロセッサコア）に割り当て、並列で処理することができる。また、複数のアプリケーションプログラムを同時に実行する場合にも、プログラムに対応するスレッドを別々のプロセッサ（プロセッサコア）に割り当て、並列で処理することができる。このようなことから、複数のプロセッサやマルチコアプロセッサを搭載したパーソナルコンピュータでは、パフォーマンスやデスクトップの応答性を向上させることができる。
【０００３】
特許文献１には、入力画像により処理負荷が変化する画像処理用のアルゴリズムを、並列処理機上で効率よく実行する並列画像処理装置が開示されている。この並列画像処理装置は、各プロセッサに入力画像を分割した画像領域を割り当て、実行中に負荷が増加したプロセッサに割り当てられた未処理の画像領域を、負荷の少ない別のプロセッサへ再度割り当てることで、各プロセッサにかかる負荷を均等にする。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−１５７２４３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、特許文献１の並列画像処理装置では、未処理の画像領域を再割当てするプロセッサ数が不足する場合、又は未処理の画像領域を再割当てするプロセッサの性能が十分でない場合、要求される処理時間内に処理を完了できない可能性がある。
【０００６】
本発明は上述の事情を考慮してなされたものであり、実行する処理の負荷に応じて処理時間を短縮するよう並列処理を制御できる情報処理装置及び並列動作制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上述の課題を解決するため、本発明の情報処理装置は、複数の実行ユニットと、動画像データの入力画像フレーム内の複数の画像データ部をそれぞれ解析するための複数の第１タスクと、前記複数の画像データ部それぞれの解析結果を用いて前記複数の画像データ部に対応する出力画像フレーム上の複数の出力画像データ部をそれぞれ生成する複数の第２タスクと、前記複数の出力画像データ部の画質をそれぞれ改善する複数の第３タスクとを、前記複数の第１タスクと前記複数の第２タスクと前記複数の第３タスクとの間の実行順序の関係に基づいて規定される順番で前記複数の実行ユニットに割り当てるスケジューラと、前記複数の第１タスクによる前記複数の画像データ部の解析が完了した場合、前記複数の画像データ部の解析結果に基づき、前記複数の第３タスクの実行に要する処理負荷を算出する負荷算出手段と、前記算出された処理負荷がしきい値よりも高い場合、前記複数の第３タスクを前記複数の実行ユニットに割り当てる処理を中断し、前記複数の第２タスクによって生成された出力画像フレームを出力し、前記算出された処理負荷が前記しきい値よりも高くない場合、前記複数の第３タスクを前記複数の実行ユニットに割り当てる処理を継続し、前記複数の第３タスクにより画質が改善された出力画像フレームを出力する負荷制御手段とを具備することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、実行する処理の負荷に応じて処理時間を短縮するよう並列処理を制御できる。
【図面の簡単な説明】
【０００９】
【図１】本発明の一実施形態に係る情報処理装置の構成例を示すブロック図。
【図２】同実施形態に係る情報処理装置によって実行される画像処理プログラム及び並列動作制御ランタイムライブラリの機能構成の例を示すブロック図。
【図３】図２に示す画像処理プログラム内の各モジュールに対応するタスクを演算コアへ割り当てる順序の例を示す図。
【図４】図２に示す画像処理プログラム内の各モジュールに対応するタスクの処理例を示す図。
【図５】図２に示す画像処理プログラム内の各モジュールに対応するタスクの別の処理例を示す図。
【図６】同実施形態に係る情報処理装置によって実行される並列動作制御処理の手順を示すフローチャート。
【図７】同実施形態に係る情報処理装置によって実行される負荷制御処理の手順を示すフローチャート。
【発明を実施するための形態】
【００１０】
以下、図面を参照して本発明の実施形態を説明する。
【００１１】
まず、図１を参照して、本発明の一実施形態に係る情報処理装置の構成を説明する。この情報処理装置は、例えば、パーソナルコンピュータ、又は各種電子機器に内蔵される組み込みシステムとして実現し得る。本コンピュータは、ＣＰＵ１１、サブプロセッサ１２、ＧＰＵ１３、ネットワークコントローラ１４、エンコーダ／デコーダ１５、主記憶装置１６、外部記憶装置１７、及び表示装置１８等を備える。コンピュータ内の各部は、内部バスを介して相互に接続されている。
【００１２】
ＣＰＵ１１は本コンピュータの動作を制御するプロセッサであり、外部記憶装置１７から主記憶装置１６にロードされる、オペレーティングシステム（ＯＳ）１６１、画像処理プログラム１６２、及び並列動作制御ランタイムライブラリ１６３等を実行する。画像処理プログラム１６２は、入力される動画像データに対して所定の画像処理を施すためのプログラムである。また、並列動作制御ランタイムライブラリ１６３は、画像処理プログラム１６２内の複数のプログラムモジュールに対応するタスクのそれぞれを並列に実行するためのランタイムライブラリである。なお、タスクは、他のタスクと非同期に実行可能な処理単位であり、例えばスレッドまたはプロセスとして実行される。ＣＰＵ１１は、実行ユニット（ＣＰＵコア）であるコア１１１，１１２，１１３を複数内蔵している。コア１１１，１１２，１１３（演算コアとも云う）を複数内蔵するＣＰＵ１１を搭載する本コンピュータは、複数のプログラムを並列実行することが可能であり、また、１つのプログラム中の複数の処理（複数のタスク）を並列実行することも可能である。サブプロセッサ１２は、特定分野の演算に特化した補助的なプロセッサである。サブプロセッサ１２が、例えば超解像処理等の負荷の高い処理を受け持つことで、ＣＰＵ１１は、他のタスクを実行することができる。
【００１３】
ＧＰＵ１３は、本コンピュータのディスプレイとして使用される表示装置１８を制御する表示コントローラである。このＧＰＵ１３によって生成される表示信号は表示装置１８に送られる。ネットワークコントローラ１４は、たとえばIEEE 802.11規格の無線通信を実行する無線通信デバイスである。エンコーダ／デコーダ１５は、入力される画像信号を符号化又は復号する。デコーダは、外部記憶装置１７に格納されている映像や画像、ネットワークコントローラ１４を介して入力される映像や画像等を復号する。エンコーダは、画像処理プログラム１６２による出力画像等を符号化する。符号化された出力画像は、外部記憶装置１７等へ格納される。
【００１４】
図２は、画像処理プログラム１６２及び並列動作制御ランタイムライブラリ１６３の構成を示すブロック図である。画像処理プログラム１６２中のモジュールそれぞれに対応するタスクは、ランタイムである並列動作制御ランタイムライブラリ１６３によって複数のプロセッサ（複数の実行ユニット）に割り当てられる。ここでは、画像処理プログラム１６２及び並列動作制御ランタイムライブラリ１６３に対応するタスクは、いずれもマルチコアプロセッサであるＣＰＵ１１上で実行されることを想定する。つまり、画像処理プログラム１６２及び並列動作制御ランタイムライブラリ１６３の各々に対応するタスクは、ＣＰＵ１１内の演算コア１１０（演算コア１１１，１１２，１１３のいずれか）に割り当てられる。
【００１５】
画像処理プログラム１６２は、動画像データの各入力画像フレームに対して所定の画像処理を施すことによって出力画像フレームを生成するプログラムである。画像処理プログラム１６２は、例えば、動画像データの低解像度な画像フレームから鮮鋭な高解像度フレーム画像を生成する超解像処理や動画像データ内のフレーム間に挿入すべき補間フレームを生成するフレーム補間処理を行うプログラムである。
【００１６】
画像処理プログラム１６２は、画像解析モジュール２１、固定演算モジュール２２、及び変動演算モジュール２３を備える。画像解析モジュール２１、固定演算モジュール２２、及び変動演算モジュール２３は、入力画像フレームを、所定数の画素毎に分割した画像領域を処理単位として、それぞれの処理を施す。すなわち、本実施形態では、画像解析モジュール２１、固定演算モジュール２２、及び変動演算モジュール２３それぞれに対応する処理が並列に実行できるようにするために、入力画像フレームは複数の画像領域（複数のスライスまたは複数のブロック）に分割される。画像解析モジュール２１、固定演算モジュール２２、及び変動演算モジュール２３の各々は、各画像領域に対応する画像データ部単位で、入力画像フレームに対する処理を実行する。
【００１７】
画像解析モジュール２１は、入力画像フレームを解析するプログラムモジュールである。画像解析モジュール２１は、入力画像フレームを分割した所定の画像領域に対応する画像データ単位で解析を行う。つまり、画像解析モジュール２１を実行することにより、入力画像フレームを構成する複数の画像データ部をそれぞれ解析するための複数のタスク（複数の画像解析タスク）が演算コア１１０に割り当てられる。
【００１８】
固定演算モジュール２２は、入力画像フレームから出力画像フレームを生成するプログラムモジュールである。固定演算モジュール２２は、画像解析モジュール２１による処理結果（解析結果）を用いて、入力画像を分割した所定の画像領域に対応する画像データ単位で、対応する出力画像上の画像領域を生成する。つまり、固定演算モジュール２２を実行することにより、入力画像フレームの複数の画像データ部それぞれの解析結果を用いて、それら複数の画像データ部に対応する出力画像フレーム上の複数の出力画像データ部をそれぞれ生成するための複数のタスク（複数の固定演算タスク）が演算コア１１０に割り当てられる。
【００１９】
変動演算モジュール２３は、固定演算モジュール２２により生成された出力画像の画質を改善するプログラムモジュールである。変動演算モジュール２３は、出力画像上の所定の画像領域に対応する画像データ単位で、固定演算モジュール２２により生成された出力画像の画質を改善する。つまり、変動演算モジュール２３を実行することにより、複数の出力画像データ部の画質をそれぞれ改善するための複数のタスク（複数の変動演算タスク）が演算コア１１０に割り当てられる。
【００２０】
並列動作制御ランタイムライブラリ１６３は、画像処理プログラム１６２内のプログラムモジュールそれぞれに対応するタスク（画像解析タスク群、固定演算タスク群、変動演算タスク群）を並列に実行するためのランタイムライブラリである。つまり、並列動作制御ランタイムライブラリ１６３は、画像処理プログラム１６２内の複数の画像解析タスク、複数の固定演算タスク、複数の変動演算タスクを、演算コア１１０に割り当てる。これら複数の画像解析タスク、複数の固定演算タスク、および複数の変動演算タスクには、それぞれ実行可能な順序が設定されており、並列動作制御ランタイムライブラリ１６３は、この順序に従ってタスクを演算コア１１０に割り当てる。
【００２１】
並列動作制御ランタイムライブラリ１６３は、動作制御部３１、負荷制御部３２、負荷算出部３３、及び処理時間測定部３４を備える。動作制御部３１は、スケジューラ３１１とバッファリング部３１２とを備える。
【００２２】
スケジューラ３１１は、画像処理プログラム１６２内の各プログラムモジュールのタスクを演算コア１１０に割り当てる。スケジューラ３１１は、複数の画像解析タスクと複数の固定演算タスクと複数の変動演算タスクとの間の実行順序の関係（時系列的な実行規則）と演算コア１１０それぞれの処理負荷とに基づき、それらタスクを演算コア１１０（演算コア１１１，１１２，１１３）に割り当てる。
【００２３】
バッファリング部３１２は、演算コア１１０に割り当てられたタスクの処理結果を記憶装置へ格納する。バッファリング部３１２は、タスクが固定演算モジュール２２に対応するタスクである場合、処理結果を出力記憶領域へ格納する。また、バッファリング部３１２は、タスクが変動演算モジュール２３に対応するタスクである場合、処理結果を一時記憶領域へ格納する。なお、出力記憶領域は、出力画像のデータを格納するために確保された記憶装置内の領域である。一時記憶領域は、変動演算モジュール２３に対応するタスクの処理結果を一時的に格納するために確保された記憶装置内の領域である。
【００２４】
負荷算出部３３は、画像解析モジュール２１による入力画像フレームの解析が全て完了したことに応答して、その解析結果に基づき、画像処理プログラム１６２によって現在の入力画像フレームを処理するための処理負荷（例えば演算量）を算出する。処理負荷は、例えば、複数の変動演算タスクの実行に要する処理負荷を示す。つまり、変動演算モジュール２３に対応する処理は、画像解析モジュール２１による解析結果に応じて負荷が変動する処理である。なお、処理負荷は、複数の画像解析タスク、複数の固定演算タスク、および複数の変動演算タスクの実行に要する処理負荷であってもよい。この場合、画像解析モジュール２１、固定演算モジュール２２、及び変動演算モジュール２３のそれぞれに対応する処理は、画像解析モジュール２１による解析結果に応じて負荷が変動する処理であるといえる。負荷算出部３３は、算出した処理負荷を負荷制御部３２へ出力する。
【００２５】
負荷制御部３２は、負荷算出部３３により算出された画像処理プログラム１６２の処理負荷に基づき、演算コア１１０（演算コア１１１，１１２，１１３のいずれか）に割り当てられるタスクを制御する。具体的には、算出された画像処理プログラム１６２の処理負荷がしきい値以上である場合、負荷制御部３２は、変動演算モジュール２３を処理対象のモジュールから外す。つまり、負荷制御部３２は、変動演算モジュール２３に対応するタスクを、演算コア１１０に割り当てる処理を中断する。したがって、画像処理プログラム１６２は、算出された画像処理プログラム１６２の処理負荷がしきい値以上である場合、固定演算モジュール２２により生成された画像を処理結果として出力する。以上により、ＣＰＵ１１にかかる負荷を削減し、画像処理プログラム１６２による現在の入力画像フレームの処理にかかる時間を短縮することができる。
【００２６】
一方、算出された画像処理プログラム１６２の処理負荷がしきい値以上でない場合、負荷制御部３２は、変動演算モジュール２３に対応するタスクを、演算コア１１０に割り当てる処理を続行する。また、負荷制御部３２は、バッファリング部３１２により一時記憶領域に格納されている変動演算モジュール２３の処理結果を用いて、出力記憶領域に格納されている固定演算モジュール２２の処理結果を更新する。つまり、変動演算モジュール２３による処理結果、すなわち画質が改善された出力画像が、画像処理プログラム１６２の出力画像として出力記憶領域へ格納される。また、バッファリング部３１２は、以降に演算コア１１０へ割り当てられた変動演算モジュール２３に対応するタスクの処理結果を、一時記憶領域ではなく直接、出力記憶領域へ格納する。これは、算出された画像処理プログラム１６２の処理負荷がしきい値以上でない場合、変動演算モジュール２３に対応するタスクが全て実行されることが確定されるためである。つまり、画像処理プログラム１６２は、算出された画像処理プログラム１６２の処理負荷がしきい値以上でない場合、変動演算モジュール２３により画質が改善された画像を処理結果として出力する。
【００２７】
処理時間測定部３４は、画像処理プログラム１６２が現在の入力画像を処理するために要した時間を測定する。動作制御部３１及び負荷制御部３２は、処理時間測定部３４によって測定された処理時間に基づいて、並列処理の実行や負荷の制御を行ってもよい。
【００２８】
負荷制御部３２は、画像解析モジュール２１による入力画像フレーム内の全ての画像データ部の解析が完了したことに応答して、解析結果に基づいて画像処理プログラム１６２の入力画像フレームに対する処理負荷を算出し、算出した処理負荷に応じて変動演算モジュール２３のタスクを演算コア１１０へ割り当てる処理を続行するか中断するかを判定する。画像処理プログラム１６２の処理負荷が大きく、変動演算モジュール２３のタスクを演算コア１１０に割り当てる処理を中断する場合、以降に割り当てる予定であった変動演算モジュール２３のタスクの分、処理量が削減され、処理時間を短縮することができる。なお、現在の入力画像に対する処理が完了し、新たな入力画像に対する処理が開始された場合、変動演算モジュール２３のタスクを演算コア１１０へ割り当てる処理は再開される。
【００２９】
また、スケジューラ３１１は、実行中に、ある演算コアの負荷が増加した際、未処理のタスクを負荷の少ない別の演算コアへ割り当て直す再割り当てを行うことがある。しかし、再割り当てを行う場合、演算コア間の同期オーバヘッドが発生する可能性がある。また、ある演算コアで処理負荷を算出する処理を実行し、算出された処理負荷を用いて別の演算コアで負荷制御を行う場合、この別の演算コアでは、処理負荷の算出を待つ待ち時間が生じ、処理が遅延する可能性がある。さらに、未処理のタスクを再割り当てするための演算コアが不足する場合、又は演算コアの性能が不十分である場合、スケジューラ３１１によって演算コアにかかる処理負荷を均等にしたとしても、要求される処理時間内に処理を完了させることができない可能性がある。
【００３０】
このため、本実施形態では、画像処理プログラム１６２による現在の入力画像フレームの処理中にその現在の入力画像フレームに対する処理負荷を算出し、処理負荷が大きい場合には、変動演算モジュール２３に対応するタスクを省略することで、現在の入力画像フレームを処理するためのタスク自体を削減する。これにより、画像処理プログラム１６２にかかる処理時間を短縮することができる。また、この場合には、演算コアにタスクを再割り当てするための同期オーバヘッドや、ある演算コアの処理結果を別の演算コアが待つ待ち時間が生じない。
【００３１】
図３は、画像解析モジュール２１、固定演算モジュール２２、及び変動演算モジュール２３のそれぞれに対応するタスクを実行する順序の例、すなわち、演算コア１１０（演算コア１１１，１１２，１１３のいずれか）に割り当てる順序の例を示す。
【００３２】
スケジューラ３１１は、入力画像（入力画像フレーム）を横方向にスライスした画像領域に対応する画像データを処理単位とする画像解析モジュール２１、固定演算モジュール２２、及び変動演算モジュール２３に対応するタスクを演算コア１１０に割り当てる。スケジューラ３１１は、図３中に矢印で示す実行順序（実行規則）に従って、モジュールに対応する画像領域を処理単位とするタスクを演算コア１１０に割り当てる。
【００３３】
具体的には、まず、スケジューラ３１１は、入力画像４１の上から一番目の画像領域を対象とした画像解析モジュール２１のタスクを演算コア１１１，１１２，１１３のいずれかに割り当てる。次に、スケジューラ３１１は、入力画像４１の上から二番目の画像領域を対象とした画像解析モジュール２１のタスク、又は入力画像４１の上から一番目の画像領域を対象とした固定演算モジュール２２のタスクを演算コア１１０に割り当てる。そして、入力画像４１の上から二番目の画像領域を対象とした画像解析モジュール２１のタスクと、入力画像４１の上から一番目の画像領域を対象とした固定演算モジュール２２のタスクとが、それぞれ演算コア１１０に割り当てられた後、スケジューラ３１１は、入力画像４１の上から三番目の画像領域を対象とした画像解析モジュール２１のタスク、入力画像４１の上から二番目の画像領域を対象とした固定演算モジュール２２のタスク、又は入力画像４１の上から一番目の画像領域を対象とした変動演算モジュール２３のタスクを演算コア１１０に割り当てる。
【００３４】
スケジューラ３１１は、上述の例のような順序に基づき、画像領域を処理単位とする各モジュールのタスクを演算コア１１０に割り当てる。
【００３５】
図４及び図５は、画像解析モジュール２１、固定演算モジュール２２、及び変動演算モジュール２３に対応するタスクの処理例を示す。
【００３６】
図４は、画像処理プログラム１６２による処理負荷が大きく、変動演算モジュール２３のタスクを演算コア１１０に割り当てる処理を中断する場合に、中断による処理負荷削減の効果が最も大きい場合の例を示す。
【００３７】
図４に示す例では、入力画像５１上の全ての画像領域に対応する画像解析モジュール２１のタスクと、入力画像５１上の上から一番目から六番目までの画像領域に対応する固定演算モジュール２２のタスクとが、スケジューラ３１１によって演算コア１１０に割り当てられ、処理が完了している。
【００３８】
入力画像５１上の全ての画像領域に対応する画像解析モジュール２１の処理が完了したことに応答して、負荷算出部３３は、画像解析モジュール２１による処理結果（解析結果）に基づき、画像処理プログラム１６２が現在の入力画像を処理するためにかかる処理負荷を算出する。そして、負荷制御部３２は、入力画像５１上の未処理の画像領域に対応する変動演算モジュール２３のタスクを演算コア１１０に割り当てる処理を続行するか否かを判定する。処理負荷がしきい値以上である場合、負荷制御部３２は、入力画像５１上の未処理の画像領域に対応する変動演算モジュール２３のタスクを演算コア１１０に割り当てる処理を中断する。したがって、図４では、入力画像５１上の全ての画像領域に対応する変動演算モジュール２３のタスクが演算コア１１０に割り当てられず、これらタスクに対応する処理の分だけ処理量が削減される。
【００３９】
また、図５は、画像処理プログラム１６２による処理負荷が大きく、変動演算モジュール２３のタスクを演算コア１１０に割り当てる処理を中断する場合に、中断による処理負荷削減の効果が最も小さい場合の例を示す。
【００４０】
図５に示す例では、入力画像６１上の全て画像領域に対応する画像解析モジュール２１のタスクと、入力画像６１上の上から一番目から六番目までの画像領域に対応する固定演算モジュール２２のタスクと、入力画像６１上の上から一番目から六番目までの画像領域に対応する変動演算モジュール２３のタスクとが、スケジューラ３１１によって演算コア１１０に割り当てられ、処理が完了している。
【００４１】
入力画像６１上の全て画像領域に対応する画像解析モジュール２１の処理が完了したことに応答して、負荷算出部３３は、画像解析モジュール２１による処理結果（解析結果）に基づき、画像処理プログラム１６２が現在の入力画像を処理するためにかかる処理負荷を算出する。そして、負荷制御部３２は、入力画像６１上の未処理の画像領域に対応する変動演算モジュール２３のタスクを、演算コア１１０に割り当てる処理を続行するか否かを判定する。処理負荷がしきい値以上である場合、負荷制御部３２は、入力画像６１上の未処理の画像領域に対応する変動演算モジュール２３のタスクを、演算コア１１０に割り当てる処理を中断する。したがって、図５では、入力画像６１上の下から一番目の画像領域に対応する変動演算モジュール２３のタスクが、演算コア１１１，１１２，１１３のいずれにも割り当てられず、このタスクに対応する処理の分だけ処理量が削減される。
【００４２】
以上のように、画像処理プログラム１６２による処理負荷が大きく、変動演算モジュール２３のタスクを演算コア１１０に割り当てる処理を中断する場合に、削減可能な処理負荷は、スケジューラ３１１によって決定される演算コア１１０の割り当てのタイミング等によって変化する。また、削減可能な処理負荷（処理時間）は、入力画像を処理単位である画像領域に分割する分割数、ＣＰＵ１１内の演算コア数、現在の入力画像に対する変動演算モジュール２３の処理負荷等によって変化する。
【００４３】
現在の入力画像に対する変動演算モジュール２３の処理負荷をＰ［ｍｓｅｃ］，入力画像を処理単位の画像領域に分割した分割数をｄ，ＣＰＵ１１内の演算コア数をｎとした場合、削減可能な処理負荷（処理時間）は以下のように算出される。すなわち、削減可能な処理負荷が最も大きい場合（図４）、
Ｐ／ｎ
削減可能な処理負荷が最も小さい場合（図５）、
Ｐ／（ｎ×ｄ）
だけ、処理時間を削減することができる。
【００４４】
例えば、現在の入力画像に対する変動演算モジュール２３の処理負荷Ｐ（演算コア１つで全て処理した場合の処理負荷）が６０［ｍｓｅｃ］，入力画像の分割数ｄが１０，ＣＰＵ１１内の演算コア数ｎが２であると仮定すると、削減可能な処理負荷が最も大きい場合、
６０／２＝３０［ｍｓｅｃ］
だけ、処理時間を削減することができる。また、削減可能な処理負荷が最も小さい場合、
６０／（２×１０）＝３［ｍｓｅｃ］
だけ、処理時間を削減することができる。
【００４５】
図６は、並列動作制御ランタイムライブラリ１６３による並列動作制御処理の手順を示すフローチャートである。
【００４６】
まず、並列動作制御ランタイムライブラリ１６３は、次の処理対象の画像フレームがあるかどうか（処理開始時は、１枚目の処理対象の画像フレームがあるかどうか）を判定する（ステップＳ１０１）。
【００４７】
処理対象の画像フレームがない場合（ステップＳ１０１のＮＯ）、並列動作制御ランタイムライブラリ１６３は、処理を終了する。
【００４８】
処理対象の画像フレームがある場合（ステップＳ１０１のＹＥＳ）、並列動作制御ランタイムライブラリ１６３は、画像解析モジュール２１による入力画像の解析が完了したかどうかを示す画像解析完了フラグに０を設定し、リセットする（ステップＳ１０２）。
【００４９】
次いで、並列動作制御ランタイムライブラリ１６３は、ＣＰＵ１１内の演算コア１１０に割り当てる処理対象のタスクがあるかどうかを判定する（ステップＳ１０３）。演算コア１１０に割り当てるタスクは、画像処理プログラム１６２内の画像解析モジュール２１、固定演算モジュール２２、及び変動演算モジュール２３のいずれかに対応するタスクである。
【００５０】
処理対象のモジュールがない場合（ステップＳ１０３のＮＯ）、並列動作制御ランタイムライブラリ１６３は、ステップＳ１０１の処理に進む。
【００５１】
処理対象のモジュールがある場合（ステップＳ１０３のＹＥＳ）、並列動作制御ランタイムライブラリ１６３は、演算コア１１０へ処理対象のタスクを割り当てる（ステップＳ１０４）。ステップＳ１０４では、実行可能な複数のタスクが存在する場合には、それら実行可能な複数のタスクが演算コア１１０内の複数のコアに割り当てられる。これにより、実行可能な複数のタスクは演算コア１１０上で並列に実行される。
【００５２】
そして、並列動作制御ランタイムライブラリ１６３は、固定演算モジュール２２による入力画像内の画像領域単位のタスクの処理が完了したかどうか、つまりある１つの画像領域に対応する出力画像データ部を生成する処理が完了したかどうかを判定する（ステップＳ１０５）。
【００５３】
固定演算モジュール２２に対応するタスクの処理が完了した場合（ステップＳ１０５のＹＥＳ）、並列動作制御ランタイムライブラリ１６３は、固定演算モジュール２２に対応するタスクの処理結果、つまりある１つの画像領域に対応する出力画像データ部を出力記憶領域へ格納する（ステップＳ１０６）。
【００５４】
次いで、並列動作制御ランタイムライブラリ１６３は、変動演算モジュール２３による入力画像内の画像領域単位のタスクの処理が完了したかどうか、つまりある１つの画像領域に対応する出力画像データ部に対する画質改善処理が完了したかどうかを判定する（ステップＳ１０７）。
【００５５】
変動演算モジュール２３に対応するタスクの処理が完了した場合（ステップＳ１０７のＹＥＳ）、並列動作制御ランタイムライブラリ１６３は、画像解析完了フラグに０が設定されているかどうかを判定する（ステップＳ１０８）。
【００５６】
画像解析完了フラグに０が設定されている場合（ステップＳ１０８のＹＥＳ）、並列動作制御ランタイムライブラリ１６３は、変動演算処理モジュール２３に対応するタスクの処理結果、つまり画質改善された出力画像データ部を一時記憶領域へ格納する（ステップＳ１０９）。
【００５７】
画像解析完了フラグに０が設定されていない場合（１が設定されている場合）（ステップＳ１０８のＮＯ）、並列動作制御ランタイムライブラリ１６３は、変動演算処理モジュール２３に対応するタスクの処理結果を出力記憶領域へ格納する（ステップＳ１１０）。
【００５８】
そして、並列動作制御ランタイムライブラリ１６３は、画像解析モジュール２１による入力画像を解析するタスクの処理が全て完了しているかどうかを判定する（ステップＳ１１１）。つまり、並列動作制御ランタイムライブラリ１６３は、画像解析モジュール２１が入力画像内の全ての画像領域について処理を完了したかどうかを判定する。
【００５９】
画像解析モジュール２１による入力画像を解析するタスクの処理が完了していない場合（ステップＳ１１１のＮＯ）、並列動作制御ランタイムライブラリ１６３は、ステップＳ１０３以降の処理を再度実行する。
【００６０】
画像解析モジュール２１による入力画像を解析するタスクの処理が完了している場合（ステップＳ１１１のＹＥＳ）、並列動作制御ランタイムライブラリ１６３は、画像解析完了フラグに、画像解析モジュール２１に対応するタスクの処理が全て完了したことを示す１を設定する（ステップＳ１１２）。また、並列動作制御ランタイムライブラリ１６３は、負荷制御処理を実行する（ステップＳ１１３）。そして、並列動作制御ランタイムライブラリ１６３は、ステップＳ１０３以降の処理を再度実行する。
【００６１】
図７は、並列動作制御ランタイムライブラリ１６３によるステップＳ１１３の負荷制御処理の手順を示すフローチャートである。
【００６２】
まず、並列動作制御ランタイムライブラリ１６３は、画像解析モジュール２１による入力画像フレームの解析結果に基づいて、画像処理プログラム１６２が現在の入力画像フレームを処理するためにかかる処理負荷を算出する（ステップＳ２０１）。処理負荷は、例えば、複数の変動演算タスクの実行に要する処理負荷を示す。なお、処理負荷は、複数の画像解析タスク、複数の固定演算タスク、および複数の変動演算タスクの実行に要する処理負荷であってもよい。
【００６３】
次に、並列動作制御ランタイムライブラリ１６３は、算出した処理負荷がしきい値以上であるかどうかを判定する（ステップＳ２０２）。処理負荷は、例えば、画像処理プログラム１６２が入力画像フレームに対して高解像度化処理を施す場合、入力画像フレーム内のエッジ数に比例して増加する。そこで、並列動作制御ランタイムライブラリ１６３は、画像処理プログラム１６２を実行するシステム上で、エッジ数と処理負荷との関係を事前に計測し、要求性能（要求される処理時間）を超える場合のエッジ数をしきい値に設定する。また、並列動作制御ランタイムライブラリ１６３は、システム上で画像処理プログラム１６２を実行する際に、処理時間測定部３４によって測定された処理時間が要求性能（要求される処理時間）を超えている場合、その時のエッジ数を以降の処理に用いるしきい値に設定してもよい。この場合、並列動作制御ランタイムライブラリ１６３は、しきい値を実行時に動的に変更することができる。
【００６４】
例えば、高解像度化処理では、エッジの近くだけで、条件式を連立した方程式を解いて高解像度画像の画素値を求める処理が行われ、エッジがない部分（平坦な部分）では、この処理を省いて処理量が削減される（特開２００７−３１０８３７号公報参照）。この処理にかかる処理時間は、エッジ画素数（エッジ付近の画素数）に比例して増加する。つまり、入力画像フレーム内のエッジ画素数と、変動演算モジュール２３による処理にかかる処理時間とは比例関係にある。このため、要求される処理時間（制約時間）を超える処理、すなわち処理負荷が高い処理を実行した場合のエッジ画素数をしきい値に用いることで、画像処理プログラム１６２による入力画像フレームの処理を、要求される処理時間内に完了することができる。したがって、上述の例では、画像解析モジュール２１が入力画像フレーム内のエッジ数（エッジ画素数）を算出し、並列動作制御ランタイムライブラリ１６３が、算出されたエッジ数（エッジ画素数）が設定されたしきい値以上であるかどうかを判定する。
【００６５】
算出した処理負荷がしきい値以上である場合（ステップＳ２０２のＹＥＳ）、並列動作制御ランタイムライブラリ１６３は、変動演算モジュール２３を処理対象のモジュールから外す（ステップＳ２０３）。つまり、並列動作制御ランタイムライブラリ１６３は、変動演算モジュール２３を演算コア１１０に割り当てる処理を中断する。
【００６６】
算出した処理負荷がしきい値以上でない場合（ステップＳ２０２のＮＯ）、並列動作制御ランタイムライブラリ１６３は、一時記憶領域に格納されている処理結果を用いて、出力記憶領域に格納されている処理結果を更新する（ステップＳ２０４）。つまり、並列動作制御ランタイムライブラリ１６３は、固定演算モジュール２２による処理結果を、変動演算モジュール２３による処理結果に置き換える。
【００６７】
以上の処理により、並列動作制御ランタイムライブラリ１６３は、画像処理プログラム１６２による現在の入力画像フレームの処理中に、その現在の入力画像フレームに対する処理負荷を算出する。画像処理プログラム１６２の処理負荷が大きい場合、並列動作制御ランタイムライブラリ１６３は、変動演算モジュール２３に対応する未処理のタスクを省略して処理負荷を削減することで、処理時間を短縮することができる。
【００６８】
また、画像処理プログラム１６２の処理負荷が大きい場合には、固定演算モジュール２２に対応するタスクの処理結果（出力記憶領域に格納された処理結果）を出力画像として用いる。一方、画像処理プログラム１６２の処理負荷が小さい場合には、変動演算モジュール２３に対応するタスクの処理結果（一時記憶領域に格納された処理結果）で、出力記憶領域に格納された処理結果を更新し、変動演算モジュール２３に対応するタスクの処理結果を出力画像として用いる。変動演算モジュール２３に対応するタスクの処理結果は、固定演算モジュール２２に対応するタスクの処理結果である画像（画像データ部）の画質が改善された画像（画像データ部）である。しかし、画像処理プログラム１６２の処理負荷が大きい場合には、並列動作制御ランタイムライブラリ１６３は、変動演算モジュール２３に対応するタスクを演算コア１１０に割り当てる処理を途中で中断するため、変動演算モジュール２３に対応するタスクの処理結果をそのまま出力記憶領域に格納した場合、中断前の出力画像データ部の画質が改善されているのに対し、中断後の出力画像データ部（固定演算モジュール２２に対応するタスクの処理結果）の画質は改善されていないという、出力画像内の不整合が生じる。このような画像内の不整合は、ユーザに違和感を与える可能性がある。したがって並列動作制御ランタイムライブラリ１６３は、画像処理プログラム１６２による現在の入力画像フレームの処理負荷が算出されるまでの間、変動演算モジュール２３に対応するタスクの処理結果を一時記憶領域に格納し、画像処理プログラム１６２の処理負荷が小さい場合（変動演算モジュール２３に対応するタスクの処理を中断しない場合）に、一時記憶領域に格納された処理結果（変動演算モジュール２３に対応するタスクの処理結果）を用いて、出力記憶領域に格納された処理結果（固定演算モジュール２２に対応するタスクの処理結果）を書き換える。これにより、画像解析モジュール２１、固定演算モジュール２２、及び変動演算モジュール２３に対応するタスクを所定の実行順序に従って並列に処理できると共に、画像解析モジュール２１による入力画像フレームの解析結果に基づく負荷制御に応じて、固定演算モジュール２２に対応するタスクの処理結果と変動演算モジュール２３に対応するタスクの処理結果のいずれかを選択して、出力画像とすることができる。これらのことから、本実施形態では、画像処理プログラム１６２による現在の入力画像フレームの処理負荷の算出、及び算出された処理負荷に基づく負荷制御によるフィードバックを待つことなく、各モジュールに対応するタスクを実行することができる。つまり、負荷制御に用いられる画像解析モジュール２１に対応する入力画像解析のタスクと、固定演算モジュール２２及び変動演算モジュール２３に対応するタスクとを並行して、演算コア１１０に割り当てることができる。
【００６９】
なお、画像処理プログラム１６２による画像処理に高解像度化処理を適用する場合、例えば、画像解析モジュール２１にはオーバーサンプリング部及びマッチング誤差算出部（特開２００７−３１０８３７号公報）が、固定演算モジュール２２には仮拡大部（特開２００８−２７６３９３号公報）が、変動演算モジュール２３には対応点検出部及び画素値変換部（特開２００８−２７６３９３号公報）がそれぞれ対応する。また、画像処理プログラム１６２による画像処理にフレーム補間処理を適用する場合、例えば、画像解析モジュール２１には動き推定部が、固定演算モジュール２２には破綻防止画像生成部が、変動演算モジュール２３にはその他の処理部がそれぞれ対応する（特開２００８−２４４８４６号公報）。
【００７０】
以上説明したように、本実施形態によれば、実行する処理の負荷に応じて処理時間を短縮するよう並列処理を制御できる。本実施形態の情報処理装置は、画像処理プログラム１６２の処理負荷が大きい場合、変動演算モジュール２３に対応するタスクを省略して、処理負荷を削減することで、処理時間を短縮することができる。これにより、映像の再生等、リアルタイムでの処理が要求される場合にも、要求時間内に処理を完了することができる。
【００７１】
なお、本実施形態では、ＣＰＵ１１をマルチコアプロセッサとして、画像処理プログラム１６２内のモジュールに対応するタスクを並列に実行する例について説明したが、サブプロセッサ１２又はＧＰＵ１３をマルチコアプロセッサとして、同様の処理を行うこともできる。また、複数のプロセッサ（マルチプロセッサ）によって、同様の処理を行ってもよい。なお、本実施形態は、マルチコアプロセッサ（マルチプロセッサ）により画像処理プログラム１６２内のモジュールを並列に実行するため、シングルコアプロセッサ（シングルプロセッサ）には適用されない。
【００７２】
また、本実施形態の並列動作制御処理の手順は全てソフトウェアによって実行することができる。このため、並列動作制御処理の手順を実行するプログラムをコンピュータ読み取り可能な記憶媒体を通じて通常のコンピュータにインストールして実行するだけで、本実施形態と同様の効果を容易に実現することができる。
【００７３】
また本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素からいくつかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【符号の説明】
【００７４】
１６２…画像処理プログラム、１６３…並列動作制御ランタイムライブラリ、２１…画像解析モジュール、２２…固定演算モジュール、２３…変動演算モジュール、３１…動作制御部、３１１…スケジューラ、３１２…バッファリング部、３２…負荷制御部、３３…負荷算出部、３４…処理時間計測部。
【図１】
2011013852.tif 000003
【図２】
2011013852.tif 000004
【図３】
2011013852.tif 000005
【図４】
2011013852.tif 000006
【図５】
2011013852.tif 000007
【図６】
2011013852.tif 000008
【図７】
2011013852.tif 000009
【手続補正書】
【提出日】平成22年6月30日(2010.6.30)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数の実行ユニットと、
動画像データの入力画像フレーム内の複数の第１画像データ部をそれぞれ解析するための複数の第１タスクと、前記複数の第１画像データ部それぞれの解析結果を用いて前記複数の第１画像データ部に対応する出力画像フレーム上の複数の第２画像データ部をそれぞれ生成する複数の第２タスクと、前記複数の第２画像データ部の画質をそれぞれ改善する複数の第３タスクとを、前記複数の第１タスクと前記複数の第２タスクと前記複数の第３タスクとの間の実行順序の関係に基づいて規定される順番で前記複数の実行ユニットに割り当てるスケジューラと、
前記複数の第１タスクによる前記複数の第１画像データ部の解析が完了した場合、前記複数の第１画像データ部の解析結果に基づき、前記複数の第３タスクの実行に要する処理負荷を算出する負荷算出手段と、
前記算出された処理負荷がしきい値よりも高い場合、前記複数の第３タスクを前記複数の実行ユニットに割り当てる処理を中断し、前記複数の第２タスクによって生成された出力画像フレームを出力し、前記算出された処理負荷が前記しきい値よりも高くない場合、前記複数の第３タスクを前記複数の実行ユニットに割り当てる処理を継続し、前記複数の第３タスクにより画質が改善された出力画像フレームを出力する負荷制御手段とを具備することを特徴とする情報処理装置。
【請求項２】
前記各第２タスクによって生成される前記第２画像データ部を第１バッファに格納し、前記各第３タスクにより画質が改善された前記第２画像データ部を第２バッファに格納するバッファリング手段をさらに具備することを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記負荷制御手段は、前記算出された処理負荷がしきい値よりも高い場合、前記複数の第３タスクを前記複数の実行ユニットに割り当てる処理を、前記動画像データの次の入力画像フレームの処理タイミングが到来するまでの期間中、停止することを特徴とする請求項１記載の情報処理装置。
【請求項４】
前記各第２タスクによって生成される前記第２画像データ部を第１バッファに格納し、前記各第３タスクにより画質が改善された前記第２画像データ部を第２バッファに格納するバッファリング手段をさらに具備し、
前記負荷制御手段は、前記算出された処理負荷が前記しきい値よりも高くない場合、前記第１バッファに格納されている前記各第２タスクによって生成される前記第２画像データ部を、前記第２バッファに格納されている前記各第３タスクにより画質が改善された前記第２画像データ部を用いて書き換え、以降に前記各第３タスクによる処理が完了した場合、前記第１バッファへ処理結果を格納することを特徴とする請求項１記載の情報処理装置。
【請求項５】
前記複数の実行ユニットは、１つのプロセッサに内蔵される複数のプロセッサコアであることを特徴とする請求項１記載の情報処理装置。
【請求項６】
前記複数の実行ユニットは、複数のプロセッサであることを特徴とする請求項１記載の情報処理装置。
【請求項７】
複数の実行ユニットを用いて動画像データに対する画像処理を並列に実行する並列動作制御方法であって、
前記動画像データの入力画像フレームを構成する複数の第１画像データ部をそれぞれ解析するための複数の第１タスクと、前記複数の第１画像データ部それぞれの解析結果を用いて前記複数の第１画像データ部に対応する、出力画像フレーム上の複数の第２画像データ部をそれぞれ生成する複数の第２タスクと、前記複数の第２画像データ部の画質をそれぞれ改善する複数の第３タスクとを、前記複数の第１タスクと前記複数の第２タスクと前記複数の第３タスクとの間の実行順序の関係に基づいて規定される順番で前記複数の実行ユニットに割り当てるステップと、
前記複数の第１タスクによる前記複数の第１画像データ部の解析の完了に応答して、前記複数の第１タスクによる解析結果に基づき、前記複数の第３タスクの実行に要する処理負荷を算出するステップと、
前記算出された処理負荷がしきい値よりも高い場合、前記複数の第３タスクを前記複数の実行ユニットに割り当てる処理を中断し、前記複数の第２タスクによって生成された出力画像フレームを出力するステップと、
前記算出された処理負荷が前記しきい値よりも高くない場合、前記複数の第３タスクを前記複数の実行ユニットに割り当てる処理を継続し、前記複数の第３タスクにより画質が改善された出力画像フレームを出力するステップとを具備することを特徴とする並列動作制御方法。
【請求項８】
前記各第２タスクによって生成される前記第２画像データ部を第１バッファに格納し、前記各第３タスクにより画質が改善された前記第２画像データ部を第２バッファに格納するバッファリングステップをさらに具備することを特徴とする請求項７記載の並列動作制御方法。
【請求項９】
複数の実行ユニットを備えるコンピュータに動画像データに対する画像処理を並列に実行させるプログラムであって、
前記動画像データの入力画像フレームを構成する複数の第１画像データ部をそれぞれ解析するための複数の第１タスクと、前記複数の第１画像データ部それぞれの解析結果を用いて前記複数の第１画像データ部に対応する、出力画像フレーム上の複数の第２画像データ部をそれぞれ生成する複数の第２タスクと、前記複数の第２画像データ部の画質をそれぞれ改善する複数の第３タスクとを、前記複数の第１タスクと前記複数の第２タスクと前記複数の第３タスクとの間の実行順序の関係に基づいて規定される順番で前記複数の実行ユニットに割り当てる手順と、
前記複数の第１タスクによる前記複数の第１画像データ部の解析の完了に応答して、前記複数の第１タスクによる解析結果に基づき、前記複数の第３タスクの実行に要する処理負荷を算出する手順と、
前記算出された処理負荷がしきい値よりも高い場合、前記複数の第３タスクを前記複数の実行ユニットに割り当てる処理を中断し、前記複数の第２タスクによって生成された出力画像フレームを出力する手順と、
前記算出された処理負荷が前記しきい値よりも高くない場合、前記複数の第３タスクを前記複数の実行ユニットに割り当てる処理を継続し、前記複数の第３タスクにより画質が改善された出力画像フレームを出力する手順とを前記コンピュータに実行させるプログラム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００７
【補正方法】変更
【補正の内容】
【０００７】
上述の課題を解決するため、本発明の情報処理装置は、複数の実行ユニットと、動画像データの入力画像フレーム内の複数の第１画像データ部をそれぞれ解析するための複数の第１タスクと、前記複数の第１画像データ部それぞれの解析結果を用いて前記複数の第１画像データ部に対応する出力画像フレーム上の複数の第２画像データ部をそれぞれ生成する複数の第２タスクと、前記複数の第２画像データ部の画質をそれぞれ改善する複数の第３タスクとを、前記複数の第１タスクと前記複数の第２タスクと前記複数の第３タスクとの間の実行順序の関係に基づいて規定される順番で前記複数の実行ユニットに割り当てるスケジューラと、前記複数の第１タスクによる前記複数の第１画像データ部の解析が完了した場合、前記複数の第１画像データ部の解析結果に基づき、前記複数の第３タスクの実行に要する処理負荷を算出する負荷算出手段と、前記算出された処理負荷がしきい値よりも高い場合、前記複数の第３タスクを前記複数の実行ユニットに割り当てる処理を中断し、前記複数の第２タスクによって生成された出力画像フレームを出力し、前記算出された処理負荷が前記しきい値よりも高くない場合、前記複数の第３タスクを前記複数の実行ユニットに割り当てる処理を継続し、前記複数の第３タスクにより画質が改善された出力画像フレームを出力する負荷制御手段とを具備することを特徴とする。