(57)【要約】【課題】ＤＡＧの前段側のオブジェクトの部分処理から順に優先度を付与する場合に比較して、画像処理の処理効率の低下を抑制することができる画像処理装置、画像処理方法、及び画像処理プログラムを得る。【解決手段】画像処理モジュール３８がＤＡＧ形態で複数連結された画像処理モジュール３８群の各画像処理モジュール３８で、各分割画像データに対して部分処理を行うコンピュータ１０は、連結された画像処理モジュール３８間の部分処理に処理の依存関係を付与し、画像処理モジュール３８群の末端の画像処理モジュール３８の部分処理に優先度を付与し、かつ後段側に依存関係が付与されている部分処理を有する前段側の画像処理モジュール３８の部分処理の優先度として、後段側の部分処理の優先度の最大値を付与し、依存関係に基づいて実行可能となった部分処理を、付与した優先度に従って実行する。【選択図】図５
2020046826.tif 000002
【特許請求の範囲】
【請求項１】
画像処理を実行するオブジェクトが有向非循環グラフ形態で複数連結されたオブジェクト群の各オブジェクトで、入力画像データにより示される入力画像が部分領域毎に分割された各分割画像データに対して部分処理を行う画像処理装置であって、
連結された前記オブジェクト間の前記部分処理に処理の依存関係を付与する依存関係付与部と、
前記オブジェクト群の末端のオブジェクトの部分処理に優先度を付与し、かつ後段側に依存関係が付与されている部分処理を有する前段側のオブジェクトの部分処理の優先度として、依存関係が付与されている後段側の部分処理の優先度の最大値を付与する優先度付与部と、
前記依存関係に基づいて実行可能となった部分処理を、付与された前記優先度に従って実行する実行部と、
を備えた画像処理装置。
【請求項２】
前記優先度付与部は、前記末端のオブジェクトの部分処理に優先度を付与する際に、出力画像の正面視下に位置する分割画像を示す分割画像データを処理する部分処理よりも、出力画像の正面視上に位置する分割画像を示す分割画像データを処理する部分処理に高い優先度を付与する
請求項１に記載の画像処理装置。
【請求項３】
前記優先度付与部は、前記オブジェクト群に複数の前記末端のオブジェクトが存在する場合、前記複数の前記末端のオブジェクトの部分処理に優先度を付与する際に、オブジェクト単位で順番に画像処理が実行される優先度を付与するか、又はオブジェクト間で各オブジェクトの部分処理が順番に実行される優先度を付与する
請求項１又は請求項２に記載の画像処理装置。
【請求項４】
前記優先度付与部は、オブジェクト単位で順番に画像処理が実行される優先度を付与するか、又はオブジェクト間で各オブジェクトの部分処理が順番に実行される優先度を付与するかが選択可能とされる
請求項３に記載の画像処理装置。
【請求項５】
前記優先度付与部は、後段側の部分処理に依存関係が付与されていない部分処理については、優先度を付与しないか、又は部分処理を実行しないことを表す優先度として予め定められた優先度を付与し、
前記実行部は、優先度が付与されていない部分処理、又は前記予め定められた優先度が付与された部分処理については、実行対象としない
請求項１から請求項４の何れか１項に記載の画像処理装置。
【請求項６】
前記実行部は、実行可能で、かつ優先度が同一の部分処理が複数存在する場合、
優先度が同一の複数の部分処理の各々について、部分処理の実行完了後に実行可能となる、当該部分処理に依存し、かつ当該部分処理と同じ優先度の部分処理の数である第１の数、
部分処理の実行完了後に実行可能とならない、当該部分処理に依存し、かつ当該部分処理と同じ優先度の部分処理の数である第２の数、
部分処理の実行完了後に実行可能となる、当該部分処理に依存し、かつ当該部分処理よりも低い優先度の部分処理の数である第３の数、及び
部分処理の実行完了後に実行可能とならない、当該部分処理に依存し、かつ当該部分処理よりも低い優先度の部分処理の数である第４の数の少なくとも１つを求め、
優先度が同一の複数の部分処理の各々について求めた数が最大の部分処理を実行する
請求項１から請求項５の何れか１項に記載の画像処理装置。
【請求項７】
前記実行部は、前記第１の数、前記第２の数、前記第３の数、及び前記第４の数を、前記第１の数、前記第２の数、前記第３の数、及び前記第４の数の順番で求め、
優先度が同一の複数の部分処理の各々について求めた数が異なる時点で、求めた数が最大の部分処理を実行する
請求項６に記載の画像処理装置。
【請求項８】
前記実行部は、実行可能で、かつ優先度が同一の部分処理が複数存在する場合、
優先度が同一の複数の部分処理の各々について、部分処理の実行のために必要となる出力領域のメモリ量に対する部分処理の実行完了後に開放される入力領域のメモリ量の差が最小の部分処理を実行する
請求項１から請求項５の何れか１項に記載の画像処理装置。
【請求項９】
前記実行部は、実行可能で、かつ優先度が同一の部分処理が複数存在する場合、
優先度が同一の複数の部分処理の各々について、部分処理の実行完了後に実行可能となる、当該部分処理に依存し、かつ当該部分処理と同じ優先度の部分処理の数である第１の数、
部分処理の実行完了後に実行可能とならない、当該部分処理に依存し、かつ当該部分処理と同じ優先度の部分処理の数である第２の数、
部分処理の実行完了後に実行可能となる、当該部分処理に依存し、かつ当該部分処理よりも低い優先度の部分処理の数である第３の数、及び
部分処理の実行完了後に実行可能とならない、当該部分処理に依存し、かつ当該部分処理よりも低い優先度の部分処理の数である第４の数の少なくとも１つを求め、
優先度が同一の複数の部分処理の各々について求めた数が最大の部分処理を実行する第１の方式と、
優先度が同一の複数の部分処理の各々について、部分処理の実行のために必要となる出力領域のメモリ量に対する部分処理の実行完了後に開放される入力領域のメモリ量の差が最小の部分処理を実行する第２の方式と、の何れを用いるか、又は組み合わせて用いるかが選択可能とされる
請求項１から請求項５の何れか１項に記載の画像処理装置。
【請求項１０】
画像処理を実行するオブジェクトが有向非循環グラフ形態で複数連結されたオブジェクト群の各オブジェクトで、入力画像データにより示される入力画像が部分領域毎に分割された各分割画像データに対して部分処理を行う画像処理装置による画像処理方法であって、
連結された前記オブジェクト間の前記部分処理に処理の依存関係を付与し、
前記オブジェクト群の末端のオブジェクトの部分処理に優先度を付与し、かつ後段側に依存関係が付与されている部分処理を有する前段側のオブジェクトの部分処理の優先度として、依存関係が付与されている後段側の部分処理の優先度の最大値を付与し、
前記依存関係に基づいて実行可能となった部分処理を、付与した前記優先度に従って実行する
画像処理方法。
【請求項１１】
コンピュータを、請求項１から請求項９の何れか１項記載の画像処理装置の依存関係付与部、優先度付与部、及び実行部として機能させるための画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理方法、及び画像処理プログラムに関する。
【背景技術】
【０００２】
従来、画像処理を実行するオブジェクトが、ＤＡＧ（Directed Acyclic Graph：有向非循環（非巡回）グラフ）形態で複数連結されたオブジェクト群に従って、画像処理を行う技術が知られている（特許文献１参照）。この技術では、各オブジェクトで、入力画像データにより示される入力画像が部分領域毎に分割された各分割画像データに対して部分処理を行う。また、この技術では、連結されたオブジェクト間の部分処理に処理の依存関係を付与する。また、この技術では、ＤＡＧの前段側のオブジェクトの部分処理から順に優先度を付与し、付与した優先度に従って部分処理を実行する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】国際公開第２０１７／１６３５９２号
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記特許文献１に記載の技術では、必ずしも画像処理の処理効率が高い順番で部分処理が実行されない場合がある結果、画像処理の処理効率が低下してしまう場合があった。
【０００５】
本発明は、ＤＡＧの前段側のオブジェクトの部分処理から順に優先度を付与する場合に比較して、画像処理の処理効率の低下を抑制することができる画像処理装置、画像処理方法、及び画像処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、請求項１に記載の画像処理装置の発明は、画像処理を実行するオブジェクトが有向非循環グラフ形態で複数連結されたオブジェクト群の各オブジェクトで、入力画像データにより示される入力画像が部分領域毎に分割された各分割画像データに対して部分処理を行う画像処理装置であって、連結された前記オブジェクト間の前記部分処理に処理の依存関係を付与する依存関係付与部と、前記オブジェクト群の末端のオブジェクトの部分処理に優先度を付与し、かつ後段側に依存関係が付与されている部分処理を有する前段側のオブジェクトの部分処理の優先度として、依存関係が付与されている後段側の部分処理の優先度の最大値を付与する優先度付与部と、前記依存関係に基づいて実行可能となった部分処理を、付与された前記優先度に従って実行する実行部と、を備える。
【０００７】
請求項２に記載の発明は、請求項１に記載の発明において、前記優先度付与部は、前記末端のオブジェクトの部分処理に優先度を付与する際に、出力画像の正面視下に位置する分割画像を示す分割画像データを処理する部分処理よりも、出力画像の正面視上に位置する分割画像を示す分割画像データを処理する部分処理に高い優先度を付与する。
【０００８】
請求項３に記載の発明は、請求項１又は請求項２に記載の発明において、前記優先度付与部は、前記オブジェクト群に複数の前記末端のオブジェクトが存在する場合、前記複数の前記末端のオブジェクトの部分処理に優先度を付与する際に、オブジェクト単位で順番に画像処理が実行される優先度を付与するか、又はオブジェクト間で各オブジェクトの部分処理が順番に実行される優先度を付与する。
【０００９】
請求項４に記載の発明は、請求項３に記載の発明において、前記優先度付与部は、オブジェクト単位で順番に画像処理が実行される優先度を付与するか、又はオブジェクト間で各オブジェクトの部分処理が順番に実行される優先度を付与するかが選択可能とされる。
【００１０】
請求項５に記載の発明は、請求項１から請求項４の何れか１項に記載の発明において、前記優先度付与部は、後段側の部分処理に依存関係が付与されていない部分処理については、優先度を付与しないか、又は部分処理を実行しないことを表す優先度として予め定められた優先度を付与し、前記実行部は、優先度が付与されていない部分処理、又は前記予め定められた優先度が付与された部分処理については、実行対象としない。
【００１１】
請求項６に記載の発明は、請求項１から請求項５の何れか１項に記載の発明において、前記実行部は、実行可能で、かつ優先度が同一の部分処理が複数存在する場合、優先度が同一の複数の部分処理の各々について、部分処理の実行完了後に実行可能となる、当該部分処理に依存し、かつ当該部分処理と同じ優先度の部分処理の数である第１の数、部分処理の実行完了後に実行可能とならない、当該部分処理に依存し、かつ当該部分処理と同じ優先度の部分処理の数である第２の数、部分処理の実行完了後に実行可能となる、当該部分処理に依存し、かつ当該部分処理よりも低い優先度の部分処理の数である第３の数、及び部分処理の実行完了後に実行可能とならない、当該部分処理に依存し、かつ当該部分処理よりも低い優先度の部分処理の数である第４の数の少なくとも１つを求め、優先度が同一の複数の部分処理の各々について求めた数が最大の部分処理を実行する。
【００１２】
請求項７に記載の発明は、請求項６に記載の発明において、前記実行部は、前記第１の数、前記第２の数、前記第３の数、及び前記第４の数を、前記第１の数、前記第２の数、前記第３の数、及び前記第４の数の順番で求め、優先度が同一の複数の部分処理の各々について求めた数が異なる時点で、求めた数が最大の部分処理を実行する。
【００１３】
請求項８に記載の発明は、請求項１から請求項５の何れか１項に記載の発明において、前記実行部は、実行可能で、かつ優先度が同一の部分処理が複数存在する場合、優先度が同一の複数の部分処理の各々について、部分処理の実行のために必要となる出力領域のメモリ量に対する部分処理の実行完了後に開放される入力領域のメモリ量の差が最小の部分処理を実行する。
【００１４】
請求項９に記載の発明は、請求項１から請求項５の何れか１項に記載の発明において、前記実行部は、実行可能で、かつ優先度が同一の部分処理が複数存在する場合、優先度が同一の複数の部分処理の各々について、部分処理の実行完了後に実行可能となる、当該部分処理に依存し、かつ当該部分処理と同じ優先度の部分処理の数である第１の数、部分処理の実行完了後に実行可能とならない、当該部分処理に依存し、かつ当該部分処理と同じ優先度の部分処理の数である第２の数、部分処理の実行完了後に実行可能となる、当該部分処理に依存し、かつ当該部分処理よりも低い優先度の部分処理の数である第３の数、及び部分処理の実行完了後に実行可能とならない、当該部分処理に依存し、かつ当該部分処理よりも低い優先度の部分処理の数である第４の数の少なくとも１つを求め、優先度が同一の複数の部分処理の各々について求めた数が最大の部分処理を実行する第１の方式と、優先度が同一の複数の部分処理の各々について、部分処理の実行のために必要となる出力領域のメモリ量に対する部分処理の実行完了後に開放される入力領域のメモリ量の差が最小の部分処理を実行する第２の方式と、の何れを用いるか、又は組み合わせて用いるかが選択可能とされる。
【００１５】
請求項１０に記載の画像処理方法の発明は、画像処理を実行するオブジェクトが有向非循環グラフ形態で複数連結されたオブジェクト群の各オブジェクトで、入力画像データにより示される入力画像が部分領域毎に分割された各分割画像データに対して部分処理を行う画像処理装置による画像処理方法であって、連結された前記オブジェクト間の前記部分処理に処理の依存関係を付与し、前記オブジェクト群の末端のオブジェクトの部分処理に優先度を付与し、かつ後段側に依存関係が付与されている部分処理を有する前段側のオブジェクトの部分処理の優先度として、依存関係が付与されている後段側の部分処理の優先度の最大値を付与し、前記依存関係に基づいて実行可能となった部分処理を、付与した前記優先度に従って実行するものである。
【００１６】
請求項１１に記載の画像処理プログラムの発明は、コンピュータを、請求項１から請求項９の何れか１項記載の画像処理装置の依存関係付与部、優先度付与部、及び実行部として機能させるためのものである。
【発明の効果】
【００１７】
請求項１、１０、１１に記載の発明によれば、ＤＡＧの前段側のオブジェクトの部分処理から順に優先度を付与する場合に比較して、画像処理の処理効率の低下を抑制することができる、という効果を有する。
【００１８】
請求項２に記載の発明によれば、出力画像の正面視の位置を考慮せずに部分処理に優先度を付与する場合に比較して、画像処理の処理効率の低下を抑制することができる、という効果を有する。
【００１９】
請求項３に記載の発明によれば、複数の末端のオブジェクトの部分処理にランダムに優先度を付与する場合に比較して、望ましい順番で部分処理を実行することができる、という効果を有する。
【００２０】
請求項４に記載の発明によれば、ユーザが所望する順番で部分処理を実行することができる、という効果を有する。
【００２１】
請求項５に記載の発明によれば、無駄な部分処理の実行を抑制することができる、という効果を有する。
【００２２】
請求項６に記載の発明によれば、ランダムに部分処理を選択する場合に比較して、画像処理の処理効率の低下を抑制することができる、という効果を有する。
【００２３】
請求項７に記載の発明によれば、上記第１の数〜第４の数を全て求める場合に比較して、演算量を低減することができる、という効果を有する。
【００２４】
請求項８に記載の発明によれば、ランダムに部分処理を選択する場合に比較して、消費メモリ量を低減することができる、という効果を有する。
【００２５】
請求項９に記載の発明によれば、システム要求及びユーザの要望等に応じた方式を選択することができる、という効果を有する。
【図面の簡単な説明】
【００２６】
【図１】ＤＡＧの前段側のオブジェクトの部分処理から順に優先度を付与する方式の問題点の一例を説明するための図である。
【図２】ＤＡＧの前段側のオブジェクトの部分処理から順に優先度を付与する方式の問題点の一例を説明するための図である。
【図３】ＤＡＧの前段側のオブジェクトの部分処理から順に優先度を付与する方式の問題点の一例を説明するための図である。
【図４】ＤＡＧの前段側のオブジェクトの部分処理から順に優先度を付与する方式の問題点の一例を説明するための図である。
【図５】実施形態に係る画像処理装置として機能するコンピュータの構成の一例を示すブロック図である。
【図６Ａ】画像処理ＤＡＧの一例を示す概略図である。
【図６Ｂ】画像処理ＤＡＧに入出力用のメモリを加えた場合の一例を示す概略図である。
【図７】実施形態に係る処理制御部の機能的な構成の一例を示すブロック図である。
【図８Ａ】入力画像の分割処理の一例の説明に供する概略図である。
【図８Ｂ】入力画像の分割処理の一例の説明に供する概略図である。
【図９】画像処理モジュールが部分処理に分割された画像処理ＤＡＧの一例を示す概略図である。
【図１０Ａ】末端の画像処理モジュールが１個の画像処理ＤＡＧの部分処理に優先度を付与する処理を説明するための図である。
【図１０Ｂ】末端の画像処理モジュールが１個の画像処理ＤＡＧの部分処理に優先度を付与する処理を説明するための図である。
【図１０Ｃ】末端の画像処理モジュールが１個の画像処理ＤＡＧの部分処理に優先度を付与する処理を説明するための図である。
【図１０Ｄ】末端の画像処理モジュールが１個の画像処理ＤＡＧの部分処理に優先度を付与する処理を説明するための図である。
【図１１Ａ】末端の画像処理モジュールが複数個の画像処理ＤＡＧの部分処理に優先度を付与する処理を説明するための図である。
【図１１Ｂ】末端の画像処理モジュールが複数個の画像処理ＤＡＧの部分処理に優先度を付与する処理を説明するための図である。
【図１１Ｃ】末端の画像処理モジュールが複数個の画像処理ＤＡＧの部分処理に優先度を付与する処理を説明するための図である。
【図１１Ｄ】末端の画像処理モジュールが複数個の画像処理ＤＡＧの部分処理に優先度を付与する処理を説明するための図である。
【図１１Ｅ】末端の画像処理モジュールが複数個の画像処理ＤＡＧの部分処理に優先度を付与する処理を説明するための図である。
【図１１Ｆ】末端の画像処理モジュールが複数個の画像処理ＤＡＧの部分処理に優先度を付与する処理を説明するための図である。
【図１２】実施形態に係る優先度が付与された画像処理ＤＡＧの一例を示す概略図である。
【図１３】実施形態に係る優先度が付与された画像処理ＤＡＧの一例を示す概略図である。
【図１４】実施形態に係る優先度が付与された画像処理ＤＡＧの一例を示す概略図である。
【図１５】図１４に示す画像処理ＤＡＧの各部分処理の実行順序を説明するための図である。
【図１６】実施形態に係る優先度が付与された画像処理ＤＡＧの一例を示す概略図である。
【図１７】図１６に示す画像処理ＤＡＧの各部分処理の実行順序を説明するための図である。
【図１８】実施形態に係る優先度付与処理プログラムの処理の流れを示すフローチャートである。
【図１９】実施形態に係る画像処理プログラムの処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００２７】
まず、実施形態の詳細を説明する前に、ＤＡＧの前段側のオブジェクトの部分処理から順に優先度を付与する方式の問題点を詳細に説明する。
【００２８】
上記方式では、例えば、後段側のオブジェクトの部分処理に対して、依存関係のある前段側のオブジェクトの部分処理よりも高い優先度を付与する。また、例えば、後段側のオブジェクトの部分処理に対して、依存関係のある前段側のオブジェクトの部分処理の優先度に従った優先度を付与する。この方式では、以下に示す問題が発生する。
【００２９】
例えば、図１に示すように、入力画像に対して何らかの画像処理（図１では「処理Ａ」と表記）を行った後に、トリミング処理を行う場合を考える。なお、図１では、Ｔ１１、Ｔ１２等の「Ｔ」＋「数字」が内部に記載された矩形が部分処理を表し、矩形の左上の数字（例えば、「Ｔ１１」に対する「１０」等）が部分処理に付与された優先度を表す。
【００３０】
この場合、図１に示すように、前段側のオブジェクトの部分処理から優先度を付与すると、トリミング処理によって出力画像を得るためには不要な分割画像も部分処理Ｔ１１によって実行されてしまう。すなわち、無駄な画像処理が実行される結果、画像処理の処理効率が低下する。なお、この問題は、トリミング処理に限定されず、画像の一部を処理対象とする画像処理においても発生する可能性がある。
【００３１】
次に、図２に示すように、例えば、縮小処理のように、画像全体に対して１つの部分処理（図２の例ではＴ２１）を行うオブジェクトがＤＡＧに含まれる場合を考える。この場合、図２に示すように、前段側のオブジェクトの部分処理から優先度を付与すると、処理Ｂの各部分処理Ｔ４１〜Ｔ４４は、縮小処理（すなわち、部分処理Ｔ２１）が終了しないと処理が開始できない。このため、処理Ｂが実行可能となった時点では、処理Ａの部分処理Ｔ３１〜Ｔ３４のそれぞれの出力画像がメモリ上に蓄積されてしまう。
【００３２】
これに対し、例えば、部分処理Ｔ２１に対して部分処理Ｔ３１〜Ｔ３４よりも高い優先度を付与すると、処理Ａ、Ｂは、Ｔ３１、Ｔ４１、Ｔ３２、Ｔ４２、…といった順で部分処理が実行される。従って、例えば、部分処理Ｔ４１が終了した時点で、部分処理Ｔ３１の出力メモリ（すなわち、部分処理Ｔ４１の入力メモリ）が解放される結果、消費メモリ量が低減される。このため、画像処理の処理効率の低下が抑制される。
【００３３】
次に、図３に示すように、入力画像の正面視上下を反転させずに画像処理を行うオブジェクトの後に、正面視上下を反転させる画像処理を行うオブジェクトが連結された場合を考える。一般に、表示部への画像の表示及び紙等の記録材料への画像の形成は、ラスタースキャンにより行われることが多いため、出力画像は正面視上から順に出力されることが好ましい場合が多い。これに対し、前段側のオブジェクトの部分処理から優先度を付与すると、画像の正面視上下を反転させる画像処理を行うオブジェクトに対し、出力画像の正面視上の位置の分割画像を処理する部分処理から順に高い優先度を付与しても、以下の問題が発生する。すなわち、この場合、図３の例では、部分処理Ｔ１１、Ｔ２１、Ｔ１２、Ｔ２２、Ｔ１３、Ｔ２３の順に部分処理が実行されるため、出力画像は正面視下から順に出力されてしまう。
【００３４】
次に、図４に示すように、ＤＡＧの末端のオブジェクトが複数（図４の例では２個）存在する場合を考える。この場合、上記方式では、消費メモリ量の節約のために、末端のオブジェクト間で部分処理が順番に実行される。図４の例では、部分処理Ｔ３１、Ｔ５１、Ｔ３２、Ｔ５２、Ｔ３３、Ｔ５３の順に部分処理が実行される。しかしながら、例えば、末端の複数のオブジェクトの出力画像が複数ページの画像群である場合、１ページ目の画像、２ページ目の画像とページ順に出力画像が出力されることが好ましい。上記方式では、この場合に、好ましい順番で出力画像が出力されない場合がある。
【００３５】
以下の実施形態では、以上説明した問題に対応するために、ＤＡＧの末端のオブジェクトの部分処理に優先度を付与し、前段側のオブジェクトの部分処理には、その部分処理に依存関係のある後段側のオブジェクトの部分処理の優先度の最大値を伝播させる。以下、図面を参照して、本発明を実施するための形態例を詳細に説明する。
【００３６】
まず、図５を参照して、画像処理装置として機能するコンピュータ１０の構成を説明する。なお、コンピュータ１０は、複写機、プリンタ、ファクシミリ装置、これらの装置の機能を兼ね備えた複合機、及びスキャナ等の内部で画像処理を行う画像取扱機器に組み込まれたコンピュータであってもよい。また、コンピュータ１０は、ＰＣ（Personal Computer）等の独立したコンピュータであってもよく、ＰＤＡ（Personal Digital Assistant）及び携帯電話機等の携帯機器に組み込まれたコンピュータであってもよい。
【００３７】
図５に示すように、本実施形態に係るコンピュータ１０は、第１演算部１２Ａ、第２演算部１２Ｂ、メモリ１４、表示部１６、操作部１８、記憶部２０、画像データ供給部２２、及び画像出力部２４を備えている。また、第１演算部１２Ａ、第２演算部１２Ｂ、メモリ１４、表示部１６、操作部１８、記憶部２０、画像データ供給部２２、及び画像出力部２４の各部は、バス２６を介して互いに接続されている。
【００３８】
本実施形態に係る第１演算部１２Ａは、コンピュータ１０のメイン・プロセッサであり、一例として複数のプロセッサ・コア（以下、「コア」という）を有するＣＰＵ（Central Processing Unit）である。また、本実施形態に係る第２演算部１２Ｂは、一例として内部にローカルメモリ１３を有するＧＰＵ（Graphics Processing Unit）である。なお、第２演算部１２Ｂは、第１演算部１２Ａと同じ種類のＣＰＵでもよいし、異なる種類のＣＰＵでもよい。また、第２演算部１２Ｂは、第１演算部１２Ａに内蔵されたＧＰＵでもよい。また、第２演算部１２Ｂは内部にローカルメモリ１３を有さないＧＰＵでもよい。また、第１演算部１２Ａ及び第２演算部１２Ｂは、ＦＰＧＡ（Field Programmable Gate Array）等の演算器でもよい。
【００３９】
メモリ１４は、第１演算部１２Ａ及び第２演算部１２Ｂが一時的にデータを記憶する不揮発性の記憶手段である。本実施形態に係る第２演算部１２Ｂにより画像処理を行う場合、第１演算部１２Ａはメモリ１４又は記憶部２０の記憶領域に記憶された画像データを第２演算部１２Ｂにバス２６を介して転送する。そして、第２演算部１２Ｂは、第１演算部１２Ａから転送された画像データをローカルメモリ１３に記憶し、記憶した画像データに対して画像処理を行う。なお、第２演算部１２Ｂは、メモリ１４又は記憶部２０に記憶された画像データを直接読み出して画像処理を行ってもよい。
【００４０】
コンピュータ１０が前述した画像取扱機器に組み込まれている場合、表示部１６及び操作部１８は、例えば画像取扱機器に設けられたＬＣＤ（Liquid Crystal Display）等の表示パネル及びテンキー等が適用される。また、コンピュータ１０が独立したコンピュータである場合、表示部１６及び操作部１８は、例えばコンピュータ１０に接続されたディスプレイ、及びキーボード、マウス等が適用される。また、表示部１６及び操作部１８は、タッチパネル及びディスプレイが一体化して構成されたタッチパネルディスプレイ等でもよい。また、記憶部２０は、ＨＤＤ（Hard Disk Drive）、ＳＳＤ（Solid State Drive）、及びフラッシュメモリ等の不揮発性の記憶媒体が適用される。
【００４１】
画像データ供給部２２は、処理対象の画像データを供給するものであればよく、例えば紙又は写真フィルム等の記録材料に記録されている画像を読み取って画像データを出力する画像読取部が適用される。また、画像データ供給部２２は、例えば通信回線を介して外部装置から画像データを受信する受信部、及び画像データを記憶する画像記憶部（メモリ１４又は記憶部２０）等が適用される。
【００４２】
画像出力部２４は、画像処理を経た画像データ又は画像処理を経た画像データが表す画像を出力するものであればよく、例えば画像データが表す画像を紙又は感光材料等の記録材料に記録する画像記録部が適用される。また、画像出力部２４は、画像データが表す画像をディスプレイ等に表示する表示部（表示部１６）、画像データをＣＤ−ＲＯＭ（Compact Disc Read Only Memory）等の記録媒体に書き込む書込装置が適用される。また、画像出力部２４は、画像処理を経た画像データを、通信回線を介して外部装置に送信する送信部が適用される。また、画像出力部２４は、画像処理を経た画像データを記憶する画像記憶部（メモリ１４又は記憶部２０）であってもよい。
【００４３】
図５に示すように、記憶部２０には、第１演算部１２Ａ及び第２演算部１２Ｂによって実行される各種プログラムが記憶されている。記憶部２０には、各種プログラムとして、リソースの管理、プログラムの実行の管理、及びコンピュータ１０と外部装置との通信等を司るオペレーティングシステム３０のプログラムが記憶されている。また、記憶部２０には、各種プログラムとして、コンピュータ１０を画像処理装置として機能させるための画像処理プログラム群３４が記憶されている。また、記憶部２０には、各種プログラムとして、上記画像処理装置に対して所望の画像処理を行わせる各種のアプリケーションプログラム群３２（以下、「アプリケーション３２」という。）が記憶されている。
【００４４】
画像処理プログラム群３４は、前述した画像取扱機器、携帯機器、及びＰＣ等で実行される画像処理プログラムを開発する際の負荷を軽減することを目的として開発されたプログラムである。また、画像処理プログラム群３４は、前述した画像取扱機器、携帯機器、及びＰＣ等の各種機器（プラットフォーム）で共通に実行可能に開発されたプログラムである。
【００４５】
画像処理プログラム群３４によって実現される画像処理装置は、アプリケーション３２からの構築指示に従い、アプリケーション３２が指示した画像処理を行う画像処理ＤＡＧ５０Ａ（詳細は後述）を構築する。そして、上記画像処理装置は、アプリケーション３２からの実行指示に従い画像処理ＤＡＧ５０Ａの処理を実行する。このため、画像処理プログラム群３４は、所望の画像処理を行う画像処理ＤＡＧ５０Ａの構築を指示したり、構築された画像処理ＤＡＧ５０Ａによる画像処理の実行を指示したりするためのインタフェースをアプリケーション３２に提供している。
【００４６】
以上の構成により、内部で画像処理を行う必要のある任意の機器を新規に開発する場合等にも、上記画像処理を行うプログラムの開発に関しては、上記任意の機器で必要とされる画像処理を、上記インタフェースを利用して画像処理プログラム群３４に行わせるアプリケーション３２を開発すればよい。従って、開発者は、実際に画像処理を行うプログラムを新たに開発する必要が無くなり、開発者の負荷が軽減される。
【００４７】
次に、本実施形態に係る画像処理プログラム群３４について詳細に説明する。図５に示すように、画像処理プログラム群３４は、モジュールライブラリ３６、処理構築部４２のプログラム、及び処理制御部４６のプログラムを含む。
【００４８】
モジュールライブラリ３６は、予め定められた互いに異なる画像処理を行う複数種類の画像処理モジュール３８のプログラムが各々登録されている。この画像処理としては、例えば、入力処理、フィルタ処理、色変換処理、拡大・縮小処理（図５では「拡縮処理」と表記）、スキュー角検知処理、画像回転処理、画像合成処理、及び出力処理等が挙げられる。
【００４９】
また、モジュールライブラリ３６には、画像処理の種類が同一で、かつ実行する画像処理の内容が異なる画像処理モジュール３８も登録されている。図５では、この種の画像処理モジュールを「モジュール１」、「モジュール２」と、末尾に数字を付して区別している。例えば、拡大・縮小処理を行う画像処理モジュール３８については、入力された画像データを、水平方向及び垂直方向の各方向ともに１画素おきに間引くことで画像の縦横のサイズを５０％に縮小する縮小処理を行う画像処理モジュール３８が用意されている。さらに、例えば、拡大・縮小処理を行う画像処理モジュール３８については、入力された画像データに対して指定された拡大・縮小率で拡大・縮小処理を行う画像処理モジュール３８等が用意されている。
【００５０】
また、例えば、色変換処理を行う画像処理モジュール３８については、ＲＧＢ（Red Green Blue）色空間の画像をＣＭＹＫ（Cyan Magenta Yellow Key-Plate（黒））色空間の画像へ変換する画像処理モジュール３８、及びＣＭＹＫ色空間の画像をＲＧＢ色空間の画像へ変換する画像処理モジュール３８が用意されている。さらに、例えば、色変換処理を行う画像処理モジュール３８については、ＲＧＢ色空間の画像をＹＣｂＣｒ色空間の画像へ変換する画像処理モジュール３８、及びＹＣｂＣｒ色空間の画像をＲＧＢ色空間の画像へ変換する画像処理モジュール３８等が用意されている。
【００５１】
また、本実施形態に係る画像処理モジュール３８には、個々の画像処理モジュール３８を、第１演算部１２Ａ及び第２演算部１２Ｂの何れの演算部で実行するかを示す演算部情報が含まれている。なお、演算部情報は、画像処理モジュール３８の種類及び画像処理の内容の少なくとも一方に応じて予め設定されていてもよいし、アプリケーション３２からの指示により、後述する処理構築部４２による画像処理ＤＡＧ５０Ａの構築時に設定されてもよい。
【００５２】
また、モジュールライブラリ３６には、画像データを記憶するための記憶領域（バッファ）を備えたバッファモジュール４０も登録されている。
【００５３】
本実施形態に係る処理構築部４２は、アプリケーション３２からの指示により、ＤＡＧ形態の画像処理ＤＡＧ５０Ａを構築する。画像処理ＤＡＧ５０Ａは、一例として図６Ａに示すように、１つ以上の画像処理モジュール３８が、個々の画像処理モジュール３８の前段及び後段の少なくとも一方に配置されたバッファモジュール４０を介して連結される。
【００５４】
なお、個々の画像処理モジュール３８は、入力画像データに対して画像処理を実行して出力画像データを出力するオブジェクトの一例である。また、画像処理ＤＡＧ５０Ａは、画像処理モジュール３８が複数連結されたオブジェクト群の一例である。また、図６Ａに示す例では、バッファモジュール４０を介して前段に画像処理モジュール３８が連結された画像処理モジュール３８は、前段の画像処理モジュール３８による画像処理が終了した場合に、自身の画像処理の実行が可能となることを示している。また、バッファモジュール４０を介して前段に複数の画像処理モジュール３８が連結された画像処理モジュール３８は、前段の複数の画像処理モジュール３８の全ての画像処理が終了した場合に、自身の画像処理の実行が可能となることを示している。
【００５５】
また、図６Ａでは、各モジュールのみが処理の順に接続されたＤＡＧを示しているが、このＤＡＧが実行される際には、図６Ｂに示すようにメモリ１４に記憶された画像データが入力されてＤＡＧに従って画像処理が行われる。そして、最終的にメモリ１４に処理済みの画像データ等の処理結果が記憶される。なお、各画像処理モジュール３８で実行される画像処理を第２演算部１２Ｂにより実行する場合は、図６Ｂに示したメモリ１４がローカルメモリ１３となる。
【００５６】
次に、図７を参照して、本実施形態に係る処理制御部４６の機能的な構成を説明する。図７に示すように、処理制御部４６は、分割部６０、依存関係付与部６２、優先度付与部６４、実行可能部分処理記憶部６６、実行部６８、及び出力部７０を備えている。
【００５７】
本実施形態に係る分割部６０は、入力画像データの処理対象とする部分により示される画像を複数の部分領域（以下、「分割画像」という。）に分割する。一例として図８Ａに示すように、分割部６０は、入力画像データの処理対象とする部分により示される画像Ｇを、複数（図８Ａに示す例では３つ）の分割画像Ｂ１〜Ｂ３に分割する。なお、以下では分割画像を示す画像データを「分割画像データ」という。また、入力画像データの処理対象とする部分とは、色変換処理のように入力画像全体を処理対象とする画像処理では、入力画像データ全体が処理対象とする部分を意味する。また、入力画像データの処理対象とする部分とは、切り抜き（トリミング）処理のように、入力画像の一部を処理対象とする画像処理では、入力画像の一部を意味する。以下では、錯綜を回避するために、入力画像データの処理対象とする部分を、単に「入力画像データ」という。
【００５８】
また、図８Ａに示した例では、分割部６０が画像Ｇを正面視上下に分割しているが、これに限定されない。例えば分割部６０は画像Ｇを正面視左右に分割してもよいし、図８Ｂに示すように、正面視上下左右に分割してもよい。
【００５９】
なお、分割部６０による入力画像データの分割数は特に限定されない。例えば、分割部６０は、予め定められた数又はサイズで入力画像データを分割してもよい。また、例えば、分割部６０は、画像処理モジュール３８による画像処理を実行する演算部が有するプロセッサ・コア数以下で、かつ２以上の数に入力画像データを分割してもよい。
【００６０】
また、例えば、分割部６０は、画像処理モジュール３８による画像処理を実行する演算部が有するキャッシュメモリの容量以下のサイズで入力画像データを分割してもよい。この場合、例えば、分割部６０は、画像処理モジュール３８による画像処理を実行する演算部のプロセッサから最も遠いレベルのキャッシュメモリ、所謂ＬＬＣ（Last Level Cache）の容量以下で、かつＬＬＣの容量に極力一致するサイズで入力画像データを分割する形態が例示される。
【００６１】
また、一例として図９に示すように、分割部６０は、画像処理ＤＡＧ５０Ａに対し、各画像処理モジュール３８で実行される画像処理を、分割画像データの各々に対応する部分処理３９（タスク）に分割して画像処理ＤＡＧ５０Ｂを構築する。なお、図９は、図６Ａに示した画像処理ＤＡＧ５０Ａにおいて、入力画像データを４つの分割画像データに分割した場合の画像処理ＤＡＧ５０Ｂを示している。図９では、錯綜を回避するために、バッファモジュール４０の図示を省略している。また、後述する図１０Ａ〜Ｄ、図１１Ａ〜Ｆ、図１２〜図１４、及び図１６でも同様に、バッファモジュール４０の図示を省略している。
【００６２】
本実施形態に係る依存関係付与部６２は、画像処理モジュール３８で実行される画像処理の種類に応じて、前段に連結された画像処理モジュール３８の部分処理３９と、後段に連結された画像処理モジュール３８の部分処理３９との間で依存関係を付与する。なお、図９では、この依存関係を破線の矢印で示している。
【００６３】
例えば、色変換処理のように、処理対象とする画素のみに対して画像処理を行う処理は、各部分処理３９も１対１の依存関係となる。一方、例えば、フィルタ処理のように、処理対象とする画素の周辺画素も必要な画像処理では、周辺画素に対して画像処理を行う前段の部分処理３９にも依存関係を付与することとなる。すなわち、この依存関係は、連結された画像処理モジュール３８間において、前段に連結された画像処理モジュール３８の部分処理３９が終了した場合に、後段に連結された画像処理モジュール３８の部分処理３９が実行可能となる関係である。従って、各部分処理３９は、前段に依存関係が付与された部分処理３９が存在しない場合か、又は依存関係が付与された前段の全ての部分処理３９が終了した場合に実行可能となる。
【００６４】
具体的には、例えば、図９に示す部分処理３９Ａ及び部分処理３９Ｂは、画像処理ＤＡＧ５０Ｂによる画像処理の実行開始時に実行可能となる。また、例えば、図９に示す部分処理３９Ｃは、依存関係が付与された前段の部分処理３９Ａ及び部分処理３９Ｂの双方の処理が終了した場合に実行可能となる。
【００６５】
本実施形態に係る優先度付与部６４は、各部分処理３９に対して、部分処理３９の実行順の優先順位を表す優先度を付与する。本実施形態に係る優先度付与部６４は、優先度として、優先度が高いほど大きい値を付与する。すなわち、本実施形態では、同時に複数の部分処理３９が実行可能となった場合、優先度として付与された値が大きい部分処理３９から順に実行される。なお、優先度付与部６４は、優先度として、優先度が高いほど小さい値を付与してもよい。この場合は、同時に複数の部分処理３９が実行可能となった場合、優先度として付与された値が小さい部分処理３９から順に実行される。
【００６６】
具体的には、優先度付与部６４は、画像処理ＤＡＧ５０Ｂの各画像処理モジュール３８のうち、後段側に依存関係が付与された画像処理モジュール３８が存在しない末端の画像処理モジュール３８の部分処理３９に対し、予め定められた付与ルールに従って優先度を付与する。この付与ルールは、固定的に設定されてもよいし、複数の付与ルールの中から、ユーザにより指定されてもよいし、システム要求等に基づいて選択してもよい。
【００６７】
本実施形態では、付与ルールの一例として、末端の画像処理モジュール３８が１個の場合は、末端の画像処理モジュール３８の入力画像における正面視左上に位置する分割画像の優先度を最高とし、正面視右下に向かうほど低い優先度を付与するルールを適用した場合を説明する。これは、一般に、表示部への画像の表示、紙等の記録材料への画像の形成、ネットワークを介した画像データの転送等は、ラスタースキャンにより行われることが多く、出力画像は正面視上から順に出力されることが好ましい場合が多いためである。
【００６８】
この付与ルールに従って、図１０Ａに示す画像処理ＤＡＧ５０Ｂにおける末端の画像処理モジュール３８の部分処理３９に優先度が付与された一例を図１０Ｂに示す。なお、図１０Ａ、１０Ｂにおける各部分処理３９の内部の文字列（「Ｔ１１」等）は、各部分処理３９を区別するための文字列であり、以下では、各部分処理３９を区別して説明する場合は、部分処理Ｔ１１のように末尾に内部の文字列を付与して説明する。また、図１０Ｂにおける部分処理３９の左上の数字（「１０」等）は、各部分処理３９に付与された優先度を示している。また、図１０Ａ、１０Ｂの部分処理３９について、左上に数字が記載されていない部分処理３９は、優先度が付与されていない部分処理３９を示している。なお、図１０Ａ、１０Ｂを例にして説明した部分処理３９の内部の文字列、及び優先度は、後述する図１０Ｃ〜Ｄ、図１１Ａ〜Ｆ、図１２〜図１４、及び図１６についても同様である。
【００６９】
図１０Ｂの例では、優先度付与部６４は、出力画像の正面視下に位置する分割画像を示す分割画像データを処理する部分処理３９よりも、出力画像の正面視上に位置する分割画像を示す分割画像データを処理する部分処理３９に高い優先度を付与する。なお、図１０Ｂの例では、部分処理３９の位置が出力画像の正面視の位置に対応するものとする。すなわち、図１０Ｂの例では、優先度付与部６４は、部分処理Ｔ３１、Ｔ３２、Ｔ３３の順に低くなる優先度を付与する。この場合の優先度の値は、優先度の高低を判定可能であればよいため、図１０Ｂに示すように、等間隔で連続していなくてもよいし、例えば、負の値でもよい。
【００７０】
また、本実施形態では、画像処理ＤＡＧ５０Ｂに末端の画像処理モジュール３８が複数存在する場合、以下に示す２つの付与ルールが選択可能とされる。
【００７１】
まず、第１の付与ルールは、画像処理モジュール３８単位で順番に画像処理が実行される優先度を付与するというルールである。このルールは、末端の複数の画像処理モジュール３８の出力画像が複数ページの画像群である場合、ページ順に出力画像が出力されるためのルールである。第１の付与ルールに従って、図１１Ａに示す画像処理ＤＡＧ５０Ｂにおける末端の画像処理モジュール３８の部分処理３９に優先度が付与された一例を図１１Ｂに示す。
【００７２】
図１１Ｂに示すように、第１の付与ルールでは、ページ番号が小さい出力画像を出力する画像処理モジュール３８の部分処理３９ほど高い優先度が付与される。なお、例えば、画像処理モジュール３８内での各部分処理３９への優先度の付与ルールは、前述した付与ルールと同様でよい。
【００７３】
次に、第２の付与ルールは、画像処理モジュール３８間で各画像処理モジュール３８の部分処理３９が順番に実行される優先度を付与するというルールである。第２の付与ルールに従って、図１１Ａに示す画像処理ＤＡＧ５０Ｂにおける末端の画像処理モジュール３８の部分処理３９に優先度が付与された一例を図１１Ｃに示す。
【００７４】
図１１Ｃに示すように、第２の付与ルールでは、末端の画像処理モジュール３８間で各画像処理モジュール３８の部分処理３９が順番に実行される。なお、例えば、各画像処理モジュール３８内での各部分処理３９への優先度の付与ルールは、前述した付与ルールと同様でよい。また、複数の末端の画像処理モジュール３８のうち、何れの画像処理モジュール３８の優先度を高くするかは、特に限定されず、例えば、ランダムでもよいし、アプリケーション３２からの画像処理ＤＡＧの構築指示に含んでもよい。
【００７５】
優先度付与部６４は、末端の画像処理モジュール３８の部分処理３９への優先度の付与が終わると、後段側に依存関係が付与されている部分処理３９を有する前段側の画像処理モジュール３８の部分処理３９に対して優先度を付与する。本実施形態では、優先度付与部６４は、後段側に依存関係が付与されている部分処理３９を有する前段側の画像処理モジュール３８の部分処理３９の優先度として、依存関係が付与されている後段側の部分処理３９の優先度の最大値を付与する。
【００７６】
図１０Ｂに示す前段側の部分処理３９に１つの後段側の部分処理３９が依存している例では、図１０Ｃに示すように、優先度付与部６４は、後段側の部分処理３９の優先度を前段側の画像処理モジュール３８の部分処理３９に付与する。同様に、図１０Ｄに示すように、優先度付与部６４は、最前段の画像処理モジュール３８の部分処理３９まで、後段側の部分処理３９の優先度を付与する。
【００７７】
また、図１１Ｂに示す前段側の部分処理３９に複数の後段側の部分処理３９が依存している例では、図１１Ｄに示すように、優先度付与部６４は、後段側の部分処理３９の優先度の最大値を前段側の画像処理モジュール３８の部分処理３９に付与する。具体的な一例として、図１１Ｄでは、部分処理Ｔ２１の優先度として、部分処理Ｔ３１の優先度である３０と、部分処理Ｔ５１の優先度である２７とのうちの最大値である３０が付与される。同様に、図１１Ｅに示すように、優先度付与部６４は、最前段の画像処理モジュール３８の部分処理３９まで、後段側の部分処理３９の優先度を付与する。また、図１１Ｃに示す画像処理ＤＡＧ５０Ｂの全ての部分処理３９に優先度を付与した状態を図１１Ｆに示す。
【００７８】
なお、第１の付与ルール及び第２の付与ルールの何れを用いるかは、例えば、ユーザ指定によって選択されてもよいし、システム要求に従って選択されてもよい。
【００７９】
また、優先度付与部６４は、後段側の部分処理３９に依存関係が付与されていない部分処理３９については、優先度を付与しない。
【００８０】
本実施形態に係る実行可能部分処理記憶部６６は、画像処理ＤＡＧ５０Ｂに従って、各部分処理３９間で付与された依存関係に基づいて実行可能となった部分処理３９のうち、優先度が最高の部分処理３９が格納される記憶領域を含む。
【００８１】
本実施形態に係る実行部６８は、画像処理ＤＡＧ５０Ｂに従って、各部分処理３９間で付与された依存関係に基づいて実行可能となった部分処理３９のうち、優先度が最高の部分処理３９を実行可能部分処理記憶部６６に格納する。また、実行部６８は、実行可能部分処理記憶部６６に格納された部分処理３９を実行する。また、実行部６８は、優先度が付与されていない部分処理３９については、実行可能となった場合でも、実行可能部分処理記憶部６６に格納しないことによって、実行対象としない。
【００８２】
このように、本実施形態に係る優先度付与部６４は、末端の画像処理モジュール３８の部分処理３９から優先度を付与している。従って、図１２に示すように、入力画像の正面視上下を反転させずに画像処理を行う画像処理モジュール３８の後に、正面視上下を反転させる画像処理を行う画像処理モジュール３８が連結された場合でも、出力画像が正面視上から順に出力される優先度が付与される。
【００８３】
また、図１３に示すように、後段側に依存関係が付与された部分処理３９を有しない部分処理３９（図１３の例では部分処理Ｔ１１）には優先度が付与されないため、無駄な画像処理が実行されない。
【００８４】
また、本実施形態に係る優先度付与部６４は、後段側に依存関係が付与されている部分処理３９を有する前段側の画像処理モジュール３８の部分処理３９の優先度として、依存関係が付与されている後段側の部分処理３９の優先度の最大値を付与している。従って、実行可能で、かつ優先度が同一の部分処理３９が複数存在する場合がある。次に、実行可能で、かつ優先度が同一の部分処理３９が複数存在する場合における実行部６８の機能を説明する。
【００８５】
まず、実行可能で、かつ優先度が同一の部分処理３９が複数存在する場合における実行部６８が実行対象とする部分処理３９を選択する方式の一例としての第１の方式を説明する。
【００８６】
第１の方式では、実行部６８は、実行可能部分処理記憶部６６に格納された優先度が同一の複数の部分処理３９の各々について、以下に示す（１）から（４）までの数を、（１）から（４）の順番で求める。
（１）部分処理３９の実行完了後に実行可能となる、当該部分処理３９に依存し、かつ当該部分処理３９と同じ優先度の部分処理３９の数（以下、「第１の数」という）。
（２）部分処理３９の実行完了後に実行可能とならない、当該部分処理３９に依存し、かつ当該部分処理３９と同じ優先度の部分処理３９の数（以下、「第２の数」という）。
（３）部分処理３９の実行完了後に実行可能となる、当該部分処理３９に依存し、かつ当該部分処理３９よりも低い優先度の部分処理３９の数（以下、「第３の数」という）。
（４）部分処理３９の実行完了後に実行可能とならない、当該部分処理３９に依存し、かつ当該部分処理３９よりも低い優先度の部分処理３９の数（以下、「第４の数」という）。
【００８７】
実行部６８は、これらの数を求める際、各部分処理３９について求めた数が異なる時点で、求めた数が最大の部分処理３９を選択して実行する。また、この場合、実行部６８は、以降の数を求めない。具体的には、実行部６８は、例えば、各部分処理３９について求めた第１の数が異なる場合、第１の数が最大の部分処理３９を実行し、第２の数、第３の数、及び第４の数は求めない。これにより、第１の数から第４の数まで全て求める場合に比較して、演算量が低減される。
【００８８】
次に、実行可能で、かつ優先度が同一の部分処理３９が複数存在する場合における実行部６８が実行対象とする部分処理３９を選択する方式の一例としての第２の方式を説明する。
【００８９】
第２の方式では、実行部６８は、実行可能部分処理記憶部６６に格納された優先度が同一の複数の部分処理３９の各々について、以下に示す差Ｄを求める。すなわち、この場合、実行部６８は、部分処理３９の実行のために必要となる出力領域のメモリ量に対する部分処理３９の実行完了後に開放される入力領域のメモリ量の差Ｄを求める。具体的には、実行部６８は、以下の（１）式に従って、差Ｄを求める。なお、（１）式におけるＯは部分処理３９の実行のために必要となる部分処理３９の出力領域のメモリ量を表し、Ｉは部分処理３９の実行完了後に開放される部分処理３９の入力領域のメモリ量を表す。
Ｄ＝Ｏ−Ｉ・・・（１）
【００９０】
そして、実行部６８は、各部分処理３９について求めた差Ｄが最小の部分処理３９を選択して実行する。
【００９１】
一例として、図１４に示すように優先度が付与された画像処理ＤＡＧ５０Ｂに従って、第１の方式を用いて画像処理を実行する場合の部分処理３９の実行順序を、図１５を参照して説明する。
【００９２】
図１５に示すように、画像処理の実行開始の時点ｔ０では、部分処理Ｔ１１〜Ｔ１４が実行可能となる。また、部分処理Ｔ１１〜Ｔ１４には、同一の優先度である１０が付与されている。
【００９３】
従って、実行部６８は、第１の方式に従って、部分処理Ｔ１１〜Ｔ１４の各々について、第１の数を求める。具体的には、部分処理Ｔ１１の実行完了後に実行可能となる、部分処理Ｔ１１に依存し、かつ部分処理Ｔ１１と同じ優先度の部分処理３９は、部分処理Ｔ３１のみであるため、第１の数は１となる。一方、部分処理Ｔ１２の実行完了後に実行可能となる、部分処理Ｔ１２に依存し、かつ部分処理Ｔ１２と同じ優先度の部分処理３９は存在しないため、第１の数は０となる。同様に、部分処理Ｔ１３、Ｔ１４についても第１の数は０となる。
【００９４】
従って、実行部６８は、部分処理Ｔ１１〜Ｔ１４の各々について求めた第１の数が最大の部分処理Ｔ１１を選択して実行する。また、この場合、実行部６８は、部分処理Ｔ１１〜Ｔ１４の各々について第２の数〜第４の数は求めない。
【００９５】
部分処理Ｔ１１の実行が完了すると新たに部分処理Ｔ３１が実行可能となるため、時点ｔ１では、部分処理Ｔ１２〜Ｔ１４、Ｔ３１が実行可能となる。また、部分処理Ｔ１２〜Ｔ１４、Ｔ３１には、同一の優先度である１０が付与されている。
【００９６】
従って、実行部６８は、第１の方式に従って、部分処理Ｔ１２〜Ｔ１４、Ｔ３１の各々について、第１の数を求める。部分処理Ｔ１２〜Ｔ１４、Ｔ３１は、それぞれ実行完了後に実行可能となる、部分処理Ｔ１２〜Ｔ１４、Ｔ３１に依存し、かつ部分処理Ｔ１２〜Ｔ１４、Ｔ３１と同じ優先度の部分処理３９は存在しないため、第１の数は０となる。部分処理Ｔ１２〜Ｔ１４、Ｔ３１の各々について求めた第１の数が同じであるため、次に、実行部６８は、第２の数を求める。
【００９７】
具体的には、部分処理Ｔ１２の実行完了後に実行可能とならない、部分処理Ｔ１２に依存し、かつ部分処理Ｔ１２と同じ優先度の部分処理３９は、部分処理Ｔ２１のみであるため、第２の数は１となる。同様に、部分処理Ｔ１３、Ｔ１４の実行完了後に実行可能とならない、部分処理Ｔ１３、Ｔ１４に依存し、かつ部分処理Ｔ１３、Ｔ１４と同じ優先度の部分処理３９は、部分処理Ｔ２１のみであるため、第２の数は１となる。また、部分処理Ｔ３１の実行完了後に実行可能とならない、部分処理Ｔ３１に依存し、かつ部分処理Ｔ３１と同じ優先度の部分処理３９は、部分処理Ｔ４１のみであるため、第２の数は１となる。部分処理Ｔ１２〜Ｔ１４、Ｔ３１の各々について求めた第２の数が同じであるため、次に、実行部６８は、第３の数を求める。
【００９８】
具体的には、部分処理Ｔ１２の実行完了後に実行可能となる、部分処理Ｔ１２に依存し、かつ部分処理Ｔ１２よりも低い優先度（ここでは、部分処理Ｔ１２の優先度の値より１小さい優先度が９）の部分処理３９は、部分処理Ｔ３２のみであるため、第２の数は１となる。一方、部分処理Ｔ１３、Ｔ１４、Ｔ３１の実行完了後に実行可能となる、部分処理Ｔ１３、Ｔ１４、Ｔ３１に依存し、かつ優先度が９の部分処理３９は存在しないため、第３の数は０となる。
【００９９】
従って、実行部６８は、部分処理Ｔ１２〜Ｔ１４、Ｔ３１の各々について求めた第３の数が最大の部分処理Ｔ１２を選択して実行する。また、この場合、実行部６８は、部分処理Ｔ１２〜Ｔ１４、Ｔ３１の各々について第４の数は求めない。
【０１００】
部分処理Ｔ１２の実行が完了すると新たに部分処理Ｔ３２が実行可能となるため、時点ｔ２では、部分処理Ｔ１３、Ｔ１４、Ｔ３１、Ｔ３２が実行可能となる。また、部分処理Ｔ１３、Ｔ１４、Ｔ３１、Ｔ３２の優先度うち、最高の優先度は１０であり、優先度として１０が付与されている部分処理３９は、部分処理Ｔ１３、Ｔ１４、Ｔ３１の３個が存在する。
【０１０１】
従って、実行部６８は、第１の方式に従って、部分処理Ｔ１３、Ｔ１４、Ｔ３１の各々について、第１の数を求める。なお、第１の数から第４の数の求め方は前述したため、以下では詳細な説明を省略する。図１５に示すように、部分処理Ｔ１３、Ｔ１４、Ｔ３１の各々について、第１の数は０となり、第２の数は１となる。また、部分処理Ｔ１３、Ｔ１４、Ｔ３１の各々について、優先度が９の部分処理３９に関する第３の数及び第４の数は０となる。
【０１０２】
この場合、本実施形態では、実行部６８は、部分処理Ｔ１３、Ｔ１４、Ｔ３１の各々について、更に優先度が低い優先度が８の部分処理３９に関する第３の数を求める。優先度が８の部分処理３９に関する第３の数は、部分処理Ｔ１３については１となり、部分処理Ｔ１４、Ｔ３１については０となる。従って、実行部６８は、部分処理Ｔ１３を選択して実行する。
【０１０３】
同様に、時点ｔ３では、部分処理Ｔ１４、Ｔ３１のうちの第１の数が最大の部分処理Ｔ１４が選択されて実行され、時点ｔ４では、部分処理Ｔ２１、Ｔ３１のうちの第４の数が最大の部分処理Ｔ２１が選択されて実行される。時点ｔ５以降は、実行可能で、かつ優先度が最高の部分処理３９が１個であるため、その部分処理３９が実行される。
【０１０４】
次に、一例として、図１６に示すように優先度が付与された画像処理ＤＡＧ５０Ｂに従って、第１の方式及び第２の方式の組み合わせを用いて画像処理を実行する場合の部分処理３９の実行順序を、図１７を参照して説明する。なお、ここでは、第１の方式及び第２の方式の組み合わせの一例として、第１の方式に従って第１の数及び第２の数を求め、求めた数が同じ場合に第２の方式を用いる形態例を説明する。
【０１０５】
また、図１６に示す画像処理ＤＡＧ５０Ｂでは、２つの入力画像を処理対象とし、第１の入力画像の縦及び横の画素数が第２の入力画像の半分、すなわち、第１の入力画像を示す画像データの容量が第２の入力画像を示す画像データの容量の１／４であるものとする。また、図１６に示す例では、第１の入力画像を２個の同じ容量の分割画像に分割し、第２の入力画像を４個の同じ容量の分割画像に分割するものとする。また、本実施形態では、各分割画像を記憶するために必要なメモリ量を相対値で取り扱う。具体的には、第１の入力画像を分割して得られた分割画像を記憶するために必要なメモリ量を１とする。従って、第２の入力画像を分割して得られた分割画像を記憶するために必要なメモリ量は、以下の（２）式に従って２となる。
第２の入力画像を分割して得られた分割画像を記憶するために必要なメモリ量＝第１の入力画像を記憶するために必要なメモリ量（１×２＝２）×４（倍）÷４（個）＝２・・・（２）
【０１０６】
図１７に示すように、画像処理の実行開始の時点ｔ０で実行可能で、かつ優先度が最高（図１７の例では１０）の部分処理３９は、部分処理Ｔ１１、Ｔ３１、Ｔ３２の３個である。従って、実行部６８は、第１の方式に従って、部分処理Ｔ１１、Ｔ３１、Ｔ３２の各々について、第１の数を求める。図１７に示すように、部分処理Ｔ１１については第１の数が１となり、部分処理Ｔ３１、Ｔ３２については第１の数が０となるため、部分処理Ｔ１１が選択されて実行される。
【０１０７】
部分処理Ｔ１１の実行が完了すると新たに部分処理Ｔ２１が実行可能となるため、時点ｔ１で実行可能で、かつ優先度が最高の部分処理３９は、部分処理Ｔ２１、Ｔ３１、Ｔ３２の３個である。従って、実行部６８は、第１の方式に従って、部分処理Ｔ２１、Ｔ３１、Ｔ３２の各々について、第１の数を求める。図１７に示すように、部分処理Ｔ２１、Ｔ３１、Ｔ３２の各々について、第１の数は０となり、第２の数は１となる。部分処理Ｔ２１、Ｔ３１、Ｔ３２の各々について、第１の数及び第２の数が同じであるため、第２の方式が用いられる。
【０１０８】
実行部６８は、部分処理Ｔ２１、Ｔ３１、Ｔ３２の各々について、上記（１）式に従って差Ｄ（図１７ではメモリ量増減と表記）を求める。具体的には、部分処理Ｔ２１の実行のために必要となる出力領域のメモリ量は１であり、部分処理Ｔ２１の実行完了後に開放される入力領域（すなわち、部分処理Ｔ１１の出力領域）のメモリ量は１であるため、差Ｄは０（＝１−１）となる。一方、部分処理Ｔ３１の実行のために必要となる出力領域のメモリ量は２であり、部分処理Ｔ３１の実行完了後に開放される入力領域のメモリ量は０であるため、差Ｄは２（＝２−０）となる。同様に、部分処理Ｔ３２についても差Ｄは２（＝２−０）となる。なお、本実施形態では、画像処理ＤＡＧ５０Ｂの最前段の画像処理モジュール３８に入力される入力画像が記憶された記憶領域は、画像処理ＤＡＧ５０Ｂの全画像処理モジュール３８による画像処理が終了するまで開放されないものとする。
【０１０９】
従って、実行部６８は、部分処理Ｔ２１、Ｔ３１、Ｔ３２の各々について差Ｄが最小の部分処理Ｔ２１を選択して実行する。部分処理Ｔ２１の実行が完了しても新たに実行可能となる部分処理３９が存在しないため、時点ｔ２では、部分処理Ｔ３１、Ｔ３２が実行可能で、最高の優先度の部分処理３９となる。従って、実行部６８は、第１の方式に従って、部分処理Ｔ３１、Ｔ３２の各々について、第１の数を求める。図１７に示すように、部分処理Ｔ３１、Ｔ３２の各々について、第１の数は０となり、第２の数は１となる。部分処理Ｔ３１、Ｔ３２の各々について、第１の数及び第２の数が同じであるため、第２の方式が用いられる。
【０１１０】
実行部６８は、部分処理Ｔ３１、Ｔ３２の各々について、上記（１）式に従って差Ｄを求める。具体的には、部分処理Ｔ３１の実行のために必要となる出力領域のメモリ量は２であり、部分処理Ｔ３１の実行完了後に開放される入力領域のメモリ量は０であるため、差Ｄは２（＝２−０）となる。同様に、部分処理Ｔ３２についても差Ｄは２（＝２−０）となる。部分処理Ｔ３１、Ｔ３２は、差Ｄも同じであるため、実行部６８は、何れを優先して実行してもよいと判断し、部分処理Ｔ３１を選択して実行する。
【０１１１】
時点ｔ３〜ｔ８では、実行可能で、かつ優先度が最高の部分処理３９が１個であるため、その部分処理３９が実行される。時点ｔ９では、部分処理Ｔ１２、Ｔ３４が実行可能で、かつ最高の優先度の部分処理３９となる。従って、実行部６８は、第１の方式に従って、部分処理Ｔ１２、Ｔ３４の各々について、第１の数を求める。図１７に示すように、部分処理Ｔ１２、Ｔ３４の各々について、第１の数は０となり、第２の数は１となる。部分処理Ｔ１２、Ｔ３４の各々について、第１の数及び第２の数がそれぞれ同じであるため、第２の方式が用いられる。
【０１１２】
実行部６８は、部分処理Ｔ１２、Ｔ３４の各々について、上記（１）式に従って差Ｄを求める。具体的には、部分処理Ｔ１２の実行のために必要となる出力領域のメモリ量は１であり、部分処理Ｔ１２の実行完了後に開放される入力領域のメモリ量は０であるため、差Ｄは１（＝１−０）となる。一方、部分処理Ｔ３４の実行のために必要となる出力領域のメモリ量は２であり、部分処理Ｔ３１の実行完了後に開放される入力領域のメモリ量は０であるため、差Ｄは２（＝２−０）となる。従って、実行部６８は、部分処理Ｔ１２、Ｔ３４の各々について求めた差Ｄが最小の部分処理Ｔ１２を選択して実行する。
【０１１３】
以降も同様であるため詳細な説明は省略するが、時点ｔ１０では、部分処理Ｔ２２、Ｔ３４のうちの第１の数が最大の部分処理Ｔ３４が選択されて実行される。時点ｔ１１では、部分処理Ｔ２２、Ｔ４３の各々について第１の数、第２の数、及び差Ｄが同じであるため、部分処理Ｔ２２が選択されて実行される。時点ｔ１２以降は、実行可能で、かつ優先度が最高の部分処理３９が１個であるため、その部分処理３９が実行される。
【０１１４】
なお、第１の方式を単独で用いるか、第２の方式を単独で用いるか、又は第１の方式と第２の方式とを組み合わせて用いるかは、特に限定されず、例えば、ユーザ指定によって選択されてもよいし、システム要求に従って選択されてもよい。
【０１１５】
本実施形態に係る出力部７０は、画像処理ＤＡＧ５０Ｂの最終段の画像処理モジュール３８の部分処理３９により実行された画像処理の結果得られた出力画像データを出力する。本実施形態では、出力部７０は、得られた出力画像データを表示部１６に表示する。なお、出力部７０は、出力画像データを外部装置に出力（送信）してもよい。また、コンピュータ１０がプリンタに組み込まれている場合は、出力部７０は、出力画像データにより示される出力画像を紙等の記録材料に出力（形成）してもよい。
【０１１６】
次に、図１８及び図１９を参照して、本実施形態に係るコンピュータ１０の作用を説明する。なお、図１８は、アプリケーション３２により画像処理の実行開始の指示が入力された場合に第１演算部１２Ａが備えるコアの何れか１つによって実行される優先度付与処理プログラムの処理の流れを示すフローチャートである。また、この優先度付与処理プログラムは記憶部２０に予めインストールされている。また、第１演算部１２Ａが備えるコアが画像処理プログラムを実行することにより、第１演算部１２Ａが前述した処理構築部４２、分割部６０、依存関係付与部６２、及び優先度付与部６４として機能する。
【０１１７】
また、図１９は、図１８に示す優先度付与処理の終了後に、第１演算部１２Ａが備えるコアによって実行される画像処理プログラムの処理の流れを示すフローチャートである。また、この画像処理プログラムは記憶部２０に予めインストールされている。また、第１演算部１２Ａのコアが画像処理プログラムを実行することにより、第１演算部１２Ａが前述した実行部６８及び出力部７０として機能する。なお、図１９に示す画像処理は、第１演算部１２Ａの１つのコアにより実行されてもよいし、第１演算部１２Ａの複数のコアにより並列に実行されてもよい。
【０１１８】
図１８のステップ１００で、処理構築部４２は、アプリケーション３２からの構築指示に従い、アプリケーション３２が指示した画像処理を行う画像処理ＤＡＧ５０Ａを構築する。ステップ１０２で、分割部６０は、前述したように、入力画像データを複数の分割画像データに分割する。そして、分割部６０は、ステップ１００で構築された画像処理ＤＡＧ５０Ａに対し、各画像処理モジュール３８で実行される画像処理を、分割画像データの各々に対応する部分処理３９に分割して画像処理ＤＡＧ５０Ｂを構築する。
【０１１９】
ステップ１０４で、依存関係付与部６２は、画像処理モジュール３８で実行される画像処理の種類に応じて、前段に連結された画像処理モジュール３８の部分処理３９と、後段に連結された画像処理モジュール３８の部分処理３９との間で依存関係を付与する。ステップ１０６で、優先度付与部６４は、前述したように、画像処理ＤＡＧ５０Ｂの各画像処理モジュール３８のうち、末端の画像処理モジュール３８の部分処理３９に対し、予め定められた付与ルールに従って優先度を付与する。
【０１２０】
ステップ１０８で、優先度付与部６４は、既に優先度が付与された部分処理３９に依存関係が付与された前段側の画像処理モジュール３８の部分処理３９が存在するか否かを判定する。この判定が肯定判定となった場合は、処理はステップ１１０に移行する。
【０１２１】
ステップ１１０で、優先度付与部６４は、前述したように、後段側に依存関係が付与されている部分処理３９を有する前段側の画像処理モジュール３８の部分処理３９の優先度として、依存関係が付与されている後段側の部分処理３９の優先度の最大値を付与する。ステップ１１０の処理が終了すると処理はステップ１０８に戻る。一方、ステップ１０８の判定が否定判定となった場合は、本優先度付与処理が終了する。
【０１２２】
図１９のステップ１２０で、実行部６８は、画像処理ＤＡＧ５０Ｂに従って、各部分処理３９間で付与された依存関係に基づいて実行可能となった部分処理３９のうち、実行可能となった部分処理３９が存在するか否かを判定する。この判定が肯定判定となった場合は、処理はステップ１２２に移行する。
【０１２３】
ステップ１２２で、実行部６８は、ステップ１２０で実行可能となったと判定された部分処理３９のうち、優先度が最高の部分処理３９を実行可能部分処理記憶部６６に格納する。ステップ１２４で、実行部６８は、実行可能部分処理記憶部６６に格納された部分処理３９の数が１よりも大きいか否かを判定する。この判定が否定判定となった場合は、処理はステップ１２８に移行し、肯定判定となった場合は、処理はステップ１２６に移行する。
【０１２４】
ステップ１２６で、実行部６８は、前述したように、実行可能部分処理記憶部６６に格納された部分処理３９から、第１の方式、第２の方式、又は第１の方式と第２の方式との組み合わせに従って、１つの部分処理３９を選択する。ステップ１２８で、実行部６８は、実行可能部分処理記憶部６６に格納された部分処理３９の数が１であるか否かを判定する。この判定が否定判定となった場合は、処理はステップ１２０に戻り、肯定判定となった場合は、処理はステップ１３０に移行する。ステップ１３０で、実行部６８は、実行可能部分処理記憶部６６に格納された部分処理３９を取得することによって、実行対象とする部分処理３９を選択する。ステップ１２６又はステップ１３０の処理が終了すると、処理はステップ１３２に移行する。
【０１２５】
ステップ１３２で、実行部６８は、ステップ１２６又はステップ１３０で選択された部分処理３９を実行する。この際、実行部６８は、一例として画像処理モジュール３８の演算部情報により示される演算部が第２演算部１２Ｂである場合は、第２演算部１２Ｂに部分処理３９を実行させ、第２演算部１２Ｂから実行結果を取得することによって部分処理３９を実行する。また、実行部６８は、部分処理３９の実行後に、画像処理ＤＡＧ５０Ｂの依存関係を更新する。また、実行部６８により実行された部分処理３９が画像処理ＤＡＧ５０Ｂの末端の画像処理モジュール３８の部分処理３９である場合は、出力部７０は、前述したように、部分処理３９により実行された画像処理の結果得られた出力画像データを出力する。
【０１２６】
ステップ１３４で、実行部６８は、画像処理ＤＡＧ５０Ｂに従って、新たに実行可能となり、かつ実行可能部分処理記憶部６６に格納された部分処理３９に付与された優先度と同一の優先度が付与された部分処理３９が存在するか否かを判定する。この判定が否定判定となった場合は、処理はステップ１２４に戻り、肯定判定となった場合は、処理はステップ１３６に移行する。
【０１２７】
ステップ１３６で、実行部６８は、新たに実行可能となり、かつ実行可能部分処理記憶部６６に格納された部分処理３９に付与された優先度と同一の優先度が付与された部分処理３９を実行可能部分処理記憶部６６に格納する。ステップ１３６の処理が終了すると、処理はステップ１２４に戻る。一方、ステップ１２０の判定が否定判定となった場合は、本画像処理が終了する。
【０１２８】
以上説明したように、本実施形態によれば、画像処理ＤＡＧ５０Ｂの末端の画像処理モジュール３８の部分処理３９に優先度を付与している。そして、後段側に依存関係が付与されている部分処理３９を有する前段側の画像処理モジュール３８の部分処理３９の優先度として、依存関係が付与されている後段側の部分処理３９の優先度の最大値を付与している。従って、ＤＡＧの前段側のオブジェクトの部分処理から順に優先度を付与する場合に比較して、画像処理の処理効率の低下が抑制される。
【０１２９】
また、本実施形態によれば、出力画像の正面視下に位置する分割画像を示す分割画像データを処理する部分処理３９よりも、出力画像の正面視上に位置する分割画像を示す分割画像データを処理する部分処理３９に高い優先度を付与する。これにより、正面視上に位置する分割画像を示す分割画像データを処理する部分処理３９は、正面視下に位置する分割画像を示す分割画像データを処理する部分処理３９よりも早く終了する。
【０１３０】
なお、上記実施形態では、後段側の部分処理３９に依存関係が付与されていない部分処理３９については、優先度を付与しない場合について説明したが、これに限定されない。例えば、後段側の部分処理３９に依存関係が付与されていない部分処理３９については、部分処理３９を実行しないことを表す優先度として予め定められた優先度を付与する形態としてもよい。この場合、実行部６８は、上記予め定められた優先度が付与された部分処理３９については、実行対象としない形態が例示される。また、この場合、上記実施形態のように各部分処理３９に正の整数の優先度を付与した場合、上記予め定められた優先度として負の整数を付与する形態が例示される。
【０１３１】
また、上記実施形態では、第１の方式において、第１の数、第２の数、第３の数、及び第４の数を順番に求める場合について説明したが、これに限定されない。第１の方式において、第１の数、第２の数、第３の数、及び第４の数のうちの何れか１つを求める形態としてもよい。この場合、求めた数が最大の部分処理３９を選択して実行する形態が例示される。また、第１の方式において、第１の数、第２の数、第３の数、及び第４の数のうちの２つ以上を求める形態としてもよい。この場合、求めた数の合算値が最大の部分処理３９を選択して実行する形態が例示される。
【０１３２】
また、末端の画像処理モジュール３８の部分処理３９に優先度を付与する手法は、上記実施形態で示した例に限定されない。例えば、演算部情報に従って部分処理３９に優先度を付与する形態としてもよい。この形態例の場合、例えば第１演算部１２Ａよりも第２演算部１２Ｂの方が、画像処理の速度性能が高い場合は、次に示す形態が例示される。すなわち、この場合、第２演算部１２Ｂで実行される画像処理モジュール３８の部分処理３９の優先度を、第１演算部１２Ａで実行される画像処理モジュール３８の部分処理３９の優先度よりも高くする形態が例示される。
【０１３３】
また、上記実施形態では、画像処理モジュール３８による画像処理を演算部情報により示される演算部に実行させる場合について説明したが、これに限定されない。例えば、図９の上段の連結された３つの画像処理モジュール３８のように、同じ画像に対して画像処理を行う画像処理モジュール３８による画像処理は同じ演算部に実行させる形態としてもよい。
【０１３４】
また、上記実施形態では、各種プログラムが記憶部２０に予め記憶（インストール）されている態様を説明したが、これに限定されない。各種プログラムは、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ（Digital Versatile Disc Read Only Memory）、ＵＳＢ（Universal Serial Bus）メモリ等の記録媒体に記録された形態で提供されてもよい。また、各種プログラムは、ネットワークを介して外部装置からダウンロードされる形態としてもよい。
【符号の説明】
【０１３５】
１０  コンピュータ
１２Ａ  第１演算部
１２Ｂ  第２演算部
１４  メモリ
２０  記憶部
３８  画像処理モジュール
３９  部分処理
４２  処理構築部
４６  処理制御部
ＤＡＧ５０Ａ、５０Ｂ  画像処理
６０  分割部
６２  依存関係付与部
６４  優先度付与部
６６  実行可能部分処理記憶部
６８  実行部
７０  出力部
【図１】
2020046826.tif 000003
【図２】
2020046826.tif 000004
【図３】
2020046826.tif 000005
【図４】
2020046826.tif 000006
【図５】
2020046826.tif 000007
【図６Ａ】
2020046826.tif 000008
【図６Ｂ】
2020046826.tif 000009
【図７】
2020046826.tif 000010
【図８Ａ】
2020046826.tif 000011
【図８Ｂ】
2020046826.tif 000012
【図９】
2020046826.tif 000013
【図１０Ａ】
2020046826.tif 000014
【図１０Ｂ】
2020046826.tif 000015
【図１０Ｃ】
2020046826.tif 000016
【図１０Ｄ】
2020046826.tif 000017
【図１１Ａ】
2020046826.tif 000018
【図１１Ｂ】
2020046826.tif 000019
【図１１Ｃ】
2020046826.tif 000020
【図１１Ｄ】
2020046826.tif 000021
【図１１Ｅ】
2020046826.tif 000022
【図１１Ｆ】
2020046826.tif 000023
【図１２】
2020046826.tif 000024
【図１３】
2020046826.tif 000025
【図１４】
2020046826.tif 000026
【図１５】
2020046826.tif 000027
【図１６】
2020046826.tif 000028
【図１７】
2020046826.tif 000029
【図１８】
2020046826.tif 000030
【図１９】
2020046826.tif 000031