JP2016036103A - 映像配信サーバ及び映像配信方法 - Google Patents

映像配信サーバ及び映像配信方法 Download PDF

Info

Publication number
JP2016036103A
JP2016036103A JP2014158834A JP2014158834A JP2016036103A JP 2016036103 A JP2016036103 A JP 2016036103A JP 2014158834 A JP2014158834 A JP 2014158834A JP 2014158834 A JP2014158834 A JP 2014158834A JP 2016036103 A JP2016036103 A JP 2016036103A
Authority
JP
Japan
Prior art keywords
distribution
file
request
video
client terminal
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
Application number
JP2014158834A
Other languages
English (en)
Inventor
多田 厚子
Atsuko Tada
厚子 多田
田中 竜太
Ryuta Tanaka
竜太 田中
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2014158834A priority Critical patent/JP2016036103A/ja
Publication of JP2016036103A publication Critical patent/JP2016036103A/ja
Withdrawn legal-status Critical Current

Links

Images

Landscapes

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

Abstract

【課題】映像を連続的に再生できるようにする。【解決手段】 コンピュータによる映像配信方法であって、該コンピュータが、要求元からの配信要求に対する処理負荷が基準以上と高くなった場合、前記要求元から要求された品質の映像ファイルに対して、データ量の少ない代替可能な映像ファイルが存在するか確認し、代替可能な映像ファイルが存在する場合に、処理負荷が低くなるデータ量の少ない映像ファイルに差し換えて、前記要求元に対して、映像ファイルを配信する制御を行うことを特徴とする。【選択図】図1

Description

本発明は、映像配信サーバ及び映像配信方法に関する。
従来より、HTTP(HyperText Transfer Protocol)を用いた映像配信技術が知られており、例えば、MPEG−DASHが適用された映像配信システム等が提案されている。なお、MPEGとはMoving Picture Experts Groupの略であり、DASHとはDynamic Adaptive Streaming over HTTPの略である。
MPEG−DASHが適用された映像配信システムでは、コンテンツごとに予め複数の品質のファイルが用意されており、クライアント端末より映像の品質が指定された配信要求が送信されると、対応するファイルがクライアント端末に対して送信される。
上記のような映像配信システムでは、例えば、クライアント端末が、配信要求を行ってからファイルを受信するまでの受信時間に応じて、次の配信要求の際に指定する品質を変更し、次の配信要求に対するファイルの受信タイミングを調整する技術等が知られている。
特開2013−089977号公報 特開2007−123894号公報
しかしながら、複数のクライアント端末からの配信要求が集中し、映像配信サーバ側での処理等の負荷が高くなった場合、映像配信サーバの処理の遅れによりクライアント端末へのファイル送信が遅延する。この結果、クライアント端末では、連続再生できるタイミングでファイルを受信することができず、連続再生が滞るなどの影響が生じることになる。
一つの側面では、映像を連続的に再生できるようにすることを目的としている。
一態様によれば、要求元からの配信要求に対する処理負荷を算出する算出部と、前記処理負荷が基準以上と高くなった場合、前記要求元から要求された品質の映像ファイルに対して、データ量の少ない代替可能な映像ファイルが存在するか確認し、代替可能な映像ファイルが存在する場合に、処理負荷が低くなるデータ量の少ない映像ファイルに差し換える変更部と、前記差し換えた映像ファイルを、前記要求元に対して配信する配信部とを有することを特徴とする映像配信サーバが提供される。
映像を連続的に再生することができるようになる。
映像配信システムの一例を示す図である。 画質の異なる複数のファイルについて説明するための図である。 映像配信サーバのハードウェア構成を示す図である。 ストリーミングデータ用DBの一例を示す図である。 映像配信サーバの第1の機能構成を示す図である。 映像配信処理の第1のフローチャートである。 映像配信処理の第1の実施例を示す図である。 映像配信サーバの第2の機能構成を示す図である。 配信リストの一例を示す図である。 映像配信処理の第2のフローチャートである。 映像配信処理の第3のフローチャートである。 映像配信処理の第2の実施例を示す図である。 映像配信処理の第4のフローチャートである。 映像配信処理の第3の実施例を示す図である。 映像配信サーバの第3の機能構成を示す図である。 優先順位リストDBの一例を示す図である。 映像配信処理の第5のフローチャートである。 映像配信処理の第4の実施例を示す図である。 画質の変更例を示す図である。 画質の他の変更例を示す図である。
以下、実施形態について添付の図面を参照しながら説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複した説明を省く。
[第1の実施形態]
はじめに、一実施形態に係る映像配信システムについて説明する。図1は、映像配信システムの一例を示す図である。
映像配信システム100は、第1のクライアント端末110−1〜第nのクライアント端末110−nと、映像配信サーバ120とを有する(なお、nは2以上の任意の整数)。第1のクライアント端末110−1〜第nのクライアント端末110−nと、映像配信サーバ120とは、ネットワーク160を介して接続されており、両装置間ではネットワーク160を介してデータの送受信が行われる。映像配信システム100は、HTTPを用いた映像配信技術の国際標準規格であるMPEG−DASHが適用されたシステムである。映像配信サーバ120では第1のクライアント端末110−1〜第nのクライアント端末110−nからの配信要求に応じて映像配信を行う。なお、MPEGとはMoving Picture Experts Groupの略であり、DASHとは、Dynamic Adaptive Streaming over HTTPの略である。
第1のクライアント端末110−1〜第nのクライアント端末110−nは、それぞれ、映像配信サーバ120に格納されているコンテンツをダウンロードしながら再生する、いわゆる"ストリーミング"を実行する。MPEG−DASHが適用された映像配信システム100において、ストリーミングが実行されるコンテンツのデータ(以下、ストリーミングデータと称す)は、複数のセグメントを含む。映像配信サーバ120では、それぞれのセグメントごとに画質の異なる複数のファイルを格納している。このため、第1のクライアント端末110−1〜第nのクライアント端末110−nでは、ストリーミングデータに含まれるそれぞれのセグメントについて、所定の画質のファイルを指定しながら配信要求を行う。
映像配信サーバ120は、映像配信プログラム130と、ストリーミングデータ用データベース(以下、DBと略す)140とを有する。映像配信プログラム130が実行されることで、映像配信サーバ120では、第1のクライアント端末110−1〜第nのクライアント端末110−nからの配信要求において指定されたファイルを、配信要求を行ったクライアント端末(要求元)に対して送信する。なお、映像配信サーバ120では、配信要求を受信したタイミングでのCPUの処理負荷に応じて、配信要求において指定されたファイルよりも画質の低いファイルを代替ファイルとして要求元に送信する。
ストリーミングデータ用DB140には、複数のストリーミングデータが格納されている。各ストリーミングデータには複数のセグメントが含まれており、複数のセグメントそれぞれには、更に、画質の異なる複数のファイルが含まれている。つまり、ストリーミングデータ用DB140には、セグメントごとに画質の異なる複数のファイルが対応付けられているストリーミングデータが複数格納されている。
ここで、セグメントごとに対応付けられた、画質の異なる複数のファイルについて簡単に説明する。図2は、画質の異なる複数のファイルについて説明するための図であり、図2の例では、所定のストリーミングデータに含まれる所定のセグメントに対応付けられた、画質の異なる複数のファイルを模式的に示している。
図2(a)に示すように、1つのセグメントに対応付けられた第1のファイル200には複数のフレーム画像201〜207が所定のフレーム周期Tで再生されるように格納されている。ここでフレーム画像201〜207はそれぞれIa[Mbit(メガビット)]のデータであったとすると、第1のファイル200は、Ia/T[Mbps]のレートで再生されるファイルであるということができる。
一方、図2(b)は、同じセグメントに対応付けられた第2のファイル210に複数のフレーム画像211〜217が所定のフレーム周期Tで再生されるように格納されていることを示している。ここで、複数のフレーム画像211〜217は、それぞれ、複数のフレーム画像201〜207よりも画像サイズが小さく、それぞれがIb[Mbit(メガビット)]のデータであるとする(Ib<Ia)。つまり、第2のファイル210は、Ib/T[Mbps]のレートで再生されるファイルであるということができる。
以下、同様に、図2(c)の第3のファイル220は、Ic/T[Mbps]のレートで再生されるファイルであり、図2(d)の第4のファイル230は、Id/T[Mbps]のレートで再生されるファイルである(ただし、Ia>Ib>Ic>Id)。このように、1つのセグメントには、各フレーム画像のビット数(データ量)が異なることで、単位時間あたりに処理されるビット数(データ量)が互いに異なる複数のファイルが対応付けられている(図2の例では、第1乃至第4のファイル200〜230)。
ここで、図2の例によれば"単位時間あたりに処理されるビット数(データ量)"を示すレートの高低は、画質の高低と等価であることから、互いにレートが異なる複数のファイルとは、画質の異なる複数のファイルと言い換えることができる。したがって、以下では、"レート"を変更する、あるいは、"レート"を落とすことを"画質"を変更する、あるいは、"画質"を落とすと表現する。
次に、映像配信サーバ120のハードウェア構成について説明する。図3は、映像配信サーバのハードウェア構成を示す図である。図3に示すように、映像配信サーバ120は、CPU301、ROM(Read Only Memory)302、RAM(Random Access Memory)303を備える。また、映像配信サーバ120は、記憶部304、通信部305、ユーザインタフェース部306を備える。なお、映像配信サーバ120の各部は、バス307を介して相互に接続されている。
CPU301は、記憶部304に格納された各種プログラムを実行するコンピュータである。
ROM302は不揮発性メモリである。ROM302は、記憶部304に格納された各種プログラムをCPU301が実行するために必要な各種プログラム、データ等を格納する。具体的には、BIOS(Basic Input/Output System)やEFI(Extensible Firmware Interface)等のブートプログラムなどを格納する。
RAM303は、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)等の主記憶装置である。RAM303は、記憶部304に格納された各種プログラムがCPU301によって実行される際に展開される、作業領域として機能する。
記憶部304は、映像配信サーバ120にインストールされた各種プログラムや、プログラムを実行することで生成されるデータ等を格納する。通信部305は、ネットワーク160を介して第1のクライアント端末110−1〜第nのクライアント端末110−nと接続され、各端末との間でデータの送受信を行う。ユーザインタフェース部306は、映像配信サーバ120を操作する操作者の各種操作を受け付ける。
次に、映像配信サーバ120のストリーミングデータ用DB140について説明する。図4は、ストリーミングデータ用DBの一例を示す図である。
図4に示すように、ストリーミングデータ用DB140は、ストリーミングデータごとに区分して格納され、各ストリーミングデータには、情報の項目として、"セグメント"と"画質"とが含まれる。"画質"には、更に、情報の項目として、"4Mbps"、"1Mbps"、"500Kbps"、"200Kbps"が含まれる。
"セグメント"には、ストリーミングデータに含まれる複数のセグメントのセグメント名が格納される。図4の例では、ストリーミングデータ1がN個のセグメントを含むため、"セグメント0"から"セグメントN"が格納される。
"画質"の"4Mbps"には、セグメント0〜セグメントNそれぞれに対応するファイルであって、画質が4[Mbps]のファイルが格納される。例えば、ファイル名="Seg4M_0.ts"は、ストリーミングデータ1のセグメント0に対応付けられた4[Mbps]の画質を有するファイルであることを示している。
"画質"の"1Mbps"には、セグメント0〜セグメントNそれぞれに対応するファイルであって、画質が1[Mbps]のファイルが格納される。例えば、ファイル名="Seg1M_0.ts"は、ストリーミングデータ1のセグメント0に対応付けられた1[Mbps]の画質を有するファイルであることを示している。
以下、同様に、"画質"の"500Kbps"、"200Kbps"には、セグメント0〜セグメントNそれぞれに対応するファイルであって、画質が500[Kbps]、200[Kbps]のファイルが格納される。
次に、映像配信プログラム130がCPU301により実行されることで、映像配信サーバ120において実現される機能について説明する。図5は、映像配信サーバにおける機能構成を示す図である。
図5に示すように、映像配信サーバ120は、配信要求受信部501、配信負荷算出部502、CPU使用率監視部503、配信レート算出部504、配信ファイル変更部505、配信部506を有する。
配信要求受信部501は、第1のクライアント端末110−1〜第nのクライアント端末110−nから送信される配信要求を受信する。また、受信した配信要求において指定されたファイルを識別する。
配信負荷算出部502は、所定の周期ごとに、受信中の配信要求において指定されたファイルを送信する場合の配信負荷量を算出する。配信負荷量は、受信中の配信要求において指定されたファイルの画質を和算することで算出する。
CPU使用率監視部503は、所定の周期ごとに、CPU301の使用率を監視する。配信レート算出部504は、CPU使用率監視部503により監視されたCPU301の現在の使用率において、単位時間あたりに処理可能なビット数(データ量)を算出する。なお、CPU301が単位時間あたりに処理可能なビット数(データ量)を、以下では、「配信レート」と称す。
配信ファイル変更部505は、配信負荷算出部502により算出された配信負荷量と、CPU使用率監視部503により算出された配信レートとを比較する。そして、配信ファイル変更部505は、映像配信サーバ120が、現在受信中の配信要求において指定されたファイルを遅延なく送信できるか否かを判定する。また、配信ファイル変更部505は、現在受信中の配信要求において指定されたファイルを遅延なく送信することができないと判定した場合に、現在受信中の配信要求において指定されたファイルとは異なる他のファイルの有無を確認する。そして、他のファイルが存在する場合には、他のファイルを代替のファイルとして選択する。具体的には、配信ファイル変更部505では、現在受信中の配信要求において指定されたファイルにより特定される画質よりも低い画質のファイルの有無を確認し、低い画質のファイルがある場合には、代替のファイルとして選択する。
配信部506は、配信要求受信部501により識別されたファイル(配信ファイル変更部505により他のファイルが選択された場合にあっては、他のファイル)を、ストリーミングデータ用DB140より呼び出し、要求元のクライアント端末に送信する。
次に、映像配信サーバ120における映像配信処理の流れについて説明する。図6は、映像配信サーバによる映像配信処理のフローチャートである。図6に示すフローチャートは、映像配信プログラム130がCPU301により実行されることで処理が開始される。
ステップS601において、配信要求受信部501は、所定の周期ごとに第1のクライアント端末110−1〜第nのクライアント端末110−nのいずれかから配信要求を受信したか否かを判定する。ステップS601において、配信要求を受信していないと判定した場合には、配信要求を受信するまで待機する。
一方、ステップS601において、配信要求を受信したと判定した場合には、ステップS602に進む。ステップS602において、配信要求受信部501は、受信した配信要求それぞれの要求内容を識別する。具体的には、ステップS601において受信した各配信要求において指定されたファイルを識別する。
ステップS603において、CPU使用率監視部503は、現在のCPU301の使用率を取得する。また、配信レート算出部504は、取得したCPU使用率のもとでのCPU301の配信レートを算出する。
ステップS604において、CPU使用率監視部503は、ステップS603において取得したCPU使用率が、所定の閾値を上回っているか否か(第1の条件を満たしているか否か)を判定する。
ステップS604において、所定の閾値を上回っていない(第1の条件を満たしていない)と判定した場合には、ステップS609に進む。この場合、配信部506では、ステップS601において受信した各配信要求において指定されたファイルを、それぞれの要求元に送信する。
一方、ステップS604において、所定の閾値を上回っている(第1の条件を満たしている)と判定した場合には、ステップS605に進む。ステップS605において、配信負荷算出部502は、ステップS602において識別した要求内容に基づいて、配信負荷量を算出する。具体的には、各配信要求において指定されたファイルにより特定される各画質の和と配信係数とを乗算することで算出する。なお、配信負荷量は、クライアント端末における連続再生を実現するために、ファイルを遅延なく送信できるか否かを判定する際に用いられる値である。また、配信係数は、判定に用いられる配信負荷量を、実際の配信負荷量よりも高い値に設定するための係数(1以上の値)である。配信係数を乗算して算出した配信負荷量に基づいて、ファイルを遅延なく送信できるか否かを判定することで、クライアント端末における連続再生の実現をより確実なものにすることができる。
ステップS606において、配信負荷算出部502は、ステップS605において算出した配信負荷量が、ステップS603において算出した配信レートを上回っているか否か(第2の条件を満たしているか否か)を判定する。ステップS606において、配信負荷量が配信レート以下であった(第2の条件を満たしていない)と判定された場合には、ステップS609に進む。この場合も、配信部506では、ステップS601において受信した各配信要求において指定されたファイルを、それぞれの要求元に送信する。
一方、ステップS606において、配信負荷量のほうが配信レートを上回っている(第2の条件を満たしている)と判定された場合には、ステップS607に進む。ステップS607において、配信負荷算出部502は、映像配信サーバ120の配信負荷が高いと判定し、ステップS608に進む。
ステップS608において、配信ファイル変更部505は、ステップS601において受信した各配信要求において指定されたファイルそれぞれについて、画質が1段階低いファイルの有無を確認する。そして、画質が1段階低いファイルが存在する場合には、画質が1段階低いファイルに変更する。その後、ステップS605に戻る。なお、画質が1段階低いファイルがない場合には、ファイルを変更することなくステップS605に戻る。
ステップS605において、配信負荷算出部502は、ステップS608において変更されたファイルにより特定される各画質の和と配信係数とを乗算することで配信負荷量を算出する。更に、ステップS606において、算出した配信負荷量と配信レートとを比較する。
ステップS606において再度、配信負荷量のほうが配信レートを上回っていると判定された場合には、ステップS607において、配信負荷算出部502は映像配信サーバ120の配信負荷が高いと判定する。そして、ステップS608において、配信ファイル変更部505は、更に画質が1段階低いファイルの有無を確認し、存在する場合には、更に画質が1段階低いファイルに変更する(なお、存在しない場合には、更なるファイルの変更は行われない)。
このように、配信ファイル変更部505では、ステップS606において、配信負荷量が配信レート以下になったと判定されるまで画質を落としていく。一方、ステップS606において、配信負荷量が配信レート以下になったと判定した場合には、ステップS609に進む。
ステップS609において、配信部506は、配信負荷量が配信レート以下になったと判定された際の各画質のファイルを、それぞれの要求元に送信する。
ステップS610において、配信要求受信部501は、映像配信プログラム130に対する実行停止指示が入力されたか否かを判定し、入力されていないと判定した場合には、ステップS601に戻る。一方、入力されたと判定した場合には、映像配信処理を終了する。
次に、映像配信処理の具体例について説明する。図7は、映像配信処理の具体例を示す図である。図7(a)は、CPU使用率監視部503により取得されるCPU使用率の時間変化を示す図である。ここでは、時間tにおける映像配信処理について説明する。
図7(a)の例では、CPU使用率監視部503により取得される、時間tにおけるCPU使用率は80%であり、所定の閾値を上回っていることから、CPU使用率監視部503では、第1の条件を満たすと判定する。
また、配信レート算出部504では、CPU使用率=80%における配信レートを算出する(図7(a)の例では、48[Mbps]であったとする)。また、配信要求受信部501では、時間tにおいて受信した配信要求の要求内容について識別する。
図7(b)に示すように、時間tにおいて、配信要求受信部501では、第1のクライアント端末110−1〜第8のクライアント端末110−8からの配信要求を受信している。このうち、第1のクライアント端末110−1〜第4のクライアント端末110−4からは、時間t以前に、他のセグメントのファイルについての配信要求を受信している。
具体的には、第1のクライアント端末110−1からは、ストリーミングデータ1について、セグメント0からセグメント3に対応するファイルについて、時間t以前に、配信要求を受信している。そして、時間tにおいてはセグメント4に対応するファイル(Seg4M_4.ts)についての配信要求を受信している。
同様に、第2のクライアント端末110−2からは、ストリーミングデータ1について、セグメント0からセグメント1に対応するファイルについて、時間t以前に、配信要求を受信している。そして、時間tにおいてはセグメント2に対応するファイル(Seg4M_2.ts)についての配信要求を受信している。
また、第3のクライアント端末110−3からは、ストリーミングデータ2について、セグメント0からセグメント2に対応するファイルについて、時間t以前に、配信要求を受信している。そして、時間tにおいてはセグメント3に対応するファイル(Seg4M_3.ts)についての配信要求を受信している。
また、第4のクライアント端末110−4からは、ストリーミングデータ2について、セグメント0からセグメント4に対応するファイルについて、時間t以前に、配信要求を受信している。そして、時間tにおいてはセグメント5に対応するファイル(Seg4M_5.ts)についての配信要求を受信している。
一方、第5のクライアント端末110−5〜第8のクライアント端末110−8からは、時間t以前に配信要求を受信しておらず、時間tにおいて、新たに配信要求を受信したとする。具体的には、ストリーミングデータ1またはストリーミングデータ2のセグメント0に対応するファイル(Seg4M_0.tsまたはSeg1M_0.ts)についての配信要求を新たに受信したとする。
ここで、配信負荷算出部502では、時間tにおける配信負荷量を以下のように算出する。
・第1のクライアント端末110−1〜第4のクライアント端末110−4の配信負荷量
(4[Mbps]+4[Mbps]+4[Mbps]+1[Mbps])×2(配信係数)=26[Mbps]
・第5のクライアント端末110−5〜第8のクライアント端末110−8の配信負荷量
(4[Mbps]+4[Mbps]+4[Mbps]+1[Mbps])×2(配信係数)=26[Mbps]
つまり、時間tにおいて、新たに第5のクライアント端末110−5〜第8のクライアント端末110−8からの配信要求が開始したことで、配信負荷量は、26[Mbps]から52[Mbps]に増加した。このため、配信負荷算出部502では、時間tにおいて、第2の条件を満たしたと判定し、映像配信サーバ120の配信負荷が高いと判定する。
そこで、配信ファイル変更部505では、時間tにおいて受信した配信要求において指定されたすべてのファイルについて、1段階画質の低いファイルの有無を確認し、存在する場合に、1段階画質の低いファイルに変更する。具体的には、第1のクライアント端末110−1からの配信要求については、ストリーミングデータ1のセグメント4に対応するファイルを、4[Mbps]のファイル(SEG4M_4.ts)から1[Mbps]のファイル(SEG1M_4.ts)に変更する。また、第2のクライアント端末110−2からの配信要求については、ストリーミングデータ1のセグメント2に対応するファイルを、4[Mbps]のファイル(SEG4M_2.ts)から1[Mbps]のファイル(SEG1M_2.ts)に変更する。
以下、同様に、各クライアント端末からの配信要求において指定されたストリーミングデータのセグメントに対応するファイルについて、画質が1段階低いファイルの有無を確認し、存在する場合には、画質が1段階低いファイルに変更する。この結果、配信負荷算出部502により算出される、時間tにおける配信負荷量は以下のようになる。
・第1のクライアント端末110−1〜第4のクライアント端末110−4の配信負荷量
(1[Mbps]+1[Mbps]+1[Mbps]+500[Kbps])×2(配信係数)=7[Mbps]
・第5のクライアント端末110−5〜第8のクライアント端末110−8の配信負荷量
(1[Mbps]+1[Mbps]+1[Mbps]+500[Kbps])×2(配信係数)=7[Mbps]
つまり、時間tにおける配信負荷量は14[Mbps]となり、配信レート(48[Mbps]以下となったことで、配信部506では、変更後のファイルをそれぞれの要求元に送信する。
以上の説明から明らかなように、MPEG−DASHが適用された映像配信システムにおいて、第1の実施形態に係る映像配信サーバでは、
・CPU使用率を監視し、配信要求を受信した際にCPU使用率が所定の閾値を上回っているか否かを判定し、
・CPU使用率に基づいて算出される映像配信サーバの配信レートと、配信要求において指定されたファイルを配信する場合の配信負荷量とを対比し、
・CPU使用率が所定の閾値を上回っており、配信負荷量が配信レートを上回っていた場合に、それぞれの配信要求において指定されたファイルについて、画質の低いファイルの有無を確認する。そして、存在する場合には、配信負荷量が配信レート以下となるようにファイルを変更し、変更後のファイルを、配信要求において指定されたファイルに代えてそれぞれの要求元に送信する。
これにより、複数のクライアント端末からの配信要求が集中して映像配信サーバの配信負荷が増加した場合であっても、映像配信サーバによるファイル送信の遅延を回避することができる。
このように、通常は可能な限り高画質な映像配信をすることが品質のよい配信であるところ、第1の実施形態に係る映像配信サーバでは、クライアント端末から見て画質とともに重視される連続性(滞りなく再生できること)を保証することを優先した。つまり、映像配信における品質(画質、連続性)のうち、連続性を優先した処理を行うようにした。この結果、第1の実施形態に係る映像配信サーバによれば、クライアント端末での連続的な再生を維持することが可能となる。
[第2の実施形態]
上記第1の実施形態では、配信負荷量を算出するにあたり、配信要求の要求内容に関わらず、配信係数を一律に設定(2倍)したのに対して、第2の実施形態では、配信係数を配信要求の要求内容に応じて変更する。以下、第2の実施形態について説明する。
はじめに、第2の実施形態に係る映像配信サーバ120の機能構成について説明する。図8は、第2の実施形態に係る映像配信サーバの機能構成を示す図である。なお、図5で説明した機能構成と同じ要素については同じ参照番号を付すこととし、ここでは説明を省略する。図5との相違点は、配信リスト810を有する点である。
配信リスト810は、所定の周期ごとに、受信中の配信要求の内容を格納したリストであり、各配信要求に応じて、ファイルの送信期限時刻を定義することで、配信係数を設定するリストである。
図9は、配信リスト810の一例を示す図である。図9に示すように、配信リスト810には、情報の項目として、"配信要求の番号"、"要求元"、"要求内容"、"再生時間"、"要求受信時刻"、"送信期限時刻"が含まれる。
"配信要求の番号"には、現在受信中の配信要求を特定するための番号が格納される。"要求元"には、各配信要求を行った要求元のクライアント端末の名称が格納される。"要求内容"には、各配信要求において指定されたファイル名が格納される。"再生時間"には、各配信要求において指定されたファイルの再生に要する時間(再生時間)が格納される。"要求受信時刻"には、配信要求を受信した時刻である受信時刻が格納される。"送信期限時刻"には、各配信要求において指定されたファイルの送信を完了させる期限となる時刻が格納される。
図9の例では、"配信要求の番号"=1により特定される配信要求は、"要求元"=第1のクライアント端末110−1から送信され、"要求受信時刻"=13:00:00.000に映像配信サーバ120において受信された配信要求である。そして、配信要求において指定された"要求内容"=ストリーミングデータ1、SEG4M_4.tsのファイルは、"再生時間"=10秒のファイルである。
ここで、配信負荷算出部502では、"要求内容"=ストリーミングデータ1、SEG4M_4.tsのファイルを第1のクライアント端末110−1に送信するにあたり、送信完了までの時間を5秒に設定したとする。この場合、"送信期限時刻"=13:00:005.00となり、再生時間の1/2の時間で送信を完了させることが必要となる。再生時間の1/2の時間で送信を完了させるためには、配信要求において指定されたファイルの送信を2倍の配信レートで送信することと等価である。そこで、配信負荷算出部502では、"配信要求の番号"=1の配信要求について、配信負荷量を算出するにあたり、配信係数を"2"に設定する。
以下、同様に、配信負荷算出部502では、各配信要求について"送信期限時刻"を設定することで、各送信要求において指定されるファイルを、再生時間の何倍の配信レートで送信するのかを設定する。そして、配信負荷算出部502では、各配信要求の配信負荷量を算出するにあたり、送信時間と再生時間との比に基づいて算出される配信係数を用いる。これにより、第2の実施形態に係る映像配信サーバ120では、配信要求ごとに異なる配信係数に基づいて配信負荷量を算出することができる。
次に、第2の実施形態に係る映像配信サーバ120による映像配信処理の流れについて説明する。図10は、第2の実施形態に係る映像配信サーバによる映像配信処理のフローチャートである。なお、図10に示すフローチャートのうち、図6と同様の処理については同じ参照番号を付すこととし、ここでは説明を省略する。図6との相違点は、ステップS1001とステップS1002である。
ステップS1001において、配信負荷算出部502は、ステップS602において識別した各配信要求の要求内容に基づいて配信リスト810を生成するとともに、配信リスト810に送信期限時刻を設定する。
ステップS1002において、配信負荷算出部502は、ステップS1001において設定した各送信期限時刻により算出される各送信時間と、各配信要求において指定された各ファイルの再生時間との比に基づいて、配信係数を算出する。
これにより、ステップS605において、配信負荷算出部502は、ステップS1002において算出した配信係数を用いて配信負荷量を算出することができる。
このように、第2の実施形態によれば、上記第1の実施形態における効果を享受できるとともに、更に、配信係数を配信要求の要求内容に応じて変更することが可能となる。
[第3の実施形態]
上記第1の実施形態では、第2の条件が成立すると判定した場合に、受信中の配信要求において指定されたファイルすべてを、画質の低いファイルに変更した。これに対して、第3の実施形態では、受信中の配信要求のうち、"配信要求の番号"が1番目の配信要求から、順次、算出した配信負荷量を加算していく。そして、加算した配信負荷量が第2の条件を満たした場合に、以降の配信要求において指定されたファイルの画質を落とすことで、映像配信サーバ120の配信負荷を低減させる。以下、第3の実施形態について説明する。
はじめに、第3の実施形態に係る映像配信サーバ120による映像配信処理の流れについて説明する。図11は、第3の実施形態に係る映像配信サーバによる映像配信処理のフローチャートである。
ステップS601において、配信要求受信部501は、所定の周期ごとに第1のクライアント端末110−1〜第nのクライアント端末110−nのいずれかから配信要求を受信したか否かを判定する。ステップS601において、配信要求を受信していないと判定した場合には、配信要求を受信するまで待機する。
一方、ステップS601において、配信要求を受信したと判定した場合には、ステップS602に進む。ステップS602において、配信要求受信部501は、受信した配信要求それぞれの要求内容を識別する。具体的には、ステップS601において受信した各配信要求において指定されたファイルを識別する。
ステップS1101において、配信負荷算出部502は、配信要求カウントiに"1"を代入する。
ステップS603において、CPU使用率監視部503は、現在のCPU301の使用率を取得する。また、配信レート算出部504は、取得したCPU使用率のもとでのCPU301の配信レートを算出する。
ステップS604において、CPU使用率監視部503は、ステップS603において取得したCPU使用率が、所定の閾値を上回っているか否か(第1の条件を満たしているか否か)を判定する。
ステップS604において、所定の閾値を上回っていない(第1の条件を満たしていない)と判定した場合には、ステップS609に進む。この場合、配信部506では、ステップS601において受信した各配信要求において指定されたファイルを、それぞれの要求元に送信する。
一方、ステップS604において、所定の閾値を上回っている(第1の条件を満たしている)と判定した場合には、ステップS1102に進む。
ステップS1102において、配信負荷算出部502は、i番目の配信要求について、画質と配信係数とに基づいて配信負荷量を算出する。ここでは、配信要求カウントiに"1"が代入されているため、1番目の配信要求について、画質と配信係数に基づいて配信負荷量を算出する。
ステップS606において、配信負荷算出部502は、ステップS1102において算出した配信負荷量が、ステップS603において算出した配信レートを上回っているか否か(第2の条件を満たしているか否か)を判定する。ステップS606において、配信負荷量が配信レート以下であった(第2の条件を満たしていない)と判定された場合には、ステップS1104に進む。
ステップS1104において、配信レート算出部504は、ステップS601において受信した全ての配信要求に基づいて配信負荷量を算出したか否かを判定する。ステップS1104において、配信要求のうち、配信負荷量の算出に用いられていない配信要求があると判定した場合には、ステップS1105に進む。
ステップS1105において、配信負荷算出部502は、配信要求カウントiをインクリメントし、ステップS1102に戻る。ここでは、配信要求カウントi=2としたうえで、ステップS1102に戻る。
ステップS1102において、配信負荷算出部502は、2番目の配信要求について画質と配信係数とに基づいて配信負荷量を算出する。また、ステップS606において、第2の条件を満たしているか否かを判定する。判定の結果、まだ、第2の条件を満たしていない場合には、ステップS1104に進む。
ステップS1104では、配信負荷算出部502が、再び、配信負荷量の算出に用いられていない配信要求があるか否かを判定し、あると判定した場合には、配信要求カウントiをインクリメントする。
このように、ステップS601において受信した配信要求において指定されたファイルに基づいて算出される配信負荷量を、配信要求の番号の小さい方から順次、加算していく。そして、ステップS606において、配信負荷量が配信レートを上回った(第2の条件を満たした)と判定した場合には、ステップS607に進む。ステップS607において、配信負荷算出部502は、映像配信サーバ120の配信負荷が高いと判定し、ステップS1103に進む。
ステップS1103において、配信ファイル変更部505は、i番目の配信要求において指定されたファイルについて、画質が1段階低いファイルの有無を確認し、存在する場合には、画質が1段階低いファイルに変更する。そして、ステップS606に戻り、変更後のファイルを含むi番目までの配信要求それぞれにおいて指定されたファイルに基づいて算出された配信負荷量の合計が、配信レートを上回っているか否かを判定する。なお、画質が1段階低いファイルが存在しない場合には、ファイルの変更は行われない。
ステップS606において、依然として配信負荷量が配信レートを上回っていると判定された場合には、ステップS607に進み、配信負荷算出部502が、映像配信サーバ120の配信負荷が高いと判定する。更に、ステップS1103において、配信ファイル変更部505は、i番目の配信要求において指定されたファイルについて、更に、1段階低い画質のファイルの有無を確認し、存在する場合には、更に1段階低い画質のファイルに変更する。その後、再びステップS1102に戻る。なお、存在しない場合には、更なるファイルの変更は行われない。
このように、変更後のファイルを含むi番目までの配信要求それぞれにおいて指定されたファイルに基づいて算出される配信負荷量の合計が、配信レート以下となるまで、i番目の配信要求において指定されたファイルを、順次画質の低いファイルへと変更していく。ステップS606において、配信負荷算出部502が、変更後のファイルを含むi番目までの配信要求それぞれにおいて指定されたファイルに基づいて算出される配信負荷量の合計が、配信レート以下となったと判定した場合には、ステップS1104に進む。
ステップS1104において、配信レート算出部504は、ステップS601において受信した全ての配信要求に基づいて配信負荷量を算出したか否かを判定する。ステップS1104において、全ての配信要求に基づいて配信負荷量を算出したと判定した場合には、ステップS609に進む。
ステップS609において、配信部506は、全ての配信要求に基づいて算出された配信負荷量の合計が配信レート以下になったと判定された際の各画質のファイルを、要求元に送信する。
ステップS610において、配信要求受信部501は、映像配信プログラム130に対する実行停止指示が入力されたか否かを判定し、入力されていないと判定した場合には、ステップS601に戻る。一方、入力されたと判定した場合には、映像配信処理を終了する。
次に、第3の実施形態に係る映像配信サーバ120による映像配信処理の具体例について説明する。図12は、映像配信処理の具体例を示す図である。図12(a)は、CPU使用率監視部503により取得されるCPU使用率の時間変化を示す図であり、図7(a)と同じである。
したがって、図7(a)と同様に、CPU使用率監視部503では、第1の条件を満たすと判定する。また、配信レート算出部504では、CPU使用率=80%における配信レートを算出し、図7(a)と同様に、配信レート=48[Mbps]を導出する。更に、配信要求受信部501では、時間tにおいて受信した配信要求の要求内容について識別し、図7(b)と同様の識別結果を得たとする。
ここで、本実施形態において配信負荷算出部502では、まず配信要求カウントi=1に対応する"配信要求の番号"=1(第1のクライアント端末110−1)の配信要求について配信負荷量を算出する。第1のクライアント端末110−1の配信要求において指定されたファイル(SEG4M_4.ts)は、画質=4[Mbps]のファイルであることから、配信負荷量=4[Mbps]×2(配信係数)=8[Mbps]となる。算出した配信負荷量(8[Mbps])は配信レート(48[Mbps])以下であるため、配信負荷算出部502では、配信要求において指定されたファイルを変更する必要がないと判定する。そして、配信要求カウントiをインクリメントし(i=2)、次の配信要求について、配信負荷量を算出する。
具体的には、配信要求カウントi=2に対応する"配信要求の番号"=2(第2のクライアント端末110−2)の配信要求について配信負荷量を算出する。図12(b)の例では、第2のクライアント端末110−2の配信要求において指定されたファイル(SEG4M_2.ts)は、画質=4[Mbps]のファイルである。したがって、配信負荷量=4[Mbps]×2(配信係数)=8[Mbps]となる。
そして、"配信要求の番号"=1(第1のクライアント端末110−1)の配信要求において指定されたファイルに基づく配信負荷量に加算すると、配信負荷量の合計は16[Mbps]となる。算出した配信負荷量の合計(16[Mbps])は依然として配信レート(48[Mbps])以下であるため、配信負荷算出部502では、配信要求において指定されたファイルを変更する必要がないと判定する。そして、配信要求カウントiをインクリメントしたうえで(i=3)、次の配信要求について、配信負荷量を算出する。
以下、図12(b)に示すように、配信要求カウントi=6に対応する"配信要求の番号"=6(第6のクライアント端末110−6)の配信要求について算出された配信負荷量を加算するまでの、配信負荷量の合計は42[Mbps]である。
ここで、配信要求カウントi=7に対応する"配信要求の番号"=7(第7のクライアント端末110−7)の配信要求について算出された配信負荷量(8[Mbps])を加算すると、配信負荷量の合計は50[Mbps]となる。つまり、配信負荷量が配信レート(48[Mbps])を上回ることとなる。
そこで、配信ファイル変更部505では、配信要求カウントi=7に対応する"配信要求の番号"=7(第7のクライアント端末110−7)については、配信要求において指定されたファイルよりも画質が1段階低いファイルの有無を確認する。そして、存在する場合には、画質が1段階低いファイルに変更する。この場合、"配信要求の番号"=7(第7のクライアント端末110−7)の配信要求について算出される配信負荷量は、2[Mbps]となる。この結果、第6のクライアント端末110−6の配信要求について算出された配信負荷量を加算するまでの、合計の配信負荷量に加算した場合、合計の配信負荷量は44[Mbps]となる。つまり、合計の配信負荷量(44[Mbps])が配信レート(48[Mbps])以下となる。したがって、配信ファイル変更部505では、"配信要求の番号"=7(第7のクライアント端末110−7)の配信要求に対して送信するファイルを、SEG1M_0.tsに変更することを決定する。
更に、配信負荷算出部502では、更に、配信要求カウントiをインクリメントしたうえで(i=8)、次の配信要求について、配信負荷量を算出する。具体的には、配信要求カウントi=8に対応する"配信要求の番号"=8(第8のクライアント端末110−8)の配信要求について配信負荷量を算出する。図12(b)の例では、第8のクライアント端末110−8の配信要求において指定されたファイル(SEG1M_0.ts)は、画質=1[Mbps]のファイルである。したがって、配信負荷量=1[Mbps]×2(配信係数)=2[Mbps]となる。
そして、"配信要求の番号"=7(第7のクライアント端末110−7)の配信要求について算出された配信負荷量を加算するまでの、合計の配信負荷量(44[Mbps])に加算すると、合計の配信負荷量は46[Mbps]となる。つまり、算出した合計の配信負荷量(46[Mbps])は配信レート(48[Mbps])以下であるため、配信負荷算出部502では、第8のクライアント端末110−8の配信要求において指定されたファイルを変更する必要がないと判定する。
図12(b)の例では、時間tにおいて"配信要求の番号"=8までの配信要求を受信しているため、配信要求カウントi=8のときに算出された配信負荷量が加算されると、全ての配信要求に基づいて算出した配信負荷量の合計が算出されたこととなる。この結果、図12(b)の下段に示すファイルが、配信部506によりそれぞれの要求元に送信される。
このように、第3の実施形態によれば、受信した配信要求のうち、一部の配信要求において指定されたファイルを変更するだけで、映像配信サーバによるファイル送信の遅延を回避することができる。この結果、クライアント端末での連続的な再生を維持することが可能となる。
[第4の実施形態]
上記第1の実施形態では、第2の条件が成立したと判定した場合に、受信中の配信要求において指定されたファイルすべてを、画質の低いファイルに変更した。
また、上記第3の実施形態では、配信要求の番号の小さい方から順に配信負荷量を加算していき、配信負荷量の合計が配信レートを上回った場合に、第2の条件が成立したと判定し、最後に加算したファイルを、画質の低いファイルに変更した。
これに対して、第4の実施形態では、第2の条件が成立したと判定した場合に、受信中の配信要求のうち、画質の高いファイルについて、優先的に画質の低いファイルに変更する。以下、第4の実施形態について説明する。
はじめに、第4の実施形態に係る映像配信サーバ120による映像配信処理の流れについて説明する。図13は、第4の実施形態に係る映像配信サーバによる映像配信処理のフローチャートである。なお、図13に示すフローチャートのうち、図6と同様の処理については同じ参照番号を付すこととし、ここでは説明を省略する。図6との相違点は、ステップS1301である。
ステップS1301において、配信ファイル変更部505は、ステップS601において受信した配信要求において指定されたファイルのうち、特定される画質が最も高いファイルを選択する。そして、配信ファイル変更部505では、選択したファイルについて1段階画質の低いファイルの有無を確認し、存在する場合には、1段階画質の低いファイルに変更した後、ステップS605に戻る。なお、存在しない場合には、ファイルを変更することなくステップS605に戻る。
ステップS605において、配信負荷算出部502は、ステップS601において受信した配信要求により指定されたファイル(ステップS1301において変更された場合にあっては変更後のファイル)により特定される画質に基づいて、配信負荷量を算出する。
更に、ステップS606において、配信負荷算出部502は、ステップS605において算出された配信負荷量が配信レートを上回っているか否かを判定し、依然として、配信負荷量が配信レートを上回っている場合には、ステップS607に進む。ステップS607において、配信負荷算出部502は、映像配信サーバ120の配信負荷が高いと判定する。また、ステップS1301において、配信ファイル変更部505は、受信した配信要求において指定されたファイル(ステップS1301において変更された場合にあっては変更後のファイル)のうち、特定される画質が最も高いファイルを選択する。そして、配信ファイル変更部505は、選択したファイルについて1段階画質の低いファイルの有無を確認し、存在する場合には1段階画質の低いファイルに変更した後、ステップS604に戻る。なお、存在しない場合には、ファイルを変更することなくステップS604に戻る。
このように、第4の実施形態では、受信中の配信要求において指定されたファイルのうち、画質の高いファイルから順次画質の低いファイルに変更していき、配信負荷量が配信レート以下となるまで、これらの処理を繰り返す。
次に、第4の実施形態に係る映像配信サーバ120による映像配信処理の具体例について説明する。図14は、第4の実施形態に係る映像配信サーバによる映像配信処理の具体例を示す図である。なお、図14(a)は、図7(a)と同じであるため、ここでは説明を省略する。また、図14(b)の上段に示す、時間tにおける各クライアント端末からの要求内容も、図7(b)の上段に示す図と同じであるため、ここでは説明を省略する。
第4の実施形態において、配信負荷算出部502は、受信中の配信要求のうち、画質が最も高いファイルを選択する。図14(b)の上段に示す図の例では、画質が最も高いファイルは、下記のとおりである。
・第1のクライアント端末110−1より要求されたSEG4M_4.ts、
・第2のクライアント端末110−2より要求されたSEG4M_2.ts、
・第3のクライアント端末110−3より要求されたSEG4M_3.ts、
・第5のクライアント端末110−5より要求されたSEG4M_0.ts、
・第6のクライアント端末110−6より要求されたSEG4M_0.ts、
・第7のクライアント端末110−7より要求されたSEG4M_0.ts、
である(いずれも、画質=4[Mbps])。したがって、上記ファイルについて1段階画質の低いファイルの有無を確認し、存在する場合には、1段階画質の低いファイル(すなわち、1[Mbps]のファイル)に変更する。図14(b)の下段に示す図は、図14(b)の上段に示すファイルのうち、画質が最も高いファイルを1段階画質の低いファイルに変更した様子を示している。
図14(b)の下段に示すように、画質が最も高いファイルを1段階画質の低いファイルに変更することで、変更後のファイルの配信負荷量は、16[Mbps]になる。つまり、配信負荷量が配信レート(48[Mbps])以下となったため、配信部506では、変更後のファイルを要求元に送信する。
このように、本実施形態に係る映像配信サーバ120では、画質が最も高いファイル(最も高いファイルが複数ある場合には、複数のファイルすべて)について、1段階画質の低いファイルの有無を確認し、存在する場合には1段階画質の低いファイルに変更する。そして、変更後の配信負荷量を算出し、配信レート以下でなければ、再度、その時点で画質が最も高いファイルについて、1段階画質の低いファイルの有無を確認したうえで変更する。ファイルを変更することにより配信負荷量が配信レート以下になった場合には、変更後のファイルを配信する。これにより、複数のクライアント端末からの配信要求が集中して映像配信サーバの配信負荷が増加した場合であっても、映像配信サーバによるファイル送信の遅延を回避することができる。この結果、クライアント端末での連続的な再生を維持することが可能となる。
[第5の実施形態]
上記第4の実施形態では、受信中の配信要求のうち、画質の高いファイルについて、優先的に1段階画質の低いファイルに変更した。これに対して、第5の実施形態では、受信中の配信要求のうち、要求元のクライアント端末について予め設定している優先順位が低いクライアント端末からの配信要求において指定されたファイルについて、1段階画質の低いファイルに変更する。以下、第5の実施形態について説明する。
はじめに、第5の実施形態に係る映像配信サーバ120の機能構成について説明する。図15は、第5の実施形態に係る映像配信サーバの機能構成を示す図である。なお、図5で説明した機能構成と同じ要素については同じ参照番号を付すこととし、ここでは説明を省略する。図5との相違点は、優先順位リストDB1500を有する点である。
優先順位リストDB1500は、映像配信サーバ120にネットワーク160を介して接続された第1のクライアント端末110−1〜第nのクライアント端末110−nについて設定された優先順位が格納されたDBである。なお、ここでいう優先順位とは、クライアント端末からの配信要求に従ってファイル送信を行うための優先度を示したものであり、優先順位が高いクライアント端末に対しては、配信要求において指定されたファイルが送信される可能性が高くなる。一方、優先順位が低いクライアント端末に対しては、配信要求が集中した場合に、配信要求において指定されたファイルが送信される可能性が低くなる。
図16は、優先順位リストDBの具体例を示す図である。図16に示すように、優先順位リストDB1500は、情報の項目として、"要求元"と"優先順位"とが含まれ、"要求元"には、映像配信サーバ120に接続されるクライアント端末の名称が全て格納される。また、"優先順位"には、各クライアント端末について設定された優先順位が格納される。
図16の例では、映像配信サーバ120に接続されるクライアント端末が3つのグループに区分されている。このため、優先順位リストDB1500には、優先順位=1のクライアント端末と、優先順位=2のクライアント端末と、優先順位=3のクライアント端末とが含まれる。なお、優先順位の区分方法は図16の例に限定されるものではなく、2つのグループに区分してもよいし、4つ以上のグループに区分してもよい。
また、上記説明では優先順位の設定方法について特に言及していないが、優先順位の設定方法には、様々なバリエーションが考えられる。例えば、配信要求の要求元のクライアント端末において、ストリーミングデータを再生する表示画面のサイズに応じて、優先順位を設定するようにしてもよい。具体的には、画質の低下が顕在化しやすい大サイズを有するクライアント端末の優先順位を高く設定し、画質の低下が顕在化しにくい小サイズの画面を有するクライアント端末の優先順位を低く設定するようにしてもよい。
あるいは、配信要求の要求元のクライアント端末により再生されるストリーミングデータを視聴する視聴者の数に応じて、優先順位を設定するようにしてもよい。具体的には、多数の視聴者が視聴することを前提としたクライアント端末の優先順位を高く設定し、個人が視聴することを前提としたクライアント端末の優先順位を低く設定するようにしてもよい。
あるいは、配信要求の要求頻度に応じて、優先順位を設定するようにしてもよい。具体的には、要求頻度の高いクライアント端末の優先順位を高く設定し、要求頻度の低いクライアント端末の優先順位を低く設定するようにしてもよい。
次に、第5の実施形態に係る映像配信サーバ120による映像配信処理の流れについて説明する。図17は、第5の実施形態に係る映像配信サーバによる映像配信処理のフローチャートである。なお、図17に示すフローチャートのうち、図6と同様の処理については同じ参照番号を付すこととし、ここでは説明を省略する。図6との相違点は、ステップS1701、S1702、S1703である。
ステップS1701において、配信負荷算出部502は、優先順位カウントjに、優先順位の最も低い値である"3"を代入する。なお、図16に示す優先順位リストDB1500において、クライアント端末が2つのグループに区分されている場合には、ステップS1701において優先順位カウントjには"2"が代入される。また、4つ以上のグループに区分されている場合には、ステップS1701において優先順位カウントjには4以上の値が代入される。
ステップS1702において、配信ファイル変更部505は、優先順位がj番目のクライアント端末からの配信要求において指定されたファイルについて、1段階画質の低いファイルの有無を確認し、存在する場合には1段階画質の低いファイルに変更する。ここでは、優先順位が3番目のクライアント端末からの配信要求において指定されたファイルが、1段階画質の低いファイルの有無を確認したうえで変更される。なお、存在しない場合には、ファイルの変更は行われない。
ステップS1703において、配信ファイル変更部505は、優先順位カウントjをデクリメントし、ステップS605に戻る。ここでは、優先順位カウントj=2としたうえで、ステップS605に戻る。
ステップS605において、配信レート算出部504は、ステップS601において受信した配信要求において指定されたファイル(ステップS1702において変更された場合にあっては変更後のファイル)に基づいて、配信負荷量を算出する。
ステップS606において、配信負荷算出部502は、ステップS605において算出された配信負荷量が配信レートを上回っているか否かを判定する。ステップS606において、配信負荷量が配信レートを上回っていると判定された場合には、再び、ステップS607に進み、配信負荷算出部502は、映像配信サーバ120の配信負荷が高いと判定する。更に、ステップS1702において、優先順位がj番目(ここでは2番目)のクライアント端末からの配信要求により指定されたファイルについて、1段階画質の低いファイルの有無を確認し、存在する場合には1段階画質の低いファイルに変更する。なお、存在しない場合には、ファイルの変更は行われない。
このように、第5の実施形態では、優先順位の低いクライアント端末からの配信要求において指定されたファイルから、順次、画質を1段階ずつ落としていき、配信負荷量が配信レート以下となるようにする。
次に、第5の実施形態に係る映像配信サーバ120による映像配信処理の具体例について説明する。図18は、第5の実施形態に係る映像配信サーバによる映像配信処理の具体例を示す図である。なお、図18(a)は、図7(a)と同じであるため、ここでは説明を省略する。また、図18(b)の上段に示す、時間tにおける各クライアント端末からの要求内容も、図7(b)の上段に示す図と同じであるため、ここでは説明を省略する。
第5の実施形態において、配信ファイル変更部505は、受信中の配信要求のうち、優先順位の低いクライアント端末からの配信要求において指定されたファイルを選択する。優先順位リストDB1500によれば、図18(b)の上段に示す図の例では、優先順位の低いクライアント端末は、第3のクライアント端末110−3、第6のクライアント端末110−6、第7のクライアント端末110−7である(いずれも優先順位=3)。したがって、配信ファイル変更部505は、第3のクライアント端末110−3、第6のクライアント端末110−6、第7のクライアント端末110−7を選択する。
また、配信ファイル変更部505では、選択したクライアント端末からの配信要求において指定されたファイルについて、1段階画質の低いファイルの有無を確認し、存在する場合には1段階画質の低いファイルに変更する。図18(b)の例では、選択されたクライアント端末からの配信要求において指定されたファイルは、いずれも4[Mbps]のファイルであることから、1段階画質の低いファイル(1[Mbps]のファイル)に変更する。
図18(b)の下段に示すように、優先順位の低いクライアント端末からの配信要求において指定されたファイルを、1段階画質の低いファイルに変更することで、変更後のファイルの配信負荷量は、34[Mbps]になる。つまり、配信負荷量が配信レート(48[Mbps])以下となったため、配信部506では、変更後のファイルを要求元に送信する。
なお、優先順位の最も低いクライアント端末(優先順位=3の第3、第6、第7のクライアント端末110−3、110−6、110−7)からの配信要求において指定されたファイルを変更しても、配信負荷量が配信レートを上回っていたとする。この場合には、優先順位が次に低いクライアント端末(優先順位=2の第4、第8のクライアント端末110−4、110−8)からの配信要求において指定されたファイルを変更する。
このように、本実施形態に係る映像配信サーバ120では、配信負荷量が配信レートを上回っていた場合、優先順位の低いクライアント端末からの配信要求において指定されたファイルを、優先的に1段階画質の低いファイルに変更する。また、優先順位の低いクライアント端末からの配信要求において指定されたファイルを変更してもなお、配信負荷量が配信レートを上回っている場合には、優先順位が次に低いクライアント端末からの配信要求において指定されたファイルを変更する。つまり、対象とする優先順位を低い方から高い方へと変えながら、対象とする優先順位のクライアント端末からの配信要求において指定されたファイルを1段階画質の低いファイルへと変更していく。
これにより、複数のクライアント端末からの配信要求が集中して映像配信サーバの配信負荷が増加した場合であっても、映像配信サーバによるファイル送信の遅延を回避することができる。この結果、クライアント端末での連続的な再生を維持することが可能となる。
[第6の実施形態]
上記第1の実施形態では、セグメントごとに対応付けられた、画質の異なるファイルとして、フレーム画像201〜207とは画像サイズの異なるフレーム画像を例示した。しかしながら、画質の異なるファイルは、フレーム画像ごとの画像サイズの異なるファイルに限定されない。そこで、第6の実施形態では、セグメントごとに対応付けられた、画質の異なるファイルの例について、図19及び図20を用いて更に説明する。
図19(a)は、図2(a)と同じであり、フレーム画像201〜207は、それぞれがIa[Mbit(メガビット)]のデータであり、第1のファイル200は、Ia/T[Mbps]のレートで再生される。
一方、図19(b)は、同じセグメントに対応付けられたファイル1900に複数のフレーム画像1901〜1907が所定のフレーム周期Tで再生されるように格納されていることを示している。ここで、複数のフレーム画像1901〜1907は、それぞれ、複数のフレーム画像201〜207よりも圧縮率が高く、それぞれがIa/2[Mbit]のデータであるとする。つまり、ファイル1900は、Ia/2T[Mbps]のレートで再生されるファイルであるということができる。
また、図19(c)は、同じセグメントに対応付けられたファイル1910に複数のフレーム画像1911〜1914が所定のフレーム周期2Tで再生されるように格納されていることを示している。ここで、複数のフレーム画像1911〜1914は、それぞれ複数のフレーム画像201、203、205、207と同じフレーム画像であり、それぞれがIa[Mbit]のデータであるとする。つまり、ファイル1910は、Ia/2T[Mbps]のレートで再生されるファイルであるということができる。
このように、図19(a)に示すフレーム画像201〜207を含む第1のファイル200に対して、画質が1/2のファイルを、様々な方法で生成することができる。なお、図2及び図19の例では、1つのセグメントに対応付けられた第1のファイル200には、複数のフレーム画像201〜207が含まれるものとして説明した。しかしながら、1つのセグメントに対応付けられた第1のファイル200に含まれる画像は、フレーム画像に限定されない。例えば、フレーム画像と差分画像とが混在していてもよい。
図20は、所定のストリーミングデータに含まれる所定のセグメントに対応付けられた画質の異なるファイルを模式的に示した他の例である。図20(a)の例は、1つのセグメントに対応付けられたファイル2000に、複数のフレーム画像2001、2003、2005、2007と、複数の差分画像2002、2004、2006とが所定のフレーム周期Tで再生されるように格納されている。ここでフレーム画像2001、2003、2005、2007それぞれがIa[Mbit]のデータであり、差分画像2002、2004、2006それぞれがIb[Mbit]のデータであり、Ia>>Ibであったとする。この場合、ファイル2000は、概ねIa/2T[Mbps]のレートで再生されるファイルであるということができる。
図20(b)は、同じセグメントに対応付けられたファイル2010に複数のフレーム画像2011、2015と、複数の差分画像2012〜2014、2016、2017とが所定のフレーム周期Tで再生されるように格納されていることを示している。ここでフレーム画像2011、2015それぞれがIa[Mbit]のデータであり、差分画像2012〜2014、2016、2017それぞれがIb[Mbit]のデータであり、Ia>>Ibであったとする。この場合、ファイル2010は、概ねIa/4T[Mbps]のレートで再生されるファイルであるということができる。
このように、図20(a)に示すフレーム画像2001、2003、2005、2007と差分画像2002、2004、2006とを含むファイル2000に対して、画質が概ね1/2のファイル2010を生成することができる。
[第7の実施形態]
上記第1の実施形態及び上記第6の実施形態では、図2、図19、図20を用いて、画質の異なるファイルの生成方法について説明した。ここで、同一の生成方法によりファイルを生成した場合においては、レートの小さいファイルほど画質が低いため、レートと画質とは等価であることは既に述べたとおりである。
しかしながら、同一レートのファイルを異なる生成方法により生成した場合には、同一の画質になるとは限らず、同一レートであっても画質には差異が生じる。例えば、図2に示したように、画像サイズを小さくすることで低レートのファイルを生成した場合、図19または図20に示したように、他の方法で低レートのファイルを生成した場合と比較して、画質の低下が大きい。
このため、配信ファイル変更部505が、ストリーミングデータ用DB140に基づいて低レートのファイルを選択するにあたっては、画質の影響を受けにくい生成方法により生成されたファイルを優先的に選択することもできる。これにより、配信要求において指定されたファイルよりも低レートのファイルが送信されたクライアント端末において、画質の低下を認識しにくくさせることができる。
[第8の実施形態]
上記第1乃至第7の実施形態では、配信要求を受信するごとに、第1及び第2の条件が成立しているか否かを判定し、第1及び第2の条件が成立している場合にファイルを変更するようにした。このため、例えば、今回の配信要求において第1及び第2の条件が成立した場合であっても、次回の配信要求において第1及び第2の条件が成立しなくなった場合には、ファイルの変更は行われず、配信要求において指定されたファイルが送信されることとなる。
しかしながら、ファイルの変更は、配信要求を受信するごとに判定された判定結果に基づいて行われなくてもよい。例えば、今回の配信要求において第1及び第2の条件が成立した場合には、所定期間、ファイルの変更を継続して行い、所定期間が経過した後に元に戻す(すなわち、配信要求において指定されたファイルを送信する)ようにしてもよい。
また、元に戻す際に、第1及び第2の条件が成立しているか否かを判定し、第1及び第2の条件が成立している場合には、元に戻すことなく、所定期間、ファイルの変更を継続して行うようにしてもよい。
なお、開示の技術では、以下に記載する付記のような形態が考えられる。
(付記1)
要求元からの配信要求に対する処理負荷を算出する算出部と、
前記処理負荷が基準以上と高くなった場合、前記要求元から要求された品質の映像ファイルに対して、データ量の少ない代替可能な映像ファイルが存在するか確認し、代替可能な映像ファイルが存在する場合に、処理負荷が低くなるデータ量の少ない映像ファイルに差し換える変更部と、
前記差し換えた映像ファイルを、前記要求元に対して配信する配信部と
を有することを特徴とする映像配信サーバ。
(付記2)
前記変更部は、予め設定された要求元の優先順位のうち、優先順位の低い要求元から要求された映像ファイルを、優先して差し換えることを特徴とする付記1に記載の映像配信サーバ。
(付記3)
前記変更部は、前記要求元のうち、品質の高い映像ファイルを要求する要求元から要求された映像ファイルを、優先して差し換えることを特徴とする付記1に記載の映像配信サーバ。
(付記4)
前記算出部は、前記要求元からの配信要求において指定された映像ファイルを再生するために処理すべき単位時間あたりのデータ量を示す第1のレートと、前記要求元からの配信要求を受信した時点において前記映像配信サーバが処理可能な単位時間あたりのデータ量を示す第2のレートとに基づいて、前記処理負荷が基準以上と高くなったか否かを判定することを特徴とする付記1乃至3のいずれかの付記に記載の映像配信サーバ。
(付記5)
前記算出部は、前記要求元からの配信要求において指定された映像ファイルを再生するために処理すべき単位時間あたりのデータ量を示すレートに所定の係数を乗算することで算出した第1のレートと、前記要求元からの配信要求を受信した時点において前記映像配信サーバが処理可能な単位時間あたりのデータ量を示す第2のレートとに基づいて、前記処理負荷が基準以上と高くなったか否かを判定することを特徴とする付記1乃至3のいずれかの付記に記載の映像配信サーバ。
(付記6)
前記所定の係数は、配信要求ごとに決定されることを特徴とする付記5に記載の映像配信サーバ。
(付記7)
前記要求元からの配信要求を受信するごとに、前記映像配信サーバのCPU使用率が所定の閾値を上回っているか否かを判定する監視部を更に有し、
前記算出部は、前記所定の閾値を上回っていると判定された場合に、前記第1のレートが前記第2のレートを上回っているか否かを判定することを特徴とする付記4乃至6のいずれかの付記に記載の映像配信サーバ。
(付記8)
前記算出部は、前記第1のレートが前記第2のレートを上回っていると判定した場合に、前記処理負荷が基準以上と高くなったと判定することを特徴とする付記7に記載の映像配信サーバ。
(付記9)
要求元からの配信要求に対する処理負荷を算出する算出部と、
前記処理負荷が基準以上と高くなった場合、前記要求元から要求された品質の映像ファイルを、処理負荷が低くなるデータ量の少ない映像ファイルに差し換える変更部と、
前記差し換えた映像ファイルを、前記要求元に対して配信する配信部と
を有することを特徴とする映像配信サーバ。
(付記10)
コンピュータによる映像配信方法であって、該コンピュータが、
要求元からの配信要求に対する処理負荷が基準以上と高くなった場合、前記要求元から要求された品質の映像ファイルに対して、データ量の少ない代替可能な映像ファイルが存在するか確認し、代替可能な映像ファイルが存在する場合に、処理負荷が低くなるデータ量の少ない映像ファイルに差し換えて、前記要求元に対して、映像ファイルを配信する制御を行うことを特徴とする映像配信方法。
(付記11)
要求元からの配信要求に対する処理負荷が基準以上と高くなった場合、前記要求元から要求された品質の映像ファイルに対して、データ量の少ない代替可能な映像ファイルが存在するか確認し、代替可能な映像ファイルが存在する場合に、処理負荷が低くなるデータ量の少ない映像ファイルに差し換えて、前記要求元に対して、映像ファイルを配信する制御を行う、
処理を、コンピュータに実行させることを特徴とするプログラム。
なお、上記実施形態に挙げた構成等に、その他の要素との組み合わせなど、ここで示した構成に本発明が限定されるものではない。これらの点に関しては、本発明の趣旨を逸脱しない範囲で変更することが可能であり、その応用形態に応じて適切に定めることができる。
100 :映像配信システム
110 :クライアント端末
120 :映像配信サーバ
130 :映像配信プログラム
140 :ストリーミングデータ用DB
160 :ネットワーク
501 :配信要求受信部
502 :配信負荷算出部
503 :CPU使用率監視部
504 :配信レート算出部
505 :配信ファイル変更部
506 :配信部
810 :配信リスト
1500 :優先順位リストDB

Claims (5)

  1. 要求元からの配信要求に対する処理負荷を算出する算出部と、
    前記処理負荷が基準以上と高くなった場合、前記要求元から要求された品質の映像ファイルに対して、データ量の少ない代替可能な映像ファイルが存在するか確認し、代替可能な映像ファイルが存在する場合に、処理負荷が低くなるデータ量の少ない映像ファイルに差し換える変更部と、
    前記差し換えた映像ファイルを、前記要求元に対して配信する配信部と
    を有することを特徴とする映像配信サーバ。
  2. 前記変更部は、予め設定された要求元の優先順位のうち、優先順位の低い要求元から要求された映像ファイルを、優先して差し換えることを特徴とする請求項1に記載の映像配信サーバ。
  3. 前記変更部は、前記要求元のうち、品質の高い映像ファイルを要求する要求元から要求された映像ファイルを、優先して差し換えることを特徴とする請求項1に記載の映像配信サーバ。
  4. 前記算出部は、前記要求元からの配信要求において指定された映像ファイルを再生するために処理すべき単位時間あたりのデータ量を示す第1のレートと、前記要求元からの配信要求を受信した時点において前記映像配信サーバが処理可能な単位時間あたりのデータ量を示す第2のレートとに基づいて、前記処理負荷が基準以上と高くなったか否かを判定することを特徴とする請求項1乃至3のいずれか1項に記載の映像配信サーバ。
  5. コンピュータによる映像配信方法であって、該コンピュータが、
    要求元からの配信要求に対する処理負荷が基準以上と高くなった場合、前記要求元から要求された品質の映像ファイルに対して、データ量の少ない代替可能な映像ファイルが存在するか確認し、代替可能な映像ファイルが存在する場合に、処理負荷が低くなるデータ量の少ない映像ファイルに差し換えて、前記要求元に対して、映像ファイルを配信する制御を行うことを特徴とする映像配信方法。
JP2014158834A 2014-08-04 2014-08-04 映像配信サーバ及び映像配信方法 Withdrawn JP2016036103A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014158834A JP2016036103A (ja) 2014-08-04 2014-08-04 映像配信サーバ及び映像配信方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014158834A JP2016036103A (ja) 2014-08-04 2014-08-04 映像配信サーバ及び映像配信方法

Publications (1)

Publication Number Publication Date
JP2016036103A true JP2016036103A (ja) 2016-03-17

Family

ID=55523733

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014158834A Withdrawn JP2016036103A (ja) 2014-08-04 2014-08-04 映像配信サーバ及び映像配信方法

Country Status (1)

Country Link
JP (1) JP2016036103A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2023547287A (ja) * 2021-09-30 2023-11-10 17Live株式会社 ストリーミングをレンダリングするためのシステム、方法、及びコンピュータ可読媒体
JP7421628B1 (ja) 2022-12-26 2024-01-24 ソフトバンク株式会社 情報処理装置、情報処理方法、および情報処理プログラム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2023547287A (ja) * 2021-09-30 2023-11-10 17Live株式会社 ストリーミングをレンダリングするためのシステム、方法、及びコンピュータ可読媒体
JP7406713B2 (ja) 2021-09-30 2023-12-28 17Live株式会社 ストリーミングをレンダリングするためのシステム、方法、及びコンピュータ可読媒体
JP7421628B1 (ja) 2022-12-26 2024-01-24 ソフトバンク株式会社 情報処理装置、情報処理方法、および情報処理プログラム

Similar Documents

Publication Publication Date Title
US10069885B2 (en) Bandwidth management for over-the-top adaptive streaming
CN104918072B (zh) 低延时实况视频流传输
US9060207B2 (en) Adaptive video streaming over a content delivery network
US9680889B2 (en) System and method of managing multiple video players
US9473548B1 (en) Latency reduction in streamed content consumption
EP2300928B1 (en) Client side stream switching
JP6442507B2 (ja) ネットワークのデバイスにより実行される進行中のトラフィックセッションの中でネットワークの利用可能な帯域幅を割り当てる方法、対応するデバイス
US9843825B1 (en) Distributed and synchronized media switching
CN108965884B (zh) 一种转码任务的分配方法及调度设备、转码设备
US20140280760A1 (en) Playback stall avoidance in adaptive media streaming
JP6419848B2 (ja) 帯域幅最適化のための適応的データセグメント配信調停
US8725947B2 (en) Cache control for adaptive stream player
CN110087141A (zh) 视频数据传输方法、装置、客户端及服务器
JP2011172021A (ja) キャッシュサーバ制御装置、コンテンツ配信システム、コンテンツ配信方法、及びプログラム
EP2583435A1 (en) Improved peer-to-peer system
CN107920108A (zh) 一种媒体资源的推送方法、客户端及服务器
CN109587068B (zh) 流量切换方法、装置、设备及计算机可读存储介质
US10609111B2 (en) Client-driven, ABR flow rate shaping
JP2016036103A (ja) 映像配信サーバ及び映像配信方法
JP2009237918A (ja) 分散型コンテンツ配信システム、センタサーバ、分散型コンテンツ配信方法及び分散型コンテンツ配信プログラム
EP3895352B1 (en) Method and system for reducing drop-outs during video stream playback
JP2023515003A (ja) ネットワークでストリーミングされたコンテンツをクライアントデバイスのプレーヤで再生する方法
US20190190843A1 (en) Arbitration of competing flows
CN108307206A (zh) 一种直播编码任务的分配方法及装置
JP2017225044A (ja) コンテンツ配信システムのクライアント装置、コンテンツの取得方法及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170511

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20171225

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180104