以下、添付の図面を参照して実施形態を詳細に説明する。なお、以下の実施形態において示す構成は一例に過ぎず、本発明は以下の構成に限定されるものではない。
<実施形態1>
図1に、本実施形態に係る通信装置101が参加するネットワークのネットワーク構成を示す。図1の各装置は、IEEE802.11シリーズ規格に準拠した無線通信方式で通信を行う。IEEEとは、Institute of Electrical and Electronics Engineersの略である。
通信装置101は、通信装置102とIEEE802.11シリーズ規格に準拠した無線ネットワークであるインフラストラクチャネットワーク上で、AP(アクセスポイント)103を介して無線通信を行う。また、通信装置101は、通信装置102とWi-Fi Direct規格に準拠した無線通信も行うことができる。すなわち通信装置101と通信装置102とは、AP103を介さず直接通信することができる。
なお、各装置はIEEE802.11シリーズ規格に準拠した無線通信に加えて、Bluetooth(登録商標)、NFC、UWB、ZigBee、MBOAなどの他の無線通信方式に準拠した無線通信も利用してもよい。なお、UWBはUltra Wide Bandの略であり、MBOAはMulti Band OFDM Allianceの略である。また、NFCはNear Field Communicationの略である。UWBには、ワイヤレスUSB、ワイヤレス1394、WiNETなどが含まれる。また、有線LANなどの有線通信方式に準拠した通信方式も利用してよい。
本実施形態の通信装置101(送信装置)はWi-Fi Miracast R2(Release2)規格に準拠し、通信装置102(受信装置)と表示している画面や再生している音声を共有する。具体的には、送信装置が表示している画面や再生している音声の情報として画像データや音声データを、ネットワークを介して受信装置へ伝送することで、表示している画面や再生している音声を送信装置と受信装置とで共有する。これを、ミラーリングという。通信装置101は、Wi-Fi Miracast R2規格において、自装置が表示している画面や再生している音声の少なくとも一方を送信するソース機器の役割を担う。また、通信装置102は、Wi-Fi Miracast R2規格において、ソース機器から送信される画面や音声を受信して再生するシンク機器の役割を担う。通信装置101と通信装置102とがミラーリングを行う場合、通信装置101が表示している画面や再生している音声が、通信装置101と通信装置102とで共有される。
通信装置101(ソース機器)の具体的な例としては、タブレット、スマートフォン、PC、携帯電話、カメラ、ビデオカメラなどが挙げられるが、これらに限定されない。通信装置101は、自装置が表示している画面あるいは再生している音声の少なくとも一方を他の通信装置に送信することができる通信装置であればよい。
また、通信装置102(シンク機器)の具体的な例としては、タブレット、スマートフォン、PC、携帯電話、テレビ、テレビ用アダプタ、セットトップボックス、ヘッドマウントディスプレイなどが挙げられる。また他に通信装置102の具体的な例として、プロジェクター、ディスプレイ、カーナビゲーション装置などが挙げられるが、これらに限定されない。通信装置102は、他の通信装置が表示している画面あるいは再生している音声の少なくとも一方を受信し、再生することができる通信装置であればよい。
通信装置101は、Wi-Fi Miracast R2規格に準拠しているので、Wi-Fi Direct規格に準拠したネットワークを介したミラーリングに加え、インフラストラクチャネットワークを介したミラーリングを行うことができる。また、通信装置102も同様である。
通信装置101と通信装置102とが、通信装置101をソース機器、通信装置102をシンク機器として、Wi-Fi Direct規格に準拠したネットワークを介したミラーリングを行う場合を説明する。Wi-Fi Direct規格に基づいたミラーリングでは、ソース機器は表示している画面や再生している音声の情報として、画像データや音声データのストリームを、ネットワークを介してシンク機器へ直接伝送(ストリーミング)する。なお、画像データはソース機器が表示している画面を符号化したものであり、音声データはソース機器が再生している音声を符号化したものである。そして、シンク機器は、画像データや音声データのストリームを受信し、ソース機器と同期して再生する。つまり、ミラーリングを行うソース機器とシンク機器とは、表示している画面や再生している音声を共有する。
また、通信装置101(ソース機器)と通信装置102(シンク機器)とが、インフラストラクチャネットワークを介してミラーリングを行う場合を説明する。インフラストラクチャネットワークを介したミラーリングでは、ソース機器は画像データや音声データのストリームを、AP103を介してシンク機器に伝送する。シンク機器は、AP103を介して画像データや音声データのストリームを受信し、ソース機器と同期して再生する。
また、通信装置101と通信装置102とはミラーリングに加えて、あるいは代えて、Wi-Fi Direct規格に準拠したネットワーク、あるいはインフラストラクチャネットワークを介したコンテンツリダイレクトを行ってもよい。コンテンツリダイレクトでは、ソース機器はシンク機器に、ソース機器以外の外部装置からデータを取得させ、シンク機器に当該データを再生させる。このとき、ソース機器は、シンク機器にデータを外部装置から取得させるために必要な情報を送信する。シンク機器が取得するデータとは、例えばコンテンツのことであり、画像データ、文書データ、音声データ、映像データの何れか一つを含む。他に、これらのデータを再生するためのソフトウェアデータや、GUIデータ、メタデータの少なくとも何れか一つを含んでいてもよい。
ソース機器がシンク機器に送信する情報とは、外部装置上にあるコンテンツの情報である。コンテンツの情報は、例えば、外部装置上にあるコンテンツを識別するための識別子や、サービス名、コンテンツの所在情報(URI、URL)、再生開始時間(オフセット)などの情報である。なお、受信するコンテンツの情報は、これらの情報の一部であってもよい。コンテンツの識別子とは、コンテンツを一意に決定するための識別子のことである。また、URIはUniform Resource Identifierの、URLはUniform Resource Locatorの夫々、略である。
また、通信装置101と通信装置102とはミラーリングに加えて、あるいは代えて、Wi-Fi Direct規格に準拠したネットワーク、あるいはインフラストラクチャネットワークを介したダイレクトストリーミングを行ってもよい。ダイレクトストリーミングでは、ソース機器はシンク機器に、ソース機器が記憶しているデータを送信し、シンク機器は当該データを受信し、再生する。この場合ソース機器は当該データを復号および再符号化することなく、そのままの符号化方式でシンク機器に送信することができる。ここで、シンク機器が受信するデータとは、例えばコンテンツのことである。
なお、図1では、通信装置101がミラーリングするための通信方式として、Wi-Fi Miracast R2規格を用いるものとした。しかしWi-Fi Miracast R2規格に限らず、WiDiやApple AirPlayといった他の通信方式を用いてもよい。なお、WiDiはIntel Wireless Displayの略である。具体的には、上述のミラーリング、コンテンツリダイレクト、あるいはダイレクトストリーミングの少なくとも何れか一つに相当する無線通信が行える通信方式であればよい。また、Wi-Fi Miracast R2規格では、通信装置101はWi-Fi Direct規格に準拠したネットワークあるいはインフラストラクチャネットワークを介してミラーリングを行うが、これに限らずASPを用いることも可能である。なお、ASPはApplication Service Platformの略である。
図2に、通信装置101のハードウェア構成を示す。
通信装置101は、記憶部201、制御部202、機能部203、入力部204、出力部205、通信部206、およびアンテナ207を備える。
記憶部201はROMやRAMなどの1以上のメモリにより構成され、後述する各種動作を行うためのコンピュータプログラムや、無線通信のための通信パラメータなどの各種情報を記憶する。ROMはRead Only Memoryの、RAMはRandom Access Memoryの夫々略である。なお、記憶部201として、ROM、RAMなどのメモリの他に、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD-ROM、CD-R、磁気テープ、不揮発性のメモリカード、DVDなどの記憶媒体を用いてもよい。また、記憶部201が複数のメモリなどを備えていてもよい。
制御部202はCPUやMPUなどの1以上のプロセッサにより構成され、記憶部201に記憶されたコンピュータプログラムを実行することにより通信装置101全体を制御する。CPUはCentral Processing Unitの、MPUはMicro Processing Unitの略であり、コンピュータとして機能する。なお、制御部202は、記憶部201に記憶されたコンピュータプログラムとOS(Operating System)との協働により通信装置101全体を制御するようにしてもよい。また、制御部202がマルチコアなどの複数のプロセッサを備え、複数のプロセッサにより通信装置101全体を制御するようにしてもよい。
また、制御部202は記憶部201に記憶されたコンピュータプログラムを実行することで、P2P探索機能、およびBSS探索機能を実現する。ここで、P2P探索機能とは、通信装置101がWi-Fi Direct規格に準拠した無線通信を介してミラーリングを行う相手装置である対向機を探索する機能である。なお、P2Pとは、Peer to Peerの略である。また、BSS探索機能とは、通信装置101がインフラストラクチャネットワークを介してミラーリングを行う相手装置である対向機を探索する機能である。なお、BSSとはBasic Service Setの略である。通信装置101は、P2P探索機能を用いて対向機を探索するか、あるいはBSS探索機能を用いて探索するかを、通信装置101の接続状態や接続履歴、各種設定などに基づいて決定する。なお、通信装置101はミラーリングに加えて、あるいは代えて、コンテンツリダイレクトやダイレクトストリーミングを行う対向機を探索してもよい。
また、制御部202は、記憶部201に記憶されたコンピュータプログラムを実行することで、ソース機器としてのミラーリング機能を実現する。ここで、ソース機器としてのミラーリング機能とは、自装置が表示している画面をキャプチャし符号化した画像データや、再生している音声を符号化した音声データをシンク機器に送信する機能である。また、制御部202は記憶部201に記憶されたコンピュータプログラムを実行することで、ソース機器としてのミラーリング機能に加えて、あるいは代えて、コンテンツリダイレクト機能やダイレクトストリーミング機能を実現してもよい。ソース機器としてのコンテンツリダイレクト機能とは、シンク機器で再生するコンテンツを、シンク機器がソース機器以外の外部装置から取得するために必要な情報をシンク機器に送信する機能である。また、ソース機器としてのダイレクトストリーミング機能とは、記憶部201に記憶されたコンテンツをシンク機器に送信する機能である。
また、制御部202は、機能部203を制御して、撮像やコンテンツの閲覧などの所定の処理を実行する。機能部203は、通信装置101が所定の処理を実行するためのハードウェアである。例えば、通信装置101がカメラである場合、機能部203は撮像部であり、撮像処理を行う。このとき、通信装置101は、撮像部が生成したデータを、後述の出力部205によって画面上に表示し、制御部202のミラーリング機能によって他の通信装置に送信することでミラーリングを実行することができる。あるいは、通信装置101の記憶部201に記憶されているデータを出力部205によって画面上に表示し、同様にミラーリングを実行してもよい。
入力部204は、ユーザからの各種操作の受付を行う。出力部205は、モニタ画面やスピーカーなどを介してユーザに対して各種出力を行う。ここで、出力部205による出力とは、画面上への表示や、スピーカーによる音声出力、振動出力などであってもよい。なお、出力部205が出力するモニタ画面は、通信装置101が備えるモニタ画面である。あるいは、通信装置101と接続された他の装置が有するモニタ画面であってもよい。なお、タッチパネルのように入力部204と出力部205の両方を1つのモジュールで実現するようにしてもよい。入力部204、出力部205は、夫々通信装置101とは別体であってもよい。
通信部206は、IEEE802.11シリーズ規格に準拠した無線通信の制御や、有線LANなどの有線通信の制御、IP(Internet Protocol)通信の制御を行う。また、通信部206はアンテナ207を制御して、無線通信のための無線信号の送受信を行う。通信装置101は通信部206を介して、画像データ、文書データ、音声データ、映像データなどを通信装置102と通信する。
通信装置102は通信装置101と同様のハードウェア構成を有する。通信装置102の記憶部201、機能部203、入力部204、出力部205、通信部206、およびアンテナ207は通信装置101と同様であるため説明を省略する。制御部202についても、通信装置101の制御部202と同様であるが、違いについて簡単に説明する。
制御部202は、記憶部201に記憶されたコンピュータプログラムを実行することで、シンク機器としてのミラーリング機能を実現する。ここで、シンク機器としてのミラーリング機能とは、ソース機器が表示している画面をキャプチャし符号化した画像データや、再生している音声を符号化した音声データを受信し、復号、再生する機能である。また、制御部202は記憶部201に記憶されたコンピュータプログラムを実行することで、シンク機器としてのミラーリング機能に加えて、あるいは代えて、コンテンツリダイレクト機能やダイレクトストリーミング機能を実現してもよい。シンク機器としてのコンテンツリダイレクト機能とは、ソース機器から送られた情報を基にソース機器以外の外部装置から再生したいコンテンツを取得し、再生する機能である。また、シンク機器としてのダイレクトストリーミング機能とは、ソース機器から送信されるコンテンツを受信し、再生する機能である。
なお、通信装置101および通信装置102は、画像の表示と音声の再生のどちらも行える装置である。しかし、通信装置101および通信装置102のどちらも、画像の表示あるいは音声の再生の何れか一方しか行えない装置であってもよい。
図3は、通信装置101が通信装置102を探索し、ミラーリングを開始する際に、記憶部201に記憶されたコンピュータプログラムを制御部202が読み出し、実行することで実現される処理のフローチャートを示す。
本フローチャートでは、ソース機器の役割を担う通信装置101がミラーリングを行う対向機を探索するが、これに限らず、シンク機器の役割を担う通信装置102がミラーリングを行う対向機を探索してもよい。
なお、図3に示すフローチャートの少なくとも一部をハードウェアにより実現してもよい。ハードウェアにより実現する場合、例えば、所定のコンパイラを用いることで、各ステップを実現するためのコンピュータプログラムからFPGA上に自動的に専用回路を生成すればよい。FPGAとは、Field Programmable Gate Arrayの略である。また、FPGAと同様にしてGate Array回路を形成し、ハードウェアとして実現するようにしてもよい。また、ASIC(Application Specific Integrated Circuit)により実現するようにしてもよい。
本フローチャートの処理は、通信装置101において、ミラーリングを行う所定のアプリケーションが起動したことに基づいて開始される。あるいは通信装置101の電源が投入されたことにより開始してもよい。あるいは通信装置101が、AP103が構築するインフラストラクチャネットワークに参加したことに基づいて開始してもよい。あるいは通信装置101が通信装置102とWi-Fi Direct規格に準拠したネットワークを確立したことに基づいて開始してもよい。
通信装置101の制御部202は、入力部204に対するユーザ操作に基づいて、ミラーリングの開始指示を受け付ける(ステップS301)。本ステップで通信装置101に対してユーザが行うユーザ操作の例としては、例えば通信装置101のモニタ画面上に表示されたミラーリング開始メニューや制御ボタンの押下が挙げられる。しかし、これらに限らず所定のキーボード操作やマウス操作、タッチ操作、ジョイスティック操作などのユーザ操作をミラーリング開始指示としてもよい。また、所定のジェスチャーや、リモコンの制御ボタンの押下、所定のコンテンツの再生開始、所定のアプリケーションの立ち上げなどのユーザ操作をミラーリング開始指示としてもよい。
通信装置101の制御部202は、通信装置101とAPとの接続状態を確認する(ステップS302)。本ステップでの確認方法としては、通信装置101の通信部206が何れかのAPと接続済みか否かの状態を確認することで可能である。通信装置101は、ステップS301においてミラーリングの開始指示を受け付ける前に、例えば通信装置101の記憶部201に記憶されている、過去に接続したことがあるAPと接続するための設定情報を用いてAPと接続する。APと接続するための設定情報とは、APのSSIDやパスワードなどを指す。あるいはユーザによって入力された、APと接続するための設定情報を用いてAPと接続してもよい。通信装置101は、ステップS301でミラーリング開始操作が行われたことに基づいて、APと接続してもよい。その場合、ステップS302の処理は、通信装置101がAPと接続してから行われる。あるいは、通信装置101がAPとの接続を試みてから所定の時間が経過してからステップS302の処理を行ってもよい。なお、通信装置101は、例えば、APと接続するための設定情報が未設定である場合、APと接続することができない。
通信装置101の制御部202は、通信装置101とAPとが接続済みであるか判定する(ステップS303)。当該判定は、ステップS302で行った、通信装置101とAPとの接続状態の確認に基づいて行われる。通信装置101とAPとが接続済みでないと判定されると(ステップS303のNo)、通信装置101の制御部202はステップS307の処理を行う。一方、通信装置101とAPとが接続済みであると判定されると(ステップ303のYes)、通信装置101の制御部202はBSS探索機能によりミラーリングを行う対向機を探索する(ステップS304)。
ステップS304における対向機の探索は、Wi-Fi Miracast R2規格に準拠し、マルチキャストDNS(multicast DNS、mDNS)によって行われる。なお、DNSとはDomain Name Systemの略である。具体的には、通信装置101が接続しているAPを介して、インフラストラクチャネットワークに参加している他の通信装置に対してDNSパケットをマルチキャスト送信することにより行われる。通信装置101は、APを介してミラーリングを行うことができる対向機から応答を受信することで対向機を検出する。
具体的には、通信装置101はAPを介して、PTR(Pointer)レコードやSRV(Service)レコードなどのDNSレコードを含むDNSパケットを送信する。DNSレコードは、通信装置101がWi-Fi Miracast R2規格に準拠した無線通信を行うことができる通信装置を指定して探索していることを示す。具体的には、DNSレコードにはソース機器を示すdisplaysrc、またはシンク機器を示すdisplayの何れか一つのサービス名が含まれる。例えば、通信装置101はソース機器であり、ミラーリングを行う対向機としてシンク機器を探索するので、DNSレコードにはシンク機器を示すdisplayを含める。
通信装置101はDNSパケットを、任意の送信間隔や送信回数で送信することが可能である。本ステップにおいて、通信装置101は所定の回数に達するまでDNSパケットの送信を繰り返し行うものとする。そして、所定の回数DNSパケットを送信すると、通信装置101はステップS305の処理を行う。あるいは、通信装置101は所定の時間が経過するまでDNSパケットを繰り返し送信してもよい。所定の時間が経過すると、通信装置101はステップS305の処理を行う。また、通信装置101は所定の台数の対向機から応答を受信したことに基づいて、ステップS305の処理を行ってもよい。
通信装置101の制御部202は、ステップS304でBSS探索機能により対向機を探索した結果を出力部205によってモニタ画面へ表示する(ステップS305)。ここで図4は、通信装置101が対向機を探索した結果として表示する表示画面の一例を示す図である。探索結果画面401に示すように、表示画面にはユーザへ対向機の選択を促すメッセージと共に、BSS探索機能による探索の結果として検出された対向機の一覧をリスト表示する。なお、探索結果画面401が表示されるタイミングは、対向機が検出された(つまり、対向機からDNSパケットの応答を受信した)タイミングである。また、探索結果画面401は、新たな対向機を検出した(つまり、新たな対向機からDNSパケットを受信した)タイミングで、表示を更新する。あるいは、探索結果画面401の更新は、所定の時間間隔で定期的に行われてもよい。また、探索結果画面401のリスト中の対向機の表示順序は、検出された順序でも良いし、電波強度の強い順序であっても良いし、通信装置101から距離が近い順であってもよい。
続いて、通信装置101の制御部202は、ステップS305で表示した、BSS探索機能により検出された対向機の中に、所望の対向機があるか判定する(ステップS306)。ここでの判定は、所定の時間内にユーザによる対向機の選択操作があるか否かに基づいて判定する。通信装置101の制御部202は、図4の探索結果画面401に表示された対向機の探索結果の一覧から、ユーザが入力部204を介し、所定の時間内に特定の対向機を選択した場合は、所望の対向機があると判定する。あるいは、通信装置101の制御部202は、所定の時間が経過してもユーザが対向機の選択を行わない場合は、所望の対向機がないと判定する。
あるいは、ユーザが入力部204を介して、探索結果画面401の「その他」を選択した場合、通信装置101の制御部202は所望の対向機がないと判定してもよい。もしくは、探索結果画面401に「再探索」など、対向機の探索を再度行えるような選択肢が表示されている場合、当該選択肢をユーザが選択したことに基づいて、通信装置101の制御部202は所望の対向機がないと判定してもよい。
また、ユーザによる対向機の選択操作の有無以外にも、通信装置101の制御部202は、例えば過去に接続したことのある対向機がBSS探索機能による対向機の探索結果に含まれるか否かに基づいて、ステップS306の判定を行ってもよい。具体的には通信装置101の制御部202は、記憶部201に記憶された接続履歴とBSS探索機能による探索結果とを比較し、一致する対向機がある場合には所望の対向機があると判定する。また、通信装置101の制御部202は、記憶部201に記憶された接続履歴とBSS探索機能による探索結果とで一致する対向機がない場合には、所望の対向機がないと判定する。
ステップS306で所望の対向機があると判定された場合(ステップS306のYes)、通信装置101の制御部202はステップS310の処理を行う。一方、所望の対向機がないと判定された場合(ステップS306のNo)、通信装置101の制御部202はステップS307の処理を行う。
通信装置101の制御部202は、P2P探索機能によりミラーリングを行う対向機を探索する(ステップS307)。ステップS307における探索は、Wi-Fi Miracast R2規格に準拠し、ビーコン(Beacon)やプローブ要求(Probe Request)、プローブ応答(Probe Response)などのフレームの送受信によって行われる。各フレームには、デバイス情報などのサブエレメントを含む情報エレメントWFD IE(Wi-Fi Display Information Element)が含まれる。例えば、通信装置101はソース機器であることから、通信装置101はWFD IEとして、自装置がソース機器であることを示すサブエレメントを含み、当該WFD IEを含むビーコンやプローブ要求、プローブ応答を送信する。なお、ビーコンやプローブ要求、プローブ応答を送信する装置がシンク機器であった場合、自分がシンク機器であることを示すサブエレメントを含むWFD IEを送信する。また、ビーコンやプローブ要求、プローブ応答を送信する装置が、ソース機器としての役割と、シンク機器としての役割との両方を行える場合、デュアルロール機器であることを示すサブエレメントを含むWFD IEを送信する。
次に通信装置101の制御部202は、ステップS307でP2P探索機能により対向機を探索した結果を出力部205によって画面へ表示する(ステップS308)。通信装置101の制御部202はプローブ応答を受信し、受信したプローブ応答がミラーリングを行うことができる対向機から送信されたものである場合、当該プローブ応答を送信した通信装置を対向機として出力部205によって画面へ表示する。あるいは、通信装置101はビーコンを受信し、ビーコンがミラーリングを行うことができる対向機から送信されたものである場合、当該ビーコンを送信した通信装置を対向機として出力部205によって画面へ表示してもよい。通信装置101はソース機器であるので、ミラーリングを行うことができる対向機とは、シンク機器あるいはデュアルロール機器のことである。ステップS308で表示される表示画面は図4と同様である。なお、P2P探索機能による探索結果は、ステップS305のBSS探索機能による探索結果と区別して表示しても良いし、区別せずに混在して表示しても良い。また、通信装置101の制御部202は、BSS探索機能による探索結果を非表示にして、P2P探索機能による探索結果だけを表示しても良い。通信装置101の制御部202は、ステップS308の処理を行うと、次にステップS309の処理を行う。
通信装置101の制御部202は、ステップS308で行った表示された、P2P探索機能により検出された対向機の中に、所望の対向機があるか判定する(ステップS309)。当該判定は、ステップS306と同様に行う。所望の対向機があると判定されると(ステップS309のYes)、通信装置101の制御部202はステップS310の処理を行う。一方、所望の対向機がないと判定されると(ステップS309のNo)、通信装置101の制御部202はステップS302の処理を行う。
なお、所望の対向機がないと判定された場合(ステップS309のNo)、通信装置101の制御部202は、対向機の探索を続行するか判定してもよい。本判定は、ユーザ指示に基づいて行われる。例えば、ステップS308で表示された探索結果からユーザが所定の時間内に対向機を選択しなかった場合、通信装置101の制御部202は、ユーザに対向機の探索を続行するか、出力部205が画面に選択肢を表示することでユーザに選択させる。本判定において通信装置101の制御部202は、ユーザが対向機の探索を続行すると選択すると、対向機の探索を続行すると判定し、ステップS302の処理を行う。一方、通信装置101の制御部202は、ユーザが対向機の探索を続行しないと選択すると、対向機の探索を続行しないと判定し、本フローチャートの処理を終了する。なお、通信装置101の制御部202は、通信装置101が対向機の探索を開始してから所定の時間が経過したか、あるいは通信装置101が対向機の探索を所定の回数行ったかに基づいて、対向機の探索を続行するか判定してもよい。この場合、通信装置101の制御部202は、通信装置101が対向機の探索を開始してから所定の時間が経過した場合や、通信装置101が対向機の探索を所定の回数行った場合、対向機の探索を続行しないと判定する。あるいは、通信装置101の制御部202は、通信装置101が対向機の探索を開始してから所定の時間が経過していない場合や、通信装置101が対向機の探索を所定の回数行っていない場合、対向機の探索を続行すると判定する。
通信装置101の制御部202は、ステップS305で表示されたBSS探索機能による探索結果、あるいはステップS308で表示されたP2P探索機能による探索結果の何れかからミラーリングを行う対向機を決定する(ステップS310)。具体的には、ステップS305あるいはステップS308で探索結果画面401に表示された対向機の探索結果の一覧から、ユーザがステップS306あるいはステップS309で入力部204を介し選択した対向機を、ミラーリングを行う対向機として決定する。なお、ステップS306あるいはステップS309の判定を行う際に、所定の時間内にユーザによる対向機の選択操作が行われた場合、当該選択操作により選択された対向機を、ミラーリングを行う対向機として決定すればよい。なお、通信装置101の制御部202は、ユーザによる対向機の選択操作以外に、通信装置101が過去に接続したことがある対向機を検出した場合、当該対向機を、ミラーリングを行う対向機として選択してもよい。あるいは通信装置101の制御部202は、過去の接続履歴から最も直近に接続した機器を対向機として決定してもよいし、通信装置101から最も近い距離にある機器を対向機として決定してもよい。なお、過去の接続履歴から対向機を決定する場合、ユーザによる選択がなくても本ステップ以降の処理へ進んでもよい。
次に通信装置101の制御部202は、ステップS310でミラーリングを行うと決定した対向機と接続セットアップを行う(ステップS311)。ミラーリングを行うと決定した対向機を、通信装置101がP2P探索機能により検出した場合、通信装置101は当該対向機とWi-Fi Direct規格に準拠した無線通信を確立するための接続セットアップを行う。また、ミラーリングを行うと決定した対向機を、通信装置101がBSS探索機能により検出した場合、通信装置101は当該対向機とインフラストラクチャネットワークを介したミラーリングを行うための接続セットアップを行う。これらの接続セットアップは、Wi-Fi Miracast R2規格に準拠して行われる。
まず、ステップS310でミラーリングを行うと決定した対向機と、通信装置101がWi-Fi Direct規格に準拠した無線通信を確立するための接続セットアップを行う場合を説明する。この場合、接続セットアップには、Wi-Fi Miracast R2規格に基づき、ビーコン(Beacon)、プローブ要求/応答(Probe Request/Response)などのフレームを利用する。また、アソシエーション要求/応答(Association Request/Response)、再アソシエーション要求/応答(Reassociation Request/Response)などのフレームも利用してよい。また、GO(Group Owner)ネゴシエーション要求/応答/確認(GO Negotiation Request/Response/Confirm)などのフレームも利用してよい。さらに、P2Pインビテーション要求/応答(P2P Invitation Request/Response)を利用してもよい。また、プロビジョンディスカバリ要求/応答(Provision Discovery Request/Response)を利用してもよい。Wi-Fi Direct規格に準拠した無線通信を確立するための接続セットアップについては、後述の図6のシーケンスで詳細に説明する。
次に、ステップS310でミラーリングを行うと決定した対向機と、通信装置101がインフラストラクチャネットワークを介したミラーリングを行うための接続セットアップを行う場合を説明する。この場合、接続セットアップには、Wi-Fi Miracast R2規格に基づき、通信装置101が接続しているAPを介してインフラストラクチャネットワークにDNSパケットを送信することで行われる。当該DNSパケットには、SRVレコード、TXTレコードなどのDNSレコードが含まれる。各レコードには、ソース機器を示すdisplaysrcまたはシンク機器を示すdisplayの何れか一つのサービス名が含まれる。インフラストラクチャネットワークを介したミラーリングを行うための接続セットアップの詳細については、後述の図5で詳細に説明する。
続いて通信装置101の制御部202は、対向機と能力交換およびネゴシエーションを行う(ステップS312)。Wi-Fi Miracast R2規格では、能力交換およびネゴシエーションにはRTSP(Real Time Streaming Protocol)を利用するよう規定されている。RTSPはストリーミングを制御するためのプロトコルである。また、下位層のトランスポートプロトコルとしては一般的にTCP(Transmission Control Protocol)が用いられる。能力交換およびネゴシエーションにはRTSP M1~M4までの所定のメッセージが通信装置101と対向機の間で交換される。このRTSPメッセージの交換によって、通信装置101は対向機の能力情報を得て、使用するパラメータを決定し、対向機へ通知する。対向機は、通知されたパラメータを設定する。具体的に能力情報とは、例えば画面については、対応する画面の解像度、フレームレート、コーデックなどの情報である。また音声については、対応するコーデックやサンプリング周波数などの情報である。本ステップの能力交換およびネゴシエーションの結果、通信装置101と対向機との間でミラーリング時に使用する画像データや音声データの符号化方式の種類や画像の解像度、フレームレートなどのパラメータが決定される。なお、送受信する能力情報は、これらの情報の一部であってもよい。例えば画像の解像度については、まず通信装置101から対向機に、対向機の解像度に対する問合せを含むM3メッセージが送信される。対向機は当該M3メッセージへの応答として、対向機が有する画面の解像度に関する情報を含んだメッセージを通信装置101に送信する。当該メッセージを受信した通信装置101は、対向機の画面の解像度に基づいて、対向機に送信する画像の解像度を決定する。
能力交換およびネゴシエーションの処理を行うと、通信装置101の制御部202は、対向機とセッションを確立する(ステップS313)。Wi-Fi Miracast R2規格では、セッションの確立にはRTSP M5~M7までの所定のメッセージが通信装置101と対向機との間で交換される。これらのRTSPメッセージの交換によって、使用するポート番号の設定などが行われ、セッションが確立される。なお、セッション確立に際して、対向機はコンテンツリダイレクトなどの他の機能で使用するポート番号を設定してもよい。また、複数のポート番号が設定されてもよい。
通信装置101の制御部202は、ステップS313まで処理を行うと、通信部206を介して対向機へ、自装置が表示している画面の画像データや、再生している音声の音声データのストリーミングを送信する(ステップS314)。通信装置101は、対向機へ画像データや音声データのストリーミングの送信を開始することで、ミラーリングを開始する。Wi-Fi Miracast R2規格では、映像ストリーミング用のプロトコルとしてRTP(Real-time Transport Protocol)を用いる。RTPは動画像や音声などのマルチメディアデータを、ネットワークを介してリアルタイムに送受信するためのプロトコルであり、下位層のトランスポートプロトコルとしてUDPやTCPを利用する。
通信装置101の制御部202は、画像データや音声データのストリーミングを開始すると本フローチャートの処理を終了する。
以上、図3のフローチャートの処理により、通信装置101はP2P探索機能による対向機の探索と、BSS探索機能による対向機の探索と必要に応じて行うことで、無駄な探索を行わず対向機を探索することができる。そのため、通信装置101の省電力性を向上することが可能になる。更に、通信装置101は一方の探索機能による対向機の探索を行い、所望の対向機を検出した場合は他方の探索機能による対向機の探索を行わないことで、探索処理時間を短縮させることができる。また、通信装置101が既にAPに接続していない場合は先にP2P探索機能による対向機の探索を行うことで、ユーザは対向機を探索する前に通信装置101をAPに接続する必要がないため、省電力性や操作性、ユーザの利便性を向上することが可能となる。更に、通信装置101が既にAPに接続していない場合に先にP2P探索機能による対向機の探索を行うことで、探索処理時間を短縮させることもできる。
図5は、通信装置101が通信装置102をBSS探索機能により探索し、接続する際に行われる処理を示すシーケンス図である。
ソース機器である通信装置101は、AP103と接続することで、AP103が構築するインフラストラクチャネットワークに参加している(ステップS501)。また、シンク機器である通信装置102も、AP103と接続することで、AP103が構築するインフラストラクチャネットワークに参加している(ステップS502)。
次に、ソース機器である通信装置101に、ユーザからミラーリングの開始指示が入力される(ステップS503)。
通信装置101は、まずBSS探索機能による対向機の探索を行う。まず、通信装置101はAP103経由でインフラストラクチャネットワークへPTRレコード名を含むmDNS問合せ(mDNS query)を送信する(ステップS504)。mDNS問合せを送信することで、通信装置101はWi-Fi Miracast R2規格に準拠した無線通信を行うことができる通信装置を指定して探索する。具体的には、通信装置101は、所定のサービスタイプの対向機のインスタンス名(表示名称)を探索することを示すPTRレコード名を含むmDNS問合せを送信する。本シーケンスにおいて、通信装置101はソース機器であるため、対向機としてシンク機器を探索する。Wi-Fi Miracast R2規格において、サービスタイプはサービス名およびトランスポートプロトコルによって表されると規定されている。また、シンク機器のサービス名はdisplay、ソース機器のサービス名はdisplaysrcであり、トランスポートプロトコルはtcpで表せられると規定されている。そのため、シンク機器のサービスタイプは_display._tcpと表される。よって、通信装置101はPTRレコード名として_display._tcp.localを含むmDNS問合せを送信することで、サービスタイプが_display._tcpである対向機を探索する。つまり通信装置101はmDNS問合せを送信することで、AP103が構築するインフラストラクチャネットワーク内において、シンク機器である対向機を探索することになる。
AP103を介して通信装置101からmDNS問合せを受信した通信装置102は、サービスタイプ_display._tcpのマッチング処理を行う(ステップS505)。通信装置102はシンク機器であり、サービスタイプがマッチングしたことから、通信装置102は通信装置101にPTRレコードを含むmDNS応答(mDNS response)を送信する(ステップS506)。当該PTRレコードは、通信装置102のインスタンス名を与える。なお、mDNS問合せを受信した通信装置の内、サービスタイプがマッチングしない通信装置はmDNS応答を送信しない。
mDNS応答を受信した通信装置101は、mDNS応答に含まれるPTRレコードの情報から対向機のインスタンス名を取得し、検出された対向機のインスタンス名のリストをユーザへ表示する(ステップS507)。
次に、ユーザが検出された対向機のリストから通信装置102を選択すると(ステップS508)、通信装置101は通信装置102に対してAP103経由でmDNS問合せを送信する(ステップS509)。当該mDNS問合せは、通信装置102のインスタンス名と関連するTXTレコードとSRVレコードを問い合わせるものである。TXTレコードには、通信装置102の能力情報が含まれる。TXTレコードに含まれる能力情報とは、通信装置102がシンク機器であるか、ソース機器であるか、あるいはデュアルロール機器であるかなどの情報である。SRVレコードには、ポート番号とホスト名が含まれる。mDNS問合せを受信した通信装置102は、TXTレコードとSRVレコードを含むmDNS応答を送信する(ステップS510)。本応答を受信した通信装置101は、BSS探索機能による対向機の探索と、検出した対向機との接続セットアップを完了する。
なお、通信装置101は、ステップS504で送信するmDNS問合せを定期的に送信し続けてもよい。その場合、例えばステップS506でmDNS応答を受信した場合、当該応答を送信した対向機を探索から除外したmDNS問合せを送信することで、既知の対向機がmDNS応答を送信しないようにしてもよい。
通信装置101は、BSS探索機能によって検出した通信装置102と能力交換およびネゴシエーションを行う(ステップS511)。能力交換およびネゴシエーションではRTSP M1~M4までの所定のメッセージが、通信装置101と対向機である通信装置102の間で交換される。このRTSPメッセージの交換によって、通信装置101は通信装置102の能力情報を得て、使用するパラメータを決定し、通信装置102へ通知する。通信装置102は、通知されたパラメータを設定する。
通信装置101は、通信装置102とRTSP M5~M7までの所定のメッセージを交換することで、セッションを確立する(ステップS512)。通信装置101は通信装置102とセッションを確立すると、通信装置102へ自装置が表示している画面の画像データや、再生している音声の音声データのストリーミングを送信する(ステップS513)。
図5のシーケンスでは、ユーザによってミラーリングの開始指示がされた場合、通信装置101はAP103に接続済みの場合に、先にBSS探索機能によって対向機の探索を行う。通信装置101がBSS探索機能によって所望の対向機を検出した場合、P2P探索機能による探索を行わないことで、通信装置101は省電力性の向上と探索処理時間の短縮を実現できる。
図6は、通信装置101が通信装置102をP2P探索機能により探索し、接続する際に行われる処理を示すシーケンス図である。
本シーケンスは、図5のシーケンスとは異なり、通信装置101へミラーリングの開始指示が行われた際に、通信装置101がAP103に接続されていない場合の接続シーケンスである。
通信装置101はユーザからミラーリングの開始指示を受けると(ステップS601)、AP103に接続していないことからP2P探索機能による対向機の探索を行う。まず、通信装置101はWFD IEを含むプローブ要求を送信する(ステップS602)。
通信装置102はWFD IEを含むプローブ要求を受信すると、Wi-Fi Miracast R2規格に対応したデバイスであるので、応答としてWFD IEを含むプローブ応答を送信する(ステップS603)。
通信装置101は、通信装置102から送信されたプローブ応答を受信したことにより、通信装置102を検出する。そして、通信装置101は検出した対向機のリストを表示することで、ユーザに検出した対向機の探索結果を通知する(ステップS604)。なお、通信装置101は、通信装置102が送信するWFD IEを含むビーコンを受信することで通信装置102を検出してもよい。
通信装置101のユーザが、ステップS604で表示された対向機のリストから、ミラーリングを行う対向機として通信装置102を選択する(ステップS605)。通信装置101は通信装置102とWi-Fi Direct規格に準拠した通信を確立する。
Wi-Fi Direct規格に準拠した通信では、通信装置同士がAPを介することなく直接無線通信する。また、Wi-Fi Direct規格に準拠した通信を行う通信装置には、夫々GOあるいはCLという役割が与えられる。GOはWi-Fi Direct規格に準拠したGroup Ownerのことであり、ネットワークを構築する役割の機器である。また、Wi-Fi Direct規格に準拠した無線通信において、GOが構築するネットワークに参加する機器をCL(Client)という。
通信装置101は、通信装置102とGOを決定するため、通信装置102に役割決定要求としてGOネゴシエーション要求を送信する(ステップS606)。この信号には通信装置101のGOになりたい度合いを示すインテント値が含まれる。
GOネゴシエーション要求に対する応答として、通信装置102はGOネゴシエーション応答を送信する(ステップS607)。この信号には、通信装置102のGOになりたい度合いを示すインテント値が含まれる。GOネゴシエーション応答を受信した通信装置101は、通信装置101と通信装置102とのインテント値の大小を比較し、インテント値が大きかった方の通信装置をGOとして決定する。他方、インテント値が小さかった方の通信装置がCLとして決定される。
通信装置101は、インテント値を比較した結果を含めたGOネゴシエーション確認を通信装置102に送信する(ステップS608)。本実施形態では、通信装置102のインテント値が通信装置101のインテント値より大きかったことから、通信装置102がGOとなったとする。
通信装置102は通信装置101とのWi-Fi Direct規格に準拠した通信においてGOとなったことから、WFD IEを含んだビーコンを送信する(ステップS609)。
その後、通信装置101と通信装置102は認証パケットを送受信することで、無線通信を確立してもよいか確認する(ステップS610、ステップS611)。そして、通信装置101は通信装置102へアソシエーション要求を送信する(ステップS612)。通信装置102は、受信したアソシエーション要求に対する応答として、アソシエーション応答を送信する(ステップS613)。
ステップS614~ステップS616の処理は、図5のステップS511~ステップS513と同様である。
図6のように、ユーザによってミラーリングの開始指示が出された際に、通信装置101がAP103に接続されていない場合は、P2P探索機能による対向機の探索を行うことで、ユーザは通信装置101をAPに接続する必要がなくなるため省電力である。また、通信装置101をAPに接続する必要がないため、探索処理時間が短縮され、操作性やユーザの利便性が向上する。
図7は、通信装置101がBSS探索機能により通信装置102を探索後、P2P探索機能により通信装置102を探索し、接続する際に行われる処理を示すシーケンス図である。
本シーケンスにおいて、通信装置101のユーザがミラーリングの開始指示を行う際、通信装置101はAP103に接続されているが、通信装置102はAP103に接続されていない。
通信装置101は、AP103と接続することで、AP103が構築するインフラストラクチャネットワークに参加している(ステップS701)。
通信装置101のユーザがミラーリングの開始指示を出す(ステップS702)。通信装置101はAP103に接続しているため、図5のステップS504と同様に、通信装置101はAP103経由で、インフラストラクチャネットワークへPTRレコードを含むmDNS問合せを送信する(ステップS703)。
通信装置102はAP103に接続されておらず、mDNS問合せを受信することができないため、mDNS応答を返さない。通信装置101は、mDNS問合せを送信してから所定の時間が経過したため、BSS探索機能により検出された通信装置のリストをユーザへ表示する(ステップS704)。しかし、通信装置101において表示されたリストには通信装置102は含まれていないため、ユーザはミラーリングを行う対向機として通信装置102を選択することが出来ない。
そのため、通信装置101は、P2P探索機能によって対向機を探索する。ステップS705~ステップS719の処理は、図6のステップS602~ステップS616と同様である。
本シーケンスのように、ミラーリングの開始指示が出された際に通信装置101がAP103に接続している場合、通信装置101はBSS探索機能により対向機の探索を行う。しかし、BSS探索機能による対向機の探索の結果、所望の対向機を検出できなかった場合は、P2P探索機能による探索を行うことで、所望の対向機を検出することができる。
<実施形態2>
本実施形態では、P2P探索機能による探索で所望の対向機を検出できない場合、さらにBSS探索機能による探索を行う。
本実施形態に係る通信装置101が参加するネットワークのネットワーク構成は、実施形態1の図1と同様である。また、本実施形態に係る通信装置101のハードウェア構成は、実施形態1の図2と同様である。なお、本実施形態に係る通信装置101の制御部202は、記憶部201に記憶されたコンピュータプログラムを実行することで、AP探索機能を実現する。AP探索機能とは、通信装置101が接続可能なAPを探索する機能である。
図8は、通信装置101が通信装置102を探索し、ミラーリングを開始する際に実行する処理を示す別のフローチャートである。
本フローチャートでは、ソース機器の役割を担う通信装置101がミラーリングを行う対向機を探索するが、これに限らず、シンク機器の役割を担う通信装置102がミラーリングを行う対向機を探索してもよい。
なお、図8に示すフローチャートの少なくとも一部をハードウェアにより実現してもよい。ハードウェアにより実現する場合、例えば、所定のコンパイラを用いることで、各ステップを実現するためのコンピュータプログラムからFPGA上に自動的に専用回路を生成すればよい。FPGAとは、Field Programmable Gate Arrayの略である。また、FPGAと同様にしてGate Array回路を形成し、ハードウェアとして実現するようにしてもよい。また、ASIC(Application Specific Integrated Circuit)により実現するようにしてもよい。
本フローチャートの処理は、通信装置101において、ミラーリングを行う所定のアプリケーションが起動したことに基づいて開始される。あるいは通信装置101の電源が投入されたことにより開始してもよい。あるいは通信装置101が、AP103が構築するインフラストラクチャネットワークに参加したことに基づいて開始してもよい。あるいは通信装置101が通信装置102とWi-Fi Direct規格に準拠したネットワークを確立したことに基づいて開始してもよい。
ステップS801~ステップS809の処理は、図3のステップS301~ステップS309と同様である。なお、ステップS803において、通信装置101がAP103と接続していないと判定されると(ステップS803のNo)、通信装置101の制御部202はステップS810の処理を行う。
ステップS810およびステップS811の処理は、ステップS807およびステップS808と同様である。
ステップS811の処理を行うと、通信装置101の制御部202は、ステップS811で表示されたP2P探索機能による対向機の探索結果に、所望の対向機が含まれているか判定する(ステップS812)。当該判定は、ステップS809と同様に行う。ステップS811に表示されていたP2P探索機能による対向機の探索結果に所望の対向機が含まれていた場合(ステップS812のYes)、通信装置101の制御部202はステップS818の処理を行う。一方、ステップS811に表示されていたP2P探索機能による対向機の探索結果に所望の対向機が含まれていなかった場合(ステップS812のNo)、通信装置101の制御部202はステップS813の処理を行う。
通信装置101の制御部202は、通信装置101が接続可能なAPを探索する(ステップS813)。具体的には、通信装置101の制御部202は、APを探索するためWFD IEを含まないプローブ要求を送信する。APは当該プローブ要求を受信すると、その応答としてプローブ応答を通信装置101に送信する。通信装置101は当該プローブ応答を受信することでAPを検出する。
通信装置101の制御部202はステップS813で探索を行った結果、検出したAPに接続する(ステップS814)。なお、ステップS813において、通信装置101が接続可能なAPを検出できず、所定の時間が経過した場合、通信装置101は本フローチャートの処理を終了する。ステップS815およびステップS816の処理は、ステップS804およびステップS805と同様である。
ステップS816の処理を行うと、通信装置101の制御部202は、ステップS816で表示されたBSS探索機能による対向機の探索結果に、所望の対向機が含まれているか判定する(ステップS817)。当該判定は、ステップS806と同様に行う。所望の対向機が含まれていた場合(ステップS817のYes)、通信装置101の制御部202はステップS818の処理を行う。一方、所望の対向機が含まれていなかった場合(ステップS817のNo)、通信装置101の制御部202はステップS802の処理を行う。
また、ステップS818~ステップS822の処理は、図3のステップS310~ステップS314と同様である。
なお、ステップS809あるいはステップS817において所望の対向機がないと判定された場合(ステップS809あるいはステップS817のNo)、通信装置101の制御部202は、対向機の探索を続行するか判定してもよい。本判定は、ユーザ指示に基づいて行われる。例えば、ステップS808やステップS816で表示された探索結果からユーザが所定の時間内に対向機を選択しなかった場合、通信装置101の制御部202は、ユーザに対向機の探索を続行するか、出力部205が画面に選択肢を表示する。そして表示された選択肢の内、対向機の探索を続行するか、あるいは対向機の探索を続行しないかの何れかをユーザが選択したかということに基づいて判定する。本判定において通信装置101の制御部202は、ユーザが対向機の探索を続行すると選択すると、対向機の探索を続行すると判定し、ステップS802の処理を行う。一方、通信装置101の制御部202は、ユーザが対向機の探索を続行しないと選択すると、対向機の探索を続行しないと判定し、本フローチャートの処理を終了する。なお、通信装置101の制御部202は、通信装置101が対向機の探索を開始してから所定の時間が経過したか、あるいは通信装置101が対向機の探索を所定の回数行ったかに基づいて、対向機の探索を続行するか判定してもよい。この場合、通信装置101の制御部202は、通信装置101が対向機の探索を開始してから所定の時間が経過した場合や、通信装置101が対向機の探索を所定の回数行った場合、対向機の探索を続行しないと判定する。あるいは、通信装置101の制御部202は、通信装置101が対向機の探索を開始してから所定の時間が経過していない場合や、通信装置101が対向機の探索を所定の回数行っていない場合、対向機の探索を続行すると判定する。
図9は、通信装置101がP2P探索機能により通信装置102を探索後、BSS探索機能により通信装置102を探索し、接続する際に行われる処理を示すシーケンス図である。
本シーケンスにおいて、通信装置101のユーザがミラーリングの開始指示を行う際、通信装置101はAP103に接続しておらず、通信装置102はAP103に接続している。
通信装置102は、AP103と接続している(ステップS901)。通信装置101のユーザはミラーリングの開始指示を出す(ステップS902)。通信装置101はAPに接続していないので、P2P探索機能によりミラーリングを行う対向機を探索する。
通信装置101はプローブ要求を送信する(ステップS903)。ところが通信装置102が、例えば通信環境や設定などが原因でプローブ要求を受信出来ず、プローブ応答を返せなかったとする。
この場合、通信装置101はP2P探索機能により検出した通信装置のリストをユーザへ表示するが(ステップ904)、当該リストには通信装置102は含まない。そのため、ユーザは表示されたリストから通信装置102を、ミラーリングを行う対向機として選択することが出来ない。
そのため、通信装置101は、WFD IEを含まないプローブ要求を送信し、周囲のAPを探索する(ステップS905)。通信装置101は、AP103からプローブ応答を受信することで、AP103を検出する(ステップS906)。通信装置101は、検出したAP103に接続する(ステップS907)。
AP103に接続した通信装置101は、BSS探索機能による対向機の探索を行う。ステップS908~ステップS917の処理は、夫々図5のステップS504~ステップS513と同様である。
本実施形態において、ミラーリングの開始指示が行われた際に、通信装置101がAPに接続しておらず、またP2P探索機能による探索で所望の対向機を検出できなかった場合、通信装置101は周囲のAPを探索する。これにより、通信装置101は検出したAPと接続することでBSS探索機能による探索を行うことができ、所望の対向機を検出できる。
<実施形態3>
本実施形態では、ミラーリング開始指示が出された際に、通信装置101がAPへ未接続の場合、通信装置101が接続したことがあるAPへ接続可能か否かに応じて、BSS探索機能あるいはP2P探索機能の何れかによる対向機の探索を行う。
本実施形態に係る通信装置101が参加するネットワークのネットワーク構成は、実施形態1の図1と同様である。また、本実施形態に係る通信装置101のハードウェア構成は、実施形態1の図2と同様である。なお、本実施形態に係る通信装置101の制御部202は、記憶部201に記憶されたコンピュータプログラムを実行することで、AP探索機能を実現する。AP探索機能とは、通信装置101が接続可能なAPを探索する機能である。
図10は、通信装置101が通信装置102を探索し、ミラーリングを開始する際に実行する処理を示す別のフローチャートである。
本フローチャートでは、ソース機器の役割を担う通信装置101がミラーリングを行う対向機を探索するが、これに限らず、シンク機器の役割を担う通信装置102がミラーリングを行う対向機を探索してもよい。
なお、図10に示すフローチャートの少なくとも一部をハードウェアにより実現してもよい。ハードウェアにより実現する場合、例えば、所定のコンパイラを用いることで、各ステップを実現するためのコンピュータプログラムからFPGA上に自動的に専用回路を生成すればよい。FPGAとは、Field Programmable Gate Arrayの略である。また、FPGAと同様にしてGate Array回路を形成し、ハードウェアとして実現するようにしてもよい。また、ASIC(Application Specific Integrated Circuit)により実現するようにしてもよい。
本フローチャートの処理は、通信装置101において、ミラーリングを行う所定のアプリケーションが起動したことに基づいて開始される。あるいは通信装置101の電源が投入されたことにより開始してもよい。あるいは通信装置101が、AP103が構築するインフラストラクチャネットワークに参加したことに基づいて開始してもよい。あるいは通信装置101が通信装置102とWi-Fi Direct規格に準拠したネットワークを確立したことに基づいて開始してもよい。
ステップS1001~ステップS1003の処理は、図3のステップS301~ステップS303と同様である。
通信装置101がAPと接続済みであると判定されると(ステップS1003のYes)、通信装置101の制御部202はステップS1007の処理を行う。一方、通信装置101がAPと接続済みでないと判定されると(ステップS1003のNo)、通信装置101の制御部202はステップS1004の処理を行う。
通信装置101の制御部202は、周囲のAPを探索する(ステップS1004)。本ステップの処理は、図8のステップS813と同様である。続いて通信装置101の制御部202は、ステップS1004で検出したAPの中に、過去に接続したことがあるAPがあるか判定する(ステップS1005)。具体的には、通信装置101の記憶部201に、接続履歴が残っているAPがあるか判定する。接続履歴が残っているAPがある場合、つまりステップS1004で検出したAPの中に、過去に接続したことがあるAPがある場合(ステップS1005のYes)、通信装置101の制御部202はステップS1006の処理を行う。一方、接続履歴が残っているAPがない場合、つまりステップS1004で検出したAPの中に、過去に接続したことがあるAPがない場合(ステップS1005のNo)、通信装置101の制御部202はステップS1010の処理を行う。なおステップS1005において、通信装置101の制御部202は、過去に接続したことがあるAPに限らず、接続可能なAPがあるかに基づいて当該判定を行ってもよい。通信装置101の制御部202は、接続可能なAPがある場合ステップS1005はYesと判定し、接続可能なAPがない場合ステップS1005はNoと判定する。
通信装置101の制御部202は、ステップS1004で検出したAPの中に、過去に接続したことがあるAPがある場合、当該APにユーザ操作なしで自律的に接続する(ステップS1006)。この場合、APとの接続に必要なパスワードなどの設定情報は、通信装置101の記憶部201に記憶されている。なお、通信装置101の記憶部201に接続履歴が残っているAPであっても、パスワードなどの設定情報が記憶されておらず、通信装置101が自律的に当該APと接続できない場合、通信装置101の制御部202はステップS1005でNoと判定する。
ステップS1007~ステップS1017の処理は、図3のステップS304~ステップS314と同様である。
本実施形態において、ミラーリングの開始指示が出された際に通信装置101がAPへ未接続の場合でも、接続履歴のあるAPへ通信装置101が自律的に接続することで、通信装置101は簡単な操作でBSS探索機能による対向機の探索を行うことができる。
なお、図3、図8、および図10のフローチャートの処理は、ミラーリングではなく、コンテンツリダイレクトやダイレクトストリーミングを行う所定のアプリケーションが起動したことにも基づいて開始してもよい。この場合、ステップS301、ステップS801、およびステップS1001において、通信装置101はユーザからミラーリングの開始指示ではなく、コンテンツリダイレクトの開始指示やダイレクトストリーミングの開始指示を受ける。また、図3、図8、および図10において、通信装置101は対向機とのセッションを確立すると、コンテンツリダイレクトあるいはダイレクトストリーミングを開始する。
また、実施形態1、2、および3において、通信装置101は対向機をBSS探索機能により探索するか、P2P探索機能により探索するかを、通信装置101がAPに接続済みであるかなどに基づいて決定した。しかし、先にBSS探索機能により対向機を探索するか、P2P探索機能により探索するかは、所定の条件に基づいて決定されればよい。例えば、先にBSS探索機能により対向機を探索するか、P2P探索機能により探索するかは、通信装置101にプリセットされていてもよいし、ユーザによって設定されていてもよい。あるいは、通信装置101がコンテンツリダイレクトを行う所定のアプリケーションを起動した場合や、ユーザからコンテンツリダイレクトの開始指示を受け付けた場合、通信装置101は先にBSS探索機能により対向機を探索してもよい。このような場合において、通信装置101がAPに接続していない場合、通信装置101は周囲のAPを探索し、自律的にAPに接続し、BSS探索機能により対向機を探索してもよい。あるいは自律的にAPに接続できない場合は、ユーザに周囲のAPのリストを提示し、ユーザ操作によってAPと接続し、BSS探索機能により対向機を探索してもよい。
なお、実施形態1、2、および3において、通信装置101(ソース機器)がミラーリングを行う対向機の探索と決定を行ったが、通信装置102(シンク機器)がこれらを行ってもよい。
なお、実施形態1、2、および3において、通信装置101はBSS探索機能で対向機を探索する際、mDNSを利用して対向機の探索を行った。しかし、これに限らずSSDP(Simple Service Discovery Protocol)を利用して対向機の探索を行うUPnP(Universal Plug and Play)を利用してもよい。つまり、APを介して他の通信装置が提供するサービスを探索する通信規格を利用して対向機の探索を行ってもよい。あるいは、通信装置101はP2P探索機能で対向機を探索する際、Wi-Fi Direct規格に準拠して対向機を探索し、検出した対向機と無線通信を確立した。しかし、これに限らず、Bluetooth(登録商標)やZigBeeなどAPを介さない無線通信を行うことができる他の無線通信規格に準拠して対向機を探索し、検出した対向機と無線通信を確立してもよい。
なお、実施形態1、2、および3において、通信装置101はBSS探索機能あるいはP2P探索機能による対向機の探索を行った結果を、例えば図4のような表示画面によって表示した。探索結果画面401に示すように、表示画面にはユーザへ対向機の選択を促すメッセージと共に、BSS探索機能やP2P探索機能による探索の結果として検出された対向機の一覧がリスト表示された。しかしこれに限らず、通信装置101は検出した対向機が、BSS探索機能によって検出された対向機であるか、あるいはP2P探索機能によって検出された対向機であるかを識別可能に表示してもよい。例えば、通信装置101は、BSS探索機能によって検出された対向機を表示する際、対向機の名称と共に「BSS」と表示してもよい。一方、通信装置101はP2P探索機能によって検出された対向機を表示する際、対向機の名称と共に「P2P」と表示してもよい。なお、BSS探索機能とP2P探索機能との両方で重複して検出された対向機については、通信装置101は両方で検出された対向機であることを表示してもよいし、どちらか一方の探索機能によって検出されたことのみを表示してもよい。
また、通信装置101がAPと接続しており、P2P探索機能により検出された対向機と、Wi-Fi Direct規格に準拠した無線通信を確立する場合、通信装置101はAPとの接続を切断してもよい。またその場合、通信装置101は、P2P探索機能により検出された対向機がユーザによって選択された際に、APとの接続が切断されることをユーザに通知してもよい。あるいは、通信装置101はAPとの接続が切断されてしまうことを通知するとともに、ユーザが選択した対向機とのWi-Fi Direct規格に準拠した無線通信の確立を開始するか開始しないかをユーザに選択させてもよい。なお、ユーザが選択した対向機とのWi-Fi Direct規格に準拠した無線通信の確立を開始しないと選択した場合、再度ユーザがBSS探索機能あるいはP2P探索機能によって検出された対向機から所望の対向機を選択できる。あるいは通信装置101は、ユーザがBSS探索機能によって検出された対向機のみから所望の対向機を選択できるようにしてもよい。
また、実施形態1、2、および3において、通信装置101はP2P探索機能により対向機を探索する場合、Wi-Fi Miracast R2規格に準拠した対向機を探索する。しかしこれだけではなく、通信装置101は、Wi-Fi Miracast R1規格を含めたWi-Fi Miracast規格に準拠した対向機を探索してもよい。
なお、図3、図8、図10に示した通信装置101のフローチャートの少なくとも一部または全部をハードウェアにより実現してもよい。ハードウェアにより実現する場合、例えば、所定のコンパイラを用いることで、各ステップを実現するためのコンピュータプログラムからFPGA上に専用回路を生成し、これを利用すればよい。FPGAとは、Field Programmable Gate Arrayの略である。また、FPGAと同様にしてGate Array回路を形成し、ハードウェアとして実現するようにしてもよい。また、ASIC(Application Specific Integrated Circuit)により実現するようにしてもよい。図5、図6、図7、図9に示したシーケンス図においても同様である。
また、図3、図8、図10に示したフローチャートや、図5、図6、図7、図9に示したシーケンス図の各ステップを不図示の複数のCPUもしくは装置で分散して行うようにしてもよい。
以上、実施形態を詳述したが、本発明は例えば、システム、装置、方法、プログラム若しくは記録媒体(記憶媒体)などとしての実施態様をとることが可能である。具体的には、複数の機器(例えば、ホストコンピュータ、インタフェース機器、撮像装置、webアプリケーションなど)から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。