【解決手段】所定のデータサイズで、かつ、所定の時間間隔で順次送信される複数のUDPパケットを順に受信し、連続する2つのUDPパケットの受信時間間隔の、所定の時間間隔に対する遅延状態の評価値を算出する第1算出手段と、連続する2つのUDPパケットの受信時間間隔のうち異常値を除去するための条件に基づいて取得される受信時間間隔の、所定の時間間隔に対する遅延状態の評価値を算出する第2算出手段と、第1算出手段により算出される評価値と、第2算出手段により算出される評価値と、を組み合わせて少なくとも2つの評価値に基づいて当該評価値の信頼性を判断する判断手段と、評価値の信頼性に基づいて、所定のデータサイズと所定の時間間隔とで定められるビットレートに応じた帯域幅情報を出力する帯域幅情報出力手段と、を含む情報処理装置。
前記帯域幅情報出力手段が出力した、複数の異なるビットレートの各ビットレートに応じた前記帯域幅情報に基づいて、前記複数の異なるビットレートから帯域幅の上限及び下限を設定する帯域幅設定手段、をさらに含む、
ことを特徴とする請求項1に記載の情報処理装置。
前記再度受信した各ビットレートにおいて算出された前記評価値と、前回受信した各ビットレートにおいて算出された前記評価値と、を考慮して算出される評価値が所定の基準値を満たす場合に、前記帯域幅設定手段は、当該各ビットレートから帯域幅の上限及び下限を設定する、
ことを特徴とする請求項3に記載の情報処理装置。
【発明を実施するための形態】
【0013】
以下、本発明の一実施形態を図面に基づき詳細に説明する。
【0014】
[1.システム構成の説明]
図1は、本実施形態に係る情報処理システム1の全体構成の一例を示す図である。
図1に示すように、本実施形態に係る情報処理システム1は、例えば、サーバ10、及びクライアント端末20(20−1〜20−n)を含んで構成される。サーバ10、クライアント端末20は、ローカルエリアネットワーク(LAN)やインターネットなどの通信手段を介して互いに接続されており、互いに通信されるようになっている。
【0015】
本実施形態では、サーバ10が、サーバ10とクライアント端末20との間のデータ通信に用いる通信経路の帯域幅の情報を測定し、測定した帯域幅の情報に基づいてサーバとクライアント端末20との間のデータ通信に用いる通信経路の帯域幅を設定することとする。
【0016】
[2.ハードウェア構成の説明]
以下、上記の処理を実現するために、サーバ10に備えられるハードウェア構成の一例について説明する。
【0017】
図2は、本実施形態に係るサーバ10のハードウェア構成の一例を示す図である。
図2に示すように、例えば、サーバ10は、制御部11、記憶部12、通信部13、入力部14、及び表示部15を含んで構成される。
【0018】
制御部11は、例えばCPU等であって、記憶部12に格納されるプログラムに従って各種の情報処理を実行する。本実施形態において制御部11が実行する処理の具体例については、後述する。
【0019】
記憶部12は、例えばRAMやROM等のメモリ素子、ハードディスクなどを含んで構成される。記憶部12は、制御部11によって実行されるプログラムや、各種のデータを保持する。また、記憶部12は、制御部11のワークメモリとしても動作する。
【0020】
通信部13は、例えばLANカード等のネットワークインタフェースであって、LANや無線通信網などの通信手段を介して、クライアント端末20との間で情報の送受信を行う。
【0021】
入力部14は、例えばタッチパネル、キーボード等であって、ユーザからの操作入力を受け付ける。
【0022】
表示部15は、例えば液晶ディスプレイであって、制御部11による情報処理の結果を表示する。
【0023】
[3.機能の説明]
以下、サーバ10の制御部11が実現する機能について説明する。
図3は、本実施形態に係るサーバ10の制御部11により実現される主な機能の一例を示す機能ブロック図である。
図3に示すように、サーバ10の制御部11は、機能的には、例えば、パケット情報取得部101、評価値算出部102、第1評価値算出部103、第2評価値算出部104、第3評価値算出部105、評価値取得部106、判断部107、帯域幅情報出力部108、及び帯域幅設定部109を含んで構成される。これらの機能は、記憶部12に記憶されたプログラムを制御部11が実行することにより実現される。このプログラムは、例えば、光ディスク、磁気ディスク、磁気テープ、光磁気ディスク、フラッシュメモリ等のコンピュータ可読な情報記憶媒体を介して、あるいは、インターネットなどの通信手段を介してサーバ10に供給される。
【0024】
パケット情報取得部101は、通信部13が受信したパケットの情報を取得する。例えば、パケット情報取得部101は、例えば、通信部13パケットは送信元の情報(クライアント端末20の識別情報、送信ビットレート等)を含んでおり、パケット情報取得部101は、受信したパケットから送信元の情報も取得する。例えば、通信部13が受信する複数のパケットのうち連続して受信するパケット(パケットペアとする)の受信時間間隔や、各パケットに含まれる送信元の情報(例えば、送信元であるクライアント端末20の識別情報、送信ビットレート等)を取得する。
【0025】
評価値算出部102は、パケット情報取得部101が取得したパケットペアの受信時間間隔と、送信ビットレートから算出されるパケットペアの送信時間間隔と、を比較して、受信時間間隔の送信時間間隔に対する遅延の割合を評価する値を算出する。本実施形態では、第1評価値算出部103、第2評価値算出部104、及び第3評価値算出部105の3通りの方法により評価値を算出することとする。
【0026】
評価値取得部106は、評価値算出部102が算出した評価値を取得する。
【0027】
判断部107は、評価値取得部106が取得した評価値の信頼性を判断する。ここで、評価値の信頼性とは、まず、一般的な前提として、ビットレート変化に対する評価値の信頼性を判断する。ビットレートが高いほど、受信時間間隔の送信時間間隔に対する遅延の割合は大きくなることに基づいて、ビットレートが増加するに伴い、評価値が一定または増加すれば当該評価値のビットレート変化に対する信頼性は高いと判断できる。また、本実施形態では、3通りの方法により算出した各評価値の差異が少なければ当該評価値の信頼性は高いと判断する。
【0028】
帯域幅情報出力部108は、判断部107が判断した評価値の信頼性に基づいて帯域幅を設定するための情報を出力する。
【0029】
帯域幅設定部109は、帯域幅情報出力部108が出力した、ビットレートに応じた帯域幅の情報に基づいて、最適な帯域幅の設定を行う。
【0030】
[4.フロー図の説明]
次に、サーバ10において実現される処理の詳細を、フロー図を参照しながら説明する。
【0031】
[4−1.第1評価値算出処理]
図4は、サーバ10とクライアント端末20との間の通信経路における通信遅延を評価する第1評価値を算出する処理(第1評価値算出処理)の一例を示すフロー図である。
【0032】
まず、パケット情報取得部101は、クライアント端末20が所定のビットレートで送信したUDPパケットの送信時間間隔を取得する(S1)。そして、パケット情報取得部101は、変数iを1に初期化し(S2)、i番目のパケットペアの受信時間間隔D
irevを取得して、記憶部12に保存する(S3)。
【0033】
ここで、UDPパケットについて説明する。
図5は、本実施形態にかかるUDPパケットの送受信の様子を模式的に示す図である。
図5に示すように、クライアント端末20がサーバ10に送信するUDPパケットのパケットサイズをL(ビット)、UDPパケットの送信時間間隔をd(秒)とすると、ビットレートはL/d(bps)で表される。そして、クライアント端末20が同一のビットレートで、それぞれP個のUDPパケットを送信する処理を、1シーケンスとする。
【0034】
また、
図5に示すように、サーバ10が受信する連続する2つのUDPパケットをパケットペアとし、変数iは、クライアント端末20から同一のシーケンスで、かつ、同一のビットレートで送信されたUDPパケットのうち、サーバ10に到達したパケットペアの到達順番を表している。つまり、クライアント端末20がP個のUDPパケットを送信し、サーバ10がM個のUDPパケットを受信した場合、パケットペアはM−1個となる。なお、サーバ10が受信したUDPパケット数は、クライアント端末20が送信したUDPパケット数と同数であってもよいし、パケットロス等によりクライアント端末20が送信したUDPパケット数より少なくなってもよい。
【0035】
そして、パケット情報取得部101は、変数iをインクリメント(iに1を加算)し(S4)、変数iがM−1でないと判断した場合は(S5:N)、処理S3以降の処理を繰り返す。
【0036】
そして、パケット情報取得部101が、変数iがM−1であると判断した場合は(S5:Y)、処理S3にて記憶部12に保存した受信時間間隔D
irevを用いて、パケットペア毎の受信時間間隔D
irevの送信時間間隔dに対する遅延の割合(以下、遅延率とする)ds
i=(D
irev−d)/dを算出する(S6)。そして、パケット情報取得部101は、1シーケンスにおける遅延率ds
iの平均値(以下、平均遅延率とする)E(ds
i)=(Σds
i)/(M−1)を算出する(S7)。
【0037】
続いて、第1評価値算出部103は、処理S7にてパケット情報取得部101が算出した平均遅延率E(ds
i)の絶対値|E(ds
i)|が、|E(ds
i)|>θ
1である場合に第1評価値S1=1と算出する(S8)。また、第1評価値算出部103は、|E(ds
i)|<θ
2である場合に第1評価値S1=−1と算出する(S9)。そして、第1評価値算出部103は、θ
2≦|E(ds
i)|≦θ
1である場合に第1評価値S1=0と算出する(S10)。ここで、θ
1及びθ
2は予め定められる値であり、例えばθ
1=0.05、θ
2=0.02とする。
【0038】
第1評価値算出処理では、サーバ10が受信したすべてのUDPパケットを対象として評価値を算出している。ここで、サーバ10が受信するパケットペアのうち、その受信時間間隔が異常値となる(極端に小さい、または極端に大きい)パケットペアが存在することがある。例えば、いずれかのUDPパケットが、クライアント端末20とサーバ10との通信途中にパケットロスした場合には、パケットロスしたUDPパケットの前後に受信したUDPパケットがパケットペアとなり、その受信時間間隔は通常より大きくなる。また、通信部13はIC(Interrupt Coalescing)機能を備えている場合がある。IC機能は、通信部13が受信したパケットを複数個キャッシュしてからCPUへの割り込みを行い処理するものである。これにより、通信部13がパケットを受信する毎にCPUへの割り込みを行うより、CPUへの割り込み回数が減少しCPU負荷が軽減する。クライアント端末20から送信されたUDPパケットが、このようなIC機能を用いて処理された場合は、パケットペアの受信時間間隔は通常より小さくなる。このように、第1評価値算出処理では、受信時間間隔が異常値となる場合は考慮されていない。そこで、受信時間間隔の異常値を考慮した評価値算出処理(第2評価値算出処理、第3評価値算出処理)を以下に説明する。
【0039】
[4−2.第2評価値算出処理]
次に、サーバ10とクライアント端末20との間の通信経路における通信遅延を評価する第2評価値を算出する処理(第2評価値算出処理)について
図6のフロー図を用いて説明する。サーバ10は、クライアント端末20が送信したUDPパケットをキャッシュしてから受信する場合があり、この場合は、パケットペアの受信時間間間隔D
irevは極端に小さい値となる。そこで、第2評価値算出処理では、このような極端に小さい値のD
irevを除外して評価値を算出する。
【0040】
まず、
図6の処理S21から処理S23までの処理は、
図4の処理S1から処理S3の処理と同様であるため、重複する説明はここでは省略する。
【0041】
次に、パケット情報取得部101は、処理S23にて記憶部12に保存した受信時間間隔D
irevが3D
min以下の値である場合に(S24:Y)、受信時間間隔D
irevを記憶部12から削除し(S25)、処理S23にて記憶部12に保存した受信時間間隔D
irevが3D
minより大きい値である場合は(S24:N)、処理S26以降の処理を実行する。ここで、D
minは予め定められる値であってもよいし、パケット情報取得部101が過去に取得した受信時間間隔D
irevのうちの最小値であってもよい。
【0042】
ここで、
図6の処理S26から処理S29までの処理は、
図4の処理S4から処理S7の処理と同様であるため、重複する説明はここでは省略する。そして、第2評価値算出部104は、処理S29にてパケット情報取得部101が算出した平均遅延率E(ds
i)の絶対値|E(ds
i)|が、|E(ds
i)|>θ
1である場合に第2評価値S2=1と算出する(S30)。また、第2評価値算出部104は、|E(ds
i)|<θ
2である場合に第2評価値S2=−1と算出する(S31)。そして、第2評価値算出部104は、θ
2≦|E(ds
i)|≦θ
1である場合に第2評価値S2=0と算出する(S32)。ここで、θ
1及びθ
2は予め定められる値であり、例えばθ
1=0.05、θ
2=0.02とする。
【0043】
第2評価値算出処理により、極端に値の小さい受信時間間隔D
irevを評価値算出処理の対象から除外して第2評価値を算出することができる。このような第2評価値算出処理により算出された第2評価値は、第1評価値算出処理により算出された第1評価値よりも精度の高い値となる。
【0044】
[4−3.第3評価値算出処理]
次に、サーバ10とクライアント端末20との間の通信経路における通信遅延を評価する第3評価値を算出する処理(第3評価値算出処理)について
図7のフロー図を用いて説明する。サーバ10は、クライアント端末20が送信したUDPパケットを受信できない場合や、パケットペアの受信時間間間隔D
irevが極端に大きな値となる場合がある。そこで、第3評価値算出処理では、このような極端に外れた値の受信時間間間隔D
irevを除外して評価値を算出する。
【0045】
まず、
図7の処理S41からS47までの処理は、
図6の処理S21からS27までの処理と同様であるため、重複する説明はここでは省略する。
【0046】
次に、パケット情報取得部101は、変数i=M−1までに取得して記憶部12に保存した受信時間間間隔D
irevに外れ値がある場合は(S48:Y)、外れ値である受信時間間隔D
irevを記憶部12から削除し(S49)、変数i=M−1までに取得して記憶部12に保存した受信時間間間隔D
irevに外れ値がない場合は(S48:N)、処理S50以降の処理を実行する。
【0047】
ここで、記憶部12に保存した受信時間間間隔D
irevの外れ値の検出は、公知の外れ値検出手法を用いてよい。例えば、記憶部12に保存した受信時間間間隔D
irevを小さい順に並べたときの四分位数を用いる。そして、第1四分位数をQ1、第2四分位数をQ2、第3四分位数をQ3とすると、Q1−p(Q3−Q1)以下の値と、Q3+p(Q3−Q1)以上の値と、が外れ値として検出される。ここでpは、任意の定数であってよく、例えば0.5とする。
【0048】
ここで、
図7の処理S50から処理S51の処理は、
図6の処理S28から処理S29の処理と同様であるため、重複する説明はここでは省略する。そして、第3評価値算出部105は、処理S51にてパケット情報取得部101が算出した平均遅延率E(ds
i)の絶対値|E(ds
i)|が、|E(ds
i)|>θ
1である場合に第3評価値S3=1と算出する(S52)。また、第3評価値算出部105は、|E(ds
i)|<θ
2である場合に第3評価値S3=−1と算出する(S53)。そして、第3評価値算出部105は、θ
2≦|E(ds
i)|≦θ
1である場合に第3評価値S3=0と算出する(S54)。ここで、θ
1及びθ
2は予め定められる値であり、例えばθ
1=0.05、θ
2=0.02とする。
【0049】
第3評価値算出処理により、極端に値の外れた受信時間間隔D
irevを評価値算出処理の対象から除外することができる。このような第3評価値算出処理により算出された第3評価値は、第1評価値及び第2評価値よりも精度の高い値となる。
【0050】
[4−4.第1帯域幅設定処理]
まず、帯域幅設定処理の第1の方法(第1帯域幅設定処理)について説明する。サーバ10が実行する第1帯域幅設定処理を
図8のフロー図を用いて説明する。ここでは、クライアント端末20が、1シーケンスにおいてN個のビットレートRn(R1〜RN)でUDPパケットを送信する。ここでビットレートRnは、R1からRNへ連続的に増加する値が設定されることとする。そして、帯域幅設定部109が、上記ビットレートにおける評価値に基づいて帯域幅を設定する。
【0051】
まず、評価値取得部106は、変数nを1に初期化し(S61)、ビットレートRn時の第1評価値S1、第2評価値S2、及び第3評価値S3を取得する(S62)。次に、評価値取得部106は、第1評価値、第2評価値、及び第3評価値の和である合計評価値Sum
Rn=S1+S2+S3を算出して記憶部12に保存する(S63)。
【0052】
そして、変数nをインクリメントし(変数nに1を加算)(S64)、変数nがNでない場合は(S65:N)、処理S62以降の処理を繰り返し実行する。
【0053】
そして、変数nがNであり(S65:Y)、判断部107が、ビットレートR1〜RNの各ビットレートにおける合計評価値Sum
Rnの値が、−3または3でないと判断した場合には(S66:N)、第1帯域幅設定処理は終了する。
【0054】
ここでは、各ビットレートにおける各評価値(第1評価値S1、第2評価値S2、第3評価値S3)の信頼性が判断される。合計評価値Sum
Rnの値が−3、または3となるのは、第1評価値、第2評価値、及び第3評価値の値がそれぞれ同じ値(−1または1)の場合である。つまり、3種類の評価値算出処理において同じ結果となるので、当該評価値は信頼性の高い値といえる。第1帯域幅設定処理では、このような信頼性の高い評価値に基づいて帯域幅の設定を行う。
【0055】
また、判断部107が、ビットレートR1〜RNの各ビットレートにおける合計評価値Sum
Rnの値が、−3または3であると判断した場合に(S66:Y)、判断部107は、全てのビットレートペアj(j=1〜N−1)においてRj+1>RjかつSum
Rj+1≧Sum
Rjの条件が成立するか否かを判断する(S67)。
【0056】
ここでは、ビットレートR1〜RNのうち隣り合うビットレートのペアをビットレートペアjとする(ビットレートペア1={R1,R2}、ビットレートペア2={R2,R3}、…ビットレートペアj={Rj,Rj+1})。そして、判断部107は、全てのビットレートペアjにおいて各ビットレートペアjに含まれる2つのビットレートのうち高ビットレート(Rj+1)の合計評価値Sum
Rj+1が、低ビットレート(Rj)の合計評価値Sum
Rj以上の値となるか否かを判断している。つまり、ビットレートの変化に応じて、評価値が適切に推移するかが判断される。ここでは、ビットレートが高いほど評価値が高くなれば、ビットレートの変化に対する評価値の信頼性が高いと判断される。
【0057】
そして、判断部107が全てのビットレートペアj(j=1〜N−1)においてRj+1>RjかつSum
Rj+1≧Sum
Rjの条件が成立すると判断した場合は(S65:Y)、帯域幅情報出力部108が、シーケンスに含まれる各ビットレートに対応する合計評価値Sum
Rnの値を帯域幅情報として出力する(S68)。
【0058】
そして、帯域幅設定部109は、帯域幅情報出力部108が出した帯域幅情報に基づいて帯域幅を設定する(S69)。具体的には、合計評価値Sum
Rnの値が−3であるビットレートのうち最も高いビットレートを帯域幅の下限B
Lに設定し、合計評価値Sum
Rnの値が3であるビットレートのうち最も低いビットレートを帯域幅の上限B
Hに設定する。
【0059】
また、判断部107が、少なくとも1つのビットレートペアj(j=1〜N−1)においてRj+1>RjかつSum
Rj+1≧Sum
Rjの条件が成立しないと判断した場合は(S65:N)、第1帯域幅設定処理は終了する。
【0060】
第1帯域幅設定処理の具体的な例について
図9を用いて説明する。
図9はビットレートRnと合計評価値Sum
Rnとの関係の一例を示す図である。ここでは、クライアント端末20が、1つのシーケンスにおいてビットレートR1〜R4(R1=1.0Mbps、R2=1.5Mbps、R3=4.0Mbps、R4=5.9Mbps)の4つのビットレートでUDPパケットを送信した場合の例を用いている。
図9に示すように、シーケンス1(Seq1)においては、ビットレートR1〜R4の全てにおいて合計評価値Sum
Rnが−3または3の値を示している。さらに、シーケンス1においては、全てのビットレートペアj(j=1〜3)においてRj+1>RjかつSum
Rj+1≧Sum
Rjの条件が成立しており、ビットレート変化に対する評価値の信頼性を満たしている。したがって、判断部107は、シーケンス1における各評価値は信頼性の高い値であると判断する。シーケンス2(Seq2)は、ビットレートR1、R2及びR3において合計評価値がそれぞれ−1、2、0となっているため、判断部107は、シーケンス2における各評価値は信頼性の低い値であると判断する。シーケンス3(Seq3)においては、ビットレートR1〜R4の全てにおいて、合計評価値Sum
Rnが−3または3の値を示しているが、ビットレートペアj=2においてRj+1>RjかつSum
Rj+1≧Sum
Rjの条件が成立していない。したがって、判断部107は、シーケンス3における各評価値は信頼性の低い値であると判断する。
図9において、隣り合うビットレート間において、ビットレート変化に対する評価値の信頼性を満たしているビットレート間に○を示し、ビットレート変化に対する評価値の信頼性を満たしていないビットレート間に×を示している。そして、各評価値の信頼性が高いと判断されたシーケンスの信頼性に○を示し、各評価値の信頼性が低いと判断されたシーケンスの信頼性に×を示している。
【0061】
そして、帯域幅情報出力部108が、シーケンス1に含まれる各ビットレートに対応する合計評価値を帯域幅情報として出力する。
【0062】
そして、帯域幅設定部109が、合計評価値が−3であるビットレート(R1、R2、R3)のうち最も高いビットレートR3=4.0Mbpsを帯域幅の下限B
Lに設定、合計評価値が3であるビットレートのうち最も低いビットレートR4=5.9Mbpsを帯域幅の上限B
Hに設定する。
【0063】
[4−5.第2帯域幅設定処理]
次に、帯域幅設定処理の第2の方法(第2帯域幅設定処理)について説明する。第1帯域幅設定処理では、各ビットレートにおける合計評価値が−3または3という信頼性の高い値をとる場合に帯域幅を設定していた。しかし、第2帯域幅設定処理では、各ビットレートにおける合計評価値が−3または3とならない場合にも最適な帯域幅の設定が可能である。
【0064】
サーバ10が実行する第2帯域幅設定処理を
図10のフロー図を用いて説明する。ここでは、クライアント端末20が、1シーケンスにおいてN個のビットレートRn(R1〜RN)でUDPパケットを送信する。そして、帯域幅設定部109が、上記ビットレートにおける評価値に基づいて帯域幅を設定する。
【0065】
まず、変数tを1に初期化し(S71)、変数nを1に初期化する(S72)。
【0066】
そして、評価値取得部106は、シーケンスtに含まれるビットレートRn時の第1評価値S1
Rn(t)、第2評価値S2
Rn(t)、及び第3評価値S3
Rn(t)を取得する(S73)。そして、評価値取得部106は、処理S73で取得した第1評価値S1、第2評価値S2、及び第3評価値S3の和である合計評価値Sum
Rn(t)=S1
Rn(t)+S2
Rn(t)+S3
Rn(t)を算出して記憶部12に保存する(S74)。
【0067】
次に、変数nをインクリメントし(変数nに1を加算)(S75)、変数nがNでない場合は(S76:N)、処理S73以降の処理を繰り返し実行する。
【0068】
そして、変数nがNであり(S76:Y)、変数tが1である場合は(S77:Y)、判断部107は、ビットレートRn(n=1〜N)において合計評価値Sum
Rn(1)の値が−3または3であるか否かを判断する(S78)。ここでは、各ビットレートにおける各評価値(第1評価値S1、第2評価値S2、第3評価値S3)の信頼性が判断される。
【0069】
処理S77の判断の結果、ビットレートRn(n=1〜N)において合計評価値Sum
Rn(1)の値が−3または3でないと判断された場合は(S78:N)、判断部107は、いずれかのビットレートペアj(j=1〜N−1)においてRj+1>RjかつSum
Rj+1(1)≧Sum
Rj(1)の条件が成立するか否かを判断する(S79)。
【0070】
ここでは、ビットレートRn(n=1〜N)において合計評価値Sum
Rn(1)の値が−3または3でないため、各ビットレートにおける各評価値の信頼性は低いと判断される。そして、帯域幅設定部109は、隣り合うビットレートのペア毎(ビットレートペア1={R1,R2}、ビットレートペア2={R2,R3}、…ビットレートペアj={Rj,Rj+1})に、ビットレートペアjに含まれる2つのビットレートのうち高ビットレートの合計評価値は、低ビットレートの合計評価値以上となるかを判断する。これにより、各ビットレートにおける各評価値の信頼性は低いが、少なくともビットレートの増加に応じて評価値が一定または増加するというビットレート変化に対する評価値の信頼性を満たしているビットレートペアjが存在するかが判断される。
【0071】
処理S79の判断の結果、いずれかのビットレートペアjで条件が成立すると判断された場合は(S79:Y)、変数tをインクリメントし(S80)、処理S72以降の処理を繰り返し実行する。ここで、各ビットレートにおける各評価値の信頼性は低いが、少なくともビットレート変化に対する評価値の信頼性を満たしているビットレートペアjが存在する場合は、評価値算出部102が新規のシーケンスにおいて各ビットレートにおける合計評価値を再度算出する。なお、評価値算出部102は、処理S78にて、Rj+1>RjかつSum
Rj+1(1)≧Sum
Rj(1)の条件が成立すると判断されたビットレートペアjに含まれるビットレートについてのみ、新規のシーケンスにおいて合計評価値を再度算出することとしてもよい。
【0072】
処理S79の判断の結果、いずれのjでも条件が成立しないと判断された場合は(S79:N)、第2帯域幅設定処理が終了する。ビットレート変化に対する評価値の信頼性を満たすビットレートのペアが存在しない場合は、帯域幅の設定はされずに第2帯域幅設定処理が終了する。
【0073】
また、処理S77において変数tが1でない場合は(S77:N)、判断部107は、シーケンスtに含まれるビットレートRn(n=1〜N)において合計評価値Sum
Rn(t)の値が−3または3であるか否かを判断する(S81)。
【0074】
そして、処理S80の判断の結果、シーケンスtに含まれるビットレートRn(n=1〜N)において合計評価値Sum
Rn(t)の値が−3または3でない場合は(S80:N)、判断部107は、すべてのシーケンス(1〜t)において、Rj+1>RjかつSum
Rj+1(t)≧Sum
Rj(t)の条件が成立するビットレートペアjが存在するか否かを判断する(S82)。ここでは、複数のシーケンスいずれにおいても、各評価値の信頼性は低いが、少なくともビットレートの増加に応じて評価値が一定または増加するという一般的な前提を満たしているビットレートペアjが存在するかが判断される。なお、処理S79にてRj+1>RjかつSum
Rj+1(1)≧Sum
Rj(1)の条件が成立すると判断された1以上のビットレートペアjのうち、その他のシーケンス(2〜t)においてもRj+1>RjかつSum
Rj+1(t)≧Sum
Rj(t)の条件が成立するビットレートペアjが存在するか否かを判断してもよい。
【0075】
処理S82の判断の結果、条件が成立する1以上のビットレートペアjが存在する場合は(S82:Y)、当該条件が成立するビットレートペアjを用いて、判断部107は、各シーケンスt(t=1〜t)におけるビットレートRjのときの合計評価値Sum
Rj(t)の和ΣSum
Rj(t)の値が−K(K≧3とし、例えば、K=3とする)以下であり、かつ、各シーケンスt(1〜t)におけるビットレートRj+1のときの合計評価値Sum
Rj+1(t)の和ΣSum
Rj+1(t)の値がK以上である、という条件を満たす1以上のビットレートペアjが存在するか否かを判断する(S83)。
【0076】
処理S83の判断の結果、条件を満たす1以上のビットレートペアjが存在すると判断された場合に(S83:Y)、帯域幅情報出力部108は、当該条件を満たす1以上のビットレートペアjと、当該ビットレートペアjに含まれる各ビットレートに対応する合計評価値と、を帯域幅情報として出力する(S84)。
【0077】
そして、帯域幅設定処理部109が、処理S84で帯域幅情報出力部108が出力した帯域幅情報に基づいて帯域幅を設定し(S85)、第2帯域幅設定処理は終了する。具体的には、帯域幅設定処理部109は、帯域幅情報出力部108が出力した1以上のビットレートペアjのうち、ΣSum
Rj(t)の絶対値と、ΣSum
Rj+1(t)の絶対値と、の和が最大となるビットレートペアjを選択する。ここで、帯域幅情報出力部108が出力したビットレートペアjが複数存在する場合に、ビットレートペアに含まれる各ビットレートにおける評価値の信頼性がより高いビットレートペアを選択することとする。そして、帯域幅設定処理部109は、選択されたビットレートペアjに含まれるビットレートRj+1を帯域幅の上限B
Hとし、ビットレートRjを帯域幅の下限B
Lとして設定する。
【0078】
また、処理S78の判断の結果、n=1〜Nにおいて合計評価値Sum
Rn(1)の値が−3または3である場合(S78:Y)、または、処理S81の判断の結果、n=1〜Nにおいて合計評価値Sum
Rn(t)の値が−3または3である場合は(S80:Y)、
図8に示す第1帯域幅設定処理の処理S67以降の処理を実行する。
【0079】
また、処理S82の判断の結果、条件が成立するビットレートペアjが存在しない場合は(S82:N)、帯域幅設定部109は、第2帯域幅設定処理を終了する。
【0080】
また、処理S83の判断の結果、条件を満たすビットレートペアjが存在しないと判断された場合は(S83:N)、処理S80以降の処理を繰り返し実行する。
【0081】
ここで、第2帯域幅設定処理の具体例について
図11を用いて説明する。
図11は第2帯域幅設定処理における、各ビットレートにおける合計評価値の一例を示す図である。ここでは、
図11に示すように、1シーケンスにおいて5個のビットレートRn(R1=4.3Mbps、R2=4.6Mbps、R3=5.1Mbps、R4=5.5Mbps、R5=5.7Mbps)で、クライアント端末20がUDPパケットを送信した場合を用いる。
図11において、隣り合うビットレート間において、ビットレート変化に対する評価値の信頼性を満たしているビットレート間に○を示し、ビットレート変化に対する評価値の信頼性を満たしていないビットレート間に×を示している。そして、各評価値の信頼性が高いと判断されたシーケンスの信頼性に○を示し、各評価値の信頼性が低いと判断されたシーケンスの信頼性に×を示している。
【0082】
まず、シーケンス1(Seq1)において、各ビットレートの合計評価値は、Sum
R1(1)=0、Sum
R2(1)=−2、Sum
R3(1)=1、Sum
R4(1)=−1、Sum
R5(1)=2と算出される。ここで、シーケンス1では、各ビットレートにおける合計評価値が−3または3となっていないので、各評価値の信頼性は低いといえる。
【0083】
そこで、帯域幅設定部109は、隣り合うビットレートのペアであるビットレートペア毎に、ビットレートペアに含まれる2つのビットレートのうち高ビットレートの合計評価値が、低ビットレートの合計評価値以上の値となるかを判断する。ここでは、ビットレートペア2{R2,R3}及びビットレートペア4{R4,R5}において、各ビットレートペアに含まれるビットレートのうち高ビットレートの合計評価値は、低ビットレートの合計評価値以上の値となる。したがって、ビットレートペア2及びビットレートペア4は、ビットレートが高いほど評価値が高くなるというビットレート変化に対する評価値の信頼性を満たしていると判断される。
【0084】
次に、シーケンス2(Seq2)において、シーケンス1と同じ5個のビットレートRn(R1〜R5)で、クライアント端末20がUDPパケットを再度送信する。シーケンス2の場合は、各ビットレートの合計評価値は、Sum
R1(1)=−2、Sum
R2(1)=2、Sum
R3(1)=0、Sum
R4(1)=−2、Sum
R5(1)=2と算出される。ここで、シーケンス2においても、各ビットレートにおける合計評価値が−3または3となっていないので、各評価値の信頼性は低いといえる。
【0085】
そこで、シーケンス1において、ビットレートが高いほど評価値が高くなるというビットレート変化に対する評価値の信頼性を満たしていると判断されたビットレートペア2及びビットレートペア4について、判断部107は、シーケンス2においても同様にビットレート変化に対する評価値の信頼性を満たしているか否かを判断する。ここでは、ビットレートペア4において、ビットレートペア4に含まれる2つのビットレートのうち高ビットレートの合計評価値は、低ビットレートの合計評価値以上の値となる。したがって、ビットレートペア4はビットレート変化に対する評価値の信頼性を満たしていると判断される。そして、ビットレートペア4について、シーケンス1における合計評価値とシーケンス2における合計評価値とをビットレート毎に合計すると、ビットレートR4ではΣSum
R4(t)=−3、ビットレートR5ではΣSum
R5(t)=4と算出される。このように、ΣSum
R4(t)は−3以下の値となり、ΣSum
R5(t)は3以上の値となるため、これらは信頼性の高い値と判断される。
【0086】
そして、帯域幅設定部109は、ビットレートペア4に基づいて帯域幅を設定する。つまり、帯域幅の上限B
H=R5=5.7Mbpsとし、帯域幅の下限B
L=R4=5.5Mbpsとして設定する。
【0087】
なお、本発明は上述の実施形態に限定されるものではない。
【0088】
例えば、帯域幅設定部109は、サーバ装置10に含まれることとしたが、クライアント端末20に備えられていてもよい。この場合は、サーバ装置10は、帯域幅情報出力部108が出力した帯域幅情報をクライアント端末20へ送信する。
【0089】
また、本実施形態では、第1評価値算出処理、第2評価値算出処理、及び第3評価値算出処理の3通りの方法で算出した評価値に基づいて評価値の信頼性の判断、及び帯域幅設定が行われたが、3通りの方法のいずれか2つを用いてもよい。この場合、判断部107は、2通りの方法で算出された各評価値の合計である合計評価値が−2または2となる場合に、当該各評価値の信頼性が高いと判断することとする。