(57)【要約】【課題】  映像品質を改善できる帯域制御装置、通信システム、及び帯域制御方法を提供する。【解決手段】  帯域制御装置は、他装置から受信したパケットを通過させる帯域を制御する帯域制御装置において、映像データを含む前記パケットから、前記パケットが属する通信セッションの最初の前記映像データが再生される時刻を基準とする経過時刻を示す時刻情報を取得する取得部と、前記映像データが再生される再生時刻を、前記時刻情報に基づいて推定する推定部と、前記映像データを含む前記パケットの各々の前記再生時刻のうち、最も早い再生時刻までの残り時間が所定の閾値以上である場合、他のデータを含む前記パケットを通過させ、前記残り時間が前記所定の閾値より少ない場合、前記映像データを含む前記パケットを、前記再生時刻の順に従って通過させる通過制御部とを有する。【選択図】図８
2016116164.tif 000002
【特許請求の範囲】
【請求項１】
他装置から受信したパケットを通過させる帯域を制御する帯域制御装置において、
映像データを含む前記パケットから、前記パケットが属する通信セッションの最初の前記映像データが再生される時刻を基準とする経過時刻を示す時刻情報を取得する取得部と、
前記映像データが再生される再生時刻を、前記時刻情報に基づいて推定する推定部と、
前記映像データを含む前記パケットの各々の前記再生時刻のうち、最も早い再生時刻までの残り時間が所定の閾値以上である場合、他のデータを含む前記パケットを通過させ、前記残り時間が前記所定の閾値より少ない場合、前記映像データを含む前記パケットを、前記再生時刻の順に従って通過させる通過制御部とを有することを特徴とする帯域制御装置。
【請求項２】
前記推定部は、前記通信セッションごとに、前記時刻情報が示す経過時刻と、最初に取得した前記時刻情報が示す経過時刻との差分に基づいて、前記再生時刻を推定することを特徴とする請求項１に記載の帯域制御装置。
【請求項３】
前記推定部は、前記通信セッションごとに、前記映像データを含む最初の前記パケットを通過させた時刻に前記差分を加算することにより、前記再生時刻を推定することを特徴とする請求項２に記載の帯域制御装置。
【請求項４】
前記取得部は、前記映像データを含む前記パケットに前記時刻情報が含まれていないとき、前記通信セッションについて、直前に取得した前記時刻情報を含む前記パケットより後に受信した前記パケットに含まれる前記映像データのデータ量の合計を、前記映像データのビットレートで除算し、該除算により得た値を、直前に取得した前記時刻情報が示す経過時刻に加算することにより、前記再生時刻を算出することを特徴とする請求項１乃至３の何れかに記載の帯域制御装置。
【請求項５】
前記推定部は、前記通信セッションの全ての前記映像データが複数のセグメントに分割されて送信されるとき、前記複数のセグメントのうち、先頭のセグメントの最初の前記映像データを通過させた時刻と、前記時刻情報が示す経過時刻と、先頭のセグメントから直前のセグメントまでの前記映像データの各々の再生に要する時間の合計値とに基づいて、前記再生時刻を算出することを特徴とする請求項１乃至４の何れかに記載の帯域制御装置。
【請求項６】
複数のサーバ装置と、帯域制御装置と、複数の端末装置とを有する通信システムにおいて、
前記複数のサーバ装置は、それぞれ、前記帯域制御装置にパケットを送信し、
前記帯域制御装置は、前記複数のサーバ装置から受信した前記パケットを通過させる帯域を制御し、
前記複数の端末装置は、それぞれ、前記帯域制御装置を通過した前記パケットを受信し、
前記帯域制御装置は、
映像データを含む前記パケットから、前記パケットが属する通信セッションの最初の前記映像データが再生される時刻を基準とする経過時刻を示す時刻情報を取得する取得部と、
前記複数の端末装置において前記映像データが再生される再生時刻を、前記時刻情報に基づいて推定する推定部と、
前記映像データを含む前記パケットの各々の前記再生時刻のうち、最も早い再生時刻までの残り時間が所定の閾値以上である場合、他のデータを含む前記パケットを通過させ、前記残り時間が前記所定の閾値より少ない場合、前記映像データを含む前記パケットを、前記再生時刻の順に従って通過させる通過制御部とを有することを特徴とする通信システム。
【請求項７】
他装置から受信したパケットを通過させる帯域を制御する帯域制御方法において、
映像データを含む前記パケットから、前記パケットが属する通信セッションの最初の前記映像データが再生される時刻を基準とする経過時刻を示す時刻情報を取得し、
前記映像データが再生される再生時刻を、前記時刻情報に基づいて推定し、
前記映像データを含む前記パケットの各々の前記再生時刻のうち、最も早い再生時刻までの残り時間が所定の閾値以上である場合、他のデータを含む前記パケットを通過させ、前記残り時間が前記所定の閾値より少ない場合、前記映像データを含む前記パケットを、前記再生時刻の順に従って通過させることを特徴とする帯域制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本件は、帯域制御装置、通信システム、及び帯域制御方法に関する。
【背景技術】
【０００２】
通信需要の増加に伴って、インターネットなどのネットワークを流れるトラフィックが増加している。とりわけ、映像データのトラフィックは、ネットワーク全体の帯域のおよそ５割を占めると言われており、今後もさらなる増加が見込まれている。
【０００３】
このため、ネットワークには、トラフィックの輻輳を抑制するため、帯域を制御する装置が設けられている（例えば特許文献１及び２）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−２７９８０３号公報
【特許文献２】特開２００７−８２１２７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、例えばシェーパのような帯域制御装置は、他装置から受信したパケットを蓄積し、単に、許容される帯域に応じて遅延させることにより帯域を制御するため、パケットに含まれる映像データに要求されるレイテンシが保証されない。このため、パケットの帯域を制限すると、映像データを再生して得られる映像が乱れ、十分なサービス品質（QoE: Quality of Experience）が提供されず、これを避けようとすると、十分な帯域制限ができないという問題がある。
【０００６】
そこで本件は上記の課題に鑑みてなされたものであり、映像品質を改善できる帯域制御装置、通信システム、及び帯域制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本明細書に記載の帯域制御装置は、他装置から受信したパケットを通過させる帯域を制御する帯域制御装置において、映像データを含む前記パケットから、前記パケットが属する通信セッションの最初の前記映像データが再生される時刻を基準とする経過時刻を示す時刻情報を取得する取得部と、前記映像データが再生される再生時刻を、前記時刻情報に基づいて推定する推定部と、前記映像データを含む前記パケットの各々の前記再生時刻のうち、最も早い再生時刻までの残り時間が所定の閾値以上である場合、他のデータを含む前記パケットを通過させ、前記残り時間が前記所定の閾値より少ない場合、前記映像データを含む前記パケットを、前記再生時刻の順に従って通過させる通過制御部とを有する。
【０００８】
本明細書に記載の通信システムは、複数のサーバ装置と、帯域制御装置と、複数の端末装置とを有する通信システムにおいて、前記複数のサーバ装置は、それぞれ、前記帯域制御装置にパケットを送信し、前記帯域制御装置は、前記複数のサーバ装置から受信した前記パケットを通過させる帯域を制御し、前記複数の端末装置は、それぞれ、前記帯域制御装置を通過した前記パケットを受信し、前記帯域制御装置は、映像データを含む前記パケットから、前記パケットが属する通信セッションの最初の前記映像データが再生される時刻を基準とする経過時刻を示す時刻情報を取得する取得部と、前記複数の端末装置において前記映像データが再生される再生時刻を、前記時刻情報に基づいて推定する推定部と、前記映像データを含む前記パケットの各々の前記再生時刻のうち、最も早い再生時刻までの残り時間が所定の閾値以上である場合、他のデータを含む前記パケットを通過させ、前記残り時間が前記所定の閾値より少ない場合、前記映像データを含む前記パケットを、前記再生時刻の順に従って通過させる通過制御部とを有する。
【０００９】
本明細書に記載の帯域制御方法は、他装置から受信したパケットを通過させる帯域を制御する帯域制御方法において、映像データを含む前記パケットから、前記パケットが属する通信セッションの最初の前記映像データが再生される時刻を基準とする経過時刻を示す時刻情報を取得し、前記映像データが再生される再生時刻を、前記時刻情報に基づいて推定し、前記映像データを含む前記パケットの各々の前記再生時刻のうち、最も早い再生時刻までの残り時間が所定の閾値以上である場合、他のデータを含む前記パケットを通過させ、前記残り時間が前記所定の閾値より少ない場合、前記映像データを含む前記パケットを、前記再生時刻の順に従って通過させる方法である。
【発明の効果】
【００１０】
映像品質を改善できる。
【図面の簡単な説明】
【００１１】
【図１】通信システムの一例を示す構成図である。
【図２】映像データの配信処理のフローの一例を示す図である。
【図３】映像データの配信処理のシーケンスの一例を示す図である。
【図４】映像データの配信処理のシーケンスの他例を示す図である。
【図５】帯域制御装置の一例を示す構成図である。
【図６（ａ）】キュー管理テーブルの一例を示す表である。
【図６（ｂ）】ストリーム管理テーブルの一例を示す表である。
【図６（ｃ）】プレイリスト管理テーブルの一例を示す表である。
【図７】セッション管理部の処理の一例を示すフローチャートである。
【図８】パケット処理部の処理の一例を示すフローチャートである。
【図９】パケット処理部の動作の一例を示す図である。
【図１０】時刻情報設定部の処理の一例を示すフローチャートである。
【図１１】再生時刻推定部の処理の一例を示すフローチャートである。
【図１２】再生時刻の算出手法を示す図である。
【図１３】帯域制御部の処理の一例を示すフローチャートである。
【図１４】送信処理部の処理の一例を示すフローチャートである。
【図１５】実施例及び比較例におけるパケット送信処理を示す図である。
【発明を実施するための形態】
【００１２】
図１は、通信システムの一例を示す構成図である。通信システムは、一例として、複数の映像配信サーバ（＃１，＃２，・・・）２と、サーバ２ａと、帯域制御装置（＃１，＃２）１と、複数の端末装置（＃１〜＃５）３とを有する。
【００１３】
複数の映像配信サーバ（＃１，＃２，・・・）２及びサーバ２ａは、それぞれ、ＩＰ（Internet Protocol）ネットワーク４ａを介して帯域制御装置（＃１，＃２）１と接続されている。また、端末装置（＃１〜＃３）３は、ＩＰネットワーク４ｂを介して帯域制御装置（＃１）１に接続されており、端末装置（＃４，＃５）３は、ＩＰネットワーク４ｃを介して帯域制御装置（＃２）１に接続されている。
【００１４】
映像配信サーバ２は、サーバ装置の一例であり、端末装置３に映像データを配信する。例えば、映像配信サーバ（＃１）２は、経路Ｒ１で示されるように、帯域制御装置（＃１）を介して端末装置（＃１）３に映像データを配信し、映像配信サーバ（＃２）２は、経路Ｒ２で示されるように、帯域制御装置（＃１）１を介して端末装置（＃２）３に映像データを配信する。
【００１５】
また、サーバ２ａは、サーバ装置の他例であり、文書や画像などの映像以外のデータ（以下、「他のデータ」と表記）を端末装置３に配信する。例えば、サーバ２ａは、経路Ｒ３で示されるように、帯域制御装置（＃１）１を介して端末装置（＃３）３に映像以外のデータを配信する。
【００１６】
端末装置３としては、例えば、スマートフォンや携帯電話機などの移動通信端末、ネットワーク通信対応テレビ、及びパーソナルコンピュータが挙げられる。端末装置３は、映像配信サーバ２から映像データを受信して再生する。
【００１７】
本実施例において、映像データや他のデータは、パケットに収容されて伝送される。このため、映像配信サーバ２及びサーバ２ａは、それぞれ、帯域制御装置１にパケットを送信し、端末装置３は、それぞれ、帯域制御装置１を通過したパケットを受信する。なお、パケットとしては、ＩＰパケットが挙げられるが、これに限定されず、ＡＴＭ（Asynchronous Transfer Mode）セルなどの他形態のパケットが用いられてもよい。
【００１８】
帯域制御装置１は、映像配信サーバ２及びサーバ２ａから受信したパケットを通過させる帯域を制御する。帯域制御装置１は、例えばシェーパ装置であり、パケットの受信レートに応じて帯域を制限する。
【００１９】
仮に、帯域制御装置１が、映像配信サーバ２及びサーバ２ａから受信したパケットを蓄積し、単に、許容される帯域に応じて遅延させることにより帯域を制御する場合、パケットに含まれる映像データに要求されるレイテンシが保証されない。この場合、パケットの帯域を制限すると、映像データを再生して得られる映像が乱れ、十分なサービス品質が提供されず、これを避けようとすると、十分な帯域制限ができないという問題がある。
【００２０】
そこで、帯域制御装置１は、パケットが含む映像データの時刻情報から、送信先の端末装置３における映像データの再生時刻を推定する。そして、帯域制御装置１は、推定した最先の再生時刻までの残り時間が、所定の閾値以上である場合、他のデータを含むパケットを通過させ、所定の閾値より少ない場合、再生時刻の順に、映像データを含むパケットを通過させることで、映像品質を改善する。なお、帯域制御装置１の詳細は後述する。
【００２１】
図２には、映像データの配信処理のフローの一例が示されている。映像配信サーバ２及び端末装置３は、ＴＣＰ（Transmission Control Protocol）に基づいて通信セッションを確立し、映像データを含むパケットを送受信する。ＴＣＰではパケットの再送制御が行われるため、端末装置３において映像データを再生するアプリケーションは、伝送路上のパケットロスの対処を行うことはない。
【００２２】
映像配信サーバ２の送信処理２０では、メモリなどの格納手段に格納された映像データがパケットに収容されて端末装置３に送信される。このとき、パケットは、端末装置３から通知されるウィンドウサイズに応じて、連続的に送信される。つまり、パケットは、ウィンドウサイズの範囲内で一度に送信される。
【００２３】
端末装置３の受信処理３０では、受信したパケットを格納する受信バッファ３１の空き容量の分だけ、つまりウィンドウサイズの分だけパケットが受信される。なお、受信バッファ３１は、アプリケーション上に設けられている。
【００２４】
グラフＧは、時刻に対する伝送路の帯域の変化を示している。ウィンドウに空きがある間、パケットは、平均帯域Ａｖ（映像データのビットレート）を上回る帯域で送信される。このため、伝送路の帯域には、周期的に帯域のピークＰが生じ、帯域のピークＰ同士の間には、低帯域の期間Ｍが存在する。
【００２５】
パケットには、符号ＤＴで示されるように、映像データｄ０〜ｄ３と、時刻情報ｃｔ０〜ｃｔ３とが含まれる。映像データｄ０は、ストリームの先頭であり、再生される時刻が最も早い。時刻情報ｃｔ０〜ｃｔ３は、例えば、ＤＴＳ（Decode Time Stamp）、ＰＴＳ（Presentation Time Stamp）、及びＰＣＲ（Program Clock Reference）が挙げられる。時刻情報ｃｔ０〜ｃｔ３は、同一の通信セッションの最初の映像データが再生される時刻を基準とする経過時刻を示す。時刻情報ｃｔ０は、ストリームで最初の経過時刻を示す。
【００２６】
端末装置３の再生処理３２では、時刻情報ｃｔ０〜ｃｔ３を、映像データｄ０〜ｄ３の再生開始からの経過時刻３３と比較して、一致した場合、映像データｄ０〜ｄ３を再生する。例えば、先頭の映像データｄ０の再生後、経過時刻３３が、時刻情報ｃｔ０が示す経過時刻に一致すると、映像データｄ１が再生され、経過時刻３３が、時刻情報ｃｔ１が示す経過時刻に一致すると、映像データｄ２が再生される。
【００２７】
このため、映像配信サーバ２は、端末装置３が計時する経過時刻３３に同期する必要はなく、端末装置３のアプリケーションが送信を依頼した時刻と、パケットの送信時刻は一致しない。グラフＧで示されるように、帯域のピークＰは間欠的であるため、パケットが受信された後、映像データが再生されるまでには、時間的な余裕が存在する。
【００２８】
図３には、映像データの配信処理のシーケンスの一例が示されている。端末装置３の操作受付処理３４において、タッチパネルなどの操作手段から映像データの再生指示が受け付けられると、送信処理３６により映像データの送信要求メッセージがＨＴＴＰ（Hyper Text Transfer Protocol）に基づいて生成される（「ＨＴＴＰ要求」参照）。端末装置３のＴＣＰ制御処理３５では、生成された送信要求メッセージが伝送路を介して映像配信サーバ２に送信される。
【００２９】
映像配信サーバ２のＴＣＰ制御処理２２では、送信要求メッセージが受信され、要求処理２１に出力される。要求処理２１では、送信要求メッセージに応じて応答メッセージがＨＴＴＰに基づいて生成される（「ＨＴＴＰ応答」参照）。映像配信サーバ２の送信処理２０において、応答メッセージはＴＣＰ制御処理２２に出力される。映像配信サーバ２のＴＣＰ制御処理３５では、生成された応答メッセージのヘッダが伝送路を介して端末装置３に送信される。
【００３０】
端末装置３のＴＣＰ制御処理３５では、ウィンドウサイズが映像配信サーバ２に通知される。映像配信サーバ２の送信処理２０では、映像データがＴＣＰ制御処理２２に出力される。ＴＣＰ制御処理２２では、映像データを複数のメッセージボディに分割してパケットに収容し、ウィンドウサイズの分だけ連続で端末装置３に送信する。
【００３１】
端末装置３では、ＴＣＰ制御処理３５において受信したパケットを受信処理３０に出力して受信バッファ３１（図２参照）に格納する。再生処理３２では、経過時刻３３に従ってパケットが受信バッファ３１から読み出されて映像データの再生が開始される。映像配信サーバ２及び端末装置３の間では、上記のシーケンスが、端末装置３において、最後の映像データの再生処理３２が完了するまで繰り返される。
【００３２】
映像配信サーバ２は、映像データの配信が終了すると、通信セッションを終了させるため、ＴＣＰ制御処理２２によりＦＩＮなどのクローズ処理のメッセージ（「クローズ」参照）を端末装置３に送信する。端末装置３は、クローズ処理のメッセージを受信すると、ＴＣＰ制御処理３５によりクローズ処理の応答メッセージを映像配信サーバ２に送信する。
【００３３】
上記のシーケンスにおいて、映像配信サーバ２からウィンドウサイズ分の映像データが連続的に送信された後、端末装置３において受信された全ての映像データの再生処理３２が完了するまでには、時間的な余裕Ｍ’が存在する。この時間的な余裕Ｍ’は、図２のグラフＧに示された期間Ｍに対応する。
【００３４】
このように、映像データは、受信されてから再生されるまでに時間的な余裕Ｍ’を有している。このため、帯域制御装置１は、時刻情報ｃｔ０〜ｃｔ３から映像データｄ０〜ｄ３の再生時刻を推定し、推定した再生時刻までの残り時間に応じて、パケットの送信順序を決定する。これにより、帯域のピークＰが低減され、伝送路に必要とされる帯域が低減される。
【００３５】
また、図４には、映像データの配信処理のシーケンスの他例が示されている。本例において、映像配信サーバ２は、アダプティブストリーミング方式で映像データを端末装置３に配信する。アダプティブストリーミング方式の場合、各通信セッションの全映像データは、プレイリストに登録された単位時間（例えば１０（ｍｓｅｃ））ごとのセグメントに分割されて、順次に送信される。
【００３６】
このため、端末装置３の操作受付処理３４において、再生指示が受け付けられると、送信処理３６において、プレイリストを含む要求メッセージが映像配信サーバ２に送信される。また、端末装置３の送信処理３６では、セグメント＃１，＃２ごとに要求メッセージが端末装置３に送信される。なお、他のシーケンス処理は、図３の例と同様に行われる。このため、本例においても、映像データは、受信されてから再生されるまでに時間的な余裕Ｍ’を有している。
【００３７】
帯域制御装置１は、アダプティブストリーミング方式で映像データが配信されている場合、各セグメントのファイル名や各種の属性が記録されたメタファイルを解析する。そして、帯域制御装置１は、解析の結果から、メタファイルに定義されたセグメントの順序で映像データが配信されていると判定すると、先頭のセグメントを起点とした、図３の例と同様の一連のストリーミングとして取り扱う。
【００３８】
図５は、帯域制御装置１の一例を示す構成図である。帯域制御装置１は、ＣＰＵ（Central Processing Unit）１０、ＲＯＭ（Read Only Memory）１１、ＲＡＭ（Random Access Memory）１２、管理メモリ１３、パケットメモリ１７、通信処理部１４を有する。
【００３９】
ＣＰＵ１０は、互いに信号の入出力ができるように、ＲＯＭ１１、ＲＡＭ１２、管理メモリ１３、パケットメモリ１７、及び通信処理部１４と、データバス１６を介して接続されている。ＲＯＭ１１は、ＣＰＵ１０を駆動するプログラムが格納されている。ＲＡＭ１２は、ＣＰＵ１０のワーキングメモリとして機能する。通信処理部１４は、例えばＰＨＹ（Physical layer）チップを含み、映像配信サーバ２、サーバ２ａ、及び端末装置３との間でパケットを送受信する。
【００４０】
管理メモリ１３には、ストリーム管理テーブル１３０及びプレイリスト管理テーブル１３１を格納されている。ストリーム管理テーブル１３０は、通信セッションごとのストリームに関する情報が登録されている。プレイリスト管理テーブル１３１には、アダプティブストリーミング方式で用いられるプレイリストに登録された各セグメントに関する情報が登録されている。ストリーム管理テーブル１３０及びプレイリスト管理テーブル１３１の詳細は後述する。
【００４１】
また、パケットメモリ１７には、キュー管理テーブル１７０、ストリームキュー１７１、及び通常キュー１７２が格納されている。ストリームキュー１７１には、映像データを含むパケットが、送信される順序に従って格納されている。通常キュー１７２には、他のデータを含むパケットが、送信される順序に従って格納されている。キュー管理テーブル１７０には、ストリームキュー１７１に格納されたパケットに関する情報が登録されている。ストリームキュー１７１の詳細は後述する。なお、管理メモリ１３及びパケットメモリ１７としては、例えばＳＤＲＡＭ（Synchronous Dynamic RAM）が挙げられる。
【００４２】
ＣＰＵ１０は、ＲＯＭ１１からプログラムを読み込むと、機能として、セッション管理部１００、パケット処理部１０１、再生時刻推定部１０２、時刻情報設定部１０３、計時部１０４、送信処理部１０５、及び帯域制御部１０６が形成される。
【００４３】
セッション管理部１００は、映像データを含むパケットが属する通信セッションを識別して、映像のストリームデータを識別するストリームＩＤを設定し、他の情報とともにストリーム管理テーブル１３０に登録する。また、セッション管理部１００は、映像データがアダプティブストリーミング方式で配信される場合、セグメントごとの情報をプレイリスト管理テーブル１３１に登録する。
【００４４】
パケット処理部１０１は、通過制御部の一例であり、映像データを含むパケットをストリーム管理テーブル１３０に基づいて識別し、時刻情報設定部１０３に時刻情報ｃｔ０〜ｃｔ３の設定を依頼する。時刻情報設定部１０３は、取得部の一例であり、映像データを含むパケットから時刻情報ｃｔ０〜ｃｔ３を取得して、時刻情報ｃｔ０〜ｃｔ３が示す時刻をストリーム管理テーブル１３０に登録する。
【００４５】
また、時刻情報設定部１０３は、映像データを含むパケットから時刻情報ｃｔ０〜ｃｔ３が検出されない場合、ビットレート及びデータ量から時刻を算出して、ストリーム管理テーブル１３０に登録する。この場合、時刻情報設定部１０３は、後続のパケットから時刻情報ｃｔ０〜ｃｔ３を取得したとき、ビットレート及びデータ量から算出した時刻を再計算する。
【００４６】
また、パケット処理部１０１は、映像データの再生時刻の推定を再生時刻推定部１０２に依頼する。再生時刻推定部１０２は、推定部の一例であり、ストリーム管理テーブル１３０に登録された時刻に基づいて、映像データが再生される再生時刻を推定する。
【００４７】
また、パケット処理部１０１は、映像データを含むパケットをストリームキュー１７１に入力し、他のデータを含むパケットを通常キュー１７２に入力する。パケット処理部１０１は、ストリームキュー１７１に格納されたパケットを、推定された再生時刻の順に並び替え、再生時刻の順に基づいてキュー管理テーブル１７０を更新する。
【００４８】
計時部１０４は、例えば、外部のサーバから現在時刻を取得して、パケット処理部１０１に通知する。パケット処理部１０１は、現在時刻と最も早い再生時刻を比較し、残り時間が所定の閾値より少ない場合、ストリームキュー１７１の先頭のパケットを送信処理部１０５に出力する。一方、残り時間が所定の閾値以上である場合、パケット処理部１０１は、通常キュー１７２の先頭のパケットを送信処理部１０５に出力する。
【００４９】
帯域制御部１０６は、パケットの受信レートに基づいて、パケットを通過させる帯域を制御する。送信処理部１０５は、帯域制御部１０６の帯域制御に従い、通信処理部１４を介してパケットを端末装置３に送信する。なお、パケットの受信レートは、例えば通信処理部１４から取得される。
【００５０】
次に、キュー管理テーブル１７０、ストリーム管理テーブル１３０、及びプレイリスト管理テーブル１３１の構成例を説明する。
【００５１】
図６（ａ）には、キュー管理テーブル１７０の一例が示されている。キュー管理テーブル１７０は、「ストリームＩＤ」、「次エントリへのポインタ」、「格納領域へのポインタ」、「データサイズ」、「再計算フラグ」、「再生時刻」、及び「データ位置」を含む。
【００５２】
「ストリームＩＤ」は、映像データのストリームを区別するための識別子であり、映像データを含むパケットが属する通信セッションごとに設定される。「次エントリへのポインタ」は、ストリームキュー１７１に格納されたパケットの次に送信されるパケットの格納領域のアドレスを示す。パケット処理部１０１は、「次エントリへのポインタ」を変更することにより、ストリームキュー１７１内のパケットを並び替える。
【００５３】
「格納領域へのポインタ」は、ストリームキュー１７１内のパケットが格納された格納領域のアドレスを示す。「データサイズ」は、パケットのサイズ、つまりデータ量を示す。「再計算フラグ」は、パケットに時刻情報が含まれていないために、時刻の再計算の対象となる場合に「１」が設定され、そうでない場合、または再計算済みである場合、「０」が設定される。
【００５４】
「再生時刻」は、再生時刻推定部１０２により推定された映像データの再生時刻を示す。「データ位置」は、映像データのストリーム全体における位置を示す。つまり、「データ位置」は、パケットの前に受信した同一ストリーム、またはセグメントの全ての映像データのデータ量を示す。
【００５５】
図６（ｂ）には、ストリーム管理テーブル１３０の一例が示されている。ストリーム管理テーブル１３０は、「ストリームＩＤ」、「送信元」、「宛先」、「プレイリスト管理テーブルへのポインタ」、「先頭時刻」、「先頭位置」、「先頭時間量」、「平均ビットレート」、「ビットレート」、「配信開始時刻」、「時刻」、及び「データ蓄積量」を含む。
【００５６】
「ストリームＩＤ」は、上記のキュー管理テーブル１７０の「ストリームＩＤ」に対応する。「送信元」は、映像データを含むパケットの送信元を示す。「送信元」は、送信元の映像配信サーバ２の「ＩＰアドレス」及び「ポート」（ポート番号）を含む。
【００５７】
「宛先」は、映像データを含むパケットの宛先を示す。「宛先」は、宛先の端末装置３の「ＩＰアドレス」及び「ポート」（ポート番号）を含む。「送信元」及び「宛先」は、通信セッション及びストリームの識別に用いられる。
【００５８】
「プレイリスト管理テーブルへのポインタ」は、映像データを含むパケットが、アダプティブストリーミング方式のストリームのものである場合、例えば、プレイリスト管理テーブル１３１の格納領域のアドレスを示す。この場合、「先頭時刻」及び「先頭時間量」は、プレイリスト管理テーブル１３１に、セグメントごとに登録される。
【００５９】
「先頭時刻」は、ストリームで最初に検出された時刻情報が示す経過時刻を示す。図２に示されたパケットＤＴの場合、「先頭時刻」は、時刻情報ｃｔ０が示す経過時刻である。
【００６０】
「先頭位置」は、「先頭時刻」に対応する時刻情報を含むパケットの前に受信された同一ストリームの全パケットの映像データの量の合計を示す。「先頭時間量」は、「先頭位置」が示すデータ量を、「平均ビットレート」で除算して得た値を示す。つまり、「先頭時間量」は、「先頭時刻」に対応する時刻情報を含むパケットの前に受信された同一ストリームの全パケットの映像データの再生時間の合計を示す。
【００６１】
「平均ビットレート」は、例えば、コンテンツのヘッダ情報（図３参照）またはプレイリスト（図４参照）から取得されるストリームの再生レートの平均値であり、取得できないときは、適切な値が設定される。「ビットレート」は、時刻情報が示す経過時刻から算出されるストリームの再生レートであり、時刻情報を含まないパケットを受信した場合の「時刻」の算出に用いられる。なお、「ビットレート」の初期値は、「平均ビットレート」に設定される。
【００６２】
「配信開始時刻」は、ストリームの最初の映像データを含むパケットが端末装置３に送信された時刻を示す。「配信開始時刻」は、セッション管理部１００により設定される。
【００６３】
「時刻」には、パケットに含まれた時刻情報が示す経過時刻、または「ビットレート」から算出された時刻が設定される。「時刻」及び「配信開始時刻」は、映像データの再生時刻の推定に用いられる。
【００６４】
「データ蓄積量」は、最後に時刻情報が検出されたパケットより後に受信された全パケットの映像データ量の合計を示す。「データ蓄積量」は、時刻情報が検出されない場合の「時刻」の算出と、「ビットレート」の算出とに用いられる。
【００６５】
図６（ｃ）には、プレイリスト管理テーブル１３１の一例が示されている。プレイリスト管理テーブル１３１は、アダプティブストリーミング方式の映像データのストリームごとに設けられており、上記の「プレイリスト管理テーブルへのポインタ」によりストリーム管理テーブル１３０とリンクされている。プレイリスト管理テーブル１３１は、「セグメント」、「再生所要時間」、「オフセット時間」、「先頭時刻」、及び「先頭時間量」を含む。
【００６６】
「セグメント」は、映像データが属するセグメント（図４参照）を示す。「再生所要時間」は、セグメントに属する映像データの再生に要する時間を示し、例えばセグメントのメタファイルから取得される。メタファイルは、例えば、図４に示されるシーケンスにおいて、映像配信サーバ２から端末装置３に送信される応答メッセージに含まれている。
【００６７】
「オフセット時間」は、映像データが属するセグメントの前に受信されたセグメントの「再生所要時間」の合計を示す。例えば、セグメント＃１〜＃９９の各「再生所要時間」が１０（ｓｅｃ）である場合、セグメント＃１００の「オフセット時間」は、９９０（ｓｅｃ）（＝１０×９９）である。つまり、この例の「オフセット時間」は、先頭のセグメント＃１から直前のセグメント＃９９までの映像データの各々の再生に要する時間の合計値である。「オフセット時間」は、後述するように、アダプティブストリーミング方式の映像データの再生時刻の推定に用いられる。
【００６８】
「先頭時刻」及び「先頭時間量」は、ストリーム管理テーブル１３０の「先頭時刻」及び「先頭時間量」と同様の数値を、セグメントごとに示す。アダプティブストリーミング方式の映像データの場合、ストリーム管理テーブル１３０の「先頭時刻」及び「先頭時間量」は設定されない。
【００６９】
次に、各部１００〜１０３、１０５，１０６の処理を、より具体的に説明する。
【００７０】
図７は、セッション管理部１００の処理の一例を示すフローチャートである。本処理は、例えば、帯域制御装置１の電源がオフになるまで繰り返し実行される。
【００７１】
帯域制御装置１が、映像配信サーバ２からパケットを受信したとき、通信処理部１４からセッション管理部１００にパケット（ＰＫＴ）が入力される（ステップＳｔ１）。
【００７２】
次に、セッション管理部１００は、パケットに通信セッションのクローズ処理の応答メッセージ（図３及び図４参照）が含まれるか否かを判定する（ステップＳｔ２）。セッション管理部１００は、パケットに通信セッションのクローズ処理の応答メッセージが含まれる場合（ステップＳｔ２のＹｅｓ）、ストリーム管理テーブル１３０から当該ストリームの登録を抹消して（ステップＳｔ８）、処理を終了する。このとき、登録を抹消したストリームに対応するストリーム管理テーブル１３０も存在すれば、ストリーム管理テーブル１３０も抹消される。
【００７３】
また、セッション管理部１００は、パケットに通信セッションのクローズ処理の応答メッセージが含まれていない場合（ステップＳｔ２のＮｏ）、パケットが属する通信セッション（ストリーム）がストリーム管理テーブル１３０に登録されているか否かを判定する（ステップＳｔ３）。より具体的には、セッション管理部１００は、パケットの送信元のＩＰアドレス及びポートと宛先のＩＰアドレス及びポートの組み合わせが、ストリーム管理テーブル１３０に登録されているか否かを判定する。
【００７４】
セッション管理部１００は、通信セッションが登録済みである場合（ステップＳｔ３のＹｅｓ）、処理を終了する。また、セッション管理部１００は、通信セッションが未登録である場合（ステップＳｔ３のＮｏ）、パケットがＨＴＴＰに基づくものか否かを判定する（ステップＳｔ４）。セッション管理部１００は、パケットがＨＴＴＰに基づくものではない場合（ステップＳｔ４のＮｏ）、処理を終了する。
【００７５】
また、セッション管理部１００は、パケットがＨＴＴＰに基づくものである場合（ステップＳｔ４のＹｅｓ）、パケットにプレイリストが含まれるか否かを判定する（ステップＳｔ５）。セッション管理部１００は、プレイリストが含まれていない場合（ステップＳｔ５のＮｏ）、パケットに映像データが含まれるか否かを判定する（ステップＳｔ６）。セッション管理部１００は、映像データが含まれていない場合（ステップＳｔ６のＮｏ）、処理を終了する。
【００７６】
セッション管理部１００は、映像データが含まれている場合（ステップＳｔ６のＹｅｓ）、パケットから取得した各情報をストリーム管理テーブル１３０に登録して（ステップＳｔ７）、処理を終了する。より具体的には、本処理において、「ストリームＩＤ」、「送信元」、「宛先」、「平均ビットレート」、及び「配信開始時刻」が、ストリーム管理テーブル１３０に登録される。「配信開始時刻」は、通信セッションごとの、映像データを含む最初のパケットを通過させた時刻であり、例えば、該パケットが入力されたときに計時部１０４から取得した現在時刻に基づいて決定される。
【００７７】
一方、プレイリストが含まれている場合（ステップＳｔ５のＹｅｓ）、セッション管理部１００は、パケットから取得した各情報をストリーム管理テーブル１３０及びプレイリスト管理テーブル１３１に登録して（ステップＳｔ９）、処理を終了する。より具体的には、本処理において、「ストリームＩＤ」、「送信元」、「宛先」、「平均ビットレート」、及び「配信開始時刻」が、ストリーム管理テーブル１３０に登録される。また、「セグメント」、「再生所要時間」、及び「オフセット時間」が、プレイリスト管理テーブル１３１に登録される。このようにして、セッション管理部１００は、処理を実行する。
【００７８】
図８は、パケット処理部１０１の処理の一例を示すフローチャートである。本処理は、例えば、帯域制御装置１の電源がオフになるまで繰り返し実行される。
【００７９】
まず、セッション管理部１００からパケット処理部１０１にパケット（ＰＫＴ）が入力される（ステップＳｔ２１）。次に、パケット処理部１０１は、ストリーム管理テーブル１３０にパケットの通信セッションが登録されているか否かを判定する（ステップＳｔ２２）。
【００８０】
ストリーム管理テーブル１３０は、ストリーム管理テーブル１３０に登録がない場合（ステップＳｔ２２のＮｏ）、パケットを通常キュー１７２に入力する（ステップＳｔ３２）。つまり、映像データ以外の他のデータを含むパケットは、通常キュー１７２に入力される。パケット処理部１０１は、パケットを通常キュー１７２に入力した後、後述するステップＳｔ２９の処理を実行する。
【００８１】
また、パケット処理部１０１は、ストリーム管理テーブル１３０に登録がある場合（ステップＳｔ２２のＹｅｓ）、時刻情報設定部１０３に時刻情報の設定を依頼する（ステップＳｔ２３）。時刻情報設定部１０３は、パケットに含まれる時刻情報、またはストリーム管理テーブル１３０に登録された「ビットレート」に基づき、ストリーム管理テーブル１３０に「時刻」を設定する。なお、本処理の詳細は後述する。
【００８２】
次に、パケット処理部１０１は、再生時刻推定部１０２に、映像データの再生時刻の推定を依頼する（ステップＳｔ２４）。再生時刻推定部１０２は、ストリーム管理テーブル１３０に登録された「時刻」から映像データの再生時刻を推定する。推定された再生時刻は、後述するステップＳｔ２６の処理においてキュー管理テーブル１７０に登録される。なお、本処理の詳細は後述する。
【００８３】
次に、パケット処理部１０１は、パケットをストリームキュー１７１に入力する（ステップＳｔ２５）。次に、パケット処理部１０１は、パケットをキュー管理テーブル１７０に登録する（ステップＳｔ２６）。次に、パケット処理部１０１は、ストリームキュー１７１に格納されたパケットを再生時刻の順に並び替える（ステップＳｔ２７）。次に、パケット処理部１０１は、並び替えた順に応じてキュー管理テーブル１７０の「次エントリへのポインタ」を更新する（ステップＳｔ２８）。
【００８４】
次に、パケット処理部１０１は、ストリームキュー１７１の先頭のパケットに含まれる映像データの再生時刻と、計時部１０４から取得した現在時刻とを比較する（ステップＳｔ２９）。パケット処理部１０１は、再生時刻と現在時刻の差分が所定の閾値αより小さい場合（ステップＳｔ２９のＹｅｓ）、ストリームキュー１７１から先頭のパケットを読み出して送信処理部１０５に出力する（ステップＳｔ３０）。
【００８５】
次に、パケット処理部１０１は、キュー管理テーブル１７０から先頭のパケットの登録を抹消して（ステップＳｔ３１）、処理を終了する。
【００８６】
一方、再生時刻と現在時刻の差分が所定の閾値α以上である場合（ステップＳｔ２９のＮｏ）、通常キュー１７２から先頭のパケットを読み出して送信処理部１０５に出力し（ステップＳｔ３３）、処理を終了する。このようにして、パケット処理部１０１は、処理を実行する。
【００８７】
図９には、パケット処理部１０１の動作の一例が示されている。パケット処理部１０１は、パケットに含まれるデータが映像データであるか否かの判定処理ＰＸを行う。判定処理ＰＸは、上記のステップＳｔ２２の処理に対応する。
【００８８】
パケット処理部１０１は、パケットに含まれるデータが映像データである場合（符号ＰＸのＹｅｓ）、パケットをストリームキュー１７１に格納し、他のデータである場合（符号ＰのＮｏ）、パケットを通常キュー１７２に格納する。パケット処理部１０１は、上記のステップＳｔ２７の処理を実行することで、ストリームキュー１７１に格納されたパケットを再生時刻の順に並び替える。これにより、ストリームキュー１７１に格納されたパケットのうち、再生時刻が最も早い映像データを含むパケットが、最も早く送信される。
【００８９】
また、パケット処理部１０１は、上記のステップＳｔ２９の処理を実行することで、最も早い再生時刻を現在時刻と比較する。パケット処理部１０１は、最も早い再生時刻までの残り時間が所定の閾値α以上である場合、映像データの再生までに時間的な余裕があるため、上記のステップＳｔ３３の処理を実行することで、通常キュー１７２の先頭のパケットを通過させる。一方、残り時間が所定の閾値αより少ない場合、パケット処理部１０１は、映像データの再生までに時間的な余裕がないため、上記のステップＳｔ３０の処理を実行することで、ストリームキュー１７１の先頭のパケットを通過させる。
【００９０】
このように、パケット処理部１０１は、映像データを含むパケットの各々の再生時刻のうち、最も早い再生時刻までの残り時間が所定の閾値α以上である場合、他のデータを含むパケットを通過させる。一方、残り時間が所定の閾値αより少ない場合、パケット処理部１０１は、映像データを含むパケットを、再生時刻の順に従って通過させる。
【００９１】
したがって、帯域制御装置１は、パケットの帯域を制限しつつ、再生時刻までの残り時間に応じて、映像データを含むパケットを優先的に通過させることができる。これにより、端末装置３において再生される映像データの品質が改善される。
【００９２】
次に、上記のステップＳｔ２３の処理の詳細を説明する。
【００９３】
図１０は、時刻情報設定部１０３の処理の一例を示すフローチャートである。まず、時刻情報設定部１０３は、パケットから時刻情報が検出されたか否かを判定する（ステップＳｔ６１）。時刻情報設定部１０３は、時刻情報が検出されない場合（ステップＳｔ６１のＮｏ）、登録済みの「時刻」に、「データ蓄積量」を「ビットレート」で除算することで得た値を加算することにより、「時刻」を設定する（ステップＳｔ６８）。
【００９４】
すなわち、時刻情報設定部１０３は、映像データを含むパケットに時刻情報が含まれていないとき、受信したパケットが属する通信セッションに関して、最後に取得した時刻情報を含むパケットより後に受信したパケットに含まれる映像データのデータ量の合計を「ビットレート」で除算する。そして、時刻情報設定部１０３は、該除算により得た値を、最後に取得した時刻情報が示す経過時刻に加算することにより、再生時刻を算出する。
【００９５】
つまり、時刻情報設定部１０３は、時刻情報を含まないパケットについては、「ビットレート」を用いて仮想的に「時刻」を算出する。このため、再生時刻推定部１０２は、時刻情報を含まないパケットでも、再生時刻を推定できる。
【００９６】
また、時刻情報設定部１０３は、時刻情報を含まないパケットが送信される前に、時刻情報を含むパケットが受信された場合、後述するステップＳｔ７２の処理において、時刻情報を用いて再生時刻を再計算する。再計算の要否は、上述したように、キュー管理テーブル１７０に登録された「再計算フラグ」により示される。このため。時刻情報設定部１０３は、「ビットレート」に基づいて「時刻」を設定した後、「再計算フラグ」を「１」に設定する（ステップＳｔ６９）。
【００９７】
次に、時刻情報設定部１０３は、ストリーム管理テーブル１３０に「先頭時刻」が設定済みであるか否かを判定する（ステップＳｔ７５）。時刻情報設定部１０３は、「先頭時刻」が未設定である場合（ステップＳｔ７５のＮｏ）、ストリーム管理テーブル１３０の「先頭位置」を更新する（ステップＳｔ７６）。このとき、時刻情報設定部１０３は、パケットに含まれる映像データ量を「先頭位置」に加算することで「先頭位置」を更新する。これにより、ストリームの最初の時刻情報を取得するまでに受信した映像データの合計が算出される。その後、時刻情報設定部１０３は、後述するステップＳｔ６７の処理を行う。
【００９８】
また、時刻情報設定部１０３は、「先頭時刻」が設定済みである場合（ステップＳｔ７５のＹｅｓ）、ステップＳｔ６７の処理を行う。
【００９９】
一方、時刻情報が検出された場合（ステップＳｔ６１のＹｅｓ）、時刻情報設定部１０３は、パケットから時刻情報を取得する（ステップＳｔ６２）。次に、時刻情報設定部１０３は、取得した時刻情報が、映像データのストリームにおける最初の時刻情報であるか否かを判定する（ステップＳｔ６３）。時刻情報設定部１０３は、取得した時刻情報が最初の時刻情報である場合（ステップＳｔ６３のＹｅｓ）、ストリーム管理テーブル１３０の「ビットレート」に、登録済みの「平均ビットレート」を設定する（ステップＳｔ６４）。
【０１００】
次に、時刻情報設定部１０３は、ストリーム管理テーブル１３０の「先頭時刻」に、取得した時刻情報が示す経過時刻を設定する（ステップＳｔ６５）。次に、時刻情報設定部１０３は、ストリーム管理テーブル１３０の「時刻」に、取得した時刻情報が示す経過時刻を設定する（ステップＳｔ６６）。次に、時刻情報設定部１０３は、ストリーム管理テーブル１３０の「データ蓄積量」に、映像データの量を加算することで「データ蓄積量」を更新して（ステップＳｔ６７）、処理を終了する。
【０１０１】
また、時刻情報設定部１０３は、取得した時刻情報が最初の時刻情報ではない場合（ステップＳｔ６３のＮｏ）、ストリーム管理テーブル１３０の「ビットレート」を算出する（ステップＳｔ７０）。「ビットレート」は、ストリーム管理テーブル１３０の「データ蓄積量」を、「時刻」の変化量で除算することにより算出される。ここで、「時刻」の変化量は、取得した時刻情報が示す経過時刻と、登録済みの「時刻」との差分として得られる。すなわち、「時刻」の変化量は、受信したパケットが属する通信セッションについて、最後に取得された時刻情報が示す経過時刻と、新たに取得された時刻情報が示す経過時刻との差分である。
【０１０２】
次に、時刻情報設定部１０３は、ストリーム管理テーブル１３０に「再計算フラグ」が「１」であるパケットが登録されているか否かを判定する（ステップＳｔ７１）。時刻情報設定部１０３は、「再計算フラグ」が「１」であるパケットの登録がない場合（ステップＳｔ７１のＮｏ）、ストリーム管理テーブル１３０の「データ蓄積量」を０とした後（ステップＳｔ７４）、上記のステップＳｔ６６，Ｓｔ６７の処理を実行する。
【０１０３】
また、時刻情報設定部１０３は、「再計算フラグ」が「１」であるパケットの登録がある場合（ステップＳｔ７１のＹｅｓ）、「ビットレート」に基づいて、キュー管理テーブル１７０に登録済みの該パケットの「再生時刻」を再計算する（ステップＳｔ７２）。「再生時刻」の再計算では、まず、取得した時刻情報が示す時刻から、「データ位置」の変化量を「ビットレート」で除算して得た値を減算することで、該ＰＫＴの「時刻」が再算出される。
【０１０４】
ここで、「データ位置」の変化量は、「再計算フラグ」が「１」であるパケットの「データ位置」と、最新の「データ位置」との差分として得られる。すなわち、「データ位置」の変化量は、「再計算フラグ」が「１」であるパケット（再計算の対象パケット）の「データ位置」と、新たに取得された時刻情報のパケットの「データ位置」との差分である。該パケットの「再生時刻」は、該ＰＫＴの「時刻」を、後述する図１１のステップＳｔ８７と同様の「再生時刻」の計算式に用いることで算出される。
【０１０５】
次に、時刻情報設定部１０３は、「再生時刻」を再計算したパケットの「再計算フラグ」を「０」とする（ステップＳｔ７３）。次に、時刻情報設定部１０３は、再びステップＳｔ７１の処理を行う。つまり、時刻情報設定部１０３は、「再計算フラグ」＝「１」である全てのパケットについて、「再生時刻」の再計算を行う。これにより、時刻情報が検出されなかったパケットの映像データについて、「再生時刻」が高精度に推定される。このようにして、時刻情報設定部１０３は、処理を実行する。
【０１０６】
次に、上記のステップＳｔ２４の処理の詳細を説明する。
【０１０７】
図１１は、再生時刻推定部１０２の処理の一例を示すフローチャートである。まず、再生時刻推定部１０２は、パケットから取得した時刻情報が、ストリームにおける最初の時刻情報であるか否かを判定する（ステップＳｔ８１）。
【０１０８】
再生時刻推定部１０２は、取得した時刻情報が最初の時刻情報である場合（ステップＳｔ８１のＹｅｓ）、ストリーム管理テーブル１３０の「配信開始時刻」に「先頭時間量」を加算することで「再生時刻」を算出する（ステップＳｔ８２）。ここで、再生時刻推定部１０２は、「先頭位置」を「平均ビットレート」で除算することで「先頭時間量」を算出する。
【０１０９】
また、再生時刻推定部１０２は、取得した時刻情報が最初の時刻情報ではない場合（ステップＳｔ８１のＮｏ）、ストリーム管理テーブル１３０に「先頭時刻」が設定済みであるか否かを判定する（ステップＳｔ８５）。
【０１１０】
再生時刻推定部１０２は、「先頭時刻」が設定済みである場合（ステップＳｔ８５のＹｅｓ）、ストリーム管理テーブル１３０の「配信開始時刻」に「先頭時間量」を加算して得た値に、取得した時刻情報の「時刻」と「先頭時刻」の差分を加算することで「再生時刻」を算出する（ステップＳｔ８６）。また、再生時刻推定部１０２は、「先頭時刻」が未設定である場合（ステップＳｔ８５のＮｏ）、ストリーム管理テーブル１３０の「配信開始時刻」を「再生時刻」とする（ステップＳｔ８７）。以下に、上記のステップＳｔ８２，Ｓｔ８６，Ｓｔ８７における「再生時刻」の算出手法について述べる。
【０１１１】
図１２には、再生時刻の算出手法が示されている。図１２において、横軸は、時刻を示し、時刻Ｔｏは「配信開始時刻」であり、時刻Ｔ１は「先頭時刻」である。また、時刻Ｔ２〜Ｔ４は、後続の時刻情報が示す経過時刻である。
【０１１２】
また、映像データ量ｍ１〜ｍ４は、ストリームで最初の時刻情報が検出されるまでに受信した各パケットの映像データ量であり、その合計ｍ１＋ｍ２＋ｍ３＋ｍ４は、ストリーム管理テーブル１３０の「先頭位置」を示す。時間Ｔｓｕｍは、映像データ量の合計ｍ１＋ｍ２＋ｍ３＋ｍ４を「平均ビットレート」で除算して得た時間、つまりストリームで最初の時刻情報が検出されるまでに経過した時間であり、ストリーム管理テーブル１３０の「先頭時間量」を示す。
【０１１３】
ステップＳｔ８７の場合、映像データは、図２のパケットＤＴの映像データｄ０のように、ストリームの先頭に位置する。このため、「再生時刻」は、「配信開始時刻」の時刻Ｔｏに一致するとものとして算出される。
【０１１４】
ステップＳｔ８２の場合、映像データは、ストリームで最初に検出された時刻情報の位置に存在する。このため、「再生時刻」は、「配信開始時刻」の時刻Ｔｏに、ストリームで最初の時刻情報が検出されるまでに受信した各パケットの映像データ量分の時間Ｔｓｕｍ、つまり「先頭時間量」を加算することで算出される。
【０１１５】
ステップＳｔ８６の場合、映像データは、ストリームの後続の時刻情報の位置に存在する。このため、「再生時刻」は、「配信開始時刻」と「先頭時間量」の加算値に、最初の時刻情報が示す「先頭時刻」である時刻Ｔ１と各経過時刻Ｔ２〜Ｔ４の差分を加算することで算出される。
【０１１６】
このように、再生時刻推定部１０２は、ストリーム、つまり通信セッションごとに、時刻情報が示す経過時刻と、最初に取得した時刻情報が示す経過時刻との差分に基づいて、再生時刻を推定する。このため、再生時刻推定部１０２は、時刻情報から再生時刻を容易に推定できる。
【０１１７】
また、再生時刻推定部１０２は、通信セッションごとに、映像データを含む最初のパケットを通過させた時刻、つまり「配信開始時刻」に上記の差分を加算することにより、再生時刻を推定する。このため、再生時刻推定部１０２は、ストリームで先頭に位置する映像データの経過時刻を示す時刻情報が存在しない場合であっても、再生時刻を容易に推定できる。
【０１１８】
再び図１１を参照すると、次に、再生時刻推定部１０２は、ストリーム管理テーブル１３０の「プレイリスト管理テーブルへのポインタ」を参照することで、当該ストリームの「プレイリスト」の有無を判定する（ステップＳｔ８３）。再生時刻推定部１０２は、プレイリストが無い場合（ステップＳｔ８３のＮｏ）、処理を終了する。
【０１１９】
一方、再生時刻推定部１０２は、プレイリストが有る場合（ステップＳｔ８３のＹｅｓ）、上記のステップＳｔ８２，Ｓｔ８６，Ｓｔ８７において算出した「再生時刻」に、プレイリスト管理テーブル１３１の「オフセット時間」を加算し（ステップＳｔ８４）、処理を終了する。
【０１２０】
すなわち、再生時刻推定部１０２は、先頭のセグメントの最初の映像データを通過させた時刻と、時刻情報が示す経過時刻と、先頭のセグメントから直前のセグメントまでの映像データの各々の再生に要する時間の合計値とに基づいて、「再生時刻」を算出する。これにより、アダプティブストリーミング方式の場合に、セグメントに応じた経過時間を考慮して「再生時刻」が算出される。
【０１２１】
なお、アダプティブストリーミング方式の場合、上記のステップＳｔ８２，Ｓｔ８６では、プレイリスト管理テーブル１３１の「先頭時刻」及び「先頭時間量」を用いて「再生時刻」が算出される。また、アダプティブストリーミング方式の場合、上記のステップＳｔ８２，Ｓｔ８６，Ｓｔ８７で用いられる「配信開始時刻」は、先頭のセグメント＃１の最初の映像データを通過させた時刻である。
【０１２２】
このようにして、再生時刻推定部１０２は、処理を実行する。
【０１２３】
図１３は、帯域制御部１０６の処理の一例を示すフローチャートである。本処理は、例えば、帯域制御装置１の電源がオフになるまで繰り返し実行される。
【０１２４】
帯域制御部１０６は、通信処理部１４からパケットの受信レートＲｔを取得する（ステップＳｔ４１）。次に、帯域制御装置１は、受信レートＲｔを所定値βと比較する（ステップＳｔ４２）。
【０１２５】
帯域制御部１０６は、Ｒｔ≧βの場合（ステップＳｔ４２のＹｅｓ）、帯域制限を実行し（ステップＳｔ４３）、処理を終了する。帯域制限は、例えば送信処理部１０５がパケットの送信タイミングを遅延させることで実行される。
【０１２６】
また、帯域制御部１０６は、Ｒｔ＜βの場合（ステップＳｔ４２のＮｏ）、帯域制限を解除し（ステップＳｔ４４）、処理を終了する。このようにして、帯域制御部１０６は、処理を実行する。
【０１２７】
また、図１４は、送信処理部１０５の処理の一例を示すフローチャートである。本処理は、例えば、帯域制御装置１の電源がオフになるまで繰り返し実行される。
【０１２８】
送信処理部１０５は、パケット処理部１０１からのパケットの入力の有無を判定する（ステップＳｔ５１）。送信処理部１０５は、パケットの入力が無い場合（ステップＳｔ５１のＮｏ）、処理を終了する。
【０１２９】
また、送信処理部１０５は、パケットの入力が有る場合（ステップＳｔ５１のＹｅｓ）、帯域制御部１０６による帯域制限の有無を判定する（ステップＳｔ５２）。送信処理部１０５は、帯域制限中である場合（ステップＳｔ５２のＹｅｓ）、一定時間待機し（ステップＳｔ５４）、再びステップＳｔ５２の判定処理を行う。これにより、帯域制御装置１は、パケットの通過帯域を適切に制御する。
【０１３０】
また、送信処理部１０５は、帯域制限中ではない場合（ステップＳｔ５２のＮｏ）通信処理部１４からパケットを送信する（ステップＳｔ５３）。このようにして、送信処理部１０５は、処理を実行する。なお、ストリームキュー１７１の先頭パケットの映像データの再生時刻と、現在時刻との差分が所定の閾値αより小さい場合（図８のステップＳｔ２９のＹｅｓ）、送信処理部１０５は、映像品質が低下しないように、帯域制限中であっても（ステップＳｔ５２のＹｅｓ）、先頭パケットを送信してもよい。
【０１３１】
図１５には、実施例及び比較例におけるパケット送信処理が示されている。図１５において、ＰＫＴ−Ａは、現在時刻から５秒後に再生される映像データを含むパケットを示し（「再生時刻」＝５秒）、ＰＫＴ−Ｂは、現在時刻から１秒後に再生される映像データを含むパケットを示す（「再生時刻」＝１秒）。また、ＰＫＴ−Ｃは、映像データ以外の他のデータを含むパケットを示す。なお、矢印は、パケットの送信方向を示す。
【０１３２】
比較例の帯域制御装置によると、入力されたパケットを、実施例とは異なり、入力された順序のままで送信する。このため、本来は、ＰＫＴ−Ｂの後で送信すればよいＰＫＴ−Ａが、ＰＫＴ−Ｂより先に送信される。その結果、ＰＫＴ−Ｂは、パケット同士の送信間隔を０．２秒とすると、先頭のＰＫＴ−Ｃから１．２秒遅れて送信され、予定された再生時刻に間に合わない。したがって、端末装置３において映像データを再生した場合、映像品質が低下する。
【０１３３】
一方、実施例の帯域制御装置１は、映像データの再生時刻までの残り時間に応じて、送信するパケットを選択し、また、映像データを含むパケットを再生時刻の順に送信する。このため、再生時刻までの残り時間が少ないＰＫＴ−Ｂが、最優先で送信される。
【０１３４】
また、ＰＫＴ−ＢとＰＫＴ−Ａの各再生時刻には、４秒の差分がある。このため、パケット同士の送信間隔を０．５秒としても、ＰＫＴ−Ａは、先頭のＰＫＴ−Ｂから３．５秒遅れて送信され、予定された再生時刻に間に合う。したがって、端末装置３において映像データを再生した場合、映像品質が、比較例と比べて改善される。さらに、実施例では、パケットの送信間隔が比較例より長いため、図２に示された帯域のピークＰが低減される。これにより、帯域の利用効率が比較例と比べて改善される。
【０１３５】
これまで述べたように、実施例に係る帯域制御装置１は、映像配信サーバ２及びサーバ２ａから受信したパケットを通過させる帯域を制御する。帯域制御装置１は、時刻情報設定部１０３と、再生時刻推定部１０２と、パケット処理部１０１とを有する。
【０１３６】
時刻情報設定部１０３は、映像データを含む前記パケットから、前記パケットが属する通信セッションの最初の前記映像データが再生される時刻を基準とする経過時刻を示す時刻情報を取得する。再生時刻推定部１０２は、映像データが再生される再生時刻を、時刻情報に基づいて推定する。
【０１３７】
パケット処理部１０１は、映像データを含むパケットの各々の再生時刻のうち、最も早い再生時刻までの残り時間が所定の閾値α以上である場合、他のデータを含むパケットを通過させる。また、パケット処理部１０１は、残り時間が所定の閾値αより少ない場合、映像データを含むパケットを、再生時刻の順に従って通過させる。
【０１３８】
上記の構成によると、パケットの帯域を制限しつつ、再生時刻までの残り時間に応じて、映像データを含むパケットを優先的に通過させることができる。したがって、実施例に係る帯域制御装置１によると、再生される映像データの品質が改善される。
【０１３９】
また、実施例に係る通信システムは、複数の映像配信サーバ２及びサーバ２ａと、帯域制御装置１と、複数の端末装置３とを有する。複数の映像配信サーバ２及びサーバ２ａは、それぞれ、帯域制御装置１にパケットを送信する。帯域制御装置１は、複数の映像配信サーバ２及びサーバ２ａから受信したパケットを通過させる帯域を制御する。複数の端末装置３は、それぞれ、帯域制御装置１を通過したパケットを受信する。
【０１４０】
帯域制御装置１は、時刻情報設定部１０３と、再生時刻推定部１０２と、パケット処理部１０１とを有する。時刻情報設定部１０３は、映像データを含む前記パケットから、前記パケットが属する通信セッションの最初の前記映像データが再生される時刻を基準とする経過時刻を示す時刻情報を取得する。再生時刻推定部１０２は、複数の端末装置３において映像データが再生される再生時刻を、時刻情報に基づいて推定する。
【０１４１】
パケット処理部１０１は、映像データを含むパケットの各々の再生時刻のうち、最も早い再生時刻までの残り時間が所定の閾値α以上である場合、他のデータを含むパケットを通過させる。また、パケット処理部１０１は、残り時間が所定の閾値αより少ない場合、映像データを含むパケットを、再生時刻の順に従って通過させる。
【０１４２】
実施例に係る通信システムは、上記の帯域制御装置１の構成を含むため、上述した内容と同様の作用効果を奏する。
【０１４３】
また、実施例に係る帯域制御方法は、映像配信サーバ２及びサーバ２ａから受信したパケットを通過させる帯域を制御する方法において、以下のステップを含む。
ステップ（１）：映像データを含む前記パケットから、前記パケットが属する通信セッションの最初の前記映像データが再生される時刻を基準とする経過時刻を示す時刻情報を取得する。
ステップ（２）：映像データが再生される再生時刻を、時刻情報に基づいて推定する。
ステップ（３）：映像データを含むパケットの各々の再生時刻のうち、最も早い再生時刻までの残り時間が所定の閾値α以上である場合、他のデータを含むパケットを通過させ、残り時間が所定の閾値αより少ない場合、映像データを含むパケットを、再生時刻の順に従って通過させる。
【０１４４】
実施例に係る帯域制御方法は、上記の帯域制御装置１の構成を含むため、上述した内容と同様の作用効果を奏する。
【０１４５】
上述した実施形態は本発明の好適な実施の例である。但し、これに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変形実施可能である。
【０１４６】
なお、以上の説明に関して更に以下の付記を開示する。
（付記１）  他装置から受信したパケットを通過させる帯域を制御する帯域制御装置において、
映像データを含む前記パケットから、前記パケットが属する通信セッションの最初の前記映像データが再生される時刻を基準とする経過時刻を示す時刻情報を取得する取得部と、
前記映像データが再生される再生時刻を、前記時刻情報に基づいて推定する推定部と、
前記映像データを含む前記パケットの各々の前記再生時刻のうち、最も早い再生時刻までの残り時間が所定の閾値以上である場合、他のデータを含む前記パケットを通過させ、前記残り時間が前記所定の閾値より少ない場合、前記映像データを含む前記パケットを、前記再生時刻の順に従って通過させる通過制御部とを有することを特徴とする帯域制御装置。
（付記２）  前記推定部は、前記通信セッションごとに、前記時刻情報が示す経過時刻と、最初に取得した前記時刻情報が示す経過時刻との差分に基づいて、前記再生時刻を推定することを特徴とする付記１に記載の帯域制御装置。
（付記３）  前記推定部は、前記通信セッションごとに、前記映像データを含む最初の前記パケットを通過させた時刻に前記差分を加算することにより、前記再生時刻を推定することを特徴とする付記２に記載の帯域制御装置。
（付記４）  前記取得部は、前記映像データを含む前記パケットに前記時刻情報が含まれていないとき、前記通信セッションについて、直前に取得した前記時刻情報を含む前記パケットより後に受信した前記パケットに含まれる前記映像データのデータ量の合計を、前記映像データのビットレートで除算し、該除算により得た値を、直前に取得した前記時刻情報が示す経過時刻に加算することにより、前記再生時刻を算出することを特徴とする付記１乃至３の何れかに記載の帯域制御装置。
（付記５）  前記推定部は、前記通信セッションの全ての前記映像データが複数のセグメントに分割されて送信されるとき、前記複数のセグメントのうち、先頭のセグメントの最初の前記映像データを通過させた時刻と、前記時刻情報が示す経過時刻と、先頭のセグメントから直前のセグメントまでの前記映像データの各々の再生に要する時間の合計値とに基づいて、前記再生時刻を算出することを特徴とする付記１乃至４の何れかに記載の帯域制御装置。
（付記６）  複数のサーバ装置と、帯域制御装置と、複数の端末装置とを有する通信システムにおいて、
前記複数のサーバ装置は、それぞれ、前記帯域制御装置にパケットを送信し、
前記帯域制御装置は、前記複数のサーバ装置から受信した前記パケットを通過させる帯域を制御し、
前記複数の端末装置は、それぞれ、前記帯域制御装置を通過した前記パケットを受信し、
前記帯域制御装置は、
映像データを含む前記パケットから、前記パケットが属する通信セッションの最初の前記映像データが再生される時刻を基準とする経過時刻を示す時刻情報を取得する取得部と、
前記複数の端末装置において前記映像データが再生される再生時刻を、前記時刻情報に基づいて推定する推定部と、
前記映像データを含む前記パケットの各々の前記再生時刻のうち、最も早い再生時刻までの残り時間が所定の閾値以上である場合、他のデータを含む前記パケットを通過させ、前記残り時間が前記所定の閾値より少ない場合、前記映像データを含む前記パケットを、前記再生時刻の順に従って通過させる通過制御部とを有することを特徴とする通信システム。
（付記７）  前記推定部は、前記通信セッションごとに、前記時刻情報が示す経過時刻と、最初に取得した前記時刻情報が示す経過時刻との差分に基づいて、前記再生時刻を推定することを特徴とする付記６に記載の通信システム。
（付記８）  前記推定部は、前記通信セッションごとに、前記映像データを含む最初の前記パケットを通過させた時刻に前記差分を加算することにより、前記再生時刻を推定することを特徴とする付記７に記載の通信システム。
（付記９）  前記取得部は、前記映像データを含む前記パケットに前記時刻情報が含まれていないとき、前記通信セッションについて、直前に取得した前記時刻情報を含む前記パケットより後に受信した前記パケットに含まれる前記映像データのデータ量の合計を、前記映像データのビットレートで除算し、該除算により得た値を、直前に取得した前記時刻情報が示す経過時刻に加算することにより、前記再生時刻を算出することを特徴とする付記６乃至８の何れかに記載の通信システム。
（付記１０）  前記推定部は、前記通信セッションの全ての前記映像データが複数のセグメントに分割されて送信されるとき、前記複数のセグメントのうち、先頭のセグメントの最初の前記映像データを通過させた時刻と、前記時刻情報が示す経過時刻と、先頭のセグメントから直前のセグメントまでの前記映像データの各々の再生に要する時間の合計値とに基づいて、前記再生時刻を算出することを特徴とする付記６乃至９の何れかに記載の通信システム。
（付記１１）  他装置から受信したパケットを通過させる帯域を制御する帯域制御方法において、
映像データを含む前記パケットから、前記パケットが属する通信セッションの最初の前記映像データが再生される時刻を基準とする経過時刻を示す時刻情報を取得し、
前記映像データが再生される再生時刻を、前記時刻情報に基づいて推定し、
前記映像データを含む前記パケットの各々の前記再生時刻のうち、最も早い再生時刻までの残り時間が所定の閾値以上である場合、他のデータを含む前記パケットを通過させ、前記残り時間が前記所定の閾値より少ない場合、前記映像データを含む前記パケットを、前記再生時刻の順に従って通過させることを特徴とする帯域制御方法。
（付記１２）  前記通信セッションごとに、前記時刻情報が示す経過時刻と、最初に取得した前記時刻情報が示す経過時刻との差分に基づいて、前記再生時刻を推定することを特徴とする付記１１に記載の帯域制御方法。
（付記１３）  前記通信セッションごとに、前記映像データを含む最初の前記パケットを通過させた時刻に前記差分を加算することにより、前記再生時刻を推定することを特徴とする付記１２に記載の帯域制御方法。
（付記１４）  前記映像データを含む前記パケットに前記時刻情報が含まれていないとき、前記通信セッションについて、直前に取得した前記時刻情報を含む前記パケットより後に受信した前記パケットに含まれる前記映像データのデータ量の合計を、前記映像データのビットレートで除算し、該除算により得た値を、直前に取得した前記時刻情報が示す経過時刻に加算することにより、前記再生時刻を算出することを特徴とする付記１１乃至１３の何れかに記載の帯域制御方法。
（付記１５）  前記通信セッションの全ての前記映像データが複数のセグメントに分割されて送信されるとき、前記複数のセグメントのうち、先頭のセグメントの最初の前記映像データを通過させた時刻と、前記時刻情報が示す経過時刻と、先頭のセグメントから直前のセグメントまでの前記映像データの各々の再生に要する時間の合計値とに基づいて、前記再生時刻を算出することを特徴とする付記１１乃至１４の何れかに記載の帯域制御方法。
【符号の説明】
【０１４７】
１      帯域制御装置
２      映像配信サーバ
２ａ      サーバ
３      端末装置
１０１     パケット処理部
１０２     再生時刻推定部
１０３     時刻情報設定部
１０５     送信処理部
１０６     帯域制御部
【図１】
2016116164.tif 000003
【図２】
2016116164.tif 000004
【図３】
2016116164.tif 000005
【図４】
2016116164.tif 000006
【図５】
2016116164.tif 000007
【図６】
2016116164.tif 000008
【図７】
2016116164.tif 000009
【図８】
2016116164.tif 000010
【図９】
2016116164.tif 000011
【図１０】
2016116164.tif 000012
【図１１】
2016116164.tif 000013
【図１２】
2016116164.tif 000014
【図１３】
2016116164.tif 000015
【図１４】
2016116164.tif 000016
【図１５】
2016116164.tif 000017