(57)【要約】【課題】機能のカスタマイズ又は拡張などを簡略化させることのできる画像処理装置、画像処理方法及び画像処理プログラムを提供することを目的とする。【解決手段】本発明は、パイプ＆フィルタと呼ばれる考え方に基づくソフトウェアアーキテクチャを画像処理装置１００に適用することで、機能のカスタマイズ又は拡張などを簡略化する。さらに、画像処理装置１００における各処理を中断又はキャンセルする際に、出力フィルタ３２０から順次中断処理又はキャンセル処理を実行することにより、各処理の中断処理又は終了処理を適切に行う。【選択図】図２
2008066889.tif 000002
【特許請求の範囲】
【請求項１】
画像処理の対象とされるデータが入力される入力部と、
前記入力部により入力されるデータの入力処理を制御する入力フィルタと、
前記画像処理の結果を出力する出力部と、
前記出力部によるデータの出力処理を制御する出力フィルタと、
前記入力フィルタと前記出力フィルタとの間に、前記データを加工する、少なくとも一つの加工フィルタとを有し、
前記画像処理の中断処理又は終了処理を、出力側から順次実行することを特徴とする画像処理装置。
【請求項２】
前記入力フィルタ、前記出力フィルタ及び前記加工フィルタは、同一の動作定義に基づき制御されることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記入力フィルタ、前記出力フィルタ及び前記加工フィルタは、中断処理の場合に、供給されたデータに対する所定の処理を終了した後、該フィルタの入力側にあるフィルタに対して中断処理を開始させることを特徴とする請求項１または２に記載の画像処理装置。
【請求項４】
前記入力フィルタ、前記出力フィルタ及び前記加工フィルタを制御する制御手段を有し、
前記入力フィルタ、前記出力フィルタ及び前記加工フィルタは、前記制御手段により前記出力フィルタへ前記画像処理の実行指示が出された場合、それぞれにおける所定の処理を独立して実行することを特徴とする請求項１ないし３のいずれか一項に記載の画像処理装置。
【請求項５】
画像処理の対象とされるデータが入力される入力部により入力されるデータの入力処理を制御する手順と、
前記画像処理の結果を出力する出力部によるデータの出力処理を制御する手順と、
前記入力処理を制御する手順と、前記出力処理を制御する手順との間で、前記データを加工する手順とを有し、
前記画像処理の中断処理又は終了処理を、出力側から順次前記手順を実行することを特徴とする画像処理方法。
【請求項６】
コンピュータに、
画像処理の対象とされるデータが入力される入力部により入力されるデータの入力処理を制御する手順と、
前記画像処理の結果を出力する出力部によるデータの出力処理を制御する手順と、
前記入力処理を制御する手順と、前記出力処理を制御する手順との間で、前記データを加工する手順とを実行させ、
前記画像処理の中断処理又は終了処理を、出力側から順次前記手順を実行させることを特徴とする画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理方法及び画像処理プログラムに関する。
【背景技術】
【０００２】
近年において、プリンタ、コピー機、スキャナ、ファクシミリ、又はこれらの機能を一台の筐体で実現する複合機等の画像処理装置では、汎用的にコンピュータと同様にＣＰＵを備え、各機能はアプリケーションの制御によって実現されるようになっている。
【０００３】
例えば特許第３６７９３４９号公報（特許文献１）に記載された画像形成装置では、各アプリケーションから共通して利用される機能をプラットフォームとして備えており、このプラットフォームのＡＰＩ（Application Programming Interface）を利用してアプリケーションを実装することができる。係る画像形成装置によれば、共通して利用される機能がプラットフォームとして備えられていることにより、アプリケーションごとに重複した機能の実装が回避され、アプリケーション全体の開発効率を向上させることができる。
【特許文献１】特許第３６７９３４９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、共通して利用されるＡＰＩを備えたプラットフォームについては、このプラットフォームによって提供される機能又はインターフェースの粒度が適切に設計されないと、アプリケーションの開発効率の向上が期待以上にはかれない場合がある。
【０００５】
例えば、この粒度が小さすぎると、単純なサービスを提供するアプリケーションであるにも関わらず、多くのＡＰＩの呼び出しが必要とされ、そのソースコードは複雑なものとなってしまう。
【０００６】
一方、粒度が大きすぎると、ある機能の一部について変更を加えたサービスを提供するアプリケーションを実装したい場合、プラットフォーム内を修正しなければならず、開発工数の増加を招きかねない。特に、プラットフォーム内における各モジュールの依存関係が強い場合は、プラットフォームに新規機能を追加するだけでなく、既存部分の修正も必要とされる場合があり、事態はより複雑となる。
【０００７】
また、既存のアプリケーションによって提供されているサービスの一部（例えば、画像の入力処理）を変更したアプリケーションを実装したい場合、変更部分以外の部分については既存のアプリケーションを呼び出すといったようなことはできない。したがって、改めてソースコードを記述して新たなアプリケーションを実装しなければならない。
【０００８】
本発明は、上記の点を鑑みてなされたものであって、機能のカスタマイズ又は拡張などを簡略化させることのできる画像処理装置、画像処理方法及び画像処理プログラムを提供することを目的とするものである。
【課題を解決するための手段】
【０００９】
本発明の画像処理装置、画像処理方法及び画像処理プログラムは、上記目的を達成するために、以下の如き構成を採用した。
【００１０】
本発明の画像処理装置は、画像処理の対象とされるデータが入力される入力部と、前記入力部により入力されるデータの入力処理を制御する入力フィルタと、前記画像処理の結果を出力する出力部と、前記出力部によるデータの出力処理を制御する出力フィルタと、前記入力フィルタと前記出力フィルタとの間に、前記データを加工する、少なくとも一つの加工フィルタとを有し、前記画像処理の中断処理又は終了処理を、出力側から順次実行する構成とすることができる。
【００１１】
係る構成によれば、機能のカスタマイズ又は拡張などを簡略化させることのでき、且つ前記画像処理の中断処理及び終了処理を適切なタイミングで行うことができる。
【００１２】
また、前記入力フィルタ、前記出力フィルタ及び前記加工フィルタは、同一の動作定義に基づき制御される構成とすることができる。
【００１３】
係る構成によれば、前記各フィルタの制御を容易にする。また、前記各フィルタ自体の生成を容易にする。
【００１４】
また、前記入力フィルタ、前記出力フィルタ及び前記加工フィルタは、中断処理の場合に、供給されたデータに対する所定の処理を終了した後、該フィルタの入力側にあるフィルタに対して中断処理を開始させる構成とすることができる。
【００１５】
係る構成によれば、所定のデータまで出力処理が終了したのちに前記画像処理が中断または終了されるので、前記画像処理装置の安全性を損なうことなく適切なタイミングで前記画像処理の中断処理または終了処理を行うことができる。
【００１６】
また、前記入力フィルタ、前記出力フィルタ及び前記加工フィルタを制御する制御手段を有し、前記入力フィルタ、前記出力フィルタ及び前記加工フィルタは、前記制御手段により前記出力フィルタへ前記画像処理の実行指示が出された場合、それぞれにおける所定の処理を独立して実行する構成とすることができる。
【００１７】
係る構成によれば、前記各フィルタにおいて任意のタイミングでそれぞれの処理を実行することができる。
【００１８】
本発明の画像処理方法は、画像処理の対象とされるデータが入力される入力部により入力されるデータの入力処理を制御する手順と、前記画像処理の結果を出力する出力部によるデータの出力処理を制御する手順と、前記入力処理を制御する手順と、前記出力処理を制御する手順との間で、前記データを加工する手順とを有し、前記画像処理の中断処理又は終了処理を、出力側から順次前記手順を実行する画像処理方法とすることができる。
【００１９】
係る方法によれば、機能のカスタマイズ又は拡張などを簡略化させることのでき、且つ前記画像処理の中断処理及び終了処理を適切なタイミングで行うことができる。
【００２０】
本発明の画像処理プログラムは、コンピュータに、画像処理の対象とされるデータが入力される入力部により入力されるデータの入力処理を制御する手順と、前記画像処理の結果を出力する出力部によるデータの出力処理を制御する手順と、前記入力処理を制御する手順と、前記出力処理を制御する手順との間で、前記データを加工する手順とを実行させ、前記画像処理の中断処理又は終了処理を、出力側から順次前記手順を実行させるプログラムであっても良い。
【００２１】
係るプログラムによれば、機能のカスタマイズ又は拡張などを簡略化させることのでき、且つ前記画像処理の中断処理及び終了処理を適切なタイミングで行うことができる。
【発明の効果】
【００２２】
本発明によれば、機能のカスタマイズ又は拡張などを簡略化させることのでき、且つ前記画像処理の中断処理及び終了処理を適切なタイミングで行うことができる。
【発明を実施するための最良の形態】
【００２３】
本発明は、パイプ＆フィルタと呼ばれる考え方に基づくソフトウェアアーキテクチャを画像処理装置に適用することで、機能のカスタマイズ又は拡張などを簡略化する。さらに、本発明では、画像処理を中断又は終了する際に、出力側のフィルタから順次中断処理又は終了処理を実行することにより、画像処理の中断処理又は終了処理を適切に行う。
【実施例１】
【００２４】
以下に図１を参照して上記のパイプ＆フィルタの概念について説明する。図１は、パイプ＆フィルタの概念を説明する図である。図１に示す「Ｐ」はパイプを示し、「Ｆ」はフィルタを示す。
【００２５】
フィルタとは、入力されたデータに対して所定の処理を施して、その処理結果を出力するプログラムである。そしてパイプは、フィルタとフィルタを連結する手段であり、パイプの入力側に連結されたフィルタから出力される処理結果を一時的に保持し、その後パイプの出力側へ連結されたフィルタへデータを伝達する。このように、パイプ＆フィルタの概念によれば、パイプを介在させてフィルタにおける処理を連続したものとすることができる。
【００２６】
本実施例では、フィルタにおいて施される所定の処理を、入力されたデータに対し、所定の変換を施す処理と考える。すなわち、本実施例の画像処理装置では、画像処理装置で実現される各機能をドキュメント（入力データ）に対する「変換処理」の連続として捉える。画像処理装置の各機能は、ドキュメントすなわちデータの入力、加工及び出力によって構成されるものと考える。そこで、本実施例では「入力処理」、「加工処理」及び「出力処理」のそれぞれを「変換処理」として捉え、一つの変換処理を実現するソフトウェア部品をフィルタとして構成した。
【００２７】
本実施例では、データの入力処理を制御するフィルタを入力フィルタ、データの加工処理を制御するフィルタを加工フィルタ、データの出力処理を制御するフィルタを出力フィルタとした。これらの各フィルタはそれぞれ独立したプログラムであって、フィルタ間の依存関係は存在しない。よって、各フィルタは、画像処理装置において独立してフィルタ単位で追加（インストール）、削除（アンインストール）することが可能である。
【００２８】
以下に、本実施例の画像処理装置１００について図面を参照して説明する。
【００２９】
画像処理装置１００では、画像処理装置１００における各種機能を実現させるソフトウェアアーキテクチャに、上記のパイプ＆フィルタの概念が適用されている。図２は、本実施例の画像処理装置１００のソフトウェア構成を示す構成図の例である。画像処理装置１００は、例えばプリンタ、コピー、スキャナ、又はＦＡＸ等の複数の機能を一台の筐体において実現する複合機である。
【００３０】
画像処理装置１００の機能を実現するソフトウェアは階層構造となっており、ユーザインターフェイス層１０、コントロール層２０、アプリケーションロジック層３０、デバイスサービス層４０及びデバイス制御層５０により構成されている。これらの各層における上下関係は、層間の呼び出し関係に基づいている。すなわち、図中において上位層が下位層を呼び出す。
【００３１】
画像処理装置１００において、ユーザインターフェイス層１０によりユーザから各種機能の実行指示が成されると、ユーザインターフェイス層１０は、コントロール層２０を呼び出しこの実行要求に基づきアプリケーションロジック層３０を制御する。アプリケーションロジック層３０では、コントロール層２０からの指示に基づき要求された機能を実現させるアプリケーションを実行する。そして、この実行結果に基づきデバイスサービス層４０、デバイス制御層５０が画像処理装置１００のハードウェア資源を制御する。画像処理装置１００では、このような動作によりユーザインターフェイス層１０が受け付けた機能に対応した出力結果を得る。
【００３２】
以下に各層について説明する。
【００３３】
ユーザインターフェイス層１０には、例えば通信サーバ部１１及びローカルＵＩ（user interface）部１２が実装されており、画像処理装置１００の各種機能を実現するための実行要求を受け付ける機能を有する。ここで言う各種機能とは、例えばコピー機能、印刷機能、スキャン機能、ＦＡＸ機能などである。ユーザインターフェイス層１０において、例えば通信サーバ部１１は、例えば図示しないクライアントＰＣ（Personal Computer）等からネットワークを介して実行要求を受け付けても良い。ローカルＵＩ部１２は、例えば画像処理装置１００に設けられた図示しないオペレーションパネルなどを介して実行要求を受け付けても良い。ユーザインターフェイス層１０において受け付けられた実行要求は、コントロール層２０へ伝達される。
【００３４】
コントロール層２０では、画像処理装置１００の各機能を実現する処理を制御するための機能が実装されている。具体的には、例えば、要求された機能に応じてアプリケーションロジック層３０における各フィルタを接続し、接続されたフィルタを用いて機能の実行を制御する。尚、以下の本実施例において述べる画像処理装置１００の機能とは、画像処理装置１００がユーザに対して提供する一つのまとまった単位（要求が入力されて最終的な出力が得られるまで）のサービスの定義であり、ソフトウェア的には一つのまとまった単位のサービスを提供するアプリケーションと同義である。
【００３５】
アプリケーションロジック層３０には、画像処理装置１００において提供される機能の一部を実現する部品群である各種フィルタが実装されている。アプリケーションロジック層３０では、コントロール層２０の制御により、複数のフィルタを組み合わせて一つの機能が実現される。本実施例におけるアプリケーションロジック層３０には、入力フィルタ３００、加工フィルタ３１０、出力フィルタ３２０が実装されている。これら各フィルタは、同一の定義に基づき動作するものであり、この定義に基づきコントロール層２０に制御される。これら各フィルタの詳細は後述する。
【００３６】
デバイスサービス層４０には、アプリケーションロジック層３０に実装された各フィルタが共通して利用される下位の機能が実装されている。本実施例のデバイスサービス層４０には画像パイプ４１、データ管理部４２等が実装されている。画像パイプ４１は上で述べたパイプの機能を実現するものであり、アプリケーションロジック層３０に実装されている各フィルタのうち、一のフィルタからの出力結果を、一のフィルタへ伝達する。ここで画像パイプ４１は、例えば入力フィルタ３００と加工フィルタ３１０とを連結しても良いし、加工フィルタ３１０と出力フィルタ３２０とを連結するものであっても良い。データ管理部４２は、画像処理装置１００内のデータベースであって、例えばユーザにより登録されたユーザ情報や、画像処理装置１００において各種の処理が施された文書データや画像データなどが蓄積されて保管されていても良い。
【００３７】
デバイス制御層５０には、ハードウェアを制御するプログラムであるドライバが実装されている。本実施例のデバイス制御層５０には、例えばスキャナ制御部５１、プロッタ制御部５２、メモリ制御部５３、電話回線制御部５４及びネットワーク制御部５５等が実装されている。これらの各制御部は、それぞれの名称に付けられたデバイスを制御するものである。
【００３８】
以下に、アプリケーションロジック層３０に実装された各フィルタについてさらに説明する。
【００３９】
本実施例の入力フィルタ３００は、画像処理装置１００の外部より入力されたデータに対する入力処理を制御する。入力フィルタ３００には、読取フィルタ３０１、文書保管読出フィルタ３０２、メール受信フィルタ３０３、ＦＡＸ受信フィルタ３０４、ＰＣ文書受信フィルタ３０５、レポートフィルタ３０６等が含まれる。
【００４０】
読取フィルタ３０１は、例えばスキャナによる画像データの読取を制御し、読み取られた画像データを出力する。メール受信フィルタ３０３は、画像処理装置１００において電子メールを受信し、受信した電子メールに含まれるデータを出力する。ＦＡＸ受信フィルタ３０４はＦＡＸ受信を制御し、受信されたデータを出力する。ＰＣ文書受信フィルタ３０５は、図示しないクライアントＰＣなどから印刷データを受信し、この印刷データを出力する。レポートフィルタ３０６は、画像処理装置１００の設定情報や履歴情報などを例えば表形式などに整え、この整えられたデータを出力する。尚ここで、保管文書読出フィルタ３０２は、画像処理装置１００の外部からではなく、画像処理装置１００内の例えばデータ管理部４２や、画像処理装置１００の有する図示しない記憶装置などに蓄積されたデータを読み出し、読み出したデータを出力するものとした。
【００４１】
本実施例の加工フィルタ３１０は、加工フィルタ３１０の入力側のフィルタより入力されたデータに所定の処理を施し、加工フィルタ３１０の出力側にあるフィルタへ処理結果を出力する。加工フィルタ３１０には、文書加工フィルタ３１１、文書変換フィルタ３１２等が含まれる。文書加工フィルタ３１１は、入力されたデータに所定の画像変換処理を施し出力する。この画像変換処理とは、例えば入力されたデータの集約、拡大、縮小処理等であっても良い。文書変換フィルタ３１２は、入力されたデータにレンダリング処理を施し出力する。すなわち、文書変換フィルタ３１２に入力されたＰｏｓｔＳｃｒｉｐｔデータをビットマップデータに変換して出力する。
【００４２】
本実施例の出力フィルタ３２０は、入力されたデータ対する出力処理を制御し、画像処理装置１００の外部へ出力する。出力フィルタ３２０には、印刷フィルタ３２１、保管文書登録フィルタ３２２、メール送信フィルタ３２３、ＦＡＸ送信フィルタ３２４、ＰＣ文書送信フィルタ３２５、プレビューフィルタ３２６等が含まれる。
【００４３】
印刷フィルタ３２１は、入力されたデータをプロッタに出力（印刷）させる。メール送信フィルタ３２３は、入力されたデータを電子メールに添付して送信する。ＦＡＸ送信フィルタ３２４は、入力されたデータをＦＡＸ送信する。ＰＣ文書送信フィルタ３２５は、入力されたデータを図示しないクライアントＰＣなどに送信する。プレビューフィルタ３２６は、入力されたデータを画像処理装置１００の有する図示しないオペレーションパネルにプレビュー表示させる。尚ここで、文書登録フィルタ３２２から出力されるデータについては、例外的に画像処理装置１００の外部ではなく画像処理装置１００内の記憶装置やデータ管理部４２に対してデータが出力されて保存されるものとした。
【００４４】
アプリケーションロジック層３０では、上記各フィルタを組み合わせることにより、画像処理装置１００の各機能を実現している。係る構成によれば、画像処理装置１００では、フィルタとパイプの組み合わせにより各種の機能を実現することができる。具体的には、例えばコピー機能を実現したい場合には、読取フィルタ３０１、文書加工フィルタ、印刷フィルタ３２１を組み合わせれば良い。
【００４５】
以下に、本実施例の画像処理装置１００の動作について説明する。図３は、本実施例の画像処理装置１００において一機能を実現させる動作を説明するフローチャートの例である。
【００４６】
まず、入力フィルタは、入力デバイスよりデータを入力し（Ｓ１１１）、このデータを、出力側に接続されているパイプに出力する（Ｓ１１２）。なお、データが複数回に分けて入力される場合（複数枚の原稿がスキャンされる場合等）は、データの入力とパイプへの出力が繰り返される。全ての入力データについて処理が終了すると（Ｓ１１３でＹＥＳ）、入力フィルタの処理は終了する。
【００４７】
変換フィルタは、入力側に接続されているパイプに対するデータの入力を検知すると処理を開始する。まず、当該パイプからデータを読み込み（Ｓ１２１）、データに対して画像処理を施す（Ｓ１２２）。続いて、処理結果としてのデータを出力側に接続されているパイプに出力する（Ｓ１２３）。入力側のパイプに入力された全てのデータについて処理が終了すると（Ｓ１２４でＹＥＳ）、変換フィルタの処理は終了する。
【００４８】
出力フィルタは、入力側に接続されているパイプに対するデータの入力を検知すると処理を開始する。まず、当該パイプからデータを読み込み（Ｓ１３１）。続いて、読み込まれたデータを出力デバイスを利用して出力する（Ｓ１３２）。入力側のパイプに入力された全てのデータについて処理が終了すると（Ｓ１３３でＹＥＳ）、出力フィルタの処理は終了する。
【００４９】
このように、画像処理装置１００では、各フィルタを部品として各機能を構築するため、機能のカスタマイズ又は拡張を簡便に行うことができる。すなわち、各フィルタ間には、機能的な依存関係はなく独立性が保たれているため、フィルタの新たな追加やフィルタの組み合わせの変更によって、新たな機能（アプリケーション）を容易に開発することができる。したがって、新たなアプリケーションの実装が要求された場合、当該アプリケーションの一部の処理について実装されていない場合は、当該一部の処理を実現するフィルタのみを開発し、インストールすればよい。よって、コントロール層２０及びアプリケーションロジック層３０より下位の層について、新たなアプリケーションの実装に応じて発生する修正の頻度を低下させることができ、安定したプラットフォームを提供することができる。
【００５０】
このため、プラットフォームによって提供される機能又はインターフェイスの粒度に影響されることなくアプリケーションの開発効率を向上させることができる。また、既存のアプリケーションによって提供されるサービスの一部を変更したアプリケーションを実装したい場合にも、このサービスを提供するフィルタの一部のみを変更すれば良いので新たにソースコードを記述する必要がなく、開発効率を向上させることができる。
【００５１】
さらに、本実施例の画像処理装置１００では、各機能を実現する処理シーケンスにおいて、出力フィルタ３２０側から順次処理を行うように構成した。すなわち、コントロール層２０は、各機能の実行要求を出力フィルタ３２０へ伝達し、出力フィルタ３２０から順に入力フィルタ３００へ向かってこの実行要求を伝達する構成とした。
【００５２】
係る構成によれば、例えば画像処理装置１００において実行中の処理を中断する場合やキャンセルする場合においても適切なタイミングで、かつ装置の安全性を損なわずに処理を中断または終了することができる。
【００５３】
また、本実施例では、処理の指示を受け付けたとき、各フィルタが同一のふるまい（動作）をするものとした。この場合の各フィルタにおける同一のふるまいとは、処理の指示を受け付けると、予め決められた所定の処理を実行した後、該フィルタの入力側にあるフィルタへ処理の指示を伝達するものである。このふるまいは、各フィルタの動作定義であり、各フィルタはこの動作定義に基づき制御されるものとした。すなわち、入力フィルタ３１０、加工フィルタ３２０、出力フィルタ３３０は、同一の動作定義に基づき制御されるものとした。係る構成によれば、各フィルタが同一の動作をするため、各フィルタの制御が容易になる。
【００５４】
以下に、具体例を上げて画像処理装置１００内における処理シーケンスを説明する。
【００５５】
図４は、コピー機能の処理を実行する際の処理手順を説明するための図である。
【００５６】
画像処理装置１００において図示しないオペレーションパネルなどにより、コピー機能が選択されると、ユーザインターフェイス層１０はこのコピー機能の実行要求を受け付ける。この実行要求は、ユーザインターフェイス層１０からコントロール層２０へ伝達され、コントロール層２０からアプリケーションロジック層３０へ伝達される。
【００５７】
ここで、本実施例の画像処理装置１００では、コントロール層２０から、出力フィルタ３２０へ実行要求が伝達されるので、この場合は実行要求が印刷フィルタ３２１へ伝達される（Ｓ４１１）。印刷フィルタ３２１は、この実行要求を受けると画像パイプ４１を介して印刷フィルタ３２１の入力側にある文書加工フィルタ３１１へ実行要求を伝達する（Ｓ４１２、Ｓ４１３）。文書加工フィルタ３１１は、さらにこの実行要求を、文書加工フィルタ３１１に入力側にある読取フィルタ３０１へ画像パイプ４１を介して伝達する（Ｓ４１４、Ｓ４１５）。尚この処理では、各フィルタにおいて、上記動作定義における処理の指示を受け付け後の所定の処理が設定されていないものとし、各フィルタは処理の指示を受け付けた後は該フィルタの入力側のフィルタに指示を伝達するものとした。
【００５８】
読取フィルタ３０１は、この実行要求を受けると、画像処理を施す対象となるデータを読み取るためにスキャナ５１Ａへ読取指示を出し、データを読み取るページ入力処理を開始する（Ｓ４１６）。尚ここでは１ページの紙原稿をコピーするものとした。この１ページ分のページ入力処理が終了すると（Ｓ４１７）、読取フィルタ３０１は、この入力されたデータを画像パイプ４１へ書き込む（Ｓ４１８）。
【００５９】
画像パイプ４１にデータが書き込まれると、文書加工フィルタ３１１はこれを検知し、画像パイプ４１からこのデータを読み込む（Ｓ４１９）。そして文書加工フィルタ３１１は、画像処理部（以下、ＩＰＵ）５７においてデータに加工処理を施す（Ｓ４２０）。ここで施される加工処理とは、例えばデータの集約、拡大、縮小処理等であっても良い。ＩＰＵ５７においてデータ加工が終了すると（Ｓ４２１）、この加工済みのデータを画像パイプ４１へ書き込む（Ｓ４２２）。
【００６０】
画像パイプ４１にデータが書き込まれると、印刷フィルタ３２１はこれを検知し、画像パイプ４１よりデータを読み出し（Ｓ４２３）、プロッタ５２Ａにおいてデータの出力処理を実行する（Ｓ４２４）。そして、プロッタ５２Ａにおいて出力処理が終了すると、コピー機能の実行処理を終了する（Ｓ４２５）。
【００６１】
尚ここで、スキャナ５１Ａ、プロッタ５２Ａは図２において図示していないが、スキャナ５１Ａは入力デバイスであり、プロッタ５２Ａは出力デバイスである。スキャン５１Ａはスキャナ制御部５１により制御され、プロッタ５２Ａはプロッタ制御部５２により制御されるものである。
【００６２】
また、図４の説明では各フィルタにおいて実行される処理をデータの流れを追って説明したが、各フィルタは、各フィルタにおける処理の実行指示を受けた後は、データの流れとは無関係に任意のタイミングで処理を開始しても良い。この場合、各フィルタは、各フィルタの入力側のパイプへデータが書き込まれるまで待機し、入力側のパイプへデータが書き込まれると、各フィルタにおける処理を開始しても良い。尚、入力フィルタには入力側のパイプが存在しないため、実行指示を受けたタイミングで処理を開始しても良い。
【００６３】
次に、画像処理装置１００内において実行中の処理の中断について具体例をあげて説明する。
【００６４】
画像処理装置１００では、実行中の処理の中断においても出力フィルタ３２０から順次行っていく。このように出力フィルタ３２０における処理から順次中断して行くことにより、中断処理において、所望のデータが出力された後に実行中の処理を中断するように制御することができる。以下にコピー機能の処理を実行中の画像処理装置の例について説明する。
【００６５】
例えばコピー機能の処理を実行中の画像処理装置において、コピー機能の処理の中断指示が出されたとする。この場合に画像処理装置において、中断指示を受け付けた時点で各フィルタの処理を同時に中断すると、この時点で処理途中であったページが出力されず、コピー用紙が画像処理装置内に残される可能性がある。この場合、発火の危険性などを伴い画像処理装置の安全性が損なわれる。
【００６６】
このような事態を回避するためには、中断指示を受け付けた時点で画像処理装置内に処理途中のページがあった場合にこれを出力した後に処理を中断すれば良い。
【００６７】
また、例えば画像処理装置１００においてコピー機能の利用に対して課金する場合がある。このような場合には、例えばコピー機能においてはコピー用紙が１枚出力される毎に課金される設定となっている。このような設定の画像処理装置において、例えばコピー機能の処理の実行中に処理の中断指示を受け付けた場合には、現在処理途中のページに対しても課金する必要がある。よって、画像処理装置では、現在処理途中のページまで出力し、課金対象とした後に処理をコピー機能の処理の中断をすることが望ましい。このためには、出力フィルタ３２０において、中断指示を受け付けた時点で処理途中であるページを出力した後にその他のフィルタにおける処理を中断すれば良い。
【００６８】
このように中断処理を行えば、例えば画像処理装置においてコピー機能の処理を再開する場合には次のページから通常の処理を開始すれば良く、処理の再開にあたり特別な回復処理等を必要とせず、速やかに処理を再開することができる。
【００６９】
そこで、本実施例の画像処理装置１００では、出力フィルタ３２０より中断処理を開始する構成とした。さらに画像処理装置１００では、上記の動作定義に基づく動作を行う。すなわち、画像処理装置１００では、出力フィルタ３２０を含む各フィルタの動作を、各フィルタにおいて中断処理を受け付けたとき、その時点で処理途中のデータを出力した後、該フィルタよりも入力側にあるフィルタに対し中断処理を伝達する動作とする構成とした。係る構成とすることにより、画像処理装置１００では上記の課題を解決している。尚ここでは、中断指示を受け付けたとき、その時点で処理途中のデータを出力する処理が、動作定義における所定の処理に該当する。
【００７０】
以下に図５を参照して本実施例の画像処理装置１００におけるコピー機能の処理の中断について説明する。図５は、コピー機能の処理を中断する際の処理手順を説明するための図である。
【００７１】
画像処理装置１００において、印刷フィルタ３２１によりプロッタからの印刷処理が実行されているとき（Ｓ５１１）、ユーザインターフェイス層１０が印刷処理の中断指示を受け付けると、この中断指示はコントロール層２０に伝達される。そして、コントロール層２０は、この中断指示に基づき印刷フィルタ３２１へ処理の中断指示を出す（Ｓ５１２）。印刷フィルタ３２１では、この中断指示を受け付けると、プロッタ５２Ａにおける印刷処理の中断処理を開始する。
【００７２】
ここで、印刷フィルタ３２１は、印刷処理を中断する際に、所定のデータまで出力し、その後に印刷処理を中断する。ここで言う、所定のデータとは、中断指示を受け付けた時点で処理途中であったデータである。この所定のデータとは、具体的には例えば印刷処理において両面印刷において片面のみの印刷処理が済んでいた場合には、裏面のページのデータまでを所定のデータとし、裏面のページが印刷出力された後に印刷処理を中断しても良い。また、印刷フィルタ３２１は、印刷処理が片面印刷であった場合には、現在印刷処理中のページのデータを所定のデータであっても良い。また、どのデータまでを所定のデータとするか否かについては、画像処理装置１００において予め設定されていても良い。
【００７３】
印刷フィルタ３２１は、プロッタ５２Ａにおいて所定のデータまで印刷出力を行うと、印刷処理を中断する（Ｓ５１３）。そして、印刷フィルタ３２１において中断処理が終了したことを画像パイプ４１へ伝達する（Ｓ５１４）。文書加工フィルタ３１１は、画像パイプ４１より中断指示を受けると、この時点で所定のデータに対して加工処理を施した後に加工処理を中断する（Ｓ５１５）。すなわち、文書加工フィルタ３１１は、画像パイプ４１より中断指示を受けた時点で加工処理途中であったデータに対する加工処理を実行し、この加工処理が終了した後に中断処理を開始する。そして、文書加工フィルタ３１１は、加工処理を中断した後、画像パイプ４１を介して読取フィルタ３０１へ中断指示を伝達する（Ｓ５１６）。
【００７４】
読取フィルタ３０１は、画像パイプ４１より中断指示を受けると、スキャナ５１Ａにおける読取処理の中断処理を開始する。読取フィルタ３０１は、読取処理を中断する際に、他のフィルタと同様に、所定のデータまで読取処理を実行した後に読取処理を中断する（Ｓ５１７）。すなわち、読取フィルタ３１１は、画像パイプ４１より中断指示を受けた時点で読取途中であったデータに対する読取処理を実行し、この読取処理が終了した後、中断処理を開始する。そして、読取フィルタ３０１において中断処理が完了すると、画像処理装置１００の中断処理が完了し（Ｓ５１８）、画像処理装置１００は中断状態へ遷移する。
【００７５】
尚ここで、画像処理装置１００が中断状態に遷移したときに、全ページに対しての処理が終了していた場合には、画像処理装置１００は出力デバイスを解放し、処理完了後の状態へ遷移しても良い。
【００７６】
次に、コピー機能の処理を実行中の画像処理装置における終了処理、すなわちキャンセル処理について説明する。
【００７７】
画像処理装置のキャンセル時における処理手順では、キャンセル指示を受けた時点でプロッタ５２Ａを最初に停止させる。これは、画像処理装置１００においてキャンセル指示を受け付けたとき、逸早く印刷処理を停止させるためである。
【００７８】
例えば上述したように、コピー用紙が１枚出力される毎に課金される設定の画像処理装置では、キャンセルした後に処理途中であったページが出力されると、このページに対しても課金されるため、利用者にとって望ましくない。そこで、本実施例の画像処理装置１００では、キャンセル指示を受け付けた場合には、処理途中のページを出力する前に、プロッタ５２Ａの動作を停止させることにより、このような課題を解決している。また、本実施例の画像処理装置１００では、上記の動作定義に基づく動作を行う。すなわち、画像処理装置１００では、出力フィルタ３２０を含む各フィルタの動作を、キャンセル指示を受け付けた場合、該フィルタのキャンセル処理を行い、該フィルタのキャンセル処理が終了した後、該フィルタの入力側のフィルタへキャンセル指示を伝達する構成とした。尚ここでは、キャンセル指示を受け付けたとき、その時点で該フィルタのキャンセル処理を行う処理が、動作定義における所定の処理に該当する。
【００７９】
図６は、コピー機能の処理をキャンセルする際の処理手順を説明するための図である。
【００８０】
画像処理装置１００において、印刷フィルタ３２１によりプロッタからの印刷処理が実行されているとき（Ｓ６１１）、ユーザインターフェイス層１０が印刷処理のキャンセル指示を受け付けると、このキャンセル指示はコントロール層２０に伝達される。そして、コントロール層２０は、このキャンセル指示に基づき印刷フィルタ３２１へ印刷処理のキャンセル指示を出す（Ｓ６１２）。印刷フィルタ３２１では、まず最初にプロッタ５２Ａの動作を停止させる（Ｓ６１３）。そして印刷フィルタ３２１は、プロッタ５２Ａを停止させた後、次の新たな処理を実行するための回復処理などを行いキャンセル処理を終了する。
【００８１】
印刷フィルタ３２１は、キャンセル処理が終了した後、このキャンセル指示を画像パイプ４１へ伝達する（Ｓ６１４）。画像パイプ４１は、これを文書加工フィルタ３２１へ伝達する（Ｓ６１５）。尚、ここでキャンセル処理が実行できなかった場合には、印刷フィルタ３２１は、現在処理途中のページが出力された後にキャンセル指示を画像パイプ４１へ伝達しても良い。
【００８２】
また画像処理装置１００は、キャンセル処理が終了した後、装置内に残されたコピー用紙を排紙しても良い。また、画像処理装置１００が、例えば両面印刷処理の途中にキャンセル指示を受け付けた場合などには、片面のみの処理が終了した状態であっても他の片面の処理をキャンセルして排紙しても良い。
【００８３】
文書加工フィルタ３１１は、画像パイプ４１よりキャンセル指示を受けると、加工処理をキャンセルする（Ｓ６１６）。そして、文書加工フィルタ３１１は、加工処理のキャンセル処理を終了すると、このキャンセル指示を画像パイプ４１へ伝達する（Ｓ６１７）。
【００８４】
読取フィルタ３０１は、画像パイプ４１よりキャンセル指示を受けると、読取処理をキャンセルする（Ｓ６１８）。このとき、読取フィルタ３０１は、キャンセル指示を受けてスキャナ５１Ａの動作を停止させ、スキャナ５１Ａ内に原稿が残っていた場合にはこれを排紙しても良い。読取フィルタ３０１においてキャンセル処理が終了すると、画像処理装置１００におけるキャンセル処理が終了し（Ｓ６１９）、出力デバイスであるプロッタ５２Ａが解放される。
【００８５】
画像処理装置１００では、以上のようにキャンセル処理を実行するため、逸早く、かつ適切なタイミングで出力処理を停止させることができる。
【００８６】
以上に説明したように、本実施例の画像処理装置１００では、各処理シーケンスにおいて出力フィルタ３２０の動作を基準にして制御を行っている。このため、各処理における中断処理やキャンセル処理においても、フィルタの制御系を変更することなく適切に実行中の各処理の中断、キャンセルを行うことができる。また、本実施例の画像処理装置１００では、各フィルタが、各処理において同一の動作定義にしたがって制御されるため、コントロール層２０におけるフィルタの制御を容易にし、かつ各フィルタの生成を容易にすることができる。
【００８７】
次に、図７を参照して上記実施例で説明した各機能を実現させる画像処理プログラムが記録された記憶媒体を説明する。記憶媒体４１０に記録された画像処理プログラムが、コンピュータ５００に読み込まれて実行されることにより、本実施例で説明した各機能を実現することができる。
【００８８】
例えばコンピュータ５００は、ＣＰＵ５１０、ハードディスク５２０、メモリ５３０、表示部５４０、入力部５５０、通信部５６０、記憶媒体読み込み部５７０を備えている。ＣＰＵ５１０は演算処理装置であって、コンピュータ５００において実行される演算や処理を実行する。ハードディスク５２０は、データを格納する記憶手段であって、コンピュータ５００上で動作するアプリケーションや、このアプリケーションにより作成されたデータなどが格納されている。メモリ５３０には、コンピュータ５００に係る各種の設定値や、ＣＰＵ５１０での演算結果などが格納される。
【００８９】
表示部５４０はディスプレイなどであり、コンピュータ５００において作成されたデータなどをユーザに閲覧可能に表示する。入力部５５０は例えばキーボードやマウスであって、ユーザの操作により各種データが入力される。通信部５６０は例えばネットワークコントロールユニットなどであり、コンピュータ５００が外部の装置と通信を行うためのものである。記憶媒体読み込み部５７０は、各種記憶媒体に記録されたデータやプログラムなどを読み込むものであり、例えばフロッピー（登録商標）ディスクドライバなどである。
【００９０】
記憶媒体４１０は、本実施例の各機能を実現させる画像処理プログラム４００が記録されている。この画像処理プログラム４００は、記憶媒体読み込み部５７０により読み込まれてＣＰＵ５１０において実行される。記憶媒体４１０は、例えばフロッピー（登録商標）ディスクやＣＤ−ＲＯＭ（Compact Disk Read Only Memory）等であっても良く、コンピュータ７０において読み取り可能なに媒体であれば良い。また、画像処理プログラム４００はネットワークを介して通信部５６０により受信されて、ハードディスク５２０等に格納されても良い。
【００９１】
以上、各実施例に基づき本発明の説明を行ってきたが、上記実施例にあげた構成、その他の要素との組み合わせなど、ここで示した要件に本発明が限定されるものではない。これらの点に関しては、本発明の主旨をそこなわない範囲で変更することが可能であり、その応用形態に応じて適切に定めることができる。
【産業上の利用可能性】
【００９２】
本発明は、パイプ＆フィルタの概念を適用した画像処理装置、画像処理方法、画像処理プログラムに利用可能である。
【図面の簡単な説明】
【００９３】
【図１】パイプ＆フィルタの概念を説明する図である。
【図２】本実施例の画像処理装置１００のソフトウェア構成を示す構成図の例である。
【図３】本実施例の画像処理装置１００において一機能を実現させる動作を説明するフローチャートである。
【図４】コピー機能の処理を実行する際の処理手順を説明するための図である。
【図５】コピー機能の処理を中断する際の処理手順を説明するための図である。
【図６】コピー機能の処理をキャンセルする際の処理手順を説明するための図である。
【図７】実施例で説明した各機能を実現させる画像処理プログラムが記録された記憶媒体を説明する図である。
【符号の説明】
【００９４】
１００  画像処理装置
３００  入力フィルタ
３０１  読取フィルタ
３１０  加工フィルタ
３１１  文書加工フィルタ
３２０  出力フィルタ
３２１  印刷フィルタ
４００  画像処理プログラム
【図１】
2008066889.tif 000003
【図２】
2008066889.tif 000004
【図３】
2008066889.tif 000005
【図４】
2008066889.tif 000006
【図５】
2008066889.tif 000007
【図６】
2008066889.tif 000008
【図７】
2008066889.tif 000009