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