JP6481291B2 - コンテンツ配信装置、コンテンツ配信方法、およびコンテンツ配信プログラム - Google Patents

コンテンツ配信装置、コンテンツ配信方法、およびコンテンツ配信プログラム Download PDF

Info

Publication number
JP6481291B2
JP6481291B2 JP2014174432A JP2014174432A JP6481291B2 JP 6481291 B2 JP6481291 B2 JP 6481291B2 JP 2014174432 A JP2014174432 A JP 2014174432A JP 2014174432 A JP2014174432 A JP 2014174432A JP 6481291 B2 JP6481291 B2 JP 6481291B2
Authority
JP
Japan
Prior art keywords
file
bandwidth
control unit
distribution
value
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.)
Active
Application number
JP2014174432A
Other languages
English (en)
Other versions
JP2015089113A (ja
Inventor
竹澤 正行
正行 竹澤
大貴 田中
大貴 田中
法夫 近藤
法夫 近藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Electric Industry Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Oki Electric Industry Co Ltd filed Critical Oki Electric Industry Co Ltd
Priority to JP2014174432A priority Critical patent/JP6481291B2/ja
Publication of JP2015089113A publication Critical patent/JP2015089113A/ja
Application granted granted Critical
Publication of JP6481291B2 publication Critical patent/JP6481291B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Description

本発明は、コンテンツ配信装置、コンテンツ配信方法、およびコンテンツ配信プログラムに関する。
サーバがアダプティブストリーミングを用いて端末にコンテンツの配信を行う場合、サーバは、エンコーダによってデジタルデータ化された映像・音声信号を10秒単位の映像データに分割して、小さな連続したファイル(例えば、MPEG-2 TS(Transport Stream)形式のTSファイル)を作成する。このとき、エンコーダは、デジタルデータ作成時に、複数のバリエーション(ビットレート値に応じたいくつかのバリエーション)でファイルを作成する。サーバは、エンコーダにより生成された複数のバリエーションのTSファイルのリストであるプレイリストを作成しておき、端末にTSファイルを配信する前に、端末にプレイリストを送信する。
端末は、TSファイルを要求する場合、プレイリストを参照して、サーバとの間の帯域幅の状態に基づき複数のバリエーションから一つを指定して、そのバリエーションのTSファイルをサーバに要求する。
従来、高画質の映像コンテンツを提供するために、サーバは高ビットレート値のファイルを端末に配信することを前提としていた。そのため、サーバは、高ビットレート値のTSファイルを毎回配信すると仮定して通信帯域を割り当てて、利用可能な残り帯域幅(リソース)を仮定していた。この仮定した残り帯域幅から、端末からの新たなファイル配信要求に応じて、新たな高ビットレート値のTSファイルを配信するための通信帯域を割り当てられるか否かの配信許可判定を行っていた。
HTTP Live Streamingの概要、18-19頁、2011年4月1日改訂版、アップルジャパン株式会社、[2013年8月12日Web検索]、インターネット[URL:https://developer.apple.com/jp/devcenter/ios/library/documentation/StreamingMediaGuide.pdf]
しかしながら、サーバがアダプティブストリーミングを用いて配信を行っているため、実際は、高ビットレート値のTSファイルだけが配信されているのではなく、それより低いビットレート値のTSファイルも配信されていた。そのため、実際の残り帯域幅は、仮定した残り帯域幅より広いことが多かった。
この実際の残り帯域幅は、サーバ(コンテンツ配信装置)の配信能力から得られる最大限で割り当てられる通信帯域(最大配信帯域;上限リソース使用情報値)から、サーバで利用されている(配信中の)通信帯域の合計である配信中総帯域(合計リソース使用情報値)を差分することで得られるものである。
すなわち、端末からの新たなファイル配信要求に対して、実際には十分に割り当てられる帯域幅があるにもかかわらず、従来の仮定した残り帯域幅を用いた配信許可判定を行った場合、「残り帯域幅(リソース)が不足しているため通信帯域を割り当てられない」と判定されてしまうことがあった。その結果、端末には、ファイルを配信できないことが通知された。
このように、高ビットレート値のコンテンツを端末に配信することを前提として、利用可能な残り帯域幅(リソース)を仮定するという従来の配信許可判定では、リソースに余裕があるにもかかわらず、高ビットレート値のコンテンツを配信することによりリソースが枯渇することを懸念して、ファイル配信が許可されない。そのため、従来のサーバ(コンテンツ配信装置)は、最大配信帯域(上限リソース使用情報値)を最大限に利用してコンテンツを配信できないという問題があった。
本発明は、以上のような問題を解決するためになされたものであり、アダプティブストリーミングを用いて配信する場合に、リソース使用情報値を上限リソース使用情報値に近づけることでリソースを最大限に利用してコンテンツを配信するコンテンツ配信装置、コンテンツ配信方法、およびコンテンツ配信プログラムを提供することを課題とする。
前記課題を解決するために、本発明のコンテンツ配信装置は、複数の通信装置にコンテンツ配信を行うコンテンツ配信装置であって、複数のファイルで構成されるコンテンツを配信するに当たり、単位時間当たりの配信量を示す通信帯域をファイルに割り当てる配信制御部と、前記通信装置からファイル要求信号を受信して、要求されたファイルを割り当てられた通信帯域で送信する送受信部と、を備え、前記配信制御部は、ファイル送信負荷に係るリソース使用情報値である、送信するファイルに割り当てられた通信帯域に基づき、前記送受信部による各ファイル送信時における前記リソース使用情報値それぞれを合計した合計リソース使用情報値である、各ファイルに割り当てられた通信帯域の合計値が、所定の上限リソース使用情報値である、利用可能な通信帯域の上限を示す所定値を超える場合に、割り当てなおした後の合計リソース使用情報値が、前記上限リソース使用情報値以下となるように、各々のファイルに対して割り当てられた通信帯域を狭くして割り当てなおす、第1処理部と第2処理部とを有し、前記第1処理部は、前記各々のファイルにおいて第1レートを有するファイルに対して割り当てられた通信帯域を狭くして割り当てなおし、前記第2処理部は、前記第1処理部により割り当てなおした後の合計リソース使用情報値が、利用可能な通信帯域の上限を示す所定値を超える場合に、前記各々のファイルにおいて第1レートより低いレートである第2レートを有するファイルに対して割り当てられた通信帯域を狭くして割り当てなおすことを特徴とする。なお、( )内の文字、記号は例示である。
本発明によれば、合計リソース使用情報値が上限リソース使用情報値以下になるように、各々のファイルの通信帯域を狭くして割り当てることで、リソースを最大限に利用してコンテンツを配信できる
本発明に係るコンテンツ配信装置を含むコンテンツ配信システムのブロック図である。 本発明に係るコンテンツ配信装置の構成を示すブロック図である。 プレイリストの一例である。 本発明に係るコンテンツ配信装置のプレイリスト要求を受けた場合のプレイリスト送信処理のフローチャートである。 本発明に係るコンテンツ配信装置の配信要求を受けた場合のファイル配信処理のフローチャートである。 図5のステップS208で狭くした帯域を元に戻す帯域回復処理のフローチャートである。 本発明に係るコンテンツ配信装置が割り当てている配信中総帯域を示すタイムチャートである。 図7におけるT1〜T5の時点における端末それぞれにファイルを配信するために割り当てられる帯域の広さを示している。 本発明に係るコンテンツ配信装置の配信要求を受けた場合のファイル配信処理のフローチャートである。 狭くした帯域を元に戻す帯域回復処理のフローチャートである。 本発明に係るコンテンツ配信装置が割り当てている配信中総帯域を示すタイムチャートである。 図11におけるT1〜T5の時点における端末それぞれにファイルを配信するために割り当てられる帯域の広さを示している。 本発明に係るコンテンツ配信装置の構成を示すブロック図である。 本発明に係るコンテンツ配信装置のプレイリスト要求を受けた場合のプレイリスト送信処理のフローチャートである。 本発明に係るコンテンツ配信装置の配信要求を受けた場合のファイル配信処理のフローチャートである。 狭くした帯域を元に戻す帯域回復処理のフローチャートである。 本発明に係るコンテンツ配信装置が割り当てている配信中総帯域を示すタイムチャートである。 図17におけるT1〜T5の時点における端末それぞれにファイルを配信するために割り当てられる帯域の広さを示している。 本発明に係るコンテンツ配信装置の構成を示すブロック図である。 本発明に係るコンテンツ配信装置のプレイリスト要求を受けた場合のプレイリスト送信処理のフローチャートである。 本発明に係るコンテンツ配信装置の配信要求を受けた場合のファイル配信処理のフローチャートである。 狭くした帯域を元に戻す帯域回復処理のフローチャートである。 本発明に係るコンテンツ配信装置が割り当てている配信中総帯域を示すタイムチャートである。 図23におけるT1〜T5の時点における端末それぞれにファイルを配信するために割り当てられる帯域の広さを示している。 本発明に係るコンテンツ配信装置を含むコンテンツ配信システムのブロック図である。 本発明に係るコンテンツ配信装置の構成を示すブロック図である。 本発明に係るコンテンツ配信装置の書込要求受信処理のフローチャートである。 本発明に係るコンテンツ配信装置のファイル書込処理のフローチャートである。 本発明に係るコンテンツ配信装置が割り当てている配信中総帯域を示すタイムチャートである。 図29におけるT1〜T6の時点における端末それぞれにファイルを配信するために割り当てられる帯域の広さを示している。
以下、図面を参照して、本発明の実施の形態(以下、「本実施形態」と称する)につき詳細に説明する。なお、各図は、本発明について概略的に示してあるに過ぎない。よって、本発明は、図示例のみに限定されるものではない。また、各図において、共通する構成要素や同様な構成要素については、同一の符号を付し、それらの重複する説明を省略する。
≪コンテンツ配信システム1≫
図1に示すように、コンテンツ配信システム1は、コンテンツ配信装置10と、複数の端末30(30a、30b、30c、30d、・・・)とを備え、コンテンツ配信装置10は、ネットワーク20を介して端末30それぞれと通信可能に接続される。
本実施形態のコンテンツ配信システム1において、コンテンツ配信装置10は、各端末30とアダプティブストリーミングを行う。
(アダプティブストリーミング)
ここで、本実施形態のコンテンツ配信システム1におけるアダプティブストリーミングを用いた映像配信の一例を説明する。
端末30は、まず、コンテンツ配信装置10からプレイリストPLを受信する。そして、端末30は、プレイリストPLに列挙された複数のバリエーション(ビットレート値に応じたいくつかのバリエーション)で用意されたファイル(TSファイル)から、端末30とコンテンツ配信装置10との間の通信速度に基づき最適なバリエーションのファイル(ファイルが記憶された場所を示すURI(Uniform Resource Identifier))を選び、コンテンツ配信装置10に配信要求する(ファイル要求信号送信)。これにより、コンテンツ配信装置10から選択したバリエーションのファイルをダウンロードすることができる。
ここで、端末30は、端末30とコンテンツ配信装置10との間の通信速度が比較的速い場合、高ビットレート値の高データ転送レートファイルFH(例えば、高画質な映像ファイル)を配信要求する。一方、通信速度が比較的遅い場合は、低ビットレート値の低データ転送レートファイルFL(例えば、低画質な映像ファイル)を配信要求する。
端末30は、コンテンツ配信装置10に配信要求したファイルのうち、一部または全てのファイルをダウンロードする。端末30は、コンテンツ配信装置10に配信要求したファイルにおいて第1の所定割合のファイルをダウンロードすると、端末30は、ダウンロードしたファイルにおいて予め定められた再生順序に基づいて、ダウンロードしたファイルを端末30が有するディスプレイに再生する。端末30は、コンテンツ配信装置10に配信要求したファイルにおいて第2の所定割合のファイルをダウンロードすると、次の処理に進む。
端末30は、次の(1)〜(4)の処理について繰り返し実行して、コンテンツ配信装置10に配信要求したファイルをディスプレイに再生する。
(1)端末30は、コンテンツ配信装置10に対して、端末30とコンテンツ配信装置10との間の通信速度に基づき最適なバリエーションのファイルを選び、コンテンツ配信装置10に配信要求する。
(2)端末30は、コンテンツ配信装置10から選択したバリエーションのファイルをダウンロードする。
(3)端末30は、ダウンロードしたファイルにおいて予め定められた再生順序に基づいて、ダウンロードしたファイルをディスプレイに再生する。または、端末30は、予めダウンロードしたファイルを全て再生しているとき、端末30は、コンテンツ配信装置10に配信要求したファイルにおいて第1の所定割合のファイルをダウンロードすると、端末30は、ダウンロードしたファイルにおいて予め定められた再生順序に基づいて、ダウンロードしたファイルをディスプレイに再生する。
(4)端末30は、コンテンツ配信装置10に配信要求したファイルにおいて第2の所定割合のファイルをダウンロードすると、(1)の処理に進む(繰り返す)。
これにより、端末30は、端末30とコンテンツ配信装置10との間の通信速度に応じて、端末30が有するディスプレイに、再生中に中断することなく最適な画質で映像を表示させることができる。
(端末30)
端末30は、通信機能を備えたコンピュータであり、アダプティブストリーミングで配信される映像データを再生して、ディスプレイに表示させる装置である。例えば、端末30は、スマートフォン(smartphone)等の携帯通信端末や、タブレット型コンピュータ等の携帯情報端末等の無線で通信を行うコンピュータである。また、端末30は、据え置き型のデスクトップパソコン(desktop personal computer)等の有線で通信を行うコンピュータであってもよい。
(コンテンツ配信装置10)
コンテンツ配信装置10は、ネットワーク20に接続され、端末30より受信したプレイリスト要求のパケットに従い、端末30にプレイリストPLを送信し、端末30より受信したコンテンツの配信要求のパケット(ファイル要求信号)に従い、端末30へ要求された映像データをアダプティブストリーミング配信する。コンテンツ配信装置10について詳細を後記する。
(ネットワーク20)
ネットワーク20は、端末30それぞれとコンテンツ配信装置10とを、例えば、有線/無線LAN(Local Area Network)やWAN(Wide Area Network)等を介して、インターネットプロトコル(Internet Protocol)技術を利用して相互接続されるコンピュータネットワークである。
≪コンテンツ配信装置10≫
図2にコンテンツ配信装置10の構成を示す。
コンテンツ配信装置10は、制御部である配信制御部110及びコンテンツ管理部120と、記憶部130と、送受信部140と、エンコーダ150とを備える。
(記憶部130)
記憶部130は、データやプログラムを記憶する構成部であり、例えば、HDD(Hard Disc Drive)、RAM(Random Access Memory)、光ディスク等の記憶手段である。
記憶部130は、一連のデジタルデータ化された映像・音声信号からエンコーダ150により生成された複数のバリエーションのファイル(TSファイル)と、プレイリストPLとを記憶する。
(ファイル)
ここで、記憶部130に記憶されるファイルについて説明する。
デジタルデータ化された映像・音声信号がエンコーダ150に入力される。エンコーダ150は、デジタルデータをファイル化する際に、このデジタルデータを細分化して、10秒単位のTSファイル(MPEG-2 TS形式のファイル)を生成して暗号化する。また、エンコーダ150は、一連のデジタルデータから、ビットレート値に応じた複数のバリエーションを生成する。
これにより、1つの同じ内容の10秒単位のTSファイルが複数のバリエーションで生成され、例えば、記憶部130には、ビットレート値が高いTSファイル(以下、高データ転送レートファイルFHと称する)と、ビットレート値が低いTSファイル(以下、低データ転送レートファイルFLと称する)と、ビットレート値がそれらの中間のTSファイル(以下、中データ転送レートファイルFMと称する)とが記憶される。
(プレイリストPL)
プレイリストPLは、エンコーダ150により生成された複数のバリエーションのTSファイルのリストである。図3に示すように、このプレイリストPLには、TSファイルが保存されている場所や、TSファイルの再生順、暗号化の鍵、コンテンツのバリエーション等が書き込まれる。このプレイリストPLは、エンコーダ150によりM3U8形式で生成される。
制御部である配信制御部110及びコンテンツ管理部120は、例えば、CPU(Central Processing Unit)で構成される。各構成部の制御部としての機能は、CPUが記憶部130に格納されるプログラムを展開し、実行することによって実現される。
(コンテンツ管理部120)
コンテンツ管理部120は、端末30から要求されたTSファイルやプレイリストPLを記憶部130から取得し、配信制御部110(通信制御部111)に渡す。
(配信制御部110)
配信制御部110は、通信制御部111と、通信状態監視部112と、帯域制御部113(バッファ114を内蔵)とを備える。
(通信制御部111)
通信制御部111は、送受信部140を制御して、外部装置(図1において、外部装置は端末30に対応)へデータを送信させたり、送受信部140が受信した外部装置からのデータを取得して処理したりする制御手段である。
通信制御部111は、データをパケット化して、そのパケットのヘッダに宛先を入れ、ビットレート値に応じた帯域を割り当ててから送受信部140に送信させる。
通信制御部111は、帯域制御機能を有し、通信先の外部装置それぞれに対して、TSファイルを配信するために割り当てられる帯域幅(単位時間あたりの配信量)を変更する帯域制御を行う。これにより、通信制御部111は、特定の外部装置に対する帯域幅を確保したり逆に制限したりすることで、リソースである帯域を有効に使うことができる。
また、通信制御部111は、帯域制御部113がした帯域更新の設定に応じて、帯域の割り当てを変更する。
(通信状態監視部112)
通信状態監視部112は、送受信部140からファイルを配信するために、ファイルそれぞれに割り当てられた帯域の広さを取得する制御手段である。このファイルに割り当てられた帯域の広さは、送受信部140を監視して取得してもよいし、通信制御部111により割り当て済みの帯域を取得してもよい。
(帯域制御部113)
帯域制御部113は、通信状態監視部112による監視結果(現在ファイル配信中で利用されている帯域)と、外部装置(図1において、外部装置は端末30に対応)からの配信要求を受けてこれから配信されるTSファイルのビットレート値とに応じて、帯域更新の設定を行い、通信制御部111が割り当てた帯域の広さを通信制御部111に変更させたり、プレイリストPLの送信許可判定をしたりする制御手段である。
また、帯域制御部113は、一時的にデータを保存するバッファ114を内蔵する。バッファ114は揮発性の記憶手段であってもよいし、不揮発性の記憶手段であってもよい。
(送受信部140)
送受信部140は、ネットワーク20と接続するインタフェースであり、配信制御部110(通信制御部111)に制御されて、ネットワーク20を介して、端末30とデータの送受信を行う。
コンテンツ配信装置10による、プレイリスト送信処理と、ファイル配信処理とについて図4〜図6に示すフローチャートを用いて説明する。
[プレイリスト送信処理]
図4は、コンテンツ配信装置のプレイリスト要求を受けた場合の動作のフローチャートである。
まず、端末30から送受信部140がプレイリスト要求を受信したことを通信制御部111が検知することで、配信制御部110はプレイリスト送信処理を実行する。
この、端末30から送受信部140が受信したプレイリスト要求を、通信制御部111が取得する(ステップS101)。
帯域制御部113は、コンテンツ管理部120に問い合わせて、プレイリスト要求に基づき、最初に配信されるTSファイルのバリエーションのうち、高データ転送レートファイルFHのビットレート値をコンテンツ管理部120から取得する(ステップS102)。
帯域制御部113は、通信状態監視部112から監視結果である現在配信中の総帯域(配信中総帯域;合計リソース使用情報値)を取得する(ステップS103)。
そして、帯域制御部113は、コンテンツ配信装置10が配信可能な総帯域(最大配信帯域;上限リソース使用情報値)から配信中総帯域を減算して、現在配信可能な空き配信帯域を算出する(ステップS104)。この最大配信帯域は、コンテンツ配信装置10のスペックに基づくものである。
帯域制御部113は、ステップS102で取得したビットレート値と、ステップS104で算出した空き配信帯域とを比較する(ステップS105:ビットレート値<空き配信帯域?)。ここで、帯域制御部113は、ビットレート値と空き配信帯域を比較するとき、ビットレート値の単位および空き配信帯域の単位として、例えばMbpsを用いる。
ビットレート値の方が大きい場合(ステップS105,No)、帯域制御部113は、配信不可のメッセージを作成する(ステップS106)。そして、通信制御部111は、プレイリスト要求の送信元(端末30)を宛先にして、配信不可のメッセージを送受信部140に送信させる(ステップS107)。
これにより、アダプティブストリーミングが中断され、配信制御部110はプレイリスト送信処理を終了する。
一方、空き配信帯域の方が大きい場合(ステップS105,Yes)、帯域制御部113は、プレイリストの送信指示を出力する(ステップS108)。
これにより、通信制御部111は、コンテンツ管理部120に問い合わせて、ステップS101で取得したプレイリスト要求に基づき、プレイリストPLをコンテンツ管理部120から取得する(ステップS109)。そして、通信制御部111は、プレイリスト要求の送信元(端末30)を宛先にして、プレイリストPLを送受信部140に送信させる(ステップS110)。そして、配信制御部110はプレイリスト送信処理を終了する。
これにより、端末30はプレイリストPLを取得することができる。
[ファイル配信処理]
図5〜図6は、コンテンツ配信装置の配信要求を受けた場合の動作のフローチャートである。特に図6は、図5のステップS208で狭くした帯域を元に戻す帯域回復処理のフローチャートである。
まず、端末30から送受信部140がファイル配信要求を受信したことを通信制御部111が検知することで、配信制御部110はファイル配信処理を実行する。
この、端末30から送受信部140が受信したファイル配信要求を、配信制御部110(通信制御部111)が取得する(ステップS201)。
帯域制御部113は、コンテンツ管理部120に問い合わせて、ファイル配信要求に基づき、要求されたTSファイルのビットレート値をコンテンツ管理部120から取得する(ステップS202)。
このとき、コンテンツ管理部120は、通信制御部111からURIを受け取り、そのURIで示される記憶部130の場所にあるTSファイルのビットレート値を取得し、通信制御部111に渡す。
帯域制御部113は、通信状態監視部112から監視結果である現在配信中の総帯域(配信中総帯域)を取得する(ステップS203)。
そして、帯域制御部113は、配信可能な総帯域(最大配信帯域)から配信中総帯域を減算して、現在配信可能な空き配信帯域を算出する(ステップS204)。
帯域制御部113は、ステップS202で取得したビットレート値と、ステップS204で算出した空き配信帯域とを比較する(ステップS205:ビットレート値≦空き配信帯域?)。ここで、帯域制御部113は、ビットレート値と空き配信帯域を比較するとき、ビットレート値の単位および空き配信帯域の単位として、例えばMbpsを用いる。
空き配信帯域の方が大きい又は等しい場合(ビットレート値≦空き配信帯域の場合)(ステップS205,Yes)、図6のステップS301の処理を実行する。
一方、ビットレート値の方が大きい場合(ビットレート値>空き配信帯域の場合)(ステップS205,No)、帯域制御部113は、ビットレート値から空き配信帯域を差分して、不足分帯域を算出する(ステップS206)。そして、帯域制御部113は、高ビットレート値で配信中のTSファイル(高データ転送レートファイルFH)を調べ、高データ転送レートファイルFHそれぞれに割り当てられた帯域(以下、オーバーフロー帯域と称する)をバッファ114に記憶させる(ステップS207)。このとき、配信要求されたTSファイルの(ステップS202で取得した)ビットレート値が高ビットレート値であれば、当該配信要求されたTSファイルも高データ転送レートファイルFHとして扱い、高データ転送レートファイルFHと同じ広さの帯域が割り当てられるものとして扱う。
帯域制御部113は、配信中総帯域が最大配信帯域以下となるように、高データ転送レートファイルFHそれぞれに割り当てられた帯域を一様に狭くさせる帯域更新の設定をする(ステップS208)。例えば、帯域制御部113は、不足分帯域を高データ転送レートファイルFHの数で除算した値の分だけ、高データ転送レートファイルFHそれぞれに割り当てられた帯域を狭くさせる。
通信制御部111は、コンテンツ管理部120に問い合わせて、要求されたTSファイルをコンテンツ管理部120から取得する(ステップS209)。
このとき、コンテンツ管理部120は、通信制御部111からURIを受け取り、そのURIで示される記憶部130の場所にあるTSファイルを取得し、通信制御部111に渡す。
そして、通信制御部111は、帯域制御部113がした帯域更新の設定に応じて、帯域の割り当てを行い(ステップS210)、ファイル配信要求の送信元(端末30)を宛先にして、取得したTSファイルを送受信部140に送信(配信)させる(ステップS211)。そして、配信制御部110はファイル配信処理を終了する。これにより、端末30は要求したバリエーションのTSファイルを取得することができる。
以上のように、ステップS208の処理により、ステップS210の処理にて、帯域更新の設定に応じて、TSファイルそれぞれに割り当てられる帯域が変更される。
ここで、帯域が不足せずに、余裕を持って帯域が割り当てられて配信されている場合、ステップS209で取得した要求されたTSファイルは、ステップS205でYesと判定された後、後記する帯域回復処理のステップS301でNoまたはその後のステップS304でNoと判定され、ステップS210の処理にて、ステップS202で取得したビットレート値に応じた帯域が割り当てられることになる。
[帯域回復処理]
図6は、ステップS208で狭くした帯域を元に戻す帯域回復処理のフローチャートである。
ステップS205(図5)の処理で、空き配信帯域の方が大きい又は等しい場合(ビットレート値≦空き配信帯域の場合)(ステップS205,Yes)、帯域制御部113は、オーバーフロー帯域がバッファ114に記憶されているか否かを判定する(ステップS301)。このオーバーフロー帯域は、ステップS207(図5)の処理でバッファ114に記憶されるものである。
記憶されていない場合(ステップS301,No)、ステップS209(図5)の処理を行う。
一方、記憶されている場合(ステップS301,Yes)、帯域制御部113は、バッファ114からオーバーフロー帯域を取得する(ステップS302)。
そして、帯域制御部113は、ステップS208の処理で、高データ転送レートファイルFHそれぞれに対して一様に狭くさせた帯域を、オーバーフロー帯域に戻した場合、すなわち、回復した場合の配信中総帯域(回復時配信中総帯域)を算出する(ステップS303)。
このとき、帯域制御部113は、ステップS201(図5)で取得した要求されたTSファイルについては、前回配信したTSファイルに対して割り当てられたオーバーフロー帯域ではなく、ステップS202(図5)で取得したビットレート値に応じて割り当てられる帯域で、回復した場合の配信中総帯域を算出する。
帯域制御部113は、ステップS303で取得した配信中総帯域と、最大配信帯域とを比較する(ステップS304:配信中総帯域<最大配信帯域?)。
配信中総帯域の方が大きい場合(ステップS304,No)、ステップS209(図5)の処理を行う。
一方、最大配信帯域の方が大きい場合(ステップS304,Yes)、高データ転送レートファイルFHを送信するためにオーバーフロー帯域を割り当てるように帯域更新の設定をする(ステップS305)。これにより、ステップS208の処理で、高データ転送レートファイルFHそれぞれに対して一様に狭くさせた帯域を元に戻す(回復する)ことができる。
そして、ステップS209(図5)の処理を行う。
以上のように、ステップS305の処理により、ステップS210の処理にて、帯域更新の設定に応じて、TSファイルそれぞれに割り当てられる帯域が変更される。
≪タイムチャート≫
図7及び図8を用いて、図5のファイル配信処理及び図6の帯域回復処理による帯域の割り当て、帯域の回復について説明する。
図7は、コンテンツ配信装置10が割り当てている配信中総帯域を示すタイムチャートである。図8は、図7におけるT1〜T5の時点における端末30a、30b、30c、30dそれぞれに割り当てられた帯域の広さを示している。
T1は初期状態、T2は端末30bから新規に高データ転送レートファイルFHのファイル配信要求があり不足分帯域が発生したとき、T3は帯域を狭くしたとき、T4は端末30aから新規に低データ転送レートファイルFLのファイル配信要求により空き配信帯域が発生したとき、T5は帯域を元に戻したとき、それぞれの時点における配信中総帯域を示している。
図7において、配信中総帯域を実線で、最大配信帯域を一点鎖線で、T2の時点で新規のファイル配信要求に応じて高データ転送レートファイルFHを配信した場合の配信中総帯域を破線で示している。
(T1の時点)
図8(a)は、図7のT1の時点における端末30a、30b、30c、30dそれぞれに対して、TSファイルを配信するために割り当てられた帯域の広さを示しており、端末30a及び端末30dには広い帯域が割り当てられ、端末30b及び端末30cには狭い帯域が割り当てられている状態である。これは、端末30a及び端末30dには高データ転送レートファイルFHが配信され、端末30b及び端末30cには低データ転送レートファイルFLが配信されているためである。
(T2の時点)
図8(b)は、図7のT2の時点における状態であり、端末30bへのファイル配信が終了し、新たなファイル配信要求が来た状態である。端末30bからの新たなファイル配信要求で要求されたTSファイルのビットレート値が大きいため(高データ転送レートファイルFH)、ステップS205の処理(ビットレート値≦空き配信帯域?)で、ビットレート値の方が大きい場合(ビットレート値>空き配信帯域の場合)(ステップS205,No)に判定される状態である。このビットレート値に応じて帯域を確保すると、配信中総帯域が最大配信帯域を超えることを×印と破線で示している。このときの端末30a、30dに対して割り当てられている帯域及び端末30bに対して割り当てられるはずだった帯域がオーバーフロー帯域として、バッファ114に記憶される。
(T3の時点)
図8(c)は、図7のT3の時点における状態であり、T2の後のステップS208の処理で、端末30a、30b、30dへ高データ転送レートファイルFHを配信するために割り当てられた帯域に対して、不足分帯域を高データ転送レートファイルFHの数(ここでは3)で除算した値の分だけ狭くさせるように帯域更新の設定がされ、その後のステップS210の処理で帯域が割り当てられた状態である。
これにより、図8(c)に示すように、高データ転送レートファイルFHが配信される端末30a、30b、30dに対して、ファイル配信に割り当てられた帯域は、図8(b)で示す帯域よりも狭くなる。
(T4の時点)
図8(d)は、図7のT4の時点における状態であり、端末30aへのファイル配信が終了し、新たなファイル配信要求が来た状態である。端末30aからの新たなファイル配信要求で要求されたTSファイルのビットレート値が小さく(低データ転送レートファイルFL)、ステップS205の処理(ビットレート値≦空き配信帯域?)で、空き配信領域の方が大きい又は等しい場合(ビットレート値≦空き配信帯域の場合)(ステップS205,Yes)に判定される状態である。このビットレート値に応じて帯域を確保すると、配信中総帯域が最大配信帯域を大きく下回ることを×印と破線で示している。
(T5の時点)
図8(e)は、図7のT5の時点における状態であり、帯域回復処理が行われた状態である。T4の後のステップS305の処理にて、ステップS208の処理で、帯域を狭くさせられた端末30b、30dへ配信中のTSファイルに対して、オーバーフロー帯域を割り当てるように帯域更新の設定がされ、その後のステップS210の処理で帯域が割り当てられた状態である。
これにより、図8(e)に示すように、高データ転送レートファイルFHが配信される端末30b、30dに対して、ファイル配信に割り当てられた帯域は、図8(b)で示す帯域(オーバーフロー帯域)まで回復する(帯域が元に戻る)。
以上のように、本発明によれば、コンテンツ配信装置10が配信可能な総帯域(最大配信帯域)を、新たにファイル配信を要求通りに行うことで配信中の各コンテンツの高ビットレート値の総和(配信中総帯域)が上回ってしまう場合でも、現在配信可能な空き配信帯域があるならば、新たなファイル配信要求を受け入れることができる。そのため、本発明のコンテンツ配信装置10は、最大配信帯域を無駄なく使用することができるという効果が得られる。
また、配信制御部110は、現在配信可能な空き配信帯域に基づき、新たなコンテンツのプレイリスト要求を受け付けるため、本発明のコンテンツ配信装置10は、最大配信帯域を無駄なく使用することができるという効果が得られる。
≪第2実施形態≫
第2実施形態に係るコンテンツ配信装置10A(図2)について説明する。
第2実施形態に係るコンテンツ配信装置10Aは、第1実施形態に係るコンテンツ配信装置10が実行する処理(ファイル配信処理(図5)及び帯域回復処理(図6))の一部を変更した変形例である。そのため、第2実施形態に係るコンテンツ配信システム1を構成する各構成部は、第1実施形態における同名称かつ同符号の構成部と同様の処理を行うため、説明を便宜的に省略する。また、プレイリスト送信処理(図4)についても同様の処理を行うため、説明を便宜的に省略する。
(変更した処理について)
・ステップS205AでYesの場合に、ステップS209の処理を実行する。
・ステップS210A
・ステップS306A
以上、図9、図10を参照
詳細は後記するが、これらの変更により、第2実施形態に係るコンテンツ配信装置10Aは、ファイル配信処理を実行した後で、帯域回復処理を実行する。つまり、帯域回復処理は、ファイル配信処理のステップS211(図9)の処理を実行して、送受信部140が複数のTSファイルで構成される1つのビットレートファイルを送信(配信)した後で行われる。すなわち、このビットレートファイルを送信(配信)し終えたことで、帯域にその分の余裕(空き)ができたときに、帯域が回復することとなる。
[ファイル配信処理]
図9はコンテンツ配信装置の配信要求を受けた場合のファイル配信処理のフローチャートである。そして、図10は図9のステップS208で狭くした帯域を元に戻す帯域回復処理のフローチャートである。
ステップS201からステップ204までの処理は、第1実施形態に係るコンテンツ配信装置10が実行するファイル配信処理と同様の処理を行うため、説明を便宜的に省略する。
(ステップS205A以降の処理)
帯域制御部113は、ステップS202で取得したビットレート値と、ステップS204で算出した空き配信帯域とを比較する(ステップS205A:ビットレート値≦空き配信帯域?)。ここで、帯域制御部113は、ビットレート値と空き配信帯域を比較するとき、ビットレート値の単位および空き配信帯域の単位として、例えばMbpsを用いる。
空き配信帯域の方が大きい又は等しい場合(ビットレート値≦空き配信帯域の場合)(ステップS205A,Yes)、ステップS209の処理を実行する。
一方、ビットレート値の方が大きい場合(ビットレート値>空き配信帯域の場合)(ステップS205A,No)、帯域制御部113は、ビットレート値から空き配信帯域を差分して、不足分帯域を算出する(ステップS206)。そして、帯域制御部113は、高ビットレート値で配信中のTSファイル(高データ転送レートファイルFH)を調べ、高データ転送レートファイルFHそれぞれに割り当てられた帯域(以下、オーバーフロー帯域と称する)をバッファ114に記憶させる(ステップS207)。このとき、配信要求されたTSファイルの(ステップS202で取得した)ビットレート値が高ビットレート値であれば、当該配信要求されたTSファイルも高データ転送レートファイルFHとして扱い、高データ転送レートファイルFHと同じ広さの帯域が割り当てられるものとして扱う。
帯域制御部113は、配信中総帯域が最大配信帯域以下となるように、高データ転送レートファイルFHそれぞれに割り当てられた帯域を一様に狭くさせる帯域更新の設定をする(ステップS208)。例えば、帯域制御部113は、不足分帯域を高データ転送レートファイルFHの数で除算した値の分だけ、高データ転送レートファイルFHそれぞれに割り当てられた帯域を狭くさせる。
通信制御部111は、コンテンツ管理部120に問い合わせて、要求されたTSファイルをコンテンツ管理部120から取得する(ステップS209)。
このとき、コンテンツ管理部120は、通信制御部111からURIを受け取り、そのURIで示される記憶部130の場所にあるTSファイルを取得し、通信制御部111に渡す。
そして、通信制御部111は帯域の割り当てを行う。このとき、帯域制御部113が帯域更新の設定をしていれば(ステップS208参照)、通信制御部111はその帯域更新の設定に応じて、帯域の割り当てを行う(ステップS210A)。
そして、通信制御部111は、ファイル配信要求の送信元(端末30)を宛先にして、取得したTSファイルを送受信部140に送信(配信)させる(ステップS211)。そして、配信制御部110はファイル配信処理を終了する。これにより、端末30は要求したバリエーションのTSファイルを取得することができる。
以上のように、ステップS208の処理により、ステップS210Aの処理にて、帯域更新の設定に応じて、TSファイルそれぞれに割り当てられる帯域が変更される。
ここで、帯域が不足せずに、余裕を持って帯域が割り当てられて配信されている場合、ステップS209で取得したTSファイルは、ステップS205AでYesと判定された後、ステップS210Aの処理にて、ステップS202で取得したビットレート値に応じた帯域が割り当てられることになる。
[帯域回復処理]
図10は、ステップS208で狭くした帯域を元に戻す帯域回復処理のフローチャートである。この帯域回復処理は、ファイル配信処理(図9)のステップS211の処理により、送受信部140によりTSファイルの送信が始まり、ビットレートファイルを送信(配信)した後で行われる。すなわち、このビットレートファイルを送信(配信)し終えたことで、帯域にその分の余裕ができた状態である。
まず、帯域制御部113は、オーバーフロー帯域がバッファ114に記憶されているか否かを判定する(ステップS301)。このオーバーフロー帯域は、ステップS207(図9)の処理でバッファ114に記憶されるものである。
記憶されていない場合(ステップS301,No)は、帯域回復処理を終了する。
一方、記憶されている場合(ステップS301,Yes)、帯域制御部113は、バッファ114からオーバーフロー帯域を取得する(ステップS302)。
そして、帯域制御部113は、ステップS208(図9)の処理で、高データ転送レートファイルFHそれぞれに対して一様に狭くさせた帯域を、オーバーフロー帯域に戻した場合、すなわち、回復した場合の配信中総帯域(回復時配信中総帯域)を算出する(ステップS303)。
このとき、帯域制御部113は、ステップS201(図9)で取得した要求されたTSファイルについては、前回配信したTSファイルに対して割り当てられたオーバーフロー帯域ではなく、ステップS202(図9)で取得したビットレート値に応じて割り当てられる帯域で、回復した場合の配信中総帯域を算出する。
帯域制御部113は、ステップS303で取得した配信中総帯域と、最大配信帯域とを比較する(ステップS304:配信中総帯域<最大配信帯域?)。
配信中総帯域の方が大きい場合(ステップS304,No)は、帯域回復処理を終了する。
一方、最大配信帯域の方が大きい場合(ステップS304,Yes)、高データ転送レートファイルFHを送信するためにオーバーフロー帯域を割り当てるように帯域更新の設定をする(ステップS305)。その後、通信制御部111は、帯域制御部113がした帯域更新の設定に応じて、帯域の割り当てを行う(ステップS306A)。これにより、ステップS208(図9)の処理で、高データ転送レートファイルFHそれぞれに対して一様に狭くさせた帯域を元に戻す(回復する)ことができる。
そして、帯域回復処理を終了する。
以上のように、ステップS210A(図9)の処理にて、高データ転送レートファイルFHそれぞれに対して一様に狭くさせた帯域は、ステップS305及びステップS306Aの処理により、元に戻す(回復する)ことができる。
≪タイムチャート≫
図11及び図12を用いて、図9のファイル配信処理及び図10の帯域回復処理による帯域の割り当て、帯域の回復について説明する。
図11は、コンテンツ配信装置10Aが割り当てている配信中総帯域を示すタイムチャートである。図12は、図11におけるT1〜T5の時点における端末30a、30b、30c、30dそれぞれに割り当てられた帯域の広さを示している。
T1は初期状態、T2は端末30bから新規に高データ転送レートファイルFHのファイル配信要求があり不足分帯域が発生したとき、T3は帯域を狭くしたとき、T4は端末30aへのビットレートファイル(高データ転送レートファイルFH)の配信が終了したことで空き配信帯域が発生したとき、T5は帯域を元に戻したとき、それぞれの時点における配信中総帯域を示している。
図11において、配信中総帯域を実線で、最大配信帯域を一点鎖線で、T2の時点で新規のファイル配信要求に応じて帯域を制御せずに高データ転送レートファイルFHを配信した場合の配信中総帯域を破線で示している。
(T1の時点)
図12(a)は、図11のT1の時点における端末30a、30b、30c、30dそれぞれに対して、TSファイルを配信するために割り当てられた帯域の広さを示しており、端末30a及び端末30dには広い帯域が割り当てられ、端末30b及び端末30cには狭い帯域が割り当てられている状態である。これは、端末30a及び端末30dには高データ転送レートファイルFHが配信され、端末30b及び端末30cには低データ転送レートファイルFLが配信されているためである。
(T2の時点)
図12(b)は、図11のT2の時点における状態であり、端末30bへのファイル配信が終了し、新たなファイル配信要求が来た状態である。端末30bからの新たなファイル配信要求で要求されたTSファイルのビットレート値が大きいため(高データ転送レートファイルFH)、ステップS205Aの処理(ビットレート値≦空き配信帯域?)で、ビットレート値の方が大きい場合(ビットレート値>空き配信帯域の場合)(ステップS205A,No)に判定される状態である。このビットレート値に応じて帯域を確保すると、配信中総帯域が最大配信帯域を超えることを×印と破線で示している。このときの端末30a、30dに対して割り当てられている帯域及び端末30bに対して割り当てられるはずだった帯域がオーバーフロー帯域として、バッファ114に記憶される。
(T3の時点)
図12(c)は、図11のT3の時点における状態であり、T2の後のステップS208(図9)の処理で、端末30a、30b、30dへ高データ転送レートファイルFHを配信するために割り当てられた帯域に対して、不足分帯域を高データ転送レートファイルFHの数(ここでは3)で除算した値の分だけ狭くさせるように帯域更新の設定がされ、その後のステップS210A(図9)の処理で帯域が割り当てられた状態である。
これにより、図12(c)に示すように、高データ転送レートファイルFHが配信される端末30a、30b、30dに対して、ファイル配信に割り当てられた帯域は、図12(b)で示す帯域よりも狭くなる。
(T4の時点)
図12(d)は、図11のT4の時点における状態であり、端末30aへのビットレートファイル(高データ転送レートファイルFH)の配信が終了した状態である。このとき、配信中総帯域が最大配信帯域を大きく下回る。
(T5の時点)
図12(e)は、図11のT5の時点における状態であり、端末30aへのビットレートファイルの配信が終了したことにより、帯域回復処理が行われた状態である。T4の後のステップS305(図10)の処理にて、ステップS208及びステップS210Aの処理で、帯域を狭くさせられた端末30b、30dへ配信中のTSファイルに対して、オーバーフロー帯域を割り当てるように帯域更新の設定がされ、その後のステップS306A(図10)の処理で帯域が割り当てられた状態である。
これにより、図12(e)に示すように、高データ転送レートファイルFHが配信される端末30b、30dに対して、ファイル配信に割り当てられた帯域は、図12(b)で示す帯域(オーバーフロー帯域)まで回復する(帯域が元に戻る)。
≪第3実施形態≫
第3実施形態に係るコンテンツ配信装置10Bについて説明する。
この第3実施形態では、CPU使用率の値を監視して、帯域の割り当てを行う。
ここで、第3実施形態に係るコンテンツ配信システム1を構成する各構成部は、第1実施形態における同名称かつ同符号の構成部と同様の処理を行うため、説明を便宜的に省略する。
≪コンテンツ配信装置10B≫
図13にコンテンツ配信装置10Bの構成を示す。
コンテンツ配信装置10Bは、制御部である配信制御部110B及びコンテンツ管理部120と、記憶部130と、送受信部140と、エンコーダ150とを備える。
(配信制御部110B)
第3実施形態において、配信制御部110Bは、通信制御部111と、通信状態監視部112と、帯域制御部113B(バッファ114を内蔵)と、さらにCPU状態監視部160を備える。
ここで、配信制御部110Bが備える、通信制御部111と、通信状態監視部112とは、第1実施形態における同名称の構成部と同様の処理を行うため、説明を便宜的に省略する。
(CPU状態監視部160)
CPU状態監視部160は、コンテンツ配信装置10Bを制御する制御部100(CPU)を監視して、CPU使用率を取得する。
ファイルの送受信はCPUにより制御されるため、CPUの現在の処理量を示すCPU使用率と、ファイル送信負荷とは関係する。例えば、配信帯域の幅が狭いときに、配信対象のファイル量が多くなると、処理量を上げようとCPUの負担が大きくなりCPU使用率が高くなる。そして、配信対象のファイル量を減らすことで、処理量が減ってCPUの負担が小さくなりCPU使用率が低くなる。
第3実施形態では、このCPU使用率の値に基づき、帯域の割り当てを行う。
(帯域制御部113B)
帯域制御部113Bは、CPU状態監視部160による監視結果(CPU使用率)と、外部装置(図1において、外部装置は端末30に対応)からの配信要求を受けてTSファイルを配信した場合に予想される未来のCPU使用率(予測CPU使用率)とに応じて、帯域更新の設定を行い、通信制御部111が割り当てた帯域の広さを通信制御部111に変更させたり、プレイリストPLの送信許可判定をしたりする制御手段である。
また、帯域制御部113Bは、一時的にデータを保存するバッファ114を内蔵する。バッファ114は揮発性の記憶手段であってもよいし、不揮発性の記憶手段であってもよい。
コンテンツ配信装置10Bによる、プレイリスト送信処理と、ファイル配信処理とについて図14〜図16に示すフローチャートを用いて説明する。
[プレイリスト送信処理]
図14は、コンテンツ配信装置のプレイリスト要求を受けた場合の動作のフローチャートである。
まず、端末30から送受信部140がプレイリスト要求を受信したことを通信制御部111が検知することで、配信制御部110Bはプレイリスト送信処理を実行する。
この、端末30から送受信部140が受信したプレイリスト要求を、通信制御部111が取得する(ステップS101)。
帯域制御部113Bは、コンテンツ管理部120に問い合わせて、プレイリスト要求に基づき、最初に配信されるTSファイルのバリエーションのうち、高データ転送レートファイルFHのビットレート値をコンテンツ管理部120から取得する(ステップS102)。
帯域制御部113Bは、その高データ転送レートファイルFH(TSファイル)のビットレート値に応じて、そのTSファイルを配信した場合に予想される未来のCPU使用率(予測CPU使用率)を算出する(ステップS401)。
そして、帯域制御部113Bは、CPU状態監視部160から現在のCPU使用率を取得する(ステップS402)。
そして、帯域制御部113Bは、コンテンツ配信装置10Bの制御部100が使用可能なCPU使用率上限値(上限リソース使用情報値)(≒最大配信帯域)から現在のCPU使用率を減算して、空きCPU使用率を算出する(ステップS403)。このCPU使用率上限値は、コンテンツ配信装置10Bのスペックに基づくものである。
帯域制御部113Bは、ステップS401で取得した予測CPU使用率と、ステップS403で算出した空きCPU使用率とを比較する(ステップS404:予測CPU使用率<空きCPU使用率?)。
予測CPU使用率の方が大きい場合(ステップS404,No)、帯域制御部113Bは、プレイリスト要求を拒否して(ステップS106)、配信不可のメッセージを作成する。そして、通信制御部111は、プレイリスト要求の送信元(端末30)を宛先にして、配信不可のメッセージを送受信部140に送信させる(ステップS107)。
これにより、アダプティブストリーミングが中断され、配信制御部110Bはプレイリスト送信処理を終了する。
一方、空きCPU使用率の方が大きい場合(ステップS404,Yes)、帯域制御部113Bは、プレイリスト要求を許可して(ステップS108)、プレイリストの送信指示を出力する。
これにより、通信制御部111は、コンテンツ管理部120に問い合わせて、ステップS101で取得したプレイリスト要求に基づき、プレイリストPLをコンテンツ管理部120から取得する(ステップS109)。そして、通信制御部111は、プレイリスト要求の送信元(端末30)を宛先にして、プレイリストPLを送受信部140に送信させる(ステップS110)。そして、配信制御部110Bはプレイリスト送信処理を終了する。
これにより、端末30はプレイリストPLを取得することができる。
[ファイル配信処理]
図15(図15A及び図15B)はコンテンツ配信装置の配信要求を受けた場合のファイル配信処理のフローチャートである。そして、図16は図15のステップS208及びステップS516で狭くした帯域を元に戻す帯域回復処理のフローチャートである。
まず、端末30から送受信部140がファイル配信要求を受信したことを通信制御部111が検知することで、配信制御部110Bはファイル配信処理を実行する。
この、端末30から送受信部140が受信したファイル配信要求を、配信制御部110B(通信制御部111)が取得する(ステップS201)。
帯域制御部113Bは、コンテンツ管理部120に問い合わせて、ファイル配信要求に基づき、要求されたTSファイルのビットレート値をコンテンツ管理部120から取得する(ステップS202)。
このとき、コンテンツ管理部120は、通信制御部111からURIを受け取り、そのURIで示される記憶部130の場所にあるTSファイルのビットレート値を取得し、通信制御部111に渡す。
帯域制御部113Bは、そのTSファイルのビットレート値に応じて、そのTSファイルを配信した場合に予想される未来のCPU使用率(予測CPU使用率)を算出する(ステップS501)。
そして、帯域制御部113Bは、CPU状態監視部160から現在のCPU使用率を取得する(ステップS502)。
そして、帯域制御部113Bは、使用可能なCPU使用率上限値(≒最大配信帯域)から現在のCPU使用率を減算して、空きCPU使用率を算出する(ステップS503)。
帯域制御部113Bは、ステップS502で取得した予測CPU使用率と、ステップS503で算出した空きCPU使用率とを比較する(ステップS504:予測CPU使用率<空きCPU使用率?)。
予測CPU使用率≦空きCPU使用率の場合(ステップS504,Yes)、後記するステップS209の処理を実行する。
一方、予測CPU使用率>空きCPU使用率の場合(ステップS504,No)、帯域制御部113Bは、所定の下げる総帯域量を決める(ステップS505)。
帯域制御部113Bは、通信状態監視部112から、高ビットレート値で配信中のTSファイル(高データ転送レートファイルFH)の情報を取得する。このとき、配信要求されたTSファイルの(ステップS202で取得した)ビットレート値が高ビットレート値であれば、当該配信要求されたTSファイルも高データ転送レートファイルFHとして扱い、高データ転送レートファイルFHと同じ広さの帯域が割り当てられるものとして扱う。
そして、帯域制御部113Bは、所定の下げる総帯域量だけ下がるように、高データ転送レートファイルFHそれぞれに割り当てられた帯域を一様に狭くさせる帯域更新の設定をする(ステップS208)。例えば、帯域制御部113Bは、所定の下げる総帯域量を高データ転送レートファイルFHの数で除算した値の分だけ、高データ転送レートファイルFHそれぞれに割り当てられた帯域を狭くさせる。
その後、帯域制御部113Bは、下げた総帯域量(m)をバッファ114に記憶させる(ステップS506)。ここで、以前の処理で下げた総帯域量(m)がバッファ114に記憶されていれば(クリアされずにまだ残っていれば)加算する(M=M+m)。
通信制御部111は、コンテンツ管理部120に問い合わせて、要求されたTSファイルをコンテンツ管理部120から取得する(ステップS209)。
このとき、コンテンツ管理部120は、通信制御部111からURIを受け取り、そのURIで示される記憶部130の場所にあるTSファイルを取得し、通信制御部111に渡す。
そして、通信制御部111は帯域の割り当てを行う。このとき、帯域制御部113Bが帯域更新の設定をしていれば(ステップS208参照)、通信制御部111はその帯域更新の設定に応じて、帯域の割り当てを行う(ステップS210A)。
そして、通信制御部111は、ファイル配信要求の送信元(端末30)を宛先にして、取得したTSファイルを送受信部140に送信(配信)させる(ステップS211)。
帯域制御部113Bは、再びCPU状態監視部160から現在のCPU使用率(ステップS211でTSファイルを送信中のCPU使用率)を取得する(ステップS512)。
そして、帯域制御部113Bは、使用可能なCPU使用率上限値(≒最大配信帯域)から現在のCPU使用率を減算して、空きCPU使用率を算出する(ステップS513)。
帯域制御部113Bは、ステップS513で算出した空きCPU使用率の値が0より大きいか否かを判定する(ステップS514:空きCPU使用率>0?)。
CPU使用率に空きがあれば(空きCPU使用率>0)(ステップS514,Yes)、そのままの帯域で送受信部140に次からのTSファイルの送信(配信)を続けさせて、配信制御部110Bはファイル配信処理を終了する。これにより、端末30は要求したバリエーションのTSファイルを取得することができる。
一方、CPU使用率に空きがなく、不足していれば(空きCPU使用率≦0)(ステップS514,No)、帯域制御部113Bは、再び所定の下げる総帯域量(m)を決める(ステップS515)。
帯域制御部113Bは、通信状態監視部112から、高ビットレート値で配信中のTSファイル(高データ転送レートファイルFH)の情報を取得する。
そして、帯域制御部113Bは、所定の下げる総帯域量だけ下がるように、高データ転送レートファイルFHそれぞれに割り当てられた帯域を一様に狭くさせる帯域更新の設定をする(ステップS516)。
帯域制御部113Bは、下げた総帯域量(m)をバッファ114に記憶された下げた総帯域量(M)に加算して記憶させる(M=M+m)(ステップS517)。そして、通信制御部111はコンテンツ管理部120から次のTSファイルを取得したタイミングで再度帯域の割り当てを行う。通信制御部111はステップS516の帯域更新の設定に応じて、帯域の割り当てを行う(ステップS518)。
そして、通信制御部111は、ファイル配信要求の送信元(端末30)を宛先にして、取得したTSファイルを送受信部140に送信(配信)させる(ステップS519)。そして、ステップS514の処理に戻る。
ステップS514〜ステップS519の処理を繰り返すことで、所定の下げる総帯域量の分、徐々に使用総帯域が狭くなる。つまり、端末30に配信するデータ量が減る。これにより、配信処理をするCPUの負担が減るため、CPU使用率が下がり、CPU使用率に空きができる。
以上のように、ステップS208及びステップS516の処理により、ステップS210Aの処理にて、帯域更新の設定に応じて、TSファイルそれぞれに割り当てられる帯域が変更される。
ここで、帯域が不足せずに、余裕を持って帯域が割り当てられて配信されている場合、ステップS209で取得した要求されたTSファイルは、ステップS504でYesと判定された後、ステップS210Aの処理にて、ステップS202で取得したビットレート値に応じた帯域が割り当てられることになる。
[帯域回復処理]
図16は、ステップS208及びステップS516で狭くした帯域を元に戻す帯域回復処理のフローチャートである。この帯域回復処理は、ファイル配信処理(図15)のステップS211の処理により、送受信部140が複数のTSファイルで構成される1つのビットレートファイルを送信(配信)した後で行われる。すなわち、このビットレートファイルを送信(配信)し終えたことで、帯域にその分の余裕(空き)ができた状態である。
まず、帯域制御部113Bは、下げた総帯域量(M)がバッファ114に記憶されているか否かを判定する(ステップS601)。この下げた総帯域量(M)は、ステップS207やステップS207(図15)の処理でバッファ114に記憶されるものである。
記憶されていない場合(ステップS601,No)は、帯域回復処理を終了する。
一方、記憶されている場合(ステップS601,Yes)、帯域制御部113Bは、バッファ114から下げた総帯域量(M)を取得する(ステップS602)。
帯域制御部113Bは、CPU状態監視部160から現在のCPU使用率を取得する(ステップS603)。
そして、帯域制御部113Bは、使用可能なCPU使用率上限値(≒最大配信帯域)から現在のCPU使用率を減算して、空きCPU使用率を算出する(ステップS604)。
帯域制御部113Bは、ステップS604で算出した空きCPU使用率の値が0より大きいか否かを判定する(ステップS605:空きCPU使用率>0?)。
CPU使用率に空きがなく、不足していれば(空きCPU使用率≦0)(ステップS605,No)、帯域回復処理を終了する。
一方、CPU使用率に空きがあれば(空きCPU使用率>0)(ステップS605,Yes)、帯域制御部113Bは、ステップS208及びステップS516の処理で、高データ転送レートファイルFHそれぞれに対して一様に狭くさせた帯域について、下げた総帯域量(M)を戻すように帯域を割り当て直し、帯域更新の設定をする(ステップS606)。そして、バッファ114に記憶された下げた総帯域量(M)をクリア(M=0)する。その後、通信制御部111は、帯域制御部113Bがした帯域更新の設定に応じて、帯域の割り当てを行う(ステップS607)。これにより、ステップS208及びステップS516の処理で、高データ転送レートファイルFHそれぞれに対して一様に狭くさせた帯域を元に戻す(回復する)ことができる。
そして、帯域回復処理を終了する。
以上のように、ステップS606の処理により、ステップS210Aの処理にて、帯域更新の設定に応じて、TSファイルそれぞれに割り当てられる帯域が変更される。
≪タイムチャート≫
図17及び図18を用いて、図15のファイル配信処理及び図16の帯域回復処理による帯域の割り当て、帯域の回復が行われることによるCPU使用率の変化について説明する。
図17は、コンテンツ配信装置10Bが備えるCPU(制御部100)のCPU使用率の変化を示すタイムチャートである。図18は、図17におけるT1〜T5の時点における端末30a、30b、30c、30dそれぞれに割り当てられた帯域の広さを示している。
T1は初期状態、T2は端末30bから新規に高データ転送レートファイルFHのファイル配信要求があり、このままではCPU使用率がCPU使用率上限値を超えると判定したとき、T3は所定の下げる総帯域量だけ帯域を狭くしたとき、T4はさらに所定の下げる総帯域量だけ帯域を狭くしたとき、T5は端末30aに配信していた高データ転送レートファイルFHのファイルの配信が終了したため、下げていた総帯域量を戻して、各高データ転送レートファイルFHの送信に割り当てられていた帯域を元に戻したときを示している。
図17において、CPU使用率を実線で、CPU使用率上限値を一点鎖線で、T2の時点で新規のファイル配信要求に応じて高データ転送レートファイルFHを配信した場合のCPU使用率を破線で示している。また、T5の時点で高データ転送レートファイルFHの配信が終了し、帯域を回復しなかった場合のCPU使用率を破線で示している。
(T1の時点)
図18(a)は、図17のT1の時点における端末30a、30b、30c、30dそれぞれに対して、TSファイルを配信するために割り当てられた帯域の広さを示しており、端末30a及び端末30dには広い帯域が割り当てられ、端末30b及び端末30cには狭い帯域が割り当てられている状態である。これは、端末30a及び端末30dには高データ転送レートファイルFHが配信され、端末30b及び端末30cには低データ転送レートファイルFLが配信されているためである。
(T2の時点)
図18(b)は、図17のT2の時点における状態であり、端末30bへのファイル配信が終了し、新たなファイル配信要求が来た状態である。端末30bからの新たなファイル配信要求で要求されたTSファイルのビットレート値が大きいため(高データ転送レートファイルFH)、ステップS504の処理で、予測CPU使用率>空きCPU使用率(ステップS504,No)に判定される状態である。このビットレート値に応じて帯域を確保すると、CPUの処理量が増えすぎて、CPU使用率がCPU使用率上限値を超えることを×印と破線で示している。すなわち、このビットレート値に応じて帯域を確保すると、配信中総帯域が最大配信帯域を超えてしまう可能性が高い。
(T3の時点)
図18(c)は、図17のT3の時点における状態であり、T2の後のステップS208(及びステップS516)の処理で、端末30a、30b、30dへ高データ転送レートファイルFHを配信するために割り当てられた帯域に対して、所定の下げる総帯域量(m)だけ下がるように、高データ転送レートファイルFHそれぞれに割り当てられた帯域を一様に狭くさせる帯域更新の設定がされ、その後のステップS210Aの処理で帯域が割り当てられた状態である。
これにより、図18(c)に示すように、高データ転送レートファイルFHが配信される端末30a、30b、30dに対して、ファイル配信に割り当てられた帯域は、図18(b)で示す帯域よりも狭くなる。
(T4の時点)
図18(d)は、図17のT4の時点における状態であり、未だにCPU使用率がCPU使用率上限値を超える状態(ステップS514,No:空きCPU使用率≦0)であったため、再び所定の下げる総帯域量(m)だけ下がるように、高データ転送レートファイルFHそれぞれに割り当てられた帯域を一様に狭くさせる帯域更新の設定がされ、その後のステップS210Aの処理で帯域が割り当てられた状態である。これにより、CPU使用率がCPU使用率上限値を下回った状態である。
これにより、図18(d)に示すように、高データ転送レートファイルFHが配信される端末30a、30b、30dに対して、ファイル配信に割り当てられた帯域は、図18(c)で示す帯域よりもさらに狭くなる。
(T5の時点)
図18(e)は、図17のT5の時点における状態であり、端末30aへのファイル配信が終了したことにより、帯域回復処理が行われた状態である。CPU使用率がCPU使用率上限値を下回っており(空きCPU使用率>0)、T4の後のステップS606の処理にて、ステップS208(及びステップS516)の処理で、帯域を狭くさせられた端末30b、30dへ配信中のTSファイルに対して、下げた総帯域量を割り当てるように帯域更新の設定がされ、その後のステップS607の処理で帯域が割り当てられた状態である。
これにより、図18(e)に示すように、高データ転送レートファイルFHが配信される端末30b、30dに対して、ファイル配信に割り当てられた帯域は、図18(b)で示す帯域(下げた総帯域量(M))まで回復する(帯域が元に戻る)。
以上のように、本発明によれば、予め、コンテンツ配信装置10Bのスペック等から、ファイルの配信量とCPU使用率との関係を取得し、(第1実施形態に係る)配信可能な総帯域(最大配信帯域)に基づきCPU使用率上限値を設定しておく。これにより、新たにファイル配信を要求通りに行うことでCPU使用率がCPU使用率上限値を上回ってしまう場合が、第1実施形態における、新たにファイル配信を要求通りに行うことで配信中の各コンテンツの高ビットレート値の総和(配信中総帯域)が配信可能な総帯域(最大配信帯域)を上回ってしまう場合となる。
一方、CPU使用率がCPU使用率上限値を下回っている場合に、新たなファイル配信要求を受け入れたことにより、CPUがそのファイルを処理するために必要な空きCPU使用率があるならば、その新たなファイル配信要求を受け入れることができる。そのため、本発明のコンテンツ配信装置10Bは、最大配信帯域を無駄なく使用することができるという効果が得られる。
また、配信制御部110Bは、空きCPU使用率に基づき、すなわち、現在配信可能な空き配信帯域に基づき、新たなコンテンツのプレイリスト要求を受け付けるため、本発明のコンテンツ配信装置10Bは、最大配信帯域を無駄なく使用することができるという効果が得られる。
≪第4実施形態≫
第4実施形態に係るコンテンツ配信装置10Cについて説明する。
この第4実施形態では、記憶部130とデータの送受信可能にバス175(図19)を介して接続されたインタフェースを監視して、帯域の割り当てを行う。
ここで、第4実施形態に係るコンテンツ配信システム1を構成する各構成部は、第1実施形態における同名称かつ同符号の構成部と同様の処理を行うため、説明を便宜的に省略する。
≪コンテンツ配信装置10C≫
図19にコンテンツ配信装置10Cの構成を示す。
コンテンツ配信装置10Cは、制御部である配信制御部110C及びコンテンツ管理部120と、記憶部130と、送受信部140と、エンコーダ150とを備える。
制御部である配信制御部110C及びコンテンツ管理部120は、例えば、CPU(Central Processing Unit)で構成される。各構成部の制御部としての機能は、CPUが記憶部130に格納されるプログラムを展開し、実行することによって実現される。
(コンテンツ管理部120)
コンテンツ管理部120は、端末30から要求されたTSファイルやプレイリストPLを記憶部130から取得し、配信制御部110C(通信制御部111)に渡す。このコンテンツ管理部120は、バス175(ディスクI/O)を介して記憶部130からデータを取得する。
(配信制御部110C)
第4実施形態において、配信制御部110Cが備える、通信制御部111と、通信状態監視部112と、帯域制御部113C(バッファ114を内蔵)と、さらにディスクI/O状態監視部170を備える。
ここで、配信制御部110Cが備える、通信制御部111と、通信状態監視部112とは、第1実施形態における同名称の構成部と同様の処理を行うため、説明を便宜的に省略する。
(ディスクI/O状態監視部170)
ディスクI/O状態監視部170は、記憶部130とデータの送受信可能にバス175を介して接続されたインタフェースを監視して、ディスクI/Oの状態を取得する。
ファイルの送受信において、後記するように記憶部130からデータを読み出したり、記憶部130にデータを書き込んだりするときの“データ転送速度”と、ファイル送信負荷とは関係する。例えば、配信帯域の幅が狭いときに、配信対象のファイル量が多くなると、制御部100(CPU)と記憶部130(HDD)とを接続するバスにおける“1秒間のデータ転送量”が高くなり、すなわち、記憶部130からデータを読み出す速度が高くなる。そして、配信対象のファイル量を減らすことで、記憶部130からデータを読み出す速度が低くなる。
第4実施形態では、このディスクI/Oの状態に基づき、帯域の割り当てを行う。
(ディスクI/Oの状態について)
この「ディスクI/Oの状態」は、ディスクI/Oの状態に関係する監視対象から得られるディスクI/Oの状態を数値化可能な情報(ディスクI/O状態値;リソース使用情報値)である。
第4実施形態において、「ディスクI/Oの状態」は、記憶部130からデータを読み出したり、記憶部130にデータを書き込んだりするときの“データ転送速度”とする。つまり、制御部100(CPU)と記憶部130(HDD)とを接続するバスにおける“1秒間のデータ転送量”である。
また、「ディスクI/Oの状態」は、データの読み書きに費やす“データ転送時間”であってもよい。また、「ディスクI/Oの状態」は、シーク時間やサーチ時間を含んだ“アクセス時間”であってもよい。この場合、シーク時間やサーチ時間は、予め実験で得られた平均時間を用いる。
また、「ディスクI/Oの状態」は、制御部100(CPU)と記憶部130(HDD)とを接続するバスのバンド帯使用率(%)であってもよい。
(帯域制御部113C)
帯域制御部113Cは、ディスクI/O状態監視部170による監視結果(ディスクI/O状態値、ここではデータ転送速度)と、外部装置(図1において、外部装置は端末30に対応)からの配信要求を受けてTSファイルを配信した場合に予想される未来のディスクI/Oの状態(予測ディスクI/O状態値)とに応じて、帯域更新の設定を行い、通信制御部111が割り当てた帯域の広さを通信制御部111に変更させたり、プレイリストPLの送信許可判定をしたりする制御手段である。
また、帯域制御部113Cは、一時的にデータを保存するバッファ114を内蔵する。バッファ114は揮発性の記憶手段であってもよいし、不揮発性の記憶手段であってもよい。
コンテンツ配信装置10Cによる、プレイリスト送信処理と、ファイル配信処理とについて図20〜図22に示すフローチャートを用いて説明する。
[プレイリスト送信処理]
図20は、コンテンツ配信装置のプレイリスト要求を受けた場合の動作のフローチャートである。
まず、端末30から送受信部140がプレイリスト要求を受信したことを通信制御部111が検知することで、配信制御部110Cはプレイリスト送信処理を実行する。
この、端末30から送受信部140が受信したプレイリスト要求を、通信制御部111が取得する(ステップS101)。
帯域制御部113Cは、コンテンツ管理部120に問い合わせて、プレイリスト要求に基づき、最初に配信されるTSファイルのバリエーションのうち、高データ転送レートファイルFHのビットレート値をコンテンツ管理部120から取得する(ステップS102)。
帯域制御部113Cは、その高データ転送レートファイルFH(TSファイル)のビットレート値に応じて、そのTSファイルを配信した場合に予想される未来のディスクI/Oの状態(予測ディスクI/O)を算出する(ステップS701)。
そして、帯域制御部113Cは、ディスクI/O状態監視部170から現在のディスクI/O状態値を取得する(ステップS702)。
そして、帯域制御部113Cは、コンテンツ配信装置10Cの制御部100が使用可能なディスクI/O使用上限値(上限リソース使用情報値)(≒最大配信帯域)から現在のディスクI/O状態値を減算して、空きディスクI/O状態値を算出する(ステップS703)。このディスクI/O使用上限値は、コンテンツ配信装置10Cのスペックに基づくものである。
帯域制御部113Cは、ステップS701で取得した予測ディスクI/O状態値と、ステップS703で算出した空きディスクI/O状態値とを比較する(ステップS704:予測ディスクI/O状態値<空きディスクI/O状態値?)。
予測ディスクI/O状態値の方が大きい場合(ステップS704,No)、帯域制御部113Cは、配信不可のメッセージを作成する(ステップS106)。そして、通信制御部111は、プレイリスト要求の送信元(端末30)を宛先にして、配信不可のメッセージを送受信部140に送信させる(ステップS107)。
これにより、アダプティブストリーミングが中断され、配信制御部110Cはプレイリスト送信処理を終了する。
一方、空きディスクI/O状態値の方が大きい場合(ステップS704,Yes)、帯域制御部113Cは、プレイリストの送信指示を出力する(ステップS108)。
これにより、通信制御部111は、コンテンツ管理部120に問い合わせて、ステップS101で取得したプレイリスト要求に基づき、プレイリストPLをコンテンツ管理部120から取得する(ステップS109)。そして、通信制御部111は、プレイリスト要求の送信元(端末30)を宛先にして、プレイリストPLを送受信部140に送信させる(ステップS110)。そして、配信制御部110Cはプレイリスト送信処理を終了する。
これにより、端末30はプレイリストPLを取得することができる。
[ファイル配信処理]
図21(図21A及び図21B)はコンテンツ配信装置の配信要求を受けた場合のファイル配信処理のフローチャートである。そして、図22は図21のステップS208及びステップS816で狭くした帯域を元に戻す帯域回復処理のフローチャートである。
まず、端末30から送受信部140がファイル配信要求を受信したことを通信制御部111が検知することで、配信制御部110Cはファイル配信処理を実行する。
この、端末30から送受信部140が受信したファイル配信要求を、配信制御部110C(通信制御部111)が取得する(ステップS201)。
帯域制御部113Cは、コンテンツ管理部120に問い合わせて、ファイル配信要求に基づき、要求されたTSファイルのビットレート値をコンテンツ管理部120から取得する(ステップS202)。
このとき、コンテンツ管理部120は、通信制御部111からURIを受け取り、そのURIで示される記憶部130の場所にあるTSファイルのビットレート値を取得し、通信制御部111に渡す。
帯域制御部113Cは、そのTSファイルのビットレート値に応じて、そのTSファイルを配信した場合に予想される未来のディスクI/O状態値(予測ディスクI/O状態値)を算出する(ステップS801)。
そして、帯域制御部113Cは、ディスクI/O状態監視部170から現在のディスクI/O状態値を取得する(ステップS802)。
そして、帯域制御部113Cは、使用可能なディスクI/O使用上限値(≒最大配信帯域)から現在のディスクI/O状態値を減算して、空きディスクI/O状態値を算出する(ステップS803)。
帯域制御部113Cは、ステップS802で取得した予測ディスクI/O状態値と、ステップS803で算出した空きディスクI/O状態値とを比較する(ステップS804:予測ディスクI/O状態値≦空きディスクI/O状態値?)。
予測ディスクI/O状態値<空きディスクI/O状態値の場合(ステップS804,Yes)、後記するステップS209の処理を実行する。
一方、予測ディスクI/O状態値>空きディスクI/O状態値の場合(ステップS804,No)、帯域制御部113Cは、所定の下げる総帯域量を決める(ステップS805)。
帯域制御部113Cは、通信状態監視部112から、高ビットレート値で配信中のTSファイル(高データ転送レートファイルFH)の情報を取得する。このとき、配信要求されたTSファイルの(ステップS202で取得した)ビットレート値が高ビットレート値であれば、当該配信要求されたTSファイルも高データ転送レートファイルFHとして扱い、高データ転送レートファイルFHと同じ広さの帯域が割り当てられるものとして扱う。
そして、帯域制御部113Cは、所定の下げる総帯域量だけ下がるように、高データ転送レートファイルFHそれぞれに割り当てられた帯域を一様に狭くさせる帯域更新の設定をする(ステップS208)。例えば、帯域制御部113Cは、所定の下げる総帯域量を高データ転送レートファイルFHの数で除算した値の分だけ、高データ転送レートファイルFHそれぞれに割り当てられた帯域を狭くさせる。
その後、帯域制御部113Cは、下げた総帯域量(m)をバッファ114に記憶させる(ステップS806)。ここで、以前の処理で下げた総帯域量(m)がバッファ114に記憶されていれば(クリアされずにまだ残っていれば)加算する(M=M+m)。
通信制御部111は、コンテンツ管理部120に問い合わせて、要求されたTSファイルをコンテンツ管理部120から取得する(ステップS209)。
このとき、コンテンツ管理部120は、通信制御部111からURIを受け取り、そのURIで示される記憶部130の場所にあるTSファイルを取得し、通信制御部111に渡す。
そして、通信制御部111は帯域の割り当てを行う。このとき、帯域制御部113Cが帯域更新の設定をしていれば(ステップS208参照)、通信制御部111はその帯域更新の設定に応じて、帯域の割り当てを行う(ステップS210A)。
そして、通信制御部111は、ファイル配信要求の送信元(端末30)を宛先にして、取得したTSファイルを送受信部140に送信(配信)させる(ステップS211)。
帯域制御部113Cは、再びディスクI/O状態監視部170から現在のディスクI/O状態値を取得する(ステップS812)。
そして、帯域制御部113Cは、使用可能なディスクI/O使用上限値(≒最大配信帯域)から現在のディスクI/O状態値を減算して、空きディスクI/O状態値を算出する(ステップS813)。
帯域制御部113Cは、ステップS813で算出した空きディスクI/O状態値の値が0より大きいか否かを判定する(ステップS814:空きディスクI/O状態値>0?)。
ディスクI/Oの状態に余裕があれば(空きディスクI/O状態値>0)(ステップS814,Yes)、そのままの帯域で送受信部140に次からのTSファイルの送信(配信)を続けさせて、配信制御部110Cはファイル配信処理を終了する。これにより、端末30は要求したバリエーションのTSファイルを取得することができる。
一方、ディスクI/Oの状態に余裕がなく、不足していれば(空きディスクI/O状態値≦0)(ステップS814,No)、帯域制御部113Cは、再び所定の下げる総帯域量(m)を決める(ステップS815)。
帯域制御部113Cは、通信状態監視部112から、高ビットレート値で配信中のTSファイル(高データ転送レートファイルFH)の情報を取得する。
そして、帯域制御部113Cは、所定の下げる総帯域量だけ下がるように、高データ転送レートファイルFHそれぞれに割り当てられた帯域を一様に狭くさせる帯域更新の設定をする(ステップS816)。
帯域制御部113Cは、下げた総帯域量(m)をバッファ114に記憶された下げた総帯域量(M)に加算して記憶させる(M=M+m)(ステップS817)。
そして、通信制御部111はコンテンツ管理部120から次のTSファイルを取得したタイミングで再度帯域の割り当てを行う。通信制御部111はステップS816の帯域更新の設定に応じて、帯域の割り当てを行う(ステップS818)。
そして、通信制御部111は、ファイル配信要求の送信元(端末30)を宛先にして、取得したTSファイルを送受信部140に送信(配信)させる(ステップS819)。そして、ステップS814に戻る。
ステップS814〜ステップS819の処理を繰り返すことで、所定の下げる総帯域量の分、徐々に使用総帯域が狭くなる。つまり、端末30に配信するデータ量が減る。これにより、記憶部130からデータを取得する量が減り、制御部100(CPU)と記憶部130(HDD)とを接続するバスにおけるデータ送受信量が減るため、ディスクI/O状態値が下がり、ディスクI/O状態値に空きができる。
以上のように、ステップS208及びステップS816の処理により、ステップS210Aの処理にて、帯域更新の設定に応じて、TSファイルそれぞれに割り当てられる帯域が変更される。
ここで、帯域が不足せずに、余裕を持って帯域が割り当てられて配信されている場合、ステップS209で取得した要求されたTSファイルは、ステップS804でYesと判定された後、ステップS210Aの処理にて、ステップS202で取得したビットレート値に応じた帯域が割り当てられることになる。
[帯域回復処理]
図22は、ステップS208及びステップS816で狭くした帯域を元に戻す帯域回復処理のフローチャートである。この帯域回復処理は、ファイル配信処理(図21)のステップS211の処理により、送受信部140が複数のTSファイルで構成される1つのビットレートファイルを送信(配信)した後で行われる。すなわち、このビットレートファイルを送信(配信)し終えたことで、帯域にその分の余裕(空き)ができた状態である。
まず、帯域制御部113Cは、下げた総帯域量(M)がバッファ114に記憶されているか否かを判定する(ステップS901)。この下げた総帯域量(M)は、ステップS207やステップS207(図21)の処理でバッファ114に記憶されるものである。
記憶されていない場合(ステップS901,No)は、帯域回復処理を終了する。
一方、記憶されている場合(ステップS901,Yes)、帯域制御部113Cは、バッファ114から下げた総帯域量(M)を取得する(ステップS902)。
帯域制御部113Cは、ディスクI/O状態監視部170から現在のディスクI/O状態値を取得する(ステップS903)。
そして、帯域制御部113Cは、使用可能なディスクI/O使用上限値(≒最大配信帯域)から現在のディスクI/O状態値を減算して、空きディスクI/O状態値を算出する(ステップS904)。
帯域制御部113Cは、ステップS904で算出した空きディスクI/O状態値の値が0より大きいか否かを判定する(ステップS905:空きディスクI/O状態値>0?)。
ディスクI/Oの状態に余裕がなく、不足していれば(空きディスクI/O状態値≦0)(ステップS905,No)、帯域回復処理を終了する。
一方、ディスクI/Oの状態に余裕があれば(空きディスクI/O状態値>0)(ステップS905,Yes)、帯域制御部113Cは、ステップS208及びステップS816の処理で、高データ転送レートファイルFHそれぞれに対して一様に狭くさせた帯域について、下げた総帯域量(M)を戻すように帯域を割り当て直し、帯域更新の設定をする(ステップS906)。そして、バッファ114に記憶された下げた総帯域量(M)をクリア(M=0)する。その後、通信制御部111は、帯域制御部113Cがした帯域更新の設定に応じて、帯域の割り当てを行う(ステップS907)。これにより、ステップS208及びステップS816の処理で、高データ転送レートファイルFHそれぞれに対して一様に狭くさせた帯域を元に戻す(回復する)ことができる。
そして、帯域回復処理を終了する。
以上のように、ステップS906の処理により、ステップS210Aの処理にて、帯域更新の設定に応じて、TSファイルそれぞれに割り当てられる帯域が変更される。
≪タイムチャート≫
図23及び図24を用いて、図21のファイル配信処理及び図22の帯域回復処理による帯域の割り当て、帯域の回復が行われることによるディスクI/Oの状態の変化について説明する。
図23は、コンテンツ配信装置10Cが備えるバス175(と接続するインタフェース)のディスクI/O状態値の変化を示すタイムチャートである。図24は、図23におけるT1〜T5の時点における端末30a、30b、30c、30dそれぞれに割り当てられた帯域の広さを示している。
T1は初期状態、T2は端末30bから新規に高データ転送レートファイルFHのファイル配信要求があり、このままではCPU使用率がCPU使用率上限値を超えると判定したとき、T3は所定の下げる総帯域量だけ帯域を狭くしたとき、T4はさらに所定の下げる総帯域量だけ帯域を狭くしたとき、T5は端末30aに配信していた高データ転送レートファイルFHのファイルの配信が終了したため、下げていた総帯域量を戻して、各高データ転送レートファイルFHの送信に割り当てられていた帯域を元に戻したときを示している。
図23において、ディスクI/O状態値を実線で、ディスクI/O使用上限値を一点鎖線で、T2の時点で新規のファイル配信要求に応じて高データ転送レートファイルFHを配信した場合のディスクI/O状態値を破線で示している。また、T5の時点で高データ転送レートファイルFHの配信が終了し、帯域を回復しなかった場合のディスクI/O状態値を破線で示している。
(T1の時点)
図24(a)は、図23のT1の時点における端末30a、30b、30c、30dそれぞれに対して、TSファイルを配信するために割り当てられた帯域の広さを示しており、端末30a及び端末30dには広い帯域が割り当てられ、端末30b及び端末30cには狭い帯域が割り当てられている状態である。これは、端末30a及び端末30dには高データ転送レートファイルFHが配信され、端末30b及び端末30cには低データ転送レートファイルFLが配信されているためである。
(T2の時点)
図24(b)は、図23のT2の時点における状態であり、端末30bへのファイル配信が終了し、新たなファイル配信要求が来た状態である。端末30bからの新たなファイル配信要求で要求されたTSファイルのビットレート値が大きいため(高データ転送レートファイルFH)、ステップS804の処理で、予測ディスクI/O状態値>空きディスクI/O状態値(ステップS804,No)に判定される状態である。このビットレート値に応じて帯域を確保すると、ディスクI/Oのデータ送受信量が増えすぎて、ディスクI/O状態値がディスクI/O使用上限値を超えることを×印と破線で示している。すなわち、このビットレート値に応じて帯域を確保すると、配信中総帯域が最大配信帯域を超えてしまう可能性が高い。
(T3の時点)
図24(c)は、図23のT3の時点における状態であり、T2の後のステップS208(及びステップS816)の処理で、端末30a、30b、30dへ高データ転送レートファイルFHを配信するために割り当てられた帯域に対して、所定の下げる総帯域量(m)だけ下がるように、高データ転送レートファイルFHそれぞれに割り当てられた帯域を一様に狭くさせる帯域更新の設定がされ、その後のステップS210Aの処理で帯域が割り当てられた状態である。
これにより、図24(c)に示すように、高データ転送レートファイルFHが配信される端末30a、30b、30dに対して、ファイル配信に割り当てられた帯域は、図24(b)で示す帯域よりも狭くなる。
(T4の時点)
図24(d)は、図23のT4の時点における状態であり、未だにディスクI/O状態値がディスクI/O使用上限値を超える状態(ステップS814,No:空きディスクI/O状態値≦0)であったため、再び所定の下げる総帯域量(m)だけ下がるように、高データ転送レートファイルFHそれぞれに割り当てられた帯域を一様に狭くさせる帯域更新の設定がされ、その後のステップS210Aの処理で帯域が割り当てられた状態である。これにより、ディスクI/O状態値がディスクI/O使用上限値を下回った状態である。
これにより、図24(d)に示すように、高データ転送レートファイルFHが配信される端末30a、30b、30dに対して、ファイル配信に割り当てられた帯域は、図24(c)で示す帯域よりもさらに狭くなる。
(T5の時点)
図24(e)は、図23のT5の時点における状態であり、端末30aへのファイル配信が終了したことにより、帯域回復処理が行われた状態である。ディスクI/O状態値がディスクI/O使用上限値を下回っており(空きディスクI/O状態値>0)、T4の後のステップS906の処理にて、ステップS208(及びステップS816)の処理で、帯域を狭くさせられた端末30b、30dへ配信中のTSファイルに対して、下げた総帯域量を割り当てるように帯域更新の設定がされ、その後のステップS907の処理で帯域が割り当てられた状態である。
これにより、図24(e)に示すように、高データ転送レートファイルFHが配信される端末30b、30dに対して、ファイル配信に割り当てられた帯域は、図24(b)で示す帯域(下げた総帯域量(M))まで回復する(帯域が元に戻る)。
以上のように、本発明によれば、予め、コンテンツ配信装置10Cのスペック等から、ファイルの配信量とディスクI/O状態値との関係を取得し、(第1実施形態に係る)配信可能な総帯域(最大配信帯域)に基づきディスクI/O使用上限値を設定しておく。これにより、新たにファイル配信を要求通りに行うことでディスクI/O状態値がディスクI/O使用上限値を上回ってしまう場合が、第1実施形態における、新たにファイル配信を要求通りに行うことで配信中の各コンテンツの高ビットレート値の総和(配信中総帯域)が配信可能な総帯域(最大配信帯域)を上回ってしまう場合となる。
一方、ディスクI/O状態値がディスクI/O使用上限値を下回っている場合に、新たなファイル配信要求を受け入れたことにより、記憶部130からそのファイルを読み出すために必要な空きディスクI/O状態値があるならば、その新たなファイル配信要求を受け入れることができる。そのため、本発明のコンテンツ配信装置10Cは、最大配信帯域を無駄なく使用することができるという効果が得られる。
また、配信制御部110Cは、空きディスクI/O状態値に基づき、すなわち、現在配信可能な空き配信帯域に基づき、新たなコンテンツのプレイリスト要求を受け付けるため、本発明のコンテンツ配信装置10Cは、最大配信帯域を無駄なく使用することができるという効果が得られる。
≪第5実施形態≫
第5実施形態に係るコンテンツ配信装置10Dについて説明する。
この第5実施形態では、記憶部130とデータの送受信可能にバス175(図26)を介して接続されたインタフェースを監視して、帯域の割り当てを行う。
≪コンテンツ配信システム1≫
図25に示すように、第5実施形態におけるコンテンツ配信システム1は、第4実施形態と同様に、コンテンツ配信装置10Dと、複数の端末30(30a、30b、30c、30d、・・・)と、さらに、コンテンツ変換装置40を備える。そして、コンテンツ配信装置10Dは、ネットワーク20を介してコンテンツ変換装置40とも通信可能に接続される。
ここで、第4実施形態に係るコンテンツ配信システム1を構成する構成部と同名称かつ同符号の構成部は、第4実施形態における処理と同様の処理を行うため、説明を便宜的に省略する。
(コンテンツ変換装置40)
コンテンツ変換装置40は、映像コンテンツであるファイル(映像コンテンツ)をコンテンツ配信装置10Dに供給する装置である。これにより、コンテンツ配信装置10Dは、記憶部130に映像コンテンツを蓄積することができ、このファイルを各端末30にアダプティブストリーミングで配信する。
このコンテンツ変換装置40は、コンテンツ配信装置10Dにファイル(映像コンテンツ)の書き込み要求を送信し、コンテンツ配信装置10Dによりその要求の許可を得てから、ファイルをコンテンツ配信装置10Dに送信する。
≪コンテンツ配信装置10D≫
図26にコンテンツ配信装置10Dの構成を示す。
コンテンツ配信装置10Dは、制御部である配信制御部110D及びコンテンツ管理部120Dと、記憶部130と、送受信部140と、エンコーダ150とを備える。
制御部である配信制御部110D及びコンテンツ管理部120Dは、例えば、CPU(Central Processing Unit)で構成される。各構成部の制御部としての機能は、CPUが記憶部130に格納されるプログラムを展開し、実行することによって実現される。
(コンテンツ管理部120D)
コンテンツ管理部120Dは、端末30から要求されたTSファイルやプレイリストPLを記憶部130から取得し、配信制御部110D(通信制御部111)に渡す。このコンテンツ管理部120Dは、バス175(ディスクI/O)を介して記憶部130からデータを取得する。
また、コンテンツ管理部120Dは、コンテンツ変換装置40(図25)からのファイルの書き込み要求に対して後記する書込要求対応部180が許可した場合に、書込要求対応部180からファイル(映像コンテンツ)を受け取り、ファイル毎にURIを生成する。そして、そのファイルを記憶部130に記憶させる。すなわち、コンテンツ変換装置40からは、高データ転送レートファイルFH、中データ転送レートファイルFM、低データ転送レートファイルFLが映像コンテンツとして送信される。
(配信制御部110D)
第5実施形態において、配信制御部110Dは、通信制御部111と、通信状態監視部112と、帯域制御部113D(バッファ114を内蔵)と、ディスクI/O状態監視部170と、さらに書込要求対応部180を備える。
ここで、配信制御部110Dは、通信制御部111と、通信状態監視部112とは、第4実施形態における同名称の構成部と同様の処理を行うため、説明を便宜的に省略する。
(ディスクI/O状態監視部170)
ディスクI/O状態監視部170は、記憶部130とデータの送受信可能にバス175を介して接続されたインタフェースを監視して、ディスクI/Oの状態を取得する。
第5実施形態では、このディスクI/Oの状態に基づき、帯域の割り当てを行う。第5実施形態において、「ディスクI/Oの状態」は、記憶部130からデータを読み出したり、記憶部130にデータを書き込んだりするときの“データ転送速度”とする。つまり、制御部100(CPU)と記憶部130(HDD)とを接続するバスにおける“1秒間のデータ転送量”である。
(ディスクI/Oの状態について)
この「ディスクI/Oの状態」は、第4実施形態で説明したようにディスクI/Oの状態に関係する監視対象から得られるディスクI/Oの状態を数値化可能な情報(ディスクI/O状態値)である。
(書込要求対応部180)
書込要求対応部180は、ファイルの書き込み要求があった場合に、ディスクI/Oの状態から、そのファイルをHDDに書き込む際に要する分を確保する構成部である。
第5実施形態において、この書込要求対応部180は、ファイルの書き込み要求を解析して、データ量やコンテンツ配信装置10のスペック等に基づき、そのファイルをHDDに書き込む際に要するディスクI/Oの状態(予約ディスクI/O状態値)を予測し、ディスクI/O使用上限値(≒最大配信帯域)を(強制的に)下げる。これにより、必要な分を確保することができる。
また、書込要求対応部180は、ディスクI/Oの状態に基づき、ファイルの書き込み要求を受けるか否か(許可/拒否)を判定する機能を有する。この判定は、コンテンツ変換装置40からファイル(映像コンテンツ)の書き込み要求を受けてから、所定時間内に、現在配信中のビットレートファイルの配信が終了する等して、ファイル(映像コンテンツ)をHDDに書き込む際に要する分(予約ディスクI/O状態値)を確保できたか否かを判定する。確保できた場合に、ファイルの書き込み要求を許可し、コンテンツ変換装置40からファイル(映像コンテンツ)の供給を受ける。
また、書込要求対応部180は、コンテンツ変換装置40から送信されたファイル(映像コンテンツ)をコンテンツ管理部120Dに渡す。これにより、コンテンツ管理部120Dによりファイルが記憶部130に記憶される。
(帯域制御部113D)
帯域制御部113Dは、ディスクI/O状態監視部170による監視結果(ディスクI/O状態値、ここではデータ転送速度)と、外部装置(図25において、外部装置は端末30に対応)からの配信要求を受けてTSファイルを配信した場合に予想される未来のディスクI/Oの状態(予測ディスクI/O状態値)とに応じて、帯域更新の設定を行い、通信制御部111が割り当てた帯域の広さを通信制御部111に変更させたり、プレイリストPLの送信許可判定をしたりする制御手段である。
また、帯域制御部113Dは、一時的にデータを保存するバッファ114を内蔵する。バッファ114は揮発性の記憶手段であってもよいし、不揮発性の記憶手段であってもよい。
コンテンツ配信装置10Dによる、プレイリスト送信処理(図21)と、ファイル配信処理(図22)と、帯域回復処理(図23)とについては、第4実施形態における各構成部と同様の処理を行うため、説明を便宜的に省略する。
[書込要求受信処理]
図27は、コンテンツ変換装置40からファイルの書き込み要求を受信することで実行される書込要求受信処理のフローチャートである。
まず、コンテンツ変換装置40(図25)から送受信部140がファイル(映像コンテンツ)の書き込み要求を受信したことを通信制御部111が検知することで、配信制御部110D(書込要求対応部180)は書込要求受信処理を実行する。
この、コンテンツ変換装置40から送受信部140が受信したファイルの書き込み要求を、通信制御部111が取得する(ステップS1101)。
書込要求対応部180は、ファイルの書き込み要求を解析して、そのファイルをHDDに書き込む際に要する予約ディスクI/O状態値を予測する(ステップS1102)。
そして、書込要求対応部180は、ディスクI/O使用上限値(≒最大配信帯域)から予約ディスクI/O状態値の分を(強制的に)下げる(ステップS1103)。
書込要求対応部180は、ディスクI/O状態監視部170から現在の使用中ディスクI/O状態値を取得する(ステップS1104)。
書込要求対応部180は、予約ディスクI/O状態値の分を下げる前のディスクI/O使用上限値から使用中ディスクI/O状態値を減算して、空きディスクI/O状態値を算出する(ステップS1105)。
書込要求対応部180は、ステップS1102で予測した予約ディスクI/O状態値と、ステップS1105で算出した空きディスクI/O状態値とを比較する(ステップS1106:空きディスクI/O状態値>予約ディスクI/O状態値?)。
空きディスクI/O状態値の方が大きい場合(ステップS1106,Yes)、すなわち、ファイル(映像コンテンツ)を書き込むためのディスクI/O状態値が確保できたこととなるため、書込要求対応部180は、書き込み要求を許可して(ステップS1107)、配信許可のメッセージを作成する。そして、通信制御部111は、ファイルの書き込み要求の送信元(コンテンツ変換装置40)を宛先にして、配信許可のメッセージを送受信部140に送信させる(ステップS1108)。そして、書込要求受信処理を終了する。
その後、コンテンツ変換装置40からファイル(映像コンテンツ)が送信されて、後記するファイル書込処理(図28)が実行される。
一方、予約ディスクI/O状態値の方が大きい場合(ステップS1106,No)、書込要求対応部180は、ファイルの書き込み要求を受信してからの時間が、所定時間内であるか否かを判定する(ステップS1109)。
所定時間内であれば(ステップS1109,Yes)、ステップS1104に戻る。このループ処理は、所定時間内に、配信中のビットレートファイルを構成する最後のTSファイルの配信が終了したことにより、帯域にその分の余裕ができた状態(帯域回復処理(図22)実行前における)となることで、空きディスクI/O状態値が増えることを期待して待機する処理である。
一方、所定時間を超えたのであれば(ステップS1109,No)、書込要求対応部180は、ディスクI/O使用上限値(≒最大配信帯域)を元に戻す(下げた予約ディスクI/O状態値の分を戻す)(ステップS1110)。そして、書込要求対応部180は、書き込み要求を拒否して(ステップS1111)、受信拒否のメッセージを作成する。その後、通信制御部111は、ファイルの書き込み要求の送信元(コンテンツ変換装置40)を宛先にして、受信拒否のメッセージを送受信部140に送信させる(ステップS1112)。そして、書込要求受信処理を終了する。
[ファイル書込処理]
図28は、コンテンツ変換装置40からファイルを受信することで実行されるファイル書込処理のフローチャートである。
まず、コンテンツ変換装置40(図25)から送受信部140がファイル(映像コンテンツ)を受信したことを通信制御部111が検知することで、配信制御部110D(書込要求対応部180)はファイル書込処理を実行する。
書込要求対応部180は、受信したファイルを順番にコンテンツ管理部120Dに渡す(ステップS2101)。
コンテンツ管理部120Dは、書込要求対応部180からファイルを順番に受け取り、ファイル毎にURIを生成する。そして、そのファイルを記憶部130に記憶させる(ステップS2102)。
その後、通信制御部111が、ファイルの送信元(コンテンツ変換装置40)からファイルを最後まで受信したこと(ステップS2103)で、書込要求対応部180は、書込要求受信処理(図27)のステップS1103で下げた予約ディスクI/O状態値の分を戻して、ディスクI/O使用上限値(≒最大配信帯域)を元に戻す(ステップS2104)。そして、ファイル書込処理を終了する。
≪タイムチャート≫
図29及び図30を用いて、図27の書込要求受信処理及び図28のファイル書込処理によるファイル(映像コンテンツ)を書き込むためのディスクI/O状態値の確保、書き込み完了後のディスクI/O使用上限値の回復が行われることによるディスクI/Oの状態の変化について説明する。
図29は、コンテンツ配信装置10Dが備えるバス175(と接続するインタフェース)のディスクI/O状態値の変化を示すタイムチャートである。図30は、図29におけるT1〜T5の時点における端末30a、30b、30c、30dそれぞれに割り当てられた帯域の広さを示している。
T1は初期状態、T1.1は書き込み要求を受信したとき(ファイルを書き込むために必要な空きディスクI/O状態値を確保できなかった)、T2はTSファイルの送信タイミングがきたとき(不足分帯域が発生)、T3は所定の下げる総帯域量だけ帯域を狭くしたとき、T3.1は書き込み要求を許可したとき(ファイルの書き込み開始)、T3.2はファイルの書き込みが完了したとき、それぞれの時点におけるディスクI/O状態値を示している。
(T1の時点)
図30(a)は、図29のT1の時点における端末30a、30b、30c、30dそれぞれに対して、TSファイルを配信するために割り当てられた帯域の広さを示しており、端末30a及び端末30dには広い帯域が割り当てられ、端末30b及び端末30cには狭い帯域が割り当てられている状態である。これは、端末30a及び端末30dには高データ転送レートファイルFHが配信され、端末30b及び端末30cには低データ転送レートファイルFLが配信されているためである。
(T1.1の時点)
図29のT1.1の時点は、コンテンツ変換装置40からファイル(映像コンテンツ)の書き込み要求を受信して、ディスクI/O使用上限値から予約ディスクI/O状態値の分を(強制的に)下げた状態である。このとき、ファイルを書き込むために必要な空きディスクI/O状態値を確保できなかったため、ループ処理が実行されている状態である。
(T2の時点)
図29のT2の時点は、(データ転送レートファイルを構成する)1つのTSファイルの配信が終了した状態である。このとき、ディスクI/O状態値がディスクI/O使用上限値を上回っているため、ステップS804の処理(予測ディスクI/O状態値≦空きディスクI/O状態値?)で、予測ディスクI/O状態値の方が大きい場合(ステップS804,No)に判定される状態である。このビットレート値に応じて帯域を確保すると、ディスクI/Oのデータ送受信量が増えすぎて、ディスクI/O状態値がディスクI/O使用上限値を超えることを×印と破線で示している。すなわち、このビットレート値に応じて帯域を確保すると、配信中総帯域が最大配信帯域を超えてしまう可能性が高い。
(T3の時点)
図30(c)は、図29のT3の時点における状態であり、T2の後のステップS208(及びステップS816)の処理で、端末30a、30dへ高データ転送レートファイルFHを配信するために割り当てられた帯域に対して、所定の下げる総帯域量(m)だけ下がるように、高データ転送レートファイルFHそれぞれに割り当てられた帯域を一様に狭くさせる帯域更新の設定がされ、その後のステップS210Aの処理で帯域が割り当てられた状態である。
これにより、図30(c)に示すように、高データ転送レートファイルFHが配信される端末30a、30dに対して、ファイル配信に割り当てられた帯域は、図30(b)で示す帯域よりも狭くなる。
(T3.1の時点)
図29のT3.1の時点は、ディスクI/O状態値がディスクI/O使用上限値を下回った状態である。これにより、ファイル(映像コンテンツ)を書き込むための空きディスクI/O状態値が確保できたこととなり、書き込み要求が許可されて、コンテンツ変換装置40に配信許可のメッセージが送信される。これにより、ファイル(映像コンテンツ)の書き込みが開始される。
(T3.2の時点)
図29のT3.2の時点は、ファイル(映像コンテンツ)の書き込みが完了したことにより、T1.1の時点で下げた予約ディスクI/O状態値の分を戻して、ディスクI/O使用上限値が元に戻った状態である(図28のステップS2104)。そして、ファイル書込処理が終了する。
(T5の時点)
図30(d)は、図29のT5の時点における状態であり、端末30aへのファイル配信が終了したことにより、帯域回復処理が行われた状態である。ディスクI/O状態値がディスクI/O使用上限値を下回っており(空きディスクI/O状態値>0)、T4の後のステップS905の処理にて、ステップS208(及びステップS816)の処理で、帯域を狭くさせられた端末30b、30dへ配信中のTSファイルに対して、下げた総帯域量(m)を割り当てるように帯域更新の設定がされ、その後のステップS906の処理で帯域が割り当てられた状態である。
これにより、図30(e)に示すように、高データ転送レートファイルFHが配信される端末30dに対して、ファイル配信に割り当てられた帯域は、図30(b)で示す帯域(下げた総帯域量(M))まで回復する(帯域が元に戻る)。
(T6の時点)
図30(e)は、図29のT6の時点における状態であり、端末30aからのファイル配信要求を受けて、端末30aへ高データ転送レートファイルFHを配信するために、帯域が割り当てられた状態である。ファイル書込処理が完了しているため、下げた予約ディスクI/O状態値の分が戻っており、ディスクI/Oの状態は、ディスクI/O使用上限値の限度まで利用可能になっている。
以上のように、第5実施形態によれば、コンテンツ変換装置40からファイル(映像コンテンツ)の書き込み要求があった場合でも、ファイルの書き込みと、ファイルの読み出し(ファイル配信)との双方を行うことができる。
以上、本発明の実施形態について説明したが、本発明は前記した実施形態に限定されず、適宜変更して実施することが可能である。
例えば、通信制御部111が備える帯域制御機能の一部もしくは全てを、帯域制御部113が備えてもよい。これにより、帯域更新の設定を行わずとも、帯域制御部113は必要に応じて帯域を更新することができる。
第1の実施形態において、帯域制御部113は、ステップS208の処理にて、帯域更新の設定をする際に、割り当てられた帯域を狭くする対象を、高データ転送レートファイルFHだけにしているが、高データ転送レートファイルFHに割り当てられた帯域を狭くするだけでは不足分帯域を補えない場合は、中データ転送レートファイルFMも対象としてもよい。
また、第1の実施形態において、ステップS208の処理では、配信中総帯域が最大配信帯域以下となるように、ファイルそれぞれに割り当てられた帯域を狭くさせる帯域更新の設定がされればよい。そのため、帯域更新の設定をする際に、割り当てられた帯域を狭くする対象を、高データ転送レートファイルFHだけでなく、中データ転送レートファイルFM及び低データ転送レートファイルFLをも含めた配信中のファイルすべてを対象とし、不足分帯域を配信中のファイル合計数で除算した値の分だけ、配信中のファイルそれぞれに割り当てられた帯域を狭くさせてもよい。
第3実施形態ではCPU使用率の値、第4実施形態ではディスクI/Oの状態に基づき帯域の割り当てを行っているが、組み合わせて両方の値を基準に帯域の割り当てを行ってもよい。この場合、CPU使用率がCPU使用率上限値を超える場合、または、ディスクI/O状態値がディスクI/O使用上限値を超える場合に、帯域を狭くする処理が行われることになる。そのため、第3実施形態及び第4実施形態よりもリソースを有効に利用することができる。
第5実施形態では、図25に示すようにコンテンツ配信システム1が1台のコンテンツ変換装置40を備える場合について記載したが、コンテンツ変換装置40を複数台配置してもよい。
1 コンテンツ配信システム
10 コンテンツ配信装置
20 ネットワーク
30 端末
110 配信制御部
111 通信制御部
112 通信状態監視部
113 帯域制御部
114 バッファ
120 コンテンツ管理部
130 記憶部
140 送受信部
150 エンコーダ
170 ディスクI/O状態監視部
175 バス(ディスクI/O)
180 書込要求対応部
FH 高データ転送レートファイル
FM 中データ転送レートファイル
FL 低データ転送レートファイル
PL プレイリスト

Claims (6)

  1. 複数の通信装置にコンテンツ配信を行うコンテンツ配信装置であって、
    複数のファイルで構成されるコンテンツを配信するに当たり、単位時間当たりの配信量を示す通信帯域をファイルに割り当てる配信制御部と、
    前記通信装置からファイル要求信号を受信して、要求されたファイルを割り当てられた通信帯域で送信する送受信部と、
    を備え、
    前記配信制御部は、
    ファイル送信負荷に係るリソース使用情報値である、送信するファイルに割り当てられた通信帯域に基づき、
    前記送受信部による各ファイル送信時における前記リソース使用情報値それぞれを合計した合計リソース使用情報値である、各ファイルに割り当てられた通信帯域の合計値が、所定の上限リソース使用情報値である、利用可能な通信帯域の上限を示す所定値を超える場合に、
    割り当てなおした後の合計リソース使用情報値が、前記上限リソース使用情報値以下となるように、各々のファイルに対して割り当てられた通信帯域を狭くして割り当てなおす、第1処理部と第2処理部とを有し、
    前記第1処理部は、
    前記各々のファイルにおいて第1レートを有するファイルに対して割り当てられた通信帯域を狭くして割り当てなおし、
    前記第2処理部は、
    前記第1処理部により割り当てなおした後の合計リソース使用情報値が、利用可能な通信帯域の上限を示す所定値を超える場合に、
    前記各々のファイルにおいて第1レートより低いレートである第2レートを有するファイルに対して割り当てられた通信帯域を狭くして割り当てなおす
    ことを特徴とするコンテンツ配信装置。
  2. 前記配信制御部は、
    前記送受信部が、前記ファイル要求信号とは異なる別のファイル要求信号を受け付けたときに、
    当該別のファイルを配信した場合のリソース使用情報値の合計である前記合計リソース使用情報値が、前記上限リソース使用情報値以下のとき、かつ、
    前記狭くした通信帯域を元に戻した場合の現在のリソース使用情報値の合計である前記合計リソース使用情報値が前記上限リソース使用情報値以下のときに、
    通信帯域を狭くした前記各々のファイルに対して割り当てられた通信帯域を元に戻す
    ことを特徴とする請求項1に記載されたコンテンツ配信装置。
  3. バッファをさらに備え、
    前記配信制御部は、
    前記上限リソース使用情報値を超える場合に、割り当てていた通信帯域それぞれの情報を前記バッファに記憶させ、
    前記割り当てなおすときに、前記狭くした通信帯域を、前記バッファに記憶された通信帯域の情報で割り当てなおす
    ことを特徴とする請求項1に記載されたコンテンツ配信装置。
  4. 前記配信制御部は、
    前記送受信部により、1つのコンテンツの配信が終了した場合に、
    現在のリソース使用情報値の合計である前記合計リソース使用情報値が前記上限リソース使用情報値以下のときに、
    通信帯域を狭くした前記各々のファイルに対して割り当てられた通信帯域を元に戻す
    ことを特徴とする請求項1に記載されたコンテンツ配信装置。
  5. 複数の通信装置にコンテンツ配信を行うコンテンツ配信装置におけるコンテンツ配信方法であって、
    前記コンテンツ配信装置は、
    複数のファイルで構成されるコンテンツを配信するに当たり、単位時間当たりの配信量を示す通信帯域をファイルに割り当てる配信制御ステップと、
    前記通信装置からファイル要求信号を受信して、要求されたファイルを割り当てられた通信帯域で送信する送受信ステップと、
    を有し、
    前記配信制御ステップは、
    ファイル送信負荷に係るリソース使用情報値である、送信するファイルに割り当てられた通信帯域に基づき、
    前記送受信ステップによる各ファイル送信時における前記リソース使用情報値それぞれを合計した合計リソース使用情報値である、各ファイルに割り当てられた通信帯域の合計値が、所定の上限リソース使用情報値である、利用可能な通信帯域の上限を示す所定値を超える場合に、
    割り当てなおした後の合計リソース使用情報値が、前記上限リソース使用情報値以下となるように、各々のファイルに対して割り当てられた通信帯域を狭くして割り当てなおす、第1処理ステップと第2処理ステップとを有し、
    前記第1処理ステップは、
    前記各々のファイルにおいて第1レートを有するファイルに対して割り当てられた通信帯域を狭くして割り当てなおし、
    前記第2処理ステップは、
    前記第1処理ステップにより割り当てなおした後の合計リソース使用情報値が、利用可能な通信帯域の上限を示す所定値を超える場合に、
    前記各々のファイルにおいて第1レートより低いレートである第2レートを有するファイルに対して割り当てられた通信帯域を狭くして割り当てなおす
    ことを特徴とするコンテンツ配信方法。
  6. 複数の通信装置にコンテンツ配信を行うコンテンツ配信装置を、
    複数のファイルで構成されるコンテンツを配信するに当たり、単位時間当たりの配信量を示す通信帯域をファイルに割り当てる配信制御部、
    前記通信装置からファイル要求信号を受信して、要求されたファイルを割り当てられた通信帯域で送信する送受信部、
    として機能させ、
    前記配信制御部を、
    ファイル送信負荷に係るリソース使用情報値である、送信するファイルに割り当てられた通信帯域に基づき、
    前記送受信部による各ファイル送信時における前記リソース使用情報値それぞれを合計した合計リソース使用情報値である、各ファイルに割り当てられた通信帯域の合計値が、所定の上限リソース使用情報値である、利用可能な通信帯域の上限を示す所定値を超える場合に、
    割り当てなおした後の合計リソース使用情報値が、前記上限リソース使用情報値以下となるように、各々のファイルに対して割り当てられた通信帯域を狭くして割り当てなおす、第1処理部と第2処理部とを有するものとして機能させ、
    前記第1処理部を、
    前記各々のファイルにおいて第1レートを有するファイルに対して割り当てられた通信帯域を狭くして割り当てなおすものとして機能させ、
    前記第2処理部を、
    前記第1処理部により割り当てなおした後の合計リソース使用情報値が、利用可能な通信帯域の上限を示す所定値を超える場合に、
    前記各々のファイルにおいて第1レートより低いレートである第2レートを有するファイルに対して割り当てられた通信帯域を狭くして割り当てなおすもの
    として機能させるコンテンツ配信プログラム。
JP2014174432A 2013-09-24 2014-08-28 コンテンツ配信装置、コンテンツ配信方法、およびコンテンツ配信プログラム Active JP6481291B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014174432A JP6481291B2 (ja) 2013-09-24 2014-08-28 コンテンツ配信装置、コンテンツ配信方法、およびコンテンツ配信プログラム

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2013196994 2013-09-24
JP2013196994 2013-09-24
JP2014174432A JP6481291B2 (ja) 2013-09-24 2014-08-28 コンテンツ配信装置、コンテンツ配信方法、およびコンテンツ配信プログラム

Publications (2)

Publication Number Publication Date
JP2015089113A JP2015089113A (ja) 2015-05-07
JP6481291B2 true JP6481291B2 (ja) 2019-03-13

Family

ID=53051416

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014174432A Active JP6481291B2 (ja) 2013-09-24 2014-08-28 コンテンツ配信装置、コンテンツ配信方法、およびコンテンツ配信プログラム

Country Status (1)

Country Link
JP (1) JP6481291B2 (ja)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3132482B2 (ja) * 1998-09-04 2001-02-05 日本電気株式会社 画像データ転送における転送レート制御方式及び方法
JP4347131B2 (ja) * 2004-04-30 2009-10-21 キヤノン株式会社 映像配信装置および方法
JP4758801B2 (ja) * 2006-03-30 2011-08-31 シャープ株式会社 コンテンツ配信システム
JP2009187230A (ja) * 2008-02-06 2009-08-20 Hitachi Ltd サーバの監視装置
JP5856795B2 (ja) * 2011-10-13 2016-02-10 株式会社日立製作所 コンテンツ配信システム

Also Published As

Publication number Publication date
JP2015089113A (ja) 2015-05-07

Similar Documents

Publication Publication Date Title
US6590865B1 (en) Transmission system, bandwidth management apparatus, and bandwidth management method
US9118638B2 (en) Content delivery using multiple sources over heterogeneous interfaces
JP6442507B2 (ja) ネットワークのデバイスにより実行される進行中のトラフィックセッションの中でネットワークの利用可能な帯域幅を割り当てる方法、対応するデバイス
JP5405625B2 (ja) データの並列受信のためのストリーム制御方法及び装置
CN110636339B (zh) 基于码率的调度方法、装置及电子设备
JP6861484B2 (ja) 情報処理装置及びその制御方法、コンピュータプログラム
CN105009601A (zh) 信息处理装置和方法、程序和内容供应***
JP6886874B2 (ja) エッジ装置、データ処理システム、データ送信方法、及びプログラム
JP6481291B2 (ja) コンテンツ配信装置、コンテンツ配信方法、およびコンテンツ配信プログラム
CN101848366B (zh) Iptv***中时移分片文件的归档及节目播放方法和设备
KR101454809B1 (ko) 트랜스코딩 작업 스케줄링 방법 및 이를 이용한 트랜스코딩 시스템
JP2014093655A (ja) 情報処理装置、情報処理方法及びプログラム
CN101511007B (zh) 一种网络视频监控***中的录像实现方法、设备和***
KR101699889B1 (ko) 조급함 반응 함수들에 따라, 무선 통신 능력을 가지는 피어들 사이에서 콘텐츠의 보급을 제어하기 위한 디바이스 및 방법
KR101594830B1 (ko) 클라우드 스트리밍 서비스 시스템, 클라우드 스트리밍 서비스 방법 및 이를 위한 서버
JP6635873B2 (ja) コンテンツの配信方法、プログラム、情報処理装置、及び情報処理システム
JP2009118220A (ja) 移動通信システム、無線回線制御装置、移動機、交換機、および、無線回線制御方法
JP2019134379A (ja) 品質予測装置、品質予測方法及びプログラム
JP6463702B2 (ja) サービス予約装置およびサービス予約方法
JP2016036103A (ja) 映像配信サーバ及び映像配信方法
JP6581858B2 (ja) データ配信システム、情報サーバ、及び通信端末
EP2843941B1 (en) Information processing device and method, program, and information processing system
JPWO2019070020A1 (ja) データ通信装置、通信システム、データ通信方法及びプログラム
JP2009049514A (ja) データ処理システム、送信装置及び帯域制御装置
CN111183417A (zh) 数据通信设备、通信***、数据通信方法和程序

Legal Events

Date Code Title Description
RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20160425

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170515

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180320

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180516

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181030

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181221

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190115

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190128

R150 Certificate of patent or registration of utility model

Ref document number: 6481291

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150