(57)【特許請求の範囲】
【請求項１】
ネットワークにマルチメディアストリームを送信するストリーム送信装置と、前記マルチメディアストリームを受信するストリーム受信装置と、前記ストリーム送信装置および前記ストリーム受信装置の間でストリーム伝送の中継を行うストリーム中継装置とが前記ネットワークを介して接続されるストリーム配信システムであって、
前記ストリーム送信装置は、
前記ネットワークを介して前記マルチメディアストリームを送信してから、前記受信装置が前記マルチメディアストリームを受信するまでのネットワーク遅延時間を検出するネットワーク遅延時間検出手段と、
前記ストリーム受信装置による前記マルチメディアストリームの受信が、前記ストリーム受信装置による前記マルチメディアストリームの再生に間に合うか否かを判定する第１の判定手段と、
前記第１の判定手段により、前記ストリーム受信装置による前記マルチメディアストリームの受信が、前記ストリーム受信装置による前記マルチメディアストリームの再生に間に合わないと判定された場合、前記マルチメディアストリームを部分的に廃棄し、残りの前記マルチメディアストリームを前記ネットワークを介して送信し、前記マルチメディアストリームのデータレートを前記ネットワークのバンド幅に対応させるように制御する第１の制御手段と
を備え、
前記ストリーム中継装置は、
前記マルチメディアストリームの再生時刻を検出するストリーム再生時刻検出手段と、
前記ストリーム受信装置による前記マルチメディアストリームの受信が、前記ストリーム受信装置による前記マルチメディアストリームの再生に間に合うか否かを判定する第２の判定手段と、
前記第２の判定手段により、前記ストリーム受信装置による前記マルチメディアストリームの受信が、前記ストリーム受信装置による前記マルチメディアストリームの再生に間に合わないと判定された場合、前記マルチメディアストリームを部分的に廃棄し、残りの前記マルチメディアストリームを前記ネットワークを介して送信し、前記マルチメディアストリームのデータレートを前記ネットワークのバンド幅に対応させるように制御する第２の制御手段と
を備え、
前記ストリーム受信装置は、
前記ネットワークを介して受信した前記マルチメディアストリームから、前記マルチメディアストリームのデコード単位の一部が、前記ストリーム送信装置、または前記ストリーム中継装置によって破棄されたか否かを検知する検知手段と、
前記ネットワークを介して受信した前記マルチメディアストリームを構成する各デコード単位のうち、前記デコード単位の一部が、前記ストリーム送信装置、または前記ストリーム中継装置によって破棄されたことが検知されていないものをデコードするデコード手段と
を備えることを特徴とするストリーム配信システム。
【請求項２】
前記ネットワーク遅延時間検出手段は、前記マルチメディアストリームが前記ネットワークを介して前記ストリーム受信装置に送信された時刻と、前記マルチメディアストリームが前記ネットワークを介して前記ストリーム受信装置に届いた時刻とを比較することにより、前記ネットワーク遅延時間を検出し、
前記第１の判定手段により、前記マルチメディアストリーム自身が持つ再生時刻情報に基づいて、前記ストリーム送信装置から送信される前記マルチメディアストリームの前記ストリーム受信装置への到着予想時刻が、前記再生時刻情報によって示される再生時刻に対して、予め規定された基準時間以上早くないと判定された場合、前記第１の制御手段は、前記マルチメディアストリームを部分的に破棄し、残りの前記マルチメディアストリームを前記ネットワークを介して前記ストリーム受信装置に送信するように制御する
ことを特徴とする請求項１に記載のストリーム配信システム。
【請求項３】
前記第２の判定手段により、前記マルチメディアストリーム自身が持つ再生時刻情報と、前記ストリーム中継装置の内部時刻情報とが比較され、前記ストリーム中継装置の内部時刻情報が、前記再生時刻情報によって示される再生時刻に対して、予め規定された基準時間以上早くないと判定された場合、前記第２の制御手段は、前記マルチメディアストリームを部分的に破棄し、残りの前記マルチメディアストリームを前記ネットワークを介して前記ストリーム受信装置に送信するように制御する
ことを特徴とする請求項１または２に記載のストリーム配信システム。
【請求項４】
前記ストリーム受信装置は、前記ストリーム送信装置から前記ネットワークを介して送信された前記マルチメディアストリームが到着した時刻を示す到着時刻情報を、前記ストリーム送信装置に送信する到着時刻情報送信手段と、
前記マルチメディアストリームが部分的に破棄されたことを検出するストリーム部分破棄検出手段と、
前記ストリーム送信装置、または前記ストリーム中継装置において破棄された部分が含まれるデコード単位を破棄し、前記マルチメディアストリームのデータレートを前記ネットワークのバンド幅に対応させるように制御する第３の制御手段と
をさらに備えることを特徴とする請求項１，２または３に記載のストリーム配信システム。
【請求項５】
ネットワークを介してストリーム受信装置にマルチメディアストリームを送信するストリーム送信装置であって、
前記マルチメディアストリームを前記ネットワークを介して送信してから、前記ネットワークに接続された前記ストリーム受信装置が前記マルチメディアストリームを受信するまでのネットワーク遅延時間を検出するネットワーク遅延時間検出手段と、
前記ストリーム受信装置による前記マルチメディアストリームの受信が、前記マルチメディアストリームの再生に間に合うか否かを判定する判定手段と、
前記判定手段により、前記ストリーム受信装置による前記マルチメディアストリームの受信が、前記マルチメディアストリームの再生に間に合わないと判定された場合、前記マルチメディアストリームを部分的に廃棄し、残りの前記マルチメディアストリームを前記ネットワークを介して送信し、前記ネットワークのバンド幅に対応させるように制御する制御手段と
を備え、
前記ネットワーク遅延時間検出手段は、前記マルチメディアストリームを前記ネットワークを介して伝送するための所定のストリーム伝送プロトコルのパケットを送信した時刻と、前記パケットが前記ストリーム受信装置に届いた時刻とを比較することにより、前記ネットワーク遅延時間を検出し、
前記判定手段により、前記マルチメディアストリーム自身が持つ再生時刻情報に基づいて、前記ストリーム送信装置から送信された前記パケットの前記ストリーム受信装置への到着予想時刻が、前記再生時刻情報によって示される再生時刻に対して所定の基準時間以上早くないと判定された場合、前記制御手段は、前記マルチメディアストリームを部分的に破棄し、残りの前記マルチメディアストリームを前記ネットワークを介して送信し、前記ネットワークのバンド幅に対応させるように制御する
ことを特徴とするストリーム送信装置。
【請求項６】
ストリーム送信装置からネットワークを介して送信されたマルチメディアストリームをストリーム受信装置に中継するストリーム中継装置であって、
前記マルチメディアストリームを中継した時刻に基づいて、前記マルチメディアストリームの前記ストリーム受信装置への中継が、前記ストリーム受信装置による前記マルチメディアストリームの再生に間に合うか否かを判定するストリーム中継時刻判定手段と、
前記ストリーム中継時刻判定手段の判定結果に応じて、前記マルチメディアストリームを部分的に破棄し、残りの前記マルチメディアストリームを前記ネットワークを介して送信する制御手段と
を備え、
前記ストリーム中継時刻判定手段により、前記マルチメディアストリーム自身、または前記マルチメディアストリームのストリーム送信プロトコルが持つ再生時刻情報と、前記ストリーム中継装置の内部時刻を示す内部時刻情報とが比較され、前記再生時刻情報によって示される再生時刻に対して、前記内部時刻情報によって示される前記内部時刻が、予め規定された基準時間以上早くないと判定された場合、前記制御手段は、前記マルチメディアストリームを部分的に破棄し、残りの前記マルチメディアストリームを前記ネットワークを介して送信し、前記ネットワークのバンド幅に対応させるように制御する
ことを特徴とするストリーム中継装置。
【請求項７】
ストリーム送信装置からネットワークおよびストリーム中継装置を介して送信されたマルチメディアストリームを受信し、再生するストリーム受信装置であって、
前記ストリーム送信装置から前記ネットワークを介して送信された前記マルチメディアストリームが到着した時刻を示す到着時刻情報を、前記ストリーム送信装置に送信する到着時刻情報送信手段と、
前記マルチメディアストリームが部分的に破棄されたことを検出するストリーム部分破棄検出手段と、
前記ストリーム送信装置、または前記ストリーム中継装置において破棄された部分が含まれるデコード単位を破棄し、前記マルチメディアストリームのデータレートを前記ネットワークのバンド幅に対応させるように制御する第３の制御手段と
を備えることを特徴とするストリーム受信装置。
【請求項８】
ネットワークにマルチメディアストリームを送信するストリーム送信装置と、前記マルチメディアストリームを受信するストリーム受信装置と、前記ストリーム送信装置および前記ストリーム受信装置の間でストリーム伝送の中継を行うストリーム中継装置とが前記ネットワークを介して接続されるストリーム配信システムにおけるストリーム配信方法であって、
前記ストリーム送信装置は、
前記ネットワークを介して前記マルチメディアストリームを送信してから、前記受信装置が前記マルチメディアストリームを受信するまでのネットワーク遅延時間を検出するネットワーク遅延時間検出ステップと、
前記ストリーム受信装置による前記マルチメディアストリームの受信が、前記ストリーム受信装置による前記マルチメディアストリームの再生に間に合うか否かを判定する第１の判定ステップと、
前記第１の判定ステップにおいて、前記ストリーム受信装置による前記マルチメディアストリームの受信が、前記ストリーム受信装置による前記マルチメディアストリームの再生に間に合わないと判定された場合、前記マルチメディアストリームを部分的に廃棄し、残りの前記マルチメディアストリームを前記ネットワークを介して送信し、前記マルチメディアストリームのデータレートを前記ネットワークのバンド幅に対応させるように制御する第１の制御ステップと
を備え、
前記ストリーム中継装置は、
前記マルチメディアストリームの再生時刻を検出するストリーム再生時刻検出ステップと、
前記ストリーム受信装置による前記マルチメディアストリームの受信が、前記ストリーム受信装置による前記マルチメディアストリームの再生に間に合うか否かを判定する第２の判定ステップと、
前記第２の判定ステップにおいて、前記ストリーム受信装置による前記マルチメディアストリームの受信が、前記ストリーム受信装置による前記マルチメディアストリームの再生に間に合わないと判定された場合、前記マルチメディアストリームを部分的に廃棄し、残りの前記マルチメディアストリームを前記ネットワークを介して送信し、前記マルチメディアストリームのデータレートを前記ネットワークのバンド幅に対応させるように制御する第２の制御ステップと
を備え、
前記ストリーム受信装置は、
前記ネットワークを介して受信した前記マルチメディアストリームから、前記マルチメディアストリームのデコード単位の一部が、前記ストリーム送信装置、または前記ストリーム中継装置によって破棄されたか否かを検知する検知ステップと、
前記ネットワークを介して受信した前記マルチメディアストリームを構成する各デコード単位のうち、前記デコード単位の一部が、前記ストリーム送信装置、または前記ストリーム中継装置によって破棄されたことが検知されていないものをデコードするデコードステップと
を備えることを特徴とするストリーム配信方法。
【請求項９】
ネットワークにマルチメディアストリームを送信するストリーム送信装置と、前記マルチメディアストリームを受信するストリーム受信装置と、前記ストリーム送信装置および前記ストリーム受信装置の間でストリーム伝送の中継を行うストリーム中継装置とが前記ネットワークを介して接続されるストリーム配信システムを制御するストリーム配信プログラムであって、
前記ストリーム送信装置に、
前記ネットワークを介して前記マルチメディアストリームを送信してから、前記受信装置が前記マルチメディアストリームを受信するまでのネットワーク遅延時間を検出するネットワーク遅延時間検出ステップと、
前記ストリーム受信装置による前記マルチメディアストリームの受信が、前記ストリーム受信装置による前記マルチメディアストリームの再生に間に合うか否かを判定する第１の判定ステップと、
前記第１の判定ステップにおいて、前記ストリーム受信装置による前記マルチメディアストリームの受信が、前記ストリーム受信装置による前記マルチメディアストリームの再生に間に合わないと判定された場合、前記マルチメディアストリームを部分的に廃棄し、残りの前記マルチメディアストリームを前記ネットワークを介して送信し、前記マルチメディアストリームのデータレートを前記ネットワークのバンド幅に対応させるように制御する第１の制御ステップと
を実行させ、
前記ストリーム中継装置に、
前記マルチメディアストリームの再生時刻を検出するストリーム再生時刻検出ステップと、
前記ストリーム受信装置による前記マルチメディアストリームの受信が、前記ストリーム受信装置による前記マルチメディアストリームの再生に間に合うか否かを判定する第２の判定ステップと、
前記第２の判定ステップにおいて、前記ストリーム受信装置による前記マルチメディアストリームの受信が、前記ストリーム受信装置による前記マルチメディアストリームの再生に間に合わないと判定された場合、前記マルチメディアストリームを部分的に廃棄し、残りの前記マルチメディアストリームを前記ネットワークを介して送信し、前記マルチメディアストリームのデータレートを前記ネットワークのバンド幅に対応させるように制御する第２の制御ステップと
を実行させ、
前記ストリーム受信装置に、
前記ネットワークを介して受信した前記マルチメディアストリームから、前記マルチメディアストリームのデコード単位の一部が、前記ストリーム送信装置、または前記ストリーム中継装置によって破棄されたか否かを検知する検知ステップと、
前記ネットワークを介して受信した前記マルチメディアストリームを構成する各デコード単位のうち、前記デコード単位の一部が、前記ストリーム送信装置、または前記ストリーム中継装置によって破棄されたことが検知されていないものをデコードするデコードステップと
を実行させることを特徴とするストリーム配信プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ストリーム配信システムに関し、特に、データファイル全体をダウンロードしなくとも、一部のデータファイルを読み込んだ時点で再生が可能な音声や動画などのストリームデータを配信するストリーム配信システムに関する。
【０００２】
【従来の技術】
音声データや動画データなどのデータファイルを、インターネットなどのネットワーク上でダウンロードしながらリアルタイムに再生することは、「ストリーミング」と呼ばれる。また、このように、ダウンロードと再生を同時に行うことができるデータ形式のデータはストリームデータと呼ばれている。
【０００３】
音声データや動画データなどは、ハードディスクなどの記憶媒体に一旦ダウンロードしてから再生されるのが一般的である。そのため、ユーザは、音声データや動画データなどのデータファイル全体がダウンロードされるまで待っていなければならない。一方、音声や動画などのストリームデータは、ダウンロードと再生を略同時に行うことができるので、ユーザは、データファイル全体をダウンロードするまで再生を待つ必要はなくなる。
【０００４】
従来のストリーム配信方法では、受信装置側は、送信装置側から送信されてきた音声や動画などのストリームデータを受信した時点で、直ちに、受信したストリームデータをデコードして再生するのではなく、受信した一定量のストリームデータをバッファメモリに蓄積してから、蓄積した一定量のストリームデータをデコードして再生する。
【０００５】
受信装置側でデコードを開始した後、送信装置の処理能力不足、又はネットワークのバンド幅不足等の原因により、受信装置でストリームデータのアンダーフローが発生しないように、受信装置は送信装置に対して、適宜、ストリームデータを部分的に破棄してストリームデータレートを低減するよう指示を出している。
【０００６】
【発明が解決しようとする課題】
しかしながら、従来の方法では、送信装置は、受信装置からの指示を受け取ってから、受動的にストリームデータレートを低減するため、ネットワークのバンド幅に応じてストリームデータレートを対応させるときのタイムラグが大きい。また、一度ネットワークに送出されたストリームデータは、送信先（受信装置側）で受信されるまでネットワーク上に存在し続け、ネットワーク上のリソースを無駄に消費する場合があるという欠点があった。
【０００７】
本発明はこのような状況に鑑みてなされたものであり、ネットワークのバンド幅にストリームデータレートを対応させるときのタイムラグを小さくするとともに、ネットワーク上のリソースを有効利用することができるようにするものである。
【０００８】
【課題を解決するための手段】
請求項１に記載のストリーム配信システムは、ネットワークにマルチメディアストリームを送信するストリーム送信装置と、マルチメディアストリームを受信するストリーム受信装置と、ストリーム送信装置およびストリーム受信装置の間でストリーム伝送の中継を行うストリーム中継装置とがネットワークを介して接続されるストリーム配信システムであって、ストリーム送信装置は、ネットワークを介してマルチメディアストリームを送信してから、受信装置がマルチメディアストリームを受信するまでのネットワーク遅延時間を検出するネットワーク遅延時間検出手段と、ストリーム受信装置によるマルチメディアストリームの受信が、ストリーム受信装置によるマルチメディアストリームの再生に間に合うか否かを判定する第１の判定手段と、第１の判定手段により、ストリーム受信装置によるマルチメディアストリームの受信が、ストリーム受信装置によるマルチメディアストリームの再生に間に合わないと判定された場合、マルチメディアストリームを部分的に廃棄し、残りのマルチメディアストリームをネットワークを介して送信し、マルチメディアストリームのデータレートをネットワークのバンド幅に対応させるように制御する第１の制御手段とを備え、ストリーム中継装置は、マルチメディアストリームの再生時刻を検出するストリーム再生時刻検出手段と、ストリーム受信装置によるマルチメディアストリームの受信が、ストリーム受信装置によるマルチメディアストリームの再生に間に合うか否かを判定する第２の判定手段と、第２の判定手段により、ストリーム受信装置によるマルチメディアストリームの受信が、ストリーム受信装置によるマルチメディアストリームの再生に間に合わないと判定された場合、マルチメディアストリームを部分的に廃棄し、残りのマルチメディアストリームをネットワークを介して送信し、マルチメディアストリームのデータレートをネットワークのバンド幅に対応させるように制御する第２の制御手段とを備え、ストリーム受信装置は、ネットワークを介して受信したマルチメディアストリームから、マルチメディアストリームのデコード単位の一部が、ストリーム送信装置、またはストリーム中継装置によって破棄されたか否かを検知する検知手段と、ネットワークを介して受信したマルチメディアストリームを構成する各デコード単位のうち、デコード単位の一部が、ストリーム送信装置、またはストリーム中継装置によって破棄されたことが検知されていないものをデコードするデコード手段とを備えることを特徴とする。
また、ネットワーク遅延時間検出手段は、マルチメディアストリームがネットワークを介してストリーム受信装置に送信された時刻と、マルチメディアストリームがネットワークを介してストリーム受信装置に届いた時刻とを比較することにより、ネットワーク遅延時間を検出し、第１の判定手段により、マルチメディアストリーム自身が持つ再生時刻情報に基づいて、ストリーム送信装置から送信されるマルチメディアストリームのストリーム受信装置への到着予想時刻が、再生時刻情報によって示される再生時刻に対して、予め規定された基準時間以上早くないと判定された場合、第１の制御手段は、マルチメディアストリームを部分的に破棄し、残りのマルチメディアストリームをネットワークを介してストリーム受信装置に送信するように制御するようにすることができる。
また、第２の判定手段により、マルチメディアストリーム自身が持つ再生時刻情報と、ストリーム中継装置の内部時刻情報とが比較され、ストリーム中継装置の内部時刻情報が、再生時刻情報によって示される再生時刻に対して、予め規定された基準時間以上早くないと判定された場合、第２の制御手段は、マルチメディアストリームを部分的に破棄し、残りのマルチメディアストリームをネットワークを介してストリーム受信装置に送信するように制御するようにすることができる。
また、ストリーム受信装置は、ストリーム送信装置からネットワークを介して送信されたマルチメディアストリームが到着した時刻を示す到着時刻情報を、ストリーム送信装置に送信する到着時刻情報送信手段と、マルチメディアストリームが部分的に破棄されたことを検出するストリーム部分破棄検出手段と、ストリーム送信装置、またはストリーム中継装置において破棄された部分が含まれるデコード単位を破棄し、マルチメディアストリームのデータレートをネットワークのバンド幅に対応させるように制御する第３の制御手段とをさらに備えるようにすることができる。
請求項５に記載のストリーム送信装置は、ネットワークを介してストリーム受信装置にマルチメディアストリームを送信するストリーム送信装置であって、マルチメディアストリームをネットワークを介して送信してから、ネットワークに接続されたストリーム受信装置がマルチメディアストリームを受信するまでのネットワーク遅延時間を検出するネットワーク遅延時間検出手段と、ストリーム受信装置によるマルチメディアストリームの受信が、マルチメディアストリームの再生に間に合うか否かを判定する判定手段と、判定手段により、ストリーム受信装置によるマルチメディアストリームの受信が、マルチメディアストリームの再生に間に合わないと判定された場合、マルチメディアストリームを部分的に廃棄し、残りのマルチメディアストリームをネットワークを介して送信し、ネットワークのバンド幅に対応させるように制御する制御手段とを備え、ネットワーク遅延時間検出手段は、マルチメディアストリームをネットワークを介して伝送するための所定のストリーム伝送プロトコルのパケットを送信した時刻と、パケットがストリーム受信装置に届いた時刻とを比較することにより、ネットワーク遅延時間を検出し、判定手段により、マルチメディアストリーム自身が持つ再生時刻情報に基づいて、ストリーム送信装置から送信されたパケットのストリーム受信装置への到着予想時刻が、再生時刻情報によって示される再生時刻に対して所定の基準時間以上早くないと判定された場合、制御手段は、マルチメディアストリームを部分的に破棄し、残りのマルチメディアストリームをネットワークを介して送信し、ネットワークのバンド幅に対応させるように制御することを特徴とする。
請求項６に記載のストリーム中継装置は、ストリーム送信装置からネットワークを介して送信されたマルチメディアストリームをストリーム受信装置に中継するストリーム中継装置であって、マルチメディアストリームを中継した時刻に基づいて、マルチメディアストリームのストリーム受信装置への中継が、ストリーム受信装置によるマルチメディアストリームの再生に間に合うか否かを判定するストリーム中継時刻判定手段と、ストリーム中継時刻判定手段の判定結果に応じて、マルチメディアストリームを部分的に破棄し、残りのマルチメディアストリームをネットワークを介して送信する制御手段とを備え、ストリーム中継時刻判定手段により、マルチメディアストリーム自身、またはマルチメディアストリームのストリーム送信プロトコルが持つ再生時刻情報と、ストリーム中継装置の内部時刻を示す内部時刻情報とが比較され、再生時刻情報によって示される再生時刻に対して、内部時刻情報によって示される内部時刻が、予め規定された基準時間以上早くないと判定された場合、制御手段は、マルチメディアストリームを部分的に破棄し、残りのマルチメディアストリームをネットワークを介して送信し、ネットワークのバンド幅に対応させるように制御するようにすることができる。
請求項７に記載のストリーム受信装置は、ストリーム送信装置からネットワークおよびストリーム中継装置を介して送信されたマルチメディアストリームを受信し、再生するストリーム受信装置であって、ストリーム送信装置からネットワークを介して送信されたマルチメディアストリームが到着した時刻を示す到着時刻情報を、ストリーム送信装置に送信する到着時刻情報送信手段と、マルチメディアストリームが部分的に破棄されたことを検出するストリーム部分破棄検出手段と、ストリーム送信装置、またはストリーム中継装置において破棄された部分が含まれるデコード単位を破棄し、マルチメディアストリームのデータレートをネットワークのバンド幅に対応させるように制御する第３の制御手段とを備えることを特徴とする。
請求項８に記載のストリーム配信方法は、ネットワークにマルチメディアストリームを送信するストリーム送信装置と、マルチメディアストリームを受信するストリーム受信装置と、ストリーム送信装置およびストリーム受信装置の間でストリーム伝送の中継を行うストリーム中継装置とがネットワークを介して接続されるストリーム配信システムにおけるストリーム配信方法であって、ストリーム送信装置は、ネットワークを介してマルチメディアストリームを送信してから、受信装置がマルチメディアストリームを受信するまでのネットワーク遅延時間を検出するネットワーク遅延時間検出ステップと、ストリーム受信装置によるマルチメディアストリームの受信が、ストリーム受信装置によるマルチメディアストリームの再生に間に合うか否かを判定する第１の判定ステップと、第１の判定ステップにおいて、ストリーム受信装置によるマルチメディアストリームの受信が、ストリーム受信装置によるマルチメディアストリームの再生に間に合わないと判定された場合、マルチメディアストリームを部分的に廃棄し、残りのマルチメディアストリームをネットワークを介して送信し、マルチメディアストリームのデータレートをネットワークのバンド幅に対応させるように制御する第１の制御ステップとを備え、ストリーム中継装置は、マルチメディアストリームの再生時刻を検出するストリーム再生時刻検出ステップと、ストリーム受信装置によるマルチメディアストリームの受信が、ストリーム受信装置によるマルチメディアストリームの再生に間に合うか否かを判定する第２の判定ステップと、第２の判定ステップにおいて、ストリーム受信装置によるマルチメディアストリームの受信が、ストリーム受信装置によるマルチメディアストリームの再生に間に合わないと判定された場合、マルチメディアストリームを部分的に廃棄し、残りのマルチメディアストリームをネットワークを介して送信し、マルチメディアストリームのデータレートをネットワークのバンド幅に対応させるように制御する第２の制御ステップとを備え、ストリーム受信装置は、ネットワークを介して受信したマルチメディアストリームから、マルチメディアストリームのデコード単位の一部が、ストリーム送信装置、またはストリーム中継装置によって破棄されたか否かを検知する検知ステップと、ネットワークを介して受信したマルチメディアストリームを構成する各デコード単位のうち、デコード単位の一部が、ストリーム送信装置、またはストリーム中継装置によって破棄されたことが検知されていないものをデコードするデコードステップとを備えることを特徴とする。
請求項９に記載のストリーム配信プログラムは、ネットワークにマルチメディアストリームを送信するストリーム送信装置と、マルチメディアストリームを受信するストリーム受信装置と、ストリーム送信装置およびストリーム受信装置の間でストリーム伝送の中継を行うストリーム中継装置とがネットワークを介して接続されるストリーム配信システムを制御するストリーム配信プログラムであって、ストリーム送信装置に、ネットワークを介してマルチメディアストリームを送信してから、受信装置がマルチメディアストリームを受信するまでのネットワーク遅延時間を検出するネットワーク遅延時間検出ステップと、ストリーム受信装置によるマルチメディアストリームの受信が、ストリーム受信装置によるマルチメディアストリームの再生に間に合うか否かを判定する第１の判定ステップと、第１の判定ステップにおいて、ストリーム受信装置によるマルチメディアストリームの受信が、ストリーム受信装置によるマルチメディアストリームの再生に間に合わないと判定された場合、マルチメディアストリームを部分的に廃棄し、残りのマルチメディアストリームをネットワークを介して送信し、マルチメディアストリームのデータレートをネットワークのバンド幅に対応させるように制御する第１の制御ステップとを実行させ、ストリーム中継装置に、マルチメディアストリームの再生時刻を検出するストリーム再生時刻検出ステップと、ストリーム受信装置によるマルチメディアストリームの受信が、ストリーム受信装置によるマルチメディアストリームの再生に間に合うか否かを判定する第２の判定ステップと、第２の判定ステップにおいて、ストリーム受信装置によるマルチメディアストリームの受信が、ストリーム受信装置によるマルチメディアストリームの再生に間に合わないと判定された場合、マルチメディアストリームを部分的に廃棄し、残りのマルチメディアストリームをネットワークを介して送信し、マルチメディアストリームのデータレートをネットワークのバンド幅に対応させるように制御する第２の制御ステップとを実行させ、ストリーム受信装置に、ネットワークを介して受信したマルチメディアストリームから、マルチメディアストリームのデコード単位の一部が、ストリーム送信装置、またはストリーム中継装置によって破棄されたか否かを検知する検知ステップと、ネットワークを介して受信したマルチメディアストリームを構成する各デコード単位のうち、デコード単位の一部が、ストリーム送信装置、またはストリーム中継装置によって破棄されたことが検知されていないものをデコードするデコードステップとを実行させることを特徴とする。
本発明に係るストリーム配信システムにおいては、ストリーム送信装置は、ネットワークを介してマルチメディアストリームを送信してから、受信装置がマルチメディアストリームを受信するまでのネットワーク遅延時間を検出し、ストリーム受信装置によるマルチメディアストリームの受信が、ストリーム受信装置によるマルチメディアストリームの再生に間に合うか否かを判定し、ストリーム受信装置によるマルチメディアストリームの受信が、ストリーム受信装置によるマルチメディアストリームの再生に間に合わないと判定された場合、マルチメディアストリームを部分的に廃棄し、残りのマルチメディアストリームをネットワークを介して送信し、マルチメディアストリームのデータレートをネットワークのバンド幅に対応させるように制御し、ストリーム中継装置は、マルチメディアストリームの再生時刻を検出し、ストリーム受信装置によるマルチメディアストリームの受信が、ストリーム受信装置によるマルチメディアストリームの再生に間に合うか否かを判定し、ストリーム受信装置によるマルチメディアストリームの受信が、ストリーム受信装置によるマルチメディアストリームの再生に間に合わないと判定された場合、マルチメディアストリームを部分的に廃棄し、残りのマルチメディアストリームをネットワークを介して送信し、マルチメディアストリームのデータレートをネットワークのバンド幅に対応させるように制御し、ストリーム受信装置は、ネットワークを介して受信したマルチメディアストリームから、マルチメディアストリームのデコード単位の一部が、ストリーム送信装置、またはストリーム中継装置によって破棄されたか否かを検知し、ネットワークを介して受信したマルチメディアストリームを構成する各デコード単位のうち、デコード単位の一部が、ストリーム送信装置、またはストリーム中継装置によって破棄されたことが検知されていないものをデコードする。
【０００９】
【発明の実施の形態】
以下、本発明のストリーム配信システムの一実施の形態について説明する。図１は、本発明のストリーム配信システムの一実施の形態のシステム構成例を示す図である。
【００１０】
図１に示すように、本実施の形態は、送信装置１０と、中継装置Ａ１２と、中継装置Ｂ１４と、受信装置１６とから構成されている。送信装置１０はネットワークＡ１１を介してストリームデータを送信するようになっている。中継装置Ａ１２は、ネットワークＡ１１とネットワークＢ１３とを繋いでいる。また、中継装置Ｂ１４は、ネットワークＢ１３とネットワークＣ１５とを繋いでいる。受信装置１６は、ネットワークＣ１５を介してストリームデータを受信するようになっている。
【００１１】
送信装置１０は、受信装置１６からの要求に応じて、ネットワークＡ１１、ネットワークＢ１３、ネットワークＣ１５を通じて音声や動画などのストリームデータを提供する側のコンピュータである。送信装置１０は、図１に示すように、インターネットなどのネットワークＡ１１に接続されている。
【００１２】
図２は、送信装置１０の構成例を示すブロック図である。図２に示すように、送信装置１０は、ＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）エンコーダ１０１、ＣＰＵ（ｃｅｎｔｒａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ）１０２、ＲＯＭ（ｒｅａｄ  ｏｎｌｙ  ｍｅｍｏｒｙ）１０３、ＲＡＭ（ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）１０４、ネットワーク遅延時間検出部１０５、ネットワークインターフェース１０６、ＨＤＤ（ｈａｒｄ
ｄｉｓｋ  ｄｒｉｖｅ：ハードディスク・ドライブ）１０７を備えている。
【００１３】
ここで、ＭＰＥＧエンコーダ１０１は、外部からの映像信号をＭＰＥＧ２トランスポートストリームにエンコードする装置であり、エンコードされたトランスポートストリームはＨＤＤ１０７に記録される。ＣＰＵ１０２は、送信装置１０の全体制御を行うプロセッサである。ＲＯＭ１０３は、読み出し専用のメモリ（記録媒体）であり、ＣＰＵ１０２を動作させるための制御プログラムが記録されている。ＲＡＭ１０４は、ＣＰＵ１０２が様々な処理を行う上で必要とするデータを一時的に格納する。ネットワーク遅延時間検出部１０５は、ＩＰパケット送信時刻と、受信時刻情報（送信装置１０が送信したＩＰパケットを受信装置１６が受信した時刻を示す時刻情報であり、受信時刻情報パケットは、受信装置１６から送信装置１０に送信される）を比較し、ネットワークの遅延時間を検出する。ネットワークインターフェース１０６は、ストリーム送信要求、受信時刻情報、表示開始時刻情報などのＩＰパケットを受信し、ストリームデータＩＰパケット等の送信を行う。ＨＤＤ１０７は、高速回転する円盤（ディスク）上に対してデータの読み書きをする記憶媒体であり、受信装置１６からのストリーム送信要求に応じて、受信装置１６に対して送信するストリームデータが保存されている。
【００１４】
図１に戻って、受信装置１６は、ネットワークＣ１５上で音声や動画などのストリームデータの配信サービスを受ける側のユーザのパーソナルコンピュータである。受信装置１６は、図１に示すように、ネットワークＣ１５に接続されている。なお、受信装置１６は、パーソナルコンピュータ以外に、ビデオデッキやテレビジョン装置などで構成されるようにしてもよい。
【００１５】
図３は、受信装置１６の構成例を示すブロック図である。図３に示すように、受信装置１６は、ＭＰＥＧデコーダ１６１、ＣＰＵ１６２、ＲＯＭ１６３、ＲＡＭ１６４、ストリーム部分破棄検出手段１６５、ネットワークインターフェース１６６，ＨＤＤ１６７、及びモニタ１６８を備えている。
【００１６】
ここで、ＭＰＥＧデコーダ１６１は、ＨＤＤ１６７に保存されたＭＰＥＧトランスポートストリームをデコードし、モニタ１６８に出力する装置である。ＣＰＵ１６２は、受信装置１６の全体制御を行うプロセッサである。ＲＯＭ１６３は、読み出し専用のメモリ（記録媒体）であり、ＣＰＵ１６２を動作させるための制御プログラムが記録されている。ＲＡＭ１６４は、ＣＰＵ１６２が様々な処理を行う上で必要とするデータを一時的に格納する。ストリーム部分破棄検出手段１６５は、ＭＰＥＧ２のトランスポートストリームを構成するＩ，Ｐ，Ｂの各ピクチャ（デコード単位）の一部分を含むＩＰパケットが、送信装置１０、中継装置Ａ１２、又は中継装置Ｂ１４によって破棄されたことを検知し、破棄された部分を含むＰピクチャ又はＢピクチャの全体を無効とする手段である。ネットワークインターフェース１６６は、ストリーム送信要求、受信時刻情報、表示開始時刻情報などのＩＰパケットを送信し、ストリームデータＩＰパケット等の受信を行う。ＨＤＤ１６７は、高速回転する円盤（ディスク）上に対してデータを読み書きする記憶媒体であり、送信装置から送信されたストリームデータを保存する。
【００１７】
図１に戻って、中継装置Ａ１２は、送信装置１０と受信装置１６との伝送路上の途中で、ＩＰパケットを受信装置１６側のネットワークに流すための装置であり、無関係なネットワークにはＩＰパケットを流さないことにより、ネットワーク全体のトラフィックを低減する役割を有している。中継装置Ａ１２は、ネットワークＡ１１とネットワークＢ１３を繋ぐ。なお、インターネットでは、本中継装置Ａ１２はルータと呼ばれている。
【００１８】
図４は、中継装置Ａ１２の構成例を示すブロック図である。図４に示すように、中継装置Ａ１２は、ＣＰＵ１２２、ＲＯＭ１２３、ＲＡＭ１２４、ストリーム中継時刻判断部１２５、ネットワークインターフェース１２６を備えている。ＣＰＵ１２２は、中継装置Ａ１２の全体制御を行うプロセッサである。ＲＯＭ１２３は、読み出し専用のメモリ（記録媒体）であり、ＣＰＵ１２２を動作させるための制御プログラムが記録されている。ＲＡＭ１２４は、ＣＰＵ１２２が様々な処理を行う上で必要とするデータを一時的に格納する。ストリーム中継時刻判断部１２５は、ＩＰパケットが受信装置１６が必要とする時刻までに到着するか否かの判断を行い、受信装置１６が必要とする時刻に遅れると判断した場合には、所定の条件に基づいてＰピクチャ又はＢピクチャを破棄する。ネットワークインターフェース１２６は、ストリーム送信要求、受信時刻情報、表示開始時刻情報、ストリームデータＩＰパケット等の中継を行う。
【００１９】
図１に戻って、中継装置Ｂ１４は、送信装置１０と受信装置１６との伝送路上の途中で、ＩＰパケットを受信装置１６側のネットワークに流すための装置であり、無関係なネットワークにはＩＰパケットを流さないことにより、ネットワーク全体のトラフィックを低減する役割を有している。中継装置Ｂ１４は、ネットワークＢ１３とネットワークＣ１５を繋ぐ。なお、インターネットでは、本中継装置Ｂ１４はルータと呼ばれている。
【００２０】
図５は、中継装置Ｂ１４の構成例を示すブロック図である。図５に示すように、中継装置Ｂ１４は、ＣＰＵ１４２、ＲＯＭ１４３、ＲＡＭ１４４、ストリーム中継時刻判断部１４５、ネットワークインターフェース１４６を備えている。ＣＰＵ１４２は、中継装置Ｂ１４の全体制御を行うプロセッサである。ＲＯＭ１４３は、読み出し専用のメモリ（記録媒体）であり、ＣＰＵ１４２を動作させるための制御プログラムが記録されている。ＲＡＭ１４４は、ＣＰＵ１４２が様々な処理を行う上で必要とするデータを一時的に格納する。ストリーム中継時刻判断部１４５は、ＩＰパケットが受信装置１６が必要とする時刻までに到着するか否かの判断を行い、受信装置１６が必要とする時刻に遅れると判断した場合には、所定の条件に基づいてＰピクチャ又はＢピクチャを破棄する。ネットワークインターフェース１４６は、ストリーム送信要求、受信時刻情報、表示開始時刻情報、ストリームデータＩＰパケット等の中継を行う。
【００２１】
なお、ストリームデータとしては、音声や動画などのデータに適用することが可能であるが、本実施の形態では、図６に示すような、ＭＰＥＧ（ＭｏｔｉｏｎＰｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）ＰＳ（Ｐｒｏｇｒａｍ  Ｓｔｒｅａｍ：プログラムストリーム）、ＴＳ（Ｔｒａｎｓｐｏｒｔ  Ｓｔｒｅａｍ：トランスポートストリーム）形式の動画のストリームデータを例に説明するものとする。
【００２２】
図６に示すように、ＭＰＥＧのストリームデータは、フレーム（動画像を構成する単位となる１枚の静止画像）毎に分かれており、フレームには、Ｉピクチャフレーム、Ｂピクチャフレーム、及びＰピクチャフレームの３種類がある。Ｉピクチャフレームは、前後のフレームへの参照がない画像であり、Ｂピクチャフレームは、前後のフレームへの双方向予測符号化画像であり、また、Ｐピクチャフレームは、フレームの順方向予測符号化画像である。
【００２３】
また、図６に示したＧＯＰ（Ｇｒｏｕｐ  Ｏｆ  Ｐｉｃｔｕｒｅ）は、ストリームデータのランダムアクセスを可能とするために、Ｉピクチャと呼ばれる画面内だけで閉じた情報によるフレーム内符号化画像が定期的に挿入され、このフレーム内符号化画像が少なくとも１枚入った画像群構造のことである。図６では、１ＧＯＰは１５枚のピクチャから構成され、０．５秒（Ｓｅｃ）となっている。
【００２４】
図７は、ＭＰＥＧストリームをＵＤＰ／ＩＰパケットに分割して送信する場合の構造を示し、各ピクチャ（Ｉピクチャ、Ｐピクチャ、及びＢピクチャ）は、それぞれ、１つ又は複数のＵＤＰ／ＩＰパケットに分割される。ＵＤＰ／ＩＰパケットは、プロトコルの定めるＩＰヘッダ、及びＵＤＰヘッダと、所定のストリーミングヘッダを持ち、ストリーミングヘッダは、ピクチャの時間的なデコード順を示すピクチャＮｏ．、ＩＰパケットの通しＮｏ．（ＩＰパケットＮｏ．）、ピクチャを構成するＩＰパケット数、Ｂピクチャを削除する指針となる破棄レベル１時刻、Ｂピクチャ及びＰピクチャを破棄する指針となる破棄レベル２時刻の情報を持つ。
【００２５】
なお、図１では、ネットワークＡ１１に１台の送信装置１０が接続され、ネットワークＣ１５に１台の受信装置１６が接続されているが、台数に制限はない。ネットワークのトポロジ（ネットワーク・デバイスなどの物理的な配置）にも規制はない。
【００２６】
次に、本実施の形態の動作について説明する。図８は、本実施の形態の送信装置１０の動作を示すフローチャートである。まず最初に、受信装置１６からのストリーム送信要求があったか否かが判定される。即ち、受信装置１６が発行するストリーム名情報を格納したストリーム送信要求の受信確認を行い（ステップＳ２０１）、ストリーム送信要求を受信していない場合（ステップＳ２０１のＮＯ）、再び、ストリーム送信要求の受信確認を行う（ステップ２０１）。
【００２７】
一方、ストリーム送信要求を受信した場合（ステップＳ２０１のＹＥＳ）、以下に述べる手順で、図６に示した構造のＭＰＥＧストリームの各ピクチャを、図７に示した構造のＵＤＰ／ＩＰパケットで受信装置１６に送信する。
【００２８】
まず、ネットワーク遅延時間１、及びネットワーク遅延時間２の値を０に設定する（ステップＳ２０２）。ネットワーク遅延時間１は、送信したＩＰパケットが受信装置１６に到着するまでの時間を表している。受信装置１６は、送信装置１０から送られてきたストリームのピクチャデータを含むピクチャＩＰパケットを受信すると、当該ピクチャＩＰパケットを受信した受信装置１６の内部時刻を記載した受信時刻情報ＩＰパケットを送信装置１０に送信する。そして、送信装置１０は、送信したＩＰパケットの送信時刻と、受信装置１６から送られてきた受信時刻情報ＩＰパケットに記載された受信時刻とを比較し、上記送信時刻から上記受信時刻を差し引いた時間をネットワーク遅延時間１とする。
【００２９】
ネットワーク遅延時間２は、最後に受信した時刻情報ＩＰパケットに対応したピクチャＩＰパケットの次に送信したピクチャＩＰパケットの送信してからの経過時間を表している。このネットワーク遅延時間２は、送信装置１０がピクチャＩＰパケットを送信したときの送信装置１０の内部時刻と、現在の時刻とを比較することにより得られる。即ち、現在の時刻から、送信装置１０がピクチャＩＰパケットを送信したときの送信装置１０の内部時刻を差し引くことにより、ネットワーク遅延時間２が求まる。
【００３０】
次に、ストリームの全てのデータの送信終了確認を行い（ステップＳ２０３）未送信のストリームデータがある場合（ステップＳ２０３のＮＯ）は、新たな受信時刻情報の受信確認を行い（ステップＳ２０４）、受信している場合（ステップＳ２０４のＹＥＳ）には、ネットワーク遅延時間１（＝最新のＩＰパケットの受信時刻−最新のＩＰパケットの送信時刻）を算出し、設定する（ステップＳ２０５）。
【００３１】
最新の受信時刻情報ＩＰパケットを受信したときより以降に、受信時刻情報ＩＰパケットを未だ受信していないピクチャＩＰパケットが存在するか否かを確認し（ステップＳ２０６）、最新の受信時刻情報ＩＰパケットを受信したときより以降に、受信時刻情報ＩＰパケットを未だ受信していないピクチャＩＰパケットが存在する場合、ネットワーク遅延時間２（＝時刻情報未受信のＩＰパケットの送信後の経過時間）を設定する（ステップＳ２０７）。
【００３２】
ネットワーク遅延時間は、送信装置１０から送信したＩＰパケットが受信装置１６に到着するまでの時間であり、ネットワーク遅延時間１の値とネットワーク遅延時間２の値のうちの大きい方の値をネットワーク遅延時間として設定する（ステップＳ２０８）。
【００３３】
次に、表示開始時刻情報ＩＰパケットの受信確認（受信したか否かの判定）を行い（ステップＳ２０９）、受信済みの場合は、後述するように、表示開始時刻を用いた所定の演算を行うことにより、破棄レベル１閾値、及び破棄レベル２閾値を設定する（ステップＳ２１０）。
【００３４】
破棄レベル１閾値は、送信装置１０において、ストリームデータを間引くことにより、狭いネットワークバンド幅に対応させるための指標（単位は時間）である。マルチメディアストリームの先頭ピクチャのＩＰパケットを送信した時刻である先頭ピクチャＩＰパケット送信時刻と表示開始時刻情報ＩＰパケットが示す表示開始時刻を比較し、両者の時間差を演算し、演算によって得られた時間差より小さい値（例えば、時間差に０．７を乗じた値）を破棄レベル１閾値として設定する。
【００３５】
破棄レベル２閾値は、送信装置１０において、ストリームデータを間引いてさらに狭いネットワークバンド幅に対応させるための指標（単位は時間）である。先頭ピクチャＩＰパケット送信時刻と表示開始時刻情報ＩＰパケットが示す表示開始時刻を比較し、両者の時間差を演算し、演算によって得られた時間差より小さい値を（例えば、時間差に０．５を乗じた値）を破棄レベル２閾値として設定する。
【００３６】
そして、後述するように、ピクチャＩＰパケットの受信装置１６への到着予想時刻と、このピクチャＩＰパケットの表示時刻との時間差（余裕時間）（＝表示時刻−到着予想時刻）が、破棄レベル１閾値として示される時間を下回ると、ネットワークのバンド幅が狭くなってきたと判断し、これに対応するために、破棄レベルを１に設定し、Ｂピクチャを破棄して送信する。
【００３７】
また、後述するように、ピクチャＩＰパケットの受信装置１６への到着予想時刻と、このピクチャＩＰパケットの表示時刻との時間差（余裕時間）（＝表示時刻−到着予想時刻）が、破棄レベル２閾値として示される時間を下回ると、ネットワークのバンド幅がさらに狭くなってきたと判断し、これに対応するために破棄レベルを２に設定し、Ｐ及びＢピクチャを破棄して送信する。
【００３８】
次に、余裕時間が破棄レベル２閾値より小さいか否かが判定される（ステップＳ２１１）。余裕時間とは、ピクチャＩＰパケットが受信装置１６に届いた時刻（受信装置到着予想時刻）と、受信装置１６がこのピクチャＩＰパケットに含まれるピクチャをモニタ１６８に表示させる時刻（受信装置表示時刻）との差であり、時間的余裕を示しており、次式で算出される。
余裕時間  ＝  受信装置表示時刻  ―  受信装置到着予想時刻
【００３９】
余裕時間が大きいほど、受信装置１６側で、受信したストリームデータが不足することにより生じるストリームデータアンダーランが発生しにくくなる。受信装置到着予想時刻は、現在の時刻にネットワーク遅延時間を加算する（現在時刻＋ネットワーク遅延時間）ことにより算出される。表示時刻は、表示開始時刻にＰＴＳ（Ｐｒｅｓｅｎｔａｔｉｏｎ  Ｔｉｍｅ  Ｓｔａｍｐ：再生時刻情報）オフセット時間を加算する（表示開始時刻＋ＰＴＳオフセット時間）ことにより算出される。
【００４０】
ＰＴＳは、ＭＰＥＧプログラムストリーム、又はＭＰＥＧトランスポートストリームが含む表示時刻情報であり、ＰＴＳオフセット時間は、ＭＰＥＧストリームの先頭からの時間である。
【００４１】
ステップＳ２１１において、余裕時間が破棄レベル２閾値より小さいと判定された場合、破棄レベルを２に設定する（ステップＳ２１２）。一方、ステップＳ２１１において、余裕時間が破棄レベル２閾値より大きいか又は等しいと判定された場合、余裕時間が破棄レベル１閾値より小さいか否かが判定され（ステップ２１５）、余裕時間が破棄レベル１閾値より小さいと判定された場合、破棄レベルを１に設定する（ステップＳ２１６）。一方、余裕時間が破棄レベル１閾値より大きいか又は等しいと判定された場合、ステップＳ２１３に進む。
【００４２】
そして、設定された破棄レベルに応じて、ピクチャを破棄し、現在の時刻が次に送信するピクチャＩＰパケットの送信時刻になるまで待った後（ステップＳ２１３）、又は、既に送信時刻を過ぎている場合は直ちに、次のピクチャＩＰパケットを送信し（ステップＳ２１４）、ステップＳ２０３に戻り、ステップＳ２０３以降の処理が繰り返し実行される。
【００４３】
ピクチャＩＰパケットの送信時刻は、次式で表される。
ピクチャＩＰパケットの送信時刻＝先頭ピクチャＩＰパケット送信時刻＋ＰＴＳオフセット時間
【００４４】
ピクチャＩＰパケットは、図７に示すような構造であり、ストリームミングヘッダ内の破棄レベル１時刻は、次式に示すように、ピクチャＩＰパケット表示時刻から破棄レベル１閾値を差し引くことにより算出される。
破棄レベル１時刻  ＝  ピクチャＩＰパケット表示時刻―破棄レベル１閾値
【００４５】
破棄レベル２時刻は、次式に示すように、ピクチャＩＰパケット表示時刻から破棄レベル１閾値を差し引くことにより算出される。
破棄レベル２時刻  ＝  ピクチャＩＰパケット表示時刻―破棄レベル２閾値
【００４６】
図９は、本発明の中継装置Ａ１２、及び中継装置Ｂ１４の動作を示すフローチャートである。中継装置Ａ１２と中継装置Ｂ１４の動作は基本的に同様であるので、ここでは、中継装置Ａ１２の動作についてのみ説明し、中継装置Ｂ１４の動作についての説明は省略する。
【００４７】
まず最初に、中継装置Ａ１２のＣＰＵ１２２により、ピクチャＩＰパケットの受信確認（ピクチャＩＰを受信したか否かの判定）が行われ（ステップＳ３０１）、ピクチャＩＰパケットを受信していないと判定された場合、ステップＳ３０１に戻り、ステップＳ３０１以降の処理が繰り返し実行される。一方、ピクチャＩＰパケットを受信したと判定された場合、受信したピクチャＩＰパケットのストリーミングヘッダに格納されている破棄レベル１時刻と、中継装置Ａ１２の内部時刻とが比較され、破棄レベル１時刻を中継装置Ａ１２の内部時刻が過ぎているか否かが判定される（ステップＳ３０２）。
【００４８】
ステップＳ３０２において、受信したピクチャＩＰパケットのストリーミングヘッダに格納されている破棄レベル１時刻を中継装置Ａ１２の内部時刻が過ぎていると判定された場合は、受信したピクチャＩＰパケットがＢピクチャであるか否かが判定される（ステップＳ３０３）。その結果、受信したピクチャＩＰパケットがＢピクチャであると判定された場合、このピクチャＩＰパケットを破棄し（ステップＳ３０４）、受信装置１６には転送しない。
【００４９】
一方、ステップＳ３０２において、受信したピクチャＩＰパケットのストリーミングヘッダに格納されている破棄レベル１時刻を中継装置Ａ１２の内部時刻が過ぎていないと判定された場合、又はステップＳ３０３において、受信したピクチャＩＰパケットがＢピクチャでないと判定された場合、又はステップＳ３０４において、受信したピクチャＩＰパケットが破棄された後、ステップＳ３０５に進む。
【００５０】
ステップＳ３０５においては、受信したピクチャＩＰパケットに格納されている破棄レベル２時刻と、中継装置Ａ１２の内部時刻とが比較され、ピクチャＩＰパケットのストリーミングヘッダに格納されている破棄レベル２時刻を中継装置Ａ１２の内部時刻が過ぎていた場合は、受信したピクチャＩＰパケットがＰピクチャのＩＰパケットであるか否かが判定される（ステップＳ３０６）。その結果、受信したピクチャＩＰパケットがＰピクチャのＩＰパケットであると判定された場合、このピクチャＩＰパケットを破棄し（Ｓ３０７）、受信装置１６には転送せず、再びピクチャＩＰパケットの受信確認のため、ステップＳ３０１に戻る。
【００５１】
一方、ステップＳ３０５において、受信したピクチャＩＰパケットに格納されている破棄レベル２時刻を中継装置Ａ１２の内部時刻が過ぎていないと判定された場合、又はステップＳ３０６において、受信したピクチャＩＰパケットがＰピクチャのＩＰパケットではないと判定された場合、受信したピクチャＩＰパケットを受信装置１６に転送する（ステップＳ３０８）。
【００５２】
図１０は、本実施の形態の受信装置１６の動作を示すフローチャートである。まず最初に、受信装置１６のＣＰＵ１６２は、所望のストリームのストリーム名情報を含む送信要求をネットワークインターフェース１６６を介して送信装置１０に送信し（ステップＳ４０１）、図７に示すような形式で送信装置１０から送られてきたピクチャＩＰパケットを受信し、ＭＰＥＧデコーダ１６１に供給する。ＭＰＥＧデコーダ１６１は、ＣＰＵ１６２より供給されたピクチャＩＰパケットをデコードし、モニタ１６８に供給する。モニタ１６８は、ＭＰＥＧデコーダ１６１より供給されたデコードされたピクチャＩＰパケットに対応する動画や静止画を画面に表示する。
【００５３】
次に、ストリームの受信終了確認を行い（ステップＳ４０２）、ストリームの受信が終了した場合、本処理を終了する。一方、ストリームの受信が終了していない場合は、新規のピクチャＩＰパケットの受信確認を行い（ステップＳ４０３）、新規のピクチャＩＰパケットを受信していない場合には、再び、ストリームの受信終了確認を行うため、ステップＳ４０２に戻る。
【００５４】
ステップＳ４０３において、新規にピクチャＩＰパケットを受信している場合には、新規に受信したピクチャＩＰパケットが無効ピクチャＩＰパケットであるか否かが判定される（ステップＳ４０４）。無効ＩＰパケットとは、過去において、送信装置１０、又は中継装置Ａ１２、又は中継装置Ｂ１４によって破棄されたピクチャＩＰパケットのストリーミングヘッダに含まれるピクチャＮｏ．（図７）が同一の各ピクチャＩＰパケットＮｏ．（ＩＰパケットＮｏ．）のピクチャＩＰパケットのことである。これは、単一ピクチャが複数のピクチャＩＰパケットに分割される可能性を考慮している。
【００５５】
ステップＳ４０４における無効ＩＰパケットであるか否かの判定は次にようにして行われる。即ち、後述するように、ステップＳ４０８において、受信ピクチャ番号（ストリーミングヘッダのピクチャＮｏ．）の連続性を判断し、受信ピクチャ番号が不連続である場合には、抜けているピクチャ番号、即ち、非到着のピクチャ番号のピクチャをステップＳ４１４にて無効ピクチャとし、この無効ピクチャに対応するＩＰパケットを無効ＩＰパケットと判定する。ステップＳ４０４において、新規に受信したピクチャＩＰパケットが無効ＩＰパケットであると判定された場合、新規に受信したピクチャＩＰパケットは破棄される（ステップＳ４１０）。
【００５６】
一方、ステップＳ４０４において、新規に受信したピクチャＩＰパケットが無効ＩＰパケットではないと判定された場合、ピクチャＩＰパケットを受信した時刻を示すパケット受信時刻情報を送信装置１０に送信する（ステップＳ４０５）。
【００５７】
次に、既にストリームのデコードを開始しているか否かが判定される（ステップＳ４０６）。その結果、既にストリームのデコードを開始していると判定された場合、このピクチャＩＰパケットの受信により、このピクチャＩＰパケットと同一のピクチャＮｏ．を持つピクチャＩＰパケットが、パケット数分だけ揃ったか否かが判定される。即ち、ピクチャを構成するパケット数（図７）だけ、同一ピクチャＮｏ．を持つピクチャＩＰパケットを受信したか否かが判定される（ステップＳ４０７）。
【００５８】
その結果、ピクチャを構成するパケット数分のピクチャＩＰパケットを受信し、ピクチャを構成する全てのピクチャＩＰパケットが揃ったと判定された場合、このピクチャが、直前にデコードしたピクチャと連続していることを、このピクチャのピクチャＮｏ．と、直前にデコードしたピクチャのピクチャＮｏ．とを比較することにより確認し（ステップＳ４０８）、連続している場合はこのピクチャのデコードを開始する（ステップＳ４０９）。
【００５９】
一方、ステップＳ４０６において、まだデコードを開始していないと判定された場合、ネットワーク遅延時間の揺らぎに対応するため、例えば、ＨＤＤ１６７に蓄えたストリームデータが１０秒分（連続するピクチャ２０枚）だけあるか否かが判定される（ステップＳ４１１）。その結果、ストリームデータが１０秒分だけローカル環境にある（ＨＤＤ１６７に記憶されている）と判定された場合、このストリームデータのデコードを開始し（ステップＳ４１２）、表示開始時刻情報を送信装置１０に送信する（ステップＳ４１３）。
【００６０】
ステップＳ４０８において、揃ったピクチャが直前にデコードしたピクチャと連続していないと判定された場合、受信しなかったピクチャＮｏ．のピクチャを無効ピクチャとする（ステップＳ４１４）。
【００６１】
ステップＳ４１０でＩＰパケットを破棄した後、又はステップＳ４１１において、１０秒分のデータがまだ溜まっていないと判定された場合、又はステップＳ４０７において、同一ピクチャＮｏ．を持つ全ピクチャＩＰパケットが揃っていないと判定された場合、又はステップＳ４１３において、表示開始時刻情報を送信した後、又はステップＳ４０９において、ピクチャのデコードを開始した後、又はステップＳ４１４において、受信しなかったピクチャＮｏ．のピクチャを無効ピクチャとした後、ステップＳ４０２に戻り、ステップＳ４０２以降の処理が繰り返し実行される。
【００６２】
以上説明したように、送信装置１０、中継装置Ａ１２、中継装置Ｂ１４は、それぞれ、能動的に、ネットワークのバンド幅に応じて、適宜ピクチャＩＰパケットを破棄することができるので、ネットワークのバンド幅にストリームデータレートを対応させるときのタイムラグを小さくするとともに、ネットワーク上のリソースを無駄に消費することを抑制することができる。
【００６３】
また、上述したような処理を実行するプログラムは、ＣＤ−ＲＯＭ（ｃｏｍｐａｃｔ  ｄｉｓｃ  ｒｅａｄ  ｏｎｌｙ  ｍｅｍｏｒｙ）、ＤＶＤ（ｄｉｇｉｔａｌ  ｖｅｒｓａｔｉｌｅ  ｄｉｓｃ）、フロッピーディスク、メモリカード等の様々な記録媒体に記録して提供することができる。そして、そのプログラムは、各装置の動作を制御し、プログラム制御されたその装置が上記プログラムにより指令される所定の処理を実行する。
【００６４】
なお、上記実施の形態においては、ＭＰＥＧのストリームデータを扱う場合について説明したが、これに限定されるものではない。
【００６５】
また、上記実施の形態の構成及び動作は例であって、本発明の趣旨を逸脱しない範囲で適宜変更することができることは言うまでもない。
【００６６】
【発明の効果】
以上の如く、本発明に係るストリーム配信システムによれば、ストリーム送信装置は、ネットワークを介してマルチメディアストリームを送信してから、受信装置がマルチメディアストリームを受信するまでのネットワーク遅延時間を検出し、ストリーム受信装置によるマルチメディアストリームの受信が、ストリーム受信装置によるマルチメディアストリームの再生に間に合うか否かを判定し、ストリーム受信装置によるマルチメディアストリームの受信が、ストリーム受信装置によるマルチメディアストリームの再生に間に合わないと判定された場合、マルチメディアストリームを部分的に廃棄し、残りのマルチメディアストリームをネットワークを介して送信し、マルチメディアストリームのデータレートをネットワークのバンド幅に対応させるように制御し、ストリーム中継装置は、マルチメディアストリームの再生時刻を検出し、ストリーム受信装置によるマルチメディアストリームの受信が、ストリーム受信装置によるマルチメディアストリームの再生に間に合うか否かを判定し、ストリーム受信装置によるマルチメディアストリームの受信が、ストリーム受信装置によるマルチメディアストリームの再生に間に合わないと判定された場合、マルチメディアストリームを部分的に廃棄し、残りのマルチメディアストリームをネットワークを介して送信し、マルチメディアストリームのデータレートをネットワークのバンド幅に対応させるように制御し、ストリーム受信装置は、ネットワークを介して受信したマルチメディアストリームから、マルチメディアストリームのデコード単位の一部が、ストリーム送信装置、またはストリーム中継装置によって破棄されたか否かを検知し、ネットワークを介して受信したマルチメディアストリームを構成する各デコード単位のうち、デコード単位の一部が、ストリーム送信装置、またはストリーム中継装置によって破棄されたことが検知されていないものをデコードするようにしたので、ストリーム送信装置またはストリーム中継装置が能動的にマルチメディアストリームを部分的に間引いてネットワークのバンド幅に対応させることができ、ストリームデータを受信装置で再生するときの時間的なズレを抑制することができる。また、ネットワーク上のリソースを無駄に消費することを抑制することができる。
【図面の簡単な説明】
【図１】本発明のストリーム配信システムを示すシステム構成図である
【図２】送信装置の構成を示すブロック図である
【図３】受信装置の構成を示すブロック図である
【図４】中継装置Ａの構成を示すブロック図である
【図５】中継装置Ｂの構成を示すブロック図である
【図６】ＭＰＥＧストリームのピクチャ構成を示す図である
【図７】ＭＰＥＧストリームを送信するＵＤＰ／ＩＰパケット構成を示す図である
【図８】送信装置の動作を示すフローチャートである
【図９】中継装置Ａ，Ｂの動作を示すフローチャートである
【図１０】受信装置の動作を示すフローチャートである
【符号の説明】
１０  送信装置
１１  ネットワークＡ
１２  中継装置Ａ
１３  ネットワークＢ
１４  中継装置Ｂ
１５  ネットワークＣ
１６  受信装置
１０２，１２２，１４２，１６２  ＣＰＵ
１０３，１２３，１４３，１６３  ＲＯＭ
１０４，１２４，１４４，１６４  ＲＡＭ
１０１  ＭＰＥＧエンコーダ
１０５  ネットワーク遅延時間検出部
１０６，１２６，１４６，１６６  ネットワークインターフェース
１０７，１６７  ＨＤＤ
１２５，１４５  ストリーム中継時刻判断部
１６１  ＭＰＥＧデコーダ
１６５  ストリーム部分破棄検出手段
１６８  モニタ
【図１】
0003654211.tif 000002
【図２】
0003654211.tif 000003
【図３】
0003654211.tif 000004
【図４】
0003654211.tif 000005
【図５】
0003654211.tif 000006
【図６】
0003654211.tif 000007
【図７】
0003654211.tif 000008
【図８】
0003654211.tif 000009
【図９】
0003654211.tif 000010
【図１０】
0003654211.tif 000011