説明

画像処理装置およびプラグイン変換プログラム

【課題】 アプリケーションプログラムおよびオペレーティングシステムプログラムを変更することなく、処理速度を早くすること。
【解決手段】 MFPが備えるCPUは、オペレーティングコマンドに従って複数の圧縮・伸張器を制御するOS部73と、アプリコマンドを出力するアプリケーション部53,55,57と、アプリコマンドを、複数の圧縮・伸張器のうち該アプリコマンドに対して予め定められた第1の数のデバイスを用いる第1の種類のオペレーティングコマンドに変換し、OS部73に出力するデフォルト変換部65と、アプリコマンドにそれぞれ対応するプラグイン変換部67,69,71と、を備え、プラグイン変換部67,69,71は、複数の圧縮・伸張器のうち第1の数よりも大きい第2の数のデバイスを用いる第2の種類のオペレーティングコマンドに変換し、OS部73に出力する。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は画像処理装置およびプラグイン変換プログラムに関し、特にプラグイン変換プログラムをインストール可能な画像処理装置およびそのプラグイン変換プログラムに関する。
【背景技術】
【0002】
複合機(以下「MFP」という)において、プラグイン変換プログラムをインストールすることにより、新たな機能を追加することができる。例えば、特開2008−67479号公報には、画像処理に係るジョブを構成する処理毎に設けられたフィルタを有するプラグインを追加可能な画像処理装置であって、プラグインは、当該プラグインの登録を、プラグインを管理するプラグイン管理手段に対して要求するプラグイン登録要求手段を有し、プラグイン登録要求手段は、プラグインが有するフィルタの動作および該動作に対応する動作オブジェクトの登録を要求する、画像処理装置が記載されている。従来の画像処理装置においては、プラグインを追加することによって、新たな処理を実行させることができる。
【0003】
一方、画像処理装置が実行可能な処理は、使用するハードウェア資源が固定されているため、処理速度が一定になる。例えば、画像処理装置は、画像を圧縮する処理および伸張する処理を実行し、これらの処理を実行するために複数の圧縮・伸張器を有している。従来の画像処理装置は、処理の種類毎に、使用可能な圧縮・伸張器の数が固定されている。このため、圧縮処理または伸張処理がボトルネックとなって、処理速度を早くするには限界があった。
【特許文献1】特開2008−67479号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
この発明は上述した問題点を解決するためになされたもので、この発明の目的の1つは、アプリケーションプログラムおよびオペレーティングシステムプログラムを変更することなく、処理速度を早くすることが可能な画像処理装置を提供することである。
【0005】
この発明の他の目的は、アプリケーションプログラムおよびオペレーティングシステムプログラムを変更することなく、処理速度を早くすることが可能なプラグイン変換プログラムを提供することである。
【課題を解決するための手段】
【0006】
上述した目的を達成するためにこの発明のある局面によれば、画像処理装置は、データを圧縮して圧縮データに変換可能であるとともに、圧縮データを伸張してデータに変換可能な複数の圧縮伸張手段と、複数の圧縮伸張手段を制御する制御手段と、を備えた画像処理装置であって、制御手段は、オペレーティングシステムプログラムを実行することにより形成され、オペレーティングコマンドに従って複数の圧縮伸張手段を制御するオペレーティング手段と、アプリケーションプログラムを実行することにより形成され、アプリコマンドを出力するアプリケーション手段と、デフォルト変換プログラムを実行することにより、オペレーティング手段とアプリケーション手段との間に形成され、アプリケーション手段により出力されるアプリコマンドを、複数の圧縮伸張手段のうち該アプリコマンドに対して予め定められた第1の数の圧縮伸張手段を用いる第1の種類のオペレーティングコマンドに変換し、第1の種類のオペレーティングコマンドをオペレーティング手段に出力するデフォルト変換手段と、プラグイン変換プログラムを実行することにより、オペレーティング手段とアプリケーション手段との間に形成され、アプリケーション手段が出力可能な1以上のアプリコマンドの少なくとも1つに対応するプラグイン変換手段と、を備え、プラグイン変換手段は、アプリケーション手段により対応するアプリコマンドが出力される場合、複数の圧縮伸張手段のうち第1の種類のオペレーティングコマンドが用いる第1の数よりも大きい第2の数の圧縮伸張手段を用いる第2の種類のオペレーティングコマンドに変換し、第2の種類のオペレーティングコマンドをオペレーティング手段に出力する。
【0007】
この局面に従えば、第2の種類のオペレーティングコマンドがオペレーティング手段に出力される場合は、第1の種類のオペレーティングコマンドがオペレーティング手段に出力される場合よりも大きな数の圧縮伸張手段が用いられるので、プラグイン変換プログラムが実行される場合の処理速度を早くすることができる。その結果、アプリケーションプログラムおよびオペレーティングシステムプログラムを変更することなく、処理速度を早くすることが可能な画像処理装置を提供することができる。
【0008】
好ましくは、アプリケーション手段が出力するアプリコマンドがプラグイン変換手段に対応する場合、デフォルト変換手段による第1の種類のオペレーティングコマンドの出力を停止させ、プラグイン変換手段に第2の種類のオペレーティングコマンドを出力させる調停手段を含む。
【0009】
この局面に従えば、デフォルト変換手段とプラグイン変換手段とのいずれか一方がオペレーティングコマンドを出力するので、オペレーティング手段に同じ処理を実行させるのを回避することができる。
【0010】
好ましくは、プラグイン変換手段は、第2の種類のオペレーティングコマンドをオペレーティング手段に出力した後に、アプリケーション手段により出力されるアプリコマンドがプラグイン変換手段に対応しない別のアプリコマンドの場合、別のアプリコマンドを第2の種類のオペレーティングコマンドが用いる第2の数の圧縮伸張手段のうち少なくとも1つの入力用の圧縮伸張手段を用いる第3の種類のオペレーティングコマンドと、第2の数の圧縮伸張手段のうちから少なくとも1つの入力用の圧縮伸張手段を除いた第4の数の圧縮伸張手段を用いる第4の種類のオペレーティングコマンドと、に変換するマルチ実行手段を、含む。
【0011】
この局面に従えば、プラグイン変換手段に対応するアプリコマンドが出力された後に、対応しない別のアプリコマンドが出力される場合、対応しないアプリコマンドを第3の種類のオペレーティングコマンドに変換し、対応するアプリコマンドを第4の種類のオペレーティングコマンドに変換する。このため、異なる2つのアプリコマンドそれぞれに対応するオペレーティングコマンドを出力することができる。
【0012】
好ましくは、ユーザーを認証する認証手段をさらに備え、調停手段は、認証手段により認証されたユーザーによる指示に基づいてアプリケーション手段が出力するアプリコマンドがプラグイン変換手段に対応する場合、認証されたユーザーに対してプラグイン変換プログラムの実行が許可されていることを条件に、プラグイン変換手段に第2の種類のオペレーティングコマンドを出力させる。
【0013】
この局面に従えば、ユーザーごとにプラグイン変換プログラムの実行の可否を決定することができる。
【0014】
好ましくは、アプリコマンドの実行に対して課金する課金手段を、さらに備え、課金手段は、デフォルト変換手段が第1の種類のオペレーティングコマンドの出力する場合と、プラグイン変換手段が第2の種類のオペレーティングコマンドを出力する場合とで、異なる料金を課金する。
【0015】
この局面に従えば、処理速度に応じて課金額を変更することができる。
【0016】
好ましくは、動作モードを通常ユモードと、通常モードよりも消費電力の小さい省電力モードとのいずれかに切り換える動作モード切換手段を、さらに備え、調停手段は、動作モードが省電力モードに切り換えられている場合に、プラグイン変換手段に第2の種類のオペレーティングコマンドを出力させ、動作モードが通常モードに切り換えられている場合に、デフォルト変換手段に第1の種類のオペレーティングコマンドを出力させる。
【0017】
この局面に従えば、省電力モードの場合に、処理速度を速くすることにより、処理時間を短くして、消費電力を低減することができる。
【0018】
この発明のさらに他の局面によれば、プラグイン変換プログラムは、データを圧縮して圧縮データに変換可能であるとともに、圧縮データを伸張してデータに変換可能な複数の圧縮伸張手段と、複数の圧縮伸張手段を制御するコンピューターと、を備えた画像処理装置で実行されるプラグイン変換プログラムであって、コンピューターは、オペレーティングシステムプログラムを実行することにより形成され、オペレーティングコマンドに従って複数の圧縮伸張手段を制御するオペレーティング手段と、アプリケーションプログラムを実行することにより形成され、アプリコマンドを出力するアプリケーション手段と、デフォルト変換プログラムを実行することにより、オペレーティング手段とアプリケーション手段との間に形成され、アプリケーション手段により出力されるアプリコマンドを、複数の圧縮伸張手段のうち該アプリコマンドに対して予め定められた第1の数の圧縮伸張手段を用いる第1の種類のオペレーティングコマンドに変換し、第1の種類のオペレーティングコマンドをオペレーティング手段に出力するデフォルト変換手段と、を備え、プラグイン変換プログラムは、アプリケーション手段が出力可能な1以上のアプリコマンドのうちから予め定められたアプリコマンドが出力される場合、複数の圧縮伸張手段のうち第1のオペレーティングコマンドが用いる第1の数よりも大きい第2の数の圧縮伸張手段を用いる第2の種類のオペレーティングコマンドに変換するステップと、第2のオペレーティングコマンドをオペレーティング手段に出力するステップと、をコンピューターに実行させる。
【0019】
この局面に従えば、第2の種類のオペレーティングコマンドがオペレーティング手段に出力される場合は、第1の種類のオペレーティングコマンドがオペレーティング手段に出力される場合よりも大きな数の圧縮伸張手段が用いられるので、プラグイン変換プログラムが実行される場合の処理速度を早くすることができる。その結果、アプリケーションプログラムおよびオペレーティングシステムプログラムを変更することなく、処理速度を早くすることが可能なプラグイン変換プログラムを提供することができる。
【図面の簡単な説明】
【0020】
【図1】本発明の実施の形態の1つにおけるMFPの外観を示す斜視図である。
【図2】MFPのハードウェア構成の概要を示す図である。
【図3】メイン回路の詳細な構成の一例を示すブロック図である。
【図4】符号管理テーブルの一例を示す図である。
【図5】CPUのソフトウェアアーキテクチャの一例を示す図である。
【図6】CPUの機能の概要の一例を示すブロック図である。
【図7】デフォルトテーブルの一例を示す図である。
【図8】コピー最速化テーブルの一例を示す図である。
【図9】スキャン最速化テーブルの一例を示す図である。
【図10】プリント最速化テーブルの一例を示す図である。
【図11】料金テーブルの一例を示す図である。
【図12】認証処理の一例を示すフローチャートである。
【図13】デフォルト変換処理の流れの一例を示すフローチャートである。
【図14】プラグイン変換処理の流れの一例を示すフローチャートである。
【発明を実施するための形態】
【0021】
以下、本発明の実施の形態について図面を参照して説明する。以下の説明では同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがってそれらについての詳細な説明は繰返さない。
【0022】
図1は、本発明の実施の形態の1つにおけるMFPの外観を示す斜視図である。図2は、MFPのハードウェア構成の概要を示す図である。図1および図2を参照して、画像処理装置の一例であるMFP100は、MFP100の全体を制御するCPU111を含むメイン回路110と、原稿を読み取るための原稿読取部130と、原稿を原稿読取部130に搬送するための自動原稿搬送装置(ADF)120と、原稿読取部130が原稿を読み取って出力する画像データに基づいて用紙等に画像を形成するための画像形成部140と、画像形成部140に用紙を供給するための給紙部150と、ユーザーインターフェースとしての操作パネル160と、EEPROM(Electrically Erasable Programmable ROM)115と、大容量記憶装置としてのハードディスクドライブ(HDD)116と、ファクシミリ部117と、CD−ROM(Compact Disc−Read Only Memory)119Aが装着される外部記憶装置119と、を含む。
【0023】
操作パネル160は、MFP100の上面に設けられ、表示部163と操作部165とを含む。表示部163は、液晶表示装置(LCD)、有機ELD(Electro−Luminescence Display)等の表示装置であり、ユーザーに対する指示メニューや取得した画像データに関する情報等を表示する。操作部165は、複数のキーを備え、キーに対応するユーザーの操作による各種の指示、文字、数字などのデータの入力を受け付ける。操作部165は、表示部163の表示面の位置を検出するタッチパネル167をさらに含む。タッチパネル167は、表示部163の上面または下面に設けられ、ユーザーにより指示された位置の座標をCPU111に出力する。
【0024】
ファクシミリ部117は、公衆交換電話網(PSTN)に接続され、ファクシミリデータを送受信する。ファクシミリ部117は、原稿読取部130により読み取られた画像データまたはHDD116に記憶されたデータをファクシミリデータに変換して、PSTNに接続されたファクシミリ装置に送信する。また、ファクシミリ部117は、受信されたファクシミリデータをHDD116に記憶するか、画像形成部140にファクシミリデータの画像を用紙に形成させる。
【0025】
外部記憶装置119は、CD−ROM119Aが装着される。CPU111は、外部記憶装置119を介してCD−ROM119Aにアクセス可能である。CPU111は、外部記憶装置119に装着されたCD−ROM119Aに記録されたプログラムをRAM114にロードして実行する。なお、CPU111が実行するプログラムは、CD−ROM119Aに記録されたプログラムに限られず、EEPROM115またはHDD116に記憶されたプログラムをRAM114にロードして実行するようにしてもよい。この場合、ネットワークに接続された他のコンピューターが、MFP100のHDD116に記憶されたプログラムを書き換える、または、新たなプログラムを追加して書き込むようにしてもよい。さらに、MFP100が、ネットワークに接続された他のコンピューターからプログラムをダウンロードして、そのプログラムをHDD116に記憶するようにしてもよい。ここでいうプログラムは、CPU111が直接実行可能なプログラムだけでなく、ソースプログラム、圧縮処理されたプログラム、暗号化されたプログラム等を含む。
【0026】
図3は、メイン回路の詳細な構成の一例を示すブロック図である。図3を参照して、メイン回路110は、MFP100の全体を制御するためのCPU111と、CPU111が実行するプログラム等を記憶するためのROM(Read Only Memory)113と、CPU111の作業領域として用いられるRAM(Random Access Memory)114と、画像データの入出力を制御するためのバス調停器121と、N個の第1〜第N圧縮・伸張器131−1〜131−N(Nは1より大きい正の整数)と、メモリーコントローラ151と、ネットワークコントローラ112と、を含む。
【0027】
ROM113は、CPU111が実行するオペレーティングシステム(OS)プログラムおよびデフォルト変換プログラム、またはそれらを実行するために必要なデータを記憶する。RAM114は、CPU111の作業領域として用いられる。
【0028】
ネットワークコントローラ112は、MFP100をローカルエリアネットワーク(LAN)などのネットワークに接続するためのインターフェースであり、例えば、NIC(Network Interface Card)である。CPU111は、ネットワークコントローラ112を介して接続された他のコンピューターとの間で通信し、データを送受信する。また、ネットワークコントローラ112は、ネットワークを介してインターネットに接続されたコンピューターと通信が可能である。
【0029】
バス調停器121は、データを一時記憶するための入力メモリー123および出力メモリー127と、画像データの入出力を制御するための転送制御部129と、を含む。
【0030】
メモリーコントローラ151は、CPU111により制御され、転送制御部129を制御して、RAM114、入力メモリー123および出力メモリー127のデータの入出力を制御する。
【0031】
転送制御部129は、メモリーコントローラ151により制御され、入力メモリー123および出力メモリー127それぞれのデータの入出力を制御する。入力メモリー123および出力メモリー127それぞれは、データを一時的に記憶するバッファメモリーである。転送制御部129が制御するデータの流れは、データの入力の流れと、出力の流れとの2つに大別され、それらはジョブの種類によって異なる。本実施の形態におけるMFP100が実行可能なジョブは、原稿を複写するコピージョブ、原稿を読み取るスキャンジョブ、PCから受信されるプリントデータをプリントするプリントジョブがある。
【0032】
CPU111は、コピージョブの場合、データの入力時において、原稿読取部130を制御して原稿読取部130で原稿が読み取らせ、メモリーコントローラ151を制御して、原稿読取部130から出力される画像データを入力メモリー123に格納させる。CPU111は、コピージョブの場合、データの出力時において、メモリーコントローラ151に出力メモリー127に格納されたデータを読み出させ、画像形成部140を制御して、メモリーコントローラ151により読み出されたデータの画像を用紙に形成させる。
【0033】
CPU111は、スキャンジョブの場合、データの入力時において、コピージョブの場合と同様に、原稿読取部130を制御して原稿読取部130で原稿が読み取らせ、メモリーコントローラ151を制御して、原稿読取部130から出力される画像データを入力メモリー123に格納させる。CPU111は、スキャンジョブの場合、データの出力時において、メモリーコントローラ151に出力メモリー127に格納されたデータを読み出させ、ネットワークコントローラ112を制御して、メモリーコントローラ151により読み出されたデータを外部に送信させる。なお、スキャンジョブの場合、データをHDD116に記憶するようにしてもよい。この場合、CPU111は、データの出力時において、メモリーコントローラ151に出力メモリー127に格納されたデータを読み出させ、HDD116を制御して、転送制御部129により読み出されたデータを記憶させる。
【0034】
プリントジョブの場合、データの入力時において、ネットワークコントローラ112により外部のコンピューターからプリントデータが受信される。CPU111は、ネットワークコントローラ112がプリントデータを受信すると、メモリーコントローラ151に、プリントデータを入力メモリー123に格納させる。CPU111は、プリントジョブの場合、データの出力時において、コピージョブの場合と同様に、メモリーコントローラ151に出力メモリー127に格納されたデータを読み出させ、画像形成部140を制御して、メモリーコントローラ151により読み出されたデータの画像を用紙に形成させる。
【0035】
N個の第1〜第N圧縮・伸張器131−1〜131−Nは、同じ性能を有し、転送制御部129により制御され、データを圧縮または伸張する。具体的には、第1〜第N圧縮・伸張器131−1〜131−Nそれぞれは、圧縮器として機能する場合は、転送制御部129から入力されるデータを、圧縮することにより圧縮データに変換し、圧縮データをRAM114の転送制御部129により指定される領域に格納する。第1〜第N圧縮・伸張器131−1〜131−Nそれぞれは、伸張器として機能する場合は、RAM114の転送制御部129により指定される領域から圧縮データを読出し、伸張することによりデータに変換し、データを転送制御部129に出力する。
【0036】
転送制御部129は、データの入力時において、入力メモリー123からバンド単位でデータを読み出し、第1〜第N圧縮・伸張器131−1〜Nのうちからメモリーコントローラ151により圧縮器として選択された1以上のデバイスに出力する。転送制御部129は、入力メモリー123に、所定単位のデータ、例えば1ページ分のデータが記憶される前に、1ページ分のデータを複数に分割したバンド単位のデータが入力されると、バンド単位でデータを読み出し、第1〜第N圧縮・伸張器131−1〜Nのうちからメモリーコントローラ151により圧縮器として選択された1以上のデバイスに順に出力する。すなわち、第1〜第N圧縮・伸張器131−1〜Nのうちから選択された1以上のデバイスで、1ページ分のデータを分担し、1以上のデバイスそれぞれが圧縮処理を実行する。第1〜第N圧縮・伸張器131−1〜Nのうちからメモリーコントローラ151により圧縮器として選択された1以上のデバイスそれぞれは、バンド単位で入力されるデータを圧縮し、圧縮データをRAM114に格納する。
【0037】
転送制御部129は、データの出力において、第1〜第N圧縮・伸張器131−1〜Nのうちからメモリーコントローラ151により伸張器として選択された1以上のデバイスそれぞれに、RAM114に記憶された圧縮データを読み出させ、伸張させる。第1〜第N圧縮・伸張器131−1〜Nのうちからメモリーコントローラ151により伸張器として選択された1以上のデバイスそれぞれは、バンド単位の圧縮データを伸張し、伸張したデータを転送制御部129に出力する。すなわち、第1〜第N圧縮・伸張器131−1〜Nのうちから選択された1以上のデバイスで、1ページ分のデータを分担し、1以上のデバイスそれぞれが伸張処理を実行する。転送制御部129は、第1〜第N圧縮・伸張器131−1〜Nのうちからメモリーコントローラ151により伸張器として選択された1以上のデバイスそれぞれから入力されるデータを、出力メモリー127に格納する。
【0038】
メモリーコントローラ151は、第1〜第N圧縮・伸張器131−1〜Nのうちから、圧縮器として選択した1以上のデバイスとは別の1以上を、伸長器として選択する。このため、第1〜第N圧縮・伸張器131−1〜Nのうち1以上のデバイスがバンド単位のデータを伸張する処理を実行している間に、慎重処理する1以上のデバイスとは別の1以上のデバイスが次のバンドのデータを圧縮する処理を実行する。すなわち、第1〜第N圧縮・伸張器131−1〜Nのうち1以上のデバイスそれぞれが圧縮処理を実行している間に、別の1以上のデバイスそれぞれが伸張処理を実行する。
【0039】
CPU111は、RAM114が記憶する符号管理テーブルによって、RAM114に記憶されるバンド単位のデータの入出を管理する。図4は、符号管理テーブルの一例を示す図である。データの入力時、入力メモリー123に格納されたデータをバンド単位に圧縮するため、RAM114には、図の右側に示すように、1ページ分のデータがバンド単位に分割されて記憶される。そこで、符号管理テーブルは、分割されたバンド単位の情報を記憶するバンド管理情報テーブルT2と、原稿中のページ単位の情報を記憶するページ単位情報テーブルT1とからなる。ページ単位情報テーブルT1は、圧縮する前の1ページ単位での圧縮中か否かの状態や、何バンド圧縮したか否か、画像サイズや、圧縮サイズ、バンド単位情報はどこに記憶しているかといった情報を記憶する。また、バンド管理情報テーブルT2は、分割されたデータがどこにあるか、またバンド単位の圧縮サイズ等を記憶する。ここでは、1つの符号管理テーブルを示すが、複数のジョブが実行されて、複数のデータが入力される場合には、複数のデータそれぞれに対応する複数の符号管理テーブルがRAM114に記憶される。
【0040】
CPU111は、バンド単位のデータの入出力を指示するコマンドを、メモリーコントローラ151に出力し、メモリーコントローラ151は、CPU111から入力されるコマンドに従って、転送制御部129を制御する。コマンドは、バンド単位のデータごとに出力され、第1〜第N圧縮・伸張器131−1〜Nのいずれかを特定する情報と、伸張器または圧縮器のいずれとして機能させるかを示す情報とを含む。
【0041】
CPU111は、MFP100に電源が投入されて起動すると、ROM113に記憶されたオペレーティングシステム(以下「OS」という)プログラムを実行し、その後、デフォルト変換プログラムを実行する。また、CPU111は、プラグイン変換プログラムがインストールされると、インストールされたプラグイン変換プログラムを、EEPROM115に記憶する。そして、CPU111は、必要に応じてプラグイン変換プログラムをEEPROM115から読出し、実行する。さらに、CPU111は、アプリケーションプログラムがインストールされると、インストールされたアプリケーションプログラムを、EEPROM115に記憶する。そして、CPU111は、ユーザーによる操作に応じて、またはプリントデータが受信されることに応じて、アプリケーションプログラムをEEPROM115から読出し、実行する。
【0042】
図5は、CPUのソフトウェアアーキテクチャの一例を示す図である。図5を参照して、CPU111には、オペレーティングシステム(OS)層が形成され、その上の階層に、MFPプロセス層およびプラグイン層が形成される。さらにその上層に、アプリケーションプラットフォーム(PF)層、アプリケーション層の順に形成される。
【0043】
OS層は、CPU111がOSプログラムを実行するタスクが属し、そのタスクは、MFP100のハードウェア資源を制御する処理を実行する。ハードウェア資源は、ここでは、ネットワークコントローラ112、ROM113、RAM114、EEPROM115、HDD116、ファクシミリ部117、外部記憶装置119、メモリーコントローラ151、バス調停器121、第1〜第N圧縮・伸張器131−1〜Nを含む。
【0044】
MFPプロセス層は、CPU111が、デフォルト変換プログラムを実行するタスクが属する。プラグイン層は、CPU111がプラグイン変換プログラムを実行するタスクが属する。複数種類のプラグイン変換プログラムがインストールされる場合、複数種類のプラグイン変換プログラムのうちから選択された1つを実行するタスクが属する。なお、複数種類のプラグイン変換プログラムのうちから選択された2以上をそれぞれ実行する2以上のタスクが属するようにしてもよい。
【0045】
アプリケーション層は、CPU111がアプリケーションプログラムを実行するタスクが属し、MFP100に処理を実行させるためのアプリコマンドを出力する。複数種類のアプリケーションプログラムがインストールされる場合、複数種類のアプリケーションプログラムをそれぞれ実行する複数のタスクが属する。ここでは、アプリケーション層に、コピー処理を実行するためのアプリケーションプログラムを実行する「コピーアプリ」のタスクと、スキャン処理を実行するためのアプリケーションプログラムを実行する「スキャンアプリ」のタスクと、プリント処理を実行するためのアプリケーションプログラムを実行する「プリントアプリ」のタスクと、が属する場合を例に示している。なお、アプリケーションプログラムは、これらに限定されることなく、これより多くてもよい。
【0046】
アプリケーションPF層は、アプリケーション層と、MFPプロセス層またはプラグイン層と、の間に配置され、アプリケーション層と、MFPプロセス層およびプラグイン層との間を標準化する。例えば、MFPプロセス層およびプラグイン層で実行可能なアプリコマンドを標準化する。実際には、アプリコマンドを、MFPプロセス層およびプラグイン層で実行可能な1以上のコマンドに変換するが、ここでは、アプリコマンドとMFPプロセス層およびプラグイン層で実行可能な1以上のコマンドとの関係は同一として、説明する。
【0047】
MFPプロセス層およびプラグイン層は、アプリケーション層とOS層との間に配置され、アプリケーションプログラムを実行するタスクが出力するアプリコマンドを、OSプログラムを実行するタスクが解釈可能なオペレーティングコマンドに変換し、OSプログラムを実行するタスクにオペレーティングコマンドを出力する。なお、1つのアプリコマンドに対して、複数のオペレーティングコマンドが対応する場合があるが、ここでは説明のために、1つのアプリコマンドに対して1つのオペレーティングコマンドが対応する場合を例に説明する。
【0048】
図6は、CPUの機能の概要の一例を示すブロック図である。図6に示すCPU111の機能は、CPU111が、OSプログラム、デフォルト変換プログラム、プラグイン変換プログラムおよびアプリケーションプログラムを実行することにより、CPU111に形成される。ここでは、MFP100に、プラグイン変換プログラムとして、コピープラグイン変換プログラム、スキャンプラグイン変換プログラムおよびプリントプラグイン変換プログラムが、インストールされている場合におけるCPU111の機能を示している。
【0049】
図6を参照して、CPU111は、MFP100を操作するユーザーを認証するユーザー認証部51と、第1〜第3アプリケーション部53,55,57と、動作モードを切り換える動作モード切換部59と、課金部61と、調停部63と、デフォルト変換部65と、コピープラグイン変換部67と、スキャンプラグイン変換部69と、プリントプラグイン変換部71と、OS部73と、を含む。
【0050】
ユーザー認証部51、第1〜第3アプリケーション部53,55,57、動作モード切換部59および課金部61は、CPU111がそれぞれに対応するアプリケーションプログラムを実行するタスクであり、そのタスクによって実行される機能である。ユーザー認証部51、第1〜第3アプリケーション部53,55,57、動作モード切換部59および課金部61は、図5に示したソフトウェアアーキテクチャにおいて、アプリケーション層に属する。
【0051】
調停部63は、CPU111がアプリケーションPFプログラムを実行するタスクであり、そのタスクによって実行される機能である。図5に示したソフトウェアアーキテクチャにおいて、アプリケーションPF層に属する。なお、アプリケーションPFプログラムは、デフォルト変換プログラムの一部としてもよい。
【0052】
デフォルト変換部65は、CPU111がデフォルト変換プログラムを実行するタスクであり、そのタスクによって実行される機能である。図5に示したソフトウェアアーキテクチャにおいて、MFPプロセス層に属する。
【0053】
コピープラグイン変換部67、スキャンプラグイン変換部69およびプリントプラグイン変換部71は、CPU111がそれぞれに対応するプラグイン変換プログラムを実行するタスクであり、そのタスクによって実行される機能である。図5に示したソフトウェアアーキテクチャにおいて、プラグイン層に属する。なお、本実施の形態においては、CPU111は、同時に1つのプラグイン変換プログラムを実行可能としている。このため、コピープラグイン変換部67、スキャンプラグイン変換部69およびプリントプラグイン変換部71のうちからCPU111が実行するプラグイン変換プログラムに対応するものが機能する。
【0054】
OS部73は、CPU111がOSプログラムを実行するタスクであり、そのタスクによって実行される機能である。図5に示したソフトウェアアーキテクチャにおいて、OS層に属する。
【0055】
OS部73は、デフォルト変換部65、コピープラグイン変換部67、スキャンプラグイン変換部69およびプリントプラグイン変換部71のいずれかからオペレーティングコマンドが入力され、第1〜第N圧縮・伸張器131−1〜Nを制御する。オペレーティングコマンドは、第1〜第N圧縮・伸張器131−1〜Nのいずれかを特定するデバイス識別情報と、データを特定するアドレス情報と、圧縮処理または伸張処理のいずれかを示す処理識別情報と、を含む。圧縮処理を示す識別情報を含むオペレーティングコマンドは、処理対象のデータ(バンド)が記憶されている入力メモリー123のアドレスを示すアドレス情報と、圧縮処理後の圧縮データを格納するRAM114のアドレスを示すアドレス情報とを含む。伸張処理を示す識別情報を含むオペレーティングコマンドは、処理対象の圧縮データが記憶されているRAM114のアドレスを示すアドレス情報と、伸張処理後のデータを格納する出力メモリー127のアドレスを示すアドレス情報とを含む。
【0056】
OS部73は、圧縮処理を示す識別情報を含むオペレーティングコマンドが入力される場合、第1〜第N圧縮・伸張器131−1〜Nのうちオペレーティングコマンドに含まれるデバイス識別情報で特定されるデバイスに、入力メモリー123のアドレス情報で特定されるアドレスに記憶されているデータを圧縮させ、圧縮データをRAM114のアドレス情報で特定されるアドレスに格納させる。OS部73は、伸張処理を示す識別情報を含むオペレーティングコマンドが入力される場合、第1〜第N圧縮・伸張器131−1〜Nのうちオペレーティングコマンドに含まれるデバイス識別情報で特定されるデバイスに、RAM114のアドレス情報で特定されるアドレスに記憶されているデータを伸張させ、伸張されたデータを出力メモリー127のアドレス情報で特定されるアドレスに格納させる。
【0057】
ユーザー認証部51は、MFP100を操作するユーザーを認証する。MFP100は、その使用が許可されたユーザーに割り当てられたアカウントとパスワードとを含むユーザーレコードを予め記憶している。MFP100を操作するユーザーは、操作パネル160を操作するユーザーと、MFP100にネットワークで接続されたPCを操作するユーザーと、を含む。具体的には、MFP100は、MFP100の使用が許可されたユーザーを登録する際に、そのユーザーに割り当てられたアカウントとパスワードとを含むユーザーレコードを、HDD116に記憶されたユーザーデータに追加する。ユーザー認証部51は、ユーザーが操作パネル160を使用する場合、表示部163にログイン画面を表示する。ログイン画面は、アカウントとパスワードとを入力する領域を含む。ユーザーが、ログイン画面に従って操作部165にアカウントとパスワードとを入力すれば、操作部163からアカウントとパスワードとの組を受け付ける。ユーザー認証部51は、操作部163からアカウントとパスワードとの組を受け付けると、受け付けられたアカウントとパスワードとの組と予めHDD116に記憶されているユーザーデータに含まれるユーザーレコードと比較する。ユーザー認証部51は、アカウントとパスワードとの組と一致するユーザーレコードがユーザーデータに含まれていれば認証成功と判断し、そうでなければ認証失敗と判断する。
【0058】
ユーザー認証部51は、認証成功と判断する場合、直接ログイン期間を開始し、直接ログイン期間に操作部165に入力される操作を、操作部165を使用するユーザーにより入力された操作として扱う。直接ログイン期間は、操作部165を操作するユーザーがログインした状態の期間であり、操作部165にログアウト指示が入力されることにより、また、操作部165に操作が入力されることなく所定の時間が経過することにより、終了する。ユーザー認証部51は、認証成功と判断してから開始する直接ログイン期間中、操作パネル160を操作するユーザーのアカウントとMFP100の装置識別情報の組を、第1〜第3アプリケーション部53,55,57、動作モード切換部59、課金部61および調停部63に出力する。
【0059】
ユーザー認証部51は、ユーザーがネットワークに接続されたPCを用いてMFP100を操作する場合、ネットワークコントローラ112を介してログイン画面を、PCに送信する。PCは、ログイン画面を受信すると、ログイン画面をディスプレイに表示し、ユーザーが、ログイン画面に従って入力するアカウントとパスワードとの組を受け付け、それらをMFP100に返信する。ユーザー認証部51は、ネットワークコントローラ112がPCからアカウントとパスワードとの組を受信すると、受信されたアカウントとパスワードとの組と予めHDD116に記憶されているユーザーデータに含まれるユーザーレコードと比較する。ユーザー認証部51は、アカウントとパスワードとの組と一致するユーザーレコードがユーザーデータに含まれていれば認証成功と判断し、そうでなければ認証失敗と判断する。
【0060】
ユーザー認証部51は、認証成功と判断する場合、ネットワークコントローラ112を介してPCに認証成功信号を送信するとともに遠隔ログイン期間を開始する。ユーザー認証部51は、遠隔ログイン期間にネットワークコントローラ112がPCから受信する操作を、認証したユーザーにより入力された操作として扱う。遠隔ログイン期間は、PCを操作するユーザーのログインが許可された状態の期間であり、ネットワークコントローラ112がPCからログアウト指示を受信することにより、また、ネットワークコントローラ112がPCからデータを受信することなく所定の時間が経過することにより、終了する。ユーザー認証部51は、認証成功と判断してから開始する遠隔ログイン期間中、PCを操作するユーザーのアカウントとPCの装置識別情報との組を、第1〜第3アプリケーション部53,55,57、動作モード切換部59、課金部61および調停部63に出力する。
【0061】
また、ユーザーがPCを操作して、MFP100を制御する遠隔操作は、プリントジョブを実行させる操作がある。ユーザーがネットワークに接続されたPCを用いてMFP100にプリントジョブを送信する場合、ネットワークコントローラ112がプリントジョブを受信する。ユーザー認証部51は、ネットワークコントローラ112が受信するプリントジョブに含まれるアカウントとパスワードとの組と予めHDD116に記憶されているユーザーデータに含まれるユーザーレコードと比較する。ユーザー認証部51は、アカウントとパスワードとの組と一致するユーザーレコードがユーザーデータに含まれていれば認証成功と判断し、そうでなければ認証失敗と判断する。ユーザー認証部51は、認証成功と判断する場合、遠隔ログイン期間を開始し、プリントジョブの終了により遠隔ログイン期間を終了する。
【0062】
なお、ここでは、アカウントとパスワードとの組を用いて認証する場合を例に示すが、ユーザーの指紋、静脈パターン、虹彩等の生体情報を用いて認証するようにしてもよい。この場合、MFP100およびPCに、生体情報を読み取るための読取装置を接続し、MFP100に記憶されるユーザーデータは、アカウントと生体情報とを含む。そして、MFP100およびPCそれぞれは、読取装置により読み取られた生体情報が入力される。MFP100は、読取装置から入力される生体情報、または、PCのいずれかの読取装置で読み取られ送信される生体情報に基づいて認証する。また、ユーザーに割り当てられたカード番号等の認証情報を記憶する磁気カードまたはICカードを用いて認証してもよい。この場合、MFP100およびPCに、認証情報を読み取るための読取装置を接続し、MFP100に記憶されるユーザーデータは、アカウントと認証情報とを含む。そして、MFP100およびPCそれぞれは、読取装置により読み取られた認証情報が入力される。MFP100は、読取装置から入力される認証情報、または、PCの読取装置で読み取られ送信される認証情報に基づいて認証する。
【0063】
第1アプリケーション部53は、認証されたログインユーザーによって起動される。ここでは、第1アプリケーション部53を、CPU111がコピー処理を実行するためのアプリケーションプログラムを実行する「コピーアプリ」のタスクとしている。コピー処理は、原稿読取部130で原稿を読み取る読取処理と、画像形成部140で画像を形成する画像形成処理と、を含む。この際、読取処理を実行するためのパラメータを設定するための設定画面、および画像形成処理を実行するためのパラメータを設定するための設定画面を、ユーザー認証部51から入力される装置識別情報で特定される装置に出力し、その装置にユーザーが入力するパラメータを受け付ける。装置識別情報がMFP100を特定する場合は、設定画面を表示部163に表示し、ユーザーが操作部165に入力するパラメータを受け付ける。装置識別情報がPCを特定する場合は、設定画面をPCに送信し、ユーザーがPCに入力するパラメータを、PCから受信する。そして、第1アプリケーション部53は、受け付けられたパラメータに従って、原稿読取部130および画像形成部140を制御するためのアプリコマンドを生成し、生成されたアプリコマンドおよびユーザー認証部51から入力されるログインユーザーが操作する装置の装置識別情報を調停部63に出力する。
【0064】
第2アプリケーション部55は、認証されたログインユーザーによって起動される。ここでは、第2アプリケーション部55を、CPU111がスキャン処理を実行するためのアプリケーションプログラムを実行する「スキャンアプリ」のタスクとしている。スキャン処理は、原稿読取部130で原稿を読み取る読取処理と、データを外部に送信するデータ送信処理と、を実行する。この際に、読取処理を実行するためのパラメータを設定するための設定画面と、およびデータ送信処理を実行するためのパラメータを設定するための設定画面と、をユーザー認証部51から入力される装置識別情報で特定される装置に出力し、その装置にユーザーが入力するパラメータを受け付ける。そして、第2アプリケーション部55は、受け付けられたパラメータに従って、原稿読取部130と、ネットワークコントローラ112と、を制御するためのアプリコマンドを生成し、生成されたアプリコマンドおよびユーザー認証部51から入力されるログインユーザーが操作する装置の装置識別情報を調停部63に出力する。
【0065】
第3アプリケーション部57は、認証されたログインユーザーによって起動される。ここでは、第3アプリケーション部57を、CPU111がプリント処理を実行するためのアプリケーションプログラムを実行する「プリントアプリ」のタスクとしている。プリント処理は、ネットワークコントローラ112でプリントデータを受信する受信処理、プリントデータに含まれるアカウントおよびパスワードの組を抽出し、ユーザー認証部51による認証させる処理、および画像形成部140で画像を形成する画像形成処理と、を含む。第3アプリケーション部57は、プリントデータから画像形成処理を実行するためのパラメータを抽出し、抽出されたパラメータに従って、画像形成部140を制御するためのアプリコマンドを生成し、生成されたアプリコマンドおよびユーザー認証部51から入力されるログインユーザーが操作する装置の装置識別情報を調停部63に出力する。
【0066】
以下、第1アプリケーション部53が出力するアプリコマンドをコピーアプリコマンドといい、第2アプリケーション部55が出力するアプリコマンドをスキャンアプリコマンドといい、第3アプリケーション部57が出力するアプリコマンドをプリントアプリコマンドという。
【0067】
動作モード切換部59は、動作モードを、通常モードと省電力モードとのいずれかに切り換える、省電力モードは、通常モードよりも消費電力の小さい動作モードである。動作モード切換部59は、認証されたログインユーザーによる操作に従って、動作モードを、通常モードと省電力モードとのいずれかに設定する。動作モード切換部59は、動作モード切換画面を、ユーザー認証部51から入力される装置識別情報で特定される装置に出力し、その装置にユーザーが入力する操作に従って動作モードを設定する。ユーザーが操作パネル160を使用する場合、表示部163に動作モード切換画面を表示し、ユーザーが、動作モード切換画面に従って、通常モードを指定する領域を指示すれば、動作モードを通常モードに設定し、省電力モードを指定する領域を指示すれば、動作モードを通常モードに設定する。動作モード切換部59は、ユーザーがネットワークに接続されたPCを用いてMFP100を操作する場合、ネットワークコントローラ112を介して動作モード切換画面を、PCに送信する。PCは、動作モード切換画面を受信すると、動作モード切換画面をディスプレイに表示し、ユーザーが、動作モード切換画面に従って通常モードを指定する領域を指示すれば、動作モードを通常モードに設定する指示を受け付け、MFP100に通常モードに設定する指示を送信し、ユーザーが省電力モードを指定する領域を指示すれば、動作モードを省電力モードに設定する指示を受け付け、MFP100に省電力モードに設定する指示を送信する。動作モード切換部59は、ネットワークコントローラ112がPCから通常モードまたは省電力モードに設定する指示を受信すると、受信された指示に従って、動作モードを通常モードまたは省電力モードのいずれかに設定する。動作モード切換部59は、設定した動作モードと装置識別情報との組を、調停部63に出力する。
【0068】
調停部63は、第1〜第3アプリケーション部53,55,57のいずれかからアプリコマンドと装置識別情報との組が入力され、アプリコマンドを、デフォルト変換部65、コピープラグイン変換部67、スキャンプラグイン変換部69およびプリントプラグイン変換部71のいずれかに出力する。
【0069】
デフォルト変換部65は、調停部63からアプリコマンドが入力されることに応じて、アプリコマンドを1以上のオペレーティングコマンドに変換し、1以上のオペレーティングコマンドをOS部73に出力する。オペレーティングコマンドは、データを入力する種別のオペレーティングコマンドと、データを出力する種別のオペレーティングコマンドと、を含む。
【0070】
アプリコマンドは、第1アプリケーション部53、第2アプリケーション部55、第3アプリケーション部57それぞれが出力するアプリコマンドを含む。第1アプリケーション部53が出力するアプリコマンドは、原稿読取部130と画像形成部140とを制御するためのアプリコマンドである。したがって、デフォルト変換部65は、第1アプリケーション部53が出力するアプリコマンドは、原稿読取部130が出力するデータを入力する種別のオペレーティングコマンドと、画像形成部140に画像を形成させるためのデータを出力する種別のオペレーティングコマンドと、に変更する。
【0071】
第2アプリケーション部55が出力するアプリコマンドは、原稿読取部130とネットワークコントローラ112とを制御するためのアプリコマンドである。したがって、デフォルト変換部65は、第2アプリケーション部55が出力するアプリコマンドを、原稿読取部130が出力するデータを入力する種別のオペレーティングコマンドと、ネットワークコントローラ112にデータを送信させるためのデータを出力する種別のオペレーティングコマンドと、に変更する。
【0072】
第3アプリケーション部57が出力するアプリコマンドは、ネットワークコントローラ112と画像形成部140とを制御するためのアプリコマンドである。したがって、デフォルト変換部65は、第3アプリケーション部57が出力するアプリコマンドを、ネットワークコントローラ112により受信されるデータを入力する種別のオペレーティングコマンドと、画像形成部140に画像を形成させるためのデータを出力する種別のオペレーティングコマンドと、に変更する。
【0073】
オペレーティングコマンドは、第1〜第N圧縮・伸張器131−1〜Nを特定する情報と、データを特定するアドレス情報と、圧縮処理または伸張処理のいずれかを示す処理識別情報と、を含む。
【0074】
デフォルト変換部65は、第1〜第N圧縮・伸張器131−1〜Nのうち第1の数のデバイスをオペレーティングコマンドに割り当てる。デフォルト変換部65が、オペレーティングコマンドに第1〜第N圧縮・伸張器131−1〜Nを割り当てる第1の数は、ROM113に記憶されたデフォルトテーブルによってアプリコマンドごとに予め定められている。デフォルト変換部65が、第1〜第N圧縮・伸張器131−1〜Nのうちから予め定められたデバイスを割り当てたオペレーティングコマンドを、第1の種類のオペレーティングコマンドという。
【0075】
図7は、デフォルトテーブルの一例を示す図である。図7を参照して、デフォルトテーブルは、デフォルトレコードを含む。デフォルトレコードは、コマンド識別情報の項目と、処理識別情報の項目と、個数の項目と、デバイス識別情報の項目と、を含む。ここでは、N=18とし、メイン回路110が、18個の第1〜第18圧縮・伸張器131−1〜18を備える場合におけるデフォルトテーブルを示している。以下、N=18の場合について説明する。
【0076】
コマンド識別情報の項目は、アプリコマンドを識別するためのコマンド識別情報が設定される。処理識別情報の項目は、圧縮処理および伸張処理の別を示し、圧縮処理に対して処理識別情報「圧縮」が設定され、伸張処理に対して処理識別情報「伸張」が設定される。個数の項目は、18個の第1〜第18圧縮・伸張器131−1〜18のうちからオペレーティングコマンドに割り当てが可能なデバイスの数が設定される。デバイス識別情報の項目は、18個の第1〜第18圧縮・伸張器131−1〜18のうちからオペレーティングコマンドへの割り当てが可能な複数のデバイスそれぞれを識別するためのデバイス識別情報が割り当てられる。ここでは、第1〜第18圧縮・伸張器131−1〜18のデバイス識別情報を、符号中で「−」の後の「1」〜「18」の数字としている。例えば、第1圧縮・伸張器131−1のデバイス識別情報は「1」であり、第2圧縮・伸張器131−2のデバイス識別情報は「2」であり、第18圧縮・伸張器131−18のデバイス識別情報は「18」である。
【0077】
第1アプリケーション部53が出力するアプリコマンドのコマンド識別情報「コピー」がコマンド識別情報の項目に設定され、処理識別情報の項目に「圧縮」が設定されたデフォルトレコードは、個数の項目に「4」が設定され、デバイス識別情報の項目に「1、2、3、4」が設定される。コマンド識別情報の項目にコマンド識別情報「コピー」が設定され、処理識別情報の項目に「伸張」が設定されたデフォルトレコードは、個数の項目に「5」が設定され、デバイス識別情報の項目に「9、10、11、12、13」が設定される。このため、デフォルト変換部65は、第1アプリケーション部53からアプリコマンドが入力される場合、そのアプリコマンドを、デバイス識別情報「1」、「2」、「3」、「4」の4つの第1〜第4圧縮・伸張器131−1〜4を用い、圧縮処理を示す処理識別情報「圧縮」を含むオペレーティングコマンドと、デバイス識別情報「9」、「10」、「11」、「12」、「13」の5つの第9〜第13圧縮・伸張器131−9〜13を用い、伸張処理を示す処理識別情報「伸張」を含むオペレーティングコマンドと、に変換する。
【0078】
第2アプリケーション部55が出力するアプリコマンドのコマンド識別情報「スキャン送信」がコマンド識別情報の項目に設定され、処理識別情報の項目に「圧縮」が設定されたデフォルトレコードは、個数の項目に「4」が設定され、デバイス識別情報の項目に「1、2、3、4」が設定される。コマンド識別情報の項目にコマンド識別情報「スキャン送信」が設定され、処理識別情報の項目に「伸張」が設定されたデフォルトレコードは、個数の項目に「5」が設定され、デバイス識別情報の項目に「14、15、16、17、18」が設定される。このため、デフォルト変換部65は、第2アプリケーション部55からアプリコマンドが入力される場合、そのアプリコマンドを、デバイス識別情報「1」、「2」、「3」、「4」の4つの第1〜第4圧縮・伸張器131−1〜4を用い、圧縮処理を示す処理識別情報「圧縮」を含むオペレーティングコマンドと、デバイス識別情報「14」、「15」、「16」、「17」、「18」の5つの第14〜第18圧縮・伸張器131−14〜18を用い、伸張処理を示す処理識別情報「伸張」を含むオペレーティングコマンドと、に変換する。
【0079】
第3アプリケーション部57が出力するアプリコマンドのコマンド識別情報「プリント」がコマンド識別情報の項目に設定され、処理識別情報の項目に「圧縮」が設定されたデフォルトレコードは、個数の項目に「4」が設定され、デバイス識別情報の項目に「5、6、7、8」が設定される。コマンド識別情報の項目にコマンド識別情報「プリント」が設定され、処理識別情報の項目に「伸張」が設定されたデフォルトレコードは、個数の項目に「5」が設定され、デバイス識別情報の項目に「9、10、11、12、13」が設定される。このため、デフォルト変換部65は、第3アプリケーション部57からアプリコマンドが入力される場合、そのアプリコマンドを、デバイス識別情報「5」、「6」、「7」、「8」の4つの第5〜第8圧縮・伸張器131−5〜8を用い、圧縮処理を示す処理識別情報「圧縮」を含むオペレーティングコマンドと、デバイス識別情報「9」、「10」、「11」、「12」、「13」の5つの第9〜第13圧縮・伸張器131−9〜13を用い、伸張処理を示す処理識別情報「伸張」を含むオペレーティングコマンドと、に変換する。
【0080】
図6に戻って、コピープラグイン変換部67は、CPU111がコピープラグイン変換プログラムを実行するタスクである。したがって、MFP100に、コピープラグイン変換プログラムがインストールされていることを条件に、CPU111が有する機能である。コピープラグイン変換部67は、調停部63から第1アプリケーション部53が出力するアプリコマンドが入力される。第1アプリケーション部53が出力するアプリコマンドは、原稿読取部130と画像形成部140とを制御するためのアプリコマンドである。したがって、コピープラグイン変換部67は、第1アプリケーション部53が出力するアプリコマンドを、原稿読取部130が出力するデータを圧縮処理するオペレーティングコマンドと、画像形成部140に画像を形成させるためのデータを伸張処理するオペレーティングコマンドと、に変換する。オペレーティングコマンドは、第1〜第18圧縮・伸張器131−1〜18を特定する情報と、データを特定するアドレス情報と、圧縮処理または伸張処理のいずれかを示す処理識別情報と、を含む。
【0081】
コピープラグイン変換部67は、オペレーティングコマンドに、第1〜第18圧縮・伸張器131−1〜18を割り当てる第2の数を予め定めている。例えば、インストール時に、オペレーティングコマンドに割り当てる第1〜第18圧縮・伸張器131−1〜18を定めたコピー最速化テーブルをEEPROM115に記憶しておく。ここでは、圧縮処理の処理識別情報を含むオペレーティングコマンドに対して、第1〜第8圧縮・伸張器131−1〜8を割り当て、伸張処理の処理識別情報を含むオペレーティングコマンドに対して、第9〜第18圧縮・伸張器131−9〜18を割り当てる。コピープラグイン変換部67が、第1〜第18圧縮・伸張器131−1〜18のうちからオペレーティングコマンドに割り当てる第2の数は「18」であり、デフォルト変換部65が、第1アプリケーション部53が出力するアプリコマンドを変換するオペレーティングコマンドに対して割り当てる第1の数は圧縮処理のために「4」、伸張処理のために「5」の合計「9」である。圧縮処理および伸張処理は、データ量が同じであれば、第1〜第18圧縮・伸張器131−1〜18のうちから用いる数が多いほど処理速度が速い。このため、第1アプリケーション部53が出力するアプリコマンドを、コピープラグイン変換部67が実行する処理速度は、デフォルト変換部65が実行する処理速度よりも早い。コピープラグイン変換部67が、第1アプリケーション部53が出力するアプリコマンドを変換したオペレーティングコマンドであって、第1〜第18圧縮・伸張器131−1〜18のすべてを割り当てたオペレーティングコマンドは、第2の種類のオペレーティングコマンドである。
【0082】
コピープラグイン変換部67は、コピーマルチ実行部75を含む。第1アプリケーション部53がコピー処理を実行し、アプリコマンドを出力した後に、ネットワークコントローラ112がプリントデータを受信する場合がある。この場合、第3アプリケーション部57がプリント処理を実行し、アプリコマンドを出力する。第3のアプリケーション部57が出力するアプリコマンドは、ネットワークコントローラ112と画像形成部140とを制御するためのアプリコマンドであり、ネットワークコントローラ112が受信するプリントデータを入力する処理を含む。
【0083】
コピープラグイン変換部67は、第3アプリケーション部57がアプリコマンドを出力する前は、第2の種類のオペレーティングコマンドに、第1〜第18圧縮・伸張器131−1〜18のすべてを割り当てている。このため、コピーマルチ実行部75は、第1〜第18圧縮・伸張器131−1〜18のすべてを割り当てた第2の種類のオペレーティングコマンドをOS部73に出力した後、OS部73において第2の種類のオペレーティングコマンドが実行されている最中に、調停部63から第3アプリケーション部57が出力するアプリコマンドが入力されると、第3アプリケーション部57が出力するアプリコマンドにより特定される処理のうちデータを入力する処理をOS部73に実行させるようにして、ネットワークコントローラ112により受信されるプリントデータが失われないようにする。
【0084】
具体的には、第3アプリケーション部57が出力するアプリコマンドを、第1〜第18圧縮・伸張器131−1〜18のうちから1以上を入力用のデバイスとして割り当てたオペレーティングコマンドに変換する。第1〜第18圧縮・伸張器131−1〜18のうちから1以上を入力用のデバイスとして割り当てたオペレーティングコマンドに変換する。第3アプリケーション部57が出力するアプリコマンドにより特定される処理のうちデータを入力する処理をOS部73に実行させるためのオペレーティングコマンドであって、第1〜第18圧縮・伸張器131−1〜18のうちから1以上を入力用のデバイスとして割り当てられたオペレーティングコマンドが、第3の種類のオペレーティングコマンドである。
【0085】
さらに、コピーマルチ実行部75は、第1アプリケーション部53が出力するアプリコマンドに対応する処理をOS部73に継続して実行させるために、第1〜第18圧縮・伸張器131−1〜18のうち第3の種類のオペレーティングコマンドに割り当てたデバイス以外のデバイスを、第1アプリケーション部53が出力するアプリコマンドを変換したオペレーティングコマンドに割り当てる。第1アプリケーション部53が出力するアプリコマンドを変換したオペレーティングコマンドであって、第1〜第18圧縮・伸張器131−1〜18のうち第3の種類のオペレーティングコマンドに割り当てたデバイス以外のデバイスを割り当てたオペレーティングコマンドが第4の種類のオペレーティングコマンドである。
【0086】
図8は、コピー最速化テーブルの一例を示す図である。図8を参照して、コピー最速化テーブルは、コピー最速化レコードを含む。コピー最速化レコードは、コマンド識別情報の項目と、処理識別情報の項目と、シングルジョブの項目と、マルチジョブの項目と、を含む。シングルジョブの項目およびマルチジョブの項目は、それぞれ、個数の項目と、デバイス識別情報の項目と、を含む。
【0087】
コマンド識別情報の項目は、アプリコマンドを識別するためのコマンド識別情報が設定される。処理識別情報の項目は、圧縮処理および伸張処理の別を示し、圧縮処理に対して処理識別情報「圧縮」が設定され、伸張処理に対して処理識別情報「伸張」が設定される。シングルジョブの項目は、第2の種類のオペレーティングコマンドに割り当てるデバイスに関する情報が設定され、個数の項目と、デバイス識別情報の項目とを含む。シングルジョブの項目における個数の項目は、18個の第1〜第18圧縮・伸張器131−1〜18のうち第2の種類のオペレーティングコマンドに割り当てられるデバイスの数が設定される。シングルジョブの項目におけるデバイス識別情報の項目は、18個の第1〜第18圧縮・伸張器131−1〜18のうちから第2の種類のオペレーティングコマンドに割り当てられる複数のデバイスそれぞれを識別するためのデバイス識別情報が設定される。
【0088】
マルチジョブの項目は、第3の種類のオペレーティングコマンドおよび第4の種類のオペレーティングコマンドに、それぞれ割り当てるデバイスに関する情報が設定され、個数の項目と、デバイス識別情報の項目とを含む。マルチジョブの項目における個数の項目は、18個の第1〜第18圧縮・伸張器131−1〜18のうち第3の種類のオペレーティングコマンドまたは第4の種類におけるオペレーティングコマンドに割り当てられるデバイスの数が設定される。マルチジョブの項目におけるデバイス識別情報の項目は、18個の第1〜第18圧縮・伸張器131−1〜18のうち第3の種類のオペレーティングコマンドまたは第4の種類におけるオペレーティングコマンドに割り当てられる複数のデバイスそれぞれを識別するためのデバイス識別情報が設定される。
【0089】
第1アプリケーション部53が出力するアプリコマンドのコマンド識別情報「コピー」がコマンド識別情報の項目に設定され、処理識別情報の項目に処理識別情報「圧縮」が設定されたコピー最速化レコードは、シングルジョブの項目の個数の項目に「8」が設定され、シングルジョブの項目のデバイス識別情報の項目に「1、2、3、4,5,6,7,8」が設定され、マルチジョブの項目の個数の項目に「7」が設定され、マルチジョブの項目のデバイス識別情報の項目に「1、2、3、4,5,6,7」が設定される。
【0090】
コマンド識別情報の項目にコマンド識別情報「コピー」が設定され、処理識別情報の項目に処理識別情報「伸張」が設定されたコピー最速化レコードは、シングルジョブの項目の個数の項目に「10」が設定され、シングルジョブの項目のデバイス識別情報の項目に「9、10、11、12、13、14、15、16,17,18」が設定され、マルチジョブの項目の個数の項目に「10」が設定され、マルチジョブの項目のデバイス識別情報の項目に「9、10、11、12、13、14、15、16,17,18」が設定される。
【0091】
第2アプリケーション部55が出力するアプリコマンドのコマンド識別情報「スキャン送信」がコマンド識別情報の項目に設定され、処理識別情報の項目に処理識別情報「圧縮」が設定されたコピー最速化レコードは、シングルジョブの項目およびマルチジョブの項目それぞれの個数の項目に「0」が設定され、デバイス識別情報の項目に何も設定されない。コマンド識別情報の項目にコマンド識別情報「スキャン送信」が設定され、処理識別情報の項目に処理識別情報「伸張」が設定されたコピー最速化レコードは、シングルジョブの項目およびマルチジョブの項目それぞれの個数の項目に「0」が設定され、デバイス識別情報の項目に何も設定されない。コピープラグイン変換部67には、第2アプリケーション部55が出力するアプリコマンドが入力されることがないからである。
【0092】
第3アプリケーション部57が出力するアプリコマンドのコマンド識別情報「プリント」がコマンド識別情報の項目に設定され、処理識別情報の項目に処理識別情報「圧縮」が設定されたコピー最速化レコードは、シングルジョブの項目の個数の項目に「0」が設定され、デバイス識別情報の項目に何も設定されず、マルチジョブの項目の個数の項目に「1」が設定され、マルチジョブの項目のデバイス識別情報の項目に「8」が設定される。コマンド識別情報の項目にコマンド識別情報「プリント」が設定され、処理識別情報の項目に処理識別情報「伸張」が設定されたコピー最速化レコードは、シングルジョブの項目およびマルチジョブの項目それぞれの個数の項目に「0」が設定され、デバイス識別情報の項目に何も設定されない。
【0093】
このため、コピープラグイン変換部67は、第1アプリケーション部53からアプリコマンドが入力される場合、そのアプリコマンドを、デバイス識別情報「1」、「2」、「3」、「4」、「5」、「6」、「7」、「8」の8個の第1〜第8圧縮・伸張器131−1〜8を用い、圧縮処理を示す処理識別情報「圧縮」を含む第2の種類のオペレーティングコマンドと、デバイス識別情報「9」、「10」、「11」、「12」、「13」、「14」、「15」、「16」、「17」、「18」の10個の第9〜第18圧縮・伸張器131−9〜18を用い、伸張処理を示す処理識別情報「伸張」を含む第2の種類のオペレーティングコマンドと、に変換する。
【0094】
さらに、コピーマルチ実行部75は、第3アプリケーション部57からアプリコマンドが入力される場合、第1アプリケーション部53から入力されるアプリコマンドを、デバイス識別情報「1」、「2」、「3」、「4」、「5」、「6」、「7」の7個の第1〜第7圧縮・伸張器131−1〜7を用い、圧縮処理を示す処理識別情報「圧縮」を含む第4の種類のオペレーティングコマンドと、デバイス識別情報「9」、「10」、「11」、「12」、「13」、「14」、「15」、「16」、「17」、「18」の10個の第9〜第18圧縮・伸張器131−9〜18を用い、伸張処理を示す処理識別情報「伸張」を含む第4の種類のオペレーティングコマンドと、に変換するとともに、第3アプリケーション部57から入力されるアプリコマンドを、デバイス識別情報「8」の1個の第8圧縮・伸張器131−8を用い、圧縮処理を示す処理識別情報「圧縮」を含む第3の種類のオペレーティングコマンドに変換する。
【0095】
図6に戻って、スキャンプラグイン変換部69は、CPU111がスキャンプラグイン変換プログラムを実行するタスクである。したがって、MFP100に、スキャンプラグイン変換プログラムがインストールされていることを条件に、CPU111が有する機能である。スキャンプラグイン変換部69は、調停部63から第2アプリケーション部55が出力するアプリコマンドが入力される。第2アプリケーション部55が出力するアプリコマンドは、原稿読取部130と、ネットワークコントローラ112と、を制御するためのアプリコマンドである。したがって、スキャンプラグイン変換部69は、第2アプリケーション部55が出力するアプリコマンドを、原稿読取部130が出力するデータを圧縮処理するオペレーティングコマンドと、ネットワークコントローラ112に送信させるためのデータを伸張処理するオペレーティングコマンドと、に変換する。オペレーティングコマンドは、第1〜第18圧縮・伸張器131−1〜18を特定する情報と、データを特定するアドレス情報と、圧縮処理または伸張処理のいずれかを示す処理識別情報と、を含む。
【0096】
スキャンプラグイン変換部69は、オペレーティングコマンドに、第1〜第18圧縮・伸張器131−1〜18を割り当てる第2の数を予め定めている。例えば、インストール時に、オペレーティングコマンドに割り当てる第1〜第18圧縮・伸張器131−1〜18を定めたスキャン最速化テーブルをEEPROM115に記憶しておく。ここでは、圧縮処理の処理識別情報を含むオペレーティングコマンドに対して、第1〜第8圧縮・伸張器131−1〜8を割り当て、伸張処理の処理識別情報を含むオペレーティングコマンドに対して、第9〜第18圧縮・伸張器131−9〜18を割り当てる。スキャンプラグイン変換部69が、第1〜第18圧縮・伸張器131−1〜18のうちからオペレーティングコマンドに割り当てる第2の数は「18」であり、デフォルト変換部65が、第2アプリケーション部55が出力するアプリコマンドを変換するオペレーティングコマンドに対して割り当てる第1の数は圧縮処理のために「4」、伸張処理のために「5」の合計「9」である。圧縮処理および伸張処理は、データ量が同じであれば、第1〜第18圧縮・伸張器131−1〜18のうちから用いる数が多いほど処理速度が速い。このため、第2アプリケーション部55が出力するアプリコマンドを、スキャンプラグイン変換部69が実行する処理速度は、デフォルト変換部65が実行する処理速度よりも早い。スキャンプラグイン変換部69が、第2アプリケーション部55が出力するアプリコマンドを変換したオペレーティングコマンドであって、第1〜第18圧縮・伸張器131−1〜18のすべてを割り当てたオペレーティングコマンドは、第2の種類のオペレーティングコマンドである。
【0097】
スキャンプラグイン変換部69は、スキャンマルチ実行部77を含む。第2アプリケーション部55がスキャン送信ジョブを実行し、アプリコマンドを出力した後に、ネットワークコントローラ112がプリントデータを受信する場合がある。この場合、第3アプリケーション部57がプリント処理を実行し、アプリコマンドを出力する。第3アプリケーション部57が出力するアプリコマンドは、ネットワークコントローラ112と画像形成部140とを制御するためのアプリコマンドであり、ネットワークコントローラ112が受信するプリントデータを入力する処理を含む。
【0098】
スキャンプラグイン変換部69は、第3アプリケーション部57がアプリコマンドを出力する前は、第2の種類のオペレーティングコマンドに、第1〜第18圧縮・伸張器131−1〜18のすべてを割り当てている。このため、スキャンマルチ実行部77は、第1〜第18圧縮・伸張器131−1〜18のすべてを割り当てた第2の種類のオペレーティングコマンドをOS部73に出力した後、OS部73において第2の種類のオペレーティングコマンドが実行されている最中に、調停部63から第3アプリケーション部57が出力するアプリコマンドが入力されると、第3アプリケーション部57が出力するアプリコマンドにより特定される処理のうちデータを入力する処理をOS部73に実行させるようにして、ネットワークコントローラ112により受信されるプリントデータが失われないようにする。
【0099】
具体的には、第3アプリケーション部57が出力するアプリコマンドを、第1〜第18圧縮・伸張器131−1〜18のうちから1以上を入力用のデバイスとして割り当てたオペレーティングコマンドに変換する。第3アプリケーション部57が出力するアプリコマンドにより特定される処理のうちデータを入力する処理をOS部73に実行させるためのオペレーティングコマンドであって、第1〜第18圧縮・伸張器131−1〜18のうちから1以上を入力用のデバイスとして割り当てられたオペレーティングコマンドが、第3の種類のオペレーティングコマンドである。
【0100】
さらに、スキャンマルチ実行部77は、第2アプリケーション部55が出力するアプリコマンドに対応する処理をOS部73に継続して実行させるために、第1〜第18圧縮・伸張器131−1〜18のうち第3の種類のオペレーティングコマンドに割り当てたデバイス以外のデバイスを、第2アプリケーション部55が出力するアプリコマンドを変換したオペレーティングコマンドに割り当てる。第2アプリケーション部55が出力するアプリコマンドを変換したオペレーティングコマンドであって、第1〜第18圧縮・伸張器131−1〜18のうち第3の種類のオペレーティングコマンドに割り当てたデバイス以外のデバイスを割り当てたオペレーティングコマンドが第4の種類のオペレーティングコマンドである。
【0101】
図9は、スキャン最速化テーブルの一例を示す図である。図9を参照して、スキャン最速化テーブルは、スキャン最速化レコードを含む。スキャン最速化レコードは、図8に示したコピー最適化レコードと同じ項目を含む。
【0102】
第1アプリケーション部53が出力するアプリコマンドのコマンド識別情報「コピー」がコマンド識別情報の項目に設定され、処理識別情報の項目に処理識別情報「圧縮」が設定されたスキャン最速化レコードは、シングルジョブの項目およびマルチジョブの項目それぞれの個数の項目に「0」が設定され、デバイス識別情報の項目に何も設定されない。コマンド識別情報の項目にコマンド識別情報「スキャン送信」が設定され、処理識別情報の項目に処理識別情報「伸張」が設定されたスキャン最速化レコードは、シングルジョブの項目およびマルチジョブの項目それぞれの個数の項目に「0」が設定され、デバイス識別情報の項目に何も設定されない。スキャンプラグイン変換部69には、第1アプリケーション部53が出力するアプリコマンドが入力されることがないからである。
【0103】
第2アプリケーション部55が出力するアプリコマンドのコマンド識別情報「スキャン送信」がコマンド識別情報の項目に設定され、処理識別情報の項目に処理識別情報「圧縮」が設定されたスキャン最速化レコードは、シングルジョブの項目の個数の項目に「8」が設定され、シングルジョブの項目のデバイス識別情報の項目に「1、2、3、4,5,6,7,8」が設定され、マルチジョブの項目の個数の項目に「7」が設定され、マルチジョブの項目のデバイス識別情報の項目に「1、2、3、4,5,6,7」が設定される。コマンド識別情報の項目にコマンド識別情報「スキャン送信」が設定され、処理識別情報の項目に処理識別情報「伸張」が設定されたコピー最速化レコードは、シングルジョブの項目の個数の項目に「10」が設定され、シングルジョブの項目のデバイス識別情報の項目に「9、10、11、12、13、14、15、16,17,18」が設定され、マルチジョブの項目の個数の項目に「10」が設定され、マルチジョブの項目のデバイス識別情報の項目に「9、10、11、12、13、14、15、16,17,18」が設定される。
【0104】
第3アプリケーション部57が出力するアプリコマンドのコマンド識別情報「プリント」がコマンド識別情報の項目に設定され、処理識別情報の項目に処理識別情報「圧縮」が設定されたスキャン最速化レコードは、シングルジョブの項目の個数の項目に「0」が設定され、デバイス識別情報の項目に何も設定されず、マルチジョブの項目の個数の項目に「1」が設定され、マルチジョブの項目のデバイス識別情報の項目に「8」が設定される。コマンド識別情報の項目にコマンド識別情報「プリント」が設定され、処理識別情報の項目に処理識別情報「伸張」が設定されたスキャン最速化レコードは、シングルジョブの項目およびマルチジョブの項目それぞれの個数の項目に「0」が設定され、デバイス識別情報の項目に何も設定されない。
【0105】
このため、スキャンプラグイン変換部69は、第2アプリケーション部55からアプリコマンドが入力される場合、そのアプリコマンドを、デバイス識別情報「1」、「2」、「3」、「4」、「5」、「6」、「7」、「8」の8個の第1〜第8圧縮・伸張器131−1〜8を用い、圧縮処理を示す処理識別情報「圧縮」を含む第2の種類のオペレーティングコマンドと、デバイス識別情報「9」、「10」、「11」、「12」、「13」、「14」、「15」、「16」、「17」、「18」の10個の第9〜第18圧縮・伸張器131−9〜18を用い、伸張処理を示す処理識別情報「伸張」を含む第2の種類のオペレーティングコマンドと、に変換する。
【0106】
さらに、スキャンマルチ実行部77は、第3アプリケーション部57からアプリコマンドが入力される場合、第2アプリケーション部55から入力されるアプリコマンドを、デバイス識別情報「1」、「2」、「3」、「4」、「5」、「6」、「7」の7個の第1〜第7圧縮・伸張器131−1〜7を用い、圧縮処理を示す処理識別情報「圧縮」を含む第4の種類のオペレーティングコマンドと、デバイス識別情報「9」、「10」、「11」、「12」、「13」、「14」、「15」、「16」、「17」、「18」の10個の第9〜第18圧縮・伸張器131−9〜18を用い、伸張処理を示す処理識別情報「伸張」を含む第4の種類のオペレーティングコマンドと、に変換するとともに、第3アプリケーション部57から入力されるアプリコマンドを、デバイス識別情報「8」の1個の第8圧縮・伸張器131−8を用い、圧縮処理を示す処理識別情報「圧縮」を含む第3の種類のオペレーティングコマンドに変換する。
【0107】
図6に戻って、プリントプラグイン変換部71は、CPU111がプリントプラグイン変換プログラムを実行するタスクである。したがって、MFP100に、プリントプラグイン変換プログラムがインストールされていることを条件に、CPU111が有する機能である。プリントプラグイン変換部71は、調停部63から第3アプリケーション部57が出力するアプリコマンドが入力される。第3アプリケーション部57が出力するアプリコマンドは、ネットワークコントローラ112と、画像形成部140とを制御するためのアプリコマンドである。したがって、プリントプラグイン変換部71は、第3アプリケーション部57が出力するアプリコマンドを、ネットワークコントローラ112が受信するデータを圧縮処理するオペレーティングコマンドと、画像形成部140に画像を形成させるためのデータを伸張処理するオペレーティングコマンドと、に変換する。オペレーティングコマンドは、第1〜第18圧縮・伸張器131−1〜18を特定する情報と、データを特定するアドレス情報と、圧縮処理または伸張処理のいずれかを示す処理識別情報と、を含む。
【0108】
プリントプラグイン変換部71は、オペレーティングコマンドに、第1〜第18圧縮・伸張器131−1〜18を割り当てる第2の数を予め定めている。例えば、インストール時に、オペレーティングコマンドに割り当てる第1〜第18圧縮・伸張器131−1〜18を定めたプリント最速化テーブルをEEPROM115に記憶しておく。ここでは、圧縮処理の処理識別情報を含むオペレーティングコマンドに対して第1〜第8圧縮・伸張器131−1〜8を割り当て、伸張処理の処理識別情報を含むオペレーティングコマンドに対して第9〜第18圧縮・伸張器131−9〜18を割り当てる。プリントプラグイン変換部71が、第1〜第18圧縮・伸張器131−1〜18のうちからオペレーティングコマンドに割り当てる第2の数は「18」であり、デフォルト変換部65が、第3アプリケーション部57が出力するアプリコマンドを変換するオペレーティングコマンドに対して割り当てる第1の数は圧縮処理のために「4」、伸張処理のために「5」の合計「9」である。圧縮処理および伸張処理は、データ量が同じであれば、第1〜第18圧縮・伸張器131−1〜18のうちから用いる数が多いほど処理速度が速い。このため、第3アプリケーション部57が出力するアプリコマンドを、プリントプラグイン変換部71が実行する処理速度は、デフォルト変換部65が実行する処理速度よりも早い。プリントプラグイン変換部71が、第3アプリケーション部57が出力するアプリコマンドを変換したオペレーティングコマンドであって、第1〜第18圧縮・伸張器131−1〜18のすべてを割り当てたオペレーティングコマンドは、第2の種類のオペレーティングコマンドである。
【0109】
プリントプラグイン変換部71は、プリントマルチ実行部79を含む。第3アプリケーション部57がスキャン送信ジョブを実行し、アプリコマンドを出力した後に、原稿読取部130によって原稿が読み取られる場合がある。第1アプリケーション部53がコピージョブを実行し、アプリコマンドを出力する場合、または、第2アプリケーション部55がスキャンジョブを実行し、アプリコマンドを出力する場合である。第1アプリケーション部53または第2アプリケーション部55が出力するアプリコマンドは、原稿読取部130が出力するデータを入力する処理を含む。
【0110】
プリントプラグイン変換部71は、第1アプリケーション部53または第2アプリケーション部55がアプリコマンドを出力する前は、第2の種類のオペレーティングコマンドに、第1〜第18圧縮・伸張器131−1〜18のすべてを割り当てている。このため、プリントマルチ実行部79は、第1〜第18圧縮・伸張器131−1〜18のすべてを割り当てた第2の種類のオペレーティングコマンドをOS部73に出力した後、OS部73において第2の種類のオペレーティングコマンドが実行されている最中に、調停部63から第1アプリケーション部53または第2アプリケーション部55が出力するアプリコマンドが入力されると、第3アプリケーション部57が出力するアプリコマンドにより特定される処理のうちデータを入力する処理をOS部73に実行させるようにして、原稿読取部130が原稿を読み取って出力するデータが失われないようにする。具体的には、第1アプリケーション部53または第2アプリケーション部55が出力するアプリコマンドを、第1〜第18圧縮・伸張器131−1〜18のうちから1以上を入力用のデバイスとして割り当てたオペレーティングコマンドに変換する。第1アプリケーション部53または第2アプリケーション部55が出力するアプリコマンドにより特定される処理のうちデータを入力する処理をOS部73に実行させるためのオペレーティングコマンドであって、第1〜第18圧縮・伸張器131−1〜18のうちから1以上を入力用のデバイスとして割り当てられたオペレーティングコマンドが、第3の種類のオペレーティングコマンドである。
【0111】
さらに、プリントマルチ実行部79は、第3アプリケーション部57が出力するアプリコマンドに対応する処理をOS部73に継続して実行させるために、第1〜第18圧縮・伸張器131−1〜18のうち第3の種類のオペレーティングコマンドに割り当てたデバイス以外のデバイスを、第3アプリケーション部57が出力するアプリコマンドを変換したオペレーティングコマンドに割り当てる。第3アプリケーション部57が出力するアプリコマンドを変換したオペレーティングコマンドであって、第1〜第18圧縮・伸張器131−1〜18のうち第3の種類のオペレーティングコマンドに割り当てたデバイス以外のデバイスを割り当てたオペレーティングコマンドが第4の種類のオペレーティングコマンドである。
【0112】
図10は、プリント最速化テーブルの一例を示す図である。図10を参照して、プリント最速化テーブルは、プリント最速化レコードを含む。プリント最速化レコードそれぞれは、図8に示したコピー最適化テーブルと同じ項目を含む。
【0113】
第1アプリケーション部53が出力するアプリコマンドのコマンド識別情報「コピー」がコマンド識別情報の項目に設定され、処理識別情報の項目に処理識別情報「圧縮」が設定されたプリント最速化レコードは、シングルジョブの項目の個数の項目に「0」が設定され、デバイス識別情報の項目に何も設定されず、マルチジョブの項目の個数の項目に「1」が設定され、マルチジョブの項目のデバイス識別情報の項目に「8」が設定される。コマンド識別情報の項目にコマンド識別情報「コピー」が設定され、処理識別情報の項目に処理識別情報「伸張」が設定されたプリント最速化レコードは、シングルジョブの項目およびマルチジョブの項目それぞれの個数の項目に「0」が設定され、デバイス識別情報の項目に何も設定されない。
【0114】
第2アプリケーション部55が出力するアプリコマンドのコマンド識別情報「スキャン送信」がコマンド識別情報の項目に設定され、処理識別情報の項目に処理識別情報「圧縮」が設定されたプリント最速化レコードは、シングルジョブの項目の個数の項目に「0」が設定され、デバイス識別情報の項目に何も設定されず、マルチジョブの項目の個数の項目に「1」が設定され、マルチジョブの項目のデバイス識別情報の項目に「8」が設定される。コマンド識別情報の項目にコマンド識別情報「スキャン」が設定され、処理識別情報の項目に処理識別情報「伸張」が設定されたプリント最速化レコードは、シングルジョブの項目およびマルチジョブの項目それぞれの個数の項目に「0」が設定され、デバイス識別情報の項目に何も設定されない。
【0115】
第3アプリケーション部57が出力するアプリコマンドのコマンド識別情報「プリント」がコマンド識別情報の項目に設定され、処理識別情報の項目に処理識別情報「圧縮」が設定されたプリント最速化レコードは、シングルジョブの項目の個数の項目に「8」が設定され、シングルジョブの項目のデバイス識別情報の項目に「1、2、3、4,5,6,7,8」が設定され、マルチジョブの項目の個数の項目に「7」が設定され、マルチジョブの項目のデバイス識別情報の項目に「1、2、3、4,5,6,7」が設定される。コマンド識別情報の項目にコマンド識別情報「プリント」が設定され、処理識別情報の項目に処理識別情報「伸張」が設定されたプリント最速化レコードは、シングルジョブの項目の個数の項目に「10」が設定され、シングルジョブの項目のデバイス識別情報の項目に「9、10、11、12、13、14、15、16,17,18」が設定され、マルチジョブの項目の個数の項目に「10」が設定され、マルチジョブの項目のデバイス識別情報の項目に「9、10、11、12、13、14、15、16,17,18」が設定される。
【0116】
このため、プリントプラグイン変換部71は、第3アプリケーション部57からアプリコマンドが入力される場合、そのアプリコマンドを、デバイス識別情報「1」、「2」、「3」、「4」、「5」、「6」、「7」、「8」の8個の第1〜第8圧縮・伸張器131−1〜8を用い、圧縮処理を示す処理識別情報「圧縮」を含む第2の種類のオペレーティングコマンドと、デバイス識別情報「9」、「10」、「11」、「12」、「13」、「14」、「15」、「16」、「17」、「18」の10個の第9〜第18圧縮・伸張器131−9〜18を用い、伸張処理を示す処理識別情報「伸張」を含む第2の種類のオペレーティングコマンドと、に変換する。
【0117】
さらに、プリントマルチ実行部79は、第1アプリケーション部53または第2アプリケーション部55からアプリコマンドが入力される場合、第3アプリケーション部57から入力されるアプリコマンドを、デバイス識別情報「1」、「2」、「3」、「4」、「5」、「6」、「7」の7個の第1〜第7圧縮・伸張器131−1〜7を用い、圧縮処理を示す処理識別情報「圧縮」を含む第4の種類のオペレーティングコマンドと、デバイス識別情報「9」、「10」、「11」、「12」、「13」、「14」、「15」、「16」、「17」、「18」の10個の第9〜第18圧縮・伸張器131−9〜18を用い、伸張処理を示す処理識別情報「伸張」を含む第4の種類のオペレーティングコマンドと、に変換するとともに、第1アプリケーション部53または第2アプリケーション部55から入力されるアプリコマンドを、デバイス識別情報「8」の1個の第8圧縮・伸張器131−8を用い、圧縮処理を示す処理識別情報「圧縮」を含む第3の種類のオペレーティングコマンドに変換する。
【0118】
調停部63は、ユーザー認証部51から認証されたユーザーのアカウントとそのユーザーが操作する装置の装置識別情報との組が入力され、第1〜第3アプリケーション部53,55,57それぞれからアプリコマンドと装置識別情報との組が入力され、動作モード切換部59から動作モードと装置識別情報との組が入力される。調停部63は、ユーザー認証部51から入力されるアカウントと装置識別情報とに基づいて、第1〜第3アプリケーション部53,55,57のいずれかから入力されるアプリコマンドを、それと組になる装置識別情報と同じ装置識別情報と組になるアカウントのユーザーにより指示されたものと判断する。また、調停部63は、ユーザー認証部51から入力されるアカウントと装置識別情報とに基づいて、動作モード切換部59から入力される動作モードを、それと組になる装置識別情報と同じ装置識別情報と組になるアカウントのユーザーにより指示されたものと判断する。
【0119】
調停部63は、デフォルト変換部65、コピープラグイン変換部67、スキャンプラグイン変換部69およびプリントプラグイン変換部71のうちから1つを所定の条件に従って決定し、決定したものに、第1〜第3アプリケーション部53,55,57それぞれから入力されるアプリコマンドを出力する。所定の条件は、アカウントと、動作モードと、アプリコマンドの種類によって定まる。
【0120】
EEPROM115に、ユーザーごとにプラグイン変換プログラムの実行可否を定めた実行可否テーブルを記憶する。実行可否テーブルは、プラグイン変換プログラムがMFP100にインストールされる時点で、ユーザーごとにプラグイン変換プログラムの実行可否を定めた実行可否レコードが追加される。ここでは、プラグイン変換プログラムとして、コピープラグイン変換プログラム、スキャンプラグイン変換プログラムおよびプリントプラグイン変換プログラムがインストールされているので、実行可否テーブルは、ユーザーごとに、コピープラグイン変換プログラム、スキャンプラグイン変換プログラムおよびプリントプラグイン変換プログラムそれぞれの実行可否を定める。以下、具体的に説明するために、実行可否テーブルが、ユーザーAに対して、コピープラグイン変換プログラム、スキャンプラグイン変換プログラムおよびプリントプラグイン変換プログラムのすべてを実行可に定め、ユーザーBに対して、コピープラグイン変換プログラムのみを実行可に定め、スキャンプラグイン変換プログラムおよびプリントプラグイン変換プログラムを実行不可に定めている場合を例に説明する。
【0121】
なお、ここでは、実行可否テーブルを、プラグイン変換プログラムの実行可否を、ユーザーごとに定めるようにしたが、複数のユーザーを複数のグループに分類する場合には、複数のグループごとに、プラグイン変換プログラムの実行可否を定めるようにしても良い。この場合には、ユーザーが属するグループごとに、プラグイン変換プログラムの実行可否を判断することができる。
【0122】
調停部63は、第1〜第3アプリケーション部53,55,57のいずれかからアプリコマンドが入力される場合、実行可否テーブルによって、アプリコマンドを指示したユーザーに対してアプリコマンドに対応するプラグイン変換プログラムが実行可に定められる第1条件と、動作モードが省電力モードに設定される第2の条件とがともに成立する場合に、アプリコマンドをコピープラグイン変換部67、スキャンプラグイン変換部69およびプリントプラグイン変換部71のいずれかに出力する。
【0123】
コピーアプリコマンドは、コピープラグイン変換プログラムに対応し、さらに、CPU111がコピープラグイン変換プログラムを実行するタスクであるコピープラグイン変換部67に対応する。スキャンアプリコマンドは、スキャンプラグイン変換プログラムに対応し、さらに、CPU111がスキャンプラグイン変換プログラムを実行するタスクであるスキャンプラグイン変換部69に対応する。プリントアプリコマンドは、プリントプラグイン変換プログラムに対応し、さらに、CPU111がプリントプラグイン変換プログラムを実行するタスクであるプリントプラグイン変換部71に対応する。このため、調停部63は、第1アプリケーション部53からコピーアプリコマンドが入力される場合は、コピーアプリコマンドをコピープラグイン変換部67に出力し、第2アプリケーション部55からスキャンアプリコマンドが入力される場合は、スキャンアプリコマンドをスキャンプラグイン変換部69に出力し、第3アプリケーション部57からプリントアプリコマンドが入力される場合は、プリントアプリコマンドをプリントプラグイン変換部71に出力する。
【0124】
一方、調停部63は、第1〜第3アプリケーション部53,55,57のいずれかからアプリコマンドが入力される場合、第1の条件および第2の条件のいずれか一方でも成立しない場合は、アプリコマンドをデフォルト変換部65に出力する。
【0125】
なお、動作モードを設けることなく、調停部63は、第1〜第3アプリケーション部53,55,57のいずれかからアプリコマンドが入力される場合、第1の条件が成立する場合に、アプリコマンドをコピープラグイン変換部67、スキャンプラグイン変換部69およびプリントプラグイン変換部71のいずれかに出力するようにし、第1の条件が成立しない場合に、アプリコマンドをデフォルト変換部65に出力するようにしてもよい。さらに、実行可否テーブルを用いることなく、調停部63は、第1〜第3アプリケーション部53,55,57のいずれかからアプリコマンドが入力される場合、第2の条件が成立する場合に、アプリコマンドをコピープラグイン変換部67、スキャンプラグイン変換部69およびプリントプラグイン変換部71のいずれかに出力するようにし、第2の条件が成立しない場合に、アプリコマンドをデフォルト変換部65に出力するようにしてもよい。
【0126】
調停部63は、第1のアプリコマンドをコピープラグイン変換部67、スキャンプラグイン変換部69およびプリントプラグイン変換部71のいずれかに出力した後に、第1のアプリコマンドの実行が終了する前に、第1〜第3アプリケーション部53,55,57のいずれかから第2のアプリコマンドが入力される場合、第2のアプリコマンドに対する第1の条件および第2の条件の成立に係わらず、コピープラグイン変換部67、スキャンプラグイン変換部69およびプリントプラグイン変換部71のうち先に出力した第1のアプリコマンドを実行しているものに、第2のアプリコマンドを出力する。そして、コピープラグイン変換部67、スキャンプラグイン変換部69およびプリントプラグイン変換部71のうち先に出力した第1のアプリコマンドを実行が終了した後に、第2のアプリコマンドを継続して実行させるために、第2のアプリコマンドに対する第1の条件および第2の条件を判断し、デフォルト変換部65、コピープラグイン変換部67、スキャンプラグイン変換部69およびプリントプラグイン変換部71のいずれかに第2のアプリコマンドを出力する。
【0127】
調停部63は、デフォルト変換部65、コピープラグイン変換部67、スキャンプラグイン変換部69およびプリントプラグイン変換部71のうちからアプリコマンドを出力したものから、アプリコマンドの実行結果を取得する。実行結果は、データ量を含む。データ量は、ここではページ数としている。調停部63は、アプリコマンドの実行結果を取得すると、デフォルト変換部65、コピープラグイン変換部67、スキャンプラグイン変換部69およびプリントプラグイン変換部71のうちからアプリコマンドを出力したものを識別するためのプロセス識別情報と、アプリコマンドを識別するためのコマンド識別情報と、アプリコマンドを指示したユーザーのアカウントと、データ量との組を課金部61に出力する。
【0128】
課金部61は、ジョブの実行、換言すれば、アプリコマンドの実行に対して、ユーザーごとに課金する。具体的には、HDD116に、ジョブに対する単価を定めた料金テーブルと、ユーザーごとに課金額を積算した積算テーブルと、を予め記憶している。
【0129】
図11は、料金テーブルの一例を示す図である。図11を参照して、料金テーブルは、処理識別情報の項目と、個数の項目と、単価の項目と、を含む。処理識別情報の項目は、処理識別情報の項目は、圧縮処理および伸張処理の別を示し、圧縮処理に対して処理識別情報「圧縮」が設定され、伸張処理に対して処理識別情報「伸張」が設定される。個数の項目は、18個の第1〜第18圧縮・伸張器131−1〜18のうちから処理識別情報で特定される処理の実行に用いられたデバイスの数が設定される。単価の項目は、1ページ当たりの料金が設定される。
【0130】
料金テーブルは、処理識別情報ごとに、第1〜第18圧縮・伸張器131−1〜18のうちから使用されるデバイスの個数別に単価を定める。上述したように、動作モードが省電力モードの場合に使用されるデバイスの個数は、通常モードの場合に使用されるデバイスの個数よりも多い。このため、料金テーブルは、通常モードにおける単価と省電力モードにおける単価とを定め、通常モードにおける単価を、省電力モードにおける単価よりも低く設定している。
【0131】
図6に戻って、課金部61は、ログインユーザーによる操作に基づいてアプリコマンドが実行されると、調停部63からプロセス識別情報と、コマンド識別情報と、アカウントと、データ量との組が入力される。課金部61は、料金テーブルを参照して、プロセス識別情報に対する単価を決定する。
【0132】
具体的には、課金部61は、プロセス識別情報がデフォルト変換部65を特定する場合、図7に示したデフォルトテーブルを参照して、コマンド識別情報および処理識別情報に基づいて、第1〜第18圧縮・伸張器131−1〜18のうちから使用されるデバイスの個数を、圧縮処理および伸張処理ごとに取得する。課金部61は、プロセス識別情報がコピープラグイン変換部67を特定する場合、図8に示したコピー最速化テーブルを参照して、コマンド識別情報および処理識別情報に基づいて、第1〜第18圧縮・伸張器131−1〜18のうちから使用されるデバイスの個数を、圧縮処理および伸張処理ごとに取得する。課金部61は、プロセス識別情報がスキャンプラグイン変換部69を特定する場合、図9に示したスキャン最速化テーブルを参照して、コマンド識別情報および処理識別情報に基づいて、第1〜第18圧縮・伸張器131−1〜18のうちから使用されるデバイスの個数を、圧縮処理および伸張処理ごとに取得する。課金部61は、プロセス識別情報がプリントプラグイン変換部71を特定する場合、図10に示したプリント最速化テーブルを参照して、コマンド識別情報および処理識別情報に基づいて、第1〜第18圧縮・伸張器131−1〜18のうちから使用されるデバイスの個数を、圧縮処理および伸張処理ごとに取得する。そして、課金部61は、図11に示した料金テーブルを参照して、取得された種別ごとの個数から種別ごとの単価を取得する。
【0133】
例えば、プロセス識別情報がデフォルト変換部65を特定し、コマンド識別情報が「コピー」の場合には、図7に示したデフォルトテーブルを参照して、処理機別情報「圧縮」に対する個数「4」、処理識別情報「伸張」に対する個数「5」を取得し、次に、料金テーブルを参照して、処理識別情報「圧縮」に対する単価「10」、処理識別情報「伸張」に対する単価「20」を取得する。課金部61は、プロセス識別情報がコピープラグイン変換部67を特定し、コマンド識別情報が「コピー」の場合には、図8に示したコピー最速化テーブルを参照して、処理識別情報「圧縮」に対する個数「8」、処理識別情報「伸張」に対する個数「10」を取得し、次に、料金テーブルを参照して、処理識別情報「圧縮」に対する単価「30」、処理識別情報「伸張」に対する単価「30」を取得する。
【0134】
課金部61は、取得された種別ごとの単価を加算した値を、データ量に乗算することにより、アプリコマンドの実行に対する料金を算出する。そして、積算テーブルを更新する。具体的には、積算テーブルで定められている課金額であって、アカウントで特定されるログインユーザーに対する課金額を、その課金額に算出された料金を加算した値で更新する。
【0135】
なお、ここでは、単一の料金テーブルを用いるようにしたが、ユーザーごとに料金テーブルを用いるようにしてもよい。これにより、ユーザーごとに異なる料金を課金することができる。さらに、複数のユーザーを、所属部署、会社などの複数のグループに分類して、複数のグループごとに料金テーブルを用いるようにしてもよい。これにより、ユーザーが属するグループごとに異なる料金を課金することができる。
【0136】
図12は、認証処理の一例を示すフローチャートである。認証処理は、CPU111が、EEPROM115に記憶された認証プログラムを実行することにより、CPU111により実行される処理である。図12を参照して、CPU111は、MFP100を操作するユーザーの認証に成功したか否かを判断する(ステップS01)。認証に成功するまで待機状態となり、認証に成功したならば処理をステップS02に進める。
【0137】
ステップS02においては、プラグイン変換プログラムが存在するか否かを判断する。EEPROM115に記憶された実行可否ケーブルを参照し、ステップS01において認証されたユーザーに対して実行が許可されているプラグイン変換プログラムがインストールされているか否かを判断する。そのようなプラグイン変換プログラムがインストールされているならば処理をステップS03に進めるが、そうでなければステップS03をスキップして処理をステップS04に進める。
【0138】
ステップS03においては、実行が許可されたプラグイン変換プログラムをロードし、処理をステップS04に進める。この段階において、ロードされたプラグイン変換プログラムを実行可能となる。
【0139】
ステップS04においては、アプリケーションプログラムを起動する指示を受け付けたか否かを判断する。アプリケーションプログラムを起動する指示を受け付けたならば処理をステップS05に進めるが、そうでなければステップS05をスキップして処理をステップS06に進める。アプリケーションプログラムは、コピー処理を実行するアプリケーションプログラム、スキャン処理を実行するアプリケーションプログラムおよびプリント処理を実行するアプリケーションプログラムを含む。
【0140】
次のステップS06においては、ロックアウト指示を受け付けたか否かを判断する。ロックアウト指示を受け付けたならば処理のステップS07に進めるが、そうでなければ処理をステップS04に戻す。ステップS07においては、ステップS03においてロードしたプラグイン変換プログラムをアンロードし、処理を終了する。
【0141】
図13は、デフォルト変換処理の流れの一例を示すフローチャートである。デフォルト変換処理は、CPU111が、ROM113に記憶されたデフォルト変換プログラムおよびアプリケーションPFプログラムを実行することにより、CPU111により実行される処理である。図13を参照して、CPU111は、アプリコマンドが入力されたか否かを判断する(ステップS11)。図12のステップS05において起動されたアプリケーションプログラムを実行するタスクが出力するアプリコマンドが入力されたか否かを判断する。アプリコマンドが入力されるまで待機状態となり、アプリコマンドが入力されると、処理をステップS12に進める。
【0142】
ステップS12においては、入力されたアプリコマンドに対応するプラグイン変換プログラムの実行を、アプリコマンドを指示したユーザーが許可されているか否かを判断する。EEPROM115に記憶された実行可否テーブルを参照して、実行可否を判断する。アプリコマンドに対応するプラグイン変換プログラムの実行が許可されているならば処理をステップS13に進めるが、そうでなければ処理をステップS14に進める。
【0143】
ステップS13においては、プラグイン変換プログラムを実行するプラグインタスクに、ステップS11において入力されたアプリコマンドを出力し、処理をステップS11に戻す。
【0144】
処理がステップS14に進む場合、入力されたアプリコマンドに対応するプラグイン変換プログラムの実行を、アプリコマンドを指示したユーザーが許可されていない場合である。この場合、アプリコマンドを指示したユーザーとは異なるユーザーによる指示に基づいて、入力されたアプリコマンドに対応するプラグイン変換プログラムを実行するプラグインタスクがアプリコマンドを実行中の場合がある。ステップS14においては、そのようなプラグインタスクがアプリコマンドを実行中か否かを判断する。ここでの、プラグインタスクは、コピープラグイン変換プログラムを実行するコピープラグインタスク、スキャンプラグイン変換プログラムを実行するスキャンプラグインタスク、プリントプラグイン変換プログラムを実行するプリントプラグインタスクのいずれである。ステップS15においては、アプリコマンドを実行中のプラグインタスクに、ステップS11において入力されたアプリコマンドを出力する。
【0145】
次のステップS16においては、ステップS15においてアプリコマンドを出力したプラグインタスクが、ステップS15においてアプリコマンドを出力する前に実行していたアプリコマンドの実行を終了したか否かを判断する。アプリコマンドの実行を終了するまで待機状態となり、アプリコマンドの実行を終了したならば処理をステップS17に進める。
【0146】
ステップS17においては、処理対象のデータを複数に分割したバンドごとに圧縮・伸張器を割り当てる。図7に示したデフォルトテーブルを参照して、第1〜第18圧縮・伸張器131-1〜18のうちから、ステップS11において入力されたアプリコマンドに対応するデバイスを決定し、決定されたデバイスにバンドを割り当てる。次のステップS18においては、ステップS11において入力されたアプリコマンドを第1の種類のオペレーティングコマンドに変換する。第1の種類のオペレーティングコマンドは、第1〜第18圧縮・伸張器131-1〜18のうちステップS17におけるバンドが割り当てられたデバイスに、割り当てられたバンドのデータを圧縮処理または伸張処理させるコマンドである。
【0147】
ステップS19においては、第1の種類のオペレーティングコマンドを、オペレーティングシステムに出力し、処理をステップS20に進める。ステップS20においては、処理対象とするデータが存在するか否かを判断する。処理対象とするデータが存在するならば処理をステップS17に戻すが、存在しなければ処理をステップS11に戻す。
【0148】
図14は、プラグイン変換処理の流れの一例を示すフローチャートである。プラグイン変換処理は、CPU111が、コピープラグイン変換プログラム、スキャンプラグイン変換プログラムおよびプリントプラグイン変換プログラムのいずれかを実行することにより、CPU111により実行される処理である。CPU111が、コピープラグイン変換プログラムを実行する場合の処理、スキャンプラグイン変換プログラム実行する場合の処理、およびプリントプラグイン変換プログラム実行する場合の処理は、アプリコマンドが異なるのみなので、ここではCPU111がコピープラグイン変換プログラムを実行する場合を例に説明する。
【0149】
図14を参照して、CPU111は、アプリコマンドが入力されたか否かを判断する(ステップS31)。図12のステップS05において起動されたアプリケーションプログラムを実行するタスクが出力するアプリコマンドが、図13のステップS13において出力され、入力されたか否かを判断する。アプリコマンドが入力されるまで待機状態となり、アプリコマンドが入力されると、処理をステップS32に進める。
【0150】
ステップS32においては、使用可能な圧縮・伸張器を特定する。図8に示したコピー最速化テーブルのシングルジョブの項目を参照して、第1〜第18圧縮・伸張器131-1〜18のうちから、ステップS31において入力されたアプリコマンドに対応するデバイスを特定する。なお、CPU111がスキャンプラグイン変換プログラムを実行する場合は、図9に示したスキャン最速化テーブルのシングルジョブの項目を参照して、第1〜第18圧縮・伸張器131-1〜18のうちから、ステップS31において入力されたアプリコマンドに対応するデバイスを特定する。また、CPU111がプリントプラグイン変換プログラムを実行する場合は、図10に示したプリント最速化テーブルのシングルジョブの項目を参照して、第1〜第18圧縮・伸張器131-1〜18のうちから、ステップS31において入力されたアプリコマンドに対応するデバイスを特定する。
【0151】
そして、ステップS32において第1〜第18圧縮・伸張器131-1〜18のうちから特定されたデバイスそれぞれに、処理対象のデータを複数に分割したバンドを割り当てる(ステップS33)。次のステップS34においては、ステップS31において入力されたアプリコマンドを第2の種類のオペレーティングコマンドに変換する。第2の種類のオペレーティングコマンドは、第1〜第18圧縮・伸張器131-1〜18のうちステップS33においてバンドが割り当てられたデバイスに、割り当てられたバンドのデータを圧縮処理または伸張処理させるコマンドである。
【0152】
ステップS35においては、第2の種類のオペレーティングコマンドを、オペレーティングシステムに出力し、処理をステップS36に進める。ステップS36においては、処理対象とするデータが存在するか否かを判断する。処理対象とするデータが存在するならば処理をステップS37に進め、存在しなければ処理をステップS45に進める。ステップS45においては、プラグイン変換処理が終了したことを、デフォルト変換プログラムを実行するタスクに通知し、処理を終了する。
【0153】
一方、ステップS37においては、別のアプリコマンドが入力されたか否かを判断する。ステップS31において入力されたアプリコマンド(第1のアプリコマンド)を実行中に、図13のステップS15において別のアプリコマンド(第2のアプリコマンド)が出力され、入力されたか否かを判断する。別のアプリコマンンド(第2のアプリコマンド)が入力されたならば処理をステップS36に進めるが、そうでなければ処理をステップS33に戻す。以下、ステップS31において入力されたアプリコマンドを第1のアプリコマンドといい、ステップS37において入力された別のアプリコマンドを第2のアプリコマンドという。
【0154】
ステップS38においては、入力用圧縮・伸張器を特定する。図8に示したコピー最速化テーブルのマルチモードの項目を参照して、第1〜第18圧縮・伸張器131-1〜18のうちから、ステップS37において入力された第2のアプリコマンドに対応するデバイスを、入力用圧縮・伸張器として特定する。なお、CPU111がスキャンプラグイン変換プログラムを実行する場合は、図9に示したスキャン最速化テーブルのマルチジョブの項目を参照して、第1〜第18圧縮・伸張器131-1〜18のうちから、第2のアプリコマンドに対応するデバイスを、入力用圧縮・伸張器として特定する。また、CPU111がプリントプラグイン変換プログラムを実行する場合は、図10に示したプリント最速化テーブルのマルチジョブの項目を参照して、第1〜第18圧縮・伸張器131-1〜18のうちから、第2のアプリコマンドに対応するデバイスを、入力用圧縮・伸張器として特定する。
【0155】
ステップS39においては,ステップS36において特定された入力用圧縮・伸張器に、第2のアプリコマンドに対応する処理対象のデータを複数に分割したバンドを割り当てる。次のステップS40においては、ステップS37において入力された第2のアプリコマンドを第3の種類のオペレーティングコマンドに変換する。第3の種類のオペレーティングコマンドは、ステップS38においてバンドが割り当てられた入力用圧縮・伸張器に、割り当てられたバンドのデータを圧縮処理させるコマンドである。
【0156】
ステップS41においては、バンドごとの圧縮・伸張器の割り当てを変更する。図8に示したコピー最速化テーブルのマルチジョブの項目を参照して、第1〜第18圧縮・伸張器131-1〜18のうちから、ステップS31において入力された第1のアプリコマンドに対応するデバイスを特定し、特定されたデバイスに第1のアプリコマンドに対応する処理対象のデータを複数に分割したバンドを割り当てる。なお、CPU111がスキャンプラグイン変換プログラムを実行する場合は、図9に示したスキャン最速化テーブルのマルチジョブの項目を参照して、第1〜第18圧縮・伸張器131-1〜18のうちから、第1のアプリコマンドに対応するデバイスを特定する。また、CPU111がプリントプラグイン変換プログラムを実行する場合は、図10に示したプリント最速化テーブルのマルチジョブの項目を参照して、第1〜第18圧縮・伸張器131-1〜18のうちから、第1のアプリコマンドに対応するデバイスを特定する。
【0157】
ステップS42においては,ステップS31において入力された第1のアプリコマンドを第4の種類のオペレーティングコマンドに変換することにより、第2の種類のオペレーティングコマンドを第4の種類のオペレーティングコマンドに変更する。第4の種類のオペレーティングコマンドは、ステップS39においてバンドが割り当てられた圧縮・伸張器に、割り当てられたバンドのデータを圧縮処理または伸張処理させるコマンドである。
【0158】
次のステップS43においては、ステップS35においてOSに出力した第2オペレーティングコマンドの実行が終了したしたか否かを判断する。第2オペレーティングコマンドの実行が終了するまで待機状態となり、終了したならば処理をステップS43に進める。ステップS43においては、第3の種類および第4の種類のオペレーティングコマンドをOSに出力し、処理をステップS45に進める。
【0159】
以上説明したように、本実施の形態におけるMFP100は、CPU111がオペレーティングシステムプログラムを実行することにより形成されるOS部73と、アプリケーションプログラムを実行することにより形成される第1〜第3アプリケーション部53,55,57と、デフォルト変換プログラムを実行することにより形成されるデフォルト変換部65と、コピープラグイン変換プログラムを実行することにより形成されるコピープラグイン変換部67と、スキャンプラグイン変換プログラムを実行することにより形成されるスキャンプラグイン変換部69と、プリントプラグイン変換プログラムを実行することにより形成されるプリントプラグイン変換部71と、を含む。デフォルト変換部65は、第1〜第3アプリケーション部53,55,57のいずれかにより出力されるアプリコマンドを、第1〜第18圧縮・伸張器131−1〜18のうち該アプリコマンドに対して予め定められた第1の数の圧縮・伸張器を用いる第1の種類のオペレーティングコマンドに変換し、第1の種類のオペレーティングコマンドをOS部73に出力する。コピープラグイン変換部67、スキャンプラグイン変換部69,プリントプラグイン変換部71それぞれは、第1〜第3アプリケーション部53、55、57が出力可能な1以上のアプリコマンドの少なくとも1つに対応し、当該アプリコマンドが出力される場合、第1〜第18圧縮・伸張器131−1〜18のうち第1の種類のオペレーティングコマンドが用いる第1の数よりも大きい第2の数の圧縮・伸張器を用いる第2の種類のオペレーティングコマンドに変換し、第2の種類のオペレーティングコマンドをOS部73に出力する。第2の種類のオペレーティングコマンドがOS部73に出力される場合は、第1の種類のオペレーティングコマンドがOS部73に出力される場合よりも大きな数の圧縮・伸張器が用いられるので、コピープラグイン変換プログラム、スキャンプラグイン変換プログラムおよびプリントプラグイン変換プログラムのいずれかが実行される場合の処理速度を早くすることができる。その結果、アプリケーションプログラムおよびオペレーティングシステムプログラムを変更することなく、処理速度を早くすることができる。
【0160】
また、アプリコマンドが、コピープラグイン変換部67、スキャンプラグイン変換部69,プリントプラグイン変換部71のいずれかに対応する場合、デフォルト変換部65による第1の種類のオペレーティングコマンドの出力が停止されるので、デフォルト変換部65、コピープラグイン変換部67、スキャンプラグイン変換部69,プリントプラグイン変換部71のいずれかがオペレーティングコマンドを出力するので、OS部73に同じ処理を実行させるのを回避することができる。
【0161】
コピープラグイン変換部67、スキャンプラグイン変換部69,プリントプラグイン変換部71それぞれは、それに対応するアプリコマンドが出力された後に、それに対応しない別のアプリコマンドが出力される場合、対応しないアプリコマンドを第3の種類のオペレーティングコマンドに変換し、対応するアプリコマンドを第4の種類のオペレーティングコマンドに変換する。このため、異なる2つのアプリコマンドそれぞれに対応するオペレーティングコマンドを出力することができる。
【0162】
また、認証されたユーザーによる指示に基づいて第1〜第3アプリケーション部53,55,57が出力するアプリコマンドが、コピープラグイン変換部67、スキャンプラグイン変換部69,プリントプラグイン変換部71のいずれかに対応する場合、例えば、アプリコマンドがコピープラグイン変換部67に対応する場合、コピープラグイン変換部67に対応するコピープラグイン変換プログラムの実行が認証されたユーザーに対して許可されていることを条件に、コピープラグイン変換部67に第2の種類のオペレーティングコマンドを出力させる。このため、ユーザーごとにプラグイン変換プログラムの実行の可否を決定することができる。
【0163】
さらに、デフォルト変換部65が第1の種類のオペレーティングコマンドを出力する場合と、コピープラグイン変換部67、スキャンプラグイン変換部69,プリントプラグイン変換部71のいずれかが第2の種類のオペレーティングコマンドを出力する場合とで、異なる料金を課金するので、処理速度に応じて課金額を変更することができる。
【0164】
さらに、動作モードが省電力モードに切り換えられている場合に、コピープラグイン変換部67、スキャンプラグイン変換部69,プリントプラグイン変換部71のいずれかに第2の種類のオペレーティングコマンドを出力させ、動作モードが通常モードに切り換えられている場合に、デフォルト変換部65に第1の種類のオペレーティングコマンドを出力させる。このため、省電力モードの場合に、処理速度を速くすることにより、処理時間を短くして、消費電力を低減することができる。
【0165】
なお、上述した実施の形態においては、MFP100について説明したが、図14に示した処理をMFP100が備えるCPU111に実行させるためのプラグイン変換プログラムとして発明を特定することができるのは言うまでもない。
【0166】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0167】
100 MFP、120 自動原稿搬送装置、130 原稿読取部、131−1〜N 圧縮・伸張器、140 画像形成部、150 給紙部、151 メモリーコントローラ、160 操作パネル、163 表示部、165 操作部、167 タッチパネル、110 メイン回路、111 CPU、112 ネットワークコントローラ、113 ROM、114 RAM、115 EEPROM、116 HDD、117 ファクシミリ部、119 外部記憶装置、121 バス調停器、123 入力メモリー、127 出力メモリー、129 転送制御部、51 ユーザー認証部、53,55,57 第1〜第3アプリケーション部、59 動作モード切換部、61 課金部、63 調停部、65 デフォルト変換部、67 コピープラグイン変換部、69 スキャンプラグイン変換部、71 プリントプラグイン変換部、73 OS部、75 コピーマルチ実行部、77 スキャンマルチ実行部、79 プリントマルチ実行部。




【特許請求の範囲】
【請求項1】
データを圧縮して圧縮データに変換可能であるとともに、圧縮データを伸張してデータに変換可能な複数の圧縮伸張手段と、
前記複数の圧縮伸張手段を制御する制御手段と、を備えた画像処理装置であって、
前記制御手段は、
オペレーティングシステムプログラムを実行することにより形成され、オペレーティングコマンドに従って前記複数の圧縮伸張手段を制御するオペレーティング手段と、
アプリケーションプログラムを実行することにより形成され、アプリコマンドを出力するアプリケーション手段と、
デフォルト変換プログラムを実行することにより、前記オペレーティング手段と前記アプリケーション手段との間に形成され、前記アプリケーション手段により出力されるアプリコマンドを、前記複数の圧縮伸張手段のうち該アプリコマンドに対して予め定められた第1の数の圧縮伸張手段を用いる第1の種類のオペレーティングコマンドに変換し、前記第1の種類のオペレーティングコマンドを前記オペレーティング手段に出力するデフォルト変換手段と、
プラグイン変換プログラムを実行することにより、前記オペレーティング手段と前記アプリケーション手段との間に形成され、前記アプリケーション手段が出力可能な1以上のアプリコマンドの少なくとも1つに対応するプラグイン変換手段と、を備え、
前記プラグイン変換手段は、前記アプリケーション手段により対応するアプリコマンドが出力される場合、前記複数の圧縮伸張手段のうち前記第1の種類のオペレーティングコマンドが用いる第1の数よりも大きい第2の数の圧縮伸張手段を用いる第2の種類のオペレーティングコマンドに変換し、前記第2の種類のオペレーティングコマンドを前記オペレーティング手段に出力する、画像処理装置。
【請求項2】
前記アプリケーション手段が出力するアプリコマンドが前記プラグイン変換手段に対応する場合、前記デフォルト変換手段による前記第1の種類のオペレーティングコマンドの出力を停止させ、前記プラグイン変換手段に前記第2の種類のオペレーティングコマンドを出力させる調停手段を含む、請求項1に記載の画像処理装置。
【請求項3】
前記プラグイン変換手段は、前記第2の種類のオペレーティングコマンドを前記オペレーティング手段に出力した後に、前記アプリケーション手段により出力されるアプリコマンドが前記プラグイン変換手段に対応しない別のアプリコマンドの場合、前記別のアプリコマンドを前記第2の種類のオペレーティングコマンドが用いる前記第2の数の圧縮伸張手段のうち少なくとも1つの入力用の圧縮伸張手段を用いる第3の種類のオペレーティングコマンドと、前記第2の数の圧縮伸張手段のうちから前記少なくとも1つの入力用の圧縮伸張手段を除いた第4の数の圧縮伸張手段を用いる第4の種類のオペレーティングコマンドと、に変換するマルチ実行手段を、含む請求項2に記載の画像処理装置。
【請求項4】
ユーザーを認証する認証手段をさらに備え、
前記調停手段は、前記認証手段により認証されたユーザーによる指示に基づいて前記アプリケーション手段が出力するアプリコマンドが前記プラグイン変換手段に対応する場合、前記認証されたユーザーに対して前記プラグイン変換プログラムの実行が許可されていることを条件に、前記プラグイン変換手段に前記第2の種類のオペレーティングコマンドを出力させる、請求項2または3に記載の画像処理装置。
【請求項5】
前記アプリコマンドの実行に対して課金する課金手段を、さらに備え、
前記課金手段は、前記デフォルト変換手段が前記第1の種類のオペレーティングコマンドの出力する場合と、前記プラグイン変換手段が前記第2の種類のオペレーティングコマンドを出力する場合とで、異なる料金を課金する、請求項2〜4のいずれかに記載の画像処理装置。
【請求項6】
動作モードを通常ユモードと、前記通常モードよりも消費電力の小さい省電力モードとのいずれかに切り換える動作モード切換手段を、さらに備え、
前記調停手段は、動作モードが省電力モードに切り換えられている場合に、前記プラグイン変換手段に前記第2の種類のオペレーティングコマンドを出力させ、動作モードが通常モードに切り換えられている場合に、前記デフォルト変換手段に前記第1の種類のオペレーティングコマンドを出力させる、請求項2〜5のいずれかに記載の画像処理装置。
【請求項7】
データを圧縮して圧縮データに変換可能であるとともに、圧縮データを伸張してデータに変換可能な複数の圧縮伸張手段と、
前記複数の圧縮伸張手段を制御するコンピューターと、を備えた画像処理装置で実行されるプラグイン変換プログラムであって、
前記コンピューターは、
オペレーティングシステムプログラムを実行することにより形成され、オペレーティングコマンドに従って前記複数の圧縮伸張手段を制御するオペレーティング手段と、
アプリケーションプログラムを実行することにより形成され、アプリコマンドを出力するアプリケーション手段と、
デフォルト変換プログラムを実行することにより、前記オペレーティング手段と前記アプリケーション手段との間に形成され、前記アプリケーション手段により出力されるアプリコマンドを、前記複数の圧縮伸張手段のうち該アプリコマンドに対して予め定められた第1の数の圧縮伸張手段を用いる第1の種類のオペレーティングコマンドに変換し、前記第1の種類のオペレーティングコマンドを前記オペレーティング手段に出力するデフォルト変換手段と、を備え、
前記プラグイン変換プログラムは、前記アプリケーション手段が出力可能な1以上のアプリコマンドのうちから予め定められたアプリコマンドが出力される場合、前記複数の圧縮伸張手段のうち前記第1のオペレーティングコマンドが用いる前記第1の数よりも大きい第2の数の圧縮伸張手段を用いる第2の種類のオペレーティングコマンドに変換するステップと、
前記第2のオペレーティングコマンドを前記オペレーティング手段に出力するステップと、を前記コンピューターに実行させるプラグイン変換プログラム。

【図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


【公開番号】特開2013−106107(P2013−106107A)
【公開日】平成25年5月30日(2013.5.30)
【国際特許分類】
【出願番号】特願2011−246911(P2011−246911)
【出願日】平成23年11月10日(2011.11.10)
【出願人】(303000372)コニカミノルタビジネステクノロジーズ株式会社 (12,802)
【Fターム(参考)】