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