JP2016015566A - 端末装置及びデータ配信方法 - Google Patents
端末装置及びデータ配信方法 Download PDFInfo
- Publication number
- JP2016015566A JP2016015566A JP2014135729A JP2014135729A JP2016015566A JP 2016015566 A JP2016015566 A JP 2016015566A JP 2014135729 A JP2014135729 A JP 2014135729A JP 2014135729 A JP2014135729 A JP 2014135729A JP 2016015566 A JP2016015566 A JP 2016015566A
- Authority
- JP
- Japan
- Prior art keywords
- data
- bit rate
- distribution
- unit
- terminal device
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Landscapes
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
【課題】データ再生部には何ら変更を加えることなく、該データ再生部に破綻なく配信データを供給することができるようにする。【解決手段】 取得部12により、データ再生部11からの要求に応じた配信データをデータ配信装置16から受信して、該要求に応じた転送速度でデータ再生部11に転送すると共に、データ配信装置16との間の通信経路における通信状況を取得し、判定部13により、取得部12によって取得した通信状況に基づいて、現在時点のビットレートより高ビットレートの配信データの受信に切り換え可能か否かを判定し、切換部14により、判定部13によって切り換え可能と判定された場合、上記高ビットレートの配信データの受信に切り換えると共に、受信した配信データのデータ再生部11への転送速度を、現在時点より速い速度に切り換える。【選択図】図1
Description
開示の技術は端末装置及びデータ配信方法に関する。
近年、様々な端末装置に向けて映像データ等を配信する技術として、HTTP(Hypertext Transfer Protocol)と呼ばれているプロトコルを用いてストリームデータを配信する技術が活用されるようになってきた。また、ストリームデータの配信技術として、ストリームデータを時間軸の方向に複数のファイル断片(セグメント)に分割し、クライアント端末装置(以下、「端末装置」という。)の要求するファイルをHTTPによって送信する技術が知られている。この技術では、端末装置が受信したファイルのセグメントを逐次連続的に再生することで動画の視聴を可能とする。この技術の代表的なものとして、MPEG−DASH(Moving Picture Experts Group(MPEG)-Dynamic Adaptive Streaming over HTTP)による技術があり、ISO/IEC23009−1として標準化が進んでいる。
この種のストリームデータの配信に関する従来の技術として、端末装置がサーバからルータを介して映像コンテンツ等のストリームデータを受信する形態において、ルータにより各装置間の通信品質を測定する技術が提案されている。この技術では、所定の伝送レートのテストコンテンツのストリームデータを用いて、サーバと端末装置との間、及びサーバとルータとの間のそれぞれの通信品質を測定する。また、この技術では、この通信品質の測定結果に基づいて、サーバと端末装置との間、及びサーバとルータとの間のそれぞれで上記所定の伝送レートのストリームデータが受信可能か否かを判断する。そして、この技術では、前者が受信不可で後者が受信可能の場合、端末装置により、サーバから受信しているテストコンテンツを切り替えずに、ルータに該テストコンテンツのデータ量を削減させたストリームデータを受信して通信品質の測定を行う。
また、従来の技術として、第1の送信レートでサーバからストリームデータを送信し、この送信で損失したパケット数と閾値とを比較し、該比較に基づいて第1の送信レートで送信を続けるか又は第2の送信レートに送信を切り替える技術も提案されている。
ところで、MPEG−DASH等のマルチビットレートに対応したストリームデータを端末装置により受信して、該端末装置に設けられた後述するローカルプロキシサーバを介してメディアプレーヤに代表されるデータ再生部で再生する場合を考える。この場合、一般に、ローカルプロキシサーバを基準としてデータ配信サーバ側及びデータ再生部側のそれぞれの通信区間の通信速度には大きな速度差がある。具体的には、データ配信サーバ側の通信速度より、データ再生部側の方が著しく通信速度が速い。このため、データ再生部が、より高ビットレートの配信データを要求した場合、ローカルプロキシサーバによるストリームデータの取得が間に合わず、ストリームデータのデータ再生部への供給が破綻してしまう場合があるという問題があった。
この問題に関連して、前述した従来の技術は、データ配信サーバとローカルプロキシサーバとの間の通信状況に関しては考慮されておらず、該問題を解決することはできない。なお、この問題は、端末装置に設けられたローカルプロキシサーバがストリームデータの受信に介在する場合に限らず、ハードウェアにより単体構成とされたプロキシサーバがストリームデータの受信に介在する場合にも生じ得る問題である。
開示の技術は、一つの側面として、データ再生部には何ら変更を加えることなく、該データ再生部に破綻なく配信データを供給することができるようにすることが目的である。
開示の技術は、動画及び音声の少なくとも一方を表し、マルチビットレートに対応した配信データから、何れかのビットレートの配信データの配信を選択的に要求し、該要求に応じて受信した配信データを再生するデータ再生部を備える。また、開示の技術は、前記データ再生部からの要求に応じた配信データをデータ配信装置から受信して、該要求に応じた転送速度で前記データ再生部に転送すると共に、前記データ配信装置との間の通信経路における通信状況を取得する取得部を備える。また、開示の技術は、前記取得部によって取得された通信状況に基づいて、現在時点のビットレートより高ビットレートの配信データの受信に切り換え可能か否かを判定する判定部を備える。また、開示の技術は、前記判定部によって切り換え可能と判定された場合、前記高ビットレートの配信データの受信に切り換えると共に、受信した配信データの前記データ再生部への転送速度を、現在時点より速い速度に切り換える切換部を備える。
開示の技術は、一つの側面として、データ再生部には何ら変更を加えることなく、該データ再生部に破綻なく配信データを供給することができる、という効果を有する。
以下、図面を参照して開示の技術の実施形態の一例を詳細に説明する。
〔第1実施形態〕
図1には、本実施形態に係る端末装置10が示されている。図1に示すように、本実施形態に係る端末装置10は、データ再生部11、取得部12、判定部13及び切換部14を備えている。
データ再生部11は、動画及び音声の少なくとも一方を表し、マルチビットレートに対応した配信データ(本実施形態では、ストリームデータ)から、何れかのビットレートの配信データの配信を選択的に要求し、該要求に応じて受信した配信データを再生する。なお、本実施形態では、データ再生部11として、コンピュータ上で動画や音声の電子ファイルを再生するためのアプリケーション・ソフトウェアとして構成されたメディアプレーヤを適用しているが、これに限定されるものではない。例えば、ハードウェアにより構成された映像再生装置や、ソフトウェアにより構成されたメディアプレーヤ以外の映像再生プログラム等をデータ再生部11として適用してもよい。
一方、取得部12は、データ再生部11からの要求に応じた配信データをデータ配信装置16から受信して、該要求に応じた転送速度でデータ再生部11に転送すると共に、データ配信装置16との間の通信経路における通信状況を取得する。なお、取得部12では、データ再生部11からの要求に応じたビットレートの配信データである第1の配信データを受信している場合に、該ビットレートより高いビットレートの配信データである第2の配信データをデータ配信装置16に要求して受信する。そして、取得部12では、該第2の配信データの受信に要した時間に基づいて通信状況を取得する。
なお、本実施形態では、後述するようにP2P(Peer to Peer、ピア・ツー・ピア)技術により他の端末装置10から配信データを受信する場合があるが、この場合に、取得部12は、該他の端末装置10との間の通信経路における通信状況を取得する。また、本実施形態では、上記通信経路としてネットワーク80を適用している。
また、判定部13は、取得部12によって取得された通信状況に基づいて、現在時点のビットレートより高ビットレートの配信データの受信に切り換え可能か否かを判定する。なお、本実施形態に係る判定部13は、取得部12によって取得された通信状況に基づいて、現在時点のビットレートより低ビットレートの配信データの受信に切り換える必要があるか否かをさらに判定する。
さらに、切換部14は、判定部13によって切り換え可能と判定された場合、上記高ビットレートの配信データの受信に切り換えると共に、受信した配信データのデータ再生部11への転送速度を、現在時点より速い速度に切り換える。なお、本実施形態に係る切換部14は、判定部13によって切り換え可能と判定された場合、上記第2の配信データの受信に要した時間に基づいて上記転送速度を切り換える。また、本実施形態に係る切換部14は、判定部13により、上記低ビットレートの配信データの受信に切り換える必要があると判定された場合、該低ビットレートの配信データの受信に切り換える。そして、この場合、切換部14は、受信した配信データのデータ再生部11への転送速度を、現在時点より遅い速度に切り換える。
本実施形態に係る端末装置10では、切換部14を、データ配信装置16から受信する配信データの切り換えを行う第1切換部14Aと、データ再生部11への配信データの転送速度の切り換えを行う第2切換部14Bと、の2つの切換部に区分している。すなわち、第1切換部14Aは、より高ビットレートの配信データの受信に切り換えたり、より低ビットレートの配信データの受信に切り換えたりする。また、第2切換部14Bは、受信した配信データのデータ再生部11への転送速度を、現在時点より速い速度に切り換えたり、現在時点より遅い速度に切り換えたりする。
なお、本実施形態に係る端末装置10では、上記配信データとして、動画及び音声の双方を含む映像を表す映像データを適用し、データ配信装置16として、映像配信サーバを適用している。端末装置10におけるデータ再生部11は開示の技術に係るデータ再生部の一例であり、取得部12は開示の技術に係る取得部の一例であり、判定部13は開示の技術に係る判定部の一例であり、切換部14は開示の技術に係る切換部の一例である。
ところで、本実施形態では、端末装置10のデータ再生部11が再生対象とする映像データとして、上述したMPEG−DASHにより規定されるデータを適用している。MPEG−DASHは、上述したようにマルチビットレートの切り換えに対応している。また、MPEG−DASHによる配信では、メディアプレーヤは、ストリームデータの受信速度に余裕があると判断すると、より高いビットレート(高画質、高音質)の映像データの配信に要求を切り換え、ユーザは、より高品質の映像の視聴が体験できる。
また、メディアプレーヤは、一般に、映像の視聴を開始する際には、複数のビットレートのストリームデータのうち、まずビットレートが最も低いストリームデータを要求し、該ストリームデータの受信速度を計測しながら映像の再生を開始する。次いで、メディアプレーヤは、受信速度がより高いビットレートのストリームデータ(以下、「高ビットレートデータ」という。)の受信が十分に行えると判断すると、要求するストリームデータを高ビットレートデータへと切り換える。
一方、端末装置は、高ビットレートデータを受信している間も受信速度を計測し、実際の受信速度が該高ビットレートデータの受信に不十分となった場合には、より低いビットレートのストリームデータ(以下、「低ビットレートデータ」という。)に切り換える。このように、MPEG−DASHは、ネットワークの条件により時々刻々と変化するストリームデータの受信速度に応じ、要求するストリームデータのビットレートを切り換えることで、可能な限り高い映像品質でストリームデータの取得を試みる技術とされている。
一方、映像配信サーバにおける映像データの配信のための処理の負荷や、ネットワークにおける通信の負荷を軽減する観点から、負荷を分散するための技術として、P2P技術が知られている。
すなわち、従来のクライアント・サーバ型のデータ配信技術では、データを受信する端末装置の数の増加に伴い、それに比例したデータ配信のための負荷が映像配信サーバに発生する。そのため、規模が比較的大きなシステムにおいては、アクセスが集中する映像配信サーバやネットワーク基盤の増強が必須であり、データ配信のためのコストの低減が課題となる。この課題を解決するための技術として、近年、P2P技術を応用したデータ配信技術が注目されている。
P2P技術による映像データの配信では、映像配信サーバが映像データを受信する端末装置の全てに該映像データを直接配信するのではなく、一部の端末装置のみに該映像データを配信する。そして、P2P技術では、映像配信サーバから映像データを受信した端末装置が、受信した映像データを再生するだけでなく、該映像データを別の端末装置へ転送することで、該別の端末装置が映像データを再生できるようになる。この場合、映像配信サーバは上記別の端末装置へ映像データを配信しなくてよいため、該配信のための負荷を軽減することができる。
このように、P2P技術によるストリーミング配信では、ストリームデータを受信した端末装置が、該ストリームデータを他の端末装置へ中継することができるため、ストリームデータを次々にリレー配信することにより大規模な一斉同報配信を行うことができる。従って、P2P技術によるストリーミング配信は、端末装置の増加に対する映像配信サーバのデータ配信のための負荷の増加が緩やか、若しくは影響がない、という特徴を備えている。そして、P2P技術によるストリーミング配信は、物理的なネットワークの環境を意識しない、端末装置間の論理リンクで形成される論理ネットワーク(オーバーレイ・ネットワーク)上でのデータ配信を行っていると見なすことができる。
また、P2P技術による映像配信システムでは、ストリームデータの取得を行うP2Pクライアントモジュールと、映像の再生を行う一般的なメディアプレーヤとを同一の端末装置内に分離して配備することが可能である。そして、この形態では、P2Pクライアントモジュールがメディアプレーヤからの映像データの取得の要求を受けて、対象とするストリームデータを映像配信サーバ、または他のP2Pクライアントモジュールから取得し、メディアプレーヤへと供給する。すなわち、P2Pクライアントモジュールは、メディアプレーヤにとって、映像配信サーバからのストリームデータの取得を代行する、ローカルプロキシサーバ(以下、単に「プロキシサーバ」ともいう。)と見なすことができる。
ところで、P2P技術による映像配信システムでは、一般に、プロキシサーバを基準として映像配信サーバ側及びメディアプレーヤ側のそれぞれの通信区間の通信速度には大きな速度差がある。上述したように、プロキシサーバとメディアプレーヤは同一の端末装置に配備される。従って、プロキシサーバとメディアプレーヤとの間の通信速度は映像配信サーバや他の端末装置とプロキシサーバとの間の通信速度に比較して高速であり、該通信速度とは無相関である。
また、P2P技術による映像配信システムでは、P2Pクライアントモジュールは必要なストリームデータを確実かつ速やかに他の端末装置等から取得できるとは限らない。このため、P2Pクライアントモジュールは、可能な限り先読みを行ってキャッシュ(Cache)しておくことにより、メディアプレーヤからのストリームデータの要求に備える必要がある。
ここで、プロキシサーバがメディアプレーヤからのストリームデータの送信要求に対して素直に応答し、先読みしてキャッシュしたストリームデータを供給する場合を考える。この場合、メディアプレーヤからみた見かけ上の映像配信サーバ等へのストリームデータの送信要求に対するストリームデータの取得が非常に高速に完了する。このため、メディアプレーヤは、その時点で受信しているストリームデータのビットレートよりも高いビットレートのデータ(高ビットレートデータ)を取得するように、受信対象とするストリームデータを切り換える動作を行う。
しかし、実際に行われた先読みによるキャッシング処理では、受信中のストリームデータがぎりぎりで受信できる通信速度でようやく受信できた可能性もある。従って、このような状況でメディアプレーヤが高ビットレートデータを要求すると、ストリームデータの取得が間に合わず、ストリームデータのメディアプレーヤへの供給が破綻してしまう可能性があった。また、対象とするストリームデータが切り換えられると、プロキシサーバにおける先読みの予測が外れることとなり、安定性も低下する場合があった。
なお、これらの問題は、通信プロトコルとしてMPEG−DASHを適用した場合のみに生じる問題ではなく、マルチビットレートに対応した通信プロトコルを適用した場合には生じ得る問題である。例えば、通信プロトコルとして、マイクロソフト社のスムーズ・ストリーミングや、アドビシステムズ社によるRTMP(Real Time Messaging Protocol)を適用した場合にも生じ得る。また、例えば、通信プロトコルとして、アップル社によるHLS(HTTP Live Streaming)や、リアルネットワークス社によるRTSP(Real Time Streaming Protocol)等を適用した場合にも生じ得る問題である。また、この問題は、ローカルプロキシサーバを用いた映像配信システムのみに生じる問題ではなく、プロキシサーバをハードウェアで構成し、映像配信サーバと端末装置との間にプロキシサーバを介在させたシステム等においても生じ得る問題である。
これらの問題を解決するために、本実施形態に係る端末装置10は、前述した取得部12、判定部13及び切換部14を備えている。
本実施形態に係る端末装置10及びデータ配信装置16は、図2に示すコンピュータ・システム30に含まれるクライアントPC(Personal Computer)40及び映像配信サーバ50によって各々実現することができる。本実施形態に係るコンピュータ・システム30は、上述したP2P技術を採用しており、ネットワーク80に各々アクセス可能とされた複数のクライアントPC40と、映像配信サーバ50と、P2Pインデックスサーバ60と、を含んでいる。
クライアントPC40は、CPU(Central Processing Unit)41、メモリ42、記憶部43、入力部44、表示部45、媒体読み書き装置(R/W)46及び通信インタフェース(I/F)部47を備えている。CPU41、メモリ42、記憶部43、入力部44、表示部45、媒体読み書き装置46及び通信I/F部47はバス48を介して互いに接続されている。媒体読み書き装置46は、記録媒体96に書き込まれている情報の読み出し及び記録媒体96への情報の書き込みを行う。
記憶部43は、HDD(Hard Disk Drive)やフラッシュメモリ等によって実現できる。記憶部43には、クライアントPC40を端末装置10として機能させるためのテスト・切換プログラム43A、データ転送プログラム43B及びメディアプレーヤMPが記憶されている。
テスト・切換プログラム43Aは、テスト・切換プログラム43Aが書き込まれた記録媒体96が媒体読み書き装置46にセットされ、媒体読み書き装置46が記録媒体96からのテスト・切換プログラム43Aの読み出しを行うことで、記憶部43へ記憶される。CPU41は、テスト・切換プログラム43Aを記憶部43から読み出してメモリ42に展開し、テスト・切換プログラム43Aが有するプロセスを順次実行する。
同様に、データ転送プログラム43Bは、データ転送プログラム43Bが書き込まれた記録媒体96が媒体読み書き装置46にセットされ、媒体読み書き装置46が記録媒体96からのデータ転送プログラム43Bの読み出しを行うことで、記憶部43へ記憶される。CPU41は、データ転送プログラム43Bを記憶部43から読み出してメモリ42に展開し、データ転送プログラム43Bが有するプロセスを順次実行する。
テスト・切換プログラム43Aは、取得プロセス43A1、判定プロセス43A2及び第1切換プロセス43A3を有する。CPU41は、取得プロセス43A1を実行することで、図1に示す取得部12として動作する。また、CPU41は、判定プロセス43A2を実行することで、図1に示す判定部13として動作する。さらに、CPU41は、第1切換プロセス43A3を実行することで、図1に示す切換部14における第1切換部14Aとして動作する。
一方、データ転送プログラム43Bは、第2切換プロセス43B1を有する。CPU41は、第2切換プロセス43B1を実行することで、図1に示す切換部14における第2切換部14Bとして動作する。なお、前述したように、メディアプレーヤMPは端末装置10のデータ再生部11に相当するものである。
以上により、テスト・切換プログラム43A、データ転送プログラム43B及びメディアプレーヤMPを実行したクライアントPC40が、端末装置10として機能することになる。すなわち、本実施形態に係るコンピュータ・システム30では、テスト・切換プログラム43A及びデータ転送プログラム43Bが、ローカルプロキシサーバとして機能するP2PクライアントモジュールCMに含まれる。
一方、P2Pインデックスサーバ60は、P2Pのネットワークに参加して映像を視聴する各クライアントPC40に関する情報(以下、「端末情報」という。)を管理する役割を有している。また、P2Pインデックスサーバ60は、映像データの供給元となる他のクライアントPC40に関する情報を新規にP2Pのネットワークに参加したクライアントPC40に提供する役割も有している。このように、本実施形態に係るコンピュータ・システム30は、P2Pインデックスサーバ60を用いたハイブリッドP2Pの形態とされているが、これに限らない。本実施形態に係るコンピュータ・システム30が、端末情報を各クライアントPC40が少しずつ分散して持ち合うピュアP2Pの形態等とされていてもよい。
P2Pインデックスサーバ60は、記憶部63を備えている。記憶部63はHDDやフラッシュメモリ等によって実現できる。記憶部63には、端末情報管理テーブル記憶領域63Aが設けられている。P2Pインデックスサーバ60の図示しないCPUが、端末情報管理テーブル記憶領域63Aに記憶されたデータを図示しないメモリに展開することにより、端末情報管理テーブルが作成される。
図3には、本実施形態に係る端末情報管理テーブルの構成の一例が示されている。
図3に示すように、本実施形態に係る端末情報管理テーブルは、端末名、IP(Internet Protocol)アドレス、受信ストリーム、セグメント番号、参加時刻及び終了時刻の各情報が記憶される。
端末名はクライアントPC40を特定するための情報であり、各クライアントPC40の各々別に個別の情報が割り当てられる。また、IPアドレスは、対応する端末名によって示されるクライアントPC40のIPアドレスを示す情報であり、受信ストリームは、対応するクライアントPC40が受信しているストリームデータを特定するための情報である。また、セグメント番号は受信中のストリームデータのセグメントを示す情報であり、参加時刻及び終了時刻は、対応するクライアントPC40が、P2Pインデックスサーバ60が管理するP2Pのネットワークに参加した時刻及び該参加を終了した時刻を各々示す。
次に、本実施形態の作用を説明する。
[コンピュータ・システム30の基本動作]
まず、図4及び図5を参照して、コンピュータ・システム30の基本的な動作を説明する。なお、図4は、コンピュータ・システム30の基本的な動作の説明に供するブロック図であり、図5は、コンピュータ・システム30で用いられる各種メッセージの構成例を示す概略図である。また、錯綜を回避するため、ここでは、本実施形態に係るコンピュータ・システム30として、P2Pのネットワークに参加するクライアントPC40が、クライアントPC40A〜40Cの3台のみである場合について説明する。
図4に示すように、各クライアントPC40A〜40Cは、上述したP2PクライアントモジュールCMを搭載すると共に、メディアプレーヤMPを搭載している。メディアプレーヤMPは、ストリームデータをP2PクライアントモジュールCMから取得する。
以下、クライアントPC40AとクライアントPC40Cとが同一の映像を表し、かつ異なるビットレートのストリームデータを受信中である場合を想定する。また、ここでは、クライアントPC40Aが受信しているストリームデータの方が、クライアントPC40Cが受信しているストリームデータより高ビットレート(高画質、高音質)であるものとする。以下、クライアントPC40Aが受信しているストリームデータのビットレートを「高ビットレート」といい、クライアントPC40Cが受信しているストリームデータのビットレートを「低ビットレート」という。
この場合、クライアントPC40AとクライアントPC40Cの各々の端末情報が、P2Pインデックスサーバ60により端末情報管理テーブルによって管理されており、図3には、この場合の端末情報管理テーブルの一例が示されている。なお、図3では、便宜上、端末名としてクライアントPC40Aを「端末A」と表記し、クライアントPC40Cを「端末C」と表記している。
ここで、クライアントPC40Bが、クライアントPC40A及びクライアントPC40Cと同一の映像を示すストリームデータを受信する端末装置とされ、P2Pのネットワークに参加する場合、以下のように動作する。
まず、クライアントPC40Bは、P2Pインデックスサーバ60に、ストリームデータを要求する接続先を問い合わせるJOINメッセージ80を、自らの端末情報としてIPアドレス、受信対象とするストリームデータの種別等を含めて送信する。P2Pインデックスサーバ60は、JOINメッセージ80を受信すると、この時点で保持している端末情報管理テーブルとJOINメッセージ80内の情報を照らし合わせる。そして、P2Pインデックスサーバ60は、クライアントPC40Bが受信対象としているストリームデータと同一のデータを受信しているクライアントPC40に関する情報を端末情報管理テーブルから読み出す。そして、P2Pインデックスサーバ60は、読み出した情報をJOIN_ACKメッセージ81として、JOINメッセージ80の送信元のクライアントPC40Bに返信する。
例えば、クライアントPC40Bが、初期の段階で低ビットレートのストリームデータから受信を開始するものとする。このとき、P2Pインデックスサーバ60は、JOINメッセージ80の内容から、クライアントPC40Bが低ビットレートのストリームデータを受信対象としていることを把握する。そして、P2Pインデックスサーバ60は、端末情報管理テーブルから同一の低ビットレートのストリームデータを受信中のクライアントPC40Cに関する情報を読み出し、JOIN_ACKメッセージ81として返送する。
クライアントPC40Bは、P2Pインデックスサーバ60から受信したJOIN_ACKメッセージ81に含まれるクライアントPC40CのIPアドレスに基づき、クライアントPC40CにCONNECTメッセージ82を送信して、接続が完了する。
これ以降、クライアントPC40BのP2PクライアントモジュールCMはクライアントPC40Cに必要なストリームデータを要求して取得する。P2Pインデックスサーバ60は、適切なクライアントPC40が見つからない場合には、映像配信サーバ50に関する情報をJOIN_ACKメッセージ81でクライアントPC40Bに通知する。この場合、クライアントPC40Bは、必要なストリームデータを映像配信サーバ50に要求して受信する。動作としてはストリームデータを他のクライアントPC40AやクライアントPC40Cから取得する場合でも、映像配信サーバ50から取得する場合でも、クライアントPC40Bからみた場合には変わりはない。
コンピュータ・システム30において、P2PクライアントモジュールCMは、取得したストリームデータを内部のキャッシュ領域(本実施形態では、メモリ42の所定領域)に保持する。そして、P2PクライアントモジュールCMは、メディアプレーヤMPからのストリームデータの取得の要求に応じて該ストリームデータをキャッシュ領域から読み出してメディアプレーヤMPに供給する。また、他のクライアントPC40のP2PクライアントモジュールCMからストリームデータの取得の要求を受信した場合にも、同様にキャッシュ領域から対応するストリームデータを読み出して、該ストリームデータの供給先のクライアントPC40への供給を行う。
ところで、MPEG−DASHでは、配信する各ストリームデータに関する情報を記載したMPD(Media Presentation Description)と呼ばれるファイルの形式や、実際のストリームデータ(動画ストリーム、音声ストリーム等)の形式等を規定している。そして、ストリームデータは、セグメントと呼ばれる小さなファイルの断片として扱われる。映像配信サーバ50は、これらのファイルがHTTPによって要求されると、該要求に応じて要求元のクライアントPC40に、これらのファイルを供給する。MPDファイルには、どのようなビットレートのストリームデータが配備されているか、各ストリームデータのセグメント番号、ビットレート等が記載されており、メディアプレーヤMPは、これらを読み取ることで目的のファイル名を決定して送信の要求を行うことが可能となる。
MPEG−DASHによる配信形式に対応したメディアプレーヤMPは、一般に、以下のアルゴリズムでストリームデータの要求を行う。
まず、メディアプレーヤMPは、MPDファイルを読み込み、読み込んだMPDファイルに記載されている複数のビットレートのストリームデータのうち、最低のビットレートのストリームデータを選択し、受信を開始する。すなわち、最初はネットワークにおいて利用可能な帯域が不明なので、まずは最低のビットレートのストリームデータの受信から開始し、状況に応じて、より高いビットレートのストリームデータの受信に切り換えていくのが一般的である。メディアプレーヤMPで映像を視聴しているユーザにとっては、最初に低画質で低音質の映像の再生が開始された後、ネットワークが高ビットレートのストリームデータを受信するのに十分な状況であれば、段階的に、より高画質で高音質の映像に切り換わっていく。
[クライアントPCによるストリームデータの具体的な取得手順]
次に、クライアントPC40による、より具体的なストリームデータの取得の手順を説明する。なお、ここでも、図4を参照して、P2PのネットワークにクライアントPC40A〜40Cの3台のみが参加し、ビットレートとして上述した高ビットレート及び低ビットレートの2種類のみが用意されている場合について説明する。以下、低ビットレートのストリームデータをストリームS1とし、高ビットレートのストリームデータをストリームS2として説明する。
まず、クライアントPC40Bを操作するユーザが、視聴したい映像を、例えばクライアントPC40Bのウェブ・ブラウザから選択する。これにより、選択した映像のURL(Uniform Resource Locators)に示されたMPDファイルの取得の要求が、クライアントPC40B内のローカルプロキシサーバPSとして動作するP2PクライアントモジュールCMに送信される。P2PクライアントモジュールCMは、対象とするMPDファイルを映像配信サーバ50から取得し、内部のキャッシュ領域に格納すると共に、内部状態を「映像配信開始」とし、MPDファイルをウェブ・ブラウザに供給する。
ウェブ・ブラウザは、MPDファイルを取得すると、取得したMPDファイルと関連付けされているメディアプレーヤMPを起動し、メディアプレーヤMPにMPDファイルを入力する。メディアプレーヤMPは、MPDファイルが入力されると、該MPDファイルに記載されているストリームデータのうち、最もビットレートの低いストリームS1の第1セグメント(1番目のセグメント)をP2PクライアントモジュールCMに要求する。
「映像配信開始」状態においてストリームS1の第1セグメントの要求を受けると、P2PクライアントモジュールCMは、該要求を受けた時刻を時刻Tcrとしてメモリ42に記憶すると共に、P2Pインデックスサーバ60へJOINメッセージ80を送信する。
JOINメッセージ80を受信したP2Pインデックスサーバ60は、前述したように、ストリームS1を受信しているクライアントPC40Cを接続相手の候補として、JOIN_ACKメッセージ81に含めてクライアントPC40Bに返送する。クライアントPC40Bは、受信したJOIN_ACKメッセージ81の内容に従い、CONNECTメッセージ82をクライアントPC40Cへ送信して、ストリームS1の供給元となるP2PクライアントであるクライアントPC40Cへの接続が完了する。
その後、クライアントPC40BのP2PクライアントモジュールCMは、メディアプレーヤMPから要求のあったストリームS1の第1セグメントをクライアントPC40Cから取得し、キャッシュ領域に格納すると共にメディアプレーヤMPへ供給する。
この際のストリームS1のメディアプレーヤMPへの供給のタイミング(時刻)Tは、以下のように決定する。すなわち、ストリームS1のビットレートをB1とし、ストリームS2のビットレートをB2とする。また、P2PクライアントモジュールCMとメディアプレーヤMPは同一のクライアントPCに設けられているため、その間の通信時間が無視できるとする。この場合、P2PクライアントモジュールCMからメディアプレーヤMPへのストリームS1の供給速度、すなわちメディアプレーヤMPからみた場合のストリームS1の受信速度SPDは、1セグメントのサイズをS[bit]とした場合、簡易的に次の式(1)で表される。
従って、P2PクライアントモジュールCMは、次の式(2)を満足するように時刻Tを決定し、該時刻TにメディアプレーヤMPへ第1セグメントを供給すればよい。
実際にはビットレートB1よりも十分速く、かつビットレートB2には満たない時刻Tを選択することにより、現状のストリームS1の受信が十分可能で、かつ高ビットレートのストリームS2の受信には不十分な受信速度となる。これにより、メディアプレーヤMPは、ストリームS2への切り換えは行わないが、現状のストリームS1を受信するには十分な速度となるため、安定した映像の再生が可能となる。なお、上記ビットレートB1よりも十分速く、かつビットレートB2には満たない時刻Tとしては、例えば、式(2)において、ビットレートB1とビットレートB2との中央のビットレートとなる時刻T等が例示される。
また、クライアントPC40BのP2PクライアントモジュールCMは、メディアプレーヤMPからの次のデータの取得の要求に備え、MPDファイルから推測される第2セグメント(2番目のセグメント)の取得の要求をクライアントPC40Cに送信する。また、この際、P2PクライアントモジュールCMは、該要求をクライアントPC40Cに送信した時刻を時刻Tsとしてメモリ42に記憶する。その後、クライアントPC40BのP2PクライアントモジュールCMは、クライアントPC40Cから該当するストリームS1が送信されてくると、受信を完了した時刻を時刻Trとしてメモリ42に記憶し、受信したストリームS1をキャッシュ領域に格納する。
クライアントPC40BのP2PクライアントモジュールCMは、次の式(3)で示される受信速度Brcvを第2セグメントの受信速度としてメモリ42に記憶し、第2セグメントの先読み処理を完了する。
これ以降、クライアントPC40BのP2PクライアントモジュールCMは、以上と同様の処理により、第3セグメント以降のキャッシュ領域への格納及び対応するセグメントの受信速度Brcvのメモリ42への記憶を繰り返し行う。
ここで、先読み処理を何セグメント行うかは設定次第であるが、先読み量を多くするほど、キャッシュ領域を消費し、ユーザがメディアプレーヤMP上で停止操作を行った場合等の無駄な先読みが多くなる。これに対し、先読み量を少なくするほど、通信速度が低下した場合等にストリームデータの供給が間に合わず、映像の再生に影響が出る可能性が高くなる。これらを考慮して、本実施形態では、例えば、2〜3セグメントの先読み量に設定する。
[通信状況に応じたビットレートの切り換えに関するクライアントPCの動作]
次に、図6を参照して、ネットワーク80の通信状況に応じて映像配信サーバ50から受信する映像データのビットレートを切り換える場合のクライアントPC40の動作について説明する。
ローカルプロキシサーバPSとして機能するP2PクライアントモジュールCMは、データの受信に関する内部状態として、安定している状態である「stable」状態を有する。また、P2PクライアントモジュールCMは、データの受信に関する内部状態として、より高いビットレートのデータの受信への切り換えが可能な状態である「fast enough」状態を有する。また、P2PクライアントモジュールCMは、データの受信に関する内部状態として、より高いビットレートのデータの受信テストを行っている状態である「under testing」状態を有する。さらに、P2PクライアントモジュールCMは、データの受信に関する内部状態として、より高いビットレートのデータの受信への切り換え中の状態である「under switching」状態、帯域不足の状態である「too slow」状態を有する。このように、P2PクライアントモジュールCMは、データの受信状況に応じて内部状態が遷移する。
クライアントPC40のP2PクライアントモジュールCMは、メディアプレーヤMPからのストリームデータの要求を受信すると、テスト・切換プログラム43Aを実行させることで、図6に示すテスト・切換処理が行われる。以下、本実施形態に係るテスト・切換処理について説明する。なお、錯綜を回避するため、ここでは、通常のストリームデータを受信する処理(以下、「通常受信処理」という。)は別スレッドとして、上述したように行っている場合について説明する。
テスト・切換処理のステップ100において、取得部12は、本テスト・切換処理において用いる閾値Th1,Th2,・・・、マージンα,β、及び閾値THfe,THutの設定を行うと共に、カウンタFE,UTのリセット(ここでは、1を代入)を行う。
本実施形態に係るテスト・切換処理では、MPEG−DASHにより規定されるストリームデータとして、2種類のビットレートのみならず、3種類以上のビットレートを有するストリームデータに対応している。そして、本実施形態に係るテスト・切換処理では、閾値Th1,Th2,・・・として、ストリームデータにおける最も低速のビットレートから順に、各ビットレートの値そのものをそれぞれ設定する。すなわち、閾値Th1として最も低速のビットレートを設定し、閾値Th2として次に低速のビットレートを設定し、以下、同様に各閾値を設定する。なお、以下では、閾値Th1,Th2,・・・を総称する場合は「閾値Th」と記載する。
一方、本実施形態に係るテスト・切換処理では、後述するように、上記各閾値Th1,Th2,・・・と、ストリームデータの受信速度と、を比較する処理を行っているが、上記マージンα及びマージンβは、その際の各閾値Thのマージンとして適用する値である。本実施形態では、マージンα及びマージンβとして同一の固定値(本実施形態では、10(kbps))を用いているが、これに限定されるものではない。例えば、マージンα及びマージンβとして異なる値を設定してもよく、また、例えば、マージンα及びマージンβとして、該マージンを適用する閾値の予め定められた割合(一例として10%)の値を適用する形態としてもよい。
さらに、上記閾値THfe、THut及びカウンタFE、UTは、テスト・切換処理において同一の処理を繰り返して実行する際の繰り返し回数を規定するために用いるものである。
ステップ102において、取得部12は、別スレッドで実行している通常受信処理において、最も直近にメモリ42に記憶された受信速度Brcvを読み出すことにより該受信速度Brcvを取得する。
ステップ104において、判定部13は、受信速度Brcvが、この時点で上記通常受信処理において受信しているストリームデータのビットレートより1段階高いビットレートに対応する閾値Thにマージンβを加えた値より大きいか否かを判定する。ここで、否定判定となった場合はステップ106に移行する。
ステップ106において、判定部13は、受信速度Brcvが、この時点で上記通常受信処理において受信しているストリームデータのビットレートに対応する閾値Thにマージンαを加えた値より小さいか否かを判定する。ここで、否定判定となった場合は「stable」状態にあるものと見なして後述するステップ136に移行する一方、肯定判定となった場合は、「too slow」状態にあるものと見なしてステップ108に移行する。
ステップ108において、第1切換部14Aは、上記通常受信処理に対して、この時点より1段階低いビットレートのストリームデータ(以下、「低側データ」という。)の受信に切り換えるように指示し、その後に後述するステップ136に移行する。この指示に応じて、上記通常受信処理では、これ以降、受信対象とするストリームデータを低側データに切り換え、該低側データを先読みしてキャッシュ領域に格納する。また、この切り換えを行う際に、上記通常受信処理では、切り換えた後のストリームデータの種類、セグメント番号等を更新情報としてUPDATE_INFOメッセージ85でP2Pインデックスサーバ60に通知する。これに応じて、P2Pインデックスサーバ60は、保持している端末情報管理テーブルを更新する。
すなわち、受信速度BrcvがメディアプレーヤMPから要求されているビットレートより低下した場合は、これ以後、安定したストリームデータの受信や映像の再生が困難となる。このため、本テスト・切換処理では、この場合、受信対象とするストリームデータを1段階低いビットレートのストリームデータに切り換える処理を行っている。この際の低ビットレート側への切り換えは、それまでは切り換え前のビットレートのストリームデータが十分な速度で受信できていたと考えられるので即座に切り換えを行う。しかしながら、これに限定されず、後述する高ビットレート側への切り換え時と同様にテストを実施してから切り換える形態としてもよい。
なお、ステップ108の処理を実行する際に、上記通常受信処理によって最低のビットレートのストリームデータを受信している場合には、本ステップ108の処理を実行することなく、すなわち、低側データへの切り換えを行うことなくステップ136に移行する。
一方、上記ステップ104において肯定判定となった場合は、「fast enough」状態にあるものと見なしてステップ110に移行する。
ステップ110において、取得部12は、上記ステップ102の処理と同様の処理によって受信速度Brcvを取得する。
ステップ112において、判定部13は、受信速度Brcvが、この時点で上記通常受信処理において受信しているストリームデータのビットレートより1段階高いビットレートに対応する閾値Thにマージンβを加えた値より大きいか否かを判定する。ここで、否定判定となった場合は、「stable」状態にあるものと見なしてステップ124に移行し、カウンタFEをリセット(ここでは、1を代入)し、その後に上記ステップ102に戻る。また、ステップ112において、肯定判定となった場合にはステップ114に移行する。
ステップ114において、取得部12は、カウンタFEの値を1だけインクリメントし、ステップ116において、取得部12は、カウンタFEの値が閾値THfeを超えたか否かを判定する。ここで、否定判定となった場合は上記ステップ110に戻り、肯定判定となった場合は、「under testing」状態に遷移可能な状態にあるものと見なしてステップ118に移行する。
ステップ118において、取得部12は、この時点で上記通常受信処理において適用しているビットレートより1段階高いビットレートのストリームデータ(以下、「高側データ」という。)を受信できる装置をP2Pインデックスサーバ60に問い合わせる。また、取得部12は、該問い合わせに応じてP2Pインデックスサーバ60から受信した情報により示される装置(以下、「高側データ受信可能装置」という。)に対して、上記高側データを要求すると共に、この時点の時刻を時刻Tsとしてメモリ42に記憶する。
なお、本ステップ118において、取得部12は、P2Pインデックスサーバ60への上記問い合わせを、QUERY_INFOメッセージ83を用いて行う。QUERY_INFOメッセージ83を受信すると、P2Pインデックスサーバ60は、端末情報管理テーブルを参照し、上記高側データを受信中のクライアントPC40、すなわち高側データ受信可能装置の情報をQUERY_ACKメッセージ84にて返信する。QUERY_ACKメッセージ84を受信すると、取得部12は、高側データ受信可能装置にCONNECTメッセージ82を送信し、該高側データのセグメントを要求すると共に、この時点の時刻Tsを記憶する。このとき要求する高側データのセグメント番号は、上記通常受信処理で受信しているストリームデータの最新のセグメントが第N番目のセグメントであった場合は、第N+1番目のセグメント番号とする。
ステップ120において、取得部12は、高側データ受信可能装置から上記高側データを受信すると共に、この時点の時刻を時刻Trとして、前述した式(3)に代入することにより、受信速度Brcvを算出する。
ステップ122において、判定部13は、算出した受信速度Brcvが、上記高側データのビットレートに対応する閾値Thにマージンβを加えた値より十分大きいか否かを判定する。ここで、否定判定となった場合は、「stable」状態にあるものと見なしてステップ124に移行し、カウンタUTをリセット(ここでは、1を代入)し、その後に上記ステップ102に戻る。また、ステップ122において肯定判定となった場合に、取得部12は、ステップ126に移行する。なお、上記ステップ122において上記十分大きいか否かを判定するために、判定部13は、閾値Thに加算するマージンβを所定数倍(本実施形態では、2倍)する形態を適用しているが、これに限定されるものではない。例えば、上記マージンβに所定値を加える形態や、マージンβに代えてマージンβより大きな固定値を適用する形態等としてもよい。
ステップ126において、取得部12は、カウンタUTの値を1だけインクリメントし、ステップ128において、取得部12は、カウンタUTの値が閾値THutを超えたか否かを判定する。ここで、否定判定となった場合は上記ステップ118に戻り、肯定判定となった場合は、「under switching」状態に遷移可能な状態にあるものと見なしてステップ130に移行する。
ステップ130において、取得部12は、上記ステップ118の処理と同様に、高側データを高側データ受信可能装置に要求した後、該高側データ受信可能装置から該高側データを受信する。なお、「under switching」状態では、上記通常受信処理で受信するストリームデータのセグメント番号と、本ステップ130の処理で受信するストリームデータのセグメント番号が重複してもよい。
「under switching」状態にある場合、後述するデータ転送処理(図7も参照。)では、上記通常受信処理によって受信されたストリームデータを上記高側データのビットレートより速い転送速度でメディアプレーヤMPに送信することを繰り返す。これに応じてメディアプレーヤMPは、該ストリームデータの受信が所定回数成功すると、ビットレートを1段階上げることが十分可能であると判断し、該1段階上のビットレートのストリームデータをP2PクライアントモジュールCMに要求する。なお、この際のメディアプレーヤMPによる高側データの受信が所定回数成功するか否かを判定することを、以下では「高速通信テスト」という。
そこで、ステップ132において、第1切換部14Aは、メディアプレーヤMPからの1段階上のビットレートのストリームデータの要求を受信したか否かを判定し、否定判定となった場合は上記ステップ130に戻る。また、ステップ132において肯定判定となった場合には、ステップ134に移行する。
ステップ134において、第1切換部14Aは、上記通常受信処理に対して、この時点より1段階高いビットレートのストリームデータ(高側データ)の受信に切り換えるように指示し、その後にステップ136に移行する。この指示に応じて、上記通常受信処理では、これ以降、受信対象とするストリームデータを高側データに切り換え、該高側データを先読みしてキャッシュ領域に格納する。また、この切り換えを行う際に、上記通常受信処理では、切り換えた後のストリームデータの種類、セグメント番号等を更新情報としてUPDATE_INFOメッセージ85によりP2Pインデックスサーバ60に通知する。これに応じて、P2Pインデックスサーバ60は、保持している端末情報管理テーブルを更新する。
すなわち、判定部13は、受信速度BrcvがメディアプレーヤMPから要求されているビットレートの1段階上のビットレートより十分速い場合は、現在時点のビットレートより高ビットレートのストリームデータの受信に切り換え可能であると判定する。そして、この場合、第1切換部14Aは、メディアプレーヤMPによる高速通信テストを経た後に、通常受信処理に対して、現在時点より1段階高いビットレートのストリームデータの受信に切り換えさせる処理を行っている。
なお、ステップ110を実行する際に、通常受信処理によって最大のビットレートのストリームデータを受信している場合には、ステップ110〜ステップ134の処理を行うことなく、すなわち、高側データへの切り換えを行うことなくステップ136に移行する。
ステップ136において、取得部12は、受信中のストリームデータの受信が全て終了したか否かを判定し、否定判定となった場合は上記ステップ102に戻る一方、肯定判定となった場合には本テスト・切換処理を終了する。
[メディアプレーヤへのデータ転送に関するクライアントPCの動作]
次に、図7を参照して、メディアプレーヤMPへのストリームデータの転送に関するクライアントPC40の動作について説明する。
本実施形態に係るコンピュータ・システム30では、クライアントPC40のP2PクライアントモジュールCMは、テスト・切換処理の実行を開始すると共に、データ転送プログラム43Bを実行させることで、図7に示すデータ転送処理が行われる。以下、本実施形態に係るデータ転送処理について説明する。
データ転送処理のステップ200において、第2切換部14Bは、この時点の時刻を時刻Tcrとしてメモリ42に記憶する。
ステップ202において、第2切換部14Bは、この時点で上記通常受信処理によりキャッシュ領域に記憶されているストリームデータに、メディアプレーヤMPから要求されたセグメントのデータが含まれているか否かを判定する。ここで、否定判定となった場合はステップ204に移行する。
ステップ204において、第2切換部14Bは、上記通常受信処理に対してメディアプレーヤMPから要求されたセグメントのストリームデータの受信を要求し、その後に上記ステップ202に戻る。なお、該要求を受けると上記通常受信処理では、要求されたセグメントのストリームデータを受信し、キャッシュする処理が実行される。一方、上記ステップ202において肯定判定となった場合、ステップ206に移行する。
ステップ206において、第2切換部14Bは、この時点におけるストリームデータの受信状態が「too slow」状態となっているか否かを判定することにより、上記低側データの受信に切り換えられたか否かを判定する。ここで、否定判定となった場合は後述するステップ214に移行する一方、肯定判定となった場合はステップ208に移行する。
ステップ208において、第2切換部14Bは、次の式(4)を満足するように時刻Tを決定し、次のステップ210において、第2切換部14Bは、現在時刻が時刻Tになるまで待機する。なお、式(4)におけるBL1は、この時点でメディアプレーヤMPから要求されているストリームデータのビットレートより1段階低いビットレートを表す。また、式(4)におけるBH1は、この時点でメディアプレーヤMPから要求されているストリームデータのビットレートを表す。
この際、上述したように、実際にはビットレートBL1よりも十分速く、かつビットレートBH1には満たない時刻Tを選択する。これにより、現状より1段階低いビットレートのストリームデータの受信が十分可能で、かつ現状のビットレートのストリームデータの受信には不十分な受信速度となる。
ステップ212において、第2切換部14Bは、上記通常受信処理によってキャッシュ領域に格納され、かつメディアプレーヤMPから要求されている低側データをメディアプレーヤMPに送信し、その後にステップ228に移行する。
一方、ステップ214において、第2切換部14Bは、この時点におけるストリームデータの受信状態が「under switching」状態となっているか否かを判定することにより、上記高側データの受信に切り換えられている最中か否かを判定する。ここで、否定判定となった場合は後述するステップ222に移行する一方、肯定判定となった場合はステップ216に移行する。
ステップ216において、第2切換部14Bは、次の式(5)を満足するように時刻Tを決定し、次のステップ218において、第2切換部14Bは、現在時刻が時刻Tになるまで待機する。なお、式(5)におけるBL2は、この時点でメディアプレーヤMPから要求されているストリームデータのビットレートより1段階高いビットレートを表す。また、式(5)におけるBH2は、この時点でメディアプレーヤMPから要求されているストリームデータのビットレートより2段階高いビットレートを表す。
この際も、上述したように、実際にはビットレートBL2よりも十分速く、かつビットレートBH2には満たない時刻Tを選択する。これにより、現状より1段階高いビットレートのストリームデータの受信が十分可能で、かつ現状より2段階高いビットレートのストリームデータの受信には不十分な受信速度となる。なお、この場合、ビットレートBH2が存在しない場合があるが、この場合は該ビットレートBH2を無視する。
ステップ220において、第2切換部14Bは、上記通常受信処理によってキャッシュ領域に格納され、かつメディアプレーヤMPから要求されている高側データをメディアプレーヤMPに送信し、その後にステップ228に移行する。
このように、「under switching」状態では、メディアプレーヤMPからのストリームデータの要求に対して、要求されているビットレートよりも十分速い速度でストリームデータを供給する。該データを受信したメディアプレーヤMPは、データの受信速度がMPDファイルに記載されている高側データのビットレートを基準にした閾値Thに対して十分速いため、要求するストリームデータのビットレートを1段階高いものに切り換えてよいと判断する。
一方、ステップ222において、第2切換部14Bは、次の式(6)を満足するように時刻Tを決定し、次のステップ224において、第2切換部14Bは、現在時刻が時刻Tになるまで待機する。なお、式(6)におけるBL3は、この時点でメディアプレーヤMPから要求されているストリームデータのビットレートを表す。また、式(6)におけるBH3は、この時点でメディアプレーヤMPから要求されているストリームデータのビットレートより1段階高いビットレートを表す。
この際も、上述したように、実際にはビットレートBL3よりも十分速く、かつビットレートBH3には満たない時刻Tを選択する。これにより、現状のビットレートのストリームデータの受信が十分可能で、かつ現状より1段階高いビットレートのストリームデータの受信には不十分な受信速度となる。なお、この場合も、ビットレートBH3が存在しない場合があるが、この場合は該ビットレートBH3を無視する。
ステップ226において、第2切換部14Bは、上記通常受信処理によってキャッシュ領域に格納され、かつメディアプレーヤMPから要求されているストリームデータをメディアプレーヤMPに送信した後、ステップ228に移行する。
ステップ228において、第2切換部14Bは、上記通常受信処理で受信しているストリームデータのメディアプレーヤMPからの送信要求が終了したか否かを判定し、否定判定となった場合はステップ230に移行する。ステップ230において、第2切換部14Bは、メディアプレーヤMPから次のデータの送信要求が受信されるまで待機し、その後に上記ステップ200に戻る。そして、ステップ228において肯定判定となった時点で本データ転送処理を終了する。
次に、図8を参照して、テスト・切換処理及びデータ転送処理を図4に示したシステム、すなわち、クライアントPC40が3台で、受信対象とするストリームデータのビットレートが2種類であるシステムに適用した場合の具体的な処理の流れを説明する。この場合、閾値Th1、Th2、・・・は、低ビットレートに対応する閾値Th1と、高ビットレートに対応する閾値Th2の2種類の閾値のみとなる。なお、ここでは、錯綜を回避するため、受信データの低ビットレート側への切り換えについては言及せず、高ビットレート側に切り換える場合のみについて説明する。
最初に、クライアントPC40BのP2PクライアントモジュールCMは、通常受信処理により、「stable」状態で、メディアプレーヤMPからの要求に応じてクライアントPC40Cから低ビットレートであるストリームS1を先読みしてキャッシングする。また、該P2PクライアントモジュールCMは、通常受信処理によりキャッシュされているストリームデータを、ストリームS1のビットレートB1より十分速く、かつストリーム2のビットレートB2には満たない送信速度でメディアプレーヤMPに送信する。
この状態において、クライアントPC40BのP2PクライアントモジュールCMは、映像配信サーバ50からのストリームデータの受信速度Brcvを測定する。そして、クライアントPC40Bは、受信速度Brcvが次の式(7)の条件を満足した場合、高ビットレートを受信するために十分な受信速度であるものと見なして「fast enough」状態に遷移する。
次に、クライアントPC40BのP2PクライアントモジュールCMは、通常受信処理によって受信しているストリームS1の受信速度Brcvが式(7)の条件を閾値THfeで示される回数(図8に示す例では、1回)満足したか否かを判定する。ここで、クライアントPC40Bは、満足したと判定した場合のみ、「under testing」状態に遷移する。なお、この状態においても、クライアントPC40BのP2PクライアントモジュールCMは、キャッシングされているストリームS1を、ビットレートB1より十分速く、かつビットレートB2には満たない送信速度でメディアプレーヤMPに送信する。
次に、クライアントPC40BのP2PクライアントモジュールCMは、P2Pインデックスサーバ60に、この時点でストリームS2を受信している装置(高側データ受信可能装置であり、ここでは、クライアントPC40A)を問い合わせる。また、該P2PクライアントモジュールCMは、この問い合わせの結果得られたクライアントPC40Aに対してストリームS2を要求する。そして、該P2PクライアントモジュールCMは、この要求に応じてストリームS2を受信するまでの時間に基づいて得られた受信速度Brcvが上記式(7)の条件を閾値THutで示される回数(図8に示す例では、1回)満足したか否かを判定する。ここで、クライアントPC40Bは、満足したと判定した場合のみ、「under switching」状態に遷移する。なお、この状態においても、クライアントPC40BのP2PクライアントモジュールCMは、キャッシングされているストリームS1を、ビットレートB1より十分速く、かつビットレートB2には満たない送信速度でメディアプレーヤMPに送信する。
次に、クライアントPC40BのP2PクライアントモジュールCMは、「under switching」状態において、「under testing」状態の場合と同様にクライアントPC40AからストリームS2を受信する。そして、該P2PクライアントモジュールCMは、メディアプレーヤMPから要求されたストリームデータを、ビットレートB2より十分速い送信速度でメディアプレーヤMPに送信する。
これに対し、メディアプレーヤMPは、前述したように、ストリームデータの受信が所定回数(図8に示す例では、3回)成功すると、ビットレートを1段階上げることが十分可能であると判断し、該1段階高いビットレートB2のストリームS2をP2PクライアントモジュールCMに要求する。
そこで、クライアントPC40BのP2PクライアントモジュールCMは、メディアプレーヤMPからストリームS2の要求があるまで待機し、その後に通常受信処理に対して受信するストリームデータをストリームS1からストリームS2に切り換える指示を行う。
なお、実際のP2P技術によるシステムにおいて、ストリームデータの送信元となる他のクライアントPC40A及びクライアントPC40Cは、クライアントPC40Bがストリームデータを受信している最中に、常に存在しているとは限らない。例えば、ストリームデータの送信元の端末装置が、対象とする映像の再生(視聴)を停止してP2Pのネットワークから離脱する場合等である。この場合等に備えて、クライアントPC40Bは、QUERY_INFOメッセージ83により定期的に対象とするストリームデータを送信可能な他の装置をP2Pインデックスサーバ60に問い合わせてもよい。そして、クライアントPC40Bは、対象とするストリームデータの受信が所定期間内に完了しない場合には、上記問い合わせに応じて得られた装置にストリームデータの送信元を切り換えてもよい。
〔第2実施形態〕
次に開示の技術の第2実施形態について説明する。本第2実施形態では、端末装置が携帯電話機やスマートフォン、タブレット端末装置等の移動端末装置である場合の形態について説明する。
図9には、本第2実施形態に係る端末装置20が示されている。図9に示すように、本実施形態に係る端末装置20は、データ再生部21、取得部22、判定部23及び切換部24を備えている。データ再生部21、取得部22、判定部23及び切換部24は、各々、上記第1実施形態に係る同一名称のデータ再生部11、取得部12、判定部13及び切換部14と同一か、または略同一のものである。
ただし、取得部22と取得部12とでは、通信経路における通信状態の取得方法が異なる。すなわち、上記第1実施形態に係る取得部12では、データ再生部11からの要求に応じたビットレートの配信データを受信している場合に、該ビットレートより高いビットレートの配信データを要求して受信し、該受信に要した時間に基づいて通信状況を取得する。これに対し、本第2実施形態に係る取得部22では、次のように上記通信状況を取得する。すなわち、取得部22は、データ再生部21からの要求に応じたビットレートの第1の配信データを受信している場合に、より高いビットレートの第2の配信データの該ビットレートに応じて上記第1の配信データを増量してデータ配信装置16に要求する。そして、取得部22は、この要求に応じた第1の配信データを受信し、該第1の配信データの受信に要した時間に基づいて上記通信状況を取得する。
なお、本第2実施形態に係る端末装置20でも、上記配信データとして、動画及び音声の双方を含む映像を表す映像データを適用し、データ配信装置16として、映像配信サーバを適用している。端末装置20におけるデータ再生部21は開示の技術に係るデータ再生部の一例であり、取得部22は開示の技術に係る取得部の一例であり、判定部23は開示の技術に係る判定部の一例であり、切換部24は開示の技術に係る切換部の一例である。
以上のように、本第2実施形態に係る端末装置20の機能的な構成は、上記第1実施形態に係る端末装置10と略同様とされているが、端末装置10が固定して配置されるものであるのに対し、端末装置20が、移動端末装置とされている点が大きく異なる。
すなわち、移動端末装置は、電話回線や無線LAN(Local Area Network)等の通信回線を介した無線での通信機能を搭載しており、移動しながらデータの送受信が可能である。従って、移動端末装置では、通常の端末装置に比較して、通信速度等の通信状況の変化が起こりやすく、映像配信サーバからのストリームデータの取得が間に合わないケースが発生しやすい。
これに対し、近年、移動端末装置による通信速度が高速化され、電子メール等のデータ量が比較的少ないデータの通信については、通信不能となる状態の発生が抑制されるようになってきた。しかしながら、映像データを移動端末装置で受信する場合は、データ量が非常に多いため、移動中に安定して受信することが難しい場合がある。
ところで、ウェブ・サーバに対するアクセスの高速化のための技術として、一例として図10に示すように、上記第1実施形態と同様のローカルプロキシサーバを端末装置に配備し、ウェブ・サーバから取得したウェブ・ページをキャッシュする技術がある。ここで、前述したように、ストリームデータをHTTPで取得する動作はウェブ・サーバに対するアクセスそのものであり、この高速化のための技術はMPEG−DASH等のマルチビットレートに対応したストリームデータを取得する技術にも適用が可能である。
すなわち、図10に示すシステムにおいて対象としているウェブ・コンテンツが映像データである場合、このシステムは、図11に示すシステムと等価である。そして、図11に示すシステムでは、ローカルプロキシサーバPSがメディアプレーヤMPと映像配信サーバ50との間を仲介して、ストリームデータの供給を高速化すると共に、映像の再生を安定化させることとなる。この場合も、前述した第1実施形態に係るP2P技術によるシステムの場合と同様に、ローカルプロキシサーバPSが、メディアプレーヤMPからの映像データの取得の要求を受けて、対象とするストリームデータをメディアプレーヤMPに供給する。
このような、移動端末装置におけるローカルプロキシサーバPSにおいても、移動中に時々刻々と変化するネットワークの通信状況によっては、要求されるストリームデータが映像配信サーバ50から確実かつ速やかに取得できるとは限らない。このため、可能な限り先読みを行ってキャッシングしておくことが、メディアプレーヤMPへのデータの供給の安定化のために効果的である。
図12には、本第2実施形態に係る移動端末装置70の構成が示されている。図12に示すように、本第2実施形態に係る移動端末装置70は、ローカルプロキシサーバPS及びメディアプレーヤMPが搭載されている。また、移動端末装置70は、後述する速度マップDB(データベース)74に含まれる情報に基づいて、映像配信サーバ50からのデータの受信速度を予測する速度予測部72を備えている。なお、移動端末装置70が端末装置20に相当し、映像配信サーバ50がデータ配信装置16に相当する。また、移動端末装置70のローカルプロキシサーバPSが端末装置20の取得部22、判定部23及び切換部24に相当し、メディアプレーヤMPが端末装置20のデータ再生部21に相当する。このように、本実施形態に係る移動端末装置70では、映像配信サーバ50とメディアプレーヤMPとの間に、ローカルプロキシサーバPSを移動端末装置70に配備し、ストリームデータの各セグメントの先読みを積極的に行い、配信映像の再生を安定化させる。
図13には、本第2実施形態に係る速度マップDB74の構成の一例が示されている。図13に示すように、本第2実施形態に係る速度マップDB74は、位置及び受信速度の各情報が記憶される。
ここで、上記受信速度は、対応する位置(本実施形態では、緯度及び経度)に移動端末装置70が位置する場合の映像配信サーバ50からのデータの受信速度を示す情報である。なお、速度マップDB74に登録する情報は、以上の位置及び受信速度のみに限定されない。例えば、これらの情報に加えて、対応する受信速度を速度マップDB74に記録した日時を示す時刻情報や、対応する通信先の装置を示すIP情報等を更に登録する形態としてもよい。
なお、速度マップDB74は、移動端末装置70が移動されると想定される領域を所定サイズの矩形領域で細分化し、各細分化された矩形領域の中心の位置の受信速度を対応する矩形領域の内部における受信速度として予め登録しておく形態としてもよい。この形態を以下では「第1マップ形態」という。
また、速度マップDB74は、移動端末装置70が移動されると想定される領域内における複数箇所の各位置において、該位置を中心とした所定半径の円の内部の受信速度の平均値を、該円の内部における受信速度として、予め登録しておく形態としてもよい。この形態を以下では「第2マップ形態」という。
なお、速度マップDB74は、ユーザにより移動端末装置70によって実際に映像配信サーバ50からのデータの受信速度をロギングしながら、対応する位置を示す情報と共に保存することにより構築してもよい。
次に、図12〜図14を参照して、本第2実施形態の作用を説明する。なお、図14は、移動端末装置70のローカルプロキシサーバPS(クライアントモジュール)により実行される処理の流れを示すタイムチャートである。また、ここでは、錯綜を回避するため、対象とするストリームデータのビットレートが2種類のみであるものとし、上記第1実施形態と同様に、低ビットレートのストリームデータをストリームS1とし、高ビットレートのストリームデータをストリームS2とする。また、ここでは、錯綜を回避するため、受信データの低ビットレート側への切り換えについては言及せず、高ビットレート側に切り換える場合のみについて説明する。
前述したように、単に先読みしたキャッシュ領域内のデータを、メディアプレーヤがローカルプロキシサーバPSから受信すると、MPEG−DASH等のマルチビットレートに対応したメディアプレーヤでは、受信速度の判断を誤る可能性がある。このため、第2実施形態に係る移動端末装置70では、第1実施形態に係るクライアントPC40と同様に、映像配信サーバ50からのデータの受信速度を計測しつつ、メディアプレーヤMPへのストリームデータの供給速度を調整する。
また、本第2実施形態に係るローカルプロキシサーバPSは、速度予測部72と連携して先読み量を調整するが、この点についての詳細は後述する。
まず、ローカルプロキシサーバPSは、ユーザによる操作に応じてメディアプレーヤMPからMPDファイルの取得の要求が発生すると、キャッシュ領域を確認し、MPDファイルのデータがなければ映像配信サーバ50にMPDファイルの取得の要求を送信する。
次いで、ローカルプロキシサーバPSは、映像配信サーバ50からMPDファイルを取得すると、該MPDファイルのデータをキャッシュ領域に格納すると共に、メディアプレーヤMPへ供給し、メディアプレーヤMPからのストリームデータの要求を待つ。
メディアプレーヤMPの動作は上記第1実施形態のメディアプレーヤMPと同様で、MPDファイルに記載されている複数種類のビットレートのストリームデータのうち、まずは最低のビットレートであるストリームS1の第1セグメントのファイルを要求する。該要求を受けたローカルプロキシサーバPSは、要求された時刻を時刻Tcrとして記憶し、第1セグメントのストリームデータがキャッシュ領域に格納されてなければ、映像配信サーバ50へ該データを要求し、この時点の時刻を時刻Tsとして保持する。そして、ローカルプロキシサーバPSは、ストリームデータの受信が完了したところで、該ストリームデータをキャッシュ領域に格納する。また、ローカルプロキシサーバPSは、この時点の時刻を時刻Trとして保持し、要求されたストリームデータのサイズS[bit]に基づいて、受信速度Brcvを上述した式(3)により算出する。
ここで、メディアプレーヤMPから要求のあったセグメントのストリームデータをメディアプレーヤMPへ供給するタイミング(時刻)Tも、上記第1実施形態と同様に、上述した式(2)を満足するように決定する。
一方、第2実施形態に係るシステムでは、第1実施形態に係るシステムとは異なり、ストリームデータのビットレートを切り換えてもストリームデータの要求先となる装置が映像配信サーバ50であり、変化しない。そこで、本第2実施形態に係る取得部22では、「under testing」状態で高ビットレートのストリームデータの受信をテストする際には、以下のように映像配信サーバ50にストリームデータを要求する。すなわち、取得部22は、図14に示すように、要求するストリームデータのビットレートを変えずに受信中のストリームS1のデータの要求量をストリームS2のセグメントのサイズと同等以上に増やして、映像配信サーバ50へ要求する。例えば、ストリームS2のビットレートB2がストリームS1のビットレートB1のn倍だった場合、すなわち、次の式(8)で示される場合は、n個(図14に示す例では、3個)のセグメントの送信要求を一気に行うと共に、この際の時刻を時刻Tsとして記憶する。
そして、取得部22は、n個の全てのセグメントを受信した時刻を時刻Trとし、前述した式(3)を用いて受信速度Brcvを求め、この値がビットレートB2を十分に超えていれば、「under switching」状態へ遷移し、映像配信サーバ50への要求をストリームS2のセグメントに切り換える。
なお、「under testing」状態のテスト時におけるストリームS1の先読み量を多めとしているので、この量が所定の先読み量を超えているようなら、メディアプレーヤMPへのデータの供給によって適切な量に低下するまで、先読みを保留してもよい。その他の動作は上記第1実施形態に係るローカルプロキシサーバPSと同様である。
ここで、「under testing」状態で計測した受信速度BrcvがビットレートB2に満たない場合は、ビットレートの切り換えは見送られる。そして、この場合、「stable」状態へ復帰し、上記テストで読み込んだn個のセグメントのデータは、そのままキャッシュデータとして活用される。
次に、本第2実施形態に係る移動端末装置70において、先読み量を、速度予測部72により予測された情報に応じて変化させる場合の形態例を開示する。
速度予測部72は、位置及び該位置毎の受信速度をデータベース化した速度マップDB74に加えて、移動端末装置70の位置を計測して位置座標を出力するGPS(Global Positioning System)76に接続されており、該GPS76と連携する。
速度予測部72は、定期的にGPS76から移動端末装置70の位置座標を取得して記憶し、直近の所定回数(本実施形態では、2回)の記憶した情報から移動ベクトルを求める。また、速度予測部72は、上記移動ベクトルに基づいて所定時間後(本実施形態では、1秒後)の移動後の移動端末装置70の位置を予測(以下、「予測位置」という。)する。そして、速度予測部72は、該予測位置から所定範囲内にある位置に対応する受信速度を速度マップDB74から読み出すことにより、該予測位置における受信速度を予測する。ここで、速度予測部72は、上記受信速度の予測を以下のように行う。
まず、速度マップDB74が上記第1マップ形態である場合について説明する。なお、ここでは、予測位置を座標表現で(Xp,Yp)とし、速度マップDB74のi番目に登録されている位置の座標(以下、「エントリ座標」という。)を(Xi,Yi)とする。この場合、上記矩形領域の一辺の長さを2Dとすると、次の式(9)を満足する場合に、該矩形領域に対応する受信速度を、該予測位置における受信速度として予測する。
次に、速度マップDB74が上記第2マップ形態である場合について説明する。なお、ここでも、予測位置の座標を(Xp,Yp)とし、エントリ座標を(Xi,Yi)とする。この場合、上記円の半径をRとし、予測位置と速度マップDB74に登録されている位置との距離の2乗をr2とすると、次の式(10)を満足する場合に、該円に対応する受信速度を、該予測位置における受信速度として予測する。
速度予測部72は、以上のように求めた受信速度(以下、「予測速度」という。)をローカルプロキシサーバPSからの問い合わせに応じて通知する。なお、速度マップDB74に式(9)または式(10)の条件を満足する適切なエントリ座標が見つからない場合、速度予測部72は、受信速度の予測ができないことを示す値(一例として‘−1’)をローカルプロキシサーバPSに送信する。
なお、予測位置の座標(Xp,Yp)は、次の方法で求められる。
すなわち、現時点の直前の時刻tの時点で測定された位置の座標を座標(Xpt,Ypt)とし、該時刻tの直前の時刻t−1の時点で得られた位置の座標を座標(Xpt−1,Ypt−1)とする。この場合、予測位置の座標(Xp,Yp)は次の式(11)で得ることができる。なお、本実施形態では、上記時刻tとして、現時点の時刻の1秒前の時刻を適用し、上記時刻t−1として、現時点の時刻の2秒前の時刻を適用しているが、これに限定されるものではない。
続いて、ローカルプロキシサーバPSによる、予測速度を考慮した先読み量の計算方法について説明する。
映像配信サーバ50にストリームデータのセグメントを要求する際に、ローカルプロキシサーバPSは、速度予測部72に予測速度を問い合わせ、これによって得られた予測速度が、対象とするセグメントのビットレートよりも小さい場合には、近い将来、対象とするセグメントの受信が間に合わなくなる可能性が高いので、先読み量を所定量(例えば、1個)増量し、先読み量を増やしておく。
ここで、予測速度がビットレートに対して十分に大きい場合は、任意のタイミングで余裕をもってセグメントを取得できる可能性が高いので、キャッシュ領域のバッファ容量を節約したい条件がある場合等は、先読み量を所定量(一例として、1個)減量する形態としてもよい。
なお、上記各実施形態では、クライアントPC40や移動端末装置70にローカルプロキシサーバPSを設けた場合について説明したが、これに限定されるものではない。例えば、映像配信サーバのデータ配信のための負荷の軽減のためにユーザの環境の側に端末装置とは別体として配備するプロキシサーバやエッジサーバ等においても開示の技術は適用可能である。
図15には、この場合のシステムの構成例が示されている。図15に示す例では、WAN(Wide Area Network)側の回線は、LAN側の回線より通信速度が遅い。この場合、ハードウェアにより端末装置とは別体としてハードウェアにより構成されたプロキシサーバHPSにより、第2実施形態に示したローカルプロキシサーバPSによる処理と同様の処理を実行する。これにより、第2実施形態と同様の効果が得られる。
また、上記各実施形態では、配信データとして動画及び音声を表す映像データを適用した場合を説明したが、これに限定されるものではない。例えば、配信データとして音声のみを表す音声データを適用する形態としてもよく、配信データとして動画のみを表す動画データを適用する形態としてもよい。
また、上記各実施形態では、閾値THfe及び閾値THutを1とした場合について説明したが、これに限定されるものではなく、これらの閾値として2以上を適用してもよいことは言うまでもない。この場合、上記各実施形態に比較して、受信データのビットレートの切り換えが頻発する状態の発生を防止することができる。
また、上記第1実施形態では、テスト・切換プログラム43A及びデータ転送プログラム43Bを記録媒体96から媒体読み書き装置46を介してクライアントPC40の記憶部43に読み込む態様を説明したが、これに限定されるものではない。例えば、テスト・切換プログラム43A及びデータ転送プログラム43Bを、記憶部43に予め記憶(インストール)しておく形態としてもよく、ネットワーク80を介して外部装置から記憶部43にダウンロードする形態としてもよい。
また、上記第2実施形態では、速度マップDB74を移動端末装置70において保持する場合を説明したが、これに限定されるものではない。例えば、速度マップDB74を他の端末装置(図示省略。)において保持するようにしてもよい。なお、この場合、移動端末装置70において速度マップDB74を参照する際には、該他の端末装置に対して参照することになる。この場合、移動端末装置70の速度マップDB74を記憶するためのメモリ容量を削減することができる。
本明細書に記載された全ての文献、特許出願及び技術規格は、個々の文献、特許出願及び技術規格が参照により取り込まれることが具体的かつ個々に記された場合と同程度に、本明細書中に参照により取り込まれる。
以上の各実施形態に関し、さらに以下の付記を開示する。
(付記1)
動画及び音声の少なくとも一方を表し、マルチビットレートに対応した配信データから、何れかのビットレートの配信データの配信を選択的に要求し、該要求に応じて受信した配信データを再生するデータ再生部と、
前記データ再生部からの要求に応じた配信データをデータ配信装置から受信して、該要求に応じた転送速度で前記データ再生部に転送すると共に、前記データ配信装置との間の通信経路における通信状況を取得する取得部と、
前記取得部によって取得された通信状況に基づいて、現在時点のビットレートより高ビットレートの配信データの受信に切り換え可能か否かを判定する判定部と、
前記判定部によって切り換え可能と判定された場合、前記高ビットレートの配信データの受信に切り換えると共に、受信した配信データの前記データ再生部への転送速度を、現在時点より速い速度に切り換える切換部と、
を備えた端末装置。
動画及び音声の少なくとも一方を表し、マルチビットレートに対応した配信データから、何れかのビットレートの配信データの配信を選択的に要求し、該要求に応じて受信した配信データを再生するデータ再生部と、
前記データ再生部からの要求に応じた配信データをデータ配信装置から受信して、該要求に応じた転送速度で前記データ再生部に転送すると共に、前記データ配信装置との間の通信経路における通信状況を取得する取得部と、
前記取得部によって取得された通信状況に基づいて、現在時点のビットレートより高ビットレートの配信データの受信に切り換え可能か否かを判定する判定部と、
前記判定部によって切り換え可能と判定された場合、前記高ビットレートの配信データの受信に切り換えると共に、受信した配信データの前記データ再生部への転送速度を、現在時点より速い速度に切り換える切換部と、
を備えた端末装置。
(付記2)
前記取得部は、前記データ再生部からの要求に応じたビットレートの配信データである第1の配信データを受信している場合に、該ビットレートより高いビットレートの配信データである第2の配信データを前記データ配信装置に要求して受信し、該第2の配信データの受信に要した時間に基づいて前記通信状況を取得する
付記1記載の端末装置。
前記取得部は、前記データ再生部からの要求に応じたビットレートの配信データである第1の配信データを受信している場合に、該ビットレートより高いビットレートの配信データである第2の配信データを前記データ配信装置に要求して受信し、該第2の配信データの受信に要した時間に基づいて前記通信状況を取得する
付記1記載の端末装置。
(付記3)
前記取得部は、前記データ再生部からの要求に応じたビットレートの配信データである第1の配信データを受信している場合に、該ビットレートより高いビットレートの配信データである第2の配信データのビットレートに応じて前記第1の配信データを増量して前記データ配信装置に要求して受信し、該第1の配信データの受信に要した時間に基づいて前記通信状況を取得する
付記1記載の端末装置。
前記取得部は、前記データ再生部からの要求に応じたビットレートの配信データである第1の配信データを受信している場合に、該ビットレートより高いビットレートの配信データである第2の配信データのビットレートに応じて前記第1の配信データを増量して前記データ配信装置に要求して受信し、該第1の配信データの受信に要した時間に基づいて前記通信状況を取得する
付記1記載の端末装置。
(付記4)
前記判定部は、前記取得部によって取得された通信状況に基づいて、現在時点のビットレートより低ビットレートの配信データの受信に切り換える必要があるか否かをさらに判定し、
前記切換部は、前記判定部により、前記低ビットレートの配信データの受信に切り換える必要があると判定された場合、前記低ビットレートの配信データの受信に切り換えると共に、受信した配信データの前記データ再生部への転送速度を、現在時点より遅い速度に切り換える
付記1〜付記3の何れか1項記載の端末装置。
前記判定部は、前記取得部によって取得された通信状況に基づいて、現在時点のビットレートより低ビットレートの配信データの受信に切り換える必要があるか否かをさらに判定し、
前記切換部は、前記判定部により、前記低ビットレートの配信データの受信に切り換える必要があると判定された場合、前記低ビットレートの配信データの受信に切り換えると共に、受信した配信データの前記データ再生部への転送速度を、現在時点より遅い速度に切り換える
付記1〜付記3の何れか1項記載の端末装置。
(付記5)
前記取得部は、ピア・ツー・ピア技術により前記データ配信装置からの前記配信データの受信に代えて他の端末装置から該配信データを受信する場合、該他の端末装置との間の通信経路における通信状況を取得する
付記1〜付記4の何れか1項記載の端末装置。
前記取得部は、ピア・ツー・ピア技術により前記データ配信装置からの前記配信データの受信に代えて他の端末装置から該配信データを受信する場合、該他の端末装置との間の通信経路における通信状況を取得する
付記1〜付記4の何れか1項記載の端末装置。
(付記6)
前記配信データの配信元からの該配信データの受信速度を予測する予測部をさらに備え、
前記取得部は、前記配信データを先読みする場合のデータ要求量を、前記予測部によって予測された受信速度に基づいて決定する
付記1〜付記5の何れか1項記載の端末装置。
前記配信データの配信元からの該配信データの受信速度を予測する予測部をさらに備え、
前記取得部は、前記配信データを先読みする場合のデータ要求量を、前記予測部によって予測された受信速度に基づいて決定する
付記1〜付記5の何れか1項記載の端末装置。
(付記7)
前記配信データは、MPEG−DASHで規定されるデータである
付記1〜付記6の何れか1項記載の端末装置。
前記配信データは、MPEG−DASHで規定されるデータである
付記1〜付記6の何れか1項記載の端末装置。
(付記8)
前記取得部、前記判定部、及び前記切換部は、自端末装置のローカルプロキシサーバとしてソフトウェアにより構成されている
付記1〜付記7の何れか1項記載の端末装置。
前記取得部、前記判定部、及び前記切換部は、自端末装置のローカルプロキシサーバとしてソフトウェアにより構成されている
付記1〜付記7の何れか1項記載の端末装置。
(付記9)
前記取得部、前記判定部、及び前記切換部は、自端末装置とは別体としてハードウェアにより構成されている
付記1〜付記7の何れか1項記載の端末装置。
前記取得部、前記判定部、及び前記切換部は、自端末装置とは別体としてハードウェアにより構成されている
付記1〜付記7の何れか1項記載の端末装置。
(付記10)
前記他の端末装置は、自端末装置と同様の構成とされている
付記5記載の端末装置。
前記他の端末装置は、自端末装置と同様の構成とされている
付記5記載の端末装置。
(付記11)
動画及び音声の少なくとも一方を表し、マルチビットレートに対応した配信データから、何れかのビットレートの配信データの配信を選択的に要求し、該要求に応じて受信した配信データを再生するデータ再生部からの要求に応じた配信データをデータ配信装置から受信して、該要求に応じた転送速度で前記データ再生部に転送すると共に、前記データ配信装置との間の通信経路における通信状況を取得し、
取得した通信状況に基づいて、現在時点のビットレートより高ビットレートの配信データの受信に切り換え可能か否かを判定し、
切り換え可能と判定した場合、前記高ビットレートの配信データの受信に切り換えると共に、受信した配信データの前記データ再生部への転送速度を、現在時点より速い速度に切り換える、
ことを含む処理をコンピュータに実行させるデータ配信方法。
動画及び音声の少なくとも一方を表し、マルチビットレートに対応した配信データから、何れかのビットレートの配信データの配信を選択的に要求し、該要求に応じて受信した配信データを再生するデータ再生部からの要求に応じた配信データをデータ配信装置から受信して、該要求に応じた転送速度で前記データ再生部に転送すると共に、前記データ配信装置との間の通信経路における通信状況を取得し、
取得した通信状況に基づいて、現在時点のビットレートより高ビットレートの配信データの受信に切り換え可能か否かを判定し、
切り換え可能と判定した場合、前記高ビットレートの配信データの受信に切り換えると共に、受信した配信データの前記データ再生部への転送速度を、現在時点より速い速度に切り換える、
ことを含む処理をコンピュータに実行させるデータ配信方法。
(付記12)
前記データ再生部からの要求に応じたビットレートの配信データである第1の配信データを受信している場合に、該ビットレートより高いビットレートの配信データである第2の配信データを前記データ配信装置に要求して受信し、該第2の配信データの受信に要した時間に基づいて前記通信状況を取得する
付記11記載のデータ配信方法。
前記データ再生部からの要求に応じたビットレートの配信データである第1の配信データを受信している場合に、該ビットレートより高いビットレートの配信データである第2の配信データを前記データ配信装置に要求して受信し、該第2の配信データの受信に要した時間に基づいて前記通信状況を取得する
付記11記載のデータ配信方法。
(付記13)
前記データ再生部からの要求に応じたビットレートの配信データである第1の配信データを受信している場合に、該ビットレートより高いビットレートの配信データである第2の配信データのビットレートに応じて前記第1の配信データを増量して前記データ配信装置に要求して受信し、該第1の配信データの受信に要した時間に基づいて前記通信状況を取得する
付記11記載のデータ配信方法。
前記データ再生部からの要求に応じたビットレートの配信データである第1の配信データを受信している場合に、該ビットレートより高いビットレートの配信データである第2の配信データのビットレートに応じて前記第1の配信データを増量して前記データ配信装置に要求して受信し、該第1の配信データの受信に要した時間に基づいて前記通信状況を取得する
付記11記載のデータ配信方法。
(付記14)
取得した通信状況に基づいて、現在時点のビットレートより低ビットレートの配信データの受信に切り換える必要があるか否かをさらに判定し、
前記低ビットレートの配信データの受信に切り換える必要があると判定した場合、前記低ビットレートの配信データの受信に切り換えると共に、受信した配信データの前記データ再生部への転送速度を、現在時点より遅い速度に切り換える
付記10〜付記12の何れか1項記載のデータ配信方法。
取得した通信状況に基づいて、現在時点のビットレートより低ビットレートの配信データの受信に切り換える必要があるか否かをさらに判定し、
前記低ビットレートの配信データの受信に切り換える必要があると判定した場合、前記低ビットレートの配信データの受信に切り換えると共に、受信した配信データの前記データ再生部への転送速度を、現在時点より遅い速度に切り換える
付記10〜付記12の何れか1項記載のデータ配信方法。
(付記15)
ピア・ツー・ピア技術により前記データ配信装置からの前記配信データの受信に代えて他の端末装置から該配信データを受信する場合、該他の端末装置との間の通信経路における通信状況を取得する
付記11〜付記14の何れか1項記載のデータ配信方法。
ピア・ツー・ピア技術により前記データ配信装置からの前記配信データの受信に代えて他の端末装置から該配信データを受信する場合、該他の端末装置との間の通信経路における通信状況を取得する
付記11〜付記14の何れか1項記載のデータ配信方法。
(付記16)
前記配信データの配信元からの該配信データの受信速度を予測し、
前記配信データを先読みする場合のデータ要求量を、前記予測した受信速度に基づいて決定する
付記11〜付記15の何れか1項記載のデータ配信方法。
前記配信データの配信元からの該配信データの受信速度を予測し、
前記配信データを先読みする場合のデータ要求量を、前記予測した受信速度に基づいて決定する
付記11〜付記15の何れか1項記載のデータ配信方法。
(付記17)
前記配信データは、MPEG−DASHで規定されるデータである
付記11〜付記16の何れか1項記載のデータ配信方法。
前記配信データは、MPEG−DASHで規定されるデータである
付記11〜付記16の何れか1項記載のデータ配信方法。
(付記18)
前記通信状況の取得、前記切り換え可能か否かの判定、及び前記切り換えを、ローカルプロキシサーバとしてソフトウェアにより実行する
付記11〜付記17の何れか1項記載のデータ配信方法。
前記通信状況の取得、前記切り換え可能か否かの判定、及び前記切り換えを、ローカルプロキシサーバとしてソフトウェアにより実行する
付記11〜付記17の何れか1項記載のデータ配信方法。
(付記19)
前記通信状況の取得、前記切り換え可能か否かの判定、及び前記切り換えを、ハードウェアにより実行する
付記11〜付記17の何れか1項記載のデータ配信方法。
前記通信状況の取得、前記切り換え可能か否かの判定、及び前記切り換えを、ハードウェアにより実行する
付記11〜付記17の何れか1項記載のデータ配信方法。
10 端末装置
11 データ再生部
12 取得部
13 判定部
14 切換部
14A 第1切換部
14B 第2切換部
16 データ配信装置
20 端末装置
21 データ再生部
22 取得部
23 判定部
24 切換部
30 コンピュータ・システム
40、40A〜40C クライアントPC
41 CPU
42 メモリ
43 記憶部
43A テスト・切換プログラム
43A1 取得プロセス
43A2 判定プロセス
43A3 第1切換プロセス
43B データ転送プログラム
43B1 第2切換プロセス
44 入力部
45 表示部
50 映像配信サーバ
60 P2Pインデックスサーバ
63 記憶部
63A 端末情報管理テーブル記憶領域
70 移動端末装置
72 速度予測部
74 速度マップDB
76 GPS
80 ネットワーク
CM P2Pクライアントモジュール
HPS プロキシサーバ
MP メディアプレーヤ
PS ローカルプロキシサーバ
11 データ再生部
12 取得部
13 判定部
14 切換部
14A 第1切換部
14B 第2切換部
16 データ配信装置
20 端末装置
21 データ再生部
22 取得部
23 判定部
24 切換部
30 コンピュータ・システム
40、40A〜40C クライアントPC
41 CPU
42 メモリ
43 記憶部
43A テスト・切換プログラム
43A1 取得プロセス
43A2 判定プロセス
43A3 第1切換プロセス
43B データ転送プログラム
43B1 第2切換プロセス
44 入力部
45 表示部
50 映像配信サーバ
60 P2Pインデックスサーバ
63 記憶部
63A 端末情報管理テーブル記憶領域
70 移動端末装置
72 速度予測部
74 速度マップDB
76 GPS
80 ネットワーク
CM P2Pクライアントモジュール
HPS プロキシサーバ
MP メディアプレーヤ
PS ローカルプロキシサーバ
Claims (9)
- 動画及び音声の少なくとも一方を表し、マルチビットレートに対応した配信データから、何れかのビットレートの配信データの配信を選択的に要求し、該要求に応じて受信した配信データを再生するデータ再生部と、
前記データ再生部からの要求に応じた配信データをデータ配信装置から受信して、該要求に応じた転送速度で前記データ再生部に転送すると共に、前記データ配信装置との間の通信経路における通信状況を取得する取得部と、
前記取得部によって取得された通信状況に基づいて、現在時点のビットレートより高ビットレートの配信データの受信に切り換え可能か否かを判定する判定部と、
前記判定部によって切り換え可能と判定された場合、前記高ビットレートの配信データの受信に切り換えると共に、受信した配信データの前記データ再生部への転送速度を、現在時点より速い速度に切り換える切換部と、
を備えた端末装置。 - 前記取得部は、前記データ再生部からの要求に応じたビットレートの配信データである第1の配信データを受信している場合に、該ビットレートより高いビットレートの配信データである第2の配信データを前記データ配信装置に要求して受信し、該第2の配信データの受信に要した時間に基づいて前記通信状況を取得する
請求項1記載の端末装置。 - 前記取得部は、前記データ再生部からの要求に応じたビットレートの配信データである第1の配信データを受信している場合に、該ビットレートより高いビットレートの配信データである第2の配信データのビットレートに応じて前記第1の配信データを増量して前記データ配信装置に要求して受信し、該第1の配信データの受信に要した時間に基づいて前記通信状況を取得する
請求項1記載の端末装置。 - 前記判定部は、前記取得部によって取得された通信状況に基づいて、現在時点のビットレートより低ビットレートの配信データの受信に切り換える必要があるか否かをさらに判定し、
前記切換部は、前記判定部により、前記低ビットレートの配信データの受信に切り換える必要があると判定された場合、前記低ビットレートの配信データの受信に切り換えると共に、受信した配信データの前記データ再生部への転送速度を、現在時点より遅い速度に切り換える
請求項1〜請求項3の何れか1項記載の端末装置。 - 前記取得部は、ピア・ツー・ピア技術により前記データ配信装置からの前記配信データの受信に代えて他の端末装置から該配信データを受信する場合、該他の端末装置との間の通信経路における通信状況を取得する
請求項1〜請求項4の何れか1項記載の端末装置。 - 前記配信データの配信元からの該配信データの受信速度を予測する予測部をさらに備え、
前記取得部は、前記配信データを先読みする場合のデータ要求量を、前記予測部によって予測された受信速度に基づいて決定する
請求項1〜請求項5の何れか1項記載の端末装置。 - 前記配信データは、MPEG−DASHで規定されるデータである
請求項1〜請求項6の何れか1項記載の端末装置。 - 前記取得部、前記判定部、及び前記切換部は、自端末装置のローカルプロキシサーバとしてソフトウェアにより構成されている
請求項1〜請求項7の何れか1項記載の端末装置。 - 動画及び音声の少なくとも一方を表し、マルチビットレートに対応した配信データから、何れかのビットレートの配信データの配信を選択的に要求し、該要求に応じて受信した配信データを再生するデータ再生部からの要求に応じた配信データをデータ配信装置から受信して、該要求に応じた転送速度で前記データ再生部に転送すると共に、前記データ配信装置との間の通信経路における通信状況を取得し、
取得した通信状況に基づいて、現在時点のビットレートより高ビットレートの配信データの受信に切り換え可能か否かを判定し、
切り換え可能と判定した場合、前記高ビットレートの配信データの受信に切り換えると共に、受信した配信データの前記データ再生部への転送速度を、現在時点より速い速度に切り換える、
ことを含む処理をコンピュータに実行させるデータ配信方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014135729A JP2016015566A (ja) | 2014-07-01 | 2014-07-01 | 端末装置及びデータ配信方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014135729A JP2016015566A (ja) | 2014-07-01 | 2014-07-01 | 端末装置及びデータ配信方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2016015566A true JP2016015566A (ja) | 2016-01-28 |
Family
ID=55231471
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014135729A Withdrawn JP2016015566A (ja) | 2014-07-01 | 2014-07-01 | 端末装置及びデータ配信方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2016015566A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017062617A (ja) * | 2015-09-24 | 2017-03-30 | 富士通株式会社 | 中継装置、中継方法、及び中継プログラム |
JP2020511811A (ja) * | 2017-02-17 | 2020-04-16 | ディビックス, エルエルシー | 適応ビットレートストリーミングの間の複数のコンテンツ配信ネットワーク間の適応切替のためのシステムおよび方法 |
JP2022546764A (ja) * | 2019-09-04 | 2022-11-08 | ネイバー コーポレーション | ローカルストリーミングサーバを利用したストリーミングコンテンツの再生方法およびシステム |
-
2014
- 2014-07-01 JP JP2014135729A patent/JP2016015566A/ja not_active Withdrawn
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017062617A (ja) * | 2015-09-24 | 2017-03-30 | 富士通株式会社 | 中継装置、中継方法、及び中継プログラム |
JP2020511811A (ja) * | 2017-02-17 | 2020-04-16 | ディビックス, エルエルシー | 適応ビットレートストリーミングの間の複数のコンテンツ配信ネットワーク間の適応切替のためのシステムおよび方法 |
US11343300B2 (en) | 2017-02-17 | 2022-05-24 | Divx, Llc | Systems and methods for adaptive switching between multiple content delivery networks during adaptive bitrate streaming |
JP7275033B2 (ja) | 2017-02-17 | 2023-05-17 | ディビックス, エルエルシー | 適応ビットレートストリーミングの間の複数のコンテンツ配信ネットワーク間の適応切替のためのシステムおよび方法 |
JP2022546764A (ja) * | 2019-09-04 | 2022-11-08 | ネイバー コーポレーション | ローカルストリーミングサーバを利用したストリーミングコンテンツの再生方法およびシステム |
JP7282981B2 (ja) | 2019-09-04 | 2023-05-29 | ネイバー コーポレーション | ローカルストリーミングサーバを利用したストリーミングコンテンツの再生方法およびシステム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200177657A1 (en) | Low-latency http live streaming | |
US20210067578A1 (en) | Streaming media segments | |
EP3005718B1 (en) | Manager for dash media streaming | |
KR101904244B1 (ko) | 개량된 스트리밍 미디어 재생 | |
KR101330052B1 (ko) | 적응형 컨텐츠 전송 방식을 지원하는 컨텐츠 캐싱 서비스 제공 방법 및 이를 위한 로컬 캐싱 장치 | |
JP2015509229A (ja) | アプリケーション駆動のcdnのプリキャッシング | |
US20100195602A1 (en) | Application, Usage & Radio Link Aware Transport Network Scheduler | |
US11736740B2 (en) | Delivering video in a content delivery network | |
JP2007080161A (ja) | データ配信システム、部分コンテンツ格納サーバ、応答高速化方法、及びプログラム | |
CN105379295A (zh) | 分段内容的流送 | |
JP6761983B2 (ja) | 広告配信サーバ、番組配信サーバ及び再生端末、並びに映像配信システム | |
JP5673538B2 (ja) | 配信システム | |
KR102530551B1 (ko) | 광고 표시 방법, 광고 표시 장치, 광고 표시 프로그램 | |
CN107920108A (zh) | 一种媒体资源的推送方法、客户端及服务器 | |
US10277652B2 (en) | Transmission apparatus, transmission method, and program | |
JP2008250370A (ja) | 情報処理装置及び情報処理用プログラム | |
JP2016015566A (ja) | 端末装置及びデータ配信方法 | |
JP6305738B2 (ja) | メディア再生制御装置、メディア再生制御方法、及びプログラム | |
JP2007516499A (ja) | クライアントデバイスによって要求されたコンテンツにサービスを提供するプロバイダが選択されるシステム及び方法 | |
US20040236857A1 (en) | Systems and methods for selecting a provider to service content requested by a client device | |
JP2013045273A (ja) | キャッシュサーバ、キャッシュ対象決定方法、コンテンツ配信システム及びキャッシュ対象決定プログラム | |
JP2016091436A (ja) | 通信装置、通信方法、及び、プログラム | |
EP3217681A1 (en) | Display apparatus | |
CN115174987A (zh) | 视频的播放方法、装置、计算机设备和存储介质 | |
JP2016033790A (ja) | 画面転送サーバ装置、および画面転送方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170309 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20171225 |