【手続補正書】
【提出日】平成25年12月5日(2013.12.5)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
自モジュールの前段からデータを取得し、取得したデータに予め定められたデータ処理を行い、当該データ処理を経たデータ又は前記データ処理の処理結果を自モジュールの後段へ出力する機能を各々備え、実行するデータ処理又は内容が互いに異なる複数種の処理モジュールが連結されて構成されるデータ処理手段の各処理モジュールで互いに並列にデータ処理が行われるように並列制御する場合において少なくとも２つの処理モジュールが並列に動作する並列時間を表す値と各処理モジュールでデータ処理が逐次に行われるように逐次制御する場合には必要ないが前記並列制御する場合には必要な処理に要する制御時間を表す値とに基づいて、前記データ処理手段の前記並列制御による処理が前記逐次制御による処理より短い時間で終了するか否かを判定し、該判定結果を出力する出力手段
を備えたデータ処理装置。
【請求項２】
前記出力手段により、前記並列制御による処理が前記逐次制御による処理より短い時間で終了するとの判定結果が出力された場合には、前記並列制御が行われるように制御し、前記出力手段により、前記並列制御による処理が前記逐次制御による処理より長い時間で終了するとの判定結果が出力された場合には、前記逐次制御が行われるように制御する制御手段を更に備えた
請求項１に記載のデータ処理装置。
【請求項３】
前記並列時間を表す値を、前記各処理モジュールの単位処理に要する時間を示す値、及び前記処理モジュールの各々における前段の処理モジュールの処理結果の必要データ量を示す値の各々を乗算した値、の少なくとも一方を用いて計算した
請求項１又は請求項２に記載のデータ処理装置。
【請求項４】
下記式で表される値ａを、前記並列時間を表す値とした請求項３に記載のデータ処理装置。
ａ＝前記処理モジュール毎の単位処理に要する時間を示す値の合計×前記処理モジュールの各々における前段の処理モジュールの処理結果の必要データ量を示す値の各々を乗算した値
【請求項５】
前記データ処理手段の各処理モジュールで行われるデータ処理は、画像データに対する画像処理であり、
下記式で表される値ｂを、前記処理モジュールの各々における前段の処理モジュールの処理結果の必要データ量を示す値とした請求項４に記載のデータ処理装置。
ｂ＝１-｛処理モジュールの単位処理データ量／（前記データ処理手段の処理対象の画像全体の画像データ量×予め定められた調整値）｝
【請求項６】
前記処理モジュールの各々における前段の処理モジュールの処理結果の必要データ量を示す値を、処理モジュールの各々で行なわれる画像処理が、画像１面分のデータを処理するページ処理か、画像１面分より少ないライン単位のデータを処理するライン処理かに応じて予め定められた値に設定した
請求項５に記載のデータ処理装置。
【請求項７】
前記処理モジュール毎の単位処理に要する時間を示す値を、前記処理モジュールで実行される特定の演算の数が多いほど、大きくなるようにした
請求項３〜請求項６のいずれか１項記載のデータ処理装置。
【請求項８】
前記処理モジュール毎の単位処理に要する時間を示す値を、前記処理モジュールのプログラムコードの行数が多いほど、大きくなるようにした
請求項３〜請求項７のいずれか１項記載のデータ処理装置。
【請求項９】
前記並列時間を表す値を、前記処理モジュール毎の単位処理に要する時間を示す値のばらつきが大きいほど、小さくなるようにした
請求項１〜請求項８のいずれか１項記載のデータ処理装置。
【請求項１０】
前記制御時間を表す値を、連続する２つの処理モジュールの接続形態に応じた係数を各処理モジュール毎に付与し、各処理モジュールに付与した係数を合計した値とした
請求項１〜請求項９のいずれか１項記載のデータ処理装置。
【請求項１１】
前記連続する２つの処理モジュールの接続形態が直列接続か、並列接続かに応じて前記係数を異ならせた
請求項１０に記載のデータ処理装置。
【請求項１２】
更に、前記連続する２つの処理モジュールの接続形態が並列接続の場合において、並列接続されている処理モジュールの数に応じて前記係数を異ならせた
請求項１１に記載のデータ処理装置。
【請求項１３】
前記制御時間を表す値を、前記データ処理手段の処理モジュールの数が多くなるほど、大きくなるようにした
請求項１〜請求項１２のいずれか１項記載のデータ処理装置。
【請求項１４】
前記制御時間を表す値を、前記データ処理手段の各処理モジュールをスレッドとして起動したときのスレッドのロックの生じる割合が高いほど、大きくなるようにした
請求項１〜請求項１３のいずれか１項記載のデータ処理装置。
【請求項１５】
前記出力手段は、前記並列時間を示す値が前記制御時間を示す値より大きい場合に、前記並列制御による処理が前記逐次制御による処理より短い時間で終了すると判定し、前記並列時間を示す値が前記制御時間を示す値より小さい場合に、前記並列制御による処理が前記逐次制御による処理より長い時間で終了すると判定する
請求項１〜請求項１４のいずれか１項記載のデータ処理装置。
【請求項１６】
前記出力手段は、前記並列時間を示す値から前記制御時間を示す値を減算した値が、予め定められた閾値より大きい場合に、前記並列制御による処理が前記逐次制御による処理より短い時間で終了すると判定し、前記並列時間を示す値から前記制御時間を示す値を減算した値が、前記予め定められた閾値以下の場合に、前記並列制御による処理が前記逐次制御による処理より長い時間で終了すると判定する
請求項１〜請求項１４のいずれか１項記載のデータ処理装置。
【請求項１７】
前記出力手段は、前記並列時間を示す値と予め定められた第１の閾値とを比較した結果と、前記制御時間を示す値と予め定められた第２の閾値とを比較した結果とに基づいて、前記データ処理手段の前記並列制御による処理が前記逐次制御による処理より短い時間で終了するか否かを判定する
請求項１〜請求項１４のいずれか１項記載のデータ処理装置。
【請求項１８】
前記並列時間を示す値を求めるためのパラメータと、前記制御時間を示す値を求めるためのパラメータと、を共通のパターメータとした
請求項１及び請求項２に記載のデータ処理装置。
【請求項１９】
前記出力手段は、前記並列時間を示す値及び前記制御時間を示す値の双方を示す値を、予め定められた値と比較して、前記データ処理手段の前記並列制御による処理が前記逐次制御による処理より短い時間で終了するか否かを判定する
請求項１及び請求項２に記載のデータ処理装置。
【請求項２０】
コンピュータを、
自モジュールの前段からデータを取得し、取得したデータに予め定められたデータ処理を行い、当該データ処理を経たデータ又は前記データ処理の処理結果を自モジュールの後段へ出力する機能を各々備え、実行するデータ処理又は内容が互いに異なる複数種の処理モジュールが連結されて構成されるデータ処理手段の各処理モジュールで互いに並列にデータ処理が行われるように並列制御する場合において少なくとも２つの処理モジュールが並列に動作する並列時間を表す値と各処理モジュールでデータ処理が逐次に行われるように逐次制御する場合には必要ないが前記並列制御する場合には必要な処理に要する制御時間を表す値とに基づいて、前記データ処理手段の前記並列制御による処理が前記逐次制御による処理より短い時間で終了するか否かを判定し、該判定結果を出力する出力手段
として機能させるためのプログラム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００７
【補正方法】変更
【補正の内容】
【０００７】
請求項１の発明は、自モジュールの前段からデータを取得し、取得したデータに予め定められたデータ処理を行い、当該データ処理を経たデータ又は前記データ処理の処理結果を自モジュールの後段へ出力する機能を各々備え、実行するデータ処理又は内容が互いに異なる複数種の処理モジュールが連結されて構成されるデータ処理手段の各処理モジュールで互いに並列にデータ処理が行われるように並列制御する場合において少なくとも２つの処理モジュールが並列に動作する並列時間を表す値と各処理モジュールでデータ処理が逐次に行われるように逐次制御する場合には必要ないが前記並列制御する場合には必要な処理に要する制御時間を表す値とに基づいて、前記データ処理手段の前記並列制御による処理が前記逐次制御による処理より短い時間で終了するか否かを判定し、該判定結果を出力する出力手段を備えたデータ処理装置である。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００８
【補正方法】変更
【補正の内容】
【０００８】
請求項２の発明は、請求項１に記載のデータ処理装置に、前記出力手段により、前記並列制御による処理が前記逐次制御による処理より短い時間で終了するとの判定結果が出力された場合には、前記並列制御が行われるように制御し、前記出力手段により、前記並列制御による処理が前記逐次制御による処理より長い時間で終了するとの判定結果が出力された場合には、前記逐次制御が行われるように制御する制御手段を更に設けたものである。
請求項３の発明は、請求項１又は請求項２に記載のデータ処理装置において、前記並列時間を表す値を、前記各処理モジュールの単位処理に要する時間を示す値、及び前記処理モジュールの各々における前段の処理モジュールの処理結果の必要データ量を示す値の各々を乗算した値、の少なくとも一方を用いて計算したものである。
請求項４の発明は、請求項３に記載のデータ処理装置において、下記式で表される値ａを、前記並列時間を表す値としたものである。
ａ＝前記処理モジュール毎の単位処理に要する時間を示す値の合計×前記処理モジュールの各々における前段の処理モジュールの処理結果の必要データ量を示す値の各々を乗算した値。
請求項５の発明は、請求項４に記載のデータ処理装置において、前記データ処理手段の各処理モジュールで行われるデータ処理は、画像データに対する画像処理であり、下記式で表される値ｂを、前記処理モジュールの各々における前段の処理モジュールの処理結果の必要データ量を示す値としたものである。
ｂ＝１-｛処理モジュールの単位処理データ量／（前記データ処理手段の処理対象の画像全体の画像データ量×予め定められた調整値）｝。
請求項６の発明は、請求項５に記載のデータ処理装置において、前記処理モジュールの各々における前段の処理モジュールの処理結果の必要データ量を示す値を、処理モジュールの各々で行なわれる画像処理が、画像１面分のデータを処理するページ処理か、画像１面分より少ないライン単位のデータを処理するライン処理かに応じて予め定められた値に設定したものである。
請求項７の発明は、請求項３〜請求項６のいずれか１項記載のデータ処理装置において、前記処理モジュール毎の単位処理に要する時間を示す値を、前記処理モジュールで実行される特定の演算の数が多いほど、大きくなるようにしたものである。
請求項８の発明は、請求項３〜請求項７のいずれか１項記載のデータ処理装置において、前記処理モジュール毎の単位処理に要する時間を示す値を、前記処理モジュールのプログラムコードの行数が多いほど、大きくなるようにしたものである。
請求項９の発明は、請求項１〜請求項８のいずれか１項記載のデータ処理装置において、前記並列時間を表す値を、前記処理モジュール毎の単位処理に要する時間を示す値のばらつきが大きいほど、小さくなるようにしたものである。
請求項１０の発明は、請求項１〜請求項９のいずれか１項記載のデータ処理装置において、前記制御時間を表す値を、連続する２つの処理モジュールの接続形態に応じた係数を各処理モジュール毎に付与し、各処理モジュールに付与した係数を合計した値としたものである。
請求項１１の発明は、請求項１０に記載のデータ処理装置において、前記連続する２つの処理モジュールの接続形態が直列接続か、並列接続かに応じて前記係数を異ならせたものである。
請求項１２の発明は、請求項１１に記載のデータ処理装置において、更に、前記連続する２つの処理モジュールの接続形態が並列接続の場合において、並列接続されている処理モジュールの数に応じて前記係数を異ならせたものである。
請求項１３の発明は、請求項１〜請求項１２のいずれか１項記載のデータ処理装置において、前記制御時間を表す値を、前記データ処理手段の処理モジュールの数が多くなるほど、大きくなるようにしたものである。
請求項１４の発明は、請求項１〜請求項１３のいずれか１項記載のデータ処理装置において、前記制御時間を表す値を、前記データ処理手段の各処理モジュールをスレッドとして起動したときのスレッドのロックの生じる割合が高いほど、大きくなるようにしたものである。
請求項１５の発明は、請求項１〜請求項１４のいずれか１項記載のデータ処理装置において、前記出力手段は、前記並列時間を示す値が前記制御時間を示す値より大きい場合に、前記並列制御による処理が前記逐次制御による処理より短い時間で終了すると判定し、前記並列時間を示す値が前記制御時間を示す値より小さい場合に、前記並列制御による処理が前記逐次制御による処理より長い時間で終了すると判定するものである。
請求項１６の発明は、請求項１〜請求項１４のいずれか１項記載のデータ処理装置において、前記出力手段は、前記並列時間を示す値から前記制御時間を示す値を減算した値が、予め定められた閾値より大きい場合に、前記並列制御による処理が前記逐次制御による処理より短い時間で終了すると判定し、前記並列時間を示す値から前記制御時間を示す値を減算した値が、前記予め定められた閾値以下の場合に、前記並列制御による処理が前記逐次制御による処理より長い時間で終了すると判定するものである。
請求項１７の発明は、請求項１〜請求項１４のいずれか１項記載のデータ処理装置において、前記出力手段は、前記並列時間を示す値と予め定められた第１の閾値とを比較した結果と、前記制御時間を示す値と予め定められた第２の閾値とを比較した結果とに基づいて、前記データ処理手段の前記並列制御による処理が前記逐次制御による処理より短い時間で終了するか否かを判定するものである。
請求項１８の発明は、請求項１及び請求項２に記載のデータ処理装置において、前記並列時間を示す値を求めるためのパラメータと、前記制御時間を示す値を求めるためのパラメータと、を共通のパターメータとしたものである。
請求項１９の発明は、請求項１及び請求項２に記載のデータ処理装置において、前記出力手段は、前記並列時間を示す値及び前記制御時間を示す値の双方を示す値を、予め定められた値と比較して、前記データ処理手段の前記並列制御による処理が前記逐次制御による処理より短い時間で終了するか否かを判定するものである。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】０００９
【補正方法】変更
【補正の内容】
【０００９】
請求項２０の発明は、コンピュータを、自モジュールの前段からデータを取得し、取得したデータに予め定められたデータ処理を行い、当該データ処理を経たデータ又は前記データ処理の処理結果を自モジュールの後段へ出力する機能を各々備え、実行するデータ処理又は内容が互いに異なる複数種の処理モジュールが連結されて構成されるデータ処理手段の各処理モジュールで互いに並列にデータ処理が行われるように並列制御する場合において少なくとも２つの処理モジュールが並列に動作する並列時間を表す値と各処理モジュールでデータ処理が逐次に行われるように逐次制御する場合には必要ないが前記並列制御する場合には必要な処理に要する制御時間を表す値とに基づいて、前記データ処理手段の前記並列制御による処理が前記逐次制御による処理より短い時間で終了するか否かを判定し、該判定結果を出力する出力手段として機能させるためのプログラムである。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００１０
【補正方法】変更
【補正の内容】
【００１０】
請求項１に記載の発明は、複数の処理モジュールが連結されたデータ処理手段の並列制御による処理が逐次制御による処理より短い時間で終了するか否かを容易に把握できる。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００１１
【補正方法】変更
【補正の内容】
【００１１】
請求項２に記載の発明は、ユーザの手を煩わせることなく、データ処理手段の並列制御による処理が逐次制御による処理より短い時間で終了するか否かの判定結果に応じて、並列処理による処理又は逐次制御による処理を実行させることができる。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００１２
【補正方法】変更
【補正の内容】
【００１２】
請求項２０に記載の発明は、複数の処理モジュールが連結されたデータ処理手段の並列制御による処理が逐次制御による処理より短い時間で終了するか否かを容易に把握できる。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】００１３
【補正方法】変更
【補正の内容】
【００１３】
【図１】本実施形態に係るコンピュータ（画像処理装置）の概略構成を示すブロック図である。
【図２】選択起動部の機能的な構成を示すブロック図である。
【図３】画像処理部の構成例を示すブロック図である。
【図４】(Ａ)は画像処理モジュール、(Ｂ)はバッファモジュールの概略構成及び実行される処理を各々示すブロック図である。
【図５】書込対象の画像データが複数の保管用単位バッファ領域に跨る場合を説明する概略図である。
【図６】読出対象の画像データが複数の保管用単位バッファ領域に跨っていた場合を説明する概略図である。
【図７】画像処理モジュールの制御部によって実行される画像処理モジュール制御処理の内容を示すフローチャートである。
【図８】並列処理管理部のワークフロー管理部によって実行される並列制御処理の内容を示すフローチャートである。
【図９】画像処理部における画像処理の流れを説明する概略図である。
【図１０】逐次処理管理部のワークフロー管理部によって実行されるブロック単位逐次制御処理の内容を示すフローチャートである。
【図１１】画像処理部の構築から画像処理の実行に至る一連の処理を説明するためのシーケンス図である。
【図１２】画像処理モジュールの連結例を示す図である。
【図１３】画像処理部の並列処理性能判定を説明する説明図である。
【図１４】画像処理部の並列処理性能判定を説明する説明図である。
【図１５】逐次処理管理部のワークフロー管理部によって実行される面単位逐次制御処理の内容を示すフローチャートである。
【図１６】画像処理部の構成の他の例を示すブロック図である。
【図１７】選択起動部の他の例を示すブロック図である。
【図１８】画像処理部の構築から画像処理の実行に至る一連の処理を説明するためのシーケンス図の他の例である。
【図１９】他の実施の形態に係るデータ処理装置としてのコンピュータの概略構成を示すブロック図である。
【図２０】データ処理部の構築から演算処理の実行に至る一連の処理を説明するためのシーケンス図である。
【図２１】並列処理性能判定の具体例を説明する説明図である。
【図２２】並列処理性能判定の具体例を説明する説明図である。
【手続補正９】
【補正対象書類名】明細書
【補正対象項目名】００３８
【補正方法】変更
【補正の内容】
【００３８】
例えば、画像処理部５０の画像処理モジュール３８が、図１２（Ａ）に示すように連結された場合には（なお、図１２（Ａ）及び（Ｂ）では、バッファモジュール４０は図示が省略されている。）、分岐の数が多いため、排他制御も多くなる。排他制御が多くなるとオーバーヘッド値も大きくなる。また、ある画像処理モジュール３８（ここでは画像処理モジュール３８ｂと呼称する）において１ライン分の画像処理を実行する際に、当該画像処理モジュール３８ｂの前段の画像処理モジュール３８（ここでは画像処理モジュール３８ａと呼称する）において画像処理された後の画像データが１面分必要である場合には、並列処理方式を採用していたとしても、画像処理モジュール３８ａで画像データ１面分の処理が終了するまで、画像処理モジュール３８ｂの処理を開始することができず、処理が止まってしまう。こうした場合には、処理の待ち合わせ度（後述）が大きくなって並列に動作する時間が短くなってしまう。
【手続補正１０】
【補正対象書類名】明細書
【補正対象項目名】００３９
【補正方法】変更
【補正の内容】
【００３９】
さらにまた、図１２（Ｂ）に示すように、画像処理部５０を構成する各画像処理モジュール３８の処理の重さ（各画像処理モジュール３８における単位処理データ量のデータに対する処理（単位処理）に要する時間）の各々が軽い（すなわち単位処理に要する時間が短い）場合も、並列で動作する期間が短くなるため、並列処理方式で処理しても並列度が大きくならない。また、この場合、オーバーヘッドによっては、かえって全体の処理時間が長くなる場合もある。
【手続補正１１】
【補正対象書類名】明細書
【補正対象項目名】００４２
【補正方法】変更
【補正の内容】
【００４２】
上記のように、何らかの画像処理を行う必要のある状況になったことを検知すると、アプリケーション３２は画像処理対象の画像データを供給する画像データ供給部２２の種別を認識する（図１１のステップ１５０も参照）。続いてアプリケーション３２は、画像処理を行った画像データの出力先としての画像出力部２４の種別を認識する（図１１のステップ１５２も参照）。
【手続補正１２】
【補正対象書類名】明細書
【補正対象項目名】００４３
【補正方法】変更
【補正の内容】
【００４３】
次にアプリケーション３２は、実行すべき画像処理の内容を認識し、実行すべき画像処理を、個々のモジュール生成部４４に対応するレベルの画像処理の組み合わせに分解し、実行すべき画像処理を実現するために必要な画像処理の種類及び個々の画像処理の実行順序を判定する（図１１のステップ１５４も参照）。なお、この判定は、例えば上記の画像処理の種類及び個々の画像処理の実行順序を、ユーザが実行を指示可能なジョブの種類と対応付けて予め情報として登録しておき、アプリケーション３２は、実行が指示されたジョブの種類に対応する情報を読み出すことによって実現することができる。
【手続補正１３】
【補正対象書類名】明細書
【補正対象項目名】００４４
【補正方法】変更
【補正の内容】
【００４４】
次に、アプリケーション３２は処理構築部４２の選択起動部４５を起動する(図１１のステップ１５６も参照)。アプリケーション３２によって起動された選択起動部４５は、まず、並列度計算部４５Ａにより並列度を計算する(図１１のステップ１５８も参照)。
【手続補正１４】
【補正対象書類名】明細書
【補正対象項目名】００４７
【補正方法】変更
【補正の内容】
【００４７】
例えば、図１３に示す例から処理の重さを示す値の合計を計算すると、各画像処理モジュール３８の処理の重さは、画像処理モジュール３８の連結順序の上流側から下流側に向かって、１、１、３、１であるため、各画像処理モジュール３８の処理の重さを示す値の合計は、１＋１＋３＋１＝６となる。
【手続補正１５】
【補正対象書類名】明細書
【補正対象項目名】００５０
【補正方法】変更
【補正の内容】
【００５０】
ここで、処理待ち係数の計算例を説明する。例えば、図１３に示す例では、各画像処理モジュール３８の単位処理データ量（図１３では、「１回の処理ライン数」としてライン数単位で示した）は、画像処理モジュール３８の連結順序の上流側から下流側に向かって、１ライン、１００ライン、３００ライン、１ラインであり、処理対象の画像全体の画像データ量（ここでは、ライン単位で表した画像全体の高さ）は３００ラインである。従って、上流側から１番目の画像処理モジュール３８の処理待ち合わせ度は、１−｛１／（３００×２）｝＝５９９／６００となり、２番目、３番目、及び４番目の画像処理モジュール３８の処理待ち合わせ度は、５／６、１／２、５９９／６００となる。これにより、処理待ち係数は、(599/600)×(5/6)×(1/2)×(599/600)≒0.42となる。
【手続補正１６】
【補正対象書類名】明細書
【補正対象項目名】００５１
【補正方法】変更
【補正の内容】
【００５１】
以上から、図１３に示す例では、並列度は、６×0.42≒2.5と計算される。
【手続補正１７】
【補正対象書類名】明細書
【補正対象項目名】００５２
【補正方法】変更
【補正の内容】
【００５２】
並列度が計算された後は、オーバーヘッド計算部４５Ｂによりオーバーヘッド値が計算される(図１１のステップ１５９も参照)。なお、画像処理モジュール３８が増えるほどオーバーヘッドは増える。また、処理の分岐数が多いほど排他制御が増えてオーバーヘッドが増える。そこで、本実施の形態では、直列接続に対して１、並列接続に対して２の係数を設定し、連続する２つの画像処理モジュール３８の接続形態に応じた係数を合成したものをオーバーヘッド値として計算する。なお、ここでは、着目する画像処理モジュール３８と前段の画像処理モジュール３８とが並列接続の関係にあれば、着目する画像処理モジュール３８に２の係数を与えることとする。図１３に示す例では、各画像処理モジュール３８は、全て直列接続なので、１＋１＋１＋１＝４のオーバーヘッド値が求められる。
【手続補正１８】
【補正対象書類名】明細書
【補正対象項目名】００５４
【補正方法】変更
【補正の内容】
【００５４】
次に、選択起動部４５の並列処理性能判定部４５Ｃは、計算された並列度及びオーバーヘッド値に基づいて、並列処理性能判定（画像処理部５０における並列処理方式による画像処理が、逐次処理方式による画像処理より短い時間で終了するか否かの判定）を行う（図１１のステップ１６０も参照。）。ここでは、並列度＞オーバーヘッド値であれば、画像処理部５０における並列処理方式による画像処理が、逐次処理方式による画像処理より短い時間で終了する、と判定し、並列度＜オーバーヘッド値であれば、画像処理部５０における並列処理方式による画像処理が、逐次処理方式による画像処理より長い時間で終了する、と判定する。なお、並列度＝オーバーヘッド値の場合には、並列処理方式と逐次処理方式とで画像処理部５０の画像処理に要する時間は等しいと判定する。なお、図１３に示した例では、並列度：2.5、オーバーヘッド値：4であるため、並列度＜オーバーヘッド値、となる。従って、並列処理方式による画像処理が、逐次処理方式による画像処理より長い時間で終了する、と判定される。並列処理性能判定部４５Ｃは、該判定結果を起動処理部４５Ｄに出力する。
【手続補正１９】
【補正対象書類名】明細書
【補正対象項目名】００５５
【補正方法】変更
【補正の内容】
【００５５】
ここで、図１４を参照し、他の具体例を挙げて説明する。
図１４（Ａ）に示す画像処理部５０の並列度及びオーバーヘッド値は、以下のように計算される。
並列度 = (5+5+5+5)×1 = 20
オーバーヘッド値 = 1+1+1+1 = 4
なお、ここでは、処理待ち係数は、(599/600)×(599/600)×(599/600)×(599/600)≒1としている。
この例では、並列度＞オーバーヘッド値となるため、並列処理方式による画像処理の方が逐次処理方式に比べて短い時間で終了すると判定される。すなわち、並列処理方式により性能が出ると判定される。
【手続補正２０】
【補正対象書類名】明細書
【補正対象項目名】００５６
【補正方法】変更
【補正の内容】
【００５６】
図１４（Ｂ）に示す画像処理部５０の並列度及びオーバーヘッド値は、以下のように計算される。
並列度 = (2+3+3+3+2+3+1+1)×｛(5/6)×(5/6)×(5/6)｝ =10.4
オーバーヘッド値 = 1+2+2+2+1+1+1+1= 11
なお、ここでは、１回の処理ライン数（単位処理データ量）が１ラインの画像処理モジュール３８の処理待ち合わせ度を(599/600)≒1として計算している。
この例では、並列度＜オーバーヘッド値となるため、並列処理方式による画像処理の方が逐次処理方式に比べて長い時間で終了すると判定される。すなわち、並列処理方式では性能が出ないと判定される。
【手続補正２１】
【補正対象書類名】明細書
【補正対象項目名】００５７
【補正方法】変更
【補正の内容】
【００５７】
図１４（Ｃ）に示す画像処理部５０の並列度及びオーバーヘッド値は、以下のように計算される。
並列度 = (2+3+3+5+3)×1/2=9.5
オーバーヘッド係数 = 1+2+2+1+1= 7
なお、ここでも、１回の処理ライン数（単位処理データ量）が１ラインの画像処理モジュール３８の処理待ち合わせ度を(599/600)≒1として計算している。
この例では、並列度＞オーバーヘッド値となるため、並列処理方式による画像処理の方が逐次処理方式に比べて短い時間で終了すると判定される。すなわち、並列処理方式により性能が出ると判定される。
【手続補正２２】
【補正対象書類名】明細書
【補正対象項目名】００５８
【補正方法】変更
【補正の内容】
【００５８】
起動処理部４５Ｄは、並列処理性能判定部４５Ｃから入力された判定結果に応じて、起動すべき処理管理部を選択し、起動する（図１１のステップ１６６も参照）。ここでは、上記判定結果が、並列処理方式による画像処理が、逐次処理方式による画像処理より短い長い時間で終了する、という判定結果であった場合には、並列処理方式での画像処理が行われるように、並列処理管理部４６を選択して起動する。また、上記判定結果が、並列処理方式による画像処理が、逐次処理方式による画像処理より長い時間で終了する、という判定結果であった場合には、逐次処理方式での画像処理が行われるように、逐次処理管理部４６を選択して起動する。なお、並列処理方式と逐次処理方式とで画像処理部５０の画像処理に要する時間は等しいとの判定結果であった場合には、どちらを選択して起動してもよい。従って、予めどちらを選択するかを設定しておき、該設定に応じて選択して起動する。
【手続補正２３】
【補正対象書類名】明細書
【補正対象項目名】００６０
【補正方法】変更
【補正の内容】
【００６０】
一方、アプリケーション３２は選択起動部４５の起動を完了すると、上記ステップ１５０で認識した画像データ供給元の種別がバッファ領域（メモリ１４の一部領域）であった場合、アプリケーション３２は、画像データ供給部２２として指定されたバッファ領域を稼働中の処理管理部４６へ通知し、画像データ供給部２２として機能するバッファモジュール４０の生成を処理管理部４６へ要求する（図１１では図示省略）。この場合、処理管理部４６はバッファ制御部４０ＢのプログラムをＣＰＵ１２が実行可能なようにメモリ１４にロードすると共に、通知されたバッファ領域（画像データ供給部２２として指定されたバッファ領域）を既に確保されたバッファ４０Ａとしてバッファ制御部４０Ｂに認識させるパラメータを設定することで、画像データ供給部２２として機能するバッファモジュール４０を生成し、アプリケーション３２へ応答を返す。なお、稼働中の処理管理部４６が並列処理管理部４６である場合は、上記のバッファモジュール４０として排他制御機能付きのバッファモジュール４０が生成され、稼働中の処理管理部４６が逐次処理管理部４６である場合は、上記のバッファモジュール４０として排他制御機能無しのバッファモジュール４０が生成される。
【手続補正２４】
【補正対象書類名】明細書
【補正対象項目名】００６１
【補正方法】変更
【補正の内容】
【００６１】
また、上記ステップ１５２で認識した画像データ出力先の種別がバッファ領域（メモリ１４の一部領域）であった場合、アプリケーション３２は、画像出力部２４として指定されたバッファ領域を稼働中の処理管理部４６へ通知し、画像出力部２４として指定されたバッファ領域を含むバッファモジュール４０（画像出力部２４として機能するバッファモジュール４０）を処理管理部４６によって生成させる（図１１では図示省略）。このときも、稼働中の処理管理部４６が並列処理管理部４６であれば、上記のバッファモジュール４０として排他制御機能付きのバッファモジュール４０が生成され、稼働中の処理管理部４６が逐次処理管理部４６であれば、上記のバッファモジュール４０として排他制御機能無しのバッファモジュール４０が生成される。
【手続補正２５】
【補正対象書類名】明細書
【補正対象項目名】００６２
【補正方法】変更
【補正の内容】
【００６２】
更にアプリケーション３２は、上記で判定した画像処理の種類及び実行順序に基づいて、特定の画像処理に対応するモジュール生成部４４を起動し（図１１のステップ１６８も参照）、起動したモジュール生成部４４に対し、当該モジュール生成部４４によるモジュール群の生成に必要な情報として、前記モジュール群に画像データを入力する入力モジュールを識別するための入力モジュール識別情報、前記モジュール群が画像データを出力する出力モジュールを識別するための出力モジュール識別情報、前記モジュール群に入力される入力画像データの属性を表す入力画像属性情報、実行すべき画像処理のパラメータを通知して対応するモジュール群の生成を指示する（図１１のステップ１７０も参照）。また、必要とされる画像処理が複数種の画像処理を組み合わせた処理である場合、アプリケーション３２は、指示したモジュール生成部４４からモジュール群の生成完了が通知されると、個々の画像処理に対応する他のモジュール生成部４４を起動してモジュール群の生成に必要な情報を通知する処理（図１１のステップ１６８，１７０）を個々の画像処理の実行順序の昇順に繰り返す。
【手続補正２６】
【補正対象書類名】明細書
【補正対象項目名】００６４
【補正方法】変更
【補正の内容】
【００６４】
一方、モジュール生成部４４は、アプリケーション３２によって起動されるとモジュール生成処理（図１１のステップ１７２も参照）を行う。モジュール生成処理では、まず生成対象の画像処理モジュール３８に入力される入力画像データの属性を表す入力画像属性情報を取得する。なお、入力画像データの属性を取得する処理は、生成対象の画像処理モジュール３８の前段にバッファモジュール４０が存在している場合、当該バッファモジュール４０に画像データの書き込みを行う更に前段の画像処理モジュール３８から出力画像データの属性を取得することによって実現できる。
【手続補正２７】
【補正対象書類名】明細書
【補正対象項目名】００６７
【補正方法】変更
【補正の内容】
【００６７】
バッファモジュール４０の生成が要求されると、処理管理部４６はバッファ制御部４０ＢのプログラムをＣＰＵ１２が実行可能なようにメモリ１４にロードすることで、バッファモジュール４０を生成し（図１１のステップ１７２も参照）、モジュール生成部４４へ応答を返す。なお、稼働中の処理管理部４６が並列処理管理部４６であれば、上記のバッファモジュール４０として排他制御機能付きのバッファモジュール４０が生成され、稼働中の処理管理部４６が逐次処理管理部４６であれば、上記のバッファモジュール４０として排他制御機能無しのバッファモジュール４０が生成される。
【手続補正２８】
【補正対象書類名】明細書
【補正対象項目名】００７２
【補正方法】変更
【補正の内容】
【００７２】
一方、アプリケーション３２は、順次起動したモジュール生成部４４によって前述のモジュール生成処理が順次行われることで、必要とされる画像処理を行う画像処理部５０の構築が完了すると、稼働中の処理管理部４６に対して画像処理部５０による画像処理の実行を指示する（図１１のステップ１７４も参照）。処理管理部４６は、アプリケーション３２から画像処理の実行が指示されると、メモリ１４にロードした画像処理部５０の各モジュールのプログラムを、オペレーティングシステム３０を通じてスレッドとしてＣＰＵ１２に実行させる。ここで、稼働中の処理管理部４６が並列処理管理部である場合、処理管理部４６は、画像処理部５０の個々の画像処理モジュール３８で互いに並列に画像処理を行わせるために、画像処理部５０を構成する個々のモジュールのプログラムを互いに独立したスレッドとしてＣＰＵ１２に実行させる。また、稼働中の処理管理部４６が逐次処理管理部である場合、処理管理部４６は、画像処理部５０を構成する個々のモジュールのプログラムを単一のスレッドとしてＣＰＵ１２に実行させる。なお、スレッドに代えて、プロセス又はオブジェクトとしてＣＰＵ１２に実行させるようにしてもよい。
【手続補正２９】
【補正対象書類名】明細書
【補正対象項目名】０１１９
【補正方法】変更
【補正の内容】
【０１１９】
並列処理管理部のワークフロー管理部４６Ａは、画像処理モジュール３８から全体処理終了通知が入力される毎に、図８(Ｄ)に示す並列制御処理４を行う。この並列制御処理４では、ステップ５４０において、全体処理終了通知入力元の画像処理モジュール３８が最後段の画像処理モジュール３８か否か判定する。判定が否定された場合は何ら処理を行うことなく処理を終了するが、処理対象の画像データに対して必要な画像処理が行われた画像データが画像出力部２４へ全て出力されることで、最後段の画像処理モジュール３８から全体処理終了通知が入力された場合には、ステップ５４０の判定が肯定されてステップ５４２へ移行し、アプリケーション３２に対して画像処理の完了を通知し（図１１のステップ１７８も参照）、並列制御処理４を終了する。そして、画像処理の完了が通知されたアプリケーション３２は、ユーザに対して画像処理の完了を通知する（図１１のステップ１８０も参照）。
【手続補正３０】
【補正対象書類名】明細書
【補正対象項目名】０１２２
【補正方法】変更
【補正の内容】
【０１２２】
従って、逐次処理管理部のワークフロー管理部４６Ａによるブロック単位逐次制御処理では、画像処理部５０の最後段の画像処理モジュール３８に入力された処理要求がより前段の画像処理モジュール３８へ遡り、最前段の画像処理モジュール３８に到達すると、画像１面分よりも小さいサイズ（ブロック）のデータに対する画像処理が最前段の画像処理モジュール３８から逐次行われ（常に何れか１つの画像処理モジュール３８でのみ画像処理が行われると共に、画像処理を行っている画像処理モジュール３８が逐次切り替わり）、上記データに対する最後段の画像処理モジュール３８による画像処理が終了すると、最後段の画像処理モジュール３８に処理要求が再度入力されることが繰り返される逐次処理方式によって、処理対象の画像データに対する画像処理が行われることになる。
【手続補正３１】
【補正対象書類名】明細書
【補正対象項目名】０１２７
【補正方法】変更
【補正の内容】
【０１２７】
また、画像処理部５０を逐次並列処理方式で動作させる際のワークフロー管理部４６Ａの処理についても、図１０に示したブロック単位逐次制御処理１〜４に限られるものではなく、例として図１５に示す面単位逐次制御処理１，３，４を行うようにしてもよい。図１５に示す面単位逐次制御処理では、画像処理の実行が指示されると、図１５(Ａ)に示す面単位逐次制御処理１において、まずステップ５００で１回の処理要求で指定する単位処理の実行回数を個々の画像処理モジュール３８毎に決定し、次のステップ５０５において、画像処理部５０のうち最前段の画像処理モジュール３８に処理要求を入力する。また、画像処理モジュール３８から処理完了通知が入力される毎に、図１５(Ｂ)に示す面単位逐次制御処理３において、ステップ５２０で処理完了通知元の画像処理モジュール３８に処理要求を再度入力する。これにより、画像処理部５０のうちの最前段の画像処理モジュール３８にのみ処理要求が繰り返し入力されることになる。
【手続補正３２】
【補正対象書類名】明細書
【補正対象項目名】０１２８
【補正方法】変更
【補正の内容】
【０１２８】
また、画像処理モジュール３８から全体処理終了通知が入力される毎に、図１５(Ｃ)に示す面単位逐次制御処理４において、まずステップ５４０で全体処理終了通知入力元の画像処理モジュール３８が最後段の画像処理モジュール３８か否か判定する。判定が否定された場合はステップ５４４へ移行し、パイプライン形態又は有向非循環グラフ形態の連結形態における画像処理モジュール３８の位置が、全体処理終了通知元の画像処理モジュール３８の次段である画像処理モジュール３８に処理要求を入力する。これにより、画像処理を実行している画像処理モジュール３８が、処理対象の画像データに対する画像処理を終了し、当該画像処理モジュール３８から全体処理終了通知が入力された後に、画像処理を実行する画像処理モジュール３８が次段の画像処理モジュール３８へ切り替わることになり、画像１面分のデータに対する画像処理が最前段の画像処理モジュール３８から逐次行われる逐次処理方式によって、処理対象の画像データに対する画像処理が行われる。そして、最後段の画像処理モジュール３８から全体処理終了通知が入力され、ステップ５４０の判定が肯定されると、ステップ５４２で画像処理の完了がアプリケーション３２へ通知される。
【手続補正３３】
【補正対象書類名】明細書
【補正対象項目名】０１２９
【補正方法】変更
【補正の内容】
【０１２９】
また、上記では画像処理部５０を並列処理方式で動作させる場合に、画像処理部５０の個々のモジュールのプログラムを互いに独立したスレッドとして実行させる態様を説明したが、これに限定されるものではなく、画像処理部５０を構成する個々のモジュールのプログラムを、各々複数のモジュールに対応する複数のスレッドとして実行させるようにしてもよい。図１６は、４個の画像処理モジュール３８と、画像処理モジュール３８の間に設けられたバッファモジュール４０をパイプライン形態で連結した構成において、最前段及び２段目の画像処理モジュール３８とその間に設けられたバッファモジュール４０をスレッドＡとして実行させると共に、３段目及び最後段の画像処理モジュール３８とその間に設けられたバッファモジュール４０をスレッドＢとしてスレッドＡと並列に実行させる例を示しているが、このような場合、逐次動作する最前段の画像処理モジュール３８と２段目の画像処理モジュール３８の間に設けられたバッファモジュール４０、及び、同じく逐次動作する３段目の画像処理モジュール３８と最終段の画像処理モジュール３８の間に設けられたバッファモジュール４０については、排他制御無しのバッファモジュール４０とし、並列に動作する２段目の画像処理モジュール３８と３段目の画像処理モジュール３８の間に設けられたバッファモジュール４０については、排他制御有りのバッファモジュール４０とすればよい。
【手続補正３４】
【補正対象書類名】明細書
【補正対象項目名】０１３０
【補正方法】変更
【補正の内容】
【０１３０】
また、上記では並列処理管理部及び逐次処理管理部として、各々単一の処理管理部のプログラムが処理管理部ライブラリ４７に登録されている態様を説明したが、これに限定されるものではなく、画像処理部５０の動作環境等に応じて、複数の並列処理管理部の中から単一の並列処理管理部を選択したり、複数の逐次処理管理部の中から単一の逐次処理管理部を選択するように構成することも可能である。例えばプログラム実行リソース（例えばＣＰＵ１２等）の数が１なら逐次処理管理部を選択することで画像処理部５０で逐次処理方式によって画像処理を行わせ、プログラム実行リソースの数が２以上、かつ画像処理部５０を構成する画像処理モジュール３８の数未満ならば、画像処理部５０で図１６に示した並列処理方式（スレッドの数を抑制した並列処理）によって画像処理を行わせる並列処理管理部を選択し、プログラム実行リソースの数が２以上、かつ画像処理部５０を構成する画像処理モジュール３８の数以上ならば、画像処理部５０の個々のモジュールのプログラムを互いに独立したスレッドとして実行させる並列処理方式で画像処理部５０における画像処理を行わせる並列処理管理部を選択するようにしてもよい。
また、画像処理部５０の個々のモジュールのプログラムを互いに独立したスレッドとして実行させる並列処理方式は、プログラム実行リソースの数が画像処理モジュールの数に近ければ有効に機能する可能性が高いので、「プログラム実行リソースの数／画像処理モジュールの数」が閾値（例えば0.8等）以上であれば、画像処理部５０の個々のモジュールのプログラムを互いに独立したスレッドとして実行させる並列処理方式で画像処理部５０における画像処理を行わせる並列処理管理部を選択するようにしてもよい。
【手続補正３５】
【補正対象書類名】明細書
【補正対象項目名】０１３１
【補正方法】変更
【補正の内容】
【０１３１】
また、選択起動部４５の機能構成は、図２に示した機能構成に限られるものではなく、例えば、図１７に示すように構成してもよい。図１７に示した選択起動部４５は、図２に示した選択起動部４５と同一名称の構成要素を有しているが、並列処理性能判定部４５Ｃの判定結果の出力先は、起動処理部４５Ｄではなく、表示部１６や外部の表示装置等に判定結果を表示させるように表示制御を行うアプリケーションやＯＳ等に出力されるように構成されている。また、起動処理部４５Ｄは、例えば操作部１８を介してユーザから並列処理方式の処理管理部を起動するのか逐次処理方式の処理管理部を起動するのかを示す起動指示が入力された場合に、該起動指示に応じて処理管理部を選択して起動するよう構成されている。
【手続補正３６】
【補正対象書類名】明細書
【補正対象項目名】０１３２
【補正方法】変更
【補正の内容】
【０１３２】
図１８は、図１７に示す起動処理部４５により処理管理部を起動させる場合のシーケンス図の一例である。図１８において、図１１と同様の処理を行うステップには同一の符号を付して説明を省略する。ステップ１５０〜ステップ１６０までは、図１１を用いて説明したように動作する。ステップ１６０で並列処理性能判定部４５Ｃが並列処理性能判定を行った後は、並列処理性能判定部４５Ｃは、その判定結果を表示制御を行うアプリケーション（或いはＯＳ）に出力する（図１８のステップ１６１も参照。）。判定結果を受け取ったアプリケーションは、表示部１６等に判定結果を表示する。その後は、ユーザからの起動指示入力待ちとなる（図１８のステップ１６２も参照。）。操作部１８を介してユーザから起動指示が入力されると、アプリケーションは起動指示を受け付け（図１８のステップ１６３も参照。）、該起動指示を選択起動部４５の起動処理部４５Ｄに入力する（図１８のステップ１６４も参照。）。起動処理部４５Ｄは、入力された起動指示に応じて並列処理方式又は逐次処理方式の処理管理部を選択して起動する（図１８のステップ１６５も参照。）。
【手続補正３７】
【補正対象書類名】明細書
【補正対象項目名】０１３３
【補正方法】変更
【補正の内容】
【０１３３】
また、図１７の構成において起動処理部４５Ｄが設けられない装置に本発明を適用してもよい。すなわち、並列度計算部４５Ａ、オーバーヘッド部計算部４５Ｂ、及び並列処理性能判定部４５Ｃを有する装置であって、データ処理部（画像処理部５０）を構築する装置とは独立に設けられ、並列処理性能判定を行い、該判定結果を外部に出力する装置としてもよい。
【手続補正３８】
【補正対象書類名】明細書
【補正対象項目名】０１４０
【補正方法】変更
【補正の内容】
【０１４０】
また、処理管理部４６のプログラムは、記憶部２０の処理管理部ライブラリ４７に固定的に記憶されている必要はなく、コンピュータ１０の外部から、例えばＵＳＢメモリ等の外部記憶装置や通信回線等を介して、新たな処理管理部（並列処理管理部や逐次処理管理部）のプログラムを追加したり、既登録の処理管理部のプログラムを上書き更新可能としてもよい。ＣＰＵ１２の新たなアーキテクチャの採用等に応じて、最適な並列化の手法が変わる事も考えられるし、また最適な処理管理部のプログラムを当初より提供することが困難な場合や、処理管理部のアルゴリズムとしてより高効率のアルゴリズムが今後新たに開発される可能性もある。このような場合を考慮し、記憶部２０の処理管理部ライブラリ４７は、処理管理部のプログラムの新規追加や上書き更新が可能に構成することが望ましい。
【手続補正３９】
【補正対象書類名】明細書
【補正対象項目名】０１４４
【補正方法】変更
【補正の内容】
【０１４４】
図１９は、画像データ以外のデータを演算処理するデータ処理装置としてのコンピュータ６００の概略構成を示すブロック図である。コンピュータ６００はＣＰＵ６１２、メモリ６１４、表示部６１６、操作部６１８、記憶部６２０、データ供給部６２２及びデータ出力部６２４を備えており、これらはバス６２６を介して互いに接続されている。表示部１６や操作部１８は、当該コンピュータに接続されたディスプレイやキーボード、マウス等を適用することができる。また、記憶部６２０としてはＨＤＤ(Hard Disk Drive)が好適であるが、これに代えてフラッシュメモリ等の他の不揮発性記憶手段を用いることも可能である。
【手続補正４０】
【補正対象書類名】明細書
【補正対象項目名】０１４６
【補正方法】変更
【補正の内容】
【０１４６】
図１９に示すように、記憶部６２０には、ＣＰＵ６１２によって実行される各種のプログラムとして、メモリ６１４等のリソースの管理やＣＰＵ６１２によるプログラムの実行の管理、コンピュータ６００と外部との通信等を司るオペレーティングシステムのプログラム（不図示）、コンピュータ６００を本発明に係るデータ処理装置として機能させるための処理プログラム群６３４が各々記憶されている。
【手続補正４１】
【補正対象書類名】明細書
【補正対象項目名】０１４８
【補正方法】変更
【補正の内容】
【０１４８】
以下、処理プログラム群６３４について説明する。図１９に示すように、処理プログラム群６３４はモジュールライブラリ６３６と、処理構築部６４２のプログラムと、処理管理部ライブラリ６４７に大別される。この実施の形態に係るデータ処理装置も、前述した画像処理装置と同様に、アプリケーションからの指示等により、予め定められた演算処理を行う複数の演算モジュール６３８と、個々の演算モジュール６３８の前段及び後段の少なくとも一方に配置されデータを記憶するためのバッファを備えたバッファモジュール６４０と、がパイプライン形態又はＤＡＧ(Directed Acyclic Graph：有向非循環グラフ)形態で連結されて成るデータ処理部を構築する。演算モジュール６３８の各々には、処理の重さ及び単位処理データ量（本実施の形態では、単位処理データ量をデータの個数で表すため、以下では、単位処理データ数という）が予め設定されている。データ処理部の構築方法は、前述した画像処理部の構築方法と同様であるため、説明を省略する。また、各演算モジュール６３８は、上記図４（Ａ）で示した画像処理モジュール３８と同様に、制御部と演算処理エンジンから構成され、上記と同様に動作する。また、バッファモジュール６４０も、上記図４（Ｂ）で示したバッファモジュール４０と同様に、バッファ制御部とバッファから構成され、上記バッファモジュール４０と同様に動作する。
【手続補正４２】
【補正対象書類名】明細書
【補正対象項目名】０１５０
【補正方法】変更
【補正の内容】
【０１５０】
また図１９に示すように、処理管理部ライブラリ６４７には、複数種のモジュール生成部６４４（図１９では１つしか示されていない）が含まれている。複数種のモジュール生成部６４４は互いに異なる演算処理に対応しており、処理構築部６４２によって起動されることで、対応する演算処理を実現するための演算モジュール６３８及びバッファモジュール６４０から成るモジュール群を生成する処理を行う。
【手続補正４３】
【補正対象書類名】明細書
【補正対象項目名】０１５３
【補正方法】変更
【補正の内容】
【０１５３】
また、アプリケーション６３２等からの指示に従ってデータ処理部を構築する処理構築部６４２は、図１９に示すように処理内容・順序判定部６５０、並列処理性能判定部６５２、及び選択起動部６４５を備えている。処理内容・順序判定部６５０は、実行すべき処理の内容を認識し、該処理を構成する各演算処理の順序を判定する。並列処理性能判定部６５２は、並列度及びオーバーヘッド値を計算し、該並列度及びオーバーヘッド値に基づいて、並列処理性能判定を行う。選択起動部６４５並列処理性能判定部６５２から出力された判定結果に基づいて、並列処理管理部又は逐次処理管理部を選択して起動し、並列処理方式又は逐次処理方式による演算処理が行われるように制御する。また、図１９においても並列処理管理部のプログラム及び逐次処理管理部のプログラムを各々１個のみ示しているが、処理管理部ライブラリ６４７には、複数種の並列処理管理部のプログラム及び複数種の逐次処理管理部のプログラムを各々登録可能とされている。
【手続補正４４】
【補正対象書類名】明細書
【補正対象項目名】０１５４
【補正方法】変更
【補正の内容】
【０１５４】
次に図２０〜図２２を参照してデータ処理装置６００の作用を説明する。ここでは、入力された金額を示すデータに対して、乗算処理や加算処理等の演算処理を施して出力するデータ処理部を構築する場合を例に挙げて説明する。図２０は、データ処理部の構築から演算処理の実行に至る一連の処理を説明するためのシーケンス図である。また、図２１及び図２２は、並列処理性能判定の具体例を説明する説明図であり、図２１のａ、ｂ、ｃ、ｄ、及び図２２のｅ、ｆ、ｇ、ｈは、演算モジュール６３８の種類を示す。
【手続補正４５】
【補正対象書類名】明細書
【補正対象項目名】０１５５
【補正方法】変更
【補正の内容】
【０１５５】
なお、図２１（Ａ）（Ｂ）に示されたデータ処理部において、演算モジュールａは、入力された金額のデータから消費税計算を行い、演算モジュールｂは、該計算された消費税に１０００を加算し、演算モジュールｃは、１０００が加算された値に1/10を乗算して１０％の値を求め、演算モジュールｄは、演算モジュールｃで演算された結果から５０を減算する。
【手続補正４６】
【補正対象書類名】明細書
【補正対象項目名】０１５６
【補正方法】変更
【補正の内容】
【０１５６】
また、図２２（Ａ）（Ｂ）に示されたデータ処理部において、演算モジュールｅは、入力された１０個分の金額データの合計値を演算し、演算モジュールｆは、演算モジュールｅで演算された合計値に対する各金額データの割合を演算し、演算モジュールｇは、演算モジュールｆで演算された割合を項目別に合計し、演算モジュールｈは、演算モジュールｇで演算された項目別の合計に対して、各演算モジュールｆで演算された値の割合を演算する。
【手続補正４７】
【補正対象書類名】明細書
【補正対象項目名】０１５７
【補正方法】変更
【補正の内容】
【０１５７】
演算処理の実行がユーザによって指示された場合等、何らかの演算処理を行う必要のある状況になると、処理構築部６４２の処理内容・順序判定部６５０は、実行すべき処理の内容を認識し、実行すべき処理を、個々のモジュール生成部６４４に対応するレベルの演算処理の組み合わせに分解し、実行すべき処理を実現するために必要な演算処理の種類及び個々の演算処理の実行順序を判定する（図２０のステップ７００も参照）。
【手続補正４８】
【補正対象書類名】明細書
【補正対象項目名】０１６５
【補正方法】変更
【補正の内容】
【０１６５】
並列処理性能判定部６５２は、該判定結果を選択起動部６４５に出力する（図２０のステップ７０２も参照。）。
【手続補正４９】
【補正対象書類名】明細書
【補正対象項目名】０１６６
【補正方法】変更
【補正の内容】
【０１６６】
ここで、図２１に示す例では、図２１（Ｃ）に示すように、各演算モジュール６３８の処理の重さの和は８となり、処理待ち合わせ度は１となり、演算モジュール６３８の個数は４であるため、８×１＞４となり、データ処理部における並列処理方式による演算処理が、逐次処理方式による演算処理より短い時間で終了する（並列処理方式により性能が出る）、と判定される。一方、図２２に示す例では、図２２（Ｃ）に示すように、各演算モジュール６３８の処理の重さの和は８となり、処理待ち合わせ度は０．２８６となり、演算モジュール６３８の個数は４であるため、８×０．２８６＜４となり、データ処理部における並列処理方式による演算処理が、逐次処理方式による演算処理より長い時間で終了する（並列処理方式では性能が出ない）、と判定される。
【手続補正５０】
【補正対象書類名】明細書
【補正対象項目名】０１６７
【補正方法】変更
【補正の内容】
【０１６７】
選択起動部６４５は、並列処理性能判定部６５２から入力された判定結果に応じて、起動すべき処理管理部を選択し、起動する（図２０のステップ７０４も参照）。ここでは、上記判定結果が、並列処理方式による演算処理が、逐次処理方式による演算処理より短い長い時間で終了する、という判定結果であった場合には、並列処理方式での演算処理が行われるように、並列処理管理部６４６を選択して起動する。また、上記判定結果が、並列処理方式による演算処理が、逐次処理方式による演算処理より長い時間で終了する、という判定結果であった場合には、逐次処理方式での演算処理が行われるように、逐次処理管理部６４６を選択して起動する。なお、並列処理方式と逐次処理方式とでデータ処理部の演算処理に要する時間は等しいとの判定結果であった場合には、どちらを選択して起動してもよい。従って、予めどちらを選択するかを設定しておき、該設定に応じて選択して起動する。
【手続補正５１】
【補正対象書類名】明細書
【補正対象項目名】０１６８
【補正方法】変更
【補正の内容】
【０１６８】
起動された処理管理部が並列処理管理部６４６であれば、上記のバッファモジュール６４０として排他制御機能付きのバッファモジュール６４０が生成され、起動された処理管理部が逐次処理管理部６４６であれば、上記のバッファモジュール６４０として排他制御機能無しのバッファモジュール６４０が生成される（図２０のステップ７０６も参照。）。更に、処理構築部６４２で、上記で判定した演算処理の種類及び実行順序に基づいて、特定の演算処理に対応する演算モジュール生成部６４４を起動し、起動した演算モジュール生成部６４４に対し、当該演算モジュール生成部６４４によるモジュール群の生成に必要な情報を与え、演算モジュールの生成を指示する（図２０では不図示）。また、必要とされる演算処理が複数種ある場合には、個々の演算処理に対応する他のモジュール生成部６４４を起動してモジュール群の生成に必要な情報を通知し、個々の演算処理の実行順序の昇順に繰り返す。これにより、処理管理部６４４の演算モジュール生成部６４４は、演算モジュール６３８を生成する（図２０のステップ７０８も参照。）。
【手続補正５２】
【補正対象書類名】明細書
【補正対象項目名】０１６９
【補正方法】変更
【補正の内容】
【０１６９】
一方、処理構築部６４２は、順次起動した演算モジュール生成部６４４によって前述のモジュール生成処理が順次行われることで、必要とされる演算処理を行うデータ処理部の構築が完了すると、稼働中の処理管理部６４６に対してデータ処理部による演算処理の実行を指示する（図２０のステップ７１０も参照）。処理管理部６４６は、演算処理の実行が指示されると、メモリ６１４にロードしたデータ処理部の各モジュールのプログラムを、オペレーティングシステムを通じてスレッドとしてＣＰＵ６１２に実行させる（図２０のステップ７１２も参照。）。ここで、稼働中の処理管理部６４６が並列処理管理部である場合、処理管理部６４６は、データ処理部の個々の演算モジュール６３８で互いに並列に演算処理を行わせるために、データ処理部を構成する個々のモジュールのプログラムを互いに独立したスレッドとしてＣＰＵ６１２に実行させる。また、稼働中の処理管理部６４６が逐次処理管理部である場合、処理管理部６４６は、データ処理部を構成する個々のモジュールのプログラムを単一のスレッドとしてＣＰＵ６１２に実行させる。なお、スレッドに代えて、プロセス又はオブジェクトとしてＣＰＵ６１２に実行させるようにしてもよい。
【手続補正５３】
【補正対象書類名】明細書
【補正対象項目名】０１７０
【補正方法】変更
【補正の内容】
【０１７０】
なお、データ処理部による一連の演算処理が完了した場合には、処理管理部６４６は、処理構築部６４２に対して演算処理の完了を通知し（図２０のステップ７１４も参照）、並列制御処理（或いは逐次制御処理）を終了する。そして、演算処理の完了が通知された処理構築部６４２は、ユーザに対して演算処理の完了を通知する（図２０のステップ７１６も参照）。
【手続補正５４】
【補正対象書類名】明細書
【補正対象項目名】０１７３
【補正方法】変更
【補正の内容】
【０１７３】
また、処理方式を選択する際に、画像処理部５０（或いはデータ処理部）の動作環境を考慮して選択するようにしてもよい。例えば、例えばコンピュータ１０に設けられているプログラム実行リソース（例えばＣＰＵ等）の数を用いることができ、例えば「プログラム実行リソースの数がＮ個以上であって、上記並列処理性能判定結果で、並列処理方式のほうが処理時間が短いと判定された場合に並列処理管理部４６を起動し、それ以外の場合には逐次処理管理部４６を起動する」等の条件を設けてもよい。
【手続補正５５】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正の内容】
【図１】
2012123688.tif 000001
【図２】
2012123688.tif 000002
【図３】
2012123688.tif 000003
【図４】
2012123688.tif 000004
【図５】
2012123688.tif 000005
【図６】
2012123688.tif 000006
【図７】
2012123688.tif 000007
【図８】
2012123688.tif 000008
【図９】
2012123688.tif 000009
【図１０】
2012123688.tif 000010
【図１１】
2012123688.tif 000011
【図１２】
2012123688.tif 000012
【図１３】
2012123688.tif 000013
【図１４】
2012123688.tif 000014
【図１５】
2012123688.tif 000015
【図１６】
2012123688.tif 000016
【図１７】
2012123688.tif 000017
【図１８】
2012123688.tif 000018
【図１９】
2012123688.tif 000019
【図２０】
2012123688.tif 000020
【図２１】
2012123688.tif 000021
【図２２】
2012123688.tif 000022