以下、添付の図面を参照して、本発明の実施形態を詳細に説明する。なお、以下の実施形態において示す構成は一例に過ぎず、本発明は図示された構成に限定されるものではない。
図1に、本実施形態に係る通信装置101が参加するネットワークのネットワーク構成を示す。通信装置101と通信装置102とは、例えばWi−Fi Direct規格に準拠した無線通信を行うことができる。この場合、通信装置101と通信装置102とは、アクセスポイント(AP)103を介さず直接無線通信する。また、通信装置101と通信装置102とは、IEEE802.11シリーズ規格に準拠したインフラストラクチャネットワーク上で、AP103を介した無線通信を行ってもよい。なお、IEEEとは、Institute of Electrical and Electronics Engineersの略である。
通信装置101と通信装置102とは、夫々AP103を介してクラウドサーバ104と通信を行うことができる。通信装置101および通信装置102は、夫々クラウドサーバ104からコンテンツを取得し、再生することができる。ここで、コンテンツとは、画像データ、音声データ、動画データ、映像データの何れか一つを含む。なお、映像データとは、音声データと動画データとの両方を含むデータのことである。他に、これらのデータを再生するためのソフトウェアデータや、GUIデータ、メタデータの少なくとも何れか一つを含んでいてもよい。
本実施形態において、通信装置101と通信装置102とはコンテンツリダイレクト機能を有する。コンテンツリダイレクトでは、通信装置101が通信装置102に通信装置101以外の外部装置からコンテンツを取得させ、通信装置102に該コンテンツを再生させる。外部装置とは、例えばクラウドサーバ104のことである。具体的には、通信装置101と通信装置102とは、Wi−Fi Direct規格に準拠した無線通信、あるいはインフラストラクチャネットワークを介して無線通信を行う。そして、通信装置101が通信装置102にコンテンツを再生させるために、通信装置102に再生指示を送信する。
通信装置101から通信装置102に送信される再生指示には、コンテンツの関連情報が含まれる。通信装置102は受信した再生指示に含まれるコンテンツの関連情報に基づいて外部装置からコンテンツを取得し、再生する。コンテンツの関連情報とは、例えばコンテンツを識別するための識別子や、コンテンツの再生にあたって利用するサービスを識別するためのサービス名、コンテンツの所在情報(URI、URL)などの情報である。なお、コンテンツの関連情報はこれらの情報の一部であってもよい。コンテンツの識別子とは、コンテンツを一意に決定するための識別子のことである。また、コンテンツの所在情報とは、外部装置においてコンテンツが格納されている格納場所を示す情報である。なお、URIはUniform Resource Identifierの、URLはUniform Resource Locatorの夫々略である。通信装置101と通信装置102とは、例えばWi−Fi Miracast規格に準拠したコンテンツリダイレクトを行う。
なお、通信装置101と通信装置102とは、コンテンツリダイレクト機能に加えて、ミラーリング機能を有していてもよい。ミラーリングでは、通信装置101(ソース機器)が表示している画面や再生している音声を通信装置102(シンク機器)と共有する。具体的には、通信装置101が表示している画面や再生している音声の情報として画像データや音声データのストリームを、通信装置101が通信装置102に伝送する。画像データは通信装置101が表示している画面を符号化したものであり、音声データは通信装置101が再生している音声を符号化したものである。画像データや音声データのストリームを受信した通信装置102は、受信したデータを通信装置101と同期して再生する。通信装置101と通信装置102とは、例えばWi−Fi Miracast規格に準拠したミラーリングを行い、Wi−Fi Direct規格に準拠した無線通信あるいはインフラストラクチャネットワークを介してストリームの送受信を行う。なお、通信装置101は表示している画面と再生している音声との少なくとも一方を通信装置102と共有すればよい。通信装置101は、ミラーリングによる音声の共有を行わない場合、通信装置102に音声データを送信しなくてもよい。また通信装置101は、ミラーリングによる画面の共有を行わない場合、通信装置102に画像データの送信を行わなくてもよい。
通信装置101の具体的な例としては、タブレット、スマートフォン、PC、携帯電話、カメラ、ビデオカメラなどが挙げられるが、これらに限定されない。通信装置101は、外部装置が保持しているコンテンツの関連情報を他の通信装置に送信することで、他の通信装置に該コンテンツを取得させ、再生させることができる通信装置であればよい。
また、通信装置102の具体的な例としては、タブレット、スマートフォン、PC、携帯電話、テレビ、テレビ用アダプタ、セットトップボックス、ヘッドマウントディスプレイなどが挙げられる。また他に通信装置102の具体的な例として、プロジェクター、ディスプレイ、カーナビゲーション装置などが挙げられるが、これらに限定されない。通信装置102は、通信装置101から受信した関連情報に基づいて外部装置からコンテンツを取得し、再生することができる通信装置であればよい。
本実施形態では、通信装置101がコンテンツを再生している際に、通信装置101と通信装置102とがコンテンツリダイレクトを開始することで、通信装置101が再生していたコンテンツを通信装置102に再生させる。このとき、通信装置101から通信装置102に再生指示が送信されると、通信装置102は外部装置からコンテンツを取得し、再生するための準備を行う。具体的には、通信装置102はコンテンツの再生準備として、アプリケーションの起動や、画像デコーダと音声デコーダとの少なくとも一方の初期化、コンテンツを提供するWebサイトやサービスへのログイン認証などを行う。通信装置102はコンテンツの再生準備が完了してから、コンテンツの再生を開始する。そのため、通信装置101が再生指示を送信してから通信装置102がコンテンツの再生を開始するまでの間、時間差が生じることになる。そのため、例えば通信装置101が再生指示と共にコンテンツの再生開始位置を送信しており、通信装置102が該再生開始位置に基づいてコンテンツの再生を開始すると、通信装置101と通信装置102とでコンテンツの再生にずれが生じる。また、この場合、通信装置101と通信装置102とは、コンテンツの一部を重複して再生することになる。
本実施形態では、通信装置102がコンテンツの再生準備を行った後に通信装置102から通信装置101に送信される無線信号を受信したことに基づいて、通信装置101がコンテンツの再生開始位置を取得する。そして、通信装置101が取得した再生開始位置を通信装置102に送信し、通信装置102が受信した再生開始位置に基づいてコンテンツの再生を開始することで、通信装置102は通信装置101とコンテンツの再生を同期させることができる。また、通信装置102が再生するコンテンツの内、通信装置101と重複して再生してしまう部分を短くすることができる。
本実施形態の通信装置101と通信装置102とは、コンテンツリダイレクトを開始する前に、ミラーリングを行っていてもよい。通信装置101がコンテンツの再生と通信装置102とのミラーリングを行うことで、通信装置102にも通信装置101が再生しているコンテンツが表示される。このような通信装置101と通信装置102とがミラーリングからコンテンツリダイレクトに切り替える際に実行する処理については、後述の図3で詳しく説明する。
なお、本実施形態において、図1の各装置は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規格を用いるが、これに限らず、WiDiやWirelessHDといった他の通信方式を用いてもよい。なお、WiDiはIntel Wireless Displayの、WirelessHDはWireless High Definitionの夫々略である。
また、通信装置101と通信装置102とは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はシンク機器で再生されているコンテンツの再生を制御するための再生制御情報をシンク機器に送信することができる。また、通信装置101の制御部202は、記憶部201に記憶されたコンピュータプログラムを実行することで、ソース機器としてのミラーリング機能を実現してもよい。ソース機器としてのミラーリング機能とは、自装置が表示している画面をキャプチャし符号化した画像データや、再生している音声を符号化した音声データをシンク機器に送信する機能である。
また、制御部202は、機能部203を制御して、撮像やコンテンツの閲覧などの所定の処理を実行する。機能部203は、通信装置101が所定の処理を実行するためのハードウェアである。例えば、通信装置101がカメラである場合、機能部203は撮像部であり、撮像処理を行う。
入力部204は、ユーザからの各種操作の受付を行う。出力部205は、モニタ画面やスピーカーなどを介してユーザに対して各種出力を行う。ここで、出力部205による出力とは、画面上への表示や、スピーカーによる音声出力、振動出力などであってもよい。なお、出力部205が出力するモニタ画面は、通信装置101が備えるモニタ画面である。あるいは、通信装置101と接続された他の装置が有するモニタ画面であってもよい。なお、タッチパネルのように入力部204と出力部205の両方を1つのモジュールで実現するようにしてもよい。また、出力部205は、画面上への表示や、スピーカーによる音声出力、振動出力などを行うことで、ユーザに対して通知を行う通知部としての機能を実現する。また、入力部204と、出力部205は、夫々通信装置101と一体であってもよいし、別体であってもよい。通信装置101は入力部204として、例えば通信装置101と一体のハードキーやタッチスクリーンなどを有していてもよいし、通信装置101と別体のリモコンなどを有していてもよい。また、通信装置101は出力部205として、例えば通信装置101と一体のモニタ画面や光源などを有していてもよいし、通信装置101と別体のディスプレイやスピーカーを有していてもよい。
通信部206は、IEEE802.11シリーズに準拠した無線通信の制御や、有線LAN等の有線通信の制御、IP(Internet Protocol)通信の制御を行う。また、通信部206はアンテナ207を介して、無線通信のための無線信号の送受信を行う。通信装置101は通信部206を介して、画像データや文書データ、映像データ等のコンテンツを通信装置102と通信することもできる。
通信装置102は、通信装置101と同様のハードウェア構成を有するが、通信装置102の制御部202は、記憶部201に記憶されたコンピュータプログラムを実行することで、シンク機器としてのコンテンツリダイレクト機能を実現する。ここで、シンク機器としてのコンテンツリダイレクト機能とは、ソース機器から送られた情報を基にソース機器以外の外部装置から再生したいコンテンツを取得し、再生する機能である。さらに、シンク機器としてのコンテンツリダイレクト機能として、通信装置102はソース機器から受信した再生制御情報に基づいて、自装置が行っているコンテンツの再生を制御することができる。また、制御部202が記憶部201に記憶されたコンピュータプログラムを実行することで、シンク機器としてのミラーリング機能を実現してもよい。シンク機器としてのミラーリング機能とは、ソース機器が表示している画面をキャプチャし符号化した画像データや、再生している音声を符号化した音声データを受信し、復号、再生する機能である。
なお、通信装置101および通信装置102は、画像の表示と音声の再生のどちらも行える装置である。しかし、通信装置101および通信装置102のどちらも、画像の表示あるいは音声の再生の何れか一方しか行えない装置であってもよい。
通信装置101と通信装置102とがミラーリングを実施する際に実行する処理について、夫々図3と図4を用いて説明する。図3は、通信装置101が通信装置102とミラーリングを実施する際に、記憶部201に記憶されたコンピュータプログラムを制御部202が読み出し、実行することで実現される処理を示すフローチャートである。また、図4は通信装置102が通信装置101とミラーリングを実施する際に、記憶部201に記憶されたコンピュータプログラムを制御部202が読み出し、実行することで実現される処理を示すフローチャートである。
図3のステップS301は、通信装置101の電源が入ることで開始される。しかし、これに限らず、図3のステップS301は通信装置101において所定のアプリケーションが起動したことに応じて開始するようにしてもよい。また、図4のステップS401は、通信装置102の電源が入ることで開始されるが、これに限らず、通信装置102において所定のアプリケーションが起動したことに応じて開始するようにしてもよい。
まず通信装置101は、ミラーリングを開始するか判定する(ステップS301)。本判定は、通信装置101の入力部204を介してユーザからミラーリングの開始操作が行われたか否かに基づいて行われる。ミラーリングの開始操作とは、ユーザによるミラーリングを開始するための制御ボタンの押下である。これに限らず、通信装置101は、所定のキーボード操作やマウス操作、タッチ操作、ジョイスティック操作等のユーザ操作を開始操作としてもよい。また、通信装置101は、所定のジェスチャーや、リモコンの制御ボタンの押下、所定のコンテンツの再生開始、所定のアプリケーションの立ち上げなどのユーザ操作を開始操作としてもよい。ミラーリングの開始操作が行われなかった場合、通信装置101はミラーリングを開始しないと判定し(ステップS301のNo)、再度ステップS301の処理を行う。一方、ミラーリングの開始操作が行われた場合、通信装置101はミラーリングを開始すると判定し(ステップS301のYes)、ステップS302の処理を行う。
なお、通信装置101は、ユーザによるミラーリングの開始操作に限らず、自動的にミラーリングを開始してもよい。通信装置101は、例えば、所定のアプリケーションの立ち上げや、所定のコンテンツの再生開始などから所定の時間が経過したことに基づいてミラーリングを開始してもよい。また、通信装置101は、入力部204を介して所定の画像または所定の人物などを認識したことに基づいてミラーリングを開始してもよい。
同様に通信装置102も、ミラーリングを開始するか判定する(ステップS401)。本判定は、ステップS301と同様に行われる。通信装置102は、ミラーリングを開始しないと判定すると(ステップS401のNo)、再びステップS401の処理を行う。一方、通信装置102はミラーリングを開始すると判定すると(ステップS401のYes)、ステップS402の処理を行う。
次に、通信装置101と通信装置102との間でデバイス探索が行われる(ステップS302、ステップS402)。通信装置101および通信装置102は、Wi−Fi Direct規格に準拠した無線通信、あるいはインフラストラクチャネットワークを介してミラーリングを行うデバイスを探索する。
通信装置101と通信装置102とがWi−Fi Direct規格に準拠した方法で、ミラーリングを行うデバイスを探索する場合、ステップS302からステップS304とステップS402からステップS403の処理は以下のように行われる。具体的には、まず通信装置101がデバイス発見要求としてIEEE802.11シリーズ規格に準拠したProbe Requestを送信し、通信装置102は応答としてProbe Responseを送信する。これにより通信装置101と通信装置102とは互いを発見する。なお、Probe Request/Responseは、夫々送信する装置が逆であってもよい。
なお、通信装置102は、ステップS401の判定を、通信装置101からデバイス探索のための無線信号を受け付けたか否かに基づいて判定してもよい。通信装置102は、通信装置101からデバイス探索のための無線信号として、例えばProbe Requestを受信したことに基づいて、ステップS401でYesと判定してもよい。
通信装置101は発見したデバイスの一覧を出力部205であるモニタ画面上に表示する。ユーザは通信装置101のモニタ画面上に表示されたデバイスの一覧から、画面と音声との少なくとも一方の共有を行うデバイスを選択する。通信装置101は、ユーザによって選択されたデバイスを、ミラーリングを行う接続相手装置として選択する(ステップS303)。なお、本ステップにおける接続相手装置の選択は、過去にミラーリングを行ったことがあるデバイスの履歴に基づいて通信装置101が行ってもよい。具体的には、通信装置101は、検出されたデバイスの中に、過去にミラーリングを行ったことがあるデバイスがある場合、当該デバイスを接続相手装置として選択する。あるいは、通信装置101は、検出したデバイスの中から最も通信装置101と距離が近いデバイスを接続相手装置として選択してもよいし、最も通信品質がよいデバイスを接続相手装置として選択してもよい。なお、ステップS303の接続相手装置の選択を通信装置102が行ってもよい。
また、本フローチャートではデバイス探索でProbe Request/Responseを用いたが、Wi−Fi Miracast規格に基づき、IEEE802.11シリーズ規格に準拠したBeaconなどの無線信号を用いてもよい。また、通信装置101あるいは通信装置102は、NFC、QRコード(登録商標)、Bluetooth low energyなどを利用してデバイス探索を行ってもよい。例えば、通信装置101がNFCの通信機能を有しているとき、通信装置101と通信装置102とのペアリングをNFCタッチ操作で行い、以降の通信はWi−Fi Miracast規格に基づいて行うことも可能である。
ここで、ステップS304およびステップS403の処理を行う前に、通信装置101と通信装置102とは、Wi−Fi Direct規格に準拠したサービス探索を行ってもよい。サービス探索を行うことで通信装置101と通信装置102との少なくとも一方は相手装置が提供するサービスについての情報を得ることができる。
次に、通信装置101は、ステップS303で選択された接続相手装置と接続セットアップを行う(ステップS304)。ここで、ステップS303において通信装置102が接続相手装置として選択されたとする。そのため、通信装置102も通信装置101と接続セットアップを行う(ステップS403)。具体的に、通信装置101と通信装置102とは、Wi−Fi Miracastの接続処理を行い、その後、TCPの接続処理を行う。これらの接続処理を行うことで、通信装置101と通信装置102との間の接続セットアップが完了する。なお、TCPとはTransmission Control Protocolの略である。
ここで、ステップS304とステップS403の詳細な手順について説明する。Wi−Fi Direct規格に準拠した無線通信においてネットワークを構築する役割を担うGroup Owner(GO)となる通信装置を決定するため、通信装置101は通信装置102に、GO Negotiation Requestを送信する。この信号には、通信装置101のGOになりたい度合いを示すIntent値が含まれる。
GO Negotiation Requestを受信した通信装置102は、応答として通信装置102のIntent値を含むGO Negotiation Responseを送信する。GO Negotiation Responseを受信した通信装置101は、通信装置101と通信装置102とのIntent値の大小を比較し、Intent値が大きかった方の通信装置をGOとして決定する。他方、Intent値が小さかった方の通信装置がCLとして決定され、GOが構築するネットワークに参加する役割を担う。
通信装置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とステップS402からステップS403の処理は以下のように行われる。
インフラストラクチャネットワークを介してミラーリングを行うデバイスの探索は、マルチキャスト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はインフラストラクチャネットワークを介してミラーリングを行うデバイスの探索を行うと、探索結果を表示し、接続相手装置の選択が行われる。当該探索結果表示と、接続相手装置の選択とは、ステップS303と同様に行われる。
続いて通信装置101は選択された接続相手装置(ここでは通信装置102)に、AP103経由でmDNS問合せを送信する。ここで送信するmDNS問合せは、通信装置102の能力情報や通信装置101と通信装置102の通信とで使用するポート番号やホスト名を問合せる信号である。なお、本mDNS問合せで問い合わせる通信装置102の能力情報とは、通信装置102がシンク機器であるか、ソース機器であるか、あるいはデュアルロール機器であるかなどの情報である。mDNS問合せを受信した通信装置102は、自装置の能力情報と、ポート番号、ホスト名を含むmDNS応答を通信装置101に送信する。本応答を受信した通信装置101は、通信装置102との接続セットアップを完了する。なお、通信装置101は、通信装置102とThree−way handshakeを行うことでTCP接続を確立してもよい。
通信装置101と通信装置102とが接続セットアップを完了して以降の処理は、Wi−Fi Direct規格に準拠したネットワークを介してミラーリングを行う場合も、インフラストラクチャネットワークを介してミラーリングを行う場合も共通である。
続いて通信装置101および通信装置102は、Capability Negotiationを行う(ステップS305、ステップS404)。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と通信装置102とはWi−Fi Miracast規格に準拠したセッションを確立する(ステップS306、ステップS405)。Wi−Fi Miracast規格では、セッションの確立にはRTSP M5〜M7までの所定のメッセージが通信装置101と通信装置102との間で交換される。これらのRTSPメッセージの交換により、通信装置101と通信装置102との間で使用されるポート番号の設定などが行われ、セッションが確立される。
セッションが確立されると、通信装置101はソース機器としてのミラーリング処理を開始する(ステップS307)。本ステップにおいて通信装置101は、ソース機器としてのミラーリング処理として、表示されている画面のキャプチャやキャプチャ画像の符号化、多重化、データ送信処理を行う。また、通信装置101は画面のキャプチャ画像に加えて、あるいは代えて、再生している音声の符号化、多重化、データ送信処理を行ってもよい。なお、通信装置101が行うミラーリング処理はこれらの一部の処理であってもよい。
また通信装置102は、シンク機器としてのミラーリング処理を開始する(ステップS406)。本ステップにおいて通信装置102は、シンク機器としてのミラーリング処理として、データの受信や逆多重化、キャプチャ画像の復号、復号されたキャプチャ画像の再生処理を行う。また、通信装置101がキャプチャ画像に加えて、あるいは代えて、再生している音声のミラーリング処理を行った場合、通信装置102は通信装置101から送信された音声についてもデータの受信、逆多重化、復号、復号された音声の再生処理を行ってもよい。なお、通信装置102が行うミラーリング処理はこれらの一部の処理であってもよい。
通信装置101と通信装置102とがステップS307およびステップS406の処理を行うことで、通信装置101が表示している画面や再生している音声の情報のストリームが通信装置102に送信される。通信装置102は、送信された画面や音声の情報のストリームを再生することで、通信装置101と同じ画面の表示や音声の再生を行う。
続いて、通信装置101と通信装置102とは、ミラーリングからコンテンツリダイレクトに切り替え、コンテンツリダイレクト処理を実行する(ステップS308、ステップS407)。ステップS308、ステップS407の処理の詳細は、夫々後述の図5、図6で説明する。
通信装置101と通信装置102とは、夫々ステップS308とステップS407の処理を行うと、ミラーリングを終了するかを判定する(ステップS309、ステップS408)。通信装置101、および通信装置102はミラーリングを終了しないと判定すると(ステップS309のNo、ステップS408のNo)、夫々ステップS307、ステップS406の処理を行い、ミラーリング処理を行う。一方、通信装置101、および通信装置102はミラーリングを終了すると判定すると(ステップS309のYes、ステップS408のYes)、本フローチャートのフローを終了する。
なお、図3において、通信装置101はステップS308の処理を行った後にステップS309の判定を行っているが、これに限らず、ステップS307でミラーリング処理を開始して以降、いつでもステップS309の判定を行ってもよい。同様に、図4において、通信装置102はステップS407の処理を行った後にステップS408の判定を行っているが、これに限らず、ステップS406でミラーリング処理を開始して以降、いつでもステップS408の処理を行ってもよい。
以上、図3および図4には、通信装置101と通信装置102とがミラーリングを行う際に、夫々の通信装置が実行する処理を示した。
図5において、通信装置101は、クラウドサーバ104が保持するコンテンツの再生を開始するかを判定する(ステップS501)。本判定は、ユーザがクラウドサーバ104に保持されているコンテンツの再生指示を出したか否かで判定する。例えば、通信装置101の画面上に表示されているコンテンツのサムネイルやアイコン、ハイパーリンク等をユーザが選択したか否かに基づいて判定すればよい。ユーザがコンテンツの再生指示を出した場合、通信装置101はコンテンツの再生を開始すると判定し(ステップS501のYes)、ステップS502の処理を行う。一方、ユーザがコンテンツの再生指示を出さなかった場合、通信装置101はコンテンツの再生を開始しないと判定し(ステップS501のNo)、図3のステップS307の処理を行う。なお、通信装置101は、例えば所定のWebページを表示した場合や、Webページを所定の位置までスクロールした場合など、自動的にクラウドサーバ104上のコンテンツの再生を開始する場合、ステップS501でYesと判定してもよい。
通信装置101は、クラウドサーバ104が保持するコンテンツの再生を開始すると判定した場合(ステップS501のYes)、通信装置101はクラウドサーバ104からコンテンツを取得し、再生する(ステップS502)。なお、通信装置101は、クラウドサーバ104からコンテンツを取得、再生しながら、出力部205へ出力した画像や音声をキャプチャ、符号化し、画像データや音声データとして通信装置102へ送信する。これにより、通信装置101は、ミラーリングによる画面と音声との少なくとも一方のストリーミングの送信を継続するものとする。
続いて通信装置101は、コンテンツリダイレクトを開始するか判定する(ステップS503)。本判定は、ユーザがコンテンツリダイレクトの開始指示を出したか否かに基づいて判定する。例えば、通信装置101の画面上に表示されているコンテンツリダイレクトの開始を指示するためのソフトキーをユーザが選択したか否かに基づいて判定すればよい。ユーザがコンテンツリダイレクトの開始指示を出さなかった場合、通信装置101はコンテンツリダイレクトを開始しないと判定し(ステップS503のNo)、ステップS502の処理を行う。一方、ユーザがコンテンツリダイレクトの開始指示を出した場合、通信装置101はコンテンツリダイレクトを開始すると判定し(ステップS503のYes)、ステップS504の処理を行う。
なお、通信装置101は自装置の処理負荷や、通信装置102との無線通信の状況などに基づいて、自動的にコンテンツリダイレクトを開始してもよい。例えば、通信装置101は、所定の期間における制御部202の使用率を測定し、その平均値が所定の値以上である場合、自装置の処理負荷が高いとし、コンテンツリダイレクトを開始してもよい。あるいは通信装置101は、例えば通信装置102との無線通信で所定の期間において送受信されるデータ量を測定し、その平均値が所定の値以上である場合、コンテンツリダイレクトを開始してもよい。あるいは通信装置101は、例えば通信装置102との無線通信の電波強度が所定の値より低い場合、コンテンツリダイレクトを開始してもよい。
通信装置101はコンテンツリダイレクトを開始すると判定すると(ステップS503のYes)、シンク機器である通信装置102へコンテンツリダイレクト機能をサポートしているか否かを問い合わせる(ステップS504)。通信装置101は、コンテンツリダイレクト機能の問合せに、RTSP GET_PARAMETERメッセージを利用することができる。
一方、図6において、通信装置102も、コンテンツリダイレクトを開始するか判定する(ステップS601)。本判定は、通信装置101からコンテンツリダイレクト機能の問合せを受信したか否かに基づいて判定する。通信装置102は、通信装置101からコンテンツリダイレクト機能の問合せを受信しなかった場合、コンテンツリダイレクトを開始しないと判定し(ステップS601のNo)、図4のステップS406の処理を行う。一方、通信装置102は、通信装置101からコンテンツリダイレクト機能の問合せを受信した場合、コンテンツリダイレクトを開始すると判定し(ステップS601のYes)、ステップS602の処理を行う。
通信装置102は、受信したコンテンツリダイレクト機能の問合せに対する応答として、コンテンツリダイレクト機能のサポート状況を通信装置101に通知する(ステップS602)。具体的には、通信装置102はコンテンツリダイレクト機能をサポートしているか否かを通知する。また、通信装置102はコンテンツリダイレクト機能をサポートしているとの情報に加えて、あるいは代えて、通信装置102がコンテンツリダイレクト機能によってコンテンツを再生する際に利用することができるサービスを識別するためのサービス名などの情報を通知してもよい。
通信装置101は、通信装置102がコンテンツリダイレクト機能をサポートしているかを、ステップS602で通信装置102から送信された応答に基づいて判定する(ステップS505)。通信装置101は、通信装置102がコンテンツリダイレクト機能をサポートしていないと判定すると(ステップS505のNo)、ステップS502の処理を行う。この場合、通信装置101と通信装置102との少なくとも一方は、ユーザに対して通信装置102がコンテンツリダイレクト機能に対応していないことを通知してもよい。
一方、通信装置101は、通信装置102がコンテンツリダイレクト機能をサポートしていると判定すると(ステップS505のYes)、通信装置102にコンテンツを再生させるために再生指示を送信する(ステップS506)。本ステップで通信装置102が再生を指示されるコンテンツとは、本ステップの時点で通信装置101が再生しているコンテンツと同一のコンテンツである。通信装置101は、再生指示を送信する際、RTSP SET_PARAMETERメッセージを用いてもよい。
なお、ステップS506で通信装置102に送信される再生指示には、コンテンツの関連情報が含まれる。コンテンツの関連情報とは、例えばクラウドサーバ104が保持するコンテンツを識別するための識別子や、コンテンツを再生するために利用するサービスを識別するためのサービス名、コンテンツの所在情報(URL、URI)などの情報である。なお、通信装置101が送信するコンテンツの関連情報は、これらの一部であってもよい。
通信装置102は、通信装置101からコンテンツの再生指示を受信すると、コンテンツの再生準備を行う(ステップS603)。具体的には、通信装置102はコンテンツの再生準備として、例えば、アプリケーションの起動や、画像デコーダと音声デコーダとの少なくとも一方の初期化、コンテンツを提供するWebサイトやサービスへのログイン認証などの処理を行う。また、通信装置102は受信したコンテンツの関連情報に基づいて、該コンテンツを利用可能かの確認を、コンテンツを提供するWebサイトやサービスに対して行ってもよい。
通信装置102はコンテンツの再生準備を行うと、通信装置101へコンテンツの再生指示に対する応答として、再生準備の完了あるいはエラーなどの応答を送信する(ステップS604)。ここでの応答は、例えば受信したRTSP SET_PARAMETERメッセージへの応答であるRTSP OKやRTSP NGなどのRTSP応答メッセージが用いられる。なお、ステップS604で通信装置102が送信する応答の種類は、ステップS603でのコンテンツ再生準備の結果に基づいて決定される。通信装置102は、ステップS603でコンテンツの再生準備を行う際に、エラーが発生しなかった場合、RTSP OKを応答として送信する。一方、例えばアプリケーションの起動の失敗や、画像デコーダと音声デコーダとの少なくとも一方の初期化の失敗や、コンテンツを提供するWebサイトやサービスへのログイン認証等が失敗した場合、通信装置102はRTSP NGを応答として送信する。あるいは、コンテンツを提供するWebサイトやサービスに対してコンテンツを利用可能かの確認を行った結果、コンテンツの利用は不可との結果が出た場合、通信装置102はRTSP NGを応答として送信する。なお、通信装置102はRTSP NGを応答として送信する場合、NGの理由を含めたメッセージを応答として通信装置101に送信してもよい。
一方、通信装置101は、通信装置102からコンテンツの再生指示に対する応答を受信する(ステップS507)。
通信装置101と通信装置102とは、夫々ステップS604で通信装置102が送信した応答が、OKを示す応答であるかを判定する(ステップS508、ステップS605)。通信装置102が応答として送信したメッセージがOKの応答でない場合(ステップS508のNo、ステップS604のNo)、通信装置101と通信装置102とは夫々図3のステップS307、図4のステップS406の処理を行う。
一方、通信装置102がコンテンツの再生指示に対する応答して送信したメッセージがOKの応答である場合(ステップS508のYes)、通信装置101はコンテンツの再生開始位置を取得する(ステップS509)。具体的には通信装置101は、通信装置102からステップS507でOK応答を受信すると、自装置が再生しているコンテンツの現在の再生位置を取得し、取得した再生位置を通信装置102でコンテンツの再生を開始する際の再生開始位置とする。なお、コンテンツの再生位置は、コンテンツの先頭を始点(0.0秒)とした際の時間情報で表される。通信装置101は再生開始位置を取得すると、ステップS510の処理を行う。また、通信装置102は、コンテンツの再生指示に対する応答がOK応答であった場合(ステップS605のYes)、ステップS606の処理を行う。
通信装置101と通信装置102とは、これまで継続していたミラーリングを一時停止する(ステップS510、ステップS606)。この場合に、通信装置101は、クラウドサーバ104からのコンテンツの取得および再生をあわせて停止することも可能である。具体的には、まず通信装置102から通信装置101に対してミラーリングの一時停止を指示する停止指示が送信される。通信装置101は停止指示を受信すると、ミラーリングを一時停止し、通信装置102に停止指示に対する応答を送信する。通信装置102は、通信装置101に対して停止指示を送信する際にミラーリングを一時停止してもよいし、通信装置102から停止指示に対する応答を受信した際に一時停止してもよい。通信装置102は停止指示として、RTSP PAUSEメッセージを送信してもよい。なお、通信装置102ではなく、通信装置101が停止指示を送信してもよいし、あるいは通信装置101が所定のメッセージを送信することで通信装置102に停止指示を送信させてもよい。あるいは通信装置102は、ステップS603のコンテンツの再生準備を行ったことに基づいてミラーリングを一時停止してもよい。この場合、通信装置101は、通信装置102から再生指示に対する応答を受信したことに基づいてミラーリングを一時停止してもよい。通信装置101と通信装置102との間で、ミラーリング処理を一時停止することにより、ミラーリングの処理負荷を軽減し、消費電力を抑えることが可能である。
通信装置102は、ミラーリングを一時停止すると、ステップS506で通信装置101から送信されたコンテンツの関連情報に基づいて、クラウドサーバ104からのコンテンツの取得を開始する(ステップS607)。
通信装置101はミラーリングを一時停止すると、ステップS509で取得した再生開始位置を通信装置102に送信する(ステップS510)。通信装置102は、通信装置101から再生開始位置を受信し(ステップS608)、取得したコンテンツの再生を受信した再生開始位置に基づいて開始する(ステップS609)。これにより通信装置102は、通信装置101と同期したコンテンツの再生を行うことができる。また、通信装置102は通信装置101がステップS509までに再生していたコンテンツの続きから再生を開始することになるため、通信装置101と通信装置102とで重複して再生してしまう分のコンテンツを短くすることができる。
続いて通信装置101は、入力されたユーザ操作や、通信装置102から通知されたコンテンツリダイレクトの状態に基づいた制御を行う(ステップS512)。同様に通信装置102も、コンテンツリダイレクトの状態や、通信装置101から送信された再生制御情報に基づいた制御を行う(ステップS610)。
通信装置101は、ステップS512において、通信装置102から受信した無線信号に基づいて再生開始位置を取得し、通信装置102に送信することができる。通信装置102は、ステップS610において、通信装置101から受信した再生開始位置に基づいてコンテンツを再生することができる。例えば、通信装置101が通信装置102から、通信装置101におけるコンテンツの現在の再生位置を問い合わせるための無線信号を受信したことに基づいて再生開始位置を取得し、通信装置102に送信してもよい。また、通信装置101は後述のように通信装置102から、通信装置102におけるコンテンツリダイレクトの状態を通知するための無線信号を受信した際に、同様に再生開始位置を取得し、通信装置102に送信してもよい。通信装置102においてコンテンツの再生が開始されて以降も、通信装置101が自装置におけるコンテンツの再生開始位置を取得し、通信装置102に送信することで、通信装置102は通信装置101と同期したコンテンツの再生を継続することができる。
また、通信装置101と通信装置102とがコンテンツリダイレクトを行っている場合に、通信装置102におけるコンテンツリダイレクトの状態が通信装置102から通信装置101に通知されてもよい。通信装置102はコンテンツリダイレクトの状態として、コンテンツの再生状態や、取得状態、コンテンツリダイレクトの実行状態を通知する。通信装置101は通信装置102から通知されたコンテンツリダイレクトの状態に基づいた制御を行う。例えば、通信装置102からコンテンツの再生状態として、コンテンツが終端まで再生されたことを通知された場合、通信装置101は通信装置102に別のコンテンツを再生するように再生指示を送信してもよいし、コンテンツリダイレクトを終了してもよい。同様に通信装置102も自装置におけるコンテンツリダイレクトの状態に基づいた制御を行う。
なお、通信装置101は、ステップS512において、入力されたユーザ操作に基づいた再生制御情報を通信装置102に送信してもよい。通信装置102はステップS610において、通信装置101から受信した再生制御情報に基づいたコンテンツの再生制御を実行することができる。例えば、通信装置102がコンテンツを再生している場合に、ユーザが通信装置101に一時停止を指示するユーザ操作を入力すると、通信装置102にコンテンツの再生を一時停止させるための再生制御情報を通信装置101が送信する。通信装置102は再生制御情報を受信すると、コンテンツの再生を一時停止する。このように、通信装置101と通信装置102とがコンテンツリダイレクトを行っている場合、ユーザは通信装置101をリモコンのように用いて、通信装置102で再生されているコンテンツの再生制御ができる。
通信装置101は、ステップS512において通信装置102に再生制御情報を送信する際に利用するメッセージと同じ形式のメッセージを利用して、ステップS511における再生開始位置の送信を行ってもよい。
通信装置101は、コンテンツリダイレクトを終了するかを判定する(ステップS513)。通信装置101は、ユーザからコンテンツリダイレクトの終了を示すユーザ操作を入力された場合、コンテンツリダイレクトを終了すると判定する(ステップS513のYes)。あるいは、通信装置102から受信したコンテンツリダイレクトの状態が、例えば停止やエラーを示すことに基づいてコンテンツリダイレクトを終了すると判定してもよい。一方、通信装置101は、ユーザからコンテンツリダイレクトの終了を示すユーザ操作を入力されなかった場合、コンテンツリダイレクトを終了しないと判定する(ステップS513のNo)。また、通信装置102から受信したコンテンツリダイレクトの状態が所定の状態を示さなかったことに基づいて、通信装置101はコンテンツリダイレクトを終了しないと判定してもよい。
通信装置101はコンテンツリダイレクトを終了しないと判定した場合(ステップS513のNo)、ステップS512の処理を行う。一方、通信装置101はコンテンツリダイレクトを終了すると判定した場合(ステップS513のYes)、本フローチャートのフローを終了する。
同様に、通信装置102もコンテンツリダイレクトを終了するか判定する(ステップS611)。通信装置102は、ユーザからコンテンツリダイレクトの終了を示すユーザ操作を入力された場合、コンテンツリダイレクトを終了すると判定する(ステップS611のYes)。あるいは、コンテンツリダイレクトの状態が所定の状態を示すことに基づいてコンテンツリダイレクトを終了すると判定してもよい。また、通信装置101から受信した再生制御情報がコンテンツリダイレクトの終了を示すことに基づいてコンテンツリダイレクトを終了すると判定してもよい。一方、通信装置102は、ユーザからコンテンツリダイレクトの終了を示すユーザ操作を入力されなかった場合、コンテンツリダイレクトを終了しないと判定する(ステップS611のNo)。また、コンテンツリダイレクトの状態が所定の状態を示さなかったことに基づいて、通信装置102はコンテンツリダイレクトを終了しないと判定してもよい。あるいは、通信装置101から受信した再生制御情報がコンテンツリダイレクトの終了を示さないことに基づいてコンテンツリダイレクトを終了しないと判定してもよい。
通信装置102はコンテンツリダイレクトを終了しないと判定した場合(ステップS611のNo)、ステップS610の処理を行う。一方、通信装置101はコンテンツリダイレクトを終了すると判定した場合(ステップS611のYes)、本フローチャートのフローを終了する。
以上、図5および図6のフローチャートには、通信装置101と通信装置102とがコンテンツリダイレクトを実施する際に実行する処理を示した。上記の様に、通信装置102がコンテンツリダイレクトによるコンテンツの再生を開始した後も、通信装置102から受信した無線信号に基づいて通信装置101が取得した再生開始位置に基づいてコンテンツを再生する。これにより、通信装置101と通信装置102との間でコンテンツの再生について同期をとることができる。特に、コンテンツリダイレクトを開始する際に、通信装置102においてコンテンツの再生準備が行われてから通信装置101が再生開始位置を取得することで、通信装置101と通信装置102とで重複して再生するコンテンツを短くすることができる。このように、コンテンツリダイレクトを開始する際のコンテンツの重複分が短くなることから、ユーザの違和感を軽減することが可能となる。また、ミラーリングからコンテンツリダイレクトに切り替える場合、通信装置102において表示されるコンテンツの重複分を短くすることができ、ユーザの違和感を軽減することができる。
なお、図5において、通信装置101はステップS509において再生開始位置を取得したが、これに限らず、ステップS510で通信装置102から停止指示を受信したことに基づいて再生開始位置を取得するようにしてもよい。
また、図6において、通信装置102はステップS607においてクラウドサーバ104からコンテンツを取得するとしたが、これに限らずステップS603の再生準備としてコンテンツの取得を行ってもよい。あるいは通信装置102はステップS608で通信装置101から再生開始位置を受信した後にコンテンツの取得を行ってもよい。
また、図5において、通信装置101はステップS509において再生開始位置を取得したが、これに限らずステップS506でコンテンツの再生指示を送信する際にも、コンテンツの再生開始位置を取得してもよい。この場合、通信装置101がステップS506で取得した再生開始位置を再生指示とともに送信することで、通信装置102は受信した再生開始位置に基づいてステップS607でコンテンツを取得することができる。これにより通信装置102は、ステップS608でコンテンツの再生開始位置を受信してから、実際にコンテンツの再生を開始するまでの時間を短縮することができる。また、通信装置102はコンテンツを取得する際に、受信した再生開始位置以降のコンテンツを取得すればよいため、コンテンツの一部のみ取得すればよくなる。さらに、ステップS603のコンテンツの再生準備においてコンテンツの取得を行うことで、受信した再生開始位置に基づいて、コンテンツを連続的に再生するために必要なデータを取得してから、通信装置101に応答を送信してもよい。そして、通信装置102においてコンテンツの再生が開始された後にコンテンツの取得を再開するようにすることで、ミラーリングからコンテンツリダイレクトに切り替える際に、通信装置102においてコンテンツを連続して表示させることができる。
また、図5において、通信装置101は、ステップS502でコンテンツの再生を開始し、ステップS509で取得した再生開始位置をステップS511で通信装置102に送信した。しかし、通信装置101がコンテンツリダイレクトを開始する前にコンテンツの再生を開始していない場合、通信装置101は通信装置102に再生開始位置の送信を行わなくてよい。具体的には通信装置101は図5のステップS502をスキップする場合、ステップS509およびステップS511をスキップする。
また、図3から図6において、ミラーリングからコンテンツリダイレクトに切り替える際の処理について説明したが、これに限らず通信装置101がミラーリングを行っていない状態でコンテンツリダイレクトを行う際にも同様に再生開始位置を取得してもよい。この場合、通信装置101は電源が入ると、図5のステップS501から処理を開始する。同様に、通信装置102も電源が入ると、図6のステップS601から処理を開始する。あるいは通信装置101と通信装置102との少なくとも何れか一方は、所定のアプリケーションが起動したことに応じて開始してもよい。
通信装置101は、ステップS503でYesと判定されると、図3のステップS302からステップS307の処理を行い、図5のステップS504以降の処理を行う。同様に、通信装置102も、ステップS601でYesと判定されると、図4のステップS402からステップS406の処理を行い、図6のステップS602以降の処理を行う。なお、この場合、通信装置102は、ステップS601の判定を、ユーザ操作または通信装置101からデバイス探索のための無線信号を受信したか否かに基づいて行う。通信装置102は、ユーザからコンテンツリダイレクトを開始するように指示するユーザ操作を受け付けた場合や、通信装置101からデバイス探索のための無線信号を受け付けた場合、ステップS601でYesと判定する。なお、通信装置101および通信装置102は、夫々図3のステップS307と図4のステップS406をスキップしてもよい。
また、本実施形態において、通信装置101と通信装置102とは同一のコンテンツを再生するとしたが、これに限らず、通信装置101と通信装置102とが別のコンテンツを再生してもよい。この場合、通信装置101と通信装置102とが再生するコンテンツは別のコンテンツであるが、再生をある程度同期させる必要があるコンテンツである。例えば通信装置101で再生しているコンテンツと内容は同じだが、より高解像度のコンテンツを通信装置102で再生する場合が該当する。あるいは、通信装置101で再生している2Dのコンテンツと内容は同じだが、3Dのコンテンツを通信装置102で再生する場合なども考えられる。
なお、図3から図6に示したフローチャートの各ステップを不図示の複数のCPUもしくは装置で分散して行うようにしてもよい。複数の装置で分散して行う場合、ソース機器についてはソースシステム、シンク機器についてはシンクシステムとして動作する。
例えば通信装置101は、コンテンツの再生を行う再生装置と、無線信号の送信などの処理を行う処理装置とからなるソースシステムであってもよい。この場合、処理装置は、図3のステップS307でミラーリング処理を行う際、再生装置に表示されている画面のキャプチャ画像に加えて、あるいは代えて、再生装置が再生している音声の符号化、多重化、データ送信処理を行ってもよい。また処理装置は、図5のステップS509において、再生装置で再生されているコンテンツの再生位置を取得し、取得した再生位置を通信装置102でコンテンツを再生する際の再生開始位置としてもよい。通信装置101が複数の装置からなるソースシステムである場合に、図3および図5の各ステップの処理を何れの装置が行うかはこれに限らない。
同様に、通信装置102も、コンテンツの再生を行う再生装置と、無線信号の送信などの処理を行う処理装置とからなるシンクシステムであってもよい。この場合、図4のステップS406でミラーリング処理を行う際、通信装置101から受信し、復号したキャプチャ画像の再生処理は、再生装置が行ってもよい。また、キャプチャ画像に代えて、あるいは加えて、音声を受信した場合、復号した音声の再生処理は再生装置が行ってもよい。また、図6のステップS609において、通信装置101から受信した再生開始位置に基づいて再生装置がコンテンツを再生するように、処理装置が制御してもよい。通信装置102が複数の装置からなるシンクシステムである場合に、図4および図6の各ステップの処理を何れの装置が行うかはこれに限らない。
なお、図3から図6に示した通信装置101や通信装置102のフローチャートの少なくとも一部または全部をハードウェアにより実現してもよい。ハードウェアにより実現する場合、例えば、所定のコンパイラを用いることで、各ステップを実現するためのコンピュータプログラムからFPGA上に専用回路を生成し、これを利用すればよい。FPGAとは、Field Programmable Gate Arrayの略である。また、FPGAと同様にしてGate Array回路を形成し、ハードウェアとして実現するようにしてもよい。また、ASIC(Application Specific Integrated Circuit)により実現するようにしてもよい。
以上、実施形態を詳述したが、本発明は例えば、システム、装置、方法、プログラム若しくは記録媒体(記憶媒体)などとしての実施態様をとることが可能である。具体的には、複数の機器(例えば、ホストコンピュータ、インタフェース機器、撮像装置、webアプリケーションなど)から構成されるシステムに適用してもよいし、また、一つの機器からなる装置に適用してもよい。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。