(57)【要約】【課題】  アプリケーションプログラムおよびオペレーティングシステムプログラムを変更することなく、処理速度を早くすること。【解決手段】  ＭＦＰが備えるＣＰＵは、オペレーティングコマンドに従って複数の圧縮・伸張器を制御するＯＳ部７３と、アプリコマンドを出力するアプリケーション部５３，５５，５７と、アプリコマンドを、複数の圧縮・伸張器のうち該アプリコマンドに対して予め定められた第１の数のデバイスを用いる第１の種類のオペレーティングコマンドに変換し、ＯＳ部７３に出力するデフォルト変換部６５と、アプリコマンドにそれぞれ対応するプラグイン変換部６７，６９，７１と、を備え、プラグイン変換部６７，６９，７１は、複数の圧縮・伸張器のうち第１の数よりも大きい第２の数のデバイスを用いる第２の種類のオペレーティングコマンドに変換し、ＯＳ部７３に出力する。【選択図】        図６
2013106107.tif 000002
【特許請求の範囲】
【請求項１】
データを圧縮して圧縮データに変換可能であるとともに、圧縮データを伸張してデータに変換可能な複数の圧縮伸張手段と、
前記複数の圧縮伸張手段を制御する制御手段と、を備えた画像処理装置であって、
前記制御手段は、
オペレーティングシステムプログラムを実行することにより形成され、オペレーティングコマンドに従って前記複数の圧縮伸張手段を制御するオペレーティング手段と、
アプリケーションプログラムを実行することにより形成され、アプリコマンドを出力するアプリケーション手段と、
デフォルト変換プログラムを実行することにより、前記オペレーティング手段と前記アプリケーション手段との間に形成され、前記アプリケーション手段により出力されるアプリコマンドを、前記複数の圧縮伸張手段のうち該アプリコマンドに対して予め定められた第１の数の圧縮伸張手段を用いる第１の種類のオペレーティングコマンドに変換し、前記第１の種類のオペレーティングコマンドを前記オペレーティング手段に出力するデフォルト変換手段と、
プラグイン変換プログラムを実行することにより、前記オペレーティング手段と前記アプリケーション手段との間に形成され、前記アプリケーション手段が出力可能な１以上のアプリコマンドの少なくとも１つに対応するプラグイン変換手段と、を備え、
前記プラグイン変換手段は、前記アプリケーション手段により対応するアプリコマンドが出力される場合、前記複数の圧縮伸張手段のうち前記第１の種類のオペレーティングコマンドが用いる第１の数よりも大きい第２の数の圧縮伸張手段を用いる第２の種類のオペレーティングコマンドに変換し、前記第２の種類のオペレーティングコマンドを前記オペレーティング手段に出力する、画像処理装置。
【請求項２】
前記アプリケーション手段が出力するアプリコマンドが前記プラグイン変換手段に対応する場合、前記デフォルト変換手段による前記第１の種類のオペレーティングコマンドの出力を停止させ、前記プラグイン変換手段に前記第２の種類のオペレーティングコマンドを出力させる調停手段を含む、請求項１に記載の画像処理装置。
【請求項３】
前記プラグイン変換手段は、前記第２の種類のオペレーティングコマンドを前記オペレーティング手段に出力した後に、前記アプリケーション手段により出力されるアプリコマンドが前記プラグイン変換手段に対応しない別のアプリコマンドの場合、前記別のアプリコマンドを前記第２の種類のオペレーティングコマンドが用いる前記第２の数の圧縮伸張手段のうち少なくとも１つの入力用の圧縮伸張手段を用いる第３の種類のオペレーティングコマンドと、前記第２の数の圧縮伸張手段のうちから前記少なくとも１つの入力用の圧縮伸張手段を除いた第４の数の圧縮伸張手段を用いる第４の種類のオペレーティングコマンドと、に変換するマルチ実行手段を、含む請求項２に記載の画像処理装置。
【請求項４】
ユーザーを認証する認証手段をさらに備え、
前記調停手段は、前記認証手段により認証されたユーザーによる指示に基づいて前記アプリケーション手段が出力するアプリコマンドが前記プラグイン変換手段に対応する場合、前記認証されたユーザーに対して前記プラグイン変換プログラムの実行が許可されていることを条件に、前記プラグイン変換手段に前記第２の種類のオペレーティングコマンドを出力させる、請求項２または３に記載の画像処理装置。
【請求項５】
前記アプリコマンドの実行に対して課金する課金手段を、さらに備え、
前記課金手段は、前記デフォルト変換手段が前記第１の種類のオペレーティングコマンドの出力する場合と、前記プラグイン変換手段が前記第２の種類のオペレーティングコマンドを出力する場合とで、異なる料金を課金する、請求項２〜４のいずれかに記載の画像処理装置。
【請求項６】
動作モードを通常ユモードと、前記通常モードよりも消費電力の小さい省電力モードとのいずれかに切り換える動作モード切換手段を、さらに備え、
前記調停手段は、動作モードが省電力モードに切り換えられている場合に、前記プラグイン変換手段に前記第２の種類のオペレーティングコマンドを出力させ、動作モードが通常モードに切り換えられている場合に、前記デフォルト変換手段に前記第１の種類のオペレーティングコマンドを出力させる、請求項２〜５のいずれかに記載の画像処理装置。
【請求項７】
データを圧縮して圧縮データに変換可能であるとともに、圧縮データを伸張してデータに変換可能な複数の圧縮伸張手段と、
前記複数の圧縮伸張手段を制御するコンピューターと、を備えた画像処理装置で実行されるプラグイン変換プログラムであって、
前記コンピューターは、
オペレーティングシステムプログラムを実行することにより形成され、オペレーティングコマンドに従って前記複数の圧縮伸張手段を制御するオペレーティング手段と、
アプリケーションプログラムを実行することにより形成され、アプリコマンドを出力するアプリケーション手段と、
デフォルト変換プログラムを実行することにより、前記オペレーティング手段と前記アプリケーション手段との間に形成され、前記アプリケーション手段により出力されるアプリコマンドを、前記複数の圧縮伸張手段のうち該アプリコマンドに対して予め定められた第１の数の圧縮伸張手段を用いる第１の種類のオペレーティングコマンドに変換し、前記第１の種類のオペレーティングコマンドを前記オペレーティング手段に出力するデフォルト変換手段と、を備え、
前記プラグイン変換プログラムは、前記アプリケーション手段が出力可能な１以上のアプリコマンドのうちから予め定められたアプリコマンドが出力される場合、前記複数の圧縮伸張手段のうち前記第１のオペレーティングコマンドが用いる前記第１の数よりも大きい第２の数の圧縮伸張手段を用いる第２の種類のオペレーティングコマンドに変換するステップと、
前記第２のオペレーティングコマンドを前記オペレーティング手段に出力するステップと、を前記コンピューターに実行させるプラグイン変換プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は画像処理装置およびプラグイン変換プログラムに関し、特にプラグイン変換プログラムをインストール可能な画像処理装置およびそのプラグイン変換プログラムに関する。
【背景技術】
【０００２】
複合機（以下「ＭＦＰ」という）において、プラグイン変換プログラムをインストールすることにより、新たな機能を追加することができる。例えば、特開２００８−６７４７９号公報には、画像処理に係るジョブを構成する処理毎に設けられたフィルタを有するプラグインを追加可能な画像処理装置であって、プラグインは、当該プラグインの登録を、プラグインを管理するプラグイン管理手段に対して要求するプラグイン登録要求手段を有し、プラグイン登録要求手段は、プラグインが有するフィルタの動作および該動作に対応する動作オブジェクトの登録を要求する、画像処理装置が記載されている。従来の画像処理装置においては、プラグインを追加することによって、新たな処理を実行させることができる。
【０００３】
一方、画像処理装置が実行可能な処理は、使用するハードウェア資源が固定されているため、処理速度が一定になる。例えば、画像処理装置は、画像を圧縮する処理および伸張する処理を実行し、これらの処理を実行するために複数の圧縮・伸張器を有している。従来の画像処理装置は、処理の種類毎に、使用可能な圧縮・伸張器の数が固定されている。このため、圧縮処理または伸張処理がボトルネックとなって、処理速度を早くするには限界があった。
【特許文献１】特開２００８−６７４７９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
この発明は上述した問題点を解決するためになされたもので、この発明の目的の１つは、アプリケーションプログラムおよびオペレーティングシステムプログラムを変更することなく、処理速度を早くすることが可能な画像処理装置を提供することである。
【０００５】
この発明の他の目的は、アプリケーションプログラムおよびオペレーティングシステムプログラムを変更することなく、処理速度を早くすることが可能なプラグイン変換プログラムを提供することである。
【課題を解決するための手段】
【０００６】
上述した目的を達成するためにこの発明のある局面によれば、画像処理装置は、データを圧縮して圧縮データに変換可能であるとともに、圧縮データを伸張してデータに変換可能な複数の圧縮伸張手段と、複数の圧縮伸張手段を制御する制御手段と、を備えた画像処理装置であって、制御手段は、オペレーティングシステムプログラムを実行することにより形成され、オペレーティングコマンドに従って複数の圧縮伸張手段を制御するオペレーティング手段と、アプリケーションプログラムを実行することにより形成され、アプリコマンドを出力するアプリケーション手段と、デフォルト変換プログラムを実行することにより、オペレーティング手段とアプリケーション手段との間に形成され、アプリケーション手段により出力されるアプリコマンドを、複数の圧縮伸張手段のうち該アプリコマンドに対して予め定められた第１の数の圧縮伸張手段を用いる第１の種類のオペレーティングコマンドに変換し、第１の種類のオペレーティングコマンドをオペレーティング手段に出力するデフォルト変換手段と、プラグイン変換プログラムを実行することにより、オペレーティング手段とアプリケーション手段との間に形成され、アプリケーション手段が出力可能な１以上のアプリコマンドの少なくとも１つに対応するプラグイン変換手段と、を備え、プラグイン変換手段は、アプリケーション手段により対応するアプリコマンドが出力される場合、複数の圧縮伸張手段のうち第１の種類のオペレーティングコマンドが用いる第１の数よりも大きい第２の数の圧縮伸張手段を用いる第２の種類のオペレーティングコマンドに変換し、第２の種類のオペレーティングコマンドをオペレーティング手段に出力する。
【０００７】
この局面に従えば、第２の種類のオペレーティングコマンドがオペレーティング手段に出力される場合は、第１の種類のオペレーティングコマンドがオペレーティング手段に出力される場合よりも大きな数の圧縮伸張手段が用いられるので、プラグイン変換プログラムが実行される場合の処理速度を早くすることができる。その結果、アプリケーションプログラムおよびオペレーティングシステムプログラムを変更することなく、処理速度を早くすることが可能な画像処理装置を提供することができる。
【０００８】
好ましくは、アプリケーション手段が出力するアプリコマンドがプラグイン変換手段に対応する場合、デフォルト変換手段による第１の種類のオペレーティングコマンドの出力を停止させ、プラグイン変換手段に第２の種類のオペレーティングコマンドを出力させる調停手段を含む。
【０００９】
この局面に従えば、デフォルト変換手段とプラグイン変換手段とのいずれか一方がオペレーティングコマンドを出力するので、オペレーティング手段に同じ処理を実行させるのを回避することができる。
【００１０】
好ましくは、プラグイン変換手段は、第２の種類のオペレーティングコマンドをオペレーティング手段に出力した後に、アプリケーション手段により出力されるアプリコマンドがプラグイン変換手段に対応しない別のアプリコマンドの場合、別のアプリコマンドを第２の種類のオペレーティングコマンドが用いる第２の数の圧縮伸張手段のうち少なくとも１つの入力用の圧縮伸張手段を用いる第３の種類のオペレーティングコマンドと、第２の数の圧縮伸張手段のうちから少なくとも１つの入力用の圧縮伸張手段を除いた第４の数の圧縮伸張手段を用いる第４の種類のオペレーティングコマンドと、に変換するマルチ実行手段を、含む。
【００１１】
この局面に従えば、プラグイン変換手段に対応するアプリコマンドが出力された後に、対応しない別のアプリコマンドが出力される場合、対応しないアプリコマンドを第３の種類のオペレーティングコマンドに変換し、対応するアプリコマンドを第４の種類のオペレーティングコマンドに変換する。このため、異なる２つのアプリコマンドそれぞれに対応するオペレーティングコマンドを出力することができる。
【００１２】
好ましくは、ユーザーを認証する認証手段をさらに備え、調停手段は、認証手段により認証されたユーザーによる指示に基づいてアプリケーション手段が出力するアプリコマンドがプラグイン変換手段に対応する場合、認証されたユーザーに対してプラグイン変換プログラムの実行が許可されていることを条件に、プラグイン変換手段に第２の種類のオペレーティングコマンドを出力させる。
【００１３】
この局面に従えば、ユーザーごとにプラグイン変換プログラムの実行の可否を決定することができる。
【００１４】
好ましくは、アプリコマンドの実行に対して課金する課金手段を、さらに備え、課金手段は、デフォルト変換手段が第１の種類のオペレーティングコマンドの出力する場合と、プラグイン変換手段が第２の種類のオペレーティングコマンドを出力する場合とで、異なる料金を課金する。
【００１５】
この局面に従えば、処理速度に応じて課金額を変更することができる。
【００１６】
好ましくは、動作モードを通常ユモードと、通常モードよりも消費電力の小さい省電力モードとのいずれかに切り換える動作モード切換手段を、さらに備え、調停手段は、動作モードが省電力モードに切り換えられている場合に、プラグイン変換手段に第２の種類のオペレーティングコマンドを出力させ、動作モードが通常モードに切り換えられている場合に、デフォルト変換手段に第１の種類のオペレーティングコマンドを出力させる。
【００１７】
この局面に従えば、省電力モードの場合に、処理速度を速くすることにより、処理時間を短くして、消費電力を低減することができる。
【００１８】
この発明のさらに他の局面によれば、プラグイン変換プログラムは、データを圧縮して圧縮データに変換可能であるとともに、圧縮データを伸張してデータに変換可能な複数の圧縮伸張手段と、複数の圧縮伸張手段を制御するコンピューターと、を備えた画像処理装置で実行されるプラグイン変換プログラムであって、コンピューターは、オペレーティングシステムプログラムを実行することにより形成され、オペレーティングコマンドに従って複数の圧縮伸張手段を制御するオペレーティング手段と、アプリケーションプログラムを実行することにより形成され、アプリコマンドを出力するアプリケーション手段と、デフォルト変換プログラムを実行することにより、オペレーティング手段とアプリケーション手段との間に形成され、アプリケーション手段により出力されるアプリコマンドを、複数の圧縮伸張手段のうち該アプリコマンドに対して予め定められた第１の数の圧縮伸張手段を用いる第１の種類のオペレーティングコマンドに変換し、第１の種類のオペレーティングコマンドをオペレーティング手段に出力するデフォルト変換手段と、を備え、プラグイン変換プログラムは、アプリケーション手段が出力可能な１以上のアプリコマンドのうちから予め定められたアプリコマンドが出力される場合、複数の圧縮伸張手段のうち第１のオペレーティングコマンドが用いる第１の数よりも大きい第２の数の圧縮伸張手段を用いる第２の種類のオペレーティングコマンドに変換するステップと、第２のオペレーティングコマンドをオペレーティング手段に出力するステップと、をコンピューターに実行させる。
【００１９】
この局面に従えば、第２の種類のオペレーティングコマンドがオペレーティング手段に出力される場合は、第１の種類のオペレーティングコマンドがオペレーティング手段に出力される場合よりも大きな数の圧縮伸張手段が用いられるので、プラグイン変換プログラムが実行される場合の処理速度を早くすることができる。その結果、アプリケーションプログラムおよびオペレーティングシステムプログラムを変更することなく、処理速度を早くすることが可能なプラグイン変換プログラムを提供することができる。
【図面の簡単な説明】
【００２０】
【図１】本発明の実施の形態の１つにおけるＭＦＰの外観を示す斜視図である。
【図２】ＭＦＰのハードウェア構成の概要を示す図である。
【図３】メイン回路の詳細な構成の一例を示すブロック図である。
【図４】符号管理テーブルの一例を示す図である。
【図５】ＣＰＵのソフトウェアアーキテクチャの一例を示す図である。
【図６】ＣＰＵの機能の概要の一例を示すブロック図である。
【図７】デフォルトテーブルの一例を示す図である。
【図８】コピー最速化テーブルの一例を示す図である。
【図９】スキャン最速化テーブルの一例を示す図である。
【図１０】プリント最速化テーブルの一例を示す図である。
【図１１】料金テーブルの一例を示す図である。
【図１２】認証処理の一例を示すフローチャートである。
【図１３】デフォルト変換処理の流れの一例を示すフローチャートである。
【図１４】プラグイン変換処理の流れの一例を示すフローチャートである。
【発明を実施するための形態】
【００２１】
以下、本発明の実施の形態について図面を参照して説明する。以下の説明では同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがってそれらについての詳細な説明は繰返さない。
【００２２】
図１は、本発明の実施の形態の１つにおけるＭＦＰの外観を示す斜視図である。図２は、ＭＦＰのハードウェア構成の概要を示す図である。図１および図２を参照して、画像処理装置の一例であるＭＦＰ１００は、ＭＦＰ１００の全体を制御するＣＰＵ１１１を含むメイン回路１１０と、原稿を読み取るための原稿読取部１３０と、原稿を原稿読取部１３０に搬送するための自動原稿搬送装置（ＡＤＦ）１２０と、原稿読取部１３０が原稿を読み取って出力する画像データに基づいて用紙等に画像を形成するための画像形成部１４０と、画像形成部１４０に用紙を供給するための給紙部１５０と、ユーザーインターフェースとしての操作パネル１６０と、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌe  Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）１１５と、大容量記憶装置としてのハードディスクドライブ（ＨＤＤ）１１６と、ファクシミリ部１１７と、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ−Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１１９Ａが装着される外部記憶装置１１９と、を含む。
【００２３】
操作パネル１６０は、ＭＦＰ１００の上面に設けられ、表示部１６３と操作部１６５とを含む。表示部１６３は、液晶表示装置（ＬＣＤ）、有機ＥＬＤ（Ｅｌｅｃｔｒｏ−Ｌｕｍｉｎｅｓｃｅｎｃｅ  Ｄｉｓｐｌａｙ）等の表示装置であり、ユーザーに対する指示メニューや取得した画像データに関する情報等を表示する。操作部１６５は、複数のキーを備え、キーに対応するユーザーの操作による各種の指示、文字、数字などのデータの入力を受け付ける。操作部１６５は、表示部１６３の表示面の位置を検出するタッチパネル１６７をさらに含む。タッチパネル１６７は、表示部１６３の上面または下面に設けられ、ユーザーにより指示された位置の座標をＣＰＵ１１１に出力する。
【００２４】
ファクシミリ部１１７は、公衆交換電話網（ＰＳＴＮ）に接続され、ファクシミリデータを送受信する。ファクシミリ部１１７は、原稿読取部１３０により読み取られた画像データまたはＨＤＤ１１６に記憶されたデータをファクシミリデータに変換して、ＰＳＴＮに接続されたファクシミリ装置に送信する。また、ファクシミリ部１１７は、受信されたファクシミリデータをＨＤＤ１１６に記憶するか、画像形成部１４０にファクシミリデータの画像を用紙に形成させる。
【００２５】
外部記憶装置１１９は、ＣＤ−ＲＯＭ１１９Ａが装着される。ＣＰＵ１１１は、外部記憶装置１１９を介してＣＤ−ＲＯＭ１１９Ａにアクセス可能である。ＣＰＵ１１１は、外部記憶装置１１９に装着されたＣＤ−ＲＯＭ１１９Ａに記録されたプログラムをＲＡＭ１１４にロードして実行する。なお、ＣＰＵ１１１が実行するプログラムは、ＣＤ−ＲＯＭ１１９Ａに記録されたプログラムに限られず、ＥＥＰＲＯＭ１１５またはＨＤＤ１１６に記憶されたプログラムをＲＡＭ１１４にロードして実行するようにしてもよい。この場合、ネットワークに接続された他のコンピューターが、ＭＦＰ１００のＨＤＤ１１６に記憶されたプログラムを書き換える、または、新たなプログラムを追加して書き込むようにしてもよい。さらに、ＭＦＰ１００が、ネットワークに接続された他のコンピューターからプログラムをダウンロードして、そのプログラムをＨＤＤ１１６に記憶するようにしてもよい。ここでいうプログラムは、ＣＰＵ１１１が直接実行可能なプログラムだけでなく、ソースプログラム、圧縮処理されたプログラム、暗号化されたプログラム等を含む。
【００２６】
図３は、メイン回路の詳細な構成の一例を示すブロック図である。図３を参照して、メイン回路１１０は、ＭＦＰ１００の全体を制御するためのＣＰＵ１１１と、ＣＰＵ１１１が実行するプログラム等を記憶するためのＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１１３と、ＣＰＵ１１１の作業領域として用いられるＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１１４と、画像データの入出力を制御するためのバス調停器１２１と、Ｎ個の第１〜第Ｎ圧縮・伸張器１３１−１〜１３１−Ｎ（Ｎは１より大きい正の整数）と、メモリーコントローラ１５１と、ネットワークコントローラ１１２と、を含む。
【００２７】
ＲＯＭ１１３は、ＣＰＵ１１１が実行するオペレーティングシステム（ＯＳ）プログラムおよびデフォルト変換プログラム、またはそれらを実行するために必要なデータを記憶する。ＲＡＭ１１４は、ＣＰＵ１１１の作業領域として用いられる。
【００２８】
ネットワークコントローラ１１２は、ＭＦＰ１００をローカルエリアネットワーク（ＬＡＮ）などのネットワークに接続するためのインターフェースであり、例えば、ＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）である。ＣＰＵ１１１は、ネットワークコントローラ１１２を介して接続された他のコンピューターとの間で通信し、データを送受信する。また、ネットワークコントローラ１１２は、ネットワークを介してインターネットに接続されたコンピューターと通信が可能である。
【００２９】
バス調停器１２１は、データを一時記憶するための入力メモリー１２３および出力メモリー１２７と、画像データの入出力を制御するための転送制御部１２９と、を含む。
【００３０】
メモリーコントローラ１５１は、ＣＰＵ１１１により制御され、転送制御部１２９を制御して、ＲＡＭ１１４、入力メモリー１２３および出力メモリー１２７のデータの入出力を制御する。
【００３１】
転送制御部１２９は、メモリーコントローラ１５１により制御され、入力メモリー１２３および出力メモリー１２７それぞれのデータの入出力を制御する。入力メモリー１２３および出力メモリー１２７それぞれは、データを一時的に記憶するバッファメモリーである。転送制御部１２９が制御するデータの流れは、データの入力の流れと、出力の流れとの２つに大別され、それらはジョブの種類によって異なる。本実施の形態におけるＭＦＰ１００が実行可能なジョブは、原稿を複写するコピージョブ、原稿を読み取るスキャンジョブ、ＰＣから受信されるプリントデータをプリントするプリントジョブがある。
【００３２】
ＣＰＵ１１１は、コピージョブの場合、データの入力時において、原稿読取部１３０を制御して原稿読取部１３０で原稿が読み取らせ、メモリーコントローラ１５１を制御して、原稿読取部１３０から出力される画像データを入力メモリー１２３に格納させる。ＣＰＵ１１１は、コピージョブの場合、データの出力時において、メモリーコントローラ１５１に出力メモリー１２７に格納されたデータを読み出させ、画像形成部１４０を制御して、メモリーコントローラ１５１により読み出されたデータの画像を用紙に形成させる。
【００３３】
ＣＰＵ１１１は、スキャンジョブの場合、データの入力時において、コピージョブの場合と同様に、原稿読取部１３０を制御して原稿読取部１３０で原稿が読み取らせ、メモリーコントローラ１５１を制御して、原稿読取部１３０から出力される画像データを入力メモリー１２３に格納させる。ＣＰＵ１１１は、スキャンジョブの場合、データの出力時において、メモリーコントローラ１５１に出力メモリー１２７に格納されたデータを読み出させ、ネットワークコントローラ１１２を制御して、メモリーコントローラ１５１により読み出されたデータを外部に送信させる。なお、スキャンジョブの場合、データをＨＤＤ１１６に記憶するようにしてもよい。この場合、ＣＰＵ１１１は、データの出力時において、メモリーコントローラ１５１に出力メモリー１２７に格納されたデータを読み出させ、ＨＤＤ１１６を制御して、転送制御部１２９により読み出されたデータを記憶させる。
【００３４】
プリントジョブの場合、データの入力時において、ネットワークコントローラ１１２により外部のコンピューターからプリントデータが受信される。ＣＰＵ１１１は、ネットワークコントローラ１１２がプリントデータを受信すると、メモリーコントローラ１５１に、プリントデータを入力メモリー１２３に格納させる。ＣＰＵ１１１は、プリントジョブの場合、データの出力時において、コピージョブの場合と同様に、メモリーコントローラ１５１に出力メモリー１２７に格納されたデータを読み出させ、画像形成部１４０を制御して、メモリーコントローラ１５１により読み出されたデータの画像を用紙に形成させる。
【００３５】
Ｎ個の第１〜第Ｎ圧縮・伸張器１３１−１〜１３１−Ｎは、同じ性能を有し、転送制御部１２９により制御され、データを圧縮または伸張する。具体的には、第１〜第Ｎ圧縮・伸張器１３１−１〜１３１−Ｎそれぞれは、圧縮器として機能する場合は、転送制御部１２９から入力されるデータを、圧縮することにより圧縮データに変換し、圧縮データをＲＡＭ１１４の転送制御部１２９により指定される領域に格納する。第１〜第Ｎ圧縮・伸張器１３１−１〜１３１−Ｎそれぞれは、伸張器として機能する場合は、ＲＡＭ１１４の転送制御部１２９により指定される領域から圧縮データを読出し、伸張することによりデータに変換し、データを転送制御部１２９に出力する。
【００３６】
転送制御部１２９は、データの入力時において、入力メモリー１２３からバンド単位でデータを読み出し、第１〜第Ｎ圧縮・伸張器１３１−１〜Ｎのうちからメモリーコントローラ１５１により圧縮器として選択された１以上のデバイスに出力する。転送制御部１２９は、入力メモリー１２３に、所定単位のデータ、例えば１ページ分のデータが記憶される前に、１ページ分のデータを複数に分割したバンド単位のデータが入力されると、バンド単位でデータを読み出し、第１〜第Ｎ圧縮・伸張器１３１−１〜Ｎのうちからメモリーコントローラ１５１により圧縮器として選択された１以上のデバイスに順に出力する。すなわち、第１〜第Ｎ圧縮・伸張器１３１−１〜Ｎのうちから選択された１以上のデバイスで、１ページ分のデータを分担し、１以上のデバイスそれぞれが圧縮処理を実行する。第１〜第Ｎ圧縮・伸張器１３１−１〜Ｎのうちからメモリーコントローラ１５１により圧縮器として選択された１以上のデバイスそれぞれは、バンド単位で入力されるデータを圧縮し、圧縮データをＲＡＭ１１４に格納する。
【００３７】
転送制御部１２９は、データの出力において、第１〜第Ｎ圧縮・伸張器１３１−１〜Ｎのうちからメモリーコントローラ１５１により伸張器として選択された１以上のデバイスそれぞれに、ＲＡＭ１１４に記憶された圧縮データを読み出させ、伸張させる。第１〜第Ｎ圧縮・伸張器１３１−１〜Ｎのうちからメモリーコントローラ１５１により伸張器として選択された１以上のデバイスそれぞれは、バンド単位の圧縮データを伸張し、伸張したデータを転送制御部１２９に出力する。すなわち、第１〜第Ｎ圧縮・伸張器１３１−１〜Ｎのうちから選択された１以上のデバイスで、１ページ分のデータを分担し、１以上のデバイスそれぞれが伸張処理を実行する。転送制御部１２９は、第１〜第Ｎ圧縮・伸張器１３１−１〜Ｎのうちからメモリーコントローラ１５１により伸張器として選択された１以上のデバイスそれぞれから入力されるデータを、出力メモリー１２７に格納する。
【００３８】
メモリーコントローラ１５１は、第１〜第Ｎ圧縮・伸張器１３１−１〜Ｎのうちから、圧縮器として選択した１以上のデバイスとは別の１以上を、伸長器として選択する。このため、第１〜第Ｎ圧縮・伸張器１３１−１〜Ｎのうち１以上のデバイスがバンド単位のデータを伸張する処理を実行している間に、慎重処理する１以上のデバイスとは別の１以上のデバイスが次のバンドのデータを圧縮する処理を実行する。すなわち、第１〜第Ｎ圧縮・伸張器１３１−１〜Ｎのうち１以上のデバイスそれぞれが圧縮処理を実行している間に、別の１以上のデバイスそれぞれが伸張処理を実行する。
【００３９】
ＣＰＵ１１１は、ＲＡＭ１１４が記憶する符号管理テーブルによって、ＲＡＭ１１４に記憶されるバンド単位のデータの入出を管理する。図４は、符号管理テーブルの一例を示す図である。データの入力時、入力メモリー１２３に格納されたデータをバンド単位に圧縮するため、ＲＡＭ１１４には、図の右側に示すように、１ページ分のデータがバンド単位に分割されて記憶される。そこで、符号管理テーブルは、分割されたバンド単位の情報を記憶するバンド管理情報テーブルＴ２と、原稿中のページ単位の情報を記憶するページ単位情報テーブルＴ１とからなる。ページ単位情報テーブルＴ１は、圧縮する前の１ページ単位での圧縮中か否かの状態や、何バンド圧縮したか否か、画像サイズや、圧縮サイズ、バンド単位情報はどこに記憶しているかといった情報を記憶する。また、バンド管理情報テーブルＴ２は、分割されたデータがどこにあるか、またバンド単位の圧縮サイズ等を記憶する。ここでは、１つの符号管理テーブルを示すが、複数のジョブが実行されて、複数のデータが入力される場合には、複数のデータそれぞれに対応する複数の符号管理テーブルがＲＡＭ１１４に記憶される。
【００４０】
ＣＰＵ１１１は、バンド単位のデータの入出力を指示するコマンドを、メモリーコントローラ１５１に出力し、メモリーコントローラ１５１は、ＣＰＵ１１１から入力されるコマンドに従って、転送制御部１２９を制御する。コマンドは、バンド単位のデータごとに出力され、第１〜第Ｎ圧縮・伸張器１３１−１〜Ｎのいずれかを特定する情報と、伸張器または圧縮器のいずれとして機能させるかを示す情報とを含む。
【００４１】
ＣＰＵ１１１は、ＭＦＰ１００に電源が投入されて起動すると、ＲＯＭ１１３に記憶されたオペレーティングシステム（以下「ＯＳ」という）プログラムを実行し、その後、デフォルト変換プログラムを実行する。また、ＣＰＵ１１１は、プラグイン変換プログラムがインストールされると、インストールされたプラグイン変換プログラムを、ＥＥＰＲＯＭ１１５に記憶する。そして、ＣＰＵ１１１は、必要に応じてプラグイン変換プログラムをＥＥＰＲＯＭ１１５から読出し、実行する。さらに、ＣＰＵ１１１は、アプリケーションプログラムがインストールされると、インストールされたアプリケーションプログラムを、ＥＥＰＲＯＭ１１５に記憶する。そして、ＣＰＵ１１１は、ユーザーによる操作に応じて、またはプリントデータが受信されることに応じて、アプリケーションプログラムをＥＥＰＲＯＭ１１５から読出し、実行する。
【００４２】
図５は、ＣＰＵのソフトウェアアーキテクチャの一例を示す図である。図５を参照して、ＣＰＵ１１１には、オペレーティングシステム（ＯＳ）層が形成され、その上の階層に、ＭＦＰプロセス層およびプラグイン層が形成される。さらにその上層に、アプリケーションプラットフォーム（ＰＦ）層、アプリケーション層の順に形成される。
【００４３】
ＯＳ層は、ＣＰＵ１１１がＯＳプログラムを実行するタスクが属し、そのタスクは、ＭＦＰ１００のハードウェア資源を制御する処理を実行する。ハードウェア資源は、ここでは、ネットワークコントローラ１１２、ＲＯＭ１１３、ＲＡＭ１１４、ＥＥＰＲＯＭ１１５、ＨＤＤ１１６、ファクシミリ部１１７、外部記憶装置１１９、メモリーコントローラ１５１、バス調停器１２１、第１〜第Ｎ圧縮・伸張器１３１−１〜Ｎを含む。
【００４４】
ＭＦＰプロセス層は、ＣＰＵ１１１が、デフォルト変換プログラムを実行するタスクが属する。プラグイン層は、ＣＰＵ１１１がプラグイン変換プログラムを実行するタスクが属する。複数種類のプラグイン変換プログラムがインストールされる場合、複数種類のプラグイン変換プログラムのうちから選択された１つを実行するタスクが属する。なお、複数種類のプラグイン変換プログラムのうちから選択された２以上をそれぞれ実行する２以上のタスクが属するようにしてもよい。
【００４５】
アプリケーション層は、ＣＰＵ１１１がアプリケーションプログラムを実行するタスクが属し、ＭＦＰ１００に処理を実行させるためのアプリコマンドを出力する。複数種類のアプリケーションプログラムがインストールされる場合、複数種類のアプリケーションプログラムをそれぞれ実行する複数のタスクが属する。ここでは、アプリケーション層に、コピー処理を実行するためのアプリケーションプログラムを実行する「コピーアプリ」のタスクと、スキャン処理を実行するためのアプリケーションプログラムを実行する「スキャンアプリ」のタスクと、プリント処理を実行するためのアプリケーションプログラムを実行する「プリントアプリ」のタスクと、が属する場合を例に示している。なお、アプリケーションプログラムは、これらに限定されることなく、これより多くてもよい。
【００４６】
アプリケーションＰＦ層は、アプリケーション層と、ＭＦＰプロセス層またはプラグイン層と、の間に配置され、アプリケーション層と、ＭＦＰプロセス層およびプラグイン層との間を標準化する。例えば、ＭＦＰプロセス層およびプラグイン層で実行可能なアプリコマンドを標準化する。実際には、アプリコマンドを、ＭＦＰプロセス層およびプラグイン層で実行可能な１以上のコマンドに変換するが、ここでは、アプリコマンドとＭＦＰプロセス層およびプラグイン層で実行可能な１以上のコマンドとの関係は同一として、説明する。
【００４７】
ＭＦＰプロセス層およびプラグイン層は、アプリケーション層とＯＳ層との間に配置され、アプリケーションプログラムを実行するタスクが出力するアプリコマンドを、ＯＳプログラムを実行するタスクが解釈可能なオペレーティングコマンドに変換し、ＯＳプログラムを実行するタスクにオペレーティングコマンドを出力する。なお、１つのアプリコマンドに対して、複数のオペレーティングコマンドが対応する場合があるが、ここでは説明のために、１つのアプリコマンドに対して１つのオペレーティングコマンドが対応する場合を例に説明する。
【００４８】
図６は、ＣＰＵの機能の概要の一例を示すブロック図である。図６に示すＣＰＵ１１１の機能は、ＣＰＵ１１１が、ＯＳプログラム、デフォルト変換プログラム、プラグイン変換プログラムおよびアプリケーションプログラムを実行することにより、ＣＰＵ１１１に形成される。ここでは、ＭＦＰ１００に、プラグイン変換プログラムとして、コピープラグイン変換プログラム、スキャンプラグイン変換プログラムおよびプリントプラグイン変換プログラムが、インストールされている場合におけるＣＰＵ１１１の機能を示している。
【００４９】
図６を参照して、ＣＰＵ１１１は、ＭＦＰ１００を操作するユーザーを認証するユーザー認証部５１と、第１〜第３アプリケーション部５３，５５，５７と、動作モードを切り換える動作モード切換部５９と、課金部６１と、調停部６３と、デフォルト変換部６５と、コピープラグイン変換部６７と、スキャンプラグイン変換部６９と、プリントプラグイン変換部７１と、ＯＳ部７３と、を含む。
【００５０】
ユーザー認証部５１、第１〜第３アプリケーション部５３，５５，５７、動作モード切換部５９および課金部６１は、ＣＰＵ１１１がそれぞれに対応するアプリケーションプログラムを実行するタスクであり、そのタスクによって実行される機能である。ユーザー認証部５１、第１〜第３アプリケーション部５３，５５，５７、動作モード切換部５９および課金部６１は、図５に示したソフトウェアアーキテクチャにおいて、アプリケーション層に属する。
【００５１】
調停部６３は、ＣＰＵ１１１がアプリケーションＰＦプログラムを実行するタスクであり、そのタスクによって実行される機能である。図５に示したソフトウェアアーキテクチャにおいて、アプリケーションＰＦ層に属する。なお、アプリケーションＰＦプログラムは、デフォルト変換プログラムの一部としてもよい。
【００５２】
デフォルト変換部６５は、ＣＰＵ１１１がデフォルト変換プログラムを実行するタスクであり、そのタスクによって実行される機能である。図５に示したソフトウェアアーキテクチャにおいて、ＭＦＰプロセス層に属する。
【００５３】
コピープラグイン変換部６７、スキャンプラグイン変換部６９およびプリントプラグイン変換部７１は、ＣＰＵ１１１がそれぞれに対応するプラグイン変換プログラムを実行するタスクであり、そのタスクによって実行される機能である。図５に示したソフトウェアアーキテクチャにおいて、プラグイン層に属する。なお、本実施の形態においては、ＣＰＵ１１１は、同時に１つのプラグイン変換プログラムを実行可能としている。このため、コピープラグイン変換部６７、スキャンプラグイン変換部６９およびプリントプラグイン変換部７１のうちからＣＰＵ１１１が実行するプラグイン変換プログラムに対応するものが機能する。
【００５４】
ＯＳ部７３は、ＣＰＵ１１１がＯＳプログラムを実行するタスクであり、そのタスクによって実行される機能である。図５に示したソフトウェアアーキテクチャにおいて、ＯＳ層に属する。
【００５５】
ＯＳ部７３は、デフォルト変換部６５、コピープラグイン変換部６７、スキャンプラグイン変換部６９およびプリントプラグイン変換部７１のいずれかからオペレーティングコマンドが入力され、第１〜第Ｎ圧縮・伸張器１３１−１〜Ｎを制御する。オペレーティングコマンドは、第１〜第Ｎ圧縮・伸張器１３１−１〜Ｎのいずれかを特定するデバイス識別情報と、データを特定するアドレス情報と、圧縮処理または伸張処理のいずれかを示す処理識別情報と、を含む。圧縮処理を示す識別情報を含むオペレーティングコマンドは、処理対象のデータ（バンド）が記憶されている入力メモリー１２３のアドレスを示すアドレス情報と、圧縮処理後の圧縮データを格納するＲＡＭ１１４のアドレスを示すアドレス情報とを含む。伸張処理を示す識別情報を含むオペレーティングコマンドは、処理対象の圧縮データが記憶されているＲＡＭ１１４のアドレスを示すアドレス情報と、伸張処理後のデータを格納する出力メモリー１２７のアドレスを示すアドレス情報とを含む。
【００５６】
ＯＳ部７３は、圧縮処理を示す識別情報を含むオペレーティングコマンドが入力される場合、第１〜第Ｎ圧縮・伸張器１３１−１〜Ｎのうちオペレーティングコマンドに含まれるデバイス識別情報で特定されるデバイスに、入力メモリー１２３のアドレス情報で特定されるアドレスに記憶されているデータを圧縮させ、圧縮データをＲＡＭ１１４のアドレス情報で特定されるアドレスに格納させる。ＯＳ部７３は、伸張処理を示す識別情報を含むオペレーティングコマンドが入力される場合、第１〜第Ｎ圧縮・伸張器１３１−１〜Ｎのうちオペレーティングコマンドに含まれるデバイス識別情報で特定されるデバイスに、ＲＡＭ１１４のアドレス情報で特定されるアドレスに記憶されているデータを伸張させ、伸張されたデータを出力メモリー１２７のアドレス情報で特定されるアドレスに格納させる。
【００５７】
ユーザー認証部５１は、ＭＦＰ１００を操作するユーザーを認証する。ＭＦＰ１００は、その使用が許可されたユーザーに割り当てられたアカウントとパスワードとを含むユーザーレコードを予め記憶している。ＭＦＰ１００を操作するユーザーは、操作パネル１６０を操作するユーザーと、ＭＦＰ１００にネットワークで接続されたＰＣを操作するユーザーと、を含む。具体的には、ＭＦＰ１００は、ＭＦＰ１００の使用が許可されたユーザーを登録する際に、そのユーザーに割り当てられたアカウントとパスワードとを含むユーザーレコードを、ＨＤＤ１１６に記憶されたユーザーデータに追加する。ユーザー認証部５１は、ユーザーが操作パネル１６０を使用する場合、表示部１６３にログイン画面を表示する。ログイン画面は、アカウントとパスワードとを入力する領域を含む。ユーザーが、ログイン画面に従って操作部１６５にアカウントとパスワードとを入力すれば、操作部１６３からアカウントとパスワードとの組を受け付ける。ユーザー認証部５１は、操作部１６３からアカウントとパスワードとの組を受け付けると、受け付けられたアカウントとパスワードとの組と予めＨＤＤ１１６に記憶されているユーザーデータに含まれるユーザーレコードと比較する。ユーザー認証部５１は、アカウントとパスワードとの組と一致するユーザーレコードがユーザーデータに含まれていれば認証成功と判断し、そうでなければ認証失敗と判断する。
【００５８】
ユーザー認証部５１は、認証成功と判断する場合、直接ログイン期間を開始し、直接ログイン期間に操作部１６５に入力される操作を、操作部１６５を使用するユーザーにより入力された操作として扱う。直接ログイン期間は、操作部１６５を操作するユーザーがログインした状態の期間であり、操作部１６５にログアウト指示が入力されることにより、また、操作部１６５に操作が入力されることなく所定の時間が経過することにより、終了する。ユーザー認証部５１は、認証成功と判断してから開始する直接ログイン期間中、操作パネル１６０を操作するユーザーのアカウントとＭＦＰ１００の装置識別情報の組を、第１〜第３アプリケーション部５３，５５，５７、動作モード切換部５９、課金部６１および調停部６３に出力する。
【００５９】
ユーザー認証部５１は、ユーザーがネットワークに接続されたＰＣを用いてＭＦＰ１００を操作する場合、ネットワークコントローラ１１２を介してログイン画面を、ＰＣに送信する。ＰＣは、ログイン画面を受信すると、ログイン画面をディスプレイに表示し、ユーザーが、ログイン画面に従って入力するアカウントとパスワードとの組を受け付け、それらをＭＦＰ１００に返信する。ユーザー認証部５１は、ネットワークコントローラ１１２がＰＣからアカウントとパスワードとの組を受信すると、受信されたアカウントとパスワードとの組と予めＨＤＤ１１６に記憶されているユーザーデータに含まれるユーザーレコードと比較する。ユーザー認証部５１は、アカウントとパスワードとの組と一致するユーザーレコードがユーザーデータに含まれていれば認証成功と判断し、そうでなければ認証失敗と判断する。
【００６０】
ユーザー認証部５１は、認証成功と判断する場合、ネットワークコントローラ１１２を介してＰＣに認証成功信号を送信するとともに遠隔ログイン期間を開始する。ユーザー認証部５１は、遠隔ログイン期間にネットワークコントローラ１１２がＰＣから受信する操作を、認証したユーザーにより入力された操作として扱う。遠隔ログイン期間は、ＰＣを操作するユーザーのログインが許可された状態の期間であり、ネットワークコントローラ１１２がＰＣからログアウト指示を受信することにより、また、ネットワークコントローラ１１２がＰＣからデータを受信することなく所定の時間が経過することにより、終了する。ユーザー認証部５１は、認証成功と判断してから開始する遠隔ログイン期間中、ＰＣを操作するユーザーのアカウントとＰＣの装置識別情報との組を、第１〜第３アプリケーション部５３，５５，５７、動作モード切換部５９、課金部６１および調停部６３に出力する。
【００６１】
また、ユーザーがＰＣを操作して、ＭＦＰ１００を制御する遠隔操作は、プリントジョブを実行させる操作がある。ユーザーがネットワークに接続されたＰＣを用いてＭＦＰ１００にプリントジョブを送信する場合、ネットワークコントローラ１１２がプリントジョブを受信する。ユーザー認証部５１は、ネットワークコントローラ１１２が受信するプリントジョブに含まれるアカウントとパスワードとの組と予めＨＤＤ１１６に記憶されているユーザーデータに含まれるユーザーレコードと比較する。ユーザー認証部５１は、アカウントとパスワードとの組と一致するユーザーレコードがユーザーデータに含まれていれば認証成功と判断し、そうでなければ認証失敗と判断する。ユーザー認証部５１は、認証成功と判断する場合、遠隔ログイン期間を開始し、プリントジョブの終了により遠隔ログイン期間を終了する。
【００６２】
なお、ここでは、アカウントとパスワードとの組を用いて認証する場合を例に示すが、ユーザーの指紋、静脈パターン、虹彩等の生体情報を用いて認証するようにしてもよい。この場合、ＭＦＰ１００およびＰＣに、生体情報を読み取るための読取装置を接続し、ＭＦＰ１００に記憶されるユーザーデータは、アカウントと生体情報とを含む。そして、ＭＦＰ１００およびＰＣそれぞれは、読取装置により読み取られた生体情報が入力される。ＭＦＰ１００は、読取装置から入力される生体情報、または、ＰＣのいずれかの読取装置で読み取られ送信される生体情報に基づいて認証する。また、ユーザーに割り当てられたカード番号等の認証情報を記憶する磁気カードまたはＩＣカードを用いて認証してもよい。この場合、ＭＦＰ１００およびＰＣに、認証情報を読み取るための読取装置を接続し、ＭＦＰ１００に記憶されるユーザーデータは、アカウントと認証情報とを含む。そして、ＭＦＰ１００およびＰＣそれぞれは、読取装置により読み取られた認証情報が入力される。ＭＦＰ１００は、読取装置から入力される認証情報、または、ＰＣの読取装置で読み取られ送信される認証情報に基づいて認証する。
【００６３】
第１アプリケーション部５３は、認証されたログインユーザーによって起動される。ここでは、第１アプリケーション部５３を、ＣＰＵ１１１がコピー処理を実行するためのアプリケーションプログラムを実行する「コピーアプリ」のタスクとしている。コピー処理は、原稿読取部１３０で原稿を読み取る読取処理と、画像形成部１４０で画像を形成する画像形成処理と、を含む。この際、読取処理を実行するためのパラメータを設定するための設定画面、および画像形成処理を実行するためのパラメータを設定するための設定画面を、ユーザー認証部５１から入力される装置識別情報で特定される装置に出力し、その装置にユーザーが入力するパラメータを受け付ける。装置識別情報がＭＦＰ１００を特定する場合は、設定画面を表示部１６３に表示し、ユーザーが操作部１６５に入力するパラメータを受け付ける。装置識別情報がＰＣを特定する場合は、設定画面をＰＣに送信し、ユーザーがＰＣに入力するパラメータを、ＰＣから受信する。そして、第１アプリケーション部５３は、受け付けられたパラメータに従って、原稿読取部１３０および画像形成部１４０を制御するためのアプリコマンドを生成し、生成されたアプリコマンドおよびユーザー認証部５１から入力されるログインユーザーが操作する装置の装置識別情報を調停部６３に出力する。
【００６４】
第２アプリケーション部５５は、認証されたログインユーザーによって起動される。ここでは、第２アプリケーション部５５を、ＣＰＵ１１１がスキャン処理を実行するためのアプリケーションプログラムを実行する「スキャンアプリ」のタスクとしている。スキャン処理は、原稿読取部１３０で原稿を読み取る読取処理と、データを外部に送信するデータ送信処理と、を実行する。この際に、読取処理を実行するためのパラメータを設定するための設定画面と、およびデータ送信処理を実行するためのパラメータを設定するための設定画面と、をユーザー認証部５１から入力される装置識別情報で特定される装置に出力し、その装置にユーザーが入力するパラメータを受け付ける。そして、第２アプリケーション部５５は、受け付けられたパラメータに従って、原稿読取部１３０と、ネットワークコントローラ１１２と、を制御するためのアプリコマンドを生成し、生成されたアプリコマンドおよびユーザー認証部５１から入力されるログインユーザーが操作する装置の装置識別情報を調停部６３に出力する。
【００６５】
第３アプリケーション部５７は、認証されたログインユーザーによって起動される。ここでは、第３アプリケーション部５７を、ＣＰＵ１１１がプリント処理を実行するためのアプリケーションプログラムを実行する「プリントアプリ」のタスクとしている。プリント処理は、ネットワークコントローラ１１２でプリントデータを受信する受信処理、プリントデータに含まれるアカウントおよびパスワードの組を抽出し、ユーザー認証部５１による認証させる処理、および画像形成部１４０で画像を形成する画像形成処理と、を含む。第３アプリケーション部５７は、プリントデータから画像形成処理を実行するためのパラメータを抽出し、抽出されたパラメータに従って、画像形成部１４０を制御するためのアプリコマンドを生成し、生成されたアプリコマンドおよびユーザー認証部５１から入力されるログインユーザーが操作する装置の装置識別情報を調停部６３に出力する。
【００６６】
以下、第１アプリケーション部５３が出力するアプリコマンドをコピーアプリコマンドといい、第２アプリケーション部５５が出力するアプリコマンドをスキャンアプリコマンドといい、第３アプリケーション部５７が出力するアプリコマンドをプリントアプリコマンドという。
【００６７】
動作モード切換部５９は、動作モードを、通常モードと省電力モードとのいずれかに切り換える、省電力モードは、通常モードよりも消費電力の小さい動作モードである。動作モード切換部５９は、認証されたログインユーザーによる操作に従って、動作モードを、通常モードと省電力モードとのいずれかに設定する。動作モード切換部５９は、動作モード切換画面を、ユーザー認証部５１から入力される装置識別情報で特定される装置に出力し、その装置にユーザーが入力する操作に従って動作モードを設定する。ユーザーが操作パネル１６０を使用する場合、表示部１６３に動作モード切換画面を表示し、ユーザーが、動作モード切換画面に従って、通常モードを指定する領域を指示すれば、動作モードを通常モードに設定し、省電力モードを指定する領域を指示すれば、動作モードを通常モードに設定する。動作モード切換部５９は、ユーザーがネットワークに接続されたＰＣを用いてＭＦＰ１００を操作する場合、ネットワークコントローラ１１２を介して動作モード切換画面を、ＰＣに送信する。ＰＣは、動作モード切換画面を受信すると、動作モード切換画面をディスプレイに表示し、ユーザーが、動作モード切換画面に従って通常モードを指定する領域を指示すれば、動作モードを通常モードに設定する指示を受け付け、ＭＦＰ１００に通常モードに設定する指示を送信し、ユーザーが省電力モードを指定する領域を指示すれば、動作モードを省電力モードに設定する指示を受け付け、ＭＦＰ１００に省電力モードに設定する指示を送信する。動作モード切換部５９は、ネットワークコントローラ１１２がＰＣから通常モードまたは省電力モードに設定する指示を受信すると、受信された指示に従って、動作モードを通常モードまたは省電力モードのいずれかに設定する。動作モード切換部５９は、設定した動作モードと装置識別情報との組を、調停部６３に出力する。
【００６８】
調停部６３は、第１〜第３アプリケーション部５３，５５，５７のいずれかからアプリコマンドと装置識別情報との組が入力され、アプリコマンドを、デフォルト変換部６５、コピープラグイン変換部６７、スキャンプラグイン変換部６９およびプリントプラグイン変換部７１のいずれかに出力する。
【００６９】
デフォルト変換部６５は、調停部６３からアプリコマンドが入力されることに応じて、アプリコマンドを１以上のオペレーティングコマンドに変換し、１以上のオペレーティングコマンドをＯＳ部７３に出力する。オペレーティングコマンドは、データを入力する種別のオペレーティングコマンドと、データを出力する種別のオペレーティングコマンドと、を含む。
【００７０】
アプリコマンドは、第１アプリケーション部５３、第２アプリケーション部５５、第３アプリケーション部５７それぞれが出力するアプリコマンドを含む。第１アプリケーション部５３が出力するアプリコマンドは、原稿読取部１３０と画像形成部１４０とを制御するためのアプリコマンドである。したがって、デフォルト変換部６５は、第１アプリケーション部５３が出力するアプリコマンドは、原稿読取部１３０が出力するデータを入力する種別のオペレーティングコマンドと、画像形成部１４０に画像を形成させるためのデータを出力する種別のオペレーティングコマンドと、に変更する。
【００７１】
第２アプリケーション部５５が出力するアプリコマンドは、原稿読取部１３０とネットワークコントローラ１１２とを制御するためのアプリコマンドである。したがって、デフォルト変換部６５は、第２アプリケーション部５５が出力するアプリコマンドを、原稿読取部１３０が出力するデータを入力する種別のオペレーティングコマンドと、ネットワークコントローラ１１２にデータを送信させるためのデータを出力する種別のオペレーティングコマンドと、に変更する。
【００７２】
第３アプリケーション部５７が出力するアプリコマンドは、ネットワークコントローラ１１２と画像形成部１４０とを制御するためのアプリコマンドである。したがって、デフォルト変換部６５は、第３アプリケーション部５７が出力するアプリコマンドを、ネットワークコントローラ１１２により受信されるデータを入力する種別のオペレーティングコマンドと、画像形成部１４０に画像を形成させるためのデータを出力する種別のオペレーティングコマンドと、に変更する。
【００７３】
オペレーティングコマンドは、第１〜第Ｎ圧縮・伸張器１３１−１〜Ｎを特定する情報と、データを特定するアドレス情報と、圧縮処理または伸張処理のいずれかを示す処理識別情報と、を含む。
【００７４】
デフォルト変換部６５は、第１〜第Ｎ圧縮・伸張器１３１−１〜Ｎのうち第１の数のデバイスをオペレーティングコマンドに割り当てる。デフォルト変換部６５が、オペレーティングコマンドに第１〜第Ｎ圧縮・伸張器１３１−１〜Ｎを割り当てる第１の数は、ＲＯＭ１１３に記憶されたデフォルトテーブルによってアプリコマンドごとに予め定められている。デフォルト変換部６５が、第１〜第Ｎ圧縮・伸張器１３１−１〜Ｎのうちから予め定められたデバイスを割り当てたオペレーティングコマンドを、第１の種類のオペレーティングコマンドという。
【００７５】
図７は、デフォルトテーブルの一例を示す図である。図７を参照して、デフォルトテーブルは、デフォルトレコードを含む。デフォルトレコードは、コマンド識別情報の項目と、処理識別情報の項目と、個数の項目と、デバイス識別情報の項目と、を含む。ここでは、Ｎ＝１８とし、メイン回路１１０が、１８個の第１〜第１８圧縮・伸張器１３１−１〜１８を備える場合におけるデフォルトテーブルを示している。以下、Ｎ＝１８の場合について説明する。
【００７６】
コマンド識別情報の項目は、アプリコマンドを識別するためのコマンド識別情報が設定される。処理識別情報の項目は、圧縮処理および伸張処理の別を示し、圧縮処理に対して処理識別情報「圧縮」が設定され、伸張処理に対して処理識別情報「伸張」が設定される。個数の項目は、１８個の第１〜第１８圧縮・伸張器１３１−１〜１８のうちからオペレーティングコマンドに割り当てが可能なデバイスの数が設定される。デバイス識別情報の項目は、１８個の第１〜第１８圧縮・伸張器１３１−１〜１８のうちからオペレーティングコマンドへの割り当てが可能な複数のデバイスそれぞれを識別するためのデバイス識別情報が割り当てられる。ここでは、第１〜第１８圧縮・伸張器１３１−１〜１８のデバイス識別情報を、符号中で「−」の後の「１」〜「１８」の数字としている。例えば、第１圧縮・伸張器１３１−１のデバイス識別情報は「１」であり、第２圧縮・伸張器１３１−２のデバイス識別情報は「２」であり、第１８圧縮・伸張器１３１−１８のデバイス識別情報は「１８」である。
【００７７】
第１アプリケーション部５３が出力するアプリコマンドのコマンド識別情報「コピー」がコマンド識別情報の項目に設定され、処理識別情報の項目に「圧縮」が設定されたデフォルトレコードは、個数の項目に「４」が設定され、デバイス識別情報の項目に「１、２、３、４」が設定される。コマンド識別情報の項目にコマンド識別情報「コピー」が設定され、処理識別情報の項目に「伸張」が設定されたデフォルトレコードは、個数の項目に「５」が設定され、デバイス識別情報の項目に「９、１０、１１、１２、１３」が設定される。このため、デフォルト変換部６５は、第１アプリケーション部５３からアプリコマンドが入力される場合、そのアプリコマンドを、デバイス識別情報「１」、「２」、「３」、「４」の４つの第１〜第４圧縮・伸張器１３１−１〜４を用い、圧縮処理を示す処理識別情報「圧縮」を含むオペレーティングコマンドと、デバイス識別情報「９」、「１０」、「１１」、「１２」、「１３」の５つの第９〜第１３圧縮・伸張器１３１−９〜１３を用い、伸張処理を示す処理識別情報「伸張」を含むオペレーティングコマンドと、に変換する。
【００７８】
第２アプリケーション部５５が出力するアプリコマンドのコマンド識別情報「スキャン送信」がコマンド識別情報の項目に設定され、処理識別情報の項目に「圧縮」が設定されたデフォルトレコードは、個数の項目に「４」が設定され、デバイス識別情報の項目に「１、２、３、４」が設定される。コマンド識別情報の項目にコマンド識別情報「スキャン送信」が設定され、処理識別情報の項目に「伸張」が設定されたデフォルトレコードは、個数の項目に「５」が設定され、デバイス識別情報の項目に「１４、１５、１６、１７、１８」が設定される。このため、デフォルト変換部６５は、第２アプリケーション部５５からアプリコマンドが入力される場合、そのアプリコマンドを、デバイス識別情報「１」、「２」、「３」、「４」の４つの第１〜第４圧縮・伸張器１３１−１〜４を用い、圧縮処理を示す処理識別情報「圧縮」を含むオペレーティングコマンドと、デバイス識別情報「１４」、「１５」、「１６」、「１７」、「１８」の５つの第１４〜第１８圧縮・伸張器１３１−１４〜１８を用い、伸張処理を示す処理識別情報「伸張」を含むオペレーティングコマンドと、に変換する。
【００７９】
第３アプリケーション部５７が出力するアプリコマンドのコマンド識別情報「プリント」がコマンド識別情報の項目に設定され、処理識別情報の項目に「圧縮」が設定されたデフォルトレコードは、個数の項目に「４」が設定され、デバイス識別情報の項目に「５、６、７、８」が設定される。コマンド識別情報の項目にコマンド識別情報「プリント」が設定され、処理識別情報の項目に「伸張」が設定されたデフォルトレコードは、個数の項目に「５」が設定され、デバイス識別情報の項目に「９、１０、１１、１２、１３」が設定される。このため、デフォルト変換部６５は、第３アプリケーション部５７からアプリコマンドが入力される場合、そのアプリコマンドを、デバイス識別情報「５」、「６」、「７」、「８」の４つの第５〜第８圧縮・伸張器１３１−５〜８を用い、圧縮処理を示す処理識別情報「圧縮」を含むオペレーティングコマンドと、デバイス識別情報「９」、「１０」、「１１」、「１２」、「１３」の５つの第９〜第１３圧縮・伸張器１３１−９〜１３を用い、伸張処理を示す処理識別情報「伸張」を含むオペレーティングコマンドと、に変換する。
【００８０】
図６に戻って、コピープラグイン変換部６７は、ＣＰＵ１１１がコピープラグイン変換プログラムを実行するタスクである。したがって、ＭＦＰ１００に、コピープラグイン変換プログラムがインストールされていることを条件に、ＣＰＵ１１１が有する機能である。コピープラグイン変換部６７は、調停部６３から第１アプリケーション部５３が出力するアプリコマンドが入力される。第１アプリケーション部５３が出力するアプリコマンドは、原稿読取部１３０と画像形成部１４０とを制御するためのアプリコマンドである。したがって、コピープラグイン変換部６７は、第１アプリケーション部５３が出力するアプリコマンドを、原稿読取部１３０が出力するデータを圧縮処理するオペレーティングコマンドと、画像形成部１４０に画像を形成させるためのデータを伸張処理するオペレーティングコマンドと、に変換する。オペレーティングコマンドは、第１〜第１８圧縮・伸張器１３１−１〜１８を特定する情報と、データを特定するアドレス情報と、圧縮処理または伸張処理のいずれかを示す処理識別情報と、を含む。
【００８１】
コピープラグイン変換部６７は、オペレーティングコマンドに、第１〜第１８圧縮・伸張器１３１−１〜１８を割り当てる第２の数を予め定めている。例えば、インストール時に、オペレーティングコマンドに割り当てる第１〜第１８圧縮・伸張器１３１−１〜１８を定めたコピー最速化テーブルをＥＥＰＲＯＭ１１５に記憶しておく。ここでは、圧縮処理の処理識別情報を含むオペレーティングコマンドに対して、第１〜第８圧縮・伸張器１３１−１〜８を割り当て、伸張処理の処理識別情報を含むオペレーティングコマンドに対して、第９〜第１８圧縮・伸張器１３１−９〜１８を割り当てる。コピープラグイン変換部６７が、第１〜第１８圧縮・伸張器１３１−１〜１８のうちからオペレーティングコマンドに割り当てる第２の数は「１８」であり、デフォルト変換部６５が、第１アプリケーション部５３が出力するアプリコマンドを変換するオペレーティングコマンドに対して割り当てる第１の数は圧縮処理のために「４」、伸張処理のために「５」の合計「９」である。圧縮処理および伸張処理は、データ量が同じであれば、第１〜第１８圧縮・伸張器１３１−１〜１８のうちから用いる数が多いほど処理速度が速い。このため、第１アプリケーション部５３が出力するアプリコマンドを、コピープラグイン変換部６７が実行する処理速度は、デフォルト変換部６５が実行する処理速度よりも早い。コピープラグイン変換部６７が、第１アプリケーション部５３が出力するアプリコマンドを変換したオペレーティングコマンドであって、第１〜第１８圧縮・伸張器１３１−１〜１８のすべてを割り当てたオペレーティングコマンドは、第２の種類のオペレーティングコマンドである。
【００８２】
コピープラグイン変換部６７は、コピーマルチ実行部７５を含む。第１アプリケーション部５３がコピー処理を実行し、アプリコマンドを出力した後に、ネットワークコントローラ１１２がプリントデータを受信する場合がある。この場合、第３アプリケーション部５７がプリント処理を実行し、アプリコマンドを出力する。第３のアプリケーション部５７が出力するアプリコマンドは、ネットワークコントローラ１１２と画像形成部１４０とを制御するためのアプリコマンドであり、ネットワークコントローラ１１２が受信するプリントデータを入力する処理を含む。
【００８３】
コピープラグイン変換部６７は、第３アプリケーション部５７がアプリコマンドを出力する前は、第２の種類のオペレーティングコマンドに、第１〜第１８圧縮・伸張器１３１−１〜１８のすべてを割り当てている。このため、コピーマルチ実行部７５は、第１〜第１８圧縮・伸張器１３１−１〜１８のすべてを割り当てた第２の種類のオペレーティングコマンドをＯＳ部７３に出力した後、ＯＳ部７３において第２の種類のオペレーティングコマンドが実行されている最中に、調停部６３から第３アプリケーション部５７が出力するアプリコマンドが入力されると、第３アプリケーション部５７が出力するアプリコマンドにより特定される処理のうちデータを入力する処理をＯＳ部７３に実行させるようにして、ネットワークコントローラ１１２により受信されるプリントデータが失われないようにする。
【００８４】
具体的には、第３アプリケーション部５７が出力するアプリコマンドを、第１〜第１８圧縮・伸張器１３１−１〜１８のうちから１以上を入力用のデバイスとして割り当てたオペレーティングコマンドに変換する。第１〜第１８圧縮・伸張器１３１−１〜１８のうちから１以上を入力用のデバイスとして割り当てたオペレーティングコマンドに変換する。第３アプリケーション部５７が出力するアプリコマンドにより特定される処理のうちデータを入力する処理をＯＳ部７３に実行させるためのオペレーティングコマンドであって、第１〜第１８圧縮・伸張器１３１−１〜１８のうちから１以上を入力用のデバイスとして割り当てられたオペレーティングコマンドが、第３の種類のオペレーティングコマンドである。
【００８５】
さらに、コピーマルチ実行部７５は、第１アプリケーション部５３が出力するアプリコマンドに対応する処理をＯＳ部７３に継続して実行させるために、第１〜第１８圧縮・伸張器１３１−１〜１８のうち第３の種類のオペレーティングコマンドに割り当てたデバイス以外のデバイスを、第１アプリケーション部５３が出力するアプリコマンドを変換したオペレーティングコマンドに割り当てる。第１アプリケーション部５３が出力するアプリコマンドを変換したオペレーティングコマンドであって、第１〜第１８圧縮・伸張器１３１−１〜１８のうち第３の種類のオペレーティングコマンドに割り当てたデバイス以外のデバイスを割り当てたオペレーティングコマンドが第４の種類のオペレーティングコマンドである。
【００８６】
図８は、コピー最速化テーブルの一例を示す図である。図８を参照して、コピー最速化テーブルは、コピー最速化レコードを含む。コピー最速化レコードは、コマンド識別情報の項目と、処理識別情報の項目と、シングルジョブの項目と、マルチジョブの項目と、を含む。シングルジョブの項目およびマルチジョブの項目は、それぞれ、個数の項目と、デバイス識別情報の項目と、を含む。
【００８７】
コマンド識別情報の項目は、アプリコマンドを識別するためのコマンド識別情報が設定される。処理識別情報の項目は、圧縮処理および伸張処理の別を示し、圧縮処理に対して処理識別情報「圧縮」が設定され、伸張処理に対して処理識別情報「伸張」が設定される。シングルジョブの項目は、第２の種類のオペレーティングコマンドに割り当てるデバイスに関する情報が設定され、個数の項目と、デバイス識別情報の項目とを含む。シングルジョブの項目における個数の項目は、１８個の第１〜第１８圧縮・伸張器１３１−１〜１８のうち第２の種類のオペレーティングコマンドに割り当てられるデバイスの数が設定される。シングルジョブの項目におけるデバイス識別情報の項目は、１８個の第１〜第１８圧縮・伸張器１３１−１〜１８のうちから第２の種類のオペレーティングコマンドに割り当てられる複数のデバイスそれぞれを識別するためのデバイス識別情報が設定される。
【００８８】
マルチジョブの項目は、第３の種類のオペレーティングコマンドおよび第４の種類のオペレーティングコマンドに、それぞれ割り当てるデバイスに関する情報が設定され、個数の項目と、デバイス識別情報の項目とを含む。マルチジョブの項目における個数の項目は、１８個の第１〜第１８圧縮・伸張器１３１−１〜１８のうち第３の種類のオペレーティングコマンドまたは第４の種類におけるオペレーティングコマンドに割り当てられるデバイスの数が設定される。マルチジョブの項目におけるデバイス識別情報の項目は、１８個の第１〜第１８圧縮・伸張器１３１−１〜１８のうち第３の種類のオペレーティングコマンドまたは第４の種類におけるオペレーティングコマンドに割り当てられる複数のデバイスそれぞれを識別するためのデバイス識別情報が設定される。
【００８９】
第１アプリケーション部５３が出力するアプリコマンドのコマンド識別情報「コピー」がコマンド識別情報の項目に設定され、処理識別情報の項目に処理識別情報「圧縮」が設定されたコピー最速化レコードは、シングルジョブの項目の個数の項目に「８」が設定され、シングルジョブの項目のデバイス識別情報の項目に「１、２、３、４，５，６，７，８」が設定され、マルチジョブの項目の個数の項目に「７」が設定され、マルチジョブの項目のデバイス識別情報の項目に「１、２、３、４，５，６，７」が設定される。
【００９０】
コマンド識別情報の項目にコマンド識別情報「コピー」が設定され、処理識別情報の項目に処理識別情報「伸張」が設定されたコピー最速化レコードは、シングルジョブの項目の個数の項目に「１０」が設定され、シングルジョブの項目のデバイス識別情報の項目に「９、１０、１１、１２、１３、１４、１５、１６，１７，１８」が設定され、マルチジョブの項目の個数の項目に「１０」が設定され、マルチジョブの項目のデバイス識別情報の項目に「９、１０、１１、１２、１３、１４、１５、１６，１７，１８」が設定される。
【００９１】
第２アプリケーション部５５が出力するアプリコマンドのコマンド識別情報「スキャン送信」がコマンド識別情報の項目に設定され、処理識別情報の項目に処理識別情報「圧縮」が設定されたコピー最速化レコードは、シングルジョブの項目およびマルチジョブの項目それぞれの個数の項目に「０」が設定され、デバイス識別情報の項目に何も設定されない。コマンド識別情報の項目にコマンド識別情報「スキャン送信」が設定され、処理識別情報の項目に処理識別情報「伸張」が設定されたコピー最速化レコードは、シングルジョブの項目およびマルチジョブの項目それぞれの個数の項目に「０」が設定され、デバイス識別情報の項目に何も設定されない。コピープラグイン変換部６７には、第２アプリケーション部５５が出力するアプリコマンドが入力されることがないからである。
【００９２】
第３アプリケーション部５７が出力するアプリコマンドのコマンド識別情報「プリント」がコマンド識別情報の項目に設定され、処理識別情報の項目に処理識別情報「圧縮」が設定されたコピー最速化レコードは、シングルジョブの項目の個数の項目に「０」が設定され、デバイス識別情報の項目に何も設定されず、マルチジョブの項目の個数の項目に「１」が設定され、マルチジョブの項目のデバイス識別情報の項目に「８」が設定される。コマンド識別情報の項目にコマンド識別情報「プリント」が設定され、処理識別情報の項目に処理識別情報「伸張」が設定されたコピー最速化レコードは、シングルジョブの項目およびマルチジョブの項目それぞれの個数の項目に「０」が設定され、デバイス識別情報の項目に何も設定されない。
【００９３】
このため、コピープラグイン変換部６７は、第１アプリケーション部５３からアプリコマンドが入力される場合、そのアプリコマンドを、デバイス識別情報「１」、「２」、「３」、「４」、「５」、「６」、「７」、「８」の８個の第１〜第８圧縮・伸張器１３１−１〜８を用い、圧縮処理を示す処理識別情報「圧縮」を含む第２の種類のオペレーティングコマンドと、デバイス識別情報「９」、「１０」、「１１」、「１２」、「１３」、「１４」、「１５」、「１６」、「１７」、「１８」の１０個の第９〜第１８圧縮・伸張器１３１−９〜１８を用い、伸張処理を示す処理識別情報「伸張」を含む第２の種類のオペレーティングコマンドと、に変換する。
【００９４】
さらに、コピーマルチ実行部７５は、第３アプリケーション部５７からアプリコマンドが入力される場合、第１アプリケーション部５３から入力されるアプリコマンドを、デバイス識別情報「１」、「２」、「３」、「４」、「５」、「６」、「７」の７個の第１〜第７圧縮・伸張器１３１−１〜７を用い、圧縮処理を示す処理識別情報「圧縮」を含む第４の種類のオペレーティングコマンドと、デバイス識別情報「９」、「１０」、「１１」、「１２」、「１３」、「１４」、「１５」、「１６」、「１７」、「１８」の１０個の第９〜第１８圧縮・伸張器１３１−９〜１８を用い、伸張処理を示す処理識別情報「伸張」を含む第４の種類のオペレーティングコマンドと、に変換するとともに、第３アプリケーション部５７から入力されるアプリコマンドを、デバイス識別情報「８」の１個の第８圧縮・伸張器１３１−８を用い、圧縮処理を示す処理識別情報「圧縮」を含む第３の種類のオペレーティングコマンドに変換する。
【００９５】
図６に戻って、スキャンプラグイン変換部６９は、ＣＰＵ１１１がスキャンプラグイン変換プログラムを実行するタスクである。したがって、ＭＦＰ１００に、スキャンプラグイン変換プログラムがインストールされていることを条件に、ＣＰＵ１１１が有する機能である。スキャンプラグイン変換部６９は、調停部６３から第２アプリケーション部５５が出力するアプリコマンドが入力される。第２アプリケーション部５５が出力するアプリコマンドは、原稿読取部１３０と、ネットワークコントローラ１１２と、を制御するためのアプリコマンドである。したがって、スキャンプラグイン変換部６９は、第２アプリケーション部５５が出力するアプリコマンドを、原稿読取部１３０が出力するデータを圧縮処理するオペレーティングコマンドと、ネットワークコントローラ１１２に送信させるためのデータを伸張処理するオペレーティングコマンドと、に変換する。オペレーティングコマンドは、第１〜第１８圧縮・伸張器１３１−１〜１８を特定する情報と、データを特定するアドレス情報と、圧縮処理または伸張処理のいずれかを示す処理識別情報と、を含む。
【００９６】
スキャンプラグイン変換部６９は、オペレーティングコマンドに、第１〜第１８圧縮・伸張器１３１−１〜１８を割り当てる第２の数を予め定めている。例えば、インストール時に、オペレーティングコマンドに割り当てる第１〜第１８圧縮・伸張器１３１−１〜１８を定めたスキャン最速化テーブルをＥＥＰＲＯＭ１１５に記憶しておく。ここでは、圧縮処理の処理識別情報を含むオペレーティングコマンドに対して、第１〜第８圧縮・伸張器１３１−１〜８を割り当て、伸張処理の処理識別情報を含むオペレーティングコマンドに対して、第９〜第１８圧縮・伸張器１３１−９〜１８を割り当てる。スキャンプラグイン変換部６９が、第１〜第１８圧縮・伸張器１３１−１〜１８のうちからオペレーティングコマンドに割り当てる第２の数は「１８」であり、デフォルト変換部６５が、第２アプリケーション部５５が出力するアプリコマンドを変換するオペレーティングコマンドに対して割り当てる第１の数は圧縮処理のために「４」、伸張処理のために「５」の合計「９」である。圧縮処理および伸張処理は、データ量が同じであれば、第１〜第１８圧縮・伸張器１３１−１〜１８のうちから用いる数が多いほど処理速度が速い。このため、第２アプリケーション部５５が出力するアプリコマンドを、スキャンプラグイン変換部６９が実行する処理速度は、デフォルト変換部６５が実行する処理速度よりも早い。スキャンプラグイン変換部６９が、第２アプリケーション部５５が出力するアプリコマンドを変換したオペレーティングコマンドであって、第１〜第１８圧縮・伸張器１３１−１〜１８のすべてを割り当てたオペレーティングコマンドは、第２の種類のオペレーティングコマンドである。
【００９７】
スキャンプラグイン変換部６９は、スキャンマルチ実行部７７を含む。第２アプリケーション部５５がスキャン送信ジョブを実行し、アプリコマンドを出力した後に、ネットワークコントローラ１１２がプリントデータを受信する場合がある。この場合、第３アプリケーション部５７がプリント処理を実行し、アプリコマンドを出力する。第３アプリケーション部５７が出力するアプリコマンドは、ネットワークコントローラ１１２と画像形成部１４０とを制御するためのアプリコマンドであり、ネットワークコントローラ１１２が受信するプリントデータを入力する処理を含む。
【００９８】
スキャンプラグイン変換部６９は、第３アプリケーション部５７がアプリコマンドを出力する前は、第２の種類のオペレーティングコマンドに、第１〜第１８圧縮・伸張器１３１−１〜１８のすべてを割り当てている。このため、スキャンマルチ実行部７７は、第１〜第１８圧縮・伸張器１３１−１〜１８のすべてを割り当てた第２の種類のオペレーティングコマンドをＯＳ部７３に出力した後、ＯＳ部７３において第２の種類のオペレーティングコマンドが実行されている最中に、調停部６３から第３アプリケーション部５７が出力するアプリコマンドが入力されると、第３アプリケーション部５７が出力するアプリコマンドにより特定される処理のうちデータを入力する処理をＯＳ部７３に実行させるようにして、ネットワークコントローラ１１２により受信されるプリントデータが失われないようにする。
【００９９】
具体的には、第３アプリケーション部５７が出力するアプリコマンドを、第１〜第１８圧縮・伸張器１３１−１〜１８のうちから１以上を入力用のデバイスとして割り当てたオペレーティングコマンドに変換する。第３アプリケーション部５７が出力するアプリコマンドにより特定される処理のうちデータを入力する処理をＯＳ部７３に実行させるためのオペレーティングコマンドであって、第１〜第１８圧縮・伸張器１３１−１〜１８のうちから１以上を入力用のデバイスとして割り当てられたオペレーティングコマンドが、第３の種類のオペレーティングコマンドである。
【０１００】
さらに、スキャンマルチ実行部７７は、第２アプリケーション部５５が出力するアプリコマンドに対応する処理をＯＳ部７３に継続して実行させるために、第１〜第１８圧縮・伸張器１３１−１〜１８のうち第３の種類のオペレーティングコマンドに割り当てたデバイス以外のデバイスを、第２アプリケーション部５５が出力するアプリコマンドを変換したオペレーティングコマンドに割り当てる。第２アプリケーション部５５が出力するアプリコマンドを変換したオペレーティングコマンドであって、第１〜第１８圧縮・伸張器１３１−１〜１８のうち第３の種類のオペレーティングコマンドに割り当てたデバイス以外のデバイスを割り当てたオペレーティングコマンドが第４の種類のオペレーティングコマンドである。
【０１０１】
図９は、スキャン最速化テーブルの一例を示す図である。図９を参照して、スキャン最速化テーブルは、スキャン最速化レコードを含む。スキャン最速化レコードは、図８に示したコピー最適化レコードと同じ項目を含む。
【０１０２】
第１アプリケーション部５３が出力するアプリコマンドのコマンド識別情報「コピー」がコマンド識別情報の項目に設定され、処理識別情報の項目に処理識別情報「圧縮」が設定されたスキャン最速化レコードは、シングルジョブの項目およびマルチジョブの項目それぞれの個数の項目に「０」が設定され、デバイス識別情報の項目に何も設定されない。コマンド識別情報の項目にコマンド識別情報「スキャン送信」が設定され、処理識別情報の項目に処理識別情報「伸張」が設定されたスキャン最速化レコードは、シングルジョブの項目およびマルチジョブの項目それぞれの個数の項目に「０」が設定され、デバイス識別情報の項目に何も設定されない。スキャンプラグイン変換部６９には、第１アプリケーション部５３が出力するアプリコマンドが入力されることがないからである。
【０１０３】
第２アプリケーション部５５が出力するアプリコマンドのコマンド識別情報「スキャン送信」がコマンド識別情報の項目に設定され、処理識別情報の項目に処理識別情報「圧縮」が設定されたスキャン最速化レコードは、シングルジョブの項目の個数の項目に「８」が設定され、シングルジョブの項目のデバイス識別情報の項目に「１、２、３、４，５，６，７，８」が設定され、マルチジョブの項目の個数の項目に「７」が設定され、マルチジョブの項目のデバイス識別情報の項目に「１、２、３、４，５，６，７」が設定される。コマンド識別情報の項目にコマンド識別情報「スキャン送信」が設定され、処理識別情報の項目に処理識別情報「伸張」が設定されたコピー最速化レコードは、シングルジョブの項目の個数の項目に「１０」が設定され、シングルジョブの項目のデバイス識別情報の項目に「９、１０、１１、１２、１３、１４、１５、１６，１７，１８」が設定され、マルチジョブの項目の個数の項目に「１０」が設定され、マルチジョブの項目のデバイス識別情報の項目に「９、１０、１１、１２、１３、１４、１５、１６，１７，１８」が設定される。
【０１０４】
第３アプリケーション部５７が出力するアプリコマンドのコマンド識別情報「プリント」がコマンド識別情報の項目に設定され、処理識別情報の項目に処理識別情報「圧縮」が設定されたスキャン最速化レコードは、シングルジョブの項目の個数の項目に「０」が設定され、デバイス識別情報の項目に何も設定されず、マルチジョブの項目の個数の項目に「１」が設定され、マルチジョブの項目のデバイス識別情報の項目に「８」が設定される。コマンド識別情報の項目にコマンド識別情報「プリント」が設定され、処理識別情報の項目に処理識別情報「伸張」が設定されたスキャン最速化レコードは、シングルジョブの項目およびマルチジョブの項目それぞれの個数の項目に「０」が設定され、デバイス識別情報の項目に何も設定されない。
【０１０５】
このため、スキャンプラグイン変換部６９は、第２アプリケーション部５５からアプリコマンドが入力される場合、そのアプリコマンドを、デバイス識別情報「１」、「２」、「３」、「４」、「５」、「６」、「７」、「８」の８個の第１〜第８圧縮・伸張器１３１−１〜８を用い、圧縮処理を示す処理識別情報「圧縮」を含む第２の種類のオペレーティングコマンドと、デバイス識別情報「９」、「１０」、「１１」、「１２」、「１３」、「１４」、「１５」、「１６」、「１７」、「１８」の１０個の第９〜第１８圧縮・伸張器１３１−９〜１８を用い、伸張処理を示す処理識別情報「伸張」を含む第２の種類のオペレーティングコマンドと、に変換する。
【０１０６】
さらに、スキャンマルチ実行部７７は、第３アプリケーション部５７からアプリコマンドが入力される場合、第２アプリケーション部５５から入力されるアプリコマンドを、デバイス識別情報「１」、「２」、「３」、「４」、「５」、「６」、「７」の７個の第１〜第７圧縮・伸張器１３１−１〜７を用い、圧縮処理を示す処理識別情報「圧縮」を含む第４の種類のオペレーティングコマンドと、デバイス識別情報「９」、「１０」、「１１」、「１２」、「１３」、「１４」、「１５」、「１６」、「１７」、「１８」の１０個の第９〜第１８圧縮・伸張器１３１−９〜１８を用い、伸張処理を示す処理識別情報「伸張」を含む第４の種類のオペレーティングコマンドと、に変換するとともに、第３アプリケーション部５７から入力されるアプリコマンドを、デバイス識別情報「８」の１個の第８圧縮・伸張器１３１−８を用い、圧縮処理を示す処理識別情報「圧縮」を含む第３の種類のオペレーティングコマンドに変換する。
【０１０７】
図６に戻って、プリントプラグイン変換部７１は、ＣＰＵ１１１がプリントプラグイン変換プログラムを実行するタスクである。したがって、ＭＦＰ１００に、プリントプラグイン変換プログラムがインストールされていることを条件に、ＣＰＵ１１１が有する機能である。プリントプラグイン変換部７１は、調停部６３から第３アプリケーション部５７が出力するアプリコマンドが入力される。第３アプリケーション部５７が出力するアプリコマンドは、ネットワークコントローラ１１２と、画像形成部１４０とを制御するためのアプリコマンドである。したがって、プリントプラグイン変換部７１は、第３アプリケーション部５７が出力するアプリコマンドを、ネットワークコントローラ１１２が受信するデータを圧縮処理するオペレーティングコマンドと、画像形成部１４０に画像を形成させるためのデータを伸張処理するオペレーティングコマンドと、に変換する。オペレーティングコマンドは、第１〜第１８圧縮・伸張器１３１−１〜１８を特定する情報と、データを特定するアドレス情報と、圧縮処理または伸張処理のいずれかを示す処理識別情報と、を含む。
【０１０８】
プリントプラグイン変換部７１は、オペレーティングコマンドに、第１〜第１８圧縮・伸張器１３１−１〜１８を割り当てる第２の数を予め定めている。例えば、インストール時に、オペレーティングコマンドに割り当てる第１〜第１８圧縮・伸張器１３１−１〜１８を定めたプリント最速化テーブルをＥＥＰＲＯＭ１１５に記憶しておく。ここでは、圧縮処理の処理識別情報を含むオペレーティングコマンドに対して第１〜第８圧縮・伸張器１３１−１〜８を割り当て、伸張処理の処理識別情報を含むオペレーティングコマンドに対して第９〜第１８圧縮・伸張器１３１−９〜１８を割り当てる。プリントプラグイン変換部７１が、第１〜第１８圧縮・伸張器１３１−１〜１８のうちからオペレーティングコマンドに割り当てる第２の数は「１８」であり、デフォルト変換部６５が、第３アプリケーション部５７が出力するアプリコマンドを変換するオペレーティングコマンドに対して割り当てる第１の数は圧縮処理のために「４」、伸張処理のために「５」の合計「９」である。圧縮処理および伸張処理は、データ量が同じであれば、第１〜第１８圧縮・伸張器１３１−１〜１８のうちから用いる数が多いほど処理速度が速い。このため、第３アプリケーション部５７が出力するアプリコマンドを、プリントプラグイン変換部７１が実行する処理速度は、デフォルト変換部６５が実行する処理速度よりも早い。プリントプラグイン変換部７１が、第３アプリケーション部５７が出力するアプリコマンドを変換したオペレーティングコマンドであって、第１〜第１８圧縮・伸張器１３１−１〜１８のすべてを割り当てたオペレーティングコマンドは、第２の種類のオペレーティングコマンドである。
【０１０９】
プリントプラグイン変換部７１は、プリントマルチ実行部７９を含む。第３アプリケーション部５７がスキャン送信ジョブを実行し、アプリコマンドを出力した後に、原稿読取部１３０によって原稿が読み取られる場合がある。第１アプリケーション部５３がコピージョブを実行し、アプリコマンドを出力する場合、または、第２アプリケーション部５５がスキャンジョブを実行し、アプリコマンドを出力する場合である。第１アプリケーション部５３または第２アプリケーション部５５が出力するアプリコマンドは、原稿読取部１３０が出力するデータを入力する処理を含む。
【０１１０】
プリントプラグイン変換部７１は、第１アプリケーション部５３または第２アプリケーション部５５がアプリコマンドを出力する前は、第２の種類のオペレーティングコマンドに、第１〜第１８圧縮・伸張器１３１−１〜１８のすべてを割り当てている。このため、プリントマルチ実行部７９は、第１〜第１８圧縮・伸張器１３１−１〜１８のすべてを割り当てた第２の種類のオペレーティングコマンドをＯＳ部７３に出力した後、ＯＳ部７３において第２の種類のオペレーティングコマンドが実行されている最中に、調停部６３から第１アプリケーション部５３または第２アプリケーション部５５が出力するアプリコマンドが入力されると、第３アプリケーション部５７が出力するアプリコマンドにより特定される処理のうちデータを入力する処理をＯＳ部７３に実行させるようにして、原稿読取部１３０が原稿を読み取って出力するデータが失われないようにする。具体的には、第１アプリケーション部５３または第２アプリケーション部５５が出力するアプリコマンドを、第１〜第１８圧縮・伸張器１３１−１〜１８のうちから１以上を入力用のデバイスとして割り当てたオペレーティングコマンドに変換する。第１アプリケーション部５３または第２アプリケーション部５５が出力するアプリコマンドにより特定される処理のうちデータを入力する処理をＯＳ部７３に実行させるためのオペレーティングコマンドであって、第１〜第１８圧縮・伸張器１３１−１〜１８のうちから１以上を入力用のデバイスとして割り当てられたオペレーティングコマンドが、第３の種類のオペレーティングコマンドである。
【０１１１】
さらに、プリントマルチ実行部７９は、第３アプリケーション部５７が出力するアプリコマンドに対応する処理をＯＳ部７３に継続して実行させるために、第１〜第１８圧縮・伸張器１３１−１〜１８のうち第３の種類のオペレーティングコマンドに割り当てたデバイス以外のデバイスを、第３アプリケーション部５７が出力するアプリコマンドを変換したオペレーティングコマンドに割り当てる。第３アプリケーション部５７が出力するアプリコマンドを変換したオペレーティングコマンドであって、第１〜第１８圧縮・伸張器１３１−１〜１８のうち第３の種類のオペレーティングコマンドに割り当てたデバイス以外のデバイスを割り当てたオペレーティングコマンドが第４の種類のオペレーティングコマンドである。
【０１１２】
図１０は、プリント最速化テーブルの一例を示す図である。図１０を参照して、プリント最速化テーブルは、プリント最速化レコードを含む。プリント最速化レコードそれぞれは、図８に示したコピー最適化テーブルと同じ項目を含む。
【０１１３】
第１アプリケーション部５３が出力するアプリコマンドのコマンド識別情報「コピー」がコマンド識別情報の項目に設定され、処理識別情報の項目に処理識別情報「圧縮」が設定されたプリント最速化レコードは、シングルジョブの項目の個数の項目に「０」が設定され、デバイス識別情報の項目に何も設定されず、マルチジョブの項目の個数の項目に「１」が設定され、マルチジョブの項目のデバイス識別情報の項目に「８」が設定される。コマンド識別情報の項目にコマンド識別情報「コピー」が設定され、処理識別情報の項目に処理識別情報「伸張」が設定されたプリント最速化レコードは、シングルジョブの項目およびマルチジョブの項目それぞれの個数の項目に「０」が設定され、デバイス識別情報の項目に何も設定されない。
【０１１４】
第２アプリケーション部５５が出力するアプリコマンドのコマンド識別情報「スキャン送信」がコマンド識別情報の項目に設定され、処理識別情報の項目に処理識別情報「圧縮」が設定されたプリント最速化レコードは、シングルジョブの項目の個数の項目に「０」が設定され、デバイス識別情報の項目に何も設定されず、マルチジョブの項目の個数の項目に「１」が設定され、マルチジョブの項目のデバイス識別情報の項目に「８」が設定される。コマンド識別情報の項目にコマンド識別情報「スキャン」が設定され、処理識別情報の項目に処理識別情報「伸張」が設定されたプリント最速化レコードは、シングルジョブの項目およびマルチジョブの項目それぞれの個数の項目に「０」が設定され、デバイス識別情報の項目に何も設定されない。
【０１１５】
第３アプリケーション部５７が出力するアプリコマンドのコマンド識別情報「プリント」がコマンド識別情報の項目に設定され、処理識別情報の項目に処理識別情報「圧縮」が設定されたプリント最速化レコードは、シングルジョブの項目の個数の項目に「８」が設定され、シングルジョブの項目のデバイス識別情報の項目に「１、２、３、４，５，６，７，８」が設定され、マルチジョブの項目の個数の項目に「７」が設定され、マルチジョブの項目のデバイス識別情報の項目に「１、２、３、４，５，６，７」が設定される。コマンド識別情報の項目にコマンド識別情報「プリント」が設定され、処理識別情報の項目に処理識別情報「伸張」が設定されたプリント最速化レコードは、シングルジョブの項目の個数の項目に「１０」が設定され、シングルジョブの項目のデバイス識別情報の項目に「９、１０、１１、１２、１３、１４、１５、１６，１７，１８」が設定され、マルチジョブの項目の個数の項目に「１０」が設定され、マルチジョブの項目のデバイス識別情報の項目に「９、１０、１１、１２、１３、１４、１５、１６，１７，１８」が設定される。
【０１１６】
このため、プリントプラグイン変換部７１は、第３アプリケーション部５７からアプリコマンドが入力される場合、そのアプリコマンドを、デバイス識別情報「１」、「２」、「３」、「４」、「５」、「６」、「７」、「８」の８個の第１〜第８圧縮・伸張器１３１−１〜８を用い、圧縮処理を示す処理識別情報「圧縮」を含む第２の種類のオペレーティングコマンドと、デバイス識別情報「９」、「１０」、「１１」、「１２」、「１３」、「１４」、「１５」、「１６」、「１７」、「１８」の１０個の第９〜第１８圧縮・伸張器１３１−９〜１８を用い、伸張処理を示す処理識別情報「伸張」を含む第２の種類のオペレーティングコマンドと、に変換する。
【０１１７】
さらに、プリントマルチ実行部７９は、第１アプリケーション部５３または第２アプリケーション部５５からアプリコマンドが入力される場合、第３アプリケーション部５７から入力されるアプリコマンドを、デバイス識別情報「１」、「２」、「３」、「４」、「５」、「６」、「７」の７個の第１〜第７圧縮・伸張器１３１−１〜７を用い、圧縮処理を示す処理識別情報「圧縮」を含む第４の種類のオペレーティングコマンドと、デバイス識別情報「９」、「１０」、「１１」、「１２」、「１３」、「１４」、「１５」、「１６」、「１７」、「１８」の１０個の第９〜第１８圧縮・伸張器１３１−９〜１８を用い、伸張処理を示す処理識別情報「伸張」を含む第４の種類のオペレーティングコマンドと、に変換するとともに、第１アプリケーション部５３または第２アプリケーション部５５から入力されるアプリコマンドを、デバイス識別情報「８」の１個の第８圧縮・伸張器１３１−８を用い、圧縮処理を示す処理識別情報「圧縮」を含む第３の種類のオペレーティングコマンドに変換する。
【０１１８】
調停部６３は、ユーザー認証部５１から認証されたユーザーのアカウントとそのユーザーが操作する装置の装置識別情報との組が入力され、第１〜第３アプリケーション部５３，５５，５７それぞれからアプリコマンドと装置識別情報との組が入力され、動作モード切換部５９から動作モードと装置識別情報との組が入力される。調停部６３は、ユーザー認証部５１から入力されるアカウントと装置識別情報とに基づいて、第１〜第３アプリケーション部５３，５５，５７のいずれかから入力されるアプリコマンドを、それと組になる装置識別情報と同じ装置識別情報と組になるアカウントのユーザーにより指示されたものと判断する。また、調停部６３は、ユーザー認証部５１から入力されるアカウントと装置識別情報とに基づいて、動作モード切換部５９から入力される動作モードを、それと組になる装置識別情報と同じ装置識別情報と組になるアカウントのユーザーにより指示されたものと判断する。
【０１１９】
調停部６３は、デフォルト変換部６５、コピープラグイン変換部６７、スキャンプラグイン変換部６９およびプリントプラグイン変換部７１のうちから１つを所定の条件に従って決定し、決定したものに、第１〜第３アプリケーション部５３，５５，５７それぞれから入力されるアプリコマンドを出力する。所定の条件は、アカウントと、動作モードと、アプリコマンドの種類によって定まる。
【０１２０】
ＥＥＰＲＯＭ１１５に、ユーザーごとにプラグイン変換プログラムの実行可否を定めた実行可否テーブルを記憶する。実行可否テーブルは、プラグイン変換プログラムがＭＦＰ１００にインストールされる時点で、ユーザーごとにプラグイン変換プログラムの実行可否を定めた実行可否レコードが追加される。ここでは、プラグイン変換プログラムとして、コピープラグイン変換プログラム、スキャンプラグイン変換プログラムおよびプリントプラグイン変換プログラムがインストールされているので、実行可否テーブルは、ユーザーごとに、コピープラグイン変換プログラム、スキャンプラグイン変換プログラムおよびプリントプラグイン変換プログラムそれぞれの実行可否を定める。以下、具体的に説明するために、実行可否テーブルが、ユーザーＡに対して、コピープラグイン変換プログラム、スキャンプラグイン変換プログラムおよびプリントプラグイン変換プログラムのすべてを実行可に定め、ユーザーＢに対して、コピープラグイン変換プログラムのみを実行可に定め、スキャンプラグイン変換プログラムおよびプリントプラグイン変換プログラムを実行不可に定めている場合を例に説明する。
【０１２１】
なお、ここでは、実行可否テーブルを、プラグイン変換プログラムの実行可否を、ユーザーごとに定めるようにしたが、複数のユーザーを複数のグループに分類する場合には、複数のグループごとに、プラグイン変換プログラムの実行可否を定めるようにしても良い。この場合には、ユーザーが属するグループごとに、プラグイン変換プログラムの実行可否を判断することができる。
【０１２２】
調停部６３は、第１〜第３アプリケーション部５３，５５，５７のいずれかからアプリコマンドが入力される場合、実行可否テーブルによって、アプリコマンドを指示したユーザーに対してアプリコマンドに対応するプラグイン変換プログラムが実行可に定められる第１条件と、動作モードが省電力モードに設定される第２の条件とがともに成立する場合に、アプリコマンドをコピープラグイン変換部６７、スキャンプラグイン変換部６９およびプリントプラグイン変換部７１のいずれかに出力する。
【０１２３】
コピーアプリコマンドは、コピープラグイン変換プログラムに対応し、さらに、ＣＰＵ１１１がコピープラグイン変換プログラムを実行するタスクであるコピープラグイン変換部６７に対応する。スキャンアプリコマンドは、スキャンプラグイン変換プログラムに対応し、さらに、ＣＰＵ１１１がスキャンプラグイン変換プログラムを実行するタスクであるスキャンプラグイン変換部６９に対応する。プリントアプリコマンドは、プリントプラグイン変換プログラムに対応し、さらに、ＣＰＵ１１１がプリントプラグイン変換プログラムを実行するタスクであるプリントプラグイン変換部７１に対応する。このため、調停部６３は、第１アプリケーション部５３からコピーアプリコマンドが入力される場合は、コピーアプリコマンドをコピープラグイン変換部６７に出力し、第２アプリケーション部５５からスキャンアプリコマンドが入力される場合は、スキャンアプリコマンドをスキャンプラグイン変換部６９に出力し、第３アプリケーション部５７からプリントアプリコマンドが入力される場合は、プリントアプリコマンドをプリントプラグイン変換部７１に出力する。
【０１２４】
一方、調停部６３は、第１〜第３アプリケーション部５３，５５，５７のいずれかからアプリコマンドが入力される場合、第１の条件および第２の条件のいずれか一方でも成立しない場合は、アプリコマンドをデフォルト変換部６５に出力する。
【０１２５】
なお、動作モードを設けることなく、調停部６３は、第１〜第３アプリケーション部５３，５５，５７のいずれかからアプリコマンドが入力される場合、第１の条件が成立する場合に、アプリコマンドをコピープラグイン変換部６７、スキャンプラグイン変換部６９およびプリントプラグイン変換部７１のいずれかに出力するようにし、第１の条件が成立しない場合に、アプリコマンドをデフォルト変換部６５に出力するようにしてもよい。さらに、実行可否テーブルを用いることなく、調停部６３は、第１〜第３アプリケーション部５３，５５，５７のいずれかからアプリコマンドが入力される場合、第２の条件が成立する場合に、アプリコマンドをコピープラグイン変換部６７、スキャンプラグイン変換部６９およびプリントプラグイン変換部７１のいずれかに出力するようにし、第２の条件が成立しない場合に、アプリコマンドをデフォルト変換部６５に出力するようにしてもよい。
【０１２６】
調停部６３は、第１のアプリコマンドをコピープラグイン変換部６７、スキャンプラグイン変換部６９およびプリントプラグイン変換部７１のいずれかに出力した後に、第１のアプリコマンドの実行が終了する前に、第１〜第３アプリケーション部５３，５５，５７のいずれかから第２のアプリコマンドが入力される場合、第２のアプリコマンドに対する第１の条件および第２の条件の成立に係わらず、コピープラグイン変換部６７、スキャンプラグイン変換部６９およびプリントプラグイン変換部７１のうち先に出力した第１のアプリコマンドを実行しているものに、第２のアプリコマンドを出力する。そして、コピープラグイン変換部６７、スキャンプラグイン変換部６９およびプリントプラグイン変換部７１のうち先に出力した第１のアプリコマンドを実行が終了した後に、第２のアプリコマンドを継続して実行させるために、第２のアプリコマンドに対する第１の条件および第２の条件を判断し、デフォルト変換部６５、コピープラグイン変換部６７、スキャンプラグイン変換部６９およびプリントプラグイン変換部７１のいずれかに第２のアプリコマンドを出力する。
【０１２７】
調停部６３は、デフォルト変換部６５、コピープラグイン変換部６７、スキャンプラグイン変換部６９およびプリントプラグイン変換部７１のうちからアプリコマンドを出力したものから、アプリコマンドの実行結果を取得する。実行結果は、データ量を含む。データ量は、ここではページ数としている。調停部６３は、アプリコマンドの実行結果を取得すると、デフォルト変換部６５、コピープラグイン変換部６７、スキャンプラグイン変換部６９およびプリントプラグイン変換部７１のうちからアプリコマンドを出力したものを識別するためのプロセス識別情報と、アプリコマンドを識別するためのコマンド識別情報と、アプリコマンドを指示したユーザーのアカウントと、データ量との組を課金部６１に出力する。
【０１２８】
課金部６１は、ジョブの実行、換言すれば、アプリコマンドの実行に対して、ユーザーごとに課金する。具体的には、ＨＤＤ１１６に、ジョブに対する単価を定めた料金テーブルと、ユーザーごとに課金額を積算した積算テーブルと、を予め記憶している。
【０１２９】
図１１は、料金テーブルの一例を示す図である。図１１を参照して、料金テーブルは、処理識別情報の項目と、個数の項目と、単価の項目と、を含む。処理識別情報の項目は、処理識別情報の項目は、圧縮処理および伸張処理の別を示し、圧縮処理に対して処理識別情報「圧縮」が設定され、伸張処理に対して処理識別情報「伸張」が設定される。個数の項目は、１８個の第１〜第１８圧縮・伸張器１３１−１〜１８のうちから処理識別情報で特定される処理の実行に用いられたデバイスの数が設定される。単価の項目は、１ページ当たりの料金が設定される。
【０１３０】
料金テーブルは、処理識別情報ごとに、第１〜第１８圧縮・伸張器１３１−１〜１８のうちから使用されるデバイスの個数別に単価を定める。上述したように、動作モードが省電力モードの場合に使用されるデバイスの個数は、通常モードの場合に使用されるデバイスの個数よりも多い。このため、料金テーブルは、通常モードにおける単価と省電力モードにおける単価とを定め、通常モードにおける単価を、省電力モードにおける単価よりも低く設定している。
【０１３１】
図６に戻って、課金部６１は、ログインユーザーによる操作に基づいてアプリコマンドが実行されると、調停部６３からプロセス識別情報と、コマンド識別情報と、アカウントと、データ量との組が入力される。課金部６１は、料金テーブルを参照して、プロセス識別情報に対する単価を決定する。
【０１３２】
具体的には、課金部６１は、プロセス識別情報がデフォルト変換部６５を特定する場合、図７に示したデフォルトテーブルを参照して、コマンド識別情報および処理識別情報に基づいて、第１〜第１８圧縮・伸張器１３１−１〜１８のうちから使用されるデバイスの個数を、圧縮処理および伸張処理ごとに取得する。課金部６１は、プロセス識別情報がコピープラグイン変換部６７を特定する場合、図８に示したコピー最速化テーブルを参照して、コマンド識別情報および処理識別情報に基づいて、第１〜第１８圧縮・伸張器１３１−１〜１８のうちから使用されるデバイスの個数を、圧縮処理および伸張処理ごとに取得する。課金部６１は、プロセス識別情報がスキャンプラグイン変換部６９を特定する場合、図９に示したスキャン最速化テーブルを参照して、コマンド識別情報および処理識別情報に基づいて、第１〜第１８圧縮・伸張器１３１−１〜１８のうちから使用されるデバイスの個数を、圧縮処理および伸張処理ごとに取得する。課金部６１は、プロセス識別情報がプリントプラグイン変換部７１を特定する場合、図１０に示したプリント最速化テーブルを参照して、コマンド識別情報および処理識別情報に基づいて、第１〜第１８圧縮・伸張器１３１−１〜１８のうちから使用されるデバイスの個数を、圧縮処理および伸張処理ごとに取得する。そして、課金部６１は、図１１に示した料金テーブルを参照して、取得された種別ごとの個数から種別ごとの単価を取得する。
【０１３３】
例えば、プロセス識別情報がデフォルト変換部６５を特定し、コマンド識別情報が「コピー」の場合には、図７に示したデフォルトテーブルを参照して、処理機別情報「圧縮」に対する個数「４」、処理識別情報「伸張」に対する個数「５」を取得し、次に、料金テーブルを参照して、処理識別情報「圧縮」に対する単価「１０」、処理識別情報「伸張」に対する単価「２０」を取得する。課金部６１は、プロセス識別情報がコピープラグイン変換部６７を特定し、コマンド識別情報が「コピー」の場合には、図８に示したコピー最速化テーブルを参照して、処理識別情報「圧縮」に対する個数「８」、処理識別情報「伸張」に対する個数「１０」を取得し、次に、料金テーブルを参照して、処理識別情報「圧縮」に対する単価「３０」、処理識別情報「伸張」に対する単価「３０」を取得する。
【０１３４】
課金部６１は、取得された種別ごとの単価を加算した値を、データ量に乗算することにより、アプリコマンドの実行に対する料金を算出する。そして、積算テーブルを更新する。具体的には、積算テーブルで定められている課金額であって、アカウントで特定されるログインユーザーに対する課金額を、その課金額に算出された料金を加算した値で更新する。
【０１３５】
なお、ここでは、単一の料金テーブルを用いるようにしたが、ユーザーごとに料金テーブルを用いるようにしてもよい。これにより、ユーザーごとに異なる料金を課金することができる。さらに、複数のユーザーを、所属部署、会社などの複数のグループに分類して、複数のグループごとに料金テーブルを用いるようにしてもよい。これにより、ユーザーが属するグループごとに異なる料金を課金することができる。
【０１３６】
図１２は、認証処理の一例を示すフローチャートである。認証処理は、ＣＰＵ１１１が、ＥＥＰＲＯＭ１１５に記憶された認証プログラムを実行することにより、ＣＰＵ１１１により実行される処理である。図１２を参照して、ＣＰＵ１１１は、ＭＦＰ１００を操作するユーザーの認証に成功したか否かを判断する（ステップＳ０１）。認証に成功するまで待機状態となり、認証に成功したならば処理をステップＳ０２に進める。
【０１３７】
ステップＳ０２においては、プラグイン変換プログラムが存在するか否かを判断する。ＥＥＰＲＯＭ１１５に記憶された実行可否ケーブルを参照し、ステップＳ０１において認証されたユーザーに対して実行が許可されているプラグイン変換プログラムがインストールされているか否かを判断する。そのようなプラグイン変換プログラムがインストールされているならば処理をステップＳ０３に進めるが、そうでなければステップＳ０３をスキップして処理をステップＳ０４に進める。
【０１３８】
ステップＳ０３においては、実行が許可されたプラグイン変換プログラムをロードし、処理をステップＳ０４に進める。この段階において、ロードされたプラグイン変換プログラムを実行可能となる。
【０１３９】
ステップＳ０４においては、アプリケーションプログラムを起動する指示を受け付けたか否かを判断する。アプリケーションプログラムを起動する指示を受け付けたならば処理をステップＳ０５に進めるが、そうでなければステップＳ０５をスキップして処理をステップＳ０６に進める。アプリケーションプログラムは、コピー処理を実行するアプリケーションプログラム、スキャン処理を実行するアプリケーションプログラムおよびプリント処理を実行するアプリケーションプログラムを含む。
【０１４０】
次のステップＳ０６においては、ロックアウト指示を受け付けたか否かを判断する。ロックアウト指示を受け付けたならば処理のステップＳ０７に進めるが、そうでなければ処理をステップＳ０４に戻す。ステップＳ０７においては、ステップＳ０３においてロードしたプラグイン変換プログラムをアンロードし、処理を終了する。
【０１４１】
図１３は、デフォルト変換処理の流れの一例を示すフローチャートである。デフォルト変換処理は、ＣＰＵ１１１が、ＲＯＭ１１３に記憶されたデフォルト変換プログラムおよびアプリケーションＰＦプログラムを実行することにより、ＣＰＵ１１１により実行される処理である。図１３を参照して、ＣＰＵ１１１は、アプリコマンドが入力されたか否かを判断する（ステップＳ１１）。図１２のステップＳ０５において起動されたアプリケーションプログラムを実行するタスクが出力するアプリコマンドが入力されたか否かを判断する。アプリコマンドが入力されるまで待機状態となり、アプリコマンドが入力されると、処理をステップＳ１２に進める。
【０１４２】
ステップＳ１２においては、入力されたアプリコマンドに対応するプラグイン変換プログラムの実行を、アプリコマンドを指示したユーザーが許可されているか否かを判断する。ＥＥＰＲＯＭ１１５に記憶された実行可否テーブルを参照して、実行可否を判断する。アプリコマンドに対応するプラグイン変換プログラムの実行が許可されているならば処理をステップＳ１３に進めるが、そうでなければ処理をステップＳ１４に進める。
【０１４３】
ステップＳ１３においては、プラグイン変換プログラムを実行するプラグインタスクに、ステップＳ１１において入力されたアプリコマンドを出力し、処理をステップＳ１１に戻す。
【０１４４】
処理がステップＳ１４に進む場合、入力されたアプリコマンドに対応するプラグイン変換プログラムの実行を、アプリコマンドを指示したユーザーが許可されていない場合である。この場合、アプリコマンドを指示したユーザーとは異なるユーザーによる指示に基づいて、入力されたアプリコマンドに対応するプラグイン変換プログラムを実行するプラグインタスクがアプリコマンドを実行中の場合がある。ステップＳ１４においては、そのようなプラグインタスクがアプリコマンドを実行中か否かを判断する。ここでの、プラグインタスクは、コピープラグイン変換プログラムを実行するコピープラグインタスク、スキャンプラグイン変換プログラムを実行するスキャンプラグインタスク、プリントプラグイン変換プログラムを実行するプリントプラグインタスクのいずれである。ステップＳ１５においては、アプリコマンドを実行中のプラグインタスクに、ステップＳ１１において入力されたアプリコマンドを出力する。
【０１４５】
次のステップＳ１６においては、ステップＳ１５においてアプリコマンドを出力したプラグインタスクが、ステップＳ１５においてアプリコマンドを出力する前に実行していたアプリコマンドの実行を終了したか否かを判断する。アプリコマンドの実行を終了するまで待機状態となり、アプリコマンドの実行を終了したならば処理をステップＳ１７に進める。
【０１４６】
ステップＳ１７においては、処理対象のデータを複数に分割したバンドごとに圧縮・伸張器を割り当てる。図７に示したデフォルトテーブルを参照して、第１〜第１８圧縮・伸張器１３１-１〜１８のうちから、ステップＳ１１において入力されたアプリコマンドに対応するデバイスを決定し、決定されたデバイスにバンドを割り当てる。次のステップＳ１８においては、ステップＳ１１において入力されたアプリコマンドを第１の種類のオペレーティングコマンドに変換する。第１の種類のオペレーティングコマンドは、第１〜第１８圧縮・伸張器１３１-１〜１８のうちステップＳ１７におけるバンドが割り当てられたデバイスに、割り当てられたバンドのデータを圧縮処理または伸張処理させるコマンドである。
【０１４７】
ステップＳ１９においては、第１の種類のオペレーティングコマンドを、オペレーティングシステムに出力し、処理をステップＳ２０に進める。ステップＳ２０においては、処理対象とするデータが存在するか否かを判断する。処理対象とするデータが存在するならば処理をステップＳ１７に戻すが、存在しなければ処理をステップＳ１１に戻す。
【０１４８】
図１４は、プラグイン変換処理の流れの一例を示すフローチャートである。プラグイン変換処理は、ＣＰＵ１１１が、コピープラグイン変換プログラム、スキャンプラグイン変換プログラムおよびプリントプラグイン変換プログラムのいずれかを実行することにより、ＣＰＵ１１１により実行される処理である。ＣＰＵ１１１が、コピープラグイン変換プログラムを実行する場合の処理、スキャンプラグイン変換プログラム実行する場合の処理、およびプリントプラグイン変換プログラム実行する場合の処理は、アプリコマンドが異なるのみなので、ここではＣＰＵ１１１がコピープラグイン変換プログラムを実行する場合を例に説明する。
【０１４９】
図１４を参照して、ＣＰＵ１１１は、アプリコマンドが入力されたか否かを判断する（ステップＳ３１）。図１２のステップＳ０５において起動されたアプリケーションプログラムを実行するタスクが出力するアプリコマンドが、図１３のステップＳ１３において出力され、入力されたか否かを判断する。アプリコマンドが入力されるまで待機状態となり、アプリコマンドが入力されると、処理をステップＳ３２に進める。
【０１５０】
ステップＳ３２においては、使用可能な圧縮・伸張器を特定する。図８に示したコピー最速化テーブルのシングルジョブの項目を参照して、第１〜第１８圧縮・伸張器１３１-１〜１８のうちから、ステップＳ３１において入力されたアプリコマンドに対応するデバイスを特定する。なお、ＣＰＵ１１１がスキャンプラグイン変換プログラムを実行する場合は、図９に示したスキャン最速化テーブルのシングルジョブの項目を参照して、第１〜第１８圧縮・伸張器１３１-１〜１８のうちから、ステップＳ３１において入力されたアプリコマンドに対応するデバイスを特定する。また、ＣＰＵ１１１がプリントプラグイン変換プログラムを実行する場合は、図１０に示したプリント最速化テーブルのシングルジョブの項目を参照して、第１〜第１８圧縮・伸張器１３１-１〜１８のうちから、ステップＳ３１において入力されたアプリコマンドに対応するデバイスを特定する。
【０１５１】
そして、ステップＳ３２において第１〜第１８圧縮・伸張器１３１-１〜１８のうちから特定されたデバイスそれぞれに、処理対象のデータを複数に分割したバンドを割り当てる（ステップＳ３３）。次のステップＳ３４においては、ステップＳ３１において入力されたアプリコマンドを第２の種類のオペレーティングコマンドに変換する。第２の種類のオペレーティングコマンドは、第１〜第１８圧縮・伸張器１３１-１〜１８のうちステップＳ３３においてバンドが割り当てられたデバイスに、割り当てられたバンドのデータを圧縮処理または伸張処理させるコマンドである。
【０１５２】
ステップＳ３５においては、第２の種類のオペレーティングコマンドを、オペレーティングシステムに出力し、処理をステップＳ３６に進める。ステップＳ３６においては、処理対象とするデータが存在するか否かを判断する。処理対象とするデータが存在するならば処理をステップＳ３７に進め、存在しなければ処理をステップＳ４５に進める。ステップＳ４５においては、プラグイン変換処理が終了したことを、デフォルト変換プログラムを実行するタスクに通知し、処理を終了する。
【０１５３】
一方、ステップＳ３７においては、別のアプリコマンドが入力されたか否かを判断する。ステップＳ３１において入力されたアプリコマンド（第１のアプリコマンド）を実行中に、図１３のステップＳ１５において別のアプリコマンド（第２のアプリコマンド）が出力され、入力されたか否かを判断する。別のアプリコマンンド（第２のアプリコマンド）が入力されたならば処理をステップＳ３６に進めるが、そうでなければ処理をステップＳ３３に戻す。以下、ステップＳ３１において入力されたアプリコマンドを第１のアプリコマンドといい、ステップＳ３７において入力された別のアプリコマンドを第２のアプリコマンドという。
【０１５４】
ステップＳ３８においては、入力用圧縮・伸張器を特定する。図８に示したコピー最速化テーブルのマルチモードの項目を参照して、第１〜第１８圧縮・伸張器１３１-１〜１８のうちから、ステップＳ３７において入力された第２のアプリコマンドに対応するデバイスを、入力用圧縮・伸張器として特定する。なお、ＣＰＵ１１１がスキャンプラグイン変換プログラムを実行する場合は、図９に示したスキャン最速化テーブルのマルチジョブの項目を参照して、第１〜第１８圧縮・伸張器１３１-１〜１８のうちから、第２のアプリコマンドに対応するデバイスを、入力用圧縮・伸張器として特定する。また、ＣＰＵ１１１がプリントプラグイン変換プログラムを実行する場合は、図１０に示したプリント最速化テーブルのマルチジョブの項目を参照して、第１〜第１８圧縮・伸張器１３１-１〜１８のうちから、第２のアプリコマンドに対応するデバイスを、入力用圧縮・伸張器として特定する。
【０１５５】
ステップＳ３９においては，ステップＳ３６において特定された入力用圧縮・伸張器に、第２のアプリコマンドに対応する処理対象のデータを複数に分割したバンドを割り当てる。次のステップＳ４０においては、ステップＳ３７において入力された第２のアプリコマンドを第３の種類のオペレーティングコマンドに変換する。第３の種類のオペレーティングコマンドは、ステップＳ３８においてバンドが割り当てられた入力用圧縮・伸張器に、割り当てられたバンドのデータを圧縮処理させるコマンドである。
【０１５６】
ステップＳ４１においては、バンドごとの圧縮・伸張器の割り当てを変更する。図８に示したコピー最速化テーブルのマルチジョブの項目を参照して、第１〜第１８圧縮・伸張器１３１-１〜１８のうちから、ステップＳ３１において入力された第１のアプリコマンドに対応するデバイスを特定し、特定されたデバイスに第１のアプリコマンドに対応する処理対象のデータを複数に分割したバンドを割り当てる。なお、ＣＰＵ１１１がスキャンプラグイン変換プログラムを実行する場合は、図９に示したスキャン最速化テーブルのマルチジョブの項目を参照して、第１〜第１８圧縮・伸張器１３１-１〜１８のうちから、第１のアプリコマンドに対応するデバイスを特定する。また、ＣＰＵ１１１がプリントプラグイン変換プログラムを実行する場合は、図１０に示したプリント最速化テーブルのマルチジョブの項目を参照して、第１〜第１８圧縮・伸張器１３１-１〜１８のうちから、第１のアプリコマンドに対応するデバイスを特定する。
【０１５７】
ステップＳ４２においては，ステップＳ３１において入力された第１のアプリコマンドを第４の種類のオペレーティングコマンドに変換することにより、第２の種類のオペレーティングコマンドを第４の種類のオペレーティングコマンドに変更する。第４の種類のオペレーティングコマンドは、ステップＳ３９においてバンドが割り当てられた圧縮・伸張器に、割り当てられたバンドのデータを圧縮処理または伸張処理させるコマンドである。
【０１５８】
次のステップＳ４３においては、ステップＳ３５においてＯＳに出力した第２オペレーティングコマンドの実行が終了したしたか否かを判断する。第２オペレーティングコマンドの実行が終了するまで待機状態となり、終了したならば処理をステップＳ４３に進める。ステップＳ４３においては、第３の種類および第４の種類のオペレーティングコマンドをＯＳに出力し、処理をステップＳ４５に進める。
【０１５９】
以上説明したように、本実施の形態におけるＭＦＰ１００は、ＣＰＵ１１１がオペレーティングシステムプログラムを実行することにより形成されるＯＳ部７３と、アプリケーションプログラムを実行することにより形成される第１〜第３アプリケーション部５３，５５，５７と、デフォルト変換プログラムを実行することにより形成されるデフォルト変換部６５と、コピープラグイン変換プログラムを実行することにより形成されるコピープラグイン変換部６７と、スキャンプラグイン変換プログラムを実行することにより形成されるスキャンプラグイン変換部６９と、プリントプラグイン変換プログラムを実行することにより形成されるプリントプラグイン変換部７１と、を含む。デフォルト変換部６５は、第１〜第３アプリケーション部５３，５５，５７のいずれかにより出力されるアプリコマンドを、第１〜第１８圧縮・伸張器１３１−１〜１８のうち該アプリコマンドに対して予め定められた第１の数の圧縮・伸張器を用いる第１の種類のオペレーティングコマンドに変換し、第１の種類のオペレーティングコマンドをＯＳ部７３に出力する。コピープラグイン変換部６７、スキャンプラグイン変換部６９，プリントプラグイン変換部７１それぞれは、第１〜第３アプリケーション部５３、５５、５７が出力可能な１以上のアプリコマンドの少なくとも１つに対応し、当該アプリコマンドが出力される場合、第１〜第１８圧縮・伸張器１３１−１〜１８のうち第１の種類のオペレーティングコマンドが用いる第１の数よりも大きい第２の数の圧縮・伸張器を用いる第２の種類のオペレーティングコマンドに変換し、第２の種類のオペレーティングコマンドをＯＳ部７３に出力する。第２の種類のオペレーティングコマンドがＯＳ部７３に出力される場合は、第１の種類のオペレーティングコマンドがＯＳ部７３に出力される場合よりも大きな数の圧縮・伸張器が用いられるので、コピープラグイン変換プログラム、スキャンプラグイン変換プログラムおよびプリントプラグイン変換プログラムのいずれかが実行される場合の処理速度を早くすることができる。その結果、アプリケーションプログラムおよびオペレーティングシステムプログラムを変更することなく、処理速度を早くすることができる。
【０１６０】
また、アプリコマンドが、コピープラグイン変換部６７、スキャンプラグイン変換部６９，プリントプラグイン変換部７１のいずれかに対応する場合、デフォルト変換部６５による第１の種類のオペレーティングコマンドの出力が停止されるので、デフォルト変換部６５、コピープラグイン変換部６７、スキャンプラグイン変換部６９，プリントプラグイン変換部７１のいずれかがオペレーティングコマンドを出力するので、ＯＳ部７３に同じ処理を実行させるのを回避することができる。
【０１６１】
コピープラグイン変換部６７、スキャンプラグイン変換部６９，プリントプラグイン変換部７１それぞれは、それに対応するアプリコマンドが出力された後に、それに対応しない別のアプリコマンドが出力される場合、対応しないアプリコマンドを第３の種類のオペレーティングコマンドに変換し、対応するアプリコマンドを第４の種類のオペレーティングコマンドに変換する。このため、異なる２つのアプリコマンドそれぞれに対応するオペレーティングコマンドを出力することができる。
【０１６２】
また、認証されたユーザーによる指示に基づいて第１〜第３アプリケーション部５３，５５，５７が出力するアプリコマンドが、コピープラグイン変換部６７、スキャンプラグイン変換部６９，プリントプラグイン変換部７１のいずれかに対応する場合、例えば、アプリコマンドがコピープラグイン変換部６７に対応する場合、コピープラグイン変換部６７に対応するコピープラグイン変換プログラムの実行が認証されたユーザーに対して許可されていることを条件に、コピープラグイン変換部６７に第２の種類のオペレーティングコマンドを出力させる。このため、ユーザーごとにプラグイン変換プログラムの実行の可否を決定することができる。
【０１６３】
さらに、デフォルト変換部６５が第１の種類のオペレーティングコマンドを出力する場合と、コピープラグイン変換部６７、スキャンプラグイン変換部６９，プリントプラグイン変換部７１のいずれかが第２の種類のオペレーティングコマンドを出力する場合とで、異なる料金を課金するので、処理速度に応じて課金額を変更することができる。
【０１６４】
さらに、動作モードが省電力モードに切り換えられている場合に、コピープラグイン変換部６７、スキャンプラグイン変換部６９，プリントプラグイン変換部７１のいずれかに第２の種類のオペレーティングコマンドを出力させ、動作モードが通常モードに切り換えられている場合に、デフォルト変換部６５に第１の種類のオペレーティングコマンドを出力させる。このため、省電力モードの場合に、処理速度を速くすることにより、処理時間を短くして、消費電力を低減することができる。
【０１６５】
なお、上述した実施の形態においては、ＭＦＰ１００について説明したが、図１４に示した処理をＭＦＰ１００が備えるＣＰＵ１１１に実行させるためのプラグイン変換プログラムとして発明を特定することができるのは言うまでもない。
【０１６６】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１６７】
１００  ＭＦＰ、１２０  自動原稿搬送装置、１３０  原稿読取部、１３１−１〜Ｎ  圧縮・伸張器、１４０  画像形成部、１５０  給紙部、１５１  メモリーコントローラ、１６０  操作パネル、１６３  表示部、１６５  操作部、１６７  タッチパネル、１１０  メイン回路、１１１  ＣＰＵ、１１２  ネットワークコントローラ、１１３  ＲＯＭ、１１４  ＲＡＭ、１１５  ＥＥＰＲＯＭ、１１６  ＨＤＤ、１１７  ファクシミリ部、１１９  外部記憶装置、１２１  バス調停器、１２３  入力メモリー、１２７  出力メモリー、１２９  転送制御部、５１  ユーザー認証部、５３，５５，５７  第１〜第３アプリケーション部、５９  動作モード切換部、６１  課金部、６３  調停部、６５  デフォルト変換部、６７  コピープラグイン変換部、６９  スキャンプラグイン変換部、７１  プリントプラグイン変換部、７３  ＯＳ部、７５  コピーマルチ実行部、７７  スキャンマルチ実行部、７９  プリントマルチ実行部。
【図１】
2013106107.tif 000003
【図２】
2013106107.tif 000004
【図３】
2013106107.tif 000005
【図４】
2013106107.tif 000006
【図５】
2013106107.tif 000007
【図６】
2013106107.tif 000008
【図７】
2013106107.tif 000009
【図８】
2013106107.tif 000010
【図９】
2013106107.tif 000011
【図１０】
2013106107.tif 000012
【図１１】
2013106107.tif 000013
【図１２】
2013106107.tif 000014
【図１３】
2013106107.tif 000015
【図１４】
2013106107.tif 000016