(57)【要約】【課題】処理負荷が高い画像処理であっても、処理性能を高めることが可能な画像処理技術を提供する。【解決手段】ＯＣＲアプリは、画像処理装置がマスタ機となる場合、ＯＣＲ処理を複数のジョブに細分化し、細分化したジョブを実行させる画像処理装置をケイパビリティ情報に基づいて選定する。そして、ＯＣＲアプリは、選定した画像処理装置のＯＣＲエンジンを起動させてＯＣＲ処理を実行させ、処理後に、当該ＯＣＲエンジンを停止させる。また、ＯＣＲアプリは、画像処理装置がスレーブ機となる場合、マスタ機からの要求に応じてＯＣＲ処理を実行し、当該ＯＣＲ処理の結果をマスタ機に送信する。【選択図】        図２
2010068373.tif 000002
【特許請求の範囲】
【請求項１】
画像処理を行う画像処理装置であって、
少なくとも１つの他の画像処理装置とネットワークを介して接続され、
画像処理を指示するユーザからの画像処理指示の入力を受け付ける入力受付手段と、
前記画像処理指示によって指示された前記画像処理を複数の画像処理ジョブに細分化する細分化手段と、
細分化された前記画像処理ジョブを実行させる第１画像処理装置を、前記少なくとも１つの他の画像処理装置の中から選定する装置選定手段と、
前記画像処理ジョブの実行を要求する処理要求を前記第１画像処理装置に送信する送信手段と、
前記画像処理ジョブの対象となる画像を前記第１画像処理装置に送信する画像送信手段とを備える
ことを特徴とする画像処理装置。
【請求項２】
前記装置選定手段は、前記画像処理ジョブの進行状態に従って、前記第１画像処理装置を動的に選定する
ことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記装置選定手段は、前記少なくとも１つの他の画像処理装置の負荷状態に従って、前記第１画像処理装置を動的に選定する
ことを特徴とする請求項１又は２に記載の画像処理装置。
【請求項４】
前記装置選定手段は、
前記少なくとも１つの他の画像処理装置が受付可能な画像処理要求の最大数及び受付済の画像処理要求の数を示すステータス情報を取得する第１取得手段と、
取得された前記ステータス情報を用いて、前記第１画像処理装置を選定する第１選定手段とを有する
ことを特徴とする請求項３に記載の画像処理装置。
【請求項５】
前記装置選定手段は、
前記少なくとも１つの他の画像処理装置の画像処理能力を示すケイパビリティ情報を取得する第２取得手段と、
取得された前記ケイパビリティ情報を用いて、前記第１画像処理装置を選定する第２選定手段とを有する
ことを特徴とする請求項１乃至４のいずれか一項に記載の画像処理装置。
【請求項６】
前記画像処理ジョブの実行結果を前記第１画像処理装置から受信する結果受信手段を更に備える
ことを特徴とする請求項１乃至５のいずれか一項に記載の画像処理装置。
【請求項７】
前記送信手段は、前記結果受信手段が前記実行結果を受信する前に、新たな前記画像処理ジョブの実行を要求する処理要求を前記第１画像処理装置に送信する
ことを特徴とする請求項６に記載の画像処理装置。
【請求項８】
前記画像送信手段は、前記結果受信手段が前記実行結果を受信する前に、新たな前記画像処理ジョブの対象となる画像を前記第１画像処理装置に送信する
ことを特徴とする請求項７に記載の画像処理装置。
【請求項９】
前記ネットワークを介して他の画像処理装置と共有される記憶手段を備える
ことを特徴とする請求項１乃至８のいずれか一項に記載の画像処理装置。
【請求項１０】
画像処理の全部又は一部である画像処理ジョブの実行を要求する処理要求を他の画像処理装置から受信する受信手段と、
前記処理要求によって実行が要求された前記画像処理ジョブの対象となる画像を前記他の画像処理装置から受信する画像受信手段と、
前記画像に対して前記画像処理ジョブを実行する実行手段とを更に備える
ことを特徴とする請求項１乃至９のいずれか一項に記載の画像処理装置。
【請求項１１】
画像処理を行う画像処理装置であって、
少なくとも１つの他の画像処理装置とネットワークを介して接続され、
画像処理の全部又は一部である画像処理ジョブの実行を要求する処理要求を他の画像処理装置から受信する受信手段と、
前記処理要求によって実行が要求された前記画像処理ジョブの対象となる画像を前記他の画像処理装置から受信する画像受信手段と、
前記画像に対して前記画像処理ジョブを実行する実行手段とを備える
ことを特徴とする画像処理装置。
【請求項１２】
前記画像処理ジョブを実行するためのプログラムをファイルサーバから取得する取得手段を更に備え、
前記実行手段は、前記プログラムに従って、前記前記画像処理ジョブを実行する
ことを特徴とする請求項１１に記載の画像処理装置。
【請求項１３】
前記実行手段は、前記プログラムに従って、前記前記画像処理ジョブを実行する際、前記ファイルサーバに記憶されているファイルにアクセスする
ことを特徴とする請求項１２に記載の画像処理装置。
【請求項１４】
前記取得手段は、前記画像処理ジョブを実行するためのプログラムであってJava（登録商標）形式のプログラムを取得する
ことを特徴とする請求項１２又は１３に記載の画像処理装置。
【請求項１５】
前記取得手段は、前記画像処理ジョブを実行するためのプログラムであってスクリプト言語で記述されたプログラムを取得する
ことを特徴とする請求項１２又は１３に記載の画像処理装置。
【請求項１６】
前記実行手段は、前記処理要求に従って、前記プログラムの実行を動的に開始することにより、前記画像処理ジョブを実行する
ことを特徴とする請求項１２乃至１５のいずれか一項に記載の画像処理装置。
【請求項１７】
前記受信手段は、前記画像処理ジョブの実行の終了を要求する停止要求を受信し、
前記実行手段は、前記停止要求に従って、前記プログラムの実行を動的に終了することにより、前記画像処理ジョブの実行を終了する
ことを特徴とする請求項１２乃至１６のいずれか一項に記載の画像処理装置。
【請求項１８】
前記画像処理ジョブの実行結果を前記他の画像処理装置に送信する結果送信手段を更に備える
ことを特徴とする請求項１乃至１７のいずれか一項に記載の画像処理装置。
【請求項１９】
マスタ機となる１つの画像処理装置と、スレーブ機となる少なくとも１つの画像処理装置とがネットワークを介して接続され、
マスタ機となる画像処理装置は、
画像処理を指示するユーザからの画像処理指示の入力を受け付ける入力受付手段と、
前記画像処理指示によって指示された前記画像処理を複数の画像処理ジョブに細分化する細分化手段と、
細分化された前記画像処理ジョブを実行させる第１画像処理装置を、スレーブ機となる画像処理装置の中から選定する装置選定手段と、
前記画像処理ジョブの実行を要求する処理要求を前記第１画像処理装置に送信する送信手段と、
前記画像処理ジョブの対象となる画像を前記第１画像処理装置に送信する画像送信手段とを備え、
スレーブ機となる画像処理装置は、
画像処理の全部又は一部である画像処理ジョブの実行を要求する処理要求をマスタ機となる画像処理装置から受信する受信手段と、
前記処理要求によって実行が要求された前記画像処理ジョブの対象となる画像を前記マスタ機となる画像処理装置から受信する画像受信手段と、
前記画像に対して前記画像処理ジョブを実行する実行手段とを備える
ことを特徴とする画像処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理の全部又は一部をネットワークに接続された他の画像処理装置に割り振ったり、ネットワークに接続された他の画像処理装置の画像処理の全部又は一部を代行したりする画像処理装置及び画像処理システムに関するものである。
【背景技術】
【０００２】
従来より、ネットワークに接続された画像形成装置同士が互いに機能を補完し合い、画像形成装置個々の機能を高める技術が知られている（例えば、特許文献１参照）。また複数の融合機（ＭＦＰ）を接続し、一台のＭＦＰで読み取った原稿画像を複数のＭＦＰで出力することにより、システム全体の生産性を高めようという連結コピー機能や重連コピー機能が実用に供されている。また、ネットワーク上のプリンタ群をグループ化し、そのうち１つをメインのプリンタとし、他のプリンタをメインのプリンタの管理下に統合し、この統合されたプリンタそれぞれが有する資源を仮想的に１つの資源として共有することにより、ネットワーク上のプリンタを効率的に稼動させる技術が開示されている（例えば、特許文献２参照）。
【０００３】
【特許文献１】特開２００５―７４８８１号公報
【特許文献２】特開２００５−２０９０２７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、特許文献１〜２に示される画像処理装置においては、印刷処理のみに限定して分散処理を行っていた。このため、例えばＯＣＲ（Optical Character Recognition：光学的文字認識）のような機器内のＣＰＵに対して処理負荷を与える画像処理を実行する時にも、処理性能を高めることができる画像処理装置が望まれていた。
【０００５】
本発明は、上記に鑑みてなされたものであって、処理負荷が高い画像処理であっても、処理性能を高めることが可能な画像処理装置及び画像処理システムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決し、本発明は、画像処理を行う画像処理装置であって、少なくとも１つの他の画像処理装置とネットワークを介して接続され、画像処理を指示するユーザからの画像処理指示の入力を受け付ける入力受付手段と、前記画像処理指示によって指示された前記画像処理を複数の画像処理ジョブに細分化する細分化手段と、細分化された前記画像処理ジョブを実行させる第１画像処理装置を、前記少なくとも１つの他の画像処理装置の中から選定する装置選定手段と、前記画像処理ジョブの実行を要求する処理要求を前記第１画像処理装置に送信する送信手段と、前記画像処理ジョブの対象となる画像を前記第１画像処理装置に送信する画像送信手段とを備えることを特徴とする。
【０００７】
また、本発明は、画像処理を行う画像処理装置であって、少なくとも１つの他の画像処理装置とネットワークを介して接続され、画像処理の全部又は一部である画像処理ジョブの実行を要求する処理要求を他の画像処理装置から受信する受信手段と、前記処理要求によって実行が要求された前記画像処理ジョブの対象となる画像を前記他の画像処理装置から受信する画像受信手段と、前記画像に対して前記画像処理ジョブを実行する実行手段とを備えることを特徴とする。
【０００８】
また、本発明は、マスタ機となる１つの画像処理装置と、スレーブ機となる少なくとも１つの画像処理装置とがネットワークを介して接続され、マスタ機となる画像処理装置は、画像処理を指示するユーザからの画像処理指示の入力を受け付ける入力受付手段と、前記画像処理指示によって指示された前記画像処理を複数の画像処理ジョブに細分化する細分化手段と、細分化された前記画像処理ジョブを実行させる第１画像処理装置を、スレーブ機となる画像処理装置の中から選定する装置選定手段と、前記画像処理ジョブの実行を要求する処理要求を前記第１画像処理装置に送信する送信手段と、前記画像処理ジョブの対象となる画像を前記第１画像処理装置に送信する画像送信手段とを備え、スレーブ機となる画像処理装置は、画像処理の全部又は一部である画像処理ジョブの実行を要求する処理要求をマスタ機となる画像処理装置から受信する受信手段と、前記処理要求によって実行が要求された前記画像処理ジョブの対象となる画像を前記マスタ機となる画像処理装置から受信する画像受信手段と、前記画像に対して前記画像処理ジョブを実行する実行手段とを備えることを特徴とする。
【発明の効果】
【０００９】
本発明によれば、処理負荷が高い画像処理であっても、処理性能を高めることが可能になる。
【発明を実施するための最良の形態】
【００１０】
以下に添付図面を参照して、この発明にかかる画像処理装置及び画像処理システムの最良な実施の形態を詳細に説明する。
【００１１】
（１）構成
図１は、本実施の形態にかかる画像処理システムの構成の１例を示す図である。本実施の形態においては、複数台の画像処理装置２０１〜２０５がネットワークを介して接続されている。ネットワークとは、公衆回線や専用回線を経由して外部と接続するＷＡＮ（Wide Area Network：広域通信網）と、同一敷地内でネットワークを構築するＬＡＮ（Local Area Network：構内通信網）に分類される方式のうちの、いずれの方式であってもよい。また、ネットワークにはインターネットを利用してもよく、この場合、ＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）による接続であってもよいし、無線による接続であってもよい。尚、以降、画像処理装置２０１〜２０５を各々区別する必要がない場合には、単に画像処理装置という。本実施の形態においては、これらの複数の画像処理装置２０１〜２０５のうち任意のいずれか１つがマスタ機となり、その他の画像処理装置はスレーブ機となる。マスタ機となる画像処理装置及びスレーブ機となる画像処理装置は動的に変わりえる。
【００１２】
図２は、本実施の形態にかかる画像処理装置の構成を示す図である。この画像処理装置は、印刷データを所定のプロセスに従って記録紙に作像するためのエンジン１０１と、所定のページ記述言語に従って印刷データを変換し、本体あるいはドライバなどに設定されている印刷補正モードにしたがってビデオデータに変換してエンジン１０１に送るコントローラ１０２とを備える。コントローラ１０２は、ＲＡＭ１０３、ＡＳＩＣ１０４、ＣＰＵ１０５、フォントＲＯＭ１０６、エンジンＩ／Ｆ１０７、ＨＤＤ（ハードディスクドライブ）１０８、ＲＯＭ１０９及びＮＩＣ（Network Interface Card）１１０を備えている。ＣＰＵ１０５は、このコントローラ全体を制御プログラムに従って統括的に制御する。ＲＡＭ１０３は、ＣＰＵ１０５による制御処理時のワーキングメモリや、当該画像処理装置に接続される情報処理装置（図示せず）からのデータをページ単位に管理して一時記憶するバッファや、バッファに記憶されたデータを実際の印字パターンに変換してビデオデータで記憶するビットマップメモリなどとして使われる。ＲＯＭ１０９は、ＣＰＵ１０５の制御プログラムが読み出し可能な状態で記憶されている。フォントＲＯＭ１０６は、実際に使われる様々なフォント情報が記憶されている。エンジンＩ／Ｆ１０７は、コントローラ１０２からエンジン１０１への制御信号や、エンジン１０１からコントローラ１０２へのエンジンステータス信号のやり取りを行なうためのインタフェースである。エンジン１０１は、例えば、たとえば白黒プロッタ、１ドラムカラープロッタ、４ドラムカラープロッタ、スキャナまたはファックスユニット等である。ＨＤＤ１０８は、文書データとその関連情報、印刷データなどを記憶しておくためのものである。ＮＩＣ１１０は、ネットワーク接続のためのインタフェースである。また、画像処理装置は、画像処理を指示するユーザからの指示入力を受け付ける操作パネル（図示せず）を備える。
【００１３】
図３〜４は、画像処理装置のソフトウェア構成を示す図であり、図３は電源起動時の状態を示しており、図４はＯＣＲアプリを利用した時の状態を示している。図３においては、画像処理装置は、ＯＳ（オペレーティングシステム）、ＮＦＳサーバ、ＮＦＳクライアント、Java（登録商標） VM、ＯＣＲアプリ及びリモートプログラム起動デーモンを有する。同図に示されるように、電源起動時には、マスタ機及びスレーブ機共にＯＣＲエンジンはまだ起動していない。一方、図４では、電源起動後に、マスタ機／スレーブ機の双方でＯＣＲエンジンが起動されていることが示されている。同図において、ＯＳは全てのハードウェア資源を管理し、システム上で動作している全てのプロセスに対して実行環境を提供するモジュールである。ＮＦＳサーバはネットワークファイルサーバ機能を提供するモジュールである。ＮＦＳクライアントはネットワークファイルサーバ上のファイルにアクセスする機能を提供するモジュールである。Java（登録商標） VMはJava(登録商標）プログラムに対して仮想的な実行環境を提供するモジュールである。
【００１４】
ＯＣＲアプリは、画像処理装置がマスタ機となる場合、操作パネルにＧＵＩによって図１５に示されるような操作画面を表示してユーザからの指示入力を受け付けて、スキャナで読み取った原稿に対して文字認識を行うＯＣＲ処理の実行を制御するモジュールである。また、ＯＣＲアプリは、ＯＣＲ処理を複数のジョブに細分化し、細分化したジョブを実行させる画像処理装置をステータス情報及びケイパビリティ情報に基づいて選定する。尚、説明の便宜上、ここで細分化したジョブについてもＯＣＲ処理という。
【００１５】
ステータス情報とは、ＯＣＲエンジンの負荷状態を示す情報であり、例えば、ＯＣＲエンジンが受付可能な、ＯＣＲ処理を要求するコマンド（ＯＣＲ処理要求）の最大数（maxreq）と、受付済みのＯＣＲ処理要求（reqcnt）の数とを示す。ケイパビリティ情報とは、画像処理装置の画像処理能力を示す情報であり、例えば、画像処理性能の尺度（processSpeed）や、ＯＳが管理しているＲＡＭ１０３などのメモリのフリーエリアサイズ（freeMem）や、実行可能言語（acceptLang）などの情報を含む。図５は、ケイパビリティ情報テーブルを示す図である。同図に示されるように、他の画像処理装置をそれぞれ識別可能な識別情報とケイパビリティ情報とが対応付けて記憶される。識別情報とは、例えば、ＩＰアドレスなどである。また、自身の識別情報については、‘localhost’として他の画像処理装置の識別情報と区別している。ステータス情報及びケイパビリティ情報に基づいた具体的な選定方法については後述の動作欄で説明する。
【００１６】
尚、ＯＣＲアプリは、画像処理装置の選定の前に、ネットワーク上に存在するスレーブ機を確認し、このスレーブ機と自身とを含む画像処理装置の中から、細分化したＯＣＲ処理を実行させる画像処理装置をケイパビリティ情報に基づいて選定する。図６は、画像処理装置の識別情報を記憶する他機検索結果テーブルを例示する図である。そして、ＯＣＲアプリは、選定した画像処理装置のＯＣＲエンジンを起動させてＯＣＲ処理を実行させ、処理後に、当該ＯＣＲエンジンを停止させる。また、ＯＣＲアプリは、画像処理装置がスレーブ機となる場合、マスタ機からの要求に応じてＯＣＲ処理を実行し、当該ＯＣＲ処理の結果を、指定されたメールアドレスに対してメール送信する。
【００１７】
ＯＣＲエンジンはＯＣＲ処理を実行するモジュールである。尚ＨＤＤ１０８には複数のJava(登録商標）プログラムとプログラムの実行に必要なファイルを圧縮したJAR（Java(登録商標） ARchive）ファイルやＯＣＲ処理を実行するために必要となる文字パターンファイルや辞書ファイル等が格納されている。リモートプログラム起動デーモンは、電源投入時に起動される常駐プロセスであり、ＯＣＲアプリからの指示に従って、ＯＣＲエンジンの実行を開始したり、停止したりするモジュールである。またリモートプログラム起動デーモンは、他の画像処理装置からの要求に応じて、自身の画像処理能力を示すケイパビリティ情報を送信する。また、リモートプログラム起動デーモンは、他の画像処理装置からケイパビリティ情報を取得し、これをケイパビリティ情報テーブルに記憶する。尚、以降、リモートプログラム起動デーモンのことをｒｐｌｄ（Remote Program Launch Daemon）と表記する場合がある。
【００１８】
図７はＯＣＲアプリが動作している画像処理装置と同一の画像処理装置（ローカルノードという）、すなわちマスタ機側でＯＣＲエンジンを起動する際のモジュール間の関連を示す図である。一方、図８はＯＣＲアプリが動作している画像処理装置とは異なる画像処理装置（リモートモードという）、すなわちスレーブ機側でＯＣＲエンジンを起動する際のモジュール間の関連を示す図である。いずれの場合でもＯＣＲプロセスが対象となる画像処理装置上で動作しているリモートプログラム起動デーモンに対してＯＣＲエンジンの起動を要求するコマンド（ＯＣＲエンジン起動要求）が送信されることにより、ＯＣＲエンジンが起動する。尚、ローカルノードとリモートモードとを各々区別する必要がない場合には単にノードと記載する場合がある。図９はスレーブ機側がファイルサーバ上のファイルやマスタ機側のファイルにアクセスする際の経路を示す図である。同図においては、スレーブ機側で動作しているプログラムがＮＦＳクライアントに対してファイルアクセス要求を発行することにより、ファイルサーバ上のファイルやマスタ機側のＨＤＤに格納されているファイルにアクセスすることができるように構成されていることが示されている。なお、図７〜９においては説明図が繁雑になるのを避けるために、スレーブ機側のＨＤＤとＮＦＳサーバとを省略している。
【００１９】
（２）動作
次に、本実施の形態にかかる画像処理装置のリモートプログラム起動デーモンによる処理の手順について図１０を用いて説明する。リモートプログラム起動デーモンを実行する画像処理装置は、他の画像処理装置からコマンドを受信したか否かを判断し（ステップＳ１）、当該判断結果が肯定的である場合、受信したコマンドの種別を判断する（ステップＳ２）。当該コマンドが、ケイパビリティを要求するケイパビリティ要求である場合、画像処理装置は、自身に記憶されているケイパビリティ情報を他の画像処理装置に送信する（ステップＳ３）。図１１は、ケイパビリティ要求のデータ構成を例示する図である。また、受信されたコマンドが、プロセスの起動を要求するプロセス起動要求である場合、画像処理装置は、指定されたプロセス（プログラム）の実行を開始する（ステップＳ４）。図１２は、プロセス起動要求のデータ構成を例示する図である。また、受信されたコマンドが、プロセスの停止を要求するプロセス停止要求である場合、画像処理装置は、指定されたプロセス（プログラム）の実行を停止する（ステップＳ５）。図１３は、プロセス停止要求のデータ構成を例示する図である。
【００２０】
次に、本実施の形態にかかる画像処理装置のＯＣＲアプリによりＯＣＲ処理を制御する処理の手順について図１４を用いて説明する。ユーザが原稿を画像処理装置の図示せぬＡＤＦ上に設置し、図１５に示される操作パネルに表示された操作画面上のスタートキー３４を押下することにより（ステップＳ１０：ＹＥＳ）、処理が開始される。ここでＯＣＲアプリを実行する画像処理装置はマスタ機となりローカルノードとなる。そしてマスタ機である画像処理装置は、ＯＣＲエンジン起動処理を実行して、自身のＯＣＲエンジンを起動し（ステップＳ１１）、原稿画像を読み取る原稿読み取り処理を実行し（ステップＳ１２）、読み取った原稿画像のＯＣＲ処理を実行し（ステップＳ１３）、ＯＣＲ処理の結果をメール送信し（ステップＳ１４）、ＯＣＲエンジンの停止を要求するＯＣＲエンジン停止処理を実行する(ステップＳ１５)。
【００２１】
次に、図１４のステップＳ１１で画像処理装置が実行するＯＣＲエンジン起動処理の手順について図１６を用いて説明する。マスタ機となる画像処理装置は、ｒｐｌｄを介してＯＣＲエンジンを起動すると（ステップＳ２０）、ネットワーク上に存在している他の画像処理装置であるスレーブ機を検索する（ステップＳ２１：他機検索処理）。次いで、マスタ機は、ステップＳ２０での検索の結果該当するスレーブ機のそれぞれからケイパビリティ情報を取得すると共に自身のケイパビリティ情報を取得する(ステップＳ２２：ケイパビリティ情報取得処理)。そして、マスタ機は、ステップＳ２１で取得したケイパビリティ情報を用いてＯＣＲ処理を実行させる画像処理装置を選定する（ステップＳ２３：ＯＣＲ依頼先決定処理）。ここで選定の候補となる画像処理装置にはマスタ機自身も含まれる。次いで、マスタ機は、選定した画像処理装置に対してＯＣＲエンジンの起動を要求する（ステップＳ２４）。尚、ＯＣＲエンジンを停止する時に備え、マスタ機は、ＯＣＲエンジン起動処理時にはＯＣＲエンジンの起動を要求した対象のスレーブ機を識別するための識別情報をＲＡＭ１０３などのメモリに記憶する。
【００２２】
次に、図１４のステップ１３で画像処理装置が実行するＯＣＲ処理の手順について図１７を用いて説明する。ここではマスタ機となる画像処理装置は、読み取った原稿画像の１ページ毎にＯＣＲ処理を実行可能な画像処理装置を検索してその中からＯＣＲ処理を実行させる画像処理装置を選定し、選定した画像処理装置に対してＯＣＲ処理の実行を要求する。具体的には、マスタ機は、処理対象のページｎを‘１’とし（ステップＳ３０）、次いで、ｎページ目の原稿画像を取り出し（ステップＳ３１）、ＯＣＲ処理を実行可能な画像処理装置を検索する（ステップＳ３２：ＯＣＲ処理ノード検索処理）。尚、検索対象の画像処理装置には、マスタ機自体も含まれる。そして、該当の画像処理装置がある場合（ステップＳ３３：ＹＥＳ）、マスタ機は、該当の画像処理装置に対してＯＣＲ処理を要求するコマンド(ＯＣＲ処理要求)を送信する（ステップＳ３４）。図１８は、ＯＣＲ処理要求のデータ構成を例示する図である。そして、マスタ機は、ＯＣＲ処理要求に応じて応答コマンド(ＯＣＲ処理応答)を当該画像処理装置から受信すると（ステップＳ３５）、当該ＯＣＲ処理応答が、ＯＣＲ処理の実行が可能であることを示すか否かを判断する（ステップＳ３６）。図１９は、ＯＣＲ処理応答のデータ構成を例示する図である。処理対象のページｎを１つ増加させ（ステップＳ３７）、この次のページが存在するか否かを判断する（ステップＳ３８）。当該判断結果が否定的である場合は、ステップＳ３２に進み、当該判断結果が否定的である場合は、次いで、マスタ機は、ＯＣＲ処理が完了か否かを判断し（ステップＳ３９）、当該判断結果が肯定的である場合には、ＯＣＲ処理を終了する。
【００２３】
次に、図１４のステップ１５で画像処理装置が実行するＯＣＲエンジン停止処理の手順について図２０を用いて説明する。マスタ機となる画像処理装置は、自信のＯＣＲエンジンに対して、ＯＣＲエンジンの停止を要求するコマンド（ＯＣＲエンジン停止コマンド）を送信して、ＯＣＲエンジンを停止させる（ステップＳ４０）。また、マスタ機は、ＯＣＲエンジン起動処理時にメモリに記憶しておいた識別情報によって識別される全てのスレーブ機に対して、ＯＣＲエンジンの停止を要求するコマンドを送信して、ＯＣＲエンジンを停止させる（ステップＳ４１）。
【００２４】
次に、図１８のステップ３２で画像処理装置が実行するＯＣＲ処理ノード検索処理の手順について図２１を用いて説明する。マスタ機は、ＯＣＲエンジンの実行を要求した対象の全ての画像処理装置に対して、現在のＯＣＲエンジンのステータス情報を要求するコマンド（ステータス情報要求）を送信する（ステップＳ５０）。図２２は、ステータス情報要求のデータ構成を例示する図である。そして、マスタ機は、ステータス情報要求に応じてステータス情報を含むステータス応答を受信し（ステップＳ５１）、ＯＣＲエンジンの実行を要求した対象の全ての画像処理装置からステータス応答を受信した場合（ステップＳ５２：ＹＥＳ）、ＯＣＲ処理を実行可能な画像処理装置かあるか否かを判断する（ステップＳ５３）。図２３は、ステータス応答のデータ構成を例示する図である。そして、ステップＳ５３の判断結果が肯定的である場合、マスタ機は、ＯＣＲ処理を実行させる画像処理装置を以下のようにして選定する（ステップＳ５４）。図２３に示される‘reqcnt < maxreq’の条件を満たしている画像処理装置の中から、最も画像処理性能が高い画像処理装置を選定する。もし複数の画像処理装置が同一の画像処理性能を有する場合には、リモートノードよりもローカルノードを優先し、さらに複数のリモートノードが同一の画像処理性能を持っていた場合には、その中からランダムに画像処理装置を選定する。そして、マスタ機は、選定結果を返す（ステップＳ５５）。ステップＳ５３の判断結果が否定的である場合、マスタ機は、選定可能な画像処理装置がない旨を返す（ステップＳ５６）。
【００２５】
次に、図１７のステップ２１で画像処理装置が実行する他機検索処理の手順について図２４を用いて説明する。マスタ機は、スレーブ機の存在を確認するコマンド（スレーブ機存在確認要求）を画像処理システムに接続される画像処理装置に対してブロードキャストする（ステップＳ６０）。図２５は、スレーブ機存在確認要求のデータ構成を例示する図である。そして、マスタ機は、当該スレーブ機確認要求に対する応答として、スレーブ機である旨を示しＩＰアドレスを含む応答コマンド（スレーブ機存在確認応答）を他の画像処理装置から所定の時間内に受信すると（ステップＳ６１）、当該応答コマンドに含まれるＩＰアドレスを他機検索結果テーブル（図６参照）に記憶する（ステップＳ６２）。図２６は、スレーブ機存在確認応答のデータ構成を例示する図である。尚、スレーブ機存在確認応答を所定の時間内に受信できなかった場合は（ステップＳ６３：ＹＥＳ）、処理を終了する。
【００２６】
次に、図１７のステップ２２で画像処理装置が実行するケイパビリティ情報取得処理の手順について図２７を用いて説明する。マスタ機となる画像処理装置は、自身のｒｐｌｄに対してケイパビリティ要求を送信する（ステップＳ７０）。そして、マスタ機は、他機検索結果テーブルに登録されている全ての他の画像処理装置のｒｐｌｄに対してケイパビリティ要求を送信する（ステップＳ７１）。そして、マスタ機は、所定の時間内に、ケイパビリティ要求に応じてケイパビリティ情報を含むケイパビリティ応答を受信すると（ステップＳ７２：ＹＥＳ）、ケイパビリティ情報をケイパビリティ情報テーブルに登録する（ステップＳ７３）。図２８はケイパビリティ応答である応答コマンドを例示する図である。尚、マスタ機は、所定の時間内にケイパビリティ応答を受信できなかった場合（ステップＳ６４：ＹＥＳ）、処理を終了する。
【００２７】
次に、図１７のステップ２３で画像処理装置が実行するＯＣＲ依頼先決定処理の手順について図２９を用いて説明する。マスタ機となる画像処理装置は、ＯＣＲ処理を実行させる画像処理装置を選定するための引数として‘sel’を’−１’に設定し（ステップＳ８０）、次いで、図５に示したケイパビリティ情報テーブルにおけるレコード番号（No）を’i’としてこれを’０’に設定する（ステップＳ８１）。そして、マスタ機は、ケイパビリティ情報テーブルにおけるi番目のレコードが空であるか否かを判断する（ステップＳ８２）。当該判断結果が否定的である場合、i番目のレコードにおける空きメモリサイズが、ＯＣＲエンジンの実行に必要となるメモリサイズ以上であるか否かを判断する（ステップＳ８３）。ＯＣＲエンジンの実行に必要となるメモリサイズは、予め定められており、その値は例えばＨＤＤ１０８に記憶されている。当該判断結果が肯定的である場合、マスタ機は、i番目のレコードにおける実行可能言語がＯＣＲ処理の実行可能な言語（ここでは、Java(登録商標）である）であるか否かを判断する（ステップＳ８４）。当該判断結果が肯定的である場合、マスタ機は、’sel’が’−１’か否かを判断する（ステップＳ８５）。当該判断結果が否定的である場合、マスタ機は、i番目のレコードにおける画像処理性能の値が、’sel’の値をレコード番号とするレコードにおける画像処理性能の値より大きいか否かを判断する（ステップＳ８６）。当該判断結果が肯定的である場合、マスタ機は、’sel’の値を’i’の値に設定し（ステップＳ８７）、次いで、’i’の値を１つインクリメントして（ステップＳ８８）、ステップＳ８２に進む。ステップＳ８５の判断結果が肯定的である場合は、ステップＳ８７に進む。ステップＳ８３，Ｓ８４，Ｓ８５の判断結果が各々否定的である場合は、ステップＳ８８に進む。ステップＳ８２の判断結果が肯定的である場合は、マスタ機は、’sel’の値を返す（ステップＳ８９）。
【００２８】
この結果、この’sel’ 値をレコード番号とするレコードにおけるＩＰアドレスによって識別される画像処理装置が、ＯＣＲ処理を実行させる画像処理装置として選定される。このようにして、マスタ機は、ＯＣＲエンジンの実行に必要となるメモリ容量を上まわるフリーメモリが残っている画像処理装置の中で、最も画像処理性能が高い画像処理装置機を選定する。尚選定する画像処理装置は複数であっても良い。
【００２９】
次に、本実施の形態にかかる画像処理装置がＯＣＲエンジンにより実行する処理の手順について図３０を用いて説明する。ＯＣＲエンジンを実行している画像処理装置は、ＯＣＲアプリからコマンドを受信すると（ステップＳ９０）、当該コマンドの種別を判断して（ステップＳ９２）、種別に応じた処理を実行する。当該コマンドがＯＣＲ処理要求である場合、画像処理装置は、現在の受付済みＯＣＲ処理要求数とＯＣＲ処理要求の最大受付可能数とを比較して、前者が後者よりも小さいか否かを判断する（ステップＳ９２）。前者が後者よりも小さい場合（ステップＳ９２：ＹＥＳ）、ＯＣＲ処理要求を受け入れ可能であり、この場合、画像処理装置は、「要求受付成功」である旨をＯＣＲアプリに対して通知し（ステップＳ９３）、ステップＳ９０で受信したＯＣＲ処理要求を登録する（ステップＳ９４）。そして、画像処理装置は、当該ＯＣＲ処理要求よりも前に受信されたＯＣＲ処理要求に応じた画像転送処理を実行している最中か否かを判断し（ステップＳ９５）、当該判断結果が否定的である場合に、ステップＳ９０で受信したＯＣＲ処理要求に応じた原稿画像を受信する画像転送処理を開始する（ステップＳ９６）。即ち、画像処理装置は、画像転送処理を実行している最中に、ＯＣＲ処理を要求する新たなコマンドを受信した場合、当該コマンドをキューイングし、実行中の画像転送処理が終わった時に、当該コマンドに応じた新たな画像転送処理を開始する。一方、ステップＳ９２で前者が後者以上である場合（ステップＳ９２：ＮＯ）、ＯＣＲ処理要求を受付することが不可能であり、この場合、画像処理装置は、「要求受付失敗」である旨をＯＣＲアプリに対して通知する（ステップＳ９８）。また、ステップＳ９０で受信したコマンドがステータス要求である場合、画像処理装置は、当該コマンドを送信した画像処理装置に対して、現在の受付済みＯＣＲ処理要求数とＯＣＲ処理要求の最大受付可能数とを通知する（ステップＳ９７）。
【００３０】
また、ステップＳ９０でコマンドが受信されていない場合、画像処理装置は、画像転送処理が完了したか否かを判断し（ステップＳ９９）、当該判断結果が肯定的である場合、ＯＣＲ処理を実行している最中か否かを判断する（ステップＳ１００）。当該判断結果が否定的である場合、画像処理装置は、ＯＣＲ処理を開始し（ステップＳ１０１）、次いで、画像転送待ちの要求があるか否かを判断する（ステップＳ１０２）。当該判断結果が肯定的である場合、画像処理装置は、画像転送処理を開始する（ステップＳ１０３）。ステップＳ１００の判断結果が肯定的である場合は、ステップＳ１０２に進む。ステップＳ９９の判断結果が否定的である場合、画像処理装置は、ＯＣＲ処理が完了したか否かを判断する（ステップＳ１０４）。当該判断結果が肯定的である場合、画像処理装置は、ＯＣＲ処理要求を送信したＯＣＲアプリに対して、ＯＣＲ処理の結果を示すＯＣＲ処理結果を通知する（ステップＳ１０５）。図３１はＯＣＲ処理結果を例示する図である。次いで、画像処理装置は、ＯＣＲ処理待ちの要求があるか否かを判断し（ステップＳ１０６）、当該判断結果が肯定的である場合、ＯＣＲ処理を開始する（ステップＳ１０７）。このようにして、画像処理装置は、原稿画像の受信が完了する毎に実際のＯＣＲ処理を実行し、他の画像処理装置から転送される原稿画像を受信する画像転送処理を開始する。尚、ＯＣＲ処理の内容については既知の技術であるため、その詳細な説明は省略する。
【００３１】
図３２は、上述したＯＣＲアプリが実行される場合にマスタ機とスレーブ機とでコマンドが送受信される様子を模式的に示す図である。なお原稿画像についてＯＣＲ処理を実行する箇所については全てのコマンドを図示するとあまりに繁雑な図となってしまうため、代表的なコマンドのみを示している。同図においては、原稿画像の１，３ページ目についてはマスタ機がＯＣＲ処理を実行し、２ページ目についてはマスタ機からスレーブ機に対してＯＣＲ処理が要求されて当該スレーブ機がＯＣＲ処理を実行していることが示されている。
【００３２】
図３３は、上述したＯＣＲ処理を実行する場合にマスタ機とスレーブ機とでコマンドと原稿画像とが送受信される様子を模式的に示す図である。ここでは、ＯＣＲエンジンのＯＣＲ処理要求の最大受付可能数が‘１’であるとする。この例では、ＯＣＲエンジンがＯＣＲ処理要求を受信すると、上述の画像転送処理を実行しその原稿画像に対するＯＣＲ処理が完了するまでは新たなＯＣＲ処理要求を受け付けることができない。このため、同図においては、各ページの原稿画像に対してＯＣＲ処理を実行している間には画像転送時間分の空き時間が生じてしまっており、各画像処理装置のＣＰＵが効率的に利用されていないことが示されている。
【００３３】
図３４は、上述したＯＣＲエンジンのＯＣＲ処理要求の最大受付可能数が‘２’であるとき、ＯＣＲ処理を実行する場合にマスタ機とスレーブ機とでコマンドと原稿画像とが送受信される様子を模式的に示す図である。この例では、ＯＣＲエンジンがＯＣＲ処理要求を受信すると、上述の画像転送処理を実行しその原稿画像に対するＯＣＲ処理を実行している最中に、新たなＯＣＲ処理要求を受け付けて、新たな画像転送処理を実行することができる。このため、１ページ分の原稿画像のデータの転送時間がＯＣＲ処理に掛かる時間以内に収まる場合には、ＯＣＲ処理を連続的に実行することが可能となり、各画像処理装置のＣＰＵが効率的に利用されることが示されている。
【００３４】
図３５は、画像処理装置が、複数のＯＣＲ処理要求を受信した場合に、ＯＣＲエンジン側でそれらのＯＣＲ処理要求をキューイングして管理している様子を示す図である。それぞれのＯＣＲ処理要求にはリクエストＩＤが割り振られ、その進行状態（ステート）が例えばＲＡＭ１０３などのメモリにテーブルとして記憶される。ステートには「画像転送待ち」、「画像転送中」、「ＯＣＲ待ち」、「ＯＣＲ中」が定義されており、この順に状態が遷移していくことを示している。
【００３５】
以上のようにして、本実施の形態においては、印刷処理以外の画像処理であるＯＣＲ処理についても複数の画像処理装置が分散して実行することが可能になる。従って、処理負荷が高い画像処理であっても、処理性能を高めることができ、画像処理装置の使い勝手が向上する。また、ネットワーク上のどの画像処理装置であっても、分散処理による性能向上の恩恵を受けることができるため、画像処理装置の使い勝手が向上する。
【００３６】
また、スレーブ機が元々備えていない画像処理機能であっても、マスタ機からスレーブ機に対して画像処理を要求することができる。このため、ネットワーク上に新旧の画像処理装置が混在していて各画像処理装置が備えている機能が異なっている場合であっても、分散処理による性能向上の恩恵を受けることができ、画像処理システムとしての使い勝手が向上する。
【００３７】
また、画像処理装置がネットワークファイルサーバ機能を有するため、例えば、スレーブ機となる画像処理装置は、ＯＣＲ処理を実行するためのプログラムをマスタ機となる画像処理装置からダウンロードすることにより取得することもできる。また、あるマスタ機のみが備えている機能を実現するプログラムファイルをそのマスタ機にのみ格納しておくようにすることもできる。この場合、機器管理者がプログラムの更新を行う場合の作業負荷も軽減される。このため、画像処理装置の使い勝手が向上する。また、ネットワークファイルサーバ機能を提供するための専用サーバを用意する必要がなくなるため、画像処理システムの使い勝手が向上する。
【００３８】
また、ある機能を実現しているプログラムを実行するために必要なファイル（例えばＯＣＲ処理の場合、文字パターンファイルや辞書ファイル等）を一元管理することが可能となるため、画像処理システムの使い勝手が向上する。
【００３９】
また、各スレーブ機に採用されているＣＰＵやＯＳが混在している場合であって、一種類のプログラムファイルを用意しておけばよいため、画像処理システムの使い勝手が向上する。またマスタ機とスレーブ機とのＣＰＵやＯＳが異なっている場合であっても、マスタ機からスレーブ機の間で分散処理を実行することが可能となる。このため、画像処理システムとしての使い勝手が向上する。
【００４０】
また、分散処理を行う各画像処理装置の画像処理性能が異なっている場合であっても、その性能に応じた処理を分担することができる。このため、画像処理システム全体としての生産性が向上する。
【００４１】
また、各スレーブ機の負荷状態や要求の受け入れ能力に従って画像処理要求を発行することが可能となる。このため、画像処理システム全体としての処理効率が向上する。従って、画像処理システム全体としての生産性が向上する。
【００４２】
また、スレーブ機としての役割を果たしえる画像処理装置が複数存在しているような場合に、例えばＣＰＵの性能が高い装置に処理を分担することが可能となる。このため、画像処理システム全体としての生産性が向上する。
【００４３】
また、次の画像処理要求を伝えるための通信オーバーヘッドを前の画像処理時間の中に隠蔽することが可能となる。このため、画像処理システム全体としての生産性が向上する。
【００４４】
また、マスタ機側では必要な時にのみオンデマンドでプログラムを実行しているため、メモリやＣＰＵの能力を有効に活用することができるようになる。このため、画像処理装置の低コスト化を図ることができる。
【００４５】
[変形例]
なお、本発明は前記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、前記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。また、以下に例示するような種々の変形が可能である。
【００４６】
上述した実施の形態において、画像処理装置で実行される各種モジュール（プログラム）を、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また当該各種プログラムを、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤ（Digital Versatile Disk）等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成しても良い。
【００４７】
上述の実施の形態においては、複数の画像処理装置で分散して実行する画像処理をＯＣＲ処理としたが、これに限らず、例えば画像圧縮処理、読み取り画像のスキュー（傾き）補正処理などの画像処理であっても良い。
【００４８】
上述の実施の形態においては、ＯＣＲ処理を実行するためのプログラムは、Java(登録商標）プログラムであるとしたが、これに限らず、その他のスクリプト言語で記述されたプログラムであっても良い。
【図面の簡単な説明】
【００４９】
【図１】一実施の形態にかかる画像処理システムの構成の１例を示す図である。
【図２】同実施の形態にかかる画像処理装置の構成を示す図である。
【図３】同実施の形態にかかる画像処理装置のソフトウェア構成を示す図である。
【図４】同実施の形態にかかる画像処理装置のソフトウェア構成を示す図である。
【図５】同実施の形態にかかるケイパビリティ情報テーブルを示す図である。
【図６】同実施の形態にかかる他機検索結果テーブルを例示する図である。
【図７】同実施の形態にかかるモジュール間の関連を示す図である。
【図８】同実施の形態にかかるモジュール間の関連を示す図である。
【図９】同実施の形態にかかるスレーブ機側がファイルサーバ上のファイルやマスタ機側のファイルにアクセスする際の経路を示す図である。
【図１０】同実施の形態にかかる画像処理装置のリモートプログラム起動デーモンによる処理の手順を示すフローチャートである。
【図１１】同実施の形態にかかるケイパビリティ要求のデータ構成を例示する図である。
【図１２】同実施の形態にかかるプロセス起動要求のデータ構成を例示する図である。
【図１３】同実施の形態にかかるプロセス停止要求のデータ構成を例示する図である。
【図１４】同実施の形態にかかる画像処理装置のＯＣＲアプリによりＯＣＲ処理を制御する処理の手順を示すフローチャートである。
【図１５】同実施の形態にかかる操作パネルを例示する図である。
【図１６】同実施の形態にかかるＯＣＲエンジン起動処理の手順を示すフローチャートである。
【図１７】同実施の形態にかかるＯＣＲ処理の手順を示すフローチャートである。
【図１８】同実施の形態にかかるＯＣＲ処理要求のデータ構成を例示する図である。
【図１９】同実施の形態にかかるＯＣＲ処理応答のデータ構成を例示する図である。
【図２０】同実施の形態にかかるＯＣＲエンジン停止処理の手順を示すフローチャートである。
【図２１】同実施の形態にかかるＯＣＲ処理ノード検索処理の手順を示すフローチャートである。
【図２２】同実施の形態にかかるステータス情報要求のデータ構成を例示する図である。
【図２３】同実施の形態にかかるステータス応答のデータ構成を例示する図である。
【図２４】同実施の形態にかかる他機検索処理の手順を示すフローチャートである。
【図２５】同実施の形態にかかるスレーブ機存在確認要求のデータ構成を例示する図である。
【図２６】同実施の形態にかかるスレーブ機存在確認応答のデータ構成を例示する図である。
【図２７】同実施の形態にかかるケイパビリティ情報取得処理の手順を示すフローチャートである。
【図２８】同実施の形態にかかるケイパビリティ応答である応答コマンドを例示する図である。
【図２９】同実施の形態にかかるＯＣＲ依頼先決定処理の手順を示すフローチャートである。
【図３０】同実施の形態にかかる画像処理装置がＯＣＲエンジンにより実行する処理の手順を示すフローチャートである。
【図３１】同実施の形態にかかるＯＣＲ処理結果を例示する図である。
【図３２】同実施の形態にかかるＯＣＲアプリが実行される場合にマスタ機とスレーブ機とでコマンドが送受信される様子を模式的に示す図である。
【図３３】同実施の形態にかかるＯＣＲ処理を実行する場合にマスタ機とスレーブ機とでコマンドと原稿画像とが送受信される様子を模式的に示す図である。
【図３４】同実施の形態にかかるＯＯＣＲエンジンのＯＣＲ処理要求の最大受付可能数が‘２’であるとき、ＯＣＲ処理を実行する場合にマスタ機とスレーブ機とでコマンドと原稿画像とが送受信される様子を模式的に示す図である。
【図３５】同実施の形態にかかる画像処理装置が、複数のＯＣＲ処理要求を受信した場合に、ＯＣＲエンジン側でそれらのＯＣＲ処理要求をキューイングして管理している様子を示す図である。
【符号の説明】
【００５０】
１０１  エンジン
１０２  コントローラ
１０３  ＲＡＭ
１０４  ＡＳＩＣ
１０５  ＣＰＵ
１０６  フォントＲＯＭ
１０７  エンジンＩ／Ｆ
１０８  ＨＤＤ
１０９  ＲＯＭ
２０１,２０１，２０２，２０３，２０４，２０５  画像処理装置
【図１】
2010068373.tif 000003
【図２】
2010068373.tif 000004
【図３】
2010068373.tif 000005
【図４】
2010068373.tif 000006
【図５】
2010068373.tif 000007
【図６】
2010068373.tif 000008
【図７】
2010068373.tif 000009
【図８】
2010068373.tif 000010
【図９】
2010068373.tif 000011
【図１０】
2010068373.tif 000012
【図１１】
2010068373.tif 000013
【図１２】
2010068373.tif 000014
【図１３】
2010068373.tif 000015
【図１４】
2010068373.tif 000016
【図１５】
2010068373.tif 000017
【図１６】
2010068373.tif 000018
【図１７】
2010068373.tif 000019
【図１８】
2010068373.tif 000020
【図１９】
2010068373.tif 000021
【図２０】
2010068373.tif 000022
【図２１】
2010068373.tif 000023
【図２２】
2010068373.tif 000024
【図２３】
2010068373.tif 000025
【図２４】
2010068373.tif 000026
【図２５】
2010068373.tif 000027
【図２６】
2010068373.tif 000028
【図２７】
2010068373.tif 000029
【図２８】
2010068373.tif 000030
【図２９】
2010068373.tif 000031
【図３０】
2010068373.tif 000032
【図３１】
2010068373.tif 000033
【図３２】
2010068373.tif 000034
【図３３】
2010068373.tif 000035
【図３４】
2010068373.tif 000036
【図３５】
2010068373.tif 000037