以下に添付図面を参照して、この発明にかかる画像処理装置の最良な実施の形態を詳細に説明する。実施の形態1にかかる画像処理装置100は、プリンタ、コピー、スキャナ、又はFAX等の複数の機能を一台の筐体において実現する複合機である。なお、以下に示す実施の形態では、画像処理装置100を複合機として用いた場合を例示して説明するが、これに限定されるものではない。例えば、画像処理装置100を、スキャナ装置、ファクシミリ装置等の画像形成装置やコンピュータ等の情報処理装置に適用することができる。
実施の形態1にかかる画像処理装置は、パイプ&フィルタと呼ばれる考え方に基づくソフトウェアアーキテクチャを適用したものである。具体的には、データを出力する形式であるデータ形式を、パイプを介して出力側と入力側との間で調停し、定められたデータ形式に応じた処理を各フィルタにおいて施し出力するものである。また、所定のデータ形式に基き出力処理を開始した後、出力が不可能であった場合には、出力側で新たにデータ形式を生成し、変更後のデータ形式に基づく処理を施したデータを出力する。これにより、画像処理装置の機能のカスタマイズ又は拡張などの簡略化を可能とするものである。
図1は、パイプ&フィルタの概念を説明する図である。図1に示す「P」はパイプを示し、「F」はフィルタを示す。フィルタとは、入力されたデータに対して所定の処理を施して、その処理結果を出力するプログラムである。パイプは、フィルタとフィルタを連結する手段であり、パイプの入力側に結合されたフィルタから出力される処理結果を一時的に保持し、その後パイプの出力側へ結合されたフィルタへデータを伝達する。このように、パイプ&フィルタの概念によれば、各フィルタ間にパイプを介在させてフィルタにおける処理を連続したものとし、画像処理装置100の諸機能、例えばプリンタ、コピー、スキャナ、又はFAX等の複数の機能を実現することが可能である。
本発明の画像処理装置においては、フィルタにより実現される所定の処理を、入力されたデータに対し、所定の変換を施す処理とする。即ち、画像処理装置で実現される各機能をドキュメント(入力データ)に対する変換処理の連続として扱うものとする。画像処理装置の各機能は、ドキュメント、即ち、データの「入力」、「加工」、「出力」により構成されるものとする。そこで、本発明では「入力処理」、「加工処理」、「出力処理」の各々を「変換処理」として捉え、一つの変換処理を実現するソフトウェア部品をフィルタとして構成している。
本発明の画像処理装置においては、データの入力処理を制御するフィルタを入力フィルタ、データの加工処理を行うフィルタを加工フィルタ、データの出力処理を制御するフィルタを出力フィルタとする。これらの各フィルタは各々独立したプログラムであって、各フィルタは、画像処理装置において独立してフィルタ単位で追加(インストール)、削除(アンインストール)することが可能である。
(実施の形態1)
図2は実施の形態1にかかる画像処理装置100のハードウェア構成図である。画像処理装置100は、バスで相互に接続されているスキャン装置121と、プロッタ装置122と、ドライブ装置123と、補助記憶装置124と、メモリ装置125と、演算処理装置126と、インターフェース装置127と、操作パネル128と、記録媒体129とを主に備えている。
スキャン装置121はスキャナエンジンとエンジン制御部などで構成され、紙原稿をスキャンして画像データとする。プロッタ装置122はプロッタエンジンとエンジン制御部などで構成され、画像データを印刷する。インターフェース装置127は、モデム、LANカードなどで構成されており、ネットワークに接続する為に用いられる。操作パネル128は、画像処理装置100の処理に関する操作を行うために用いられる。操作パネル128は、例えばタッチパネルなどの表示機能を有するものである。
実施の形態1にかかる画像処理プログラムは、画像処理装置100を制御する各種プログラムの少なくとも一部である。画像処理プログラムは例えば記録媒体129の配布やネットワークからのダウンロードなどによって提供される。画像処理プログラムを記録した記録媒体129は、CD−ROM、フレキシブルディスク、光磁気ディスク等の様に情報を光学的、電気的或いは磁気的に記録する記録媒体、ROM、フラッシュメモリ等の様に情報を電気的に記録する半導体メモリ等、様々なタイプの記録媒体を用いることができる。
また、画像処理プログラムを記録した記録媒体129がドライブ装置123にセットされると、画像処理プログラムは記録媒体129からドライブ装置123を介して補助記憶装置124にインストールされる。ネットワークからダウンロードされた画像処理プログラムは、インターフェース装置127を介して補助記憶装置124にインストールされる。補助記憶装置124は、画像処理装置100を実行するためにインストールされた画像処理プログラム、必要なファイル、データ等を格納する不揮発性の記憶装置である。補助記憶装置124は、例えば、磁気ディスク、CD−ROM(Compact Disc Read Only Memory)、CD−R(Compact Disk Recordable)、MO(Magnetic Optical Disk)等である。
CPU126は、画像処理装置の全体を制御するためのマイクロプロセッサである。CPU126はメモリ装置125に格納された画像処理プログラムに従って、後述するような各部の機能を実現し、各種処理を実現している。メモリ装置125は、CPUが画像処理装置の制御を行う際に、プログラムや中間処理データを一時的に格納する揮発性メモリである。メモリ装置125は、コンピュータの起動時に補助記憶装置124から画像処理プログラムを読み出して格納する。
実施の形態1にかかる画像処理装置100は、画像処理装置100における各種機能を実現させるソフトウェアアーキテクチャに、上記のパイプ&フィルタの概念を適用したものである。図3は、実施の形態1にかかる画像処理装置100のソフトウェア構成図である。画像処理装置100は、例えばプリンタ、コピー、スキャナ、又はFAX等の複数の機能を一台の筐体において実現する複合機である。
画像処理装置100の機能を実現するソフトウェアは階層構造となっており、ユーザインターフェイス層10、コントロール層20、アプリケーションロジック層30、デバイスサービス層40及びデバイス制御層50により構成されている。これらの各層における上下関係は、層間の呼び出し関係に基づいている。即ち、図中において上位層が下位層を呼び出す。
画像処理装置100において、ユーザインターフェイス層10によりユーザから各種機能の実行指示が成されると、ユーザインターフェイス層10は、コントロール層20を呼び出しこの実行要求に基づきアプリケーションロジック層30を制御する。アプリケーションロジック層30では、コントロール層20からの指示に基づき要求された機能を実現させるアプリケーションを実行する。そして、この実行結果に基づきデバイスサービス層40、デバイス制御層50が画像処理装置100のハードウェア資源を制御する。画像処理装置100では、このような動作によりユーザインターフェイス層10が受け付けた機
能に対応した出力結果を得る。
次に、各層について説明する。ユーザインターフェイス層10には、例えば通信サーバ部11及びUI(User Interface )12が実装されており、画像処理装置100の各種機能を実現するための実行要求を受け付ける機能を有する。ここで言う各種機能とは、例えばコピー機能、印刷機能、スキャン機能、FAX機能などである。ユーザインターフェイス層10において、例えば通信サーバ部11は、例えば図示しないクライアントPC(Presonal Computer)等からネットワークを介して実行要求を受け付けても良い。UI12(調停指示手段)は、操作パネル128等を介して利用者からデータの出力要求を受付けると、後述するアクティビティ22に対し、入力フィルタ300と加工フィルタ310と出力フィルタ320の各フィルタから、データの生成に必要なアプリケーションを選択する旨の指示を行う。アクティビティ22によってアプリケーションが選択されると、UI12は、選択された各アプリケーションに対し、データ形式等についての調整を行わせるための指示である調停指示を行う。ここで、データ形式とは、文書や画像等、各フィルタ間において伝達されるデータの種類を言う。データが画像データである場合には、色指定(モノクロ・カラー)、RGBやCMYK等の色空間、指定領域に対応する画像サイズ等の情報が含まれるものとする。ユーザインターフェイス層10において利用者から受付けた出力要求は、コントロール層20へ伝達される。
コントロール層20は、画像処理装置100の各機能を実現する処理を制御する制御手段である。具体的には、例えば、要求された機能に応じてアプリケーションロジック層30における各フィルタをパイプ41を用いて結合し、結合されたフィルタを用いて機能の実行を制御する。ここで、画像処理装置100の機能とは、画像処理装置100がユーザーからの実行要求を受付けてから出力処理するまでの一連の処理を通じて実現する一つのアプリケーションをいう。
パラメータ21は、ユーザインターフェイス層10から受け付けた出力要求を格納する。アクティビティ22は、利用者から受け付けた出力要求を処理するために必要なフィルタをアプリケーションロジック層30から選択する。具体的には、UI12からの指示に基づき、入力フィルタ300と加工フィルタ310と出力フィルタ320の各フィルタからデータの生成に必要なアプリケーションを選択するとともに、選択したアプリケーションに対して実行要求を行う。
アプリケーションロジック層30には、画像処理装置100において提供される機能の一部を実現する部品群である各種フィルタが実装されている。アプリケーションロジック層30では、コントロール層20の制御により、複数のフィルタを組み合わせて一つの機能が実現される。実施の形態1におけるアプリケーションロジック層30は、入力フィルタ300(入力制御手段)、加工フィルタ310(加工手段)、出力フィルタ320(出力制御手段)、データ管理部332を主に実装している。尚、アプリケーションロジック層30には、上述したフィルタ以外のフィルタを実装するように構成してもよい。入力フィルタ300、加工フィルタ310、出力フィルタ320は、それぞれ、画像処理装置100の各種機能を実現するための機能ブロックであるフィルタ(アプリケーション)を実装する。入力フィルタ300、加工フィルタ310、出力フィルタ320、に実装されるフィルタは、一つであっても複数であってもよい。
以下に、アプリケーションロジック層30に実装された各フィルタについてさらに説明する。
入力フィルタ300は、画像処理装置100の外部から入力を受け付けたデータに固有の識別情報を付与し、データに対する入力処理を制御する。具体的には、入力フィルタ300は、UI12から調停指示を受付け、加工フィルタ310からデータ形式を取得した場合に、取得したデータ形式に基づいてデータの入力制御処理を行う条件である入力制御処理条件を生成し、生成した入力制御処理条件に基づいて入力制御処理を行う。入力フィルタ300は、読取フィルタ301、保管文書読出フィルタ302、メール受信フィルタ303、FAX受信フィルタ304、PC文書受信フィルタ305、レポートフィルタ306を、主なフィルタとして備えている。入力フィルタ300には、外部から入力を受付けたデータを記憶する記憶装置を設けてもよい。
読取フィルタ301は、例えばスキャナによる画像データの読取を制御し、読み取られた画像データを出力する。メール受信フィルタ303は、画像処理装置100において電子メールを受信し、受信した電子メールに含まれるデータを出力する。FAX受信フィルタ304はFAX受信を制御し、受信されたデータを出力する。PC文書受信フィルタ305は、クライアントPC(不図示)等から印刷データを受信し、この印刷データを出力する。レポートフィルタ306は、画像処理装置100の設定情報や履歴情報などを例えば表形式などに整え、この整えられたデータを出力する。保管文書読出フィルタ302は、画像処理装置100内のデータ管理部332や、記憶装置(不図示)等に蓄積されたデータを読み出し、読み出したデータを出力するものである。
加工フィルタ310は、入力フィルタ300と加工フィルタ310との間において情報の伝達を行う第1パイプ41aより伝達されたデータに所定の加工処理を施して、加工フィルタ310と出力フィルタ320との間において情報の伝達を行う第2パイプ41bに処理結果を出力する。具体的には、加工フィルタ310は、UI12から調停指示を受付け、出力フィルタ320からデータ形式を取得した場合に、取得したデータ形式に基づいてデータの加工処理を行う条件である加工処理条件を生成し、生成した加工処理条件に基づいて加工処理を行う。加工フィルタ310は、文書加工フィルタ311、文書変換フィルタ312を、主なフィルタとして備えている。
文書加工フィルタ311は、入力されたデータに所定の画像変換処理を施し出力する。この画像変換処理とは、例えば入力されたデータの集約、拡大、縮小処理等であっても良い。文書変換フィルタ312は、入力されたデータにレンダリング処理を施し出力する。例えば、文書変換フィルタ312に入力されたPostScriptデータをビットマップデータに変換して出力する。
出力フィルタ320は、入力されたデータに対する出力処理を制御し、画像処理装置100の外部へ出力する。具体的には、出力フィルタ320は、UI12から調停指示を受付けた場合に、調停指示に含まれるデータ形式に基づいてデータの出力制御処理を行う条件である出力制御処理条件を生成し、生成した出力制御処理条件に基づいて出力制御処理を行う。出力フィルタ320は、印刷フィルタ321、保管文書登録フィルタ322、メール送信フィルタ323、FAX送信フィルタ324、PC文書送信フィルタ325、プレビューフィルタ326を、主なフィルタとして備えている。
印刷フィルタ321は、入力されたデータをプロッタに出力(印刷)させる。メール送信フィルタ323は、入力されたデータを電子メールに添付して送信する。FAX送信フィルタ324は、入力されたデータをFAX送信する。PC文書送信フィルタ325は、入力されたデータをクライアントPC(不図示)等に送信する。プレビューフィルタ326は、入力されたデータを操作パネル128等にプレビュー表示させる。保管文書登録フィルタ322は、入力されたデータを画像処理装置100内の記憶装置やデータ管理部332に出力し保存するものである。
データ管理部332は、画像処理装置100内のデータベースであって、メモリ、ハードディスクドライブ装置(HDD)等の記憶媒体である。データ管理部332には、例えば利用者から登録を受付けたユーザ情報や、入力を受け付けた文書データ、画像データ、画像処理装置100において各種の処理を施したデータ等を格納することができる。
アプリケーションロジック層30では、上述した入力フィルタ300、加工フィルタ310、出力フィルタ320にそれぞれ格納される各フィルタを後述するパイプ41によって結合することにより、画像処理装置100における各種機能を実現する。画像処理装置100における各種機能とは、例えばコピー機能、印刷機能、スキャン機能、FAX機能等の諸機能をいう。例えばコピー機能を実現したい場合には、読取フィルタ301、文書加工フィルタ311、印刷フィルタ321を組み合わせれば良い。アクティビティ22によって各フィルタ300〜320の中からそれぞれ選択された所定のフィルタは、アクティビティ22より実行要求を受付けて、利用者から指示を受付けた機能を実現する。
デバイスサービス層40には、アプリケーションロジック層30に実装された各フィルタに共通して利用される下位の機能が実装されている。画像処理装置100のデバイスサービス層40にはパイプ41が実装されている。パイプ41はアプリケーションロジック層30に実装されている各フィルタのうち、一のフィルタからの出力結果を、一のフィルタへ伝達するものである。具体的には、パイプ41は各フィルタ300〜320の中から選択された所定のフィルタを結合し、フィルタ間におけるデータの授受を可能にする手段である。パイプ41の詳細については後述する。
デバイス制御層50には、ハードウェアを制御するプログラムであるドライバが実装されている。実施の形態1に係るデバイス制御層50には、例えばスキャナ制御部51、プロッタ制御部52、メモリ制御部53、Tel回線制御部54及びネットワーク制御部55等が実装されている。これらの各制御部は、それぞれの名称に付けられたデバイスを制御するものである。
クロスカット60は、全ての各機能ブロックから共通に使用される機能を実装する。履歴記憶部61は、履歴を残す必要がある全てのブロックからアクセスを受付け、内容を記録する。アクセス制御部62は、ネットワークを介して行うクライアントPC(不図示)とのデータの送受信を制御する。課金算出部63は、画像処理装置100において、FAX通信やネットワークを介したメール送受信等を行う場合に、利用者から徴収する価額を算出し、算出結果を操作パネル128に表示する。
次に、このパイプ&フィルタの概念を適用した画像処理装置について説明する。図4は、実施の形態1にかかる画像処理装置におけるフィルタとパイプの構成を説明する図である。画像処理装置100において、入力フィルタ300と加工フィルタ310とが第1パイプ41a(第1伝達手段)により連結され、加工フィルタ310と出力フィルタ320とが第2パイプ41b(第2伝達手段)によって連結されている。
第1パイプ41aは、入力フィルタ300と加工フィルタ310とを連結する手段である。具体的には、第1パイプ41aは、入力フィルタ300と加工フィルタ310との間において、定められたデータ形式によるデータの授受を仲介する手段である。第1パイプ41aには、外部から入力を受付けたデータを記憶する記憶装置を設けてもよい。第1パイプ41aは、外部から入力を受付けたデータを入力フィルタ300から取得して加工フィルタ310に書き込むとともに、加工フィルタ310からのデータの読出要求に応じてデータを加工フィルタ310に伝達する。
第2パイプ41bは、加工フィルタ310と出力フィルタ320とを連結する手段である。具体的には、第2パイプ41bは、加工フィルタ310と出力フィルタ320との間において、定められたデータ形式によるデータの授受を仲介する手段である。第2パイプ41bは、出力フィルタ320からのデータの読出要求に応じてデータを加工フィルタ310に伝達するとともに、加工されたデータを加工フィルタ310より取得して出力フィルタ320に伝達する。実施の形態1にかかる画像処理装置においては、入力フィルタ300、加工フィルタ310、出力フィルタ320に、第1パイプ41aと第2パイプ41bとを介在させることによりフィルタ300〜320間における連続した処理を実現することができる。
次に、パイプ&フィルタの概念を適用した上述の構成を有する画像処理装置100において、各フィルタ間でデータ形式を調停する手順について説明する。
図5は、実行前における調停処理の全体の流れを示すシーケンス図である。画像処理装置100は、操作パネル128に設けた設定ボタンやタッチパネル等を介して、利用者から各種機能(コピー機能、印刷機能、スキャン機能、FAX機能等の諸機能)の選択を受付ける。ここでは、利用者からのデータの入力受付前に各フィルタ間でデータ形式の調停を行って所定の処理を実行可能とするまでの処理について説明するが、利用者からのデータの入力受付後にこれらの処理を行ってもよい。
UI12は、利用者から所定の機能の選択を受け付けると、指示を解釈してアクティビティ22に対して、アプリケーションロジック層30に格納されている各フィルタ300〜320から、アプリケーションを選択する旨の指示を行う。アクティビティ22は、UI12から指示を受付けると、利用者の選択要求を実現するために必要なフィルタを、入力フィルタ300、加工フィルタ310、出力フィルタ320の各フィルタから選択する。例えば、利用者からコピー機能の選択要求を受付けた場合には、入力フィルタ300内の読取フィルタ301と、加工フィルタ310内の文書加工フィルタ311と、出力フィルタ320内の印刷フィルタ321とをそれぞれ選択する。ネットワークを介して利用者から各種機能の選択要求を受付けた場合には、通信サーバ部11からコントロール層20に対して指示を行う。利用者から受付けた選択要求はパラメータ21に格納される。
次に、利用者は、UI12を介して、出力フィルタ320、加工フィルタ310、出力フィルタ320のそれぞれに対し、データ形式に基づく条件設定を行う(ステップS510、ステップS511、ステップS512)。入力フィルタ300に対する条件設定は、例えば、原稿読み取りサイズ・方向等であり、加工フィルタ310に対する条件設定は、例えば、濃度の指定であり、出力フィルタ320に対する条件設定は、例えば、出力トレイ(排紙トレイ)などである。ただし、各条件設定は、これらに限定されるものではない。
続いて、利用者は、UI12を介して、出力フィルタ320に対して調停指示を行う(ステップS513)。出力フィルタ320は、UI12から調停指示を受付けると、データ形式に基づいてデータの出力制御処理を行う条件である第1出力制御処理条件を設定し、第2パイプ41bを介して加工フィルタ310との間でデータ形式の調停を行う(ステップS514)。
続いて、利用者は、UI12を介して、加工フィルタ310に対し調停指示を行う(ステップS515)。加工フィルタ310は、データ形式に基づいてデータの加工処理を行う条件である第1加工処理条件を設定し(ステップS516)、第1パイプ41aを介して入力フィルタ300との間でデータ形式の調停を行う(ステップS517)。
さらに、利用者は、UI12を介して、入力フィルタ300に対し調停指示を行う(ステップS518)。入力フィルタ300は、UI12から調停指示を受付けた場合に(ステップS518)、第1データ形式に基づいてデータの入力制御処理を行う条件である入力制御処理条件を設定し、加工フィルタ310との間で調停したデータ形式を反映する(ステップS519)。
上述した処理手順により、出力フィルタ320と加工フィルタ310、及び加工フィルタ310と入力フィルタ300との間で第1データ形式に基づくデータ形式の調停がなされると、UI12は、アクティビティ22に対し、各フィルタ300〜320において選択したアプリケーションを実行する旨の実行指示を行う(ステップS520、ステップS521、ステップS522)。このように、第1パイプ41a及び第2パイプ41bを介して各フィルタ300〜320を結合するとともに、各フィルタ間でデータ形式を調停することにより、各フィルタの機能を独立して扱い、画像処理装置の一連の機能を実現することが可能となる。そして、フィルタの順序を固定することなく柔軟なフィルタの組み合わせを構成し、多様な種類のデータに対応した形式による出力が可能となる。さらに、各フィルタ間でのデータ形式の調停を、利用者からのデータの入力受付前に行うことにより、迅速な出力処理が可能となり、作業効率の向上を図ることが可能となる。
このような調停処理としては以下のような例があげられる。例えば、UI12から、入力条件として原稿読み取りサイズ・方向を「A4横」と入力フィルタ300に設定し、出力条件として出力トレイを「トレイ1」と出力フィルタ320に設定した場合を考える。このような場合に、指定されたトレイ1がA4横に対応しておらず、A4縦のような場合、これを出力フィルタ320で判断し、A4縦の旨のデータ形式通知を加工フィルタ310に行い、加工フィルタ310と出力フィルタ320との間で調停を行って、加工フィルタ310によって読み取ったA4サイズの原稿画像を回転させる加工処理を行って、出力フィルタ320に渡し、出力フィルタ320でA4縦で印刷するという調停処理である。
他の例としては、以下の処理があげられる。UI12から入力条件として原稿読み取りサイズ・方向を「B4横」と入力フィルタ300に設定し、出力条件として出力トレイを「トレイ2」と出力フィルタ320に設定した場合で、トレイ2がB4横に対応しておらず、A4横のような場合、加工フィルタ310と出力フィルタ320との間で調停を行って、加工フィルタ310によって読み取ったB4サイズの原稿画像をA4横サイズに縮小する加工処理を行って出力フィルタ320に渡し、出力フィルタ320でA4横で印刷するなどの調停処理があげられる。なお、調停処理の例としては、これらに限定されるものではない。
次に、出力フィルタ320において選択されたアプリケーションにより出力処理を開始した後に、種々の要因により出力不可能信号を受信した場合に、UI12による調停指示に基づいてデータ形式の調停を行うことにより加工方法を変更する処理手順について説明する。図6は、実施の形態1にかかる画像処理装置100において出力処理開始後に調停指示に基づいてデータ形式を調停し再出力処理を実行するまでの手順を示すシーケンス図である。画像処理装置100は、操作パネル128に設けた設定ボタンやタッチパネル等を介して、利用者から各種機能の選択及び各種データ(文書、画像)を受付けているものとする。また、入力フィルタ300と、加工フィルタ310と、出力フィルタ320との間においては、所定のデータ形式による調停が行われ、出力フィルタ320により出力処理が開始されているものとする。尚、第1パイプ41aは、外部から入力を受付けたデータを記憶する不揮発性のメモリを備え、利用者から入力を受付けたデータは、第1パイプ41aに設けたメモリに格納されているものとする。
出力フィルタ320は、出力処理開始後にプリンタエラーや送信エラー等、種々の要因により、出力不可能信号を受信すると(ステップS611)、UI12に対し、調停したデータ形式によって加工処理されたデータの出力が不可能である旨の実行不可能通知を行う(ステップS612)。UI12は、実行不可能通知を受け取ると、新たに出力されるデータの形式である第2データ形式を生成し、出力フィルタ320及び加工フィルタ310において選択されたアプリケーションに対し、第2データ形式を出力条件として設定する(ステップS613、ステップS614)。
続いてUI12は、出力フィルタ320において選択されたアプリケーションに対し、第2データ形式に基づいて処理条件を設定するとともに、出力フィルタ320に対し調停指示を行う(ステップS615)。出力フィルタ320は、UI12から調停指示を受付けると、第2データ形式に基づいてデータの出力制御処理を行う条件である第2出力制御処理条件を設定し、第2パイプ41bを介して加工フィルタ310との間で第2データ形式に基づくデータ形式の調停を行う(ステップS616)。加工フィルタ310は、出力フィルタ320との間でデータ形式の調停を行うと、出力フィルタ320において設定された出力制御処理条件を反映する(ステップS617)。続いてUI12は、加工フィルタ310に対して調停指示を行う(ステップS618)。加工フィルタ310は、UI12から調停指示を受付けた場合に(ステップS618)、第2データ形式に基づいてデータの加工処理を行う条件である第2加工処理条件を設定し、出力フィルタ320との間で調停したデータ形式を反映する(ステップS619)。
UI12による調停指示に基づいて加工フィルタ310と出力フィルタ320との間でデータ形式の調停が行われると、UI12は、加工フィルタ310及び出力フィルタ320において選択されたアプリケーションに対し、実行継続指示を行う(ステップS620、ステップS621)。加工フィルタ310は、第1パイプ41aに格納される不揮発性のメモリを読み込み、加工対象となるデータをメモリから取得し(ステップS623)、第2加工処理条件に基づいて加工処理を行うとともに(ステップS624)、加工したデータを第2パイプ41bに書き込む(ステップS625)。出力フィルタ320は、第2パイプ41bから格納された加工済のデータを読み込み(ステップS626)、第2出力制御処理条件に基づいてデータの再出力処理を行う(ステップS627)。
以上のように、出力処理開始後に、データ形式の調停によって加工方法を変更することにより、画像処理装置の内部処理のみにより動作を継続させることが可能となり、処理の迅速化を図ることができる。また、加工処理条件が変更され、再加工処理を行う際に、再度入力からデータを生成する必要がなく、作業効率をさらに向上させることが可能である。
次に、出力フィルタ320において選択されたアプリケーションにより出力処理を開始した後に、出力不可能信号を受信した場合に、出力フィルタ320側でデータ形式を変更し、新たなデータ形式を再出力条件として設定し、出力フィルタ320と加工フィルタ310との間でデータ形式の調停を行うことにより加工方法を変更する処理手順について説明する。図7は、実施の形態1にかかる画像処理装置100において出力処理開始後に出力フィルタ320フィルタ側でデータ形式を変更し、データ形式を調停することにより再出力処理を実行するまでの手順を示すシーケンス図である。画像処理装置100は、操作パネル128に設けた設定ボタンやタッチパネル等を介して、利用者から各種機能の選択及び各種データ(文書、画像)を受付けているものとする。また、入力フィルタ300と、加工フィルタ310と、出力フィルタ320との間においては、所定のデータ形式による調停が行われ、出力フィルタ320により出力処理が開始されているものとする。尚、第1パイプ41aは、外部から入力を受付けたデータを記憶する不揮発性のメモリを備え、利用者から入力を受付けたデータは、第1パイプ41aに設けたメモリに格納されているものとする。
UI12は、入力フィルタ300、加工フィルタ310、出力フィルタ320から各々選択されたアプリケーションに対し、処理を実行する旨の実行指示を行う(ステップS710、ステップS711、ステップS712)。入力フィルタ300は、予め利用者から入力を受付けたデータを取得し(ステップS713)、第1パイプ41aに書き込みを行う(ステップS714)。第1パイプ41aは、メモリに書き込まれたデータをコピーして保存する(ステップS715)。加工フィルタ310は、第1パイプ41aに格納されたメモリからデータを読み込み(ステップS716)、予め設定された第1データ形式に基づく第1加工処理条件に基づいてデータを加工処理し(ステップS717)、第2パイプ41bに書き込む(ステップS718)。出力フィルタ320は、第2パイプ41bから格納された加工済のデータを読み込み(ステップS719)、データの出力処理を行う(ステップS720)。
出力フィルタ320は、出力処理開始後にプリンタエラーや送信エラー等、種々の要因により、出力不可能信号を受信すると(ステップS721)、新たに出力されるデータの形式として第2データ形式を生成する。そして、出力条件を第1データ形式から第2データ形式へ変更し(ステップS722)、第2データ形式に基づきデータの出力制御処理を行う条件である第2出力制御条件を設定する。
続いて出力フィルタ320は、第2パイプ41bを介して加工フィルタ310との間でデータ形式を調停する(ステップS723)。加工フィルタ310は、出力フィルタ320との間でデータ形式の調停を行うと第2データ形式に基づいてデータの加工処理を行う条件である第2加工処理条件を設定し、出力フィルタ320との間で調停したデータ形式を反映する(ステップS724)。
加工フィルタ310と出力フィルタ320との間でデータ形式の調停が完了すると、加工フィルタ310は、第1パイプ41aに格納される不揮発性のメモリを読み込み、加工対象となるデータをメモリから取得し(ステップS723)、第2加工処理条件に基づいて加工処理を行うとともに(ステップS724)、加工したデータを第2パイプ41bに書き込む(ステップS725)。出力フィルタ320は、第2パイプ41bから格納された加工済のデータを読み込み(ステップS726)、第2出力制御条件に基づいてデータの再出力処理を行う(ステップS727)。
以上のように、出力処理開始後に、加工フィルタ310において加工方法を変更可能とすることにより、デバイスの状況に応じて画像処理装置の内部処理のみによる再出力が可能となり、外部に問い合わせることなく迅速な処が可能となる。また、加工処理条件が変更され、再加工処理を行う際に、再度入力からデータを生成する必要がなく、作業効率をさらに向上させることが可能である。
次に、出力フィルタ320において選択されたアプリケーションにより出力処理を開始した後に、出力不可能信号を受信した場合に、第1パイプ41aに格納された不揮発性のメモリからデータの復元ができない場合の再出力処理の手順について説明する。図8は、実施の形態1にかかる画像処理装置100において出力処理開始後に、入力フィルタ300においてデータの復旧要求を行い、取得したデータを再加工し出力する手順を示すシーケンス図である。画像処理装置100は、操作パネル128に設けた設定ボタンやタッチパネル等を介して、利用者から各種機能の選択及び各種データ(文書、画像)を受付けているものとする。また、入力フィルタ300と、加工フィルタ310と、出力フィルタ320との間においては、所定のデータ形式による調停が行われ、出力フィルタ320により出力処理が開始されているものとする。尚、第1パイプ41aは、外部から入力を受付けたデータを記憶する不揮発性のメモリを備え、利用者から入力を受付けたデータは、第1パイプ41aに設けたメモリに格納されているものとする。
出力フィルタ320は、出力処理開始後にプリンタエラーや送信エラー等、種々の要因により、出力不可能信号を受信すると(ステップS811)、新たに出力されるデータの形式として第2データ形式を生成する。そして、出力条件を第1データ形式から第2データ形式へ変更し(ステップS812)、第2データ形式に基づきデータの出力制御処理を行う条件である第2出力制御条件を設定する。
続いて出力フィルタ320は、第2パイプ41bを介して加工フィルタ310との間でデータ形式を調停する(ステップS813)。加工フィルタ310は、出力フィルタ320との間でデータ形式の調停を行うと、第2データ形式に基づいてデータの加工処理を行う条件である第2加工処理条件を設定し、出力フィルタ320との間で調停したデータ形式を反映する(ステップS814)。
加工フィルタ310と出力フィルタ320との間でデータ形式の調停が完了すると、加工フィルタ310は、第1パイプ41aに格納される不揮発性のメモリを読み込む(ステップS815)。第1パイプ41aに格納した不揮発性のメモリから、加工対象となるデータを取得できない場合には(ステップS816)、加工フィルタ310は第1パイプ41aを介して入力フィルタ300に、データの再生成を要求し(ステップS817)、入力フィルタ300は、UI12に対しデータの復旧を要求する(ステップS818)。UI12は、操作パネル128にデータ入力を要求するメッセージを表示する等により利用者からのデータの再入力を要求する。
利用者から新たに原稿がセットされると(ステップS819)、入力フィルタ300は、利用者から新たに入力を受付けたデータを取得し(ステップS820)、第1パイプ41aに書き込みを行う(ステップS821)。第1パイプ41aは、書き込まれたデータを不揮発性のメモリにコピーして保存する(ステップS822)。加工フィルタ310は、第1パイプ41aに格納されたメモリからデータを読み込み(ステップS823)、新たに設定された第2データ形式に基づく第2加工処理条件に基づいてデータを加工処理し(ステップS824)、第2パイプ41bに書き込む(ステップS825)。出力フィルタ320は、第2パイプ41bから格納された加工済のデータを読み込み(ステップS826)、第2出力制御条件に基づいてデータの再出力処理を行う(ステップS827)。
以上のように、第1パイプ41aに格納した不揮発性のメモリからデータの復元が不可能である場合には、加工フィルタ310から第1パイプ41aを介して入力フィルタ300に対してデータの再生要求を行い、利用者から新たにデータの入力を受付けることにより、再出力が可能となる。これにより、利用者の所望の出力結果を、処理に反映させることが可能となる。
以上、実施の形態1にかかる画像処理装置について説明したが、上述した実施の形態に多様な変更又は改良を加えることができる。