以下、本発明の実施の形態について図面を参照して説明する。
〔第1の実施の形態〕
図1は、第1の実施の形態に係る配信システムの構成例および動作例を示す図である。図1に示す配信システムは、ストリーミングデータ3を配信する配信装置2と、配信されたストリーミングデータ3を再生する再生装置1とを含む。再生装置1は、移動可能な情報処理端末であり、再生装置1と配信装置2とは無線により通信する。なお、ストリーミングデータ3は、例えば、動画像データ、音声データなどを含む。
配信装置2は、ストリーミングデータ3の再生期間を分割した分割期間ごとに、異なるビットレートのデータを保持する。そして、配信装置2は、再生装置1から各分割期間のデータの配信要求を受ける際に、分割期間ごとにビットレートの指定を受け、指定されたビットレートのデータを配信する。このような配信方法が用いられることで、再生装置1は、自装置の通信環境や機器の仕様などに合わせた適切なビットレートのストリーミングデータ3を受信し、再生することが可能になる。
なお、図1の例では、再生時刻「t1」から再生時刻「t2」までの期間が分割期間D1、再生時刻「t2」から再生時刻「t3」までの期間が分割期間D2、再生時刻「t3」から再生時刻「t4」までの期間が分割期間D3、再生時刻「t4」から再生時刻「t5」までの期間が分割期間D4である。各分割期間は、同じ長さであるものとする。
再生装置1は、予測値取得部11、ビットレート決定部12および配信要求部13を有する。
予測値取得部11は、再生装置1の移動経路の予測情報に基づいて、分割期間ごとの通信速度の予測値を取得する。通信速度の予測値は、例えば、次のようにして取得される。
予測値取得部11は、例えば、移動経路の位置情報と、移動経路の近傍に存在する無線基地局の位置情報とに基づいて、移動経路上を移動したときの通信速度を分割期間ごとに予測する。
また、予測値取得部11は、移動経路上を移動したときの分割期間ごとの通信速度を、配信装置2などの外部装置から受信してもよい。
また、再生装置1がナビゲーション機能を有する場合、予測値取得部11は、ユーザに案内する移動経路上を移動したときの分割期間ごとの通信速度を、移動経路情報と通信速度とを対応付けたデータベースを参照することで取得してもよい。
図1の例では、分割期間D1における通信速度の予測値が0.6Mbps(bit per second)、分割期間D2における通信速度の予測値が0.8Mbps、分割期間D3における通信速度の予測値が1.0Mbps、分割期間D4における通信速度の予測値が0.2Mbpsであったものとする。
ビットレート決定部12は、分割期間ごとに対応するビットレートを決定する。ビットレート決定部12は、それぞれの分割期間を起点とした複数の分割期間における通信速度の予測値に基づいて、起点とした分割期間に対応するビットレートをこの分割期間における通信速度の予測値を超えない範囲で決定する。
例えば、ビットレート決定部12は、分割期間D1に対応するビットレートを、分割期間D1〜D3における通信速度の予測値を基に決定し、分割期間D2に対応するビットレートを、分割期間D2〜D4における通信速度の予測値を基に決定する。1つの分割期間に対応するビットレートを決定するためにいくつの分割期間の予測値を用いるかは、任意に決定することができる。
例えば、図1の例のように分割期間D1における予測値より分割期間D2,D3における予測値の方が大きい場合、ビットレート決定部12は、分割期間D1に対応するビットレートをこの分割期間D1における予測値「0.6Mbps」に決定する。
また、例えば、図1の例のように分割期間D2における予測値より分割期間D4における予測値の方が小さい場合、ビットレート決定部12は、分割期間D2に対応するビットレートをこの分割期間D2における予測値「0.8Mbps」より小さい値に決定する。図1の例では、分割期間D2に対応するビットレートは、分割期間D2〜D4における予測値の平均値「0.6Mbps」に決定されたものとする。
分割期間ごとのビットレートの決定方法としては、例えば、次のような方法が考えられる。一例としては、ビットレート決定部12は、それぞれの分割期間を起点とした複数の分割期間における予測値の平均値と、起点とした分割期間における予測値のうち、小さい方の値を、起点とした分割期間に対応するビットレートに決定する。また、他の例としては、ビットレート決定部12は、それぞれの分割期間を起点として1個からN個(ただし、Nは2以上の整数)までの互いに異なる数の分割期間における予測値の平均値を算出し、分割期間ごとに算出されたN個の平均値のうち最小の値を、分割期間ごとのビットレートに決定する。
配信要求部13は、分割期間ごとに決定されたビットレートを指定して、それぞれの分割期間に対応するデータの配信を、それぞれの分割期間の開始時刻を待たずに配信装置2に要求する。
図1において、配信要求部13は、例えば、分割期間D1の開始時刻「t1」において、ビットレート「0.6Mbps」を指定して分割期間D1に対応するデータの配信を要求する。配信装置2は、分割期間D1に対応するデータとして、ビットレート「0.6Mbps」のデータを配信する。ここで、分割期間D1における通信速度の予測値は0.6Mbpsであるので、再生装置1は、分割期間D1の終了時刻「t2」までに分割期間D1に対応するデータを受信できる可能性が高い。
これにより、配信要求部13は、分割期間D1の終了時刻「t2」、すなわち次の分割期間D2の開始時刻「t2」までに、分割期間D2に対応するデータの配信を要求できる可能性が高くなる。その結果、再生装置1は、分割期間D2のデータの再生を途切れることなく行うことができる。
また、配信要求部13は、例えば、分割期間D2の開始時刻「t2」において、ビットレート「0.6Mbps」を指定して分割期間D2に対応するデータの配信を要求する。配信装置2は、分割期間D2に対応するデータとして、ビットレート「0.6Mbps」のデータを配信する。ここで、分割期間D2における通信速度の予測値は0.8Mbpsであるので、再生装置1は、分割期間D2の終了時刻「t3」より前に分割期間D2に対応するデータを受信できる可能性が高い。
上記のように、配信要求部13は、分割期間の開始時刻を待たずにその分割期間に対応するデータの配信を要求する。上記の例では、配信要求部13は、分割期間D3に対応するデータの配信を分割期間D3の開始時刻「t3」より前に要求する。分割期間D3の開始時刻「t3」より前の時刻「t3’」に分割期間D2に対応するデータの受信が完了したものとすると、最も早い例では、分割期間D3に対応するデータの受信は時刻「t3’」において開始される。
このように、分割期間D2に対応するビットレートを分割期間D2における通信速度の予測値より小さくすることで、次の分割期間D3に対応するデータの受信を分割期間D3の開始時刻t3より前に開始することができる。これにより、分割期間D3のデータの再生を途切れることなく行うことができる。
また、仮に分割期間D3に対応するビットレートが分割期間D3における予測値と同じ「1.0Mbps」に決定されたとしても、分割期間D3のデータの受信は分割期間D3の終了時刻t4より前に完了する。そして、この受信完了のタイミングで、次の分割期間D4のデータの受信を開始することができる。仮に分割期間D3に対応するビットレートが分割期間D3における予測値より小さな値に決定された場合には、次の分割期間D4のデータの受信を開始できるタイミングはさらに早められる。
このように、再生装置1は、ある分割期間に対応するビットレートをその分割期間における通信速度の予測値より小さい値に決定することで、その後の分割期間に対応するデータを前倒しで受信することができる。このような処理により、分割期間D4のように、その後の分割期間の中に極端に通信速度が低い期間があったとしても、その期間が終了するタイミングまでにその期間に対応するデータの受信を完了することができる可能性が高まる。その結果、通信速度が極端に低くなる期間があった場合でも、再生装置1がストリーミングデータ3を途切れさせずに再生できる可能性が高まる。
再生装置1は、それぞれの分割期間に対応するビットレートを、それぞれの分割期間を起点とした複数の分割期間における通信速度の予測状況に基づいて、適切に決定する。これにより、再生装置1は、配信されるデータのビットレートをできるだけ高くして、再生品質を向上させつつ、再生が途切れる可能性を低くすることができる。
〔第2の実施の形態〕
次に、MPEG−DASHを用いたストリーミングデータの配信システムの例について説明する。
図2は、第2の実施の形態に係る配信システムの構成例を示す図である。図2に示す配信システムは、移動端末100と配信サーバ200とを含む。移動端末100と配信サーバ200とは、無線ネットワーク300を介して通信可能になっている。すなわち、移動端末100は、無線ネットワーク300を介して外部の装置と通信可能な無線端末装置である。また、移動端末100は、GPS(Global Positioning System)衛星400から位置情報を受信する機能を備えていてもよい。
移動端末100は、例えば、携帯電話機、可搬型の情報端末装置、ノート型やタブレット型などの可搬型のパーソナルコンピュータとして実現される。また、移動端末100は、ストリーミングデータを再生する機能を有する。移動端末100は、配信サーバ200に対してストリーミングデータの配信を要求する。配信サーバ200は、要求されたストリーミングデータを移動端末100に配信する。移動端末100は、配信されたストリーミングデータを受信して再生する。ストリーミングデータは、例えば、動画像データ、音声データなどを含む。
図3は、移動端末のハードウェア構成例を示す図である。移動端末100は、プロセッサ101によって装置全体が制御されている。プロセッサ101には、バス110を介して、RAM(Random Access Memory)102および複数の周辺機器が接続されている。
プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、例えばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、またはPLD(Programmable Logic Device)である。またプロセッサ101は、CPU、MPU、DSP、ASIC、PLDのうちの2以上の要素の組み合わせであってもよい。
RAM102は、移動端末100の主記憶装置として使用される。RAM102には、プロセッサ101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、プロセッサ101による処理に必要な各種データが格納される。
バス110に接続されている周辺機器としては、不揮発性メモリ103、メモリカードインタフェース104、無線通信モジュール105、入力インタフェース106、表示処理回路107、音声処理回路108およびGPS受信回路109がある。
不揮発性メモリ103は、移動端末100の補助記憶装置として使用される。不揮発性メモリ103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、不揮発性メモリ103は、例えばフラッシュメモリである。
メモリカードインタフェース104には、記憶デバイスとしてフラッシュメモリなどを用いた可搬型記憶装置であるメモリカード104aが接続される。メモリカードインタフェース104は、メモリカード104aから読み出したデータをプロセッサ101に出力する。また、メモリカードインタフェース104は、プロセッサ101から書き込みが要求されたデータをメモリカード104aに書き込む。
無線通信モジュール105には、無線ネットワーク300を介して無線通信するためのアンテナ105aが接続されている。無線通信モジュール105は、アンテナ105aからの受信信号の復調やデータ分離、アンテナ105aから送信すべきデータの生成や変調などを行う。
入力インタフェース106には、入力装置106aが接続されている。入力インタフェース106は、入力装置106aから出力される信号をプロセッサ101に送信する。入力装置106aとしては、タッチパネル、入力キーなどがある。
表示処理回路107には、モニタ107aが接続されている。表示処理回路107は、プロセッサ101からの命令に従って、画像をモニタ107aに表示させる。表示装置としては、液晶表示装置、有機EL(Organic Electroluminescence)を用いた表示装置などがある。
音声処理回路108には、スピーカ108aが接続されている。音声処理回路108は、プロセッサ101からの命令に従って、スピーカ108aに音声を出力させる。
GPS受信回路109には、アンテナ109aが接続されている。GPS受信回路109は、GPS衛星400から受信した位置情報をプロセッサ101に送信する。
図4は、配信サーバのハードウェア構成例を示す図である。配信サーバ200は、例えば、図4に示すようなコンピュータとして実現される。
配信サーバ200は、プロセッサ201によって装置全体が制御されている。プロセッサ201には、バス208を介して、RAM202と複数の周辺機器が接続されている。プロセッサ201は、マルチプロセッサであってもよい。プロセッサ201は、例えばCPU、MPU、DSP、ASICまたはPLDである。またプロセッサ201は、CPU、MPU、DSP、ASIC、PLDのうちの2以上の要素の組み合わせであってもよい。
RAM202は、配信サーバ200の主記憶装置として使用される。RAM202には、プロセッサ201に実行させるOSのプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM202には、プロセッサ201による処理に必要な各種データが格納される。
バス208に接続されている周辺機器としては、HDD(Hard Disk Drive)203、表示処理装置204、入力インタフェース205、読み取り装置206および通信インタフェース207がある。
HDD203は、配信サーバ200の補助記憶装置として使用される。HDD203には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、SSD(Solid State Drive)などの他の種類の不揮発性記憶装置を使用することもできる。
表示処理装置204には、モニタ204aが接続されている。表示処理装置204は、プロセッサ201からの命令に従って、画像をモニタ204aに表示させる。モニタ204aとしては、CRT(Cathode Ray Tube)を用いた表示装置や液晶表示装置などがある。
入力インタフェース205には、入力装置の例として、キーボード205aおよびマウス205bが接続されている。入力インタフェース205は、これらの入力装置から出力される信号をプロセッサ201に送信する。
読み取り装置206には、可搬型記録媒体206aが脱着される。読み取り装置206は、可搬型記録媒体206aに記録されたデータを読み取ってプロセッサ201に送信する。可搬型記録媒体206aとしては、光ディスク、光磁気ディスク、半導体メモリなどがある。
通信インタフェース207は、ネットワークを介して、移動端末100などの他の装置との間でデータの送受信を行う。
次に、MPEG−DASHに従ったストリーミングデータの配信方法について説明する。MPEG−DASHは、HTTPのインタフェースを用いてマルチメディアのストリーミングを行う技術である。MPEG−DASHは、ネットワークの通信速度、再生装置側で対応するビットレートや画像解像度に応じて、動的にコンテンツのレイヤを切り替えることを可能にする。このレイヤは「Representation」と呼ばれ、レイヤごとにビットレートや画像解像度が定義される。MPEG−DASHは、次のような特徴を有する。
・サーバ側に、複数レイヤのビットストリームが蓄積される。
・サーバに蓄積されるビットストリームは、「duration」と呼ばれる一定長の期間に区切られている。
・再生中にビットレートや画像解像度をduration単位に切り替え可能である。
・提供されるコンテンツごとに、対応するビットレートや画像解像度などのメタ情報がMPD(Media Presentation Description)に定義される。
図5は、MPDの概要を示す図である。MPDは時間方向に対して「Period」によって分割され、各Periodは「start」で定義される開始時刻の情報を有する。各Periodは、「Group」というコンテンツの種別ごとの情報を有する。図5の例では、「video」のGroupと「audio」のGroupとが示されている。
各Groupは、ビットレート(規格上ではbandwidth)や水平解像度(規格上ではwidth)および垂直解像度(規格上ではheight)が定義された「Representation」によってマルチレイヤのストリームに区分される。各Representationは、さらに時間方向に対してduration単位に分割された「Segment」に関する情報が記述された「Segment Info」を含む。Segment Infoは、Segmentごとの情報が記述された「Media Segment」を含み、Media Segmentには、対応するデータファイルのアクセス先URL(Uniform Resource Locator)や、対応するPeriodに記述された時刻を基準としてカウントされる開始時刻などが記述される。
上記のMPDは、動画像や音声のビットストリームの配信に先立って、サーバからクライアントに送信される。クライアントは、MPDを基に、再生環境に応じた最適なビットレートや画像解像度のデータファイルを、durationごとにURLを指定することで要求することができる。
図6は、サーバ装置から移動端末へのストリーミングデータの基本的な配信手順を示すシーケンス図である。
移動端末100は、まず、配信サーバ200に対してMPDの送信を要求する。配信サーバ200は、移動端末100が要求可能な全セグメントのメタ情報が記述されたMPDを、移動端末100に送信する。この後、移動端末100は、受信したMPDに基づいて、基本的にdurationごとにデータファイルを要求する。
これ以後の説明では、時間方向に並列するdurationのそれぞれを、セグメントの番号によって示すものとする。また、レイヤ(Representation)はビットレートの違いを示すものとする。
移動端末100は、セグメント1に対応するURLのうち、所望のビットレートのセグメントのURLを配信サーバ200に送信して、このセグメントのデータファイルの送信を要求する。配信サーバ200は、要求されたデータファイルを移動端末100に配信し、移動端末100は、配信されたデータファイルを再生する。
また、移動端末100は、セグメント2に対応するURLのうち、所望のビットレートのセグメントのURLを配信サーバ200に送信して、このセグメントのデータファイルの送信を要求する。セグメント2のデータファイルの送信要求は、セグメント1のデータファイルの受信が完了してから行われてもよいし、受信が完了する前に行われてもよい。配信サーバ200は、要求されたデータファイルを移動端末100に配信する。
移動端末100と配信サーバ200との間では、このようにして各セグメントの配信が行われる。コンテンツの最終のセグメントXが配信サーバ200から配信されると、配信処理が終了する。
図7は、セグメントごとに任意のビットレートのデータファイルが配信される処理の概要を示す図である。図7の例では、配信サーバ200は、各セグメントのデータファイルとして、少なくとも、ビットレートがそれぞれ100kbps、300kbps、1Mbpsのデータファイルを配信可能であるものとする。
移動端末100は、時刻t1を起点とするセグメント1のデータファイルとして、例えばビットレート「100kbps」のデータファイルを要求する。また、移動端末100は、時刻t2を起点とするセグメント2のデータファイルとして、例えばビットレート「300kbps」のデータファイルを要求する。さらに、移動端末100は、時刻t3を起点とするセグメント3のデータファイルとして、例えばビットレート「1Mbps」のデータファイルを要求する。
配信サーバ200は、移動端末100からの要求に応じて、セグメント1のデータファイルとしてビットレート「100kbps」のデータファイルを送信し、セグメント2のデータファイルとしてビットレート「300kbps」のデータファイルを送信し、セグメント3のデータファイルとしてビットレート「1Mbps」のデータファイルを送信する。
図8は、サーバ装置から移動端末へのストリーミングデータの配信手順の別の例を示すシーケンス図である。移動端末100は、図6の例と同様に配信サーバ200からMPDを受信した後、図8に示すように、複数セグメントについてのデータファイルの配信をまとめて要求することもできる。この場合でも、移動端末100は、セグメント単位でビットレートを指定することが可能である。
以上の図5〜図8に示したように、移動端末100は配信サーバ200に対し、セグメントごとにビットレートを指定してデータファイルの配信を要求することができる。本実施の形態において、移動端末100は、移動端末100の未来の移動経路における通信速度を予測し、その予測値を基に、移動経路上を移動しながらストリーミングデータの配信を要求する際に指定するビットレートを、セグメントごとに決定する。
移動端末100は、未来の移動経路における通信速度の予測値を基にセグメントごとのビットレートを決定することで、できるだけ高いビットレートのデータファイルを配信させながらも、配信されたストリーミングデータの再生が途切れる可能性を低減する。特に、移動端末100は、移動端末100を保持するユーザが乗った車両や列車がトンネルを通過する場合など、移動端末100が無線通信できない期間が発生した場合でも、ストリーミングデータの再生が途切れる可能性を低減するものである。
図9は、移動端末の機能の構成例を示すブロック図である。なお、本実施の形態では、移動端末100のユーザが鉄道を用いて移動する際に、ストリーミングデータの配信および再生が行われるものとする。
移動端末100は、再生制御部121、通信速度予測部122、有効速度計算部123、サーバ通信処理部124および再生処理部125を有する。これらの各部の処理は、例えば、移動端末100が備えるプロセッサ101が所定のプログラムを実行することで実現される。
また、移動端末100の不揮発性メモリ103には、データベース130が記憶され、移動端末100のRAM102には、通信速度テーブル141が記憶される。さらに、移動端末100は、RAM102の記憶領域の一部を用いたデータ蓄積部142を有する。
再生制御部121は、ストリーミングデータを再生するための処理全体を制御する。再生制御部121は、例えば、通信速度予測部122、有効速度計算部123、サーバ通信処理部124および再生処理部125に対して、各種の処理の開始指示や終了指示を与える。
通信速度予測部122は、データベース130を参照しながら、セグメントごとの通信速度を予測して、予測結果を通信速度テーブル141に登録する。以下、セグメントごとに予測された通信速度を「予測速度」と呼ぶ。
データベース130には、予測速度を予測するために用いられる各種の情報が記憶される。データベース130には、例えば、鉄道の運行時刻が記述された時刻表情報、鉄道の走行ルートが記述されたルート情報、無線基地局の位置が記述された基地局情報などが記憶される。
有効速度計算部123は、通信速度テーブル141に登録された予測速度に基づいて、セグメントごとの有効速度を計算し、計算結果を通信速度テーブル141に登録する。有効速度は、そのセグメントのデータファイルの配信を要求する際に指定されるビットレートの上限値である。後述するように、有効速度計算部123は、あるセグメントに対応する有効速度を、そのセグメントを起点とする複数セグメントにおける予測速度に基づいて計算する。有効速度計算部123は、配信されるストリーミングデータのビットレートが、ストリーミングデータの再生が途切れない範囲でできるだけ高くなるように、有効速度を計算する。
サーバ通信処理部124は、配信サーバ200に対してストリーミングデータの配信を要求し、配信されたストリーミングデータをデータ蓄積部142に一時的に格納する。サーバ通信処理部124は、セグメントごとのデータファイルの配信を配信サーバ200に要求する際に、通信速度テーブル141から対応する有効速度を読み出し、読み出した有効速度以下のビットレートを指定して配信を要求する。
再生処理部125は、データ蓄積部142に蓄積されたストリーミングデータを読み出して、再生処理を行う。再生処理部125は、読み出したストリーミングデータから動画像データおよび音声データを分離して、分離された動画像データおよび音声データを復号化する。再生処理部125は、復号化された動画像データを表示処理回路107に送出し、復号化された音声データを音声処理回路108に送出する。
なお、動画像データの復号化および音声データの復号化は、それぞれ表示処理回路107、音声処理回路108で行われてもよい。
図10は、通信速度テーブルのデータ構成例を示す図である。通信速度テーブル141は、「セグメント番号」、「時刻」、「予測速度」および「有効速度」の各項目を有する。
「セグメント番号」には、再生対象のストリーミングデータのセグメント番号が降順に登録される。すなわち、通信速度テーブル141には、再生対象のストリーミングデータに含まれるすべてのセグメントに対応するレコードが登録される。
「時刻」には、対応するセグメントの開始時刻が登録される。「予測速度」には、対応するセグメントについて通信速度予測部122によって予測された予測速度が登録される。「有効速度」には、対応するセグメントについて有効速度計算部123によって計算された有効速度が登録される。なお、以下の説明では、有効速度を「Rdecide」と表す場合もある。
次に、通信速度予測部122の処理例について説明する。本実施の形態において、通信速度予測部122は、ユーザが鉄道を用いて移動する間における移動端末100の通信速度を、セグメントに対応する単位時間ごとに予測する。鉄道の場合、ユーザが乗車した列車が特定されれば移動経路も特定されるので、移動端末100の移動経路を比較的容易かつ正確に予測することができる。
図11は、通信速度予測部の処理例(1)を示す図である。処理例(1)では、通信速度予測部122は、時刻表情報131、経路情報132および基地局情報133に基づいて、セグメントごとの通信速度を予測する。時刻表情報131、経路情報132および基地局情報133は、図9のデータベース130に記憶される。
[ステップS11]ユーザは、事前に、あるいは列車に乗車する際に、列車の乗車時刻、乗車駅および降車駅の情報を移動端末100に入力する。
[ステップS12]通信速度予測部122は、ユーザに入力された情報と、時刻表情報131および経路情報132とに基づいて、ユーザ(すなわち移動端末100)が移動する経路を予測する。
例えば、時刻表情報131には、列車の便名ごとに停車駅や、各駅の到着時刻などの情報が記憶されている。通信速度予測部122は、ユーザに入力された情報を用いて時刻表情報131を検索することで、ユーザが乗車する列車を特定する。一方、経路情報132には、例えば、鉄道の線路の位置情報が記憶されている。通信速度予測部122は、経路情報132に基づいて、ユーザが乗車する列車の移動経路を特定する。
通信速度予測部122は、例えば、乗車駅から降車駅までに存在する各駅間の距離と、各駅における停車時刻とから、列車に乗車してから降車するまでのユーザの位置を、1セグメントに対応する単位時間(例えば10秒)ごとに予測する。
なお、経路情報132には、線路の経路のうち、線路がトンネル内にあるなど、無線通信が不可能になる区間を示す情報も記憶されている。通信速度予測部122は、単位時間ごとのユーザの位置を予測した際、その位置が無線通信が不可能な区間にあるかについても判別する。
[ステップS13]基地局情報133には、例えば、移動端末100が通信可能な複数の無線基地局の位置情報が記憶されている。通信速度予測部122は、基地局情報133に基づき、ユーザが乗車する列車の移動経路の近傍に存在する無線基地局を特定する。
[ステップS14]通信速度予測部122は、セグメントごとに通信速度を予測し、その予測結果(予測速度)を通信速度テーブル141に登録する。
通信速度予測部122は、例えば、セグメントごとに、ステップS12で予測されたユーザの位置と、その位置に最も近い無線基地局との距離を求める。ユーザ、すなわち移動端末100と、無線基地局との距離が近いほど、通信速度は高くなる。そこで、通信速度予測部122は、次の式(1)に従って、セグメントごとの予測速度Sを算出する。
S=α*MaxSpeed/D ・・・(1)
式(1)において、αは正の定数、MaxSpeedは無線基地局からの最大送信速度、Dは移動端末100と無線基地局との距離を示す。
また、式(1)は、移動端末100と無線基地局との距離と通信速度との関係を一次式で近似したものであるが、この関係をより実際の関係に近づけるためには、次の式(2)が用いられてもよい。
S=β*MaxSpeed/Dn ・・・(2)
式(2)において、βは正の定数、nは1より大きい整数である。
以上の式(1)または式(2)を用いて、ユーザが列車に乗っている際のセグメントごとの予測速度が算出される。ただし、ステップS12で予測されたユーザの位置が、トンネルの内部などの無線通信が不可能な区間に含まれる場合には、通信速度予測部122は、その位置に対応するセグメントの予測速度を0にする。
以上の処理により、通信速度テーブル141には、セグメントごとに予測速度が登録される。
なお、ステップS11で入力される列車の乗車時刻および乗車駅の情報は、通信速度予測部122が自動的に判別してもよい。例えば、通信速度予測部122は、GPS衛星400から受信した位置情報に基づくユーザの現在位置が、駅の構内を示す場合に、その駅を乗車駅と判別する。また、通信速度予測部122は、この時点の現在時刻を基に、ユーザが乗車する列車とその乗車時刻とを予測する。このとき、ユーザが乗車する列車が複数想定できる場合には、通信速度予測部122は、GPS衛星400からの位置情報に基づくその後のユーザの移動方向から、ユーザが乗車した列車を特定することができる。
また、例えば、時刻表情報131に駅間の列車の走行速度が登録されている場合には、通信速度予測部122は、走行速度の情報に基づいて、列車に乗車中のユーザの単位時間ごとの位置をより正確に予測することができる。
また、ステップS12で予測されたユーザの単位時間ごとの位置は、GPS衛星から受信した位置情報に基づくユーザの現在位置の情報を基に、適宜のタイミングで補正、または再度予測されてもよい。ユーザの単位時間ごとの位置が補正、または再度予測された場合、ステップS13以降の処理も再度実行される。これにより、通信速度テーブル141に記憶された予測速度の精度が向上する。
また、図11の処理のうち少なくともステップS14の処理は、ストリーミングデータの再生が開始されてから随時実行されてもよい。例えば、通信速度予測部122は、現在再生中のセグメントより一定数だけ先のセグメントについて、ステップS14の処理を実行してもよい。
また、図11に示した処理の一部は、配信サーバ200などの他のサーバ装置で実行されてもよい。例えば、ステップS11で入力された情報が配信サーバ200に送信され、配信サーバ200は、ステップS12〜S14に相当する処理を行って、予測速度を移動端末100に送信する。移動端末100の通信速度予測部122は、受信した予測速度を通信速度テーブル141に登録する。
図12は、通信速度予測部の処理例(2)を示す図である。処理例(2)では、通信速度予測部122は、列車への初回乗車時には、乗車中における通信速度を実測して、その実測値を履歴情報134に登録する。そして、通信速度予測部122は、列車への2回目以降の乗車時には、履歴情報134からセグメントごとの予測速度を取得する。
[ステップS21]ユーザは、事前に、あるいは列車に乗車する際に、列車の乗車時刻と降車時刻とを移動端末100に入力する。
[ステップS22]通信速度予測部122は、入力された乗車時刻に達してから、入力された降車時刻に達するまでの間、配信サーバ200と通信して通信速度を実測し、セグメントに対応する単位時間ごとの通信速度を履歴情報134に登録する。このステップS22の処理は、実際に配信サーバ200からストリーミングデータの配信を受けてこれを再生する処理の間に行われてもよい。履歴情報134は、例えばデータベース130に記憶される。
[ステップS23]その後、ユーザが別の日に同じ列車に乗車する際には、次のような処理が行われる。通信速度予測部122は、履歴情報134に登録された、列車の乗車時刻になると、履歴情報134から降車時刻までの単位時間ごとの通信速度の実測値を取得し、通信速度テーブル141に登録する。
図13は、通信速度予測部の処理例(3)を示す図である。処理例(3)では、複数の移動端末100_1,100_2,100_3,・・・における通信速度の実測値を、サーバ装置が収集し、ストリーミングデータを再生しようとする移動端末100に対し、サーバ装置が通信速度を送信する。図13では例として、配信サーバ200が通信速度の実測値を収集するものとする。
[ステップS31]移動端末100_1は、列車の乗車から降車までの単位時間ごとの通信速度を実測する。この処理は、図12のステップS21,S22と同様の手順を用いることができる。
[ステップS32]移動端末100_1は、単位時間ごとの通信速度の実測値を、配信サーバ200に送信する。
[ステップS33]配信サーバ200は、複数の移動端末100_1,100_2,100_3,・・・から、単位時間ごとの通信速度の実測値を収集して、速度実測値データベース211に登録する。
配信サーバ200は、例えば、単位時間ごとの通信速度の実測値を、列車の便名ごとに速度実測値データベース211に登録する。このために、移動端末100_1,100_2,100_3,・・・のそれぞれは、例えば、通信速度の実測値を送信する際に、時刻表情報131に基づいて列車の便名も配信サーバ200に送信すればよい。
[ステップS34]ストリーミングデータを再生しようとする移動端末100の通信速度予測部122は、乗車時刻、乗車駅および降車駅を配信サーバ200に送信し、予測速度の送信を要求する。乗車時刻、乗車駅および降車駅は、例えば、ステップS11と同様の手順で移動端末100に入力されればよい。
[ステップS35]配信サーバ200は、受信した情報に基づいてユーザが乗車する列車を特定し、速度実測値データベース211から、特定した列車に対応する通信速度の実測値を検索する。
[ステップS36]配信サーバ200は、速度実測値データベース211から、受信した乗車駅から降車駅までの単位時間ごとの通信速度の実測値を読み出し、これらの実測値をセグメントごとの予測速度として移動端末100に送信する。
移動端末100の通信速度予測部122は、受信した予測速度を通信速度テーブル141に登録する。
なお、以上の処理例(1)〜(3)は通信速度の予測処理の一例であり、他の方法によって通信速度が予測されてもよい。
次に、有効速度計算部123の処理について説明する。図14は、有効速度計算処理の概要を示す図である。
図14では、予測速度の推移の例を示している。この例では、セグメント1の期間における予測速度は1000kbpsであり、以下、セグメント2,3,4,5,6,7における予測速度は、それぞれ800kbps、600kbps、400kbps、0kbps、200kbps、400kbpsである。
有効速度計算部123は、各セグメントに対応する有効速度を、計算対象のセグメントを起点として1個からN個(ただし、Nは2以上の整数)までの互いに異なる数のセグメントにおける予測値の平均値を基に計算する。本実施の形態では、N=5とする。
ここで、1つのセグメントに対応する有効速度を計算するために考慮される期間を、1T〜5Tと呼ぶ。1T期間とは、計算対象のセグメントのみを含む期間である。2T期間とは、計算対象のセグメントと、このセグメントを起点として2番目のセグメントとを含む期間である。3T期間とは、計算対象のセグメントと、このセグメントを起点として2番目および3番目のセグメントとを含む期間である。4T期間とは、計算対象のセグメントと、このセグメントを起点として2番目〜4番目のセグメントとを含む期間である。5T期間とは、計算対象のセグメントと、このセグメントを起点として2番目〜5番目のセグメントとを含む期間である。
図14では例として、セグメント1を有効速度の計算対象とした場合について示している。この場合、1T期間はセグメント1の期間を示し、2T期間はセグメント1,2の期間を示し、3T期間はセグメント1〜3の期間を示し、4T期間はセグメント1〜4の期間を示し、5T期間はセグメント1〜5の期間を示す。
有効速度計算部123は、1T期間〜5T期間のそれぞれにおける予測速度の平均値を算出する。ここで、計算対象のセグメントを起点として1番目〜5番目までのセグメントにおける予測速度を、r1〜r5とする。図14の例では、r1=1000[kbps]、r2=800[kbps]、r3=600[kbps]、r4=400[kbps]、r5=0[kbps]である。
また、1T期間における予測速度の平均値をR1、2T期間における予測速度の平均値をR2、3T期間における予測速度の平均値をR3、4T期間における予測速度の平均値をR4、5T期間における予測速度の平均値をR5とする。図14の例では、平均値R1〜R5は次のように算出される。
R1=r1=1000[kbps]
R2=(r1+r2)/2=900[kbps]
R3=(r1+r2+r3)/3=800[kbps]
R4=(r1+r2+r3+r4)/4=700[kbps]
R5=(r1+r2+r3+r4+r5)/5=560[kbps]
有効速度計算部123は、算出された平均値R1〜R5のうち、最小の値を有効速度に決定する。図14の例では、セグメント1に対応する有効速度は、平均値R5に決定される。
なお、図示しないが、例えばセグメント2に対応する有効速度の算出の際には、1T期間はセグメント2の期間となり、2T期間はセグメント2,3の期間となり、3T期間はセグメント2〜4の期間となり、4T期間はセグメント2〜5の期間となり、5T期間はセグメント2〜6の期間となる。
図15は、有効速度の計算例を示す図である。
セグメント1に対応する有効速度(Rdecide)は、セグメント1〜5における予測速度を用いて、図14に示した手順により580kbpsと算出される。同様に、セグメント2に対応する有効速度は、セグメント2〜6における予測速度を用いて、図14に示した手順により400kbpsと算出される。また、セグメント3に対応する有効速度は、セグメント3〜7における予測速度を用いて、図14に示した手順により300kbpsと算出される。
サーバ通信処理部124は、各セグメントのデータファイルの配信を要求する際、通信速度テーブル141から、配信を要求するセグメントに対応する有効速度を読み出す。サーバ通信処理部124は、配信サーバ200から受信したMPDに記述された、配信を要求可能なビットレートのうち、通信速度テーブル141から読み出した有効速度Rdecide以下で最も高いビットレートを選択して、選択したビットレートを指定して配信を要求する。
例えば、ビットレート1000kbps、500kbps、300kbps、100kbpsのデータファイルの配信を要求可能である場合、図15の例では次のようにビットレートが決定される。サーバ通信処理部124は、セグメント1に対応する有効速度が580kbpsであることから、セグメント1に対応するビットレートを500kbpsと決定する。また、サーバ通信処理部124は、セグメント2に対応する有効速度が400kbpsであることから、セグメント2に対応するビットレートを300kbpsと決定する。さらに、サーバ通信処理部124は、セグメント3に対応する有効速度が300kbpsであることから、セグメント3に対応するビットレートを300kbpsと決定する。
図16は、計算対象のセグメントにおける予測速度が0である場合を示す図である。
図16に示すセグメント10については、予測速度が0となっている。この場合、前述の計算方法によってセグメント10に対応する有効速度(Rdecide)が計算されると、その結果は0となってしまい、セグメント10に対応するデータファイルの配信を要求できなくなってしまう。
そこで、有効速度計算部123は、予測速度が0であるセグメントに対応する有効速度を、このセグメントの直前のセグメントに対応する有効速度と同じ値にする。この理由については、後の図18において説明する。
なお、計算対象のセグメントの直前のセグメントにおける予測速度が0である場合、さらにその直前のセグメントに対応する有効速度が、計算対象のセグメントに対応する有効速度に設定される。
図17は、算出された有効速度とデータファイルの受信タイミングとの関係を示す第1の図である。この図17において、セグメント1に対応する有効速度を算出する処理について考える。
セグメント1〜5のそれぞれにおける予測速度の中では、計算対象のセグメント1における予測速度が最も低い。この場合、有効速度(Rdecide)は平均値R1、すなわちセグメント1における予測速度と算出される。換言すると、有効速度の上限は、計算対象のセグメントにおける予測速度までに制限される。
例えば、サーバ通信処理部124が、セグメント1のデータファイルの配信をセグメント1の期間の開始時刻「t1」に要求したものとする。ここでは配信要求から受信までのタイムラグを考えないものとすると、セグメント1のデータファイルは、セグメント1の期間の開始時刻「t1」に受信が開始されて、その期間の終了時刻「t2」までに受信が完了する。
このように、有効速度の上限が計算対象のセグメントにおける予測速度までに制限されることで、そのセグメントのデータファイルを、次のセグメントの開始時刻までに確実に受信できるようになる。従って、ストリーミングデータの再生が途切れる可能性が低減される。
図18は、算出された有効速度とデータファイルの受信タイミングとの関係を示す第2の図である。図18の例では、セグメント2における予測速度が0となっている。この場合、図16に示したように、セグメント2に対応する有効速度は、セグメント1に対応する有効速度に設定される。
ここで、セグメント1に対応する有効速度は、セグメント1〜5における予測速度を用いて算出される。そして、セグメント1における予測速度は、セグメント1,2の予測速度の平均値(すなわち2T期間における平均値R2)より大きくはならない。セグメント2における予測速度は0なので、セグメント1,2における予測速度の平均値は、セグメント1における予測速度の1/2となる。すなわち、図18の例では、セグメント1に対応する有効速度は、必ず、セグメント1における予測速度の1/2以下となる。
仮に、セグメント1に対応する有効速度が、セグメント1における予測速度の1/2と算出されたものとする。そして、サーバ通信処理部124が、セグメント1のデータファイルの配信をセグメント1の期間の開始時刻「t1」に要求したものとする。セグメント1のデータファイルは、セグメント1の期間の開始時刻「t1」に受信が開始されて、1セグメント分の時間の1/2が経過した時刻t1’までに受信が完了する。
また、サーバ通信処理部124は、時刻t1’までにセグメント2のデータファイルの配信を要求することで、遅くとも時刻t1’までにセグメント2のデータファイルの受信を開始できる。そして、サーバ通信処理部124は、無線通信が不能であるセグメント2の期間が開始される時刻「t2」までに、セグメント2のデータファイルの受信を完了することができる。
このように、予測速度が0であるセグメントに対応する有効速度を、その直前のセグメントに対応する有効速度と同じにすることで、予測速度が0であるセグメント、すなわち、無線通信が不能となるセグメントの期間が開始される前に、そのセグメントのデータファイルの受信を確実に完了できるようになる。従って、トンネルを通過する場合など、無線通信が不能となる区間を一時的に移動する場合であっても、ストリーミングデータの再生が途切れる可能性が低減される。
次に、有効速度計算部123およびサーバ通信処理部124の処理について、フローチャートを用いて説明する。
図19は、セグメントごとの有効速度計算処理の例を示すフローチャートである。図19の処理は、セグメントごと、すなわち、通信速度テーブル141のレコードごとに実行される。
[ステップS51]有効速度計算部123は、予測速度r1〜rNを通信速度テーブル141から取得する。
[ステップS52]有効速度計算部123は、変数jに1を設定する。また、有効速度計算部123は、有効速度Rdecideを平均値R1、すなわち予測速度r1に設定する。
[ステップS53]有効速度計算部123は、現在設定されている有効速度Rdecideが0であるかを判定する。有効速度Rdecideが0である場合、ステップS59の処理が実行され、0でない場合、ステップS54の処理が実行される。
[ステップS54]有効速度計算部123は、変数jに1を加算する。
[ステップS55]有効速度計算部123は、次の式(3)に従って、j*T期間での予測速度r1〜rjの平均値Ri(=Rj)を算出する。
[ステップS56]有効速度計算部123は、現在の平均値Riが現在の有効速度Rdecideより小さいかを判定する。平均値Riが有効速度Rdecideより小さい場合、ステップS57の処理が実行され、平均値Riが有効速度Rdecide以上の場合、ステップS58の処理が実行される。
[ステップS57]有効速度計算部123は、有効速度Rdecideを、現在の平均値Riの値に更新する。
[ステップS58]有効速度計算部123は、変数jがNに達したかを判定する。変数jがNに達していない場合、ステップS54の処理が再度実行され、変数jがNに達した場合、処理が終了される。処理が終了された場合、現在の計算対象のセグメントに対応する有効速度Rdecideは、ステップS52またはステップS57で設定された値となる。
[ステップS59]有効速度計算部123は、通信速度テーブル141において、現在の計算対象のセグメントより前のセグメントのレコードを辿り、予測速度が0でないセグメントを選択する。有効速度計算部123は、選択したセグメントに対応する有効速度Rdecideを、計算対象のセグメントに対応する有効速度Rdecideに設定する。
図20は、ストリーミングデータの配信要求処理の例を示すフローチャートである。
[ステップS71]サーバ通信処理部124は、通信速度テーブル141からセグメントを1つ選択し、このセグメントに対応する有効速度Rdecideを取得する。
[ステップS72]サーバ通信処理部124は、配信サーバ200から受信したMPDに記述された、配信を要求可能なビットレートのうち、ステップS71で取得した有効速度Rdecide以下で最も高いビットレートを選択する。サーバ通信処理部124は、配信サーバ200に対して、該当セグメントのデータファイルのうち、選択したビットレートのデータファイルのURLを指定して、このデータファイルの配信を要求する。
[ステップS73]サーバ通信処理部124は、MPDに記述された全セグメントのデータファイルの配信要求が完了したかを判定する。配信要求が完了していない場合、ステップS74の処理が実行され、配信要求が完了している場合、処理が終了される。
[ステップS74]サーバ通信処理部124は、通信速度テーブル141から、現在時刻が含まれるセグメントにおける予測速度rを取得する。ここで言う「現在時刻が含まれるセグメント」は、ステップS71で選択されたセグメントと同じか、それより前のセグメントである。サーバ通信処理部124は、取得した予測速度rが0であるかを判定する。予測速度rが0でない場合、ステップS75の処理が実行され、予測速度rが0である場合、ステップS76の処理が実行される。
[ステップS75]ステップS72で配信を要求したデータファイルは、1セグメント分の時間Lに、ステップS71で取得した有効速度Rdecideを乗算し、その乗算結果をステップS74で取得した予測速度rで除算することで得られる時間で、受信を完了できることが期待される。そこで、サーバ通信処理部124は、得られた時間から、配信を要求してからデータファイルの受信を開始するまでの予測遅延時間γを減算した時間だけ、待ち状態となり、その後にステップS71の処理を実行する。
[ステップS76]現在、無線通信が不可能な状態であると考えられるため、サーバ通信処理部124は、1セグメント分の時間Lから上記の予測遅延時間γを減算した時間だけ、待ち状態となり、その後にステップS71の処理を実行する。
以上のステップS75またはステップS76のように配信要求が行われる間隔が設定されることで、各セグメントのデータファイルは、そのセグメントの実際の開始時刻を待たずに配信が要求される。これにより、各セグメントのデータファイルが前倒しで受信されるようになり、その結果、トンネル通過時のように無線通信が不可能な期間が存在したとしても、ストリーミングデータの再生が途切れる可能性が低減される。
なお、セグメントごとの配信要求の方法としては、各セグメントのデータファイルが前倒しで受信される方法であれば、他の方法が用いられてもよい。例えば、サーバ通信処理部124は、あるセグメントのデータファイルの受信が完了すると、次のセグメントのデータファイルの配信を要求してもよい。また、例えば、サーバ通信処理部124は、図8に示したように、複数セグメント分のデータファイルの配信を一度にまとめて要求してもよい。
<変形例(1)>
以下、有効速度計算部123による有効速度計算処理の変形例について説明する。ここではまず、予測速度が0であるセグメントに対応する有効速度の決定に関する変形例(1)を示す。
上記の図19の処理では、予測速度が0であるセグメントに対応する有効速度を、その直前のセグメントに対応する有効速度と同じにしていた。しかしながら、直前の有効速度ではなく、さらに前の有効速度を使用することで、配信を要求するデータファイルのビットレートを高め、再生品質を向上させることが可能な場合がある。
図21は、算出された有効速度とデータファイルの受信タイミングとの関係を示す第3の図である。図21の例では、セグメント4における予測速度が0となっている。
上記の図19の処理を用いた場合、図21のセグメント4に対応する有効速度として、その直前のセグメント3に対応する有効速度が設定された。図21において、セグメント3に対応する有効速度は、最高でも500kbpsとなる。
これに対し、図21のセグメント1に対応する有効速度は750kbpsである。セグメント1〜4に対応する有効速度をすべて750kbpsとした場合、セグメント4の開始時刻「t4」までに、セグメント1〜4のすべてのデータファイルの受信を完了できる。このため、セグメント1〜4のデータファイルを途切れずに再生することができる。それに加えて、セグメント4に対応する有効速度をセグメント3に対応する有効速度とした場合より、セグメント4のデータファイルのビットレートを高めることができる。
図22は、有効速度計算処理の変形例(1)について示す図である。
図22の例では、セグメント10における予測速度が0である。この場合に、有効速度計算部123は、セグメント10から(N−1)個(ここでは4個)前までのセグメントにそれぞれ対応する有効速度を参照し、その中から有効速度が最大であるセグメントを選択する。図22の例ではセグメント8が選択される。有効速度計算部123は、セグメント8から、計算対象であるセグメント10までのすべてのセグメントに対応する有効速度を、セグメント8に対応する有効速度に更新する。
このように、有効速度計算部123は、計算対象のセグメントから(N−1)個前までの各セグメントのうち、有効速度が最大であるセグメントを選択して、選択したセグメントに対応する有効速度をその後のセグメントに対応する有効速度に適用する。これにより、予測速度が0であるセグメントだけでなく、その前の複数セグメントについてのデータファイルのビットレートを高くすることができ、再生品質を向上させることができる。
図23は、有効速度計算処理の変形例(1)について示すフローチャートである。図23に示す処理は、図19におけるステップS59の処理を、ステップS61,S62に置き換えたものである。
[ステップS61]有効速度計算部123は、計算対象のセグメントの直前の(N−1)個のセグメントから、予測速度が0でなく、有効速度Rdecideが最大であるセグメントを抽出する。
[ステップS62]有効速度計算部123は、抽出したセグメントに対応する有効速度Rdecideを、それ以降の計算対象のセグメントまでのすべてのセグメントに対応する有効速度に設定する。
<変形例(2)>
図24は、有効速度計算処理の変形例(2)について示す図である。
図22,図23の例では、直前の(N−1)個のセグメントのうち有効速度が最大のものを選択し、選択したセグメントに対応する有効速度を、計算対象のセグメントまでのすべてのセグメントに設定した。しかしながら、他の例として、有効速度計算部123は、図24に示すように、計算対象のセグメントの直前の(N−1)個のセグメントのうち有効速度が最大のものを選択し、選択したセグメントに対応する有効速度を、計算対象のセグメントにのみ設定してもよい。
この場合でも、予測速度が0であるセグメントのデータファイルのビットレートを高め、なおかつ、このセグメントのデータファイルの再生が途切れる可能性を低減することができる。
<変形例(3)>
次に、変形例(3)として、有効速度の計算処理の他の例について説明する。
図14で説明した処理では、有効速度計算部123は、平均値R1〜R5のうち最少の値を、セグメント1に対応する有効速度としていた。しかしながら、他の例として、有効速度計算部123は、平均値R1(すなわちセグメント1における予測速度r1)と、計算に用いる期間が最大である平均値R5とのうち値が小さい方を、セグメント1に対応する有効速度としてもよい。この場合でも、各セグメントのデータファイルの配信が前倒しで要求されることで、指定するビットレートをできるだけ高くしつつ、ストリーミングデータの再生が途切れる可能性を低減できるという効果が得られる。
この変形例(3)の場合、予測速度が0であるセグメントについて有効速度を計算する場合には、それより(N−1)個前のセグメントを選択して、選択したセグメントに対応する有効速度をそれ以降のセグメントに対応する有効速度に設定すればよい。これにより、予測速度が0であるセグメントのデータファイルの受信を、このセグメントの開始時刻までに確実に完了することができる。
図25は、有効速度計算処理の変形例(3)について示すフローチャートである。図25の処理は、セグメントごと、すなわち、通信速度テーブル141のレコードごとに実行される。
[ステップS71]有効速度計算部123は、予測速度r1〜rNを通信速度テーブル141から取得する。
[ステップS72]有効速度計算部123は、有効速度Rdecideを平均値R1、すなわち予測速度r1に設定する。
[ステップS73]有効速度計算部123は、現在設定されている有効速度Rdecideが0であるかを判定する。有効速度Rdecideが0である場合、ステップS77の処理が実行され、0でない場合、ステップS74の処理が実行される。
[ステップS74]有効速度計算部123は、N*T期間での予測速度r1〜rTの平均値Ri(=RT)を算出する。
[ステップS75]有効速度計算部123は、ステップS74で算出した平均値Riが、ステップS72で設定した有効速度Rdecideより小さいかを判定する。平均値Riが有効速度Rdecideより小さい場合、ステップS76の処理が実行される。平均値Riが有効速度Rdecide以上の場合、処理が終了される。処理が終了された場合、現在の計算対象のセグメントに対応する有効速度Rdecideは、ステップS72で設定された値となる。
[ステップS76]有効速度計算部123は、有効速度Rdecideを、ステップS74で算出した平均値Riの値に更新する。
[ステップS77]有効速度計算部123は、通信速度テーブル141において、現在の計算対象のセグメントより(N−1)個前のセグメントを選択する。
[ステップS78]有効速度計算部123は、選択したセグメントに対応する有効速度Rdecideを、それ以降の計算対象のセグメントまでのすべてのセグメントに対応する有効速度に設定する。
〔第3の実施の形態〕
図26は、第3の実施の形態に係る移動端末の機能の構成例を示すブロック図である。この図26では、図9と共通する構成要素には同じ符号を付して示しており、それらの説明については省略する。
本実施の形態の移動端末100aは、ユーザが自動車に乗って移動する際にストリーミングデータを再生できるようにするものである。また、移動端末100aは、例えば、ナビゲーション装置など、自動車に搭載される情報端末装置であってもよい。
移動端末100aは、図9の通信速度予測部122、有効速度計算部123、通信速度テーブル141の代わりに、通信速度予測部122a、有効速度計算部123aおよび通信速度テーブル141aを備え、さらに、ナビゲーション処理部126を備える。また、通信速度予測部122aおよびナビゲーション処理部126に参照されるデータベース130aには、道路情報135、通信速度マップ情報136および走行履歴137が記憶される。
ナビゲーション処理部126は、GPS衛星400から受信される位置情報と、道路情報135とに基づいて、表示画面に地図を表示するとともに、その地図上に現在位置を示す情報を表示する。ナビゲーション処理部126は、ユーザに指定された出発地から目的地までの走行経路を道路情報135を基に抽出し、地図画面や音声情報を用いてユーザに走行経路を案内する。
また、ナビゲーション処理部126は、出発地および目的地が指定されていない場合、移動端末100aの現在位置や移動方向に基づいて、その先の走行経路を予測することも可能になっている。
また、ナビゲーション処理部126は、移動端末100aが実際に移動した経路の情報を、走行履歴137に格納する。
道路情報135には、各地の道路の位置情報が記憶される。
通信速度マップ情報136には、道路情報135に記憶された位置情報に対応付けて、各位置における通信速度がマッピングされている。
通信速度予測部122aは、ナビゲーション処理部126によって案内されている走行経路、またはナビゲーション処理部126によって予測されている走行経路の情報を受け取る。通信速度予測部122aは、走行経路に対応する通信速度を通信速度マップ情報136から読み出すことで、セグメントごとの予測速度を判定し、予測速度を通信速度テーブル141aに登録する。
また、通信速度予測部122aは、ナビゲーション処理部126によって複数の経路が予想されている場合、これらの経路ごとに予測速度を取得して、通信速度テーブル141aに登録する。通信速度テーブル141aの基本的なデータ構成は図9の通信速度テーブル141と同様であるが、上記のように複数の経路が予測された場合、通信速度テーブル141aには、経路ごとに予測速度が登録される。
有効速度計算部123aは、基本的には図9の有効速度計算部123と同様の処理を行う。ただし、ナビゲーション処理部126によって複数の経路が予想されている場合、有効速度計算部123aは、経路ごとの予測速度に基づいて有効速度を経路ごとに計算し、それらを加重平均することにより最終的な有効速度を算出する。
次に、通信速度予測部122aの処理について説明する。
図27は、ナビゲーション処理部によって走行経路が案内されている場合の予測速度の判定処理について示す図である。
通信速度マップ情報136には、例えば、道路の区間ごとに通信速度が対応付けられている。ナビゲーション処理部126によって図27のような走行経路が案内されているとき、通信速度予測部122aは、区間A、区間B、区間Cのそれぞれにおける通信速度を通信速度マップ情報136から取得する。通信速度予測部122aは、走行経路上のどの位置に何時に到達するかを示す情報をナビゲーション処理部126から取得して、この情報と通信速度マップ情報136から取得した情報とを基に、セグメントごとの予測速度を判定する。
なお、通信速度マップ情報136においては、同じ位置についての通信速度が時間帯ごとに登録されていてもよい。例えば、昼間や夜間より、朝夕の通勤・通学時間帯の方が、同一無線基地局に同時にアクセスする端末数が多くなり、その分だけ通信速度が低下する。通信速度予測部122aは、走行経路上を移動する時刻に応じた通信速度を通信速度マップ情報136から取得することで、通信速度をより正確に予測することができる。
図28は、ナビゲーション処理部によって走行経路が予測されている場合の予測速度の判定処理について示す図である。
走行経路の予測時において、その走行経路上に分岐点がある場合には、分岐点から先の経路を確定することができず、複数の経路が予想される場合がある。図28の例では、分岐点500から先の走行経路として、経路501〜503が予測される。
このような場合、通信速度予測部122aは、分岐点から先の複数の経路のそれぞれについて、通信速度マップ情報136から通信速度を取得し、複数の経路のそれぞれについて、セグメントごとの予測速度を判定する。これにより、通信速度予測部122aは、分岐点から先の経路数分の予測速度を、セグメントごとに取得し、通信速度テーブル141に登録することになる。
有効速度計算部123aは、複数の経路のそれぞれについて取得された予測速度を用いて、経路ごとに有効速度を仮計算する。そして、有効速度計算部123aは、経路ごとに設定された重み係数を用いて、経路ごとに算出された有効速度の加重平均をとることにより、最終的な有効速度を算出する。
例えば、図28において、経路501についてセグメントごとの予測速度がr1_1,r2_1,r3_1,r4_1,r5_1,・・・と取得され、経路502についてセグメントごとの予測速度がr1_2,r2_2,r3_2,r4_2,r5_2,・・・と取得され、経路503についてセグメントごとの予測速度がr1_3,r2_3,r3_3,r4_3,r5_3,・・・と取得されたとする。なお、ここでは説明を簡単にするために、rx_1,rx_2,・・・はそれぞれセグメント1,2,・・・における予測速度であるものとする。
この場合、有効速度計算部123aはまず、セグメント1に対応する有効速度を経路ごとに仮計算する。経路501については、r1_1,r2_1,r3_1,r4_1,r5_1を用いて有効速度R_1が算出される。経路502については、r1_2,r2_2,r3_2,r4_2,r5_2を用いて有効速度R_1が算出される。経路503については、r1_3,r2_3,r3_3,r4_3,r5_3を用いて有効速度R_3が算出される。
また、経路501,502,503のそれぞれの重み係数が、10%、20%,70%と設定されたものとする。この場合、有効速度計算部123aは、最終的な有効速度Rを、0.1*R_1+0.2*R_2+0.7*R_3なる式によって計算する。
なお、計算対象のセグメントが分岐点500より前の位置に対応し、有効速度の計算のために分岐点500を跨ぐ経路に基づいて取得された予測速度が用いられる場合、分岐点500より前の位置に対応する予測速度としては経路ごとに共通の予測速度が用いられる。
経路ごとに用いられる重み係数としては、例えば、経路ごとの交通量に応じた係数を用いることができる。この場合、交通量が多いほど、その経路を通過する可能性が高いと考えられるため、重み係数の値が大きくされる。また、重み係数は、走行履歴137に基づいて設定されてもよい。この場合、過去に移動端末100aが通過した回数が多い経路ほど、重み係数の値が大きくされる。
このような処理により、未来の走行経路として複数の経路が予想される場合でも、各経路を通過する可能性を加味して有効速度を算出することが可能となる。
なお、上記の第3の実施の形態において、通信速度マップ情報136は、所定のサーバ装置からダウンロードされてもよい。この場合、通信速度マップ情報136を定期的に最新の情報に更新することができる。
また、通信速度マップ情報136はサーバ装置側に記憶されていてもよい。この場合、通信速度予測部122aは、サーバ装置にアクセスして、経路ごとの予測速度を取得する。
また、通信速度マップ情報136がサーバ装置側に記憶される場合、サーバ装置は、複数の移動端末から通信速度の実測値を収集し、収集した情報を基に通信速度マップ情報136を随時更新してもよい。
また、通信速度予測部122aは、例えば、通信速度マップ情報136を用いずに、走行経路の位置とその近傍の無線基地局の位置との距離に基づいて、予測速度を計算によって求めてもよい。
なお、上記の各実施の形態に示した装置(再生装置1、配信装置2、移動端末100,100aおよび配信サーバ200)の処理機能は、コンピュータによって実現することができる。その場合、各装置が有すべき機能の処理内容を記述したプログラムが提供され、そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc-Read Only Memory)、CD−R(Recordable)/RW(Rewritable)などがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムまたはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
以上の各実施の形態に関し、さらに以下の付記を開示する。
(付記1) ストリーミングデータの再生期間を分割した分割期間ごとに、前記ストリーミングデータのうち前記分割期間に対応するデータの配信をビットレートを指定して配信装置に要求し、指定したビットレートのデータを前記配信装置から受信して再生する再生装置において、
前記再生装置の移動経路の予測情報に基づいて、前記分割期間ごとの通信速度の予測値を取得する予測値取得部と、
それぞれの前記分割期間を起点とした複数の前記分割期間における前記予測値に基づいて、起点とした前記分割期間に対応するビットレートを当該分割期間における前記予測値を超えない範囲で決定するビットレート決定部と、
前記分割期間ごとに決定されたビットレートを指定して、それぞれの前記分割期間に対応するデータの配信をそれぞれの前記分割期間の開始時刻を待たずに前記配信装置に要求する配信要求部と、
を有することを特徴とする再生装置。
(付記2) 前記ビットレート決定部は、それぞれの前記分割期間を起点として1個からN個(ただし、Nは2以上の整数)までの互いに異なる数の前記分割期間における前記予測値の平均値を算出し、前記分割期間ごとに算出されたN個の前記平均値のうち最小の値を、前記分割期間ごとのビットレートに決定することを特徴とする付記1記載の再生装置。
(付記3) 前記ビットレート決定部は、前記予測値が0である前記分割期間のビットレートを決定する際、当該分割期間より(N−1)個前までの前記分割期間について決定されたビットレートのいずれかを、当該分割期間のビットレートに決定することを特徴とする付記2記載の再生装置。
(付記4) 前記ビットレート決定部は、前記予測値が0である前記分割期間のビットレートを決定する際、当該分割期間より(N−1)個前までの前記分割期間について決定されたビットレートのうち最大のビットレートを、当該分割期間のビットレートに決定することを特徴とする付記2記載の再生装置。
(付記5) 前記ビットレート決定部は、前記予測値が0である前記分割期間のビットレートを決定する際、当該分割期間より(N−1)個前までの前記分割期間のうち、決定されたビットレートが最大である前記分割期間を判別し、判別した前記分割期間の次の前記分割期間から前記予測値が0である前記分割期間までのすべてのビットレートを、判別した前記分割期間のビットレートに決定し直すことを特徴とする付記2記載の再生装置。
(付記6) 前記ビットレート決定部は、それぞれの前記分割期間を起点とした複数の前記分割期間における前記予測値の平均値と、起点とした前記分割期間における前記予測値のうち、小さい方の値を、起点とした前記分割期間に対応するビットレートに決定することを特徴とする付記1記載の再生装置。
(付記7) 前記ビットレート決定部は、
それぞれの前記分割期間を起点としたN個(ただし、Nは2以上の整数)の前記分割期間における前記予測値の平均値と、起点とした前記分割期間における前記予測値のうち、小さい方の値を、起点とした前記分割期間に対応するビットレートに決定し、
前記予測値が0である前記分割期間のビットレートを決定する際、当該分割期間より(N−1)個前の前記分割期間を選択し、選択した前記分割期間の次の前記分割期間から前記予測値が0である前記分割期間までのすべてのビットレートを、選択した前記分割期間のビットレートに決定し直す、
ことを特徴とする付記1記載の再生装置。
(付記8) 複数の移動経路が予測される場合、
前記予測値取得部は、前記複数の移動経路のそれぞれについて前記予測値を取得し、
前記ビットレート決定部は、前記複数の移動経路のそれぞれについて取得された前記予測値に基づいて、前記複数の移動経路のそれぞれについてビットレートを仮決定し、仮決定された複数のビットレートの加重平均をとることでビットレートを決定する、
ことを特徴とする付記1〜7のいずれか1つに記載の再生装置。
(付記9) 前記加重平均をとる際に用いられる重み係数は、前記複数の移動経路のそれぞれを通過する可能性に応じて設定されることを特徴とする付記8記載の再生装置。
(付記10) 指定された出発地から目的地までの移動経路を案内するナビゲーション処理部をさらに有し、
前記予測値取得部は、前記ナビゲーション処理部によって案内される移動経路の情報に基づいて前記予測値を取得する、
ことを特徴とする付記1〜9のいずれか1つに記載の再生装置。
(付記11) 前記予測値取得部は、前記再生装置の移動経路と、無線基地局との距離に基づいて、前記分割期間ごとの通信速度を予測することを特徴とする付記1〜10のいずれか1つに記載の再生装置。
(付記12) ストリーミングデータの再生期間を分割した分割期間ごとに、前記ストリーミングデータのうち前記分割期間に対応するデータの配信をビットレートを指定して配信装置に要求し、指定したビットレートのデータを前記配信装置から受信して再生する再生装置における制御方法であって、
前記再生装置の移動経路の予測情報に基づいて、前記分割期間ごとの通信速度の予測値を取得し、
それぞれの前記分割期間を起点とした複数の前記分割期間における前記予測値に基づいて、起点とした前記分割期間に対応するビットレートを当該分割期間における前記予測値を超えない範囲で決定し、
前記分割期間ごとに決定されたビットレートを指定して、それぞれの前記分割期間に対応するデータの配信をそれぞれの前記分割期間の開始時刻を待たずに前記配信装置に要求する、
ことを特徴とする制御方法。
(付記13) 前記ビットレートの決定では、それぞれの前記分割期間を起点として1個からN個(ただし、Nは2以上の整数)までの互いに異なる数の前記分割期間における前記予測値の平均値を算出し、前記分割期間ごとに算出されたN個の前記平均値のうち最小の値を、前記分割期間ごとのビットレートに決定することを特徴とする付記12記載の制御方法。
(付記14) 前記ビットレートの決定では、前記予測値が0である前記分割期間のビットレートを決定する際、当該分割期間より(N−1)個前までの前記分割期間について決定されたビットレートのいずれかを、当該分割期間のビットレートに決定することを特徴とする付記13記載の制御方法。
(付記15) 前記ビットレートの決定では、前記予測値が0である前記分割期間のビットレートを決定する際、当該分割期間より(N−1)個前までの前記分割期間について決定されたビットレートのうち最大のビットレートを、当該分割期間のビットレートに決定することを特徴とする付記13記載の制御方法。
(付記16) 前記ビットレートの決定では、前記予測値が0である前記分割期間のビットレートを決定する際、当該分割期間より(N−1)個前までの前記分割期間のうち、決定されたビットレートが最大である前記分割期間を判別し、判別した前記分割期間の次の前記分割期間から前記予測値が0である前記分割期間までのすべてのビットレートを、判別した前記分割期間のビットレートに決定し直すことを特徴とする付記13記載の制御方法。
(付記17) 前記ビットレートの決定では、それぞれの前記分割期間を起点とした複数の前記分割期間における前記予測値の平均値と、起点とした前記分割期間における前記予測値のうち、小さい方の値を、起点とした前記分割期間に対応するビットレートに決定することを特徴とする付記12記載の制御方法。
(付記18) 前記ビットレートの決定では、
それぞれの前記分割期間を起点としたN個(ただし、Nは2以上の整数)の前記分割期間における前記予測値の平均値と、起点とした前記分割期間における前記予測値のうち、小さい方の値を、起点とした前記分割期間に対応するビットレートに決定し、
前記予測値が0である前記分割期間のビットレートを決定する際、当該分割期間より(N−1)個前の前記分割期間を選択し、選択した前記分割期間の次の前記分割期間から前記予測値が0である前記分割期間までのすべてのビットレートを、選択した前記分割期間のビットレートに決定し直す、
ことを特徴とする付記12記載の制御方法。
(付記19) 複数の移動経路が予測される場合、
前記予測値の取得では、前記複数の移動経路のそれぞれについて前記予測値を取得し、
前記ビットレートの決定では、前記複数の移動経路のそれぞれについて取得された前記予測値に基づいて、前記複数の移動経路のそれぞれについてビットレートを仮決定し、仮決定された複数のビットレートの加重平均をとることでビットレートを決定する、
ことを特徴とする付記12〜18のいずれか1つに記載の制御方法。
(付記20) ストリーミングデータの再生期間を分割した分割期間ごとに、前記ストリーミングデータのうち前記分割期間に対応するデータの配信をビットレートを指定して配信装置に要求し、指定したビットレートのデータを前記配信装置から受信して再生するための制御プログラムにおいて、
コンピュータに、
前記コンピュータの移動経路の予測情報に基づいて、前記分割期間ごとの通信速度の予測値を取得し、
それぞれの前記分割期間を起点とした複数の前記分割期間における前記予測値に基づいて、起点とした前記分割期間に対応するビットレートを当該分割期間における前記予測値を超えない範囲で決定し、
前記分割期間ごとに決定されたビットレートを指定して、それぞれの前記分割期間に対応するデータの配信をそれぞれの前記分割期間の開始時刻を待たずに前記配信装置に要求する、
処理を実行させることを特徴とする制御プログラム。