(57)【要約】【課題】画像データを構成する複数の処理単位に同一の画像処理を各々行う場合の処理効率の向上を実現する。【解決手段】互いに独立して動作可能な複数のモジュール群から成る画像処理部50で３次元画像データ等に対する画像処理を行わせる場合、ＬＵＴに設定するデータを生成・設定する等の参照データ準備処理を含む初期化処理を個々の画像処理モジュール38で行わせた後に、処理対象の３次元画像データのうちｚ軸位置の異なる２次元画像データに対する画像処理を各モジュール群で行われる。何れかのモジュール群(図ではＭ1-1〜Ｍ1-3のモジュール群)で画像処理が終了した場合、当該モジュール群の個々の画像処理モジュール38において、前記初期化処理から参照データ準備処理を除外した再初期化処理を行わせた後に、未処理の２次元画像データに対する画像処理を前記モジュール群で行わせる。【選択図】図６
2010146055.tif 000002
【特許請求の範囲】
【請求項１】
自モジュールの前段から取得した画像データに対して互いに異なる画像処理を行い、当該画像処理を経た画像データ又は前記画像処理の処理結果を自モジュールの後段へ出力する複数種の画像処理モジュール、及び、前段のモジュールから出力される画像データをバッファに書き込ませると共に前記バッファに記憶されている画像データを後段のモジュールによって読み出させるバッファモジュールのプログラムを各々記憶する記憶手段と、
前記記憶手段に記憶されているプログラムにより、前記複数種の画像処理モジュールの中から選択した１つ以上の画像処理モジュールの各々の前段及び後段の少なくとも一方に前記バッファモジュールを設け、各モジュールをパイプライン形態又は有向非循環グラフ形態で連結した画像処理部を構築した後に、構築した前記画像処理部のうちの前記画像処理モジュールにおいて、画像処理時に用いる変数を初期化する変数初期化処理及び画像処理時に参照する参照データを準備する参照データ準備処理を含む第１の初期化処理を行わせる構築・初期化手段と、
前記処理対象の画像データに対する画像処理を、前記処理対象の画像データを複数の処理単位に分割したときの個々の処理単位毎に前記画像処理部で行わせると共に、前記画像処理部で単一の前記処理単位に対する画像処理が終了する毎に、前記画像処理部のうちの前記画像処理モジュールにおいて、前記第１の初期化処理から前記参照データ準備処理を除外した第１の再初期化処理を行わせた後に、前記処理対象の画像データのうちの未処理の処理単位に対する画像処理を前記画像処理部で行わせる処理管理手段と、
を含む画像処理装置。
【請求項２】
前記構築・初期化手段は、互いに独立して動作可能な複数のモジュール群から成る画像処理部を構築し、
前記処理管理手段は、前記画像処理部の個々のモジュール群で互いに異なる処理単位に対する画像処理を行わせると共に、前記複数のモジュール群のうちの何れかで単一の前記処理単位に対する画像処理が終了する毎に、画像処理が終了したモジュール群のうちの前記画像処理モジュールにおいて前記第１の再初期化処理を行わせた後に、前記処理対象の画像データのうちの未処理の処理単位に対する画像処理を前記画像処理が終了したモジュール群で行わせる請求項１記載の画像処理装置。
【請求項３】
前記構築・初期化手段は、前記画像処理部を構築した後に、構築した前記画像処理部のうちの前記バッファモジュールにおいて、前記バッファとして用いるメモリ領域を確保する処理を含む第２の初期化処理を行わせ、
前記処理管理手段は、前記画像処理部で前記単一の処理単位に対する画像処理が終了する毎に、前記画像処理部のうちのバッファモジュールにおいて、前記バッファの参照位置を先頭に戻す第２の再初期化処理を行わせる請求項１又は請求項２記載の画像処理装置。
【請求項４】
前記処理管理手段は、前記バッファモジュールにおいて前記第２の再初期化処理を行わせる前に、前記バッファモジュールの前記バッファとして用いていたメモリ領域に記憶されている画像処理結果を別のメモリ領域に複写することで前記画像処理結果を保存する請求項３記載の画像処理装置。
【請求項５】
前記構築・初期化手段は、前記画像処理部を構築した後に、構築した前記画像処理部のうちの前記バッファモジュールにおいて、前記バッファとして用いるメモリ領域を確保する処理を含む第２の初期化処理を行わせ、
前記処理管理手段は、前記画像処理部で前記単一の処理単位に対する画像処理が終了する毎に、前記画像処理部の既存のバッファモジュールで前記バッファとして用いていたメモリ領域を保存すると共に、新たなバッファモジュールを生成し、生成した新たなバッファモジュールを前記既存のバッファモジュールに代えて前記画像処理部に連結し、前記新たなバッファモジュールにおいて前記第２の初期化処理を行わせる請求項１又は請求項２記載の画像処理装置。
【請求項６】
前記構築・初期化手段は、構成が互いに同一でかつ他のモジュール群による他の処理単位に対する画像処理結果を参照して画像処理を行うように連結されたモジュール群を複数備えた画像処理部を構築し、
前記処理管理手段は、前記処理対象の画像データの特定の処理単位について、当該特定の処理単位に対する画像処理を行った任意のモジュール群の個々のバッファモジュールのバッファに記憶された画像処理結果が、前記処理対象の画像データのうちの何れの処理単位に対する画像処理を行うモジュール群によって参照されるかを判断し、判断結果を記憶することを、前記処理対象の画像データの個々の処理単位について各々行った後に、前記画像処理部の個々のモジュール群で互いに異なる処理単位に対する画像処理を行わせ、前記複数のモジュール群のうちの何れかで任意の処理単位に対する画像処理が終了する毎に、記憶した前記判断結果に基づき、前記画像処理の終了に伴い記憶している画像処理結果の他のモジュール群による参照が終了したバッファが出現したか否か判断し、該当するバッファが出現したと判断した場合に前記該当するバッファとして用いていたメモリ領域を解放する請求項４又は請求項５記載の画像処理装置。
【請求項７】
前記構築・初期化手段は、構成が互いに同一でかつ他のモジュール群による他の処理単位に対する画像処理結果を参照して画像処理を行うように連結されたモジュール群を複数備えた画像処理部を構築し、
前記処理管理手段は、前記処理対象の画像データの特定の処理単位について、当該特定の処理単位に対する画像処理を行う任意のモジュール群が、前記処理対象の画像データのうちの何れの処理単位に対する画像処理を行うモジュール群に含まれるバッファモジュールのバッファに記憶された画像処理結果を参照するかを判断し、判断結果を記憶することを、前記処理対象の画像データの個々の処理単位について各々行った後に、前記画像処理部の個々のモジュール群に対して互いに異なる処理単位に対する画像処理の実行を指示すると共に、記憶した前記判断結果に基づき、画像処理が行う特定のモジュール群が参照する画像処理結果を記憶するバッファが存在しているか否かを、画像処理が行う個々のモジュール群について各々判断し、存在していないバッファが有ると判断した場合は、前記存在していないバッファを含むモジュール群を追加生成し、追加生成したモジュール群により、前記特定のモジュール群が参照する画像処理結果が得られる特定の処理単位に対する画像処理を行わせる請求項４又は請求項５記載の画像処理装置。
【請求項８】
前記構築・初期化手段は、第１コンピュータ上で動作する第１のモジュール群と、前記第１コンピュータと通信回線を介して接続された第２コンピュータ上で動作する第２のモジュール群と、を含む画像処理部を構築した場合、構築した前記画像処理部のうち、隣接するモジュールとの間に前記通信回線が存在する特定の画像処理モジュールにおいて、前記第１コンピュータと前記第２コンピュータとの間にセッションを確立するための認証処理も含む第１の初期化処理を行わせ、
前記処理管理手段は、前記画像処理部で単一の前記処理単位に対する画像処理が終了する毎に、前記画像処理部のうちの前記特定の画像処理モジュールにおいて、前記第１の初期化処理から前記認証処理も除外した第１の再初期化処理を行わせる請求項１〜請求項７の何れか１項記載の画像処理装置。
【請求項９】
前記処理対象の画像データは、３次元画像を表す３次元画像データ又は動画像データである請求項１〜請求項８の何れか１項記載の画像処理装置。
【請求項１０】
記憶手段は、自モジュールの前段から取得した画像データに対して互いに異なる画像処理を行い、当該画像処理を経た画像データ又は前記画像処理の処理結果を自モジュールの後段へ出力する複数種の画像処理モジュール、及び、前段のモジュールから出力される画像データをバッファに書き込ませると共に前記バッファに記憶されている画像データを後段のモジュールによって読み出させるバッファモジュールのプログラムを各々記憶し、
構築・初期化手段は、前記記憶手段に記憶されているプログラムにより、前記複数種の画像処理モジュールの中から選択した１つ以上の画像処理モジュールの各々の前段及び後段の少なくとも一方に前記バッファモジュールを設け、各モジュールをパイプライン形態又は有向非循環グラフ形態で連結した画像処理部を構築した後に、構築した前記画像処理部のうちの前記画像処理モジュールにおいて、画像処理時に用いる変数を初期化する変数初期化処理及び画像処理時に参照する参照データを準備する参照データ準備処理を含む第１の初期化処理を行わせ、
処理管理手段は、前記処理対象の画像データに対する画像処理を、前記処理対象の画像データを複数の処理単位に分割したときの個々の処理単位毎に前記画像処理部で行わせると共に、前記画像処理部で単一の前記処理単位に対する画像処理が終了する毎に、前記画像処理部のうちの前記画像処理モジュールにおいて、前記第１の初期化処理から前記参照データ準備処理を除外した第１の再初期化処理を行わせた後に、前記処理対象の画像データのうちの未処理の処理単位に対する画像処理を前記画像処理部で行わせる画像処理方法。
【請求項１１】
自モジュールの前段から取得した画像データに対して互いに異なる画像処理を行い、当該画像処理を経た画像データ又は前記画像処理の処理結果を自モジュールの後段へ出力する複数種の画像処理モジュール、及び、前段のモジュールから出力される画像データをバッファに書き込ませると共に前記バッファに記憶されている画像データを後段のモジュールによって読み出させるバッファモジュールのプログラムを各々記憶する記憶手段を備えたコンピュータを、
前記記憶手段に記憶されているプログラムにより、前記複数種の画像処理モジュールの中から選択した１つ以上の画像処理モジュールの各々の前段及び後段の少なくとも一方に前記バッファモジュールを設け、各モジュールをパイプライン形態又は有向非循環グラフ形態で連結した画像処理部を構築した後に、構築した前記画像処理部のうちの前記画像処理モジュールにおいて、画像処理時に用いる変数を初期化する変数初期化処理及び画像処理時に参照する参照データを準備する参照データ準備処理を含む第１の初期化処理を行わせる構築・初期化手段、
及び、前記処理対象の画像データに対する画像処理を、前記処理対象の画像データを複数の処理単位に分割したときの個々の処理単位毎に前記画像処理部で行わせると共に、前記画像処理部で単一の前記処理単位に対する画像処理が終了する毎に、前記画像処理部のうちの前記画像処理モジュールにおいて、前記第１の初期化処理から前記参照データ準備処理を除外した第１の再初期化処理を行わせた後に、前記処理対象の画像データのうちの未処理の処理単位に対する画像処理を前記画像処理部で行わせる処理管理手段
として機能させるための画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像処理装置、方法及びプログラムに係り、特に、１つ以上の画像処理モジュールの各々の前段及び後段の少なくとも一方にバッファモジュールを設け、各モジュールをパイプライン形態又は有向非循環グラフ形態で連結した画像処理部を構築して画像処理を行う画像処理装置、該画像処理装置に適用可能な画像処理方法、及び、コンピュータを前記画像処理装置として機能させるための画像処理プログラムに関する。
【背景技術】
【０００２】
入力された画像データに対して画像処理を行う画像処理装置や、画像を取扱可能なＤＴＰ（デスクトップ・パブリッシング）システム、入力された画像データが表す画像を記録材料に記録するプリントシステム等では、入力された画像データに対して拡大・縮小、回転、アフィン変換、色変換、フィルタ処理、画像合成等の各種の画像処理が行われる。これらの装置やシステムにおいて、例えば色空間や１画素当たりのビット数が異なる様々な画像データが入力されたり、画像処理の内容や手順・パラメータ等が様々に変更される場合には、実行する画像処理を柔軟に変更可能な構成が必要となる。
【０００３】
このような要求を満たすために、特許文献１には、画像処理モジュールの前段及び後段の少なくとも一方にバッファモジュールが連結されるように、個々のモジュールをパイプライン形態又はＤＡＧ(Directed Acyclic Graph：有向非循環グラフ)形態で連結して成る画像処理部を構築し、画像処理部の個々の画像処理モジュールにおいて、自モジュールの前段から取得した画像データに所定の画像処理を行い、所定の画像処理を経た画像データ又は処理結果を自モジュールの後段へ出力する処理を繰り返させる処理管理部を設けることで、画像処理部によって処理対象の画像全体を処理させる技術が提案されている。
【特許文献１】特開２００６−３３８５００号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで近年、コンピュータ等の性能向上に伴い、３次元の画像データや動画像データを取り扱うことが身近になってきている。しかし、３次元の画像データは２次元画像を表す２次元画像データが高さ方向(ｚ軸方向)に多数連なったデータ構造であり、動画像データは２次元画像データが時間方向(ｔ軸方向)に多数連なったデータ構造であるので、何れもデータ量が膨大である。これに対して特許文献１に記載の技術は、２次元画像データに対する画像処理を行うことを前提として開発された技術であり、２次元画像データ１フレームに対し、画像処理部の構築・構築した画像処理部による画像処理の実行・画像処理を完了した画像処理部の消去を行う構成である。このため、３次元画像の画像データや動画像データのように、膨大なデータ量の画像データに対する画像処理に上記技術を適用したとすると、処理に膨大な時間が掛かり、例えば動画像の再生と並行して動画像データに対する画像処理を行うことができない等、上記技術の用途が制限されてしまうという問題があった。
【０００５】
本発明は上記事実を考慮して成されたもので、画像データを構成する複数の処理単位に同一の画像処理を各々行う場合の処理効率の向上を実現できる画像処理装置、画像処理方法及び画像処理プログラムを得ることが目的である。
【課題を解決するための手段】
【０００６】
上記目的を達成するために請求項１記載の発明に係る画像処理装置は、自モジュールの前段から取得した画像データに対して互いに異なる画像処理を行い、当該画像処理を経た画像データ又は前記画像処理の処理結果を自モジュールの後段へ出力する複数種の画像処理モジュール、及び、前段のモジュールから出力される画像データをバッファに書き込ませると共に前記バッファに記憶されている画像データを後段のモジュールによって読み出させるバッファモジュールのプログラムを各々記憶する記憶手段と、前記記憶手段に記憶されているプログラムにより、前記複数種の画像処理モジュールの中から選択した１つ以上の画像処理モジュールの各々の前段及び後段の少なくとも一方に前記バッファモジュールを設け、各モジュールをパイプライン形態又は有向非循環グラフ形態で連結した画像処理部を構築した後に、構築した前記画像処理部のうちの前記画像処理モジュールにおいて、画像処理時に用いる変数を初期化する変数初期化処理及び画像処理時に参照する参照データを準備する参照データ準備処理を含む第１の初期化処理を行わせる構築・初期化手段と、前記処理対象の画像データに対する画像処理を、前記処理対象の画像データを複数の処理単位に分割したときの個々の処理単位毎に前記画像処理部で行わせると共に、前記画像処理部で単一の前記処理単位に対する画像処理が終了する毎に、前記画像処理部のうちの前記画像処理モジュールにおいて、前記第１の初期化処理から前記参照データ準備処理を除外した第１の再初期化処理を行わせた後に、前記処理対象の画像データのうちの未処理の処理単位に対する画像処理を前記画像処理部で行わせる処理管理手段と、を含んで構成されている。
【０００７】
請求項１記載の発明では、自モジュールの前段から取得した画像データに対して互いに異なる画像処理を行い、当該画像処理を経た画像データ又は前記画像処理の処理結果を自モジュールの後段へ出力する複数種の画像処理モジュール、及び、前段のモジュールから出力される画像データをバッファに書き込ませると共に前記バッファに記憶されている画像データを後段のモジュールによって読み出させるバッファモジュールのプログラムが記憶手段に各々記憶されている。また、請求項１記載の発明に係る構築・初期化手段は、記憶手段に記憶されているプログラムにより、複数種の画像処理モジュールの中から選択した１つ以上の画像処理モジュールの各々の前段及び後段の少なくとも一方にバッファモジュールを設け、各モジュールをパイプライン形態又は有向非循環グラフ形態で連結した画像処理部を構築する。
【０００８】
また、構築・初期化手段は、画像処理部を構築した後に、構築した画像処理部のうちの画像処理モジュールにおいて、画像処理時に用いる変数(例えばポインタやカウンタ等)を初期化する変数初期化処理及び画像処理時に参照する参照データを準備する参照データ準備処理(例えばＬＵＴ(Look Up Table)に設定する変換データを生成してＬＵＴに設定したり、予め記憶媒体に記憶されている参照データをメモリに読み込む等の処理)を含む第１の初期化処理を行わせる。構築・初期化手段が画像処理モジュールで第１の初期化処理を行わせることで、画像処理部は処理対象の画像データに対する画像処理を行うことが可能な状態となり、処理管理手段は、処理対象の画像データに対する画像処理を、処理対象の画像データを複数の処理単位(この処理単位としては１フレーム分の２次元画像データが好適であるが、より小さい単位(例えば１フレーム分の２次元画像を複数の部分画像に分割したときの個々の部分画像を表すデータ)であってもよい)に分割したときの個々の処理単位毎に画像処理部で行わせる。なお、処理対象の画像データとしては、例えば請求項９に記載したように、３次元画像を表す３次元画像データや動画像データが好適であるが、２次元画像を表す２次元画像データ等であってもよい。
【０００９】
上記のように、処理対象の画像データに対する画像処理を、処理対象の画像データを複数の処理単位に分割したときの個々の処理単位毎に行う場合、新たな処理単位に対する画像処理を開始する際には、画像処理時に用いる変数を初期化する変数初期化処理を再度行う必要がある。一方、画像データを構成する複数の処理単位に同一の画像処理を各々行う場合は、画像処理モジュールが画像処理時に参照する参照データも同一でよく、処理単位毎に相違させる必要はない。また、画像処理モジュールが行う画像処理の種類等によっては、参照データの生成に時間が掛かったり、膨大なデータ量の参照データをメモリに読み込む必要があり、参照データを準備する参照データ準備処理は長い時間を要することが多い。
【００１０】
上記に基づき請求項１記載の発明に係る処理管理手段は、画像処理部で単一の処理単位に対する画像処理が終了する毎に、画像処理部のうちの画像処理モジュールにおいて、第１の初期化処理から参照データ準備処理を除外した第１の再初期化処理を行わせた後に、処理対象の画像データのうちの未処理の処理単位に対する画像処理を画像処理部で行わせている。これにより、或る処理単位に対する画像処理が終了する毎に行われる第１の再初期化処理が短時間で終了し、未処理の新たな処理単位に対する画像処理を直ちに開始することができるので、画像データを構成する複数の処理単位に同一の画像処理を各々行う場合の処理効率の向上を実現することができる。
【００１１】
なお、請求項１記載の発明において、構築・初期化手段が、互いに独立して動作可能な複数のモジュール群から成る画像処理部を構築する場合、処理管理手段は、例えば請求項２に記載したように、画像処理部の個々のモジュール群で互いに異なる処理単位に対する画像処理を行わせると共に、複数のモジュール群のうちの何れかで単一の処理単位に対する画像処理が終了する毎に、画像処理が終了したモジュール群のうちの画像処理モジュールにおいて第１の再初期化処理を行わせた後に、処理対象の画像データのうちの未処理の処理単位に対する画像処理を画像処理が終了したモジュール群で行わせるように構成してもよい。
【００１２】
また、請求項１又は請求項２記載の発明において、例えば請求項３に記載したように、構築・初期化手段は、画像処理部を構築した後に、構築した画像処理部のうちのバッファモジュールにおいて、バッファとして用いるメモリ領域を確保する処理を含む第２の初期化処理を行わせ、処理管理手段は、画像処理部で単一の処理単位に対する画像処理が終了する毎に、画像処理部のうちのバッファモジュールにおいて、バッファの参照位置を先頭に戻す第２の再初期化処理を行わせるように構成してもよい。この場合、或る処理単位に対する画像処理が終了する毎に、メモリ領域を確保する処理に代えて、より短時間で処理可能なバッファの参照位置の更新(リセット)が行われるので、画像データを構成する複数の処理単位に同一の画像処理を各々行う場合の処理効率を更に向上させることができる。なお、請求項３記載の発明において、互いに独立して動作可能な複数のモジュール群から成る画像処理部が構築される場合には、請求項２記載の発明と同様に、個々のモジュール群を単位として第２の再初期化処理を行わせるように処理管理手段を構成すればよい。
【００１３】
また、或る処理単位に対する画像処理が行われることでバッファモジュールのバッファに記憶される画像処理結果は、別の処理単位に対する画像処理が行われる際に参照されることがあることを考慮すると、請求項３記載の発明において、処理管理手段は、例えば請求項４に記載したように、バッファモジュールにおいて第２の再初期化処理を行わせる前に、バッファモジュールのバッファとして用いていたメモリ領域に記憶されている画像処理結果を別のメモリ領域に複写することで前記画像処理結果を保存するように構成してもよい。これにより、或る処理単位に対する画像処理によって得られた画像処理結果を、別の処理単位に対する画像処理で参照することが可能となる。
【００１４】
また、請求項１又は請求項２記載の発明において、例えば請求項５に記載したように、構築・初期化手段は、画像処理部を構築した後に、構築した画像処理部のうちのバッファモジュールにおいて、バッファとして用いるメモリ領域を確保する処理を含む第２の初期化処理を行わせ、処理管理手段は、画像処理部で単一の処理単位に対する画像処理が終了する毎に、画像処理部の既存のバッファモジュールでバッファとして用いていたメモリ領域を保存すると共に、新たなバッファモジュールを生成し、生成した新たなバッファモジュールを既存のバッファモジュールに代えて画像処理部に連結し、新たなバッファモジュールにおいて第２の初期化処理を行わせるように構成してもよい。この場合、請求項４記載の発明と同様に、或る処理単位に対する画像処理によって得られた画像処理結果を、別の処理単位に対する画像処理で参照することが可能となる。
【００１５】
なお、請求項５記載の発明では、或る処理単位に対する画像処理が終了する毎に、新たに生成されて画像処理部に連結されたバッファモジュールでメモリ領域を確保する処理を含む第２の初期化処理が行われるので、前述の請求項３記載の発明よりは処理効率が低下するものの、処理効率低下の主因となっていたのは参照データ準備処理であり、請求項１記載の発明によって参照データ準備処理が省略されることで、従来よりは大幅な処理効率の向上を実現できる。
【００１６】
また、請求項４又は請求項５記載の発明において、構築・初期化手段が、構成が互いに同一でかつ他のモジュール群による他の処理単位に対する画像処理結果を参照して画像処理を行うように連結されたモジュール群を複数備えた画像処理部を構築する場合、処理管理手段は、例えば請求項６に記載したように、処理対象の画像データの特定の処理単位について、当該特定の処理単位に対する画像処理を行った任意のモジュール群の個々のバッファモジュールのバッファに記憶された画像処理結果が、処理対象の画像データのうちの何れの処理単位に対する画像処理を行うモジュール群によって参照されるかを判断し、判断結果を記憶することを、処理対象の画像データの個々の処理単位について各々行った後に、画像処理部の個々のモジュール群で互いに異なる処理単位に対する画像処理を行わせ、複数のモジュール群のうちの何れかで任意の処理単位に対する画像処理が終了する毎に、記憶した判断結果に基づき、画像処理の終了に伴い記憶している画像処理結果の他のモジュール群による参照が終了したバッファが出現したか否か判断し、該当するバッファが出現したと判断した場合に該当するバッファとして用いていたメモリ領域を解放するように構成することが好ましい。
【００１７】
構成が互いに同一でかつ他のモジュール群による他の処理単位に対する画像処理結果を参照して画像処理を行うように連結されたモジュール群を複数備えた画像処理部が構築され、当該画像処理部の個々のモジュール群で互いに異なる処理単位に対する画像処理を行わせる場合、或る処理単位に対する画像処理が終了しても、当該画像処理によって得られた画像処理結果が他の処理単位に対する画像処理で参照されるので、請求項４又は請求項５記載の発明のように画像処理結果を記憶するメモリ領域を保存しておく必要があるが、これに伴い、特に処理対象の画像データのデータ量が比較的大きい等の場合に、メモリ領域等のリソースが大量に使用されることになるという問題が生ずる。
【００１８】
これに対して請求項６記載の発明は、処理対象の画像データの特定の処理単位に対する画像処理を行った任意のモジュール群の個々のバッファモジュールのバッファに記憶された画像処理結果が、処理対象の画像データのうちの何れの処理単位に対する画像処理を行うモジュール群によって参照されるかを判断し、判断結果を記憶することが、処理対象の画像データの個々の処理単位について各々行われ、画像処理の実行時には、複数のモジュール群のうちの何れかで任意の処理単位に対する画像処理が終了する毎に、記憶した判断結果に基づき、画像処理の終了に伴い記憶している画像処理結果の他のモジュール群による参照が終了したバッファが出現したか否か判断し、該当するバッファが出現したと判断した場合に該当するバッファとして用いていたメモリ領域を解放するので、記憶している画像処理結果が参照されなくなったバッファ(メモリ領域)が解放されずに残存することを防止することができ、画像処理の実行中のメモリ領域等のリソースの使用量を必要最小限に抑制することができる。
【００１９】
また、請求項４又は請求項５記載の発明において、構築・初期化手段が、構成が互いに同一でかつ他のモジュール群による他の処理単位に対する画像処理結果を参照して画像処理を行うように連結されたモジュール群を複数備えた画像処理部を構築する場合、処理管理手段は、例えば請求項７に記載したように、処理対象の画像データの特定の処理単位について、特定の処理単位に対する画像処理を行う任意のモジュール群が、処理対象の画像データのうちの何れの処理単位に対する画像処理を行うモジュール群に含まれるバッファモジュールのバッファに記憶された画像処理結果を参照するかを判断し、判断結果を記憶することを、処理対象の画像データの個々の処理単位について各々行った後に、画像処理部の個々のモジュール群に対して互いに異なる処理単位に対する画像処理の実行を指示すると共に、記憶した前記判断結果に基づき、画像処理が行う特定のモジュール群が参照する画像処理結果を記憶するバッファが存在しているか否かを、画像処理が行う個々のモジュール群について各々判断し、存在していないバッファが有ると判断した場合は、存在していないバッファを含むモジュール群を追加生成し、追加生成したモジュール群により、特定のモジュール群が参照する画像処理結果が得られる特定の処理単位に対する画像処理を行わせるように構成することが好ましい。
【００２０】
構成が互いに同一でかつ他のモジュール群による他の処理単位に対する画像処理結果を参照して画像処理を行うように連結されたモジュール群を複数備えた画像処理部が構築され、当該画像処理部の個々のモジュール群で互いに異なる処理単位に対する画像処理を行わせる場合、例えば、第１の処理単位に対する画像処理を行う特定モジュール群が、参照と必要とする第２の処理単位に対する画像処理結果が得られていないために画像処理を停止している一方、第２の処理単位に対する画像処理が、特定モジュール群による第１の処理単位に対する画像処理が終了した後に前記特定モジュール群に行わせる予定であった等のようにデッドロックが発生し、画像処理の進行が停止してしまう可能性がある。
【００２１】
これに対して請求項７記載の発明では、処理対象の画像データの特定の処理単位に対する画像処理を行う任意のモジュール群が、処理対象の画像データのうちの何れの処理単位に対する画像処理を行うモジュール群に含まれるバッファモジュールのバッファに記憶された画像処理結果を参照するかを判断し、判断結果を記憶することが、処理対象の画像データの個々の処理単位について各々行われ、また、記憶した前記判断結果に基づき、画像処理が行う特定のモジュール群が参照する画像処理結果を記憶するバッファが存在しているか否かを、画像処理が行う個々のモジュール群について各々判断し、存在していないバッファが有ると判断した場合は、存在していないバッファを含むモジュール群を追加生成し、追加生成したモジュール群により、特定のモジュール群が参照する画像処理結果が得られる特定の処理単位に対する画像処理を行わせるので、デッドロックが発生して画像処理の進行が停止してしまうことを防止することができる。
【００２２】
また、請求項１〜請求項７の何れかに記載の発明において、第１の再初期化処理で除外する処理は参照データ準備処理に限られるものではなく、例えば請求項８に記載したように、構築・初期化手段は、第１コンピュータ上で動作する第１のモジュール群と、第１コンピュータと通信回線を介して接続された第２コンピュータ上で動作する第２のモジュール群と、を含む画像処理部を構築した場合、構築した画像処理部のうち、隣接するモジュールとの間に通信回線が存在する特定の画像処理モジュールにおいて、第１コンピュータと第２コンピュータとの間にセッションを確立するための認証処理も含む第１の初期化処理を行わせ、処理管理手段は、画像処理部で単一の前記処理単位に対する画像処理が終了する毎に、画像処理部のうちの特定の画像処理モジュールにおいて、第１の初期化処理から認証処理も除外した第１の再初期化処理を行わせるように構成してもよい。
【００２３】
認証処理では一般に暗号化情報を送受するので時間が掛かり、また、認証処理を繰り返し行うと、セキュリティ上の理由で相手コンピュータからセッションの確立を拒否される可能性もある。これに対して請求項８記載の発明では、画像処理部で単一の前記処理単位に対する画像処理が終了した場合に、画像処理部のうちの特定の画像処理モジュールにおいて、第１の初期化処理から認証処理も除外した第１の再初期化処理を行わせるので、認証処理が省略されることで処理効率が向上すると共に、処理対象の画像データを構成する全ての処理単位に対する画像処理が終了する前に相手コンピュータからセッションの確立を拒否されることで、処理対象の画像データに対する画像処理が中断してしまうことも防止することができる。
【００２４】
請求項１０記載の発明に係る画像処理方法は、記憶手段は、自モジュールの前段から取得した画像データに対して互いに異なる画像処理を行い、当該画像処理を経た画像データ又は前記画像処理の処理結果を自モジュールの後段へ出力する複数種の画像処理モジュール、及び、前段のモジュールから出力される画像データをバッファに書き込ませると共に前記バッファに記憶されている画像データを後段のモジュールによって読み出させるバッファモジュールのプログラムを各々記憶し、構築・初期化手段は、前記記憶手段に記憶されているプログラムにより、前記複数種の画像処理モジュールの中から選択した１つ以上の画像処理モジュールの各々の前段及び後段の少なくとも一方に前記バッファモジュールを設け、各モジュールをパイプライン形態又は有向非循環グラフ形態で連結した画像処理部を構築した後に、構築した前記画像処理部のうちの前記画像処理モジュールにおいて、画像処理時に用いる変数を初期化する変数初期化処理及び画像処理時に参照する参照データを準備する参照データ準備処理を含む第１の初期化処理を行わせ、処理管理手段は、前記処理対象の画像データに対する画像処理を、前記処理対象の画像データを複数の処理単位に分割したときの個々の処理単位毎に前記画像処理部で行わせると共に、前記画像処理部で単一の前記処理単位に対する画像処理が終了する毎に、前記画像処理部のうちの前記画像処理モジュールにおいて、前記第１の初期化処理から前記参照データ準備処理を除外した第１の再初期化処理を行わせた後に、前記処理対象の画像データのうちの未処理の処理単位に対する画像処理を前記画像処理部で行わせるので、請求項１記載の発明と同様に、画像データを構成する複数の処理単位に同一の画像処理を各々行う場合の処理効率の向上を実現することができる。
【００２５】
請求項１１記載の発明に係る画像処理プログラムは、自モジュールの前段から取得した画像データに対して互いに異なる画像処理を行い、当該画像処理を経た画像データ又は前記画像処理の処理結果を自モジュールの後段へ出力する複数種の画像処理モジュール、及び、前段のモジュールから出力される画像データをバッファに書き込ませると共に前記バッファに記憶されている画像データを後段のモジュールによって読み出させるバッファモジュールのプログラムを各々記憶する記憶手段を備えたコンピュータを、前記記憶手段に記憶されているプログラムにより、前記複数種の画像処理モジュールの中から選択した１つ以上の画像処理モジュールの各々の前段及び後段の少なくとも一方に前記バッファモジュールを設け、各モジュールをパイプライン形態又は有向非循環グラフ形態で連結した画像処理部を構築した後に、構築した前記画像処理部のうちの前記画像処理モジュールにおいて、画像処理時に用いる変数を初期化する変数初期化処理及び画像処理時に参照する参照データを準備する参照データ準備処理を含む第１の初期化処理を行わせる構築・初期化手段、及び、前記処理対象の画像データに対する画像処理を、前記処理対象の画像データを複数の処理単位に分割したときの個々の処理単位毎に前記画像処理部で行わせると共に、前記画像処理部で単一の前記処理単位に対する画像処理が終了する毎に、前記画像処理部のうちの前記画像処理モジュールにおいて、前記第１の初期化処理から前記参照データ準備処理を除外した第１の再初期化処理を行わせた後に、前記処理対象の画像データのうちの未処理の処理単位に対する画像処理を前記画像処理部で行わせる処理管理手段として機能させる。
【００２６】
請求項１１記載の発明に係る画像処理プログラムは、上記の記憶手段を備えたコンピュータを、上記の構築・初期化手段及び処理管理手段として機能させるためのプログラムであるので、コンピュータが請求項１１記載の発明に係る画像処理プログラムを実行することで、コンピュータが請求項１に記載の画像処理装置として機能することになり、請求項１記載の発明と同様に、画像データを構成する複数の処理単位に同一の画像処理を各々行う場合の処理効率の向上を実現することができる。
【発明の効果】
【００２７】
以上説明したように本発明は、画像処理部を構築した際には、画像処理時に用いる変数を初期化する変数初期化処理及び画像処理時に参照する参照データを準備する参照データ準備処理を含む第１の初期化処理を画像処理モジュールで行わせ、処理対象の画像データを複数の処理単位に分割したときの単一の前記処理単位に対する画像処理が画像処理部で終了した場合には、第１の初期化処理から参照データ準備処理を除外した第１の再初期化処理を画像処理モジュールで行わせるようにしたので、画像データを構成する複数の処理単位に同一の画像処理を各々行う場合の処理効率の向上を実現できる、という優れた効果を有する。
【発明を実施するための最良の形態】
【００２８】
以下、図面を参照して本発明の実施形態の一例を詳細に説明する。
【００２９】
〔第１実施形態〕
以下、図面を参照して本発明の実施形態の一例を詳細に説明する。図１には、本発明に係る画像処理装置として機能することが可能なコンピュータ１０が示されている。なお、このコンピュータ１０は、複写機、プリンタ、ファクシミリ装置、これらの機能を兼ね備えた複合機、スキャナ、写真プリンタ等のように内部で画像処理を行う必要のある任意の画像取扱機器に組み込まれていてもよいし、パーソナル・コンピュータ（ＰＣ）等の独立したコンピュータであってもよく、更にＰＤＡ（Personal Digital Assistant）や携帯電話機等の携帯機器に組み込まれたコンピュータであってもよい。
【００３０】
コンピュータ１０はＣＰＵ１２、ＤＲＡＭ又はＳＲＡＭ等から成るメモリ１４、表示部１６、操作部１８、記憶部２０、画像データ供給部２２及び画像出力部２４を備えており、これらはバス２６を介して互いに接続されている。コンピュータ１０が上述したような画像取扱機器に組み込まれている場合、表示部１６や操作部１８としては、画像取扱機器に設けられたＬＣＤ等から成る表示パネルやテンキー等を適用することができる。また、コンピュータ１０が独立したコンピュータである場合、表示部１６や操作部１８としては、当該コンピュータに接続されたディスプレイやキーボード、マウス等を適用することができる。また、記憶部２０としてはＨＤＤ(Hard Disk Drive)が好適であるが、これに代えてフラッシュメモリ等の他の不揮発性記憶手段を用いることも可能である。
【００３１】
また、画像データ供給部２２は処理対象の画像データを供給できるものであればよく、例えば紙や写真フィルム等の記録材料に記録されている画像を読み取って画像データを出力する画像読取部、通信回線を介して外部から画像データを受信する受信部、画像データを記憶する画像記憶部（メモリ１４又は記憶部２０）等を適用することができる。また、画像出力部２４は画像処理を経た画像データ又は該画像データが表す画像を出力するものであればよく、例えば画像データが表す画像を紙や感光材料等の記録材料に記録する画像記録部、画像データが表す画像をディスプレイ等に表示する表示部、画像データを記録メディアに書き込む書込装置、画像データを通信回線を介して送信する送信部を適用することができる。また、画像出力部２４は画像処理を経た画像データを単に記憶する画像記憶部（メモリ１４又は記憶部２０）であっても構わない。
【００３２】
図１に示すように、記憶部２０には、ＣＰＵ１２によって実行される各種のプログラムとして、メモリ１４等のリソースの管理やＣＰＵ１２によるプログラムの実行の管理、コンピュータ１０と外部との通信等を司るオペレーティングシステム３０のプログラム、コンピュータ１０を本発明に係る画像処理装置として機能させるための画像処理プログラム群３４、ＣＰＵ１２が上記画像処理プログラム群を実行することで実現される画像処理装置に対して所望の画像処理を行わせる各種のアプリケーション３２のプログラム（図１ではアプリケーションプログラム群３２と表記）が各々記憶されている。
【００３３】
画像処理プログラム群３４は、前述した各種の画像取扱機器や携帯機器を開発する際の開発負荷を軽減したり、ＰＣ等で利用可能な画像処理プログラムを開発する際の開発負荷を軽減することを目的として、各種の画像取扱機器や携帯機器、ＰＣ等の各種機器（プラットフォーム）で共通に使用可能に開発されたプログラムであり、本発明に係る画像処理プログラムに対応している。画像処理プログラム群３４によって実現される画像処理装置は、アプリケーション３２からの構築指示に従い、アプリケーション３２が指示した画像処理を行う画像処理部を構築し、アプリケーション３２からの実行指示に従い、前記画像処理部によって画像処理を行うが（詳細は後述）、画像処理プログラム群３４は、所望の画像処理を行う画像処理部（所望の構成の画像処理部）の構築を指示したり、構築された画像処理部による画像処理の実行を指示するためのインタフェースをアプリケーション３２に提供している。このため、内部で画像処理を行う必要のある任意の機器を新規開発する等の場合にも、前記画像処理を行うプログラムの開発に関しては、当該機器で必要とされる画像処理を上記のインタフェースを利用して画像処理プログラム群３４に行わせるアプリケーション３２を開発するのみで済み、実際に画像処理を行うプログラムを新たに開発する必要が無くなるので、開発負荷を軽減することができる。
【００３４】
また、画像処理プログラム群３４によって実現される画像処理装置は、前述のように、アプリケーション３２からの構築指示に従い、アプリケーション３２が指示した画像処理を行う画像処理部を構築し、構築した画像処理部によって画像処理を行うので、例えば画像処理対象の画像データの色空間や１画素当たりのビット数が不定であったり、実行すべき画像処理の内容や手順・パラメータ等が不定である場合にも、アプリケーション３２が画像処理部の再構築を指示することで、画像処理装置（画像処理部）によって実行される画像処理を、処理対象の画像データ等に応じて柔軟に変更することができる。
【００３５】
以下、画像処理プログラム群３４について説明する。図１に示すように、画像処理プログラム群３４はモジュールライブラリ３６と、処理構築部４２のプログラムと、処理管理部４６のプログラムに大別される。詳細は後述するが、本実施形態に係る処理構築部４２は、アプリケーションからの指示により、例として図２に示すように、予め定められた画像処理を行う１つ以上の画像処理モジュール３８と、個々の画像処理モジュール３８の前段及び後段の少なくとも一方に配置され画像データを記憶するためのバッファを備えたバッファモジュール４０と、がパイプライン形態又はＤＡＧ(Directed Acyclic Graph：有向非循環グラフ)形態で連結されて成る画像処理部５０を構築する。画像処理部５０を構成する個々の画像処理モジュールの実体はＣＰＵ１２によって実行されＣＰＵ１２で所定の画像処理を行わせるための第１プログラム、又は、ＣＰＵ１２によって実行されＣＰＵ１２により図１に図示されていない外部の画像処理装置（例えば専用画像処理ボード等）に対する処理の実行を指示するための第２プログラムであり、上述したモジュールライブラリ３６には、予め定められた互いに異なる画像処理（例えば入力処理やフィルタ処理、色変換処理、拡大・縮小処理、スキュー角検知処理、画像回転処理、画像合成処理、出力処理等）を行う複数種の画像処理モジュール３８のプログラムが各々登録されている。以下では、説明を簡単にするために、画像処理部５０を構成する個々の画像処理モジュールの実体が上記の第１プログラムであるものとして説明する。
【００３６】
個々の画像処理モジュール３８は、例として図３(Ａ)にも示すように、画像データに対する画像処理を所定の単位処理データ量ずつ行う画像処理エンジン３８Ａと、画像処理モジュール３８の前段及び後段のモジュールとの画像データの入出力及び画像処理エンジン３８Ａの制御を行う制御部３８Ｂから構成されている。個々の画像処理モジュール３８における単位処理データ量は、画像の１ライン分、画像の複数ライン分、画像の１画素分、画像１面分等を含む任意のバイト数の中から、画像処理エンジン３８Ａが行う画像処理の種類等に応じて予め選択・設定されており、例えば色変換処理やフィルタ処理を行う画像処理モジュール３８では単位処理データ量が１画素分とされ、拡大・縮小処理を行う画像処理モジュール３８では単位処理データ量が画像の１ライン分又は画像の複数ライン分とされ、画像回転処理を行う画像処理モジュール３８では単位処理データ量が画像１面分とされ、画像圧縮伸長処理を行う画像処理モジュール３８では単位処理データ量が実行環境に依存するＮバイトとされている。
【００３７】
また、モジュールライブラリ３６には、画像処理エンジン３８Ａが実行する画像処理の種類が同一でかつ実行する画像処理の内容が異なる画像処理モジュール３８も登録されている（図１では、この種の画像処理モジュールを「モジュール１」「モジュール２」と表記して示している）。例えば拡大・縮小処理を行う画像処理モジュール３８については、入力された画像データを１画素おきに間引くことで50％に縮小する縮小処理を行う画像処理モジュール３８、入力された画像データに対して指定された拡大・縮小率で拡大・縮小処理を行う画像処理モジュール３８等の複数の画像処理モジュール３８が各々用意されている。また、例えば色変換処理を行う画像処理モジュール３８については、ＲＧＢ色空間をＣＭＹ色空間へ変換する画像処理モジュール３８やその逆へ変換する画像処理モジュール３８、Ｌ*ａ*ｂ*色空間等の他の色空間変換を行う画像処理モジュール３８が各々用意されている。
【００３８】
また、画像処理モジュール３８の制御部３８Ｂは、画像処理エンジン３８Ａが単位処理データ量ずつ処理するために必要な画像データを入力するために、自モジュールの前段のモジュール（例えばバッファモジュール４０）から画像データを単位読出データ量ずつ取得し、画像処理エンジン３８Ａから出力される画像データを単位書込データ量ずつ後段のモジュール（例えばバッファモジュール４０）へ出力する（画像処理エンジン３８Ａで圧縮等のデータ量の増減を伴う画像処理が行われなければ単位書込データ量＝単位処理データ量となる）か、画像処理エンジン３８Ａによる画像処理の結果を自モジュールの外部へ出力する（例えば画像処理エンジン３８Ａがスキュー角検知処理等の画像解析処理を行う場合、画像データに代えてスキュー角検知結果等の画像解析処理結果が出力されることがある）処理を行うが、モジュールライブラリ３６には、画像処理エンジン３８Ａが実行する画像処理の種類及び内容が同一で、上記の単位処理データ量や単位読出データ量、単位書込データ量が異なる画像処理モジュール３８も登録されている。例えば画像回転処理を行う画像処理モジュール３８における単位処理データ量についても、前述した画像１面分に限られるものではなく、同じ画像回転処理を行いかつ単位処理データ量が互いに異なる（例えば画像の１ライン分や複数ライン分等の）複数の画像処理モジュール３８がモジュールライブラリ３６に含まれていても良い。
【００３９】
また、モジュールライブラリ３６に登録されている個々の画像処理モジュール３８のプログラムは、画像処理エンジン３８Ａに相当するプログラムと制御部３８Ｂに相当するプログラムから構成されているが、制御部３８Ｂに相当するプログラムは部品化されており、個々の画像処理モジュール３８のうち単位読出データ量及び単位書込データ量が同一の画像処理モジュール３８は、画像処理エンジン３８Ａで実行される画像処理の種類や内容に拘わらず、制御部３８Ｂに相当するプログラムが共通化されている（制御部３８Ｂに相当するプログラムとして同一のプログラムが用いられている）。これにより、画像処理モジュール３８のプログラムの開発にあたっての開発負荷が軽減される。
【００４０】
なお、画像処理モジュール３８の中には、入力される画像の属性が未知の状態では単位読出データ量及び単位書込データ量が確定しておらず、入力画像データの属性を取得し、取得した属性を所定の演算式に代入して演算することで単位読出データ量や単位書込データ量が確定するモジュールが存在しているが、この種の画像処理モジュール３８については、単位読出データ量と単位書込データ量が互いに同一の演算式を用いて導出される画像処理モジュール３８について、制御部３８Ｂに相当するプログラムを共通化するようにすればよい。また、本実施形態に係る画像処理プログラム群３４は、前述のように各種機器に実装可能であるが、画像処理プログラム群３４のうちモジュールライブラリ３６に登録する画像処理モジュール３８の数や種類等については、画像処理プログラム群３４を実装する各種機器で必要とされる画像処理に応じて、適宜追加・削除・入替等が可能であることは言うまでもない。
【００４１】
また、画像処理部５０を構成する個々のバッファモジュール４０は、例として図３(Ｂ)にも示すように、バッファ４０Ａと、バッファモジュール４０の前段及び後段のモジュールとの画像データの入出力及びバッファ４０Ａの管理を行うバッファ制御部４０Ｂから構成されている。なお、バッファ４０Ａはコンピュータ１０に設けられたメモリ１４からオペレーティングシステム３０及びリソース管理部４６Ｃを通じて確保されたメモリ領域で構成される。個々のバッファモジュール４０のバッファ制御部４０Ｂもその実体はＣＰＵ１２によって実行されるプログラムであり、モジュールライブラリ３６にはバッファ制御部４０Ｂのプログラムも登録されている（図１ではバッファ制御部４０Ｂのプログラムを「バッファモジュール」と表記して示している）。
【００４２】
また、アプリケーション３２からの指示に従って画像処理部５０を構築する処理構築部４２は、図１に示すように複数種のモジュール生成部４４から構成されている。複数種のモジュール生成部４４は互いに異なる画像処理に対応しており、アプリケーション３２によって起動されることで、対応する画像処理を実現するための画像処理モジュール３８及びバッファモジュール４０から成るモジュール群を生成する処理を行う。なお、図１ではモジュール生成部４４の一例として、モジュールライブラリ３６に登録されている個々の画像処理モジュール３８が実行する画像処理の種類に対応するモジュール生成部４４を示しているが、個々のモジュール生成部４４に対応する画像処理は、複数種の画像処理モジュール３８によって実現される画像処理（例えばスキュー角検知処理と画像回転処理から成るスキュー補正処理）であってもよい。必要とされる画像処理が複数種の画像処理を組み合わせた処理である場合、アプリケーション３２は複数種の画像処理の何れかに対応するモジュール生成部４４を順次起動する。これにより、アプリケーション３２によって順次起動されたモジュール生成部４４により、必要とされる画像処理を行う画像処理部５０が構築されることになる。
【００４３】
また図１に示すように、処理管理部４６は、画像処理部５０における画像処理の実行を制御する処理フロー管理部４６Ａ、画像処理部５０の各モジュールによるメモリ１４や各種のファイル等のコンピュータ１０のリソースの使用を管理するリソース管理部４６Ｃ、及び、画像処理部５０で発生したエラーを管理するエラー管理部４６Ｂを含んで構成されている。エラー管理部４６Ｂは、画像処理部５０が画像処理を実行している途中でエラーが発生した場合に、発生したエラーの種別・発生箇所等のエラー情報を取得し、画像処理プログラム群３４がインストールされたコンピュータ１０が組み込まれている機器の種別や構成等を表す装置環境情報を記憶部２０等から取得し、取得した装置環境情報が表す装置環境に応じたエラー通知方法を判断し、判断したエラー通知方法でエラーの発生を通知する処理を行う。
【００４４】
次に本実施形態の作用を説明する。画像処理プログラム群３４が実装されている機器において、何らかの画像処理を行う必要のある状況になると、この状況が特定のアプリケーション３２によって検知される。なお、画像処理を行う必要のある状況としては、例えば画像データ供給部２２としての画像読取部によって画像を読み取り、画像出力部２４としての画像記録部により記録材料に画像として記録するか、画像出力部２４としての表示部に画像として表示させるか、画像出力部２４としての書込装置により画像データを記録メディアに書き込むか、画像出力部２４としての送信部により画像データを送信するか、画像出力部２４としての画像記憶部に記憶させるジョブの実行がユーザによって指示された場合、或いは、画像データ供給部２２としての受信部によって受信されるか、画像データ供給部２２としての画像記憶部に記憶されている画像データに対して、上記の記録材料への記録、表示部への表示、記録メディアへの書き込み、送信、画像記憶部への記憶の何れかを行うジョブの実行がユーザによって指示された場合が挙げられる。また、画像処理を行う必要のある状況は上記に限られるものではなく、例えばユーザからの指示に応じてアプリケーション３２が実行可能な処理の名称等を表示部１６に一覧表示している状態で、実行対象の処理がユーザによって選択された等の場合であってもよい。
【００４５】
上記のように、何らかの画像処理を行う必要のある状況になったことを検知すると、アプリケーション３２は、処理管理部４６のプログラムを実行するスレッド（プロセス又はオブジェクトでもよい：以下同様）を生成することで、コンピュータ１０上で動作する処理管理部４６のワークフロー管理部４６Ａ、リソース管理部４６Ｂ及びエラー管理部４６Ｃを各々生成する。続いてアプリケーション３２は、画像処理対象の画像データを供給する画像データ供給部２２の種別を認識し、認識した種別がバッファ領域（メモリ１４の一部領域）であった場合には、画像データ供給部２２として指定されたバッファ領域を既に確保されたバッファ４０Ａとしてバッファ制御部４０Ｂに認識させるパラメータを設定し、バッファ制御部４０Ｂのプログラムを実行するスレッドを生成する（バッファ制御部４０Ｂを生成する）ことで、指定されたバッファ領域を含むバッファモジュール４０（画像データ供給部２２として機能するバッファモジュール４０）を生成する。
【００４６】
続いてアプリケーション３２は、上記と同様に、画像処理を行った画像データの出力先としての画像出力部２４の種別を認識し、認識した種別がバッファ領域（メモリ１４の一部領域）であった場合は、画像出力部２４として指定されたバッファ領域を含むバッファモジュール４０を上記と同様にして生成する。ここで生成されたバッファモジュール４０は画像出力部２４として機能する。また、アプリケーション３２は実行すべき画像処理の内容を認識し、実行すべき画像処理を、個々のモジュール生成部４４に対応するレベルの画像処理の組み合わせに分解し、実行すべき画像処理を実現するために必要な画像処理の種類及び個々の画像処理の実行順序を判定する。なお、この判定は、例えば上記の画像処理の種類及び個々の画像処理の実行順序を、ユーザが実行を指示可能なジョブの種類と対応付けて予め情報として登録しておき、アプリケーション３２は、実行が指示されたジョブの種類に対応する情報を読み出すことによって実現することができる。
【００４７】
そしてアプリケーション３２は、上記で判定した画像処理の種類及び実行順序に基づいて、特定の画像処理に対応するモジュール生成部４４を起動（モジュール生成部４４のプログラムを実行するスレッドを生成）した後に、起動したモジュール生成部４４に対し、当該モジュール生成部４４によるモジュール群の生成に必要な情報として、前記モジュール群に画像データを入力する入力モジュールを識別するための入力モジュール識別情報、前記モジュール群が画像データを出力する出力モジュールを識別するための出力モジュール識別情報、前記モジュール群に入力される入力画像データの属性を表す入力画像属性情報、実行すべき画像処理のパラメータを通知して対応するモジュール群の生成を指示する。また、必要とされる画像処理が複数種の画像処理を組み合わせた処理である場合、アプリケーション３２は、指示したモジュール生成部４４からモジュール群の生成完了が通知されると、個々の画像処理に対応する他のモジュール生成部４４を起動してモジュール群の生成に必要な情報を通知する処理を個々の画像処理の実行順序の昇順に繰り返す。
【００４８】
なお、上記の入力モジュールは、実行順序が１番目のモジュール群については画像データ供給部２２が入力モジュールとなり、実行順序が２番目以降のモジュール群については前段のモジュール群の最終モジュール（通常はバッファモジュール４０）が入力モジュールとなる。また、上記の出力モジュールについては、実行順序が最後のモジュール群では画像出力部２４が出力モジュールとなるので、画像出力部２４が出力モジュールとして指定されるが、その他のモジュール群では出力モジュールは未確定のためにアプリケーション３２による指定は行われず、必要な場合はモジュール生成部４４によって生成・設定される。また、入力画像属性や画像処理のパラメータについては、例えばユーザが実行を指示可能なジョブの種類と対応付けて予め情報として登録しておき、実行が指示されたジョブの種類に対応する情報を読み出すことでアプリケーション３２が認識するようにしてもよいし、ユーザに指定させるようにしてもよい。
【００４９】
一方、モジュール生成部４４は、アプリケーション３２によって起動されるとモジュール生成処理を行う。モジュール生成処理では、まず生成対象の画像処理モジュール３８に入力される入力画像データの属性を表す入力画像属性情報を取得する。なお、入力画像データの属性を取得する処理は、生成対象の画像処理モジュール３８の前段にバッファモジュール４０が存在している場合、当該バッファモジュール４０に画像データの書き込みを行う更に前段の画像処理モジュール３８から出力画像データの属性を取得することによって実現できる。
【００５０】
そして、取得した情報が表す入力画像データの属性に基づいて、生成対象の画像処理モジュール３８の生成が必要か否か判定する。例えばモジュール生成部４４が色変換処理を行うモジュール群を生成するモジュール生成部であり、画像処理のパラメータにより出力画像データの色空間としてＣＭＹ色空間がアプリケーション３２から指定された場合、取得した入力画像属性情報に基づいて入力画像データがＲＧＢ色空間のデータであることが判明したときには、色空間処理を行う画像処理モジュール３８としてＲＧＢ→ＣＭＹの色空間変換を行う画像処理モジュール３８を生成する必要があるが、入力画像データがＣＭＹ色空間のデータであったときには、入力画像データの属性と出力画像データの属性が色空間に関して一致しているので、色空間変換処理を行う画像処理モジュール３８は生成不要と判断する。
【００５１】
生成対象の画像処理モジュール３８の生成が必要と判断した場合には、生成対象の画像処理モジュール３８の後段にバッファモジュール４０が必要が否かを判定する。この判定は、画像処理モジュールの後段が出力モジュール（画像出力部２４）である場合（例えば図２(Ａ)〜(Ｃ)に示す画像処理部５０における最後段の画像処理モジュール３８を参照）や、例として図２(Ｂ)に示す画像処理部５０においてスキュー角検知処理を行う画像処理モジュール３８のように、画像処理モジュールが、画像データに対して解析等の画像処理を行いその結果を他の画像処理モジュール３８へ出力するモジュールである場合は否定されるが、上記以外の場合は判定が肯定されてバッファ制御部４０Ｂを起動することで、画像処理モジュール３８の後段に連結するバッファモジュール４０を生成する。
【００５２】
続いて、前段のモジュール（例えばバッファモジュール４０）の情報、後段のバッファモジュール４０の情報（後段にバッファモジュール４０を生成した画像処理モジュール３８のみ）、画像処理モジュール３８に入力される入力画像データの属性、処理パラメータを与えて、モジュールライブラリ３６に登録されており、画像処理モジュール３８として利用可能な複数の候補モジュールの中から、先に取得した入力画像データの属性、及び、画像処理モジュール３８で実行すべき処理パラメータに合致する画像処理モジュール３８を選択・生成する。
【００５３】
例えばモジュール生成部４４が色変換処理を行うモジュール群を生成するモジュール生成部であり、処理パラメータにより出力画像データの色空間としてＣＭＹ色空間が指定され、更に入力画像データがＲＧＢ色空間のデータであった場合には、モジュールライブラリ３６に登録されている各種の色空間処理を行う複数種の画像処理モジュール３８の中から、ＲＧＢ→ＣＭＹの色空間変換を行う画像処理モジュール３８が選択・生成される。また、画像処理モジュールが拡大・縮小処理を行う画像処理モジュール３８であり、指定された拡大縮小率が50％以外であれば、入力された画像データに対して指定された拡大・縮小率で拡大・縮小処理を行う画像処理モジュール３８が選択・生成され、指定された拡大縮小率が50％であれば、拡大縮小率50％に特化した拡大縮小処理、すなわち入力された画像データを１画素おきに間引くことで50％に縮小する縮小処理を行う画像処理モジュール３８が選択・生成される。
【００５４】
なお、画像処理モジュール３８の選択は上記に限られるものではなく、例えば画像処理エンジン３８Ａによる画像処理における単位処理データ量が異なる画像処理モジュール３８をモジュールライブラリ３６に複数登録しておき、画像処理部５０へ割当可能なメモリ領域のサイズ等の動作環境に応じて、適切な単位処理データ量の画像処理モジュール３８を選択する（例えば上記サイズが小さくなるに従って単位処理データ量の小さい画像処理モジュール３８を選択する等）ようにしてもよいし、アプリケーション３２或いはユーザに選択させるようにしてもよい。またモジュール生成部４４が、複数種の画像処理モジュール３８によって実現される画像処理（例えばスキュー角検知処理を行う画像処理モジュール３８と画像回転処理を行う画像処理モジュール３８によって実現されるスキュー補正処理）を行うモジュール群を生成する場合には、上記処理が繰り返されて２個以上の画像処理モジュール３８を含むモジュール群が生成される。
【００５５】
例えば図４(Ａ)に示すように、アプリケーション３２によって規定(指定)されるのは、目的とする画像処理を実現するための画像処理モジュール３８の種類や配置順序等のみであるが、アプリケーション３２によって順次起動された処理構築部４２の個々のモジュール生成部４４により、以上のモジュール生成処理が順次行われることで、例として図２(Ａ)〜(Ｃ)や図４(Ｂ)に示すように、必要に応じてバッファモジュールが挿入され、目的とする画像処理を行う画像処理部５０が構築される。
【００５６】
また、本実施形態に係る画像処理部５０は、２次元画像データが高さ方向(ｚ軸方向)に多数連なったデータ構造の３次元画像データや、２次元画像データが時間方向(ｔ軸方向)に多数連なったデータ構造の動画像データを処理対象とすることも可能とされているが、データ量が比較的多い３次元画像データや動画像データを処理対象とする場合や、高速処理が要求されている等の場合には、例えば図４(Ａ)に「モジュール群数＝ｎ」と表記したように、モジュール構成が同一(画像処理内容が同一)で互いに独立して並列に動作するモジュール群の生成数もアプリケーション３２によって規定(指定)される。モジュール群の生成数が指定された場合、処理構築部４２は、指定された生成数だけモジュール群を生成する。なお、図４(Ｂ)はモジュール群が３個生成された場合を示している。
【００５７】
なお、モジュール群の生成数はアプリケーション３２によって規定(指定)されることに限られるものではない。例えば処理対象の画像データが動画像データであり、画像処理部５０に対し、画像処理を経た動画像データを20fpsの転送レートで出力することが要求されている一方、単一のモジュール群における画像処理が5fpsの転送レートに相当する処理速度であった場合、処理構築部４２は要求性能を満足するモジュール群の生成数を演算し、算出された生成数＝４と同数のモジュール群を生成するようにしてもよい。
【００５８】
また、画像処理部５０として動作するプログラムの実行については、画像処理部５０を構成する個々のモジュールを単位とし、個々のモジュールのプログラムを実行するスレッドを生成し、ＣＰＵ１２によって実行させることも可能であるが、本実施形態では、モジュール構成が同一(画像処理内容が同一)で互いに独立して並列に動作するモジュール群を単位としてスレッドを生成し、ＣＰＵ１２によって実行させている。
【００５９】
上記のようにして、処理構築部４２によって画像処理部５０が構築され、画像処理部５０の構築が完了したことが処理構築部４２から処理管理部４６(のワークフロー管理部４６Ａ)に通知されると、処理管理部４６(のワークフロー管理部４６Ａ)では、図５に示す処理管理部処理を行う。以下、この処理管理部処理について説明する。
【００６０】
図４(Ｂ)に示すように、本第１実施形態に係る処理管理部４６(のワークフロー管理部４６Ａ)は、各モジュール群の末尾に位置している画像処理モジュール３８(最終画像処理モジュール３８)の情報を登録するためのモジュールリスト、任意のモジュール群で任意の処理単位についての画像処理が終了することで画像処理結果が記憶されたバッファモジュール４０(のバッファ４０Ａ)の情報を登録するための保存バッファリスト、及び、処理実行中の処理単位の情報を登録するための処理中リストを保持しており、ステップ１００では、処理構築部４２によって構築された画像処理部５０を構成する各モジュール群の最終画像処理モジュール３８の情報をモジュールリストに登録し(例として図４(Ｃ)には、３個のモジュール群の最終画像処理モジュール３８の情報"Ｍ1-3","Ｍ2-3","Ｍ3-3"がモジュールリストに登録された状態を示している)、次のステップ１０２では保存バッファリスト及び処理中リストをクリアする。
【００６１】
ステップ１０４では個々のモジュール群を識別するための変数ｉを１に初期化し、次のステップ１０６では、モジュールリストを参照してモジュール群ｉの最終画像処理モジュール３８を認識し、認識したモジュール群ｉの最終画像処理モジュール３８に対して初期化処理の実行を指示する。これにより、モジュール群ｉの最終画像処理モジュール３８において、画像処理時に用いる変数(例えばポインタやカウンタ、中間データ(例えばディザ化処理における拡散誤差値)等)を初期化する変数初期化処理や、画像処理時に参照する参照データを準備する(例えばＬＵＴに設定する変換データを生成してＬＵＴに設定したり、予め記憶媒体に記憶されている参照データをメモリに読み込む等の)参照データ準備処理を含む初期化処理が行われる。この初期化処理は請求項１に記載の第１の初期化処理に対応している。
【００６２】
また、初期化処理を完了した最終画像処理モジュール３８は、自モジュールの前段のモジュールに対して初期化処理の実行が指示されたことを通知する。最終画像処理モジュール３８の前段に存在しているのは、通常はバッファモジュール４０であり、バッファモジュール４０は、自モジュールの後段のモジュールから初期化処理の実行が指示されると、処理中にバッファ制御部４０Ｂが用いる変数(例えばポインタ等)を初期化する変数初期化処理や、バッファ４０Ａとして用いるメモリ領域をリソース管理部４６Ｃを通じて確保するメモリ確保処理を含む初期化処理を行う。この初期化処理は請求項３,５に記載の第２の初期化処理に対応している。そして、初期化処理を完了したバッファモジュール４０は、自モジュールの前段のモジュールに対して初期化処理の実行が指示されたことを通知する。これにより、図４(Ｃ)に白抜きの矢印で示すように、初期化処理の実行指示がモジュール群ｉの最終画像処理モジュール３８から各モジュールへ順に伝播していき、モジュール群ｉの各モジュールで上述した初期化処理が各々行われることになる。
【００６３】
モジュール群ｉの全モジュールで初期化処理が終了するとステップ１０８へ移行し、変数ｉがモジュール群の生成数ｎに達したか否か判定する。判定が否定された場合はステップ１１０へ移行し、変数ｉを１だけインクリメントした後にステップ１０６に戻る。これにより、ステップ１０８の判定が肯定される迄ステップ１０６〜ステップ１１０が繰り返され、画像処理部５０の全てのモジュール群で初期化処理が行われる。なお、上述したステップ１００〜ステップ１１０の処理を行う処理管理部４６は、画像処理部５０の構築を行う処理構築部４２と共に本発明に係る構築・初期化手段(より詳しくは請求項２,３,５に記載の構築・初期化手段)に対応しており、ステップ１１２以降の処理を行う処理管理部４６は、本発明に係る処理管理手段(より詳しくは請求項２,５〜７に記載の処理管理手段)に対応している。
【００６４】
また、ステップ１０８の判定が肯定されてステップ１１２へ移行し、個々のモジュール群を識別するための変数ｉ、及び、画像データを複数の処理単位に分割したときの個々の処理単位を識別するための変数ｊを各々１に初期化する。次のステップ１１４では、モジュール群ｉの最終画像処理モジュール３８に対し、出力画像の処理単位ｊのデータを得る画像処理の実行を指示(処理要求を入力)し、ステップ１１６では処理単位ｊを処理中リストに登録する。次のステップ１１８では変数ｉがモジュール群の生成数ｎに達したか否か判定する。判定が否定された場合はステップ１２０へ移行し、変数ｉ及び変数ｊを各々１づつインクリメントした後にステップ１１４に戻る。これにより、ステップ１１８の判定が肯定される迄ステップ１１４〜ステップ１２０が繰り返され、画像処理部５０の全てのモジュール群に対し、出力画像の互いに異なる処理単位のデータを得る画像処理の実行が各々指示される。
【００６５】
なお、ステップ１１４〜ステップ１２０では個々のモジュール群への処理単位の割当てを逐次行っているが、処理単位の割当ては並列に行ってもよく、その場合、個々のモジュール群へ割当てる処理単位が重複しないように、個々のモジュール群へ割当てる処理単位を決定する際に排他制御を行うように構成すればよい。
【００６６】
以下、画像処理の実行が指示された場合の画像処理部５０の個々のモジュールにおける処理を説明するが、以下では説明を簡単にするために、処理対象の画像データが３次元画像データ又は動画像データであり、処理対象の画像データ中の個々の２次元画像データを処理単位とする場合を説明する。
【００６７】
上記のように、処理管理部４６(処理フロー管理部４６Ａ)から処理要求が入力される(図３(Ａ)の(1)も参照)と、画像処理モジュール３８は、自モジュールの前段のモジュール（通常はバッファモジュール４０）に対して画像データを要求する(図３(Ａ)の(2)も参照)。後段の画像処理モジュール３８からのデータ要求に対し、前段のバッファモジュール４０のバッファ４０Ａに読出可能な有効データが単位読出データ量以上記憶されていれば、前段のバッファモジュール４０から後段の画像処理モジュール３８へ読出領域の先頭アドレスが通知されて画像データの読出が要請される。これにより、後段の画像処理モジュール３８は先頭アドレスが通知された前段のバッファモジュール４０の読出領域から単位読出データ量の画像データを読み出す(図３(Ａ)の(3)も参照）。
【００６８】
次に、画像処理モジュール３８は自モジュールの後段のモジュール(最終画像処理モジュール３８であれば画像出力部２４)に対してデータ出力用の領域を要求し、データ出力領域（後段のモジュールがバッファモジュール４０であれば当該バッファモジュール４０から先頭アドレスが通知された書込領域）が取得できたら(図３(Ａ)の(4)も参照)、先に前段のモジュールから取得した画像データ、後段のモジュールから取得したデータ出力領域（の先頭アドレス）を画像処理エンジン３８Ａに入力し、入力したデータに対して所定の画像処理を行わせる(図３(Ａ)の(5)も参照)と共に、処理後のデータをデータ出力領域に書き込ませる(図３(Ａ)の(6)も参照)。そして、画像処理エンジン３８Ａへの単位読出データ量のデータの入力が完了し、画像処理エンジン３８Ａから出力されたデータがデータ出力領域に全て書き込まれると、出力完了を後段のモジュールに通知すると共に、先に入力された処理要求に対応する処理を完了したことを処理要求元(処理管理部４６)へ通知する(図３(Ａ)の(7)も参照)。個々の画像処理モジュール３８で上記処理が繰り返されることで、画像処理部５０における画像処理が実現される。
【００６９】
また、バッファモジュール４０のバッファ制御部４０Ｂは、自モジュールの後段のモジュール（通常は画像処理モジュール３８）から画像データが要求されると(図３(Ｂ)の(1)も参照)、要求された画像データがバッファ４０Ａに記憶されているか否かチェックする(図３(Ｂ)の(2)も参照)が、読出可能な有効データがバッファ４０Ａに単位読出データ量以上記憶されていない場合は、処理管理部４６に対して画像データを要求する(図３(Ｂ)の(3)も参照)。処理管理部４６は、画像データ要求元のバッファモジュール４０の前段に位置している画像処理モジュール３８に処理要求を入力する(図３(Ｂ)の(4)も参照)。そして、図３(Ａ)に示したシーケンスを経て、前段の画像処理モジュール３８によってバッファ４０Ａに画像データが書き込まれ(図３(Ｂ)の(5),(6)も参照)、バッファ４０Ａから読出可能な有効データが単位読出データ量以上になると、バッファモジュール４０から後段の画像処理モジュール３８に対して読出領域の先頭アドレスが通知され、後段の画像処理モジュール３８によってバッファモジュール４０のバッファ４０Ａから画像データが読み出されることになる(図３(Ｂ)の(7)も参照)。
【００７０】
なお、個々の画像処理モジュール３８は、処理要求の入力時に指示された出力画像の処理単位jを、自モジュールで実行する画像処理の処理内容に基づき、対応する入力画像の処理単位kへ換算する機能を有している。例えば画像の拡大／縮小や圧縮／解凍等以外の画像処理を行う画像処理モジュール３８では、入力画像の処理単位k＝出力画像の処理単位jとなるが、例えば処理対象としての３次元画像データをｚ軸方向に１／ｎ倍に縮小する画像処理を行う画像処理モジュール３８では、上記の換算機能により、指示された出力画像の処理単位jが、入力画像の処理単位kの範囲＝ｎj−(ｎ−1)〜ｎjへ換算される。そして、画像処理モジュール３８からその前段のモジュールへのデータ要求時には、上記の換算機能によって得られた入力画像の処理単位の範囲内のデータ(最初は前記範囲内の先頭のデータ)が要求される。このデータ要求が、個々の画像処理モジュール３８で換算されながらより前段のモジュールへ伝播していくことで、個々のモジュール群の先頭に位置している画像処理モジュール３８は、画像データ供給部２２に記憶されている処理対象の画像データのうち、処理管理部４６から要求された処理単位のデータを最終画像処理モジュール３８から出力させるための入力画像の処理単位(の範囲)を認識することができ、認識した処理単位のデータを画像データ供給部２２から読み出す。
【００７１】
一方、処理管理部４６は、先のステップ１１４〜ステップ１２０で画像処理部５０の全てのモジュール群に対して画像処理の実行を指示すると、ステップ１１８の判定が肯定されてステップ１２２へ移行し、画像処理の実行を指示した各モジュール群の何れかから全体処理の終了(先に指示した出力画像の特定の処理単位のデータを得る画像処理の終了)が通知されたか否か判定する。そして処理管理部４６は、この判定が肯定される迄ステップ１２２を繰り返すが、この間、任意のモジュール群の任意のバッファモジュール４０からデータ要求が入力される毎に、データ要求入力元のバッファモジュール４０の前段の画像処理モジュール３８に処理要求を入力すると共に、任意のモジュール群の最終画像処理モジュール３８から処理完了通知が入力される毎に、当該最終画像処理モジュール３８に処理要求を再度入力する処理を行う。これにより、個々のモジュール群において、出力画像のうち先に指示した互いに異なる処理単位のデータを得るための画像処理が互いに独立かつ並列に行われ、各処理単位のデータが画像出力部２４に順次書き込まれる。
【００７２】
また、任意のモジュール群の最終画像処理モジュール３８から全体処理の終了(先に指示した出力画像の特定の処理単位のデータを得る画像処理の終了)が通知されると、ステップ１２２の判定が肯定されてステップ１２４へ移行し、出力画像の単一の処理単位についての画像処理が終了したモジュール群(全体処理の終了を通知した最終画像処理モジュール３８を含むモジュール群)を構成する個々のバッファモジュール４０の情報(例えば個々のバッファモジュール４０のバッファ４０Ａを構成するメモリ領域のアドレス等)を保存バッファリストに登録する(例として図６に示す保存バッファリストも参照)。
【００７３】
次のステップ１２６では、出力画像の中に何れのモジュール群でも画像処理が行われていない(未処理の)処理単位が存在しているか否か判定する。判定が肯定された場合はステップ１２８へ移行し、出力画像の単一の処理単位についての画像像処理が終了したモジュール群に設けられていたバッファモジュール４０と同数(ステップ１２４で保存バッファリストに情報を登録したバッファモジュール４０と同数)のバッファモジュール４０を追加生成する。そしてステップ１３０では、ステップ１２８で追加生成したバッファモジュール４０を、先のステップ１２４で保存バッファリストに情報を登録したバッファモジュール４０に代えて、出力画像の単一の処理単位についての画像処理が終了したモジュール群に繋ぎ直す(例として図６に示すバッファモジュールＢ4-1,Ｂ4-2も参照)。
【００７４】
また、次のステップ１３２では、出力画像の単一の処理単位についての画像処理が終了した特定のモジュール群の最終画像処理モジュール３８に対し、再初期化処理の実行を指示する。これにより、特定のモジュール群の最終画像処理モジュール３８では、先に説明した画像処理モジュール３８の初期化処理のうち、参照データ準備処理を除外した処理(例えば変数初期化処理等)から成る再初期化処理が行われる。この再初期化処理は請求項１に記載の第１の再初期化処理に対応している。また、再初期化処理を完了した最終画像処理モジュール３８は、自モジュールの前段のモジュールに対して再初期化処理の実行が指示されたことを通知する。最終画像処理モジュール３８の前段に存在しているバッファモジュール４０では、後段のモジュールから再初期化処理の実行が指示されると、先に説明した変数初期化処理やメモリ確保処理を含むバッファモジュール４０の初期化処理を行った後に、自モジュールの前段のモジュールに対して再初期化処理の実行が指示されたことを通知する。
【００７５】
これにより、図６に白抜きの矢印で示すように、再初期化処理の実行指示が特定のモジュール群の最終画像処理モジュール３８から各モジュールへ順に伝播していき、特定のモジュール群の画像処理モジュール３８では再初期化処理が、バッファモジュール４０では初期化処理が各々行われ、特定のモジュール群が、出力画像の新たな処理単位についての画像処理を実行することが可能な状態となる。なお、処理管理部４６から各モジュールに対して再初期化処理の実行を同時又はほぼ同時に指示することで、各モジュールで再初期化処理(又は初期化処理)を並列に行わせるようにしてもよい。
【００７６】
画像処理モジュール３８で行われる初期化処理に含まれる参照データ準備処理は、一般に処理に長い時間を要し、画像処理モジュール３８が行う画像処理の種類に依っては、画像データに対する画像処理よりも処理時間が長くなる場合もある。これに対し、特に３次元画像データや動画像データに対する画像処理では、３次元画像データや動画像データを構成する多数の２次元画像データに対して同一の画像処理が行われ、２次元画像データに対する画像処理の内容を個々の２次元画像データ毎に切替える必要が無いことが殆どである。上記に基づき本実施形態では、或るモジュール群で出力画像の任意の処理単位についての画像処理を終了し、未処理の処理単位が残存していた場合には、前記モジュール群の個々の画像処理モジュール３８において、初期化処理から参照データ準備処理を除外した再初期化処理を行わせるので、出力画像の任意の処理単位についての画像処理を終了したモジュール群が、出力画像の新たな処理単位についての画像処理を実行することが可能な状態に短時間で切り替わり、画像処理部５０における画像処理の処理効率を向上させることができる。
【００７７】
これにより、例えば処理対象の画像データが動画像データである場合に、画像処理部５０における画像処理の処理効率が低レベルであることが、動画像データのインタラクティブ性やリアルタイム性を阻害する要因となることを防止することができ、画像処理部５０を、動画像データや３次元画像データに対する画像処理に適用することが可能となる。
【００７８】
出力画像の任意の処理単位についての画像処理を終了したモジュール群が、上記の再初期化処理の実行指示により、出力画像の新たな処理単位についての画像処理を実行することが可能な状態になると、ステップ１３４では変数ｊを１だけインクリメントし、次のステップ１３６では、新たな処理単位についての画像処理を実行することが可能な状態になったモジュール群の最終画像処理モジュール３８に対し、出力画像の処理単位ｊのデータを得る画像処理の実行を指示し、次のステップ１３８で処理単位ｊを処理中リストに登録してステップ１２２に戻る。これにより、出力画像の任意の処理単位についての画像処理を終了したモジュール群が新たに出現する毎に、ステップ１２２の判定が肯定され、上述したステップ１２４〜ステップ１３８が繰り返される。そして、前述のステップ１２６の判定が否定されると、全てのモジュール群で画像処理が終了した後に、各モジュール群として機能するスレッドの実行を停止させ、画像処理の終了をアプリケーション３２へ通知して処理管理部処理を終了する。
【００７９】
〔第２実施形態〕
次に本発明の第２実施形態について説明する。なお、本第２実施形態は第１実施形態と同一の構成であるので、各部分に同一の符号を付して構成の説明を省略し、以下、本第２実施形態の作用を説明する。
【００８０】
第１実施形態で説明した処理管理部処理(図５)では、或るモジュール群で出力画像の任意の処理単位についての画像処理が終了する毎に、前記モジュール群の個々のバッファモジュール４０のバッファ４０Ａとして用いていたメモリ領域の情報を保存バッファリストに登録し、前記メモリ領域に記憶されている画像処理結果を保存するようにしていたが、画像処理部５０を構成するモジュール群の数や、個々のモジュール群に設けられたバッファモジュール４０の数、処理対象の画像データのデータ量が多くなるに従い、画像処理部５０での画像処理が終了する前にメモリ領域等のリソースの不足が生ずる可能性が高くなるという問題がある。
【００８１】
また、画像処理モジュール３８の中には、例えばＮ×Ｎ×Ｎ(但しＮ≧２)のフィルタ処理等のように、他のモジュール群による出力画像の他の処理単位についての画像処理の結果を参照して画像処理を行う画像処理モジュール３８が存在しているが、画像処理部５０がこの種の画像処理モジュール３８を含んで構築されたものの、アプリケーション３２によって指定されたモジュール群の生成数ｎが、上記の画像処理モジュール３８によって参照される画像処理結果の数に比して小さい場合、例えば、処理単位ｊ1についての画像処理を行うモジュール群ｉが、参照と必要とする処理単位ｊ2についての画像処理結果が得られていないために画像処理を停止している一方、処理単位ｊ2についての画像処理が、モジュール群ｉによる処理単位ｊ1についての画像処理が終了した後にモジュール群ｉに行わせる順番になっていた等のようにデッドロックが発生し、画像処理部５０における画像処理の進行が停止してしまう恐れがある。
【００８２】
本第２実施形態に係る処理管理部処理は上述した問題を解決するものであり、以下、図７を参照して本第２実施形態に係る処理管理部処理を説明する。なお、以下では処理構築部４２により、例として図８に示すように、画像データ供給部２２に接続され画像データ供給部２２から画像データを読み出す第１及び第２の画像処理モジュール３８(例えば画像処理モジュールＭ1-1,Ｍ1-2)、第１の画像処理モジュール３８又は第２の画像処理モジュール３８の後段に各々連結された第１及び第２のバッファモジュール４０(例えばバッファモジュールＢ1-1,Ｂ1-2)、第１及び第２のバッファモジュール４０の後段に各々連結された第３の画像処理モジュール３８(例えば画像処理モジュールＭ1-3)、第３の画像処理モジュール３８の後段に連結された第３のバッファモジュール４０(例えばバッファモジュールＢ1-3)、及び、同一のモジュール群及び他の複数のモジュール群の第３のバッファモジュール４０の後段に各々連結された第４の画像処理モジュール３８(例えば画像処理モジュールＭ1-4)から成るモジュール群が３個設けられた画像処理部５０が構築されたものとして説明する。上記構成において、第４の画像処理モジュール３８は「他のモジュール群による他の処理単位についての画像処理の結果を参照して画像処理を行う」画像処理モジュール３８に対応している。
【００８３】
図７に示すように、第２実施形態に係る処理管理部処理では、第１実施形態で説明した処理管理部処理(図５)と同様に、画像処理部５０を構成する各モジュール群の最終画像処理モジュール３８の情報をモジュールリストに登録し(ステップ１００)、保存バッファリスト及び処理中リストをクリア(ステップ１０２)した後に、各モジュール群の最終画像処理モジュール３８に対して初期化処理の実行を各々指示する（ステップ１０４〜ステップ１１０)。
【００８４】
一方、本第２実施形態に係る処理管理部４６(のワークフロー管理部４６Ａ)は、第１実施形態で説明したモジュールリスト、保存バッファリスト及び処理中リストに加え、出力画像の任意の処理単位についての画像処理を行うモジュール群の個々の画像処理モジュール３８が、出力画像の何れの処理単位についての画像処理を行うモジュール群の何れのバッファモジュール４０に記憶される画像処理結果を用いて画像処理を行うかを表す依存関係情報を、出力画像の個々の処理単位毎及び単一のモジュール群を構成する個々の画像処理モジュール３８毎に登録するための依存関係リスト、及び、出力画像の任意の処理単位についての画像処理が終了することで保存バッファリストに情報が登録されたバッファモジュール４０(のバッファ４０Ａとして用いていたメモリ領域)を解放する際の条件を表す解放条件情報を、出力画像の個々の処理単位毎及び単一のモジュール群を構成する個々のバッファモジュール４０毎に登録するための解放リストを保持しており、次のステップ１１１では上記の依存関係リスト及び解放リストに登録する各情報の生成・各リストへの登録を行う。
【００８５】
なお、依存関係リストに登録する依存関係情報は以下の処理で得ることができる。すなわち、特定の画像処理モジュール３８に対し、当該特定の画像処理モジュール３８における画像処理の処理内容、前記特定の画像処理モジュール３８の前段に連結されているバッファモジュール４０の数、前記特定の画像処理モジュール３８の前段に連結されている個々のバッファモジュール４０が何れのモジュール群に属しているか等に基づき、前記特定の画像処理モジュール３８を含む特定のモジュール群が出力画像の特定の処理単位についての画像処理を行う際に、特定の画像処理モジュール３８が、前段に連結されているバッファモジュール４０のうちの何れのバッファモジュール４０(出力画像の何れの処理単位についての画像処理を行うモジュール群に属するバッファモジュール４０)に記憶される画像処理結果を用いるかを判断し、判断結果を記憶することを、特定のモジュール群が出力画像の各処理単位についての画像処理を行う場合について各々行う。上記処理を単一のモジュール群内の個々の画像処理モジュール３８について各々行うことで依存関係情報を生成することができる。
【００８６】
図８には、依存関係リストに登録した依存関係情報(の一部)を模式的に示している。図８等において、Ｍx-yは出力画像の処理単位ｘについての画像処理を行うモジュール群におけるｙ番目の画像処理モジュール３８を、Ｂx-yは出力画像の処理単位ｘについての画像処理を行うモジュール群におけるｙ番目のバッファモジュール４０を各々意味し、例えば、依存関係リスト上で画像処理モジュールＭ1-3がバッファモジュールＢ1-1,Ｂ1-2と対応付けられているのは、出力画像の処理単位１についての画像処理を行うモジュール群の３番目の画像処理モジュール３８は、同モジュール群における１番目及び２番目のバッファモジュール４０に記憶されている画像処理結果を用いて画像処理を行うことを表しており、画像処理モジュールＭ2-4がバッファモジュールＢ1-3,Ｂ2-3,Ｂ3-3と対応付けられているのは、出力画像の処理単位２についての画像処理を行うモジュール群の４番目の画像処理モジュール３８は、出力画像の処理単位１についての画像処理を行うモジュール群の３番目のバッファモジュール４０、出力画像の処理単位２についての画像処理を行うモジュール群の３番目のバッファモジュール４０、及び、出力画像の処理単位３についての画像処理を行うモジュール群の３番目のバッファモジュール４０に記憶されている画像処理結果を各々用いて画像処理を行うことを表している。
【００８７】
また、解放リストに登録する解放条件情報は、例えば依存関係リストに登録した依存関係情報を、「出力画像の特定の処理単位についての画像処理を行うモジュール群の特定のバッファモジュール４０」の情報をキーとして検索し、検索キーとして用いたバッファモジュール４０の情報と対応付けられている画像処理モジュール３８の情報を全て抽出し、検索キーとして用いたバッファモジュールの情報を、抽出した個々の画像処理モジュール３８の情報と各々対応付けることを、出力画像の個々の処理単位及び単一のモジュール群内の個々のバッファモジュール４０について各々行うことで生成することができる。
【００８８】
図８には、解放リストに登録した解放条件情報(の一部)も模式的に示しており、例えば、解放リスト上でバッファモジュールＢ1-1,Ｂ1-2が画像処理モジュールＭ1-3と対応付けられているのは、バッファモジュールＢ1-1,Ｂ1-2のメモリ領域は画像処理モジュールＭ1-3における画像処理が終了すれば解放可能であることを表している。また、解放リスト上でバッファモジュールＢ2-3が画像処理モジュールＭ1-4, Ｍ2-4, Ｍ3-4と対応付けられているのは、バッファモジュールＢ2-3のメモリ領域は画像処理モジュールＭ1-4, Ｍ2-4, Ｍ3-4における画像処理が全て終了すれば解放可能であることを表している。
【００８９】
また、本第２実施形態に係る処理管理部処理では、第１実施形態で説明した処理管理部処理(図５)と同様に、次のステップ１１２〜ステップ１２０において、画像処理部５０の個々のモジュール群に対し、出力画像の互いに異なる処理単位のデータを得る画像処理の実行を順に指示するが、ステップ１１４でモジュール群ｉの最終画像処理モジュール３８に対し、出力画像の処理単位ｊのデータを得る画像処理の実行を指示した後、次のステップ１４０において、依存関係リストに登録されている依存関係情報のうち、処理単位ｊについての画像処理を行うモジュール群の個々の画像処理モジュール３８についての依存関係情報(画像処理モジュールＭj-xの依存関係情報)を参照し、参照した依存関係情報で個々の画像処理モジュールＭj-xと対応付けられているバッファモジュール４０(個々の画像処理モジュールＭj-xが画像処理結果を参照するバッファモジュール４０)が全て存在しているか否か判定する。
【００９０】
この判定が肯定された場合はステップ１１６へ移行するが、ステップ１４０の判定が否定された場合はデッドロックによって画像処理部５０における処理の進行が停止してしまう可能性があるので、ステップ１４２へ移行し、ステップ１４０で存在していないと検知したバッファモジュール４０を含むモジュール群を追加生成し、モジュールリストも更新する。またステップ１１６では、ステップ１４２で生成した追加生成したモジュール群の最終画像処理モジュール３８に対して初期化処理の実行を指示する。これにより、追加生成したモジュール群の各モジュールで初期化処理が行われ、追加生成したモジュール群が画像処理を実行可能な状態となる。そして次のステップ１４６において、モジュール群の生成数ｎにステップ１４２で追加生成したモジュール群の数を加算した後にステプ１１６へ移行する。
【００９１】
上述したモジュール群の追加生成について、例を挙げて更に説明する。図８に示す依存関係リストにおいて、画像処理モジュールＭ3-4がバッファモジュールＢ2-3,Ｂ3-3,Ｂ4-3と対応付けられていることからも明らかなように、出力画像の処理単位３についての画像処理を行うモジュール群の４番目の画像処理モジュール３８は、出力画像の処理単位２についての画像処理を行うモジュール群の３番目のバッファモジュール４０、出力画像の処理単位３についての画像処理を行うモジュール群の３番目のバッファモジュール４０、及び、出力画像の処理単位４についての画像処理を行うモジュール群の３番目のバッファモジュール４０に記憶されている画像処理結果を各々用いて画像処理を行うが、図８に示す状態の画像処理部５０には、出力画像の処理単位４についての画像処理を行うモジュール群が存在しておらず、当該モジュール群の３番目のバッファモジュール４０も存在していないので、画像処理モジュールＭ3-4はバッファモジュールＢ4-3に記憶されている画像処理結果を用いて画像処理を行うことができず、バッファモジュールＢ4-3が出現して画像処理結果がバッファモジュールＢ4-3に記憶される迄待機する必要がある。
【００９２】
この例では、出力画像の処理単位１についての画像処理を行っていたモジュール群において、処理単位１についての画像処理が終了すると、個々の画像処理モジュール３８で再初期化処理が行われた後に処理単位４についての画像処理が開始されるのでデッドロックは生じないが、例えばモジュール群の中に、より多数の処理単位についての画像処理結果を用いて画像処理を行う画像処理モジュール３８が存在していたり、当初指定されたモジュール群の生成数ｎがより少数であった場合はデッドロックが生ずる。
【００９３】
これに対して本第２実施形態に係る処理管理部処理では、上記の例において、出力画像の処理単位３についての画像処理を行うモジュール群に対して画像処理の実行を指示した際に、前記モジュール群の４番目の画像処理モジュール３８が画像処理結果を読み出す一部のバッファモジュール４０(出力画像の処理単位４についての画像処理を行うモジュール群の３番目のバッファモジュール４０)が存在していないことが検知されることでステップ１４０の判定が否定され、 例として図９に示すように、存在していないことが検知されたバッファモジュール４０(バッファモジュールＢ4-3)を含む新たなモジュール群が追加生成されると共に、追加生成されたモジュール群の個々のモジュールで初期化処理を行わせる。そしてその後、追加生成されたモジュール群(の最終画像処理モジュール３８)に対して画像処理の実行が指示されるので、構築された画像処理部５０が、他のモジュール群による出力画像の他の処理単位についての画像処理の結果を参照して画像処理を行う画像処理モジュール３８を含んで構成されている場合にも、デッドロックが発生することを確実に防止することができる。
【００９４】
なお、上述したステップ１４０〜ステップ１４６の処理、及び、先のステップ１１１で依存関係情報の生成・依存関係リストへの登録を行う処理管理部４６は、請求項７に記載の処理管理手段に対応している。また、モジュール群を追加生成するタイミングは、上記のように個々のモジュール群に対して画像処理の実行を指示する際に限られるものではなく、画像処理の実行中に何れかのモジュール群のうちの何れかの画像処理モジュール３８から、画像処理結果の読出対象のバッファモジュール４０が存在していないことが通知されたことを契機として、存在していないことが通知されたバッファモジュール４０を含むモジュール群を追加生成するようにしてもよい。
【００９５】
また、本第２実施形態に係る処理管理部処理では、第１実施形態で説明した処理管理部処理(図５)と同様に、任意のモジュール群の最終画像処理モジュール３８から、出力画像の単一の処理単位についての画像処理の終了が通知されると(ステップ１２２の判定が肯定されると)、出力画像の単一の処理単位についての画像処理が終了したモジュール群を構成する個々のバッファモジュール４０の情報を保存バッファリストに登録(ステップ１２４)した後に、次のステップ１５０において、解放リストに登録されている解放条件情報のうち、保存バッファリストに情報が登録されている個々のバッファモジュール４０の解放条件リストを各々参照し、保存バッファリストに情報が登録されているバッファモジュール４０の中に、今回の画像処理の終了通知により解放条件情報が表す解放条件を満たしたバッファモジュール４０が存在しているか否か判定する。
【００９６】
この判定が否定された場合はステップ１２６へ移行するが、ステップ１５０の判定が肯定された場合はステップ１５２へ移行し、解放条件を満たしたバッファモジュール４０のバッファ４０Ａとして用いていたメモリ領域をリソース管理部４６Ｃを通じて解放した後にステップ１５２へ移行する。例えば、出力画像の処理単位１についての画像処理を行っていたモジュール群で前記画像処理が終了したことが通知された場合、当該モジュール群のうちの画像処理モジュールＭ1-3における画像処理は終了しているので、バッファモジュールＢ1-1,Ｂ1-2のメモリ領域はステップ１５２で解放される。一方、バッファモジュールＢ1-3のメモリ領域については、画像処理モジュールＭ1-4における画像処理は終了しているものの、画像処理モジュールＭ2-4における画像処理は終了していないので、上記タイミングでは解放されず、出力画像の処理単位２についての画像処理を行っていたモジュール群で前記画像処理が終了したことが通知された場合に解放されることになる。
【００９７】
このように、本第２実施形態に係る処理管理部処理では、或るモジュール群で出力画像の任意の処理単位についての画像処理が終了したことが通知される毎に、前記モジュール群の個々のバッファモジュール４０(のバッファ４０Ａとして用いているメモリ領域)の情報を保存バッファリストに一旦登録するものの、解放リストに事前に登録した解放条件情報に基づき、保存バッファリストに情報を登録したバッファモジュール４０に記憶されている画像処理結果の参照(画像処理モジュール３８による読み出し)が終了したと判断した場合には、当該バッファモジュール４０のバッファ４０Ａとして用いていたメモリ領域を解放するので、画像処理部５０を構成するモジュール群の数や個々のモジュール群に設けられたバッファモジュール４０の数が比較的多い場合、或いは、処理対象の画像データのデータ量が比較的多い場合にも、画像処理部５０での画像処理が終了する前にメモリ領域等のリソースの不足が生ずることを防止することができる。なお、上述したステップ１５０,１５２の処理、及び、先のステップ１１１で解放条件情報の生成・解放リストへの登録を行う行う処理管理部４６は、請求項６に記載の処理管理手段に対応している。
【００９８】
また、本第２実施形態に係る処理管理部処理では、第１実施形態で説明した処理管理部処理(図５)と同様に、出力画像の或る処理単位についての画像処理を終了したモジュール群に、出力画像の別の処理単位についての画像処理を行わせる場合(出力画像の未処理の処理単位が残存していた場合)には、前記モジュール群の最終画像処理モジュールに対して再初期化処理の実行を指示することで、前記モジュール群の個々の画像処理モジュール３８では初期化処理から参照データ準備処理を除外した再初期化処理を、個々のバッファモジュール４０では初期化処理を各々行わせるので、第１実施形態と同様に、前記モジュール群が出力画像の新たな処理単位についての画像処理を実行することが可能な状態に短時間で切り替わることで、画像処理部５０における画像処理の処理効率を向上させることができる。
【００９９】
なお、上記では任意のモジュール群で出力画像の或る処理単位についての画像処理が終了した場合に、前記モジュール群の個々の画像処理モジュール３８において、初期化処理から参照データ準備処理を除外した再初期化処理を行わせる態様を説明したが、本発明はこれに限定されるものではない。一例として、図１０に示すように、画像処理部５０が互いに異なるコンピュータ(第１／第２コンピュータ)上で動作する複数の部分画像処理部から構成され、第１コンピュータと第２コンピュータが通信回線を介して接続されている場合、当該画像処理部５０のうち、隣接するモジュールとの間に通信回線が存在する特定の画像処理モジュール３８(図１０における画像処理モジュールＭ1-2,Ｍ2-2,Ｍ3-2)では、初期化処理として、相手コンピュータと暗号化情報を送受することで第１コンピュータと第２コンピュータとの間にセッションを確立するための認証処理も行われるが、従来は１フレーム分の画像処理が終了する毎に初期化処理を行っていたので、３次元画像データや動画像データを処理対象とした場合、認証処理が繰り返し行われることで画像処理の大幅に低下すると共に、セキュリティ上の理由で相手コンピュータからセッションの確立を拒否される可能性もある。このため、任意のモジュール群で出力画像の或る処理単位についての画像処理が終了する毎に、前記モジュール群のうちの上記特定の画像処理モジュール３８で行わせる再初期化処理として、参照データ準備処理に加えて上記の認証処理も初期化処理から除外した処理を行わせることが好ましい。これにより、出力画像の或る処理単位についての画像処理が終了したモジュール群が、短時間で新たな処理単位についての画像処理を実行可能な状態となり、画像処理の処理効率が向上すると共に、相手コンピュータからセッションの確立を拒否されることで、処理対象の画像データに対する画像処理が中断してしまうことも防止することができる。このように、再初期化処理として行わせる処理は、初期化処理から参照データ準備処理を除外した処理に限られるものではなく、上記の認証処理や他の処理を除外対象に加えてもよい。
【０１００】
また、上記では任意のモジュール群で出力画像の或る処理単位についての画像処理が終了した場合に、前記モジュール群の個々のバッファモジュール４０(のバッファ４０Ａとして用いていたメモリ領域)の情報を保存バッファリストに登録すると共に、新たなバッファモジュール４０を生成し、元のバッファモジュール４０に代えて画像処理部５０に接続する態様(請求項５記載の発明に相当する態様)を説明したが、これに限定されるものではなく、例えば他のモジュール群による出力画像の他の処理単位についての画像処理の結果を参照して画像処理を行う画像処理モジュール３８が画像処理部５０の中に存在しておらず、出力画像の或る処理単位についての画像処理が終了したモジュール群の個々のバッファモジュール４０に記憶されている画像処理結果に対して参照等の利用をすることがない場合には、前記個々のバッファモジュール４０において、再初期化処理として、バッファ４０Ａの参照位置を先頭に戻す処理を行わせるようにしてもよい。この場合、新たなバッファモジュール４０を生成する必要が無くなるので、画像処理の処理効率を更に向上させることができる。上記態様は請求項３記載の発明に対応しており、上記態様におけるバッファの参照位置を先頭に戻す処理は請求項３に記載の第２の再初期化処理に対応している。
【０１０１】
また、任意のモジュール群で出力画像の或る処理単位についての画像処理が終了した場合に、前記モジュール群の個々のバッファモジュール４０に記憶されている画像処理結果に対して参照等の利用をする(又はその可能性が有る)場合に、新たなバッファモジュール４０を生成し、元のバッファモジュール４０に代えて画像処理部５０に接続することに代えて、画像処理結果を記憶するための結果保存用メモリ領域を予め確保しておき、出力画像の或る処理単位についての画像処理が終了したモジュール群の個々のバッファモジュール４０に記憶されている画像処理結果を、結果保存用メモリ領域に複写して保存しておくようにしてもよい。この場合、画像処理結果を複写する処理は必要になるものの、バッファモジュール４０を繋ぎ直す等の処理が不要となる。上記態様は請求項４記載の発明に対応している。
【０１０２】
また、上記では処理対象の画像データとして３次元画像データ及び動画像データを例に挙げて説明したが、本発明は２次元画像データに対して画像処理を行う場合にも適用可能であることは言うまでもない。また、上記では互いに独立して動作可能な複数のモジュール群から成る画像処理部５０に本発明を適用した態様を説明したが、例えば図２(Ａ)〜(Ｃ)に示すように、単一のモジュール群から成る構成の画像処理部に本発明を適用することも可能である。
【０１０３】
また、上記では本発明に係る画像処理プログラムに対応する画像処理プログラム群３４がコンピュータ１０の記憶部２０等に予め記憶（インストール）されている態様を説明したが、本発明に係る画像処理プログラムは、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭ等の記録媒体に記録されている形態で提供することも可能である。
【図面の簡単な説明】
【０１０４】
【図１】本実施形態に係るコンピュータ（画像処理装置）の概略構成を示すブロック図である。
【図２】画像処理部の構成例を示すブロック図である。
【図３】(Ａ)は画像処理モジュール、(Ｂ)はバッファモジュールの概略構成及び実行される処理を各々示すブロック図である。
【図４】画像処理部の構築・初期化を説明するための概略図である。
【図５】第１実施形態に係る処理管理部処理の内容を示すフローチャートである。
【図６】画像処理部の或るモジュール群で単一の処理単位について画像処理が終了した場合の処理を説明するための概略図である。
【図７】第２実施形態に係る処理管理部処理の内容を示すフローチャートである。
【図８】第２実施形態に係る画像処理部及び各種リストの内容の一例を各々示す概略図である。。
【図９】第２実施形態におけるモジュール群の追加生成を示す概略図である。
【図１０】画像処理部が互いに異なるコンピュータ上で動作する複数のモジュール群から成る場合の初期化処理及び再初期化処理を説明するための概略図である。
【符号の説明】
【０１０５】
１０  コンピュータ
１４  メモリ
２０  記憶部
２２  画像データ供給部
２４  画像出力部
３４  画像処理プログラム群
３８  画像処理モジュール
４０  バッファモジュール
４２  処理構築部
４６  処理管理部
５０  画像処理部
【図１】
2010146055.tif 000003
【図２】
2010146055.tif 000004
【図３】
2010146055.tif 000005
【図４】
2010146055.tif 000006
【図５】
2010146055.tif 000007
【図６】
2010146055.tif 000008
【図７】
2010146055.tif 000009
【図８】
2010146055.tif 000010
【図９】
2010146055.tif 000011
【図１０】
2010146055.tif 000012