(57)【特許請求の範囲】
【請求項１】
第１の画像を表示するとともに、所定のグラフィカルユーザインタフェースを表す第２の画像を前記第１の画像に重畳表示する表示手段と、
前記表示手段に表示された前記第１及び第２の画像のうち、前記第１の画像が更新されたことを検出する検出手段と、
前記検出手段により前記第１の画像が更新されたことが検出された場合、前記第２の画像を非表示とし、該第２の画像を非表示としたときの前記表示手段に表示されている前記更新された第１の画像の画像データをバッファに格納し、再び前記第２の画像を表示させる制御手段と、
前記バッファに格納された前記更新された第１の画像の画像データを、ネットワークを介して外部表示装置に転送する転送手段と、
を有することを特徴とする画像転送装置。
【請求項２】
前記検出手段により前記第１の画像が更新された場合、前記第１の画像のうち前記更新がされた更新領域を検出する更新領域検出手段を更に有し、
前記制御手段は、
前記更新領域が前記第２の画像と重複しない場合は、前記更新領域のみの画像データを前記バッファに格納し、
前記更新領域が前記第２の画像と重複する場合は、前記第２の画像を非表示とし、該第２の画像を非表示としたときの前記表示手段に表示されている前記更新領域のみの画像データを前記バッファに格納し、再び前記第２の画像を表示させ、
前記転送手段は、前記バッファに格納された前記更新領域のみの画像データを、前記ネットワークを介して前記外部表示装置に転送する
ことを特徴とする請求項１に記載の画像転送装置。
【請求項３】
前記制御手段は、前記更新領域が前記第２の画像と隣接しているときに前記更新領域が前記第２の画像と重複していると判定することを特徴とする請求項２に記載の画像転送装置。
【請求項４】
前記制御手段は、前記第１の画像が動画であるときは、前記第２の画像を非表示とする処理を適用しないことを特徴とする請求項１乃至３のいずれか１項に記載の画像転送装置。
【請求項５】
前記制御手段は、
前記第１の画像が動画であるとき、及び、前記転送手段が前記外部表示装置への転送処理を開始したときの少なくともいずれかの場合には、前記第２の画像の表示サイズを縮小し、
前記動画の表示が停止されたとき、及び、前記転送手段が前記転送処理を終了したときの少なくともいずれかの場合には、前記第２の画像の表示サイズを元に戻す
ことを特徴とする請求項１乃至４のいずれか１項に記載の画像転送装置。
【請求項６】
前記制御手段は、更に、前記所定のグラフィカルユーザインタフェースにおける所定のボタンが操作されたことに応答して、前記第２の画像を非表示とし、該第２の画像を非表示としたときの前記表示手段に表示されている前記更新された第１の画像の画像データをバッファに格納し、再び前記第２の画像を表示させることを特徴とする請求項１乃至５のいずれか１項に記載の画像転送装置。
【請求項７】
表示手段が、第１の画像を表示部に表示するとともに、所定のグラフィカルユーザインタフェースを表す第２の画像を前記第１の画像に重畳表示する表示ステップと、
検出手段が、前記表示部に表示された前記第１及び第２の画像のうち、前記第１の画像が更新されたことを検出する検出ステップと、
制御手段が、前記検出ステップで前記第１の画像が更新されたことが検出された場合、前記第２の画像を非表示とし、該第２の画像を非表示としたときの前記表示部に表示されている前記更新された第１の画像の画像データをバッファに格納し、再び前記第２の画像を表示させる制御ステップと、
転送手段が、前記バッファに格納された前記更新された第１の画像の画像データを、ネットワークを介して外部表示装置に転送する転送ステップと、
を有することを特徴とする画像転送装置の制御方法。
【請求項８】
コンピュータを請求項１乃至６のいずれか１項に記載の画像転送装置が有する各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータに表示されている画面をネットワークを介して外部の表示装置に転送して該表示装置で表示する技術に関する。
【背景技術】
【０００２】
コンピュータの画像をキャプチャして、ネットワーク上のプロジェクタに該画像を転送して表示する技術が、例えば特許文献１に開示されている。具体的には、特許文献１には、コンピュータが保持する画像をネットワークに接続されたプロジェクタのパネル解像度に合わせてリサイズしてからプロジェクタに転送し、プロジェクタがこれを受信し、投影することが記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−１０６１５３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、特許文献１に開示された技術では、以下のような問題が発生する。例えば、ネットワークを介した投射システムの場合、ＶＧＡ、ＤＶＩといった一般的なケーブルは使用できないため、映像出力をコントロールするためのアプリケーションプログラムが必要となる。例えば、コントロールアプリケーションを用いてコンピュータの画面をネットワーク経由で送信しプロジェクタに投影させる場合、所定のコントロールパネルが画面に重畳表示される。ユーザがそのコントロールパネルの操作することで送信制御が行われる。
【０００５】
一方、ネットワークに送信される画像は、コンピュータの画面をキャプチャしたものである。そうすると、送信される画像にコントロールパネルの画像も含まれ、プロジェクタの投射画面上にもコントロールパネルが表示されることになる。
【０００６】
しかし、コントロールパネルなどのＧＵＩは本来、ユーザ以外の他の人に対して提示したい情報ではなく、投射を制御するために存在するにすぎない。したがって、コントロールパネルが投射画面上に表示されることはユーザが意図するところではないのが通常である。このように、ネットワークを介した表示システムでは、ユーザの意図しない表示がなされてしまう可能性があった。
【０００７】
そこで本発明は、外部の表示装置にユーザが意図しない情報が表示されることを防止する技術を提供する。
【課題を解決するための手段】
【０００８】
本発明の一側面によれば、第１の画像を表示するとともに、所定のグラフィカルユーザインタフェースを表す第２の画像を前記第１の画像に重畳表示する表示手段と、前記表示手段に表示された前記第１及び第２の画像のうち、前記第１の画像が更新されたことを検出する検出手段と、前記検出手段により前記第１の画像が更新されたことが検出された場合、前記第２の画像を非表示とし、該第２の画像を非表示としたときの前記表示手段に表示されている前記更新された第１の画像の画像データをバッファに格納し、再び前記第２の画像を表示させる制御手段と、前記バッファに格納された前記更新された第１の画像の画像データを、ネットワークを介して外部表示装置に転送する転送手段とを有することを特徴とする画像転送装置が提供される。
【発明の効果】
【０００９】
本発明によれば、外部の表示装置にユーザが意図しない情報が表示されることが防止される。
【図面の簡単な説明】
【００１０】
【図１】実施形態における画像表示システムの構成を示す図。
【図２】実施形態におけるコンピュータ１００及びプロジェクタ２００のハードウェア構成を示すブロック図。
【図３】実施形態におけるコントロールアプリケーションによって表示されるＧＵＩの例を示す図。
【図４】実施形態１における表示制御手順１を示すフローチャート。
【図５】実施形態１における、コンピュータ１００の表示画面、キャプチャバッファイメージ、プロジェクタ２００による投影画面の例を示す図。
【図６】実施形態１における更新領域検出方法を説明する図。
【図７】実施形態２における表示制御手順２を示すフローチャート。
【図８】実施形態２における、コンピュータ１００の表示画面、キャプチャバッファイメージ、プロジェクタ２００による投影画面の例を示す図。
【図９】実施形態２における更新領域検出方法を説明する図。
【図１０】実施形態４における、ＧＵＩ３００の非表示設定ボタン３０４が押されたときに表示されるＧＵＩの例を示す図。
【図１１】２つのフレームバッファレイヤを持つ場合の各レイヤのフレームバッファに配置された画面及びそれらの合成画面の例を示す図。
【図１２】実施形態５における表示制御手順１を示すフローチャート。
【発明を実施するための形態】
【００１１】
以下、図面を参照して本発明の実施形態について詳細に説明する。なお、本発明は以下の実施形態に限定されるものではなく、本発明の実施に有利な具体例を示すにすぎない。また、以下の実施形態の中で説明されている特徴の組み合わせの全てが本発明の課題解決のために必須のものであるとは限らない。
【００１２】
＜実施形態１＞
図１は、本発明の実施形態における画像表示システムの構成を示す図である。図１において、画像転送装置であるコンピュータ１００と外部表示装置であるプロジェクタ２００とが、通信ネットワーク１５０を介して接続されている。通信ネットワーク１５０は、例えば、ＩＥＥＥ８０２．３で規定されるイーサネット（登録商標）ケーブル、ＩＥＥＥ８０２．１１系で規定されるワイヤレスネットワーク等を適用できるが、それ以外であってもよい。
【００１３】
図２は、コンピュータ１００及びプロジェクタ２００のハードウェア構成を示すブロック図である。コンピュータ１００は、ＣＰＵ１０８によって全体が制御されるように構成される。ＣＰＵ１０８は、ＲＯＭ１０４に記録されたブートプログラムに従って動作し、ＨＤＤ１０５に記録されているＯＳ（オペレーティングシステム）をＲＡＭ１０３に展開して起動する。その後、ＣＰＵ１０８上で動作するＯＳは、グラフィックアクセラレータ１０７によって、表示部１０１に表示するための画像をＶＲＡＭ１０６に展開する。なお、ＲＡＭ１０３の速度が十分に速ければ、ＲＡＭ１０３がＶＲＡＭ１０６の機能を兼ねるようにしてもよい。ＶＲＡＭ１０６に展開された画像は表示制御部１０２によって表示部１０１、具体的にはモニタ画面に表示される。ユーザからの入力を受け付ける操作部１０９は、例えばキーボードやマウスで実現される。操作部１０９からの入力はＣＰＵ１０８上で動作するＯＳに通知され、ＯＳは通知内容に従って処理を行う。例えば、ＨＤＤ１０５にはＯＳ以外に、プログラムが複数格納されており、そのプログラムを起動するなどである。起動されたプログラムは、ＯＳが表示する画像とは別に個別のウィンドウ画像などを、ＯＳを介して、ＶＲＡＭ１０６に展開し、そのようにしてＶＲＡＭ１０６に展開された画像も同じように表示制御部１０２によって表示部１０１に表示される。通信部１１０は通信ネットワーク１５０を介して外部表示装置であるプロジェクタ２００と通信可能である。本実施形態においては、通信部１１０によって、プロジェクタ２００と通信し、表示部１０１に表示された画像をキャプチャして送信することが可能であるが、詳細は後述する。
【００１４】
一方、プロジェクタ２００は、コンピュータ１００と通信し、コンピュータ１００から送信される画像データを受信するための通信部２０１を持ち、ＣＰＵ２０７によって全体が制御されるように構成される。ＣＰＵ２０７はＲＯＭ２０３に記録されたプログラムに従って起動し、ＲＯＭ２０３に記録されたプログラムがＲＡＭ２０２に展開される。操作部２０６はプロジェクタ２００をユーザが制御するためのリモコンや筺体に付随するボタンを含み、この入力に従って、ＣＰＵ２０７はプロジェクタを制御する。具体的には、ＣＰＵ２０７は通信部２０１で受信しＲＡＭ２０２に格納された画像データをデコーダ２０４によってデコードした画像データをＶＲＡＭ２０５に展開して、画像処理部２０８によって所定の画像処理を行う。その後、投影制御部２０９によってＶＲＡＭ２０５上のデータを投影部２１０に転送し投影する。以上の仕組みによって、画像表示システムによるネットワークを利用した映像投射が実現される。
【００１５】
以下、図４のフローチャートを参照して、本実施形態のコンピュータ１００による表示制御手順を説明する。図４のフローチャートの処理を実行するためのアプリケーションプログラムはＨＤＤ１０５に格納されており、ＲＡＭ１０３に展開されＣＰＵ１０８によって実行される。アプリケーションプログラムの一部又は全部が、ＯＳに含まれる構成であってもよい。このようなアプリケーションプログラムを、以降ではコントロールアプリケーションという。また、コントロールアプリケーションは、図３に示されるような、所定のグラフィカルユーザインタフェースを表す第２の画像としてのＧＵＩ３００を、投影対象の第１の画像に重畳表示させることができる。これによりコントロールアプリケーションは、ＧＵＩ３００を介して、ネットワーク投射機能を制御させるためのユーザの指示を受け付けることが可能である。コントロールアプリケーションのＧＵＩ３００は、ネットワークを介してプロジェクタ２００へ画像転送を行い画像投射を開始させる投射開始ボタン３０１、画像投射を停止させる投射停止ボタン３０２を有する。また、詳細は後述するが、マニュアルキャプチャ送信ボタン３０３、非表示設定ボタン３０４も設けられている。本実施形態におけるコントロールアプリケーションは、説明簡単化のため上記の機能のみを実現しているが、無論、これらの機能に限定するものではない。なお、図４のフロー開始時には、コンピュータ１００とプロジェクタ２００は、すでに通信が確立しており、上記機能がすでに実現できる状態になっているものとする。ここから、コントロールアプリケーションを読み込んだＣＰＵ１０８によって実行される図４の表示制御手順１について説明する。
【００１６】
Ｓ４０１では、操作部１０９からの入力が投射開始ボタン３０１が押されたことを示すものであるかどうかを判別する。投射開始ボタン３０１が押されたことを示す入力が発生するまでは、Ｓ４０１で待機する。Ｓ４０１で投射開始ボタン３０１が押されたことを示す入力が発生したことを検出すると、送信開始が指示されたと判断し、Ｓ４０２に遷移する。
【００１７】
以降のフローについては、図５を併用して説明する。図５（ａ）は、コンピュータ１００の表示部１０１に表示されている画像の状態を時系列で左から順番に表示している。図５（ｂ）は、ＶＲＡＭ１０６からＲＡＭ１０３に転送された送信用画像データの状態を同じく時系列に示している。本明細書において、この送信用画像データをＶＲＡＭ１０６からＲＡＭ１０３に転送することを、「キャプチャ」という。また、この場合、ＲＡＭ１０３には、キャプチャした画像データを一時的に記憶するための領域が確保される。ＲＡＭ１０３におけるこの領域のことを「キャプチャバッファ」という。図５（ｃ）は、送信され、プロジェクタ２００によって投影される画面を同じく時系列に示している。
【００１８】
ここで、図４のフローチャートの説明に戻る。Ｓ４０２では、ＧＵＩ３００を非表示とする。この非表示は、コントロールアプリケーションが前述のＣＰＵ１０８上で動作するＯＳに要求を出し、ＯＳがこれに応答してＶＲＡＭ１０６へのＧＵＩ画像展開を制御することで行われる。このときの、コンピュータ１００の表示部１０１の状態は、図５（ａ）における５０１となる。
【００１９】
Ｓ４０３では、ＶＲＡＭ１０６に格納されている画像データをＲＡＭ１０３に転送するキャプチャ処理を行う。画像データの転送処理は、ＣＰＵ１０８上で動作するコントロールアプリケーションがグラフィックアクセラレータ１０７に転送要求を出すことで実行される。このとき、画像データが転送された後のＲＡＭ１０３の状態は、図５（ｂ）における５０２である。
【００２０】
Ｓ４０４では、Ｓ４０２で非表示としたＧＵＩ３００を再び表示する。このときのコンピュータ１００の表示部１０１の状態は、いったん非表示としたＧＵＩ３００が表示され、図５（ａ）における５０４の状態となる。なおこの状態においてもＲＡＭ１０３の状態は、図５（ｂ）における５０２である。
【００２１】
Ｓ４０５において、ＲＡＭ１０３に保存された画像、すなわち、図５（ｂ）の５０２のデータが通信部１１０によって通信ネットワーク１５０を介して、プロジェクタ２００に送信される。これを受信したときのプロジェクタの投影状態が、図５（ｃ）における５０３である。なお、コントロールアプリケーションのプログラムは、送信の際には画像データを圧縮する制御を行わせるようにしてもよい。
【００２２】
Ｓ４０６では、表示部１０１に表示されている画面の更新があったどうかを検出する。具体的には、一定周期毎に現在のＶＲＡＭ１０６に展開されている画像、すなわち表示部１０１に表示されている画像と、Ｓ４０３においてＲＡＭ１０３に転送保持されている画像とを画素単位で比較する。ここで差がある場合には更新があったと検出する。例えば、具体的には、表示部１０１の画面が図５（ａ）における５０５のように新たに描画オブジェクト５２１、つまり投影の対象となるオブジェクトが表示されたとする。この時点においても、ＲＡＭ１０３の保持された画像は、図５（ｂ）における５０２のままである。
【００２３】
この状態における更新領域検出方法について図６を用いて説明する。Ｓ４０３においてＲＡＭ１０３に保持された画像５０２を比較元とし、現在、表示部１０１に表示されているＶＲＡＭ１０６に展開されている画像５０５を比較対象とする。このとき画像５０２は、ＧＵＩ３００は非表示としているので、ＧＵＩ３００は含まれていない。そこで、ＲＡＭ１０３に保持された画像５０２のうちコントロールアプリケーションのＧＵＩ３００が表示されている位置と同じエリア６０１は比較の対象外とする。同様にＶＲＡＭ１０６の画像５０５のうち、コントロールアプリケーションのＧＵＩ３００が表示されている位置と同じエリア６０２は比較の対象外とする。それぞれの画像から結果として、描画オブジェクト５２１の差分が発生し画面が更新したことを検出する。この処理によってＳ４０６で画面更新を検出すると、Ｓ４０２に遷移し、ＧＵＩを非表示とする（図５（ａ）における５０６）。その後、Ｓ４０３に遷移し、画面をキャプチャし（図５（ｂ）における５０７）、Ｓ４０４に遷移し、再度、ＧＵＩを表示する（図５には未記載）。次に、この時点までのプロジェクタ２００の投影画面は５０３のまま、Ｓ４０５に遷移し、キャプチャ画像を送信し、プロジェクタ２００が受信し表示する。こうして、図５（ｃ）における５０８のようにプロジェクタ２００で投影画像が更新される。
【００２４】
Ｓ４０７では、投射停止ボタン３０２が押されたかどうかを判別する。投射停止ボタン３０２が押された場合には、Ｓ４０１に遷移して、待機状態となる。投射停止ボタン３０２が押されていなければ、Ｓ４０６に戻る。
【００２５】
本実施形態により、コンピュータ１００の表示部１０１に表示されているユーザが外部表示装置に表示されることを望まないコントロールアプリケーションのＧＵＩ３００を非表示としてから画面をキャプチャし送信する。これにより、ネットワーク上のプロジェクタ２００による投影画面上では、ＧＵＩ３００は非表示にすることができる。ＧＵＩ３００は、画面の切り替わりのタイミングで、画面をキャプチャをするわずかの間に非表示とされるだけであるので、表示部１０１を見ているユーザも瞬間的なＧＵＩ３００の点滅は、ほとんど認識されず、表示において視認性を減じることは少ない。
【００２６】
＜実施形態２＞
以下説明する実施形態２のシステム構成は、実施形態１と同様であるが、ＣＰＵ１０８によって実行される処理内容が実施形態１とは異なる。実施形態１においては、画面更新が検出されると全画面データの送信を行っていた。これには次のようなメリットがある。例えば、実施形態１において、画面更新の有無の判別は、フローチャート図４のＳ４０６において実施され、ＲＡＭ１０３に保持されたひとつ前の画像と、ＶＲＡＭ１０６に保持され、現在、表示部１０１に表示されている画像とを比較することで行っていた。このとき、画素単位の比較を行うときに、画面の左上から走査し、差分検出を行うアルゴリズムになっていた場合に、画面の左上の方に差分があった場合には、ただちに画面更新があったと判別でき、画像転送の処理に入ることができる。これにより、コンピュータ１００の表示部１０１とプロジェクタ２００で投影される画面のレイテンシを軽減できるというメリットがある。
【００２７】
一方で、全画面を送信するとデータ量が増えるため、ネットワークの必要帯域が増え、ネットワークの他の機器に影響を与える場合がある。そこで、変化のあった領域（差分領域）のデータのみを送信するという実施形態も考えられる。このような方式を、差分領域転送という。以下、この差分領域転送を用いた表示制御手順２を、図７のフローチャートを用いて説明する。なお、図７のフローチャートに対応するプログラムは、実施形態１と同様、コントロールプログラムに含まれ、ＣＰＵ１０８によって実行される。なお、この場合、ＲＡＭ１０３には、実際に送信する差分領域のデータを一時的に記憶するための領域も確保されることになる。ＲＡＭ１０３におけるこの領域のことを「送信バッファ」という。
【００２８】
まず、Ｓ７０１で、投射開始ボタン３０１が押されたことを示す入力が発生したことを検出すると、送信開始が指示されたと判断し、Ｓ７０２に遷移する。Ｓ７０２では、コントロールアプリケーションがＯＳに要求を出すことによって、ＶＲＡＭ１０６へのＧＵＩ画像展開を制御しＧＵＩ３００を非表示とする。
【００２９】
Ｓ７０３において、ＶＲＡＭ１０６に格納されている画像データをＲＡＭ１０３に転送するキャプチャ処理を行う。画像データの転送は、コントロールアプリケーションに従い動作するＣＰＵ１０８がグラフィックアクセラレータ１０７に要求を出すことによって行う。Ｓ７０４において、コントロールアプリケーションからＯＳに要求を出すことによって、ＶＲＡＭ１０６へのＧＵＩ画像展開を制御しＧＵＩ３００を表示する。
【００３０】
Ｓ７０５において、通信部１１０は、Ｓ７０３においてキャプチャされＲＡＭ１０３に保持された画像を、通信ネットワーク１５０を介して、プロジェクタ２００に送信する。
【００３１】
ここから図８を併用して説明する。ここで、図８（ａ）はＶＲＡＭ１０６の状態、図８（ｂ）はＲＡＭ１０３のキャプチャバッファの状態、図８（ｃ）はＲＡＭ１０３の送信バッファの状態、図８（ｄ）はプロジェクタ２００の投影状態を示している。
【００３２】
Ｓ７０４の処理が完了した後の状態について説明する。表示部１０１に表示されるＶＲＡＭ１０６に格納されている画像は、図８（ａ）における８０１となる。Ｓ７０３においてＲＡＭ１０３に配置されるキャプチャバッファに転送された画像は、図８（ｂ）における８０２となる。通信部１１０によってネットワークに送信するための送信バッファは、すでに送信済みなので未格納の状態であるので図８には未記載である。また、Ｓ７０５で送信された画像がプロジェクタに投影された状態が、図８（ｄ）における８０３である。
【００３３】
次にＳ７０５において、ＣＰＵ１０８は、表示部１０１に表示されている画面の更新があったどうかを検出する。例えば、図８（ａ）において、表示部１０１に表示されている画像が８０１から８０４のように描画オブジェクト８２１が表示されることで変わったとする。このときの画面更新発生の検出は、実施形態１と同様に実現できる。すなわち、ＲＡＭ１０３に格納された画像８０２と、ＶＲＡＭ１０６にこの時点で表示されている画像８０４において、ＧＵＩ３００が表示されている領域以外を比較することにより行う。
【００３４】
Ｓ７０５では、実施形態１と同様に、一定周期毎に処理を実行し、更新が無い場合には、画像送信停止要求があるかどうかをＳ７０６にて確認し、なければＳ７０５で次のタイミングまで待機する。Ｓ７０５において、表示部１０１の画面更新が検出された場合には、Ｓ７０７に遷移し、更新領域の検出を行う。
【００３５】
本実施形態における更新領域検出方法について図９を用いて説明する。図９（ａ）は、ＲＡＭ１０３に保持された画像８０２を格子状に分割した状態を示している。一方、図９（ｂ）は、ＶＲＡＭ１０６に保持された画像８０４を格子状に分割した状態を示している。ＣＰＵ１０８は、この２つの画像において、格子で分割された画像タイルをひとまとまりとして、それぞれの画像において同じ位置に存在する、画像タイル内の画素に差があるかどうかを判断する。なお、図８（ａ）の８０４に表示されるＧＵＩ３００が表示されているエリア、９０１と９０２が含まれる画像タイルは比較の対象外とする。例えば、８０４において、新たな描画オブジェクト８２１が表示されると、コントロールアプリケーションは、この描画オブジェクト８２１が描画されている前記格子状に分割された画像タイル、すなわち図９（ｂ）の８３１で示された領域を更新領域として認識する。
【００３６】
図７のフローチャートに戻る。Ｓ７０８では、Ｓ７０７で検出された更新領域８３１とＧＵＩ３００の表示領域、すなわち、図９（ｂ）の領域９０２の画面上における位置関係を比較する。具体的には、更新領域８３１と領域９０２がそれぞれ描画されている格子状に分割されたタイル画像が隣接しているかどうかをそれぞれの座標によって判断する。図９（ｂ）においては、更新領域８３１と領域９０２は隣接していない。
【００３７】
Ｓ７０９において、Ｓ７０８の結果から、隣接していた場合には、更新領域とＧＵＩ３００の領域とが重複していると判断し、そうでない場合には、重複していないと判断する。従って、図９（ｂ）の場合には、更新領域８３１と領域９０２は重複していないと判定される。
【００３８】
Ｓ７０９において重複していないと判定されると、Ｓ７１４に進む。Ｓ７１４では、グラフィックアクセラレータ１０７によって、更新領域（図９（ｂ）の例においては更新領域８３１）のデータのみがＶＲＡＭ１０６からＲＡＭ１０３のキャプチャバッファに転送される。この時点でのキャプチャバッファの状態は、図８（ｂ）における８０６である。
【００３９】
Ｓ７１５において、グラフィックアクセラレータ１０７によってＲＡＭ１０３のキャプチャバッファに転送された更新領域８３１のデータがＲＡＭ１０３の送信バッファに転送される。このときの送信バッファの状態は、図８（ｃ）の８０７となる。
【００４０】
Ｓ７１６において、通信部１１０は、ＲＡＭ１０３の送信バッファに格納された更新領域８３１のデータを、通信ネットワーク１５０を介して、プロジェクタ２００に送信し、プロジェクタ２００はそれを投影する。このときの投影状態が、図８（ｄ）の８０８となる。
【００４１】
次に、Ｓ７０９において、更新領域がＧＵＩ３００と重複している場合について説明する。表示部１０１に表示されている画像が、図８（ａ）の８０４から８０５に更新されたとする。このとき、描画オブジェクト８２２が新たに表示され、図９（ｃ）に示すように、ＧＵＩ３００の表示領域９０３以外の差分として、画面更新が検出される。さらに、更新領域９０４がＧＵＩ３００の表示領域９０３と隣接しているときは両者は重複していると判断され、Ｓ７１０に遷移する。
【００４２】
ここで、重複しているということは、ＧＵＩ３００の背面においても画像更新が発生していると推測できる。そこで、Ｓ７１０において、前述までと同じように、ＧＵＩ３００を非表示とする。これにより、ＧＵＩ３００の背面にて発生した画面更新を認識できるようになる。
【００４３】
Ｓ７１１において、ＲＡＭ１０３のキャプチャバッファに格納された８０６とＶＲＡＭ１０６の画像８０９から、図９（ｄ）のように描画オブジェクト８２２の更新領域８３２を抽出し、ＲＡＭ１０３のキャプチャバッファに転送する。このときキャプチャバッファの状態は、図８（ｂ）の８１０のようになる。このようにして、ＧＵＩ３００の背面で発生した画面更新を検出して、バッファに送信することが実現される。
【００４４】
Ｓ７１２において、グラフィックアクセラレータ１０７によってＲＡＭ１０３のキャプチャバッファに転送された更新領域８３２がＲＡＭ１０３の送信バッファに転送される。このときの送信バッファの状態は、図８（ｃ）の８１１となる。Ｓ７１３において、コントロールアプリケーションからＯＳに要求を出すことによって、ＶＲＡＭ１０６へのＧＵＩ画像展開を制御しＧＵＩ３００を表示する。その後、Ｓ７１６に遷移し、通信部１１０によってＲＡＭ１０３の送信バッファに格納された更新領域８３２が通信ネットワーク１５０を介して、プロジェクタ２００に送信され、投影される。このときの投影状態が、図８（ｄ）の８１２となる。
【００４５】
実施形態１では、画面切り替わりのタイミングでＧＵＩ３００を非表示としていた。これに対し本実施形態では、ＧＵＩ３００の背面で画面更新が発生したと検出した時にのみ非表示とするので、表示部１０１におけるＧＵＩの視認性が低下することは少ない。
【００４６】
なお、実施形態１及び２において、表示部１０１に秒間３０コマの標準的な動画を表示させる場合には、ＧＵＩ３００の点滅が頻繁に発生し、視認性が低下する可能性がある。
【００４７】
そこで、画面更新の頻度が、動画のように秒間３０コマなど発生する場合には、上述の実施形態の処理は適用しないように制御することが望ましい。例えば、動画であることを検出した場合には、ＧＵＩ３００を非表示あるいは表示状態にしておき、動画が終了し、画面更新の頻度が低くなった場合に再度、実施形態１，２の処理を適用するようにしてもよい。
【００４８】
また、動画であることが検出されたとき、及び、外部表示装置への画像転送が開始されたときの少なくともいずれかの場合、ＧＵＩ３００の表示サイズを縮小してもよい。この場合においては更に、動画が停止された場合、及び、画像転送が終了したときの少なくともいずれかの場合、ＧＵＩ３００の表示サイズを元のサイズに戻すようにしてもよい。
【００４９】
＜実施形態３＞
実施形態２においては、図７のフローチャートのＳ７０８にて図９（ｃ）におけるＧＵＩ３００の領域である９０３と更新領域９０４とが隣接している場合は、Ｓ７０９にてＧＵＩ３００の背面で画面更新が発生したことを判断している。その場合、ＧＵＩ３００を非表示にしてから画面をキャプチャすることで、ＧＵＩ３００の背面のキャプチャを実現している。これは、ＧＵＩ３００の周辺画素が更新された場合はＧＵＩ３００の背面でも更新が発生しているとの推定に基づく。しかし、この方法では、ＧＵＩ３００の背面でのみ画面更新が発生した場合には対処できない。そこで以下では、実施形態３として、このような実施形態２で考えられる問題点の回避策を提示する。
【００５０】
本実施形態の構成は、実施形態１、２で開示した図２に示すものと同様である。図３に示すように、ＧＵＩ３００には、マニュアルキャプチャ送信ボタン３０３が具備されている。このマニュアルキャプチャ送信ボタン３０３が押下されたことに応答して、図７のフローチャートにおけるＳ７１０〜Ｓ７１３が実行され、その後、Ｓ７１６と同様の処理が実行される。
【００５１】
これにより、ユーザがマニュアルキャプチャ送信ボタン３０３を操作することで、強制的にＧＵＩ３００の背面の画像を送信することができる。このような機能は、ＧＵＩ３００の背面で更新が発生していることをユーザが知っている場合に都合がよい。
【００５２】
＜実施形態４＞
上述の実施形態１〜３では、ネットワークを介した画面送信についての制御を行うためのコントロールアプリケーションのＧＵＩ３００が外部のプロジェクタによる画面に表示されないようにする表示制御処理を開示した。しかし、ユーザとしては、コントロールアプリケーションのＧＵＩ３００だけでなく、それ以外のアプリケーションであっても表示したくない状況があると考えられる。
【００５３】
本発明は、実施形態１〜３で記載したコントロールアプリケーション以外の、ＣＰＵ１０８で実行されるプログラムによって生成されるＧＵＩ画面に対しても適用可能である。  図１０は、図３に示されたＧＵＩ３００の非表示設定ボタン３０４が押されたときに表示されるＧＵＩの例を示す図である。コントロールアプリケーションは、ＣＰＵ１０８上で動作するオペレーティングシステムに要求を出し、ＶＲＡＭ１０６上にＧＵＩを表示している他のプログラムのリストを取得する。コントロールアプリケーションは、そのプログラムのリストをＧＵＩ１０００に表示する（１００１）。ユーザは、それぞれのアプリケーションに対して、実施形態１〜３のいずれかに記載した処理を適用するかどうかを、ボタン１００１を押下することで選択する。選択されたアプリケーションに対して、実施形態１〜３のいずれかの処理が実行される。
【００５４】
＜実施形態５＞
上述した実施形態１〜４では、画像データを１つのフレームバッファレイヤに書き込むことによって表示を実現するシステムを想定している。なお、フレームバッファレイヤとは、バックバッファとフロントバッファとを切り替えることでフリッカを抑制するように構成されたバッファの構成である。このようなシステムは、メモリを効率的に利用することができ、バスの転送レートが十分に速ければ実用可能である。
【００５５】
一方で、メモリが潤沢にあるような環境では、複数のフレームバッファレイヤを持ち、それぞれに対して個別に書き込んで最終出力段で合成して出力をするようなシステムも考えられる。図１１は、２つのフレームバッファレイヤを持つシステムの画像表示態様を示している。図１１（ａ）は、レイヤ１のフレームバッファに配置された全体画面を示し、図１１（ｂ）は、レイヤ２のフレームバッファに配置された図３と同様のＧＵＩ３００を示している。これらは、グラフィックアクセラレータによって合成されて、図１１（ｃ）のような状態で表示制御部１０２によって表示部１０１に表示される。
【００５６】
このようなシステムにおいては、ＧＵＩ３００を非表示にしてから画面をキャプチャするような制御は不要であり、ＶＲＡＭ１０６のレイヤ１のフレームバッファに配置されたの画面（図１１（ａ））をキャプチャし送信すればよい。
【００５７】
本発明を適用したプログラムは様々なシステムに適用されうる。従って、状況に応じて制御を変える必要がある。このような状況に対応するための制御を、図１２のフローチャートを用いて説明する。前述の実施形態と同様、図１２のフローチャートの処理を実行するためのアプリケーションプログラムはＨＤＤ１０５に格納されており、ＲＡＭ１０３に展開されＣＰＵ１０８によって実行される。
【００５８】
Ｓ１２０１では、ＧＵＩ３００の投射開始ボタン３０１が押下されたかどうかで送信開始の判断を行う。Ｓ１２０２において、コントロールアプリケーションはＣＰＵ１０８上で動作するオペレーティングシステムに、ＶＲＡＭ１０６が前述のような複数フレームバッファレイヤの構成であるかどうかを問い合わせ、レイヤ制御可能かどうかを判断する。すなわちここでは、ＶＲＡＭ１０６が第１の画像の画像データと第２の画像の画像データをそれぞれ異なるレイヤで保持可能な複数のフレームバッファレイヤを有するか否かを判断する。ここで、ＶＲＡＭ１０６が複数フレームバッファレイヤから構成されるシステムではないと判断された場合は、実施形態１又は２の表示制御処理が適用される。
【００５９】
一方、Ｓ１２０２においてレイヤ制御可能と判断された場合には、Ｓ１２０３に遷移する。Ｓ１２０３において、コントロールアプリケーションは、ＧＵＩ３００を表示しているのとは別のフレームバッファの情報を取得する。Ｓ１２０４において、コントロールアプリケーションは、Ｓ１２０３で取得したフレームバッファの情報が示すＶＲＡＭ１０６の画像、具体的には、図１１における（ａ）の画像データをＲＡＭ１０３のキャプチャバッファに転送する。Ｓ１２０５において、ＲＡＭ１０３のキャプチャバッファに格納された画像を送信する。Ｓ１２０６において、画面更新を検出した場合には、Ｓ１２０３〜Ｓ１２０５の処理を繰り返し、そうでない場合には、Ｓ１２０７で送信停止かどうかを判断する。
【００６０】
以上によれば、本発明を適用したプログラムが、どのようなシステムにて実行された場合でも、好適な処理を行うことができる。
【００６１】
（他の実施形態）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。この場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。
【図１】
0005932475.tif 000002
【図２】
0005932475.tif 000003
【図３】
0005932475.tif 000004
【図４】
0005932475.tif 000005
【図５】
0005932475.tif 000006
【図６】
0005932475.tif 000007
【図７】
0005932475.tif 000008
【図８】
0005932475.tif 000009
【図９】
0005932475.tif 000010
【図１０】
0005932475.tif 000011
【図１１】
0005932475.tif 000012
【図１２】
0005932475.tif 000013