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