(57)【要約】【課題】  CPUが高性能化し、分散計算環境の整備が整いつつあっても、専用ハードウェアで行われてきたハードウェア画像処理のスピードに追従するのは容易ではない。【解決手段】  演算負荷が重く、分散容易度が低いフィルタ処理は、利用可能なリソースのうち、なるべく性能が高い少数のリソースに選択的、集中的にジョブを投入する。一方、色変換処理やガンマ処理は分散容易度が高いので、性能が低いリソースでも多くのリソースを投入することで処理速度の向上を見込むことができる。従って、色変換処理やガンマ処理は、多数のリソースに分散的にジョブを投入する。【選択図】    図9
2005352699.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータネットワークに接続されたコンピュータ装置であって、
前記コンピュータネットワークからタスク、および、その処理対象の画像を受信する受信手段と、
前記コンピュータネットワークに接続されたコンピュータ機器の状態および能力を管理し、前記タスクを分析して、前記タスクを分散処理させるコンピュータ機器を選定する管理手段と、
前記選定に応じて、前記画像を分割した分割画像を含むジョブを生成し、前記管理手段が選定したコンピュータ機器に送信する送信手段と、
前記ジョブを送信したコンピュータ機器から処理結果の分割画像を受信する受信手段と、
前記処理結果の分割画像を統合して一つの画像にする統合手段とを有することを特徴とするコンピュータ装置。
【請求項２】
前記分割は、前記画像を頁単位、バンド単位またはタイル状に分割することを特徴とする請求項1に記載されたコンピュータ装置。
【請求項３】
前記分割は、前記画像に付随する画像属性情報に基づき前記画像を分割することを特徴とする請求項1に記載されたコンピュータ装置。
【請求項４】
さらに、前記管理手段が選定したコンピュータ機器の状態および能力、並びに、前記タスクが示す画像処理の内容に基づき、前記生成手段、送信手段、受信手段および統合手段を制御する制御手段を有することを特徴とする請求項1から請求項3の何れかに記載されたコンピュータ装置。
【請求項５】
さらに、前記管理手段が選定したコンピュータ機器の状態および能力、前記タスクが示す画像処理の内容、並びに、前記分割画像の画像属性情報に基づき、前記生成手段、送信手段、受信手段および統合手段を制御する制御手段を有することを特徴とする請求項1から請求項3の何れかに記載されたコンピュータ装置。
【請求項６】
前記制御手段は、画像処理の負荷情報を示すテーブルに基づき、前記制御を行うことを特徴とする請求項4または請求項5に記載されたコンピュータ装置。
【請求項７】
前記制御手段は、画像処理の分散処理の容易度を示すテーブルに基づき、前記制御を行うことを特徴とする請求項4または請求項5に記載されたコンピュータ装置。
【請求項８】
前記制御手段は、前記タスクが示す画像処理の処理順に基づき、前記制御を行うことを特徴とする請求項4または請求項5に記載されたコンピュータ装置。
【請求項９】
さらに、前記統合手段によって統合した画像を含むジョブをプリンタへ出力する出力手段を有することを特徴とする請求項1から請求項8の何れかに記載されたコンピュータ装置。
【請求項１０】
コンピュータネットワークに接続されたコンピュータ装置の制御方法であって、
前記コンピュータネットワークからタスク、および、前記タスクの処理対象の画像を受信し、
前記コンピュータネットワークに接続されたコンピュータ機器の状態および能力、および、前記タスクの分析結果から前記タスクを分散処理させるコンピュータ機器を選定し、
前記選定に応じて、前記画像を分割した分割画像を含むジョブを生成し、
前記選定したコンピュータ機器に前記ジョブを送信し、
前記ジョブを送信したコンピュータ機器から処理結果の分割画像を受信し、
前記処理結果の分割画像を統合して一つの画像にすることを特徴とする制御方法。
【請求項１１】
コンピュータ装置の制御方法であって、
画像データおよび前記画像データに施す画像処理を示すリストデータを受信し、
利用可能なリソース群をチェックし、
前記利用可能なリソース群と、前記リストデータが示す各画像処理の演算負荷、分散容易性を示す情報から、前記画像データを分散処理させるリソースを決定することを特徴とする制御方法。
【請求項１２】
コンピュータ装置を制御して、請求項10または請求項11に記載された制御を実現することを特徴とするプログラム。
【請求項１３】
請求項12に記載されたプログラムが記録されたことを特徴とする記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はコンピュータ装置およびその制御方法に関し、例えば、コンピュータネットワーク上に分散された情報処理装置などの画像処理モジュールを利用して画像処理を行うグリッドコンピューティングの負荷分散システムに関する。
【背景技術】
【０００２】
オフィス用の事務機として、コピー機能、プリンタ機能、ファクシミリ機能を併せもつディジタル複合機（Multi-Functional Printer、以下「MFP」と呼ぶ）が世に出て久しい。MFPにおいて、コピー機能はスキャナで読み取った画像を画像処理してプリンタに出力することで実現され、プリンタ機能はホストコンピュータで生成された印刷データを受信し、レンダリングし、画像処理してプリンタに出力することで実現される。
【０００３】
近年、MFPのスキャナやプリンタの画像解像度は600 dpiまたは1200 dpiなどで、一分間当りの処理枚数は、速いものではカラー50枚、モノクロ100枚にも及ぶ。このため、大容量の画像データを高速に処理する必要があり、MFPの画像処理は専用の画像処理用LSI（ASIC）を用いたハードウェアで行われる。
【０００４】
ハードウェアによる画像処理（以下「ハードウェア画像処理」と呼ぶ）、高速性への要求を満たせる反面、変更し難く柔軟性に欠ける、コストが高い、などのデメリットがある。一旦、LSI化した画像処理のロジックに若干の変更を加える場合でも、それには膨大な時間とコストがかかる。このため、様々な画像処理を、より柔軟性の高いソフトウェアで行うことが検討されている。ソフトウェアによる画像処理（以下「ソフトウェア画像処理」と呼ぶ）を実現する場合、大規模な画像データを分割して分散処理することが高速化を図る際に有効であり、複数の提案がなされている。
【０００５】
近年、PCクラスタリングやグリッドコンピューティングなどの並列分散処理コンピューティング技術が発展し、これらの技術の発展もソフトウェア画像処理を実現する上で有利に働く。また、グリッドコンピューティング技術ではネットワーク上の計算資源を使用するための手続きが容易で、ネットワーク上にグリッドが構築されていれば極めて簡単に計算資源が利用できるというメリットがある。このような状況から、ソフトウェア画像処理の柔軟性、分散処理技術、とくにグリッドコンピューティング技術から得られる運用の容易性というメリットを享受可能な画像処理システムを考えることができる。
【０００６】
しかし、いくらCPUが高性能化し、分散計算環境の整備が整いつつあっても、専用ハードウェアで行われてきたハードウェア画像処理のスピードに追従するのは容易ではない。並列分散処理環境においても、できるだけ高速な処理を行うようにシステム構成を行うことが不可欠である。
【０００７】
【特許文献１】特開平10-055434号公報
【非特許文献１】IBMプロフェッショナル論文  「グリッド・コンピューティングの商用システムへの適用性」＜http://www-6.ibm.com/jp/provision/no36/pdf/36_ppr1.pdf＞
【発明の開示】
【発明が解決しようとする課題】
【０００８】
本発明は、上述の問題を個々にまたはまとめて解決するもので、画像処理を分散処理する場合の高速化を目的とする。
【課題を解決するための手段】
【０００９】
本発明は、前記の目的を達成する一手段として、以下の構成を備える。
【００１０】
本発明のコンピュータ装置は、コンピュータネットワークに接続されたコンピュータ装置であって、前記コンピュータネットワークからタスク、および、その処理対象の画像を受信する受信手段と、前記コンピュータネットワークに接続されたコンピュータ機器の状態および能力を管理し、前記タスクを分析して、前記タスクを分散処理させるコンピュータ機器を選定する管理手段と、前記選定に応じて、前記画像を分割した分割画像を含むジョブを生成し、前記管理手段が選定したコンピュータ機器に送信する送信手段と、前記ジョブを送信したコンピュータ機器から処理結果の分割画像を受信する受信手段と、前記処理結果の分割画像を統合して一つの画像にする統合手段とを有することを特徴とする。
【００１１】
本発明の制御方法は、コンピュータネットワークに接続されたコンピュータ装置の制御方法であって、前記コンピュータネットワークからタスク、および、前記タスクの処理対象の画像を受信し、前記コンピュータネットワークに接続されたコンピュータ機器の状態および能力、および、前記タスクの分析結果から前記タスクを分散処理させるコンピュータ機器を選定し、前記選定に応じて、前記画像を分割した分割画像を含むジョブを生成し、前記選定したコンピュータ機器に前記ジョブを送信し、前記ジョブを送信したコンピュータ機器から処理結果の分割画像を受信し、前記処理結果の分割画像を統合して一つの画像にすることを特徴とする。
【００１２】
また、情報処理装置の制御方法であって、画像データおよび前記画像データに施す画像処理を示すリストデータを受信し、利用可能なリソース群をチェックし、前記利用可能なリソース群と、前記リストデータが示す各画像処理の演算負荷、分散容易性を示す情報から、前記画像データを分散処理させるリソースを決定することを特徴とする。
【発明の効果】
【００１３】
本発明によれば、画像処理の分散処理を高速化することができる。
【発明を実施するための最良の形態】
【００１４】
以下、図面を参照して、本発明に好適な一実施例を詳細に説明する。
【００１５】
［グリッドコンピューティング］
図1はグリッドコンピューティング(grid computing)のアーキテクチャを説明する図である。グリッドには数種類あるが、ここで説明するのはデスクトップグリッドと呼ばれる、デスクトップPCなどのCPUの空き時間を利用してジョブを実行するタイプである。
【００１６】
図1に示すクライアントPCは、ユーザの指示に従い、ジョブを投入し(S1)、その要求（ジョブ）はタスクマネージャ（Task Manager、以下「TM」と略す）に渡され、TMはその内容（ジョブリクエスト）をダイナミックジョブスケジューラ（Dynamic Job Scheduler、以下「DJS」と略す）に伝える(S2)。グリッドコンピューティングシステム全体のリソースを管理するDJSは、最適なリソースのブローカ（Broker）を選択してTMに通知する(S3)。ここで、リソースとはPCのCPUの空き状態のことを言う。
【００１７】
PC内のブローカは、同じくPC内のリソースマネージャ（Resource Manager、以下「RM」と略す）が吸い上げたリソースの情報をDJSに登録する。そして、TMから要求があるとそれに従い、RMにジョブを投入し(S4)、ジョブの完了（および処理結果）をTMに通知する(S5)。TMは、DSJが選択したブローカにジョブを投入した以後、そのジョブの進行状況のモニタリングを実施し、完了通知（および処理結果）をブローカから受信すると(S6)、クライアントPCに完了通知（および処理結果）を通知する(S7)。
【００１８】
また、RMは、リソースの情報をブローカに通知するとともに、ブローカの指示によりジョブをリソースに投入する。さらに、定期的にリソースの状態を調べて、リソースに変化・異常（例えば故障、他のジョブを受け付けた等）があれば、その旨をブローカに通知する。
【００１９】
このような仕組みにより、最適な（通常は利用されていない）CPUなどのリソースにジョブを配分することで分散処理を可能にするのが、デスクトップグリッドコンピューティングの実現形である。
【００２０】
図2はデスクトップグリッドコンピューティングの技術をプリンタ記述言語(PDL)処理に適用する場合の構成例を説明する図である。図1の説明では、グリッドを構成する各モジュールを別個のものとして扱ったが、デスクトップグリッドコンピューティングの技術を印刷装置に適用する場合、複数のモジュールが一つの機器の中に存在するのが一般的だと考えられる。
【００２１】
図2のクライアントPC 901は、プリンタ902に印刷を指示（プリントジョブの投入）する。プリンタ902はTMおよびDJSの機能を有し（つまり分散処理のホストマシンである）、PC 903から905はブローカおよびRMの機能をもつ。この構成により、例えばネットワーク905に接続された三台のPCを用いるグリッドコンピューティングによる分散処理が可能になる。
【００２２】
クライアントPC 901から投入されたジョブ（PDL形式のデータの印刷ジョブ）は、ホストマシンであるプリンタ902のTMおよびDJSによって、例えば第一頁はPC 903へ、第二頁はPC 904へ、第三頁はPC 905へといった具合に各リソースに分配され、PDLデータから画像データへの展開処理が実行される。その際、PDLデータのイメージ展開処理用のアプリケーションプログラムも同時にプリンタ902から各リソースへ送信されるようにする。各PCによってPDLデータから展開された画像（つまり、第一から第三頁の各頁の画像の処理結果）は、ホストマシンであるプリンタ902によって収集されて、三頁の画像906が印刷出力され、クライアントPC 901には印刷の終了が通知される。
【００２３】
勿論、この分散処理の対象リソースは四台以上のPCであってもよいし、ジョブ投入元のクライアントPC 901のリソースも利用することができるし、ネットワーク905上の他のプリンタのリソースを対象にしてもよい。
【００２４】
以下では、グリッドコンピューティングの技術を利用して、ネットワーク上の画像処理モジュールに高速な分散処理を行わせる実施例を詳細に説明する。
【実施例１】
【００２５】
以下では、MFPのコピー機能をグリッドコンピューティングのフレームワークと画像入出力装置を用いて実現する画像処理システムを説明する。
【００２６】
［画像処理システム］
図3は実施例1の画像処理システムの構成例を示すブロック図である。
【００２７】
ネットワーク10には、クライアントPC 11、サーバ13、処理ノードPC 151〜15N、プリンタ141〜15Mがそれぞれ接続され、クライアントPC 11にはUSB(Universal Serial Bus)を介してスキャナ12が接続されている。この画像処理システムにおいて、クライアントPC 11は、ユーザンタフェイスを利用者に提供し、ユーザの指示を受けて、ジョブを実行するための機器であり、かつ、スキャナ12を制御して原稿の画像を読み込む役割を担う。
【００２８】
クライアントPC 11は、少なくとも、CPU、RAM、ROM、ハードディスクドライブ(HDD)、ネットワークインターフェイス(I/F)、ディスプレイインタフェイス、USB（汎用シリアルバス）ポート、並びに、ユーザが情報や指示を入力するキーボード、マウスを有する汎用のコンピュータシステムで、同PC 11上ではWindows(R)やLinuxなどの基本OSが動作している。ネットワーク10に接続されたサーバ13や他の処理ノードPC 151〜15Nも、クライアントPC 11と同様に汎用のコンピュータシステムで、Windows(R)やLinuxなどの基本OSによって動作する。
【００２９】
スキャナ12は、クライアントPC 11のOS上で動作するアプリケーションからコールされるスキャナドライバによって、キーボードやマウスおよびアプリケーションを介して入力されるユーザの指示に従い、スキャナ12の原稿ガラス面上に置かれた原稿の画像をCCDにより画像信号に変換し、画像信号をUSBを経由でクライアントPC 11に入力する。なお、実施例1において、スキャナ12は、読み取り解像度600 dpiのカラースキャナであるとし、CCDはR、G、Bの各色カラーフィルタを有し、色分解した各色成分の画像信号（各8ビット）をクライアントPC 11に入力する。勿論、画像信号のビット数および解像度はこれに限るものではない。
【００３０】
画像信号を入力したクライアントPC 11は、スキャナドライバ、あるいは、スキャナドライバを使用するアプリケーションにより、スキャナ12に固有のRGB色信号をデバイスに独立な色空間の画像信号に変換することが多い。実施例1では、クライアントPC 11は、スキャナ12から入力したRGB画像信号をsRGB色空間の画像信号（以下「sRGB画像信号」と呼ぶ）に変換することにする。勿論、他のデバイスに独立な色空間（LabやYCrCbなど）の画像信号に変換しても構わない。こうして、スキャナ12によって読み込まれ、クライアントPC 11に入力された画像信号は、sRGB画像信号としてクライアントPC11のRAMあるいはHDDに格納される。
【００３１】
サーバ13および処理ノードPC 151〜15Nでは、後述するグリッドコンピューティング用のソフトウェアモジュールが動作し、ネットワーク10と合わせてグリッドを構成している。つまり、実施例1において、MFPにおける画像処理装置は、グリッド上のソフトウェアモジュールとして構築される。
【００３２】
［プリンタ］
図4はプリンタ141〜14Mの構成例を示すブロック図である。
【００３３】
メインCPU 201は、プリンタ14全体の制御を行う。ネットワーク制御部202は、ネットワーク10上の他の機器と通信して、例えばクライアントPC 11やサーバ13からプリント要求コマンドおよびプリントデータや、保存要求コマンドおよび保存データなどを受信し、メインCPU 201に渡す。周辺制御部203は、システムバス211を介してメインCPU 201に接続される、メモリ204からプリンタエンジン210の制御を行う。
【００３４】
メモリ204は、RAMなどで構成され、プリントすべきビットマップデータなどを一時的に保存するとともに、実行プログラムのプログラムデータやプログラム実行中の中間コードや中間データなどを保存する主記憶として動作するメモリである。ROM 205は、プリンタ14本体の起動などの初期制御を含めた、装置全体の制御を行う制御プログラムなどを保存する読み出し専用のメモリである。
【００３５】
パネル207には、プリンタ14のオペレータが意図する操作コマンドに対応するボタンや、オペレータが入力した操作コマンドなどに対するプリンタ14の内部処理の進捗状況や内部状態などを表示するモニタが配置されている。キー208は、プリンタ14のオペレータが意図する制御リクエストや、パネル207の表示切り替え指示を受け付ける入力デバイスである。エンジン制御部209は、プリンタエンジン210の駆動やプリント出力データの転送などの制御を行う。プリンタエンジン210は、プリント出力画像を形成するプリンタ機構部である。
【００３６】
プリンタ14は、CMYK各色1ビットでハーフトーン処理されたビットマップ画像データを頁単位あるいはバンド単位に受信し、プリンタエンジン210により、受信した画像データをプリントする。勿論、ハーフトーン処理した画像データのビット数は各色1ビットに限らず、2ビットや4ビットなどの多値データであっても構わない。つまり、プリンタ14は、受信した画像データをプリンタエンジン210でプリントする機能を備えていればよく、画像処理部をもたないので非常に安価な構成が可能である。
【００３７】
［グリッドコンピューティングのアーキテクチャとの対応］
実施例1の画像処理システムと、図1に示したグリッドコンピューティングのアーキテクチャと対応関係の概要を説明する。
【００３８】
図3に示すのクライアントPC 11は、図1のクライアントPCに対応し、タスク要求を投入する、ユーザのクライアントマシンである。つまり、タスク要求とは、クライアントPC 11が、スキャナ12によって読み取った原稿画像の画像データに、ユーザが指定したプリンタ（141〜14Mの何れか）に適した画像処理を施し、画像処理を施した画像データをユーザが指定したプリンタに送信してプリント動作を行わせることである。
【００３９】
図3に示すサーバ13上では、TMおよびDJSが動作し、クライアントPC 11からタスク要求が投入される。TMは、クライアントPC 11のタスク要求（ジョブ）とともに画像データを受信し、画像データを適宜分割して、DJSが選択したブローカに分割した画像データとともにジョブを投入する。ここで、ジョブとは、分割された画像データに対して所定の画像処理を行うことである。ジョブが投入されたブローカは、リソースである処理ノードPC 151〜15Nにジョブを投入する。処理ノードPC 151〜15Nはそれぞれ、ジョブに従って画像処理モジュールを動作させ、分割されて供給される画像データを処理する。ブローカは、リソースである処理ノードPC 151〜15Nの画像処理が終了すると、完了通知およびその処理結果をTMに返す。
【００４０】
TMは、ジョブを投入した全ブローカのリソースにおいて画像処理が終了すると、分割した画像データの処理結果を統合し、統合した画像データをユーザが指定したプリンタ14に送信し、タスク要求を完了する。
【００４１】
［処理ノードPCの画像処理］
図5は処理ノードPC 15が実行する画像処理の概念的なブロック図である。実際には、各画像処理ブロックは、ソフトウェア処理モジュールとして各処理ノードPC 151〜15Nが保持する。
【００４２】
処理ノードPC 15は、TMおよびブローカを介してクライアントPC 11から供給されるsRGB画像データを、色変換処理部401により、ユーザが指定したプリンタ（141〜14Mの何れか）のCMYK画像データへ変換する。この変換は、既知のルックアップテーブル(LUT)を用いた補間によるものとする。すなわち、入力画像のRGB値の各上位4ビットを三次元LUTのアドレス値として、そのアドレスのCMYK値を取得し、各下位4ビットを用いて補間係数を作成し、LUTから取得したCMYK値を補間演算して、各色8ビットのCMYK値を導き出す。三次元LUTは、クライアントPC 11のタスク投入時に指定され、ジョブとともに、そのLUTが色変換処理部401に渡され設定される。
【００４３】
次に、処理ノードPC 15は、CMYK画像データを、フィルタ処理部402により空間フィルタ処理する。空間フィルタ処理は、例えば、5×5のフィルタ係数と画像データの積和をとる畳み込み演算として実現され、画像信号の周波数応答を調整するために行う。画像をよりシャープにするにはエッジ部を強調するような高域強調フィルタリング、画像をより滑らかにするにはスムージングのような低域強調フィルタリングを行う。どのようなフィルタリングを行うかは、フィルタ処理部402の5×5フィルタ係数にセットする係数値によって決定されるが、これらの係数は、クライアントPC 11のタスク投入時に指定され、ジョブとともに、その指定係数がフィルタ処理部402に渡され設定される。
【００４４】
次に、処理ノードPC 15は、ガンマ処理部403により、CMYK画像データにプリンタ階調特性の調整（階調補正）を施す。階調補正は、CMYKの各色成分ごとに一次元LUT演算によって行うが、より具体的には、C、M、Y、Kの入力値0〜255に対して、予め計算された出力値0〜255を出力する。一次元LUTは、クライアントPC 11のタスク投入時に指定され、ジョブとともに、そのLUTがガンマ処理部403に渡され設定される。
【００４５】
次に、処理ノードPC 15は、階調補正されたCMYK画像信号を、ハーフトーン処理部404により、1ビットのハーフトーン画像に変換する。この処理には、様々な既知の方法があるが、ここでは閾値マトリクスと画素値を比較するスクリーン処理を行うものとする。
【００４６】
処理ノードPC 15は、これらの画像処理ブロックをそれぞれソフトウェアモジュールとして有し、ソフトウェアモジュールは、、TMの依頼に応じたブローカによって起動される。なお、複数のプリンタ機種に対応する、色変換処理部401およびガンマ変換処理部403が使用するLUT、並びに、フィルタ処理部のフィルタ係数を予め処理ノードPC 15のHDDなどに格納しておき、ジョブに含まれるプリンタ指定やフィルタリング指定に応じて適切なLUTやフィルタ係数をHDDなどから読み出して、該当する処理部に設定してもよい。
【００４７】
［分散処理］
図6は画像処理システムの処理を説明するフローチャートである。
【００４８】
クライアントPC 11のユーザインタフェイス(UI)により、原稿画像のスキャンおよびプリントが指示されるとタスクが開始される。タスクが開始されると、クライアントPC 11は、スキャナ12を制御して原稿画像を読み取り(S101)、タスクを生成し(S102)、サーバ13上で稼働するTMに読み取った画像データとともタスクを投入する(S103)。
【００４９】
図7はタスク内容を示すタスクリストの記述を示す図である。
【００５０】
タスクリストは、そのタスクで行うべきジョブ（本実施例では、画像処理の種類、プリント処理）の内容をリスト化し、各ジョブはパラメータを保持することができる。図7に示すタスクリストの例では、フィルタ処理の指示602におけるスムージングの指定603や、プリンタ出力の指示606におけるプリンタの指定607がパラメータ例である。これらのパラメータは、クライアントPC 11のUI上でユーザによって指定される。また、これらのパラメータに付随して上述したLUTやフィルタ係数がタスクに添付される。
【００５１】
次に、サーバ13がタスクを受信すると(S201)、TMは受信したタスクの分析をDJSに依頼し(S202)、DJSは利用可能なリソース（処理ノードPC）をチェックし(S203)、利用可能なリソースと、後述する演算負荷および分散容易度の指数を照らし合わせて、スケジューリングを行う(S204)。
【００５２】
図8は、予め、画像処理ごとに定義された演算負荷指数と分散容易度指数のテーブル例を示し、このテーブルはサーバ13のHDDなどに保持されている。
【００５３】
例えば5×5のフィルタ処理（積和演算）は、一画素の処理をするのに25回の乗算と一回の加算を要する。さらに、画像処理を分散させるために画像を分割すると、分割領域をオーバラップさせるため、処理結果を統合するにはオーバラップ分を取り除く必要がある。このためフィルタ処理は分散処理が容易とは言えない。フィルタ処理に対して色変換処理はLUT演算であるため、テーブルのルックアップと補間演算で済み、公知の四面体補間であれば演算は四回の乗算と一回の加算で済む。その上、色変換処理は一画素ごとの処理であるから、画像を分割・分散処理・統合する際に無駄な処理（オーバラップの除去など）を行う必要がない。演算負荷指数と分散容易度指数は、このような画像処理の特性を鑑みて定義する。
【００５４】
図9はスケジューリングストラテジを説明する図である。
【００５５】
図9(a)は、図7に示すタスクリストの処理順に演算負荷指数を示している。一方、図8に示すテーブルを参照すると、フィルタ処理は演算負荷は重く、分散容易度は低い。従って、フィルタ処理は、利用可能なリソースのうち、なるべく性能が高い少数のリソースに選択的、集中的にジョブを投入する（図9(b)参照）。
【００５６】
一方、色変換処理やガンマ処理は分散容易度が高いので、性能が低いリソースでも多くのリソースを投入することで処理速度の向上を見込むことができる。従って、色変換処理やガンマ処理は、多数のリソースに分散的にジョブを投入する（図9(b)参照）。
【００５７】
ところで、処理には順番があり、前の処理が終了しないと次の処理は開始できない。この点を考慮して、上流の処理にはより多くのリソースにジョブを投入することが望ましい。図9(c)は、図9(b)に比べて、上流の処理に当たる色変換処理に多数のリソースを割り当てた様子を示している。
【００５８】
TMは、決定されたスケジュールに従い、処理すべき画像を頁単位またはバンド単位に分割し(S205)、リソースに対応するブローカ（処理ノードPC 151〜N）にジョブを投入する(S206)。
【００５９】
処理ノードPC 151〜Nのブローカは、ジョブを受信すると(S301)、受信したジョブに指定された画像処理を行い(S302)、処理が終わると、完了通知とともに処理結果をTMに返す(S303)。
【００６０】
TMは、完了通知を受信すると(S207)、処理ノードPC 151〜Nから受信した処理結果を統合し(S208)、タスクリストに記述された全画像処理が終了したか否かを判定し(S209)、未了であれば処理をステップS105へ戻して次の画像処理の分散処理を実行し、終了であればタスクリストにしていされたプリンタ14Mへジョブを投入する(S210)。
【００６１】
プリンタ14Mは、ジョブを受信すると(S401)、ジョブとともに受信した画像データに基づき画像をプリントし（S402)、プリントが終了すると完了通知をTMに返す(S403)。
【００６２】
TMは、完了通知を受信すると(S211)、完了通知をクライアントPC 11に返す(S212)。クライアントPC 11は、完了通知を受信すると(S104)、UIにプリントが終了した旨などを表示しタスクを終了する。
【００６３】
このように、画像処理の特性に応じて、画像処理を分散することで、分散に伴うオーバヘッドを軽減して高速な分散処理にすることができる。また、クライアントPC 11のユーザは、複雑な手順を踏むことなく、クライアントPC 11、スキャナ12およびネットワーク10に接続されたプリンタ141〜Mの何れか（通常、ユーザにとって好都合なプリンタが選ばれる）を使用して、原稿画像をコピーすることができる。
【実施例２】
【００６４】
以下、本発明にかかる実施例2を説明するが、実施例2において、実施例1と略同様の構成については、同一符号を付して、その詳細説明を省略する。
【００６５】
実施例2では、処理ノードPC 151〜Nで行う画像処理を、処理する画像の属性に応じて切り替える例を説明する。
【００６６】
実施例2において、図5に示す色変換処理部401が用いるLUTとして格子点数16×16×16と、8×8×8の二つのLUTを用意して、文字領域に属する画素は色再現性を多少落としても画像劣化が目立たないから8×8×8のLUTを使用し、文字以外の写真領域に属する画素は16×16×16のLUTを使用するようにする。つまり、画素ごとの領域属性に従い、色変換用のLUTを切り替える。
【００６７】
また、ハーフトーン処理部404には、スクリーン処理のほかに誤差拡散処理を行う処理ブロックを設け、文字領域属性をもつ画素は誤差拡散処理して、スクリーン処理によるジャギーを防止し、文字以外の写真領域属性をもつ画素はスクリーン処理を適用する。つまり、画素ごとの領域属性に従い、処理ブロックを切り替える。
【００６８】
このような画像処理構成にすると、色変換処理部401の処理は、格子点数が小さいLUTの方がテーブルのルックアップに要する時間が短くなり、演算負荷が小さくなる。また、ハーフトーン処理部404では、誤差拡散処理は、閾値マトリクスの加算処理を行うために、スクリーン処理よりも演算負荷が大きくなる。従って、実施例1で説明した図8に示す演算負荷指数および分散容易度指数を示すテーブルは、文字領域用の画像処理と写真領域用の画像処理の二つのパターンを含むことになり、図10に示すようになる。
【００６９】
実施例2のクライアントPC 11は、原稿画像をスキャナドライバを介して取得した後、原稿画像を公知の手法によって像域分離し、各画素に対して、文字領域か写真領域かを示す領域属性データを割り当てる。
【００７０】
TMは、クライアントPC 11から画像データおよび領域属性データとともに受け取ったタスクの分析をDJSに依頼するが、DJSは、文字領域と写真領域に画像を分割し、文字領域の画像は図10(b)に示す文字領域用テーブルに従ってスケジューリングし、写真領域の画像は図10(a)に示す写真領域用テーブルに従ってスケジューリングする。勿論、画像領域ごとに画像を分割する際に、さらに、頁単位、バンド単位の分割を組み合わせても構わない。あるいは、画像を所定のサイズのタイル状あるいはバンド状に分割して、分割した画像中の領域属性を調査し、文字属性が多い場合は図10(b)の文字領域用テーブルに従うスケジューリング、写真属性が多い場合は図10(a)の写真領域用テーブルに従うスケジューリングを行っても構わない。
【００７１】
［変形例］
上記の実施例ではコピー機能を実行するタスクを例として説明したが、スキャン画像を送信するのではなく、プリントデータをクライアントPC 11でレンダリングしてタスクとして投入する場合にも、上記の実施例は適用できる。勿論、クライアントPC 11は、レンダリング前のデータをタスクとして投入し、グリッド内の処理ノードPC 151〜Nにレンダリングおよび画像処理させ、プリントすることもできる。
【００７２】
［他の実施例］
なお、本発明は、複数の機器（例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、ファクシミリ装置など）に適用してもよい。
【００７３】
また、本発明の目的は、前述した実施例の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体（または記録媒体）を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはCPUやMPU）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施例の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施例の機能が実現される場合も含まれることは言うまでもない。
【００７４】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施例の機能が実現される場合も含まれることは言うまでもない。
【００７５】
本発明を上記記憶媒体に適用する場合、その記憶媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
【図面の簡単な説明】
【００７６】
【図１】グリッドコンピューティング(grid computing)のアーキテクチャを説明する図、
【図２】デスクトップグリッドコンピューティングの技術をプリンタ記述言語(PDL)処理に適用する場合の構成例を説明する図、
【図３】実施例1の画像処理システムの構成例を示すブロック図、
【図４】プリンタの構成例を示すブロック図、
【図５】処理ノードPCが実行する画像処理の概念的なブロック図、
【図６】画像処理システムの処理を説明するフローチャート、
【図７】タスク内容を示すタスクリストの記述を示す図、
【図８】画像処理ごとに定義された演算負荷指数と分散容易度指数のテーブル例を示す図、
【図９】スケジューリングストラテジを説明する図、
【図１０】実施例2の演算負荷指数と分散容易度指数のテーブル例を示す図である。
【図１】
2005352699.tif 000003
【図２】
2005352699.tif 000004
【図３】
2005352699.tif 000005
【図４】
2005352699.tif 000006
【図５】
2005352699.tif 000007
【図６】
2005352699.tif 000008
【図７】
2005352699.tif 000009
【図８】
2005352699.tif 000010
【図９】
2005352699.tif 000011
【図１０】
2005352699.tif 000012
【手続補正書】
【提出日】平成17年6月13日(2005.6.13)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンピュータネットワークに接続される情報処理装置であって、
前記コンピュータネットワークからタスク、および、その処理対象の画像を受信する第一の受信手段と、
前記コンピュータネットワークに接続されたコンピュータ機器の状態および能力を管理し、前記タスクを分析して、前記タスクを分散処理させるコンピュータ機器を選定する管理手段と、
前記選定に応じて、前記画像を分割した分割画像を含むジョブを生成し、前記管理手段が選定したコンピュータ機器に送信する送信手段と、
前記ジョブを送信したコンピュータ機器から処理結果の分割画像を受信する第二の受信手段と、
前記処理結果の分割画像を統合して一つの画像にする統合手段とを有することを特徴とする情報処理装置。
【請求項２】
前記送信手段は、前記画像を頁単位、バンド単位またはタイル状に分割することを特徴とする請求項1に記載された情報処理装置。
【請求項３】
前記送信手段は、前記画像に付随する画像属性情報に基づき前記画像を分割することを特徴とする請求項1に記載された情報処理装置。
【請求項４】
さらに、前記管理手段が選定したコンピュータ機器の状態および能力、並びに、前記タスクが示す画像処理の内容に基づき、前記送信手段、第二の受信手段および統合手段を制御する制御手段を有することを特徴とする請求項1から請求項3の何れかに記載された情報処理装置。
【請求項５】
さらに、前記管理手段が選定したコンピュータ機器の状態および能力、前記タスクが示す画像処理の内容、並びに、前記分割画像の画像属性情報に基づき、前記送信手段、第二の受信手段および統合手段を制御する制御手段を有することを特徴とする請求項1から請求項3の何れかに記載された情報処理装置。
【請求項６】
前記制御手段は、画像処理の負荷情報を示すテーブルに基づき、前記制御を行うことを特徴とする請求項4または請求項5に記載された情報処理装置。
【請求項７】
前記制御手段は、画像処理の分散処理の容易度を示すテーブルに基づき、前記制御を行うことを特徴とする請求項4または請求項5に記載された情報処理装置。
【請求項８】
前記制御手段は、前記タスクが示す画像処理の処理順に基づき、前記制御を行うことを特徴とする請求項4または請求項5に記載された情報処理装置。
【請求項９】
前記統合手段によって統合した画像を含むジョブをプリンタへ出力する出力手段を有することを特徴とする請求項1から請求項8の何れかに記載された情報処理装置。
【請求項１０】
コンピュータネットワークに接続される情報処理装置の制御方法であって、
前記コンピュータネットワークからタスク、および、その処理対象の画像を受信し、
前記コンピュータネットワークに接続されたコンピュータ機器の状態および能力を管理し、前記タスクを分析して、前記タスクを分散処理させるコンピュータ機器を選定し、
前記選定に応じて、前記画像を分割した分割画像を含むジョブを生成し、前記選定したコンピュータ機器に送信し、
前記ジョブを送信したコンピュータ機器から処理結果の分割画像を受信し、
前記処理結果の分割画像を統合して一つの画像することを特徴とする制御方法。
【請求項１１】
コンピュータネットワークに接続される情報処理装置の制御方法であって、
画像データおよび前記画像データに施す画像処理を示すリストデータを受信し、
利用可能なリソース群をチェックし、
前記利用可能なリソース群と、前記リストデータが示す各画像処理の演算負荷、分散容易性を示す情報から、前記画像データを分散処理させるリソースを決定することを特徴とする制御方法。
【請求項１２】
コンピュータネットワークに接続される情報処理装置であって、
前記コンピュータネットワークに接続されたデバイスの状態および能力を管理し、タスクを分析し、前記分析の結果に基づき、前記タスクの第一のタスクを処理する少なくとも一つのデバイスを選択し、前記タスクの第二のタスクを処理する少なくとも一つのデバイスを選択する管理手段と、
画像から分割した画像を含む複数のジョブを生成して、前記選択したデバイスに前記ジョブを送信する送信手段と、
前記ジョブを送信したデバイスから前記分割画像に対応する処理画像を受信する受信手段と、
前記受信手段によって受信した複数の前記処理画像を一つの画像に統合する統合手段とを有することを特徴とする情報処理装置。
【請求項１３】
コンピュータネットワークに接続される情報処理装置の情報処理方法であって、
前記コンピュータネットワークに接続されたデバイスの状態および能力を管理し、
タスクを分析し、前記分析の結果に基づき、前記タスクの第一のタスクを処理する少なくとも一つのデバイスを選択し、前記タスクの第二のタスクを処理する少なくとも一つのデバイスを選択し、
画像から分割した画像を含む複数のジョブを生成して、前記選択したデバイスに前記ジョブを送信し、
前記ジョブを送信したデバイスから前記分割画像に対応する処理画像を受信し、
前記受信した複数の前記処理画像を一つの画像に統合することを特徴とする情報処理方法。
【請求項１４】
情報処理装置を制御して、請求項10または請求項11に記載された制御を実現することを特徴とするプログラム。
【請求項１５】
情報処理装置を制御して、請求項13に記載された情報処理を実現することを特徴とするプログラム。
【請求項１６】
請求項14または請求項15に記載されたプログラムが記録されたことを特徴とする記録媒体。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００１
【補正方法】変更
【補正の内容】
【０００１】
本発明は情報処理装置、並びに、その制御方法および情報処理方法に関し、例えば、コンピュータネットワーク上に分散された情報処理装置などの画像処理モジュールを利用して画像処理を行うグリッドコンピューティングの負荷分散システムに関する。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００１０
【補正方法】変更
【補正の内容】
【００１０】
本発明にかかる情報処理装置は、コンピュータネットワークに接続される情報処理装置であって、前記コンピュータネットワークからタスク、および、その処理対象の画像を受信する第一の受信手段と、前記コンピュータネットワークに接続されたコンピュータ機器の状態および能力を管理し、前記タスクを分析して、前記タスクを分散処理させるコンピュータ機器を選定する管理手段と、前記選定に応じて、前記画像を分割した分割画像を含むジョブを生成し、前記管理手段が選定したコンピュータ機器に送信する送信手段と、前記ジョブを送信したコンピュータ機器から処理結果の分割画像を受信する第二の受信手段と、前記処理結果の分割画像を統合して一つの画像にする統合手段とを有することを特徴とする。また、コンピュータネットワークに接続される情報処理装置であって、前記コンピュータネットワークに接続されたデバイスの状態および能力を管理し、タスクを分析し、前記分析の結果に基づき、前記タスクの第一のタスクを処理する少なくとも一つのデバイスを選択し、前記タスクの第二のタスクを処理する少なくとも一つのデバイスを選択する管理手段と、画像から分割した画像を含む複数のジョブを生成して、前記選択したデバイスに前記ジョブを送信する送信手段と、前記ジョブを送信したデバイスから前記分割画像に対応する処理画像を受信する受信手段と、前記受信手段によって受信した複数の前記処理画像を一つの画像に統合する統合手段とを有することを特徴とする。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００１１
【補正方法】変更
【補正の内容】
【００１１】
本発明にかかる制御方法は、コンピュータネットワークに接続される情報処理装置の制御方法であって、前記コンピュータネットワークからタスク、および、その処理対象の画像を受信し、前記コンピュータネットワークに接続されたコンピュータ機器の状態および能力を管理し、前記タスクを分析して、前記タスクを分散処理させるコンピュータ機器を選定し、前記選定に応じて、前記画像を分割した分割画像を含むジョブを生成し、前記選定したコンピュータ機器に送信し、前記ジョブを送信したコンピュータ機器から処理結果の分割画像を受信し、前記処理結果の分割画像を統合して一つの画像することを特徴とする。また、コンピュータネットワークに接続される情報処理装置の制御方法であって、画像データおよび前記画像データに施す画像処理を示すリストデータを受信し、利用可能なリソース群をチェックし、前記利用可能なリソース群と、前記リストデータが示す各画像処理の演算負荷、分散容易性を示す情報から、前記画像データを分散処理させるリソースを決定することを特徴とする。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００１２
【補正方法】変更
【補正の内容】
【００１２】
本発明にかかる情報処理方法は、コンピュータネットワークに接続される情報処理装置の情報処理方法であって、前記コンピュータネットワークに接続されたデバイスの状態および能力を管理し、タスクを分析し、前記分析の結果に基づき、前記タスクの第一のタスクを処理する少なくとも一つのデバイスを選択し、前記タスクの第二のタスクを処理する少なくとも一つのデバイスを選択し、画像から分割した画像を含む複数のジョブを生成して、前記選択したデバイスに前記ジョブを送信し、前記ジョブを送信したデバイスから前記分割画像に対応する処理画像を受信し、前記受信した複数の前記処理画像を一つの画像に統合することを特徴とする。