JP7222748B2 - 受信装置及び配信サーバ - Google Patents

受信装置及び配信サーバ Download PDF

Info

Publication number
JP7222748B2
JP7222748B2 JP2019023247A JP2019023247A JP7222748B2 JP 7222748 B2 JP7222748 B2 JP 7222748B2 JP 2019023247 A JP2019023247 A JP 2019023247A JP 2019023247 A JP2019023247 A JP 2019023247A JP 7222748 B2 JP7222748 B2 JP 7222748B2
Authority
JP
Japan
Prior art keywords
segment
request
throughput
unit
bit rate
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
JP2019023247A
Other languages
English (en)
Other versions
JP2020136708A (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.)
Japan Broadcasting Corp
Original Assignee
Japan Broadcasting Corp
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 Japan Broadcasting Corp filed Critical Japan Broadcasting Corp
Priority to JP2019023247A priority Critical patent/JP7222748B2/ja
Publication of JP2020136708A publication Critical patent/JP2020136708A/ja
Application granted granted Critical
Publication of JP7222748B2 publication Critical patent/JP7222748B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、動画の配信システムに関する。
従来、インターネット動画配信に利用されている配信方式としてHAS(HTTP Adaptive Streaming)がある。この配信方式は、予め用意してある複数のビットレートの動画を、それぞれ数秒程度のセグメントに分割し、視聴端末の特性又は回線の混雑状況に応じて適切なセグメントを配信することで、リバッファリングを防ぎユーザ体験を向上させるものである。なお、適切なセグメントとは、視聴端末のバッファが枯渇する前にダウンロード可能で、かつ、最もビットレートの高い、すなわち高画質なセグメントのことである。
HASについては、MPEG-DASH及びHLS(HTTP Live Streaming)などの規格が制定されているが、適切なセグメントを取得するロジックは、視聴端末毎に独自実装される。また、複数のビットレートでコンテンツを用意し適切なビットレートで配信する技術は、ABR(Adaptive bit Rate)と呼ばれ、例えば、特許文献1に示されている。
米国特許第7818444号明細書
ABRでは、動画の再生が途切れない範囲内で、より高画質なセグメントを視聴端末が取得することによってユーザ体験を向上させることができる。しかしながら、回線の混雑状況によりスループットが一時的に低下した際に、視聴端末は、バッファを枯渇させないために低画質なセグメントを選択し、スループットが回復すると高画質なセグメントを取得するので、この画質の変化がユーザ体験を著しく低下させていた。
本発明は、スループットの低下を抑制し、動画視聴におけるユーザ体験を向上できる受信装置及び配信サーバを提供することを目的とする。
本発明に係る受信装置は、動画を構成するセグメントを順次受信して再生する受信装置であって、前記セグメントを受信した際のスループットから後続のセグメントのスループットの予測値を算出するスループット管理部と、受信した前記セグメントのバッファ量を計測するバッファ量計測部と、前記バッファ量が第1の閾値より多いか、又は前記スループットの予測値が前記セグメントのビットレートより高い場合、標準スライスを介した第1の配信サーバからの受信経路を選択し、前記バッファ量が前記第1の閾値以下で、かつ、前記スループットの予測値が前記セグメントのビットレート以下の場合、前記標準スライスよりも高速な高速スライスを介した第2の配信サーバからの受信経路を選択する経路決定部と、前記経路決定部により決定された受信経路で、前記セグメントを要求する要求部と、を備える。
前記要求部は、前記高速スライスを介した受信経路で前記セグメントを要求する場合、前記セグメントの受信状態を示すパラメータを前記第2の配信サーバへ通知し、当該パラメータに基づく優先度に応じて前記第2の配信サーバから要求拒否の応答を受信すると、前記標準スライスを介した受信経路で前記セグメントを要求してもよい。
前記パラメータは、所定時間内に前記高速スライスから前記セグメントを受信した回数、現在のビットレート、前記スループットの予測値、又は前記バッファ量の少なくともいずれかを含んでもよい。
前記セグメントはそれぞれ、複数のビットレートにより選択的に配信され、前記要求部は、前記第2の配信サーバから要求拒否の応答を受信すると、前記標準スライスを介した受信経路で、前記スループットよりも低いビットレートのうち最も高いビットレートの前記セグメントを要求してもよい。
前記要求部は、前記バッファ量が第1の閾値よりも多く、かつ、前記スループットが現在より高いビットレートよりもさらに高い場合、当該現在よりも高いビットレートの前記セグメントを要求してもよい。
前記要求部は、前記セグメントのビットレートを下げた場合、後続のセグメントの受信を所定回以上行うまで、ビットレートの上昇を抑制してもよい。
前記経路決定部は、前記バッファ量が前記第1の閾値より小さい第2の閾値以下の場合、前記スループットの予測値を現在より小さく補正し、前記高速スライスを介した第2の配信サーバからの受信経路を選択してもよい。
本発明に係る配信装置は、動画を構成するセグメントを受信装置へ配信する配信装置であって、標準スライスを介して前記受信装置へ配信するサーバと共通の前記セグメントを記憶する記憶部と、複数の前記受信装置からの要求を待ち行列で管理し、当該待ち行列の最大長を超える要求を拒否する要求管理部と、前記要求管理部により受け入れられた要求に応じて、前記標準スライスよりも高速な高速スライスを介して前記セグメントを送出する送出部と、を備え、前記要求管理部は、前記受信装置において、前記セグメントのバッファ量が第1の閾値以下で、かつ、前記セグメントを受信した際のスループットに基づく後続のセグメントのスループットの予測値が前記セグメントのビットレート以下の場合に、前記標準スライスを介した受信経路に代えて、前記高速スライスを介した受信経路が選択されると、当該受信装置から、前記セグメントの受信状態を示すパラメータと共に前記要求を受信し、前記パラメータに基づく優先度に応じて、前記待ち行列に格納される前記要求を並べ替える。
前記パラメータは、所定時間内に前記高速スライスから前記セグメントを受信した回数、現在のビットレート、前記スループットの予測値、又は前記バッファ量の少なくともいずれかを含み、前記要求管理部は、前記パラメータの重み付けにより前記優先度を算出してもよい。
前記要求管理部は、前記待ち行列として、先入れ先出しの第1のキューと、前記第1のキューに続く、前記優先度に応じて前記要求が並べ替えられる第2のキューと、を管理してもよい。
前記要求管理部は、前記要求のそれぞれに対応して、前記第2のキューに格納されてからの経過時間を計測し、所定の時間が経過すると、当該要求を前記第1のキューの末尾に追加してもよい。
本発明に係る受信プログラムは、前記受信装置としてコンピュータを機能させるためのものである。
本発明に係る配信プログラムは、前記配信装置としてコンピュータを機能させるためのものである。
本発明によれば、スループットの低下を抑制し、動画視聴におけるユーザ体験を向上できる。
実施形態に係る配信システムの全体構成を示す図である。 実施形態に係る受信装置の機能構成を示す図である。 実施形態に係る配信サーバの機能構成を示す図である。 実施形態に係る受信装置の処理手順を示すフローチャートである。 実施形態に係る配信サーバへ通知するアクセス回数のカウント処理を示すフローチャートである。 実施形態に係る配信サーバにおける要求の受け入れ判定の処理手順を示す図である。 実施形態に係るセグメントの要求発生時における、要求管理部の処理を示すフローチャートである。 実施形態に係るセグメントの要求に対するタイムアウト発生時における、要求管理部の処理を示すフローチャートである。 実施形態に係るセグメントの送出完了時における、要求管理部の処理を示すフローチャートである。
以下、本発明の実施形態の一例について説明する。
オープンインターネット上でのHASによる動画配信のシステムでは、前述のように、スループットの低下が課題となっていた。CDN(Content Delivery Network)を利用することにより、スループットを向上させることはできるものの、UHD(Ultra High Definition)などのリッチなコンテンツが増加傾向にある現状では十分な対策とはならない。そこで、例えば、CDNよりさらにユーザ(視聴端末)の近くに配信サーバを設置し、低遅延かつ広帯域なネットワークを利用することでスループットを向上させることが考えられるが、このようなネットワークを常時利用すると、配信コストが増加してしまう。
本実施形態では、オープンインターネット上に構築された標準のネットワーク(標準スライス)と、より高速なネットワーク(高速スライス)とを切り替え可能とし、視聴端末は、スループットの低下が検出された際に、一時的に高速スライスを利用してビットレートを維持させる。
図1は、本実施形態に係る配信システム1の全体構成を示す図である。
動画配信用の配信サーバ10(第1の配信サーバ)は、Webサーバであり、オープンインターネット上に設置される。このとき、CDNが利用されてもよい。本実施形態では、ABRによる動画配信を想定し、ビットレートの異なる複数種類のセグメントファイルが配信サーバ10に配置され、選択的に配信される。なお、ユーザの視聴端末である受信装置30で実行されるプレーヤを構成するスクリプト類は、別のサーバに配置されてもよい。
配信サーバ10が設置されるネットワークを標準スライスと呼ぶ。
配信サーバ20(第2の配信サーバ、配信装置)は、配信サーバ10よりも受信装置30とネットワーク的に近い位置に設置され、低遅延かつ広帯域なネットワーク上に設置される。本実施形態では、モバイルキャリア網に配信サーバ20が設置される構成を例示しているが、これには限られず、例えばモバイル基地局内のネットワークに設置されてもよい。
配信サーバ20が設置されるネットワークを高速スライスと呼ぶ。
配信サーバ20には、配信サーバ10と共通の動画のセグメントファイルが格納され、高速スライスと標準スライスとは、スイッチで結ばれている。受信装置30から配信サーバ10又は配信サーバ20へのアクセスは、例えばIPアドレスなどを指定することにより、スイッチを経由して高速スライス又は標準スライスのいずれかのネットワークに振り分けられる。
受信装置30は、標準的なHTML5プラットフォームを搭載したWebブラウザを備え、配信サーバ10又は他のサーバからスクリプト類をダウンロードすることでプレーヤとして機能する。
図2は、本実施形態に係る受信装置30の機能構成を示す図である。
受信装置30は、スマートフォン、タブレット端末、パーソナルコンピュータ、テレビなどの情報処理装置であり、制御部が記憶部に格納されたソフトウェア(受信プログラム)を実行することにより、次の各機能部を実現する。
受信装置30は、データ受信部301と、スループット測定部302と、スループット管理部303と、バッファ管理部304と、映像再生部305と、バッファ量計測部306と、セグメントパス決定部307(経路決定部)と、セグメント要求部308(要求部)と、セグメント再要求部309(要求部)と、アクセス回数管理部310とを備える。
データ受信部301は、標準スライス又は高速スライスを介して、動画を構成するセグメントデータを順次受信する。
スループット測定部302は、データ受信部301でセグメントデータを受信した時刻情報を元に、配信サーバ10からのセグメントデータの受信に掛かった時間を求め、スループットを測定する。
スループット管理部303は、スループット測定部302により測定された過去のスループットの値から次のセグメントのスループットの予測値を算出し管理する。予測の方法は限定されないが、例えば、直前のスループット値又は過去のスループット値の平均などが予測値として利用されてもよい。
バッファ管理部304は、データ受信部301で受信されたセグメントデータをバッファに格納し、現在バッファが保持するセグメントデータを管理する。
映像再生部305は、バッファ管理部304よりセグメントデータを順にロードし、動画をデコードした上で再生する。
バッファ量計測部306は、現在バッファが保持している未再生セグメントデータのバッファ量を計測する。
セグメントパス決定部307は、バッファ量計測部306及びスループット管理部303の情報に基づいて、次に要求するセグメントの受信経路を決定する。
具体的には、セグメントパス決定部307は、バッファ量が第1の閾値より多いか、又はスループットがセグメントのビットレートより高い場合、標準スライスを介した配信サーバ10からの受信経路を選択する。一方、バッファ量が第1の閾値以下で、かつ、スループットがセグメントのビットレート以下の場合、セグメントパス決定部307は、標準スライスよりも高速な高速スライスを介した配信サーバ20からの受信経路を選択する。
さらに、セグメントパス決定部307は、バッファ量が第1の閾値より小さい第2の閾値以下の場合、スループットの値を現在より小さく補正し、高速スライスを介した配信サーバ20からの受信経路を選択する。
セグメント要求部308は、セグメントパス決定部307により決定された標準スライス又は高速スライスを介したセグメントの受信経路に対して次のセグメントを要求する。
高速スライスを介した受信経路でセグメントを要求する場合、セグメントの要求部308は、セグメントデータの受信状態を示すパラメータを配信サーバ20へ通知する。受信状態を示すパラメータは、例えば、所定時間内に高速スライスからセグメントデータを受信した回数であるアクセス回数、現在のビットレート、スループットの予測値、又はバッファ量の少なくともいずれかを含む。
これらのパラメータに基づく優先度に応じて、配信サーバ20は、後述の処理によりセグメントの要求を受け入れるか拒否するかを判定する。
また、セグメント要求部308は、バッファ量が第1の閾値よりも多く、かつ、スループットの予測値が現在要求しているビットレートより高いビットレートと比べても、さらに高い場合、この現在よりも高いビットレートでセグメントを要求する。
ただし、セグメント要求部308は、セグメント再要求部309により要求するセグメントのビットレートが一旦下げられると、後続のセグメントの受信を所定回以上行うまで、ビットレートの上昇を抑制する。
セグメント再要求部309は、配信サーバ20に通知されたパラメータに基づく優先度に応じてセグメントの要求が拒否され、応答を受信すると、セグメントパス決定部307で決定された高速スライスに代えて標準スライスを介して配信サーバ10にセグメントを再要求する。
この後、セグメント再要求部309は、配信サーバ20から要求拒否の応答を受信すると、標準スライスを介した受信経路で、スループットの予測値よりも低いビットレートのうち最も高いビットレートのセグメントを要求する。
アクセス回数管理部310は、配信サーバ20に対してセグメントを要求し、受信できた回数をカウントし、所定時間当たりの配信サーバ20に対するアクセス回数を管理する。このアクセス回数は、セグメント要求部308に提供され、高速スライスを介したセグメントの要求時に、他のパラメータと共に配信サーバ20へ通知される。
図3は、本実施形態に係る配信サーバ20の機能構成を示す図である。
配信サーバ20は、配信サーバ10と同様のサーバ装置であり、制御部が記憶部21に格納されたソフトウェア(配信プログラム)を実行することにより、次の各機能部を実現する。これにより、配信サーバ20は、受信装置30からの要求に応じて、動画を構成するセグメントを、高速スライスを介して受信装置30へ配信する。
配信サーバ20は、要求管理部201と、セグメント送出部202とを備える。
また、記憶部21は、標準スライスを介して受信装置30へ動画配信する配信サーバ10と共通のセグメントを記憶する。
要求管理部201は、複数の受信装置30からのセグメントの要求を待ち行列で管理し、この待ち行列の最大長を超える要求を拒否する。
具体的には、要求管理部201は、受信装置30において、バッファ量が第1の閾値以下で、かつ、セグメントを受信する際のスループットの予測値がセグメントのビットレート以下の場合に、標準スライスを介した受信経路に代えて、高速スライスを介した受信経路が選択されると、この受信装置30からセグメントの要求を受信する。このとき、要求管理部201は、受信装置30におけるセグメントの受信状態を示すパラメータと共に要求を受信し、これらのパラメータに基づいて、待ち行列に格納される要求を並べ替える。
待ち行列は、先入れ先出しの第1のキューと、第1のキューに続く、パラメータに基づく優先度に応じて要求が並べ替えられる第2のキューとを含む。
要求管理部201は、要求のそれぞれに対応して、第2のキューに格納されてからの経過時間を計測し、所定の時間が経過すると、この要求を第1のキューの末尾に追加する。
セグメント送出部202は、要求管理部201により受け入れられた要求に応じて、標準スライスよりも高速な高速スライスを介して受信装置30へセグメントを送出する。
図4は、本実施形態に係る受信装置30の処理手順を示すフローチャートである。
受信装置30は、この処理により、セグメントの受信経路及び要求するビットレートを決定する。
ステップS1において、受信装置30は、m3u8又はmpdなどのマニフェストファイル、及び初期化セグメントなどの初期化ファイルを取得し、プレーヤの初期化を行う。次に、セグメント要求部308は、動画のセグメントをバッファリングが完了するまで順次要求する。
このとき取得するセグメントのビットレートは限定されず、既定の初期値又は最高値などであってよい。また、初めにセグメントを要求する先は、標準スライスを介した配信サーバ10、又は高速スライスを介した配信サーバ20のいずれでもよい。例えば、配信サーバ20から高速に取得することで、受信装置30は、動画の再生が開始されるまでの待ち時間を短縮できる。
ステップS2において、バッファリングが完了すると、映像再生部305は、動画の再生を開始する。
ステップS3において、データ受信部301は、標準スライスの配信サーバ10からビットレートがS[i]のセグメントを取得する。
ここで、配信サーバ10及び20に用意されるセグメントのビットレートは、高い順にS[H],・・・,S[i],・・・,S[0]とする。
ステップS4において、スループット測定部302は、ステップS3でセグメントの取得にかかった時間、及びセグメントサイズからスループットを測定し、スループット管理部303は、後続のセグメントのスループットの予測値TPを更新する。
ステップS5において、バッファ量計測部306は、動画再生によりバッファから消費したセグメント及び取得したセグメントから現在のバッファ量を更新する。
ステップS6において、受信装置30は、ビットレートが低下して以降のセグメントの受信回数を示すパラメータSHをインクリメントする。SHの初期値は定数SH_0であり、画質が低下した際にSH=0となる。SH≦SH_0(例えば8)の場合に画質(ビットレート)を向上させないようにすることで、画質が頻繁に切り替わることが抑制される。
ステップS7において、セグメントパス決定部307は、バッファ量がNセグメント(第1の閾値)より多いか否かを判定する。この判定がYESの場合、処理はステップS8に移り、判定がNOの場合、処理はステップS10に移る。
ここで、Nと後述のMとは、N>M>0の関係にあり、バッファ量がN(例えば8)より多ければバッファが十分にあることを示し、M(例えば2)以下であればバッファが枯渇し動画の再生が停止する可能性がある状態を示す。
ステップS8において、セグメント要求部308は、スループットTPとビットレートS[i+1]とを比較し、TP>S[i+1]かつSH>SH_0の条件を満たすか否かを判定する。この判定がYESの場合、処理はステップS9に移り、判定がNOの場合、処理はステップS3に移る。
ステップS9において、セグメント要求部308は、バッファ量とスループットは十分に余裕があると判断し、iをインクリメントして、よりビットレートの高いセグメントを、標準スライスを介して要求する。その後、処理はステップS3に移る。
ステップS10において、セグメントパス決定部307は、バッファ量がMセグメント(第2の閾値)以下か否かを判定する。この判定がYESの場合、処理はステップS11に移り、判定がNOの場合、処理はステップS12に移る。
ステップS11において、セグメントパス決定部307は、バッファが枯渇し、再生が停止する可能性があると判断し、スループットの予測値TPを小さく、例えば半分に補正することで、要求するセグメントのビットレートを下げてでもバッファ量を増加させるよう動作する。その後、処理はステップS13に移る。
ステップS12において、セグメントパス決定部307は、スループットの予測値TPよりも高い、すなわちTP>S[i]であるか否かを判定する。この判定がYESの場合、受信経路及びビットレートは標準スライスのまま維持され、処理はステップS3に移る。一方、判定がNO、すなわちTP≦S[i]の場合、処理はステップS13に移る。
ステップS13において、セグメント要求部308は、高速スライスを介して配信サーバ20に対して、受信状態を示すパラメータを通知すると共にビットレートS[i]のセグメントを要求する。そして、受信装置30は、配信サーバ20において要求が受け入れられたか否か、すなわち高速スライスからセグメントを取得できるか否かを判定する。この判定がYESの場合、処理はステップS14に移る。一方、判定がNOの場合、すなわち要求が拒否された場合、処理はステップS15に移る。
ステップS14において、データ受信部301は、配信サーバ20から高速スライスを介してビットレートS[i]のセグメントを取得する。これにより、バッファ量の減少が抑制され、ビットレートを下げずに映像再生部305が動画の再生を継続できる。その後、処理はステップS5に移る。
ステップS15において、セグメント再要求部309は、スループットの予測値に基づいて、動画の再生を止めることなく次のセグメントを取得できるビットレートを決定する。具体的には、セグメント再要求部309は、例えば、ビットレートを1段階ずつ下げたとき、初めてスループットの予測値TPを下回るビットレートS[i-k]を決定する。
ステップS16において、受信装置30は、ビットレートの順位iをi-kに更新すると共に、パラメータSHを0に更新し、ビットレートが下がったことを保持しておく。その後、処理はステップS3に移る。
図5は、本実施形態に係る配信サーバ20へ通知するアクセス回数のカウント処理を示すフローチャートである。
ここで、配列T[]には、本処理の結果として、過去に配信サーバ20からセグメントを取得した時刻が新しい順に格納されているものとする。
ステップS21において、アクセス回数管理部310は、配信サーバ20への要求が発生した時刻T_NOWを計測する。
ステップS22において、アクセス回数管理部310は、配列T[]の要素のうち、時刻T_NOWとの時刻差が所定の時間T0(例えば10秒)以内のものをカウントし、アクセス回数Cを決定する。具体的には、アクセス回数管理部310は、T_NOW-T[C]>T0となるまでCをカウントアップしていくことでCを決定できる。
ステップS23において、セグメント要求部308は、配信サーバ20に対してセグメントの要求と共にアクセス回数Cを含むパラメータを送信し、配信サーバ20において要求が受け入れられると、処理はステップS24に移る。
ステップS24において、データ受信部301は、配信サーバ20からセグメントデータを受信する。
ステップS25において、アクセス回数管理部310は、セグメントデータを取得した時刻を計測し、配列T[]の先頭T[0]に追加することでリスト化する。
図6は、本実施形態に係る配信サーバ20における要求の受け入れ判定の処理手順を示す図である。
要求管理部201は、セグメント送出用の待ち行列que_A(第1のキュー)と、que_Aへ追加するための待ち行列que_B(第2のキュー)とを用意する。
que_Aに追加された要求は受け入れられたものとみなされ、追加された順に先入れ先出しでセグメント送出部202により処理される。
que_Bは、要求を一時的に保持する待ち行列であり、que_Aに空きができると先頭から順にque_Aへ追加される。ただし、que_Bの最大長まで要求が保持されている場合、新たに要求を受けると、優先度の低い要求が拒否されque_Bから消去される。
優先度Pは、セグメントの要求と共に受信した、アクセス回数C、ビットレートS[i]、スループットの予測値TP、バッファ量BFなどのパラメータと、予め定義される各パラメータに対する重み係数Wとによって、例えば次のように定義される。
P=W1×C+W2×BF+W3×(S[i]/TP)+W[i]×S[i]
ここで、W1はアクセス回数C、W2はバッファ量BF、W3はスループットTPに対するビットレートS[i]の割合、W[i]は各ビットレートS[i]に対する重み係数である。
これらの重み係数Wを調整することにより、各パラメータの効果の比率を調整することができる。例えば、W1=1、W2=0、W3=0、W[i]=0に設定することで、アクセス回数Cが少ないものほど優先度Pを高くすることができる。
セグメントの要求、要求のタイムアウト、及びセグメントの送出完了の各イベント発生時における、要求管理部201の処理を以下に示す。
図7は、本実施形態に係るセグメントの要求発生時における、要求管理部201の処理を示すフローチャートである。
ステップS31において、要求管理部201は、que_Aの要素数が所定値QAL未満か否かを判定する。この判定がYESの場合、処理はステップS32に移り、判定がNOの場合、処理はステップS33に移る。
ステップS32において、要求管理部201は、que_Aに空きがあるため、que_Aの末尾に要求を追加する。
ステップS33において、要求管理部201は、que_Aに空きがないため、要求をque_Bに追加する。
ステップS34において、要求管理部201は、que_Bに新たに追加した要求に対してタイマ(例えば50msec)を設定する。なお、このタイマによるタイムアウトイベント発生時の処理については後述する。
ステップS35において、要求管理部201は、que_Bに格納された要求を、優先度Pによりソートする。これにより、最も優先度Pが高い要求がque_Aに続く先頭に格納される。なお、優先度Pが同じ場合、新しい要求が後ろに配置されてよい。
ステップS36において、要求管理部201は、que_Bの要素数が所定値QBLを超えたか否かを判定する。この判定がYESの場合、処理はステップS37に移り、判定がNOの場合、処理は終了する。
ステップS37において、要求管理部201は、que_Bの末尾の要求を消去し、この要求に対して設定されたタイマも解除する。
ステップS38において、要求管理部201は、que_Bから消去した要求を拒否した旨の応答を受信装置30へ返信する。
図8は、本実施形態に係るセグメントの要求に対するタイムアウト発生時における、要求管理部201の処理を示すフローチャートである。
ステップS41において、要求管理部201は、que_Bにおいてタイムアウトが発生した要求を消去する。
ステップS42において、要求管理部201は、que_Bでタイムアウトが発生し消去した要求をque_Aの末尾に追加する。これにより、長期間にわたってque_Aに追加されず、かつ、拒否もされなかった要求が受け入れられる。
図9は、本実施形態に係るセグメントの送出完了時における、要求管理部201の処理を示すフローチャートである。
ステップS51において、要求管理部201は、セグメント送出部202によりque_Aの先頭の要求に対するセグメントの送出が完了すると、この要求をque_Aから消去する。
ステップS52において、要求管理部201は、que_Aの要素数がQAL未満になったか否かを判定する。この判定がYESの場合、処理はステップS53に移り、判定がNOの場合、処理は終了する。
ステップS53において、要求管理部201は、que_Aの末尾に、que_Bの先頭にある要求を追加する。
ステップS54において、要求管理部201は、qua_Aに追加した要求を、que_Bから消去する。
本実施形態によれば、配信システム1において、受信装置30は、バッファ量、及び標準スライスを介した配信サーバ10に対するスループットの予測値に基づいて、次に要求するセグメントの受信経路を決定する。このとき、バッファ量が十分か、又はスループットの予測値が十分に高ければ、受信装置30は、標準スライスを介して配信サーバ10からセグメントを取得する。一方、バッファ量が第1の閾値を下回り、かつ、スループットの予測値が十分でない場合に、受信装置30は、高速スライスを介して配信サーバ20にセグメントを要求する。
したがって、受信装置30は、一時的にインターネットが混雑した場合に、高速スライスからセグメントを受信することでスループットの低下を抑制できる。これにより、受信装置30は、ビットレート変動による画質の劣化、及びリバッファリングによる再生の停止を抑止できるので、高画質な動画再生を維持して動画視聴におけるユーザ体験を向上できる。
特に、UHD又はVR(Virtual Reality)などのリッチなコンテンツ、あるいは、ライブ配信において低遅延化のためにバッファ量を少なく設定しているときに有効である。
高速スライスに配置された配信サーバ20は、現在の処理待ちの要求数と、要求元の受信装置30から通知されたパラメータに基づく優先度とに基づいて、要求を受け入れてセグメントを配信するか拒否するかを決定する。
したがって、配信サーバ20は、高速スライスを介した配信サーバ20の利用頻度が高いなど、パラメータに基づく優先度が低い受信装置30からの要求を混雑状況に応じて拒否でき、これにより、複数の受信装置30が公平に高速スライスを利用できる。この結果、配信システム1は、高速スライスのパフォーマンスを維持しつつ、複数の受信装置30全体としてユーザ体験を向上させることができる。
このとき、配信サーバ20は、パラメータとしてアクセス回数、現在のビットレート、スループットの予測値、バッファ量と、複数の重み係数とを用いた計算式により優先度Pを算出する。
これにより、配信サーバ20は、重み係数を調整することで、アクセス回数の少ない受信装置30、バッファ量が少ない受信装置30、ビットレートに対してスループットが低い受信装置30、特定のビットレートを要求する受信装置30など、優先的に配信する受信装置30を調整しつつ、全体のバッファの枯渇を抑制できる。
なお、重み係数は、受信装置30の数、高速スライスの性能、予め用意する各セグメントのビットレートなどに応じて適宜に設定されてよく、これにより、配信事業者の希望に適した配信動作が実現される。
また、配信サーバ20は、待ち行列として、受け入れ済みの要求が先入れ先出しで格納される第1のキューと、第1のキューに続く、優先度で並べ替えられる第2のキューとを用いる。
これにより、配信サーバ20は、要求に対する応答の遅延を抑制しつつ、適切な優先順位によりセグメントを配信できる。
さらに、配信サーバ20は、第2のキューに格納した要求に対しては、それぞれタイマを設定し、所定時間を経過した要求を第1のキューの末尾に追加する。
これにより、配信サーバ20は、長時間にわたって処理されず、かつ、拒否もされない要求が待ち行列に残されて応答が遅延する事態を抑制できる。
また、配信サーバ20から要求を拒否された受信装置30は、標準スライスを介して配信サーバ10からセグメントを取得することで、セグメントの取得を継続できる。
このとき、受信装置30は、スループットに応じて前回よりも低いビットレートのセグメントを要求することで、バッファの枯渇を防ぎ、動画の再生が停止する事態を抑制できる。
受信装置30は、バッファ量が十分にあり、かつ、現在より高いビットレートでもスループットに余裕がある場合、要求するビットレートを上げることで、より高画質な動画を再生できる。
また、受信装置30は、ビットレートを下げた後は、後続のセグメントの受信を所定回以上行うまでビットレートを上げないことにより、ビットレートの頻繁な変動を抑制し、動画視聴におけるユーザ体験を向上できる。
さらに、受信装置30は、バッファ量が第2閾値以下の場合、スループットの予測値を現在よりも小さく補正することで、受信するセグメントのビットレートを低く抑え、バッファの枯渇による動画再生の停止を抑制できる。
本実施形態では、主に配信システム1の構成と動作について説明したが、本発明はこれに限られず、各構成要素を備え、動画を配信するための方法、又はプログラムとして構成されてもよい。
さらに、配信システム1の機能を実現するためのプログラムをコンピュータで読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現してもよい。
ここでいう「コンピュータシステム」とは、OSや周辺機器などのハードウェアを含むものとする。また、「コンピュータで読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD-ROMなどの可搬媒体、コンピュータシステムに内蔵されるハードディスクなどの記憶装置のことをいう。
さらに、「コンピュータで読み取り可能な記録媒体」とは、インターネットなどのネットワークや電話回線などの通信回線を介してプログラムを送信する場合の通信線のように、短時刻の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時刻プログラムを保持しているものも含んでもよい。また、上記プログラムは、前述した機能の一部を実現するためのものであってもよく、さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよい。
1 配信システム
10 第1の配信サーバ
20 第2の配信サーバ(配信装置)
21 記憶部
30 受信装置
201 要求管理部
202 セグメント送出部
301 データ受信部
302 スループット測定部
303 スループット管理部
304 バッファ管理部
305 映像再生部
306 バッファ量計測部
307 セグメントパス決定部(経路決定部)
308 セグメント要求部(要求部)
309 セグメント再要求部(要求部)
310 アクセス回数管理部

Claims (13)

  1. 動画を構成するセグメントを順次受信して再生する受信装置であって、
    前記セグメントを受信した際のスループットから後続のセグメントのスループットの予測値を算出するスループット管理部と、
    受信した前記セグメントのバッファ量を計測するバッファ量計測部と、
    前記バッファ量が第1の閾値より多いか、又は前記スループットの予測値が前記セグメントのビットレートより高い場合、標準スライスを介した第1の配信サーバからの受信経路を選択し、前記バッファ量が前記第1の閾値以下で、かつ、前記スループットの予測値が前記セグメントのビットレート以下の場合、前記標準スライスよりも高速な高速スライスを介した第2の配信サーバからの受信経路を選択する経路決定部と、
    前記経路決定部により決定された受信経路で、前記セグメントを要求する要求部と、を備える受信装置。
  2. 前記要求部は、前記高速スライスを介した受信経路で前記セグメントを要求する場合、前記セグメントの受信状態を示すパラメータを前記第2の配信サーバへ通知し、当該パラメータに基づく優先度に応じて前記第2の配信サーバから要求拒否の応答を受信すると、前記標準スライスを介した受信経路で前記セグメントを要求する請求項1に記載の受信装置。
  3. 前記パラメータは、所定時間内に前記高速スライスから前記セグメントを受信した回数、現在のビットレート、前記スループットの予測値、又は前記バッファ量の少なくともいずれかを含む請求項2に記載の受信装置。
  4. 前記セグメントはそれぞれ、複数のビットレートにより選択的に配信され、
    前記要求部は、前記第2の配信サーバから要求拒否の応答を受信すると、前記標準スライスを介した受信経路で、前記スループットよりも低いビットレートのうち最も高いビットレートの前記セグメントを要求する請求項2又は請求項3に記載の受信装置。
  5. 前記要求部は、前記バッファ量が第1の閾値よりも多く、かつ、前記スループットが現在より高いビットレートよりもさらに高い場合、当該現在よりも高いビットレートの前記セグメントを要求する請求項4に記載の受信装置。
  6. 前記要求部は、前記セグメントのビットレートを下げた場合、後続のセグメントの受信を所定回以上行うまで、ビットレートの上昇を抑制する請求項5に記載の受信装置。
  7. 前記経路決定部は、前記バッファ量が前記第1の閾値より小さい第2の閾値以下の場合、前記スループットの予測値を現在より小さく補正し、前記高速スライスを介した第2の配信サーバからの受信経路を選択する請求項4から請求項6のいずれかに記載の受信装置。
  8. 動画を構成するセグメントを受信装置へ配信する配信装置であって、
    標準スライスを介して前記受信装置へ配信するサーバと共通の前記セグメントを記憶する記憶部と、
    複数の前記受信装置からの要求を待ち行列で管理し、当該待ち行列の最大長を超える要求を拒否する要求管理部と、
    前記要求管理部により受け入れられた要求に応じて、前記標準スライスよりも高速な高速スライスを介して前記セグメントを送出する送出部と、を備え、
    前記要求管理部は、
    前記受信装置において、前記セグメントのバッファ量が第1の閾値以下で、かつ、前記セグメントを受信した際のスループットに基づく後続のセグメントのスループットの予測値が前記セグメントのビットレート以下の場合に、前記標準スライスを介した受信経路に代えて、前記高速スライスを介した受信経路が選択されると、当該受信装置から、前記セグメントの受信状態を示すパラメータと共に前記要求を受信し、
    前記パラメータに基づく優先度に応じて、前記待ち行列に格納される前記要求を並べ替える配信装置。
  9. 前記パラメータは、所定時間内に前記高速スライスから前記セグメントを受信した回数、現在のビットレート、前記スループットの予測値、又は前記バッファ量の少なくともいずれかを含み、
    前記要求管理部は、前記パラメータの重み付けにより前記優先度を算出する請求項8に記載の配信装置。
  10. 前記要求管理部は、前記待ち行列として、先入れ先出しの第1のキューと、前記第1のキューに続く、前記優先度に応じて前記要求が並べ替えられる第2のキューと、を管理する請求項8又は請求項9に記載の配信装置。
  11. 前記要求管理部は、前記要求のそれぞれに対応して、前記第2のキューに格納されてからの経過時間を計測し、所定の時間が経過すると、当該要求を前記第1のキューの末尾に追加する請求項10に記載の配信装置。
  12. 請求項1から請求項7のいずれかに記載の受信装置としてコンピュータを機能させるための受信プログラム。
  13. 請求項8から請求項11のいずれかに記載の配信装置としてコンピュータを機能させるための配信プログラム。
JP2019023247A 2019-02-13 2019-02-13 受信装置及び配信サーバ Active JP7222748B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019023247A JP7222748B2 (ja) 2019-02-13 2019-02-13 受信装置及び配信サーバ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019023247A JP7222748B2 (ja) 2019-02-13 2019-02-13 受信装置及び配信サーバ

Publications (2)

Publication Number Publication Date
JP2020136708A JP2020136708A (ja) 2020-08-31
JP7222748B2 true JP7222748B2 (ja) 2023-02-15

Family

ID=72263695

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019023247A Active JP7222748B2 (ja) 2019-02-13 2019-02-13 受信装置及び配信サーバ

Country Status (1)

Country Link
JP (1) JP7222748B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7463314B2 (ja) 2021-03-23 2024-04-08 Kddi株式会社 コンテンツ配信ネットワークのクライアント装置及びプログラム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013135471A (ja) 2011-12-22 2013-07-08 Thomson Licensing マルチパス環境におけるアダプティブストリーミングのためのシステムと方法
WO2018152347A1 (en) 2017-02-17 2018-08-23 Divx, Llc Systems and methods for adaptive switching between multiple content delivery networks during adaptive bitrate streaming

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013135471A (ja) 2011-12-22 2013-07-08 Thomson Licensing マルチパス環境におけるアダプティブストリーミングのためのシステムと方法
WO2018152347A1 (en) 2017-02-17 2018-08-23 Divx, Llc Systems and methods for adaptive switching between multiple content delivery networks during adaptive bitrate streaming

Also Published As

Publication number Publication date
JP2020136708A (ja) 2020-08-31

Similar Documents

Publication Publication Date Title
US9660922B2 (en) Network assisted rate shifting for adaptive bit rate streaming
JP7275033B2 (ja) 適応ビットレートストリーミングの間の複数のコンテンツ配信ネットワーク間の適応切替のためのシステムおよび方法
KR101582371B1 (ko) 잉여 네트워크 용량을 사용한 점진적 다운로드 시스템 및 방법
US8504713B2 (en) Adaptive progressive download
US10306284B2 (en) ABR adjustment for live OTT
WO2017125017A1 (zh) 缓存内容的调整方法、装置及系统
EP2537340B1 (en) Multipath delivery for adaptive streaming
US10200432B2 (en) HTTP streaming client adaptation algorithm based on proportional-integral control
KR102123439B1 (ko) 이동 망에서 비디오 트래픽의 사용자 만족도 최적화를 고려한 혼잡 완화 방법 및 그 장치
US8250232B2 (en) Intelligent content stream bandwidth determination
US20070140113A1 (en) Method for providing quality-of-service based services in a packet network
EP2761833A1 (en) Bandwidth management for content delivery
WO2013042758A1 (ja) コンテンツ配信システム、キャッシュサーバおよびコンテンツ配信方法
JP2020507235A (ja) データバッファリング方法、ネットワーク機器、及び記憶媒体
JP6485865B2 (ja) 配信制御装置、中継装置、配信システム、配信制御方法、及びプログラム
US11671336B2 (en) ABR control
JP7222748B2 (ja) 受信装置及び配信サーバ
JP2012004969A (ja) コンテンツ配信装置及びプログラム
KR102304476B1 (ko) 적응적 스트리밍 서비스를 위한 다중 경로 기반 블록 전송 시스템 및 스트리밍 방법
Nguyen et al. An adaptive streaming method of 360 videos over HTTP/2 protocol
KR101837637B1 (ko) 클라이언트 측 ack 조정 기반 적응 스트리밍 방법 및 장치
US20130311668A1 (en) Methods And Systems For Providing Fairness And Stability To Video Streams
KR101869360B1 (ko) 미디어 버퍼 제어를 이용한 효율적인 무선 네트워크 스트리밍 중계 엔진 시스템
US11805074B2 (en) Control apparatus, control method and program
Ma et al. Access point centric scheduling for dash streaming in multirate 802.11 wireless network

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220113

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20221209

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: 20230110

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230203

R150 Certificate of patent or registration of utility model

Ref document number: 7222748

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150