(57)【特許請求の範囲】
【請求項１】
フレーム間予測符号化されたデータをストリーム伝送するサーバであって、
単独フレームで復号可能なキーフレームに対してそのキーフレームに続く少なくとも１つの差分フレームを追加し一の送信単位のデータとすると共に、フレーム番号を含む前記一の送信単位のデータに関する情報を付与したバッファ用キーフレームを生成するバッファ用キーフレーム生成部と、
あらかじめ所定の周期に設定された前記キーフレームの送信タイミングに、その送信タイミングに送信されるべきキーフレームを用いて生成されたバッファ用キーフレームを送信し、次のキーフレームの送信タイミングまでにある前記差分フレームの送信タイミングに任意のフレームを送信するフレーム送信部と、
を備えるストリーム伝送サーバ。
【請求項２】
前記フレーム送信部は、前記差分フレームの送信タイミングにおいて、その差分フレームの前後のキーフレームの間にある差分フレームのうち未送信の差分フレームを送信し、前後のキーフレームの間にある全ての差分データが送信済みの場合には任意のフレームを送信する請求項１に記載のストリーム伝送サーバ。
【請求項３】
フレーム間予測符号化された動画データと音声データとからなるデータをストリーム伝送するサーバであって、
単独フレームで復号可能な動画データのキーフレームに対してそのキーフレームに対応する音声フレームおよび当該音声フレームに続く少なくとも１つの音声フレームを追加し一の送信単位のデータとすると共に、フレーム番号を含む前記一の送信単位のデータに関する情報を付与したバッファ用キーフレームを生成するバッファ用キーフレーム生成部と、
あらかじめ所定の周期に設定された前記キーフレームの送信タイミングに、その送信タイミングに送信されるべきキーフレームを用いて生成されたバッファ用キーフレームを送信し、次のキーフレームの送信タイミングまでにある前記差分フレームの送信タイミングに、その送信タイミングに送信されるべき差分フレームおよび任意の音声フレームを送信するフレーム送信部と、
を備えるストリーム伝送サーバ。
【請求項４】
請求項１または２に記載のストリーム伝送サーバから送信されるストリームデータを再生する端末であって、
前記ストリーム伝送サーバから送信されるバッファ用キーフレームおよび差分フレームを受信するフレーム受信部と、
受信したフレームを記憶するバッファと、
前記バッファに記憶されたフレームを読み出してストリームデータを再生する再生部と、
再生済みのフレームのフレーム番号を記憶する再生済みフレーム番号記憶部と、
前記バッファから読み出したフレームのフレーム番号が前記再生済みフレーム番号記憶部に記憶されたフレーム番号と一致する場合に、そのフレームを再生しないで削除する削除部と、
を備える端末。
【請求項５】
ストリームデータを再生する端末を他の端末に切り替える切替要求を受信する切替要求受信部を備え、
前記制御部は、前記切替要求を受信したときに、前記バッファに格納されたデータの中から、前記切替要求を受信する直前に再生されたバッファ用キーフレームを先頭として前記バッファに記憶されたデータを読み出し、読み出したデータを前記他の端末に送信する請求項４に記載の端末。
【請求項６】
フレーム間予測符号化されたデータをストリーム伝送するストリーム伝送サーバと、前記ストリーム伝送サーバから伝送されたストリームデータを再生する第１の端末と、前記第１の端末からストリームデータの転送を受けて前記ストリームデータを再生する第２の端末と、を備え、
前記ストリーム伝送サーバは、
単独フレームで復号可能なキーフレームに対してそのキーフレームに続く少なくとも１つの差分フレームを追加し一の送信単位のデータとすると共に、フレーム番号を含む前記一の送信単位のデータに関する情報を付与したバッファ用キーフレームを生成するバッファ用キーフレーム生成部と、
あらかじめ所定の周期に設定された前記キーフレームの送信タイミングに、その送信タイミングに送信されるべきキーフレームを用いて生成されたバッファ用キーフレームを送信し、次のキーフレームの送信タイミングまでにある前記差分フレームの送信タイミングに任意のフレームを送信するフレーム送信部と、を備え、
前記第１の端末は、
前記ストリーム伝送サーバから送信されるバッファ用キーフレームおよび差分フレームを受信するフレーム受信部と、
受信したフレームを記憶するバッファと、
前記バッファに記憶されたフレームを読み出してストリームデータを再生する再生部と、
再生済みのフレームのフレーム番号を記憶する再生済みフレーム番号記憶部と、
前記バッファから読み出したフレームのフレーム番号が前記再生済みフレーム番号記憶部に記憶されたフレーム番号と一致する場合に、そのフレームを再生しないで削除する削除部と、を備え、
前記制御部は、前記切替要求を受信したときに、前記バッファに格納されたデータの中から、前記切替要求を受信する直前に再生されたバッファ用キーフレームを先頭として前記バッファに記憶されたデータを読み出し、読み出したデータを前記他の端末に送信するストリーム伝送システム。
【請求項７】
フレーム間予測符号化されたデータをストリーム伝送するサーバが、単独フレームで復号可能なキーフレームに対してそのキーフレームに続く少なくとも１つの差分フレームを追加し一の送信単位のデータとすると共に、フレーム番号を含む前記一の送信単位のデータに関する情報を付与したバッファ用キーフレームを生成するステップと、
あらかじめ所定の周期に設定された前記キーフレームの送信タイミングに、その送信タイミングに送信されるべきキーフレームを用いて生成されたバッファ用キーフレームを送信するステップと、
次のキーフレームの送信タイミングまでにある前記差分フレームの送信タイミングに任意のフレームを送信するステップと、
を備えるストリーム伝送方法。
【請求項８】
前記ストリーム伝送サーバから送信されるバッファ用キーフレームおよび差分フレームを受信するステップと、
受信したバッファ用キーフレームおよび差分フレームをバッファに記憶するステップと、
前記バッファに記憶されたフレームを読み出してストリームデータを再生するステップと、
再生済みのフレームのフレーム番号を再生済みフレーム番号記憶部に記憶するステップと、
前記バッファから読み出したフレームのフレーム番号が前記再生済みフレーム番号記憶部に記憶されたフレーム番号と一致する場合に、そのフレームを再生しないで削除するステップと、
を備える請求項７に記載のストリーム伝送方法。
【請求項９】
ストリームデータを再生する端末を他の端末に切り替える切替要求を受信するステップと、
前記切替要求を受信したときに、前記バッファに格納されたデータの中から、前記切替要求を受信する直前に再生されたバッファ用キーフレームを先頭として前記バッファに記憶されたデータを読み出し、読み出したデータを前記他の端末に送信するステップと、
を備える請求項８に記載のストリーム伝送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストリーム伝送方式に関し、特に、ストリームデータを再生する端末を、ストリームデータを受信している端末から別の端末に切り替える方式に関する。
【背景技術】
【０００２】
コンピュータネットワークの技術開発による高速化、低コスト化に伴い、ネットワークにおける映像伝送が普及しつつある。映像伝送を受信する端末も多様化が進み、携帯電話やパーソナルコンピュータに加えて、インターネット接続機能が搭載された家電機器、すなわちテレビやＤＶＲ（Ｄｉｇｉｔａｌ  Ｖｉｄｅｏ  Ｒｅｃｏｄｅｒ）が開発されている。今後は、インターネット上を伝送された映像のストリームデータを家電機器によって受信し、表示や記録を行うことが予想される。
【０００３】
このように、多様化した機器がそれぞれネットワークから受信した映像を表示することが可能な環境では、ユーザの状況に適した機器で映像を表示することができ、ユーザが映像を視聴できる場面を拡げていくことができる。例えば、ユーザが、室内のテレビ受像機でインターネットの映像コンテンツ番組を視聴していたとする。このユーザが外出するときに、表示する機器を携帯電話に切り替えれば、外でも映像コンテンツ番組の続きを楽しむことができる。
【０００４】
このテレビ受像機と携帯電話で表示機器を切り替える例では、テレビ受像機が受信していた映像コンテンツ番組の受信セッションを携帯電話に切り替える。このように異なる複数の機器の間でセッションを切り替えることをセッションモビリティと呼ぶ。なお、上記では、映像伝送のセッションモビリティの例を挙げたが、セッションモビリティは、音声や他のデータを伝送するセッションにも適用できる。
【０００５】
セッションモビリティに求められる性質としては、ａ）高速性、ｂ）継続性の２つが挙げられる。
【０００６】
高速性は、表示機器の切替えをできるだけ高速に行うことである。高速性は、ユーザが切替えを指示してから、切替先の機器でセッションを利用するアプリケーションが動作するまでの時間の長短によって表される。例えば、映像伝送の場合、切替指示から切替先の機器で映像が表示されるまでの時間である。
【０００７】
継続性は、切替前と切替後とで、コンテンツが継続していることである。すなわち、映像コンテンツ番組の途中で、映像コンテンツ番組を表示する機器を他の機器に切り替えたとき、切替先の機器は切替を指示したときに切替元の機器で表示されていた場面の続きを表示する必要がある。
【０００８】
特許文献１は、セッションモビリティを実現する方式として、携帯端末に蓄積したメディアを近距離無線経由で外部装置に出力する手順を開示している。具体的には、携帯端末は、外部装置を探索し、探索された外部装置との接続を確立し、メディアを転送する。
【特許文献１】特開２００２−３６８８４６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
ストリーム伝送では、送信元から定期的にパケットが出力される。一般にネットワークを通じたパケット通信では、定期的に出力されたパケットの到着間隔が変動するいわゆる「ジッタ」という現象が生じる。受信したストリームデータを再生する際には、一定間隔で動画データや音声データが必要になるが、ジッタが発生すると再生が途切れてしまう。これを防止するために、ストリーム伝送においては、データの再生を開始する前に、受信したデータをバッファに格納するバッファリング処理を行う。端末の切替えを行う際にも、バッファリング処理が行われる。従って、ストリームデータのダウンロード開始時およびストリームデータの再生端末の切替え時において、データの再生を開始するまでに時間を要していた。
【００１０】
上記した特許文献１は、ユーザからスタート操作がなされる前に外部装置を探索することで、外部装置の探索に要する時間を短縮する方法を提案しているが、バッファリングに要する時間については何ら考慮していない。
【００１１】
本発明は、上記背景に鑑み、端末切替え時の初期バッファリング時間を短縮して、切替えを円滑に行えるストリーム伝送方法を提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明のストリーム伝送サーバは、フレーム間予測符号化されたデータをストリーム伝送するサーバであって、単独フレームで復号可能なキーフレームに対してそのキーフレームに続く少なくとも１つの差分フレームを追加し一の送信単位のデータとすると共に、フレーム番号を含む前記一の送信単位のデータに関する情報を付与したバッファ用キーフレームを生成するバッファ用キーフレーム生成部と、あらかじめ所定の周期に設定された前記キーフレームの送信タイミングに、その送信タイミングに送信されるべきキーフレームを用いて生成されたバッファ用キーフレームを送信し、次のキーフレームの送信タイミングまでにある前記差分フレームの送信タイミングに任意のフレームを送信するフレーム送信部とを備える。
【００１３】
このようにキーフレームの送信タイミングに、キーフレームに加えてキーフレームに続く差分フレームを一の送信単位のデータとして送信することにより、バッファリングに要する時間を短縮することができる。また、所定の周期で現れるキーフレームに対して差分フレームを追加する処理を行っているので、ストリームデータを受信した端末が、ストリームデータの途中からストリームデータを他の端末に転送する場合にも、他の端末においてバッファリングに要する時間を短縮できる。
【００１４】
本発明のストリーム伝送サーバにおいて、前記フレーム送信部は、前記差分フレームの送信タイミングにおいて、その差分フレームの前後のキーフレームの間にある差分フレームのうち未送信の差分フレームを送信し、前後のキーフレームの間にあるすべての差分フレームが送信済みの場合には任意のフレームを送信してもよい。
【００１５】
このように前後のキーフレームの間にある未送信の差分フレームを送信することにより、ストリームデータを受信した端末は、ストリームデータを適切に再生できる。また、前後のキーフレームの間にあるすべての差分フレームが送信済みの場合に、任意のフレームを送信して送信タイミングを保持することにより、受信側の端末は、受信したフレームの順番を把握できる。これにより、受信側の端末は、受信データをデコードしなくてもフレームの受信順番に基づいてバッファ用キーフレームを特定できる。なお、任意のフレームは、キーフレームであってもよいし、差分フレームでもよい。また、フレーム送信部は、任意のフレームとして、送信済みのフレームを再度送信してもよい。
【００１６】
本発明の別の態様のストリーム伝送サーバは、フレーム間予測符号化された動画データと音声データとからなるデータをストリーム伝送するサーバであって、単独フレームで復号可能な動画データのキーフレームに対してそのキーフレームに対応する音声フレームおよび当該音声フレームに続く少なくとも１つの音声フレームを追加し一の送信単位のデータとすると共に、フレーム番号を含む前記一の送信単位のデータに関する情報を付与したバッファ用キーフレームを生成するバッファ用キーフレーム生成部と、あらかじめ所定の周期に設定された前記キーフレームの送信タイミングに、その送信タイミングに送信されるべきキーフレームを用いて生成されたバッファ用キーフレームを送信し、次のキーフレームの送信タイミングまでにある前記差分フレームの送信タイミングに、その送信タイミングに送信されるべき差分フレームおよび任意の音声フレームを送信するフレーム送信部とを備える。
【００１７】
このように動画データのキーフレームの送信タイミングに、キーフレームおよびそれに対応する音声フレームに加えてその音声フレームに続く音声フレームを一の送信単位のデータとして送信することにより、音声フレームのバッファリングに要する時間を短縮することができる。また、所定の周期で現れるキーフレームに対して音声フレームを追加する処理を行っているので、ストリームデータを受信した端末が、ストリームデータの途中からストリームデータを他の端末に転送する場合にも、他の端末において音声フレームのバッファリングに要する時間を短縮できる。
【００１８】
本発明の端末は、上記のストリーム伝送サーバから送信されるストリームデータを再生する端末であって、前記ストリーム伝送サーバから送信されるバッファ用キーフレームおよび差分フレームを受信するフレーム受信部と、受信したフレームを記憶するバッファと、前記バッファに記憶されたフレームを読み出してストリームデータを再生する再生部と、再生済みのフレームのフレーム番号を記憶する再生済みフレーム番号記憶部と、前記バッファから読み出したフレームのフレーム番号が前記再生済みフレーム番号記憶部に記憶されたフレーム番号と一致する場合に、そのフレームを再生しないで削除する削除部とを備える。
【００１９】
この構成により、バッファから再生済みのフレームを読み出した場合には再生しないで削除するので、同じフレームを重複して再生することがなく、ストリームデータを適切に再生できる。
【００２０】
本発明の端末は、ストリームデータを再生する端末を他の端末に切り替える切替要求を受信する切替要求受信部を備え、前記制御部は、前記切替要求を受信したときに、前記バッファに格納されたデータの中から、前記切替要求を受信する直前に再生されたバッファ用キーフレームを先頭として前記バッファに記憶されたデータを読み出し、読み出したデータを前記他の端末に送信してもよい。
【００２１】
このように切替要求を受信する直前に再生されたバッファ用キーフレームを先頭とするストリームデータを切替先の他の端末に送信することにより、他の端末においてバッファリングに要する時間を短縮できる。これにより、ストリームデータを再生する端末の切替えを迅速に行うことができる。
【００２２】
本発明のストリーム伝送システムは、フレーム間予測符号化されたデータをストリーム伝送するストリーム伝送サーバと、前記ストリーム伝送サーバから伝送されたストリームデータを再生する第１の端末と、前記第１の端末からストリームデータの転送を受けて前記ストリームデータを再生する第２の端末とを備え、前記ストリーム伝送サーバは、単独フレームで復号可能なキーフレームに対してそのキーフレームに続く少なくとも１つの差分フレームを追加し一の送信単位のデータとすると共に、フレーム番号を含む前記一の送信単位のデータに関する情報を付与したバッファ用キーフレームを生成するバッファ用キーフレーム生成部と、あらかじめ所定の周期に設定された前記キーフレームの送信タイミングに、その送信タイミングに送信されるべきキーフレームを用いて生成されたバッファ用キーフレームを送信し、次のキーフレームの送信タイミングまでにある前記差分フレームの送信タイミングに任意のフレームを送信するフレーム送信部とを備え、前記第１の端末は、前記ストリーム伝送サーバから送信されるバッファ用キーフレームおよび差分フレームを受信するフレーム受信部と、受信したフレームを記憶するバッファと、前記バッファに記憶されたフレームを読み出してストリームデータを再生する再生部と、再生済みのフレームのフレーム番号を記憶する再生済みフレーム番号記憶部と、前記バッファから読み出したフレームのフレーム番号が前記再生済みフレーム番号記憶部に記憶されたフレーム番号と一致する場合に、そのフレームを再生しないで削除する削除部とを備え、前記制御部は、前記切替要求を受信したときに、前記バッファに格納されたデータの中から、前記切替要求を受信する直前に再生されたバッファ用キーフレームを先頭として前記バッファに記憶されたデータを読み出し、読み出したデータを前記他の端末に送信する。
【００２３】
この構成により、上記したストリーム伝送サーバの発明と同様に、第１の端末および第２の端末においてストリームデータのバッファリングに要する時間を短縮することができる。
【００２４】
本発明のストリーム伝送方法は、フレーム間予測符号化されたデータをストリーム伝送するサーバが、単独フレームで復号可能なキーフレームに対してそのキーフレームに続く少なくとも１つの差分フレームを追加し一の送信単位のデータとすると共に、フレーム番号を含む前記一の送信単位のデータに関する情報を付与したバッファ用キーフレームを生成するステップと、あらかじめ所定の周期に設定された前記キーフレームの送信タイミングに、その送信タイミングに送信されるべきキーフレームを用いて生成されたバッファ用キーフレームを送信するステップと、次のキーフレームの送信タイミングまでにある前記差分フレームの送信タイミングに任意のフレームを送信するステップとを備える。
【００２５】
この構成により、上記したストリーム伝送サーバの発明と同様に、ストリームデータを受信する端末においてストリームデータのバッファリングに要する時間を短縮することができる。また、ストリームデータを受信した端末が、ストリームデータの途中からストリームデータを他の端末に転送する場合にも、他の端末においてバッファリングに要する時間を短縮できる。
【００２６】
本発明のストリーム伝送方法は、前記ストリーム伝送サーバから送信されるバッファ用キーフレームおよび差分フレームを受信するステップと、受信したバッファ用キーフレームおよび差分フレームをバッファに記憶するステップと、前記バッファに記憶されたフレームを読み出してストリームデータを再生するステップと、再生済みのフレームのフレーム番号を再生済みフレーム番号記憶部に記憶するステップと、前記バッファから読み出したフレームのフレーム番号が前記再生済みフレーム番号記憶部に記憶されたフレーム番号と一致する場合に、そのフレームを再生しないで削除するステップとを備えてもよい。
【００２７】
この構成により、バッファから再生済みのフレームを読み出した場合には再生しないで削除するので、同じフレームを重複して再生することがなく、ストリームデータを適切に再生できる。
【００２８】
本発明のストリーム伝送方法は、ストリームデータを再生する端末を他の端末に切り替える切替要求を受信するステップと、前記切替要求を受信したときに、前記バッファに格納されたデータの中から、前記切替要求を受信する直前に再生されたバッファ用キーフレームを先頭として前記バッファに記憶されたデータを読み出し、読み出したデータを前記他の端末に送信するステップとを備えてもよい。
【００２９】
この構成により、他の端末においてバッファリングに要する時間を短縮でき、ストリームデータを再生する端末の切替えを迅速に行うことができる。
【発明の効果】
【００３０】
本発明は、キーフレームの送信タイミングに、所定の周期で現れるキーフレームに対してキーフレームに続く差分フレームを一の送信単位のデータとして送信することにより、バッファリングに要する時間を短縮することができると共に、ストリームデータを受信した端末がストリームデータを他の端末に転送する場合に、他の端末においてバッファリングに要する時間を短縮できるというすぐれた効果を有する。
【発明を実施するための最良の形態】
【００３１】
以下、本発明の実施の形態のストリーム伝送システムについて、図面を参照しながら説明する。
（第１の実施の形態）
図１は、第１の実施の形態のストリーム伝送システムの構成を示す図である。図１に示すように、ストリーム伝送システムは、サーバ１０１と、切替元端末１０２ａと、切替先端末１０２ｂとを有している。
【００３２】
サーバ１０１は、定期的にフレームを送信することによってストリームデータを伝送する。ストリームデータを構成するフレームは、動画フレームと音声フレームとからなる。本実施の形態では、動画フレームおよび音声フレームをフレーム毎に圧縮するコーデック（Ｃｏｄｅｃ）を利用している。このようなコーデックとしては、例えば、動画におけるＭＰＥＧ−２またはＭＰＥＧ−４（Ｈ．２６４を含む）、音声におけるＭＰＥＧ−２／ＭＰＥＧ−４  ＡＡＣ（Ａｄｖａｎｃｅｄ  Ａｕｄｉｏ  Ｃｏｄｉｎｇ）やＭＰ３（ＭＰＥＧ−１  Ａｕｄｉｏ  Ｌａｙｅｒ−３）がある。フレーム間予測を用いるコーデックでは、ピクチャをフレーム単位で取り扱う場合のピクチャの種類として、フレーム内圧縮だけで生成する独立フレーム（Ｉフレーム）とフレーム間圧縮で生成する差分フレーム（ＰフレームまたはＢフレーム）とがある。差分フレームは、独立フレームとの差分によってフレームの情報を表しており、独立フレームなしでは再生できない。従って、動画データの再生を開始するには、独立フレームから再生を開始する必要がある。以下、Ｉフレームを独立フレーム、Ｐフレーム、Ｂフレームを差分フレームという。独立フレームは、所定の周期で送信される。独立フレームの送信周期は、例えば規格によって定められており、一般には、１５フレームに１フレームの割合である。
【００３３】
サーバ１０１は、動画格納部１１１と、音声格納部１１２と、多重部１１３と、出力部１１４と、制御部１１５と、送信データ生成部１１６とを有している。動画格納部１１１は、サーバ１０１が伝送する動画データを蓄積する。音声格納部１１２は、サーバ１０１が伝送する音声データを蓄積する。動画格納部１１１および音声格納部１１２は、例えば、記憶装置によって構成される。
【００３４】
送信データ生成部１１６は、動画格納部１１１に記憶された動画データと音声格納部１１２に記憶された音声データを読み出し、送信データを生成する。送信データ生成部１１６は、独立フレームの送信タイミングにおいて、その送信タイミングに送信すべき独立フレームとそれに続く例えば２つの差分フレームを読み出して送信データを生成する。独立フレームに例えば２つの差分フレームを追加したフレームは、「バッファ用キーフレーム」に該当する。独立フレーム以外の差分フレームの送信タイミングにおいては、前回読み出したフレームに続くフレームを読み出して送信データを生成する。
【００３５】
多重部１１３は、送信データ生成部１１６にて生成された送信データを多重化して多重化ストリームを生成する。出力部１１４は、多重部１１３によって生成された多重化ストリームを切替元端末１０２ａに対して出力する。制御部１１５は、サーバ１０１の動作制御を行う。
【００３６】
切替元端末１０２ａは、入力部１２１ａと、制御部１２２ａと、バッファ１２３ａと、再生部１２４ａと、切替出力部１２５ａと、重複削除部１２６とを有する。入力部１２１ａは、サーバ１０１から送信された制御信号、動画データおよび音声データ等を受信する。入力部１２１ａは、ＴＣＰ／ＩＰなどのネットワークのプロトコルスタックに該当する。制御部１２２ａは、他の端末の呼制御や伝送レートの変更など通信に関する端末の制御を行う。制御部１２２ａは、アプリケーションソフトウェアに該当する。
【００３７】
バッファ１２３ａは、入力部１２１ａにて受信した動画データおよび音声データを一時的に格納する。バッファ１２３ａは、例えば、メモリによって構成される。再生部１２４ａは、バッファ１２３ａに格納されたデータを読み出し、読み出したデータを再生する。再生部１２４ａは、例えば、ディスプレイ用のメモリ、動画データおよび音声データのデコーダ、動画の表示プログラム、グラフィック表示や音声再生用のハードウェア、ディスプレイやスピーカーによって構成される。
【００３８】
切替出力部１２５ａは、切替先端末１０２ｂとの接続を行う。切替出力部１２５ａは、入力部１２１ａと同様にプロトコルスタックとして実現される。入力部１２１ａと切替出力部１２５ａは、接続先のアドレスが異なる。制御部１２２ａは、設定の違いによって、入力部１２１ａと切替出力部１２５ａを識別することができる。
【００３９】
重複削除部１２６は、再生済みの動画データおよび音声データを重複して再生しないように、バッファ１２３ａから再生済みの動画データおよび音声データを読み出した場合に削除する機能を有する。重複削除部１２６ａは、再生済みフレーム番号記憶部１２７ａを有し、再生済みの動画フレームおよび音声フレームのフレーム番号を記憶する。重複削除部１２６は、バッファ１２３ａから動画フレームおよび音声フレームのフレームを読み出したときに、読み出した動画フレームおよび音声フレームのフレーム番号が再生済みフレーム番号記憶部１２７ａに記憶されているか否かを判定する。読み出した動画フレームおよび音声フレームのフレーム番号が再生済みフレーム番号記憶部１２７ａに記憶されている場合には、重複削除部１２６は、バッファ１２３ａから読み出した動画フレームおよび音声フレームを削除する。重複削除部１２６は、読み出した動画フレームおよび音声フレームのフレーム番号が再生済みフレーム番号記憶部１２７ａに記憶されていない場合には、バッファ１２３ａから読み出した動画フレームおよび音声フレームのフレーム番号を再生済みフレーム番号記憶部１２７ａに記憶する。本実施の形態では、バッファ１２３ａから動画フレームおよび音声フレームを読み出した時点で再生済みフレーム番号記憶部１２７ａにフレーム番号を記憶する構成を採用しているが、実際に再生が完了した時点で再生済みフレーム番号記憶部１２７ａにフレーム番号を記憶する構成とすることも可能である。
【００４０】
切替先端末１０２ｂの基本的な構成は、切替元端末１０２ａと同じである。切替先端末１０２ｂは、切替出力部１２５ａを有していない一方で、切替入力部１２５ｂを有している点が切替元端末１０２ａと異なる。切替入力部１２５ｂは、端末切替時に切替元端末１０２ａから出力されたストリームデータを受信する。切替先端末１０２ｂは、切替入力部１２５ｂからの入力を、サーバ１０１からの入力と同様にバッファ１２３ｂに格納し、バッファ１２３ｂに格納されたデータを再生部１２４ｂによって再生する。
【００４１】
図２は、本実施の形態のストリーム伝送システムの動作における動画データおよび音声データの出力と再生のタイミングを示す図である。時間軸２１２は、時間の流れを示す。図２では、動画フレームおよび音声フレームを長方形で表し、長方形の中にフレーム番号を示す数字を記載している。また、動画データには、フレーム番号の前に「Ｖ」（Ｖｉｄｅｏの略）、音声データにはフレーム番号の前に「Ａ」（Ａｕｄｉｏの略）を付している。例えば、フレーム番号４のフレームは「Ｖ４」、「Ａ４」と表し、フレーム番号１からフレーム番号３のフレームは「Ｖ１−３」、「Ａ１−３」と表している。
【００４２】
本実施の形態では、動画フレームと音声フレームの再生にかかる時間の長さは同じとする。なお、動画データと音声データの対応が取れていて再生時に同期が取れるようになっていれば、動画フレームと音声フレームの長さは異なってもよい。その場合は、動画データと同じ時間に再生されるべき音声データを組にして扱うことで、本実施の形態と同様の効果が得られる。
【００４３】
前述したように、一般に、独立フレームは、１５フレームに１フレームの割合で出現するが、図２では簡単のため、４フレームに１フレームの割合で出現する例を記載している。図２においては、「Ｖ１」、「Ｖ５」、「Ｖ９」、「Ｖ１３」が独立フレームであり、太枠で示している。なお、本実施の形態では、ストリーム伝送を行う際に、動画における独立フレームのように、伝送先での処理において重要な役割を果たすフレームをキーフレームと総称する。
【００４４】
図２において、動画データ２０１ａと音声データ２０１ｂは、各フレームを出力するタイミングを示す。本実施の形態では、動画データ２０１ａと音声データ２０１ｂを総称して多重化ストリーム２０１という。
【００４５】
図２において、動画データ２０２ａと音声データ２０２ｂは、切替元端末１０２ａがサーバ１０１から受信した動画データと音声データの各フレームをバッファ１２３ａに格納するタイミングを示す。本実施の形態では、動画データ２０２ａと音声データ２０２ｂを総称して多重化ストリーム２０２という。
【００４６】
図２において、動画データ２０３ａと音声データ２０３ｂは、切替元端末１０２ａが動画データおよび音声データの各フレームを再生するタイミングを示す。本実施の形態では、動画データ２０３ａと音声データ２０３ｂを総称して多重化ストリーム２０３という。
【００４７】
図２において、動画データ２０４ａと音声データ２０４ｂは、切替先端末１０２ｂが切替元端末１０２ａから受信した動画データと音声データの各フレームをバッファ１２３ｂに格納するタイミングを示す。本実施の形態では、動画データ２０４ａと音声データ２０４ｂを総称して多重化ストリーム２０４という。
【００４８】
図２において、動画データ２０５ａと音声データ２０５ｂは、切替先端末１０２ｂが切替元端末１０２ａから受信した動画データおよび音声データの各フレームを再生するタイミングを示す。本実施の形態では、動画データ２０５ａと音声データ２０５ｂを総称して多重化ストリーム２０５という。
【００４９】
以下、図２を参照しながら、本実施の形態におけるストリーム伝送システムの多重化ストリームの流れを説明する。
まず、本実施の形態におけるサーバ１０１の動作を説明する。サーバ１０１は、一定の時間間隔で動画フレームと音声フレームを多重化した多重化ストリーム２０１を出力する。サーバ１０１は、独立フレームを送信する際に、動画データと音声データの独立フレームに、バッファ用の所定枚数の動画フレームと音声フレームを追加して多重化ストリームを生成する。独立フレームを送信するタイミングは、フレームの送信順番を示すフレーム番号ｋが独立フレームの番号と一致するか否かによって検出する。独立フレームの間隔がｎ（枚）とすると、独立フレームの番号は、１、１＋ｎ、１＋２ｎ、・・・である。従って、制御部１１５は、フレーム番号ｋがｋ＝１＋ｍ×ｎ（ｍは０以上の整数）を満たすか否かを判定し、フレーム番号ｋがこの式を満たす場合に、独立フレームと判定する。サーバ１０１は、独立フレームを送信する際に、ｂ枚のバッファ用の動画フレームと音声フレームを追加して多重化ストリーム２０１を生成して出力する。
【００５０】
図２に示す例では、バッファ用のフレーム数ｂを２とする。例えば、多重化ストリーム２０１としてフレーム番号１のフレームを出力するときは、独立フレームであるフレーム番号１の動画フレームＶ１と音声フレームＡ１に加え、バッファ用の２枚の動画フレームＶ２，Ｖ３と音声フレームＡ２，Ａ３を追加して出力する。従って、追加処理を行わない場合に比べて、動画フレームＶ２，Ｖ３と音声フレームＡ２，Ａ３が早いタイミングで出力される。すなわち、追加処理を行わない場合には、動画フレームＶ２および音声フレームＡ２はデータ２の送信タイミングに送信され、動画フレームＶ３および音声フレームＡ３はデータ３の送信タイミングに送信されることになる。従って、動画フレームＶ２、Ｖ３および音声フレームＡ２、Ａ３を送信するには、データ３の送信タイミングまで待たなければならない。本実施の形態では、データ１の送信タイミングにおけるキーフレームに動画フレームＶ２，Ｖ３と音声フレームＡ２，Ａ３を追加して送信することにより、データ２の送信タイミングを待つことなく早いタイミングで動画フレームＶ２，Ｖ３と音声フレームＡ２，Ａ３を送信できる。図２では、それぞれ１，５，９，１１回目に出力される多重化ストリームにおいて、動画フレームと音声フレームの追加処理を行っている。
【００５１】
なお、図２においては、独立フレームと差分フレームを同じ大きさで記載しているが、実際には差分フレームは、フレーム間符号化により独立フレームに比べてデータ量が非常に小さい。従って、独立フレームに差分フレームを追加したことによる送出遅延を、独立フレームの送出間隔より小さくすることができる。
【００５２】
差分フレームを送信するタイミングでは、サーバ１０１は、直前に出力した動画フレームと音声フレームの続きのフレームを多重化して出力する。ｋ回目（ｋ≠１＋ｍ×ｎ）に出力する多重化ストリーム２０１のフレーム番号は（ｋ＋ｂ）となる。図２に示す例では、ｋ回目（ｋ≠１＋ｍ×ｎ）のフレーム送信タイミングに送信される動画データ２０１ａおよび音声データ２０１ｂのフレーム番号は（ｋ＋２）である。例えば、２回目に出力する多重化ストリーム２０１には動画データＶ４と音声データＡ４が含まれ、３回目に出力する多重化ストリーム２０１には動画データＶ５と音声データＡ５が含まれる。
【００５３】
本実施の形態において、システムの動作開始時に、サーバ１０１は動画フレームＶ１−３（Ｖ１、Ｖ２、Ｖ３、以下同じ）の動画データ２０１ａと音声フレームＡ１−３（Ａ１、Ａ２、Ａ３、以下同じ）の音声データ２０１ｂからなる多重化ストリーム２０１を出力する。以下、動画フレームＶ１−３と音声フレームＡ１−３に対するシステムの処理を説明する。
【００５４】
切替元端末１０２ａは、動画フレームＶ１−３と音声フレームＡ１−３を受信すると、受信した動画フレームＶ１−３および音声フレームＡ１−Ａ３をバッファ１２３ａに格納する。図２に示すように、切替元端末１０２ａのバッファ１２３ａへの格納タイミングは、サーバ１０１の送信時刻に対して遅延している。この遅延時間２０９は、動画フレームＶ１−３および音声フレームＡ１−３のネットワーク送受信とバッファ１２３ａへのデータの格納に要する時間である。
【００５５】
切替元端末１０２ａは、バッファ１２３ａに３フレーム（Ｖ１−３、Ａ１−３）を格納する処理を終えてから、再生部１２４ａにて再生処理を行う。本実施の形態においても、従来技術と同様に、バッファ１２３ａに所定量のデータが格納された時点から再生を開始する。ここでは、３フレーム（Ｖ１−３、Ａ１−３）分のデータがバッファ１２３ａに格納された時点から再生を開始するとする。なお、バッファ１２３ａの所定量のデータが格納されてから再生までの遅延時間２１０は、バッファ１２３ａからのデータの読み出し、デコードおよび再生に要する時間である。切替元端末１０２ａは、一旦再生を開始した後は、バッファ１２３ａに格納された動画データおよび音声データを順次読み出して再生する。
【００５６】
サーバ１０１は、動画フレームＶ１−３と音声フレームＡ１−３の次の２回目の出力タイミングにおいて動画フレームＶ４と音声フレームＡ４を多重化して多重化ストリーム２０１を生成して出力する。切替元端末１０２ａは、バッファ１２３ａに１フレームの動画フレームＶ４と音声フレームＡ４を格納する。サーバ１０１は、３回目の出力タイミングで動画フレームＶ５と音声フレームＡ５、４回目の出力タイミングで動画フレームＶ６と音声フレームＡ６からなる多重化ストリーム２０１を出力する。これらに対して、切替元端末１０２ａは、動画フレームＶ４と音声フレームＡ４からなる多重化ストリーム２０１に対する場合と同様に、バッファ１２３ａへの格納処理を行う。
【００５７】
サーバ１０１は、フレーム出力の順番が１＋ｍ×４（ｍは０以上の整数）を満たす５回目の出力タイミングには動画フレームＶ５−７と音声フレームＡ５−７を出力し、９回目の出力タイミングには動画フレームＶ９−１１と音声フレームＡ９−１１を出力し、１３回目の出力タイミングには動画フレームＶ１３−１５と音声フレームＡ１３−１５を出力する。これらに対して、切替元端末１０２ａは、動画フレームＶ１−３と音声フレームＡ１−３からなる多重化ストリーム２０１に対する場合と同様に、バッファ１２３ａへの格納処理を行う。
【００５８】
切替元端末１０２ａは、多重化ストリーム２０３の再生を行う一方で、機器発見・接続処理２０６を行う。機器発見・接続処理２０６は、切替元端末１０２ａが切替先端末１０２ｂを検出し、通信接続を確立する処理である。機器発見・接続処理２０６を行うことにより、切替元端末１０２ａと切替先端末１０２ｂとが通信可能になる。機器発見・接続処理２０６は、ユーザによる操作、タイマ、あるいはその他のトリガによって起動されることとしてもよい。
【００５９】
機器発見・接続処理２０６にて切替先端末１０２ｂが発見されると、切替先端末１０２ｂは、多重化ストリーム２０１を再生する端末を切り替えるための端末変更要求２０７を出力する。切替先端末１０２ｂが端末変更要求２０７を出力するタイミングは、機器発見・接続処理２０６の後であればよい。切替先端末１０２ｂは、端末変更要求２０７を、ユーザの操作や指示に応じて出力してもよいし、ユーザの操作によらずに自動的に出力してもよい。
【００６０】
切替元端末１０２ａは、端末変更要求２０７に応じて、再生に必要な独立フレームを含む多重化ストリーム２０２を切替先端末１０２ｂに対して出力する。図２に示す例では、端末変更要求２０７が切替元端末１０２ａに入力されたときに、切替元端末１０２ａで動画フレームＶ５、音声フレームＡ５が再生されている。そこで、切替元端末１０２ａは、動画フレームＶ６、音声フレームＡ６以降のデータを再生できるように、切替先端末１０２ｂに対してストリームデータを転送する。
【００６１】
切替先端末１０２ｂには、動画フレームＶ５−７、音声フレームＡ５−７からなる多重化ストリーム２０２が入力される。多重化ストリーム２０２は、動画フレームと音声フレームをそれぞれ３フレーム含んでいるため、切替先端末１０２ｂは、データ再生開始前のバッファリングを直ちに完了する。切替先端末１０２ｂは、再生部１２４ｂによって多重化ストリーム２０２を動画フレームと音声フレームに分離した後にデコードして、再生を開始する。端末変更要求２０７から表示開始までに要する時間は、時間２１１である。
【００６２】
次に、サーバ１０１、切替元端末１０２ａ、切替先端末１０２ｂの動作を図３〜図５を用いて詳細に説明する。なお、以下に説明する動作は、図２に示すタイミングで動画データおよび音声データの伝送および再生を行うための一例である。本発明は、以下に説明する動作に限定されるものではない。
【００６３】
（サーバの動作）
図３は、サーバ１０１の動作を示す図である。まず、サーバ１０１は、初期設定処理を行う（Ｓ１０）。サーバ１０１の制御部１１５は、出力する多重化ストリーム２０１の順番を示すループカウンタｉに１を代入する。ｉ番目に出力される多重化ストリーム２０１をデータｉと記す。制御部１１５は、使用するコーデックに基づいて独立フレームの出現間隔ｎの値を設定し、バッファ用のフレーム数ｂを設定する。本実施の形態では、ｎ＝４、ｂ＝２を設定する。
【００６４】
制御部１１５は、次に出力するフレームが独立フレームであるか否かを判定する（Ｓ１２）。具体的には、ループカウンタｉを独立フレームの出現間隔ｎで割った余りが１になるか否かを判定する。この判定の結果、次に出力するフレームが独立フレームの順番である場合には（Ｓ１２でＹＥＳ）、送信データ生成部１１６は、バッファ用キーフレームを生成するための処理に移行する（Ｓ１４）。送信データ生成部１１６は、フレーム番号ｉ〜フレーム番号ｉ＋ｂ−１の動画フレームと音声フレームを動画格納部１１１および音声格納部１１２から読み出す。
【００６５】
最初は、ループカウンタｉの値は１（初期値）なので、独立フレームと判定される（Ｓ１２でＹＥＳ）。送信データ生成部１１６は、フレーム番号１〜２の動画フレームと音声フレームを動画格納部１１１と音声格納部１１２から読み出す。
【００６６】
次に、送信データ生成部１１６は、フレーム番号ｉ＋ｂの動画フレームおよび音声フレームを読み出す（Ｓ１６）。ここでは、ｉ＝１、ｂ＝２なので、送信データ生成部１１６は、フレーム番号３の動画フレームおよび音声フレームを読み出す。以上のように読み出したフレーム番号１〜３の動画フレームおよび音声フレームを用いて、送信データ生成部１１６は、フレーム１〜３からなる送信データを生成する。
【００６７】
多重化部１１３は、制御部１１５にて読み出したフレーム番号１〜３の動画フレームおよび音声フレームを多重化し、ヘッダー情報に３フレームからなるデータが一つの送信単位として認識されるためのフレーム情報を付し、多重化ストリームを生成する（Ｓ１８）。サーバ１０１は、出力部１１４より多重化ストリームを送信する（Ｓ２０）。なお、多重化ストリームの送信フォーマットは、送信先アドレス等を含むヘッダー部と動画フレームおよび音声フレームを含むデータ部とからなり、ヘッダー部にはフレーム情報を含むオプション領域を有する。ヘッダー部のオプション領域には、フレーム番号を含む前記一の送信単位のデータに関するフレーム情報として、例えば、キーフレームのフレーム番号、差分フレームのフレーム番号、フレーム種類（Ｐ、Ｂピクチャ）、サイズ、送信周期ｎ、追加フレーム数ｂのいずれかを含めてもよい。なお、フレーム情報は、ヘッダー部のオプション領域に限らず、フレーム情報部として多重化ストリームに多重化しても良い。
【００６８】
サーバ１０１の制御部１１５は、多重化ストリームを送信した後、ストリーム伝送を終了するか否かを判定する（Ｓ２２）。この判定の結果、ストリーム伝送を終了すると判定された場合（Ｓ２２でＹＥＳ）、制御部１１５は、ストリーム伝送処理を終了する。ストリーム伝送を終了していないと判定された場合（Ｓ２２でＮＯ）、制御部１１５は、ループカウンタｉをカウントアップし（Ｓ２４）、次に出力するフレームが独立フレームの順番であるか否かを判定する処理（Ｓ１２）に移行する。
【００６９】
２回目のループにおいては、ループカウンタｉが２になるので、出力するフレームが独立フレームであるか否かの判定（Ｓ１２）において、ループカウンタ２を独立フレームの出現間隔４で割った余りが２になる。従って、出力するフレームは、独立フレームではないと判定される（Ｓ１２でＮＯ）。従って、制御部１１５は、フレーム番号ｉ＋ｂのデータを読み出す処理（Ｓ１６）に移行する。ここでは、ｉ＝２、ｂ＝２なので、制御部１１５は、フレーム番号４の動画フレームと音声フレームを読み出す。
【００７０】
続いて、多重化部１１３は、制御部１１５にて読み出したフレーム番号４の動画フレームおよび音声フレームを多重化して多重化ストリームを生成し（Ｓ１８）、出力部１１４より多重化ストリームを送信する（Ｓ２０）。
【００７１】
このように、送信データ生成部１１６は、独立フレームであるか否かに応じて、独立フレームとそれに続く２つの差分フレームを読み出すか、あるいは差分フレームのみを読み出すかを切り替えることによって、図２に示すような多重化ストリーム２０１を送信する。
【００７２】
（切替元端末の動作）
図４は、切替元端末１０２ａの動作を示す図である。まず、切替元端末１０２ａは、初期設定処理を行う（Ｓ３０）。切替元端末１０２ａの制御部１２２ａは、多重化ストリーム２０１の順番を示すループカウンタｉに０を代入する。制御部１２２ａは、使用するコーデックに基づいて独立フレームの出現間隔ｎの値を設定し、バッファ用のフレーム数ｂを設定する。本実施の形態では、ｎ＝４、ｂ＝２を設定する。
【００７３】
切替元端末１０２ａの入力部１２１ａは、サーバ１０１からネットワーク１０３を介して送信された多重化ストリーム２０１を受信する（Ｓ３２）。最初は、入力部１２１ａは、サーバ１０１が最初に出力した動画フレームＶ１−３と音声フレームＡ１−３を含む多重化ストリーム２０１を受信する。
【００７４】
切替元端末１０２ａは、サーバ１０１から多重化ストリーム２０１を受信する一方で、制御部１２２ａにて、切替先端末１０２ｂから端末変更要求２０７を受信したか否かを判定する（Ｓ３４）。端末変更要求２０７を受信していない場合には（Ｓ３４でＮＯ）、切替元端末１０２ａにて再生する処理を行い、端末変更要求２０７を受信した場合には（Ｓ３４でＹＥＳ）、切替先端末１０２ｂにストリームデータを転送する処理を行う。
【００７５】
最初に、切替変更要求２０７を受信していない場合（Ｓ３４でＮＯ）について説明する。制御部１２２ａは、入力部１２１ａにて受信した多重化ストリーム２０１をバッファ１２３ａに格納する（Ｓ３６）。制御部１２２ａは、ループカウンタｉを１増加させ、受信したフレームをデータｉとしてバッファ１２３ａに格納する。最初、動画フレームＶ１−３と音声フレームＡ１−３を含む多重化ストリーム２０１がデータ１としてバッファ１２３ａに格納される。
【００７６】
次に、切替元端末１０２ａは、ストリームデータの再生を開始する。図４に示す動作では、バッファ１２３ａに３フレームが格納された時点でストリームデータの再生を開始している。バッファ１２３ａにより多くのフレームが格納されるまで再生を開始しない場合には、以下に説明する処理に移行しないで、データ受信の処理（Ｓ３４）に戻って、次の動画フレームおよび音声フレームの受信を待つ。
【００７７】
切替元端末１０２ａのストリームデータの再生について説明する。重複削除部１２６ａは、バッファからデータｉを読み出す（Ｓ３８）。次に、重複削除部１２６ａは、バッファ１２３ａから読み出したデータｉを、動画フレームと音声フレームに分割する（Ｓ４０）。この場合、データ１は、動画フレームＶ１、動画フレームＶ２、動画フレームＶ３、音声フレームＡ１、音声フレームＡ２、音声フレームＡ３に分割される（Ｓ４０）。続いて、重複削除部１２６ａは、再生済みの動画フレームおよび音声フレームを重複して受信したデータとして削除する（Ｓ４２）。最初、重複削除部１２６ａは、再生済みの動画フレームおよび音声フレームは存在しないので、動画フレームと音声フレームは削除されない。また、重複削除部１２６ａは、バッファ１２３ａから読み出した動画フレームと音声フレームを再生済みとし、読み出した動画フレームおよび音声フレームのフレーム番号を再生済みフレーム番号記憶部１２７ａに記憶する（Ｓ４４）。この場合は、動画フレームＶ１、動画フレームＶ２、動画フレームＶ３、音声フレームＡ１、音声フレームＡ２、音声フレームＡ３の各フレーム番号を記憶する。
【００７８】
次に、再生部１２４ａは、フレーム番号ｉのフレームをデコードして再生する（Ｓ４６）。この場合は、フレーム番号１の動画フレームＶ１と音声フレームＡ１がデコードされて再生される。
【００７９】
制御部１２２ａは、ストリーム伝送が終了したかを判定する（Ｓ５２）。ストリーム伝送が終了していないと判定された場合（Ｓ５２でＮＯ）、データを受信する処理（Ｓ３２）に戻り、ストリーム伝送が終了したと判定された場合（Ｓ５２でＹＥＳ）、切替元端末１０２の処理を終了する。
【００８０】
次に、ストリームデータを順次受信して再生する動作について説明する。ストリーム伝送が終了していない場合、入力部１２１ａは、動画フレームＶ４および音声フレームＡ４を含む多重化ストリームを受信し（Ｓ３２）、データ番号２としてバッファ１２３ａに格納する（Ｓ３６）。次に、重複削除部１２６ａは、データ番号２のデータをバッファ１２３ａから読み出し（Ｓ３８）、動画フレームＶ４、音声フレームＡ４に分割する（Ｓ４０）。動画フレームＶ４、音声フレームＡ４のフレーム番号は、再生済みフレーム番号記憶部１２７ａに記憶されていないので、削除しない。続いて、重複削除部１２６ａは、動画フレームＶ４、音声フレームＡ４のフレーム番号を再生済みフレーム番号記憶部１２７ａに記憶する（Ｓ４４）。その後、再生部１２４ａは、すでにフレームに分割されているフレーム番号２の動画フレームＶ２、音声フレームＡ２を再生する（Ｓ４６）。動画フレームＶ５、音声フレームＡ５からなるストリームデータ、および、動画フレームＶ６、音声フレームＡ６からなるストリームデータも上記と同様に処理され、重複削除部１２６ａは、これらのフレーム番号を再生済みフレーム番号記憶部１２７ａに記憶する。
【００８１】
次に、切替元端末１０２ａの入力部１２１ａは、動画フレームＶ５−７と音声フレームＡ５−７からなる多重化ストリーム２０１を受信する（Ｓ３２）。制御部１２２ａは、受信した多重化ストリームをデータ番号５としてバッファ１２３ａに格納する（Ｓ３６）。次に、重複削除部１２６ａは、データ番号５のデータをバッファ１２３ａから読み出し（Ｓ３８）、動画フレームＶ５、動画フレームＶ６、動画フレームＶ７、音声フレームＡ５、音声フレームＡ６、音声フレームＡ７に分割する（Ｓ４０）。このうち、重複削除部１２６ａは、動画フレームＶ５、音声フレームＡ５、動画フレームＶ６、音声フレームＡ６のフレーム番号は、再生済みフレーム番号記憶部１２７ａに記憶されているので削除する（Ｓ４２）。続いて、重複削除部１２６ａは、動画フレームＶ７、音声フレームＡ７のフレーム番号を再生済みフレーム番号記憶部１２７ａに記憶する（Ｓ４４）。その後、すでにフレームに分割されているフレーム番号５の動画フレームＶ５、音声フレームＡ５を再生する（Ｓ４６）。以上のように、切替元端末１０２ａは、ストリーム伝送サーバから送信された多重化ストリームをバッファ１２３ａに記憶すると共に、バッファ１２３ａからデータを順次読み出してストリームデータを再生する。
【００８２】
次に、切替元端末１０２ａに対して、切換先端末１０２ｂから端末変更要求２０７（図２参照）が入力された場合の動作について説明する。
【００８３】
切替元端末１０２ａは、端末変更要求２０７が入力されると、端末変更要求を受信したか否かを判定する処理（Ｓ３４）において、端末変更要求を受信したと判定する（Ｓ３４でＹＥＳ）。
【００８４】
制御部１２２ａは、切替元端末１０２ａから切替先端末１０２ｂに出力するデータのフレーム番号ｋを計算する。このフレーム番号ｋは、最後に再生された独立フレームの番号である。本実施の形態においては、フレーム番号ｋを次式にて計算する（Ｓ４８）。
ｋ＝［ｉ／ｎ］＊ｎ＋１  ・・・（１）
【００８５】
ここで、［  ］は、［  ］内の値を超えない最大の整数を示すガウスの記号である。例えば、フレーム番号５のフレームまで再生している場合には、ｉ＝５、ｎ＝４なので、ｋ＝［５／４］＊４＋１＝５となる。
【００８６】
次に、切替出力部１２５ａは、データｋを切替先端末１０２ｂに出力する（Ｓ５０）。データｋは独立フレームであり、本実施の形態では、フレーム番号ｋの動画フレームおよび音声フレームに加え、フレーム番号ｋ＋１〜ｋ＋ｂの動画フレームおよび音声フレームを含む。ここでは、ｋ＝５であるから、データ５が切替先端末１０２ｂに出力される。また、ここでは、ｂ＝２なので、データ５は、フレーム番号５のフレームに加え、フレーム番号６，７のフレームを含む。従って、切替元端末１０２ａは、動画フレームＶ５−７、音声フレームＡ５−７を切替先端末１０２ｂに出力する。
【００８７】
切替元端末１０２ａは、端末変更要求２０７に応じて、バッファ１２３ａに記憶されているデータ番号ｋの独立フレームを出力した後は、ストリーム伝送サーバ１０１から送信されるデータを切替先端末１０２ｂに転送する。なお、端末変更要求２０７に対する処理が終了すると、ストリームデータの再生端末が切替先端末１０２ｂになるので、切替元端末１０２ａはデータの再生を停止する。
【００８８】
（切替先端末の動作）
図５は、切替先端末１０２ｂの動作を示す図である。図５は、端末変更要求２０７（図２参照）の出力後のストリーム受信時の動作を示している。切替先端末１０２ｂの動作は、基本的に切替元端末１０２ａによるデータの受信および再生の動作と同じである。ただし、切替先端末１０２ｂは、切替元端末１０２ａと異なり、多重化ストリームを切替入力部１２５ｂによって受信する。
【００８９】
まず、切替先端末１０２ｂは、初期設定処理を行う（Ｓ６０）。切替先端末１０２ｂの制御部１２２ｂは、多重化ストリーム２０１の順番を示すループカウンタｉに０を代入する。制御部１２２ｂは、使用するコーデックに基づいて独立フレームの出現間隔ｎの値を設定し、バッファ用のフレーム数ｂを設定する。本実施の形態では、ｎ＝４、ｂ＝２を設定する。
【００９０】
切替先端末１０２ｂの切替入力部１２５ｂは、切替元端末１０２ａからネットワーク１０４を介して送信された多重化ストリーム２０２を受信する（Ｓ６２）。最初は、切替入力部１２５ｂは、端末変更要求２０７の時点で再生された直近の独立フレームである動画フレームＶ５および音声フレームＡ５と、この独立フレームに続く動画フレームＶ６、Ｖ７および音声フレームＡ６、Ａ７を含む多重化ストリームが入力される。
【００９１】
制御部１２２ｂは、切替入力部１２５ｂに入力された多重化ストリームをバッファ１２３ｂに格納する（Ｓ６４）。制御部１２２ｂは、ループカウンタｉを１増加させ、受信したフレームをデータｉとしてバッファ１２３ｂに格納する。最初、制御部１２２ｂは、動画フレームＶ５−７と音声フレームＡ５−７を含む多重化ストリーム２０２がデータ１としてバッファ１２３ｂに格納される。
【００９２】
次に、切替先端末１０２ｂは、ストリームデータの再生を開始する。切替先端末１０２ｂも切替元端末１０２ａと同様に、バッファ１２３ｂに３フレームが格納された時点でストリームデータの再生を開始する。なお、バッファ１２３ｂにより多くのフレームが格納されてから再生を開始することとしてもよい。
【００９３】
ストリームデータの再生を開始すると、重複削除部１２６ｂは、バッファ１２３ｂからデータｉを読み出す（Ｓ６６）。次に、重複削除部１２６ｂは、バッファ１２３ｂから読み出したデータｉを、動画フレームと音声フレームに分割する（Ｓ６８）。この場合、データ１は、動画フレームＶ５、動画フレームＶ６、動画フレームＶ７、音声フレームＡ５、音声フレームＡ６、音声フレームＡ７に分割される（Ｓ４０）。
【００９４】
続いて、重複削除部１２６ｂは、バッファ１２３ｂから読み出した動画フレームおよび音声フレームのフレーム番号が再生済みフレーム番号記憶部１２７ｂに記憶されているか否かを判定する。読み出した動画フレームおよび音声フレームのフレーム番号が再生済みフレーム番号記憶部１２７ｂに記憶されている場合には、重複削除部１２６ｂは、バッファ１２３ｂから読み出した動画フレームおよび音声フレームを削除する（Ｓ７０）。最初は、再生済みの動画フレームおよび音声フレームは存在しないので、動画フレームと音声フレームは削除されない。また、重複削除部１２６ｂは、バッファ１２３ｂから読み出した動画フレームと音声フレームを再生済みとし、再生済みフレーム記憶部１２７ｂにフレームの番号を記憶する（Ｓ７２）。この場合は、動画フレームＶ５、動画フレームＶ６、動画フレームＶ７、音声フレームＡ５、音声フレームＡ６、音声フレームＡ７は再生済みとされる。
【００９５】
次に、再生部１２４ｂは、最小のフレーム番号のフレームをデコードして再生する（Ｓ７４）。この場合は、フレーム番号が５の動画データと音声データがデコードされて再生される。
【００９６】
制御部１２２ａは、ストリーム伝送が終了したかを判定する（Ｓ７４）。ストリーム伝送が終了していないと判定された場合（Ｓ７４でＮＯ）、データを受信する処理（Ｓ６２）に戻り、ストリーム伝送が終了したと判定された場合（Ｓ７４でＹＥＳ）、切替先端末１０２ｂの処理を終了する。
【００９７】
次に、ストリームデータを順次受信して再生する動作について説明する。ストリーム伝送が終了していない場合、切替入力部１２５ｂは、動画フレームＶ８および音声フレームＡ８を含む多重化ストリームを受信し（Ｓ６２）、データ番号２としてバッファ１２３ａに格納する（Ｓ６４）。次に、重複削除部１２６ｂは、データ番号２のデータをバッファ１２３ｂから読み出し（Ｓ６６）、動画フレームＶ８、音声フレームＡ８に分割する（Ｓ６８）。動画フレームＶ８、音声フレームＡ８は、再生済みフレーム番号記憶部２０７ｂに記憶されていないので削除しない。続いて、重複削除部１２６ｂは、動画フレームＶ８、音声フレームＡ８のフレーム番号を再生済みフレーム番号記憶部２０７ｂに記憶する（Ｓ７２）。その後、再生部１２４ｂは、すでにフレームに分割されているフレーム番号６の動画フレームＶ６、音声フレームＡ６を再生する（Ｓ７４）。動画フレームＶ９、音声フレームＡ９からなる多重化ストリーム、および、動画フレームＶ１０、音声フレームＡ１０からなる多重化ストリームも上記と同様に処理され、重複削除部１２６ｂは、これらのフレーム番号を再生済みフレーム番号記憶部１２７ｂに記憶する。
【００９８】
次に、切替先端末１０２ｂの切替入力部１２５ｂは、動画フレームＶ９−１１と音声フレームＡ９−１１からなる多重化ストリーム２０１を受信する（Ｓ６２）。制御部１２２ｂは、受信した多重化ストリームをデータ番号５としてバッファ１２３ｂに格納する（Ｓ６４）。次に、重複削除部１２６ｂは、データ番号５のデータをバッファ１２３ｂから読み出し（Ｓ６６）、動画フレームＶ９、動画フレームＶ１０、動画フレームＶ１１、音声フレームＡ９、音声フレームＡ１０、音声フレームＡ１１に分割する（Ｓ６８）。このうち、重複削除部１２６ｂは、動画フレームＶ９、音声フレームＡ９、動画フレームＶ１０、音声フレームＡ１０のフレーム番号は、再生済みフレーム番号記憶部１２７ｂに記憶されているので削除する（Ｓ７０）。このように、切替先端末１０２ｂは、再生済みのフレーム番号を再生済みフレーム番号記憶部１２７ｂによって管理しており、重複するフレームを削除するので、同じフレームを重複して再生することがない。
【００９９】
続いて、重複削除部１２６ｂは、動画フレームＶ１１、音声フレームＡ１１のフレーム番号を再生済みフレーム番号記憶部１２７ｂに記憶する（Ｓ７２）。その後、再生部１２４ｂは、すでにフレームに分割されているフレーム番号９の動画フレームＶ９、音声フレームＡ９を再生する（Ｓ７４）。以上のように、切替先端末１０２ｂは、ストリーム伝送サーバから送信された多重化ストリームをバッファ１２３ｂに記憶すると共に、バッファ１２３ｂからデータを順次読み出してストリームデータを再生する。
以上、第１の実施の形態のストリーム伝送システムおよびストリーム伝送方法について説明した。
【０１００】
本実施の形態のストリーム伝送システムは、最初の送信タイミングにおいて、独立フレームに２つの差分フレームを追加した多重化ストリームを送信しているので、初期バッファリングに要する時間を短縮することができる。従来であれば、動画データＶ３および音声データＡ３がデータ３の送信タイミングで送信されるまでバッファリングが完了しなかったが、本実施の形態では、図２に示すように、最初の送信タイミングでバッファ１２３ａに３フレーム分のデータが格納されるので、データ１のバッファリングが完了すると直ちに再生を開始することができる。
【０１０１】
また、本実施の形態のストリーム伝送システムは、ストリーム伝送の開始時のみならず、一定間隔で送信される独立フレームに２つの差分フレームを追加した多重化ストリームを送信し、切替元端末１０２ａのバッファ１２３ａにその多重化ストリームを格納している。これにより、ストリームデータを再生する端末を切替元端末１０２ａから切替先端末１０２ｂに切り替えるときに、３フレームを含む多重化ストリームのデータを転送できるので、切替先端末１０２ｂがデータのバッファリングに要する時間を短縮することができる。すなわち、切替元端末１０２ａは、端末変更要求を受信するタイミングをあらかじめ予測することはできないが、本実施の形態では、一定の間隔で送出される独立フレームについて、バッファ用の差分フレームを追加した多重化ストリームを生成しているので、どのタイミングで端末変更要求を受けても、バッファリングに要する時間を短縮するという上記の効果が得られる。
【０１０２】
また、切替元端末１０２ａがストリームデータの再生端末を切り替える際に、多重化ストリームをそのまま出力するので、切替元端末１０２ａにおいて再エンコードを行わなくてもよく、切替え時間を短縮することができる。また、ソフトウェアとハードウェアの処理量も少なくなるため、ソフトウェアとハードウェア両方の開発が容易になるという効果が得られる。
【０１０３】
また、本実施の形態のストリーム伝送サーバ１０１は、独立フレームの送信タイミングでは、その送信タイミングに本来送信されるべき独立フレームを送信することにより、ストリーム伝送の伝送速度を保持しているので、既存の受信端末にも対応することができる。なお、本実施の形態では、独立フレームの送信タイミングで複数のフレームを送信し、かつ、ストリーム伝送速度を保持するために、同じフレームを重複して送信している。しかし、上記に説明したように、切替元端末１０２ａあるいは切替先端末１０２ｂは、同じフレームが複数到着した場合であってもストリームデータの再生時に、重複削除部１２６ａ、１２６ｂが重複したフレームを削除する。従って、重複するフレームを送信しても切替元端末１０２ａあるいは切替先端末１０２ｂにて、同じフレームを重複して再生するという不都合が生じることはない。
【０１０４】
（第２の実施の形態）
次に、第２の実施の形態のストリーム伝送システムについて説明する。第２の実施の形態のストリーム伝送システムは、独立フレームに対して音声データだけをバッファ用のデータとして追加するストリーム伝送システムである。第２の実施の形態のストリーム伝送システムの構成は、第１の実施の形態と同じである（図１参照）。
【０１０５】
図６は、第２の実施の形態のストリーム伝送システムにおける動画フレームおよび音声フレームの伝送タイミングを示す図である。動画フレームにおける独立フレームの出現間隔ｎ、バッファ用に追加する音声データのフレーム数ｂは、第１の実施の形態と同様にｎ＝４、ｂ＝２とする。
【０１０６】
図６におけるサーバ１０１の動作を説明する。サーバ１０１は、一定の時間間隔で動画フレームと音声フレームを多重化した多重化ストリーム６０１を出力する。独立フレームの出現間隔はｎなので、独立フレームのフレーム番号は、ｍを０以上の整数として（１＋ｎ×ｍ）によって表される。フレーム番号が（１＋ｎ×ｍ）のフレームにｂ枚のバッファ用の音声フレームを追加する。
【０１０７】
その結果、図６において、サーバ１０１が出力する多重化ストリーム２０１では、独立フレームである動画フレームＶ１、Ｖ５、Ｖ９、Ｖ１３に対してそれぞれ音声フレームＡ１−３、Ａ５−７、Ａ９−１１、Ａ１３−１５が多重化される。すなわち、動画フレームＶ１、Ｖ５、Ｖ９、Ｖ１３には、２フレーム分の音声フレームが追加されている。
【０１０８】
第２の実施の形態では、システムの動作開始時に、サーバ１０１は動画フレームＶ１と音声フレームＡ１−３（Ａ１、Ａ２、Ａ３、以下同じ）からなる多重化ストリーム６０１を出力する。以下、動画フレームＶ１と音声フレームＡ１−３に対するストリーム伝送システムの処理を説明する。
【０１０９】
切替元端末１０２ａは、動画フレームＶ１と音声フレームＡ１−３をバッファ１２３ａに格納する。この動作にかかる遅延時間６０９は、ネットワーク送受信とバッファ１２３ａへのデータの格納にかかる時間である。切替元端末１０２ａは、バッファ１２３ａに動画１フレームと音声３フレームを格納する処理を終了すると、再生部１２４ａにて再生を行う。図６に示す例では、３フレーム（Ａ１−３）分の音声データが格納された時点で表示を開始する。この遅延時間６１０は、切替元端末１０２ａにおける表示による遅延時間である。
【０１１０】
次に、サーバ１０１は、動画フレームＶ１と音声フレームＡ１−３の２回目の出力タイミングにおいて動画フレームＶ２と音声フレームＡ４を多重化して多重化ストリーム６０１を生成して出力する。切替元端末１０２ａでは、バッファ１２３ａに１フレームの動画フレームＶ２と音声フレームＡ４を格納する処理を終えてから再生部１２４ａにて再生を行う。この場合は、バッファ１２３ａから出力される動画データ６０３ａと音声データ６０３ｂは、前のタイミングで再生されたフレームの次のフレームであるので、動画フレームＶ２と音声フレームＡ２が再生される。
【０１１１】
サーバ１０１は、３回目の出力タイミングで動画フレームＶ３と音声フレームＡ５、４回目の出力タイミングで動画フレームＶ４と音声フレームＡ６からなる多重化ストリーム２０１を出力する。これらに対して、切替元端末１０２ａは動画フレームＶ２と音声フレームＡ４からなる多重化ストリーム２０１に対する場合と同様の動作を行う。多重化ストリーム２０１の出力の順番が１＋ｎ×ｍ（ｍは０以上の整数）となる５回目、９回目、１３回目の出力タイミングでは、それぞれ動画フレームＶ５と音声フレームＡ５−７、動画フレームＶ９と音声フレームＡ９−１１、動画フレームＶ１３と音声フレームＡ１３−１５を受信する。
【０１１２】
切替元端末１０２ａは、多重化ストリーム２０３の再生を行う一方で、制御部１２２ａは、機器発見・接続処理６０６を行う。機器発見・接続処理６０６は、切替元端末１０２ａが切替先端末１０２ｂを検出し、通信接続を確立する処理である。機器発見・接続処理６０６を行うことにより、切替元端末１０２ａと切替先端末１０２ｂとが通信可能になる。機器発見・接続処理６０６は、ユーザによる操作、タイマ、あるいはその他のトリガによって起動されることとしてもよい。
【０１１３】
機器発見・接続処理６０６にて切替先端末１０２ｂが発見されると、切替先端末１０２ｂは、多重化ストリーム２０１を再生する端末を切り替えるための端末変更要求６０７を出力する。切替元端末１０２ａは、端末変更要求６０７に対して、再生に必要な独立フレームを含む多重化ストリーム６０２を切替先端末１０２ｂに対して出力する。図６に示す例では、端末変更要求６０７が切替元端末１０２ａに入力されたときに、動画フレームＶ５および音声フレームＡ５が再生されているので、多重化ストリーム６０２を動画フレームＶ５、音声フレームＡ５−７を切替先端末１０２ｂに出力する。
【０１１４】
切替先端末１０２ｂには、動画フレームＶ５、音声フレームＡ５−７からなる多重化ストリーム６０２が入力される。切替先端末１０２ｂは、動画フレームＶ５、音声フレームＡ５−７からなる多重化ストリーム６０２を受信すると、データ再生開始前のバッファリングを直ちに完了する。切替先端末１０２ｂは、再生部１２４ｂによって多重化ストリーム２０２を動画データと音声データに分離した後にデコードして、再生を開始する。端末変更要求６０７から表示開始までに要する時間は、時間６１１である。
【０１１５】
次に、サーバ１０１、切替元端末１０２ａ、切替先端末１０２ｂの動作を図７〜図９を用いて詳細に説明する。なお、以下に説明する動作は、図６に示すタイミングで動画データおよび音声データの伝送および再生を行うための一例である。本発明は、以下に説明する動作に限定されるものではない。
【０１１６】
（サーバの動作）
図７は、第２の実施の形態におけるサーバ１０１の動作を示す図である。第２の実施の形態におけるサーバ１０１の動作は、基本的に第１の実施の形態におけるサーバ１０１の動作と同じであるが、次に送信するフレームが独立フレームに対してバッファ用の音声データを追加する点が異なる。すなわち、フレーム番号が１＋ｎ×ｍ（ｍは０以上の整数）であった場合に、送信データ生成部１１６がフレーム番号ｉからｉ＋ｂ−１の音声フレームをバッファ用として読み出す。例えば、送信データ生成部１１６は、最初の独立フレーム（フレーム番号１）については、音声フレームＡ１、Ａ２を読み出す（Ｓ８４）。また、次に送信するフレームが独立フレームでない場合（Ｓ８２でＮＯ）、あるいは独立フレームに付与する音声フレームを読み出す処理（Ｓ８４）に続く処理において、送信データ生成部１１６は、フレーム番号ｉの動画フレームとフレーム番号ｉ＋ｂの音声フレームを読み出す（Ｓ８６）。サーバ１０１の多重化部１１３は、上記のようにして読み出した動画フレームおよび音声フレームを多重化し（Ｓ８８）、出力部１１４から送信する（Ｓ９０）。
【０１１７】
（切替元端末および切替先端末の動作）
図８は、第２の実施の形態における切替元端末１０２ａの動作を示す図、図９は、第２の実施の形態における切替先端末１０２ｂの動作を示す図である。第２の実施の形態における切替元端末１０２ａおよび切替先端末１０２ｂの動作は、基本的には、第１の実施の形態における切替元端末１０２ａおよび切替先端末１０２ｂの動作と同じである。第１の実施の形態と異なる点は、サーバ１０１が独立フレームの送信タイミングにおいて音声データのみを追加しているので、切替元端末１０２ａあるいは切替先端末１０２ｂに入力される多重化ストリーム６０１では、動画フレームに関しては重複が発生しない。従って、本実施の形態では、重複削除部１２６ａが動画データの重複を削除する処理を行わない点が異なる。
【０１１８】
第２の実施の形態のストリーム伝送システムは、独立フレームに対して２フレームの音声フレームをバッファ用の音声フレームとして追加しているので、音声フレームのバッファリングに要する時間を短縮できる。また、再生端末の切替えを行う際にも、音声フレームが追加された音声フレームを転送することにより、切替先端末１０２ｂにおけるバッファリング時間を短縮でき、迅速に切替えを行える。
【０１１９】
また、第２の実施の形態のストリーム伝送システムでは、音声フレームのみを追加する構成を採用しているので、サーバ１０１と切替元端末１０２ａとの間のネットワーク１０３の帯域が狭い場合にも適用可能である。なお、人間は、動画のノイズやフレーム欠落に比べて音声の途切れや雑音に対して敏感なので、サーバ１０１と端末間の帯域が限られる場合は、本実施の形態のように音声のみのバッファリングを行い、音声品質の低下を防止するのが有効である。音声の途切れを防止することによって、ユーザに快適な視聴を提供することができる。
【０１２０】
また、第２の実施の形態のストリーム伝送システムでは、第１の実施の形態と同様に、切替元端末１０２ａが多重化ストリーム６０１のデコードと出力時の再エンコードを行う必要がない。また、ソフトウェアとハードウェアの処理量も少なくなり、ソフトウェアとハードウェア両方の開発が容易になるという効果がある。
【０１２１】
以上、本発明のストリーム伝送システムについて実施の形態を挙げて詳細に説明したが、本発明は上記した実施の形態に限定されるものではない。
【０１２２】
上記した実施の形態では、動画フレームの全ての独立フレーム（キーフレーム）に対してバッファ用の動画フレームおよび音声フレームを追加して多重化ストリームを生成する例を説明したが、必ずしも全ての独立フレームに対してバッファ用の動画フレームおよび音声フレームを追加する必要はない。一部の独立フレーム（キーフレーム）に対してバッファ用の動画データまたは音声データを追加する構成としてもよい。
【０１２３】
上記した実施の形態において、切替元端末１０２ａに、ジッタの大きさを検出する機能と、ジッタに基づいて独立フレームに追加する差分フレームのフレーム数を算出し、サーバ１０１に通知する機能を追加してもよい。これに伴って、サーバ１０１に、切替元端末１０２ａのフレーム数の指定に従って、バッファ用のフレーム数を増減させる機能を追加してもよい。この構成により、サーバと端末間の通信状況の変化により、最適なストリーム伝送制御を行うことができる。例えばジッタが大きい場合は、バッファ数を増やすことによりストリームの途切れを防止し、ジッタが小さい場合は、バッファ用のフレーム数を減らすことにより使用する帯域を節約することができる。
【０１２４】
上記した実施の形態において、切替元端末１０２ａ、切替先端末１０２ｂの機能を一体にした端末を用いてもよい。これにより、双方向の端末切り替えを実現できる。
【０１２５】
上記した実施の形態において、サーバは多重化前のフレームにタイムスタンプを付加し、切替元端末１０２ａは、タイムスタンプを用いて重複したフレームの判定を行ってもよい。なお、タイムスタンプを利用した場合、サーバ１０１と切替元端末１０２ａとの経路においてパケットロスが発生した場合でも、切替元端末１０２ａは、サーバで指定したタイミングで動画と音声を再生できる。
【０１２６】
上記した実施の形態では、サーバ１０１が多重化ストリームにバッファ用のデータを追加する手順について説明したが、切替元端末１０２ａが同じ処理を行うことも可能である。例えば第１の実施の形態において、切替元端末１０２ａは、独立フレームｉに対してバッファ用としてフレーム番号ｉ＋１〜ｉ＋ｂまでの動画フレームと音声フレームを追加し、データｉとしてバッファ１２３ａに格納する。また、切替元端末１０２ａは、データｉ＋１としてフレーム番号ｉ＋ｂ＋１、データｉ＋２としてフレーム番号ｉ＋ｂ＋２のように、フレーム番号ｉ＋ｎの次の独立フレームまでは、多重化ストリームの順番に対してｂ増加した数のフレーム番号を持つデータを多重化ストリームとしてバッファ１２３ａに格納する。そして、切替先端末１０２ｂからの端末変更要求に対して、直前の独立フレームを含むデータｉからストリーム伝送を開始することで、切替時間短縮の効果が得られる。
【産業上の利用可能性】
【０１２７】
以上説明したように、ストリーム伝送におけるバッファリングに要する時間を短縮することができるという効果を有し、例えば、ストリームデータを再生する端末を受信中の端末から別の端末に切り替えることができるシステム等として有用である。
【図面の簡単な説明】
【０１２８】
【図１】第１の実施の形態におけるシステムのブロック構成図
【図２】第１の実施の形態における伝送タイミング図
【図３】第１の実施の形態におけるサーバ１０１の動作フロー図
【図４】第１の実施の形態における切替元端末１０２ａの動作フロー図
【図５】第１の実施の形態における切替元端末１０２ｂの動作フロー図
【図６】第２の実施の形態における伝送タイミング図
【図７】第２の実施の形態におけるサーバ１０１の動作フロー図
【図８】第２の実施の形態における切替元端末１０２ａの動作フロー図
【図９】第２の実施の形態における切替元端末１０２ｂの動作フロー図
【符号の説明】
【０１２９】
１０１  サーバ
１０２ａ  切替元端末
１０２ｂ  切替先端末
１０３  ネットワーク
１０４  通信路
１１１  動画格納部
１１２  音声格納部
１１３  多重部
１１４  出力部
１１５  制御部
１１６  送信データ生成部
１２１ａ  入力部
１２２ａ  制御部  
１２３ａ  バッファ
１２４ａ  再生部
１２５ａ  切替出力部
１２６ａ  重複削除部
１２７ａ  再生済みフレーム番号記憶部
１２１ｂ  入力部
１２２ｂ  制御部
１２３ｂ  バッファ
１２４ｂ  再生部
１２５ｂ  切替入力部
１２６ｂ  重複削除部
１２７ｂ  再生済みフレーム番号記憶部
【図１】
0005026167.tif 000002
【図２】
0005026167.tif 000003
【図３】
0005026167.tif 000004
【図４】
0005026167.tif 000005
【図５】
0005026167.tif 000006
【図６】
0005026167.tif 000007
【図７】
0005026167.tif 000008
【図８】
0005026167.tif 000009
【図９】
0005026167.tif 000010