(57)【要約】【課題】複数の処理要素に含まれる各処理要素を他の処理要素に対して最適な実行順序に配置する。【解決手段】情報処理装置１０は、複数の処理要素に含まれる処理要素の組毎に、当該組の処理要素を実行する順序を交換した場合の効果を含む交換関係情報を記憶し、複数の処理要素のうち注目する注目処理要素と、１又は複数の他の処理要素とのそれぞれの交換関係情報を取得し、取得した交換関係情報に基づいて、注目処理要素の１又は複数の他の処理要素に対する実行順序を決定する。【選択図】図１
2010092284.tif 000002
【特許請求の範囲】
【請求項１】
複数の処理要素に含まれる処理要素の組毎に、当該組の処理要素を実行する順序を交換した場合の効果を含む交換関係情報を記憶する記憶手段と、
前記複数の処理要素のうち注目する注目処理要素と、１又は複数の他の処理要素とのそれぞれの交換関係情報を前記記憶手段から取得する取得手段と、
前記取得手段により取得した交換関係情報に基づいて、前記注目処理要素の前記１又は複数の他の処理要素に対する実行順序を決定する決定手段と、を含む
ことを特徴とする情報処理装置。
【請求項２】
前記交換関係情報は、前記処理要素の組毎に、当該組の処理要素を実行する順序の交換可否の情報をさらに含む
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記取得手段は、前記注目処理要素と、前記注目処理要素よりも実行順序が前に定められた１又は複数の処理要素とのそれぞれの交換関係情報を取得する
ことを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記複数の処理要素は、実行順序が予め指定されており、
前記予め指定された実行順序に従って前記注目処理要素を順次選択する手段をさらに含み、前記順次選択した注目処理要素の実行順序を順次決定する
ことを特徴とする請求項１乃至３のいずれかに記載の情報処理装置。
【請求項５】
前記注目処理要素と前記注目処理要素よりも前の第１処理要素の交換関係情報と、前記第１処理要素と前記第１処理要素よりも前の第２処理要素の交換関係情報とに基づいて、前記注目処理要素と前記第２処理要素以前の処理要素との交換関係情報を前記取得手段により取得するか否かを判定する判定手段をさらに含む
ことを特徴とする請求項１乃至４のいずれかに記載の情報処理装置。
【請求項６】
前記判定手段は、前記注目処理要素と前記第１処理要素との実行順序を交換した場合に効果がある場合に、前記注目処理要素と前記第２処理要素の交換関係情報を前記取得手段により取得すると判定する
ことを特徴とする請求項５に記載の情報処理装置。
【請求項７】
前記判定手段は、前記第１処理要素と前記第２処理要素との実行順序の交換が不可であって、かつ、前記注目処理要素と前記第１処理要素との実行順序の交換が可能である場合に、前記注目処理要素と前記第２処理要素の交換関係情報を前記取得手段により取得すると判定する
ことを特徴とする請求項５又は６に記載の情報処理装置。
【請求項８】
複数の処理要素に含まれる処理要素の組毎に、当該組の処理要素を実行する順序を交換した場合の効果を含む交換関係情報を記憶手段に記憶する手段と、
前記複数の処理要素のうち注目する注目処理要素と、１又は複数の他の処理要素とのそれぞれの交換関係情報を前記記憶手段から取得する取得手段と、
前記取得手段により取得した交換関係情報に基づいて、前記注目処理要素の前記１又は複数の他の処理要素に対する実行順序を決定する決定手段としてコンピュータを機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及びプログラムに関する。
【背景技術】
【０００２】
処理が複数の処理要素から構成される場合に、処理要素を入れ換えることで処理の効率が向上することがある。例えば、下記の特許文献１には、指定された処理に含まれる処理要素のうち、順序を確定した処理要素の最後尾と次の処理要素との入れ替えができるか否かを判断して、処理要素の実行順序を変更する技術が提案されている。
【特許文献１】特許第２９０３９１７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
本発明の目的の一つは、複数の処理要素に含まれる各処理要素を他の処理要素に対して最適な実行順序に配置できる情報処理装置及びプログラムを提供することにある。
【課題を解決するための手段】
【０００４】
上記目的を達成するために、請求項１に記載の情報処理装置の発明は、複数の処理要素に含まれる処理要素の組毎に、当該組の処理要素を実行する順序を交換した場合の効果を含む交換関係情報を記憶する記憶手段と、前記複数の処理要素のうち注目する注目処理要素と、１又は複数の他の処理要素とのそれぞれの交換関係情報を前記記憶手段から取得する取得手段と、前記取得手段により取得した交換関係情報に基づいて、前記注目処理要素の前記１又は複数の他の処理要素に対する実行順序を決定する決定手段と、を含むことを特徴とする。
【０００５】
また、請求項２に記載の発明は、請求項１に記載の情報処理装置において、前記交換関係情報は、前記処理要素の組毎に、当該組の処理要素を実行する順序の交換可否の情報をさらに含むことを特徴とする。
【０００６】
また、請求項３に記載の発明は、請求項１又は２に記載の情報処理装置において、前記取得手段は、前記注目処理要素と、前記注目処理要素よりも実行順序が前に定められた１又は複数の処理要素とのそれぞれの交換関係情報を取得することを特徴とする。
【０００７】
また、請求項４に記載の発明は、請求項１乃至３のいずれかに記載の情報処理装置において、前記複数の処理要素は、実行順序が予め指定されており、前記予め指定された実行順序に従って前記注目処理要素を順次選択する手段をさらに含み、前記順次選択した注目処理要素の実行順序を順次決定することを特徴とする。
【０００８】
また、請求項５に記載の発明は、請求項１乃至４のいずれかに記載の情報処理装置において、前記注目処理要素と前記注目処理要素よりも前の第１処理要素の交換関係情報と、前記第１処理要素と前記第１処理要素よりも前の第２処理要素の交換関係情報とに基づいて、前記注目処理要素と前記第２処理要素以前の処理要素との交換関係情報を前記取得手段により取得するか否かを判定する判定手段をさらに含むことを特徴とする。
【０００９】
また、請求項６に記載の発明は、請求項５に記載の情報処理装置において、前記判定手段は、前記注目処理要素と前記第１処理要素との実行順序を交換した場合に効果がある場合に、前記注目処理要素と前記第２処理要素の交換関係情報を前記取得手段により取得すると判定することを特徴とする。
【００１０】
また、請求項７に記載の発明は、請求項５又は６に記載の情報処理装置において、前記判定手段は、前記第１処理要素と前記第２処理要素との実行順序の交換が不可であって、かつ、前記注目処理要素と前記第１処理要素との実行順序の交換が可能である場合に、前記注目処理要素と前記第２処理要素の交換関係情報を前記取得手段により取得すると判定することを特徴とする。
【００１１】
また、請求項８に記載のプログラムの発明は、複数の処理要素に含まれる処理要素の組毎に、当該組の処理要素を実行する順序を交換した場合の効果を含む交換関係情報を記憶手段に記憶する手段と、前記複数の処理要素のうち注目する注目処理要素と、１又は複数の他の処理要素とのそれぞれの交換関係情報を前記記憶手段から取得する取得手段と、前記取得手段により取得した交換関係情報に基づいて、前記注目処理要素の前記１又は複数の他の処理要素に対する実行順序を決定する決定手段としてコンピュータを機能させることを特徴とする。
【発明の効果】
【００１２】
請求項１に記載の発明によれば、複数の処理要素に含まれる各処理要素を、他の処理要素に対して最適な実行順序に配置できる。
【００１３】
請求項２に記載の発明によれば、複数の処理要素に含まれる各処理要素を、実行順序が交換可能な処理要素に対して最適な実行順序に配置できる。
【００１４】
請求項３に記載の発明によれば、注目処理要素までの実行順序を最適化できる。
【００１５】
請求項４に記載の発明によれば、予め指定された実行順序を利用して、処理要素の実行順序の最適化を効率良くできる。
【００１６】
請求項５に記載の発明によれば、処理の実行順序を最適化する際の処理負荷を低減できる。
【００１７】
請求項６に記載の発明によれば、本構成を有しない場合に比較して、取得する交換関係情報の量を低減できる。
【００１８】
請求項７に記載の発明によれば、本構成を有しない場合に比較して、取得する交換関係情報の量を低減できる。
【００１９】
請求項８に記載の発明によれば、複数の処理要素に含まれる各処理要素を、他の処理要素に対して最適な実行順序に配置するようにコンピュータを機能させることができる。
【発明を実施するための最良の形態】
【００２０】
以下、本発明を実施するための好適な実施の形態（以下、実施形態という）を、図面に従って説明する。
【００２１】
図１には、本実施形態に係る情報処理装置１０の機能ブロック図を示す。図１に示されるように、情報処理装置１０は、記憶部１２、処理受付部１４、実行順序決定部１６、及び処理実行部１８を含む。情報処理装置１０は、ＣＰＵ等の制御手段、半導体メモリや磁気ディスク等の記憶手段を含み構成されることとしてよく、上記の各部の機能は、コンピュータ読み取り可能な情報記憶媒体に格納されたプログラムが、図示しない媒体読取装置を用いてコンピュータシステムたる情報処理装置１０に読み込まれ実行されることで実現されるものとしてよい。なお、プログラムは情報記憶媒体によって情報処理装置１０に供給されることとしてもよいし、インターネット等のデータ通信ネットワークを介して供給されることとしてもよい。
【００２２】
記憶部１２は、半導体メモリや磁気ディスク等を含み構成され、データやプログラムを記憶する。記憶部１２は、後述する各部における処理の作業用メモリとしても使用されることとしてよい。本実施形態では、記憶部１２には後述する交換情報テーブル等のデータが記憶される。
【００２３】
処理受付部１４は、複数の処理要素から構成される処理を受け付ける。図２には、処理受付部１４により受け付ける処理の一例を示す。処理受付部１４により受け付ける処理は例えばＮ個の処理要素からなり、このＮ個の処理要素の中には同じ処理要素が複数含まれていてもよい。なお、処理受付部１４により受け付ける処理を画像処理とすると、画像処理を構成する処理要素は例えば、画像データについて画像データの入力処理、画像の拡大処理、色変換処理、フィルタ処理、回転処理、二値化処理、画像データの出力処理等としてよい。そして本実施形態に係る情報処理装置１０は、画像処理を受け付けることとし、当該画像処理に含まれる処理要素の実行順序を最適化する処理を行う。
【００２４】
また、本実施形態に係る情報処理装置１０は、処理要素の実行順序を最適化する上で複数の最適化モードを有し、利用者により指定された最適化モードに応じて、受け付けた処理に含まれる処理要素の順序を最適化することとしてよい。例えば、本実施形態における最適化モードには、受け付けた画像処理による処理結果の画質を優先する画質優先モードや、画像処理の処理速度を優先する処理速度優先モード等が含まれる。
【００２５】
実行順序決定部１６は、処理受付部１４により受け付けた処理に含まれる処理要素の実行順序を、指定された最適化モードに従って決定する。この実行順序決定部１６による詳細な処理については後述する。
【００２６】
処理実行部１８は、実行順序決定部１６により決定された処理要素の実行順序に従って、処理受付部１４により受け付けた処理を実行する。
【００２７】
図３には、実行順序決定部１６の機能ブロック図を示す。図３に示されるように、実行順序決定部１６は、処理対象設定部２０、処理対象選択部２２、処理順序最適化部２４、及び処理順序固定部３４を含む。そして、処理順序最適化部２４はさらに、処理要素選択部２６、交換関係情報取得部２８、前段交換関係情報取得部３０、及び処理要素挿入位置決定部３２を含む。以下、各部の詳細について説明する。
【００２８】
処理対象設定部２０は、処理受付部１４により受け付けた処理に含まれる処理要素のうち実行する順序が固定されている処理要素に基づいて、処理に含まれる処理要素を１又は複数の処理要素群に分割し、各処理要素群を処理対象のまとまりとして設定する。例えば、受け付けた画像処理において、フィルタ処理の処理順序が固定されているとすると、フィルタ処理よりも前の処理要素が、フィルタ処理よりも後に実行されることはないため、例えばフィルタ処理を基準として画像処理を分割して、フィルタ処理よりも前を第１の処理要素群、それ以後を第２の処理要素群等とする。この際に分割の基準となる処理要素（例えばフィルタ処理）は、処理要素群に含めてもよいし含めなくてもよい。
【００２９】
処理対象設定部２０は、順序が固定されている処理要素の特定を、利用者による指定に基づいて行ってもよいし、順序が固定されている処理要素を予め定めておくことで行ってもよいし、後述する交換関係テーブルに含まれない処理要素を順序が固定されている処理要素として特定することとしてもよい。
【００３０】
処理対象選択部２２は、処理対象設定部２０により設定された処理要素群のうち１つを処理対象として選択する。処理対象選択部２２は、例えば予め定められた処理順序が前の処理要素群から順次処理対象として選択することとしてよい。処理対象選択部２２は、選択した処理要素群を後述する処理順序最適化部２４に出力し、処理順序最適化部２４による処理が終了すると、未処理の処理要素群の中から新たに処理対象とする処理要素群を選択する。そして、処理対象選択部２２は、上記選択した処理要素群を処理順序最適化部２４に出力するという一連の処理を未処理の処理要素群がなくなるまで繰り返し実行する。
【００３１】
処理順序最適化部２４は、処理対象選択部２２により選択された処理要素群に含まれる処理要素の実行順序を最適化するものである。上述したように処理順序最適化部２４は、処理要素選択部２６、交換関係情報取得部２８、前段交換関係情報取得部３０、及び処理要素挿入位置決定部３２を含み、処理要素群の実行順序の最適化処理を行う。以下、各部の詳細について説明する。
【００３２】
処理要素選択部２６は、処理対象選択部２２により選択された処理要素群に含まれる処理要素の中から注目する処理要素を１つ選択する。以後、処理要素選択部２６により選択された注目する処理要素を注目処理要素とする。処理要素選択部２６は、処理要素群のうち予め定められた処理順序が先頭のものから順次注目処理要素として選択することとする。
【００３３】
交換関係情報取得部２８は、処理要素選択部２６により選択された注目処理要素と、処理要素群に含まれる他の処理要素との実行順序の交換可否、及び交換した場合の効果の情報を含む交換関係情報を取得する。交換関係情報は、交換関係テーブルに格納される情報であり、図４Ａには交換関係テーブルの一例を示す。
【００３４】
図４Ａに示されるように、交換関係テーブルは、複数の処理要素間の交換関係情報Ｆの値を格納したテーブルである。例えば、Ｆ（Ａ，Ｂ）は処理要素Ａを処理要素Ｂに交換する場合の交換関係情報を示しており、処理要素Ａを処理要素Ｂに交換する場合の情報は上記のＦ（Ａ，Ｂ）に基づいて得られるため、Ｆ（Ｂ，Ａ）の情報は省略している。本実施形態では、交換関係情報（Ｆ）は、［−２，−１，０，１，２］のいずれかの値をとることとし、図４Ｂには交換関係情報の値の意味を示した。
【００３５】
図４Ｂに示されるように、交換関係情報の値の示す意味は、最適化モードに応じて異なる。すなわち、画質優先モードにおいては、交換関係情報の値が「−２」である場合には、順序固定を示し、「−１」である場合には、現在の接続順序の場合に画質が劣化することを示し、「０」である場合には、交換しても画質が変わらないことを示し、「１」である場合には、画質が向上することを示している。なお、「２」の値については画質優先モードにおいては使用されない。
【００３６】
そして、処理速度優先モードにおいては、交換関係情報の値が「−２」である場合には、順序固定を示し、「−１」である場合には、現在の接続順序の場合に処理速度が遅くなることを示し、「０」である場合には、交換しても処理速度が変わらないことを示し、「１」である場合には、処理速度が速くなることを示し、「２」である場合には、交換した場合の効果が処理するデータ量に依存することを示す。
【００３７】
交換関係情報取得部２８は、注目処理要素と、注目処理要素の前に位置する処理要素との交換関係を定めた交換関係情報を、上述した交換関係テーブルの中から検索しその値を読み込んで取得する。
【００３８】
前段交換関係情報取得部３０は、注目処理要素と、注目処理要素の前段に位置する処理要素との交換関係を定めた交換関係情報を取得する。本実施形態では、前段交換関係情報取得部３０は、処理要素群において注目処理要素がｉ番目にあるとすると、１＜Ｐ＜ｉを満たす自然数Ｐに対して、交換関係情報Ｆ（Ｐ−１，Ｐ）とＦ（Ｐ，ｉ）との値を比較してＦ（Ｐ−１，ｉ）の交換関係情報を取得するか否かを判定し、取得すると判定した場合にのみＦ（Ｐ−１，ｉ）の値を取得することとする。
【００３９】
図５には、前段交換関係情報取得部３０による判定基準の一例を示した。図５に示されるように、Ｆ（Ｐ−１，Ｐ）の値が「１」及び「０」の場合には、Ｆ（Ｐ，ｉ）の値が「−１」である場合にのみＦ（Ｐ−１，ｉ）の値を取得することとする。また、Ｆ（Ｐ−１，Ｐ）の値が「−２」である場合には、Ｆ（Ｐ，ｉ）の値が「１」，「０」，「−１」の場合にＦ（Ｐ−１，ｉ）の値を取得することとする。前段交換関係情報取得部３０は、注目処理要素の前段に位置する処理要素について上記処理を行い、前段の処理要素と注目処理要素との交換関係情報を取得する。
【００４０】
処理要素挿入位置決定部３２は、交換関係情報取得部２８と前段交換関係情報取得部３０とにより取得された交換関係情報に基づいて、注目処理要素の挿入位置を決定する。注目処理要素の挿入位置とは、注目処理要素の前に位置する１乃至（ｉ―１）の処理要素のいずれの間、若しくはその先頭又は最後のいずれかである。
【００４１】
処理要素挿入位置決定部３２は、交換関係情報取得部２８及び前段交換関係情報取得部３０により取得された交換関係情報の値に基づいて、注目処理要素の挿入位置の候補を選択する。具体的には、処理要素挿入位置決定部３２は、交換関係情報Ｆ（Ｐ，ｉ）が「−１」であれば、処理要素Ｐとｉとの実行の順序を変えた方がよいため、注目処理要素の挿入位置の候補として処理Ｐの前を選択する。また、Ｆ（Ｐ，ｉ）が「１」，「０」，「−２」であればそのままの順序を維持することでよいため、処理Ｐの後を挿入位置の候補として選択する。そして、Ｆ（Ｐ，ｉ）が「２」である場合には、処理Ｐと処理ｉの入出力データ量に基づいてＦ（Ｐ，ｉ）の値を再度算出するとともに、当該算出したＦの値に対して上記の基準を用いて注目処理要素の挿入位置の候補を選択する。具体的には、評価値をＶ，処理Ｐの入力データをＩＰ、出力データをＯＰ、処理ｉの入力データをＩｉ、出力データをＯｉとした場合に、Ｖ＝ＯＰ／ＩＰ―Ｏｉ／Ｉｉとして算出する。そして、Ｖ＞０である場合には、処理ｉ、処理Ｐの順にすることで効果が向上するためＦ（Ｐ，ｉ）の値を「−１」とし、Ｖ＝０の場合には順序の変更に効果がないためＦ（Ｐ，ｉ）の値を「０」とし、Ｖ＜０の場合には、処理Ｐ、処理ｉの順にすることで効果が向上するためＦ（Ｐ，ｉ）の値を「１」にすることとする。処理要素挿入位置決定部３２は、以上の処理により注目処理要素の挿入位置の候補を選択する。
【００４２】
ここで、処理要素挿入位置決定部３２により選択された挿入位置の候補が１つであった場合には、当該候補として選択された位置に注目処理要素を挿入するとともに、挿入した位置に応じて各処理要素間の交換関係情報を更新する。具体的には、処理Ｐと処理Ｐ＋１の間に注目処理要素が挿入された場合には、注目処理要素と処理Ｐ＋１との交換関係情報の値を修正するとともに、交換関係情報のインデックスを処理Ｐ以降の全ての処理関係要素について修正する。
【００４３】
処理要素挿入位置決定部３２により複数の挿入位置の候補が選択された場合には、各挿入位置の候補のうち、交換関係情報に基づいて挿入位置の前後関係で矛盾する関係となっている挿入位置を除外する。こうして除外した結果、候補が１つとなった場合には、候補が１つの場合と同様の処理により注目処理要素の挿入位置を決定する。除外した後においても候補が複数ある場合には、例えば図６Ａ乃至図６Ｃに示すテーブルに従って挿入位置を決定する。
【００４４】
図６Ａには、挿入位置の候補が複数（候補１と候補２とし、候補１が候補２の前にあるとする）ある場合に、処理速度優先モードにおいて選択される挿入位置を格納したテーブルを示している。図６Ａに示されるように、処理速度優先モードでは、処理速度が向上する方の挿入位置が優先的に選択され、処理速度が同等ならば画質が向上する方の挿入位置が選択される。
【００４５】
また、図６Ｂには、画質優先モードにおいて選択される挿入位置を格納したテーブルを示している。図６Ｂに示されるように、画質優先モードでは、画質が向上する方の挿入位置が優先的に選択され、画質が同等ならば処理速度が向上する方の挿入位置が選択される。なお、候補１と候補２とにおいて、処理速度も画質も同等である場合には、各候補に注目処理要素を挿入した場合の処理データの変化に基づいて挿入位置を決定する。図６Ｃには、候補１と候補２のうち処理データの変化に基づいて選択される候補を格納したテーブルを示す。
【００４６】
図６Ｃに示されるように、本実施形態では、処理データの変化としてデータ量と処理画像データの画素数を用いることとする。まず、処理要素挿入位置決定部３２は、注目処理要素ｉについて、当該注目処理要素ｉに入力されるデータ量ＤＩｉ、及び画素数ＮＩｉと、注目処理要素Ｎから出力されるデータ量ＤＯｉ、及び画素数ＮＯｉとのそれぞれの比率をデータ量変化ＲＤ１＝ＤＯｉ／ＤＩｉ、ＲＮ２＝ＮＯｉ／ＮＩｉとして算出する。次に、処理要素挿入位置決定部３２は、候補１（処理要素Ｓとする）から候補２（処理要素Ｔとする）までの処理要素群を１つのユニットとした場合に、候補１に入力されるデータ量ＤＩｓ及び画素数ＮＩｓと、候補２から出力されるデータ量ＤＯｔ及び画素数ＮＯｔとのそれぞれの比率ＲＤ２＝ＤＯｔ／ＤＩｓ、ＲＮ２＝ＮＯｔ／ＮＩｓとして算出する。そして、処理要素挿入位置決定部３２は、ＲＤ１とＲＤ２との比較、及びＲＮ１とＲＮ２との比較を行い、それらの比較結果が図６Ｃに示されるテーブルの各状態である場合に、テーブル内に格納された候補が選択されることとする。なお、候補１と候補２のどちらを選択してもよい場合には、予め定められた基準、例えば前段にある候補を選択する等の基準に従って候補を１つに絞り込むこととする。
【００４７】
処理要素挿入位置決定部３２により注目処理要素の挿入位置が決定されると、処理要素選択部２６は、処理された注目処理要素の次の処理要素を新たな注目処理要素として選択して、当該選択した注目処理要素の挿入位置を決定する処理を順次実行する。処理順序最適化部２４は、上述した処理を処理要素群に含まれる全ての処理要素について実行し、処理要素群の実行順序を最適化する。
【００４８】
処理順序固定部３４は、処理順序最適化部２４により処理順序の最適化が行われた処理要素群に対して、処理順序の固定化処理を行う。処理順序固定部３４は、処理順序の最適化が行われた処理要素群において、同じ処理要素が連続している部分を統合し、統合した結果得られた処理順序をこの処理要素群の処理順序として固定する。なお、処理要素の統合は、例えば処理要素として回転処理（＋９０度）と回転処理（＋９０度）が連続した場合には、それらの回転処理を回転処理（＋１８０度）として統合する処理である。そして、統合の結果、統合された処理要素以降の処理要素については処理順序のインデックスが１つ繰り上がる。
【００４９】
処理順序固定部３４による処理を終えると、処理対象選択部２２は処理を終えた処理要素群の後に続く処理要素群を選択して、当該選択した処理要素群に対して処理順序最適化部２４による処理順序の最適化処理、及び処理順序固定部３４による処理順序の固定化処理を実行する。実行順序決定部１６は、処理対象選択部２２により全ての処理要素群が選択され処理が行われた場合には、それぞれ順序が最適化された処理要素群を統合して、処理受付部１４により受け付けた処理の最終的な実行順序を決定して処理実行部１８に出力する。処理実行部１８では、入力された実行順序に従って処理要素を順次処理して、受け付けた処理を実行する。
【００５０】
次に、本実施形態に係る情報処理装置１０により行われる、受け付けた処理に含まれる複数の処理要素の実行順序の最適化処理の流れを、図７Ａ乃至図７Ｄに示したフローチャートを参照しながら詳細に説明する。
【００５１】
図７Ａには、実行順序の最適化処理の全体の流れを示したフローチャートを示す。図７Ａに示されるように、情報処理装置１０は、実行順序の最適化処理の対象とする複数の処理要素からなる処理及び最適化の処理モードを受け付ける（Ｓ１０１）。処理は画像処理等としてよく、また、処理モードとは画像処理であれば画質優先モードや処理速度優先モード等としてよい。
【００５２】
情報処理装置１０は、受け付けた処理について順序が固定された処理要素を基準にして、当該処理を１又は複数の処理要素群に分割するとともに、各処理要素群を処理対象の１つのまとまりとして設定する（Ｓ１０２）。情報処理装置１０は、設定した処理要素群の中から未処理の処理要素群を１つ選択して（Ｓ１０３）、選択した処理要素群の実行順序の最適化処理を行う（Ｓ１０４）。ここで、処理要素群の選択は、予め定められた処理順序が前のものから順次行うこととしてよい。実行順序の最適化処理（Ｓ１０４）の詳細については、図７Ｂに示したフローチャートを参照しながら以下説明する。
【００５３】
図７Ｂに示されるように、情報処理装置１０は、選択された処理要素群に含まれる処理要素に先頭から順次インデックスを付与し（Ｓ２０１）、１つの処理要素を注目処理要素として選択する（Ｓ２０２）。注目処理要素の選択は、まずインデックス２の処理要素から開始し、その後次のインデックスの処理要素を選択することしてよい。注目処理要素のインデックスはｉとする。
【００５４】
情報処理装置１０は、選択された注目処理要素（ｉ）とその直前に位置する処理要素（ｉ−１）との交換関係情報を、記憶部１２に記憶される交換情報テーブルを参照して取得する（Ｓ２０３）。そして、情報処理装置１０は、注目処理要素よりも前段にある処理要素ｐ（ｐは１〜ｉ−１）について交換関係情報が必要であれば取得する（Ｓ２０４）。前段の交換関係情報の取得処理については、図７Ｃに示したフローチャートを参照しながら以下に説明する。
【００５５】
情報処理装置１０は、ｐを初期化（ｐ＝ｉ−１）した後に（Ｓ３０１）、処理要素ｐに対してＦ（ｐ，ｉ）が存在する場合にはその情報を取得する（Ｓ３０２）。情報処理装置１０は、取得した交換関係情報Ｆ（ｐ，ｉ）の値が「２」か否かを判断し（Ｓ３０３）、「２」の場合にはその交換関係情報についての入出力データ量に基づいて交換関係情報を算出する（Ｓ３０４）。そして、情報処理装置１０は、得られた交換関係情報の値に基づいて注目処理要素の挿入位置の候補を決定する（Ｓ３０５）。例えば、交換関係情報の値が「１」，「０」，「−２」である場合には、注目処理要素の挿入位置をその交換関係情報により示される対の処理要素の後にすることとし、交換関係情報の値が「−１」である場合には、注目処理要素の挿入位置を上記対の処理要素の前にすることとする。情報処理装置１０は、上記決定された挿入位置の候補を、交換関係情報の値とともに保存する（Ｓ３０６）。
【００５６】
次に、情報処理装置１０は、Ｆ（ｐ−１，ｐ）とＦ（ｐ，ｉ）との関係に基づいて、処理要素ｐより前の処理要素に関する交換関係情報の取得が必要か否かを判断する（Ｓ３０７）。必要か否かの判断は、上述した前段交換関係情報取得部３０により行われることとしてよい。そして、情報処理装置１０は、必要であると判断する場合には（Ｓ３０７：Ｙ）、ｐの値をデクリメントして（Ｓ３０８）、処理Ｓ３０２に戻り、必要でないと判断する場合には（Ｓ３０７：Ｎ）、処理を終了しリターンする。
【００５７】
情報処理装置１０は、Ｓ２０４までに取得された交換関係情報に基づいて、注目処理要素の挿入位置（インデックス１乃至ｉのいずれか）を決定する（Ｓ２０５）。ここで、挿入位置の決定処理については図７Ｄに示されたフローチャートを参照しながら説明する。
【００５８】
図７Ｄに示されるように、情報処理装置１０は、保存された挿入位置の候補が複数あるか否かを判断し（Ｓ４０１）、複数でない、すなわち１つである場合には（Ｓ４０１：Ｎ）、その１つの候補を注目処理要素の挿入位置として決定し（Ｓ４０２）、交換関係情報を更新する（Ｓ４０３）。また、候補が複数あると判断される場合には（Ｓ４０１：Ｙ）、挿入位置の候補のうち交換関係情報の関係から矛盾のある挿入位置の候補を除外し（Ｓ４０４）、その結果候補が複数でなくなった、すなわち１つに絞られた場合には（Ｓ４０５：Ｎ）、Ｓ４０２及びＳ４０３の処理を行う。一方で、候補が複数ある、すなわち１つに絞られなかった場合には（Ｓ４０５：Ｙ）、各挿入位置について予め定められた基準に従って挿入位置の候補を１つに絞る（Ｓ４０６）。候補の絞り込みには、上述した図６Ａ乃至Ｃに示したテーブルにより示される基準を用いることとしてよい。候補が１つに絞られた後には、Ｓ４０２及びＳ４０３の処理を行う。以上の処理を終えるとＳ２０５にリターンする。
【００５９】
情報処理装置１０は、注目処理要素の挿入位置が決定すると、未処理の処理要素があるか否かを判断し（Ｓ２０６）、あると判断する場合には（Ｓ２０６：Ｙ）、ｉをインクリメントして（Ｓ２０７）、Ｓ２０２に戻りそれ以降の処理を繰り返し、ないと判断する場合には（Ｓ２０６：Ｎ）、処理を終了し、Ｓ１０４に戻る。
【００６０】
情報処理装置１０は、選択した処理対象の処理要素群について実行順序の最適化処理を終えると、その実行順序の固定化処理を行う（Ｓ１０５）。実行順序の固定化処理は、処理要素群（１〜Ｎ）のうち、連続する処理要素が同じ処理要素である場合に、その処理要素を統合することで行われる。
【００６１】
情報処理装置１０は、未処理の処理要素群があるか否かを判断し（Ｓ１０６）、あると判断する場合には（Ｓ１０６：Ｙ）、Ｓ１０３の処理に戻りそれ以降の処理を繰り返し、ないと判断する場合には（Ｓ１０６：Ｎ）、各処理要素群についての処理結果を統合して、入力された処理を構成する処理要素の最終的な実行順序を生成し（Ｓ１０７）、処理を終了する。
【００６２】
本発明は、上記の実施形態に限定されるものではなく、画像処理に限らず、複数の処理要素から構成される処理に対して本発明を適用してよいのはもちろんである。
【図面の簡単な説明】
【００６３】
【図１】本実施形態に係る情報処理装置の機能ブロック図である。
【図２】処理受付部により受け付ける処理の一例を示す図である。
【図３】実行順序決定部の機能ブロック図である。
【図４Ａ】交換関係テーブルの一例を示す図である。
【図４Ｂ】交換関係情報の値の意味を示す図である。
【図５】前段交換関係情報取得部による判定基準の一例を示す図である。
【図６Ａ】処理速度優先モードにおいて選択される挿入位置を格納したテーブルの一例である。
【図６Ｂ】画質優先モードにおいて選択される挿入位置を格納したテーブルの一例である。
【図６Ｃ】候補１と候補２のうち処理データの変化に基づいて選択される候補を格納したテーブルの一例である。
【図７Ａ】実行順序の最適化処理の全体の流れを示したフローチャートである。
【図７Ｂ】実行順序の最適化処理の流れを示したフローチャートである。
【図７Ｃ】前段の交換関係情報の取得処理の流れを示したフローチャートである。
【図７Ｄ】挿入位置の決定処理の流れを示したフローチャートである。
【符号の説明】
【００６４】
１０  情報処理装置、１２  記憶部、１４  処理受付部、１６  実行順序決定部、１８  処理実行部、２０  処理対象設定部、２２  処理対象選択部、２４  処理順序最適化部、２６  処理要素選択部、２８  交換関係情報取得部、３０  前段交換関係情報取得部、３２  処理要素挿入位置決定部、３４  処理順序固定部。
【図１】
2010092284.tif 000003
【図２】
2010092284.tif 000004
【図３】
2010092284.tif 000005
【図４Ａ】
2010092284.tif 000006
【図４Ｂ】
2010092284.tif 000007
【図５】
2010092284.tif 000008
【図６Ａ】
2010092284.tif 000009
【図６Ｂ】
2010092284.tif 000010
【図６Ｃ】
2010092284.tif 000011
【図７Ａ】
2010092284.tif 000012
【図７Ｂ】
2010092284.tif 000013
【図７Ｃ】
2010092284.tif 000014
【図７Ｄ】
2010092284.tif 000015