(57)【要約】【課題】  分散コンピューティング環境の資源を用いて、ソフトウェアによる画像処理系のパフォーマンスを向上させる。【解決手段】  分散コンピューティング環境において、一つあるいは複数の処理ノードを用いてソフトウェアによる画像処理系を構成し、各処理ノードで保持する各画像処理モジュールでの計算結果を、入力値と出力値の関係として蓄積するようにする。  蓄積した結果は、入力値をインデックスとしたテーブルであり、実動作時に入力信号がヒットしたテーブルエントリを出力することにより、画像処理演算を行わずにすみパフォーマンス向上につながる。【選択図】  図１
2007128250.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク上に1以上の複数の処理ノードを持つ分散コンピューティング環境を利用した画像処理システムであって、
それぞれの処理ノードは、該処理ノード上で動作する一つないし複数の画像処理モジュールを備え、
各画像処理モジュールは
画像処理演算手段と、
画像処理演算手段の入力信号値と出力信号値との関係をテーブルとして記憶する記憶手段とを持ち、
さらに、入力信号値をインデックスとして前記記憶手段内のテーブルを検索する手段を備えており、
テーブル検索手段の検索結果と、画像処理手段の演算結果のどちらか一方を画像処理モジュールの出力とするように制御する制御手段を持つ
ことを特徴とする画像処理システム。
【請求項２】
請求項１に記載の画像処理システムにおいて、各処理ノードの各画像処理モジュールが持つ前記制御手段は、
テーブル検索がヒットした場合には、テーブル値を画像処理モジュールの出力とし、ヒットしない場合には画像処理手段の演算結果を画像処理モジュールの出力とする
ことを特徴とする画像処理システム。
【請求項３】
請求項１に記載の画像処理システムにおいて、各処理ノードの各画像処理モジュールの持つ前記制御手段は、
テーブル検索手段と画像処理演算手段とを並列に動作させ、検索手段の検索結果と画像処理演算手段の演算結果のうち、より早く得られた方の結果を画像処理モジュールの出力とする
ことを特徴とする画像処理システム。
【請求項４】
請求項１〜請求項３のいずれかに記載の画像処理システムであって、
処理ノードの遊休時に、仮想的な入力信号値を発生させて画像処理演算手段を動作させ、テーブル作成を行う
ことを特徴とする画像処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計算機本体あるいはネットワーク上に分散配置された計算機に実装された画像処理モジュールを用いて画像処理を行う画像処理システムに関する。
【背景技術】
【０００２】
オフィス用事務機として、コピー機能、プリンタ機能、FAX機能を併せ持ったデジタル複合機（Multi Functional Printer、以下MFPと呼ぶ）が世に出て久しい。MFPにおいては、コピー機能はスキャナで読み取った画像を画像処理してプリンタに出力することで実現され、プリンタ機能はホスト側で生成されたプリント用データをMFPが受信してレンダリングし、画像処理を行った後、プリンタに出力することで実現される。
【０００３】
近年では、MFPにおけるスキャナやプリンタの画像解像度は、600dpiあるいは1200dpiなどであり、また、1分あたりの処理枚数は、速いもので、カラーでは50枚、モノクロでは100枚にもおよぶ。大容量画像データを高速に処理する必要があるため、MFPで行われる画像処理は専用の画像処理用LSI（ASIC）を用いたハードウェアで行われることが常である。
【０００４】
ハードウェアによる画像処理では、高速性への要求を満たせる反面、変更がかけにくく柔軟性に欠ける、コストが高い、などのデメリットがある。一旦LSI化した画像処理に対してロジックに小変更を加える場合でも、それを実行するには、膨大な時間とコストがかかる。このため、上記のような画像処理を、より柔軟性の高いソフトウェアによる実装によって行うことが検討されてきている。
【０００５】
近年、PCクラスタリングやグリッドコンピューティングなどの並列分散処理コンピューティング技術が発展してきており、これらの技術の発展もソフトウェア画像処理を実装する上で有利となる。
【０００６】
グリッドコンピューティング技術ではネットワーク上の計算資源および記憶資源を使用するための手続きが容易であり、ネットワーク上にGridが構築されていれば極めて簡単に計算や記憶のための資源が利用できるというメリットがある。
【０００７】
このような状況から、ソフトウェア画像処理の柔軟性、分散処理技術、特にグリッドコンピューティング技術の与える運用容易性というメリットを享受可能な画像処理システムを考えることができる。
【特許文献１】特開平１０−０５５４３４号公報
【非特許文献１】IBMプロフェッショナル論文  「グリッド・コンピューティングの商用システムへの適用性」
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、いくらCPUが高性能化し、分散計算環境の整備が整いつつあっても、専用ハードウェアで行われてきた画像処理のスピードに追従するのは容易ではない。並列分散処理環境においてもできるだけ高速な処理を行えるようにシステム構成を行うことが不可欠である。
【０００９】
したがって、本発明では、グリッドコンピューティング技術を用いて、ソフトウェアによる画像処理を高速化することを目的とする。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、本発明では、
ネットワーク上に1以上の複数の処理ノードを持つ分散コンピューティング環境を利用した画像処理システムであって、
それぞれの処理ノードは、該処理ノード上で動作する一つないし複数の画像処理モジュールを備え、
各画像処理モジュールは画像処理演算手段と、画像処理演算手段の入力信号値と出力信号値との関係をテーブルとして記憶する記憶手段とを持ち、
さらに、入力信号値をインデックスとして前記記憶手段内のテーブルを検索する手段を備えており、
テーブル検索手段の検索結果と、画像処理手段の演算結果のどちらか一方を画像処理モジュールの出力とするように制御する制御手段を持つことを特徴とする画像処理システムを提供する。
【００１１】
前記制御手段は、テーブル検索がヒットした場合には、テーブル値を画像処理モジュールの出力とし、ヒットしない場合には画像処理手段の演算結果を画像処理モジュールの出力とする、
あるいは、
テーブル検索手段と画像処理演算手段とを並列に動作させ、検索手段の検索結果と画像処理演算手段の演算結果のうち、より早く得られた方の結果を画像処理モジュールの出力とする画像処理システムを構成する。
【００１２】
また、前記画像処理システムは、処理ノードの遊休時に、仮想的な入力信号値を発生させて画像処理演算手段を動作させ、テーブル作成を行う。
【発明の効果】
【００１３】
以上、説明したように、本発明によれば、Grid Computing技術によって計算機リソースを有効に活用し、システムのパフォーマンス向上に有効な画像処理システムを提供することができる。
【発明を実施するための最良の形態】
【００１４】
本実施例で説明する画像処理システムは、MFPのコピー機能をGrid Computingフレームワークと画像入出力装置を用いて実現する。
【００１５】
以下、図面を参照しながら本発明の好適な実施形態について説明する。
【００１６】
図１は、本発明のシステム構成の例を示した図である。
【００１７】
ネットワーク１０に、クライアントPC１１、サーバー１３、処理ノードPC１５、プリンタ１４が各々接続され、クライアントPC１１にはスキャナ１２が接続されている。
【００１８】
このシステムにおいて、クライアントPC１１は利用者の指示を受けて、ジョブの実行を行うためのユーザーインターフェース部であり、かつ、スキャナ１２から画像を読み込むスキャナ制御部としての役割を担っている。クライアントPCは、少なくとも、CPU、RAM、ROM、HDD、ネットワークI/F、ディスプレイI/F、キーボード、マウス、USB（汎用シリアルバス）を構成として持つ汎用のコンピュータシステムであり、同PC上では、基本OSによって動作しているものとする。
【００１９】
ネットワーク上に接続されたサーバー１３や他の処理ノードPC１５の構成もクライアントPC１１と同様に汎用のコンピュータシステムで、基本OSによって動作している。
【００２０】
クライアントPC１１には、スキャナ１２がUSB経由で接続されている。
【００２１】
スキャナ１２はクライアントPC１１のOS上で動作するアプリケーションからコールされたスキャナドライバによって、アプリケーション上でのユーザーの指示に従い、スキャナ１２の原稿ガラス面（不図示）上に置かれた原稿をCCD（不図示）により画像信号に変換して、USBを経由してクライアントPCに画像信号を送信する。
【００２２】
本実施例においては、スキャナはカラースキャナであるものとし、CCDはR,G,Bの各カラーフィルタで色分解された、各色成分が8bit値を持つRGB画像信号をクライアントPCに送信する。また、スキャナの読み取り解像度は600dpiとする。もちろん、画像のビット数および解像度はこれに限るものではない。
【００２３】
画像信号を受け取ったクライアントPC１１では、スキャナドライバ、あるいはスキャナドライバを使用するアプリケーションにより、スキャナデバイス固有のRGB色信号がデバイス独立な色空間に変換されることが多い。本実施例では、クライアントPCがスキャナから受け取ったRGB画像信号は、sRGB色空間の画像信号に変換されるものとする。もちろん、他のデバイス独立色空間の画像信号に変換するものとしても構わない。こうして、スキャナから読み込まれてクライアントPCに取り込まれた画像信号は、sRGB画像として、クライアントPC１１のRAMあるいはHDDに格納される。
【００２４】
サーバー１３と処理ノードPC１５では、後述するGrid Computingのソフトウェアモジュールが動作し、ネットワーク１０と合わせてGridを構成している。
【００２５】
本実施例において、MFPにおける画像処理装置はグリッド上でのソフトウェアモジュールとして構築される。
【００２６】
次に図２にプリンタ１４−１〜１４−Nの構成を示す。
【００２７】
メインＣＰＵ(Central Processing Unit)２０１は、全体の制御を行う中央制御ユニットであり、ネットワーク制御部２０２は、ネットワーク上の他の機器と接続し、例えばクライアントＰＣ１１やサーバー１３からのプリント要求やプリントデータ出力、保存要求や保存データの受信保存などの処理を制御するユニットである。
【００２８】
周辺制御部２０３は、メインＣＰＵ２０１に接続される周辺機器となるメモリ２０４からプリンタエンジン２１０の全体の制御を行うユニットである。
【００２９】
メモリ２０４は、プリントすべきビットマップデータなどを一時的に保存するとともに、実行プログラムのプログラムデータやプログラム実行中の中間コードや中間データなどを保存する主記憶装置として記憶するメモリであり、ＲＯＭ２０５は、プリンタ１４の本体の起動などの初期制御を含めた装置全体の制御を行うための制御プログラム等を保存する読み出し専用のメモリである。
【００３０】
パネル２０７は、プリンタ１４を操作する操作者に対して、操作者の意図する操作コマンドに対応する表記ボタンや、プリンタ１４を操作する操作者が入力した操作コマンドに対するプリンタ１４の内部の処理進捗状況や内部状態などを表示するモニタであり、キー２０８は、プリンタ１４を操作する操作者に対して、操作者の意図するプリンタ１４への制御リクエストや、パネル２０７への表示切替を切替えを受け付ける入力デバイスである。
【００３１】
エンジン制御部２０９は、プリンタエンジン２１０の駆動やプリント出力データ転送などの制御を行う制御部であり、プリンタエンジン２１０は、最終的なプリント出力画像を出力するプリンタ機構部である。
【００３２】
本実施例において、プリンタ１４はビットマップデータとして各色１ビットにハーフトーン化されたCMYK色成分からなる画像データをページ毎あるいはバンド毎に受け取り、プリンタエンジン２１０に送出する。プリンタエンジン２１０は、受け取った画像データにしたがってプリント動作を行う。ここでは、ハーフトーン化された画像データのビット数を１としたが、もちろん、これにこだわるものではなく、２ビットや４ビットなどの多値データであっても構わない。本実施例でのプリンタ２１０は画像データを受信してプリンタエンジンに送出する機能を備えていればよく、画像処理部を持たずにすむので、非常に安価な構成が可能である。
【００３３】
図３は本発明に適用されるグリッドコンピューティングのソフトウェアアーキテクチャを説明する図である。
【００３４】
グリッドのソフトウェア構成には様々なものがあるが、本実施例におけるグリッドはデスクトップグリッドと呼ばれる、デスクトップPCなどのCPUの空き時間を利用してジョブを実行するタイプのものである。
【００３５】
図３のClient はクライアントPC１１上で動作し、タスク要求を投入するユーザである。そのタスク要求は、サーバー１３上で動作するタスクマネージャ（Task Manager：以下TMと略す）に渡され、同じくサーバー１３上で動作するダイナミックジョブスケジューラ（Dynamic Job Scheduler：以下DJSと略す）にその内容を伝える。
【００３６】
DJSは全体のリソース管理をしており、最適なリソースのブローカ（Broker）を選択しTMに通知する。（このリソースとはここではCPUの空き状態のことを言う。）
Brokerは各処理ノードPC１５上で動作しており、同じく各処理ノードPC１５上で動作するリソースマネージャ（Resource Manager：以下RMと略す）の吸い上げたリソースの情報をDJSに登録し、TMからの要求で最適なリソースにジョブを投入し、完了通知をTMに対しておこなう。
【００３７】
TMはDJSが選択した最適なBrokerにジョブを投入し、以後そのジョブの進行状況のモニタリングを実施し、完了通知をBrokerから受けるとユーザにその結果を通知する。またリソースに変化・異常があれば（例  故障、他のジョブを受け付けた等）RMはBrokerに通知する。
【００３８】
このような仕組みで最適な（通常は利用されていない）CPUなどのリソースにジョブを配分することで分散処理を可能にするのがデスクトップグリッドコンピューティングの実現形である。
【００３９】
本実施例において、タスク要求とは、クライアントPC１１がスキャナ１２から原稿画像を読みとった画像データに対してプリンタ１４に適した画像処理を施し、クライアントPC１１から指定されたプリンタに送信してプリント動作を行うことである。
【００４０】
TMでは、クライアントPC１１のタスク要求を画像データとともに受け取り、画像データを適宜分割して、DJSの選択したBrokerにジョブを分割された画像データとともに投入する。
【００４１】
ここで、ジョブとは、分割された画像データに対して所定の画像処理を行うことである。Brokerで管理されているリソースである各処理ノードPCは各種画像処理モジュールをジョブ要求にしたがって動作させ、分割されて与えられた画像を処理した結果をTMに返す。
【００４２】
TMでは、各リソースにおいて、すべての画像処理が終了したら、分割された画像を統合して、プリンタ１４に送信して、ユーザーの要求したタスクを完了する。
【００４３】
次に、各処理ノードPCが行う画像処理について述べる。
【００４４】
図４は本実施例で行われる画像処理の概念的なブロック図である。実際には、各画像処理ブロックは、ソフトウェア処理モジュールとして各処理ノードPCが保持することとなる。
【００４５】
クライアントPC１１で読み取られたsRGB色空間の画像データは、色変換処理部４０１でsRGB->CMYK変換される。ここでは、原稿読み取り画像のRGB画像データをプリンタ固有の色空間であるCMYK色空間に変換する。この変換方法は、既知のLUT（ルックアップテーブル）補間方法によるものとする。すなわち、入力画像のRGB値の上位４ビットをルックアップテーブルのアドレス値として、そのアドレスのCMYK値を引き出し、下位４ビット値を用いて補間係数を作って、ルックアップテーブルから引き出したCMYK値を補間演算によって算出するものである。ここでは、CMYK値は各色成分８ビットの値を持つものとする。
【００４６】
次に、CMYK値に変換された画像信号は、フィルタ処理部４０２で、空間フィルタ処理される。空間フィルタ処理は、例えば、3x3のフィルタ係数と画像信号との積和を取る畳み込み演算として実現され、画像信号の周波数応答を調整するために行われる。画像信号をよりシャープにするためにはエッジ部を強調するような高域強調フィルタリング、画像信号をより滑らかにするためにはスムージングをかけるための低域強調フィルタリングが行われたりする。どのようなフィルタリングが行われるかはフィルタ処理部の3x3フィルタ係数にセットされる係数によって決定され、これらの係数は、クライアントPC１１のタスク投入時に、フィルタ処理部の保持する低域強調フィルタ係数か高域強調フィルタ係数のどちらかを指定され、ジョブとともにその指定がフィルタ処理部４０２に渡されるものとする。
【００４７】
次に、ガンマ処理部４０３でプリンタ階調特性の調整が行われる。この画像処理では、CMYKの各色成分ごとに１次元LUT演算が行われる。より具体的には、C,M,Y,Kの入力値[0:255]に対して、計算しておいた任意の特性を表す[0:255]の出力値を出力するものである。
【００４８】
次に、適切に階調補正されたCMYK画像信号は、ハーフトーン処理部４０４で１ビットのハーフトーン画像に変換される。この処理には、さまざまな既知の方法があるが、ここでは、閾値マトリクスと画素値を比較するスクリーン処理を行うものとする。
【００４９】
これらの画像処理ブロックの各々をソフトウェアモジュールとして各処理ノードPCが持っており、TMの依頼に応じて、Brokerによって起動されて処理を行うこととなる。
【００５０】
次に、図５を用いて画像処理システムの処理フローの例について述べる。
【００５１】
タスクの開始は、S5000でクライアントPCのUIでスキャン＆プリント指示をすることにより行われる。
【００５２】
タスクが開始されるとS5001でクライアントPCに接続されたスキャナ上の原稿を読み取り、S5002でタスクの生成が行われる。タスク内容は図６に示すようなタスクリストに記述され、S5003でTMに対して、読み込んだ画像データとともに投入される。タスクリスト上では、そのタスク内で行われるべきジョブ内容がリストされており、各ジョブはパラメータを保持することができる。図６のタスクリストの中で、フィルタ処理指示６０２におけるスムージング指定６０３やプリンタ出力指示６０６におけるプリンタ指定６０７がパラメータの例である。これらのパラメータはクライアントPCのUI上で指定される。
【００５３】
次に、サーバー側では、S5101においてTMがタスクを受信することから処理が開始される。
【００５４】
S5102でTMは受信したタスクの分析をDJSに依頼し、DJSでは、S5103で利用可能なリソースをチェックし、S5104で利用可能なリソースを考慮してスケジューリング戦略を生成する。
【００５５】
次に、S5104で決定されたスケジューリング戦略にしたがって、S5105でTMは処理すべき画像を分割し、S5106で各Brokerにジョブを投入する。
【００５６】
S5201で各処理ノードPCはBrokerを介してジョブを受信して、S5202で受け取ったジョブに指定されている画像処理を行う。処理が終われば、S5203で終了通知とともに処理結果をTMに返す。
【００５７】
TMでは、処理通知を受け取ったら、S5107で各処理ノードPCから収集した処理結果画像を統合する。そして、S5108でタスクリスト内の全てのジョブが終了していれば、S5109でプリンタへの画像データ送信を行い、終了していなければ次の画像処理に移る。
【００５８】
TMでの処理が全て終了したら、S5110でクライアントPCに対して終了通知を行い、クライアントPC側ではS5004で終了通知を受信して、S5005で処理を終了する。
【００５９】
図７に本実施例における各々の画像処理モジュールの構成図を示す。図７に示した構成は、特に、演算に時間を要する画像処理モジュールである、色変換処理部401およびフィルタ処理部402の構成に適用されるものとする。
【００６０】
図中で、演算部701は上記で説明したような各々の画像処理演算を受け持つモジュールである。テーブル格納制御部702は、演算結果テーブル７０３に対して、演算部７０１への入力信号値と演算結果を格納するための制御を行うモジュールである。演算結果テーブル７０３には、その制御により、入力信号値と演算結果が適宜格納される。テーブル検索制御部704は、格納された演算結果テーブル703から演算結果を検索する機能を持ち、入力信号値をインデックスとして、テーブルを検索し、検索された結果を出力制御部705に対して出力する。出力制御部705は、演算部701およびテーブル検索制御部704の出力を受けて、ジョブの依頼を行ったサーバー（TM）に画像処理結果を返送するように制御する。これらの処理ブロックを用いた処理フローについては後述する。
【００６１】
演算結果テーブル703の具体的な構成例を示した図面が図８である。この図では、色変換処理部401中の演算結果テーブルについて示してある。
【００６２】
図８のテーブル801では、色変換処理部の受け取る入力信号値であるRGBそれぞれの値がテーブルのインデックスとなる。そのインデックスで示されるテーブルのエントリの値として、演算部701の演算結果が格納されている。
【００６３】
色変換処理部401は、RGB各々8ビットの信号値を受け取り、CMYK各々8ビットの信号値を出力するものであるから、入力データの総組み合わせは、256*256*256個となり、テーブルのエントリ数は最大で1677万個となる。そしてテーブルのエントリはCMYK値を保持するので、テーブルの最大サイズは６４Mbytesである。
【００６４】
フィルタ処理部４０２のフィルタは３x３フィルタなので、受け取る信号値は注目画素を中心として9個の信号値となる。それらの組み合わせに対して出力信号値は１つだけであるが、256^9個のテーブルを持つのは現実的でない。
【００６５】
したがって、本実施例においては、フィルタ処理を分割して考えることとする。すなわち、３x３の各行に対して、３x１のフィルタリングを行い、各行の演算結果３つを用いて、さらに、１x３のフィルタ処理を行うようにする。
【００６６】
例えば、３x３フィルタの係数が、
1  2  1
2  4  2
1  2  1
であった場合、
１）係数(1 2 1)を用いた積和演算を行う。
【００６７】
２）係数(2 4 2)を用いた積和演算を行う。
【００６８】
３）係数(1 2 1)を用いた積和演算を行う。
【００６９】
４）１，２，３の結果を加算して、係数の和（１６）で除算する。
ようにして演算を行う。このようにした場合には、演算結果テーブルのエントリ数は256*256*256個のものを用意すればよく、１と３は共通の演算となるため、テーブルは共用可能となる。
【００７０】
よって、演算結果テーブルを２セット用意すれば、１，２，３の演算が行えて、最後に加算と除算（ビットシフトで実現可能）を行えばよくなる。
【００７１】
次に、画像処理モジュールが図７のように構成されている場合の処理フローを図９を用いて説明する。
【００７２】
S9000でサーバーからのジョブの受信によって画像処理を開始し、S9001で画像処理演算とテーブル検索を並列に動作させるように、演算部７０１とテーブル検索制御部７０４に対して指示を行う。
【００７３】
演算部においては、受信したジョブに含まれる画像データを一画素づつ画像処理演算を行いながら（S9002）、入力信号値の組み合わせと演算結果を一時的にメモリやHDDに保持するようにする（S9003）。全画素の処理が終了するまで処理を行い、終了したら出力画像を返送する処理に制御をうつす（S9004）。
【００７４】
一方、テーブル検索制御部704では、受信した画像の一画素を入力信号値としてテーブル検索を行う（S9006）。これを全画素に対して行い、全画素に対して処理が終了したら出力画像を返送する処理に制御をうつす（S9007）。
【００７５】
ここで、出力制御部705は、並列に動作させた演算部701とテーブル検索制御部704の動作のどちらが早く終了するかを監視しており、早く終了した方の結果をサーバー（TM）に対して返送するように制御を行う。
【００７６】
S9005では、テーブル検索の方が処理が早かったのかどうかを検査する。すなわち、出力画像が既に返送済みかどうかをチェックし（S9005）、返送済みでなければ、出力画像を返送し（S9009）、一時的に保持していた演算結果をテーブルに格納するための処理を行って（S9010）、処理を終了する（S9011）。もし、テーブル検索処理によって画像が返送済みであれば、出力画像の返送はせずに、テーブル格納処理（S9010）を行って、処理を終了する（S9011）。
【００７７】
一方で、S9008では、テーブル検索よりも演算の方が処理が早かったのかどうかを検査する。まだ返送済みでなければ、S9009の出力画像の返送処理を行い、テーブル格納処理（S9010）を行って処理を終了する（S9011）。また、返送済みであれば何も行わずに、処理を終了する（S9011）。
【００７８】
なお、S9010のテーブル格納処理は、画像処理ジョブを終了してしまえば、比較的時間をかけて行ってよい。画像処理結果を返送済みであるので、システムのパフォーマンスには影響を及ぼさない。
【００７９】
テーブル格納処理では、一時的に保持しておいた入力信号値と演算結果の組み合わせに対して、入力信号値に対するテーブルのエントリ値が存在するかどうかをチェックし、存在しない場合には、テーブルエントリへの追加を行う。
【００８０】
このテーブル格納処理において、入力信号値の入力頻度順にテーブルをソートしなおす処理を行っておくようにする。
【００８１】
前述したように、例えば、色変換処理部401での演算結果テーブルは、入力データの総組み合わせ256*256*256個に対して、それぞれがCMYK値を持つので、テーブルのサイズは最大で６４Mbytesとなる。実際には、これだけの入力信号が入ってくることはないと考えられるが、テーブルが大きくなればなるほど、テーブル検索にも時間がかかることになる。
【００８２】
このような場合でも、テーブルのソートを行っておくことで、テーブル検索処理のパフォーマンス向上が期待できる。
【００８３】
また、テーブルサイズが大きすぎて処理ノードPCで保持できない場合は、ソートした結果、頻度の少ないものを破棄することによって、制限されたサイズのテーブルを保持することができる。
【００８４】
また、一つの処理ノードPCに一つの画像処理モジュールが存在して、演算結果テーブルを持つ構成を、複数の処理ノードPCで複数の同一の画像処理モジュールが存在し、複数の処理ノードPCで演算結果テーブルを分担して持つように構成することによって、演算結果テーブルを最大サイズで持つような構成を考えることも可能である。
【００８５】
この場合、TMは複数の処理ノードPCに対して同一のジョブを投入し、最も早く処理結果が返ってきたものを採用するような制御を行えばよい。このような構成により、計算機リソースに透過的にアクセスするGrid Computing技術のメリットを生かすことができる。
【００８６】
全ての入力信号に対する演算結果テーブルを保持しておけるのであれば、実際の画像処理ジョブを受けるとき以外でも、テーブル格納処理を行っておき演算結果テーブルのエントリを埋めるようにすれば、実動作時の効率はよくなる。
【００８７】
すなわち、クライアントPCからのジョブ依頼がないシステムの遊休時に、サーバーが仮想的なジョブを発生させ、各処理ノードPCに投入する。
【００８８】
仮想的なジョブに付随する画像は、例えば、色変換処理部401に対して、入力信号（0,0,0）から（255,255,255）まで順に発生させたRGB値を含むものにすればよい。
【００８９】
（その他の実施例）
上記実施例では、タスクをコピー機能を例として説明したが、スキャン画像を送信するのではなく、プリントデータをクライアントPCでレンダリングしてタスク投入するのでも構わない。
【００９０】
また、レンダリング前のデータをタスク投入して、グリッド内の処理ノードPCでレンダリングし、画像処理を行い、プリンタに送出するようにしてもよい。
【００９１】
本実施例において、利用者が複雑な手順を踏むことなく、クライアントPC、PCに接続されたスキャナ、およびネットワークに接続されたプリンタを使用して、コピー機能を得ることができる。
【図面の簡単な説明】
【００９２】
【図１】本発明のシステム構成の例。
【図２】本発明におけるプリンタの構成の例。
【図３】グリッドコンピューティングのアーキテクチャ例。
【図４】本発明における画像処理ブロック図の例。
【図５】システムの動作フローの例。
【図６】画像処理タスクのリストを示した例。
【図７】画像処理モジュールの構成例。
【図８】演算結果テーブルの構成例。
【図９】画像処理モジュールの処理の流れの例。
【図１】
2007128250.tif 000003
【図２】
2007128250.tif 000004
【図３】
2007128250.tif 000005
【図４】
2007128250.tif 000006
【図５】
2007128250.tif 000007
【図６】
2007128250.tif 000008
【図７】
2007128250.tif 000009
【図８】
2007128250.tif 000010
【図９】
2007128250.tif 000011