(57)【要約】【課題】制御用の第１のプロセッサと、画像処理用の第２のプロセッサを用いる場合、第１のプロセッサと第２のプロセッサ間の通信時間を短縮させることができる情報処理装置を提供する。【解決手段】情報処理装置は、制御用の第１のプロセッサと、画像処理用の第２のプロセッサを有し、通信手段は、前記第１のプロセッサと前記第２のプロセッサ間の通信を行い、前記通信手段は、前記第１のプロセッサから前記第２のプロセッサへの送信を行う場合に、今回送信する一部の内容が前回送信した一部の内容と同じならば、該一部の内容の送信を行わない。【選択図】図１
2019185697.tif 000002
【特許請求の範囲】
【請求項１】
制御用の第１のプロセッサと、
画像処理用の第２のプロセッサと、
前記第１のプロセッサと前記第２のプロセッサ間の通信を行う通信手段
を有し、
前記通信手段は、前記第１のプロセッサから前記第２のプロセッサへの送信を行う場合に、今回送信する一部の内容が前回送信した一部の内容と同じならば、該一部の内容の送信を行わない、
情報処理装置。
【請求項２】
前記通信手段は、送信する内容である複数の引数で構成される集合毎に比較して、前記一部の内容が同じであるか否かを判断する、
請求項１に記載の情報処理装置。
【請求項３】
前記集合に対して、タグ付けが行われており、
前記通信手段は、前記タグを比較する、
請求項２に記載の情報処理装置。
【請求項４】
第３のプロセッサと、
前記第１のプロセッサと前記第３のプロセッサ間の通信を行う第２の通信手段
をさらに有し、
前記第２の通信手段は、前記第１のプロセッサからの画像処理の指示を前記第３のプロセッサへ送信し、該第３のプロセッサから前記第２のプロセッサへ送信するための指示として、該第２のプロセッサを用いて前記画像処理を行わせることの指示を受信する、
請求項１に記載の情報処理装置。
【請求項５】
前記第３のプロセッサは、前記第１のプロセッサから前記画像処理の指示を受信した場合に、複数の引数で構成される集合毎にタグ付けを行い、該タグ付けの結果を前記第２のプロセッサへ送信する指示に含める、
請求項４に記載の情報処理装置。
【請求項６】
前記通信手段は、前記タグを比較して、前記一部の内容が同じであるか否かを判断する、
請求項５に記載の情報処理装置。
【請求項７】
前記第３のプロセッサは、画像処理用のＡＳＩＣの代替として、前記第２のプロセッサを用いる、
請求項４に記載の情報処理装置。
【請求項８】
制御用の第１のプロセッサと、
画像処理用の第２のプロセッサを有するコンピュータを、
前記第１のプロセッサと前記第２のプロセッサ間の通信を行う通信手段
として機能させ、
前記通信手段は、前記第１のプロセッサから前記第２のプロセッサへの送信を行う場合に、今回送信する一部の内容が前回送信した一部の内容と同じならば、該一部の内容の送信を行わない、
情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及び情報処理プログラムに関する。
【背景技術】
【０００２】
特許文献１には、既存の片方向ＯＳ間通信システムにハードウェア上の変更を加えることなく双方向ＯＳ間通信システムを実現することを課題とし、上位アプリケーションは、コールバック関数の関数ポインタをライブラリに通知し、ライブラリは、ＯＳ間通信モジュールに非同期イベント登録コマンドを通知し、ＯＳ間通信モジュールは、作成したコールバック関数の関数ポインタをＦＡＸＤＤへ通知し、その後、ライブラリは、ＯＳ間通信モジュールへ非同期イベント受信待ちコマンドを通知して受信待ち状態に入り、ＦＡＸＤＤは、非同期イベントが発生すると、通知された関数ポインタにアクセスしてイベント通知パラメータをＯＳ間通信モジュールへ送り、ＯＳ間通信モジュールは、非同期イベント受信待ちコマンドに応じてイベント通知パラメータをライブラリに返し、ライブラリは、通知された関数ポインタにアクセスしてイベント通知パラメータを上位アプリケーションへ送ることが開示されている。
【０００３】
特許文献２には、マルチプロセッサシステムのプロセッサ間でのコマンドの受け渡し後にいずれかのプロセッサでプログラムが再起動された場合の誤動作を防ぐことを課題とし、第１ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）を実行する第１制御手段と、第２ＯＳを実行する第２制御手段と、前記第２制御手段によって制御されるデバイスとを備え、前記第１制御手段は、前記第１ＯＳ上で動作中のプロセスが呼び出した関数を前記第１ＯＳと前記第２ＯＳとで共通に解釈されるコマンドに変換する第１変換手段と、前記第１変換手段によって変換されたコマンドを前記第２制御手段の記憶領域に書き込むコマンド書込手段と、前記コマンド書込手段によって書き込まれたコマンドに対応する前記第２ＯＳのシステムコールの前記第２制御手段による実行の結果を示すステータスが前記記憶領域に書き込まれたことを示す通知を受けた場合に当該ステータスを前記記憶領域から読み出すステータス読出手段と、前記ステータス読出手段によって読み出された前記ステータスを前記プロセスが解釈する戻り値に変換し、当該戻り値を前記プロセスに返す第２変換手段と、前記コマンド書込手段による前記コマンドの書き込み後、前記ステータス読出手段によって前記ステータスが読み出される前に前記プロセスが再起動された場合に、前記プロセスの再起動後に前記ステータス読出手段によって読み出された前記ステータスを廃棄するステータス廃棄手段とを備えたことが開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１７−０６２５４０号公報
【特許文献２】特許第６０９８３８９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
処理能力が必要な画像処理を行うのに、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）が用いられてきた。しかし、一般的なプロセッサの処理能力が向上したことにより、画像処理用プログラムをそのプロセッサ上で処理し、ＡＳＩＣを代替することが行われている。そのために、プロセッサ間通信を行う必要が生じる。このプロセッサ間通信は、ＡＳＩＣを用いる場合（具体的には、ＡＳＩＣのレジスタに引数をセットする処理）に比べて時間のかかる処理となる。
本発明は、制御用の第１のプロセッサと、画像処理用の第２のプロセッサを用いる場合、第１のプロセッサと第２のプロセッサ間の通信時間を短縮させることができる情報処理装置及び情報処理プログラムを提供することを目的としている。
【課題を解決するための手段】
【０００６】
かかる目的を達成するための本発明の要旨とするところは、次の各項の発明に存する。
請求項１の発明は、制御用の第１のプロセッサと、画像処理用の第２のプロセッサと、前記第１のプロセッサと前記第２のプロセッサ間の通信を行う通信手段を有し、前記通信手段は、前記第１のプロセッサから前記第２のプロセッサへの送信を行う場合に、今回送信する一部の内容が前回送信した一部の内容と同じならば、該一部の内容の送信を行わない、情報処理装置である。
【０００７】
請求項２の発明は、前記通信手段は、送信する内容である複数の引数で構成される集合毎に比較して、前記一部の内容が同じであるか否かを判断する、請求項１に記載の情報処理装置である。
【０００８】
請求項３の発明は、前記集合に対して、タグ付けが行われており、前記通信手段は、前記タグを比較する、請求項２に記載の情報処理装置である。
【０００９】
請求項４の発明は、第３のプロセッサと、前記第１のプロセッサと前記第３のプロセッサ間の通信を行う第２の通信手段をさらに有し、前記第２の通信手段は、前記第１のプロセッサからの画像処理の指示を前記第３のプロセッサへ送信し、該第３のプロセッサから前記第２のプロセッサへ送信するための指示として、該第２のプロセッサを用いて前記画像処理を行わせることの指示を受信する、請求項１に記載の情報処理装置である。
【００１０】
請求項５の発明は、前記第３のプロセッサは、前記第１のプロセッサから前記画像処理の指示を受信した場合に、複数の引数で構成される集合毎にタグ付けを行い、該タグ付けの結果を前記第２のプロセッサへ送信する指示に含める、請求項４に記載の情報処理装置である。
【００１１】
請求項６の発明は、前記通信手段は、前記タグを比較して、前記一部の内容が同じであるか否かを判断する、請求項５に記載の情報処理装置である。
【００１２】
請求項７の発明は、前記第３のプロセッサは、画像処理用のＡＳＩＣの代替として、前記第２のプロセッサを用いる、請求項４に記載の情報処理装置である。
【００１３】
請求項８の発明は、制御用の第１のプロセッサと、画像処理用の第２のプロセッサを有するコンピュータを、前記第１のプロセッサと前記第２のプロセッサ間の通信を行う通信手段として機能させ、前記通信手段は、前記第１のプロセッサから前記第２のプロセッサへの送信を行う場合に、今回送信する一部の内容が前回送信した一部の内容と同じならば、該一部の内容の送信を行わない、情報処理プログラムである。
【発明の効果】
【００１４】
請求項１の情報処理装置によれば、制御用の第１のプロセッサと、画像処理用の第２のプロセッサを用いる場合、第１のプロセッサと第２のプロセッサ間の通信時間を短縮させることができる。
【００１５】
請求項２の情報処理装置によれば、一部の内容が同じであるか否かを判断するのに、集合毎に比較して行うことができる。
【００１６】
請求項３の情報処理装置によれば、タグの比較で、集合を比較することができる。
【００１７】
請求項４の情報処理装置によれば、第３のプロセッサが、第１のプロセッサからの画像処理の指示を受け、その第３のプロセッサが、第２のプロセッサへ画像処理を行わせることの指示を送信することができる。
【００１８】
請求項５の情報処理装置によれば、第３のプロセッサは、複数の引数で構成される集合毎にタグ付けを行い、そのタグ付けの結果を第２のプロセッサへ送信する指示に含めることができる。
【００１９】
請求項６の情報処理装置によれば、タグの比較によって、一部の内容が同じであるか否かを判断することができる。
【００２０】
請求項７の情報処理装置によれば、画像処理用のＡＳＩＣの代替として、第２のプロセッサを用いることができる。
【００２１】
請求項８の情報処理プログラムによれば、制御用の第１のプロセッサと、画像処理用の第２のプロセッサを用いる場合、第１のプロセッサと第２のプロセッサ間の通信時間を短縮させることができる。
【図面の簡単な説明】
【００２２】
【図１】本実施の形態の構成例についての概念的なモジュール構成図である。
【図２】本実施の形態を利用したシステム構成例を示す説明図である。
【図３】ＡＳＩＣを利用した画像処理装置の構成例についての概念的なモジュール構成図である。
【図４】ＡＳＩＣを利用した画像処理モジュールによる処理例を示すフローチャートである。
【図５】ＡＳＩＣを画像処理用プロセッサに代替した画像処理モジュールの構成例についての概念的なモジュール構成図である。
【図６】ＡＳＩＣを画像処理用プロセッサに代替した画像処理モジュールによる処理例を示すフローチャートである。
【図７】レジスタ情報群のデータ構造例、その利用例を示す説明図である。
【図８】本実施の形態である画像処理モジュール内のモジュール間の処理例を示す説明図である。
【図９】本実施の形態である画像処理モジュールによる処理例を示すフローチャートである。
【図１０】タグ付レジスタ情報テーブルのデータ構造例を示す説明図である。
【図１１】画像処理用デバイスドライバによる処理例を示す説明図である。
【図１２】通信モジュールと画像処理用ソフトウェアモジュールとの間の通信処理例を示す説明図である。
【図１３】通信モジュール１２０から画像処理用ソフトウェアモジュール１３５に送信されるサイズデータ例を示す説明図である。
【図１４】本実施の形態である画像処理モジュールによる処理例を示す説明図である。
【図１５】本実施の形態である画像処理モジュールによる処理例を示す説明図である。
【図１６】本実施の形態を実現するコンピュータのハードウェア構成例を示すブロック図である。
【発明を実施するための形態】
【００２３】
以下、図面に基づき本発明を実現するにあたっての好適な一実施の形態の例を説明する。
図１は、本実施の形態の構成例についての概念的なモジュール構成図を示している。
なお、モジュールとは、一般的に論理的に分離可能なソフトウェア（コンピュータ・プログラム）、ハードウェア等の部品を指す。したがって、本実施の形態におけるモジュールはコンピュータ・プログラムにおけるモジュールのことだけでなく、ハードウェア構成におけるモジュールも指す。それゆえ、本実施の形態は、それらのモジュールとして機能させるためのコンピュータ・プログラム（コンピュータにそれぞれの手順を実行させるためのプログラム、コンピュータをそれぞれの手段として機能させるためのプログラム、コンピュータにそれぞれの機能を実現させるためのプログラム）、システム及び方法の説明をも兼ねている。ただし、説明の都合上、「記憶する」、「記憶させる」、これらと同等の文言を用いるが、これらの文言は、実施の形態がコンピュータ・プログラムの場合は、記憶装置に記憶させる、又は記憶装置に記憶させるように制御するという意味である。また、モジュールは機能に一対一に対応していてもよいが、実装においては、１モジュールを１プログラムで構成してもよいし、複数モジュールを１プログラムで構成してもよく、逆に１モジュールを複数プログラムで構成してもよい。また、複数モジュールは１コンピュータによって実行されてもよいし、分散又は並列環境におけるコンピュータによって１モジュールが複数コンピュータで実行されてもよい。なお、１つのモジュールに他のモジュールが含まれていてもよい。また、以下、「接続」とは物理的な接続の他、論理的な接続（データの授受、指示、データ間の参照関係、ログイン等）の場合にも用いる。「予め定められた」とは、対象としている処理の前に定まっていることをいい、本実施の形態による処理が始まる前はもちろんのこと、本実施の形態による処理が始まった後であっても、対象としている処理の前であれば、そのときの状況・状態にしたがって、又はそれまでの状況・状態にしたがって定まることの意を含めて用いる。「予め定められた値」が複数ある場合は、それぞれ異なった値であってもよいし、２以上の値（もちろんのことながら、全ての値も含む）が同じであってもよい。また、「Ａである場合、Ｂをする」という記載は、「Ａであるか否かを判断し、Ａであると判断した場合はＢをする」の意味で用いる。ただし、Ａであるか否かの判断が不要である場合を除く。また、「Ａ、Ｂ、Ｃ」等のように事物を列挙した場合は、断りがない限り例示列挙であり、その１つのみを選んでいる場合（例えば、Ａのみ）を含む。
また、システム又は装置とは、複数のコンピュータ、ハードウェア、装置等がネットワーク（一対一対応の通信接続を含む）等の通信手段で接続されて構成されるほか、１つのコンピュータ、ハードウェア、装置等によって実現される場合も含まれる。「装置」と「システム」とは、互いに同義の用語として用いる。もちろんのことながら、「システム」には、人為的な取り決めである社会的な「仕組み」（社会システム）にすぎないものは含まない。
また、各モジュールによる処理毎に又はモジュール内で複数の処理を行う場合はその処理毎に、対象となる情報を記憶装置から読み込み、その処理を行った後に、処理結果を記憶装置に書き出すものである。したがって、処理前の記憶装置からの読み込み、処理後の記憶装置への書き出しについては、説明を省略する場合がある。なお、ここでの記憶装置としては、ハードディスク、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、外部記憶媒体、通信回線を介した記憶装置、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）内のレジスタ等を含んでいてもよい。
【００２４】
本実施の形態である画像処理モジュール１００は、複数のプロセッサを用いて画像処理を行うものであって、図１の例に示すように、制御用モジュール１０５、画像処理制御用モジュール１５０を有している。
制御用モジュール１０５は、画像処理モジュール１００全体を制御するための汎用ＯＳ（例えば、Ｌｉｎｕｘ（登録商標）等）によって制御され、画像処理制御用モジュール１５０は、組み込み用ＯＳ（例えば、ＶｘＷｏｒｋｓ（登録商標）、ＩＴＲＯＮ（登録商標）等）によって制御される。なお、画像処理用プロセッサ１３０、画像処理用ソフトウェアモジュール１３５だけを管理する小規模なＯＳ（いわゆるチープＯＳ）があってもよい。
また、画像処理制御用モジュール１５０と制御用モジュール１０５間の通信（組込システム用プロセッサ１５５と制御用プロセッサ１１０間の通信、組込システム用プロセッサ１５５と画像処理用プロセッサ１３０間の通信を含む）は、システム間通信（又はプロセッサ間通信）といわれる。
【００２５】
制御用モジュール１０５は、制御用プロセッサ１１０、アプリケーションモジュール１１５、通信モジュール１２０、画像処理用プロセッサ１３０、画像処理用ソフトウェアモジュール１３５を有している。
制御用プロセッサ１１０は、制御用の第１のプロセッサの一例であって、汎用システム用のプロセッサともいわれる。制御用プロセッサ１１０として、例えば、Ｃｏｒｔｅｘ−Ａ１５  ＭＰＣｏｒｅ等を用いてもよい。制御用プロセッサ１１０は、アプリケーションモジュール１１５、通信モジュール１２０による処理を行う。
【００２６】
アプリケーションモジュール１１５は、通信モジュール１２０と接続されている。アプリケーションモジュール１１５は、画像処理モジュール１００における画像処理のアプリケーションソフトウェアであって、例えば、複写処理、スキャン処理、印刷処理、ファックス受信・送信処理等を行う。また、ユーザーの操作にしたがって、拡大縮小等の処理を行う。なお、それらの画像処理そのものは、組込システム用プロセッサ１５５に画像処理の指示を行うことによって、画像処理用プロセッサ１３０によって行われる。つまり、アプリケーションモジュール１１５（制御用プロセッサ１１０）が画像処理用ソフトウェアモジュール１３５（画像処理用プロセッサ１３０）を直接用いて画像処理を行わせることはなく、アプリケーションモジュール１１５（制御用プロセッサ１１０）が画像処理用デバイスドライバ１６０（組込システム用プロセッサ１５５）に画像処理の指示を行い、画像処理用デバイスドライバ１６０（組込システム用プロセッサ１５５）が画像処理用ソフトウェアモジュール１３５（画像処理用プロセッサ１３０）に画像処理を行わせるという手順を踏む。理由については、図３〜図７の例を用いて後述する。
【００２７】
通信モジュール１２０は、記憶モジュール１２５を有しており、アプリケーションモジュール１１５、画像処理用ソフトウェアモジュール１３５、画像処理制御用モジュール１５０の通信モジュール１６５と接続されている。通信モジュール１２０は、制御用プロセッサ１１０と画像処理用プロセッサ１３０間の通信を行う。なお、「制御用プロセッサ１１０と画像処理用プロセッサ１３０間の通信」として、制御用プロセッサ１１０と画像処理用プロセッサ１３０とが直接通信を行うのではなく、組込システム用プロセッサ１５５を介して、制御用プロセッサ１１０と画像処理用プロセッサ１３０とが通信を行う場合を含む。つまり、制御用プロセッサ１１０と組込システム用プロセッサ１５５とが通信を行い、組込システム用プロセッサ１５５と画像処理用プロセッサ１３０とが通信を行うことを含む。
通信モジュール１２０は、制御用プロセッサ１１０から画像処理用プロセッサ１３０への送信を行う場合に、今回送信する一部の内容が前回送信した一部の内容と同じならば、その一部の内容の送信を行わないように制御する。なお、前回送信した内容は、記憶モジュール１２５内に記憶されている。
また、通信モジュール１２０は、送信する内容である複数の引数で構成される集合毎に比較して、一部の内容が同じであるか否かを判断するようにしてもよい。ここで「引数」として、画像処理に用いられる引数であって、例えば、レジスタ内の内容（情報）が該当する。ただし、ここで「レジスタ」とは、画像処理用プロセッサ１３０（画像処理用ソフトウェアモジュール１３５）によって代替されるＡＳＩＣのレジスタである。
また、集合に対して、タグ付けが行われており、通信モジュール１２０は、今回送信するタグと前回送信したタグを比較することによって、「今回送信する一部の内容が前回送信した一部の内容と同じ」か否かの判断を行うようにしてもよい。
【００２８】
また、通信モジュール１２０は、制御用モジュール１０５と組込システム用プロセッサ１５５間の通信を行うようにしてもよい。
そして、通信モジュール１２０は、制御用プロセッサ１１０からの画像処理の指示を組込システム用プロセッサ１５５へ送信し、その組込システム用プロセッサ１５５から画像処理用プロセッサ１３０へ送信するための指示として、その画像処理用プロセッサ１３０を用いて画像処理を行わせることの指示を受信するようにしてもよい。ここで「画像処理を行わせることの指示」の内容は、制御用プロセッサ１１０から受信した「画像処理の指示」を主としたものである。なお、「画像処理の指示」そのものであってもよいが、後述するＡＳＩＣを利用するための指示に変換したもの、タグを付加したものであってもよい。
なお、通信モジュール１２０によるこの処理を行うためには、制御用プロセッサ１１０は、画像処理の指示を組込システム用プロセッサ１５５へ送信し、組込システム用プロセッサ１５５は、画像処理を行わせることの指示を画像処理用プロセッサ１３０に送信することを行う。そして、その後、画像処理用プロセッサ１３０は、処理結果を組込システム用プロセッサ１５５に送信し、組込システム用プロセッサ１５５は、その処理結果を制御用プロセッサ１１０に送信することを行うようにしてもよい。
また、通信モジュール１２０は、タグを比較して、一部の内容が同じであるか否かを判断するようにしてもよい。
【００２９】
記憶モジュール１２５は、画像処理用プロセッサ１３０への送信内容（画像処理用ソフトウェアモジュール１３５へ渡した内容）を記憶する。そして、通信モジュール１２０は、この記憶モジュール１２５内の情報（画像処理用プロセッサ１３０へ前回送信した内容）と今回送信する内容を比較する。
【００３０】
画像処理用プロセッサ１３０は、画像処理用の第２のプロセッサの一例である。ただし、ＡＳＩＣは含まない。画像処理用プロセッサ１３０として、例えば、制御用プロセッサ１１０と同様のＣｏｒｔｅｘ−Ａ１５  ＭＰＣｏｒｅ等を用いてもよい。画像処理用プロセッサ１３０は、画像処理用ソフトウェアモジュール１３５による処理を行う。
画像処理用ソフトウェアモジュール１３５は、通信モジュール１２０と接続されている。画像処理用ソフトウェアモジュール１３５は、画像処理用プロセッサ１３０を用いて、組込システム用プロセッサ１５５（画像処理用デバイスドライバ１６０）から送信された「画像処理を行わせることの指示」にしたがって、画像処理を行う。そして、その処理結果を組込システム用プロセッサ１５５（画像処理用デバイスドライバ１６０）に送信する。なお、画像処理用ソフトウェアモジュール１３５は、後述するＡＳＩＣと同等の機能を有している。ただし、そのＡＳＩＣの利用方法（具体的には、引数の引き渡し方法）が同じであれば、機能としてはそのＡＳＩＣの機能をアップグレード（又はダウングレード）したものであってもよい。機能としては、画像処理、例えば、拡大縮小等のアフィン変換処理、圧縮伸張処理、２値化処理、濃度変換処理、エッジ検出等のフィルター処理等がある。
【００３１】
画像処理制御用モジュール１５０は、組込システム用プロセッサ１５５、画像処理用デバイスドライバ１６０、通信モジュール１６５を有している。
組込システム用プロセッサ１５５は、第３のプロセッサの一例であって、組み込みシステム用のプロセッサともいわれる。組込システム用プロセッサ１５５として、例えば、Ｃｏｒｔｅｘ−Ａ７  ＭＰＣｏｒｅ等を用いてもよい。組込システム用プロセッサ１５５は、画像処理用デバイスドライバ１６０、通信モジュール１６５による処理を行う。
【００３２】
画像処理用デバイスドライバ１６０は、通信モジュール１６５と接続されている。画像処理用デバイスドライバ１６０は、組込システム用プロセッサ１５５を用いて以下の処理を行う。
画像処理用デバイスドライバ１６０は、アプリケーションモジュール１１５（制御用プロセッサ１１０）から画像処理の指示を受信した場合に、画像処理用ソフトウェアモジュール１３５（画像処理用プロセッサ１３０）との通信を行い、その画像処理を画像処理用ソフトウェアモジュール１３５（画像処理用プロセッサ１３０）に実施させる。そして、その画像処理の結果を受信して、アプリケーションモジュール１１５（制御用プロセッサ１１０）に返信する。
また、画像処理用デバイスドライバ１６０は、画像処理に必要な引数について、複数の引数で構成される集合毎にタグ付けを行い、そのタグ付けの結果を画像処理用プロセッサ１３０へ送信する指示に含めるようにしてもよい。引数として、例えば、処理対象の画像の大きさ（サイズ）、カラー／白黒の別、写真／文字の別、両面／片面の別等がある。なお、これらはタグ名称となる。
また、画像処理用デバイスドライバ１６０は、画像処理用のＡＳＩＣの代替として、画像処理用プロセッサ１３０を用いて、制御用プロセッサ１１０から指示である画像処理を行わせるようにしてもよい。
通信モジュール１６５は、画像処理用デバイスドライバ１６０、制御用モジュール１０５の通信モジュール１２０と接続されている。通信モジュール１６５は、制御用プロセッサ１１０と組込システム用プロセッサ１５５間の通信、画像処理用プロセッサ１３０と組込システム用プロセッサ１５５間の通信を行う。
【００３３】
図２は、本実施の形態を利用したシステム構成例を示す説明図である。
画像処理装置２００は、画像処理モジュール１００、印刷／スキャン／ファックスモジュール２１０、ユーザーインタフェースモジュール２２０を有している。
画像処理モジュール１００は、制御用モジュール１０５、画像処理制御用モジュール１５０を有している。
印刷／スキャン／ファックスモジュール２１０は、画像処理モジュール１００の画像処理制御用モジュール１５０と接続されている。印刷／スキャン／ファックスモジュール２１０は、画像処理装置２００の主機能を有する。例えば、印刷（プリント）、画像読取（スキャン）、ファックス等の処理を行う。
画像処理制御用モジュール１５０は、印刷／スキャン／ファックスモジュール２１０のドライバとしての機能を有する。そして、画像処理制御用モジュール１５０は、前述したように、画像処理のドライバとしての機能も有する。
ユーザーインタフェースモジュール２２０は、画像処理モジュール１００の制御用モジュール１０５と接続されている。ユーザーインタフェースモジュール２２０は、画像処理装置２００を利用するユーザーの操作を受け付け、制御用モジュール１０５に渡し、制御用モジュール１０５からの制御による表示等を行う。例えば、画像処理装置２００に備え付けられているタッチパネル、マウス、キーボード、マイク、カメラ等を用いて、それらの操作、音声、視線、ジェスチャ等を用いたユーザーの操作を受け付け、画像処理装置２００に備え付けられている液晶ディスプレイ等の表示装置（前述のタッチパネルを含めてもよい）に表示させること、スピーカー等の音声出力装置から音声を出力させること等を行わせる。
【００３４】
図３は、ＡＳＩＣを利用した画像処理モジュール３００の構成例についての概念的なモジュール構成図である。図３の例は、本実施の形態を利用していない以前の状態を示すものである。
画像処理モジュール３００は、制御用モジュール３０５、画像処理制御用モジュール３５０を有している。
制御用モジュール３０５は、画像処理モジュール３００全体を制御するための汎用ＯＳ（例えば、Ｌｉｎｕｘ（登録商標）等）によって制御され、画像処理制御用モジュール３５０は、組み込み用ＯＳ（例えば、ＶｘＷｏｒｋｓ（登録商標）、ＩＴＲＯＮ（登録商標）等）によって制御される。
制御用モジュール３０５は、制御用プロセッサ３１０、アプリケーションモジュール３１５、通信モジュール３２０を有している。
制御用プロセッサ３１０は、アプリケーションモジュール３１５、通信モジュール３２０による処理を行う。
アプリケーションモジュール３１５は、通信モジュール３２０と接続されている。
通信モジュール３２０は、アプリケーションモジュール３１５、画像処理制御用モジュール３５０の通信モジュール３６５と接続されている。
画像処理制御用モジュール３５０は、組込システム用プロセッサ３５５、ＡＳＩＣ３５７、画像処理用デバイスドライバ３６０、通信モジュール３６５を有している。
組込システム用プロセッサ３５５は、画像処理用デバイスドライバ３６０、通信モジュール３６５による処理を行う。
ＡＳＩＣ３５７は、画像処理用デバイスドライバ３６０と接続されている。ＡＳＩＣ３５７は、組み込み用ＯＳ内の画像処理用デバイスドライバ３６０の制御にしたがって画像処理を行う。
画像処理用デバイスドライバ３６０は、ＡＳＩＣ３５７、通信モジュール３６５と接続されている。
通信モジュール３６５は、画像処理用デバイスドライバ３６０、制御用モジュール３０５の通信モジュール３２０と接続されている。
【００３５】
アプリケーションモジュール３１５が画像処理の指示を行った場合の各モジュールの処理例を、図４の例に示すフローチャートを用いて説明する。図３に示したステップＳ番号は、図４の例に示すフローチャート内のステップＳ番号に対応する。
図４は、ＡＳＩＣを利用した画像処理モジュール３００による処理例を示すフローチャートである。
ステップＳ４０２では、アプリケーションモジュール３１５は、画像処理制御用モジュール３５０へのコマンド（画像処理の指示）を通信モジュール３２０に送る。
ステップＳ４０４では、通信モジュール３２０は、コマンドを画像処理制御用モジュール３５０の通信モジュール３６５に送信する。
【００３６】
ステップＳ４０６では、通信モジュール３６５は、コマンドを画像処理用デバイスドライバ３６０へ送る。
ステップＳ４０８では、画像処理用デバイスドライバ３６０は、コマンドを解析し、ＡＳＩＣ３５７にコマンドを送る。コマンドの解析として、例えば、ＡＳＩＣ３５７を利用するための引数を生成することであり、その引数をＡＳＩＣ３５７のレジスタにセットする。そして、ＡＳＩＣ３５７は、画像処理を行う。なお、コマンドの解析結果として生成されるデータ構造は、図７の例を用いて後述するレジスタ情報群７００と同等のものである。
【００３７】
ステップＳ４１０では、ＡＳＩＣ３５７は、ＡＳＩＣ３５７の処理結果（コマンドに対する応答）を画像処理用デバイスドライバ３６０に返す。
ステップＳ４１２では、画像処理用デバイスドライバ３６０は、処理結果を通信モジュール３６５に送る。
【００３８】
ステップＳ４１４では、通信モジュール３６５は、処理結果を制御用モジュール３０５の通信モジュール３２０に送信する。
ステップＳ４１６では、通信モジュール３２０は、アプリケーションモジュール３１５へ処理結果を送る。
【００３９】
図５は、図３の例に示すＡＳＩＣ３５７を画像処理用プロセッサ５３０に代替した画像処理モジュール５００の構成例についての概念的なモジュール構成図である。ＡＳＩＣ３５７は、開発費が高い、開発期間が長い、回路設計の誤りの修正が困難である等の理由から、高速で汎用的なプロセッサ（画像処理用プロセッサ５３０）上で画像処理（画像処理用ソフトウェアモジュール５３５）を行わせることによる代替が検討されている。
しかし、図３の例におけるアプリケーションモジュール３１５、画像処理用デバイスドライバ３６０の変更は最小限度にしたいとする要望がある。
そこで、図５の例に示す画像処理モジュール５００は、図３の例に示した画像処理モジュール３００からＡＳＩＣ３５７を取り除き、画像処理用プロセッサ５３０、画像処理用ソフトウェアモジュール５３５を付加したものである。この画像処理用プロセッサ５３０、画像処理用ソフトウェアモジュール５３５の組み合わせは、ＡＳＩＣ３５７で行っていた特殊な計算（画像処理）をソフトウェアで実現したもので、汎用ＯＳ（例えば、Ｌｉｎｕｘ（登録商標）等）上で動作する。
図５の例に示すようなモジュール構成にした場合、画像処理用デバイスドライバ５６０が、図３の例に示した画像処理用デバイスドライバ３６０と同様に、ＡＳＩＣ３５７に対する制御と同様の制御を行うためには、図３の例で示した通信（ステップＳ４０４、ステップＳ４１４）よりも多くなる。例えば、制御用モジュール５０５と画像処理制御用モジュール５５０間の通信、通信モジュール５２０と画像処理用ソフトウェアモジュール５３５間の通信が増えてしまう。ここで制御用モジュール５０５と画像処理制御用モジュール５５０間の通信、通信モジュール５２０と画像処理用ソフトウェアモジュール５３５間の通信はＯＳ間通信となる。
【００４０】
画像処理モジュール５００は、制御用モジュール５０５、画像処理制御用モジュール５５０を有している。
制御用モジュール５０５は、画像処理モジュール５００全体を制御するための汎用ＯＳ（例えば、Ｌｉｎｕｘ（登録商標）等）によって制御され、画像処理制御用モジュール５５０は、組み込み用ＯＳ（例えば、ＶｘＷｏｒｋｓ（登録商標）、ＩＴＲＯＮ（登録商標）等）によって制御される。
制御用モジュール５０５は、制御用プロセッサ５１０、アプリケーションモジュール５１５、通信モジュール５２０、画像処理用プロセッサ５３０、画像処理用ソフトウェアモジュール５３５を有している。
アプリケーションモジュール５１５は、通信モジュール５２０と接続されている。
通信モジュール５２０は、アプリケーションモジュール５１５、画像処理用ソフトウェアモジュール５３５、画像処理制御用モジュール５５０の通信モジュール５６５と接続されている。
画像処理用ソフトウェアモジュール５３５は、通信モジュール５２０と接続されている。
画像処理制御用モジュール５５０は、組込システム用プロセッサ５５５、画像処理用デバイスドライバ５６０、通信モジュール５６５を有している。
画像処理用デバイスドライバ５６０は、通信モジュール５６５と接続されている。
通信モジュール５６５は、画像処理用デバイスドライバ５６０、制御用モジュール５０５の通信モジュール５２０と接続されている。
【００４１】
アプリケーションモジュール５１５が画像処理の指示を行った場合の各モジュールの処理例を、図６の例に示すフローチャートを用いて説明する。図５に示したステップＳ番号は、図６の例に示すフローチャート内のステップＳ番号に対応する。
図６は、ＡＳＩＣを画像処理用プロセッサ５３０に代替した画像処理モジュール５００による処理例を示すフローチャートである。
ステップＳ６０２では、アプリケーションモジュール５１５は、画像処理制御用モジュール５５０へのコマンドを通信モジュール５２０に送る。
ステップＳ６０４では、通信モジュール５２０は、コマンドを画像処理制御用モジュール５５０の通信モジュール５６５に送信する。
【００４２】
ステップＳ６０６では、通信モジュール５６５は、コマンドを画像処理用デバイスドライバ５６０へ送る。
ステップＳ６０８では、画像処理用デバイスドライバ５６０は、コマンドを解析し、解析後のコマンドを、制御用モジュール５０５の画像処理用ソフトウェアモジュール５３５へのコマンドとして通信モジュール５６５に送る。
【００４３】
ステップＳ６１０では、通信モジュール５６５は、画像処理用ソフトウェアモジュール５３５へのコマンドを制御用モジュール５０５の通信モジュール５２０に送信する。
ステップＳ６１２では、通信モジュール５２０は、コマンドを画像処理用ソフトウェアモジュール５３５へ送る。具体的な処理例について、図７の例を用いて後述する。
【００４４】
ステップＳ６１４では、画像処理用ソフトウェアモジュール５３５は、画像処理用ソフトウェアモジュール５３５の処理結果を画像処理制御用モジュール５５０への応答として通信モジュール５２０に返す。
ステップＳ６１６では、通信モジュール５２０は、画像処理用ソフトウェアモジュール５３５からの応答を画像処理制御用モジュール５５０の通信モジュール５６５に送信する。
【００４５】
ステップＳ６１８では、通信モジュール５６５は、画像処理用ソフトウェアモジュール５３５からの応答を画像処理用デバイスドライバ５６０へ送る。
ステップＳ６２０では、画像処理用デバイスドライバ５６０は、コマンドに対する応答を通信モジュール５６５に送る。
【００４６】
ステップＳ６２２では、通信モジュール５６５は、応答を制御用モジュール５０５の通信モジュール５２０に送信する。
ステップＳ６２４では、通信モジュール５２０は、アプリケーションモジュール５１５へ応答を送る。
【００４７】
図６の例に示すフローチャートを図４の例に示すフローチャートと比較すると、ステップＳ６１０〜ステップＳ６１６の通信（ＯＳ間通信）が増えている。
【００４８】
図７は、レジスタ情報群７００のデータ構造例、その利用例を示す説明図である。レジスタ情報群７００は、画像処理用ソフトウェアモジュール５３５を利用するための引数群（１つの引数を含む）であり、通信モジュール５２０から画像処理用ソフトウェアモジュール５３５に送信される。
レジスタ情報群７００は、ＮＯ欄７２０、レジスタ情報欄７３０を有している。ＮＯ欄７２０は、レジスタ番号（ＮＯ）を記憶している。レジスタ情報欄７３０は、そのレジスタ内の情報（レジスタ情報）を記憶している。つまり、レジスタ情報群７００は、引数をレジスタに設定する形態にしている。ＡＳＩＣ３５７の代替としての使用をするために、あたかもレジスタに設定するような形態にしている。レジスタ情報群７００の１行目のＮｏ：１のレジスタ情報は「ａａａ」であり、２行目のＮｏ：２のレジスタ情報は「ｂｂｂ」であり、３行目のＮｏ：３のレジスタ情報は「ｃｃｃ」であり、４行目のＮｏ：４のレジスタ情報は「ｄｄｄ」である。画像処理用ソフトウェアモジュール５３５は、これらのレジスタ情報（ａａａ、ｂｂｂ、ｃｃｃ、ｄｄｄ）を用いて画像処理を行う。レジスタ情報として、例えば、画像のサイズを示す情報等がある。
ただし、レジスタ情報を１つずつ通信モジュール５２０から画像処理用ソフトウェアモジュール５３５に送信する必要がある。図７の例では、レジスタ情報群７００には４つのレジスタ情報があるので、４回の通信（ＯＳ間通信）が必要になる。つまり、保存するレジスタ情報の数だけＯＳ間通信する必要がある。
ＯＳ間通信（特に通信量が多いステップＳ６１０、Ｓ６１２）は時間がかかる。
ＡＳＩＣ３５７へはレジスタアクセスであるので、非常に短い（一般に数百ｐｓ）のに対し、ＯＳ間通信はメモリへのアクセス（一般に数μｓ）であり、データの格納と読み出しにソフトウェア処理が必要である。
本実施の形態は、ステップＳ６１２における通信を改良する（具体的には、通信回数を減少させる）ものである。
【００４９】
図８は、本実施の形態である画像処理モジュール１００内のモジュール間の処理例を示す説明図である。図８は、図５の例に示す画像処理モジュール５００と同様に、図３の例に示すＡＳＩＣ３５７を画像処理用プロセッサ１３０に代替した画像処理モジュール１００の構成例についての概念的なモジュール構成図を示している。なお、既存の制御用プロセッサ１１０、組込システム用プロセッサ１５５上で、画像処理用ソフトウェアモジュール１３５を動作させることも考えられるが、ＣＰＵパワーが不足しており（具体的には、制御用プロセッサ１１０は、他の処理を行う必要があり、画像処理用ソフトウェアモジュール１３５に割り当てることができる処理能力は不足し、組込システム用プロセッサ１５５は、単体でも処理能力不足である）、制御用プロセッサ１１０、組込システム用プロセッサ１５５とは別のプロセッサ（画像処理用プロセッサ１３０）で、画像処理用ソフトウェアモジュール１３５専用の処理を行わせることによって、ＡＳＩＣ３５７以上の処理能力にするためである。
画像処理モジュール１００において、アプリケーションモジュール１１５が画像処理の指示を行った場合の各モジュールの処理例を、図９の例に示すフローチャートを用いて説明する。図８に示したステップＳ番号は、図９の例に示すフローチャート内のステップＳ番号に対応する。
【００５０】
図９は、本実施の形態である画像処理モジュール１００による処理例を示すフローチャートである。
ステップＳ９０２では、アプリケーションモジュール１１５は、画像処理制御用モジュール１５０へのコマンド（画像処理の指示）を通信モジュール１２０に送る。
ステップＳ９０４では、通信モジュール１２０は、コマンドを画像処理制御用モジュール１５０の通信モジュール１６５に送信する。
【００５１】
ステップＳ９０６では、通信モジュール１６５は、コマンドを画像処理用デバイスドライバ１６０へ送る。
【００５２】
ステップＳ９０８では、画像処理用デバイスドライバ１６０は、コマンドを解析し、抽象化したタグを付与したコマンドに変換し、変換後のコマンドを、制御用モジュール１０５の画像処理用ソフトウェアモジュール１３５へのコマンドとして通信モジュール１６５に送る。
ここで解析とは、コマンドを画像処理用ソフトウェアモジュール１３５（具体的には、ＡＳＩＣ３５７）が解釈できる情報に変換することであり、その結果として、例えば、タグ付レジスタ情報テーブル１０００が生成される。図１０は、タグ付レジスタ情報テーブル１０００のデータ構造例を示す説明図である。タグ付レジスタ情報テーブル１０００は、図７の例に示したレジスタ情報群７００にタグ欄１０１０を付加したものである。タグ付レジスタ情報テーブル１０００は、タグ欄１０１０、ＮＯ欄１０２０、レジスタ情報欄１０３０を有している。タグ欄１０１０は、タグを記憶している。ＮＯ欄１０２０は、レジスタ番号（ＮＯ）を記憶している。レジスタ情報欄１０３０は、そのレジスタ内の情報（レジスタ情報）を記憶している。ここで、タグとは、複数の引数で構成される集合を、本実施の形態において識別するための情報であり、図１０に示す例では「サイズＡ４」等の名称が該当する。ただし、人間が識別可能な名称である必要は必ずしもなく、その引数群（集合）を識別できる数字、英字、英数字等であってもよい。図１０の例では、「サイズＡ４」の示す引数群として、「ａａａ」、「ｂｂｂ」、「ｃｃｃ」、「ｄｄｄ」が４つがあることを示している。
【００５３】
次に、タグ付け処理の具体例を、図１１を用いて説明する。図１１は、画像処理用デバイスドライバ１６０による処理例を示す説明図である。
抽象化タグテーブル１１２０は、抽象化タグ１１３０を有している。抽象化タグ１１３０は、抽象化タグ（タグ欄１０１０におけるタグ）を記憶している。なお、抽象化タグテーブル１１２０は、予め用意されており、抽象タグ毎に、レジスタ情報群が付与されている。そして、タグの付与処理（付与１１４２、付与１１４４）において、レジスタ情報欄１１７３内の情報とのマッチング処理を行って一致するものに抽象タグを付与すればよい。
レジスタ情報テーブル１１７０は、ＮＯ欄１１７２、ＮＯ欄１１７２を有しており、図７の例に示すレジスタ情報群７００と同等のものである。ＮＯ欄１１７２はＮＯ欄７２０に該当し、レジスタ情報欄１１７３はレジスタ情報欄７３０に該当する。
画像処理用デバイスドライバ１６０は、通信モジュール１６５から受信したコマンドを解析して、レジスタ情報テーブル１１７０を生成する。
そして、画像処理用デバイスドライバ１６０は、レジスタ情報テーブル１１７０のＮＯ１〜４にタグ（サイズＡ３）１１３２を付与１１４２する。また、画像処理用デバイスドライバ１６０は、レジスタ情報テーブル１１７０のＮＯ５、６にタグ（カラー／白黒：白黒）１１３４を付与１１４４する。これらの付与処理によって、図１０の例に示したタグ付レジスタ情報テーブル１０００のようなデータ構造を生成する。
【００５４】
ステップＳ９１０では、通信モジュール１６５は、画像処理用ソフトウェアモジュール１３５への抽象化したタグを付与したコマンドを制御用モジュール１０５の通信モジュール１２０に送信する。
【００５５】
ステップＳ９１２では、通信モジュール１２０は、受信したコマンド内の抽象化タグを用いて、既に記憶モジュール１２５に書き込まれている（保存されている）前回のコマンド内の抽象化タグとの比較を行い、レジスタ情報との差分のレジスタ情報を画像処理用ソフトウェアモジュール１３５へ送る。
図１２、図１３の例を用いて、ステップＳ９１２の処理を説明する。図１２は、通信モジュール１２０と画像処理用ソフトウェアモジュール１３５との間の通信処理例を示す説明図である。
差分レジスタ情報１２００は、ＮＯ欄１２１０、レジスタ情報欄１２２０を有しており、図７の例に示すレジスタ情報群７００と同等のものである。ＮＯ欄１２１０はＮＯ欄７２０に該当し、レジスタ情報欄１２２０はレジスタ情報欄７３０に該当する。図７の例では、通信モジュール５２０から画像処理用ソフトウェアモジュール５３５へ４回の通信（４回のレジスタ情報の送信）を行っていたが、図１２の例では、通信モジュール１２０から画像処理用ソフトウェアモジュール１３５へ２回の通信（２回のレジスタ情報の送信）で済んでいる。
それは、記憶モジュール１２５内にタグ付レジスタ情報テーブル１０００が記憶されており、図１１の例に示す処理によって、タグとして「サイズ」であるタグ付レジスタ情報テーブル１０００のＮＯ１〜４とレジスタ情報テーブル１１７０のＮＯ１〜４とを比較する。ＮＯ１とＮＯ４は同じであるので、そのレジスタ情報は送信不要であり、ＮＯ２とＮＯ３のレジスタ情報を送信するだけで済むことになる。なお、比較すべきタグの組み合わせは予め設定されており、例えば、「サイズＡ４」と「サイズＡ３」の組み合わせは、比較すべきタグであるとしている。なお、「サイズＡ４」と「サイズＡ４」の組み合わせ等も、比較すべきタグであるが、そのタグに対応するレジスタ情報は一致しているので、レジスタ情報自体の比較は不要である。また、この例では、タグとして「サイズＡ４」、「サイズＡ３」を付与しているが、両者ともに「サイズ」としてもよい。そのようなタグ付けにした場合、単にタグが一致するか否かで、比較すべきタグであるかを判断することができるようになる。逆に、実体が「サイズＡ４」と「サイズＡ４」の組み合わせであったとしても、タグとしては両者とも「サイズ」であるので、レジスタ情報の比較を行うことになる。
【００５６】
図１３は、通信モジュール１２０から画像処理用ソフトウェアモジュール１３５に送信されるサイズデータ例を示す説明図である。
図１３（ａ）の例に示すタグ付レジスタ情報テーブル１４００ａは、画像処理モジュール１００（又は画像処理装置２００）の起動時に、記憶モジュール１２５内にセットするデータである。つまり、事前（画像処理モジュール１００による処理を行う前）に特定のレジスタ情報を、記憶モジュール１２５に書き込んでおく。例えば、使用される可能性が高い引数群を記憶させておけばよい。
図１３（ｂ）の例に示すタグ付レジスタ情報テーブル１４００ｂは、通信モジュール１２０が画像処理用デバイスドライバ１６０（通信モジュール１６５）から受け取ったサイズＡ４のデータ群である（１回目）。タグ付レジスタ情報テーブル１４００ａとタグ付レジスタ情報テーブル１４００ｂとを比較すると、タグ名称「サイズＡ４」が一致しているので、レジスタ情報（レジスタ情報欄１４３０ａ、レジスタ情報欄１４３０ｂ内のレジスタ情報）も一致しており、この場合は、通信モジュール１２０から画像処理用ソフトウェアモジュール１３５へレジスタ情報を送信する必要はない。つまり、通信モジュール１２０と画像処理用ソフトウェアモジュール１３５におけるレジスタ情報のＯＳ間通信は不要である。
図１３（ｃ）の例に示すタグ付レジスタ情報テーブル１５００ｂは、通信モジュール１２０が画像処理用デバイスドライバ１６０（通信モジュール１６５）から受け取ったサイズＡ３のデータ群である（２回目）。タグ付レジスタ情報テーブル１４００ｂとタグ付レジスタ情報テーブル１５００ｂとを比較すると、タグ名称「サイズＡ４」と「サイズＡ３」は比較すべきタグの組み合わせであり、一致しないレジスタ情報は２つ（レジスタ情報（２行目）１５３２ｂ、レジスタ情報（３行目）１５３３ｂ）なので、通信モジュール１２０から画像処理用ソフトウェアモジュール１３５へ差分であるレジスタ情報（レジスタ情報（２行目）１５３２ｂ、レジスタ情報（３行目）１５３３ｂ）を送信する。もちろんのことながら、同じであるレジスタ情報（１行目、４行目のレジスタ情報）は送信しない。したがって、通信モジュール１２０と画像処理用ソフトウェアモジュール１３５におけるレジスタ情報のＯＳ間通信は２回である。
図１３（ｄ）の例に示すタグ付レジスタ情報テーブル１６００ｂは、通信モジュール１２０が画像処理用デバイスドライバ１６０（通信モジュール１６５）から受け取ったサイズＢ５のデータ群である（３回目）。タグ付レジスタ情報テーブル１５００ｂとタグ付レジスタ情報テーブル１６００ｂとを比較すると、タグ名称「サイズＡ３」と「サイズＢ５」は比較すべきタグの組み合わせであり、一致しないレジスタ情報は３つ（レジスタ情報（２行目）１６３２ｂ、レジスタ情報（３行目）１６３３ｂ、レジスタ情報（４行目）１６３４ｂ）なので、通信モジュール１２０から画像処理用ソフトウェアモジュール１３５へ差分であるレジスタ情報（レジスタ情報（２行目）１６３２ｂ、レジスタ情報（３行目）１６３３ｂ、レジスタ情報（４行目）１６３４ｂ）を送信する。もちろんのことながら、同じであるレジスタ情報（１行目のレジスタ情報）は送信しない。したがって、通信モジュール１２０と画像処理用ソフトウェアモジュール１３５におけるレジスタ情報のＯＳ間通信は３回である。
【００５７】
ステップＳ９１４では、画像処理用ソフトウェアモジュール１３５は、画像処理用ソフトウェアモジュール１３５の処理結果を画像処理制御用モジュール１５０への応答として通信モジュール１２０に返す。
ステップＳ９１６では、通信モジュール１２０は、画像処理用ソフトウェアモジュール１３５からの応答を画像処理制御用モジュール１５０の通信モジュール１６５に送信する。
【００５８】
ステップＳ９１８では、通信モジュール１６５は、画像処理用ソフトウェアモジュール１３５からの応答を画像処理用デバイスドライバ１６０へ送る。
ステップＳ９２０では、画像処理用デバイスドライバ１６０は、コマンドに対する応答を通信モジュール１６５に送る。
【００５９】
ステップＳ９２２では、通信モジュール１６５は、応答を制御用モジュール１０５の通信モジュール１２０に送信する。
ステップＳ９２４では、通信モジュール１２０は、アプリケーションモジュール１１５へ応答を送る。
【００６０】
図１４、図１５の例を用いて、各モジュールにおけるレジスタ情報に関する処理を説明する。図１４は、本実施の形態である画像処理モジュール１００による処理例（図１３（ｂ）の例に示す処理）を示す説明図である。
図１４（ａ）の例では、ステップＳ９０６にて、ステップＳ１４０２、ステップＳ１４０４の処理を示している。
ステップＳ１４０２では、画像処理用デバイスドライバ１６０は、レジスタ情報を解析する。具体的には、画像処理用デバイスドライバ１６０が受信したコマンドを解析して、レジスタ情報テーブル１４５０を生成する。
ステップＳ１４０４では、画像処理用デバイスドライバ１６０は、解析した情報に抽象化タグを付与する。具体的には、レジスタ情報テーブル１４５０に対して、タグ付け処理を行う。このステップＳ１４０４の処理によって、図１４（ｂ）の例に示すタグ付レジスタ情報テーブル１４００ｂが生成される。
【００６１】
ステップＳ９０８にて、図１４（ｂ）の例に示すように、画像処理用デバイスドライバ１６０はタグ付レジスタ情報テーブル１４００ｂを通信モジュール１６５に渡す。
ステップＳ９１０にて、図１４（ｃ）の例に示すように、通信モジュール１２０は通信モジュール１６５からタグ付レジスタ情報テーブル１４００ｂを受信する。そして、図１４（ｄ）の例に示すように、通信モジュール１２０は、記憶モジュール１２５に保存されている前回情報（タグ付レジスタ情報テーブル１４００ａ）と受信した情報（タグ付レジスタ情報テーブル１４００ｂ）とを比較する。タグ「サイズＡ４」が一致するので、ステップＳ９１２、ステップＳ９１４の処理は不要となる。具体的には、画像処理の指示、異なるレジスタ情報の送信は必要であるが、少なくとも「サイズＡ４」のレジスタ情報の送信処理は不要である。
【００６２】
図１５は、本実施の形態である画像処理モジュール１００による処理例（図１３（ｃ）の例に示す処理）を示す説明図である。
図１５（ａ）の例では、ステップＳ９０６にて、ステップＳ１５０２、ステップＳ１５０４の処理を示している。
ステップＳ１５０２では、画像処理用デバイスドライバ１６０は、レジスタ情報を解析する。具体的には、画像処理用デバイスドライバ１６０が受信したコマンドを解析して、レジスタ情報テーブル１５５０を生成する。
ステップＳ１５０４では、画像処理用デバイスドライバ１６０は、解析した情報に抽象化タグを付与する。具体的には、レジスタ情報テーブル１５５０に対して、タグ付け処理を行う。このステップＳ１５０４の処理によって、図１５（ｂ）の例に示すタグ付レジスタ情報テーブル１５００ｂが生成される。
【００６３】
ステップＳ９０８にて、図１５（ｂ）の例に示すように、画像処理用デバイスドライバ１６０はタグ付レジスタ情報テーブル１５００ｂを通信モジュール１６５に渡す。
ステップＳ９１０にて、図１５（ｃ）の例に示すように、通信モジュール１２０は通信モジュール１６５からタグ付レジスタ情報テーブル１５００ｂを受信する。そして、図１５（ｄ）の例に示すように、通信モジュール１２０は、記憶モジュール１２５に保存されている前回情報（タグ付レジスタ情報テーブル１４００ｂ）と受信した情報（タグ付レジスタ情報テーブル１５００ｂ）とを比較する。タグ「サイズＡ４」とタグ「サイズＡ３」とは比較すべきタグの組み合わせであるので、各レジスタ情報を比較する。差分はＮＯ２のレジスタ情報とＮＯ３のレジスタ情報であり、それらを内容とする差分レジスタ情報１５４０（図１５（ｅ））を生成する。なお、差分レジスタ情報１５４０は、図１３（ｃ）の例に示したレジスタ情報（２行目）１５３２ｂとレジスタ情報（３行目）１５３３ｂによって構成されている。したがって、ステップＳ９１２のレジスタ情報の通信は２回となる。
【００６４】
図１６を参照して、本実施の形態の画像処理装置２００（画像処理モジュール１００を含む）のハードウェア構成例について説明する。図１６に示す構成は、例えばパーソナルコンピュータ（ＰＣ）等によって構成されるものであり、スキャナ等のデータ読み取り部１６１７と、プリンタ等のデータ出力部１６１８を備えたハードウェア構成例を示している。
【００６５】
ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１６０１は、前述の実施の形態において説明した制御用プロセッサ１１０に該当し、各種のモジュール、すなわち、アプリケーションモジュール１１５、通信モジュール１２０等の各モジュールの実行シーケンスを記述したコンピュータ・プログラムにしたがった処理を実行する制御部である。なお、画像処理用ソフトウェアモジュール１３５等の処理を行う画像処理用プロセッサ１３０、画像処理用デバイスドライバ１６０、通信モジュール１６５等の処理を行う組込システム用プロセッサ１５５は、後述する外部接続機器１６１５の一例である。
【００６６】
ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１６０２は、ＣＰＵ１６０１が使用するプログラムや演算パラメータ等を格納する。ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１６０３は、ＣＰＵ１６０１の実行において使用するプログラムや、その実行において適宜変化するパラメータ等を格納する。特に、本実施の形態では、ＲＡＭ１６０３は、記憶モジュール１２５等としての機能を実現させるものである。これらはＣＰＵバス等から構成されるホストバス１６０４により相互に接続されている。
【００６７】
ホストバス１６０４は、ブリッジ１６０５を介して、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ／Ｉｎｔｅｒｆａｃｅ）バス等の外部バス１６０６に接続されている。
【００６８】
キーボード１６０８、マウス等のポインティングデバイス１６０９は、操作者により操作されるデバイスである。ディスプレイ１６１０は、液晶表示装置又はＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）等があり、各種情報をテキストやイメージ情報として表示する。また、ポインティングデバイス１６０９とディスプレイ１６１０の両方の機能を備えているタッチスクリーン等であってもよい。その場合、キーボードの機能の実現について、キーボード１６０８のように物理的に接続しなくても、画面（タッチスクリーン）上にソフトウェアでキーボード（いわゆるソフトウェアキーボード、スクリーンキーボード等ともいわれる）を描画して、キーボードの機能を実現するようにしてもよい。
【００６９】
ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）１６１１は、ハードディスク（フラッシュ・メモリ等であってもよい）を内蔵し、ハードディスクを駆動し、ＣＰＵ１６０１によって実行するプログラムや情報を記録又は再生させる。ハードディスクには、画像処理対象の画像、画像処理の結果等が格納される。さらに、その他の各種データ、各種コンピュータ・プログラム等が格納される。
【００７０】
ドライブ１６１２は、装着されている磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリ等のリムーバブル記録媒体１６１３に記録されているデータ又はプログラムを読み出して、そのデータ又はプログラムを、インタフェース１６０７、外部バス１６０６、ブリッジ１６０５、及びホストバス１６０４を介して接続されているＲＡＭ１６０３に供給する。なお、リムーバブル記録媒体１６１３も、データ記録領域として利用可能である。
【００７１】
接続ポート１６１４は、例えば、画像処理制御用モジュール１５０の機能を実現する組込システム用プロセッサ１５５又は画像処理用ソフトウェアモジュール１３５の機能を実現する画像処理用プロセッサ１３０等である外部接続機器１６１５を接続するポートであり、ＵＳＢ、ＩＥＥＥ１３９４等の接続部を持つ。接続ポート１６１４は、インタフェース１６０７、及び外部バス１６０６、ブリッジ１６０５、ホストバス１６０４等を介してＣＰＵ１６０１等に接続されている。通信部１６１６は、通信回線に接続され、外部とのデータ通信処理を実行する。データ読み取り部１６１７は、例えばスキャナであり、ドキュメントの読み取り処理を実行する。データ出力部１６１８は、例えばプリンタであり、ドキュメントデータの出力処理を実行する。
【００７２】
なお、図１６に示す画像処理装置２００のハードウェア構成は、１つの構成例を示すものであり、本実施の形態は、図１６に示す構成に限らず、本実施の形態において説明したモジュールを実行可能な構成であればよい。例えば、図１６に示すシステムが複数互いに通信回線によって接続されていて互いに協調動作するようにしてもよい。
【００７３】
なお、説明したプログラムについては、記録媒体に格納して提供してもよく、また、そのプログラムを通信手段によって提供してもよい。その場合、例えば、前記説明したプログラムについて、「プログラムを記録したコンピュータ読み取り可能な記録媒体」の発明として捉えてもよい。
「プログラムを記録したコンピュータ読み取り可能な記録媒体」とは、プログラムのインストール、実行、プログラムの流通等のために用いられる、プログラムが記録されたコンピュータで読み取り可能な記録媒体をいう。
なお、記録媒体としては、例えば、デジタル・バーサタイル・ディスク（ＤＶＤ）であって、ＤＶＤフォーラムで策定された規格である「ＤＶＤ−Ｒ、ＤＶＤ−ＲＷ、ＤＶＤ−ＲＡＭ等」、ＤＶＤ＋ＲＷで策定された規格である「ＤＶＤ＋Ｒ、ＤＶＤ＋ＲＷ等」、コンパクトディスク（ＣＤ）であって、読出し専用メモリ（ＣＤ−ＲＯＭ）、ＣＤレコーダブル（ＣＤ−Ｒ）、ＣＤリライタブル（ＣＤ−ＲＷ）等、ブルーレイ・ディスク（Ｂｌｕ−ｒａｙ（登録商標）  Ｄｉｓｃ）、光磁気ディスク（ＭＯ）、フレキシブルディスク（ＦＤ）、磁気テープ、ハードディスク、読出し専用メモリ（ＲＯＭ）、電気的消去及び書換可能な読出し専用メモリ（ＥＥＰＲＯＭ（登録商標））、フラッシュ・メモリ、ランダム・アクセス・メモリ（ＲＡＭ）、ＳＤ（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ）メモリーカード等が含まれる。
そして、前記のプログラムの全体又はその一部は、前記記録媒体に記録して保存や流通等させてもよい。また、通信によって、例えば、ローカル・エリア・ネットワーク（ＬＡＮ）、メトロポリタン・エリア・ネットワーク（ＭＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）、インターネット、イントラネット、エクストラネット等に用いられる有線ネットワーク、又は無線通信ネットワーク、さらにこれらの組み合わせ等の伝送媒体を用いて伝送させてもよく、また、搬送波に乗せて搬送させてもよい。
さらに、前記のプログラムは、他のプログラムの一部分若しくは全部であってもよく、又は別個のプログラムと共に記録媒体に記録されていてもよい。また、複数の記録媒体に分割して記録されていてもよい。また、圧縮や暗号化等、復元可能であればどのような態様で記録されていてもよい。
【符号の説明】
【００７４】
１００…画像処理モジュール
１０５…制御用モジュール
１１０…制御用プロセッサ
１１５…アプリケーションモジュール
１２０…通信モジュール
１２５…記憶モジュール
１３０…画像処理用プロセッサ
１３５…画像処理用ソフトウェアモジュール
１５０…画像処理制御用モジュール
１５５…組込システム用プロセッサ
１６０…画像処理用デバイスドライバ
１６５…通信モジュール
２００…画像処理装置
２１０…印刷／スキャン／ファックスモジュール
２２０…ユーザーインタフェースモジュール
３００…画像処理モジュール
３０５…制御用モジュール
３１０…制御用プロセッサ
３１５…アプリケーションモジュール
３２０…通信モジュール
３５０…画像処理制御用モジュール
３５５…組込システム用プロセッサ
３５７…ＡＳＩＣ
３６０…画像処理用デバイスドライバ
３６５…通信モジュール
５００…画像処理モジュール
５０５…制御用モジュール
５１０…制御用プロセッサ
５１５…アプリケーションモジュール
５２０…通信モジュール
５６５…通信モジュール
５３０…画像処理用プロセッサ
５３５…画像処理用ソフトウェアモジュール
５５０…画像処理制御用モジュール
５５５…組込システム用プロセッサ
５６０…画像処理用デバイスドライバ
【図１】
2019185697.tif 000003
【図２】
2019185697.tif 000004
【図３】
2019185697.tif 000005
【図４】
2019185697.tif 000006
【図５】
2019185697.tif 000007
【図６】
2019185697.tif 000008
【図７】
2019185697.tif 000009
【図８】
2019185697.tif 000010
【図９】
2019185697.tif 000011
【図１０】
2019185697.tif 000012
【図１１】
2019185697.tif 000013
【図１２】
2019185697.tif 000014
【図１３】
2019185697.tif 000015
【図１４】
2019185697.tif 000016
【図１５】
2019185697.tif 000017
【図１６】
2019185697.tif 000018