説明

画像処理装置およびアプリケーション実行方法

【課題】機能のカスタマイズまたは拡張等を簡便化させるとともに、画像データを入力するコンポーネントと画像データを出力するコンポーネントとで処理できる画像データの種類が異なる場合でも適正な処理を行えるようにする。
【解決手段】画像処理の対象とするデータを入力する一つ以上の入力部と、該画像処理の結果を出力する一つ以上の出力部と、前記入力部に応じて当該入力部からのデータの入力処理を制御する第一のフィルタと、前記出力部に応じて当該出力部への出力を制御する第二のフィルタとを備え、前記第一のフィルタと前記第二のフィルタとの接続によりアプリケーションが構築される画像処理装置であって、ジョブの実行時、入手した画像データの種類が異なる場合は、間に備えられた画像データの種類を変換する第三のフィルタで、前記第一のフィルタが対応する画像データの種類から前記第二のフィルタが対応する画像データの種類へ変換する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置およびアプリケーション実行方法に関し、特に画像処理の対象とするデータを入力する複数種類の入力部と、該画像処理の結果を出力する複数種類の出力部とを備えた画像処理装置およびアプリケーション実行方法に関する。
【背景技術】
【0002】
近年におけるプリンタ、コピー機、スキャナ、ファクシミリ、またはこれらの機能を一台の筐体で実現する複合機等の画像処理装置では、メモリ等の制限は厳しいものの、汎用的なコンピュータと同様にCPUを備え、各機能はアプリケーションの制御によって実現されるようになっている。
【0003】
例えば、特許文献1に記載された画像処理装置では、各アプリケーションから共通的に利用される機能をプラットフォームとして備えており、当該プラットフォームのAPI(Application Program Interface)を利用してアプリケーションを実装することができる。かかる画像処理装置によれば、共通的に利用される機能がプラットフォームとして備えられていることにより、アプリケーションごとに重複した機能の実装が回避され、アプリケーション全体の開発効率を向上させることができる。
【特許文献1】特許第3679349号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかしながら、一般的に、共通的に利用されるAPIを備えたプラットフォームについては、当該プラットフォームによって提供される機能またはインタフェースの粒度が適切に設計されていないと、アプリケーションの開発効率の向上が期待以上に図れない場合がある。
【0005】
例えば、当該粒度が小さ過ぎると、単純なサービスを提供するアプリケーションであるにもかかわらず、多くのAPIの呼び出しが必要とされ、そのソースコードは複雑なものとなってしまう。
【0006】
一方、当該粒度が大き過ぎると、あるインタフェースによって提供されている機能の一部について変更を加えたサービスを提供するアプリケーションを実装したい場合、当該プラットフォーム内を修正しなければならず、開発工数の増加を招いてしまいかねない。特に、プラットフォーム内における各モジュールの依存関係が強い場合は、プラットフォームに新規機能を追加するだけでなく、既存部分の修正も必要とされる場合があり、事態はより複雑となる。
【0007】
また、既存のアプリケーションによって提供されているサービスの一部(例えば、画像の入力処理)を変更したアプリケーションを実装したい場合、当該一部以外の部分については既存のアプリケーションを呼び出すといったようなことはできない。したがって、改めてソースコードを記述して新たなアプリケーションを実装しなければならない。
【0008】
本発明は上記の従来の問題点に鑑み提案されたものであり、その目的とするところは、機能のカスタマイズまたは拡張等を簡便化させることのできる画像処理装置およびアプリケーション実行方法を提供することにある。
【0009】
また、画像データを入力するコンポーネントと画像データを出力するコンポーネントとで処理できる画像データの種類が異なる場合に、ユーザに画像データの違いを意識させることなく適正な処理を行うことのできる画像処理装置およびアプリケーション実行方法を提供することも目的とする。
【課題を解決するための手段】
【0010】
上記の課題を解決するため、本発明にあっては、請求項1に記載されるように、画像処理の対象とするデータを入力する一つ以上の入力部と、該画像処理の結果を出力する一つ以上の出力部と、前記入力部に応じて当該入力部からのデータの入力処理を制御する第一のフィルタと、前記出力部に応じて当該出力部への出力を制御する第二のフィルタとを備え、前記第一のフィルタと前記第二のフィルタとの接続によりアプリケーションが構築される画像処理装置であって、前記第一のフィルタおよび前記第二のフィルタの間に画像データの種類を変換する第三のフィルタを備え、ジョブの実行時、前記第三のフィルタは前記第一のフィルタおよび前記第二のフィルタに対応する画像データの種類を問い合わせ、入手した画像データの種類が異なる場合は、前記第一のフィルタが対応する画像データの種類から前記第二のフィルタが対応する画像データの種類へ変換する画像処理装置を要旨としている。
【0011】
また、請求項2に記載されるように、請求項1に記載の画像処理装置において、前記第三のフィルタによる変換は、ユーザの指定によらずに内部的に行われるようにすることができる。
【0012】
また、請求項3に記載されるように、請求項1または2のいずれか一項に記載の画像処理装置において、前記第三のフィルタは、画像データの種類の変換処理に加え、ユーザから指定された編集設定に基づき画像処理を行うようにすることができる。
【0013】
また、請求項4に記載されるように、請求項1乃至3のいずれか一項に記載の画像処理装置において、前記第三のフィルタは、画像データの種類の変換処理として、色空間の変換を行うようにすることができる。
【0014】
また、請求項5に記載されるように、請求項1乃至3のいずれか一項に記載の画像処理装置において、前記第三のフィルタは、画像データの種類の変換処理として、ファイル形式の変換を行うようにすることができる。
【0015】
また、請求項6に記載されるように、請求項1乃至5のいずれか一項に記載の画像処理装置において、前記第一のフィルタは、スキャナが原稿から生成した画像データを入力する読取フィルタ、保管されている文書を入力する保管読出フィルタ、ネットワーク外から受信したデータを入力する受信フィルタのうちのいずれか一であるものとすることができる。
【0016】
また、請求項7に記載されるように、請求項1乃至6のいずれか一項に記載の画像処理装置において、前記第二のフィルタは、入力した画像データを用紙に印刷して出力する印刷フィルタ、入力した画像データを画像ファイルとしてネットワーク外へ送信する送信フィルタ、不揮発領域に文書を保存する保管登録フィルタのうちのいずれか一であるものとすることができる。
【0017】
また、請求項8に記載されるように、画像処理の対象とするデータを入力する一つ以上の入力部と、該画像処理の結果を出力する一つ以上の出力部と、前記入力部に応じて当該入力部からのデータの入力処理を制御する第一のフィルタと、前記出力部に応じて当該出力部への出力を制御する第二のフィルタとを備え、前記第一のフィルタと前記第二のフィルタとの接続によりアプリケーションが構築される画像処理装置のアプリケーション実行方法であって、前記第一のフィルタおよび前記第二のフィルタの間に画像データの種類を変換する第三のフィルタを内部的に挿入する工程と、ジョブの実行時、前記第三のフィルタにより、前記第一のフィルタおよび前記第二のフィルタに対応する画像データの種類を問い合わせ、入手した画像データの種類が異なる場合は、前記第一のフィルタが対応する画像データの種類から前記第二のフィルタが対応する画像データの種類へ変換する工程とを備えるアプリケーション実行方法として構成することができる。
【発明の効果】
【0018】
本発明の画像処理装置およびアプリケーション実行方法にあっては、機能のカスタマイズまたは拡張等を簡便化させることのできる画像処理装置およびアプリケーション実行方法を提供することができる。また、画像データを入力するコンポーネントと画像データを出力するコンポーネントとで処理できる画像データの種類が異なる場合でも、ユーザに画像データの違いを意識させることなく適正な処理を行うことができる。
【発明を実施するための最良の形態】
【0019】
以下、本発明の好適な実施形態につき説明する。
【0020】
<第1の実施形態>
図1は第1の実施形態における複合機のソフトウェア構成例を示す図である。ここで、複合機とは、プリンタ、コピー、スキャナ、またはFAX等の複数の機能を一台の筐体において実現する画像処理装置をいう。
【0021】
図1に示されるように、複合機1におけるソフトウェアは、ユーザインタフェース層10、コントロール層20、アプリケーションロジック層30、デバイスサービス層40、およびデバイス制御層50等より構成される。なお、図中における各層の上下関係は、層間の呼び出し関係に基づいている。すなわち、基本的に図中において上にある層が下の層を呼び出す。
【0022】
ユーザインタフェース層10は、機能(例えば、コピー、印刷、スキャン、FAX送信)の実行要求を受け付けるための機能が実装されている部分であり、例えば、通信サーバ部11およびローカルUI部12等が含まれる。通信サーバ部11は、例えば、図示しないクライアントPC(Personal Computer)等からネットワーク経由で要求を受け付ける。ローカルUI部12は、例えば、図示しないオペレーションパネルを介して入力される要求を受け付ける。ユーザインタフェース層10において受け付けられた要求は、コントロール層20に伝えられる。
【0023】
コントロール層20は、要求された機能を実現するための処理を制御するための機能が実装されている部分である。具体的には、要求された機能に応じて、アプリケーションロジック層30における各フィルタを接続し、接続されたフィルタに基づいて機能の実行を制御する。なお、本実施形態において「複合機1の機能」とは、複合機1がユーザに対して提供する一つのまとまった単位(要求が入力されて最終的な出力が得られるまで)のサービスと同義であり、ソフトウェア的には一つのまとまった単位のサービスを提供するアプリケーションと同義である。
アプリケーションロジック層30は、それぞれが複合機1において提供される機能の一部を実現する部品群が実装されている部分である。すなわち、アプリケーションロジック層30における部品を組み合わせることにより一つの機能が実現される。ここでは、各部品を「フィルタ」と呼ぶ。これは、複合機1のソフトウェアアーキテクチャが「パイプ&フィルタ」と呼ばれる考え方に基づくことによる。
【0024】
図2はパイプ&フィルタの概念を説明するための図である。図2において、「F」はフィルタを示し、「P」はパイプを示す。図中に示されるように、各フィルタはパイプによって接続される。フィルタは、入力されたデータに対して変換を施し、その結果を出力する。パイプは、フィルタから出力されたデータを次のフィルタに伝達する。
【0025】
すなわち、本実施形態における複合機1では、各機能をドキュメント(データ)に対する「変換」の連続として捉える。複合機の各機能は、ドキュメントの入力、加工、および出力によって構成されるものとして一般化することができる。そこで「入力」、「加工」、および「出力」を「変換」として捉え、一つの「変換」を実現するソフトウェア部品がフィルタとして構成される。入力を実現するフィルタを特に「入力フィルタ」という。また、加工を実現するフィルタを特に「変換フィルタ」という。更に、出力を実現するフィルタを特に「出力フィルタ」という。なお、各フィルタは独立しており、フィルタ間における依存関係(呼び出し関係)は基本的に存在しない。したがって、フィルタ単位で追加(インストール)または削除(アンインストール)が可能とされている。
【0026】
図1に戻り、アプリケーションロジック層30には、入力フィルタとして、読取フィルタ301、保管文書読出フィルタ302、メール受信フィルタ303、FAX受信フィルタ304、PC文書受信フィルタ305、レポートフィルタ306等が含まれている。
【0027】
読取フィルタ301は、スキャナによる画像データの読み取りを制御し、読み取られた画像データを出力する。保管文書読出フィルタ302は、複合機1の記憶装置に保管されている文書データ(画像データ)を読み出し、読み出されたデータを出力する。メール受信フィルタ303は、電子メールの受信し、当該電子メールに含まれているデータを出力する。FAX受信フィルタ304は、FAX受信を制御し、受信されたデータを出力する。PC文書受信フィルタ305は、図示しないクライアントPCから印刷データを受信し、受信された印刷データを出力する。レポートフィルタ306は、複合機1の設定情報や履歴情報等を、例えば表形式に整形されたデータとして出力する。
【0028】
また、変換フィルタとしては、文書加工フィルタ311および文書変換フィルタ312等が含まれている。文書加工フィルタ311は、入力されたデータに所定の画像変換処理(集約、拡大、または縮小等)を施し、出力する。文書変換フィルタ312は、レンダリング処理を実行する。すなわち、入力されたPostScriptデータをビットマップデータに変換して出力する。
【0029】
また、出力フィルタとしては、印刷フィルタ321、保管文書登録フィルタ322、メール送信フィルタ323、FAX送信フィルタ324、PC文書送信フィルタ325、およびプレビューフィルタ326等が含まれている。
【0030】
印刷フィルタ321は、入力されたデータをプロッタに出力(印刷)させる。保管文書登録フィルタ322は、入力されたデータを複合機1内のハードディスク内に保存する。メール送信フィルタ323は、入力されたデータを電子メールに添付して送信する。FAX送信フィルタ324は、入力されたデータをFAX送信する。PC文書送信フィルタ325は、入力されたデータをクライアントPCに送信する。プレビューフィルタ326は、入力されたデータを、複合機1のオペレーションパネルにプレビュー表示させる。
【0031】
一方、アプリケーションロジック層30は、コピーアクティビティ31a、プリンタアクティビティ31b、およびマルチ文書アクティビティ31c等のアクティビティ31を含む。ここで、「アクティビティ」とは、予め固定的に定義されたフィルタの組み合わせによって、一つの「機能」(複合機1がユーザに対して提供する一つのまとまった単位のサービスまたはアプリケーション)を実現するソフトウェアである。
【0032】
すなわち、ユーザに各フィルタを個々に選択させることで「複合機1の機能」を組み立てることができるが、コピーのように頻繁に利用する機能については、毎回フィルタの選択によって実行指示を行うのはユーザにとって煩雑である。そこで、フィルタの組み合わせをアクティビティ31として予め定義しておくことで、ユーザが、アクティビティ31を単位として実行対象を選択すると、選択されたアクティビティ31は、当該アクティビティ31に定義された組み合わせに係る各フィルタを自動的に実行させる。これにより、操作の煩雑さを解消することができるとともに、アプリケーション単位で実行対象を選択していた従来のユーザインタフェースと同様の操作感を提供することができる。
【0033】
図1において、コピーアクティビティ31aは、読取フィルタ301と、文書加工フィルタ311と、印刷フィルタ321との組み合わせにより、コピー機能(コピーアプリケーション)を実現するアクティビティ31である。
【0034】
プリンタアクティビティ31bは、PC文書受信フィルタ305と、文書変換フィルタ312と、印刷フィルタ321との組み合わせにより、印刷機能(プリンタアプリケーション)を実現するアクティビティ31である。
【0035】
マルチ文書アクティビティ31cは、入力フィルタ、変換フィルタ、および出力フィルタのそれぞれについて、自由な組み合わせが可能なアクティビティ31である。
【0036】
なお、各アクティビティ31は独立しており、アクティビティ31間における依存関係(呼び出し関係)は基本的に存在しない。したがって、アクティビティ31単位で追加(インストール)または削除(アンインストール)が可能である。よって、図1に示されているアクティビティ31以外にも、必要に応じて各種のフィルタの組み合わせによるアクティビティ31を作成し、インストールすることができる。
【0037】
一方、デバイスサービス層40は、アプリケーションロジック層30における各フィルタから共通に利用される下位機能が実装されている部分であり、例えば、画像パイプ41およびデータ管理部42等が含まれる。画像パイプ41は、上述したパイプの機能を実現する。すなわち、あるフィルタからの出力データを次のフィルタに伝達する。データ管理部42は、各種のデータベースを表現する。例えば、ユーザ情報が登録されたデータベースや、文書または画像データ等が蓄積されるデータベース等が相当する。
【0038】
デバイス制御層50は、デバイス(ハードウェア)を制御するドライバと呼ばれるプログラムモジュール群が実装されている部分であり、例えば、スキャナ制御部51、プロッタ制御部52、メモリ制御部53、Tel回線制御部54、およびネットワーク制御部55等が含まれる。各制御部は、当該制御部の名前に付けられているデバイスを制御する。
【0039】
図3は複合機1のハードウェア構成の一例を示す図である。複合機1のハードウェアとしては、コントローラ201と、オペレーションパネル202と、ファクシミリコントロールユニット(FCU)203と、撮像部121と、印刷部122が存在する。
【0040】
コントローラ201は、CPU211、ASIC212、NB221、SB222、MEM−P231、MEM−C232、HDD(ハードディスクドライブ)233、メモリカードスロット234、NIC(ネットワークインタフェースコントローラ)241、USBデバイス242、IEEE1394デバイス243、セントロニクスデバイス244により構成される。
【0041】
CPU211は、種々の情報処理用のIC(Integrated Circuit)である。ASIC212は、種々の画像処理用のICである。NB221は、コントローラ201のノースブリッジである。SB222は、コントローラ201のサウスブリッジである。MEM−P231は、複合機1のシステムメモリである。MEM−C232は、複合機1のローカルメモリである。HDD233は、複合機1のストレージである。メモリカードスロット234は、メモリカード235をセットするためのスロットである。NIC241は、MACアドレスによるネットワーク通信用のコントローラである。USBデバイス242は、USB規格の接続端子を提供するためのデバイスである。IEEE1394デバイス243は、IEEE1394規格の接続端子を提供するためのデバイスである。セントロニクスデバイス244は、セントロニクス仕様の接続端子を提供するためのデバイスである。オペレーションパネル202は、オペレータが複合機1に入力を行うためのハードウェア(操作部)であると共に、オペレータが複合機1から出力を得るためのハードウェア(表示部)である。
【0042】
なお、図1に示されるソフトウェアは、例えば、MEM−C232に格納され、CPU211によって処理されることによりその機能を複合機1に実行させる。
【0043】
以下、アクティビティおよびフィルタについて更に詳しく説明する。図4はアクティビティの構成要素を説明するための図である。図4に示されるように、アクティビティ31は、アクティビティUI、アクティビティロジック、および永続記憶領域情報等より構成される。
【0044】
アクティビティUIは、アクティビティ31に関する画面(例えば、アクティビティ31の実行条件等を設定させるための設定画面)をオペレーションパネル等に表示させるための情報またはプログラムである。
【0045】
アクティビティロジックは、アクティビティ31の処理内容が実装されたプログラムである。基本的に、アクティビティロジックには、フィルタの組み合わせに関するロジック(例えば、フィルタの実行順、複数のフィルタに跨る設定、フィルタの接続変更、エラー処理等)が実装されている。
【0046】
永続記憶領域情報は、アクティビティ31に対する設定情報(例えば、実行条件のデフォルト値)等、不揮発メモリに保存する必要があるデータのスキーマ定義が相当する。当該スキーマ定義は、アクティビティ31のインストール時にデータ管理部42に登録される。
【0047】
図5はフィルタの構成要素を説明するための図である。図5に示されるように、各フィルタは、フィルタ設定用UI、フィルタロジック、フィルタ固有下位サービス、および永続記憶領域情報等より構成される。このうち、フィルタ設定用UI、フィルタ固有下位サービス、および永続記憶領域情報については、フィルタによって必ずしも構成要素に含まれない。
【0048】
フィルタ設定用UIは、フィルタの実行条件等を設定させるための画面をオペレーションパネル等に表示させるプログラムである。例えば、読取フィルタ301であれば、解像度、濃度、画像種別等を設定させる画面が相当する。なお、オペレーションパネルの表示がHTMLデータや、スクリプトに基づいて行われ得ることに鑑みれば、フィルタ設定用UIはHTMLデータやスクリプトであってもよい。
【0049】
フィルタロジックは、フィルタの機能を実現するためロジックが実装されたプログラムである。すなわち、フィルタの構成要素としてのフィルタ固有下位サービスや、デバイスサービス層40またはデバイス制御層50等を利用して、フィルタ設定用UIを介して設定された実行条件に応じてフィルタの機能を実現する。例えば、読取フィルタ301であれば、スキャナによる原稿の読み取り制御のためのロジックが相当する。
【0050】
フィルタ固有下位サービスは、フィルタロジックを実現するために必要な下位機能(ライブラリ)である。すなわち、デバイスサービス層40またはデバイス制御層50相当する機能であるが、他のフィルタから使用されないものについては、フィルタの一部として実装されてもよく、当該一部がフィルタ固有下位サービスに相当する。例えば、読取フィルタ301であれば、スキャナを制御するための機能が相当するが、本実施形態では、デバイス制御層50においてスキャナ制御部51として実装されている。したがって、読取フィルタ301において、フィルタ固有下位サービスの実装は必ずしも必要ではない。
【0051】
永続記憶領域情報は、フィルタに対する設定情報(例えば、実行条件のデフォルト値)等、不揮発メモリに保存する必要があるデータのスキーマ定義が相当する。当該スキーマ定義は、フィルタのインストール時にデータ管理部42に登録される。
【0052】
図6は複合機1における各機能を実現するためのフィルタの組み合わせの例を示す図である。例えば、コピー機能は、読取フィルタ301と印刷フィルタ321とを接続することにより実現される。読取フィルタ301によって原稿より読み取られた画像データを印刷フィルタ321によって印刷すればよいからである。なお、集約、拡大、または縮小等の加工が要求された場合は、これらの加工を実現する文書加工フィルタ311が二つのフィルタの間に挿入される。
【0053】
プリンタ機能(クライアントPCからの印刷機能)は、PC文書受信フィルタ305と文書変換フィルタ312と印刷フィルタ321とを接続することにより実現される。スキャンto email機能(スキャンした画像データを電子メールで転送する機能)は、読取フィルタ301とメール送信フィルタ323とを接続することによって実現される。FAX送信機能は、読取フィルタ301とFAX送信フィルタ324とを接続することによって実現される。FAX受信機能は、FAX受信フィルタ304と印刷フィルタ321とを接続することによって実現される。ドキュメントボックス蓄積機能(スキャンした画像データを複合機1内に保存する機能)は、読取フィルタ301と保管文書登録フィルタ322とを接続することによって実現される。ドキュメントボックス印刷機能(複合機1内に保存されている文書データを印刷する機能)は、保管文書読出フィルタ302と印刷フィルタ321とを接続することにより実現される。
【0054】
図6において、例えば、読取フィルタ301については4つの機能(コピー、スキャンto email、FAX送信、ドキュメントボックス蓄積)において利用されている。このように、各フィルタは複数の機能から利用可能であり、それによって各機能を実現するための開発工数を削減することができる。例えば、コピー機能とスキャン機能(ドキュメントボックス蓄積)について、その実行条件を設定させるためのユーザインタフェースは類似しているものであった。しかし、各機能をアプリケーションによって実装する場合には、アプリケーションごとに個別にユーザインタフェースの実装も行われていた。しかし、本実施形態では、コピー機能およびスキャン機能のいずれの場合も、読取フィルタ301のユーザインタフェースによって設定が行われ、ユーザインタフェースの共通化をも図ることができる。
【0055】
更に、新たな機能を実現する場合について考える。まず、機能#1として、複合機1では対応していないPDL(Page Description Language)(以下、「他PDL」という。)によってクライアントPCから送信される印刷データを印刷する機能を実現する場合について考える。この場合、図6におけるプリンタ機能を雛形とすることができる。ただし、プリンタ機能では、PC文書受信フィルタ305により出力されるデータがPostScript形式であることが前提とされている。文書変換フィルタ312が入力データとして扱えるのはPostScript形式のデータだからである。しかし、機能#1の場合、PC文書受信フィルタ305によって受信され、当該フィルタより出力されるのは他PDL形式のデータである。したがって、このまま文書変換フィルタ312に転送しても文書変換フィルタ312は適切に処理を実行することができない。そこで、他PDL形式からPostScript形式へのデータ変換を実行する変換フィルタ(以下「他PDL−PS変換フィルタ」という。)を新たに実装し、当該フィルタをPC文書受信フィルタ305と文書変換フィルタ312との間に挿入すれば、機能#1を実現することができる。すなわち、機能#1は、PC文書受信フィルタ305と他PDL−PS変換フィルタと文書変換フィルタ312と印刷フィルタ321とを接続することにより実現される。
【0056】
次に、機能#2として、Webサイトから情報を収集し、収集された情報を印刷する機能を実現する場合について考える。この場合、Webサイトから情報を収集するフィルタが存在しない。したがって、少なくともWebサイトから情報を収集する入力フィルタ(以下「Web収集フィルタ」という。)を新たに実装する必要がある。また、機能#2では最終的に印刷を実行させたいので、出力フィルタとしては印刷フィルタ321を用いるのが適切である。ここで問題となるのが、Web収集フィルタと印刷フィルタ321との間をどのように接続するかである。すなわち、印刷フィルタ321の入力データはレンダリングされたビットマップである必要があるところ、Web収集フィルタ内にレンダリング機能を実装するのは非常に工数がかかるので適切ではない。そこで、既にレンダリング機能を実現する文書変換フィルタ312を利用することが考えられる。ただし、文書変換フィルタ312の入力データは、PostScript形式である必要がある。そこで、Web収集フィルタを、収集した情報をPostScript形式によって出力するように実装すれば、文書変換フィルタ312との接続が可能となる。このようにWeb収集フィルタを実装することにより、機能#2は、Web収集フィルタと文書変換フィルタ312と、文書変換フィルタ312と印刷フィルタ321との接続により実現される。
【0057】
以下、本実施形態における複合機1の処理手順について説明する。図7および図8は、複合機1が一つの機能を実現する際の処理手順を説明するためのフローチャートである。
【0058】
まず、ユーザによってアクティビティが選択されることにより、選択されたアクティビティにより特定される入力フィルタが選択され(ステップS101)、選択された入力フィルタの実行条件が設定される(ステップS102)。同様に、変換フィルタまたは出力フィルタについても選択が行われ(ステップS103)、フィルタ間の接続が指定され(ステップS104)、実行条件が設定される(ステップS105)。
【0059】
上記の操作は、ローカルUI部12の制御のもと、例えば、図9に示されるようなオペレーションパネル(図3のオペレーションパネル202)を介して行われる。オペレーションパネル202は、タッチパネルとスタートボタンとを含む。タッチパネルは、タッチ操作で入力を行うためのハードウェア(タッチ操作部)であると共に、画面表示で出力を得るためのハードウェア(画面表示部)である。スタートボタンは、要求した機能の実行開始指示を行うためのハードウェアである。
【0060】
図9は、アクティビティを利用させるための操作画面例を示す図である。図9において、アクティビティ選択画面600は、実行対象とするアクティビティを選択させるためにオペレーションパネル202のタッチパネルに表示される画面である。アクティビティ選択画面600には、複合機1にインストールされているアクティビティ31ごとにボタンが表示される。図中では、コピーアクティビティ31bに対応するコピーボタン610、プリンタアクティビティ31bに対応するプリンタボタン620、マルチ文書アクティビティ31cに対応するマルチ文書ボタン630が表示されている。
【0061】
なお、インストールされているアクティビティ31の一覧情報は、記憶装置に記録されており、例えば、コントロール層20によって管理されている。したがって、ローカルUI部12は、コントロール層20に問い合わせることにより、アクティビティ31の一覧情報を取得し、当該一覧情報に基づいて、アクティビティ選択画面600の各ボタンを表示させる。
【0062】
アクティビティ選択画面600において、コピーボタン610が選択(タッチ)されると、ローカルUI部12は、コピーアクティビティ31aのアクティビティUIを呼び出すことによりコピーアクティビティ31aの画面情報を取得し、当該画面情報に基づいてコピーアクティビティ画面611をタッチパネルに表示させる。コピーアクティビティ画面611は、コピーアクティビティ31aの実行条件を設定させるための画面であり、図中では、コピーアクティビティ31aを構成する各フィルタの設定画面(読取フィルタ設定画面611a、文書加工フィルタ設定画面611b、および印刷フィルタ設定画面611c)が表示された例が示されている。すなわち、各フィルタの実行条件を設定させることで、コピーアクティビティ31aの実行条件が設定されるからである。各フィルタの設定画面の画面情報は、コピーアクティビティ31aのアクティビティUIが、ローカルUI部12からの呼び出しに応じて各フィルタのフィルタ用設定UIを呼び出すことにより取得され、コピーアクティビティ31aの画面情報に含められる(マージされる)。なお、単に、各フィルタの設定画面を並べるだけでなく、各フィルタに対して一括して設定を行うためのUI(例えば、「両面→両面」ボタン、読み取りの設定(両面)ボタン、印刷の設定(両面)ボタン等)をコピーアクティビティ画面611に表示させるようにしてもよい。
【0063】
プリンタボタン620が選択されると、ローカルUI部12は、プリンタアクティビティ31bのアクティビティUIを呼び出すことによりプリンタアクティビティ31bの画面情報を取得し、当該画面情報に基づいてプリンタアクティビティ画面621をタッチパネルに表示させる。プリンタアクティビティ画面621は、プリンタアクティビティ31bの状態(印刷中等)を表示させる画面である。すなわち、プリンタアクティビティ31bは、印刷データの受信に応じて起動されるものであり(すなわち、オペレーションパネル202上における操作によって起動されるものではない。)、基本的に設定画面は不要だからである。
【0064】
マルチ文書ボタン630が選択されると、ローカルUI部12は、マルチ文書アクティビティ31cのアクティビティUIを呼び出すことによりマルチ文書アクティビティ31cの画面情報を取得し、当該画面情報に基づいてマルチ文書アクティビティ画面631をタッチパネルに表示させる。
【0065】
マルチ文書アクティビティ画面631においては、ユーザの操作により任意のフィルタを組み合わせることができる。マルチ文書アクティビティ画面631は、入力フィルタ選択領域513、変換フィルタ選択領域514、出力フィルタ選択領域515、および要求表示領域516等より構成される。入力フィルタ選択領域513は、入力フィルタを選択させるための領域であり、入力フィルタごとにボタンが表示されている。入力フィルタ選択領域513でいずれかのボタンが選択されると、選択されたボタンに対応する入力フィルタのボタンが要求表示領域516に表示される。図中では、便宜上、読取フィルタ301および保管文書読出フィルタ513のボタンが表示されている。
【0066】
変換フィルタ選択領域514は、変換フィルタを選択させるための領域であり、変換フィルタごとにボタンが表示されている。変換フィルタ選択領域514でいずれかのボタンが選択されると、選択されたボタンに対応する変換フィルタのボタンが要求表示領域516に表示される。
【0067】
出力フィルタ選択領域515は、出力フィルタを選択させるための領域であり、出力フィルタごとにボタンが表示されている。出力フィルタ選択領域515でいずれかのボタンが選択されると、選択されたボタンに対応する出力フィルタのボタンが要求表示領域516に表示される。図中では、便宜上、印刷フィルタ321、保管文書登録フィルタ322、メール送信フィルタ323、およびFAX送信フィルタ324のボタンが表示されている。
【0068】
なお、インストールされているフィルタ(入力フィルタ、変換フィルタ、出力フィルタ)の一覧情報は、記憶装置に記録されており、例えば、コントロール層20によって管理されている。したがって、ローカルUI部12は、コントロール層20に問い合わせることにより、入力フィルタ選択領域513、変換フィルタ選択領域514、出力フィルタ選択領域515を表示させるためのフィルタの一覧情報を取得する。
【0069】
要求表示領域516には、入力フィルタ選択領域513、変換フィルタ選択領域514または出力フィルタ選択領域515において選択されたフィルタのボタンが表示され、入力フィルタ、変換フィルタ、または出力フィルタとの間は、データの流れまたはパイプを示す矢印で接続される。矢印を操作することにより、実行するフィルタの順番を変更することも可能である。要求表示領域516における表示内容によって、ユーザは、利用するフィルタとその流れを認識することができる。要求表示領域516には、更に、設定ボタン517および削除ボタン518が配置されている。設定ボタン517は、要求表示領域516においてフィルタのボタンが選択されている場合に、当該フィルタの設定画面を表示させるためのボタンである。すなわち、設定ボタン517が押下(タッチ)されると、選択されているフィルタのフィルタ設定UIに基づいて、その設定画面がタッチパネル511に表示される。削除ボタン518は、要求表示領域516においてフィルタのボタンが選択されている場合に、当該フィルタの利用を解除するためのボタンである。
【0070】
なお、入力フィルタ、変換フィルタ、および出力フィルタは、一つの機能に対してそれぞれ複数個の選択が可能である。例えば、スキャンされた画像と、複合機1内に保存されている画像を合成して、印刷すると共にFAX送信するといったような場合、少なくとも二つの入力フィルタ(読取フィルタ301および保管文書読出フィルタ302)と二つの出力フィルタ(印刷フィルタ321およびFAX送信フィルタ324)とが選択される。
【0071】
図7に戻り、フィルタの選択が完了し(ステップS106でYES)、スタートボタンが押下されると、ユーザインタフェース層10からコントロール層20に対して、要求内容が通知される。
【0072】
図10はユーザインタフェース層10からコントロール層20へ通知される要求内容を概念的に示す図である。図10に示されるように、ユーザインタフェース層10からの要求は、ユーザインタフェース層10において選択されたフィルタごとに、フィルタの種別と当該フィルタに対する設定情報とを含むものであり、更にフィルタの実行順も含も含んでいる(図中において各ブロックを結ぶ矢印が、フィルタの実行順を示す)。
【0073】
図7に戻り、上述したような要求内容を受けて、コントロール層20は、選択された各フィルタ間をパイプによって接続する(ステップS107)。パイプの実体はメモリ(HDD(Hard Disk Drive)も含む)であるが、パイプの両端のフィルタに応じて利用するメモリの種類が異なり、その対応関係は、例えば、複合機1のHDD内に予め定義されている。
【0074】
図11はフィルタとパイプの対応テーブルの例を示す図である。図11の対応テーブル60によれば、例えば、読取フィルタ301と印刷フィルタ321や、文書変換フィルタ312と印刷フィルタ321は、DMA(Direct Memory Access)パイプによって接続され、高速にデータが転送される。また、PC文書受信フィルタ305と文書変換フィルタ312とは、スプールパイプによって接続される。スプールパイプとは、HDDを用いるパイプであり、左側のフィルタから出力されたデータは、右側のフィルタが読み出すまでHDDにスプール(保存)される。それ以外のフィルタ間は、汎用メモリパイプによって接続される。汎用メモリパイプとは、有限サイズのRAMバッファによってデータ転送を行うパイプである。図11に示される対応テーブル60は、フィルタやパイプの拡張(追加)や削除等に応じて編集可能である。なお、図1における画像パイプ41は、上記の各種のパイプへのインタフェースを提供するモジュールを抽象的に表現したものである。
【0075】
したがって、コントロール層20は、図11の対応テーブル60に基づいて、各フィルタ間を特定のパイプで接続する。図12はコントロール層20によって生成される情報を概念的に示す図である。図12では、各フィルタ(「F」)間がパイプ(「P」)によって接続されている様子が示されている。
【0076】
図7に戻り、コントロール層20は、各フィルタに対して並列的に実行要求を出力する(ステップS108)。すなわち、フィルタの呼び出しはフィルタの接続順ではなく、全てのフィルタに対してほぼ同時に行われる。フィルタ間の同期はパイプによってとられるからである。すなわち、コントロール層からの実行要求を受けて、各フィルタは自分の入力側のパイプにデータが入力されるまで待機する。ただし、入力フィルタには、入力側にパイプは存在しない。したがって、入力フィルタは実行要求に応じて処理を開始する。
【0077】
次に、図8において、まず、入力フィルタは、入力デバイスよりデータを入力し(ステップS111)、当該データを、出力側に接続されているパイプに出力する(ステップS112)。なお、データが複数回に分けて入力される場合(複数枚の原稿がスキャンされる場合等)は、データの入力とパイプへの出力が繰り返される。全ての入力データについて処理が終了すると(ステップS113でYES)、入力フィルタの処理は終了する。
【0078】
変換フィルタは、入力側に接続されているパイプに対するデータの入力を検知すると処理を開始する。まず、当該パイプからデータを読み込み(ステップS121)、データに対して画像処理を施す(ステップS122)。続いて、処理結果としてのデータを出力側に接続されているパイプに出力する(ステップS123)。入力側のパイプに入力された全てのデータについて処理が終了すると(ステップS124でYES)、変換フィルタの処理は終了する。
【0079】
出力フィルタは、入力側に接続されているパイプに対するデータの入力を検知すると処理を開始する。まず、当該パイプからデータを読み込み(ステップS131)。続いて、読み込まれたデータを出力デバイスを利用して出力する(ステップS132)。入力側のパイプに入力された全てのデータについて処理が終了すると(ステップS133でYES)、出力フィルタの処理は終了する。
【0080】
以下、パイプについて更に詳しく説明する。図13はパイプを介したフィルタ間のデータの伝達手順を説明するための図である。図中において、フィルタA300aおよびフィルタB300bは、それぞれフィルタを示す。DMAパイプ41aは、図11において説明した、画像パイプ41の一例としてのDMAパイプである。画像メモリ250は、複合機1に備えられた物理的な(ハードウェアとしての)画像メモリである。
【0081】
フィルタA300aからフィルタB300bにデータ(画像データ)が伝達される場合、フィルタA300aは、DMAパイプ41aに対して画像データを格納するためのメモリ領域の確保を要求する(ステップS51)。DMAパイプ41aは、当該メモリ領域を確保し、そのアドレスをフィルタA300aに返却する(ステップS52)。フィルタA300aは、返却されたアドレス(画像メモリ250)に画像データを書き込み(ステップS53)、画像データを書き込んだアドレスをDMAパイプ41aに通知する(ステップS54)。
【0082】
フィルタB300bは、DMAパイプ41aに対して画像データが書き込まれたアドレスが通知されるまで、当該アドレスの問い合わせを繰り返し(定期的に)行っている(ステップS55)。ただし、フィルタB300bは、当該アドレスが通知されるまで待機していてもよい。当該アドレスがDMAパイプ41aに通知されると、フィルタB300bは、当該アドレスを取得し、画像メモリ250に対する画像データの書き込みを検知する。そこで、フィルタB300bは、画像メモリ250の当該アドレスより画像データを読み出し(ステップS56)、当該画像データに対してフィルタ300bに関する処理を実行する。処理が完了すると、フィルタB300bは、当該アドレスに係るメモリ領域の開放をDMAパイプ41aに要求する(ステップS57)。DMAパイプ41aは、当該メモリ領域を開放する(ステップS58)。
【0083】
このように、フィルタ間のデータの伝達を画像メモリ(共有メモリ)を介して行うことにより、フィルタごとに画像データを格納するためのメモリ領域を確保する必要がなくなり、メモリ効率や処理性能の向上を図ることができる。また、フィルタ間に呼び出し関係が生じないため、フィルタの独立性を保つことができる。
【0084】
<第2の実施形態>
第2の実施形態は、画像データを入力するコンポーネント(入力フィルタ)と画像データを出力するコンポーネント(出力フィルタ)とで処理できる画像データの種類が異なる場合に、ユーザに画像データの違いを意識させることなく適正な処理を行うことができるようにしたものである。画像データの種類には、色空間が異なるRGB形式、CMYK形式や、ファイル形式が異なるTIFF形式、MMR形式、PDF形式、JPEG形式が含まれる。なお、この第2の実施形態はパイプ&フィルタのメカニズムを前提としており、その基本的な構成および動作については第1の実施形態において説明したものと同様である。
【0085】
図14は第2の実施形態における複合機1のソフトウェア構成例を示す図である。
【0086】
図14において、ユーザインタフェース層10にはユーザインタフェースの提供を行うコンポーネントであるUI C1が設けられている。アプリケーションロジック層30には、コピー、FAX送信、メール送信等の所定の機能を提供するコンポーネントであるアクティビティC2と、画像データを入力する機能を提供するコンポーネントである入力フィルタC3と、画像データの編集の機能を提供するコンポーネントである編集フィルタC4と、画像データを出力する機能を提供するコンポーネントである出力フィルタC5と、画像データの種類を変換する機能を提供するコンポーネントである変換フィルタC6とが設けられている。なお、編集フィルタC4には変換フィルタC6と同等の変換機能が含まれている。これは、本実施形態では、後述するように、入力フィルタC3と出力フィルタC5とが直結されている箇所にデータ種類の違いを整合させるために編集フィルタC4を挿入するようにしているが、入力フィルタC3と出力フィルタC5の間に予め編集フィルタC4が挿入されている場合については、更に編集フィルタC4の後に変換フィルタC6を挿入することはせず、編集フィルタC4に変換機能を併せて行わせるようにしていることによる。編集処理と変換処理を併せて一度に実行した方が速度パフォーマンスを向上させることができるからである。
【0087】
デバイスサービス層40には、アプリケーションロジック層30の各コンポーネントからのリクエストを処理する機能を提供するコンポーネントであるリクエスト管理C7と、各フィルタ間の画像データの仲介の機能を提供するコンポーネントであるパイプC8とが設けられている。
【0088】
図15は各コンポーネントに含まれるプリファレンス等の例を示す図である。ここで、プリファレンスとは、各コンポーネントの動作項目設定内容および他のコンポーネントとの接続関係等を含む情報である。
【0089】
図15において、UI C1には、「UI表示()」のメンバ関数(メソッド)が含まれている。アクティビティC2には、「アクティビティプリファレンス」「アクティビティジョブ」と、「プリファレンス生成()」「デフォルト値設定()」「設定変更()」「実行要求()」「フィルタの再構築()」「ジョブ生成()」「実行開始(job:ジョブ)」のメンバ関数が含まれている。入力フィルタC3には、「入力フィルタプリファレンス」「入力フィルタジョブ」と、「プリファレンス生成()」「デフォルト値設定()」「ユーザに見せるフィルタの接続(filter:フィルタ)」「設定変更()」「内部で動くフィルタの接続(filter:フィルタ)」「ジョブ生成()」「実行開始(job:ジョブ)」「入力処理()」のメンバ関数が含まれている。編集フィルタC4には、「編集フィルタプリファレンス」「編集フィルタジョブ」と、「プリファレンス生成()」「デフォルト値設定()」「設定変更()」「内部で動くフィルタの接続(filter:フィルタ)」「ユーザに見せるフィルタの接続(filter:フィルタ)」「ジョブ生成()」「実行開始(job:ジョブ)」「データ要求(kind:Enumeration)」「データ種類の比較()」「データ変換()」「設定値コピー(pref:プリファレンス)」のメンバ関数が含まれている。出力フィルタC5には、「出力フィルタプリファレンス」「出力フィルタジョブ」と、「プリファレンス生成()」「デフォルト値設定()」「設定変更()」「ジョブ生成()」「実行開始(job:ジョブ)」「出力処理()」のメンバ関数が含まれている。変換フィルタC6には、「変換フィルタプリファレンス」「変換フィルタジョブ」と、「プリファレンス生成()」「デフォルト値設定()」「設定変更()」「内部で動くフィルタの接続(filter:フィルタ)」「ジョブ生成()」「実行開始(job:ジョブ)」「データ要求(kind:Enumeration)」「データ種類の比較()」「データ変換()」のメンバ関数が含まれている。リクエスト管理C7には、「ジョブの構築(pref:プリファレンス)」のメンバ関数が含まれている。パイプC8には、「データ[]」と、「パイプ生成()」「前段フィルタの接続(job:ジョブ)」「後段フィルタの接続(job:ジョブ)」「データ書込(kind:Enumeration,data:画像)」「データ書込()」のメンバ関数が含まれている。
【0090】
図16は第2の実施形態の処理概要を示すフローチャートである。
【0091】
図16において、先ず、ユーザによりアクティビティC2の選択が行なわれ、当該アクティビティC2を構成するフィルタ(入力フィルタC3、編集フィルタC4、出力フィルタC5等)が選択される(ステップS201)。ユーザにより選択されるアクティビティC2は様々であり、
(1)入力フィルタC3に出力フィルタC5が直結するパターン
(2)入力フィルタC3に複数の出力フィルタC5が直結するパターン
(3)入力フィルタC3の後に編集フィルタC4を挟んで出力フィルタC5が接続されるパターン
(4)入力フィルタC3に編集フィルタC4が接続され、その編集フィルタC4に複数の出力フィルタC5が接続されるパターン
(5)入力フィルタC3から複数に分岐し、一部の枝には編集フィルタC4と出力フィルタC5が順次接続され、他の枝には出力フィルタC5が直結するパターン
等がある。それぞれのパターンについては後により詳しく説明する。
【0092】
次いで、ユーザはUI C1によりアクティビティC2を構成する各フィルタの動作項目設定を行い、アクティビティC2は自己および配下の各フィルタにプリファレンス設定を行う(ステップS202)。
【0093】
次いで、ユーザからの実行要求時に、アクティビティC2はプリファレンスの組換えを行い、ユーザが選択したアクティビティC2のフィルタ構成では対応できない、入力フィルタC3と出力フィルタC5とで処理できる画像データの種類の違いを吸収できるよう、ユーザに見えるフィルタ構成とは異なる内部的なフィルタ構成を構築する(ステップS203)。
【0094】
これらの処理の後、アクティビティC2の実行を行ない(ステップS204)、ユーザに所定の機能を提供する。
【0095】
図17はアクティビティC2によるプリファレンスの組換え(図16のステップS203)の処理例を示すフローチャートであり、(a)もしくは(b)のいずれかの処理を採用することができる。
【0096】
(a)において、ユーザによるスタートボタンの押下が行なわれると(ステップS211)、アクティビティC2は実行要求を受け付け(ステップS212)、入力フィルタC3と出力フィルタC5が直接につながっている箇所があるか否か判断する(ステップS213)。
【0097】
入力フィルタC3と出力フィルタC5が直接につながっている箇所がある場合(ステップS213のY)、アクティビティC2は変換フィルタC6を新規に生成し、出力フィルタC5の直前に挿入する(ステップS214)。入力フィルタC3と出力フィルタC5が直接につながっている箇所がない場合(ステップS213のN)、この処理は行わない。入力フィルタC3と出力フィルタC5が直接につながっている箇所に変換フィルタC6を新規に生成して挿入するのは、入力フィルタC3と出力フィルタC5では処理できる画像データの種類が異なる場合があることから、データの種類の違いを吸収するためである。
【0098】
次いで、アクティビティC2は編集フィルタC4の後段に複数のフィルタが直接につながっている箇所があるか否か判断する(ステップS215)。編集フィルタC4の後段に複数のフィルタが直接につながっている箇所がある場合(ステップS215のY)、アクティビティC2は後段につながっているフィルタの数分だけ編集フィルタC4の複製を生成する(ステップS216)。編集フィルタC4の後段に複数のフィルタが直接につながっている箇所がない場合(ステップS215のN)、この処理は行わない。編集フィルタC4の後段に複数のフィルタが直接につながっている場合に編集フィルタC4の複製を生成するのは、一つの編集フィルタC4では一のデータ形式への変換しか行えないため、後段に接続された複数のフィルタ毎にデータ形式の変換を行うために、後段に接続されたフィルタの数だけ編集フィルタC4が必要になるからである。
【0099】
次いで、アクティビティC2は各フィルタをパイプC8で連結し、ユーザには見えない内部的な動作時の構成を組み立て(ステップS217)、処理を終了する(ステップS218)。
【0100】
(b)において、ユーザによるスタートボタンの押下が行なわれると(ステップS221)、アクティビティC2は実行要求を受け付け(ステップS222)、変換フィルタC6を新規に生成し、出力フィルタC5の直前に挿入する(ステップS223)。この例では、先に無条件に変換フィルタC6を挿入し、後に不要な変換フィルタC6(編集フィルタC4に連続する変換フィルタC6)を削除することにしている。
【0101】
次いで、アクティビティC2は編集フィルタC4の後段に複数のフィルタが直接につながっている箇所があるか否か判断する(ステップS224)。編集フィルタC4の後段に複数のフィルタが直接につながっている箇所がある場合(ステップS224のY)、アクティビティC2は後段につながっているフィルタの数分だけ編集フィルタC4の複製を生成する(ステップS225)。編集フィルタC4の後段に複数のフィルタが直接につながっている箇所がない場合(ステップS224のN)、この処理は行わない。
【0102】
次いで、アクティビティC2は編集フィルタC4と変換フィルタC6が直接につながっている箇所があるか否か判断する(ステップS226)。編集フィルタC4と変換フィルタC6が直接につながっている箇所がある場合(ステップS226のY)、直接につながっている箇所の変換フィルタC6を削除する(ステップS227)。編集フィルタC4と変換フィルタC6が直接につながっている箇所がない場合(ステップS226のN)、この処理は行わない。
【0103】
次いで、アクティビティC2は各フィルタをパイプC8で連結し、ユーザには見えない内部的な動作時の構成を組み立て(ステップS228)、処理を終了する(ステップS229)。
【0104】
以下、より具体的な例に基づいて説明を行なう。
【0105】
図18は第1のパターンの説明図であり、(a)は一般形、(b)(c)は具体例を示している。
【0106】
(a)において、ユーザに見えるプリファレンスとしては、アクティビティA1として、入力フィルタF1と出力フィルタF2が直結されたものであるが、プリファレンスの組換えにより、内部で動く際のプリファレンスとしては、アクティビティA1として、入力フィルタF1と出力フィルタF2の間に変換フィルタFが挿入されたものとなる。
【0107】
(b)においては、アクティビティA1がFAX送信アクティビティ、入力フィルタF1が保管文書読出フィルタ、出力フィルタF2がFAX送信フィルタとなっている。ユーザは、ユーザに見えるプリファレンスとして、保管文書読出フィルタF1とFAX送信フィルタF2が直結したFAX送信アクティビティA1を選択し、設定画面Iにより、保管文書読出フィルタF1の動作項目設定(文書一覧からの文書選択等)とFAX送信フィルタF2の動作項目設定(FAX送信先一覧からの送信先選択等)を行なう。
【0108】
この場合、ユーザに見えるプリファレンスのままだと、保管文書読出フィルタF1の出力データがTIFF形式であり、FAX送信フィルタF2の入力データがMMR形式であるため、そのままでは動作しないが、内部で動く際のプリファレンスとして、保管文書読出フィルタF1とFAX送信フィルタF2の間に変換フィルタFが挿入されることで、TIFF形式からMMR形式にデータが変換され、問題なく動作することになる。
【0109】
(c)においては、アクティビティA1がFAX受信アクティビティ、入力フィルタF1がFAX受信フィルタ、出力フィルタF2が印刷フィルタとなっている。ユーザは、ユーザに見えるプリファレンスとして、FAX受信フィルタF1と印刷フィルタF2が直結したFAX受信アクティビティA1を選択し、設定画面Iにより、印刷フィルタF2の動作項目設定(仕上げ方法の選択、部数の入力等)を行なう。
【0110】
この場合、ユーザに見えるプリファレンスのままだと、FAX受信フィルタF1の出力データがMMR形式であり、印刷フィルタF2の入力データがCMYK形式であるため、そのままでは動作しないが、内部で動く際のプリファレンスとして、FAX受信フィルタF1と印刷フィルタF2の間に変換フィルタFが挿入されることで、MMR形式からCMYK形式にデータが変換され、問題なく動作することになる。
【0111】
また、アクティビティA1がメール送信アクティビティ、入力フィルタF1が保管文書読出フィルタ(出力データはJPEG形式)、出力フィルタF2がメール送信フィルタ(入力データはJPEG形式)の場合も変換フィルタFが挿入されるが、データは同形式であるため、実質的な変換は行なわず、データはスルーされる。
【0112】
アクティビティA1がFAX受信アクティビティ、入力フィルタF1がFAX受信フィルタ(出力データはMMR形式)、出力フィルタF2がFAX送信フィルタ(入力データはMMR形式)の場合も同様である。
【0113】
図19は第1のパターンにおけるプリファレンス設定(図16のステップS202)の処理例を示すシーケンス図である。
【0114】
図19において、ユーザによるアクティビティの選択により、UI C1はアクティビティA1(C2)にプリファレンス生成を要求する(ステップS221)。これにより、アクティビティA1(C2)は自己のプリファレンスのデフォルト値を生成し(ステップS222)、入力フィルタF1(C3)にプリファレンス生成を要求し(ステップS223)、デフォルト値設定を要求する(ステップS224)。同様に、アクティビティA1(C2)は出力フィルタF2(C5)にプリファレンス生成を要求し(ステップS225)、デフォルト値設定を要求する(ステップS226)。
【0115】
次いで、アクティビティA1(C2)は入力フィルタF1(C3)に出力フィルタF2(C5)を特定してユーザに見せるフィルタの接続を要求し(ステップS227)、UI C1に処理完了の応答を返す(ステップS228)。ユーザに見せるフィルタの接続は、後述するように、入力フィルタプリファレンスの「ユーザに見せる後段のフィルタ」に出力フィルタのプリファレンスを設定することにより行われる。
【0116】
その後、UI C1は動作項目設定のためのUI表示を行い(ステップS229)、ユーザの操作に応じ、アクティビティA1(C2)に設定変更を要求し(ステップS230)、入力フィルタF1(C3)に設定変更を要求し(ステップS231)、出力フィルタF2(C5)に設定変更を要求する(ステップS232)。
【0117】
この状態における各コンポーネントに含まれるプリファレンスの状態を図20に示している。すなわち、アクティビティA1(C2)のアクティビティプリファレンスには、「アクティビティ名称」に「送信アクティビティ」が設定され、「保管文書読出機能ON/OFF」に「TRUE」が設定され、「メール送信機能ON/OFF」に「TRUE」が設定されている。入力フィルタF1(C3)の入力フィルタプリファレンスには、「フィルタ名称」に「保管文書読出フィルタ」が設定され、「選択済み保管文書一覧」に「NULL」が設定され、「ユーザに見せる後段のフィルタ」に「メール送信フィルタプリファレンス」が設定され、「内部で動く後段のフィルタ」に「NULL」が設定されている。出力フィルタF2(C5)の出力フィルタプリファレンスには、「フィルタ名称」に「メール送信フィルタ」が設定され、「メールアドレス」に「""」が設定され、「送信ファイル種別」に「PDF」が設定されている。
【0118】
図21は第1のパターンにおけるプリファレンス組換え(図16のステップS203)の処理例を示すシーケンス図である。
【0119】
図21において、ユーザによりスタートボタンの押下が行われることで、UI C1はアクティビティA1(C2)に実行要求を行う(ステップS241)。アクティビティA1(C2)はフィルタの再構築を開始し(ステップS242)、新たに生成する変換フィルタF(C6)にプリファレンス生成を要求し(ステップS243)、デフォルト値設定を要求する(ステップS244)。
【0120】
次いで、アクティビティA1(C2)は、入力フィルタF1(C3)に変換フィルタF(C6)を特定して内部で動くフィルタの接続を要求し(ステップS245)、変換フィルタF(C6)に出力フィルタF2(C5)を特定して内部で動くフィルタの接続を要求する(ステップS246)。
【0121】
次いで、アクティビティA1(C2)はリクエスト管理C7にジョブの構築を要求し(ステップS247)、リクエスト管理C7はアクティビティA1(C2)、入力フィルタF1(C3)、変換フィルタF(C6)、出力フィルタF2(C5)に順次にジョブ生成を行う(ステップS248〜S251)。
【0122】
次いで、リクエスト管理C7はパイプP1(C8)、パイプP2(C8)の生成を行い(ステップS252、S253)、パイプP1(C8)に入力フィルタジョブを特定して前段フィルタの接続を要求するとともに(ステップS254)、変換フィルタジョブを特定して後段フィルタの接続を要求し(ステップS255)、パイプP2(C8)に変換フィルタジョブを特定して前段フィルタの接続を要求するとともに(ステップS256)、出力フィルタジョブを特定して後段フィルタの接続を要求する(ステップS257)。
【0123】
この状態における各コンポーネントに含まれるプリファレンスの状態を図22に示している。すなわち、アクティビティA1(C2)のアクティビティプリファレンスと出力フィルタF2(C5)の出力フィルタプリファレンスは図20に比べて変化はないが、入力フィルタF1(C3)の入力フィルタプリファレンスにおける「内部で動く後段のフィルタ」が「NULL」から「変換フィルタプリファレンス」に変更されている。また、新たに変換フィルタF(C6)の変換フィルタプリファレンスが図示されている。変換フィルタF(C6)の変換フィルタプリファレンスには、「フィルタ名称」に「変換フィルタ」が設定され、「内部で動く後段のフィルタ」に「メール送信フィルタプリファレンス」が設定されている。
【0124】
また、ジョブ生成が行われたことにより有効になった各コンポーネントのジョブを図23に示している。すなわち、アクティビティA1(C2)のアクティビティジョブには、「アクティビティ名称」に「送信アクティビティ」が設定され、「参照プリファレンス」に「送信アクティビティプリファレンス」が設定され、「ジョブ状態」に「WAIT」が設定されている。入力フィルタF1(C3)の入力フィルタジョブには、「フィルタ名称」に「保管文書読出フィルタ」が設定され、「参照プリファレンス」に「保管文書読出フィルタプリファレンス」が設定され、「ジョブ状態」に「WAIT」が設定され、「後段パイプ」に「パイプ1」が設定されている。出力フィルタF2(C5)の出力フィルタジョブには、「フィルタ名称」に「メール送信フィルタ」が設定され、「参照プリファレンス」に「メール送信フィルタプリファレンス」が設定され、「ジョブ状態」に「WAIT」が設定され、「前段パイプ」に「パイプ2」が設定されている。変換フィルタF(C6)の変換フィルタジョブには、「フィルタ名称」に「変換フィルタ」が設定され、「参照プリファレンス」に「変換フィルタプリファレンス」が設定され、「ジョブ状態」に「WAIT」が設定され、「前段パイプ」に「パイプ1」が設定され、「後段パイプ」に「パイプ2」が設定されている。また、パイプP1(C8)、パイプP2(C8)のデータは「NULL」に設定されている。
【0125】
図24は第1のパターンにおける実行(図16のステップS204)の処理例を示すシーケンス図である。
【0126】
図24において、リクエスト管理C7はアクティビティA1(C2)に実行開始を要求し(ステップS261)、アクティビティA1(C2)は入力フィルタF1(C3)、変換フィルタF(C6)、出力フィルタF2(C5)に順次に実行開始を要求する(ステップS262〜S264)。
【0127】
これを受け、入力フィルタF1(C3)は入力処理を開始し(ステップS266)、パイプP1(C8)にデータを書き込む(ステップS267)。
【0128】
また、出力フィルタF2(C5)は変換フィルタF(C6)にデータ種類を指定してデータ要求を行い(ステップS265)、パイプP1(C8)への入力フィルタF1(C3)によるデータ書込が完了すると、変換フィルタF(C6)はパイプP1(C8)からデータを読み込む(ステップS268)。
【0129】
そして、変換フィルタF(C6)は読み込んだデータ種類と出力フィルタF2(C5)から指定されたデータ種類の比較を行い(ステップS269)、データ種類が異なっていて変換の必要がある場合にはデータ変換を行う(ステップS270)。データ種類が同じで変換の必要がない場合にはデータ変換は行わない。そして、変換フィルタF(C6)はパイプP2(C8)に変換後のデータを書き込む(ステップS271)。
【0130】
出力フィルタF2(C5)はパイプP2(C8)からデータを読み込み(ステップS272)、出力処理を行う(ステップS273)。
【0131】
各コンポーネントの実行状態におけるジョブ等の状態を図25に示している。すなわち、アクティビティジョブ、入力フィルタジョブ、出力フィルタジョブ、変換フィルタジョブの「ジョブ状態」は「WAIT」から「RUN」に変更され、パイプP1(C8)には「パイプデータ1_1」「パイプデータ1_2」・・・が書き込まれ、パイプP2(C8)には「パイプデータ2_1」・・・が書き込まれている。「パイプデータ1_1」「パイプデータ1_2」「パイプデータ2_1」・・・には、「データ種類=DATA_JPEG」と「画像データ」が書き込まれている。
【0132】
図26は第2のパターンの説明図であり、(a)は一般形、(b)は具体例を示している。
【0133】
(a)において、ユーザに見えるプリファレンスとしては、アクティビティA1として、入力フィルタF1に複数の出力フィルタF21、F22が直結されたものであるが、プリファレンスの組換えにより、内部で動く際のプリファレンスとしては、アクティビティA1として、入力フィルタF1と出力フィルタF21、F22の間に変換フィルタFC1、FC2がそれぞれ挿入されたものとなる。
【0134】
(b)においては、アクティビティA1がマルチ文書アクティビティ、入力フィルタF1が読取フィルタ、出力フィルタF21が印刷フィルタ、出力フィルタF22がメール送信フィルタとなっている。ユーザは、ユーザに見えるプリファレンスとして、読取フィルタF1に印刷フィルタF21とメール送信フィルタF22が直結したマルチ文書アクティビティA1を選択し、設定画面Iにより、読取フィルタF1の動作項目設定(原稿種類の選択等)と印刷フィルタF21の動作項目設定(仕上げ方法の選択、部数の入力等)とメール送信フィルタF22の動作項目設定(ファイル種別の選択、アドレスの入力等)を行なう。
【0135】
この場合、ユーザに見えるプリファレンスのままだと、読取フィルタF1の出力データがRGB形式であり、印刷フィルタF21の入力データがCMYK形式であり、メール送信フィルタF22の入力データがPDF形式であるため、そのままでは動作しないが、内部で動く際のプリファレンスとして、読取フィルタF1と印刷フィルタF21の間に変換フィルタFC1が挿入されることでRGB形式からCMYK形式にデータが変換され、読取フィルタF1とメール送信フィルタF22の間に変換フィルタFC2が挿入されることでRGB形式からPDF形式にデータが変換され、問題なく動作することになる。
【0136】
このパターンにおけるプリファレンス設定(図16のステップS202)の処理については、図19に示した出力フィルタF2が出力フィルタF21、F22の二つになり、それらに対する処理が追加されるとともに、ユーザに見せるフィルタの接続関係が変更される点が異なる。
【0137】
また、このパターンにおけるプリファレンス組換え(図16のステップS203)の処理については、基本フローは図17に示した通りであり、詳細シーケンスについては図21に示した出力フィルタF2が出力フィルタF21、F22の二つになり、変換フィルタFが変換フィルタFC1、FC2の二つになり、更にフィルタ間をつなぐパイプが二つ増え、それらに対する処理が追加され、フィルタ間の接続関係が変更される点が異なる。
【0138】
また、このパターンにおける実行(図16のステップS204)の処理については、図24に示した出力フィルタF2が出力フィルタF21、F22の二つになり、変換フィルタFが変換フィルタFC1、FC2の二つになり、更にフィルタ間をつなぐパイプが二つ増え、それらに対する処理が追加され、フィルタ間の接続関係が変更される点が異なる。
【0139】
図27は第3のパターンの説明図であり、(a)は一般形、(b)(c)は具体例を示している。
【0140】
(a)において、ユーザに見えるプリファレンスとしては、アクティビティA1として、入力フィルタF1の後に編集フィルタF3を挟んで出力フィルタF2が接続されたものであるが、プリファレンスの組換えによって結果的に構成は変更されない。これは、編集フィルタF3が変換フィルタの機能を兼ねるからである。
【0141】
(b)においては、アクティビティA1がコピーアクティビティ、入力フィルタF1が読取フィルタ、出力フィルタF2が印刷フィルタとなっている。ユーザは、ユーザに見えるプリファレンスとして、読取フィルタF1の後に編集フィルタF3と印刷フィルタF2が接続したコピーアクティビティA1を選択し、設定画面Iにより、読取フィルタF1の動作項目設定(原稿種類の選択等)と編集フィルタF3の動作項目設定(編集方法の選択等)と印刷フィルタF2の動作項目設定(仕上げ方法の選択、部数の入力等)を行なう。
【0142】
読取フィルタF1の出力データはRGB形式であり、印刷フィルタF2の入力データはCMYK形式であるが、編集フィルタF3によりRGB形式からCMYK形式にデータが変換され、問題なく動作することになる。
【0143】
(c)においては、アクティビティA1がメール送信アクティビティ、入力フィルタF1が読取フィルタ、出力フィルタF2がメール送信フィルタとなっている。ユーザは、ユーザに見えるプリファレンスとして、読取フィルタF1の後に編集フィルタF3とメール送信フィルタF2が接続したメール送信アクティビティA1を選択し、設定画面Iにより、読取フィルタF1の動作項目設定(原稿種類の選択等)と編集フィルタF3の動作項目設定(編集方法の選択等)とメール送信フィルタF2の動作項目設定(ファイル種別の選択、アドレスの入力等)を行う。
【0144】
読取フィルタF1の出力データはRGB形式であり、メール送信フィルタF2の入力データはPDF形式であるが、編集フィルタF3によりRGB形式からPDF形式にデータが変換され、問題なく動作することになる。
【0145】
このパターンにおけるプリファレンス設定(図16のステップS202)の処理については、図19に編集フィルタF3が追加され、それに対する処理が追加されるとともに、ユーザに見せるフィルタの接続関係が変更される点が異なる。
【0146】
また、このパターンにおけるプリファレンス組換え(図16のステップS203)の処理については、基本フローは図17に示した通りであり、詳細シーケンスについては図21に示した変換フィルタFを編集フィルタF3に置き換えればよい。ただし、編集フィルタF3は既に存在するため新たに生成する必要はない。
【0147】
また、このパターンにおける実行(図16のステップS204)の処理については、図24に示した変換フィルタFを編集フィルタF3に置き換えればよい。ただし、編集フィルタF3は変換処理の他に本来の編集処理も行う。
【0148】
図28は第4のパターンの説明図であり、(a)は一般形、(b)は具体例を示している。
【0149】
(a)において、ユーザに見えるプリファレンスとしては、アクティビティA1として、入力フィルタF1に編集フィルタF3が接続され、その編集フィルタF3に複数の出力フィルタF21、F22が直結されたものであるが、プリファレンスの組換えにより、内部で動く際のプリファレンスとしては、アクティビティA1として、入力フィルタF1に複数の編集フィルタF3、F3'が接続され、編集フィルタF3、F3'にそれぞれ出力フィルタF21、F22が接続されたものとなる。編集フィルタF3'は編集フィルタF3を複製することにより追加される。
【0150】
(b)においては、アクティビティA1がマルチ文書アクティビティ、入力フィルタF1が読取フィルタ、出力フィルタF21が印刷フィルタ、出力フィルタF22がメール送信フィルタとなっている。ユーザは、ユーザに見えるプリファレンスとして、読取フィルタF1に編集フィルタF3が接続され、その編集フィルタF3に印刷フィルタF21とメール送信フィルタF22が直結したマルチ文書アクティビティA1を選択し、設定画面Iにより、読取フィルタF1の動作項目設定(原稿種類の選択等)と編集フィルタF3の動作項目設定(編集方法の選択等)と印刷フィルタF21の動作項目設定(仕上げ方法の選択、部数の入力等)とメール送信フィルタF22の動作項目設定(ファイル種別の選択、アドレスの入力等)を行なう。
【0151】
この場合、ユーザに見えるプリファレンスのままだと、読取フィルタF1の出力データがRGB形式であり、印刷フィルタF21の入力データがCMYK形式であり、メール送信フィルタF22の入力データがPDF形式であるため、一つの編集フィルタF3では二つの異なる形式のデータを同時に出力できず、そのままでは動作しないが、内部で動く際のプリファレンスとして、読取フィルタF1の後に編集フィルタF3、F3'が直結されることで、編集フィルタF3がRGB形式からCMYK形式にデータを変換し、編集フィルタF3'がRGB形式からPDF形式にデータを変換することで、問題なく動作することになる。
【0152】
このパターンにおけるプリファレンス設定(図16のステップS202)の処理については、図19に編集フィルタF3が追加され、出力フィルタF2が出力フィルタF21、F22の二つになり、それらに対する処理が追加されるとともに、ユーザに見せるフィルタの接続関係が変更される点が異なる。
【0153】
また、このパターンにおけるプリファレンス組換え(図16のステップS203)の処理については、基本フローは図17に示した通りであり、詳細シーケンスについては図21に示した出力フィルタF2が出力フィルタF21、F22の二つになり、変換フィルタFが編集フィルタF3、F3'の二つになり、更にフィルタ間をつなぐパイプが二つ増え、それらに対する処理が追加され、フィルタ間の接続関係が変更される点が異なる。ただし、編集フィルタF3、F3'は既に存在するため新たに生成する必要はない。
【0154】
また、このパターンにおける実行(図16のステップS204)の処理については、図24に示した出力フィルタF2が出力フィルタF21、F22の二つになり、変換フィルタFが編集フィルタF3、F3'の二つになり、更にフィルタ間をつなぐパイプが二つ増え、それらに対する処理が追加され、フィルタ間の接続関係が変更される点が異なる。
【0155】
図29は第5のパターンの説明図であり、(a)は一般形、(b)は具体例を示している。
【0156】
(a)において、ユーザに見えるプリファレンスとしては、アクティビティA1として、入力フィルタF1から複数に分岐し、一部の枝には編集フィルタF3と出力フィルタF21が順次接続され、他の枝には出力フィルタF22が直結されたものであるが、プリファレンスの組換えにより、内部で動く際のプリファレンスとしては、アクティビティA1として、入力フィルタF1に編集フィルタF3と変換フィルタFが接続され、編集フィルタF3に出力フィルタF21が接続され、変換フィルタFに出力フィルタF22が接続されたものとなる。
【0157】
(b)においては、アクティビティA1がコピーアクティビティ、入力フィルタF1が読取フィルタ、出力フィルタF21が印刷フィルタ、出力フィルタF22が保管登録フィルタとなっている。ユーザは、ユーザに見えるプリファレンスとして、読取フィルタF1に編集フィルタF3と保管登録フィルタF22が直結され、編集フィルタF3に印刷フィルタF21が接続したコピーアクティビティA1を選択し、設定画面Iにより、読取フィルタF1の動作項目設定(原稿種類の選択等)と編集フィルタF3の動作項目設定(編集方法の選択等)と印刷フィルタF21の動作項目設定(仕上げ方法の選択、部数の入力等)と保管登録フィルタF22の動作項目設定(文書名、パスワードの入力等)を行なう。
【0158】
この場合、ユーザに見えるプリファレンスのままだと、読取フィルタF1の出力データがRGB形式であり、印刷フィルタF21の入力データがCMYK形式であり、保管登録フィルタF22の入力データがJPEG形式であるため、編集フィルタF3により印刷フィルタF21のCMYK形式へは変換が行われるものの、読取フィルタF1と保管登録フィルタF22の間でデータの形式が異なるためそのままでは動作しない。しかし、内部で動く際のプリファレンスとして、保管登録フィルタF22の前に変換フィルタFが挿入されることで、RGB形式からJPEG形式にデータが変換され、問題なく動作することになる。
【0159】
このパターンにおけるプリファレンス設定(図16のステップS202)の処理については、図19に編集フィルタF3が追加され、出力フィルタF2が出力フィルタF21、F22の二つになり、それらに対する処理が追加されるとともに、ユーザに見せるフィルタの接続関係が変更される点が異なる。
【0160】
また、このパターンにおけるプリファレンス組換え(図16のステップS203)の処理については、基本フローは図17に示した通りであり、詳細シーケンスについては図21に示した出力フィルタF2が出力フィルタF21、F22の二つになり、編集フィルタF3が追加され、更にフィルタ間をつなぐパイプが二つ増え、それらに対する処理が追加され、フィルタ間の接続関係が変更される点が異なる。ただし、編集フィルタF3は既に存在するため新たに生成する必要はない。
【0161】
また、このパターンにおける実行(図16のステップS204)の処理については、図24に示した出力フィルタF2が出力フィルタF21、F22の二つになり、編集フィルタF3が追加され、更にフィルタ間をつなぐパイプが二つ増え、それらに対する処理が追加され、フィルタ間の接続関係が変更される点が異なる。
【0162】
<総括>
以上、本発明の好適な実施の形態により本発明を説明した。ここでは特定の具体例を示して本発明を説明したが、特許請求の範囲に定義された本発明の広範な趣旨および範囲から逸脱することなく、これら具体例に様々な修正および変更を加えることができることは明らかである。すなわち、具体例の詳細および添付の図面により本発明が限定されるものと解釈してはならない。
【図面の簡単な説明】
【0163】
【図1】第1の実施形態における複合機のソフトウェア構成例を示す図である。
【図2】パイプ&フィルタの概念を説明するための図である。
【図3】複合機のハードウェア構成の一例を示す図である。
【図4】アクティビティの構成要素を説明するための図である。
【図5】フィルタの構成要素を説明するための図である。
【図6】複合機における各機能を実現するためのフィルタの組み合わせの例を示す図である。
【図7】複合機が一つの機能を実現する際の処理手順を説明するためのフローチャート(その1)である。
【図8】複合機が一つの機能を実現する際の処理手順を説明するためのフローチャート(その2)である。
【図9】アクティビティを利用させるための操作画面例を示す図である。
【図10】ユーザインタフェース層からコントロール層へ通知される要求内容を概念的に示す図である。
【図11】フィルタとパイプの対応テーブルの例を示す図である。
【図12】コントロール層によって生成される情報を概念的に示す図である。
【図13】パイプを介したフィルタ間のデータの伝達手順を説明するための図である。
【図14】第2の実施形態における複合機のソフトウェア構成例を示す図である。
【図15】各コンポーネントに含まれるプリファレンス等の例を示す図である。
【図16】第2の実施形態の処理概要を示すフローチャートである。
【図17】アクティビティによるプリファレンスの組換えの処理例を示すフローチャートである。
【図18】第1のパターンの説明図である。
【図19】プリファレンス設定の処理例を示すシーケンス図である。
【図20】コンポーネントに含まれるデータの例を示す図である。
【図21】プリファレンス組換えの処理例を示すシーケンス図である。
【図22】コンポーネントに含まれるデータの例を示す図である。
【図23】コンポーネントに含まれるデータの例を示す図である。
【図24】実行の処理例を示すシーケンス図である。
【図25】コンポーネントに含まれるデータの例を示す図である。
【図26】第2のパターンの説明図である。
【図27】第3のパターンの説明図である。
【図28】第4のパターンの説明図である。
【図29】第5のパターンの説明図である。
【符号の説明】
【0164】
1 複合機
10 ユーザインタフェース層
11 通信サーバ部
12 ローカルUI部
20 コントロール層
30 アプリケーションロジック層
31 アクティビティ
31a コピーアクティビティ
31b プリンタアクティビティ
31c マルチ文書アクティビティ
301 読取フィルタ
302 保管文書読出フィルタ
303 メール受信フィルタ
304 FAX受信フィルタ
305 PC文書受信フィルタ
306 レポートフィルタ
311 文書加工フィルタ
312 文書変換フィルタ
321 印刷フィルタ
322 保管文書登録フィルタ
323 メール送信フィルタ
324 FAX送信フィルタ
325 PC文書送信フィルタ
326 プレビューフィルタ
40 デバイスサービス層
41 画像パイプ
42 データ管理部
50 デバイス制御層
51 スキャナ制御部
52 プロッタ制御部
53 メモリ制御部
54 Tel回線制御部
55 ネットワーク制御部
C1 UI
C2 アクティビティ
C3 入力フィルタ
C4 編集フィルタ
C5 出力フィルタ
C6 変換フィルタ
C7 リクエスト管理
C8 パイプ

【特許請求の範囲】
【請求項1】
画像処理の対象とするデータを入力する一つ以上の入力部と、該画像処理の結果を出力する一つ以上の出力部と、前記入力部に応じて当該入力部からのデータの入力処理を制御する第一のフィルタと、前記出力部に応じて当該出力部への出力を制御する第二のフィルタとを備え、前記第一のフィルタと前記第二のフィルタとの接続によりアプリケーションが構築される画像処理装置であって、
前記第一のフィルタおよび前記第二のフィルタの間に画像データの種類を変換する第三のフィルタを備え、
ジョブの実行時、前記第三のフィルタは前記第一のフィルタおよび前記第二のフィルタに対応する画像データの種類を問い合わせ、入手した画像データの種類が異なる場合は、前記第一のフィルタが対応する画像データの種類から前記第二のフィルタが対応する画像データの種類へ変換することを特徴とする画像処理装置。
【請求項2】
請求項1に記載の画像処理装置において、
前記第三のフィルタによる変換は、ユーザの指定によらずに内部的に行われることを特徴とする画像処理装置。
【請求項3】
請求項1または2のいずれか一項に記載の画像処理装置において、
前記第三のフィルタは、画像データの種類の変換処理に加え、ユーザから指定された編集設定に基づき画像処理を行うことを特徴とする画像処理装置。
【請求項4】
請求項1乃至3のいずれか一項に記載の画像処理装置において、
前記第三のフィルタは、画像データの種類の変換処理として、色空間の変換を行うことを特徴とする画像処理装置。
【請求項5】
請求項1乃至3のいずれか一項に記載の画像処理装置において、
前記第三のフィルタは、画像データの種類の変換処理として、ファイル形式の変換を行うことを特徴とする画像処理装置。
【請求項6】
請求項1乃至5のいずれか一項に記載の画像処理装置において、
前記第一のフィルタは、スキャナが原稿から生成した画像データを入力する読取フィルタ、保管されている文書を入力する保管読出フィルタ、ネットワーク外から受信したデータを入力する受信フィルタのうちのいずれか一であることを特徴とする画像処理装置。
【請求項7】
請求項1乃至6のいずれか一項に記載の画像処理装置において、
前記第二のフィルタは、入力した画像データを用紙に印刷して出力する印刷フィルタ、入力した画像データを画像ファイルとしてネットワーク外へ送信する送信フィルタ、不揮発領域に文書を保存する保管登録フィルタのうちのいずれか一であることを特徴とする画像処理装置。
【請求項8】
画像処理の対象とするデータを入力する一つ以上の入力部と、該画像処理の結果を出力する一つ以上の出力部と、前記入力部に応じて当該入力部からのデータの入力処理を制御する第一のフィルタと、前記出力部に応じて当該出力部への出力を制御する第二のフィルタとを備え、前記第一のフィルタと前記第二のフィルタとの接続によりアプリケーションが構築される画像処理装置のアプリケーション実行方法であって、
前記第一のフィルタおよび前記第二のフィルタの間に画像データの種類を変換する第三のフィルタを内部的に挿入する工程と、
ジョブの実行時、前記第三のフィルタにより、前記第一のフィルタおよび前記第二のフィルタに対応する画像データの種類を問い合わせ、入手した画像データの種類が異なる場合は、前記第一のフィルタが対応する画像データの種類から前記第二のフィルタが対応する画像データの種類へ変換する工程とを備えたことを特徴とするアプリケーション実行方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate


【公開番号】特開2009−111784(P2009−111784A)
【公開日】平成21年5月21日(2009.5.21)
【国際特許分類】
【出願番号】特願2007−282453(P2007−282453)
【出願日】平成19年10月30日(2007.10.30)
【出願人】(000006747)株式会社リコー (37,907)
【Fターム(参考)】