近年、固定網における光ファイバやADSLに加え、モバイル網においても、WLANやアドホックネットワークといったスポット的な無線技術が普及してきている。そして、ありとあらゆる所でネットワーク接続できるユビキタスネットワーク環境が現実のものになろうとしている。また、通信端末の分野においても、ネット家電や公衆構内デュアル端末に代表される多種多様な能力を持つデバイスが開発されている。そこで、ユビキタスネットワーク環境の多様なアクセスネットワークと多種多様な能力を持つデバイスを自由に切替えて継続的なサービスが行えるシームレスサービスの実現が強く求められている。
シームレスサービスを実現するための技術として、3つのシームレス技術が提案されている。一つ目の技術は、ネットワークシームレスと呼ばれ、一つのモバイル端末が移動等に伴い異なるネットワークをシームレスに切替えて通信を継続することを可能にするものである。モバイル端末は、複数のネットワークインターフェイスを有し、移動に応じてアクセス網を自由に切替えることができる。ネットワークシームレスは、ターミナルモビリティと呼ばれることもある。
二つ目の技術は、デバイスシームレスと呼ばれ、ユーザが利用中の端末をシームレスに切替えて利用することを可能にするものである。これにより、ある端末で利用中のセッションを、別な端末で引き続き継続することができる。この技術は、セッションを別な端末に移動することから、セッションモビリティとも呼ばれる。
三つ目の技術は、コンテンツシームレスと呼ばれ、メディアのフォーマットやメディアのタイプ等をシームレスに切替えて利用することを可能にするものである。これにより、ネットワーク帯域やデバイス能力、周辺環境等に応じて、メディアを切替えて表示・再生することができる。コンテンツシームレスは、メディアアダプティブ(メディア適応)と呼ばれることもある。
これらの3つの技術は、シームレスサービスを実現する上で、非常に重要なものであるが、それぞれ独立した効果が得られることから、単独でも、複数組み合わせても利用することができる。
デバイスシームレス技術が適用されるシームレスサービス(以下、「デバイス切替え」という。)としては、次のような状況が考えられる。たとえば、携帯電話等のモバイル端末を利用して、ストリーミング映画を視聴しながら帰宅したユーザが、自宅のリビングルームに入るや否や、大型テレビにディスプレイを瞬時に切替えて映画の続きを視聴するというものである。
一般的に、モバイル端末のディスプレイは小さく、映画を視聴する上で好適とはいえない。そこで、移動等に応じて、周辺に継続してサービスを享受することができる最適なデバイスを発見した場合に、デバイスを切替えることができれば、利用価値はきわめて高い。
この要望を満たす技術として、特開2003−304251号公報に記載のものがあった。図26は、当該特許公報に記載された従来のデバイス切替方法を示すものである。
図26において、まず、ユーザの持つモバイル端末(PDA)121が、近距離無線を用いて近隣端末(PC)122を検知し、この近隣端末(PC)122の通信網上のアドレスを自動的に取得する。そして、そのモバイル端末(PDA)121が転送元端末となり、通信先端末(PC)300との間で行っている通信中のアプリケーションレベルの通信セッションを転送先端末である近隣端末(PC)122に転送する。
次に、従来のデバイス切替システムについて、図面を参照しながら説明する。
図19は、従来のデバイス切替システムの構成図である。このシステムは、切替元デバイスであるモバイルノード(以下、MNという)1301と、通信相手である相手先ノード(以下、CNという)1302と、インターネット1303と、デバイス切替えの切替先デバイスとなるプラズマTV、ステレオ、PC等のデバイス群1304と、MN1301とデバイス群1304とを相互に接続するパーソナルエリアネットワーク(以下、「PAN」という。)1305とから構成されている。
MN1301およびデバイス群1304は、PAN1305を利用することにより、PAN1305内で互いに自由に通信をすることができる。また、CN1302とMN1301は、インターネット1303を介して通信を行っている。CN1302は、例えばストリーミングサーバである。MN1301は、CN1302から配信される映画をストリーミング受信している。なお、MN1301とCN1302間のネットワークは、必ずしもインターネットである必要はなく、例えば、第三世代モバイル通信網(3GPPネットワーク)であってもよい。
次に、デバイス切替えを実現する切替元デバイスであるMN1301のデバイス内部の構成について、図20を用いて説明する。
MN1301は、アプリケーション1401と、一つ以上のネットワークI/F1402と、表示出力を行う出力部1403と、ユーザとのインターフェース(I/F)となる入力部1404と、オペレーティングシステム1405と、オペレーティングシステム1405を介して図示しない外部デバイスと通信を行うメディア送信部1406と、メディア受信部1407と、メディア受信部1407が受信したメディアデータを蓄積するためのメディアバッファ1408と、メディアデータが圧縮されている場合にデータをデコードするためのデコーダ1409と、セッションを制御するためのシグナリング部1410と、図示しない外部の切替先デバイスが提供するサービスを発見するためのサービス発見部1411と、受信したメディアデータをメディア送信部1406が切替先デバイスに転送するように制御を行うミドルウェア1412とから構成されていた。
上述したように、MN1301は、デバイス群1304のデバイスの一つであると考えることができ、切替先のデバイスもMN1301と同様の構成を有する。ただし、切替先のデバイスは、切替元のデバイスとして動作する必要がないときは、アプリケーション1401、入力部1404およびメディア送信部1406を省略した構成とすることができた。
図21は、MN1301と切替先デバイス群1304間でのメッセージシーケンスを示す図である。図22は、同様のメッセージシーケンスを流れ図で示したものである。ここで、デバイス群1304には、デバイス1からデバイスNまでN個のデバイスが存在しているものとする。また、MN1301は、図示していないが、CN1302と別途セッションを保持している。図21において、ユーザとは、MN1301を現在使用しているユーザであり、入力部1404を介してMN1301に指示を与えることができる。また、図21中の矢印は、始点から終点へ向けてメッセージが送られていることを示している。
従来のデバイス切替システムの動作について、図21に示すシーケンス図と図22に示す流れ図を用いて説明する。
デバイス切替えを行おうとするユーザは、MN1301の入力部1404を用いてMN1301に切替先候補デバイスの名称の表示要求(U1)を指示する(ステップS1601)。
次に、MN1301の入力部1404を通じて指示を受けたミドルウェア1412は、サービス発見部1411を通じて、サービス発見要求(M1)を、PAN1305内のデバイス1〜デバイスNに一斉に送る(ステップS1602)。
次に、切替先デバイスのサービス発見部1411は、サービス発見要求をMN1301から受けるとサービス発見応答(M2)をMN1301に返信する(ステップS1603)。サービス発見部1411が使用するサービス発見プロトコルとしては、UPnP(ユニバーサル・プラグ・アンド・プレイ)のSSDP(シンプルサービスディスカバリプロトコル)や、Bluetooth(登録商標)のSDP、SLP(サービスロケーションプロトコル)等既存のものが利用される。
MN1301のサービス発見部1411は、切替先デバイスからのサービス発見応答(M2)を受信しミドルウェア1412に通知する。ミドルウェア1412は、その通知に基づきサービス提供可能なデバイスからなる切替先候補デバイスリストを生成し、オペレーティングシステム1405を介して出力部1403がユーザにそのリストを提示(U2)する(ステップS1604)。なお、その切替先候補デバイスリストは、デバイス名などのデバイスを特定する識別子を含むリストである。
ユーザは、その切替先候補デバイスリストの中から、MN1301の入力部1404によって切替先デバイスを選択(U3)する(ステップS1605)。選択された切替先デバイス(以下、「切替先確定デバイス」という。)は、ミドルウェア1412に通知される。図5のシーケンス図では、デバイス2が切替先デバイスとして選択されたものとして説明する。
MN1301のミドルウェア1412は、選択されたデバイス2とPAN1305内でセッションを確立し、メディアの伝送を行うために、シグナリング部1410を通じてセッション確立・メディア処理準備要求(M3)をデバイス2に送信する(ステップS1606)。同時に、MN1301のミドルウェア1412は、メディア受信部1407、メディア送信部1406に対して受信したメディアデータを切替先のデバイスに転送する準備を開始するように通知する。シグナリング部1410としては、SIP(セッションイニシエーションプロトコル)等既存のものが利用できる。
切替先のデバイス2のシグナリング部1410が、MN1301からセッション確立・メディア処理準備要求(M3)を受信すると、デバイス2のミドルウェア1412は、メディア受信部1407、メディアバッファ1408およびデコーダ1409に対してメディア処理準備を開始するように指示する。そして、メディア処理準備が完了すると、デバイス2のミドルウェア1412は、シグナリング部1410を通じて、セッション確立・メディア処理準備応答(M4)をMN1301へ送信する(ステップS1607)。
MN1301のシグナリング部1410が、デバイス2からセッション確立・メディア処理準備応答(M4)を受信すると、MN1301のミドルウェア1412は、メディア送信部1406に対して、メディア受信部1407がデバイス2へCN1302から受信したメディアデータの伝送(D1)を開始するように通知する(ステップS1608)。
デバイス2のメディア受信部1407は、MN1301によって転送されたメディアデータを受信し、メディアデータのメディアバッファ1408への蓄積を開始する。メディアバッファ1408に一定のメディアデータが蓄積された状態になると、ミドルウェア1412は、メディアデータが圧縮されている場合には、デコーダ1409にデコード動作を開始するように通知する。デコードされたデータは、オペレーティングシステム1405を介して出力部1403に出力(D2)される(ステップS1609)。一方、メディアデータが非圧縮の場合には、メディアバッファ1408に蓄積されたメディアデータを、オペレーティングシステム1405を介して出力部1403に出力される。
以上のようにして、MN1301から切替先のデバイス2へのデバイス切替えを実現することができる。その結果として、MN1301の出力部1403に出力されていたメディアデータは、デバイス2の出力部1403から出力されるようになる。この一連の切替シーケンスにおいて、ユーザが切替えを意図して、MN1301に対して切替先候補デバイス表示要求(U1)を指示してから、デバイス2の出力部1403にデータが出力される(D2)までの時間が、切替えに要する時間となる。この切替えに要する時間が短いほど、ユーザの切替えに関わる待ち時間が減少し、よりシームレスなサービスを提供することができる。
しかし、このような従来の技術によるデバイス切替えでは、サービス発見要求(M1)からサービス発見応答(M2)を受信するまでに、数秒程度を要する。さらに、セッション確立・メディア処理準備要求(M3)からセッション確立・メディア処理準備応答(M4)を受信するまでに、数秒程度を要する。結果的に、切替えに要する時間、すなわちユーザの待ち時間は、相当な長さとなってしまう。これによって、例えば、リアルタイムのサッカーの試合を視聴している場合を考えると、デバイス切替えが原因となり、ゴールシーン等の重要な瞬間を見逃してしまう事態が生じる。
そこで、デバイス切替えに要する時間を短縮するために、文献「シームレスサービス実現のためのモバイルマルチメディアミドルウェア」(太田 賢他著、情報処理学会研究報告「モバイルコンピューティングとワイヤレス通信」No.18−35、2001年9月7日、P.261−268)には、サービス発見をあらかじめ周期的に行っておくこと(技術A)、サービス発見の結果得られた全てのデバイスに対して、セッション確立およびメディア処理の準備を先行的に行っておくこと(技術B)の二つの技術が開示されている。
これらの技術によって、デバイス切替えに要する時間を短縮ができることについて図面を参照しながら説明する。文献「シームレスサービス実現のためのモバイルマルチメディアミドルウェア」におけるMN1301または切替先デバイスの端末内部の構成については、図20に示したものと全く同じであり、ミドルウェア1412の動作のみが異なる。そこで、図20に示したミドルウェア1412と区別するために、文献「シームレスサービス実現のためのモバイルマルチメディアミドルウェア」のものを「高速ミドルウェア」と呼ぶことにする。
図23は、文献「シームレスサービス実現のためのモバイルマルチメディアミドルウェア」におけるMN1301と切替先デバイス群1304間でのメッセージシーケンスを示す図である。図24は、文献「シームレスサービス実現のためのモバイルマルチメディアミドルウェア」の切替元デバイスの動作を流れ図で示したものであり、図25は、切替先デバイスの動作を流れ図で示したものである。ここで、デバイス群1304には、デバイス1からデバイスNまでのN個の切替先デバイスが存在しているものとする。また図示していないが、MN1301は、CN1302と別途セッションを保持している。
次に、切替元デバイスおよび切替先デバイスの動作について説明する。以下、これらの動作について、図20に示した構成要素と同じものには、同じ番号を用いて説明する。
はじめに、切替元デバイスの動作について、図24に示す流れ図を用いて説明する。
CN1302とのセッションが継続中である場合(ステップS1801、YES)には、周囲のデバイス群1304に対してサービス発見を行うために、高速ミドルウェアは、サービス発見部1411を通じて、サービス発見要求(M1)を、周期的にPAN1305内のデバイス1〜デバイスNに一斉に送る(ステップS1802)。一方、CN1302とのセッションが継続していない場合(ステップS1801、NO)には、以後の動作を終了する。
サービス発見部1411は、切替先デバイスからのサービス発見応答(M2)を受信し高速ミドルウェアに通知する(ステップS1802)。高速ミドルウェアは、その通知に基づきサービス提供可能なデバイスの切替先候補デバイスリストを生成し(ステップS1803)、内部に保持する。すでに保持している切替先候補デバイスリストが存在する場合には、更新する。
高速ミドルウェアは、切替先候補デバイスリストに記された切替先候補となる全てのデバイスに対して、セッションを確立しメディアの伝送を行うために、シグナリング部1410を通じてセッション確立・メディア処理準備要求(M3)を送信する(ステップS1804)。ここで、切替先候補となるデバイスはn(1≦n≦N)個存在する。
同時に、高速ミドルウェアは、メディア受信部1407、メディア送信部1406に対して、受信したメディアデータを切替先候補デバイスに転送する準備を開始するように通知する(ステップS1805)。
シグナリング部1410が、切替先候補となるデバイスからセッション確立・メディア処理準備応答(M4)を受信する(ステップS1806)と、高速ミドルウェアは、一定時間待機する。
高速ミドルウェアが待機している間に、ユーザから切替先候補デバイス表示要求(U1)の指示がなかった場合(ステップS1807、NO)には、再びサービス発見を行う。一方、ユーザから切替先候補デバイス表示要求(U1)の指示があった場合(ステップS1807、YES)には、高速ミドルウェアは、内部に保持している切替先候補デバイスリストを、出力部1403を通じてユーザに提示(U2)する(ステップS1808)。
ユーザは、切替先候補デバイスリストの中から、入力部1404を通じて切替先デバイスを選択(U3)する(ステップS1809)。入力部1404は、選択された切替先確定デバイス名をオペレーティングシステム1405を介して高速ミドルウェアに通知する。本流れ図では、デバイス2が選択されたものとして説明する。
高速ミドルウェアは、メディア送信部1406に対して、メディア受信部1407がCN1302から受信したメディアデータの伝送(D1)を開始するように通知する(ステップS1810)。メディア送信部1406は、切替先確定デバイス2に対して、指定されたメディアデータの転送を開始する。
高速ミドルウェアは、切替先候補となったn個の切替先候補デバイスのうちデバイス2以外のデバイスに対して、シグナリング部1410を通じて、セッション切断要求(M5)を送信する(ステップS1811)。それらのデバイスからセッション切断応答(M6)を受信して、切替動作を完了する。
次に、切替先候補デバイスや切替先確定デバイスとなる切替先デバイスの動作について、図25に示す流れ図を用いて説明する。
サービス発見要求(M1)を受けた切替先デバイスのサービス発見部1411は、サービス発見応答(M2)をMN1301に送信する(ステップS1901)。
シグナリング部1410は、MN1301からセッション確立・メディア処理準備要求(M3)を受信する(ステップS1902)。次に、高速ミドルウェアは、メディア受信部1407、メディアバッファ1408およびデコーダ1409に対してメディア処理準備を開始するように指示をする(ステップS1903)。
そして、メディア処理準備が完了すると、高速ミドルウェアは、シグナリング部1410を通じて、切替元デバイスに対してセッション確立・メディア処理準備応答(M4)を送信する(ステップS1904)。
切替先のデバイス2のメディア受信部1407は、切替元デバイスから転送されたメディアデータを受信し(ステップS1905)、メディアデータのメディアバッファ1408への蓄積を開始する(ステップS1906)。メディアバッファ1408に一定のデータが蓄積された状態になると、高速ミドルウェアは、メディアデータが非圧縮の場合(ステップS1907、YES)には、メディアバッファ1408に蓄積されたデータをオペレーティングシステム1405を介して出力部1403に送る(ステップS1909)。一方、メディアデータが圧縮されている場合(ステップS1907、NO)、高速ミドルウェアは、デコーダ1409にデコード動作を開始するように通知し(ステップS1908)、デコードされたデータを、オペレーティングシステム1405を介して出力部1403に送る。出力部1403は、受信したメディアデータの出力(D2)を開始し(ステップS1909)、切替動作を完了する。
一方、切替先確定デバイスとならなかったデバイスのシグナリング部1410が切替元デバイスからセッション切断要求(M5)を受信すると、高速ミドルウェアは、メディア受信部1407、メディアバッファ1408およびデコーダ1409に対してメディア処理準備を終了するように指示をする(ステップS1910)。
そして、メディア受信部1407、メディアバッファ1408およびデコーダ1409がメディア処理準備を終了すると、高速ミドルウェアは、シグナリング部1410を通じて、切替元デバイスに対してセッション切断応答(M6)を送信し(ステップS1911)、切替動作を終了する。
以上のように、文献「シームレスサービス実現のためのモバイルマルチメディアミドルウェア」に記載の技術によれば、切替元デバイスから切替先デバイスへのデバイス切替えを高速に実現することができた。
すなわち、ユーザから切替先候補デバイス表示要求(ステップS1807)の指示がある以前に、サービス発見要求(M1)から、サービス発見応答(M2)受信に関わる動作(ステップS1802〜ステップS1803およびステップS1901)までを周期的に行っておくこと(前述した技術A)により、ユーザからの切替先候補デバイス表示要求に対し、切替時の実質的な動作時間をゼロとすることが可能となる。それにより、デバイスリストが提示されるまでに必要な時間の短縮が図られた。
また、ユーザから切替先デバイス選択(ステップS1809)の指示がある以前に、セッション確立・メディア処理準備要求(M3)からセッション確立・メディア処理準備応答(M4)の受信に関わる動作(ステップS1804〜ステップS1806およびステップS1902からステップS1904)までを、サービス発見により得られた切替先候補となるすべての切替先候補デバイスに対して行っておくこと(前述した技術B)により、デバイス切替時の実質的な動作時間をゼロとすることが可能となる。それにより、選択した切替先デバイスでメディアデータの出力が開始するまでに要する時間の短縮が図られた。
それらの結果として、切替えに要する時間、すなわちユーザがデバイス切替えを意図して、切替元デバイスに対して切替先候補デバイス表示要求(U1)を指示してから、選択した切替先デバイスの出力部にメディアデータが出力(D2)されるまでの時間が大幅に短縮された。
しかしながら、文献「シームレスサービス実現のためのモバイルマルチメディアミドルウェア」の技術では、選択した切替先デバイスでメディアデータの受信を開始してから、切替先デバイスの出力部がメディアデータの出力を開始するまで(ステップS1905〜ステップS1909)に数百ミリ秒程度の時間を要し、依然として十分にシームレスなサービスを実現することができなかった。さらに、遅延が生じるのを避けるために、切替元デバイスの送信部は、受信部が新たに受信したメディアデータ分から送信を行っていたため(ステップS1810)、切替元デバイスのメディアバッファにすでに蓄積されている切替元デバイスでまだ出力されていないメディアデータは切替先デバイスに転送されなかった。このため、切替先デバイスの出力部は、そのメディアデータ分を出力できないので、出力されるメディアデータに欠損が生じ、結果として不連続な出力となってしまっていた。
以下、本発明の実施の形態について、図面を参照しながら説明する。
(実施の形態1)
本発明の実施の形態1の高速デバイス切替システムは、切替元デバイスが通信相手との間で保持するセッションを、切替元デバイス以外の切替先デバイスに移動させるセッションモビリティを実現するシステムである。
本発明の実施の形態1の高速デバイス切替システムの構成は、図19に示したものと同じであるが、モバイルノード(MN)1301とデバイス群1304は、それぞれ本発明に係る切替元デバイスと切替先デバイスである。
図1は、本実施の形態の高速デバイス切替システムにおける切替元デバイスの内部の構成を示す図である。
図1において、本実施の形態の切替元デバイスは、アプリケーション1401と、一つ以上のネットワークI/F1402と、表示出力を行う出力部1403と、ユーザからの入力を受け付ける入力部1404と、オペレーティングシステム1405と、オペレーティングシステム1405を介して外部デバイスへメディアデータの送信を行うメディア送信部103と、外部デバイスからのメディアデータを受信するメディア受信部1407と、メディア受信部1407が受信したメディアデータを蓄積するためのメディアバッファ1408と、バッファ制御情報を生成および利用するバッファ制御部102と、圧縮されているメディアデータをデコードするためのデコーダ1409と、外部デバイスとのセッションを制御するためのシグナリング部104と、近隣の外部の通信デバイスが提供するサービスを発見するためのサービス発見部1411と、メディア受信部1407が受信したメディアデータを切替先候補デバイスに転送する指示を、メディア送信部103に出力する高速デバイス切替部101とから構成されている。
上記構成において、高速デバイス切替部101と、バッファ制御部102と、メディア送信部103と、シグナリング部104とが従来の技術とは異なる構成要素である。ここで、高速デバイス切替部101は、従来の高速ミドルウェアに替わるものであり、機能変更および機能追加がなされている。バッファ制御部102は、従来のものにはなく、新しく追加された構成要素であり、切替先候補デバイスが切替先デバイスのメディアバッファを制御する際に参照するバッファ制御情報を生成する。また、メディア送信部103およびシグナリング部104は、従来のものに、一部機能が追加されたものである。すなわち、メディア送信部103は、メディアバッファ1408に蓄積されたメディアデータの転送も行え、シグナリング部104は、バッファ制御部102の生成したバッファ制御情報をさらに伝える。
図13は、本実施の形態の高速デバイス切替システムにおける切替先デバイスの内部の構成を示す図である。
図13において、サービス応答部1511は、切替元デバイスのサービス発見部1411から送信された、サービス提供の可否の問い合わせに応答するものである。その他の構成要素は、図1に示したものと同一である。
なお、切替先デバイスは、図1に示す切替元デバイスと全く同じ構成とすることもできる。この場合は、そのデバイスを切替元、切替先の区別なく利用することが可能である。
図2は、切替元デバイスと切替先デバイス群間でのメッセージに関するシーケンスを示す図である。図3は、切替元デバイスの動作を説明する流れ図である。図4は、切替先デバイスの動作を説明する流れ図である。ここで、デバイス群には、デバイス1からデバイスNまでのN個のデバイスが存在しているものとする。また、図示していないが、切替元デバイスは、CNと別途セッションを保持している。
次に、切替元デバイスおよび切替先デバイスの動作に関し、はじめに、切替元デバイスの動作について、図2と図3を用いて説明する。特に説明しない動作に関しては、図24に示した従来の切替元デバイスの動作と同一である。
CN1302とのセッションが継続中である場合(ステップS301、YES)、高速デバイス切替部101は、周囲のデバイス群1304に対してサービス発見を行う。このために、高速デバイス切替部101は、サービス発見部1411を通じて、サービス発見要求(M1)を、任意のタイミングでPAN1305内のデバイス1からデバイスNに一斉に送る(ステップS302)。サービス発見要求(M1)は、セッションが確立した直後、任意のタイミングまたは周期的に送るもので、例えば10分周期で送る。一方、CN1302とのセッションが継続していない場合(ステップS301、NO)には、以後の動作を終了する。
サービス発見部1411は、各切替先デバイスからのサービス発見応答(M2)を受信し、高速デバイス切替部101に通知する(ステップS302)。高速デバイス切替部101は、その通知に基づきサービス提供可能なデバイスの切替先候補デバイスリストを生成し(ステップS303)、内部に保持する。すでに保持している切替先候補デバイスリストが存在する場合には、更新する。
高速デバイス切替部101は、切替先候補デバイスが切替先デバイスのメディアバッファを制御するためのバッファ制御情報を生成するようにバッファ制御部102に指示する(ステップS304)。これを受けて、バッファ制御部102は、バッファ制御情報を生成する。なお、バッファ制御情報については、後述する。
高速デバイス切替部101は、切替先候補デバイスリストに記された切替先候補デバイスに対してセッションを確立しメディアデータの伝送を行うために、シグナリング部104を通じてセッション確立・メディア処理準備要求(M3’)を切替先候補デバイスに送信する(ステップS305)。ここで、切替先候補デバイスは、N個のデバイスの内のデバイス2とデバイスNとする。
このとき、シグナリング部104は、シグナリングメッセージであるセッション確立・メディア処理準備要求(M3’)メッセージのヘッダまたはペイロードに、切替先候補デバイスの出力部が当該セッションにおいて転送されるメディアデータを出力禁止にするように指示されたメディア出力制御情報を記述する。
さらに、シグナリング部104は、セッション確立・メディア処理準備要求(M3’)メッセージのペイロードにバッファ制御部102が生成したバッファ制御情報を付加する。ただし、バッファ制御情報の付加は、ペイロードに限ったものである必要はなく、ヘッダに対して付加してもよい。図16にセッション確立・メディア処理準備要求(M3’)メッセージのフォーマット形式を示す。セッション確立・メディア処理準備要求(M3’)メッセージ2203は、メッセージヘッダ2201とメッセージペイロード2202とから構成される。図16では、フォーマット形式の一例として、メディア出力制御情報2204がメッセージヘッダ2201に、バッファ制御情報2205がメッセージペイロード2202に付加される場合を示している。
同時に、高速デバイス切替部101は、メディア受信部1407およびメディア送信部103に対して、受信したメディアデータおよびメディアバッファ1408に蓄積されているメディアデータを切替先候補デバイスに転送する準備を開始するように通知する(ステップS306)。
次に、シグナリング部104が、切替先候補デバイスからセッション確立・メディア処理準備応答(M4)を受信する(ステップS307)と、高速デバイス切替部101は、メディア送信部103に対して、メディアデータの伝送(D1’)を開始するように通知する(ステップS308)。このメディアデータは、メディアバッファ1408に蓄積されているものと、メディア受信部1407がCN1302から受信したものである。
メディア送信部103は、これを受けて、マルチキャストまたはブロードキャストにより、切替先候補デバイスリストに記された切替先候補デバイスに対して、メディアデータの転送(D1‘)を開始し、高速デバイス切替部101は、一定時間待機する。
高速デバイス切替部101が待機している間に、ユーザから切替先候補デバイス表示要求(U1)の指示がなかった場合(ステップS309、NO)には、ステップS301に戻り再びサービス発見を行う。一方、ユーザから切替先候補デバイス表示要求(U1)の指示があった場合(ステップS309、YES)には、高速デバイス切替部101は、内部に保持している切替先候補デバイスリストを、出力部1403を通じてユーザに提示(U2)する(ステップS310)。
ユーザは、切替先候補デバイスリストの中から、入力部1404を通じて切替先デバイスを選択(U3)する(ステップS311)。選択された切替先デバイスは、オペレーティングシステム1405を介して高速デバイス切替部101に通知される。ここでは、切替先確定デバイスとして、デバイス2が選択されたものとする。
高速デバイス切替部101は、切替先デバイスとして選択された切替先デバイス2がメディアデータ出力を開始するために、シグナリング部104を通じて、デバイス2に対してメディアデータ出力通知(M7)を送信する(ステップS312)。
メディア送信部103が後述するバースト送信を行っている際には、高速デバイス切替部101は、バッファ制御部102が生成したメディアバッファ1408の使用されている状況を示すメディアデータ状況をメディアデータ出力通知(M7)のペイロードに付加する。ただし、メディアデータ状況の付加は、ペイロードに限ったものである必要はなく、ヘッダに対して付加してもよい。
高速デバイス切替部101は、切替先候補デバイスのうちユーザにより選択されたデバイス2以外のデバイスに対して、シグナリング部104を通じて、セッション切断要求(M5)を送信する(ステップS313)。そして、高速デバイス切替部101は、それらのデバイスからセッション切断応答(M6)を受信して、切替動作を完了する。
次に、図4を用いて切替先デバイスの動作を説明する。
サービス発見要求(M1)を受けた切替先デバイスのサービス応答部1511は、サービス発見要求に示されるサービス条件を満たしているか否か判断する。そして、サービス条件に適合するサービスを提供可能な場合、サービス発見部1411は、サービスを利用するための手続きを含むサービス発見応答(M2)をMN1301に送信する(ステップS401)。
次に、切替先候補デバイスのシグナリング部104が、切替元デバイスからセッション確立・メディア処理準備要求(M3‘)を受信すると(ステップS402)、メッセージからメディア出力制御情報およびバッファ制御情報を取り出し、高速デバイス切替部101に送る。高速デバイス切替部101は、メディア出力制御情報により、当該セッションにおいて転送されるメディアデータの出力部への出力が禁止されていることを知る。そして、高速デバイス切替部101は、メディア受信部1407、メディアバッファ1408およびデコーダ1409に対して、メディア受信準備と、処理準備を開始するように指示する(ステップS403)。受信されたバッファ制御情報は、高速デバイス切替部101よりバッファ制御部102に送られ、メディアバッファ1408を制御するために利用される。
そして、それらの準備が完了すると、高速デバイス切替部101は、シグナリング部1410を通じて、切替元デバイスに対してセッション確立応答(M4)を送信する(ステップS404)。
次に、切替先デバイス2のメディア受信部1407は、切替元デバイスがマルチキャストまたはブロードキャストによって転送しているメディアデータ(D1‘)を受信し(ステップS405)、メディアデータのメディアバッファ1408への蓄積を開始する(ステップS406)。高速デバイス切替部101は、バッファ制御情報をバッファ制御部102に送る。バッファ制御部102は、その情報を利用してメディアバッファ1408が切替元デバイスのメディアバッファと同じメディアデータの蓄積状態になるように制御する。ここで、メディアデータの蓄積状態が同じであるとは、例えば動画においては蓄積しているフレームの数や蓄積しているフレームの番号などが全く同じであることをいう。
切替先デバイス2の高速デバイス切替部101は、シグナリング部104を通じて切替元デバイスから送信されたメディアデータ出力通知(M7)を受信すると、切替先デバイスとして選択されたことを知る。そして、高速デバイス切替部101は、メディア出力制御情報により禁止されていたメディアデータの出力部1403への出力を解除し、切替先確定デバイスとしての処理を進める(ステップS407)。メディアデータが後述するバースト送信によって送信されている場合、高速デバイス切替部101は、メディアデータ出力通知(M7)に付加されたメディアデータ状況をバッファ制御部102に送る。バッファ制御部102は、そのメディアデータ状況の情報を利用して、メディアバッファ1408が切替元デバイスのメディアバッファと同じ状態になるように制御する。
ユーザによって指定された切替先デバイス2以外の切替先候補デバイスのシグナリング部104が、切替元デバイスから送信されたセッション切断要求(M5)を受信すると、高速デバイス切替部101は、メディア受信部2107に対してメディアデータの受信を終了するように指示する。さらに、高速デバイス切替部101は、メディアバッファ1408およびデコーダ1409に対してメディア処理準備を終了するように指示する(ステップS411)。
そして、メディア処理準備を終了すると、高速デバイス切替部101は、シグナリング部1410を通じて、切替元デバイスに対してセッション切断応答(M6)を送信し(ステップS412)、切替動作を終了する。
ステップS407において、メディアバッファ1408に一定のメディアデータが蓄積された状態になると、高速デバイス切替部101は、メディアデータが非圧縮の場合(ステップS408、YES)には、メディアバッファ1408に蓄積されたメディアデータ(D2)を、オペレーティングシステム1405を介して出力部1403に送る(ステップS410)。
一方、メディアデータが圧縮されている場合(ステップS408、NO)には、高速デバイス切替部101は、デコーダ1409にデコード動作を開始するように通知する(ステップS409)。デコーダ1409は、デコードされたメディアデータを、オペレーティングシステム1405を介して出力部1403に送る。出力部1403は、受信したメディアデータの出力(D2)を開始し(ステップS410)、切替動作を完了する。
以上のように、本発明の実施の形態1の高速デバイス切替システムは、切替元デバイスにユーザから切替先候補デバイスリスト要求が入力される以前に、切替元デバイスがあらかじめ切替先候補デバイスを検索し、それらへメディアデータを蓄積させておくので、ユーザからデバイス切替要求が入力されたときには、すでに検索した切替先候補デバイスを表示し、ユーザにより選択された切替先確定デバイスは、すでに蓄積されているメディアデータを直ちに出力することが可能となる。これにより、ユーザが切替えを意図してから切替先デバイスでデータが出力されるまでの時間は、100ミリ秒以下となり、ユーザが知覚できない程、高速なデバイス切替えを実現することができる。
次に、シグナリング部104が、シグナリングメッセージ(M3’)に記述するメディア出力制御情報について、SIPである場合の例を図17、図18に示す。セッション確立・メディア処理準備要求(M3’)メッセージ2203は、図16と同様にメッセージヘッダ2201とメッセージペイロード2202とから構成される。図17と図18には、さらにSIPヘッダ及びペイロードの詳細を記載する。SIPにおいては、シグナリングメッセージ(M3’)にインバイト(INVITE)メソッドが用いられ、そのリクワイア(Require)ヘッダまたはサポート(Supported)ヘッダのヘッダフィールドに以下のように記述する。図17に、メディア出力制御情報2204としてリクワイア(Require)ヘッダが使われる例を示す。
Require:Media−Buffering−Only
Supported:Media−Buffering−Only
ただし、“Media−Buffering−Only”は、定義されたオプションタグである。
別な例としては、インバイト(INVITE)メソッドのコンタクト(Contact)ヘッダのヘッダフィールドに以下のように記述する。
Contact:<sips:alice@client.ndc.example.com>;audio;video;mobility=“fixed”;mediahandling=“bufferonly”
ただし、“mediahandling”は、定義されたメディアフィーチャタグである。
さらに、SIPにおけるペイロードの一つであるSDP(Session Description Protocol)を用いた別の例としては、SDPの属性(アトリビュート)に以下のように記述する。図18には、メディア出力制御情報2204としてアトリビュートが使われる例を示す。
a=bufferOnly
ただし、“bufferOnly”は、定義されたアトリビュートであり、蓄積のみ許可されることを示している。
シグナリングメッセージ(M3’)にこのようなメディア出力制御情報が記述されることにより、切替元デバイスの高速デバイス切替部101は、当該セッションにおいて伝送されるメディアデータがメディアバッファ1408への蓄積目的であり、出力部1404への出力が禁止されていることを知る。
次に、切替元デバイスのメディアバッファ1408とメディアデータの蓄積制御を行うバッファ制御部102の動作(ステップS304)と、切替元デバイスのメディアバッファ1408に蓄積されたメディアデータを伝送するメディア送信部103の動作(ステップS308)について詳細に説明する。
はじめに、メディア送信部103によるメディアデータ伝送の方法について、図5および図6を用いて説明する。メディアデータ伝送の仕方は、切替元デバイス(MN1301等)と通信相手(CN1302等)間のネットワーク帯域と、切替元デバイス(MN1301等)と切替先デバイス(デバイス群1304)間のネットワーク帯域(以下、「PANの帯域」という。)との大きさの関係により、二つに分類される。
PANの帯域が切替元デバイスと通信相手間のネットワーク帯域より大きい場合には、メディア送信部103はメディアデータのバースト送信を行う。ここで、バースト送信とは、メディアバッファに蓄積されるデータが一定量に達するまで伝送動作を待機し、一定量に達すると蓄積されたデータを一度に一括して送る方法である。例えば、メディアが動画である場合において、複数フレーム分まとめて送信する。
図5A、図5Bは、バースト送信を行う際のメディアバッファ1408への蓄積およびメディア送信部103のメディアデータ伝送の仕方を説明する図である。図5A、図5Bは、図1に示した切替元デバイスの内部構成図から説明に必要な構成要素だけを抽出して示したものであり、図1との共通の構成要素には同一の番号を付している。
図5Aは切替元デバイスの構成を示し、図5Bは切替先デバイスの構成を示す。図5A、図5Bにおいて、メディアバッファ1408の内部に蓄積されているメディアデータの詳細な状態が示されている。なお、図5A、図5Bにおいて、説明に使用されるメディアは圧縮された動画とし、フレーム毎にフレーム番号を付す。図5Aに示す切替元デバイスのメディアバッファ1408には、フレーム4からフレーム13までが蓄積された状態にある。このとき、フレーム14はメディア受信部1407で受信され、メディアバッファ1408に新たに加えられるところである。また、フレーム3は、メディアバッファ1408からデコーダ1409に送られ、デコードされた後、出力部1403から出力される。図5Bに示す切替先デバイスのメディアバッファ1408は、バースト送信のために二つのバッファに論理的に分割され、一方の論理バッファのデータ蓄積量が定められたバースト送信バッファ量を超えるように設定される。
次に、メディア送信部103は、それらのデータ(図5A、図5Bでは、フレーム7から11)をPAN1305経由で切替先デバイスに対して一度に一括して送信する。ここで、バースト送信バッファ量とは、一度のバースト送信で送られるデータ量の下限であり、切替元デバイスのメディアバッファ1408の論理バッファに蓄積されたデータが、バースト送信バッファ量を超えることによりバースト送信が行われる。バースト送信が行われる際にも、メディアバッファ1408にデータは入力され、メディアバッファ1408からデコーダ1409にデータは出力される。しかしながら、メディアバッファ1408が二つの論理バッファを有することにより、バースト送信が行われる際に、入力されるデータ(フレーム12、13、14など)は、バースト送信が行われない方の論理バッファに蓄積される。また、出力されるデータ(フレーム3、4、5など)は、バースト送信が行われない方の論理バッファに蓄積されており、当該論理バッファから出力される。したがって、バースト送信に係る側の論理バッファ(図5Aの右側の論理バッファ)のデータは、バースト送信の際に、メディアバッファ1408におけるデータ入出力の影響を受けない。切替先デバイスのメディア受信部1407は、それらのメディアデータを受信し、一方の論理バッファに蓄積する。切替元のメディアバッファ1408におけるデコーダ1409へのフレーム出力のタイミング、および切替先のメディアバッファ1408におけるフレーム出力または廃棄のタイミングは、後述するバッファ制御ポリシーに従うものとする。バッファ制御部1408による切替元デバイスのメディアバッファ制御は、フレーム14をフレーム12およびフレーム13が蓄積されているのと同じ論理バッファに入力し、フレーム6までをデコーダ1409へ出力すると、もう一方の論理バッファからフレーム7、フレーム8という順番で出力を行う。
反対に、PAN1305の帯域が、切替元デバイスと通信相手間のネットワーク帯域より小さい場合には、メディア送信部103はメディアデータの逐次送信を行う。ここで、逐次送信とは、送信動作の待機を行わず、常に一定の間隔でデータを送る方法である。例えば、メディアが動画である場合、1フレーム分を順次送信する。
図6A、図6Bは、逐次送信を行う際のメディアバッファ1408への蓄積およびメディア送信部103へのメディアデータ伝送を説明する図である。図6A、図6Bも図5A、図5Bと同様に、図1に示した切替元デバイスの内部構成図から必要な構成要素のみを抽出したものであり、図1との共通の構成要素には同一の番号を付している。
図6Aは切替元デバイスの構成を示し、図6Bは切替先デバイスの構成を示す。図6A、図6Bにおいて、メディアバッファ1408のバッファ内部に蓄積されているメディアデータの詳細な状態が示されている。なお、図6Aにおいて、説明に使用されるメディアは圧縮された動画とし、フレーム毎にフレーム番号を付す。図6Aに示す切替元デバイスのメディアバッファ1408には、フレーム7からフレーム12までが蓄積された状態にある。このとき、フレーム13がメディア受信部1407で受信されると、メディアバッファ1408に新たに加えられるとともに、メディア送信部103が、受信したフレームをPAN1305経由で切替先デバイスに対して逐次送信する。また、フレーム6がメディアバッファ1408からデコーダ1409に送られ、デコードされた後、出力部1403から出力される。
図6Bに示す切替先デバイスのメディア受信部1407は、送られたメディアデータを受信し、メディアバッファ1408に蓄積する。切替元デバイスのメディアバッファ1408におけるデコーダ1409へのフレーム出力のタイミング、および切替先デバイスのメディアバッファ1408におけるフレーム出力または廃棄のタイミングは、後述するバッファ制御ポリシーに従うものとする。バッファ制御部102のメディアバッファ制御は、フレーム13をフレーム12に続いてメディアバッファ1408に入力し、フレーム6に続いて、フレーム7、フレーム8という順番でメディアバッファ1408からデコーダ1409へ出力を行う。
次に、バッファ制御ポリシーについて説明する。
バッファ制御ポリシーには、二つの基本形が存在し、実用上は、二つの基本形が組み合わされて、新しいバッファ制御ポリシーとして使用される。第一の基本形は、バッファ量一定制御型である。これは、新しいデータが入力され定められた基準バッファ量を超えると、1フレーム等の単位データの出力を行うものである。基準バッファ量とは、バッファに蓄積する一定のデータ量のことである。従って、バッファに蓄積されているデータ量を常に一定に保つことが可能である。バッファ量一定制御型は、基準バッファ量を下げることによりバッファに蓄積されているデータ量を減らすことが可能である。それにより、通信相手との遅延を少なくすることができるので、TV電話等のリアルタイムコミュニケーションに良く用いられる。短所としては、ネットワークのジッタの影響を受けやすく、データ到着間隔が開くような場合には、データ出力が途切れてしまうことである。
第二の基本形は、出力時間一定制御型である。一定時間経過するときに、1フレーム等の単位データの出力を行う。従って、データの到着状況によって、バッファに蓄積されているデータ量が大きく変動する。しかし、一般に、初期化時にバッファに蓄積されるデータ量を多く確保することにより、データアンダーフローを防止する。出力時間一定制御型は、出力タイミングが一定間隔となることから再生状態に優れるので、ビデオオンデマンド(VOD)等のストリーミングアプリケーションで良く用いられる。短所としては、バッファに蓄積されているデータ量が多くなり、遅延が大きくなってしまうことである。
実際には、それぞれの長所および短所に鑑み、これら二つのバッファ制御ポリシーを組み合わせて、新しい制御ポリシーとして運用する。例えば、通常は、バッファ量一定制御型で動作させておき、データの到着が著しく遅れる場合は、出力時間一定制御型に切替えて制御する。たとえば、前のデータを出力してから出力時間一定制御型の出力基準となる303ミリ秒経っても新しいデータが到着しない場合、データ出力を行う。また、別な例として、通常は、出力時間一定制御型で動作させておき、バッファに蓄積しているデータが一定量を割り込む場合は、バッファ量一定制御型で制御する。すなわち、データの到着遅れがしばらくの間続き、バッファに蓄積されたデータ量がバッファ量一定制御型の基準を下回ると、出力基準となる303ミリ秒を経過しても出力は行わず、次のデータが到着し、バッファ蓄積量が回復することにより再び出力を行う。
切替元デバイスのメディア送信部103は、上記のような方法でメディアデータの伝送を行う。また、切替元デバイスのバッファ制御部102は、あらかじめ決められたバッファ制御ポリシーに基づいてメディアバッファ1408への蓄積制御を行う。
次に、バッファ制御部102の動作(ステップS406)について、詳細に説明する。なお、このッファ制御部102は、切替元デバイスによって転送されたメディアデータを受け取った切替先候補デバイスのメディアバッファ1408が切替元デバイスのメディアバッファ1408と同じ状態になるように蓄積制御を行う。
切替先候補デバイスのバッファ制御部102は、切替元デバイスから送られたバッファ制御情報に基づいてメディアバッファ1408の制御を行う。図7は、本発明の実施の形態の高速デバイス切替システムで用いられるメディアデータ伝送の方法およびバッファ制御ポリシーによって分類されたバッファ制御情報を示す表である。
図7において、バッファ制御ポリシーは、あくまでも基本形であり、前述したように、実用上は、基本形を組み合わせることにより、新しいバッファ制御ポリシーを使用することができる。さらに、メディアデータ伝送も、あくまでも基本形であり、前述したように、実用上は最初にメディアバッファに一定量のメディアデータが蓄積されるまではバースト送信で行い、蓄積後は逐次送信に切替えるといった組合わせも可能である。ここでは、図7の表の3つのケースのバッファ制御情報とそれを用いたバッファ制御方法を説明する。
メディアデータ伝送がバースト送信で行われ、バッファ制御ポリシーが出力時間一定制御型で行われているとき、メディア制御情報は、基準出力時間間隔とバースト送信バッファ量の二つである。図5A、図5Bに示す例を用いて、バッファ制御部102の動作について説明する。ここで、基準出力時間間隔とは、メディアバッファに蓄積されている単位データを出力してから、次の単位データを出力するまでの時間のことである。図5Aでは、フレーム3のデコーダ1409への出力後、基準出力時間間隔が経過すると、フレーム4が出力されることになる。また、バースト送信バッファ量に基づいて、バースト送信されるデータの上限を推定し、メディアバッファ1408の論理バッファは作成される。上限のデータ量として、例えば、1フレームが圧縮されるときの最大符号量をバースト送信バッファ量に加算したものが推定される。
図5Bにおいて、切替先のメディア受信部1407は、切替元デバイスから前回バースト送信されたフレーム2からフレーム6を一方の論理バッファに蓄積し、もう一方の論理バッファに、今回バースト送信されるフレーム7からフレーム11を蓄積する。切替先候補デバイスのバッファ制御部102は、切替元デバイスからメディアデータ出力開始の通知(M7)を受信する(ステップS407)と、そのメッセージに付加されている切替元デバイスのメディアバッファのメディアデータ状況(フレーム3まで出力済み等)の情報に基づいてフレーム4までのフレーム(フレーム2からフレーム3)を廃棄する。さらに、バッファ制御部102は、内部のタイマを起動し、基準出力時間間隔が経過するとフレーム4を出力する。バッファ制御部102は、フレーム6の出力を終了すると、もう一方の論理バッファのフレーム7から順次フレーム出力を行う。続いて、切替元デバイスから次回のバースト送信が行われると、バッファ制御部102は、空いている方の論理バッファにメディアデータを蓄積する。このようにして、切替先候補デバイスのメディアバッファ1408は、切替元デバイスのメディアバッファ1408と完全に同じ状態になる。
一方、メディアデータ伝送が逐次送信で行われ、バッファ制御ポリシーがバッファ量一定制御型で行われているときは、メディア制御情報は、基準バッファ量のみとなる。図6Bに示す例を用いて、バッファ制御部102の動作について説明する。
切替先候補デバイスのメディアバッファ1408は、基準バッファ量に基づいて制御されており、フレーム12が入力された際に、メディアバッファ1408の蓄積データ量(フレーム6から12)が基準バッファ量を超えたことにより、フレーム6が廃棄される。切替先デバイスのバッファ制御部102は、蓄積データ量が今回逐次送信されるフレーム13を入力することにより基準バッファ量を超えてしまうならば、フレーム7を廃棄する。このようにして、切替先候補デバイスのメディアバッファ1108は、切替元のメディアバッファ1408と完全に同じ状態になる。ここで、切替先候補デバイスのバッファ制御部102は、切替元デバイスからメディアデータ出力開始の通知(M7)を受信する(ステップS407)と、フレームの廃棄を終了し、デコーダ1409への出力に切り替える。
メディアデータ伝送が逐次送信で行われ、バッファ制御ポリシーが出力時間一定制御型で行われているときは、メディア制御情報は、基準出力時間間隔と蓄積データ量の二つである。図6A、図6Bに示す例を用いて、バッファ制御部102の動作について説明する。ここで、蓄積データ量とは、メディア制御情報を作成する時点で、切替元デバイスのメディアバッファに蓄積されているデータ量(単位は、フレーム数等の単位データ)のことであり、図6Aでは、蓄積データ量は6フレームとなる。バッファ制御部102は、内部のタイマを起動し、基準出力時間間隔と蓄積データ量に基づいて、メディアバッファ1408の内部に蓄積されたフレームを廃棄または出力する時間を知ることができる。例えば、フレーム13は、基準出力時間間隔×蓄積データ量の経過後に廃棄される。このようにして、切替先候補デバイスのメディアバッファ1408は、切替元デバイスのメディアバッファ1408と完全に同じ状態になる。ここで、切替先候補デバイスのバッファ制御部102は、切替元デバイスからメディアデータ出力開始の通知(M7)を受信する(ステップS407)と、フレームの廃棄を終了し、デコーダ1409への出力に切り替える。
このように、切替先候補デバイスのバッファ制御部102は、切替先候補デバイスのメディアバッファ1408が切替元デバイスのメディアバッファ1408と同じ状態になるように蓄積制御を行う。
以上のように、本発明の実施の形態1の切替元デバイスは、切替先候補デバイスとセッションを確立する際に、メッセージに付加してバッファ制御情報を通知するので、切替先候補デバイスは、メディアバッファを切替元デバイスのものと同じ状態にすることができる。このため、切替先候補デバイスが切替先デバイスに確定したとき、通信遅延を増加させることなく、メディアデータの連続性を保持したデバイス切替えを実現することができる。
なお、本発明の実施の形態におけるメディア出力制御情報は、高速デバイス切替以外の目的にも使用可能である。
例えば、テレビ電話がかかってきた際に、着替え等により自分の様子を相手に知られるのが不都合な場合に、通信相手のテレビ電話端末とのセッション確立において、このメディア出力制御情報を送信する。これにより、通信相手のテレビ電話端末は、画像を受信してもその出力を禁止状態に指示されているので、当該テレビ電話端末に受信した画像が出力されることはない。その後、着替えが完了し不都合が解消された場合には、自己のテレビ電話端末から通信相手のテレビ電話端末にメディアデータ出力通知(M7)を送ることにより、即時に当該テレビ電話端末に自分の画像を出力することができる。
図8に、テレビ電話端末の構成を示す。テレビ電話端末は、通信相手のテレビ電話端末とテレビ電話セッションを確立するためのシグナリング部104と、画像・音声メディアを送受信するメディア送受信部805と、通信相手から受信した画像・音声メディアの出力を制御するメディア出力制御部806と、画像・音声メディアを出力するメディア出力部807とを備える。シグナリング部104は、メディアデータの出力が禁止状態であることを示すメディア出力制御情報を作成するメディア出力制御情報作成部1041と、シグナリングメッセージ作成部1042と、作成されたシグナリングメッセージにメディア出力制御情報を付加するメディア出力制御情報付加部1043と、シグナリングメッセージ送受信部1044とを含んでいる。
次に、テレビ電話端末の動作について、図9を用いて説明する。
シグナリングメッセージ作成部1042は、通信相手のテレビ電話端末とセッションを確立するためのシグナリングメッセージを作成する(ステップS901)。メディア出力制御情報作成部1041は、通信相手のテレビ電話端末が受信する画像データの出力を禁止状態にすることを示すメディア出力制御情報を作成する(ステップS902)。メディア出力制御情報付加部1043は、作成されたメディア出力制御情報をシグナリングメッセージのペイロードまたはヘッダに付加する(ステップS903)。シグナリングメッセージ送受信部1044は、前記シグナリングメッセージを通信相手のテレビ電話端末に送信する(ステップS904)。
一方、通信相手のテレビ電話端末は、シグナリングメッセージを受信した後、テレビ電話セッションを確立し、画像・音声メディアの送受信を開始する。しかしながら、通信相手のテレビ電話端末のメディア出力制御部は、シグナリングメッセージに付加されたメディア出力制御情報に従い、メディア出力部に対して画像データの出力を行わない。
以上のように、メディア出力制御情報は、高速デバイス切替以外の目的にも使用することができる。
(実施の形態2)
本発明の実施の形態2の高速デバイス切替システムの構成は、切替元デバイスが実施の形態1におけるものと異なる他は実施の形態1で示したものと同一である。
図10は、本実施の形態2の切替元デバイスの構成を示す図である。図10において、実施の形態1の切替元デバイスとは、プリファレンス情報保持部1001を有している点と高速デバイス切替部801の機能の一部が異なる。そのプリファレンス情報保持部1001は、あらかじめ設定されたユーザのプリファレンス情報を保持するものである。なお、動作の同じ構成要素に対しては、同一の番号を付している。
図11は、切替元デバイスと切替先デバイス群間でのメッセージシーケンスを示す図である。図11において、実施の形態1のメッセージシーケンスとは、ユーザが切替先候補デバイス表示要求(U1)を切替元デバイスであるMNへ指示する処理と、切替元デバイスであるMNから切替先候補デバイス(デバイス2、デバイスN)へメディアデータ伝送(D1‘)をする処理との順序が入れ替わっている点が異なる。
図12は、切替元デバイスの動作を示す流れ図である。
これら図11と図12を用いて、本実施の形態におけるデバイスの切替処理を以下に説明する。
図12において、実施の形態1の切替元デバイスと同様に、サービス発見部1411が、切替先デバイスからのサービス発見応答(M2)を受信し、高速デバイス切替部801に通知する。高速デバイス切替部801は、あらかじめ設定されたユーザのプリファレンス情報をプリファレンス情報保持部1001から読み出し、それに基づいてサービス提供可能であると応答したデバイスの絞り込みを行う。プリファレンス情報は、例えば、ディスプレイのサイズ等の詳細な情報である。そして、高速デバイス切替部801は、プリファレンス情報に基づいて切替先候補デバイスリストを生成し(ステップS1203)、内部に保持する。すでに保持している切替先候補デバイスリストが存在する際には、更新を行う。
次に、高速デバイス切替部801は、実施の形態1の切替元デバイスと同様に、バッファ制御情報を生成し(ステップS1204)メディア制御情報とバッファ制御情報とを含んだセッション確立要求(M3‘)を切替先候補デバイスへ送信する(ステップS1205)。それと同時に、高速デバイス切替部801は、メディアデータ転送準備をメディア送信部103へ通知する(ステップS1206)。
次に、高速デバイス切替部801は、切替先候補デバイスからセッション確立応答を受信すると、ユーザからの切替先候補デバイス表示要求(U1)の指示を待つ(ステップS1208)。この間に、ユーザから切替先候補デバイス表示要求(U1)の指示がなかった場合(ステップS1208、NO)には、再びサービス発見処理を行う(ステップS1201)。
一方、ユーザから切替先候補デバイス表示要求(U1)の指示があった場合(ステップS1208、YES)、高速デバイス切替部801は、メディア送信部103に対して、切替先候補デバイスへメディアデータの伝送(D1’)を開始するように通知する(ステップS1209)。そのメディアデータは、メディアバッファ1408に蓄積されているもの、およびメディア受信部1407CNから受信したものである。
メディア送信部103は、これを受けて、マルチキャストまたはブロードキャストにより、切替先デバイスリストに記された絞り込まれた切替先候補デバイスに対して、メディアデータの転送を開始する。
次に、高速デバイス切替部801は、内部に保持している切替先候補デバイスリストを、オペレーティングシステム1405を介して出力部1403に提示(U2)する(ステップS1210)。
その後の処理(ステップS1211〜S1213)は、実施の形態1における処理(ステップS311〜S313)と同一である。
以上のように、切替元デバイスの高速デバイス切替部801は、あらかじめ設定されたユーザのプレファレンス情報に基づいて切替先候補デバイスを絞り込むので、実施の形態1の方法に比べ、メディアデータを受信する切替先候補デバイスの数を減少させることができる。これにより、切替先候補デバイスがメディアデータの受信で使用する消費電力量と、切替先候補デバイスがメディアデータの受信で使用するネットワークリソースを、切替先候補デバイスが減少した分だけ総量として削減することができる。さらに、ユーザは自己の好みに適合した切替先候補デバイスの中からのみ選択すればよくなるとともに、画面をスクロール等する手間も省けて選択が容易になる。
また、切替元デバイスの高速デバイス切替部801は、ユーザの切替先候補デバイスリスト要求(U1)が行われた後に、メディア送信部103を通じてCNから受信したメディアデータを転送し始めることになる。これにより、高速デバイス切替部801は、メディアデータの転送を開始してからユーザの切替先デバイス選択までの時間を短縮できるので、切替が行われる以前のメディアデータの転送に要する消費電力を削減することが可能となる。
(実施の形態3)
本発明の実施の形態3の高速デバイス切替システムの構成は、図19に示した実施の形態1のものと同一であるが、MN1301が本発明に係る実施の形態3の切替元デバイスである。本実施の形態3の切替元デバイスは、サービス発見および切替先候補デバイスとのセッション確立とメディア処理準備を完了した後、切替先候補デバイスの状態を把握し、切替先候補デバイスリストを更新する点が実施の形態1のものと異なる。
図14は、本実施の形態3の切替元デバイスの構成を示す図である。なお、図1に示した切替元デバイスと同じ構成要素については、同一の番号を付している。
図14において、本実施の形態3の切替元デバイスは、PANを構成しているデバイスの状況を検知するポーリング部2001と、切替候補デバイスの存続確認を行う候補デバイス確認部2002および切替先候補デバイスリストの更新を行うリスト管理部2003を含む高速デバイス切替部101とを具備している。
このポーリング部2001は、PANを構成しているデバイスに対してMACレイヤでメッセージを送り、一定時間内に応答が無い場合には、応答しなかったデバイスはPANから離脱(コネクションの喪失)したものとみなす。ポーリング部2001は、候補デバイス確認部2002と直結し、高速に情報を交換することができる。
候補デバイス確認部2002は、ポーリング部2001もしくはシグナリング部104から通知される情報に基づいて、切替先候補デバイスの状況の変化を検出する。切替先候補デバイスが利用不能もしくは利用不可であることが検出されるとリスト管理部2003に通知する。
リスト管理部2003は、切替先候補デバイスリストの管理を行い、当該リストが常に最新の状況になっているように更新を行う。
本実施の形態の高速デバイス切替システムの動作の説明をする前に、サービス発見によって得られた切替先候補デバイスが使用不能もしくは使用不可となる要因について簡単に説明する。図19に示されるように、PAN1305は、複数のデバイスから構成されるアドホックネットワークである。従って、例えばMN1301が移動したり、デバイス群1304のあるデバイスが移動したりすることにより、PANの無線電波は届かなくなり切替先デバイスはもはやPAN1305を構成するデバイスとなり得なくなる。これが一つ目の要因である。
また、デバイス群1304のデバイスは、バッテリ駆動型の小デバイスである場合が多く、電力消費を防ぐために、通常、スリープモードへ自動的な切替を行う。このため、サービス発見後において、切替先候補デバイスがスリープモードに入り使用不能となる。これが二つ目の要因である。
また、切替先候補デバイスにおいて、第三者からサービス発見要求があり、第三者の優先度が高い場合、当該第三者に対してサービスの提供を開始してしまう。このとき、切替先候補デバイスのリソース状況は使用中に変化し、切替元デバイスに対してサービス提供できなくなり、当該切替先デバイスは使用不可となる。これが三つ目の要因である。
本実施の形態の高速デバイス切替システムでは、切替先候補デバイスの状況を監視することによって、上記3つの要因により使用不能もしくは使用不可となった切替先候補デバイスを切替先候補デバイスリストから削除することができる。これにより、一度サービス発見を行うだけで以後周期的にサービス発見を行う必要がなくなる。もしくは、サービス発見の周期を長くすることが可能となる。
次に、本実施の形態の高速デバイス切替システムの動作を説明する。実施の形態1で示した高速デバイス切替システムの動作とは、切替元デバイスの高速デバイス切替部101が、ユーザからの切替先候補デバイスリスト表示要求(U1)の待ち受けに入る(ステップS309)と同時に、バックグラウンドで切替先候補デバイスの監視を開始する点が異なる。
図21は、実施の形態3の切替元デバイスが、バックグラウンドで切替先候補デバイスの状態監視を行い、切替先候補デバイスリストの更新を行う動作を示す図である。
図21において、高速デバイス切替部101は、候補デバイス確認部2002を起動し、候補デバイス確認部2002が、ポーリング部2001に切替先候補デバイスの接続状況の変化を通知するように要請する。ポーリング部2001は、PANを構成するデバイスに対して、定期的にMACレイヤでメッセージを送り、一定時間内にデバイスから応答が得られるか否かを検出(いわゆるポーリング)する(ステップS2101)。
ポーリング部2001は、デバイスから応答を受取ると(ステップS2102)、前回のポーリング結果と比較して、デバイスとの接続状況に変化があった場合、変化デバイス情報を候補デバイス確認部2002へ通知する(ステップS2103)。変化デバイス情報には、新しくPANに加入したデバイス情報や、PANから離脱したデバイス情報が含まれる。
候補デバイス確認部2002は、変化デバイス情報に基づいて、切替先候補デバイスがPANから離脱しているか否かを確認する(ステップS2104)。もし、切替先候補デバイスがPANから離脱している場合は、当該切替先候補デバイスの情報をリスト管理部2003に通知する(ステップS2105)。リスト管理部2003は、これを受けて、切替先候補デバイスリストから、当該切替先候補デバイスを削除する(ステップS2106)。これにより、切替先候補デバイスリストは、最新の状況に更新される。
次に、ユーザから切替先候補デバイスリスト表示要求(U1)がなされた場合、所定の時間を経過した場合、あるいは候補デバイス確認部2002において新しくPANに加入したデバイスが一定数以上となった場合に、高速デバイス切替部101は待機状態を終了する(ステップS2107:Yes)。また、それに伴い候補デバイス確認部2002は、ポーリング部2001に変化デバイス情報を候補デバイス確認部2002に通知することを終了するように要請する(ステップS2108)。これにより、バックグラウンドで切替先候補デバイスの状態監視を行い、切替先候補デバイスリストの更新を行う動作が終了する。
一方、高速デバイス切替部101が待機状態を継続(ステップS2107:No)する場合、ステップS2102へ戻り、ポーリング部2001はポーリングを繰り返す。
以上のバックグラウンド動作により、切替先候補デバイスリストは最新の状態に保たれるので、高速デバイス切り替え部101がユーザから切替先候補デバイスリスト表示要求(U1)を待ち受ける(ステップS309)期間を大幅に延長できる。その結果、実施の形態1に比べ、ユーザが実際にシームレスな高速デバイス切替を行うことのできる機会を大幅に増やすことができる。
次に、前述した第三番目の要因により、サービス発見によって得られた切替先候補デバイスが使用不可となることに対する本実施の形態の高速デバイス切替システムの動作について、以下に詳細に説明する。
切替先候補デバイスは、切替元デバイスに対してセッション確立・メディア処理準備応答(M4)を行った後に、第三者からサービス発見要求があった場合、通常は、切替元デバイスとセッション確立し、メディア処理準備を完了していることにより、第三者に対してサービスの提供が不可である旨を応答する。しかしながら、第三者のサービス提供を受ける優先度が高い場合、当該切替先候補デバイスは、サービス提供が不可となったことを切替元デバイスに通知する。具体的には、切替先候補デバイスの高速デバイス切替部が、シグナリング部を通じて、セッション切断要求(M5)を切替元デバイスに送る。切替元デバイスのシグナリング部101が、切替先候補デバイスによって送信されたセッション切断要求(M5)を受信すると、高速デバイス切替部101は、当該切替先候補デバイスがサービス提供不可となった旨を変化デバイス情報として候補デバイス確認部2002へ通知する(ステップS2103)。当該切替先候補デバイスがサービス提供不可となっているため、当該切替先候補デバイスの情報をリスト管理部2003に通知する(ステップS2105)。以降の動作は、図15に示したものと同様である。
以上の説明のように、切替先候補デバイスにおいて、第三者からサービス発見要求があり、当該第三者に対してサービスの提供を開始する場合においても、切替元デバイスの切替先候補デバイスリストから、当該切替先候補デバイスを削除することにより、切替先候補デバイスリストは、最新の状況に更新される。これにより、ユーザから切替先候補デバイスリスト表示要求(U1)を待ち受ける期間を大幅に延長することができる。その結果、ユーザがデバイス切替のアクションを起こし、実際にシームレスな高速デバイス切替を行うことができる確率を大幅に向上することができる。
また、本実施の形態によれば、切替元デバイスの候補デバイス確認部は、新しくPANに加入したデバイスを逐一検出することができるので、新規デバイスの数量によって、サービス発見の周期を適切に変更することもできる。これにより、切替元デバイスのサービス発見部は、新規デバイスを切替先候補デバイスとすることも可能となる。