ストリーム配信装置、ストリーム配信システム、ストリーム配信方法およびストリーム配信プログラム
【課題】ネットワークを介して受信端末へストリームを配信するストリーム配信装置において、配信するストリームのビットレートの上昇を判定する際に使用される往復遅延時間RTTの閾値を、容易かつ自動で設定する。
【解決手段】制御履歴記憶部は、過去のビットレート上昇試行時の上昇直前の往復遅延時間RTTを履歴情報として記憶する。閾値設定部は、制御履歴記憶部に記憶されたRTTの履歴情報を基に、上昇後のビットレートで配信可能であった場合のRTTと、上昇後のビットレートで配信不可能であった場合のRTTとにより閾値RTTthの閾値範囲を設定する。そして、時間経過とともに閾値RTTthを、閾値範囲の下限値から上限値へ近づけて行く。配信レート決定部は、計測した往復遅延時間RTT(RTTm)が閾値設定部で設定した閾値RTTthを下回った場合に、ビットレートを上昇させる。
【解決手段】制御履歴記憶部は、過去のビットレート上昇試行時の上昇直前の往復遅延時間RTTを履歴情報として記憶する。閾値設定部は、制御履歴記憶部に記憶されたRTTの履歴情報を基に、上昇後のビットレートで配信可能であった場合のRTTと、上昇後のビットレートで配信不可能であった場合のRTTとにより閾値RTTthの閾値範囲を設定する。そして、時間経過とともに閾値RTTthを、閾値範囲の下限値から上限値へ近づけて行く。配信レート決定部は、計測した往復遅延時間RTT(RTTm)が閾値設定部で設定した閾値RTTthを下回った場合に、ビットレートを上昇させる。
【発明の詳細な説明】
【技術分野】
【0001】
本発明はストリーム配信装置、ストリーム配信システム、ストリーム配信方法およびストリーム配信プログラムに関し、特に通信品質の保証されていないネットワークにおいてストリームをパケットに分割して配信するストリーム配信装置、ストリーム配信システム、ストリーム配信方法およびストリーム配信プログラムに関する。
【背景技術】
【0002】
現在、ネットワークを介して動画像コンテンツ等のストリームデータ(単に、「ストリーム」とも呼ぶ)を配信するサービスが行われている。このストリームの配信を行うストリーム配信装置において、受信端末との間のネットワーク状態に応じてビットレートを制御する技術の一例が特許文献1に記載されている。特許文献1に記載のストリーム配信装置は、受信端末からパケットロスと往復遅延時間(RTT:Round Trip Time)の報告を受けて動作するものであり、パケットロスが報告された場合にはネットワーク状態が悪化したと判断して配信するビットレートを低下させ、往復遅延時間RTTが設定した閾値を下回った場合に、ネットワーク状態が好転したと判断して配信するストリームのビットレートを上昇させるものである。
【0003】
また、特許文献2に記載のネットワーク監視装置が開示されている。このネットワーク監視装置においては、応答時間計測部が遅延時間を測定し、該遅延時間の履歴を保存し、該遅延時間の平均値に基づいて閾値を算出/更新し、該閾値を超えている場合に経路中に障害が発生していると判定する(段落0035から0042を参照)。しかしながら、このネットワーク監視装置は、IP網における障害の有無を監視することを目的としており、ストリーム配信装置から配信するストリームのビットレートの上昇動作に関するものではない。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2008−099261号公報
【特許文献2】特開2006−165629号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
上述した特許文献1に記載のストリーム配信装置における問題点は、データ転送のビットレートを上昇させるための往復遅延時間RTTの閾値をあらかじめ設定しておく必要がある点である。ビットレートを上昇させる適切な閾値は、現在配信しているビットレート、上昇させるビットレートに依存する。すなわち、ビットレートを1Mbpsから2Mbpsへ上昇させる場合、2Mbpsから4Mbpsへ上昇させる場合、4Mbpsから8Mbpsへ上昇させる場合で適切な往復遅延時間RTTの閾値は多くの場合異なるはずである。
【0006】
また、適切な閾値は受信端末ごとに異なる値となるはずである。すなわち、1Mbpsから2Mbpsへ上昇させるための閾値であっても、受信端末までの経路が異なれば適切な閾値は異なると考えるのが一般的である。そのため、すべての受信端末に対してすべてのビットレートの往復遅延時間RTTの閾値をあらかじめ設定しておくことは、膨大な時間を必要とし現実的ではない。
【0007】
また、特許文献1に記載のストリーム配信装置においては、往復遅延時間RTT等の閾値を動的(自ら積極的)に設定変更してビットレートの上昇試行を行う考え方は示されてない。
【0008】
本発明の主たる課題は、ストリーム配信装置において、ビットレートを上昇させるための往復遅延時間RTTの閾値を、過去のビットレートの上昇試行の際に計測した往復遅延時間RTTの履歴情報を利用して、容易かつ自動で設定できるようにすることにあり、さらには、往復遅延時間RTTの閾値を動的に設定変更して、ビットレートの不用意な上昇と、低ビットレートでの停滞を防止することにある。
【課題を解決するための手段】
【0009】
本発明のストリーム配信装置は、受信端末に配信するストリームのビットレートを上昇させる際の受信端末との間の往復遅延時間を、受信端末およびビットレートごとに履歴情報として記憶し、この履歴情報を基にしてビットレートを上昇させる際の往復遅延時間の閾値を設定する、ことを特徴とする。
【発明の効果】
【0010】
本発明のストリーム配信装置においては、受信端末およびビットレートごとに、過去のビットレートの上昇試行時の往復遅延時間RTTを履歴情報として記憶する。そして、例えば、上昇後のビットレートで配信可能であった場合の往復遅延時間RTTと、上昇後のビットレートで配信不可能であった場合の往復遅延時間RTTとを基に、閾値RTTthを設定する。
これにより、受信端末とビットレートに応じた適切な閾値RTTthを、過去のビットレートの上昇試行の際に計測した往復遅延時間RTTの履歴情報を基に、容易かつ自動で設定できる。
【図面の簡単な説明】
【0011】
【図1】本発明の第1の実施の形態に係わるストリーム配信システムの構成を示すブロック図である。
【図2】制御履歴記憶部15の構成例を示す図である。
【図3】第1の実施の形態の動作を示すフローチャートである。
【図4】往復遅延時間RTTの閾値RTTthの第1の設定方法を示すグラフである。
【図5】往復遅延時間RTTの閾値RTTthの第2の設定方法を示すグラフである。
【図6】本発明の第2の実施の形態に係わるストリーム配信システムの構成を示すブロック図である。
【図7】第2の実施の形態の動作を示すフローチャートである。
【図8】第2の実施の形態におけるネットワーク状態推定方法を示す第1のシーケンス図である。
【図9】第2の実施の形態におけるネットワーク状態推定方法を示す第2のシーケンス図である。
【図10】実施例1におけるストリーム配信装置1の制御履歴記憶部15の構成を示す図である。
【図11】実施例1における往復遅延時間RTTの閾値RTTthの例を示す図である。
【図12】実施例1における受信端末2からストリーム配信装置1へのレポートの例を示す図である。
【図13】実施例1におけるストリーム配信装置1の制御履歴記憶部15内の上昇可否記憶テーブルの例を示す図である。
【図14】実施例1における往復遅延時間RTTの閾値RTTthの例を示す図である。
【図15】実施例1におけるストリーム配信装置1の制御履歴記憶部15内の上昇可否記憶テーブルの例を示す図である。
【図16】実施例2におけるネットワーク状態推定方法を示すシーケンス図である。
【発明を実施するための形態】
【0012】
以下、発明の実施の形態について図面を参照しながら説明する。
【0013】
[第1の実施の形態]
図1は、本発明の第1の実施の形態に係わるストリーム配信システムの構成を示す図である。図1に示すように、本発明のストリーム配信システムは、ストリーム(動画像等のコンテンツ)をネットワークを通して配信するストリーム配信装置1と、ストリームを受信して再生する受信端末2から構成される。
【0014】
ストリーム配信装置1と受信端末2は、インターネットなどの利用可能な帯域が保証されていないネットワークで接続されている。また、ストリーム配信装置1は複数の受信端末2と接続していてもよい。
【0015】
ストリーム配信装置1は、受信端末2へ向けてストリームを送信するストリーム送信部11、受信端末2へストリームとして配信するコンテンツを記憶するコンテンツ記憶部12、受信端末2からのレポートを受信するレポート受信部13、受信端末2へ配信するコンテンツのビットレートを判定(決定)する配信レート決定部14、過去の制御履歴の情報を記憶する制御履歴記憶部15、制御履歴の情報を基にビットレートを上昇させるための往復遅延時間RTTの閾値RTTthを設定する閾値設定部16、ストリームの配信開始や終了を管理する配信管理部17から構成される。
【0016】
まず、配信管理部17は、受信端末2からの配信要求のメッセージの受信時に、コンテンツ記憶部12から当該コンテンツの配信可能なビットレートのリストを取得し、配信レート決定部14に対して配信コンテンツとビットレートのリストを通知し、配信開始を指示する。
【0017】
本実施の形態では、以降、受信端末2を1台として説明する。受信端末2が複数存在する場合、符号11から17で示す各処理部の間の通信内容に受信端末の識別子が追加されるが、ここでは省略する。
【0018】
ストリーム送信部11は、配信レート決定部14から指示されたビットレートのコンテンツをコンテンツ記憶部12から取り出し受信端末2へ向けて送信する。ストリーム配信装置1から受信端末2へのコンテンツ送信は、トランスポートプロトコルとしてコネクションレス型プロトコルを使用し、トランスポートプロトコルでの輻輳制御、到達確認や再送は行われないこととする。また、ストリーム送信部11は、コンテンツ配信中に配信レート決定部14からビットレートの変更を指示された場合には、受信端末2での再生に途切れが発生しないように瞬時にビットレートを切り替える。
【0019】
映像コンテンツの場合、MPEG−2やMPEG−4などフレーム間予測を使用して圧縮されている場合がある。フレーム間予測を使用して圧縮されたコンテンツは、単独で復号可能なIフレームと、前後のフレームの情報を使用して復号するPフレーム、Bフレームからなる。このとき、PフレームまたはBフレームの直前でビットレートを切り替えると、受信端末2は前のフレームが存在しないため正しく復号できない。そのため、フレーム間予測を使用して圧縮されているコンテンツの場合には、Iフレームの直前で切り替える。
【0020】
コンテンツ記憶部12は、ストリーム送信部11から受信端末2へ送信するコンテンツデータ(ストリームデータ)を記憶する処理部であり、各コンテンツをあらかじめ複数のビットレートでエンコードして保持しておく。あるいは、ストリーム送信部11からの要求されたビットレートにトランスコードしたコンテンツデータを一時的に記憶する記憶部でもよい。
【0021】
レポート受信部13は、受信端末2が送信した受信状態のレポート情報を受け、パケットロスの有無と往復遅延時間RTTとを配信レート決定部14へ通知する。このとき、受信端末2からパケットロス率がレポートされる場合には、配信レート決定部14へパケットロス率を通知してもよい。
【0022】
配信レート決定部14は、配信管理部17からコンテンツの配信開始を指示されると、初期の配信レートを決定してストリーム送信部11へ送信開始を指示する。初期の配信レートは、配信するコンテンツの中でビットレートが最低のものを選択する方法、受信端末2の種類や回線種別をストリーム配信装置1が把握している場合にはそれらの情報を使用して決定する方法、あるいは、配信開始前に利用可能帯域を推定し、その推定値をもとに決定する方法など、いかなる方法を使用してもよい。
【0023】
また、配信レート決定部14は、コンテンツ配信中にレポート受信部13からパケットロスの有無と往復遅延時間RTTの通知を受け、パケットロスが発生している場合には配信するコンテンツのビットレートを1段階低下することを決定し、ストリーム送信部へ指示する。レポート受信部13からパケットロス率が通知される場合には、パケットロス率が規定値を超えていたらビットレートを1段階低下させてもよい。パケットロスが発生していない場合には、閾値設定部16からビットレートを上昇させるための往復遅延時間RTTの閾値RTTthを受け取り、レポート受信部13から通知された往復遅延時間RTT(計測された最新の往復遅延時間RTTm)と比較する。
【0024】
その結果、「RTTm≧RTTth」ならばビットレートを変更しないことを決定し、ストリーム送信部11に対してはビットレート変更の指示は行わない。一方で、「RTTm<RTTth」ならば配信するビットレートを1段階上昇することを決定し、ストリーム送信部11へ指示する。
【0025】
配信レート決定部14は、ビットレートの上昇を決定した場合に、往復遅延時間RTTmを記憶しておき、上昇させたビットレートでパケットロスなく配信できたか否かを判定して、制御履歴記憶部15を更新し(更新方法は後述)、閾値設定部16へ制御履歴記憶部15における履歴情報の更新を通知する。
【0026】
なお、上昇させたビットレートでパケットロスなく配信できたか否かは、ビットレートを上昇させた直後の受信端末2からのレポートでパケットロスの発生が通知されるか否かで決定する。また、ビットレートを上昇させた直後だけでなく、ビットレートを上昇させてから指定回数・指定時間のレポートでパケットロスの発生が通知されるか否かで決定してもよい。レポート受信部13からパケットロスの有無だけでなくパケットロス率が通知される場合には、パケットロス率が規定値を超えているか否かを基に決定してもよい。
【0027】
制御履歴記憶部15は、配信レート決定部14での制御履歴の情報を記憶する処理部である。図2は、制御履歴記憶部15の構成例を示す図である。
【0028】
図2に示すように、制御履歴記憶部15は、受信端末(端末1,端末2,端末3,・・・)ごとの上昇可否記憶テーブル151(151−1、151−2、…)から構成され、それぞれの上昇可否記憶テーブル151は、上昇前ビットレート1511、上昇後ビットレート1512、上昇可能RTT1513、上昇不可能RTT1514の組で1レコードが構成される。
【0029】
上昇可能RTT1513と上昇不可能RTT1514は、上昇前ビットレート1511から上昇後ビットレート1512へ上昇させる直前の往復遅延時間RTTを格納する領域である。上昇可能RTT1513に格納されているのは、上昇前ビットレート1511から上昇後ビットレート1512へ上昇可能であった場合の往復遅延時間RTT、上昇不可能RTT1514に格納されているのは、上昇前ビットレート1511から上昇後ビットレート1512へ上昇不可能であった場合の往復遅延時間RTTである。
【0030】
図2の端末1に対する上昇可否記憶テーブル151−1では、ビットレートBR1[bps]での配信中に、往復遅延時間RTTが「Rok1_1,Rok1_2,・・・」の場合、ビットレートBR2[bps]で配信でき、往復遅延時間RTTが「Rng1_1,Rng1_2,・・・」の場合、ビットレートBR2[bps]では配信できなかったことを表している。
【0031】
なお、初めて配信する端末などで、これまでにビットレート上昇の試行が行われていない場合には、初期値として上昇可能RTT1513には十分小さな値を格納しておき、上昇不可能RTT1514には十分大きな値を格納しておくものとする。
【0032】
配信レート決定部14は、上昇させたビットレートでの配信可否判定後に、制御履歴記憶部15の上昇可否記憶テーブル151から上昇前ビットレートと上昇後ビットレートが一致するレコードを検索し、計測した往復遅延時間RTTmを上昇可能RTTまたは上昇不可能RTTへ格納する。
【0033】
閾値設定部16は、制御履歴記憶部15に記憶された履歴情報(上昇可否記憶テーブル151)に基づいてビットレートを上昇させる往復遅延時間RTTの閾値RTTthを計算し、配信レート決定部14へ通知する。閾値設定部16は、配信レート決定部14から制御履歴記憶部15の更新を通知されると、制御履歴記憶部15から上昇可否記憶テーブル151の内容を取り出し、ビットレートを1段階上昇させるための閾値の上限値と下限値を求める。
【0034】
閾値の下限RTTlbは、上昇可能RTT1513に格納された往復遅延時間RTTの最大値、
max{Rok1_1,Rok1_2,…,Rok1_n}や、
平均値(Rok1_1+Rok1_2+…+Rok1_n)/n、などによって決定する。
【0035】
また、閾値の上限RTTubは上昇不可能RTT1514に格納された往復遅延時間RTTの最小値、
min{Rng1_1,Rng1_2,…,Rng1_m}や、
平均値(Rng1_1+Rng1_2+…+Rng1_m)/m、などによって決定する。
【0036】
次に、[下限RTTlb,上限RTTub]の範囲で閾値RTTthを決定する。閾値RTTthは、時間経過とともに下限RTTlbから上限RTTubへ近づけていく方法を採る。これは、ビットレート上昇の試行回数を減らし、かつ、低ビットレートに停滞するのを防止するためである。
【0037】
本来は上昇不可能であるにも関わらずビットレートを上昇させると、受信端末2での再生に途切れや乱れが生じるため、ビットレート上昇の試行はなるべく少なくすることが望ましい。一方で、試行を少なくするとビットレートを上昇可能にも関わらず上昇させずに低いビットレートのままで停滞してしまうことがある。閾値RTTthを下限RTTlbから上限RTTubへ近づけることで、初めは、往復遅延時間RTTが小さく、ネットワーク状態が非常によく、上昇させても配信できる可能性が高い場合のみビットレートを上昇させ、時間が経過するにつれてビットレート上昇を発生しやすくして低ビットレートでの停滞を防止することが可能となる。
【0038】
具体的には、図4に示すように初期値を「RTTth=RTTlb」とし、閾値RTTthを、下限RTTlbと上限RTTubとの間で、
RTTth=RTTth+α(α:1回の処理での増加量)、
と変更していく方法がある。
【0039】
または、図5に示すように
RTTth=RTTth+(β^i(RTTub−RTTlb)) (β:0<β<1を満たす定数、i:変更回数)、
と変更していく方法などある。
【0040】
なお、閾値を変更する間隔、α、βはあらかじめ決定しておく。また、ここで述べた以外の方法で閾値を変更してもよい。
【0041】
受信端末2は、ネットワークを通してストリーム配信装置1からストリームを受信するストリーム受信部21と、受信状態をストリーム配信装置1へ通知するレポート送信部22から構成される。
【0042】
ストリーム受信部21はレポート送信部22と接続しており、ストリーム配信装置1からのストリームを受信するとともにパケットロスなどの受信状態を計測し、レポート送信部22へ通知する。
【0043】
レポート送信部22は、ストリーム受信部21から通知された受信状態の情報からなるレポートを定期的にストリーム配信装置1へフィードバックする。上述した例では、最新のレポートから求めた往復遅延時間RTTを閾値RTTthと比較していた。しかし、クロストラフィックの発生などによって往復遅延時間RTTに揺らぎが発生する場合がある。この揺らぎによる影響を吸収するため、往復遅延時間RTTの移動平均を使用してもよい。
【0044】
すなわち、受信端末2から受信したレポートのうち最新i個の往復遅延時間RTTをR1,R2,R3,…,Riとしたとき、
RTTm=(a1・R1+a2・R2+…+ai・Ri)/i (a1,…,ai:重み付けの係数)、とする方法である。
【0045】
次に図3のフローチャートを参照して、本実施の形態の全体の動作について詳細に説明する。
まず、ストリームの配信開始時において、配信管理部17は配信レート決定部14へ配信開始を指示し、配信レート決定部14は初期配信レート(初期のビットレート)を決定する(ステップS01)。
【0046】
次に現在配信中のビットレートから1段階上のビットレートに変更するための閾値を決定する。配信レート決定部14は初期配信レートと1段階上のビットレートを閾値設定部16へ通知し、閾値設定部16は、制御履歴記憶部15の上昇可否記憶テーブル151から該当するレコードを取り出す。
【0047】
閾値設定部16では、取り出したレコードをもとに、閾値の上限RTTubと下限RTTlbを決定し(ステップS02)、[RTTlb,RTTub]の範囲から閾値RTTthを決定して(ステップS03)、配信レート決定部14からの要求時に閾値RTTthを通知する。
【0048】
前述のとおり閾値RTTthは、下限RTTlbから上限RTTubへ時間経過とともに近づけていく(図4、図5を参照)。そこで、閾値設定部16は、前回閾値RTTthを変更してからの経過時間や、計測した往復遅延時間RTTmとの比較回数をもとにして閾値RTTthを必要に応じて変更する(ステップS03)。
【0049】
以下、現在配信しているコンテンツ(ストリーム)のビットレートをBR1、BR1よりも1段階上のビットレートをBR2、BR2よりも1段階上のビットレートをBR3、BR1よりも1段階下のビットレートをBR0と表す。
【0050】
受信端末2から受信状態のレポートを受信すると、レポート受信部13はパケットロスの有無と、往復遅延時間RTTとを配信レート決定部14へ通知する(ステップS04)。配信レート決定部14は、まずパケットロスの有無を判定する(ステップS05)。パケットロスが発生している場合には(ステップS05:Yes)、配信レートをBR1からBR0へ1段階低下させ(ステップS06)、ステップS02へ戻る。
【0051】
パケットロスが発生していない場合には(ステップS05:No)、レポート受信部13から通知された往復遅延時間RTTmと閾値設定部16から通知された閾値RTTthを比較する(ステップS07)。往復遅延時間RTTmが閾値RTTthを下回っていない場合(ステップS07:No)にはビットレートの変更は行わずに、ステップS03へ戻る。
【0052】
往復遅延時間RTTmが閾値RTTthを下回った場合には(ステップS07:Yes)、配信レート決定部14は、配信レートをビットレートBR1からBR2へ1段階上昇することを決定し、ストリーム送信部11は配信レートを1段階上昇させる(ステップS08)。
【0053】
配信レートを上昇後、配信レート決定部14は上昇後のレート(BR2)で配信可能か否かを判定する(ステップS09)。この判定は、前述の通り、配信レート変更後のレポートのパケットロス発生有無によって行う。
【0054】
配信可能な場合には(ステップS09:Yes)、上昇直前に計測した往復遅延時間RTTmを、制御履歴記憶部15の上昇可否記憶テーブル151における上昇前ビットレートがBR1かつ上昇後ビットレートがBR2のエントリの上昇可能RTT1513に追加し(ステップS12)、ステップS02へ戻る。
【0055】
一方でビットレートBR2で配信できない場合には(ステップS09:No)、上昇不可能RTT1514へ往復遅延時間RTTmを追加し(ステップS10)、配信レートをBR1へ戻し(ステップS11)、ステップS02へ戻る。
【0056】
以上説明したように、本発明のストリーム配信装置においては、受信端末ごとに、過去のビットレート上昇試行時の往復遅延時間RTTを履歴情報として記憶し、上昇後のビットレートで配信可能であった場合の往復遅延時間RTTを使用して閾値の下限値を設定し、上昇後のビットレートで配信不可能であった場合の往復遅延時間RTTを使用して閾値の上限値を設定し、時間経過とともに閾値を下限値から上限値へ近づけてゆく。
【0057】
これにより、過去のビットレートの上昇試行の際に計測した往復遅延時間RTTの履歴情報から、受信端末とビットレートに応じた閾値を、容易かつ自動で設定できる。また、ビットレートの不用意な上昇と、ビットレートの上昇試行の停滞を防止できる。すなわち、閾値を大きく設定するとネットワーク状態があまり良くない場合にもビットレートを上昇させるため、上昇後のビットレートで配信できず映像に乱れや途切れの発生することが多くなる。一方、閾値を小さく設定するとビットレートを上昇可能でも上昇させず、受信端末に低品質のコンテンツを配信し続けることになる。本発明では、閾値を閾値設定範囲内において、下限値から上限値へ時間経過と共に近づけていくため、初めは上昇後のビットレートで配信できる可能性が高い場合のみビットレートを上昇させて、配信するストリーム(画像等)の乱れや途切れを防止し、時間経過とともにビットレートを上昇しやすくして停滞を防止できる。
【0058】
なお、図1に示すストリーム配信装置1および受信端末2は、内部にCPUを含むコンピュータシステムを有している。上述した処理に関する一連の処理の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。また、ストリーム配信装置1はサーバ装置等で構成され、このストリーム配信装置1には、周辺機器として入力装置、表示装置等(いずれも表示せず)が接続されているものとする。ここで、入力装置としては、キーボード、マウス等の入力デバイスのことをいう。表示装置とは、CRT(Cathode Ray Tube)や液晶表示装置等のことをいう。
【0059】
以上、本発明の第1の実施の形態について説明したが、図1に示す本発明のストリーム配信装置は、受信端末2に配信するストリームのビットレートを上昇試行する際の受信端末2との間の往復遅延時間RTTを、受信端末2ごとに、かつ上昇前と上昇後のビットレートの組み合わせに関連付けて履歴情報として記憶する制御履歴記憶部15と、制御履歴記憶部15に記憶された往復遅延時間RTTの履歴情報を基にしてビットレートを上昇させる際の往復遅延時間RTTの閾値RTTthを設定する閾値設定部16と、受信端末2との間の往復遅延時間RTTが閾値RTTthを下回った場合に、当該受信端末2に配信するストリームのビットレートを上昇させること判定する配信レート決定部14と、を有して構成される。
これにより、ビットレートを上昇させるための往復遅延時間RTTの閾値RTTthを、受信端末2およびビットレートごとに、過去のビットレートの上昇試行の際に計測した往復遅延時間RTTの履歴情報を基に、容易かつ自動で設定できる。
【0060】
また、制御履歴記憶部15は、ビットレートを上昇させる直前の受信端末2との間の往復遅延時間RTTを、ビットレート上昇後に配信可能であった往復遅延時間と、ビットレート上昇後に配信不可能であった往復遅延時間とに分類して、上昇可否記憶テーブル151(図2)に記憶する。
これにより、ビットレートを上昇させた際に、配信が可能であった場合の往復遅延時間RTTの情報と、配信が不可であった場合の往復遅延時間RTTを分類して記憶することができ、この履歴情報を基に、閾値RTTthを容易に設定することができる。
【0061】
また、閾値設定部16は、制御履歴記憶部15に記憶されたビットレート上昇後に配信可能であった往復遅延時間RTTと、ビットレート上昇後に配信不可能であった往復遅延時間RTTとを基に閾値設定範囲を決定し、該閾値設定範囲内から閾値RTTthを設定する。
これにより、配信が可能であった場合の往復遅延時間RTTの履歴情報と、配信が不可であった場合の往復遅延時間RTTの履歴情報を基にして閾値設定範囲を決定し、該閾値設定範囲内から閾値RTTthを設定することができる。
【0062】
また、閾値設定部16は、閾値設定範囲内で閾値RTTthを変化させる、この場合に、閾値設定範囲内で、閾値RTTthを時間経過とともに下限値から上限値へ近づくように設定変更する。
これにより、往復遅延時間RTTの閾値を動的に設定変更してビットレートの上昇試行を積極的に行うことができ、ビットレートの不用意な上昇と、ビットレートの上昇試行の停滞とを防止できる。
【0063】
[第2の実施の形態]
次に、本発明の第2の実施の形態について図面を参照しながら説明する。
【0064】
図6は、本発明の第2の実施の形態に係わるストリーム配信システムの構成を示す図である。図6に示すように、本発明の第2の実施の形態に係わるストリーム配信装置1Aは、図1に示す第1の実施の形態のストリーム配信装置1と比較して、レポート受信部13が削除され、受信端末2Aとの間の管理セッションの情報からネットワーク状態を推定するネットワーク状態推定部18が追加された点が異なる。他の構成は図1に示すストリーム配信装置1および受信端末1と同様である。このため、同一の構成部分には同一の符号を付している。
【0065】
また、受信端末2Aは、図1に示す第1の実施の形態の受信端末1と比較して、レポート送信部22が削除され、ストリーム配信装置1Aとの間でセッション情報をやりとりする管理情報通信部23が追加された点が異なる。
【0066】
この第2の実施の形態では、ストリーム配信装置1Aの配信管理部17と受信端末2Aの管理情報通信部23はコネクション型プロトコルを使用した管理セッションを接続している。コネクション型プロトコルは確認応答機能を備えており、送信側が送信したデータを受信側が受信すると、受信側から送信側へ確認応答が送信される。
【0067】
また、受信側からデータの不着を意味する否定応答があった場合や、送信後所定時間が経過しても確認応答を受信できない場合にはデータを再送する。再送を既定回数行っても確認応答を受信できない場合には、上位レイヤに対して、送信が完了しなかったことを通知する。
【0068】
この管理セッションでは、配信開始前に受信端末2Aからストリーム配信装置1Aへ配信要求を行い、配信中にはストリーム配信装置1Aから受信端末2Aへの死活監視に使用する。死活監視は、あらかじめ指定した間隔でストリーム配信装置1Aから受信端末2Aへ死活監視用データ(例えば、死活監視パケット)を送信することで行う。死活監視用データが受信端末2Aへ到達すると、受信端末2Aからストリーム配信装置1Aへ確認応答が送信され、確認応答を受信したストリーム配信装置1Aは受信端末2Aとの間の接続が維持されていることを確認する。
【0069】
所定回数連続して端末との接続維持が確認できなかった場合、ストリーム配信装置1Aは受信端末2Aが切断されたものと判定して、配信を停止する。
【0070】
ストリーム配信装置1Aのネットワーク状態推定部18は、この死活監視の通信をモニタリングし、ネットワーク状態を推定する。ネットワーク状態推定部18は、配信管理部17から受信端末2Aへ死活監視用データを送信した時刻を記憶しておき、確認応答を受信した時刻との差分を往復遅延時間RTTする。また、コネクション型プロトコルでの再送が発生した場合には、パケットロスが発生していると判断する。ネットワーク状態推定部18は、この結果を配信レート決定部14へ通知し、配信レート決定部14では、第1の実施の形態と同様に動作する(例えば、パケットロスが発生している場合は、配信するストリームのビットレートを1段階低下させる)。
【0071】
次に、図7のフローチャートを参照して第2の実施の形態の動作を説明する。この第2の実施の形態では、図3に示すフローチャートにおけるレポート受信部13が受信端末2からレポートを受信するステップS04が、ネットワーク状態推定部18がネットワーク状態を推定するステップS13に代わった点で第1の実施の形態と異なる。他のステップは図3に示すフローチャートと同様である。このため、同一の処理内容には同一の符号を付し、重複する説明は省略する。
【0072】
ネットワーク状態推定部18における往復遅延時間RTTとパケットロスの推定方法を、図8および図9のシーケンス図を使用して説明する。
【0073】
図8は、パケットロスが発生しなかった場合のシーケンス図である。図8に示すシーケンス図を参照して、まず、ストリーム配信装置1Aの配信管理部17が死活監視用データを受信端末2Aに送信する(ステップS101)。そして、ネットワーク状態推定部18は送信時刻Tsendを記憶する(ステップS102)。
【0074】
受信端末2Aの管理情報通信部23は、ストリーム配信装置1Aから死活監視用データを受信すると(ステップS103)、ストリーム配信装置1Aへ確認応答を送信する(ステップS104)。
【0075】
ストリーム配信装置1Aへ確認応答が到着した時刻をTrcvとすると、ネットワーク状態推定部18は、「往復遅延時間RTTm=Trcv−Tsend」を計算し、パケットロスが発生していないことと合わせて配信レート決定部14へ通知する。
【0076】
また、図9は、パケットロスが発生した場合のシーケンス図である。図9に示すシーケンス図を参照して、まず、ストリーム配信装置1Aの配信管理部17により、死活監視用データを受信端末2Aへ送信する(ステップS201)。そして、ネットワーク状態推定部18は送信時刻Tsendを記憶する(ステップS202)。
【0077】
ストリーム配信装置1Aの配信管理部17は、死活監視用データ送信後、所定時間経過しても受信端末2Aから確認応答を受信できない場合に、コネクション型プロトコルにより、死活監視用データの再送が行われる(ステップS203)。ネットワーク状態推定部18は、再送が行われるとパケットロスが発生したことを記憶するとともに、送信時刻Tsendを再送データの送信時刻に変更する(ステップS204)。
【0078】
受信端末2Aの管理情報通信部23は、ストリーム配信装置1Aから死活監視用データを受信する(ステップS205)と、応答確認を送信する(ステップS206)。この応答確認を受信したストリーム配信装置1Aのネットワーク状態推定部18は、「往復遅延時間RTTm=Trcv−Tsend」を計算し、パケットロスが発生したこととともに配信レート決定部14へ通知する。
【0079】
以上、説明したように、第2の実施の形態においては、ストリーム配信装置1Aのネットワーク状態推定部18により、ストリーム配信装置1Aと受信端末2Aとの間の死活監視通信から往復遅延時間RTTとパケットロスの有無を推定することによって、受信状態をレポートしない受信端末2Aにおいても、過去のビットレート試行時の往復遅延時間RTTの制御履歴の情報から、受信端末とビットレートに応じた閾値を容易かつ自動で設定できる。また、第1の実施の形態と同様に、ビットレートの不用意な上昇と、ビットレートの上昇試行の停滞を防止できる。
【0080】
なお、図6に示すストリーム配信装置1Aおよび受信端末1Aは、内部にCPUを含むコンピュータシステムを有している。上述した処理に関する一連の処理の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。また、ストリーム配信装置1Aはサーバ装置等で構成され、このストリーム配信装置1Aには、周辺機器として入力装置、表示装置等(いずれも表示せず)が接続されているものとする。ここで、入力装置としては、キーボード、マウス等の入力デバイスのことをいう。表示装置とは、CRT(Cathode Ray Tube)や液晶表示装置等のことをいう。
【実施例1】
【0081】
次に、具体的な実施例を用いて本発明のストリーム配信システムの動作について説明する。実施例1は、図1に示す第1の実施の形態のストリーム配信システムの具体的な例を示すものである。本実施例1においては、ストリーム配信装置1と受信端末2はインターネットを経由して接続されているものとする。
【0082】
ストリーム配信装置1から受信端末2へのコンテンツ配信はRTP(Real-time Transport Protocol)によって行われ、受信端末2からストリーム配信装置1へのレポートの送信はRTCP(RTP Control Protocol)によって行われる。RTP、RTCPともにトランスポートプロトコルには、UDP(User Datagram Protocol)を使用する。
【0083】
そして、ストリーム配信装置1はサーバ装置で構成される。ストリーム送信部11は、サーバ装置のCPUで実行されるプログラム(ストリーム送信部における一連処理の過程が記述されたプログラム)とネットワーク・インタフェース・カード(以下、NICと略記)の組み合わせで実現される。このストリーム送信部11は、コンテンツ記憶部12から取り出したコンテンツデータを適当なサイズに分割し、分割した各データにRTPヘッダ、UDPヘッダ、IPヘッダ、Ethernet(登録商標)ヘッダを付加したパケットを生成し、受信端末2へ向けて送信する。また、受信端末2に対して、定期的にメッセージ「RTCP SR(Sender Report)」を送信する。本実施例1では、メッセージ「RTCP SR」の送信間隔を5秒とする。
【0084】
コンテンツ記憶部12は、サーバ装置に内蔵される磁気ディスク装置等の記憶装置であり、各映像コンテンツを複数のビットレートでエンコードして記憶しておく。本実施例1におけるコンテンツ記憶部12は、3種類のコンテンツA,B,Cを記憶しているとする。コンテンツA,Bは、1Mbps,2Mbps,4Mbps,8Mbpsの各ビットレートを記憶しており、コンテンツCは、1Mbps,2Mbps,4Mbps,6Mbps,8Mbpsの各ビットレートを記憶している。コンテンツA,BとコンテンツCは、コンテンツCが6Mbpsを記憶している点が異なっている。なお、コンテンツ記憶部12が記憶するコンテンツは、画像でもよいし音声でもよい。
【0085】
レポート受信部13は、ストリーム送信部11と同様にCPUで実行されるプログラム(レポート受信部における一連の処理の過程が記述されたプログラム)とNICの組み合わせで実現され、端末からのメッセージ「RTCP RR(Receiver Report)」を受信し、パケットロス率と往復遅延時間RTTを計算して、配信レート決定部14へ通知する。
【0086】
パケットロス率はメッセージ「RTCP RR」の「fraction lost」フィールドまたは「cumulative number of packets lost」フィールドから求めることができる。また、往復遅延時間RTTはメッセージ「RTCP RR」の「LSR」フィールドと「DLSR」フィールドから求めることができる。
【0087】
配信レート決定部14は、その一連の処理の過程が記述されたプログラムをCPUが読み出して実行することにより、その機能が実現される。制御履歴記憶部15は、サーバ装置のメインメモリの一部である。閾値設定部16と配信管理部17についても、その一連の処理の過程が記述されたプログラムをCPUが読み出して実行することにより、その機能が実現される。
【0088】
コンテンツ記憶部12が上記のA,B,Cのコンテンツを記憶しているとき、制御履歴記憶部15の上昇可否記憶テーブル151は、図10に示すようになる。「上昇前ビットレートが1Mbpsで上昇後ビットレートが2Mbpsのエントリ」と、「上昇前ビットレートが2Mbpsで上昇後ビットレートが4Mbpsのエントリ」は、コンテンツA,B,Cのすべてで使用される。
【0089】
「上昇前ビットレートが4Mbpsで上昇後ビットレートが6Mbpsのエントリ」と、「上昇前ビットレートが6Mbpsで上昇後ビットレートが8Mbpsのエントリ」は、コンテンツCのみで使用され、「上昇前ビットレートが4Mbpsで上昇後ビットレートが8Mbpsのエントリ」は、コンテンツA,Bで使用される。これまでに一度も配信したことのない端末の場合、上昇可能RTT1513と上昇不可能RTT1514には初期値を記憶しておく。
【0090】
本実施例1では、上昇可能RTT1513の初期値を0[s]、上昇不可能RTT1514の初期値を1[s]としている。受信端末2は、IPTV(Internet Protocol TeleVision)用のセット・トップ・ボックス(STB:Set Top Box)である。ストリーム受信部21とレポート送信部22は、CPUで実行されるプログラム(ストリーム送信部およびレポート送信部における一連の処理の過程が記述されたプログラム)とNICの組み合わせで実現される。
【0091】
受信端末2内のストリーム受信部21は、ストリーム配信装置1から配信されたパケットを受信し、RTP、UDP、IP、Ethernet(登録商標)ヘッダのデコードを行い、コンテンツのデコード部(図示せず)へ転送する。
【0092】
ストリーム受信部21でのRTPデコード時には、メッセージ「RTCP RR」の送信に必要な各種データを収集し、レポート送信部22へ通知する。また、ストリーム配信装置1から送信されるメッセージ「RTCP SR」を受信し、レポート送信部22に転送する。
【0093】
レポート送信部22は、ストリーム受信部21から得た情報をもとにメッセージ「RTCP RR」をストリーム配信装置1へ送信する。本実施例1では、メッセージ「RTCP RR」の送信間隔を1秒とする。なお、受信端末2は、セット・トップ・ボックス(STB)だけでなく、PC(Personal Computer)、PDA(Personal Digital Assistant)、携帯電話端末などでもよい。
【0094】
次に、実施例1において、ストリーム配信装置1が受信端末2からコンテンツAの配信要求を受けた場合の動作を、図3のフローチャートを参照して、説明する。
【0095】
配信管理部17は、コンテンツ記憶部12を参照し、コンテンツAは1Mbps,2Mbps,4Mbps,8Mbpsで配信可能であることを配信レート決定部14へ通知し、配信開始を指示する。配信レート決定部14は、配信可能なビットレートの中から配信開始時のビットレート(配信レート)を決定する(ステップS01)。ここでは、配信可能な最低のビットレートで配信開始する方法を採用し、1Mbpsで配信を開始する。
【0096】
次に配信レート決定部14は、ビットレートを上昇させるための閾値を決定する。1Mbpsの1段階上のビットレートは2Mbpsなので、制御履歴記憶部15の上昇可否記憶テーブル151から上昇前ビットレート1511が1Mbps、上昇後ビットレート1512が2Mbpsのエントリを抽出する。
【0097】
次に抽出したエントリの上昇可能RTT1513から閾値の下限RTTlbを、上昇不可能RTT1514から閾値の上限RTTubを決定する(ステップS02)。本実施例1では、上昇可能RTT1513の最大値を下限RTTlb、上昇不可能RTT1514の最小値を上限RTTubとすると「RTTlb=0[s]、RTTub=1[s]」となる。
【0098】
次に、下限RTTlbと上限RTTubからビットレートを上昇させるための閾値を決定する(ステップS03)。本実施例1では、初期値を「RTTth=RTTlb」とし、閾値RTTthが、下限RTTlbと上限RTTubとの間で、
RTTth=RTTth+α(α:1回の処理での増加量)、
と変更していく方法(図4)を採用し、閾値RTTthはレポートを2回受信するごとに更新し、「α=(RTTub−RTTlb)/10」とする。このとき、閾値RTTthは、図11に示す変化をする。
【0099】
一方、端末から図12に示すレポートが送信されてきた場合、5回目で閾値RTTthが0.2、往復遅延時間RTTmが0.18となり(RTTm<RTTth)、ビットレートを1Mbpsから2Mbpsへ上昇させる(ステップS08)。次に、上昇したビットレート2Mbpsで配信可能かどうかを判定する(ステップS09)。本実施例1では、ビットレートの上昇直後のレポートでパケットロスが報告された場合に配信不可と判定する。ここでは、上昇直後のレポートでパケットロスが報告されたとする(ステップS09:No)。このとき、上昇可否記憶テーブル151(図13)の上昇不可能RTT1514に0.18を追加し(ステップS10)、ビットレートを1Mbpsへ低下させ(ステップS11)、ステップS02へ戻る。
【0100】
ステップS02ではビットレートを再び2Mbpsへ上昇させるための閾値の上限RTTubと下限RTTlbを決定する。「RTTlb=0、RTTub=0.18」となり、閾値RTTthは図14のようになる。ビットレート1Mbpsへ変更後、5回目の反復で往復遅延時間RTTmが0.030[s]となり、閾値RTTth(0.036[s])を下回ったとすると、再度2Mbpsへビットレートを上昇させ、2Mbpsで配信可能かどうかを判定する。2Mbpsで配信開始後、最初のレポートでパケットロスが発生していないと報告された場合、2Mbpsで配信可能と判定し、上昇可否記憶テーブル151の上昇可能RTT1513に0.030[s]を追加する(図15)。
【0101】
その後、ステップS02へ戻り、ビットレートを2Mbpsから4Mbpsへ上昇させるための閾値を設定する。閾値RTTthは図11と同様になる。ビットレート2Mbpsでの配信中のレポートでパケットロスの発生が報告された場合には(ステップS05:Yes)、ビットレートを1Mbpsへ変更し(ステップS06)、ステップS02へ戻る。
【0102】
以上説明したように、実施例1においては、ストリーム配信装置1のレポート受信部13は、インターネットを経由して、受信端末2が送信した受信状態のレポートを受信し、このレポートを基に、パケットロスの有無と往復遅延時間RTTを検出することによって、ビットレートの上昇試行時の往復遅延時間RTTの履歴情報を制御履歴記憶部15に保存する。そして、過去のビットレートの上昇試行時の往復遅延時間RTTの制御履歴の情報を基に、受信端末とビットレートに応じた閾値を自動的に設定する。また、閾値RTTthの設定を、閾値設定範囲の下限RTTlbから上限RTTubに向けて動的(自ら積極的)に設定変更して行くことにより、ビットレートの不用意な上昇と、ビットレートの上昇試行の停滞を防止する。
【実施例2】
【0103】
第2の実施例は、図6に示す第2の実施の形態のストリーム配信システムの具体的な例を示すものである。
前述の通り、図6に示す第2の実施の形態におけるストリーム配信装置1Aは、図1に示す第1の実施の形態のストリーム配信装置1と比較してレポート受信部13が削除され、受信端末2Aとの間の管理セッションの情報からネットワーク状態を推定するネットワーク状態推定部18が追加された点が異なる。また、受信端末2Aは、レポート送信部22が削除され、ストリーム配信装置1Aとの間でセッション情報をやりとりする管理情報通信部23が追加された点で第1の実施の形態と異なる。
【0104】
本実施例2における配信管理部17とネットワーク状態推定部18は、サーバ装置のCPUで実行されるプログラム(配信管理部およびネットワーク状態推定部における一連処理の過程が記述されたプログラム)によりその機能が実現される。また、管理情報通信部23は、セット・トップ・ボックスSTBのCPUで実行されるプログラムにより、その機能が実現される。また、ストリーム配信装置1Aの配信管理部17と受信端末2Aの管理情報通信部23は、RTSP(Real Time Streaming Protocol)によって通信し、プロトコルRTSPはトランスポートプロトコルにTCP(Transmission Control Protocol)を使用する。
【0105】
受信端末2Aは、プロトコルRTSPを使用してストリーム配信装置1Aへ配信要求を行う。ストリーム配信装置1A内の配信管理部17は、受信端末2Aからの配信要求を受信すると、配信レート決定部14に対して配信開始を指示する。また、配信開始後は、配信管理部17から受信端末2AへRTSPセッションを使用して死活監視用パケットを送信する。受信端末2Aの管理情報通信部23は死活監視用パケットを受信すると、ストリーム配信装置1Aへ応答確認を送信する。
【0106】
次に具体的な例を使用して、実施例2におけるネットワーク状態推定部18の動作を説明する。図16は、実施例2におけるネットワーク状態推定方法を示すシーケンス図であり、ストリーム配信装置1Aと受信端末2Aとの間の死活監視の処理の流れを示すものである。
【0107】
図16を参照して、時刻0:00:00.100(0時ちょうどの100ミリ秒後)に受信端末2Aへ死活監視パケットを送信したとき、ネットワーク状態推定部18はこの時刻を記憶しておく。この死活監視パケットは時刻0:00:00.110に受信端末2Aが受信し、時刻0:00:00.111に応答確認パケットを送信したとする。
【0108】
ストリーム配信装置1Aは、応答確認パケットを時刻0:00:00.121に受信すると、ネットワーク状態推定部18は、パケットロスが発生しておらず往復遅延時間RTTが21ミリ秒(=0:00:00.121−0:00:00.100)であることを配信レート決定部14へ通知する。
【0109】
その後、時刻0:00:01.100に次の死活監視パケットを送信したとする。この死活監視パケットが端末に到達する前にパケットロスした場合、受信端末2Aからの確認応答が送られてこないため、一定時間経過後(図16の例では500ミリ秒としている)にTCPによる再送が行われる。この再送が行われると、ネットワーク状態推定部18はパケットロスが発生していると判定する。再送した死活監視パケットに対する確認応答を受信すると、ネットワーク状態推定部18は、パケットロスが発生しており往復遅延時間RTTが61ミリ秒(=0:00:01.661−0:00:01.600)であることを配信レート決定部14へ通知する。
【0110】
以上説明したように、実施例2においては、ストリーム配信装置1Aから受信端末2Aに対し、インターネットにおけるRTSPセッションを使用して死活監視用パケットを送信することにより、ストリーム配信装置1Aのネットワーク状態推定部18でストリーム配信装置1Aと受信端末2Aとの間の往復遅延時間RTTとパケットロスの有無を推定する。これにより、受信状態をレポートしない受信端末2Aにおいても、過去のビットレート試行時の往復遅延時間RTTの制御履歴の情報から、受信端末2Aとビットレートに応じた閾値RTTthを容易かつ自動で設定できる。また、第1の実施の形態と同様に、ビットレートの不用意な上昇と、ビットレートの上昇試行の停滞を防止できる。
【0111】
以上、本発明の実施の形態について説明したが、図1に示すストリーム配信装置1、および図6に示すストリーム配信装置1Aは、前述のようにサーバ装置等で構成され、内部にコンピュータシステムを有している。そして、上述した処理に関する一連の処理の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。
【0112】
すなわち、ストリーム配信装置1,1Aにおける各処理は、CPU等の中央演算処理装置がROMやRAM等の主記憶装置に上記プログラムを読み出して、情報の加工、演算処理を実行することにより、実現されるものである。
【0113】
ここでコンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、CD−ROM、DVD−ROM、半導体メモリ等をいう。また、このコンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータが当該プログラムを実行するようにしても良い。
【0114】
以上、本発明の実施の形態について説明したが、本発明のストリーム配信システム、およびストリーム配信装置は、上述の図示例にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。
【産業上の利用可能性】
【0115】
本発明は、インターネット上での映像配信サービスに使用するストリーム配信システムや、監視カメラで撮影した映像を監視センタへ転送する映像監視システムなどに適用できる。
【符号の説明】
【0116】
1,1A・・・ストリーム配信装置、2,2A・・・受信端末、11・・・ストリーム送信部、12・・・コンテンツ記憶部、13・・・レポート受信部、14・・・配信レート決定部、15・・・制御履歴記憶部、16・・・閾値設定部、17・・・配信管理部、18・・・ネットワーク状態推定部、21・・・ストリーム受信部、22・・・レポート送信部、23・・・管理情報通信部、151・・・上昇可否記憶テーブル、1511・・・上昇前ビットレート、1512・・・上昇後ビットレート、1513・・・上昇可能RTT、1514・・・上昇不可能RTT
【技術分野】
【0001】
本発明はストリーム配信装置、ストリーム配信システム、ストリーム配信方法およびストリーム配信プログラムに関し、特に通信品質の保証されていないネットワークにおいてストリームをパケットに分割して配信するストリーム配信装置、ストリーム配信システム、ストリーム配信方法およびストリーム配信プログラムに関する。
【背景技術】
【0002】
現在、ネットワークを介して動画像コンテンツ等のストリームデータ(単に、「ストリーム」とも呼ぶ)を配信するサービスが行われている。このストリームの配信を行うストリーム配信装置において、受信端末との間のネットワーク状態に応じてビットレートを制御する技術の一例が特許文献1に記載されている。特許文献1に記載のストリーム配信装置は、受信端末からパケットロスと往復遅延時間(RTT:Round Trip Time)の報告を受けて動作するものであり、パケットロスが報告された場合にはネットワーク状態が悪化したと判断して配信するビットレートを低下させ、往復遅延時間RTTが設定した閾値を下回った場合に、ネットワーク状態が好転したと判断して配信するストリームのビットレートを上昇させるものである。
【0003】
また、特許文献2に記載のネットワーク監視装置が開示されている。このネットワーク監視装置においては、応答時間計測部が遅延時間を測定し、該遅延時間の履歴を保存し、該遅延時間の平均値に基づいて閾値を算出/更新し、該閾値を超えている場合に経路中に障害が発生していると判定する(段落0035から0042を参照)。しかしながら、このネットワーク監視装置は、IP網における障害の有無を監視することを目的としており、ストリーム配信装置から配信するストリームのビットレートの上昇動作に関するものではない。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2008−099261号公報
【特許文献2】特開2006−165629号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
上述した特許文献1に記載のストリーム配信装置における問題点は、データ転送のビットレートを上昇させるための往復遅延時間RTTの閾値をあらかじめ設定しておく必要がある点である。ビットレートを上昇させる適切な閾値は、現在配信しているビットレート、上昇させるビットレートに依存する。すなわち、ビットレートを1Mbpsから2Mbpsへ上昇させる場合、2Mbpsから4Mbpsへ上昇させる場合、4Mbpsから8Mbpsへ上昇させる場合で適切な往復遅延時間RTTの閾値は多くの場合異なるはずである。
【0006】
また、適切な閾値は受信端末ごとに異なる値となるはずである。すなわち、1Mbpsから2Mbpsへ上昇させるための閾値であっても、受信端末までの経路が異なれば適切な閾値は異なると考えるのが一般的である。そのため、すべての受信端末に対してすべてのビットレートの往復遅延時間RTTの閾値をあらかじめ設定しておくことは、膨大な時間を必要とし現実的ではない。
【0007】
また、特許文献1に記載のストリーム配信装置においては、往復遅延時間RTT等の閾値を動的(自ら積極的)に設定変更してビットレートの上昇試行を行う考え方は示されてない。
【0008】
本発明の主たる課題は、ストリーム配信装置において、ビットレートを上昇させるための往復遅延時間RTTの閾値を、過去のビットレートの上昇試行の際に計測した往復遅延時間RTTの履歴情報を利用して、容易かつ自動で設定できるようにすることにあり、さらには、往復遅延時間RTTの閾値を動的に設定変更して、ビットレートの不用意な上昇と、低ビットレートでの停滞を防止することにある。
【課題を解決するための手段】
【0009】
本発明のストリーム配信装置は、受信端末に配信するストリームのビットレートを上昇させる際の受信端末との間の往復遅延時間を、受信端末およびビットレートごとに履歴情報として記憶し、この履歴情報を基にしてビットレートを上昇させる際の往復遅延時間の閾値を設定する、ことを特徴とする。
【発明の効果】
【0010】
本発明のストリーム配信装置においては、受信端末およびビットレートごとに、過去のビットレートの上昇試行時の往復遅延時間RTTを履歴情報として記憶する。そして、例えば、上昇後のビットレートで配信可能であった場合の往復遅延時間RTTと、上昇後のビットレートで配信不可能であった場合の往復遅延時間RTTとを基に、閾値RTTthを設定する。
これにより、受信端末とビットレートに応じた適切な閾値RTTthを、過去のビットレートの上昇試行の際に計測した往復遅延時間RTTの履歴情報を基に、容易かつ自動で設定できる。
【図面の簡単な説明】
【0011】
【図1】本発明の第1の実施の形態に係わるストリーム配信システムの構成を示すブロック図である。
【図2】制御履歴記憶部15の構成例を示す図である。
【図3】第1の実施の形態の動作を示すフローチャートである。
【図4】往復遅延時間RTTの閾値RTTthの第1の設定方法を示すグラフである。
【図5】往復遅延時間RTTの閾値RTTthの第2の設定方法を示すグラフである。
【図6】本発明の第2の実施の形態に係わるストリーム配信システムの構成を示すブロック図である。
【図7】第2の実施の形態の動作を示すフローチャートである。
【図8】第2の実施の形態におけるネットワーク状態推定方法を示す第1のシーケンス図である。
【図9】第2の実施の形態におけるネットワーク状態推定方法を示す第2のシーケンス図である。
【図10】実施例1におけるストリーム配信装置1の制御履歴記憶部15の構成を示す図である。
【図11】実施例1における往復遅延時間RTTの閾値RTTthの例を示す図である。
【図12】実施例1における受信端末2からストリーム配信装置1へのレポートの例を示す図である。
【図13】実施例1におけるストリーム配信装置1の制御履歴記憶部15内の上昇可否記憶テーブルの例を示す図である。
【図14】実施例1における往復遅延時間RTTの閾値RTTthの例を示す図である。
【図15】実施例1におけるストリーム配信装置1の制御履歴記憶部15内の上昇可否記憶テーブルの例を示す図である。
【図16】実施例2におけるネットワーク状態推定方法を示すシーケンス図である。
【発明を実施するための形態】
【0012】
以下、発明の実施の形態について図面を参照しながら説明する。
【0013】
[第1の実施の形態]
図1は、本発明の第1の実施の形態に係わるストリーム配信システムの構成を示す図である。図1に示すように、本発明のストリーム配信システムは、ストリーム(動画像等のコンテンツ)をネットワークを通して配信するストリーム配信装置1と、ストリームを受信して再生する受信端末2から構成される。
【0014】
ストリーム配信装置1と受信端末2は、インターネットなどの利用可能な帯域が保証されていないネットワークで接続されている。また、ストリーム配信装置1は複数の受信端末2と接続していてもよい。
【0015】
ストリーム配信装置1は、受信端末2へ向けてストリームを送信するストリーム送信部11、受信端末2へストリームとして配信するコンテンツを記憶するコンテンツ記憶部12、受信端末2からのレポートを受信するレポート受信部13、受信端末2へ配信するコンテンツのビットレートを判定(決定)する配信レート決定部14、過去の制御履歴の情報を記憶する制御履歴記憶部15、制御履歴の情報を基にビットレートを上昇させるための往復遅延時間RTTの閾値RTTthを設定する閾値設定部16、ストリームの配信開始や終了を管理する配信管理部17から構成される。
【0016】
まず、配信管理部17は、受信端末2からの配信要求のメッセージの受信時に、コンテンツ記憶部12から当該コンテンツの配信可能なビットレートのリストを取得し、配信レート決定部14に対して配信コンテンツとビットレートのリストを通知し、配信開始を指示する。
【0017】
本実施の形態では、以降、受信端末2を1台として説明する。受信端末2が複数存在する場合、符号11から17で示す各処理部の間の通信内容に受信端末の識別子が追加されるが、ここでは省略する。
【0018】
ストリーム送信部11は、配信レート決定部14から指示されたビットレートのコンテンツをコンテンツ記憶部12から取り出し受信端末2へ向けて送信する。ストリーム配信装置1から受信端末2へのコンテンツ送信は、トランスポートプロトコルとしてコネクションレス型プロトコルを使用し、トランスポートプロトコルでの輻輳制御、到達確認や再送は行われないこととする。また、ストリーム送信部11は、コンテンツ配信中に配信レート決定部14からビットレートの変更を指示された場合には、受信端末2での再生に途切れが発生しないように瞬時にビットレートを切り替える。
【0019】
映像コンテンツの場合、MPEG−2やMPEG−4などフレーム間予測を使用して圧縮されている場合がある。フレーム間予測を使用して圧縮されたコンテンツは、単独で復号可能なIフレームと、前後のフレームの情報を使用して復号するPフレーム、Bフレームからなる。このとき、PフレームまたはBフレームの直前でビットレートを切り替えると、受信端末2は前のフレームが存在しないため正しく復号できない。そのため、フレーム間予測を使用して圧縮されているコンテンツの場合には、Iフレームの直前で切り替える。
【0020】
コンテンツ記憶部12は、ストリーム送信部11から受信端末2へ送信するコンテンツデータ(ストリームデータ)を記憶する処理部であり、各コンテンツをあらかじめ複数のビットレートでエンコードして保持しておく。あるいは、ストリーム送信部11からの要求されたビットレートにトランスコードしたコンテンツデータを一時的に記憶する記憶部でもよい。
【0021】
レポート受信部13は、受信端末2が送信した受信状態のレポート情報を受け、パケットロスの有無と往復遅延時間RTTとを配信レート決定部14へ通知する。このとき、受信端末2からパケットロス率がレポートされる場合には、配信レート決定部14へパケットロス率を通知してもよい。
【0022】
配信レート決定部14は、配信管理部17からコンテンツの配信開始を指示されると、初期の配信レートを決定してストリーム送信部11へ送信開始を指示する。初期の配信レートは、配信するコンテンツの中でビットレートが最低のものを選択する方法、受信端末2の種類や回線種別をストリーム配信装置1が把握している場合にはそれらの情報を使用して決定する方法、あるいは、配信開始前に利用可能帯域を推定し、その推定値をもとに決定する方法など、いかなる方法を使用してもよい。
【0023】
また、配信レート決定部14は、コンテンツ配信中にレポート受信部13からパケットロスの有無と往復遅延時間RTTの通知を受け、パケットロスが発生している場合には配信するコンテンツのビットレートを1段階低下することを決定し、ストリーム送信部へ指示する。レポート受信部13からパケットロス率が通知される場合には、パケットロス率が規定値を超えていたらビットレートを1段階低下させてもよい。パケットロスが発生していない場合には、閾値設定部16からビットレートを上昇させるための往復遅延時間RTTの閾値RTTthを受け取り、レポート受信部13から通知された往復遅延時間RTT(計測された最新の往復遅延時間RTTm)と比較する。
【0024】
その結果、「RTTm≧RTTth」ならばビットレートを変更しないことを決定し、ストリーム送信部11に対してはビットレート変更の指示は行わない。一方で、「RTTm<RTTth」ならば配信するビットレートを1段階上昇することを決定し、ストリーム送信部11へ指示する。
【0025】
配信レート決定部14は、ビットレートの上昇を決定した場合に、往復遅延時間RTTmを記憶しておき、上昇させたビットレートでパケットロスなく配信できたか否かを判定して、制御履歴記憶部15を更新し(更新方法は後述)、閾値設定部16へ制御履歴記憶部15における履歴情報の更新を通知する。
【0026】
なお、上昇させたビットレートでパケットロスなく配信できたか否かは、ビットレートを上昇させた直後の受信端末2からのレポートでパケットロスの発生が通知されるか否かで決定する。また、ビットレートを上昇させた直後だけでなく、ビットレートを上昇させてから指定回数・指定時間のレポートでパケットロスの発生が通知されるか否かで決定してもよい。レポート受信部13からパケットロスの有無だけでなくパケットロス率が通知される場合には、パケットロス率が規定値を超えているか否かを基に決定してもよい。
【0027】
制御履歴記憶部15は、配信レート決定部14での制御履歴の情報を記憶する処理部である。図2は、制御履歴記憶部15の構成例を示す図である。
【0028】
図2に示すように、制御履歴記憶部15は、受信端末(端末1,端末2,端末3,・・・)ごとの上昇可否記憶テーブル151(151−1、151−2、…)から構成され、それぞれの上昇可否記憶テーブル151は、上昇前ビットレート1511、上昇後ビットレート1512、上昇可能RTT1513、上昇不可能RTT1514の組で1レコードが構成される。
【0029】
上昇可能RTT1513と上昇不可能RTT1514は、上昇前ビットレート1511から上昇後ビットレート1512へ上昇させる直前の往復遅延時間RTTを格納する領域である。上昇可能RTT1513に格納されているのは、上昇前ビットレート1511から上昇後ビットレート1512へ上昇可能であった場合の往復遅延時間RTT、上昇不可能RTT1514に格納されているのは、上昇前ビットレート1511から上昇後ビットレート1512へ上昇不可能であった場合の往復遅延時間RTTである。
【0030】
図2の端末1に対する上昇可否記憶テーブル151−1では、ビットレートBR1[bps]での配信中に、往復遅延時間RTTが「Rok1_1,Rok1_2,・・・」の場合、ビットレートBR2[bps]で配信でき、往復遅延時間RTTが「Rng1_1,Rng1_2,・・・」の場合、ビットレートBR2[bps]では配信できなかったことを表している。
【0031】
なお、初めて配信する端末などで、これまでにビットレート上昇の試行が行われていない場合には、初期値として上昇可能RTT1513には十分小さな値を格納しておき、上昇不可能RTT1514には十分大きな値を格納しておくものとする。
【0032】
配信レート決定部14は、上昇させたビットレートでの配信可否判定後に、制御履歴記憶部15の上昇可否記憶テーブル151から上昇前ビットレートと上昇後ビットレートが一致するレコードを検索し、計測した往復遅延時間RTTmを上昇可能RTTまたは上昇不可能RTTへ格納する。
【0033】
閾値設定部16は、制御履歴記憶部15に記憶された履歴情報(上昇可否記憶テーブル151)に基づいてビットレートを上昇させる往復遅延時間RTTの閾値RTTthを計算し、配信レート決定部14へ通知する。閾値設定部16は、配信レート決定部14から制御履歴記憶部15の更新を通知されると、制御履歴記憶部15から上昇可否記憶テーブル151の内容を取り出し、ビットレートを1段階上昇させるための閾値の上限値と下限値を求める。
【0034】
閾値の下限RTTlbは、上昇可能RTT1513に格納された往復遅延時間RTTの最大値、
max{Rok1_1,Rok1_2,…,Rok1_n}や、
平均値(Rok1_1+Rok1_2+…+Rok1_n)/n、などによって決定する。
【0035】
また、閾値の上限RTTubは上昇不可能RTT1514に格納された往復遅延時間RTTの最小値、
min{Rng1_1,Rng1_2,…,Rng1_m}や、
平均値(Rng1_1+Rng1_2+…+Rng1_m)/m、などによって決定する。
【0036】
次に、[下限RTTlb,上限RTTub]の範囲で閾値RTTthを決定する。閾値RTTthは、時間経過とともに下限RTTlbから上限RTTubへ近づけていく方法を採る。これは、ビットレート上昇の試行回数を減らし、かつ、低ビットレートに停滞するのを防止するためである。
【0037】
本来は上昇不可能であるにも関わらずビットレートを上昇させると、受信端末2での再生に途切れや乱れが生じるため、ビットレート上昇の試行はなるべく少なくすることが望ましい。一方で、試行を少なくするとビットレートを上昇可能にも関わらず上昇させずに低いビットレートのままで停滞してしまうことがある。閾値RTTthを下限RTTlbから上限RTTubへ近づけることで、初めは、往復遅延時間RTTが小さく、ネットワーク状態が非常によく、上昇させても配信できる可能性が高い場合のみビットレートを上昇させ、時間が経過するにつれてビットレート上昇を発生しやすくして低ビットレートでの停滞を防止することが可能となる。
【0038】
具体的には、図4に示すように初期値を「RTTth=RTTlb」とし、閾値RTTthを、下限RTTlbと上限RTTubとの間で、
RTTth=RTTth+α(α:1回の処理での増加量)、
と変更していく方法がある。
【0039】
または、図5に示すように
RTTth=RTTth+(β^i(RTTub−RTTlb)) (β:0<β<1を満たす定数、i:変更回数)、
と変更していく方法などある。
【0040】
なお、閾値を変更する間隔、α、βはあらかじめ決定しておく。また、ここで述べた以外の方法で閾値を変更してもよい。
【0041】
受信端末2は、ネットワークを通してストリーム配信装置1からストリームを受信するストリーム受信部21と、受信状態をストリーム配信装置1へ通知するレポート送信部22から構成される。
【0042】
ストリーム受信部21はレポート送信部22と接続しており、ストリーム配信装置1からのストリームを受信するとともにパケットロスなどの受信状態を計測し、レポート送信部22へ通知する。
【0043】
レポート送信部22は、ストリーム受信部21から通知された受信状態の情報からなるレポートを定期的にストリーム配信装置1へフィードバックする。上述した例では、最新のレポートから求めた往復遅延時間RTTを閾値RTTthと比較していた。しかし、クロストラフィックの発生などによって往復遅延時間RTTに揺らぎが発生する場合がある。この揺らぎによる影響を吸収するため、往復遅延時間RTTの移動平均を使用してもよい。
【0044】
すなわち、受信端末2から受信したレポートのうち最新i個の往復遅延時間RTTをR1,R2,R3,…,Riとしたとき、
RTTm=(a1・R1+a2・R2+…+ai・Ri)/i (a1,…,ai:重み付けの係数)、とする方法である。
【0045】
次に図3のフローチャートを参照して、本実施の形態の全体の動作について詳細に説明する。
まず、ストリームの配信開始時において、配信管理部17は配信レート決定部14へ配信開始を指示し、配信レート決定部14は初期配信レート(初期のビットレート)を決定する(ステップS01)。
【0046】
次に現在配信中のビットレートから1段階上のビットレートに変更するための閾値を決定する。配信レート決定部14は初期配信レートと1段階上のビットレートを閾値設定部16へ通知し、閾値設定部16は、制御履歴記憶部15の上昇可否記憶テーブル151から該当するレコードを取り出す。
【0047】
閾値設定部16では、取り出したレコードをもとに、閾値の上限RTTubと下限RTTlbを決定し(ステップS02)、[RTTlb,RTTub]の範囲から閾値RTTthを決定して(ステップS03)、配信レート決定部14からの要求時に閾値RTTthを通知する。
【0048】
前述のとおり閾値RTTthは、下限RTTlbから上限RTTubへ時間経過とともに近づけていく(図4、図5を参照)。そこで、閾値設定部16は、前回閾値RTTthを変更してからの経過時間や、計測した往復遅延時間RTTmとの比較回数をもとにして閾値RTTthを必要に応じて変更する(ステップS03)。
【0049】
以下、現在配信しているコンテンツ(ストリーム)のビットレートをBR1、BR1よりも1段階上のビットレートをBR2、BR2よりも1段階上のビットレートをBR3、BR1よりも1段階下のビットレートをBR0と表す。
【0050】
受信端末2から受信状態のレポートを受信すると、レポート受信部13はパケットロスの有無と、往復遅延時間RTTとを配信レート決定部14へ通知する(ステップS04)。配信レート決定部14は、まずパケットロスの有無を判定する(ステップS05)。パケットロスが発生している場合には(ステップS05:Yes)、配信レートをBR1からBR0へ1段階低下させ(ステップS06)、ステップS02へ戻る。
【0051】
パケットロスが発生していない場合には(ステップS05:No)、レポート受信部13から通知された往復遅延時間RTTmと閾値設定部16から通知された閾値RTTthを比較する(ステップS07)。往復遅延時間RTTmが閾値RTTthを下回っていない場合(ステップS07:No)にはビットレートの変更は行わずに、ステップS03へ戻る。
【0052】
往復遅延時間RTTmが閾値RTTthを下回った場合には(ステップS07:Yes)、配信レート決定部14は、配信レートをビットレートBR1からBR2へ1段階上昇することを決定し、ストリーム送信部11は配信レートを1段階上昇させる(ステップS08)。
【0053】
配信レートを上昇後、配信レート決定部14は上昇後のレート(BR2)で配信可能か否かを判定する(ステップS09)。この判定は、前述の通り、配信レート変更後のレポートのパケットロス発生有無によって行う。
【0054】
配信可能な場合には(ステップS09:Yes)、上昇直前に計測した往復遅延時間RTTmを、制御履歴記憶部15の上昇可否記憶テーブル151における上昇前ビットレートがBR1かつ上昇後ビットレートがBR2のエントリの上昇可能RTT1513に追加し(ステップS12)、ステップS02へ戻る。
【0055】
一方でビットレートBR2で配信できない場合には(ステップS09:No)、上昇不可能RTT1514へ往復遅延時間RTTmを追加し(ステップS10)、配信レートをBR1へ戻し(ステップS11)、ステップS02へ戻る。
【0056】
以上説明したように、本発明のストリーム配信装置においては、受信端末ごとに、過去のビットレート上昇試行時の往復遅延時間RTTを履歴情報として記憶し、上昇後のビットレートで配信可能であった場合の往復遅延時間RTTを使用して閾値の下限値を設定し、上昇後のビットレートで配信不可能であった場合の往復遅延時間RTTを使用して閾値の上限値を設定し、時間経過とともに閾値を下限値から上限値へ近づけてゆく。
【0057】
これにより、過去のビットレートの上昇試行の際に計測した往復遅延時間RTTの履歴情報から、受信端末とビットレートに応じた閾値を、容易かつ自動で設定できる。また、ビットレートの不用意な上昇と、ビットレートの上昇試行の停滞を防止できる。すなわち、閾値を大きく設定するとネットワーク状態があまり良くない場合にもビットレートを上昇させるため、上昇後のビットレートで配信できず映像に乱れや途切れの発生することが多くなる。一方、閾値を小さく設定するとビットレートを上昇可能でも上昇させず、受信端末に低品質のコンテンツを配信し続けることになる。本発明では、閾値を閾値設定範囲内において、下限値から上限値へ時間経過と共に近づけていくため、初めは上昇後のビットレートで配信できる可能性が高い場合のみビットレートを上昇させて、配信するストリーム(画像等)の乱れや途切れを防止し、時間経過とともにビットレートを上昇しやすくして停滞を防止できる。
【0058】
なお、図1に示すストリーム配信装置1および受信端末2は、内部にCPUを含むコンピュータシステムを有している。上述した処理に関する一連の処理の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。また、ストリーム配信装置1はサーバ装置等で構成され、このストリーム配信装置1には、周辺機器として入力装置、表示装置等(いずれも表示せず)が接続されているものとする。ここで、入力装置としては、キーボード、マウス等の入力デバイスのことをいう。表示装置とは、CRT(Cathode Ray Tube)や液晶表示装置等のことをいう。
【0059】
以上、本発明の第1の実施の形態について説明したが、図1に示す本発明のストリーム配信装置は、受信端末2に配信するストリームのビットレートを上昇試行する際の受信端末2との間の往復遅延時間RTTを、受信端末2ごとに、かつ上昇前と上昇後のビットレートの組み合わせに関連付けて履歴情報として記憶する制御履歴記憶部15と、制御履歴記憶部15に記憶された往復遅延時間RTTの履歴情報を基にしてビットレートを上昇させる際の往復遅延時間RTTの閾値RTTthを設定する閾値設定部16と、受信端末2との間の往復遅延時間RTTが閾値RTTthを下回った場合に、当該受信端末2に配信するストリームのビットレートを上昇させること判定する配信レート決定部14と、を有して構成される。
これにより、ビットレートを上昇させるための往復遅延時間RTTの閾値RTTthを、受信端末2およびビットレートごとに、過去のビットレートの上昇試行の際に計測した往復遅延時間RTTの履歴情報を基に、容易かつ自動で設定できる。
【0060】
また、制御履歴記憶部15は、ビットレートを上昇させる直前の受信端末2との間の往復遅延時間RTTを、ビットレート上昇後に配信可能であった往復遅延時間と、ビットレート上昇後に配信不可能であった往復遅延時間とに分類して、上昇可否記憶テーブル151(図2)に記憶する。
これにより、ビットレートを上昇させた際に、配信が可能であった場合の往復遅延時間RTTの情報と、配信が不可であった場合の往復遅延時間RTTを分類して記憶することができ、この履歴情報を基に、閾値RTTthを容易に設定することができる。
【0061】
また、閾値設定部16は、制御履歴記憶部15に記憶されたビットレート上昇後に配信可能であった往復遅延時間RTTと、ビットレート上昇後に配信不可能であった往復遅延時間RTTとを基に閾値設定範囲を決定し、該閾値設定範囲内から閾値RTTthを設定する。
これにより、配信が可能であった場合の往復遅延時間RTTの履歴情報と、配信が不可であった場合の往復遅延時間RTTの履歴情報を基にして閾値設定範囲を決定し、該閾値設定範囲内から閾値RTTthを設定することができる。
【0062】
また、閾値設定部16は、閾値設定範囲内で閾値RTTthを変化させる、この場合に、閾値設定範囲内で、閾値RTTthを時間経過とともに下限値から上限値へ近づくように設定変更する。
これにより、往復遅延時間RTTの閾値を動的に設定変更してビットレートの上昇試行を積極的に行うことができ、ビットレートの不用意な上昇と、ビットレートの上昇試行の停滞とを防止できる。
【0063】
[第2の実施の形態]
次に、本発明の第2の実施の形態について図面を参照しながら説明する。
【0064】
図6は、本発明の第2の実施の形態に係わるストリーム配信システムの構成を示す図である。図6に示すように、本発明の第2の実施の形態に係わるストリーム配信装置1Aは、図1に示す第1の実施の形態のストリーム配信装置1と比較して、レポート受信部13が削除され、受信端末2Aとの間の管理セッションの情報からネットワーク状態を推定するネットワーク状態推定部18が追加された点が異なる。他の構成は図1に示すストリーム配信装置1および受信端末1と同様である。このため、同一の構成部分には同一の符号を付している。
【0065】
また、受信端末2Aは、図1に示す第1の実施の形態の受信端末1と比較して、レポート送信部22が削除され、ストリーム配信装置1Aとの間でセッション情報をやりとりする管理情報通信部23が追加された点が異なる。
【0066】
この第2の実施の形態では、ストリーム配信装置1Aの配信管理部17と受信端末2Aの管理情報通信部23はコネクション型プロトコルを使用した管理セッションを接続している。コネクション型プロトコルは確認応答機能を備えており、送信側が送信したデータを受信側が受信すると、受信側から送信側へ確認応答が送信される。
【0067】
また、受信側からデータの不着を意味する否定応答があった場合や、送信後所定時間が経過しても確認応答を受信できない場合にはデータを再送する。再送を既定回数行っても確認応答を受信できない場合には、上位レイヤに対して、送信が完了しなかったことを通知する。
【0068】
この管理セッションでは、配信開始前に受信端末2Aからストリーム配信装置1Aへ配信要求を行い、配信中にはストリーム配信装置1Aから受信端末2Aへの死活監視に使用する。死活監視は、あらかじめ指定した間隔でストリーム配信装置1Aから受信端末2Aへ死活監視用データ(例えば、死活監視パケット)を送信することで行う。死活監視用データが受信端末2Aへ到達すると、受信端末2Aからストリーム配信装置1Aへ確認応答が送信され、確認応答を受信したストリーム配信装置1Aは受信端末2Aとの間の接続が維持されていることを確認する。
【0069】
所定回数連続して端末との接続維持が確認できなかった場合、ストリーム配信装置1Aは受信端末2Aが切断されたものと判定して、配信を停止する。
【0070】
ストリーム配信装置1Aのネットワーク状態推定部18は、この死活監視の通信をモニタリングし、ネットワーク状態を推定する。ネットワーク状態推定部18は、配信管理部17から受信端末2Aへ死活監視用データを送信した時刻を記憶しておき、確認応答を受信した時刻との差分を往復遅延時間RTTする。また、コネクション型プロトコルでの再送が発生した場合には、パケットロスが発生していると判断する。ネットワーク状態推定部18は、この結果を配信レート決定部14へ通知し、配信レート決定部14では、第1の実施の形態と同様に動作する(例えば、パケットロスが発生している場合は、配信するストリームのビットレートを1段階低下させる)。
【0071】
次に、図7のフローチャートを参照して第2の実施の形態の動作を説明する。この第2の実施の形態では、図3に示すフローチャートにおけるレポート受信部13が受信端末2からレポートを受信するステップS04が、ネットワーク状態推定部18がネットワーク状態を推定するステップS13に代わった点で第1の実施の形態と異なる。他のステップは図3に示すフローチャートと同様である。このため、同一の処理内容には同一の符号を付し、重複する説明は省略する。
【0072】
ネットワーク状態推定部18における往復遅延時間RTTとパケットロスの推定方法を、図8および図9のシーケンス図を使用して説明する。
【0073】
図8は、パケットロスが発生しなかった場合のシーケンス図である。図8に示すシーケンス図を参照して、まず、ストリーム配信装置1Aの配信管理部17が死活監視用データを受信端末2Aに送信する(ステップS101)。そして、ネットワーク状態推定部18は送信時刻Tsendを記憶する(ステップS102)。
【0074】
受信端末2Aの管理情報通信部23は、ストリーム配信装置1Aから死活監視用データを受信すると(ステップS103)、ストリーム配信装置1Aへ確認応答を送信する(ステップS104)。
【0075】
ストリーム配信装置1Aへ確認応答が到着した時刻をTrcvとすると、ネットワーク状態推定部18は、「往復遅延時間RTTm=Trcv−Tsend」を計算し、パケットロスが発生していないことと合わせて配信レート決定部14へ通知する。
【0076】
また、図9は、パケットロスが発生した場合のシーケンス図である。図9に示すシーケンス図を参照して、まず、ストリーム配信装置1Aの配信管理部17により、死活監視用データを受信端末2Aへ送信する(ステップS201)。そして、ネットワーク状態推定部18は送信時刻Tsendを記憶する(ステップS202)。
【0077】
ストリーム配信装置1Aの配信管理部17は、死活監視用データ送信後、所定時間経過しても受信端末2Aから確認応答を受信できない場合に、コネクション型プロトコルにより、死活監視用データの再送が行われる(ステップS203)。ネットワーク状態推定部18は、再送が行われるとパケットロスが発生したことを記憶するとともに、送信時刻Tsendを再送データの送信時刻に変更する(ステップS204)。
【0078】
受信端末2Aの管理情報通信部23は、ストリーム配信装置1Aから死活監視用データを受信する(ステップS205)と、応答確認を送信する(ステップS206)。この応答確認を受信したストリーム配信装置1Aのネットワーク状態推定部18は、「往復遅延時間RTTm=Trcv−Tsend」を計算し、パケットロスが発生したこととともに配信レート決定部14へ通知する。
【0079】
以上、説明したように、第2の実施の形態においては、ストリーム配信装置1Aのネットワーク状態推定部18により、ストリーム配信装置1Aと受信端末2Aとの間の死活監視通信から往復遅延時間RTTとパケットロスの有無を推定することによって、受信状態をレポートしない受信端末2Aにおいても、過去のビットレート試行時の往復遅延時間RTTの制御履歴の情報から、受信端末とビットレートに応じた閾値を容易かつ自動で設定できる。また、第1の実施の形態と同様に、ビットレートの不用意な上昇と、ビットレートの上昇試行の停滞を防止できる。
【0080】
なお、図6に示すストリーム配信装置1Aおよび受信端末1Aは、内部にCPUを含むコンピュータシステムを有している。上述した処理に関する一連の処理の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。また、ストリーム配信装置1Aはサーバ装置等で構成され、このストリーム配信装置1Aには、周辺機器として入力装置、表示装置等(いずれも表示せず)が接続されているものとする。ここで、入力装置としては、キーボード、マウス等の入力デバイスのことをいう。表示装置とは、CRT(Cathode Ray Tube)や液晶表示装置等のことをいう。
【実施例1】
【0081】
次に、具体的な実施例を用いて本発明のストリーム配信システムの動作について説明する。実施例1は、図1に示す第1の実施の形態のストリーム配信システムの具体的な例を示すものである。本実施例1においては、ストリーム配信装置1と受信端末2はインターネットを経由して接続されているものとする。
【0082】
ストリーム配信装置1から受信端末2へのコンテンツ配信はRTP(Real-time Transport Protocol)によって行われ、受信端末2からストリーム配信装置1へのレポートの送信はRTCP(RTP Control Protocol)によって行われる。RTP、RTCPともにトランスポートプロトコルには、UDP(User Datagram Protocol)を使用する。
【0083】
そして、ストリーム配信装置1はサーバ装置で構成される。ストリーム送信部11は、サーバ装置のCPUで実行されるプログラム(ストリーム送信部における一連処理の過程が記述されたプログラム)とネットワーク・インタフェース・カード(以下、NICと略記)の組み合わせで実現される。このストリーム送信部11は、コンテンツ記憶部12から取り出したコンテンツデータを適当なサイズに分割し、分割した各データにRTPヘッダ、UDPヘッダ、IPヘッダ、Ethernet(登録商標)ヘッダを付加したパケットを生成し、受信端末2へ向けて送信する。また、受信端末2に対して、定期的にメッセージ「RTCP SR(Sender Report)」を送信する。本実施例1では、メッセージ「RTCP SR」の送信間隔を5秒とする。
【0084】
コンテンツ記憶部12は、サーバ装置に内蔵される磁気ディスク装置等の記憶装置であり、各映像コンテンツを複数のビットレートでエンコードして記憶しておく。本実施例1におけるコンテンツ記憶部12は、3種類のコンテンツA,B,Cを記憶しているとする。コンテンツA,Bは、1Mbps,2Mbps,4Mbps,8Mbpsの各ビットレートを記憶しており、コンテンツCは、1Mbps,2Mbps,4Mbps,6Mbps,8Mbpsの各ビットレートを記憶している。コンテンツA,BとコンテンツCは、コンテンツCが6Mbpsを記憶している点が異なっている。なお、コンテンツ記憶部12が記憶するコンテンツは、画像でもよいし音声でもよい。
【0085】
レポート受信部13は、ストリーム送信部11と同様にCPUで実行されるプログラム(レポート受信部における一連の処理の過程が記述されたプログラム)とNICの組み合わせで実現され、端末からのメッセージ「RTCP RR(Receiver Report)」を受信し、パケットロス率と往復遅延時間RTTを計算して、配信レート決定部14へ通知する。
【0086】
パケットロス率はメッセージ「RTCP RR」の「fraction lost」フィールドまたは「cumulative number of packets lost」フィールドから求めることができる。また、往復遅延時間RTTはメッセージ「RTCP RR」の「LSR」フィールドと「DLSR」フィールドから求めることができる。
【0087】
配信レート決定部14は、その一連の処理の過程が記述されたプログラムをCPUが読み出して実行することにより、その機能が実現される。制御履歴記憶部15は、サーバ装置のメインメモリの一部である。閾値設定部16と配信管理部17についても、その一連の処理の過程が記述されたプログラムをCPUが読み出して実行することにより、その機能が実現される。
【0088】
コンテンツ記憶部12が上記のA,B,Cのコンテンツを記憶しているとき、制御履歴記憶部15の上昇可否記憶テーブル151は、図10に示すようになる。「上昇前ビットレートが1Mbpsで上昇後ビットレートが2Mbpsのエントリ」と、「上昇前ビットレートが2Mbpsで上昇後ビットレートが4Mbpsのエントリ」は、コンテンツA,B,Cのすべてで使用される。
【0089】
「上昇前ビットレートが4Mbpsで上昇後ビットレートが6Mbpsのエントリ」と、「上昇前ビットレートが6Mbpsで上昇後ビットレートが8Mbpsのエントリ」は、コンテンツCのみで使用され、「上昇前ビットレートが4Mbpsで上昇後ビットレートが8Mbpsのエントリ」は、コンテンツA,Bで使用される。これまでに一度も配信したことのない端末の場合、上昇可能RTT1513と上昇不可能RTT1514には初期値を記憶しておく。
【0090】
本実施例1では、上昇可能RTT1513の初期値を0[s]、上昇不可能RTT1514の初期値を1[s]としている。受信端末2は、IPTV(Internet Protocol TeleVision)用のセット・トップ・ボックス(STB:Set Top Box)である。ストリーム受信部21とレポート送信部22は、CPUで実行されるプログラム(ストリーム送信部およびレポート送信部における一連の処理の過程が記述されたプログラム)とNICの組み合わせで実現される。
【0091】
受信端末2内のストリーム受信部21は、ストリーム配信装置1から配信されたパケットを受信し、RTP、UDP、IP、Ethernet(登録商標)ヘッダのデコードを行い、コンテンツのデコード部(図示せず)へ転送する。
【0092】
ストリーム受信部21でのRTPデコード時には、メッセージ「RTCP RR」の送信に必要な各種データを収集し、レポート送信部22へ通知する。また、ストリーム配信装置1から送信されるメッセージ「RTCP SR」を受信し、レポート送信部22に転送する。
【0093】
レポート送信部22は、ストリーム受信部21から得た情報をもとにメッセージ「RTCP RR」をストリーム配信装置1へ送信する。本実施例1では、メッセージ「RTCP RR」の送信間隔を1秒とする。なお、受信端末2は、セット・トップ・ボックス(STB)だけでなく、PC(Personal Computer)、PDA(Personal Digital Assistant)、携帯電話端末などでもよい。
【0094】
次に、実施例1において、ストリーム配信装置1が受信端末2からコンテンツAの配信要求を受けた場合の動作を、図3のフローチャートを参照して、説明する。
【0095】
配信管理部17は、コンテンツ記憶部12を参照し、コンテンツAは1Mbps,2Mbps,4Mbps,8Mbpsで配信可能であることを配信レート決定部14へ通知し、配信開始を指示する。配信レート決定部14は、配信可能なビットレートの中から配信開始時のビットレート(配信レート)を決定する(ステップS01)。ここでは、配信可能な最低のビットレートで配信開始する方法を採用し、1Mbpsで配信を開始する。
【0096】
次に配信レート決定部14は、ビットレートを上昇させるための閾値を決定する。1Mbpsの1段階上のビットレートは2Mbpsなので、制御履歴記憶部15の上昇可否記憶テーブル151から上昇前ビットレート1511が1Mbps、上昇後ビットレート1512が2Mbpsのエントリを抽出する。
【0097】
次に抽出したエントリの上昇可能RTT1513から閾値の下限RTTlbを、上昇不可能RTT1514から閾値の上限RTTubを決定する(ステップS02)。本実施例1では、上昇可能RTT1513の最大値を下限RTTlb、上昇不可能RTT1514の最小値を上限RTTubとすると「RTTlb=0[s]、RTTub=1[s]」となる。
【0098】
次に、下限RTTlbと上限RTTubからビットレートを上昇させるための閾値を決定する(ステップS03)。本実施例1では、初期値を「RTTth=RTTlb」とし、閾値RTTthが、下限RTTlbと上限RTTubとの間で、
RTTth=RTTth+α(α:1回の処理での増加量)、
と変更していく方法(図4)を採用し、閾値RTTthはレポートを2回受信するごとに更新し、「α=(RTTub−RTTlb)/10」とする。このとき、閾値RTTthは、図11に示す変化をする。
【0099】
一方、端末から図12に示すレポートが送信されてきた場合、5回目で閾値RTTthが0.2、往復遅延時間RTTmが0.18となり(RTTm<RTTth)、ビットレートを1Mbpsから2Mbpsへ上昇させる(ステップS08)。次に、上昇したビットレート2Mbpsで配信可能かどうかを判定する(ステップS09)。本実施例1では、ビットレートの上昇直後のレポートでパケットロスが報告された場合に配信不可と判定する。ここでは、上昇直後のレポートでパケットロスが報告されたとする(ステップS09:No)。このとき、上昇可否記憶テーブル151(図13)の上昇不可能RTT1514に0.18を追加し(ステップS10)、ビットレートを1Mbpsへ低下させ(ステップS11)、ステップS02へ戻る。
【0100】
ステップS02ではビットレートを再び2Mbpsへ上昇させるための閾値の上限RTTubと下限RTTlbを決定する。「RTTlb=0、RTTub=0.18」となり、閾値RTTthは図14のようになる。ビットレート1Mbpsへ変更後、5回目の反復で往復遅延時間RTTmが0.030[s]となり、閾値RTTth(0.036[s])を下回ったとすると、再度2Mbpsへビットレートを上昇させ、2Mbpsで配信可能かどうかを判定する。2Mbpsで配信開始後、最初のレポートでパケットロスが発生していないと報告された場合、2Mbpsで配信可能と判定し、上昇可否記憶テーブル151の上昇可能RTT1513に0.030[s]を追加する(図15)。
【0101】
その後、ステップS02へ戻り、ビットレートを2Mbpsから4Mbpsへ上昇させるための閾値を設定する。閾値RTTthは図11と同様になる。ビットレート2Mbpsでの配信中のレポートでパケットロスの発生が報告された場合には(ステップS05:Yes)、ビットレートを1Mbpsへ変更し(ステップS06)、ステップS02へ戻る。
【0102】
以上説明したように、実施例1においては、ストリーム配信装置1のレポート受信部13は、インターネットを経由して、受信端末2が送信した受信状態のレポートを受信し、このレポートを基に、パケットロスの有無と往復遅延時間RTTを検出することによって、ビットレートの上昇試行時の往復遅延時間RTTの履歴情報を制御履歴記憶部15に保存する。そして、過去のビットレートの上昇試行時の往復遅延時間RTTの制御履歴の情報を基に、受信端末とビットレートに応じた閾値を自動的に設定する。また、閾値RTTthの設定を、閾値設定範囲の下限RTTlbから上限RTTubに向けて動的(自ら積極的)に設定変更して行くことにより、ビットレートの不用意な上昇と、ビットレートの上昇試行の停滞を防止する。
【実施例2】
【0103】
第2の実施例は、図6に示す第2の実施の形態のストリーム配信システムの具体的な例を示すものである。
前述の通り、図6に示す第2の実施の形態におけるストリーム配信装置1Aは、図1に示す第1の実施の形態のストリーム配信装置1と比較してレポート受信部13が削除され、受信端末2Aとの間の管理セッションの情報からネットワーク状態を推定するネットワーク状態推定部18が追加された点が異なる。また、受信端末2Aは、レポート送信部22が削除され、ストリーム配信装置1Aとの間でセッション情報をやりとりする管理情報通信部23が追加された点で第1の実施の形態と異なる。
【0104】
本実施例2における配信管理部17とネットワーク状態推定部18は、サーバ装置のCPUで実行されるプログラム(配信管理部およびネットワーク状態推定部における一連処理の過程が記述されたプログラム)によりその機能が実現される。また、管理情報通信部23は、セット・トップ・ボックスSTBのCPUで実行されるプログラムにより、その機能が実現される。また、ストリーム配信装置1Aの配信管理部17と受信端末2Aの管理情報通信部23は、RTSP(Real Time Streaming Protocol)によって通信し、プロトコルRTSPはトランスポートプロトコルにTCP(Transmission Control Protocol)を使用する。
【0105】
受信端末2Aは、プロトコルRTSPを使用してストリーム配信装置1Aへ配信要求を行う。ストリーム配信装置1A内の配信管理部17は、受信端末2Aからの配信要求を受信すると、配信レート決定部14に対して配信開始を指示する。また、配信開始後は、配信管理部17から受信端末2AへRTSPセッションを使用して死活監視用パケットを送信する。受信端末2Aの管理情報通信部23は死活監視用パケットを受信すると、ストリーム配信装置1Aへ応答確認を送信する。
【0106】
次に具体的な例を使用して、実施例2におけるネットワーク状態推定部18の動作を説明する。図16は、実施例2におけるネットワーク状態推定方法を示すシーケンス図であり、ストリーム配信装置1Aと受信端末2Aとの間の死活監視の処理の流れを示すものである。
【0107】
図16を参照して、時刻0:00:00.100(0時ちょうどの100ミリ秒後)に受信端末2Aへ死活監視パケットを送信したとき、ネットワーク状態推定部18はこの時刻を記憶しておく。この死活監視パケットは時刻0:00:00.110に受信端末2Aが受信し、時刻0:00:00.111に応答確認パケットを送信したとする。
【0108】
ストリーム配信装置1Aは、応答確認パケットを時刻0:00:00.121に受信すると、ネットワーク状態推定部18は、パケットロスが発生しておらず往復遅延時間RTTが21ミリ秒(=0:00:00.121−0:00:00.100)であることを配信レート決定部14へ通知する。
【0109】
その後、時刻0:00:01.100に次の死活監視パケットを送信したとする。この死活監視パケットが端末に到達する前にパケットロスした場合、受信端末2Aからの確認応答が送られてこないため、一定時間経過後(図16の例では500ミリ秒としている)にTCPによる再送が行われる。この再送が行われると、ネットワーク状態推定部18はパケットロスが発生していると判定する。再送した死活監視パケットに対する確認応答を受信すると、ネットワーク状態推定部18は、パケットロスが発生しており往復遅延時間RTTが61ミリ秒(=0:00:01.661−0:00:01.600)であることを配信レート決定部14へ通知する。
【0110】
以上説明したように、実施例2においては、ストリーム配信装置1Aから受信端末2Aに対し、インターネットにおけるRTSPセッションを使用して死活監視用パケットを送信することにより、ストリーム配信装置1Aのネットワーク状態推定部18でストリーム配信装置1Aと受信端末2Aとの間の往復遅延時間RTTとパケットロスの有無を推定する。これにより、受信状態をレポートしない受信端末2Aにおいても、過去のビットレート試行時の往復遅延時間RTTの制御履歴の情報から、受信端末2Aとビットレートに応じた閾値RTTthを容易かつ自動で設定できる。また、第1の実施の形態と同様に、ビットレートの不用意な上昇と、ビットレートの上昇試行の停滞を防止できる。
【0111】
以上、本発明の実施の形態について説明したが、図1に示すストリーム配信装置1、および図6に示すストリーム配信装置1Aは、前述のようにサーバ装置等で構成され、内部にコンピュータシステムを有している。そして、上述した処理に関する一連の処理の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。
【0112】
すなわち、ストリーム配信装置1,1Aにおける各処理は、CPU等の中央演算処理装置がROMやRAM等の主記憶装置に上記プログラムを読み出して、情報の加工、演算処理を実行することにより、実現されるものである。
【0113】
ここでコンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、CD−ROM、DVD−ROM、半導体メモリ等をいう。また、このコンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータが当該プログラムを実行するようにしても良い。
【0114】
以上、本発明の実施の形態について説明したが、本発明のストリーム配信システム、およびストリーム配信装置は、上述の図示例にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。
【産業上の利用可能性】
【0115】
本発明は、インターネット上での映像配信サービスに使用するストリーム配信システムや、監視カメラで撮影した映像を監視センタへ転送する映像監視システムなどに適用できる。
【符号の説明】
【0116】
1,1A・・・ストリーム配信装置、2,2A・・・受信端末、11・・・ストリーム送信部、12・・・コンテンツ記憶部、13・・・レポート受信部、14・・・配信レート決定部、15・・・制御履歴記憶部、16・・・閾値設定部、17・・・配信管理部、18・・・ネットワーク状態推定部、21・・・ストリーム受信部、22・・・レポート送信部、23・・・管理情報通信部、151・・・上昇可否記憶テーブル、1511・・・上昇前ビットレート、1512・・・上昇後ビットレート、1513・・・上昇可能RTT、1514・・・上昇不可能RTT
【特許請求の範囲】
【請求項1】
受信端末に配信するストリームのビットレートを上昇させる際の受信端末との間の往復遅延時間を、受信端末およびビットレートごとに履歴情報として記憶し、この履歴情報を基にしてビットレートを上昇させる際の往復遅延時間の閾値を設定する、ことを特徴とするストリーム配信装置。
【請求項2】
受信端末に配信するストリームのビットレートを上昇試行する際の受信端末との間の往復遅延時間を、受信端末ごとに、かつ上昇前と上昇後のビットレートの組み合わせに関連付けて履歴情報として記憶する制御履歴記憶部と、
前記制御履歴記憶部に記憶された往復遅延時間の履歴情報を基にして前記ビットレートを上昇させる際の往復遅延時間の閾値を設定する閾値設定部と、
前記受信端末との間の往復遅延時間が前記閾値を下回った場合に、当該受信端末に配信するストリームのビットレートを上昇させること判定する配信レート決定部と、
を有することを特徴とする請求項1に記載のストリーム配信装置。
【請求項3】
前記制御履歴記憶部は、ビットレートを上昇させる直前の前記受信端末との間の往復遅延時間を、ビットレート上昇後に配信可能であった往復遅延時間と、ビットレート上昇後に配信不可能であった往復遅延時間とに分類して記憶する、
ことを特徴とする請求項2に記載のストリーム配信装置。
【請求項4】
前記閾値設定部は、前記制御履歴記憶部に記憶された前記ビットレート上昇後に配信可能であった往復遅延時間と、前記ビットレート上昇後に配信不可能であった往復遅延時間とを基に閾値設定範囲を決定し、該閾値設定範囲内から前記閾値を設定する、
ことを特徴とする請求項3に記載のストリーム配信装置。
【請求項5】
前記閾値設定部は、前記配信可能であった往復遅延時間から閾値設定範囲の下限を設定し、前記配信不可能であった往復遅延時間から閾値設定範囲の上限を設定する
ことを特徴とする請求項4に記載のストリーム配信装置。
【請求項6】
前記閾値設定部は、前記閾値設定範囲内で前記閾値を変化させる、
ことを特徴とする請求項5に記載のストリーム配信装置。
【請求項7】
前記閾値設定部は、前記閾値設定範囲内で、前記閾値を時間経過とともに下限値から上限値へ近づくように設定変更する、
ことを特徴とする請求項6に記載のストリーム配信装置。
【請求項8】
前記受信端末から受信状態のレポート情報を受信するレポート受信部を有し、
前記レポート情報を基に、前記往復遅延時間とパケットロスの有無を判定する、
ことを特徴とする請求項1から7のいずれかに記載のストリーム配信装置。
【請求項9】
前記ストリーム配信装置は前記受信端末へ死活監視用データを送信すると共に、前記死活監視用データに対する確認応答を基に、往復遅延時間とパケットロスを推定するネットワーク状態推定部を有する、
ことを特徴とする請求項1から7のいずれかに記載のストリーム配信装置。
【請求項10】
前記ストリーム配信装置が前記死活監視用データを受信端末に送信した後、当該受信端末からの確認応答を受信するまでの時間を前記往復遅延時間とし、
トランスポートプロトコルによる前記死活監視用データの再送発生を、前記パケットロス発生とする、
ことを特徴とする請求項9に記載のストリーム配信装置。
【請求項11】
請求項1から10のいずれかに記載のストリーム配信装置と、
複数の受信端末と、
で構成されることを特徴とするストリーム配信システム。
【請求項12】
ネットワークを介して受信端末へストリームを配信するストリーム配信装置におけるストリーム配信方法であって、
前記ストリーム配信装置内のコンピュータにより、
受信端末に配信するストリームのビットレートを上昇させる際の受信端末との間の往復遅延時間を、受信端末およびビットレートごとに履歴情報として記憶し、この履歴情報を基にしてビットレートを上昇させる際の往復遅延時間の閾値を設定する手順が、
行われること特徴とするストリーム配信方法。
【請求項13】
ネットワークを介して受信端末へストリームを配信するストリーム配信装置におけるストリーム配信方法であって、
前記ストリーム配信装置内のコンピュータにより、
受信端末に配信するストリームのビットレートを上昇試行する際の受信端末との間の往復遅延時間を、受信端末ごとに、かつ上昇前と上昇後のビットレートの組み合わせに関連付けて履歴情報として記憶する制御履歴記憶手順と、
前記制御履歴記憶手順により記憶された往復遅延時間の履歴情報を基にして前記ビットレートを上昇させる際の往復遅延時間の閾値を設定する閾値設定手順と、
前記受信端末との間の往復遅延時間が前記閾値を下回った場合に、当該受信端末に配信するストリームのビットレートを上昇させること判定する配信レート決定手順と、
が行われることを特徴とする請求項12に記載のストリーム配信方法。
【請求項14】
前記制御履歴記憶手順により、ビットレートを上昇させる直前の前記受信端末との間の往復遅延時間を、ビットレート上昇後に配信可能であった往復遅延時間と、ビットレート上昇後に配信不可能であった往復遅延時間とに分類して記憶する、
ことを特徴とする請求項13に記載のストリーム配信方法。
【請求項15】
前記閾値設定手順により、前記制御履歴記憶手順により記憶された前記ビットレート上昇後に配信可能であった往復遅延時間と、前記ビットレート上昇後に配信不可能であった往復遅延時間とを基に閾値設定範囲を決定し、該閾値設定範囲内から前記閾値を設定する、
ことを特徴とする請求項14に記載のストリーム配信方法。
【請求項16】
前記閾値設定手順により、前記配信可能であった往復遅延時間から閾値設定範囲の下限を設定し、前記配信不可能であった往復遅延時間から閾値設定範囲の上限を設定する
ことを特徴とする請求項15に記載のストリーム配信方法。
【請求項17】
前記閾値設定手手順により、前記閾値設定範囲内で前記閾値を変化させる、
ことを特徴とする請求項16に記載のストリーム配信方法。
【請求項18】
前記閾値設定手順により、前記閾値設定範囲内で、前記閾値を時間経過とともに下限値から上限値へ近づくように設定変更する、
ことを特徴とする請求項17に記載のストリーム配信方法。
【請求項19】
前記受信端末から受信状態のレポート情報を受信するレポート受信手順が行われ、
前記レポート情報を基に、前記往復遅延時間とパケットロスの有無を判定する、
ことを特徴とする請求項12から18のいずれかに記載のストリーム配信方法。
【請求項20】
前記ストリーム配信装置は前記受信端末へ死活監視用データを送信すると共に、前記死活監視用データに対する確認応答を基に、往復遅延時間とパケットロスを推定するネットワーク状態推定手順が行われる、
ことを特徴とする請求項12から18のいずれかに記載のストリーム配信方法。
【請求項21】
前記ストリーム配信装置が前記死活監視用データを受信端末に送信した後、当該受信端末からの確認応答を受信するまでの時間を前記往復遅延時間とし、
トランスポートプロトコルによる前記死活監視用データの再送発生を、前記パケットロス発生とする、
ことを特徴とする請求項20に記載のストリーム配信方法。
【請求項22】
請求項12から請求項21のいずれかに記載のストリーム配信方法における各処理の手順をストリーム配信装置内のコンピュータに実行させるためのストリーム配信プログラム。
【請求項1】
受信端末に配信するストリームのビットレートを上昇させる際の受信端末との間の往復遅延時間を、受信端末およびビットレートごとに履歴情報として記憶し、この履歴情報を基にしてビットレートを上昇させる際の往復遅延時間の閾値を設定する、ことを特徴とするストリーム配信装置。
【請求項2】
受信端末に配信するストリームのビットレートを上昇試行する際の受信端末との間の往復遅延時間を、受信端末ごとに、かつ上昇前と上昇後のビットレートの組み合わせに関連付けて履歴情報として記憶する制御履歴記憶部と、
前記制御履歴記憶部に記憶された往復遅延時間の履歴情報を基にして前記ビットレートを上昇させる際の往復遅延時間の閾値を設定する閾値設定部と、
前記受信端末との間の往復遅延時間が前記閾値を下回った場合に、当該受信端末に配信するストリームのビットレートを上昇させること判定する配信レート決定部と、
を有することを特徴とする請求項1に記載のストリーム配信装置。
【請求項3】
前記制御履歴記憶部は、ビットレートを上昇させる直前の前記受信端末との間の往復遅延時間を、ビットレート上昇後に配信可能であった往復遅延時間と、ビットレート上昇後に配信不可能であった往復遅延時間とに分類して記憶する、
ことを特徴とする請求項2に記載のストリーム配信装置。
【請求項4】
前記閾値設定部は、前記制御履歴記憶部に記憶された前記ビットレート上昇後に配信可能であった往復遅延時間と、前記ビットレート上昇後に配信不可能であった往復遅延時間とを基に閾値設定範囲を決定し、該閾値設定範囲内から前記閾値を設定する、
ことを特徴とする請求項3に記載のストリーム配信装置。
【請求項5】
前記閾値設定部は、前記配信可能であった往復遅延時間から閾値設定範囲の下限を設定し、前記配信不可能であった往復遅延時間から閾値設定範囲の上限を設定する
ことを特徴とする請求項4に記載のストリーム配信装置。
【請求項6】
前記閾値設定部は、前記閾値設定範囲内で前記閾値を変化させる、
ことを特徴とする請求項5に記載のストリーム配信装置。
【請求項7】
前記閾値設定部は、前記閾値設定範囲内で、前記閾値を時間経過とともに下限値から上限値へ近づくように設定変更する、
ことを特徴とする請求項6に記載のストリーム配信装置。
【請求項8】
前記受信端末から受信状態のレポート情報を受信するレポート受信部を有し、
前記レポート情報を基に、前記往復遅延時間とパケットロスの有無を判定する、
ことを特徴とする請求項1から7のいずれかに記載のストリーム配信装置。
【請求項9】
前記ストリーム配信装置は前記受信端末へ死活監視用データを送信すると共に、前記死活監視用データに対する確認応答を基に、往復遅延時間とパケットロスを推定するネットワーク状態推定部を有する、
ことを特徴とする請求項1から7のいずれかに記載のストリーム配信装置。
【請求項10】
前記ストリーム配信装置が前記死活監視用データを受信端末に送信した後、当該受信端末からの確認応答を受信するまでの時間を前記往復遅延時間とし、
トランスポートプロトコルによる前記死活監視用データの再送発生を、前記パケットロス発生とする、
ことを特徴とする請求項9に記載のストリーム配信装置。
【請求項11】
請求項1から10のいずれかに記載のストリーム配信装置と、
複数の受信端末と、
で構成されることを特徴とするストリーム配信システム。
【請求項12】
ネットワークを介して受信端末へストリームを配信するストリーム配信装置におけるストリーム配信方法であって、
前記ストリーム配信装置内のコンピュータにより、
受信端末に配信するストリームのビットレートを上昇させる際の受信端末との間の往復遅延時間を、受信端末およびビットレートごとに履歴情報として記憶し、この履歴情報を基にしてビットレートを上昇させる際の往復遅延時間の閾値を設定する手順が、
行われること特徴とするストリーム配信方法。
【請求項13】
ネットワークを介して受信端末へストリームを配信するストリーム配信装置におけるストリーム配信方法であって、
前記ストリーム配信装置内のコンピュータにより、
受信端末に配信するストリームのビットレートを上昇試行する際の受信端末との間の往復遅延時間を、受信端末ごとに、かつ上昇前と上昇後のビットレートの組み合わせに関連付けて履歴情報として記憶する制御履歴記憶手順と、
前記制御履歴記憶手順により記憶された往復遅延時間の履歴情報を基にして前記ビットレートを上昇させる際の往復遅延時間の閾値を設定する閾値設定手順と、
前記受信端末との間の往復遅延時間が前記閾値を下回った場合に、当該受信端末に配信するストリームのビットレートを上昇させること判定する配信レート決定手順と、
が行われることを特徴とする請求項12に記載のストリーム配信方法。
【請求項14】
前記制御履歴記憶手順により、ビットレートを上昇させる直前の前記受信端末との間の往復遅延時間を、ビットレート上昇後に配信可能であった往復遅延時間と、ビットレート上昇後に配信不可能であった往復遅延時間とに分類して記憶する、
ことを特徴とする請求項13に記載のストリーム配信方法。
【請求項15】
前記閾値設定手順により、前記制御履歴記憶手順により記憶された前記ビットレート上昇後に配信可能であった往復遅延時間と、前記ビットレート上昇後に配信不可能であった往復遅延時間とを基に閾値設定範囲を決定し、該閾値設定範囲内から前記閾値を設定する、
ことを特徴とする請求項14に記載のストリーム配信方法。
【請求項16】
前記閾値設定手順により、前記配信可能であった往復遅延時間から閾値設定範囲の下限を設定し、前記配信不可能であった往復遅延時間から閾値設定範囲の上限を設定する
ことを特徴とする請求項15に記載のストリーム配信方法。
【請求項17】
前記閾値設定手手順により、前記閾値設定範囲内で前記閾値を変化させる、
ことを特徴とする請求項16に記載のストリーム配信方法。
【請求項18】
前記閾値設定手順により、前記閾値設定範囲内で、前記閾値を時間経過とともに下限値から上限値へ近づくように設定変更する、
ことを特徴とする請求項17に記載のストリーム配信方法。
【請求項19】
前記受信端末から受信状態のレポート情報を受信するレポート受信手順が行われ、
前記レポート情報を基に、前記往復遅延時間とパケットロスの有無を判定する、
ことを特徴とする請求項12から18のいずれかに記載のストリーム配信方法。
【請求項20】
前記ストリーム配信装置は前記受信端末へ死活監視用データを送信すると共に、前記死活監視用データに対する確認応答を基に、往復遅延時間とパケットロスを推定するネットワーク状態推定手順が行われる、
ことを特徴とする請求項12から18のいずれかに記載のストリーム配信方法。
【請求項21】
前記ストリーム配信装置が前記死活監視用データを受信端末に送信した後、当該受信端末からの確認応答を受信するまでの時間を前記往復遅延時間とし、
トランスポートプロトコルによる前記死活監視用データの再送発生を、前記パケットロス発生とする、
ことを特徴とする請求項20に記載のストリーム配信方法。
【請求項22】
請求項12から請求項21のいずれかに記載のストリーム配信方法における各処理の手順をストリーム配信装置内のコンピュータに実行させるためのストリーム配信プログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【公開番号】特開2011−35700(P2011−35700A)
【公開日】平成23年2月17日(2011.2.17)
【国際特許分類】
【出願番号】特願2009−180527(P2009−180527)
【出願日】平成21年8月3日(2009.8.3)
【出願人】(000004237)日本電気株式会社 (19,353)
【Fターム(参考)】
【公開日】平成23年2月17日(2011.2.17)
【国際特許分類】
【出願日】平成21年8月3日(2009.8.3)
【出願人】(000004237)日本電気株式会社 (19,353)
【Fターム(参考)】
[ Back to top ]