(57)【要約】【課題】機能のカスタマイズ又は拡張などを簡略化させることのできる画像処理装置、画像処理方法及び画像処理プログラムを提供することを目的とする。【解決手段】本発明は、パイプ＆フィルタと呼ばれる考え方に基づくソフトウェアアーキテクチャを画像処理装置に適用することで、機能のカスタマイズ又は拡張などを簡略化する。また本発明の画像処理装置では、フィルタにおいて画像データを永続化するか否かを指定することにより、画像データの永続化処理を効率良く行うことができる。【選択図】図５
2009118277.tif 000002
【特許請求の範囲】
【請求項１】
画像処理の対象として入力される画像データの入力処理を制御するフィルタと、
画像データの出力処理を制御するフィルタと、
前記入力処理を制御するフィルタと前記出力処理を制御するフィルタとの間で画像データの加工処理を行うフィルタと、
を有し、
前記各フィルタの組み合わせにおいて、画像データの出力処理を制御するフィルタとして、画像データの記憶装置への出力処理を制御する保存フィルタが含まれるとき、
前記保存フィルタの直前のフィルタは、前記保存フィルタへの画像データを受け渡しのための記憶領域として、前記記憶装置における不揮発性領域である保存領域を用いることを特徴とする画像処理装置。
【請求項２】
画像データの受け渡しに用いる記憶領域の指示を行う画像保存指示手段を有し、
前記保存フィルタの直前のフィルタは、
前記画像保存指示手段の指示に基づき画像データの受け渡しに前記保存領域を用いることを特徴とする請求項１記載の画像処理装置。
【請求項３】
前記保存フィルタの直前のフィルタの後段に接続された各フィルタは、前記画像保存指示手段の指示に基づき画像データの受け渡しに前記保存領域を用いることを特徴とする請求項１又は２記載の画像処理装置。
【請求項４】
前記保存フィルタの直前のフィルタ以外の各フィルタは、
前記画像保存指示手段の指示に基づき、前記画像データを受け渡しのための記憶領域として、前記記憶装置のおける揮発性領域である一時保存領域を用いることを特徴とする請求項２記載の画像処理装置。
【請求項５】
各フィルタに設定された設定条件の保存指示を行う条件保存指示手段を有し、
前記保存フィルタの直前のフィルタの後段のフィルタは、
前記条件保存指示手段の指示に基づき、フィルタに設定された設定条件を前記保存領域へ保存することを特徴とする請求項１ないし４の何れか一項に記載の画像処理装置。
【請求項６】
前記保存フィルタの直前のフィルタの後段に接続された各フィルタは、
前記条件保存指示手段の指示に基づき、フィルタに設定された設定条件を前記保存領域へ保存することを特徴とする請求項１ないし５の何れか一項に記載の画像処理装置。
【請求項７】
画像処理の対象として入力される画像データの入力処理を制御するフィルタと、
画像データの出力処理を制御するフィルタと、
前記入力処理を制御するフィルタと前記出力処理を制御するフィルタとの間で画像データの加工処理を行うフィルタと、
を有し、
前記各フィルタの組み合わせにおいて、フィルタで実行されるジョブの復元を必要とするフィルタが含まれるとき、
前記フィルタの組み合わせに含まれる全てのフィルタは、画像データを受け渡しのための記憶領域として、当該画像処理装置の有する記憶装置の不揮発性領域である保存領域を用いることを特徴とする画像処理装置。
【請求項８】
前記フィルタの組み合わせに含まれる全てのフィルタは、各フィルタの設定条件を前記保存領域へ保存することを特徴とする請求項７記載の画像処理装置。
【請求項９】
各フィルタに対し、
画像データの受け渡しに用いる記憶領域の指示を行う画像保存指示手段と、
設定された設定条件の保存指示を行う条件保存指示手段を有することを特徴とする請求項７又は８記載の画像処理装置。
【請求項１０】
画像処理の対象として入力される画像データの入力処理を制御する手順と、
画像データの出力処理を制御する手順と、
前記入力処理を制御する手順と前記出力処理を制御する手順との間で画像データの加工処理を行う手順と、
を有し、
前記各手順の組み合わせにおいて、画像データの出力処理を制御する手順として、画像データの記憶装置への出力処理を制御する保存手順が含まれるとき、
前記保存手順の直前の手順において、前記保存手順で保存される画像データを受け渡しのための記憶領域として、前記記憶装置における不揮発性領域である保存領域を用いることを特徴とする画像処理方法。
【請求項１１】
画像処理の対象として入力される画像データの入力処理を制御する手順と、
画像データの出力処理を制御する手順と、
前記入力処理を制御する手順と前記出力処理を制御する手順との間で画像データの加工処理を行う手順と、を有し、
前記各手順の組み合わせにおいて、手順において実行される処理の復元を必要とする手順が含まれるとき、
前記手順の組み合わせに含まれる全ての手順において、画像データを受け渡しのための記憶領域として、当該画像処理装置の有する記憶装置の不揮発性領域である保存領域を用いることを特徴とする画像処理方法。
【請求項１２】
コンピュータに、
画像処理の対象として入力される画像データの入力処理を制御するステップと、
画像データの出力処理を制御するステップと、
前記入力処理を制御するステップと前記出力処理を制御するステップとの間で画像データの加工処理を行うステップと、を実行させ、
前記各ステップの組み合わせにおいて、画像データの出力処理を制御するステップとして、画像データの記憶装置への出力処理を制御する保存ステップが含まれるとき、
前記保存ステップの直前のステップにおいて、前記保存ステップで保存される画像データを受け渡しのための記憶領域として、前記記憶装置における不揮発性領域である保存領域を用いる画像処理プログラム。
【請求項１３】
コンピュータに、
画像処理の対象として入力される画像データの入力処理を制御するステップと、
画像データの出力処理を制御するステップと、
前記入力処理を制御するステップと前記出力処理を制御するステップとの間で画像データの加工処理を行うステップと、を実行させ、
前記各ステップの組み合わせにおいて、ステップにおいて実行される処理の復元を必要とするステップが含まれるとき、
前記ステップの組み合わせに含まれる全てのステップにおいて、画像データを受け渡しのための記憶領域として、当該画像処理装置の有する記憶装置の不揮発性領域である保存領域を用いる画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
近年において、プリンタ、コピー機、スキャナ、ファクシミリ、又はこれらの機能を一台の筐体で実現する複合機等の画像処理装置では、汎用的にコンピュータと同様にＣＰＵを備え、各機能はアプリケーションの制御によって実現されるようになっている。
【０００２】
例えば特許第３６７９３４９号公報（特許文献１）に記載された画像形成装置では、各アプリケーションから共通して利用される機能をプラットフォームとして備えており、このプラットフォームのＡＰＩ（Application Programming Interface）を利用してアプリケーションを実装することができる。係る画像形成装置によれば、共通して利用される機能がプラットフォームとして備えられていることにより、アプリケーションごとに重複した機能の実装が回避され、アプリケーション全体の開発効率を向上させることができる。
【特許文献１】特許第３６７９３４９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、係る構成では、このプラットフォームによって提供される機能又はインターフェースの粒度が適切に設計されないと、アプリケーションの開発効率の向上が期待以上にはかれない場合がある。
【０００４】
例えば、この粒度が小さすぎると、単純なサービスを提供するアプリケーションであるにも関わらず、多くのＡＰＩの呼び出しが必要とされ、そのソースコードは複雑なものとなってしまう。
【０００５】
一方、粒度が大きすぎると、ある機能の一部について変更を加えたサービスを提供するアプリケーションを実装したい場合、プラットフォーム内を修正しなければならず、開発工数の増加を招きかねない。特に、プラットフォーム内における各モジュールの依存関係が強い場合は、プラットフォームに新規機能を追加するだけでなく、既存部分の修正も必要とされる場合があり、事態はより複雑となる。
【０００６】
また、既存のアプリケーションによって提供されているサービスの一部（例えば、画像の入力処理）を変更したアプリケーションを実装したい場合、変更部分以外の部分については既存のアプリケーションを呼び出すといったようなことはできない。したがって、改めてソースコードを記述して新たなアプリケーションを実装しなければならない。
【０００７】
本発明は、上記の点を鑑みてなされたものであって、機能のカスタマイズ又は拡張などを簡略化させることのできる画像処理装置、画像処理方法及び画像処理プログラムを提供することを目的とするものである。
【課題を解決するための手段】
【０００８】
本発明は、上記目的を達成するために、以下の如き構成を採用した。
【０００９】
本発明の画像処理装置は、画像処理の対象として入力される画像データの入力処理を制御するフィルタと、画像データの出力処理を制御するフィルタと、前記入力処理を制御するフィルタと前記出力処理を制御するフィルタとの間で画像データの加工処理を行うフィルタと、を有し、前記各フィルタの組み合わせにおいて、画像データの出力処理を制御するフィルタとして、画像データの記憶装置への出力処理を制御する保存フィルタが含まれるとき、前記保存フィルタの直前のフィルタは、前記保存フィルタへの画像データを受け渡しのための記憶領域として、前記記憶装置における不揮発性領域である保存領域を用いる構成とした。
【００１０】
係る構成によれば、機能のカスタマイズ又は拡張などを簡略化させることができる。
【００１１】
また前記画像処理装置は、画像データの受け渡しに用いる記憶領域の指示を行う画像保存指示手段を有し、前記保存フィルタの直前のフィルタは、前記画像保存指示手段の指示に基づき画像データの受け渡しに前記保存領域を用いる構成としても良い。
【００１２】
また前記画像処理装置において、前記保存フィルタの直前のフィルタの後段に接続された各フィルタは、前記画像保存指示手段の指示に基づき画像データの受け渡しに前記保存領域を用いる構成としても良い。
【００１３】
また前記画像処理装置において、前記保存フィルタの直前のフィルタ以外の各フィルタは、前記画像保存指示手段の指示に基づき、前記画像データを受け渡しのための記憶領域として、前記記憶装置のおける揮発性領域である一時保存領域を用いる構成としても良い。
【００１４】
また前記画像処理装置は、各フィルタに設定された設定条件の保存指示を行う条件保存指示手段を有し、前記保存フィルタの直前のフィルタの後段のフィルタは、前記条件保存指示手段の指示に基づき、フィルタに設定された設定条件を前記保存領域へ保存する構成としても良い。
【００１５】
また前記画像処理装置において、前記保存フィルタの直前のフィルタの後段に接続された各フィルタは、前記条件保存指示手段の指示に基づき、フィルタに設定された設定条件を前記保存領域へ保存する構成としても良い。
【００１６】
本発明の画像処理装置は、画像処理の対象として入力される画像データの入力処理を制御するフィルタと、画像データの出力処理を制御するフィルタと、前記入力処理を制御するフィルタと前記出力処理を制御するフィルタとの間で画像データの加工処理を行うフィルタと、を有し、前記各フィルタの組み合わせにおいて、フィルタで実行されるジョブの復元を必要とするフィルタが含まれるとき、前記フィルタの組み合わせに含まれる全てのフィルタは、画像データを受け渡しのための記憶領域として、当該画像処理装置の有する記憶装置の不揮発性領域である保存領域を用いる構成とした。
【００１７】
係る構成によれば、機能のカスタマイズ又は拡張などを簡略化させることができる。
【００１８】
また本発明の画像処理装置において、前記フィルタの組み合わせに含まれる全てのフィルタは、各フィルタの設定条件を前記保存領域へ保存する構成としても良い。
【００１９】
また本発明の画像処理装置は、各フィルタに対し、画像データの受け渡しに用いる記憶領域の指示を行う画像保存指示手段と、設定された設定条件の保存指示を行う条件保存指示手段を有する構成としても良い。
【００２０】
本発明の画像処理方法は、画像処理の対象として入力される画像データの入力処理を制御する手順と、画像データの出力処理を制御する手順と、前記入力処理を制御する手順と前記出力処理を制御する手順との間で画像データの加工処理を行う手順と、を有し、前記各手順の組み合わせにおいて、画像データの出力処理を制御する手順として、画像データの記憶装置への出力処理を制御する保存手順が含まれるとき、前記保存手順の直前の手順において、前記保存手順で保存される画像データを受け渡しのための記憶領域として、前記記憶装置における不揮発性領域である保存領域を用いる方法とした。
【００２１】
本発明の画像処理方法は、画像処理の対象として入力される画像データの入力処理を制御する手順と、画像データの出力処理を制御する手順と、前記入力処理を制御する手順と前記出力処理を制御する手順との間で画像データの加工処理を行う手順と、を有し、前記各手順の組み合わせにおいて、手順において実行される処理の復元を必要とする手順が含まれるとき、前記手順の組み合わせに含まれる全ての手順において、画像データを受け渡しのための記憶領域として、当該画像処理装置の有する記憶装置の不揮発性領域である保存領域を用いる方法とした。
【００２２】
係る方法によれば、機能のカスタマイズ又は拡張などを簡略化させることができる。
【００２３】
本発明の画像処理プログラムは、コンピュータに、画像処理の対象として入力される画像データの入力処理を制御するステップと、画像データの出力処理を制御するステップと、前記入力処理を制御するステップと前記出力処理を制御するステップとの間で画像データの加工処理を行うステップと、を実行させ、前記各ステップの組み合わせにおいて、画像データの出力処理を制御するステップとして、画像データの記憶装置への出力処理を制御する保存ステップが含まれるとき、前記保存ステップの直前のステップにおいて、前記保存ステップで保存される画像データを受け渡しのための記憶領域として、前記記憶装置における不揮発性領域である保存領域を用いるプログラムとした。
【００２４】
本発明の画像処理プログラムは、コンピュータに、画像処理の対象として入力される画像データの入力処理を制御するステップと、画像データの出力処理を制御するステップと、前記入力処理を制御するステップと前記出力処理を制御するステップとの間で画像データの加工処理を行うステップと、を実行させ、前記各ステップの組み合わせにおいて、ステップにおいて実行される処理の復元を必要とするステップが含まれるとき、前記ステップの組み合わせに含まれる全てのステップにおいて、画像データを受け渡しのための記憶領域として、当該画像処理装置の有する記憶装置の不揮発性領域である保存領域を用いるプログラムとした。
【００２５】
係るプログラムによれば、機能のカスタマイズ又は拡張などを簡略化させることができる。
【発明の効果】
【００２６】
本発明によれば、機能のカスタマイズ又は拡張などを簡略化させることができる。
【発明を実施するための最良の形態】
【００２７】
本発明では、パイプ＆フィルタと呼ばれる考え方に基づくソフトウェアアーキテクチャを画像処理装置に適用することで、機能のカスタマイズ又は拡張などを簡略化する。さらに本発明では、フィルタの組み合わせを記述した記述テーブルを用いてフィルタを組み合わせてジョブを構築することにより、さらに機能のカスタマイズ又は拡張を簡略化する。
【００２８】
以下に、本発明の実施形態の説明に先立ち、本発明の画像処理装置に適用されたパイプ＆フィルタの概念について説明する。図１は、パイプ＆フィルタの概念を説明する図である。図１に示す「Ｐ」はパイプを示し、「Ｆ」はフィルタを示す。
【００２９】
フィルタとは、入力された画像データに対して所定の処理を施して、その処理結果を出力するプログラムである。そしてパイプは、フィルタとフィルタを連結する手段であり、パイプの入力側に連結されたフィルタから出力される処理結果を一時的に保持し、その後パイプの出力側へ連結されたフィルタへ画像データを伝達する。このように、パイプ＆フィルタの概念によれば、パイプを介在させてフィルタにおける処理を連続したものとすることができる。
【００３０】
本発明では、フィルタにおいて施される所定の処理を、入力された画像データに対し、所定の変換を施す処理と考える。すなわち、本発明の画像処理装置では、画像処理装置で実現される各機能をドキュメント（入力画像データ）に対する「変換処理」の連続として捉える。画像処理装置の各機能は、ドキュメントすなわち画像データの入力、加工及び出力によって構成されるものと考える。そこで、以下の実施形態の説明では「入力処理」、「加工処理」及び「出力処理」のそれぞれを「変換処理」として捉え、一つの変換処理を実現するソフトウェア部品をフィルタとして構成した。
【００３１】
本発明では、画像データの入力処理を制御するフィルタを入力フィルタ、画像データの加工処理を制御するフィルタを加工フィルタ、画像データの出力処理を制御するフィルタを出力フィルタとした。これらの各フィルタはそれぞれ独立したプログラムであって、フィルタ間の依存関係は存在しない。よって、各フィルタは、画像処理装置において独立してフィルタ単位で追加（インストール）、削除（アンインストール）することが可能である。
【００３２】
図２は、パイプ＆フィルタの概念が適用された画像処理装置の一例のハードウェア構成図である。画像処理装置１００は、それぞれバスＢで相互に接続されているスキャン装置１１、プロッタ装置１２、ドライブ装置１３、補助記憶装置１４、メモリ装置１５、演算処理装置１６、インターフェース装置１７、操作装置１８で構成される。
【００３３】
スキャン装置１１はスキャナエンジンなどで構成され、原稿を読み取って画像データとするために用いられる。プロッタ装置１２はプロッタエンジンなどで構成され、画像データを印刷するために用いられる。インターフェース装置１７は、モデム、ＬＡＮカードなどで構成されており、ネットワークに接続する為に用いられる。
【００３４】
本発明の画像処理プログラムは、画像処理装置１００を制御する各種プログラムの少なくとも一部である。画像処理プログラムは例えば記録媒体１９の配布やネットワークからのダウンロードなどによって提供される。画像処理プログラムを記録した記録媒体１９は、ＣＤ−ＲＯＭ、フレキシブルディスク、光磁気ディスク等の様に情報を光学的、電気的或いは磁気的に記録する記録媒体、ＲＯＭ、フラッシュメモリ等の様に情報を電気的に記録する半導体メモリ等、様々なタイプの記録媒体を用いることができる。
【００３５】
また、画像処理プログラムを記録した記録媒体１９がドライブ装置１３にセットされると、画像処理プログラムは記録媒体１９からドライブ装置１３を介して補助記憶装置１４にインストールされる。ネットワークからダウンロードされた画像処理プログラムは、インターフェース装置１７を介して補助記憶装置１４にインストールされる。
【００３６】
画像処理装置１００は、インストールされた画像処理プログラムを格納すると共に、必要なファイル、画像データ等を格納する。メモリ装置１５は、コンピュータの起動時に補助記憶装置１４から画像処理プログラムを読み出して格納する。そして、演算処理装置１６はメモリ装置１５に格納された画像処理プログラムに従って、後述するような各種処理を実現している。
（第一の実施形態）
図３は、本発明の第一の実施形態の画像処理装置１００のソフトウェア構成を示す構成図である。画像処理装置１００は、例えばプリンタ、コピー、スキャナ、又はＦＡＸ等の複数の機能を一台の筐体において実現する複合機である。
【００３７】
画像処理装置１００の機能を実現するソフトウェアは階層構造となっており、ユーザインターフェイス層１１０、コントロール層１２０、アプリケーションロジック層１３０、デバイスサービス層１４０及びデバイス層１５０により構成されている。これらの各層における上下関係は、層間の呼び出し関係に基づいている。すなわち、図中において上位層が下位層を呼び出す。
【００３８】
画像処理装置１００において、ユーザインターフェイス層１１０によりユーザから各種機能の実行指示が成されると、ユーザインターフェイス層１１０は、コントロール層１２０を呼び出しこの実行指示に基づきアプリケーションロジック層１３０を制御する。アプリケーションロジック層１３０では、コントロール層１２０からの指示に基づき要求された機能を実現させるアプリケーションを実行する。そして、この実行結果に基づきデバイスサービス層１４０、デバイス層１５０が画像処理装置１００のハードウェア資源を制御する。画像処理装置１００では、このような動作によりユーザインターフェイス層１１０が受け付けた機能に対応した出力結果を得る。
【００３９】
以下に各層について説明する。
【００４０】
ユーザインターフェイス層１１０には、例えばローカルＵＩ（user interface）部１１１が実装されており、画像処理装置１００の各種機能を実現するための実行指示を受け付ける機能を有する。ここで言う各種機能とは、例えばコピー機能、印刷機能、スキャン機能、ＦＡＸ機能などである。ローカルＵＩ部１１１は、例えば画像処理装置１００の操作装置１８に設けられていても良い。この操作装置１８は、例えば表示領域を備えるオペレーションパネルなどにより実現されても良い。ユーザインターフェイス層１１０において、ローカルＵＩ部１１１で受け付けられた実行指示は、コントロール層１２０へ伝達される。
【００４１】
コントロール層１２０では、画像処理装置１００の各機能を実現する処理を制御するための機能が実装されている。具体的には、要求された機能に応じてアプリケーションロジック層１３０における各フィルタの実行を制御する。尚、以下の本実施形態において述べる画像処理装置１００の機能とは、画像処理装置１００がユーザに対して提供する一つのまとまった単位（要求が入力されて最終的な出力が得られるまで）のサービスの定義であり、ソフトウェア的には一つのまとまった単位のサービスを提供するアプリケーションと同義である。
【００４２】
アプリケーションロジック層１３０には、画像処理装置１００において提供される機能の一部を実現する部品群である各種フィルタが実装されている。アプリケーションロジック層１３０では、コントロール層１２０の制御により、複数のフィルタを組み合わせて一つの機能が実現される。本実施形態におけるアプリケーションロジック層１３０には、入力フィルタ１３１、加工フィルタ１３２、出力フィルタ１３３及びアクティビティ１３４とが実装されている。アプリケーションロジック層１３０に実装された各フィルタは、各フィルタ毎に決められた定義に基づき動作するものであり、この定義に基づき制御される。これら各フィルタの詳細は後述する。アクティビティ１３４は、ユーザインターフェイス層１１０において要求された機能に応じて各フィルタを接続し、各フィルタの実行をとりまとめるコンポーネントである。
【００４３】
デバイスサービス層１４０には、アプリケーションロジック層１３０に実装された各フィルタが共通して利用する下位の機能が実装されている。本実施形態のデバイスサービス層１４０にはパイプ１４１が実装されている。パイプ１４１は上で述べたパイプの機能を実現するものであり、アプリケーションロジック層１３０に実装されている各フィルタのうち、一のフィルタからの出力結果を、一のフィルタへ伝達する。ここでパイプ１４１は、例えば入力フィルタ１３１と加工フィルタ１３２とを接続しても良いし、加工フィルタ１３２と出力フィルタ１３３とを接続しても良い。
【００４４】
デバイス層１５０には、ハードウェアを制御するプログラムであるドライバが実装されている。本実施形態のデバイス層１５０には、例えばスキャナ部１５１、プロッタ部１５２等が実装されている。これらの各制御部は、それぞれの名称に付けられたデバイスを制御するものである。
【００４５】
以下に、アプリケーションロジック層１３０に実装された各フィルタについてさらに説明する。
【００４６】
本実施形態の入力フィルタ１３１は、画像処理装置１００の外部より入力された画像データに対する入力処理を制御する。入力フィルタ１３１には、例えば読取フィルタ、メール受信フィルタ、ＦＡＸ受信フィルタ、ＰＣ文書受信フィルタ等が含まれる（図示せず）。読取フィルタは、例えばスキャナによる画像データの読取を制御し、読み取られた画像データを出力する。メール受信フィルタは、画像処理装置１００において電子メールを受信し、受信した電子メールに含まれる画像データを出力する。ＦＡＸ受信フィルタはＦＡＸ受信を制御し、受信された画像データを出力する。ＰＣ文書受信フィルタは、図示しないクライアントＰＣなどから印刷画像データを受信し、この印刷画像データを出力する。レポートフィルタは、画像処理装置１００の設定情報や履歴情報などを例えば表形式などに整え、この整えられた画像データを出力する。
【００４７】
本実施形態の加工フィルタ１３２は、加工フィルタ１３２の入力側フィルタより入力された画像データに所定の加工処理を施し、加工フィルタ１３２の出力側にあるフィルタへ処理結果を出力する。ここで言う加工処理とは、例えば入力された画像データの集約、拡大、縮小、回転処理等である。
【００４８】
本実施形態の出力フィルタ１３３は、入力された画像データに対する出力処理を制御し、画像処理装置１００の外部へ出力する。出力フィルタ１３３には、印刷フィルタ、プレビューフィルタ、メール送信フィルタ、ＦＡＸ送信フィルタ、ＰＣ文書送信フィルタ、文書登録フィルタ等が含まれる。
【００４９】
印刷フィルタは、入力された画像データをプロッタ部１５２に出力（印刷）させる。プレビューフィルタは、入力された画像データを画像処理装置１００の操作装置１８などにプレビュー表示させる。またメール送信フィルタは、画像データを電子メールに添付して送信する。またＦＡＸ送信フィルタは、入力された画像データをＦＡＸ送信する。ＰＣ文書送信フィルタは、入力された画像データを図示しないクライアントＰＣなどに送信する。文書登録フィルタは、入力された画像データを補助記憶装置１４等に出力して蓄積する。
【００５０】
本実施形態のアクティビティ１３４には、ユーザインターフェイス層１１０においてローカルＵＩ部１１１から入力された指示がコントロール層１２０を介して伝達される。アクティビティ１３４は、この指示にしたがって、入力フィルタ１３１、加工フィルタ１３２、出力フィルタ１３３におけるジョブの実行を制御する。
【００５１】
アプリケーションロジック層１３０では、上記各フィルタを組み合わせることにより、画像処理装置１００の各機能を実現している。係る構成によれば、画像処理装置１００では、フィルタとパイプの組み合わせにより各種の機能を実現することができる。具体的には、例えばコピー機能を実現したい場合には、入力フィルタ１３１に含まれる読取フィルタ、加工フィルタ１３２、出力フィルタ１３３に含まれる印刷フィルタを組み合わせれば良い。
【００５２】
以下に、本実施形態の画像処理装置１００における印刷処理について説明する。図４は、第一の実施形態の画像処理装置１００における印刷処理を説明する図である。
【００５３】
本実施形態の画像処理装置１００においてコントロール層１２０は、アクティビティ１３４に対し、各フィルタでの処理の実行を制御させるジョブを生成させる（Ｓ３１）。本実施形態の画像処理装置１００では、例えば画像処理装置１００の電源が投入されたときに、このアクティビティ１３４に対するジョブを生成しても良い。
【００５４】
ローカルＵＩ部１１１により印刷処理の実行要求がなされると、ローカルＵＩ部１１１は、この要求をコントロール層１２０へ伝達する（Ｓ３２）。尚図４に示す例では、印刷処理の一つであるコピー処理が選択されたものとして説明する。この場合、ローカルＵＩ部１１１では、紙原稿の読取及び印刷を指示する操作がなされる。
【００５５】
アクティビティ１３４は、紙原稿の読取及び印刷指示を受けると、読取フィルタ１３１ａ、加工フィルタ１３２、印刷フィルタ１３３ａとをパイプにより接続する。尚このとき、実際には読取フィルタ１３１ａに含まれる読取フィルタが加工フィルタ１３２に接続される。次にコントロール層１２０は、読取フィルタ１３１ａにより実行されるジョブ（Ｓ３３）、加工フィルタ１３２により実行されるジョブ（Ｓ３４）、印刷フィルタ１３３ａにより実行されるジョブを生成する（Ｓ３５）。
【００５６】
コントロール層１２０により各フィルタにおいて実行されるジョブが生成されると、アクティビティ１３４は、各フィルタに対しジョブの実行を指示する。すると、読取フィルタ１３１ａにより、入力部であるスキャナ部１５１から紙原稿を読取る処理が実行され、紙原稿が画像データとして読み込まれる。この画像データが読取フィルタ１３１ａから出力されて、パイプ１４１を介して加工フィルタ１３２へ伝達される。
【００５７】
加工フィルタ１３２では、この画像データに予め設定された所定の加工処理を施し、加工された画像データとして出力する。加工された画像データは、次に出力フィルタ１３３の一つである印刷フィルタ１３３ａへ伝達される。印刷フィルタ１３３ａでは、この加工された画像データを出力部であるプロッタ部１５２から出力させて、コピー処理を実現する。
【００５８】
このように本実施形態では、入力フィルタ１３１、加工フィルタ１３２、出力フィルタ１３３は、それぞれが独立して制御されており、各フィルタ間に依存関係が存在しない。このため本実施形態では、機能のカスタマイズ又は拡張などを行う場合には、該当するフィルタ毎にカスタマイズ等を行えば良い。よって本実施形態によれば、機能のカスタマイズ又は拡張などを簡略化させることができる。
（第二の実施形態）
以下に図面を参照して本発明の第二の実施形態について説明する。本発明の第二の実施形態は、第一の実施形態をさらに改良したものである。よって以下の第二の実施形態の説明において、第一の実施形態と同様の機能構成を有するものには、第一の実施形態の説明で用いた符号と同様の符号を付与し、その説明を省略する。
【００５９】
本実施形態の画像処理装置では、画像データの永続化処理において、処理速度を向上させることができる。
【００６０】
以下に、本実施形態の画像処理装置が解決する問題点について説明する。
【００６１】
パイプ＆フィルタの概念を適用した画像処理装置では、ハードディスク等の記憶装置に画像データを保存しておき、保存された画像データを読み出して再出力する再出力機能がある。
【００６２】
画像データの再出力機能を実現するためには、入力された画像データを出力フィルタとへ渡すだけでなく、入力された画像データを記憶装置に書き込む処理（画像データの永続化処理）が必要となる。画像データは、記憶装置に書き込まれて保存されると、永続化された画像データとなる。
【００６３】
画像処理装置において、画像データが出力フィルタに渡される場合、出力フィルタの前段のフィルタから書き出された画像データを一時的に保存する記憶領域を必要とする。この記憶領域は、フィルタ間の画像データの受け渡しの速度を向上させるためにも、高速でアクセスできる領域であることが好ましい。このため従来の画像処理装置では、フィルタ間で画像データの受け渡しを行う場合、一時的に画像データが保存される一時保存領域（以下、非永続化領域）を、ＲＡＭ（Random Access Memory）や記憶装置（HDD, Hard disk drive）の外周側のパーテーションに設けている。
【００６４】
また従来の画像処理装置では、画像データの永続化処理において、画像データが永続化されて保存される保存領域（以下、永続化領域）を、記憶装置の内周側パーテーションに設けている。従来の画像処理装置では、このように非永続化領域と永続化領域とを設けることで、永続化する画像データと、永続化しない画像データとを区別している。
【００６５】
しかしながら従来の画像データの永続化処理では、画像データは、画像データの保存を行う保存フィルタから書き出された画像データが非永続化領域へ保存され、非永続化領域へ保存された画像データが永続化領域へ保存されて永続化される。よって従来の画像処理装置では、画像データの永続化処理において、２度の画像データの保存処理が必要となる。
【００６６】
本実施形態の画像処理装置は、上記問題点を解決するものであり、フィルタにおいて画像データを永続化するか否かを指定することにより、画像データの永続化処理を効率的に行うことができる。
【００６７】
以下に図面を参照して本実施形態の画像処理装置１００Ａについて説明する。図５は、第二の実施形態の画像処理装置１００Ａのソフトウェア構成を示す構成図である。
【００６８】
本実施形態の画像処理装置１００Ａは、第一の実施形態である画像処理装置１００の有するコントロール層１２０を有していない。本実施形態の画像処理装置１００Ａは、オペレーション層１２０Ａ、アプリケーションロジック層１３０Ａ、サービス層１４０Ａ、デバイス層１５０を有する。
【００６９】
オペレーション層１２０Ａは、各層に共通した機能の制御等を行う。オペレーション層１２０Ａは、プラグイン管理１２１が実装されている。プラグイン管理１２１は、画像処理装置１００Ａにおけるアクティビティやフィルタの追加や削除などの管理を行う。
【００７０】
アプリケーションロジック層１３０Ａは、入力フィルタ１３１Ａ、加工フィルタ１３２Ａ、出力フィルタ１３３Ａ、アクティビティ１３４Ａ、保存フィルタ１６０が実装されている。入力フィルタ１３１Ａ、加工フィルタ１３２Ａ、出力フィルタ１３３Ａ、アクティビティ１３４Ａの詳細は後述する。
【００７１】
サービス層１４０Ａには、アプリケーションロジック層１３０Ａに実装された各フィルタが共通して利用する下位の機能が実装されている。サービス層１４０Ａには、パイプ１４１、リクエスト管理１４２、データ管理１４３、メモリ管理１４４が実装されている。リクエスト管理１４２は、各フィルタで実行されるジョブの生成、アクティビティ１３４Ａが指示した通りのフィルタ同士の接続を行う。データ管理１４３は、画像処理装置１００Ａの有する補助記憶装置１４への画像データの書き込み等を行う。メモリ管理１４４は、画像処理装置１００Ａの有するメモリ装置１５における画像データの割り当て等の管理を行う。尚補助記憶装置１４は、例えばハードディスク等であり、書き込まれたデータを永続的に保存する記憶装置である。
【００７２】
次に図６、図７を参照して本実施形態の画像処理装置１００Ａの有するアクティビティ１３４Ａと各フィルタについて説明する。
【００７３】
図６は、第二の実施形態の画像処理装置１００Ａのアクティビティ１３４Ａを説明する図である。図６には、本実施形態のアクティビティ１３４Ａの有する特徴的な機能を示す。
【００７４】
本実施形態のアクティビティ１３４Ａは、画像処理装置１００Ａにおいて要求された機能を提供するためのアプリケーション・コンポーネントである。例えばアクティビティ１３４Ａがコピー機能を提供するアプリケーション・コンポーネントである場合、アクティビティ１３４Ａは、コピー機能を実現すべく各フィルタの組み合わせ及び各フィルタにおけるジョブの実行を指示する。
【００７５】
またアクティビティ１３４Ａは、画像保存指示部１３５、設定保存指示部１３６を有する。画像保存指示部１３５は、各フィルタに対し、フィルタから書き出される画像データの保存領域の指示を行う。設定保存指示部１３６は、フィルタに対して設定条件の保存指示を行う。
【００７６】
図７は、第二の実施形態の画像処理装置１００Ａの有する各フィルタを説明する図である。図７には、本実施形態の各フィルタの有する特徴的な機能を示す。図７（Ａ）は、入力フィルタ１３１Ａ、加工フィルタ１３２Ａ、出力フィルタ１３３Ａがそれぞれ共通して有する機能を示している。図７（Ｂ）は、保存フィルタ１６０の有する機能を示している。
【００７７】
図７（Ａ）に示す入力フィルタ１３１Ａ、加工フィルタ１３２Ａ、出力フィルタ１３３Ａは、保存領域決定部２１０、設定条件保存部２２０を有する。保存領域決定部２１０は、アクティビティ１３４Ａからの保存指示に基づき画像データを書き出す領域を決定する。設定条件保存部２２０は、アクティビティ１３４Ａからの指示に基づきフィルタに設定された設定条件を保存する。尚フィルタに設定された設定条件とは、フィルタで実行されるジョブ毎に設定された条件である。例えばフィルタが読取フィルタの場合には、解像度等の設定である。また例えばフィルタが加工フィルタ１３２Ａの場合には、画像データの集約、変倍の設定などである。また例えばフィルタが印刷フィルタの場合には、印刷時の出力枚数、用紙サイズの設定などである。
【００７８】
図７（Ｂ）に示す保存フィルタ１６０は、出力フィルタ１３３Ａに含まれ、画像データを補助記憶装置１４へ書き込む保存処理を行う。保存フィルタ１６０は、対応付け部２３０を有する。対応付け部２３０は、画像データの永続化処理を行う際に、永続化対象の画像データと、永続化対象の画像データを出力したフィルタ及びそのフィルタの設定条件等と対応付ける。
【００７９】
次に本実施形態の画像処理装置１００Ａの動作について説明する。まず本実施形態の画像処理装置１００Ａの動作の説明に先立ち、本実施形態の画像処理装置１００Ａにおけるフィルタ構成の例を示す。図８は、第二の実施形態におけるフィルタ構成の一例を示す図である。図８は、コピー機能と画像データの保存機能を同時に実現するフィルタ構成を示している。図８のフィルタ構成３００では、読取フィルタ１３１ａと加工フィルタ１３２Ａとがパイプ１４１ａを介して接続されており、加工フィルタ１３２Ａと印刷フィルタ１３３ａがパイプ１４１ｂを介して接続されている。また読取フィルタ１３１ａはパイプ１４１ａを介して保存フィルタ１６０に接続されている。よってフィルタ構成３００によれば、読取フィルタ１３１ａにより読み取られた画像データは、印刷フィルタ１３３ａにより印刷され、保存フィルタ１６０により補助記憶装置１４へ保存される。
【００８０】
次に図９を参照して本実施形態の画像処理装置１００Ａの動作を説明する。尚図９で説明する動作は、図８で示したフィルタ構成３００における動作である。また本実施形態のアクティビティ１３４Ａの提供する機能には、画像データの永続化も含まれるものとした。
【００８１】
図９は、第二の実施形態の画像処理装置１００Ａにおける画像データの永続化処理を説明するシーケンス図である。
【００８２】
画像処理装置１００Ａにおいてアクティビティ１３４Ａが提供する機能の実行が要求されると、アクティビティ１３４Ａは各フィルタに画像データの永続化を行うか否かを問い合わせる（Ｓ９０１、Ｓ９０２、Ｓ９０３、Ｓ９０４）。ここでは保存フィルタ１６０のみが画像データを永続化することを通知し（Ｓ９０５）、その他のフィルタは画像データを永続化しないこと（非永続化）を通知する（Ｓ９０６、Ｓ９０７、Ｓ９０８）。
【００８３】
次にアクティビティ１３４Ａは、各フィルタへジョブの実行の前処理（エントリ処理）の開始を指示する（Ｓ９０９、Ｓ９１０、Ｓ９１１、Ｓ９１２）。このときアクティビティ１３４Ａは、保存フィルタ１６０の前段に接続されているフィルタに対しては、画像データを永続化する指示を行う。よってアクティビティ１３４Ａは、画像保存指示部１３５により読取フィルタ１３１ａに画像データの保存を指示する。
【００８４】
またアクティビティ１３４Ａは、保存フィルタ１６０の前段に接続されたフィルタの後段に接続された全てのフィルタに対しては、設定条件の永続化を指示する。よってアクティビティ１３４Ａは、入力フィルタ１３１Ａの後段のフィルタである加工フィルタ１３２Ａと印刷フィルタ１３３ａに対しては、設定条件の永続化を指示する。
【００８５】
各フィルタは、エントリ処理の開始指示を受けると、エントリ処理を開始する（Ｓ９１３、Ｓ９１４、Ｓ９１５、Ｓ９１６）。エントリ処理の説明は後述する。
【００８６】
各フィルタはエントリ処理を実行すると、アクティビティ１３４Ａへジョブの実行準備が完了したことを通知する（Ｓ９１７、Ｓ９１８、Ｓ９１９、Ｓ９２０）。本実施形態では、この通知と共に、後述するエントリ処理で登録された各フィルタの設定条件ＩＤ（識別子）もアクティビティ１３４Ａへ通知される。
【００８７】
アクティビティ１３４Ａは、この通知を受けて（Ｓ９２１）、各フィルタを識別するフィルタＩＤを取得し、フィルタＩＤと通知された各フィルタの設定条件ＩＤとの対応付けを行う。そしてアクティビティ１３４Ａは、対応付けられたフィルタＩＤと設定条件ＩＤとのリストを保存フィルタ１６０へ登録する（Ｓ９２２）。
【００８８】
次にアクティビティ１３４Ａは、各フィルタへジョブの実行処理（スタート処理）の開始指示を行う（Ｓ９２３、Ｓ９２４、Ｓ９２５、Ｓ９２６）。各フィルタは、開始指示を受けてスタート処理を開始する（Ｓ９２７、Ｓ９２８、Ｓ９２９、Ｓ９３０）。
【００８９】
次に、図１０を参照して本実施形態の画像処理装置１００Ａにおけるエントリ処理について説明する。図１０は第二の実施形態におけるエントリ処理を説明するシーケンス図である。
【００９０】
各フィルタは、エントリ処理の開始指示を受けて、エントリ処理を開始する（Ｓ１００１）。画像処理装置１００Ａにおいて出力フィルタ１３３Ａ以外の各フィルタは、そのフィルタの後段のパイプをオープン（読み書き可能な状態）にする（Ｓ１００２）。
【００９１】
Ｓ１００２において各フィルタは、パイプ１４１に対し、文書情報の永続化が不要であることを通知しておく。即ちフィルタ構成３００では、読取フィルタ１３１ａ、加工フィルタ１３２Ａのそれぞれから書き出される画像データを、パイプ１４１の中で文書として一まとめにして管理する必要はない。尚ここで文書情報とは、複数ページの画像データを一まとめにした情報を示す。例えば複数ページの原稿からなる文書等を保存する場合には、各原稿に対応した画像データを一つの文書情報として管理する。
【００９２】
画像処理装置１００Ａにおいて、出力フィルタ１３３以外のフィルタのうち、保存フィルタ１６０以外のフィルタで設定条件の永続化を指示されているフィルタの場合、設定条件保存部２２０は、データ管理１４３によりフィルタに設定された設定条件を保存する（Ｓ１００３）。Ｓ１００３において設定条件が保存されると、フィルタは設定条件ＩＤを得る。フィルタ構成３００では、保存フィルタ１６０以外のフィルタで設定条件の永続化が指示されているのは加工フィルタ１３２Ａと印刷フィルタ１３３ａである。よってフィルタ構成３００では、加工フィルタ１３２Ａと印刷フィルタ１３３ａに設定された設定条件が保存され、読取フィルタ１３１ａの設定条件ＩＤがアクティビティ１３４Ａへ通知される。尚設定条件が非永続化されるフィルタについては、設定条件ＩＤとして、設定条件が登録されないことを示すデータがアクティビティ１３４Ａへ通知される。
【００９３】
エントリ処理が終了すると、フィルタはアクティビティ１３４Ａへエントリ処理の終了通知を行う。以上でエントリ処理を終了する。
【００９４】
次に本実施形態の画像処理装置１００Ａの各フィルタにおけるスタート処理について説明する。まず始めに、図１１を参照して入力フィルタ１３１Ａの一つである読取フィルタ１３１ａによるスタート処理について説明する。図１１は、第二の実施形態における読取フィルタ１３１ａによるスタート処理を説明するシーケンス図である。
【００９５】
読取フィルタ１３１ａは、スタート処理の開始指示を受けると（Ｓ１１０１）、読取フィルタ１３１ａの保存領域決定部２１０は、メモリ管理１４４に対して画像データを書き込むメモリ領域の確保を要求する（Ｓ１１０２）。尚読取フィルタ１３１ａは、画像データを永続化するフィルタとして指定されている。よって保存領域決定部２１０は、メモリ管理１４４に対し、ページメモリ１を永続化される画像データが保存される永続化領域（不揮発領域）として確保する要求を行う。
【００９６】
メモリ管理１４４は、この要求を受けてページメモリ１を確保し（Ｓ１１０３）、ページメモリ１を確保したことを読取フィルタ１３１ａへ通知する（Ｓ１１０４）。読取フィルタ１３１ａは、この通知を受けて原稿の読取処理を開始する（Ｓ１１０５）。
【００９７】
読取フィルタ１３１ａは、読み取った画像データを確保されたページメモリ１へ書き込む（Ｓ１１０６）。ページメモリ１へ書き込まれた画像データは永続化される画像データとなる。そして読取フィルタ１３１ａは、画像データをページメモリ１へ書き込んだことをパイプ１４１ａへ通知する（Ｓ１１０７）。パイプ１４１ａは、この通知を加工フィルタ１３２Ａへ通知する（Ｓ１１０８）。
【００９８】
読取フィルタ１３１ａは、Ｓ１１０２からＳ１１０８までの処理を、読取要求の対象となっている原稿のページ数分繰り返す。読取フィルタ１３１ａは、全てのページの読取処理が完了した後、ジョブの実行が完了したことをアクティビティ１３４Ａへ通知する（Ｓ１１０９）。以上で読取フィルタ１３１ａのスタート処理は終了する。
【００９９】
次に、図１２を参照して本実施形態の画像処理装置１００Ａの加工フィルタ１３２Ａにおけるスタート処理について説明する。図１２は、第二の実施形態における加工フィルタ１３２Ａによるスタート処理を説明するシーケンス図である。
【０１００】
ジョブの実行指示を受けて（Ｓ１２０１）、パイプ１４１ａから画像データが書き込まれたことを通知されると（Ｓ１２０２）、加工フィルタ１３２Ａの保存領域決定部２１０は、メモリ管理１４４により、加工後の画像データを書き込むためのページメモリの確保指示を行う（Ｓ１２０３）。メモリ管理１４４は、この指示を受けてページメモリ２を確保する（Ｓ１２０４）。尚このとき加工フィルタ１３２Ａは、画像データの非永続化を指示されているため、ページメモリ２は非永続的な画像データが書き込まれる非永続化領域（揮発領域）に確保される。
【０１０１】
加工フィルタ１３２Ａは、ページメモリ２が取得されると、画像データの加工処理を開始する（Ｓ１２０５）。加工フィルタ１３２Ａは、読取フィルタ１３１ａによりページメモリ１に書き込まれた画像データを読み出し（Ｓ１２０６）、読み出した画像データに加工処理を施す（Ｓ１２０７）。そして加工フィルタ１３２Ａは、加工済みの画像データをページメモリ２へ書き込み（Ｓ１２０８）、パイプ１４１ｂに画像データをページメモリ２に書き込んだことを通知する（Ｓ１２０９）。パイプ１４１ｂは、画像データが書き込まれたことを印刷フィルタ１３３ａへ通知する（Ｓ１２１０）。加工フィルタ１３２Ａは、Ｓ１２０２からＳ１２１０まで処理を、画像データのページ数分繰り返す。そして全ての画像データの加工処理が完了したら、加工フィルタ１３２Ａはアクティビティ１３４Ａへジョブの実行が完了したことを通知する（Ｓ１２１１）。以上で加工フィルタ１３２Ａにおけるジョブの実行が完了する。
【０１０２】
次に図１３を参照して印刷フィルタ１３３ａにおけるスタート処理について説明する。図１３は、第二の実施形態における印刷フィルタ１３３ａのスタート処理を説明するシーケンス図である。尚図１３で説明する印刷フィルタ１３３ａの動作は、本実施形態の画像処理装置１００Ａの有する保存フィルタ１６０以外の出力フィルタ１３３Ａに共通した動作である。
【０１０３】
印刷フィルタ１３３ａは、ジョブの実行指示を受けて（Ｓ１３０１）、パイプ１４１ｂから画像データが書き込まれたことを通知されると（Ｓ１３０２）、出力処理を開始する。ここでは印刷フィルタ１３３ａは印刷処理を開始する。印刷フィルタ１３３ａは、加工フィルタ１３２Ａによりページメモリ２に書き込まれた画像データを読み出し（Ｓ１３０４）、画像データを印刷する（Ｓ１３０５）。
【０１０４】
印刷フィルタ１３３ａは、Ｓ１３０２からＳ１３０５まで処理を、画像データのページ数分繰り返す。そして全ての画像データの印刷処理が完了したら、印刷フィルタ１３３ａはアクティビティ１３４Ａへジョブの実行が完了したことを通知する（Ｓ１３０６）。以上で印刷フィルタ１３３ａにおけるジョブの実行が完了する。
【０１０５】
次に図１４を参照して保存フィルタ１６０におけるスタート処理について説明する。図１４は、第二の実施形態における保存フィルタ１６０のスタート処理を説明するシーケンス図である。
【０１０６】
画像処理装置１００Ａにおいて保存フィルタ１６０は、ジョブの実行開始指示を受けて（Ｓ１４０１）、データ管理１４３により画像データの登録を指示する（Ｓ１４０２）。データ管理１４３は、この指示を受けて登録される画像データ（永続化データ）の識別子であるデータＩＤを保存フィルタ１６０へ返す（Ｓ１４０３）。
【０１０７】
保存フィルタ１６０は、パイプ１４１ａから画像データが書き込まれたことを通知されると（Ｓ１４０４）、画像データの永続化処理を開始する（Ｓ１４０５）。保存フィルタ１６０は、対応付け部２３０により、予め登録されたフィルタＩＤと設定条件ＩＤと（図９Ｓ９２２参照）、ページメモリ１に書き込まれた画像データとを対応付けて永続化データとする（Ｓ１４０６）。そして保存フィルタ１６０は、対応付け部２３０により、永続化データと、データＩＤを対応付けてデータ管理１４３へ登録する（Ｓ１４０７）。データ管理１４３は、新たに永続化データが入力されると、情報の更新を行う（Ｓ１４０８）。
【０１０８】
保存フィルタ１６０は、Ｓ１４０４からＳ１４０８までの処理を画像データのページ数分繰り返す。そして永続化対象の画像データの永続化が完了したら、保存フィルタ１６０はアクティビティ１３４Ａへジョブの実行が完了したことを通知する（Ｓ１４０９）。以上で保存フィルタ１６０におけるジョブの実行が完了する。
【０１０９】
次に図１５を参照して本実施形態の画像処理装置１００Ａにおける画像データの削除について説明する。本実施形態の画像処理装置１００Ａでは、各フィルタが順次処理を実行する間、出力フィルタ１３３Ａで処理が終了して不要となった場合、不要なデータを削除することができる。尚出力フィルタ１３３Ａとは、ここでは印刷フィルタ１３３ａと保存フィルタ１６０である。
【０１１０】
図１５は、第二の実施形態における画像データの削除を説明するシーケンス図である。図１５では、フィルタ構成３００において不要となったデータを削除する例を示す。
【０１１１】
画像処理装置１００Ａにおいて、保存フィルタ１６０は、データが不要になるとパイプ１４１ａへデータの不要通知を行う（Ｓ１５０１）。また印刷フィルタ１３３ａからは、パイプ１４１ｂに対してデータの不要通知が行われる（Ｓ１５０２）。
【０１１２】
パイプ１４１ｂは、この不要通知を受けてパイプ１４１ｂ内のデータを削除し（Ｓ１５０３）、パイプ１４１ｂの前段の加工フィルタ１３２Ａへデータを削除したことを通知する（Ｓ１５０４）。尚この不要通知には、例えば不要となった画像データのページ番号を示す情報などが含まれる。
【０１１３】
加工フィルタ１３２Ａは、この通知を受けて（Ｓ１５０５）、メモリ管理１４４へページメモリの解放を要求する（Ｓ１５０６）。加工フィルタ１３２Ａが確保したページメモリは、ページメモリ２であるから、メモリ管理１４４はページメモリ２を解放する。ページメモリ２は非永続化領域（揮発領域）の画像を読み込むように指定されていたため、メモリ管理１４４はこの時点で非永続化領域（揮発領域）の画像データも消去する。ページメモリ２が解放されると、加工フィルタ１３２Ａはパイプ１４１ａへデータの不要通知を行う（Ｓ１５０７）。パイプ１４１ａは、この不要通知を受けてパイプ１４１ａ内のデータを削除し（Ｓ１５０８）、パイプ１４１ａの前段の読取フィルタ１３１ａへデータを削除したことを通知する（Ｓ１５０９）。
【０１１４】
尚本実施形態では、パイプ１４１は、パイプ１４１の後段に接続された全てのフィルタからデータの不要通知を受けたときのみ、パイプ１４１内のデータの削除と、パイプ１４１の前段のフィルタへ不要通知を行うものとした。図１５の例では、パイプ１４１ａの後段に接続されたフィルタは、加工フィルタ１３２Ａと保存フィルタ１６０である。よってパイプ１４１ａは、加工フィルタ１３２Ａと保存フィルタ１６０の両方から不要通知を受けた時点で、パイプ１４１ａ内のデータの削除と、パイプ１４１ａの前段の読取フィルタ１３１ａへ不要通知を行う。
【０１１５】
読取フィルタ１３１ａは、データの不要通知を受けて（Ｓ１５１０）、メモリ管理１４４へページメモリの解放を要求する（Ｓ１５１１）。読取フィルタ１３１ａが確保したページメモリは、ページメモリ１であるから、メモリ管理１４４はページメモリ１を解放する。ページメモリ１は永続化領域（不揮発領域）の画像を読み込むように指定されていたため、メモリ管理１４４は永続化領域（不揮発領域）の画像データは消去せずに、メモリのみを解法する。以上でデータの削除を完了する。
【０１１６】
次に図１６を参照して本実施形態の画像処理装置１００Ａにおけるジョブの終了について説明する。図１６は、第二の実施形態におけるジョブの終了を説明するシーケンス図である。
【０１１７】
画像処理装置１００Ａにおいて、各フィルタは、ジョブの実行を終了するとアクティビティ１３４Ａへ終了通知を行う（Ｓ１６０１、Ｓ１６０２、Ｓ１６０３、Ｓ１６０４）。
【０１１８】
アクティビティ１３４Ａは、各フィルタから終了通知を受けて（Ｓ１６０５）、各フィルタに後処理を要求する（Ｓ１６０６、Ｓ１６０７、Ｓ１６０８、Ｓ１６０９）。印刷フィルタ１３３ａ、保存フィルタ１６０は、この要求を受けて後処理を実行し（Ｓ１６１０、Ｓ１６１１）、後処理の実行が完了したことをアクティビティ１３４Ａへ通知する（Ｓ１６１２、Ｓ１６１３）。
【０１１９】
加工フィルタ１３２Ａも、この要求を受けて後処理を実行する（Ｓ１６１４）。加工フィルタ１３２Ａは、パイプ１４１ｂ内に残っている全てのデータを消去して（Ｓ１６１５）、アクティビティ１３４Ａへ後処理の完了を通知する（Ｓ１６１６）。読取フィルタ１３１ａも同様に、この要求を受けて後処理を実行する（Ｓ１６１７）。読取フィルタ１３１ａは、パイプ１４１ａ内に残っている全てのデータを消去し（Ｓ１６１８）、アクティビティ１３４Ａへ後処理の完了を通知する（Ｓ１６１９）。以上で本実施形態の画像処理装置１００Ａにおけるジョブの終了処理を完了する。
【０１２０】
以上に説明したように、本実施形態の画像処理装置１００Ａでは、フィルタに画像データの永続化が指示された場合、画像データが書き出されるページメモリを永続化領域として確保する。よって本実施形態では、フィルタから書き出された画像データを直接永続化領域へ保存することができ、画像データの永続化処理を効率的に行うことができる。
（第三の実施形態）
以下に図面を参照して本発明の第三の実施形態について説明する。本発明の第三の実施形態では、画像処理装置に電源断が発生した場合に備えて画像データの永続化処理を行う場合を説明する。以下の本実施形態の説明では、第二の実施形態との相違点についてのみ説明し、第二の実施形態と同様の機能構成を有するものには第二の実施形態の説明で用いた符号と同様の符号を付与し、その説明を省略する。
【０１２１】
本実施形態の画像処理装置では、例えばネットワークや公衆回線等により外部装置と接続されている場合に、画像処理装置と外部装置との間のデータの送受信に関係して画像データの永続化処理が行われる。具体的には、例えば画像処理装置と外部装置との間で行われるＦＡＸの送受信が相当する。
【０１２２】
ＦＡＸの送受信を行う場合、２つ以上の異なる機器で通信しているため、一方の装置の処理が完了して、他方で電源断が発生した場合、処理が完了した側のユーザはジョブが正常に完了したものと認識される虞がある。したがってこの場合、電源断が発生した側でリカバリ処理を行う必要がある。
【０１２３】
本実施形態の画像処理装置１００Ａでは、電源断が発生した場合のリカバリ処理を行うために、画像データの永続化を行う。
【０１２４】
本実施形態のアクティビティ１３４Ｂは、自身の有するフィルタ構成において一つでも電源断時のリカバリ処理が必要なフィルタが存在する場合、全てのフィルタに対してリカバリ処理の準備指示を行う。
【０１２５】
本実施形態におけるリカバリ処理の説明に先立ち、図１７を参照してリカバリ処理が必要とされるフィルタ構成を説明する。図１７は、第三の実施形態におけるフィルタ構成の一例を示す図である。本実施形態のフィルタ構成３１０は、読取フィルタ１３１ａがパイプ１４１ａを介して加工フィルタ１３２Ａへ接続されており、加工フィルタ１３２Ａがパイプ１４１ｂを介してＦＡＸ送信フィルタ１３３ｂへ接続されている。フィルタ構成３１０では、読取フィルタ１３１ａにおいて原稿が読み取られ、加工フィルタ１３２Ａで加工された画像データがＦＡＸ送信フィルタ１３３ｂから外部装置へ送信される。
【０１２６】
次に図１８を参照して本実施形態の画像処理装置１００Ａのリカバリ処理の準備について説明する。図１８は、第三の実施形態におけるリカバリ処理の準備を説明するシーケンス図である。尚図１８のアクティビティ１３４Ｂは、ＦＡＸ送信機能を提供するアクティビティであり、図１７に示すフィルタ構成３１０を有するものとした。
【０１２７】
画像処理装置１００Ａにおいてアクティビティ１３４Ｂが提供する機能の実行が要求されると、アクティビティ１３４Ｂは各フィルタに画像データの永続化を行うか否かを問い合わせる（Ｓ１８０１、Ｓ１８０２、Ｓ１８０３）。ここではＦＡＸ送信フィルタ１３３ｂがリカバリ処理を必要とするため、ＦＡＸ送信フィルタ１３３ｂのみが画像データを永続化することを通知し（Ｓ１８０４）、その他のフィルタは画像データを非永続化することを通知する（Ｓ１８０５、Ｓ１８０６）。
【０１２８】
次にアクティビティ１３４Ｂは、各フィルタへジョブの実行の前処理（エントリ処理）の開始を指示する（Ｓ１８０７、Ｓ１８０８、Ｓ１８０９）。このときアクティビティ１３４Ｂは、リカバリ処理を必要とするフィルタが一つでも存在する場合、すなわち上記した永続化の問い合わせにおいて１つでもフィルタが永続化を通知した場合、各フィルタに対しエントリ処理の開始指示と共に画像データの永続化指示を行う。よってアクティビティ１３４Ｂは、画像保存指示部１３５と条件保存指示部１３６によりＳ１８０７、Ｓ１８０８、Ｓ１８０９において各フィルタへ画像データと設定条件の永続化を指示する。
【０１２９】
各フィルタは、エントリ処理の開始指示を受けてエントリ処理を実行する（Ｓ１８１０、Ｓ１８１１、Ｓ１８１２）。そして各フィルタは、エントリ処理が終了するとジョブの実行準備完了をアクティビティ１３４Ｂへ通知する（Ｓ１８１３、Ｓ１８１４、Ｓ１８１５）。アクティビティ１３４Ｂは全てのフィルタからこの通知を受けて（Ｓ１８１６）、ジョブの実行（スタート処理）を指示する（Ｓ１８１７、Ｓ１８１８、Ｓ１８１９）。各フィルタは、この指示を受けてスタート処理を開始する（Ｓ１８２０、Ｓ１８２１、Ｓ１８２２）。
【０１３０】
次に図１９を参照して本実施形態のエントリ処理について説明する。図１９は、第三の実施形態におけるエントリ処理を説明する図である。
【０１３１】
各フィルタは、エントリ処理の開始指示を受けて（Ｓ１９０１）、処理を実行する。フィルタが出力フィルタ１３３Ａでない場合、フィルタは後段のパイプ１４１をオープンにすると共に、文書情報を永続化することを指示する（Ｓ１９０２）。パイプ１４１は、この指示をデータ管理１４３に通知する（Ｓ１９０３）。データ管理１４３は、この指示を受けて登録される文書情報（永続化データ）の識別子であるデータＩＤを生成し、このデータＩＤをパイプ１４１へ通知する（Ｓ１９０４）。パイプ１４１は、通知されたデータＩＤをフィルタへ通知する（Ｓ１９０５）。フィルタは、アクティビティ１３４Ｂへエントリ処理の終了を通知する（Ｓ１９０６）。
【０１３２】
次に図２０を参照して本実施形態の画像処理装置１００Ａにおけるジョブ実行時のリカバリ準備処理について説明する。図２０は、第三の実施形態におけるリカバリ準備を説明する図である。
【０１３３】
本実施形態の画像処理装置１００Ａは、ジョブの実行が開始されると、予期しない電源断に備えてリカバリ情報を生成し、リカバリ処理の準備を行う。
【０１３４】
本実施形態では、入力フィルタ１３１Ａ以外のフィルタは、スタート処理の実行が開始された直後にリカバリ準備開始可能通知を行う。よってＦＡＸ送信フィルタ１３３ｂと、加工フィルタ１３２Ａは、スタート処理の実行直後にアクティビティ１３４Ｂへリカバリ準備の開始を通知する（Ｓ２００１、Ｓ２００２）。また入力フィルタ１３１Ａは、リカバリ準備が可能となるタイミングでリカバリ準備開始通知をアクティビティ１３４Ｂへ通知する。図２０の例では、入力フィルタ１３１Ａは読取フィルタ１３１ａである。よって読取フィルタ１３１ａは、例えば１ページ目の原稿を読み取った後にリカバリ準備の開始をアクティビティ１３４Ｂへ通知する（Ｓ２００３）。
【０１３５】
アクティビティ１３４Ｂは、全てのフィルタからリカバリ準備の開始を通知されると（Ｓ２００４）、各フィルタへフィルタ毎のリカバリ情報であるフィルタ・リカバリ情報の生成要求を行う（Ｓ２００５、Ｓ２００６、Ｓ２００７）。尚本実施形態のフィルタ・リカバリ情報とは、各フィルタの設定条件、パイプ１４１をオープンにした際に得られる文書情報のデータＩＤ、ジョブ実行の進捗情報などである。
【０１３６】
各フィルタは、フィルタ・リカバリ情報の生成要求を受けて、フィルタ・リカバリ情報を生成する（Ｓ２００８、Ｓ２００９、Ｓ２０１０）。各フィルタは、データ管理１４３にフィルタ・リカバリ情報の永続化を指示する。データ管理１４３は、この指示を受けて登録されるフィルタ・リカバリ情報の識別子であるリカバリＩＤを生成し、このリカバリＩＤをフィルタへ通知する。
そして各フィルタは、生成したリカバリＩＤをアクティビティ１３４Ｂへ通知する（Ｓ２０１１、Ｓ２０１２、Ｓ２０１３）。
【０１３７】
アクティビティ１３４Ｂは、全フィルタからリカバリＩＤを通知されると、全フィルタのリカバリＩＤとアクティビティ１３４Ｂの進捗情報とから、ジョブのリカバリ情報を生成する（Ｓ２０１４）。アクティビティ１３４Ｂは、生成されたリカバリ情報をデータ管理１４３へ登録する（Ｓ２０１５）。データ管理１４３は、リカバリ情報を永続化されるデータとして永続化領域へ保存する（Ｓ２０１６）。そしてデータ管理１４３は、アクティビティ１３４Ｂへリカバリ情報を登録したことを通知する（Ｓ２０１７）。以上でリカバリ処理の準備を終了する。
【０１３８】
次に本実施形態の画像処理装置１００Ａの各フィルタにおけるスタート処理について説明する。まず始めに、図２１を参照して入力フィルタ１３１Ａの一つである読取フィルタ１３１ａによるスタート処理について説明する。図２１は、第三の実施形態における読取フィルタ１３１ａによるスタート処理を説明するシーケンス図である。
【０１３９】
図２１のＳ２１０１からＳ２１０７までの処理は、図１１のＳ１１０１からＳ１１０７までの処理と同様であるから説明を省略する。
【０１４０】
パイプ１４１ａは、Ｓ２１０７において画像データがページメモリ１へ書き込こまれた通知を受けると、パイプ１４１ａは文書情報が更新されたことをデータ管理１４３へ通知する（Ｓ２１０８）。データ管理１４３は、ページメモリ１に書き込まれた画像データ（永続化データ）の情報を、先に登録されている文書情報に追加する（Ｓ２１０９）。またパイプ１４１ａは、画像データがページメモリ１へ書き込まれたことを加工フィルタ１３２Ａへ通知する（Ｓ２１１０）。
【０１４１】
ここで読取フィルタ１３１ａが、リカバリ準備開始前であった場合、読取フィルタ１３１ａは、アクティビティ１３４Ｂへ、リカバリ準備が開始可能になったことを通知する（Ｓ２１１１）。また読取フィルタ１３１ａがリカバリ準備済みであり、フィルタ・リカバリ情報が登録されている場合、読取フィルタ１３１ａはフィルタ・リカバリ情報を更新する（Ｓ２１１２）。読取フィルタ１３１ａは、Ｓ２１０２からＳ２１１２までの処理を原稿のページ数回繰り返す。そして読取フィルタ１３１ａは、ジョブの実行が完了したことをアクティビティ１３４Ｂへ通知する（Ｓ２１１３）。以上で読取フィルタ１３１ａのスタート処理を終了する。
【０１４２】
次に、図２２を参照して本実施形態の画像処理装置１００Ａの加工フィルタ１３２Ａにおけるスタート処理について説明する。図２２は、第三の実施形態における加工フィルタ１３２Ａによるスタート処理を説明するシーケンス図である。
【０１４３】
ジョブの実行指示を受けて（Ｓ２２０１）、加工フィルタ１３２Ａは、リカバリ準備の開始指示をアクティビティ１３４Ｂへ通知する（Ｓ２２０２）。
【０１４４】
次に加工フィルタ１３２Ａは、パイプ１４１ａから画像データが書き込まれたことを通知されると（Ｓ２２０３）、加工フィルタ１３２Ａは、保存領域決定部２１０により、メモリ管理１４４に対して加工後の画像データを書き込むためのページメモリ２の確保指示を行う（Ｓ２２０４）。ここで加工フィルタ１３２Ａは、画像データの永続化指示を受けているため、ページメモリ２は永続化領域（不揮発領域）に確保される。
【０１４５】
図２２のＳ２２０５からＳ２２１０までの処理は、図１２のＳ１２０４からＳ１２０９までの処理と同様であるから説明を省略する。
【０１４６】
パイプ１４１ｂは、画像データがページメモリ２に書き込まれた通知を受けて、文書情報が更新されたことをデータ管理１４３へ通知する（Ｓ２２１１）。データ管理１４３は、ページメモリ２に書き込まれた画像データ（永続化データ）の情報を先に登録されている文書情報に追加する（Ｓ２２１２）。またパイプ１４１ａは、画像データがページメモリ２へ書き込まれたことをＦＡＸ送信フィルタ１３３ｂへ通知する（Ｓ２２１３）。
【０１４７】
ここで加工フィルタ１３２Ａにおいて、リカバリ準備済みでフィルタ・リカバリ情報が登録されている場合、加工フィルタ１３２Ａはフィルタ・リカバリ情報を更新する（Ｓ２２１４）加工フィルタ１３２Ａは、Ｓ２２０３からＳ２１１４までの処理を原稿のページ数回繰り返す。そして加工フィルタ１３２Ａは、ジョブの実行が完了したことをアクティビティ１３４Ｂへ通知する（Ｓ２１１５）。以上で加工フィルタ１３２Ａのスタート処理を終了する。
【０１４８】
次に、図２３を参照して本実施形態の画像処理装置１００ＡのＦＡＸ送信フィルタ１３３ｂにおけるスタート処理について説明する。図２３は、第三の実施形態におけるＦＡＸ送信フィルタ１３３ｂによるスタート処理を説明するシーケンス図である。
【０１４９】
ジョブの実行指示を受けて（Ｓ２３０１）、ＦＡＸ送信フィルタ１３３ｂは、リカバリ準備の開始指示をアクティビティ１３４Ｂへ通知する（Ｓ２３０２）。
【０１５０】
図２３のＳ２３０３からＳ２３０６までの処理は、図１３のＳ１３０２からＳ１３０５までの処理と同様であるから説明を省略する。
【０１５１】
Ｓ２３０６においてＦＡＸ送信フィルタ１３３ｂがリカバリ準備済みであり、フィルタ・リカバリ情報が登録されている場合、ＦＡＸ送信フィルタ１３３ｂは、フィルタ・リカバリ情報を更新する（Ｓ２３０７）。ＦＡＸ送信フィルタ１３３ｂは、Ｓ２３０３からＳ２３０７までの処理を原稿のページ数回繰り返す。そしてＦＡＸ送信フィルタ１３３ｂは、ジョブの実行が完了したことをアクティビティ１３４Ｂへ通知する（Ｓ２３０８）。以上でＦＡＸ送信フィルタ１３３ｂのスタート処理を終了する。
【０１５２】
次に図２４を参照して本実施形態の画像処理装置１００Ａにおける画像データの削除について説明する。本実施形態の画像処理装置１００Ａでは、各フィルタが順次処理を実行する間、出力フィルタ１３３Ａで処理が終了して不要となった画像データを削除することができる。尚出力フィルタ１３３Ａとは、ここではＦＡＸ送信フィルタ１３３ｂである。
【０１５３】
図２４は、第三の実施形態における画像データの削除を説明するシーケンス図である。図２４では、フィルタ構成３１０においてパイプ１４１のデータを削除する例を示す。
【０１５４】
画像処理装置１００Ａにおいて、ＦＡＸ送信フィルタ１３３ｂから、パイプ１４１ｂに対してデータの不要通知が行われる（Ｓ２４０１）。パイプ１４１ｂは、この不要通知を受けてパイプ１４１ｂ内のデータを削除する（Ｓ２４０２）。またパイプ１４１ｂは、データ管理１４３へデータの不要通知を行う（Ｓ２４０３）。このときパイプ１４１ｂは、不要通知において指定された削除対象のデータＩＤをデータ管理１４３へ通知する。データ管理１４３は、この通知を受けて文書情報（永続化データ）の更新を行う（Ｓ２４０４）。パイプ１４１ｂは、データの削除を行ったことを加工フィルタ１３２Ａへ通知する（Ｓ２４０５）。
【０１５５】
加工フィルタ１３２Ａは、この通知を受けて（Ｓ２４０６）、メモリ管理１４４へページメモリ２の解放を要求し、データＩＤで指定された画像データを不要な画像データとして削除する（Ｓ２４０７）。そして加工フィルタ１３２Ａは、パイプ１４１ａへデータの不要通知を行う（Ｓ２４０８）。
【０１５６】
パイプ１４１ａは、この不要通知を受けて、パイプ１４１ａ内のデータを削除する（Ｓ２４０９）。またパイプ１４１ａは、データ管理１４３へデータの不要通知を行う（Ｓ２４１０）。この不要通知には、削除対象のデータＩＤも含まれる。データ管理１４３は、この通知を受けて文書情報の更新を行う（Ｓ２４１１）。パイプ１４１ａは、パイプ１４１ａのデータの削除を行ったことを読取フィルタ１３１ａへ通知する（Ｓ２４１２）。
【０１５７】
読取フィルタ１３１ａは、この通知を受けて（Ｓ２４１３）、メモリ管理１４４へページメモリ１の解放を要求し、データＩＤで指定された画像データを不要な画像データとして削除する（Ｓ２４１４）。以上でデータの削除を終了する。
【０１５８】
次に図２５を参照して本実施形態の画像処理装置１００Ａにおけるジョブの終了について説明する。図２５は、第三の実施形態におけるジョブの終了を説明するシーケンス図である。
【０１５９】
画像処理装置１００Ａにおいて、各フィルタは、ジョブの実行を終了するとアクティビティ１３４Ｂへ終了通知を行う（Ｓ２５０１、Ｓ２５０２、Ｓ２５０３）。アクティビティ１３４Ｂは、各フィルタから終了通知を受けて（Ｓ２５０４）、各フィルタに後処理を要求する（Ｓ２５０５、Ｓ２５０６、Ｓ２５０７）。
【０１６０】
ＦＡＸ送信フィルタ１３３ｂは、後処理の要求を受けて、データ管理１４３によりＦＡＸ送信フィルタ１３３ｂのフィルタ・リカバリ情報を削除し（Ｓ２５０８）、後処理の完了をアクティビティ１３４Ｂへ通知する（Ｓ２５０９）。
【０１６１】
加工フィルタ１３２Ａは、後処理の要求を受けて、データ管理１４３により加工フィルタ１３２Ａのフィルタ・リカバリ情報を削除し（Ｓ２５１０）、パイプ１４１ｂへデータの消去を通知する（Ｓ２５１１）。パイプ１４１ｂは、この通知を受けてデータ管理１４３により永続化データを削除し（Ｓ２５１２）、永続化データを削除したことを加工フィルタ１３２Ａへ通知する。加工フィルタ１３２Ａは、この通知を受けて後処理の完了をアクティビティ１３４Ｂへ通知する（Ｓ２５１３）。
【０１６２】
読取フィルタ１３１ａは、後処理の要求を受けて、読取フィルタ１３１ａのフィルタ・リカバリ情報を削除し（Ｓ２５１４）、パイプ１４１ａへデータの消去を通知する（Ｓ２５１５）。パイプ１４１ａは、この通知を受けてデータ管理１４３により永続化データを削除し（Ｓ２５１６）、永続化データを削除したことを読取フィルタ１３１ａへ通知する。読取フィルタ１３１ａは、この通知を受けて後処理の完了をアクティビティ１３４Ｂへ通知する（Ｓ２５１７）。
【０１６３】
アクティビティ１３４Ｂは、全てのフィルタから後処理の完了通知を受けて（Ｓ２５１８）、データ管理１４３によりジョブのリカバリ情報の削除し（Ｓ２５１９）、ジョブのリカバリ情報を削除する。以上で本実施形態のジョブの終了処理を完了する。
【０１６４】
次に本実施形態の画像処理装置１００Ａにおけるジョブのリカバリ処理を説明する。
【０１６５】
画像処理装置１００Ａにおいて電源断が発生した後に、再起動されたとき、画像処理装置１００Ａは、各アクティビティに自身が記録したリカバリ情報が残っていないかデータ管理１４３に問い合わせる。ここでは図２６を参照して、アクティビティがＦＡＸ機能を提供するＦＡＸアクティビティであった場合のリカバリ処理を説明する。図２６は、第三の実施形態におけるジョブのリカバリ処理を説明するシーケンス図である。
【０１６６】
アクティビティ１３４Ｂは、データ管理１４３へリカバリ情報が残っていないかを問い合わせる（Ｓ２６０１）。リカバリ情報が残っている場合、リカバリ情報に基づき、各ジョブ情報を復元する（Ｓ２６０２）。またアクティビティ１３４Ｂは、リカバリ情報に基づき、ジョブを構築する（Ｓ２６０３）。
【０１６７】
ジョブが構築されるとアクティビティ１３４Ｂは、フィルタ・リカバリ情報を呼び出し、各フィルタにジョブの復元を指示する。このときジョブ情報に格納されているフィルタ・リカバリ情報のリカバリＩＤを渡す（Ｓ２６０４）。各フィルタでのジョブの復元処理については後述する。
【０１６８】
アクティビティ１３４Ｂは、全てのフィルタとパイプが復元されると、各フィルタへジョブの実行指示を行う。各フィルタは、リカバリ情報に含まれる処理の進捗情報に基づいて、ジョブの実行を行う。尚Ｓ２６０１においてリカバリ情報が残っていない場合は、通常の起動時の動作を行う（Ｓ２６０５）。
【０１６９】
次に図２７を参照して、各フィルタにおけるジョブの復元について説明する。図２７は、第三の実施形態における各フィルタのジョブの復元を説明するシーケンス図である。
【０１７０】
フィルタは、アクティビティ１３４Ｂからジョブの復元指示を受けて（Ｓ２７０１）、データ管理１４３からリカバリ情報を取得する（Ｓ２７０２）。フィルタは、リカバリ情報に含まれるフィルタの設定条件を復元する（Ｓ２７０３）。
【０１７１】
ここでフィルタが出力フィルタ１３３Ａ以外のフィルタの場合、フィルタはパイプ１４１へ永続化された文書情報の復元指示を通知する（Ｓ２７０４）。この復元通知には、復元される文書情報のデータＩＤが含まれる。パイプ１４１は、データＩＤに基づきデータ管理１４３を参照し（Ｓ２７０５）、文書情報を取得する（Ｓ２７０６）。以上でジョブの復元を終了する。
【０１７２】
以上に説明したように、本実施形態によれば、リカバリ処理が必要なフィルタが存在する場合には、全てのフィルタにおいて永続化が指定される。よって予期せぬ電源断が発生した場合にも、各フィルタにおいてジョブを復元することができる。
（第四の実施形態）
本発明の第四の実施形態は、第二の実施形態と第三の実施形態を組み合わせたものである。よって第四の実施形態では、第二の実施形態及び第三の実施形態との相違点のみ説明し、第二の実施形態及び第三の実施形態と同様の機能構成を有するものには、第二の実施形態及び第三の実施形態の説明で使用した符号と同様の符号を付与し、その説明を省略す。る。
【０１７３】
本実施形態によれば、各フィルタにおいて画像データの永続化を指定することにより、画像データの再出力機能と、電源断時のジョブの復元機能の両方を実現することができる。
【０１７４】
以下に本実施形態における画像処理装置１００Ａの動作の説明に先立ち、本実施形態の画像処理装置１００Ａの有するフィルタ構成の一例を図２８に示す。図２８に示すフィルタ構成３２０では、入力フィルタ１３１ＡとしてＦＡＸ受信フィルタ１３１ｂがパイプ１４１ａに接続されている。ＦＡＸ受信フィルタ１３１ｂは、パイプ１４１ａを介して保存フィルタ１６０と加工フィルタ１３２Ａに接続されており、加工フィルタ１３２Ａはパイプ１４１ｂを介して印刷フィルタ１３３ａと接続されている。フィルタ構成３２０では、ＦＡＸ受信フィルタ１３１ｂにより受信した画像データを印刷フィルタ１３３ａにより
印刷し、保存フィルタ１６０により永続化データとして保存する。
【０１７５】
次に図２９を参照して本実施形態の画像処理装置１００Ａの動作を説明する。図２９は、第四の実施形態における永続化処理を説明するシーケンス図である。尚図２９のアクティビティ１３４Ｃは、図２８に示すフィルタ構成３２０を有し、ＦＡＸ受信した画像データを印刷し、保存する機能を提供するアクティビティである。
【０１７６】
アクティビティ１３４Ｃの実行が要求されると、アクティビティ１３４Ｃは各フィルタに画像データの永続化を行うか否かを問い合わせる（Ｓ２９０１、Ｓ２９０２、Ｓ２９０３、Ｓ２９０４）。ここでは保存フィルタ１６０が画像データの再出力のために画像データの永続化を要求し、ＦＡＸ受信フィルタ１３１ｂがリカバリ準備のために画像データの永続化を要求する。
【０１７７】
次にアクティビティ１３４Ｃは、各フィルタへジョブの実行の前処理（エントリ処理）の開始を指示する（Ｓ２９０５、Ｓ２９０６、Ｓ２９０７、Ｓ２９０８）。このときアクティビティ１３４Ｃは、保存フィルタ１６０の前段に接続されているフィルタに対しては、画像データの永続化とリカバリ準備とを指示を行う。よってアクティビティ１３４Ａは、ＦＡＸ受信フィルタ１３１ｂに画像データの永続化とリカバリ準備とを指示する。またアクティビティ１３４Ｃは、保存フィルタ１６０の前段に接続されているフィルタ、すなわちＦＡＸ受信フィルタ１３１ｂより後段にある全てのフィルタにも設定条件の永続化とリカバリ準備を指示する（Ｓ２９０５、Ｓ２９０６、Ｓ２９０７、Ｓ２９０８）。すなわちアクティビティ１３４Ｃは、各フィルタに対して画像保存指示部１３６により画像データを永続化領域へ保存する指示を行い、条件保存指示部１３６は各フィルタの設定条件を保存する指示を行う。
【０１７８】
各フィルタは、エントリ処理の開始指示を受けると、エントリ処理を開始する（Ｓ２９０９、Ｓ２９１０、Ｓ２９１１、Ｓ２９１２）。エントリ処理の説明は後述する。
【０１７９】
各フィルタはエントリ処理を実行すると、アクティビティ１３４Ａへジョブの実行準備が完了したことを通知する（Ｓ２９１３、Ｓ２９１４、Ｓ２９１５、Ｓ２９１６）。本実施形態では、この通知と共に、エントリ処理で登録された各フィルタの設定条件ＩＤ（識別子）もアクティビティ１３４Ｃへ通知される。
【０１８０】
アクティビティ１３４Ｃは、この通知を受けて（Ｓ２９１７）、各フィルタを識別するフィルタＩＤを取得し、フィルタＩＤと通知された各フィルタの設定条件ＩＤとの対応付けを行う。そしてアクティビティ１３４Ａは、対応付けられたフィルタＩＤと設定条件ＩＤとのリストを保存フィルタ１６０へ登録する（Ｓ２９１８）。
【０１８１】
次にアクティビティ１３４Ｃは、各フィルタへジョブの実行処理（スタート処理）の開始指示を行う（Ｓ２９１９、Ｓ２９２０、Ｓ２９２１、Ｓ２９２２）。各フィルタは、開始指示を受けてスタート処理を開始する（Ｓ２９２３、Ｓ２９２４、Ｓ２９２５、Ｓ２９２６）。
【０１８２】
尚図２９では、図２８に示すフィルタ構成３２０における動作を説明したものであるが、本実施形態では、フィルタ構成に保存フィルタ１６０及びリカバリ準備を必要とするフィルタが含まれるか否かによって、それぞれに対応した指定をフィルタに対して行うことができる。
【０１８３】
本実施形態におけるフィルタ構成毎のフィルタに対する指定を表１に示す。
【０１８４】
【表１】
2009118277.tif 000003
表１に示すように、本実施形態の画像処理装置では、例えばフィルタ構成に保存フィルタ１６０（データの永続化を指示するフィルタ）とリカバリ準備を必要とするフィルタの両方が含まれている場合、保存フィルタ１６０の前段に接続されたフィルタＡには、リカバリ準備と画像データの永続化が指定される。またフィルタＡより前段のフィルタには、リカバリ準備のみが指定される。またフィルタＡより後段のフィルタには、リカバリ準備と設定条件の永続化が指定される。
【０１８５】
フィルタ構成にリカバリ準備を必要とするフィルタが含まれる場合、全てのフィルタはリカバリ準備が指定される。フィルタ構成に保存フィルタ１６０（データの永続化を指示するフィルタ）が含まれる場合、保存フィルタ１６０の前段のフィルタＡには、画像データの永続化が指定され、フィルタＡより前段のフィルタと、フィルタＡより後段のフィルタには、設定条件の永続化が指定される。そしてフィルタ構成に、保存フィルタ１６０（データの永続化を指示するフィルタ）とリカバリ準備を必要とするフィルタの何れも含まれない場合、各フィルタには指定は行われない。
【０１８６】
本実施形態では、以上のように、フィルタ構成に応じて各フィルタに対し画像データ又は設定条件の永続化及びリカバリ準備の指定を行うことで、画像データの再出力機能と、電源断時のジョブの復元機能の両方を実現することができる。
【０１８７】
次に本実施形態におけるジョブ実行時のリカバリ準備処理について説明する。図３０は、第四の実施形態におけるリカバリ準備を説明する図である。
【０１８８】
図３０のＳ３００１からＳ３０２１までの処理は、図２０のＳ２００１からＳ２０１７までの処理に、保存フィルタ１６０におけるフィルタ・リカバリ情報の生成処理（Ｓ３００１、Ｓ３００６、Ｓ３０１０、Ｓ３０１４）が含まれたものである。保存フィルタ１６０におけるフィルタ・リカバリ情報の生成処理は、図２０で説明したその他のフィルタにおけるフィルタ・リカバリ情報の生成処理と同様であるから、図３０のＳ３００１からＳ３０２１までの処理の説明は省略する。図３１のＳ３１０１からＳ３１０５までの処理は、図１９のＳ１９０１からＳ１９０５までの処理と同様であるから、説明を省略する。また図３１において、フィルタが出力フィルタ１３３Ａ以外で且つ設定条件を永続化する場合のＳ３１０６の処理は、図１０のＳ１００３と同様であるから説明を省略する。
【０１８９】
次に図３２を参照して本実施形態における保存フィルタ１６０のスタート処理を説明する。図３２は第四の実施形態における保存フィルタ１６０のスタート処理を説明するシーケンス図である。
【０１９０】
保存フィルタ１６０は、スタート処理の実行指示を受けて（Ｓ３２０１）、アクティビティ１３４Ｃへリカバリ準備開始通知を行う（Ｓ３２０２）。図３２のＳ３２０３からＳ３２０９までの処理は、図１４のＳ１４０２からＳ１４０８までの処理と同様であるから説明を省略する。
【０１９１】
ここで保存フィルタ１６０において、リカバリ準備済みでフィルタ・リカバリ情報が登録されている場合、保存フィルタ１６０はフィルタ・リカバリ情報を更新する（Ｓ３２１０）。保存フィルタ１６０は、Ｓ３２０５からＳ３２１０までの処理を原稿のページ数回繰り返す。そして保存フィルタ１６０は、ジョブの実行が完了したことをアクティビティ１３４Ｃへ通知する（Ｓ３２１１）。以上で保存フィルタ１６０のスタート処理を終了する。
【０１９２】
次に図３３を参照して本実施形態における画像データの削除を説明する。図３３は第四の実施形態における画像データの削除を説明するシーケンス図である。
【０１９３】
保保存フィルタ１６０は、パイプ１４１ａへパイプ１４１ａ内のデータの消去指示を通知する（Ｓ３３０１）。図３３のＳ３３０２からＳ３３１５までの処理は、図２４のＳ２４０１からＳ２４１４までの処理と同様であるから説明を省略する。ただし、フィルタが確保したページメモリが非永続化領域（揮発領域）、あるいは永続化領域（不揮発領域）のどちらの画像を読み込むように指定されていたかで、メモリ管理１４４における画像データの消去処理が異なる。前者の場合はページメモリの解放と同時に画像データを消去するが、後者の場合はページメモリの解放のみ行い、画像データは消去しない。
【０１９４】
次に図３４を参照して本実施形態におけるジョブ実行の終了を説明する。図３４は第四の実施形態におけるジョブ実行の終了を説明するシーケンス図である。
【０１９５】
図３４のＳ３４０１からＳ３４２２までの処理は、図２５のＳ２５０１からＳ２５１９までの処理に、保存フィルタ１６０におけるジョブの終了処理（Ｓ３４０４、Ｓ３４１０、Ｓ３４１１、）が含まれたものである。保存フィルタ１６０におけるジョブの終了処理は、図２５で説明したその他のフィルタにおける処理と同様であるから、図３４のＳ３４０１からＳ３４２２までの処理の説明は省略する。
【０１９６】
以上に説明したように、本実施形態によれば、各フィルタにおいて画像データの永続化を指定することにより、画像データの再出力機能と、電源断時のジョブの復元機能の両方を実現することができる。
【０１９７】
以上、各実施形態に基づき本発明の説明を行ってきたが、上記実施形態に示した要件に本発明が限定されるものではない。これらの点に関しては、本発明の主旨をそこなわない範囲で変更することができ、その応用形態に応じて適切に定めることができる。
【図面の簡単な説明】
【０１９８】
【図１】パイプ＆フィルタの概念を説明する図である。
【図２】パイプ＆フィルタの概念が適用された画像処理装置の一例のハードウェア構成図である。
【図３】本発明の第一の実施形態の画像処理装置１００のソフトウェア構成を示す構成図である。
【図４】第一の実施形態の画像処理装置１００における印刷処理を説明する図である。
【図５】第二の実施形態の画像処理装置１００Ａのソフトウェア構成を示す構成図である。
【図６】第二の実施形態の画像処理装置１００Ａのアクティビティ１３４Ａを説明する図である。
【図７】第二の実施形態の画像処理装置１００Ａの有する各フィルタを説明する図である。
【図８】第二の実施形態の画像処理装置１００Ａにおけるフィルタ構成の一例を示す図である。
【図９】第二の実施形態の画像処理装置１００Ａにおける画像データの永続化処理を説明するシーケンス図である。
【図１０】第二の実施形態におけるエントリ処理を説明するシーケンス図である。
【図１１】第二の実施形態における読取フィルタ１３１ａによるスタート処理を説明するシーケンス図である。
【図１２】第二の実施形態における加工フィルタ１３２Ａによるスタート処理を説明するシーケンス図である。
【図１３】第二の実施形態における印刷フィルタ１３３ａのスタート処理を説明するシーケンス図である。
【図１４】第二の実施形態における保存フィルタ１６０のスタート処理を説明するシーケンス図である。
【図１５】第二の実施形態における画像データの削除を説明するシーケンス図である。
【図１６】第二の実施形態におけるジョブの終了を説明するシーケンス図である。
【図１７】第三の実施形態におけるフィルタ構成の一例を示す図である。
【図１８】第三の実施形態におけるリカバリ処理の準備を説明するシーケンス図である。
【図１９】第三の実施形態におけるエントリ処理を説明する図である。
【図２０】第三の実施形態におけるリカバリ準備を説明する図である。
【図２１】第三の実施形態における読取フィルタ１３１ａによるスタート処理を説明するシーケンス図である。
【図２２】第三の実施形態における加工フィルタ１３２Ａによるスタート処理を説明するシーケンス図である。
【図２３】第三の実施形態におけるＦＡＸ送信フィルタ１３３ｂによるスタート処理を説明するシーケンス図である。
【図２４】第三の実施形態における画像データの削除を説明するシーケンス図である。
【図２５】第三の実施形態におけるジョブの終了を説明するシーケンス図である。
【図２６】第三の実施形態におけるジョブのリカバリ処理を説明するシーケンス図である。
【図２７】第三の実施形態における各フィルタのジョブの復元を説明するシーケンス図である。
【図２８】第四の実施形態におけるフィルタ構成の一例を示す図である。
【図２９】第四の実施形態における永続化処理を説明するシーケンス図である。
【図３０】第四の実施形態におけるリカバリ準備を説明する図である。
【図３１】第四の実施形態におけるエントリ処理を説明するシーケンス図である。
【図３２】第四の実施形態における保存フィルタ１６０のスタート処理を説明するシーケンス図である。
【図３３】第四の実施形態における画像データの削除を説明するシーケンス図である。
【図３４】第四の実施形態におけるジョブ実行の終了を説明するシーケンス図である。
【符号の説明】
【０１９９】
１００、１００Ａ  画像処理装置
１３１、１３１Ａ  入力フィルタ
１３１ａ  読取フィルタ
１３１ｂ  ＦＡＸ受信フィルタ
１３２、１３２Ａ  加工フィルタ
１３３、１３３Ａ  出力フィルタ
１３３ａ  印刷フィルタ
１３３ｂ  ＦＡＸ送信フィルタ
１３４、１３４Ａ、１３４Ｂ、１３４Ｃ  アクティビティ
１４３  データ管理
１４４  メモリ管理
１６０  保存フィルタ
【図１】
2009118277.tif 000004
【図２】
2009118277.tif 000005
【図３】
2009118277.tif 000006
【図４】
2009118277.tif 000007
【図５】
2009118277.tif 000008
【図６】
2009118277.tif 000009
【図７】
2009118277.tif 000010
【図８】
2009118277.tif 000011
【図９】
2009118277.tif 000012
【図１０】
2009118277.tif 000013
【図１１】
2009118277.tif 000014
【図１２】
2009118277.tif 000015
【図１３】
2009118277.tif 000016
【図１４】
2009118277.tif 000017
【図１５】
2009118277.tif 000018
【図１６】
2009118277.tif 000019
【図１７】
2009118277.tif 000020
【図１８】
2009118277.tif 000021
【図１９】
2009118277.tif 000022
【図２０】
2009118277.tif 000023
【図２１】
2009118277.tif 000024
【図２２】
2009118277.tif 000025
【図２３】
2009118277.tif 000026
【図２４】
2009118277.tif 000027
【図２５】
2009118277.tif 000028
【図２６】
2009118277.tif 000029
【図２７】
2009118277.tif 000030
【図２８】
2009118277.tif 000031
【図２９】
2009118277.tif 000032
【図３０】
2009118277.tif 000033
【図３１】
2009118277.tif 000034
【図３２】
2009118277.tif 000035
【図３３】
2009118277.tif 000036
【図３４】
2009118277.tif 000037