(57)【要約】【課題】確保できる通信帯域を正確に予測することのできる端末装置および帯域予測装置を提供する。【解決手段】端末装置が備える受信部は、外部の配信サーバー装置から、所定の通信帯域に応じたコンテンツファイルを受信する。データ整形部は、前記受信部が前記コンテンツファイルを受信する際の状況を表す帯域予測用データを整形する。データ送信部は、前記データ整形部が整形した帯域予測用データを外部の帯域予測装置に送信する。帯域予測受信部は、前記データ送信部が送信した帯域予測用データに対応して、帯域予測値データを受信する。帯域制御部は、前記帯域予測受信部が受信した前記帯域予測値データに基づいて、前記受信部が受信する前記コンテンツファイルの前記通信帯域を制御する。【選択図】図２
2019220839.tif 000002
【特許請求の範囲】
【請求項１】
外部の配信サーバー装置から、所定の通信帯域に応じたコンテンツファイルを受信する受信部と、
前記受信部が前記コンテンツファイルを受信する際の状況を表す帯域予測用データを整形するデータ整形部と、
前記データ整形部が整形した帯域予測用データを外部の帯域予測装置に送信するデータ送信部と、
前記データ送信部が送信した帯域予測用データに対応して、帯域予測値データを受信する帯域予測受信部と、
前記帯域予測受信部が受信した前記帯域予測値データに基づいて、前記受信部が受信する前記コンテンツファイルの前記通信帯域を制御する帯域制御部と、
を具備する端末装置。
【請求項２】
前記受信部が前記コンテンツファイルを受信する際の通信帯域を計測する帯域計測部、
をさらに具備し、
前記データ整形部は、前記帯域計測部が計測した前記通信帯域の計測値を含む前記帯域予測用データを整形する、
請求項１に記載の端末装置。
【請求項３】
前記受信部が前記コンテンツファイルを受信する際の受信用バッファーの空き領域の量を表す空きバッファー量を計測するバッファー量計測部、
をさらに具備し、
前記データ整形部は、前記バッファー量計測部が計測した前記空きバッファー量の値を含む前記帯域予測用データを整形する、
請求項１または２に記載の端末装置。
【請求項４】
前記受信部が前記コンテンツファイルを受信するための通信ネットワーク接続の種別を管理するネットワーク接続管理部、
をさらに具備し、
前記データ整形部は、前記ネットワーク接続管理部が管理する現在の通信ネットワーク接続の種別を表す値を含む前記帯域予測用データを整形する、
請求項１から３までのいずれか一項に記載の端末装置。
【請求項５】
端末装置がコンテンツファイルを受信する際の状況を表す帯域予測用データと、前記帯域予測用データが表す状況において前記端末装置が実際に前記コンテンツファイルを受信したときに計測された通信帯域の値との関係を予め学習して得られたモデルを記憶するモデル記憶部と、
端末装置から前記帯域予測用データを受信した際に、受信した前記帯域予測用データと、前記モデル記憶部が記憶する前記モデルとに基づいて、通信帯域の値を予測する予測部と、
を具備する帯域予測装置。
【請求項６】
前記予測部は、前記端末装置から受信した前記帯域予測用データと、当該帯域予測用データが表す状況において前記端末装置が実際に前記コンテンツファイルを受信したときに計測された前記通信帯域の値とを用いた学習処理を行うことによって、前記モデル記憶部が記憶する前記モデルを更新する、
請求項５に記載の帯域予測装置。
【請求項７】
コンピューターを、
外部の配信サーバー装置から、所定の通信帯域に応じたコンテンツファイルを受信する受信部と、
前記受信部が前記コンテンツファイルを受信する際の状況を表す帯域予測用データを整形するデータ整形部と、
前記データ整形部が整形した帯域予測用データを外部の帯域予測装置に送信するデータ送信部と、
前記データ送信部が送信した帯域予測用データに対応して、帯域予測値データを受信する帯域予測受信部と、
前記帯域予測受信部が受信した前記帯域予測値データに基づいて、前記受信部が受信する前記コンテンツファイルの前記通信帯域を制御する帯域制御部と、
を具備する端末装置として機能させるためのプログラム。
【請求項８】
コンピューターを、
端末装置がコンテンツファイルを受信する際の状況を表す帯域予測用データと、前記帯域予測用データが表す状況において前記端末装置が実際に前記コンテンツファイルを受信したときに計測された通信帯域の値との関係を予め学習して得られたモデルを記憶するモデル記憶部と、
端末装置から前記帯域予測用データを受信した際に、受信した前記帯域予測用データと、前記モデル記憶部が記憶する前記モデルとに基づいて、通信帯域の値を予測する予測部と、
を具備する帯域予測装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、端末装置、帯域予測装置、およびプログラムに関する。
【背景技術】
【０００２】
インターネットを用いて動画を配信する技術の一つとして、ＨＴＴＰプロトコルによる通信を用い、且つ、動画を視聴する側であるクライアント装置が、通信回線の混雑状況に応じたビットレートで動画を受信する方式がある。この方式は、回線の混雑状況に応じて適応的にビットレート選択を行うものであり、ＨＡＳ（ＨＴＴＰ  Ａｄａｐｔｉｖｅ  Ｓｔｒｅａｍｉｎｇ）と呼ばれる。ＨＡＳでは、配信サーバー装置側が、符号化方式や画像サイズ（縦および横の画素数）の異なる、複数種類の動画を用意する。そして、配信サーバー装置は、それら複数の動画の再生時刻が相互に同期するようにしながら、それらの動画のそれぞれを、数秒から数十秒といった時間長の複数の時間区間（この時間区間をセグメントとも呼ぶ）に分割しておく。セグメントに分割された動画ファイルのそれぞれは「チャンク」（chunk）とも呼ばれる。
【０００３】
クライアント装置は、ＨＴＴＰで配信される動画ファイル（チャンク）を順次ダウンロードするとともに、ダウンロードしたそれらのチャンクを順次つなげて再生する。これにより、視聴者は、動画を視聴することができる。ＨＡＳでは、このとき、クライアント装置が、通信回線の混雑状況を計測して、ダウンロードするチャンクを動的に（適応的に）変更することができる。これにより、クライアント装置は、通信回線の混雑状況に応じて、動画ファイルを安定的に受信し、再生することができる。
【０００４】
なお、ＨＡＳとして、ＭＰＥＧ−ＤＡＳＨ（ＭＰＥＧ−Ｄｙｎａｍｉｃ  Ａｄａｐｔｉｖｅ  Ｓｔｒｅａｍｉｎｇ  ｏｖｅｒ  ＨＴＴＰ）、ＨＬＳ（ＨＴＴＰ  Ｌｉｖｅ  Ｓｔｒｅａｍｉｎｇ）などの規格が制定されている。
【０００５】
特許文献１には、クライアント装置等がサーバー装置からＨＴＴＰアダプティブストリーミング動画を受信する方法が記載されている。その方法によると、クライアント装置は、サーバー装置から動画のチャンクを受信すると、サーバー装置からクライアント装置へのその動画のチャンクの伝送のための現在の伝送速度を決定し、期待される将来の伝送速度に関係する統計情報を、現在の伝送速度の関数として取得し、前記統計情報から目標伝送速度を導出し、導出された目標伝送速度に従って後続チャンクを要求する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特表２０１６−５０６６４４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
動画のストリーミング配信システムにおいて、なるべく高画質の動画を配信することが重要である。しかしながら、高画質の動画を配信しようとすると、回線の輻輳を招き、動画のダウンロード速度が動画の再生速度より遅くなり、映像バッファーが枯渇して再生がストップする可能性がある。つまり、受信する側のクライアント装置にとっては、なるべく高画質の動画を受信しつつ、バッファーが枯渇しないように安定的に受信することが求められる。安定して受信するためには、次のチャンクをダウンロードする際に確保できる通信帯域をなるべく正確に予測することで、適切なビットレートの動画を取得することが必要となる。即ち、通信帯域の予測は重要である。
【０００８】
しかしながら、従来技術では、伝送速度の予測精度が良くないという問題があった。その要因の一つは、特許文献１等に開示される従来技術による方法では、過去数チャンク分の動画をダウンロードした際のスループットから計算した単純な統計情報のみに基づいた予測を行っていたことなどにある。
【０００９】
本発明は、上記の課題認識に基づいて行なわれたものであり、確保できる通信帯域を正確に予測することのできる端末装置、帯域予測装置、およびプログラムを提供しようとするものである。
【課題を解決するための手段】
【００１０】
［１］上記の課題を解決するため、本発明の一態様による端末装置は、外部の配信サーバー装置から、所定の通信帯域に応じたコンテンツファイルを受信する受信部と、前記受信部が前記コンテンツファイルを受信する際の状況を表す帯域予測用データを整形するデータ整形部と、前記データ整形部が整形した帯域予測用データを外部の帯域予測装置に送信するデータ送信部と、前記データ送信部が送信した帯域予測用データに対応して、帯域予測値データを受信する帯域予測受信部と、前記帯域予測受信部が受信した前記帯域予測値データに基づいて、前記受信部が受信する前記コンテンツファイルの前記通信帯域を制御する帯域制御部と、を具備する。
【００１１】
［２］また、本発明の一態様は、上記の端末装置において、前記受信部が前記コンテンツファイルを受信する際の通信帯域を計測する帯域計測部、をさらに具備し、前記データ整形部は、前記帯域計測部が計測した前記通信帯域の計測値を含む前記帯域予測用データを整形する、ものである。
【００１２】
［３］また、本発明の一態様は、上記の端末装置において、前記受信部が前記コンテンツファイルを受信する際の受信用バッファーの空き領域の量を表す空きバッファー量を計測するバッファー量計測部、をさらに具備し、前記データ整形部は、前記バッファー量計測部が計測した前記空きバッファー量の値を含む前記帯域予測用データを整形する、ものである。
【００１３】
［４］また、本発明の一態様は、上記の端末装置において、前記受信部が前記コンテンツファイルを受信するための通信ネットワーク接続の種別を管理するネットワーク接続管理部、をさらに具備し、前記データ整形部は、前記ネットワーク接続管理部が管理する現在の通信ネットワーク接続の種別を表す値を含む前記帯域予測用データを整形する、ものである。
【００１４】
［５］また、本発明の一態様による帯域予測装置は、端末装置がコンテンツファイルを受信する際の状況を表す帯域予測用データと、前記帯域予測用データが表す状況において前記端末装置が実際に前記コンテンツファイルを受信したときに計測された通信帯域の値との関係を予め学習して得られたモデルを記憶するモデル記憶部と、端末装置から前記帯域予測用データを受信した際に、受信した前記帯域予測用データと、前記モデル記憶部が記憶する前記モデルとに基づいて、通信帯域の値を予測する予測部と、を具備するものである。
【００１５】
［６］また、本発明の一態様は、上記の帯域予測装置において、前記予測部は、前記端末装置から受信した前記帯域予測用データと、当該帯域予測用データが表す状況において前記端末装置が実際に前記コンテンツファイルを受信したときに計測された前記通信帯域の値とを用いた学習処理を行うことによって、前記モデル記憶部が記憶する前記モデルを更新する、ものである。
【００１６】
［７］また、本発明の一態様は、コンピューターを、外部の配信サーバー装置から、所定の通信帯域に応じたコンテンツファイルを受信する受信部と、前記受信部が前記コンテンツファイルを受信する際の状況を表す帯域予測用データを整形するデータ整形部と、前記データ整形部が整形した帯域予測用データを外部の帯域予測装置に送信するデータ送信部と、前記データ送信部が送信した帯域予測用データに対応して、帯域予測値データを受信する帯域予測受信部と、前記帯域予測受信部が受信した前記帯域予測値データに基づいて、前記受信部が受信する前記コンテンツファイルの前記通信帯域を制御する帯域制御部と、を具備する端末装置として機能させるためのプログラムである。
【００１７】
［８］また、本発明の一態様は、コンピューターを、端末装置がコンテンツファイルを受信する際の状況を表す帯域予測用データと、前記帯域予測用データが表す状況において前記端末装置が実際に前記コンテンツファイルを受信したときに計測された通信帯域の値との関係を予め学習して得られたモデルを記憶するモデル記憶部と、端末装置から前記帯域予測用データを受信した際に、受信した前記帯域予測用データと、前記モデル記憶部が記憶する前記モデルとに基づいて、通信帯域の値を予測する予測部と、を具備する帯域予測装置として機能させるためのプログラムである。
【発明の効果】
【００１８】
本発明によれば、端末装置は、コンテンツファイルを受信する際の状況を表す帯域予測用データを送信することにより、適切に予測された帯域予測値のデータを受信することができる。これにより、端末装置は、適切な通信帯域を用いて、コンテンツファイルを受信することが可能となる。また、帯域予測装置は、あらかじめ学習済みのモデルを用いて、帯域予測用データを基に、端末装置ごとに適切な帯域予測値を出力することが可能となる。
【図面の簡単な説明】
【００１９】
【図１】本発明の実施形態による配信システムの概略機能構成を示すブロック図である。
【図２】同実施形態による端末装置の概略機能構成を示す機能ブロック図である。
【図３】同実施形態による帯域予測サーバー装置の概略機能構成を示す機能ブロック図である。
【図４】同実施形態による端末装置のネットワークへの接続種別と、対応するラベル値との関係を示す概略図である。
【図５】同実施形態による端末装置におけるデータ整形部が帯域情報管理部から受け取る帯域情報の構成例を示す概略図である。
【図６】同実施形態における、帯域予測のための学習データの構築方法を説明するための概略図である。
【図７】同実施形態による帯域予測サーバー装置の帯域予測部が備えるニューラルネットワーク（帯域予測学習器）の構成を示す概略図である。
【図８】同実施形態による端末装置が、帯域予測サーバー装置から帯域予測値を取得し、得られた帯域予測値を用いて映像を受信する一連の処理の流れを示すフローチャートである。
【図９】同実施形態の第１変形例による映像配信の手順を示すシーケンス図である。
【発明を実施するための形態】
【００２０】
次に、本発明の一実施形態について、図面を参照しながら説明する。
本実施形態において、視聴者が映像コンテンツを視聴するための端末装置は、映像配信サーバー装置から映像のチャンクをダウンロードする。ここで、チャンクとは、時間方向の長さを有する映像や音声等のコンテンツにおいて、所定の長さの時間（例えば、数秒といった長さの時間）で区切ったコンテンツの断片である。端末装置は、チャンクをダウンロードした際のスループット（通信スループット、通信帯域）の数値情報を自装置内に時系列に保存する。端末装置は、ある時点で、その時点における最新のチャンクのダウンロードが完了し、次のセグメントのチャンクをダウンロードする際に、過去の複数セグメント分のスループットの情報と、その他の状況の情報とを、帯域予測サーバー装置に送信する。「その他の状況の情報」とは、例えば、端末装置が現在保有している使用可能な映像バッファーの量の情報と、端末装置が接続している通信ネットワークの種別を表す情報である。帯域予測サーバー装置は、端末装置から送られたこれらのデータを基に、自装置内に保持する帯域予測学習器を使用して帯域予測を行う。帯域予測サーバー装置は、帯域予測学習器によって予測した結果である帯域予測情報を、端末装置に返送する。端末装置は、帯域予測サーバー装置から受信した帯域予測情報に基づき、適切な種類（ビットレート）の、次のチャンクをダウンロードする。その前提として、映像配信サーバー装置は、複数の通信帯域に対応したコンテンツを予め準備しており、それらの中から、端末装置から要求される通信帯域に適したコンテンツのファイルを配信することができる。
【００２１】
端末装置は、コンテンツファイルを受信する際の状況データ（通信状況、自装置内の資源の空き状況、近い過去において実測された通信帯域の値など）を、所定の単位で、帯域予測サーバー装置に送信する。このデータを便宜的に帯域予測用データとも呼ぶ。帯域予測サーバー装置は、端末装置から受信した帯域予測用データに基づき、その端末装置のために通信帯域を予測する。そして、帯域予測サーバー装置は、帯域予測情報を端末装置に対して返送する。端末装置は、帯域予測サーバー装置から受信した帯域予測情報に基づいて、帯域を選択してコンテンツをダウンロードする。
上記の実測された通信帯域の値としては、例えば、所定の長さの時系列のチャンクの受信時に、端末装置が計測した値を用いる。帯域予測用データに含まれる通信帯域の値は、連続するチャンクに関して計測された値でもよいし、所定数のチャンクごとに計測された値でもよい。
【００２２】
上記の帯域予測サーバー装置は、システム内の通信ネットワーク上に複数存在することができる。端末装置は、適切な指標に基づいて、どの帯域予測サーバー装置に接続するかを、適宜選択したり変更したりすることができる。
【００２３】
帯域予測サーバー装置が持つ帯域予測学習器は、端末装置から送信されたデータを入力とし、その端末装置が次のチャンクを受信する際の通信スループットを予測する。本実施形態における帯域予測学習器は、ニューラルネットワーク（neural network）を用いて実現される。この帯域予測学習器は、複数の端末装置から、当該学習器への入力データと、その入力データに対応する正解データとの組を大量に収集し、収集したデータ（学習データ）により学習を行い、予測精度を上げる。ここで、正解データとは、端末装置が次のチャンクを受信した際のスループットである。また、複数の帯域予測サーバー装置が存在するとき、それらの帯域予測サーバー装置間で学習データを適宜共有してよい。
【００２４】
図１は、本実施形態による配信システムの概略構成を示すブロック図である。図示するように、配信システム１は、端末装置２−１，２−２，２−３，２−４，・・・と、帯域予測サーバー装置３−１，３−２と、映像配信サーバー装置４と、を含んで構成される。なお、帯域予測サーバー装置は、「帯域予測装置」とも呼ばれる。
これらの各装置は、例えば、電子回路を用いて実現される。また、各装置部は、必要に応じて、半導体メモリーや磁気ハードディスク装置などといった記憶手段を内部に備えてよい。また、各装置の機能を、コンピューターおよびソフトウェアによって実現するようにしてもよい。
【００２５】
端末装置２−１，２−２，２−３，２−４，・・・のそれぞれは、エンドユーザーが映像の配信を受信するために用いる装置である。なお、端末装置２−１，２−２，２−３，２−４，・・・を、総称して「端末装置２」と呼ぶことがある。この図においては４台の端末装置２のみを示しているが、実際には、端末装置２の台数は任意である。
帯域予測サーバー装置３−１，３−２は、直近の過去における映像の受信状況を表す情報（具体的には、通信帯域の実測値）を端末装置２から受け取り、その情報に基づいて、その端末装置２が近い未来において映像を受信する際の通信帯域を予測する。帯域予測サーバー装置３−１，３−２は、予測によってえら得た値を元の端末装置２に返す。なお、帯域予測サーバー装置３−１，３−２，・・・、総称して「帯域予測サーバー装置３」と呼ぶことがある。この図においては２台の帯域予測サーバー装置３のみを示しているが、実際には、帯域予測サーバー装置３の台数は任意である。
映像配信サーバー装置４は、端末装置２からの要求に基づいて、端末装置２に対して映像を配信する機能を有する。映像配信サーバー装置４は、ある映像コンテンツに関して、複数の異なる品質の映像ファイルを配信することができる。それらの映像ファイルのサイズ（単位時間当たりのバイト数等で表される）は、品質のレベルに応じて異なる。映像配信サーバー装置４は、端末装置２からの要求にしたがって、どの品質の映像ファイルを配信するかを決定する。
【００２６】
図１の構成を有する配信システム１は、全体として、次のように機能する。
映像配信サーバー装置４は、前述のＨＡＳの方式で、動画のストリーミング配信を行う。
端末装置２（端末装置２−１，２−２，２−３，２−４，・・・のいずれか。以下においても同様。）は、映像配信サーバー装置４にアクセスして、動画のチャンクをダウンロードし、自装置内で再生する。
このとき、端末装置２は、チャンクを、所定の時系列順にダウンロードする。
端末装置２は、チャンクをダウンロードする際に、帯域予測サーバー装置３（帯域予測サーバー装置３−１，３−２のいずれか。以下においても同様。）に対して、データを送信する。このデータは、端末装置２が過去のチャンクをダウンロードした際の帯域（実測値）や、その時点でその端末装置が保持している空き映像バッファー量や、その時点でその端末装置のネットワークへの接続の種別を表すラベル値（数値）を含む。このデータを「帯域予測用データ」とも呼ぶ。
帯域予測サーバー装置３は、端末装置２から受信した帯域予測用データに基づき、帯域予測値を求める。具体的には、帯域予測サーバー装置３は、帯域予測用データを、帯域予測サーバー装置３の内部に備える帯域予測学習器に入力し、帯域予測学習器からの出力として帯域予測値を得る。帯域予測サーバー装置３は、求められた帯域予測値を、帯域予測用データの送信元の端末装置２に対して返信する。
端末装置２は、帯域予測サーバー装置３から帯域予測値を受信し、その帯域予測値に基づいて、次にダウンロードするチャンクのビットレートを選択する。即ち、端末装置２は、複数の異なるファイルサイズを有するチャンクの中から、その帯域予測値に合ったチャンクをダウンロードするよう選択する。
【００２７】
図２は、端末装置２の概略機能構成を示す機能ブロック図である。図示するように、端末装置２は、映像受信部１１と、バッファー管理部１２と、映像復号部１３と、帯域計測部１４と、帯域情報管理部１５と、バッファー量計測部１６と、データ整形部１７と、データ送信部１８と、ネットワーク接続管理部１９と、帯域予測受信部２０と、帯域制御部２１とを含んで構成される。なお、映像受信部は、「受信部」とも呼ばれる。これら各部の機能は、例えば電子回路を用いて実現される。各部の機能は、次の通りである。
【００２８】
映像受信部１１は、外部の映像配信サーバー装置４から、所定の通信帯域に応じたコンテンツファイル（例えば、映像データ）を受信するものである。
バッファー管理部１２は、端末装置２が用いる通信用バッファー（特に、映像受信部１１がコンテンツファイルを受信するための受信バッファー）を管理する。
映像復号部１３は、映像受信部１１によって受信された映像データを、バッファー管理部１２が管理する受信バッファーから順次取り出し、復号する。
【００２９】
帯域計測部１４は、映像受信部１１がコンテンツファイルを受信する際の通信帯域を計測（実測）するものである。
帯域情報管理部１５は、帯域計測部１４によって計測された通信帯域の値の時系列を記憶し、管理する。
【００３０】
バッファー量計測部１６は、バッファー管理部１２によって管理されるバッファーの空き容量を計測する。特に、バッファー量計測部１６は、映像受信部１１がコンテンツファイルを受信する際の、受信用バッファーの空き領域の量を表す空きバッファー量を計測する。
【００３１】
データ整形部１７は、映像受信部１１がコンテンツファイルを受信する際の状況を表す帯域予測用データを整形し、データ送信部１８に渡す。
具体的には、データ整形部１７は、帯域計測部１４が計測した通信帯域の計測値を含む帯域予測用データを整形する。
また、データ整形部１７は、バッファー量計測部１６が計測した空きバッファー量の値を含む帯域予測用データを整形する。
また、データ整形部１７は、ネットワーク接続管理部１９が管理する現在の通信ネットワーク接続の種別を表す値を含む帯域予測用データを整形する。
なお、帯域予測用データが含む情報は、本実施形態で説明する形態以外のものであってもよい。
データ送信部１８は、データ整形部１７が整形した帯域予測用データを外部の帯域予測サーバー装置３に送信する。
【００３２】
ネットワーク接続管理部１９は、通信ネットワークの接続を管理する。特に、ネットワーク接続管理部１９は、映像受信部１１がコンテンツファイルを受信するための通信ネットワーク接続の種別を管理する。
【００３３】
帯域予測受信部２０は、データ送信部１８が送信した帯域予測用データに対応して、外部の帯域予測サーバー装置３から、帯域予測値データを受信する。帯域予測値データは、帯域予測サーバー装置３によって求められた通信帯域の予測値である。
帯域制御部２１は、帯域予測受信部２０が受信した帯域予測値データに基づいて、映像受信部１１が受信するコンテンツファイルについての通信帯域を制御する。つまり、帯域制御部２１の制御により、映像受信部１１は、帯域予測受信部２０が受信した帯域予測値データに適した通信帯域のコンテンツファイルを受信することとなる。
【００３４】
図３は、帯域予測サーバー装置３の概略機能構成を示す機能ブロック図である。図示するように、帯域予測サーバー装置３は、データ受信部３１と、帯域予測部３２と、帯域予測送信部３３とを含んで構成される。なお、帯域予測部は、「予測部」とも呼ばれる。これら各部の機能は、例えば電子回路を用いて実現される。各部の機能は、次の通りである。
【００３５】
データ受信部３１は、端末装置２から帯域予測用データを受信し、その帯域予測用データを帯域予測部３２に渡す。
帯域予測部３２は、渡された帯域予測用データに基づいて通信帯域の値を予測し、出力する。
帯域予測送信部３３は、帯域予測部３２によって予測された値（帯域予測値）を、端末装置２に対して返信する。
【００３６】
帯域予測部３２は、より具体的には、次に説明する通りの機能を有する。
帯域予測部３２は、端末装置２側から渡された情報をもとに、帯域予測学習器を利用して情報を送信してきた端末装置のための次の時点の通信帯域を予測する。
帯域予測部３２は、後述するように、機械学習機能を用いて実現される。また、帯域予測部３２は、後述するように、一例としてニューラルネットワークを用いて実現される。つまり、帯域予測部３２は、学習済みのモデルを記憶するモデル記憶部を有する。つまり、帯域予測部３２の機能を、次のように捉えることができる。即ち、モデル記憶部は、端末装置２がコンテンツファイルを受信する際の状況を表す帯域予測用データと、前記帯域予測用データが表す状況において端末装置２が実際にコンテンツファイルを受信したときに計測された通信帯域の値との関係を予め学習して得られたモデルを記憶する。言い換えれば、「帯域予測用データが表す状況において端末装置２が実際にコンテンツファイルを受信したときに計測された通信帯域の値」とは、帯域予測用データを前提としたときに端末装置２が実際にコンテンツファイルを受信したときに計測された通信帯域の値である。具体的には、モデル記憶部は、例えば上記モデルのパラメーター値の集合を記憶するようする。つまり、このモデルは、帯域予測用データとその状況における通信帯域の値との関係を記憶するものである。この学習済みのモデルは、帯域予測用データが入力されたときに、通信帯域の値の最尤値を出力することができる。つまり、帯域予測部３２は、端末装置２から帯域予測用データを受信した際に、受信した帯域予測用データと、上記のモデル記憶部が記憶するモデルとに基づいて、通信帯域の値を予測する。
なお、本実施形態における帯域予測部３２は、端末装置２から受信した帯域予測用データと、当該帯域予測用データが表す状況において端末装置２が実際に前記コンテンツファイルを受信したときに計測された前記通信帯域の値とを用いた学習処理を行うことによって、上記のモデル記憶部が記憶するモデルを更新することができる。
【００３７】
次に、システム全体の処理の流れについて説明する。
【００３８】
端末装置２（図２も参照）の映像受信部１１は、外部の、例えば映像配信サーバー装置４から、映像データをチャンクごとに受信する。映像受信部１１は、映像データ受信時の状況の情報を、帯域計測部１４に渡す。具体的には、映像受信部１１は、現在のチャンクを受信するために要した時間の長さと、受信したチャンクのファイルのサイズとを、帯域計測部１４に渡す。帯域計測部１４は、帯域計測部では映像受信部１１から渡された上記の情報を基に、そのチャンクをダウンロードした際の通信帯域を計算する。具体的には、帯域計測部１４は、チャンクのファイルのサイズ（情報量。単位は例えばビット（bit）あるいはバイト（byte））を、受信に要した時間（単位は例えば秒）で除算することにより、帯域（単位は、例えば、ビット毎秒（bit per second））を計算する。なお、例えば映像や音声と言ったコンテンツのデータのサイズに比べて、通信の制御のための制御情報のサイズは小さいため、オーバーヘッドのための通信帯域は無視できるほど小さい。帯域計測部１４は、算出された帯域の情報を、帯域情報管理部１５に渡す。帯域情報管理部１５は、帯域計測部１４によって算出された帯域の情報を時系列順に保存し、管理する。
【００３９】
バッファー管理部１２は、映像のファイルを少なくとも一時的に蓄積するための映像バッファーを持っている。バッファー管理部１２は、映像受信部１１が受信したチャンクのファイルを、動画の時系列順に上記の映像バッファーに書き込む。また、バッファー管理部１２は、動画を再生・表示するために、その映像バッファーからチャンクを順次読み出し、映像復号部１３に逐次渡す。映像復号部１３は、定められた再生時刻（提示時刻）に基づいて、バッファー管理部１２から受け取った映像のチャンクを復号し、得られた映像をディスプレイに表示する。なお、映像は、音声を含むものであってもよい。映像復号部１３は、音声をも復号し、スピーカー等から出力する。
【００４０】
バッファー量計測部１６は、バッファー管理部１２が持つ映像バッファーを監視するとともに、その映像バッファーの空き容量（残量）を計測する。具体的には、映像受信部１１が映像のチャンクをダウンロードし、バッファー管理部１２が映像バッファーに書き込んだ時点で、バッファー量計測部１６の空き容量を計測する。バッファー量計測部１６は、計測した空き容量の情報を、記憶手段に書き込み保存する。なお、バッファー量計測部１６が、映像バッファーの空き容量だけでなく、全体容量や使用中容量をも計測し、保存するようにしてもよい。通信バッファーが枯渇すると、通信（コンテンツの受信等）に待ちが発生する。したがって、本実施形態において、バッファーの空き容量の情報を通信帯域の予測に利用する。
【００４１】
ネットワーク接続管理部１９は、端末装置２が接続しているネットワークの種別を検知する。なお、ネットワークの種別については、後述する（図４も参照）。
【００４２】
データ整形部１７は、帯域情報管理部１５と、バッファー量計測部１６と、ネットワーク接続管理部１９とから情報を取得し、帯域予測用データを整形する。
具体的には、データ整形部１７は、まず帯域情報管理部１５から、過去のチャンクをダウンロードした際の帯域情報の時系列を取得する。つまりデータ整形部１７は、時系列上、最新のものからＴチャンク（Ｔは、正整数）分の帯域情報を、数値（帯域の値）のリストのデータとして取得する。なお、Ｔの値により、帯域を予測するために、どの程度過去のチャンクの受信時までの状況を使うかが決まる。Ｔの値は、予めシステム全体で適切に定めておくようにする。
なお、データ整形部１７がデータを整形する時点で、過去にダウンロードしたチャンク数がＴ未満である場合には、データ整形部１７は、取得可能なチャンク数分の帯域情報を取得したうえで、足りない分の帯域情報を埋める。例えば、データ整形部１７は、取得可能な最も過去の帯域情報の数値をコピーして、不足する帯域情報を埋める（図５も参照）。
次に、データ整形部１７は、バッファー量計測部１６から、その時点でバッファー管理部１２が使用可能な空き容量の情報（数値情報）を取得する。
さらに、データ整形部１７は、ネットワーク接続管理部１９から、その時点で端末装置２が接続しているネットワークの接続種別の情報を取得し、その接続種別に対応するラベル値を取得する。
【００４３】
データ整形部１７は、得られたこれら３種類の情報を、チャンクのダウンロードのタイミングと同期して更新する。つまり、映像受信部１１がチャンクのファイルを受信し、バッファー管理部１２がそのチャンクのファイルを映像バッファーに書き込み、バッファー量計測部１６が映像バッファーの空き容量を算出する都度、データ整形部１７が上述した３種類の情報を更新する。このようにして、データ整形部１７は、常に最新の状況に対応するデータを維持する。
【００４４】
そして、データ整形部１７は、映像受信部１１が次のチャンクのダウンロードを開始する前に、最新のデータをデータ送信部１８に渡す。データ送信部１８は、データ整形部１７から渡されたデータを、帯域予測用データとして、帯域予測サーバー装置３（図１における帯域予測サーバー装置３−１または３−２のいずれか）に対して送信する。
【００４５】
帯域予測サーバー装置３（図３も参照）のデータ受信部３１は、端末装置２から送信された帯域予測用データを受信する。データ受信部３１は、受信した帯域予測用データを、帯域予測部３２に渡す。帯域予測部３２は、受け取った帯域予測用データに基づき、送信元の端末装置２が次にダウンロードすべきチャンクのビットレート（帯域）を決定する。言い換えれば、帯域予測部３２は、適切な帯域を予測する。帯域予測部３２は、予測として得られたビットレート（帯域予測値）の情報を、帯域予測送信部３３に渡す。帯域予測送信部３３は、帯域予測部３２から渡された帯域予測値を、端末装置２側に送信する。
【００４６】
端末装置２（図２も参照）の帯域予測受信部２０は、上の帯域予測送信部３３から送信された帯域予測値を受信し、帯域制御部２１に渡す。帯域制御部２１は、帯域予測値の情報を映像受信部１１に渡すことにより、映像受信部１１が次に受信するチャンクの帯域を制御する。
【００４７】
図４は、端末装置２のネットワークへの接続種別と、接続種別に対応するラベル値との関係を示す概略図である。端末装置２のネットワークへの接続種別は、端末装置２が映像ファイルを受信する際の通信帯域に強く影響する要因である。図示するように、接続種別「有線接続」は、ラベル値「０」に対応する。また、接続種別「無線接続」は、ラベル値「１」に対応する。また、接続種別「３Ｇ携帯回線」は、ラベル値「２」に対応する。また、接続種別「４Ｇ接続回線」は、ラベル値「３」に対応する。なお、「３Ｇ」は、「3rd generation」の略であり、第３世代携帯電話システムを表す。また、「４Ｇ」は、「4th generation」の略であり、第４世代移動通信システムを表す。
【００４８】
なお、図４に示した接続種別とラベル値のペアの集合は単なる一例である。他の接続種別とラベル値とのペアを定義して用いるようにしてもよい。接続種別は、図４に例示したものより詳細に分類したものであってもよいし、より簡略化した分類によるものであってもよい。例えば、接続種別として、キャリア名や、ＩＳＰ名や、契約種別（例えば、回線速度の上限）といった接続種別に、ラベル値を対応させてもよい。
【００４９】
図５は、データ整形部１７が帯域情報管理部１５から受け取る帯域情報の構成例を示す概略図である。前述の通り、データ整形部１７は、過去に遡及してＴ個分のチャンクに対応する帯域情報を帯域情報管理部１５から受け取る（同図（Ａ）に示す場合）。ただし、端末装置２が既に受信しているチャンクの数がＴに満たない場合は、データ整形部１７は、受信した分だけのチャンクに対応する帯域情報を帯域情報管理部１５から受け取る（同図（Ｂ）に示す場合）。
【００５０】
同図（Ａ）に示す場合には、データ整形部１７は、Ｔ個の数値のリストを帯域情報管理部１５から受け取る。なお、本例において、数値の単位は、ビット毎秒（ｂｐｓ）である。代わりに、キロビット毎秒（ｋｂｐｓ）や、メガビット毎秒（Ｍｂｐｓ）などといった単位を用いてもよい。ここでは、データ整形部１７は、ｔは、受信済みの最新のチャンクに対応するタイミングを表す。（ｔ−１）は、ｔの１個前のチャンクに対応するタイミングを表す。以後同様に、（ｔ−Ｔ＋１）のタイミングにおけるチャンクまでの帯域情報を受け取る。図示する例では、タイミング（ｔ−Ｔ＋１）からｔまでの順（時刻の古い側から新しい側への順）に、それらの数値は、３１６４１０，３１１７３５，３２１４５５，・・・，２８８３２１，３００４５０である。
【００５１】
同図（Ｂ）に示す場合には、端末装置２は、まだ過去に（Ｔ−２）個のチャンクしか受信していない。即ち、タイミングｔ（最新のタイミング）から、順に遡って、タイミング（ｔ−Ｔ＋３）までは帯域情報が蓄積されており、データ整形部１７はそれら（Ｔ−２）個の数値のリストを受け取る。そして、タイミング（ｔ−Ｔ＋２）およびタイミング（ｔ−Ｔ＋１）の２件に関して、数値データは存在しない。この場合、前述の通り、データ整形部１７は、例えば、取得可能な最も過去の帯域情報の数値をコピーすることによって不足する帯域情報を埋める。同図（Ｂ）に示す例では、取得された最も過去の帯域情報の数値である３２１４５５（タイミング（ｔ−Ｔ＋３）における数値）を、データ整形部１７は、タイミング（ｔ−Ｔ＋２）およびタイミング（ｔ−Ｔ＋１）の欄にコピーして埋めている（同図（Ｂ２）に示す状態）。
【００５２】
なお、データ整形部１７は、他の方法によって不足する帯域情報のデータを埋めてもよいし、不足する帯域情報のデータを埋めずにあらかじめ決めた定数で置き換えるなどしてもよい。
【００５３】
次に、帯域予測サーバー装置３における学習データの構築方法について説明する。
図６は、帯域予測のための学習データの構築方法を説明するための概略図である。帯域予測サーバー装置３は、端末装置２から送信される帯域予測用データに基づいて帯域の予測を行うとともに、その帯域予測用データを蓄積して帯域予測のための学習データを構築する。同図（Ａ）および（Ｂ）は、帯域予測サーバー装置３が端末装置２から受信する帯域予測用データの構成を示す。同図（Ａ）は、時刻ｔにおける帯域予測用データを示す。また、同図（Ｂ）は、時刻（ｔ＋１）における帯域予測用データを示す。つまり、同図（Ｂ）に示すデータは、同図（Ａ）に示すデータの１回後に、端末装置２から帯域予測サーバー装置３に送信されるデータである。
【００５４】
同図（Ａ）に示すように、この帯域予測用データは、接続種別と、映像バッファー量（空き容量）と、帯域情報とを含んで構成される。より具体的には、同図（Ａ）に示す帯域予測用データにおいて、接続種別は、時刻ｔにおける出力種別のラベル値（これを、ｃ（ｔ）と表す）のデータである。また、映像バッファー量は、時刻ｔにおける映像バッファーの空き容量を表す数値（これを、ｂ（ｔ）と表す）のデータである。帯域情報は、その時点における最新のＴチャンク分の帯域を表す数値（これを、ｓ（ｔ−Ｔ＋１），ｓ（ｔ−Ｔ＋２），ｓ（ｔ−Ｔ＋３），・・・，ｓ（ｔ）と表す）のリストのデータである。
【００５５】
同図（Ｂ）に示す帯域予測用データは、同図（Ａ）に示す帯域予測用データと同一の形式を有し、同図（Ａ）に示した時点よりもタイミングが１回分進んだデータである。つまり、同図（Ｂ）に示す時刻（ｔ＋１）における帯域予測データにおいて、接続種別はｃ（ｔ＋１）であり、映像バッファー量（空き容量）はｂ（ｔ＋１）である。そして、帯域情報は、数値ｓ（ｔ−Ｔ＋２），ｓ（ｔ−Ｔ＋３），ｓ（ｔ−Ｔ＋４），・・・，ｓ（ｔ＋１）のリストのデータである。
【００５６】
帯域予測サーバー装置３は、このように、端末装置２ごとの、時系列の帯域予測用データを蓄積・保存する。そして、帯域予測サーバー装置３は、蓄積した帯域予測用データを学習データとして利用する。図６（Ｂ）に示す帯域情報のうち、最新の帯域情報であるｓ（ｔ＋１）は、時刻（ｔ＋１）におけるチャンクのファイルを受信した際に端末装置２側で実測した受信ビットレートである。つまり、このｓ（ｔ＋１）を、時刻ｔの帯域予測用データに対応する正解データと見なしてよい。即ち、同図（Ｃ）に示すように、同図（Ａ）に示すデータ（時刻ｔにおける、接続種別、映像バッファー量、帯域情報（Ｔチャンク分））と、同図（Ｂ）に示すデータの中の最新時点の帯域情報（ｓ（ｔ＋１））とを、あわせて、時刻ｔに関する正解付き学習データとする。
【００５７】
なお、配信システム１内に複数の帯域予測サーバー装置３が存在する場合、適宜、複数の帯域予測サーバー装置３間で上記の学習データを共有するようにしてもよい。なお、帯域予測サーバー装置３間で学習データを共有するための具体的な方法として、例えば、各装置が学習データを蓄えた共通のデータベースサーバーにアクセスするようにしたり、各装置間で定期的にデータを交換して同期を取ったりする。
【００５８】
また、配信システム１内に複数の帯域予測サーバー装置３が存在する場合、端末装置２は、適宜選択した帯域予測サーバー装置３に対して情報を送信し、帯域の予測を要求する。端末装置２は、例えば、帯域予測サーバー装置３との間の通信におけるＲＴＴ（ラウンドトリップタイム、往復遅延時間）を測定し、ＲＴＴの短い帯域予測サーバー装置３に対して帯域の予測を要求する。また、あるいは端末装置２は、例えば、帯域予測サーバー装置３からその稼働負荷状況を表す情報を取得し、低負荷の帯域予測サーバー装置３に対して帯域の予測を要求する。これらにより、端末装置２は、安定的に帯域予測データを取得することが可能となる。
【００５９】
図７は、帯域予測サーバー装置３の帯域予測部３２が備えるニューラルネットワーク（帯域予測学習器）の構成を示す概略図である。図示するように、このニューラルネットワークは、複数の入力ノードを持つ帯域情報入力層２０１と、正規化部２０２と、複数の正規化された帯域情報のノードを持つ正規化帯域情報層２０３と、ＲＮＮ（リカレントニューラルネットワーク）２０４と、全結合層２０５と、映像バッファー量入力ノード２１１と、ネットワーク接続種別入力ノード２１２とを含んで構成される。なお、ニューラルネットワーク自体は既存の技術を利用して実現することができる。
【００６０】
帯域情報入力層２０１は、Ｔ個の入力ノードを有する。帯域情報入力層２０１は、過去Ｔチャンク分の帯域情報を受け付ける。帯域予測部３２は、学習データから抽出した帯域情報を帯域情報入力層２０１に取り込む。帯域情報は、ビット毎秒（bit per second）を単位とする数値であり、最新のものから順に、ｓ（ｔ），ｓ（ｔ−１），・・・，ｓ（ｔ−Ｔ＋１）である。
【００６１】
正規化部２０２は、これらの帯域情報を正規化する。具体的には、正規化部２０２は、Ｔ個の数値ｓ（ｔ），ｓ（ｔ−１），・・・，ｓ（ｔ−Ｔ＋１）のそれぞれを、予め定められた固定値Ｍで除算し、その結果をｓ´（ｔ），ｓ´（ｔ−１），・・・，ｓ´（ｔ−Ｔ＋１）として出力する。ここで、値Ｍは、例えば、端末装置２がネットワークを介して映像コンテンツをダウンロードする際に達成し得る帯域の理論的最大値である。例えばネットワークを構築した際にＭの値を決定しておく。これにより、正規化部２０２は、帯域情報を、０以上且つ１以下の範囲の数値に正規化する。
正規化帯域情報層２０３は、Ｔ個のノードを有する層であり、正規化部２０２から出力されるＴ個の数値データを、それぞれ、ＲＮＮ（リカレントニューラルネットワーク）２０４に渡す。
【００６２】
ＲＮＮ・２０４は、時系列データである正規化された帯域情報ｓ´（ｔ），ｓ´（ｔ−１），・・・，ｓ´（ｔ−Ｔ＋１）に基づく分析を行う。一例として、ＬＳＴＭ（Ｌｏｎｇ  Ｓｈｏｒｔ−Ｔｅｒｍ  Ｍｅｍｏｒｙ）等といった学習モジュールを利用して、ＲＮＮ・２０４を実現することができる。ＲＮＮ・２０４からの出力は、全結合層２０５に引き渡される。
映像バッファー量入力ノード２１１は、学習データの一部である映像バッファー量（空き容量）の数値データを受け付ける。
ネットワーク接続種別入力ノード２１２は、学習データの一部であるネットワーク接続種別のデータ（数値によるラベルのデータ）を受け付ける。
【００６３】
全結合層２０５と、ＲＮＮ・２０４からの出力データと、映像バッファー量入力ノード２１１が受け付けた映像バッファー量のデータと、ネットワーク接続種別入力ノード２１２が受け付けたネットワーク接続種別のデータとを入力とする。全結合層２０５は、複数の階層を有するニューラルネットワークであり、１個の数値のデータを出力する。図示する例では全結合層２０５は入力層および出力層を合わせて３層を有する。しかし、全結合層における層の数は任意であり、必要に応じて増減する事ができる。各層のノードにおける活性化関数としては、例えば、広く知られているＲｅＬＵ（Ｒｅｃｔｉｆｉｅｄ  Ｌｉｎｅａｒ  Ｕｎｉｔｓ）関数を利用することができる。ただし、シグモイド関数など、他の関数を活性化関数として用いてもよい。
【００６４】
全結合層２０５の最終層（出力層）は単一のノードを有する。出力層からの出力値をシグモイド関数によって活性化することによって、最終的にこのニューラルネットワークは、０以上且つ１以下の値に変換する。この出力値を、正規化された帯域予測値Ｓ´ｐｒｅｄ（ｔ＋１）とする。そして、このニューラルネットワークは、正規化された帯域予測値Ｓ´ｐｒｅｄ（ｔ＋１）に上述の固定値Ｍを乗ずることによって、正味の帯域予測値Ｓｐｒｅｄ（ｔ＋１）を出力する。つまり、帯域予測部３２は、この正味の帯域予測値Ｓｐｒｅｄ（ｔ＋１）を出力する。そして、帯域予測サーバー装置３は、端末装置２に対して、この帯域予測値Ｓｐｒｅｄ（ｔ＋１）を返送する。
【００６５】
以上説明したように、帯域予測部３２は、直近過去のＴ個の帯域情報の数値だけではなく、端末装置２が接続されている通信ネットワークの種別や、端末装置２において映像を受信するためのバッファーの空き容量にも基づいた分析を行う。したがって、帯域予測部３２は、ネットワークの特性やバッファー空き容量にも応じた適切な予測を行うことができる。ここで、ネットワークの特性とは、例えば、ネットワーク自体が本来有する帯域や、有線通信回線に特有の帯域のパターンや、無線通信回線に特有の例えば端末装置２の移動に伴う帯域幅の変動等を含む。
【００６６】
帯域予測部３２が有するニューラルネットワークは、既に説明した学習データ（図６等を参照）を用いて予め学習を行っておくようにする。また、前回の学習後にさらに蓄積された学習データを用いて追加の学習を行うようにしてもよい。学習の手法としては、既存の技術によるバックプロパゲーション（誤差逆伝播法）を用いることができる。学習により、ノード（ニューロン）間の接続における重み等が最適化される。なお、バックプロパゲーションのための損失関数Ｌは学習器の予測値と正解データとの二乗誤差とし、接続係数の更新には勾配法の一つであるＡｄａｍ（Ａｄａｐｔｉｖｅ  Ｍｏｍｅｎｔ  Ｅｓｔｉｍａｔｉｏｎ）を用いる。ただし、損失関数、勾配法ともに他の利用可能な方法を使用してもよい。
【００６７】
なお、帯域予測部３２が有するニューラルネットワークの学習については、配信システム１を稼働させながら各端末装置２からデータを収集して、実際に予測をしつつ学習を行ってもよい。また、予め学習を完了してから、配信システム１の実稼働中には予測のみを行う方式をとってもよい。
【００６８】
図８は、端末装置２が、帯域予測サーバー装置３から帯域予測値を取得し、得られた帯域予測値を用いて映像を受信する一連の処理の流れを示すフローチャートである。以下、このフローチャートに沿って動作手順を説明する。
【００６９】
まず、ステップＳ１１において、データ整形部１７は、帯域予測用データを整形する。データ整形部１７がデータを整形する処理を行う前に、既に、帯域情報管理部１５は帯域情報を作成し、バッファー量計測部１６はバッファー容量の情報を作成し、ネットワーク接続管理部１９は接続種別の情報を作成している。なお、例えば初期状態等において、帯域情報がまだまったくない場合には、帯域情報管理部１５は、適切なデフォルト値を用いた帯域情報を作成したり、適切な予測値に基づいた帯域情報を作成したりする。  次に、ステップＳ１２において、データ送信部１８は、データ整形部１７が整形した帯域予測用データを、帯域予測サーバー装置３に送信する。
次に、ステップＳ１３において、帯域予測受信部２０は、帯域予測サーバー装置３から返送される帯域予測値のデータを受信する。帯域予測受信部２０は、受信した帯域予測値のデータを、帯域制御部２１に渡す。
【００７０】
次に、ステップＳ１４において、帯域制御部２１は、帯域予測受信部２０から渡された帯域予測値のデータに基づいて、受信するチャンクの種類を選択する。つまり、帯域制御部２１は、受信するチャンクのビットレートを複数の中から選択することができる。帯域制御部２１は、映像受信部１１が次回に（または次回以後に）選択されたビットレートのチャンクを受信できるように制御する。
次に、ステップＳ１５において、映像受信部１１は、映像のチャンクを受信する。受信されたチャンクのファイルはバッファー管理部１２に渡され、さらに映像復号部１３がそのチャンクの映像を復号・再生する。
【００７１】
一方で、ステップＳ１６において、帯域計測部１４は、直近のチャンクを受信した際の帯域の実績値を計測する。帯域計測部１４が求めた帯域の実績値のデータは、帯域情報管理部１５に渡される。帯域情報管理部１５は、帯域の実績値のデータを時系列に管理し、保存する。
【００７２】
次に、ステップＳ１７において、端末装置２は、映像の受信を終了するための終了条件が成立しているか否かを判定する。終了条件が成立するのは、例えば、受信すべき映像コンテンツが終了した場合や、ユーザー等の操作により映像の受信を終了させる場合や、通信エラー等により映像の受信を終了させるべきであると判断した場合などである。映像の受信を終了させる場合（ステップＳ１７：ＹＥＳ）には、端末装置２は、本フローチャート全体の処理を終了する。映像の受信を終了させない場合（ステップＳ１７：ＮＯ）には、端末装置２は、さらにチャンクを受信するためにステップＳ１１の処理に戻る。
【００７３】
以上説明したように、本実施形態によれば、端末装置２は、最近の実績による帯域情報に基づいて予測された帯域予測値を受信し、その帯域予測値に基づいて、適切な帯域の映像ファイルを受信することができる。また、端末装置２は、帯域情報以外の情報（通信ネットワークの種別や、映像バッファーの空き容量等）にも基づいた帯域予測値を受信し、適切な帯域の映像ファイルを受信することができる。また、帯域予測サーバー装置３は、端末装置２から受信したデータを学習データとして用いて（実際に計測された帯域情報を、正解データとしても、正解を求めるための前提データとしても用いる）、帯域予測値を求めるための帯域予測学習器を学習させることができる。また、帯域予測サーバー装置３は、学習済の帯域予測学習器を用いて、帯域予測値を算出することができる。
【００７４】
次に、上記実施形態の変形例について説明する。これらの変形例により上記実施形態を変形させて実施してもよい。また、下に説明する複数の変形例を組み合わせて実施してもよい。
【００７５】
［第１変形例］
上記実施形態では、端末装置２は、受信した１チャンクごとに帯域情報を求め、その帯域情報を含んだ帯域予測用データを帯域予測サーバー装置３に送信し、帯域予測サーバー装置３から返送される帯域予測値に基づいて、上記チャンクの次のチャンクの帯域を選択していた。本変形例では、端末装置２が、帯域情報を求める頻度や、帯域予測値を受信するタイミングや、受信した帯域予測値を適用するタイミングなどに関して、より高い自由度を持たせる。
【００７６】
図９は、本変形例による映像配信の手順を示すシーケンス図である。同図は、端末装置２と、映像配信サーバー装置４および帯域予測サーバー装置３との間の、通信のシーケンスを表している。以下、このシーケンスに沿って説明する。
なお、同図において、映像のチャンクファイルに順番を付している。以下において、図内の第ｉ番目（ｉは正整数）のチャンクを、「チャンクｉ」と呼ぶ場合がある。
【００７７】
ステップＳ２１において、端末装置２は、映像配信サーバー装置４から、チャンク１を受信する。
次に、ステップＳ２２において、端末装置２は、映像配信サーバー装置４から、チャンク２を受信する。
以下同様に、端末装置２は、順次チャンクを受信する。
そして、ステップＳ２３において、端末装置２は、映像配信サーバー装置４から、チャンクｍを受信する。
【００７８】
ここで、ｍは、予め適宜定められる正整数である。本変形例では、ｍ個のチャンクを１個のセグメントとして扱い、端末装置２は、これらｍ個のチャンク（ここでは、チャンク１からチャンクｍまで）の帯域情報を代表する帯域情報の数値を求める。セグメントを代表する帯域情報は、例えば、ｍ個のセグメントそれぞれについて求められた帯域の平均値、ｍ個のセグメントそれぞれについて求められた帯域の中央値、ｍ個のセグメントのうちの特定の順番におけるチャンク（一例として、セグメント内の最後のチャンク）の帯域等であるが、ここに例示したもの以外を用いてもよい。
ステップＳ２４において、端末装置２は、整形した帯域予測用データを、帯域予測サーバー装置３に送信する。ここで、帯域予測用データは、Ｔセグメント分の帯域情報を含む。
【００７９】
次に、端末装置２は、次のセグメントに含まれるチャンクの受信を開始する。
ステップＳ２５において、端末装置２は、映像配信サーバー装置４から、チャンク（ｍ＋１）を受信する。
次に、ステップＳ２６において、端末装置２は、映像配信サーバー装置４から、チャンク（ｍ＋２）を受信する。
このセグメントの受信の途中における、ステップＳ２７において、端末装置２は、帯域予測サーバー装置３から届く帯域予測値のデータを受信する。この帯域予測値は、チャンクｍまでの帯域情報等に基づいて、帯域予測サーバー装置３が求めたものである。
本変形例において、端末装置２は、チャンクｍまでの帯域情報に基づいて求められた帯域予測値を、チャンク（ｍ＋ｋ）の受信時から適用する。ここで、ｋは、１以上の整数であり、予め定められる値である。即ち、端末装置２は、ステップＳ２７で受信した帯域予測値を用いて、チャンク（ｍ＋ｋ）以後のチャンクの帯域を選択する。
ステップＳ２６のチャンク（ｍ＋２）以後も、端末装置２は受信を続ける。
そして、ステップＳ２８において、端末装置２は、映像配信サーバー装置４から、チャンク（２ｍ）を受信する。
【００８０】
ここで、端末装置２は、チャンク（ｍ＋１）からチャンク（２ｍ）までのチャンクで成るセグメントを代表する帯域情報を求める。セグメントを代表する帯域情報に関しては、既に先のセグメントに関して説明した通りである。
そして、ステップＳ２９において、端末装置２は、直近のＴセグメント分の帯域情報を含んだ帯域予測用データを、帯域予測サーバー装置３に送信する。
【００８１】
次のチャンクのセグメントおよびそれ以降についても、同様に、端末装置２が処理する。つまり、ステップＳ３０において、端末装置２は、映像配信サーバー装置４から、チャンク（２ｍ＋１）を受信する。
以後も同様である。
【００８２】
以上、説明したように、本変形例では、端末装置２は、ｍ個のチャンクから成るセグメントを代表する帯域情報を求め、その帯域情報のＴセグメント分の時系列を、帯域予測用データとして整形する。帯域予測サーバー装置３は、Ｔセグメント分の帯域情報と、その他の情報とに基づいて、帯域予測値を求め、端末装置２に送信する。帯域予測サーバー装置３が端末装置に帯域予測値を送信するタイミングは、その次のチャンク（例えば、チャンクｍに対して、次のチャンクはチャンク（ｍ＋１））を端末装置２が受信する前でなくてもよい。また、端末装置２は、直前までのセグメントに基づいて得られた帯域予測値を直ちに適用することは必ずしも必要ではなく、例えば、ｋチャンク分の遅延をもってその帯域予測値を適用してもよい。例えば、チャンクｍに対して、チャンク（ｍ＋ｋ）の受信時から帯域予測値を適用してよい。
【００８３】
既に説明した実施形態は、この変形例において説明している形態の一特殊例と捉えることもできる。即ち、上で説明した実施形態においては、ｍ＝１、且つｋ＝１である。
【００８４】
［第２変形例］
上記の実施形態では、端末装置２は、帯域予測サーバー装置３に帯域の予測を要求する際に、接続種別と、映像バッファー量と、時系列の帯域情報とを、帯域予測サーバー装置３側に送信した。そして、帯域予測サーバー装置３は、これらの情報を受信して学習処理を行うとともに、これらの情報に基づいて帯域の予測を行った。一方、本変形例では、端末装置２は、上記とは異なる情報を帯域予測サーバー装置３に送り、帯域の予測を要求する。そして、帯域予測サーバー装置３は、その情報を受信して学習処理を行うとともに、その情報に基づいて帯域の予測を行う。
一例として、端末装置２は、帯域予測のための情報として、時系列の帯域情報（実績）のみを、帯域予測サーバー装置３に送信する。帯域予測サーバー装置３は、受信した時系列の帯域情報のみを用いて学習処理を行うとともに、その時系列の帯域情報に基づいて帯域を予測する。
また、一例として、端末装置２は、帯域予測のための情報として、現在時刻（または時間帯）の情報を、単独であるいは他の情報ととともに、帯域予測サーバー装置３に送信する。帯域予測サーバー装置３は、受信した現在時刻（または時間帯）の情報を用いて学習処理を行うとともに、その現在時刻（または時間帯）の情報に基づいて帯域を予測する。
さらに、別の例として、端末装置２は、ここに例示した情報以外の情報を帯域予測のために送信してもよい。その場合も、帯域予測サーバー装置３は、受信した情報に基づいて帯域を予測する。
【００８５】
［第３変形例］
上記の実施形態では、帯域予測サーバー装置３の帯域予測部３２は、学習機能を備えていた。本変形例では、帯域予測部３２は、学習機能を持たない。あるいは、帯域予測部３２は、オンラインでの学習を行わない。しかし、本実施形態においても、帯域予測部３２は、図７に示したようなニューラルネットワークを有しており、そのニューラルネットワークは予め学習済みである。つまり、帯域予測部３２は、学習済みのモデルを予め記憶しており、端末装置２から受信する情報にその学習済みのモデルを適用することによって、帯域を予測する処理を行う。
【００８６】
［第４変形例］
上記の実施形態では、コンテンツとして、映像を配信する形態を説明した。配信システムにおいて端末装置に対して配信されるコンテンツは、映像に限らず、他の形態のコンテンツであってもよい。例えば、配信システムにおいて、音声のみから成るコンテンツを端末装置に配信するようにしてもよい。
【００８７】
上記の実施形態あるいはその変形例によれば、過去のスループット（計測された通信帯域の値）などの情報に対して、機械学習による方法で自動的に重み付けを行うことで、重要な情報に着目して通信帯域を予測することができる。端末装置からのビットレートの指定に基づいてコンテンツを配信する配信システムにおいては、利用可能な通信帯域を活用しながら、適切なビットレートのコンテンツを配信することができる。つまり、通信帯域を活用しながら、通信の輻輳を防ぐことができる。
また、上記の実施形態あるいはその変形例によれば、ビットレートを予測するための学習器を端末装置と分離して帯域予測サーバー装置として独立させ、かつ複数箇所に配置することで、学習データの収集、共有、学習を並列して行うことができる。また、帯域予測サーバー装置が複数存在することで、端末装置は適切な指標をもとに予測を依頼する帯域予測サーバー装置を選択することができ、高レスポンスかつ安定的に予測結果を得ることができる。
【００８８】
なお、上述した実施形態における端末装置や帯域予測サーバー装置や映像配信サーバー装置といった各装置の少なくとも一部の機能をコンピューターで実現するようにしても良い。その場合、この機能を実現するためのプログラムをコンピューター読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピューターシステムに読み込ませ、実行することによって実現しても良い。なお、ここでいう「コンピューターシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。また、「コンピューター読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ＵＳＢメモリー等の可搬媒体、コンピューターシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピューター読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、一時的に、動的にプログラムを保持するもの、その場合のサーバーやクライアントとなるコンピューターシステム内部の揮発性メモリーのように、一定時間プログラムを保持しているものも含んでも良い。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピューターシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【００８９】
以上、この発明の実施形態および変形例について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【産業上の利用可能性】
【００９０】
本発明は、例えば、コンテンツを配信する事業等において広く利用可能である。但し、本発明の利用範囲はここに例示したものには限られない。
【符号の説明】
【００９１】
１  配信システム
２，２−１，２−２，２−３，２−４，・・・  端末装置
３，３−１，３−２  帯域予測サーバー装置（帯域予測装置）
４  映像配信サーバー装置
１１  映像受信部（受信部）
１２  バッファー管理部
１３  映像復号部
１４  帯域計測部
１５  帯域情報管理部
１６  バッファー量計測部
１７  データ整形部
１８  データ送信部
１９  ネットワーク接続管理部
２０  帯域予測受信部
２１  帯域制御部
３１  データ受信部
３２  帯域予測部（予測部）
３３  帯域予測送信部
２０１  帯域情報入力層
２０２  正規化部
２０３  正規化帯域情報層
２０４  ＲＮＮ（リカレントニューラルネットワーク）
２０５  全結合層
２１１  映像バッファー量入力ノード
２１２  ネットワーク接続種別入力ノード
【図１】
2019220839.tif 000003
【図２】
2019220839.tif 000004
【図３】
2019220839.tif 000005
【図４】
2019220839.tif 000006
【図５】
2019220839.tif 000007
【図６】
2019220839.tif 000008
【図７】
2019220839.tif 000009
【図８】
2019220839.tif 000010
【図９】
2019220839.tif 000011