(57)【特許請求の範囲】
【請求項１】
通信環境とネットワーク品質とを対応付けて格納するネットワーク品質格納手段と、
前記ネットワーク品質に関する通信環境間の類似度に基づいて、通信環境をクラスタリングするクラスタ計算手段と、
前記クラスタ計算手段で得られたクラスタ毎に、ネットワーク品質の情報を集計するネットワーク品質計算手段と、
を備えることを特徴とするアプリケーション制御装置。
【請求項２】
前記類似度の情報として、各クラスタにおける前記ネットワーク品質の頻度分布間のカルバック・ライブラー情報量、又は、各クラスタにおける前記ネットワーク品質の平均値の差分を用いる
ことを特徴とする請求項１に記載のアプリケーション制御装置。
【請求項３】
前記クラスタ計算手段は、前記類似度が最も大きい２クラスタを逐次的に併合していき、クラスタ内に属するネットワーク品質のデータ数に基づいてクラスタを決定する
ことを特徴とする請求項１又は２に記載のアプリケーション制御装置。
【請求項４】
前記ネットワーク品質計算手段は、所定の閾値毎に、当該閾値以上となるネットワーク品質の値の個数を前記クラスタ毎に集計する
ことを特徴とする請求項１ないし３のうちいずれか１項に記載のアプリケーション制御装置。
【請求項５】
前記アプリケーション制御装置は、動画再生手段を更に備え、
前記動画再生手段は、前記ネットワーク品質計算手段により集計された、当該動画再生手段の通信環境が属するクラスタに対応するネットワーク品質の情報に基づいて、配信サーバに要求する動画のビットレートを選択する
ことを特徴とする請求項１ないし４のうちいずれか１項に記載のアプリケーション制御装置。
【請求項６】
通信環境とネットワーク品質とを対応付けて格納するネットワーク品質格納手段を備えるアプリケーション制御装置が実行するネットワーク品質予測方法であって、
前記ネットワーク品質に関する通信環境間の類似度に基づいて、通信環境をクラスタリングするクラスタ計算ステップと、
前記クラスタ計算ステップで得られたクラスタ毎に、ネットワーク品質の情報を集計するネットワーク品質計算ステップと、
を備えることを特徴とするネットワーク品質予測方法。
【請求項７】
コンピュータを、請求項１ないし５のうちいずれか１項のアプリケーション制御装置における各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、現在の通信環境と類似した通信環境におけるスループット情報を利用することにより、将来のスループットを予測し、予測したスループットに基づいてアプリケーションを制御する技術に関するものである。
【背景技術】
【０００２】
近年のモバイルネットワークの普及に伴い、ネットワークを介したアプリケーションやサービスが多数提供されている。そうしたサービスの中には、将来のネットワーク品質を予測することで、より適切なサービスを提供できるという性質を持ったものが存在する。その中でも代表的なサービスとして、動画配信サービスがある。
【０００３】
動画配信サービスは、再生開始待ち時間低減のため、動画データを全てダウンロードしてから再生するという形式ではなく、ダウンロードしながら同時に再生を行うという形式をとっていることが多い。この形式はプログレッシブダウンロード(PDL)型と呼ばれており、Youtube（登録商標）をはじめとした多くの動画配信サービスで利用されている。また、動画データを一定時間ごとのデータ（チャンク）に分割し、それぞれのチャンクを何パターンかの条件でエンコードされた動画ファイルを用意しておき、ネットワーク品質やバッファ量に応じてどの品質で配信するかを動的に決定する、Adaptive Bitrate(ABR)方式の利用も広がっている。PDLかつABR型の配信においては、ネットワーク品質に対して高すぎる符号化ビットレート（以下、単に"ビットレート"と呼ぶ場合がある）の動画データを配信してしまうと、途中で再生が停止してしまう一方で、低すぎる符号化ビットレートの動画データを配信してしまうと、ネットワーク帯域が余っているにも関わらず低画質の動画しか視聴できないという現象が発生する。なお、画質はビットレートに対応している（例：高ビットレートは高画質、低ビットレートは低画質）。
【０００４】
こうした問題に対応するため、過去のスループット情報を利用して、将来のネットワーク品質を高精度に推定し、配信画質を選択する手法が提案されている。この方式では、過去のスループット情報から、(ISP，都市，タイムスタンプ)が一致するデータを取得し、その平均値を取ることで推定を行う。しかし、推定に足るだけのデータ数が集まらない可能性がある。こうした際は、（ISP，都市，タイムスタンプ）の条件を（ISP，都市，*）に緩めて推定を行い、それでも集まらない場合には（ISP，*，*）の条件で推定を行う（*はドントケア）。 このように段階的な予測を行うことで、データ数が多い場所については高精度な推定、データ数が少ない場所についてもある程度の精度での推定を可能にしている。そして、推定結果を利用して、サーバに用意されたビットレートの動画データを配信した時のQoEを計算し、最もQoEが高くなる配信ビットレートを選択することで、QoEの高い動画配信を実現している。なお、先行技術文献として非特許文献１がある。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】X. Liu, F. Dobrian, H. Milner, J. Jiang, V. Sekar, I. Stoica, and H. Zhang, "A case for a coordinated Internet video control plane," in Proc. ACM SIGCOMM Conf. Appl., Technol., Archit., Protocols Comput. Commun., 2012, pp. 359-370.
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上述した手法をモバイル環境に適用することを考えると、ISP、都市は、セルID、基地局IDと置き換えることができる。このスループット推定方式を用いることにより、段階的な予測を行うことで推定可能なエリアを拡大させることには成功しているものの、推定精度が低くなるという課題がある。これは、十分な数のデータが集まっていない場合に推定に利用するデータの空間的粒度を粗くしてしまっていることに起因するもので、空間的粒度を粗くすればするほど、推定精度は低下していく。この課題に対しては、十分な数のデータを集めるという対策が考えられるが、日本を例にとっても、セルIDの数は数十万あり、その全てのセルに対して十分な量のスループットデータ数を確保することは現実的ではない。従って、少ない数のデータを用いて、より高精度な推定をする必要がある。
【０００７】
本発明は上記の点に鑑みてなされたものであり、過去のネットワーク品質に関連するデータを利用して、将来のネットワーク品質を推定する技術において、データ数が少ない場合でも高精度にネットワーク品質を推定することを可能とする技術を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の実施の形態によれば、通信環境とネットワーク品質とを対応付けて格納するネットワーク品質格納手段と、
前記ネットワーク品質に関する通信環境間の類似度に基づいて、通信環境をクラスタリングするクラスタ計算手段と、
前記クラスタ計算手段で得られたクラスタ毎に、ネットワーク品質の情報を集計するネットワーク品質計算手段と、
を備えることを特徴とするアプリケーション制御装置が提供される。
【発明の効果】
【０００９】
本発明の実施の形態によれば、大量のデータを集めることなく、従来よりも高精度なネットワーク品質の予測が可能となり、結果として、よりQoEの高いアプリケーション制御が可能となる。
【図面の簡単な説明】
【００１０】
【図１】動画コンテンツの例を示す図である。
【図２】本発明の実施の形態におけるアプリケーション制御装置の構成図である。
【図３】スループット計算部２００の構成図である。
【図４】スループットテーブルの値の例を示す図である。
【図５】通信環境クラスタテーブルの値の例を示す図である。
【図６】クラスタスループットテーブルの値の例を示す図である。
【図７】アプリケーション制御装置のハードウェア構成図である。
【図８】動画再生部１００の動作を示すフローチャートである。
【図９】スループット計算部２００によるクラスタ更新の動作を示すフローチャートである。
【図１０】スループット計算部２００によるスループット計算の動作を示すフローチャートである。
【図１１】スループット計算部２００によるスループット応答の動作を示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下、図面を参照して本発明の実施の形態（本実施の形態）を説明する。以下で説明する実施の形態は一例に過ぎず、本発明が適用される実施の形態は、以下の実施の形態に限られるわけではない。例えば、以下では、ネットワーク品質としてスループットを用いているが、これは一例であり、ネットワーク品質として、スループット以外の指標を用いてもよい。また、本実施の形態では、スループット推定に基づくアプリケーション制御の例として、動画配信アプリケーションにおける画質選択制御を取り上げているが、スループット推定に基づくアプリケーション制御は動画配信アプリケーションにおける画質選択制御に限られるわけではない。例えば、本実施の形態のスループット推定機能は、Webや音声通話等のアプリケーション制御に対しても適用することができるし、その他のアプリケーション制御にも適用することができる。
【００１２】
図１は、本実施の形態において配信サーバに用意（格納）されている動画コンテンツの例を説明するための図である。図１に示すように、配信サーバにおいては、動画コンテンツ毎に複数ビットレートの動画データが用意されており、各ビットレートの動画データはチャンクに分割されている。動画再生側は、配信サーバから、特定のビットレートの動画データをチャンク毎に取得可能である。なお、本実施の形態では、ビットレートの種類はコンテンツによっては変化しないものとする。
【００１３】
（装置構成例）
図２に、本実施の形態におけるアプリケーション制御装置の全体構成図を示す。図２に示すように、本実施の形態におけるアプリケーション制御装置は、動画再生部１００とスループット計算部２００を有する。なお、アプリケーション制御装置は、図示しない配信サーバとネットワークを介して通信可能であるものとする。
【００１４】
＜動画再生部１００の構成＞
図２に示すとおり、動画再生部１００は、動画の再生を行う動画再生ユニット１０１、スループット計算部２００から得られるスループットの情報に基づいて画質の選択を行う画質選択ユニット１０２、通信環境とその時のスループットをメモリ等の記憶手段に記録してスループット計算部２００に送信する記録ユニット１０３を有する。
【００１５】
＜スループット計算部２００の構成＞
図３に、スループット計算部２００の詳細な構成を示す。図３に示すとおり、スループット計算部２００は、スループットテーブル２０１、通信環境クラスタテーブル２０２、クラスタスループットテーブル２０３、スループット応答ユニット２０４、クラスタ計算ユニット２０５、スループット計算ユニット２０６を有する。各機能部の概要は以下のとおりである。
【００１６】
スループットテーブル２０１は、過去のスループットデータ（通信環境の情報とスループットの値とを対応付けたデータ）を蓄積するテーブルである。通信環境の情報とは、例えば、キャリア、セルID、時間帯、及び祝日フラグからなる情報である。なお、通信環境として「キャリア、セルID、時間帯、及び祝日フラグ」を使用することは例であり、これらのうちいずれかの情報がなくてもよいし、別の情報が加えられてもよいし、これら以外の情報の組み合わせであってもよい。
【００１７】
通信環境クラスタテーブル２０２は、どの通信環境が、どのクラスタに属するかということを示す情報を格納するテーブルである。クラスタスループットテーブル２０３は、各クラスタに対するスループットの情報を格納する。スループット応答ユニット２０４は、例えば動画再生部１００から通信環境の情報（例：セルID、時間帯、祝日平日フラグ）を受け取って、その通信環境における予測スループットを応答する。
【００１８】
クラスタ計算ユニット２０５は、一定時間おきにタイマーで起動され、通信環境クラスタテーブル２０２を更新する。スループット計算ユニット２０６は、クラスタ計算ユニット２０５によって更新されたクラスタ情報を用いて、クラスタスループットテーブル２０３を更新する。
【００１９】
＜テーブルの内容例＞
図４に、スループットテーブル２０１に格納される値の例を示す。図４に示す例では、通信環境としての「時間帯、祝日フラグ、セルＩＤ」とスループットの値とがスループットデータとして格納されている。図４における"時間帯"の列は、動画再生部１００においてスループットを計測した時の時間帯を表しており、"祝日フラグ"の列は、土日もしくは祝日の時に1となり、それ以外の時には0が格納される。例えば2016/2/11(木・祝) 10:10:10、セルID=2fe4faのスループットが1243[kbps]であった場合には、データ例の３行目にあるデータが格納されることになる。
【００２０】
図５に、通信環境クラスタテーブル２０２に格納される値の例を示す。図５に示す例では、通信環境としての「時間帯、祝日フラグ、セルＩＤ」とクラスタとが格納されている。
【００２１】
図６は、クラスタスループットテーブル２０３に格納される値の例を示している。図６のテーブルにおいて、"スループット平均"、"スループット分散"列はそれぞれ、該当クラスタに属するスループットデータについての過去のスループットの平均値、分散を表しており、"0〜"は0[kbps]以上のスループットデータ数、"100〜"は、100[kbps]以上のスループットデータ数を表す。"500〜"、"1000〜"も同様である。いくつ以上の値について集計するかは、本実施の形態に係るサービスを提供する動画配信事業者が決定することができるが、本実施の形態では、用意された動画コンテンツのビットレート毎に閾値を設定し、集計しているものとする。
【００２２】
＜ハードウェア構成等＞
本実施の形態に係るアプリケーション制御装置は、例えば、１つ又は複数のコンピュータに、本実施の形態で説明する処理内容を記述したプログラムを実行させることにより実現可能である。すなわち、アプリケーション制御装置が有する機能は、当該コンピュータに内蔵されるＣＰＵやメモリ、ハードディスクなどのハードウェア資源を用いて、アプリケーション制御装置で実施される処理に対応するプログラムを実行することによって実現することが可能である。また、上記プログラムは、コンピュータが読み取り可能な記録媒体（可搬メモリ等）に記録して、保存したり、配布したりすることが可能である。また、上記プログラムをインターネットや電子メールなど、ネットワークを通して提供することも可能である。
【００２３】
なお、アプリケーション制御装置が、スループット計算部２００のみを含み、動画再生部１００を他の装置に備える構成とすることも可能である。その場合でも、アプリケーション制御装置は、コンピュータにプログラムを実行させることにより実現することができる。
【００２４】
図７は、本実施の形態におけるアプリケーション制御装置のハードウェア構成例を示す図である。図７のアプリケーション制御装置は、それぞれバスＢで相互に接続されているドライブ装置１５０、補助記憶装置１５２、メモリ装置１５３、ＣＰＵ１５４、インタフェース装置１５５、表示装置１５６、及び入力装置１５７等を有する。
【００２５】
アプリケーション制御装置での処理を実現するプログラムは、例えば、ＣＤ−ＲＯＭ又はメモリカード等の記録媒体１５１によって提供される。プログラムを記憶した記録媒体１５１がドライブ装置１５０にセットされると、プログラムが記録媒体１５１からドライブ装置１５０を介して補助記憶装置１５２にインストールされる。但し、プログラムのインストールは必ずしも記録媒体１５１より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置１５２は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
【００２６】
メモリ装置１５３は、プログラムの起動指示があった場合に、補助記憶装置１５２からプログラムを読み出して格納する。ＣＰＵ１５４は、メモリ装置１５３に格納されたプログラムに従ってアプリケーション制御装置に係る機能を実現する。インタフェース装置１５５は、ネットワークに接続するためのインタフェースとして用いられる。表示装置１５６はプログラムによるＧＵＩ（Graphical User Interface）等を表示する。入力装置１５７はキーボード及びマウス、ボタン、又はタッチパネル等で構成され、様々な操作指示を入力させるために用いられる。
【００２７】
以下、アプリケーション制御装置の各部における詳細な動作例を説明する。
【００２８】
（詳細動作例）
＜動画再生部１００の動作例＞
動画再生部１００は、ユーザからの入力によって起動され、動画の再生、画質の選択、スループットデータの記録、記録したデータの送信を行う。図８のフローチャートに示す手順に沿って、動画再生部１００の動作例を説明する。なお、以下で説明するステップＳ１０１の動作（動画データに関する情報が書かれたファイルの取得動作）については、例えば、動画再生ユニット１０１が、通信環境において変化し得る情報（セルＩＤ，時間帯等）を定期的にチェックして、変化のあったタイミングで実行する。なお、変化のあったタイミングで実行することは例であり、変化の有無にかかわらずに定期的に実行してもよい。
【００２９】
ステップＳ１０１の動作が実行される場合、それ以降の動作も実行される。上記の変化がないタイミングにおいては、ステップＳ１０３で選択された画質にてステップＳ１０４（チャンク要求、再生）、Ｓ１０５（スループット計算）の動作が順次実行され、視聴終了後にステップＳ１０６（スループットデータ送信）の動作が実行される。
【００３０】
ステップＳ１０１）まず、動画再生ユニット１０１が、図示しない配信サーバから、動画データに関する情報が書かれたファイル(例：MPD、m3u8等)を取得する。動画データに関する情報は、例えば、チャンク毎のURL、及びチャンクのビットレートである。
【００３１】
ステップＳ１０２）次に、動画再生ユニット１０１は、画質選択ユニット１０２に画質選択要求を送信することにより画質（つまり、ビットレート）の選択を要求する。当該画質選択要求には、現在、動画再生部１００が置かれている通信環境の情報（時間帯、祝日フラグ、セルＩＤ等）が含まれている。通信環境の情報は、例えば、動画再生ユニット１０１が取得してもよいし、アプリケーション制御装置における図示しない機能部（例：ＯＳの通信環境取得用のＡＰＩ）が取得してもよいし、他の手段により取得してもよい。また、通信環境の情報をユーザが入力することとしてもよい。
【００３２】
ステップＳ１０３）ステップＳ１０３では、画質選択ユニット１０２が、以下の手順に従って画質を選択する。
【００３３】
（ア）動画の再生開始直後の通信環境もしくは、直前の通信環境（上記Ｓ１０２の前回のＳ１０２で取得した通信環境）と比較して現在の通信環境（上記Ｓ１０２で取得した通信環境）が変化しているかどうかを判断する。
【００３４】
（イ）通信環境が変化していない場合には、直前のスループットを超えない最大の画質を選択し、ステップＳ１０４に移る。なお、後述するように、動画再生ユニット１０１は、チャンク受信の度に、もしくは一定時間おきに動画データのスループットを測定しており、上記「直前のスループット」とは、当該（イ）の処理の時点に最も近い過去のスループットのことである。
【００３５】
（ウ）通信環境が変化している場合には、スループット計算部２００に通信環境を含むスループット要求を送信し、スループット計算部２００から図６の各行に示すようなスループットのデータ（閾値毎のデータ数等）を取得する。なお、本例のように、通信環境変化のタイミングでステップＳ１０１、Ｓ１０２、...を実行することとする場合には、（ア）から（ウ）に進むことになる。
【００３６】
（エ）閾値毎のデータ数からスループットの上位95%値を計算し、その値を超えない最大の画質を選択し、ステップＳ１０４に移る。一例として、図６の１行目のスループットのデータがスループット計算部２００から得られたとした場合、"1000〜"が上位95%値に該当するから、画質選択ユニット１０２は、1000kbpsを超えない最大の画質を選択する。
【００３７】
ステップＳ１０４）動画再生ユニット１０１は、ステップＳ１０３で選択された画質のチャンクを配信サーバに随時要求し、受信し次第再生する。
【００３８】
ステップＳ１０５）動画再生ユニット１０１は、チャンクを受信する度に、もしくは一定時間おきにスループットを計算（測定）し、当該スループットを記録ユニット１０３に送信する。記録ユニット１０３では、当該スループットを現在の通信環境の情報とともにメモリ等の記憶手段に記録する。
【００３９】
ステップＳ１０６）記録ユニット１０３は、動画コンテンツの視聴終了後に、蓄積したスループットデータ（通信環境とスループットの値を対応付けた情報、例：図４に示す情報）をスループット計算部２００に送信する。
【００４０】
ここで、ステップＳ１０３の（エ）における%点は、必ずしも95%である必要はなく、制御を行う主体（通信事業者、動画配信事業者等）が自由に設定してよいものとする。
【００４１】
次に、スループット計算部２００の動作について説明する。スループット計算部２００は、例えば動画再生部１００によって起動され、通信環境の情報を元に、スループットの情報（上記のステップＳ１０３の（ウ）で返される情報）を応答する機能を持つ。以降、クラスタ更新、スループット更新、スループット応答それぞれの動作について説明する。
【００４２】
＜スループット計算部２００におけるクラスタ更新の動作例＞
クラスタ更新は、スループット計算部２００の中のクラスタ計算ユニット２０５で行われる。ここでは、各通信環境を、過去のスループット情報に応じていくつかのクラスタに分類し、通信環境クラスタテーブル２０２（例：図５）を更新する。クラスタ更新は、タイマーなどを用いて、例えば１日おきに行う。図９のフローチャートに示す手順に沿って、クラスタ計算ユニット２０５が実行するクラスタ更新の動作例を説明する。
【００４３】
ステップＳ２０１）スループットテーブル２０１（例：図４）から通信環境（例：時間帯，祝日フラグ，セルIDの組）毎にスループットデータを収集する。
【００４４】
ステップＳ２０２）次に、まずは、各通信環境をそれぞれクラスタとする。本実施の形態では、時間帯，祝日フラグ，セルIDの組を要素として、１つ以上の要素を持つ集合をクラスタと呼ぶ。例えば、１つの要素を（時間帯，祝日フラグ，セルID）と表すものとすると、{（10,0,2fe4fa）}と{（10,0,2fe4fa），（10,1,2fe4fa）}はいずれもクラスタの例である。各通信環境をそれぞれクラスタとするステップＳ２０２においては、図４の例の場合、{（10,0,2fe4fa）}、{（10,1,2fe4fa）}、{（11,0,abc324）}の３つのクラスタが生成される。
【００４５】
ステップＳ２０３）続いて、クラスタ毎に、スループットの値を100[kbps]単位で集計し、正規化することで、頻度分布P_i (x)を作成する。ここでiは、i番目のクラスタを表す。ここでは、一例として、ｘ（単位は[kbps]）が"0〜99"、"100〜199"、"200〜299"、...．．、のような順で、例えば、ある１つのクラスタについて、"0〜99"は３個、"100〜199"は１０個、"200〜299"は５個、といった頻度分布が得られる。
【００４６】
ステップＳ２０４）全てのクラスタiについて、クラスタj≠iとのカルバック・ライブラー情報量DKL (P_i ||P_j)を計算する。これをクラスタ間距離と定義する。DKL (P ||Q)は以下の式で定義される。カルバック・ライブラー情報量は頻度分布間の類似度の例である。カルバック・ライブラー情報量が小さいことは、頻度分布間の類似度が大きいことに相当する。
【００４７】
【数１】
0006533487.tif 000002
ステップＳ２０５）次に、ステップＳ２０４で得られた全てのクラスタiについてのクラスタj≠iとの間のクラスタ間距離のうち、クラスタ間距離が最も小さい２つのクラスタを併合する。例えば、１つの要素を（時間帯，祝日フラグ，セルID）と表すものとし、クラスタ1を{（10,0,2fe4fa）}、クラスタ2を{（10,1,2fe4fa），（11,0,abc324）}とした場合、これら2つのクラスタを併合したクラスタは{（10,0,2fe4fa），（10,1,2fe4fa）（11,0,abc324）}となる。なお、クラスタ間距離が小さいことはクラスタ間の類似度が大きいことに相当する。
【００４８】
ステップＳ２０６）各クラスタに属するスループットの値の数をカウントし、データ数が閾値Th未満となっているクラスタが１つ以上ある場合には、ステップＳ２０３に戻る。ただし、クラスタ数が1の場合にはステップＳ２０７を実行して終了する。クラスタに属するスループットの値の数について、例えば、図４の例で、クラスタ1を{（10,0,2fe4fa）}とした場合に、クラスタ1に属するスループットの値の数は２である。
【００４９】
ステップＳ２０７）得られた結果から、通信環境とクラスタとの対応関係を通信環境クラスタテーブル２０２（例：図５）に格納する。
【００５０】
上記のクラスタ更新手順において、閾値Thは、予測を行う主体（携帯電話事業者など）が自由に設定することができる。また、ステップＳ２０３において頻度分布を作成する際、集計する幅は100[kbps]に限ったものではなく、任意の幅を設定してもよい。さらに、ステップＳ２０４のクラスタ間距離（つまり、類似度）は、カルバック・ライブラー情報量に限ったものではなく、例えば、各クラスタに属するスループットの値の平均値同士の差分等を用いてもよい。この場合、ステップＳ２０５では、クラスタ間距離として、当該差分の絶対値を使用し、当該差分の絶対値が最も小さい２つのクラスタを併合する。加えて、ステップＳ２０６は、"データ数が閾値Th以上となっているクラスタを取り除き、ステップＳ２０３に戻る"としてもよい。
【００５１】
＜スループット計算部２００におけるスループット計算の動作例＞
スループット計算部２００におけるスループット計算の動作例を説明する。スループット計算は、スループット計算ユニット２０６で行われる。この処理は、前述のクラスタ更新が行われる度に行う。具体的な手順を、図１０のフローチャートの手順に沿って説明する。
【００５２】
ステップＳ３０１）クラスタ毎にスループットの値を収集する。
【００５３】
ステップＳ３０２）クラスタ毎に、収集したスループットの値の平均及び分散を計算する。
【００５４】
ステップＳ３０３）クラスタ毎に、予め指定された閾値(図６の例では0、100、500、1000[kbps])以上の値を閾値毎に集計する。閾値の設定方法は特定の方法に限定されないが、本実施の形態では、閾値を動画データのビットレートに応じて設定する。例えば、動画データのビットレートが100、500、1000であれば、閾値を100、500、1000と設定する。
【００５５】
ステップＳ３０４）計算結果をクラスタスループットテーブル２０３（例：図６）に格納する。
【００５６】
上記のステップＳ３０２において、平均に変えて、中央値を計算したり、任意の%点をとる計算を適用してもよい。
【００５７】
＜スループット計算部２００におけるスループット応答の動作例＞
次に、スループット計算部２００におけるスループット応答の動作例を説明する。スループット応答は、スループット要求（通信環境の情報を含む）を受信したスループット応答ユニット２０４により実行される。具体的な手順を、図１１のフローチャートの手順に沿って説明する。
【００５８】
ステップＳ４０１）通信環境クラスタテーブル２０２に問い合わせを行うことで、スループット要求に係る通信環境のクラスタを得る。
【００５９】
ステップＳ４０２）クラスタスループットテーブル２０３に問い合わせを行うことで、ステップＳ４０１で得たクラスタに該当するスループット情報（図６の各行に示す値）を得る。
【００６０】
ステップＳ４０３）問合せを受けた通信環境に対応するスループット情報を、問い合わせ元に応答する。
【００６１】
以上、説明したように、本実施の形態では、通信環境をスループットの類似度に基づいてクラスタリングし、同じクラスタ内のスループットを利用することで、当該クラスタに属する通信環境のスループットの予測を行うことを可能としている。さらに、こうして得られたスループット予測結果を利用して、アプリケーションの制御を行うことで、アプリケーション利用時の品質を改善させることが可能となる。すなわち、大量のデータを集めることなく、従来よりも高精度なスループット予測が可能となり、よりQoEの高いアプリケーション制御が可能となる。
【００６２】
（実施の形態のまとめ）
以上、説明したように、本実施の形態では、通信環境とネットワーク品質とを対応付けて格納するネットワーク品質格納手段と、前記ネットワーク品質に関する通信環境間の類似度に基づいて、通信環境をクラスタリングするクラスタ計算手段と、前記クラスタ計算手段で得られたクラスタ毎に、ネットワーク品質の情報を集計するネットワーク品質計算手段と、を備えることを特徴とするアプリケーション制御装置が提供される。
【００６３】
本実施の形態で説明したスループットテーブル２０１は、ネットワーク品質格納手段の例であり、クラスタ計算ユニット２０５は、クラスタ計算手段の例であり、スループット計算ユニット２０６は、ネットワーク品質計算手段の例である。
【００６４】
前記類似度の情報として、例えば、各クラスタにおける前記ネットワーク品質の頻度分布間のカルバック・ライブラー情報量、又は、各クラスタにおける前記ネットワーク品質の平均値の差分を用いることができる。
【００６５】
前記クラスタ計算手段は、例えば、前記類似度が最も大きい２クラスタを逐次的に併合していき、クラスタ内に属するネットワーク品質のデータ数に基づいてクラスタを決定する。
【００６６】
また、前記ネットワーク品質計算手段は、例えば、所定の閾値毎に、当該閾値以上となるネットワーク品質の値の個数を前記クラスタ毎に集計する。
【００６７】
前記アプリケーション制御装置は、動画再生手段を更に備えてもよく、前記動画再生手段は、前記ネットワーク品質計算手段により集計された、当該動画再生手段の通信環境が属するクラスタに対応するネットワーク品質の情報に基づいて、配信サーバに要求する動画のビットレートを選択することとしてもよい。本実施の形態で説明した動画再生部１００は、動画再生手段の例である。
【００６８】
以上、本実施の形態について説明したが、本発明はかかる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００６９】
１００    動画再生部
１０１    動画再生ユニット
１０２    画質選択ユニット
１０３    記録ユニット
２００    スループット計算部
２０１    スループットテーブル
２０２    通信環境クラスタテーブル
２０３    クラスタスループットテーブル
２０４    スループット応答ユニット
２０５    クラスタ計算ユニット
２０６    スループット計算ユニット
【図１】
0006533487.tif 000003
【図２】
0006533487.tif 000004
【図３】
0006533487.tif 000005
【図４】
0006533487.tif 000006
【図５】
0006533487.tif 000007
【図６】
0006533487.tif 000008
【図７】
0006533487.tif 000009
【図８】
0006533487.tif 000010
【図９】
0006533487.tif 000011
【図１０】
0006533487.tif 000012
【図１１】
0006533487.tif 000013