説明

情報処理装置、表示装置、画像伝送システム、制御方法、プログラム及び記憶媒体

【課題】情報処理装置の画面中に画面キャプチャAPIによって取得できない画像が含まれていたとしても、表示装置が表示する画面を情報処理装置の画面と同様にする。
【解決手段】プロジェクタへ画像を送信するPCは、複数のレイヤーから成る画面データに基いて第1の画像を表示する表示部と、複数のレイヤーの内、予め決められた少なくとも1つのレイヤーに描画された第2の画像をキャプチャする画像取得部121と、第1の画像と第2の画像とが異なるかどうかを判定する判定部124と、判定部により異なると判定された場合に、第2の画像を第1の画像と同じ画像にするための付加情報を取得する付加情報取得部125と、第2の画像を表示装置へ送信すると共に、付加情報取得部により付加情報を取得した場合に、該付加情報を表示装置へ送信するデータ送信部126とを有する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、パーソナルコンピュータ(以下、PC)等の情報処理装置による生成画像をプロジェクタ等の表示装置に送信する、画像の伝送システム及び伝送方法に関する。
【背景技術】
【0002】
近年、会議や研修会等でプレゼンテーションを行う際は、PCから受信した画像信号をスクリーンに投射させるプロジェクタを用いることが多い。
【0003】
従来、PCとプロジェクタとはRGBケーブルを用いたアナログ接続によって画像信号の送受信を行っていた。しかしながら、接続に手間がかかる、遠隔地からの接続が困難、複数台のPCと同時に接続したい、といった理由からネットワークを介してPCとプロジェクタを接続する画像転送システムが注目されている。
【0004】
この画像転送システムを実現するために、従来では、PC等の情報処理装置に表示された画面について定期的に画面キャプチャを行い、画面キャプチャによって取得された画像データをプロジェクタ等の表示装置に送信している(特許文献1参照)。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2004−242152号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、画面キャプチャを行う際にオペレーティングシステム(以下、OS)が提供するApplication Programming Interface(以下、API)を用いると、以下のような問題があった。即ち、PCの表示画面には表示されているオブジェクトであっても、画像データとしてキャプチャできないものが存在し、その結果として、プロジェクタにはPCの表示画面とは異なった画像データが送信され、PCと同様の画面を投射できなかった。
【0007】
なお、上記オペレーティングシステムがマイクロソフト社によって提供されるWindows(登録商標)であるとすると、キャプチャを行うAPIは関数BitBltである。関数BitBltを用いたPC画面のキャプチャは、通常、単一のレイヤーの画像しか取得できず、上記の問題が発生する。ただし、関数BitBltのオプションによっては、別レイヤーの画像も含めてキャプチャできるが、この場合はPC画面上のポインタが点滅するという別の問題が発生する。
【0008】
本発明は、情報処理装置の画面中に、画面キャプチャAPIによって取得ができないオブジェクトの画像が含まれていたとしても、表示装置が表示する画面を情報処理装置の画面と同様のものにすることのできる技術を提供することを目的とする。
【課題を解決するための手段】
【0009】
上記目的を達成するために、本発明に係る情報処理装置は、表示装置へ画像を送信する情報処理装置であって、複数のレイヤーから成る画面データに基いて第1の画像を表示する表示手段と、前記複数のレイヤーの内、予め決められた少なくとも1つのレイヤーに描画された第2の画像をキャプチャする画像取得手段と、前記第1の画像と前記第2の画像とが異なるかどうかを判定する判定手段と、前記判定手段により異なると判定された場合に、前記第2の画像を前記第1の画像と同じ画像にするための付加情報を取得する付加情報取得手段と、前記第2の画像を前記表示装置へ送信すると共に、前記付加情報取得手段により前記付加情報を取得した場合に、該付加情報を前記表示装置へ送信する送信手段とを有する。
【発明の効果】
【0010】
本発明によれば、情報処理装置の画面中に画面キャプチャAPIによって取得できない画像が含まれていたとしても、表示装置が表示する画面を情報処理装置の画面と同様にすることができる。
【図面の簡単な説明】
【0011】
【図1】本発明の実施形態1に係る情報処理装置を用いた画像伝送システムの一例を示す図。
【図2】本発明の実施形態1〜3のいずれかによって解決可能な状況の一例を説明するための図。
【図3】本発明の実施形態1〜3のいずれかによって解決可能な別の状況を説明するための図。
【図4】本発明の実施形態1〜3のいずれかによって解決可能な更に別の状況を説明するための図。
【図5】本発明の実施形態1におけるPC及びプロジェクタの構成を示すブロック図。
【図6】実施形態1におけるプログラムのモジュール構成図。
【図7】実施形態1におけるPC画面データ送信プログラムの内、キャプチャ画像送信プログラムの処理を説明するためのフローチャート。
【図8】実施形態1におけるPC画面データ送信プログラムの内、ポインタ情報・付加情報送信プログラムの処理を説明するためのフローチャート。
【図9】実施形態1における判定処理を説明するためのフローチャート。
【図10】実施形態1におけるPC画面データ送信プログラムの内、PC画面データ送信プログラムの処理を説明するためのフローチャート。
【図11】実施形態1におけるPC画面データ受信プログラムの内、ポインタ情報・付加情報受信プログラムの処理を説明するためのフローチャート。
【図12】実施形態2におけるプログラムのモジュール構成図。
【図13】実施形態2におけるPC画面データ送信プログラムの内、キャプチャ画像送信プログラムの処理を説明するためのフローチャート。
【図14】実施形態2における判定変更処理を説明するためのフローチャート。
【図15】実施形態2におけるPC画面データ送信プログラムの内、ポインタ情報送信プログラムの処理を説明するためのフローチャート。
【発明を実施するための形態】
【0012】
以下、図面を参照し、本発明の実施形態を説明する。
【0013】
<実施形態1>
図1は、本発明の実施形態1に係る情報処理装置を用いた画像伝送システムの一例を示す図である。実施形態1の画像伝送システム10は、情報処理装置の一例としてPC100と、表示装置の一例としてプロジェクタ200とを備えており、PC100とプロジェクタ200とは無線LAN300を通して通信ネットワークを形成している。各部の役割を簡単に説明すると、PC100は、ディスプレイに表示されている画像信号を、通信ネットワークを介してプロジェクタ200に送信する。プロジェクタ200は、PC100から送られた画像信号を受信して、出力できる形への変換を行い表示する。また、このとき、マウス100aによってPC100におけるウィンドウシステム上のポインタが操作されるが、ポインタ表示位置は、画像データとは別にプロジェクタ200に送信する。このようにする理由は、ポインタ位置情報だけの少ないデータ量で通信を行うことで、プロジェクタ200におけるポインタ画像の表示応答速度を向上させ、ユーザがプロジェクタ投影面を見たときに、自然なポインタの動きを表現するためである。なお、ここでいうウィンドウシステムとはWindows等のOSによって実現される、Graphical User Interface(GUI)のことで、複数のタスクに固有の領域を割当てて、画面出力を多重化する仕組みのことである。
【0014】
次に、図2から図4を用いて、PC100の表示画面と画面キャプチャAPIを用いて取得された画面データが異なる状況について説明する。本発明の実施形態1〜3は、これらの状況のいずれかを解決できるように構成されている。なお、実施形態1においては、PC100のOSとして、マイクロソフト社によって提供されるWindows2000(登録商標)を用いている場合を想定して説明するが、本発明はこれに限定されるものではない。
【0015】
図2は、ポインタを操作してウィンドウをドラッグしている状況を示している。図2(a)の左図は、PC100の表示画面150(第1の画像)を示している。図2(b)の左図は、WindowsAPIの画面キャプチャを行う関数BitBltを用いて取得した画面データ130(第2の画像)を示している。図2(b)の右図は、WindowsAPIのカーソルポインタ情報取得関数GetCursorInfo及び、カーソル画像取得関数GetIconInfoを用いて取得したポインタ画像140とポインタ位置を示している。また、図2(a)の右図は、上記のようにして取得した画面データとポインタ情報をプロジェクタ200で受信後に投射した投射画像250を表している。
【0016】
ここで、PC表示画面150と取得画面データ130を比べるとわかるように、取得画面データ130にはドラッグ中のウィンドウを示す枠画像がキャプチャされていない。これはキャプチャ関数BitBltによって取得できる画像のレイヤーとは別レイヤーに枠画像が描画されているためである。そのため投射画像250には取得画面データ130とポインタ画像140とを重畳させた画像のみで構成されることなり、ユーザの視認性を損なうこととなる。
【0017】
このようにドラッグ中のウィンドウが枠線で表現され、さらにそれがキャプチャできない状況となるのは、Windowsのデスクトップ画面のプロパティにおいて「ドラッグ中にウィンドウの内容を表示する」オプションが「無効」になっていた場合である。
【0018】
なお、キャプチャ関数BitBltのオプションによっては別レイヤーの画像も取得することが可能であるが、その場合にはPC表示画面150中のカーソルが点滅するため、これもユーザの操作感を損なってしまう。以下、実施形態1ではキャプチャ関数BitBltは別レイヤーの画像を取得しないモードで用いるものとして説明する。
【0019】
図3は、ポインタを操作してアイコンをドラッグしている状況を示している。図3(a)の左図は、PC100の表示画面152(第1の画像)を示している。図3(b)の左図は、WindowsAPIの画面キャプチャを行う関数BitBltを用いて取得した画面データ132(第2の画像)を示している。図3(b)の右図は、WindowsAPIのカーソルポインタ情報取得関数GetCursorInfo及び、カーソル画像取得関数GetIconInfoを用いて取得したポインタ画像142とポインタ位置を示している。また、図3(a)の右図は、上記のようにして取得した画面データとポインタ情報をプロジェクタ200で受信後に投射した投射画像252を表している。
【0020】
ここで、PC表示画面152と取得画面データ132を比べるとわかるように、取得画面データ132にはドラッグ中のアイコンを示す画像がキャプチャされていない。これはキャプチャ関数BitBltによって取得できる画像のレイヤーとは別レイヤーにドラッグ中のアイコン画像が描画されているためである。そのため投射画像252には取得画面データ132とポインタ画像142とを重畳させた画像のみで構成されることなり、ユーザの視認性を損なうこととなる。
【0021】
このようにドラッグ中のアイコン画像がキャプチャできない状況となるのは、Windowsのデスクトップ画面のプロパティにおいて「ドラッグ中にウィンドウの内容を表示する」オプションが「有効」になっていた場合である。
【0022】
図4は、図3と同様にポインタを操作してアイコンをドラッグしている状況を示している。図4(a)の左図は、PC100の表示画面154(第1の画像)を示している。図4(b)の左図は、WindowsAPIの画面キャプチャを行う関数BitBltを用いて取得した画面データ134(第2の画像)を示している。図4(b)の右図は、WindowsAPIのカーソルポインタ情報取得関数GetCursorInfo及び、カーソル画像取得関数GetIconInfoを用いて取得したポインタ画像174とポインタ位置を示している。また、図4(a)の右図は、上記のようにして取得した画面データとポインタ情報をプロジェクタ200で受信後に投射した投射画像254を表している。
【0023】
ここで、PC表示画面154と取得画面データ134を比べるとわかるように、取得画面データ134にはポインタ画像も重畳されてキャプチャされている。
【0024】
これはキャプチャ関数BitBltによって取得できる画像のレイヤーと同じレイヤーにドラッグ中のポインタ画像が描画されているためである。そのため投射画像254には取得画面データ134とポインタ画像144とを重畳させた画像で構成されることなり、ポインタ画像が重複して二重に描画されることとなり、結果としてユーザの視認性を損なうこととなる。
【0025】
このようにドラッグ中のポインタ画像がキャプチャされてしまう状況となるのは、Windowsのデスクトップ画面のプロパティにおいて「ドラッグ中にウィンドウの内容を表示する」オプションが「無効」になっていた場合である。
【0026】
図5は、図1のPC100とプロジェクタ200とを備えた画像伝送システム10の実施形態1における内部構成を示した図である。
【0027】
PC100は、CPU101と、CPU101の処理手順を記述した制御プログラムを格納するためのROM102と、ワークメモリとしてのRAM103と、ハードディスクドライブ104とを備える。更に、PC100は、LAN等を経由してプロジェクタ200やサーバ等と通信するためのインタフェースであるネットワークIF105と、キーボードやポインティングデバイス(マウス等)からのユーザ入力を処理するユーザIF106とを備える。また、PC100は、PC100の表示する画像が記憶されているVRAM107と、画像処理部108と、表示制御部109と、液晶ディスプレイ等の表示部110とを備える。そして、上述した各要素を接続する内部バス111を備えている。
【0028】
プロジェクタ200は、CPU201と、CPU201の処理手順を記述した制御プログラムを格納するためのROM202と、ワークメモリとしてのRAM203とを備える。更に、プロジェクタ200は、PC100との接続用インタフェースであるネットワークIF204と、各種の操作ボタンや操作リモコン等からのユーザ入力を処理するユーザIF205とを備える。また、プロジェクタ200は、画像を出力するための投射画像制御部206と、入力画像を投射する液晶パネル及びその駆動ドライバ、レンズ及びその駆動系及び光源で構成される投射部207とを備える。そして、上述した各要素を接続する内部バス208を備えている。
【0029】
図6は、実施形態1におけるPC100のCPU101とプロジェクタ200のCPU201上で動作するプログラムのモジュール構成図である。PC100のCPU101上で動作するPC画面データ送信プログラム120は、VRAM107に記憶されている画面データをキャプチャする画像取得部121と、キャプチャした画面データを圧縮する画像圧縮部122とを備える。更に、PC画面データ送信プログラム120は、マウス等の入力デバイスによって操作されるポインタの画像及び、位置を取得するポインタ情報取得部123と、キャプチャした画面データが正しいものかどうかを判定する判定部124とを備える。また、PC画面データ送信プログラム120は、判定部124が、キャプチャした画面データとPC100が表示している画面データとが異なっていると判断した場合に、付加する情報を取得する付加情報取得部125とを備える。そして、これらの各情報をプロジェクタ200に送信するための処理を行うデータ送信部126を備えている。
【0030】
一方、プロジェクタ200のCPU201上で動作するPC画面データ受信プログラム220は、PC画面データ送信プログラム120から送信された各情報を受信するデータ受信部221と、受信した画面データを展開する画像展開部222とを有する。更に、PC画面データ受信プログラム220は、画面データとポインタを重畳させてプロジェクタが投射する投射画像を生成し、さらに受信した付加情報によって投射画像に変更を加える画像制御部223とを備える。
【0031】
次に、上記のように構成された画像伝送システム10における画像伝送方法について、フローチャートを参照して説明する。
【0032】
図7及び図8は、図6に示したPC画面データ送信プログラム120により行われる処理を説明するためのフローチャートである。図7は、PC画面データ送信プログラム120の内、画像取得部121と、画像圧縮部122と、データ送信部126とで実現されるキャプチャ画像送信プログラムの処理を示しており、PC100の出力画面をキャプチャして送信する。これはPC100のCPU101の1プロセス上で動作する。また、図8は、ポインタ情報取得部123と、判定部124と、付加情報取得部125と、データ送信部126とで実現されるポインタ情報・付加情報送信プログラムの処理を示しており、ポインタ情報及び付加情報を取得して送信する。この処理も図7に示した処理と同様にPC100のCPU101の1プロセス上で動作する。つまり、図7と図8に示した処理はそれぞれ並列に動作する。
【0033】
図7において、画像伝送システム10が起動すると、まず、画像取得部121がPC100の出力画像(第2の画像)をキャプチャする(S11)。この処理はPC100のOSがアプリケーションソフトに対して標準で提供している機能の集合であるAPIを用いることで実現できる。なお、ここでキャプチャされる出力画像は、必ずしも全てのレイヤーの画像ではなく、例えば、上述した「ドラッグ中にウィンドウの内容を表示する」オプションの設定内容などに応じて、APIにより決まるレイヤーの画像のことである。
【0034】
次に、S11でキャプチャした画面データに対して、画像圧縮部122が画像圧縮処理を行う(S12)。ここで行う圧縮処理は、例えばランレングス圧縮、JPEG圧縮、Zlib圧縮等が考えられるが、その他の圧縮方法も適用可能である。以上の処理によって得られた圧縮された画面データをデータ送信部126がプロジェクタ200に対して送信する(S13)。最後に、画面伝送処理の終了判定を行い、終了要求がユーザ入力等からあれば処理を終了する(S14でYES)。終了要求が無ければS11から処理を繰り返す(S14でNO)。
【0035】
次に、図8を参照してポインタ情報・付加情報送信プログラムの処理について説明する。図8において、画像伝送システム10が起動すると、まず、ポインタ情報取得部123がポインタ情報を取得する(S15)。この処理は、APIを用いて、ポインタの位置情報とポインタの画像データを取得することで実現可能である。
【0036】
続いて、現在の画像伝送システム10の状態が、図2から図4に示したような、PC100の表示画面と画面キャプチャAPIを用いて取得された画面データとが異なる状況かどうかの判定を判定部124によって行う(S16)。ここで行われる判定処理の内容を詳細に記述したものが図9である。
【0037】
判定処理が開始されると、判定部124はウィンドウのドラッグ中であるかを判定する(S100)。ウィンドウのドラッグ中であり(S100でYES)、かつWindowsのデスクトップの表示プロパティにおいて、「ドラッグ中にウィンドウの内容を表示する」オプションが「無効」であれば(S101でNO)、これは図2に示した状況と一致する。つまり付加情報としてドラッグ中のウィンドウ情報があれば、プロジェクタ200の投影面をPC100の表示画面と同様の状態にできるので、S102において、付加情報取得部125がドラッグ中のウィンドウ情報を付加情報として取得する。ここでウィンドウ情報とはドラッグ中のウィンドウの大きさ、位置、線種のすべて、またはいずれかによって構成される情報である。ウィンドウの大きさ、及び位置はAPIによって取得可能であり、線種についてはOS標準の線種を予め取得しておくことで対応可能である。この場合は、以上で判定処理を終了する。
【0038】
また、「ドラッグ中にウィンドウの内容を表示する」オプションが「有効」であれば、(S101でYES)付加情報の必要はなく、そこで判定処理を終了する。
【0039】
ウィンドウのドラッグ中ではなく(S100でNO)、アイコンのドラッグ中であれば(S103でYES)、次に「ドラッグ中にウィンドウの内容を表示する」オプションが「有効」であるかを判定する(S104)。「有効」であれば(S104でYES)、これは図3に示した状況と一致する。つまり付加情報としてドラッグ中のアイコン情報があれば、プロジェクタ200の投影面をPC100の表示画面と同様の状態にできるので、S105において、付加情報取得部125がドラッグ中のアイコン情報を付加情報として取得する。ここでアイコン情報とは、ドラッグ中のアイコンの位置、画像のすべて、またはいずれかによって構成される情報である。アイコン画像、及び位置はAPIによって取得可能である。この場合は、以上で処理を終了する。
【0040】
また、「ドラッグ中にウィンドウの内容を表示する」オプションが「無効」であれば(S104のNO)、これは図4に示した状況と一致する。つまり、ポインタ画像の描画中止命令を付加情報とする(S106)ことで、プロジェクタ200側でポインタ画像が二重に描画されることを防ぐことができる。以上で処理を終了する。また、ここでは付加情報としてポインタ画像の中止命令をプロジェクタ200に送信することで、ポインタ画像の二重の描画を停止させているが、ポインタ画像の取得及び送信を停止することでもこの処理は可能である。
【0041】
ウィンドウのドラッグ中でなく(S100でNO)、かつ、アイコンのドラッグ中でも無ければ(S103でNO)、判定処理による付加情報の取得は必要ないので、判定処理を終了する。以上のように図9の処理が終了すると、図8のS17に進む。
【0042】
S17では、S15で取得したポインタ情報及び、S16で取得していれば、付加情報をデータ送信部126がプロジェクタ200に対して送信する(S17)。最後に、画面伝送処理の終了判定を行い、終了要求がユーザ入力等からあれば処理を終了する(S18でYES)。終了要求が無ければS15から処理を繰り返す(S18でNO)。
【0043】
図10及び図11は、図6に示したPC画面データ受信プログラム220により行われる処理を説明するためのフローチャートである。図10はPC画面データ受信プログラム220の内、データ受信部221と、画像展開部222と、画像制御部223とで実現されるPC画面データ受信プログラムの処理を示しており、PC100から送信された画面データを受信して表示する。これはプロジェクタ200のCPU201の1プロセス上で動作する。また、図11は、データ受信部221と、画像制御部223とで実現されるポインタ情報・付加情報受信プログラムを示しており、PC100から送信されたポインタ情報を受信して描画したり、付加情報を受信して、それに応じて画像データを修正する。これも図10に示した処理と同様にプロジェクタ200のCPU201の1プロセス上で動作する。つまり、図10と図11に示した処理はそれぞれ並列に動作する。
【0044】
図10において、画像伝送システム10が起動し、図7に示した処理フローによって、PC100から圧縮された画面データが送信されてくると、データ受信部221がこれを受信する(S21)。次に、このデータを画像展開部222が展開する(S22)。ここで行う展開処理は、図7の圧縮処理(S12)に対応したものであり、事前にPC100とプロジェクタ200間でどのような圧縮方法をとるかは設定されている。そして、画像制御部223が展開された画面データの描画処理を行う(S23)。最後に、画面伝送処理の終了判定を行い、終了要求がユーザ入力等からあれば処理を終了する(S24でYES)。終了要求が無ければS21から処理を繰り返す(S24でNO)。
【0045】
次に、図11を参照してポインタ情報・付加情報受信プログラムの処理について説明する。図8に示した処理フローによって、PC100からポインタ情報と、場合によって付加情報が送信されてくると、データ受信部221がデータ受信を行う(S25)。そして、付加情報としてドラッグ中のウィンドウ情報を受信すると(S26でYES)、画像制御部223がウィンドウのドラッグ中を示す画像の描画処理を行う(S27)。ここで、ウィンドウのドラッグ中を示す画像とは、例えば、ドラッグ中のウィンドウサイズの枠画像を、付加情報によって得られたウィンドウ位置に描画したものである。
【0046】
一方、ドラッグ中のウィンドウ情報の受信はなく(S26でNO)、ドラッグ中のアイコン情報を受信すると(S28でYES)、画像制御部223がアイコンのドラッグ中を示す画像の描画処理を行う(S29)。ここでアイコンのドラッグ中を示す画像とは、例えば、ドラッグ中のアイコン画像を、付加情報によって得られたアイコン位置に描画したものである。
【0047】
S27、S29の処理の後、画像制御部223は受信したポインタ情報に従ってポインタ画像の描画処理を行う(S30)。
【0048】
また、付加情報としてドラッグ中のアイコン情報ではなく(S28でNO)、ポインタ画像の描画中止命令を受信すると(S31でYES)、S30のポインタ画像描画処理は行わない。なお、ここではPC100からポインタ情報が送信されているものとしているが、ポインタ画像の中止命令ではなく、ポインタ画像の送信自体をPC100側で停止させる構成も可能である。その場合、プロジェクタ200では、ポインタ画像の受信がなくなれば、以前に表示していたポインタ画像の消去を行い、ポインタ画像の描画を停止させる。
【0049】
また、付加情報の受信が無ければ(S31でNO)、PC100の表示画面と、キャプチャ画面データに違いがないということなので、ポインタ画像の描画のみを行う(S30)。
【0050】
最後に、画面伝送処理の終了判定を行い、終了要求がユーザ入力等からあれば処理を終了する(S32でYES)。終了要求が無ければS25から処理を繰り返す(S32でNO)。
【0051】
図10に示した画面データの受信描画処理と、図11に示したポインタ情報及び付加情報の受信描画処理とをプロジェクタ200のCPU201上で別々のプロセスで並列的に行うのは、次の理由による。即ち、画面データの受信、展開、描画処理はデータサイズが大きいだけ処理に時間がかかる一方、ポインタ情報の受信、描画処理は、データサイズが小さく、比較的短時間の処理で行うことができる。従って、並列的にこれらを処理することで、少なくともポインタの動作だけはPC100上で表現されているのと同程度の更新間隔で表示可能であり、ユーザの操作感を向上させることができるからである。
【0052】
このように、実施形態1によれば、PC100の画面中に画面キャプチャAPIによって取得できない画像が含まれていたとしても、プロジェクタ200が表示する画面をPC100の画面と同様にすることができる。
【0053】
<実施形態2>
上述した実施形態1では、PC100の表示画面とキャプチャ画面データとが異なる場合に、プロジェクタ200で受信した付加情報を基に画面データに変更を加えて、PC100の表示画面とキャプチャ画面データの違いを修正した。実施形態2では、PC100側でキャプチャ画像に変更を加えることで、プロジェクタ側での変更を行うことなく、プロジェクタ投影面に表示する画面データを修正する手法について説明する。なお、実施形態2における画像伝送システム10の構成は図5に記載したものと同様であるので、ここでは説明を省略する。
【0054】
図12は、実施形態2におけるPC100のCPU101上で動作するプログラムのモジュール構成図である。PC100のCPU101上で動作するPC画面データ送信プログラム160は、VRAM107に記憶されている画面データをキャプチャする画像取得部161と、キャプチャした画面データを圧縮する画像圧縮部162とを備える。更に、PC画面データ送信プログラム160は、マウス等の入力デバイスによって操作されるポインタの画像及び、位置を取得するポインタ情報取得部163と、キャプチャした画面データが正しいものかどうかを判定する判定部164とを備える。また、PC画面データ送信プログラム160は、判定部164が、キャプチャした画面データとPC100が表示している画面データとが異なっていると判断した場合に、キャプチャした画面データに変更を加える画像変更部165とを備える。そして、画面データとポインタ情報とをプロジェクタ200に送信するためのデータ送信部126を備えている。
【0055】
次に、上記のように構成されたPC画面データ送信プログラム160による画像取得、変更、伝送方法について、図13〜図15のフローチャートを参照して説明する。図13は、PC画面データ送信プログラム160の内、画像取得部161と、画像圧縮部162と、判定部164と、画像変更部165と、データ送信部166とで実現されるキャプチャ画像送信プログラムの処理を示している。この処理では、PC画面データをキャプチャして、そのときの状況に応じて修正後、送信し、PC100のCPU101の1プロセス上で動作する。図14は、図13のS32の処理を説明するためのフローチャートである。また、図15は、ポインタ情報取得部163と、データ送信部166とで実現されるポインタ情報送信プログラムの処理を示しており、ポインタ情報を取得して送信する。この処理も図13に示した処理と同様にPC100のCPU101の1プロセス上で動作する。つまり、図13と図15に示した処理はそれぞれ並列に動作する。
【0056】
図13において、画像伝送システム10が起動すると、まず、画像取得部161がPC100の出力画像(第2の画像)をキャプチャする(S41)。なお、ここでキャプチャされる出力画像は、必ずしも全てのレイヤーの画像ではなく、例えば、上述した「ドラッグ中にウィンドウの内容を表示する」オプションの設定内容などに応じて、APIにより決まるレイヤーの画像のことである。次に、判定部164と画像変更部165によって画像データの判定処理と判定結果に従った画像データの変更処理を行う(S42)。この処理の詳細を図14に示す。
【0057】
図14において、判定部164はPC100上でウィンドウのドラッグ中であるかどうかの判定を行う(S150)。ウィンドウのドラッグ中であれば(S150でYES)、「ドラッグ中にウィンドウの内容を表示する」オプションが「有効」であるかを判定する(S151)。これが「無効」であれば(S151でNO)、これは図2に示した状況と一致する。よってキャプチャした画面データにドラッグ中のウィンドウを表す画像を追加すれば、プロジェクタ200の投影面をPC100の表示画面と同様の状態にできる。従ってS152では、画像変更部165が、ドラッグ中のウィンドウを表す画像をキャプチャした画像データに追加する。ここでドラッグ中のウィンドウを表す画像とは、例えばドラッグ中のウィンドウの大きさ、位置の情報から構成されるウィンドウの枠画像であり、ウィンドウの大きさ、位置はWindowsのAPIを用いることで取得可能である。ドラッグ中のウィンドウを表す画像をキャプチャした画像データに追加し終えると(第3の画像)、判定変更処理を終了する。
【0058】
一方、「ドラッグ中のウィンドウの内容を表示する」オプションが「有効」であれば(S151でYES)、画像の変更は必要ないため、そのまま判定変更処理を終了する。
【0059】
また、ウィンドウのドラッグ中ではなく(S150でNO)、アイコンのドラッグ中であれば(153でYES)、「ドラッグ中にウィンドウの内容を表示する」オプションが「有効」かどうかを判定する(S154)。「有効」であれば(S154でYES)、これは図3に示した状況と一致する。よってキャプチャした画面データにドラッグ中のアイコンを表す画像を追加すれば、プロジェクタ200の投影面をPC100の表示画面と同様の状態にできる。従ってS155では、画像変更部165が、ドラッグ中のアイコンを表す画像をキャプチャした画像データに追加する。ここでドラッグ中のアイコンを表す画像とは、例えばドラッグ中のアイコン画像、位置の情報から構成されるものであり、アイコン画像、位置はWindows APIを用いることでウィンドウ情報と同様に取得可能である。ドラッグ中のアイコンを表す画像をキャプチャした画像データに追加し終えると(第3の画像)、判定変更処理を終了する。
【0060】
一方、「ドラッグ中にウィンドウの内容を表示する」オプションが「無効」であれば(S154でNO)、これは図4に示した状況と一致する。つまり、キャプチャした画像データにポインタ画像が含まれているので、別プロセスで行われているポインタ画像の送信を止めなくてはならない。そこで、ポインタ画像の送信中止をデータ送信部に対して指示して(S156)、判定変更処理を終了する。
【0061】
また、ウィンドウのドラッグ中でも(S150でNO)、アイコンのドラッグ中でも無ければ(S153でNO)、キャプチャした画像の変更処理は必要無いので、判定変更処理を終了する。以上のように図14の処理が終了すると、図13のステップS43に進む。
【0062】
S43では、このようにして得られた、キャプチャしたS42の判定変更処理を経た画像データを画像圧縮部162が圧縮する。そして圧縮された画像データを、データ送信部166が、プロジェクタ200に対して送信する(S44)。最後に、画面伝送処理の終了判定を行い、終了要求がユーザ入力等からあれば処理を終了する(S45でYES)。終了要求が無ければS41から処理を繰り返す(S45でNO)。
【0063】
次に、図15を参照してポインタ情報送信プログラムの処理について説明する。図15において、画像伝送システム10が起動すると、まず、ポインタ情報取得部163がポインタ情報を取得する(S46)。この処理は、APIを用いて、ポインタの位置情報とポインタの画像データを取得することで実現可能である。
【0064】
データ送信部166はポインタ情報の送信を行うかどうかの判定処理を行う(S47)。これは、図14のS156に示したように、キャプチャ画像データにポインタ画像が含まれていた場合のための処理であり、ポインタ情報の送信中止の指示があれば(S47でYES)、S46の処理に戻る。一方、ポインタ情報の送信中止の指示が無ければ(S47でNO)、ポインタ情報をプロジェクタ200に対して送信する(S48)。
【0065】
最後に、画面伝送処理の終了判定を行い、終了要求がユーザ入力等からあれば処理を終了する(S49でYES)。終了要求が無ければS41から処理を繰り返す(S49でNO)。
【0066】
このように、実施形態2によれば、PC100の画面中に画面キャプチャAPIによって取得できない画像が含まれていたとしても、プロジェクタ200が表示する画面をPC100の画面と同様にすることができる。また、上述した実施形態1と比較して、プロジェクタ200で特別な処理を必要としないので、従来のプロジェクタと組み合わせて用いることができる。
【0067】
なお、上述した実施形態1及び2では、PCのOSとしてWindowsを採用しているものについて説明した。しかしながら、その他のOSであっても、PCの表示画面とキャプチャした画面データに相違があるものであれば、どのようなものであっても適用することができる。
【0068】
また、実施形態1及び2では情報処理装置の一例としてPC100を、表示装置の一例としてプロジェクタ200を用いた場合にについて説明したが、本発明はこれに限られるものではない。表示画面をキャプチャ可能な情報処理装置と、情報処理装置から送信されるデータを表示可能な表示装置であれば、本発明を適用することが可能である。
【0069】
<実施形態3>
実施形態1及び2で説明した様々な機能及び処理は、パーソナルコンピュータ、マイクロコンピュータ、CPU(Central Processing Unit)などがコンピュータプログラムなどのソフトウェアを用いて実現することもできる。以下、実施形態3では、パーソナルコンピュータ、マイクロコンピュータ、CPUなどを「コンピュータ」と呼ぶ。また、実施形態3では、コンピュータプログラムなどのソフトウェアであって、実施形態1及び2で説明した様々な機能及び処理を実現するためのソフトウェアを「所定のソフトウェア」と呼ぶ。
【0070】
実施形態1及び2で説明した様々な機能及び処理は、コンピュータが所定のソフトウェアを実行することによって実現される。この場合において、所定のソフトウェアは、コンピュータ読み取り可能な記録媒体を介してコンピュータに供給される。実施形態3におけるコンピュータ読み取り可能な記録媒体は、ハードディスク装置、光ディスク、CD−ROM、CD−R、メモリカード、ROM、RAMなどを含む。また、実施形態3におけるコンピュータ読み取り可能な記録媒体は、non-transitory(非一時的)な記録媒体である。

【特許請求の範囲】
【請求項1】
表示装置へ画像を送信する情報処理装置であって、
複数のレイヤーから成る画面データに基いて第1の画像を表示する表示手段と、
前記複数のレイヤーの内、予め決められた少なくとも1つのレイヤーに描画された第2の画像をキャプチャする画像取得手段と、
前記第1の画像と前記第2の画像とが異なるかどうかを判定する判定手段と、
前記判定手段により異なると判定された場合に、前記第2の画像を前記第1の画像と同じ画像にするための付加情報を取得する付加情報取得手段と、
前記第2の画像を前記表示装置へ送信すると共に、前記付加情報取得手段により前記付加情報を取得した場合に、該付加情報を前記表示装置へ送信する送信手段と
を有する情報処理装置。
【請求項2】
表示装置へ画像を送信する情報処理装置であって、
複数のレイヤーから成る画面データに基いて第1の画像を表示する表示手段と、
前記複数のレイヤーの内、予め決められた少なくとも1つのレイヤーに描画された第2の画像をキャプチャする画像取得手段と、
前記第1の画像と前記第2の画像とが異なるかどうかを判定する判定手段と、
前記判定手段により異なると判定された場合に、前記第2の画像を前記第1の画像と同じ画像にするための付加情報を取得する付加情報取得手段と、
前記付加情報取得手段により前記付加情報を取得した場合に、前記付加情報を用いて前記第2の画像を変更して、第3の画像を生成する画像変更手段と、
前記付加情報取得手段により前記付加情報を取得していない場合に、前記第2の画像を前記表示装置へ送信し、前記付加情報取得手段により前記付加情報を取得した場合に、前記第3の画像を前記表示装置へ送信する送信手段と
を有する情報処理装置。
【請求項3】
前記複数のレイヤーに含まれる1つのレイヤーから、ポインタ画像をポインタ情報として取得するポインタ情報取得手段を更に有し、
前記送信手段は、更に、前記ポインタ情報を前記表示装置へ送信し、
前記判定手段は、前記第2の画像に前記ポインタ情報に基づいてポインタ画像を重畳して表示した場合に、該ポインタ画像が重複して表示されているかどうかを更に判断し、
前記判定手段が前記ポインタ画像が重複して表示されていると判定した場合に、前記付加情報取得手段は前記ポインタ画像を表示しないことを指示する命令を生成し、前記送信手段は、更に、該命令を前記表示装置へ送信する請求項1に記載の情報処理装置。
【請求項4】
前記複数のレイヤーに含まれる1つのレイヤーから、ポインタ画像をポインタ情報として取得するポインタ情報取得手段を更に有し、
前記判定手段は、前記第2の画像に前記ポインタ情報に基づいてポインタ画像を重畳して表示した場合に、該ポインタ画像が重複して表示されているかどうかを更に判断し、
前記送信手段は、前記判定手段が前記ポインタ画像が重複して表示されていないと判定した場合に前記ポインタ情報を前記表示装置へ送信し、前記判定手段が前記ポインタ画像が重複して表示されていると判定した場合に、前記ポインタ情報を前記表示装置へ送信しないようにする請求項1または2に記載の情報処理装置。
【請求項5】
前記判定手段は、前記第1の画像が、前記第2の画像に含まれないレイヤーの画像を含んでいるかどうかを判定し、
前記付加情報取得手段は、前記判定手段により含んでいると判定されたことに応じて、前記第2の画像に含まれないレイヤーの画像を付加情報として取得する請求項1から4のいずれか1項に記載の情報処理装置。
【請求項6】
前記付加情報取得手段により取得される前記第2の画像に含まれないレイヤーの画像は、ドラッグ中のウィンドウの画像データ、大きさ、位置の全てまたはいずれかを含む請求項5に記載の情報処理装置。
【請求項7】
前記付加情報取得手段により取得される前記第2の画像に含まれないレイヤーの画像は、ドラッグ中のアイコンの画像データ及び位置の全てまたはいずれかを含む請求項5に記載の情報処理装置。
【請求項8】
請求項1から7のいずれか1項に記載の情報処理装置から、画像を含む情報を入力する入力手段と、
前記情報に前記付加情報が含まれているかどうかを判断する判断手段と、
前記判断手段により前記付加情報が含まれていると判断した場合に、前記画像を前記付加情報に基づいて変更することで、前記第1の画像を生成する変更手段と、
前記第1の画像を表示する表示手段と
を有する表示装置。
【請求項9】
請求項1から5のいずれか1項に記載の情報処理装置と、請求項8に記載の表示装置とからなる画像伝送システム。
【請求項10】
表示装置へ画像を送信する情報処理装置の制御方法であって、
複数のレイヤーから成る画面データに基づいて第1の画像を表示する表示ステップと、
前記複数のレイヤーの内、予め決められた少なくとも1つのレイヤーに描画された第2の画像をキャプチャする画像取得ステップと、
前記第1の画像と前記第2の画像とが異なるかどうかを判定する判定ステップと、
前記判定ステップにおいて異なると判定された場合に、前記第2の画像を前記第1の画像と同じ画像にするための付加情報を取得する付加情報取得ステップと、
前記第2の画像を前記表示装置へ送信すると共に、前記付加情報取得ステップにより前記付加情報を取得した場合に、該付加情報を前記表示装置へ送信する送信ステップと
を有する制御方法。
【請求項11】
表示装置へ画像を送信する情報処理装置の制御方法であって、
複数のレイヤーから成る画面データに基いて第1の画像を表示する表示ステップと、
前記複数のレイヤーの内、予め決められた少なくとも1つのレイヤーに描画された第2の画像をキャプチャする画像取得ステップと、
前記第1の画像と前記第2の画像とが異なるかどうかを判定する判定ステップと、
前記判定ステップにおいて異なると判定された場合に、前記第2の画像を前記第1の画像と同じ画像にするための付加情報を取得する付加情報取得ステップと、
前記付加情報取得ステップにより前記付加情報を取得した場合に、前記付加情報を用いて前記第2の画像を変更して、第3の画像を生成する画像変更ステップと、
前記付加情報取得ステップにより前記付加情報を取得していない場合に、前記第2の画像を前記表示装置へ送信し、前記付加情報取得ステップにより前記付加情報を取得した場合に、前記第3の画像を前記表示装置へ送信する送信ステップと
を有する制御方法。
【請求項12】
請求項1から7のいずれか1項に記載の情報処理装置から、画像を含む情報を入力する入力ステップと、
前記情報に前記付加情報が含まれているかどうかを判断する判断ステップと、
前記判断ステップにより前記付加情報が含まれていると判断した場合に、前記画像を前記付加情報に基づいて変更することで、前記第1の画像を生成する変更ステップと、
前記第1の画像を表示する表示ステップと
を有する表示装置の制御方法。
【請求項13】
コンピュータに、請求項10から12のいずれか1項に記載の制御方法の各ステップを実行させるためのプログラム。
【請求項14】
請求項13に記載のプログラムを格納したコンピュータ読み取り可能な記憶媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate


【公開番号】特開2012−42753(P2012−42753A)
【公開日】平成24年3月1日(2012.3.1)
【国際特許分類】
【出願番号】特願2010−184329(P2010−184329)
【出願日】平成22年8月19日(2010.8.19)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】