(57)【要約】 【課題】  画像供給装置において発行される描画命令の種類に拘わらず、正しい描画結果を含む画像を画像表示装置に転送することのできる技術を提供する。【解決手段】  透明ウィンドウ発行モジュール１３２が透明ウィンドウの描画命令を発行すると、フック処理モジュール１４０がその描画命令で描画される領域を示す変化領域情報１０６ａをＲＡＭ１０６内に書き込む。また、透明ウィンドウは、ＶＲＡＭ１１４内に描画される。画像転送モジュール１３４は、変化領域情報１０６ａに従ってＶＲＡＭ１１４から透明ウィンドウの描画結果の画像を取得するとともに、取得した画像をネットワークを介してプロジェクタに転送する。【選択図】  図３
2006285901.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して画像表示装置に画像を供給して表示させるための画像供給装置であって、
前記画像表示装置の画面領域の中で画像の転送対象となる転送対象領域を設定するとともに、前記転送対象領域を走査する透明ウィンドウの描画命令を発行する透明ウィンドウ発行モジュールと、
前記描画命令に従ってフレームメモリ内での描画を実行する描画モジュールと、
前記描画命令で描画される領域を示す変化領域情報を汎用メモリに書き込む変化領域情報書込モジュールと、
前記変化領域情報に従って前記フレームメモリから前記透明ウィンドウの描画結果の画像を取得するとともに、取得した画像を前記ネットワークを介して前記画像表示装置に転送する画像転送モジュールと、
を備える画像供給装置。
【請求項２】
請求項１記載の画像供給装置であって、
前記透明ウィンドウ発行モジュールは、前記画面領域内に存在するすべてのウィンドウの位置情報を取得するとともに、取得した全ウィンドウを包含する領域を前記転送対象領域として設定する、画像供給装置。
【請求項３】
請求項１記載の画像供給装置であって、
前記透明ウィンドウ発行モジュールは、前記画面領域の全領域を前記転送対象領域として設定する、画像供給装置。
【請求項４】
請求項１ないし３のいずれかに記載の画像供給装置であって、
前記変化領域情報書込モジュールは、前記画像供給装置上で動作するアプリケーションプログラムによって発行される描画命令をフックして先取りし、取得した描画命令に従って前記変化領域情報を前記汎用メモリに書き込む処理を実行するものであり、
前記画面領域内に存在するウィンドウは、前記変化領域情報書込モジュールがフックできない描画命令によって描画されるウィンドウを含み得る、画像供給装置。
【請求項５】
請求項１記載の画像供給装置であって、
前記変化領域情報書込モジュールは、前記画像供給装置上で動作するアプリケーションプログラムによって発行される描画命令をフックして先取りし、取得した描画命令に従って前記変化領域情報を前記汎用メモリに書き込む処理を実行するものであり、
前記透明ウィンドウ発行モジュールは、前記画面領域内に存在するすべてのウィンドウのうちで前記変化領域情報書込モジュールによってフックされない描画命令によって描画されたウィンドウの位置情報を取得するとともに、取得した１つ以上のウィンドウを包含する領域を前記転送対象領域として設定する、画像供給装置。
【請求項６】
請求項１ないし５のいずれかに記載の画像供給装置であって、
前記透明ウィンドウ発行モジュールは、前記変化領域情報書込モジュールがフックできない描画命令を発行することが可能な特定のアプリケーションプログラムが前記画像供給装置上で実行されているか否かを検出し、前記特定のアプリケーションプログラムが実行されているときにのみ前記透明ウィンドウの描画命令を発行する、画像供給装置。
【請求項７】
ネットワークを介して画像表示装置に画像を供給して表示させる方法であって、
（ａ）前記画像表示装置の画面領域の中で画像の転送対象となる転送対象領域を設定するとともに、前記転送対象領域を走査する透明ウィンドウの描画命令を発行する工程と、
（ｂ）前記描画命令に従ってフレームメモリ内での描画を実行する工程と、
（ｃ）前記描画命令で描画される領域を示す変化領域情報を汎用メモリに書き込む工程と、
（ｄ）前記変化領域情報に従って前記フレームメモリから前記透明ウィンドウの描画結果の画像を取得するとともに、取得した画像を前記ネットワークを介して前記画像表示装置に転送する工程と、
を備える画像供給方法。
【請求項８】
ネットワークを介して画像表示装置に画像を供給して表示させるための画像供給装置において利用される画像転送プログラムを記録したコンピュータ読取可能な記録媒体であって、
前記画像表示装置の画面領域の中で画像の転送対象となる転送対象領域を設定するとともに、前記転送対象領域を走査する透明ウィンドウの描画命令を発行する透明ウィンドウ発行機能と、
前記描画命令で描画される領域を示す変化領域情報を汎用メモリに書き込む変化領域情報書込機能と、
前記変化領域情報に従って、フレームメモリから前記透明ウィンドウの描画結果の画像を取得するとともに、取得した画像を前記ネットワークを介して前記画像表示装置に転送する画像転送機能と、
をコンピュータに実現させる画像転送プログラムを記録した記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを介して接続された画像供給装置と画像表示装置とを含む画像表示システムに関する。
【背景技術】
【０００２】
画像を投写表示するプロジェクタの一種として、ネットワークを介してパーソナルコンピュータから供給された画像を投写表示することができるプロジェクタ（以下、「ネットワークプロジェクタ」とも呼ぶ）が提案されている(例えば特許文献１)。また、このようなネットワークプロジェクタに、ネットワークを介してパーソナルコンピュータから画像を供給するために、ＶＮＣ（Virtual Network Computing）とよばれる技術が利用されている。
【０００３】
【特許文献１】国際公開第０１／０９３５８３号パンフレット
【０００４】
ＶＮＣを利用した画像転送では、アプリケーションプログラムが発行した描画命令を取得し、その描画命令で描画される領域内の画像を取得してネットワークプロジェクタに転送する。
【０００５】
しかし、アプリケーションプログラムの中には、ＶＮＣが取得できない描画命令を発行するものが存在する。例えば、Direct X（マイクロソフト社の商標）によって処理される描画命令は、ＶＮＣが取得できない場合がある。ＶＮＣが描画命令を取得できない場合には、ネットワークプロジェクタにその描画結果の画像を転送することができず、ネットワークプロジェクタに正しい画像を表示できないという問題があった。このような問題は、ネットワークプロジェクタシステムに限らず、一般に、ネットワークを介して画像供給装置から画像表示装置に画像を供給して表示させるシステムに共通する問題であった。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明は、画像供給装置において発行される描画命令の種類に拘わらず、正しい描画結果を含む画像を画像表示装置に転送することのできる技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明による画像供給装置は、
ネットワークを介して画像表示装置に画像を供給して表示させるための画像供給装置であって、
前記画像表示装置の画面領域の中で画像の転送対象となる転送対象領域を設定するとともに、前記転送対象領域を走査する透明ウィンドウの描画命令を発行する透明ウィンドウ発行モジュールと、
前記描画命令に従ってフレームメモリ内での描画を実行する描画モジュールと、
前記描画命令で描画される領域を示す変化領域情報を汎用メモリに書き込む変化領域情報書込モジュールと、
前記変化領域情報に従って前記フレームメモリから前記透明ウィンドウの描画結果の画像を取得するとともに、取得した画像を前記ネットワークを介して前記画像表示装置に転送する画像転送モジュールと、
を備える画像供給装置。
【０００８】
透明ウィンドウを描画した結果は、元と同じに保たれる。従って、透明ウィンドウの描画命令で描画される領域を転送すれば、通常は取得できない描画命令で描画されている部分が画面内に存在する場合にも、正しい描画結果を含む画像を画像表示装置に転送することができる。
【０００９】
前記透明ウィンドウ発行モジュールは、前記画面領域内に存在するすべてのウィンドウの位置情報を取得するとともに、取得した全ウィンドウを包含する領域を前記転送対象領域として設定するようにしてもよい。
【００１０】
この構成によれば、転送対象領域を画面領域全体よりも小さくできるので、転送されるデータ量を削減することができる。
【００１１】
前記透明ウィンドウ発行モジュールは、前記画面領域の全領域を前記転送対象領域として設定するようにしてもよい。
【００１２】
この構成によれば、画面領域内にあるウィンドウの情報を取得する必要が無いので、この取得に要する処理時間を短縮できる。
【００１３】
前記変化領域情報書込モジュールは、前記画像供給装置上で動作するアプリケーションプログラムによって発行される描画命令をフックして先取りし、取得した描画命令に従って前記変化領域情報を前記汎用メモリに書き込む処理を実行するものであり、
前記画面領域内に存在するウィンドウは、前記変化領域情報書込モジュールがフックできない描画命令によって描画されるウィンドウを含み得るものとしてもよい。
【００１４】
この構成では、変化領域情報書込モジュールがフックできない描画命令によって描画されるウィンドウが画面領域内に含まれている場合にも、透明ウィンドウの発行を通じて正しい画像を画像表示装置に転送することができる。
【００１５】
前記変化領域情報書込モジュールは、前記画像供給装置上で動作するアプリケーションプログラムによって発行される描画命令をフックして先取りし、取得した描画命令に従って前記変化領域情報を前記汎用メモリに書き込む処理を実行するものであり、
前記透明ウィンドウ発行モジュールは、前記画面領域内に存在するすべてのウィンドウのうちで前記変化領域情報書込モジュールによってフックされない描画命令によって描画されたウィンドウの位置情報を取得するとともに、取得した１つ以上のウィンドウを包含する領域を前記転送対象領域として設定するものとしてもよい。
【００１６】
この構成によれば、変化領域情報書込モジュールによってフックできない描画命令のウィンドウだけが透明ウィンドウを用いて転送されるので、転送されるデータ量を削減することが可能である。
【００１７】
また、前記透明ウィンドウ発行モジュールは、前記変化領域情報書込モジュールがフックできない描画命令を発行することが可能な特定のアプリケーションプログラムが前記画像供給装置上で実行されているか否かを検出し、前記特定のアプリケーションプログラムが実行されているときにのみ前記透明ウィンドウの描画命令を発行するものとしてもよい。
【００１８】
この構成では、必要な場合にのみ透明ウィンドウを発行するので、そのための負荷を軽減することができる。
【００１９】
なお、本発明は種々の形態で実現することが可能であり、例えば、画像表示システム、画像表示システムを構成する画像供給装置及び画像表示装置、画像供給装置に利用されるフック処理モジュール及び画像転送処理モジュール、画像供給方法、それら方法又は装置を実現するためのコンピュータプログラム、それらのコンピュータプログラムを記録した記録媒体などの種々の態様で実現することが可能である。
【発明を実施するための最良の形態】
【００２０】
以下、本発明の実施の形態を以下の順序で説明する。
Ａ．第１実施例：
Ｂ．第２実施例：
Ｃ．第３実施例：
Ｄ．変形例：
【００２１】
Ａ．第１実施例：
図１は本発明の一実施例として画像表示システムの構成を示す説明図である。本実施例の画像表示システム１０は、画像供給装置としてのパーソナルコンピュータ１００と、画像表示装置としてのプロジェクタ２００と、コンピュータ１００とプロジェクタ２００とをつなぐネットワーク３００と、を備えている。コンピュータ１００は、ネットワーク３００を介して画像をプロジェクタ２００供給して、プロジェクタ２００に画像を投写させて投写表示画面７０に表示させる機能を有している。
【００２２】
図２は、コンピュータ１００とプロジェクタ２００の内部構成を示すブロック図である。コンピュータ１００は、ＣＰＵ１０２と、ＲＯＭ１０４と、汎用メモリ（「システムメモリ」とも呼ぶ）としてのＲＡＭ１０６と、ハードディスクドライブ１０８と、キーボードやポインティングデバイスなどで構成される入力部１１０と、ネットワークインタフェース部１１２と、フレームメモリとしてのＶＲＡＭ１１４と、グラフィックコントローラ１１６と、液晶ディスプレイなどの表示デバイス１１８と、これら各要素を接続するバス１２０と、を備えている。
【００２３】
ＲＡＭ１０６には、アプリケーションプログラム１２２と、グラフィカルデバイスインタフェース（ＧＤＩ：Graphics Device Interface）１２４と、ディスプレイドライバ１２６と、画像転送プログラムとしてのＶＮＣサーバ１３０と、変化領域情報書込モジュールとしてのフック処理モジュール１４０と、を含む各種コンピュータプログラムが格納されている。
【００２４】
プロジェクタ２００は、ＣＰＵ２０２と、ＲＯＭ２０４と、ＲＡＭ２０６と、各種の操作ボタンを含む入力部２１０と、ネットワークインタフェース部２１２と、画像処理部２１４と、光源ランプと液晶パネルと投写光学系を含む投写部２１６と、これら各要素を接続するバス２１８と、を備えている。ＲＯＭ２０４には、画像処理ドライバ２２８と、ＶＮＣクライアント２３０とを含む各種コンピュータプログラムが格納されている。
【００２５】
図３は、第１実施例におけるコンピュータのソフトウェアとハードウェアの階層構造を示す説明図である。アプリケーションプログラム１２２ａ，１２２ｂとＶＮＣサーバ１３０とフック処理モジュール１４０は、アプリケーションプログラム層（「ユーザアプリケーションプログラム層」とも呼ぶ）に属する。ＧＤＩ１２４ａ，１２４ｂとディスプレイドライバ１２６は、カーネル層に属する。また、汎用メモリとしてのＲＡＭ１０６と、ネットワークインタフェース部１１２と、ＶＲＡＭ１１４と、グラフィックコントローラ１１６と、表示デバイス１１８は、ハードウェア層に属する。
【００２６】
ＶＮＣサーバ１３０は、透明ウィンドウ発行モジュール１３２と、画像転送モジュール１３４とを有している。透明ウィンドウ発行モジュール１３２は、後述する透明ウィンドウの描画命令（「描画要求」とも呼ぶ）を発行する機能を有する。フック処理モジュール１４０は、各種の描画命令をフックして、描画される領域を表す変化領域情報１０６ａをＲＡＭ１０６内に書込む機能を有する。画像転送モジュール１３４は、この変化領域情報１０６ａに従って、転送すべき画像を取得し、取得した画像を含む画面更新メッセージをプロジェクタ２００に転送する機能を有する。
【００２７】
フック処理モジュール１４０は、ＶＮＣサーバ１３０の起動に伴って起動し、ＶＮＣサーバ１３０を終了するときにフック処理モジュール１４０の実行が終了するように、ＶＮＣサーバ１３０を構成することが好ましい。こうすれば、ＶＮＣサーバ１３０が実行中の期間にのみフック処理モジュール１４０を動作させることができる。この結果、コンピュータ１００上でＶＮＣサーバ１３０が実行されていない（起動していない）ときに描画命令をフックしてしまい、望ましくない結果が生じることを回避することができる。なお、本明細書において、「コンピュータ１００上でＶＮＣサーバ１３０が実行されている」という文言は、ＶＮＣサーバ１３０のプロセスが起動されていることを意味している。
【００２８】
図３に示す２つのアプリケーションプログラム１２２ａ，１２４ｂは、ＧＤＩ１２４ａ，１２４ｂで処理される各種の描画命令を発行する。２つのＧＤＩ１２４ａ，１２４ｂは、表示装置（コンピュータ１００の表示デバイス１１８やプロジェクタ２００）や印刷装置（図示せず）などへの描画命令を管理しているコンピュータプログラムである。良く知られているように、一般に、ＧＤＩは「ＧＤＩ関数」と呼ばれる描画に関するアプリケーションプログラムインタフェース（ＡＰＩ：Application Program Interface）を各種のアプリケーションプログラムに対して提供している。なお、ＡＰＩとは、一般に、アプリケーションプログラムがオペレーティングシステムの持つ様々な機能を利用するための手続きの集まりを言う。
【００２９】
本実施例では、ＧＤＩとして汎用ＧＩＤ１２３ａと特定用途ＧＤＩ１２４ｂ（特殊用途ＧＤＩとも呼ぶ）が実装されている。汎用ＧＤＩ１２４ａは、例えばWindows GDI（マイクロソフト社の登録商標）である。特定用途ＧＤＩ１２４ｂは、特定用途のためのＧＤＩであり、例えばDirect X（マイクロソフト社の登録商標）である。特定用途ＧＤＩ１２４ｂは、アプリケーションプログラム１２２ｂが特定用途ＧＤＩ１２４ｂに向けた描画命令を発行したときにのみ、その描画命令を処理する。汎用ＧＤＩ１２４ａは、それ以外の一般的な描画命令を処理する。
【００３０】
第１のアプリケーションプログラム１２２ａは、汎用ＧＤＩ１２４ａで処理される描画命令のみを発行する。一方、第２のアプリケーションプログラム１２２ｂは、汎用ＧＤＩ１２４ａで処理される描画命令と、特定用途ＧＤＩ１２４ｂで処理される描画命令の両方を発行可能である。汎用ＧＤＩ１２４ａで処理される描画命令は、フック処理モジュール１４０によって先取りされ、後述する変化領域情報書込処理を実行する。なお、フック処理モジュール１４０は、特定用途ＧＤＩ１２４ｂによって処理される描画命令をフックしないように構成されている。
【００３１】
汎用ＧＤＩ１２４ａで処理された描画命令は、ディスプレイドライバ１２６によってグラフィックコントローラ１１６に供給される。一方、特定用途ＧＤＩ１２４ｂで処理された描画命令は、ディスプレイドライバ１２６をバイパスして直接グラフィックコントローラ１１６に供給される。グラフィックコントローラ１１６は、受け取った描画命令に従ってＶＲＡＭ１１４に画像を描画し、また、ＶＲＡＭ１１４から画面全体の画像データを読み出して表示デバイス１１８に表示する。この説明からも理解できるように、ＧＤＩ１２４ａ，１２４ｂとディスプレイドライバ１２６は、描画命令に従って描画処理を実行する描画モジュールとして機能する。
【００３２】
なお、汎用ＧＤＩ１２４ａとしては、任意の汎用の描画用ＡＰＩを使用することも可能である。「汎用の描画用ＡＰＩ」とは、通常のアプリケーションプログラムが共通に使用するために提供されているＡＰＩを意味している。
【００３３】
なお、ＧＤＩ１２４ａ，１２４ｂと、ディスプレイドライバ１２６は、オペレーティングシステムの一部として機能する。なお、本実施例においては、オペレーティングシステムとして、マイクロソフト社によって提供されるWindows（登録商標）を想定している。このような各種コンピュータプログラムは、フレキシブルディスクやＣＤ−ＲＯＭ等の、コンピュータ読み取り可能な記録媒体に記録された形態で提供される。
【００３４】
図４は、第１実施例における画像転送処理の手順を示すフローチャートである。ステップＳ１００では、ユーザによって画像転送用プログラムが起動される。第１実施例では、ステップＳ１００においてＶＮＣサーバ１３０及びフック処理モジュール１４０が起動される。但し、ユーザが起動を明示的に指示するのはＶＮＣサーバ１３０だけであり、フック処理モジュール１４０はＶＮＣサーバ１３０の起動に伴って自動的に起動される。
【００３５】
ステップＳ１１０では、透明ウィンドウ発行モジュール１３２が、画面領域内に存在する全てのウィンドウの情報を取得する。なお、ウィンドウの情報は、コンピュータ１００のオペレーティングシステムのウィンドウ情報提供サービスを利用することによって取得できる。この処理は、各種のWindows APIを利用して実行することができる。
【００３６】
図５（Ａ）は、取得された全ウィンドウの例を示している。この例では、ＶＲＡＭ１１４の画面領域全体の中に３つのウィンドウＷ１〜Ｗ３が存在する。但し、第１と第２のウィンドウＷ１，Ｗ２は、汎用ＧＤＩ１２４ａで処理される描画命令に従って描画されたものであり、第３のウィンドウＷ３は特定用途ＧＤＩ１２４ｂで処理される描画命令に従って描画されたものである。第３のウィンドウＷ３を描画する描画命令は汎用ＧＤＩ１２４ａによって処理されないので、このウィンドウＷ３内の画像は従来のＶＮＣシステムでは転送することができなかったものである。
【００３７】
ステップＳ１２０では、透明ウィンドウ発行モジュール１３２が、取得したすべてのウィンドウの情報から、転送対象領域ＴＲを決定する。図５（Ｂ）は、転送対象領域ＴＲを示している。この例では、転送対象領域ＴＲは、すべてのウィンドウを包含する領域として設定される。より具体的に言えば、転送対象領域ＴＲは、すべてのウィンドウを包含する最小の領域（すなわちウィンドウに外接する領域）として設定されることが好ましい。
【００３８】
ステップＳ１３０では、透明ウィンドウ発行モジュール１３２が、転送対象領域ＴＲ内で透明ウィンドウを走査させる。図６（Ａ）は、走査開始時の透明ウィンドウＴＷの位置を示している。この例では、透明ウィンドウＴＷは、最初は転送対象領域ＴＲの左上の端部に配置され、その後、右に向けて移動する。図６（Ｂ）は、透明ウィンドウＴＷの２番目の位置を示している。また、図６（Ｃ）は、転送対象領域ＴＲ内の終端における透明ウィンドウＴＷの位置を示している。これらの例から理解できるように、透明ウィンドウＴＷの走査は、転送対象領域ＴＲをタイル状に区分し、個々のタイル位置に順次移動するように行われることが好ましい。そして、個々の透明ウィンドウＴＷの位置において、透明ウィンドウＴＷの描画命令が透明ウィンドウ発行モジュール１３２によって発行される。なお、透明ウィンドウＴＷの描画命令の発行は、一定時間間隔で定期的に行われることが好ましい。
【００３９】
ステップＳ１４０では、フック処理モジュール１４０が、透明ウィンドウＴＷの描画命令をフックして、ＶＲＡＭ１１４内における透明ウィンドウＴＷの描画領域の位置及びサイズを表す変化領域情報１０６ａをＲＡＭ１０６内に書き込む。なお、本明細書では、描画される領域を「変化領域」と呼ぶ。この理由は、画面領域の中で、描画命令に従って描画される領域のみが変化するからである。
【００４０】
なお、フック処理モジュール１４０は、変化領域情報の書込を終了すると、透明ウィンドウＴＷの描画命令を汎用ＧＤＩ１２４ａに渡して処理を実行させる。すなわち、汎用ＧＤＩ１２４ａとディスプレイドライバ１２６とグラフィックコントローラ１１６は、ＶＲＡＭ１１４内に透明ウィンドウＴＷの画像を書き込む処理を実行する。
【００４１】
透明ウィンドウＴＷの描画結果は、元の画像と同じ状態に保たれる。本実施例では、画像データの画素値が、Ｒ，Ｇ，Ｂの３つの色成分チャンネルと、αチャンネルと、の４つの成分を有しているものと仮定する。透明なオブジェクトの画素値は、αチャンネルの値が０であり、ＲＧＢの値は任意である。任意の画素値（Ｒ１，Ｇ１，Ｂ２，α１）の画像の上に、透明な画素を示す画素値（０，０，０，０）の画像を重ねて描画すると、描画結果は元の画素値（Ｒ１，Ｇ１，Ｂ２，α１）と同じになる。すなわち、透明ウィンドウＴＷを描画しても、画面内の画像に変化は生じない。この説明からも理解できるように、透明ウィンドウＴＷは、画面内の画像を変更せずに、従来では転送できなかったウィンドウＷ３（図５）の画像をプロジェクタ２００に転送するために使用されている。
【００４２】
ステップ１５０では、ＶＮＣサーバ１３０が、ＲＡＭ１０６内の変化領域情報１０６ａを参照して、変化領域の画像データをプロジェクタ２００に転送する。
【００４３】
図７は、ステップＳ１５０の詳細手順を示すフローチャートである。ステップＳ２００では、プロジェクタ２００に転送すべき画像データの領域（「画面更新領域」と呼ぶ）が決定される。ＲＡＭ１０６内に登録されている変化領域情報１０６ａが１つのみの場合には、その変化領域情報１０６ａで表される変化領域そのものが画面更新領域となる。一方、変化領域情報１０６ａが複数登録されている場合には、複数の変化領域の和領域が画面更新領域となる。
【００４４】
ステップＳ２１０では、画面更新領域に相当する画像部分の画像データがＶＲＡＭ１１４から取得され、ＲＡＭ１０６内の画像データ格納領域１０６ｂに格納される。この画像データ格納領域１０６ｂは、例えばコンピュータ１００又はプロジェクタ２００の表示解像度に等しいサイズのメモリ領域である。
【００４５】
ステップＳ２２０では、予め設定された複数のエンコーディング形式（「圧縮方式」あるいは「圧縮方法」とも呼ぶ）のいずれかに従って画像データが変換される。エンコーディング形式としては、例えばＪＰＥＧ圧縮やＺＬＩＢ圧縮を利用可能である。
【００４６】
ステップＳ２３０では、こうして変換された画像データと変化領域情報とを含む画面更新メッセージが作成され、ネットワークインタフェース部１１２を介してプロジェクタ２００に転送される。
【００４７】
図８は、画面更新メッセージの構造を示す説明図である。この画面更新メッセージは、ＶＮＣプロトコルに規定されているフレームバッファアップデート「FramebufferUpdate」の構造に準じている。画面更新メッセージは、メッセージの種類を示すメッセージヘッダ部と、メッセージのパラメータを示すパラメータ部とを有している。
【００４８】
メッセージヘッダ部には、メッセージの種類を示すメッセージタイプ(１バイト)と、変化領域の数を示す変化領域数（２バイト）とが含まれる。画面更新メッセージを示すメッセージタイプのデータ値は「０」である。変化領域数のデータ値は通常は「１」に設定される。但し、ＲＡＭ１０６内に複数の変化領域に関する変化領域情報１０６ａが未処理で残っている場合には、画面更新メッセージがそれらの複数の変化領域に関する情報（変化領域情報及び画像データ）を含むように画面更新メッセージを構成することも可能である。画面更新メッセージに含まれる変化領域情報を「画面更新領域情報」とも呼ぶ。なお、メッセージタイプデータと変化領域数データとは１バイトのパディングを介して区分されている。
【００４９】
パラメータ部には、変化領域の基準点のｘ座標（２バイト）及びｙ座標(２バイト)と、変化領域の幅（２バイト）及び高さ（２バイト）と、変化領域の画像データの転送時のエンコーディング形式（４バイト）と、変化領域の画像データ（ｎバイト）と、が含まれている。
【００５０】
プロジェクタ２００のネットワークインタフェース部２１２（図２）は、ネットワーク３００を介して供給された通信データを受信すると、この通信データに含まれている画面更新メッセージを取り出して、ＶＮＣクライアント２３０に渡す。ＶＮＣクライアント２３０は、画面更新メッセージに含まれる画像データを画像処理ドライバ２２８に渡す。画像処理ドライバ２２８は、この画像データに従って画像処理部２１４を制御し、画像処理部２１４によって画像処理部２１４内の表示メモリ（図示せず）に画像データを展開させる。この結果、プロジェクタ２００は、図１に示すように、投写表示画面７０に画像を表示することができる。
【００５１】
なお、図７の処理は、画像転送モジュール１３４によって一定時間毎に実行されている。従って、画面更新領域は、その一定時間の間にＲＡＭ１０６内に書き込まれた変化領域情報１０６ａで表される変化領域の和領域になる。例えば、透明ウィンドウＴＷが２つ描画されていれば、それらの２つの透明ウィンドウＴＷの和領域が画面更新領域となる。また、透明ウィンドウＴＷ以外の描画命令が発行されていれば、その描画命令の領域も画面更新領域に含まれる。
【００５２】
図４のステップＳ１６０では、透明ウィンドウＴＷが転送対象領域ＴＲの終端（図６（Ｃ））に達したか否かが判断され、終端に達していなければステップＳ１３０に戻って処理が継続される。透明ウィンドウＴＷが転送対象領域ＴＲの終端に達すると、ステップＳ１７０に移り、次の走査タイミングまで待機する。そして、一定時間が経過して次の走査タイミングが来ると、ステップＳ１１０に戻って上述の処理を繰り返す。
【００５３】
このように、第１実施例では、透明ウィンドウＴＷの描画命令に従って変化領域情報１０６ａをＲＡＭ１０６内に書き込み、この変化領域情報１０６ａに従って画像を転送するので、従来は転送できなかった第３のウィンドウＷ３（図５）の画像もプロジェクタ２００に転送することが可能である。また、第１実施例では、画面領域内に存在する全ウィンドウに外接する領域として転送対象領域ＴＲ（図５（Ｂ））を設定し、この転送対象領域ＴＲ内で透明ウィンドウＴＷを走査させたので、画面全体を転送対象とする場合に比べて転送データ量を低減することができる。この結果、転送の負荷が過度に増加するのを防止できるという利点がある。
【００５４】
Ｂ．第２実施例：
図９は、第２実施例における画像転送処理の手順を示すフローチャートである。第２実施例は、装置構成は第１実施例と同じであり、処理手順のみが異なっている。すなわち、図９の手順は、図４のステップＳ１１０，Ｓ１２０を省略し、ステップＳ１３０を変更したものに相当する。
【００５５】
第２実施例においては、全ウィンドウに応じた転送対象領域の決定（Ｓ１１０，Ｓ１２０）を行わず、画面の全範囲を転送対象領域ＴＲに設定する。そして、ステップＳ１３０ａでは、全画面領域内で透明ウィンドウを走査させる。図１０は、第２実施例における透明ウィンドウの走査の様子を示す説明図である。図６と比較すれば理解できるよに、第２実施例では全画面領域が転送対象領域ＴＲとなっているので、透明ウィンドウＴＷも全画面領域の中を移動する。
【００５６】
第２実施例では、画面領域内にあるウィンドウの情報を取得する必要が無いので、この取得に要する処理時間を短縮できるという利点がある。一方、第１実施例は、第２実施例よりも転送データ量を削減できるという利点がある。
【００５７】
Ｃ．第３実施例：
図１１は、第３実施例におけるコンピュータのソフトウェアとハードウェアの階層構造を示す説明図である。この第３実施例の構成は、図３に示した第１実施例の構成からフック処理モジュール１４０を省略し、この代わりにプロジェクタドライバ１２８をカーネル層に追加した構成を有している。第３実施例では、フック処理モジュール１４０の代わりにプロジェクタドライバ１２８を変化領域情報書込モジュールとして使用する。
【００５８】
プロジェクタドライバ１２８は、いわゆるデバイスドライバとして実装されており、ＶＮＣサーバ１３０の起動に応じて起動する。汎用ＧＤＩ１２４ａは、上流側から受け取った描画命令をディスプレイドライバ１２６とプロジェクタドライバ１２８の両方に供給する。従って、透明ウィンドウ発行モジュール１３２から発行された透明ウィンドウの描画命令も、汎用ＧＤＩ１２４ａによって受け取られ、ディスプレイドライバ１２６とプロジェクタドライバ１２８の両方に供給される。プロジェクタドライバ１２８は、汎用ＧＤＩ１２４ａから受け取った描画命令に従って、変化領域情報１０６ａをＲＡＭ１０６内に書き込む。
【００５９】
なお、第３実施例では、ＧＤＩ１２４ａ，１２４ｂとディスプレイドライバ１２６とプロジェクタドライバ１２８が、描画命令に従って描画処理を実行する描画モジュールとして機能する。
【００６０】
この第３実施例の処理手順としては、図４に示した第１実施例と図１０に示した第２実施例の両方の手順を適用可能である。従って、第３実施例の構成によっても、第１実施例及び第２実施例と同じ効果を得ることが可能である。
【００６１】
Ｄ．変形例：
なお、本発明は上記した実施例や実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様にて実施することが可能であり、例えば以下のような変形が可能である。
【００６２】
Ｄ１．変形例１：
上記第１実施例では、画面領域内に存在するすべてのウィンドウの位置情報を取得してその全ウィンドウを包含する領域を転送対象領域として設定していたが、この代わりに、フック処理モジュール１４０（変化領域情報書込モジュール）によってフックできない描画命令で描画されたウィンドウの領域のみを転送対象領域として設定してもよい。この場合には、透明ウィンドウ発行モジュール１３２は、例えば、フック処理モジュール１４０がフックした描画命令で描画されたウィンドウの位置情報をフック処理モジュール１４０から受け取り、そのウィンドウを画面領域内の全ウィンドウから除外することによって、フックされなかった描画命令で描画されたウィンドウを把握することができる。透明ウィンドウ発行モジュール１３２は、フック処理モジュール１４０によってフックされなかった描画命令で描画されたウィンドウが１つ以上存在する場合に、それらのウィンドウを包含する領域を転送対象領域として設定することができる。このような処理を行えば、転送されるデータ量を削減することが可能である。
【００６３】
Ｄ２．変形例２：
上記各実施例では、ＶＮＣサーバ１３０の動作中に透明ウィンドウの描画命令を定期的に発行するものとしていたが、この代わりに、必要が生じたときにのみ透明ウィンドウの描画命令を発行するようにしてもよい。例えば、透明ウィンドウ発行モジュール１３２が、フック処理モジュール１４０によってフックできない描画命令を発行可能な特定のアプリケーションプログラムが１つ以上実行されているか否かを検出し、その特定のアプリケーションプログラムが実行されているときにのみ透明ウィンドウの描画命令を発行するものとしてもよい。なお、このような特定のアプリケーションプログラムは、予め透明ウィンドウ発行モジュール１３２に登録しておくことが好ましい。
【００６４】
Ｄ３．変形例３：
コンピュータ１００からプロジェクタ２００に供給される画面更新メッセージとしては、上記実施例で使用したもの以外の種々のものを使用することが可能である。但し、画面更新メッセージとしては、変化領域（画面更新領域）の位置及びサイズを示す情報と、変化領域内の画像データとを少なくとも含むことが好ましい。この理由は、変化領域に関するデータ（変化領域情報及びその画像データ）のみを転送すれば、転送すべきデータ量が少なくなるからである。
【００６５】
Ｄ４．変形例４：
上記実施例では、描画モジュールが、ＧＤＩ１２４ａ，１２４ｂとディスプレイドライバ１２６（及びプロジェクタドライバ１２８）とに分かれていたが、モジュールの区分は任意であり、これらの機能を１つのモジュールにまとめることも可能である。また、ディスプレイドライバ１２６とプロジェクタドライバ１２８の機能を１つのモジュールにまとめることも可能である。ＶＮＣサーバ１３０内の２つのモジュール１３２，１３４についても同様である。
【００６６】
Ｄ５．変形例５：
上記実施例においては、画像供給装置としてパーソナルコンピュータを用いていたが、この代わりに、他の種類のコンピュータ（モバイルコンピュータ、ハンドヘルドコンピュータ、ワークステーションなど）を用いるようにしても良い。また、これらコンピュータの他に、ネットワークに接続可能であって、コンピュータと同様な機能を有する機器を用いるようにしても良い。そのような機器には、例えば、情報携帯端末や、携帯電話機や、メール端末や、ゲーム機や、セットトップボックスなどが含まれる。また、画像表示装置としては、プロジェクタ以外の種々の表示装置を使用することが可能である。
【００６７】
Ｄ６．変形例６：
ネットワークとしては、ローカルエリアネットワーク（ＬＡＮ）の他、ワイドエリアネットワーク（ＷＡＮ）や、インターネットや、イントラネットなど、各種ネットワークを適用することができる。また、ネットワークは、有線で構成されていても良く、あるいは無線で構成されていても良い。
【００６８】
Ｄ７．変形例７：
上記実施例においてソフトウェアで実現されている機能の一部をハードウェアで実現してもよく、あるいは、ハードウェアで実現されている機能の一部をソフトウェアで実現してもよい。
【図面の簡単な説明】
【００６９】
【図１】本発明の一実施例として画像表示システムの構成を示す説明図である。
【図２】コンピュータとプロジェクタの内部構成を示すブロック図である。
【図３】第１実施例におけるコンピュータのソフトウェアとハードウェアの階層構造を示す説明図である。
【図４】第１実施例における画像転送処理の手順を示すフローチャートである。
【図５】第１実施例における転送対象領域の決定方法を示す説明図である。
【図６】第１実施例における透明ウィンドウの走査の様子を示す説明図である。
【図７】図４のステップＳ１５０の詳細手順を示すフローチャートである。
【図８】画面更新メッセージの構造を示す説明図である。
【図９】第２実施例における画像転送処理の手順を示すフローチャートである。
【図１０】第２実施例における透明ウィンドウの走査の様子を示す説明図である。
【図１１】第３実施例におけるコンピュータのソフトウェアとハードウェアの階層構造を示す説明図である。
【符号の説明】
【００７０】
１０…画像表示システム
７０…投写表示画面
１００…コンピュータ
１０２…ＣＰＵ
１０４…ＲＯＭ
１０６…ＲＡＭ（汎用メモリ）
１０６ａ…変化領域情報
１０６ｂ…画像データ格納領域
１０８…ハードディスクドライブ
１１０…入力部
１１２…ネットワークインタフェース部
１１４…ＶＲＡＭ（フレームメモリ）
１１６…グラフィックコントローラ
１１８…表示デバイス
１２０…バス
１２２…アプリケーションプログラム
１２４…ＧＤＩ
１２６…ディスプレイドライバ
１２８…プロジェクタドライバ
１３０…ＶＮＣサーバ
１３２…透明ウィンドウ発行モジュール
１３４…画像転送モジュール
１４０…フック処理モジュール
２００…プロジェクタ
２０２…ＣＰＵ
２０４…ＲＯＭ
２０６…ＲＡＭ
２１０…入力部
２１２…ネットワークインタフェース部
２１４…画像処理部
２１６…投写部
２１８…バス
２２８…画像処理ドライバ
２３０…ＶＮＣクライアント
３００…ネットワーク
【図１】
2006285901.tif 000003
【図２】
2006285901.tif 000004
【図３】
2006285901.tif 000005
【図４】
2006285901.tif 000006
【図５】
2006285901.tif 000007
【図６】
2006285901.tif 000008
【図７】
2006285901.tif 000009
【図８】
2006285901.tif 000010
【図９】
2006285901.tif 000011
【図１０】
2006285901.tif 000012
【図１１】
2006285901.tif 000013