(57)【特許請求の範囲】
【請求項１】
コンテンツを伴うジョブを実行する画像処理装置であって、
前記ジョブの状態をジョブステータスによって管理するジョブリストと、
前記コンテンツのページ毎の状態を、ページステータスによってページ単位で管理するページリストと、
前記ジョブから派生した複数の子ジョブの動作中に、自装置内のモジュールの再立ち上げ要求があると、再立ち上げの対象となる前記モジュールを利用する前記子ジョブに中断準備要求を行い、再立ち上げ後に前記子ジョブを前記ジョブリストに基づいて再開させる子ジョブ再開要求を行うジョブ管理手段と、
前記中断準備要求があると、前記ジョブステータス及びページステータスに基づき、処理中の前記コンテンツのページに対する処理が終了するタイミングで処理を中断し、前記子ジョブ再開要求があると、前記ジョブリストに基づいて前記コンテンツのページに対する処理を再開する子ジョブと
を備えた画像処理装置。
【請求項２】
中断している前記子ジョブがあっても、前記再立ち上げの対象となる前記モジュールを利用しない前記子ジョブは、前記ページリストを参照して動作可能であること
を特徴とする請求項１記載の画像処理装置。
【請求項３】
前記ジョブリスト及びページリストは、前記コンテンツへのポインタを保持していること
を特徴とする請求項１記載の画像処理装置。
【請求項４】
前記子ジョブは、前記自装置自体の再立ち上げ要求があると、前記コンテンツを不揮発メモリに保持し、前記自装置内のモジュールの再立ち上げ要求があると、前記コンテンツを前記自装置内の揮発性メモリに保持すること
を特徴とする請求項１記載の画像処理装置。
【請求項５】
前記子ジョブは、前記自装置自体の再立ち上げ要求があると、前記コンテンツをネットワーク経由で接続された他装置に保持し、前記自装置内のモジュールの再立ち上げ要求があると、前記コンテンツを前記自装置内に保持すること
を特徴とする請求項１記載の画像処理装置。
【請求項６】
前記子ジョブは、自装置内のモジュールの再立ち上げ要求があると、中断させた前記コンテンツのページに対する処理をネットワーク経由で接続された他装置に代行動作させること
を特徴とする請求項１記載の画像処理装置。
【請求項７】
前記子ジョブは、自装置内のモジュールの再立ち上げ要求があると、中断させた前記コンテンツのページに対する処理をネットワーク経由で接続された他装置と平行動作させること
を特徴とする請求項１記載の画像処理装置。
【請求項８】
前記子ジョブは、ＯＣＲ処理であり、前記コンテンツをネットワーク経由で接続された他装置に送信し、前記他装置でＯＣＲ処理させること
を特徴とする請求項１記載の画像処理装置。
【請求項９】
前記子ジョブは、ＯＣＲ処理の画像認識処理である場合に、自装置内でＯＣＲ処理の画像補正処理、ネットワーク経由で接続された他装置でＯＣＲ処理の画像認識処理を行わせること
を特徴とする請求項１記載の画像処理装置。
【請求項１０】
前記子ジョブは、前記コンテンツのページに対する処理の終了時に、利用していた前記コンテンツを消去すること
を特徴とする請求項１記載の画像処理装置。
【請求項１１】
コンテンツを伴うジョブを実行する画像処理装置のジョブ管理方法であって、
前記ジョブの状態をジョブステータスによって管理するステップと、
前記コンテンツのページ毎の状態を、ページステータスによってページ単位で管理するステップと、
前記ジョブから派生した複数の子ジョブの動作中に、自装置内のモジュールの再立ち上げ要求があると、再立ち上げの対象となる前記モジュールを利用する前記子ジョブに中断準備要求を行うステップと、
前記中断準備要求があると、前記ジョブステータス及びページステータスに基づき、処理中の前記コンテンツのページに対する処理が終了するタイミングで処理を中断するステップと、
再立ち上げ後に前記子ジョブを前記ジョブの状態に基づいて再開させる子ジョブ再開要求を行うステップと、
前記子ジョブ再開要求があると、前記ジョブリストに基づいて前記コンテンツのページに対する処理を再開するステップと
を備えたジョブ管理方法。
【請求項１２】
中断している前記子ジョブがあっても、前記再立ち上げの対象となる前記モジュールを利用しない前記子ジョブは、前記ページ単位で管理された前記コンテンツの状態を参照して動作可能であること
を特徴とする請求項１１記載のジョブ管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置およびジョブ管理方法に係り、特にコンテンツを伴うジョブを実行する画像処理装置及びそのジョブを管理するジョブ管理方法に関する。
【背景技術】
【０００２】
近年、プリンタ，コピー，ファクシミリ，スキャナ等の各装置の機能を１つの筐体内に収納した画像処理装置の一例である複合機が知られるようになった。複合機は、１つの筐体内にプロッタ，スキャナ等を設けると共に、プリンタ，コピー，ファクシミリ，スキャナ等にそれぞれ対応するソフトウェアを設け、それらのソフトウェアを切り替えることにより、プリンタ，コピー，ファクシミリ，スキャナ等として動作させるものである（例えば、特許文献１参照）。
【０００３】
この複合機は、各種処理をジョブと呼ばれる処理単位で実行する。例えばコピーを行なう場合、複合機は原稿を読み取る処理と読み取った原稿を印刷する処理とを行なう為、スキャンジョブとプリントジョブとを発生することになる。
【０００４】
このようなジョブは、処理の過程でより細かいジョブに派生することがある。図１はジョブの派生を示すイメージ図である。例えばスキャンｔｏメールを行なう場合、複合機にはスキャンｔｏメールジョブが発生する。そして、スキャンｔｏメールジョブは、処理の過程でスキャンジョブ，ＯＣＲジョブ，メール作成ジョブおよびメール送信ジョブに派生する。このように１つのジョブから新たなジョブが派生した場合は、前者をジョブ，後者を子ジョブと呼ぶことにする。
【０００５】
図１に示したジョブおよび子ジョブは、処理により画像，テキスト，メール等のコンテンツを生成している。例えばスキャンジョブは原稿をスキャンして画像を生成する。ＯＣＲジョブは、スキャンジョブが生成した画像を解析してテキストを生成する。メール作成ジョブは、ＯＣＲジョブが生成したテキストからメールを生成する。そして、メール送信ジョブはメール作成ジョブの生成したメールを送信する。図１に示したジョブ及び子ジョブはコンテンツを伴うものである。
【０００６】
ジョブ及び子ジョブは、スキャンモジュール，ＯＣＲモジュール，メールモジュール等の各種モジュールを利用して処理を実行する。このようなモジュールは、更新することにより不具合への対処や新たな機能の追加が可能である（例えば、特許文献２，特許文献３参照）。
【特許文献１】特開２００３−３４１１７５号公報
【特許文献２】特開２００４−２３４１５１号公報
【特許文献３】特開２００４−１９４２９８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
従来の複合機は、モジュールを更新する場合の他、機器管理者等からのリブート（再立ち上げ）要求があったときにも、モジュールのリブートを行っている。複合機は、ジョブおよび子ジョブの動作中に、一部のモジュールをリブートしようとする場合、全てのジョブおよび子ジョブの動作を中断し、リブート後に中断したジョブおよび子ジョブの動作を再開させていた。従来の複合機は、一部のモジュールをリブートしようとする場合であっても、全てのジョブおよび子ジョブの動作を中断しなければならなかった。
【０００８】
このように、従来の複合機は一部のモジュールをリブートする場合であっても、全てのジョブおよび子ジョブの動作を中断させなければならず、リブートしないモジュールを利用するジョブおよび子ジョブの処理効率が低下してしまうという問題があった。
【０００９】
本発明は、上記の点に鑑みなされたもので、処理効率の高い画像処理装置およびジョブ管理方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記課題を解決するため、本発明は、コンテンツを伴うジョブを実行する画像処理装置であって、前記ジョブの状態をジョブステータスによって管理するジョブリストと、前記コンテンツのページ毎の状態を、ページステータスによってページ単位で管理するページリストと、前記ジョブから派生した複数の子ジョブの動作中に、自装置内のモジュールの再立ち上げ要求があると、再立ち上げの対象となる前記モジュールを利用する前記子ジョブに中断準備要求を行い、再立ち上げ後に前記子ジョブを前記ジョブリストに基づいて再開させる子ジョブ再開要求を行うジョブ管理手段と、前記中断準備要求があると、前記ジョブステータス及びページステータスに基づき、処理中の前記コンテンツのページに対する処理が終了するタイミングで処理を中断し、前記子ジョブ再開要求があると、前記ジョブリストに基づいて前記コンテンツのページに対する処理を再開する子ジョブとを備えたことを特徴とする。
【００１１】
また、本発明は、コンテンツを伴うジョブを実行する画像処理装置のジョブ管理方法であって、前記ジョブの状態をジョブステータスによって管理するステップと、前記コンテンツのページ毎の状態を、ページステータスによってページ単位で管理するステップと、前記ジョブから派生した複数の子ジョブの動作中に、自装置内のモジュールの再立ち上げ要求があると、再立ち上げの対象となる前記モジュールを利用する前記子ジョブに中断準備要求を行うステップと、前記中断準備要求があると、前記ジョブステータス及びページステータスに基づき、処理中の前記コンテンツのページに対する処理が終了するタイミングで処理を中断するステップと、再立ち上げ後に前記子ジョブを前記ジョブの状態に基づいて再開させる子ジョブ再開要求を行うステップと、前記子ジョブ再開要求があると、前記ジョブリストに基づいて前記コンテンツのページに対する処理を再開するステップとを備えたことを特徴とする。
【発明の効果】
【００１２】
本発明によれば、処理効率の高い画像処理装置およびジョブ管理方法を提供できる。
【発明を実施するための最良の形態】
【００１３】
次に、本発明を実施するための最良の形態を、以下の実施例に基づき図面を参照しつつ説明していく。なお、以下の実施例では、画像処理装置の一例として複合機（ＭＦＰ）を例に説明するが、画像形成に係る処理を行う如何なる画像処理装置であってもよい。更にジョブの一例としてスキャンｔｏメールジョブを例に説明するが、他のジョブであってもよい。
【００１４】
まず、ジョブ及びコンテンツのライフタイムについて説明する。図２は、ジョブ及びコンテンツのライフタイムを表した一例の説明図である。上段は、図１に示したジョブ及び子ジョブのライフタイムを表している。下段は、図１に示した子ジョブが生成したコンテンツを表している。図２の横軸は、時間経過を表している。
【００１５】
上段の範囲１は、スキャンジョブが、原稿を１ページから１００ページまでスキャンして画像を生成する時間を表している。範囲２は、ＯＣＲジョブが、画像をテキスト化するまでの時間を表している。範囲３は、メール作成ジョブが、テキストからメールを生成するまでの時間を表している。範囲４は、メール送信ジョブが、メールを送信するまでの時間を表している。
【００１６】
下段の斜線に示す範囲５は、画像の生成から消去まで、言い換えれば画像が複合機内に存在している時間をページ単位で表している。画像は、ＯＣＲジョブによりテキスト化された後で消去される。範囲６は、テキストの生成から消去までの時間を表している。範囲７は、メールの作成から送信までの時間を表している。図２に示したように、図１のジョブ及び子ジョブはコンテンツを伴うものであり、複数の子ジョブが連携してコンテンツを処理していくことで、各種処理を実現できる。
【００１７】
なお、図１の子ジョブは図３に示すように１つの複合機上で動作させるようにしてもよいし、図４に示すように複合機とサーバとで分散して子ジョブを動作させるようにしてもよい。図３は１つの複合機上で子ジョブを動作させる一例のシステム構成図である。図４は、複合機とサーバとで分散して複数の子ジョブを動作させる一例のシステム構成図である。
【００１８】
図３の場合、複合機１０のスキャンジョブ１１は原稿２０をスキャンして画像２１を生成する。ＯＣＲジョブ１２は、スキャンジョブ１１が生成した画像２１を解析してテキスト２２を生成する。メール作成ジョブ１３は、ＯＣＲジョブ１２が生成したテキスト２２からメール２３を生成する。そして、メール送信ジョブ１４はメール作成ジョブ１３の生成したメール２３を送信する。
【００１９】
図４の場合、複合機１０のスキャンジョブ１１は原稿２０をスキャンして画像２１を生成する。画像２１は、複合機１０からサーバ３０に送信される。サーバ３０のＯＣＲジョブ１２は、複合機１０のスキャンジョブ１１が生成した画像２１を解析してテキスト２２を生成する。
【００２０】
メール作成ジョブ１３は、ＯＣＲジョブ１２が生成したテキスト２２からメール２３を生成する。そして、メール送信ジョブ１４はメール作成ジョブ１３の生成したメール２３を送信する。
【００２１】
ここでは、図３に示すように１つの複合機１０上で子ジョブを動作させる例について説明する。例えば図２の点線８のタイミングでリブート要求があると、複合機は図５に示すシーケンス図のようにジョブの中断を行う。図５は、ジョブを中断する処理の手順を表す一例のシーケンス図である。図６は複合機の一例のソフトウェア構成図である。図７は複合機の一例のハードウェア構成図である。
【００２２】
複合機１０は、コントローラ６０，操作パネル８０，ＦＣＵ８１，エンジン部８２を有する。コントローラ６０は、ＣＰＵ６１，システムメモリ６２，ＮＢ６３，ＳＢ６４，ＡＳＩＣ６６，ローカルメモリ６７，ＨＤＤ６８、ＮＩＣ６９，ＵＳＢ  Ｉ／Ｆ７０，ＩＥＥＥ１３９４  Ｉ／Ｆ７１，セントロニクス  Ｉ／Ｆ７２を有する。
【００２３】
操作パネル８０は、コントローラ６０のＡＳＩＣ６６に接続されている。また、ＦＣＵ８１およびエンジン部８２はコントローラ６０のＡＳＩＣ６６にＰＣＩバス８３を介して接続されている。
【００２４】
コントローラ６０は、ＡＳＩＣ６６にローカルメモリ６７，ＨＤＤ６８などが接続されると共に、ＣＰＵ６１とＡＳＩＣ６６とがＣＰＵチップセットのＮＢ６３を介して接続されている。なお、ＡＳＩＣ６６とＮＢ６３とはＡＧＰ（Accelerated Graphics Port）６５を介して接続されている。
【００２５】
ＣＰＵ６１は、複合機１０の全体制御を行うものである。複合機１０では、ＣＰＵ６１が複数のサービスモジュールをＵＮＩＸ（登録商標）等のオペレーティングシステム（ＯＳ）上にプロセスとして起動させる。サービスモジュールは、ジョブ，子ジョブ又はアプリケーションからの要求を解釈してハードウェア資源を動作させる。
【００２６】
ＮＢ（ノースブリッジ）６３は、ＣＰＵ６１，システムメモリ６２，ＳＢ６４，ＡＳＩＣ６６，ＮＩＣ６９，ＵＳＢ  Ｉ／Ｆ７０，ＩＥＥＥ１３９４  Ｉ／Ｆ７１及びセントロニクス  Ｉ／Ｆ７２を接続するためのブリッジである。ＮＢ６３は、ＳＢ６４，ＮＩＣ６９，ＵＳＢ  Ｉ／Ｆ７０，ＩＥＥＥ１３９４  Ｉ／Ｆ７１及びセントロニクス  Ｉ／Ｆ７２とＰＣＩバス７３を介して接続されている。なお、ＳＢ（サウスブリッジ）６４は、ＰＣＩバス７３とＲＯＭや周辺デバイス等とを接続するためのブリッジである。
【００２７】
システムメモリ６２は、描画用メモリ等として用いるメモリである。ローカルメモリ６７は、コピー用画像バッファ，符号バッファ等として用いるメモリである。ＡＳＩＣ６６は、画像処理用のハードウェア要素を有する画像処理用途向けのＩＣである。また、ＨＤＤ６８は画像データ，文書データ，プログラム，フォントデータ，フォーム，ログ情報またはコンテンツなどを蓄積するストレージ（補助記憶装置）の一例である。
【００２８】
ＮＩＣ（ネットワークインターフェースカード）６９は、複合機１０をインターネットやＬＡＮ等のネットワークに接続するインターフェース機器である。また、ＵＳＢ  Ｉ／Ｆ７０，ＩＥＥＥ１３９４  Ｉ／Ｆ７１およびセントロニクス  Ｉ／Ｆ７２は、夫々の規格に準じたインターフェースである。
【００２９】
操作パネル８０は、操作者からの入力操作を受け付けると共に、操作者に向けた表示を行う操作部である。ＦＣＵ（ファックスコントロールユニット）８１は、ファックスユニットを管理する。エンジン部８２は、プリンタ，コピー，ファクシミリ，スキャナ等の機能を提供するソフトウェアやハードウェアのまとまりである。例えば印刷機構部分はプリンタエンジンと呼ばれる。
【００３０】
複合機１０のＣＰＵ６１は図６に示すように、ＯＳ１００上にリブートモジュール１０１，ジョブマネージャ１０２，スキャンモジュール１０３，ＯＣＲモジュール１０４及びメールモジュール１０５を起動させる。さらに、複合機１０のＣＰＵ６１は、スキャンモジュール１０３上にスキャンジョブ１１を動作させ，ＯＣＲモジュール１０４上にＯＣＲジョブ１２を動作させ，メールモジュール１０５上にメール作成ジョブ１３及びメール送信ジョブ１４を動作させる。
【００３１】
図６に示すリブートモジュール１０１，ジョブマネージャ１０２，スキャンモジュール１０３，ＯＣＲモジュール１０４，メールモジュール１０５，スキャンジョブ１１，ＯＣＲジョブ１２，メール作成ジョブ１３及びメール送信ジョブ１４の処理について、図５のシーケンス図を参照しつつ説明する。
【００３２】
図５のステップＳ１では、ジョブマネージャ１０２が、スキャンｔｏメールジョブを開始する。ステップＳ２〜Ｓ４に進み、ジョブマネージャ１０２はスキャンｔｏメールジョブから派生したスキャンジョブ１１，ＯＣＲジョブ１２，メール作成ジョブ１３，メール送信ジョブ１４の動作を開始させる。
【００３３】
ステップＳ５に進み、リブートモジュール１０１はリブート要求を受信する。リブート要求には、操作パネル８０から機器管理者が要求するもの、複合機１０にネットワークを介して接続されている他の機器（例えばＰＣ）から機器管理者が要求するもの、複合機１０自身が異常状態を検知して要求するもの、複合機１０にネットワークを介して接続されている他の機器から要求するもの（例えば自動的なソフトウェアアップデート）等が含まれる。
【００３４】
ステップＳ６に進み、リブートモジュール１０１は受信したリブート要求から中断・再立ち上げを行なうモジュールを判定する。ここではスキャンモジュール１０３が中断・再立ち上げを行なうモジュールと判定された例を説明する。
【００３５】
ステップＳ７に進み、リブートモジュール１０１はジョブマネージャ１０２にスキャンジョブリブート要求を送信する。ステップＳ８に進み、ジョブマネージャ１０２はスキャンモジュール１０３を利用するスキャンジョブ１１に中断準備要求を送信する。ステップＳ９に進み、スキャンジョブ１１はジョブリストの保存を含む中断処理を行なう。中断処理の詳細は後述する。中断処理が完了すると、スキャンジョブ１１は中断準備完了をジョブマネージャ１０２に通知する。ステップＳ１１に進み、ジョブマネージャ１０２は中断準備完了をリブートモジュール１０１に通知する。
【００３６】
ステップＳ１２に進み、リブートモジュール１０１は、スキャンモジュール１０３に中断・再立ち上げ要求を送信する。ステップＳ１３に進み、スキャンモジュール１０３は中断・再立ち上げを行なう。ステップＳ１４に進み、スキャンモジュール１０３は再立ち上げ完了をリブートモジュール１０１に通知する。
【００３７】
ステップＳ１５に進み、リブートモジュール１０１はスキャンジョブリブート完了通知をジョブマネージャ１０２に行なう。ステップＳ１６に進み、ジョブマネージャ１０２はスキャンジョブ１１に再開を通知する。ステップＳ１７に進み、スキャンジョブ１１はジョブリストを読み出し、そのジョブリストに基づいて動作を再開する。
【００３８】
なお、図５のシーケンス図ではスキャンモジュール１０３が中断・再立ち上げを行なうモジュールと判定された例を説明した。次に、図８のシーケンス図を用いて、スキャンモジュール１０３，ＯＣＲモジュール１０４，メールモジュール１０５が中断・再立ち上げを行なうモジュールと判定された例を説明する。
【００３９】
図８は、ジョブを中断する処理の手順を表す他の例のシーケンス図である。なお、ステップＳ２１〜Ｓ２５の処理は、図５のステップＳ１〜Ｓ５の処理と同様であるため、説明を省略する。ステップＳ２６に進み、リブートモジュール１０１は受信したリブート要求から中断・再立ち上げを行なうモジュールを判定する。ここではスキャンモジュール１０３，ＯＣＲモジュール１０４，メールモジュール１０５が中断・再立ち上げを行なうモジュールと判定された例を説明する。
【００４０】
ステップＳ２７に進み、リブートモジュール１０１はジョブマネージャ１０２にジョブリブート要求を送信する。ステップＳ２８〜Ｓ３０に進み、ジョブマネージャ１０２はスキャンモジュール１０３，ＯＣＲモジュール１０４，メールモジュール１０５を利用するスキャンジョブ１１，ＯＣＲジョブ１２，メール作成ジョブ１３及びメール送信ジョブ１４に中断準備要求を送信する。
【００４１】
ステップＳ３１〜Ｓ３３に進み、スキャンジョブ１１，ＯＣＲジョブ１２，メール作成ジョブ１３及びメール送信ジョブ１４は中断処理を行なう。中断処理が完了すると、スキャンジョブ１１，ＯＣＲジョブ１２，メール作成ジョブ１３及びメール送信ジョブ１４はステップＳ３４〜Ｓ３６に進み、中断準備完了をジョブマネージャ１０２に通知する。ジョブマネージャ１０２はステップＳ３７に進み、中断準備完了をリブートモジュール１０１に通知する。
【００４２】
ステップＳ３８に進み、リブートモジュール１０１は、スキャンモジュール１０３，ＯＣＲモジュール１０４，メールモジュール１０５に中断・再立ち上げ要求を送信する。ステップＳ３９に進み、スキャンモジュール１０３，ＯＣＲモジュール１０４，メールモジュール１０５は中断・再立ち上げを行なう。ステップＳ４０に進み、スキャンモジュール１０３，ＯＣＲモジュール１０４，メールモジュール１０５は再立ち上げ完了をリブートモジュール１０１に通知する。
【００４３】
ステップＳ４１に進み、リブートモジュール１０１はジョブリブート完了通知をジョブマネージャ１０２に行なう。ステップＳ４２〜Ｓ４４に進み、ジョブマネージャ１０２はスキャンジョブ１１，ＯＣＲジョブ１２，メール作成ジョブ１３及びメール送信ジョブ１４に再開を通知する。ステップＳ４５〜Ｓ４７に進み、スキャンジョブ１１，ＯＣＲジョブ１２，メール作成ジョブ１３及びメール送信ジョブ１４はジョブリストを読み出し、そのジョブリストに基づいて動作を再開する。
【００４４】
次に、本発明によるジョブ，コンテンツの管理に利用するジョブリスト，ページリストについて、図９及び図１０を参照しつつ説明する。図９は、ジョブリストの一例の構成図である。図１０は、ページリストの一例の構成図である。
【００４５】
図９のジョブリスト２００は、子ジョブリスト，ジョブステータス，ページポインタ及びジョブ固有情報を含む構成である。子ジョブリストは、そのジョブから派生した子ジョブのリストである。ジョブステータス２１０はジョブの状態を表す情報である。図１に示したジョブの場合、ジョブステータス２１０は、スキャン，スキャン＋ＯＣＲ化，ＯＣＲ化，メール作成，メール送信の順番で遷移する。ページポインタは、ページリスト２２０へのポインタである。ジョブ固有情報は、ジョブに固有の情報である。
【００４６】
ジョブリスト２００はジョブの状態をジョブステータスで表しているため、ジョブの中断時に行っていた動作を、ジョブの再開時に容易に確認できる。例えば図２の点線８のタイミングでリブート要求があった場合、ジョブリスト２００のジョブステータスはスキャン＋ＯＣＲ化となる。また、ジョブリスト２００は処理を行っていたページをページポインタで表しているため、ジョブの中断時に処理していたページを、ジョブの再開時に容易に確認できる。
【００４７】
ページリスト２２０は、通常、揮発性メモリに存在する。なお、複合機１０をリブートして再立ち上げ後にジョブを再開する場合、ページリスト２２０は不揮発メモリに存在する。また、スキャンジョブ１１のように最終ページまでスキャンしないと全ページ数が分からないジョブがあるので、ページリスト２２０はリスト構造となっている。
【００４８】
ページリスト２２０は、ページ番号，ページステータス，画像ポインタ，ＯＣＲテキストポインタ，ページ固有情報及び次ページへのポインタを含む構成である。なお、ページリスト２２０の構成はジョブの内容によって異なる。
【００４９】
ページ番号は各ページの識別子である。ページステータス２３０はページの状態を表す情報である。図１に示したジョブの場合、ページステータス２３０は、スキャン中，画像保存中，ＯＣＲ化，メール化の順番で遷移する。
【００５０】
画像ポインタは、画像２４０へのポインタである。画像２４０は揮発性メモリに余裕がある場合に揮発性メモリに存在し、揮発性メモリに余裕がない場合にＨＤＤ等の不揮発メモリに存在する。ＯＣＲテキストポインタは、テキスト２５０へのポインタである。テキスト２５０は揮発性メモリに余裕がある場合に揮発性メモリに存在し、揮発性メモリに余裕がない場合にＨＤＤ等の不揮発メモリに存在する。
【００５１】
ページリスト２２０はページの状態をページステータスで表しているため、子ジョブによる処理が、どのページまで処理されたか容易に確認できる。例えばスキャンジョブ１１によるスキャンが終了したページの場合、ページリスト２２０のページステータス２３０は画像保持中となる。
【００５２】
次に、スキャンジョブ１１が行なう中断処理について説明する。図１１は、スキャンジョブが行なう中断処理の一例のフローチャートである。ジョブマネージャ１０２から中断準備要求を受信すると、スキャンジョブ１１はステップＳ５１に進み、ジョブリスト２００のジョブステータスを確認し、スキャンが終了しているか否かを判定する。
【００５３】
スキャンが終了していれば、スキャンジョブ１１は中断処理を終了する。スキャンが終了していなければ、スキャンジョブ１１はステップＳ５２に進み、ページリスト２２０のページステータスを確認し、スキャン中のページがあるか否かを判定する。
【００５４】
スキャン中のページがあれば、スキャンジョブ１１はステップＳ５３に進み、スキャンが終了するのを待ち、スキャン終了後にステップＳ５４へ進む。スキャン中のページがなければ、スキャンジョブ１１はステップＳ５４に進む。
【００５５】
ステップＳ５４では、スキャンジョブ１１が、複合機１０全体の再立ち上げか否かを判定する。複合機１０全体の再立ち上げでなければ、スキャンジョブ１１は中断処理を終了する。複合機１０全体の再立ち上げであれば、スキャンジョブ１１はステップＳ５５に進み、ページリスト２２０のページステータスを確認し、画像保持中のページがあるか否かを判定する。画像保持中のページがあれば、スキャンジョブ１１は画像をＨＤＤ等の不揮発メモリに退避させる。画像保持中のページがなければ、スキャンジョブ１１は中断処理を終了する。
【００５６】
図１１の中断処理では複合機１０全体の再立ち上げであるときに、画像保持中のページがあれば、その画像をＨＤＤ等の不揮発メモリに退避させることができる。また、図１１の中断処理では複合機１０全体の再立ち上げでなければ、画像保持中のページの画像をＨＤＤ等の不揮発メモリに退避させない。
【００５７】
次に、スキャンモジュール１０３を再立ち上げした後のスキャンジョブ１１の処理について説明する。図１２は、スキャンジョブがスキャンモジュール再立ち上げ後に行なう処理の一例のフローチャートである。
【００５８】
スキャンモジュール１０３を再立ち上げ後に動作を再開すると、スキャンジョブ１１はステップＳ６１に進み、ジョブリスト２００のジョブステータスおよびページポインタを確認し、スキャンする原稿２０があるか否かを判定する。スキャンする原稿２０がなければスキャンジョブ１１は処理を終了する。
【００５９】
スキャンする原稿２０があればスキャンジョブ１１はステップＳ６２に進み、原稿２０をスキャンする。ステップＳ６３に進み、スキャンジョブ１１はスキャンした原稿２０のページリスト２２０を作成したあと、ステップＳ６１に戻る。図１２の処理では、スキャンモジュール１０３の再立ち上げ後であっても、スキャンする原稿２０があるか否かを判定して、スキャンジョブ１１を処理させることができる。
【００６０】
次に、ＯＣＲジョブ１２の処理について説明する。図１３は、ＯＣＲジョブが行なう処理の一例のフローチャートである。ステップＳ７１に進み、ＯＣＲジョブ１２はページリスト２２０の次ページへのポインタを確認し、次ページがあるか否かを判定する。
【００６１】
次ページがなければ、ＯＣＲジョブ１２は処理を終了する。次ページがあれば、ＯＣＲジョブ１２はステップＳ７２に進み、ページリスト２２０の画像ポインタを確認し、そのページの画像２４０があるか否かを判定する。画像２４０がなければ、ＯＣＲジョブ１２は画像待ち状態（スキャン待ち）となる。画像２４０があれば、ＯＣＲジョブ１２はステップＳ７３に進み、画像２４０を保持している場所が不揮発メモリであるＨＤＤ上か揮発性メモリ上かを判定する。
【００６２】
画像２４０を保持している場所がＨＤＤ上であれば、ＯＣＲジョブ１２はＨＤＤ上の画像２４０を揮発性メモリ上に展開し、ステップＳ７５に進む。一方、画像２４０を保持している場所が揮発性メモリ上であれば、ＯＣＲジョブ１２はステップＳ７５に進む。ステップＳ７５では、ＯＣＲジョブ１２が、揮発性メモリ上の画像２４０を解析してテキスト２５０を生成する。
【００６３】
図１３の処理では、ステップＳ７２の処理により、画像２４０がスキャンにより生成されるまで画像待ち状態（スキャン待ち）となる。ＯＣＲジョブ１２は、画像２４０がスキャンにより生成されると、その画像２４０を解析してテキスト２５０を生成する。したがって、ＯＣＲジョブ１２は例えばスキャンジョブ１１が中断しても、画像２４０が無くなるまで処理を続けることができる。また、ＯＣＲジョブ１２はスキャンジョブ１１が再開して画像２４０が生成されると、画像待ち状態から抜け出して処理を再開できる。
【００６４】
次に、図４に示すように複合機１０とサーバ３０とで分散して子ジョブを動作させる例について説明する。図１４は、ＯＣＲジョブをサーバに代行させるときのジョブのライフタイムを表した一例の説明図である。図１５は、ＯＣＲジョブをサーバに代行させるときのコンテンツの転送を表した一例の説明図である。図１４の横軸は、図２と同様に時間経過を表している。図１４及び図１５は、サーバ３０に画像２１を転送してＯＣＲ処理の全てを代行させる例を表している。
【００６５】
図１４の範囲３００は、スキャンジョブ１１が、原稿２０のスキャンを開始してから中断されるまでの時間を表している。範囲３０１は、ＯＣＲジョブ１２が、画像２１のテキスト化を開始してから中断されるまでの時間を表している。
【００６６】
範囲３０２は、複合機１０のスキャンジョブ１１が生成した画像２１をサーバ３０に画像転送するまでの時間を表している。また、範囲３０３は、サーバ３０のＯＣＲジョブ１２が、画像２１のテキスト化を行っている時間を表している。範囲３０４は、複合機１０のスキャンジョブ１１が再開してから、原稿２０のスキャンが終了するまでの時間を表している。範囲３０５は、複合機１０のＯＣＲジョブ１２が再開してから、画像２１のテキスト化が終了するまでの時間を表している。なお、サーバ３０のＯＣＲジョブ１２が生成したテキスト２２は、複合機１０に転送される。
【００６７】
図１６は、ＯＣＲジョブをサーバに代行させるときのジョブのライフタイムを表した他の例の説明図である。図１７は、ＯＣＲジョブをサーバに代行させるときのコンテンツの転送を表した他の例の説明図である。図１６の横軸は、図１４と同様に時間経過を表している。図１６及び図１７は、ＯＣＲ処理を分割し、複合機１０でＯＣＲ処理のうちの画像補正処理、サーバ３０でＯＣＲ処理のうちの画像認識処理を行う例を表している。
【００６８】
図１６の範囲４００は、スキャンジョブ１１が、原稿２０のスキャンを開始してから中断されるまでの時間を表している。範囲４０１は、ＯＣＲジョブ１２が、画像２１のテキスト化を開始してから中断されるまでの時間を表している。
【００６９】
範囲４０２は、複合機１０のＯＣＲジョブ１２が、画像２１（補正前画像）に画像補正処理を行い、補正後の画像（補正後画像）２４を生成するまでの時間を表している。範囲４０３は、補正後画像２４をサーバ３０に画像転送するまでの時間を表している。範囲４０４は、サーバ３０のＯＣＲジョブ１２が、補正後画像２４に画像認識処理を行い、テキスト２２を生成するまでの時間を表している。
【００７０】
範囲４０５は、複合機１０のスキャンジョブ１１が再開してから、原稿２０のスキャンが終了するまでの時間を表している。範囲４０６は、複合機１０のＯＣＲジョブ１２が再開してから、画像２１のテキスト化が終了するまでの時間を表している。なお、サーバ３０のＯＣＲジョブ１２が生成したテキスト２２は、複合機１０に転送される。
【００７１】
次に、ジョブリスト２００を保存するジョブリスト保存シーケンスについて図１８を参照しつつ説明する。図１８は、ジョブリスト保存シーケンスの一例の説明図である。ステップＳ１００では、ジョブリスト２００のジョブステータスがスキャンとなっている。中断準備要求があると、スキャンジョブ１１はステップＳ１０１に進み、スキャンが終了するのを待つ。
【００７２】
ステップＳ１０２に進み、スキャンジョブ１１はページリスト２２０のページステータスがスキャン中のページを確認する。なお、スキャンジョブ１１は新たなページをスキャン中にさせない。ステップＳ１０３に進み、スキャンジョブ１１は、スキャンが終わったページのページステータスを画像保持中とする。
【００７３】
全てのページがスキャン中でなくなれば、スキャンジョブ１１はステップＳ１０４に進み、画像を退避させる。スキャナモジュール１０３のリブート中は画像で揮発性メモリを占有したくないため、例えば不揮発メモリであるＨＤＤに画像を退避させることで、他の子ジョブが揮発性メモリを利用できるようにする。
【００７４】
画像をＨＤＤに退避させた場合は、ページリスト２２０の画像ポインタを修正する。画像ポインタは、ＨＤＤの場合に物理的ポインタとなり、ファイルで保存する場合にファイル名となる。画像を退避させる不揮発メモリはＨＤＤの他、画像データ保持媒体，ネットワーク先の機器や媒体であってもよい。ＯＣＲジョブ１２によるＯＣＲ化は継続できるのでテキストの退避を行わない。
【００７５】
次に、ジョブリスト２００を読み出すジョブリスト読み出しシーケンスについて図１９を参照しつつ説明する。図１９は、ジョブリスト読み出しシーケンスの一例の説明図である。ステップＳ２００は、スキャンモジュール１０３の再立ち上げ中である。ステップＳ２０１に進み、スキャンジョブ１１は再開される。ステップＳ２０２に進み、スキャンジョブ１１は、原稿がある場合、スキャンを再開する。スキャンジョブ１１は新たなページを生成する。
【００７６】
ステップＳ２０３に進み、スキャンジョブ１１は新たなページのページリスト２２０を作成し、そのページリスト２２０のページステータスを画像保持中とする。なお、ステップＳ２０１では、スキャンジョブ１１用の揮発性メモリを確保する。必要ならば、スキャンジョブ１１は退避させていた画像を揮発性メモリに戻す。さらに、退避させていた画像をＨＤＤから戻した場合は、ページリスト２２０の画像ポインタを修正する。ステップＳ２０４に進み、ジョブリスト２００のジョブステータスをスキャン中とする。
【００７７】
次に、揮発性メモリに割り当てられる画像の遷移を図２０を参照しつつ説明する。図２０は、揮発性メモリに割り当てられる画像の遷移を表した説明図である。図２０では揮発性メモリが４ページ分の画像を保持する例であり、数字が画像のページを表している。
【００７８】
揮発性メモリ５０１は、１ページ目のスキャンが終了し、１ページ目のＯＣＲ処理が開始されたときの様子を表している。揮発性メモリ５０２は、２ページ目のスキャンが終了したときの様子を表している。揮発性メモリ５０３は、３ページ目のスキャンが終了したときの様子を表している。
【００７９】
揮発性メモリ５０４は、１ページ目のＯＣＲ処理が終了し、２ページ目のＯＣＲ処理が開始され、４ページ目がスキャン中であるときの様子を表している。揮発性メモリ５０５は、１ページ目の画像が消去され、４ページ目のスキャンが終了したときの様子を表している。
【００８０】
揮発性メモリ５０６は、５ページ目のスキャン中に、６ページ目の領域を確保するために４ページ目の画像をＨＤＤに退避させたときの様子を表している。揮発性メモリ５０７は５ページ目のスキャンが終了したときの様子を表している。揮発性メモリ５０８は、６ページ目のスキャン中に中断準備要求が発生したときの様子を表している。
【００８１】
揮発性メモリ５０９は、６ページ目のスキャンが終了したときの様子を表している。揮発性メモリ５１０は、３，５及び６ページ目の画像をＨＤＤに退避させたときの様子を表している。３，５及び６ページ目の画像をＨＤＤに退避させることにより、他のジョブが揮発性メモリ５１０の空き領域を自由に使えるようになる。
【００８２】
揮発性メモリ５１１は、子ジョブの処理が再開されたときの様子を表している。揮発性メモリ５１２は、ＨＤＤに退避させていた３ページ目の画像を戻したときの様子を表している。なお、揮発性メモリ５１１は、６，７ページ目の領域を確保する為、４〜６ページ目の画像をそのままＨＤＤに退避させている。
【００８３】
なお、図１４〜図１７のように、ＯＣＲ処理を外部のサーバ３０に代行させる場合は図２１に示すようにページリスト２２０も外部のサーバ３０で保持することができる。図２１は、ページリストをサーバで保持する例を表した構成図である。
【００８４】
図２１は、３ページ目〜５ページ目までの画像のＯＣＲ処理をサーバ３０に代行させる例を表している。複合機１０のジョブリスト２００とサーバ３０のページリスト２２０とはジョブリスト２００のサーバ上のページリストへのポインタで関連付けられている。
【００８５】
本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【図面の簡単な説明】
【００８６】
【図１】ジョブの派生を示すイメージ図である。
【図２】ジョブ及びコンテンツのライフタイムを表した一例の説明図である。
【図３】１つの複合機上で子ジョブを動作させる一例のシステム構成図である。
【図４】複合機とサーバとで分散して複数の子ジョブを動作させる一例のシステム構成図である。
【図５】ジョブを中断する処理の手順を表す一例のシーケンス図である。
【図６】複合機の一例のソフトウェア構成図である。
【図７】複合機の一例のハードウェア構成図である。
【図８】ジョブを中断する処理の手順を表す他の例のシーケンス図である。
【図９】ジョブリストの一例の構成図である。
【図１０】ページリストの一例の構成図である。
【図１１】スキャンジョブが行なう中断処理の一例のフローチャートである。
【図１２】スキャンジョブがスキャンモジュール再立ち上げ後に行なう処理の一例のフローチャートである。
【図１３】ＯＣＲジョブが行なう処理の一例のフローチャートである。
【図１４】ＯＣＲジョブをサーバに代行させるときのジョブのライフタイムを表した一例の説明図である。
【図１５】ＯＣＲジョブをサーバに代行させるときのコンテンツの転送を表した一例の説明図である。
【図１６】ＯＣＲジョブをサーバに代行させるときのジョブのライフタイムを表した他の例の説明図である。
【図１７】ＯＣＲジョブをサーバに代行させるときのコンテンツの転送を表した他の例の説明図である。
【図１８】ジョブリスト保存シーケンスの一例の説明図である。
【図１９】ジョブリスト読み出しシーケンスの一例の説明図である。
【図２０】揮発性メモリに割り当てられる画像の遷移を表した説明図である。
【図２１】ページリストをサーバで保持する例を表した構成図である。
【符号の説明】
【００８７】
１０    複合機
１１    スキャンジョブ
１２    ＯＣＲジョブ
１３    メール作成ジョブ
１４    メール送信ジョブ
２０    原稿
２１    画像
２２    テキスト
２３    メール
１００    オペレーティングシステム
１０１    リブートモジュール
１０２    ジョブマネージャ
１０３    スキャンモジュール
１０４    ＯＣＲモジュール
１０５    メールモジュール
２００    ジョブリスト
２１０    ジョブステータス
２２０    ページリスト
２３０    ページステータス
【図１】
0004813860.tif 000002
【図２】
0004813860.tif 000003
【図３】
0004813860.tif 000004
【図４】
0004813860.tif 000005
【図５】
0004813860.tif 000006
【図６】
0004813860.tif 000007
【図７】
0004813860.tif 000008
【図８】
0004813860.tif 000009
【図９】
0004813860.tif 000010
【図１０】
0004813860.tif 000011
【図１１】
0004813860.tif 000012
【図１２】
0004813860.tif 000013
【図１３】
0004813860.tif 000014
【図１４】
0004813860.tif 000015
【図１５】
0004813860.tif 000016
【図１６】
0004813860.tif 000017
【図１７】
0004813860.tif 000018
【図１８】
0004813860.tif 000019
【図１９】
0004813860.tif 000020
【図２０】
0004813860.tif 000021
【図２１】
0004813860.tif 000022