(57)【要約】【課題】  ネットワークを介して画像表示装置に画像を転送する際の転送スピードを向上させる技術を提供する。【解決手段】  フック処理モジュール４００は、アプリケーションプログラム１２２によって発行される特定の描画命令をフックして先取りし、取得した描画命令に従ってＲＡＭ１０６内の画像データ格納領域１０６ｂに画像を描画するとともに、その描画領域を示す第１の変化領域情報Ａ１をＲＡＭ１０６に格納する。また、描画モジュール１２４，１２６，１２８は、ＶＲＡＭ１１４に描画するとともに、その描画領域を示す第２の変化領域情報Ａ２をＲＡＭ１０６に格納する。ＶＮＣサーバ１３０は、画像の転送を実行し、第１の変化領域情報Ａ１を転送ヒストリ情報ＨＡ１として保存する。画像の転送時には、第１と第２の変化領域の和領域、または、第２の変化領域そのものが転送対象となる。【選択図】  図６
2006060596.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して画像表示装置に画像を供給して表示させるための画像供給装置であって、
画像の描画命令を発行可能なアプリケーションプログラムと、
前記アプリケーションプログラムによって発行される描画命令を処理するための描画モジュールと、
前記アプリケーションプログラムによって発行される特定の描画命令をフックして先取りし、取得した描画命令に従って汎用メモリ内の特定の転送用画像格納領域に画像を描画するフック処理モジュールと、
前記転送用画像格納領域から画像を取得するとともに、取得した画像を前記ネットワークを介して前記画像表示装置に転送する画像転送処理モジュールと、
を備え、
前記フック処理モジュールは、前記転送用画像格納領域の中で前記特定の描画命令に応じて画像が描画される領域である第１の変化領域を示す第１の変化領域情報を前記汎用メモリ内に書き込む機能と、前記特定の描画命令を処理した後に当該描画命令を前記描画モジュールに供給する機能とを有し、
前記描画モジュールは、前記アプリケーションプログラム又は前記フック処理モジュールから受けた描画命令に従ってフレームメモリ内に画像を描画する機能と、前記フレームメモリの中で前記描画命令に応じて画像が描画される領域である第２の変化領域を示す第２の変化領域情報を前記汎用メモリ内に書き込む機能とを有し、
前記画像転送処理モジュールは、
（ｉ）所定の先行期間における転送処理において存在した前記第１の変化領域をヒストリ領域として設定し当該ヒストリ領域を表す転送ヒストリ情報を前記汎用メモリ内に書き込む機能と、
（ｉｉ）前記汎用メモリ内に格納されている前記第１と第２の変化領域情報及び前記転送ヒストリ情報を参照して、前記第２の変化領域のうちで前記第１の変化領域と前記ヒストリ領域のいずれにも含まれない領域に相当する画像部分を前記フレームメモリから取得し、
（ｉｉｉ）前記第１の変化領域に相当する画像部分と、前記第２の変化領域のうちで前記第１の変化領域に含まれずかつ前記ヒストリ領域に含まれる領域に相当する画像部分とを前記フレームメモリから取得することなく前記転送用画像格納領域から取得し、
（ｉｖ）取得した画像部分を、前記第１と第２の変化領域の和である画面更新領域を示す画面更新領域情報とともに前記ネットワークを介して前記画像表示装置に転送することを特徴とする画像供給装置。
【請求項２】
ネットワークを介して画像表示装置に画像を供給して表示させるための画像供給装置であって、
画像の描画命令を発行可能なアプリケーションプログラムと、
前記アプリケーションプログラムによって発行される描画命令を処理するための描画モジュールと、
前記アプリケーションプログラムによって発行される特定の描画命令をフックして先取りし、取得した描画命令に従って汎用メモリ内の特定の転送用画像格納領域に画像を描画するフック処理モジュールと、
前記転送用画像格納領域から画像を取得するとともに、取得した画像を前記ネットワークを介して前記画像表示装置に転送する画像転送処理モジュールと、
を備え、
前記フック処理モジュールは、前記転送用画像格納領域の中で前記特定の描画命令に応じて画像が描画される領域である第１の変化領域を示す第１の変化領域情報を前記汎用メモリ内に書き込む機能と、前記特定の描画命令を処理した後に当該描画命令を前記描画モジュールに供給する機能とを有し、
前記描画モジュールは、前記アプリケーションプログラム又は前記フック処理モジュールから受けた描画命令に従ってフレームメモリ内に画像を描画する機能と、前記フレームメモリの中で前記描画命令に応じて画像が描画される領域である第２の変化領域を示す第２の変化領域情報を前記汎用メモリ内に書き込む機能とを有し、
前記画像転送処理モジュールは、
（ｉ）所定の先行期間における転送処理において存在した前記第１の変化領域をヒストリ領域として設定し当該ヒストリ領域を表す転送ヒストリ情報を前記汎用メモリ内に書き込む機能と、
（ｉｉ）前記汎用メモリ内に格納されている前記第１と第２の変化領域情報及び前記転送ヒストリ情報を参照して、前記第２の変化領域のうちで前記第１の変化領域と前記ヒストリ領域のいずれにも含まれない領域に相当する画像部分を前記フレームメモリから取得し、
（ｉｉｉ）前記第２の変化領域のうちで前記第１の変化領域と前記ヒストリ領域の少なくとも一方に含まれる領域に相当する画像部分を前記フレームメモリから取得することなく前記転送用画像格納領域から取得し、
（ｉｖ）取得した画像部分を、前記第２の変化領域と同一である画面更新領域を示す画面更新領域情報とともに前記ネットワークを介して前記画像表示装置に転送することを特徴とする画像供給装置。
【請求項３】
請求項１又は２記載の画像供給装置であって、
前記画像転送処理モジュールは、前記第２の変化領域のうちで前記第１の変化領域と前記ヒストリ領域のいずれにも含まれない領域に相当する画像部分を前記フレームメモリから取得して前記転送用画像格納領域に書き込んだ後に、前記画面更新領域に相当する画像部分を前記転送用画像格納領域から取得する、画像供給装置。
【請求項４】
請求項１ないし３のいずれかに記載の画像供給装置であって、
前記画像転送処理モジュールは、
前記画像転送処理モジュールの起動時に前記フック処理モジュールを前記アプリケーションプログラムにロードし、前記画像転送処理モジュールの実行終了時に前記フック処理モジュールを前記アプリケーションプログラムからアンロードするように構成されている、画像供給装置。
【請求項５】
ネットワークを介して画像表示装置に画像を供給して表示させるための画像供給装置において利用される画像転送処理モジュールであって、
前記画像供給装置は、画像の描画命令を発行可能なアプリケーションプログラムと、前記アプリケーションプログラムによって発行される描画命令を処理するための描画モジュールと、前記アプリケーションプログラムによって発行される特定の描画命令をフックして先取りし、取得した描画命令に従って汎用メモリ内の特定の転送用画像格納領域に画像を描画するフック処理モジュールと、を備えており、
前記画像転送処理モジュールは、前記転送用画像格納領域から画像を取得するとともに、取得した画像を前記ネットワークを介して前記画像表示装置に転送する機能を有しており、
前記フック処理モジュールは、前記フックによって取得した描画命令に従って前記転送用画像格納領域に画像を描画する機能と、前記転送用画像格納領域の中で前記特定の描画命令に応じて画像が描画される領域である第１の変化領域を示す第１の変化領域情報を前記汎用メモリ内に書き込む機能と、前記特定の描画命令を処理した後に当該描画命令を前記描画モジュールに供給する機能とを有し、
前記描画モジュールは、前記アプリケーションプログラム又は前記フック処理モジュールから受けた描画命令に従ってフレームメモリ内に画像を描画する機能と、前記フレームメモリの中で前記描画命令に応じて画像が描画される領域である第２の変化領域を示す第２の変化領域情報を前記汎用メモリ内に書き込む機能とを有し、
前記画像転送処理モジュールは、
（ｉ）所定の先行期間における転送処理において存在した前記第１の変化領域をヒストリ領域として設定し当該ヒストリ領域を表す転送ヒストリ情報を前記汎用メモリ内に書き込む機能と、
（ｉｉ）前記汎用メモリ内に格納されている前記第１と第２の変化領域情報及び前記転送ヒストリ情報を参照して、前記第２の変化領域のうちで前記第１の変化領域と前記ヒストリ領域のいずれにも含まれない領域に相当する画像部分を前記フレームメモリから取得し、
（ｉｉｉ）前記第１の変化領域に相当する画像部分と、前記第２の変化領域のうちで前記第１の変化領域に含まれずかつ前記ヒストリ領域に含まれる領域に相当する画像部分とを前記フレームメモリから取得することなく前記転送用画像格納領域から取得し、
（ｉｖ）取得した画像部分を、前記第１と第２の変化領域の和である画面更新領域を示す画面更新領域情報とともに前記ネットワークを介して前記画像表示装置に転送することを特徴とする画像転送処理モジュール。
【請求項６】
ネットワークを介して画像表示装置に画像を供給して表示させるための画像供給装置において利用される画像転送処理モジュールであって、
前記画像供給装置は、画像の描画命令を発行可能なアプリケーションプログラムと、前記アプリケーションプログラムによって発行される描画命令を処理するための描画モジュールと、前記アプリケーションプログラムによって発行される特定の描画命令をフックして先取りし、取得した描画命令に従って汎用メモリ内の特定の転送用画像格納領域に画像を描画するフック処理モジュールと、を備えており、
前記画像転送処理モジュールは、前記転送用画像格納領域から画像を取得するとともに、取得した画像を前記ネットワークを介して前記画像表示装置に転送する機能を有しており、
前記フック処理モジュールは、前記フックによって取得した描画命令に従って前記転送用画像格納領域に画像を描画する機能と、前記転送用画像格納領域の中で前記特定の描画命令に応じて画像が描画される領域である第１の変化領域を示す第１の変化領域情報を前記汎用メモリ内に書き込む機能と、前記特定の描画命令を処理した後に当該描画命令を前記描画モジュールに供給する機能とを有し、
前記描画モジュールは、前記アプリケーションプログラム又は前記フック処理モジュールから受けた描画命令に従ってフレームメモリ内に画像を描画する機能と、前記フレームメモリの中で前記描画命令に応じて画像が描画される領域である第２の変化領域を示す第２の変化領域情報を前記汎用メモリ内に書き込む機能とを有し、
前記画像転送処理モジュールは、
（ｉ）所定の先行期間における転送処理において存在した前記第１の変化領域をヒストリ領域として設定し当該ヒストリ領域を表す転送ヒストリ情報を前記汎用メモリ内に書き込む機能と、
（ｉｉ）前記汎用メモリ内に格納されている前記第１と第２の変化領域情報及び前記転送ヒストリ情報を参照して、前記第２の変化領域のうちで前記第１の変化領域と前記ヒストリ領域のいずれにも含まれない領域に相当する画像部分を前記フレームメモリから取得し、
（ｉｉｉ）前記第２の変化領域のうちで前記第１の変化領域と前記ヒストリ領域とのうちの少なくとも一方に含まれる領域に相当する画像部分を前記フレームメモリから取得することなく前記転送用画像格納領域から取得し、
（ｉｖ）取得した画像部分を、前記第２の変化領域と同一である画面更新領域を示す画面更新領域情報とともに前記ネットワークを介して前記画像表示装置に転送することを特徴とする画像転送処理モジュール。
【請求項７】
ネットワークを介して画像表示装置に画像を供給して表示させる方法であって、
（ａ）アプリケーションプログラムによって発行される描画命令を処理するための描画モジュールと、前記アプリケーションプログラムによって発行される特定の描画命令をフックして先取りし、取得した描画命令に従って汎用メモリ内の特定の転送用画像格納領域に画像を描画するフック処理モジュールと、を準備する工程と、
（ｂ）前記フック処理モジュールが、前記アプリケーションプログラムによって発行された特定の描画命令に応じて、前記汎用メモリ内の特定の転送用画像格納領域に画像を描画する工程と、
（ｃ）前記フック処理モジュールが、前記転送用画像格納領域の中で前記特定の描画命令に応じて画像が描画される領域である第１の変化領域を示す第１の変化領域情報を前記汎用メモリ内に書き込む工程と、
（ｄ）前記フック処理モジュールが、前記特定の描画命令を処理した後に当該描画命令を前記描画モジュールに供給する工程と、
（ｅ）前記描画モジュールが、前記アプリケーションプログラム又は前記フック処理モジュールから受けた描画命令に従ってフレームメモリ内に画像を描画する工程と、
（ｆ）前記描画モジュールが、前記フレームメモリの中で前記描画命令に応じて画像が描画される領域である第２の変化領域を示す第２の変化領域情報を前記汎用メモリ内に書き込む工程と、
（ｇ）所定の先行期間における転送処理において存在した前記第１の変化領域をヒストリ領域として設定し当該ヒストリ領域を表す転送ヒストリ情報を前記汎用メモリ内に書き込む工程と、
（ｈ）前記汎用メモリ内に格納されている前記第１と第２の変化領域情報及び前記転送ヒストリ情報を参照して、前記第２の変化領域のうちで前記第１の変化領域と前記ヒストリ領域のいずれにも含まれない領域に相当する画像部分を前記フレームメモリから取得する工程と、
（ｉ）前記第１の変化領域に相当する画像部分と、前記第２の変化領域のうちで前記第１の変化領域に含まれずかつ前記ヒストリ領域に含まれる領域に相当する画像部分とを前記フレームメモリから取得することなく前記転送用画像格納領域から取得する工程と、
（ｊ）取得した画像部分を、前記第１と第２の変化領域の和である画面更新領域を示す画面更新領域情報とともに前記ネットワークを介して前記画像表示装置に転送する工程と、
を備えることを特徴とする画像供給方法。
【請求項８】
ネットワークを介して画像表示装置に画像を供給して表示させる方法であって、
（ａ）アプリケーションプログラムによって発行される描画命令を処理するための描画モジュールと、前記アプリケーションプログラムによって発行される特定の描画命令をフックして先取りし、取得した描画命令に従って汎用メモリ内の特定の転送用画像格納領域に画像を描画するフック処理モジュールと、を準備する工程と、
（ｂ）前記フック処理モジュールが、前記アプリケーションプログラムによって発行された特定の描画命令に応じて、前記汎用メモリ内の特定の転送用画像格納領域に画像を描画する工程と、
（ｃ）前記フック処理モジュールが、前記転送用画像格納領域の中で前記特定の描画命令に応じて画像が描画される領域である第１の変化領域を示す第１の変化領域情報を前記汎用メモリ内に書き込む工程と、
（ｄ）前記フック処理モジュールが、前記特定の描画命令を処理した後に当該描画命令を前記描画モジュールに供給する工程と、
（ｅ）前記描画モジュールが、前記アプリケーションプログラム又は前記フック処理モジュールから受けた描画命令に従ってフレームメモリ内に画像を描画する工程と、
（ｆ）前記描画モジュールが、前記フレームメモリの中で前記描画命令に応じて画像が描画される領域である第２の変化領域を示す第２の変化領域情報を前記汎用メモリ内に書き込む工程と、
（ｇ）所定の先行期間における転送処理において存在した前記第１の変化領域をヒストリ領域として設定し当該ヒストリ領域を表す転送ヒストリ情報を前記汎用メモリ内に書き込む工程と、
（ｈ）前記汎用メモリ内に格納されている前記第１と第２の変化領域情報及び前記転送ヒストリ情報を参照して、前記第２の変化領域のうちで前記第１の変化領域と前記ヒストリ領域のいずれにも含まれない領域に相当する画像部分を前記フレームメモリから取得する工程と、
（ｉ）前記第２の変化領域のうちで前記第１の変化領域と前記ヒストリ領域の少なくとも一方に含まれる領域に相当する画像部分とを前記フレームメモリから取得することなく前記転送用画像格納領域から取得する工程と、
（ｊ）取得した画像部分を、前記第２の変化領域と同一でらう画面更新領域を示す画面更新領域情報とともに前記ネットワークを介して前記画像表示装置に転送する工程と、
を備えることを特徴とする画像供給方法。
【請求項９】
ネットワークを介して画像表示装置に画像を供給して表示させるための画像供給装置において利用される画像転送処理モジュールを記録したコンピュータ読取可能な記録媒体であって、
前記画像供給装置は、画像の描画命令を発行可能なアプリケーションプログラムと、前記アプリケーションプログラムによって発行される描画命令を処理するための描画モジュールと、前記アプリケーションプログラムによって発行される特定の描画命令をフックして先取りし、取得した描画命令に従って汎用メモリ内の特定の転送用画像格納領域に画像を描画するフック処理モジュールと、を備えており、
前記画像転送処理モジュールは、前記転送用画像格納領域から画像を取得するとともに、取得した画像を前記ネットワークを介して前記画像表示装置に転送する処理をコンピュータに実現させるものであり、
前記フック処理モジュールは、前記フックによって取得した描画命令に従って前記転送用画像格納領域に画像を描画する機能と、前記転送用画像格納領域の中で前記特定の描画命令に応じて画像が描画される領域である第１の変化領域を示す第１の変化領域情報を前記汎用メモリ内に書き込む機能と、前記特定の描画命令を処理した後に当該描画命令を前記描画モジュールに供給する機能とを有し、
前記描画モジュールは、前記アプリケーションプログラム又は前記フック処理モジュールから受けた描画命令に従ってフレームメモリ内に画像を描画する機能と、前記フレームメモリの中で前記描画命令に応じて画像が描画される領域である第２の変化領域を示す第２の変化領域情報を前記汎用メモリ内に書き込む機能とを有し、
前記画像転送処理モジュールは、
（ｉ）所定の先行期間における転送処理において存在した前記第１の変化領域をヒストリ領域として設定し当該ヒストリ領域を表す転送ヒストリ情報を前記汎用メモリ内に書き込む機能と、
（ｉｉ）前記汎用メモリ内に格納されている前記第１と第２の変化領域情報及び前記転送ヒストリ情報を参照して、前記第２の変化領域のうちで前記第１の変化領域と前記ヒストリ領域のいずれにも含まれない領域に相当する画像部分を前記フレームメモリから取得し、
（ｉｉｉ）前記第１の変化領域に相当する画像部分と、前記第２の変化領域のうちで前記第１の変化領域に含まれずかつ前記ヒストリ領域に含まれる領域に相当する画像部分とを前記フレームメモリから取得することなく前記転送用画像格納領域から取得し、
（ｉｖ）取得した画像部分を、前記第１と第２の変化領域の和である画面更新領域を示す画面更新領域情報とともに前記ネットワークを介して前記画像表示装置に転送する機能を有する、記録媒体。
【請求項１０】
ネットワークを介して画像表示装置に画像を供給して表示させるための画像供給装置において利用される画像転送処理モジュールを記録したコンピュータ読取可能な記録媒体であって、
前記画像供給装置は、画像の描画命令を発行可能なアプリケーションプログラムと、前記アプリケーションプログラムによって発行される描画命令を処理するための描画モジュールと、前記アプリケーションプログラムによって発行される特定の描画命令をフックして先取りし、取得した描画命令に従って汎用メモリ内の特定の転送用画像格納領域に画像を描画するフック処理モジュールと、を備えており、
前記画像転送処理モジュールは、前記転送用画像格納領域から画像を取得するとともに、取得した画像を前記ネットワークを介して前記画像表示装置に転送する処理をコンピュータに実現させるものであり、
前記フック処理モジュールは、前記フックによって取得した描画命令に従って前記転送用画像格納領域に画像を描画する機能と、前記転送用画像格納領域の中で前記特定の描画命令に応じて画像が描画される領域である第１の変化領域を示す第１の変化領域情報を前記汎用メモリ内に書き込む機能と、前記特定の描画命令を処理した後に当該描画命令を前記描画モジュールに供給する機能とを有し、
前記描画モジュールは、前記アプリケーションプログラム又は前記フック処理モジュールから受けた描画命令に従ってフレームメモリ内に画像を描画する機能と、前記フレームメモリの中で前記描画命令に応じて画像が描画される領域である第２の変化領域を示す第２の変化領域情報を前記汎用メモリ内に書き込む機能とを有し、
前記画像転送処理モジュールは、
（ｉ）所定の先行期間における転送処理において存在した前記第１の変化領域をヒストリ領域として設定し当該ヒストリ領域を表す転送ヒストリ情報を前記汎用メモリ内に書き込む機能と、
（ｉｉ）前記汎用メモリ内に格納されている前記第１と第２の変化領域情報及び前記転送ヒストリ情報を参照して、前記第２の変化領域のうちで前記第１の変化領域と前記ヒストリ領域のいずれにも含まれない領域に相当する画像部分を前記フレームメモリから取得し、
（ｉｉｉ）前記第２の変化領域のうちで前記第１の変化領域と前記ヒストリ領域の少なくとも一方に含まれる領域に相当する画像部分を前記フレームメモリから取得することなく前記転送用画像格納領域から取得し、
（ｉｖ）取得した画像部分を、前記第２の変化領域と同一である画面更新領域を示す画面更新領域情報とともに前記ネットワークを介して前記画像表示装置に転送する機能を有することを特徴とする記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを介して接続された画像供給装置と画像表示装置とを含む画像表示システムに関する。
【背景技術】
【０００２】
画像を投写表示するプロジェクタの一種として、ネットワークを介してパーソナルコンピュータから供給された画像を投写表示することができるプロジェクタ（以下、「ネットワークプロジェクタ」とも呼ぶ）が提案されている(例えば特許文献１)。また、このようなネットワークプロジェクタに、ネットワークを介してパーソナルコンピュータから画像を供給するために、ＶＮＣ（Virtual Network Computing）とよばれる技術が利用されている。
【０００３】
【特許文献１】国際公開第０１／０９３５８３号パンフレット
【０００４】
しかしながら、ＶＮＣを利用する場合には、コンピュータ内のＶＲＡＭ（フレームメモリ）からＲＡＭ（システムメモリ）に画像を一旦転送し、その後、ＲＡＭから画像を取得してネットワークを介してプロジェクタに転送している。ＶＲＡＭからＲＡＭへの画像データの転送にはかなりの時間が掛かるため、全体として十分な転送速度が得られない場合があった。このような問題は、ネットワークプロジェクタシステムに限らず、一般に、ネットワークを介して画像供給装置から画像表示装置に画像を供給して表示させるシステムに共通する問題であった。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明は、ネットワークを介して画像表示装置に画像を転送する際の転送スピードを向上させる技術を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記した目的の少なくとも一部を達成するために、本発明による第１の画像供給装置は、ネットワークを介して画像表示装置に画像を供給して表示させるための画像供給装置であって、
画像の描画命令を発行可能なアプリケーションプログラムと、
前記アプリケーションプログラムによって発行される描画命令を処理するための描画モジュールと、
前記アプリケーションプログラムによって発行される特定の描画命令をフックして先取りし、取得した描画命令に従って汎用メモリ内の特定の転送用画像格納領域に画像を描画するフック処理モジュールと、
前記転送用画像格納領域から画像を取得するとともに、取得した画像を前記ネットワークを介して前記画像表示装置に転送する画像転送処理モジュールと、
を備え、
前記フック処理モジュールは、前記転送用画像格納領域の中で前記特定の描画命令に応じて画像が描画される領域である第１の変化領域を示す第１の変化領域情報を前記汎用メモリ内に書き込む機能と、前記特定の描画命令を処理した後に当該描画命令を前記描画モジュールに供給する機能とを有し、
前記描画モジュールは、前記アプリケーションプログラム又は前記フック処理モジュールから受けた描画命令に従ってフレームメモリ内に画像を描画する機能と、前記フレームメモリの中で前記描画命令に応じて画像が描画される領域である第２の変化領域を示す第２の変化領域情報を前記汎用メモリ内に書き込む機能とを有し、
前記画像転送処理モジュールは、
（ｉ）所定の先行期間における転送処理において存在した前記第１の変化領域をヒストリ領域として設定し当該ヒストリ領域を表す転送ヒストリ情報を前記汎用メモリ内に書き込む機能と、
（ｉｉ）前記汎用メモリ内に格納されている前記第１と第２の変化領域情報及び前記転送ヒストリ情報を参照して、前記第２の変化領域のうちで前記第１の変化領域と前記ヒストリ領域のいずれにも含まれない領域に相当する画像部分を前記フレームメモリから取得し、
（ｉｉｉ）前記第１の変化領域に相当する画像部分と、前記第２の変化領域のうちで前記第１の変化領域に含まれずかつ前記ヒストリ領域に含まれる領域に相当する画像部分とを前記フレームメモリから取得することなく前記転送用画像格納領域から取得し、
（ｉｖ）取得した画像部分を、前記第１と第２の変化領域の和である画面更新領域を示す画面更新領域情報とともに前記ネットワークを介して前記画像表示装置に転送することを特徴とする。
【０００７】
この画像供給装置によれば、特定の描画命令が発行された場合には、描画モジュールの代わりにフック処理モジュールがその描画命令をフックして取得し、汎用メモリ内の画像を描画するので、従来のように、転送対象となる画像の全体をＶＲＡＭからＲＡＭ（汎用メモリ）に転送する場合に比べて転送処理全体のスピードを向上させることができる。また、第２の変化領域のうちで第１の変化領域とヒストリ領域のいずれにもに含まれない領域はフック処理モジュールでは描画されていない領域であるが、この画像はフレームメモリから取得するので、欠落無しに画像を転送することが可能である。さらに、第１の変化領域に相当する画像部分と、第２の変化領域のうちで第１の変化領域に含まれずかつヒストリ領域に含まれる領域に相当する画像部分をフレームメモリから取得することなく転送用画像格納領域から取得するので、これらの画像部分の取得に要する時間を短縮することができる。
【０００８】
本発明による第２の画像供給装置は、ネットワークを介して画像表示装置に画像を供給して表示させるための画像供給装置であって、
画像の描画命令を発行可能なアプリケーションプログラムと、
前記アプリケーションプログラムによって発行される描画命令を処理するための描画モジュールと、
前記アプリケーションプログラムによって発行される特定の描画命令をフックして先取りし、取得した描画命令に従って汎用メモリ内の特定の転送用画像格納領域に画像を描画するフック処理モジュールと、
前記転送用画像格納領域から画像を取得するとともに、取得した画像を前記ネットワークを介して前記画像表示装置に転送する画像転送処理モジュールと、
を備え、
前記フック処理モジュールは、前記転送用画像格納領域の中で前記特定の描画命令に応じて画像が描画される領域である第１の変化領域を示す第１の変化領域情報を前記汎用メモリ内に書き込む機能と、前記特定の描画命令を処理した後に当該描画命令を前記描画モジュールに供給する機能とを有し、
前記描画モジュールは、前記アプリケーションプログラム又は前記フック処理モジュールから受けた描画命令に従ってフレームメモリ内に画像を描画する機能と、前記フレームメモリの中で前記描画命令に応じて画像が描画される領域である第２の変化領域を示す第２の変化領域情報を前記汎用メモリ内に書き込む機能とを有し、
前記画像転送処理モジュールは、
（ｉ）所定の先行期間における転送処理において存在した前記第１の変化領域をヒストリ領域として設定し当該ヒストリ領域を表す転送ヒストリ情報を前記汎用メモリ内に書き込む機能と、
（ｉｉ）前記汎用メモリ内に格納されている前記第１と第２の変化領域情報及び前記転送ヒストリ情報を参照して、前記第２の変化領域のうちで前記第１の変化領域と前記ヒストリ領域のいずれにも含まれない領域に相当する画像部分を前記フレームメモリから取得し、
（ｉｉｉ）前記第２の変化領域のうちで前記第１の変化領域と前記ヒストリ領域の少なくとも一方に含まれる領域に相当する画像部分を前記フレームメモリから取得することなく前記転送用画像格納領域から取得し、
（ｉｖ）取得した画像部分を、前記第２の変化領域と同一である画面更新領域を示す画面更新領域情報とともに前記ネットワークを介して前記画像表示装置に転送することを特徴とする。
【０００９】
この第２の画像供給装置においても、特定の描画命令が発行された場合には、描画モジュールの代わりにフック処理モジュールがその描画命令をフックして取得し、汎用メモリ内の画像を描画するので、従来のように、転送対象となる画像の全体をＶＲＡＭからＲＡＭ（汎用メモリ）に転送する場合に比べて転送処理全体のスピードを向上させることができる。また、第２の変化領域のうちで第１の変化領域とヒストリ領域のいずれにもに含まれない領域はフック処理モジュールでは描画されていない領域であるが、この画像はフレームメモリから取得するので、欠落無しに画像を転送することが可能である。さらに、第２の変化領域のうちで第１の変化領域とヒストリ領域の少なくとも一方に含まれる領域に相当する画像部分をフレームメモリから取得することなく転送用画像格納領域から取得するので、これらの画像部分の取得に要する時間を短縮することができる。
【００１０】
なお、前記画像転送処理モジュールは、前記第２の変化領域のうちで前記第１の変化領域とヒストリ領域のいずれにも含まれない領域に相当する画像部分を前記フレームメモリから取得して前記転送用画像格納領域に書き込んだ後に、前記画面更新領域に相当する画像部分を前記転送用画像格納領域から取得するようにしてもよい。
【００１１】
この構成によれば、ネットワークを介して最終的に画像を転送する際に、画像を１つの転送用画像格納領域から取得できるので、処理が単純になる。
【００１２】
なお、前記画像転送処理モジュールは、
前記画像転送処理モジュールの起動時に前記フック処理モジュールを前記アプリケーションプログラムにロードし、前記画像転送処理モジュールの実行終了時に前記フック処理モジュールを前記アプリケーションプログラムからアンロードするように構成されていてもよい。
【００１３】
この構成によれば、画像転送処理が行われる場合にのみフック処理モジュールが働くので、フック処理が不要な場合にフック処理モジュールが望ましくフック処理を実行してしまうことを防止することができる。
【００１４】
なお、本発明は種々の形態で実現することが可能であり、例えば、画像表示システム、画像表示システムを構成する画像供給装置及び画像表示装置、画像供給装置に利用されるフック処理モジュール及び画像転送処理モジュール、画像供給方法、それら方法又は装置を実現するためのコンピュータプログラム、それらのコンピュータプログラムを記録した記録媒体などの種々の態様で実現することが可能である。
【発明を実施するための最良の形態】
【００１５】
以下、本発明の実施の形態を以下の順序で説明する。
Ａ．第１実施例：
Ｂ．第２実施例：
Ｃ．変形例：
【００１６】
Ａ．第１実施例：
図１は本発明の一実施例として画像表示システムの構成を示す説明図である。本実施例の画像表示システム１０は、画像供給装置としてのパーソナルコンピュータ１００と、画像表示装置としてのプロジェクタ２００と、コンピュータ１００とプロジェクタ２００とをつなぐネットワーク３００と、を備えている。コンピュータ１００は、ネットワーク３００を介して画像をプロジェクタ２００供給して、プロジェクタ２００に画像を投写させて投写表示画面７０に表示させる機能を有している。
【００１７】
図２は、コンピュータ１００とプロジェクタ２００の内部構成を示すブロック図である。コンピュータ１００は、ＣＰＵ１０２と、ＲＯＭ１０４と、汎用メモリ（「システムメモリ」とも呼ぶ）としてのＲＡＭ１０６と、ハードディスクドライブ１０８と、キーボードやポインティングデバイスなどで構成される入力部１１０と、ネットワークインタフェース部１１２と、フレームメモリとしてのＶＲＡＭ１１４と、グラフィックコントローラ１１６と、液晶ディスプレイなどの表示デバイス１１８と、これら各要素を接続するバス１２０と、を備えている。
【００１８】
ＲＡＭ１０６には、アプリケーションプログラム１２２と、グラフィカルデバイスインタフェース（ＧＤＩ：Graphics Device Interface）１２４と、ディスプレイドライバ１２６と、プロジェクタドライバ１２８と、画像転送処理モジュールとしてのＶＮＣサーバ１３０と、を含む各種コンピュータプログラムが格納されている。なお、ＧＤＩ１２４と、ディスプレイドライバ１２６と、プロジェクタドライバ１２８は、オペレーティングシステムの一部として機能する。なお、本実施例においては、オペレーティングシステムとして、マイクロソフト社によって提供されるWindows（登録商標）を想定している。このような各種コンピュータプログラムは、フレキシブルディスクやＣＤ−ＲＯＭ等の、コンピュータ読み取り可能な記録媒体に記録された形態で提供される。
【００１９】
プロジェクタ２００は、ＣＰＵ２０２と、ＲＯＭ２０４と、ＲＡＭ２０６と、各種の操作ボタンを含む入力部２１０と、ネットワークインタフェース部２１２と、画像処理部２１４と、光源ランプと液晶パネルと投写光学系を含む投写部２１６と、これら各要素を接続するバス２１８と、を備えている。ＲＯＭ２０４には、画像処理ドライバ２２８と、ＶＮＣクライアント２３０とを含む各種コンピュータプログラムが格納されている。
【００２０】
以下ではまず、実施例におけるコンピュータ１００の機能を説明する前に、比較例として、ＶＮＣサーバを用いた従来のコンピュータの機能を説明する。
【００２１】
図３は、比較例におけるコンピュータのソフトウェアとハードウェアの階層構造を示す説明図である。アプリケーションプログラム１２２とＶＮＣサーバ１３０は、アプリケーションプログラム層（「ユーザアプリケーションプログラム層」とも呼ぶ）に属する。ＧＤＩ１２４とディスプレイドライバ１２６とプロジェクタドライバ１２８は、カーネル層に属する。また、汎用メモリとしてのＲＡＭ１０６と、ネットワークインタフェース部１１２と、ＶＲＡＭ１１４と、グラフィックコントローラ１１６と、表示デバイス１１８は、ハードウェア層に属する。
【００２２】
第１実施例では、アプリケーションプログラム１２２としてプレゼンテーションプログラム（例えばマイクロソフト社のPowerPoint）を使用した場合について説明する。
【００２３】
アプリケーションプログラム１２２は、ＧＤＩ１２４に対して各種の描画要求を発行する。ＧＤＩ１２４は、表示装置（コンピュータ１００の表示デバイス１１８やプロジェクタ２００）や印刷装置（図示せず）などへの描画を統一的に管理しているコンピュータプログラムである。良く知られているように、ＧＤＩ１２４は、「ＧＤＩ関数」と呼ばれる描画に関するアプリケーションプログラムインタフェース（ＡＰＩ：Application Program Interface）を各種のアプリケーションプログラムに対して提供している。なお、ＡＰＩとは、一般に、アプリケーションプログラムがオペレーティングシステムの持つ様々な機能を利用するための手続きの集まりを言う。
【００２４】
アプリケーションプログラム１２２は、ＧＤＩ１２４に対して、例えばプレゼンテーションファイルに含まれているプレゼンテーションシートの画像の描画要求を発行する。通常は、描画要求には、画像の出力先に関する情報（即ち、画像を表示装置に出力するか、印刷装置に出力するかを指定する情報）も含まれている。
【００２５】
なお、ＧＤＩ１２４の代わりに、他の汎用の描画用ＡＰＩを使用することも可能である。「汎用の描画用ＡＰＩ」とは、多数のアプリケーションプログラムに対して共通に使用されるＡＰＩを意味している。
【００２６】
ＧＤＩ１２４と、ディスプレイドライバ１２６と、プロジェクタドライバ１２８の全体は、描画命令に従って描画処理を実行する描画モジュールとして機能する。具体的には、ＧＤＩ１２４は、アプリケーションプログラム１２２から出された描画要求を受け取り、その描画要求に基づいて画像の出力先をチェックし、その出力先が表示装置であれば、ディスプレイドライバ１２６とプロジェクタドライバ１２８のそれぞれに対して描画要求を渡す。
【００２７】
ディスプレイドライバ１２６は、受け取った描画要求に従ってＶＲＡＭ１１４内に画像データを描画する。なお、よく知られているように、描画要求としては、画面の全体を描画するものに限らず、画面の一部を描画するものも多用される。画面の一部を描画する描画命令を受けた場合には、ディスプレイドライバ１２６は、ＶＲＡＭ１１４内で描画対象となっている領域（「変化領域」とも呼ぶ）の画像部分のみを描画する。グラフィックコントローラ１１６は、ＶＲＡＭ１１４内に描画された画像データ（即ち、ビットマップデータ）に基づいて、表示デバイス１１８に画像を表示する。一方、プロジェクタドライバ１２８は、ＧＤＩ１２４から受け取った描画要求に従って、ＶＲＡＭ１１４内の描画対象領域（すなわち変化領域）の位置及びサイズを表す変化領域情報１０６ａをＲＡＭ１０６内に書き込む。
【００２８】
図４（Ａ），（Ｂ）は、ＲＡＭ１０６内の変化領域情報１０６ａと画像データ格納領域１０６ｂの例を示す説明図である。ここでは、プロジェクタで投写表示されるべき画像が図４（Ａ）から図４（Ｂ）のように変化する例を想定する。後述するように、画像データ格納領域１０６ｂには、ＶＮＣサーバ１３０によってＶＲＡＭ１１４から転送された画像データが格納される。画像データ格納領域１０６ｂは、ＶＲＡＭ１１４（フレームメモリ）と同じデータ容量を有することが好ましい。
【００２９】
変化領域Ｒａは、図４（Ａ）から図４（Ｂ）に画像を変更する際の描画命令によって描画される画像部分の領域である。この変化領域Ｒａに関する変化領域情報１０６ａは、変化領域Ｒａの基準点（通常は左上点）のｘ座標Ｘａ及びｙ座標Ｙａと、変化領域Ｒａの幅Ｗａ及び高さＨａとを含んでいる。なお、基準点の座標（Ｘａ，Ｙａ）は、変化領域Ｒａの位置を示すデータであり、幅Ｗａと高さＨａは変化領域Ｒａのサイズを示すデータである。
【００３０】
ＶＮＣサーバ１３０は、ＲＡＭ１０６内の変化領域情報１０６ａを参照して、変化領域Ｒａの画像データを、ＶＲＡＭ１１４からＲＡＭ１０６内の画像データ格納領域１０６ｂに転送する。この画像データ格納領域１０６ｂは、例えばコンピュータ１００又はプロジェクタ２００の表示解像度に等しいサイズのメモリ領域である。ＶＮＣサーバ１３０は、さらに、画像データ格納領域１０６ｂから変化領域Ｒａの画像データを読み出して、変化領域Ｒａの変化領域情報１０６ａと画像データとを含む画面更新メッセージを作成する。
【００３１】
図５は、画面更新メッセージの構造を示す説明図である。この画面更新メッセージは、ＶＮＣプロトコルに規定されているフレームバッファアップデート「FramebufferUpdate」の構造に準じている。画面更新メッセージは、メッセージの種類を示すメッセージヘッダ部と、メッセージのパラメータを示すパラメータ部とを有している。
【００３２】
メッセージヘッダ部には、メッセージの種類を示すメッセージタイプ(１バイト)と、変化領域の数を示す変化領域数（２バイト）とが含まれる。画面更新メッセージを示すメッセージタイプのデータ値は「０」である。変化領域数のデータ値は通常は「１」に設定される。但し、ＲＡＭ１０６内に複数の変化領域に関する変化領域情報１０６ａが未処理で残っている場合には、画面更新メッセージがそれらの複数の変化領域に関する情報（変化領域情報及び画像データ）を含むように画面更新メッセージを構成することも可能である。画面更新メッセージに含まれる変化領域情報を「画面更新領域情報」とも呼ぶ。なお、メッセージタイプデータと変化領域数データとは１バイトのパディングを介して区分されている。
【００３３】
パラメータ部には、変化領域の基準点のｘ座標（２バイト）及びｙ座標(２バイト)と、変化領域の幅（２バイト）及び高さ（２バイト）と、変化領域の画像データの転送時のエンコーディング形式（４バイト）と、変化領域の画像データ（ｎバイト）と、が含まれている。エンコーディング形式としては、ＪＰＥＧ形式(データ値「７」)等の予め定められた形式が使用される。
【００３４】
ＶＮＣサーバ１３０は、こうして作成した画面更新メッセージをネットワークインタフェース部１１２を介してプロジェクタ２００に転送する。
【００３５】
このように、図３に示す比較例では、一旦ＶＲＡＭ１１４に格納された画像データを汎用メモリであるＲＡＭ１０６に転送した後で、ＲＡＭ１０６内にある画像データをプロジェクタ２００に転送している。このため、ＶＲＡＭ１１４からＲＡＭ１０６に転送するためにかなりの時間を要してしまい、十分な転送速度が得られない場合があった。
【００３６】
図６は、第１実施例におけるコンピュータのソフトウェアとハードウェアの階層構造を示す説明図である。図３に示した比較例との違いは、アプリケーションプログラム１２２とＧＤＩ１２４との間に、フック処理モジュール４００が追加されている点と、ＲＡＭ１０６内に２種類の変化領域情報１０６ａ１，１０６ａ２（以下、「変化領域情報Ａ１，Ａ２」と呼ぶ）が格納されている点と、ＲＡＭ１０６内に転送ヒストリ情報１０６ｃ（以下、「転送ヒストリ情報ＨＡ１」と呼ぶ）が格納されている点であり、他の構成は図３と同じである。フック処理モジュール４００は、アプリケーションプログラム１２２が発行する特定の描画命令をフックして先取りし、後述する処理を実行する。他の描画命令は通常通りＧＤＩ１２４によって処理される。なお、フック処理モジュール４００は、アプリケーションプログラム１２２に応じた適切な特定の描画命令のみをフックするように、各アプリケーションプログラム専用に構成されることが好ましい。
【００３７】
なお、フック処理モジュール４００も一種の描画用ＡＰＩと考えることも可能であるが、ＧＤＩ１２４のような汎用の描画用ＡＰＩとは区別される。すなわち、フック処理モジュール４００は、典型的には特定の描画命令のみを処理するように構成されているのに対して、ＧＤＩ１２４はすべての描画命令を処理するように構成されている点で相違する。
【００３８】
フック処理モジュール４００は、例えばＤＬＬ（ダイナミックリンクライブラリ）としてアプリケーションプログラム１２２にロード（インストール）される。一般に、アプリケーションプログラムは「プロセス」という単位で動作している。また、アプリケーションプログラムの実行中は、そのプロセス内に複数のモジュール（GDI32.DLLやKernel32.DLLなど）がロードされており、アプリケーションプログラムはそれらのモジュール内の関数を利用することによって各種の動作を行っている。フック処理モジュール４００の「ロード」とは、アプリケーションプログラム１２２のプロセス内に、フックプロシージャが実装されているモジュール４００を組み込むすることを意味している。
【００３９】
フック処理モジュール４００がロードされる際には、アプリケーションプログラム１２２から発行される特定の描画命令の関数アドレスが、フック処理モジュール４００内に実装されている独自機能を実行するための別の関数のアドレスに差し替えられる。この独自機能の関数内では、変化情報と画像データのＲＡＭへの書き込み処理（後述する）が実行され、その後、通常のＧＤＩ関数が実行される。フック処理モジュール４００をアンロードする際には、ロード時に差し替えられていた関数アドレスを元に戻した後に、プロセス内にロードされていたフック処理モジュール４００がアンロードされる。
【００４０】
なお、フック処理モジュール４００は、必要に応じていつでもアプリケーションプログラム１２２にロードしたり、アンロードしたりすることが可能である。但し、ＶＮＣサーバ１３０が起動する際に、動作中の特定のアプリケーションプログラム１２２（本実施例ではプレゼンテーションプログラム）にフック処理モジュール４００をロードし、また、ＶＮＣサーバ１３０を終了するときにフック処理モジュール４００をアンロードするように、ＶＮＣサーバ１３０を構成することが好ましい。こうすれば、ＶＮＣサーバ１３０が実行中の期間にのみフック処理モジュール４００を動作させることができるので、コンピュータ１００上でＶＮＣサーバ１３０が実行されていない（起動していない）ときに描画命令をフックしてしまい、望ましくない結果が生じることを回避することができる。なお、本明細書において、「コンピュータ１００上でＶＮＣサーバ１３０が実行されている」という文言は、ＶＮＣサーバ１３０のプロセスが起動されていることを意味している。
【００４１】
図７は、２つの変化領域情報Ａ１，Ａ２と転送ヒストリ情報ＨＡ１の例を示す説明図である。図７（Ａ−１）〜（Ａ−３）は時刻ｔ０における状態を示しており、図７（Ｂ−１）〜（Ｂ−３）は時刻ｔ１における状態を示している。ＶＮＣサーバ１３０は、所定の時間間隔で転送処理を繰り返し実行しており、時刻ｔ０で転送が実行された後に、時刻ｔ１において次回の転送が実行されるものと仮定している。
【００４２】
図７（Ａ−１）に示す第１の変化領域情報Ａ１は、フック処理モジュール４００（図６）によってＲＡＭ１０６内の画像データ格納領域１０６ｂに直接描画された領域ＲＡ１（「変化領域ＲＡ１」と呼ぶ）を表している。この変化領域ＲＡ１内の画像を「画像Ｇ１」と呼ぶ。第１の変化領域情報Ａ１は、フック処理モジュール４００によってＲＡＭ１０６内に書き込まれる。図７（Ａ−２）に示す第２の変化領域情報Ａ２は、ディスプレイドライバ１２６（図６）によってＶＲＡＭ１１４内に描画された領域ＲＡ２（「変化領域ＲＡ２」と呼ぶ）を表している。この変化領域ＲＡ２内の画像を「画像Ｇ２」と呼ぶ。第２の変化領域情報Ａ２は、プロジェクタドライバ１２８によってＲＡＭ１０６内に書き込まれる。図７（Ａ−３）に示す転送ヒストリ情報ＨＡ１は、先行する所定の期間においてフック処理モジュール４００によって画像データ格納領域１０６ｂに直接描画されＶＮＣサーバ１３０によって転送された過去の第１の変化領域ＲＡ１（「ヒストリ領域」と呼ぶ）を表している。本実施例では、直前の転送処理において転送対象となった第１の変化領域のみをヒストリ領域として設定している。但し、先行する複数回の転送処理における変化領域をヒストリ領域とすることも可能である。時刻ｔ０の直前の転送処理では第１の変化領域ＲＡ１が存在しておらず、従って、時刻ｔ０では転送ヒストリ情報ＨＡ１も登録されていないものと仮定している。なお、転送ヒストリ情報ＨＡ１は、ＶＮＣサーバ１３０によってＲＡＭ１０６内に書き込まれる。
【００４３】
なお、図７の例では各領域を同一の画面領域ＳＣＡ内に配置された状態が示されている。ここで、「画面領域ＳＣＡ」とは、ＶＲＡＭ１１４に格納される画像の全体の領域を意味しており、これは、画像データ格納領域１０６ｂ全体の領域と等しい。厳密に言えば、第１の変化領域ＲＡ１は画像データ格納領域１０６ｂ内のアドレスで定義された領域であり、第２の変化領域ＲＡ２はＶＲＡＭ１１４内のアドレスで定義された領域であるが、これらは同じ画面領域ＳＣＡで表現することができる。
【００４４】
図７（Ｂ−１）〜（Ｂ−３）に示すように、時刻ｔ１では、第１の変化領域情報Ａ１が存在せず、第２の変化領域情報Ａ２は画像Ｇ１の領域（すなわち、時刻ｔ０における第１の変化領域ＲＡ１と同じ領域）を表すものとなっている。このような状態は、この画像Ｇ１の描画命令が、時刻ｔ０の直前にフック処理モジュール４００によってフックされて処理され、その後、時刻ｔ０とｔ１の間に描画モジュール１２４，１２６，１２８によって処理されたときに生じ得る。なお、図７（Ｂ−３）に示すように、時刻ｔ１では、時刻ｔ０における第１の変化領域情報Ａ１が転送ヒストリ情報ＨＡ１として登録されている。図７（Ｂ−３）では、図示の便宜上、ヒストリ領域ＲＨＡ１を一点鎖線で描いている。以下で説明する転送処理（ＶＮＣサーバ１３０による処理）では、これらの時刻ｔ０，ｔ１における転送処理について説明する。
【００４５】
図８は、実施例におけるフック処理モジュール４００とＶＮＣサーバ１３０の動作を示すフローチャートである。ステップＳ１０〜Ｓ１６はフック処理モジュール４００によって実行され、ステップＳ２０〜Ｓ２６はＶＮＣサーバ１３０によって定期的に実行される。
【００４６】
フック処理モジュール４００は、アプリケーションプログラム１２２から特定の描画命令が発行されたときに、ステップＳ１０においてその描画命令をフックして、ＧＤＩ１２４の代わりにその描画命令を取得する。なお、フック処理モジュール４００がフックする描画命令は、すべての描画命令ではなく、限られた特定の描画命令のみに限定することが好ましい。この理由は、アプリケーションプログラム１２２が発行する描画命令には多数のものがあるので、そのすべてをフックするようにすると、却って処理速度を低下させたり、所望の描画を行えなかったりする可能性があるからである。
【００４７】
ステップＳ１２では、取得した描画命令に応じて変化領域情報を登録する処理が実行される。具体的には、フック処理モジュール４００が、描画命令に従って描画が行われる領域（図７（Ａ−１）の変化領域ＲＡ１）の位置とサイズを取得し、その変化領域を表す変化領域情報Ａ１をＲＡＭ１０６に直接書き込む処理を実行する。
【００４８】
ステップＳ１４では、変化領域ＲＡ１の画像データの書込処理が実行される。具体的には、フック処理モジュール４００が、描画命令に従って変化領域ＲＡ１内の画像データを展開して、その画像データをＲＡＭ１０６内の画像データ格納領域１０６ｂに直接書き込む処理を実行する。
【００４９】
ステップＳ１６では、フック処理モジュール４００が、ステップＳ１０で取得した描画命令に従って通常のＧＤＩ関数を呼び出して描画処理を実行させる。なお、ディスプレイドライバ１２６とプロジェクタドライバ１２８（図６）は、図３に示した比較例と同様に、ＧＤＩ１２４から受け取った描画命令に従ってそれぞれの処理を実行する。すなわち、ディスプレイドライバ１２６がＶＲＡＭ１１４内に画像を描画し、プロジェクタドライバ１２８がその描画領域を示す変化領域情報Ａ２をＲＡＭ１０６内に書き込む。
【００５０】
一方、ＶＮＣサーバ１３０は、ステップＳ２０において、プロジェクタ２００に転送すべき画像データの領域（「画面更新領域」と呼ぶ）を決定する。図９は、ステップＳ２０の詳細手順を示すフローチャートである。ステップＳ５０，Ｓ５２では、第１と第２の変化領域情報Ａ１，Ａ２が取得される。前述したように、第１の変化領域情報Ａ１は、フック処理モジュール４００によってＲＡＭ１０６内の画像データ格納領域１０６ｂに描画された領域を表す情報であり、フック処理モジュール４００によってＲＡＭ１０６内に書き込まれたものである。一方、第２の変化領域情報Ａ２は、ディスプレイドライバ１２６によってＶＲＡＭ１１４内に描画された領域を表している情報であり、プロジェクタドライバ１２８によってＲＡＭ１０６内に書き込まれたものである。
【００５１】
図１０（Ａ）は、時刻ｔ０における２つの変化領域ＲＡ１，ＲＡ２とヒストリ領域ＲＨＡ１を示している。但し、時刻ｔ０ではヒストリ領域ＲＨＡ１は存在しない。
【００５２】
なお、図１０（Ａ）の例では、２つの変化領域ＲＡ１，ＲＡ２は部分的に重なっているが、２つの変化領域ＲＡ１，ＲＡ２はこれ以外の種々の関係を取る場合がある。例えば、２つの変化領域ＲＡ１，ＲＡ２が全く重なり合わない場合も存在し、両者が完全に重なり合う場合も存在する。例えば、フック処理モジュール４００が特定の描画命令に従って描画を行い、その後、通常の描画モジュール１２４，１２６，１２８が同じ描画命令に従って同じ領域の描画を行った場合には、２つの変化領域ＲＡ１，ＲＡ２は同一となる。但し、同じ描画命令を実行したときにも、各モジュールの設定によっては、２つの変化領域ＲＡ１，ＲＡ２に若干の差異が生じる場合もあり得る。
【００５３】
図１０（Ｂ）は、時刻ｔ０においてＶＮＣサーバ１３０が画像転送時にＲＡＭ１０６から画像を直接取得する領域ＴＧ１を示しており、図１０（Ｃ）はＶＲＡＭ１１４から画像を取得する領域ＴＧ２を示している。これらの領域ＴＧ１，ＴＧ２を「転送領域」とも呼ぶ。この例から理解できるように、転送ヒストリ情報ＨＡ１が存在しないときには、第１の変化領域ＲＡ１（＝ＴＧ１）の画像はＲＡＭ１０６内から直接取得され、また、第２の変化領域ＲＡ２のうちで第１の変化領域ＲＡ１に含まれない部分の領域ＴＧ２の画像は、ＶＲＡＭ１１４から取得される。このように区別する理由は、ＶＲＡＭ１１４から取得する画像を可能な限り少なくして、その取得に要する時間を少なくするためである。例えば、２つの変化領域ＲＡ１，ＲＡ２が完全に重なる場合には、ＶＲＡＭ１１４から画像を取得する必要が無くなるので、転送処理を高速に行うことができる。図１０（Ｄ）は、時刻ｔ０においてＶＮＣサーバ１３０によって転送される領域全体（画面更新領域ＴＴＧ）を示している。この画面更新領域ＴＴＧは、第１と第２の変化領域ＲＡ１，ＲＡ２の和領域に相当する。
【００５４】
なお、第１の変化領域情報Ａ１に複数の描画命令に対応する複数の情報が含まれている場合がある。この場合には、これらの複数の描画命令の描画領域の和領域が第１の変化領域ＲＡ１となる。第２の変化領域ＲＡ２についても同様である。
【００５５】
図９のステップＳ５４では、２種類の変化領域情報Ａ１，Ａ２で表される変化領域ＲＡ１，ＲＡ２の差分を計算する。具体的には、第２の変化領域ＲＡ２の中で、第１の変化領域ＲＡ１に含まれない領域ＴＧ２（図１０（Ｃ））が算出される。
【００５６】
ステップＳ５６では転送ヒストリ情報ＨＡ１が取得され、ステップＳ５８においてヒストリ領域ＲＨＡ１と第２の変化領域ＲＡ２との差分が計算される。このステップＳ５８の処理は、第２の転送領域ＴＧ２（転送時にＶＲＡＭ１１４から画像が取得される領域）を調整するための処理である。時刻ｔ０では転送ヒストリ情報ＨＡ１が存在しないので、この処理内容については時刻ｔ１での処理の即して後に説明する。ステップＳ６０では、転送ヒストリ情報ＨＡ１を廃棄し、ステップＳ６２では、第１の変化領域情報Ａ１を転送ヒストリ情報ＨＡ１として登録する。この結果、時刻ｔ０における第１の変化領域情報Ａ１が、次の時刻ｔ１における転送ヒストリ情報ＨＡ１として利用できることとなる。
【００５７】
ステップＳ６４では、画面更新領域ＴＴＧ（図１０（Ｄ））の最適化処理が実行される。図１１は、画面更新領域の最適化処理の内容を示す説明図である。図１１（Ａ）は、図１０（Ｄ）と同じ画面更新領域ＴＴＧを示している。最適化処理では、図１１（Ｂ）に示すように、画面更新領域ＴＴＧを互いに重ならない隣接する矩形領域Ｒ１１〜Ｒ１３に分割する。そして、これらの矩形領域Ｒ１１〜Ｒ１３が、最適化後の画面更新領域として採用される。個々の画面更新領域Ｒ１１〜Ｒ１３は矩形なので、最適化前の画面更新領域ＴＴＧを包含するような矩形形状の画像を転送する場合に比べて、転送される画像データ量を削減することが可能である。
【００５８】
図８のステップＳ２２では、画面更新領域に相当する画像部分の画像データが取得される。図１２は、ステップＳ２２の詳細手順を示すフローチャートである。ステップＳ７０では、第２の転送領域ＴＧ２（図１０（Ｃ））が空である否かが調べられる。なお「第２の転送領域ＴＧ２」は、前述したように、画面更新領域ＴＴＧの中で画像データがＶＲＡＭ１１４から取得される領域である。第２の変化領域情報Ａ２が存在しない場合、及び、第２の変化領域Ａ２が第１の変化領域Ａ１とヒストリ領域との和領域に完全に包含されている場合には、第２の転送領域ＴＧ２は空である。第２の転送領域ＴＧ２が空である場合には、後述するステップＳ７４に移行する。一方、第２の転送領域ＴＧ２が空でない場合には、ステップＳ７２が実行される。ステップＳ７２では、ＶＮＣサーバ１３０が第２の転送領域ＴＧ２の画像データをＶＲＡＭ１１４から取得してＲＡＭ１０６内の画像データ格納領域１０６ｂに書き込む。この結果、画像データ格納領域１０６ｂには、図１０（Ｄ）に示す画面更新領域ＴＴＧ内の画像がすべて格納された状態になる。ステップＳ７４では、ＶＮＣサーバ１３０が画面更新領域ＴＴＧの画像データをＲＡＭ１０６の画像データ格納領域１０６ｂから取得する。なお、実際に取得されるのは、最適化処理後の個々の画面更新領域Ｒ１１〜Ｒ１３（図１１（Ｂ））の画像データである。
【００５９】
図８のステップＳ２４では、予め設定されているエンコーディング形式に従って画像データが変換される。ステップＳ２６では、こうして変換された画像データと変化領域情報とを含む画面更新メッセージ（図５）が作成され、ネットワークインタフェース部１１２を介してプロジェクタ２００に転送される。
【００６０】
プロジェクタ２００のネットワークインタフェース部２１２（図２）は、ネットワーク３００を介して供給された通信データを受信すると、この通信データに含まれている画面更新メッセージを取り出して、ＶＮＣクライアント２３０に渡す。ＶＮＣクライアント２３０は、画面更新メッセージに含まれる画像データを画像処理ドライバ２２８に渡す。画像処理ドライバ２２８は、この画像データに従って画像処理部２１４を制御し、画像処理部２１４によって画像処理部２１４内の表示メモリ（図示せず）に画像データを展開させる。この結果、プロジェクタ２００は、図１に示すように、投写表示画面７０に画像を表示することができる。
【００６１】
時刻ｔ１においても、図８のステップＳ２０〜Ｓ２６の処理が同様に実行される。但し、時刻ｔ１では、図７（Ｂ−１）〜（Ｂ−３）に示すように、第１の変化領域情報Ａ１が存在せず、第２の変化領域情報Ａ２は画像Ｇ１の領域を表す情報であり、転送ヒストリ情報ＨＡ１も画像Ｇ１の領域を表す情報である。
【００６２】
図１３は、時刻ｔ１における変化領域とヒストリ領域と画面更新領域との関係を示す説明図である。図１３（Ａ）に示すように、第１の変化領域ＲＡ１は存在せず、第２の変化領域ＲＡ２はヒストリ領域ＲＨＡ１と同一である。このとき、図９のステップＳ５４の処理では、第２の変化領域ＲＡ２のうちで第１の変化領域ＲＡ１に含まれない部分が第２の転送領域ＴＧ２（図１３（Ｂ））として作成される。また、図９のステップＳ５８の処理では、この第２の転送領域ＴＧ２から、ヒストリ領域ＲＨＡ１の部分が削除される。図１３（Ｄ）はこの修正後の第２の転送領域ＴＧ２’を示している。この例では、第２の変化領域ＲＡ２とヒストリ領域ＲＨＡ１が同一なので、修正後の第２の転送領域ＴＧ２’は空である。一方、第２の転送領域ＴＧ２から削除された領域は、第１の転送領域ＴＧ１（ＲＡＭ１０６から直接画像が取得される領域）に追加される（図１３（Ｃ））。時刻ｔ１では、第２の転送領域ＴＧ２’が空なので、画面更新領域ＴＴＧ（図１３（Ｅ））内の画像の全体が、ＶＲＡＭ１１４から画像を取得することなく画像データ格納領域１０６ｂから直接取得されて転送される。
【００６３】
図１０及び図１３の例から理解できるように、画像転送の対象となる画面更新領域ＴＴＧは、ヒストリ領域ＲＨＡ１の有無とは無関係であり、第１と第２の変化領域ＲＡ１，ＲＡ２の和領域として決定される。ヒストリ領域ＲＨＡ１は、画像データを画像データ格納領域１０６ｂから直接取得する第１の転送領域ＴＧ１と、ＶＲＡＭ１１４から取得する第２の転送領域ＴＧ２（またはＴＧ２’）を決定するために使用されている。具体的に言えば、第１の変化領域ＲＡ１と、第２の変化領域ＲＡ２のうちでヒストリ領域ＲＨＡ１に含まれる領域と、の和領域が第１の転送領域ＴＧ１となる。また、第２の変化領域ＲＡ２のうちで第１の変化領域ＲＡ１とヒストリ領域ＲＨＡ１のいずれにも含まれない領域は、第２の転送領域ＴＧ２（またはＴＧ２’）となる。なお、第１の転送領域ＴＧ１は、第１の変化領域ＲＡ１と、第２の変化領域ＲＡ２のうちで第１の変化領域ＲＡ１に含まれずかつヒストリ領域ＲＨＡ１に含まれる領域と、の和領域であるとも考えることができる。このように第１と第２の転送領域ＴＧ１，ＴＧ２を区分することによって、ＶＲＡＭ１１４から取得される画像データの量を削減することができる。
【００６４】
なお、仮に転送ヒストリ情報ＨＡ１を使用しない場合を想定すると、時刻ｔ１において第２の変化領域ＲＡ２の画像をＶＲＡＭ１１４から取得することになるはずである。これに対して、本実施例では、この変化領域ＲＡ２の画像を、ＶＲＡＭ１１４にアクセスせずにＲＡＭ１０６内の画像データ格納領域１０６ｂから直接取得することができる。この理由は、この変化領域ＲＡ２が、その前の時点でフック処理モジュール４００によって画像データ格納領域１０６ｂに直接描画されたものなので、ＶＲＡＭ１１４から取得しなくても、画像データ格納領域１０６ｂから正しい画像を取得できるからである。この説明から理解できるように、本実施例では、描画命令の実行タイミングと、画像の転送タイミングとのずれに起因して、ＶＲＡＭ１１４から大量の画像データを取得しなければならなくなる可能性を低減することができる。
【００６５】
図１４は、２つの変化領域情報Ａ１，Ａ２と転送ヒストリ情報ＨＡ１の他の例を示す説明図である。図１４（Ａ−１）〜（Ａ−３）は、或る転送タイミングの時刻ｔ１０における状態を示しており、図１４（Ｂ−１）〜（Ｂ−３）は、その次の転送タイミングの時刻ｔ１１における状態を示している。時刻ｔ１０では、２つの画像Ｇ１，Ｇ２の変化領域ＲＡ１ａ，ＲＡ１ｂを示す２つの変化領域情報Ａ１ａ，Ａ１ｂが、処理対象となる第１の変化領域情報Ａ１として登録されている。また、これらの２つの画像Ｇ１，Ｇ２のうちの一方の画像Ｇ１の変化領域ＲＡ２を示す情報のみが、第２の変化領域情報Ａ２として登録されている。なお、時刻ｔ１０では転送ヒストリ情報ＨＡ１は存在しないものと仮定している。一方、時刻ｔ１１では、第１の変化領域情報Ａ１は存在せず、第２の変化領域情報Ａ２として画像Ｇ２の変化領域を示す情報が登録されている。また、転送ヒストリ情報ＨＡ１としては、時刻ｔ０における２つの変化領域情報Ａ１ａ，Ａ１ｂが登録されている。
【００６６】
時刻ｔ１０の転送処理では、図１５（Ａ）に示すように、２種類の変化領域ＲＡ１，ＲＡ２の和領域が、転送対象の画面更新領域ＴＴＧとして採用される。この画面更新領域ＴＴＧは、図１４（Ａ−１）に示す第１の変化領域ＲＡ１ａ，ＲＡ１ｂの和領域に等しい。従って、この画面更新領域ＴＴＧ内の画像は、ＶＲＡＭ１１４から取得する必要は無く、すべて画像データ格納領域１０６ｂから直接取得される。
【００６７】
時刻ｔ１１の転送処理では、第１の変化領域ＲＡ１が存在しないので、図１５（Ｂ）に示すように、第２の変化領域ＲＡ２がそのまま画面更新領域ＴＴＧとして採用される。但し、第２の変化領域ＲＡ２は、ヒストリ領域ＲＨＡ１ａ，ＲＨＡ１ｂ（図１４（Ｂ−３））に完全に包含されている。従って、時刻ｔ１１の画面更新領域ＴＴＧの画像も、ＶＲＡＭ１１４から取得する必要は無く、すべて画像データ格納領域１０６ｂから直接取得される。
【００６８】
このように、第１実施例では、フック処理モジュール４００が、特定の描画命令をフックして先取りし、変化領域の画像データをＲＡＭ１０６に直接書き込む処理を実行するようにしている。この結果、図３に示した比較例においてＶＲＡＭ１１４からＲＡＭ１０６への画像データの転送に要していた時間を節約することができる。この結果、プロジェクタ２００に画像データを転送する場合の転送速度を十分に速くすることができるという利点がある。
【００６９】
なお、一般に使用されているパーソナルコンピュータでは、ＲＡＭ１０６からＶＲＡＭ１１４へのデータ転送は非常に高速に実行できるのに対して、ＶＲＡＭ１１４からＲＡＭ１０６へのデータ転送はその数倍低速でしか実行できないアーキテクチャとなっていることが多い。第１実施例では、低速なＶＲＡＭからＲＡＭへのデータ転送を削減できるので、プロジェクタ２００に画像データを転送するために要する時間を大幅に削減することが可能である。
【００７０】
また、上記第１実施例では、第２の変換領域ＲＡ２の中で、第１の変化領域ＲＡ１とヒストリ領域ＲＨＡ１のいずれにも含まれない領域ＴＧ２の画像部分に関しては、ＶＲＡＭ１１４から取得してプロジェクタ２００に転送している。この結果、通常の描画モジュール１２４，１２６，１２８で描画された画像についても欠落無しにプロジェクタ２００に転送することが可能である。
【００７１】
Ｂ．第２実施例：
図１６は、第２実施例における変化領域と画面更新領域との関係を示す説明図であり、第１実施例の図１０に対応するものである。第２実施例は、装置構成や処理フローの全体は第１実施例と同じであるが、転送対象となる領域が第１実施例と異なっている。具体的には、第２実施例では、ＲＡＭ１０６から画像が直接取得される第１の転送領域ＴＧ１（図１６（Ｂ））は、第１と第２の変化領域ＲＡ１，ＲＡ２が重なり合っている部分に設定される。換言すれば、第１の転送領域ＴＧ１は、第２の変化領域ＲＡ２のうちで第１の変化領域ＲＡ１にも含まれている領域に設定される。一方、ＶＲＡＭ１１４から画像が取得される第２の転送領域ＴＧ２（図１６（Ｃ））は、第１実施例と同様に、第２の変化領域ＲＡ２のうちで第１の変化領域ＲＡ１に含まれていない部分に設定される。従って、転送対象となる領域の全体である画面更新領域ＴＴＧ（図１６（Ｄ））は、第２の変化領域ＲＡ２と同一である。
【００７２】
なお、図７で説明したように、時刻ｔ０では転送ヒストリ情報ＨＡ１が存在していないので、第２の転送領域ＴＧ２（図１６（Ｃ））内の画像部分はすべてＶＲＡＭ１１４から取得される。但し、転送ヒストリ情報ＨＡ１が存在する場合には、第１実施例と同様に、第２の転送領域ＴＧ２の中でヒストリ領域と重なり合う領域は、第２の転送領域ＴＧ２から削除されて第１の転送領域ＴＧ１に追加される（図１３参照）。換言すれば、第２の変化領域ＲＡ２のうちで、第１の変化領域ＲＡ１とヒストリ領域ＲＨＡ１のいずれかに含まれる領域の画棒部分は、ＲＡＭ１０６から直接取得される。また、第２の変化領域ＲＡ２のうちで、第１の変化領域ＲＡ１とヒストリ領域ＲＨＡ１のいずれにも含まれない領域の画棒部分は、ＶＲＡＭ１１４から取得される。従って、図１３に示した時刻ｔ１の処理は、第２実施例も第１実施例と同じものになる。
【００７３】
このように、第２実施例では、ＧＤＩ１２４及びディスプレイドライバ１２６によってＶＲＡＭ１１４内に描画される領域である第２の変化領域ＲＡ２内の画像がＶＮＣサーバ１３０によって転送されることになる。このように処理を行う理由は、以下の通りである。すなわち、フック処理モジュール４００によってフック処理された描画命令も、その後、ＧＤＩ１２４及びディスプレイドライバ１２６によって再度実行されるので、基本的にすべての描画命令がＧＤＩ１２４及びディスプレイドライバ１２６によって実行される。従って、第２の変化領域ＲＡ２の画像を転送すれば、プロジェクタ２００に正しい画像を表示させることが可能である。但し、この際にすべての画像データをＶＲＡＭ１１４から取得すると、データ転送にかなりの時間を要するという問題を生じてしまう。そこで、第２実施例では、第２の変化領域ＲＡ２の中で、第１の変化領域ＲＡ１とヒストリ領域ＲＨＡ１のいずれかに含まれている部分についてはＲＡＭ１０６から画像データを直接取得することによって、データ取得に要する時間を短縮している。また、第２実施例では、転送される画像データ量が第１実施例よりも更に少ない点で第１実施例よりも好ましい。
【００７４】
なお、多くの場合には、フック処理モジュール４００によって描画される領域（第１の変化領域ＲＡ１）と、ＧＤＩ１２４及びディスプレイドライバ１２６で描画される領域（第２の変化領域ＲＡ２）とは一致している。従って、第２実施例のように、第１の変化領域ＲＡ１のうちで第２の変化領域ＲＡ２に含まれない部分の画像転送を省略しても、プロジェクタ４００に表示される画像に違和感が生じる可能性は無視できる程度である。これに対して、上述した第１実施例では、第１の変化領域ＲＡ１のうちで第２の変化領域ＲＡ２に重ならない部分も画像を転送するので、仮に、第１と第２の変化領域ＲＡ１，ＲＡ２がかなり大幅に異なっている場合にも、より完全な画像を転送できるという利点がある。
【００７５】
図１７は、第２実施例における２つの変化領域情報Ａ１，Ａ２と転送ヒストリ情報ＨＡ１の他の例を示す説明図である。図１７（Ａ−１）〜（Ａ−３）に示す時刻ｔ２０では、第１の変化領域情報Ａ１として、２つの画像Ｇ１０，Ｇ２０の領域ＲＡ１ａ，ＲＡ１ｂを表す情報Ａ１ａ，Ａ１ｂが登録されており、第２の変化領域情報Ａ２としては第１の画像Ｇ１０の領域ＲＡ２（＝ＲＡ１ａ）を表す情報Ａ２が登録されている。ここでは説明の便宜上、第１の画像Ｇ１０が画面領域ＳＣＡの全体を占める画像であり、また、第２の画像Ｇ１１はこれが右側にスライドした画像であると仮定している。このような状態は、例えば画像オブジェクトのアニメーション効果としてスライドアウトを設定したときに発生する。時刻ｔ２０では転送ヒストリ情報ＨＡ１は存在しない。
【００７６】
図１７（Ｂ−１）〜（Ｂ−３）に示す時刻ｔ２１では、第１の変化領域情報Ａ１は存在せず、第２の変化領域情報Ａ２としては第２の画像Ｇ１１の領域ＲＡ２（＝ＲＡ１ｂ）を表す情報Ａ２が存在する。また、転送ヒストリ情報ＨＡ１としては、直前の時刻ｔ２０においてＲＡＭ１０６内に存在した２つの第１の変化領域情報Ａ１ａ，Ａ１ｂが登録されている。このように、図１７の例においても、フック処理モジュール４００による第１の変化領域情報Ａ１の登録のタイミングと、プロジェクタドライバ１２８による第２の変化領域情報Ａ２の登録のタイミングとがややずれている場合を想定している。
【００７７】
図１８は、第２実施例の時刻ｔ２０と時刻ｔ２１における画面更新領域を示す説明図である。前述したように、第２実施例では、画面更新領域ＴＴＧは常に第２の変化領域ＲＡ２と同一である。第２の変化領域ＲＡ２のうちで、第１の変化領域ＲＡ１とヒストリ領域ＲＨＡ１のいずれかに含まれる領域の画棒部分はＲＡＭ１０６から直接取得され、第１の変化領域ＲＡ１とヒストリ領域ＲＨＡ１のいずれにも含まれない領域の画像部分はＶＲＡＭ１１４から取得される。図１７に示すように、時刻ｔ２０では第２の変化領域ＲＡ２が第１の変化領域ＲＡ１ａ，ＲＡ１ｂに包含されている。また、時刻ｔ２１では、第２の変化領域ＲＡ２がヒストリ領域ＲＨＡ１ａ，ＲＨＡ１ｂに包含されている。従って、時刻ｔ２０、ｔ２１ではすべての画像がＲＡＭ１０６から直接取得されることになる。
【００７８】
図１７の例のように、アニメーション効果によって画像が高速で移動するときに、第１と第２の変化領域情報Ａ１，Ａ２の登録のタイミングにずれが生じる可能性が高い。このとき、仮に転送ヒストリ情報ＨＡ１を利用しない場合には、時刻ｔ２１において第２の変化領域ＲＡ２内の画像全体をＶＲＡＭ１１４から取得する必要が生じてしまうという問題が発生する。これに対して、第１，第２実施例では、転送ヒストリ領域ＲＨＡ１内の画像部分をＲＡＭ１０６から直接取得するので、画像の取得に要する時間を短縮することが可能である。
【００７９】
なお、ＶＮＣサーバ１３０は、第１実施例の転送処理（「第１の転送モード」とも呼ぶ）と第２実施例の転送処理（「第２の転送モード」とも呼ぶ）を含む複数の転送モードの中から１つを選択して実行できるように構成されていても良い。転送モードの選択は、ユーザが行うようにしてもよく、あるいは、コンピュータ１００（一般には画像供給装置）の処理能力（ＣＰＵの処理速度やバスの転送速度など）に応じてＶＮＣサーバ１３０が自動的に転送モードの選択を行うようにしてもよい。こうすれば、適切な転送速度で好ましい画像を転送できる転送モードを選択することが可能である。
【００８０】
Ｃ．変形例：
なお、本発明は上記した実施例や実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様にて実施することが可能であり、例えば以下のような変形が可能である。
【００８１】
Ｃ１．変形例１：
コンピュータ１００からプロジェクタ２００に供給される画面更新メッセージとしては、上記実施例で使用したもの以外の種々のものを使用することが可能である。例えば、画面更新メッセージとして、少なくとも画像データを含むものを使用することができる。具体的には、例えば、画面全体の画像データを転送する場合には、変化領域情報を転送する必要は無い。
【００８２】
また、画面更新メッセージとしては、変化領域（画面更新領域）の位置及びサイズを示す情報と、変化領域内の画像データとを少なくとも含むことが好ましい。この理由は、変化領域に関するデータ（変化領域情報及びその画像データ）のみを転送すれば、転送すべきデータ量が少なくなるからである。
【００８３】
Ｃ２．変形例２：
上記実施例では、第２の転送領域ＴＧ２の画像部分をＶＲＡＭ１１４から取得して一旦ＲＡＭ１０６内の画像データ格納領域１０６ｂ内に書き込んだ後で、ＲＡＭ１０６から画面更新領域ＴＴＧの画像を取得してネットワークを介して転送することとしていたが、画像データ格納領域１０６ｂに書き込む処理を省略することも可能である。但し、上記実施例の手順によれば、ネットワークを介して最終的に画像を転送する際に、画像を１つの画像データ格納領域１０６ｂから取得できるので、処理が単純になるという利点がある。
【００８４】
Ｃ３．変形例３：
上記実施例では、描画モジュールがＧＤＩ１２４とディスプレイドライバ１２６とプロジェクタドライバ１２８の３つのモジュールに分かれていたが、モジュールの区分は任意であり、これらの機能を１つのモジュールにまとめることも可能である。また、ディスプレイドライバ１２６とプロジェクタドライバ１２８の機能を１つのモジュールにまとめることも可能である。
【００８５】
Ｃ４．変形例４：
上記実施例においては、画像供給装置としてパーソナルコンピュータを用いていたが、この代わりに、他の種類のコンピュータ（モバイルコンピュータ、ハンドヘルドコンピュータ、ワークステーションなど）を用いるようにしても良い。また、これらコンピュータの他に、ネットワークに接続可能であって、コンピュータと同様な機能を有する機器を用いるようにしても良い。そのような機器には、例えば、情報携帯端末や、携帯電話機や、メール端末や、ゲーム機や、セットトップボックスなどが含まれる。また、画像表示装置としては、プロジェクタ以外の種々の表示装置を使用することが可能である。
【００８６】
Ｃ５．変形例５：
ネットワークとしては、ローカルエリアネットワーク（ＬＡＮ）の他、ワイドエリアネットワーク（ＷＡＮ）や、インターネットや、イントラネットなど、各種ネットワークを適用することができる。また、ネットワークは、有線で構成されていても良く、あるいは無線で構成されていても良い。
【００８７】
Ｃ６．変形例６：
上記実施例においてソフトウェアで実現されている機能の一部をハードウェアで実現してもよく、あるいは、ハードウェアで実現されている機能の一部をソフトウェアで実現してもよい。
【図面の簡単な説明】
【００８８】
【図１】本発明の一実施例として画像表示システムの構成を示す説明図である。
【図２】コンピュータとプロジェクタの内部構成を示すブロック図である。
【図３】比較例におけるコンピュータのソフトウェアとハードウェアの階層構造を示す説明図である。
【図４】第１実施例における変化領域情報と画像データ格納領域の例を示す説明図である。
【図５】画面更新メッセージの構造を示す説明図である。
【図６】実施例におけるコンピュータのソフトウェアとハードウェアの階層構造を示す説明図である。
【図７】第１実施例における２つの変化領域情報Ａ１，Ａ２と転送ヒストリ情報ＨＡ１の例を示す説明図である。
【図８】第１実施例におけるフック処理モジュールとＶＮＣサーバの動作を示すフローチャートである。
【図９】ステップＳ２０の詳細手順を示すフローチャートである。
【図１０】第１実施例における変化領域と画面更新領域との関係を示す説明図である。
【図１１】画面更新領域の最適化処理の内容を示す説明図である。
【図１２】ステップＳ２２の詳細手順を示すフローチャートである。
【図１３】第１実施例の時刻ｔ１における変化領域とヒストリ領域と画面更新領域との関係を示す説明図である。
【図１４】第１実施例における２つの変化領域情報Ａ１，Ａ２と転送ヒストリ情報ＨＡ１の他の例を示す説明図である。
【図１５】第１実施例の時刻ｔ１０と時刻ｔ１１における画面更新領域を示す説明図である。
【図１６】第２実施例における変化領域と画面更新領域との関係を示す説明図である。
【図１７】第２実施例における２つの変化領域情報Ａ１，Ａ２と転送ヒストリ情報ＨＡ１の他の例を示す説明図である。
【図１８】第２実施例の時刻ｔ２０と時刻ｔ２１における画面更新領域を示す説明図である。
【符号の説明】
【００８９】
１０…画像表示システム
６０…表示画面
７０…投写表示画面
１００…コンピュータ
１０２…ＣＰＵ
１０４…ＲＯＭ
１０６…ＲＡＭ
１０６ａ…変化領域情報
１０６ｂ…画像データ格納領域
１０６ｃ…転送ヒストリ情報
１０８…ハードディスクドライブ
１１０…入力部
１１２…ネットワークインタフェース部
１１４…ＶＲＡＭ
１１６…グラフィックコントローラ
１１８…表示デバイス
１２０…バス
１２２…アプリケーションプログラム
１２４…ＧＤＩ（グラフィックスデバイスインタフェイス）
１２６…ディスプレイドライバ
１２８…プロジェクタドライバ
１３０…ＶＮＣサーバ
２００…プロジェクタ
２０２…ＣＰＵ
２０４…ＲＯＭ
２０６…ＲＡＭ
２１０…入力部
２１２…ネットワークインタフェース部
２１４…画像処理部
２１６…投写部
２１８…バス
２２８…画像処理ドライバ
２３０…ＶＮＣクライアント
３００…ネットワーク
４００…フック処理モジュール
【図１】
2006060596.tif 000003
【図２】
2006060596.tif 000004
【図３】
2006060596.tif 000005
【図４】
2006060596.tif 000006
【図５】
2006060596.tif 000007
【図６】
2006060596.tif 000008
【図７】
2006060596.tif 000009
【図８】
2006060596.tif 000010
【図９】
2006060596.tif 000011
【図１０】
2006060596.tif 000012
【図１１】
2006060596.tif 000013
【図１２】
2006060596.tif 000014
【図１３】
2006060596.tif 000015
【図１４】
2006060596.tif 000016
【図１５】
2006060596.tif 000017
【図１６】
2006060596.tif 000018
【図１７】
2006060596.tif 000019
【図１８】
2006060596.tif 000020
【手続補正書】
【提出日】平成17年12月15日(2005.12.15)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ネットワークを介して画像表示装置に画像を供給して表示させるための画像供給装置であって、
画像の描画命令を発行可能なアプリケーションプログラムと、
前記アプリケーションプログラムによって発行される描画命令を処理するための描画モジュールと、
前記アプリケーションプログラムによって発行される特定の描画命令をフックして先取りし、取得した描画命令に従って汎用メモリ内の特定の転送用画像格納領域に画像を描画するフック処理モジュールと、
前記転送用画像格納領域から画像を取得するとともに、取得した画像を前記ネットワークを介して前記画像表示装置に転送する画像転送処理モジュールと、
を備え、
前記フック処理モジュールは、前記転送用画像格納領域の中で前記特定の描画命令に応じて画像が描画される領域である第１の変化領域を示す第１の変化領域情報を前記汎用メモリ内に書き込む機能と、前記特定の描画命令を処理した後に当該描画命令を前記描画モジュールに供給する機能とを有し、
前記描画モジュールは、前記アプリケーションプログラム又は前記フック処理モジュールから受けた描画命令に従ってフレームメモリ内に画像を描画する機能と、前記フレームメモリの中で前記描画命令に応じて画像が描画される領域である第２の変化領域を示す第２の変化領域情報を前記汎用メモリ内に書き込む機能とを有し、
前記画像転送処理モジュールは、
（ｉ）所定の先行期間における転送処理において存在した前記第１の変化領域をヒストリ領域として設定し当該ヒストリ領域を表す転送ヒストリ情報を前記汎用メモリ内に書き込む機能と、
（ｉｉ）前記汎用メモリ内に格納されている前記第１と第２の変化領域情報及び前記転送ヒストリ情報を参照して、前記第２の変化領域のうちで前記第１の変化領域と前記ヒストリ領域のいずれにも含まれない領域に相当する画像部分を前記フレームメモリから取得し、
（ｉｉｉ）前記第１の変化領域に相当する画像部分と、前記第２の変化領域のうちで前記第１の変化領域に含まれずかつ前記ヒストリ領域に含まれる領域に相当する画像部分とを前記フレームメモリから取得することなく前記転送用画像格納領域から取得し、
（ｉｖ）取得した画像部分を、前記第１と第２の変化領域の和である画面更新領域を示す画面更新領域情報とともに前記ネットワークを介して前記画像表示装置に転送することを特徴とする画像供給装置。
【請求項２】
ネットワークを介して画像表示装置に画像を供給して表示させるための画像供給装置であって、
画像の描画命令を発行可能なアプリケーションプログラムと、
前記アプリケーションプログラムによって発行される描画命令を処理するための描画モジュールと、
前記アプリケーションプログラムによって発行される特定の描画命令をフックして先取りし、取得した描画命令に従って汎用メモリ内の特定の転送用画像格納領域に画像を描画するフック処理モジュールと、
前記転送用画像格納領域から画像を取得するとともに、取得した画像を前記ネットワークを介して前記画像表示装置に転送する画像転送処理モジュールと、
を備え、
前記フック処理モジュールは、前記転送用画像格納領域の中で前記特定の描画命令に応じて画像が描画される領域である第１の変化領域を示す第１の変化領域情報を前記汎用メモリ内に書き込む機能と、前記特定の描画命令を処理した後に当該描画命令を前記描画モジュールに供給する機能とを有し、
前記描画モジュールは、前記アプリケーションプログラム又は前記フック処理モジュールから受けた描画命令に従ってフレームメモリ内に画像を描画する機能と、前記フレームメモリの中で前記描画命令に応じて画像が描画される領域である第２の変化領域を示す第２の変化領域情報を前記汎用メモリ内に書き込む機能とを有し、
前記画像転送処理モジュールは、
（ｉ）所定の先行期間における転送処理において存在した前記第１の変化領域をヒストリ領域として設定し当該ヒストリ領域を表す転送ヒストリ情報を前記汎用メモリ内に書き込む機能と、
（ｉｉ）前記汎用メモリ内に格納されている前記第１と第２の変化領域情報及び前記転送ヒストリ情報を参照して、前記第２の変化領域のうちで前記第１の変化領域と前記ヒストリ領域のいずれにも含まれない領域に相当する画像部分を前記フレームメモリから取得し、
（ｉｉｉ）前記第２の変化領域のうちで前記第１の変化領域と前記ヒストリ領域の少なくとも一方に含まれる領域に相当する画像部分を前記フレームメモリから取得することなく前記転送用画像格納領域から取得し、
（ｉｖ）取得した画像部分を、前記第２の変化領域と同一である画面更新領域を示す画面更新領域情報とともに前記ネットワークを介して前記画像表示装置に転送することを特徴とする画像供給装置。
【請求項３】
請求項１又は２記載の画像供給装置であって、
前記画像転送処理モジュールは、前記第２の変化領域のうちで前記第１の変化領域と前記ヒストリ領域のいずれにも含まれない領域に相当する画像部分を前記フレームメモリから取得して前記転送用画像格納領域に書き込んだ後に、前記画面更新領域に相当する画像部分を前記転送用画像格納領域から取得する、画像供給装置。
【請求項４】
請求項１ないし３のいずれかに記載の画像供給装置であって、
前記画像転送処理モジュールは、
前記画像転送処理モジュールの起動時に前記フック処理モジュールを前記アプリケーションプログラムにロードし、前記画像転送処理モジュールの実行終了時に前記フック処理モジュールを前記アプリケーションプログラムからアンロードするように構成されている、画像供給装置。
【請求項５】
ネットワークを介して画像表示装置に画像を供給して表示させるための画像供給装置において利用される画像転送処理モジュールプログラムであって、
前記画像供給装置は、画像の描画命令を発行可能なアプリケーションプログラムと、前記アプリケーションプログラムによって発行される描画命令を処理するための描画モジュールと、前記アプリケーションプログラムによって発行される特定の描画命令をフックして先取りし、取得した描画命令に従って汎用メモリ内の特定の転送用画像格納領域に画像を描画するフック処理モジュールと、を備えており、
前記画像転送処理モジュールプログラムは、前記転送用画像格納領域から画像を取得するとともに、取得した画像を前記ネットワークを介して前記画像表示装置に転送する機能をコンピュータに実現させるように構成されており、
前記フック処理モジュールは、前記フックによって取得した描画命令に従って前記転送用画像格納領域に画像を描画する機能と、前記転送用画像格納領域の中で前記特定の描画命令に応じて画像が描画される領域である第１の変化領域を示す第１の変化領域情報を前記汎用メモリ内に書き込む機能と、前記特定の描画命令を処理した後に当該描画命令を前記描画モジュールに供給する機能とを有し、
前記描画モジュールは、前記アプリケーションプログラム又は前記フック処理モジュールから受けた描画命令に従ってフレームメモリ内に画像を描画する機能と、前記フレームメモリの中で前記描画命令に応じて画像が描画される領域である第２の変化領域を示す第２の変化領域情報を前記汎用メモリ内に書き込む機能とを有し、
前記画像転送処理モジュールプログラムは、
（ｉ）所定の先行期間における転送処理において存在した前記第１の変化領域をヒストリ領域として設定し当該ヒストリ領域を表す転送ヒストリ情報を前記汎用メモリ内に書き込む機能と、
（ｉｉ）前記汎用メモリ内に格納されている前記第１と第２の変化領域情報及び前記転送ヒストリ情報を参照して、前記第２の変化領域のうちで前記第１の変化領域と前記ヒストリ領域のいずれにも含まれない領域に相当する画像部分を前記フレームメモリから取得し、
（ｉｉｉ）前記第１の変化領域に相当する画像部分と、前記第２の変化領域のうちで前記第１の変化領域に含まれずかつ前記ヒストリ領域に含まれる領域に相当する画像部分とを前記フレームメモリから取得することなく前記転送用画像格納領域から取得し、
（ｉｖ）取得した画像部分を、前記第１と第２の変化領域の和である画面更新領域を示す画面更新領域情報とともに前記ネットワークを介して前記画像表示装置に転送する機能をコンピュータに実現させることを特徴とする画像転送処理モジュールプログラム。
【請求項６】
ネットワークを介して画像表示装置に画像を供給して表示させるための画像供給装置において利用される画像転送処理装置であって、
前記画像供給装置は、画像の描画命令を発行可能なアプリケーションプログラムと、前記アプリケーションプログラムによって発行される描画命令を処理するための描画モジュールと、前記アプリケーションプログラムによって発行される特定の描画命令をフックして先取りし、取得した描画命令に従って汎用メモリ内の特定の転送用画像格納領域に画像を描画するフック処理モジュールと、を備えており、
前記画像転送処理装置は、前記転送用画像格納領域から画像を取得するとともに、取得した画像を前記ネットワークを介して前記画像表示装置に転送する機能を有しており、
前記フック処理モジュールは、前記フックによって取得した描画命令に従って前記転送用画像格納領域に画像を描画する機能と、前記転送用画像格納領域の中で前記特定の描画命令に応じて画像が描画される領域である第１の変化領域を示す第１の変化領域情報を前記汎用メモリ内に書き込む機能と、前記特定の描画命令を処理した後に当該描画命令を前記描画モジュールに供給する機能とを有し、
前記描画モジュールは、前記アプリケーションプログラム又は前記フック処理モジュールから受けた描画命令に従ってフレームメモリ内に画像を描画する機能と、前記フレームメモリの中で前記描画命令に応じて画像が描画される領域である第２の変化領域を示す第２の変化領域情報を前記汎用メモリ内に書き込む機能とを有し、
前記画像転送処理装置は、
（ｉ）所定の先行期間における転送処理において存在した前記第１の変化領域をヒストリ領域として設定し当該ヒストリ領域を表す転送ヒストリ情報を前記汎用メモリ内に書き込む機能と、
（ｉｉ）前記汎用メモリ内に格納されている前記第１と第２の変化領域情報及び前記転送ヒストリ情報を参照して、前記第２の変化領域のうちで前記第１の変化領域と前記ヒストリ領域のいずれにも含まれない領域に相当する画像部分を前記フレームメモリから取得し、
（ｉｉｉ）前記第１の変化領域に相当する画像部分と、前記第２の変化領域のうちで前記第１の変化領域に含まれずかつ前記ヒストリ領域に含まれる領域に相当する画像部分とを前記フレームメモリから取得することなく前記転送用画像格納領域から取得し、
（ｉｖ）取得した画像部分を、前記第１と第２の変化領域の和である画面更新領域を示す画面更新領域情報とともに前記ネットワークを介して前記画像表示装置に転送することを特徴とする画像転送処理装置。
【請求項７】
ネットワークを介して画像表示装置に画像を供給して表示させるための画像供給装置において利用される画像転送処理モジュールプログラムであって、
前記画像供給装置は、画像の描画命令を発行可能なアプリケーションプログラムと、前記アプリケーションプログラムによって発行される描画命令を処理するための描画モジュールと、前記アプリケーションプログラムによって発行される特定の描画命令をフックして先取りし、取得した描画命令に従って汎用メモリ内の特定の転送用画像格納領域に画像を描画するフック処理モジュールと、を備えており、
前記画像転送処理モジュールプログラムは、前記転送用画像格納領域から画像を取得するとともに、取得した画像を前記ネットワークを介して前記画像表示装置に転送する機能をコンピュータに実現させるように構成されており、
前記フック処理モジュールは、前記フックによって取得した描画命令に従って前記転送用画像格納領域に画像を描画する機能と、前記転送用画像格納領域の中で前記特定の描画命令に応じて画像が描画される領域である第１の変化領域を示す第１の変化領域情報を前記汎用メモリ内に書き込む機能と、前記特定の描画命令を処理した後に当該描画命令を前記描画モジュールに供給する機能とを有し、
前記描画モジュールは、前記アプリケーションプログラム又は前記フック処理モジュールから受けた描画命令に従ってフレームメモリ内に画像を描画する機能と、前記フレームメモリの中で前記描画命令に応じて画像が描画される領域である第２の変化領域を示す第２の変化領域情報を前記汎用メモリ内に書き込む機能とを有し、
前記画像転送処理モジュールプログラムは、
（ｉ）所定の先行期間における転送処理において存在した前記第１の変化領域をヒストリ領域として設定し当該ヒストリ領域を表す転送ヒストリ情報を前記汎用メモリ内に書き込む機能と、
（ｉｉ）前記汎用メモリ内に格納されている前記第１と第２の変化領域情報及び前記転送ヒストリ情報を参照して、前記第２の変化領域のうちで前記第１の変化領域と前記ヒストリ領域のいずれにも含まれない領域に相当する画像部分を前記フレームメモリから取得し、
（ｉｉｉ）前記第２の変化領域のうちで前記第１の変化領域と前記ヒストリ領域とのうちの少なくとも一方に含まれる領域に相当する画像部分を前記フレームメモリから取得することなく前記転送用画像格納領域から取得し、
（ｉｖ）取得した画像部分を、前記第２の変化領域と同一である画面更新領域を示す画面更新領域情報とともに前記ネットワークを介して前記画像表示装置に転送する機能をコンピュータに実現させることを特徴とする画像転送処理モジュール。
【請求項８】
ネットワークを介して画像表示装置に画像を供給して表示させるための画像供給装置において利用される画像転送処理装置であって、
前記画像供給装置は、画像の描画命令を発行可能なアプリケーションプログラムと、前記アプリケーションプログラムによって発行される描画命令を処理するための描画モジュールと、前記アプリケーションプログラムによって発行される特定の描画命令をフックして先取りし、取得した描画命令に従って汎用メモリ内の特定の転送用画像格納領域に画像を描画するフック処理モジュールと、を備えており、
前記画像転送処理装置は、前記転送用画像格納領域から画像を取得するとともに、取得した画像を前記ネットワークを介して前記画像表示装置に転送する機能を有しており、
前記フック処理モジュールは、前記フックによって取得した描画命令に従って前記転送用画像格納領域に画像を描画する機能と、前記転送用画像格納領域の中で前記特定の描画命令に応じて画像が描画される領域である第１の変化領域を示す第１の変化領域情報を前記汎用メモリ内に書き込む機能と、前記特定の描画命令を処理した後に当該描画命令を前記描画モジュールに供給する機能とを有し、
前記描画モジュールは、前記アプリケーションプログラム又は前記フック処理モジュールから受けた描画命令に従ってフレームメモリ内に画像を描画する機能と、前記フレームメモリの中で前記描画命令に応じて画像が描画される領域である第２の変化領域を示す第２の変化領域情報を前記汎用メモリ内に書き込む機能とを有し、
前記画像転送処理装置は、
（ｉ）所定の先行期間における転送処理において存在した前記第１の変化領域をヒストリ領域として設定し当該ヒストリ領域を表す転送ヒストリ情報を前記汎用メモリ内に書き込む機能と、
（ｉｉ）前記汎用メモリ内に格納されている前記第１と第２の変化領域情報及び前記転送ヒストリ情報を参照して、前記第２の変化領域のうちで前記第１の変化領域と前記ヒストリ領域のいずれにも含まれない領域に相当する画像部分を前記フレームメモリから取得し、
（ｉｉｉ）前記第２の変化領域のうちで前記第１の変化領域と前記ヒストリ領域とのうちの少なくとも一方に含まれる領域に相当する画像部分を前記フレームメモリから取得することなく前記転送用画像格納領域から取得し、
（ｉｖ）取得した画像部分を、前記第２の変化領域と同一である画面更新領域を示す画面更新領域情報とともに前記ネットワークを介して前記画像表示装置に転送することを特徴とする画像転送処理装置。
【請求項９】
アプリケーションプログラムによって発行される描画命令を処理するための描画モジュールと、前記アプリケーションプログラムによって発行される特定の描画命令をフックして先取りし、取得した描画命令に従って汎用メモリ内の特定の転送用画像格納領域に画像を描画するフック処理モジュールとを備えた画像供給装置から、ネットワークを介して画像表示装置に画像を供給して表示させる方法
（ａ）前記フック処理モジュールが、前記アプリケーションプログラムによって発行された特定の描画命令に応じて、前記汎用メモリ内の特定の転送用画像格納領域に画像を描画する工程と、
（ｂ）前記フック処理モジュールが、前記転送用画像格納領域の中で前記特定の描画命令に応じて画像が描画される領域である第１の変化領域を示す第１の変化領域情報を前記汎用メモリ内に書き込む工程と、
（ｃ）前記フック処理モジュールが、前記特定の描画命令を処理した後に当該描画命令を前記描画モジュールに供給する工程と、
（ｄ）前記描画モジュールが、前記アプリケーションプログラム又は前記フック処理モジュールから受けた描画命令に従ってフレームメモリ内に画像を描画する工程と、
（ｅ）前記描画モジュールが、前記フレームメモリの中で前記描画命令に応じて画像が描画される領域である第２の変化領域を示す第２の変化領域情報を前記汎用メモリ内に書き込む工程と、
（ｆ）前記画像供給装置が、所定の先行期間における転送処理において存在した前記第１の変化領域をヒストリ領域として設定し当該ヒストリ領域を表す転送ヒストリ情報を前記汎用メモリ内に書き込む工程と、
（ｇ）前記画像供給装置が、前記汎用メモリ内に格納されている前記第１と第２の変化領域情報及び前記転送ヒストリ情報を参照して、前記第２の変化領域のうちで前記第１の変化領域と前記ヒストリ領域のいずれにも含まれない領域に相当する画像部分を前記フレームメモリから取得する工程と、
（ｈ）前記画像供給装置が、前記第１の変化領域に相当する画像部分と、前記第２の変化領域のうちで前記第１の変化領域に含まれずかつ前記ヒストリ領域に含まれる領域に相当する画像部分とを前記フレームメモリから取得することなく前記転送用画像格納領域から取得する工程と、
（ｉ）前記画像供給装置が、取得した画像部分を、前記第１と第２の変化領域の和である画面更新領域を示す画面更新領域情報とともに前記ネットワークを介して前記画像表示装置に転送する工程と、
を備えることを特徴とする画像供給方法。
【請求項１０】
アプリケーションプログラムによって発行される描画命令を処理するための描画モジュールと、前記アプリケーションプログラムによって発行される特定の描画命令をフックして先取りし、取得した描画命令に従って汎用メモリ内の特定の転送用画像格納領域に画像を描画するフック処理モジュールとを備えた画像供給装置から、ネットワークを介して画像表示装置に画像を供給して表示させる方法であって、
（ａ）前記フック処理モジュールが、前記アプリケーションプログラムによって発行された特定の描画命令に応じて、前記汎用メモリ内の特定の転送用画像格納領域に画像を描画する工程と、
（ｂ）前記フック処理モジュールが、前記転送用画像格納領域の中で前記特定の描画命令に応じて画像が描画される領域である第１の変化領域を示す第１の変化領域情報を前記汎用メモリ内に書き込む工程と、
（ｃ）前記フック処理モジュールが、前記特定の描画命令を処理した後に当該描画命令を前記描画モジュールに供給する工程と、
（ｄ）前記描画モジュールが、前記アプリケーションプログラム又は前記フック処理モジュールから受けた描画命令に従ってフレームメモリ内に画像を描画する工程と、
（ｅ）前記描画モジュールが、前記フレームメモリの中で前記描画命令に応じて画像が描画される領域である第２の変化領域を示す第２の変化領域情報を前記汎用メモリ内に書き込む工程と、
（ｆ）前記画像供給装置が、所定の先行期間における転送処理において存在した前記第１の変化領域をヒストリ領域として設定し当該ヒストリ領域を表す転送ヒストリ情報を前記汎用メモリ内に書き込む工程と、
（ｇ）前記画像供給装置が、前記汎用メモリ内に格納されている前記第１と第２の変化領域情報及び前記転送ヒストリ情報を参照して、前記第２の変化領域のうちで前記第１の変化領域と前記ヒストリ領域のいずれにも含まれない領域に相当する画像部分を前記フレームメモリから取得する工程と、
（ｈ）前記画像供給装置が、前記第２の変化領域のうちで前記第１の変化領域と前記ヒストリ領域の少なくとも一方に含まれる領域に相当する画像部分とを前記フレームメモリから取得することなく前記転送用画像格納領域から取得する工程と、
（ｉ）前記画像供給装置が、取得した画像部分を、前記第２の変化領域と同一でらう画面更新領域を示す画面更新領域情報とともに前記ネットワークを介して前記画像表示装置に転送する工程と、
を備えることを特徴とする画像供給方法。
【請求項１１】
ネットワークを介して画像表示装置に画像を供給して表示させるための画像供給装置において利用される画像転送処理モジュールを記録したコンピュータ読取可能な記録媒体であって、
前記画像供給装置は、画像の描画命令を発行可能なアプリケーションプログラムと、前記アプリケーションプログラムによって発行される描画命令を処理するための描画モジュールと、前記アプリケーションプログラムによって発行される特定の描画命令をフックして先取りし、取得した描画命令に従って汎用メモリ内の特定の転送用画像格納領域に画像を描画するフック処理モジュールと、を備えており、
前記画像転送処理モジュールは、前記転送用画像格納領域から画像を取得するとともに、取得した画像を前記ネットワークを介して前記画像表示装置に転送する処理をコンピュータに実現させるものであり、
前記フック処理モジュールは、前記フックによって取得した描画命令に従って前記転送用画像格納領域に画像を描画する機能と、前記転送用画像格納領域の中で前記特定の描画命令に応じて画像が描画される領域である第１の変化領域を示す第１の変化領域情報を前記汎用メモリ内に書き込む機能と、前記特定の描画命令を処理した後に当該描画命令を前記描画モジュールに供給する機能とを有し、
前記描画モジュールは、前記アプリケーションプログラム又は前記フック処理モジュールから受けた描画命令に従ってフレームメモリ内に画像を描画する機能と、前記フレームメモリの中で前記描画命令に応じて画像が描画される領域である第２の変化領域を示す第２の変化領域情報を前記汎用メモリ内に書き込む機能とを有し、
前記画像転送処理モジュールは、
（ｉ）所定の先行期間における転送処理において存在した前記第１の変化領域をヒストリ領域として設定し当該ヒストリ領域を表す転送ヒストリ情報を前記汎用メモリ内に書き込む機能と、
（ｉｉ）前記汎用メモリ内に格納されている前記第１と第２の変化領域情報及び前記転送ヒストリ情報を参照して、前記第２の変化領域のうちで前記第１の変化領域と前記ヒストリ領域のいずれにも含まれない領域に相当する画像部分を前記フレームメモリから取得し、
（ｉｉｉ）前記第１の変化領域に相当する画像部分と、前記第２の変化領域のうちで前記第１の変化領域に含まれずかつ前記ヒストリ領域に含まれる領域に相当する画像部分とを前記フレームメモリから取得することなく前記転送用画像格納領域から取得し、
（ｉｖ）取得した画像部分を、前記第１と第２の変化領域の和である画面更新領域を示す画面更新領域情報とともに前記ネットワークを介して前記画像表示装置に転送する機能を有する、記録媒体。
【請求項１２】
ネットワークを介して画像表示装置に画像を供給して表示させるための画像供給装置において利用される画像転送処理モジュールを記録したコンピュータ読取可能な記録媒体であって、
前記画像供給装置は、画像の描画命令を発行可能なアプリケーションプログラムと、前記アプリケーションプログラムによって発行される描画命令を処理するための描画モジュールと、前記アプリケーションプログラムによって発行される特定の描画命令をフックして先取りし、取得した描画命令に従って汎用メモリ内の特定の転送用画像格納領域に画像を描画するフック処理モジュールと、を備えており、
前記画像転送処理モジュールは、前記転送用画像格納領域から画像を取得するとともに、取得した画像を前記ネットワークを介して前記画像表示装置に転送する処理をコンピュータに実現させるものであり、
前記フック処理モジュールは、前記フックによって取得した描画命令に従って前記転送用画像格納領域に画像を描画する機能と、前記転送用画像格納領域の中で前記特定の描画命令に応じて画像が描画される領域である第１の変化領域を示す第１の変化領域情報を前記汎用メモリ内に書き込む機能と、前記特定の描画命令を処理した後に当該描画命令を前記描画モジュールに供給する機能とを有し、
前記描画モジュールは、前記アプリケーションプログラム又は前記フック処理モジュールから受けた描画命令に従ってフレームメモリ内に画像を描画する機能と、前記フレームメモリの中で前記描画命令に応じて画像が描画される領域である第２の変化領域を示す第２の変化領域情報を前記汎用メモリ内に書き込む機能とを有し、
前記画像転送処理モジュールは、
（ｉ）所定の先行期間における転送処理において存在した前記第１の変化領域をヒストリ領域として設定し当該ヒストリ領域を表す転送ヒストリ情報を前記汎用メモリ内に書き込む機能と、
（ｉｉ）前記汎用メモリ内に格納されている前記第１と第２の変化領域情報及び前記転送ヒストリ情報を参照して、前記第２の変化領域のうちで前記第１の変化領域と前記ヒストリ領域のいずれにも含まれない領域に相当する画像部分を前記フレームメモリから取得し、
（ｉｉｉ）前記第２の変化領域のうちで前記第１の変化領域と前記ヒストリ領域の少なくとも一方に含まれる領域に相当する画像部分を前記フレームメモリから取得することなく前記転送用画像格納領域から取得し、
（ｉｖ）取得した画像部分を、前記第２の変化領域と同一である画面更新領域を示す画面更新領域情報とともに前記ネットワークを介して前記画像表示装置に転送する機能を有することを特徴とする記録媒体。