本発明では、パイプ&フィルタと呼ばれる考え方に基づくソフトウェアアーキテクチャを画像処理装置に適用することで、機能のカスタマイズ又は拡張などを簡略化する。さらに本発明では、小容量の半導体メモリを効率的に使用することで、生産性の低下を防止できる。
以下に、本発明の実施形態の説明に先立ち、本発明の画像処理装置に適用されたパイプ&フィルタの概念について説明する。図1は、パイプ&フィルタの概念を説明する図である。図1に示す「P」はパイプを示し、「F」はフィルタを示す。
フィルタとは、入力された画像データに対して所定の処理を施して、その処理結果を出力するプログラムである。そしてパイプは、フィルタとフィルタを連結する手段であり、パイプの入力側に連結されたフィルタから出力される処理結果を一時的に保持し、その後パイプの出力側へ連結されたフィルタへ画像データを伝達する。このように、パイプ&フィルタの概念によれば、パイプを介在させてフィルタにおける処理を連続したものとすることができる。
本発明では、フィルタにおいて施される所定の処理を、入力された画像データに対し、所定の変換を施す処理と考える。すなわち、本発明の画像処理装置では、画像処理装置で実現される各機能をドキュメント(入力画像データ)に対する「変換処理」の連続として捉える。画像処理装置の各機能は、ドキュメントすなわち画像データの入力、加工及び出力によって構成されるものと考える。そこで、以下の実施形態の説明では「入力処理」、「加工処理」及び「出力処理」のそれぞれを「変換処理」として捉え、一つの変換処理を実現するソフトウェア部品をフィルタとして構成した。
本発明では、画像データの入力処理を制御するフィルタを入力フィルタ、画像データの加工処理を制御するフィルタを加工フィルタ、画像データの出力処理を制御するフィルタを出力フィルタとした。これらの各フィルタはそれぞれ独立したプログラムであって、フィルタ間の依存関係は存在しない。よって、各フィルタは、画像処理装置において独立してフィルタ単位で追加(インストール)、削除(アンインストール)することが可能である。
図2は、パイプ&フィルタの概念が適用された画像処理装置の一例のハードウェア構成図である。画像処理装置100は、それぞれバスBで相互に接続されているスキャン装置11、プロッタ装置12、ドライブ装置13、補助記憶装置14、メモリ装置15、演算処理装置16、インターフェース装置17、操作装置18で構成される。
スキャン装置11はスキャナエンジンなどで構成され、原稿を読み取って画像データとするために用いられる。プロッタ装置12はプロッタエンジンなどで構成され、画像データを印刷するために用いられる。インターフェース装置17は、モデム、LANカードなどで構成されており、後述のネットワーク200に接続する為に用いられる。
本発明の画像処理プログラムは、画像処理装置100を制御する各種プログラムの少なくとも一部である。画像処理プログラムは例えば記録媒体19の配布やネットワーク200からのダウンロードなどによって提供される。画像処理プログラムを記録した記録媒体19は、CD−ROM、フレキシブルディスク、光磁気ディスク等の様に情報を光学的、電気的或いは磁気的に記録する記録媒体、ROM、フラッシュメモリ等の様に情報を電気的に記録する半導体メモリ等、様々なタイプの記録媒体を用いることができる。
また、画像処理プログラムを記録した記録媒体19がドライブ装置13にセットされると、画像処理プログラムは記録媒体19からドライブ装置13を介して補助記憶装置14にインストールされる。ネットワーク200からダウンロードされた画像処理プログラムは、インターフェース装置17を介して補助記憶装置14にインストールされる。
画像処理装置100は、インストールされた画像処理プログラムを格納すると共に、必要なファイル、画像データ等を格納する。メモリ装置15は、コンピュータの起動時に補助記憶装置14から画像処理プログラムを読み出して格納する。そして、演算処理装置16はメモリ装置15に格納された画像処理プログラムに従って、後述するような各種処理を実現している。
(第一の実施形態)
図3は、本発明の第一の実施形態の画像処理装置100のソフトウェア構成を示す構成図である。画像処理装置100は、例えばプリンタ、コピー、スキャナ、又はFAX等の複数の機能を一台の筐体において実現する複合機である。
画像処理装置100の機能を実現するソフトウェアは階層構造となっており、ユーザインターフェイス層110、コントロール層120、アプリケーションロジック層130、デバイスサービス層140及びデバイス層150により構成されている。これらの各層における上下関係は、層間の呼び出し関係に基づいている。すなわち、図中において上位層が下位層を呼び出す。
画像処理装置100において、ユーザインターフェイス層110によりユーザから各種機能の実行指示が成されると、ユーザインターフェイス層110は、コントロール層120を呼び出しこの実行指示に基づきアプリケーションロジック層130を制御する。アプリケーションロジック層130では、コントロール層120からの指示に基づき要求された機能を実現させるアプリケーションを実行する。そして、この実行結果に基づきデバイスサービス層140、デバイス層150が画像処理装置100のハードウェア資源を制御する。画像処理装置100では、このような動作によりユーザインターフェイス層110が受け付けた機能に対応した出力結果を得る。
以下に各層について説明する。
ユーザインターフェイス層110には、例えばローカルUI(user interface)部111が実装されており、画像処理装置100の各種機能を実現するための実行指示を受け付ける機能を有する。ここで言う各種機能とは、例えばコピー機能、印刷機能、スキャン機能、FAX機能などである。ローカルUI部111は、例えば画像処理装置100の操作装置18に設けられていても良い。この操作装置18は、例えば表示領域を備えるオペレーションパネルなどにより実現されても良い。ユーザインターフェイス層110において、ローカルUI部111で受け付けられた実行指示は、コントロール層120へ伝達される。
コントロール層120では、画像処理装置100の各機能を実現する処理を制御するための機能が実装されている。具体的には、要求された機能に応じてアプリケーションロジック層130における各フィルタの実行を制御する。尚、以下の本実施形態において述べる画像処理装置100の機能とは、画像処理装置100がユーザに対して提供する一つのまとまった単位(要求が入力されて最終的な出力が得られるまで)のサービスの定義であり、ソフトウェア的には一つのまとまった単位のサービスを提供するアプリケーションと同義である。
アプリケーションロジック層130には、画像処理装置100において提供される機能の一部を実現する部品群である各種フィルタが実装されている。アプリケーションロジック層130では、コントロール層120の制御により、複数のフィルタを組み合わせて一つの機能が実現される。本実施形態におけるアプリケーションロジック層130には、入力フィルタ131、加工フィルタ132、出力フィルタ133及びアクティビティ134が実装されている。アプリケーションロジック層130に実装された各フィルタは、各フィルタ毎に決められた定義に基づき動作するものであり、この定義に基づき制御される。これら各フィルタの詳細は後述する。アクティビティ134は、ユーザインターフェイス層110において要求された機能に応じて各フィルタを接続し、各フィルタの実行をとりまとめるコンポーネントである。
デバイスサービス層140には、アプリケーションロジック層130に実装された各フィルタが共通して利用する下位の機能が実装されている。本実施形態のデバイスサービス層140には画像パイプ141が実装されている。画像パイプ141は上で述べたパイプの機能を実現するものであり、アプリケーションロジック層130に実装されている各フィルタのうち、一のフィルタからの出力結果を、一のフィルタへ伝達する。ここで画像パイプ141は、例えば入力フィルタ131と加工フィルタ132とを接続しても良いし、加工フィルタ132と出力フィルタ133とを接続しても良い。
デバイス層150には、ハードウェアを制御するプログラムであるドライバが実装されている。本実施形態のデバイス層150には、例えばスキャナ部151、プロッタ部152等が実装されている。これらの各制御部は、それぞれの名称に付けられたデバイスを制御するものである。
以下に、アプリケーションロジック層130に実装された各フィルタについてさらに説明する。
本実施形態の入力フィルタ131は、画像処理装置100の外部より入力された画像データに対する入力処理を制御する。入力フィルタ131には、例えば読取フィルタ、メール受信フィルタ、FAX受信フィルタ、PC文書受信フィルタ等が含まれる(図示せず)。読取フィルタは、例えばスキャナによる画像データの読取を制御し、読み取られた画像データを出力する。メール受信フィルタは、画像処理装置100において電子メールを受信し、受信した電子メールに含まれる画像データを出力する。FAX受信フィルタはFAX受信を制御し、受信された画像データを出力する。PC文書受信フィルタは、図示しないクライアントPCなどから印刷画像データを受信し、この印刷画像データを出力する。レポートフィルタ306は、画像処理装置100の設定情報や履歴情報などを例えば表形式などに整え、この整えられた画像データを出力する。
本実施形態の加工フィルタ132は、加工フィルタ132の入力側のフィルタより入力された画像データに所定の加工処理を施し、加工フィルタ132の出力側にあるフィルタへ処理結果を出力する。ここで言う加工処理とは、例えば入力された画像データの集約、拡大、縮小、回転処理等である。
本実施形態の出力フィルタ133は、入力された画像データ対する出力処理を制御し、画像処理装置100の外部へ出力する。出力フィルタ133には、印刷フィルタ、プレビューフィルタ、メール送信フィルタ、FAX送信フィルタ、PC文書送信フィルタ、文書登録フィルタ等が含まれる。
印刷フィルタは、入力された画像データをプロッタ部152に出力(印刷)させる。プレビューフィルタは、入力された画像データを画像処理装置100の操作装置18などにプレビュー表示させる。またメール送信フィルタは、画像データを電子メールに添付して送信する。またFAX送信フィルタは、入力された画像データをFAX送信する。PC文書送信フィルタは、入力された画像データを図示しないクライアントPCなどに送信する。文書登録フィルタは、入力された画像データを補助記憶装置14等に出力して蓄積する。
本実施形態のアクティビティ134には、ユーザインターフェイス層110においてローカルUI部111から入力された指示がコントロール層120を介して伝達される。アクティビティ134は、この指示にしたがって、入力フィルタ131、加工フィルタ132、出力フィルタ133におけるジョブの実行を制御する。
アプリケーションロジック層130では、上記各フィルタを組み合わせることにより、画像処理装置100の各機能を実現している。係る構成によれば、画像処理装置100では、フィルタとパイプの組み合わせにより各種の機能を実現することができる。具体的には、例えばコピー機能を実現したい場合には、入力フィルタ131に含まれる読取フィルタ、加工フィルタ132、出力フィルタ133に含まれる印刷フィルタを組み合わせれば良い。
以下に、本実施形態の画像処理装置100における印刷処理について説明する。図4は、第一の実施形態の画像処理装置100における印刷処理を説明する図である。
本実施形態の画像処理装置100においてコントロール層120は、アクティビティ134に対し、各フィルタでの処理に係る処理の実行を制御させるジョブを生成させる(S31)。本実施形態の画像処理装置100では、例えば画像処理装置100の電源が投入されたときに、このアクティビティ134に対するジョブを生成しても良い。
ローカルUI部111により印刷処理の実行要求がなされると、ローカルUI部111は、この要求をコントロール層120へ伝達する(S32)。尚図4に示す例では、印刷処理の一つであるコピー処理が選択されたものとして説明する。この場合、ローカルUI部111では、紙原稿の読取及び印刷を指示する操作がなされる。
アクティビティ134は、紙原稿の読取及び印刷指示を受けると、読取フィルタ131a、加工フィルタ132、印刷フィルタ133aとを画像パイプにより接続する。尚このとき、実際には読取フィルタ131aに含まれる読取フィルタが加工フィルタ132に接続される。次にコントロール層120は、読取フィルタ131aにより実行されるジョブ(S33)、加工フィルタ132により実行されるジョブ(S34)、印刷フィルタ133aにより実行されるジョブを生成する(S35)。
コントロール層120により各フィルタにおいて実行されるジョブが生成されると、アクティビティ134は、各フィルタに対しジョブの実行を指示する。すると、読取フィルタ131aにより、入力部であるスキャナ部151から紙原稿を読取る処理が実行され、紙原稿が画像データとして読み込まれる。この画像データが読取フィルタ131aから出力されて、画像パイプ141を介して加工フィルタ132へ伝達される。
加工フィルタ132では、この画像データに予め設定された所定の加工処理を施し、加工された画像データとして出力する。加工された画像データは、次に出力フィルタ133の一つである印刷フィルタ133aへ伝達される。印刷フィルタ133aでは、この加工された画像データを出力部であるプロッタ部152から出力させて、コピー処理を実現する。
このように本実施形態では、入力フィルタ131、加工フィルタ132、出力フィルタ133は、それぞれが独立して制御されており、各フィルタ間に依存関係が存在しない。このため本実施形態では、機能のカスタマイズ又は拡張などを行う場合には、該当するフィルタ毎にカスタマイズ等を行えば良い。よって本実施形態によれば、機能のカスタマイズ又は拡張などを簡略化させることができる。
(第二の実施形態)
以下に図面を参照した本発明の第二の実施形態について説明する。本発明の第二の実施形態は、第一の実施形態をさらに改良したものであり、後述する画像データの多出力を行うものである。以下の第二の実施形態の説明において、第一の実施形態と同様の機能構成を有するものには、第一の実施形態の説明で用いた符号と同様の符号を付与し、その説明を省略する。
図5を参照して本実施形態の多出力について説明する。図5は、入力フィルタと出力フィルタとの組み合わせの例を説明する図である。図5に示す例では、入力フィルタ131に含まれる読取フィルタ131aにより読み取られたデータを、出力フィルタ133に含まれる印刷フィルタ、文書登録フィルタ、メール送信フィルタ、FAX送信フィルタの4つの出力フィルタを用いて4種類の出力データとして出力する。
このように、一の入力フィルタ131から入力されたデータを複数の出力フィルタ133から出力することを多出力と呼ぶ。画像データの多出力は、本発明の画像処理装置のように、パイプ&フィルタの概念を適用した画像処理装置においては比較的容易に実現できる。近年ではさらに、画像データの多出力において、各出力経路毎の画像データの加工条件などを独立して設定可能な画像処理装置が望まれている。
そこで本実施形態の画像処理装置では、多出力の実現に加え、多出力における出力別に独立して画像データの加工設定を行うことを可能にした。以下に本実施形態の画像処理装置について説明する。
図6は、第二の実施形態の画像処理装置100Aのソフトウェア構成を示す図である。
画像処理装置100Aの機能を実現するソフトウェアは階層構造となっており、ユーザインターフェイス層(以下、UI層)110A、アクティビティ層120A、フィルタ層130Aを有する。また本実施形態の画像処理装置100Aは、各層に共通した機能を有するプラグイン管理150Aを有する。これらの各層における上下関係は、層間の呼び出し関係に基づいている。すなわち、図中において上位層が下位層を呼び出す。
ここで各層の説明に先立ち、図7を参照して本実施形態の画像処理装置100Aの有する各フィルタの構成について説明する。
図7は、第二の実施形態の画像処理装置100Aの有するフィルタ及びアクティビティの構成を説明する図である。本実施形態の画像処理装置100Aは、入力フィルタ、加工フィルタ、出力フィルタ、アクティビティを有する。本実施形態の各フィルタ及びアクティビティは、図7に示すように、各種設定が行われる設定用UIと、ジョブの実行を制御するロジック部とから構成される。
図6に戻って、本実施形態の画像処理装置100Aの有する各層について説明する。
本実施形態のUI層110Aは、操作部デバイス111Aと、各フィルタの設定用UI及びアクティビティの設定用UIを有する。操作部デバイス111Aは、操作装置18を制御する。各フィルタの設定用UIは、各フィルタにおける設定を行う。
尚図6に示す例では、入力フィルタ131として、入力フィルタに含まれる読取フィルタ131a、加工フィルタ132a、加工フィルタ132b、出力フィルタ133に含まれる印刷フィルタ133a、文書登録フィルタ133bが示されている。よってUI層110Aには、読取フィルタ131aの設定用UIである読出UI131aa、加工フィルタ132a、加工フィルタ132bの設定用UIである加工UI132aa、加工UI132ba、印刷フィルタ133aの設定用UIである印刷UI133aa、文書登録フィルタ133bの設定用UIである文書登録UI133baが配置される。またUI層110Aには、アクティビティ134Aの設定用UIであるアクティビティUI134Aaが配置されている。
本実施形態のアクティビティ層120Aには、アクティビティ134Aのロジック部であるアクティビティロジック部134Abが配置されている。本実施形態のアクティビティロジック部134Abは、アクティビティ層120Aの下層のフィルタ層130Aにある各フィルタのロジック部の動作制御を行う。
本実施形態のフィルタ層130Aは、各フィルタのロジック部が配置されている。各フィルタのロジック部とは、読取フィルタ131aのロジック部である読出ロジック部131ab、加工フィルタ132a、加工フィルタ132bのロジック部である加工ロジック部132ab、加工ロジック部132bb、印刷フィルタ133aのロジック部である印刷ロジック部133ab、文書登録フィルタ133bのロジック部である文書登録ロジック部133bbが配置される。
プラグイン管理150Aは、画像処理装置100Aへのプラグイン(フィルタ)を管理する。例えば画像処理装置100Aにおけるフィルタのアンインストール及びインストールの管理を行う。
次に図8を参照して本実施形態の画像処理装置100Aにおける多出力について説明する。図8は、第二の実施形態の画像処理装置100Aにおける多出力を説明する図である。
本実施形態の画像処理装置100Aでは、操作装置18に表示される操作画面18Aにおいて、複数の出力機能を選択することにより、画像データの多出力が実現される。
図8(A)は、操作装置18に表示された操作画面の一例を示す図である。図8(A)に示す操作画面18Aでは、入力機能と出力機能を選択することができる。操作画面18Aにおいて、入力機能として例えばスキャン装置11による画像データの読取が選択され、読み取った画像データの出力機能としてプロッタ装置12からの画像データの印刷と、画像データの蓄積する文書登録の2つの機能が選択された場合を示している。よってここでは、入力フィルタ131に読取フィルタ131a、出力フィルタ133に印刷フィルタ133a、文書登録フィルタ133bが選択されたことになる。
本実施形態において一の入力フィルタに対して複数の出力フィルタが選択された場合、各フィルタは図8(B)に示すように接続される。この接続により画像データの多出力が実現可能となる。図8(B)は、多出力におけるフィルタの接続を示す図である。本実施形態では、出力フィルタが複数選択されると、選択された出力フィルタと入力フィルタとの間にそれぞれ加工フィルタが接続される。図8(B)では、読取フィルタ131aと印刷フィルタ133aとの間に加工フィルタ132aが接続され、読取フィルタ131aと文書登録フィルタ133bとの間に加工フィルタ132bが接続されている。読取フィルタ131aで読み取られた画像データは、加工フィルタ132a、132bそれぞれに読み出され、印刷フィルタ133aと文書登録フィルタ133bへ伝達される。
本実施形態では、このようにして画像データの多出力を実現する。また本実施形態では、多出力の際に、各出力フィルタ133に対応して各加工フィルタ132毎に加工の設定を行うことができる。よって本実施形態では、多出力の際にも画像データの出力に応じて設定を変更することができる。
以下に図9を参照して本実施形態の画像処理装置100Aの動作を説明する。図9は、第二の実施形態の画像処理装置100Aの動作を説明する第一のシーケンス図である。
まず始めに、画像処理装置100Aにおいて、各出力毎の設定を行う設定画面を操作装置18に表示させる動作を説明する。
画像処理装置100Aにおいて、操作装置18で設定画面の表示指示が成されると、操作部デバイス111Aは、アクティビティロジック部134Abへ画面生成指示を行う(S901)。アクティビティロジック部134Abは、画面生成指示を受けると、読取ロジック部131abに対し、読取フィルタ131aにおける初期設定を設定する(S902)。読取ロジック部131abは、初期設定がされたことをアクティビティロジック部134Abへ通知する(S903)。
アクティビティロジック部134Abは、同様にして各フィルタのロジック部へ初期設定を行う。すなわちアクティビティロジック部134Abは、加工ロジック部132abに加工フィルタ132aにおける初期設定を設定する(S904)。加工ロジック部132abは、設定がなされたことをアクティビティロジック部134Abへ通知する(S905)。アクティビティロジック部134Abは、加工ロジック部132bbに加工フィルタ132bにおける初期設定を設定する(S906)。加工ロジック部132bbは、設定がなされたことをアクティビティロジック部134Abへ通知する(S907)。
またアクティビティロジック部134Abは、印刷ロジック部133abに印刷フィルタ133aにおける初期設定を設定する(S908)。印刷ロジック部133abは、設定がなされたことをアクティビティロジック部134Abへ通知する(S909)。アクティビティロジック部134Abは、文書登録ロジック部133bbに文書登録フィルタ133bにおける初期設定を設定する(S910)。文書登録ロジック部133bbは、設定がなされたことをアクティビティロジック部134Abへ通知する(S911)。
アクティビティロジック部134Abは、各フィルタにおいて初期設定がなされると、その旨を操作部デバイス111Aへ通知する(S912)。操作部デバイス111Aは、この通知を受けて、アクティビティUI134Aaに画面の表示指示を行う(S913)。また操作部デバイス111Aは、各フィルタの設定用UIに画面の表示指示を行う。操作部デバイス111Aは、読取UI131aaに表示指示を行う(S914)。同様に操作部デバイス111Aは、加工UI132aa、加工UI132baに表示指示を行う(S915、S916)。また操作部デバイス111Aは、印刷UI133aa、文書登録UI133baに表示指示を行う(S917、S918)。
このようにして画像処理装置100Aでは操作装置18に各出力毎の設定画面を表示させる。
次に本実施形態の画像処理装置100Aにおける出力毎に対応した加工設定について説明する。図9に示す例では、加工フィルタ132aに設定された加工設定は、加工フィルタ132bにも反映されるものとした。
画像処理装置100Aにおいて、操作装置18で加工フィルタ132aの加工条件の設定指示がなされると、操作部デバイス111Aはこの設定指示を加工UI132aaに伝達する(S919)。ここでは加工フィルタ132aにおいて機能Aを実行する条件が設定されたものとした。加工UI132aaは、この指示を受けて加工ロジック部132abへ機能Aを実行する条件を設定する(S920)。加工ロジック部132abは、機能Aの条件を設定したことをアクティビティロジック部134Abに通知する(S921)。
アクティビティロジック部134Abはこの通知を受けて、加工ロジック部132bbに機能Aを実行する条件の設定を行う(S922)。加工ロジック部132bbは、設定が変更されたことをアクティビティロジック部134Abへ通知する(S923)。
次に本実施形態の画像処理装置100Aにおれるジョブの生成について説明する。本実施形態の画像処理装置100Aでは、処理の実行指示がなされると、指示された処理内容に基づき各フィルタで実行されるジョブを生成する。
画像処理装置100Aにおいて、処理の実行指示が成されると(S924)、アクティビティロジック部134Abは処理内容に合わせて生成するジョブを判断する(S925)。次にアクティビティロジック部134Abは、各フィルタのロジック部に実行させるジョブを生成する。
アクティビティロジック部134Abは、読取ロジック部131abのジョブを生成する(S926)。アクティビティロジック部134Abは、加工ロジック部132ab、加工ロジック部132bbのジョブを生成する(S927、S928)。またアクティビティロジック部134Abは、印刷ロジック部133ab、文書登録ロジック部133bbのジョブを生成する(S929、S930)。
次に図10を参照して本実施形態の画像処理装置100Aに動作をさらに説明する。図10は、第二の実施形態の画像処理装置100Aの動作を説明する第二のシーケンス図である。
まず画像処理装置100Aにおける各フィルタの接続について説明する。本実施形態の画像処理装置100Aにおいて、アクティビティロジック部134Abは、生成された各フィルタのジョブ同士の関係に基づき各フィルタの関連付けを行う(S1001)。そしてアクティビティロジック部134Abは、加工ロジック部132ab、加工ロジック部132bbを読取フィルタ131aへ接続させる(S1002、S1003)。
次にアクティビティロジック部134Abは、加工ロジック部132abと印刷ロジック部133abとを接続させる(S1004)。そしてアクティビティロジック部134Abは、加工ロジック部132bbと文書登録ロジック部133bbとを接続させる(S1005)。
本実施形態では、以上のようにして各フィルタの接続を行う。
次に本実施形態の画像処理装置100Aにおけるジョブの実行について説明する。本実施形態の画像処理装置100Aにおいて、処理の実行指示がなされると、アクティビティロジック部134Abは各フィルタに対しジョブの実行を指示する。
まずアクティビティロジック部134Abは、各フィルタが接続されたことをアクティビティUI134Aaに通知する(S1006)。そしてアクティビティロジック部134Abは、読取ロジック部131abにジョブの実行を指示する(S1007)。読取ロジック部131abは、ジョブの実行し、処理の進捗を読取UI131Aaに通知する(S1008)。
次にアクティビティロジック部134Abは、加工ロジック部132abにジョブの実行を指示する(S1009)。加工ロジック部132abは、指示を受けてジョブを実行し、処理の進捗を加工UI132aaに通知する(S1010)。またアクティビティロジック部134Abは、加工ロジック部132bbにジョブの実行を指示する(S1011)。加工ロジック部132bbはジョブを実行し、処理の進捗を加工UI132baに通知する(S1012)。
アクティビティロジック部134Abは、印刷ロジック部133abにジョブの実行を指示する(S1013)。印刷ロジック部133abは、指示を受けてジョブを実行し、処理の進捗を印刷UI133aaに通知する(S1014)。またアクティビティロジック部134Abは、文書登録ロジック部132bbにジョブの実行を指示する(S1015)。文書登録ロジック部133bbはジョブを実行し、処理の進捗を文書登録UI133baに通知する(S1016)。
全てのフィルタにジョブの実行指示がなされると、印刷ロジック部133abは、加工ロジック部132abに画像データを要求する(S1017)。加工ロジック部132abは要求を受けて、読取ロジック部131abへ画像データを要求する(S1018)。読取ロジック部131abは、この要求を受けて画像データの読取を実行する(S1019)。
読取ロジック部131abは、画像データを読み取ると、処理の進捗を読取UI131aaとアクティビティロジック部134Abに通知する(S1020、S1021)。そして読取ロジック部131abは読み取った画像データを加工ロジック部132abへ出力する(S1022)。
加工ロジック部132abは、画像データを受けて画像データに画像処理を施す(S1023)尚この画像処理は、加工フィルタ132aにおいて設定された加工条件の設定に基づき行われる。ここでは加工フィルタ132aに設定された加工条件は、機能Aを実行させる加工条件であるから(図9、S920参照)、加工ロジック部132abはこの加工条件に基づき画像処理を実行する。
そして加工ロジック部132abは、処理の進捗を加工UI132aaとアクティビティロジック部134Abに通知する(S1024、S1025)。加工ロジック部132abは、画像処理済みの画像データを印刷ロジック部133abへ出力する(S1026)。
印刷ロジック部133abは、画像データを受けて、画像データの印刷処理を実行する(S1027)。印刷ロジック部133abは、処理の進捗を印刷UI133aaとアクティビティロジック部134Abに通知する(S1028、S1029)。
次に文書登録ロジック部133bbは、加工ロジック部132bbに、画像データを要求する(S1030)。加工ロジック部132bbは、画像データの要求を受けて、読取ロジック部131abへ画像データを要求する(S1031)。読取ロジック部131abは、S1019で読み取った画像データを加工ロジック部132bbへ出力する(S1032)。
加工ロジック部132bbは、画像データを受けて、画像データに画像処理を施す(S1033)。尚この画像処理は、加工フィルタ132bにおいて設定された加工条件の設定に基づき行われる。ここでは加工フィルタ132bに設定された加工条件は、加工フィルタ132aに設定された加工条件と同様に、機能Aを実行させる加工条件であるから、加工ロジック部132bbはこの加工条件に基づき画像処理を実行する。尚加工ロジック部132bbは、加工フィルタ132bに設定された加工条件が機能Aとは別の機能を実現する条件であった場合には、別の機能を実現する条件に基づき画像処理を行うことができる。
そして加工ロジック部132bbは、加工UI132baとアクティビティロジック部134Abへ処理の進捗を通知する(S1034、S1035)。加工ロジック部132bbは、画像処理済みの画像データを文書登録ロジック部133bbへ出力する(S1036)。
文書登録ロジック部133bbは、画像データを受けて画像データの蓄積処理を実行する(S1037)。そして文書登録ロジック部133bbは、文書登録UI133baとアクティビティロジック部134Abへ処理の進捗を通知する(S1038、S1039)。アクティビティロジック部134Abは、アクティビティUI134Aaへ処理の進捗を通知する(S1040)。
本実施形態の画像処理装置100Aでは、以上のようにして多出力を実現するため、複数の出力フィルタ133毎に画像データの加工条件を独立して設定することができる。よって本実施形態の画像処理装置100Aでは、各出力毎に画像データの加工設定を変更することができる。
以下に、本実施形態の画像処理装置100Aにおける各出力毎の画像データの加工設定についてさらに説明する。
図11は、第二の実施形態の画像処理装置100Aにおける設定画面の第一の例を示す図である。
本実施形態の画像処理装置100Aでは、操作装置18に図11に示すような設定画面が表示される。
画像処理装置100Aにおいて、操作装置18には、複数の出力フィルタ133が選択されると、図11(A)に示す画面11Aが表示される。画面11Aは、出力フィルタ133として印刷フィルタ133aと文書登録フィルタ133bが選択された場合を示している。画面11Aは、画面Aにおいて条件を設定したい出力フィルタが選択されると、各出力に対応した条件の画面11Bまたは画面11Cに遷移する。
例えば画面11Aにおいて「印刷」が選択された場合、画面11Aは画面11Bへ遷移する。画面11Bでは、画像データが印刷フィルタ133aから出力されるまでに経由する各フィルタの設定を行うことができる。例えば入力フィルタ131である読取フィルタ131aにおける読取条件の設定、加工フィルタ132aにおける加工条件の設定、印刷フィルタ133aにおける印刷条件の設定を行うことができる。尚読取条件とは、例えば原稿を読み取る際の解像度の設定等であり、加工条件とは例えば集約、カラー印刷等の設定であり、印刷条件とは例えば印刷部数、両面印刷等の設定である。
また例えば画面11Aで「文書登録」が選択された場合、画面11Aは画面11Cへ遷移する。画面11Cでは、画像データが文書登録フィルタ133bから出力されるまでに経由する各フィルタの設定を行うことができる。尚図11で示す例では、入力フィルタ131aは両者共に読取フィルタ131aである。よって画面11Cでは、文書登録フィルタ133bに接続された加工フィルタ132bにおける加工条件の設定と、文書登録フィルタ133bにおける文書登録条件の設定を行うことができる。尚文書登録条件とは、例えば登録する画像データのファイル名、画像データの登録先等の設定である。
本実施形態では、画面11Aにおいて一方の出力フィルタ133が選択されると、選択された出力フィルタ133に対応した設定を行う画面に遷移し、設定が完了した後に再度画面11Aに戻るものとした。よって画面11Aにおいて「印刷」が選択された場合、画面11Aは画面11Bに遷移し、画面11Bで設定が終了すると画面11Aに戻る。そして画面11Aで「文書登録」が選択されると画面11Aは画面11Cへ遷移する。画面11Cで設定が完了すると画面11Aへ戻るものとした。
このように本実施形態の画像処理装置100Aでは、各出力経路毎に独立した設定で画像データを出力することができる。
また本実施形態の画像処理装置100Aでは、画面11Aにおいて一方の出力フィルタ133が選択されて、選択された出力フィルタ133に対応した設定が行われたとき、この設定が他の出力フィルタ133に対応する設定とされても良い。
図12は、第二の実施形態の画像処理装置100Aにおける設定画面の第二の例を示す図である。操作装置18に表示された画面11Aにおいて「印刷」が選択されると、設定画面は画面11Aから画面11Bへ遷移する。画面11Bにおいて、加工条件として機能Aが設定されると、画面11Bは機能Aが設定されたことを示す画面12Aへ遷移する。
本実施形態の画像処理装置100Aでは、画面11Bで「印刷」に対応する加工条件として設定された機能Aをそのまま「文書登録」に対応する加工条件として設定することができる。画面12Bは、「文書登録」が選択された場合の設定画面において、画面11Bで設定された機能Aが設定された状態を示す。
また本実施形態の画像処理装置100Aでは、操作装置18に表示される設定画面が画面11Bから画面12Aに遷移した後に、図13に示す画面13Aが表示されても良い。図13は、第二の実施形態の画像処理装置100Aにおける設定画面の第三の例を示す図である。画像処理装置100Aでは、画面12Aで機能Aが設定された後に、機能Aを文書登録の条件として設定するか否かを問う画面13Aが表示される。画面13Aで機能Aを設定する選択がなされると、「文書登録」においても機能Aが設定されて画面13Aから画面12Bへ遷移する。
このように本実施形態では、複数の出力において同一の設定を行う場合に、この設定を共有することにより、設定条件が重複した場合に複数回の設定操作を行う必要性を排除でき、画像処理装置100Aの操作性を向上させることができる。
また本実施形態の画像処理装置100Aでは、画像データを蓄積する際の設定を行うことが可能であっても良い。以下に画像データの蓄積について説明する。
本実施形態では、文書登録フィルタ133bにより画像データを蓄積することができる。本実施形態の画像処理装置100Aでは、文書登録フィルタ133bによる画像データの蓄積において、入力フィルタ131により読み取った画像データを未加工のまま蓄積することができる。未加工の画像データを蓄積した場合、蓄積された画像データを読み出して再出力する際に、新たに画像データの加工条件や印刷条件等を設定することができる。
また本実施形態の画像処理装置100Aでは、入力フィルタ131により読み取った画像データを加工フィルタ132により加工した後の、加工済みの画像データを蓄積することもできる。加工済みの画像データを蓄積した場合、蓄積された画像データを再出力する際に、画像データの蓄積時と同じ設定で画像データを再出力することができる。
以下の説明では、未加工の画像データを蓄積することを「再利用」と呼び、加工済みの画像データを蓄積することを「再使用」と呼ぶ。尚本実施形態では、画像データは、補助共記憶装置14に蓄積されても良いし、画像処理装置100Aの外部に適切な方法で接続された記憶装置に蓄積されても良い。
本実施形態の画像処理装置100Aでは、画像データの多出力において出力フィルタ133の一つに文書登録フィルタ133bが選択された場合、操作装置18に図14に示す画面を表示しても良い。図14は、第二の実施形態の画像処理装置100Aにおける設定画面の第四の例を示す図である。
画像処理装置100Aは、出力フィルタ133に文書登録フィルタ133bが選択されると、画面11A(図11参照)の代わりに画面14Aを操作装置18に表示させる。画面14Aでは、画像データを「再利用」又は「再使用」のどちらで蓄積するか選択させることができる。画面14Aで「再利用」が選択されれば、文書登録フィルタ133bは画像データを未加工のまま蓄積し、画面14Aで「再使用」が選択されれば、文書登録フィルタ133bは加工済みの画像データを蓄積する。画面14Aは、画像データの蓄積に関する選択が終了すると、画面11Bへ遷移する。画面11Bに遷移した後の処理は、前述した通りである。
また本実施形態の画像処理装置100Aでは、複数の出力フィルタ133が選択され、且つ複数の出力フィルタ133に接続される加工フィルタ132における加工条件が全て同じ場合、一つの加工フィルタ132に複数の出力フィルタ133を接続しても良い。具体的には例えば、図12で説明したように、一の加工フィルタ132の設定を他の加工フィルタ132にも反映させる設定がされた場合、一の加工フィルタ132に複数の出力フィルタ133を接続しても良い。図15は、一の加工フィルタ132に複数の出力フィルタ133が接続された場合のフィルタイメージを示す図である。
以下に図16を参照して、一の加工フィルフ132に複数の出力フィルタ133が接続される動作について説明する。図16は、第二の実施形態の画像処理装置100Aにおいて一の加工フィルタに複数の出力フィルタが接続される動作を説明するシーケンス図である。
画像処理装置100Aにおいて、操作装置18から処理の実行指示を受けると、アクティビティロジック部134Abは要求された実行指示に基づき各フィルタに実行させるジョブの判断を行う(S1601)。アクティビティロジック部134Abは、読取ロジック部131abのジョブを生成する(S1602)。またアクティビティロジック部134Abは加工ロジック部132abのジョブを生成する(S1603)。またアクティビティロジック部134Abは、印刷ロジック部133abと文書登録ロジック部133bbのジョブを生成する(S1604、S1605)。
各フィルタで実行されるジョブが生成されると、アクティビティロジック部134Abは、ジョブから各フィルタの関連付けを判断する(S1606)。そしてアクティビティロジック部134Abは、加工フィルタ132bを読取フィルタ131aと接続させる(S1607)。またアクティビティロジック部134Abは、各フィルタの関連付けにおいて、加工フィルタ132aと加工フィルタ132bに設定された条件が同一であると判断し、印刷フィルタ133aと文書登録フィルタ133bとを加工フィルタ132aに接続させる(S1608、S1609)。
このように本実施形態では、多出力であっても、各出力毎に設定される加工条件が同一であれば、一の加工フィルタ132aから加工済みの画像データを複数の出力フィルタ133に出力させることができる。よって画像データに施す画像処理は、加工フィルタ132aによる一度の画像処理で良く、メモリの節約と生産性の向上が可能となる。
また本実施形態の画像処理装置100Aにおいて、出力フィルタ133が未加工の画像データを出力する場合、出力フィルタ133が入力フィルタ131に直接接続されても良い。図17は、出力フィルタ133が入力フィルタ131に直接接続された場合のフィルタイメージを示す図である。以下に図18を参照して、出力フィルタ133が入力フィルタ131に直接接続される場合の動作を説明する。尚図18では、文書登録フィルタ133bが読取フィルタ131aに接続される場合の動作を説明する。図18は、第二の実施形態の画像処理装置100Aにおいて文書登録フィルタ133bが読取フィルタ131aに説明される動作を説明するシーケンス図である。
図18において、S1801からS1805までの処理は、図16のS1601からS1605までの処理と同様であるから説明を省略する。
各フィルタで実行されるジョブが生成されると、アクティビティロジック部134Abは、ジョブから各フィルタの関連付けを判断する(S1806)。そしてアクティビティロジック部134Abは、加工フィルタ132bを読取フィルタ131aと接続させる(S1807)。またアクティビティロジック部134Abは、印刷フィルタ133aを加工フィルタ132aに接続させる(S1808)。そしてアクティビティロジック部134Abは、各フィルタの関連付けにおいて、文書登録フィルタ133bにおける未加工の画像データを蓄積する設定を判断し、文書登録フィルタ133bを読取フィルタ131aと接続させる(S1809)。
尚図18では、画像データが文書登録フィルタ133bにより未加工のまま蓄積される場合についてのみ説明したが、これに限定されない。本実施形態では、画像データを未加工のまま出力する動作であれば、読取フィルタ131aに直接接続される出力フィルタ133は文書登録フィルタ133b以外の出力フィルタであっても良い。
このように本実施形態では、画像データを未加工で出力する場合には、入力フィルタ131と出力フィルタ133とを直接接続する。よって加工フィルタ132による画像処理を排除することができ、メモリの節約と生産性の向上が可能となる。
また本実施形態の画像処理装置100Aでは、各出力毎に設定された条件の一部に共通する条件が含まれている場合、入力フィルタ131と加工フィルタ132との間に、共通の条件に基づく画像処理を行う共通加工フィルタ135を接続しても良い。図19は、入力フィルタ131と加工フィルタ132との間に共通加工フィルタ135が接続された場合のフィルタイメージを示す図である。
以下に図20を参照して入力フィルタ131と加工フィルタ132との間に共通加工フィルタ135が接続される場合の動作を説明する。図20は、入力フィルタ131と加工フィルタ132との間に共通加工フィルタ135が接続される場合の動作を説明するシーケンス図である。尚図20では、入力フィルタ131に含まれる読取フィルタ131aと、加工フィルタ132a、132bの間に共通加工フィルタ135が説明される場合について説明する。
画像処理装置100Aにおいて、操作装置18で設定指示がなされると、操作部デバイス111Aは設定指示を受けたことをアクティビティロジック部134Abへ通知する(S2001)。アクティビティロジック部134Abは読取ロジック部131abへ読取条件の設定指示を出す(S2002)。読取ロジック部131abは、この指示を受けて予め設定されていた初期設定を行い、設定を行ったことをアクティビティロジック部134Abへ伝達する(S2003)。
またアクティビティロジック部134Abは、加工ロジック部132abへ加工条件の設定指示を出す(S2004)。加工ロジック部132abは、この指示を受けて予め設定されていた初期設定を行い、設定を行ったことをアクティビティロジック部134Abへ伝達する(S2005)。アクティビティロジック部134Abは加工ロジック部132bbへ読取条件の設定指示を出す(S2006)。加工ロジック部132bbは、この指示を受けて予め設定されていた初期設定を行い、設定を行ったことをアクティビティロジック部134Abへ伝達する(S2007)。
アクティビティロジック部134Abは、共通加工フィルタ135のロジック部である共通加工ロジック部135bへ加工条件の設定指示を出す(S2008)。共通加工ロジック部135bは、この指示を受けて予め設定されていた初期設定を行い、設定を行ったことをアクティビティロジック部134Abへ伝達する(S2009)。
アクティビティロジック部134Abは、印刷ロジック部133abへ印刷条件の設定指示を出す(S2010)。印刷ロジック部133abは、この指示を受けて予め設定されていた初期設定を行い、設定を行ったことをアクティビティロジック部134Abへ伝達する(S2011)。アクティビティロジック部134Abは、文書登録ロジック部133bbへ文書登録条件の設定指示を出す(S2012)。文書登録ロジック部133bbは、この指示を受けて予め設定されていた初期設定を行い、設定を行ったことをアクティビティロジック部134Abへ伝達する(S2013)。
次にアクティビティロジック部134Abは、共通加工フィルタ135において共通の加工条件とする設定条件を判断する(S2014)。具体的にはアクティビティロジック部134Abは、加工フィルタ132aと加工フィルタ132bに設定された加工条件において、共通した条件が含まれているか否かを判断する。そしてアクティビティロジック部134Abは、共通した条件が含まれていた場合に、この共通する条件を共通加工フィルタ135に設定する加工条件とする。
アクティビティロジック部134Abは、共通加工ロジック部135bへ、共通の加工条件とした設定条件を設定する(S2015)。ここでは例えば機能Aが共通加工条件とする。
次にアクティビティロジック部134Abは、加工フィルタ132aに設定された加工条件のうち、共通の加工条件を無効にする(S2016)。加工フィルタ132bに対しても同様に、アクティビティロジック部134Abは、加工フィルタ132bに設定された加工条件のうち共通の加工条件を無効にする(S2017)。よって加工フィルタ132a、132bに設定される加工条件は、機能Aを実行するための条件以外の加工条件となる。アクティビティロジック部134Abは、加工条件の設定が完了すると、その旨を操作部デバイス111Aへ通知する(S2018)。
操作部デバイス111Aは、この通知を受けて、アクティビティUI134Aaに設定画面の表示指示を出す(S2019)。また操作部デバイス111Aは、読取UI131aaと加工UI132aaにも画面の表示指示を出す(S2020、S2021)。
加工UI132aaは、設定画面の表示指示を受けて、加工ロジック部132abにおいて、S2015で共通の加工条件(機能Aを実現する条件)として無効にされた加工条件が存在するか否かを検索する(S2022)。S2022において無効とされた加工条件が存在した場合、加工UI132aaは、画面においても共通の加工条件を無効とする(S2023)。
操作部デバイス111Aは、加工UI132baに設定画面の表示指示を出す(S2034)。加工UI132baは、設定画面の表示指示を受けて、加工ロジック部132bbにおいて、S2015で共通の加工条件(機能Aを実現する条件)として無効にされた加工条件が存在するか否かを検索する(S2025)。S2025において無効とされた加工条件が存在した場合、加工UI132baは、画面においても共通の加工条件を無効とする(S2026)。
また操作部デバイス111Aは、共通加工UI135a、印刷UI133aa、文書登録UI133baに設定画面の表示指示をそれぞれ伝達する(S2027、S2028、S2029)。
本実施形態の画像処理装置100Aでは、以上のようにして設定画面の表示を行う。図20で説明した処理により表示された設定画面の一例を図21に示す。図21は、第二の画像処理装置100Aにおける設定画面の第五の例を示す図である。
本実施形態の画像処理装置100Aでは、共通加工フィルタ135が読取フィルタ131aの後段に接続された場合の設定画面として、画面17Aと画面17Bを操作装置18へ表示させる。画面17Aは出力に「印刷」が選択された場合の設定画面の一例であり、画面17Bは出力に「文書登録」が選択された場合の設定画面の一例である。
本実施形態では、機能Aを実現する条件が共通の加工条件であるから、画面17A、画面17Bにおいて共通加工フィルタ135の設定欄17aに機能Aが設定された状態となっている。そして画面17Aの加工フィルタ132aの設定欄17bと、画面17Bの加工フィルタ132bの設定欄17cには、機能Aは表示されない。よって、共通の加工条件が加工フィルタ132a、132bには含まれていないことが分かる。
このように本実施形態では、共通の加工設定に基づく画像処理は一の加工フィルタで行い、各出力毎に異なる加工条件のみを個別の加工フィルタで行うようにした。よって本実施形態では、同一の加工条件に基づく画像処理を重複して行う必要がなく、メモリの節約と生産性の向上が可能となる。
尚本実施形態の画像処理装置100Aでは、図15、図17、図19に示したフィルタの構成は、処理の実行要求に基づきアクティビティロジック部134Abが決定する。すなわち本実施形態のアクティビティ134Aは、入力フィルタ131、加工フィルタ132、出力フィルタ133の接続の構成を決定するフィルタ構成決定機能を有する。以下に、アクティビティロジック部134Abによるフィルタ構成の決定について説明する。
図22は、第二の実施形態の画像処理装置100Aにおけるフィルタ構成の決定を説明するフローチャートである。本実施形態では、アクティビティロジック部134Abは、処理の実行要求に基づき各フィルタで実行されるジョブを生成する際に(図9のS925参照)、フィルタ構成を決定する。
アクティビティロジック部134Abは、各フィルタで実行されるジョブが生成されると、全て加工フィルタ132の中で加工条件が設定されていない加工フィルタ132が存在するか否かを判断する(S2201)。S2201で加工条件が設定されていない加工フィルタ132が存在した場合、アクティビティロジック部134Abは、加工条件が設定されていない加工フィルタ132を削除し、入力フィルタ131に出力フィルタ133を直接接続する構成に決定する(S2202)。S2202で決定されたフィルタ構成は、図17にイメージを示すフィルタ構成である。
次にアクティビティロジック部134Abは、出力フィルタ133が複数存在するか否かを判断する(S2203)。S2203において出力フィルタ133が複数存在する場合、アクティビティロジック部134Abは、加工フィルタ132のうち基準となる加工フィルタ132を決定し、この基準の加工フィルタ132から加工条件を取得する(S2204)。
次にアクティビティロジック部134Abは、他の加工フィルタ132に設定された加工条件と、基準の加工条件とを比較し、一致する加工条件が存在するか否かを判断する(S2205)。S2205において一致する加工条件が存在する場合、アクティビティロジック部134Abは、加工条件が基準の加工条件と完全に一致している加工フィルタ132が存在するか否かを判断する(S2206)。
S2206において、基準の加工条件と完全に一致する加工条件が設定された加工フィルタ132が存在したとき、アクティビティロジック部134Abは、この加工フィルタ132を削除し、基準の加工フィルタ132に出力フィルタ133を接続するフィルタ構成に決定する(S2207)。S2207で決定されたフィルタ構成は、図15にイメージを示すフィルタ構成である。
S2206において、基準の加工条件と完全に一致する加工条件が設定された加工フィルタ132が存在しないとき、アクティビティロジック部134Abは新規の加工フィルタを生成する(S2208)。S2208で生成される加工フィルタは、共通加工フィルタ135である。アクティビティロジック部134Abは、生成された共通加工フィルタ135を既に生成されている加工フィルタ132と接続し、フィルタ構成に決定する(S2209)。S2209で決定されるフィルタ構成は、図19にイメージを示すフィルタ構成である。
次にアクティビティロジック部134Abは、加工フィルタ132において共通する設定条件を共通加工フィルタ135へ設定する(S2210)。そしてアクティビティロジック部134Abは、加工フィルタ132に設定されている加工条件に含まれる共通の加工条件を無効とする(S2211)。
このように本実施形態の画像処理装置100Aでは、要求され処理の実行指示に基づき生成されたジョブからフィルタ構成を決定する。よって本実施形態によれば、ジョブの実行時に適切なフィルタ構成を決定することでき、各出力毎の加工条件の設定の自由度を持ちつつ、画像処理の最適化を行うことが可能となり、メモリの効率化及び生産性の向上を実現できる。
以上、各実施形態に基づき本発明の説明を行ってきたが、上記実施形態に示した要件に本発明が限定されるものではない。これらの点に関しては、本発明の主旨をそこなわない範囲で変更することができ、その応用形態に応じて適切に定めることができる。