(57)【特許請求の範囲】
【請求項１】
通信装置であって、
前記通信装置と、前記通信装置と第１の周波数チャネルを利用して通信する相手装置と、の各々が、前記第１の周波数チャネルから第２の周波数チャネルに変更する期間のある所定のモードで動作しているかを判定する判定手段と、
（１）前記判定手段により前記通信装置と前記相手装置とのいずれもが前記所定のモードで動作していないと判定された場合、前記相手装置から受信したデータを記憶するバッファのサイズが第１のサイズとなるように制御し、（２）前記判定手段により前記通信装置と前記相手装置との少なくともいずれかが前記所定のモードで動作していると判定された場合、前記バッファのサイズが前記第１のサイズよりも大きい第２のサイズとなるように制御する、制御手段と、
を有することを特徴とする通信装置。
【請求項２】
前記第２のサイズは前記期間の長さに応じたサイズであることを特徴とする請求項１に記載の通信装置。
【請求項３】
前記所定のモードは、IEEE802.11シリーズに準拠したOBSS（Overlapping Basic Service Set）スキャンを行うモードであることを特徴とする請求項１又は２に記載の通信装置。
【請求項４】
前記所定のモードは、Wi−Fi  Direct規格に準拠したOpportunistic Power Saveを行うモードであることを特徴とする請求項１又は２に記載の通信装置。
【請求項５】
前記所定のモードは、Channel SwitchをサポートしたTDLS通信を行うモードであることを特徴とする請求項１又は２に記載の通信装置。
【請求項６】
前記相手装置は、映像ストリーミングを送信するSourceであり、
前記通信装置は、前記映像ストリーミングを受信するSinkであり、
前記制御手段は、前記判定手段による判定結果に基づいて、前記映像ストリーミングを記憶する前記バッファのサイズを制御することを特徴とする請求項１から５のいずれか１項に記載の通信装置。
【請求項７】
第１の周波数チャネルを利用して通信する相手装置から受信したデータを記憶するバッファを有する通信装置の制御方法であって、
前記通信装置と前記相手装置との各々が、前記第１の周波数チャネルから第２の周波数チャネルに変更する期間のある所定のモードで動作しているかを判定する判定工程と、
（１）前記判定工程において前記通信装置と前記相手装置とのいずれもが前記所定のモードで動作していないと判定された場合、前記バッファのサイズが第１のサイズとなるように制御し、（２）前記判定工程において前記通信装置と前記相手装置との少なくともいずれかが前記所定のモードで動作していると判定された場合、前記バッファのサイズが前記第１のサイズよりも大きい第２のサイズとなるように制御する、制御工程と、
を有することを特徴とする制御方法。
【請求項８】
コンピュータを請求項１から６のいずれか１項に記載の通信装置として動作させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置におけるデータ受信制御技術に関する。
【背景技術】
【０００２】
近年、ＩＥＥＥ８０２．１１に代表される無線ＬＡＮシステムが広く利用されている。無線ＬＡＮでは、アクセスポイント（ＡＰ）と呼ばれる基地局と、ＡＰが送出した電波の到達可能範囲内に存在し、無線接続状態のステーション（ＳＴＡ）と呼ばれる端末局とが接続を確立して無線ネットワークを確立し、無線通信を行う。
【０００３】
このような無線ＬＡＮは、映像などのストリーミングに用いることができ、無線ＬＡＮを利用した映像の無線ダイレクトストリーミング通信規格として、Ｗｉ−Ｆｉ  ＤｉｓｐｌａｙがＷｉ−Ｆｉ  Ａｌｌｉａｎｃｅによって規格化されている。なお、Ｗｉ−Ｆｉ  Ｄｉｓｐｌａｙでは、映像ストリーミングを送信する側の装置はＳｏｕｒｃｅと呼ばれ、映像ストリーミングを受信する側の装置はＳｉｎｋと呼ばれる。Ｗｉ−Ｆｉ  Ｄｉｓｐｌａｙによる映像ストリーミングは、主にＳｏｕｒｃｅ側で表示されている画面と、同じ画面をＳｉｎｋ側に表示する、すなわちミラーリングするために用いられる。
【０００４】
Ｗｉ−Ｆｉ  Ｄｉｓｐｌａｙでは、無線リンクレイヤ接続にＷｉ−Ｆｉ  ＤｉｒｅｃｔまたはＴＤＬＳのいずれかが使用される。Ｗｉ−Ｆｉ  Ｄｉｒｅｃｔが使用される場合、ＳｏｕｒｃｅとＳｉｎｋとのうちのいずれかが、基地局として動作するＰ２Ｐ  Ｇｒｏｕｐ  Ｏｗｎｅｒ（ＧＯ）となり、他方が端末局として動作するＰ２Ｐ  Ｃｌｉｅｎｔ（Ｃｌｉｅｎｔ）となる。そして、ＳｏｕｒｃｅとＳｉｎｋとの間で、直接、映像ストリーミングが送受信される。一方、ＴＤＬＳが使用される場合には、ＳｏｕｒｃｅとＳｉｎｋとがダイレクトリンクを確立することにより、ＡＰを介さずに映像ストリーミングを送受信することができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−０７１７３０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
無線ＬＡＮでは、様々な要因により、参加している無線ネットワークが使用中の周波数チャネルと異なる周波数チャネルに一時的に移動することがある。例えば、ＳＴＡは、自身が参加している無線ネットワークと異なる無線ネットワークを探索するために、他の周波数チャネルをスキャンすることがある。また、異なる周波数チャネルの複数の無線ネットワークに同時に参加するために、時分割で周波数チャネルを切り替えて動作することが可能な無線ＬＡＮの通信装置も存在する。
【０００７】
無線ＬＡＮの通信装置は、参加している無線ネットワークで使用中の周波数チャネルと異なる周波数チャネルへ一時的に移動した場合、移動している期間、参加している無線ネットワークとの間でデータを送受信することができない。このため、Ｗｉ−Ｆｉ  Ｄｉｒｅｃｔなどによるストリーミングデータの送受信中に、周波数チャネルを移動した場合には、その期間、送信側と受信側との間でデータを送受信することができないこととなるという課題があった。この結果、データの受信側の装置が、再生時にその再生の対象のデータを有さず、再生が失敗する場合がありえた。同様に、データの受信側の装置は、データを使用すべき時にその使用すべきデータを有していない（受信していない）という場合がありえた。
【０００８】
本発明は上記課題に鑑みなされたものであり、通信中に、周波数チャネルを移った場合であっても、通信装置が、使用すべきデータを有していない状態となる可能性を低減させることを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するため、本発明による通信装置は、前記通信装置と、前記通信装置と第１の周波数チャネルを利用して通信する相手装置と、の各々が、前記第１の周波数チャネルから第２の周波数チャネルに変更する期間のある所定のモードで動作しているかを判定する判定手段と、（１）前記判定手段により前記通信装置と前記相手装置とのいずれもが前記所定のモードで動作していないと判定された場合、前記相手装置から受信したデータを記憶するバッファのサイズが第１のサイズとなるように制御し、（２）前記判定手段により前記通信装置と前記相手装置との少なくともいずれかが前記所定のモードで動作していると判定された場合、前記バッファのサイズが前記第１のサイズよりも大きい第２のサイズとなるように制御する、制御手段と、を有する。
【発明の効果】
【００１０】
本発明によれば、通信中に、周波数チャネルを移った場合であっても、通信装置が、使用すべきデータを有していない状態となる可能性を低減させることができる。
【図面の簡単な説明】
【００１１】
【図１】通信装置のハードウェア構成例を示す図。
【図２】通信装置の機能構成例を示す図。
【図３】処理例１における無線通信システムの構成例を示す図。
【図４】処理例１に係る処理の流れを示すシーケンス図。
【図５】処理例１に係るバッファサイズ制御処理の流れの例を示すフローチャート。
【図６】ＯＢＳＳ  Ｓｃａｎ  Ｐａｒａｍｅｔｅｒｓ  ＩＥの構成例を示す図。
【図７】処理例２における無線通信システムの構成例を示す図。
【図８】処理例２に係る処理の流れを示すシーケンス図。
【図９】処理例２に係るバッファサイズ制御処理の流れの例を示すフローチャート。
【図１０】処理例３における無線通信システムの構成例を示す図。
【図１１】処理例３に係る処理の流れを示すシーケンス図。
【図１２】処理例３に係るバッファサイズ制御処理の流れの例を示すフローチャート。
【図１３】Ｐ２Ｐ  ｉＥの構成例を示す図。
【図１４】処理例４における無線通信システムの構成例を示す図。
【図１５】処理例４に係る処理の流れを示すシーケンス図。
【図１６】処理例４に係るバッファサイズ制御処理の流れの例を示すフローチャート。
【図１７】Ｃｈａｎｎｅｌ  Ｓｗｉｔｃｈ  Ｔｉｍｉｎｇ  ｅｌｅｍｅｎｔの構成例を示す図。
【発明を実施するための形態】
【００１２】
以下、添付図面を参照して本発明の実施の形態を詳細に説明する。なお、以下では、ＩＥＥＥ８０２．１１規格シリーズに準拠する無線ＬＡＮにおいて、Ｗｉ−Ｆｉ  Ｄｉｓｐｌａｙ規格に準拠する映像ストリーミングが用いられる場合について説明する。ただし、以下の実施形態は一例を示すものであって、本発明はこれに限られず、他の同様のシステムが用いられる場合にも適用可能である。すなわち、通信装置が、相手装置との間で無線接続を確立し、通信装置自身と相手装置との少なくともいずれかにおいて、通信中に使用している周波数チャネルを変更する可能性がある無線通信システムにおいて、以下の議論を適用することができる。
【００１３】
上述のように、ストリーミングなどが行われている際に、通信装置と相手装置との少なくともいずれかにおいて、通信中に使用している周波数チャネルを変更する場合、このストリーミングデータの送受信を行うことができなくなってしまう場合がありうる。これに対して、複数のインタフェース（例えば、無線ＬＡＮとＵＷＢ（Ｕｌｔｒａ  Ｗｉｄｅ  Ｂａｎｄ））で映像ストリームを受信し、遅延が大きい方の受信インタフェースに合わせてストリーミングを再生することが考えられる。この手法においては、一方のインタフェースでの通信にエラーが発生した場合に、他方のインタフェースで受信された映像が表示される。これにより、通信のエラーが発生したことにより映像の再生が途切れることを抑制することができる。しかしながら、この手法では、通信装置が複数のインタフェースを有していることが必須である。また、通信装置が、妨害波を検知し、妨害波を検知した場合には映像データを低ビットレートで伝送し、受信側バッファの蓄積量がフルになったタイミングで、妨害波の少ないチャネルを探索するためのスキャンを実行することが考えられる。これにより、スキャン中の映像の乱れを抑制することができる。しかしながら、この手法では、妨害波がない状況において自装置又は相手装置が周波数チャネルを移ることについては想定されていない。
【００１４】
本実施形態に係る通信装置は、相手装置からデータを受信して一時的に保持するバッファを有し、通信装置自身と相手装置との少なくともいずれかが、通信中に、使用している周波数チャネルを変更する可能性がある状態であるかを判定する。そして、通信装置は、その判定結果に応じて、バッファで保持するデータの量を制御する。例えば、通信装置は、自身と相手装置との少なくともいずれかが他の周波数チャネルへ移る可能性がある状態にある場合は、バッファで保持するデータの量を大きくする。バッファで保持するデータの量は、例えば、通信装置と相手装置との少なくともいずれかが通信中に使用する周波数チャネルを変更すると予想される期間の長さに応じた量に設定される。すなわち、通信装置と相手装置との少なくともいずれかが通信中に使用する周波数チャネルを変更すると予想される期間が長いほど、データを送受信できない期間が長くなるため、それに応じて、バッファで保持するデータ量を大きくしうる。
【００１５】
以下では、通信装置の構成例を説明した後に、いくつかの無線通信システムの構成に応じた動作の例について説明する。なお、以下では、通信装置は、Ｗｉ−Ｆｉ  ＤｉｒｅｃｔのＳｉｎｋ（受信側の通信装置）として動作し、Ｓｏｕｒｃｅである相手装置からのストリーミングデータを受信するものとする。ただし、通信装置は、必ずしもＷｉ−Ｆｉ  ＤｉｒｅｔのＳｉｎｋでなければならないわけではなく、相手装置から任意のデータを受信する通信装置でありうる。
【００１６】
（通信装置の構成）
図１に、本実施形態に係る通信装置のハードウェア構成例を示す。通信装置は、一例において、記憶部１０１、制御部１０２、機能部１０３、入力部１０４、出力部１０５及び通信部１０６を有する。
【００１７】
記憶部１０１はＲＯＭ、ＲＡＭの両方、もしくは、いずれか一方により構成され、後述する各種動作を行うためのプログラムや、無線通信のための通信パラメータ等の各種情報を記憶する。なお、記憶部１０１として、ＲＯＭ、ＲＡＭ等のメモリの他に、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＤＶＤなどの記憶媒体を用いてもよい。
【００１８】
制御部１０２はＣＰＵ、または、ＭＰＵにより構成され、記憶部１０１に記憶されたプログラムを実行することにより通信装置全体を制御する。なお、制御部１０２は、記憶部１０１に記憶されたプログラムとＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）との協働により通信装置全体を制御するようにしてもよい。
【００１９】
また、制御部１０２は、機能部１０３を制御して、画像表示、投影等の所定の処理を実行する。機能部１０３は、通信装置が所定の処理を実行するためのハードウェアである。例えば、通信装置がプロジェクタである場合、機能部１０３は投影部であり、投影処理を行う。機能部１０３が処理するデータは、記憶部１０１に記憶されているデータであってもよいし、後述する通信部１０６を介して通信の相手装置と通信したデータであってもよい。
【００２０】
入力部１０４は、ユーザからの各種操作の受付を行う。出力部１０５は、ユーザに対して各種出力を行う。ここで、出力部１０５による出力とは、画面上への表示や、スピーカーによる音声出力、振動出力等の少なくとも１つを含む。なお、タッチパネルのように入力部１０４と出力部１０５の両方を１つのモジュールで実現するようにしてもよい。
【００２１】
通信部１０６は、ＩＥＥＥ８０２．１１規格シリーズに準拠した無線通信の制御や、ＩＰ通信の制御、また、Ｗｉ−Ｆｉ  Ｄｉｓｐｌａｙに関する制御を行う。また、通信部１０６はアンテナ１０７を制御して、無線通信のための無線信号の送受信を行う。通信装置は、通信部１０６を介して、画像データや文書データ、映像データ等のコンテンツを相手装置と通信する。
【００２２】
図２に、本実施形態に係る通信装置の機能構成例を示す。通信装置は、その機能構成として、例えば、無線ＬＡＮ制御部２０１、バッファリング制御部２０２、ストリーミング受信制御部２０３、チャネル移動検出部２０４、バッファサイズ制御部２０５、及び表示部２０６を有する。
【００２３】
無線ＬＡＮ制御部２０１は、他の無線ＬＡＮ装置（相手装置）との間で無線信号の送受信を行う機能を有し、例えば、その機能を実現するためのアンテナ及びハードウェア、更にそれらを制御するプログラムを含んで構成される。バッファリング制御部２０２は、無線ＬＡＮ制御部２０１によって受信されたデータのうち、例えば、映像フレームを一時的に保持（バッファリング）する。バッファリング制御部２０２は、例えば、メモリなどのハードウェアおよび、それらを制御するプログラムを含んで構成される。なお、バッファリング制御部２０２が保持するデータは、必ずしも映像フレームでなくてもよく、音声ストリーミングデータや、通信装置が使用する他のデータであってもよい。すなわち、バッファリング制御部２０２は、通信装置が継続的に相手装置からデータを受信する場合に、そのデータを保持し、保持するデータの種別は限定されない。ストリーミング受信制御部２０３は、バッファリング制御部２０２から映像フレームを受信し、デコードする処理を行う機能を有し、その機能を実現するためのハードウェア、およびプログラムを含んで構成される。
【００２４】
チャネル移動検出部２０４は、相手装置がチャネル移動する可能性があるか否かを検出する。チャネル移動検出部２０４は、例えば、その機能を実現するためのプログラムを含んで構成される。チャネル移動検出部２０４の詳細な処理については後述する。バッファサイズ制御部２０５は、バッファリング制御部２０２がどれだけの映像フレームをバッファリングするかを設定する。バッファサイズ制御部２０５は、例えば、その機能を実現するためのプログラムを含んで構成される。表示部２０６は、ストリーミング受信制御部２０３がデコードした結果を受け取り、その映像を表示する機能を有し、例えば、その機能を実現するためのディスプレイと、それを制御するハードウェアおよびソフトウェアとを含んで構成される。
【００２５】
通信装置は、例えば、映像フレームをバッファリング制御部２０２で一時的に保持し、ストリーミング受信制御部２０３により、映像フレームのデコード処理を行い、デコード結果を表示部２０６に渡すことにより、受信した映像ストリーミングを表示しうる。ここで、無線ＬＡＮ（使用している周波数チャネル）が一時的に混雑することや、Ｓｏｕｒｃｅ側の処理負荷が一時的に変わって送信するタイミングがずれることなどにより、一部のフレームが遅延して通信装置に到達する場合がある。しかし、通信装置は、バッファを設けることによって、バッファリングしている映像フレームの分だけ、映像を途切れさせることなく再生することができる。ここで、バッファリングする映像フレーム数を増やせば増やすほど、映像フレームの受信遅延によって映像が途切れることを抑制することができる。その一方で、バッファのサイズを増やすと、Ｓｉｎｋ側で表示される画像は、Ｓｏｕｒｃｅ側で表示されている映像と比べてバッファリングされる分だけ遅れて表示されることになるため、リアルタイム性が落ちる。このため、本実施形態に係るバッファサイズ制御部２０５は、映像を途切れさせることなく、かつ、過剰な遅延が発生しないように、後述のような手法によって、バッファリング制御部２０２が保持するデータの量（バッファサイズ）を適切に制御する。
【００２６】
（処理の流れ）
続いて、いくつかの無線通信システムの形態例ごとの処理の流れについて説明する。
【００２７】
＜処理例１＞
本例では、Ｃｌｉｅｎｔが、Ｗｉ−Ｆｉ  Ｄｉｓｐｌａｙによる映像ストリーミング中にＯＢＳＳスキャンをする場合について説明する。ＯＢＳＳ（Ｏｖｅｒｌａｐｐｉｎｇ  Ｂａｓｉｃ  Ｓｅｒｖｉｃｅ  Ｓｅｔ）スキャンとは、ＩＥＥＥ８０２．１１ｎで干渉回避のために規定された手続きである。ＩＥＥＥ８０２．１１ｎでは、従来の２０ＭＨｚの信号帯域幅で動作するモード（ＨＴ２０）だけでなく、その倍の４０ＭＨｚの信号帯域幅で動作する４０ＭＨｚのチャネルモード（ＨＴ４０）をサポートする。しかし、ＨＴ４０で動作している通信装置は、ＩＥＥＥ８０２．１１ｎに対応しない従来の無線装置についてキャリアセンスによって存在を認識できないため、フレームの衝突が頻発することがある。特に、２．４ＧＨｚ帯は５ＧＨｚ帯と比較して、周波数チャネルが重なり合っているため、周囲のＢＳＳの影響を受けやすい。このため、ＩＥＥＥ８０２．１１ｎでは２．４ＧＨｚ帯のＨＴ４０で動作するＳＴＡ（または、Ｃｌｉｅｎｔ）に対して、ＯＢＳＳスキャンを行い、定期的に周囲の無線ネットワークを探索するべきことが規定されている。このときのスキャンは、自身が参加している無線ネットワークで使用されている周波数チャネルだけでなく、他の周波数チャネルも探索する。ＯＢＳＳスキャンにより、周囲のＩＥＥＥ８０２．１１ｎ規格に非対応の無線ネットワーク、および、周囲の無線ネットワークのうち、ＨＴ４０を許容しない無線ネットワークを発見する。ＳＴＡは、これらの無線ネットワークを発見した場合、参加している無線ネットワークのＡＰに対してレポートを送信する。そして、ＡＰは、必要に応じてＨＴ４０の無線ネットワークから、ＨＴ２０の無線ネットワークに切り替える。このＯＢＳＳスキャンは、２．４ＧＨｚ帯のＨＴ４０で動作するＳＴＡにとっては必須要件である。
【００２８】
図３に、本処理例における無線通信システムの構成例を示す。無線通信システムは、Ｓｉｎｋ３０１とＳｏｕｒｃｅ３０２とを含んで構成される。Ｓｉｎｋ３０１は、Ｗｉ−Ｆｉ  Ｄｉｓｐｌａｙ規格に準拠したＳｉｎｋであり、上述の通信装置である。Ｓｉｎｋ３０１は、Ｓｏｕｒｃｅ３０２から映像ストリームを受信し、その映像ストリームを再生する。Ｓｏｕｒｃｅ３０２は、Ｗｉ−Ｆｉ  Ｄｉｓｐｌａｙ規格に準拠したＳｏｕｒｃｅであり、上述の通信装置の通信の相手装置である。Ｓｏｕｒｃｅ３０２は、自身の不図示の画面に表示されている映像と同じ映像を、Ｓｉｎｋ３０１に映像ストリームとして送信する。Ｓｉｎｋ３０１とＳｏｕｒｃｅ３０２はＷｉ−Ｆｉ  Ｄｉｒｅｃｔによって接続してＰ２Ｐ  Ｇｒｏｕｐ（無線ネットワーク３０３）を構成し、映像ストリーミング配信を行う。
【００２９】
本処理例では、Ｐ２Ｐ  ＧｒｏｕｐがＨＴ４０モードで動作できるものとし、Ｃｌｉｅｎｔとなった装置は、ＨＴ４０モードで動作する場合には、ＯＢＳＳスキャンを行う。ＯＢＳＳスキャンを行う装置は、上述のように、通信中であっても、使用中の周波数チャネルと異なる周波数チャネルへ移ることが予定されている。このため、ＧＯとＣｌｉｅｎｔとの間の通信には、通信ができないこととなる。そこで、本実施形態の通信装置は、ＨＴ４０モードで動作しているか否かによって、他の周波数チャネルへの移行の可能性がある状態であるか否かを判定し、その判定結果によってバッファに保持すべきデータの量を制御する。なお、通信装置は、ＯＢＳＳスキャンに限られず、自身か相手装置かの少なくともいずれかが、通信に使用中の周波数チャネルから、他の周波数チャネルへ移行して探索を行う状態であるかを判定して、その判定結果に応じてバッファサイズを制御してもよい。以下、図４から図６を用いて処理の流れについて詳細に説明する。
【００３０】
図４は、Ｗｉ−Ｆｉ  Ｄｉｓｐｌａｙにより、Ｓｏｕｒｃｅ３０２の画面をＳｉｎｋ３０１でミラーリングするための手順を示したシーケンス図である。Ｓｉｎｋ３０１とＳｏｕｒｃｅ３０２は、まずＷｉ−Ｆｉ  Ｄｉｓｐｌａｙの規格に従い、互いを発見するためにＷＦＤ  Ｄｅｖｉｃｅ  Ｄｉｓｃｏｖｅｒｙを行う（Ｓ４０１）。この手順は、Ｗｉ−Ｆｉ  Ｄｉｒｅｃｔ規格のＰ２Ｐ  Ｄｅｖｉｃｅ  Ｄｉｓｃｏｖｅｒｙを拡張したものである。ＷＦＤ  Ｄｅｖｉｃｅ  Ｄｉｓｃｏｖｅｒｙでは、さらに映像ストリーミングをするために必要なパラメータ情報等を示すＷｉ−Ｆｉ  Ｄｉｓｐｌａｙ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｅｌｅｍｅｎｔ（ＷＦＤ  ＩＥ）が付加される。
【００３１】
Ｓｉｎｋ３０１とＳｏｕｒｃｅ３０２は、ＷＦＤ  Ｄｅｖｉｃｅ  Ｄｉｓｃｏｖｅｒｙで互いを発見すると、次に、Ｗｉ−Ｆｉ  Ｄｉｓｐｌａｙ規格のＧｒｏｕｐ  Ｆｏｒｍａｔｉｏｎを行い、どちらがＧＯの役割となるかを決定する（Ｓ４０２）。なお、Ｇｒｏｕｐ  Ｆｏｒｍａｔｉｏｎでは、ＣｌｉｅｎｔがＧＯに接続するための無線パラメータ交換も実施される。本処理例では、Ｓｉｎｋ３０１がＧＯになり、Ｓｏｕｒｃｅ３０２がＣｌｉｅｎｔになるものとする。
【００３２】
Ｇｒｏｕｐ  Ｆｏｒｍａｔｉｏｎが完了すると、ＧＯの役割に決まったＳｉｎｋ３０１はＧＯの役割を起動する（Ｓ４０３）。具体的には、Ｂｅａｃｏｎの送信を開始し、無線ネットワーク３０３を生成する。このとき、無線ネットワーク３０３は２．４ＧＨｚ帯の周波数を用い、ＨＴ４０のネットワークとして動作する。また、このときのＢｅａｃｏｎにはＩＥＥＥ８０２．１１ｎで規定されるＯＢＳＳ  Ｓｃａｎ  Ｐａｒａｍｔｅｒｓ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｅｌｅｍｅｎｔ（ＩＥ）が付与される。ＯＢＳＳ  Ｓｃａｎ  Ｐａｒａｍｅｔｅｒｓ  ＩＥの構成について、図６を用いて説明する。
【００３３】
図６にＯＢＳＳ  Ｓｃａｎ  Ｐａｒａｍｅｔｅｒｓ  ＩＥの構成について示す。ＯＢＳＳ  Ｓｃａｎ  Ｐａｒａｍｅｔｅｒｓ  ＩＥは、ＩＥＥＥ８０２．１１ｎの仕様に従った情報要素である。ＯＢＳＳ  Ｓｃａｎ  Ｐａｒａｍｅｔｅｒｓ  ＩＥには、スキャンの時間に関する情報が含められる。ここでは、特に、ＯＢＳＳ  Ｓｃａｎ  Ｐａｒａｍｅｔｅｒｓ  ＩＥに含まれる情報のうち、本処理例の、後述するＳ５０２でバッファリングサイズを決定する際に関係する情報要素について述べる。ＯＢＳＳ  Ｓｃａｎ  Ｐａｓｓｉｖｅ  Ｔｏｔａｌ  Ｐｅｒ  Ｃｈａｎｎｅｌには、各チャネルをパッシブ・スキャンする最小の合計時間を表わす情報が含まれる。ＯＢＳＳ  Ｓｃａｎ  Ａｃｔｉｖｅ  Ｔｏｔａｌ  Ｐｅｒ  Ｃｈａｎｎｅｌには、各チャネルをアクティブ・スキャンする最小の合計時間を表わす情報が含まれる。ＢＳＳ  Ｃｈａｎｎｅｌ  Ｗｉｄｔｈ  Ｔｒｉｇｇｅｒ  Ｓｃａｎ  Ｉｎｔｅｒｖａｌには、ＯＢＳＳ  Ｓｃａｎを実行する間隔を表わす情報が含まれる。
【００３４】
図４に戻り、ＧＯが起動すると、Ｓｏｕｒｃｅ３０２は、Ｓｉｎｋ３０１に対して、Ａｓｓｏｃｉａｔｉｏｎ  Ｒｅｑｕｅｓｔを送信して、無線ネットワーク３０３への参加を要求する（Ｓ４０４）。このとき、Ａｓｓｏｃｉａｔｉｏｎ  Ｒｅｑｕｅｓｔには、ＨＴ  Ｃａｐａｂｉｌｉｔｉｅｓ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｅｌｅｍｅｎｔが付与される。Ｓｉｎｋ３０１は、そのＩＥの、ＨＴ  Ｃａｐａｂｉｌｉｔｉｅｓ  ＩｎｆｏのＳｕｐｐｏｒｔｅｄ  Ｃｈａｎｎｅｌ  Ｗｉｄｔｈ  Ｓｅｔのｂｉｔを確認する。そして、Ｓｉｎｋ３０１は、Ｓｏｕｒｃｅ３０２がＨＴ２０とＨＴ４０とのいずれで無線ネットワーク３０３に参加しているのかを判定する。具体的には、Ｓｉｎｋ３０１は、Ｓｕｐｐｏｒｔｅｄ  Ｃｈａｎｎｅｌ  Ｗｉｄｔｈ  Ｓｅｔが０の場合はＨＴ２０であり、１の場合はＨＴ４０であると判定する。この情報は後述のＳ４０６で用いられる。本処理例では、Ｓｏｕｒｃｅ３０２が、ＨＴ４０で無線ネットワーク３０３に参加するものとする。
【００３５】
Ｓｉｎｋ３０１は、Ａｓｓｏｃｉａｔｉｏｎ  Ｒｅｑｕｅｓｔを受信すると、Ａｓｓｏｃｉａｔｉｏｎ  Ｒｅｓｐｏｎｓｅを送信することにより、Ｓｏｕｒｃｅ３０２が無線ネットワーク３０３に参加することを承認する（Ｓ４０５）。また、Ｓｉｎｋ３０１及びＳｏｕｒｃｅ３０２は、Ａｓｓｏｃｉａｔｉｏｎ  Ｒｅｓｐｏｎｓｅの後に、ＷＰＡ２−ＰＳＫ  ＡＥＳ方式の鍵交換を行う（不図示）。
【００３６】
Ｓｉｎｋ３０１は、Ｓｏｕｒｃｅ３０２が無線ネットワーク３０３に参加すると、映像ストリーミングを実行する際のバッファサイズを決定する（Ｓ４０６）。この処理について、図５を用いて説明する。
【００３７】
図５は、本処理例に係るバッファサイズ制御処理の流れの例を示すフローチャートである。本処理は、バッファサイズ制御部２０５が実行する。まず、バッファサイズ制御部２０５は、Ｓｏｕｒｃｅ３０２がＨＴ２０とＨＴ４０とのいずれで無線ネットワーク３０３に参加しているかを判定する（Ｓ５０１）。このとき、Ｓｏｕｒｃｅ３０２がＨＴ２０で無線ネットワーク３０３に参加している場合は（Ｓ５０１でＮＯ）、ＯＢＳＳスキャンは行われない。したがって、バッファサイズ制御部２０５は、バッファサイズを５０ミリ秒分の映像フレームとして決定して、バッファリング制御部２０２の設定を行う（Ｓ５０３）。
【００３８】
一方で、Ｓｏｕｒｃｅ３０２がＨＴ４０で無線ネットワーク３０３に参加している場合（Ｓ５０１でＹＥＳ）は、Ｓｏｕｒｃｅ３０２がＯＢＳＳスキャンを行う状態にあると判定できる。このため、Ｓｉｎｋ３０１は、バッファリングサイズをＯＢＳＳ  Ｓｃａｎ  Ｐａｒａｍｅｔｅｒｓ  ＩＥの情報に基づいて決定し、バッファリング制御部２０２の設定を行う（Ｓ５０２）。
【００３９】
本処理例では、Ｓｏｕｒｃｅ３０２がＯＢＳＳスキャンをしている間、Ｓｉｎｋ３０１では、映像フレームが受信されないため、映像表示が乱れる可能性がある。そのため、Ｓｉｎｋ３０１は、Ｓｏｕｒｃｅ３０２がＯＢＳＳスキャンを実行するのに要する時間を、図６の情報に基づいて判断し、それに基づいてバッファサイズを決定する。ここで、１つのチャネルをＯＢＳＳスキャンするのにかかる時間は、
（ＯＢＳＳ  Ｓｃａｎ  Ｐａｓｓｉｖｅ  Ｔｏｔａｌ  Ｐｅｒ  Ｃｈａｎｎｅｌ  ＋  ＯＢＳＳ  Ｓｃａｎ  Ａｃｔｉｖｅ  Ｔｏｔａｌ  Ｐｅｒ  Ｃｈａｎｎｅｌ）×１．０２４［ミリ秒］
である。そして、トータルのスキャン時間は、上述の時間に、スキャンするチャネルの数を乗じた値となる。すなわち、トータルのスキャン時間は、
（ＯＢＳＳ  Ｓｃａｎ  Ｐａｓｓｉｖｅ  Ｔｏｔａｌ  Ｐｅｒ  Ｃｈａｎｎｅｌ  ＋  ＯＢＳＳ  Ｓｃａｎ  Ａｃｔｉｖｅ  Ｔｏｔａｌ  Ｐｅｒ  Ｃｈａｎｎｅｌ）×（スキャンするチャネル数）×１．０２４［ミリ秒］
となる。
【００４０】
デコード処理や、ＯＢＳＳスキャン以外の要因による無線でのパケットロスなどが発生した場合のためにバッファサイズに、さらに５０ミリ秒余裕をとるとする。このため、Ｓ５０２では、バッファサイズが、
（ＯＢＳＳ  Ｓｃａｎ  Ｐａｓｓｉｖｅ  Ｔｏｔａｌ  Ｐｅｒ  Ｃｈａｎｎｅｌ  ＋  ＯＢＳＳ  Ｓｃａｎ  Ａｃｔｉｖｅ  Ｔｏｔａｌ  Ｐｅｒ  Ｃｈａｎｎｅｌ）×（スキャンするチャネル数）×１．０２４  ＋  ５０［ミリ秒］
と決定される。これにより、Ｓｏｕｒｃｅ３０２がＯＢＳＳスキャンを実行したとしても、その間はＳｉｎｋ３０１がバッファに格納された映像フレームを再生することにより、映像の乱れが発生する確率を抑制することができる。
【００４１】
Ｓｉｎｋ３０１は、バッファサイズを設定すると、Ｗｉ−Ｆｉ  Ｄｉｓｐｌａｙの規格に従って、Ｓｏｕｒｃｅ３０２との間で、ＷＦＤ  Ｃａｐａｂｉｌｉｔｙ  Ｎｅｇｏｔｉａｔｉｏｎを実行する（Ｓ４０７）。これは、Ｗｉ−Ｆｉ  Ｄｉｓｐｌａｙとして動作するＳｉｎｋとＳｏｕｒｃｅとが、能力情報を交換して、互いにとって適した解像度、フレームレートなどを決定するための処理である。ＷＦＤ  Ｃａｐａｂｉｌｉｔｙ  Ｎｅｇｏｔｉａｔｉｏｎの実行後、Ｓｉｎｋ３０１及びＳｏｕｒｃｅ３０２は、Ｗｉ−Ｆｉ  Ｄｉｓｐｌａｙ規格に従って、ＷＦＤ  Ｓｅｓｓｉｏｎ  Ｅｓｔａｂｌｉｓｈｍｅｎｔを実行する（Ｓ４０８）。ＷＦＤ  Ｓｅｓｓｉｏｎ  Ｅｓｔａｂｌｉｓｈｍｅｎｔでは、映像ストリーミングを開始するためのセッションが確立される。そして、Ｓｏｕｒｃｅ３０２が映像フレームの送信を開始するためのトリガとなるフレームであるＲＴＳＰ  Ｍ７（ＰＬＡＹ）メッセージを送信し、映像ストリーミングが開始される。
【００４２】
ＷＦＤ  Ｓｅｓｓｉｏｎ  Ｅｓｔａｂｌｉｓｈｍｅｎｔが完了すると、Ｓｏｕｒｃｅ３０２は、Ｓｉｎｋ３０１に対して映像フレームをＲＴＰで送信する（Ｓ４０９）。これはＷｉ−Ｆｉ  Ｄｉｓｐｌａｙの仕様に従ったフレームで送信される。Ｓｉｎｋ３０１は、ＲＴＰフレームを受信すると、デコード、逆多重化を行い、表示部２０６に受信した映像を表示する。
【００４３】
Ｓｏｕｒｃｅ３０２は、ＢＳＳ  Ｃｈａｎｎｅｌ  Ｗｉｄｔｈ  Ｔｒｉｇｇｅｒ  Ｓｃａｎ  Ｉｎｔｅｒｖａｌで示される間隔でＯＢＳＳスキャンを実行する（Ｓ４１０）。本処理例では、ＢＳＳ  Ｃｈａｎｎｅｌ  Ｗｉｄｔｈ  Ｔｒｉｇｇｅｒ  Ｓｃａｎ  Ｉｎｔｅｒｖａｌを例えば６０秒とする。Ｓｏｕｒｃｅ３０２は、ＯＢＳＳスキャンの実行中の期間は、無線ネットワーク３０３で使用中の周波数チャネルと異なる周波数チャネルをもスキャンするため、ＲＴＰを送信することができない。Ｓｉｎｋ３０１は、Ｓｏｕｒｃｅ３０２がＯＢＳＳスキャンを実行している間はＲＴＰを受信できないが、バッファリング制御部２０２に映像フレームが保持されているため、その保持されているフレームを再生することで、映像の乱れを防ぐことができる。
【００４４】
Ｓｉｎｋ３０１は、Ｓｏｕｒｃｅ３０２がＯＢＳＳスキャンを完了した後に、ＩＤＲ（Ｉｎｓｔａｎｔａｎｅｏｕｓ  Ｄｅｃｏｄｅｒ  Ｒｅｆｒｅｓｈ）フレームを要求するメッセージを送信する（Ｓ４１１）。これは、Ｗｉ−Ｆｉ  Ｄｉｓｐｌａｙの仕様に従うＲＴＳＰ  Ｍ１３  ｒｅｑｕｅｓｔ（ＳＥＴ＿ＰＡＲＡＭＥＴＥＲ  ｗｉｔｈ  ｗｆｄ−ｉｄｒ−ｒｅｑｕｅｓｔ）として送信される。Ｓｉｎｋ３０１は、例えば、一定時間ＲＴＰフレームを受信することができなかった期間があった後にＲＴＰフレームが受信された場合に、Ｓｏｕｒｃｅ３０２によるＯＢＳＳスキャンが完了したことを検知することができる。ここで、一定時間とは、例えば、（ＯＢＳＳ  Ｓｃａｎ  Ｐａｓｓｉｖｅ  Ｔｏｔａｌ  Ｐｅｒ  Ｃｈａｎｎｅｌ  ＋  ＯＢＳＳ  Ｓｃａｎ  Ａｃｔｉｖｅ  Ｔｏｔａｌ  Ｐｅｒ  Ｃｈａｎｎｅｌ）×（スキャンするチャネル数）×１．０２４ミリ秒である。
【００４５】
Ｓｉｎｋ３０１は、ＩＤＲフレームを要求するメッセージを、ほかのタイミングにおいて送信してもよい。例えば、Ｓｏｕｒｃｅ３０２はＢＳＳ  Ｃｈａｎｎｅｌ  Ｗｉｄｔｈ  Ｔｒｉｇｇｅｒ  Ｓｃａｎ  Ｉｎｔｅｒｖａｌ秒毎にＯＢＳＳスキャンを実行する。このため、Ｓｉｎｋ３０１は、ＢＳＳ  Ｃｈａｎｎｅｌ  Ｗｉｄｔｈ  Ｔｒｉｇｇｅｒ  Ｓｃａｎ  Ｉｎｔｅｒｖａｌ毎にＩＤＲフレームを要求するようにしてもよい。Ｓｏｕｒｃｅ３０２は、ＩＤＲフレームを要求するメッセージを受信すると、ＩＤＲフレームをＲＴＰとして送信する（Ｓ４１２）。これはＷｉ−Ｆｉ  Ｄｉｓｐｌａｙ仕様に従う形式で送信される。
【００４６】
Ｈ．２６４では、映像フレームは、ベースとなる映像情報が含まれたＩＤＲフレームと、ＩＤＲフレームからの差分の映像情報だけを含んだ差分フレームとによって送信される。Ｓｉｎｋ３０１は、ＯＢＳＳスキャンの直後にＩＤＲフレームを要求することにより、ＯＢＳＳスキャンによって一時的にバッファから再生すべきフレームがなくなることによって映像が乱れてしまった場合でも、比較的早く映像の乱れから回復することができる。この要求によって、ＩＤＲフレームがないと再生できない差分のフレームよりも早く、他の映像フレームのベースとなるＩＤＲフレームを受信できるためである。
【００４７】
Ｓｏｕｒｃｅ３０２は、ＩＤＲフレームを送信した後は、Ｗｉ−Ｆｉ  Ｄｉｓｐｌａｙの仕様に従って、ＲＴＰフレームを送信する（Ｓ４１３）。Ｓｏｕｒｃｅ３０２は、ＢＳＳ  Ｃｈａｎｎｅｌ  Ｗｉｄｔｈ  Ｔｒｉｇｇｅｒ  Ｓｃａｎ  Ｉｎｔｅｒｖａｌで示される間隔でＯＢＳＳスキャンを実行するが、上述のＳ４０９〜Ｓ４１３のような処理によって映像の乱れを抑制することができる。
【００４８】
本処理例では、Ｓｏｕｒｃｅ３０２がＯＢＳＳスキャンを実行した場合でも、ＯＢＳＳスキャンで他のチャネルに移動している時間に応じた量の映像フレームを、Ｓｉｎｋ３０１がバッファリングするため、Ｓｉｎｋ３０１における映像の乱れを抑制できる。また、バッファサイズは、不必要に大きく設定されないため、Ｓｉｎｋ３０１とＳｏｕｒｃｅ３０２との間で、表示される映像のタイムラグが不必要に大きくなることを防ぐことができる。
【００４９】
本処理例では、Ｓｉｎｋ３０１がＧＯ、Ｓｏｕｒｃｅ３０２がＣｌｉｅｎｔとして動作するとして説明をしたが、Ｓｉｎｋ３０１がＣｌｉｅｎｔ、Ｓｏｕｒｃｅ３０２がＧＯであった場合でも、同様にすることで映像の乱れを抑制することができる。すなわち、Ｓｉｎｋ３０１がＯＢＳＳスキャンでスキャンする時間分だけ、Ｓｉｎｋ３０１で映像フレームをバッファすることで抑制できる。
【００５０】
＜処理例２＞
本処理例では、通信装置が２つの仮想無線ＬＡＮインタフェースを有し、別の異なるＡＰと通信を行う場合について説明する。例えば、通信装置は、１つ目の仮想無線ＬＡＮインタフェースによってＷｉ−Ｆｉ  ＤｉｓｐｌａｙのＳｉｎｋとしてＳｏｕｒｃｅとの通信を行い、２つ目の無線ＬＡＮインタフェースによってＳＴＡとして別のＡＰと通信しうる。このとき、通信装置は、無線ＬＡＮのアンテナを１つだけ有するものとし、さらに、２つの仮想無線ＬＡＮインタフェースは異なる周波数チャネルで通信を行うものとする。この場合、通信装置は、２つの仮想無線ＬＡＮインタフェースを時分割で用いると共に使用する周波数チャネルを切り替えることにより、Ｓｉｎｋ及びＳＴＡとして並行して通信を行うことができる。しかしながら、この場合、通信装置は、ＳｉｎｋとしてＳｏｕｒｃｅと通信中に、使用中の周波数チャネルと異なる周波数チャネルへ移ることとなる。このため、本処理例では、通信装置は、２つの仮想無線インタフェースが共に起動中の場合に、通信中に使用している周波数チャネルと異なる周波数チャネルへ移る可能性がある状態であると判定し、その判定結果に応じてバッファサイズを制御する。これにより、通信装置は、ＳＴＡ側のインタフェースの周波数チャネルに移動した場合に、Ｗｉ−Ｆｉ  Ｄｉｓｐｌａｙ側のインタフェースでＲＴＰフレームが受信できないことによる映像の乱れを抑制する。以下では、処理例１と異なる点に特に着目して説明する。
【００５１】
図７に、本処理例における無線通信システムの構成例を示す。無線通信システムは、Ｓｉｎｋ７０１、Ｓｏｕｒｃｅ７０２、及びＡＰ７０４を含んで構成される。Ｓｉｎｋ７０１は、Ｗｉ−Ｆｉ  Ｄｉｓｐｌａｙ規格に準拠したＳｉｎｋであり、上述の通信装置である。なお、通信装置は、Ｗｉ−Ｆｉ  Ｄｉｓｐｌａｙ側のインタフェースと、ＳＴＡ側のインタフェースとを有する。Ｓｉｎｋ７０１は、Ｓｏｕｒｃｅ７０２から映像ストリームを受信し、その映像ストリームを再生する。Ｓｏｕｒｃｅ７０２は、Ｗｉ−Ｆｉ  Ｄｉｓｐｌａｙ規格に準拠したＳｏｕｒｃｅであり、上述の通信装置の通信の相手装置である。Ｓｏｕｒｃｅ７０２は、自身の不図示の画面に表示されている映像と同じ映像を、Ｓｉｎｋ７０１に映像ストリームとして送信する。Ｓｉｎｋ７０１とＳｏｕｒｃｅ７０２はＷｉ−Ｆｉ  Ｄｉｒｅｃｔによって接続してＰ２Ｐ  Ｇｒｏｕｐ（無線ネットワーク７０３）を構成し、映像ストリーミング配信を行う。なお、Ｓｉｎｋ７０１は、Ｗｉ−Ｆｉ  Ｄｉｓｐｌａｙ側のインタフェースを用いて、無線ネットワーク７０３に参加する。
【００５２】
ＡＰ７０４は、無線ネットワーク７０５を構成するＩＥＥＥ８０２．１１規格に準拠したアクセスポイントである。無線ネットワーク７０５は、無線ネットワーク７０３と異なる無線ネットワークであり、かつ無線ネットワーク７０３とは異なる周波数チャネルを使用する。無線ネットワーク７０５では、ＡＰ７０４とＳｉｎｋ７０１とが通信を行う。Ｓｉｎｋ７０１は、ＳＴＡ側のインタフェースを用いて、無線ネットワーク７０５に参加する。
【００５３】
本処理例では、無線ネットワーク７０３及び無線ネットワーク７０５のいずれにおいても、ビーコン間隔は１００ミリ秒であるとする。さらに、Ｓｉｎｋ７０１は、２つの無線ネットワークに参加している場合、５０ミリ秒毎に無線ネットワーク７０３の周波数チャネルと無線ネットワーク７０５の周波数チャネルとを移動する。すなわち、Ｓｉｎｋ７０１は、無線ネットワーク７０３の周波数チャネルに５０ミリ秒滞在した後に、無線ネットワーク７０５の周波数チャネルに移動する。そして、Ｓｉｎｋ７０１は、無線ネットワーク７０５の周波数チャネルに５０ミリ秒滞在した後に、無線ネットワーク７０３の周波数チャネルに移動する。Ｓｉｎｋ７０１は、この周波数チャネルの移動を繰り返す。ここで、Ｓｉｎｋ７０１は、無線ネットワーク７０３と無線ネットワーク７０５との両方においてビーコンを受信できるようなタイミングで、使用する周波数チャネルを変更するものとする。なお、Ｓｉｎｋ７０１の無線ＬＡＮ制御部２０１は、Ｗｉ−Ｆｉ  Ｄｉｓｐｌａｙ側のインタフェースとＳＴＡ側のインタフェースとの両方を制御する。Ｓｉｎｋ７０１は、無線ＬＡＮのアンテナを１つのみ有し、ある時刻において１つの周波数チャネルのフレームのみを受信することができる。そのため、Ｗｉ−Ｆｉ  Ｄｉｓｐｌａｙ及びＳＴＡのインタフェースによってそれぞれ参加している無線ネットワークが、それぞれ異なる周波数チャネルを使用している場合、Ｓｉｎｋ７０１は、それらの周波数チャネルを時分割で切り替えて使用する。これにより、Ｓｉｎｋ７０１は、時分割で２つの無線ネットワークに参加する。なお、ここでの無線ネットワークへの「参加」とは、他の装置が形成した無線ネットワークに接続することだけではなく、自身が形成した無線ネットワークに属することをも含む概念である。
【００５４】
また、Ｓｉｎｋ７０１のバッファサイズ制御部２０５は、図９に示すフローチャートに従ってバッファサイズを決定して設定する。本処理例では、Ｓｉｎｋ７０１は、上述のように、互いに異なる周波数チャネルを使用している２つの無線ネットワークに参加している場合には、２つの周波数チャネルの間で、時分割によって通信に使用する周波数チャネルを変更する。このため、Ｓｉｎｋ７０１は、一方の無線ネットワークで通信を行っている期間は、もう一方の使用している周波数チャネルが異なる無線ネットワークとの間での通信を行うことができない。例えば、Ｓｉｎｋ７０１は、無線ネットワーク７０５で映像フレームを受信している間は、無線ネットワーク７０３ではフレームを受信することはできない。また、Ｓｉｎｋ７０１は、無線ネットワーク７０３でフレームを受信している期間は、無線ネットワーク７０５で映像フレームを受信することができない。このため、Ｓｉｎｋ７０１のバッファサイズ制御部２０５は、２つの異なる周波数チャネルを用いる無線ネットワークに参加している場合は、通信が中断される期間に備えて、バッファサイズが大きくなるようにバッファリング制御部２０２を制御する。以下、図８及び図９を用いて処理の流れについて詳細に説明する。
【００５５】
図８は、Ｗｉ−Ｆｉ  Ｄｉｓｐｌａｙにより、Ｓｏｕｒｃｅ７０２の画面をＳｉｎｋ７０１でミラーリングするための手順を示したシーケンス図である。処理例１の図４と同様の処理については詳細な説明を省略する。図８のシーケンス開始時点において、Ｓｉｎｋ７０１は、無線ネットワーク７０３及び無線ネットワーク７０５に、まだ参加していないものとする。
【００５６】
Ｓ８０１及びＳ８０２の処理は、Ｓ４０１及びＳ４０２に関して説明した処理と同様である。ただし、本処理例では、Ｓｉｎｋ７０１がＣｌｉｅｎｔで、Ｓｏｕｒｃｅ７０２がＧＯとなったものとする。また、Ｓｉｎｋ７０１は、Ｗｉ−Ｆｉ  Ｄｉｓｐｌａｙ側のインタフェースを用いて、Ｓ８０１及びＳ８０２の処理を実行する。役割が決定すると、Ｓｏｕｒｃｅ７０２がＧＯとして無線ネットワーク７０３を構築し、Ｓｉｎｋ７０１は、Ａｓｓｏｃｉａｔｉｏｎ  Ｒｅｑｕｅｓｔを送信して、無線ネットワーク７０３に参加する（Ｓ８０３）。Ｓｏｕｒｃｅ７０２は、Ａｓｓｏｃｉａｔｉｏｎ  ＲｅｓｐｏｎｓｅでＳｉｎｋ７０１に応答する（Ｓ８０４）。また、Ｓｉｎｋ７０１及びＳｏｕｒｃｅ７０２は、Ａｓｓｏｃｉａｔｉｏｎ  Ｒｅｓｐｏｎｓｅの後に、ＷＰＡ２−ＰＳＫ  ＡＥＳ方式の鍵交換を行う（不図示）。
【００５７】
Ｓｉｎｋ７０１は、Ｓｏｕｒｃｅ７０２が構築した無線ネットワーク７０３に参加すると、映像ストリーミングを実行する際のバッファサイズを決定する処理を行う（Ｓ８０５）。この処理について図９を用いて詳細に説明する。
【００５８】
図９は、本処理例におけるバッファサイズ制御処理の流れを示すフローチャートである。本処理は、Ｓｉｎｋ７０１のバッファサイズ制御部２０５によって実行される。まず、バッファサイズ制御部２０５は、Ｓｉｎｋ７０１においてＳＴＡ側のインタフェースが動作しているか、すなわち、無線ネットワーク７０５に参加しているか否かを判断する（Ｓ９０１）。この判定は、Ｓｉｎｋ７０１が、無線ネットワーク７０３における通信中に使用している周波数チャネルを、異なる周波数チャネルへ変更する可能性がある状態であるかの判定である。ＳＴＡ側のインタフェースが動作している場合（Ｓ９０１でＹＥＳ）は、Ｓｉｎｋ７０１は、周波数チャネルが変更される可能性がある状態であるため、バッファサイズが大きくなるように制御を行う。例えば、Ｓｉｎｋ７０１は、バッファサイズを、１００ミリ秒分の映像を保持するように制御を行う（Ｓ９０２）。一方で、Ｓｉｎｋ７０１は、ＳＴＡ側のインタフェースが動作していない場合（Ｓ９０１でＮＯ）は、バッファサイズを比較的小さく（例えば５０ミリ秒に）する。
【００５９】
ここでは、一例において、ＳＴＡ側のインタフェースが動作中の場合は、動作していない場合と比較して、バッファサイズが５０ミリ秒大きく設定される。Ｓｉｎｋ７０１は、ＳＴＡ側のインタフェースが動作中の場合は、時分割で無線ネットワーク７０３と無線ネットワーク７０５とが使用している周波数チャネルの間で周波数チャネルを変更する。このため、Ｓｉｎｋ７０１は、無線ネットワーク７０５のチャネルに移動している場合には、無線ネットワーク７０３からフレームを受信することができない。したがって、Ｓｉｎｋ７０１は、無線ネットワーク７０３の周波数チャネルに滞在していない期間である５０ミリ秒間分だけ、余分にバッファサイズを大きくする。これにより、Ｓｉｎｋ７０１のＷｉ−Ｆｉ  Ｄｉｓｐｌａｙ側のインタフェースでフレームが受信できないことにより発生し得る映像の乱れを抑制することができる。
【００６０】
図８に戻り、Ｓ８０５では、Ｓｉｎｋ７０１は、まだ無線ネットワーク７０５に参加していない。このため、Ｓｉｎｋ７０１は、ＳＴＡ側のインタフェースが動作していないと判定し（Ｓ９０１でＮＯ）、バッファサイズを５０ミリ秒分のデータ量となるように設定する（Ｓ９０３）。Ｓ８０６及びＳ８０７の処理は、処理例１におけるＳ４０７及びＳ４０８の処理と同様である。ＷＦＤ  Ｓｅｓｓｉｏｎ  Ｅｓｔａｂｌｉｓｈｍｅｎｔが完了すると、Ｓｏｕｒｃｅ７０２はＲＴＰで映像フレームをＳｉｎｋ７０１へ送信する（Ｓ８０８）。
【００６１】
映像ストリーミングの再生が開始された後、Ｓｉｎｋ７０１は、例えば不図示のユーザインタフェースの操作によってＡＰ７０４が構成する無線ネットワーク７０５への参加要求を受け付け、ＡＰ接続処理を開始する（Ｓ８０９）。以降のＳ８１０〜Ｓ８１２の処理は無線ネットワーク７０５における処理であるため、ＳＴＡ側のインタフェースで実行される。
【００６２】
Ｓｉｎｋ７０１は、ＡＰ接続処理を開始すると、無線ネットワーク７０５で使用されている周波数チャネルでの接続処理を行うために、Ｓｏｕｒｃｅ７０２にＩＥＥＥ８０２．１１規格のＱｏＳ  Ｎｕｌｌ  Ｐａｃｋｅｔ（ＰＭ＝１）を送信する（Ｓ８１０）。これは、無線ネットワーク７０５の周波数チャネルで一時的に動作するため、無線ネットワーク７０３からのフレームを受信できないことをＳｏｕｒｃｅ７０２に通知するためのフレームである。これにより、Ｓｏｕｒｃｅ７０２は、ＱｏＳ  Ｎｕｌｌ  Ｐａｃｋｅｔ（ＰＭ＝０）をＳｉｎｋ７０１から受信するまでの間、Ｓｉｎｋ７０１への送信を一時的に停止して、映像フレームをバッファリングする。
【００６３】
Ｓｉｎｋ７０１は、ＱｏＳ  Ｎｕｌｌ  Ｐａｃｋｅｔ（ＰＭ＝１）を送信した後に、Ａｓｓｏｃｉａｔｉｏｎ  ＲｅｑｕｅｓｔをＡＰ７０４へ送信して、無線ネットワーク７０５への参加を要求する（Ｓ８１１）。ＡＰ７０４は、Ａｓｓｏｃｉａｔｉｏｎ  ＲｅｓｐｏｎｓｅをＳｉｎｋ７０１へ送信して、無線ネットワーク７０５への参加を許可する（Ｓ８１２）。なお、無線ネットワーク７０５のセキュリティ方式によっては、この後に４Ｗａｙ  Ｈａｎｄｓｈａｋｅなどの鍵交換が実行されうる（不図示）。
【００６４】
Ｓｉｎｋ７０１は、無線ネットワーク７０５への接続処理が完了すると、自身が用いているインタフェースの状態が変動したため、バッファサイズ制御処理を再実行する（Ｓ８１３）。ここで、Ｓｉｎｋ７０１は、ＳＴＡ側のインタフェースで無線ネットワーク７０５に参加することとなったため（Ｓ９０１でＹＥＳ）、バッファサイズを１００ミリ秒に設定する（Ｓ９０２）。すなわち、Ｓｉｎｋ７０１は、無線ネットワーク７０５に参加している時間の分だけ、参加する前よりもバッファサイズを大きくする。
【００６５】
Ｓｉｎｋ７０１は、無線ネットワーク７０５の周波数チャネルでの動作期間が５０ミリ秒を経過すると、ＡＰ７０４にＱｏＳ  Ｎｕｌｌ  Ｐａｃｋｅｔ（ＰＭ＝１）を送信し（Ｓ８１４）、ＡＰ７０４からの送信フレームを抑制する。その後、Ｓｉｎｋ７０１は、使用する周波数チャネルを、無線ネットワーク７０３で使用されている周波数チャネルへと変更し、Ｓｏｕｒｃｅ７０２に対してＱｏＳ  Ｎｕｌｌ  Ｐａｃｋｅｔ（ＰＭ＝０）を送信する（Ｓ８１５）。これにより、再びＳｏｕｒｃｅ７０２からＳｉｎｋ７０１へ映像フレームが送信されるようになる（Ｓ８１６）。
【００６６】
そして、Ｓｉｎｋ７０１は、無線ネットワーク７０３の周波数チャネルでの動作期間が５０ミリ秒を経過すると、Ｓｏｕｒｃｅ７０２に対してＱｏＳ  Ｎｕｌｌ  Ｐａｃｋｅｔ（ＰＭ＝１）を送信する（Ｓ８１７）。これによりＳｏｕｒｃｅ７０２からのフレーム送信が抑制される。そして、Ｓｉｎｋ７０１は、使用する周波数チャネルを、無線ネットワーク７０５で使用されている周波数チャネルへと変更して、ＱｏＳ  Ｎｕｌｌ  Ｐａｃｋｅｔ（ＰＭ＝０）を送信し、再びＡＰ７０４からパケットを受信できるようにする（Ｓ８１８）。そして、Ｓｉｎｋ７０１は、Ｓｏｕｒｃｅ７０２からフレームを受信できない間は、バッファリングした映像フレームの映像を再生する。その後、５０ミリ秒毎にＳ８１４〜Ｓ８１８の処理を繰り返す。
【００６７】
本処理例では、互いに異なる周波数チャネルを用いる２つ（以上）の無線ネットワークに時分割で接続する場合に、映像ストリーミングを受信できない周波数チャネルを使用中の期間においても、Ｓｉｎｋでの映像の乱れが発生することを抑制することができる。これは、バッファサイズを、他の周波数チャネルに移動している時間の分だけ多くしておくことによって実現することができる。なお、時分割で複数の無線ネットワークに接続する場合に、接続する無線ネットワークの数に応じて、バッファサイズを増減させてもよい。すなわち、通信装置は、接続対象の無線ネットワークの数が多いほど、バッファサイズが大きくなるように、バッファリング制御部２０２を制御してもよい。
【００６８】
なお、上述の処理例では、Ｓｉｎｋは、２つの仮想無線ＬＡＮインタフェースがそれぞれ同じ長さの期間だけ用いられるようにしたが、これらの期間の長さは、互いに異なってもよい。例えば、Ｗｉ−Ｆｉ  Ｄｉｓｐｌａｙ側の通信期間を７０ミリ秒とし、ＳＴＡ側の通信期間を３０ミリ秒としてもよい。この場合、バッファサイズは、上述の１００ミリ秒分のサイズよりも小さくても、Ｓｉｎｋ側で映像の乱れが発生することを抑制することができる。このように、Ｓｉｎｋは、複数の無線インタフェースによる通信期間の長さの比に応じて、バッファサイズを決定することができる。例えば、Ｓｉｎｋは、自身が、Ｓｏｕｒｃｅと通信を行うための無線ネットワークに滞在する期間を特定し、その滞在期間の長さに基づいて、バッファサイズを制御してもよい。
【００６９】
＜処理例３＞
本処理例では、Ｓｏｕｒｃｅが、使用する周波数チャネルを、Ｓｉｎｋとの間で構成している無線ネットワークで使用している周波数チャネルと異なる周波数チャネルに一時的に変更する場合についての処理の流れについて説明する。すなわち、処理例２では、Ｓｉｎｋが２つの仮想無線ＬＡＮインタフェースを有し、２つのインタフェースを時分割で切り替えて使用する場合について説明したが、本処理例では、Ｓｏｕｒｃｅがそのような構成を有する。すなわち、本処理例では、Ｓｏｕｒｃｅは、Ｗｉ−Ｆｉ  ＤｉｓｐｌａｙによってＳｉｎｋと通信を行い、他方で、ＳＴＡとして、他のＡＰとの通信を行う。Ｗｉ−Ｆｉ  Ｄｉｓｐｌａｙ側のインタフェースと、ＳＴＡ側のインタフェースとでは、異なる周波数チャネルが用いられるものとする。また、Ｓｏｕｒｃｅは、無線ＬＡＮのアンテナを１つだけ有し、２つの周波数チャネルを時分割で切り替えて使用する。このため、Ｓｏｕｒｃｅは、ＳＴＡ側のインタフェースで通信している間は、Ｗｉ−Ｆｉ  Ｄｉｓｐｌａｙ側のインタフェースによって接続される無線ネットワークには不在となる。以下では上述の処理例と異なる点について特に説明する。
【００７０】
図１０に、本処理例における無線通信システムの構成例を示す。無線通信システムは、Ｓｉｎｋ１００１、Ｓｏｕｒｃｅ１００２、及びＡＰ１００４を含んで構成される。Ｓｉｎｋ７０１は、Ｗｉ−Ｆｉ  Ｄｉｓｐｌａｙ規格に準拠したＳｉｎｋであり、上述の通信装置である。Ｓｏｕｒｃｅ１００２は、Ｗｉ−Ｆｉ  Ｄｉｓｐｌａｙ規格に準拠したＳｏｕｒｃｅであり、上述の通信装置の通信の相手装置である。なお、Ｓｏｕｒｃｅ１００２は、Ｗｉ−Ｆｉ  Ｄｉｓｐｌａｙ側のインタフェースと、ＳＴＡ側のインタフェースとを有する。Ｓｏｕｒｃｅ１００２は、Ｗｉ−Ｆｉ  Ｄｉｓｐｌａｙ側のインタフェースを用いてＳｉｎｋ１００１に映像ストリーミングを配信する。
【００７１】
無線ネットワーク１００３は、Ｓｉｎｋ１００１とＳｏｕｒｃｅ１００２が参加するＰ２Ｐ  Ｇｒｏｕｐである。Ｓｉｎｋ１００１及びＳｏｕｒｃｅ１００２は、Ｗｉ−Ｆｉ  Ｄｉｒｅｃｔによって接続してＰ２Ｐ  Ｇｒｏｕｐを構成し、映像ストリーミングの配信を行う。Ｓｉｎｋ１００１は、Ｗｉ−Ｆｉ  Ｄｉｓｐｌａｙ側のインタフェースを用いて、無線ネットワーク１００３に参加する。
【００７２】
ＡＰ１００４は、無線ネットワーク１００５を構成するＩＥＥＥ８０２．１１規格に準拠したアクセスポイントである。無線ネットワーク１００５は、無線ネットワーク１００３と異なる無線ネットワークであり、さらに、無線ネットワーク１００３で使用される周波数チャネルと異なる周波数チャネルで動作する。無線ネットワーク１００５では、ＡＰ１００４とＳｏｕｒｃｅ１００２とが通信を行う。Ｓｏｕｒｃｅ１００２は、ＳＴＡ側のインタフェースを用いて無線ネットワーク１００５に参加する。
【００７３】
本処理例では、無線ネットワーク１００３と無線ネットワーク１００５とのいずれにおいても、ビーコン間隔は１００ミリ秒であるとする。さらに、Ｓｏｕｒｃｅ１００２は、処理例２のＳｉｎｋ７０１と同様に、２つの無線ネットワークに参加している場合には、５０ミリ秒毎に使用する周波数チャネルを変更する。
【００７４】
Ｓｏｕｒｃｅ１００２は、無線ネットワーク１００３で使用される周波数チャネルには不在となる期間を、Ｗｉ−Ｆｉ  Ｄｉｒｅｃｔ規格に従うＯｐｐｏｒｔｕｎｉｓｔｉｃ  Ｐｏｗｅｒ  Ｓａｖｅ（ＯｐｐＰＳ）の機構を用いてＳｉｎｋ１００１へ通知する。Ｓｏｕｒｃｅ１００２は、例えば、Ｗｉ−Ｆｉ  Ｐ２Ｐ  ｉｎｆｏｒｍａｔｉｏｎ  ｅｌｅｍｅｎｔ（Ｐ２Ｐ  ＩＥ）のＮｏｔｉｃｅ  ｏｆ  Ａｂｓｅｎｃｅ  ａｔｔｒｉｂｕｔｅによって、無線ネットワーク１００３に滞在する期間を特定する情報を含める。ここで、無線ネットワーク１００３に滞在する期間を特定する情報は、例えば、Ｔａｒｇｅｔ  Ｂｅａｃｏｎ  Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｔｉｍｅ（ＴＢＴＴ）から、無線ネットワーク１００３の周波数チャネルに滞在する最低限の期間を示す情報でありうる。これにより、Ｓｉｎｋ１００１は、Ｓｏｕｒｃｅ１００２が、無線ネットワーク１００３の周波数チャネルに不在となる時間を知ることができる。Ｎｏｔｉｃｅ  ｏｆ  Ａｂｓｅｎｃｅ  ａｔｔｒｉｂｕｔｅについては、図１３を用いて後述する。
【００７５】
続いて、処理の流れについて図１１及び図１２を用いて説明する。図１１は、Ｗｉ−Ｆｉ  Ｄｉｓｐｌａｙにより、Ｓｏｕｒｃｅ１００２の画面をＳｉｎｋ１００１でミラーリングするための手順を示したシーケンス図である。上述の処理例における図４及び図８と同様の処理については、詳細な説明を省略する。なお、図１１のシーケンスの開始時点において、Ｓｏｕｒｃｅ１００２は、無線ネットワーク７０３に、まだ参加していないものとする。
【００７６】
Ｓ１１０１〜Ｓ１１０４の処理は、Ｓ８０１〜Ｓ８０４と同様であるため、説明を省略する。なお、本処理例でも、Ｓｉｎｋ１００１がＣｌｉｅｎｔで、Ｓｏｕｒｃｅ１００２がＧＯである。Ｓｉｎｋ１００１は、Ｓｏｕｒｃｅ１００２が無線ネットワーク１００３に参加すると、映像ストリーミングを実行する際のバッファサイズを決定する処理を行う（Ｓ１１０５）。この処理について、図１２を用いて詳細に説明する。
【００７７】
図１２は、本処理例におけるバッファサイズ制御処理の流れを示すフローチャートである。本処理は、Ｓｉｎｋ１００１のバッファサイズ制御部２０５が実行する。バッファサイズ制御部２０５は、まず、Ｓｏｕｒｃｅ１００２がＯｐｐＰＳを有効にしているかを判定する（Ｓ１２０１）。Ｓｉｎｋ１００１は、例えば、Ｓｏｕｒｃｅ１００２が送信するＢｅａｃｏｎフレームのＰ２Ｐ  ＩＥの情報を確認することによってこの判定を行う。
【００７８】
図１３に、Ｐ２Ｐ  ＩＥの構成を示す。Ｐ２Ｐ  ＩＥのＰ２Ｐ  Ａｔｔｒｉｂｕｔｅに含まれる情報のうち、Ｎｏｔｉｃｅ  ｏｆ  Ａｂｓｅｎｃｅ  ａｔｔｒｉｂｕｔｅから、ＯｐｐＰＳが有効であるかを確認することができる。すなわち、Ｎｏｔｉｃｅ  ｏｆ  Ａｂｓｅｎｃｅ  ａｔｔｒｉｂｕｔｅのＣＴ  Ｗｉｎｄｏｗ  ａｎｄ  ＯｐｐＰＳ  Ｐａｒａｍｔｅｒｓの７ｂｉｔ目が１の場合はＯｐｐＰＳが有効であることが示される。一方で、７ｂｉｔ目が０の場合は、ＯｐｐＰＳが無効であることが示される。
【００７９】
Ｓｉｎｋ１００１は、Ｓｏｕｒｃｅ１００２がＯｐｐＰＳを有効としている場合（Ｓ１２０１でＹＥＳ）は、バッファサイズをＯｐｐＰＳが無効の場合と比較して、大きく設定する。Ｓｉｎｋ１００１は、例えば、バッファサイズを、（Ｂｅａｃｏｎ間隔−ＣＴＷｉｎｄｏｗ）＋５０ミリ秒分のデータの量相当の大きさとする（Ｓ１２０２）。ここで、「ＣＴＷｉｎｄｏｗ」は、図１３に示されるＰ２Ｐ  ＩＥのＮｏｔｉｃｅ  ｏｆ  Ａｂｓｅｎｃｅ  ａｔｔｒｉｂｕｔｅのＣＴ  Ｗｉｎｄｏｗ  ａｎｄ  ＯｐｐＰＳ  Ｐａｒａｍｔｅｒｓの０−６ｂｉｔ目で示される時間である。これは、ＴＢＴＴ（Ｔａｒｇｅｔ  Ｂｅａｃｏｎ  Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｔｉｍｅ）から、少なくとも、無線ネットワーク１００３の周波数チャネルに滞在する時間を示す情報である。すなわち、Ｂｅａｃｏｎ間隔からＣＴＷｉｎｄｏｗの時間を引いた時間が、無線ネットワーク１００３の周波数チャネルに不在となる時間に相当する。このため、Ｓｉｎｋ１００１は、この時間分のデータ量だけ、余分にバッファサイズを確保する。これにより、Ｓｉｎｋ１００１は、その区間においてＳｏｕｒｃｅ１００２から映像フレームが受信できなかった場合でも、映像が乱れることを抑制することができる。一方で、Ｓｏｕｒｃｅ１００２がＯｐｐＰＳを無効にしている場合（Ｓ１２０１でＮＯ）は、Ｓｉｎｋ１００１は、バッファサイズを５０ミリ秒とする（Ｓ１２０３）。
【００８０】
本処理例では、Ｓｏｕｒｃｅ１００２が無線ネットワーク１００５にも参加するためＯｐｐＰＳは有効であり、さらに、ＣＴＷｉｎｄｏｗが５０ミリ秒であるものとして以下の説明を行う。
【００８１】
Ｓｉｎｋ１００１は、バッファサイズを設定すると、処理例１と同様にＷＦＤ  Ｃａｐａｂｉｌｉｔｙ  ＮｅｇｏｔｉａｔｉｏｎおよびＷＦＤ  Ｓｅｓｓｉｏｎ  Ｅｓｔａｂｌｉｓｈｍｅｎｔを実行する（Ｓ１１０６、Ｓ１１０７）。その後、映像ストリーミングの配信が開始される。Ｓｏｕｒｃｅ１００２は、Ｂｅａｃｏｎの送信後に、５０ミリ秒間にわたってＲＴＰで映像フレームをＳｉｎｋ１００１へ送信する（Ｓ１１０９）。そして、Ｓｏｕｒｃｅ１００２は、その後、５０ミリ秒間、使用する周波数チャネルを、無線ネットワーク１００５の周波数チャネルに変更してＡＰ１００４との通信を行う（Ｓ１１１０）。以降、この手順を繰り返すことによって、映像ストリーミングの配信が行われる（Ｓ１１１１〜Ｓ１１１３）。
【００８２】
本処理例では、Ｓｏｕｒｃｅ側がチャネルを移動した場合でも、映像ストリーミングを実行しているチャネルを不在にしている時間以上のバッファを設けておくことによって、Ｓｉｎｋ側で映像の乱れが発生することを抑制する。
【００８３】
本処理例において、Ｓｏｕｒｃｅ１００２のＮｏｔｉｃｅ  ｏｆ  Ａｂｓｅｎｃｅ  ａｔｔｒｉｂｕｔｅの情報は変わらないものとして説明した。しかし、Ｎｏｔｉｃｅ  ｏｆ  Ａｂｓｅｎｃｅ  ａｔｔｒｉｂｕｔｅの情報が変わるような場合にも上述の議論を適用することができる。その場合、情報が変更されたタイミングで、図１２に示すバッファサイズ制御処理が実行されうる。これにより、Ｓｏｕｒｃｅが無線ネットワーク１００３に不在となるタイミングや期間が変更されたことに応じて、バッファサイズを変更することが可能となる。なお、短時間で頻繁にＮｏｔｉｃｅ  ｏｆ  Ａｂｓｅｎｃｅ  ａｔｔｒｉｂｕｔｅの情報が変わるような場合は、一定期間にわたるＮｏｔｉｃｅ  ｏｆ  Ａｂｓｅｎｃｅ  ａｔｔｒｉｂｕｔｅの情報に基づいて、バッファサイズが決定されうる。例えば、Ｓｉｎｋは、取得されたからＮｏｔｉｃｅ  ｏｆ  Ａｂｓｅｎｃｅ  ａｔｔｒｉｂｕｔｅの情報における、Ｓｏｕｒｃｅが所定の周波数チャネルに不在となる最大の期間を特定し、その情報に基づいて、バッファサイズを決定してもよい。
【００８４】
なお、本処理例においても、Ｓｏｕｒｃｅが接続している無線ネットワークの数に応じて、Ｓｉｎｋのバッファで保持するデータ量を決定してもよい。すなわち、Ｓｏｕｒｃｅが（例えばそれぞれ異なる仮想無線ＬＡＮインタフェースで）接続している無線ネットワークの数が多いほど、Ｓｉｎｋのバッファで保持するデータ量が大きくなるように、バッファサイズが決定されうる。なお、ＳｉｎｋとＳｏｕｒｃｅとが接続している無線ネットワークが複数存在する場合であっても、物理的に異なるインタフェースで通信を行うことができる場合は、その物理的に異なるインタフェースで接続している無線ネットワークを考慮しなくてもよい。すなわち、上述の通り、時分割で通信を行うことによって通信ができない期間が生じることが問題なのであって、そのような期間が生じないにも関わらず、バッファサイズを増やす必要はない。
【００８５】
＜処理例４＞
本処理例では、ＴＤＬＳによりＷｉ−Ｆｉ  Ｄｉｓｐｌａｙが実行されている場合に、ＴＤＬＳチャネルスイッチが行われる場合についての処理の流れについて説明する。以下では上述の処理例と異なる点について特に説明する。
【００８６】
図１４に、本処理例における無線通信システムの構成例を示す。無線通信システムは、Ｓｉｎｋ１４０１、Ｓｏｕｒｃｅ１４０２、及びＡＰ１４０３を含んで構成される。Ｓｉｎｋ１４０１は、Ｗｉ−Ｆｉ  Ｄｉｓｐｌａｙ規格に準拠したＳｉｎｋであり、上述の通信装置である。Ｓｏｕｒｃｅ１４０２は、Ｗｉ−Ｆｉ  Ｄｉｓｐｌａｙ規格に準拠したＳｏｕｒｃｅであり、上述の通信装置の通信の相手装置である。なお、本処理例のＳｉｎｋ１４０１及びＳｏｕｒｃｅ１４０２は、上述の処理例と異なり、ＴＤＬＳを用いてＷｉ−Ｆｉ  Ｄｉｓｐｌａｙを実行する。ＡＰ１４０３は、ＩＥＥＥ８０２．１１規格に準拠したアクセスポイントであり、無線ネットワーク１４０４を構成する。Ｓｉｎｋ１４０１とＳｏｕｒｃｅ１４０２はＡＰ１４０３が構成する無線ネットワーク１４０４に参加しているものとする。そして、本処理例では、Ｓｉｎｋ１４０１とＳｏｕｒｃｅ１４０２とが、ＴＤＬＳによるコネクションを確立して、そのコネクションを用いて映像ストリーミングの配信を行う。
【００８７】
本処理例では、Ｓｉｎｋ１４０１は、ＴＤＬＳのチャネルスイッチを行うか否かによって、Ｓｉｎｋ１４０１及びＳｏｕｒｃｅ１４０２が、通信中に使用されている周波数チャネルを、他の周波数チャネルに切り替える状態にあるかを判定する。すなわち、Ｓｉｎｋ１４０１は、ＡＰ１４０３を介してＳｏｕｒｃｅ１４０２と接続している際に、Ｓｉｎｋ１４０１及びＳｏｕｒｃｅ１４０２が、それらの通信装置間での通信のために周波数チャネルを変更する状態にあるかを判定する。そして、Ｓｉｎｋは、ＴＤＬＳのチャネルスイッチが行われると判定すると、バッファサイズが大きくなるように制御を行う。以下、図１５から図１７を用いて処理の流れについて詳細に説明する。
【００８８】
図１５は、Ｗｉ−Ｆｉ  Ｄｉｓｐｌａｙにより、Ｓｏｕｒｃｅ１４０２の画面をＳｉｎｋ１４０１でミラーリングするための手順を示したシーケンス図である。上述の処理例の図４、図８、又は図１１と同様の処理については、詳細な説明を省略する。
【００８９】
まず、Ｓｉｎｋ１４０１及びＳｏｕｒｃｅ１４０２は、Ｗｉ−Ｆｉ  Ｄｉｓｐｌａｙ規格に従って、ＷＦＤ  Ｄｉｓｃｏｖｅｒｙを実行する（Ｓ１５０１）。この処理は、ＴＤＬＳを用いてコネクションを確立するために、ＡＰ１４０３を経由して実行される。Ｓｉｎｋ１４０１とＳｏｕｒｃｅ１４０２は、ＷＦＤ  Ｄｉｓｃｏｖｅｒｙにより互いに互いを発見すると、Ｗｉ−Ｆｉ  Ｄｉｓｐｌａｙ規格に従って、ＴＤＬＳを用いてＷＦＤ  Ｃｏｎｎｅｃｔｉｏｎを確立する（Ｓ１５０２）。Ｓｉｎｋ１４０１とＳｏｕｒｃｅ１４０２は、例えば、ＴＤＬＳ  Ｓｅｔｕｐ  ＲｅｑｕｅｓｔとＴＤＬＳ  Ｓｅｔｕｐ  Ｒｅｓｐｏｎｓｅとを送信しあうことによって、この処理を実行する。Ｓｉｎｋ１４０１とＳｏｕｒｃｅ１４０２は、ＷＦＤ  Ｃｏｎｎｅｃｔｉｏｎを確立すると、ＡＰ１４０３を経由せずに直接フレームを送信しあうことができるようになる。
【００９０】
ＴＤＬＳによるＷＦＤ  Ｃｏｎｎｅｃｔｉｏｎが確立されると、Ｓｉｎｋ１４０１は、Ｓｏｕｒｃｅ１４０２に対してＴＤＬＳ  Ｃｈａｎｎｅｌ  Ｓｗｉｔｃｈ  Ｒｅｑｕｅｓｔを送信する（Ｓ１５０３）。これにより、Ｓｉｎｋ１４０１は、Ｓｏｕｒｃｅ１４０２がＴＤＬＳチャネルスイッチを実行するのにどの程度の時間を要するかを確認することができる。このとき、Ｓｏｕｒｃｅ１４０２がＴＤＬＳチャネルスイッチに対応していない場合には、ＴＤＬＳ  Ｃｈａｎｎｅｌ  Ｓｗｉｔｃｈ  Ｒｅｓｐｏｎｓｅが送信されず、または、Ｓｉｎｋ１４０１による要求を拒絶するメッセージが送信される。本処理例では、Ｓｏｕｒｃｅ１４０２は、ＴＤＬＳ  Ｃｈａｎｎｅｌ  Ｓｗｉｔｃｈ  Ｒｅｑｕｅｓｔを承諾し、ＴＤＬＳ  Ｃｈａｎｎｅｌ  Ｓｗｉｔｃｈ  Ｒｅｓｐｏｎｓｅを送信するものとする（Ｓ１５０４）。Ｓｉｎｋ１４０１は、ＴＤＬＳ  Ｃｈａｎｎｅｌ  Ｓｗｉｔｃｈ  Ｒｅｓｐｏｎｓｅを受信すると、バッファサイズ制御処理を実行する（Ｓ１５０５）。本処理について、図１６を用いて詳細に説明する。
【００９１】
図１６は、本処理例に係るバッファサイズ制御処理の処理の流れを示すフローチャートである。本処理は、Ｓｉｎｋ１４０１のバッファサイズ制御部２０５によって実行される。まず、バッファサイズ制御部２０５は、Ｓｉｎｋ１４０１とＳｏｕｒｃｅ１４０２との間でのＷｉ−Ｆｉ  Ｄｉｓｐｌａｙのコネクションに、Ｗｉ−Ｆｉ  ＤｉｒｅｃｔとＴＤＬＳとのいずれが用いられているかを判定する（Ｓ１６０１）。ここで、Ｗｉ−Ｆｉ  Ｄｉｒｅｃｔが用いられている場合（Ｓ１６０１でＮＯ）は、バッファサイズ制御部２０５は、バッファサイズを５０ミリ秒に設定する（Ｓ１６０４）。一方、ＴＤＬＳが用いられている場合（Ｓ１６０１でＹＥＳ）、バッファサイズ制御部２０５は、次に、Ｓｏｕｒｃｅ１４０２がＴＤＬＳチャネルスイッチに対応しているかを判定する（Ｓ１６０２）。そして、Ｓｏｕｒｃｅ１４０２がＴＤＬＳチャネルスイッチに対応していない場合（Ｓ１６０２でＮＯ）は、バッファサイズ制御部２０５は、バッファサイズを５０ミリ秒に設定する（Ｓ１６０４）。Ｓｏｕｒｃｅ１４０２がＴＤＬＳチャネルスイッチに対応している場合（Ｓ１６０２でＹＥＳ）は、バッファサイズ制御部２０５は、バッファサイズをより長く設定する。例えば、バッファサイズ制御部２０５は、バッファサイズを、
Ｓｉｎｋ１４０１のＳｗｉｔｃｈ  ＴｉｍｅとＳｏｕｒｃｅ１４０２のＳｗｉｔｃｈ  Ｔｉｍｅとの最大値＋５０［ミリ秒］
に設定する（Ｓ１６０３）。Ｓｗｉｔｃｈ  Ｔｉｍｅの情報は、ＴＤＬＳ  Ｃｈａｎｎｅｌ  Ｓｗｉｔｃｈ  Ｒｅｑｕｅｓｔ／Ｒｅｓｐｏｎｓｅに含まれて、Ｓｉｎｋ１４０１とＳｏｕｒｃｅ１４０２との間で交換される（Ｓ１５０３及びＳ１５０４）。ＴＤＬＳ  Ｃｈａｎｎｅｌ  Ｓｗｉｔｃｈ  ＲｅｑｕｅｓｔとＴＤＬＳ  Ｃｈａｎｎｅｌ  Ｓｗｉｔｃｈ  Ｒｅｓｐｏｎｓｅに含まれる情報要素であるＣｈａｎｎｅｌ  Ｓｗｉｔｃｈ  Ｔｉｍｉｎｇ  ｅｌｅｍｅｎｔの構成例を、図１７に示す。
【００９２】
図１７の構成において、Ｓｗｉｔｃｈ  Ｔｉｍｅには、チャネルスイッチにかかる時間が含まれる。ＴＤＬＳ  Ｃｈａｎｎｅｌ  Ｓｗｉｔｃｈ  Ｒｅｑｕｅｓｔから、Ｓｉｎｋ１４０１がチャネルスイッチに要する時間がわかり、ＴＤＬＳ  Ｃｈａｎｎｅｌ  Ｓｗｉｔｃｈ  Ｒｅｓｐｏｎｓｅから、Ｓｏｕｒｃｅ１４０２がチャネルスイッチに要する時間がわかる。Ｓｉｎｋ１４０１が、これらの値の最大値分だけバッファサイズを大きくすることで、ＴＤＬＳチャネルスイッチにかかる時間分だけ映像フレームを受信できない場合でも、バッファに映像フレームが保持されていることとなる。このため、Ｓｉｎｋ１４０１における映像の乱れを抑制することができる。
【００９３】
Ｓｉｎｋ１４０１は、バッファサイズ制御処理の完了後、Ｓｏｕｒｃｅ１４０２との間でＷＦＤ  Ｃａｐａｂｉｌｉｔｙ  Ｎｅｇｏｔｉａｔｉｏｎ及びＷＦＤ  Ｓｅｓｓｉｏｎ  Ｅｓｔａｂｌｉｓｈｍｅｎｔを実行する（Ｓ１５０６、Ｓ１５０７）。そして、Ｓｉｎｋ１４０１とＳｏｕｒｃｅ１４０２との間での映像ストリーミングの配信が開始される。
【００９４】
上述のように、本処理例では、ＷＦＤ  Ｓｅｓｓｉｏｎ  Ｅｓｔａｂｌｉｓｈｍｅｎｔの実行前に、ＴＤＬＳ  Ｃｈａｎｎｅｌ  Ｓｗｉｔｃｈ  ＲｅｑｕｅｓｔおよびＲｅｓｐｏｎｓｅの送受信を行い、Ｓｉｎｋ１４０１のバッファサイズが決定される。これにより、Ｓｉｎｋ１４０１において、映像再生中にバッファ量が変更されることを抑制することができ、映像のバッファサイズを変更することによる一時的な映像の乱れを防ぐことができる。
【００９５】
ＷＦＤ  Ｓｅｓｓｉｏｎ  Ｅｓｔａｂｌｉｓｈｍｅｎｔの完了後、Ｓｏｕｒｃｅ１４０２は、映像フレームを送信する前にＴＤＬＳ  Ｃｈａｎｎｅｌ  Ｓｗｉｔｃｈ  Ｒｅｑｕｅｓｔを送信する（Ｓ１５０８）。そして、Ｓｉｎｋ１４０１は、これに対してＴＤＬＳ  Ｃｈａｎｎｅｌ  Ｓｗｉｔｃｈ  Ｒｅｓｐｏｎｓｅで応答する（Ｓ１５０９）。これにより、チャネルスイッチが実行される。そして、チャネルスイッチが行われた後に、Ｓｏｕｒｃｅ１４０２が、ＲＴＰで、映像フレームをＳｉｎｋ１４０１へ送信する（Ｓ１５１０）。その後は、Ｓｉｎｋ１４０１とＳｏｕｒｃｅ１４０２とが、定期的にＡＰ１４０３のチャネルに戻り、その後、再びＴＤＬＳチャネルスイッチにより周波数チャネルを変更して、映像フレームの送受信を繰り返す。
【００９６】
以上のようにして、本処理例では、ＴＤＬＳチャネルスイッチが実行される期間において、Ｓｉｎｋが映像フレームを受信できないことによる映像の乱れを抑制することができる。なお、本処理例においても、処理例３と同様に、ＴＤＬＳ  Ｃｈａｎｎｅｌ  Ｓｗｉｔｃｈ  Ｒｅｑｕｅｓｔ／Ｒｅｓｐｏｎｓｅに含まれるＳｗｉｔｃｈ  Ｔｉｍｅの値が変更された場合に、それに合わせてバッファサイズが変更されてもよい。
【００９７】
なお、処理例１において、ＳｉｎｋがＩＤＲを要求するメッセージを送信しているが、処理例２〜４においても、Ｓｉｎｋは、ＩＤＲを要求するメッセージを送信するようにしてもよい。例えば、処理例２では、Ｓｉｎｋ７０１は、無線ネットワーク７０３のチャネルに戻ってきたタイミングでそのようなメッセージを送信しうる。処理例３では、Ｓｏｕｒｃｅ１００２が無線ネットワーク１００３のチャネルに戻ってきたタイミング、すなわちＴＢＴＴでＢｅａｃｏｎをＳｉｎｋ１００１が受信した直後に、Ｓｉｎｋ１００１はそのようなメッセージを送信しうる。
【００９８】
なお、上述の処理例１〜３では、ＳｏｕｒｃｅとＳｉｎｋとのいずれかが、周波数チャネルを変更する可能性がある状態となる場合の例について説明したが、これらの両方が、周波数チャネルを変更する場合にも、上述の議論を適用可能である。この場合、ＳｏｕｒｃｅとＳｉｎｋとがそれぞれ周波数チャネルを変更するタイミング等に応じて、ＳｏｕｒｃｅとＳｉｎｋとが通信できる期間とそれ以外の期間との長さの少なくともいずれかに応じて、バッファのサイズが決定されうる。
【００９９】
上述の実施形態では、様々な専門用語が用いられているが、本実施形態に係る技術をその専門用語に関する技術規格等に限定することは意図されていない。すなわち、様々な同様の通信システムに対して、上述の各技術を適用することが予定される。
【０１００】
＜＜その他の実施形態＞＞
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【符号の説明】
【０１０１】
２０１：無線ＬＡＮ制御部、２０２：バッファリング制御部、２０３：ストリーミング受信制御部、２０４：チャネル移動検出部、２０５：バッファサイズ制御部、２０６：表示部
【図１】
0006670062.tif 000002
【図２】
0006670062.tif 000003
【図３】
0006670062.tif 000004
【図４】
0006670062.tif 000005
【図５】
0006670062.tif 000006
【図６】
0006670062.tif 000007
【図７】
0006670062.tif 000008
【図８】
0006670062.tif 000009
【図９】
0006670062.tif 000010
【図１０】
0006670062.tif 000011
【図１１】
0006670062.tif 000012
【図１２】
0006670062.tif 000013
【図１３】
0006670062.tif 000014
【図１４】
0006670062.tif 000015
【図１５】
0006670062.tif 000016
【図１６】
0006670062.tif 000017
【図１７】
0006670062.tif 000018