(57)【要約】【課題】  シンプルな構成で表示制御装置と情報処理装置との通信システムを構成したい。【解決手段】  情報処理装置により作成されたグループに参加し、グループ情報をネットワークに送信し、送信されたグループ情報に基づきネットワーク上の他の情報処理装置から送信される接続要求を受信し、受信された接続要求に基づき他の情報処理装置と接続した後、前記グループ情報を更新して前記ネットワークに送信する。【選択図】  図３
2014127915.tif 000002
【特許請求の範囲】
【請求項１】
表示制御装置であって、
ネットワーク上の情報処理装置と接続し、前記情報処理装置により作成されたグループに参加する参加手段と、
前記グループに参加している装置に関する情報を含むグループ情報を前記情報処理装置から受信する第１の受信手段と、
前記第１の受信手段により受信した前記グループ情報を前記ネットワークに送信する第１の送信手段と、
前記第１の送信手段により送信されたグループ情報に基づき前記ネットワーク上の他の情報処理装置から送信される接続要求を受信する第２の受信手段とを有し、
前記第２の受信手段により受信された接続要求に基づき前記他の情報処理装置と接続した後、前記第１の送信手段は前記グループ情報を更新して前記ネットワークに送信することを特徴とする表示制御装置。
【請求項２】
前記参加手段により前記グループに参加した場合に、前記グループに属する情報処理装置から画像データを受信して表示するよう制御する制御手段をさらに有する請求項１に記載の表示制御装置。
【請求項３】
前記参加手段は、前記情報処理装置からの通知に基づき、前記グループへの参加及び前記グループの終了を決定することを特徴とする請求項１または２に記載の表示制御装置。
【請求項４】
いずれのグループにも参加していない場合、自機の情報を前記ネットワークに送信する第２の送信手段と、
前記第２の送信手段により送信された自機の情報に基づき前記ネットワーク上の情報処理装置から送信される接続要求を受信する第３の受信手段とをさらに有する請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記グループに参加している情報処理装置との接続が切断されたと判断した場合、前記第１の送信手段は前記グループ情報を更新して前記ネットワークに送信することを特徴とする請求項１乃至４のいずれか１項に記載の表示制御装置。
【請求項６】
接続中の情報処理装置から表示形態に関する指示を受信する第４の受信手段と、
前記第４の受信手段により受信した指示に基づき表示形態を変更する表示制御手段とをさらに有し、
前記第１の送信手段は、更新された表示形態に関する情報を前記ネットワークに送信することを特徴とする請求項１乃至５のいずれか１項に記載の表示制御装置。
【請求項７】
前記表示形態に関する指示は、前記情報処理装置から受信した画像データの表示レイアウトに関する指示であることを特徴とする請求項６に記載の表示制御装置。
【請求項８】
前記ネットワークは、無線による通信のネットワークであることを特徴とする請求項１乃至７のいずれか１項に記載の表示制御装置。
【請求項９】
表示装置の制御方法であって、
ネットワーク上の情報処理装置と接続し、前記情報処理装置により作成されたグループに参加する参加工程と、
前記グループに参加している装置に関する情報を含むグループ情報を前記情報処理装置から受信する第１の受信工程と、
前記第１の受信工程で受信した前記グループ情報を前記ネットワークに送信する第１の送信工程と、
前記第１の送信工程により送信されたグループ情報に基づき前記ネットワーク上の他の情報処理装置から送信される接続要求を受信する第２の受信工程と、
前記第２の受信工程で受信された接続要求に基づき前記他の情報処理装置と接続した後、前記グループ情報を更新して前記ネットワークに送信する第２の送信工程とを有する表示装置の制御方法。
【請求項１０】
コンピュータを、請求項１乃至７のいずれか１項に記載の表示制御装置の各手段として機能させるコンピュータが実行することが可能なプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えばパーソナルコンピュータ（以下、「ＰＣ」と表記する。）等の情報処理装置と、例えばプロジェクタなどの表示制御装置とのデータ通信に関する。
【背景技術】
【０００２】
通常、ＰＣとプロジェクタとはアナログＲＧＢケーブルを用いたアナログ接続によって画像信号の送受信を行っていた。その一方で近年では、ネットワークを介してＰＣとプロジェクタを接続するネットワーク画面転送システムが注目されている。
【０００３】
このネットワーク画面転送システムにおいては、１台のＰＣから複数台のプロジェクタに対して、ＰＣの映像をすべてのプロジェクタに同時投影する機能や、複数台のＰＣからの映像を１台のプロジェクタで多画面レイアウト表示する機能等が実現されている。また、複数台のＰＣから複数台のプロジェクタでネットワークを構築し、各ＰＣから各プロジェクタに対して自由なレイアウトで投影表示をするといった形態も可能である。
【０００４】
さて、このように複数台のＰＣと複数台のプロジェクタでネットワークグループ（以下セッションと呼ぶ）を構成する場合には、各ＰＣと各プロジェクタ間でお互いが通信可能な状態になっている必要がある。このようにセッションを管理する技術として、複数の情報端末間でセッション情報を管理して、全端末で相互に通信可能とする技術が知られている（特許文献１）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１０−４１９４０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１に記載の方法は、お互いが並列の関係にある情報端末間でのセッション情報の管理方法である。そのため、すべての情報端末間で相互通信を確保する必要があり、管理が煩雑であった。
【課題を解決するための手段】
【０００７】
本発明に係る表示制御装置は、ネットワーク上の情報処理装置と接続し、前記情報処理装置により作成されたグループに参加する参加手段と、前記グループに参加している装置に関する情報を含むグループ情報を前記情報処理装置から受信する第１の受信手段と、前記第１の受信手段により受信した前記グループ情報を前記ネットワークに送信する第１の送信手段と、前記第１の送信手段により送信されたグループ情報に基づき前記ネットワーク上の他の情報処理装置から送信される接続要求を受信する第２の受信手段とを有し、前記第２の受信手段により受信された接続要求に基づき前記他の情報処理装置と接続した後、前記第１の送信手段は前記グループ情報を更新して前記ネットワークに送信することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、シンプルな構成による通信システムを実現することが可能となる。
【図面の簡単な説明】
【０００９】
【図１】ＰＣのハード構成図
【図２】プロジェクタのハード構成図
【図３】ネットワーク画面転送システムの概念図
【図４】セッション状態の概念図
【図５】ＰＣ、プロジェクタ間の通信フロー図
【図６Ａ】ＰＣの処理フロー図
【図６Ｂ】ＰＣの処理フロー図
【図６Ｃ】ＰＣの処理フロー図
【図７】プロジェクタの処理フロー図
【図８Ａ】ＧＵＩ図
【図８Ｂ】ＧＵＩ図
【図８Ｃ】ＧＵＩ図
【図９】パケット構成図
【図１０】ＧＵＩ図
【図１１】ＡはＰＣの処理フロー図、Ｂはプロジェクタの処理フロー図
【図１２】パケット構成図
【発明を実施するための形態】
【００１０】
以下、図面を参照して本発明の実施形態を詳細に説明するが、この発明は以下の実施の形態に限定されない。また、この発明の実施の形態は発明の好ましい形態を示すものであり、発明の範囲を限定するものではない。
【００１１】
＜第１の実施形態＞
以下、図１、２を用いて本実施形態の画面転送システムを構成するＰＣ１００とプロジェクタ２００の主要な構成を説明する。なお、本実施形態では情報処理装置の一例としてＰＣを、表示制御装置の一例としてプロジェクタを採用したが、必ずしもこれらには限定されない。例えば情報処理装置としては携帯電話、デジタルカメラ、いわゆるタブレット端末などを用いてもよい。また、表示制御装置としてディスプレイ、デジタルテレビ、携帯電話、いわゆるタブレット端末などを用いてもよい。
【００１２】
まず、ＰＣ１００の主要な構成を説明する。ＣＰＵ１０１は、入力信号やプログラムに従って各部を制御することで、表示制御、記録制御、画像処理制御、通信制御といったＰＣ１００の全体の制御を行う。ＲＡＭ（ランダムアクセスメモリ）１０２は、データの格納を行うメインメモリである。ＲＡＭ１０２は、主に、ＣＰＵ１０１が実行するプログラムを格納、或いは展開する領域、プログラム実行中のワーク領域など、様々なデータの格納領域として使用される。ＶＲＡＭ１０３は、後述する表示部１０６に表示する画像を格納するための領域として使用される。なおＲＡＭ１０２の速度が十分高速であれば、ＲＡＭ１０２をＶＲＡＭ１０３として用いてもよい。フラッシュメモリ１０４は、ＣＰＵ１０１が初期化時に実行するブートプログラムが格納されている。なお、ブートプログラムでは、後述するＨＤＤ１０５に記録されているＯＳをＲＡＭ１０２に展開して起動する処理が行われる。ハードディスクドライブ（以下ＨＤＤ）１０５は、アプリケーションプログラムやＯＳなどの各種プログラムとデータを格納するために使用される。表示部１０６は、後述する表示制御部１０７より指示された画像の表示を行う。表示部１０６は例えば、液晶パネル、或いは有機ＥＬパネルである。１０７は、表示制御部である。表示制御部１０７は、ＶＲＡＭ１０３に格納された画像を読み出し、これを表示部１０６に表示する処理を行う。１０８は、操作部であり、ユーザからの入力を受け付ける。操作部１０８は、例えばキーボード、マウス、タッチパネル等によって構成され、これらの入力操作はＣＰＵ１０１に送信される。タッチパネルを採用する場合は表示部１０６と一体的に形成し、表示面へのタッチ操作で捜査を入力することが可能である。１０９は、通信部であり、通信ネットワーク１５０を介して外部機器、具体的にはプロジェクタ２００と通信を行う。通信部１０９は、例えば１ギガビットイーサネット等のインタフェースや、無線ＬＡＮなどによって構成されるが、これらに限定されるものではない。１１０は、上述した各処理ブロック間を接続する内部バスである。なお、ＰＣ１００の制御は必ずしも１つのハードウェアで行う必要はなく、例えば複数のハードウェアが処理を分担してＰＣ１００の各手段を実現してもよい。
【００１３】
次に、図２を用いてプロジェクタ２００の主要な構成を説明する。ＣＰＵ２０１、ＲＡＭ２０２、フラッシュメモリ２０３、ＶＲＡＭ２０４、操作部２０８、通信部２０９、内部バス２１０のハードウェアとしての役割はＰＣ１００と同様であるので、ここでは説明を省略する。デコーダ２０５は、符合化された画像データ、例えばＪＰＥＧ形式で圧縮された画像データをデコードする。投影部２０６は液晶パネル、レンズ、光源で構成され、後述する投影制御部２０７により指示された画像を投影する。投影制御部２０７は、ＶＲＡＭ２０４に格納された画像を読み出し、これを投影部１０７に投影するよう制御する。なお、ＣＰＵ２０１が投影制御部２０７として動作してもよい。なお、プロジェクタ２００の制御は必ずしも上述のハードウェアでのみ行う必要はなく、例えば複数のハードウェアが処理を分担してＰＣ１００の各手段を実現してもよい。
【００１４】
ここで、ＰＣ１００とプロジェクタ２００からなる本実施形態における画面転送システムを説明する。図３は本実施形態の画面転送システムの概要を示す図である。
【００１５】
画面転送システムの目的はＰＣ１００に表示されている画面をプロジェクタ２００で投影することである。ＰＣ１００は表示部１０６に表示されている画面をキャプチャしてＪＰＥＧなどの圧縮画像データを生成する。そしてこの圧縮画像データをプロジェクタ２００に送信する。一方、圧縮画像データを受信したプロジェクタ２００は、圧縮された画像データをデコードして投影する。この動作を、例えば一定間隔で実行することで、ＰＣ１００の画面がプロジェクタ２００により投影されることになる。
【００１６】
なお、本実施形態の画面転送システムは、複数のＰＣ及び複数のプロジェクタで構成することが可能である。図３の例では、２台のＰＣ１００ａ，１００ｂと、２台のプロジェクタ２００ａ，２００ｂがＬＡＮ１５０を介して通信している。
【００１７】
本実施形態における画面転送システムは、図３に示すようにＰＣ１００ａの映像をプロジェクタ２００ａで投影することが可能である。もちろんプロジェクタ２００ａは、ＰＣ１００ｂからの映像を投影することも可能である。
【００１８】
また図３に示すように、ＰＣ１００ａの映像とＰＣ１００ｂの映像とを２画面レイアウトでプロジェクタ２００ｂに投影するといった、多画面レイアウトでの投影も可能である。なお、多画面レイアウト表示を行う場合は、複数のＰＣより受信した映像データをデコード結果の格納先を、各ＰＣ映像の表示位置を考慮したＶＲＡＭ２０４のアドレスにする。なお、多画面レイアウトの際には、ＰＣ側で前記エンコードする前にリサイズ処理を実施してもよい。
【００１９】
なお、本実施形態における画面転送システムでは、通信対象のプロジェクタ選択、投影時の表示レイアウトなど表示形態の設定、画面転送の開始、停止などの各種指示はＰＣ１００側のプログラムが提供するＧＵＩを介してＰＣ１００のユーザが指示するものとする。
【００２０】
ここで、本実施形態の画面転送システムの特徴的な動作について説明する。前述したように、本実施形態の画面転送システムは、映像送信装置間の通信や各映像表示装置間の通信を行わなくとも、一台以上の映像送信装置と一台以上の映像表示装置とで構成されるセッション情報を管理できる。なお、本実施形態におけるセッション情報はグループ情報の一例である。
【００２１】
まず、図４のセッション状態の概念図、図５の通信フロー図を用いて、セッション情報を管理する典型的なシーケンスについて説明する。
【００２２】
まず図４（ａ）に示すような、ＰＣ１００ａがプロジェクタ２００ａ、プロジェクタ２００ｂで構成されるセッションを作成するフローについて説明する。セッションの作成に成功すると、図４（ａ）に示すように、セッションの作成者であるＰＣ１００ａと、プロジェクタ２００ａとの間の通信路（４０２）が確立される。さらに、ＰＣ１００ａとプロジェクタ２００ｂとの間の通信路（４０３）も確立される。さらに、ＰＣ１００ａは各プロジェクタとセッション情報を共有することで、プロジェクタ２００ａが保持するセッション情報（４００）と、プロジェクタ２００ｂが保持するセッション情報（４０１）が同一のものとなる。当該セッション情報として、セッションに属するプロジェクタ数（ここでは２台）、セッションに所属する各プロジェクタの情報（ここではＩＰアドレス）が共有される。このようにして、ＰＣ１００ａがプロジェクタ２００ａ、プロジェクタ２００ｂで構成される、セッションと呼ばれるネットワークグループが作成される。
【００２３】
以下、ユーザａがＰＣ１００ａを操作して、プロジェクタ２００ａとプロジェクタ２００ｂで構成されるセッションを作成する具体的な通信シーケンスについて、図５を用いて説明する。
【００２４】
Ｓ５００では、ユーザａはＰＣ１００ａ上のＧＵＩアプリケーション（以下、ＧＵＩアプリ）を操作して、新しいセッションの作成を指示する。
【００２５】
Ｓ５０１では、ＧＵＩアプリは、セッションを構成するプロジェクタを選択するためのプロジェクタリストを表示する。なお、このプロジェクタリストはネットワークに対してプロジェクタからブロードキャストされるプロジェクタ情報コマンドを元に構成される。
【００２６】
本実施形態においては、ネットワーク上にプロジェクタ２００ａ、プロジェクタ２００ｂが存在しているので、Ｓ５０２、Ｓ５０４で、各プロジェクタはプロジェクタ情報コマンドをネットワーク上にブロードキャストしている。なおプロジェクタ情報コマンドには、例えば当該プロジェクタのＩＰアドレスが少なくとも含まれている。また、ここでは説明の簡単化のためにこのタイミングでプロジェクタ情報コマンドを送信するとしているが、セッション化される前のプロジェクタは一定時間毎に、このように自機の情報を含むプロジェクタ情報コマンドを配信している。この配信処理は第２の送信手段による送信の一例である。
【００２７】
Ｓ５０３、Ｓ５０５で、ＰＣ１００ａは、プロジェクタ情報コマンドを受信しているので、プロジェクタリストを更新する。具体的には、セッション作成時に選択可能なプロジェクタとして、プロジェクタ２００ａ、プロジェクタ２００ｂの情報がそれぞれ表示される。
【００２８】
Ｓ５０６では、ユーザａは、ＧＵＩアプリのプロジェクタリストからプロジェクタ２００ａとプロジェクタ２００ｂを選択してセッションの作成を指示する。
【００２９】
Ｓ５０７、Ｓ５０８では、ＧＵＩアプリは、作成するセッションを構成するプロジェクタであるところの、プロジェクタ２００ａ、プロジェクタ２００ｂと自身（ＰＣ１００ａ）の論理的な接続を確立する。なお、ここで接続を確立したＰＣとセッション化済みのプロジェクタ間では画面転送処理が可能になる。なお、接続に際しては各プロジェクタに設定されたパスワード認証が必要となる構成をとってもよい。
【００３０】
そして、Ｓ５０９、Ｓ５１０では、ＰＣ１００ａは、接続を確立したプロジェクタ２００ａと、プロジェクタ２００ｂに対してセッション化要求コマンドをそれぞれ送信する。なお、セッション化要求コマンドには、セッションの名称、セッションを構成するプロジェクタ数および、セッションを構成するプロジェクタに関する情報が含まれており、Ｓ５０９とＳ５１０で送信したセッション化要求には、これらの同一の情報が格納されている。セッション化要求コマンドを受信したプロジェクタは自身をセッション化済の状態へと遷移させる。
【００３１】
そして、Ｓ５１１で、ＰＣ１００ａはセッション化したプロジェクタに対して投影制御を実施するための投射用ＧＵＩを表示する。
【００３２】
以上の処理によって、セッションの作成処理が完了する。つまり、プロジェクタ２００ａ、プロジェクタ２００ｂはそれぞれ、ＰＣ１００ａとの通信路が確立されている。また同一の情報を含むセッション化要求コマンドが各プロジェクタに送信されているので、プロジェクタ２００ａとプロジェクタ２００ｂは共通のセッション情報を保持している。
【００３３】
続いて、図４（ｂ）で示したような、ＰＣ１００ｂが、作成済みのセッション（ＰＣ１００ａが作成したプロジェクタ２００ａとプロジェクタ２００ｂで構成されるセッション）に参加するフローについて説明する。セッションの参加に成功すると図４（ｂ）に示したように、作成済みのセッションを構成するプロジェクタ２００ａ、プロジェクタ２００ｂと、新たにセッションに参加したＰＣ１００ｂとの間の通信路（４０４、４０５）が確立される。
【００３４】
以下、ユーザｂがＰＣ１００ｂを操作してプロジェクタ２００ａとプロジェクタ２００ｂで構成される作成済みのセッションに参加する通信シーケンスについて、図５を用いて説明する。
【００３５】
Ｓ５１２では、ユーザｂはＰＣ１００ｂ上のＧＵＩアプリを操作して、セッションへの参加を指示する。
【００３６】
Ｓ５１３では、ＧＵＩアプリは、参加可能なセッションを選択するためのセッションリストを表示する。なお、このセッションリストはネットワークを介してセッション化されたプロジェクタからブロードキャストされるセッション情報コマンドを元に構成される。
【００３７】
本実施形態においては、前述のセッション作成時のフローで説明したように、プロジェクタ２００ａとプロジェクタ２００ｂが同一セッションに属するプロジェクタとしてセッション化されている。したがって、各プロジェクタは、Ｓ５１４、Ｓ５１６でセッション情報コマンドをブロードキャストしている。ここでの送信処理は第１の送信手段による送信の一例である。なお、セッション情報コマンドは前述のＳ５０９、Ｓ５１０でセッションを作成するＰＣから送信されたセッション要求コマンドを元に構成されている。セッション情報コマンドは、セッションの名称、セッションを構成するプロジェクタ数および、セッションを構成するプロジェクタに関する情報などが含まれている。また、ここでは説明の簡単化のためにこのタイミングでセッション情報コマンドを送信するとしているが、セッション化された後のプロジェクタは、一定時間毎に、このようにセッション情報コマンドを配信している。
【００３８】
Ｓ５１５、Ｓ５１７では、ＰＣ１００ｂは、セッション情報コマンドを受信しているので、セッションリストを更新する。具体的には、参加可能なセッションとして、ユーザａが作成したセッションに関する情報（例えばセッション名）が表示される。なお、Ｓ５１４、Ｓ５１６でプロジェクタが送信するセッション情報コマンドに含まれるセッション及びセッションに属しているプロジェクタの情報は一致する。したがって、実際にはＳ５１７の時点ではセッションリストに表示するセッション一覧に変化は生じない。
【００３９】
Ｓ５１８では、ユーザｂはＧＵＩアプリのセッションリストから参加対象のセッション（ここでは、ＰＣ１００ａが作成したセッション）を選択してセッションへの参加を指示する。
【００４０】
Ｓ５１９、Ｓ５２０では、ＧＵＩアプリは参加対象のセッションを構成するプロジェクタであるところの、プロジェクタ２００ａ、プロジェクタ２００ｂと自身（ＰＣ１００ｂ）の論理的な接続を確立する。Ｓ５０７、Ｓ５０８で説明したように、接続を確立したＰＣとプロジェクタ間では画面転送処理が可能となる。ここでプロジェクタがＰＣから接続要求を受信する処理は第２の受信処理の一例である。
【００４１】
そして、Ｓ５２１で、ＰＣ１００ｂはセッション化したプロジェクタに対して投影制御を実施するための投射用ＧＵＩを表示する。
【００４２】
続いて、図４（ｃ）で示したような、ＰＣ１００ｂが、セッション構成を変更し、セッションからプロジェクタ２００ｂを削除するフローについて説明する。セッションからプロジェクタの削除に成功すると図４（ｃ）に示したように、以前セッションを構成していたプロジェクタ２００ｂからセッション情報が削除される。そしてセッションを構成する残りの１台のプロジェクタ２００ａのセッション情報は４０６のように変更される。さらにＰＣ１００ａとＰＣ１００ｂとプロジェクタ２００ｂとの通信路（４０７、４０８）が切断される。
【００４３】
以下、ユーザｂがＰＣ１００ｂを操作してプロジェクタ２００ａとプロジェクタ２００ｂで構成されるセッションから、プロジェクタ２００ｂを削除する通信シーケンスについて図５を用いて説明する。
【００４４】
Ｓ５２２では、ユーザｂはＰＣ１００ｂ上のＧＵＩアプリを操作して、当該セッションに属するプロジェクタの構成の変更を指示する。
【００４５】
Ｓ５２３では、ＧＵＩアプリは、自身が接続中のセッションに対して新たなプロジェクタを追加したり、セッションを構成するプロジェクタの削除を実施するためのプロジェクタリストを表示する。なお、このプロジェクタリストは、Ｓ５０１と同様にネットワークを介してセッション化前のプロジェクタからブロードキャストされるプロジェクタ情報コマンド及び、現在自身が接続を確立している各プロジェクタの情報から構成されている。
【００４６】
Ｓ５２４では、ユーザｂは、ＧＵＩアプリのプロジェクタリストから接続中のプロジェクタ２００ｂを削除対象として選択して、セッションからプロジェクタ２００ｂの削除を指示する。
【００４７】
Ｓ５２５、Ｓ５２６では、ＰＣ１００ｂのＧＵＩアプリは、セッションを構成するプロジェクタ２００ａ、２００ｂに対して、セッション情報変更要求コマンドをそれぞれ送信する。なお、セッション情報変更要求コマンドは、前述のＳ５０９、Ｓ５１０のセッション化要求と同様の構成を持っており、この場合は、セッションに属するプロジェクタ台数は１台とし、セッションに属するプロジェクタ情報は、プロジェクタ２００ａのみとする。
【００４８】
そして、Ｓ５２７でＰＣ１００ｂのＧＵＩアプリは、セッションから削除するとしたプロジェクタ２００ｂとの通信路を切断する。
【００４９】
Ｓ５２８、Ｓ５２９では、プロジェクタ２００ａはＳ５２５で受信したセッション情報変更要求コマンドによって、自身の保持するセッション情報が変更されたことを、自身に接続中のＰＣに対して通知する。ここの時点では、プロジェクタ２００ａに対して、ＰＣ１００ａ、ＰＣ１００ｂが接続中であるので、これらのＰＣに対してセッション情報変更通知コマンドを配信している。
【００５０】
そして、Ｓ５３０でも、プロジェクタ２００ｂが前述のプロジェクタ２００ａと同様に、Ｓ５２６で受信したセッション情報変更要求コマンドによって、自身の保持するセッション情報が変更されたことを、自身に接続中のＰＣに対して通知する。なおこの時点で、Ｓ５２７のＰＣ１００ｂからの切断要求によってＰＣ１００ｂとの通信路は切断されているため、セッション情報の変化通知の送信対象は、ここではＰＣ１００ａだけとなっている。しかしながら、セッション情報変化通知コマンドの発行処理は、セッション情報変更要求コマンドに応じて、別々プロジェクタで並列に実行されるため、必ずしもここで記述したシーケンスになるとは限らない。つまり、Ｓ５２７で示したＰＣ１００ｂの切断要求をプロジェクタ２００ｂが受信するより先に、セッション情報変化通知コマンドの発行処理を実施する場合も起こりえる。この場合には、セッション情報の変化通知先は、ＰＣ１００ａとＰＣ１００ｂとなる。
【００５１】
Ｓ５２９で、セッション情報変化通知コマンドを受信したＰＣ１００ａは、当該セッションから、プロジェクタ２００ｂが削除されたことを知る。そして、セッションの状態と自身が接続中のプロジェクタとが一致していないことを判断すると、ここで通知されたセッションの情報と一致するように接続、切断処理を実行する。ここでは、ＰＣ１００ｂによってプロジェクタ２００ｂがセッションから削除されているので、ＰＣ１００ａは、プロジェクタ２００ｂとの通信路を切断する（Ｓ５３１）。ここでプロジェクタ２００ｂと接続中のＰＣが無くなったので、プロジェクタ２００ｂは自身をセッション化前の状態とし、保持しているセッション情報をすべてクリアする。
【００５２】
なお、Ｓ５３０によっても同様のセッション情報の変化を知ることとなるが、ＰＣとしては、自身が接続中のプロジェクタと、セッション情報に含まれるプロジェクタとの、不一致を検知した場合のみ、接続、切断処理を実行する。つまり、Ｓ５３１の切断処理は、Ｓ５２９の通知がトリガになっており、Ｓ５３０のように同様の通知を受信したとしても、再度切断処理を実行する必要はない。
【００５３】
また、Ｓ５２８においてもＳ５３０と同様のことが言える。ＰＣ１００ｂがセッション情報変化通知を受信しても、既にプロジェクタ２００ｂとの通信路は切断しており、新たなセッション情報に含まれるプロジェクタ情報と、自身が接続中のプロジェクタとは既に一定している。つまり、再度プロジェクタ２００ｂとの切断処理を実行することはない。
【００５４】
以上の処理によって、セッションの変更処理としてプロジェクタ２００ｂをセッションから削除する処理が完了した。つまり、プロジェクタ２００ｂと、ＰＣ１００ａ、ＰＣ１００ｂとの間の通信路は切断され、プロジェクタ２００ｂがセッション化前の状態に戻っている。
【００５５】
なお、ここではセッションの変更処理としてプロジェクタを削除するシーケンスを例にとって説明した。この他にも、プロジェクタを追加する場合や、プロジェクタの追加、削除を同時に実施する場合に、セッション作成時に述べたシーケンスとここで述べたシーケンスの組み合わせで実現可能である。
【００５６】
次に、本発明を実現するための具体的な動作フローについてＰＣ側とプロジェクタ側のフローに分けてそれぞれ説明する。
【００５７】
まず、ＰＣ側のフローを図６Ａ、Ｂ、Ｃを用いて説明する。
【００５８】
図６Ａ、Ｂ、Ｃはの各処理フローは、ＰＣ１００で実行されるＧＵＩアプリのプロセスとして実行されるフローである。
【００５９】
最初に、ＰＣ上でセッションを作成する際のフローを説明する。説明の簡単化のために、図４（ａ）に記載の状況を具体例とし、ＰＣ１００ａ（ＰＣ名称“ＰＣ−Ａ”）上でＧＵＩアプリから、プロジェクタ２００ａ、プロジェクタ２００ｂの２台のプロジェクタでセッションを作成するフローを説明する。なお、プロジェクタ２００ａはプロジェクタ名称を“Ｐｒｏｊｅｃｔｏｒ  １”、ＩＰアドレスを“１９２．１６８．１．１０”とする。、また、プロジェクタ２００ｂはプロジェクタ名称を“Ｐｒｏｊｅｃｏｔｒ  ２”、ＩＰアドレスを“１９２．１６８．１．２０”とする。
【００６０】
ＰＣ１００ａ上で、本実施形態に記載のＧＵＩアプリを起動すると、図６Ａの処理フローが開始される。
【００６１】
Ｓ６００において、ＧＵＩアプリは図８Ａ（ａ）に示したような、セッションを新たに作成するか、作成済みのセッションに参加するか、を選択させるためのＵＩを表示する。ユーザによりセッション作成ボタン８００が押下されると、Ｓ６０１に進む。そしてセッション参加ボタン８０１が押下されるとＳ６１０に進む。
【００６２】
まず、ユーザが８００を押下して、セッションを作成する場合のフローについて説明する。Ｓ６０１で、ＧＵＩアプリは、図８Ａ（ｂ）の様態のプロジェクタリストＵＩを表示する。このＵＩは、セッション化対象として選択可能なプロジェクタの情報を表示する領域８０２をリスト表示する構造となっている。そして、８０２と対応付いたチェックボックス８０３を備えており、ユーザはセッション化対象のプロジェクタを１台以上選択できる。
【００６３】
またスクロールバー８０４を備えており、セッション化前のプロジェクタが多数発見された場合には、当該スクロールバーを操作することで、すべてのプロジェクタの情報を確認できる。
【００６４】
Ｓ６０２で、ＧＵＩアプリは、プロジェクタ情報コマンドを受信しているかどうかをチェックする。受信があれば、Ｓ６０３に遷移し、受信がなけれえばＳ６０４に遷移する。
【００６５】
なお、プロジェクタ情報コマンドとは、前述の通信フローＳ５０２、Ｓ５０３でセッション化前のプロジェクタがネットワーク上にブロードキャストするコマンドである。当該コマンドは、図９（ａ）のようにプロジェクタ情報コマンドであることを示すｃｏｍｍａｎｄＩＤタグ９００。当該コマンドの発行元であるプロジェクタのＩＰアドレスを示すＩＰＡｄｄｒｅｓｓタグ９０１。当該プロジェクタに設定されているプロジェクタ名称を示すＰＪＮａｍｅタグ９０２で構成されるパケット構造である。
【００６６】
Ｓ６０３で、ＧＵＩアプリは、受信したプロジェクタ情報コマンドを解析して、プロジェクタ名とプロジェクタのＩＰアドレスを取得し、図８Ａ（ｂ）のプロジェクタリストＵＩの表示を更新して、Ｓ６０４に遷移する。Ｓ６０２、Ｓ６０３の処理を繰り返すことで、ネットワーク上に存在するセッション化前のプロジェクタ情報を一覧表示することができる。
【００６７】
なお、プロジェクタがブロードキャストするプロジェクタ情報コマンドだけでは、サブネット外のプロジェクタから当該コマンドを受信することができない。したがって、サブネット外のプロジェクタを当該プロジェクタリストＵＩに表示することができない。この課題に対応するため、サブネット外のプロジェクタのＩＰアドレスを直接打ち込んで、プロジェクタ情報を直接プロジェクタから取得するための検索ＵＩを、図８Ａ（ｂ）のＵＩに組み込んでもよい。
【００６８】
Ｓ６０４で、ＧＵＩアプリは、ユーザが８０３のチェックボックスをチェックすることで、セッション化対象のプロジェクタを１つ以上選択し、さらに８０５の確定ボタンが押下されるのを待ち受ける。これにより、セッション化対象のプロジェクタ選択が完了すれば、Ｓ６０５に遷移し、一定時間経っても完了しなければ、Ｓ６０２の処理を繰り返す。
【００６９】
Ｓ６０５で、ＧＵＩアプリは、Ｓ６０４でユーザがセッション化対象と指定した各プロジェクタに対して接続処理を実行してＳ６０６に遷移する。これは前述の通信フローＳ５０７、Ｓ５０８で説明したように、プロジェクタと論理的な接続を確立することである。
【００７０】
また、通信フローの説明では省略したが、接続処理を実施する際には、接続を確立した直後に、図９（ｂ）の構成のＰＣ情報コマンドをプロジェクタに送信する。本コマンドは、ＰＣ情報コマンドであることを示すＣｏｍｍａｎｄＩＤタグ９０３、接続処理を実行したＰＣ自体に割り当てられている名称を示すＰＣＮａｍｅタグ９０４から構成されるパケット構造である。なお、ＰＣＮａｍｅタグ９０４に格納する文字列は、ＯＳから取得可能なコンピュータ名を用いてもよいし、ＧＵＩアプリから設定可能な構成とし、ユーザが設定した任意の文字列を用いてもよい。本実施形態においては、図９（ｂ）の例のように、ＰＣ１００ａの名称である“ＰＣ−Ａ”を接続処理を実施したプロジェクタに対して送信する。
【００７１】
Ｓ６０６は、ＧＵＩアプリは、Ｓ６０４でユーザが指定した全プロジェクタとの接続が完了したかどうかをチェックする。すべてのプロジェクタとの接続が完了していれば、Ｓ６０７に遷移し、まだであれば、Ｓ６０５に戻り、ユーザが指定した次のプロジェクタとの接続処理を実行する。Ｓ６０５と、Ｓ６０６の処理を図８Ａ（ｂ）の状態を例にとって説明する。図８Ａ（ｂ）では、ユーザはセッション化対象のプロジェクタとして、“Ｐｒｏｊｅｃｔｏｒ  １”と“Ｐｒｏｊｅｃｔｏｒ  ２”の２台のプロジェクタを選択している。したがって、Ｓ６０５の処理は計２回、“Ｐｒｏｊｅｃｔｏｒ  １”と、“Ｐｒｏｊｅｃｔｏｒ  ２”に対して実行されることとなる。
【００７２】
なお不図示であるが、セッション化対象のプロジェクタとの接続にはパスワード認証が必須であるとし、図８Ａ（ｂ）の各プロジェクタリスト８０２にパスワード入力欄を設けてもよい。こうした場合には、接続要求に先だってパスワード認証のための通信を実施する。
【００７３】
Ｓ６０７で、ＧＵＩアプリは、図８Ａ（ｃ）の態様のセッション設定ＵＩを表示し、ユーザが８０５のエディットボックスに、任意のセッション名を入力し、８０７の確定ボタンを押下すると、Ｓ６０８に遷移する。
【００７４】
Ｓ６０８で、ＧＵＩアプリは、セッション化対象のプロジェクタ情報と、Ｓ６０７のセッション設定でユーザが入力した情報からセッション化要求コマンドを作成する。そして、Ｓ６０５で通信路を確立したすべてのプロジェクタに対してセッション化要求コマンドを送信して、Ｓ６０９に遷移する。なお、セッション化要求コマンドとは、前述のＳ５０９、Ｓ５１０で説明したようにＰＣがセッション化対象のプロジェクタに対して送信するコマンドである。当該コマンドはパケット構造をとり、図９（ｂ）のようにセッション化要求コマンドであることを示すｃｏｍｍａｎｄＩＤタグ９０５、作成するセッションの名称を示すＳｅｓｓｉｏｎＮａｍｅタグ９０６を含む。さらに当該コマンドはセッション化対象のプロジェクタ数を示すｎｕｍＯｆＰＪタグ９０７、セッション化対象のプロジェクタ毎に確保するプロジェクタ情報フィールド９０８（９０９）を含む。またプロジェクタ情報フィールド９０８（９０９）は、セッション化対象のプロジェクタのＩＰアドレスを示すＩＰＡｄｄｒｅｓｓタグ９１０、プロジェクタ名称を示すＰＪＮａｍｅタグ９１１から構成されている。
【００７５】
図８Ａ（ｂ）、図８Ａ（ｃ）を具体例にとって、セッション化要求コマンドの構成を説明すると、図８Ａ（ｃ）でユーザは、セッション名を“ミーティングＸ”としているので、ＳｅｓｓｉｏｎＮａｍｅタグ９０６にはこれが格納される。そして、図８Ａ（ｂ）でセッション化対象のプロジェクタとしての２台をユーザが選択しているため、ｎｕｍＯｆＰＪタグ９０７には「２」が格納される。また、２つのプロジェクタ情報フィールドには、Ｓ６０２で受信したプロジェクタ情報コマンドに基づく情報が格納される。具体的には、それぞれのプロジェクタのＩＰアドレス（１９２．１６８．１．１０と１９２．１６８．１．２０）がＩＰＡｄｄｒｅｓｓタグに格納される。また、それぞれのプロジェクタ名称（“Ｐｒｏｊｅｃｔｏｒ  １”と“Ｐｒｏｊｅｃｏｔｒ  ２”）がＰＪＮａｍｅタグに格納される。このようにして作成したセッション化要求コマンドを“Ｐｒｏｊｅｃｔｏｒ  １”と“Ｐｒｏｊｅｃｔｏｒ  ２”に対してそれぞれ同一の内容で送信する。
【００７６】
ここで、セッション化対象としたプロジェクタにいづれかが、他のＰＣからの指示によって既にセッション化済みになっている場合がある。こうした状況においては、不図示ではあるが、Ｓ６０８の処理が失敗することがある。Ｓ６０８の処理が失敗する場合には、“セッション化に失敗した”としてすべてのセッション化対象のプロジェクタとの接続を解除して、Ｓ６０１にもどる。
【００７７】
Ｓ６０９で、ＧＵＩアプリは、図８Ａ（ｄ）の態様の投射制御ＵＩを表示する。投射制御ＵＩは、セッション名表示エリア８０８、セッション化済みプロジェクタ選択タブ８０９（８１０）、当該ＧＵＩアプリを起動しているＰＣ自身を表示するＭｙＰＣ表示エリア８１１、投射レイアウト設定エリア８１２などから構成されている。具体的にこの投射制御ＵＩをＧＵＩアプリがどのように生成するかを説明する。上述のように、あるＰＣが“Ｐｒｏｊｅｃｔｏｒ  １”、“Ｐｒｏｊｅｃｔｏｒ  ２”をセッション化しているので、セッション化済みのプロジェクタタブが２つ（８０９と８１０）表示されている。ユーザはこのタブを選択することで、そのタブに対応付いたプロジェクタの投射レイアウト設定エリア８１２を表示させ、制御することができる。また、このタブはセッション化を構成するプロジェクタ毎に表示される。
【００７８】
そして、当該セッションには図８Ａ（ｃ）で示したように、“ミーティングＸ”という名称をつけたので、８０８の領域にはその名称が表示されている。
【００７９】
８１１のＭｙＰＣ表示エリアには、当該ＧＵＩアプリを起動しているＰＣ自身を示す情報が表示されている。セッション作成直後は、セッションを作成したＰＣ自身しかセッションに所属する各プロジェクタに接続していないため、このようにＭｙＰＣ表示エリアのみが表示されている状態となる。この領域に表示される情報は、Ｓ６０５でＰＣ情報として、セッション化対象の各プロジェクタに送信した内容と同一であり、実施形態では、“ＰＣ−Ａ”となる。
【００８０】
以上がＰＣ上で新たにセッションを作成するフローである。
【００８１】
続いて、ＰＣ上で既存のセッションに参加する際のフローを説明する。説明の簡単化のために、図４（ｂ）に記載の状況を具体例とし、ＰＣ１００ｂ（ＰＣ名称“ＰＣ−Ｂ”）上でＧＵＩアプリから、前述のフローでＰＣ１００ａが作成したセッションに参加するフローを説明する。
【００８２】
セッション参加時の処理フローの開始は、前述のセッション参加時と同様である。まず、ＰＣ１００ｂ上で、ＧＵＩアプリを起動すると図６Ａの処理フローが開始される。
【００８３】
Ｓ６００で、ＧＵＩアプリは図８Ａ（ａ）のＵＩを表示し、ユーザがセッション作成を指示するか、セッション参加を指示するかを待ち受ける。そして、ユーザがボタン８０１を押下することで、セッション参加時のフローとなり、Ｓ６１０に遷移する。
【００８４】
Ｓ６１０で、ＧＵＩアプリは、図８Ｂ（ｅ）の態様のセッションリストＵＩを表示する。このＵＩは、参加可能なセッションとして選択可能なセッションの情報を表示する領域８１３をリスト表示する構造となっており、前述の図８Ａ（ｂ）と同様にスクロールバー８１５を備えている。これによって、ユーザはネットワーク上の参加可能なセッションを一覧表示することができる。また８１３に対応付いたラジオボックス８１４を備えており、ユーザは、これを選択することで参加対象のセッションを１つ選択することができる。
【００８５】
Ｓ６１１で、ＧＵＩアプリは、セッション情報コマンドを受信しているかどうかをチェックする。受信があればＳ６１２に遷移し、受信がなければＳ６１３に遷移する。
【００８６】
なお、セッション情報コマンドはとは、前述の通信フローＳ５１４、Ｓ５１６でセッション化後のプロジェクタがネットワーク上にブロードキャストするコマンドである。当該コマンドはパケット構造をとり、図９（ｄ）のように、セッション情報コマンドであることを示すｃｏｍｍａｎｄＩＤタグ９１２、セッション名称を示すＳｅｓｓｉｏｎＮａｍｅタグ９１３を含む。また、セッションを構成するプロジェクタ数を示すＮｕｍＯｆＰＪタグ９１４、セッションに属するプロジェクタ毎に確保するプロジェクタ情報フィールド９１５（９１６）を含む。また、プロジェクタ情報フィールド９１５（９１６）は、セッションに属するプロジェクタのＩＰアドレスを示すＩＰＡｄｄｒｅｓｓタグ９１７、プロジェクタ名称を示すＰＪＮａｍｅタグ９１８を含む。
【００８７】
Ｓ６１２で、ＧＵＩアプリは、受信したセッション情報コマンドを解析して、セッション名を取得し、図８Ｂ（ｅ）のセッションリストＵＩの表示を更新して、Ｓ６１３に遷移する。Ｓ６１１、Ｓ６１２の処理を繰り返すことで、ネットワーク上に存在するセッションを一覧表示することができる。なお、Ｓ６０３で前述したのと同様に、サブネット外のセッション情報は受信できない。そうした場合のために、当該セッションに属しているプロのＩＰアドレスを直接入力する検索ＵＩを設けても良い。
【００８８】
Ｓ６１３で、ＧＵＩアプリは、ユーザが８１４のラジオボックスを選択し、さらに８１７の確定ボタンが押下されるのを待ち受ける。これにより、参加対象のセッション選択が完了すれば、Ｓ６１４に遷移し、一定時間経っても完了しなければ、Ｓ６１１の処理を繰り返す。
【００８９】
Ｓ６１４で、ＧＵＩアプリは、Ｓ６１３でユーザが選択したセッションを構成するプロジェクタに対して接続処理を実行して、Ｓ６１５に遷移する。これは前述の通信フローＳ５１９、Ｓ５２０で説明したように、プロジェクタと論理的な接続確立を行うことである。なお、セッションを構成するプロジェクタは、Ｓ６１１で受信したセッション情報コマンドにその情報が含まれており、そこから確定できる。
【００９０】
また、前述の通信フローの説明では省略したが、接続処理を実施する際には、Ｓ６０５と同様に、接続確立の直後に、図９（ｂ）に示したＰＣ情報コマンドをプロジェクタに送信する。なお本実施形態では、ＰＣ１００ｂの名称“ＰＣ−Ｂ”がＰＣＮａｍｅタグ９０４に格納される。
【００９１】
Ｓ６１５で、ＧＵＩアプリは、Ｓ６１３でユーザが選択したセッションを構成するプロジェクタ全てとの接続が完了したかどうかをチェックする。すべてのプロジェクタとの接続が完了していれば、Ｓ６０９に遷移し、まだであれば、Ｓ６１４に戻りセッションを構成する次のプロジェクタとの接続処理を実行する。
【００９２】
Ｓ６０９で、ＧＵＩアプリは、図８Ｂ（ｆ）の態様の投射制御ＵＩを表示する。この投射制御ＵＩは、前述のＰＣ１００ａがセッションを作成するシーケンスで表示した図８Ａ（ｄ）と同じものであるが、本シーケンスでは、当該ＵＩは、ＰＣ１００ｂが作成済みのセッションに参加を完了した際のものである。そのため、当該ＧＵＩアプリを起動しているＰＣ自身を表するるＭｙＰＣ表示エリア８１８は、ＰＣ１００ｂの名称である、“ＰＣ−Ｂ”が表示されている。また、自身以外のセッションに接続中のＰＣ一覧を示す接続中ＰＣリスト８１９には、本セッションの作成者である“ＰＣ−Ａ”が表示されている。
【００９３】
ここで、ＧＵＩアプリが８１９の接続中ＰＣリストを構成する方法について説明する。詳細はプロジェクタ側の処理フローで後述するが、セッション化済みのプロジェクタは接続処理においてＰＣ情報コマンドを受信すると、接続中の全てのＰＣに対して、接続ＰＣ情報変化通知コマンドを発行する。これは、発行元のプロジェクタに接続中のＰＣの構成が変化したことを通知するためのコマンドであり、図９（ｅ）に示した構成である。当該コマンドは、接続ＰＣ情報変化通知コマンドであることを示すＣｏｍｍａｎｄＩＤタグ９１９、当該プロジェクタに接続中のＰＣ数を示すｎｕｍＯｆＰＣタグ９２０を含む。さらに接続中のＰＣ毎に確保されるＰＣ情報フィールド９２１（９２２）を含み、ＰＣ情報フィールド９２１（９２２）は、接続中のＰＣ名称を示す、ＰＣＮａｍｅタグ９２３を含む。セッション参加フローにおいて、Ｓ６０９に到達したＧＵＩアプリは、Ｓ６１４において、セッション化済みのプロジェクタに接続処理を実行している。そのため、Ｓ６１４以降のタイミングで、参加したセッションを構成するプロジェクタより、接続ＰＣ情報変化通知コマンドを受信することとなる。このコマンドを受信したＧＵＩアプリは、当該コマンドに含まれる自身以外のＰＣ名称を、ＰＣ情報フィールド９２１（９２２）のＰＣＮａｍｅタグ９２３から取得し、これを接続中ＰＣリスト８１９に表示する。
【００９４】
具体例を挙げると、本処理フローにおいてＰＣ１００ｂは、図９（ｅ）に示したような構成の接続ＰＣ情報変化通知コマンドを、プロジェクタ２００ａとプロジェクタ２００ｂから受信することになる。このうち、ＰＣＮａｍｅタグが自身を示す“ＰＣ−Ｂ”以外のものを、図８Ｂ（ｆ）の８１９の領域に表示することになる。
【００９５】
また、同様の状態がＰＣ１００ａにおいても発生することになり、こちらの場合には、自身以外のＰＣが“ＰＣ−Ａ”となるので、図８Ｂ（ｇ）の８２１のような表示となる。
【００９６】
以上が、ＰＣ上で既存のセッションを参加するフローである。また補足として、他のＰＣ上でセッションに接続中のＰＣ数が変化した場合に、接続中ＰＣリストを更新するフローについて述べた。
【００９７】
続いて、ＰＣ上で自身が参加中のセッションの構成を変更する際のフローを説明する。なおここでは、説明の簡単化のために、図４（ｃ）に記載の状況を具体例として取り上げながら説明を実施する。つまり、ＰＣ１００ｂ上でＧＵＩアプリを制御して、自身の参加中のセッションからプロジェクタ２００ｂを削除する処理フローを説明する。
【００９８】
まず、セッションに参加中のＰＣ１００ｂは図８Ｂ（ｆ）に表示の状態となっている。ここで８２３ボタンを押下することで、セッションの構成を変更する処理フローを開始することができる。セッション構成の変更フローは図６Ｂで示したものであり、以降の説明は当該処理フローに従って実施する。
【００９９】
前述したようにＰＣ１００ｂ上のＧＵＩアプリを制御し、８２３のセッション構成変更ボタンを押下すると、図６ＢのＳ６２０に遷移する。
【０１００】
Ｓ６２０で、ＧＵＩアプリは前述のＳ６０１で表示したものと同様のプロジェクタリストＵＩを表示して、Ｓ６２１に遷移する。
【０１０１】
当該プロジェクタリストＵＩは、ネットワーク上のプロジェクタを一覧することができる。本フローのように、セッションに参加済みのＰＣ上のＧＵＩから表示した場合には、自身が参加しているセッションを構成するプロジェクタのチェックボックスにはチェックが入った状態で表示する。具体例を挙げて説明する。本実施形態では、当該プロジェクタリストを表示させたＰＣ１００ｂは、プロジェクタ２００ａ、プロジェクタ２００ｂで構成されるセッションに参加している。したがって図８Ａ（ｂ）に示した状態のように、プロジェクタ２００ａを示す“Ｐｒｏｊｅｃｏｔｒ  １”と、プロジェクタ２００ｂを示す“Ｐｒｏｊｅｃｔｏｒ  ２”の各チェックボックスがそれぞれチェックされた状態で表示される。
【０１０２】
Ｓ６２１で、ＧＵＩアプリは、前述のＳ６０２と同様に、ネットワーク上のプロジェクタからのプロジェクタ情報コマンドを待ち受け、これを受信した場合には、Ｓ６２２に遷移し、受信しない場合には、Ｓ６２３に遷移する。
【０１０３】
Ｓ６２２の処理は、Ｓ６０３で前述したものと同様である。
【０１０４】
Ｓ６２３で、ＧＵＩアプリは、ユーザがプロジェクタリストＵＩのチェックボックス８０３のチェックの入切及び、８０５確定ボタンの押下によって、セッションを構成するプロジェクタ群が確定するのを待ち受ける。確定を検知するとＳ６２４に遷移し、一定時間経っても確定されない場合には、Ｓ６２１に戻り、処理をプロジェクタリストの更新処理を繰り返す。なお、セッションを構成するすべてのプロジェクタのチェックボックスを外す操作はここで許可しないものとする。この処理はすなわち、セッションの終了処理に相当するため、後述の別ＵＩから実施させるためである。また、不図示であるが、セッション構成の変更を中断する場合には、本プロジェクタリストを閉じればよい。その場合には、ＧＵＩアプリは、再度投影制御ＵＩを表示する。
【０１０５】
ここでの処理をＰＣ１００ｂが、プロジェクタ２００ａとプロジェクタ２００ｂで構成されるセッションからプロジェクタ２００ｂを削除する場合を例にとって説明する。まず、Ｓ６２０で説明した用に、ＰＣ１００ｂがプロジェクタリストを表示した直後は、図８Ａ（ｂ）のように、プロジェクタ２００ａとプロジェクタ２００ｂと接続中であるため、双方のチェックボックスが“入”になっている。ここからユーザが図８Ｂ（ｈ）のように、プロジェクタ２００ｂとの接続を解除するために、チェックボックスを８２４のように“切”状態にする。そして、８０５の確定ボタンを押下することで、ユーザからのセッション構成の変更指示が確定する。また、セッションに所属していないプロジェクタを新規に追加する場合には、図８Ｂ（ｈ）の８２５、８２６のようなセッションに未所属の状態のプロジェクタに対応するチェックボックスを選択して“入”状態にすればよい。
【０１０６】
Ｓ６２４で、ＧＵＩアプリは、Ｓ６２３の処理によってセッションに新たに追加するプロジェクタがあるかどうかを判定する。追加対象のプロジェクタがあれば、Ｓ６２５に遷移し、なければＳ６２７に遷移する。
【０１０７】
Ｓ６２５で、ＧＵＩアプリは、Ｓ６０５、Ｓ６１４で前述した処理と同様にして接続処理を実行して、Ｓ６２６に遷移する。
【０１０８】
Ｓ６２６で、ＧＵＩアプリは、Ｓ６２３でユーザが追加対象としてすべてのプロジェクタと接続処理が完了したかどうかを判定する。すべてのプロジェクタとの接続処理が完了していればＳ６２７に遷移し、まだであれば、Ｓ６２５に戻り、別の追加対象のプロジェクタとの接続処理を実行する。
【０１０９】
Ｓ６２７で、ＧＵＩアプリは、この時点で接続を確立しているすべてのプロジェクタに対してセッション変更要求コマンドを発行して、Ｓ６２８に遷移する。セッション変更要求コマンドは、前述の通信フローＳ５２５、Ｓ５２６で説明したように、ＰＣがセッション構成の変更をする際に、接続中の全てのプロジェクタに送信するコマンドでる。当該コマンドはパケット構造をとり、図９（ｆ）のように、セッション変更要求コマンドであることを示すＣｏｍｍａｎｄＩＤタグ９２４を含む。さらに変更後のセッションに属するプロジェクタ数を示すＮｕｍＯｆＰＪタグ９２５、変更後のセッションに属するプロジェクタ毎に確保するプロジェクタ情報フィールド９２６も含む。またプロジェクタ情報フィールド９２６は、変更後のセッションに属するプロジェクタのＩＰアドレスを示すＩＰＡｄｄｒｅｓｓタグ９２７、プロジェクタ名称を示すＰＪＮａｍｅタグ９２８から構成されている。なお本コマンドの作成方法は、Ｓ６０８でセッション化要求コマンドを作成する場合と同様である。
【０１１０】
具体例を挙げて説明する。本実施では、ＰＣ１００ｂがセッションからプロジェクタ２００ｂを削除する処理を実行したとしている。こうした場合においては、図９（ｆ）に示したように、セッションに残るプロジェクタは２００ａの１台であるので、ＮｕｍＯｆＰＪタグには“１”が格納される。そして、セッションを構成するプロジェクタ２００ａの情報としてＩＰＡｄｄｒｅｓｓタグに“１９２．１６８．１．１０”を、ＰＪＮａｍｅタグに“ＰＣ−Ａ”を格納して、セッション変更要求コマンドを作成する。当該コマンドをこのタイミングＰＣ１００ｂが接続中であるすべてのプロジェクタ、すなわちプロジェクタ２００ａとプロジェクタ２００ｂに対して送信する。
【０１１１】
Ｓ６２８で、ＧＵＩアプリは、Ｓ６２３の処理によってセッションから削除するプロジェクタがあるかどうかを判定する。削除対象のプロジェクタがあれば、Ｓ６２９に遷移し、なければＳ６２８に遷移する。
【０１１２】
Ｓ６２９で、ＧＵＩアプリは、セッションから削除対象のプロジェクタと確立している通信路を切断し、Ｓ６３０へ遷移する。この処理は、セッションに属する個々のプロジェクタとＳ６０５や、Ｓ６１４の処理によって確立した論理的な接続を解消することである。
【０１１３】
Ｓ６３０で、ＧＵＩアプリは、セッションから削除対象としたすべてのプロジェクタと、の通信路の切断処理が完了したかどうかを判定し、完了していれば本処理フロー終了し、そうでなけれＳ６２９の処理を繰り返す。つまり実施形態では、ＰＣ１００ｂがセッションからプロジェクタ２００ｂを削除するので、このプロジェクタとの通信路を切断する。
【０１１４】
本処理フローが完了すると、ＧＵＩアプリは、投射用ＵＩをを再度表示する。ここで、本実施形態でＰＣ１００ｂが、プロジェクタ２００ｂをセッションから削除した後の投射制御ＵＩは図８Ｃ（ｉ）の態様である。これは、前述の処理によって、セッションに属していたプロジェクタ２００ｂを削除した処理に従い、当該プロジェクタに対応したプロジェクタ選択タブ“Ｐｒｏｊｅｃｔｏｒ  ２”も削除したためである。
【０１１５】
以上が、ＰＣ上で自身が参加中のセッション構成を変更するフローである。なお、本実施形態では、セッション構成の変更として、セッションに属しているプロジェクタの削除を例にとったが、セッションに新たなプロジェクタを追加する場合、また追加と削除を同時に実施する場合も、同様の処理フローで実現可能である。
【０１１６】
続いて、ＰＣ上で自身が参加中のセッションの構成が、他のＰＣによって変更された際のフローを説明する。説明の簡単化のために、ここでも図４（ｃ）の状況を具体例として取り上げる。つまり、ＰＣ１００ａが、ＰＣ１００ｂが実行したセッション変更（プロジェクタ２００ｂの削除）を検知して、新しいセッション構成に同期する処理フローを説明する。まず、セッションに参加中のＰＣ１００ａは図８Ｂ（ｇ）に表示の状態となっている。ここで、ＧＵＩアプリは、前述の通信フローＳ５２８、Ｓ５２９、Ｓ５３０で説明したセッション変化通知コマンドの受信を検知すると、図６Ｃ（ａ）の処理フローを開始する。
【０１１７】
Ｓ６３１で、ＧＵＩアプリは、受信したセッション変化通知コマンドを解析し、通知された新しいセッションの構成と、現在の自身が保持しているセッション構成を比較する。そして、新しいセッション構成に一致させるために、追加対象のプロジェクタがあった場合には、Ｓ６３２に進み、なければＳ６３４に遷移する。
【０１１８】
なお、プロジェクタが接続中のＰＣに対して送信する。セッション変化通知コマンドは、図９（ｇ）に示した構成である。本コマンドは、セッション変化通知コマンドであることを示すＣｏｍｍａｎｄＩＤタグ９２９、変更されたセッションを構成するプロジェクタ数を示すｎｕｍＯｆＰＪタグ９３０を含む。さらに変更されたセッションを構成するプロジェクタ毎に確保されるプロジェクタ情報フィールド９３１も含む。ここでプロジェクタ情報フィールドは、各プロジェクタのＩＰアドレスを示すＩＰＡｄｄｒｅｓｓタグ９３２、各プロジェクタの名称を示すＰＪＮａｍｅタグ９３３から構成されている。
【０１１９】
このように、セッション変化通知コマンドには、変化後のセッションを構成するプロジェクタの情報が格納されている。そのため、ＧＵＩアプリはこの情報と、現在自身が接続中のプロジェクタの情報を比較することで、セッションの状態と同期するために、接続すべきプロジェクタ、削除すべきプロジェクタを算出することができる。
【０１２０】
Ｓ６３２で、ＧＵＩアプリは、前記Ｓ６０５、Ｓ６１４、Ｓ６２５と同様の、プロジェクタとの接続処理を実行し、Ｓ６３３へ遷移する。
【０１２１】
Ｓ６３３で、ＧＵＩアプリは、受信したセッション変化通知コマンドの解析より追加対象となっているすべてのプロジェクタと接続が完了したかどうかを判定する。そして、すべてのプロジェクタとの接続処理が完了していればＳ６３４に遷移し、まだであれば、Ｓ６３３に戻り、別の追加対象のプロジェクタとの接続処理を実行する。
【０１２２】
Ｓ６３４で、ＧＵＩアプリは、受信したセッション変更通知コマンド通知に記載された新たなセッション構成と、現在の自分が保持しているセッション構成を比較する。そして、新しいセッション構成に一致させるために、削除対象のプロジェクタがあった場合には、Ｓ６３５に進み、なければＳ６３６に遷移する。
【０１２３】
Ｓ６３５で、ＧＵＩアプリは、前記Ｓ６２９と同様の、プロジェクタとの切断処理を実行し、Ｓ６３６に遷移する。
【０１２４】
Ｓ６３６で、ＧＵＩアプリは、受信したセッション変化通知コマンドの解析より、削除対象としたすべてのプロジェクタとの、切断処理が完了したかどうかを判定し、完了していればＳ６３７に遷移し、そうでなけれＳ６３５の処理を繰り返す。
【０１２５】
具体例で説明すると、本実施形態においては、ＰＣ１００ａがプロジェクタ２００ａ、プロジェクタ２００ｂから受信するセッション変更通知コマンドは、図９（ｇ）に示した内容となる。当該内容は、前述のＳ６２７でＰＣ１００ａがプロジェクタ２００ａ、プロジェクタ２００ｂの双方に対して送信したセッション構成変更コマンドを各プロジェクタが処理し、その結果を各プロジェクタが通知するものである。詳細はプロジェクタ側の処理で記述するが、変更後の各プロジェクタが保持するセッション情報であるため、セッションを構成するプロジェクタ数はプロジェクタ２００ａの１台であり、ｎｕｍＯｆＰＪタグ９３０には“１”格納されている。そして、プロジェクタ２００ａの情報として、ＩＰＡｄｄｒｅｓｓタグ９３２に“１９２．１６８．１．１０”が、ＰＪＮａｍｅタグ９３３に“Ｐｒｏｊｅｃｔｏｒ  １”が格納されている。ＰＣ１００ｂは、このセッション変化通知コマンドと、自身のプロジェクタ接続状況（プロジェクタ２００ａ、プロジェクタ２００ｂと接続中）を比較する。そして通知されたセッション構成に同期するためには、プロジェクタ２００ｂとの通信路を切断する必要があると判断し、これを実行する。
【０１２６】
Ｓ６３７で、ＧＵＩアプリは、上述の処理フローによって、接続したプロジェクタがあれば、そのプロジェクタに対応したプロジェクタ選択タブを表示し、切断したプロジェクタがあれば、そのプロジェクタに対応したプロジェクタ選択タブを消去する。そして本処理フローを終了する。
【０１２７】
ここも具体例で説明すると、上述の処理によりＰＣ１００ｂはプロジェクタ２００ｂとの通信路を切断しており、ＰＣ１００ｂが接続中のプロジェクタは２００ａのみである。よってＰＣ１００ｂのＧＵＩアプリでの投影制御ＵＩは図８Ｃ（ｊ）の状態となる。
【０１２８】
以上が、ＰＣ上で自身が参加中のセッションの構成が、他のＰＣによって変更された際のフローである。
【０１２９】
続いて、ＰＣ上で、自身が参加中のセッションを当該ＰＣが離脱する場合の処理フローを説明する。ここでＰＣがセッションを離脱する処理とは、セッションに参加する処理の対向となる処理であり、セッション自体は継続する。
【０１３０】
なお、説明の簡単化のため、図４（ｂ）の状態から、ＰＣ１００ａがセッションから離脱する場合を例にとって説明する。
【０１３１】
この状態において、ＰＣ１００ａ上のＧＵＩアプリの態様は、前述したように図８Ｂ（ｇ）の状態である。ここで８２９のセッション離脱指示ボタンを押下することで、図６Ｃ（ｂ）のセッションからの離脱処理フローが開始される。
【０１３２】
セッションの離脱フローは、Ｓ６３８、Ｓ６３９で当該ＰＣが接続中のすべてのプロジェクタとの切断処理を実行するものであり、前述のＳ６２９、Ｓ６３０の処理や、Ｓ６３５、Ｓ６３６で説明した内容と同様である。
【０１３３】
最後に、Ｓ６４０にて、ＧＵＩアプリは、当該ＧＵＩアプリの終了処理を実施する。
【０１３４】
具体例で説明すると、図４（ｂ）の状態で、ＰＣ１００ａは、プロジェクタ２００ａとプロジェクタ２００ｂとの接続を確立している。セッションからの離脱処理を実施した場合には、これらの接続中の２台のプロジェクタとの切断処理を実施して、ＧＵＩアプリを終了する。また、当該セッションに残るＰＣ１００ｂにおいては、各プロジェクタから送信される接続ＰＣ情報変化通知に基づき、接続中ＰＣリストを更新する。つまり、ＰＣ１００ａがセッションから離脱する前は、図８Ｂ（ｆ）８１９の態様であった接続中ＰＣリストからＰＣ−Ａの情報を削除し、図８Ｃ（ｋ）８３１の態様に更新する。
【０１３５】
以上が、ＰＣ上で、自身が参加中のセッションを離脱するフローである。また補足として、当該セッションに残る他のＰＣ上で、セッションから離脱したＰＣを検知した場合に、接続中ＰＣリストを更新するフローについて述べた。
【０１３６】
続いて、ＰＣ上で、自身が参加中のセッションを終了させる場合の処理フローを説明する。なおセッションを終了する処理とは、セッションを作成する処理の対向となる処理である。この場合は、セッションを参加するすべてのＰＣとセッションを構成するすべてのプロジェクタとの関係が解消される。
【０１３７】
なお、説明の簡単化のために、図４（ｂ）の状態からＰＣ１００ａがセッションを終了させる場合を例にとって説明する。
【０１３８】
この状態において、ＰＣ１００ａ上のＧＵＩアプリの態様は前述したように図８Ｂ（ｇ）の状態である。ここで８３０のセッション終了指示ボタン押下することで、図６Ｃ（ｃ）のセッション終了フローが開始される。
【０１３９】
まず、Ｓ６４１で、ＧＵＩアプリは自身が接続中のすべてのプロジェクタに対してセッション終了要求コマンドを発行して、Ｓ６４２に遷移する。セッション終了要求コマンドは、図９（ｈ）に示したような構成であり、セッション終了コマンドであることを示すＣｏｍｍａｎｄＩＤ９３４のみから構成されている。詳細はプロジェクタの処理で後述するが、本コマンドをすべてのプロジェクタに送信することで、前述のセッション変更シーケンスと同様のシーケンスを開始することができる。結果として、すべてのプロジェクタがセッション化前の状態に変更される。そして、プロジェクタからの通知経由でセッションの終了を検知した他のＰＣにおいても、全てのプロジェクタとの切断処理が実行されＧＵＩアプリも終了する。
【０１４０】
Ｓ６４２、Ｓ６４３、Ｓ６４４の処理は、前述のセッションからの離脱フローと同様であるため省略する。
【０１４１】
具体例で説明すると、図４（ｂ）の状態で、ＰＣ１００ａがセッションの終了処理を実行した場合には、まずＰＣ１００ａが、セッション終了コマンドを接続中のプロジェクタ２００ａ、プロジェクタ２００ｂに送信する。そしてこれらのプロジェクタと自身の通信路を切断してＧＵＩアプリを終了する。セッション終了コマンドを受信したプロジェクタ２００ａ、プロジェクタ２００ｂは、セッション変更通知コマンド図９（ｇ）をｎｕｍＯｆＰＪタグ９３０に“０”を格納し、そしてプロジェクタ情報フィールド９３１は空欄とする。そして自身と接続中のＰＣであるＰＣ１００ａ、ＰＣ１００ｂに対して送信する。一方、ＰＣ１００ｂは、当該コマンドの受信により、図６Ｃ（ａ）の他のＰＣによるセッション構成の変更フローが開始されることとなる。このフローによって、変更後のセッション構成においてプロジェクタが存在しないこと、すなわちセッションが終了したことを検知できるので、全プロジェクタとの切断処理を実施する。そして全プロジェクタとの通信路が切断したので、ＰＣ１００ｂでも、ＧＵＩアプリを終了する。
【０１４２】
以上が、ＰＣ上で自身が参加中のセッションを終了させるフローである。また補足として、他のＰＣ上でセッションの終了を検知した場合に、ＧＵＩアプリを終了するフローについて述べた。
【０１４３】
次に、プロジェクタ側のフローを図７を用いて説明する。
【０１４４】
図７の各処理フローは、プロジェクタ２００で実行される画面転送処理を実施するプログラムのプロセスとして実行されるフローである。
【０１４５】
最初に、セッション化前のプロジェクタの処理フローを説明する。セッション化前のプロジェクタでは、図７Ａの処理フローが開始される。
【０１４６】
Ｓ７００において、プロジェクタは、前述の通信フローＳ５０２、Ｓ５０３で述べたプロジェクタ情報コマンドをネットワーク上にブロードキャストして、Ｓ７０１に遷移する。当該コマンドは前述のＳ６０２で説明したように、図９（ａ）のようなパケット構成のコマンドであり、当該コマンドの発行元のプロジェクタ情報を格納している。本コマンドの生成方法を詳細に説明する。セッション化前のプロジェクタ２００は、プロジェクタ情報コマンドを生成するために、自身のＲＡＭ２０２もしくはフラッシュメモリ２０３に格納されているＩＰアドレス、及びプロジェクタ名称を取得する。そしてそれぞれの値を、図９（ａ）のＩＰＡｄｒｅｓｓタグ９０１、ＰＪＮａｍｅタグ９０２に格納することで、プロジェクタ情報コマンドを作成する。
【０１４７】
Ｓ７０１で、プロジェクタは、ＰＣからの論理的な接続を確立する要求あるかどうかをチェックする。これがあればＳ７０２に遷移し、一定時間経ってもこれがなけれｂＳ７００の処理を繰り返す。
【０１４８】
Ｓ７０２で、プロジェクタは、Ｓ７０１で接続要求のあったＰＣとの論理的な接続を確立し、Ｓ７０３に遷移する。
【０１４９】
Ｓ７０３で、プロジェクタは、ＰＣから送信される図９（ｂ）のような構成のＰＣ情報コマンドを待ち受け、当該コマンドの受信を検知すると、Ｓ７０４に遷移する。なお、ＰＣが通信路の確立の直後の、ＰＣ情報コマンドを送信するのは、前述のＳ６０５で説明した通りである。
【０１５０】
Ｓ７０４で、プロジェクタは、ＰＣから送信される図９（ｃ）のような構成のセッション作成要求コマンドを待ち受け、当該コマンドの受信を検知すると、Ｓ７０５に遷移する。なお、ＰＣが送信するセッション作成要求コマンドの詳細は、前述のＳ６０８で説明した通りである。
【０１５１】
Ｓ７０５で、プロジェクタは、自身の状態をセッション化済みとする。この際に、Ｓ７０４で受信したセッション作成要求コマンドの内容を、自身が所属するセッション情報としてＲＡＭ２０２に格納する。さらに、Ｓ７０２〜Ｓ７０４の処理を行った際の通信相手であるＰＣをＳ７０３で受信したＰＣ情報と関連付けてＲＡＭ２０２の接続ＰＣリストに追加する。なお接続ＰＣリストとは、当該プロジェクタに接続中のＰＣを管理するためのリストである。Ｓ７０５の後は、次に説明するセッション化後の処理フローが実行される。
【０１５２】
以上がセッション化前のプロジェクタの処理フローである。このようにセッション化前のプロジェクタの処理フローは、Ｓ７０１におけるＰＣからの接続要求をトリガとして処理が進み、ＰＣからの要求が正常に終了すれば当該プロジェクタはセッション化済みとなる。つまり、セッション化前のプロジェクタと接続を確立可能なＰＣは１台に限定される。
【０１５３】
なお、Ｓ７０２で接続を確立したＰＣから一定時間が経ってもＰＣ情報コマンドやセッション作成要求コマンドを受信しなかった場合、当該ＰＣとの間にネットワーク障害が発生したとして、当該ＰＣとの接続を解除し、Ｓ７００に戻るようにしてもよい。またＳ７０２の接続処理の前にパスワード認証が必要な構成を取っても良い。
【０１５４】
続けて、セッション化後のプロジェクタの処理フローを説明する。セッション化後のプロジェクタでは、図７Ｂの処理フローが開始される。
【０１５５】
Ｓ７０６において、プロジェクタは、前述の通信フローＳ５１４、Ｓ５１６で述べたセッション情報コマンドをネットワーク上にブロードキャストして、Ｓ７０７に遷移する。当該コマンドは前述のＳ６１１で説明したように、図９（ｄ）のようなパケット構成のコマンドであり、当該コマンドの発行元もプロジェクタが所属しているセッションの情報が格納されている。当該コマンドの詳細な作成方法を説明する。Ｓ７０５で前述したように、セッション化された際にプロジェクタは、ＲＡＭ２０２上にセッション情報を保持している。これを取得し、ＳｅｓｓｉｏｎＮａｍｅタグ９１３、ｎｕｍＯｆＰＪタグ９１４、プロジェクタ情報フィールド９１５（９１６）に格納することでセッション情報コマンドを作成する。なおＲＡＭ２０２上に保持ししているセッション情報は、後述するセッション変更コマンド受信時にも書きかえる値である。
【０１５６】
Ｓ７０７で、プロジェクタは、ＰＣからセッション変更要求コマンドを受信していないかをチェックする。受信があればＳ７０８に遷移し、なければＳ７１０に遷移する。
【０１５７】
Ｓ７０８で、プロジェクタは、Ｓ７０７で受信したセッション変更要求コマンドに従って、自身の所属するセッション情報を変更し、Ｓ７０９に遷移する。この処理を詳細に説明する。セッション変更要求コマンドは、前述のＳ６２７で説明した通り、ＰＣが自身の参加中のセッションを構成するプロジェクタを変更する場合に、自身が接続中の全てのプロジェクタに対して送信するコマンドである。当該コマンドは、図９（ｆ）のような構成であり、変更後のセッションを構成するプロジェクタ数および、変更後のセッションを構成する各プロジェクタの情報が格納されている。プロジェクタはこれらの情報で、Ｓ７０５でＲＡＭ２０２に格納したセッション情報を更新する。
【０１５８】
Ｓ７０９で、プロジェクタは、セッション変化通知コマンドを作成し、これを自身に接続中のすべてのＰＣに対して送信して、Ｓ７１０に遷移する。セッション変化通知コマンドはＳ６３１で前述したように、図９（ｇ）の構成のコマンドである。本コマンドは、Ｓ７０８でＲＡＭ２０２上に格納した更新後のセッション情報を読み出し、ｎｕｍＯｆＰＪタグ９３０、プロジェクタ情報フィールド９３１に格納することで作成する。
【０１５９】
Ｓ７１０で、プロジェクタは、ＰＣからセッション終了要求コマンドを受信していなかをチェックする。受信していればＳ７１１に遷移し、なければＳ７１２に遷移する。なお、セッション終了要求コマンドとは、Ｓ６４１で前述した図９（ｈ）の構成のパケットである。
【０１６０】
Ｓ７１１で、プロジェクタは、セッション終了を接続中のＰＣに通知するためのセッション変化通知コマンドを作成し、これを接続中のすべてのＰＣに送信して、Ｓ７１２に遷移する。ここで作成するセッション変化通知コマンドは、前記ＰＣ上でのセッション終了処理フローでも述べたが、図９（ｇ）のセッション変更通知コマンドのｎｕｍＯｆＰＪタグを“０”に、そしてプロジェクタ情報フィールドが無いコマンド構成である。当該コマンドをすべてのＰＣに送信することで、各ＰＣ側でセッションの終了を検知することが可能となる。
【０１６１】
Ｓ７１２で、プロジェクタは、自身に接続中の全てのＰＣとの論理的接続を解消し、本処理フローを終了する。つまり自身をセッション化前の状態へと遷移させる。よってその後は、図７Ａのセッション化前の処理フローを開始する。
【０１６２】
Ｓ７１３で、プロジェクタは、前述のＳ７０２と同様にＰＣからの論理的な接続を確立する要求があるかどうかをチェックし、これがあればＳ７１４へ、なければＳ７１７へ遷移する。
【０１６３】
Ｓ７１４、Ｓ７１５の処理は、それぞれ前述のＳ７０３、Ｓ７０４の処理と同様であるため省略する。
【０１６４】
Ｓ７１６で、プロジェクタは、接続中のＰＣから論理的な接続を解消する要求があるかをチェックし、あればＳ７１７へ、なければＳ７１８へ遷移する。
【０１６５】
Ｓ７１７で、プロジェクタは、Ｓ７１６にて接続の解消を要求したＰＣとの接続を解消し、Ｓ７０５で前述したＲＡＭ２０２にある接続ＰＣリストから当該ＰＣの情報を削除する。そしてＳ７１８に遷移する。
【０１６６】
Ｓ７１８で、プロジェクタは、ＲＡＭ２０２の接続ＰＣリストをチェックし、自身に接続中のＰＣ数をチェックする。そして接続中のＰＣがなければ、本処理フローを終了する。なお、このフローを通る場合は、自身に接続中のすべてのＰＣが、前述したセッションの離脱フローを実行した場合である。一方、接続中のＰＣがあれば、Ｓ７１９に遷移する。
【０１６７】
Ｓ７１９で、プロジェクタは、Ｓ７１４、Ｓ７１６のＰＣからの接続、切断要求によって、自身に接続中のＰＣの構成が、Ｓ７１３時点から変化したかどうかをチェックする。変化があればＳ７２０に遷移し、なければＳ７２１に遷移する。
【０１６８】
Ｓ７２０で、プロジェクタは、前記Ｓ６１４で説明した接続ＰＣ情報変化通知コマンドを、自身に接続中のすべてのＰＣに対して送信し、Ｓ７２１に遷移する。当該コマンドは、図９（ｅ）に示した構成であり、当該コマンドをＰＣが受信することで、各ＰＣは自身が参加中のセッションに所属している他のＰＣの情報を知ることができる。また、当該コマンドの生成方法は、ＲＡＭ２０２に保持している接続ＰＣリストを取得し、図９（ｅ）のｎｕｍＯｆＰＣタグ９２０に現在接続中のＰＣ数を格納し、ＰＣ情報フィールド９２１（９２２）に各ＰＣ毎の情報を格納することである。
【０１６９】
Ｓ７２１で、プロジェクタは、自身に接続中のＰＣからの映像データを、受信、デコード、投射する画面転送処理に一般的なプロセスを実行する。本プロセスは、後述の実施形態２で説明する。
【０１７０】
以上のようにすれば、各種情報（セッション情報、接続ＰＣ情報）の情報を、セッションを構成するプロジェクタ経由で、セッションに属するすべてのＰＣが取得可能となる。したがって、１台以上のＰＣと１台以上のプロジェクタ間で構成される画面転送ネットワークにおいて、ＰＣ間、もしくはプロジェクタ間で通信を実施することなく、セッション情報を管理することが可能となる。
【０１７１】
＜第２の実施形態＞
本実施形態では、第１の実施形態で説明した方法によって、セッションを構成したＰＣとプロジェクタが、図３に示したような自由なレイアウトでの表示を実現する方法について説明する。
【０１７２】
説明の簡単化のために、既に図４（ｂ）の状況、すなわち、ＰＣ１００ａとＰＣ１００ｂがプロジェクタ２００ａ、プロジェクタ２００ｂで構成されるセッションに参加済みの状況を例にとって説明する。また、第１の実施形態で述べたようにこの状況において、ＰＣ１００ａ上のＧＵＩアプリは、図８Ｂ（ｇ）の態様であり、ＰＣ１００ｂ上のＧＵＩアプリは図８Ｂ（ｆ）の態様である。また、本実施形態においてプロジェクタ２００ａ、プロジェクタ２００ｂに解像度は双方とも（１９２０×１２００）であるとして以降の説明を実施する。
【０１７３】
まず、図１０を用いて、ユーザがＧＵＩアプリを操作することで、セッションを構成する各プロジェクタに対してどのようにして図３に示したようなレイアウト投射を指示するのかを説明する。
【０１７４】
まず、第一の例として、ＰＣ１００ａ上のＧＵＩを制御してプロジェクタ２００ａに対して、ＰＣ１００ａの１画面レイアウト投射を指示する方法を説明する。
【０１７５】
図１０（ａ）がＰＣ１００ａ上のＧＵＩアプリである。
【０１７６】
ユーザは、制御対象のプロジェクタとしてプロジェクタ２００ａを選択するため、これを示す制御プロジェクタ選択タブ１０００を選択する。このようにした時に、ＧＵＩアプリは、投射レイアウト設定領域８１２は接続中の各プロジェクタに対応付けて更新する。
【０１７７】
そして、ユーザは、本ＧＵＩアプリのＭｙＰＣ表示エリアのＰＣアイコンを１００１に示したように、投射レイアウト設定領域８１２にドラッグ＆ドロップする。当該操作をＧＵＩアプリが検知すると、投射レイアウト設定領域８１２に、ＰＣ１００ａを示すアイコンを表示させることで１００２のように表示更新する。さらに１００３のように、ＰＣ１００ａを示す領域がすでにレイアウト済であることを明示するために、これをグレーアウト表示に更新する。
【０１７８】
その後、ユーザが、投射開始ボタン１００４を押下すると、これを検知したＧＵＩアプリが、プロジェクタ２００ａに対して、当該レイアウト設定での投射開始を指示する。
【０１７９】
第二の例として、ＰＣ１００ｂ上のＧＵＩを制御してプロジェクタ２００ｂに対して、ＰＣ１００ａとＰＣ１００ｂの２画面レイアウト投射を指示する方法を具体例として説明する。
【０１８０】
図１０（ａ）がＰＣ２００ａ上のＧＵＩアプリである。
【０１８１】
ユーザは、制御対象のプロジェクタとしてプロジェクタ２００ｂを選択するためこれを示す制御プロジェクタ選択タブ１００６を選択する。
【０１８２】
そして、上記と同様にユーザは、１００７で示したように、ＭｙＰＣ表示領域から自身（ＰＣ１００ｂ）を示すＰＣアイコン及び、接続中ＰＣリストの中からＰＣ１００ａを示すＰＣアイコンを、投射レイアウト設定領域にドラッグ＆ドロップする。当該操作をＧＵＩアプリが検知すると、投射レイアウト設定領域に、ＰＣ１００ａとＰＣ１００ｂの各ＰＣアイコンを表示させることで、１００８のように表示更新する。ここでも上記と同様にに各ＰＣアイコンの領域はグレーアウトしすでにレイアウト済であることを明示する。そして、上記と同様にゆーざが、投射開始ボタンを押下することで、プロジェクタ２００ｂに対して当該レアウト設定での投射開始を指示する。
【０１８３】
また、投射レイアウト設定領域に配置されたＰＣアイコンを当該領域から外すようにドラッグ＆ドロップすることで、当該ＰＣアイコンをもとのＭｙＰＣ表示エリアや、ＰＣリスト領域に戻すことができる。
【０１８４】
また、投射レイアウト設定領域に配置されたＰＣアイコンの位置を相互に入れ替えることで投射位置を変更することも可能である。
【０１８５】
また、投射開始後に、投射停止ボタン１００５を押下することで、プロジェクタに対して、当該レイアウト設定での投射を停止し、前面をクリアする指示を行うことができる。
【０１８６】
また、セッションに参加中のＰＣが２台以上であれば、そのＰＣを示すＰＣアイコンをさらに投射レイアウト設定領域にドラッグ＆ドロップすることで、２画面レイアウト表示以外も指示可能である。また、本実施形態では、ドラッグ＆ドロップした時点で領域を等間隔に分割するとしたが、これを可変に設定可能なようにＧＵＩを構成することも可能である。
【０１８７】
続けて、当該投射制御ＵＩを表示中のＰＣアプリが実行する処理フローを、図１１のＡを用いて説明する。
【０１８８】
Ｓ１１００で、ＧＵＩアプリは、投射制御ＵＩにおいて投射開始ボタン１００４、または投射停止ボタン１００５が押下されたかどうかをチェックする。押下を検知した場合にはＳ１１０１へ、そうでなければ、Ｓ１１０２へ遷移する。
【０１８９】
Ｓ１１０１で、ＧＵＩアプリは、自身の投射レイアウト領域にユーザが設定したレイアウトの情報を取得し、これを図１２（ａ）に示した投射レイアウト設定コマンドに変換して、当該レイアウト領域に対応付いたプロジェクタに送信する。そして、本処理フローを終了し、再度本処理フローが開始される。投射レイアウト設定コマンドは、図１２（ａ）に示したパケット構成をとる。投射レイアウト設定コマンドであることを示すＣｏｍｍａｎｄＩＤタグ１２００、レイアウトしたＰＣ数を示すｎｕｍＯｆＰＣタグ１２０１、そしてＰＣ毎に割り当てた領域を示すＰＣ領域フィールド１２０２を含む。そしてＰＣ領域フィールド１２０２は、当該領域に映像を表示するＰＣを示すＰＣＮａｍｅタグ１２０３、当該表示領域のプロジェクタ座標系における表示位置を示す、Ｄｉｓｐ＿Ｘタグ１２０４、Ｄｉｓｐ＿Ｙタグ１２０５、Ｄｉｓｐ＿Ｗタグ１２０６、Ｄｉｓｐ＿Ｈタグ１２０７を含む。
【０１９０】
レイアウト設定コマンドの作成方法について詳細に説明する。ここで前提とてセッションに参加中のＰＣは、セッションを構成する全てのプロジェクタの解像度を既に知っているものとする。不図示のプロジェクタ解像度を取得するコマンドによって、接続中のプロジェクタに問い合わせることで実現してもよいし、また、図９（ａ）に記載のプロジェクタ情報コマンドに解像度情報を付加することで実現してもよい。
【０１９１】
ＧＵＩアプリは、投射対象のプロジェクタ解像度の幅と高さを、自身の投射レイアウト領域にユーザがレイアウトしたＰＣアイコンの数から等分に分割することで、各ＰＣ毎に割り当てる領域サイズを決定する。図１０（ｄ）の状況を例にとると、ＰＣ１００ｂはプロジェクタ２００ｂの解像度（１９２０×１２００）を保持しており、ユーザが２台のＰＣの左右への分割レイアウトを指示したことを検知している。これらの情報から、ＰＣ１００ａの映像を、プロジェクタ座標系において（０、０）から幅９６０、高さ６００の領域にレイアウトすること、そしてＰＣ２００ｂの映像を、（９６０、０）から幅９６０、高さ６００の領域に投射することを計算する。この結果を投射レイアウト設定コマンドの各タグに配置した結果が図９（ａ）である。
【０１９２】
また、投射停止ボタン押下時には、当該レイアウト設定コマンドを、ｎｕｍＯｆＰＣタグに“０”をいれ、ＰＣ領域フィールド無しで構成する。
【０１９３】
Ｓ１１０２で、ＧＵＩアプリは、接続中のプロジェクタからレイアウト更新通知コマンドを受信したかどうかをチェックする。受信していれば、Ｓ１１０３へ、受信していなければ本処理フローを終了し、再度本処理フローが開始されることになる。なお、レイアウト更新通知コマンドは、図１２（ｂ）の態様のコマンドであり、プロジェクタが接続中のＰＣに対して、自身に対する投影レイアウト設定が変更されたことを通知するコマンドである。つまり、Ｓ１１０１で、ＰＣが送信したコマンド構成とＣｏｍｍａｎｄＩＤタグ１２０８のみが異なる構成であり、ＰＣから受信した設定コマンドを、自身に接続中のすべてのＰＣに知らせる効果をもつ。
【０１９４】
Ｓ１１０３で、ＧＵＩアプリは、Ｓ１１０２にて受信したレイアウト更新通知コマンドを解析し、当該コマンドの送信元のプロジェクタに対して、後述のＳ１１０８の処理により、当該ＰＣ自身が映像データ送信を送信中であるかをチェックする。送信中であればＳ１１０４へ、そうでなければ、Ｓ１１０５に遷移する。
【０１９５】
Ｓ１１０４で、ＧＵＩアプリは、映像データの送信を停止し、プロジェクタへの自身の画面の投影を停止する。Ｓ１１０３、Ｓ１１０４の処理は、すなわち、自身以外のＰＣアプリから発行された投射レイアウト設定コマンドによって、自身が投影中のプロジェクタのレイアウトが更新されたために、一旦送信を停止する処理である。
【０１９６】
Ｓ１１０５で、ＧＵＩアプリは、Ｓ１１０２にて受信した、レイアウト更新通知コマンドを解析し、当該コマンドの送信元のプロジェクタに対して、自身が映像データの送信を実施する必要があるかどうかをチェックする。送信の必要あれば、Ｓ１１０８に、送信の必要がなければ処理を終了し、再度本フローを開始する。当該チェックは図１２（ｂ）のＰＣＮａｍｅタグに自身のＰＣ名称が含まれているかどうかで判断する。
【０１９７】
Ｓ１１０６で、ＧＵＩアプリは、Ｓ１１０２にて受信したレイアウト更新通知コマンドの発行元であるプロジェクタに対して、映像送信処理プロセスを開始する。映像送信処理プロセスにおいては、当該レイアウト更新通知コマンドにおける自身のＰＣ名称が含まれるＰＣ領域フィールドの内容に従って、送信する映像データのリサイズ、エンコード処理を実行し、そのデータをプロジェクタに送信する。また、映像送信処理プロセスを停止するトリガは、Ｓ１１０４である。
【０１９８】
続いて、セッションに所属中のプロジェクタが前述の図７ＢのＳ７２１にて実行する投射プロセスを図１１のＢを用いて説明する。
【０１９９】
Ｓ１１０７において、プロジェクタは、ＰＣからの映像データの受信があるかどうかを判定する、あればＳ１１０３へなければＳ１１０８へ遷移する。
【０２００】
Ｓ１１０８で、プロジェクタは、投射レイアウト設定要求コマンドの受信をチェックする。受信があれば本コマンドの内容を投射レイアウト設定として保持し、Ｓ１１０９へ遷移する。なければ本処理を終了する。ここでの投射レイアウト設定要求コマンドの受信は、第４の受信手段による受信の一例である。
【０２０１】
Ｓ１１０９で、プロジェクタは、自身が投影表示中の映像データの表示をクリアしＳ１１１０へ遷移する。
【０２０２】
Ｓ１１１０で、プロジェクタは、図１２（ｂ）に記載の投射レイアウト変更通知コマンドを自身に接続中のすべてのＰＣに対して送信し、本処理を修了する。
【０２０３】
Ｓ１１１１で、プロジェクタは、Ｓ１１１０にて受信した映像データの送信元が、Ｓ１１０８で保存した、投射レイアウト設定にのＰＣＮａｍｅタグに対応付いたＰＣであるかをチェックする。これがそうでなければ、映像データを読み捨てて本処理を修了する。そうであれば、Ｓ１１１２にて、映像データのエンコード処理および、投影表示処理を実行し、本処理を終了する。
【０２０４】
＜他の実施形態＞
本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2014127915.tif 000003
【図２】
2014127915.tif 000004
【図３】
2014127915.tif 000005
【図４】
2014127915.tif 000006
【図５】
2014127915.tif 000007
【図６Ａ】
2014127915.tif 000008
【図６Ｂ】
2014127915.tif 000009
【図６Ｃ】
2014127915.tif 000010
【図７】
2014127915.tif 000011
【図８Ａ】
2014127915.tif 000012
【図８Ｂ】
2014127915.tif 000013
【図８Ｃ】
2014127915.tif 000014
【図９】
2014127915.tif 000015
【図１０】
2014127915.tif 000016
【図１１】
2014127915.tif 000017
【図１２】
2014127915.tif 000018