(57)【特許請求の範囲】
【請求項１】
それぞれ画像データの入力、出力、又は画像データに対する画像処理を実行する処理手段の組み合わせにより所定の機能を実現する画像処理装置であって、
第一の前記処理手段は、
前記組み合わせに用いられている、自己以外の前記処理手段である別処理手段に対して、当該第一の処理手段の動作条件を決定するための動作条件決定情報を取得するための情報取得要求を行う情報取得要求手段と、
前記別処理手段から、前記動作条件決定情報を取得する情報取得手段と、
前記情報取得手段により取得された動作条件決定情報に基づき、当該第一の処理手段の動作条件を決定する動作制御手段と、
を有することを特徴とする画像処理装置。
【請求項２】
前記情報取得要求手段により行われる情報取得要求のデータ形式は、該情報取得要求の要求先の処理手段に依存しないデータ形式であることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記第一の処理手段が出力するデータを該第一の処理手段に接続された前記別処理手段に入力させる、及び／又は、前記別処理手段が出力するデータを前記第一の処理手段に入力させる伝達手段を有し、
前記別処理手段は、前記伝達手段を介して前記第一の処理手段と接続された処理手段であることを特徴とする請求項１又は２に記載の画像形成装置。
【請求項４】
前記別処理手段は、前記組み合わせにおいて当該第一の処理手段の前後関係にある処理手段であることを特徴とする請求項１乃至３のいずれか一項に記載の画像処理装置。
【請求項５】
前記動作条件決定情報は、当該第一の処理手段の動作条件を決定するための補助パラメータを含むことを特徴とする請求項１乃至４のいずれか一項に記載の画像処理装置。
【請求項６】
前記別処理手段は、
前記所定の機能の処理順序において当該別処理手段と前後関係にある処理手段から前記情報取得要求を受けると、当該別処理手段の前後関係にあるその他の処理手段に対して前記情報取得要求を行う情報取得要求手段と、
前記その他の処理手段から、前記動作条件決定情報を取得する動作条件情報取得手段と、
前記動作条件情報取得手段により取得された前記動作条件決定情報、及び／又は、当該別処理手段が有する動作条件決定情報に基づいて決定される動作条件決定情報を、前記前後関係にある処理手段に対して提供する情報提供手段と、
を有することを特徴とする請求項３乃至５のいずれか一項に記載の画像処理装置。
【請求項７】
前記動作条件情報取得手段は、さらに、前記その他の処理手段が当該第一の別処理手段からいくつの処理手段を介した前後関係にあるかを示す階層値を、前記動作条件決定情報に対応付けて取得し、
前記情報提供手段は、取得した前記動作条件決定情報に前記階層値を対応付けて提供し、
当該第一の処理手段では、前記動作制御手段は、さらに、前記情報取得手段により取得された情報が当該第一の処理手段の動作条件の決定のためには過多である場合、前記情報取得手段により取得された階層値が最小値をとる動作条件決定情報に基づき、当該第一の処理手段の動作条件を決定することを特徴とする請求項６に記載の画像処理装置。
【請求項８】
前記第一の処理手段は、
当該第一の処理手段の動作条件決定情報の取得要求を行う際に、時間の測定を開始する時間測定手段を有し、
前記時間測定手段により所定の時間の経過が測定されたとき、前記情報取得手段により動作条件決定情報が取得されていない場合、前記動作制御手段は、当該第一の処理手段の動作を中止することを特徴とする請求項１乃至７のいずれか一項に記載の画像処理装置。
【請求項９】
前記動作制御手段は、さらに、前記情報取得手段により取得された情報が当該第一の処理手段の動作条件の決定のためには不足している或いは過多である場合、予め設定されたデフォルト動作条件で動作する又は当該第一の処理手段の動作を中止することを特徴とする請求項１乃至８のいずれか一項に記載の画像処理装置。
【請求項１０】
前記動作制御手段は、さらに、前記情報取得手段により取得された情報が当該第一の処理手段の動作条件の決定のためには不足している或いは過多である場合、エラーと判断し、エラー通知を行う及び／又はエラーログを残すことを特徴とする請求項１乃至９のいずれか一項に記載の画像処理装置。
【請求項１１】
当該第一の処理手段が実現する機能が自動変倍機能である、且つ、当該第一の処理手段の動作条件が前記自動変倍機能に係る変倍率である場合、
前記動作条件決定情報は、入力サイズ及び出力サイズであり、
前記動作制御手段は、該入力サイズ及び出力サイズに基づき、変倍率を決定することを特徴とする請求項１乃至１０のいずれか一項に記載の画像処理装置。
【請求項１２】
当該第一の処理手段が実現する機能が自動用紙選択機能である、且つ、当該第一の処理手段の動作条件が前記自動用紙選択機能に係る用紙サイズである場合、
前記動作条件決定情報は、入力サイズであり、
前記動作制御手段は、該入力サイズに基づき、前記用紙サイズを決定することを特徴とする請求項１乃至１１のいずれか一項に記載の画像処理装置。
【請求項１３】
当該第一の処理手段が実現する機能がマーキング埋込機能である、且つ、当該第一の処理手段の動作条件が前記マーキング埋込機能に係る埋込対象文書である場合、
前記動作条件決定情報は、文書情報であり、
前記動作制御手段は、該文書情報に基づき、前記埋込対象文書を決定することを特徴とする請求項１乃至１２のいずれか一項に記載の画像処理装置。
【請求項１４】
それぞれ画像データの入力、出力、又は画像データに対する画像処理を実行する処理手段の組み合わせにより所定の機能を実現する画像処理装置におけるアプリケーション実行方法であって、
第一の前記処理手段が、前記組み合わせに用いられている、自己以外の前記処理手段である別処理手段に対して、当該第一の処理手段の動作条件を決定するための動作条件決定情報を取得するための情報取得要求を行う情報取得要求工程と、
前記第一の処理手段が、前記別処理手段から前記動作条件決定情報を取得する情報取得工程と、
前記第一の処理手段が、前記情報取得工程において取得された動作条件決定情報に基づき、当該第一の処理手段の動作条件を決定する動作制御工程と、
を有することを特徴とするアプリケーション実行方法。
【請求項１５】
コンピュータに、請求項１に記載の画像処理装置の各手段に係る処理を実行させることを特徴とするアプリケーション実行プログラム。
【請求項１６】
コンピュータに、請求項１に記載の第１の処理手段の各手段に係る処理を実行させることを特徴とするアプリケーション実行プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理方法及び画像処理プログラムに関し、特に画像処理の対象とするデータを入力する複数種類の入力部と、該画像処理の結果を出力する複数種類の出力部とを備えた画像処理装置、アプリケーション実行方法及びアプリケーション実行プログラムに関する。
【背景技術】
【０００２】
近年におけるプリンタ、コピー機、スキャナ、ファクシミリ、又はこれらの機能を一台の筐体で実現する複合機等の画像形成装置では、メモリ等の制限は厳しいものの、汎用的なコンピュータと同様にＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を備え、各機能はアプリケーションの制御によって実現されるようになっている。
【０００３】
例えば、特許文献１に記載された画像形成装置では、各アプリケーションから共通的に利用される機能をプラットフォームとして備えており、当該プラットフォームのＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ）を利用してアプリケーションを実装することができる。かかる画像形成装置によれば、共通的に利用される機能がプラットフォームとして備えられていることにより、アプリケーション毎に重複した機能の実装が回避され、アプリケーション全体の開発効率を向上させることができる。
【特許文献１】特許第３６７９３４９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、一般的に、共通的に利用されるＡＰＩを備えたプラットフォームについては、当該プラットフォームによって提供される機能又はインタフェースの粒度が適切に設計されていないと、アプリケーションの開発効率の向上が期待以上に図れない場合がある。
【０００５】
例えば、当該粒度が小さ過ぎると、単純なサービスを提供するアプリケーションであるにもかかわらず、多くのＡＰＩの呼び出しが必要とされ、そのソースコードは複雑なものとなってしまう。
【０００６】
一方、当該粒度が大き過ぎると、或るインタフェースによって提供されている機能の一部について変更を加えたサービスを提供するアプリケーションを実装したい場合、当該プラットフォーム内を修正しなければならず、開発工数の増加を招いてしまいかねない。特に、プラットフォーム内における各モジュールの依存関係が強い場合は、プラットフォームに新規機能を追加するだけでなく、既存部分の修正も必要とされる場合があり、事態はより複雑となる。
【０００７】
また、既存のアプリケーションによって提供されているサービスの一部（例えば、画像の入力処理）を変更したアプリケーションを実装したい場合、当該一部以外の部分については既存のアプリケーションを呼び出すといったようなことはできない。したがって、改めてソースコードを記述して新たなアプリケーションを実装しなければならない。
【０００８】
本発明は、上記の点に鑑みてなされたものであって、機能のカスタマイズ又は拡張等を簡便化させることのできる画像処理装置、アプリケーション実行方法及びアプリケーション実行プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記の目的を達成するために、本発明の画像処理装置は、それぞれ画像データの入力、出力、又は画像データに対する画像処理を実行する処理手段の組み合わせにより所定の機能を実現する画像処理装置であって、第一の前記処理手段は、前記組み合わせに用いられている、自己以外の前記処理手段である別処理手段に対して、当該第一の処理手段の動作条件を決定するための動作条件決定情報を取得するための情報取得要求を行う情報取得要求手段と、前記別処理手段から、前記動作条件決定情報を取得する情報取得手段と、前記情報取得手段により取得された動作条件決定情報に基づき、当該第一の処理手段の動作条件を決定する動作制御手段とを有するように構成することができる。
【００１０】
また、上記の目的を達成するために、本発明の前記情報取得要求手段により行われる情報取得要求のデータ形式は、該情報取得要求の要求先の処理手段に依存しないデータ形式であるように構成することができる。
【００１１】
また、上記の目的を達成するために、前記第一の処理手段が出力するデータを該第一の処理手段に接続された前記別処理手段に入力させる、及び／又は、前記別処理手段が出力するデータを前記第一の処理手段に入力させる伝達手段を有し、前記別処理手段は、前記伝達手段を介して前記第一の処理手段と接続された処理手段であるように構成することができる。
【００１２】
また、上記の目的を達成するために、本発明の前記別処理手段は、前記所定の機能の処理順序において当該第一の処理手段の前後関係にあるように構成することができる。
【００１３】
また、上記の目的を達成するために、本発明の前記動作条件決定情報は、当該第一の処理手段の動作条件を決定するための補助パラメータを含むように構成することができる。
【００１４】
また、上記の目的を達成するために、本発明の前記別処理手段は、前記所定の機能の処理順序において当該別処理手段と前後関係にある処理手段から前記情報取得要求を受けると、当該別処理手段の前後関係にあるその他の処理手段に対して前記情報取得要求を行う情報取得要求手段と、前記その他の処理手段から、前記動作条件決定情報を取得する動作条件情報取得手段と、前記動作条件情報取得手段により取得された前記動作条件決定情報、及び／又は、当該別処理手段が有する動作条件決定情報に基づいて決定される動作条件決定情報を、前記前後関係にある処理手段に対して提供する情報提供手段とを有するように構成することができる。
【００１５】
また、上記の目的を達成するために、本発明の前記動作条件情報取得手段は、さらに、前記その他の処理手段が当該第一の別処理手段からいくつの処理手段を介した前後関係にあるかを示す階層値を、前記動作条件決定情報に対応付けて取得し、前記情報提供手段は、取得した前記動作条件決定情報に前記階層値を対応付けて提供し、当該第一の処理手段では、前記動作制御手段は、さらに、前記情報取得手段により取得された情報が当該第一の処理手段の動作条件の決定のためには過多である場合、前記情報取得手段により取得された階層値が最小値をとる動作条件決定情報に基づき、当該第一の処理手段の動作条件を決定するように構成することができる。
【００１６】
また、上記の目的を達成するために、本発明の前記第一の処理手段は、当該第一の処理手段の動作条件決定情報の取得要求を行う際に、時間の測定を開始する時間測定手段を有し、前記時間測定手段により所定の時間の経過が測定されたとき、前記情報取得手段により動作条件決定情報が取得されていない場合、前記動作制御手段は、当該第一の処理手段の動作を中止するように構成することができる。
【００１７】
また、上記の目的を達成するために、本発明の前記動作制御手段は、さらに、前記情報取得手段により取得された情報が当該第一の処理手段の動作条件の決定のためには不足している或いは過多である場合、予め設定されたデフォルト動作条件で動作する又は当該第一の処理手段の動作を中止するように構成することができる。
【００１８】
また、上記の目的を達成するために、本発明の前記動作制御手段は、さらに、前記情報取得手段により取得された情報が当該第一の処理手段の動作条件の決定のためには不足している或いは過多である場合、エラーと判断し、エラー通知を行う及び／又はエラーログを残すように構成することができる。
【００１９】
また、上記の目的を達成するために、本発明の画像処理装置は、当該第一の処理手段が実現する機能が自動変倍機能である、且つ、当該第一の処理手段の動作条件が前記自動変倍機能に係る変倍率である場合、前記動作条件決定情報は、入力サイズ及び出力サイズであり、前記動作制御手段は、該入力サイズ及び出力サイズに基づき、変倍率を決定するように構成することができる。
【００２０】
また、上記の目的を達成するために、本発明の画像処理装置は、当該第一の処理手段が実現する機能が自動用紙選択機能である、且つ、当該第一の処理手段の動作条件が前記自動用紙選択機能に係る用紙サイズである場合、前記動作条件決定情報は、入力サイズであり、前記動作制御手段は、該入力サイズに基づき、前記用紙サイズを決定するように構成することができる。
【００２１】
また、上記の目的を達成するために、本発明の画像処理装置は、当該第一の処理手段が実現する機能がマーキング埋込機能である、且つ、当該第一の処理手段の動作条件が前記マーキング埋込機能に係る埋込対象文書である場合、前記動作条件決定情報は、文書情報であり、前記動作制御手段は、該文書情報に基づき、前記埋込対象文書を決定するように構成することができる。
【００２２】
また、上記の目的を達成するために、本発明のアプリケーション実行方法は、それぞれ画像データの入力、出力、又は画像データに対する画像処理を実行する処理手段の組み合わせにより所定の機能を実現する画像処理装置におけるアプリケーション実行方法であって、第一の前記処理手段が、前記組み合わせに用いられている、自己以外の前記処理手段である別処理手段に対して、当該第一の処理手段の動作条件を決定するための動作条件決定情報を取得するための情報取得要求を行う情報取得要求工程と、前記第一の処理手段が、前記別処理手段から前記動作条件決定情報を取得する情報取得工程と、前記第一の処理手段が、前記情報取得工程において取得された動作条件決定情報に基づき、当該第一の処理手段の動作条件を決定する動作制御工程とを有するように構成することができる。
【００２３】
また、上記の目的を達成するために、本発明のアプリケーション実行プログラムは、コンピュータに、上記の画像処理装置の各手段に係る処理を実行させるように構成することができる。
【００２４】
また、上記の目的を達成するために、本発明のアプリケーション実行プログラムは、コンピュータに、上記の第一の処理手段の各手段に係る処理を実行させるように構成することができる。
【発明の効果】
【００２５】
本発明によれば、機能のカスタマイズ又は拡張等を簡便化させることのできる画像処理装置、アプリケーション実行方法及びアプリケーション実行プログラムを提供することができる。
【発明を実施するための最良の形態】
【００２６】
以下、図面に基づいて本発明の実施の形態を説明する。
［実施の形態］
（ソフトウェア構成例）
図１は、本発明の実施の形態における複合機のソフトウェア構成例を示す図である。ここで、複合機とは、プリンタ、コピー、スキャナ、又はＦＡＸ等の複数の機能を一台の筐体において実現する画像処理装置（画像形成装置）をいう。
【００２７】
図１に示されるように、複合機１におけるソフトウェアは、ユーザインタフェース層１０、コントロール層２０、アプリケーションロジック層３０、デバイスサービス層４０、及びデバイス制御層５０等により構成される。なお、図中における各層の上下関係は、層間の呼び出し関係に基づいている。すなわち、基本的に図中において上にある層が下の層を呼び出す。
【００２８】
ユーザインタフェース層１０は、機能（例えば、コピー、印刷、スキャン、ＦＡＸ送信）の実行要求を受け付けるための機能が実装されている部分であり、例えば、通信サーバ部１１及びローカルＵＩ部１２等が含まれる。通信サーバ部１１は、例えば、非図示のクライアントＰＣ（Personal Computer）等からネットワーク経由で要求を受け付ける。ローカルＵＩ部１２は、例えば、非図示のオペレーションパネルを介して入力される要求を受け付ける。ユーザインタフェース層１０において受け付けられた要求は、コントロール層２０に伝えられる。
【００２９】
コントロール層２０は、要求された機能を実現するための処理を制御するための機能が実装されている部分である。具体的には、要求された機能に応じて、アプリケーションロジック層３０における各フィルタ（入力フィルタ、変換フィルタ、出力フィルタ）を接続し、接続されたフィルタに基づいて機能の実行を制御する。なお、本実施の形態において「複合機１の機能」とは、複合機１がユーザに対して提供する一つのまとまった単位（要求が入力されて最終的な出力が得られるまで）のサービスと同義であり、ソフトウェア的には一つのまとまった単位のサービスを提供するアプリケーションと同義である。
【００３０】
アプリケーションロジック層３０は、それぞれが複合機１において提供される機能の一部を実現する部品（ソフトウェア部品）群が実装されている部分である。すなわち、アプリケーションロジック層３０における部品を組み合わせることにより一つの機能が実現される。本実施の形態では、各部品を「フィルタ」と呼ぶ。これは、複合機１のソフトウェアアーキテクチャが「パイプ＆フィルタ」と呼ばれる考え方に基づくことによる。パイプ＆フィルタの概念及びアプリケーションロジック層３０を構成する各部品については図２を用いて後述する。
【００３１】
図１において、アプリケーションロジック層３０は、さらに、コピーアクティビティ３１ａ、プリンタアクティビティ３１ｂ、及びマルチ文書アクティビティ３１ｃ等のアクティビティ３１を含む。本実施の形態において「アクティビティ」とは、予め固定的に定義されたフィルタの組み合わせによって、一つの「機能」（複合機１がユーザに対して提供する一つのまとまった単位のサービス又はアプリケーション）を実現するソフトウェアである。アクティビティについては図３５等を用いて後述する。
【００３２】
図１において、コピーアクティビティ３１ａは、読取フィルタ３０１と、文書加工フィルタ３１１と、印刷フィルタ３２１との組み合わせにより、コピー機能（コピーアプリケーション）を実現するアクティビティ３１である。
【００３３】
プリンタアクティビティ３１ｂは、ＰＣ文書受信フィルタ３０５と、文書変換フィルタ３１２と、印刷フィルタ３２１との組み合わせにより、印刷機能（プリンタアプリケーション）を実現するアクティビティ３１である。
【００３４】
マルチ文書アクティビティ３１ｃは、入力フィルタ、変換フィルタ、及び出力フィルタのそれぞれについて、自由な組み合わせが可能なアクティビティ３１である。
【００３５】
なお、各アクティビティ３１は独立しており、アクティビティ３１間における依存関係（呼び出し関係）は基本的に存在しない。したがって、アクティビティ３１単位で追加（インストール）又は削除（アンインストール）が可能である。よって、図１に示されているアクティビティ３１以外にも、必要に応じて各種のフィルタの組み合わせによるアクティビティ３１を作成し、インストールすることができる。
【００３６】
デバイスサービス層４０は、アプリケーションロジック層３０における各フィルタから共通に利用される下位機能が実装されている部分であり、例えば、画像パイプ４１及びデータ管理部４２等が含まれる。画像パイプ４１は、パイプ（パイプについては図２を用いて後述する）の機能を実現する。即ち、或るフィルタからの出力データを次のフィルタに伝達する。データ管理部４２は、各種のデータベースを表現する。例えば、ユーザ情報が登録されたデータベースや、文書又は画像データ等が蓄積されるデータベース等が相当する。
【００３７】
デバイス制御層５０は、デバイス（ハードウェア）を制御するドライバと呼ばれるプログラムモジュール群が実装されている部分であり、例えば、スキャナ制御部５１、プロッタ制御部５２、メモリ制御部５３、Ｔｅｌ回線制御部５４、及びネットワーク制御部５５等が含まれる。各制御部は、当該制御部の名前に付けられているデバイスを制御する。
【００３８】
（パイプ＆フィルタの概念）
図２は、パイプ＆フィルタの概念を説明するための図である。図２において、「Ｆ」はフィルタを示し、「Ｐ」はパイプを示す。図中に示されるように、各フィルタはパイプによって接続される。フィルタは、入力されたデータに対して変換を施し、その結果を出力する。パイプは、フィルタから出力されたデータを次のフィルタに伝達する。
【００３９】
すなわち、本実施の形態における複合機１では、各機能をドキュメント(データ)に対する「変換」の連続として捉える。複合機１の各機能は、ドキュメントの入力、加工、及び出力によって構成されるものとして一般化することができる。そこで「入力」、「加工」、及び「出力」を「変換」として捉え、一つの「変換」を実現するソフトウェア部品がフィルタとして構成される。入力を実現するフィルタを特に「入力フィルタ」という。また、加工を実現するフィルタを特に「変換フィルタ」という。更に、出力を実現するフィルタを特に「出力フィルタ」という。なお、各フィルタは独立しており、フィルタ間における依存関係（呼び出し関係）は基本的に存在しない。したがって、フィルタ単位で追加（インストール）又は削除（アンインストール）が可能とされている。
【００４０】
前述した図１において、アプリケーションロジック層３０には、入力フィルタとして、読取フィルタ３０１、保管文書読出フィルタ３０２、メール受信フィルタ３０３、ＦＡＸ受信フィルタ３０４、ＰＣ文書受信フィルタ３０５、レポートフィルタ３０６等が含まれている。
【００４１】
読取フィルタ３０１は、スキャナによる画像データの読み取りを制御し、読み取られた画像データを出力する。保管文書読出フィルタ３０２は、複合機１の記憶装置に保管されている文書データ（画像データ）を読み出し、読み出されたデータを出力する。メール受信フィルタ３０３は、電子メールの受信し、当該電子メールに含まれているデータを出力する。ＦＡＸ受信フィルタ３０４は、ＦＡＸ受信を制御し、受信されたデータを出力する。ＰＣ文書受信フィルタ３０５は、非図示のクライアントＰＣから印刷データを受信し、受信された印刷データを出力する。レポートフィルタ３０６は、複合機１の設定情報や履歴情報等を、例えば表形式に整形されたデータとして出力する。
【００４２】
また、変換フィルタとしては、文書加工フィルタ３１１、文書変換フィルタ３１２、マーキング埋込フィルタ３１３などが含まれている。文書加工フィルタ３１１は、入力されたデータに所定の画像変換処理（集約、拡大、又は縮小等）を施し、出力する。文書変換フィルタ３１２は、レンダリング処理を実行する。すなわち、入力されたＰｏｓｔＳｃｒｉｐｔデータをビットマップデータに変換して出力する。マーキング埋込フィルタ３１３は、入力されたデータにマーキングを埋め込む処理を行って出力する。マーキングとは、印刷する紙にバーコードなどの形で任意の情報を埋め込み、その紙を後から読み取った時にその任意の情報を検出して利用するという機能である。また、マーキング埋込とは、印刷する紙に任意の情報を埋め込むことである。
【００４３】
また、出力フィルタとしては、印刷フィルタ３２１、保管文書登録フィルタ３２２、メール送信フィルタ３２３、ＦＡＸ送信フィルタ３２４、ＰＣ文書送信フィルタ３２５、及びプレビューフィルタ３２６等が含まれている。
【００４４】
印刷フィルタ３２１は、入力されたデータをプロッタに出力（印刷）させる。保管文書登録フィルタ３２２は、入力されたデータを複合機１内のハードディスク内に保存する。メール送信フィルタ３２３は、入力されたデータを電子メールに添付して送信する。ＦＡＸ送信フィルタ３２４は、入力されたデータをＦＡＸ送信する。ＰＣ文書送信フィルタ３２５は、入力されたデータをクライアントＰＣに送信する。プレビューフィルタ３２６は、入力されたデータを、複合機１のオペレーションパネルにプレビュー表示させる。
【００４５】
以上説明してきたパイプ＆フィルタの概念を適用することにより、以下のような利点がある。その利点とは、各フィルタは独立しており、フィルタ間における依存関係（呼び出し関係）は基本的に存在しないことにより、自由に入力、変換、出力を組み合わせることができる点である。また、後からフィルタを追加する際も、既存のフィルタには手を加えないでよい点である。さらには、機能のカスタマイズや拡張が簡単にできる点である。
【００４６】
ところで、各フィルタが自身の機能を実現するには、他のフィルタの情報が必要となる場合がある。しかしながら、フィルタ同士には依存がないので、他のどのフィルタがその情報を持っているかがわからない。本実施の形態における画像処理装置では図３以降に示す機能及び動作などによりこのような点を考慮している。
【００４７】
（機能の構成）
図３は、本実施の形態における画像処理装置の機能構成例を示す図である。図３において、本実施の形態における複合機１は、第一の処理手段１１０、第二の処理手段１２０、第三の処理手段１３０などの組み合わせにより所定の機能を実現する。例えば、第一の処理手段が読取フィルタ３０１、第二の処理手段が文書変換フィルタ３１２、第三の処理手段が印刷フィルタ３２１の組み合わせである場合には、読み取った画像データにレンダリング処理を施して印刷出力を行う機能を実現する。
【００４８】
なお、図３は３つの処理手段の組み合わせである場合を示すが、この場合に限らない。複合機１が実現する機能に応じてその組み合わせの個数及び種類は適宜変更されるものとする。また、各々の処理手段は、例えば上記の入力フィルタ、出力フィルタ又は変換フィルタなどのように画像データの入力、出力、又は画像データに対する画像処理を実行するソフトウェア部品である。さらには、例えば図３の第一の処理手段１１０と第二の処理手段１２０のように隣り合う（「接続された」と同義）処理手段は、複合機１が所定の機能を実現するにおいて処理順序が前後関係にあるものである。また、隣り合う処理手段は、厳密には、一方の処理手段が出力するデータを他方の処理手段に入力させる、及び／又は、他方の処理手段が出力するデータを一方の処理手段に入力させる伝達手段であるパイプを介して接続されている。
【００４９】
第一の処理手段１１０は、動作制御手段１１１、情報取得要求手段１１２、情報取得手段１１３、時間計測手段１１４などを有する。第二の処理手段１２０は、取得要求受信手段１２１、情報提供手段１２２、情報取得要求手段１２３、情報取得手段１２４などを有する。第三の処理手段１３０は、取得要求受信手段１３１、情報提供手段１３２、情報取得要求手段１３３、情報取得手段１３４などを有する。
【００５０】
動作制御手段１１１は、第一の処理手段１１０の動作を制御する。また、第一の処理手段１１０の動作条件（例えば第一の処理手段１１０が「自動変倍」に設定された文書加工フィルタ３１２である場合には「変倍率」）を後述の情報取得手段１１３により取得された情報に基づいて決定する。
【００５１】
情報取得要求手段１１２は、第一の処理手段１１０の動作条件を決定するための動作条件決定情報の取得要求を第二の処理手段１２０に対して行う。動作条件決定情報とは、例えば動作条件が上記の「変倍率」である場合には「変倍率」を決定するための入力画像データ及び出力画像データのサイズなどである。なお、ここで行う取得要求は要求先の処理手段に依存しないデータ形式及びデータ内容で行われる。これにより、各処理手段の独立性を保ちつつ他の処理手段の情報を取得することができる。
【００５２】
また、図３では情報取得要求手段１１２は第二の処理手段１２０に対して取得要求を行う構成としているが、この場合に限らない。第二の処理手段１２０以外の処理手段であっても、組み合わせに用いられている自己以外の処理手段である別処理手段に対して又は第一の処理手段１１０が接続された処理手段の全てに対して取得要求を行う構成とすることもできる。
【００５３】
情報取得手段１１３は、第二の処理手段１２０から動作条件決定情報を取得する。時間計測手段１１４は、時間を計測する。例えば、情報取得要求手段１１２が動作条件決定情報の取得要求を第二の処理手段１２０に対して行うと共に時間の計測を開始する。さらに、所定の時間（例えば３５秒）経過したとき、情報取得手段１１３により動作条件決定情報が取得されていない場合には、動作制御手段１１１は第一の処理手段１１０の動作を停止するなどの動作制御を行う。
【００５４】
取得要求受信手段１２１は、第一の処理手段１１０から動作条件決定情報の取得要求を受信する。情報提供手段１２２は、情報要求受信手段１２１により受信した取得要求に応じて第二の処理手段１２０が保持する動作条件決定情報を第一の処理手段１１０に対して送信する。なお、第一の処理手段１１０の動作条件を決定するためのパラメータを含むとする。詳細には、後述の動作例などにおいて説明を行う。
【００５５】
情報取得要求手段１２３は、情報要求受信手段１２１により受信した取得要求を第三の処理手段１３０に受け渡す。情報取得手段１２４は、第三の処理手段１３０から動作条件決定情報を取得する。
【００５６】
情報要求受信手段１３１は、第二の処理手段１２０から取得要求を受信する。情報提供手段１３２は、情報要求受信手段１３１により受信した取得要求に応じて第三の処理手段１３０が保持する動作条件決定情報を第二の処理手段１２０に対して送信する。
【００５７】
情報取得要求手段１３３は、情報要求受信手段１３１により受信した取得要求を図示しない第四の処理手段に受け渡す。情報取得手段１３４は、図示しない第四の処理手段から動作条件決定情報を取得する。
【００５８】
以上の機能構成により、本実施の形態における複合機１は、第一の処理手段１１０、第二の処理手段１２０、第三の処理手段１３０などの組み合わせにより構成される機能を実現する。
【００５９】
なお厳密には、要求を行う側の各処理手段は前述した伝達手段であるパイプに対して取得要求を行い、要求を受ける側の各処理手段はパイプから取得要求を受信している。これにより、各処理手段は自身に接続された他の処理手段の種類などを意識しなくて済む。
【００６０】
（動作例１）
図４は、本実施の形態における画像処理装置の第１の動作例の説明図である。動作例１に係る複合機１は、読取フィルタ３０１、文書加工フィルタ３１１、印刷フィルタ３２１などの組み合わせにより構成されるアプリケーションを実行する。このアプリケーションは、スキャナなどで読み取った画像データに所定の画像変換処理を施して印刷するものである。
【００６１】
ここでは、画像変換処理に際して自動倍率選択（AMS:Auto Magnificent Select）が設定された（文書加工フィルタ３１１の変倍設定に「自動変倍」が設定された）ときの動作を例に説明を行う。なお、読取フィルタ３０１の入力（読取）サイズ、印刷フィルタ３２１の出力（印刷）サイズは、それぞれ「Ａ３」「Ａ４」が設定されたものとする。文書加工フィルタ３１１は自身の動作条件である「自動変倍」の設定値、即ち変倍率を図５のフローチャートで示される動作により決定する。図５は、動作例１に係る複合機１の動作を示すフローチャートである。
【００６２】
まず、文書加工フィルタ３１１は他のフィルタの情報が必要か否かを判定する（Ｓ１）。他のフィルタの情報が必要である場合（Ｓ１、ＹＥＳ）、ステップＳ２へ移る。他のフィルタの情報が必要ではない場合（Ｓ１、ＮＯ）、ステップＳ６へ移る。
【００６３】
ステップＳ２へ移った場合、文書加工フィルタ３１１は当該文書加工フィルタ３１１と処理順序が前後のフィルタに動作条件決定情報の取得要求を行う（Ｓ２）。ここでは、文書加工フィルタ３１１は処理順序において文書加工フィルタ３１１の前後関係にあるフィルタである読取フィルタ３０１と印刷フィルタ３２１に対して動作条件決定情報の取得要求を行う。このとき、読取フィルタ３０１に対して行う取得要求と同一のデータ形式の取得要求を印刷フィルタ３２１に対しても行う。具体的には、文書加工フィルタ３１１が必要な「情報」の名称（ここでは入力画像サイズと出力画像サイズ）と「値」（ここでは空欄）を関連付けたＸＭＬなどの形式のデータ構造で要求する。「情報」の名称は、全フィルタで共通で定義してあるものとする。なお、ステップＳ３〜Ｓ６の説明を先に行い、ステップＳ７〜Ｓ１１については後述する。
【００６４】
ステップＳ３へ移って、文書加工フィルタ３１１はステップＳ２において行った取得要求の回答を待つ（Ｓ３）。続いてステップＳ４へ移って、文書加工フィルタ３１１は自身とつながっているフィルタから回答（ここでは、読取フィルタ３０１及び印刷フィルタ３２１から、それぞれ入力サイズ「Ａ３」、出力サイズ「Ａ４」の情報）を受信（取得）する（Ｓ４）。
【００６５】
続いてステップＳ５へ移って、文書加工フィルタ３１１は未回答値があるか否かを判定する（Ｓ５）。未回答値がある場合（Ｓ５、ＹＥＳ）、ステップＳ３へ戻る。未回答値がない場合（Ｓ５、ＮＯ）、ステップＳ６へ移る。
【００６６】
ステップＳ６へ移った場合、文書加工フィルタ３１１は自身の動作条件を決定する（Ｓ６）。ここでは、読取フィルタ３０１から取得した入力サイズ「Ａ３」及び印刷フィルタ３２１から取得した出力サイズ「Ａ４」の動作条件決定情報に基づき、動作条件である変倍率はＡ４／Ａ３＝０．７０であることを決定する。
【００６７】
以降、ステップＳ７〜Ｓ１１に係る動作について説明を行う。
【００６８】
ステップＳ７へ移って、読取フィルタ３０１（又は印刷フィルタ３２１）は、ステップＳ２で文書加工フィルタ３１１から送信された動作条件決定情報の取得要求を受信する（Ｓ７）。続いてステップＳ８へ移って、ステップＳ７で受信した取得要求において求められている情報名称と自身が値を保持している情報名称とを比較する（Ｓ８）。
【００６９】
ステップＳ９へ移って、読取フィルタ３０１（又は印刷フィルタ３２１）は、ステップＳ８で比較した結果、該当する情報名称があるか否かを判定する（Ｓ９）。該当する情報名称があると判定すると（Ｓ９、ＹＥＳ）、ステップＳ１０へ移って回答を埋めて（Ｓ１０）、ステップＳ１１へ移る。該当する情報名称がないと判定すると（Ｓ９、ＮＯ）、ステップＳ１１へ移る。本動作例では、読取フィルタ３０１は自身が値を保持している入力サイズの値である「Ａ３」を回答として埋める。また、印刷フィルタ３２１は自身が値を保持している出力サイズの値である「Ａ４」を回答として埋める。
【００７０】
ステップＳ１１へ移って、読取フィルタ３０１（又は印刷フィルタ３２１）は、ステップＳ９及びＳ１０により生成された回答を文書加工フィルタ３１１に対して送信する（Ｓ１１）。
【００７１】
以上で示される動作により、動作例１に係る複合機１では、文書加工フィルタ３１１は自身の動作条件である「自動変倍」の設定値、即ち変倍率を決定する。なお、変倍率の決定には入力サイズと出力サイズが必要となるが、文書加工フィルタ３１１は入力サイズ（この場合は読み取るサイズ）と出力サイズ（この場合は印刷する用紙のサイズ）を持っていない。そのため、文書加工フィルタ３１１は、自身がつながっている他のフィルタ（読取フィルタ３０１と印刷フィルタ３２１）に情報を要求する。
【００７２】
読取フィルタ３０１は要求を受け取ったら、要求で求められている情報の中に、自分が値を保持している情報があるか確認する。そこで、自分が値を保持している値を知っている項目である「入力サイズ」について値を埋めて回答する。印刷フィルタ３２１は要求を受け取ったら、同じように値を知っている項目である「出力サイズ」について値を埋めて回答する。文書加工フィルタ３１１は全ての回答を受け取ったら、入力サイズと出力サイズの値を取得できるので、そこから変倍率を決定し動作する。
【００７３】
つまり、所定のフィルタは、自己につながっている全てのフィルタに情報を要求し、要求を受けた他のフィルタは、自身が当該情報を保持していれば、その情報を返すように動作する。
【００７４】
そのため、以下に掲げる利点を奏する。その利点とは、所定のフィルタが自身の機能の実現のために他のフィルタの情報を必要とする状況で、自身の機能の実現のために必要な情報を他のどのフィルタが保持しているのかを知らなくても、フィルタ同士には依存を持たせないまま、その情報を取得できることである。また、簡単にフィルタのカスタマイズや拡張ができることである。
【００７５】
（動作例２）
図６は、本実施の形態における画像処理装置の第２の動作例の説明図である。動作例２に係る複合機１は、読取フィルタ３０１、文書加工フィルタ３１１、印刷フィルタ３２１などの組み合わせにより構成されるアプリケーションを実行する。前述の動作例１と同様に、このアプリケーションは、スキャナなどで読み取った画像データに所定の画像変換処理を施して印刷するものである。
【００７６】
ここでは、印刷処理に際して自動用紙選択（APS:Auto Paper Select）が設定された（印刷フィルタ３２１の出力（印刷）サイズ設定に「自動選択」が設定された）ときの動作を行う。なお、読取フィルタ３０１の入力（読取）サイズ、文書加工フィルタ３１１の変倍設定は、それぞれ「Ａ４」「等倍」が設定されたものとする。印刷フィルタ３２１は自身の動作条件である「自動選択」の設定値、即ち用紙サイズを図７のフローチャートで示される動作により決定する。図７は、動作例２に係る複合機１の動作を示すフローチャートである。
【００７７】
まず、印刷フィルタ３２１は他のフィルタの情報が必要か否かを判定する（Ｓ１０１）。他のフィルタの情報が必要である場合（Ｓ１０１、ＹＥＳ）、ステップＳ１０２へ移る。他のフィルタの情報が必要ではない場合（Ｓ１０１、ＮＯ）、ステップＳ１０６へ移る。
【００７８】
ステップＳ１０２へ移った場合、印刷フィルタ３２１は当該印刷フィルタ３２１と処理順序が前後のフィルタに動作条件決定情報の取得要求を行う（Ｓ１０２）。ここでは印刷フィルタ３２１は処理順序において印刷フィルタ３２１の前後関係にあるフィルタである文書加工フィルタ３１１に対して動作条件決定情報の取得要求を行う。具体的には、印刷フィルタ３２１が必要な「情報」の名称（ここでは入力画像サイズ）と「値」（ここでは空欄）を関連付けたＸＭＬなどの形式のデータ構造で要求する。なお、ステップＳ１０３〜Ｓ１０６の説明を先に行い、ステップＳ１０７〜Ｓ１１４については後述する。
【００７９】
ステップＳ１０３へ移って、印刷フィルタ３２１はステップＳ１０２において行った取得要求の回答を待つ（Ｓ１０３）。続いてステップＳ１０４へ移って、印刷フィルタ３２１は自身とつながっているフィルタから回答（ここでは、文書加工フィルタ３１１から、入力サイズ「Ａ４」の情報）を取得する（Ｓ１０４）。
【００８０】
続いてステップＳ１０５へ移って、印刷フィルタ３２１は未回答値があるか否かを判定する（Ｓ１０５）。未回答値がある場合（Ｓ１０５、ＹＥＳ）、ステップＳ１０３へ戻る。未回答値がない場合（Ｓ１０５、ＮＯ）、ステップＳ１０６へ移る。
【００８１】
ステップＳ１０６へ移った場合、印刷フィルタ３２１は自身の動作条件を決定する（Ｓ１０６）。ここでは、文書加工フィルタ３１１から取得した入力サイズ「Ａ４」の動作条件決定情報に基づき、動作条件である用紙サイズはＡ４であることを決定する。
【００８２】
以降、ステップＳ１０７〜Ｓ１１４に係る動作について説明を行う。
【００８３】
ステップＳ１０７へ移って、文書加工フィルタ３１１は、ステップＳ１０２で印刷フィルタ３２１から送信された動作条件決定情報の取得要求を受信する（Ｓ１０７）。続いてステップＳ１０８へ移って、ステップＳ１０７で受信した取得要求において求められている情報名称と自分が値を保持している情報名称とを比較する（Ｓ１０８）。
【００８４】
ステップＳ１０９へ移って、文書加工フィルタ３１１は、ステップＳ１０８で比較した結果、該当する情報名称があるか否かを判定する（Ｓ１０９）。該当する情報名称があると判定すると（Ｓ１０９、ＹＥＳ）、ステップＳ１１０へ移って回答を埋めて（Ｓ１１０）、ステップＳ１１１へ移る。該当する情報名称がないと判定すると（Ｓ１０９、ＮＯ）、ステップＳ１１１へ移る。本動作例では、文書加工フィルタ３１１は自身が値を保持している入力サイズの値はないので、回答を埋めずにステップＳ１１１へ移る。
【００８５】
ステップＳ１１１へ移って、文書加工フィルタ３１１は要求元（ここでは印刷フィルタ３２１）以外のフィルタにつながっているか否かを判定する（Ｓ１１１）。ここでは、文書加工フィルタ３１１は、処理順序において文書加工フィルタ３１１の前後関係にある要求元以外のフィルタが存在するか否かを判定する。
【００８６】
ステップＳ１１１において要求元以外のフィルタにつながっている場合（Ｓ１１１、ＹＥＳ）、ステップＳ１１２へ移って、文書加工フィルタ３１１は要求元以外のフィルタ（ここでは読取フィルタ３０１）に取得要求を送信する（Ｓ１１２）。
【００８７】
続いてステップＳ１１３へ移って、文書加工フィルタ３１１は読取フィルタ３０１から回答（ここでは、入力サイズ「Ａ４」の情報）を取得する（Ｓ１１３）。
【００８８】
ステップＳ１１４へ移って、文書加工フィルタ３１１は、ステップＳ１０９〜Ｓ１１３により生成された回答を読取フィルタ３２１に対して送信する（Ｓ１１４）。
【００８９】
以上で示される動作により、動作例２に係る複合機１では、印刷フィルタ３２１は自身の動作条件である「自動選択」の設定値、即ち用紙サイズを決定する。なお、用紙サイズ（用紙トレイ）の決定には入力サイズが必要になるが、印刷フィルタ３２１は入力サイズを持っていない。そのため、印刷フィルタ３２１は、自身がつながっている他のフィルタ（ここでは文書加工フィルタ３１１）に入力サイズの情報を要求する。
【００９０】
文書加工フィルタ３１１はその要求を読取フィルタ３２１に受け渡す。読取フィルタ３２１は入力サイズの値を保持しているので、入力サイズの値を回答して文書加工フィルタ３１１に返す。文書加工フィルタ３１１は読取フィルタ３０１から受信した回答を印刷フィルタ３２１に返す。印刷フィルタ３２１は、その回答を元に印刷する用紙トレイを決定する。
【００９１】
そのため、以下に掲げる利点を奏する。フィルタは、３つ以上続けてつながっている場合もある。このとき、パイプで直接つながっているフィルタの先に、他のフィルタがつながっているかどうかはわからない。上記のような場合でも、フィルタ同士には依存を持たせないまま、全ての他のフィルタの情報を取得できることである。また、簡単にフィルタのカスタマイズや拡張ができることである。
【００９２】
図８は、動作例２の第１の変形例に係る画像処理装置の説明図である。動作例２の変形例１に係る複合機１は、読取フィルタ３０１、文書加工フィルタ３１１、印刷フィルタ３２１などの組み合わせにより構成されるアプリケーションを実行する。前述の動作例２と同様に、このアプリケーションは、スキャナなどで読み取った画像データに所定の画像変換処理を施して印刷するものである。
【００９３】
動作例２では、印刷処理に際して自動用紙選択（AMS）が設定されたときの動作を行うに当たって、印刷フィルタ３２１は自身の動作条件である「自動選択」の設定値、即ち用紙サイズを、読取フィルタ３０１の入力（読取）サイズ「Ａ４」に基づいて決定した。
【００９４】
ここでは、印刷フィルタ３２１は「自動選択」の設定値、即ち用紙サイズを、読取フィルタ３０１の入力（読取）サイズに加えて文書加工フィルタ３１１の変倍設定「７０％」に基づき決定する動作、即ち、複数のフィルタにおける設定値により動作条件が決定される場合の動作、を変形例として説明する。図９は、動作例２の変形例に係る複合機１の動作を示すフローチャートである。
【００９５】
図９のステップＳ２０１〜Ｓ２１３に係る処理は、それぞれ図７のステップＳ１０１〜Ｓ１１３に係る処理と同様であるとしてここでは説明を省略する。
【００９６】
ステップＳ２１３において読取フィルタ３０１から回答（ここでは、入力サイズ「Ａ３」の情報）を取得した文書加工フィルタ３１１は、ステップＳ２１４へ移って、自フィルタでの処理により回答の値は変更されるか否かを判定する（Ｓ２１４）。
【００９７】
ステップＳ２１４において、回答の値が変更すると判定すると（Ｓ２１４、ＹＥＳ）、ステップＳ２１５へ移って、文書加工フィルタ３１１は自フィルタが有する設定値に基づき、ステップＳ２１３で取得した回答の値を変更する（Ｓ２１５）。ここでは、文書加工フィルタ３１１は自フィルタが有する変倍設定の設定値である変倍率「７０％」とステップＳ２１３で取得した回答（入力サイズ「Ａ３」の情報）に基づき、回答の値を「Ａ４」に変更する。
【００９８】
ステップＳ２１６へ移って、文書加工フィルタ３１１は、ステップＳ２０９〜Ｓ２１５により生成された回答を読取フィルタ３２１に対して送信する（Ｓ２１６）。
【００９９】
以上で示される動作により、動作例２の変形例１に係る複合機１では、印刷フィルタ３２１は自身の動作条件である「自動選択」の設定値、即ち用紙サイズを、読取フィルタ３０１の入力（読取）サイズに加えて文書加工フィルタ３１１の変倍設定「７０％」に基づき決定する。
【０１００】
ステップＳ２１４及びＳ２１５に係る処理により、所定のフィルタが他のフィルタの情報を必要としていて、且つ、複数のフィルタにおける設定値により動作条件が決定される場合にも、フィルタ同士には依存を持たせないまま、全ての他のフィルタの情報を取得できる。
【０１０１】
なお、本動作例２で示される一連の動作においては、印刷フィルタ３２１の動作条件決定情報は入力サイズである。しかしながら、係る入力サイズの決定のために読取フィルタ３０１の入力サイズに加えて文書加工フィルタ３１１の変倍設定「７０％」が用いられている。つまり、動作条件の決定のために動作条件決定情報（ここでは入力サイズ）に直接関連のない情報（変倍設定）が用いられている。そのため、本実施の形態における動作条件決定情報は、ここでの変倍設定のように動作条件を決定するための補助を行う補助パラメータを含むとすることもできる。
【０１０２】
図１０は、動作例２の第２の変形例に係る画像処理装置の説明図である。動作例２の変形例２に係る複合機１は、読取フィルタ３０１、文書加工フィルタ３１１、保管文書登録フィルタ３２２、マーキング埋込フィルタ３１３、印刷フィルタ３２１などの組み合わせにより構成されるアプリケーションを実行する。このアプリケーションは、スキャナなどで読み取った画像データに、所定の画像変換処理を施して保管文書として登録する又はマーキング埋込処理を施して印刷するものである。
【０１０３】
ここでは、マーキング埋込処理に際してマーキング埋込が設定された（マーキング埋込フィルタ３１３の埋込設定に「保管文書ＩＤ」が設定された）ときの動作を行う。埋込設定には、マーキング埋込対象となるデータが設定される。なお、保管文書登録フィルタ３２２は、文書を保管する際に保管文書ＩＤを採番しているものとする。マーキング埋込フィルタ３１３は自身の動作条件である「保管文書ＩＤ」の設定値、即ち埋込対象となるデータを図７（前述の動作例２と同様）のフローチャートで示される動作により決定する。
【０１０４】
図７のフローチャートで示される動作については、ここでは詳細な説明を省略するがその概要について以下説明を行う。
【０１０５】
マーキング埋込フィルタ３１３では、マーキングを埋め込む埋込対象となるデータである保管文書ＩＤが必要になる。しかし、マーキング埋込フィルタ３１３は保管文書ＩＤの値を持っていないので、自身とつながっている他のフィルタに要求を出す。このとき、要求を受けた文書加工フィルタ３１１は、自身とつながっている読取フィルタ３０１と保管文書登録フィルタ３２２にも要求を伝える。さらに、読取フィルタ３０１と保管文書登録フィルタ３２２からの回答と文書加工フィルタ３１１自身の回答をあわせて、マーキング埋込フィルタ３１３に回答を返す。マーキング埋込フィルタ３１３は回答の中の保管文書ＩＤの値を使い、埋め込みを行う。
【０１０６】
以上に示される動作により、動作例２の変形例２に係る複合機１では、マーキング埋込フィルタ３１３は自身の動作条件である「保管文書ＩＤ」の設定値、即ち埋込対象となるデータを決定する。
【０１０７】
動作例２と異なる点は、異なる３つのフィルタと隣り合うフィルタ（ここでは文書加工フィルタ３１１）が存在する、即ち、複合機１が所定の機能を実現するにおいて特定のフィルタに対して処理順序が前後関係にあるフィルタが３つ存在する点である。
【０１０８】
この場合には、図７のステップＳ１１１において、要求元（マーキング埋込フィルタ３１３）から動作条件決定情報の取得要求を受信した文書加工フィルタ３１１は、要求元以外で処理順序が前後関係のフィルタである読取フィルタ３０１及び保管文書登録フィルタ３２２の両方に対してステップＳ１１２〜Ｓ１１３の処理を行う。
【０１０９】
なお、本動作例の変形例においては、複合機１が所定の機能を実現するにおいて特定のフィルタに対して処理順序が前後関係にあるフィルタが３つ存在する場合について説明を行ったが、この場合に限らないものとする。特定のフィルタに対して処理順序が前後関係にあるフィルタが３つ以上存在する場合も同様の動作を行ってよい。
【０１１０】
（動作例３）
図１１は、本実施の形態における画像処理装置の第３の動作例の説明図である。動作例３に係る複合機１は、読取フィルタ３０１、文書加工フィルタ３１１、ファクス送信フィルタ３２４などの組み合わせにより構成されるアプリケーションを実行する。このアプリケーションは、スキャナなどで読み取った画像データに所定の画像変換処理を施してファクス送信するものである。
【０１１１】
ここでは、ファクス送信に際してファクス送信フィルタ３２４はファクス直接送信する動作を行う。ファクス直接送信とは、送信するデータをメモリに蓄積せずに相手機との通信がつながったら読取フィルタ３０１による読取動作を開始するものである。さらに、ファクス直接送信では、ファクス送信フィルタ３２４は通信開始後に相手機とのネゴシエーションを行う。ネゴシエーションとは、双方の機器（ここでは複合機１と相手機）の画像データサイズ、解像度などの機器能力に係る情報をやりとりすることにより送信に係る設定を行うものである。
【０１１２】
ファクス送信３２４は、係る相手機とのネゴシエーションのために画像データの入力サイズと解像度が必要とするが、通信開始後に一定時間以上何も反応がないと相手機から通信を切断されてしまう（ネゴシエーション時は３５秒で通信を切断される）。そのため、ファクス送信フィルタ３２４はある一定時間内に上記の画像データの入力サイズと解像度の情報が必要となる。なお、画像データの入力サイズは、自動検知の場合には読取開始後に決定される。
【０１１３】
ここでは、ファクス送信フィルタ３２４が画像データの入力サイズと解像度の要求を行い、一定時間内に回答がこなければ、動作を中止する動作を行う。図１２は、動作例３に係る複合機１の動作を示すフローチャートである。
【０１１４】
図１２のステップＳ３１０〜Ｓ３１４に係る処理は、それぞれ図５のステップＳ７〜Ｓ１１に係る処理と同様であるとしてここでは説明を省略する。
【０１１５】
まず、ファクス送信フィルタ３２４は他のフィルタの情報が必要か否かを判定する（Ｓ３０１）。他のフィルタの情報が必要である場合（Ｓ３０１、ＹＥＳ）、ステップＳ３０２へ移る。他のフィルタの情報が必要ではない場合（Ｓ３０１、ＮＯ）、ステップＳ３０７へ移る。
【０１１６】
ステップＳ３０２へ移った場合、ファクス送信フィルタ３２４は当該ファクス送信フィルタ３２４と処理順序が前後のフィルタに動作条件決定情報の取得要求を行う（Ｓ３０２）。ここではファクス送信フィルタ３２４は処理順序においてファクス送信フィルタ３２４の前後関係にあるフィルタである文書加工フィルタ３１１に対して動作条件決定情報の取得要求を行う。具体的には、ファクス送信フィルタ３２４が必要な「情報」の名称（ここでは入力画像サイズと解像度）と「値」（ここでは空欄）を関連付けたＸＭＬなどの形式のデータ構造で要求する。さらに、ファクス送信フィルタ３２４は時間の測定を開始する。
【０１１７】
ステップＳ３０３へ移って、ファクス送信フィルタ３２４はステップＳ３０２において行った取得要求の回答を待つ（Ｓ３０３）。続いてステップＳ３０４へ移って、ファクス送信フィルタ３２４は自身とつながっているフィルタから回答がきたか否かを判定する（Ｓ３０４）。ステップＳ３０４において回答がきた場合（Ｓ３０４、ＹＥＳ）、ステップＳ３０５へ移って、ファクス送信フィルタ３２４は自身とつながっているフィルタから回答を取得する（Ｓ３０５）。
【０１１８】
さらにステップＳ３０６へ移って、ファクス送信フィルタ３２４は未回答値があるか否かを判定する（Ｓ３０６）。未回答値がある場合（Ｓ３０６、ＹＥＳ）、ステップＳ３０３へ戻る。未回答値がない場合（Ｓ３０６、ＮＯ）、ステップＳ３０７へ移って、ファクス送信フィルタ３２４は自身の動作条件を決定する（Ｓ３０７）。
【０１１９】
ステップＳ３０４において回答がきていない場合（Ｓ３０４、ＮＯ）、ステップＳ３０８へ移って、ファクス送信フィルタ３２４はステップＳ３０２で測定を開始した時間が所定時間（納期）を超えたか否かを判定する（Ｓ３０８）。
【０１２０】
ステップＳ３０８において所定時間（納期）を超えたと判定すると（Ｓ３０８、ＹＥＳ）、ステップＳ３０９へ移って、ファクス送信フィルタ３２４は動作を中止する（Ｓ３０９）。続いて処理を終了する。
【０１２１】
ステップＳ３０８において所定時間（納期）を超えていないと判定すると（Ｓ３０８、ＮＯ）、ステップＳ３０３へ戻って、ファクス送信フィルタ３２４は回答を待つ。
【０１２２】
以上で示される動作により、動作例３に係る複合機１では、ファクス送信フィルタ３２４が画像データの入力サイズと解像度の要求を行い、一定時間内に回答がこなければ、動作を中止する動作を行う。
【０１２３】
そのため、以下に掲げる利点を奏する。その利点とは、時間制約に関わる動作については時間制約内に動作条件を決定することにより、機器の時間制約がある場合も動作できるようにすることである。
【０１２４】
（動作例４）
図１３は、本実施の形態における画像処理装置の第４の動作例の説明図である。動作例４に係る複合機１は、読取フィルタ３０１、文書加工フィルタ３１１、印刷フィルタ３２１などの組み合わせにより構成されるアプリケーションを実行する。前述の動作例１と同様に、このアプリケーションは、スキャナなどで読み取った画像データに所定の画像変換処理を施して印刷するものである。
【０１２５】
ここでは、画像変換処理に際して自動倍率選択（AMS）が設定された（文書加工フィルタ３１１の変倍設定に「自動変倍」が設定された）ときの動作を行う。なお、前述した動作例１と異なり、読取フィルタ３０１の入力（読取）サイズには「Ａ３」が設定されているが、印刷フィルタ３２１の出力（印刷）サイズには、値が設定されていない（未設定）。文書加工フィルタ３１１は自身の動作条件である「自動変倍」の設定値、即ち変倍率を図５のフローチャートで示される動作により決定する。図１４は、動作例４に係る複合機１の動作を示すフローチャートである。
【０１２６】
図１４に示される処理は、図５のステップＳ１〜Ｓ１１に係る処理にステップＳ４０６及びＳ４０８に係る処理が加えられたものである。ここではステップＳ４０６及びＳ４０７について説明を行う。
【０１２７】
ステップＳ４０５において未回答値がない場合（Ｓ４０５、ＮＯ）、ステップＳ４０６へ移って、文書加工フィルタ３１１は必要な情報には全て回答値があるか否かを判定する（Ｓ４０６）。ここでは、例えばステップＳ４０２で送信した前述したデータ構造の要求において「値」の欄に埋められた回答値が動作条件の決定のために適切な値である否かを判定する。
【０１２８】
必要な情報には全て回答値がある場合（Ｓ４０６、ＹＥＳ）、ステップＳ４０７へ移って、文書加工フィルタ３１１は動作条件を決定する（Ｓ４０７）。必要な情報には全ての回答値はない場合（Ｓ４０６、ＮＯ）、即ち回答値が足りない場合、ステップＳ４０８へ移って、文書加工フィルタ３１１は動作を中止する（Ｓ４０８）。
【０１２９】
以上で示される動作により、動作例４に係る複合機１では、文書加工フィルタ３１１は自身の動作条件である「自動変倍」の設定値、即ち変倍率の決定に際して、受け取った回答において、回答値が足りない場合、回答値が適切な値でない場合のように必要な情報が足りないとき、動作を中止する。
【０１３０】
そのため、以下に掲げる利点を奏する。その利点とは、動作条件を決定する際、複数の情報がないと動作条件が決定できない場合がある。その場合は複数の情報がそろわないと動作しないとすることにより、想定外の動作をしないようにすることである。
【０１３１】
図１５は、動作例４の変形例に係る画像処理装置の説明図である。動作例４の変形例に係る複合機１は、読取フィルタ３０１、文書加工フィルタ３１１、印刷フィルタ３２１などの組み合わせにより構成されるアプリケーションを実行する。前述の動作例４と同様に、このアプリケーションは、スキャナなどで読み取った画像データに所定の画像変換処理を施して印刷するものである。
【０１３２】
動作例４に係る複合機１では、文書加工フィルタ３１１は自身の動作条件である「自動変倍」の設定値、即ち変倍率の決定に際して、受け取った回答において必要な情報が足りない場合に動作を中止した。
【０１３３】
ここでは、受け取った回答において、必要な情報が足りない場合に、動作を中止せずに、初期値（デフォルト条件）から動作条件を決定する動作を行う。図１６は、動作例４の変形例に係る複合機１の動作を示すフローチャートである。
【０１３４】
図１６に示される処理は、図１４のステップＳ４０１〜Ｓ４１３に係る処理にステップＳ５０８〜Ｓ５１０に係る処理が加えられたものである。ここではステップＳ５０８〜Ｓ５１０について説明を行う。
【０１３５】
ステップＳ５０６において必要な情報には全ての回答値はない場合（Ｓ５０６、ＮＯ）、即ち回答値が足りない場合、ステップＳ５０８へ移って、文書加工フィルタ３１１は初期値があるか否かを判定する（Ｓ５０８）。
【０１３６】
ステップＳ５０８において初期値がある場合（Ｓ５０８、ＹＥＳ）、ステップＳ５０９へ移って、文書加工フィルタ３１１は読取フィルタ３０１から受信した入力サイズ「Ａ３」及び予め予め文書加工フィルタ３１１が保持する出力サイズの初期値（ここでは例えば「Ａ４」）の動作条件決定情報に基づき、動作条件である変倍率はＡ４／Ａ３＝０．７０であることを決定する。
【０１３７】
ステップＳ５０８において初期値がない場合（Ｓ５０８、ＮＯ）、ステップＳ５１０へ移って、文書加工フィルタ３１１は動作を中止する（Ｓ５１０）。
【０１３８】
以上で示される動作により、動作例４に係る複合機１では、文書加工フィルタ３１１は自身の動作条件である「自動変倍」の設定値、即ち変倍率を決定するが、このとき文書加工フィルタ３１１が受け取った回答において、必要な情報が足りない且つ文書加工フィルタ３１１が初期値を保持する場合に、動作を中止せずに、初期値から動作条件を決定する動作を行う。
【０１３９】
そのため、以下に掲げる利点を奏する。その利点とは、動作条件を決定する際、複数の情報がないと動作条件が決定できない場合がある。その場合にでも動作をすることができるようにすることである。
【０１４０】
（動作例５）
図１７は、本実施の形態における画像処理装置の第５の動作例の説明図である。動作例５に係る複合機１は、読取フィルタ３０１、文書加工フィルタ３１１Ａ、印刷フィルタ３２１、文書加工フィルタ３１１Ｂ、ファクス送信フィルタ３２４などの組み合わせにより構成されるアプリケーションを実行する。なお、ここでは２種類の文書加工フィルタ３１１を識別するために、文書加工フィルタ３１１Ａ、３１１Ｂとしている。このアプリケーションは、スキャナなどで読み取った画像データに、所定の画像変換処理を施して印刷する又は別の画像変換処理を施してファクス送信するものである。
【０１４１】
ここでは、図１７のような多出力（１つの入力フィルタにおける入力に基づき、複数の出力フィルタによる出力が行われる）の構成において、文書加工フィルタ３１１Ａによる画像変換処理に際して自動倍率選択（AMS）が設定された（文書加工フィルタ３１１Ａの変倍設定に「自動変倍」が設定された）ときの動作を行う。図１８は、動作例５に係る複合機１の動作を示すフローチャートである。
【０１４２】
まず、文書加工フィルタ３１１Ａは他のフィルタの情報が必要か否かを判定する（Ｓ６０１）。他のフィルタの情報が必要である場合（Ｓ６０１、ＹＥＳ）、ステップＳ６０２へ移る。他のフィルタの情報が必要ではない場合（Ｓ６０１、ＮＯ）、ステップＳ６０９へ移る。
【０１４３】
ステップＳ６０２へ移った場合、文書加工フィルタ３１１Ａは「階層」をインクリメントする（Ｓ６０２）。ステップＳ６０２における処理は後述のステップＳ６０３と共に説明する。続いてステップＳ６０３へ移って、文書加工フィルタ３１１Ａは当該文書加工フィルタ３１１Ａと処理順序が前後のフィルタに動作条件決定情報の取得要求を行う（Ｓ６０３）。
【０１４４】
ステップＳ６０３では、文書加工フィルタ３１１Ａは、処理順序において文書加工フィルタ３１１Ａの前後関係にあるフィルタである読取フィルタ３０１と印刷フィルタ３２１に対して動作条件決定情報の取得要求を行う。このとき、読取フィルタ３０１に対して行う取得要求と同一のデータ形式の取得要求を印刷フィルタ３２１に対しても行う。具体的には、文書加工フィルタ３１１が必要な「情報」の名称（ここでは入力画像サイズと出力画像サイズ：入力画像サイズについては省略）と「値」（ここでは空欄）に加えて「階層」（ここではステップＳ６０２によりインクリメントされた値１）を関連付けたＸＭＬなどの形式のデータ構造で要求する。「情報」の名称は、全フィルタで共通で定義してあるものとする。なお、ステップＳ６０４〜Ｓ６０９の説明を先に行い、ステップＳ６１０〜Ｓ６１８については後述する。
【０１４５】
ステップＳ６０４へ移って、文書加工フィルタ３１１ＡはステップＳ６０３において行った取得要求の回答を待つ（Ｓ６０４）。続いてステップＳ６０５へ移って、文書加工フィルタ３１１Ａは自身とつながっているフィルタから回答（ここでは、読取フィルタ３０１及び印刷フィルタ３２１から、それぞれ出力サイズ「Ａ４」階層「３」の情報、出力サイズ「Ａ３」階層「１」の情報）を取得する（Ｓ６０５）。
【０１４６】
続いてステップＳ６０６へ移って、文書加工フィルタ３１１Ａは未回答値があるか否かを判定する（Ｓ６０６）。未回答値がある場合（Ｓ６０６、ＹＥＳ）、ステップＳ６０３へ戻る。未回答値がない場合（Ｓ６０６、ＮＯ）、ステップＳ６０７へ移る。
【０１４７】
ステップＳ６０７へ移った場合、文書加工フィルタ３１１Ａは１つの情報に複数の回答値があるか否かを判定する（Ｓ６０７）。複数の回答値がある場合（Ｓ６０７、ＹＥＳ）、ステップＳ６０８へ移る。複数の回答値がない場合（Ｓ６０７、ＮＯ）、ステップＳ６０９へ移る。
【０１４８】
ステップＳ６０８へ移った場合、文書加工フィルタ３１１Ａは階層が少ない方の値を採用する（Ｓ６０８）。ここでは、階層が少ない方の値すなわち、印刷フィルタ３２１から取得した出力サイズ「Ａ３」階層「１」の情報を採用する。
【０１４９】
ステップＳ６０９へ移って、文書加工フィルタ３１１は自身の動作条件を決定する（Ｓ６０９）。ここでは、印刷フィルタ３２１から取得した出力サイズ「Ａ３」の情報に基づき、動作条件である変倍率を決定する。
【０１５０】
以降、ステップＳ６１０〜Ｓ６１８に係る動作について説明を行う。
【０１５１】
ステップＳ６１０へ移って、読取フィルタ３０１（又は印刷フィルタ３２１）は、ステップＳ６０３で文書加工フィルタ３１１から送信された動作条件決定情報の取得要求を受信する（Ｓ６１０）。続いてステップＳ６１１へ移って、ステップＳ６１０で受信した取得要求で求められている情報名称と自分が値を保持している情報名称とを比較する（Ｓ６１１）。
【０１５２】
ステップＳ６１２へ移って、読取フィルタ３０１（又は印刷フィルタ３２１）は、ステップＳ６１２で比較した結果、該当する情報名称があるか否かを判定する（Ｓ６１２）。該当する情報名称があると判定すると（Ｓ６１２、ＹＥＳ）、ステップＳ６１３へ移って回答の「値」、「階層」を埋めて（Ｓ６１３）、ステップＳ６１４へ移る。該当する情報名称がないと判定すると（Ｓ６１２、ＮＯ）、ステップＳ６１４へ移る。
【０１５３】
ステップＳ６１４へ移って、読取フィルタ３０１（又は印刷フィルタ３２１）は要求元（ここでは文書加工フィルタ３１１Ａ）以外で処理順序が前後関係のフィルタがあるか否かを判定する（Ｓ６１４）。
【０１５４】
ステップＳ６１４において要求元以外で処理順序が前後関係のフィルタがあると判定すると（Ｓ６１４、ＹＥＳ）、ステップＳ６１５へ移って、読取フィルタ３０１は、階層をインクリメントする（Ｓ６１５）。ここでは、読取フィルタ３０１は、ステップＳ６１０で受信した動作条件決定情報の取得要求における「階層」の値（ステップＳ６０３参照）を１インクリメントする。
【０１５５】
続いてステップＳ６１６へ移って、読取フィルタ３０１は要求元以外で処理順序が前後関係のフィルタ（ここでは文書加工フィルタ３１１Ｂ）に取得要求を送信する（Ｓ６１６）。続いてステップＳ６１７へ移って、読取フィルタ３０１は要求元以外で処理順序が前後関係のフィルタ（ここでは文書加工フィルタ３１１Ｂ）から回答を受信する（Ｓ６１７）。
【０１５６】
なお、ステップＳ６１４〜Ｓ６１７に係る処理を繰り返すことにより、フィルタ間で送受信される動作条件決定情報の取得要求における「階層」の値は、要求元である文書加工フィルタ３１１Ａから取得要求が受け渡される回数、即ちいくつのフィルタを介して前後関係にあるか、に応じた値をとる。
【０１５７】
ステップＳ６１８へ移って、読取フィルタ３０１（又は印刷フィルタ３２１）は、ステップＳ６１４〜Ｓ６１７に係る処理を繰り返すことにより生成された回答を文書加工フィルタ３１１に対して送信する（Ｓ６１８）。
【０１５８】
以上で示される動作により、動作例５に係る複合機１では、多出力（１つの入力フィルタにおける入力に基づき、複数の出力フィルタによる出力が行われる）の構成において、文書加工フィルタ３１１Ａによる画像変換処理に際して自動倍率選択（AMS）が設定された（文書加工フィルタ３１１Ａの変倍設定に「自動変倍」が設定された）ときの動作を行う。文書加工フィルタ３１１Ａは、自動変倍のために入力サイズと出力サイズが必要になる。そのため、入力サイズと出力サイズの情報の要求を出す。この際、必要な「情報」の名称と「値」と「階層」というデータ構造で要求を出す。要求では、フィルタを１つ介す度に「階層」という値を１インクリメントして受け渡していく。要求を受け取り、値を入れられる項目があったフィルタでは、その「値」と、そのときの「階層」を埋めて回答する。文書加工フィルタ３１１Ａでは、全て回答が集まった時に、この構成では出力フィルタが２つあるので、出力サイズの値が２つ集まることになる。このとき、階層が低いということは近いということなので、そちらが必要な情報であると判断して、「階層」が少ない方の「値」を採用する。
【０１５９】
そのため、以下に掲げる利点を奏する。その利点とは、１つの項目に複数の回答がきてしまった場合に、その場合でもどの回答を採用するか決定することにより、その場合も問題無く動作できるようにすることである。
【０１６０】
（動作例６）
図１９は、本実施の形態における画像処理装置の第６の動作例の説明図である。動作例５に係る複合機１は、読取フィルタ３０１、文書加工フィルタ３１１、印刷フィルタ３２１などの組み合わせにより構成されるアプリケーションを実行する。前述の動作例１と同様に、このアプリケーションは、スキャナなどで読み取った画像データに所定の画像変換処理を施して印刷するものである。
【０１６１】
ここでは、複合機１においてエラー発生時の動作の例を説明する。エラー発生時としては、例えば他のフィルタの情報を必要とするフィルタが必要な情報を得られない又は必要以上に得たときがある。ここでは、図１９の構成において、印刷処理に際して自動用紙選択（APS）が設定された（印刷フィルタ３２１の出力（印刷）サイズ設定に「自動選択」が設定された）とき、他のフィルタには必要な情報が保持されていない場合を例にとって説明を行う。図２０は、動作例６に係る複合機１の動作を示すフローチャートである。
【０１６２】
図２０に示される処理は、図５のステップＳ１〜Ｓ１１に係る処理にステップＳ７０６〜Ｓ７０９に係る処理が加えられたものである。ここではステップＳ７０６〜Ｓ７０９について説明を行う。
【０１６３】
ステップＳ７０５において未回答値がない場合（Ｓ７０５、ＮＯ）、ステップＳ７０６へ移って、文書加工フィルタ３１１はステップＳ７０４で受信した回答が当該文書加工フィルタ３１１の動作条件を決定するためのデータとして不足している（或いは過多である）か否かを判定する（Ｓ７０６）。
【０１６４】
ステップＳ７０６において当該文書加工フィルタ３１１の動作条件を決定するためのデータとして不足している（或いは過多である）場合（Ｓ７０６、ＹＥＳ）、ステップＳ７０８へ移って、文書加工フィルタ３１１はエラーログを残す（Ｓ７０８）。続いてステップＳ７０９へ移って、文書加工フィルタ３１１はエラー通知を行う（Ｓ７０９）。エラー通知は、例えば操作画面に表示することによる通知、電子メールによる機器に登録されている管理者への通知、レポートを印刷することによる通知などである。
【０１６５】
ステップＳ７０６において当該文書加工フィルタ３１１の動作条件を決定するためのデータとして不足している（或いは過多である）場合（Ｓ７０６、ＹＥＳ）、ステップＳ７０７へ移って、文書加工フィルタ３１１は動作条件を決定する（Ｓ７０７）。
【０１６６】
以上で示される動作により、動作例６に係る複合機１では、エラー発生時の動作を行う。必要な設定が足りなくてエラーとなった時に、ユーザがそのことを知ることが出来ないと、そのエラーを解決できない可能性がある。そのため、そのエラーを通知することにより、ユーザがエラーを解決できるようにする。
【０１６７】
なお、エラー通知においてエラー内容を操作部へ表示することにより、機器の前にいるユーザがエラー内容を知ることができる。また、エラー通知においてエラー内容を電子メールで管理者に通知することにより、離れた場所にいる機器管理者がエラー内容を知ることができる。さらには、エラー内容をレポートで出力することにより、時間があいてもユーザがエラー内容を確認できるようにすることができる。その他エラー通知の形態は、上記の場合に限らないものとする。
【０１６８】
また、図２１に示す画面表示などを用いて通知手法の選択方法について提示する提示手段を設けることにより、ユーザの利便性があがるようにすることができる。初期設定において、予めユーザがエラーの通知方法を選択しておくことができる。
【０１６９】
以下、フィルタ、パイプなどの詳細及び画像処理装置１のハードウェア構成に係る説明を図２２〜図４０を用いて行う。
【０１７０】
フィルタについて更に詳しく説明する。図２２は、フィルタの構成要素を説明するための図である。図２２に示されるように、各フィルタは、フィルタ設定用ＵＩ、フィルタロジック、フィルタ固有下位サービス、及び永続記憶領域情報等より構成される。このうち、フィルタ設定用ＵＩ、フィルタ固有下位サービス、及び永続記憶領域情報については、フィルタによって必ずしも構成要素に含まれない。
【０１７１】
フィルタ設定用ＵＩは、フィルタの実行条件等を設定させるための画面をオペレーションパネル等に表示させるプログラムである。例えば、読取フィルタ３０１であれば、解像度、濃度、画像種別等を設定させる画面が相当する。なお、オペレーションパネルの表示がＨＴＭＬデータや、スクリプトに基づいて行われ得ることに鑑みれば、フィルタ設定用ＵＩはＨＴＭＬデータやスクリプトであってもよい。
【０１７２】
フィルタロジックは、フィルタの機能を実現するためロジックが実装されたプログラムである。すなわち、フィルタの構成要素としてのフィルタ固有下位サービスや、デバイスサービス層４０又はデバイス制御層５０等を利用して、フィルタ設定用ＵＩを介して設定された実行条件に応じてフィルタの機能を実現する。例えば、読取フィルタ３０１であれば、スキャナによる原稿の読み取り制御のためのロジックが相当する。
【０１７３】
フィルタ固有下位サービスは、フィルタロジックを実現するために必要な下位機能（ライブラリ）である。すなわち、デバイスサービス層４０又はデバイス制御層５０に相当する機能であるが、他のフィルタから使用されないものについては、フィルタの一部として実装されてもよく、当該一部がフィルタ固有下位サービスに相当する。例えば、読取フィルタ３０１であれば、スキャナを制御するための機能が相当するが、本実施の形態では、デバイス制御層５０においてスキャナ制御部５１として実装されている。したがって、読取フィルタ３０１において、フィルタ固有下位サービスの実装は必ずしも必要ではない。
【０１７４】
永続記憶領域情報は、フィルタに対する設定情報（例えば、実行条件のデフォルト値）等、不揮発メモリに保存する必要があるデータのスキーマ定義が相当する。当該スキーマ定義は、フィルタのインストール時にデータ管理部４２に登録される。
【０１７５】
図２３は、本実施の形態の複合機における各機能を実現するためのフィルタの組み合わせの例を示す図である。
【０１７６】
例えば、コピー機能は、読取フィルタ３０１と印刷フィルタ３２１とを接続することにより実現される。読取フィルタ３０１によって原稿より読み取られた画像データを印刷フィルタ３２１によって印刷すればよいからである。なお、集約、拡大、又は縮小等の加工が要求された場合は、これらの加工を実現する文書加工フィルタ３１１が二つのフィルタの間に挿入される。
【０１７７】
プリンタ機能（クライアントＰＣからの印刷機能）は、ＰＣ文書受信フィルタ３０５と文書変換フィルタ３１２と印刷フィルタ３２１とを接続することにより実現される。スキャンｔｏ  ｅｍａｉｌ機能（スキャンした画像データを電子メールで転送する機能）は、読取フィルタ３０１とメール送信フィルタ３２３とを接続することによって実現される。ＦＡＸ送信機能は、読取フィルタ３０１とＦＡＸ送信フィルタ３２４とを接続することによって実現される。ＦＡＸ受信機能は、ＦＡＸ受信フィルタ３０４と印刷フィルタ３２１とを接続することによって実現される。ドキュメントボックス蓄積機能（スキャンした画像データを複合機１内に保存する機能）は、読取フィルタ３０１と保管文書登録フィルタ３２２とを接続することによって実現される。ドキュメントボックス印刷機能（複合機１内に保存されている文書データを印刷する機能）は、保管文書読出フィルタ３０２と印刷フィルタ３２１とを接続することにより実現される。
【０１７８】
図２３において、例えば、読取フィルタ３０１については５つの機能において利用されている。このように、各フィルタは複数の機能から利用可能であり、それによって各機能を実現するための開発工数を削減することができる。例えば、コピー機能とスキャン機能（ドキュメントボックス蓄積）について、その実行条件を設定させるためのユーザインタフェースは類似しているものであった。しかし、各機能をアプリケーションによって実装する場合には、アプリケーションごとに個別にユーザインタフェースの実装も行われていた。しかし、本実施の形態では、コピー機能及びスキャン機能のいずれの場合も、読取フィルタ３０１のユーザインタフェースによって設定が行われ、ユーザインタフェースの共通化をも図ることができる。
【０１７９】
更に、新たな機能を実現する場合について考える。まず、機能１として、複合機１では対応していないＰＤＬ（Page Description Language）（以下、「他ＰＤＬ」という。）によってクライアントＰＣから送信される印刷データを印刷する機能を実現する場合について考える。この場合、図２３におけるプリンタ機能を雛形とすることができる。但し、プリンタ機能では、ＰＣ文書受信フィルタ３０５により出力されるデータがＰｏｓｔＳｃｒｉｐｔ形式であることが前提とされている。文書変換フィルタ３１２が入力データとして扱えるのはＰｏｓｔＳｃｒｉｐｔ形式のデータだからである。しかし、機能１の場合、ＰＣ文書受信フィルタ３０５によって受信され、当該フィルタより出力されるのは他ＰＤＬ形式のデータである。したがって、このまま文書変換フィルタ３１２に転送しても文書変換フィルタ３１２は適切に処理を実行することができない。そこで、他ＰＤＬ形式からＰｏｓｔＳｃｒｉｐｔ形式へのデータ変換を実行する変換フィルタ（以下「他ＰＤＬ−ＰＳ変換フィルタ」という。）を新たに実装し、当該フィルタをＰＣ文書受信フィルタ３０５と文書変換フィルタ３１２との間に挿入すれば、機能１を実現することができる。すなわち、機能１は、ＰＣ文書受信フィルタ３０５と他ＰＤＬ−ＰＳ変換フィルタと文書変換フィルタ３１２と印刷フィルタ３２１とを接続することにより実現される。
【０１８０】
次に、機能２として、Ｗｅｂサイトから情報を収集し、収集された情報を印刷する機能（以下「機能２」という。）を実現する場合について考える。この場合、Ｗｅｂサイトから情報を収集するフィルタが存在しない。したがって、少なくともＷｅｂサイトから情報を収集する入力フィルタ（以下「Ｗｅｂ収集フィルタ」という。）を新たに実装する必要がある。また、機能２では最終的に印刷を実行させたいので、出力フィルタとしては印刷フィルタ３２１を用いるのが適切である。ここで問題となるのが、Ｗｅｂ収集フィルタと印刷フィルタ３２１との間をどのように接続するかである。すなわち、印刷フィルタ３２１の入力データはレンダリングされたビットマップである必要があるところ、Ｗｅｂ収集フィルタ内にレンダリング機能を実装するのは非常に工数がかかるので適切ではない。そこで、既にレンダリング機能を実現する文書変換フィルタ３１２を利用することが考えられる。ただし、文書変換フィルタ３１２の入力データは、ＰｏｓｔＳｃｒｉｐｔ形式である必要がある。そこで、Ｗｅｂ収集フィルタを、収集した情報をＰｏｓｔＳｃｒｉｐｔ形式によって出力するように実装すれば、文書変換フィルタ３１２との接続が可能となる。このようにＷｅｂ収集フィルタを実装することにより、機能２は、Ｗｅｂ収集フィルタと文書変換フィルタ３１２と、文書変換フィルタ３１２と印刷フィルタ３２１との接続により実現される。
【０１８１】
以下、本実施の形態における複合機１の処理手順について説明する。図２４及び図２５は、複合機が一つの機能を実現する際の処理手順を説明するためのフローチャートである。
【０１８２】
まず、ユーザによって入力フィルタが選択され（Ｓ１１０１）、選択された入力フィルタの実行条件が設定される（Ｓ１１０２）。同様に、変換フィルタ又は出力フィルタについても選択が行われ（Ｓ１１０３）、フィルタ間の接続が指定され（Ｓ１１０４）、実行条件が設定される（Ｓ１１０５）。
【０１８３】
上記の操作は、ローカルＵＩ部１２の制御のもと、例えば、図２６に示されるようなオペレーションパネルを介して行われる。
【０１８４】
図２６は、オペレーションパネルにおけるフィルタの選択例を示す図である。図２６において、オペレーションパネル２０２は、タッチパネル５１１とスタートボタン５１２とを含む。タッチパネル５１１は、タッチ操作で入力を行うためのハードウェア（タッチ操作部）であると共に、画面表示で出力を得るためのハードウェア（画面表示部）である。スタートボタン５１２は、要求した機能の実行開始指示を行うためのハードウェアである。
【０１８５】
図２６のタッチパネル５１１には、要求入力画面が表示されている。要求入力画面は、入力フィルタ選択領域５１３、変換フィルタ選択領域５１４、出力フィルタ選択領域５１５、及び要求表示領域５１６等より構成される。入力フィルタ選択領域５１３は、入力フィルタを選択させるための領域であり、入力フィルタごとにボタンが表示されている。入力フィルタ選択領域５１３でいずれかのボタンが選択されると、選択されたボタンに対応する入力フィルタのボタンが要求表示領域５１６に表示される。図中では、便宜上、読取フィルタ３０１及び保管文書読出フィルタ５１３のボタンが表示されている。
【０１８６】
変換フィルタ選択領域５１４は、変換フィルタを選択させるための領域であり、変換フィルタごとにボタンが表示されている。変換フィルタ選択領域５１４でいずれかのボタンが選択されると、選択されたボタンに対応する変換フィルタのボタンが要求表示領域５１６に表示される。
【０１８７】
出力フィルタ選択領域５１５は、出力フィルタを選択させるための領域であり、出力フィルタごとにボタンが表示されている。出力フィルタ選択領域５１５でいずれかのボタンが選択されると、選択されたボタンに対応する出力フィルタのボタンが要求表示領域５１６に表示される。図中では、便宜上、印刷フィルタ３２１、保管文書登録フィルタ３２２、メール送信フィルタ３２３、及びＦＡＸ送信フィルタ３２４のボタンが表示されている。
【０１８８】
要求表示領域５１６には、入力フィルタ選択領域５１３、変換フィルタ選択領域５１４又は出力フィルタ選択領域５１５において選択されたフィルタのボタンが表示され、入力フィルタ、変換フィルタ、又は出力フィルタとの間は、データの流れ又はパイプを示す矢印で接続される。矢印を操作することにより、実行するフィルタの順番を変更することも可能である。要求表示領域５１６における表示内容によって、ユーザは、利用するフィルタとその流れを認識することができる。要求表示領域５１６には、更に、設定ボタン５１７及び削除ボタン５１８が配置されている。設定ボタン５１７は、要求表示領域５１６においてフィルタのボタンが選択されている場合に、当該フィルタの設定画面を表示させるためのボタンである。すなわち、設定ボタン５１７が押下（タッチ）されると、選択されているフィルタのフィルタ設定ＵＩに基づいて、その設定画面がタッチパネル５１１に表示される。削除ボタン５１８は、要求表示領域５１６においてフィルタのボタンが選択されている場合に、当該フィルタの利用を解除するためのボタンである。
【０１８９】
なお、入力フィルタ、変換フィルタ、及び出力フィルタは、一つの機能に対してそれぞれ複数個の選択が可能である。例えば、スキャンされた画像と、複合機１内に保存されている画像を合成して、印刷すると共にＦＡＸ送信するといったような場合、少なくとも二つの入力フィルタ（読取フィルタ３０１及び保管文書読出フィルタ３０２）と二つの出力フィルタ（印刷フィルタ３２１及びＦＡＸ送信フィルタ３２４）とが選択される。
【０１９０】
フィルタの選択が完了し（Ｓ１１０６でＹＥＳ）、スタートボタン５１２が押下されると、ユーザインタフェース層１０からコントロール層２０に対して、要求内容が通知される。
【０１９１】
図２７は、ユーザインタフェース層からコントロール層へ通知される要求内容を概念的に示す図である。図２７に示されるように、ユーザインタフェース層１０からの要求は、ユーザインタフェース層１０において選択されたフィルタごとに、フィルタの種別と当該フィルタに対する設定情報とを含むものであり、更にフィルタの実行順も含も含んでいる（図中において各ブロックを結ぶ矢印が、フィルタの実行順を示す）。
【０１９２】
図２７に示されるような要求内容を受けて、コントロール層２０は、選択された各フィルタ間をパイプによって接続する（図２４のＳ１１０７）。パイプの実体はメモリ（ＨＤＤ（Hard Disk Drive）も含む）であるが、パイプの両端のフィルタに応じて利用するメモリの種類が異なり、その対応関係は、例えば、複合機１のＨＤＤ内に予め定義されている。
【０１９３】
図２８は、フィルタとパイプの対応テーブルの例を示す図である。図２８の対応テーブル６０によれば、例えば、読取フィルタ３０１と印刷フィルタ３２１や、文書変換フィルタ３１２と印刷フィルタ３２１は、ＤＭＡ（Direct Memory Access）パイプによって接続され、高速にデータが転送される。また、ＰＣ文書受信フィルタ３０５と文書変換フィルタ３１２とは、スプールパイプによって接続される。スプールパイプとは、ＨＤＤを用いるパイプであり、左側のフィルタから出力されたデータは、右側のフィルタが読み出すまでＨＤＤにスプール（保存）される。それ以外のフィルタ間は、汎用メモリパイプによって接続される。汎用メモリパイプとは、有限サイズのＲＡＭバッファによってデータ転送を行うパイプである。図２８に示される対応テーブル６０は、フィルタやパイプの拡張（追加）や削除等に応じて編集可能である。なお、図１における画像パイプ４１は、上記の各種のパイプへのインタフェースを提供するモジュールを抽象的に表現したものである。
【０１９４】
したがって、コントロール層２０は、図２８の対応テーブル６０に基づいて、各フィルタ間を特定のパイプで接続する。
【０１９５】
図２９は、コントロール層によって生成される情報を概念的に示す図である。図２９では、各フィルタ（「Ｆ」）間がパイプ（「Ｐ」）によって接続されている様子が示されている。
【０１９６】
続いて、コントロール層２０は、各フィルタに対して並列的に実行要求を出力する（図２４のＳ１１０８）。すなわち、フィルタの呼び出しはフィルタの接続順ではなく、全てのフィルタに対してほぼ同時に行われる。フィルタ間の同期はパイプによってとられるからである。すなわち、コントロール層からの実行要求を受けて、各フィルタは自分の入力側のパイプにデータが入力されるまで待機する。但し、入力フィルタには、入力側にパイプは存在しない。したがって、入力フィルタは実行要求に応じて処理を開始する。
【０１９７】
まず、入力フィルタは、入力デバイスよりデータを入力し（図２５のＳ１１１１）、当該データを、出力側に接続されているパイプに出力する（Ｓ１１１２）。なお、データが複数回に分けて入力される場合（複数枚の原稿がスキャンされる場合等）は、データの入力とパイプへの出力が繰り返される。全ての入力データについて処理が終了すると（Ｓ１１１３でＹＥＳ）、入力フィルタの処理は終了する。
【０１９８】
変換フィルタは、入力側に接続されているパイプに対するデータの入力を検知すると処理を開始する。まず、当該パイプからデータを読み込み（Ｓ１１２１）、データに対して画像処理を施す（Ｓ１１２２）。続いて、処理結果としてのデータを出力側に接続されているパイプに出力する（Ｓ１１２３）。入力側のパイプに入力された全てのデータについて処理が終了すると（Ｓ１１２４でＹＥＳ）、変換フィルタの処理は終了する。
【０１９９】
出力フィルタは、入力側に接続されているパイプに対するデータの入力を検知すると処理を開始する。まず、当該パイプからデータを読み込み（Ｓ１１３１）。続いて、読み込まれたデータを出力デバイスを利用して出力する（Ｓ１１３２）。入力側のパイプに入力された全てのデータについて処理が終了すると（Ｓ１１３３でＹＥＳ）、出力フィルタの処理は終了する。
【０２００】
パイプについて更に詳しく説明する。図３０は、パイプを介したフィルタ間のデータの伝達手順を説明するための図である。図中において、フィルタＡ３００ａ及びフィルタＢ３００ｂは、それぞれフィルタを示す。ＤＭＡパイプ４１ａは、図１において説明した、画像パイプ４１の一例としてのＤＭＡパイプである。画像メモリ２５０は、複合機１に備えられた物理的な（ハードウェアとしての）画像メモリである。
【０２０１】
フィルタＡ３００ａからフィルタＢ３００ｂにデータ（画像データ）が伝達される場合、フィルタＡ３００ａは、ＤＭＡパイプ４１ａに対して画像データを格納するためのメモリ領域の確保を要求する（Ｓ５１）。ＤＭＡパイプ４１ａは、当該メモリ領域を確保し、そのアドレスをフィルタＡ３００ａに返却する（Ｓ５２）。フィルタＡ３００ａは、返却されたアドレス（画像メモリ２５０）に画像データを書き込み（Ｓ５３）、画像データを書き込んだアドレスをＤＭＡパイプ４１ａに通知する（Ｓ５４）。
【０２０２】
フィルタＢ３００ｂは、ＤＭＡパイプ４１ａに対して画像データが書き込まれたアドレスが通知されるまで、当該アドレスの問い合わせを繰り返し（定期的に）行っている（Ｓ５５）。但し、フィルタＢ３００ｂは、当該アドレスが通知されるまで待機していてもよい。当該アドレスがＤＭＡパイプ４１ａに通知されると、フィルタＢ３００ｂは、当該アドレスを取得し、画像メモリ２５０に対する画像データの書き込みを検知する。そこで、フィルタＢ３００ｂは、画像メモリ２５０の当該アドレスより画像データを読み出し（Ｓ５６）、当該画像データに対してフィルタ３００ｂに関する処理を実行する。処理が完了すると、フィルタＢ３００ｂは、当該アドレスに係るメモリ領域の開放をＤＭＡパイプ４１ａに要求する（Ｓ５７）。ＤＭＡパイプ４１ａは、当該メモリ領域を開放する（Ｓ５８）。
【０２０３】
このように、フィルタ間のデータの伝達を画像メモリ（共有メモリ）を介して行うことにより、フィルタごとに画像データを格納するためのメモリ領域を確保する必要がなくなり、メモリ効率や処理性能の向上を図ることができる。また、フィルタ間に呼び出し関係が生じないため、フィルタの独立性を保つことができる。
【０２０４】
次に、具体的な機能を例として、複合機１内における処理シーケンスを説明する。図３１は、コピー機能を実現する際の処理手順を説明するための図である。
【０２０５】
ステップＳ１１において、ローカルＵＩ部１２は、図２６に示したオペレーションパネルを介してユーザからコピー要求の入力（フィルタの選択）を受け付ける。
【０２０６】
ところで、図２６に示されるようにユーザに各フィルタを選択させるといったユーザインタフェースは、ユーザの要求に柔軟に対応できるという反面、コピーのように頻繁に利用する機能については、毎回フィルタの選択によって実行指示を行うのはユーザにとって煩雑である。そこで、例えば、頻繁に利用する機能については、「コピー」ボタンを表示させ、「コピー」ボタンが選択されると、内部的に利用するフィルタが選択されるようにしてもよい。
【０２０７】
ユーザによって要求が入力されると、ローカルＵＩ部１２は、入力された要求（選択されたフィルタ）の実行をコントロール層２０に要求する（Ｓ１２）。コントロール層２０は、選択されたフィルタ間をパイプによって接続する（Ｓ１３）。
【０２０８】
図３２は、コピー機能に係るフィルタ間がパイプによって接続された様子を概念的に示す図である。図３２において、読取フィルタ３０１と印刷フィルタ３２１とが画像パイプ４１によって接続されている。ステップＳ１３では、このような内容を示す情報が生成される。図２８より、ここでの画像パイプ４１は、ＤＭＡパイプが相当する。
【０２０９】
続いて、コントロール層２０は、利用する各フィルタ（読取フィルタ３０１及び印刷フィルタ３２１）に対して実行要求を並列的に出力する（Ｓ１４）。
【０２１０】
まず、入力フィルタである読取フィルタ３０１は、スキャナ制御部５１に対して画像の読み取りを指示する（Ｓ１５）。当該指示に応じてスキャナ制御部５１の制御のもと、スキャナ（撮像部）によって原稿から画像データが読み取られ、読取フィルタ３０１に出力される。読取フィルタ３０１は、当該画像データを画像パイプ４１に出力する（Ｓ１６）。画像パイプ４１の実体はメモリであるため、画像パイプ４１は、メモリ制御部５３を介して画像データをメモリに書き込む（Ｓ１７）。なお、ここでは、ＤＭＡ転送が行われる。
【０２１１】
一方、印刷フィルタ３２１は、入力側に接続されている画像パイプ４１への画像データの書き込みが検知されると処理を開始する。まず、印刷フィルタ３２１は、画像パイプ４１に対し画像データの読み込みを要求する（Ｓ１８）。画像パイプ４１は、メモリ制御部５３を介して画像データを読み込む（Ｓ１９）。印刷フィルタ３２１は、当該画像データの印刷をプロッタ制御部５２に指示する（Ｓ２０）。当該指示に応じてメモリ制御部５３からプロッタ制御部５２に画像データがＤＭＡ転送され、プロッタ制御部５２の制御のもと、プロッタ（印刷部）によって画像データが印刷される。
【０２１２】
次に、プリンタ機能（クライアントＰＣからの印刷機能）について説明する。図３３は、プリンタ機能を実現する際の処理手順を説明するための図である。
【０２１３】
ステップＳ２１において、クライアントＰＣからの印刷要求が受け付けられる。当該印刷要求は、まず、ネットワーク制御部５５によって受信され、通信サーバ部１１に通知される。通信サーバ部１１は、プリンタ機能を実現するために必要なフィルタを選択し、選択されたフィルタの実行をコントロール層２０に要求する（Ｓ２２）。コントロール層２０は、選択されたフィルタ間をパイプによって接続する（Ｓ２３）。
【０２１４】
図３４は、プリンタ機能に係るフィルタ間がパイプによって接続された様子を概念的に示す図である。図３４において、ＰＣ文書受信フィルタ３０５と文書変換フィルタ３１２とが画像パイプ４１によって接続されている。また、文書変換フィルタ３１２と印刷フィルタ３２１とも画像パイプ４１によって接続されている。図２８より、ＰＣ文書受信フィルタ３０５と文書変換フィルタ３１２との間の画像パイプ４１は、スプールパイプが相当する。また、文書変換フィルタ３１２と印刷フィルタ３２１との間の画像パイプ４１は、ＤＭＡパイプが相当する。
【０２１５】
続いて、コントロール層２０は、利用する各フィルタ（ＰＣ文書受信フィルタ３０５、文書変換フィルタ３１２、及び印刷フィルタ３２１）に対して実行要求を並列的に出力する（Ｓ２４）。
【０２１６】
まず、入力フィルタであるＰＣ文書受信フィルタ３０５は、ネットワーク制御部５５に対して印刷データ（ＰＤＬ）の受信を指示する（Ｓ２５）。印刷データが受信されると、ＰＣ文書受信フィルタ３０５は、受信された印刷データを画像パイプ４１に出力する（Ｓ２６）、画像パイプ４１は、メモリ制御部５３を介して印刷データをメモリ（ここではＨＤＤ）に書き込む（Ｓ２７）。
【０２１７】
文書変換フィルタ３１２は、入力側に接続されている画像パイプ４１への印刷データの書き込みが検知されると処理を開始する。まず、文書変換フィルタ３１２は、画像パイプ４１に対し印刷データの読み込みを要求する（Ｓ２８）。画像パイプ４１は、メモリ制御部５３を介してＨＤＤより印刷データを読み込み（Ｓ２９）、文書変換フィルタ３１２に出力する。文書変換フィルタ３１２は、当該印刷データを画像データ（ビットマップ）に変換し（Ｓ３０）、当該画像データを画像パイプ４１に出力する（Ｓ３１）。続いて、画像パイプ４１は、メモリ制御部５３を介して画像データをメモリに書き込む（Ｓ３２）。
【０２１８】
印刷フィルタ３２１は、入力側に接続されている画像パイプ４１への画像データの書き込みが検知されると処理を開始する。まず、印刷フィルタ３２１は、画像パイプ４１に対し画像データの読み込みを要求する（Ｓ３３）。画像パイプ４１は、メモリ制御部５３を介して画像データを読み込む（Ｓ３４）。印刷フィルタ３２１は、当該画像データの印刷をプロッタ制御部５２に指示する（Ｓ３５）。当該指示に応じてメモリ制御部５３からプロッタ制御部５２に画像データがＤＭＡ転送され、プロッタ制御部５２の制御のもと、プロッタ（印刷部）によって画像データが印刷される。
【０２１９】
なお、他の機能についても同様のシーケンスによって実現される。
【０２２０】
上述したように本実施の形態における複合機１によれば、各フィルタを部品として各機能を構築するため、機能のカスタマイズ又は拡張を簡便に行うことができる。すなわち、各フィルタ間には、機能的な依存関係はなく独立性が保たれているため、フィルタの新たな追加やフィルタの組み合わせの変更によって、新たな機能（アプリケーション）を容易に開発することができる。したがって、新たなアプリケーションの実装が要求された場合、当該アプリケーションの一部の処理について実装されていない場合は、当該一部の処理を実現するフィルタのみを開発し、インストールすればよい。よって、コントロール層２０及びアプリケーションロジック層３０より下位の層について、新たなアプリケーションの実装に応じて発生する修正の頻度を低下させることができ、安定したプラットフォームを提供することができる。
【０２２１】
また、フィルタ単位で実行条件の設定用のユーザインタフェースが実装されるため、或るフィルタを用いて実現されるアプリケーション間では、当該フィルタのユーザインタフェースを共通的に用いることができ、アプリケーションごとのユーザインタフェースの開発工数を削減することができる。
【０２２２】
本実施の形態では、図２６に示されるようなユーザインタフェースによって、ユーザに各フィルタを選択させる例を説明した。しかしながら、斯かるユーザインタフェースは、ユーザの要求に柔軟に対応できるという反面、コピーのように頻繁に利用する機能については、毎回フィルタの選択によって実行指示を行うのはユーザにとって煩雑である。
【０２２３】
かかる課題を解決するのが図１に示すアクティビティ３１である。すなわち、フィルタの組み合わせをアクティビティ３１として予め定義しておけば、ユーザが、アクティビティ３１を単位として実行対象を選択すると、選択されたアクティビティ３１は、当該アクティビティ３１に定義された組み合わせに係る各フィルタを自動的に実行するからである。したがって、操作の煩雑さを解消することができるとともに、アプリケーション単位で実行対象を選択していた従来のユーザインタフェースと同様の操作感を提供することができる。
【０２２４】
図３５は、アクティビティの構成要素を説明するための図である。図３５に示されるように、アクティビティ３１は、アクティビティＵＩ、アクティビティロジック、及び永続記憶領域情報等より構成される。
【０２２５】
アクティビティＵＩは、アクティビティ３１に関する画面（例えば、アクティビティ３１の実行条件等を設定させるための設定画面）をオペレーションパネル等に表示させるための情報又はプログラムである。
【０２２６】
アクティビティロジックは、アクティビティ３１の処理内容が実装されたプログラムである。基本的に、アクティビティロジックには、フィルタの組み合わせに関するロジック（例えば、フィルタの実行順、複数のフィルタに跨る設定、フィルタの接続変更、エラー処理等）が実装されている。
【０２２７】
永続記憶領域情報は、アクティビティ３１に対する設定情報（例えば、実行条件のデフォルト値）等、不揮発メモリに保存する必要があるデータのスキーマ定義が相当する。当該スキーマ定義は、アクティビティ３１のインストール時にデータ管理部４２に登録される。
【０２２８】
図３６は、アクティビティを利用させるための操作画面例を示す図である。図３６において、アクティビティ選択画面６００は、実行対象とするアクティビティを選択させるためにオペレーションパネル２０２のタッチパネル５１１に表示される画面である。アクティビティ選択画面６００には、複合機１にインストールされているアクティビティ３１ごとにボタンが表示される。図中では、コピーアクティビティ３１ｂに対応するコピーボタン６１０、プリンタアクティビティ３１ｂに対応するプリンタボタン６２０、マルチ文書アクティビティ３１ｃに対応するマルチ文書ボタン６３０が表示されている。
【０２２９】
なお、インストールされているアクティビティ３１の一覧情報は、記憶装置に記録されており、例えば、コントロール層２０によって管理されている。したがって、ローカルＵＩ部１２は、コントロール層２０に問い合わせることにより、アクティビティ３１の一覧情報を取得し、当該一覧情報に基づいて、アクティビティ選択画面６００の各ボタンを表示させる。
【０２３０】
アクティビティ選択画面６００において、コピーボタン６１０が選択（タッチ）されると、ローカルＵＩ部１２は、コピーアクティビティ３１ａのアクティビティＵＩを呼び出すことによりコピーアクティビティ３１ａの画面情報を取得し、当該画面情報に基づいてコピーアクティビティ画面６１１をタッチパネル５１１に表示させる。コピーアクティビティ画面６１１は、コピーアクティビティ３１ａの実行条件を設定させるための画面であり、図中では、コピーアクティビティ３１ａを構成する各フィルタの設定画面（読取フィルタ設定画面６１１ａ、文書加工フィルタ設定画面６１１ｂ、及び印刷フィルタ設定画面６１１ｃ）が表示された例が示されている。すなわち、各フィルタの実行条件を設定させることで、コピーアクティビティ３１ａの実行条件が設定されるからである。各フィルタの設定画面の画面情報は、コピーアクティビティ３１ａのアクティビティＵＩが、ローカルＵＩ部１２からの呼び出しに応じて各フィルタのフィルタ用設定ＵＩを呼び出すことにより取得され、コピーアクティビティ３１ａの画面情報に含められる（マージされる）。なお、単に、各フィルタの設定画面を並べるだけでなく、各フィルタに対して一括して設定を行うためのＵＩ（例えば、「両面→両面」ボタン、読み取りの設定（両面）ボタン、印刷の設定（両面）ボタン等）をコピーアクティビティ画面６１１に表示させるようにしてもよい。
【０２３１】
プリンタボタン６２０が選択されると、ローカルＵＩ部１２は、プリンタアクティビティ３１ｂのアクティビティＵＩを呼び出すことによりプリンタアクティビティ３１ｂの画面情報を取得し、当該画面情報に基づいてプリンタアクティビティ画面６２１をタッチパネル５１１に表示させる。プリンタアクティビティ画面６２１は、プリンタアクティビティ３１ｂの状態（印刷中等）を表示させる画面である。すなわち、後述されるように、プリンタアクティビティ３１ｂは、印刷データの受信に応じて起動されるものであり（すなわち、オペレーションパネル２０２上における操作によって起動されるものではない。）、基本的に設定画面は不要だからである。
【０２３２】
マルチ文書ボタン６３０が選択されると、ローカルＵＩ部１２は、マルチ文書アクティビティ３１ｃのアクティビティＵＩを呼び出すことによりマルチ文書アクティビティ３１ｃの画面情報を取得し、当該画面情報に基づいてマルチ文書アクティビティ画面６３１をタッチパネル５１１に表示させる。図中では、マルチ文書アクティビティ画面６３１として、図２６において説明した操作画面と同じ画面が表示される例が示されている。
【０２３３】
以下、本実施の形態において例示されている各アクティビティ３１の処理手順について説明する。図３７は、マルチ文書アクティビティの処理手順を説明するためのフローチャートである。なお、図３７のフローチャートは、図２４におけるものと同様である。但し、アクティビティとして実行される場合、実行主体が異なるステップが有るため、改めて説明する。
【０２３４】
図３６のアクティビティ選択画面６００においてマルチ文書ボタン６３０が選択され、マルチ文書アクティビティ画面６３１がタッチパネル５１１に表示されると、図３７の処理が開始される。
【０２３５】
マルチ文書アクティビティ画面６３１において、ユーザによって入力フィルタが選択され（Ｓ１２０１）、選択された入力フィルタの実行条件が設定される（Ｓ１２０２）。同様に、変換フィルタ又は出力フィルタについても選択が行われ（Ｓ１２０３）、フィルタ間の接続が指定され（Ｓ１２０４）、実行条件が設定される（Ｓ１２０５）。
【０２３６】
以上の設定において、選択された入力フィルタ、変換フィルタ、出力フィルタの情報（すなわち、どのフィルタが選択されたのか、また、どのフィルタとどのフィルタとが接続しているのかを示す情報）は、マルチ文書アクティビティ３１ｃのアクティビティロジックに保持される。また、各フィルタの実行条件は、各フィルタのフィルタロジックに保持される。すなわち、マルチ文書アクティビティ３１ｃのアクティビティロジックに保持される情報と、各フィルタのフィルタロジックに保持される情報とによって、フィルタの実行順と各フィルタの設定情報とを含む情報（図２７に示されるような情報）が階層的に保持される。
【０２３７】
フィルタの選択及び実行条件の設定が完了し、スタートボタン５１２が押下されると（Ｓ１２０６でＹＥＳ）、マルチ文書アクティビティ３１ｃのアクティビティロジックは、フィルタの実行順と各フィルタの設定情報とを含む情報をコントロール層２０に出力する。
【０２３８】
コントロール層２０は、フィルタの実行順と各フィルタの設定情報とを含む情報を受けて、選択された各フィルタ間をパイプによって接続する（Ｓ１２０７）。続いて、コントロール層２０は、各フィルタに対して並列的に実行要求を出力する（Ｓ１２０８）。以降は、図２５において説明した通りである。
【０２３９】
次に、図３８は、コピーアクティビティの処理手順を説明するためのフローチャートである。図３６のアクティビティ選択画面６００においてコピーボタン６１０が選択され、コピーアクティビティ画面６１１がタッチパネル５１１に表示されると、図３８の処理が開始される。
【０２４０】
まず、コピーアクティビティ３１ａのアクティビティロジックによって、読取フィルタ３０１、文書加工フィルタ３１１、及び印刷フィルタ３２１が実行対象のフィルタとして選択され、各フィルタに対する実行条件の設定の準備がなされる（Ｓ１３０１）。続いて、コピーアクティビティ画面６１１におけるユーザによる入力に応じて、各フィルタに対して実行条件が設定される（Ｓ１３０２）。当該実行条件は、各フィルタのフィルタロジックにおいて保持される。なお、コピーアクティビティ３１ａに対する実行条件の設定がなされる場合は、当該実行条件は、コピーアクティビティ３１ａのアクティビティロジックにおいて保持される。
【０２４１】
フィルタの実行条件の設定が完了し、スタートボタン５１２が押下されると（Ｓ１３０３でＹＥＳ）、コピーアクティビティ３１ａのアクティビティロジックは、読取フィルタ３０１、文書加工フィルタ３１１、及び印刷フィルタ３２１を構成要素とした、フィルタの実行順と各フィルタの設定情報とを含む情報（図２７に示されるような情報）をコントロール層２０に出力する。
【０２４２】
コントロール層２０は、フィルタの実行順と各フィルタの設定情報とを含む情報を受けて、各フィルタ間をパイプによって接続する（Ｓ１３０４）。続いて、コントロール層２０は、各フィルタに対して並列的に実行要求を出力する（Ｓ１３０５）。以降は、図２５において説明した通りである。
【０２４３】
次に、図３９は、プリンタアクティビティの処理手順を説明するためのフローチャートである。図３９の処理は、クライアントＰＣ等からの印刷データの受信に応じて通信サーバ部１１がプリンタアクティビティ３１ｃを起動することにより開始される。
【０２４４】
まず、プリンタアクティビティ３１ｂのアクティビティロジックによって、ＰＣ文書受信フィルタ３０５、文書変換フィルタ３１２、及び印刷フィルタ３２１が実行対象のフィルタとして選択され、各フィルタに対する実行条件の設定の準備がなされる（Ｓ１４０１）。続いて、プリンタアクティビティ３１ｂのアクティビティロジックは、通信サーバ部１１より受け取った通信ポート情報をＰＣ文書受信フィルタ３０５に設定する。また、プリンタアクティビティ３１ｂのアクティビティロジックは、通信サーバ部１１が印刷データのヘッダ部を解析することにより抽出した印刷の設定情報（用紙サイズ、両面印刷等）を受け取り、当該設定情報を印刷フィルタ３２１に設定する。なお、印刷データのヘッダ部の解析は、プリンタアクティビティ３１ｂ又はＰＣ文書受信フィルタ３０５が行うようにしてもよい。
【０２４５】
続いて、プリンタアクティビティ３１ｂのアクティビティロジックは、ＰＣ文書受信フィルタ３０５、文書変換フィルタ３１２、及び印刷フィルタ３２１を構成要素とした、フィルタの実行順と各フィルタの設定情報とを含む情報（図２７に示されるような情報）をコントロール層２０に出力する。コントロール層２０は、フィルタの実行順と各フィルタの設定情報とを含む情報を受けて、各フィルタ間をパイプによって接続する（Ｓ１４０３）。続いて、コントロール層２０は、各フィルタに対して並列的に実行要求を出力する（Ｓ１４０４）。以降は、図２５において説明した通りである。例えば、ＰＣ文書受信フィルタ３０５は、設定された通信ポート情報に係る通信ポートより印刷データを受信する。
【０２４６】
上述したように、本実施の形態における複合機１によれば、フィルタの組み合わせによって構成される機能をアクティビティとして予め定義しておくことにより、より簡便な操作で、フィルタの組み合わせによる機能を利用することができる。
【０２４７】
ところで、本実施の形態において、画像パイプ４１は、伝達手段の一例に相当する。また、ユーザインタフェース層１０は、フィルタ選択手段の一例に相当する。また、コントロール層２０は、フィルタ接続手段の一例に相当する。また、対応テーブル６０は、対応関係管理手段の一例に相当する。また、アクティビティ３１は、機能実行手段の一例に相当する。
【０２４８】
（ハードウェア構成例）
なお、以下に複合機１のハードウェア構成の一例を示す。図４０は、本発明の実施の形態における複合機のハードウェア構成の一例を示す図である。
【０２４９】
複合機１のハードウェアとしては、コントローラ２０１と、オペレーションパネル２０２と、ファクシミリコントロールユニット（ＦＣＵ）２０３と、撮像部１２１と、印刷部１２２が存在する。
【０２５０】
コントローラ２０１は、ＣＰＵ２１１、ＡＳＩＣ２１２、ＮＢ２２１、ＳＢ２２２、ＭＥＭ−Ｐ２３１、ＭＥＭ−Ｃ２３２、ＨＤＤ（ハードディスクドライブ）２３３、メモリカードスロット２３４、ＮＩＣ（ネットワークインタフェースコントローラ）２４１、ＵＳＢデバイス２４２、ＩＥＥＥ１３９４デバイス２４３、セントロニクスデバイス２４４により構成される。
【０２５１】
ＣＰＵ２１１は、種々の情報処理用のＩＣである。ＡＳＩＣ２１２は、種々の画像処理用のＩＣである。ＮＢ２２１は、コントローラ２０１のノースブリッジである。ＳＢ２２２は、コントローラ２０１のサウスブリッジである。ＭＥＭ−Ｐ２３１は、複合機１のシステムメモリである。ＭＥＭ−Ｃ２３２は、複合機１のローカルメモリである。ＨＤＤ２３３は、複合機１のストレージである。メモリカードスロット２３４は、メモリカード２３５をセットするためのスロットである。ＮＩＣ２４１は、ＭＡＣアドレスによるネットワーク通信用のコントローラである。ＵＳＢデバイス２４２は、ＵＳＢ規格の接続端子を提供するためのデバイスである。ＩＥＥＥ１３９４デバイス２４３は、ＩＥＥＥ１３９４規格の接続端子を提供するためのデバイスである。セントロニクスデバイス２４４は、セントロニクス仕様の接続端子を提供するためのデバイスである。オペレーションパネル２０２は、オペレータが複合機１に入力を行うためのハードウェア（操作部）であると共に、オペレータが複合機１から出力を得るためのハードウェア（表示部）である。
【０２５２】
なお、図１に示されるソフトウェアは、例えば、ＭＥＭ−Ｃ２３２に格納され、ＣＰＵ２１１によって処理されることによりその機能を複合機に実行させる。
【０２５３】
以上、実施形態に基づき本発明の説明を行ってきたが、上記実施形態にあげたその他の要素との組み合わせなど、ここで示した要件に本発明が限定されるものではない。これらの点に関しては、本発明の主旨をそこなわない範囲で変更することが可能であり、その応用形態に応じて適切に定めることができる。
【図面の簡単な説明】
【０２５４】
【図１】本発明の実施の形態における複合機のソフトウェア構成例を示す図である。
【図２】パイプ＆フィルタの概念を説明するための図である。
【図３】本実施の形態における画像処理装置の機能構成例を示す図である。
【図４】本実施の形態における画像処理装置の第１の動作例の説明図である。
【図５】動作例１に係る動作を示すフローチャートである。
【図６】本実施の形態における画像処理装置の第２の動作例の説明図である。
【図７】動作例２に係る動作を示すフローチャートである。
【図８】動作例２の第１の変形例に係る画像処理装置の説明図である。
【図９】動作例２の第２の変形例に係る画像処理装置の説明図である。
【図１０】動作例２の変形例２に係る動作を示すフローチャートである。
【図１１】本実施の形態における画像処理装置の第３の動作例の説明図である。
【図１２】動作例３に係る動作を示すフローチャートである。
【図１３】本実施の形態における画像処理装置の第４の動作例の説明図である。
【図１４】動作例４に係る動作を示すフローチャートである。
【図１５】動作例４の変形例に係る画像処理装置の説明図である。
【図１６】動作例４の変形例に係る動作を示すフローチャートである。
【図１７】本実施の形態における画像処理装置の第５の動作例の説明図である。
【図１８】動作例５に係る動作を示すフローチャートである。
【図１９】本実施の形態における画像処理装置の第６の動作例の説明図である。
【図２０】動作例６に係る動作を示すフローチャートである。
【図２１】動作例６に係る画像処理装置の設定を促すための画面表示例である。
【図２２】フィルタの構成要素を説明するための図である。
【図２３】本実施の形態の複合機における各機能を実現するためのフィルタの組み合わせの例を示す図である。
【図２４】複合機が一つの機能を実現する際の処理手順を説明するためのフローチャートである。
【図２５】複合機が一つの機能を実現する際の処理手順を説明するためのフローチャートである。
【図２６】オペレーションパネルにおけるフィルタの選択例を示す図である。
【図２７】ユーザインタフェース層からコントロール層へ通知される要求内容を概念的に示す図である。
【図２８】フィルタとパイプの対応テーブルの例を示す図である。
【図２９】コントロール層によって生成される情報を概念的に示す図である。
【図３０】パイプを介したフィルタ間のデータの伝達手段を説明するための図である。
【図３１】コピー機能を実現する際の処理手順を説明するための図である。
【図３２】コピー機能に係るフィルタ間がパイプによって接続された様子を概念的に示す図である。
【図３３】プリンタ機能を実現する際の処理手順を説明するための図である。
【図３４】プリンタ機能に係るフィルタ間がパイプによって接続された様子を概念的に示す図である。
【図３５】アクティビティの構成要素を説明するための図である。
【図３６】アクティビティを利用させるための操作画面例を示す図である。
【図３７】マルチ文書アクティビティの処理手順を説明するためのフローチャートである。
【図３８】コピーアクティビティの処理手順を説明するためのフローチャートである。
【図３９】プリンタアクティビティの処理手順を説明するためのフローチャートである。
【図４０】本発明の実施の形態における複合機のハードウェア構成の一例を示す図である。
【符号の説明】
【０２５５】
１  複合機
１１０  第一の処理手段
１１１  動作制御手段
１１２  情報取得要求手段
１１３  情報取得手段
１２０  第二の処理手段
１２１  取得要求受信手段
１２２  情報提供手段
１２３  情報取得要求手段
１２４  情報取得手段
１３０  第三の処理手段
１３１  取得要求受信手段
１３２  情報提供手段
１３３  情報取得要求手段
１３４  情報取得手段
３０１  読取フィルタ
３１１  文書加工フィルタ
３１３  マーキング埋込フィルタ
３２１  印刷フィルタ
３２２  保管文書登録フィルタ
３２４  ファクス送信フィルタ
【図１】
0004895928.tif 000002
【図２】
0004895928.tif 000003
【図３】
0004895928.tif 000004
【図４】
0004895928.tif 000005
【図５】
0004895928.tif 000006
【図６】
0004895928.tif 000007
【図７】
0004895928.tif 000008
【図８】
0004895928.tif 000009
【図９】
0004895928.tif 000010
【図１０】
0004895928.tif 000011
【図１１】
0004895928.tif 000012
【図１２】
0004895928.tif 000013
【図１３】
0004895928.tif 000014
【図１４】
0004895928.tif 000015
【図１５】
0004895928.tif 000016
【図１６】
0004895928.tif 000017
【図１７】
0004895928.tif 000018
【図１８】
0004895928.tif 000019
【図１９】
0004895928.tif 000020
【図２０】
0004895928.tif 000021
【図２１】
0004895928.tif 000022
【図２２】
0004895928.tif 000023
【図２３】
0004895928.tif 000024
【図２４】
0004895928.tif 000025
【図２５】
0004895928.tif 000026
【図２６】
0004895928.tif 000027
【図２７】
0004895928.tif 000028
【図２８】
0004895928.tif 000029
【図２９】
0004895928.tif 000030
【図３０】
0004895928.tif 000031
【図３１】
0004895928.tif 000032
【図３２】
0004895928.tif 000033
【図３３】
0004895928.tif 000034
【図３４】
0004895928.tif 000035
【図３５】
0004895928.tif 000036
【図３６】
0004895928.tif 000037
【図３７】
0004895928.tif 000038
【図３８】
0004895928.tif 000039
【図３９】
0004895928.tif 000040
【図４０】
0004895928.tif 000041