以下、添付の図面を参照して実施形態を詳細に説明する。なお、以下の実施形態において示す構成は一例に過ぎず、本発明は図示された構成に限定されるものではない。
図1に、本実施形態に係る通信装置101が参加するネットワークのネットワーク構成を示す。図1のネットワーク110上で、各装置は例えばIEEE802.11シリーズ規格に準拠した無線通信方式で通信を行う。IEEEとは、Institute of Electrical and Electronics Engineersの略である。
通信装置101は、通信装置102とWi−Fi Direct規格に準拠した無線通信を行うことができる。この場合、通信装置101と通信装置102とは、アクセスポイント(AP)103を介さず直接無線通信する。また、通信装置101は通信装置102とIEEE802.11シリーズ規格に準拠したインフラストラクチャネットワーク上で、AP103を介した無線通信も行うことができる。
なお、ネットワーク110上で、各装置はIEEE802.11シリーズ規格に準拠した無線通信に加えて、Bluetooth(登録商標)、NFC、UWB、ZigBee、MBOAなどの他の無線通信方式に準拠した無線通信も利用してよい。なお、UWBはUltra Wide Bandの略であり、MBOAはMulti Band OFDM Allianceの略である。なお、OFDMはOrthogonal Frequency Division Multiplexingの略である。また、NFCはNear Field Communicationの略である。UWBには、ワイヤレスUSB、ワイヤレス1394、WiNETなどが含まれる。また、有線LANなどの有線通信方式に準拠した通信方式も利用してよい。
本実施形態において、通信装置101と通信装置102とは、例えばWi−Fi Miracast規格に準拠したミラーリングを行う。通信装置101(送信装置)は、Wi−Fi Miracast規格に準拠し、通信装置102(受信装置)と表示している画面や再生している音声を共有する。具体的には、送信装置が表示している画面や再生している音声の情報として、画像データや音声データを、ネットワーク110を介して受信装置へ伝送することで、送信装置と受信装置とで表示している画面や再生している音声を共有する。これを、ミラーリングという。通信装置101は、Wi−Fi Miracast規格において、自装置が表示している画面あるいは再生している音声の少なくとも一方を送信するソース機器としての役割を担う。また、通信装置102は、Wi−Fi Miracast規格において、ソース機器から送信される画面や音声を受信して再生するシンク機器の役割を担う。通信装置101と通信装置102とがミラーリングを行う場合、通信装置101が表示している画面や再生している音声が、通信装置101と通信装置102とで共有される。
通信装置101は、Wi−Fi Direct規格に準拠したネットワークを介したミラーリングに加え、インフラストラクチャネットワークを介したミラーリングを行ってもよい。また、通信装置102も同様である。
通信装置101と通信装置102とが、通信装置101をソース機器、通信装置102をシンク機器として、例えばWi−Fi Direct規格に準拠したネットワークを介したミラーリングを行う場合を説明する。Wi−Fi Direct規格に準拠したネットワークを介したミラーリングでは、ソース機器は表示している画面や再生している音声の情報として、画像データや音声データのストリームを、ネットワークを介してシンク機器へ直接伝送(ストリーミング)する。なお、本実施形態では画像データはソース機器が表示している画面を符号化したものとし、音声データはソース機器が再生している音声を符号化したものとする。そして、シンク機器は、画像データや音声データのストリームを受信し、ソース機器と同期して再生するものとする。つまり、本実施形態ではミラーリングを行うソース機器とシンク機器とは、表示している画面や再生している音声を共有するものとする。
また、通信装置101(ソース機器)と通信装置102(シンク機器)とが、インフラストラクチャネットワークを介してミラーリングを行う場合を説明する。インフラストラクチャネットワークを介したミラーリングでは、ソース機器は画像データや音声データのストリームを、AP103を介してシンク機器に伝送する。シンク機器は、AP103を介して画像データや音声データのストリームを受信し、ソース機器と同期して再生する。
また、通信装置101と通信装置102とは、ミラーリングに代えて、あるいは加えて、Wi−Fi Direct規格に準拠したネットワーク、あるいはインフラストラクチャネットワークを介したコンテンツリダイレクトを行う。コンテンツリダイレクトでは、通信装置101は通信装置102に、通信装置101以外の外部装置からデータを取得させ、通信装置102に当該データを再生させる。ここで、外部装置とは例えばクラウドサーバ104のことである。このとき、通信装置101は、通信装置102にデータを外部装置から取得させるために必要な情報を送信する。通信装置102が取得するデータとは、例えばコンテンツのことであり、画像データ、音声データ、動画データ、映像データの何れか一つを含む。なお、映像データとは、音声データと動画データとの両方を含むデータのことである。他に、これらのデータを再生するためのソフトウェアデータや、GUIデータ、メタデータの少なくとも何れか一つを含んでいてもよい。
通信装置101が通信装置102に送信する情報とは、外部装置上にあるコンテンツの関連情報である。コンテンツの関連情報は、例えば、外部装置上にあるコンテンツを識別するための識別子や、サービス名、コンテンツの所在情報(URI、URL)、再生開始時間(オフセット)などの情報である。なお、受信するコンテンツの関連情報は、これらの情報の一部であってもよい。コンテンツの識別子とは、コンテンツを一意に決定するための識別子のことである。また、コンテンツの所在情報とは、コンテンツが格納されている格納場所を示す情報である。なお、URIはUniform Resource Identifierの、URLはUniform Resource Locatorの夫々、略である。
通信装置101の具体的な例としては、タブレット、スマートフォン、PC、携帯電話、カメラ、ビデオカメラなどが挙げられるが、これらに限定されない。通信装置101は、外部装置が保持しているコンテンツの関連情報を他の通信装置に送信することで、他の通信装置に該コンテンツを取得させ、再生させることができる通信装置であればよい。
また、通信装置102の具体的な例としては、タブレット、スマートフォン、PC、携帯電話、テレビ、テレビ用アダプタ、セットトップボックス、ヘッドマウントディスプレイなどが挙げられる。また他に通信装置102の具体的な例として、プロジェクター、ディスプレイ、カーナビゲーション装置などが挙げられるが、これらに限定されない。通信装置102は、通信装置101から受信した関連情報に基づいて外部装置からコンテンツを取得し、再生することができる通信装置であればよい。
また、通信装置101と通信装置102とは、コンテンツリダイレクトに加えて、Wi−Fi Direct規格に準拠したネットワーク、あるいはインフラストラクチャネットワークを介したダイレクトストリーミングを行ってもよい。ダイレクトストリーミングでは、通信装置101は通信装置102に、通信装置101が記憶しているデータを送信し、通信装置102は当該データを受信し、再生する。この場合、通信装置101は当該データを復号および再符号化することなく、そのままの符号化方式で通信装置102に送信することができる。ここで、通信装置102が受信するデータとは、例えばコンテンツのことである。
また、通信装置101と通信装置102とがコンテンツリダイレクトを行っている場合、通信装置101が入力されたユーザ操作に基づいた再生制御情報を通信装置102に送信することで、通信装置102で再生されているコンテンツの再生制御ができる。例えば通信装置101と通信装置102とがコンテンツリダイレクトを行い、通信装置102がコンテンツを再生している場合を想定する。例えば、ユーザが通信装置101にコンテンツの再生の一時停止を指示するユーザ操作を入力すると、通信装置101から通信装置102にコンテンツの再生を一時停止させるための再生制御情報が送信される。通信装置102は再生制御情報を受信すると、コンテンツの再生を一時停止する。このように、通信装置101と通信装置102とがコンテンツリダイレクトを行っている場合、ユーザは通信装置101をリモコンのように利用し、通信装置102で再生されているコンテンツの再生制御ができる。なお通信装置101は、コンテンツの再生制御情報として、一時停止の他に、再生、停止、早送り、巻き戻し、ユーザが指定した再生時間からの再生などの指示を含む再生制御情報を送信してもよい。また、通信装置101はコンテンツの再生制御情報として、次のコンテンツの再生開始や、音量の調整、再生速度の調整、字幕の有無、言語の変更などの指示を含む再生制御情報も送信してもよい。通信装置101と通信装置102とがWi−Fi Direct規格に準拠したネットワークを介してコンテンツリダイレクトを行っている場合、通信装置101はWi−Fi Direct規格に準拠したネットワークを介して再生制御情報を送信する。具体的には、通信装置101は、通信装置102とWi−Fi Direct規格に準拠したネットワークを介してセッションを確立し、確立したセッションを介して再生制御情報を送信する。一方、通信装置101がインフラストラクチャネットワークを介してコンテンツリダイレクトを行っている場合、通信装置101はインフラストラクチャネットワークを介して再生制御情報を送信する。具体的には、通信装置101は、通信装置102とインフラストラクチャネットワークを介してセッションを確立し、確立したセッションを介して再生制御情報を送信する。
なお、図1では、通信装置101がミラーリングするための通信方式として、Wi−Fi Miracast規格を用いるものとした。しかしWi−Fi Miracast規格に限らず、WiDiやWirelessHDといった他の通信方式を用いてもよい。なお、WiDiはIntel Wireless Displayの、WirelessHDはWireless High Definitionの夫々略である。具体的には、上述のミラーリング、コンテンツリダイレクト、あるいはダイレクトストリーミングの少なくとも何れか一つに相当する無線通信が行える通信方式であればよい。また、Wi−Fi Miracast規格では、通信装置101はWi−Fi Direct規格に準拠したネットワークあるいはインフラストラクチャネットワークを介してミラーリングを行う。通信装置101はミラーリングを行う通信装置102とこれらのネットワークを介してASPセッションを確立し、確立した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に記憶されたコンピュータプログラムを実行することで、ソース機器としてのミラーリング機能およびコンテンツリダイレクト機能を実現する。ソース機器としてのミラーリング機能とは、自装置が表示している画面をキャプチャし符号化した画像データや、再生している音声を符号化した音声データをシンク機器に送信する機能である。また、ソース機器としてのコンテンツリダイレクト機能とは、シンク機器で再生するコンテンツを、シンク機器がソース機器以外の外部装置から取得するために必要な情報をシンク機器に送信する機能である。さらに。ソース機器としてのコンテンツリダイレクト機能として、通信装置101はシンク機器で再生されているコンテンツの再生を制御するための再生制御信号をシンク機器に送信することができる。
また、制御部202は、機能部203を制御して、撮像やコンテンツの閲覧などの所定の処理を実行する。機能部203は、通信装置101が所定の処理を実行するためのハードウェアである。例えば、通信装置101がカメラである場合、機能部203は撮像部であり、撮像処理を行う。このとき、通信装置101は、撮像部が生成したデータを、後述の出力部205によって画面上に表示し、制御部202のミラーリング機能によって他の通信装置に送信することでミラーリングを実行することができる。あるいは、通信装置101の記憶部201に記憶されているデータを出力部205によって画面上に表示し、同様にミラーリングを実行してもよい。
入力部204は、ユーザからの各種操作の受付を行う。出力部205は、モニタ画面やスピーカーなどを介してユーザに対して各種出力を行う。ここで、出力部205による出力とは、画面上への表示や、スピーカーによる音声出力、振動出力などであってもよい。なお、出力部205が出力するモニタ画面は、通信装置101が備えるモニタ画面である。あるいは、通信装置101と接続された他の装置が有するモニタ画面であってもよい。なお、タッチパネルのように入力部204と出力部205の両方を1つのモジュールで実現するようにしてもよい。入力部204、出力部205は、夫々通信装置101とは別体であってもよい。また、出力部205は、画面上への表示や、スピーカーによる音声出力、振動出力などを行うことで、ユーザに対して通知を行う通知部としての機能を実現する。
通信部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と同様であるが、違いについて簡単に説明する。
通信装置102の制御部202は、記憶部201に記憶されたコンピュータプログラムを実行することで、シンク機器としてのミラーリング機能とコンテンツリダイレクト機能とを実現する。ここで、シンク機器としてのミラーリング機能とは、ソース機器が表示している画面をキャプチャし符号化した画像データや、再生している音声を符号化した音声データを受信し、復号、再生する機能である。また、シンク機器としてのコンテンツリダイレクト機能とは、ソース機器から送られた情報を基にソース機器以外の外部装置から再生したいコンテンツを取得し、再生する機能である。さらに、シンク機器としてのコンテンツリダイレクト機能として、通信装置102はソース機器から受信した再生制御情報に基づいて、自装置行っているコンテンツの再生を制御することができる。
なお、通信装置101および通信装置102は、画像の表示と音声の再生のどちらも行える装置である。しかし、通信装置101および通信装置102のどちらも、画像の表示あるいは音声の再生の何れか一方しか行えない装置であってもよい。
図3は、通信装置101と通信装置102とがコンテンツリダイレクトを実施する際に実行する処理を示すフローチャートである。ステップS301からステップS314は、通信装置101がコンテンツリダイレクトを実施する際に、記憶部201に記憶されたコンピュータプログラムを制御部202が読み出し、実行することで実現される処理のフローチャートである。またステップS351からステップS361は、通信装置102がコンテンツリダイレクトを実施する際に、記憶部201に記憶されたコンピュータプログラムを制御部202が読み出し、実行することで実現される処理のフローチャートである。
なお、図3に示すフローチャートの少なくとも一部をハードウェアにより実現してもよい。ハードウェアにより実現する場合、例えば、所定のコンパイラを用いることで、各ステップを実現するためのコンピュータプログラムからFPGA上に自動的に専用回路を生成すればよい。FPGAとは、Field Programmable Gate Arrayの略である。また、FPGAと同様にしてGate Array回路を形成し、ハードウェアとして実現するようにしてもよい。また、ASIC(Application Specific Integrated Circuit)により実現するようにしてもよい。
本フローチャートのステップS301からステップS314は、通信装置101の電源が入ることで開始される。なお、本フローチャートのステップS301からステップS314は、通信装置101において所定のアプリケーションが起動したことに応じて開始するようにしてもよい。また、本フローチャートのステップS351からステップS361は、通信装置102の電源が入ることで開始される。なお、本フローチャートのステップS351からステップS361は、通信装置102において所定のアプリケーションが起動したことに応じて開始するようにしてもよい。
まず通信装置101の制御部202は、入力部204を介してユーザから画面・音声共有の開始操作が行われたか判定する(ステップS301)。画面・音声共有の開始操作とは、ユーザによる画面・音声共有を開始するための制御ボタンの押下である。これに限らず、通信装置101の制御部202は、所定のキーボード操作やマウス操作、タッチ操作、ジョイステック操作等のユーザ操作を開始操作としてもよい。また、通信装置101の制御部202は、所定のジェスチャーや、リモコンの制御ボタンの押下、所定のコンテンツの再生開始、所定のアプリケーションの立ち上げなどのユーザ操作を開始操作としてもよい。画面・音声共有の開始操作が行われなかったと判定されると(ステップS301のNo)、通信装置101の制御部202は再びステップS301の処理を行う。一方、画面・音声共有の開始操作が行われたと判定されると(ステップS301のYes)、通信装置101の制御部202はステップS302の処理を行う。
次に、通信装置101と通信装置102との間でデバイス探索が行われる。通信装置101および通信装置102は、Wi−Fi Direct規格に準拠した無線通信を介してミラーリングを行うデバイスを探索する。あるいは、通信装置101および通信装置102は、インフラストラクチャネットワークを介してミラーリングを行うデバイスを探索してもよい。
本フローチャートにおいて通信装置101と通信装置102とは、Wi−Fi Direct規格に準拠した無線通信を介してミラーリングを行うデバイスを探索する(ステップS302、ステップS351)。具体的には、まず通信装置101の制御部202がデバイス発見要求としてIEEE802.11シリーズ規格に準拠したProbe Requestを送信し、通信装置102の制御部202は応答としてProbe Responseを送信する。これにより通信装置101と通信装置102とは互いを発見する。なお、Probe Request/Responseは、夫々送信する装置が逆であってもよい。
通信装置101の制御部202は発見したデバイスの一覧を出力部205であるモニタ画面上に表示する。ユーザは通信装置101のモニタ画面上に表示されたデバイスの一覧から、画面・音声共有を行うデバイスを選択する。通信装置101の制御部202は、ユーザによって選択されたデバイスを、画面・音声共有を行う接続相手装置として選択する(ステップS303)。なお、本ステップにおける接続相手装置の選択は、過去に画面・音声共有を行ったことがあるデバイスの履歴に基づいて通信装置101が行ってもよい。具体的には、通信装置101の制御部202は、検出されたデバイスの中に、過去に画面・音声共有を行ったことがあるデバイスがある場合、当該デバイスを接続相手装置として選択する。あるいは、通信装置101の制御部202は、検出したデバイスの中から最も通信装置101と距離が近いデバイスを接続相手装置として選択してもよいし、最も通信品質がよいデバイスを接続相手装置として選択してもよい。なお、ステップS303の接続相手装置の選択を通信装置102が行ってもよい。
また、本フローチャートではデバイス探索でProbe Request/Responseを用いたが、Wi−Fi Miracast規格に基づき、IEEE802.11シリーズ規格に準拠したBeaconなどの無線信号を用いてもよい。また、通信装置101あるいは通信装置102は、NFC、QRコード(登録商標)、Bluetooth(登録商標) Low Energy(BLE)などを利用してデバイス探索を行ってもよい。例えば、通信装置101がNFCの通信機能を有しているとき、通信装置101と通信装置102とのペアリングをNFCタッチ操作で行い、以降の通信はWi−Fi Miracast規格に基づいて行うことも可能である。
ここで、ステップS304およびステップS352の処理を行う前に、通信装置101と通信装置102とは、サービス探索を行ってもよい。サービス探索はWi−Fi Direct規格に基づいて行われ、サービス探索を行うことで通信装置101と通信装置102との少なくとも一方は相手装置が提供するサービスについての情報を得ることができる。
次に、通信装置101の制御部202は、ステップS303で選択された接続相手装置と接続セットアップを行う(ステップS304)。ここで、ステップS303において通信装置102が接続相手装置として選択されたとする。そのため、通信装置102の制御部202も通信装置101と接続セットアップを行う(ステップS352)。具体的に、通信装置101と通信装置102とは、Wi−Fi Miracastの接続処理を行い、その後、TCPの接続処理を行う。これらの接続処理を行うことで、通信装置101と通信装置102との間の接続セットアップが完了する。なお、TCPとはTransmission Control Protocolの略である。
通信装置101および通信装置102は、Wi−Fi Miracastの接続処理の方法として、Wi−Fi Direct規格あるいはTDLS規格から選ぶことができるが、本実施形態ではWi−Fi Direct規格に準拠して行う。なお、TDLSはTunneled Direct Link Setupの略である。
ここで、ステップS304とステップS352の詳細な手順について説明する。まず、通信装置102が通信装置101にProbe Requestを送信する。Probe Requestを受信した通信装置101は、通信装置102に対してProbe Responseを送信する。これにより、通信装置101と通信装置102とは相手装置の存在を確認する。続いて、Wi−Fi Direct規格に準拠した無線通信においてネットワークを構築する役割を担うGroup Owner(GO)となる通信装置を決定するため、通信装置101はGO Negotiation Requestを送信する。この信号には、通信装置101のGOになりたい度合いを示すIntent値が含まれる。なお、GOにならなかった通信装置はClient(CL)となり、GOが構築するネットワークに参加する役割を担う。
GO Negotiation Requestを受信した通信装置102は、応答として通信装置102のIntent値を含むGO Negotiation Responseを送信する。GO Negotiation Responseを受信した通信装置101は、通信装置101と通信装置102とのIntent値の大小を比較し、Intent値が大きかった方の通信装置をGOとして決定する。他方、Intent値が小さかった方の通信装置がCLとして決定される。
通信装置101は、Intent値を比較した結果を含めたGO Negotiation Confirmを通信装置102に送信する。本実施形態では、通信装置101のIntent値が通信装置102のIntent値より大きかったため、通信装置101がGOに、通信装置102がCLになったものとする。
その後、WPS方式を用いて接続やセキュリティに関する情報など、通信装置101と通信装置102とのネットワーク接続を確立するために必要なパラメータ情報を共有する。なお、WPSはWi−Fi Protected Setupの略である。そして、交換したパラメータ情報に基づいて、CLである通信装置102がGOである通信装置101へAssociation Requestを送信する。当該信号を受信した通信装置101は、応答としてAssociation Responseを送信する。
以上により、通信装置101と通信装置102との間でWi−Fi Direct規格に準拠したWi−Fi Miracastの接続処理が完了する。なお、本実施形態において、通信装置101をGO、通信装置102をCLとしたが、逆でもよい。また、GOが送信する各無線信号をCLが送信してもよい。この場合、CLが送信する無線信号をGOが送信する。また、Wi−Fi Miracastの接続処理を行うにあたって、通信装置101および通信装置102は、上記の無線信号の他にBeacon、Reassociationメッセージなどを用いてもよい。また通信装置101と通信装置102は、他にP2P Invitationメッセージ、Provision Discoveryメッセージなどを用いてもよい。
続いて、通信装置101と通信装置102との間でTCP接続を確立する。この接続は通信装置101がTCPサーバの、通信装置102がTCPクライアントの役割を担い、Three−way handshakeを行うことで確立される。
このように、通信装置101と通信装置102の間でWi−Fi Miracastの接続処理が完了し、TCP接続が確立されたことにより、接続セットアップが完了する。
なお、通信装置101と通信装置102とがインフラストラクチャネットワークを介してミラーリングを行うデバイスを探索する場合、ステップS302からステップS304とステップS351からステップS352の処理は以下のように行われる。
インフラストラクチャネットワークを介してミラーリングを行うデバイスの探索は、マルチキャストDNS(multicast DNS、mDNS)によって行われる。なお、DNSとはDomain Name Systemの略である。まず、通信装置101が接続しているAP103を介して、インフラストラクチャネットワークに参加している他の通信装置に対してDNSパケットをマルチキャスト送信する。通信装置101は、AP103を介してミラーリングを行うことができるデバイスから応答を受信することで当該デバイスを検出する。具体的には、通信装置101はAP103を介して、DNSレコードを含むDNSパケットを送信する。DNSレコードは、通信装置101がWi−Fi Miracast規格に準拠した無線通信を行うことができる通信装置を指定して探索していることを示す。DNSレコードにはソース機器を示すDisplaysrc、またはシンク機器を示すDisplayの何れか一つのサービス名が含まれる。通信装置101はミラーリングを行うデバイスとしてシンク機器を探索するので、DNSレコードとしてはシンク機器を示すdisplayを含める。なお通信装置101は、DNSパケットを任意の送信間隔、任意の送信回数で送信することが可能である。通信装置101はデバイスの探索を行う場合、所定の回数に達するまでDNSパケットの送信を繰り返し行うものとする。あるいは、通信装置101は所定の時間が経過するまでDNSパケットを繰り返し送信してもよい。また、通信装置101は所定の台数の対向機から応答を受信したことに基づいて、DNSパケットの送信を停止してもよい。
通信装置101の制御部202はインフラストラクチャネットワークを介してミラーリングを行うデバイスの探索を行うと、探索結果を表示し、接続相手装置の選択が行われる。当該探索結果表示と、接続相手装置の選択とは、ステップS303と同様に行われる。
続いて通信装置101の制御部202は選択された接続相手装置(ここでは通信装置102)に、AP103経由でmDNS問合せを送信する。ここで送信するmDNS問合せは、通信装置102の能力情報や通信装置101と通信装置102の通信とで使用するポート番号やホスト名を問合せる信号である。なお、本mDNS問合せで問い合わせる通信装置102の能力情報とは、通信装置102がシンク機器であるか、ソース機器であるか、あるいはデュアルロール機器であるかなどの情報である。mDNS問合せを受信した通信装置102は、自装置の能力情報と、ポート番号、ホスト名を含むmDNS応答を通信装置101に送信する。本応答を受信した通信装置101は、通信装置102との接続セットアップを完了する。
通信装置101と通信装置102が接続セットアップを完了して以降の処理は、Wi−Fi Direct規格に準拠したネットワークを介してミラーリングを行う場合も、インフラストラクチャネットワークを介してミラーリングを行う場合も共通である。
続いて通信装置101の制御部202は、Capability Negotiationを行う(ステップS305)。同様に通信装置102の制御部202も、Capability Negotiationを行う(ステップS353)。Wi−Fi Miracast規格においてCapability NegotiationにはRTSP(Real Time Streaming Protocol)を利用するよう規定されている。RTSPは、ストリーミングを制御するためのプロトコルである。また、下位層のトランスポートプロトコルには一般的にTCPが用いられる。Capability NegotiationにはRTSP M1〜M4までの所定のメッセージが通信装置101と通信装置102との間で交換される。通信装置101はRTSPメッセージの交換によって通信装置102の能力情報を得て、使用するパラメータを決定し通信装置102に通知する。通信装置102は、通信装置101から通知されたパラメータを設定する。能力情報とは具体的に、例えば画面については、通信装置102が対応する画面の解像度やフレームレート、解像度などの情報である。また音声については、通信装置102が対応するコーデックやサンプリング周波数などの情報である。Capability Negotiationの結果、通信装置101と通信装置102との間で、ミラーリングを行う際に使用する画面や音声の符号化方式の種類や映像の解像度、フレームレートなどが決定される。なお、通信装置101と通信装置102とが送受信する能力情報はこれらの情報の一部であってもよい。
Capability Negotiationが完了すると、通信装置101の制御部202と通信装置102の制御部202とはWi−Fi Miracast規格のセッションを確立する(ステップS306、ステップS354)。Wi−Fi Miracast規格では、セッションの確立にはRTSP M5〜M7までの所定のメッセージが通信装置101と通信装置102との間で交換される。これらのRTSPメッセージの交換により、通信装置101と通信装置102との間で使用されるポート番号の設定などが行われ、セッションが確立される。
セッションが確立されると、通信装置101の制御部202はソース機器としてのミラーリング処理を開始し、画面・音声ストリームの送信を開始する(ステップS307)。本ステップにおいて通信装置101の制御部202は、ソース機器としてのミラーリング処理として、表示されている画面のキャプチャやキャプチャ画像の符号化、多重化、データ送信処理を行う。なお、通信装置101が行うミラーリング処理はこれらの一部の処理であってもよい。
また、通信装置102の制御部202はシンク機器としてのミラーリング処理を開始し、画面・音声ストリームの受信を開始する(ステップS355)。本ステップにおいて、通信装置102の制御部202は、シンク機器としてのミラーリング処理として、データの受信や逆多重化、キャプチャ画像の復号化、復号されたキャプチャ画像の再生処理を行う。なお、通信装置102が行うミラーリング処理はこれらの一部の処理であってもよい。
通信装置101と通信装置102とがステップS307およびステップS355の処理を行うことで、通信装置101が表示している画面や再生している音声の情報のストリームが通信装置102に送信される。通信装置102は、送信された画面や音声の情報のストリームを再生することで、通信装置101と同じ画面の表示や音声の再生を行う。
続いて、通信装置101の制御部202は、ユーザによるコンテンツリダイレクトの開始指示を受け付けたか判定する(ステップS308)。ユーザによるコンテンツリダイレクトの開始指示とは、ユーザがコンテンツのサムネイル画像を選択することを指す。あるいはユーザがコンテンツのURLを選択したことであってもよいし、ユーザがコンテンツの再生を指示するソフトキーを選択したことであってもよい。あるいは、コンテンツリダイレクトの開始指示とは、所定のアプリケーションの立ち上げや、所定のWebページの読み込みであってもよいし、Webページが所定の位置までスクロールされたことであってもよい。あるいはWi−Fi Miracast規格のUIBCに対応している通信装置102をユーザが操作し、コンテンツのサムネイル画像の選択などを行ったことに基づいて、通信装置101はコンテンツリダイレクトの開始指示を受け付けたと判定してもよい。UIBCとはUser Input Back Channelのことで、シンク機器である通信装置102に入力されたユーザ操作を、ソース機器である通信装置101に送信する機能である。コンテンツリダイレクトの開始指示を受け付けてないと判定すると(ステップS308のNo)、通信装置101の制御部202はステップS307の処理を行う。一方、コンテンツリダイレクトの開始指示を受け付けたと判定すると(ステップS308のYes)、通信装置101の制御部202はステップS309の処理を行う。
通信装置101の制御部202は、通信装置102にコンテンツリダイレクト機能をサポートしているか問い合わせる(ステップS309)。通信装置101の制御部202は、コンテンツリダイレクト機能の問合せに、RTSP GET_PARAMETERメッセージを利用することができる。当該問合せを受信した通信装置102の制御部202は、応答としてコンテンツリダイレクト機能への対応の可否を通信装置101に通知する(ステップS356)。また、通信装置102の制御部202は、応答として、通信装置102がコンテンツリダイレクト機能によってコンテンツを再生できるコンテンツ共有サービス名などの情報を通知してもよい。
通信装置101の制御部202は、通信装置102がコンテンツリダイレクト機能をサポートしているか、ステップS309で受信した応答に基づいて判定する(ステップS310)。通信装置101の制御部202は、通信装置102がコンテンツリダイレクト機能をサポートしていないと判定すると(ステップS310のNo)、ステップS307の処理を行う。この場合、通信装置101と通信装置102との少なくとも一方は、ユーザに対して通信装置102がコンテンツリダイレクト機能に対応していないことを通知してもよい。一方、通信装置101の制御部202は、通信装置102がコンテンツリダイレクト機能をサポートしていると判定すると(ステップS310のYes)、通信装置102にコンテンツの関連情報を送信する(ステップS311)。本フローチャートにおいて、コンテンツとは、ステップS308で再生指示が出されたコンテンツのことである。通信装置101の制御部202は、コンテンツの関連情報を送信することで、当該コンテンツの取得と再生とを通信装置102に要求する。ここで通信装置101が送信するコンテンツの関連情報は、例えばクラウドサーバ104上にあるコンテンツを識別するための識別子や、サービス名、コンテンツの所在情報(URL、URI)、再生開始時間(オフセット)などの情報である。なお、通信装置101が送信するコンテンツの関連情報は、これらの一部であってもよい。また、通信装置101の制御部はコンテンツの関連情報を送信する際、RTSP SET_PARAMETERメッセージを用いてもよい。
通信装置102の制御部202は、通信装置101からコンテンツの関連情報を受信する(ステップS357)。そして、通信装置102の制御部202はコンテンツの関連情報を受信すると、実行中のミラーリング処理を一時停止する(ステップS358)。同様に通信装置101の制御部202も、実行中のミラーリング処理を一時停止する(ステップS312)。通信装置101の制御部202および通信装置102の制御部202は、ステップS311とステップS357で行われたコンテンツの関連情報の送受信としてのメッセージ交換を契機にミラーリング処理を一時停止する。あるいは、ステップS311の処理を行った通信装置101の制御部202が自装置のミラーリング処理を一時停止し、通信装置102にミラーリング処理の一時停止を指示する無線信号を送信してもよい。あるいはステップS357の処理を行った通信装置102の制御部202が、自装置のミラーリング処理を一時停止し、通信装置101にミラーリング処理の一時停止を指示する無線信号を送信してもよい。ミラーリングを実行中にコンテンツリダイレクトを実施する場合、ミラーリング処理を一時停止することにより、通信装置101と通信装置102とにおけるミラーリングの処理負荷を軽減し、消費電力を抑えることが可能である。
通信装置102の制御部202はミラーリング処理を一時停止すると、ステップS357で受信したコンテンツの関連情報に基づいてクラウドサーバ104からコンテンツを受信し、再生する(ステップS359)。本フローチャートにおいて通信装置102は、AP103を介してクラウドサーバ104からコンテンツを受信する。通信装置101の制御部202によるコンテンツの受信方法やプロトコルは、コンテンツの種類やサービスの種類によって様々である。例えば通信装置101の制御部202はHLS方式やHTTPのGETメソッドなどを用いてコンテンツを受信してもよい。ここでHLSとはHTTP Live Streamingの略であり、HTTPはHyper Text Transfer Protocolの略である。
コンテンツリダイレクトによるコンテンツの受信と再生を開始した通信装置102の制御部202は、コンテンツリダイレクトの状態を検知し、通信装置101に当該状態を通知する(ステップS360)。通信装置101の制御部202は、通信装置102からコンテンツリダイレクトの状態についての通知を受信する(ステップS313)。そして、ステップS360とステップS313において、通信装置102の制御部202と通信装置101の制御部202とは、夫々コンテンツリダイレクトの状態に応じた所定の制御を行う。例えば通信装置102の制御部202が、コンテンツが終端まで再生されたことを検知し、通信装置101に通知する場合、通信装置101と通信装置102とは、一時停止していたミラーリングを再開する。あるいは、通信装置101と通信装置102とは、Wi−Fi Direct規格に準拠したネットワークを介した通信、もしくはインフラストラクチャネットワークを介した通信を終了してもよい。なお、終端まで再生されたコンテンツの次に再生するコンテンツが決められている場合、通信装置101は通信装置102に、次に再生するコンテンツの関連情報を送信してもよい。次に再生するコンテンツの関連情報を受信した通信装置102は、受信した関連情報に基づいてコンテンツを取得し、再生する。
続いて通信装置101の制御部202と通信装置102の制御部202とはミラーリングが終了したかを夫々判定する(ステップS314、ステップS361)。なお、ミラーリングは夫々ステップS313、S360において終了し得る。また、通信装置101の制御部202と通信装置102の制御部202とは、夫々ステップS307およびステップS355以降の各ステップにおいて、ミラーリングを終了することができる。
ミラーリングが終了したと判定されると(ステップS314のYes)、通信装置101の制御部202は図3に示すフローチャートの処理を終了する。同様に、通信装置102の制御部202もミラーリングを終了したと判定すると(ステップS361のYes)、図3に示すフローチャートの処理を終了する。一方、ミラーリングが終了していないと判定されると(ステップS314のNo)、通信装置101の制御部202はステップS307の処理を行い、一時停止していたミラーリング処理を再開する。また、ミラーリングが終了していないと判定された場合(ステップS361のNo)、通信装置102の制御部202はステップS355の処理を行い、一時停止していたミラーリング処理を再開する。
以上、図3のフローチャートでは通信装置101と通信装置102とがコンテンツリダイレクトを実施する際に実行する処理を示した。
なお、図3ではコンテンツリダイレクトを実施する場合に、まずミラーリングを開始してからコンテンツリダイレクトを実施するとしたが、これに限らない。通信装置101と通信装置102とは、ステップS306およびステップS354でセッションが確立した後、ミラーリングを開始せずにコンテンツリダイレクトを開始してもよい。具体的には、通信装置101は本フローチャートが開始されると、まずステップS308の判定を行い、Yesと判定されるとステップS302からステップS306の処理を行う。一方、Noと判定されると、通信装置101は再びステップS308の処理を行う。この場合、通信装置102は、通信装置101がステップS302からステップS306の処理を行う際に、ステップS351からステップS354の処理を行う。また、通信装置101はステップS306でセッションを確立した後、ステップS309の処理を行う。また、通信装置102はステップS354でセッションを確立した後、ステップS356の処理を行う。この場合、ステップS312とステップS358はスキップされる。また、ステップS314およびステップS361の判定は、コンテンツリダイレクトが終了したか、という判定になる。
図4は、通信装置102が通信装置101とのセッションを確立している場合に、通信装置102の記憶部201に記憶されたコンピュータプログラムを制御部202が読み出し、実行することで実現される処理を示すフローチャートである。
なお、図4に示すフローチャートの少なくとも一部をハードウェアにより実現してもよい。ハードウェアにより実現する場合、例えば、所定のコンパイラを用いることで、各ステップを実現するためのコンピュータプログラムからFPGA上に自動的に専用回路を生成すればよい。FPGAとは、Field Programmable Gate Arrayの略である。また、FPGAと同様にしてGate Array回路を形成し、ハードウェアとして実現するようにしてもよい。また、ASIC(Application Specific Integrated Circuit)により実現するようにしてもよい。
本フローチャートは、通信装置102がコンテンツリダイレクトによってコンテンツの再生を開始したことで開始される。あるいは、通信装置102がコンテンツの受信を開始したことで開始されてもよい。
まず、通信装置102の制御部202は、通信装置101とのセッションが切断されたか判定する(ステップS401)。本ステップにおいて、通信装置102の制御部202は、コンテンツリダイレクトによるコンテンツの再生を制御するための再生制御信号をソース機器である通信装置101から受信する際に利用するセッションが切断されたか判定する。なお、本実施形態において、通信装置101と通信装置102とは図3のステップS306、ステップS354で確立したセッションを利用して再生制御信号をやり取りしているとする。なお、これに限らず、通信装置101と通信装置102とは、図3のステップS306、ステップS354で確立したセッションとは異なるセッションを介して再生制御信号のやり取りを行ってもよい。通信装置102の制御部202は、通信装置101とのセッションが切断されていないと判定すると(ステップS401のNo)、再びステップS401の判定を行う。一方、通信装置101とのセッションが切断されたと判定すると(ステップS401のYes)、ステップS402の処理を行う。
通信装置102の制御部202は、通信装置101とのセッションの切断が、正常な終了処理によるものであるか判定する(ステップS402)。具体的には、例えば通信装置102が通信装置101からコンテンツリダイレクトの終了メッセージを受信したか否かに基づいて判定する。コンテンツリダイレクトの終了メッセージを通信装置101から受信していることに基づいて、通信装置102の制御部202は正常な終了処理によるセッションの切断であると判定する。一方、コンテンツリダイレクトの終了メッセージを受信していないことに基づいて、通信装置102の制御部202は正常な終了処理によらないセッションの切断であると判定する。通信装置102の制御部202は、正常な終了処理が実施された後にセッションが切断された場合(ステップS402のYes)、ステップS412の処理を行う。一方、正常な終了処理が実施されずにセッションが切断された場合(ステップS402のNo)、通信装置102の制御部202はステップS403の処理を行う。
また、通信装置102は通信装置101以外の機器からコンテンツリダイレクトの終了メッセージを受信してもよい。具体的には、例えば通信装置102は、付属の機器であるリモコンからコンテンツリダイレクトの終了メッセージを受信してもよい。このように、通信装置102は通信装置101以外の付属の機器からコンテンツリダイレクトの終了メッセージを受信してもよい。
なお、コンテンツリダイレクトの正常な終了処理が、通信装置101と通信装置102とで複数のメッセージの交換を伴う場合を想定する。この場合、通信装置102の制御部202は全てのメッセージが交換された後にセッションが切断されたことに基づいて、正常な終了処理によるセッションの切断であると判定する。一方、全てのメッセージが交換される前にセッションが切断されたことに基づいて、通信装置102の制御部202は正常な終了処理によるセッションの切断ではないと判定する。あるいは、終了処理の最後に送信あるいは受信するメッセージを送信あるいは受信した後にセッションが切断されたことに基づいて、通信装置102の制御部202は正常な終了処理によるセッションの切断であると判定してもよい。一方、終了処理の最後に送信あるいは受信するメッセージを送信あるいは受信する前にセッションが切断されたことに基づいて、通信装置102の制御部202は正常な終了処理によるセッションの切断ではないと判定してもよい。
あるいは通信装置102の制御部202は、ステップS402において、通信装置102に対してユーザからコンテンツリダイレクトの停止指示が出されたか否かに基づいて判定してもよい。通信装置102の制御部202は、ユーザからコンテンツリダイレクトの停止指示が出された場合、ステップS402でYesと判定する。一方、ユーザからコンテンツリダイレクトの停止指示が出されていない場合、ステップS402でNoと判定する。なお、通信装置102は、入力部204を介してユーザからコンテンツリダイレクトの停止指示を受け付ける。具体的には、通信装置102の入力部204がタッチパネルや制御ボタンを具備している場合、これらをユーザが操作することによって、ユーザから通信装置102に対してコンテンツリダイレクトの停止指示が出される。
あるいは、通信装置102の制御部202は、通信装置101と通信装置102との間でWi−Fi Miracast規格のキープアライブ要求を用いてセッションが切断されたか否かに基づいて判定するようにしてもよい。Wi−Fi Miracast規格において、通信装置101と通信装置102とは、所定の期間内にキープアライブ要求を送信あるいは受信することで、通信装置101と通信装置102とのセッションが有効かを確認し、セッションの管理をすることができる。具体的には、まず通信装置101が通信装置102とのセッションにおけるキープアライブ間隔を設定する。Wi−Fi Miracast規格において、通信装置101はキープアライブ間隔をRTSP M6(SETUP)応答の中のtimeout値で設定する。次に通信装置101は通信装置102にキープアライブ要求を送信する。Wi−Fi Miracast規格において、キープアライブ要求とはRTSP M16(GET_PARAMETER)要求のことである。通信装置101は、設定したキープアライブ間隔より短い間隔で、通信装置102にキープアライブ要求を送信する。通信装置102は通信装置101からキープアライブ要求を受信すると、通信装置101にキープアライブ応答を送信する。Wi−Fi Miracast規格において、キープアライブ応答はRTSP M16(GET_PARAMETER)応答のことである。なお通信装置102は、設定されたキープアライブ間隔の間に、通信装置101から一度もキープアライブ要求を受信しなかった場合、通信装置101とのセッションを切断する。また、通信装置101は、設定したキープアライブ間隔の間に、通信装置102から一度もキープアライブ応答を受信しなかった場合、通信装置102とのセッションを切断する。一方、通信装置101は、設定したキープアライブ間隔の間に、通信装置102から少なくとも一度キープアライブ応答を受信すると、通信装置102がまだ有効であると判定し、セッションを切断しない。なお、通信装置101は、通信装置102からどのようなRTSP M16応答を受信しても、通信装置102がまだアライブであると判定し、セッションを切断しない。なお、キープアライブにおいて、通信装置101と通信装置102との役割を交換してもよい。通信装置102の制御部202は、キープアライブ間隔の間に通信装置101からキープアライブ要求を受信せず、セッションを切断した場合、ステップS402でNoと判定する。
なお、キープアライブ要求を送信する装置は、自装置がキープアライブ要求を送信してからキープアライブ間隔が経過するまでにキープアライブ応答を受信しなかった場合、相手装置とのセッションを切断する。あるいは、キープアライブ要求を送信する装置は、相手装置からキープアライブ応答を受信し、キープアライブ間隔が経過するまでに新たにキープアライブ応答を受信しなかった場合、セッションを切断してもよい。また、キープアライブ要求を受信する装置は、自装置がキープアライブ応答を送信してからキープアライブ間隔が経過するまでに新たなキープアライブ要求を受信しなかった場合、相手装置とのセッションを切断する。あるいはキープアライブ要求を受信する装置は、キープアライブ要求を受信し、キープアライブ間隔を経過するまでに新たなキープアライブ要求を受信しなかった場合、相手装置とのセッションを切断してもよい。あるいは、キープアライブ要求を送信する装置と、キープアライブ応答を受信する装置とは、夫々キープアライブ応答とキープアライブ要求とを受信する代わりに、相手装置から何らかの信号を受信したことに基づいてセッションを維持してもよい。
また、セッションを切断するか否かの確認方法はこれに限らず、RTSPのPINGメッセージやHTTPレイヤのKEEP−ALIVEメッセージ等他のプロトコルを利用して同様の判定を行うようにしてもよい。通信装置101と通信装置102とは、セッションが有効であるかを確認するための確認要求信号とそれに対する応答である確認応答信号の送受信を行うことでセッションが有効かを確認し、セッションを切断するか否かを判定すればよい。あるいは、通信装置101と通信装置102とのセッションにおいて何らかの通信エラーを検知した場合、通信装置102の制御部202はステップS402でNoと判定するようにしてもよい。
通信装置102の制御部202は、コンテンツリダイレクトを継続する(ステップS403)。具体的には、通信装置102の制御部202は、通信装置101とのセッションが切断された場合であっても、正常な終了処理による切断ではない場合、クラウドサーバ104からのコンテンツの取得と、取得したコンテンツの再生を継続する。
続いて、通信装置102の制御部202は、ソース機器である通信装置101とのセッションが切断された旨を通信装置102の出力部205へ表示する(ステップS404)。本ステップにおける通信装置102の表示画面の一例は、後述する図5で説明する。
図5に、通信装置102において、ソース機器である通信装置101とのセッションの切断を検知した際に表示する表示画面の一例を示す図である。図5において通信装置102は、コンテンツリダイレクトを継続しており、クラウドサーバ104から取得したコンテンツを再生し、再生しているコンテンツに基づいた画面の表示を行っている。通信装置102は、ソース機器である通信装置101とのセッションの切断を検知し、当該切断が正常な終了処理によるものではないと判定すると、コンテンツを表示しつつ、セッションが切断された旨を通知する切断通知501を表示する。具体的には通信装置102の制御部202は、コンテンツと切断通知501とを重畳して表示されるように画像処理して表示する。
なお、切断通知501の表示方法は、これに限るものではない。通信装置102の制御部202は、通信装置102の出力部205において、コンテンツの表示領域とは異なる領域に切断通知501が表示されるように制御してもよい。あるいは通信装置102の制御部202は、アイコン等を用いることで通信装置101とのセッションの状態を常時表示するようにしてもよい。あるいは、通信装置102の制御部202は、通信装置101とセッションが確立している間はその旨が分かるようなアイコンを表示し、通信装置101とのセッションが切断された場合はその旨が分かるようなアイコンを表示するようにしてもよい。また、通信装置102の制御部202は、通信装置101とのセッションが切断された際に、セッションが切断された旨と併せて、セッションが切断された理由を表示するようにしてもよい。例えば通信装置102の制御部202は、切断通知501として、「ソース機器との無線通信が切断されています。」といった内容の表示を行ってもよい。なお、通信装置102の制御部202は、「ソース機器」との表示の代わりに、通信装置101のデバイス名を表示してもよい。また、通信装置102の制御部202は、「ソース機器からコンテンツの再生を制御することができません。」といった内容の表示を行ってもよい。あるいは、通信装置102の制御部202は、切断通知501として、エラーコードを表示するようにしてもよい。あるいは切断通知501と併せて、あるいは代えて、通信装置102は通信装置101によるコンテンツの再生制御が行えない旨を表示してもよい。
なお、切断通知501は、通信装置101と通信装置102とのセッションが再確立されたことに基づいて表示されなくなる。あるいは、切断通知501は所定の時間が経過すると表示されなくなってもよい。もしくは、切断通知501はユーザが通信装置102に対して所定のユーザ操作を行ったことに基づいて表示されなくなってもよい。ここで、所定のユーザ操作とは、例えば通信装置102がリモコンで制御できる通信装置である場合、ユーザがリモコンの所定のボタンを押下したことに基づいて表示されなくなる。あるいは、通信装置102がタッチパネルを備える通信装置である場合、ユーザのタッチ操作に基づいて表示されなくなってもよい。もしくは、ユーザが所定のソフトキーを押下したことに基づいて、表示されなくなってもよい。
以上、図5にあるように、通信装置101とのセッションが切断され、正常な終了処理による切断ではない場合、通信装置102が切断通知501を表示することで、通信装置101とのセッションが切断されたことをユーザに通知することができる。ユーザはコンテンツリダイレクトを利用してコンテンツを再生している際、コンテンツが表示されている通信装置102に注目していると考えられる。そのため、通信装置101と通信装置102とのセッションが切断された場合に、切断通知501を通信装置102が表示することで、ユーザは簡単に通信装置101とのセッションが切断されたことを認識できる。また、例えば通信装置101がスマートフォンのように、所定の時間ユーザ操作などが入力されないとスリープモードに移行し、画面の表示がオフになるような通信装置である場合を考える。この場合、切断通知501を通信装置102が表示することで、ユーザは通信装置101とのセッションの状態を確認するために通信装置101をスリープモードから復帰させる必要がなくなり、便利である。また、通信装置101の省電力性も向上する。
通信装置102の制御部202は、通信装置101と他の通信形態でのセッションの確立処理を試行するか判定する(ステップS405)。例えば通信装置101と通信装置102とがWi−Fi Direct規格に準拠した無線通信を介してセッションを確立していた場合、他の通信形態とはインフラストラクチャネットワークのことである。あるいは、他の通信形態とは、BluetoothやIEEE802.11シリーズ規格に準拠した他の無線通信などであってもよい。本判定は、通信装置101と通信装置102との通信の状態に基づいて判定する。具体的には、通信装置101と通信装置102とが図3のフローチャートの処理を行い、例えばWi−Fi Direct規格に準拠した無線通信を介してセッションを確立したとする。しかし、Wi−Fi Direct規格に準拠した無線通信を維持した状態で通信装置101と通信装置102との通信にエラーが発生した場合、通信装置102の制御部202は通信装置101と他の通信形態でのセッションの確立処理を行わないと判定する。一方、通信装置102の制御部202が、通信装置101との無線通信の切断を検知した場合、通信装置102の制御部202は、通信装置101と他の通信形態でのセッションの確立処理を行うと判定する。
なお、通信装置102が通信装置101と無線通信を維持しているがセッションが切断されている場合とは、通信装置102においてコンテンツリダイレクトを行うために利用しているアプリケーションプログラムがクラッシュした場合である。あるいは、通信装置101においてコンテンツリダイレクトを行うために利用しているアプリケーションプログラムがクラッシュした場合であってもよい。もしくは、通信装置101と通信装置102とがコンテンツリダイレクトを行うために利用している通信プロトコルのプロトコル処理でエラーが発生した場合であってもよい。あるいは通信装置101と通信装置102とがコンテンツリダイレクトを行うために利用している通信プロトコルより下位レイヤの通信プロトコルでエラーが発生し、メッセージの送受信ができない場合であってもよい。なお、コンテンツリダイレクトを行うために利用している通信プロトコルより下位レイヤの通信プロトコルとは、無線通信で利用している通信プロトコルより上位レイヤの通信プロトコルになる。
通信装置102が通信装置101と例えばWi−Fi Direct規格に準拠した無線通信を介してセッションを確立したが、当該無線通信を維持した状態で通信装置101とのセッションが切断され、エラーが発生した場合を想定する。この場合、ステップS405において通信装置102の制御部202は、他の通信形態でのセッションの確立処理を試行しないと判定する。しかし、通信装置102が後述のステップS407の処理を行ったが、セッションを再確立できず、再びステップS405の判定を行う場合、通信装置102の制御部202は他の通信形態でのセッションの確立処理を試行すると判定してもよい。
通信装置102の制御部202は、通信装置101と他の通信形態でのセッションの確立処理を試行すると判定すると(ステップS405のYes)、ステップS406の処理を行う。一方、通信装置101と他の通信形態でのセッションの確立処理を試行しないと判定すると(ステップS405のNo)、ステップS407の処理を行う。
通信装置102の制御部202は、通信装置101と他の通信形態でのセッションの確立処理を試行する(ステップS406)。例えば通信装置102が通信装置101とWi−Fi Direct規格に準拠した無線通信を介して確立したセッションが切断されたことを検知した場合、通信装置102はインフラストラクチャネットワークを介したセッションの確立を試行する。本実施形態において、通信装置102はAP103と接続しているため、AP103が構築するインフラストラクチャネットワークに参加している。同様に、本実施形態において通信装置101もAP103に接続しており、AP103が構築するインフラストラクチャネットワークに参加している。そのため、通信装置102の制御部202は、通信装置101とAP103を介したセッションの確立を試行する。
あるいは、通信装置101がAP103と接続していない場合、通信装置102の制御部202は、通信装置102が接続しているAP103への接続を促すようなメッセージを通信装置102の出力部205へ表示するようにしてもよい。例えば通信装置102の制御部202は、AP103への接続を促すメッセージと共に、AP103の識別情報を表示する。AP103の識別子としては例えばSSID(Service Set Identifier)が挙げられる。通信装置102の制御部202は、例えば「ソース機器をSSID=XXXXのアクセスポイントに接続して下さい。」といった表示を通信装置102の出力部205へ表示する。なお、AP103の識別子はSSIDに限るものではなく、ユーザがAP103を一意に識別できる情報であればよい。これにより、通信装置101がAP103に接続していない場合でも、ユーザに通信装置101をAP103に接続させることで、AP103を介した通信装置101と通信装置102との通信が可能となり、セッションを確立することができる。
以上、通信装置102が通信装置101とインフラストラクチャネットワークを介したセッションを確立する場合について説明したが、他の通信形態でのセッションの確立は、これに限るものではない。通信装置102がIEEE802.11シリーズ規格に準拠した、他の通信方式によるセッションの確立を試行するようにしてもよい。例えば通信装置102が、Ad−hoc通信やWi−Fi Aware規格に準拠した無線通信、ASPといった他の通信方式でセッションの確立を試行してもよい。
通信装置102が他の通信形態での通信装置101とのセッションの確立を試行する場合について、別の一例を説明する。通信装置102は、通信形態としてIEEE802.11シリーズ規格に準拠した通信だけではなく、Bluetooth等の別の通信方式を用いて通信装置101とのセッションの確立を試行してもよい。以下、通信装置102がBluetoothによるセッションを確立する場合について説明する。
通信装置101と通信装置102とが、Bluetoothによる無線通信を行うことができる通信機能を備えているものとする。
通信装置102は、通信装置101とのセッションが切断される前に、予め通信装置101との間で通信能力情報を交換する。通信能力情報には、通信装置101あるいは通信装置102の夫々が対応している通信方式についての情報が含まれる。通信装置101は通信装置102と通信能力情報を交換することで、通信装置102との間でBluetoothによる通信が可能であることを認識する。同様に通信装置102も、通信装置101と通信能力情報を交換することで、通信装置101との間でBluetoothによる通信が可能であることを認識する。
通信装置102が通信装置101とのセッションが切断されたことを検知し、かつ通信装置101と通信装置102との無線通信が切断された場合を想定する。この場合に、通信装置102はBluetoothを起動し、通信装置101とBluetoothによる接続を試みる。通信装置102は、通信装置101とBluetoothにより接続した場合、Bluetoothによる通信を介して通信装置101とのセッションの確立を試行する。
なお、この場合、通信装置102の制御部202は、Bluetoothを用いてセッションを確立する旨を、通信装置102の出力部205に表示してもよい。具体的には、通信装置102は通信装置101との無線LANの切断を検知した場合に、通信装置102の出力部205に切断通知501に加えて、Bluetoothによりセッションを確立する旨を表示してもよい。あるいは、通信装置102の制御部202は、通信装置101と通信装置102とをBluetoothで接続するようユーザに促すような表示でもよい。例えば通信装置102は出力部205に「ソース機器のBluetoothを起動して接続してください。」といった表示を行ってもよい。あるいは、通信装置102の制御部202は、ユーザがBluetoothで通信装置101と通信装置102とを接続するための具体的な操作を行うことを促すような表示であってもよい。あるいは、通信装置102の制御部202は、例えばBluetoothでのペアリングに用いられるPINコード情報を併せて表示するようにしてもよい。
なお、通信装置102がIEEE802.11シリーズ規格に準拠した通信と、Bluetoothによる通信とを並行に行うことができる通信装置であり、かつ通信装置101との無線通信が切断された場合を想定する。この場合、通信装置102は、IEEE802.11シリーズ規格に準拠した無線通信による通信装置101の待ち受けと、Bluetoothによるセッションの確立とを並行して行ってもよい。
なお、通信装置102がIEEE802.11シリーズ規格に準拠した無線通信とは異なる他の通信形態として、Bluetoothを利用する方法について説明したが、これに限らずBluetooth以外の通信方式を利用してもよい。
あるいは別の通信形態でのセッションの確立の試行として、通信装置102は別の周波数帯域でのセッションの確立を試行してもよい。例えば通信装置102が、セッションが切断される前に周波数帯域として2.4GHz帯を利用していた場合、別の周波数帯域を利用してセッションの確立を試行してもよい。
なお、ステップS405の判定を行う際、通信装置102は通信装置101と通信装置102との無線通信の切断および再接続が所定の時間内に所定の回数以上発生したことに基づいて、判定を行ってもよい。具体的には通信装置102の制御部202は、通信装置101と通信装置102との無線通信の切断および再接続が、所定の時間内に所定の回数以上発生した場合、ステップS405でYesと判定する。一方、通信装置101と通信装置102との無線通信の切断および再接続が、所定の時間内に所定の回数以上発生しなかった場合、通信装置102の制御部202はステップS405でNoと判定する。例えば、屋内環境で通信装置101と通信装置102とが2.4GHz帯の周波数帯域を用いて無線通信をしている場合、電子レンジ等の影響を受けて、通信装置101と通信装置102との無線通信が頻繁に切断される場合がある。このような場合、通信装置101と通信装置102との間で所定の時間内に所定の回数以上、無線通信が切断および再接続されるため、通信装置102は例えば5GHz帯など別の周波数帯域の無線通信によるセッションの確立を試行するようにしてもよい。
なお、ステップS405の判定を、ユーザの選択に基づいて行うようにしてもよい。具体的には通信装置102の制御部202は、他の通信形態でのセッションの再確立を実施するか否かをユーザに問い合わせる問合せ画面を出力部205に表示する。ユーザは通信装置102の入力部204を介してユーザ操作を入力することで、他の通信形態でのセッションの再確立を実施するかを選択する。ユーザが他の通信形態でのセッションの再確立を実施すると選択すると、通信装置102の制御部202はステップS405でYesと判定する。一方、ユーザが他の通信形態でのセッションの再確立を行わないと選択すると、通信装置102の制御部202はステップS405でNoと判定する。通信装置102の制御部202が問合せ画面に他の通信形態として取りうる通信形態の全てあるいは一部を表示することで、セッションの再確立を実施するための通信形態をユーザが選択できるようにしてもよい。
通信装置102の制御部202は、通信装置101と他の通信形態でのセッションの確立を試行しないと判定すると(ステップS405のNo)、通信装置101と現在の通信形態でのセッションの再確立を試行する(ステップS407)。
通信装置102の制御部202は、コンテンツリダイレクトの停止指示があったか否かを判定する(ステップS408)。具体的には、例えば通信装置102に付属のリモコンを介して、ユーザから通信装置102に対してコンテンツリダイレクトの停止指示が出される。なお、コンテンツリダイレクトの停止指示は、通信装置102のリモコンに限らず、通信装置102が制御ボタンやタッチパネル等を備えている場合、ユーザがこれらを操作することにより出されてもよい。あるいは通信装置101と通信装置102とが赤外線通信など他の通信手段により通信できる場合、該通信手段により通信装置101からコンテンツリダイレクトの終了メッセージを受信した場合、コンテンツリダイレクトの終了指示があったと判定してもよい。通信装置102の制御部202は、コンテンツリダイレクトの停止指示がなかったと判定した場合(ステップS408のNo)、ステップS409の処理を行う。一方、通信装置102の制御部202は、コンテンツリダイレクトの停止指示があったと判定した場合(ステップS408のYes)、ステップS412の処理を行う。
なお、通信装置102の制御部202は、ステップS408の処理を、ステップS405からステップS407の処理と並行して行ってもよい。具体的には通信装置102の制御部202は、ステップS405からステップS407の処理を行う間に、コンテンツリダイレクトの停止指示があった場合、ステップS412の処理を行ってもよい。この場合、通信装置102の制御部202はステップS406、ステップS407で行っている通信装置101との無線通信の確立処理やセッションの確立処理を停止してもよい。例えば通信装置101と通信装置102とがWi−Fi Direct規格に準拠した無線通信によるセッションを確立しており、セッションが切断された場合、通信装置102は当該無線通信によるセッションの再確立処理を行う。しかし、通信装置102がセッションの再確立処理を行っている間に、コンテンツリダイレクトの終了指示を受けた場合、通信装置102は再確立処理を停止してもよい。これに限らず、通信装置102は通信装置101とのセッションの再確立に必要な処理、あるいは機能の一部もしくは全てを停止してもよい。
通信装置102の制御部202は、通信装置101とのセッションを再確立したか判定する(ステップS409)。通信装置102の制御部202は、通信装置101とのセッションを再確立できなかったと判定した場合(ステップS409のNo)、ステップS405の処理を行う。一方、通信装置102の制御部202は、通信装置101とのセッションを再確立できたと判定した場合(ステップS409のYes)、ステップS410の処理を行う。なお、通信装置101とのセッションの再確立ができないまま所定の時間が経過した場合、通信装置102の制御部202はエラー終了し、コンテンツリダイレクトを停止するようにしてもよい。あるいは通信装置101とのセッションの再確立を所定の回数以上試行した場合も、同様に通信装置102の制御部202はエラー終了し、コンテンツリダイレクトを停止するようにしてもよい。
通信装置102の制御部202は、通信装置101とのセッションを再確立すると、通信装置102におけるコンテンツリダイレクトの状態について通信装置101に通知する(ステップS410)。コンテンツリダイレクトの状態とは、通信装置102がコンテンツリダイレクトを実行中か、あるいは通信装置102がコンテンツリダイレクトを停止しているかといった状態のことである。通信装置102の制御部202は、通信装置101とのセッションが再確立される前に、何らかのエラーが発生したことによってコンテンツリダイレクトを停止した場合は、通信装置101にその旨を通知する。なお、この場合、通信装置102の制御部202は、コンテンツリダイレクトの状態だけではなく、発生したエラーの内容や原因を通信装置101に通知してもよい。通信装置102の制御部202は、このようなコンテンツリダイレクトの状態を示す情報を通信装置101に送信することで、コンテンツリダイレクトの状態を通信装置101に通知する。具体的には、通信装置102の制御部202は、RTSPのメッセージを用いて通信装置101にコンテンツリダイレクトの状態を通知する。なお、通知の方法はこれに限るものではなく、通信装置102が通信装置101にコンテンツリダイレクトの状態を通知できればよい。なお、通信装置101は、通信装置102においてコンテンツリダイレクトが停止していることを示す通知を受信したことに応じて、通信装置102にコンテンツリダイレクトの再開を指示する再開指示メッセージを送信してもよい。また通信装置102の制御部202は、コンテンツリダイレクトを停止している場合、通信装置101から再開指示メッセージを受信したことに応じて、コンテンツリダイレクトを再開してもよい。
通信装置102の制御部202は、通信装置101とのセッションが再確立した旨を、通信装置102の出力部205に表示することでユーザに通知する(ステップS411)。これにより、ユーザがシンク機器である通信装置102の表示を確認することで、ソース機器である通信装置101を利用したコンテンツリダイレクトの再生制御が可能になったことを認識することができる。通信装置102の制御部202は、ステップS411の処理を行うと、ステップS401の処理を行う。
一方、通信装置102の制御部202は、ステップS408において通信装置101以外の機器からコンテンツリダイレクトの停止指示があったと判定した場合(ステップS408のYes)、ステップS412の処理を行う。通信装置102の制御部202は、コンテンツリダイレクトの終了処理を行う(ステップS412)。具体的には、通信装置102の制御部202は、コンテンツリダイレクトを終了し、通信装置102の出力部205へのコンテンツの表示を停止する。なお、ステップS402でYesと判定され、本ステップの処理を行う場合、通信装置102は通信装置101とのセッションが切断される前に既に出力部205へのコンテンツの表示を停止していてもよい。
通信装置102の制御部202は、コンテンツリダイレクトが終了した旨を、通信装置102の出力部205に表示する(ステップS413)。これにより、ユーザはコンテンツリダイレクトが終了したことを認識することができる。通信装置102の制御部202は、ステップS413の処理を行うと、本フローチャートのフローを終了する。
なお、通信装置102の制御部202は、ステップS409において、通信装置101とのセッションが再確立されたと判定される場合、通信装置101からコンテンツの再生を制御するための再生制御情報を受信することができる。
また、通信装置102の制御部202は、ステップS404において、通信装置101とのセッションが切断されたことを通知するが、これに限らない。具体的には、通信装置102の制御部202は、ステップS402でNoと判定された場合に、通信装置102において再生されているコンテンツの再生を制御する再生制御機能を通信装置102が有しているかを判定してもよい。通信装置102が例えばリモコンなどの機器を利用してコンテンツの再生を制御可能な場合、通信装置102の制御部202は通信装置102が再生制御機能を有していると判定する。あるいは、通信装置102が入力部204を介して受け付けたユーザ操作に基づいてコンテンツの再生を制御可能な場合も、通信装置102の制御部202は通信装置102が再生制御機能を有していると判定する。具体的には、通信装置102が入力部204として例えばタッチパネルを備えており、タッチパネルを介して受け付けたユーザ操作に基づいてコンテンツの再生を制御可能な場合、通信装置102の制御部202は通信装置102が再生制御機能を有していると判定する。
通信装置102の制御部202は、通信装置102が再生制御機能を有していないと判定すると、ステップS403以降の処理を行う。一方、通信装置102の制御部202は、通信装置102が再生制御機能を有していると判定すると、通信装置101とのセッションが切断されたことを通知しない。具体的には、通信装置102の制御部202は、通信装置102が再生制御機能を有していると判定すると、ステップS403の処理を行い、ステップS404の処理をスキップし、ステップS405の処理を行う。通信装置101と通信装置102とのセッションが切断され、かつ通信装置102が再生制御機能を有していない場合、通信装置102がユーザに対して通知を行うことで、ユーザはコンテンツの再生制御ができないことを認識できる。一方、通信装置101とのセッションが切断された場合であっても、通信装置102が再生制御機能を有している場合は、ユーザはコンテンツの再生を制御できるため、通信装置102がユーザに対して通知を行わなくてもよい。
なお、通信装置102が有する再生制御機能によって実行されるコンテンツの再生制御とは、通信装置102が受け付けたユーザ操作に基づいて通信装置102の電源が投入されている状態で実行されるコンテンツの再生制御のことである。例えば通信装置102がテレビであった場合、ユーザからリモコンを介してコンテンツの停止を指示するユーザ操作を受け付けると、通信装置102はコンテンツの再生を停止し、待機画面やテレビ番組の表示を行う。通信装置102が有する再生制御機能によって実行されるコンテンツの再生制御には、通信装置102の電源が切られたことによるコンテンツの再生の停止は含まれない。
あるいは通信装置102の制御部202は、通信装置102がコンテンツの再生制御機能を有しているか、ということに基づいて、ユーザに対する通知の内容を切り替えてもよい。具体的には、通信装置102の制御部202は、通信装置101とのセッションが切断されたことを検知すると、通信装置102が再生制御機能を有しているか判定する。通信装置102が再生制御機能を有している場合、
以上、図4において、通信装置102はコンテンツリダイレクトを実施している際に通信装置101との通信が切断されると、通信装置101との通信が切断されたことを表示することでユーザに通知した。コンテンツリダイレクトを実施している際、コンテンツはシンク機器である通信装置102が再生および表示するので、ユーザは通信装置102に注目していると考えられる。そのため、通信装置101との通信が切断された際に、通信装置102が通信装置101との通信が切断されたことを表示することで、ユーザは通信が切断されたことを簡単に認識できる。
また、通信装置101が例えばスマートフォンのような、通信装置102との無線通信を維持したまま画面の電源を切ることができる装置である場合を想定する。このような場合、通信装置101との通信が切断されたことを通信装置102が表示してユーザに通知することで、ユーザは通信装置101と通信装置102との通信が維持されているか確認するために通信装置101の画面の電源を入れる必要がなくなる。そのため通信装置101が省電力で動作することができる。
図6は、通信装置101が通信装置102とのセッションを確立している場合に、通信装置101の記憶部201に記憶されたコンピュータプログラムを制御部202が読み出し、実行することで実現される処理を示すフローチャートである。
なお、図6に示すフローチャートの少なくとも一部をハードウェアにより実現してもよい。ハードウェアにより実現する場合、例えば、所定のコンパイラを用いることで、各ステップを実現するためのコンピュータプログラムからFPGA上に自動的に専用回路を生成すればよい。FPGAとは、Field Programmable Gate Arrayの略である。また、FPGAと同様にしてGate Array回路を形成し、ハードウェアとして実現するようにしてもよい。また、ASIC(Application Specific Integrated Circuit)により実現するようにしてもよい。
本フローチャートは、通信装置101がコンテンツリダイレクトを行う際に利用する所定のアプリケーションを起動したことで開始される。あるいは、通信装置102がコンテンツリダイレクトによってコンテンツの再生を開始したことで開始されてもよいし、通信装置102がコンテンツの受信を開始したことで開始されてもよい。あるいは、通信装置101がコンテンツの関連情報を送信したことで開始されてもよいし、ミラーリングを一時停止したことで開始されてもよい。
まず、通信装置101の制御部202が、通信装置101と通信装置102とのセッションが切断されたか判定する(ステップS601)。通信装置101の制御部202は、通信装置102とのセッションが切断されていないと判定すると(ステップS601のNo)、再びステップS601の判定を行う。一方、通信装置101の制御部202が、通信装置101と通信装置102とのセッションが切断されたと判定すると(ステップS601のYes)、ステップS602の処理を行う。
通信装置101の制御部202は、通信装置102とのセッションの切断が、正常な終了処理によるものであるか判定する(ステップS602)。通信装置101の制御部202は、図4のステップS402における通信装置102と同様に判定する。
通信装置101の制御部202は、通信装置102とのセッションの切断が、正常な終了処理によるものであると判定すると(ステップS602のYes)、ステップS611の処理を行う。一方、通信装置102とのセッションの切断が、正常な終了処理によるものでないと判定すると(ステップS602のNo)、通信装置101の制御部202はステップS603の処理を行う。
通信装置101の制御部202は、シンク機器である通信装置102とのセッションが切断された旨を通信装置101の出力部205へ表示する(ステップS603)。なお、通信装置101の制御部202は、通信装置101の入力部204を介してコンテンツリダイレクトの再生制御のためのユーザ操作が入力されたことに基づいて、通信装置102とのセッションが切断された旨の表示を行ってもよい。本ステップにおける表示画面の一例は、後述する図7で説明する。
図7に、通信装置101において、シンク機器である通信装置102とのセッションの切断を検知した際に表示する表示画面の一例を示す図である。通信装置101の制御部202は、出力部205に通信装置102とのセッションが切断された旨を通知する切断通知701を表示する。通信装置101の制御部202は、切断通知701をポップアップで表示する。あるいは通信装置101の制御部202は、アイコン等を用いて通信装置102とのセッションの状態を常時に表示するようにしてもよい。通信装置102の制御部202は、通信装置102とのセッションが確立されている間はその旨が分かるアイコンを表示し、通信装置102とのセッションが切断された場合はその旨が分かる別のアイコンを表示するようにしてもよい。あるいは通信装置101の制御部202は、通信装置102とのセッションが切断された際に、セッションが切断された理由も併せて表示するようにしてもよい。例えば、無線通信の切断が原因でセッションが切断された場合、通信装置101の制御部202は「シンク機器との無線通信が切断されています。」といった内容の表示を行ってもよい。なお、通信装置101の制御部202は、「シンク機器」との表示の代わりに、通信装置102のデバイス名を表示してもよい。また、通信装置101の制御部202は、「シンク機器で再生されているコンテンツの再生を制御することができません」といった内容の表示を行ってもよい。あるいは通信装置101の制御部202は、通信装置102とのセッションが切断された原因をエラーコードとして表示してもよい。なお、通信装置101の制御部202は、「シンク機器」との表示の代わりに、通信装置102のデバイス名を表示してもよい。あるいは切断通知701と併せて、あるいは代えて、通信装置101はシンク機器で再生されているコンテンツの再生制御が行えない旨を表示してもよい。
通信装置101の制御部202は、他の通信形態でのセッションの確立処理を試行するか判定する(ステップS604)。本判定は、通信装置101と通信装置102との通信の状態に基づいて判定する。具体的には、通信装置101と通信装置102とが図3のフローチャートの処理を行い、例えばWi−Fi Direct規格に準拠した無線通信を介してセッションを確立したとする。しかし、Wi−Fi Direct規格に準拠した無線通信を維持した状態で通信装置101と通信装置102との通信にエラーが発生した場合、通信装置101の制御部202は通信装置102と他の通信形態でのセッションの確立処理を行わないと判定する。一方、通信装置101の制御部202が、通信装置102との無線通信の切断を検知した場合、通信装置101の制御部202は、通信装置102と他の通信形態でのセッションの確立処理を行うと判定する。
また、通信装置101が通信装置102と例えばWi−Fi Direct規格に準拠した無線通信を介してセッションを確立したが、当該無線通信を維持した状態で通信装置102とのセッションが切断され、エラーが発生した場合を想定する。この場合、ステップS604において通信装置101の制御部202は、他の通信形態でのセッションの確立処理を試行しないと判定する。しかし、通信装置101が後述のステップS606の処理を行ったが、セッションを再確立できず、再びステップS604の判定を行う場合、通信装置101の制御部202は他の通信形態でのセッションの確立処理を試行すると判定してもよい。
通信装置101の制御部202は、通信装置102と他の通信形態でのセッションの確立処理を試行すると判定すると(ステップS604のYes)、ステップS605の処理を行う。一方、通信装置102と他の通信形態でのセッションの確立処理を試行しないと判定すると(ステップS604のNo)、通信装置101の制御部202はステップS606の処理を行う。
通信装置101の制御部202は、通信装置102と他の通信形態でのセッションの確立処理を試行する(ステップS605)。例えば通信装置101が通信装置102とWi−Fi Direct規格に準拠した無線通信を介して確立したセッションが切断されたことを検知した場合、通信装置101はインフラストラクチャネットワークを介したセッションの確立を試行する。本実施形態において、通信装置101はAP103と接続しているため、AP103が構築するインフラストラクチャネットワークに参加している。同様に、本実施形態において通信装置102もAP103に接続しており、AP103が構築するインフラストラクチャネットワークに参加している。そのため、通信装置101の制御部202は、通信装置102とAP103を介したセッションの確立を試行する。
あるいは、通信装置101がAP103と接続しておらず、通信装置102が通信装置101とAP103との接続を促すメッセージを表示している場合を想定する。ユーザは通信装置102がメッセージと共に表示したAP103の情報に基づいてAP103に接続する。あるいは、通信装置101は、通信装置102とのセッションが切断される前にAP103との接続に必要な接続情報を通信装置102から受信し、通信装置102とのセッションが切断されたことに基づいて接続情報を用いてAP103と接続してもよい。このように通信装置101がAP103と接続する場合、通信装置101の制御部202は出力部205を介してAP103と接続することを通知してもよい。具体的には、通信装置101は出力部205に、「ソース機器をSSID=XXXXのアクセスポイントに接続します。」といった表示を行ってもよい。なお、通信装置101はAP103を表す際に、SSIDだけでなく、ユーザがAP103を一意に識別できる情報を用いればよい。
以上、通信装置101が通信装置102とインフラストラクチャネットワークを介したセッションを確立する場合について説明したが、他の通信形態でのセッションの確立は、これに限るものではない。通信装置101がIEEE802.11シリーズ規格に準拠した、他の通信方式によるセッションの確立を試行するようにしてもよい。例えば通信装置101が、Ad−hoc通信やWi−Fi Aware規格に準拠した無線通信、ASPといった他の通信方式でセッションの確立を試行してもよい。
通信装置101が他の通信形態での通信装置102とのセッションの確立を試行する場合について、別の一例を説明する。通信装置101は、通信形態としてIEEE802.11シリーズ規格に準拠した通信だけではなく、Bluetooth等の別の通信方式を用いて通信装置101とのセッションの確立を試行してもよい。以下、通信装置101がBluetoothによるセッションを確立する場合について説明する。
通信装置101と通信装置102とが、Bluetoothによる無線通信を行うことができる通信機能を備えているものとする。
通信装置101は、通信装置102とのセッションが切断される前に、予め通信装置102との間で通信能力情報を交換する。通信能力情報には、通信装置101あるいは通信装置102の夫々が対応している通信方式についての情報が含まれる。通信装置101は通信装置102と通信能力情報を交換することで、通信装置102との間でBluetoothによる通信が可能であることを認識する。同様に通信装置102も、通信装置101と通信能力情報を交換することで、通信装置101との間でBluetoothによる通信が可能であることを認識する。
通信装置101が通信装置102とのセッションが切断されたことを検知し、通信装置101と通信装置102との無線通信が切断されている場合を想定する。その場合に、通信装置101はBluetoothを起動し、通信装置102とBluetoothによる接続を試みる。通信装置101は、通信装置102とBluetoothにより接続した場合、Bluetoothによる無線通信を介して通信装置102とのセッションの確立を試行する。
なおこの場合、通信装置101の制御部202は、Bluetoothを用いてセッションを確立する旨を、通信装置101の出力部205に表示してもよい。具体的には、通信装置101は通信装置102との無線通信の切断を検知した場合に、通信装置101の出力部205に切断通知701に加えて、Bluetoothによりセッションを確立する旨を表示してもよい。あるいは、通信装置101の制御部202は、通信装置102と通信装置101とをBluetoothで接続するようユーザに促すような表示でもよい。例えば通信装置101は出力部205に「シンク機器のBluetoothを起動して接続してください。」といった表示を行ってもよい。あるいは、通信装置101の制御部202は、ユーザがBluetoothで通信装置101と通信装置102とを接続するための具体的な操作を行うことを促すような表示であってもよい。あるいは、通信装置101の制御部202は、例えばBluetoothでのペアリングに用いられるPINコード情報を併せて表示するようにしてもよい。
なお、通信装置101がIEEE802.11シリーズ規格に準拠した無線通信と、Bluetoothによる無線通信とを並行に行うことができる通信装置であり、かつ通信装置102との無線通信が切断された場合を想定する。この場合、通信装置101は、IEEE802.11シリーズ規格に準拠した通信による通信装置102の待ち受けと、Bluetoothによるセッションの確立とを並行に行ってもよい。
なお、通信装置101がIEEE802.11シリーズ規格に準拠した無線通信とは異なる他の通信形態として、Bluetoothを利用する方法について説明したが、これに限らずBluetooth以外の通信方式を利用してもよい。
あるいは通信装置101が別の通信形態でのセッションの確立の試行として、別の周波数帯域でのセッションの確立を試行してもよい。例えば通信装置101が、セッションが切断される前に周波数帯域として2.4GHz帯を利用していた場合、別の周波数帯域を利用してセッションの確立を試行してもよい。
なお、通信装置101においてステップS604の判定を行う際、通信装置101と通信装置102との無線通信の切断および再接続が所定の時間内に所定の回数以上発生したことに基づいて、判定を行ってもよい。具体的には通信装置101の制御部202は、通信装置101と通信装置102との無線通信の切断および再接続が、所定の時間内に所定の回数以上発生した場合、ステップS604でYesと判定する。一方、通信装置101と通信装置102との無線通信の切断および再接続が、所定の時間内に所定の回数以上発生しなかった場合、通信装置101の制御部202はステップS604でNoと判定する。例えば、屋内環境で通信装置101と通信装置102とが2.4GHz帯の周波数帯域を用いて無線通信をしている場合、電子レンジ等の影響を受けて、通信装置101と通信装置102との無線通信が頻繁に切断される場合がある。このような場合、通信装置101と通信装置102との間で所定の時間内に所定の回数以上通信が切断および再接続されるため、通信装置101は例えば5GHz帯など別の周波数帯域の無線通信によるセッションの確立を試行するようにしてもよい。
なお、ステップS604の判定を、ユーザの選択に基づいて行うようにしてもよい。具体的には通信装置101の制御部202は、他の通信形態でのセッションの再確立を実施するか否かをユーザに問い合わせる問合せ画面を出力部205に表示する。ユーザは通信装置101の入力部204を介してユーザ操作を入力することで、他の通信形態でのセッションの再確立を実施するかを選択する。ユーザが他の通信形態でのセッションの再確立を実施すると選択すると、通信装置101の制御部202はステップS604でYesと判定する。一方、ユーザが他の通信形態でのセッションの再確立を行わないと選択すると、通信装置101の制御部202はステップS604でNoと判定する。通信装置101の制御部202が問合せ画面に他の通信形態として取りうる通信形態の全てあるいは一部を表示することで、セッションの再確立を実施するための通信形態をユーザが選択できるようにしてもよい。
通信装置101の制御部202は、通信装置101と他の通信形態でのセッションの確立を試行しないと判定すると(ステップS604のNo)、通信装置102と現在の通信形態でのセッションの再確立を試行する(ステップS606)。
通信装置101の制御部202は、通信装置102とのセッションを再確立したか判定する(ステップS607)。通信装置101の制御部202は、通信装置102とのセッションを再確立できなかったと判定した場合(ステップS607のNo)、ステップS604の処理を行う。一方、通信装置102の制御部202は、通信装置101とのセッションを再確立できたと判定した場合(ステップS607のYes)、ステップS608の処理を行う。なお、通信装置102とのセッションの再確立ができないまま所定の時間が経過した場合、通信装置101の制御部202はエラー終了し、コンテンツリダイレクトを停止するようにしてもよい。あるいは通信装置102とのセッションの再確立を所定の回数以上試行した場合、通信装置101の制御部202はエラー終了し、コンテンツリダイレクトを停止するようにしてもよい。
通信装置101の制御部202は、通信装置102とのセッションを再確立すると、通信装置101に対して、通信装置102において再生されているコンテンツの再生制御情報の送信が可能となる。通信装置101の制御部202は、コンテンツの再生を制御するためのユーザ操作を受け付けると、再確立したセッションを介して通信装置102に再生制御情報を送信する。
また、通信装置101の制御部202は、通信装置102とのセッションを再確立すると、通信装置102からコンテンツリダイレクトの状態についての情報を受信する。具体的には、通信装置101の制御部202は、通信装置102からコンテンツリダイレクトの状態についての通知を受信する。コンテンツリダイレクトの状態とは、通信装置102がコンテンツリダイレクトを実行中か、あるいは通信装置102がコンテンツリダイレクトを停止しているかといった状態のことである。通信装置101は、通信装置102において通信装置101とのセッションが再確立される前に何らかのエラーが発生したことによってコンテンツリダイレクトが停止された場合、通信装置102からその旨についての通知を受信する。なお、この場合、通信装置101は、コンテンツリダイレクトの状態だけではなく、発生したエラーの内容や原因も通信装置102から受信してもよい。通信装置101の制御部202は、このようなコンテンツリダイレクトの状態を示す情報を通信装置102から受信する。具体的には、通信装置101の制御部202は、RTSPのメッセージを用いて通信装置102からコンテンツリダイレクトの状態を受信する。なお、受信の方法はこれに限るものではなく、通信装置101が通信装置102からコンテンツリダイレクトの状態を受信できればよい。
あるいは、通信装置101の制御部202が、通信装置102とのセッションを再確立した際に、通信装置102にコンテンツリダイレクトの状態を問合せる問合せ信号を送信してもよい。通信装置102は問合せ信号に対する応答として、コンテンツリダイレクトの状態を通知する通知信号を通信装置101に送信してもよい。
通信装置101の制御部202は、通信装置102から受信したコンテンツリダイレクトの状態に基づいて、シンク機器である通信装置102がコンテンツリダイレクトを実行中か判定する(ステップS608)。通信装置102から受信したコンテンツリダイレクトの状態が、通信装置102がコンテンツリダイレクトを停止していることを示す場合、通信装置101の制御部202は通信装置102がコンテンツリダイレクトを実行中ではないと判定する。通信装置102がコンテンツリダイレクトを実行中ではないと判定すると(ステップS608のNo)、通信装置101の制御部202はステップS609の処理を行う。一方、通信装置102から受信したコンテンツリダイレクトの状態が、通信装置102がコンテンツリダイレクトを実行中であることを示す場合、通信装置101の制御部202はステップS608でYesと判定する。通信装置102がコンテンツリダイレクトを実行中であると判定すると(ステップS608のYes)、通信装置101の制御部202はステップS610の処理を行う。
通信装置101の制御部202は、通信装置102でのコンテンツリダイレクトを再開するための再開処理を行う(ステップS609)。通信装置101の制御部202は、再開処理として、通信装置102にコンテンツリダイレクトの再開を指示する再開指示メッセージを送信する。
通信装置101の制御部202は、通信装置102とのセッションが再確立した旨を通信装置101の出力部205に表示する(ステップS610)。これにより、ユーザはソース機器である通信装置101の表示を確認することで、ソース機器によるコンテンツリダイレクトの再生制御が可能になったことを認識することができる。なお、通信装置101と通信装置102とのセッションが再確立した旨を、通信装置102も通信装置102の出力部205に表示してもよい。通信装置101の制御部202はステップS610の処理を行うと、ステップS601の処理を行う。
また、通信装置101の制御部202は、ステップS602でYesと判定した場合、コンテンツリダイレクトが終了した旨を通信装置101の出力部205に表示する(ステップS611)。通信装置101の制御部202はステップS611の処理を行うと、本フローチャートのフローを終了する。
以上、図6において、通信装置101と通信装置102とのセッションが切断された場合に、通信装置101がその旨を表示することで、ユーザに通信装置101と通信装置102とのセッションが切断されたことを通知した。これにより、ユーザは通信装置101を介したコンテンツリダイレクトの再生制御が行えなくなったことを認識することができる。
また、通信装置101の制御部202は、通信装置102とのセッションが切断されている場合であって、ユーザからコンテンツリダイレクトの再生制御を指示するユーザ操作を入力された際に、その旨をユーザに通知することもできる。例えば、ユーザが通信装置101を利用してメールの作成など他の作業を行っている場合に、通信装置102とのセッションが切断されたことを通知されても、ユーザは現在行っている作業とは関係のない通知を受け取ることになるため、煩わしさを感じる。しかし、ユーザがコンテンツリダイレクトの再生制御を指示するユーザ操作を入力した際に通信装置102とのセッションが切断されたことを通知されることで、ユーザは必要な時に必要な情報を得ることができる。
なお、通信装置101と通信装置102とのセッションが切断されたことについては、通信装置101と通信装置102との両方が表示してもよいし、何れか一方のみが表示してもよい。具体的には、通信装置101による図6のステップS603の処理と、通信装置102による図4のステップS404の処理との少なくとも何れか一方が行われればよい。なお、通信装置101と通信装置102とのセッションの再確立についても、同様に通信装置101と通信装置102との少なくとも一方が表示すればよい。また、通信装置102においてコンテンツリダイレクトが終了したことについての表示も、通信装置101と通信装置102との少なくとも一方が表示すればよい。
なお、通信装置102は、図4のステップS404で通信装置101とのセッションが切断された旨を表示するが、これに代えて通信装置101とのセッションの再確立(ステップS405からステップS407)に失敗した場合に表示するようにしてもよい。具体的には通信装置102の制御部202は、ステップS403の処理を行った後、ステップS404をスキップし、ステップS405の処理を行う。そして通信装置102の制御部202はステップS409でNoと判定した場合、ステップS404の処理を行い、通信装置101とのセッションが切断されたことを表示してもよい。なお、通信装置102の制御部202は、通信装置101とのセッションの再確立を所定の回数試行し、セッションを再確立できなかった場合に、通信装置101とのセッションが切断されたことを表示してもよい。同様に通信装置101の制御部202も、図6のステップS602の処理を、通信装置102とのセッションの再確立を試行してから表示してもよい。
また、通信装置102は、図4のステップS404の処理を、セッションの切断を検知してから行うか、あるいはセッションの再確立をしてから行うか、セッションが切断された原因に基づいて決定してもよい。例えば、通信装置101と通信装置102とのセッションが切断された原因が、無線LANリンクレベルでの切断の場合、通信装置102はセッションの再確立を試行してからステップS404の処理を行う。一方、通信装置101と通信装置102との無線LANリンクレベルでの接続は維持されているが、セッションが切断されている場合、通信装置102はセッションの切断を検知したことに応じてステップS404の処理を行う。これに限らず、通信装置102はセッションの再確立ができる可能性が高い場合は、セッションの再確立を試行してからステップS404の処理を行う。一方、通信装置102はセッションの再確立が容易ではない場合は、セッションの切断を検知したことに応じてステップS404の処理を行う。通信装置102がどのような場合にステップS404の処理を行うかは、通信装置102にプリセットされている。あるいは通信装置102がコンテンツリダイレクトを行うために利用しているアプリケーションによって決定されてもよいし、ユーザによって設定されてもよい。
なお、本実施形態において、通信装置102はソース機器である通信装置101とのセッションの切断を検知したか判定した。しかしこれに限らず、通信装置102は通信装置101との無線通信の切断を検知したか判定してもよい。具体的には、図4のステップS401において、通信装置102はソース機器との無線通信が切断されたか判定する。例えば、通信装置101がWi−Fi Direct規格に準拠した無線通信のGOとして動作し、通信装置102がCLとして動作している場合を想定する。通信装置102の制御部202は、GO(通信装置101)の送信するビーコンのロスを検知した場合、無線通信の切断を検知したと判定する。あるいは、通信装置101がWi−Fi Direct規格に準拠した無線通信のCLとして動作し、通信装置102がGOとして動作している場合を想定する。通信装置102の制御部202は、通信装置101から無線LANレイヤのフレームを一定時間受信しなかった場合、無線通信の切断を検知したと判定する。通信装置102は、ソース機器との無線通信が切断されたと判定すると、コンテンツリダイレクトを継続する。
なお、通信装置101と通信装置102との無線通信について、セッションと同様に、所定の期間内に無線通信についてのキープアライブ要求やキープアライブ応答などを送受信することで、無線通信が有効であるかの確認や、無線通信の管理を行ってもよい。
なお、通信装置102はコンテンツリダイレクトを継続する前に、ソース機器との無線通信の切断が、正常な終了処理によるものであるか判定してもよい。本判定は図4のステップS402と同様に行う。通信装置102はコンテンツリダイレクトを継続すると、ソース機器との無線通信が切断されたことを表示する。そして、通信装置102はソース機器と他の通信方式による無線通信を行うか判定する。本判定は、図4のステップS405と同様に行う。
通信装置102は、ソース機器と他の通信方式による無線通信を行うと判定すると、他の通信方式による無線通信を試行する。一方、通信装置102は、ソース機器と他の通信方式による無線通信を行わないと判定すると、切断された無線通信を同じ無線通信方式による無線通信を試行する。通信装置102は、ソース機器との無線通信を行えたか判定し、無線通信を行えなかった場合、ソース機器と他の通信方式による無線通信を行うか判定する。一方、通信装置102は、ソース機器との無線通信を行えた場合、その旨を表示する。なお、この場合に、通信装置102はソース機器に対してコンテンツリダイレクトの状態を通知してもよい。
通信装置102がソース機器との無線通信の切断を検知したか判定する場合、通信装置102は、当該判定と合わせてソース機器とのセッションが切断されたかを判定してもよい。通信装置102はソース機器との無線通信が切断された場合であっても、ソース機器と他の通信方式による無線通信を行うことでセッションが切断されなかった場合、ユーザに通知を行わない。あるいは、通信装置102は、ソース機器と他の通信方式による無線通信を行うことをユーザに通知してもよい。
なお、通信装置101も、通信装置102と同様に、シンク機器とのセッションが切断されたことではなく、シンク機器との無線通信が切断されたことに基づいて、ユーザに通知を行ってもよい。
通信装置101および通信装置102は、夫々通信装置102および通信装置101との通信路が切断されたか判定してもよい。通信装置101と通信装置102との通信路とは、通信装置101と通信装置102との間の無線通信とセッションとの少なくとも一方のことである。
なお、通信装置102の制御部202は、通信装置101とのセッションが切断されたか、あるいは無線通信が切断されたか、ということに基づいて、通知の内容を切り替えてもよい。具体的には、通信装置102の制御部202は通信装置101とのセッションが切断された場合は、図4のステップS410で通信装置101とのセッションが切断された旨を通知する。あるいは、通信装置102の制御部202は、セッションの切断に代えて、あるいは加えて、通信装置101とのセッションの再確立を促す旨を通知してもよい。一方、通信装置102の制御部202は通信装置101との無線通信が切断された場合は、図4のステップS410で通信装置101との無線通信が切断された旨を通知する。あるいは通信装置102の制御部202は、通信装置101との無線通信が切断されたことに加えて、あるいは代えて、通信装置101との無線通信の再確立を促す旨を通知してもよい。あるいは、通信装置102の制御部202が、通信装置101との通信状態を、アイコンなどを用いて常時通知している場合は、通信装置101との通信路が維持されている場合と、セッションが切断された場合と、無線通信が切断された場合とで、通知を切り替えてもよい。
また、本実施形態において、通信装置102の制御部202は通信装置101との通信路が切断されたことを検知した場合、通信装置102の出力部205を介してユーザに通信路が切断されたことを通知した。しかしこれに限らず、通信装置102の制御部202は、通信装置101との通信路が切断されたことを、通信装置101とは異なる他の装置を介してユーザに通知してもよい。ここで、他の装置とは通信装置102と無線通信あるいは有線通信によって接続されている装置であって、モニタ画面やスピーカーなどの出力部を備える装置である。通信装置102は、通信装置101との通信路の切断を検知すると、他の装置に図4のステップS404で説明したような表示をさせることでユーザに通知する。あるいは、通信装置102と他の装置との両方が、図4のステップS404にあるような表示を行ってもよい。同様に通信装置101の制御部202も、通信装置101と無線通信あるいは有線通信で接続した他の装置に、図6のステップS603で説明したような表示を行わせてもよい。あるいは通信装置101と他の装置との両方が、図6のステップS603のような表示を行ってもよい。
また、本実施形態において通信装置102は通信装置101とのセッションあるいは無線通信が切断されたことを出力部205であるモニタ画面に表示した。しかし、これに限らず、通信装置102は出力部205としてスピーカーを備えている場合、該スピーカーを介して特定の音を発することでユーザに通信装置101とのセッションあるいは無線通信が切断されたことをユーザに通知してもよい。あるいは通信装置102が出力部205としてLEDライトなどの光源を備えている場合、該光源を点滅させる、あるいは特定の色で光らせるなどすることで、通信装置101とのセッションあるいは無線通信が切断されたことをユーザに通知してもよい。また、通信装置102は、これらを組み合わせることでユーザに通知してもよい。通信装置101についても同様の方法で、通信装置102との無線通信あるいはセッションが切断されたことをユーザに通知してもよい。
なお、本実施形態において、通信装置101がコンテンツの関連情報と再生制御情報との両方を通信装置102に送信したが、これに限らず、コンテンツの関連情報を送信する通信装置と、再生制御情報を送信する通信装置とは、別の通信装置であってもよい。この場合、通信装置102は再生制御情報を送信する通信装置との通信路の切断を検知した場合、通信装置102の通知部がユーザに通信路の切断を通知する。もしくは、通信装置102に代えて、あるいは加えて、再生制御情報を送信する通信装置の通知部が通知してもよい。なお、通信装置102と再生制御情報を送信する通信装置との通信路の切断を、コンテンツの関連情報を送信する通信装置の通知部が通知してもよい。
なお、通信装置102の制御部202は、通信装置101から例えばコンテンツリダイレクトの終了メッセージを受信した場合に、通信装置101との通信路の切断処理を行った。そして通信装置102の制御部202は、通信装置101との通信路の切断を検知したと判定した。しかし、これに限らず、通信装置102の制御部202は、通信装置101との通信路の切断処理が行われるトリガーとなるメッセージを受信、あるいは送信したことに基づいて、通信装置101との通信路の切断を検知したと判定してもよい。通信装置101との通信路の切断処理が行われるトリガーとなるメッセージとは、例えばコンテンツリダイレクトの終了メッセージのようなメッセージのことである。また、通信装置102の制御部202は、ユーザからコンテンツリダイレクトの終了指示が出されたことに基づいて通信装置101との通信路の切断処理を行い、通信路が切断されたことに基づいて通信路の切断を検知したと判定した。しかしこの場合も、同様に通信装置102の制御部202は、コンテンツリダイレクトの終了指示が出されたことに基づいて、通信路の切断を検知したと判定してもよい。通信装置102の制御部202が、通信路が有効かを確認する確認要求信号、および確認応答信号を、通信装置101と送受信する場合も同様である。具体的には通信装置102の制御部202は、所定の時間内に確認要求信号あるいは確認応答信号を受信しなかったことに基づいて、通信装置101との通信路の切断処理を行い、通信路の切断を検知したと判定する。あるいは、通信装置102の制御部202は、所定の時間内に確認要求信号あるいは確認応答信号を受信しなかったことに基づいて、通信路の切断を検知したと判定してもよい。
なお、図3、図4、図6に示した通信装置101や通信装置102のフローチャートの少なくとも一部または全部をハードウェアにより実現してもよい。ハードウェアにより実現する場合、例えば、所定のコンパイラを用いることで、各ステップを実現するためのコンピュータプログラムからFPGA上に専用回路を生成し、これを利用すればよい。FPGAとは、Field Programmable Gate Arrayの略である。また、FPGAと同様にしてGate Array回路を形成し、ハードウェアとして実現するようにしてもよい。また、ASIC(Application Specific Integrated Circuit)により実現するようにしてもよい。
また、図3、図4、図6に示したフローチャートの各ステップを不図示の複数のCPUもしくは装置で分散して行うようにしてもよい。複数の装置で分散して行う場合、ソース機器についてはソースシステム、シンク機器についてはシンクシステムとして動作する。
以上、実施形態を詳述したが、本発明は例えば、システム、装置、方法、プログラム若しくは記録媒体(記憶媒体)などとしての実施態様をとることが可能である。具体的には、複数の機器(例えば、ホストコンピュータ、インタフェース機器、撮像装置、webアプリケーションなど)から構成されるシステムに適用してもよいし、また、一つの機器からなる装置に適用してもよい。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。